CN104731525A - 一种兼容不同位宽支持非对齐访问的fpga片内存储控制器 - Google Patents
一种兼容不同位宽支持非对齐访问的fpga片内存储控制器 Download PDFInfo
- Publication number
- CN104731525A CN104731525A CN201510065349.8A CN201510065349A CN104731525A CN 104731525 A CN104731525 A CN 104731525A CN 201510065349 A CN201510065349 A CN 201510065349A CN 104731525 A CN104731525 A CN 104731525A
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- storer
- storage
- address
- 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
Landscapes
- Image Input (AREA)
Abstract
一种兼容不同位宽支持非对齐访问的FPGA片内存储控制器,包括译码器和2n个存储器;各存储器独立进行数据的存储和读取,译码器对2n个存储器进行组合地址编解码控制;在进行数据读取或存储时,译码器将位宽为N的地址信号进行译码,地址信号的低n位通过译码器形成2n位的存储控制器选择信号,从2n个存储器选择数据起始位所在的存储器;地址信号的高N-n位通过译码器形成2N-n位的存储器地址位选择信号,确定数据起始位在之前选定的存储器中的存储器地址位,从而确定数据起始位,在一个读取或存储周期内,读取2n·m bit的数据,该存储控制器可显著提高存储器数据读写效率,提高算法处理速度,同时该存储控制器也适合于需要考虑数据对齐的存储器快速读取的其他应用。
Description
技术领域
本发明涉及一种FPGA片内存储控制器,特别是一种兼容不同位宽支持非对齐访问的FPGA片内存储控制器,适用于需要考虑数据对齐访问的存储器的快速存取。
背景技术
随着精确制导武器的发展,SAR、红外、星光、CCD等末制导技术在控制***得到了大量应用。精确制导武器的核心是反映在末制导导引头上的信息获取与信息处理技术。
精确制导武器利用各种传感器和信息网获取目标位置、速度、图像及特征状态等信息,经分析和处理后实时修正或控制自身的飞行轨迹,从而具有很高的命中精度。由于武器的飞行速度特别快,整个匹配制导过程需要在很短时间内完成,对信息处理的实时性要求很高,而且图像数据因为越来越大,图像算法运算时间在制导过程中占有很大比例,决定了信息处理的实时性,直接影响了制导精度。
匹配流程中许多图像算法一次运算可能需要读取多个图像数据,在流水线运算过程中存储器数据读取往往成为算法运算的关键路径。通过采用高位宽存储器可以一次读取多个图像数据,但高位宽存储器涉及到存储器非对齐访问的情况,可能反而降低读取效率。
图像由图像像素阵列组成,每个像素有一个灰度值,不考虑小数的话,灰度值范围为0~255。一个8位二进制数即可表示一个像素灰度。图像运算中考虑精度的话需要考虑小数部分,每个像素的位宽会高于8位。图像算法是基于灰度值的算法,图像算法运算过程一般为从存储器中读取灰度值,进行灰度值运算,存储运算结果。由于半导体工艺的进步,FPGA逻辑运算所需的时间非常短,一般缩减图像算法的运算时间的关键在于提高存储器灰度的读取效率。存储器位宽一般有8位,16位,32位等,一次读取的像素太少,存储器数据读写一般均成为了图像算法运算的关键路径。
由于图像数据一般较大,各图像算法一般均采用流水线方式提高处理效率。图像算法运算流水线一般可简化为坐标计算、数据读取、图像处理、数据存储。许多图像算法一次运算可能需要多个灰度数据,如一次图像膨胀运算需要读取4个灰度值,若采用8位存储器,一次图像膨胀运算灰度值读取需要4个周期,坐标计算、图像处理、数据存储通过优化设计一般均可保证在一个周期内完成。这样对于图像膨胀算法流水线各级时间分别太不均衡,流水线效率太低,难以满足要求。为提高流水线处理效率,针对不同图像算法,图像算法一般采用高位宽存储器(如16位,32位),一个读取多个灰度。为节省存储器资源,各图像算法尽量复用存储器,因此需要兼容不同位宽的存储器。同时在很多图像算法中,如上面提好的图像膨胀算法和相似性测度算法,读取数据不一定存储器对齐,采用高位宽存储器读取数据后每次还需要进行有效性判断,增加了硬件代价,降低了处理效率。
陈海燕等于2012年6月第34卷第3期在‘国防科技大学学报’上发表‘面向SDR应用的向量存储器的设计与优化’,文中了提出了一种优化的向量存储器,不仅支持常规地址对齐的向量数据访存,还以较小的硬件代价实现了非对齐方式的向量访问,支持非对齐向量访问的优化设计。这种向量存储器采用了16路内部存储器。从外部存储器读取数据后首先存入向量存储器,处理单元再从向量存储器读取数据。这种向量存储器实质上一种优化的支持非对齐访问的Cache。这种向量存储器并不适合通用图像算法,首先它对内部资源有要求,其次,作为处理单元与外部存储器的中转,其实已降低了存储器读取效率,然后16路存储器并不灵活,针对不同图像算法可能反而降低效率。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种兼容不同位宽支持非对齐访问的FPGA片内存储控制器,以很小的硬件代价实现了可兼容不同位宽的支持非对齐访问的FPGA片内存储器访问,适合各种图像算法快速存储器灰度数据读取,大大的提高了图像算法处理速度。
本发明的技术解决方案是:一种兼容不同位宽支持非对齐访问的FPGA片内存储控制器,包括:译码器和2n个存储器;
所述2n个存储器相同,按照0~2n-1进行编号并顺序排列,各存储器独立进行数据的存储和读取,存储控制器在进行数据的存储和读取时,首先确定数据起始位对应的存储器编号x和该存储器地址位y,将数据顺序存入存储器编号x~2n-1,存储器地址位为y,以及存储器编号0~x-1,存储器地址位为y+1的存储器中;
在进行数据读取时,译码器将位宽为N的读取地址信号进行译码,读取地址信号的低n位通过译码器形成2n位的存储控制器选择信号,从2n个存储器选择数据起始位所在的存储器;读取地址信号的高N-n位通过译码器形成2N-n位的存储器地址位选择信号,确定数据起始位在之前选定的存储器中的存储器地址位,从而确定数据起始位,在一个读取周期内,读取2n·m bit的数据,其中m为每个存储器的位宽;
在进行数据存储时,译码器将位宽为N的存储地址信号进行译码,存储地址信号的低n位通过译码器形成2n位的存储控制器选择信号,从2n个存储器选择数据起始位所在的存储器;存储地址信号的高N-n位通过译码器形成2N-n位的存储器地址位选择信号,确定数据起始位在之前选定的存储器中的存储器地址位,从而确定数据起始位,在一个存储周期内,存储2n·m bit的数据。
本发明与现有技术相比的有益效果是:
(1)本发明考虑到制约图像算法运算速度存储器数据读写速度瓶颈,将多个存储器并排使用形成存储控制器,并设计了存储控制器数据存储和读取的规则,可根据算法需求一次读取多个图像数据,多倍的提高存储器数据读写速度,保证算法流水线高效工作,提高算法处理速度;
(2)本发明中的存储控制器,将译码器与存储器相结合,充分利用了地址信号,相对于高位宽存储控制器,该存储控制器可支持非对齐访问,它支持任何地址的多位数据的直接读取,提高了存储器数据读写效率,不影响流水线的工作;
(3)本发明的存储控制器可兼容不同位宽的数据读取,任何小于或等于本发明中存储控制器位宽的数据均可以利用本发明中的存储控制器进行存储和读取,因此不同图像算法中可进行复用,节省有限的FPGA存储资源,而且可以很便利的进行位宽扩展。
附图说明
图1为可兼容不同位宽的非对齐方式的存储器结构图;
图2为8位存储器读取地址为5,6,7,8的数据示意图;
图3为16位存储器读取地址为5,6,7,8的数据示意图;
图4为32位存储器读取地址为5,6,7,8的数据示意图;
图5为采用本发明中的存储控制器读取地址为5,6,7,8的数据示意图。
具体实施方式
下面结合附图对本发明的具体实施方式进行进一步的详细描述。
本发明提出了一种兼容不同位宽支持非对齐访问的FPGA片内存储控制器,具体结构如图1所示,从图1可知,本发明中的存储控制器包括:译码器和2n个存储器;
所述2n个存储器均相同,按照0~(2n-1)进行编号并顺序排列,各存储器独立进行数据的存储和读取,存储控制器在进行数据的存储和读取时,首先确定数据起始位对应的存储器编号x和存储器地址位y,将数据顺序存入存储器地址位为y,存储器编号为x~2n-1以及存储器地址位为y+1,存储器编号为0~x-1的存储器中;
在进行数据读取时,译码器将位宽为N的读取地址信号进行译码,读取地址信号的低n位通过译码器形成2n位的存储控制器选择信号,从2n个存储器选择数据起始位所在的存储器;读取地址信号的高N-n位通过译码器形成2N-n位的存储器地址位选择信号,确定数据起始位在之前选定的存储器中的存储器地址位,从而确定数据起始位,在一个读取周期内,读取2n·m bit的数据,其中m为每个存储器的位宽;
在进行数据存储时,译码器将位宽为N的存储地址信号进行译码,存储地址信号的低n位通过译码器形成2n位的存储控制器选择信号,从2n个存储器选择数据起始位所在的存储器;存储地址信号的高N-n位通过译码器形成2N-n位的存储器地址位选择信号,确定数据起始位在之前选定的存储器中的存储器地址位,从而确定数据起始位,在一个存储周期内,存储2n·m bit的数据。
具体实施例
本实施例将4组8位存储器顺序排列组成一个组合存储器,组合存储器通过译码器进行组合编解码控制。该存储器的编解码方式如下。四个8位存储器并列顺序排列,分别为mem0,mem1,mem2和mem3。组合存储器地址编码从mem0的地址0位为开始,依次mem1,mem2,mem3的地址0位编码,然后再从mem0的地址1位开始,依次mem1,mem2,mem3的地址1位编码,往后这样顺序编码。即mem0的地址0位为组合存储器的地址0位,mem1的地址0位为组合存储器的地址1位,mem2的地址0位为组合存储器的地址2位,mem3的地址0位为组合存储器的地址4位。然后mem0的地址1位为组合存储器的地址4位,mem1的地址1位为组合存储器的地址5位,mem2的地址1位为组合存储器的地址6位,依次对组合存储器地址编码。地址译码时需要组合译码,通过地址addr[1:0]从4组8位存储器纵向定位,同时通过地址addr[N-1:2]横向定位该存储器地址位来译码组合存储器的地址。
本发明提出的存储控制器译码只增加了简单的译码器,单周期即可完成,与单个存储器读写时序相同,而且这样编解码无存储器对齐限制。该存储控制器还可兼容不同位宽的数据读写。该示例的存储控制器中有一个两位的控制信号来选择数据读/写位宽,该信号为0时,表示读/写8位的数据;为1时,表示读/写16位的数据;为2时,表示读/写24位的数据;为3时,表示读/写32位的数据。即该示例的存储控制器可对位宽为8,16,24或32数据进行非对齐读写访问。
该组合存储控制器比其他不同位宽的单个存储控制器,如8位存储器、16位存储器、32位存储器更有效率,下面通过分析不同存储控制器读取地址为5,6,7,8数据的周期数来比较存储器读写效率。
图2为8位存储器读取地址为5,6,7,8的数据示意图,一次读取1个灰度数据,它需要4个周期才能完成地址为5,6,7,8数据读取。图3为16位存储器读取地址为5,6,7,8的数据示意图,它一次能读取2个灰度数据,考虑到数据对齐,它需要3个周期来分别读取地址为4,5,地址为6,7,地址为8,9的数据,然后抛弃地址4,9的数据,选取其中的有效数据。图4为32位存储器读取地址为5,6,7,8的数据示意图,它一次读取4个灰度数据,考虑到数据对齐,它需要2个周期来分别读取地址为4,5,6,7,地址为8,9,10,11的数据,然后抛弃地址4,9,10,11的数据,选取其中的有效数据。地址位宽越大的存储器考虑由数据对齐引起的数据有效的种类越多,硬件资源代价越大。图5为本发明中提出的存储控制器读取地址为5,6,7,8的数据示意图,它可以一个周期读取地址为5,6,7,8的32位数据。
这种结构的存储器可读取一次读写8位,16位,24位或32位任意地址的数据。若需要一次读写更多数据,根据读写数据量要求扩展存储器,将8组,16组,32组…存储器组合编码即可,控制逻辑类似,可以很方便的扩展。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (1)
1.一种兼容不同位宽支持非对齐访问的FPGA片内存储控制器,其特征在于包括:译码器和2n个存储器;
所述2n个存储器相同,按照0~2n-1进行编号并顺序排列,各存储器独立进行数据的存储和读取,存储控制器在进行数据的存储和读取时,首先确定数据起始位对应的存储器编号x和该存储器地址位y,将数据顺序存入存储器编号x~2n-1,存储器地址位为y,以及存储器编号0~x-1,存储器地址位为y+1的存储器中;
在进行数据读取时,译码器将位宽为N的读取地址信号进行译码,读取地址信号的低n位通过译码器形成2n位的存储控制器选择信号,从2n个存储器选择数据起始位所在的存储器;读取地址信号的高N-n位通过译码器形成2N-n位的存储器地址位选择信号,确定数据起始位在之前选定的存储器中的存储器地址位,从而确定数据起始位,在一个读取周期内,读取2n·m bit的数据,其中m为每个存储器的位宽;
在进行数据存储时,译码器将位宽为N的存储地址信号进行译码,存储地址信号的低n位通过译码器形成2n位的存储控制器选择信号,从2n个存储器选择数据起始位所在的存储器;存储地址信号的高N-n位通过译码器形成2N-n位的存储器地址位选择信号,确定数据起始位在之前选定的存储器中的存储器地址位,从而确定数据起始位,在一个存储周期内,存储2n·m bit的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510065349.8A CN104731525B (zh) | 2015-02-06 | 2015-02-06 | 一种兼容不同位宽支持非对齐访问的fpga片内存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510065349.8A CN104731525B (zh) | 2015-02-06 | 2015-02-06 | 一种兼容不同位宽支持非对齐访问的fpga片内存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104731525A true CN104731525A (zh) | 2015-06-24 |
CN104731525B CN104731525B (zh) | 2017-11-28 |
Family
ID=53455459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510065349.8A Active CN104731525B (zh) | 2015-02-06 | 2015-02-06 | 一种兼容不同位宽支持非对齐访问的fpga片内存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104731525B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783909A (zh) * | 2016-08-24 | 2018-03-09 | 华为技术有限公司 | 一种内存地址总线扩展方法及装置 |
CN111124433A (zh) * | 2018-10-31 | 2020-05-08 | 华北电力大学扬中智能电气研究中心 | 程序烧写设备、***及方法 |
CN111813722A (zh) * | 2019-04-10 | 2020-10-23 | 北京灵汐科技有限公司 | 基于共享内存的数据读写方法,***及可读存储介质 |
CN114509965A (zh) * | 2021-12-29 | 2022-05-17 | 北京航天自动控制研究所 | 一种复杂工况下的通用异构机器人控制平台 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4432055A (en) * | 1981-09-29 | 1984-02-14 | Honeywell Information Systems Inc. | Sequential word aligned addressing apparatus |
CN101221542A (zh) * | 2007-10-30 | 2008-07-16 | 北京时代民芯科技有限公司 | 一种外部存储器接口 |
CN102194508A (zh) * | 2010-02-23 | 2011-09-21 | 安森美半导体贸易公司 | 存储器装置 |
CN102279818A (zh) * | 2011-07-28 | 2011-12-14 | 中国人民解放军国防科学技术大学 | 支持有限共享的向量数据访存控制方法及向量存储器 |
-
2015
- 2015-02-06 CN CN201510065349.8A patent/CN104731525B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4432055A (en) * | 1981-09-29 | 1984-02-14 | Honeywell Information Systems Inc. | Sequential word aligned addressing apparatus |
CN101221542A (zh) * | 2007-10-30 | 2008-07-16 | 北京时代民芯科技有限公司 | 一种外部存储器接口 |
CN102194508A (zh) * | 2010-02-23 | 2011-09-21 | 安森美半导体贸易公司 | 存储器装置 |
CN102279818A (zh) * | 2011-07-28 | 2011-12-14 | 中国人民解放军国防科学技术大学 | 支持有限共享的向量数据访存控制方法及向量存储器 |
Non-Patent Citations (1)
Title |
---|
陈海燕等: "《面向SDR应用的向量存储器的设计与优化》", 《国防科技大学学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107783909A (zh) * | 2016-08-24 | 2018-03-09 | 华为技术有限公司 | 一种内存地址总线扩展方法及装置 |
CN107783909B (zh) * | 2016-08-24 | 2021-09-14 | 华为技术有限公司 | 一种内存地址总线扩展方法及装置 |
CN111124433A (zh) * | 2018-10-31 | 2020-05-08 | 华北电力大学扬中智能电气研究中心 | 程序烧写设备、***及方法 |
CN111124433B (zh) * | 2018-10-31 | 2024-04-02 | 华北电力大学扬中智能电气研究中心 | 程序烧写设备、***及方法 |
CN111813722A (zh) * | 2019-04-10 | 2020-10-23 | 北京灵汐科技有限公司 | 基于共享内存的数据读写方法,***及可读存储介质 |
CN111813722B (zh) * | 2019-04-10 | 2022-04-15 | 北京灵汐科技有限公司 | 基于共享内存的数据读写方法,***及可读存储介质 |
CN114509965A (zh) * | 2021-12-29 | 2022-05-17 | 北京航天自动控制研究所 | 一种复杂工况下的通用异构机器人控制平台 |
Also Published As
Publication number | Publication date |
---|---|
CN104731525B (zh) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10037228B2 (en) | Efficient memory virtualization in multi-threaded processing units | |
US10310973B2 (en) | Efficient memory virtualization in multi-threaded processing units | |
US10169091B2 (en) | Efficient memory virtualization in multi-threaded processing units | |
CN109643233B (zh) | 具有带读取和读取/前进操作数编码的流引擎的数据处理设备 | |
US8271763B2 (en) | Unified addressing and instructions for accessing parallel memory spaces | |
US9785443B2 (en) | Data cache system and method | |
US10255228B2 (en) | System and method for performing shaped memory access operations | |
CN110888826A (zh) | 通过用于机器学习的处理装置对易失性存储器进行的并行存取 | |
US9110810B2 (en) | Multi-level instruction cache prefetching | |
US8327071B1 (en) | Interprocessor direct cache writes | |
US20130232322A1 (en) | Uniform load processing for parallel thread sub-sets | |
CN104731525A (zh) | 一种兼容不同位宽支持非对齐访问的fpga片内存储控制器 | |
US20130268715A1 (en) | Dynamic bank mode addressing for memory access | |
JPS5977574A (ja) | ベクトル・プロセツサ | |
US8615541B2 (en) | Extended-precision integer arithmetic and logical instructions | |
US9626191B2 (en) | Shaped register file reads | |
CN103927270A (zh) | 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法 | |
US20130346696A1 (en) | Method and apparatus for providing shared caches | |
US20120084539A1 (en) | Method and sytem for predicate-controlled multi-function instructions | |
GB2513987A (en) | Parallel apparatus for high-speed, highly compressed LZ77 tokenization and huffman encoding for deflate compression | |
CN105718386B (zh) | 程序存储器控制器中页面窗口的本地页面转换和许可存储 | |
US20160217079A1 (en) | High-Performance Instruction Cache System and Method | |
CN107408076B (zh) | 数据处理装置 | |
US7441099B2 (en) | Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit | |
US9058672B2 (en) | Using a pixel offset for evaluating a plane equation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |