一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多端口仲裁方法、装置、设备及计算机可读存储介质与流程

2022-06-01 14:38:58 来源:中国专利 TAG:
一种多端口仲裁方法、装置、设备及计算机可读存储介质与流程

本发明涉及通信领域,特别是涉及一种多端口仲裁方法,本发明还涉及一种多端口仲裁装置、设备及计算机可读存储介质。

背景技术

switch芯片与多个输入端口连接,负责将输入端口的待传输数据传输出去,然而很可能出现多个输入端口同时存在待传输数据的情况,在面对这种情况时,switch需要依靠自身的多端口仲裁方法确定出当前应当处理哪个输入端口的待传输数据,然而现有技术中缺少一种成熟的多端口仲裁方法,导致某些重要的待传输数据长时间无法被传输,降低了用户体验。

因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种多端口仲裁方法,本申请由于可以从两个维度选择重要的待传输数据进行传输,从而能够更加全面地保证重要数据的优先传输,提升了用户体验;本发明的另一目的是提供一种多端口仲裁装置、设备及计算机可读存储介质,本申请由于可以从两个维度选择重要的待传输数据进行传输,从而能够更加全面地保证重要数据的优先传输,提升了用户体验。

为解决上述技术问题,本发明提供了一种多端口仲裁方法,包括:

判断同时存在待传输数据的多个输入端口的端口优先级是否相同;

若所述端口优先级不同,将存在待传输数据且端口优先级最高的所述输入端口作为目标端口;

若所述端口优先级相同,判断多个所述输入端口的待传输数据的数据类型优先级是否相同;

若所述数据类型优先级不同,将存在待传输数据且数据类型优先级最高的所述输入端口作为所述目标端口;

将所述目标端口的待传输数据发送至其对应的输出端口。

优选地,所述判断多个所述输入端口的待传输数据的数据类型优先级是否相同之后,该多端口仲裁方法还包括:

若所述数据类型优先级相同,判断多个所述输入端口各自的缓存空间中的数据量是否相同;

若所述缓存空间中的数据量不同,将所述缓存空间中的数据量最多的所述输入端口作为目标端口。

优选地,所述判断同时存在待传输数据的多个输入端口的端口优先级是否相同之后,该多端口仲裁方法还包括:

若所述端口优先级不同,将未被选为所述目标端口的所述输入端口的等待次数加一;

所述判断多个所述输入端口的待传输数据的数据类型优先级是否相同之后,该多端口仲裁方法还包括:

若所述数据类型优先级不同,将未被选为所述目标端口的所述输入端口的等待次数加一;

所述判断多个所述输入端口各自的缓存空间中的数据量是否相同之后,该多端口仲裁方法还包括:

若所述缓存空间中的数据量不同,将未被选为所述目标端口的所述输入端口的等待次数加一;

所述判断同时存在待传输数据的多个输入端口的端口优先级是否相同具体为:

在当前的待传输数据被发送完毕后,判断是否存在所述等待次数达到预设阈值的所述输入端口;

若存在,将所述等待次数达到预设阈值的所述输入端口作为目标端口;

若不存在,执行所述判断同时存在待传输数据的多个输入端口的端口优先级是否相同的步骤;

该多端口仲裁方法还包括:

将被选为所述目标端口的所述输入端口的所述等待次数清零。

优选地,所述判断多个所述输入端口各自的缓存空间中的数据量是否相同之后,该多端口仲裁方法还包括:

若所述缓存空间中的数据量相同,判断各个所述输入端口的等待次数是否相同;

若所述等待次数不同,将等待次数最大的所述输入端口作为目标端口;

将未被选为所述目标端口的所述输入端口的等待次数加一。

优选地,所述判断各个所述输入端口的等待次数是否相同之后,该多端口仲裁方法还包括:

采用预设策略从等待次数相同的多个所述输入端口中选择一个作为目标端口。

优选地,所述预设策略为随机选取策略。

为解决上述技术问题,本发明还提供了一种多端口仲裁装置,包括:

第一判断模块,用于判断同时存在待传输数据的多个输入端口的端口优先级是否相同,若所述端口优先级不同,触发第一确定模块,若所述端口优先级相同,触发第二判断模块;

所述第一确定模块,用于将存在待传输数据且端口优先级最高的所述输入端口作为目标端口;

所述第二判断模块,用于判断多个所述输入端口的待传输数据的数据类型优先级是否相同,若所述数据类型优先级不同,触发第二确定模块;

所述第二确定模块,用于将存在待传输数据且数据类型优先级最高的所述输入端口作为所述目标端口;

发送模块,用于将所述目标端口的待传输数据发送至其对应的输出端口。

优选地,所述第二判断模块还用于:

在所述数据类型优先级相同时触发第三判断模块;

所述第三判断模块,用于判断多个所述输入端口各自的缓存空间中的数据量是否相同,若所述缓存空间中的数据量不同,触发第三确定模块;

所述第三确定模块,用于将所述缓存空间中的数据量最多的所述输入端口作为目标端口。

为解决上述技术问题,本发明还提供了一种多端口仲裁设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述多端口仲裁方法的步骤。

为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述多端口仲裁方法的步骤。

本发明提供了一种多端口仲裁方法,本申请可以首先对比同时存在待传输数据的多个输入端口的端口优先级,优先传送端口优先级较高的输入端口中的重要数据,在端口优先级相同的情况下,则可以对比多个输入端口中待传输数据的数据类型优先级,从而优先传送数据类型优先级较高的待传输数据,本申请由于可以从两个维度选择重要的待传输数据进行传输,从而能够更加全面地保证重要数据的优先传输,提升了用户体验。

本发明还提供了一种多端口仲裁装置、设备及计算机可读存储介质,具有如上多端口仲裁方法相同的有益效果。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种多端口仲裁方法的流程示意图;

图2为本发明提供的一种多端口仲裁装置的结构示意图;

图3为本发明提供的一种多端口仲裁设备的结构示意图。

具体实施方式

本发明的核心是提供一种多端口仲裁方法,本申请由于可以从两个维度选择重要的待传输数据进行传输,从而能够更加全面地保证重要数据的优先传输,提升了用户体验;本发明的另一核心是提供一种多端口仲裁装置、设备及计算机可读存储介质,本申请由于可以从两个维度选择重要的待传输数据进行传输,从而能够更加全面地保证重要数据的优先传输,提升了用户体验。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明提供的一种多端口仲裁方法的流程示意图,该多端口仲裁方法包括:

S101:判断同时存在待传输数据的多个输入端口的端口优先级是否相同;

具体的,考虑到各个输入端口(下文称端口)在设计上就是不平等的,比如某个或某些端口专门用来传输高优先级的数据,因此需要在仲裁判断的时候尽可能地优先满足这些端口的需求,在实际应用中,可以通过对每个端口设置一组寄存器,通过外部配置寄存器来实现各个端口的端口优先级的设置,寄存器位宽的设置可以取决于优先级类型多少,通常来说一位或者两位寄存器便可满足。

具体的,本步骤中首先可以判断各个输入端口的端口优先级是否相同,以便触发后续的步骤。

其中,本发明实施例中的待传输数据可以指代一个待传输的数据包,也即某个端口的队列最前面的一个待传输数据包。

S102:若端口优先级不同,将存在待传输数据且端口优先级最高的输入端口作为目标端口;

具体的,在端口优先级不同的情况下,则可以将存在待传输数据且端口优先级最高的输入端口作为目标端口,以便优先处理该目标端口的待传输数据。

S103:若端口优先级相同,判断多个输入端口的待传输数据的数据类型优先级是否相同;

具体的,考虑到在具体传输协议中,部分类型的数据报文通常来说重要性更高,因此可以为重要类型的数据报文设置高的优先级,比如一些控制类的数据报文,应该尽快处理。在实际应用中,可以通过待传输报文数据中用于标识数据类型的数据位的方式来确定数据类型,并根据预设的数据类型与数据类型优先级的对应关系确定出数据类型优先级,如此一来,在端口优先级相同的情况下,便可以判断多个输入端口的待传输数据的数据类型优先级是否相同,以便触发后续步骤。

S104:若数据类型优先级不同,将存在待传输数据且数据类型优先级最高的输入端口作为目标端口;

具体的,在数据类型优先级不同的情况下,便可以将存在待传输数据且数据类型优先级最高的输入端口作为目标端口,从而优先传输重要类型的数据,能够更加全面地优先传输重要数据。

S105:将目标端口的待传输数据发送至其对应的输出端口。

具体的,在确定出目标端口后便可以将目标端口的待传输数据发送至其对应的输出端口。

本发明提供了一种多端口仲裁方法,本申请可以首先对比同时存在待传输数据的多个输入端口的端口优先级,优先传送端口优先级较高的输入端口中的重要数据,在端口优先级相同的情况下,则可以对比多个输入端口中待传输数据的数据类型优先级,从而优先传送数据类型优先级较高的待传输数据,本申请由于可以从两个维度选择重要的待传输数据进行传输,从而能够更加全面地保证重要数据的优先传输,提升了用户体验。

在上述实施例的基础上:

作为一种优选的实施例,判断多个输入端口的待传输数据的数据类型优先级是否相同之后,该多端口仲裁方法还包括:

若数据类型优先级相同,判断多个输入端口各自的缓存空间中的数据量是否相同;

若缓存空间中的数据量不同,将缓存空间中的数据量最多的输入端口作为目标端口。

具体的,缓存空间中的数据量指的是各个端口对应的缓存空间中有多少个待传输数据,实际应用中,通常情况下,用于多数据端口仲裁的缓存都会有基于信用的流量控制,这部分用于记录信用的寄存器就能直接用于判断对应缓存的空满程度,如果没有,则可以实现一套类似的机制,即对于单个端口的缓存数据,设置一组寄存器,例如寄存器的值上限为缓存空间大小,当缓存空间没有待传输数据时寄存器值为0,每接收一个待传输的数据,寄存器值加一,每发送出一个待传输数据,寄存器值减一。

具体的,在端口优先级以及数据类型优先级均无差别的情况下,本发明实施例可以优先传输缓存空间中数据量较大的端口的待传输数据,有利于各个端口的均衡传输,防止数据堆叠。

作为一种优选的实施例,判断同时存在待传输数据的多个输入端口的端口优先级是否相同之后,该多端口仲裁方法还包括:

若端口优先级不同,将未被选为目标端口的输入端口的等待次数加一;

判断多个输入端口的待传输数据的数据类型优先级是否相同之后,该多端口仲裁方法还包括:

若数据类型优先级不同,将未被选为目标端口的输入端口的等待次数加一;

判断多个输入端口各自的缓存空间中的数据量是否相同之后,该多端口仲裁方法还包括:

若缓存空间中的数据量不同,将未被选为目标端口的输入端口的等待次数加一;

判断同时存在待传输数据的多个输入端口的端口优先级是否相同具体为:

在当前的待传输数据被发送完毕后,判断是否存在等待次数达到预设阈值的输入端口;

若存在,将等待次数达到预设阈值的输入端口作为目标端口;

若不存在,执行判断同时存在待传输数据的多个输入端口的端口优先级是否相同的步骤;

该多端口仲裁方法还包括:

将被选为目标端口的输入端口的等待次数清零。

具体的,考虑到上述各种优先级对比规则的设置在特殊情况下可能会导致某些数据长时间无法被传输,为了避免这种情况的出现,本发明实施例在每次确定出目标端口后,可以将未被选为目标端口的输入端口的等待次数加一,并且在每次仲裁的第一步加入了“等待次数是否达到预设阈值”的判断,一旦发现存在等待次数达到预设阈值的输入端口,那么便可以将等待次数达到预设阈值的输入端口作为目标端口,防止了数据的长时间堆叠。

具体的,在实际应用中,可以对每个数据传输端口设置一个简单的计数器和超时标识寄存器,在对应的端口有数据待传输却没有被仲裁选择的时候给计数器加一,当某个端口被选择为目标端口后则可以将该端口的计数器清零,计数器的最大取值即为预设阈值,如果计数器达到最大值,则不再累加,并将超时寄存器置为1,当发现超时寄存器的值为1时便可以判定该端口的等待次数达到预设阈值。

其中,预设阈值可以进行自主设定,例如可以设置为8等,本发明实施例在此不做限定。

作为一种优选的实施例,判断多个输入端口各自的缓存空间中的数据量是否相同之后,该多端口仲裁方法还包括:

若缓存空间中的数据量相同,判断各个输入端口的等待次数是否相同;

若等待次数不同,将等待次数最大的输入端口作为目标端口;

将未被选为目标端口的输入端口的等待次数加一。

具体的,为了进一步地保证各个端口数据传输的均衡性,本发明实施例可以在各个输入端口的缓存空间的数量相同的情况下,继续判断各个输入端口的等待次数是否相同,从而将等待次数最大的输入端口作为目标端口。

作为一种优选的实施例,判断各个输入端口的等待次数是否相同之后,该多端口仲裁方法还包括:

采用预设策略从等待次数相同的多个输入端口中选择一个作为目标端口。

具体的,考虑到可能所有的判断结果均无法支持选择出目标端口,此时面对多个输入端口,本发明实施例中可以采用预设策略从等待次数相同的多个输入端口中选择一个作为目标端口,从而提高工作效率。

作为一种优选的实施例,预设策略为随机选取策略。

具体的,随机选取策略比较简单快捷。

当然,除了随机选取策略外,预设策略还可以为其他类型,例如轮询策略等,本发明实施例在此不做限定。

请参考图2,图2为本发明提供的一种多端口仲裁装置的结构示意图,该多端口仲裁装置包括:

第一判断模块21,用于判断同时存在待传输数据的多个输入端口的端口优先级是否相同,若端口优先级不同,触发第一确定模块,若端口优先级相同,触发第二判断模块;

第一确定模块22,用于将存在待传输数据且端口优先级最高的输入端口作为目标端口;

第二判断模块23,用于判断多个输入端口的待传输数据的数据类型优先级是否相同,若数据类型优先级不同,触发第二确定模块;

第二确定模块24,用于将存在待传输数据且数据类型优先级最高的输入端口作为目标端口;

发送模块25,用于将目标端口的待传输数据发送至其对应的输出端口。

作为一种优选的实施例,第二判断模块还用于:

在数据类型优先级相同时触发第三判断模块;

第三判断模块,用于判断多个输入端口各自的缓存空间中的数据量是否相同,若缓存空间中的数据量不同,触发第三确定模块;

第三确定模块,用于将缓存空间中的数据量最多的输入端口作为目标端口。

对于本发明实施例中提供的多端口仲裁装置的介绍请参照前述的多端口仲裁方法的实施例,本发明实施例在此不再赘述。

请参考图3,图3为本发明提供的一种多端口仲裁设备的结构示意图,该多端口仲裁设备包括:

存储器31,用于存储计算机程序;

处理器32,用于执行计算机程序时实现如前述实施例中多端口仲裁方法的步骤。

对于本发明实施例中提供的多端口仲裁设备的介绍请参照前述的多端口仲裁方法的实施例,本发明实施例在此不再赘述。

本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述实施例中多端口仲裁方法的步骤。

对于本发明实施例中提供的计算机可读存储介质的介绍请参照前述的多端口仲裁方法的实施例,本发明实施例在此不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献