CN115834602A - 一种异步数据流通信交互系统 - Google Patents
一种异步数据流通信交互系统 Download PDFInfo
- Publication number
- CN115834602A CN115834602A CN202211445098.2A CN202211445098A CN115834602A CN 115834602 A CN115834602 A CN 115834602A CN 202211445098 A CN202211445098 A CN 202211445098A CN 115834602 A CN115834602 A CN 115834602A
- Authority
- CN
- China
- Prior art keywords
- synchronization
- data
- asynchronous
- write
- depth
- 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
Images
Abstract
本发明公开一种异步数据流通信交互系统,属于集成电路领域,包括多个基于源同步的分布式1深度同步单元实现异步数据的同步,同步完成后数据转存入一个或多个具有一定深度的同步FIFO,以供后续下游处理单元读取。基于源同步的分布式1深度同步单元因其发送端和接收端的交互信号只有写使能、写时钟和信用信号三组信号,能够有效降低单芯片物理实现的难度或芯粒间的走线数量;采用1深度同步单元可有效缩短普通FIFO内部关键路径组合逻辑的长度,提升FIFO的工作频率;采用具有一定深度的同步FIFO可有效平衡系统上下游的处理带宽,提高系统数据流处理效率。
Description
技术领域
本发明涉及集成电路技术领域,特别涉及一种异步数据流通信交互系统。
背景技术
随着数字集成电路的规模越来越大,采用全局同步技术,对整个芯片的时钟树设计要求极高。为此当前大规模数字集成电路多采用GALS(GlobalAsynchronous LocalSynchronous,全局异步局部同步)技术进行不同模块之间的数据传输,简化芯片的时钟树设计;但却引入了不同时钟域之间信号传输的同步问题。同时随着基于先进封装的多芯粒设计技术的不断发展,且芯粒之间往往工作频率不一样,如何实现芯粒之间的数据异步传输,也得到了越来越多的关注。因此如何在不同时钟域之间进行可靠、高效的数据异步传输,成为GALS设计和多芯粒之间数据通信设计的关键技术。
传统上进行异步传输的方法有多种,典型的两种为:
(1)四相式握手交互方式,如图1所示,双轨四向握手方式是一种逻辑简单、易于实现的异步设计方式,它在数据传输之前先行发送Req1请求,等收到Ack1响应后,再发送Req2请求,并同时发送数据,待收到Ack2响应后,即表示本次数据传输完毕。这种异步传输方式能够实现数据的可靠正确传输,但是数据传输率低,每一次有效的数据传输都需要跨时钟域进行四次握手,因此通常被应用于点对点的控制命令异步设计中,不适用于大数据量高效传输。
(2)异步FIFO,如图2所示,异步FIFO作为一种高效的异步设计方式被广泛应用于跨时钟域设计,其采用格雷码的方式进行读写指针的跨时钟域传递,避免了多位同时翻转导致的误采样,在保证缓存深度的情况下,理论上可以实现不间断流水的跨时钟域数据传输。但普通的异步FIFO存在下面两个问题:
问题1:普通的异步FIFO不论在发送端,还是接收端都存在图2所示的格雷码读指针/写指针→G2B(GraytoBin,格雷码到二进制码转换单元)模块→加法器→B2G(BintoGray,二进制码到格雷码转换单元)模块→判空/满逻辑,这导致判满判空逻辑和其前后的组合逻辑成为写时钟域wclk和读时钟域rclk的关键路径,限制了异步FIFO工作频率的上限,进一步限制了发送端和接收端的工作频率。
问题2:传统的异步FIFO结构,其缓存空间位于写时钟域,FIFO的空满信号判断通过格雷码传递的读写指针分别在读写时钟域下独立产生,这种集中式结构无法直接应用于层次化异步互联结构中某一节点的发送或接收端口中;特别是当发送端和接收端相距较远时,不管是将存储阵列置于相邻两个节点的任何一端(写或读时钟域),都会导致另一端(读或写时钟域)的时钟/控制/数据信号经过顶层走线进行互连,这也违背了GALS策略的设计原则,也增加了后端时钟树的设计难度;且无法在芯粒之间进行数据的跨时钟域传输时使用。
发明内容
本发明的目的在于提供一种异步数据流通信交互系统,以解决背景技术中的问题。
为解决上述技术问题,本发明提供了一种异步数据流通信交互系统,包括:
若干个用于同步的1深度同步单元,每个1深度同步单元从发送端接收相对应的写使能信号和写数据信号;每一个写使能信号相对于其他写使能信号为同步关系或异步关系;每一个写使能信号相对于接收时钟和读使能都是异步的;若干个1深度同步单元从发送端接收同一个数据流;
仲裁单元,通过使用接收端的时钟rclk从上述若干个1深度同步单元中读取数据,并将读到的数据按照相应的规则放入一个或多个具有一定深度的同步FIFO中;
流量控制单元,用以平衡数据流上下游的发送接收速度,并输出信用信号至上游的信用产生逻辑;
下游处理单元,对所述同步FIFO中的数据进行处理,并反馈至所述同步FIFO和所述流量控制单元。
在一种实施方式中,所述1深度同步单元采用基于源同步的分布式同步逻辑,即所述1深度同步单元的发送端产生写操作并将写使能脉冲、写数据信号一起发送到接收端;接收端产生读操作并将读使能脉冲信号或信用信号credit发给发送端。
在一种实施方式中,所述1深度同步单元的发送端发出的写数据信号由发送端时钟寄存后输出,即写数据信号的变化与发送端时钟上升沿对齐;写使能脉冲的上升沿位于写数据信号的中间,为接收端的源同步输入采样预留各半个周期的setup/hold余量;在接收端将写使能脉冲作为局部时钟信号,用以对写数据进行采样。
在一种实施方式中,所述1深度同步单元的最小数目与上下游的数据流处理带宽、异步交互的同步延时因素有关,用以保证系统的平均吞吐量达到最大。
在一种实施方式中,所述1深度同步单元的接收端接收发送端发送的写使能信号和写数据信号,将数据写入存储器阵列,其中写使能信号作为局部写时钟使用;所述1深度同步单元的接收端接收仲裁单元的请求产生对存储器阵列的读操作。
在一种实施方式中,所述存储器阵列采用1深度的SRAM、触发器或latch具有存储功能的元件搭建而成,用以进行异步数据交互。
在一种实施方式中,所述仲裁单元根据读取到的1深度同步单元的数据,按照数据传输协议层的要求,将其转存到不同的同步FIFO单元中,其中所述同步FIFO单元的深度根据流控机制进行设定。
在一种实施方式中,所述发送端中还包括信用产生逻辑,其目标是保证系统的平均吞吐率达到最大吞吐率。
在一种实施方式中,当所述异步数据流通信交互系统用于芯粒间通信时,其包含双向数据通信,即单个芯粒上至少包含有一组发送端和接收端,用以和另一个芯粒互连。
在一种实施方式中,当所述异步数据流通信交互系统用于芯粒间通信时,如果单个芯粒上包含有多组发送端和接收端,则多个芯粒之间能够形成单环网结构、双环网结构、全交叉网络结构或二维mesh网络结构。
在本发明提供的一种异步数据流通信交互系统中,具有以下有益效果:
(1)本发明在接收端提供了多个1深度FIFO结构进行跨时钟域的数据交接,同时在接收端使用一个较深的同步FIFO进行数据存储,避免G2B模块和B2G模块的使用,可以实现较高的工作频率;
(2)本发明采用一种基于源同步的分布式异步FIFO数据交互方法及FIFO结构,这种结构可以在发送端和接收端相距较远时,降低时钟树的走线难度,降低物理设计难度;同时该方案也有利于在芯粒之间进行数据的跨时钟域传输。
附图说明
图1为传统四相式握手交互方式示意图;
图2为传统的异步FIFO结构图;
图3为适应于长距传输的源同步分布式异步FIFO结构图;
图4为可提高系统吞吐率的多个1深度同步单元+同步FIFO的结构图;
图5为支持cache一致性协议传输、使用多个同步FIFO的结构图;
图6为芯粒之间异步数据传输结构图;
图7为六个芯粒通过双环网结构实现了系统级联结构图。
具体实施方式
以下结合附图和具体实施例对本发明提出的一种异步数据流通信交互系统作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
根据本发明,使用多个基于源同步的1深度同步单元进行异步时钟域之间的数据交接,使用一个较深的同步FIFO进行数据存储,通过仲裁单元后拆分到一个或多个同步FIFO中,经常情况下每一个或多个同步FIFO对应于一个虚通道中(即n对1),本发明以一个同步FIFO对应于一个虚通道进行举例,用VC0、VC1、VC2、……等表示不同的同步FIFO。由此可看出本发明通过使用多个1深度同步单元+多个虚通道FIFO代替传统的一个较大容量的异步FIFO,该方法可有效的降低异步交互单元的物理设计难度、提高发送端和接收端的工作频率,以实现异步时钟域之间的长距离数据交互。特别的也可应用于多芯粒之间的源同步数据交互,降低异步信号交互数量和基板走线复杂度。使用流控机制实现数据流在不同时钟域之间的带宽匹配。
图2为传统的异步FIFO结构图。它能够支持两个任意相位和频率关系的异步时钟域之间的数据传输。图2中左侧20是发送方所在时钟域(wclk)的同步电路,右侧21为接收方所在时钟域(rclk)的同步电路。两个时钟域wclk、rclk之间通过存储器阵列22实现数据交接,通过两级同步逻辑(分别由触发器208、触发器209和触发器215、触发器216组成)分别实现读写指针的跟踪比较。存储器阵列22一般可采用双端口SRAM、触发器或latch阵列等方式实现。但图2所示的异步FIFO至少存在以下两个问题:
(1)将FIFO的控制逻辑和存储器阵列作为一个整体,集中放置在发送端或接收端,假设wclk的频率低于rclk,将导致相对低频的时钟树wclk跨模块分布到高频区域21,或相对高频的时钟树rclk跨模块分布到低频区域20。随着芯片规模的扩大和芯片内部时钟种类的增加,尤其是芯片工作频率的不断提高,在物理实现时,会给时钟树设计以及控制跨模块信号的延时带来很大的困难。
(2)为了实现读写指针的正确跨时钟域传输,将加法器203、加法器213的二进制结果转换为格雷码传输到另一侧,在接收侧再次将格雷码转换为二进制以进行比较,见图2中的B2G单元(Bin to Gray,二进制码到格雷码转换单元,204和212)和G2B单元(Gray toBin,格雷码到二进制码转换单元,201和210),这导致判满逻辑207、判空逻辑217和其前后的组合逻辑成为写时钟域wclk和读时钟域rclk的关键路径,限制了传统异步FIFO工作频率的上限。
为了解决第一个问题,本发明采取了基于源同步的分布式异步FIFO结构,原理如图3所示。分布式异步FIFO结构将写操作和读操作分离在发送端30和接收端31,且发送端30与接收端31的交互信号只包含有写脉冲wrplus、写数据wrdata和读脉冲rdplus三个信号。写脉冲wrplus同时作为接收端存储阵列310的局部写时钟使用,这样当写脉冲wrplus和写数据wrdata需要长走线时,只要写脉冲wrplus(局部写时钟)和写数据wrdata之间保持较小的相对延时,即|Tdelay_wrplus-Tdelay_wrdata|,而不管其绝对延时大小,接收端都能够正确接收数据,这有效的降低了后端物理设计的难度,也可有效的提高传输速率。
采用源同步的分布式异步FIFO结构,因发送端30和接收端31交互的信号数量很少,所以也非常适合采用chiplet进行多芯粒设计,芯粒与芯粒之间的数据异步交互。
为了解决第二个问题,本发明在图3的基础上进一步将分布式异步FIFO分成两部分:1深度异步FIFO单元403、404、405、406和同步FIFO单元409,如图4所示。其中1深度异步FIFO单元用于跨时钟域异步交接,因其深度为1,避免了读写指针使用B2G、G2B单元所产生的长组合逻辑,可提高异步FIFO的工作频率;同步FIFO单元409的深度根据流控机制进行设定。因同步FIFO的判空逻辑和判满逻辑中同样没有采用B2G单元和G2B单元,所以通过1深度同步单元+后续的同步FIFO可有效提高整个系统的工作频率。
发送端为了实现数据的连续发送,1深度异步FIFO单元的数目需覆盖异步数据流的交互延迟,所以图4中采用了多个1深度异步FIFO单元。
为支持单物理通道多虚通道的数据传输,如为支持Cache一致性,一般有请求通道REQ、监听通道SNP、鉴定响应通道REP、应答通道ACK等多个虚通道。这些虚通道一般具有不同的优先级,且采用单物理通道进行数据传输,为避免死锁等问题,图5中在多个1深度同步单元同步后,通过仲裁单元将收到的数据包分到不同的虚通道缓冲中:REQVC、SNPVC、REPVC、ACKVC。如果协议方案修改以包含不同数量的虚通道,只需增加接收端虚通道缓冲的数量,而不需改变1深度同步单元的数目,降低系统方案改变对系统的修改量。
本发明的异步数据流通信交互系统应用于芯粒之间的异步数据传输时,如图6所示在芯粒60和芯粒61之间进行数据异步传输时,一般采用双向的数据交互,所以每个芯粒端均设置了发送端和接收端,但假设以芯粒60为主动发送端,则芯粒60上设置了Tx发送端603和Rx接收端601;芯粒61上设置了Tx接收端604和Rx发送端602。芯粒60、芯粒61之间用以交互的信号在每个方向只有wrplus、wrdata、credit三个信号,其中wrplus可作为局部时钟在接收芯粒上对wrdata进行锁存存储。
当芯粒有多组发送端和接收端时,芯粒之间可以组成更为复杂的网络形式,包括单环网结构、双环网结构、全交叉网络结构、二维mesh网络结构等,以构成更为庞大的系统。图7中的芯粒70、71、72、73、74、75均包含了两组发送端和接收端,六个芯粒采用双环网结构实现了系统级联。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (10)
1.一种异步数据流通信交互系统,其特征在于,包括:
若干个用于同步的1深度同步单元,每个1深度同步单元从发送端接收相对应的写使能信号和写数据信号;每一个写使能信号相对于其他写使能信号为同步关系或异步关系;每一个写使能信号相对于接收时钟和读使能都是异步的;若干个1深度同步单元从发送端接收同一个数据流;
仲裁单元,通过使用接收端的时钟rclk从上述若干个1深度同步单元中读取数据,并将读到的数据按照相应的规则放入一个或多个具有一定深度的同步FIFO中;
流量控制单元,用以平衡数据流上下游的发送接收速度,并输出信用信号至上游的信用产生逻辑;
下游处理单元,对所述同步FIFO中的数据进行处理,并反馈至所述同步FIFO和所述流量控制单元。
2.如权利要求1所述的异步数据流通信交互系统,其特征在于,所述1深度同步单元采用基于源同步的分布式同步逻辑,即所述1深度同步单元的发送端产生写操作并将写使能脉冲、写数据信号一起发送到接收端;接收端产生读操作并将读使能脉冲信号或信用信号credit发给发送端。
3.如权利要求2所述的异步数据流通信交互系统,其特征在于,所述1深度同步单元的发送端发出的写数据信号由发送端时钟寄存后输出,即写数据信号的变化与发送端时钟上升沿对齐;写使能脉冲的上升沿位于写数据信号的中间,为接收端的源同步输入采样预留各半个周期的setup/hold余量;在接收端将写使能脉冲作为局部时钟信号,用以对写数据进行采样。
4.如权利要求3所述的异步数据流通信交互系统,其特征在于,所述1深度同步单元的最小数目与上下游的数据流处理带宽、异步交互的同步延时因素有关,用以保证系统的平均吞吐量达到最大。
5.如权利要求4所述的异步数据流通信交互系统,其特征在于,所述1深度同步单元的接收端接收发送端发送的写使能信号和写数据信号,将数据写入存储器阵列,其中写使能信号作为局部写时钟使用;所述1深度同步单元的接收端接收仲裁单元的请求产生对存储器阵列的读操作。
6.如权利要求5所述的异步数据流通信交互系统,其特征在于,所述存储器阵列采用1深度的SRAM、触发器或latch具有存储功能的元件搭建而成,用以进行异步数据交互。
7.如权利要求6所述的异步数据流通信交互系统,其特征在于,所述仲裁单元根据读取到的1深度同步单元的数据,按照数据传输协议层的要求,将其转存到不同的同步FIFO单元中,其中所述同步FIFO单元的深度根据流控机制进行设定。
8.如权利要求7所述的异步数据流通信交互系统,其特征在于,所述发送端中还包括信用产生逻辑,其目标是保证系统的平均吞吐率达到最大吞吐率。
9.如权利要求8所述的异步数据流通信交互系统,其特征在于,当所述异步数据流通信交互系统用于芯粒间通信时,其包含双向数据通信,即单个芯粒上至少包含有一组发送端和接收端,用以和另一个芯粒互连。
10.如权利要求9所述的异步数据流通信交互系统,其特征在于,当所述异步数据流通信交互系统用于芯粒间通信时,如果单个芯粒上包含有多组发送端和接收端,则多个芯粒之间能够形成单环网结构、双环网结构、全交叉网络结构或二维mesh网络结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211445098.2A CN115834602A (zh) | 2022-11-18 | 2022-11-18 | 一种异步数据流通信交互系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211445098.2A CN115834602A (zh) | 2022-11-18 | 2022-11-18 | 一种异步数据流通信交互系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115834602A true CN115834602A (zh) | 2023-03-21 |
Family
ID=85529021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211445098.2A Pending CN115834602A (zh) | 2022-11-18 | 2022-11-18 | 一种异步数据流通信交互系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834602A (zh) |
-
2022
- 2022-11-18 CN CN202211445098.2A patent/CN115834602A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10027433B2 (en) | Multiple clock domains in NoC | |
KR100304063B1 (ko) | 2지점간상호접속통신유틸리티 | |
US6308229B1 (en) | System for facilitating interfacing between multiple non-synchronous systems utilizing an asynchronous FIFO that uses asynchronous logic | |
US8352774B2 (en) | Inter-clock domain data transfer FIFO circuit | |
US6249875B1 (en) | Interface circuit using plurality of synchronizers for synchronizing respective control signals over a multi-clock environment | |
CN112965689B (zh) | 一种基于源同步的分布式异步fifo数据交互方法及fifo结构 | |
CN108683536B (zh) | 异步片上网络的可配置双模式融合通信方法及其接口 | |
CN102866980B (zh) | 用于多核微处理器片上互连网络的网络通信胞元 | |
US20090031053A1 (en) | Semiconductor integrated circuit and semiconductor device with the same | |
US20070081414A1 (en) | System and method of on-circuit asynchronous communication, between synchronous subcircuits | |
JP2004521426A (ja) | バスサイクル毎に選択可能な数のデータワードの読み出し及び/又は書き込みを行うことができるファーストイン・ファーストアウトバッファ | |
CN104915303A (zh) | 基于PXIe总线的高速数字I/O系统 | |
CN110515879B (zh) | 一种异步传输装置及其传输方法 | |
JP2006522378A (ja) | パイプライン同期デバイス | |
US6584536B1 (en) | Bus transaction accelerator for multi-clock systems | |
US6546451B1 (en) | Method and apparatus for decoupling processor speed from memory subsystem speed in a node controller | |
CN112948322B (zh) | 一种基于弹性缓存的虚通道及实现方法 | |
CN115834602A (zh) | 一种异步数据流通信交互系统 | |
CN110705195A (zh) | 一种基于fpga的跨时钟域深度自行配置fifo系统 | |
CN115129657A (zh) | 一种可编程逻辑资源扩展装置和服务器 | |
CN115437972A (zh) | 一种带时钟切换的乒乓缓存方法、装置及接口控制器 | |
CN114443530A (zh) | 基于TileLink的芯片互联电路及数据传输方法 | |
WO2020087239A1 (zh) | 大数据运算加速系统 | |
US7899955B2 (en) | Asynchronous data buffer | |
CN114840458B (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 |