CN102681796A - 数据多级流水算法模块中的ram分布结构 - Google Patents
数据多级流水算法模块中的ram分布结构 Download PDFInfo
- Publication number
- CN102681796A CN102681796A CN2012101542200A CN201210154220A CN102681796A CN 102681796 A CN102681796 A CN 102681796A CN 2012101542200 A CN2012101542200 A CN 2012101542200A CN 201210154220 A CN201210154220 A CN 201210154220A CN 102681796 A CN102681796 A CN 102681796A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- ram
- data
- section
- area
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种应用于数据多级流水处理过程中的RAM存储器。它包括有按各级流水算法模块划分的相应RAM块区,用于存储前一级算法输出供后一级算法使用的中间处理结果数据的缓存Buffer和用于存储最后一级算法输出数据的RAM0块区三部分,其特征在于:各级RAM块区分为算法片区和传递片区,各算法片区提供相应算法模块所需原始数据的读/写操作,各传递片区一方面存储从前一级传递片区传送来的原始数据,另一方面向下一级算法片区和传递片区传送原始数据,其中第一级的算法片区和传递片区的原始数据由DDR传送输入,最后一级RAM块区仅有算法片区,最后一级算法输出的数据经由RAM0块区传送至DDR。本发明具有如下的优点:能减少对DDR的读/写次数,降低DDR带宽需求。
Description
技术领域
本发明涉及一种RAM存储器,具体涉及一种应用于数据多级流水处理过程中的RAM存储器。
背景技术
为了提高数字处理系统的效果和性能,可以对原始数据采用多步分级算法处理方式。而在很多情况下包含多级算法的处理流程是“单向流”,即各级算法之间没有反馈或者迭代,后一级算法依赖于前一级算法的运算结果,最终的数据处理结果由最后一级算法产生。
如图1所示,数字处理系统共包括n级算法处理步骤,前一级算法的输出是下一级算法的输入,根据算法设计每一级算法的输入有时还包括原始数据。从图1中可以看出,如果后一级算法需要等待前一级算法将所有原始数据处理完成后再对原始数据进行处理,那么整个数据处理过程所需要的时间将会很大,尤其是当原始数据量较大,算法较为复杂而且分级较多时,这种逐级处理的方式将无法满足实时性要求较高的数字处理系统需求。此时则利用流水算法处理方法来提高系统工作频率实现对数据的高速处理,图2为多级流水算法的示意图,图中Ti为第i级算法启动的时刻,T为算法模块完成一级算法流水的时间周期,即相邻两级算法间启动时刻差的最大值。
从图2可以看出,在T1时刻启动第一级算法,产生可以满足第二级算法所需数据后在T2时刻启动第二级算法,依次下去,在Tn时刻启动第一级算法,所以在Tn以后所有n级算法全部启动,最终实现多级流水算法模块的逐级启动并行处理。由于流水处理中后一级算法不需要等待前一级算法将所有原始数据处理完成后再对原始数据进行处理,所以可以大大减小整个数据处理过程所需要的时间。
又由于原始数据往往是随着时间不断更新的,同时数据算法模块在获得一定的原始数据后才能启动算法模块,所以在数字处理系统的数据多级流水算法硬件实现中,通常采用如图3所示的硬件结构。在数据多级流水算法硬件中,为了减少对DDR的读/写次数和减小对DDR的工作频率的要求,在DDR和数据算法模块间还需要加一级RAM,通过分片设计RAM同时支持多个读/写操作,DDR中存储的原始数据量较大,而RAM存储的数据仅仅是满足数据处理模块中各级算法所需的部分原始数据。图3中,原始数据首先存储到DDR中,然后RAM从DDR中读取所需原始数据,接着数据算法模块从RAM读取数据所需原始数据进行逐级启动并行处理,最后一级算法将处理后的数据送到RAM,RAM在将处理后的数据传送给DDR进行存储,当经过一定的处理时间段后DDR中存储的经过数据算法模块处理的数据满足一定的量后即进行输出。
目前,数据多级流水算法硬件中的RAM采用基于数据独立装载的RAM分布结构,如图4所示。该图中,RAM分为三个部分:第一部分是用于存储从DDR读取的原始数据以供处理模块算法使用的RAM块区;第二部分是用于存储前一级算法处理输出供后一级算法使用的中间处理结果数据的缓存Buffer;第三部分是存储最后一级算法输出数据的RAM0块区,即用于保存所有数据算法模块对原始数据处理的结果。缓存Buffer由Buffer1,Buffer2,…,Bufferi,…,Buffern-1组成,其中Bufferi用于存储第i级算法提供给第(i+1)级算法使用的运算结果。每一级算法为了存储从DDR读取的原始数据设置有相应RAM块区,图4中块区RAM1供第一级算法使用,块区RAM2供第二级算法使用,…,块区RAMi供第i级算法使用,…,块区RAMn供第n级算法使用。在各级算法的设计中,可能需要同时使用多个相同原始数据或同时输出多个处理后的数据。为实现同时从RAM中读/写多个数据,各级算法对应的RAM块区又被分为多个RAM子片。
RAM子片是可以提供一对读/写接口的数据存储空间。对某级RAM块区来说,其RAM子片的空间大小等于该级算法的时间周期T内与其关联算法进行运算所需原始数据的大小和原始数据更新的大小之和,也就是,不同级算法对应RAM块区中的RAM子片,其空间大小是不同的。对于存储最后一级算法输出结果的RAM0块区,其RAM子片的空间大小等于最后一级算法的时间周期T内输出数据的大小。
图4中,第i级算法同时需要使用mi个原始数据,则RAMi块区被分为mi个RAM子片,即RAMi块区可同时提供mi个读或写操作,每个RAM子片的内的数据相同,其中1≤i≤n,n为算法模块的总级数。第n级算法的计算结果被输出送至RAM的第三部分,即RAM0块区,根据第n级算法同时输出数据的个数m0,RAM0块区被分为m0个RAM子片,每个RAM子片内的数据不同,大小同为该级算法的时间周期T内输出数据。在基于数据独立装载的RAM分布结构中,数据的流向为,DDR从外部读取大量的原始数据进行存储,各个RAM块区根据自身的需要从DDR中读取原始数据并随着算法的流水进行RAM块区中的数据更新,第i(1≤i≤n)级算法从对应的RAMi块区中同时读取mi个原始数据并结合第(i-1)级算法的结果进行运算,最终在第n级算法同时输出的m0个数据被存储在RAM的RAM0块区中。
如图4所示的基于数据独立装载的RAM分布结构,可以避免多级算法数据算法模块对DDR同时进行读/写请求,而且所需RAM空间较小,但是由于RAM对DDR的读/写次数较多,每级算法对应的RAM块区都要从DDR读取一次原始数据,所以要求的DDR带宽较大,即要求DDR具有较高的工作频率,当数据算法模块包含的算法级数较多时,DDR的工作频率将会无法满足,也就是,该数据算法在硬件上无法实现。
发明内容
本发明所要解决的技术问题就是提供一种数据多级流水算法模块中的RAM分布结构,它能减少对DDR的读/写次数,降低DDR带宽需求。
本发明所要解决的技术问题是通过这样的技术方案实现的,它包括有按各级流水算法模块划分的相应RAM块区,用于存储前一级算法输出供后一级算法使用的中间处理结果数据的缓存Buffer和用于存储最后一级算法输出数据的RAM0块区三部分,其特征在于:各级RAM块区分为算法片区和传递片区,各算法片区提供相应算法模块所需原始数据的读/写操作,各传递片区一方面存储从前一级传递片区传送来的原始数据,另一方面向下一级算法片区和传递片区传送原始数据,其中第一级的算法片区和传递片区的原始数据由DDR传送输入,最后一级RAM块区仅有算法片区,最后一级算法输出的数据经由RAM0块区传送至DDR。
由于RAM与DDR之间都只需要一对读/写接口,从而大大降低了对DDR的带宽需求,特别对于流水算法的级数越多的数据处理,DDR不需要工作在过高的时钟频率下进行数据交换,使多级流水算法在硬件上能够实现。本发明具有如下的优点:能减少对DDR的读/写次数,降低DDR带宽需求。
附图说明
本发明的附图说明如下:
图1为分步多级算法的数据处理流程示意图;
图2为多级流水算法的示意图;
图3为多级流水算法的硬件结构示意图;
图4为基于数据独立装载的RAM分布结构示意图;
图5为本发明的RAM分布结构示意图。
具体实施方式
本发明的设计构思是:基于原始数据在片内传递与更新,不管数据算法模块分为多少级,该分布结构的RAM与DDR之间都只需要1对读/写接口,以降低对DDR的带宽需求。
下面结合附图和实施例对本发明作进一步说明:
如图5所示,本发明包括有按各级流水算法模块划分的相应RAM块区,RAM1、RAM2、…RAMi、…RAMn,
用于存储前一级算法输出供后一级算法使用的中间处理结果数据的缓存Buffer,Buffer1、Buffer2…Bufferi-1、Bufferi…Buffern-1,
以及用于存储最后一级算法输出数据的RAM0块区三部分,其特征在于:
各级RAM块区分为算法片区X和传递片区Y,各算法片区X提供相应算法模块所需原始数据的读/写操作,各传递片区Yi一方面存储从前一级传递片区Yi-1传送来的原始数据,另一方面向下一级算法片区Xi+1和传递片区Yi+1传送原始数据,其中第一级的算法片区X1和传递片区Y1的原始数据由DDR传送输入,最后一级RAM块区RAMn仅有算法片区Xn,最后一级算法输出的数据经由RAM0块区传送至DDR。
上述各算法片区Xi的大小和结构与图4所示的块区RAMi相同;根据第i级算法同时需要使用的原始数据个数mi,将算法片区Xi的存储空间划分为mi个RAM子片,可同时实现mi个读或写操作,每个RAM子片的内的数据相同,其中1≤i≤n。
上述各传递片区Yi只需要RAM子片1片,因为原始数据传递过程是一个从第一级到第n级的单向流过程,也就是前一级RAMi-1块区的传递片区Yi-1向后一级RAMi块区提供1对读/写接口。又由于RAMi块区中的传递片区Yi存储的数据为与之相应算法已经处理和正在处理而与下一级算法对应RAMi+1块区中的算法片区还没有存在过的原始数据,所以传递片区Yi(1≤i≤(n-1))所需要的空间较小,存储器RAM能满足片内传递与更新所增加的容量。
本发明的数据传递过程是:从DDR中读出的数据被存储至与第一级算法相对应块区RAM1中的算法片区X1各RAM子片和传递片区Y1,并不直接送给与其余算法相对应的RAM块区。当块区RAM1的算法片区中存储的原始数据满足第一级算法启动要求时即启动第一级算法,同时块区RAM1的传递片区Y1向与第二级算法相对应块区RAM2中的算法片区X2各RAM子片和传递片区Y2发送更新数据。当块区RAM2的算法片区X2中存储的原始数据满足第二级算法启动要求时即启动第二级算法,同时块区RAM2的传递片区Y2向与第三级算法相对应块区RAM3中的算法片区X3各RAM子片和传递片区Y3发送更新数据。依此类推下去,直至与第n级算法相对应块区RAMn中的算法片区Xn存储来至与第(n-1)级算法相对应块区RAMn-1中的传递片区Yn-1发送的更新数据满足启动要求即启动第n级算法运算,至此数据算法模块的n级算法全部启动,开始进入n级算法流水并行运算阶段。
在n级算法流水并行运算阶段,基于RAM片内的数据传递与更新过程也在同时进行,不会额外增加数字处理系统的处理时钟数。
按照本发明的数据多级流水算法模块中的RAM分布结构,利用时序控制实现对数据的读/写和算法流水,通过编程,并将程序下载至底层硬件存储平台就能实现本发明。
Claims (3)
1.数据多级流水算法模块中的RAM分布结构,包括有
按各级流水算法模块划分的相应RAM块区,
用于存储前一级算法输出供后一级算法使用的中间处理结果数据的缓存Buffer,
以及用于存储最后一级算法输出数据的RAM0块区三部分,其特征在于:
各级RAM块区分为算法片区和传递片区,各算法片区提供相应算法模块所需原始数据的读/写操作,各传递片区一方面存储从前一级传递片区传送来的原始数据,另一方面向下一级算法片区和传递片区传送原始数据,其中第一级的算法片区X1和传递片区Y1的原始数据由DDR传送输入,最后一级RAM块区仅有算法片区,最后一级算法输出的数据经由RAM0块区传送至DDR。
2.根据权利要求1所述的数据多级流水算法模块中的RAM分布结构,其特征在于:所述各算法片区Xi具有mi个RAM子片,其中1≤i≤n,n为算法模块的总级数,mi为第i级算法模块所需要的原始数据的个数。
3.根据权利要求1或2所述的数据多级流水算法模块中的RAM分布结构,其特征在于:所述各传递片区Yi有1个RAM子片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210154220.0A CN102681796B (zh) | 2012-05-18 | 2012-05-18 | 数据多级流水算法模块中的ram分布结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210154220.0A CN102681796B (zh) | 2012-05-18 | 2012-05-18 | 数据多级流水算法模块中的ram分布结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102681796A true CN102681796A (zh) | 2012-09-19 |
CN102681796B CN102681796B (zh) | 2015-04-08 |
Family
ID=46813796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210154220.0A Expired - Fee Related CN102681796B (zh) | 2012-05-18 | 2012-05-18 | 数据多级流水算法模块中的ram分布结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102681796B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115396319A (zh) * | 2021-05-19 | 2022-11-25 | 中国移动通信集团有限公司 | 数据流分片方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0272705A2 (en) * | 1986-12-29 | 1988-06-29 | Matsushita Electric Industrial Co., Ltd. | Loosely coupled pipeline processor |
CN1229211A (zh) * | 1998-03-12 | 1999-09-22 | 富士通株式会社 | 微处理器、操作处理执行方法和记录介质 |
CN101021831A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 面向科学计算的64位流处理器芯片体系结构 |
CN102033732A (zh) * | 2010-12-17 | 2011-04-27 | 浙江大学 | 基于fpga的高速低延迟浮点累加器及其实现方法 |
-
2012
- 2012-05-18 CN CN201210154220.0A patent/CN102681796B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0272705A2 (en) * | 1986-12-29 | 1988-06-29 | Matsushita Electric Industrial Co., Ltd. | Loosely coupled pipeline processor |
CN1229211A (zh) * | 1998-03-12 | 1999-09-22 | 富士通株式会社 | 微处理器、操作处理执行方法和记录介质 |
CN101021831A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 面向科学计算的64位流处理器芯片体系结构 |
CN102033732A (zh) * | 2010-12-17 | 2011-04-27 | 浙江大学 | 基于fpga的高速低延迟浮点累加器及其实现方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115396319A (zh) * | 2021-05-19 | 2022-11-25 | 中国移动通信集团有限公司 | 数据流分片方法、装置、设备及存储介质 |
CN115396319B (zh) * | 2021-05-19 | 2023-10-27 | 中国移动通信集团有限公司 | 数据流分片方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102681796B (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ma et al. | End-to-end scalable FPGA accelerator for deep residual networks | |
CN112329910B (zh) | 一种面向结构剪枝结合量化的深度卷积神经网络压缩方法 | |
CN103218348B (zh) | 快速傅里叶变换处理方法和系统 | |
CN101025821A (zh) | 不对称多gpu处理 | |
CN101951516A (zh) | 基于h.264/avc中cabac的并行编码实现电路及编码方法 | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
CN102279818A (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
CN101350218B (zh) | 一种虚拟多端口存储器及其存储和读取数据的方法 | |
CN101014948A (zh) | 单指令多数据处理器结构中的互连 | |
CN100508604C (zh) | 算术编码电路和算术编码控制方法 | |
CN102523439B (zh) | 视频帧率提升系统及帧率提升方法 | |
CN115310037A (zh) | 矩阵乘法计算单元、加速单元、计算系统和相关方法 | |
CN102681796B (zh) | 数据多级流水算法模块中的ram分布结构 | |
CN103020014A (zh) | 一种大点数fft的实现方法 | |
CN111626399B (zh) | 卷积神经网络计算装置、数据计算方法 | |
CN102411557A (zh) | 多粒度并行fft计算装置 | |
CN115098434A (zh) | 一种基于多级流水线的可编程存算一体加速阵列 | |
CN101267459B (zh) | 采用异步fifo寄存器输出数据的方法及寄存器 | |
CN108733739A (zh) | 支持集束搜索的运算装置和方法 | |
CN103293373A (zh) | 电能计量装置及其电能计量芯片 | |
CN102622318B (zh) | 一种存储器控制电路及其控制的向量数据寻址方法 | |
CN104699463B (zh) | 一种低功耗流水线的实现方法 | |
CN104126204A (zh) | 多级存储器、多级存储器写入方法和多级存储器读取方法 | |
CN106776474A (zh) | 一种矢量处理器实现fft运算的方法及系统 | |
CN113612575A (zh) | 面向Wimax协议的QC-LDPC译码器译码方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150408 Termination date: 20170518 |