CN117194310A - 数据传输电路、芯片、系统及电子设备 - Google Patents
数据传输电路、芯片、系统及电子设备 Download PDFInfo
- Publication number
- CN117194310A CN117194310A CN202311148769.3A CN202311148769A CN117194310A CN 117194310 A CN117194310 A CN 117194310A CN 202311148769 A CN202311148769 A CN 202311148769A CN 117194310 A CN117194310 A CN 117194310A
- Authority
- CN
- China
- Prior art keywords
- chip
- module
- request message
- routing
- message
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 147
- 238000012545 processing Methods 0.000 claims abstract description 57
- 230000003068 static effect Effects 0.000 claims description 29
- 238000012546 transfer Methods 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 17
- 238000000034 method Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供数据传输电路、芯片、系统及电子设备。该电路应用于芯片,其包括:消息处理模块管理消息队列,消息队列存储至少一个请求消息,至少一个请求消息指示访问该芯片之外的目标芯片;多个物理传输模块,每个物理传输模块分别连接到该芯片之外的一个外部芯片,每个物理传输模块与外部芯片进行数据传输以执行至少一个请求消息;路由模块,与消息处理模块及多个物理传输模块连接,被配置为根据接收到的请求消息,从多个物理传输模块中确定至少一个特定物理传输模块,接收到的请求消息为至少一个请求消息中的任意一个请求消息或来自多个外部芯片的请求消息,至少一个特定物理传输模块连接的外部芯片为通向至少一个目标芯片的路径中的芯片。
Description
技术领域
本公开的实施例涉及数据传输电路、芯片、系统及电子设备。
背景技术
随着技术的快速发展,在很多领域中需要处理的数据量也日益增长,单个芯片的处理能力有限,使用多芯片协作已经成为必然的解决方案。多芯片间的数据传输方式和连接方式会影响多芯片协作的性能,因此,如何提高多芯片协作的性能是目前亟待解决的技术问题。
发明内容
第一方面,本公开至少一个实施例提供一种数据传输电路,应用于芯片,包括:消息处理模块,与芯片内的总线连接,被配置为管理消息队列,其中,消息队列存储至少一个请求消息,至少一个请求消息指示访问芯片之外的芯片;多个物理传输模块,分别连接到多个外部芯片中的一个外部芯片,被配置为与多个外部芯片进行数据传输以执行至少一个请求消息;路由模块,与消息处理模块及多个物理传输模块连接,被配置为根据接收到的请求消息,从多个物理传输模块中确定至少一个特定物理传输模块,其中,接收到的请求消息为至少一个请求消息中的任意一个请求消息或来自多个外部芯片的请求消息,接收到的请求消息指示访问至少一个目标芯片,至少一个特定物理传输模块被配置为进行与接收到的请求消息对应的数据传输,至少一个特定物理传输模块连接的至少一个外部芯片为通向至少一个目标芯片的路径中的芯片。
例如,在本公开一实施例提供的电路中,路由模块被配置为根据预先配置的路由方式,确定至少一个特定物理传输模块的编号。
例如,在本公开一实施例提供的电路中,预先配置的路由方式包括根据路由算法进行路由、根据静态路由表进行路由和根据动态路由表进行路由。
例如,在本公开一实施例提供的电路中,电路还包括拓扑管理器,与路由模块连接,被配置为存储芯片对应的静态路由表或动态路由表。
例如,在本公开一实施例提供的电路中,路由模块还被配置为根据接收到的请求消息的目标地址或目标编号,查询动态路由表或静态路由表以获取至少一个特定物理传输模块的编号。
例如,在本公开一实施例提供的电路中,路由模块还被配置为根据接收到的请求消息的目标地址和芯片的本地地址,计算至少一个特定物理传输模块的编号。
例如,在本公开一实施例提供的电路中,路由模块还被配置为根据目标地址或目标编号从动态路由表中读取至少一个特定物理传输模块的编号,以及在未从动态路由表中读取到至少一个特定物理传输模块的编号时,从芯片的内存中读取至少一个特定物理传输模块的编号。
例如,在本公开一实施例提供的电路中,消息处理模块包括直接内存存取DMA、消息队列存储单元和消息处理单元,DMA与芯片的总线、消息队列存储单元和消息处理单元连接,消息队列存储单元与芯片的处理器连接,其中,DMA被配置为经由总线访问芯片的内存,以根据至少一个请求消息,与内存进行至少一个请求消息相对应的数据传输;消息队列存储单元,与芯片的处理器连接,被配置为存储处理器发送来的至少一个请求消息;和消息处理单元,与DMA连接,被配置为将DMA发送的数据进行打包处理以符合路由模块的传输格式,以及对来自路由模块的数据进行解包处理,以符合总线的传输格式。
例如,在本公开一实施例提供的电路中,多个物理传输模块中的每个物理传输模块包括物理层和物理层控制器。
第二方面,本公开至少一个实施例提供一种芯片系统,包括多个芯片,其中,多个芯片采用预设拓扑结构进行连接,多个芯片中的每个芯片包括上述第一方面中任一项的电路。
例如,在本公开一实施例提供的芯片系统中,预设拓扑结构包括网格拓扑结构、二维环面拓扑结构、环形拓扑结构、全连接拓扑结构和胖树拓扑结构。
例如,在本公开一实施例提供的芯片系统中,多个芯片中的任意两个芯片根据路由算法、静态路由表或动态路由表中的一种进行路由,以实现数据传输。
第三方面,本公开至少一个实施例提供一种电子设备,包括上述第二方面中任一项的芯片系统。
第四方面,本公开至少一个实施例提供一种芯片,包括上述第一方面中任一项的数据传输电路。
第五方面,本公开至少一个实施例提供一种电子设备,包括如上述第四方面中的芯片。
第六方面,本公开至少一个实施例提供一种处理系统,包括多个上述第五方面中的电子设备,其中,多个电子设备采用预设拓扑结构进行连接。
例如,在本公开一实施例提供的处理系统中,预设拓扑结构包括网格拓扑结构、二维环面拓扑结构、环形拓扑结构、全连接拓扑结构和胖树拓扑结构。
例如,在本公开一实施例提供的处理系统中,多个电子设备中的任意两个电子设备根据路由算法、静态路由表或动态路由表中的一种进行路由,以实现数据传输。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了根据本公开的至少一个实施例提供的数据传输电路的示意图;
图2示出了根据本公开一个实施例提供的消息处理模块的示意图;
图3a示出了根据本公开一个实施例提供的静态路由表的示意图;
图3b示出了根据本公开一个实施例提供的访问动态路由表的示意图;
图4a-图4e分别示出了根据本公开的一个实施例提供的一种芯片系统的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
本公开中的“数据”传输包括各种类型的数据,例如各种请求/请求消息也都被理解为由数据承载,即本公开中的“请求”或“请求消息”也属于一种数据。
两个芯片间的数据传输方式通常是由芯片中的处理器发起数据传输的请求,而接收侧的芯片执行对应的操作,例如接收数据或者发送数据。若涉及到多芯片互联,两个芯片之间的数据传输可能要经历其他的芯片。这种情况下,需要由芯片的处理器来确定数据传输的路径,即路由路径。确定数据传输的路径会占据处理器的资源,从而加重处理器的负载,并降低数据传输的效率。
此外,目前的多芯片系统有多种实现方式,例如多个芯片设置在同一设备中、多个芯片分别部署在不同的设备中等。不论是何种实现方式,芯片间互联的拓扑结构通常较为单一、不灵活,从而互联芯片之间的数据传输方式有限。
为了解决上述技术问题,本公开的实施例提供了数据传输电路、芯片、系统及电子设备。
本公开至少一个实施例提供一种数据传输电路,应用于芯片,包括:消息处理模块,与芯片内的总线连接,被配置为管理消息队列,其中,消息队列存储至少一个请求消息,至少一个请求消息指示访问芯片之外的芯片;多个物理传输模块,分别连接到多个外部芯片中的一个外部芯片,被配置为与多个外部芯片进行数据传输以执行至少一个请求消息;路由模块,与消息处理模块及多个物理传输模块连接,被配置为根据接收到的请求消息,从多个物理传输模块中确定至少一个特定物理传输模块,其中,接收到的请求消息为至少一个请求消息中的任意一个请求消息,接收到的请求消息指示访问至少一个目标芯片,至少一个特定物理传输模块被配置为进行与接收到的请求消息对应的数据传输,至少一个特定物理传输模块连接的至少一个外部芯片为通向至少一个目标芯片的路径中的芯片。
本公开至少一个实施例提供一种芯片系统,包括多个芯片,其中,多个芯片采用预设拓扑结构进行连接,多个芯片中的每个芯片包括上述的电路。
本公开至少一个实施例提供一种电子设备,包括上述的芯片系统。
本公开至少一个实施例提供一种芯片,包括上述的数据传输电路。
本公开至少一个实施例提供一种电子设备,包括如上述的芯片。
本公开至少一个实施例提供一种处理系统,包括多个上述电子设备,其中,多个电子设备采用预设拓扑结构进行连接。
本公开的实施例中提供的数据传输电路通过确定至少一个特定物理传输模块来确定接收到的请求消息对应的数据传输路径的下一个节点,可以应对任何的连接方式。并且通过消息处理模块、路由模块和多个物理传输模块将数据传输硬件化,无需处理器进行相应的操作,极大的卸载了处理器的负担。
下面将结合附图对本公开的实施例进行描述。
图1示出了根据本公开的至少一个实施例提供的数据传输电路的示意图。
在图1中,数据传输电路100包括消息处理模块110、路由模块120、物理传输模块131~134。消息处理模块110连接到芯片的总线和路由模块120。路由模块120连接到物理传输模块131~134。本实施例中,多个物理传输模块示意为物理传输模块131~134,可以理解地,多个物理传输模块包括的物理传输模块的数量可以根据实际需求进行设置,例如物理传输模块的数量可以为大于或等于5的整数,例如6、8、12等,或者可以是小于或等于4的整数,如1、2或3。
消息处理模块110被配置为管理消息队列。其中,消息队列存储至少一个请求消息,至少一个请求消息指示访问外部芯片。例如,数据传输电路100设置在芯片1中,与芯片1通信连接的芯片有芯片2-11,则请求消息可以指示访问芯片2-11中的任意一个或多个芯片。
例如,请求消息包括读请求消息和写请求消息,读请求消息和写请求消息分别指示对其他芯片进行读操作和写操作。比如,数据传输电路100设置在芯片1上,请求消息可以是指示对芯片2进行写操作的写请求消息。可选地,至少一个请求消息是RDMA(RemoteDirect Memory Access,远程直接内存访问)请求,从而直接对其他芯片的内存进行访问,进一步减轻处理器的工作负载。
可选地,消息队列包括多种类型的队列,如工作队列和完成队列。工作队列包括发送队列和接收队列。例如,至少一个请求消息被存储在发送队列中。接收队列可用于存储来自其他芯片的请求消息。完成队列则用于存储来自其他芯片的请求完成消息,以通知处理器对应的请求已完成。
进一步可选地,消息队列包括多个条目,每个条目存储一个请求消息和一段内存地址,这段内存地址为写数据的存储位置或者用于存储读数据的位置。在本公开的实施例中,对应于请求消息的数据传输除了需要传输请求消息,还需要传输对应的数据。例如,对芯片2的写请求消息,需要传输写请求消息及其对应的待写入芯片2的数据。
可选地,消息处理模块110还被配置为对需要进行传输的数据进行打包处理和解包处理。消息处理模块110从总线获取到的请求消息或数据符合总线的传输协议。路由模块120对应不同的传输协议,例如AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线架构)AXI(Advanced Extensible Interface,高级可扩展接口)、AMBA ACE(AXI Coherency Extension,AXI相干加强)lite、AMBA CHI(Coherent Hub Interface,一致性枢纽接口)等。由消息处理模块110对数据进行打包处理,以使得数据格式符合路由模块120所采用的传输协议。消息处理模块110还对来自路由模块120的数据进行解包处理,以使得数据格式符合总线的传输协议。
可选地,消息处理模块包括直接内存存取DMA、消息队列存储单元和消息处理单元,DMA与芯片的总线、消息队列存储单元和消息处理单元连接,消息队列存储单元与芯片的处理器连接。其中,DMA被配置为经由总线访问芯片的内存。例如DMA可以根据至少一个请求消息经由总线访问内存,从而和内存进行数据传输。比如从内存中读出数据或者向内存写入数据;消息队列存储单元,与芯片的处理器连接,被配置为存储处理器发送来的至少一个请求消息;和消息处理单元,与DMA连接,被配置为将DMA发送的数据进行打包处理以符合路由模块的传输格式,以及对来自路由模块的数据进行解包处理,以符合总线的传输格式。
图2示出了根据本公开一个实施例提供的消息处理模块的示意图。
在图2中,消息处理模块200包括DMA 201、消息队列存储单元202和消息处理单元203。DMA 201与芯片的总线、消息队列存储单元202以及消息处理单元203连接。消息处理单元203连接到路由模块。消息队列存储单元202也与芯片的总线连接。
消息队列存储单元202接收并存储来自处理器的请求消息,以及存储来自其他芯片的请求完成消息。消息队列存储单元202例如使用先入先出(FIFO,First In First Out)存储器实现。消息队列存储单元202是被动的由处理器或DMA 201访问。例如,处理器经由专用的接口向消息队列写入请求消息以及从消息队列读取请求完成消息。
DMA 201可以通过总线访问芯片的内存,从而实现请求消息对应的数据的搬移。例如,DMA 201先访问消息队列存储单元202,从消息队列存储单元202中获取到一个请求消息。若该请求消息是读请求消息,则将该请求消息发送至消息处理单元203。若该请求消息是写请求消息,则根据请求消息对应的内存地址,从内存中读取写请求消息对应的写数据,并将写数据和该请求消息都发送给消息处理单元203。
消息处理单元203对来自DMA 201的数据进行打包处理,并将打包后的数据发送给路由模块。消息处理单元203还对来自路由模块的数据进行解包处理。
继续参见图1,消息处理模块110可以是如图2所示的消息处理模块200。
物理传输模块131~134分别连接到4个外部芯片。每个数据传输模块与所连接的外部芯片进行数据传输以执行至少一个请求消息。外部芯片是与数据传输电路100所在芯片相连接的其他外部芯片。物理传输模块131~134连接到外部芯片的物理传输模块或物理层。例如,物理传输模块131~134通过连接线等连接到外部芯片。
可选地,多个物理传输模块中的每个物理传输模块包括物理层和物理层控制器。例如,物理传输模块133包括串行物理层和串行物理层控制器。又如,物理传输模块134包括并行物理层和并行物理层控制器。
路由模块120被配置为根据接收到的请求消息,从物理传输模块131~134中确定至少一个特定物理传输模块。其中,接收到的请求消息为至少一个请求消息中的任意一个请求消息或为来自多个外部芯片的请求消息。例如,该请求消息可以是数据传输电路100所在的芯片发起的,则路由模块120会接收到消息传输模块110发送的请求消息。又如,数据传输电路100所在的芯片可能是数据传输路径中的一个芯片,即该芯片不是请求消息的发起方或目标芯片,则该请求消息是外部芯片发送的。
接收到的请求消息指示访问至少一个目标芯片,至少一个特定物理传输模块用于进行与接收到的请求消息对应的数据传输。
至少一个特定物理传输模块连接的至少一个外部芯片为通向至少一个目标芯片的路径中的芯片。例如图4d中的芯片1要向芯片24发送数据时,可能的一条路径为芯片1、芯片5、芯片14和芯片24。芯片1发起并发出请求消息,芯片5和芯片14都会接收并转发该请求消息,但是并不是发起该请求消息。
本实施例中,目标芯片是接收到的请求消息的目标地址或目标编号对应的芯片。每个第一请求可以发送给一个或多个目标芯片,从而进行数据的单播、多播或广播。目标芯片的数量与外部芯片的数量无关,其取决于目标地址或目标编号的数量。例如,接收到的请求消息的目标地址的数量有10个,则该接收到的请求消息需要发送给10个目标芯片。外部芯片可能是目标芯片。例如,接收到的请求消息的目标地址就是外部芯片的地址,这种情况下,外部芯片就是目标芯片。外部芯片还可能是通向至少一个目标芯片的路径中的芯片。例如,从数据传输电路100所在的芯片1传输到目标芯片,需要经过5个芯片(包括芯片1和目标芯片),则外部芯片是该路径中的1个芯片。
本实施例中,接收到的请求消息可以是来自消息处理模块110的请求消息,还可以是来自外部芯片的请求消息。无论接收到的请求消息来自何处,路由模块120解析接收到的请求消息,从而获得至少一个目标地址或至少一个目标编号。路由模块120根据接收到的请求消息的目标地址或目标编号,确定特定物理传输模块。例如,路由模块120解析接收到的请求消息,得到目标地址1和目标地址2,然后确定通过物理传输模块131向目标地址1发送接收到的请求消息及对应的数据、通过物理传输模块133向目标地址2发送接收到的请求消息及对应的数据。
可选地,路由模块120根据接收到的请求消息确定特定物理传输模块的编号。例如每个物理传输模块配置有固定的编号,如物理传输模块131~134的编号分别为0~3,或者物理传输模块131~134的编号分别为N、E、S、W。
可选地,路由模块120根据预先配置的路由方式,确定至少一个特定物理传输模块的编号。例如,预先配置的路由方式包括根据路由算法进行路由、根据静态路由表进行路由和根据动态路由表进行路由。
在路由方式根据静态路由表进行路由时,路由模块120根据接收到的请求消息的目标地址或目标编号,查询静态路由表,从而获取特定物理传输模块的编号。静态路由表会记录当前芯片到所有目标芯片的路径中下一个节点的编号。当前芯片仅连接到4个外部芯片,因此下一个节点必然是4个外部芯片中的1个外部芯片,并且由于芯片间的物理传输模块是固定连接的,下一个节点的编号等同于对应的物理传输模块的编号。
图3a示出了根据本公开一个实施例提供的静态路由表的示意图。
在图3a中,静态路由表包括节点0路由表~节点3路由表。每个节点的路由表示出了3个目标芯片对应的目标编号,以及每个目标编号对应的物理输出模块的编号。
在节点0路由表中,目标编号1对应于物理输出模块E、目标编号2对应于物理输出模块S、目标编号3对应于物理输出模块N。
在节点1路由表中,目标编号0对应于物理输出模块W、目标编号2对应于物理输出模块N、目标编号3对应于物理输出模块S。
在节点2路由表中,目标编号0对应于物理输出模块N、目标编号1对应于物理输出模块S、目标编号3对应于物理输出模块E。
在节点3路由表中,目标编号0对应于物理输出模块S、目标编号1对应于物理输出模块N、目标编号2对应于物理输出模块W。
静态路由表需要列举从当前节点到所有目标节点的路径中下一个节点的编号,因此使用编号比使用目标地址更节省存储静态路由表所需的空间。静态路由表更适用于目标节点(即目标芯片)数量少的场景。
返回图1,在路由方式根据动态路由表进行路由时,路由模块120根据接收到的请求消息的目标地址或目标编号,查询动态路由表,从而获取特定物理传输模块的编号。
可选地,路由模块120根据目标地址或目标编号从动态路由表中读取至少一个特定物理传输模块的编号。由于动态路由表通常应用在目标芯片数量较多的场景中,比如有40个目标芯片。在这种情况下,如果使用静态路由表会占据大量的存储空间,因此可以采用动态路由表。动态路由表可以仅保存少量的目标编号和物理输出模块的对应关系条目,例如保存使用率较高的数个对应关系条目或保存最新的数个对应关系条目。路由模块120在根据目标编号查询动态路由表时,会出现无法从动态路由表中读取出所需的特定物理传输模块的编号,则会从内存中读取特定物理传输模块的编号。
图3b示出了根据本公开一个实施例提供的访问动态路由表的示意图。
在图3b中,动态路由表300包括3列,第一列为有效位,第二列为标签值,第三列为物理传输模块的编号。有效位表示该条目是否有效,其取值为0或1。接收到的请求消息携带有标签值和目标编号的索引。
首先解析出接收到的请求消息中的目标编号的索引指向动态路由表的第二行,标签值为1111。根据索引指向动态路由表的第二行的条目,读出有效位为1、标签值为1100、以及物理传输模块的编号为10。将接收到的请求消息中的标签值和从动态路由表中读取出的标签值进行比较,确定这两个标签值不相等,则确定这条条目没有命中。条目没命中表示需要从内存中读取所需的特定物理传输模块的编号。内存中会保存所有的对应关系条目。
可选地,在确定这两个标签值相等的情况下,还会继续判断所读取的有效位的取值,若该取值表示无效,则仍需要从内存中读取对应关系条目。在比较两个标签值相等且有效位表示有效的情况下,确定这条条目命中。
可选地,数据传输电路100还包括拓扑管理器。拓扑管理器可以与路由模块120连接或者与消息处理模块110连接。拓扑管理器存储芯片对应的静态路由表或动态路由表。例如图3a中的静态路由表或图3b中的动态路由表。
可选地,在路由方式是根据路由算法进行路由,路由模块120还被配置为根据接收到的请求消息的目标地址和芯片的本地地址,计算至少一个特定物理传输模块的编号。与查询静态或动态路由表不同,路由算法需要使用目标地址和芯片的本地地址进行计算。例如,路由算法是X-Y路由算法。
可选地,路由模块120还可以实现数据校验、数据纠错和流量控制中的一项或多项。
例如,路由模块120采用基于信用值的流量控制机制,其在经由物理传输模块向外发送数据之前,需要接收数据的外部芯片先发送信用值,该信用值是周期性发送的,其用于表示作为接收端的外部芯片的可用缓冲区的大小。在接收到信用值之后,路由模块120根据信用值调整待发送数据的大小,待发送数据的大小需要小于或等于可用缓冲区的大小,由此可以有效减少数据传输失败导致的重传次数,进而减少由重传导致的网络堵塞。
本公开至少一个实施例提供一种芯片系统,包括多个芯片,其中,多个芯片采用预设拓扑结构进行连接,多个芯片中的每个芯片包括上述的数据传输电路。
可选地,预设拓扑结构包括网格拓扑结构、二维环面拓扑结构、环形拓扑结构、全连接拓扑结构和胖树拓扑结构。
可选地,多个芯片中的任意两个芯片根据路由算法、静态路由表或动态路由表中的一种进行路由,以实现数据传输。
图4a示出了根据本公开的一个实施例提供的一种芯片系统的示意图。
图4a中,芯片系统400a采用网状拓扑结构实现互联。芯片系统400a包括16个芯片,分别是芯片1-芯片16。芯片1-芯片16均包括如图1所示的数据传输电路100。
芯片1-芯片16中的每个芯片与其他的2-4个芯片连接。其中,芯片1与芯片2和芯片5连接、芯片2与芯片3和芯片6连接、芯片3与芯片4和芯片7连接、芯片4还与芯片8连接。芯片5还连接到芯片6和芯片9、芯片6还连接到芯片7和芯片10、芯片7还连接到芯片8和芯片11、芯片8还连接到芯片12。芯片9还连接到芯片10和芯片13、芯片10还连接到芯片11和芯片14、芯片11还连接到芯片12和芯片15、芯片12还连接到芯片16。芯片13连接到芯片14、芯片14连接到芯片15、芯片15连接到芯片16。
如图4a所示,芯片6的4个物理传输模块的编号分别是N,E,S和W,其中N为芯片6上侧的物理传输模块,S为芯片6下侧的物理传输模块,E为芯片6右侧的物理传输模块,W为芯片6所左侧的物理传输模块。图4a中的其他芯片的物理传输模块的编号也可依照芯片6的设置方式。为了便于示意,仅示出了芯片6的物理传输模块的编号,不代表其他的芯片不具有物理传输模块和编号。类似地,图4b-4e中的任意芯片也可参照图4a中的芯片6来设置物理传输模块及其编号。可以理解地,物理传输模块的编号也可以采用数字来表示。
芯片系统400a可以采用路由表和路由算法两种路由方式来进行路由。根据动态路由表或静态路由表确定下一个节点的方式可参见前文的描述。
例如,采用X-Y路由算法时,将每个芯片记作节点,每个节点包括X坐标和Y坐标,如节点可以用(X,Y)表示,其也可以用(Y,X表示)。其中芯片1设为(0,0)、芯片2为(0,1)、芯片5为(1,0)、芯片6为(1,1)、……、芯片16为(3,3)。每个芯片以数据包的形式进行数据传输,数据包中携带目标节点的坐标。X-Y路由算法的实现方式是将数据包先沿着X取值增加或减小的方向(该方向取决当前节点坐标和目标节点的坐标的X的取值)传输,达到与目标节点的坐标中X取值相同的节点后,再沿着Y轴方向(该方向取决当前节点坐标和目标节点的坐标的Y的取值)进行传输,最终达到目标节点。例如,每个节点将目标节点的坐标的X与当前节点的X相比较,若目标节点的坐标的X较大,则数据包向右传输,反之向左传输。若目标节点的坐标的X和当前节点的X相等,则继续比较Y的取值。若目标节点的坐标的Y大于当前节点的Y,则向下传输,反之向上传输,直至数据包到达目标节点。
例如,当前节点为(1,1),即芯片6。目标节点为(3,3),即芯片16。采用X-Y路由算法进行路由时,数据包从芯片6,依次经过芯片7、芯片8、芯片12,最后到达芯片16。
图4b示出了根据本公开的一个实施例提供的另一种芯片系统的示意图。
图4b中,芯片系统400b采用二维环面拓扑结构实现互联。芯片系统400b包括16个芯片,分别是芯片1-芯片16。芯片1-芯片16均包括如图1所示的数据传输电路100。
芯片1-芯片16中的每个芯片与其他的4个芯片连接。其中,芯片1与芯片2、芯片4、芯片13和芯片5连接,芯片2与芯片3、芯片6和芯片14连接,芯片3与芯片4、芯片7和芯片15连接,芯片4还与芯片8和芯片16连接。芯片5还连接到芯片6、芯片8和芯片9、芯片6还连接到芯片7和芯片10、芯片7还连接到芯片8和芯片11、芯片8还连接到芯片12。芯片9还连接到芯片10、芯片12和芯片13、芯片10还连接到芯片11和芯片14、芯片11还连接到芯片12和芯片15、芯片12还连接到芯片16。芯片13连接到芯片14和芯片16、芯片14连接到芯片15、芯片15连接到芯片16。
可以理解地,虽然图4a和图4b中的芯片系统均包括16个芯片,采用网状拓扑结构或二维环面拓扑结构的芯片系统的芯片数量并不限于16。
图4c示出了根据本公开的一个实施例提供的又一种芯片系统的示意图。
图4c中,芯片系统400c采用环状拓扑结构实现互联。芯片系统400c包括8个芯片,分别是芯片1-芯片8。芯片1-芯片16均包括如图1所示的数据传输电路100。
芯片1-芯片8中的每个芯片与其他的2个芯片连接。其中,芯片1与芯片2和芯片5连接、芯片3与芯片2和芯片4连接、芯片6与芯片5和芯片7连接、芯片8与芯片7和芯片4连接。
芯片系统400b和芯片系统400c可以采用路由表和路由算法两种路由方式来进行路由,可参见图4a的相关描述。
图4d示出了根据本公开的一个实施例提供的又一种芯片系统的示意图。
图4d中,芯片系统400d采用胖树拓扑结构实现互联。芯片系统400d包括24个芯片,分别是芯片1-芯片24。芯片1-芯片24均包括如图1所示的数据传输电路100。
芯片1连接到芯片5、芯片7、芯片9和芯片11。芯片2连接到芯片5、芯片7、芯片9和芯片11。芯片3连接到芯片6、芯片8、芯片10和芯片12。芯片4连接到芯片6、芯片8、芯片10和芯片12。芯片5连接到芯片13和芯片14。芯片6连接到芯片13和芯片14。芯片7连接到芯片15和芯片16。芯片8连接到芯片15和芯片16。芯片9连接到芯片17和芯片18。芯片10连接到芯片17和芯片18。芯片11连接到芯片19和芯片20。芯片12连接到芯片19和芯片20。芯片13连接到芯片21和芯片22。芯片14连接到芯片23和芯片24。
芯片系统400d的胖树结构还可以扩展,例如芯片15还可以连接更多的芯片、芯片21-24也可以连接其他芯片。
图4e示出了根据本公开的一个实施例提供的又一种芯片系统的示意图。
图4e中,芯片系统400e采用全连接拓扑结构实现互联。芯片系统400e包括4个芯片,分别是芯片1-芯片4。芯片1-芯片4均包括如图1所示的数据传输电路100。
芯片1-芯片4中的每个芯片与其他的3个芯片连接。其中,芯片1与芯片2、芯片3和芯片4连接。芯片2与芯片1、芯片3和芯片4连接。芯片3与芯片1、芯片2和芯片4连接。芯片4与芯片1、芯片2和芯片3连接。
芯片系统400d和芯片系统400e可以采用路由表的路由方式来进行路由,可参见上文的相关描述。优选地,芯片系统400e采用静态路由表进行路由,芯片系统400d采用动态路由表进行路由。芯片系统400d和芯片系统400e也可以根据路由算法进行路由,但使用路由表的数据传输效果更好。
例如芯片系统400e可以采用如图3a所示的静态路由表。
本公开至少一个实施例提供一种电子设备,包括上述实施例中芯片系统。电子设备可以为任意的具有计算功能的设备,例如为网络设备、路由器、计算机、服务器、智能手机、平板电脑等,本公开的实施例对此不作限制。
本公开至少一个实施例还提供一种芯片,包括上述实施例中的数据传输电路。
本公开至少一个实施例提供一种电子设备,包括前一实施例中的芯片。
本公开至少一个实施例提供一种处理系统,包括多个上述实施例中的电子设备,其中,多个电子设备采用预设拓扑结构进行连接。
与图4a-图4e所示的芯片系统不同,本实施例中的芯片包括在电子设备内,多个电子设备通过连接线、线缆等连接。多个电子设备可采用图4a-图4e所示的拓扑结构实现互联。
可选地,预设拓扑结构包括网格拓扑结构、二维环面拓扑结构、环形拓扑结构、全连接拓扑结构和胖树拓扑结构。
可选地,多个电子设备中的任意两个电子设备根据路由算法、静态路由表或动态路由表中的一种进行路由,以实现数据传输。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
值得注意的,本申请中的步骤流程图以及以上方法描述仅作为例示性的例子并且不旨在于要求或暗示必须按照给出的顺序进行各个实施例的步骤,某些步骤可以并行、彼此独立或按照其他适当的顺序执行。另外,诸如“其次”、“然后”、“接下来”等等的词语不旨在于限制步骤的顺序;这些词语仅用于引导读者通读这些方法的描述。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。还需要指出的是,在本申请的装置和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
有以下几点需要说明:(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种数据传输电路,应用于芯片,包括:
消息处理模块,与所述芯片内的总线连接,被配置为管理消息队列,其中,所述消息队列存储至少一个请求消息,所述至少一个请求消息指示访问所述芯片之外的目标芯片;
多个物理传输模块,每个物理传输模块分别连接到所述芯片之外的一个外部芯片,其中,每个物理传输模块被配置为与外部芯片进行数据传输以执行所述至少一个请求消息;
路由模块,与所述消息处理模块及所述多个物理传输模块连接,被配置为根据接收到的请求消息,从所述多个物理传输模块中确定进行所述接收到的请求消息对应的数据传输的至少一个特定物理传输模块,其中,所述接收到的请求消息为所述至少一个请求消息中的任意一个请求消息或来自所述多个外部芯片的请求消息,
其中,所述至少一个特定物理传输模块连接的外部芯片为通向所述至少一个目标芯片的路径中的芯片。
2.根据权利要求1所述的电路,其中,所述路由模块被配置为根据预先配置的路由方式,确定所述至少一个特定物理传输模块的编号。
3.根据权利要求2所述的电路,其中,所述预先配置的路由方式包括根据路由算法进行路由、根据静态路由表进行路由和根据动态路由表进行路由。
4.根据权利要求3所述的电路,其中,所述电路还包括拓扑管理器,与所述路由模块连接,被配置为存储所述芯片对应的静态路由表或动态路由表。
5.根据权利要求2-4中任一项所述的电路,其中,所述路由模块还被配置为根据所述接收到的请求消息的目标地址或目标编号,查询所述动态路由表或所述静态路由表以获取所述至少一个特定物理传输模块的编号。
6.根据权利要求2-4中任一项所述的电路,其中,所述路由模块还被配置为根据所述接收到的请求消息的目标地址和所述芯片的本地地址,计算所述至少一个特定物理传输模块的编号。
7.根据权利要求5所述的电路,其中,所述路由模块还被配置为根据所述目标地址或所述目标编号从所述动态路由表中读取所述至少一个特定物理传输模块的编号,以及在未从所述动态路由表中读取到所述至少一个特定物理传输模块的编号时,从所述芯片的内存中读取所述至少一个特定物理传输模块的编号。
8.根据权利要求1所述的电路,其中,所述消息处理模块包括直接内存存取DMA、消息队列存储单元和消息处理单元,所述DMA与所述芯片的总线、所述消息队列存储单元和所述消息处理单元连接,所述消息队列存储单元与所述芯片的处理器连接,其中,
所述DMA被配置为经由所述总线访问所述芯片的内存,以根据所述至少一个请求消息,与所述内存进行所述至少一个请求消息相对应的数据传输;
消息队列存储单元,与芯片的处理器连接,被配置为存储所述处理器发送来的所述至少一个请求消息;和
消息处理单元,与所述DMA连接,被配置为将所述DMA发送的数据进行打包处理以符合所述路由模块的传输格式,以及对来自所述路由模块的数据进行解包处理,以符合所述总线的传输格式。
9.根据权利要求1所述的电路,其中,所述多个物理传输模块中的每个物理传输模块包括物理层和物理层控制器。
10.一种芯片系统,包括多个芯片,其中,所述多个芯片采用预设拓扑结构进行连接,所述多个芯片中的每个芯片包括如权利要求1-9中任一项所述的电路。
11.根据权利要求10所述的芯片系统,其中,所述预设拓扑结构包括网格拓扑结构、二维环面拓扑结构、环形拓扑结构、全连接拓扑结构和胖树拓扑结构。
12.根据权利要求10所述的芯片系统,其中,所述多个芯片中的任意两个芯片根据路由算法、静态路由表或动态路由表中的一种进行路由,以实现数据传输。
13.一种电子设备,包括如权利要求10所述的芯片系统。
14.一种芯片,包括如权利要求1-9中任一项所述的数据传输电路。
15.一种电子设备,包括如权利要求13所述的芯片。
16.一种处理系统,包括多个如权利要求15所述的电子设备,其中,所述多个电子设备采用预设拓扑结构进行连接。
17.根据权利要求16所述的处理系统,其中,所述预设拓扑结构包括网格拓扑结构、二维环面拓扑结构、环形拓扑结构、全连接拓扑结构和胖树拓扑结构。
18.根据权利要求16所述的处理系统,其中,所述多个电子设备中的任意两个电子设备根据路由算法、静态路由表或动态路由表中的一种进行路由,以实现数据传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311148769.3A CN117194310A (zh) | 2023-09-06 | 2023-09-06 | 数据传输电路、芯片、系统及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311148769.3A CN117194310A (zh) | 2023-09-06 | 2023-09-06 | 数据传输电路、芯片、系统及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117194310A true CN117194310A (zh) | 2023-12-08 |
Family
ID=88997311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311148769.3A Pending CN117194310A (zh) | 2023-09-06 | 2023-09-06 | 数据传输电路、芯片、系统及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117194310A (zh) |
-
2023
- 2023-09-06 CN CN202311148769.3A patent/CN117194310A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106688208B (zh) | 利用机架规模架构中的池化存储器进行的网络通信 | |
US7039914B2 (en) | Message processing in network forwarding engine by tracking order of assigned thread in order group | |
CN113852656B (zh) | 一种数据传输方法、处理器系统及内存访问系统 | |
US7283549B2 (en) | Method for increasing the transmit and receive efficiency of an embedded ethernet controller | |
US11693809B2 (en) | Asymmetric read / write architecture for enhanced throughput and reduced latency | |
US9846657B2 (en) | Electronic device for packing multiple commands in one compound command frame and electronic device for decoding and executing multiple commands packed in one compound command frame | |
CN114647602B (zh) | 一种跨芯片访问控制的方法、装置、设备及介质 | |
US10248315B2 (en) | Devices and methods for interconnecting server nodes | |
JP2017537404A (ja) | メモリアクセス方法、スイッチ、およびマルチプロセッサシステム | |
KR102126592B1 (ko) | 멀티코어 프로세서들에 대한 내부 및 외부 액세스를 갖는 룩-어사이드 프로세서 유닛 | |
CN116383114B (zh) | 芯片、芯片互联系统、数据传输方法、电子设备和介质 | |
US6816889B1 (en) | Assignment of dual port memory banks for a CPU and a host channel adapter in an InfiniBand computing node | |
US10178018B2 (en) | Transmission and reception devices | |
CN113507532A (zh) | 网络地址转换的方法及相应服务器、存储介质和电子设备 | |
JP2008509463A (ja) | メッセージをメッセージメモリに記憶する方法およびメッセージメモリ | |
US20200192842A1 (en) | Memory request chaining on bus | |
CN118069387A (zh) | 一种基于硬件多线程的rdma数据发送队列管理方法及装置 | |
CN117194310A (zh) | 数据传输电路、芯片、系统及电子设备 | |
CN116226027A (zh) | 数据传输系统、方法、装置、通信设备及存储介质 | |
CN114238156A (zh) | 处理系统以及操作处理系统的方法 | |
CN118502323B (zh) | 工业以太网数据的传输方法和fpga | |
WO2006048826A1 (en) | Integrated circuit and method for data transfer in a network on chip environment | |
CN101594291B (zh) | 非阻塞式网络系统及其分组仲裁方法 | |
WO2024227389A1 (zh) | 数据传输系统、方法、装置、通信设备及存储介质 | |
CN114844757B (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 |