CN113791892A - 数据通路仲裁方法、数据通路仲裁装置及芯片 - Google Patents
数据通路仲裁方法、数据通路仲裁装置及芯片 Download PDFInfo
- Publication number
- CN113791892A CN113791892A CN202110875046.8A CN202110875046A CN113791892A CN 113791892 A CN113791892 A CN 113791892A CN 202110875046 A CN202110875046 A CN 202110875046A CN 113791892 A CN113791892 A CN 113791892A
- Authority
- CN
- China
- Prior art keywords
- arbitration
- queue
- request
- time slot
- applicant
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 239000000872 buffer Substances 0.000 claims description 81
- 238000004590 computer program Methods 0.000 claims description 10
- 230000003139 buffering effect Effects 0.000 claims description 7
- 238000013461 design Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000012163 sequencing technique Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Bus Control (AREA)
Abstract
本发明属于芯片设计领域,提供一种数据通路仲裁方法、数据通路仲裁装置及芯片。所述数据通路仲裁方法包括:根据申请者的请求时刻对申请者的请求进行第一级仲裁,获得第一级仲裁的结果数据;根据预设规则对第一级仲裁的结果数据进行第二级仲裁。本发明根据申请者的请求时刻进行第一级仲裁,再根据预设规则进行第二级仲裁,可通过预设规则引入针对具体应用场景的其它仲裁因素,能够满足不同应用场景的需求。
Description
技术领域
本发明涉及芯片设计领域,具体地涉及一种数据通路仲裁方法、一种数据通路仲裁装置、一种芯片以及一种存储介质。
背景技术
仲裁器是芯片(集成电路)设计中常用的功能模块,只要存在多个数据处理装置对于共享资源的请求,就需要仲裁选出某个数据处理装置,通过对共享资源的占有,依次进行数据处理。各种仲裁器针对目标***侧重的方面有不同的性能和功能目标,例如仲裁公平性、***等待时间、***吞吐量、实现的复杂程度等。在某些应用场景中需要将时间作为仲裁的第一优先级,然后再考虑其它权重因素进行仲裁。例如,在调试追踪***中,各种追踪消息在对应总线***中需要按照追踪包发生的先后顺序进行发送;在多处理器***的广播式缓存一致性协议维护中,一致性事务(transaction)应该按照发生的先后顺序进行广播。
现有的时间仲裁器的实现方式为:对在同一时钟周期产生的申请进行采样;统计同一时钟周期内申请的个数,并按申请时间的先后对申请进行排序,赋予每个申请一个队列排序值代表申请到达的先后次序;通过比较队列排序值实现先申请先允许的仲裁原则。该方法仅根据申请时间进行仲裁,不能引入其它仲裁因素,不能满足不同应用场景的需求。
此外,现有的时间仲裁方法在对同一时钟周期产生的申请进行采样过程中,要求由申请线的变化沿(下降沿或上升沿)来产生请求,不支持连续的请求,且仲裁器一次只能响应一个申请者(agent、代理或消息源),其它申请者只能等待,会引起上级的阻塞或者空转,影响***整体的性能。
发明内容
本发明实施方式的目的是提供一种数据通路仲裁方法及数据通路仲裁装置,以至少解决上述的仲裁方式不支持连续的请求的问题。
为了实现上述目的,本发明一方面提供一种数据通路仲裁方法,所述方法包括:
根据申请者的请求时刻对申请者的请求进行第一级仲裁,获得第一级仲裁的结果数据;
根据预设规则对第一级仲裁的结果数据进行第二级仲裁。
进一步地,所述根据申请者的请求时刻对申请者的请求进行第一级仲裁,包括:
记录所有申请者的请求时刻,并缓存所有申请者请求的数据;
对请求时刻中最早的时刻对应的请求进行第一级仲裁。
进一步地,所述记录所有申请者的请求时刻,并缓存所有申请者请求的数据,包括:通过队列时间槽寄存器记录所有申请者的请求时刻,并通过数据缓冲队列缓存所有申请者请求的数据。
进一步地,一个数据缓冲队列和一个队列时间槽寄存器仅对应一个申请者;每一个队列时间槽寄存器的宽度为所有数据缓冲队列的深度之和。
进一步地,所述通过队列时间槽寄存器记录所有申请者的请求时刻,包括:在与申请者对应的队列时间槽寄存器的队尾记录该申请者的请求时刻。
进一步地,所述对请求时刻中最早的时刻对应的请求进行第一级仲裁,获得第一级仲裁的结果数据,包括:对所有队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为第一级仲裁的结果数据。
进一步地,所述方法还包括:在记录申请者的请求时刻之前,确定队列时间槽寄存器的队尾的位置;
其中,所述确定队列时间槽寄存器的队尾的位置,包括:
对队列时间槽寄存器的当前时刻的位值进行第一逻辑运算,根据第一逻辑运算的结果确定队列时间槽寄存器的队尾的位置。
进一步地,所述方法还包括:在对请求时刻中最早的时刻对应的请求进行第一级仲裁之前,确定队列时间槽寄存器记录的最早的时刻是否有申请者请求;
其中,所述确定队列时间槽寄存器记录的最早的时刻是否有申请者请求,包括:对所有队列时间槽寄存器记录的最早的时刻的位值进行第二逻辑运算,根据第二逻辑运算结果确定该最早的时刻是否有申请者请求。
进一步地,在确定队列时间槽寄存器的队尾的位置的情况下:
若当前时刻没有新的请求且当前时刻该队列时间槽寄存器的历史请求已进行第二级仲裁,将该队列时间槽寄存器的最高位清零,或者将该队列时间槽寄存器的低位补零;
若当前时刻没有新的请求且当前时刻该队列时间槽寄存器的历史请求最后进行第二级仲裁,将该队列时间槽寄存器的低位补零。
进一步地,所述根据预设规则对第一级仲裁的结果数据进行第二级仲裁,包括:
根据预设规则对所有队列时间槽寄存器的最高位的组合信号进行选通,得到选通信号;所述选通信号用于确定选中的数据缓冲队列。
进一步地,所述方法还包括:
从选中的数据缓冲队列读取申请者请求的数据。
本发明另一方面提供一种数据通路仲裁装置,所述装置包括:
第一级仲裁模块,用于根据申请者的请求时刻对申请者的请求进行第一级仲裁,获得第一级仲裁的结果数据;
第二级仲裁模块,用于根据预设规则对第一级仲裁的结果数据进行第二级仲裁。
进一步地,所述根据申请者的请求时刻对申请者的请求进行第一级仲裁,包括:所述第一级仲裁模块记录所有申请者的请求时刻,对请求时刻中最早的时刻对应的请求进行第一级仲裁。
进一步地,所述第一级仲裁模块包括多个队列时间槽寄存器;
多个所述队列时间槽寄存器用于记录所有申请者的请求时刻。
进一步地,所述第一级仲裁模块在与申请者对应的队列时间槽寄存器的队尾记录该申请者的请求时刻。
进一步地,所述对请求时刻中最早的时刻对应的请求进行第一级仲裁,获得第一级仲裁的结果数据,包括:所述第一级仲裁模块对所有队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为第一级仲裁的结果数据。
进一步地,所述装置还包括多个数据缓冲队列;
多个所述数据缓冲队列用于缓存所有申请者请求的数据。
进一步地,一个数据缓冲队列和一个队列时间槽寄存器仅对应一个申请者;每一个队列时间槽寄存器的宽度为所有数据缓冲队列的深度之和。
进一步地,所述第一级仲裁模块还包括队列尾产生器;
所述队列尾产生器用于对队列时间槽寄存器的当前时刻的位值进行第一逻辑运算,根据第一逻辑运算的结果确定队列时间槽寄存器的队尾的位置。
进一步地,所述第一级仲裁模块还包括联合队列时间槽;
所述联合队列时间槽用于对所有队列时间槽寄存器记录的最早的时刻的位值进行第二逻辑运算,根据第二逻辑运算的结果确定该时刻是否有申请者请求。
进一步地,所述根据预设规则对第一级仲裁的结果数据进行第二级仲裁,包括:
所述第二级仲裁模块根据预设规则对所有队列时间槽寄存器的最高位的组合信号进行选通,得到选通信号。
进一步地,所述装置还包括:
仲裁选通模块,用于根据所述选通信号确定选中的数据缓冲队列,从选中的数据缓冲队列读取申请者请求的数据。
本发明还提供一种芯片,所述芯片包括上述的数据通路仲裁装置、或者能够执行上述的数据通路仲裁方法。
本发明还提供一种芯片,所述芯片包括第一级仲裁模块、第二级仲裁模块、数据缓冲队列以及仲裁选通模块;
所述第一级仲裁模块与所述第二级仲裁模块信号连接,所述第二级仲裁模块与所述仲裁选通模块信号连接,所述仲裁选通模块与所述数据缓冲队列信号连接。
本发明还提供一种存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现上述的数据通路仲裁方法。
本发明的数据通路仲裁方法,根据申请者的请求时刻进行第一级仲裁,再根据预设规则进行第二级仲裁,可通过预设规则引入针对具体应用场景的其它仲裁因素,能够满足不同应用场景的需求。
此外,本发明基于请求的时间进行第一级仲裁选出最早时刻的申请,再通过第二级仲裁进行最终仲裁,可支持连续的请求。具体而言,本发明通过记录所有的申请者请求的时刻,同时缓存所有的申请者请求的数据,支持同一申请者的连续请求,针对多个申请者的多路请求可实现先申请、先仲裁。本发明与现有技术中每个请求源只能响应一次请求的方案相比,能够避免引起上级拥塞或空转,提高***的整体性能。
本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
图1是本发明一种实施方式提供的数据通路仲裁方法的流程图;
图2是本发明一种实施方式提供的数据通路仲裁装置的框图;
图3是本发明一种实施方式提供的队列尾产生器的逻辑电路图;
图4是本发明一种实施方式提供的联合队列时间槽的逻辑电路图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图1是本发明一种实施方式提供的数据通路仲裁方法的流程图。如图1所示,本发明实施方式提供的数据通路仲裁方法包括以下步骤:
步骤S1、根据申请者的请求时刻对申请者的请求进行第一级仲裁,获得第一级仲裁的结果数据。
所述申请者为代理设备或消息源设备,申请者(设备)响应于用户的操作,生成请求,该请求包含请求时刻,数据通路仲裁装置接收到该请求后,根据请求时刻进行第一级仲裁。
在一种实施方式中,记录所有申请者的请求时刻,同时缓存所有申请者请求的数据,对请求时刻中最早的同一时刻的请求进行第一级仲裁。
可选地,通过队列时间槽寄存器记录所有申请者的请求时刻,通过数据缓冲队列缓存所有申请者请求的数据。一个数据缓冲队列和一个队列时间槽寄存器仅对应一个申请者,即每一个申请者都对应一个专用的数据缓冲队列和一个专用的队列时间槽寄存器。每一个队列时间槽寄存器的宽度为所有数据缓冲队列的深度之和。
对多个请求源(即代理设备或消息源设备)的不同时刻的多个请求做时间排序,现有技术方案是这样的:当某个请求源出现请求时,所有请求源同时压入各自的数据缓冲队列,有请求的请求源压入有效数据到数据缓冲队列,无请求的请求源压入无效标记到数据缓冲队列,利用数据缓冲队列的先入先出机制实现按时间排序。现有技术方案的缺点是数据缓冲队列的利用率低,当每次要压入的有效数据位宽较宽时(如32bit),会浪费大量电路资源。本发明实施方式通过数据缓冲队列记录有效的请求数据,并通过队列时间槽寄存器记录请求到达的时间先后关系(时间槽移位排序机制),用较少的资源实现了对多路数据缓冲队列中的数据做时间排序的目的,逻辑设计更加简单。
以三个申请者(分别标记为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记录的时刻作为第一优先仲裁标准。
假设三个申请者的数据缓冲队列深度分别为1、2、和3,在极端情况下最多可能有6个不同时刻的请求先后填满这三个数据缓冲队列,因此每一个队列时间槽寄存器的宽度应该为6,最多可以记录6个不同时刻的请求,队列时间槽寄存器的每一位记录一个时间槽的请求状态。每一个队列时间槽寄存器的最高位(位[5])表示记录的最早时刻(时钟周期)是否有请求需要仲裁,“1”表示有,“0”表示没有;每一个队列时间槽寄存器的最低位(位[0])表示记录的最晚时刻是否有仲裁请求;从高位到低位依次表示从更早时刻到更晚时刻。所有队列时间槽寄存器的相同位的组合,表示在此时刻有几个申请者同时发出了请求。即队列时间槽寄存器的每一位都按照时间顺序排序,某一位标识某个时刻是否有仲裁请求,用标志最早位的值作为第二级仲裁的请求。对所有的队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为请求信号(即第一级仲裁的结果数据)发送至下一级仲裁。
第一级仲裁过程中,在与申请者对应的队列时间槽寄存器的队尾记录该申请者请求的时刻。在记录申请者的请求时刻之前,需确定队列时间槽寄存器的队尾的位置。具体的,对队列时间槽寄存器的当前时刻的位值以及各请求队列对应的应答信号进行第一逻辑运算(例如“位与”、“位或”和“位异或”运算),根据第一逻辑运算结果确定每一个队列时间槽寄存器的队尾的位置。第一级仲裁过程中,在对请求时刻中最早的时刻对应的请求进行第一级仲裁之前,还需要确定队列时间槽寄存器记录的最早的时刻是否有申请者请求。具体的,对所有队列时间槽寄存器记录的最早的时刻的位值进行第二逻辑运算(例如“位或”运算),根据第二逻辑运算结果确定该最早的时刻是否有申请者请求。
第一级仲裁过程中,在确定队列时间槽寄存器的队尾的位置的情况下,若当前时刻没有新的请求且当前时刻该队列时间槽寄存器的历史请求已进行第二级仲裁,将该队列时间槽寄存器的最高位清零,或者将该队列时间槽寄存器的低位补零;若当前时刻没有新的请求且当前时刻该队列时间槽寄存器的历史请求最后进行第二级仲裁,将该队列时间槽寄存器的低位补零。
具体而言,第一级仲裁包括以下几种情况:
1)初始情况,复位时所有的队列时间槽寄存器清零,此时没有请求需要仲裁。
2)当前时刻有新的申请者请求,将请求的数据写入数据缓冲队列时,包括以下几种情况:a、当前时刻自己的历史请求得到响应,但不是该时刻的最后一个请求:队列时间槽寄存器的队尾的位需要被置为“1”(记录本队列新的请求),队列时间槽寄存器的最高位清零(清除已被第二级仲裁模块响应的历史请求);其它位保持不变。b、当前时刻其它申请者的历史请求得到响应,但不是该时刻的最后一个请求:队列时间槽寄存器的队尾的位需要被置为“1”(记录本队列新的请求);其它位保持不变。c、当前时刻有历史请求得到第二级仲裁模块响应,并且是该时刻的最后一个请求:队列时间槽寄存器左移一位,低位补零(最早的时间槽中的请求已经全部被第二级仲裁模块响应完毕,清除此时间槽,不再占用时间槽寄存器),队尾的位需要被置为“1”(记录本队列新的请求)。d、当前时刻没有历史请求得到二级仲裁器响应:队列时间槽寄存器的队尾的位需要被置为“1”(记录本队列新的请求);其它位保持不变。
3)当前时刻没有新的申请者请求,但当前时刻自己的历史请求得到第二级仲裁模块响应时,包括以下几种情况:a、如果不是该时刻最后一个被第二级仲裁模块响应的请求,本申请者的队列时间槽寄存器最高位需要清零;其它位保持值不变。b、如果是该时刻最后一个被第二级仲裁模块响应的请求,所有申请者的队列时间槽寄存器左移一位(低位补零)。
4)当前时刻没有新的外部申请者请求,但当前时刻其它申请者的请求得到响应时,包括以下几种情况:a、如果不是该时刻最后一个被第二级仲裁模块响应的请求,本申请者的队列时间槽寄存器保持不变。b、如果是该时刻最后一个被第二级仲裁模块响应的请求,所有申请者的队列时间槽寄存器左移一位(低位补零)。
5)当前时刻没有新的外部申请者请求,也没有历史请求得到第二级仲裁模块的响应,队列时间槽寄存器保持不变。
基于时间的第一级仲裁不需要比较队列排序值,而是利用队列时间槽寄存器的最高位自然表示最早到达的同一时刻的申请。该方法只需区分某个时钟周期申请的有无情况,不需要对同一个时钟周期的申请进行计数,不必根据申请计数来产生队列尾的结果,实现时间仲裁的逻辑相对简单。
步骤S2、根据预设规则对第一级仲裁的结果数据进行第二级仲裁。
根据预设规则对所有队列时间槽寄存器的最高位的组合信号进行选通,得到选通信号。所述预设规则可以是根据具体应用场景预设的针对申请者的优先仲裁规则,例如在A应用场景申请者0优先仲裁,在B应用场景申请者1优先仲裁,在C应用场景申请者2优先仲裁。
本发明实施方式提供的数据通路仲裁方法,根据申请者的请求时刻进行第一级仲裁,再根据预设规则进行第二级仲裁,可通过预设规则引入针对具体应用场景的其它仲裁因素,能够满足不同应用场景的需求。
本实施方式提供的数据通路仲裁方法还包括以下步骤:
根据第二级仲裁得到的选通信号确定选中的数据缓冲队列,从选中的数据缓冲队列读取申请者请求的数据,对读取的数据进行处理。
本发明的数据通路仲裁方法,基于请求的时间进行第一级仲裁(申请者的请求时间作为第一优先仲裁标准)选出最早时刻的申请,再通过第二级仲裁进行最终仲裁,可支持连续的请求。具体而言,本发明通过记录所有的申请者请求的时刻,同时缓存所有的申请者请求的数据,支持同一申请者的连续请求,针对多个申请者的多路请求可实现先申请、先仲裁。本方法与现有技术中每个请求源只能响应一次请求的方案相比,能够避免引起上级拥塞或空转,提高***的整体性能。
图2是本发明一种实施方式提供的数据通路仲裁装置的框图。如图2所示,本发明实施方式提供的数据通路仲裁装置包括:第一级仲裁模块、第二级仲裁模块、数据缓冲队列以及仲裁选通模块。所述第一级仲裁模块用于根据申请者的请求时刻对申请者的请求进行第一级仲裁,获得第一级仲裁的结果数据。所述第二级仲裁模块用于根据预设规则对第一级仲裁的结果数据进行第二级仲裁。所述仲裁选通模块用于根据第二级仲裁的结果从对应的数据缓冲队列读取申请者请求的数据。
所述第一级仲裁模块记录所有申请者的请求时刻,对请求时刻中最早的同一时刻的请求进行第一级仲裁。进一步地,所述第一级仲裁模块包括多个队列时间槽寄存器,通过多个队列时间槽寄存器记录所有申请者的请求时刻,其中一个队列时间槽寄存器仅对应一个申请者。具体的,第一级仲裁模块在与申请者对应的队列时间槽寄存器的队尾记录该申请者请求的时刻,将所有队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为第一级仲裁的结果数据。
所述数据缓冲队列有多个,多个数据缓冲队列用于缓存所有申请者请求的数据。其中,一个数据缓冲队列仅对应一个申请者,即每一个申请者都对应一个专用的数据缓冲队列和一个专用的队列时间槽寄存器。每一个队列时间槽寄存器的宽度为所有数据缓冲队列的深度之和。
对多个请求源的不同时刻的多个请求做时间排序,现有技术方案是这样的:当某个请求源出现请求时,所有请求源同时压入各自的数据缓冲队列,有请求的请求源压入有效数据,无请求的请求源压入无效标记,利用数据缓冲队列的先入先出机制实现按时间排序。现有技术方案的缺点是数据缓冲队列的利用率低,当每次要压入的有效数据位宽较宽时(如32bit),会浪费大量电路资源。本发明实施方式通过数据缓冲队列记录有效的请求数据,并通过队列时间槽寄存器记录请求到达的时间先后关系(时间槽移位排序机制),用较少的资源实现了对多路数据缓冲队列中的数据做时间排序的目的,逻辑设计更加简单。
如图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”,仅置位对应位即可记录当前时刻所有申请者的请求状态。
假设三个申请者的数据缓冲队列深度分别为1、2、和3,在极端情况下最多可能有6个不同时刻的请求先后填满这三个数据缓冲队列,因此每一个队列时间槽寄存器的宽度应该为6,最多可以记录6个不同时刻的请求,队列时间槽寄存器的每一位记录一个时间槽的请求状态。每一个队列时间槽寄存器的最高位(位[5])表示记录的最早时刻(时钟周期)是否有请求需要仲裁,“1”表示有,“0”表示没有;每一个队列时间槽寄存器的最低位(位[0])表示记录的最晚时刻是否有仲裁请求;从高位到低位依次表示从更早时刻到更晚时刻。所有队列时间槽寄存器的相同位的组合,表示在此时刻有几个申请者同时发出了请求。即队列时间槽寄存器的每一位都按照时间顺序排序,某一位标识某个时刻是否有仲裁请求,用标志最早位的值作为第二级仲裁的请求。对所有的队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为请求信号(即第一级仲裁的结果数据)发送至下一级仲裁。
在第一级仲裁过程中,需要在与申请者对应的队列时间槽寄存器的队尾记录该申请者请求的时刻。在记录申请者的请求时刻之前,需确定队列时间槽寄存器的队尾的位置,以及确定队列时间槽寄存器记录的最早的时刻是否有申请者请求。本实施方式中,所述第一级仲裁模块还包括队列尾产生器和联合队列时间槽。所述队列尾产生器通过对队列时间槽寄存器的当前时刻的位值以及各请求队列对应的应答信号进行第一逻辑运算,根据第一逻辑运算的结果确定队列时间槽寄存器的队尾的位置。所述联合队列时间槽通过对所有队列时间槽寄存器记录的最早的时刻的位值进行第二逻辑运算,根据第二逻辑运算的结果确定该时刻是否有申请者请求。
图3是本发明一种实施方式提供的队列尾产生器的逻辑电路图。队列尾产生器是队列时间槽寄存器记录下一个时刻申请的时间槽位置,所有申请者的队列时间槽共用同一个队尾。队列尾产生器利用联合时间槽的高位必然连续为“1”的特点,通过“异或”操作和移位逻辑来获得队列尾的位置。如图3所示,考虑当前时钟周期是否可以把最早时刻的所有请求处理完,通过三个“位与”和一个“位或”操作(即第一逻辑运算)判断当前最早时刻的时间槽中是否仅有一个请求且此请求已经被下一级仲裁接收。当current_time_finish信号为高时,表示最早时刻的时间槽中的最后一个请求已经被响应,因此应该对即将写入的队尾位置进行“左移一位”的操作。最终的队列尾位置由tail_point[6:1]信号指示,非零位表示新的请求应该在对应的队列时间槽寄存器写入的位置。例如,tail_point[6:1]为6b100000,表示队列时间槽寄存器的队尾位置是[5];tail_point[6:1]为6b001000,表示队列时间槽寄存器的队尾位置是[3]。
图4是本发明一种实施方式提供的联合队列时间槽的逻辑电路图。如图4所示,联合时间槽是所有的队列时间槽寄存器进行“位或”操作(即第二逻辑运算)的结果,每位表示对应时刻(时间槽)是否有申请者发出仲裁请求。如果有任意一个申请者在某一个时刻有请求,联合队列时间槽对应的位为“1”,否则为“0”。由于队列时间槽寄存器是从高位到低位按顺序记录请求,联合时间槽从最高位开始第一个“0”的位置表示没有记录到任何申请的时间槽位置,因此队列时间槽寄存器的队尾位置就是联合时间槽的最高“0”位的位置。
在一种可选实施方式中,所述第二级仲裁模块根据预设规则对所有队列时间槽寄存器的最高位的组合信号进行选通,得到选通信号。所述预设规则可以是根据具体应用场景预设的针对申请者的优先仲裁规则,例如在A应用场景申请者0优先仲裁,在B应用场景申请者1优先仲裁,在C应用场景申请者2优先仲裁。所述仲裁选通模块根据第二级仲裁模块的选通信号确定选中的数据缓冲队列,从选中的数据缓冲队列读取申请者请求的数据进行处理。
本发明实施方式提供的数据通路仲裁装置,根据申请者的请求时刻进行第一级仲裁,再根据预设规则进行第二级仲裁,可通过预设规则引入针对具体应用场景的其它仲裁因素,能够满足不同应用场景的需求。
本实施方式中,第一级仲裁模块的具体操作有如下几种情况:
1)初始情况,复位时所有的队列时间槽寄存器清零,此时没有请求需要仲裁。
2)当前时刻有新的申请者请求,将请求的数据写入数据缓冲队列时(由信号push_i表示),包括以下几种情况:a、当前时刻自己的历史请求得到响应,但不是该时刻的最后一个请求:队列时间槽寄存器中由tail_point[6:1]指示的位(即队尾的位置)需要被置为“1”(记录本队列新的请求);最高位[5]清零(清除已被第二级仲裁模块响应的历史请求);其它位保持不变。b、当前时刻其它申请者的历史请求得到响应,但不是该时刻的最后一个请求:队列时间槽寄存器中由tail_point[6:1]指示的位需要被置为“1”(记录本队列新的请求);其它位保持不变。c、当前时刻有历史请求得到第二级仲裁模块响应,并且是该时刻的最后一个请求:队列时间槽寄存器左移一位,低位补零(最早的时间槽中的请求已经全部被第二级仲裁模块响应完毕,清除此时间槽,不再占用时间槽寄存器),然后由tail_point[6:1]指示的位需要被置为“1”(记录本队列新的请求)。d、当前时刻没有历史请求得到二级仲裁器响应:队列时间槽寄存器中由tail_point[6:1]指示的位需要被置为“1”(记录本队列新的请求);其它位保持不变。
3)当前时刻没有新的申请者请求,但当前时刻自己的历史请求得到第二级仲裁模块响应时,包括以下几种情况:a、如果不是该时刻最后一个被第二级仲裁模块响应的请求,本申请者的队列时间槽寄存器最高位需要清零;其它位保持值不变。b、如果是该时刻最后一个被第二级仲裁模块响应的请求,所有申请者的队列时间槽寄存器左移一位(低位补零)。
4)当前时刻没有新的外部申请者请求,但当前时刻其它申请者的请求得到响应时,包括以下几种情况:a、如果不是该时刻最后一个被第二级仲裁模块响应的请求,本申请者的队列时间槽寄存器保持不变。b、如果是该时刻最后一个被第二级仲裁模块响应的请求,所有申请者的队列时间槽寄存器左移一位(低位补零)。
5)当前时刻没有新的外部申请者请求,也没有历史请求得到第二级仲裁模块的响应,队列时间槽寄存器保持不变。
本实施方式的数据通路仲裁装置,基于请求的时间进行第一级仲裁选出最早时刻的申请,再通过第二级仲裁进行最终仲裁,可支持连续的请求。本发明通过队列时间槽寄存器记录所有的申请者请求的时刻,同时通过数据缓冲队列缓存所有的申请者请求的数据,支持同一申请者的连续请求,针对多个申请者的多路请求可实现先申请、先仲裁。与现有技术中每个请求源只能响应一次请求的方案相比,本装置能够避免引起上级拥塞或空转,提高***的整体性能。
本发明的数据通路仲裁装置,采用与现有仲裁器完全不同的结构,该仲裁装置不需要比较队列排序值,利用队列时间槽寄存器的最高位自然表示最早到达的同一时刻的申请。每个申请者可以连续发送请求,将请求的数据写入对应的数据缓冲队列,同时通过队列时间槽寄存器记录写入的时刻,实现基于时间的第一级仲裁,然后由第二级仲裁模块(可以是适合应用场景的仲裁方式)选出优先级最高的请求。本装置可适用于不同的应用场景。
本发明实施方式还提供一种芯片,所述芯片包括上述的数据通路仲裁装置、或者能够执行上述的数据通路仲裁方法。
本发明实施方式还提供一种芯片,该芯片包括第一级仲裁模块、第二级仲裁模块、数据缓冲队列以及仲裁选通模块。所述第一级仲裁模块与所述第二级仲裁模块信号连接,所述第二级仲裁模块与所述仲裁选通模块信号连接,所述仲裁选通模块与所述数据缓冲队列信号连接。该芯片的各个模块之间的信号传输过程及实现原理参见上述描述,此处不再赘述。
本发明实施方式还提供一种存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现上述的数据通路仲裁方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、***和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (25)
1.一种数据通路仲裁方法,其特征在于,所述方法包括:
根据申请者的请求时刻对申请者的请求进行第一级仲裁,获得第一级仲裁的结果数据;
根据预设规则对第一级仲裁的结果数据进行第二级仲裁。
2.根据权利要求1所述的数据通路仲裁方法,其特征在于,所述根据申请者的请求时刻对申请者的请求进行第一级仲裁,包括:
记录所有申请者的请求时刻,并缓存所有申请者请求的数据;
对请求时刻中最早的时刻对应的请求进行第一级仲裁。
3.根据权利要求2所述的数据通路仲裁方法,其特征在于,所述记录所有申请者的请求时刻,并缓存所有申请者请求的数据,包括:
通过队列时间槽寄存器记录所有申请者的请求时刻,并通过数据缓冲队列缓存所有申请者请求的数据。
4.根据权利要求3所述的数据通路仲裁方法,其特征在于,一个数据缓冲队列和一个队列时间槽寄存器仅对应一个申请者;
每一个队列时间槽寄存器的宽度为所有数据缓冲队列的深度之和。
5.根据权利要求3所述的数据通路仲裁方法,其特征在于,所述通过队列时间槽寄存器记录所有申请者的请求时刻,包括:
在与申请者对应的队列时间槽寄存器的队尾记录该申请者的请求时刻。
6.根据权利要求3所述的数据通路仲裁方法,其特征在于,所述对请求时刻中最早的时刻对应的请求进行第一级仲裁,获得第一级仲裁的结果数据,包括:
对所有队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为第一级仲裁的结果数据。
7.根据权利要求5所述的数据通路仲裁方法,其特征在于,所述方法还包括:
在记录申请者的请求时刻之前,确定队列时间槽寄存器的队尾的位置;
其中,所述确定队列时间槽寄存器的队尾的位置,包括:
对队列时间槽寄存器的当前时刻的位值进行第一逻辑运算,根据第一逻辑运算的结果确定队列时间槽寄存器的队尾的位置。
8.根据权利要求7所述的数据通路仲裁方法,其特征在于,所述方法还包括:
在对请求时刻中最早的时刻对应的请求进行第一级仲裁之前,确定队列时间槽寄存器记录的最早的时刻是否有申请者请求;
其中,所述确定队列时间槽寄存器记录的最早的时刻是否有申请者请求,包括:
对所有队列时间槽寄存器记录的最早的时刻的位值进行第二逻辑运算,根据第二逻辑运算结果确定该最早的时刻是否有申请者请求。
9.根据权利要求7所述的数据通路仲裁方法,其特征在于,在确定队列时间槽寄存器的队尾的位置的情况下:
若当前时刻没有新的请求且当前时刻该队列时间槽寄存器的历史请求已进行第二级仲裁,将该队列时间槽寄存器的最高位清零,或者将该队列时间槽寄存器的低位补零;
若当前时刻没有新的请求且当前时刻该队列时间槽寄存器的历史请求最后进行第二级仲裁,将该队列时间槽寄存器的低位补零。
10.根据权利要求6所述的数据通路仲裁方法,其特征在于,所述根据预设规则对第一级仲裁的结果数据进行第二级仲裁,包括:
根据预设规则对所有队列时间槽寄存器的最高位的组合信号进行选通,得到选通信号;所述选通信号用于确定选中的数据缓冲队列。
11.根据权利要求10所述的数据通路仲裁方法,其特征在于,所述方法还包括:
从选中的数据缓冲队列读取申请者请求的数据。
12.一种数据通路仲裁装置,其特征在于,所述装置包括:
第一级仲裁模块,用于根据申请者的请求时刻对申请者的请求进行第一级仲裁,获得第一级仲裁的结果数据;
第二级仲裁模块,用于根据预设规则对第一级仲裁的结果数据进行第二级仲裁。
13.根据权利要求12所述的数据通路仲裁装置,其特征在于,所述根据申请者的请求时刻对申请者的请求进行第一级仲裁,包括:
所述第一级仲裁模块记录所有申请者的请求时刻,对请求时刻中最早的时刻对应的请求进行第一级仲裁。
14.根据权利要求13所述的数据通路仲裁装置,其特征在于,所述第一级仲裁模块包括多个队列时间槽寄存器;
多个所述队列时间槽寄存器用于记录所有申请者的请求时刻。
15.根据权利要求14所述的数据通路仲裁装置,其特征在于,所述第一级仲裁模块在与申请者对应的队列时间槽寄存器的队尾记录该申请者的请求时刻。
16.根据权利要求15所述的数据通路仲裁装置,其特征在于,所述对请求时刻中最早的时刻对应的请求进行第一级仲裁,获得第一级仲裁的结果数据,包括:
所述第一级仲裁模块对所有队列时间槽寄存器的最高位进行组合得到组合信号,将该组合信号作为第一级仲裁的结果数据。
17.根据权利要求14所述的数据通路仲裁装置,其特征在于,所述装置还包括多个数据缓冲队列;
多个所述数据缓冲队列用于缓存所有申请者请求的数据。
18.根据权利要求17所述的数据通路仲裁装置,其特征在于,一个数据缓冲队列和一个队列时间槽寄存器仅对应一个申请者;
每一个队列时间槽寄存器的宽度为所有数据缓冲队列的深度之和。
19.根据权利要求15所述的数据通路仲裁装置,其特征在于,所述第一级仲裁模块还包括队列尾产生器;
所述队列尾产生器用于对队列时间槽寄存器的当前时刻的位值进行第一逻辑运算,根据第一逻辑运算的结果确定队列时间槽寄存器的队尾的位置。
20.根据权利要求19所述的数据通路仲裁装置,其特征在于,所述第一级仲裁模块还包括联合队列时间槽;
所述联合队列时间槽用于对所有队列时间槽寄存器记录的最早的时刻的位值进行第二逻辑运算,根据第二逻辑运算的结果确定该时刻是否有申请者请求。
21.根据权利要求16所述的数据通路仲裁装置,其特征在于,所述根据预设规则对第一级仲裁的结果数据进行第二级仲裁,包括:
所述第二级仲裁模块根据预设规则对所有队列时间槽寄存器的最高位的组合信号进行选通,得到选通信号。
22.根据权利要求21所述的数据通路仲裁装置,其特征在于,所述装置还包括:
仲裁选通模块,用于根据所述选通信号确定选中的数据缓冲队列,从选中的数据缓冲队列读取申请者请求的数据。
23.一种芯片,其特征在于,所述芯片包括权利要求12-22中任一项所述的数据通路仲裁装置、或者能够执行权利要求1-11中任一项所述的数据通路仲裁方法。
24.一种芯片,其特征在于,所述芯片包括第一级仲裁模块、第二级仲裁模块、数据缓冲队列以及仲裁选通模块;
所述第一级仲裁模块与所述第二级仲裁模块信号连接,所述第二级仲裁模块与所述仲裁选通模块信号连接,所述仲裁选通模块与所述数据缓冲队列信号连接。
25.一种存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被执行时实现权利要求1-11中任一项所述的数据通路仲裁方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110875046.8A CN113791892B (zh) | 2021-07-30 | 2021-07-30 | 数据通路仲裁方法、数据通路仲裁装置及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110875046.8A CN113791892B (zh) | 2021-07-30 | 2021-07-30 | 数据通路仲裁方法、数据通路仲裁装置及芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113791892A true CN113791892A (zh) | 2021-12-14 |
CN113791892B CN113791892B (zh) | 2024-03-26 |
Family
ID=78877081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110875046.8A Active CN113791892B (zh) | 2021-07-30 | 2021-07-30 | 数据通路仲裁方法、数据通路仲裁装置及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113791892B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115469804A (zh) * | 2022-08-30 | 2022-12-13 | 中科驭数(北京)科技有限公司 | NVMe多队列仲裁方法及装置 |
CN117312199A (zh) * | 2023-11-30 | 2023-12-29 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4473880A (en) * | 1982-01-26 | 1984-09-25 | Intel Corporation | Arbitration means for controlling access to a bus shared by a number of modules |
US5371893A (en) * | 1991-12-27 | 1994-12-06 | International Business Machines Corporation | Look-ahead priority arbitration system and method |
US5832278A (en) * | 1997-02-26 | 1998-11-03 | Advanced Micro Devices, Inc. | Cascaded round robin request selection method and apparatus |
CN1479542A (zh) * | 2002-08-30 | 2004-03-03 | 深圳市中兴通讯股份有限公司上海第二 | 一种公平的总线仲裁方法及仲裁装置 |
US7054330B1 (en) * | 2001-09-07 | 2006-05-30 | Chou Norman C | Mask-based round robin arbitration |
US20070011382A1 (en) * | 2003-05-09 | 2007-01-11 | Koninklijke Philips Electronics N.V. | Hierarchical memory access via pipelining with deferred arbitration |
US20070255873A1 (en) * | 2004-10-28 | 2007-11-01 | Jenya Chou | Arbitrator and its arbitration method |
CN101344871A (zh) * | 2008-08-20 | 2009-01-14 | 北京中星微电子有限公司 | 一种保证访问先后顺序的总线仲裁单元及其实现方法 |
CN105718394A (zh) * | 2016-01-25 | 2016-06-29 | 东南大学 | 一种粗粒度可重构***的片上缓存访存接口及其访问方法 |
JP2017162431A (ja) * | 2016-03-04 | 2017-09-14 | キヤノン株式会社 | メモリ制御装置及び撮像装置 |
CN107728953A (zh) * | 2017-11-03 | 2018-02-23 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘混合读写性能的方法 |
CN111711574A (zh) * | 2020-06-29 | 2020-09-25 | 中国人民解放军国防科技大学 | 一种超高阶单周期报文调度方法及装置 |
-
2021
- 2021-07-30 CN CN202110875046.8A patent/CN113791892B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4473880A (en) * | 1982-01-26 | 1984-09-25 | Intel Corporation | Arbitration means for controlling access to a bus shared by a number of modules |
US5371893A (en) * | 1991-12-27 | 1994-12-06 | International Business Machines Corporation | Look-ahead priority arbitration system and method |
US5832278A (en) * | 1997-02-26 | 1998-11-03 | Advanced Micro Devices, Inc. | Cascaded round robin request selection method and apparatus |
US7054330B1 (en) * | 2001-09-07 | 2006-05-30 | Chou Norman C | Mask-based round robin arbitration |
CN1479542A (zh) * | 2002-08-30 | 2004-03-03 | 深圳市中兴通讯股份有限公司上海第二 | 一种公平的总线仲裁方法及仲裁装置 |
US20070011382A1 (en) * | 2003-05-09 | 2007-01-11 | Koninklijke Philips Electronics N.V. | Hierarchical memory access via pipelining with deferred arbitration |
US20070255873A1 (en) * | 2004-10-28 | 2007-11-01 | Jenya Chou | Arbitrator and its arbitration method |
CN101344871A (zh) * | 2008-08-20 | 2009-01-14 | 北京中星微电子有限公司 | 一种保证访问先后顺序的总线仲裁单元及其实现方法 |
CN105718394A (zh) * | 2016-01-25 | 2016-06-29 | 东南大学 | 一种粗粒度可重构***的片上缓存访存接口及其访问方法 |
JP2017162431A (ja) * | 2016-03-04 | 2017-09-14 | キヤノン株式会社 | メモリ制御装置及び撮像装置 |
CN107728953A (zh) * | 2017-11-03 | 2018-02-23 | 记忆科技(深圳)有限公司 | 一种提升固态硬盘混合读写性能的方法 |
CN111711574A (zh) * | 2020-06-29 | 2020-09-25 | 中国人民解放军国防科技大学 | 一种超高阶单周期报文调度方法及装置 |
Non-Patent Citations (3)
Title |
---|
STANISLAVS GOLUBCOVS ET.AL: "Concurrent Multiresource Arbiter: Design and Applications", 《IEEE TRANSACTIONS ON COMPUTERS》, vol. 62, no. 1, pages 31 * |
XIANG LING ET.AL: "MACRON: The NoC-Based Many-Core Parallel Processing Platform and Its Applications in 4G Communication Systems", 《2015 23RD EUROMICRO INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED, AND NETWORK-BASED PROCESSING》, pages 387 - 403 * |
翦杰等: "光互连网络中资源预留的多级光互连仲裁机制", 《 国防科技大学学报》, vol. 38, no. 5, pages 39 - 44 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115469804A (zh) * | 2022-08-30 | 2022-12-13 | 中科驭数(北京)科技有限公司 | NVMe多队列仲裁方法及装置 |
CN117312199A (zh) * | 2023-11-30 | 2023-12-29 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
CN117312199B (zh) * | 2023-11-30 | 2024-03-08 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113791892B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2472403B1 (en) | Memory arbitration system and method having an arbitration packet protocol | |
US7526593B2 (en) | Packet combiner for a packetized bus with dynamic holdoff time | |
CN100595720C (zh) | 用于基于集线器的存储***中直接存储器访问的设备和方法 | |
US8930593B2 (en) | Method for setting parameters and determining latency in a chained device system | |
KR101172103B1 (ko) | 통신 시스템의 통신 링크를 통해 메시지에 데이터를전송하기 위한 전송 방법, 통신 모듈, 통신 시스템의서브스크라이버 및 상기 전송 방법을 구현하기 위한 통신시스템 | |
US8032809B2 (en) | Retransmission and delayed ACK timer management logic for TCP protocol | |
US8155134B2 (en) | System-on-chip communication manager | |
US7412555B2 (en) | Ordering rule and fairness implementation | |
JP3534822B2 (ja) | キャッシュラインリプレーシング装置及び方法 | |
CN113791892B (zh) | 数据通路仲裁方法、数据通路仲裁装置及芯片 | |
JP2017525065A (ja) | Sfenceを用いずに最適化されたpio書込みシーケンスを用いるパケット送信 | |
JP5576030B2 (ja) | データ応答を順序変更するためのシステム | |
CN103543954A (zh) | 一种数据存储管理方法和装置 | |
US20020184453A1 (en) | Data bus system including posted reads and writes | |
US7490219B2 (en) | Counter counts valid requests based on a judgment in a system having a plurality of pipeline processors | |
EP1508100B1 (en) | Inter-chip processor control plane | |
CN114265872A (zh) | 一种用于总线的互联装置 | |
CN111181874B (zh) | 一种报文处理方法、装置及存储介质 | |
EP2437159B1 (en) | Apparatus for data comparison and control method thereof | |
US7774513B2 (en) | DMA circuit and computer system | |
CN113867796B (zh) | 利用多状态机提高读性能的协议转换桥及实现方法 | |
WO2022110681A1 (zh) | 命令响应信息的返回方法、返回控制装置和电子设备 | |
CN113704151B (zh) | 基于TileLink总线的芯片互联架构及互联方法 | |
US6715021B1 (en) | Out-of-band look-ahead arbitration method and/or architecture | |
KR100950356B1 (ko) | 다중 코히런시 단위들을 지원하는 데이터 전송 유닛 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |