CN104267925B - 弹性先进先出存储器及存储方法 - Google Patents
弹性先进先出存储器及存储方法 Download PDFInfo
- Publication number
- CN104267925B CN104267925B CN201410491938.8A CN201410491938A CN104267925B CN 104267925 B CN104267925 B CN 104267925B CN 201410491938 A CN201410491938 A CN 201410491938A CN 104267925 B CN104267925 B CN 104267925B
- Authority
- CN
- China
- Prior art keywords
- controller
- read
- counter
- memory bank
- write
- 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
Abstract
本发明公开了一种弹性先进先出存储器及存储方法,应用于USB3.0中,该存储器采用主控制器开启或者关闭读控制器和写控制器,采用写控制器控制写计数器进行计数,为存储体提供数据的写地址,并将外部输入的数据写入存储体,采用读控制器控制读计数器进行计数,为存储体提供数据的读地址,并输出存储体中的数据,采用同步电路获取写计数器和读计数器的地址值,并将地址值传送给写控制器和读控制器,以进行比较,同时,采用基于地址的握手逻辑来同步写控制器和读控制器的状态信号,从而克服了现有技术中跨时钟域数据传输不稳定的问题,进而使得跨时钟域数据传输更加可靠和稳定。
Description
技术领域
本发明涉及存储器技术领域,尤其涉及一种弹性先进先出存储器及存储方法。
背景技术
在PCI-E、USB3.0等高速通信协议中,高速链接两端的器件时钟通常是独立的。当一端的数据传送到另一端时,数据和时钟被恢复出来,由于恢复出来的时钟和本地时钟之间存在差异,所以业界通常会采取措施来弥补这种差异以保证数据的正确交换。在USB3.0中,协议规定使用弹性缓冲器(Elasticity buffer),并通过增加和删除SKP命令集(SKPordered set)的方法来实现数据在两个时钟域间的交换。
在USB3.0规范中,链接两端的时钟精度要求为+/-300ppm,因此两端的时钟偏差之和可能为600ppm,加上SSC(Spread Spectrum Clocking,扩频时钟)产生的5000ppm的偏差,最大的偏差总共为5600ppm。发送端口每354个符号发送一个SKP命令集,并且最多允许一次发送4个SKP命令集。接收机必须具备缓冲8个符号的能力,在USB3.0规范中,每一个SKP命令集包含两个连续的SKP特殊编码符号。
在进行电路设计时,通常要考虑到跨时钟域的电路设计问题,比如亚稳态等,现有技术中虽然采用SKP命令集的增加和删除来消除两端时钟的频率偏差,但是跨时钟域数据传输仍然较不稳定,从而使得跨时钟域数据传输实现可靠和稳定并不是一件容易的事情。
发明内容
针对上述存在的问题,本发明提供一种弹性先进先出存储器及存储方法,应用于USB3.0中,以克服现有技术中跨时钟域数据传输不稳定的问题,从而使得跨时钟域数据传输更加可靠和稳定。
为了实现上述目的,本发明采取的技术方案为:
一种弹性先进先出存储器,应用于USB3.0中,其中,包括:主控制器、写控制器、读控制器、写计数器、读计数器、存储体、同步电路和握手逻辑;
所述主控制器电性连接所述写控制器和所述读控制器,所述主控制器开启或者关闭所述写控制器和所述读控制器;
所述写控制器电性连接所述写计数器和所述存储体,所述写控制器控制所述写计数器进行计数,且所述写控制器将外部输入的数据写入所述存储体;
所述读控制器电性连接所述读计数器和所述存储体,所述读控制器控制所述读计数器进行计数,且所述读控制器输出所述存储体中的数据;
所述写计数器电性连接所述存储体,所述写计数器为所述存储体提供数据的写地址;
所述读计数器电性连接所述存储体,所述读计数器为所述存储体提供数据的读地址;
所述同步电路电性连接所述写计数器、所述读计数器、所述写控制器和所述读控制器,所述同步电路获取所述写计数器和所述读计数器的地址值,并将所述地址值传送给所述写控制器和所述读控制器;
所述握手逻辑电性连接所述写控制器和所述读控制器,所述握手逻辑将所述写控制器的状态信号同步到所述读控制器。
上述的弹性先进先出存储器,其中,所述读控制器和所述写控制器均具有寄存功能。
上述的弹性先进先出存储器,其中,所述读控制器和所述写控制器均具有比较功能。
上述的弹性先进先出存储器,其中,所述写控制器具有删除和插入SKP命令集功能,所述读控制器具有插入SKP命令集功能。
上述的弹性先进先出存储器,其中,所述写计数器和所述读计数器均为格雷码计数器。
上述的弹性先进先出存储器,其中,所述写计数器和所述读计数器的频率为125GHz。
上述的弹性先进先出存储器,其中,所述存储体为异步存储体。
上述的弹性先进先出存储器,其中,所述存储体的数据位宽为40比特。
一种弹性先进先出存储方法,应用于USB3.0中,其中,包括:
启动一写控制器,所述写控制器控制一写计数器进行计数,同时将外部输入的数据存储至以所述写计数器的计数值为写地址的存储体中;
当存储体中存储的数据占用所述存储体的整个存储空间的一半时,启动一读控制器,所述读控制器控制一读计数器进行计数,同时以所述读计数器的计数值为读地址从所述存储体中读出数据;
其中,启动所述读控制器后,采用一握手逻辑将所述写控制器的状态信息同步到所述读控制器,并将状态信息与数据精确同步。
上述的弹性先进先出存储方法,其中,所述写计数器和所述读计数器通过一同步电路实时将写地址值和读地址值传送至所述写控制器和所述读控制器,所述写控制器和所述读控制器比较所述写地址值和所述读地址值;
当所述写地址值与所述读地址值之差接近所述存储体的深度时,所述写控制器产生满信号,并在数据流中删除SKP命令集;
当所述写地址值和所述读地址值之差接近0时,所述读控制器产生空信号,并在数据流中插入SKP命令集。
上述技术方案具有如下优点或者有益效果:
本发明提供的弹性先进先出存储器,应用于USB3.0中,该弹性先进先出存储器采用主控制器开启或者关闭读控制器和写控制器,采用写控制器控制写计数器进行计数,为存储体提供数据的写地址,并将外部输入的数据写入存储体,采用读控制器控制读计数器进行计数,为存储体提供数据的读地址,并输出存储体中的数据,采用同步电路获取写计数器和读计数器的地址值,并将地址值传送给写控制器和读控制器,以进行比较,同时,采用握手逻辑同步写控制器和读控制器的状态信号,由于握手逻辑是基于地址的同步握手方式,从而能够实现读、写时钟域的精确同步,从而克服了现有技术中跨时钟域数据传输不稳定的问题,进而使得跨时钟域数据传输更加可靠和稳定;本发明提供的弹性先进先出存储器,能够有效的在写时钟域和读时钟域间实现5Gbps的数据传输,并且通过了仿真验证、FPGA验证和CMOS65nm、45nm流片验证,成功应用于Qualchip USB3.0MassStorge Demo系统上。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明及其特征、外形和优点将会变得更加明显。在全部附图中相同的标记指示相同的部分。并未刻意按照比例绘制附图,重点在于示出本发明的主旨。
图1是本发明实施例1提供的弹性先进先出存储器的结构示意图。
具体实施方式
实施例1:
图1是本发明实施例1提供的弹性先进先出存储器的结构示意图;如图所示,本发明实施例1提供的弹性先进先出存储器,应用于USB3.0中,该弹性先进先出存储器包括:主控制器、写控制器、读控制器、写计数器、读计数器、存储体、同步电路和握手逻辑;主控制器电性连接写控制器和读控制器,用以开启或者关闭写控制器和读控制器;写控制器电性连接写计数器和存储体,用以控制写计数器进行计数,并且将外部输入的数据写入存储体中;读控制器电性连接读计数器和存储体,用以控制读计数器进行计数,并且输出存储体中的数据;写计数器电性连接存储体,为存储体提供数据的写地址;读计数器电性连接存储体,为存储体提供数据的读地址;同步电路电性连接写计数器、读计数器、写控制器和读控制器,同步电路获取写计数器和读计数器的地址值(写计数器中的写地址值和读计数器中的读地址值),并将地址值传送给写控制器和读控制器;握手逻辑电性连接写控制器和读控制器,用以将写控制器的状态信号同步到读控制器。
在本发明实施例1提供的弹性先进先出存储器中,写控制器具有删除和插入SKP命令集功能,读控制器具有插入SKP命令集功能。
在本发明实施例1提供的弹性先进先出存储器中,写计数器和读计数器均为格雷码计数器,且计数频率均为125GHz,采用格雷码计数器能够实现地址同步时消除亚稳态的负面影响。
在本发明实施例1提供的弹性先进先出存储器中,存储体为异步存储体,且存储体的数据位宽为40比特,从而符合USB3.0规范规定的传输速率5GHz。
在使用本发明实施例1提供的弹性先进先出存储器进行存储时,主控制器开启写控制器,写控制器控制写计数器进行计数,并且写计数器的计数值作为存储体的写地址,写控制器将外部输入的数据通过该写地址存储到存储体中;当存储体中存储的数据占用整个存储空间一半时(亦或略低于存储空间的一半,也可高于存储空间的一半),主控制器开启读控制器,读控制器控制读计数器进行计数,以读计数器的计数值为读地址,从存储体中读出相应的数据。在读写控制器开始工作后,握手逻辑持续将写控制器的状态信号同步到读控制器。
在此过程中,写计数器和读计数器还实时将其地址值传送给同步电路,通过该同步电路进行地址值稳定后,将写地址值和读地址值传送给写控制器和读控制器,写控制器和读控制器均进行比较操作,当写地址值与读地址值之差接近存储体的深度时,业界认为该存储体将满,从而使得写控制器产生满信号,写控制器便在数据流中删除SKP命令集;当写地址值和读地址值相近或者相等时(即:写地址值与读地址值之差接近为0时),业界认为该存储体将空,从而使得读控制器产生空信号,读控制器便在数据流中插入SKP命令集;需要说明的是,每次只删除或者插入一个SKP命令集,SKP命令集为两个字节,而输入输出的数据均为四个字节,因此,两次增加或者删除行为才能引起写计数器、读计数器的一次计数变化。
写控制器控制SKP删除,读控制器控制SKP增加。不过,作为本设计的另一种方案,SKP的增加也可以在写控制器中实现。
在使用本发明实施例1提供的弹性先进先出存储器进行存储时,其中,握手逻辑的主要作用是:通过握手协议,解决写时钟域产生的信号到读时钟域的同步问题,本发明的握手逻辑采用判断地址的方法,以满信号overflow的产生为例,其流程如下:(1)写控制器检测到存储体满,将当前的写计数器产生的写地址锁存到overflow地址寄存器overflow-wreg中,并在下一周期通过写是时钟域的满请求寄存器产生满请求信号overflow-rqt;(2)读时钟域收到overflow-rqt信号,把overflow-wreg数据读入到读时钟域的地址寄存器overflow-rreg中;(3)读时钟域比较overflow-rreg中的地址数据和读控制器提供的当前读时钟域的读地址信号,当两地址(写地址和读地址)的值相等时,在当前的读时钟周期内产生一个时钟周期的overflow信号,通过此方式,写时钟域的满信号同步到读时钟域;(4)读时钟域的响应寄存器产生响应信号overflow-ack;(5)写时钟域收到overflow-ack,则撤销overflow-rqt信号;(6)读时钟域检测到overflow-rqt已被撤销,则撤销overflow-ack;(7)写时钟域收到overflow-ack的撤销,本次握手结束,等待下一次握手请求。通过这种的握手方式,状态信号与数据流的对应关系通过地址精确的对应起来,实现输出数据流中数据和状态的精确同步,便于其它连接本存储体的模块根据二者作出正确的判断和响应。
综上所述,本发明实施例1提供的弹性先进先出存储器,采用主控制器开启或者关闭读控制器和写控制器,采用写控制器控制写计数器进行计数,为存储体提供数据的写地址,并将外部输入的数据写入存储体,采用读控制器控制读计数器进行计数,为存储体提供数据的读地址,并输出存储体中的数据,采用同步电路获取写计数器和读计数器的地址值,并将地址值传送给写控制器和读控制器,以进行比较,同时,采用握手逻辑同步写控制器和读控制器的状态信号,由于握手逻辑是基于地址的同步握手方式,从而能够实现读、写时钟域的精确同步,从而克服了现有技术中跨时钟域数据传输不稳定的问题,进而使得跨时钟域数据传输更加可靠和稳定;本发明实施例1提供的弹性先进先出存储器,能够有效的在写时钟域和读时钟域间实现5Gbps的数据传输,并且通过了仿真验证、FPGA验证和CMOS65nm、45nm流片验证,成功应用于Qualchip USB3.0MassStorge Demo系统上。
本领域技术人员应该理解,本领域技术人员结合现有技术以及上述实施例可以实现所述变化例,在此不予赘述。这样的变化例并不影响本发明的实质内容,在此不予赘述。
以上对本发明的较佳实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (7)
1.一种弹性先进先出存储器,应用于USB3.0中,其特征在于,包括:主控制器、写控制器、读控制器、写计数器、读计数器、存储体、同步电路和握手逻辑;
所述主控制器电性连接所述写控制器和所述读控制器,所述主控制器开启或者关闭所述写控制器和所述读控制器;
所述写控制器电性连接所述写计数器和所述存储体,所述写控制器控制所述写计数器进行计数,且所述写控制器将外部输入的数据写入所述存储体;
所述读控制器电性连接所述读计数器和所述存储体,所述读控制器控制所述读计数器进行计数,且所述读控制器输出所述存储体中的数据;
所述写计数器电性连接所述存储体,所述写计数器为所述存储体提供数据的写地址;
所述读计数器电性连接所述存储体,所述读计数器为所述存储体提供数据的读地址;
所述同步电路电性连接所述写计数器、所述读计数器、所述写控制器和所述读控制器,所述同步电路获取所述写计数器和所述读计数器的地址值,并将所述地址值传送给所述写控制器和所述读控制器;
所述握手逻辑电性连接所述写控制器和所述读控制器,所述握手逻辑将所述写控制器的状态信号同步到所述读控制器;
所述写控制器具有删除和插入SKP命令集功能,所述读控制器具有插入SKP命令集功能;所述写计数器和所述读计数器均为格雷码计数器。
2.如权利要求1所述的弹性先进先出存储器,其特征在于,所述读控制器和所述写控制器均具有寄存功能。
3.如权利要求2所述的弹性先进先出存储器,其特征在于,所述读控制器和所述写控制器均具有比较功能。
4.如权利要求1所述的弹性先进先出存储器,其特征在于,所述写计数器和所述读计数器的频率为125GHz。
5.如权利要求1所述的弹性先进先出存储器,其特征在于,所述存储体为异步存储体。
6.如权利要求1所述的弹性先进先出存储器,其特征在于,所述存储体的数据位宽为40比特。
7.一种弹性先进先出存储方法,应用于USB3.0中,其特征在于,包括:
启动一写控制器,所述写控制器控制一写计数器进行计数,同时将外部输入的数据存储至以所述写计数器的计数值为写地址的存储体中;
当存储体中存储的数据占用所述存储体的整个存储空间的一半时,启动一读控制器,所述读控制器控制一读计数器进行计数,同时以所述读计数器的计数值为读地址从所述存储体中读出数据;
其中,启动所述读控制器后,采用一握手逻辑将所述写控制器的状态信息同步到所述读控制器,并将状态信息与数据精确同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410491938.8A CN104267925B (zh) | 2014-09-23 | 2014-09-23 | 弹性先进先出存储器及存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410491938.8A CN104267925B (zh) | 2014-09-23 | 2014-09-23 | 弹性先进先出存储器及存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104267925A CN104267925A (zh) | 2015-01-07 |
CN104267925B true CN104267925B (zh) | 2018-05-22 |
Family
ID=52159451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410491938.8A Active CN104267925B (zh) | 2014-09-23 | 2014-09-23 | 弹性先进先出存储器及存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104267925B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704020B (zh) * | 2019-09-29 | 2022-02-18 | 浪潮(北京)电子信息产业有限公司 | 一种跨时钟域数据包的完整性判断方法、系统及相关装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN204143430U (zh) * | 2014-09-23 | 2015-02-04 | 无锡华大国奇科技有限公司 | 弹性先进先出存储器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100470995B1 (ko) * | 2002-04-23 | 2005-03-08 | 삼성전자주식회사 | 클럭수신 동기회로를 갖는 멀티클럭 도메인 데이터 입력처리장치 및 그에 따른 클럭신호 인가방법 |
CN101236528A (zh) * | 2008-02-20 | 2008-08-06 | 华为技术有限公司 | 一种乒乓控制的方法及装置 |
CN101692346B (zh) * | 2009-06-19 | 2013-06-26 | 无锡中星微电子有限公司 | 一种存储器数据采样装置及一种采样控制器 |
CN102708086B (zh) * | 2012-05-10 | 2015-05-20 | 无锡华大国奇科技有限公司 | 一种应用于usb3.0的弹性缓冲结构及方法 |
CN102723108A (zh) * | 2012-05-23 | 2012-10-10 | 常州芯奇微电子科技有限公司 | 时钟用异步fifo存储器 |
-
2014
- 2014-09-23 CN CN201410491938.8A patent/CN104267925B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN204143430U (zh) * | 2014-09-23 | 2015-02-04 | 无锡华大国奇科技有限公司 | 弹性先进先出存储器 |
Also Published As
Publication number | Publication date |
---|---|
CN104267925A (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9722944B2 (en) | Rate adaptation across asynchronous frequency and phase clock domains | |
CN104954096B (zh) | 一种一主多从的高速同步串行通信数据传输方法 | |
CN102708086B (zh) | 一种应用于usb3.0的弹性缓冲结构及方法 | |
US7975082B2 (en) | System and method to facilitate deterministic testing of data transfers between independent clock domains on a chip | |
CN102918513B (zh) | 用于启用确定性接口的方法、装置和系统 | |
CN105721057A (zh) | 高性能光中继器 | |
US7609092B2 (en) | Automatic phase-detection circuit for clocks with known ratios | |
CN104808966B (zh) | 有效编码的方法和装置 | |
US7958285B1 (en) | System and method to facilitate deterministic testing of data transfers between independent clock domains on a chip | |
CN103164314B (zh) | 基于异步物理层接口的PCIe接口芯片硬件验证方法 | |
CN104267925B (zh) | 弹性先进先出存储器及存储方法 | |
CN103427945B (zh) | 同步串行通信接口的通信方法及该同步串行通信接口 | |
CN202904568U (zh) | 一种应用于usb3.0的弹性缓冲结构 | |
CN204143430U (zh) | 弹性先进先出存储器 | |
US8510485B2 (en) | Low power digital interface | |
US20230239256A1 (en) | Wide Elastic Buffer | |
US10977206B2 (en) | Data communication device and method for data communication | |
Kapschitz et al. | Formal verification of synchronizers | |
TWI583187B (zh) | 資料處理方法及裝置 | |
CN102545953A (zh) | Uart功能扩展电路及其控制方法 | |
Laban et al. | Platform for testing and evaluation of PUF and TRNG implementations in FPGAs | |
CN110489363A (zh) | 基于ddr写通道的发送电路 | |
CN105718402B (zh) | 可编程时序发生器 | |
CN110232038A (zh) | 一种工控机用智能通讯串口装置 | |
CN103209146A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |