CN116450569A - 一种片间互联系统、一种数据传输方法 - Google Patents
一种片间互联系统、一种数据传输方法 Download PDFInfo
- Publication number
- CN116450569A CN116450569A CN202310703631.9A CN202310703631A CN116450569A CN 116450569 A CN116450569 A CN 116450569A CN 202310703631 A CN202310703631 A CN 202310703631A CN 116450569 A CN116450569 A CN 116450569A
- Authority
- CN
- China
- Prior art keywords
- chip
- data
- module
- indication signal
- signal
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 title claims abstract description 20
- 239000000872 buffer Substances 0.000 claims description 174
- 230000001360 synchronised effect Effects 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 18
- 238000003491 array Methods 0.000 claims description 5
- 230000007812 deficiency Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 abstract description 49
- 238000004891 communication Methods 0.000 abstract description 29
- 238000010586 diagram Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- 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 Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了计算机技术领域内的一种片间互联系统、一种数据传输方法。本发明使任意两个芯片通过串行总线通信,并且,发送端芯片的片内并行总线响应指示信号是否有效受控于接收端芯片的缓存模块的空间指示信号是否有效,并且发送端芯片通过同步模块将缓存模块写使能信号和数据信息在通信链路上进行同步传输,缓存模块得以精准接收有效数据。由此该方案解决了不同芯片以片外高速串行总线传输片内并行数据时,因握手信号错位而导致的传输错误问题。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种片间互联系统、一种数据传输方法。
背景技术
目前,多片间的数据传输主要有并行和串行两种方式,前者以牺牲I/O资源为代价来换取传输速率的提高,而后者可以节省I/O资源。当采用高速串行技术进行片间传输时,由于信号从发送芯片需要将并行信号转换为串行信号,经过片间串行总线传输,串行信号在被接收芯片接收后再恢复为并行信号,因此整个传输过程会引入传输延时,而该传输延时会造成并行总线发送方和接收方因握手信号不同步而产生传输错误。
例如:发送芯片FPGA1的VALID有效信号已经传输到FPGA2,作为接收芯片的FPGA2在T时刻有效READY信号,但由于时延的存在,发送芯片FPGA1并未及时检测到该信号,导致其并未在T时刻发出有效数据信息,而FPGA2在T时刻在VALID信号和READY信号都已经有效的情况下,已经开始接收数据信息,导致FPGA2接收的是错误信息。另一种错位情况为:当FPGA2在T时刻发出停止接收信息的信号,由于时延的存在,FPGA1并未在T时刻检测到此信号,导致FPGA1仍在发出有效数据信息,而FPGA2已停止接收,导致有效数据信息丢失。
因此,如何解决不同芯片间因串行总线传输延时而导致的发送方与接收方并行总线握手信号不同步问题,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种片间互联系统、一种数据传输方法,以解决不同芯片以片外串行总线传输片内并行数据存在的握手不同步问题。其具体方案如下:
第一方面,本发明提供了一种片间互联系统,包括:至少两个芯片,任意两个芯片通过串行总线通信;
在通过目标串行总线通信的两个芯片中,作为发送端的第一芯片内置同步模块,作为接收端的第二芯片内置缓存模块,所述目标串行总线的两端连接所述同步模块和所述缓存模块;所述同步模块还连接所述第一芯片内的并转串模块,所述缓存模块还连接所述第二芯片内的串转并模块;
所述缓存模块用于:在自身剩余存储空间大于预设阈值时输出空间充足指示信号;
所述第一芯片用于:根据所述空间充足指示信号和自身产生的数据有效指示信号,发送经所述并转串模块串化后的数据至所述目标串行总线;
所述同步模块用于:根据所述空间充足指示信号和自身产生的数据有效指示信号,发送写使能信号至所述目标串行总线,以通过所述目标串行总线传输所述写使能信号至所述缓存模块,使所述缓存模块写使能;
所述缓存模块还用于:缓存经所述串转并模块对串化后的数据并化处理后的数据,并使所述第二芯片从所述缓存模块读取并化处理后的数据。
可选地,所述缓存模块具体用于:
通过对比自身中已存储的数据量与所述预设阈值的大小来确定输出所述空间充足指示信号还是空间不足指示信号。
可选地,所述缓存模块具体用于:
若自身中已存储的数据量未超过所述预设阈值,则输出所述空间充足指示信号。
可选地,所述缓存模块还用于:
若自身中已存储的数据量超过所述预设阈值,则输出空间不足指示信号。
可选地,所述第一芯片用于:
在检测到空间不足指示信号和/或数据无效指示信号时,停止发送数据。
可选地,所述同步模块包括逻辑器件;
所述逻辑器件的第一输入端连接所述第一芯片的数据信号引脚;所述数据信号引脚用于输出所述数据有效指示信号或数据无效指示信号;
所述逻辑器件的第二输入端通过所述目标串行总线连接所述缓存模块的剩余空间指示引脚;所述剩余空间指示引脚用于输出所述空间充足指示信号或空间不足指示信号;
所述逻辑器件的输出端连接所述缓存模块的写使能引脚。
可选地,所述同步模块具体用于:
利用所述逻辑器件对所述空间充足指示信号和所述数据有效指示信号进行逻辑运算,根据逻辑运算结果使所述缓存模块写使能。
可选地,所述逻辑器件为与逻辑器件;
相应地,所述同步模块具体用于:
利用所述与逻辑器件对所述空间充足指示信号和所述数据有效指示信号进行与运算,根据与运算结果使所述缓存模块写使能。
可选地,所述同步模块还用于:
在检测到空间不足指示信号和/或数据无效指示信号时,去使能所述缓存模块。
可选地,所述缓存模块还用于:
在自身中已存储的数据量不为空的情况下输出有效的读指示信号至所述第二芯片,以使所述第二芯片的数据是否有效指示信号有效。
可选地,所述第二芯片还用于:
在所述数据是否有效指示信号有效且自身产生有效的接收准备信号时,从所述缓存模块读取并化处理后的数据。
可选地,所述缓存模块还用于:
在自身中已存储的数据量为空的情况下输出无效的读指示信号至所述第二芯片,以使所述第二芯片的数据是否有效指示信号无效。
可选地,所述第二芯片还用于:
在所述数据是否有效指示信号无效和/或自身产生无效的接收准备信号时,不从所述缓存模块读取并化处理后的数据。
可选地,所述缓存模块的读指示信号的引脚连接逻辑器件的一个输入端和所述数据是否有效指示信号的引脚;
所述逻辑器件的另一个输入端连接所述接收准备信号的引脚;
所述逻辑器件的输出端连接所述缓存模块的读使能信号的引脚。
可选地,所述第二芯片具体用于:
利用所述逻辑器件对所述数据是否有效指示信号和所述接收准备信号进行逻辑运算,根据逻辑运算结果确定所述数据是否有效指示信号和所述接收准备信号是否均有效。
可选地,所述逻辑器件为与逻辑器件;
相应地,所述第二芯片具体用于:
利用所述与逻辑器件对所述数据是否有效指示信号和所述接收准备信号进行与运算,根据与运算结果确定所述数据是否有效指示信号和所述接收准备信号是否均有效。
可选地,所述缓存模块具体用于:
按照接收顺序存储并化处理后的数据,并使所述第二芯片按照所述接收顺序从所述缓存模块读取并化处理后的数据;
或
利用先入先出队列存储并化处理后的数据,并使所述第二芯片利用所述先入先出队列读取并化处理后的数据。
可选地,所述第一芯片和所述第二芯片均为现场可编程门阵列。
可选地,所述目标串行总线为AXI总线。
第二方面,本发明提供了一种数据传输方法,应用于前文所述的片间互联系统,所述片间互联系统包括:至少两个芯片,任意两个芯片通过串行总线通信;在通过目标串行总线通信的两个芯片中,作为发送端的第一芯片内置同步模块,作为接收端的第二芯片内置缓存模块,所述目标串行总线的两端连接所述同步模块和所述缓存模块;所述同步模块还连接所述第一芯片内的并转串模块,所述缓存模块还连接所述第二芯片内的串转并模块;
该方法包括:
所述缓存模块在自身剩余存储空间大于预设阈值时输出空间充足指示信号;
所述第一芯片根据所述空间充足指示信号和自身产生的数据有效指示信号,发送经所述并转串模块串化后的数据至所述目标串行总线;
所述同步模块根据所述空间充足指示信号和自身产生的数据有效指示信号,发送写使能信号至所述目标串行总线,以通过所述目标串行总线传输所述写使能信号至所述缓存模块,使所述缓存模块写使能;
所述缓存模块还缓存经所述串转并模块对串化后的数据并化处理后的数据,并使所述第二芯片从所述缓存模块读取并化处理后的数据。
可选地,所述第一芯片和所述第二芯片均为现场可编程门阵列(FieldProgrammable Gate Array,FPGA)。
可选地,所述第一芯片和所述第二芯片均内置有串并行互转技术的功能模块。
可选地,任意两个芯片之间设有基于AXI总线协议和SERDES的通信链路。其中,AXI(Advanced eXtensible Interface,高级可扩展接口总线规范)总线协议采用独立的数据、地址通道,支持非对齐的数据传输方式。SERDES(SERializer,串行器或DESerializer,解串器)是一种高速串行通信技术,在发送端将多路低速并行信号转换成高速串行信号,在接收端将高速串行信号重新转换成低速并行信号。这种串行通信技术能够大大减少器件相连所需的引脚数目,提升信号的传输速度。
可见,本发明的有益效果为:任意两个芯片通过串行总线通信;为了解决并行互转引入的传输紊乱问题,本发明在通信链路中设有:相互连接的同步模块和缓存模块;同步模块内置于当前通信链路上发送数据的第一芯片中,缓存模块内置于当前通信链路上接收数据的第二芯片中。具体的,缓存模块在自身剩余空间充足的情况下输出空间充足指示信号至第一芯片,以使第一芯片的片内并行总线响应指示信号有效,此动作相当于:缓存模块告诉第一芯片,其已做好存数据的准备;因此第一芯片根据空间充足指示信号和自身产生的数据有效指示信号,发送经并转串模块串化后的数据至所述目标串行总线;此时同步模块根据空间充足指示信号和自身产生的数据有效指示信号,发送写使能信号至所述目标串行总线,以通过所述目标串行总线传输所述写使能信号至所述缓存模块,使所述缓存模块写使能;其中,同步模块将使能缓存模块写信号,缓存模块写信号和并行总线上传输的数据信息同步传输到缓存模块,缓存模块开始缓存数据。缓存模块还缓存经所述串转并模块对串化后的数据并化处理后的数据,并使第二芯片从所述缓存模块读取并化处理后的数据。也即:缓存模块的写使能信号与被传输的数据同步在目标串行总线上传输。可见,第一芯片片内并行总线响应指示信号是否有效受控于缓存模块的空间指示信号是否有效,由于第一芯片通过同步模块将缓存模块写使能信号和数据信息在通信链路上进行同步传输,缓存模块得以精准接收有效数据。由此该方案解决了不同芯片以片外高速串行总线传输片内并行数据时,因握手信号错位而导致的传输错误问题。
相应地,本发明提供的一种数据传输方法,也同样具有上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明公开的一种片间互联系统内单一通信链路的示意图;
图2为本发明公开的一种缓存模块结构示意及与同步模块的连接示意图;
图3为本发明公开的一种AXI总线协议的握手时序示意图;
图4为本发明公开的另一种AXI总线协议的握手时序示意图;
图5为本发明公开的一种片间互联系统示意图;
图6为图5中匹配模块A的内部结构示意图;
图7为图5中匹配模块B的内部结构示意图;
图8为本发明公开的另一种片间互联系统示意图;
图9为本发明公开的一种数据传输方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,当采用高速串行总线进行片外传输时,由于信号从发送芯片由并行信号转换为串行信号传输,而串行信号在被接收芯片接收后又会转换为并行信号,因此以高速串行总线进行片外传输时会引入传输延时,而该传输延时会造成并行信号握手错位。为此,本发明提供了一种片间互联系统以及相应的数据传输方法,能够解决不同芯片以片外串行总线传输片内并行总线数据引入的并行总线握手信号不同步问题。
本发明实施例公开了一种片间互联系统,包括:至少两个芯片,任意两个芯片之间设有基于片内并行总线协议和片外串行总线传输的通信链路。
参见图1所示,通信链路包括:通过串行总线相互连接的同步模块和缓存模块;同步模块内置于当前通信链路上发送数据的发送芯片,缓存模块内置于当前通信链路上接收数据的接收芯片。图1中的箭头方向表示数据发送方向。片外高速串行总线基于AXI协议和SERDES实现,AXI协议可替换为Avalon等。
其中,片外高速串行总线两端连接片内同步模块和片内缓存模块;同步模块位于发送芯片片内并行总线和串行化模块之间,缓存模块位于接收芯片片内并行总线和解串化模块之间。
缓存模块用于:存储经高速串行总线传输并经解串化模块解串恢复的并行数据,在自身可存数据的情况下向发送芯片发出空间充足指示信号,在自身存储空间不足的情况下向发送芯片发出空间不足指示信号,在自身存有数据可供读取的情况下,向自身芯片(接收芯片)输出数据有效指示信号,在自身没有存的数据的情况下,向自身芯片(接收芯片)输出数据无效指示信号。其中,缓存模块通过对比自身中已存储的数据量与预设阈值的大小来确定输出空间充足指示信号还是空间不足指示信号,经片外串行总线传输至发送芯片中的同步模块。
缓存模块用于:在自身芯片(接收芯片)并行总线读取数据时,将数据输出至并行总线上。向发送芯片发出空间不足指示信号后,在发送芯片收到响应无效指示信号使通信链路停止发送数据前,缓存模块缓存通信链路上还在传输的数据。其中,缓存模块输出的空间指示信号经片外串行总线传输至发送芯片片内并行总线,以改变发送芯片片内并行总线的响应指示信号,使得发送芯片片内并行总线可以根据空间指示信号确定自身的响应指示信号是否有效,来开始或停止传输数据。
同步模块用于:对缓存模块发出的空间指示信号和自身芯片(发送芯片)片内并行总线中的数据指示信号进行逻辑与运算,在接收到的缓存模块空间指示信号(即响应指示信号)和发送芯片片内并行总线数据指示信号均有效时,使能缓存模块写信号,在接收到的缓存模块空间指示信号(即响应指示信号)无效和/或发送芯片片内并行总线数据指示信号无效时,停止使能缓存模块写信号,使缓存模块写使能信号与目标并行数据同步进行传输。
其中,同步模块将与门逻辑运算结果经片外串行总线连接至接收芯片的缓存模块的写使能信号,以控制接收芯片缓存模块是否可以接收数据。
缓存模块还根据自身中已存储的数据量的情况,向自身芯片(接收芯片)片内并行总线输出数据有效指示信号或数据无效指示信号,该数据指示信号直连片内并行总线中的数据指示信号,以通知片内并行总线是否可以读取数据。数据指示信号与自身芯片(接收芯片)片内并行总线中的响应指示信号通过与门进行与逻辑运算,运算结果连接缓存模块读使能信号,以使片内并行总线只有在数据有效指示信号与响应有效指示信号均就绪期间,才读取数据。
在本实施例中,缓存模块的写使能信号同步于有效数据信息在目标串行总线上传输;缓存模块写使能信号和并行总线上的有效数据信息同步传输到第二芯片,通过串转并模块进行并化处理,缓存模块缓存并化处理后的数据,并使第二芯片从所述缓存模块读取并化处理后的数据。
在本实施例中,缓存模块用于在自身剩余存储空间大于预设阈值的情况下输出空间充足指示信号至发送芯片,以使发送芯片的片内并行总线响应指示信号有效。而发送芯片在片内并行总线数据指示信号有效且接收的响应指示信号(即空间充足指示信号)变为有效时,开始发送数据。相应地,同步模块在响应指示信号和数据指示信号均有效时,将缓存模块写使能信号同步于并行总线有效数据信息同时发送到串行总线上,使写使能信号和数据信息同步到达缓存模块,使缓存模块正确接收数据,之后缓存模块缓存数据,并使接收芯片从缓存模块读取数据。其中,缓存模块缓存数据之前,串化的数据被进行了并行化处理,因此缓存模块存储的是并行化数据。
通过同步模块,同步发送数据信号和写使能信号,防止在发送芯片数据有效指示信号提前到达接收芯片的情况下,造成接收芯片在向发送芯片发出响应有效指示信号后提前开始接收数据的情况。通过缓存模块缓存数据,防止发送芯片因未能及时响应接收芯片发出的响应无效指示信号而导致接收芯片丢失数据的情况。由此该方案解决了不同芯片以片外串行总线传输片内并行数据引起的并行总线握手信号不同步问题。
并行总线协议可以为AXI总线协议等类型。在AXI总线协议规定写数据、读数据、写地址、读地址、写响应的任一个通道上,当发送端的VALID信号有效(高电平)时,表示发送端具有可用数据或者控制信息;当发送端的READY信号有效(高电平)时,表示发送端对应的接收端可以接收数据或者控制信息。当发送端的VALID信号和READY信号同时有效时,总线才开始传输数据或者控制信息;否则,总线不传输数据或者控制信息,处于等待状态。相应地,以AXI总线协议为例,发送芯片片内并行总线响应指示信号为READY信号,发送芯片的片内并行总线数据指示信号为VALID信号,当发送芯片确认READY信号和VALID信号均有效的情况下,发送芯片开始发送数据。但在本实施例中,发送芯片的READY信号受控于缓存模块,而非数据接收芯片,此时本实施例提供的缓存模块可看作发送芯片的接收端,同时其也作为通信链路上的数据中转站,使得数据最终的接收端仍是接收芯片。
在一种实施方式中,缓存模块判断在自身是否可存数据的实现手段为:缓存模块具体用于:通过对比自身中已存储的数据量与预设阈值的大小来确定自身是否可存数据,以进一步确定是输出空间充足指示信号还是空间不足指示信号。具体的,缓存模块在判定自身中已存储的数据量未超过预设阈值时,认为自身可存数据,那么输出空间充足指示信号至发送芯片;在判定自身中已存储的数据量超过预设阈值时,认为自身不可存数据,那么输出空间不足指示信号至发送芯片。其中,缓存模块具体用于:若自身中已存储的数据量未超过预设阈值,则输出空间充足指示信号至发送芯片,以使发送芯片响应指示信号有效。其中,缓存模块还用于:若自身中已存储的数据量超过预设阈值,则输出空间不足指示信号至发送芯片,以使发送芯片响应指示信号无效。预设阈值不大于缓存模块的总存储空间大小。
在一种实施方式中,发送芯片用于:在收到的响应指示信号无效和/或自身片内并行总线数据指示信号变为无效时,停止发送数据。相应地,同步模块还用于:在收到的响应指示信号无效和/或自身片内并行总线数据指示信号变为无效时,同时停止缓存模块的写使能,使缓存模块的写使能信号同步于有效数据信息的停止发送而停止使能。以AXI总线协议为例,发送芯片片内并行总线在READY信号和VALID信号中有至少一个无效时不发数据;并且同步模块停止缓存模块写使能,使缓存模块同步停止接收数据。
在一种实施方式中,同步模块包括逻辑与门;逻辑与门的第一输入端连接发送芯片片内并行总线中的数据指示信号;逻辑与门的第二输入端连接发送芯片片内并行总线中的响应指示信号;逻辑与门的第二输入端与发送芯片片内并行总线中的响应指示信号一起经片外串行总线连接缓存模块空间指示信号;逻辑与门的输出端经片外串行总线连接缓存模块的写使能信号。相应地,同步模块具体用于:利用逻辑与门对发送芯片片内并行总线数据指示信号和响应指示信号进行逻辑与运算,根据运算结果确定发送芯片片内并行总线数据指示信号和响应指示信号是否均有效,进而确定是否使能缓存模块写信号,使缓存模块写使能信号同步于数据的发送。
请参见图2,与逻辑器件的第一输入端连接发送芯片片内并行总线中的数据指示信号;与逻辑器件的第二输入端连接发送芯片片内并行总线中的响应指示信号;与逻辑器件的第二输入端与发送芯片片内并行总线中的响应指示信号一起经片外串行总线连接缓存模块空间指示信号;与逻辑器件的输出端经片外串行总线连接缓存模块的写使能信号;相应地,同步模块具体用于:利用与逻辑器件对发送芯片片内并行总线数据指示信号和响应指示信号进行与运算,根据与运算结果确定发送芯片片内并行总线数据指示信号和响应指示信号是否均有效,进而确定是否使能缓存模块写信号,使缓存模块写使能信号同步于数据的发送。
本实施例利用缓存模块暂存数据,那么数据最终的接收端(接收芯片)何时能获得发送芯片所发数据呢,缓存模块对此进行相应控制。缓存模块通过判断自身中是否有数据可读来控制接收芯片对自己的读操作。在一种实施方式中,缓存模块还用于:在自身中已存储的数据量不为空的情况下输出数据有效指示信号至接收芯片,以使接收芯片片内并行总线数据指示信号有效;相应地,接收芯片还用于:在缓存模块数据指示信号有效且片内并行总线响应指示信号变为有效时,从缓存模块读取数据。
在一种实施方式中,缓存模块还用于:在自身中已存储的数据量为空的情况下输出数据无效指示信号至接收芯片,以使接收芯片片内并行总线数据指示信号无效;相应地,接收芯片还用于:在缓存模块数据指示信号无效和/或自身片内并行总线响应指示信号变为无效时,不从缓存模块读取数据。
在一种实施方式中,所述缓存模块的数据指示信号与片内并行总线响应指示信号进行与逻辑运算,即利用与逻辑器件对接收芯片片内并行总线的数据指示信号和响应指示信号进行与逻辑运算,根据逻辑运算结果确定两个信号是否均有效,运算结果输出到缓存模块的读使能信号,确定是否读取缓存模块数据。
请参见图2,在一种实施方式中,所述缓存模块的数据指示信号与片内并行总线响应指示信号进行与逻辑运算,即利用与逻辑器件对接收芯片片内并行总线的数据指示信号和响应指示信号进行与逻辑运算,根据逻辑运算结果确定两个信号是否均有效,运算结果输出到缓存模块的读使能信号,确定是否读取缓存模块数据。图2中还示意了同步模块和缓存模块的连接关系,当缓存模块半满时,半满引脚通过取反器件将信号取反,从而输出空间充足指示信号,信号值为1;当缓存模块未半满时,半满引脚通过取反器件将信号取反,从而输出空间不足指示信号,信号值为0。有效的空间指示信号使发送芯片响应指示信号有效,那么有效的响应指示信号与发送芯片片内并行总线的数据有效指示信号相与后,同步模块的输出端输出写使能信号,以将传输数据写入缓存模块。当缓存模块为空(即缓存模块中没有存数据)时,空信号通过取反器件将信号取反,从而输出数据无效指示信号,信号值为0;当缓存模块不为空时,空信号通过取反器件将信号取反,从而输出数据有效指示信号,信号值为1。缓存模块的数据有效指示信号使接收芯片片内并行总线的数据指示信号有效,那么接收芯片片内并行总线有效的数据指示信号与有效的响应指示信号相与后,缓存模块右边的与逻辑器件的输出端输出读使能信号,以使接收芯片从缓存模块读取数据。
在一种实施方式中,缓存模块具体用于:按照接收顺序存储数据,并使接收芯片按照接收顺序从缓存模块读取数据;或利用先入先出队列存储数据,并使接收芯片从先入先出队列读取数据。可见,缓存模块是具备存储功能的器件。
在一种实施方式中,发送芯片和接收芯片均为现场可编程门阵列。
在一种实施方式中,发送芯片和所述接收芯片均内置有高速串行总线传输所需的8b/10b编解码、串化器、解串器、时钟数据恢复等典型功能模块。
可见,本实施例在任意两个芯片之间设有基于片内并行总线和片外串行总线传输的通信链路;在通信链路中设有:通过串行总线相互连接的同步模块和缓存模块;缓存模块在自身剩余存储空间大于预设阈值的情况下输出空间充足指示信号,以使发送芯片片内并行总线响应指示信号有效,相当于缓存模块告诉发送芯片已做好存数据的准备;而发送芯片在片内并行总线数据指示信号有效且接收到的响应指示信号为有效时,开始发送数据,跟随数据传输,同步模块同步使能缓存模块写信号,使缓存模块可以正确缓存数据,从而避免接收芯片因握手信号不同步而接收无效数据或者丢失有效数据的情况,解决了不同芯片以片外高速串行总线传输片内并行总线数据因握手信号错位而导致的传输错误问题。
下面以两个FPGA互联为例对本发明所提供发明构思进一步介绍。在本实施例中,FPGA1和FPGA2基于AXI总线协议和SERDES通信,那么先介绍AXI总线协议。
AXI总线协议采用突发方式进行数据传输,其规定了5个独立的通道:读地址通道(Read Address Channel,AR),写地址通道(Write Address Channel,AW),读数据通道(Read Data Channel,R),写数据通道(Write Data Channel,W),写响应通道(WriteResponse Channel,B)。在AR通道、AW通道、W通道中,主设备是数据的源端,主动发出VALID信号。在R通道和B通道中,从设备是VALID信号的主动发起者。这5个通道采用相同的握手时序,如图3所示,一个通道中的信号包括:时钟(ACLK)、数据、数据指示信号(VALID)、响应指示信号(READY)。当VALID信号有效(高电平)时,表示发送端具有可用数据或者控制信息。当READY信号有效(高电平)时,表示接收端可以接收数据或者控制信息。当VALID和READY同时有效时,总线开始传输数据或者控制信息。
在本实施例中,FPGA1和FPGA2内置SERDES模块,采用高速串行总线互联,由于通信链路进行串并转换会带来时延,会导致双方AXI总线的握手信号错位。假设通信链路引入了8个时钟周期的延时,那么下面以时延为8个时钟周期为例,进行延时介绍和错位时序的分析。
如图4所示,简化了FPGA1和FPGA2互联结构图。结合图4,在FPGA1和FPGA2之间不存在延时的情况下,二者之间的任一条通信链路上传输10个周期的数据时,相应示意图如图4中(a)所示,表示:10个周期的数据在10个周期完成传输,此为按照AXI总线协议的正常握手时序。在FPGA1和FPGA2之间存在8个时钟周期的延时的情况下,二者之间的任一条通道上的数据传输如图4中(b)所示,表示:以FPGA1开始发数据为计时起始时刻,10个周期的数据在10+8=18个周期传输至FPGA2。在FPGA1和FPGA2之间存在8个时钟周期的延时的情况下,二者之间的任一条通道上的数据传输如图4中(c)所示,表示:以FPGA2开始传递READY信号给FPGA1为计时起始时刻,READY信号的传递有8个时钟周期的延时,而FPGA1发10个周期的数据也存在8个时钟周期的延时,因此在这两个方向上,共需10+8×2=26个周期才能完成数据传输。
针对上述延时情况,可能出现:接收端FPGA2在接收到FPGA1的VALID信号后,T1时刻FPGA2发出有效READY信号,但由于时延的存在,发送端FPGA1并未及时检测到READY有效信号,导致其并未发出有效数据或控制信息,而接收端FPGA2在自身VALID和READY信号均已有效的情况下,已经开始接收数据或控制信息,导致接收端接收错误。另一种错位情况为,当FPGA2发出的READY信号从有效变为无效时,由于时延的存在,发送端FPGA1并未及时检测到READY信号无效,导致其仍在发出数据或控制信息,从而导致接收端丢失了有效的数据或控制信息。
对此,本实施例在FPGA1和FPGA2之间的每一条通道上按照数据发送方向设置同步模块和缓存模块,由于AXI总线协议有5个通道,那么在每一通道上相应设置。其中,同步模块具体为与逻辑门,设置在数据发送方中;缓存模块具体为FIFO等器件,设置在数据接收方中。一个通道即一条通信链路。
FPGA1和FPGA2之间通过SERDES互联,可以节约I/O引脚资源。同时,为避免AXI总线协议的握手机制错位,在每一条通信链路上按照数据发送方向设置一个同步模块和一个缓存模块。如图5所示,现场可编程门阵列1(FPGA1)和现场可编程门阵列2(FPGA2)既是数据发送方,又是数据接收方,因此FPGA1、FPGA2中既有同步模块又有缓存器。图5示意了AXI总线协议的5个通道,从图5自上至下看,各通道分别为:写地址/参数通道(Write AddressChannel,AW)、写数据通道(Write Data Channel,W)、写响应通道(Write ResponseChannel,B)、读地址/参数通道(Read Address Channel,AR)、读数据通道(Read DataChannel,R);图6和图7中的各通道也据此分布。
在图5中,FPGA1中的三个同步模块和两个缓存模块构成匹配模块A,图6为匹配模块A的内部结构图。以AW通道为例,图6中左侧AW数据指示信号、AW响应指示信号分别与本地FPGA(FPGA1)中的AXI总线握手信号AWVALID、AWREADY连接;右侧AW写使能信号、AW空间指示信号经过SERDES传输分别与FPGA2中的匹配模块B的AW写使能信号、AW空间指示信号连接。由图6可知,AW空间指示信号直接作为AW响应指示信号,AW数据指示信号与AW响应指示信号相与得到AW写使能信号。
在图5中,FPGA2中的三个缓存模块和两个同步模块构成匹配模块B,图7为匹配模块B内部结构图。以AW通道为例,图7中左侧AW写使能信号、AW空间指示信号经过SERDES传输分别与FPGA1中的匹配模块A的AW写使能信号、AW空间指示信号连接;右侧AW数据指示信号、AW响应指示信号分别与本地FPGA(FPGA2)中的AXI总线握手信号AWREADY、AWVALID进行连接。将缓存模块的空标志信号取反后作为AW数据指示信号,即当缓存模块中有数据时,AW数据指示信号有效,无数据时,AW数据指示信号无效。将缓存模块的半满标志信号取反后作为AW空间指示信号,即当缓存模块中的数据量未到达半满数量时,AW空间指示信号有效,到达半满数量时,AW空间指示信号无效。AW数据指示信号与AW响应指示信号相与后,作为缓存器的读使能(RD_EN)信号,以使FPGA2从当前缓存模块读取一系列有效的数据和信息。
可见,本实施例在每一通道的数据接收侧设置一个缓存模块作为数据缓冲器,对数据进行暂存。同时,将并行总线握手信号转化为缓存模块的读写信号。AXI总线协议的5个独立通道的处理思路完全相同。
在本实施例中,发送端FPGA1只有在收到了接收端FPGA2发出的有效空间指示信号时,且发送端FPGA1的VALID信号同时有效时,发送端的写使能信号才会通过SERDES传输到FPGA2,从而保证写使能信号和有效数据信息同步开始和停止,使FPGA2不会因传输时延而提前接收错误的数据或者控制信息。同时,缓存模块衔接了FPGA1与FPGA2,为FPGA1与FPGA2提供了数据缓存,使得收发双方各自的传输拥有一定的缓冲空间,从而保证数据传输的完整性和正确性。假设数据传输过程中,FPGA2突然停止接收数据,发送端因传输时延未及时检测到空间指示信号的无效状态而继续传输数据或控制信息,于是当前传输路径上的缓存模块将数据或控制信息缓存下来,等FPGA2的响应指示信号下次变为有效时可读取这段时间的数据,从而克服因串行传输时延而造成的握手信号不同步导致的数据丢失问题。
需要说明的是,缓存模块缓存器的大小和半满信号的设置可以根据实际需要进行设置。为了避免缓存器的溢出,考虑一个数据传输动作中的握手信号的来回传递存在的两个方向的延时,推荐半满信号(ALMOST_FULL)的空间余量设置不小于两个延时时间对应的数据占用量。例如:SERDES延时为8个时钟周期,缓存器深度为64,则半满深度不大于64-2×8=48,以在缓存器空间余量小于16时,停止往缓存器中写数据。同时,为使得实现流水工作模式,缓存器半满设置不小于单个延时时间对应的数据占用量,结合上述示例,缓存器半满深度不小于8。
本实施例基于AXI总线协议和SERDES进行片间数据传递,适用于片上端口资源有限的场景,在发送端与接收端设计匹配模块,解决因串行传输固有时延而造成的握手信号不同步问题,同时实现了多片FPGA间的高速传输。该方案可支持任何厂家的FPGA,具有很强的工程通用性和可行性。
下面对本发明实施例提供的另一种片间互联系统进行介绍,下文描述的一种片间互联系统与本文描述的其他实施例可以相互参照。
本发明实施例提供的一种片间互联系统包括:至少两个芯片,任意两个芯片通过串行总线(即高速串行总线)通信。请参见图8,在通过目标串行总线通信的两个芯片中,作为发送端的第一芯片内置同步模块,作为接收端的第二芯片内置缓存模块,目标串行总线的两端连接同步模块和缓存模块;同步模块还连接第一芯片内的并转串模块,缓存模块还连接第二芯片内的串转并模块。
如图8所示,一条串行总线可在两个相互通信的芯片之间构建多个通信链路,而各通信链路上沿数据发送方向都设有同步模块和缓存模块等。
缓存模块用于:在自身剩余存储空间大于预设阈值时输出空间充足指示信号。
第一芯片用于:根据空间充足指示信号和自身产生的数据有效指示信号,发送经并转串模块串化后的数据至所述目标串行总线。
同步模块用于:根据空间充足指示信号和自身产生的数据有效指示信号,发送写使能信号至所述目标串行总线,以通过所述目标串行总线传输所述写使能信号至所述缓存模块,使所述缓存模块写使能。
缓存模块还用于:缓存经所述串转并模块对串化后的数据并化处理后的数据,并使第二芯片从缓存模块读取并化处理后的数据。
在一种实施方式中,缓存模块具体用于:通过对比自身中已存储的数据量与预设阈值的大小来确定输出空间充足指示信号还是空间不足指示信号。
在一种实施方式中,缓存模块具体用于:若自身中已存储的数据量未超过预设阈值,则输出空间充足指示信号。
在一种实施方式中,缓存模块还用于:若自身中已存储的数据量超过预设阈值,则输出空间不足指示信号。
在一种实施方式中,第一芯片用于:在检测到空间不足指示信号和/或数据无效指示信号时,停止发送数据。
在一种实施方式中,同步模块包括逻辑器件;逻辑器件的第一输入端连接第一芯片的数据信号引脚;数据信号引脚用于输出数据有效指示信号或数据无效指示信号;逻辑器件的第二输入端通过目标串行总线连接缓存模块的剩余空间指示引脚;剩余空间指示引脚用于输出空间充足指示信号或空间不足指示信号;逻辑器件的输出端连接缓存模块的写使能引脚。在一种实施方式中,同步模块具体用于:利用逻辑器件对空间充足指示信号和数据有效指示信号进行逻辑运算,根据逻辑运算结果使缓存模块写使能。
请参见图2,逻辑器件为与逻辑器件;相应地,同步模块具体用于:利用与逻辑器件对空间充足指示信号和数据有效指示信号进行与运算,根据与运算结果使缓存模块写使能。
在一种实施方式中,同步模块还用于:在检测到空间不足指示信号和/或数据无效指示信号时,去使能缓存模块。
在一种实施方式中,缓存模块还用于:在自身中已存储的数据量不为空的情况下输出有效的读指示信号至第二芯片,以使第二芯片的数据是否有效指示信号有效。
在一种实施方式中,第二芯片还用于:在数据是否有效指示信号有效且自身产生有效的接收准备信号时,从缓存模块读取并化处理后的数据。
在一种实施方式中,缓存模块还用于:在自身中已存储的数据量为空的情况下输出无效的读指示信号至第二芯片,以使第二芯片的数据是否有效指示信号无效。
在一种实施方式中,第二芯片还用于:在数据是否有效指示信号无效和/或自身产生无效的接收准备信号时,不从缓存模块读取并化处理后的数据。
在一种实施方式中,缓存模块的读指示信号的引脚连接逻辑器件的一个输入端和数据是否有效指示信号的引脚;逻辑器件的另一个输入端连接接收准备信号的引脚;逻辑器件的输出端连接缓存模块的读使能信号的引脚。
在一种实施方式中,第二芯片具体用于:利用逻辑器件对数据是否有效指示信号和接收准备信号进行逻辑运算,根据逻辑运算结果确定数据是否有效指示信号和接收准备信号是否均有效。
请参见图2,逻辑器件为与逻辑器件;相应地,第二芯片具体用于:利用与逻辑器件对数据是否有效指示信号和接收准备信号进行与运算,根据与运算结果确定数据是否有效指示信号和接收准备信号是否均有效。
在一种实施方式中,缓存模块具体用于:按照接收顺序存储并化处理后的数据,并使第二芯片按照接收顺序从缓存模块读取并化处理后的数据;或利用先入先出队列存储并化处理后的数据,并使第二芯片利用先入先出队列读取并化处理后的数据。
在一种实施方式中,第一芯片和第二芯片均为现场可编程门阵列。
在一种实施方式中,目标串行总线为AXI总线。
可见,本实施例为了解决并行互转引入的传输紊乱问题,在通信链路中设有:相互连接的同步模块和缓存模块;同步模块内置于当前通信链路上发送数据的第一芯片中,缓存模块内置于当前通信链路上接收数据的第二芯片中。具体的,缓存模块在自身剩余空间充足的情况下输出空间充足指示信号至第一芯片,以使第一芯片的片内并行总线响应指示信号有效,此动作相当于:缓存模块告诉第一芯片,其已做好存数据的准备;因此第一芯片根据空间充足指示信号和自身产生的数据有效指示信号,发送经并转串模块串化后的数据至所述目标串行总线;此时同步模块根据空间充足指示信号和自身产生的数据有效指示信号,使缓存模块写使能信号同步于有效数据信息在目标串行总线上传输;缓存模块写使能信号和并行总线上的有效数据信息同步传输到第二芯片,通过串转并模块进行并化处理,缓存模块缓存并化处理后的数据,并使第二芯片从所述缓存模块读取并化处理后的数据,并使第二芯片从所述缓存模块读取并化处理后的数据。可见,第一芯片片内并行总线响应指示信号是否有效受控于缓存模块的空间指示信号是否有效,由于第一芯片通过同步模块将缓存模块写使能信号和数据信息在通信链路上进行同步传输,缓存模块得以精准接收有效数据。由此该方案解决了不同芯片以片外高速串行总线传输片内并行数据时,因握手信号错位而导致的传输错误问题。
下面对本发明实施例提供的一种数据传输方法进行介绍,下文描述的一种数据传输方法与本文描述的其他实施例可以相互参照。
本发明实施例提供的一种数据传输方法应用于前述任一实施例所述的片间互联系统,片间互联系统包括:至少两个芯片,任意两个芯片通过串行总线通信;在通过目标串行总线通信的两个芯片中,作为发送端的第一芯片内置同步模块,作为接收端的第二芯片内置缓存模块,目标串行总线的两端连接同步模块和缓存模块;同步模块还连接第一芯片内的并转串模块,缓存模块还连接第二芯片内的串转并模块。
参见图9所示,本发明实施例提供的一种数据传输方法包括:
S901、缓存模块在自身剩余存储空间大于预设阈值时输出空间充足指示信号。
S902、第一芯片根据空间充足指示信号和自身产生的数据有效指示信号,发送经并转串模块串化后的数据至目标串行总线。
S903、同步模块根据空间充足指示信号和自身产生的数据有效指示信号,发送写使能信号至目标串行总线,以通过目标串行总线使缓存模块写使能。
S904、缓存模块还缓存经串转并模块对串化后的数据并化处理后的数据,缓存并化处理后的数据,并使第二芯片从缓存模块读取并化处理后的数据。
在一种实施方式中,缓存模块具体用于:
通过对比自身中已存储的数据量与预设阈值的大小来确定输出空间充足指示信号还是空间不足指示信号。
在一种实施方式中,缓存模块具体用于:
若自身中已存储的数据量未超过预设阈值,则输出空间充足指示信号。
在一种实施方式中,缓存模块还用于:
若自身中已存储的数据量超过预设阈值,则输出空间不足指示信号。
在一种实施方式中,第一芯片用于:
在检测到空间不足指示信号和/或数据无效指示信号时,停止发送数据。
在一种实施方式中,同步模块包括逻辑器件;
逻辑器件的第一输入端连接第一芯片的数据信号引脚;数据信号引脚用于输出数据有效指示信号或数据无效指示信号;
逻辑器件的第二输入端通过目标串行总线连接缓存模块的剩余空间指示引脚;剩余空间指示引脚用于输出空间充足指示信号或空间不足指示信号;
逻辑器件的输出端连接缓存模块的写使能引脚。
在一种实施方式中,同步模块具体用于:
利用逻辑器件对空间充足指示信号和数据有效指示信号进行逻辑运算,根据逻辑运算结果使缓存模块写使能。
在一种实施方式中,逻辑器件为与逻辑器件;
相应地,同步模块具体用于:
利用与逻辑器件对空间充足指示信号和数据有效指示信号进行与运算,根据与运算结果使缓存模块写使能。
在一种实施方式中,同步模块还用于:
在检测到空间不足指示信号和/或数据无效指示信号时,去使能缓存模块。
在一种实施方式中,缓存模块还用于:
在自身中已存储的数据量不为空的情况下输出有效的读指示信号至第二芯片,以使第二芯片的数据是否有效指示信号有效。
在一种实施方式中,第二芯片还用于:
在数据是否有效指示信号有效且自身产生有效的接收准备信号时,从缓存模块读取并化处理后的数据。
在一种实施方式中,缓存模块还用于:
在自身中已存储的数据量为空的情况下输出无效的读指示信号至第二芯片,以使第二芯片的数据是否有效指示信号无效。
在一种实施方式中,第二芯片还用于:
在数据是否有效指示信号无效和/或自身产生无效的接收准备信号时,不从缓存模块读取并化处理后的数据。
在一种实施方式中,缓存模块的读指示信号的引脚连接逻辑器件的一个输入端和数据是否有效指示信号的引脚;
逻辑器件的另一个输入端连接接收准备信号的引脚;
逻辑器件的输出端连接缓存模块的读使能信号的引脚。
在一种实施方式中,第二芯片具体用于:
利用逻辑器件对数据是否有效指示信号和接收准备信号进行逻辑运算,根据逻辑运算结果确定数据是否有效指示信号和接收准备信号是否均有效。
在一种实施方式中,逻辑器件为与逻辑器件;
相应地,第二芯片具体用于:
利用与逻辑器件对数据是否有效指示信号和接收准备信号进行与运算,根据与运算结果确定数据是否有效指示信号和接收准备信号是否均有效。
在一种实施方式中,缓存模块具体用于:
按照接收顺序存储并化处理后的数据,并使第二芯片按照接收顺序从缓存模块读取并化处理后的数据;
或
利用先入先出队列存储并化处理后的数据,并使第二芯片利用先入先出队列读取并化处理后的数据。
在一种实施方式中,第一芯片和第二芯片均为现场可编程门阵列。
在一种实施方式中,目标串行总线为AXI总线。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例在任意两个芯片通过串行总线通信;在通信链路中设有:相互连接的同步模块和缓存模块;缓存模块在自身剩余存储空间大于预设阈值的情况下输出所述空间充足指示信号,相当于缓存模块告诉第一芯片已做好存数据的准备;而第一芯片在检测到空间充足指示信号和自身产生的数据有效指示信号时,开始发送数据,此时同步模块使能缓存模块,并开始传输数据至缓存模块进行存储,那么缓存模块可以及时缓存数据,不至于数据到达缓存模块后被丢失。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (20)
1.一种片间互联系统,其特征在于,包括:至少两个芯片,任意两个芯片通过串行总线通信;
在通过目标串行总线通信的两个芯片中,作为发送端的第一芯片内置同步模块,作为接收端的第二芯片内置缓存模块,所述目标串行总线的两端连接所述同步模块和所述缓存模块;所述同步模块还连接所述第一芯片内的并转串模块,所述缓存模块还连接所述第二芯片内的串转并模块;
所述缓存模块用于:在自身剩余存储空间大于预设阈值时输出空间充足指示信号;
所述第一芯片用于:根据所述空间充足指示信号和自身产生的数据有效指示信号,发送经所述并转串模块串化后的数据至所述目标串行总线;
所述同步模块用于:根据所述空间充足指示信号和自身产生的数据有效指示信号,发送写使能信号至所述目标串行总线,以通过所述目标串行总线传输所述写使能信号至所述缓存模块,使所述缓存模块写使能;
所述缓存模块还用于:缓存经所述串转并模块对串化后的数据并化处理后的数据,并使所述第二芯片从所述缓存模块读取并化处理后的数据。
2.根据权利要求1所述的片间互联系统,其特征在于,所述缓存模块具体用于:
通过对比自身中已存储的数据量与所述预设阈值的大小来确定输出所述空间充足指示信号还是空间不足指示信号。
3.根据权利要求2所述的片间互联系统,其特征在于,所述缓存模块具体用于:
若自身中已存储的数据量未超过所述预设阈值,则输出所述空间充足指示信号。
4.根据权利要求2所述的片间互联系统,其特征在于,所述缓存模块还用于:
若自身中已存储的数据量超过所述预设阈值,则输出空间不足指示信号。
5.根据权利要求1所述的片间互联系统,其特征在于,所述第一芯片用于:
在检测到空间不足指示信号和/或数据无效指示信号时,停止发送数据。
6.根据权利要求1所述的片间互联系统,其特征在于,所述同步模块包括逻辑器件;
所述逻辑器件的第一输入端连接所述第一芯片的数据信号引脚;所述数据信号引脚用于输出所述数据有效指示信号或数据无效指示信号;
所述逻辑器件的第二输入端通过所述目标串行总线连接所述缓存模块的剩余空间指示引脚;所述剩余空间指示引脚用于输出所述空间充足指示信号或空间不足指示信号;
所述逻辑器件的输出端连接所述缓存模块的写使能引脚。
7.根据权利要求6所述的片间互联系统,其特征在于,所述同步模块具体用于:
利用所述逻辑器件对所述空间充足指示信号和所述数据有效指示信号进行逻辑运算,根据逻辑运算结果使所述缓存模块写使能。
8.根据权利要求6所述的片间互联系统,其特征在于,所述逻辑器件为与逻辑器件;
相应地,所述同步模块具体用于:
利用所述与逻辑器件对所述空间充足指示信号和所述数据有效指示信号进行与运算,根据与运算结果使所述缓存模块写使能。
9.根据权利要求1所述的片间互联系统,其特征在于,所述同步模块还用于:
在检测到空间不足指示信号和/或数据无效指示信号时,去使能所述缓存模块。
10.根据权利要求1所述的片间互联系统,其特征在于,所述缓存模块还用于:
在自身中已存储的数据量不为空的情况下输出有效的读指示信号至所述第二芯片,以使所述第二芯片的数据是否有效指示信号有效。
11.根据权利要求10所述的片间互联系统,其特征在于,所述第二芯片还用于:
在所述数据是否有效指示信号有效且自身产生有效的接收准备信号时,从所述缓存模块读取并化处理后的数据。
12.根据权利要求1所述的片间互联系统,其特征在于,所述缓存模块还用于:
在自身中已存储的数据量为空的情况下输出无效的读指示信号至所述第二芯片,以使所述第二芯片的数据是否有效指示信号无效。
13.根据权利要求12所述的片间互联系统,其特征在于,所述第二芯片还用于:
在所述数据是否有效指示信号无效和/或自身产生无效的接收准备信号时,不从所述缓存模块读取并化处理后的数据。
14.根据权利要求11或13所述的片间互联系统,其特征在于,所述缓存模块的读指示信号的引脚连接逻辑器件的一个输入端和所述数据是否有效指示信号的引脚;
所述逻辑器件的另一个输入端连接接收准备信号的引脚;
所述逻辑器件的输出端连接所述缓存模块的读使能信号的引脚。
15.根据权利要求14所述的片间互联系统,其特征在于,所述第二芯片具体用于:
利用所述逻辑器件对所述数据是否有效指示信号和所述接收准备信号进行逻辑运算,根据逻辑运算结果确定所述数据是否有效指示信号和所述接收准备信号是否均有效。
16.根据权利要求14所述的片间互联系统,其特征在于,所述逻辑器件为与逻辑器件;
相应地,所述第二芯片具体用于:
利用所述与逻辑器件对所述数据是否有效指示信号和所述接收准备信号进行与运算,根据与运算结果确定所述数据是否有效指示信号和所述接收准备信号是否均有效。
17.根据权利要求1至13任一项所述的片间互联系统,其特征在于,所述缓存模块具体用于:
按照接收顺序存储并化处理后的数据,并使所述第二芯片按照所述接收顺序从所述缓存模块读取并化处理后的数据;
或
利用先入先出队列存储并化处理后的数据,并使所述第二芯片利用所述先入先出队列读取并化处理后的数据。
18.根据权利要求1至13任一项所述的片间互联系统,其特征在于,所述第一芯片和所述第二芯片均为现场可编程门阵列。
19.根据权利要求1至13任一项所述的片间互联系统,其特征在于,所述目标串行总线为AXI总线。
20.一种数据传输方法,其特征在于,应用于如权利要求1至19任一项所述的片间互联系统,所述片间互联系统包括:至少两个芯片,任意两个芯片通过串行总线通信;在通过目标串行总线通信的两个芯片中,作为发送端的第一芯片内置同步模块,作为接收端的第二芯片内置缓存模块,所述目标串行总线的两端连接所述同步模块和所述缓存模块;所述同步模块还连接所述第一芯片内的并转串模块,所述缓存模块还连接所述第二芯片内的串转并模块;
该方法包括:
所述缓存模块在自身剩余存储空间大于预设阈值时输出空间充足指示信号;
所述第一芯片根据所述空间充足指示信号和自身产生的数据有效指示信号,发送经所述并转串模块串化后的数据至所述目标串行总线;
所述同步模块根据所述空间充足指示信号和自身产生的数据有效指示信号,发送写使能信号至所述目标串行总线,以通过所述目标串行总线传输所述写使能信号至所述缓存模块,使所述缓存模块写使能;
所述缓存模块还缓存经所述串转并模块对串化后的数据并化处理后的数据,并使所述第二芯片从所述缓存模块读取并化处理后的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310703631.9A CN116450569B (zh) | 2023-06-14 | 2023-06-14 | 一种片间互联系统、一种数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310703631.9A CN116450569B (zh) | 2023-06-14 | 2023-06-14 | 一种片间互联系统、一种数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116450569A true CN116450569A (zh) | 2023-07-18 |
CN116450569B CN116450569B (zh) | 2023-08-15 |
Family
ID=87124046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310703631.9A Active CN116450569B (zh) | 2023-06-14 | 2023-06-14 | 一种片间互联系统、一种数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116450569B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116822445A (zh) * | 2023-08-25 | 2023-09-29 | 成都金支点科技有限公司 | 一种用于高速并行计算的片间总线协议实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991883A (zh) * | 2015-06-04 | 2015-10-21 | 青岛海信信芯科技有限公司 | 片间互联的发送、接收装置及发送、接收方法及系统 |
CN104991878A (zh) * | 2015-06-18 | 2015-10-21 | 北京亚科鸿禹电子有限公司 | 一种fpga虚拟io片间互连电路 |
CN114443530A (zh) * | 2022-01-05 | 2022-05-06 | 江南大学 | 基于TileLink的芯片互联电路及数据传输方法 |
CN115982083A (zh) * | 2022-12-13 | 2023-04-18 | 四川恒湾科技有限公司 | Fpga芯片间数据传输方法、装置、系统及存储介质 |
-
2023
- 2023-06-14 CN CN202310703631.9A patent/CN116450569B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991883A (zh) * | 2015-06-04 | 2015-10-21 | 青岛海信信芯科技有限公司 | 片间互联的发送、接收装置及发送、接收方法及系统 |
WO2016192211A1 (zh) * | 2015-06-04 | 2016-12-08 | 青岛海信信芯科技有限公司 | 片间互联的发送、接收装置及发送、接收方法及系统 |
CN104991878A (zh) * | 2015-06-18 | 2015-10-21 | 北京亚科鸿禹电子有限公司 | 一种fpga虚拟io片间互连电路 |
CN114443530A (zh) * | 2022-01-05 | 2022-05-06 | 江南大学 | 基于TileLink的芯片互联电路及数据传输方法 |
CN115982083A (zh) * | 2022-12-13 | 2023-04-18 | 四川恒湾科技有限公司 | Fpga芯片间数据传输方法、装置、系统及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116822445A (zh) * | 2023-08-25 | 2023-09-29 | 成都金支点科技有限公司 | 一种用于高速并行计算的片间总线协议实现方法 |
CN116822445B (zh) * | 2023-08-25 | 2023-11-03 | 成都金支点科技有限公司 | 一种用于高速并行计算的片间总线协议实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116450569B (zh) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9736276B2 (en) | Packetized interface for coupling agents | |
CN116450569B (zh) | 一种片间互联系统、一种数据传输方法 | |
US7328399B2 (en) | Synchronous serial data communication bus | |
US10802995B2 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
CN115248796B (zh) | 用于芯粒到芯粒互连的总线流水线结构和芯片 | |
US8630358B2 (en) | Data packet flow control across an asynchronous clock domain boundary | |
CN112395230A (zh) | 一种基于可编程逻辑器件的uart接口扩展电路 | |
US11971842B2 (en) | Communication device, communication system, and communication method for transmitting a serial signal group conforming to a serial peripheral interface | |
CN112948322B (zh) | 一种基于弹性缓存的虚通道及实现方法 | |
CN114443170A (zh) | Fpga动态并行加卸载系统 | |
US6208645B1 (en) | Time multiplexing of cyclic redundancy functions in point-to-point ringlet-based computer systems | |
CN105512005A (zh) | 控制/远程节点与总线监控节点同步工作的电路及方法 | |
KR20220103931A (ko) | 메모리와 분산된 계산 어레이 간의 데이터 전송 | |
CN114443530B (zh) | 基于TileLink的芯片互联电路及数据传输方法 | |
KR20030090073A (ko) | 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법 | |
JPH0337221B2 (zh) | ||
CN115982071A (zh) | 一种面向ddr3控制器的片上网络转换接口 | |
JPH08123770A (ja) | データ通信制御装置 | |
JP5926583B2 (ja) | 情報処理装置、シリアル通信システムおよびそれらの通信初期化の方法、並びにシリアル通信装置 | |
US11233514B2 (en) | Semiconductor device including subsystem interfaces and communications method thereof | |
JP2017004092A (ja) | 集積回路間のシリアル通信システム | |
US7012925B2 (en) | System for transmitting local area network (LAN) data frames | |
CN116185936B (zh) | 一种spi通信数据收发异常检测控制系统及检测方法 | |
EP2515226A1 (en) | An arrangement | |
KR0138063B1 (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 |