CN116991330A - 数据存储装置、数据读写方法及电子设备 - Google Patents
数据存储装置、数据读写方法及电子设备 Download PDFInfo
- Publication number
- CN116991330A CN116991330A CN202311239314.2A CN202311239314A CN116991330A CN 116991330 A CN116991330 A CN 116991330A CN 202311239314 A CN202311239314 A CN 202311239314A CN 116991330 A CN116991330 A CN 116991330A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- write
- port
- bit width
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000015654 memory Effects 0.000 claims abstract description 247
- 239000000284 extract Substances 0.000 claims description 9
- 238000012546 transfer Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000011144 upstream manufacturing Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- ROXBGBWUWZTYLZ-UHFFFAOYSA-N [6-[[10-formyl-5,14-dihydroxy-13-methyl-17-(5-oxo-2h-furan-3-yl)-2,3,4,6,7,8,9,11,12,15,16,17-dodecahydro-1h-cyclopenta[a]phenanthren-3-yl]oxy]-4-methoxy-2-methyloxan-3-yl] 4-[2-(4-azido-3-iodophenyl)ethylamino]-4-oxobutanoate Chemical compound O1C(C)C(OC(=O)CCC(=O)NCCC=2C=C(I)C(N=[N+]=[N-])=CC=2)C(OC)CC1OC(CC1(O)CCC2C3(O)CC4)CCC1(C=O)C2CCC3(C)C4C1=CC(=O)OC1 ROXBGBWUWZTYLZ-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005516 engineering process Methods 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
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Static Random-Access Memory (AREA)
Abstract
本发明涉及计算机技术领域,提供一种数据存储装置、数据读写方法及电子设备,该装置包括:存储单元、写控制单元、读控制单元、读操作单元、写宽度信号端口、读宽度信号端口、写数据端口、读数据端口和时钟端口;存储单元包括N个存储器,每个存储器的子数据位宽为w比特,存储单元的最大数据位宽为N×w,其中,N≥2,w≥1;写控制单元将写数据端口输入数据中的位宽为n1×w的待写入数据写入n1个写目标存储器;读控制单元用于根据读宽度信号端口输入的待读取数据的位宽n2×w确定n2个读目标存储器;读操作单元用于在时钟端口的时钟触发下,读取读目标存储器中的待读取数据,并由读数据端口输出。本发明数据读写更灵活,读写效率高。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据存储装置、数据读写方法及电子设备。
背景技术
先进先出(First Input First Output,FIFO)存储器作为常用的数据存储单元,在数字设计中应用广泛,以Xilinx(赛灵思)为例,主要有以下几种Common Clock FIFO(同步时钟FIFO):
1、Common Clock Builtin FIFO(同步时钟内置的FIFO);
2、Common Clock Block RAM(同步时钟块RAM);
3、Common Clock Distributed RAM(同步时钟分布式RAM);
4、Common Clock Shift Register(同步时钟移位寄存器)。
以上各种FIFO在实例化时,均需要事先配置输入输出数据位宽,即一次读或写操作FIFO存储单元能够读或写的以比特(bit)位为单位的数据宽度,而且数据位宽在FIFO存储单元的硬件电路设计时就已经确定,只能按照单一的数据位宽来读写数据,因此,目前的FIFO存储单元在实际使用中,数据读写非常不灵活,读写效率低。例如:当前的待写入数据的宽度未达到数据位宽时,需要等待下一个或多个数据对当前的待写入数据填充并达到数据位宽后再写入,数据写入需要再等待至少一个时钟脉冲。在读出数据时,待读取数据的位宽大于数据位宽的情况下,需要多次读取,一个数据读取完成也需要至少两个时钟脉冲。
发明内容
本发明提供一种数据存储装置、数据读写方法及电子设备,用以解决现有技术中的数据存储装置只能按照单一的数据位宽来读写数据,数据读写非常不灵活,读写效率低的问题。
本发明提供一种数据存储装置,包括:存储单元、写控制单元、读控制单元、读操作单元、写宽度信号端口、读宽度信号端口、写使能端口、读使能端口、写数据端口、读数据端口和时钟端口;
所述存储单元包括N个存储器,每个所述存储器的子数据位宽为w比特,所述存储单元的最大数据位宽为N×w,其中,N≥2,w≥1;
所述写控制单元用于获取写宽度信号端口输入的待写入数据的位宽为n1×w,并在所述写使能端口为有效信号,且在所述时钟端口的时钟触发下,将写数据端口输入数据中的位宽为n1×w的待写入数据写入n1个写目标存储器,其中,n1为小于等于N的整数;
所述读控制单元用于在所述读使能端口为有效信号,且在所述时钟端口的时钟触发下,根据读宽度信号端口输入的待读取数据的位宽n2×w,确定n2个读目标存储器,其中,n2为小于等于N的整数;
所述读操作单元用于在所述时钟端口的时钟触发下,读取所述读目标存储器中的所述待读取数据,并由所述读数据端口输出。
根据本发明提供的一种数据存储装置,所述写控制单元用于根据待写入数据的位宽n1×w和子数据位宽w,按预设写规则,确定n1个所述写目标存储器;
所述读控制单元用于根据待读取数据的位宽n2×w和子数据位宽w,按与所述预设写规则相应的读规则,在所述时钟端口的时钟触发下确定n2个读目标存储器。
根据本发明提供的一种数据存储装置,所述写控制单元用于根据待写入数据的位宽n1×w、子数据位宽w及上一次写入的存储器的编号p,按存储器编号顺序确定n1个所述写目标存储器为(p+1) mod N、(p+2) mod N、…、(p+j) mod N、…、(p+n1) mod N,其中,j=1,2,…,n1,mod为取余运算。
根据本发明提供的一种数据存储装置,所述读控制单元用于根据待读取数据的位宽n2×w、子数据位宽w及上一次读取的存储器的编号q,在所述时钟端口的时钟触发下按存储器编号顺序确定n2个所述读目标存储器为(q+1) mod N、(q+2) mod N、…、(q+j) modN、…、(q+n2) mod N,其中,j=1,2,…,n2,mod为取余运算。
根据本发明提供的一种数据存储装置,所述读操作单元还用于将所述待读取数据按数据位顺序排序输出。
根据本发明提供的一种数据存储装置,所述读操作单元具体用于在确定的n2个所述读目标存储器中存在编号小于等于q的情况下,依次将编号大于q的所述读目标存储器中的数据排在低位,依次将编号小于等于q的所述读目标存储器中的数据排在高位,以组成所述待读取数据。
根据本发明提供的一种数据存储装置,所述写控制单元包括:写控制多路复用器和N个写控制触发器;
所述写控制多路复用器的使能端连接所述写使能端口,输入端连接所述写数据端口和所述写宽度信号端口,N个输出端中的第i输出端连接第i写控制触发器的输入端,其中,i=1,2,…,N;
第i写控制触发器的输出端连接第i存储器的写使能端和数据输入端;
N个所述写控制触发器各自的时钟端连接所述时钟端口。
根据本发明提供的一种数据存储装置,所述读控制单元包括:读控制多路复用器和N个读控制触发器;
所述读控制多路复用器的使能端连接所述读使能端口,输入端连接所述读宽度信号端口,N个输出端中的第i输出端连接第i读控制触发器的输入端,其中,i=1,2,…,N;
第i读控制触发器的输出端连接第i存储器的读使能端;
N个所述读控制触发器各自的时钟端以及N个存储器各自的时钟端均连接所述时钟端口。
根据本发明提供的一种数据存储装置,所述读操作单元包括:读操作多路复用器和N个读操作触发器;
所述读操作多路复用器的N个输入端中的第i输入端连接第i存储器的数据输出端,所述读操作多路复用器的N个输出端中的第i输出端连接第i读操作触发器的输入端,第i读操作触发器的输出端连接所述读数据端口,其中,i=1,2,…,N;
N个所述读操作触发器各自的时钟端连接所述时钟端口。
根据本发明提供的一种数据存储装置,还包括:数据统计单元,用于在所述待写入数据被写入和/或所述待读取数据被读取时,根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量。
根据本发明提供的一种数据存储装置,所述数据统计单元包括:计数器和寄存器,所述计数器的第一输入端和第二输入端分别连接所述写使能端口和读使能端口,所述计数器的第三输入端和第四输入端分别连接所述写宽度信号端口和读宽度信号端口,输出端连接所述寄存器的输入端,所述寄存器的输出端连接所述计数器的第五输入端;所述寄存器的时钟端连接所述时钟端口;
所述计数器用于根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量,并将所述实时数据量传输至所述寄存器,所述寄存器用于在所述时钟端口的时钟触发下将所述实时数据量输出,并反馈至所述计数器。
本发明还提供一种数据读写方法,基于上述任一项所述的数据存储装置实现,所述方法包括:
所述写控制单元获取写宽度信号端口输入的待写入数据的位宽n1×w,在外部输入有效的写使能信号的情况下,所述写控制单元从写数据端口输入数据中提取位宽为n1×w的待写入数据,并在所述时钟端口的时钟信号为有效信号时,将所述待写入数据写入n1个写目标存储器,其中,n1为小于等于N的整数;
在外部输入有效的读使能信号的情况下,所述读控制单元在所述时钟端口的时钟信号为有效信号时,根据读宽度信号端口输入的待读取数据的位宽n2×w确定n2个读目标存储器,其中,n2为小于等于N的整数;
所述读操作单元在所述时钟端口的时钟信号为有效信号时,读取所述读目标存储器中的所述待读取数据,并由所述读数据端口输出。
根据本发明提供的一种数据读写方法,所述写控制单元包括:写控制多路复用器和N个写控制触发器;
所述写控制单元获取写宽度信号端口输入的待写入数据的位宽为n1×w,在外部输入有效的写使能信号的情况下,所述写控制单元从写数据端口输入数据中提取位宽为n1×w的待写入数据,并在所述时钟端口的时钟信号为有效信号时,将所述待写入数据写入n1个写目标存储器,包括:
所述写控制多路复用器获取写宽度信号端口输入的待写入数据的位宽为n1×w;
所述写控制多路复用器获取写数据端口输入数据,以及写使能端口的写使能信号,并从写数据端口输入数据中提取位宽为n1×w的待写入数据;
所述写控制多路复用器根据待写入数据的位宽n1×w和子数据位宽w,按预设写规则,确定n1个所述写目标存储器,并将所述待写入数据按数据位顺序分成n1份写数据,在每份写数据基础上增加一位写使能信号位;
所述写控制多路复用器将n1份增加写使能信号位的写数据分别传输至与n1个所述写目标存储器对应的n1个写控制触发器;
n1个所述写控制触发器在所述时钟端口的时钟信号为有效信号时,分别将n1份写使能信号位传输至对应的n1个所述写目标存储器的写使能端,n1份写数据传输至对应的n1个所述写目标存储器的数据输入端。
根据本发明提供的一种数据读写方法,所述写控制多路复用器根据待写入数据的位宽n1×w和子数据位宽w,按预设写规则,确定n1个所述写目标存储器,包括:
所述写控制多路复用器根据待写入数据的位宽n1×w、子数据位宽w及上一次写入的存储器的编号p,按存储器编号顺序确定n1个所述写目标存储器为(p+1) mod N、(p+2)mod N、…、(p+j) mod N、…、(p+n1) mod N,其中,j=1,2,…,n1,mod为取余运算;
根据本发明提供的一种数据读写方法,所述读控制单元包括:读控制多路复用器和N个读控制触发器;
在外部输入有效的读使能信号的情况下,所述读控制单元在所述时钟端口的时钟信号为有效信号时,根据读宽度信号端口输入的待读取数据的位宽n2×w确定n2个读目标存储器,包括:
所述读控制多路复用器获取读宽度信号端口输入的待读取数据的位宽n2×w,以及读使能端口的读使能信号;
所述读控制多路复用器根据待读取数据的位宽n2×w和子数据位宽w,按与所述预设写规则相应的读规则,确定n2个读目标存储器;
在所述时钟端口的时钟信号为有效信号时,所述读控制多路复用器通过与n2个所述读目标存储器相应的读控制触发器将读使能信号传输至n2个所述读目标存储器的读使能端,使得n2个所述读目标存储器的读使能端有效。
根据本发明提供的一种数据读写方法,所述读控制多路复用器根据待读取数据的位宽n2×w和子数据位宽w,按与所述预设写规则相应的读规则,确定n2个读目标存储器,包括:
所述读控制多路复用器根据待读取数据的位宽n2×w、子数据位宽w及上一次读取的存储器的编号q,在所述时钟端口的时钟触发下按存储器编号顺序确定n2个所述读目标存储器为(q+1) mod N、(q+2) mod N、…、(q+j) mod N、…、(q+n2) mod N,其中,j=1,2,…,n2,mod为取余运算。
根据本发明提供的一种数据读写方法,所述读操作单元包括:读操作多路复用器和N个读操作触发器;
所述读操作单元在所述时钟端口的时钟信号为有效信号时,读取所述读目标存储器中的所述待读取数据,并由所述读数据端口输出,包括:
所述读操作多路复用器接收n2个所述读目标存储器输出的n2份读数据,并将n2份读数据输出至对应的n2个读操作触发器,其中,在n2个所述读目标存储器读使能端有效,且所述时钟端口的时钟信号为有效信号时,n2个所述读目标存储器将n2份读数据输出至所述读操作多路复用器;
在所述时钟端口的时钟信号为有效信号时,n2个所述读操作触发器将n2份读数据由所述读数据端口输出。
根据本发明提供的一种数据读写方法,所述读操作多路复用器接收n2个所述读目标存储器输出的n2份读数据,并将n2份读数据输出至对应的n2个读操作触发器,包括:
所述读操作多路复用器接收n2个所述读目标存储器输出的n2份读数据,将所述n2份读数据按数据位顺序排序,将排序后的n2份读数据输出至对应的n2个读操作触发器。
根据本发明提供的一种数据读写方法,所述数据存储装置还包括:数据统计单元,所述方法还包括:
在所述待写入数据被写入和/或所述待读取数据被读取时,所述数据统计单元根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量。
根据本发明提供的一种数据读写方法,所述数据统计单元包括:计数器和寄存器;
在所述待写入数据被写入和/或所述待读取数据被读取时,所述数据统计单元根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量,包括:
所述计数器在检测到写使能端口和/或读使能端口为有效信号时,获取待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,并获取寄存器反馈的上次统计的实时数据量;
根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,以及寄存器反馈的上次统计的实时数据量,统计所述存储单元中当前的实时数据量;
将所述当前的实时数据量输出至所述寄存器。
本发明还提供一种电子设备,包括:如上述任一项所述的数据存储装置。
本发明提供的数据存储装置、数据读写方法及电子设备中,存储单元包括N个存储器,每个存储器的子数据位宽为w比特,存储单元的最大数据位宽为N×w,在数据写入时,写控制单元通过写宽度信号端口获取待写入数据的位宽n1×w,并将待写入数据写入n1个写目标存储器。在数据读取时,读控制单元通过读宽度信号端口获取待读取数据的位宽n2×w,并基于待读取数据的位宽确定要读的n2个读目标存储器,读操作单元从n2个读目标存储器中读取数据从而得到待读取数据。可见无论是读还是写,只要满足读写数据的位宽为子数据位宽为w的整数倍且不超过最大数据位宽即可,读写数据更灵活,读写效率更高,避免了现有技术中的数据存储装置只能按照单一的数据位宽来读写数据,数据读写非常不灵活,读写效率低的问题。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据存储装置的结构示意图;
图2是本发明提供的数据存储装置中统计单元的结构示意图;
图3是本发明提供的数据存储装置中存储器的结构示意图;
图4是本发明提供的数据存储装置在网络报文解析的应用场景示意图;
图5是本发明提供的数据读写方法流程图之一;
图6是本发明提供的数据读写方法流程图之二;
图7是本发明提供的数据读写方法流程图之三;
图8是本发明提供的数据读写方法流程图之四;
图9是本发明提供的数据读写方法流程图之五;
图10是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的数据存储装置如图1所示,包括:存储单元、写控制单元、读控制单元、读操作单元、写宽度信号端口、读宽度信号端口、写使能端口、读使能端口、写数据端口、读数据端口和时钟端口。图1中,写宽度信号端口fifo_wnum向写控制单元输入的信号中含有待写入数据的位宽,读宽度信号端口fifo_rnum向读控制单元输入的信号中含有待读取数据的位宽,写使能端口fifo_we向写控制单元输入写使能信号,读使能端口fifo_re向读控制单元输入读使能信号,写数据端口fifo_din向写控制单元输入数据(其中包含有效的待写入数据,其待写入数据的位宽由fifo_wnum的输入值指定),读数据端口fifo_dout接收读操作单元输入待读取数据并输出,时钟端口clk用于为存储单元、写控制单元、读控制单元和读操作单元提供时钟信号。
所述存储单元包括N个存储器110,每个所述存储器110的子数据位宽为w比特,所述存储单元的最大数据位宽为N×w,其中,N≥2,w≥1。即一个存储器110一次允许操作(读或写)的最大数据位宽为w,整个存储单元一次允许操作的最大数据位宽为N×w。本实施例中,在需要较大数据量的存储的情况下,存储器110可以是基于SRAM的FIFO、AXI-FIFO、AXIS-FIFO等不同接口形式的FIFO存储器,在不需要较大数据量存储的情况下,可以用触发器代替存储器110。图1中是以SRAM的FIFO为存储器110的示意图。
所述写控制单元用于获取写宽度信号端口输入的待写入数据的位宽为n1×w,并在所述写使能端口为有效信号,且在所述时钟端口的时钟触发下,将写数据端口输入数据中的位宽为n1×w的待写入数据写入n1个写目标存储器110,其中,n1为小于等于N的整数。其中,写数据端口输入的数据的位宽不超过最大数据位宽为N×w即可,为了提高写效率,可将写数据端口输入的数据位宽固定为最大数据位宽为N×w,但由于应用领域不同,上游业务端一次写入的数据的位宽不足N×w时,将高位用0补齐,并且上游业务端通过向写宽度信号端口输入待写入数据的位宽,从而将本次写数据端口输入数据中有效的待写入数据的位宽输入至数据存储装置。例如:w=8,N=8,即一个存储器110一次允许操作的最大数据位宽为8位,一个字节(byte),那么整个存储单元的一次允许操作的最大数据位宽为N×w=64比特,即8字节,若上游业务端一次写入的数据的位宽为32比特,那么高位的32比特用0补齐,待写入数据为32比特,n1=4,即写数据端口输入数据中的待写入数据为4字节。
所述读控制单元用于在所述读使能端口为有效信号,且在所述时钟端口的时钟触发下,根据读宽度信号端口输入的待读取数据的位宽n2×w,确定n2个读目标存储器110,其中,n2为小于等于N的整数。具体地,下游业务端通过读宽度信号端口输入待读取数据的位宽n2×w,可以根据业务类型来设定待读取数据的位宽n2×w。
所述读操作单元用于在所述时钟端口的时钟触发下,读取所述读目标存储器110中的所述待读取数据,并由所述读数据端口输出。具体地,由于待读取数据的位宽为n2×w,从读控制单元确定的n2个读目标存储器110中各读取一个w宽度的数据,从而形成所述待读取数据。
本发明实施例中,存储单元包括N个存储器110,每个存储器110的子数据位宽为w比特,存储单元的最大数据位宽为N×w,在数据写入时,写控制单元通过写宽度信号端口获取待写入数据的位宽n1×w,并将待写入数据写入n1个写目标存储器110。在数据读取时,读控制单元通过读宽度信号端口获取待读取数据的位宽n2×w,并基于待读取数据的位宽确定要读的n2个读目标存储器110,读操作单元从n2个读目标存储器110中读取数据从而得到待读取数据。可见无论是读还是写,只要满足读写数据的位宽为子数据位宽为w的整数倍且不超过最大数据位宽即可,读写数据更灵活,读写效率更高,避免了现有技术中的数据存储装置只能按照单一的数据位宽来读写数据,数据读写非常不灵活,读写效率低的问题。例如:w取值1~8,w=1时,在不超过最大数据位宽的情况下,可以按任意位宽读写数据,w=8时,在不超过最大数据位宽的情况下,可以按任意字节长度读写数据,读写时不再受固定数据位宽的限制。
在一些实施例中,所述写控制单元用于根据待写入数据的位宽n1×w和子数据位宽w,按预设写规则,确定n1个所述写目标存储器110。预设写规则可以理解为一种确定写目标存储器110的算法或规则,通过该算法或规则可以从N个存储器110中确定出n1个所述写目标存储器110,预设写规则可以根据实际情况确定。
所述读控制单元用于根据待读取数据的位宽n2×w和子数据位宽w,按与所述预设写规则相应的读规则,在所述时钟端口的时钟触发下确定n2个读目标存储器。其中,读规则和写规则对应,例如:写规则是按N个存储器110的编号顺序确定写目标存储器110并写入数据,那么读规则也是按N个存储器110的编号顺序确定读目标存储器110,并从其中读出数据。
具体地,所述写控制单元用于根据待写入数据的位宽n1×w、子数据位宽w及上一次写入的存储器110的编号p,按存储器110的编号顺序确定n1个所述写目标存储器110为(p+1) mod N、(p+2) mod N、…、(p+j) mod N、…、(p+n1) mod N,其中,j=1,2,…,n1,mod为取余运算。例如:N=8,有8个存储器110,编号分别为0~7,w=8,本次待写入数据的位宽为4×8,上一次写操作写的最后一个目标写存储器110的标号为5,那么按照上述写目标存储器110编号的表达式,本次确定的4个写目标存储器110的编号为6、7、0和1,即顺序且循环地确定写目标存储器110。所述读控制单元用于根据待读取数据的位宽n2×w、子数据位宽w及上一次读取的存储器的编号q,在所述时钟端口的时钟触发下按存储器编号顺序确定n2个所述读目标存储器为(q+1) mod N、(q+2) mod N、…、(q+j) mod N、…、(q+n2) mod N,其中,j=1,2,…,n2,mod为取余运算,即在读数据时,顺序且循环地确定读目标存储器110。
实际应用中,写数据时,将待写入数据由低位到高位分成n1份写数据,在写控制单元设置一个写指针指向当前的写目标存储器110,通过写指针的顺序循环移动,确定写目标存储器110,并按顺序将n1份写数据分别写入写指针指向的写目标存储器110中。读数据时,在读控制单元设置一个读指针指向当前的读目标存储器110,通过读指针的顺序循环移动,将n2份读数据从相应的n2个读目标存储器110中读出来以组成待读取数据。无论是写指针还是读指针,都与存储器110的编号关联,即指针指向的存储器110的地址与存储器110的编号关联。
本实施例中,顺序且循环地读写存储器110的方式简单,对于写控制单元和读控制单元算法实现复杂度低,实施可行度较高。
采用上述顺序且循环地读存储器110的方式虽然简单,但存在一个问题,即读取得到的待读取数据的高低位不正确。因为读取的n2份读数据都是在一个时钟信号有效时输出,而且输出顺序是以编号小的存储器110对应的读数据为低位,编号大的存储器110对应的读数据为高位输出,例如:若n2个读目标存储器110的编号为6、7、0、1,按数据本身的数据位的顺序应该是编号为6和7对应的读目标存储器110中的读数据在低位,编号为0和1对应的读目标存储器110中的读数据在高位,然而实际组成的待读取数据是编号为0和1对应的读目标存储器110中的读数据在低位,而编号为6和7对应的读目标存储器110中的读数据在高位,下游业务端收到数据位顺序错误的待读取数据后会按数据位的顺序进行调整。因此,为了解决这个问题,在一些实施例中,所述读操作单元还用于将所述待读取数据按数据位顺序排序输出,从而保证最终输出给下游业务端的带读取数据的正确性,不需要下游业务端再对待读取数据进行调整,减轻了下游业务端的负载。
具体地,所述读操作单元具体用于在确定的n2个所述读目标存储器110中存在编号小于等于q的情况下,依次将编号大于q的所述读目标存储器110中的数据排在低位,依次将编号小于等于q的所述读目标存储器110中的数据排在高位,以组成所述待读取数据。若存在n2个所述读目标存储器110中存在编号小于等于q的情况,则说明确定的n2大于N-1-q,又从编号最小的读目标存储器110开始读,因此要依次将编号小于等于q的所述读目标存储器110中的数据排在高位,依次将编号大于q的所述读目标存储器110中的数据排在低位,从而得到正确数据位顺序的待读取数据。
在一些实施例中,实现上述数据存储装置的硬件结构如下:
所述写控制单元包括:写控制多路复用器120和N个写控制触发器130。
所述写控制多路复用器120的使能端连接所述写使能端口,输入端连接所述写数据端口和所述写宽度信号端口,N个输出端中的第i输出端连接第i写控制触发器130的输入端,其中,i=1,2,…,N。具体地,写控制多路复用器120的输入端也是N个,其中两个输入端分别连接写数据端口和所述写宽度信号端口。
第i写控制触发器130的输出端连接第i存储器110的写使能端和数据输入端。
N个所述写控制触发器130各自的时钟端连接所述时钟端口。
如图1所示,基于上述硬件连接结构,写控制多路复用器120根据写宽度信号端口输入的待写入数据的位宽n1×w将待写入数据分成n1份写数据,并确定n1个写目标存储器110,从而可确定对应的n1个写控制触发器130,写控制多路复用器120将写使能信号和一份写数据(例如:{sfifo_we[0],sfifo_wdin[0]})拼接后从与n1个写控制触发器130连接的输出端输出至对应写控制触发器130。在时钟端口的时钟信号有效时,n1个写控制触发器130将其中的数据输出至对应的n1个存储器110,具体地,写使能信号输出至第i存储器110的写使能端,使第i存储器110的写使能有效,其余的写数据由第i存储器110的输入端写入第i存储器110,从而完成数据写入。
所述读控制单元包括:读控制多路复用器140和N个读控制触发器150。
所述读控制多路复用器140的使能端连接所述读使能端口,输入端连接所述读宽度信号端口,N个输出端中的第i输出端连接第i读控制触发器150的输入端,其中,i=1,2,…,N。
第i读控制触发器的输出端连接第i存储器110的读使能端。
N个所述读控制触发器各自的时钟端以及N个存储器各自的时钟端均连接所述时钟端口。
如图1中,基于上述硬件连接结构,读控制多路复用器140根据读宽度信号端口输入的待读取数据的位宽n2×w确定n2个读目标存储器110,在时钟端口的时钟信号有效时,读控制多路复用器140将读使能信号输出至n2个读目标存储器110对应的n2个读控制触发器150,n2个读控制触发器150将读使能信号输出至n2个读目标存储器110的读使能端,使其读使能有效。
所述读操作单元包括:读操作多路复用器160和N个读操作触发器170。
所述读操作多路复用器160的N个输入端中的第i输入端连接第i存储器的数据输出端,所述读操作多路复用器160的N个输出端中的第i输出端连接第i读操作触发器170的输入端,第i读操作触发器170的输出端连接所述读数据端口,其中,i=1,2,…,N。
N个所述读操作触发器170各自的时钟端连接所述时钟端口。
如图1中,基于上述硬件连接结构,所述读操作多路复用器160接收n2个所述读目标存储器110输出的n2份读数据,并将n2份读数据输出至对应的n2个读操作触发器170。具体地,在n2个所述读目标存储器110的读使能端有效,且时钟信号有效时,n2个所述读目标存储器110将n2份读数据输出至读操作多路复用器160,读操作多路复用器160将n2份读数据输出至对应的n2个读操作触发器170。在所述时钟端口的下一时钟信号为有效信号时,n2个所述读操作触发器170将n2份读数据由所述读数据端口输出。
在一些实施例中,数据存储装置还包括:数据统计单元,用于在所述待写入数据被写入和/或所述待读取数据被读取时,根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量。由于一次读或写操作的数据位宽不再固定,通过数据统计单元在所述待写入数据被写入和/或所述待读取数据被读取时,对存储单元中的数据进行统计,能够实时且准确地获取存储单元中的实时数据量。
具体地,如图1和2所示,所述数据统计单元包括:计数器180和寄存器190,所述计数器180的第一输入端和第二输入端分别连接所述写使能端口和读使能端口,所述计数器180的第三输入端和第四输入端分别连接所述写宽度信号端口和读宽度信号端口,输出端连接所述寄存器190的输入端,所述寄存器190的输出端连接所述计数器的第五输入端;所述寄存器190的时钟端连接所述时钟端口。
所述计数器180用于根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量,并将所述实时数据量传输至所述寄存器190,所述寄存器190用于在所述时钟端口的时钟触发下将所述实时数据量输出,并反馈至所述计数器180,计数器180在反馈的实时数据量基础上做下一次读和/或写时的统计。
所述计数器180用于根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量,具体计算方式如下:
在写使能端口有效时:
fifo_usedw_nxt = fifo_usedw + fifo_we_num。
其中,fifo_usedw表示读或写操作之前的存储单元中的实时数据量,fifo_usedw_nxt表示读或写操作之后的存储单元中的实时数据量,fifo_we_num表示由写宽度信号端口fifo_wnum输入的待写入数据的位宽。
在读使能端口有效时:
fifo_usedw_nxt = fifo_usedw - fifo_re_num。
其中,fifo_re_num表示由读宽度信号端口fifo_rnum输入的待读取数据的位宽。
在写使能端口和读使能端口同时有效时:
fifo_usedw_nxt = fifo_usedw+fifo_we_num-fifo_re_num。
fifo_usedw_nxt被寄存器190输出,在下一次读或写操作时,计数器180获取寄存器190反馈的fifo_usedw_nxt,并作为fifo_usedw在进行统计。
在一个具体的实施例中,如图1~3所示,对于图1中数据存储装置的整体结构,在硬件电路设计阶段,以最大数据位宽DATA_WIDTH为64位,一个存储器110的子数据位宽为8位,即一个字节(Byte),因此,存储单元中一共有8个存储器110,存储器110为基于SRAM的FIFO存储器,即存储单元为FIFO存储单元。端口说明如下表1所示:
表1 数据存储装置的端口信息
相对于现有的数据存储装置,本实施例的数据存储装置增加了写宽度信号端口fifo_wnum、读宽度信号端口fifo_rnum和计数器180,以及存储单元中包括多个存储器110,从而实现了对存储单元进行不同数据位宽的读或写操作,而且计数器180通过写宽度信号端口fifo_wnum和读宽度信号端口fifo_rnum输入的数据位宽对存储单元中的实时数据量进行统计,能够实时且准确地获取存储单元中的实时数据量。
其中,基于SRAM的FIFO存储器的端口说明如下表2所示:
表2 基于SRAM的FIFO存储器的端口信息
本发明的数据存储装置的硬件电路可以基于现场可编程门阵列(FieldProgrammable Gate Array,FPGA)实现,但具体实现不限于FPGA,其它如AISC也可以按照此机制实现基于SRAM的不固定数据位宽FIFO存储单元。而且本发明的数据存储装置在金融加速、网络报文解析领域有广泛应用,具有低延迟、灵活等优势。以网络报文解析为例,如图4所示,存储单元中包括8个存储器,编号从0~7,由于网络报文通常是以字节为单位,可设计每个存储器一次读或写操作的数据位宽为一个字节,整个存储单元一次读或写操作的总数据位宽为8字节。网络报文发送端向存储单元中写入网络报文,一次写入的网络报文只要不超过8字节即可,可以根据网络报文发送端实际的吞吐量来决定,例如:一次写入的待写入数据为3字节,分别写入编号为1、2和3的存储器中。网络报文发送端可以向写宽度信号端口fifo_wnum输入3×8,表示要写入3个字节的待写入数据,并将包含该3字节的待写入数据的数据输入写数据端口fifo_din。写控制单元会根据3字节的数据位宽及子数据位宽w确定出编号为1、2和3的写目标存储器,从而将待写入数据写入编号为1、2和3的写目标存储器。当然为了提高写效率,可以一次写入8个字节。
网络报文接收端读取的数据位宽可根据要读取的数据逻辑决定,例如:当前要读取网络报文中表示日期的字段,网络报文中的日期通常为2个字节,16位来表示,那么网络报文接收端可以向读宽度信号端口fifo_rnum输入2×8,表示要读取2个字节的待读取数据,读控制单元会根据2字节的数据位宽及子数据位宽w确定出编号为5和6的读目标存储器。读操作单元从编号为5和6的读目标存储器读取报文中的日期给到下游业务端。由于下游业务端始终是按照数据逻辑来决定待读取数据的数据位宽,保证每次读取的待读取数据都是有实际意义的报文字段,而不会跨字段读取。
而且,本发明的数据存储装置使得上游业务端和下游业务端可按不同的数据位宽操作数据,从而实现了上游业务端和下游业务端对读写数据位宽的解耦,数据的读写操作更灵活。
下面对本发明提供的数据读写方法进行描述,下文描述的数据读写方法与上文描述的数据存储装置可相互对应参照。
本发明提供的数据读写方法,如图5所示,该方法基于上述任一实施例的数据存储装置实现,所述方法包括:
步骤S510:所述写控制单元获取写宽度信号端口输入的待写入数据的位宽n1×w,在外部输入有效的写使能信号的情况下,所述写控制单元从写数据端口输入数据中提取位宽为n1×w的待写入数据,并在所述时钟端口的时钟信号为有效信号时,将所述待写入数据写入n1个写目标存储器,其中,n1为小于等于N的整数。具体地,写数据端口输入的数据的位宽不超过最大数据位宽为N×w即可,上游业务端一次写入的数据的位宽不足N×w时,将高位用0补齐,写控制单元可以从最低位开始,提取n1×w位的待写入数据。
步骤S520:在外部输入有效的读使能信号的情况下,所述读控制单元在所述时钟端口的时钟信号为有效信号时,根据读宽度信号端口输入的待读取数据的位宽n2×w确定n2个读目标存储器,其中,n2为小于等于N的整数。
步骤S530:所述读操作单元在所述时钟端口的时钟信号为有效信号时,读取所述读目标存储器中的所述待读取数据,并由所述读数据端口输出。
本发明的数据读写方法中,存储单元包括N个存储器,每个存储器的子数据位宽为w比特,存储单元的最大数据位宽为N×w,在数据写入时,写控制单元通过写宽度信号端口获取待写入数据的位宽n1×w,并将待写入数据写入n1个写目标存储器。在数据读取时,读控制单元通过读宽度信号端口获取待读取数据的位宽n2×w,并基于待读取数据的位宽确定要读的n2个读目标存储器,读操作单元从n2个读目标存储器中读取数据从而得到待读取数据。可见无论是读还是写,只要满足读写数据的位宽为子数据位宽为w的整数倍且不超过最大数据位宽即可,读写数据更灵活,读写效率更高,避免了现有技术中的数据存储装置只能按照单一的数据位宽来读写数据,数据读写非常不灵活,读写效率低的问题。
在一些实施例中,所述写控制单元包括:写控制多路复用器和N个写控制触发器,基于此硬件电路结构(可参见图1),如图6所示,步骤S510包括:
步骤S610:所述写控制多路复用器获取写宽度信号端口输入的待写入数据的位宽为n1×w。
步骤S620:所述写控制多路复用器获取写数据端口输入数据,以及写使能端口的写使能信号,并从写数据端口输入数据中提取位宽为n1×w的待写入数据。
步骤S630:所述写控制多路复用器根据待写入数据的位宽n1×w和子数据位宽w,按预设写规则,确定n1个所述写目标存储器,并将所述待写入数据按数据位顺序分成n1份写数据,在每份写数据基础上增加一位写使能信号位。
步骤S640:所述写控制多路复用器将n1份增加写使能信号位的写数据分别传输至与n1个所述写目标存储器对应的n1个写控制触发器。
步骤S650:n1个所述写控制触发器在所述时钟端口的时钟信号为有效信号时,分别将n1份写使能信号位传输至对应的n1个所述写目标存储器的写使能端,n1份写数据传输至对应的n1个所述写目标存储器的数据输入端,从而完成数据写入操作。
在一些实施例中,步骤S630包括:
所述写控制多路复用器根据待写入数据的位宽n1×w、子数据位宽w及上一次写入的存储器的编号p,按存储器编号顺序确定n1个所述写目标存储器为(p+1) mod N、(p+2)mod N、…、(p+j) mod N、…、(p+n1) mod N,其中,mod为取余运算,即顺序且循环地确定写目标存储器。
在一些实施例中,所述读控制单元包括:读控制多路复用器和N个读控制触发器,基于此硬件电路结构(可参见图1),如图7所示,步骤S520包括:
步骤S710:所述读控制多路复用器获取读宽度信号端口输入的待读取数据的位宽n2×w,以及读使能端口的读使能信号。
步骤S720:所述读控制多路复用器根据待读取数据的位宽n2×w和子数据位宽w,按与所述预设写规则相应的读规则,确定n2个读目标存储器。
步骤S730:在所述时钟端口的时钟信号为有效信号时,所述读控制多路复用器通过与n2个所述读目标存储器相应的读控制触发器将读使能信号传输至n2个所述读目标存储器的读使能端,使得n2个所述读目标存储器的读使能端有效。具体地,所述读控制多路复用器将读使能信号传输至n2个读控制触发器的输入端,在所述时钟端口的时钟信号为有效信号时,n2个读控制触发器将读使能信号传输至n2个所述读目标存储器的读使能端。
在一些实施例中,步骤S720包括:所述读控制多路复用器根据待读取数据的位宽n2×w、子数据位宽w及上一次读取的存储器的编号q,在所述时钟端口的时钟触发下按存储器编号顺序确定n2个所述读目标存储器为(q+1) mod N、(q+2) mod N、…、(q+j) modN、…、(q+n2) mod N,即顺序且循环地确定读目标存储器。
在一些实施例中,所述读操作单元包括:读操作多路复用器和N个读操作触发器。基于此硬件电路结构(可参见图1),如图8所示,步骤S530包括:
步骤S810:所述读操作多路复用器接收n2个所述读目标存储器输出的n2份读数据,并将n2份读数据输出至对应的n2个读操作触发器。其中,在n2个所述读目标存储器读使能端有效,且所述时钟端口的时钟信号为有效信号时,n2个所述读目标存储器将n2份读数据输出至所述读操作多路复用器。
步骤S820:在所述时钟端口的时钟信号为有效信号时,n2个所述读操作触发器将n2份读数据由所述读数据端口输出。
在一些实施例中,步骤S820包括:所述读操作多路复用器接收n2个所述读目标存储器输出的n2份读数据,将所述n2份读数据按数据位顺序排序,将排序后的n2份读数据输出至对应的n2个读操作触发器。具体地,读操作多路复用器在确定的n2个所述读目标存储器110中存在编号小于等于q的情况下,依次将编号大于q的所述读目标存储器110中的数据排在低位,依次将编号小于等于q的所述读目标存储器110中的数据排在高位,以组成所述待读取数据。
在一些实施例中,所述数据存储装置还包括:数据统计单元,所述方法还包括:在所述待写入数据被写入和/或所述待读取数据被读取时,所述数据统计单元根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量。
具体地,所述数据统计单元包括:计数器和寄存器。基于此硬件电路结构(可参见图1),在所述待写入数据被写入和/或所述待读取数据被读取时,所述数据统计单元根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量的步骤如图9所示,包括:
步骤S910:所述计数器在检测到写使能端口和/或读使能端口为有效信号时,获取待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,并获取寄存器反馈的上次统计的实时数据量。
步骤S920:根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,以及寄存器反馈的上次统计的实时数据量,统计所述存储单元中当前的实时数据量。
步骤S930:将所述当前的实时数据量输出至所述寄存器。
由于每次读或写操作的数据位宽不同,通过数据统计单元在所述待写入数据被写入和/或所述待读取数据被读取时,对存储单元中的数据进行统计,能够实时且准确地获取存储单元中的实时数据量。
本发明还提供一种电子设备,如图10所示,该电子设备可以包括:处理器(processor)101、通信接口(Communications Interface)102、存储器(memory)103和通信总线104,其中,处理器101,通信接口102,存储装置103通过通信总线104完成相互间的通信。其中,存储装置103为上述的数据存储装置,实际运用中,该电子设备可以是用于提供存储服务的存储服务器。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (21)
1.一种数据存储装置,其特征在于,包括:存储单元、写控制单元、读控制单元、读操作单元、写宽度信号端口、读宽度信号端口、写使能端口、读使能端口、写数据端口、读数据端口和时钟端口;
所述存储单元包括N个存储器,每个所述存储器的子数据位宽为w比特,所述存储单元的最大数据位宽为N×w,其中,N≥2,w≥1;
所述写控制单元用于获取写宽度信号端口输入的待写入数据的位宽为n1×w,并在所述写使能端口为有效信号,且在所述时钟端口的时钟触发下,将写数据端口输入数据中的位宽为n1×w的待写入数据写入n1个写目标存储器,其中,n1为小于等于N的整数;
所述读控制单元用于在所述读使能端口为有效信号,且在所述时钟端口的时钟触发下,根据读宽度信号端口输入的待读取数据的位宽n2×w,确定n2个读目标存储器,其中,n2为小于等于N的整数;
所述读操作单元用于在所述时钟端口的时钟触发下,读取所述读目标存储器中的所述待读取数据,并由所述读数据端口输出。
2.根据权利要求1所述的数据存储装置,其特征在于,所述写控制单元用于根据待写入数据的位宽n1×w和子数据位宽w,按预设写规则,确定n1个所述写目标存储器;
所述读控制单元用于根据待读取数据的位宽n2×w和子数据位宽w,按与所述预设写规则相应的读规则,在所述时钟端口的时钟触发下确定n2个读目标存储器。
3.根据权利要求2所述的数据存储装置,其特征在于,所述写控制单元用于根据待写入数据的位宽n1×w、子数据位宽w及上一次写入的存储器的编号p,按存储器编号顺序确定n1个所述写目标存储器为(p+1) mod N、(p+2) mod N、…、(p+j) mod N、…、(p+n1) mod N,其中,j=1,2,…,n1,mod为取余运算。
4.根据权利要求2所述的数据存储装置,其特征在于,所述读控制单元用于根据待读取数据的位宽n2×w、子数据位宽w及上一次读取的存储器的编号q,在所述时钟端口的时钟触发下按存储器编号顺序确定n2个所述读目标存储器为(q+1) mod N、(q+2) mod N、…、(q+j) mod N、…、(q+n2) mod N,其中,j =1,2,…,n2,mod为取余运算。
5.根据权利要求4所述的数据存储装置,其特征在于,所述读操作单元还用于将所述待读取数据按数据位顺序排序输出。
6.根据权利要求5所述的数据存储装置,其特征在于,所述读操作单元具体用于在确定的n2个所述读目标存储器中存在编号小于等于q的情况下,依次将编号大于q的所述读目标存储器中的数据排在低位,依次将编号小于等于q的所述读目标存储器中的数据排在高位,以组成所述待读取数据。
7.根据权利要求1所述的数据存储装置,其特征在于,所述写控制单元包括:写控制多路复用器和N个写控制触发器;
所述写控制多路复用器的使能端连接所述写使能端口,输入端连接所述写数据端口和所述写宽度信号端口,N个输出端中的第i输出端连接第i写控制触发器的输入端,其中,i=1,2,…,N;
第i写控制触发器的输出端连接第i存储器的写使能端和数据输入端;
N个所述写控制触发器各自的时钟端连接所述时钟端口。
8.根据权利要求1所述的数据存储装置,其特征在于,所述读控制单元包括:读控制多路复用器和N个读控制触发器;
所述读控制多路复用器的使能端连接所述读使能端口,输入端连接所述读宽度信号端口,N个输出端中的第i输出端连接第i读控制触发器的输入端,其中,i=1,2,…,N;
第i读控制触发器的输出端连接第i存储器的读使能端;
N个所述读控制触发器各自的时钟端以及N个存储器各自的时钟端均连接所述时钟端口。
9.根据权利要求1所述的数据存储装置,其特征在于,所述读操作单元包括:读操作多路复用器和N个读操作触发器;
所述读操作多路复用器的N个输入端中的第i输入端连接第i存储器的数据输出端,所述读操作多路复用器的N个输出端中的第i输出端连接第i读操作触发器的输入端,第i读操作触发器的输出端连接所述读数据端口,其中,i=1,2,…,N;
N个所述读操作触发器各自的时钟端连接所述时钟端口。
10.根据权利要求1至9中任一项所述的数据存储装置,其特征在于,还包括:数据统计单元,用于在所述待写入数据被写入和/或所述待读取数据被读取时,根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量。
11.根据权利要求10所述的数据存储装置,其特征在于,所述数据统计单元包括:计数器和寄存器,所述计数器的第一输入端和第二输入端分别连接所述写使能端口和读使能端口,所述计数器的第三输入端和第四输入端分别连接所述写宽度信号端口和读宽度信号端口,输出端连接所述寄存器的输入端,所述寄存器的输出端连接所述计数器的第五输入端;所述寄存器的时钟端连接所述时钟端口;
所述计数器用于根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量,并将所述实时数据量传输至所述寄存器,所述寄存器用于在所述时钟端口的时钟触发下将所述实时数据量输出,并反馈至所述计数器。
12.一种数据读写方法,其特征在于,基于权利要求1至11中任一项所述的数据存储装置实现,所述方法包括:
所述写控制单元获取写宽度信号端口输入的待写入数据的位宽n1×w,在外部输入有效的写使能信号的情况下,所述写控制单元从写数据端口输入数据中提取位宽为n1×w的待写入数据,并在所述时钟端口的时钟信号为有效信号时,将所述待写入数据写入n1个写目标存储器,其中,n1为小于等于N的整数;
在外部输入有效的读使能信号的情况下,所述读控制单元在所述时钟端口的时钟信号为有效信号时,根据读宽度信号端口输入的待读取数据的位宽n2×w确定n2个读目标存储器,其中,n2为小于等于N的整数;
所述读操作单元在所述时钟端口的时钟信号为有效信号时,读取所述读目标存储器中的所述待读取数据,并由所述读数据端口输出。
13.根据权利要求12所述的数据读写方法,其特征在于,所述写控制单元包括:写控制多路复用器和N个写控制触发器;
所述写控制单元获取写宽度信号端口输入的待写入数据的位宽为n1×w,在外部输入有效的写使能信号的情况下,所述写控制单元从写数据端口输入数据中提取位宽为n1×w的待写入数据,并在所述时钟端口的时钟信号为有效信号时,将所述待写入数据写入n1个写目标存储器,包括:
所述写控制多路复用器获取写宽度信号端口输入的待写入数据的位宽为n1×w;
所述写控制多路复用器获取写数据端口输入数据,以及写使能端口的写使能信号,并从写数据端口输入数据中提取位宽为n1×w的待写入数据;
所述写控制多路复用器根据待写入数据的位宽n1×w和子数据位宽w,按预设写规则,确定n1个所述写目标存储器,并将所述待写入数据按数据位顺序分成n1份写数据,在每份写数据基础上增加一位写使能信号位;
所述写控制多路复用器将n1份增加写使能信号位的写数据分别传输至与n1个所述写目标存储器对应的n1个写控制触发器;
n1个所述写控制触发器在所述时钟端口的时钟信号为有效信号时,分别将n1份写使能信号位传输至对应的n1个所述写目标存储器的写使能端,n1份写数据传输至对应的n1个所述写目标存储器的数据输入端。
14.根据权利要求13所述的数据读写方法,其特征在于,所述写控制多路复用器根据待写入数据的位宽n1×w和子数据位宽w,按预设写规则,确定n1个所述写目标存储器,包括:
所述写控制多路复用器根据待写入数据的位宽n1×w、子数据位宽w及上一次写入的存储器的编号p,按存储器编号顺序确定n1个所述写目标存储器为(p+1) mod N、(p+2) modN、…、(p+j) mod N、…、(p+n1) mod N,其中,j=1,2,…,n1,mod为取余运算。
15.根据权利要求13所述的数据读写方法,其特征在于,所述读控制单元包括:读控制多路复用器和N个读控制触发器;
在外部输入有效的读使能信号的情况下,所述读控制单元在所述时钟端口的时钟信号为有效信号时,根据读宽度信号端口输入的待读取数据的位宽n2×w确定n2个读目标存储器,包括:
所述读控制多路复用器获取读宽度信号端口输入的待读取数据的位宽n2×w,以及读使能端口的读使能信号;
所述读控制多路复用器根据待读取数据的位宽n2×w和子数据位宽w,按与所述预设写规则相应的读规则,确定n2个读目标存储器;
在所述时钟端口的时钟信号为有效信号时,所述读控制多路复用器通过与n2个所述读目标存储器相应的读控制触发器将读使能信号传输至n2个所述读目标存储器的读使能端,使得n2个所述读目标存储器的读使能端有效。
16.根据权利要求15所述的数据读写方法,其特征在于,所述读控制多路复用器根据待读取数据的位宽n2×w和子数据位宽w,按与所述预设写规则相应的读规则,确定n2个读目标存储器,包括:
所述读控制多路复用器根据待读取数据的位宽n2×w、子数据位宽w及上一次读取的存储器的编号q,在所述时钟端口的时钟触发下按存储器编号顺序确定n2个所述读目标存储器为(q+1) mod N、(q+2) mod N、…、(q+j) mod N、…、(q+n2) mod N,其中,j=1,2,…,n2,mod为取余运算。
17.根据权利要求15所述的数据读写方法,其特征在于,所述读操作单元包括:读操作多路复用器和N个读操作触发器;
所述读操作单元在所述时钟端口的时钟信号为有效信号时,读取所述读目标存储器中的所述待读取数据,并由所述读数据端口输出,包括:
所述读操作多路复用器接收n2个所述读目标存储器输出的n2份读数据,并将n2份读数据输出至对应的n2个读操作触发器,其中,在n2个所述读目标存储器读使能端有效,且所述时钟端口的时钟信号为有效信号时,n2个所述读目标存储器将n2份读数据输出至所述读操作多路复用器;
在所述时钟端口的时钟信号为有效信号时,n2个所述读操作触发器将n2份读数据由所述读数据端口输出。
18.根据权利要求17所述的数据读写方法,其特征在于,所述读操作多路复用器接收n2个所述读目标存储器输出的n2份读数据,并将n2份读数据输出至对应的n2个读操作触发器,包括:
所述读操作多路复用器接收n2个所述读目标存储器输出的n2份读数据,将所述n2份读数据按数据位顺序排序,将排序后的n2份读数据输出至对应的n2个读操作触发器。
19.根据权利要求12至18中任一项所述的数据读写方法,其特征在于,所述数据存储装置还包括:数据统计单元,所述方法还包括:
在所述待写入数据被写入和/或所述待读取数据被读取时,所述数据统计单元根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量。
20.根据权利要求19所述的数据读写方法,其特征在于,所述数据统计单元包括:计数器和寄存器;
在所述待写入数据被写入和/或所述待读取数据被读取时,所述数据统计单元根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,统计所述存储单元中的实时数据量,包括:
所述计数器在检测到写使能端口和/或读使能端口为有效信号时,获取待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,并获取寄存器反馈的上次统计的实时数据量;
根据待写入数据的位宽n1×w和/或待读取数据的位宽n2×w,以及寄存器反馈的上次统计的实时数据量,统计所述存储单元中当前的实时数据量;
将所述当前的实时数据量输出至所述寄存器。
21.一种电子设备,其特征在于,包括:如权利要求1 ~ 11中任一项所述的数据存储装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311239314.2A CN116991330A (zh) | 2023-09-25 | 2023-09-25 | 数据存储装置、数据读写方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311239314.2A CN116991330A (zh) | 2023-09-25 | 2023-09-25 | 数据存储装置、数据读写方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116991330A true CN116991330A (zh) | 2023-11-03 |
Family
ID=88532331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311239314.2A Pending CN116991330A (zh) | 2023-09-25 | 2023-09-25 | 数据存储装置、数据读写方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116991330A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853522A (zh) * | 2012-12-06 | 2014-06-11 | 辉达公司 | 折叠式fifo存储器生成器 |
CN107085560A (zh) * | 2017-04-28 | 2017-08-22 | 西安微电子技术研究所 | 一种emif接口与ahb/apb时序桥接电路及其控制方法 |
CN116431079A (zh) * | 2023-04-28 | 2023-07-14 | 上海壁仞智能科技有限公司 | 数据读取、写入方法及装置、带宽转换装置和电子设备 |
CN116561054A (zh) * | 2023-05-06 | 2023-08-08 | 杭州电子科技大学 | 一种基于fpga的多路数据低延迟ddr片外访存方法 |
-
2023
- 2023-09-25 CN CN202311239314.2A patent/CN116991330A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853522A (zh) * | 2012-12-06 | 2014-06-11 | 辉达公司 | 折叠式fifo存储器生成器 |
CN107085560A (zh) * | 2017-04-28 | 2017-08-22 | 西安微电子技术研究所 | 一种emif接口与ahb/apb时序桥接电路及其控制方法 |
CN116431079A (zh) * | 2023-04-28 | 2023-07-14 | 上海壁仞智能科技有限公司 | 数据读取、写入方法及装置、带宽转换装置和电子设备 |
CN116561054A (zh) * | 2023-05-06 | 2023-08-08 | 杭州电子科技大学 | 一种基于fpga的多路数据低延迟ddr片外访存方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5084841A (en) | Programmable status flag generator FIFO using gray code | |
KR102091302B1 (ko) | 스큐가 있는 다중 레인 통신 링크에서의 타임스탬프 보정 | |
US20050125590A1 (en) | PCI express switch | |
US5539739A (en) | Asynchronous interface between parallel processor nodes | |
JPH09222988A (ja) | コンピュータシステム及び第1の回路と第2の回路との間でデータを転送するインタフェース回路 | |
CN102918513A (zh) | 用于启用确定性接口的方法、装置和系统 | |
CN112565115A (zh) | Tcp数据的传输方法、装置、计算机设备及存储介质 | |
CN108712299A (zh) | 一种监测直播延时的方法、装置、设备和计算机存储介质 | |
US3755788A (en) | Data recirculator | |
JPS58103045A (ja) | 信号発生順序検出回路 | |
JPS61500824A (ja) | 通信インタ−フェイス | |
JPH08149120A (ja) | 非同期シリアルデータ受信装置 | |
US4314361A (en) | Data buffer memory of the first-in, first-out type comprising a fixed input and a variable output | |
US7756165B2 (en) | Method and arrangement for producing a time interval between data frames | |
US9122411B2 (en) | Signal order-preserving method and apparatus | |
CN116991330A (zh) | 数据存储装置、数据读写方法及电子设备 | |
CN115221082B (zh) | 一种数据缓存方法、装置及存储介质 | |
CN100361090C (zh) | 用于按序列存取多个存储数据单元的方法和装置 | |
Kumar et al. | Verification of asynchronous FIFO using system Verilog | |
US20060075184A1 (en) | Synchronous\asynchronous memory device with single port memory unit | |
US10007485B2 (en) | Zero-delay compression FIFO buffer | |
JPH0630017A (ja) | Atmセル流変換装置 | |
US20240171309A1 (en) | Data transmission apparatus and method of cross-domain data transmission | |
US7620752B1 (en) | Circuit for and method of processing data input to a first-in first-out memory | |
George et al. | Development of a General Purpose First-In-First-Out (FIFO) Core |
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 |