CN114185822B - 多指针弹性缓冲器、增删控制字符的方法及存储介质 - Google Patents
多指针弹性缓冲器、增删控制字符的方法及存储介质 Download PDFInfo
- Publication number
- CN114185822B CN114185822B CN202111308502.7A CN202111308502A CN114185822B CN 114185822 B CN114185822 B CN 114185822B CN 202111308502 A CN202111308502 A CN 202111308502A CN 114185822 B CN114185822 B CN 114185822B
- Authority
- CN
- China
- Prior art keywords
- pointer
- read
- character set
- elastic buffer
- read pointer
- 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
- 239000000872 buffer Substances 0.000 title claims abstract description 110
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000001514 detection method Methods 0.000 claims abstract description 64
- 238000005259 measurement Methods 0.000 claims abstract description 24
- 230000009191 jumping Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 238000012217 deletion Methods 0.000 claims description 7
- 230000037430 deletion Effects 0.000 claims description 7
- 239000000725 suspension Substances 0.000 claims description 7
- 238000013461 design Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking 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
- 230000008569 process Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered 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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明涉及数据缓存技术领域,提供一种多指针弹性缓冲器、增删控制字符的方法及存储介质。所述多指针弹性缓冲器,包括写指针、读指针、存储器,还包括:字符集检测模块和缓冲阈值测量模块;所述字符集检测模块配置有多组根据不同的接口协议定义的控制字符集检测逻辑,用于选择当前的控制字符集检测逻辑,检测输入数据中的控制字符集,在检测到控制字符集的情况下生成字符集检测信号;所述缓冲阈值测量模块用于确定存储器中有效数据的状态,在获取到字符集检测信号的情况下,根据存储器中当前的有效数据的状态确定读指针的递增值。本发明提高了弹性缓冲器设计的复用性和应用范围,且逻辑结构简单。
Description
技术领域
本发明涉及数据缓存技术领域,具体地涉及一种多指针弹性缓冲器、一种增删控制字符的方法以及一种存储介质。
背景技术
随着高速串行接口的不断发展,弹性缓冲器广泛应用于接口技术中,例如以太网、USB、PCI-Express、SATA、光纤通信(Fiber Communications、FC)、InfiniBand等接口协议。由于接口协议中的收发两端支持独立参考时钟源,所以其恢复时钟频率与本地时钟频率存在差别。为了保证数据可靠地从一个时钟域传送到另一个时钟域,部分接口协议采用弹性缓冲器来解决时钟相位同步和频率补偿的问题。
对于弹性缓冲器的设计,现有技术方案是基于特定的接口协议来实现。例如基于USB3.0协议,采用具有写指针屏蔽与跳跃、断点保存等功能的异步FIFO(First InputFirst Output,先进先出的数据缓存器)来实现弹性缓冲器;例如基于10Gbase-KR/10Gbase-R协议,通过控制写指针插入和暂停来实现字符集的增删操作。现有的弹性缓冲器的缺陷是仅支持特定(单个)的接口协议,不能较好地移植到其它接口协议上,通用性差。
发明内容
本发明的目的是提供一种多指针弹性缓冲器,以至少解决上述的不支持多种接口协议的问题。
为了实现上述目的,本发明一方面提供一种多指针弹性缓冲器,包括写指针、读指针及存储器,还包括:字符集检测模块和缓冲阈值测量模块;
所述字符集检测模块配置有多组根据不同的接口协议定义的控制字符集检测逻辑,所述字符集检测模块用于:从多组控制字符集检测逻辑中选择与当前接口协议适配的控制字符集检测逻辑;根据选择的控制字符集检测逻辑检测输入数据中的控制字符集,在检测到控制字符集的情况下生成字符集检测信号;
所述缓冲阈值测量模块用于:确定所述存储器中有效数据的状态;在获取到所述字符集检测信号的情况下,根据所述存储器中当前的有效数据的状态确定所述读指针的递增值。
进一步地,所述写指针的数量大于等于1且小于所述弹性缓冲器的位宽;
所述读指针的数量是所述写指针的数量的两倍。
进一步地,所述读指针的数量大于所述读指针的递增值。
进一步地,所述确定所述存储器中有效数据的状态,包括:所述缓冲阈值测量模块在所述写指针位于半满位置时触发检查脉冲,在所述检查脉冲同步到读时钟域时,读取所述读指针指向的地址,根据所述读指针指向的地址确定所述存储器中有效数据的状态。
进一步地,所述根据所述读指针指向的地址确定所述存储器中有效数据的状态,包括:根据读指针指向的地址位于的阈值区间确定存储器中有效数据是否充足。
进一步地,所述根据读指针指向的地址位于的阈值区间确定存储器中有效数据是否充足,包括:当多个读指针指向的最低地址位于所述存储器的高阈值区时,确定所述存储器中有效数据充足;当多个读指针指向的最低地址位于所述存储器的低阈值区时,确定所述存储器中有效数据不足。
进一步地,所述根据所述存储器中当前的有效数据的状态确定所述读指针的递增值,包括:若所述存储器中当前的有效数据充足,确定增加所述读指针的递增值;若所述存储器中当前的有效数据不足,确定减少所述读指针的递增值。
进一步地,所述读指针用于根据所述缓冲阈值测量模块确定的读指针的递增值,在下一个时钟周期进行读指针的暂停或跳跃,指向下一个读出的地址位。
进一步地,还包括:同步模块;所述同步模块用于将所述缓冲阈值测量模块触发的检查脉冲同步到读时钟域。
进一步地,还包括:输入控制模块;所述输入控制模块用于产生读指针和写指针的复位信号。
进一步地,还包括:输出控制模块;所述输出控制模块用于传递字符集检测模块的字符集检测信号,以及输出所述多指针弹性缓冲器的当前状态信号。
本发明另一方面提供一种增删控制字符的方法,应用于多指针弹性缓冲器,所述方法包括:
从多组控制字符集检测逻辑中选择与当前接口协议适配的控制字符集检测逻辑,根据选择的控制字符集检测逻辑检测输入数据中的控制字符集;
确定多指针弹性缓冲器中有效数据的状态,在检测到输入数据中的控制字符集的情况下,根据当前的有效数据的状态确定读指针的递增值;
根据读指针的递增值进行读指针的暂停或跳跃,实现对控制字符的增添或删减。
进一步地,所述确定多指针弹性缓冲器中有效数据的状态,包括:
在写指针位于半满位置时触发检查脉冲,在检查脉冲同步到读时钟域时读取读指针指向的地址,根据所述读指针指向的地址确定多指针弹性缓冲器中有效数据的状态。
进一步地,所述根据所述读指针指向的地址确定多指针弹性缓冲器中有效数据的状态,包括:根据所述读指针指向的地址位于的阈值区间确定多指针弹性缓冲器中有效数据是否充足。
进一步地,所述根据所述读指针指向的地址位于的阈值区间确定多指针弹性缓冲器中有效数据是否充足,包括:当多个读指针指向的最低地址位于高阈值区时,确定有效数据充足;当多个读指针指向的最低地址位于低阈值区时,确定有效数据不足。
进一步地,所述根据读指针的递增值进行读指针的暂停或跳跃,实现对控制字符的增添或删减,包括:若当前的有效数据充足,则增加读指针的递增值,进行读指针的跳跃,实现对控制字符的删减;若当前的有效数据不足,则减少读指针的递增值,进行读指针的暂停,实现对控制字符的增添。
本发明还提供一种存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现上述的增删控制字符的方法。
本发明提供的多指针弹性缓冲器,配置有多组控制字符集检测逻辑,能够支持多种接口协议,相对于现有技术中仅支持单个协议,提高了弹性缓冲器设计的复用性和应用范围。本发明采用多个读指针和写指针,通过缓冲阈值测量模块确定读指针的递增值,单独控制读指针的暂停或跳跃来实现字符的增删操作,相对于现有技术中读指针、写指针在不同时钟域进行读、写操作需要复杂的异步控制电路,本发明的逻辑结构更为简单,能够避免产生亚稳态、采样丢失等时序错误。
本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:
图1是本发明一种实施方式提供的多指针弹性缓冲器的结构框图;
图2是本发明一种实施方式提供的多指针弹性缓冲器的原理图;
图3是本发明一种实施方式提供的多指针弹性缓冲器的存储器的阈值区间划分示意图;
图4是本发明一种实施方式提供的增删控制字符的方法的流程图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
弹性缓冲器有常半满方式和流程控制方式两种实现方法。流程控制方式是将弹性缓冲器维持在一个底端进入点的状态。常半满方式是将弹性缓冲器维持在一个常半满状态,相较于流程控制方式,常半满方式能够简化逻辑结构,降低电路的复杂性。因此,本发明实施方式采用常半满方式实现弹性缓冲器。
控制字符集是为了实现时钟频率补偿而规范的一组特殊有序集,每种接口协议对控制字符集的定义各不相同,例如,PCIE2.0协议规定用于调整时钟相位的特定字符为SKP字符(K28.0),控制字符集由一个COM字符(K28.5)和三个SKP字符组成。各种接口协议对弹性缓冲需求的主要差异在于控制字符集、缓冲深度以及数据位宽。
图1是本发明一种实施方式提供的多指针弹性缓冲器的结构框图。如图1所示,本实施方式提供一种多指针弹性缓冲器,包括写指针、读指针、存储器、字符集检测模块、缓冲阈值测量模块以及同步模块。所述字符集检测模块配置有多组根据不同的接口协议定义的控制字符集检测逻辑,从多组控制字符集检测逻辑中选择与当前接口协议适配的控制字符集检测逻辑,根据选择的控制字符集检测逻辑检测输入数据中的控制字符集,在检测到控制字符集时生成字符集检测信号。所述缓冲阈值测量模块读取所述读指针指向的地址,根据所述读指针指向的地址确定所述存储器中有效数据的状态,在获取到所述字符集检测模块生成的字符集检测信号时,根据所述存储器中当前的有效数据的状态确定所述读指针的递增值。
所述控制字符集检测逻辑包括PCIE2.0、USB3.0、1000Base-X、InfiniBand等接口协议对应的检测逻辑。通过对弹性缓冲器的数据位宽或缓冲深度进行配置,可满足多种协议对弹性缓冲器容量的需求。例如,针对PCIE2.0、USB3.0、1000Base-X三种协议的配置信息如下表所示:
相关协议 | 数据传输速率 | 支持时钟频率 | 数据位宽 |
PCIE2.0 | 5Gbps | 500MHz/250MHz/125MHz | 10/20/40bit |
USB3.0 | 5Gbps | 500MHz/250MHz/125MHz | 10/20/40bit |
1000Base-X | 1.25Gbps | 125MHz/62.5MHz/31.25MHz | 10/20/40bit |
在高速接口不断发展、频率要求越来越高的情况下,单指针操作的弹性缓冲器会因为频率的高要求导致模块复杂性极高,产生各种未知的错误。本实施方式提供一种多指针弹性缓冲器,其写指针的数量大于等于1且小于弹性缓冲器的位宽,读指针的数量是写指针的数量的两倍。图2是本发明一种实施方式提供的多指针弹性缓冲器的原理图。图2中,写指针的数量为2,读指针的数量为4。多指针弹性缓冲器由多个读、写指针寻址,其指针数与当前数据位宽有关。例如,弹性缓冲器深度为16,宽度为11(最高位为数据有效位,低10位用于存储数据),当前数据位宽为20bit,写指针个数为2,读指针个数为4。PCIE2.0协议中规定,控制字符集为一个COM字符跟随三个连续的SKP字符。由于在检测到COM字符之后才能进行SKP字符的增删,因此在检测到COM字符的下一个周期,才能进行读指针的暂停或跳跃。
现有技术中,弹性缓冲器的同步模块的作用是将写指针的格雷码同步到读时钟域,并与读指针的格雷码进行比较,以产生空标志;或者,将读指针的格雷码同步到写时钟域,并与写指针的格雷码进行比较,以产生满标志;同时,将同步后的读指针和写指针的格雷码转换成二进制码输出。现有的同步方法为了避免毛刺的生成,通常采用格雷码转换器进行格雷码转换,而格雷码转换器的逻辑结构复杂、占用资源较多。尤其是对于多指针弹性缓冲器,需要跨时钟域同步多位指针,逻辑结构更为复杂。为了解决这一问题,本实施方式的弹性缓冲器采用半满状态检查的方式。所述缓冲阈值测量模块在写指针位于半满位置时触发检查脉冲,所述同步模块将检查脉冲同步到读时钟域。在检查脉冲同步到读时钟域时,缓冲阈值测量模块读取读指针指向的地址,根据读指针指向的地址位于的阈值区间确定存储器中有效数据是否充足,以判断当前弹性缓冲器的存储状态。本实施方式的多指针弹性缓冲器,采用半满检查方式和半满同步方法,无需格雷码,省去格雷码转换的步骤,简化逻辑结构,并且减少了同步的位数。
本实施方式中,所述缓冲阈值测量模块根据读指针指向的地址位于的阈值区间确定存储器中有效数据的状态。图3是本发明一种实施方式提供的多指针弹性缓冲器的存储器的阈值区间划分示意图。如图3所示,所述存储器的阈值区间划分为高阈值区和低阈值区,高阈值区包括上溢区,低阈值区包括下溢区。当多个读指针指向的最低地址位于存储器的高阈值区时,表示当前存储器中有效数据充足;当多个读指针指向的最低地址位于存储器的低阈值区时,表示当前存储器中有效数据不足。若读指针处于上溢区,表示存储器过满,若读指针处于下溢区,表示存储器过空。理想状态下,写指针位于半满位置时读指针不处于上溢区和下溢区,可以是自定义的除上溢区和下溢区以外的阈值区间,也就是读指针位于图3中的“0”地址段。
所述缓冲阈值测量模块根据所述存储器中有效数据的状态以及所述字符集检测模块生成的字符集检测信号确定所述读指针的递增值。若缓冲阈值测量模块确定存储器中有效数据充足,在接收到字符集检测模块传递的字符集检测信号时,增加读指针的递增值,实现删除SKP/IDLE字符操作,以提高有效数据的读出速率;若缓冲阈值测量模块确定存储器中有效数据不足,在接收到字符集检测模块传递的字符集检测信号时,减少读指针的递增值,实现增加SKP/IDLE字符操作,以降低有效数据的读出速率。所述读指针根据缓冲阈值测量模块确定的读指针的递增值,在下一个时钟周期进行读指针的暂停或跳跃,指向下一个读出的地址位。读指针通过暂停或跳跃的方式来实现控制字符的增添或删减。若存储器过满或过空,读指针直接跳过数据或立即暂停,并向外部输出上溢或下溢信号,以避免指针跃迁。
在优选实施方式中,所述读指针的数量大于所述读指针的递增值。如前所述,读指针通过暂停或跳跃的方式来实现字符集的增添或删减。若读指针数量大于读指针的递增数,则能够预先检测到字符集,在下一个时钟周期进行读指针的暂停或跳跃。例如,弹性缓冲器的数据宽度为20bit,在一般模式下读指针依次递增数为2。当读指针的最低地址位处于高阈值区,且缓冲阈值测量模块接收到字符集检测信号时,读指针多跳过一个字符,从而删减字符;反之,读指针位于低阈值区,即使缓冲阈值测量模块接收到字符集检测信号,读指针也不再递增(递增值为0),此时重复读取当前字符,完成增添字符操作。
所述多指针弹性缓冲器还包括输入控制模块和输出控制模块。所述输入控制模块的用于控制读时钟域、写时钟域下的复位操作,在写数据有效和全局复位信号共同作用下,产生读指针、写指针的复位信号。所述输出控制模块用于根据读使能信号控制输出信号的输出,只有读使能信号有效时,才能从存储器中读出数据并发送给其它模块。输出控制模块还用于传递字符集检测模块的字符集检测信号,输出弹性缓冲器的当前状态信号。
本发明实施方式提供的多指针弹性缓冲器,配置有多组控制字符集检测逻辑,能够支持多种接口协议,相对于现有技术中仅支持单个协议,提高了弹性缓冲器设计的复用性和应用范围。本发明采用多个读指针和写指针,通过缓冲阈值测量模块确定读指针的递增值,单独控制读指针的暂停或跳跃来实现字符的增删操作,相对于现有技术中读指针、写指针在不同时钟域进行读、写操作需要复杂的异步控制电路,本发明的逻辑结构更为简单,能够避免产生亚稳态、采样丢失等时序错误。
图4是本发明一种实施方式提供的增删控制字符的方法的流程图。如图4所示,本实施方式提供一种增删控制字符的方法,应用于多指针弹性缓冲器,所述方法包括以下步骤:
S1、从多组控制字符集检测逻辑中选择与当前接口协议适配的控制字符集检测逻辑,根据选择的控制字符集检测逻辑检测输入数据中的控制字符集。
控制字符集是为了实现时钟频率补偿而规范的一组特殊有序集,每种接口协议对控制字符集的定义各不相同,例如,PCIE2.0协议规定用于调整时钟相位的特定字符为SKP字符(K28.0),控制字符集由一个COM字符(K28.5)和三个SKP字符组成。各种接口协议对弹性缓冲需求的主要差异在于控制字符集、缓冲深度以及数据位宽。本实施方式的控制字符集检测逻辑包括PCIE2.0、USB3.0、1000Base-X、InfiniBand等接口协议对应的检测逻辑。
S2、确定多指针弹性缓冲器中有效数据的状态,在检测到输入数据中的控制字符集的情况下,根据当前的有效数据的状态确定读指针的递增值。
在写指针位于半满位置时触发检查脉冲,在检查脉冲同步到读时钟域时读取读指针指向的地址,根据所述读指针指向的地址确定多指针弹性缓冲器中有效数据的状态。具体的,根据所述读指针指向的地址位于的阈值区间确定多指针弹性缓冲器中有效数据是否充足。当多个读指针指向的最低地址位于高阈值区时,确定有效数据充足。在检测到输入数据中的控制字符集时,若当前的有效数据充足,则增加读指针的递增值。当多个读指针指向的最低地址位于低阈值区时,确定有效数据不足。在检测到输入数据中的控制字符集时,若当前的有效数据不足,则减少读指针的递增值。
所述阈值区间是指多指针弹性缓冲器的存储器的地址区间,包括高阈值区和低阈值区,其中高阈值区包括上溢区,低阈值区包括下溢区。当多个读指针指向的最低地址位于高阈值区时,表示当前存储的有效数据充足;当多个读指针指向的最低地址位于低阈值区时,表示当前存储的有效数据不足。若读指针处于上溢区,表示存储器过满,若读指针处于下溢区,表示存储器过空。理想状态下,写指针位于半满位置时读指针不处于上溢区和下溢区,可以是自定义的除上溢区和下溢区以外的阈值区间,也就是读指针位于图3中的“0”地址段。
S3、根据读指针的递增值进行读指针的暂停或跳跃,实现对控制字符的增添或删减。
在检测到输入数据中的控制字符集时,若当前的有效数据充足,则增加读指针的递增值,进行读指针的跳跃,实现对控制字符的删减;若当前的有效数据不足,则减少读指针的递增值,进行读指针的暂停,实现对控制字符的增添。
本发明实施方式提供的增删控制字符的方法,从多组控制字符集检测逻辑中选择与当前接口协议适配的控制字符集检测逻辑,检测输入数据中的控制字符集,因此可以支持多种接口协议,相对于现有技术中仅支持单个协议,提高弹性缓冲器设计的复用性和应用范围。此外,本方法通过确定读指针的递增值,单独控制读指针的暂停或跳跃来实现字符的增删操作,相对于现有技术中读指针、写指针在不同时钟域进行读、写操作需要复杂的异步控制电路,本方法的逻辑结构更为简单,能够避免产生亚稳态、采样丢失等时序错误。
本发明实施方式还提供一种机器可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现上述的增删控制字符的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、系统和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (13)
1.一种多指针弹性缓冲器,包括写指针、读指针及存储器,其特征在于,还包括:字符集检测模块、缓冲阈值测量模块以及同步模块;
所述字符集检测模块配置有多组根据不同的接口协议定义的控制字符集检测逻辑,所述字符集检测模块用于:
从多组控制字符集检测逻辑中选择与当前接口协议适配的控制字符集检测逻辑;
根据选择的控制字符集检测逻辑检测输入数据中的控制字符集,在检测到控制字符集的情况下生成字符集检测信号;
所述缓冲阈值测量模块用于:
确定所述存储器中有效数据的状态;
在获取到所述字符集检测信号的情况下,根据所述存储器中当前的有效数据的状态确定所述读指针的递增值;
其中,所述多指针弹性缓冲器的数据位宽是根据多种接口协议对弹性缓冲器容量的需求进行配置的,所述写指针的数量大于等于1且小于所述多指针弹性缓冲器的数据位宽,所述读指针的数量是所述写指针的数量的两倍;
所述缓冲阈值测量模块确定所述存储器中有效数据的状态,包括:
在写指针位于半满位置时触发检查脉冲;
在所述同步模块将所述检查脉冲同步到读时钟域时,读取所述读指针指向的地址,根据所述读指针指向的地址确定所述存储器中有效数据的状态。
2.根据权利要求1所述的多指针弹性缓冲器,其特征在于,所述读指针的数量大于所述读指针的递增值。
3.根据权利要求1所述的多指针弹性缓冲器,其特征在于,所述根据所述读指针指向的地址确定所述存储器中有效数据的状态,包括:
根据读指针指向的地址位于的阈值区间确定存储器中有效数据是否充足。
4.根据权利要求3所述的多指针弹性缓冲器,其特征在于,所述根据读指针指向的地址位于的阈值区间确定存储器中有效数据是否充足,包括:
当多个读指针指向的最低地址位于所述存储器的高阈值区时,确定所述存储器中有效数据充足;
当多个读指针指向的最低地址位于所述存储器的低阈值区时,确定所述存储器中有效数据不足。
5.根据权利要求3所述的多指针弹性缓冲器,其特征在于,所述根据所述存储器中当前的有效数据的状态确定所述读指针的递增值,包括:
若所述存储器中当前的有效数据充足,确定增加所述读指针的递增值;
若所述存储器中当前的有效数据不足,确定减少所述读指针的递增值。
6.根据权利要求1所述的多指针弹性缓冲器,其特征在于,所述读指针用于根据所述缓冲阈值测量模块确定的读指针的递增值,在下一个时钟周期进行读指针的暂停或跳跃,指向下一个读出的地址位。
7.根据权利要求1所述的多指针弹性缓冲器,其特征在于,还包括:输入控制模块;
所述输入控制模块用于产生读指针和写指针的复位信号。
8.根据权利要求1所述的多指针弹性缓冲器,其特征在于,还包括:输出控制模块;
所述输出控制模块用于传递字符集检测模块的字符集检测信号,以及输出所述多指针弹性缓冲器的当前状态信号。
9.一种增删控制字符的方法,应用于多指针弹性缓冲器,其特征在于,所述多指针弹性缓冲器的数据位宽是根据多种接口协议对弹性缓冲器容量的需求进行配置的,所述多指针弹性缓冲器的写指针的数量大于等于1且小于所述多指针弹性缓冲器的数据位宽,所述多指针弹性缓冲器的读指针的数量是所述写指针的数量的两倍,所述方法包括:
从多组控制字符集检测逻辑中选择与当前接口协议适配的控制字符集检测逻辑,根据选择的控制字符集检测逻辑检测输入数据中的控制字符集;
确定多指针弹性缓冲器中有效数据的状态,在检测到输入数据中的控制字符集的情况下,根据当前的有效数据的状态确定读指针的递增值;
根据读指针的递增值进行读指针的暂停或跳跃,实现对控制字符的增添或删减;
所述确定多指针弹性缓冲器中有效数据的状态,包括:
在写指针位于半满位置时触发检查脉冲,在检查脉冲同步到读时钟域时读取读指针指向的地址,根据所述读指针指向的地址确定多指针弹性缓冲器中有效数据的状态。
10.根据权利要求9所述的增删控制字符的方法,其特征在于,所述根据所述读指针指向的地址确定多指针弹性缓冲器中有效数据的状态,包括:
根据所述读指针指向的地址位于的阈值区间确定多指针弹性缓冲器中有效数据是否充足。
11.根据权利要求10所述的增删控制字符的方法,其特征在于,所述根据所述读指针指向的地址位于的阈值区间确定多指针弹性缓冲器中有效数据是否充足,包括:
当多个读指针指向的最低地址位于高阈值区时,确定有效数据充足;
当多个读指针指向的最低地址位于低阈值区时,确定有效数据不足。
12.根据权利要求10所述的增删控制字符的方法,其特征在于,所述根据读指针的递增值进行读指针的暂停或跳跃,实现对控制字符的增添或删减,包括:
若当前的有效数据充足,则增加读指针的递增值,进行读指针的跳跃,实现对控制字符的删减;
若当前的有效数据不足,则减少读指针的递增值,进行读指针的暂停,实现对控制字符的增添。
13.一种存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被执行时实现权利要求9-12中任一项所述的增删控制字符的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111308502.7A CN114185822B (zh) | 2021-11-05 | 2021-11-05 | 多指针弹性缓冲器、增删控制字符的方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111308502.7A CN114185822B (zh) | 2021-11-05 | 2021-11-05 | 多指针弹性缓冲器、增删控制字符的方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114185822A CN114185822A (zh) | 2022-03-15 |
CN114185822B true CN114185822B (zh) | 2024-05-24 |
Family
ID=80540802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111308502.7A Active CN114185822B (zh) | 2021-11-05 | 2021-11-05 | 多指针弹性缓冲器、增删控制字符的方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185822B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757348B1 (en) * | 2001-08-28 | 2004-06-29 | Crossroads Systems, Inc. | High-speed coordinated multi-channel elastic buffer |
US9311045B2 (en) * | 2012-07-12 | 2016-04-12 | Phison Electronics Corp. | Elastic buffer module and elastic buffering method for transmission interface |
CN106484631A (zh) * | 2015-08-25 | 2017-03-08 | 安徽大学 | 一种新弹性缓冲器结构及skp添加方法 |
CN106919532A (zh) * | 2017-03-10 | 2017-07-04 | 重庆湃芯微电子有限公司 | 一种基于jesd204b的弹性缓冲器 |
CN107370720A (zh) * | 2016-04-12 | 2017-11-21 | 基萨系统公司 | 多协议和多数据速率通信 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7281077B2 (en) * | 2005-04-06 | 2007-10-09 | Qlogic, Corporation | Elastic buffer module for PCI express devices |
US8255599B2 (en) * | 2006-03-28 | 2012-08-28 | Integrated Device Technology Inc. | Packets transfer device having data absorbing buffers with elastic buffer capacities |
-
2021
- 2021-11-05 CN CN202111308502.7A patent/CN114185822B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6757348B1 (en) * | 2001-08-28 | 2004-06-29 | Crossroads Systems, Inc. | High-speed coordinated multi-channel elastic buffer |
US9311045B2 (en) * | 2012-07-12 | 2016-04-12 | Phison Electronics Corp. | Elastic buffer module and elastic buffering method for transmission interface |
CN106484631A (zh) * | 2015-08-25 | 2017-03-08 | 安徽大学 | 一种新弹性缓冲器结构及skp添加方法 |
CN107370720A (zh) * | 2016-04-12 | 2017-11-21 | 基萨系统公司 | 多协议和多数据速率通信 |
CN106919532A (zh) * | 2017-03-10 | 2017-07-04 | 重庆湃芯微电子有限公司 | 一种基于jesd204b的弹性缓冲器 |
Non-Patent Citations (1)
Title |
---|
"高速接口中多指针弹性缓冲器设计";程国林,常 红,柯导明,张 平;《中国科学技术大学学报》;第47卷(第10期);P854-861 * |
Also Published As
Publication number | Publication date |
---|---|
CN114185822A (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7310396B1 (en) | Asynchronous FIFO buffer for synchronizing data transfers between clock domains | |
CN105320490B (zh) | 用于异步fifo电路的方法和设备 | |
US7187741B2 (en) | Clock domain crossing FIFO | |
US7020757B2 (en) | Providing an arrangement of memory devices to enable high-speed data access | |
KR100434833B1 (ko) | 직렬/병렬 변환 회로, 데이터 전송 제어 장치 및 전자 기기 | |
US6757348B1 (en) | High-speed coordinated multi-channel elastic buffer | |
US8520464B2 (en) | Interface circuit and semiconductor device incorporating same | |
US7599459B2 (en) | Receiving apparatus, data transmission system and receiving method | |
US20090323728A1 (en) | Asynchronous data fifo that provides uninterrupted data flow | |
CN102708086A (zh) | 一种应用于usb3.0的弹性缓冲结构及方法 | |
CN104022775A (zh) | 一种面向SerDes技术中基于FIFO协议的数字接口电路 | |
EP1575206A2 (en) | Data synchronization arrangement | |
US10237053B2 (en) | Semiconductor device and data synchronization method | |
CN114185822B (zh) | 多指针弹性缓冲器、增删控制字符的方法及存储介质 | |
US10680963B2 (en) | Circuit and method for credit-based flow control | |
WO2024082497A1 (zh) | 异步信号处理方法及结构 | |
US6137851A (en) | System and method for synchronizing a signal with respect to another signal | |
CN115699668B (zh) | 宽弹性缓冲器 | |
US9880961B2 (en) | Asynchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry | |
US11205463B2 (en) | Asynchronous FIFO circuit | |
CN108462655B (zh) | Fc链路弹性缓冲区电路 | |
JP3638769B2 (ja) | 通信制御装置 | |
CN118312459B (zh) | 用于弹性缓存频差补偿的控制方法、计算机设备及介质 | |
JP3562416B2 (ja) | Lsi間データ転送システム及びそれに用いるソースシンクロナスデータ転送方式 | |
CN219179825U (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |