CN105094743A - 一种先进先出数据缓存器及其进行时延控制的方法 - Google Patents
一种先进先出数据缓存器及其进行时延控制的方法 Download PDFInfo
- Publication number
- CN105094743A CN105094743A CN201410223298.2A CN201410223298A CN105094743A CN 105094743 A CN105094743 A CN 105094743A CN 201410223298 A CN201410223298 A CN 201410223298A CN 105094743 A CN105094743 A CN 105094743A
- Authority
- CN
- China
- Prior art keywords
- data
- output port
- transmission channel
- transmission
- state
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种先进先出(FIFO)数据缓存器,该FIFO数据缓存器包括:输入端口、输出端口、控制单元、第一缓存单元、第二缓存单元;其中,所述控制单元,用于获取自身当前的输出端口的状态信息、所述第一缓存单元的第一数据存储状态信息及所述第二缓存单元的第二数据存储状态信息;根据获取的输出端口的状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路。本发明还同时公开了一种基于FIFO数据缓存器进行时延控制的方法。
Description
技术领域
本发明涉及集成电路中数据缓存技术,尤其涉及一种先进先出(FirstInputFirstOutput,FIFO)数据缓存器及其进行时延控制的方法。
背景技术
FIFO数据缓存器由于具备先进先出、平衡输入输出处理速率等特性,在数字集成电路设计中被广泛应用。一般,FIFO数据缓存器包括两部分:控制部分和存储部分。考虑到单位比特资源开销,现有技术中,通常大容量的FIFO数据缓存器中的存储部分都是使用同步静态随机存取存储器(SynchronousStaticRandomAccessMemory,SSRAM)作为内部存储单元。
发明人在实现本发明的过程中,发现现有的采用SSRAM作为FIFO数据缓存器的内部存储单元的方案中,至少存在以下缺陷:
根据SSRAM本身的特性,SSRAM在前一时钟脉冲信号发出写使能信号,但是在后一时钟脉冲信号才能写入数据;同样,在前一时钟脉冲周期发出读使能信号,但在后一时钟脉冲周期才能读出数据;因此,SSRAM作为FIFO数据缓存器的内部存储单元将会导致时延的增加,采用这种方法实现的FIFO数据缓存器时延较大,当使用FIFO数据缓存器的系统对时延较敏感时,将导致相应系统性能下降。
发明内容
有鉴于此,本发明实施例期望提供一种FIFO数据缓存器及其进行时延控制的方法,能兼顾大容量的缓存及数据传输路径中的时延。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种FIFO数据缓存器,该FIFO数据缓存器包括输入端口、输出端口,控制单元、第一缓存单元、第二缓存单元;其中,
所述控制单元,用于获取自身当前的输出端口的状态信息、所述第一缓存单元的第一数据存储状态信息、以及所述第二缓存单元的第二数据存储状态信息;根据获得的输出端口的状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路。
上述方案中,所述传输通路包括第一传输通路、第二传输通路、第三传输通路、第四传输通路。
上述方案中,所述FIFO数据缓存器还包括:第一多路选择单元、第二多路选择单元;
所述第一传输通路由输入端口、第二多路选择单元、输出端口依次连接;
所述第二传输通路由输入端口、第一多路选择单元、第二缓存单元、第二多路选择单元、输出端口依次连接;
所述第三传输通路由输入端口、第一缓存单元、第一多路选择单元、第二缓存单元、第二多路选择单元、输出端口依次连接;
所述第四传输通路由输入端口、第一缓存单元、第二多路选择单元、输出端口依次连接。
上述方案中,所述控制单元具体用于:
预设所述第一缓存单元的时延大于所述第二缓存单元的时延;
在传输数据时,若自身当前的输出端口的状态为通路状态,第一数据存储状态为空状态及第二数据存储状态为空状态,则确定通过第一传输通路传输数据;
若自身当前的输出端口的状态为非通路状态,第一数据存储状态为空状态及第二数据存储状态为空状态,则确定通过第二传输通路传输数据;
若自身当前的输出端口状态为非通路状态,第一数据存储状态为非空状态,第二数据存储状态为空状态,则确定通过第三数据传输通路传输数据;
若自身当前的输出端口的状态为通路状态,第一数据存储状态为非空状态,且当前时钟脉冲周期的前一时钟脉冲周期有数据从第三数据传输通路或者第四传输通路到达输出端口,则确定通过第四数据传输通路传输数据。
上述方案中,所述第一多路选择单元及所述第二多路选择单元采用多路选择器实现。
上述方案中,所述第一缓存单元采用RAM或SSRAM实现;所述第二缓存单元采用寄存器实现。
基于上述的FIFO数据缓存器,本发明实施例还提供了一种FIFO数据缓存器进行时延控制的方法,该方法包括:
FIFO数据缓存器获取自身当前的输出端口的状态信息、第一数据存储状态信息及第二数据存储状态信息;根据获得的输出端口状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路。
上述方案中,所述传输通路包括第一传输通路、第二传输通路、第三传输通路、第四传输通路。
上述方案中,所述FIFO数据缓存器包括输入端口、输出端口、控制单元、第一缓存单元、第二缓存单元、第一多路选择单元和第二多路选择单元;
所述第一传输通路由输入端口、第二多路选择单元、输出端口依次连接;
所述第二传输通路由输入端口、第一多路选择单元、第二缓存单元、第二多路选择单元、输出端口依次连接;
所述第三传输通路由输入端口、第一缓存单元、第一多路选择单元、第二缓存单元、第二多路选择单元、输出端口依次连接;
所述第四传输通路由输入端口、第一缓存单元、第二多路选择单元、输出端口依次连接。
上述方案中,所述方法还包括:预设所述第一缓存单元的时延大于所述第二缓存单元的时延;
所述根据获得的输出端口的状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路,包括:
在传输数据时,若自身当前的输出端口的状态为通路状态,第一数据存储状态为空状态及第二数据存储状态为空状态,则确定通过第一传输通路传输数据;
若自身当前的输出端口的状态为非通路状态,第一数据存储状态为空状态及第二数据存储状态为空状态,则确定通过第二传输通路传输数据;
若自身当前的输出端口的状态为非通路状态,第一数据存储状态为非空状态,第二数据存储状态为空状态,则确定通过第三数据传输通路传输数据;
若自身当前的输出端口的状态为通路状态,第一数据存储状态为非空状态,且当前时钟脉冲周期的前一时钟脉冲周期有数据从第三数据传输通路或者第四传输通路到达输出端口,则确定通过第四数据传输通路传输数据。
本发明实施例所提供的FIFO数据缓存器及其进行时延控制的方法,FIFO数据缓存器获取自身当前的输出端口的状态信息、第一数据存储状态信息及第二数据存储状态信息;根据获得的输出端口状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路。如此,本发明实施例能根据FIFO数据缓存器当前的输出端口状态信息、第一数据存储状态信息及第二数据存储状态信息,选择数据传输的不同传输通路,以使所述FIFO数据缓存器能够兼顾大容量的缓存及数据传输路径中的时延,进而能在保证大容量缓存的同时降低数据传输中的时延。
附图说明
图1为本发明实施例FIFO数据缓存器的组成结构示意图;
图2为本发明实施例基于FIFO数据缓存器进行时延控制的方法的实现流程示意图;
图3为本发明实施例场景一中的FIFO数据缓存器的组成结构示意图。
具体实施方式
本发明实施例中,FIFO数据缓存器获取自身当前的输出端口的状态信息、第一数据存储状态信息及第二数据存储状态信息;根据获得的输出端口状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路。
下面结合附图对本发明具体实施方式作进一步说明。
本发明实施例提出了一种FIFO数据缓存器,所述FIFO数据缓存器包括输入端口、输出端口;如图1所示,该FIFO数据缓存器还包括:控制单元100、第一缓存单元101、第二缓存单元102;其中,
所述控制单元100,用于获取自身当前的输出端口的状态信息、所述第一缓存单元101的第一数据存储状态信息、以及所述第二缓存单元102的第二数据存储状态信息;根据获得的输出端口的状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路。
这里,所述输出端口的状态信息包括通路状态或非通路状态;所述第一数据存储状态信息包括空状态、非空状态或近满状态;所述第二数据存储状态信息包括空状态、非空状态。
这里,所述传输通路可以包括四条传输通路:第一传输通路、第二传输通路、第三传输通路以及第四传输通路。
进一步的,结合图1所示,所述FIFO数据缓存器还包括:第一多路选择单元103、第二多路选择单元104;其中,
所述第一多路选择单元103,用于对输入的多路数据进行选择,选择出一路数据输出到所述第二缓存单元中;
所述第二多路选择单元104,与输出端口连接,用于将输入的多路数据选择出一路输出到输出端口。
由于第一多路选择单元103、第二多路选择单元104仅用于对多路数据进行选择,因此,对数据的传输没有时延影响。
下面对本发明实施例FIFO数据缓冲器中各传输通路的连接关系进行具体说明:
所述第一传输通路由输入端口、第二多路选择单元104、输出端口依次连接;
所述第二传输通路由输入端口、第一多路选择单元103、第二缓存单元102、第二多路选择单元104、输出端口依次连接;
所述第三传输通路由输入端口、第一缓存单元101、第一多路选择单元103、第二缓存单元102、第二多路选择单元104、输出端口依次连接;
所述第四传输通路由输入端口、第一缓存单元101、第二多路选择单元104、输出端口依次连接。
这里,所述控制单元100,还用于控制所述第一缓存单元101、所述第二缓存单元102、所述第一多路选择单元103、所述第二多路选择单元104进行协作工作,以完成数据传输过程中各个传输通路的控制;其中,各个功能单元的执行均由时钟脉冲的上升沿或下降沿触发。
这里,预设所述第一缓存单元101的时延大于所述第二缓存单元102的时延,因此,四条传输通路由于传输路径的不同对应不同的时延,在传输数据时,能够兼顾缓存容量及时延,从而使发送端设备和接收端设备之间的数据处理速率达到匹配。
本发明实施例中,基于上述FIFO数据缓存器的组成结构及传输通路的连接关系,所述FIFO数据缓存器的工作原理是这样的:
首先,所述第一缓存单元101、第二缓存单元102的初始状态均设置为空状态;
方式一、在传输数据时,若自身当前的输出端口的状态为通路状态,第一数据存储状态为空状态、以及第二数据存储状态为空状态,则确定通过第一传输通路传输数据。
这里,在时钟脉冲信号的上升沿或下降沿到来时刻,触发所述FIFO数据缓存器从自身输入端口接收发送端设备发送的数据,若此时自身输出端口的状态为通路状态、第一数据存储状态为空状态、以及第二数据存储状态为空状态,则选择通过第一传输通路传输数据,即从输入端口接收到的数据无需缓存,直接通过输出端口传输到输出端设备,这样,可以将数据0时延的传输到输出端设备,适用于对传输时延较为敏感的场景下,能够减少输入端设备与输出端设备之间的数据传输延时,从而提升系统的性能。
方式二、若自身当前的输出端口的状态为非通路状态,第一数据存储状态为空状态、以及第二数据存储状态为空状态,则确定通过第二传输通路传输数据。
这里,在时钟脉冲信号的上升沿或下降沿到来时刻,触发所述FIFO数据缓存器从输入端口接收发送端设备发送的数据,若此时自身输出端口的状态为非通路状态、第一数据存储状态为空状态、以及第二数据存储状态为空状态,则选择通过第二传输通路传输数据,即由于所述第一缓存单元101的时延大于所述第二缓存单元102的时延,因此,从输入端口接收到的数据,会先存入时延相对较小的第二缓存单元102中,当第二缓存单元102存满数据时,从输入端口接收到的数据才会存入第一缓存单元101中;待接收端设备可以接收数据时,所述控制单元100将输出端口状态转变为通路状态,此时首先将第二缓存单元102中的数据传输到输出端口,能够降低数据传输过程中的时延。
需要说明的是,在当前时刻,输出端口的状态为非通路状态,数据首先存入第二缓存单元102中,若在当前时刻的下一时刻,若输出端口状态依然为非通路状态,则将要传输的数据存入第一缓存单元101中,待输出端口状态转变为通路状态时,先将第二缓存单元102中的数据传输到输出端口,以使所述FIFO数据缓存器的设计符合先进先出的设计原则。
方式三、若自身当前的输出端口的状态为非通路状态,第一数据存储状态为非空状态,第二数据存储状态为空状态,则确定通过第三数据传输通路传输数据。
这里,在时钟脉冲信号的上升沿或下降沿到来时刻,触发所述FIFO数据缓存器从输入端口接收发送端设备发送的数据,若此时输出端口的状态为非通路状态,第一数据存储状态为非空状态,则将所述第一缓存单元101中的数据先搬移到所述第二缓存单元102中,待输出端口状态转变为通路状态时,将第二缓存单元102中的数据传输到输出端口。
方式四、若自身当前的输出端口的状态为通路状态,第一数据存储状态为非空状态,且当前时钟脉冲周期的前一时钟脉冲周期有数据从第三数据传输通路或者第四传输通路到达输出端口,则确定通过第四数据传输通路传输数据。
这里,在时钟脉冲信号的上升沿或下降沿到来时刻,触发所述FIFO数据缓存器从输入端口接收发送端设备发送的数据,若此时输出端口的状态为通路状态,第一数据存储状态为非空状态,则将所述第一缓存单元101中的数据直接传输到输出端口,能够降低数据传输过程中的时延。
本发明的上述实施例中,采用时延较小的第二缓存单元102对数据进行缓存,待输出端口状态转变为通路状态时,可以将第二缓存单元102中的数据直接输出到输出端口,是为了改善对输出端口的响应速度,从而降低响应时延。
在本发明的实际应用中,所述第一缓存单元101可采用大容量的RAM或SSRAM实现,根据RAM或SSRAM自身的特性,数据通过RAM或SSRAM进行传输时,最小时延为两个脉冲周期;所述第二缓存单元102可采用寄存器实现,根据D触发器自身的特性,数据通过D触发器进行传输时,最小时延为一个脉冲周期;所述第一多路选择单元103及所述第二多路选择单元104可采用多路选择器实现,由于多路选择器仅用于对多路数据进行选择,因此,对数据的传输没有时延影响。基于此,在实际应用中,若再考虑到数据在所述FIFO数据缓存器中的等待时间,则所述第一传输通路对应的数据传输时延为0个脉冲周期,所述第二传输通路对应的数据传输时延为至少一个脉冲周期,第三传输通路对应的数据传输时延为至少三个脉冲周期,第四数据传输通路对应的数据传输时延为至少两个脉冲周期。
基于相同的技术构思,本发明实施例还提供了一种基于FIFO数据缓存器进行时延控制的方法,由于该方法解决问题的原理与装置相似,因此,方法的实施过程及实施原理均可以参见前述装置的实施过程及实施原理描述,重复之处不再赘述。
如图2所示,本发明实施例提供的基于FIFO数据缓存器进行时延控制的方法,该方法包括:
步骤S201:FIFO数据缓存器获取自身当前的输出端口状态信息、第一数据存储状态信息及第二数据存储状态信息。
步骤S202:根据获取的输出端口状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路。
这里,所述传输通路包括第一传输通路、第二传输通路、第三传输通路、第四传输通路。
当所述FIFO数据缓存器包括输入端口、输出端口、控制单元、第一缓存单元、第二缓存单元、第一多路选择单元和第二多路选择单元时,所述第一传输通路由输入端口、第二多路选择单元、输出端口依次连接;所述第二传输通路由输入端口、第一多路选择单元、第二缓存单元、第二多路选择单元、输出端口依次连接;所述第三传输通路由输入端口、第一缓存单元、第一多路选择单元、第二缓存单元、第二多路选择单元、输出端口依次连接;所述第四传输通路由输入端口、第一缓存单元、第二多路选择单元、输出端口依次连接。
进一步地,预设所述第一缓存单元的时延大于所述第二缓存单元的时延;
相应的,根据获取的输出端口状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路的具体实施方式如下:
在传输数据时,若自身当前的输出端口的状态为通路状态,第一数据存储状态为空状态以及第二数据存储状态为空状态,则确定通过第一传输通路传输数据;
若自身当前的输出端口的状态为非通路状态,第一数据存储状态为空状态以及第二数据存储状态均为空状态,则确定通过第二传输通路传输数据;
若自身当前的输出端口的状态为非通路状态,第一数据存储状态为非空状态及第二数据存储状态为空状态,则确定通过第三数据传输通路传输数据;
若自身当前的输出端口的状态为通路状态,第一数据存储状态为非空状态,且当前时钟脉冲周期的前一时钟脉冲周期有数据从第三数据传输通路或者第四传输通路到达输出端口,则确定通过第四数据传输通路传输数据。
本发明实施例中,FIFO数据缓存器获取自身当前的输出端口的状态信息、第一数据存储状态信息及第二数据存储状态信息;根据获得的输出端口状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路。如此,本发明实施例能根据FIFO数据缓存器当前的输出端口状态信息、第一数据存储状态信息及第二数据存储状态信息,选择数据传输的不同传输通路,以使所述FIFO数据缓存器能够兼顾大容量的缓存及数据传输路径中的时延,进而能在保证大容量缓存的同时降低数据传输中的时延。
为了更清楚地对本发明实施例进行说明,下面以场景一为例,对本发明实施例中的FIFO数据缓存器进行时延控制的流程进行详细描述,该场景一中,根据发送端设备、接收端设备的数据处理和流量情况评估,至少需要一个深度为1024、位宽为64的先进先出的数据缓存设备对发送端设备发送的数据进行缓存,才能使发送端设备和接收端设备之间达到处理速率匹配,如图3所示,FIFO数据缓存器包括:一个SSRAM、一个暂存器tempreg、两个多路选择器MUX-0和MUX-1,一个控制器Ctrl;其中,
SSRAM、暂存器tempreg、两个多路选择器MUX-0和MUX-1构成FIFO数据缓存器的数据通路,控制器Ctrl作为FIFO数据缓存器的控制通路。
SSRAM规格为1024×64,即深度为1024、位宽为64;
MUX-0为一个64bit的三选一多路选择器,具体选择哪一路由控制器Ctrl的sel0控制信号进行控制;
tempreg是一个64bit带使能端的D触发器,使能控制信号为tempreg_we,tempreg仅能缓存一个64bit的数据。
MUX-1为一个64bit的3选1多路选择器,具体选择那一路由控制器Ctrl的sel1控制信号进行控制;
SSRAM、MUX-0、tempreg、MUX-1、输入端口、输出端口连接关系如图3所示,输入数据从输入端口到输出端口,一共有四条传输通路:
1)第一传输通路:输入端口→MUX-1→输出端口;
2)第二传输通路:输入端口→MUX-0→tempreg→MUX-1→输出端口;
3)第三传输通路:输入端口→cFIFO→MUX-0→tempreg→MUX-1→输出端口;
4)第四传输通路:输入端口→cFIFO→MUX-1→输出端口;
其中,第一传输通路对应时延为零,第二传输通路对应时延为至少一个脉冲周期,第三传输通路对应的时延为至少三个脉冲周期,第四传输通路对应的时延为至少两个脉冲周期。
控制器Ctrl作为FIFO数据缓存器的控制器,完成数据传输通路的控制、输入数据的接收握手控制、输出数据的发送握手控制;其中,控制器Ctrl的输入信息包括:
1)来自发送端设备的输入数据有效指示信号i_din_valid;
2)来自接收端设备的可接收指示信号i_dout_ready;
3)来自SSRAM的空标志信号cfifo_empty;
4)来自SSRAM的近满标志信号cfifo_aful;
5)来自tempreg的是否暂存一个数据的标志寄存器信号tempreg_valid。控制器Ctrl的输出信息包括:
1)发送给发送端设备的输入数据可接受状态指示信号o_din_ready;
2)发送给接收端设备的输出数据有效指示信号o_dout_valid;
3)发送给SSRAM的写使能信号cfifo_we和读使能信号cfifo_re;
4)发送给MUX-0的选择信号sel0;
5)发送给tempreg的更新使能信号tmpreg_we;
6)发送给MUX-1的选择信号sel1。
本发明实际应用中,基于上述FIFO数据缓存器的组成结构及传输通路的连接关系,所述FIFO数据缓存器的工作原理是这样的:
方式一、在时钟脉冲信号的上升沿或下降沿到来时刻,触发所述FIFO数据缓存器从输入端口接收发送端设备发送的数据,若根据i_dout_ready信号确定输出端设备可以接收数据,则控制输出端口的状态为通路状态;并且根据cfifo_empty信号确定SSRAM的第一数据存储状态为空状态、以及根据tempreg_valid信号确定D触发器的第二数据存储状态为空状态,则确定通过第一传输通路传输数据,即从输入端口接收到的数据无需缓存,直接通过输出端口传输到输出端设备,这样,可以将数据零时延的传输到输出端设备,适用于对传输时延较为敏感的场景下,能够提高输入端设备与输出端设备之间的数据传输速度,从而提升系统的性能。
方式二、在时钟脉冲信号的上升沿或下降沿到来时刻,触发所述FIFO数据缓存器从输入端口接收发送端设备发送的数据,若根据i_dout_ready信号确定输出端设备不可以接收数据,则控制输出端口状态为非通路状态,并且根据cfifo_empty信号确定SSRAM的第一数据存储状态为空状态、以及根据tempreg_valid信号确定D触发器的第二数据存储状态为空状态,则确定通过第二传输通路传输数据,即先将接收到的数据缓存到D触发器中,在根据i_dout_ready信号确定输出端设备可以接收数据时,将输出端口状态转变为通路状态时,此时D触发器中第二缓存的数据将经过一个脉冲周期的延时传输到输出端口,从而提高了FIFO数据缓存器对输出端口的响应速度,减少了响应时延。
方式三、在时钟脉冲信号的上升沿或下降沿到来时刻,触发所述FIFO数据缓存器从输入端口接收发送端设备发送的数据,若根据i_dout_ready信号确定输出端设备不可以接收数据,则控制输出端口状态为非通路状态,且根据cfifo_aful信号确定SSRAM的第一数据存储状态为非空状态、以及根据tempreg_valid信号确定第二数据存储状态为空状态,则确定通过第三传输通路传输数据,即需要将SSRAM中的数据搬移到D触发器中,以便在输出端口状态转变为通路状态时,直接将D触发器中暂存的数据经过一个脉冲周期的延时传输到输出端口,从而提高了所述FIFO数据缓存器对输出端口的响应速度,对应的时延为至少三个脉冲周期。
方式四、在时钟脉冲信号的上升沿或下降沿到来时刻,触发所述FIFO数据缓存器从输入端口接收发送端设备发送的数据,若根据i_dout_ready信号确定输出端设备可以接收数据,则控制输出端口状态为通路状态,且根据cfifo_aful信号确定SSRAM的第一数据存储状态为非空状态,且当前时钟脉冲周期的前一时钟脉冲周期有数据从第三数据传输通路或者第四传输通路到达输出端口,则确定通过第四传输通路传输数据,即无需将SSRAM中的数据存入D触发器中,而是直接将SSRAM中的数据传输到输出端口,对应的时延为至少两个脉冲周期。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种先进先出FIFO数据缓存器,所述FIFO数据缓存器包括输入端口、输出端口,其特征在于,所述FIFO数据缓存器还包括:控制单元、第一缓存单元、第二缓存单元;其中,
所述控制单元,用于获取自身当前的输出端口的状态信息、所述第一缓存单元的第一数据存储状态信息、以及所述第二缓存单元的第二数据存储状态信息;根据获得的输出端口的状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路。
2.根据权利要求1所述的FIFO数据缓存器,其特征在于,所述传输通路包括第一传输通路、第二传输通路、第三传输通路、第四传输通路。
3.根据权利要求2所述的FIFO数据缓存器,其特征在于,所述FIFO数据缓存器还包括:第一多路选择单元、第二多路选择单元;
所述第一传输通路由输入端口、第二多路选择单元、输出端口依次连接;
所述第二传输通路由输入端口、第一多路选择单元、第二缓存单元、第二多路选择单元、输出端口依次连接;
所述第三传输通路由输入端口、第一缓存单元、第一多路选择单元、第二缓存单元、第二多路选择单元、输出端口依次连接;
所述第四传输通路由输入端口、第一缓存单元、第二多路选择单元、输出端口依次连接。
4.根据权利要求2或3所述的FIFO数据缓存器,其特征在于,所述控制单元具体用于:
预设所述第一缓存单元的时延大于所述第二缓存单元的时延;
在传输数据时,若自身当前的输出端口的状态为通路状态,第一数据存储状态为空状态及第二数据存储状态为空状态,则确定通过第一传输通路传输数据;
若自身当前的输出端口的状态为非通路状态,第一数据存储状态为空状态及第二数据存储状态为空状态,则确定通过第二传输通路传输数据;
若自身当前的输出端口状态为非通路状态,第一数据存储状态为非空状态,第二数据存储状态为空状态,则确定通过第三数据传输通路传输数据;
若自身当前的输出端口的状态为通路状态,第一数据存储状态为非空状态,且当前时钟脉冲周期的前一时钟脉冲周期有数据从第三数据传输通路或者第四传输通路到达输出端口,则确定通过第四数据传输通路传输数据。
5.根据权利要求3所述的FIFO数据缓存器,其特征在于,所述第一多路选择单元及所述第二多路选择单元采用多路选择器实现。
6.根据权利要求1所述的FIFO数据缓存器,其特征在于,所述第一缓存单元采用RAM或SSRAM实现;所述第二缓存单元采用寄存器实现。
7.一种FIFO数据缓存器进行时延控制的方法,其特征在于,所述方法包括:
FIFO数据缓存器获取自身当前的输出端口的状态信息、第一数据存储状态信息及第二数据存储状态信息;根据获得的输出端口状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路。
8.根据权利要求7所述的方法,其特征在于,所述传输通路包括第一传输通路、第二传输通路、第三传输通路、第四传输通路。
9.根据权利要求8所述的方法,其特征在于,所述FIFO数据缓存器包括输入端口、输出端口、控制单元、第一缓存单元、第二缓存单元、第一多路选择单元和第二多路选择单元;
所述第一传输通路由输入端口、第二多路选择单元、输出端口依次连接;
所述第二传输通路由输入端口、第一多路选择单元、第二缓存单元、第二多路选择单元、输出端口依次连接;
所述第三传输通路由输入端口、第一缓存单元、第一多路选择单元、第二缓存单元、第二多路选择单元、输出端口依次连接;
所述第四传输通路由输入端口、第一缓存单元、第二多路选择单元、输出端口依次连接。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:预设所述第一缓存单元的时延大于所述第二缓存单元的时延;
所述根据获得的输出端口的状态信息、第一数据存储状态信息及第二数据存储状态信息,确定数据的传输通路,包括:
在传输数据时,若自身当前的输出端口的状态为通路状态,第一数据存储状态为空状态及第二数据存储状态为空状态,则确定通过第一传输通路传输数据;
若自身当前的输出端口的状态为非通路状态,第一数据存储状态为空状态及第二数据存储状态为空状态,则确定通过第二传输通路传输数据;
若自身当前的输出端口的状态为非通路状态,第一数据存储状态为非空状态,第二数据存储状态为空状态,则确定通过第三数据传输通路传输数据;
若自身当前的输出端口的状态为通路状态,第一数据存储状态为非空状态,且当前时钟脉冲周期的前一时钟脉冲周期有数据从第三数据传输通路或者第四传输通路到达输出端口,则确定通过第四数据传输通路传输数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410223298.2A CN105094743A (zh) | 2014-05-23 | 2014-05-23 | 一种先进先出数据缓存器及其进行时延控制的方法 |
PCT/CN2014/088772 WO2015176475A1 (zh) | 2014-05-23 | 2014-10-16 | Fifo数据缓存器及其进行时延控制的方法、计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410223298.2A CN105094743A (zh) | 2014-05-23 | 2014-05-23 | 一种先进先出数据缓存器及其进行时延控制的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105094743A true CN105094743A (zh) | 2015-11-25 |
Family
ID=54553347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410223298.2A Withdrawn CN105094743A (zh) | 2014-05-23 | 2014-05-23 | 一种先进先出数据缓存器及其进行时延控制的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105094743A (zh) |
WO (1) | WO2015176475A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017201727A1 (zh) * | 2016-05-27 | 2017-11-30 | 华为技术有限公司 | 一种异步fifo电路及时延确定方法 |
CN108958700A (zh) * | 2017-05-22 | 2018-12-07 | 深圳市中兴微电子技术有限公司 | 一种先进先出数据缓存器及缓存数据的方法 |
CN109388370A (zh) * | 2017-08-03 | 2019-02-26 | 深圳市中兴微电子技术有限公司 | 一种实现先入先出队列的方法及装置 |
CN109918043A (zh) * | 2019-03-04 | 2019-06-21 | 上海熠知电子科技有限公司 | 一种基于虚拟通道的运算单元共享方法和系统 |
CN111400205A (zh) * | 2020-02-29 | 2020-07-10 | 华南理工大学 | 一种先进先出地址轮询缓存读写方法、系统及装置 |
CN111699468A (zh) * | 2019-06-21 | 2020-09-22 | 深圳市大疆创新科技有限公司 | 先入先出存储器的数据存储方法、设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688074B (zh) * | 2021-10-26 | 2022-02-01 | 浙江芯昇电子技术有限公司 | 先进先出数据处理装置及数据处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0109898B1 (fr) * | 1982-11-15 | 1987-09-30 | André Helen | Unité de stockage temporaire de données organisée en file d'attente |
CN101308697A (zh) * | 2008-07-10 | 2008-11-19 | 哈尔滨工业大学 | 基于sdram的大容量fifo突发缓存器及数据存储方法 |
US20110208926A1 (en) * | 2002-03-05 | 2011-08-25 | Juniper Networks, Inc. | Low latency request dispatcher |
CN103119548A (zh) * | 2010-09-23 | 2013-05-22 | 马维尔以色列(M.I.S.L.)有限公司 | 低等待时间先进先出(fifo)缓存 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101299647B (zh) * | 2008-06-27 | 2011-05-11 | 中兴通讯股份有限公司 | 一种实现sdh业务无损切换的装置和方法 |
CN101566941B (zh) * | 2009-06-03 | 2013-08-07 | 北京中星微电子有限公司 | 一种基于静态存储器的fifo存储单元 |
CN102497514B (zh) * | 2011-12-15 | 2013-09-04 | 中国科学院自动化研究所 | 一种三通道视频转发设备和转发方法 |
-
2014
- 2014-05-23 CN CN201410223298.2A patent/CN105094743A/zh not_active Withdrawn
- 2014-10-16 WO PCT/CN2014/088772 patent/WO2015176475A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0109898B1 (fr) * | 1982-11-15 | 1987-09-30 | André Helen | Unité de stockage temporaire de données organisée en file d'attente |
US20110208926A1 (en) * | 2002-03-05 | 2011-08-25 | Juniper Networks, Inc. | Low latency request dispatcher |
CN101308697A (zh) * | 2008-07-10 | 2008-11-19 | 哈尔滨工业大学 | 基于sdram的大容量fifo突发缓存器及数据存储方法 |
CN103119548A (zh) * | 2010-09-23 | 2013-05-22 | 马维尔以色列(M.I.S.L.)有限公司 | 低等待时间先进先出(fifo)缓存 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017201727A1 (zh) * | 2016-05-27 | 2017-11-30 | 华为技术有限公司 | 一种异步fifo电路及时延确定方法 |
CN108958700A (zh) * | 2017-05-22 | 2018-12-07 | 深圳市中兴微电子技术有限公司 | 一种先进先出数据缓存器及缓存数据的方法 |
CN109388370A (zh) * | 2017-08-03 | 2019-02-26 | 深圳市中兴微电子技术有限公司 | 一种实现先入先出队列的方法及装置 |
CN109918043A (zh) * | 2019-03-04 | 2019-06-21 | 上海熠知电子科技有限公司 | 一种基于虚拟通道的运算单元共享方法和系统 |
CN109918043B (zh) * | 2019-03-04 | 2020-12-08 | 上海熠知电子科技有限公司 | 一种基于虚拟通道的运算单元共享方法和系统 |
CN111699468A (zh) * | 2019-06-21 | 2020-09-22 | 深圳市大疆创新科技有限公司 | 先入先出存储器的数据存储方法、设备及存储介质 |
CN111400205A (zh) * | 2020-02-29 | 2020-07-10 | 华南理工大学 | 一种先进先出地址轮询缓存读写方法、系统及装置 |
CN111400205B (zh) * | 2020-02-29 | 2022-05-24 | 华南理工大学 | 一种先进先出地址轮询缓存读写方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2015176475A1 (zh) | 2015-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105094743A (zh) | 一种先进先出数据缓存器及其进行时延控制的方法 | |
US8867573B2 (en) | Transferring data between asynchronous clock domains | |
US9459829B2 (en) | Low latency first-in-first-out (FIFO) buffer | |
US6757348B1 (en) | High-speed coordinated multi-channel elastic buffer | |
US8155136B2 (en) | Single network interface circuit with multiple-ports and method thereof | |
JP4681046B2 (ja) | 待ち時間に無感覚なfifoシグナリングプロトコル | |
EP2615753A2 (en) | Time synchronization system | |
CN105893291B (zh) | 一种异步接收串行数据的方法及装置 | |
US20090323728A1 (en) | Asynchronous data fifo that provides uninterrupted data flow | |
CN103746938A (zh) | 一种发送数据包的方法及装置 | |
WO2016058344A1 (zh) | 一种确定链路延时的方法、装置、通信设备和存储介质 | |
CN105446699A (zh) | 数据帧队列管理方法 | |
CN102789442A (zh) | 校正移动产业处理器接口中信号偏移方法及相关传输系统 | |
US10002090B2 (en) | Method for improving the performance of synchronous serial interfaces | |
FI122670B (fi) | Menetelmä ja järjestely datakehysten välisen aikajakson tuottamiseksi | |
CN101300773A (zh) | 数据接口及寻求同步的方法 | |
US10621122B1 (en) | Systems and methods for transferring data with a dual-line first-in-first-out (FIFO) memory array | |
CN101702147B (zh) | 数据传输方法和高速数据传输接口装置 | |
US20160098073A1 (en) | Clock-free dual-data-rate link with built-in flow control | |
CN103888211B (zh) | 一种交叉芯片间进行数据传输的方法及装置 | |
US10680963B2 (en) | Circuit and method for credit-based flow control | |
CN109995670A (zh) | 具有减少延时的网络设备 | |
CN106407140B (zh) | 数据处理方法及装置 | |
CN113986792A (zh) | 一种数据位宽转换方法及通信设备 | |
US9069906B2 (en) | Method for sharing a resource and circuit making use of same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20151125 |