CN116668297A - 一种虚拟通道电路、单路分发多支路的方法及装置 - Google Patents
一种虚拟通道电路、单路分发多支路的方法及装置 Download PDFInfo
- Publication number
- CN116668297A CN116668297A CN202310473813.1A CN202310473813A CN116668297A CN 116668297 A CN116668297 A CN 116668297A CN 202310473813 A CN202310473813 A CN 202310473813A CN 116668297 A CN116668297 A CN 116668297A
- Authority
- CN
- China
- Prior art keywords
- circuit
- response data
- branch
- response
- piece
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000004044 response Effects 0.000 claims abstract description 327
- 239000000872 buffer Substances 0.000 claims abstract description 100
- 238000009826 distribution Methods 0.000 claims abstract description 13
- 238000011144 upstream manufacturing Methods 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 29
- 230000003068 static effect Effects 0.000 claims description 14
- 238000012790 confirmation Methods 0.000 claims description 3
- 239000004065 semiconductor Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 241001522296 Erithacus rubecula Species 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000007616 round robin method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种虚拟通道电路、单路分发多支路的方法及装置,所述虚拟通道电路包括:响应地址分配电路,被配置为对接收的各支路的各条响应数据分别配置一个寻址信息,其中,与一条支路对应的所有寻址信息组成一个寻址序列;响应数据缓冲电路,被配置为将各条响应数据分别存储在可被所述寻址信息寻址的缓存空间;仲裁电路,被配置为按照仲裁策略从多个寻址序列中选择一个作为目标寻址序列,以通过所述目标寻址序列从所述响应数据缓冲电路上读取与所述目标寻址序列对应的目标支路的至少一条响应数据。采用本申请实施例的优势至少包括在逻辑上可组织出互不阻挡的响应通道,响应通道长度动态变化,灵活调度各支路响应,充分利用有限的响应带宽。
Description
技术领域
本申请涉及电路领域,具体而言本申请实施例涉及一种虚拟通道电路、单路分发多支路的方法及装置。
背景技术
大数据量计算的集成电路中,经常存在多路合并一路传输或者一路分多路的传输。无论是多路合并,还是单路分发多路,保证转换之后高的传输效率是此类电路的硬性要求。如果是多路请求输入合并一路,响应时必然需要单路响应分发多路。此情况下,如何避免在分发过程中某一路阻挡其它路的响应分发,以确保各路高效率的响应,成为单路响应分发多路需要正视的问题。
通常情况下,解决这一问题有两个办法。
方法一:多个响应缓冲器,并行响应;此方法中,单路响应先按照路径标识,把响应放在多个响应缓冲器,由上游各路自行获取。缓冲器的深度或容量根据最大响应个数确定。比如一路响应分发两路,最大响应个数是N,那么响应分发前,需要用2个深度为N的缓冲器,这样分发的两路才不会出现互堵的情况,充分利用到响应带宽。
如图1所示,与方法一对应的电路包括分发模块以及第一响应缓冲器101、第二响应缓冲器102、第三响应缓冲器103,……,直至第N响应缓冲器10N,其中,分发模块用于将接收的各支路的各条响应数据(即图1的单路响应数据)发送至对应支路的响应缓冲器中进行存储,之后就等待响应响应支路来获取对应响应数据,例如,图1的第一支路自行从第一响应缓冲器获取对应的响应数据(即上游第一支路自行获取响应数据),图1的第二支路自行从第二响应缓冲器获取对应的响应数据(即上游第二支路自行获取响应数据),图1的第三支路自行从第三响应缓冲器获取对应的响应数据(即上游第三支路自行获取响应数据),……,或者图1的第N支路自行从第N响应缓冲器获取对应的响应数据(即上游第N支路自行获取响应数据)。
方法二:单个响应缓冲器,逐个响应;此方法只有单个缓冲器,先进入缓冲器的响应先被对应支路获取,如果最先进入缓冲器的响应所属的支路由于某种原因不能被读取,那么其它排在后面的响应会被阻挡,影响了其它支路的响应获取。
如图2所示,与方法二对应的电路包括一个响应缓冲器203,该响应缓冲器用于存储各支路的响应数据,可以理解的是采用这种电路先进数据被对应支路自行获取,若该支路不能读取数据时后存的数据也将发生堵塞而不能被对应支路读取。
不难理解的是,上述方法一存在多用了缓冲器,占用电路面积大的缺点。上述的方法二的缺点是调度不灵活,容易出现不同支路互相拥堵的情况,导致传输效率低。
发明内容
本申请实施例的目的在于提供一种虚拟通道电路、单路分发多支路的方法及装置,采用本申请的实施例的优势至少包括在逻辑上可组织出互不阻挡的响应通道,而且响应通道的长度动态变化,灵活调度各支路响应,充分利用有限的响应带宽。
第一方面,本申请实施例提供一种虚拟通道电路,所述虚拟通道电路包括:响应地址分配电路,被配置为对接收的各支路的各条响应数据分别配置一个寻址信息,其中,与一条支路对应的所有寻址信息组成一个寻址序列;响应数据缓冲电路,被配置为将各条响应数据分别存储在可被所述寻址信息寻址的缓存空间;仲裁电路,被配置为按照仲裁策略从多个寻址序列中选择一个作为目标寻址序列,以通过所述目标寻址序列从所述响应数据缓冲电路上读取与所述目标寻址序列对应的目标支路的至少一条响应数据。
本申请的一些实施例提供一种虚拟通道电路,该电路利用为每条响应数据分别配置寻址信息并采用仲裁方式为每条支路提供响应数据转发机会使得本申请的一些实施例可在逻辑上可组织出互不阻挡的响应通道,而且响应通道的长度动态变化,灵活调度各支路响应,充分利用有限的响应带宽。
在一些实施例中,所述虚拟通道电路还包括:支路判别电路,被配置为分别提取与所述各条支路对应的所有寻址信息;各支路链接电路,被配置为将对应支路的各个寻址信息组织成一条地址链,得到对应的寻址序列,其中,一个寻址信息指向一条响应数据。
本申请的一些实施例为了实现对各个支路的独立仲裁以避免单一支路阻塞导致其他支路数据无法传输的技术问题,提供了支路判别电路以及与各支路分别对应的支路链接电路,并将各支路链接电路作为仲裁电路的被仲裁对象,实现了寻址信息被灵活选中的技术目的,提升数据传输能力。
在一些实施例中,所述响应地址分配电路被配置为接收的各条响应数据分配一个唯一的标识,其中,所述标识作为相应条响应数据在所述响应数据缓冲电路上的所述寻址信息。
本申请的一些实施例为各条响应数据分配唯一的标识信息,进而实现各条响应数据的寻址和独立读取。
在一些实施例中,所述响应数据缓冲电路属于可被所述寻址信息寻址的静态存储器。
本申请的一些实施例提供一种可寻址的存储单元。
在一些实施例中,所述仲裁策略为轮询与各条支路分别对应的目标寻址序列。
本申请一些实施例通过轮询方式作为仲裁策略选取各条响应数据提供给上游处理模块。
在一些实施例中,所述各支路链接电路包括多个地址寄存器,其中,每个寄存器用于存储指向所述响应数据缓冲电路的一个可寻址的缓存单元。
本申请一些实施例提供一种地址寄存器,采用地址寄存器存储各条响应数据并将属于一条支路的寻址信息作为一组仲裁对象。
第二方面,本申请的一些实施例提供一种单路分发多支路的方法,应用于虚拟通道电路,所述方法包括:接收一条响应数据并为所述响应数据分配标识信息;将所述响应数据存储至可寻址的响应数据缓冲电路中;确认所述响应数据所属的支路,得到目标支路;将所述标识信息存储在与所述目标支路对应的支路链接电路中;确认仲裁电路依据仲裁策略选中所述支路链接电路中存储的所述标识信息;根据所述标识信息从所述响应数据缓冲电路中读取所述响应数据;将所述响应数据发送至与所述目标支路对应的上游数据处理模块。
在一些实施例中,所述仲裁策略为轮询与各条支路对应设置的支路链接电路。
在一些实施例中,所述支路链接电路包括多个地址寄存器。
第三方面,本申请的一些实施例提供一种数据处理装置,所述数据处理装置包括如第一方面任意实施例所述的虚拟通道电路以及多个上游数据处理模块。
第四方面,本申请的一些实施例提供一种芯片,所述芯片包括如第一方面任意实施例所述的虚拟通道电路以及多个上游数据处理模块。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为相关技术提供的单路分发多支路的电路之一;
图2为相关技术提供的单路分发多支路的电路之二;
图3为本申请实施例提供的虚拟通路的组成架构图;
图4为本申请实施例提供的响应数据缓冲电路的组成架构图;
图5为本申请实施例提供的支路判别电路以及各支路链接电路的示意图;
图6为本申请实施例提供的虚拟通道电路组成结构图;
图7为本申请实施例提供的单路分发多支路的方法的流程图;
图8为本申请实施例提供的数据处理装置的组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请的一些实施例提供一种虚拟通道电路,该电路利用为每条响应数据分别配置寻址信息并采用仲裁方式为每条支路提供响应数据转发机会使得本申请的一些实施例可在逻辑上可组织出互不阻挡的响应通道,而且响应通道的长度动态变化,灵活调度各支路响应,充分利用有限的响应带宽。
请参看图3,图3为本申请实施例提供一种虚拟通道电路,该虚拟通道电路包括:响应地址分配电路210、响应数据缓冲电路220以及仲裁电路240。
响应地址分配电路210,被配置为对接收的各支路的各条响应数据分别配置一个寻址信息,其中,与一条支路对应的所有寻址信息组成一个寻址序列。
响应数据缓冲电路220,被配置为将各条响应数据分别存储在可被所述寻址信息寻址的缓存空间。
仲裁电路240,被配置为按照仲裁策略从多个寻址序列中选择一个作为目标寻址序列,以通过所述目标寻址序列从所述响应数据缓冲电路上读取与所述目标寻址序列对应的目标支路的至少一条响应数据。
也就是说,本申请的一些实施例提供一种虚拟通道电路,该电路利用为每条响应数据分别配置寻址信息并采用仲裁方式为每条支路提供响应数据转发机会使得本申请的一些实施例可在逻辑上可组织出互不阻挡的响应通道,而且响应通道的长度动态变化,灵活调度各支路响应,充分利用有限的响应带宽。
需要说明的是,在本申请的一些实施例中,图3的虚拟通道电路还包括用于存储寻址信息以及对各支路进行仲裁的电路。
如图3所示,本申请的一些实施例提供一种虚拟通路电路,该虚拟通路电路包括:支路判别电路230以及仲裁电路240。
支路判别电路230,被配置为分别提取与所述各条支路对应的所有寻址信息。
各支路链接电路,被配置为将对应支路的各个寻址信息组织成一条地址链,得到对应的寻址序列,其中,一个寻址信息指向一条响应数据。
例如,图3的各支路链接电路包括第一支路链接电路、第二支路链接电路,……,直至第N支路链接电路,其中,各支路链接电路包括多个寄存器,每个寄存器可存储为一条响应数据分配的地址信息。
也就是说,本申请的一些实施例为了实现对各个支路的独立仲裁以避免单一支路阻塞导致其他支路数据无法传输的技术问题,提供了支路判别电路以及与各支路分别对应的支路链接电路,并将各支路链接电路作为仲裁电路的被仲裁对象,实现了寻址信息被灵活选中的技术目的,提升数据传输能力。
图3的仲裁电路240被配置为依据仲裁策略选择一个寻址信息作为响应地址,并将响应地址提供给响应数据缓冲电路220。
下面结合图4示例性阐述本申请一些实施例的响应地址分配电路210、响应数据缓冲电路220、支路判别电路230以及各支路链接电路。
如图4所示,本申请的一些实施例提供一种响应数据缓冲电路220,该响应数据缓冲电路220缓冲电路,该缓冲电路用于存储各条支路的各条响应数据,例如,图4示出的各条响应数据包括:第一响应数据、第二响应数据、第三响应数据、第四响应数据、第五响应数据以及第六响应数据,其中,第一响应数据、第三响应数据以及第五响应数据属于第二支路响应数据,第二响应数据、第四响应数据以及第六响应数据属于第一支路响应数据。
本申请的一些实施例为了能够独立读取和存储属于相关支路的各条响应数据需要为存储的各条响应数据分配寻址信息。例如,在本申请的一些实施例中,所述响应地址分配电路被配置为接收的各条响应数据分配一个唯一的标识,其中,所述标识作为相应条响应数据在所述响应数据缓冲电路上的所述寻址信息。也就是说,本申请的一些实施例为各条响应数据分配唯一的标识信息,进而实现各条响应数据的寻址和独立读取。
可以理解的是,若本申请一些实施例的响应地址分配电路210接收到属于某一条支路的响应数据时,会为这条响应数据分配一个标识信息,之后就可以采用该标识信息从响应数据缓冲电路中读取各条响应数据。如图4所示,响应地址分配电路210为接收的第一响应数据分配第一标识、为接收的第二响应数据分配第二标识,为接收的第三响应数据分配第三标识、为接收的第四响应数据分配第四标识,为接收的第五响应数据分配第五标识并为接收的第六响应数据分配第六标识。
本申请的一些实施例的为了根据寻址信息来读取各条响应数据,响应地址分配电路会将为每条响应数据分配的标识信息以及各条相应信息所属的支路标识信息发送给支路判别电路230。
支路判别电路230将寻址信息(即为各响应数据分配的标识信息)按照不同的支路分发给不同的地址寄存器组,其中,一个地址寄存器组用于存储属于一个支路的各条响应数据的标识信息,不同地址寄存器组用于存储属于不同支路的各条响应数据的标识信息。
如图5所示,支路判别电路230将分别属于两条支路(即图4的第一支路和第二支路)的标识信息分别发送至两个支路链接电路中进行存储,其中,支路判别电路230将属于第一支路的指向第二响应数据存储地址的指针(即指向第二标识指针)、指向第四响应数据存储地址的指针(即指向第四标识指针)以及指向第六响应数据存储地址的指针(即指向第六标识指针)依次存放在第一支路链接电路中,支路判别电路230将属于第二支路的指向第一响应数据存储地址的指针(即指向第一标识指针)、指向第三响应数据存储地址的指针(即指向第三标识指针)以及指向第五响应数据存储地址的指针(即指向第五标识指针)依次存放在第二支路链接电路中。可以理解的是,对应与不同支路的支路链接电路是多个地址寄存器。
需要说明的是,图4以及图5是以两条支路为例示例性阐述了相关单元,本申请的实施例不限定支路的具体数据,本领域技术人员可以根据需要设置更多或者更少数目的支路,并对应设置与支路数目相同的支路链接电路。
当任意一个支路想要对某个上游处理模块进行读或者写操作时,它首先要向总线仲裁电路发送请求(Request)信号,仲裁电路一次可能收到多条支路的请求,所以它必须根据一定的仲裁策略对多个支路访问请求进行仲裁,并最后对某个支路给出授权(Grant)信号。通过授权信号来选择哪个支路拥有对响应总线的控制权,只有当该支路完成数据的传输(中断情况除外),其它支路才可能再次获得响应总线的控制权。通过仲裁电路和各支路链接电路来控制各支路的数据传递。
图3的仲裁电路以各支路链接电路为仲裁对象,即在某次仲裁过程中会选中某条支路作为优先处理的支路依次输出该条支路的支路链接电路中存储的各个响应地址(即用于寻址响应数据缓冲电路220上各条响应数据的地址信息)并读取这些数据提供至于该支路对应的上游处理模块。
本申请的一些实施例中仲裁电路240的仲裁策略可以为轮询方式,轮询仲裁即每次访问结束后都会更新优先级,假设有四个请求A,B,C,D,某个时刻这4个请求的优先级为A>B>C>D,这个时刻将总线控制权交给C,则这个请求后的优先级修改为D>A>B>C。也就是说,轮询仲裁的规则是当0、1、2、……、N-1个支路的响应数据同时向仲裁电路发出请求时,初始情况下第一支路的优先级最高,当仲裁电路响应了第一支路后,第二支路的优先级最高,依次类推。
轮询仲裁电路的实现分为检测仲裁电路输入口source信号源的request,根据当前仲裁电路的优先级响应相应的request,仲裁电路grant输出源端的请求,更新仲裁器的优先级。按排序1、2、3、4、5…优先级一个个排下来。
仲裁电路采用的轮询算法如下:a.如果当前只有一个信号请求,则不用仲裁,那条支路申请就可以占用响应总线。b.如果没有请求,那么第一支路获得响应总线。c.如果同时有多个信号请求,考虑上一个请求信号,即如果上一个请求信号是第一支路,那么轮询的是第二支路;如果上一个请求信号是第二支路,那么轮询的是第三支路;如果上一个请求信号是第i支路,那么轮询的是第i+1支路。
可以理解的是,在本申请的一些实施例中,所述响应数据缓冲电路属于可被所述寻址信息寻址的静态存储器。本申请的一些实施例提供一种可寻址的存储单元。在本申请的一些实施例中,所述仲裁策略为轮询与各条支路分别对应的目标寻址序列。本申请一些实施例通过轮询方式作为仲裁策略选取各条响应数据提供给上游处理模块。在本申请的一些实施例中,所述各支路链接电路包括多个地址寄存器,其中,每个寄存器用于存储指向所述响应数据缓冲电路的一个可寻址的缓存单元。本申请一些实施例提供一种地址寄存器,采用地址寄存器存储各条响应数据并将属于一条支路的寻址信息作为一组仲裁对象。
下面结合图6以两个支路为例示例性阐述本申请一些实施例的虚拟通道电路。
本申请的一些实施例提供了一种虚拟通道的电路,可以提高单路转多路的传输效率,该虚拟通道电路至少包括如下:响应地址分配电路、响应数据缓冲电路(即图6的响应缓冲电路)、支路判别电路、支路链接电路(包括图6的支路0链接电路以及支路1链接电路)以及仲裁电路。
图6的响应数据缓冲电路,用于给每个新的响应数据分配一个唯一的标识(index),此标识作为新响应在缓冲静态存储器(即响应数据缓冲电路,属于半导体存储器)的存储地址,并且将响应数据存储在缓冲电路里面。
下面示例性阐述本申请一些实施例采用的响应数据缓冲电路的类型。
半导体存储器(Semi-conductor Memory)顾名思义就是半导体集成电路工艺制成的存储数据信息的固态电子器件,简称半导体存储器。它由大量相同的存储单元和输入、输出电路等构成,按其制造工艺可分为双极晶体管存储器和MOS晶体管存储器;按保存数据的机理分为静态存储器(Static RAM,SRAM)和动态存储器(Dynamic RAM,DRAM)。
目前广泛使用的半导体随机读写存储器是MOS半导体存储器,半导体存储器芯片按照读写功能可分为只读存储器(Read Only Memory,ROM)和随机读写存储器(RandomAccess Memory,RAM)两大类。RAM可读可写,断电时信息会丢失,本申请一些实施例采用的响应数据缓冲电路属于可读可写RAM存储器;ROM中的内容只能读出,不能写入,信息可永久保存,不会因为断电而丢失。
例如,本申请一些实施例的响应数据缓冲电路属于静态存储器(SRAM),该缓冲电路可以利用双稳态触发器来保存信息,只要不断电信息就不会丢失。静态存储器的集成度低,成本高,功耗较大。
图6的支路判别电路用于判别响应地址分配电路输入的标识信息属于那条支路的标识信息,并将该标识信息存储至对应支路的支路链接电路。
例如,支路判别电路根据响应数据包含的支路编号信息进行判别。每条响应数据都有唯一的支路编号信息,支路判别电路根据此信息将响应数据归集到对应的支路链接电路。
图6的支路链接电路,用于将支路的响应数据在响应数据缓冲电路中的存储地址组织成一条地址链,地址链基本单元是地址指针寄存器,每个地址指针存放着该支路下一个响应数据的在响应数据缓冲电路中的存储地址。如图6所示,该图的虚拟通道电路具有2支路,可以理解的是,本申请的一些实施例为2条支路分别设置一个支路链接电路,包括图6的支路0链接电路以及支路1链接电路这两条支路链接电路。
图6的响应仲裁电路,按照轮询的方式(作为一种仲裁策略),依次授权给链接电路(即对应一条支路),获取授权的链接电路根据地址指针寄存器上的地址,从响应缓冲电路(即响应数据缓冲电路)上读取响应信息(即响应数据),并将读取的响应信息发送给相应支路的上游模块。
需要说明的是,上述实施例以轮询作为仲裁电路的仲裁策略,本领域的技术人员也可以根据场景的不同设置不同的仲裁策略。例如,这些仲裁可以为固定优先级的仲裁策略、轮询方式的仲裁策略或者其它的仲裁算法对应的仲裁策略。
可以理解的是,固定优先级仲裁的一个问题就是公平性。仲裁电路的公平性问题是在设计中必须要考虑的。
轮询方式Round Robin就是考虑到公平性的一种仲裁算法。其基本思路是,当一个请求requestor得到了授权grant许可之后,它的优先级在接下来的仲裁中就变成了最低,也就是说每个requestor的优先级不是固定的,而是会在最高(获得了grant)之后变为最低,并且根据其他requestor的许可情况进行相应的调整。这样当有多个requestor的时候,grant可以依次给每个requestor,即使之前高优先级的requestor再次有新的request,也会等前面的requestor都grant之后再轮到它。
本申请的一些实施例以4个requestor为例来说明,下面表1这个表格Req[3:0]列表示实际的request,为1表示产生了request;RR Priority这一列为当前的优先级,为0表示优先级最高,为3表示优先级最低;RR Grant这一列表示根据当前轮询Round Robin的优先级和request给出的许可;Fixed Grant表示如果是固定优先级,即按照3210,给出的grant值。
表1
Req[3:0] | RR Priority | RR Grant[3:0] | Fixed Grant | |
Cycle 0 | 0101 | 3210 | 0001 | 0001 |
Cycle 1 | 0101 | 2103 | 0100 | 0001 |
Cycle 2 | 0011 | 0321 | 0001 | 0001 |
Cycle 3 | 0010 | 2103 | 0010 | 0010 |
Cycle 4 | 1000 | 1032 | 1000 | 1000 |
第一个周期,初始状态,假设req[0]的优先级最高,req[1]其次,req[3]最低,当req[2]和req[0]同时为1的时候,根据优先级,req[0]优先级高于req[2],grant=0001。
第二个周期,因为req[2]在前一个周期并没有获得grant,那么它继续为1,而这个时候req[0]又来了一个新的request,这个时候就能够看出轮询方式round robin和固定优先级方式fixed priority的差别了。对于fixed priority,grant依然给0,即0001。但是round robin算法的要求是:因为上一个周期req[0]已经被grant了,那么它的优先级变为最低的3,相应的,req[1]的优先级变为最高,因为它本来就是第二高的优先级,那么当req[0]优先级变为最低了之后它自然递补到最高,那么这个时候产生的许可grant就不能给到req[0],而是要给到req[2]。
同理,第三个周期,req[2]因为在前一个周期grant过,它的优先级变为3最低,req[3]的优先级变为最高。后面的周期可以顺着分析下来。
也就是说,因为被grant的那一路优先级在下一个周期变为最低,这样让其他路request都会依次被grant到,而不会出现其中某一路在其他路有request的情况下连续被grant的情况,所以round-robin也被翻译成“轮询”调度。
不难理解的是,本申请一些实施例提供的虚拟通道电路的优点就是在逻辑上可组织出互不阻挡的响应通道,而且响应通道的长度动态变化,灵活调度各支路响应,充分利用有限的响应带宽。
下面结合图7示例性阐述由虚拟通道电路提供的一种单路分发多支路的方法。
如图7所示,本申请的一些实施例提供一种单路分发多支路的方法,应用于虚拟通道电路,该方法包括:
S101,接收一条响应数据并为所述响应数据分配标识信息。
例如,该步骤可以由图6的响应数据缓冲电路执行,该电路用于给每个新的响应数据分配一个唯一的标识(index)(即分配标识信息),此标识作为新响应在缓冲静态存储器(即响应数据缓冲电路,属于半导体存储器)的存储地址,并且将响应数据存储在缓冲电路里面。半导体存储器(Semi-conductor Memory)顾名思义就是半导体集成电路工艺制成的存储数据信息的固态电子器件,简称半导体存储器。它由大量相同的存储单元和输入、输出电路等构成,按其制造工艺可分为双极晶体管存储器和MOS晶体管存储器;按保存数据的机理分为静态存储器(Static RAM,SRAM)和动态存储器(Dynamic RAM,DRAM)。
例如,本申请一些实施例的响应数据缓冲电路属于静态存储器(SRAM),该缓冲电路可以利用双稳态触发器来保存信息,只要不断电信息就不会丢失。静态存储器的集成度低,成本高,功耗较大。
S102,将所述响应数据存储至可寻址的响应数据缓冲电路中。
也就是说,将响应数据存储在响应数据缓冲电路中。如图4所示,本申请的一些实施例提供一种响应数据缓冲电路220,该响应数据缓冲电路220缓冲电路,该缓冲电路用于存储各条支路的各条响应数据,例如,图4示出的各条响应数据包括:第一响应数据、第二响应数据、第三响应数据、第四响应数据、第五响应数据以及第六响应数据,其中,第一响应数据、第三响应数据以及第五响应数据属于第二支路响应数据,第二响应数据、第四响应数据以及第六响应数据属于第一支路响应数据。
如图4所示,响应地址分配电路210为接收的第一响应数据分配第一标识、为接收的第二响应数据分配第二标识,为接收的第三响应数据分配第三标识、为接收的第四响应数据分配第四标识,为接收的第五响应数据分配第五标识并为接收的第六响应数据分配第六标识。本申请的一些实施例的为了根据寻址信息来读取各条响应数据,响应地址分配电路会将为每条响应数据分配的标识信息以及各条相应信息所属的支路标识信息发送给支路判别电路230。
S103,确认所述响应数据所属的支路,得到目标支路。
例如该S103可以是由支路判别电路230执行的步骤。
假设支路判别电路230接收一条标识信息并确定该标识信息属于支路0的响应数据的标识,之后会将该标识提供给图6的支路0链接电路中进行存储。
假设支路判别电路230接收一条标识信息并确定该标识信息属于支路1的响应数据的标识,之后会将该标识提供给图6的支路1链接电路中进行存储。
可以理解的是,通过该支路判别电路可以将属于各支路的寻址信息组成一个地址组,该地址组可以作为仲裁电路的仲裁对象。也就是说,仲裁电路将其中一个支路链接电路作为一个授权对象。
S104,将所述标识信息存储在与所述目标支路对应的支路链接电路中。
例如,图6的支路链接电路,用于将支路的响应数据在响应数据缓冲电路中的存储地址组织成一条地址链,地址链基本单元是地址指针寄存器,每个地址指针存放着该支路下一个响应数据的在响应数据缓冲电路中的存储地址。如图6所示,该图的虚拟通道电路具有2支路,可以理解的是,本申请的一些实施例为2条支路分别设置一个支路链接电路,包括图6的支路0链接电路以及支路1链接电路这两条支路链接电路。
例如,在本申请的一些实施例中,若确认标识信息属于支路0,则在支路0链接电路中存储该标识信息,其中,在本申请的一些实施例中支路0链接电路是按照接收标识信息的顺序存储各标识信息的,且若仲裁电路授权该支路时则按照先进先出的原则读取属于该支路的标识信息的依据对应标识信息从响应数据缓冲电路中读取对应存储的响应数据。
例如,在本申请的一些实施例中,若确认标识信息属于支路1,则在支路1链接电路中存储该标识信息,其中,在本申请的一些实施例中支路1链接电路是按照接收标识信息的顺序存储各标识信息的,且若仲裁电路授权该支路时则按照先进先出的原则读取属于该支路的标识信息的依据对应标识信息从响应数据缓冲电路中读取对应存储的响应数据。
S105,确认仲裁电路依据仲裁策略选中所述支路链接电路中存储的所述标识信息。
下面以多个连续周期,两个支路且仲裁策略为轮询方式示例性阐述S105。
第一个周期,初始状态,假设支路0的优先级最高,支路1其次,当支路0和支路1的请求状态同时为1的时候,根据优先级,支路0的优先级高于支路1。
对应的仲裁电路会将支路0链接电路存储的多个地址依次作为响应地址,由读取电路依据这些地址依次读取响应数据缓冲电路中存储的响应数据并将这些响应数据提供给上游处理模块。
第二个周期,因为支路1在前一个周期并没有获得授权grant,那么它继续为1,而这个时候支路0又来了一个新的请求request,这个时候就能够看出轮询方式round robin和固定优先级方式fixed priority的差别了。对于fixed priority,依然授权支路0作为响应地址。但是轮询方式round robin算法的要求是:因为上一个周期支路0已经被授权grant了,那么它的优先级变为最低的,相应的,支路1的优先级变为最高,因为它本来就是第二高的优先级,那么当支路0优先级变为最低了之后它自然递补到最高,那么这个时候产生的许可授权grant就不能给到支路0,而是要给到支路1的支路1链接电路。
对应的仲裁电路会将支路1链接电路存储的多个地址依次作为响应地址,由读取电路依据这些地址依次读取响应数据缓冲电路中存储的响应数据并将这些响应数据提供给上游处理模块。
同理,第三个周期,支路1因为在前一个周期授权grant过,它的优先级变为最低,支路0的优先级变为最高。后面的周期可以顺着分析下来。
也就是说,因为被授权grant的那一路优先级在下一个周期变为最低,这样让其他路request都会依次被grant到,而不会出现其中某一路在其他路有request的情况下连续被grant的情况,所以round-robin也被翻译成“轮询”调度。
S106,根据所述标识信息从所述响应数据缓冲电路中读取所述响应数据。
例如,如图4所示,若仲裁电路本次授权给第一支路的支路链接电路,则根据第二标识信息从缓冲电路中读取第二响应数据,并将第二响应数据发送至第一支路的上游处理模块;根据第四标识信息从缓冲电路中读取第四响应数据,并将第四响应数据发送至第一支路的上游处理模块;根据第六标识信息从缓冲电路中读取第六响应数据,并将第六响应数据发送至第一支路的上游处理模块。
例如,如图4所示,若仲裁电路本次授权给第二支路的支路链接电路,则根据第一标识信息从缓冲电路中读取第一响应数据,并将第一响应数据发送至第二支路的上游处理模块;根据第三标识信息从缓冲电路中读取第三响应数据,并将第三响应数据发送至第二支路的上游处理模块;根据第五标识信息从缓冲电路中读取第五响应数据,并将第五响应数据发送至第二支路的上游处理模块。
S107,将所述响应数据发送至与所述目标支路对应的上游数据处理模块。
例如,在本申请的一些实施例中,所述仲裁策略为轮询与各条支路对应设置的支路链接电路。
轮询方式Round Robin就是考虑到公平性的一种仲裁算法。其基本思路是,当一个请求requestor得到了授权grant许可之后,它的优先级在接下来的仲裁中就变成了最低,也就是说每个requestor的优先级不是固定的,而是会在最高(获得了grant)之后变为最低,并且根据其他requestor的许可情况进行相应的调整。这样当有多个requestor的时候,grant可以依次给每个requestor,即使之前高优先级的requestor再次有新的request,也会等前面的requestor都grant之后再轮到它。
在本申请的一些实施例中,所述支路链接电路包括多个地址寄存器。例如,图6所述的支路0链接电路包括N个地址寄存器,支路1链接电路包括M个地址寄存器,其中,M和N的取值为大于或等于1的整数。
本申请的一些实施例提供一种芯片,所述芯片包括如上述任意实施例所述的虚拟通道电路以及多个上游数据处理模块。
如图3所示本申请一些示例的图8的虚拟通道电路200示例性包括:响应地址分配电路210、响应数据缓冲电路220以及仲裁电路240。
响应地址分配电路210,被配置为对接收的各支路的各条响应数据分别配置一个寻址信息,其中,与一条支路对应的所有寻址信息组成一个寻址序列。
响应数据缓冲电路220,被配置为将各条响应数据分别存储在可被所述寻址信息寻址的缓存空间。
仲裁电路240,被配置为按照仲裁策略从多个寻址序列中选择一个作为目标寻址序列,以通过所述目标寻址序列从所述响应数据缓冲电路上读取与所述目标寻址序列对应的目标支路的至少一条响应数据。
也就是说,本申请的一些实施例提供一种虚拟通道电路,该电路利用为每条响应数据分别配置寻址信息并采用仲裁方式为每条支路提供响应数据转发机会使得本申请的一些实施例可在逻辑上可组织出互不阻挡的响应通道,而且响应通道的长度动态变化,灵活调度各支路响应,充分利用有限的响应带宽。
需要说明的是,在本申请的一些实施例中,图3的虚拟通道电路还包括用于存储寻址信息以及对各支路进行仲裁的电路。
如图8所示,本申请的一些实施例提供一种数据处理装置,所述数据处理装置包括虚拟通道电路200以及多个上游数据处理模块。
如图3所示本申请一些示例的图8的虚拟通道电路200示例性包括:
响应地址分配电路210、响应数据缓冲电路220以及仲裁电路240。
响应地址分配电路210,被配置为对接收的各支路的各条响应数据分别配置一个寻址信息,其中,与一条支路对应的所有寻址信息组成一个寻址序列。例如,该电路用于给每个新的响应数据分配一个唯一的标识(index)(即分配标识信息),此标识作为新响应在缓冲静态存储器(即响应数据缓冲电路,属于半导体存储器)的存储地址,并且将响应数据存储在缓冲电路里面。
响应数据缓冲电路220,被配置为将各条响应数据分别存储在可被所述寻址信息寻址的缓存空间。例如,本申请一些实施例的响应数据缓冲电路属于静态存储器(SRAM),该缓冲电路可以利用双稳态触发器来保存信息,只要不断电信息就不会丢失。静态存储器的集成度低,成本高,功耗较大。例如,如图4所示,本申请的一些实施例提供一种响应数据缓冲电路220,该响应数据缓冲电路220缓冲电路,该缓冲电路用于存储各条支路的各条响应数据,例如,图4示出的各条响应数据包括:第一响应数据、第二响应数据、第三响应数据、第四响应数据、第五响应数据以及第六响应数据,其中,第一响应数据、第三响应数据以及第五响应数据属于第二支路响应数据,第二响应数据、第四响应数据以及第六响应数据属于第一支路响应数据。
仲裁电路240,被配置为按照仲裁策略从多个寻址序列中选择一个作为目标寻址序列,以通过所述目标寻址序列从所述响应数据缓冲电路上读取与所述目标寻址序列对应的目标支路的至少一条响应数据。例如,本申请一些实施例的响应仲裁电路,按照轮询的方式(作为一种仲裁策略),依次授权给链接电路(即对应一条支路),获取授权的链接电路根据地址指针寄存器上的地址,从响应缓冲电路(即响应数据缓冲电路)上读取响应信息(即响应数据),并将读取的响应信息发送给相应支路的上游模块。
也就是说,本申请的一些实施例提供一种虚拟通道电路,该电路利用为每条响应数据分别配置寻址信息并采用仲裁方式为每条支路提供响应数据转发机会使得本申请的一些实施例可在逻辑上可组织出互不阻挡的响应通道,而且响应通道的长度动态变化,灵活调度各支路响应,充分利用有限的响应带宽。
需要说明的是,在本申请的一些实施例中,图3的虚拟通道电路还包括用于存储寻址信息以及对各支路进行仲裁的电路。
图8示例性提供了第一支路上游处理模块201、第二支路上游处理模块202以及第三支路上游处理模块203。可以理解的是本申请的实施例并不限定上游处理模块的数量,该数量与对应支路的数量相等。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种虚拟通道电路,其特征在于,所述虚拟通道电路包括:
响应地址分配电路,被配置为对接收的各支路的各条响应数据分别配置一个寻址信息,其中,与一条支路对应的所有寻址信息组成一个寻址序列;
响应数据缓冲电路,被配置为将各条响应数据分别存储在可被所述寻址信息寻址的缓存空间;
仲裁电路,被配置为按照仲裁策略从多个寻址序列中选择一个作为目标寻址序列,以通过所述目标寻址序列从所述响应数据缓冲电路上读取与所述目标寻址序列对应的目标支路的至少一条响应数据。
2.如权利要求1所述的虚拟通道电路,其特征在于,所述虚拟通道电路还包括:
支路判别电路,被配置为分别提取与所述各条支路对应的所有寻址信息;
各支路链接电路,被配置为将对应支路的各个寻址信息组织成一条地址链,得到对应的寻址序列,其中,一个寻址信息指向一条响应数据。
3.如权利要求1所述的虚拟通道电路,其特征在于,所述响应地址分配电路被配置为接收的各条响应数据分配一个唯一的标识,其中,所述标识作为相应条响应数据在所述响应数据缓冲电路上的所述寻址信息。
4.如权利要求1所述的虚拟通道电路,其特征在于,所述响应数据缓冲电路属于可被所述寻址信息寻址的静态存储器。
5.如权利要求1所述的虚拟通道电路,其特征在于,所述仲裁策略为轮询与各条支路分别对应的目标寻址序列。
6.如权利要求2所述的虚拟通道电路,其特征在于,所述各支路链接电路包括多个地址寄存器,其中,每个寄存器用于存储指向所述响应数据缓冲电路的一个可寻址的缓存单元。
7.一种单路分发多支路的方法,应用于虚拟通道电路,其特征在于,所述方法包括:
接收一条响应数据并为所述响应数据分配标识信息;
将所述响应数据存储至可寻址的响应数据缓冲电路中;
确认所述响应数据所属的支路,得到目标支路;
将所述标识信息存储在与所述目标支路对应的支路链接电路中;
确认仲裁电路依据仲裁策略选中所述支路链接电路中存储的所述标识信息;
根据所述标识信息从所述响应数据缓冲电路中读取所述响应数据;
将所述响应数据发送至与所述目标支路对应的上游数据处理模块。
8.如权利要求7所述的方法,其特征在于,所述仲裁策略为轮询与各条支路对应设置的支路链接电路。
9.如权利要求7所述的方法,其特征在于,所述支路链接电路包括多个地址寄存器。
10.一种数据处理装置,其特征在于,所述数据处理装置包括如权利要求1-6任一项所述的虚拟通道电路以及多个上游数据处理模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310473813.1A CN116668297A (zh) | 2023-04-27 | 2023-04-27 | 一种虚拟通道电路、单路分发多支路的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310473813.1A CN116668297A (zh) | 2023-04-27 | 2023-04-27 | 一种虚拟通道电路、单路分发多支路的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116668297A true CN116668297A (zh) | 2023-08-29 |
Family
ID=87708809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310473813.1A Pending CN116668297A (zh) | 2023-04-27 | 2023-04-27 | 一种虚拟通道电路、单路分发多支路的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116668297A (zh) |
-
2023
- 2023-04-27 CN CN202310473813.1A patent/CN116668297A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2515232B1 (en) | Priority level arbitration method and device | |
US5412788A (en) | Memory bank management and arbitration in multiprocessor computer system | |
EP1403773B1 (en) | Resource management device | |
US7360035B2 (en) | Atomic read/write support in a multi-module memory configuration | |
US7373445B2 (en) | Method and apparatus for allocating bus access rights in multimaster bus systems | |
KR100590387B1 (ko) | 네트워크 프로세서에서 메모리 대역폭을 효율적으로공유하기 위한 장치 및 방법 | |
US9606945B2 (en) | Access controller, router, access controlling method, and computer program | |
US7373467B2 (en) | Storage device flow control | |
GB1438875A (en) | Data storage systems | |
US7760768B2 (en) | System and method for allocating a plurality of sources to a plurality of channels | |
US8706940B2 (en) | High fairness variable priority arbitration method | |
EP1313019B1 (en) | Arbitration apparatus | |
US9104531B1 (en) | Multi-core device with multi-bank memory | |
CA2399186C (en) | Data transfer apparatus and data transfer method | |
CN100541463C (zh) | 仲裁访问的装置和方法 | |
CN116668297A (zh) | 一种虚拟通道电路、单路分发多支路的方法及装置 | |
CN111466106A (zh) | 通过龄值和流量类进行的请求仲裁 | |
KR100475735B1 (ko) | 긴급채널을 이용한 공유버스 중재방법 및 그 장치 | |
KR20090128851A (ko) | 버스 중재 방법 및 장치 | |
US7254661B2 (en) | Methods, circuits, and computer program products for variable bus arbitration | |
US11429437B2 (en) | System for arbitrating between multiple flows | |
US20200257471A1 (en) | Control apparatus and control method | |
JPH10222462A (ja) | 調停装置 | |
JP4170506B2 (ja) | 調停回路および方法 | |
CN116686269A (zh) | 一种路由器及片上系统 |
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 |