CN102216920A - 先进可扩展接口总线以及相应的数据传输方法 - Google Patents
先进可扩展接口总线以及相应的数据传输方法 Download PDFInfo
- Publication number
- CN102216920A CN102216920A CN2011800005885A CN201180000588A CN102216920A CN 102216920 A CN102216920 A CN 102216920A CN 2011800005885 A CN2011800005885 A CN 2011800005885A CN 201180000588 A CN201180000588 A CN 201180000588A CN 102216920 A CN102216920 A CN 102216920A
- Authority
- CN
- China
- Prior art keywords
- elementary cell
- slave unit
- packet
- route
- axi
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了先进可扩展接口(AXI)总线以及相应的数据传输方法。本发明实施例采用以2×2的AXI全交叉的总线结构为基本单元,然后利用该基本单元搭建一个N2全循环Mesh总线结构,由于采用的是N2全循环Mesh总线结构,所以相对于现有的全交叉总线结构而言,布线较少,复杂度较低,而且扩展性也较强,此外,由于该N2全循环Mesh总线结构中的基本单元内部采用的是2×2的AXI全交叉的总线结构,所以可以使得路由机制更为灵活简单,而且由于采用的是多端口结构,所以有利于设置多条路由,以避免路径阻塞所导致的AXI总线堵塞,而且在数据量较大的情况下,还可以利用这多条路由实现分流。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种先进可扩展接口(AXI,AdvancedeXtensible Interface)总线以及相应的数据传输方法。
背景技术
先进可扩展接口(AXI,Advanced eXtensible Interface)是适用于高速深亚微米集成电路的互联的高性能系统总线。AXI协议架构如图1a所示,AXI传输基于五个传输通道进行,在上层协议看来,AXI是将传输按方向分为五种包(Packet),分别为读操作的读请求包(AR,Address Read)、读数据及应答包(R,Read)和写操作的写请求包(AW,Address Write)、写数据包(W,Write)、写应答包(B,Back),其中AR包、AW包、W包为主设备(Master)发送给从设备(Slave),R包及B包为从设备返回给主设备的包。AXI的典型读操作由一个AR和若干的R组成,AXI的典型写操作由一个AW、若干的W和一个B组成。一次传输由多个包组成,并以相同的设备标识(ID,IDentity)号作为标记。其中各种包之间的依赖性很小,没有固定的相位关系,因此支持高效率的挂起传输(Outstanding),即主设备或从设备都可以存在若干激活(Active)但未完成的操作,并通过ID进行顺序控制。
AXI总线除了点对点的主设备和从设备连接外,还被搭建为各种复杂的片内总线结构,包括共享总线结构(Shared Bus)、全交叉的总线结构(Crossbar)等拓扑类型,以完成多个主设备和多个从设备在片内的互联。
参见图1b,该图为现有的全交叉的总线结构的示意图,从图1b中可以看出,在该总线结构中,每个主设备都与所有的从设备具有连接关系,所以只要同时闭合多个交叉节点(Crosspoint),多个不同的主设备和从设备间就可以同时传输数据,使得所有端口可以同时线速交换数据。其中,AXI总线信号线的数量为一组AXI连接的信号线数量、主设备端口数量和从设备端口数量三者之间的乘积。当端口数量线性增加的同时,信号线的数量是以二次方增长。而AXI总线本身多通道特性也决定了其一组信号线的数量非常多(约300根),所以,一个3x3的全交叉的总线结构将会有2700根AXI信号线,而4x4的全交叉的总线结构则有4800根AXI信号线。
在对现有技术的研究和实践过程中,本发明的发明人发现,在具有较多主设备和从设备的场景下,如果使用现有的全交叉的总线结构来搭建AXI总线的话,信号线的数量将十分庞大,以至于芯片布线时根本无法布通,或者即使能够布通,其走线也将非常长,致使延迟较大,从而导致总线的频率大幅下降,影响总线的性能;另外,该结构的AXI总线的接入和扩展也很困难,而且其路由机制为单一路由结构,容易造成路由阻塞。
发明内容
本发明实施例提供一种AXI总线结构以及相应的数据传输方法,该AXI总线结构复杂度较低,扩展性强,且路由灵活。
一种先进可扩展接口AXI总线,包括:
所述AXI总线为一个N2全循环网状(Mesh)总线结构,包括N×N基本单元,所述基本单元为以2×2的AXI全交叉的总线结构(即2×2的Crossbar),所述基本单元上包括两个从设备接口和两个主设备接口;所述基本单元上的每一个从设备接口都和另一个基本单元上的一个主设备接口相连,形成第一路径;其中,N为正整数。
一种数据传输方法,包括:
通过基本单元的主设备接口接收主设备发送的数据包;
通过基本单元的从设备接口,利用先进可扩展接口AXI总线将所述数据包发送给目的从设备;
通过基本单元的从设备接口接收所述目的从设备返回的响应包;
其中,所述基本单元为以2×2的AXI全交叉的总线结构,所述AXI总线为利用所述基本单元搭建一个N2全循环网状Mesh总线结构,其中,N为正整数,基本单元的个数为N×N个。
本发明实施例采用以2×2的AXI全交叉的总线结构为基本单元,然后利用该基本单元搭建一个N2全循环Mesh总线结构,由于采用的是N2全循环Mesh总线结构,所以相对于现有的全交叉总线结构而言,布线较少,复杂度较低,而且扩展性也较强,此外,由于该N2全循环Mesh总线结构中的基本单元内部采用的是2×2的AXI全交叉的总线结构,所以可以使得路由机制更为灵活简单,而且由于采用的是多端口结构,所以有利于设置多条路由,以避免路径阻塞所导致的AXI总线堵塞,而且在数据量较大的情况下,还可以利用这多条路由实现分流。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是AXI协议架构的示意图;
图1b是现有的全交叉的总线结构的示意图;
图2是本发明实施例所提供的AXI总线中基本单元的示意图;
图3是本发明实施例所提供的N为3的一个AXI总线的结构图;
图4是注册片连接主设备时的示意图;
图5是注册片连接从设备时的示意图;
图6是本发明实施例所提供的一种数据传输方法的流程图;
图7是本发明实施例所提供的N为3的一个AXI总线的场景示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种AXI总线以及相应的数据传输方法。以下分别进行详细说明。
一种AXI总线,包括:该AXI总线为一个N2全循环网状Mesh总线结构,包括N×N个基本单元,所述基本单元为以2×2的AXI全交叉的总线结构(即2×2的Crossbar),其中,该基本单元上包括两个从设备接口和两个主设备接口;该基本单元上的每一个从设备接口都和另一个基本单元上的一个主设备接口相连,形成第一路径。其中,N为正整数,为了避免网络过大以导致延迟过大,N一般取小于8的正整数时效果较佳。以下将举例进行说明。
如图2所示,该图为基本单元的示意图,该基本单元具有两个从设备接口和两个主设备接口,具体为第一从设备接口、第二从设备接口、第一主设备接口和第二主设备接口;其中,第一从设备接口分别与第一主设备接口和第二主设备接口连接,第二从设备接口也分别与第一主设备接口和第二主设备接口连接,参见图2中的虚线部分。
需说明的是,其中,第一从设备接口和第二从设备接口之间的结构和功能都相同,第一主设备接口和第二主设备接口之间的结构和功能也都相同。其中,在本发明实施例中,第一从设备接口和第二从设备接口统称为从设备接口,第一主设备接口和第二主设备接口统称为主设备接口。
利用基本单元搭建一个N2全循环网状(Mesh)总线结构,使得该基本单元上的每一个从设备接口都和另一个基本单元上的一个主设备接口相连,其中,为了描述方便,将基本单元之间连接所形成的路径称为第一路径,即第一路径指的是一个基本单元的从设备接口与另一个基本单元的主设备接口之间的路径。
例如,参见图3,该图为一个N为3的一个AXI总线的结构图,在该AXI总线中,包括有32个(即9个)基本单元,具体为:基本单元A、基本单元B、基本单元C、基本单元D、基本单元E、基本单元F、基本单元G、基本单元H和基本单元I;其中,各个单元之间的连接关系可以如下:
基本单元A的第一主设备接口与基本单元I的第二从设备接口连接,基本单元A的第二主设备接口与基本单元E的第一从设备接口连接;
基本单元B的第一主设备接口与基本单元D的第二从设备接口连接,基本单元B的第二主设备接口与基本单元F的第一从设备接口连接;
基本单元C的第一主设备接口与基本单元E的第二从设备接口连接,基本单元C的第二主设备接口与基本单元G的第一从设备接口连接;
基本单元D的第一主设备接口与基本单元C的第二从设备接口连接,基本单元D的第二主设备接口与基本单元H的第一从设备接口连接;
基本单元E的第一主设备接口与基本单元G的第二从设备接口连接,基本单元E的第二主设备接口与基本单元I的第一从设备接口连接;
基本单元F的第一主设备接口与基本单元H的第二从设备接口连接,基本单元F的第二主设备接口与基本单元A的第一从设备接口连接;
基本单元G的第一主设备接口与基本单元F的第二从设备接口连接,基本单元G的第二主设备接口与基本单元B的第一从设备接口连接;
基本单元H的第一主设备接口与基本单元A的第二从设备接口连接,基本单元H的第二主设备接口与基本单元C的第一从设备接口连接;
基本单元I的第一主设备接口与基本单元B的第二从设备接口连接,基本单元I的第二主设备接口与基本单元D的第一从设备接口连接。
其中,基本单元之间连接所形成的路径称为第一路径,比如,具体可参见图3中各个单元之间的连线。
在该第一路径上,包括有注册片(Register Slice),主要用于连接主设备或从设备,即主设备或从设备可以通过该注册片接入该AXI总线。
该注册片的级数可以根据实际应用的需求进行设定,比如,可以设定该注册片的级数与第一路径上的节点数相等(为了描述方便,在本发明实施例中,将均以注册片的级数与第一路径上的节点数相等为例进行说明,应当理解的是,注册片的级数并没有特别的限制),其中,这里的节点指的是主设备或从设备。也就是说,在第一路径上,可以插入多个主设备或从设备,而主设备和从设备又可以拥有多个节点。一般的,一个注册片用于接入一个主设备或从设备,所以,每插入一个主设备或从设备,就需要增加一级注册片。
其中,注册片的结构可参见图4和图5。在该注册片中,可以包括多路复用(MUX,Multiplex)模块和复合信号(COMP)模块。
参见图4,当注册片用于连接主设备时,该注册片中的MUX模块可以用于接收该连接的主设备所插入的读请求包、写请求包或写数据包;而此时,COMP模块则可以用于截获所述主设备的设备标识,以及与该设备标识匹配的读数据及应答包、或写应答包;
参见图5,当注册片用于连接从设备时该注册片中的MUX模块可以用于接收该连接的从设备所插入的读数据及应答包、或写应答包;而此时,COMP模块则可以用于截获地址与预置设定地址匹配的读请求包、写请求包和对应的写数据包。
为了防止AXI总线上的写请求包和写数据包因传输分离而导致挂死或节点插入数据困难等情况,每个基本单元还可以具有将基本单元的主设备接口所收到的写请求包和写数据包对齐的功能。所谓对齐,指的是写请求与写数据之间满足一定的对应性。如果写请求包和写数据包不能对齐,而是分离发送,可能会导致数据交叉而使得总线死锁。即:
基本单元,还用于将所述写请求包和相应的写数据包对齐,以保证其主设备接口所传输的写请求包和写数据包不存在挂起传输(Outstanding)功能。其中,每个基本单元在其主设备接口下面的节点收到写请求包时,其后新起的W数据即为该写请求包所对应写数据包。
需说明的是,将基本单元的主设备接口所收到的写请求包和写数据包对齐,指的是为写请求包确定其相应的写数据包。
由上可知,本实施例采用以2×2的AXI全交叉的总线结构为基本单元,然后利用该基本单元搭建一个N2全循环Mesh总线结构,由于采用的是N2全循环Mesh总线结构,所以相对于现有的全交叉总线结构而言,布线较少,复杂度较低,而且扩展性也较强,此外,由于该N2全循环Mesh总线结构中的基本单元内部采用的是2×2的AXI全交叉的总线结构,所以可以提供两个从设备接口和两个主设备接口,有利于设置多条路由,使得路由机制更为灵活,以避免路径阻塞所导致的AXI总线堵塞,而且在数据量较大的情况下,还可以利用这多条路由实现分流。
相应的,本发明实施例还提供一种数据传输方法。具体可以如下所述。
在本实施例中,将从基本单元的角度进行描述。
一种数据传输方法,包括:通过基本单元的主设备接口接收主设备发送的数据包;通过基本单元的从设备接口,利用AXI总线将该数据包发送给目的从设备;通过基本单元的从设备接口接收目的从设备返回的响应包。
其中,基本单元为以2×2的AXI全交叉的总线结构,AXI总线为利用该基本单元搭建的一个N2全循环Mesh总线结构,其中,N为正整数,基本单元的个数为N×N个,具体可参见前面实施例。
以下将举例对该数据传输方法进行说明。参见图6,该数据传输方法的具体流程可以如下:
101、通过基本单元的主设备接口接收主设备发送的数据包;其中,数据包具体可以为读请求包、写请求包或写数据包。
102、通过基本单元的从设备接口,利用AXI总线将数据包发送给目的从设备。
例如,通过基本单元的从设备接口,利用AXI总线将读请求包、写请求包或写数据包发送给目的从设备。
为了提高AXI的安全性以及路由的灵活性,主设备与目的从设备之间可以具有多条(即至少两条)路由,这样,在需要时就可以利用这多条路由来实现分流,而且,在当前路由发生故障或堵塞时,也可以利用其他的路由进行传输,避免由于路由堵塞所导致的AXI总线堵塞。
由于主设备与目的从设备之间可以具有至少两条路由,所以,在对数据包进行传送之前,基本单元需要选择路由,即此时步骤102,即步骤“通过基本单元的从设备接口,利用AXI总线将所述数据包发送给目的从设备”具体可以如下:
根据AXI总线的标识选择路由,通过基本单元的从设备接口,利用选择的路由将数据包发送给目的从设备。
此外,在当前路由发生故障或堵塞时,基本单元还可以选择其他路由来传送当前的数据包,即该数据传输方法还可以包括:
在选择的路由发生故障或堵塞时,确定发生故障或堵塞的时间是否超过预置时间;若是,则根据AXI总线的标识重新选择路由;若否,则在路由恢复正常后,继续利用当前路由传输数据包。
其中,AXI总线的标识即AXI总线的ID,用于指示路由,发送的请求每一个节点都是用AXI总线的ID的最高bit作为路由信息,路由后,ID循环左移,最高位移到最低位。返回应答则相反。ID分成两部分,一部分是主设备的代号,另一部分是路由信息,路由信息就是发送的时候主设备根据记录的路由信息填充的。AXI总线的标识可以包括主设备标识和N2位宽的路由标识;例如,在该32全循环Mesh总线结构中,如果主设备标识为6个比特(bits),路由标识则为32,即9bits,那么,每次传输共15bits的总线的标识。
其中,根据AXI总线的标识选择路由具体可以为:对路由标识进行译码,以确定下一跳节点,例如,可以将路由标识中的每一个比特位作为基本单元(即2x2全交叉总线)的译码地址使用,1为基本单元的右边接口(即右边的主设备接口或右边的从设备接口),0为基本单元的左边接口(即左边的主设备接口或左边的从设备接口),或者,也可以反过来,即0为基本单元的右边接口,1为基本单元的左边接口;确定了基本单元的接口后,即可以确定下一跳节点是哪个基本单元,以及具体是该作为下一跳节点的基本单元中的哪个接口。具体可以实施时,译码的顺序可以从高位到低位,也可以从低位到高为,具体如下:
(1)对路由标识进行译码,以确定下一跳节点具体可以包括:
在接收到读请求包、写请求包或写数据时,对路由标识的最高比特位进行译码以确定下一跳节点,并在译码后将路由标识循环左移;
在接收到读数据及应答包或写应答包时,对路由标识的最低比特位进行译码以确定下一跳节点,并在译码后将路由标识循环右移。
或者,
(2)对路由标识进行译码,以确定下一跳节点具体可以包括:
在接收到读请求包、写请求包或写数据时,对路由标识的最低比特位进行译码以确定下一跳节点,并在译码后将路由标识循环右移;
在接收到读数据及应答包或写应答包时,对路由标识的最高比特位进行译码以确定下一跳节点,并在译码后将路由标识循环左移。
其中,路由标识需为全路由,即路由标识中的N2位比特位需占满,以N为3为例,路由标识中的9bits必须全都有效,且该路由在9次译码后必须回到起点,即若没有从设备接收该数据包,需要将数据包返回给发送该数据包的主设备。另外,如果从设备拒绝该主设备,则此后,该从设备需要对该主设备的路由标识一直拒绝,直到切换路由,以避免出现命令(Order)发生错误。在数据包返回到主设备之后,主设备可以切换路由再次尝试。
103、通过基本单元的从设备接口接收目的从设备返回的响应包;其中,响应包具体可以为读数据及应答包或写应答;具体可以如下:
若该数据包具体为读请求包,则步骤103,即步骤“通过基本单元的从设备接口接收所述目的从设备返回的响应包”具体可以为:
通过基本单元的从设备接口接收所述目的从设备返回的读数据及应答包。
若该数据包具体为写请求包和写数据包,则步骤103,即步骤“通过基本单元的从设备接口接收所述目的从设备返回的响应包”具体可以为:
通过基本单元的从设备接口接收所述目的从设备返回的写应答包。
可选的,还可以通过全1遍历请求和全0遍历请求AXI总线来对AXI总线的线路状况进行检测,以便对设备是否在线进行检测,即该数据传输方法还可以包括:
采用全1遍历请求和全0遍历请求遍历AXI总线,其中全1遍历请求中的路由标识设定为全1,全0遍历请求中的路由标识设定为全0。例如,还是以N2的AXI总线为例,全1遍历请求中的路由标识为“111111111”,依次通过,E→I→D→H→C→G→B→F→A→E;全0遍历请求中的路由标识为“000000000”,依次通过E→G→F→H→A→I→B→D→C→E。
此外,为了防止AXI总线上的写请求包和写数据包因传输分离而导致挂死或节点插入数据困难等情况,每个基本单元还可以具有将基本单元的主设备接口所收到的写请求包和写数据包对齐的功能。即:
即该数据传输方法还可以包括:将接收到的写请求包与相应的写数据包对齐,以保证其主设备接口所传输的写请求包和写数据包不存在挂起传输(Outstanding)功能。其中,每个基本单元在其主设备接口下面的节点收到写请求包时,其后新起的W数据即为该写请求包所对应写数据包。
由上可知,本实施例提供了基于本发明实施例所提供的AXI总线的一种数据传输方法,由于该AXI总线采用以2×2的AXI全交叉的总线结构为基本单元,然后利用该基本单元搭建一个N2全循环Mesh总线结构,由于采用的是N2全循环Mesh总线结构,所以相对于现有的全交叉总线结构而言,布线较少,复杂度较低,而且扩展性也较强。此外,本实例所提供的数据传输方法还提供灵活的路由机制,从而相对于现有技术中单一的路由机制而言,增强了AXI总线的安全性,以及可以实现带宽分流;而且,本实施例所提供的数据传输方法还可以通过全遍历请求来对设备是否在线进行检测。
根据以上实施例所描述的方法,以下将举例作进一步详细说明。
在本实施例中,将以N为3的一个AXI总线,且路由标识中的1表示基本单元的右边接口(即右边的主设备接口或右边的从设备接口),0为基本单元的左边接口(即左边的主设备接口或左边的从设备接口)为例进行说明。
参见图7,其中,各个基本单元之间的路径为第一路径,每一条第一路径上的小圆点表示注册片,主设备或从设备可以通过该注册片接入AXI总线。比如,参见图7中的基本单元A和基本单元E之间的路径002就是其中的一条第一路径,而小圆点001和003均为注册片,第一主设备通过注册片001接入AXI总线,第一从设备通过基本单元D和基本单元H之间的第一路径上的注册片003接入AXI总线。
以下将以第一主设备向第一从设备读取数据为例进行说明。具体流程可以如下:
步骤1、第一主设备发送关于向第一从设备读取数据的读请求包,读请求包中携带AXI总线的标识,其中,AXI总线的标识包括第一主设备的固有标识(在此即为主设备标识)和路由标识。
其中,路由标识可以由第一主设备根据第一从设备的匹配地址通过查询路由表来获得,其中,路由表可以存放在第一主设备中。
需说明的是,主设备可以具有多个主设备标识,而从设备可以具有多个匹配地址,可以根据预置策略从中选择合适的主设备标识和从设备的匹配地址。
由于第一从设备位于基本单元D的主设备接口和基本单元H的从设备接口之间的路径上,所以,该读请求包的路由需要经过基本单元H。为了描述方便,在本实施例中,设定第一主设备与第一从设备之间具有两条路由,主路由为:A→E→G→B→D→H→C→G→F→A,路由标识为“101011101”,备用路由为A→E→I→D→H→C→G→B→F→A:,路由标识为“111111111”。
步骤2、基本单元A的主设备接口接收到该读请求包后,根据路由标识确定下一跳的节点,比如,路由标识为“101011101”,则基本单元A对该路由标识的最高位的比特位进行译码,由于该最高位的比特位为“1”,代表右边的主设备接口,因此,基本单元A确定下一跳节点为基本单元E,基本单元A将路由标识循环左移,即路由标识变为“010111011”,然后将该读请求包发送给基本单元E。
步骤3、基本单元E接收到该读请求包后,同样根据路由标识“010111011”确定下一跳的节点,由于该最高位的比特位为“0”,因此,基本单元E确定下一跳节点为基本单元G,基本单元E将路由标识循环左移,即路由标识变为“101110110”,然后将该读请求包发送给基本单元G。
步骤4、基本单元G接收到该读请求包后,根据路由标识“101110110”确定下一跳的节点,由于该最高位的比特位为“1”,因此,基本单元E确定下一跳节点为基本单元B,基本单元G将路由标识循环左移,即路由标识变为“011101101”,然后将该读请求包发送给基本单元B。
步骤5、基本单元B接收到该读请求包后,根据路由标识“011101101”确定下一跳的节点,由于该最高位的比特位为“0”,因此,基本单元B确定下一跳节点为基本单元D,基本单元B将路由标识循环左移,即路由标识变为“111011010”,然后将该读请求包发送给基本单元D。
步骤6、基本单元D接收到该读请求包后,根据路由标识“111011010”确定下一跳的节点,由于该最高位的比特位为“1”,因此,基本单元D确定下一跳节点为基本单元H,基本单元D将路由标识循环左移,即路由标识变为“110110101”,然后将该读请求包发送给基本单元H。
步骤7、基本单元H接收到该读请求包后,根据读请求包中的第一从设备的地址将读请求包发送给第一从设备。然后将路由标识循环左移,即路由标识变为“101101011”。
步骤8、第一从设备接收到该读请求包后,返回相应的读数据及应答包给基本单元H。
步骤9、基本单元H根据路由标识“101101011”确定下一跳节点。由于此时传送的是读数据及应答包,所以基本单元H可以根据路由标识“101101011”中的最低位比特位来确定下一跳节点,由于最低位比特位为“1”,因此,基本单元H确定下一跳节点为基本单元C,于是将路由标识循环右移,即路由标识变为“110110101”,然后该读数据及应答包发送给基本单元C,其中,该读数据及应答包中携带第一主设备的主设备标识和路由标识“110110101”。
步骤10、基本单元C接收到该读数据及应答包后,根据路由标识“110110101”确定下一跳节点,由于最低位比特位为“1”,因此,基本单元H确定下一跳节点为基本单元G,于是将路由标识循环右移,即路由标识变为“111011010”,然后该读数据及应答包发送给基本单元G。
步骤11、基本单元G接收到该读数据及应答包后,根据路由标识“111011010”确定下一跳节点,由于最低位比特位为“0”,因此,基本单元H确定下一跳节点为基本单元F,于是将路由标识循环右移,即路由标识变为“011101101”,然后该读数据及应答包发送给基本单元F。
步骤12、基本单元F接收到该读数据及应答包后,根据路由标识“011101101”确定下一跳节点,由于最低位比特位为“1”,因此,基本单元H确定下一跳节点为基本单元A,于是将路由标识循环右移,即路由标识变为“101110110”,然后该读数据及应答包发送给基本单元A。
步骤12、基本单元A接收到该读数据及应答包后,根据读数据及应答包中的主设备标识将读数据及应答包发送给第一主设备。
步骤13、第一主设备接收该读数据及应答包。
第一主设备将数据写入第一从设备时的流程与此类似,在此不再赘述。
需说明的是,以上仅仅以将路由标识中的最高比特位作为前面的从设备的译码(即在读请求包、写请求包或写数据方向),且以路由标识中的最高比特位作为返回的主设备(即在读数据及应答包和写应答包方向)的译码为例进行说明。应当理解的是,也可以设定路由标识中的最低比特位作为前面的从设备的译码,路由标识中的最低比特位作为返回的主设备的译码,实现方法与此类似,在此不再赘述。
另外,需说明的是,对于需要保序(即保持顺序)的操作,必须使用相同的主设备标识和路由标识,此外,应尽量避免使用相同的主设备标识访问多个从设备,以防止保序带来的性能下降。可选的,从设备中还可以涉及保序控制缓存,以便对需要保序的操作进行缓冲,即在接收到读请求包、写请求包或写数据包时,并不立即返回响应,而是先进行缓存,经过预置的时间后才返回响应。
采用本发明实施例所提供的方法,还可以实现如下检测:
(1)主设备可获知设备是否在线:对于正常访问请求,如果该访问请求没有被从设备接收,而是返回给了发送该访问请求的主设备,则表示该从设备不在线或不存在。
(2)主设备更新和优化路由:对于正常访问请求,如果该访问请求被从设备接收,则可以让从设备在返回的信息中可携带跳数信息,主设备在接收到该返回的信息后,根据其中携带的跳数信息更新路由,以查找更好的路径备用。
(3)通过全遍历请求,可实现缓存一致性(Cache Coherent)查询,查询是否具有节点缓存(Cache,即存储器高速缓存,简称缓存)数据映像,如果没有,则发送正常请求给内存以获取节点缓存数据映像。
(4)该遍历可用作广播信息,当信息最终到达发送节点时,表示广播的结束。
由上可知,本实施例提供了基于本发明实施例所提供的AXI总线的一种数据传输方法,由于该AXI总线采用以2×2的AXI全交叉的总线结构为基本单元,然后利用该基本单元搭建一个N2全循环Mesh总线结构,由于采用的是N2全循环Mesh总线结构,所以相对于现有的全交叉总线结构而言,布线较少,复杂度较低,而且扩展性也较强。此外,本实例所提供的数据传输方法还提供灵活的路由机制,从而相对于现有技术中单一的路由机制而言,增强了AXI总线的安全性,以及可以实现带宽分流;而且,本实施例所提供的数据传输方法还可以通过全遍历请求来对设备是否在线进行检测,以及实现缓存一致性检测,和信息高速广播。
总之,相对于现有技术的AXI总线而言,本实施例所提供的AXI总线及相应的数据传输方法,具有较高的性能。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的AXI总线以及相应的数据传输方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种先进可扩展接口AXI总线,其特征在于,
所述AXI总线为一个N2全循环网状Mesh总线结构,包括N×N个基本单元,所述基本单元为以2×2的AXI全交叉Crossbar的总线结构,所述基本单元上包括两个从设备接口和两个主设备接口,所述基本单元上的每一个从设备接口都和另一个基本单元上的一个主设备接口相连,形成第一路径;其中,N为正整数。
2.根据权利要求1所述的AXI总线结构,其特征在于,所述第一路径上包括注册片,所述注册片用于连接主设备或从设备。
3.根据权利要求2所述的AXI总线,其特征在于,
所述注册片包括多路复用MUX模块和复合信号COMP模块;
当所述注册片用于连接主设备时,所述MUX模块用于接收主设备插入的读请求包、写请求包或写数据包;所述COMP模块用于截获所述主设备的设备标识,以及与所述设备标识匹配的读数据及应答包、或写应答包;
当所述注册片用于连接从设备时,所述MUX模块用于接收所述从设备插入的读数据及应答包、或写应答包;所述COMP模块用于截获地址与预置设定地址匹配的读请求包、写请求包和对应的写数据包。
4.根据权利要求3所述的AXI总线,其特征在于,
所述基本单元,还用于将所述基本单元的主设备接口所收到的写请求包和相应的写数据包对齐。
5.一种数据传输方法,其特征在于,包括:
通过基本单元的主设备接口接收主设备发送的数据包;
通过基本单元的从设备接口,利用先进可扩展接口AXI总线将所述数据包发送给目的从设备;
通过基本单元的从设备接口接收所述目的从设备返回的响应包;
其中,所述基本单元为以2×2的AXI全交叉Crossbar的总线结构,所述AXI总线为利用所述基本单元搭建一个N2全循环网状Mesh总线结构,其中,N为正整数,基本单元的个数为N×N个。
6.根据权利要求5所述的方法,其特征在于,所述数据包具体为读请求包,则:
所述通过基本单元的从设备接口接收所述目的从设备返回的响应包包括:通过基本单元的从设备接口接收所述目的从设备返回的读数据及应答包。
7.根据权利要求5所述的方法,其特征在于,所述数据包具体为写请求包和写数据包,则:
所述通过基本单元的从设备接口接收所述目的从设备返回的响应包包括:通过基本单元的从设备接口接收所述目的从设备返回的写应答包。
8.根据权利要求5所述的方法,其特征在于,主设备与目的从设备之间具有至少两条路由,则所述通过基本单元的从设备接口,利用AXI总线将所述数据包发送给目的从设备包括:
根据AXI总线的标识选择路由,所述AXI总线的标识用于指示路由;
通过基本单元的从设备接口,利用选择的路由将所述数据包发送给目的从设备。
9.根据权利要求8所述的方法,其特征在于,还包括:
在选择的路由发生故障或堵塞时,确定发生故障或堵塞的时间是否超过预置时间;
若是,则根据AXI总线的标识重新选择路由。
10.根据权利要求8或9所述的方法,其特征在于,所述AXI总线的标识包括主设备标识和N2位宽的路由标识;则根据AXI总线的标识选择路由包括:
对路由标识进行译码,以确定下一跳节点。
11.根据权利要求10所述的方法,其特征在于,所述对路由标识进行译码,以确定下一跳节点包括:
在接收到读请求包、写请求包或写数据时,对所述路由标识的最高比特位进行译码以确定下一跳节点,并在译码后将路由标识循环左移;在接收到读数据及应答包或写应答包时,对所述路由标识的最低比特位进行译码以确定下一跳节点,并在译码后将路由标识循环右移;
或者,
在接收到读请求包、写请求包或写数据时,对所述路由标识的最低比特位进行译码以确定下一跳节点,并在译码后将路由标识循环右移;在接收到读数据及应答包或写应答包时,对所述路由标识的最高比特位进行译码以确定下一跳节点,并在译码后将路由标识循环左移。
12.根据权利要求10所述的方法,其特征在于,还包括:
如果所述路由标识为全路由,若没有从设备接收所述数据包,则将所述数据包返回给发送该数据包的主设备。
13.根据权利要求10所述的方法,其特征在于,还包括:
采用全1遍历请求和全0遍历请求遍历AXI总线,其中全1遍历请求中的路由标识设定为全1,全0遍历请求中的路由标识设定为全0。
14.根据权利要求7至9,11至13中任一项所述的方法,其特征在于,还包括:
将接收到的写请求包与相应的写数据包对齐。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/074554 WO2011137813A2 (zh) | 2011-05-24 | 2011-05-24 | 先进可扩展接口总线以及相应的数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102216920A true CN102216920A (zh) | 2011-10-12 |
CN102216920B CN102216920B (zh) | 2013-08-28 |
Family
ID=44746733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011800005885A Active CN102216920B (zh) | 2011-05-24 | 2011-05-24 | 先进可扩展接口总线以及相应的数据传输方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9058433B2 (zh) |
CN (1) | CN102216920B (zh) |
WO (1) | WO2011137813A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005546A (zh) * | 2015-06-23 | 2015-10-28 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种内置交点队列的异步axi总线结构 |
CN106933765A (zh) * | 2017-03-31 | 2017-07-07 | 山东超越数控电子有限公司 | 一种基于fpga的多主多从数据采集系统及其交叉通信控制方法 |
CN112073249A (zh) * | 2020-09-17 | 2020-12-11 | 深圳市信锐网科技术有限公司 | 数据传输方法、集群交换机系统及相关设备 |
WO2022121783A1 (zh) * | 2020-12-11 | 2022-06-16 | 上海砹芯科技有限公司 | Axi总线结构及芯片系统 |
WO2023028741A1 (zh) * | 2021-08-30 | 2023-03-09 | 华为技术有限公司 | 一种高级扩展接口总线及片上系统 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101993258B1 (ko) * | 2012-11-22 | 2019-09-27 | 삼성전자주식회사 | 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩 |
CN109558350B (zh) * | 2018-11-20 | 2023-04-14 | 海信空调有限公司 | 一种程序监控复用端口、控制方法和家用电器 |
CN110674075B (zh) * | 2019-09-27 | 2023-03-10 | 山东华芯半导体有限公司 | 一种axi总线广播机制的实现方法和系统 |
CN112257381B (zh) * | 2020-10-26 | 2024-01-12 | 广州安凯微电子股份有限公司 | 一种AXI Crossbar设计电路验证方法和系统 |
CN113886310A (zh) | 2021-11-02 | 2022-01-04 | 上海兆芯集成电路有限公司 | 桥接模块、数据传输系统和数据传输方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030101280A1 (en) * | 2001-11-27 | 2003-05-29 | Chiu Kenneth Y. | Fast jump address algorithm |
CN101276317A (zh) * | 2008-05-13 | 2008-10-01 | 深圳华为通信技术有限公司 | 数据传输方法、数据传输系统及终端 |
CN201422114Y (zh) * | 2009-03-31 | 2010-03-10 | 成都纵横测控技术有限公司 | 一种基于pxi总线的误码率测试模块 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6696917B1 (en) * | 2000-09-21 | 2004-02-24 | Nortel Networks Limited | Folded Clos architecture switching |
US7461187B2 (en) * | 2005-07-07 | 2008-12-02 | Canon Kabushiki Kaisha | Bus system and data transfer method |
JP2010500641A (ja) * | 2006-08-08 | 2010-01-07 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 電子装置及び通信同期方法 |
WO2008091575A2 (en) * | 2007-01-22 | 2008-07-31 | Vast Systems Technology Corporation | Method and system for modeling a bus for a system design incorporating one or more programmable processors |
CN101324869B (zh) * | 2008-07-03 | 2010-04-14 | 北京中星微电子有限公司 | 一种基于axi总线的多路复用器 |
WO2010096122A1 (en) * | 2008-10-29 | 2010-08-26 | Adapteva Incorporated | Mesh network |
US8489791B2 (en) * | 2010-03-12 | 2013-07-16 | Lsi Corporation | Processor bus bridge security feature for network processors or the like |
US8285912B2 (en) * | 2009-08-07 | 2012-10-09 | Arm Limited | Communication infrastructure for a data processing apparatus and a method of operation of such a communication infrastructure |
CN101853237B (zh) | 2010-05-31 | 2012-07-04 | 华为技术有限公司 | 片上系统及axi总线下的传输方法 |
-
2011
- 2011-05-24 CN CN2011800005885A patent/CN102216920B/zh active Active
- 2011-05-24 WO PCT/CN2011/074554 patent/WO2011137813A2/zh active Application Filing
-
2012
- 2012-06-13 US US13/495,554 patent/US9058433B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030101280A1 (en) * | 2001-11-27 | 2003-05-29 | Chiu Kenneth Y. | Fast jump address algorithm |
CN101276317A (zh) * | 2008-05-13 | 2008-10-01 | 深圳华为通信技术有限公司 | 数据传输方法、数据传输系统及终端 |
CN201422114Y (zh) * | 2009-03-31 | 2010-03-10 | 成都纵横测控技术有限公司 | 一种基于pxi总线的误码率测试模块 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005546A (zh) * | 2015-06-23 | 2015-10-28 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种内置交点队列的异步axi总线结构 |
CN105005546B (zh) * | 2015-06-23 | 2018-01-30 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种内置交点队列的异步axi总线结构 |
CN106933765A (zh) * | 2017-03-31 | 2017-07-07 | 山东超越数控电子有限公司 | 一种基于fpga的多主多从数据采集系统及其交叉通信控制方法 |
CN112073249A (zh) * | 2020-09-17 | 2020-12-11 | 深圳市信锐网科技术有限公司 | 数据传输方法、集群交换机系统及相关设备 |
WO2022121783A1 (zh) * | 2020-12-11 | 2022-06-16 | 上海砹芯科技有限公司 | Axi总线结构及芯片系统 |
WO2023028741A1 (zh) * | 2021-08-30 | 2023-03-09 | 华为技术有限公司 | 一种高级扩展接口总线及片上系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2011137813A3 (zh) | 2012-04-26 |
CN102216920B (zh) | 2013-08-28 |
US20120303849A1 (en) | 2012-11-29 |
WO2011137813A2 (zh) | 2011-11-10 |
US9058433B2 (en) | 2015-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102216920B (zh) | 先进可扩展接口总线以及相应的数据传输方法 | |
US7020736B1 (en) | Method and apparatus for sharing memory space across mutliple processing units | |
US11165717B2 (en) | Fabric interconnection for memory banks based on network-on-chip methodology | |
CN103546299B (zh) | 使用串行器/解串器通道的50Gb/s以太网 | |
CN102006184B (zh) | 堆叠链路管理方法、装置及网络设备 | |
USRE28811E (en) | Interconnected loop data block transmission system | |
CN109086228B (zh) | 具有多个独立访问通道的高速存储器芯片 | |
US10243881B2 (en) | Multilayer 3D memory based on network-on-chip interconnection | |
CN102012876A (zh) | 大位宽数据的写入、读取方法及控制器 | |
JP3172477B2 (ja) | Atmセルを伝送する方法、atmセルをatmリンクに送信する方法及びatmリンクからatmセルを受信する方法 | |
CN101924699A (zh) | 报文转发处理方法、系统和运营商边缘设备 | |
US20130250954A1 (en) | On-chip router and multi-core system using the same | |
US20020009085A1 (en) | Topology discovery in ATM networks | |
Bogdanski | Optimized routing for fat-tree topologies | |
CN103023608B (zh) | 对通信控制器用的时隙表进行编码的系统和方法 | |
KR0175499B1 (ko) | 다중태그 구조의 계층 상호연결망에서의 브로드캐스트 전송방법 | |
KR100253517B1 (ko) | 스위칭 아키텍쳐를 갖는 패킷 스위치 | |
US7254139B2 (en) | Data transmission system with multi-memory packet switch | |
CN1729661A (zh) | 分组交换网络中返回路径的推导 | |
US10644958B2 (en) | All-connected by virtual wires network of data processing nodes | |
CN103414660A (zh) | 一种支持传感接入和光分组传输的传感网络的节点装置 | |
US6993035B2 (en) | System for routing data packets through a crossbar switch in expansion mode | |
CN106027423A (zh) | PCIe设备共享网络及其数据传输方法 | |
US6931020B1 (en) | Method and device for switching a plurality of packet-oriented signals | |
CN103401739A (zh) | 一种支持传感接入和光分组传输的传感网络的节点装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |