CN111338983A - 一种高速数据缓存结构及方法 - Google Patents
一种高速数据缓存结构及方法 Download PDFInfo
- Publication number
- CN111338983A CN111338983A CN202010100156.2A CN202010100156A CN111338983A CN 111338983 A CN111338983 A CN 111338983A CN 202010100156 A CN202010100156 A CN 202010100156A CN 111338983 A CN111338983 A CN 111338983A
- Authority
- CN
- China
- Prior art keywords
- data
- bram
- read
- port
- cache
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 241001596957 Brama Species 0.000 claims 1
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种高速数据缓存结构及方法,包括前端接收数据缓存单元、中端大容量数据缓冲单元、后端发送数据缓存单元以及缓存数据控制单元;所述前端接收数据缓存单元包括双口Block RAM,所述前端接收数据缓存单元的BRAM的A口用于写入要缓存的数据,B口用于读出至中端大容量数据缓存单元;所述中端大容量数据缓存单元包括高速缓存芯片DDR3,在执行写入读出采用分时的“乒乓”操作,过程中保证写优先级高于读;所述后端发送数据缓存单元包括双口Block RAM,所述后端发送数据缓存单元的BRAM的A口用于写入DDR读出的数据,B口用于读出数据至下一步操作端;所述缓存控制单元用于控制上述三个单元的执行过程。本发明在大容量、实时性要求较高的系统可以提高程序执行效率,降低误码率。
Description
技术领域
本发明涉及一种高速数据缓存结构及方法,属于集成电路和微电子技术领域。
背景技术
随着现代信息技术的高速发展,大容量数据的缓存在采集存储系统中至关重要。常见的高速电路板缓存单元经常为FIFO,BRAM,DDR3 SDRAM等,异步FIFO与双口BRAM都有独立的读写功能可以广泛应用在跨时钟域系统中。相对于异步FIFO,双口BRAM的缓存量更大可以支持两路不同大小时钟的读写操作,对地址的操作也更直接。但是超大容量采集系统的数据缓存如高速相机,仅仅依靠BRAM肯定不能满足需求。
DDR SDRAM缓存量为GB级别,DDR3速率可达2133Mhz,DDR4最高可达4266Mhz完全可以满足缓存需求。但是DDR的电路信号复杂,不利于工程人员控制,需要自己开发一个复杂的控制模块进行操作,这加大了开发难度与时间成本。
发明内容
本发明的目的是针对上述存在的问题提供一种高速数据缓存结构及方法,设计一种将BRAM与DDR优点结合起来的多级缓存系统,做成一种大容量的双口BRAM数据缓存系统,提供BRAM对外接口,方便工程人员使用,操作便捷,容量可以达到2G以上,速度可达10Gbt/s以上,适用于高速,大容量实时采集系统中。
本发明实现上述目的所采用的技术方案是:
一种高速数据缓存结构,包括前端接收数据缓存单元、中端大容量数据缓冲单元、后端发送数据缓存单元以及缓存数据控制单元;所述前端接收数据缓存单元包括双口Block RAM,所述前端接收数据缓存单元的BRAM的A口用于写入要缓存的数据,B口用于读出至中端大容量数据缓存单元;所述中端大容量数据缓存单元包括高速缓存芯片DDR3,在执行写入读出采用分时的“乒乓”操作,过程中保证写优先级高于读;所述后端发送数据缓存单元包括双口Block RAM,所述后端发送数据缓存单元的BRAM的A口用于写入DDR读出的数据,B口用于读出数据至下一步操作端;所述缓存控制单元用于控制上述三个单元的执行过程;
所述的前端接收数据缓存单元的BRAM记为1号BRAM,data_in为外界输入口,当data_valid信号为高时允许向A口写入数据,A口数据宽度根据data_in输入宽度进行调节;
所述的后端发送数据缓存单元的BRAM记为2号BRAM,在DDR的读出操作时即App_cmd信号置高时,2号BRAM的A口接收中端大容量数据缓存单元数据,接着2号BRAM B口的Dout_valid信号置高时输出有效数据信号Doutb。
一种高速数据缓存结构的缓存方法,该方法包括以下步骤:
先向DDR的A空间即DDR的一面rank的bank0到bank3中写入1号BRAM读出的数据;中端大容量数据缓存单元接收1号BRAM B口的输出数据doutb并在写使能信号有效及app_cmd==0时将doutb数据写入DDR中,在读使能信号有效及app_cmd==1时将app_rd_data数据写入2号BRAM B口;整个过程执行分时“乒乓”操作。
所述的高速数据缓存结构的缓存方法,所述的缓存控制单元判断各单元区的数据读写状况,控制数据流走向,判断的依据是:1号BRAM B口进行读操作即DDR要数据写入操作时,Bd_doutb_finished信号置高;当DDR进行读操作时即2号BRAM A口进行写入操作时,app_rd_valid信号置高。
所述的高速数据缓存结构的缓存方法,所述的“乒乓”操作的具体方法是:当DDR的A空间即DDR的一面rank的bank0到bank3中写入1号BRAM读出的数据后,
4.1.缓存控制单元判断此时1号BRAM是否有读操作,如有则向DDR的B空间即另一面rank的bank4到bank7中写入数据,若1号BRAM没有读操作则读取DDR的A空间即bank0到bank3中的数据写入2号BRAM中,读取过程中应判断是否有写入操作,如有则进行写入操作,写入和读取的空间都结束时进入步骤4.2;
4.2.缓存控制单元判断此时1号BRAM是否有读操作,如有则向DDR的A空间即rank0的bank0到bank3中写入数据,若1号BRAM没有读操作则读取DDR的B空间即bank4到bank7中的数据写入2号BRAM中,读取过程中应判断是否有写入操作,如有则进行写入操作,写入和读取的空间都结束时进入步骤4.1;
所述的高速数据缓存结构的缓存方法,所述的1号BRAM,2号BRAM为双口BRAM的读写口具有独立时钟,操作过程中读写同时进行,过程中保证读速率高于写速率
本发明的有益效果是:本发明公开的一种高速数据缓存结构及方法,采用BRAM写入,BRAM读出中间采用大容量DDR分时“乒乓”缓存。首先从结构上来看三级缓存结构可以提高系统的容错性与稳定性,双口BRAM相对于FIFO等其他易操作的小缓存单元来说容量更大,具有独立读写信号可同时以不同频率进行读写操作,地址控制相对也更简单直接。对外用BRAM接口代替DDR操作简单,信号不复杂。其次从缓存方法上看,本发明在单片DDR容量够用的基础上创新性的提出分时“乒乓”操作适用于读写只有一根地址线的大容量存储空间,可以提高读写速率,降低延时。
本发明在高速、大容量实时采集系统如高帧频相机,计算机高速存储系统如硬盘阵列等都具有广泛的应用场景,操作简单明了、节省工程人员开发成本,提高效率。
附图说明
图1是本发明一种高速数据缓存结构的系统结构示意图;
图2是本发明一种高速数据缓存结构及方法的工作流程示意图;
图3是本发明一种高速数据缓存结构的缓存方法状态机;
图4是本发明一种高速数据缓存结构的缓存方法流程图。
具体实施方式
下面结合说明书附图和具体的实施例,对本发明作详细描述:
下面结合附图并通过实施例对本发明作进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
如图1所示,本发明提供一种高速数据缓存结构包括前端接收数据缓存单元、中端大容量数据缓冲单元、后端发送数据缓存单元以及缓存数据控制单元四部分组成。前端接收数据缓存单元主要由双口Block RAM组成,前端接收数据缓存单元的BRAM的A口写入要缓存的数据,B口读出至中端大容量数据缓存单元。中端大容量数据缓存单元主要由高速缓存芯片DDR3组成,执行写入读出采用分时的“乒乓”操作,过程中保证写优先级高于读。后端发送数据缓存单元主要由双口Block RAM组成,BRAM的A口写入DDR读出的数据,B口读出数据至下一步操作端。缓存控制单元用于控制上述三个单元的执行过程。
本实施例中采用MT8JTF12864HZ-1G6型的DDR3,是一个双rank,位宽64位,有8个Bank每个Bank的row时14,colum是10,大小为128M的DDR3。DDR3的地址空间28位,高三位用于选择要操作的Bank0至Bank7,本系统中将DDR3的8个Bank分为存储空间A和B,分别对应于Bank0至Bank3,Bank4至Bank7。使用提供的MIG核配置DDR3的工作时钟800MHz,用户时钟200MHz,用户位宽512bit,物理位宽64bit,支持高低下降沿同时采样,最大传输带宽为200M*512bit满足高速缓存需求。前端BRAM A口根据输入数据宽度进行调节,B口最高以512bit宽度读出至DDR,后端BRAM A口最高以512bit宽度接收中端大容量数据缓存单元数据,并根据需要调节B口输出宽度。
如图2所示当1号BRAM进行读操作即DDR3进行写操作时,此时缓存控制单元的Bd_doutb_finished信号置高,接着配置好DDR3的写入地址,开启写使能,当App_rdy、app_wdf_rdy信号同时为高时表明可以进行写入操作。在DDR3的分时“乒乓”操作过程中进行读操作时数据相对于地址会有一段时间延迟,当App_rd_valid信号为高时表明读出数据有效,此时2号BRAM开启写操作。
如图3、4所示一种高速数据缓存结构的缓存方式,包括以下步骤:
步骤一:先向DDR的A空间即DDR的一面rank的bank0至bank3中写入1号BRAM B口读出的数据,当full_w信号为高时表示操作的地址空间写满。
步骤二:判断此时1号BRAM是否有读操作,即当App_rdy、app_wdf_rdy信号为高时向DDR的B空间即另一面rank的bank4到bank7中写入数据,没有写满则一直进行写操作直到写满full_w信号为高。在写入过程中只要App_rdy、app_wdf_rdy信号为高则一直进行写入操作直到写满。写满后判断此时A空间是否读完即full_r是否为高,如果没有则进行读取操作一直读完A空间地址。当full_r与full_w信号同时为高时进入下一阶段。反之如果App_rdy、app_wdf_rdy信号不满足同时为高,则先进行A空间的读取操作直至读满地址空间。读取过程中时刻判断是否有写入操作,如有则进行写入操作,即写的优先级高于读。当写入、读取的地址空间都结束时才可进入下一步骤。
步骤三:判断此时1号BRAM是否有读操作,即当App_rdy、app_wdf_rdy信号为高时向DDR的A空间的bank0到bank3中写入数据,没有写满则一直进行写操作直到写满full_w信号为高。在写入过程中只要App_rdy、app_wdf_rdy信号为高则一直进行写入操作直到写满。写满后判断此时B空间是否读完即full_r是否为高,如果没有则进行读取操作一直读完B空间地址。当full_r与full_w信号同时为高时进入下一阶段。反之如果App_rdy、app_wdf_rdy信号不满足同时为高,则先进行B空间的读取操作直至读满地址空间。读取过程中时刻判断是否有写入操作,如有则进行写入操作,即写的优先级高于读。当写入、读取的地址空间都结束时才可进入下一步骤。
步骤四:切换至步骤二即写DDR B空间,读A空间,接着不断重复二三步骤即可完成分时“乒乓”操作。
以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明创造的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。
Claims (5)
1.一种高速数据缓存结构,其特征是:包括前端接收数据缓存单元、中端大容量数据缓冲单元、后端发送数据缓存单元以及缓存数据控制单元;所述前端接收数据缓存单元包括双口Block RAM,所述前端接收数据缓存单元的BRAM的A口用于写入要缓存的数据,B口用于读出至中端大容量数据缓存单元;所述中端大容量数据缓存单元包括高速缓存芯片DDR3,在执行写入读出采用分时的“乒乓”操作,过程中保证写优先级高于读;所述后端发送数据缓存单元包括双口Block RAM,所述后端发送数据缓存单元的BRAM的A口用于写入DDR读出的数据,B口用于读出数据至下一步操作端;所述缓存控制单元用于控制上述三个单元的执行过程;
所述的前端接收数据缓存单元的BRAM记为1号BRAM,data_in为外界输入口,当data_valid信号为高时允许向A口写入数据,A口数据宽度根据data_in输入宽度进行调节;
所述的后端发送数据缓存单元的BRAM记为2号BRAM,在DDR的读出操作时即App_cmd信号置高时,2号BRAM的A口接收中端大容量数据缓存单元数据,接着2号BRAM B口的Dout_valid信号置高时输出有效数据信号Doutb。
2.一种高速数据缓存结构的缓存方法,其特征是:该方法包括以下步骤:
先向DDR的A空间即DDR的一面rank的bank0到bank3中写入1号BRAM读出的数据;中端大容量数据缓存单元接收1号BRAM B口的输出数据doutb并在写使能信号有效及app_cmd==0时将doutb数据写入DDR中,在读使能信号有效及app_cmd==1时将app_rd_data数据写入2号BRAM B口;整个过程执行分时“乒乓”操作。
3.根据权利要求2所述的高速数据缓存结构的缓存方法,其特征是:所述的缓存控制单元判断各单元区的数据读写状况,控制数据流走向,判断的依据是:1号BRAM B口进行读操作即DDR要数据写入操作时,Bd_doutb_finished信号置高;当DDR进行读操作时即2号BRAMA口进行写入操作时,app_rd_valid信号置高。
4.根据权利要求2所述的高速数据缓存结构的缓存方法,其特征是:所述的“乒乓”操作的具体方法是:当DDR的A空间即DDR的一面rank的bank0到bank3中写入1号BRAM读出的数据后,
4.1.缓存控制单元判断此时1号BRAM是否有读操作,如有则向DDR的B空间即另一面rank的bank4到bank7中写入数据,若1号BRAM没有读操作则读取DDR的A空间即bank0到bank3中的数据写入2号BRAM中,读取过程中应判断是否有写入操作,如有则进行写入操作,写入和读取的空间都结束时进入步骤4.2;
4.2.缓存控制单元判断此时1号BRAM是否有读操作,如有则向DDR的A空间即rank0 的bank0到bank3中写入数据,若1号BRAM没有读操作则读取DDR的B空间即bank4到bank7中的数据写入2号BRAM中,读取过程中应判断是否有写入操作,如有则进行写入操作,写入和读取的空间都结束时进入步骤4.1。
5.根据权利要求2或3或4所述的高速数据缓存结构的缓存方法,其特征是:所述的1号BRAM,2号BRAM为双口BRAM的读写口具有独立时钟,操作过程中读写同时进行,过程中保证读速率高于写速率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010100156.2A CN111338983B (zh) | 2020-02-18 | 2020-02-18 | 一种高速数据缓存结构及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010100156.2A CN111338983B (zh) | 2020-02-18 | 2020-02-18 | 一种高速数据缓存结构及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338983A true CN111338983A (zh) | 2020-06-26 |
CN111338983B CN111338983B (zh) | 2024-03-12 |
Family
ID=71183843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010100156.2A Active CN111338983B (zh) | 2020-02-18 | 2020-02-18 | 一种高速数据缓存结构及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338983B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546278A (zh) * | 2022-02-23 | 2022-05-27 | 中科芯集成电路有限公司 | 一种高频图像数据写sata接口固态硬盘处理方法 |
CN116150046A (zh) * | 2023-04-21 | 2023-05-23 | 无锡沐创集成电路设计有限公司 | 一种高速缓存电路 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7242633B1 (en) * | 2004-09-10 | 2007-07-10 | Xilinx, Inc. | Memory device and method of transferring data in memory device |
CN101236528A (zh) * | 2008-02-20 | 2008-08-06 | 华为技术有限公司 | 一种乒乓控制的方法及装置 |
CN104766033A (zh) * | 2015-04-10 | 2015-07-08 | 重庆大学 | 一种基于压缩感知提高声表面波阅读器接收精度的方法 |
CN104850501A (zh) * | 2015-04-29 | 2015-08-19 | 中国人民解放军国防科学技术大学 | 一种ddr存储器访存地址映射方法及访存地址映射单元 |
CN206557767U (zh) * | 2016-11-11 | 2017-10-13 | 北京润科通用技术有限公司 | 一种基于乒乓操作结构控制数据缓存的缓存系统 |
-
2020
- 2020-02-18 CN CN202010100156.2A patent/CN111338983B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7242633B1 (en) * | 2004-09-10 | 2007-07-10 | Xilinx, Inc. | Memory device and method of transferring data in memory device |
CN101236528A (zh) * | 2008-02-20 | 2008-08-06 | 华为技术有限公司 | 一种乒乓控制的方法及装置 |
CN104766033A (zh) * | 2015-04-10 | 2015-07-08 | 重庆大学 | 一种基于压缩感知提高声表面波阅读器接收精度的方法 |
CN104850501A (zh) * | 2015-04-29 | 2015-08-19 | 中国人民解放军国防科学技术大学 | 一种ddr存储器访存地址映射方法及访存地址映射单元 |
CN206557767U (zh) * | 2016-11-11 | 2017-10-13 | 北京润科通用技术有限公司 | 一种基于乒乓操作结构控制数据缓存的缓存系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546278A (zh) * | 2022-02-23 | 2022-05-27 | 中科芯集成电路有限公司 | 一种高频图像数据写sata接口固态硬盘处理方法 |
CN116150046A (zh) * | 2023-04-21 | 2023-05-23 | 无锡沐创集成电路设计有限公司 | 一种高速缓存电路 |
CN116150046B (zh) * | 2023-04-21 | 2023-07-14 | 无锡沐创集成电路设计有限公司 | 一种高速缓存电路 |
Also Published As
Publication number | Publication date |
---|---|
CN111338983B (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1326150C (zh) | 同步猝发半导体存储器件 | |
US7251714B2 (en) | Method and system for capturing and bypassing memory transactions in a hub-based memory system | |
CN101446924B (zh) | 一种数据存储及获取方法、系统 | |
JP2008532140A (ja) | 複数内部データバス及びメモリバンクインターリービングを有するメモリデバイス及び方法 | |
CN111984563B (zh) | 基于fpga的ddr3读写控制器及矩阵转置实现方法 | |
JP2002063069A (ja) | メモリ制御装置、データ処理システム及び半導体装置 | |
CN111338983B (zh) | 一种高速数据缓存结构及方法 | |
US5996052A (en) | Method and circuit for enabling a clock-synchronized read-modify-write operation on a memory array | |
JP2008077825A (ja) | マルチポートメモリ装置 | |
CN109669888A (zh) | 一种可配置且高效的嵌入式Nor-Flash控制器及控制方法 | |
US20110296124A1 (en) | Partitioning memory for access by multiple requesters | |
JP4618758B2 (ja) | クワッドデータレートシンクロナス半導体メモリ装置の駆動方法 | |
JP2000506301A (ja) | 高速コマンド入力を有する簡単化されたクロックドdram | |
CN108874684B (zh) | 拆分cache缓存的nvdimm接口数据读写装置 | |
JP2014154119A (ja) | メモリ制御装置及び半導体記憶装置 | |
CN216014252U (zh) | 基于hp接口的多通道数据采集存储回放卡及系统 | |
CN102789424B (zh) | 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器 | |
CN111966628A (zh) | 一种多核组合式大容量数据同步存储方法 | |
WO2001016954A1 (en) | Pipeline structure of memory for high-fast row-cycle | |
CN113740851B (zh) | 一种分时复用单ddr的sar成像数据处理系统 | |
KR20240112970A (ko) | 동기식 메모리들에 대한 판독 클록 시작 및 중지 | |
US6785190B1 (en) | Method for opening pages of memory with a single command | |
JP5633562B2 (ja) | メモリシステム及びメモリインターフェース装置 | |
CN110413234B (zh) | 一种固态硬盘 | |
US20150074314A1 (en) | Memory, memory system and memory control method |
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 |