一种基于电力边缘网关的动态存储缓冲区读取控制方法

文档序号:1112805 发布日期:2020-09-29 浏览:7次 >En<

阅读说明:本技术 一种基于电力边缘网关的动态存储缓冲区读取控制方法 (Dynamic storage buffer area reading control method based on power edge gateway ) 是由 李澄 李春鹏 徐妍 宋庆武 单华 李军 于 2020-05-14 设计创作,主要内容包括:本发明公开了一种基于电力边缘网关的动态存储缓冲区及读取控制方法,涉及数据存储、超级计算、信息系统等领域,具体包含DDR数据使用模块和DDR数据传输模块,所述DDR数据传输模块包含读请求FIFO、DDR读控制器、DDR存储器、读数据FIFO;所述DDR数据使用模块包含DDR读请求产生模块、DDR数据使用端和计数模块;本发明提出的动态存储缓冲区读取控制方法,利用计数模块和两个缓存FIFO,通过比较计数模块的计数值和读请求数据量,有效实现了对DDR存储器的缓存数据的动态读取,避免了数据的溢出和读数据FIFO的存储拥塞。(The invention discloses a dynamic storage buffer area based on a power edge gateway and a reading control method, which relate to the fields of data storage, super calculation, information systems and the like, and particularly comprise a DDR data use module and a DDR data transmission module, wherein the DDR data transmission module comprises a reading request FIFO, a DDR reading controller, a DDR memory and a reading data FIFO; the DDR data use module comprises a DDR read request generation module, a DDR data use end and a counting module; the dynamic storage buffer area reading control method provided by the invention utilizes the counting module and the two buffer FIFO modules, and effectively realizes the dynamic reading of the buffer data of the DDR memory by comparing the counting value of the counting module with the reading request data volume, thereby avoiding the overflow of the data and the storage congestion of the reading data FIFO.)

一种基于电力边缘网关的动态存储缓冲区读取控制方法

技术领域

本发明涉及电气工程科学领域,具体涉及数据存储、超级计算、信息系统等领域,尤其涉及一种基于电力边缘网关的动态存储缓冲区读取控制方法。

背景技术

随着信息技术迅速发展,如何实现大容量数据的高效存储逐渐成为一个亟待解决的问题。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读请求产生模块进入等待状态。

以上详细描述了本发明的具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:高速缓存存储器及包含其的存储系统及其操作方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类