CN109545256A - 块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列 - Google Patents
块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列 Download PDFInfo
- Publication number
- CN109545256A CN109545256A CN201811308535.XA CN201811308535A CN109545256A CN 109545256 A CN109545256 A CN 109545256A CN 201811308535 A CN201811308535 A CN 201811308535A CN 109545256 A CN109545256 A CN 109545256A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- address
- ram
- bit width
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 6
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address interface arrangements, e.g. address buffers
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System (AREA)
Abstract
本发明公开了一种块存储器拼接方法,包括:根据待处理数据地址的第一数据位宽、第一数据深度计算拼接所用的RAM块的数量;判断所述第一数据位宽与RAM块数据位宽是否满足预设条件,若是,则按照第一规则将所述待处理数据地址存储在所述RAM块中;若否,则按照第二规则将所述待处理数据地址存储在所述RAM块中。本发明通过根据对待处理数据的位宽、深度等特征,计算得到需要拼接的RAM块数量,然后根据本发明提供的具体规则进行分配,让每个RAM块的数据存储及读写分散开,以避免当数据位宽较大的时候,某些RAM块使用很频繁,某些RAM块使用次数少的问题,将使用较为频繁的位均匀的分到多个RAM块上,从而提升运行速度。
Description
技术领域
本发明属于数据存储领域,具体涉及一种块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列。
背景技术
目前,大多数现场可编程门阵列(FPGA)都集成了一定数量的块存储器,在使用单块存储器(RAM)时,数据位宽和地址深度受到单块RAM容量的限制;当对数据位宽或者深度有更高的要求时,则需要将多片块RAM级联起来形成更大的RAM。对于固定的数据位宽和地址深度,拼接的方式有很多种。
现有技术提供一种RAM资源的分配方法,允许需求数量超过嵌入内存块的限制,可以满足较大数据位宽以及较深地址深度的RAM使用,自动计算分配的嵌入内存块、REG资源块、LUT资源块的数量,通过一定的运算,可以得出所需要的嵌入式内存块的数量。当某个嵌入式内存块写入的数据小于其在该地址深度下对应的最大位宽的一半时,该部分数据使用REG资源块、LUT资源块进行实现,其他数据的部分依旧使用嵌入式内存块;当所用到的嵌入式内存块写入的数据均大于其在该地址深度下对应的最大位宽的一半时,使用嵌入式内存块进行拼接即可实现所需功能。
然而,该现有技术所能完成的数据的数据位宽有一定的限制,使用范围不够普遍。他的数据位宽只能为1、2、4、8、16、32以及8的偶数倍;9、18、36以及9的偶数倍。在某些情况下,数据位宽可能为非偶数或者为以上个别数据范围外,则无法实现,此外,现有技术只是对所需的位宽、深度通过拼接实现所需功能,拼接方式较为随机,因此其运行效率较低。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列。本发明要解决的技术问题通过以下技术方案实现:
本发明实施例提供了一种块存储器拼接方法,包括:
根据待处理数据地址的第一数据位宽、第一数据深度计算拼接所用的RAM块的数量;
判断所述第一数据位宽与RAM块数据位宽是否满足预设条件,若是,则按照第一规则将所述待处理数据地址存储在所述RAM块中;若否,则按照第二规则将所述待处理数据地址存储在所述RAM块中。
在一个具体实施方式中,所述预设条件为Data_w/M≤DW/n,
其中,Data_w为所述第一数据位宽,M为拼接所用的RAM块的数量,DW为单个RAM的数据位宽,n为条件参数,可取值为2,3,4,5….DW-1。
在一个具体实施方式中,所述第一规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)×D~i×D-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
在一个具体实施方式中,所述第二规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)×D/2~(i×D)/2-1及(M+i-1)×D/2~(M+i)×D/2-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
本发明还提供了一种块存储器拼接模块,包括:
RAM块数量计算单元,用于根据待处理数据地址的第一数据位宽、第一数据深度计算拼接所用的RAM块的数量;
RAM分配单元,用于判断所述第一数据位宽与RAM块数据位宽是否满足预设条件,若是,则按照第一规则将所述待处理数据地址存储在所述RAM块中;若否,则按照第二规则将所述待处理数据地址存储在所述RAM块中。
在一个具体实施方式中,所述预设条件为Data_w/M≤DW/n,
其中,Data_w为所述第一数据位宽,M为拼接所用的RAM块的数量,DW为单个RAM的数据位宽,n为条件参数,可取值为2,3,4,5….DW-1。
在一个具体实施方式中,以n=2为例,所述第一规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)D~i×D-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
在一个具体实施方式中,以n=2为例,所述第二规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)D/2~(i×D)/2-1及(M+i-1)×D/2~(M+i)×D/2-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
本发明还提供了一种存储装置,包括上述的块存储器拼接模块。
本发明一种现场可编程门阵列,包括上述的存储装置。
与现有技术相比,本发明的有益效果:
本发明的块存储器拼接方法通过根据对待处理数据的位宽、深度等特征,计算得到需要拼接的RAM块数量,然后根据本发明提供的具体规则进行分配,让每个RAM块的数据存储及读写分散开,以避免当数据位宽较大的时候,某些RAM块使用很频繁,某些RAM块使用次数少的问题,将使用较为频繁的位均匀的分到多个RAM块上,从而提升运行速度。
附图说明
图1为本发明实施例提供的一种块存储器拼接方法流程示意图;
图2为本发明实施例提供的又一种块存储器拼接方法流程示意图;
图3为本发明实施例提供的RAM分配示意图;
图4为本发明实施例提供的数据和地址范围分配示意图;
图5为本发明又一实施例提供的数据和地址范围分配示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
实施例一
请参见图1,图1为本发明实施例提供的一种块存储器拼接方法流程示意图,包括:
根据待处理数据地址的第一数据位宽、第一数据深度计算拼接所用的RAM块的数量;
判断所述第一数据位宽与RAM块数据位宽是否满足预设条件,若是,则按照第一规则将所述待处理数据地址存储在所述RAM块中;若否,则按照第二规则将所述待处理数据地址存储在所述RAM块中。
在第一实施方式中,根据待处理数据地址的第一数据位宽、第一数据深度计算拼接所用的RAM块的数量,包括:
根据所述第一数据位宽和所述第一数据深度计算数据总量;
根据所述数据总量与单个RAM的容量计算拼接所用的RAM块的数量。
本发明的块存储器拼接方法通过根据对待处理数据的位宽、深度等特征,计算得到需要拼接的RAM块数量,然后根据本发明提供的具体规则进行分配,让每个RAM块的数据存储及读写分散开,以避免当数据位宽较大的时候,某些RAM块使用很频繁,某些RAM块使用次数少的问题,将使用较为频繁的位均匀的分到多个RAM块上,从而提升运行速度。
假设待处理数据的第一数据位宽用符号Data_w表示,第一数据深度用2Address_w表示,则第一地址位宽为Address_w,其中,数据总量计算方法如下:Data_w×2Address_w。
将数据重量与单个RAM的容量进行相除,即可得到总共所需要的RAM的数量M,具体的,如果相除正好整除,且结果为整数m,说明恰好满足要求,则总共所需要的RAM的数量M=m,如果相除之后还有部分余数,则需要增加一块RAM来存储多余的数据,此时总共所需要的RAM的数量M=m+1。
请参见图2,从程序设计的角度,
首先:计算m=(Data_w×2Address_w)/C,以及r=(Data_w×2Address_w)mod C;
如果r>0,则表明存在余数,选取M=m+1;反之,表明不存在余数,选取M=m。上述符号“/”表示取整运算,即取相除得到的整数部分,mod表示取余运算,即取相除得到的余数部分。
在一个具体实施方式中,所述预设条件为Data_w/M≤DW/n,
其中,Data_w为所述第一数据位宽,M为拼接所用的RAM块的数量,DW为单个RAM的数据位宽,n为条件参数,可取值为2,3,4,5….DW-1。
在一个具体实施方式中,请参见图3和图4,所述第一规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)D~i×D-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
在一个具体实施方式中,请参见图3和图5,所述第二规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)D/2~(i×D)/2-1及(M+i-1)×D/2~(M+i)×D/2-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
本实施例的方案当需要多个RAM进行拼接时,数据位宽和地址深度的限制使其必须使用一定量的FPGA资源,通过采用以上数据分配的方式,将数据位分散配置,在后期的布局布线阶段,相应的走线分布进行改变,减少了走线的密度,可以分散数据的读写的压力,保证了在使用较少的FPGA的块RAM情况下提升运行速度。
此外,在对数据进行设置时,现有技术的数据位宽值比较固定,现有技术的的限制条件为:数据位宽×2地址位宽=单片RAM容量C,而本发明则将数据位宽与地址深度之间的限制条件扩展为:数据位宽×2地址位宽<=单片RAM容量,大大提高了拼接时数据位宽的范围。
本发明还提供了一种块存储器拼接模块,包括:
RAM块数量计算单元,用于根据待处理数据地址的第一数据位宽、第一数据深度计算拼接所用的RAM块的数量;
RAM分配单元,用于判断所述第一数据位宽与RAM块数据位宽是否满足预设条件,若是,则按照第一规则将所述待处理数据地址存储在所述RAM块中;若否,则则按照第二规则将所述待处理数据地址存储在所述RAM块中。
在一个具体实施方式中,所述预设条件为Data_w/M≤DW/n,
其中,Data_w为所述第一数据位宽,M为拼接所用的RAM块的数量,DW为单个RAM的数据位宽,n为条件参数,可取值为2,3,4,5….DW-1。
在一个具体实施方式中,所述第一规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)D~iD-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
在一个具体实施方式中,所述第二规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)D/2~(i×D)/2-1及(M+i-1)×D/2~(M+i)×D/2-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
本实施例还提供了一种存储装置,包括上述的块存储器拼接模块。
本实施例还提供一种现场可编程门阵列,包括上述的存储装置。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种块存储器拼接方法,其特征在于,包括:
根据待处理数据地址的第一数据位宽、第一数据深度计算拼接所用的RAM块的数量;
判断所述第一数据位宽与RAM块数据位宽是否满足预设条件,若是,则按照第一规则将所述待处理数据地址存储在所述RAM块中;若否,则按照第二规则将所述待处理数据地址存储在所述RAM块中。
2.根据权利要求1所述的块存储器拼接方法,其特征在于,所述预设条件为Data_w/M≤DW/n,
其中,Data_w为所述第一数据位宽,M为拼接所用的RAM块的数量,DW为单个RAM的数据位宽,n为条件参数,可取值为2,3,4,5….DW-1。
3.根据权利要求1所述的块存储器拼接方法,其特征在于,所述第一规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)×D~i×D-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
4.根据权利要求1所述的块存储器拼接方法,其特征在于,所述第二规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)×D/2~(i×D)/2-1及(M+i-1)×D/2~(M+i)D/2-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
5.一种块存储器拼接模块,其特征在于,包括:
RAM块数量计算单元,用于根据待处理数据地址的第一数据位宽、第一数据深度计算拼接所用的RAM块的数量;
RAM分配单元,用于判断所述第一数据位宽与RAM块数据位宽是否满足预设条件,若是,则按照第一规则将所述待处理数据地址存储在所述RAM块中;若否,则则按照第二规则将所述待处理数据地址存储在所述RAM块中。
6.根据权利要求5所述的块存储器拼接模块,其特征在于,所述预设条件为Data_w/M≤DW/n,
其中,Data_w为所述第一数据位宽,M为拼接所用的RAM块的数量,DW为单个RAM的数据位宽,n为条件参数,可取值为2,3,4,5….DW-1。
7.根据权利要求5所述的块存储器拼接模块,其特征在于,所述第一规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)×D~i×D-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
8.根据权利要求5所述的块存储器拼接模块,其特征在于,所述第二规则为:
第i块RAM块中,存储的待处理数据范围为(i-1)×D/2~(i×D)/2-1及(M+i-1)×D/2~(M+i)×D/2-1,地址范围为0~Address_w-1,其中,D=Data_w/M,Address_w为待处理数据深度,M为拼接所用的RAM块的数量,Data_w为所述第一数据位宽。
9.一种存储装置,其特征在于,包括如权利要求5-8任一项所述的块存储器拼接模块。
10.一种现场可编程门阵列,其特征在于,包括如权利要求9所述的存储装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811308535.XA CN109545256B (zh) | 2018-11-05 | 2018-11-05 | 块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811308535.XA CN109545256B (zh) | 2018-11-05 | 2018-11-05 | 块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109545256A true CN109545256A (zh) | 2019-03-29 |
CN109545256B CN109545256B (zh) | 2020-11-10 |
Family
ID=65846524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811308535.XA Active CN109545256B (zh) | 2018-11-05 | 2018-11-05 | 块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109545256B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008160A (zh) * | 2019-11-30 | 2020-04-14 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置和电子设备及可读存储介质 |
CN112668260A (zh) * | 2020-12-17 | 2021-04-16 | 北京物芯科技有限责任公司 | 一种芯片sram拼接方法、装置、电子设备和存储介质 |
CN117573044A (zh) * | 2024-01-18 | 2024-02-20 | 西安智多晶微电子有限公司 | 一种拼接实现扩展ddrc位宽的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148364A (en) * | 1997-12-30 | 2000-11-14 | Netlogic Microsystems, Inc. | Method and apparatus for cascading content addressable memory devices |
US6317350B1 (en) * | 2000-06-16 | 2001-11-13 | Netlogic Microsystems, Inc. | Hierarchical depth cascading of content addressable memory devices |
CN1416133A (zh) * | 2001-10-29 | 2003-05-07 | 三菱电机株式会社 | 半导体存储器 |
CN101918930A (zh) * | 2008-01-16 | 2010-12-15 | S.阿夸半导体有限公司 | 级联存储器装置 |
CN107894922A (zh) * | 2017-12-06 | 2018-04-10 | 西安智多晶微电子有限公司 | Ram资源分配方法 |
-
2018
- 2018-11-05 CN CN201811308535.XA patent/CN109545256B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6148364A (en) * | 1997-12-30 | 2000-11-14 | Netlogic Microsystems, Inc. | Method and apparatus for cascading content addressable memory devices |
US6317350B1 (en) * | 2000-06-16 | 2001-11-13 | Netlogic Microsystems, Inc. | Hierarchical depth cascading of content addressable memory devices |
CN1416133A (zh) * | 2001-10-29 | 2003-05-07 | 三菱电机株式会社 | 半导体存储器 |
CN101918930A (zh) * | 2008-01-16 | 2010-12-15 | S.阿夸半导体有限公司 | 级联存储器装置 |
CN107894922A (zh) * | 2017-12-06 | 2018-04-10 | 西安智多晶微电子有限公司 | Ram资源分配方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008160A (zh) * | 2019-11-30 | 2020-04-14 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置和电子设备及可读存储介质 |
CN112668260A (zh) * | 2020-12-17 | 2021-04-16 | 北京物芯科技有限责任公司 | 一种芯片sram拼接方法、装置、电子设备和存储介质 |
CN112668260B (zh) * | 2020-12-17 | 2024-04-12 | 北京物芯科技有限责任公司 | 一种芯片sram拼接方法、装置、电子设备和存储介质 |
CN117573044A (zh) * | 2024-01-18 | 2024-02-20 | 西安智多晶微电子有限公司 | 一种拼接实现扩展ddrc位宽的方法及装置 |
CN117573044B (zh) * | 2024-01-18 | 2024-04-30 | 西安智多晶微电子有限公司 | 一种拼接实现扩展ddrc位宽的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109545256B (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109545256A (zh) | 块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列 | |
CN107894922B (zh) | Ram资源分配方法 | |
US8671263B2 (en) | Implementing optimal storage tier configurations for a workload in a dynamic storage tiering system | |
KR102290540B1 (ko) | 네임스페이스/스트림 관리 | |
CN102667735A (zh) | 混合式存储器架构 | |
CN110737401B (zh) | 用于管理独立冗余磁盘阵列的方法、设备和计算机程序产品 | |
US9063668B1 (en) | Distributed memory allocation in multi-threaded programs | |
CN104461389B (zh) | 一种混合存储器中数据迁移的自学习的方法 | |
CN109542799A (zh) | 块存储器拼接方法、拼接模块、存储装置及现场可编程门阵列 | |
CN104111805B (zh) | 一种i/o请求处理方法及存储系统 | |
CN105227489A (zh) | 一种带宽管理方法及电子设备 | |
CN106557427A (zh) | 共享内存数据库的内存管理方法及装置 | |
CN109144718A (zh) | 一种内存分配方法、内存释放方法以及相关设备 | |
CN101546292A (zh) | 一种内存存取方法及装置 | |
CN106933673A (zh) | 调整组件逻辑线程数量的方法及装置 | |
CN103218305A (zh) | 存储空间的分配方法 | |
CN106155917A (zh) | 内存管理方法及装置 | |
CN101848158B (zh) | 一种数据通道的负载均衡方法、装置和网络交换设备 | |
CN104158902A (zh) | 一种基于请求数的Hbase数据块分配方法及装置 | |
CN108090025B (zh) | 动态多通道的神经网络soc芯片及其通道资源分配方法 | |
CN107168890A (zh) | 一种内存池的管理方法和装置 | |
CN103593297A (zh) | 虚拟u盘设计系统及方法 | |
CN105389216A (zh) | 一种剪切板数据缓存处理方法、装置和电子设备 | |
CN104821154B (zh) | 数据传输的控制系统、方法、芯片阵列及显示器 | |
CN102637064A (zh) | 小型机及小型机系统 |
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 |