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

数据通路仲裁方法、数据通路仲裁装置及芯片与流程

2021-12-14 23:18:00 来源:中国专利 TAG:


1.本发明涉及芯片设计领域,具体地涉及一种数据通路仲裁方法、一种数据通路仲裁装置、一种芯片以及一种存储介质。


背景技术:

2.仲裁器是芯片(集成电路)设计中常用的功能模块,只要存在多个数据处理装置对于共享资源的请求,就需要仲裁选出某个数据处理装置,通过对共享资源的占有,依次进行数据处理。各种仲裁器针对目标系统侧重的方面有不同的性能和功能目标,例如仲裁公平性、系统等待时间、系统吞吐量、实现的复杂程度等。在某些应用场景中需要将时间作为仲裁的第一优先级,然后再考虑其它权重因素进行仲裁。例如,在调试追踪系统中,各种追踪消息在对应总线系统中需要按照追踪包发生的先后顺序进行发送;在多处理器系统的广播式缓存一致性协议维护中,一致性事务(transaction)应该按照发生的先后顺序进行广播。
3.现有的时间仲裁器的实现方式为:对在同一时钟周期产生的申请进行采样;统计同一时钟周期内申请的个数,并按申请时间的先后对申请进行排序,赋予每个申请一个队列排序值代表申请到达的先后次序;通过比较队列排序值实现先申请先允许的仲裁原则。该方法仅根据申请时间进行仲裁,不能引入其它仲裁因素,不能满足不同应用场景的需求。
4.此外,现有的时间仲裁方法在对同一时钟周期产生的申请进行采样过程中,要求由申请线的变化沿(下降沿或上升沿)来产生请求,不支持连续的请求,且仲裁器一次只能响应一个申请者(agent、代理或消息源),其它申请者只能等待,会引起上级的阻塞或者空转,影响系统整体的性能。


技术实现要素:

5.本发明实施方式的目的是提供一种数据通路仲裁方法及数据通路仲裁装置,以至少解决上述的仲裁方式不支持连续的请求的问题。
6.为了实现上述目的,本发明一方面提供一种数据通路仲裁方法,所述方法包括:
7.根据申请者的请求时刻对申请者的请求进行第一级仲裁,获得第一级仲裁的结果数据;
8.根据预设规则对第一级仲裁的结果数据进行第二级仲裁。
9.进一步地,所述根据申请者的请求时刻对申请者的请求进行第一级仲裁,包括:
10.记录所有申请者的请求时刻,并缓存所有申请者请求的数据;
11.对请求时刻中最早的时刻对应的请求进行第一级仲裁。
12.进一步地,所述记录所有申请者的请求时刻,并缓存所有申请者请求的数据,包括:通过队列时间槽寄存器记录所有申请者的请求时刻,并通过数据缓冲队列缓存所有申请者请求的数据。
13.进一步地,一个数据缓冲队列和一个队列时间槽寄存器仅对应一个申请者;每一个队列时间槽寄存器的宽度为所有数据缓冲队列的深度之和。
14.进一步地,所述通过队列时间槽寄存器记录所有申请者的请求时刻,包括:在与申请者对应的队列时间槽寄存器的队尾记录该申请者的请求时刻。
15.进一步地,所述对请求时刻中最早的时刻对应的请求进行第一级仲裁,获得第一级仲裁的结果数据,包括:对所有队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为第一级仲裁的结果数据。
16.进一步地,所述方法还包括:在记录申请者的请求时刻之前,确定队列时间槽寄存器的队尾的位置;
17.其中,所述确定队列时间槽寄存器的队尾的位置,包括:
18.对队列时间槽寄存器的当前时刻的位值进行第一逻辑运算,根据第一逻辑运算的结果确定队列时间槽寄存器的队尾的位置。
19.进一步地,所述方法还包括:在对请求时刻中最早的时刻对应的请求进行第一级仲裁之前,确定队列时间槽寄存器记录的最早的时刻是否有申请者请求;
20.其中,所述确定队列时间槽寄存器记录的最早的时刻是否有申请者请求,包括:对所有队列时间槽寄存器记录的最早的时刻的位值进行第二逻辑运算,根据第二逻辑运算结果确定该最早的时刻是否有申请者请求。
21.进一步地,在确定队列时间槽寄存器的队尾的位置的情况下:
22.若当前时刻没有新的请求且当前时刻该队列时间槽寄存器的历史请求已进行第二级仲裁,将该队列时间槽寄存器的最高位清零,或者将该队列时间槽寄存器的低位补零;
23.若当前时刻没有新的请求且当前时刻该队列时间槽寄存器的历史请求最后进行第二级仲裁,将该队列时间槽寄存器的低位补零。
24.进一步地,所述根据预设规则对第一级仲裁的结果数据进行第二级仲裁,包括:
25.根据预设规则对所有队列时间槽寄存器的最高位的组合信号进行选通,得到选通信号;所述选通信号用于确定选中的数据缓冲队列。
26.进一步地,所述方法还包括:
27.从选中的数据缓冲队列读取申请者请求的数据。
28.本发明另一方面提供一种数据通路仲裁装置,所述装置包括:
29.第一级仲裁模块,用于根据申请者的请求时刻对申请者的请求进行第一级仲裁,获得第一级仲裁的结果数据;
30.第二级仲裁模块,用于根据预设规则对第一级仲裁的结果数据进行第二级仲裁。
31.进一步地,所述根据申请者的请求时刻对申请者的请求进行第一级仲裁,包括:所述第一级仲裁模块记录所有申请者的请求时刻,对请求时刻中最早的时刻对应的请求进行第一级仲裁。
32.进一步地,所述第一级仲裁模块包括多个队列时间槽寄存器;
33.多个所述队列时间槽寄存器用于记录所有申请者的请求时刻。
34.进一步地,所述第一级仲裁模块在与申请者对应的队列时间槽寄存器的队尾记录该申请者的请求时刻。
35.进一步地,所述对请求时刻中最早的时刻对应的请求进行第一级仲裁,获得第一级仲裁的结果数据,包括:所述第一级仲裁模块对所有队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为第一级仲裁的结果数据。
36.进一步地,所述装置还包括多个数据缓冲队列;
37.多个所述数据缓冲队列用于缓存所有申请者请求的数据。
38.进一步地,一个数据缓冲队列和一个队列时间槽寄存器仅对应一个申请者;每一个队列时间槽寄存器的宽度为所有数据缓冲队列的深度之和。
39.进一步地,所述第一级仲裁模块还包括队列尾产生器;
40.所述队列尾产生器用于对队列时间槽寄存器的当前时刻的位值进行第一逻辑运算,根据第一逻辑运算的结果确定队列时间槽寄存器的队尾的位置。
41.进一步地,所述第一级仲裁模块还包括联合队列时间槽;
42.所述联合队列时间槽用于对所有队列时间槽寄存器记录的最早的时刻的位值进行第二逻辑运算,根据第二逻辑运算的结果确定该时刻是否有申请者请求。
43.进一步地,所述根据预设规则对第一级仲裁的结果数据进行第二级仲裁,包括:
44.所述第二级仲裁模块根据预设规则对所有队列时间槽寄存器的最高位的组合信号进行选通,得到选通信号。
45.进一步地,所述装置还包括:
46.仲裁选通模块,用于根据所述选通信号确定选中的数据缓冲队列,从选中的数据缓冲队列读取申请者请求的数据。
47.本发明还提供一种芯片,所述芯片包括上述的数据通路仲裁装置、或者能够执行上述的数据通路仲裁方法。
48.本发明还提供一种芯片,所述芯片包括第一级仲裁模块、第二级仲裁模块、数据缓冲队列以及仲裁选通模块;
49.所述第一级仲裁模块与所述第二级仲裁模块信号连接,所述第二级仲裁模块与所述仲裁选通模块信号连接,所述仲裁选通模块与所述数据缓冲队列信号连接。
50.本发明还提供一种存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现上述的数据通路仲裁方法。
51.本发明的数据通路仲裁方法,根据申请者的请求时刻进行第一级仲裁,再根据预设规则进行第二级仲裁,可通过预设规则引入针对具体应用场景的其它仲裁因素,能够满足不同应用场景的需求。
52.此外,本发明基于请求的时间进行第一级仲裁选出最早时刻的申请,再通过第二级仲裁进行最终仲裁,可支持连续的请求。具体而言,本发明通过记录所有的申请者请求的时刻,同时缓存所有的申请者请求的数据,支持同一申请者的连续请求,针对多个申请者的多路请求可实现先申请、先仲裁。本发明与现有技术中每个请求源只能响应一次请求的方案相比,能够避免引起上级拥塞或空转,提高系统的整体性能。
53.本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
54.附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
55.图1是本发明一种实施方式提供的数据通路仲裁方法的流程图;
56.图2是本发明一种实施方式提供的数据通路仲裁装置的框图;
57.图3是本发明一种实施方式提供的队列尾产生器的逻辑电路图;
58.图4是本发明一种实施方式提供的联合队列时间槽的逻辑电路图。
具体实施方式
59.以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
60.图1是本发明一种实施方式提供的数据通路仲裁方法的流程图。如图1所示,本发明实施方式提供的数据通路仲裁方法包括以下步骤:
61.步骤s1、根据申请者的请求时刻对申请者的请求进行第一级仲裁,获得第一级仲裁的结果数据。
62.所述申请者为代理设备或消息源设备,申请者(设备)响应于用户的操作,生成请求,该请求包含请求时刻,数据通路仲裁装置接收到该请求后,根据请求时刻进行第一级仲裁。
63.在一种实施方式中,记录所有申请者的请求时刻,同时缓存所有申请者请求的数据,对请求时刻中最早的同一时刻的请求进行第一级仲裁。
64.可选地,通过队列时间槽寄存器记录所有申请者的请求时刻,通过数据缓冲队列缓存所有申请者请求的数据。一个数据缓冲队列和一个队列时间槽寄存器仅对应一个申请者,即每一个申请者都对应一个专用的数据缓冲队列和一个专用的队列时间槽寄存器。每一个队列时间槽寄存器的宽度为所有数据缓冲队列的深度之和。
65.对多个请求源(即代理设备或消息源设备)的不同时刻的多个请求做时间排序,现有技术方案是这样的:当某个请求源出现请求时,所有请求源同时压入各自的数据缓冲队列,有请求的请求源压入有效数据到数据缓冲队列,无请求的请求源压入无效标记到数据缓冲队列,利用数据缓冲队列的先入先出机制实现按时间排序。现有技术方案的缺点是数据缓冲队列的利用率低,当每次要压入的有效数据位宽较宽时(如32bit),会浪费大量电路资源。本发明实施方式通过数据缓冲队列记录有效的请求数据,并通过队列时间槽寄存器记录请求到达的时间先后关系(时间槽移位排序机制),用较少的资源实现了对多路数据缓冲队列中的数据做时间排序的目的,逻辑设计更加简单。
66.以三个申请者(分别标记为0、1、2)为例,采用队列时间槽寄存器0记录申请者0请求的时刻、队列时间槽寄存器1记录申请者1请求的时刻、队列时间槽寄存器2记录申请者2请求的时刻,采用数据缓冲队列0缓存申请者0请求的数据、数据缓冲队列1缓存申请者1请求的数据、数据缓冲队列2缓存申请者2请求的数据。接收到申请者0的请求时,若数据缓冲队列0有足够空间则缓存申请者0请求的数据,同时在队列时间槽寄存器0的队尾记录申请者0请求的数据被写入数据缓冲队列0的时刻(即申请者0请求的时刻)。接收到申请者1的请求时,若数据缓冲队列1有足够空间则缓存申请者1请求的数据,同时在队列时间槽寄存器1的队尾记录申请者1请求的数据被写入数据缓冲队列1的时刻(即申请者1请求的时刻)。接收到申请者2的请求时,若数据缓冲队列2有足够空间则缓存申请者2请求的数据,同时在队列时间槽寄存器2的队尾记录申请者2请求的数据被写入数据缓冲队列2的时刻(即申请者2请求的时刻)。队列时间槽寄存器0、队列时间槽寄存器1和队列时间槽寄存器2记录的时刻
作为第一优先仲裁标准。
67.假设三个申请者的数据缓冲队列深度分别为1、2、和3,在极端情况下最多可能有6个不同时刻的请求先后填满这三个数据缓冲队列,因此每一个队列时间槽寄存器的宽度应该为6,最多可以记录6个不同时刻的请求,队列时间槽寄存器的每一位记录一个时间槽的请求状态。每一个队列时间槽寄存器的最高位(位[5])表示记录的最早时刻(时钟周期)是否有请求需要仲裁,“1”表示有,“0”表示没有;每一个队列时间槽寄存器的最低位(位[0])表示记录的最晚时刻是否有仲裁请求;从高位到低位依次表示从更早时刻到更晚时刻。所有队列时间槽寄存器的相同位的组合,表示在此时刻有几个申请者同时发出了请求。即队列时间槽寄存器的每一位都按照时间顺序排序,某一位标识某个时刻是否有仲裁请求,用标志最早位的值作为第二级仲裁的请求。对所有的队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为请求信号(即第一级仲裁的结果数据)发送至下一级仲裁。
[0068]
第一级仲裁过程中,在与申请者对应的队列时间槽寄存器的队尾记录该申请者请求的时刻。在记录申请者的请求时刻之前,需确定队列时间槽寄存器的队尾的位置。具体的,对队列时间槽寄存器的当前时刻的位值以及各请求队列对应的应答信号进行第一逻辑运算(例如“位与”、“位或”和“位异或”运算),根据第一逻辑运算结果确定每一个队列时间槽寄存器的队尾的位置。第一级仲裁过程中,在对请求时刻中最早的时刻对应的请求进行第一级仲裁之前,还需要确定队列时间槽寄存器记录的最早的时刻是否有申请者请求。具体的,对所有队列时间槽寄存器记录的最早的时刻的位值进行第二逻辑运算(例如“位或”运算),根据第二逻辑运算结果确定该最早的时刻是否有申请者请求。
[0069]
第一级仲裁过程中,在确定队列时间槽寄存器的队尾的位置的情况下,若当前时刻没有新的请求且当前时刻该队列时间槽寄存器的历史请求已进行第二级仲裁,将该队列时间槽寄存器的最高位清零,或者将该队列时间槽寄存器的低位补零;若当前时刻没有新的请求且当前时刻该队列时间槽寄存器的历史请求最后进行第二级仲裁,将该队列时间槽寄存器的低位补零。
[0070]
具体而言,第一级仲裁包括以下几种情况:
[0071]
1)初始情况,复位时所有的队列时间槽寄存器清零,此时没有请求需要仲裁。
[0072]
2)当前时刻有新的申请者请求,将请求的数据写入数据缓冲队列时,包括以下几种情况:a、当前时刻自己的历史请求得到响应,但不是该时刻的最后一个请求:队列时间槽寄存器的队尾的位需要被置为“1”(记录本队列新的请求),队列时间槽寄存器的最高位清零(清除已被第二级仲裁模块响应的历史请求);其它位保持不变。b、当前时刻其它申请者的历史请求得到响应,但不是该时刻的最后一个请求:队列时间槽寄存器的队尾的位需要被置为“1”(记录本队列新的请求);其它位保持不变。c、当前时刻有历史请求得到第二级仲裁模块响应,并且是该时刻的最后一个请求:队列时间槽寄存器左移一位,低位补零(最早的时间槽中的请求已经全部被第二级仲裁模块响应完毕,清除此时间槽,不再占用时间槽寄存器),队尾的位需要被置为“1”(记录本队列新的请求)。d、当前时刻没有历史请求得到二级仲裁器响应:队列时间槽寄存器的队尾的位需要被置为“1”(记录本队列新的请求);其它位保持不变。
[0073]
3)当前时刻没有新的申请者请求,但当前时刻自己的历史请求得到第二级仲裁模块响应时,包括以下几种情况:a、如果不是该时刻最后一个被第二级仲裁模块响应的请求,
本技术者的队列时间槽寄存器最高位需要清零;其它位保持值不变。b、如果是该时刻最后一个被第二级仲裁模块响应的请求,所有申请者的队列时间槽寄存器左移一位(低位补零)。
[0074]
4)当前时刻没有新的外部申请者请求,但当前时刻其它申请者的请求得到响应时,包括以下几种情况:a、如果不是该时刻最后一个被第二级仲裁模块响应的请求,本技术者的队列时间槽寄存器保持不变。b、如果是该时刻最后一个被第二级仲裁模块响应的请求,所有申请者的队列时间槽寄存器左移一位(低位补零)。
[0075]
5)当前时刻没有新的外部申请者请求,也没有历史请求得到第二级仲裁模块的响应,队列时间槽寄存器保持不变。
[0076]
基于时间的第一级仲裁不需要比较队列排序值,而是利用队列时间槽寄存器的最高位自然表示最早到达的同一时刻的申请。该方法只需区分某个时钟周期申请的有无情况,不需要对同一个时钟周期的申请进行计数,不必根据申请计数来产生队列尾的结果,实现时间仲裁的逻辑相对简单。
[0077]
步骤s2、根据预设规则对第一级仲裁的结果数据进行第二级仲裁。
[0078]
根据预设规则对所有队列时间槽寄存器的最高位的组合信号进行选通,得到选通信号。所述预设规则可以是根据具体应用场景预设的针对申请者的优先仲裁规则,例如在a应用场景申请者0优先仲裁,在b应用场景申请者1优先仲裁,在c应用场景申请者2优先仲裁。
[0079]
本发明实施方式提供的数据通路仲裁方法,根据申请者的请求时刻进行第一级仲裁,再根据预设规则进行第二级仲裁,可通过预设规则引入针对具体应用场景的其它仲裁因素,能够满足不同应用场景的需求。
[0080]
本实施方式提供的数据通路仲裁方法还包括以下步骤:
[0081]
根据第二级仲裁得到的选通信号确定选中的数据缓冲队列,从选中的数据缓冲队列读取申请者请求的数据,对读取的数据进行处理。
[0082]
本发明的数据通路仲裁方法,基于请求的时间进行第一级仲裁(申请者的请求时间作为第一优先仲裁标准)选出最早时刻的申请,再通过第二级仲裁进行最终仲裁,可支持连续的请求。具体而言,本发明通过记录所有的申请者请求的时刻,同时缓存所有的申请者请求的数据,支持同一申请者的连续请求,针对多个申请者的多路请求可实现先申请、先仲裁。本方法与现有技术中每个请求源只能响应一次请求的方案相比,能够避免引起上级拥塞或空转,提高系统的整体性能。
[0083]
图2是本发明一种实施方式提供的数据通路仲裁装置的框图。如图2所示,本发明实施方式提供的数据通路仲裁装置包括:第一级仲裁模块、第二级仲裁模块、数据缓冲队列以及仲裁选通模块。所述第一级仲裁模块用于根据申请者的请求时刻对申请者的请求进行第一级仲裁,获得第一级仲裁的结果数据。所述第二级仲裁模块用于根据预设规则对第一级仲裁的结果数据进行第二级仲裁。所述仲裁选通模块用于根据第二级仲裁的结果从对应的数据缓冲队列读取申请者请求的数据。
[0084]
所述第一级仲裁模块记录所有申请者的请求时刻,对请求时刻中最早的同一时刻的请求进行第一级仲裁。进一步地,所述第一级仲裁模块包括多个队列时间槽寄存器,通过多个队列时间槽寄存器记录所有申请者的请求时刻,其中一个队列时间槽寄存器仅对应一
个申请者。具体的,第一级仲裁模块在与申请者对应的队列时间槽寄存器的队尾记录该申请者请求的时刻,将所有队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为第一级仲裁的结果数据。
[0085]
所述数据缓冲队列有多个,多个数据缓冲队列用于缓存所有申请者请求的数据。其中,一个数据缓冲队列仅对应一个申请者,即每一个申请者都对应一个专用的数据缓冲队列和一个专用的队列时间槽寄存器。每一个队列时间槽寄存器的宽度为所有数据缓冲队列的深度之和。
[0086]
对多个请求源的不同时刻的多个请求做时间排序,现有技术方案是这样的:当某个请求源出现请求时,所有请求源同时压入各自的数据缓冲队列,有请求的请求源压入有效数据,无请求的请求源压入无效标记,利用数据缓冲队列的先入先出机制实现按时间排序。现有技术方案的缺点是数据缓冲队列的利用率低,当每次要压入的有效数据位宽较宽时(如32bit),会浪费大量电路资源。本发明实施方式通过数据缓冲队列记录有效的请求数据,并通过队列时间槽寄存器记录请求到达的时间先后关系(时间槽移位排序机制),用较少的资源实现了对多路数据缓冲队列中的数据做时间排序的目的,逻辑设计更加简单。
[0087]
如图2所示,本实施方式以三个申请者(分别标记为0、1、2)为例,采用队列时间槽寄存器0记录申请者0请求的时刻、队列时间槽寄存器1记录申请者1请求的时刻、队列时间槽寄存器2记录申请者2请求的时刻,采用数据缓冲队列0缓存申请者0请求的数据、数据缓冲队列1缓存申请者1请求的数据、数据缓冲队列2缓存申请者2请求的数据。接收到申请者0的请求时,若数据缓冲队列0有足够空间则缓存申请者0请求的数据,同时在队列时间槽寄存器0的队尾记录申请者0请求的数据被写入数据缓冲队列0的时刻(即申请者0请求的时刻)。接收到申请者1的请求时,若数据缓冲队列1有足够空间则缓存申请者1请求的数据,同时在队列时间槽寄存器1的队尾记录申请者1请求的数据被写入数据缓冲队列1的时刻(即申请者1请求的时刻)。接收到申请者2的请求时,若数据缓冲队列2有足够空间则缓存申请者2请求的数据,同时在队列时间槽寄存器2的队尾记录申请者2请求的数据被写入数据缓冲队列2的时刻(即申请者2请求的时刻)。队列时间槽寄存器0、队列时间槽寄存器1和队列时间槽寄存器2记录的时刻作为第一优先仲裁标准。若同一时刻接收到多个申请者的请求时,将当前时刻所有申请者的请求写入各自对应的队列时间槽寄存器的队尾。初始状态的队列时间槽寄存器的所有位均为“0”,仅置位对应位即可记录当前时刻所有申请者的请求状态。
[0088]
假设三个申请者的数据缓冲队列深度分别为1、2、和3,在极端情况下最多可能有6个不同时刻的请求先后填满这三个数据缓冲队列,因此每一个队列时间槽寄存器的宽度应该为6,最多可以记录6个不同时刻的请求,队列时间槽寄存器的每一位记录一个时间槽的请求状态。每一个队列时间槽寄存器的最高位(位[5])表示记录的最早时刻(时钟周期)是否有请求需要仲裁,“1”表示有,“0”表示没有;每一个队列时间槽寄存器的最低位(位[0])表示记录的最晚时刻是否有仲裁请求;从高位到低位依次表示从更早时刻到更晚时刻。所有队列时间槽寄存器的相同位的组合,表示在此时刻有几个申请者同时发出了请求。即队列时间槽寄存器的每一位都按照时间顺序排序,某一位标识某个时刻是否有仲裁请求,用标志最早位的值作为第二级仲裁的请求。对所有的队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为请求信号(即第一级仲裁的结果数据)发送至下一级仲裁。
(记录本队列新的请求);最高位[5]清零(清除已被第二级仲裁模块响应的历史请求);其它位保持不变。b、当前时刻其它申请者的历史请求得到响应,但不是该时刻的最后一个请求:队列时间槽寄存器中由tail_point[6:1]指示的位需要被置为“1”(记录本队列新的请求);其它位保持不变。c、当前时刻有历史请求得到第二级仲裁模块响应,并且是该时刻的最后一个请求:队列时间槽寄存器左移一位,低位补零(最早的时间槽中的请求已经全部被第二级仲裁模块响应完毕,清除此时间槽,不再占用时间槽寄存器),然后由tail_point[6:1]指示的位需要被置为“1”(记录本队列新的请求)。d、当前时刻没有历史请求得到二级仲裁器响应:队列时间槽寄存器中由tail_point[6:1]指示的位需要被置为“1”(记录本队列新的请求);其它位保持不变。
[0097]
3)当前时刻没有新的申请者请求,但当前时刻自己的历史请求得到第二级仲裁模块响应时,包括以下几种情况:a、如果不是该时刻最后一个被第二级仲裁模块响应的请求,本技术者的队列时间槽寄存器最高位需要清零;其它位保持值不变。b、如果是该时刻最后一个被第二级仲裁模块响应的请求,所有申请者的队列时间槽寄存器左移一位(低位补零)。
[0098]
4)当前时刻没有新的外部申请者请求,但当前时刻其它申请者的请求得到响应时,包括以下几种情况:a、如果不是该时刻最后一个被第二级仲裁模块响应的请求,本技术者的队列时间槽寄存器保持不变。b、如果是该时刻最后一个被第二级仲裁模块响应的请求,所有申请者的队列时间槽寄存器左移一位(低位补零)。
[0099]
5)当前时刻没有新的外部申请者请求,也没有历史请求得到第二级仲裁模块的响应,队列时间槽寄存器保持不变。
[0100]
本实施方式的数据通路仲裁装置,基于请求的时间进行第一级仲裁选出最早时刻的申请,再通过第二级仲裁进行最终仲裁,可支持连续的请求。本发明通过队列时间槽寄存器记录所有的申请者请求的时刻,同时通过数据缓冲队列缓存所有的申请者请求的数据,支持同一申请者的连续请求,针对多个申请者的多路请求可实现先申请、先仲裁。与现有技术中每个请求源只能响应一次请求的方案相比,本装置能够避免引起上级拥塞或空转,提高系统的整体性能。
[0101]
本发明的数据通路仲裁装置,采用与现有仲裁器完全不同的结构,该仲裁装置不需要比较队列排序值,利用队列时间槽寄存器的最高位自然表示最早到达的同一时刻的申请。每个申请者可以连续发送请求,将请求的数据写入对应的数据缓冲队列,同时通过队列时间槽寄存器记录写入的时刻,实现基于时间的第一级仲裁,然后由第二级仲裁模块(可以是适合应用场景的仲裁方式)选出优先级最高的请求。本装置可适用于不同的应用场景。
[0102]
本发明实施方式还提供一种芯片,所述芯片包括上述的数据通路仲裁装置、或者能够执行上述的数据通路仲裁方法。
[0103]
本发明实施方式还提供一种芯片,该芯片包括第一级仲裁模块、第二级仲裁模块、数据缓冲队列以及仲裁选通模块。所述第一级仲裁模块与所述第二级仲裁模块信号连接,所述第二级仲裁模块与所述仲裁选通模块信号连接,所述仲裁选通模块与所述数据缓冲队列信号连接。该芯片的各个模块之间的信号传输过程及实现原理参见上述描述,此处不再赘述。
[0104]
本发明实施方式还提供一种存储介质,其上存储有计算机程序指令,所述计算机
程序指令被执行时实现上述的数据通路仲裁方法。
[0105]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0106]
本技术是参照根据本技术实施例的方法、系统和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0107]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0108]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0109]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
再多了解一些

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

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

相关文献