CN111723027B - 一种基于电力边缘网关的动态存储缓冲区读取控制方法 - Google Patents
一种基于电力边缘网关的动态存储缓冲区读取控制方法 Download PDFInfo
- Publication number
- CN111723027B CN111723027B CN202010407141.0A CN202010407141A CN111723027B CN 111723027 B CN111723027 B CN 111723027B CN 202010407141 A CN202010407141 A CN 202010407141A CN 111723027 B CN111723027 B CN 111723027B
- Authority
- CN
- China
- Prior art keywords
- data
- ddr
- read
- fifo
- read request
- 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
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/0877—Cache access modes
-
- 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/0893—Caches characterised by their organisation or structure
-
- 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
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种基于电力边缘网关的动态存储缓冲区及读取控制方法,涉及数据存储、超级计算、信息系统等领域,具体包含DDR数据使用模块和DDR数据传输模块,所述DDR数据传输模块包含读请求FIFO、DDR读控制器、DDR存储器、读数据FIFO;所述DDR数据使用模块包含DDR读请求产生模块、DDR数据使用端和计数模块;本发明提出的动态存储缓冲区读取控制方法,利用计数模块和两个缓存FIFO,通过比较计数模块的计数值和读请求数据量,有效实现了对DDR存储器的缓存数据的动态读取,避免了数据的溢出和读数据FIFO的存储拥塞。
Description
技术领域
本发明涉及电气工程科学领域,具体涉及数据存储、超级计算、信息系统等领域,尤其涉及一种基于电力边缘网关的动态存储缓冲区读取控制方法。
背景技术
随着信息技术迅速发展,如何实现大容量数据的高效存储逐渐成为一个亟待解决的问题。DDR存储器运用了先进的同步电路,使指定地址、数据的输送和输出主要步骤既独立执行,又保持与CPU完全同步。同时使用了DLL(Delay Locked Loop,延时锁定回路提供一个数据滤波信号)技术,当数据有效时,存储控制器可使用这个数据滤波信号来精确定位数据,本质上不需要提高时钟频率就能加倍提高SDRAM的速度,它允许在时钟脉冲的上升沿和下降沿读出数据,因其速度是标准SDRAM的两倍。
虽然DDR存储器传输速率快、功耗低,但数据读取特性是存在着有一定延迟的特点,发送读请求之后不会马上返回数据,需要延迟一定的时钟周期。传输过程存在一定的不确定性,数据容易溢出,会导致数据的读取错误的情况,从而降低了DDR的读取效率。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是避免数据存储缓冲区的通道堵塞,采用计数的方法,提高流水结构的效率。本发明公开实现的方法通过命令请求和读出数据进行分离,利用计数模块和两个缓存FIFO,有效实现数据量的动态读取,从而提高DDR的工作效率。
一种动态存储缓冲区读取控制方法,所述方法基于DDR数据使用模块、DDR数据传输模块,所述DDR数据传输模块包含读请求FIFO、DDR读控制器、DDR存储器、读数据FIFO,DDR数据使用模块包含DDR读请求产生模块、DDR数据使用端和计数模块,所述计数模块计数值M在初始时设为读数据FIFO的存储容量,当DDR读请求产生模块有读数据需求时,述DDR读请求产生模块首先检测读请求FIFO是否为满的FIFO FULL信号,如果读请求FIFO为满,则DDR读请求产生模块继续等待,如果读请求FIFO为非满,则继续检查计数模块的计数值M是否大于等于当前的读请求数据量X,如果小于则DDR读请求产生模块继续等待,如果大于等于则DDR读请求产生模块向读请求FIFO发送写使能,并同时向读请求FIFO和计数模块发送当前的读请求数据量X。
一种动态存储缓冲区读取控制方法,所述计数模块可以接收来自DDR读请求产生模块的读请求数据量X和来自DDR数据使用端读数据量Y,计数模块收到DDR请求产生模块的读请求数据量X时,使计数模块的计数值M=M-X;计数模块收到DDR数据使用端读数据量Y时,使计数模块的计数值M=M+Y;如果所述计数模块同时收到读请求数据量X和读数据量Y,则先接收来自DDR数据使用端的读数据量Y,使计数模块的计数值M=M+Y, 后响应来自DDR读请求产生模块的读请求数据量X,使计数模块的计数值M=M-X。
一种动态存储缓冲区读取控制方法,所述读请求FIFO向DDR读控制器发送读数据请求,DDR读控制器向DDR存储器发送DDR读控制信息,DDR存储器收到读控制信息后,向读数据FIFO发送读数据;DDR数据使用端根据当先数据使用需求,首先判断数据FIFO空信息,如果读数据FIFO为空,则等待,如果数据FIFO为非空,则向读数据FIFO发送数据FIFO读使能;数据FIFO收到数据FIFO读使能请求后向DDR数据使用端发送读数据,并同时记录读数据量Y;DDR数据使用端数据后向计数模块发送读数据量Y。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
本发明提出了一种动态存储缓冲区读取控制方法,将请求数据命令和得到的请求数据进行分离,利用计数模块和两个缓存FIFO,通过比较计数模块的计数值和读请求数据量,有效实现了对DDR存储器的缓存数据的动态读取,避免了数据的溢出和读数据FIFO的存储拥塞。
附图说明
图1是本发明的系统框图;
图2是本发明的读请求产生流程图;
图3是本发明实施例一参考时序图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下描述中,为了说明而不是为了限定,提出了诸如特定内部程序、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本发明公开了一种基于电力边缘网关的动态存储缓冲区读取控制方法,包括DDR数据使用模块和DDR数据传输模块。在DDR数据使用模块中,DDR读请求产生模块依据DDR数据传输模块中读请求FIFO给出的请求FIFO FULL信号以及计数模块的当前计数值M,向读请求FIFO给出FIFO写使能信号和数据量,假设为数据量为X,并将X送入计数模块。在DDR数据传输模块,DDR控制器解析来自读请求FIFO的读出的数据,并将读控制相关信息送入DDR存储器。经过K个时钟后,DDR存储器给出读出的数据并将读出的数据送入读数据FIFO缓存。在DDR数据使用端,依据DDR数据传输模块的读数据FIFO给出的数据FIFO空信号,给出数据FIFO的读使能。依据读出的数据或者使能的有效时钟周期可以得到本次DDR数据使用端读出的数据量Y,并将Y送入计数模块,读出的数据供下级模块使用。在计数模块中,计数模块的初始值M为读数据FIFO的存储容量。当接收到X时,M=M-X;接收到Y时,M=M+Y;同时接收到X,Y时,先进行M=M+Y,后进行M=M-X。
本发明提出的动态存储缓冲区读取控制方法,利用计数模块和两个缓存FIFO,通过比较计数模块的计数值和读请求数据量,有效实现了对DDR存储器的缓存数据的动态读取,避免了数据的溢出和读数据FIFO的存储拥塞。
参见图1,为本次发明的系统框图。主要包括DDR数据使用模块和DDR数据传输模块。DDR数据使用模块中包含三个子模块,分别为DDR读请求产生模块、计数模块、DDR数据使用端;DDR数据传输模块包含4个子模块,分别为读请求FIFO、读数据FIFO、DDR读控制器、DDR存储器。
首先计数模块的初试计数值M设定为读数据FIFO的存储容量值。参见图2,DDR读请求产生模块,首先根据读请求FIFO输出的请求FIFO FULL信号,判断读请求FIFO是否写满。如果写满,则进行等待,不产生相关使能信号和数据。如果非满,则继续判断,当前请求的数据量X是否小于等于计数模块的计数值M,如果小于等于,则DDR读请求产生模块给出读请求FIFO的请求FIFO写使能信号和读请求数据并向计数模块给出请求数据量X。否则,该模块继续等待。
DDR读控制器将来自读请求FIFO的数据进行解析,给出DDR存储器相关的读控制信息,主要包括:读命令、读地址、读使能信号。DDR存储器在接收到DDR读控制器给出的一组读控制信号后,经过K个时钟的延迟,输出读数据。读数据FIFO将DDR存储器输出的数据在本级进行缓存。DDR数据使用端依据读数据FIFO给出的数据FIFO空信号,判断该FIFO是否为空。如果为空,则DDR数据使用端等待。如果非空,则向读数据FIFO给出数据FIFO读使能信号。读数据FIFO收到使能信号后,给出读取的数据,并记录读取的数据量Y。DDR数据使用端收到读取的数据后,向计数模块发送读数据量Y并将读到的数据给到下级模块。
对于计数模块,当计数模块收到来自DDR读请求模块给出的去请求数据量X后,进行M=M-X操作;当计数模块收到来自DDR数据使用模块的读数据量Y后,进行M=M+Y操作;如果同时接收到X和Y,则先响应DDR数据使用端的读数据量Y,使得计数值M = M+Y,后响应DDR数据请求模块的读请求数据量X,使得计数值M=M-X;
实施例一
参见图1,为了说明的需要,M为计数模块的当前计数值,X为DDR读请求产生模块一次读请求的数据量,Y为DDR数据使用端接收到来自读数据FIFO的读数据量。参考图3,DDR读请求产生模块发起了3次读请求,DDR数据使用端发起了两次读数据FIFO操作。假设读数据FIFO的存储容量为64,即可以存储与FIFO位宽相匹配的数据64个。故计数模块的当前计数值M初始化计数值为64。经过k个时钟后,参见图2,DDR读请求产生模块检测到读请求FIFO非满。并且当前计数值64大于本次想要读取的数据个数32,因此,给出了读请求FIFO的写使能信号req_fifo_en有效,同时将读请求数据量X=32送入计数模块,计数值由M=64,变为M=32。第一次读请求操作结束。
在发起第一次读请求时,DDR数据使用端,检测到读数据FIFO非空,发起了第一次读数据操作。读数据FIFO读使能信号data_fifo_en四个时钟有效,表明读出了4个数据,4个时钟节拍后,data_fifo_en无效,给出本次读数据个数Y = 4并将Y送入计数模块。计数模块检测到Y后,计数值由M = 32,变为M = 36。经过2个时钟,发起了第二次读数据操作。读使能信号data_fifo_en依旧保持四个时钟有效,Y = 4。
在第二次读数据操作,如图中所示读出数据为7时,在DDR读请求产生模块端,参见图2,通过判断读请求FIFO非满且请求数据X = 16小于当前计数值M = 36,故发起了第二次读请求操作。从而在读数据FIFO读出的数据为9的当前时钟下,计数模块同时检测到X = 16和Y = 4。先响应Y,M = 40,后响应X,M = 24。
经过2个时钟后,DDR读请求端发起了第三次请求操作。由于请求值X = 64大于当前的计数值M = 24,故DDR读请求产生模块进入等待状态。
以上详细描述了本发明的具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (2)
1.一种基于电力边缘网关的动态存储缓冲区,其特征在于:包含DDR数据使用模块和DDR数据传输模块,所述DDR数据传输模块包含读请求FIFO、DDR读控制器、DDR存储器、读数据FIFO;
所述DDR数据使用模块包含DDR读请求产生模块、DDR数据使用端和计数模块;其中,所述DDR读请求产生模块分别连接读请求FIFO和计数模块,所述读请求FIFO的输出端连接DDR读控制器的输入端,所述DDR读控制器的输出端连接DDR存储器的输入端,所述DDR存储器的输出端连接读数据FIFO的输入端,所述读数据FIFO与DDR数据使用端连接,所述DDR数据使用端的输出端连接计数模块的输入端;
计数模块计数值M在初始时设为读数据FIFO的存储容量,当DDR读请求产生模块有读数据需求时,通过DDR读请求产生模块首先检测读请求FIFO是否为满的FIFOFULL信号;若读请求FIFO为满,则DDR读请求产生模块继续等待,若读请求FIFO为非满,则继续检查计数模块的计数值M是否大于等于当前的读请求数据量X,若检查计数模块的计数值M小于当前的读请求数据量X,则DDR读请求产生模块继续等待,如果检查计数模块的计数值M大于等于当前的读请求数据量X,则DDR读请求产生模块向读请求FIFO发送写使能,并同时向读请求FIFO和计数模块发送当前的读请求数据量X;
所述计数模块接收来自DDR读请求产生模块的读请求数据量X和来自DDR数据使用端读数据量Y,计数模块收到DDR请求产生模块的读请求数据量X时,使计数模块的计数值M=M-X;计数模块收到DDR数据使用端读数据量Y时,使计数模块的计数值M=M+Y;若所述计数模块同时收到读请求数据量X和读数据量Y,则先接收来自DDR数据使用端的读数据量Y,使计数模块的计数值M=M+Y,后响应来自DDR读请求产生模块的读请求数据量X,使计数模块的计数值M=M-X。
2.一种基于权利要求1所述的电力边缘网关的动态存储缓冲区读取控制方法,其特征在于:所述读请求FIFO向DDR读控制器发送读数据请求,DDR读控制器向DDR存储器发送DDR读控制信息,DDR存储器收到读控制信息后,向读数据FIFO发送读数据;DDR数据使用端根据当先数据使用需求,判断数据FIFO空信息,若读数据FIFO为空,则等待,若数据FIFO为非空,则向读数据FIFO发送数据FIFO读使能;数据FIFO收到数据FIFO读使能请求后向DDR数据使用端发送读数据,并同时记录读数据量Y;DDR数据使用端收到读数据后向计数模块发送读数据量Y。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010407141.0A CN111723027B (zh) | 2020-05-14 | 2020-05-14 | 一种基于电力边缘网关的动态存储缓冲区读取控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010407141.0A CN111723027B (zh) | 2020-05-14 | 2020-05-14 | 一种基于电力边缘网关的动态存储缓冲区读取控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111723027A CN111723027A (zh) | 2020-09-29 |
CN111723027B true CN111723027B (zh) | 2022-06-24 |
Family
ID=72564511
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010407141.0A Active CN111723027B (zh) | 2020-05-14 | 2020-05-14 | 一种基于电力边缘网关的动态存储缓冲区读取控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111723027B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328523B (zh) * | 2020-10-28 | 2023-09-08 | 深圳市宏旺微电子有限公司 | 传输双倍速率信号的方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719104A (zh) * | 2009-11-24 | 2010-06-02 | 中兴通讯股份有限公司 | 一种同步动态存储器的控制系统及控制方法 |
CN102637148A (zh) * | 2011-07-08 | 2012-08-15 | 中国科学院计算技术研究所 | 一种基于ddr sdram的栈式数据缓存装置及其方法 |
CN105183665A (zh) * | 2015-09-08 | 2015-12-23 | 福州瑞芯微电子股份有限公司 | 一种数据缓存访问方法和数据缓存控制器 |
CN110569204A (zh) * | 2019-07-23 | 2019-12-13 | 广东工业大学 | 基于fpga和ddr3 sdram的可配置图像数据缓存系统 |
-
2020
- 2020-05-14 CN CN202010407141.0A patent/CN111723027B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719104A (zh) * | 2009-11-24 | 2010-06-02 | 中兴通讯股份有限公司 | 一种同步动态存储器的控制系统及控制方法 |
CN102637148A (zh) * | 2011-07-08 | 2012-08-15 | 中国科学院计算技术研究所 | 一种基于ddr sdram的栈式数据缓存装置及其方法 |
CN105183665A (zh) * | 2015-09-08 | 2015-12-23 | 福州瑞芯微电子股份有限公司 | 一种数据缓存访问方法和数据缓存控制器 |
CN110569204A (zh) * | 2019-07-23 | 2019-12-13 | 广东工业大学 | 基于fpga和ddr3 sdram的可配置图像数据缓存系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111723027A (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101692346B (zh) | 一种存储器数据采样装置及一种采样控制器 | |
US20060184757A1 (en) | Data memory controller that supports data bus invert | |
US7886122B2 (en) | Method and circuit for transmitting a memory clock signal | |
CN108038068B (zh) | 一种基于ddr读数据同步方法及系统 | |
CN110111825B (zh) | 伪静态随机存取存储器及其控制方法 | |
US5617551A (en) | Controller for refreshing a PSRAM using individual automatic refresh cycles | |
CN111723027B (zh) | 一种基于电力边缘网关的动态存储缓冲区读取控制方法 | |
CN115579036A (zh) | 一种基于fpga的ddr连续存储电路及其实现方法 | |
US6256716B1 (en) | Apparatus, system and method for reducing bus contention during consecutive read-write operations | |
CN102751966B (zh) | 延迟电路和存储器的潜伏时间控制电路及其信号延迟方法 | |
US8972790B2 (en) | Memory controller and memory access system with error detection using data comparison of loop-backed signals | |
CN115220528B (zh) | 时钟获得方法、装置、芯片、电子设备及存储介质 | |
CN111722827A (zh) | 一种高效ddr访问方法及应用 | |
CN108897696B (zh) | 一种基于DDRx存储器的大容量FIFO控制器 | |
CN1937075B (zh) | 数据传送操作完成检测电路和包含其的半导体存储器件 | |
CN102279801A (zh) | 存储器共享系统及方法 | |
US6915407B2 (en) | Method and apparatus for a low latency source-synchronous address receiver for a host system bus in a memory controller | |
CN102736996A (zh) | 一种减少存储控制器接口占用的方法及高速存储器 | |
Wang et al. | Design and implementation of DDR SDRAM controller based on FPGA in satellite navigation system | |
CN115035929A (zh) | 一种高效实现伪ddr信号跨时钟域的电路、方法和电子设备 | |
CN117991867B (zh) | 一种onfi物理层的通路时钟控制电路 | |
CN117198363B (zh) | 双数据率同步动态随机存储系统及方法、设备及存储介质 | |
CN115129653B (zh) | 一种基于hpi的fpga与dsp通信系统 | |
JPS58223833A (ja) | ダイレクト・メモリ・アクセス制御方式 | |
US6597628B1 (en) | Auto-disable receive control for DDR receive strobes |
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 |