CN104778025B - 基于随机访问存储器的先入先出存储器的电路结构 - Google Patents

基于随机访问存储器的先入先出存储器的电路结构 Download PDF

Info

Publication number
CN104778025B
CN104778025B CN201510179787.7A CN201510179787A CN104778025B CN 104778025 B CN104778025 B CN 104778025B CN 201510179787 A CN201510179787 A CN 201510179787A CN 104778025 B CN104778025 B CN 104778025B
Authority
CN
China
Prior art keywords
write
fifo
data
read
ram memory
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
Application number
CN201510179787.7A
Other languages
English (en)
Other versions
CN104778025A (zh
Inventor
赵元
刘强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201510179787.7A priority Critical patent/CN104778025B/zh
Publication of CN104778025A publication Critical patent/CN104778025A/zh
Application granted granted Critical
Publication of CN104778025B publication Critical patent/CN104778025B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Communication Control (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供一种基于随机访问存储器的先入先出存储器的电路结构,涉及芯片设计领域,构建一个多输入单输出的FIFO结构体,采用至少3个普通单一访问接口RAM存储体构建一个多访问接口RAM存储体,设定可配置的排序模式,设定独立的读写FIFO指针,根据写入时对应地址的向量标记位已经有标记实现FIFO上溢出错误标记,根据读出时对应地址的向量标记位没有标记实现输出FIFO下溢出错误标记。采用新型的FIFO结构,可以直接实现多路报文并行写入FIFO,然后根据设定的模式自动排序,串行从FIFO输出,自动实现完成并行存储与串行调度两种功能。

Description

基于随机访问存储器的先入先出存储器的电路结构
技术领域
本发明涉及芯片设计领域,具体涉及一种多节点网络之中网络控制协议芯片的电路实现过程中数据通路的并行调度的快速实现方法。
背景技术
随着服务器应用领域的不断发展,高端服务器的应用需求已经进入了一个重要阶段。复杂的体系结构实现支持高端服务器系统实现高性能指标、高安全性、高可用性、高可靠性等特点。这就需要网络控制类芯片控制多路处理器系统,使系统内部报文传输达到高效可靠、安全稳定。而对于该类的控制芯片的设计来说,多路高速报文的高效调度是非常有必要的。这种情况下的多路高速报文的调度,在一般情况下需要增加额外的设计模块,首先把各路报文都缓存下来,然后按照调度规定的顺序依次将多路报文中的某一个调度出来,送入协议处理器进行处理。因此过程中需要经历写入缓存,竞争排序,读出缓存多个环节,并且在高速报文输入接口和协议处理模块之间,需要额外增加调度模块,进行并行到串行转换和排序的过程。使得整个设计过程繁冗复杂,设计结构环节增加,时序与功能复杂化,部分情况下延时也会增多,从而使整个系统的电路实现过程复杂化,处理环节增多,时延增加,后端实现的难度增大,整个芯片设计的复杂度成倍增加。对于电路的设计者来说,这些并不是期望看到的。
发明内容
为了解决该问题,本文提出了一种基于随机访问存储器的先入先出存储器的电路结构。
采用构造的多输入单输出多输入单输出,同时具有缓存和自动排序调度功能的新型先入先出存储器(FIFO)的电路结构,可以实现多路并行输入数据的缓存与自动调度,可以免于额外新增独立调度功能的模块,直接可以通过此FIFO实现输入数据与数据处理模块的无缝连接,减少数据调度环节的造成的数据延迟,加速整个处理流程,优化电路设计资源,简化电路结构,减轻芯片后端设计的复杂度,从整体上降低整个芯片系统设计复杂度。
本发明考虑到高速协议处理器系统设计中,鉴于多路不同类型的协议报文同时传输调度的需要,使用通常意义上的FIFO,难以直接完成多路协议报文的并行到串行的转换功能,需要新增逻辑专门完成报文调度排序功能,采用新型的FIFO结构,可以直接实现多路报文并行写入FIFO,然后根据设定的模式自动排序,串行从FIFO输出,自动实现完成并行存储与串行调度两种功能。
本发明的技术方案是包括:(1)构建一个多输入单输出的fifo结构体,采用系统时钟作为fifo结构体输入输出接口时钟,构建读写指针,同时控制多访问接口RAM存储体的同时或者不同时的读写。(2)采用至少3个普通单一访问接口RAM存储体构建一个多访问接口RAM存储体,保证在写入和读出同时发生时,总是对应于每一个读写访问,都有一个RAM存储体的接口与之对应。保证每一个数据都能写入到一个RAM存储体中,每一个读出,都能在包含需要读出的数据的RAM存储体中读出数据,对于每一个单一RAM存储体单元每一个地址增加对应的写入读出标记位,在进行读出访问的时候知道应该从哪一个RAM存储体中获得有效数据,从而实现支持多个写入和单一读出的同时进行。(3)设定可配置的排序模式,当多个写入数据同时到达时,可以根据配置模式灵活选择不同数据在fifo中的先后顺序,将数据按照配置模式的排序方式分配写入RAM存储体的地址,FIFO输出端根据输出指针给定的地址直接顺序读出RAM存储体中的数据。(4)设定独立的读写FIFO指针,写指针在每个时钟单元的步进数与单位时钟单元写入的数据包的个数相同,根据写入数据的数量发生变化。根据读写指针的差值来决定空满信号的指示情况。(5)根据写入时对应地址的向量标记位已经有标记实现FIFO上溢出错误标记,根据读出时对应地址的向量标记位没有标记实现输出FIFO下溢出错误标记。
构建一个多输入单输出FIFO结构体,此结构体可以同时接收两个或以上的数据包同时写入,并按照预先设定的模式排序保存在fifo内的RAM结构体中。写入指针根据接收写入的数据包的个数,计数增加数据包的个数。
写入的数据包写入RAM存储体的时候,如果有读出请求同时发生,写入的数据包将不会写入有效读出的存储体中,而是写入另外的没有正在被访问的存储体中。
多个写入请求同时发生的时候,多个写入请求分别写入不同的也没用被读请求访问的存储体中,写入的地址也是不同的。在写入的时候,同时对为该RAM存储体构建的数据有效标记位置1,保证发起数据读请求的时候,可以识别哪一个存储体中存储了对应地址指针的有效数据。
在读出RAM存储体中的有效数据时,要根据读指针首先获得对应该地址的构建的各个RAM存储体的标记位的数据有效情况,根据此信息对存在有效数据的RAM发起读请求读出数据,将数据从FIFO输出,同时清除此标记位,使此地址的数据无效,可以存储新的数据信息。
对于读写指针的数值进行监控,当读指针与写指针相同时,指示fifo为空,此时不能从fifo中读出有效数据。当读指针只比写指针大一个单位步进最大值的时候,指示fifo为满,不能再有效写入数据。
对于FIFO中上下溢出错误进行监控输出和标记,不需要进行指针计算比较即可快速判断是否有上下溢出情况。
与传统FIFO相比,专利改进在于构造了多输入单输出的新型FIFO结构,采用新构造的不少于3个访问接口的新型RAM结构,配合多步进地址计数器,能够准确表示FIFO空满状态,并能够准确输出排序在最前的报文数据,以及按照模式指定的顺序排序存储最后写入的数据。保护一种新型多输入单输出,同时具有缓存和自动排序调度功能的新型先入先出存储器(FIFO)的电路结构。
本发明的有益效果是:价值在于使用此种新型FIFO可以实现多路并行输入数据的缓存与自动调度,可以免于额外新增独立调度功能的模块,直接可以通过此FIFO实现输入数据与数据处理模块的无缝连接,减少数据调度环节的造成的数据延迟,加速整个处理流程,优化电路设计资源,简化电路结构,减轻芯片后端设计的复杂度,从整体上降低整个芯片系统设计复杂度。
附图说明
图1是以构建的二输入一输出结构的FIFO电路结构为例说明多输入单输出FIFO的工作方式示意图。
具体实施方式
下面参照附图,对本发明的内容的实施方式进行一个简单的说明。
以目前设计的高速网络协议芯片为例,在设计中由于有多路报文数据通过接口模块并行接收后,同时进入协议处理模块,采用多路输入单路输出FIFO进行接收排序,然后顺序输出到协议处理模块。这里以2路输入,1路输出的FIFO为例,对此类FIFO设计的电路结构与运行方式进行说明:当两路报文同时到达FIFO并且FIFO读出数据信号同时使能时,FIFO同时接收两路报文数据,首先根据写指针获取当前RAM中可写入地址信息,即没有存储数据的RAM地址,按照排序模式,对两路报文数据分别分配写入地址,和写入地址+1给两路报文数据作为其写入FIFO中RAM的地址,然后分别读取两个对应地址的向量标记位,与此同时,针对FIFO读出数据的使能信号,根据读指针获取当前待读出数据的地址,然后根据此地址获取对应地址的向量标记位。对于两输入一输出FIFO一共有三块RAM体,每一块的大小完全相同,向量标记位一共3位,分别对应RAM1,RAM2,RAM3。根据读出地址对应向量中的标记位可以识别出在3个RAM体中的哪一个中存在有效的读出数据,将对应有效数据的RAM体发起读使能请求,并且在读出数据的同时,清空此地址对应向量的数据有效标记。与此同时,另外两个写入报文数据分别写使能另外两个RAM体,根据分配给其的地址,分别写入这两个RAM体不同的地址位中,并将对应地址位的向量位中对应的RAM体位置标记为1,便于上面描述的读出FIFO的时候使用此向量标记位。当写入和读出不是同时发生的时候,读出仍然按照上面的描述进行,写入可以任意选择RAM体进行写入:比如两个写入数据同时到达,分别写入1,2RAM体;当只有一个写入数据到达,则写入1RAM体。在写入之后同样需要按照上面的描述标记向量中存有有效数据的RAM体的标记位为1。当读指针与写指针相同时,指示fifo为空,此时不能从fifo中读出有效数据。当读指针只比写指针大一个单位步进最大值的时候,指示fifo为满,不能再有效写入数据。当写入一个地址时,发现此地址对应的3位向量不全为空时,表明有上溢出,输出上溢出错误标记到fifo外,当读出向量3位都为空时,表面有下溢出,输出下溢出错误标记到fifo外。如上操作,以2输入1输出fifo的构建为例,描述了多输入单输出带排序功能的fifo的电路实现方法。对于超过2个输入端的fifo的构建,只需要根据输入端口数,增加RAM体个数和扩展RAM体的向量标记位的位数就可以实现,例如3输入1输出fifo需要4个同样大小的RAM体,向量位数为4;4输入1输出fifo需要5个同样大小的RAM体,向量位数为5。操作方式与上面描述的2输入1输出fifo相类似。

Claims (7)

1.一种基于随机访问存储器的先入先出存储器的电路结构,其特征在于包括:
(1)构建一个多输入单输出的FIFO结构体,采用系统时钟作为FIFO结构体输入输出接口时钟,构建读写指针,同时控制多访问接口RAM存储体的同时或者不同时的读写;
(2)采用至少3个普通单一访问接口RAM存储体构建一个多访问接口RAM存储体,保证在写入和读出同时发生时,总是对应于每一个读写访问,都有一个RAM存储体的接口与之对应;保证每一个数据都能写入到一个RAM存储体中,每一个读出,都能在包含需要读出的数据的RAM存储体中读出数据,对于每一个单一RAM存储体单元每一个地址增加对应的写入读出标记位,在进行读出访问的时候知道应该从哪一个RAM存储体中获得有效数据,从而实现支持多个写入和单一读出的同时进行;
(3)设定可配置的排序模式,当多个写入数据同时到达时,根据配置模式灵活选择不同数据在FIFO中的先后顺序,将数据按照配置模式的排序方式分配写入RAM存储体的地址,FIFO输出端根据输出指针给定的地址直接顺序读出RAM存储体中的数据;
(4)设定独立的读写FIFO指针,写指针在每个时钟单元的步进数与单位时钟单元写入的数据包的个数相同,根据写入数据的数量发生变化;根据读写指针的差值来决定空满信号的指示情况;
(5)根据写入时对应地址的向量标记位已经有标记实现FIFO上溢出错误标记,根据读出时对应地址的向量标记位没有标记实现输出FIFO下溢出错误标记。
2.根据权利要求1所述的电路结构,其特征在于,构建一个多输入单输出FIFO结构体,此结构体同时接收两个或以上的数据包同时写入,并按照预先设定的模式排序保存在FIFO内的RAM结构体中;写入指针根据接收写入的数据包的个数,计数增加数据包的个数。
3.根据权利要求2所述的电路结构,其特征在于,写入的数据包写入RAM存储体的时候,如果有读出请求同时发生,写入的数据包将不会写入有效读出的存储体中,而是写入另外的没有正在被访问的存储体中。
4.根据权利要求3所述的电路结构,其特征在于,多个写入请求同时发生的时候,多个写入请求分别写入不同的也没用被读请求访问的存储体中,写入的地址也是不同的;在写入的时候,同时对为该RAM存储体构建的数据有效标记位置1,保证发起数据读请求的时候,识别哪一个存储体中存储了对应地址指针的有效数据。
5.根据权利要求4所述的电路结构,其特征在于,在读出RAM存储体中的有效数据时,要根据读指针首先获得对应该地址的构建的各个RAM存储体的标记位的数据有效情况,根据此信息对存在有效数据的RAM发起读请求读出数据,将数据从FIFO输出,同时清除此标记位,使此地址的数据无效,可以存储新的数据信息。
6.根据权利要求1所述的电路结构,其特征在于,对于读写指针的数值进行监控,当读指针与写指针相同时,指示fifo为空,此时不能从fifo中读出有效数据;当读指针只比写指针大一个单位步进最大值的时候,指示fifo为满,不能再有效写入数据。
7.根据权利要求1所述的电路结构,其特征在于,对于FIFO中上下溢出错误进行监控输出和标记,不需要进行指针计算比较即可快速判断是否有上下溢出情况。
CN201510179787.7A 2015-04-16 2015-04-16 基于随机访问存储器的先入先出存储器的电路结构 Active CN104778025B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510179787.7A CN104778025B (zh) 2015-04-16 2015-04-16 基于随机访问存储器的先入先出存储器的电路结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510179787.7A CN104778025B (zh) 2015-04-16 2015-04-16 基于随机访问存储器的先入先出存储器的电路结构

Publications (2)

Publication Number Publication Date
CN104778025A CN104778025A (zh) 2015-07-15
CN104778025B true CN104778025B (zh) 2017-12-01

Family

ID=53619516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510179787.7A Active CN104778025B (zh) 2015-04-16 2015-04-16 基于随机访问存储器的先入先出存储器的电路结构

Country Status (1)

Country Link
CN (1) CN104778025B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718389A (zh) * 2016-01-27 2016-06-29 中国电子科技集团公司第五十八研究所 一种适用于可编程接口的输入数据装箱方法
CN108268238A (zh) * 2018-01-24 2018-07-10 深圳市风云实业有限公司 数据处理方法、装置、计算机存储介质及fifo设备
CN109358835B (zh) * 2018-10-25 2021-01-15 天津市滨海新区信息技术创新中心 Fifo存储器及其数据传输方法
CN110134630B (zh) * 2019-05-27 2023-02-10 西安电子工程研究所 一种多输入单输出的发送缓存控制器设计方法
CN113126913A (zh) * 2021-03-26 2021-07-16 井芯微电子技术(天津)有限公司 一种基于并行ram的数据阵列管理方法、装置和存储设备
CN115481079B (zh) * 2021-06-15 2023-07-07 珠海一微半导体股份有限公司 一种数据调度系统、可重构处理器及数据调度方法
CN113760795B (zh) * 2021-08-30 2024-04-26 浪潮电子信息产业股份有限公司 一种异步fifo存储器读写控制方法、装置及设备
CN114647516B (zh) * 2022-05-20 2022-08-23 沐曦集成电路(上海)有限公司 基于多输入单输出的fifo结构的gpu数据处理系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101889250A (zh) * 2008-03-31 2010-11-17 高通股份有限公司 用于使编码器与复用器同步的方法和装置
CN101909181A (zh) * 2009-05-08 2010-12-08 晨星软件研发(深圳)有限公司 数字视频信号解调装置及其方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1897310B1 (en) * 2005-06-30 2010-02-17 Nokia Corporation Multi-stream fft for mimo-ofdm systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101889250A (zh) * 2008-03-31 2010-11-17 高通股份有限公司 用于使编码器与复用器同步的方法和装置
CN101909181A (zh) * 2009-05-08 2010-12-08 晨星软件研发(深圳)有限公司 数字视频信号解调装置及其方法

Also Published As

Publication number Publication date
CN104778025A (zh) 2015-07-15

Similar Documents

Publication Publication Date Title
CN104778025B (zh) 基于随机访问存储器的先入先出存储器的电路结构
US11893424B2 (en) Training a neural network using a non-homogenous set of reconfigurable processors
CN101252536B (zh) 路由器多队列数据包缓存管理与输出队列调度系统
CN103348640B (zh) 中继装置
US9110714B2 (en) Systems and methods for multi-tasking, resource sharing, and execution of computer instructions
US6330584B1 (en) Systems and methods for multi-tasking, resource sharing and execution of computer instructions
CN106415513B (zh) 用于分组发送的优化的信用返回机制
US8214845B2 (en) Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data
US11392740B2 (en) Dataflow function offload to reconfigurable processors
CN100445975C (zh) 数据传输控制装置、图像处理装置和数据传输控制方法
CN103744644B (zh) 采用四核结构搭建的四核处理器系统及数据交换方法
CN106415515A (zh) 使用不具有sfence的优化的pio写入序列来发送分组
TW200428406A (en) Multiport memory architecture, devices and systems including the same, and methods of using the same
CN105573711B (zh) 一种数据缓存方法及装置
CN103714038B (zh) 一种数据处理方法和装置
CN103946803A (zh) 具有高效工作排队的处理器
CN106209679A (zh) 用于使用多个链接的存储器列表的方法及装置
CN209149287U (zh) 大数据运算加速系统
WO2022133047A1 (en) Dataflow function offload to reconfigurable processors
CN102508803A (zh) 一种矩阵转置存储控制器
US20180212894A1 (en) Fork transfer of data between multiple agents within a reconfigurable fabric
CN103858393A (zh) 网络包的并行处理
CN106375249A (zh) 交换芯片数据架构、其控制方法及控制系统
CN101825997A (zh) 一种异步先入先出存储器
CN102331922B (zh) 运算装置、高速缓存装置及其控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant