CN113312277A - 存储体地址映射装置、方法及电子设备 - Google Patents
存储体地址映射装置、方法及电子设备 Download PDFInfo
- Publication number
- CN113312277A CN113312277A CN202110730386.1A CN202110730386A CN113312277A CN 113312277 A CN113312277 A CN 113312277A CN 202110730386 A CN202110730386 A CN 202110730386A CN 113312277 A CN113312277 A CN 113312277A
- Authority
- CN
- China
- Prior art keywords
- bits
- address
- bit
- mapped
- result
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 144
- 238000013507 mapping Methods 0.000 title claims abstract description 124
- 238000000034 method Methods 0.000 title claims abstract description 51
- 239000000126 substance Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 18
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 4
- 230000009849 deactivation Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
Abstract
提供了存储体地址映射装置、方法及电子设备。所提供的存储体地址映射装置包括:接口模块、哈希键寄存器以及逻辑运算模块;其中,接口模块与逻辑运算模块耦合,获取待映射的地址;逻辑运算模块与哈希键寄存器耦合;逻辑运算模块,将地址的第一多个比特分别与由哈希键寄存器所指定的多个第二比特序列的每个第二比特序列的每个比特相与得到多个计算结果,计算每个计算结果中指定值的个数,用1比特表示所述个数得到多个第一结果比特,其中,第一多个比特和第二比特序列中的比特数目相同,多个第一结果比特作为从所述地址映射得到的存储体地址。
Description
技术领域
本申请涉及集成电路芯片技术,尤其涉及将访问存储器的请求映射到多个存储体(Bank)的存储体地址映射装置、其方法及包括该存储体地址映射装置的电子设备。
背景技术
存储器访问是数字集成电路的重要组成部分。大规模集成电路芯片通常包括存储控制器,用于访问SRAM(StaticRandomAccessMemory,静态随机访问存储器)或DRAM(Dynamic Random Access Memory,动态随机访问存储器)。存储控制器用于处理对存储器(SRAM或DRAM)的访问,通常作为从设备耦合到总线。主设备通过总线经由存储控制器访问例如DRAM的存储器。常见的DRAM类型有SDRAM、DDR SDRAM以及DDR2 SDRAM等。
参见图1,通过访问请求(如读命令或写命令)访问DRAM时,在多数应用中,通常需要将访问请求提供给存储器控制器,然后存储器控制器将访问请求转换为诸如DDR2的存储器访问协议的存储器访问命令,以对DRAM进行控制。例如,DRAM包括2或8个存储体(BANK)。存储器控制器用于访问DRAM的地址包括例如2部分,存储体地址与存储体内地址。存储体地址用于寻址存储器。例如,通过3比特存储体地址确定由8个存储体的哪个响应存储器访问命令。存储体内地址用于寻址存储体内的存储空间。
为了提高存储容量与带宽,DRAM通过包括多个存储体(Bank)。对DRAM的访问请求平均分布到DRAM的所有存储体时,DRAM实现最大的带宽。然而,访问哪个存储体依赖于访问存储器的地址,进而依赖于应用程序所使用的数据的分布与对数据的使用方式。
发明内容
访问请求所携带的地址信息具有多种类型,例如,地址信息包括例如一个连续的地址空间或随机访问的地址。作为举例,若访问请求所携带的操作地址信息包括连续的地址空间的地址,通常,对于连续的地址空间的访问会映射到同一个存储体内的连续地址空间空间地址。对于DRAM的某个地址进行读写时,必须先激活地址所在的行(row),而一个存储体只能同时有一行(row)处于激活状态,而要访问存储体的另一行(row)时,必须关闭原激活的行(row),然后才能激活将要访问的行(row)。在访问存储体内的连续地址空间时,可能跨越多个行(row),并需要多次行(row)激活与关闭操作。行(row)激活或关闭的动作过多,导致降低了访问DRAM的效率。
根据本申请的实施例,对DRAM的访问请求的地址进行映射。将例如对连续的地址空间的访问请求映射到多个存储体(Bank),使得这些存储体(Bank)共同服务访问请求,从而对多个行(row)的激活或关闭操作因分布于多个存储器,从而可以并发执行,进而隐藏了多个行(row)的激活或关闭操作的时间,并且通过多个存储器(Bank)的并行访问,进一步降低了处理连续的地址空间访问请求的时间。为了便于将一个访问请求映射到多个存储体(Bank),采用标准的或统一的形式对访问请求所访问的地址进行映射。为了简单的目的,下文将采用标准的或统一的形式对访问请求所携带的地址进行映射的设备称为“存储体地址映射装置”,该存储体地址映射装置是例如独立于存储器控制器的设备或者集成于存储器控制器。
根据本申请的实施例,存储体地址映射装置截获并修改访问请求的地址。存储体地址映射装置对每个地址的修改方式是确定的。从而虽然对地址进行了修改,当访问存储器的主设备再次访问该地址时,存储体地址映射装置将对该地址实施相同的修改,从而存储体地址映射装置对主设备透明。主设备不会觉察到其访问的存储器的地址空间发生了改变。以及,对地址A写入的数据,经过存储体地址映射装置被写入到存储器的例如地址A’,而再读取地址A时,地址A依然被映射到地址A’,从而主设备读出其向地址A写入的数据。
然而,应用程序对存储器的访问存在多种模式。上面提到的将连续的地址空间访问请求映射到多个存储体(Bank)的方式适用于操作大数据块的应用,但却未必适用于操作多个碎片化小数据的应用。对于特定应用的集成电路芯片,通常根据应用的特征调整存储体地址映射装置,以在特定应用下获得更高的存储器带宽。根据本申请实施例的存储体地址映射装置,还希望提供存储体地址映射装置以适用于多种存储器访问模式。
根据本申请的实施例,存储体地址映射装置根据访问请求的地址,将访问请求映射到存储体(Bank)(通过例如生成存储体地址)。根据访问请求的地址中的一个或多个比特生成存储体地址。
进一步地,存储体地址映射装置用访问请求的地址的M比特生成N比特存储体地址。通常,M=N,且M与N均为正整数。而2^N代表了存储器中存储体的个数。本申请的实施例,也意在覆盖M>N的实施方式。此时,访问存储器的主设备知晓其地址空间的部分元素不可用,而对这部分元素的访问结果即使不可预知,也符合主设备的预期。
根据本申请第一方面,提供了根据本申请第一方面的第一存储体地址映射装置,包括:接口模块、哈希键寄存器以及逻辑运算模块;其中,接口模块与逻辑运算模块耦合,获取待映射的地址;逻辑运算模块与哈希键寄存器耦合;逻辑运算模块,将所述地址的第一多个比特分别与由哈希键寄存器所指定的多个第二比特序列的每个第二比特序列的每个比特相与得到多个计算结果,计算每个计算结果中指定值的个数,用1比特表示所述个数得到多个第一结果比特,其中,第一多个比特和第二比特序列中的比特数目相同;其中,所述多个第一结果比特作为从所述地址映射得到的存储体(BANK)地址。
根据本申请第一方面的第一存储体地址映射装置,提供了根据本申请第一方面的第二存储体地址映射装置,用所述待映射的地址中除所述第一多个比特外的其他比特作为存储体内地址,用所述存储体地址与所述存储体内地址访问存储器。
根据本申请第一方面的第一存储体地址映射装置,提供了根据本申请第一方面的第三存储体地址映射装置,逻辑运算模块,还用于:用多个第一结果比特替换第一多个比特中的指定比特得到映射后的地址,以使得用映射后的地址访问存储器。
根据本申请第一方面的第一至第三任一项存储体地址映射装置,提供了根据本申请第一方面的第四存储体地址映射装置,所述第一多个比特是所述地址中的部分比特而非全部比特。
根据本申请第一方面的第一至第四任一项存储体地址映射装置,提供了根据本申请第一方面的第五存储体地址映射装置,多个第二比特序列的数量为N,而2^N大等于要被映射的存储体数量。
根据本申请第一方面的第一至第五任一项存储体地址映射装置,提供了根据本申请第一方面的第六存储体地址映射装置,逻辑运算模块对每个计算结果中的所有比特按位求异或,得到同计算结果对应的第一结果比特。
根据本申请第一方面的第一至第六任一项存储体地址映射装置,提供了根据本申请第一方面的第七存储体地址映射装置,哈希键寄存器根据多个第二比特序列在哈希键中指定的位置,从哈希键对应的比特序列集合中选取所述多个第二比特序列。
根据本申请第一方面的第七存储体地址映射装置,提供了根据本申请第一方面的第八存储体地址映射装置,逻辑运算模块根据多个第二比特序列在哈希键中指定的位置,确定所述第一多个比特中被所述多个第一结果比特替换的比特的位置,其中,所述第一多个比特的比特数量大等于所述第一结果比特的比特数量。
根据本申请第一方面的第一至第八任一项存储体地址映射装置,提供了根据本申请第一方面的第九存储体地址映射装置,还包括:可被配置的哈希键索引寄存器,哈希键索引寄存器的各比特用于从哈希键中索引第二比特序列;
可被配置的地址窗口寄存器,地址窗口寄存器的值用于描述所述地址的哪些比特作为所述第一多个比特;其中,
根据所述地址窗口寄存器,从所述接口模块获取的所述地址中提取所述第一多个比特并提供给所述逻辑运算模块。
根据本申请第一方面的第一至第九任一项存储体地址映射装置,提供了根据本申请第一方面的第十存储体地址映射装置,还包括:数据通路;数据通路用于将从所述接口模块获取的对应所述地址的数据提供给所述地址要访问的存储器,或将从所述地址要访问的存储器获取的数据提供给所述接口模块。
根据本申请第一方面的第一至第十任一项存储体地址映射装置,提供了根据本申请第一方面的第十一存储体地址映射装置,所述多个第二比特序列包括N个第二比特序列;
逻辑运算模块根据N个第二比特序列中每一列与第一多个比特中比特之间的指定关系,用每个第二比特序列所对应的第一结果比特替换第一多个比特中与该第二比特序列对应的指定比特得到映射后的地址,以使得用映射后的地址访问存储器。
根据本申请第一方面的第一至第十一任一项存储体地址映射装置,提供了根据本申请第一方面的第十二存储体地址映射装置,逻辑运算模块,包括选择子模块、运算子模块以及替换子模块;其中,
选择子模块与接口模块耦合,获取接口模块所发送的所述地址,从所述地址中选择出指定的多个比特作为第一多个比特;
运算子模块与选择子模块耦合,将第一多个比特分别与每个第二比特序列的各比特相与得到多个计算结果,根据多个计算结果得到多个第一结果比特;
替换子模块与运算子模块耦合,用第一结果比特替换第一多个比特中与其对应的指定比特得到映射后的地址。
根据本申请第一方面的第十二存储体地址映射装置,提供了根据本申请第一方面的第十三存储体地址映射装置,选择子模块,从所述地址中选择出指定的多个连续比特或多个随机位置的比特作为第一多个比特。
根据本申请第一方面的第十三存储体地址映射装置,提供了根据本申请第一方面的第十四存储体地址映射装置,选择子模块,从所述地址中选择出第8比特、第9比特、第10比特以及第11比特作为第一多个比特。
根据本申请第一方面的第十二至第十四任一项存储体地址映射装置,提供了根据本申请第一方面的第十五存储体地址映射装置,运算子模块,计算每个计算结果中非零元素的个数,将该个数用1比特表示得到多个第一结果比特。
根据本申请第一方面的第十一至第十五任一项存储体地址映射装置,提供了根据本申请第一方面的第十六存储体地址映射装置,哈希键寄存器包括多个数据寄存器;其中,每个数据寄存器存储哈希键中的1个比特序列。
根据本申请第一方面的第十六存储体地址映射装置,提供了根据本申请第一方面的第十七存储体地址映射装置,数据寄存器的数目不小于N。
根据本申请第一方面的第十六或第十七存储体地址映射装置,提供了根据本申请第一方面的第十八存储体地址映射装置,哈希键寄存器还包括配置寄存器,其中,配置寄存器,用于配置N个第二比特序列中每一列与第一多个比特中比特之间的指定关系。
根据本申请第一方面的第十八存储体地址映射装置,提供了根据本申请第一方面的第十九存储体地址映射装置,更新所述配置寄存器,以调整N的取值、所述N个第二比特序列在哈希键中的位置,所述N个第二比特序列的值、和/或N个第二比特序列中每一列与第一多个比特中比特之间的指定关系。
根据本申请第一方面的第十六至第十九任一项存储体地址映射装置,提供了根据本申请第一方面的第二十存储体地址映射装置,运算子模块还与配置寄存器连接,从所配置寄存器中获取所述N个第二比特序列,和/或N个第二比特序列中每一列与第一多个比特中比特之间的指定关系。
根据本申请第一方面的第十一至第二十任一项存储体地址映射装置,提供了根据本申请第一方面的第二十一存储体地址映射装置,接口模块从总线获取连续地址或随机地址。
根据本申请第二方面,提供了根据本申请第二方面的第一地址映射的方法,包括:获取待映射的地址,将所述地址的第一多个比特分别与指定的多个第二比特序列的各个比特相与得到多个计算结果;计算每个计算结果中指定值的个数,用1比特表示所述个数得到多个第一结果比特,其中,第一多个比特和第二比特序列中的比特数目相同;用所述多个第一结果比特作为从所述待映射的地址映射得到的存储体(Bank)地址。
根据本申请第二方面的第一地址映射的方法,提供了根据本申请第二方面的第二地址映射的方法,还包括:用所述待映射的地址中除所述第一多个比特外的其他比特作为存储体内地址,用所述存储体地址与所述存储体内地址访问存储器。
根据本申请第二方面的第一或第二地址映射的方法,提供了根据本申请第二方面的第三地址映射的方法,还包括:用多个第一结果比特替换第一多个比特中的指定比特得到映射后的地址,以使得用映射后的地址访问存储器。
根据本申请第二方面的第一至第三任一项地址映射的方法,提供了根据本申请第二方面的第四地址映射的方法,包括:所述第一多个比特是所述地址中的部分比特而非全部比特。
根据本申请第二方面的第四地址映射的方法,提供了根据本申请第二方面的第五地址映射的方法,包括:从所述地址中选择出指定的多个连续比特或多个随机位置的比特作为第一多个比特。
根据本申请第二方面的第五地址映射的方法,提供了根据本申请第二方面的第六地址映射的方法,包括:从所述地址中选择出第8比特、第9比特、第10比特以及第11比特作为第一多个比特。
根据本申请第二方面的第一至第六任一项地址映射的方法,提供了根据本申请第二方面的第七地址映射的方法,包括:多个第二比特序列的数量为N,而2^N大等于要被映射的存储体数量。
根据本申请第二方面的第一至第七任一项地址映射的方法,提供了根据本申请第二方面的第八地址映射的方法,还包括:对每个计算结果中的所有比特按位求异或,得到同计算结果对应的第一结果比特。
根据本申请第二方面的第一至第八任一项地址映射的方法,提供了根据本申请第二方面的第九地址映射的方法,还包括:根据多个第二比特序列在哈希键中指定的位置,从哈希键对应的比特序列集合中选取所述多个第二比特序列。
根据本申请第二方面的第九地址映射的方法,提供了根据本申请第二方面的第十地址映射的方法,还包括:根据多个第二比特序列在哈希键中指定的位置,确定所述第一多个比特中被所述多个第一结果比特替换的比特的位置,其中,所述第一多个比特的比特数量大等于所述第一结果比特的比特数量。
根据本申请第二方面的第一至第十任一项地址映射的方法,提供了根据本申请第二方面的第十一地址映射的方法,还包括:根据可被配置的地址窗口寄存器的值从地址中提取出第一多个比特,其中,地址窗口寄存器的值用于描述所述地址的哪些比特作为所述第一多个比特;根据可被配置的哈希键索引寄存器的值从哈希键中确定出多个第二比特序列,其中,哈希键索引寄存器的各比特用于从哈希键中索引第二比特序列。
根据本申请第二方面的第一至第十一任一项地址映射的方法,提供了根据本申请第二方面的第十二地址映射的方法,还包括:将从所述接口模块获取的对应所述地址的数据提供给所述地址要访问的存储器,或将从所述地址要访问的存储器获取的数据提供给所述接口模块。
根据本申请第二方面的第一至第十二任一项地址映射的方法,提供了根据本申请第二方面的第十三地址映射的方法,所述多个第二比特序列包括N个第二比特序列;
用多个第一结果比特替换第一多个比特中的指定比特得到映射后的地址,以使得用映射后的地址访问存储器,包括:根据N个第二比特序列中每一列与第一多个比特中比特之间的指定关系,用每个第二比特序列所对应的第一结果比特替换第一多个比特中与该第二比特序列对应的指定比特得到映射后的地址,以使得用映射后的地址访问存储器。
根据本申请第二方面的第十三地址映射的方法,提供了根据本申请第二方面的第十四地址映射的方法,还包括:调整N的取值、所述N个第二比特序列在哈希键中指定的位置,所述N个第二比特序列的值、和/或N个第二比特序列中每一列与第一多个比特中比特之间的指定关系。
根据本申请第二方面的第一至第十四任一项地址映射的方法,提供了根据本申请第二方面的第十五地址映射的方法,计算每个计算结果中指定值的个数,用1比特表示所述个数得到多个第一结果比特,包括:计算每个计算结果中非零元素的个数,将该个数用1比特表示得到多个第一结果比特。
根据本申请第二方面的第一至第十五任一项地址映射的方法,提供了根据本申请第二方面的第十六地址映射的方法,获取待映射的地址,包括:从总线获取连续地址或随机地址。
根据本申请第三方面,提供了根据本申请第三方面的电子设备,包括存储控制器以及第一方面第一至第二十一任一项存储体地址映射装置,其中,存储体地址映射装置接收要提供给所述存储器的用于访问存储器的地址,并输出映射后的存储体地址发送给所述存储控制器。
根据本申请第四方面,提供了根据本申请第四方面的存储体地址映射装置,包括:执行第二方面第一至第十六任一项所述的方法,接收要提供给所述存储器的用于访问存储器的地址,并输出映射后的存储体地址发送给存储控制器。
在本申请实施例所提供的方案中,存储体地址映射装置将待映射的地址中第一多个比特分别与由哈希键寄存器所指定的多个第二比特序列的每个第二比特序列的每个比特相与所得到的多个第一结果比特,通过多个第一结果比特替换第一多比特中指定比特位的数据得到映射后的地址,将多个第一结果比特作为从待映射的地址映射得到的存储体地址,将映射后的地址中除多个第一结果比特之外的其他比特作为存储体内地址,根据存储体地址和存储体内地址访问存储器。通过将待映射的地址所对应的存储体地址进行替换,实现将连续访问地址分配给不同BANK,避免将一连续访问空间的地址映射到一个BANK里,导致的访问DRAM的效率较低的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1展示了存储器设备;
图2A展示了根据本申请的存储体地址映射装置;
图2B展示了根据本申请的第一多个比特的示意图;
图2C展示了根据本申请的哈希键寄存器的结构示意图;
图2D展示了根据本申请的又一种存储体地址映射装置的结构示意图;
图2E展示了根据本申请的选取多个第二比特序列的操作示意图;
图2F展示了根据本申请的计算得到第一结果比特的示意图;
图3A展示了根据本申请的逻辑运算模块的结构示意图;
图3B展示了根据本申请的又一种哈希键寄存器的结构示意图;
图3C展示了根据本申请的第一多个比特中被所述多个第一结果比特替换的比特的位置的示意图;
图3D展示了根据本申请的映射后的地址的示意图;
图3E展示了根据本申请的又一种映射地址装置的示意图;
图4A展示了本申请实施例提供的地址映射的流程示意图;
图4B展示了本申请实施例提供的又一种地址映射的流程示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2A展示了根据本申请的存储体地址映射装置。
如图2A所示,存储体地址映射装置包括接口模块201、哈希键寄存器202以及逻辑运算模块203;其中,接口模块201与逻辑运算模块203耦合,从例如总线获取待映射的地址(访问请求中携带的存储器地址);逻辑运算模块203与哈希键寄存器202耦合;逻辑运算模块203,将待映射的地址的第一多个比特分别与由哈希键寄存器202所指定的多个第二比特序列的每个第二比特序列的每个比特相与得到多个计算结果,计算每个计算结果中指定值的个数,用1比特表示所述个数得到多个第一结果比特,其中,第一多个比特和第二比特序列中的比特数目相同,多个第一结果比特作为从所述地址映射得到的存储体(Bank)地址。
作为举例,访问请求发送方将访问请求(例如,对存储器的读命令或写命令)通过总线发送给接口模块201,接口模块201获取访问请求,并基于访问请求获取待映射的地址,作为举例,访问请求发送方包括例如CPU、DMA控制器以及集成电路中的其他模块。其中,访问请求可以通过总线发送给接口模块201;访问请求携带着操作类型以及要访问的存储器的地址(待映射的地址)。接口模块201获取待映射的地址之后,将待映射的地址或其部分比特发送给与其耦合的逻辑运算模块203,逻辑运算模块203将待映射的地址的第一多个比特分别与由哈希键寄存器202所指定的多个第二比特序列的每个第二比特序列的每个比特相与得到多个计算结果,根据每个计算结果中指定值的个数得到第一结果比特,根据第一结果比特对第一多个比特进行处理得到映射后的地址,将映射后的地址传输给存储器控制器,存储器控制器根据映射后的地址访问DRAM。
作为举例,哈希键寄存器202中存储着哈希键。作为举例,哈希键为矩阵,哈希键对应的矩阵中每一列表示一个比特序列。哈希键寄存器202通过与逻辑运算模块203耦合,将其存储的哈希键的一列或多列提供给逻辑运算模块203。例如,哈希键为M×P的矩阵,即哈希键中包含M行P列,P列分别为B1,…,BP,其中,B1,…,BP均包含M个比特,通过下式来表示哈希键:
其中,Hash_key表示哈希键;B11,…,BM1表示哈希键中的第一列B1中的各个比特;B1P,…,BMP表示哈希键中的第P列BP中的各个比特。
进一步,逻辑运算模块203在获取待映射的地址以及哈希键之后,实施可选的三个操作,分别为第一操作从待映射的地址中提取第一多个比特;第二操作根据哈希键寄存器202所指定的位置从哈希键中提取多个第二比特序列;第三操作将第一多个比特分别与多个第二比特序列中的每个第二比特序列相与得到多个计算结果,以及计算每个计算结果中指定值的个数,根据该个数得到多个第一结果比特。
在本申请实施例所提供的方案中,逻辑运算模块203执行第一操作的方式有多种,作为举例,第一多个比特是所述地址中的部分比特而非全部比特。又作为一种举例,逻辑运算模块203从所述地址中选择出指定的多个连续比特或多个随机位置的比特作为第一多个比特。
图2B展示了根据本申请的第一多个比特的示意图。
如图2B所示,作为举例,存储器访问请求携带的地址(待映射的地址)包括0~31比特,即待映射的地址有32比特,逻辑运算模块203根据指示从所述地址中选择出第8比特、第9比特、第10比特以及第11比特作为第一多个比特。
进一步,在本申请实施例所提供的方案中,逻辑运算模块203执行第二操作的方式有多种,作为举例,从哈希键寄存器202中获取的多个第二比特序列的数量为N,而2^N大等于要被映射的存储体数量,例如,DRAM中存储体的数量为2个,则第二比特序列的数量N不小于2;若DRAM中存储体的数量为8个,则第二比特序列的数量N不小于3。
又作为一个举例,哈希键寄存器202包括多个数据寄存器;其中,每个数据寄存器存储哈希键中的1个比特序列。又作为一种举例,哈希键寄存器202根据多个第二比特序列在哈希键中指定的位置,从哈希键对应的比特序列集合中选取所述多个第二比特序列。例如,在哈希键寄存器202中通过配置寄存器配置了多个第二比特序列在哈希键中指定的位置。又作为一种举例,若多个第二比特序列的数量为N,数据寄存器的数目不小于N。
图2C展示了根据本申请的哈希键寄存器的结构示意图。
如图2C所示,哈希键寄存器包括2个数据寄存器,分别为数据寄存器1、数据寄存器2、数据寄存器3以及数据寄存器2,其中,数据寄存器1存储比特序列1、数据存储器2存储比特序列2、数据寄存器3存储比特序列3,数据寄存器2存储比特序列2,其中,比特序列1、比特序列2、比特序列3以及比特序列2的比特数目相同。其中比特序列1作为哈希键的第一列、比特序列2作为哈希键的第二列、比特序列3作为哈希键的第三列以及比特序列2作为哈希键的第四列。
图2D展示了根据本申请的又一种存储体地址映射装置的结构示意图。
又作为一个举例,本申请实施例所提供的存储体地址映射装置,还包括:可被配置的哈希键索引寄存器204,哈希键索引寄存器204的各比特用于从哈希键寄存器202中索引第二比特序列;可被配置的地址窗口寄存器205,地址窗口寄存器205的值用于描述待映射地址的哪些比特作为所述第一多个比特;其中,根据地址窗口寄存器205,从接口模块201获取的待映射地址中提取所述第一多个比特并提供给逻辑运算模块203。
如图2D所示,哈希键寄存器202存储的哈希键包括2个比特序列,包括比特序列1、比特序列2、比特序列3以及比特序列2。存储体地址映射装置包括可被配置的哈希键索引寄存器204和可被配置的地址窗口寄存器205。作为举例,哈希键索引寄存器204被配置了两比特,分别为比特1和比特2,比特1指示哈希键中比特序列2,比特2指示哈希键中比特序列2,即从哈希键寄存器204中选出的多个第二比特序列包括比特序列2和比特序列2。作为又一个例子,哈希键索引寄存器204的比特数同哈希键矩阵的列数相同。在图2D的例子中,哈希键索引寄存器204包括2比特,并且被配置为“0101”,其中左数第2比特“1”指示选择哈希键寄存器的比特序列2,而左数第2比特“1”指示选择哈希键寄存器的比特序列2。
依然作为举例,图2D的地址窗口寄存器205的比特数同待映射地址的比特数相同(例如,32比特),而地址窗口寄存器205的值作为掩码(Mask),地址窗口寄存器205中的非零值代表了从待映射地址中要选取的一个或多个比特(图2D的例子中,选出了带映射地址的第8比特到第11比特)。从待映射地址中所选出的这些比特作为第一多个比特。可以理解地,地址窗口寄存器205中“1”的值无需连续,从而可以选择待映射地址中不连续的多个比特来映射存储体地址。
依然可选地或进一步地,根据哈希键索引寄存器204从哈希键寄存器202中选出的比特序列的值还指示了生成的存储体地址在待映射地址中的位置。例如,选出的比特序列2的值为0100,而比特比特序列2的值为0101,其中,0100和0101分别描述生成的存储体地址对应待映射的地址中第8比特和第9比特,例如,用生成的2比特存储体地址替换待映射地址的第8比特和第9比特。通过对待映射地址的第8比特和第9比特替换为生成的2比特存储体地址,完成对待映射地址的更新,并用更新后的待映射地址访问存储器。
图2E展示了根据本申请的选取多个第二比特序列的操作示意图。
如图2E所示,哈希键包括四个比特序列,分别为比特序列1、比特序列2、比特序列3以及比特序列2,若DRAM中存储体的数量为2个,哈希键索引寄存器中包括2比特,分别为比特1和比特2,其中,比特1索引了哈希键中比特序列2,比特2索引了哈希键中比特序列2,逻辑运算模块根据哈希键索引寄存器中比特1和比特2从哈希键中索引得到两个第二比特序列,分别为比特序列2和比特序列2。
进一步,逻辑运算模块203在从待映射地址提取出第8比特到第11比特以及比特序列2和比特序列2之后,将待映射地址的第8比特到第11比特分别与比特序列2和比特序列2相位与得到多个计算结果。作为举例,逻辑运算模块203对每个计算结果中的所有比特按位求异或,得到同计算结果对应的第一结果比特,例如。又作为一种举例,逻辑运算模块203计算每个计算结果中指定值的个数,用1比特表示所述个数得到多个第一结果比特,例如,指定值为每个计算结果中非零元素。
图2F展示了根据本申请的计算得到第一结果比特的示意图。
如图2F所示,第一多个比特与第二比特序列均包含2比特,多个比特序列包含2个比特序列,分别为比特序列1和比特序列2,其中,第一多个比特为0011,比特序列1为0001,比特序列2为0010,将第一多个比特与第二比特序列1按位相与得到计算结果1(0001),将第一多个比特与比特序列2按位相与得到计算结果2(0010),然后将计算结果1按位异或得到其对应的结果比特1(1),将计算结果2按位异或得到其对应的结果比特2(1)。以及拼接2个结果比特,得到2比特值“11”作为从待映射地址(的第一多个比特)得到的存储体地址。可以理解的,结果比特代表计算结果中的指定值(例如“1”)的个数,并且,每个结果比特仅为1比特。例如,若计算结果是“0111”,其中1的个数为3,而对应的结果比特依然为1比特1,若计算结果是“0101”,则对应的结果比特为1比特0。
图3A展示了根据本申请的逻辑运算模块的结构示意图。
在本申请实施例所提供的方案中,逻辑运算模块203的结构有多种,作为举例,如图3A所示,逻辑运算模块203,包括选择子模块2031、运算子模块2032以及替换子模块2033;其中,选择子模块2031与接口模块201耦合,获取接口模块201所发送的所述地址,从所述地址中选择出指定的多个比特作为第一多个比特;运算子模块2032与选择子模块2031耦合,将第一多个比特分别与每个第二比特序列的各比特相与得到多个计算结果,根据多个计算结果得到多个第一结果比特;替换子模块2033与运算子模块2032耦合,用第一结果比特替换第一多个比特中与其对应的指定比特得到映射后的地址。
在一种可能实现方式中,选择子模块2031,从所述地址中选择出指定的多个连续比特或多个随机位置的比特作为第一多个比特。
在又一种可能实现方式中,选择子模块2031,从所述地址中选择出第8比特、第9比特、第10比特以及第11比特作为第一多个比特。
在又一种可能实现方式中,运算子模块2032,计算每个计算结果中非零元素的个数,将该个数用1比特表示得到多个第一结果比特。
进一步,逻辑计算单元203得到第一多个比特分别与多个第二比特序列的每个第二比特序列的每个比特相与所对应的第一结果比特之后,将多个第一结果比特作为地址映射所得到的存储体(Bank)地址。在本申请实施例所提供的方案中,将第一结果比特作为地址映射所得到的存储体(Bank)地址的方式有多种。作为举例,逻辑运算模块203用多个第一结果比特替换第一多个比特中的指定比特得到映射后的地址,以使得用映射后的地址访问存储器。作为又一个例子,逻辑运算模块203用多个第一结果比特作为存储体地址,用待映射地址的去除第一多个比特之后的其余比特与存储体地址组合,得到用来访问存储器的地址。
为了实现用多个第一结果比特替换第一多个比特中的指定比特,作为举例,所述多个第二比特序列包括N个第二比特序列;逻辑运算模块203根据N个第二比特序列中每一列与第一多个比特中比特之间的指定关系,用每个第二比特序列所对应的第一结果比特替换第一多个比特中与该第二比特序列对应的指定比特得到映射后的地址,以使得用映射后的地址访问存储器。
在又一种可能实现方式中,哈希键寄存器202还包括配置寄存器2021,其中,配置寄存器2021,用于配置N个第二比特序列中每一列与第一多个比特中比特之间的指定关系。
图3B展示了根据本申请的又一种哈希键寄存器的结构示意图。
如图3B所示,哈希键寄存器202除了存储哈希键的数据寄存器之外还包括配置寄存器2021,其中,配置寄存器的值描述N个第二比特序列中的每一列与第一多个比特中比特之间的指定关系,如N个第二比特序列包括第二比特序列1和第二比特序列2,第一多个比特包含待映射的地址中的第8比特、第9比特、第10比特以及第11比特,配置寄存器2021包含多个值,分别记录了N个第二比特序列的每个比特序列所对应的第一多个比特中的位置。例如,配置寄存器2021包括2个值,分别为0101与0100,分别对应了第一多个比特中的第8(0100)比特与第9(0101)比特。从而将第二比特序列1所对应的第一结果比特替换第一多个比特中的第8比特的值,或将第二比特序列2所对应的第一结果比特替换第一多个比特中的第9比特的值。
作为举例,配置寄存器2032中除了配置N个第二比特序列中每一列与第一多个比特中比特之间的指定关系,还配置有第二比特序列的数目N的值。
在一种可能实现方式中,运算子模块2032还与配置寄存器2021连接,从所配置寄存器2021中获取所述N个第二比特序列,和/或N个第二比特序列中每一列与第一多个比特中比特之间的指定关系。
又作为一种举例,逻辑运算模块203根据多个第二比特序列在哈希键中指定的位置,确定所述第一多个比特中被所述多个第一结果比特替换的比特的位置,其中,所述第一多个比特的比特数量大等于所述第一结果比特的比特数量。
具体的,在本申请实施例所提供的方案中,哈希键中每个第二比特序列在哈希键中的位置与第一多个比特中一比特之间指定对应,例如,哈希键中的第一列与第一多个比特中的最低比特对应,而哈希键中的第二列与第一多个比特中的次低比特对应。
图3C展示了根据本申请的第一多个比特中被所述多个第一结果比特替换的比特的位置的示意图。
在本申请实施例所提供的方案中,根据多个第二比特序列在哈希键中指定的位置,确定第一多个比特中被多个第一结果比特替换的比特的位置的方式有多种,如图3C所示,多个第二比特序列包括第二比特序列1和第二比特序列2,哈希键包括2个比特序列,分别为比特序列1(哈希键的第一列)、比特序列2(哈希键的第二列)、比特序列3(哈希键的第三列)以及比特序列2(哈希键的第四列),其中,第二比特序列1为比特序列1、第二比特序列2为比特序列3,即第二比特序列1为哈希键中的第一列,第二比特序列2为哈希键的第三列。第一多个比特包括2个比特,分别为待映射的地址中的第8比特、第9比特、第10比特以及第11比特,哈希键中第一列与第一多个比特中第8比特对应,第三列与第一多个比特中第10比特对应,根据第二比特序列1以及第二比特序列2在哈希键中的位置,确定第二比特序列1所对应的第一结果比特替换第一多个比特中第8比特的数据,确定第二比特序列2所对应的第一结果比特替换第一多个比特中第10比特的数据。
进一步,在本申请实施例所提供的方案中,还可以对多个第二比特序列的数目、哈希键寄存器202中多个第二比特序列的值、多个第二比特序列在哈希键中的位置,以及第二比特序列中每一列与第一多个比特中比特之间的指定关系。作为举例,更新所述配置寄存器2021,以调整N的取值、所述N个第二比特序列在哈希键中的位置,所述N个第二比特序列的值、和/或N个第二比特序列中每一列与第一多个比特中比特之间的指定关系。
进一步,在本申请实施例所提供的方案中,逻辑运算模块203将待映射的地址的第一多个比特分别与由哈希键寄存器所指定的多个第二比特序列的每个第二比特序列的每个比特相与得到多个计算结果,根据每个计算结果中指定值的个数得到多个第一结果比特,根据多个第二比特序列在哈希键中指定的位置,确定所述第一多个比特中被所述多个第一结果比特替换的比特的位置,根据该位置将多个第一结果比特分别与第一多个比特中对应的比特进行替换得到映射后的地址。作为举例,将映射后的地址中多个第一结果比特作为存储体地址,其中,存储体地址是指示DRAM内存颗粒中存储体(Bank)的地址,根据存储体地址确定待映射的地址所对应的存储体(Bank)。
进一步,为了访问存储器,在一种可能实现的方式中,用待映射的地址中除所述第一多个比特外的其他比特作为存储体内地址,用所述存储体地址与所述存储体内地址访问存储器。
图3D展示了根据本申请的映射后的地址的示意图。
如图3D所示,待映射的地址包括32比特,分别为0~31比特,第一多个比特包括2个比特,分别为待映射的地址中的第8比特~第11比特,待映射的地址为0101,第一多个比特中第8比特被第一结果比特(值为1)所替换,第9比特被第一结果比特(值为0)所替换得到映射后的地址,其为0101,则通过映射后的地址中第8比特和第9比特作为存储体地址(其值为01),将第31-第12比特以及第7-第0比特作为存储体内地址(其宽度为28比特)。注意到映射后的存储体地址与存储体内地址的总宽度为30比特,小于待映射地址的宽度(32比特)。在可选的实施方式中,映射后的存储地址包括第31-第10比特以及第7-第0比特作为存储体内地址(其宽度为30比特),从而映射后的存储体地址与存储体内地址的总宽度为32比特,等于待映射地址宽度。
进一步,将待映射的地址映射为映射后的地址之后,还需要从接口模块获取的对应待映射的地址的数据,并根据映射后的地址将该数据提供给要访问的存储器,或将从待映射的地址要访问的存储器获取的数据提供给接口模块。
图3E展示了根据本申请的又一种映射地址装置的示意图。
如图3E所示,存储体地址映射装置还包括:数据通路206;数据通路206用于将从所述接口模块201获取的对应所述地址的数据提供给所述地址要访问的存储器,或将从所述地址要访问的存储器获取的数据提供给所述接口模块201。
作为举例,接口模块201从总线获取连续地址或随机地址。
图4A展示了本申请实施例提供的地址映射的流程示意图。在例如将数据从主机搬移到DRAM、将数据从DRAM搬移到主机、将数据从DRAM搬移到NVM芯片或将数据从NVM芯片搬移到DRAM时执行图4A所展示的流程以实现访问空间的地址到DRAM地址映射。
步骤401,获取待映射的地址,将所述地址的第一多个比特分别与指定的多个第二比特序列的各个比特相与得到多个计算结果。
步骤402,计算每个计算结果中指定值的个数,用1比特表示所述个数得到多个第一结果比特,其中,第一多个比特和第二比特序列中的比特数目相同。
步骤403,用所述多个第一结果比特作为从所述待映射的地址映射得到的存储体(Bank)地址。
在一种可能实现的方式中,还包括:用所述待映射的地址中除所述第一多个比特外的其他比特作为存储体内地址,用所述存储体地址与所述存储体内地址访问存储器。
在一种可能实现的方式中,还包括:用多个第一结果比特替换第一多个比特中的指定比特得到映射后的地址,以使得用映射后的地址访问存储器。
在一种可能实现的方式中,包括:从所述地址中选择出第8比特、第9比特、第10比特以及第11比特作为第一多个比特。
在一种可能实现的方式中,包括:多个第二比特序列的数量为N,而2^N大等于要被映射的存储体数量。
在一种可能实现的方式中,还包括:
对每个计算结果中的所有比特按位求异或,得到同计算结果对应的第一结果比特。
在一种可能实现的方式中,还包括:根据多个第二比特序列在哈希键中指定的位置,从哈希键对应的比特序列集合中选取所述多个第二比特序列。
在一种可能实现的方式中,还包括:根据多个第二比特序列在哈希键中指定的位置,确定所述第一多个比特中被所述多个第一结果比特替换的比特的位置,其中,所述第一多个比特的比特数量大等于所述第一结果比特的比特数量。
在一种可能实现的方式中,还包括:
根据可被配置的地址窗口寄存器的值从地址中提取出第一多个比特,其中,地址窗口寄存器的值用于描述所述地址的哪些比特作为所述第一多个比特;
根据可被配置的哈希键索引寄存器的值从哈希键中确定出多个第二比特序列,其中,哈希键索引寄存器的各比特用于从哈希键中索引第二比特序列。
在一种可能实现的方式中,还包括:
将从所述接口模块获取的对应所述地址的数据提供给所述地址要访问的存储器,或将从所述地址要访问的存储器获取的数据提供给所述接口模块。
在一种可能实现的方式中,所述多个第二比特序列包括N个第二比特序列;
用多个第一结果比特替换第一多个比特中的指定比特得到映射后的地址,以使得用映射后的地址访问存储器,包括:
根据N个第二比特序列中每一列与第一多个比特中比特之间的指定关系,用每个第二比特序列所对应的第一结果比特替换第一多个比特中与该第二比特序列对应的指定比特得到映射后的地址,以使得用映射后的地址访问存储器。
在一种可能实现的方式中,还包括:
调整N的取值、所述N个第二比特序列在哈希键中指定的位置,所述N个第二比特序列的值、和/或N个第二比特序列中每一列与第一多个比特中比特之间的指定关系。
在一种可能实现的方式中,计算每个计算结果中指定值的个数,用1比特表示所述个数得到多个第一结果比特,包括:
计算每个计算结果中非零元素的个数,将该个数用1比特表示得到多个第一结果比特。
在一种可能实现的方式中,获取待映射的地址,包括:从总线获取连续地址或随机地址。
为了便于理解下面以举例的形式对上述地址映射的过程进行简要介绍。
图4B展示了本申请实施例提供的又一种地址映射的流程示意图。
如图4B所示,存储体地址映射装置获取待映射的地址(存储器地址),然后截取存储器的部分比特得到第一多个比特A,从哈希键寄存器中获取哈希键B,从哈希键B中提取N个第二比特序列,分别为B1,B2,…,Bp,BN,其中,Bp=(l,p),l表示一个比特序列,p表示Bp在哈希键B中的位置(列号),Bp所包含的比特数目与第一多个比特的数目相同;然后,分别将B1,B2,…,Bp,BN中每个比特序列与第一多个比特A按位做与运算得到C1,C2,…,Cp,CN,其中,C1=^(A&B1),C2=^(A&B2),Cp=^(A&Bp),CN=^(A&BN),分别确定C1,C2,…,Cp,CN中指定值的个数,并用1比特表示得到多个结果比特D1,D2,…,Dp,DN,分别用D1,D2,…,Dp,DN的值替换第一多个比特中其对应位置的值,得到更新后的多个比特A,根据更新后的多个比特A更新待映射的地址得到映射后的地址,并输出映射后的地址。
若输入的存储器地址为一段连续地址(例如,地址为32位,第一多个比特A是32位地址的第11-第8比特),为了便于理解下面以举例的形式对该连续地址进行映射,以及将映射后的地址分配给多个存储体(Bank)的过程进行简要介绍。具体的,参见下表1、表2和表3所示:
表1
第一多个比特A | 第二比特序列B1 | A&B1 | 第一结果比特C1 |
0000 | 0000 | 0000 | 0 |
0001 | 0001 | 0001 | 1 |
0010 | 0000 | 0000 | 0 |
0011 | 0001 | 0001 | 1 |
表2
第一多个比特A | 第二比特序列B2 | A&B2 | 第一结果比特C2 |
0000 | 0000 | 0000 | 0 |
0001 | 0000 | 0000 | 0 |
0010 | 0010 | 0010 | 1 |
0011 | 0010 | 0010 | 1 |
表3
第一结果比特C1 | 第二结果比特C2 | 存储体地址(C2C1) | BANK号 |
0 | 0 | 00 | 0 |
1 | 0 | 01 | 1 |
0 | 1 | 10 | 2 |
1 | 1 | 11 | 3 |
根据上述表1、表2和表3可知,若DRAM内存颗粒包括2个存储体(Bank),其BANK号(存储体地址)分别为0、1、2、3,多个第二比特序列包括两个比特序列B1和B2,第一多个比特和第二比特序列均包含2比特。将连续存储器地址(0000~0011)中的每个第一多个比特A分别与B1和B2按位与得到第一结果比特C1和C2,根据第一结果比特C1和C2确定存储体地址分别为00、01、10以及11,确定出将第一多个比特为0000的存储器地址分配给BANK号为0的存储体,将第一多个比特为0001的存储器地址分配给BANK号为1的存储体,将第一多个比特为0010的存储器地址分配给BANK号为2的存储体,将第一多个比特为0011的存储器地址分配给BANK号为3的存储体,进而实现将一段连续存储器地址分配给不同的存储体。若第一多个比特为待映射的地址中第8比特~第11比特,则每个256Byte自动跳切换到下一个存储体。
在本申请实施例所提供的方案中,存储体地址映射装置将待映射的地址中第一多个比特分别与由哈希键寄存器所指定的多个第二比特序列的每个第二比特序列的每个比特相与所得到的多个第一结果比特,通过多个第一结果比特替换第一多比特中指定比特位的数据得到映射后的地址,将多个第一结果比特作为从待映射的地址映射得到的存储体地址,将映射后的地址中除多个第一结果比特之外的其他比特作为存储体内地址,根据存储体地址和存储体内地址访问存储器。通过将待映射的地址所对应的存储体地址进行替换,实现将连续访问地址分配给不同存储体,避免将一连续访问空间的地址映射到一个存储体里,导致的访问DRAM的效率较低的问题。
本申请实施例还提供一种电子设备,该电子设备包括存储控制器以及上述所述的存储体地址映射装置,其特征在于,包括:存储体地址映射装置接收要提供给所述存储器的用于访问存储器的地址,并输出映射后的存储体地址发送给所述存储控制器。
本申请实施例还提供一种存储体地址映射装置,该存储体地址映射装置执行上述地址映射的方法,接收要提供给存储器的用于访问存储器的地址,并输出映射后的存储体地址发送给存储控制器。
需要说明的是,为了简明的目的,本申请将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本申请的方案并不受所描述的动作的顺序限制。因此,依据本申请的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本申请所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本申请某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本申请对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本申请某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本申请的公开和教导,本领域技术人员可以理解本申请所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种存储体地址映射装置,其特征在于,包括:接口模块、哈希键寄存器以及逻辑运算模块;其中,
接口模块与逻辑运算模块耦合,获取待映射的地址;
逻辑运算模块与哈希键寄存器耦合;
逻辑运算模块,将所述地址的第一多个比特分别与由哈希键寄存器所指定的多个第二比特序列的每个第二比特序列的每个比特相与得到多个计算结果,计算每个计算结果中指定值的个数,用1比特表示所述个数得到多个第一结果比特,其中,第一多个比特和第二比特序列中的比特数目相同;
其中,所述多个第一结果比特作为从所述地址映射得到的存储体(Bank)地址。
2.根据权利要求1所述的装置,其特征在于,用所述待映射的地址中除所述第一多个比特外的其他比特作为存储体内地址,用所述存储体地址与所述存储体内地址访问存储器。
3.根据权利要求1所述的装置,其特征在于,逻辑运算模块,还用于:用多个第一结果比特替换第一多个比特中的指定比特得到映射后的地址,以使得用映射后的地址访问存储器。
4.根据权利要求1-3任一项所述的装置,其特征在于,多个第二比特序列的数量为N,而2^N大等于要被映射的存储体数量。
5.根据权利要求1-4任一项所述的装置,其特征在于,逻辑运算模块对每个计算结果中的所有比特按位求异或,得到同计算结果对应的第一结果比特。
6.根据权利要求5所述的装置,其特征在于,逻辑运算模块根据多个第二比特序列在哈希键中指定的位置,确定所述第一多个比特中被所述多个第一结果比特替换的比特的位置,其中,所述第一多个比特的比特数量大等于所述第一结果比特的比特数量。
7.根据权利要求1-6任一项所述的装置,其特征在于,还包括:可被配置的哈希键索引寄存器,哈希键索引寄存器的各比特用于从哈希键中索引第二比特序列;
可被配置的地址窗口寄存器,地址窗口寄存器的值用于描述所述地址的哪些比特作为所述第一多个比特;其中,
根据所述地址窗口寄存器,从所述接口模块获取的所述地址中提取所述第一多个比特并提供给所述逻辑运算模块。
8.根据权利要求1-7任一项所述的装置,其特征在于,还包括:数据通路;数据通路用于将从所述接口模块获取的对应所述地址的数据提供给所述地址要访问的存储器,或将从所述地址要访问的存储器获取的数据提供给所述接口模块。
9.根据权利要求1-8任一项所述的装置,其特征在于,所述多个第二比特序列包括N个第二比特序列;
逻辑运算模块根据N个第二比特序列中每一列与第一多个比特中比特之间的指定关系,用每个第二比特序列所对应的第一结果比特替换第一多个比特中与该第二比特序列对应的指定比特得到映射后的地址,以使得用映射后的地址访问存储器。
10.一种地址映射的方法,其特征在于,包括:
获取待映射的地址,将所述地址的第一多个比特分别与指定的多个第二比特序列的各个比特相与得到多个计算结果;
计算每个计算结果中指定值的个数,用1比特表示所述个数得到多个第一结果比特,其中,第一多个比特和第二比特序列中的比特数目相同;
用所述多个第一结果比特作为从所述待映射的地址映射得到的存储体(Bank)地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110730386.1A CN113312277A (zh) | 2021-06-29 | 2021-06-29 | 存储体地址映射装置、方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110730386.1A CN113312277A (zh) | 2021-06-29 | 2021-06-29 | 存储体地址映射装置、方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113312277A true CN113312277A (zh) | 2021-08-27 |
Family
ID=77380810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110730386.1A Pending CN113312277A (zh) | 2021-06-29 | 2021-06-29 | 存储体地址映射装置、方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312277A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4019961A1 (de) * | 1989-06-23 | 1991-01-10 | Hitachi Ltd | Steuerung fuer mehrfache virtuelle adressraeume |
US5392252A (en) * | 1990-11-13 | 1995-02-21 | Vlsi Technology, Inc. | Programmable memory addressing |
US6070227A (en) * | 1997-10-31 | 2000-05-30 | Hewlett-Packard Company | Main memory bank indexing scheme that optimizes consecutive page hits by linking main memory bank address organization to cache memory address organization |
US20180019006A1 (en) * | 2016-07-15 | 2018-01-18 | Advanced Micro Devices, Inc. | Memory controller with flexible address decoding |
CN110312994A (zh) * | 2017-02-24 | 2019-10-08 | 国际商业机器公司 | 使用指令地址映射绕过加载指令的存储器访问 |
KR20190123819A (ko) * | 2018-04-24 | 2019-11-04 | 동국대학교 산학협력단 | 데이터 저장장치의 주소 맵핑 테이블 운용 방법 |
CN111858396A (zh) * | 2020-07-27 | 2020-10-30 | 福州大学 | 一种存储器自适应地址映射方法及系统 |
KR20210027625A (ko) * | 2019-08-29 | 2021-03-11 | 동국대학교 산학협력단 | 데이터 저장장치의 주소 맵핑 테이블 운용 방법 |
-
2021
- 2021-06-29 CN CN202110730386.1A patent/CN113312277A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4019961A1 (de) * | 1989-06-23 | 1991-01-10 | Hitachi Ltd | Steuerung fuer mehrfache virtuelle adressraeume |
US5392252A (en) * | 1990-11-13 | 1995-02-21 | Vlsi Technology, Inc. | Programmable memory addressing |
US6070227A (en) * | 1997-10-31 | 2000-05-30 | Hewlett-Packard Company | Main memory bank indexing scheme that optimizes consecutive page hits by linking main memory bank address organization to cache memory address organization |
US20180019006A1 (en) * | 2016-07-15 | 2018-01-18 | Advanced Micro Devices, Inc. | Memory controller with flexible address decoding |
CN109478169A (zh) * | 2016-07-15 | 2019-03-15 | 超威半导体公司 | 具有灵活地址解码的存储器控制器 |
CN110312994A (zh) * | 2017-02-24 | 2019-10-08 | 国际商业机器公司 | 使用指令地址映射绕过加载指令的存储器访问 |
KR20190123819A (ko) * | 2018-04-24 | 2019-11-04 | 동국대학교 산학협력단 | 데이터 저장장치의 주소 맵핑 테이블 운용 방법 |
KR20210027625A (ko) * | 2019-08-29 | 2021-03-11 | 동국대학교 산학협력단 | 데이터 저장장치의 주소 맵핑 테이블 운용 방법 |
CN111858396A (zh) * | 2020-07-27 | 2020-10-30 | 福州大学 | 一种存储器自适应地址映射方法及系统 |
Non-Patent Citations (1)
Title |
---|
曹计昌;邱鹏;张斌;: "UCard中动态地址映射的实现方法研究", 计算机工程与科学, no. 01, 28 January 2006 (2006-01-28), pages 119 - 121 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6381669B1 (en) | Multi-bank, fault-tolerant, high-performance memory addressing system and method | |
US11132300B2 (en) | Memory hierarchy using page-based compression | |
CN110582745B (zh) | 存储器装置及可促进张量存储器存取的方法 | |
US7325221B1 (en) | Logic system with configurable interface | |
CN110275840B (zh) | 在存储器接口上的分布式过程执行和文件系统 | |
US9477605B2 (en) | Memory hierarchy using row-based compression | |
US20030182491A1 (en) | Multi-bank, fault-tolerant, high-performance memory addressing system and method | |
CN110096450B (zh) | 多粒度并行存储系统及存储器 | |
CN1653434A (zh) | 获得数据掩码映射信息 | |
CN110008147A (zh) | 存储器控制器以及用于对存储模块进行访问的方法 | |
US11620225B1 (en) | System and method for mapping memory addresses to locations in set-associative caches | |
CN1653435A (zh) | 通过控制器编程在硬件中映射数据掩码 | |
EP3356945B1 (fr) | Dispositif informatique muni de traitement en memoire et de ports d'acces etroits | |
US20170139726A1 (en) | Serial device emulator using two memory levels with dynamic and configurable response | |
CN108959105B (zh) | 一种实现地址映射的方法及装置 | |
CN106066833A (zh) | 存取多端口存储器模块的方法及相关的存储器控制器 | |
US20200293452A1 (en) | Memory device and method including circular instruction memory queue | |
CN112908384A (zh) | 可选择性操作的存储器装置 | |
WO2018165939A1 (en) | Flash data compression decompression method and apparatus | |
CN113312277A (zh) | 存储体地址映射装置、方法及电子设备 | |
US9355430B2 (en) | Techniques for interleaving surfaces | |
CN105022609A (zh) | 一种数据混洗方法和数据混洗单元 | |
US11100267B1 (en) | Multi dimensional memory compression using bytewide write enable | |
JP2021026769A (ja) | ストレージ管理のための方法、装置、機器、コンピュータ読み取り可能な記憶媒体及びコンピュータプログラム | |
US10642734B1 (en) | Non-power of two memory configuration |
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 |