CN113704151B - 基于TileLink总线的芯片互联架构及互联方法 - Google Patents
基于TileLink总线的芯片互联架构及互联方法 Download PDFInfo
- Publication number
- CN113704151B CN113704151B CN202110952954.2A CN202110952954A CN113704151B CN 113704151 B CN113704151 B CN 113704151B CN 202110952954 A CN202110952954 A CN 202110952954A CN 113704151 B CN113704151 B CN 113704151B
- Authority
- CN
- China
- Prior art keywords
- module
- data
- tilelink
- chip
- bus
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000009432 framing Methods 0.000 claims abstract description 71
- 230000005540 biological transmission Effects 0.000 claims abstract description 59
- 230000004044 response Effects 0.000 claims abstract description 55
- 230000006870 function Effects 0.000 claims description 9
- 239000003999 initiator Substances 0.000 claims description 4
- 239000002184 metal Substances 0.000 claims description 2
- 230000003993 interaction Effects 0.000 abstract description 4
- 230000001934 delay Effects 0.000 abstract 1
- 238000007781 pre-processing Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 11
- 230000007704 transition Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 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
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
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/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明公开了基于TileLink总线的芯片互联架构及互联方法,属于芯片互联技术领域。本发明针对基于TileLink总线的芯片间数据的交互,设计了TileLink消息的组帧转发架构,将TileLink总线消息以帧的形式跨芯片串行传输,使得以TileLink总线作为片上总线的芯片间可以进行数据交互。本发明包括发送端和接收端,发送端负责预处理TileLink消息,对A通道组帧和发送,接收响应消息;接收端负责接收请求消息,对D通道响应消息组帧和发送。本发明芯片间TileLink数据采用SerDes进行串行传输,使用较少的芯片引脚;时钟内嵌在数据中,不需要传输随路时钟,避免了数据和时钟的传播延时不同。
Description
技术领域
本发明涉及基于TileLink总线的芯片互联架构及互联方法,属于芯片互联技术领域。
背景技术
半导体技术通过与计算机技术的有效结合得到了很大的发展,同时也促进了计算机技术的发展。随着半导体技术的快速发展,例如中央处理器(CPU)、数字信号处理(DSP)、可编程逻辑阵列(FPGA)等数据处理芯片的性能都有大幅度提升,但仍无法满足高性能大数据量的应用需求。因此,芯片系统逐渐由单核向多核、由多核向多片发展是必然趋势。而如何实现芯片间的互联及跨芯片的数据传输是其中的重要问题。
TileLink总线是加州大学伯克利分校和SiFive于2014年为RISC-V指令集CPU设计的一种片内总线,可为多个主设备提供对内存和其他从设备的一致内存映射访问,用于在芯片内连接各个功能部件并在它们间传输数据。TileLink设计用于片上系统(System-on-Chip),可连接通用多处理器(multiprocessors)、协处理器、加速器、DMA引擎以及各种简单或复杂的设备。具有低延迟、高吞吐量、可扩展且高速的特点。
针对基于TileLink总线设计的芯片系统,目前尚没有芯片间具体互联的方法和架构方案,并且基于TileLink总线的芯片在与其他芯片连接时存在如下问题:TileLink总线是片内并行总线,数据位宽很大,若直接采用TileLink总线进行芯片间的互联,则需要很多芯片引脚,并且在并行数据传输过程中,并行数据各个位的传播延时不相等,或者时钟的传播延时和数据的传播延时不相等,都会导致数据接收端不能正确接收数据。有鉴于此,本发明提供了一种将TileLink总线的并行数据组帧后,逐帧将数据串行传输的方法。
发明内容
为使以TileLink为总线的芯片间完成数据传输,本发明提出了基于TileLink总线的芯片互联架构及互联方法,完成对TileLink通道之间消息的组帧转发。
根据本发明的技术方案,所述互联架构包括发送端和接收端,所述发送端被设置于采用TileLink总线的芯片1,所述接收端被设置于采用TileLink总线的芯片2,以实现芯片1和芯片2的片间互联及数据传输。
所述发送端包括单拍化模块,限制位宽模块,组帧发送模块,解帧接收模块,控制模块,数据FIFO模块和SerDes模块;所述接收端包括组帧发送模块,解帧接收模块,控制模块,数据FIFO模块和SerDes模块;并且,发送端的控制模块,数据FIFO模块和SerDes模块与接收端的控制模块,数据FIFO模块和SerDes模块相同。
所述芯片1内,所述发送端通过TileLink总线通道与TileLink总线连接;所述发送端内,所述单拍化模块与所述限制位宽模块相互连接;所述限制位宽模块连接至所述组帧发送模块连接,所述组帧发送模块连接至所述SerDes模块;所述SerDes模块与所述解帧接收模块、所述数据FIFO模块依次连接,所述数据FIFO模块连接至所述限制位宽模块,所述数据FIFO模块还连接至所述控制模块;所述控制模块连接至所述发送端的输入端,并与SerDes模块相连接。
所述芯片2内,所述接收端通过TileLink总线通道与TileLink总线连接,所述接收端内,所述组帧发送模块、所述SerDes模块、所述解帧接收模块、所述数据FIFO模块及所述控制模块的连接方式与所述发送端相同。
根据本发明的互联架构的具体连接情况如图1所示,其中,所述芯片1内:所述发送端的输入连接TileLink总线A通道,所述发送端的输出连接TileLink总线D通道。
所述A通道连接所述单拍化模块的输入和输出,连接所述限制位宽模块的输入和输出,并连接至组帧发送模块的输入;所述组帧发送模块的输出连接所述SerDes模块的并行输入数据端口,所述SerDes模块的并行数据输出端口连接所述解帧接收模块的输入,所述解帧接收模块的输出连接所述数据FIFO模块的输入。
所述D通道连接所述单拍化模块的输入和输出,连接所述限制位宽模块的输入和输出,并连接至所述数据FIFO模块的输出;所述数据FIFO模块的数据数目输出端口还连接控制模块的输入;所述控制模块的SerDes状态控制输入端口连接到所述发送端的输入,并且所述控制模块输出连接所述SerDes模块工作状态控制端口。
并且,所述芯片2内,所述接收端的输出连接TileLink总线A通道,所述接收端的输入连接TileLink总线D通道。
所述接收端内,所述SerDes模块的并行数据输出端口连接所述解帧接收模块的输入,所述SerDes模块的工作状态控制端口连接所述控制模块的输出,所述SerDes模块的并行数据输入端口连接所述组帧发送模块的输出;所述解帧接收模块的输出连接所述数据FIFO模块的输入;所述数据FIFO模块的数据数目输出端口连接所述控制模块的输入;所述控制模块的SerDes状态控制输入端口连接到所述接收端的输入。
根据本发明所述的互联结构,可选地,针对不同的传输距离,所述芯片1与所述芯片2之间的连接可采用金属连接、PCB连接和信号线连接。
根据本发明所述的互联结构,芯片1内,TileLink总线与单拍化模块间,单拍化模块与限制位宽模块间,限制位宽模块与组帧发送模块间,组帧发送模块与SerDes模块间,限制位宽模块与数据FIFO模块间,数据FIFO模块与解帧接收模块间,采用VALID、READY握手机制传输数据。并且,芯片2内,SerDes模块与组帧发送模块间,数据FIFO模块与TileLink总线间,组帧发送模块与TileLink总线间,采用VALID、READY握手机制传输数据。
根据本发明所述的互联结构,所述发送端内,所述单拍化模块用于将TileLink总线的请求切分成单拍的消息,同时将TileLink总线的source信号扩展一定位宽来表示切分出的新消息;所述限制位宽模块用于限制TileLink总线的source信号位宽;所述组帧发送模块用于将TileLink总线A通道的消息组帧成数据并通过发送状态机一帧一帧输出给SerDes模块;所述解帧接收模块用于接收通过SerDes模块回传的数据,并将数据存入数据FIFO模块。
根据本发明所述的互联结构,所述接收端内,所述组帧发送模块用于将回传的D通道响应消息组帧成数据并通过发送状态机一帧一帧输出给SerDes模块;所述解帧接收模块用于接收通过SerDes模块的数据,并将数据存入数据FIFO模块。
根据本发明所述的互联结构,所述发送端内,所述控制模块用于控制所述SerDes模块的工作状态,并且根据所述数据FIFO模块中的数据数目对所述SerDes模块进行流量控制;所述数据FIFO模块用于暂存数据,数据先入先出,并将内部数据数目输出给所述控制模块。所述SerDes模块,用于将并行数据串行发送,并接收对端的串行数据后并行输出,支持流量控制,数据CRC校验。
根据本发明所述的互联结构,所述接收端内,所述SerDes模块、所述数据FIFO模块及所述控制模块与所述发送端的所述SerDes模块、所述数据FIFO模块及所述控制模块作用相同。
本发明还提供基于TileLink总线的芯片互联方法,所述互联方法的数据流传输过程中,当芯片1内的TileLink总线A通道发起请求时,所述方法包括如下步骤:
步骤一:所述芯片1内的单拍化模块将请求消息切分成单拍的消息,同时将TileLink总线的source信号扩展一定位宽来表示切分出的新消息;
步骤二:所述限制位宽模块固定TileLink总线的source信号的位宽,并将固定位宽后截取的信号存储在与输出source信号关联的存储器中;
步骤三:所述组帧发送模块将新消息进行组帧,将TileLink总线A通道的请求消息转换成数据进行传输;并通过发送状态机将数据一帧一帧发送给SerDes模块;
步骤四:所述SerDes模块将并行数据串行发送给芯片2;
步骤五:所述芯片2的SerDes模块接收到串行数据后,一帧一帧并行输出至解帧接收模块;
步骤六:所述解帧接收模块通过接收状态机接收数据,并将数据输出至数据FIFO模块;
步骤七:所述数据FIFO模块将数据恢复成TileLink总线A通道的请求消息输出给芯片2内的TileLink总线。
根据本发明的互联方法,所述互联方法的数据流传输过程中,当响应消息通过芯片2的TileLink总线D通道回传时,所述方法还包括如下步骤:
步骤一:所述芯片2内的组帧发送模块将数据组帧,将回传的TileLink总线D通道响应消息转换成数据进行传输;并通过状态机一帧一帧发送给SerDes模块;
步骤二:所述芯片2内的SerDes模块将并行数据串行传输至芯片1;
步骤三:所述芯片1内的SerDes模块接收到串行数据后,一帧一帧并行输出至解帧接收模块;
步骤四:所述解帧接收模块通过接收状态机接收数据,并将数据输出至数据FIFO模块;
步骤五:所述数据FIFO模块将数据恢复成TileLink总线D通道的响应消息输出给限制位宽模块;
步骤六:所述限制位宽模块根据响应消息中的source信号恢复缩减的位宽,然后输出给单拍化模块;
步骤七:所述单拍化模块将source信号扩展位舍弃,此时,当多个单拍响应消息的source信号相同,则合并成一个source信号的响应消息,并将响应消息输出给芯片1内的TileLink总线请求发起者;完成一次芯片1与芯片2之间的TileLink总线消息的请求与响应。
本发明有益效果是:
本申请的技术方案针对基于TileLink总线的两个芯片间的数据交互,提出了一种基于TileLink总线的芯片间互联架构及互联方法,实现TileLink总线的消息跨芯片转发;并且本发明的片间互联架构对于两个芯片的TileLink总线完全透明。不同于带时钟的并行数据传输,本申请中将芯片内的并行TileLink总线数据采用SerDes进行串行传输到另一芯片,能够减少芯片引脚的使用;并且时钟内嵌在数据中,不需要传输随路时钟,避免了数据和时钟的传播延时不同。
本发明的互联架构中仅用到了TileLink总线的A通道和D通道,这两个通道就能完成除缓存一致性相关的所有访存操作;TileLink总线的B、C、E通道用于处理不同级存储器中数据不一致的问题,不是必须的通道。针对不需要跨片传输缓存一致性相关操作的情况,仅跨片传输访存操作的A、D通道,传输效率更高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的片间互联架构示意图。
图2是TileLink总线的通道示意图。
图3是TileLink总线完成一次传输的波形图。
图4是本发明的单拍化模块A通道输入输出波形图。
图5是本发明的限制位宽模块功能图。
图6是本发明的发送端组帧发送模块和接收端组帧发送模块状态转换图。
图7是本发明的发送端组帧发送模块A通道数据帧格式。
图8是本发明的发送端解帧接收模块和接收端解帧接收模块状态转换图。
图9是本发明的接收端组帧发送模块D通道数据帧格式。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
为便于理解本申请的技术方案,首先对TileLink总线进行介绍如下:
TileLink总线包含A、B、C、D和E五个通道,如图2所示。其中A、D通道是必须的,用以对设备进行访存操作,具体以opcode信号区分操作类型;B、C、E通道是可选的,用以支持缓存一致性的操作。每个通道的具体功能如下,通道A:传送一个请求,访问指定的地址范围或对数据进行缓存操作。通道B:传输一个请求,对主代理已缓存的某个地址上的数据进行访问或是写回操作。通道C:响应通道B的请求,也用于自发写回脏缓存数据(dirtied cacheddata)。通道D:向最初的请求者传送一个数据回复响应或是应答消息。通道E:传输来自最初请求者的缓存块传输的最终应答,用于序列化。
上述5条通道中,任一通道上发射的每一条数据都称为一次传输。传输过程中,当VALID和READY信号均为高且时钟存在上升沿时,发生一次有效传输。例如,图3中在T3处发生传输。
A通道从主设备发送请求事务到从设备的一个特定地址的相关信息如表1所示。
表1通道A信号
注:z:size字段的位宽,最小4位;o:区分源(主)端所需的比特数;a:地址的位宽,最小32位;w:以字节为单位的数据总线宽度。
D通道从从设备发送通道A请求的响应消息到主设备的相关信息如表2所示。
表2通道D信号
注:z:size字段的位宽,最小4位;o:区分源(主)端所需的比特数;i:区分终(从)端所需的比特数;w:以字节为单位的数据总线宽度。
实施例一:
本实施例提供一种基于TileLink总线的片间互联架构,所述互联架构通过SerDes将TileLink总线上并行消息组帧后串行发送,完成数据跨芯片传输。
根据本实施例的互联架构如图1所示,所述互联架构所述互联架构包括发送端和接收端,所述发送端被设置于采用TileLink总线的芯片1,所述接收端被设置于采用TileLink总线的芯片2,以实现芯片1和芯片2的片间互联及数据传输。
所述发送端包括单拍化模块,限制位宽模块,组帧发送模块,解帧接收模块,控制模块,数据FIFO模块和SerDes模块;所述接收端包括组帧发送模块,解帧接收模块,控制模块,数据FIFO模块和SerDes模块;并且,发送端的控制模块,数据FIFO模块和SerDes模块与接收端的控制模块,数据FIFO模块和SerDes模块相同。
根据本发明的互联架构的具体连接情况如图1所示,具体而言,所述芯片1内:所述发送端的输入连接TileLink总线A通道,所述发送端的输出连接TileLink总线D通道。
所述A通道连接所述单拍化模块的输入和输出,连接所述限制位宽模块的输入和输出,并连接至组帧发送模块的输入;所述组帧发送模块的输出连接所述SerDes模块的并行输入数据端口,所述SerDes模块的并行数据输出端口连接所述解帧接收模块的输入,所述解帧接收模块的输出连接所述数据FIFO模块的输入。
所述D通道连接所述单拍化模块的输入和输出,连接所述限制位宽模块的输入和输出,并连接至所述数据FIFO模块的输出;所述数据FIFO模块的数据数目输出端口连接控制模块的输入;所述控制模块的SerDes状态控制输入端口连接到所述发送端的输入,并且所述控制模块输出连接所述SerDes模块工作状态控制端口。
并且,如图1所示,所述芯片2内,所述接收端的输出连接TileLink总线A通道,所述接收端的输入连接TileLink总线D通道。
所述接收端内,所述SerDes模块的并行数据输出端口连接所述解帧接收模块的输入,所述SerDes模块的工作状态控制端口连接所述控制模块的输出,所述SerDes模块的并行数据输入端口连接所述组帧发送模块的输出;所述解帧接收模块的输出连接所述数据FIFO模块的输入;所述数据FIFO模块的数据数目输出端口连接所述控制模块的输入;所述控制模块的SerDes状态控制输入端口连接到所述接收端的输入。
所述单拍化模块,用于将TileLink的突发请求切分成单拍的消息,同时将source信号扩展一定位宽来表示切分出的新消息;在响应消息回传过程中再把扩展的位宽舍弃。所谓突发请求是指在进行一次地址传输后,进行多次数据传输。第一次传输的地址作为起始地址,后续数据对应的地址在起始地址上递增。经单拍化模块后,在消息传输时地址和数据一一对应。例如,A通道发起写32字节数据的操作请求,此时的总线位宽是64位(8字节),那么需要连续4次握手完成传输,响应消息只需1个;相对的,经过单拍化模块后,就是将写32字节数据的操作切分成4个独立的写8字节数据的操作,有4个响应消息,A通道输入输出波形如图4所示。
所述限制位宽模块,用于固定TileLink总线的source信号的位宽,功能模型如图5所示,其中n≥8,限制位宽模块输出source信号的位宽固定为8位。
所述发送端组帧发送模块,用于将A通道消息组帧成数据并通过发送状态机一帧一帧输出给SerDes模块,状态转换图如图6所示,Start状态表明状态机已经准备好;Get状态获取A通道消息,并组帧,帧格式如图7所示;Put状态将第一帧数据给SerDes模块发送;SendCtrl状态第一帧数据发送完成,将第二帧数据给SerDes模块发送;SendData状态等待数据发送完成后返回Start状态。
所述发送端解帧接收模块,用于接收通过SerDes模块回传数据,并将数据存入数据FIFO模块,状态转换图如图8所示,GetCtrl状态获取SerDes输出的第一帧数据;GetData状态获取第二帧数据。
所述接收端组帧发送模块,用于将回传的D通道响应消息组帧成数据并通过发送状态机一帧一帧输出给SerDes模块,状态转换与发送端组帧发送模块一样,帧格式如图9所示。
所述接收端解帧接收模块,用于接收通过SerDes模块的数据,并将数据存入数据FIFO模块,状态转换与发送端解帧接收模块一样。
所述控制模块,用于控制SerDes模块的工作状态,并且可以根据数据FIFO模块中的数据数目对SerDes模块进行流量控制。存在高低两个阈值,当数据FIFO模块中数据量达到高阈值时,停止SerDes模块功能,但可能仍存在传输中的数据,数据FIFO模块继续接收;当数据FIFO模块中数据量减少到低阈值时,重新开启SerDes模块数据收发功能。控制模块还负责复位SerDes模块,SerDes模块环回测试。
所述数据FIFO模块,用于暂存数据,数据先入先出,并将内部数据数目输出给控制模块。
所述SerDes模块,用于将并行数据串行发送,并接收对端的串行数据后并行输出,支持流量控制,数据CRC校验。
根据本实施例所述的互联结构,所述接收端内,所述SerDes模块、所述数据FIFO模块及所述控制模块与所述发送端的所述SerDes模块、所述数据FIFO模块及所述控制模块作用相同。
本实施例还提供基于TileLink总线的芯片互联方法,所述互联方法的数据流传输过程中,当芯片1内的TileLink总线A通道发起请求时,所述方法包括如下步骤:
步骤一:所述芯片1内的单拍化模块将请求消息切分成单拍的消息,同时将TileLink总线的source信号扩展一定位宽来表示切分出的新消息;
步骤二:所述限制位宽模块固定TileLink总线的source信号的位宽,这是由于在后续组帧模块处理时需要消息中的所有信号位宽都是确定的,并将固定位宽后截取的信号存储在与输出source信号关联的存储器中;
步骤三:所述组帧发送模块将新消息进行组帧,将TileLink总线A通道的请求消息转换成数据进行传输;并通过发送状态机将数据一帧一帧发送给SerDes模块;
步骤四:所述SerDes模块将并行数据串行发送给芯片2;
步骤五:所述芯片2的SerDes模块接收到串行数据后,一帧一帧并行输出至解帧接收模块;
步骤六:所述解帧接收模块通过接收状态机接收数据,并将数据输出至数据FIFO模块;
步骤七:所述数据FIFO模块将数据恢复成TileLink总线A通道的请求消息输出给芯片2内的TileLink总线。
根据本实施例的互联方法,所述互联方法的数据流传输过程中,当响应消息通过芯片2的TileLink总线D通道回传时,所述方法还包括如下步骤:
步骤一:所述芯片2内的组帧发送模块将消息进行组帧,将回传的TileLink总线D通道响应消息转换成数据进行传输;并通过状态机将数据一帧一帧发送给SerDes模块;
步骤二:所述芯片2内的SerDes模块将并行数据串行传输至芯片1;
步骤三:所述芯片1内的SerDes模块接收到串行数据后,一帧一帧将并行数据输出至解帧接收模块;
步骤四:所述解帧接收模块通过接收状态机接收数据,并将数据输出至数据FIFO模块;
步骤五:所述数据FIFO模块将数据恢复成TileLink总线D通道的响应消息输出给限制位宽模块;
步骤六:所述限制位宽模块根据响应消息中的source信号恢复缩减的位宽,然后输出给单拍化模块;
步骤七:所述单拍化模块将source信号扩展位舍弃,此时,当多个单拍响应消息的source信号相同,则合并成一个source信号的响应消息,并将响应消息输出给芯片1内的TileLink总线请求发起者;完成一次芯片1与芯片2之间的TileLink总线消息的请求与响应。
实施例二:
本实施例提供一种基于TileLink总线的片间互联架构,所述互联架构通过SerDes将TileLink总线上并行消息组帧后串行发送,完成数据跨芯片传输。
根据本实施例的互联架构如图1所示,所述互联架构所述互联架构包括发送端和接收端,所述发送端被设置于采用TileLink总线的芯片1,所述接收端被设置于采用TileLink总线的芯片2,以实现芯片1和芯片2的片间互联及数据传输。
所述发送端包括单拍化模块,限制位宽模块,组帧发送模块,解帧接收模块,控制模块,数据FIFO模块和SerDes模块;所述接收端包括组帧发送模块,解帧接收模块,控制模块,数据FIFO模块和SerDes模块;并且,发送端的控制模块,数据FIFO模块和SerDes模块与接收端的控制模块,数据FIFO模块和SerDes模块相同。
根据本发明的互联架构的具体连接情况如图1所示,具体而言,所述芯片1内:所述发送端的输入连接TileLink总线A通道,所述发送端的输出连接TileLink总线D通道。
所述A通道连接所述单拍化模块的输入和输出,连接所述限制位宽模块的输入和输出,并连接至组帧发送模块的输入;所述组帧发送模块的输出连接所述SerDes模块的并行输入数据端口,所述SerDes模块的并行数据输出端口连接所述解帧接收模块的输入,所述解帧接收模块的输出连接所述数据FIFO模块的输入。
所述D通道连接所述单拍化模块的输入和输出,连接所述限制位宽模块的输入和输出,并连接至所述数据FIFO模块的输出;所述数据FIFO模块的数据数目输出端口连接控制模块的输入;所述控制模块的SerDes状态控制输入端口连接到所述发送端的输入,并且所述控制模块输出连接所述SerDes模块工作状态控制端口。
并且,如图1所示,所述芯片2内,所述接收端的输出连接TileLink总线A通道,所述接收端的输入连接TileLink总线D通道。
所述接收端内,所述SerDes模块的并行数据输出端口连接所述解帧接收模块的输入,所述SerDes模块的工作状态控制端口连接所述控制模块的输出,所述SerDes模块的并行数据输入端口连接所述组帧发送模块的输出;所述解帧接收模块的输出连接所述数据FIFO模块的输入;所述数据FIFO模块的数据数目输出端口连接所述控制模块的输入;所述控制模块的SerDes状态控制输入端口连接到所述接收端的输入。
所述单拍化模块,用于将TileLink的突发请求切分成单拍的消息,同时将source信号扩展一定位宽来表示切分出的新消息;在响应消息回传过程中又会把扩展的位宽舍弃。所谓突发请求是指在进行一次地址传输后,进行多次数据传输。第一次传输的地址作为起始地址,后续数据对应的地址在起始地址上递增。经单拍化模块后,在消息传输时地址和数据一一对应。例如,A通道发起写32字节数据的操作请求,此时的总线位宽是64位(8字节),那么需要连续4次握手完成传输,响应消息只需1个;相对的,经过单拍化模块后,就是将写32字节数据的操作切分成4个独立的写8字节数据的操作,有4个响应消息,A通道输入输出波形如图4所示。
所述限制位宽模块,用于固定TileLink总线的source信号的位宽,功能模型如图5所示,其中n≥8,限制位宽模块输出source信号的位宽固定为8位。
所述发送端组帧发送模块,用于将A通道消息组帧并通过发送状态机一帧一帧输出给SerDes模块,状态转换图如图6所示,Start状态表明状态机已经准备好;Get状态获取A通道消息,并组帧,帧格式如图7所示;Put状态将第一帧数据给SerDes模块发送;SendCtrl状态第一帧数据发送完成,将第二帧数据给SerDes模块发送;SendData状态等待数据发送完成后返回Start状态。
所述发送端解帧接收模块,用于接收通过SerDes模块回传的D通道响应消息,并将数据存入数据FIFO模块,状态转换图如图8所示,GetCtrl状态获取SerDes输出的第一帧数据;GetData状态获取第二帧数据。
所述接收端组帧发送模块,用于将回传的D通道响应消息组帧并通过发送状态机一帧一帧输出给SerDes模块,状态转换与发送端组帧发送模块一样,帧格式如图9所示。
所述接收端解帧接收模块,用于接收通过SerDes模块的A通道消息,并将数据存入数据FIFO模块,状态转换与发送端解帧接收模块一样。
所述控制模块,用于控制SerDes模块的工作状态,并且可以根据数据FIFO模块中的数据数目对SerDes模块进行流量控制。存在高低两个阈值,当数据FIFO模块中数据量达到高阈值时,停止SerDes模块功能,但可能仍存在传输中的数据,数据FIFO模块继续接收;当数据FIFO模块中数据量减少到低阈值时,重新开启SerDes模块数据收发功能。控制模块还负责复位SerDes模块,SerDes模块环回测试。
所述数据FIFO模块,用于暂存数据,数据先入先出,并将内部数据数目输出给控制模块。
所述SerDes模块,用于将并行数据串行发送,并接收对端的串行数据后并行输出,支持流量控制,数据CRC校验。
根据本实施例所述的互联结构,所述接收端内,所述SerDes模块、所述数据FIFO模块及所述控制模块与所述发送端的所述SerDes模块、所述数据FIFO模块及所述控制模块作用相同。根据本实施例的互联方法,所述互联方法的数据流传输过程中,当芯片1内的TileLink总线A通道发起访存请求时,所述方法包括如下步骤:
步骤一:所述芯片1内的单拍化模块将请求消息切分成单拍的消息,同时将TileLink总线的source信号扩展一定位宽来表示切分出的新消息;
步骤二:所述限制位宽模块固定TileLink总线的source信号的位宽为8位,这是由于在后续组帧模块处理时需要消息中的所有信号位宽都是确定的,并将固定位宽后截取的信号存储在与输出source信号关联的寄存器组中;
步骤三:所述组帧发送模块将新消息进行组帧,将TileLink总线A通道的请求消息转换成数据进行传输;并通过发送状态机先将第一帧数据发送给SerDes模块;
步骤四:所述SerDes模块将第一帧并行数据串行发送给芯片2;
步骤五:待第一帧数据发送完成,所述组帧发送模块的发送状态机再将第二帧数据发送给SerDes模块;
步骤六:所述SerDes模块将第二帧并行数据串行发送给芯片2;
步骤七:所述芯片2的SerDes模块接收到串行数据后,一帧一帧并行输出至解帧接收模块;
步骤八:所述解帧接收模块通过接收状态机先接收第一帧数据;
步骤九:所述解帧接收模块通过接收状态机再接收第二帧数据,并将两帧数据组合输出给数据FIFO模块;
步骤十:所述数据FIFO模块将数据恢复成TileLink总线A通道的访存请求消息输出给芯片2内的TileLink总线。
根据本实施例的互联方法,所述互联方法的数据流传输过程中,当响应消息通过芯片2的TileLink总线D通道回传时,所述方法还包括如下步骤:
步骤一:所述芯片2内的组帧发送模块将消息组帧,将回传的TileLink总线D通道响应消息转换成数据进行传输;并通过状态机先将第一帧数据传输至SerDes模块;
步骤二:所述芯片2内的SerDes模块将并行数据串行传输至芯片1;
步骤三:待第一帧数据发送完成,所述组帧发送模块的发送状态机再将第二帧数据发送给SerDes模块发送;
步骤四:所述SerDes模块将第二帧并行数据串行发送给芯片1;
步骤五:所述芯片1内的SerDes模块接收到串行数据后,恢复成并行数据一帧一帧输出给解帧接收模块;
步骤六:所述解帧接收模块通过接收状态机先接收第一帧数据;
步骤七:所述解帧接收模块通过接收状态机再接收第二帧数据,并将两帧数据组合输出给数据FIFO模块;
步骤八:所述数据FIFO模块将数据恢复成TileLink总线D通道的响应消息输出给限制位宽模块;
步骤九:所述限制位宽模块根据响应消息的8位source信号从存储器中取出原来的source信号,然后将响应消息输出给单拍化模块;
步骤十:所述单拍化模块将source信号扩展位舍弃,此时,当多个单拍的响应消息的source信号相同,则合并成一个source信号的响应消息并将TileLink响应消息输出给请求发起者;完成一次芯片1与芯片2之间的TileLink总线消息的请求与响应。
本发明的技术方案针对基于TileLink总线的两个芯片间的数据交互,提出了一种基于TileLink总线的芯片间互联架构及互联方法,实现TileLink总线的消息跨芯片转发;并且本发明的片间互联架构对于两个芯片的TileLink总线完全透明。不同于带时钟的并行数据传输,本申请中将芯片内的并行TileLink总线数据采用SerDes进行串行传输到另一芯片,能够减少芯片引脚的使用;并且时钟内嵌在数据中,不需要传输随路时钟,避免了数据和时钟的传播延时不同。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.基于TileLink总线的芯片互联架构,其特征在于,所述芯片互联架构包括发送端和接收端,所述发送端被设置于采用TileLink总线的芯片1,所述接收端被设置于采用TileLink总线的芯片2,以实现芯片1和芯片2的片间互联及数据传输;
所述发送端包括单拍化模块,限制位宽模块,组帧发送模块,解帧接收模块,控制模块,数据FIFO模块和SerDes模块;所述接收端包括组帧发送模块,解帧接收模块,控制模块,数据FIFO模块和SerDes模块;并且,发送端的控制模块,数据FIFO模块和SerDes模块与接收端的控制模块,数据FIFO模块和SerDes模块相同;
所述芯片1内,所述发送端通过TileLink总线通道与TileLink总线连接;所述发送端内,所述单拍化模块与所述限制位宽模块相互连接;所述限制位宽模块连接至所述组帧发送模块连接,所述组帧发送模块连接至所述SerDes模块;所述SerDes模块与所述解帧接收模块、所述数据FIFO模块依次连接,所述数据FIFO模块连接至所述限制位宽模块,所述数据FIFO模块还连接至所述控制模块;所述控制模块连接至所述发送端的输入端,并与SerDes模块相连接;
所述芯片2内,所述接收端通过TileLink总线通道与TileLink总线连接,所述接收端内,所述组帧发送模块、所述SerDes模块、所述解帧接收模块、所述数据FIFO模块及所述控制模块的连接方式与所述发送端相同。
2.根据权利要求1所述的芯片互联架构,其特征在于,所述芯片1内,所述发送端的输入连接TileLink总线A通道,所述发送端的输出连接TileLink总线D通道;
所述A通道连接所述单拍化模块的输入和输出,连接所述限制位宽模块的输入和输出,并连接至组帧发送模块的输入;所述组帧发送模块的输出连接所述SerDes模块的并行输入数据端口,所述SerDes模块的并行数据输出端口连接所述解帧接收模块的输入,所述解帧接收模块的输出连接所述数据FIFO模块的输入;
所述D通道连接所述单拍化模块的输入和输出,连接所述限制位宽模块的输入和输出,并连接至所述数据FIFO模块的输出;所述数据FIFO模块的数据数目输出端口还连接控制模块的输入;所述控制模块的SerDes状态控制输入端口连接到所述发送端的输入,并且所述控制模块输出连接所述SerDes模块工作状态控制端口。
3.根据权利要求1所述的芯片互联架构,其特征在于,所述芯片2内,所述接收端的输出连接TileLink总线A通道,所述接收端的输入连接TileLink总线D通道;
所述接收端内,所述SerDes模块的并行数据输出端口连接所述解帧接收模块的输入,所述SerDes模块的工作状态控制端口连接所述控制模块的输出,所述SerDes模块的并行数据输入端口连接所述组帧发送模块的输出;所述解帧接收模块的输出连接所述数据FIFO模块的输入;所述数据FIFO模块的数据数目输出端口连接所述控制模块的输入;所述控制模块的SerDes状态控制输入端口连接到所述接收端的输入。
4.根据权利要求1所述的芯片互联架构,其特征在于,针对不同的传输距离,所述芯片1与所述芯片2之间的连接可采用金属连接、PCB连接和信号线连接。
5.根据权利要求1或2的任一项所述的芯片互联架构,其特征在于,所述发送端内,所述单拍化模块用于将TileLink总线的请求切分成单拍的消息,同时source信号扩展一定位宽来表示切分出的新消息;所述限制位宽模块用于限制TileLink总线的source信号的位宽;所述组帧发送模块用于将TileLink总线A通道的消息组帧并通过发送状态机一帧一帧输出给SerDes模块;所述解帧接收模块用于接收通过SerDes模块回传的D通道响应消息,并将数据存入数据FIFO模块。
6.根据权利要求1或2的任一项所述的芯片互联架构,其特征在于,所述接收端内,所述组帧发送模块用于将回传的D通道响应消息组帧并通过发送状态机一帧一帧输出给SerDes模块;所述解帧接收模块用于接收通过SerDes模块的A通道消息,并将数据存入数据FIFO模块。
7.根据权利要求5所述的芯片互联架构,其特征在于,所述发送端内,所述控制模块用于控制所述SerDes模块的工作状态,并且根据所述数据FIFO模块中的数据数目对所述SerDes模块进行流量控制;所述数据FIFO模块用于暂存数据,数据先入先出,并将内部数据数目输出给所述控制模块;所述SerDes模块,用于将并行数据串行发送,并接收对端的串行数据后并行输出,支持流量控制,数据CRC校验。
8.根据权利要求6所述的芯片互联架构,其特征在于,所述接收端内,所述SerDes模块、所述数据FIFO模块及所述控制模块与所述发送端的SerDes模块、数据FIFO模块及控制模块的作用相同。
9.基于TileLink总线的芯片互联方法,其特征在于,使用了权利要求1-8任一项所述的基于TileLink总线的芯片互联架构,所述互联方法的数据流传输过程中,并且,当芯片1内的TileLink总线A通道发起请求时,所述方法包括如下步骤:
步骤一:所述芯片1内的单拍化模块将请求消息切分成单拍的消息,同时将TileLink总线的source信号扩展一定位宽来表示切分出的新消息;
步骤二:所述限制位宽模块固定TileLink总线的source信号的位宽,并将限制位宽后截取的信号存储在与输出source信号关联的存储器中;
步骤三:所述组帧发送模块将新消息进行组帧,将TileLink总线A通道的请求消息转换成数据进行传输;并通过发送状态机将数据一帧一帧发送给SerDes模块;
步骤四:所述SerDes模块将并行数据串行传输至芯片2;
步骤五:所述芯片2的SerDes模块接收到串行数据后,一帧一帧将并行数据输出至解帧接收模块;
步骤六:所述解帧接收模块通过接收状态机接收数据,并将数据输出至数据FIFO模块;
步骤七:所述数据FIFO模块将数据恢复成TileLink总线A通道的请求消息并输出给芯片2内的TileLink总线。
10.根据权利要求9所述的芯片互联方法,其特征在于,所述芯片互联方法的数据流传输过程中,当响应消息通过芯片2的TileLink总线D通道回传时,所述方法还包括如下步骤:
步骤一:所述芯片2内的组帧发送模块将消息进行组帧,将回传的TileLink总线D通道响应消息转换成数据进行传输;并通过状态机将数据一帧一帧发送给SerDes模块;
步骤二:所述芯片2内的SerDes模块将并行数据串行传输至芯片1;
步骤三:所述芯片1内的SerDes模块接收到串行数据后,一帧一帧将并行数据输出至解帧接收模块;
步骤四:所述解帧接收模块通过接收状态机接收数据,并将数据输出至数据FIFO模块;
步骤五:所述数据FIFO模块将数据恢复成TileLink总线D通道的响应消息输出给限制位宽模块;
步骤六:所述限制位宽模块根据响应消息中的source信号恢复缩减的位宽,然后输出给单拍化模块;
步骤七:所述单拍化模块将source信号扩展位舍弃,此时,当多个单拍响应消息的source信号相同,则合并成一个source信号的响应消息,并将响应消息输出给芯片1内的TileLink总线的请求发起者;完成一次芯片1与芯片2之间的TileLink总线消息的请求与响应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110952954.2A CN113704151B (zh) | 2021-08-19 | 2021-08-19 | 基于TileLink总线的芯片互联架构及互联方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110952954.2A CN113704151B (zh) | 2021-08-19 | 2021-08-19 | 基于TileLink总线的芯片互联架构及互联方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113704151A CN113704151A (zh) | 2021-11-26 |
CN113704151B true CN113704151B (zh) | 2024-03-01 |
Family
ID=78653484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110952954.2A Active CN113704151B (zh) | 2021-08-19 | 2021-08-19 | 基于TileLink总线的芯片互联架构及互联方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704151B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443530B (zh) * | 2022-01-05 | 2024-04-30 | 江南大学 | 基于TileLink的芯片互联电路及数据传输方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943733A (zh) * | 2017-12-05 | 2018-04-20 | 安徽皖通邮电股份有限公司 | 一种单板间并行总线的互联方法 |
CN111209247A (zh) * | 2019-12-30 | 2020-05-29 | 西安智多晶微电子有限公司 | 一种集成电路计算设备及计算处理系统 |
-
2021
- 2021-08-19 CN CN202110952954.2A patent/CN113704151B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943733A (zh) * | 2017-12-05 | 2018-04-20 | 安徽皖通邮电股份有限公司 | 一种单板间并行总线的互联方法 |
CN111209247A (zh) * | 2019-12-30 | 2020-05-29 | 西安智多晶微电子有限公司 | 一种集成电路计算设备及计算处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113704151A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7363396B2 (en) | Supercharge message exchanger | |
US7970953B2 (en) | Serial ATA port addressing | |
EP1730643A2 (en) | Pvdm (packet voice data module) generic bus protocol | |
US8339869B2 (en) | Semiconductor device and data processor | |
CN115248796B (zh) | 用于芯粒到芯粒互连的总线流水线结构和芯片 | |
US20110106991A1 (en) | Bus system and bus control method | |
CN112988647B (zh) | 一种TileLink总线到AXI4总线转换系统及方法 | |
WO2023160192A1 (zh) | 一种用于总线的互联装置 | |
US20200226081A1 (en) | Light-weight memory expansion in a coherent memory system | |
US20210232520A1 (en) | Logical physical layer interface specification support for pcie 6.0, cxl 3.0, and upi 3.0 protocols | |
CN113704151B (zh) | 基于TileLink总线的芯片互联架构及互联方法 | |
TW201303870A (zh) | 利用快閃記憶體介面的方法及裝置 | |
CN114443170B (zh) | Fpga动态并行加卸载系统 | |
CN112882986B (zh) | 一种带有超节点以及超节点控制器的众核处理器的应用方法 | |
CN112511537B (zh) | 一种sce-mi协议桥及仿真系统 | |
KR100476895B1 (ko) | 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법 | |
GB2377138A (en) | Ring Bus Structure For System On Chip Integrated Circuits | |
CN114443530B (zh) | 基于TileLink的芯片互联电路及数据传输方法 | |
KR20220103931A (ko) | 메모리와 분산된 계산 어레이 간의 데이터 전송 | |
US6901475B2 (en) | Link bus for a hub based computer architecture | |
CN115982071A (zh) | 一种面向ddr3控制器的片上网络转换接口 | |
JP2002149591A (ja) | プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置 | |
US11645005B2 (en) | Near-memory computing systems and methods | |
US7302508B2 (en) | Apparatus and method for high speed data transfer | |
US11669474B1 (en) | Bus pipeline structure for die-to-die interconnect and chip |
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 |