CN114936169A - 存储器的磨损均衡方法和装置、存储器和电子设备 - Google Patents
存储器的磨损均衡方法和装置、存储器和电子设备 Download PDFInfo
- Publication number
- CN114936169A CN114936169A CN202210345772.3A CN202210345772A CN114936169A CN 114936169 A CN114936169 A CN 114936169A CN 202210345772 A CN202210345772 A CN 202210345772A CN 114936169 A CN114936169 A CN 114936169A
- Authority
- CN
- China
- Prior art keywords
- address
- input
- memory
- input address
- addresses
- 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 212
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013507 mapping Methods 0.000 claims abstract description 174
- 230000001186 cumulative effect Effects 0.000 claims abstract description 110
- 238000009826 distribution Methods 0.000 claims abstract description 89
- 230000006870 function Effects 0.000 claims abstract description 86
- 230000005012 migration Effects 0.000 claims description 11
- 238000013508 migration Methods 0.000 claims description 11
- 230000032258 transport Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000003068 static effect Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000005315 distribution function Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- 230000000007 visual 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/0646—Configuration or reconfiguration
- G06F12/0669—Configuration or reconfiguration with decentralised address assignment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本公开实施例提供一种存储器的磨损均衡方法和装置、存储器和电子设备,所述存储器包括:多个存储单元,用于存储数据;第一控制单元,用于接收写入请求,所述写入请求中携带输入地址;基于所述输入地址的地址映射函数将所述输入地址映射到目标地址,以将数据写入所述目标地址对应的存储单元;一个输入地址的地址映射函数基于所述输入地址的写入次数的累积分布特征生成,所述累积分布特征用于表征所述输入地址与所述存储器中位于所述输入地址之前的各个在前输入地址的累积写入次数。
Description
技术领域
本公开涉及芯片技术领域,尤其涉及存储器的磨损均衡方法和装置、存储器和电子设备。
背景技术
存储器内部存储单元的磨损程度取决于其擦写次数,同一个输入地址被系统应用重复写入,那么该输入地址对应的存储单元磨损程度就会比较高,若达到存储单元的耐久度上限就可能会导致该存储单元损坏而读写出错,进而对整个存储器的可靠性造成严重影响。实际上系统应用对输入地址的访问通常具有局部高频的特点,如果对输入地址不做磨损均衡处理,就会造成存储器内各个存储单元磨损度存在较大差异,而整个存储器可靠性的一般是由内部磨损度最大的存储单元决定,这会使整个存储器在还有大量磨损度较低的存储单元没有被使用的情况下宣告整体使用寿命消耗完毕。因此,有必要对输入地址进行磨损均衡(Wear leveling),从而增加存储器的耐久度。然而,相关技术中的磨损均衡方式的复杂度较高。
发明内容
第一方面,本公开实施例提供一种存储器,所述存储器包括:多个存储单元,用于存储数据;第一控制单元,用于接收写入请求,所述写入请求中携带输入地址;基于所述输入地址的地址映射函数将所述输入地址映射到目标地址,以将数据写入所述目标地址对应的存储单元;一个输入地址的地址映射函数基于所述输入地址的写入次数的累积分布特征生成,所述累积分布特征用于表征所述输入地址与所述存储器中位于所述输入地址之前的各个在前输入地址的累积写入次数。
在一些实施例中,所述第一控制单元基于以下方式将所述输入地址映射到所述目标地址:在所述存储器中各个输入地址的写入次数的总和大于第一预设次数阈值的情况下,基于所述写入请求中的输入地址的地址映射函数将所述写入请求中的输入地址映射到目标地址;和/或在所述存储器中各个输入地址的写入次数的总和小于或等于所述第一预设次数阈值的情况下,将所述写入请求中的输入地址确定为所述目标地址。
在一些实施例中,所述第一控制单元基于以下方式将所述写入请求中的输入地址映射到所述目标地址:基于所述输入地址的地址映射函数将所述输入地址映射到第一地址;基于所述输入地址和所述第一地址确定地址映射比例;基于所述地址映射比例确定所述输入地址对应的偏移量;基于所述输入地址对应的偏移量将所述输入地址映射到所述目标地址,不同的输入地址对应不同的偏移量。
在一些实施例中,所述第一控制单元基于以下方式将所述写入请求中的输入地址映射到所述目标地址:在所述地址映射比例等于1的情况下,所述输入地址对应的偏移量基于所述第一地址确定;和/或在所述地址映射比例大于1的情况下,所述输入地址对应的偏移量基于所述输入地址在全部输入地址中的编号与输入地址的总数之间的余数确定;和/或在所述地址映射比例小于1的情况下,所述输入地址对应的偏移量通过所述第一控制单元分配得到。
在一些实施例中,各个输入地址被划分为多个地址段,同一地址段内各个输入地址的地址映射比例相同,且同一地址段内各个输入地址的偏移量不同。
在一些实施例中,所述多个存储单元被划分为多个存储块,所述存储器还包括多个第二控制单元,每个存储块对应一个第二控制单元;所述第一控制单元还用于:向所述第二控制单元发送数据迁移指令,以使所述第二控制单元将所在存储块中写入次数大于第二预设次数阈值的存储单元中的数据搬运到所在存储块中写入次数小于第三预设次数阈值的存储单元,所述第二预设次数阈值大于所述第三预设次数阈值。
在一些实施例中,所述第一控制单元具体用于:接收所述第二控制单元发送的写入次数信息;所述写入次数信息用于表征所述第二控制单元所在的存储块中各个存储单元的写入次数;基于所述写入次数信息向所述第二控制单元发送数据迁移指令。
在一些实施例中,所述第一控制单元还用于:在所述累积分布特征发生改变的情况下,对所述存储器的各个输入地址的写入次数进行重置。
在一些实施例中,所述第一控制单元还用于:在所述存储器中各个目标地址在第二时刻的写入次数的累积分布特征与所述各个目标地址在第一时刻的写入次数的累积分布特征之间的差异大于预设的差异阈值的情况下,确定所述累积分布特征发生改变,所述第二时刻与所述第一时刻之间的时间间隔小于预设的时间间隔。
第二方面,本公开实施例提供一种存储器,所述存储器包括:多个存储单元,用于存储数据;第一控制单元,用于获取存储器的各个输入地址的写入次数的累积分布特征,所述累积分布特征用于表征所述存储器中的每个输入地址与位于所述输入地址之前的各个在前输入地址的累积写入次数;基于所述累积分布特征生成各个输入地址的地址映射函数,所述地址映射函数用于将所述输入地址映射到目标地址,以将数据写入所述目标地址对应的存储单元。
第三方面,本公开实施例提供一种存储器的磨损均衡方法,所述方法包括:接收写入请求,所述写入请求中携带输入地址;基于所述输入地址的地址映射函数将所述输入地址映射到目标地址;一个输入地址的地址映射函数基于所述输入地址的写入次数的累积分布特征生成,所述累积分布特征用于表征所述输入地址与所述存储器中位于所述输入地址之前的各个在前输入地址的累积写入次数。
第四方面,本公开实施例提供一种存储器的磨损均衡方法,所述方法包括:获取存储器的各个输入地址的写入次数的累积分布特征,所述累积分布特征用于表征所述存储器中的每个输入地址与位于所述输入地址之前的各个在前输入地址的累积写入次数;基于所述累积分布特征生成各个输入地址的地址映射函数,所述地址映射函数用于将所述输入地址映射到目标地址,以将数据写入所述存储器中所述目标地址对应的存储单元。
第五方面,本公开实施例提供一种存储器的磨损均衡装置,所述装置包括:接收模块,用于接收写入请求,所述写入请求中携带输入地址;映射模块,用于基于所述输入地址的地址映射函数将所述输入地址映射到目标地址;一个输入地址的地址映射函数基于所述输入地址的写入次数的累积分布特征生成,所述累积分布特征用于表征所述输入地址与所述存储器中位于所述输入地址之前的各个在前输入地址的累积写入次数。
第六方面,本公开实施例提供一种存储器的磨损均衡装置,所述装置包括:获取模块,用于获取存储器的各个输入地址的写入次数的累积分布特征,所述累积分布特征用于表征所述存储器中的每个输入地址与位于所述输入地址之前的各个在前输入地址的累积写入次数;生成模块,用于基于所述累积分布特征生成各个输入地址的地址映射函数,所述地址映射函数用于将所述输入地址映射到目标地址,以将数据写入所述存储器中所述目标地址对应的存储单元。
第七方面,本公开实施例提供一种电子设备,所述电子设备包括本公开任一实施例所述的存储器。
第八方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的方法。
本公开基于存储器的各个输入地址的写入次数的累积分布特征生成各个输入地址的地址映射函数,基于地址映射函数能够将新的写入请求中的输入地址映射到目标地址,由于各个输入地址的写入次数的累积分布特征具有单调递增的特性,因此,基于累积分布特征生成的地址映射函数能够将各个输入地址均匀地映射到存储器的地址空间中,从而实现存储器的磨损均衡。该方案仅需获取各个输入地址的写入次数的累积分布特征,即可实现磨损均衡,复杂度低。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1A是未进行磨损均衡的情况下存储器中各地址的写入次数的示意图。
图1B是进行磨损均衡后存储器中各地址的写入次数的示意图。
图2是本公开实施例的存储器的示意图。
图3A是本公开实施例的输入地址与目标地址的分布情况的示意图。
图3B是本公开实施例的累积分布函数的示意图。
图4是本公开实施例的存储器的内部架构的示意图。
图5是本公开实施例的工作负载切换后的磨损均衡过程的示意图。
图6是本公开实施例的存储器的磨损均衡方法的流程图。
图7是本公开另一实施例的存储器的磨损均衡方法的流程图。
图8是本公开实施例的存储器的磨损均衡装置的框图。
图9是本公开另一实施例的存储器的磨损均衡装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好的理解本公开实施例中的技术方案,并使本公开实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本公开实施例中的技术方案作进一步详细的说明。
存储器内部存储单元的磨损程度取决于其擦写次数,同一个输入地址被系统应用重复写入,那么该输入地址对应的存储单元磨损程度就会比较高,若达到存储单元的耐久度上限就可能会导致该存储单元损坏而读写出错,进而对整个存储器的可靠性造成严重影响。实际上系统应用对输入地址的访问通常具有局部高频的特点。如图1A所示,是一些实施例中未进行磨损均衡的情况下存储器中各地址的写入次数的示意图。其中,纵坐标表示写入次数,横坐标表示输入地址。可以看出,输入地址A1和输入地址A4的写入次数分别为500和467,远高于输入地址A2的写入次数35、输入地址A3的写入次数18以及输入地址A5的写入次数47。
因此,如果对输入地址不做磨损均衡处理,就会造成存储器内各个存储单元磨损度存在较大差异。整个存储器可靠性的一般是由内部磨损度最大的存储单元决定,这会使整个存储器在还有大量磨损度较低的存储单元没有被使用的情况下宣告整体使用寿命消耗完毕。
为了提高存储器的使用寿命,可以采用磨损均衡算法,将对存储器的写入操作平均分配到各个目标地址,以使存储器的各个存储单元的磨损程度达到较为均衡的程度。如图1B所示,是进行磨损均衡后存储器中各地址的写入次数的示意图。可以看出,各个输入地址(A1到A8)的写入次数之间的差异较小,即各个输入地址对应的存储单元的磨损程度较为均衡。
磨损均衡算法目前主要分为静态磨损均衡和动态磨损均衡两种。在静态磨损均衡算法中,每间隔一段时间,根据不同存储单元磨损度的差异,将低频数据和高频数据进行交换,直到所有的存储单元达到擦写寿命上限。其中,低频数据为写入次数较少的存储单元中存储的数据,高频数据为写入次数较多的存储单元中存储的数据。在动态磨损均衡算法中,实时将系统访问存储单元的逻辑地址(即前述输入地址)映射到不同的存储单元,优先使用磨损程度较低的存储单元。以上磨损均衡技术的复杂度较高。除此之外,静态磨损均衡在后台对高低频数据进行搬运增加主控器的额外负担,且在前期整个存储器均处于较低磨损度时会频繁触发高低频数据低效搬运,加剧了前期存储器各个块额外的磨损程度。动态磨损均衡则侧重实时性,优先将系统输入地址写入到磨损程度较低的存储单元内,比较依赖于算法对工作负载的适配程度,一旦工作负载切换会带来比较差的写入均衡性能。其中,工作负载与存储器的写入特征相关,不同的工作负载可能对应不同的写入特征。所述写入特征可以包括但不限于写入次数、写入频率、写入位置等至少一者。例如,在一种工作负载下,以写入频率f1向存储器的输入地址A1写入数据;而在另一种工作负载下,以写入频率f2向存储器的输入地址A2写入数据。
基于此,本公开提供一种存储器,如图2所示,所述存储器包括:
多个存储单元201,用于存储数据;
第一控制单元202,用于接收写入请求,所述写入请求中携带输入地址;基于所述输入地址的地址映射函数将所述输入地址映射到目标地址,以将数据写入所述目标地址对应的存储单元;
一个输入地址的地址映射函数基于所述输入地址的写入次数的累积分布特征生成,所述累积分布特征用于表征所述输入地址与所述存储器中位于所述输入地址之前的各个在前输入地址的累积写入次数。
本公开使用统计的方法对输入地址进行动态映射,地址映射函数可以基于对输入地址的实时统计得到,通过概率密度函数对地址输入行为进行建模。将输入地址视为具有任意概率密度函数的随机变量x。对于任意的随机变量x以及其对应的概率密度函数pdf f(x)确定的区间R而言,可以通过唯一确定的概率密度函数f(y)=1/R将x映射到另一个随机变量y(即目标地址,也称为映射地址)。区间R表示输入地址的取值范围。该地址映射函数T一定存在,并且可以通过变量x的累积分布特征来获得。对于连续型变量,可以采用累积质量函数(Cumulative Mass Function,CMF)作为累积分布特征,CMF可以记为:
其中,u表示被积分变量。由于输入地址是离散值,可以通过求和来替代积分得到CMF,即:
其中,PX为输入地址的概率质量函数(Probability Mass Function,PMF),因为输出的映射地址也是离散的,通过求映射函数T的线性分段来对其进行近似拟合,从而保证最终映射地址的均一性。
本公开基于存储器的各个输入地址的写入次数的累积分布特征生成各个输入地址的地址映射函数,并基于地址映射函数将新的写入请求中的输入地址映射到目标地址,由于各个输入地址的写入次数的累积分布特征具有单调递增的特性,因此,基于累积分布特征生成的地址映射函数能够将各个输入地址均匀地映射到存储器的地址空间中,从而实现存储器的磨损均衡。该方案仅需获取各个输入地址的写入次数的累积分布特征,即可实现磨损均衡,复杂度低。
本公开实施例的第一控制单元202可以是处理器,所述处理器可以是中央处理单元(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、神经网络处理器(Neural Network Processing Unit,NPU)等。
存储器可以是相变存储器(Phase Change Memory,PCM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、闪存(Flash)或者其他类型的存储器。相变存储器的耐久力远高于Flash,但相变存储器晶态和非晶态的转化机制决定了其存储单元具有有限的写入寿命。一般而言,它的使用寿命远低于DRAM。然而,相比于DRAM而言,相变存储器凭借其高密度、低功耗、低平均成本的特性,近些年来已受到越来越多的重视。显然制约相变存储器替代主存的关键就是其与DRAM耐久力的差距,而磨损均衡技术的引入能够有效弥补在主存应用场景下相变存储器的耐久力不足问题,使相变存储器整体能够获得与DRAM相当的耐久力。
存储器中可以包括多个存储单元201,每个存储单元201均可以存储数据。例如,在一些场景下,可以通过CPU向存储器中的第一控制单元202发送写指令,第一控制单元202响应于该写指令将相应的数据写入存储器中的目标地址。具体来说,写指令中可以包括输入地址,第一控制单元202可以将输入地址映射为目标地址(即数据实际写入的地址)后,将数据写入该目标地址对应的存储单元,其中,不同的存储单元具有不同的地址。下面主要通过一些实施例对第一控制单元202执行的方法进行说明。
累积分布特征可以表征所述存储器中的每个输入地址与位于所述输入地址之前的各个在前输入地址的累积写入次数。假设共有A1到A5这5个输入地址,A1为A2的在前输入地址,A2为A3的在前输入地址,以此类推,且各个输入地址对应的写入次数分别为n1到n5,则累积分布特征可以表示为:
表1累积分布特征
输入地址 | 写入次数 | 累积分布特征 |
A1 | n1 | n1 |
A2 | n2 | n1+n2 |
A3 | n3 | n1+n2+n3 |
A4 | n4 | n1+n2+n3+n4 |
A5 | n5 | n1+n2+n3+n4+n5 |
其中,写入次数可以通过计数器(可以称为写入计数器)进行计数,每向一个输入地址写入一次数据,则将计数器的计数值加1,将计数器的当前计数值减去计数初值(例如,0)即可得到当前的写入次数。在一些实施例中,每个输入地址均可以设置一个计数器,用来统计对该输入地址的写入次数。在另一些实施例中,可以对输入地址进行分段,得到多个地址段,各个地址段中包括的地址的数量可以相等,也可以不相等。每个地址段可以设置一个计数器,用来统计该地址段内各个输入地址的写入次数的总和。通过划分地址段,可以将存储器划分为多个存储块,其中,一个存储块包括多个存储单元,同一地址段中的各个输入地址可以映射到同一存储块中的映射地址。
地址分段的情况下的累积分布特征如表2所示,可以看出,同一地址段(M1或M2)内的各个输入地址的累积分布特征是相同的,不同地址段中各个输入地址的写入次数可以进行累积。通过采用这种方式,能够减小处理复杂度,提高磨损均衡效率。
累积分布特征可以实时获取,从而实现实时的动态磨损均衡。或者,可以实时对写入次数进行统计,并按照一定的频率获取累积分布特征。这样,可以减少资源消耗。
表2地址分段的情况下的累积分布特征
第一控制单元202可以基于所述累积分布特征生成各个输入地址的地址映射函数,所述各个输入地址中包括所述写入请求中携带的输入地址。进一步地,可以根据公式(2)中的输入地址和映射地址的关系,对于输入地址通过取不同的采样点A、B、C、……、N进行线性分段,得到各自段内相应的斜率ma、mb、mc、…、mn所确定的地址映射函数。在一些实施例中,地址映射函数可以记为:
Mapped Addr=CMF/N*M (3)
其中,Mapped Addr表示映射后的地址(即目标地址),CMF表示输入地址的累积质量函数,N表示全部地址的写入次数的总和,M表示地址的总数量。CMF可以由CPU计算并储存在本地,随着输入地址的数据量越来越多,产生的映射地址分配越来越收敛于理想的CMF函数,即CMF函数为一条直线。
地址映射函数可以存储在地址映射表中。在存储器包括多个存储块的情况下,各个存储块的地址映射函数可以存储在同一个地址映射表中,也可以存储在不同的地址映射表中。第一控制单元202可以将整个地址映射表分别发送给各个存储块,由存储块从中获取本存储块对应的地址映射函数,或者,也可以从地址映射表中分别获取各个存储块的地址映射函数,并将地址映射函数发送至对应的存储块。
表3示出了地址映射情况。其中,地址区间R为0到4095,且该地址区间被划分为多个子区间(每个子区间即一个地址段),每个子区间包括8个地址,该地址区间中所有地址的累积写入次数为107184。出于篇幅的考虑,此处仅示出了M0、M1和M8这三个子区间的写入情况。可以看出,由于CMF是单调递增的,因此,通过采用上述映射函数获得的一般性规律是,可以将表格中靠前的输入地址映射到较小的物理地址,将表格中靠后的输入地址映射到较大的物理地址。
通过表3可以看出,同一地址段中各个输入地址会被映射到同一个映射地址,为了进一步将不同的输入地址映射到不同的映射地址,从而进一步提到磨损均衡效果,第一控制单元202可以为不同的输入地址对应的映射地址增加不同的偏移量,例如,地址0对应的映射地址的偏移量加上bn0,地址1对应的映射地址的偏移量加上bn1,其中,bn0不同于bn1。
具体来说,第一控制单元202可以基于所述输入地址的地址映射函数将所述输入地址映射到第一地址;基于所述输入地址和所述第一地址确定地址映射比例;基于所述地址映射比例确定所述输入地址对应的偏移量;基于所述输入地址对应的偏移量将所述输入地址映射到所述目标地址,不同的输入地址对应不同的偏移量。其中,同一地址段中各个地址对应的地址映射比例相同,且同一地址段内各个输入地址的偏移量不同。其中,在表3所示的实施例中,映射后的地址即为所述第一地址。
表3地址映射情况
假设地址映射比例和偏移量分别为mn和bn,则输入地址与目标地址之间的线性映射关系为yn=mn*x+bn。例如,对于子区间M0,输入地址在经过映射后得到的映射地址均为21。可以理解为输入0建立一个到21的映射,也就是:
y=x+bn (4)
其中,y为映射地址,x为输入地址,bn为偏移量。因此,子区间M0中的地址0到地址7加上偏移量后,最终得到的目标地址分别为21、22、……、28。这样,就将子区间M0中不同的输入地址分别映射到了不同的物理地址。可以看出,子区间M0中各个输入地址的地址映射比例为1,这种情况一般出现在第一个地址段。也就是说,在所述地址映射比例等于1的情况下,所述输入地址对应的偏移量基于所述第一地址确定,例如,一个输入地址对应的偏移量等于该输入地址对应的第一地址,目标地址可以基于公式(4)得到。
在子区间M1中,可以基于该子区间的首个输入地址和首个输入地址对应的第一地址确定地址映射比例,从而得到地址映射比例mn=26/8=3.25。在所述地址映射比例大于1的情况下,所述输入地址对应的偏移量可以基于所述输入地址在全部输入地址中的编号与输入地址的总数之间的余数确定,从而目标地址可以记为:
y=floor(x*mn)+mod(i/Rmax) (5)
其中,floor表示向下取整操作,mod表示取模操作,Rmax为所有地址段中地址的最大取值,在上述实施例中为4096,i为输入地址在所有输入地址中的编号,即用于表示当前已获取的输入地址的个数,可通过计数器进行计数。例如,假设输入地址x为从0到4095的连续整数(在实际应用中x的取值也可能不连续),此时x与i的取值相等,但在输入地址x不连续的情况下,x与i的取值也可能不相等。输入地址9对应的目标地址为floor(9*3.25)+mod(9/4096)=38,输入地址10对应的目标地址为floor(10*3.25)+mod(10/4096)=42。
特别地,表3中子区间M8中的输入地址被映射到比该输入地址更小的物理地址,即mn小于1的情况。这种情况比较特殊,是由于输入地址的统计特性造成了输入地址被映射到更密集的区间。因此,为了提高磨损均衡效果,在所述地址映射比例小于1的情况下,所述输入地址对应的偏移量可以通过第一控制单元分配得到,例如:
y=floor(x*mn)+tagaddr (6)
其中,tagaddr是一个标签信息,用于表征该输入地址对应的mn小于1。第一控制单元在获取到标签信息tagaddr之后,可以对当前输入地址进行重新映射。这样,减少了映射地址的密集分布,从而提高了磨损均衡效果。
地址映射通过SRAM查找表来完成,最开始该映射是直进直出的,即,在各个输入地址的写入次数的总和小于或等于所述第一预设次数阈值的情况下,将所述输入地址直接确定为所述目标地址,这样,减少了存储器使用初期各存储单元磨损程度较小时的数据处理量。随着系统访问次数的增长和写入计数器的更新,在各个输入地址的写入次数的总和大于第一预设次数阈值的情况下,可以基于所述写入请求中的输入地址的地址映射函数将所述输入地址映射到目标地址。每个新的写入请求中携带的输入地址都会映射到更新的目标地址,同时地址映射表也会相应更新。可以设置多个不同的第一预设次数阈值,整个更新过程使用当前的统计数据进行地址映射函数的计算直到达到下一个第一预设次数阈值,并返回基于所述写入请求中的输入地址的地址映射函数将所述输入地址映射到目标地址的步骤。
如图3A和3B所示,分别是本公开实施例的输入地址与目标地址的分布情况的示意图以及本公开实施例的累积分布函数的示意图。在图3A中,黑色线条表示目标地址,灰色线条表示输入地址,纵坐标表示写入次数,横坐标表示地址编号。可以看出,在进行磨损均衡之前,少数几个输入地址的写入次数较多,而绝大多数输入地址的写入次数非常少。在进行磨损均衡之后,各个目标地址的写入次数差异较小。
在图3B中,纵坐标表示归一化后的CMF的取值,横坐标表示地址编号,深灰色线条表示t1时刻的CMF,浅灰色线条表示t2时刻的CMF,黑色线条表示t3时刻的CMF,其中,t1<t2<t3。可以看出,随着时间的增长,CMF曲线越来越接近一条直线,即CMF函数线性度越来越高。
在所述多个存储单元被划分为多个存储块的实施例中,所述存储器还包括多个第二控制单元,每个存储块对应一个第二控制单元。以4Gb的相变存储器为例,内部模块框架如图4所示。整个存储器的存储空间可以按照预设粒度切分为多个存储块(Tile),例如,可以以1Mb为所述预设粒度,将存储器的存储空间切分为4096个同等容量的Tile,如图中Tile00_00到Tile63_63所示。各个Tile相互独立,每个Tile(1024x1024)内置完整的外围支持电路(SA)以及数据写入电路(WLD)和数据读出电路(BLD)。外围支持电路用于实现读写编解码、电源供给、电路稳压等功能,数据写入电路用于实现数据写入,数据读出电路用于实现数据读出。全部4096个Tile排列成64x64的阵列,数据、输入地址和控制总线围绕在Tile四周。每个Tile还包含一部分额外的非易失性存储空间用来记录1024条字线(Word Line,WL)的写入次数,字线的数量与Tile的容量相关。存储器内部集成一个CPU核(即上述第二控制单元)主要用来对每个Tile进行写入任务管理,包括统计输入地址的写入次数和计算更新地址映射表。整个存储器以CPU为主控,Tile之间彼此相连形成一条环形总线,称为Tile级互联总线(Tile-Interconnect Bus),即前述数据、输入地址和控制总线。
进一步地,所述存储器还可以包括以下至少任一模块:供电单元,用于为存储器供电;逻辑控制单元(即图中的FSM),用于控制存储器内部各个模块的工作时序和读写测试等功能;缓存单元(即图中的WR Buf SRAM),用于对DDR接口传输的数据进行缓冲匹配内部读写速率;输入输出单元(即图中的DDR IO),作为存储器与外部DDR总线之间的通信接口;上电控制单元(即图中的uP)用于对存储器的上电过程进行控制;查找表存储单元(例如SRAM),用于存储地址映射表和输入地址的统计信息。
在所述多个存储单元被划分为多个存储块,且每个存储块对应一个第二控制单元的实施例中,第一控制单元202还可以向所述第二控制单元发送数据迁移指令,以使所述第二控制单元将所在存储块中写入次数大于第二预设次数阈值的存储单元中的数据搬运到所在存储块中写入次数小于第三预设次数阈值的存储单元,所述第二预设次数阈值大于所述第三预设次数阈值。
通过上述方式,能够在Tile级别颗粒度内采用静态磨损均衡的方法,进一步提升Tile内部写入地址的均匀分配,从而确保Tile内每个存储单元(例如,Tile的一行)都被均匀写入。每个Tile只需上报对每个存储单元的磨损数据(即写入次数信息),并根据CPU基于所述写入次数信息发送的数据迁移指令进行数据搬运即可。上述实施例中通过第二控制单元实现静态磨损均衡,并通过第一控制单元实现动态磨损均衡,从而既能够实时地实现磨损均衡,同时,减少了前期整个存储器均处于较低磨损度时的额外搬运次数。
当系统的工作负载发生变化时,输入地址的统计信息可能会发生较大的变化,导致地址映射函数可能暂时失效。为了减少这种情况发生,参见图5,在一些实施例中,在所述累积分布特征发生改变的情况下,可以确定工作负载发生变化,从而可以对所述存储器的各个输入地址的写入次数进行重置。在图5中,CPU可以基于输入地址的PMF确定输入地址的CMF,再基于输入地址的CMF将输入地址映射到映射地址。CPU还可以基于映射地址的CMF确定是否需要重置输入地址的PMF以及是否需要更新地址映射函数。
具体来说,在所述存储器中各个映射地址在第二时刻的写入次数的累积分布特征与所述各个映射地址在第一时刻的写入次数的累积分布特征之间的差异大于预设的差异阈值的情况下,确定所述累积分布特征发生改变,所述第二时刻与所述第一时刻之间的时间间隔小于预设的时间间隔。本实施例只要监控写入次数的累积分布特征,即可确定工作负载是否发生变化,复杂度低,容易实现。在工作负载改变时,通过对所述存储器的各个输入地址的写入次数进行重置,从而提高工作负载改变后的磨损均衡效果。其中,各个输出地址的累积分布特征可以基于输出地址的CMF来获取。也就是说,当各个映射地址的累积分布特征严重偏离线性形式时,说明当前的地址映射函数与输入统计数据存在较大失配。此时CPU会将写入计数器重置,重新开始新数据的统计收集。
应当说明的是,本公开实施例中的目标地址也可以作为其他写入请求中携带的输入地址,例如,在表3所示的实施例中,一个写入请求中携带的地址为0,可以将地址0映射为地址21,此时,0即为输入地址,21即为目标地址。此外,另一个写入请求中也可以携带地址21,基于地址21的地址映射函数可以将地址21映射为其他地址,此时,地址21即为输入地址,通过地址21映射得到的其他地址即为目标地址。
本公开实施例具有以下优点:
(1)利用累积分布特征对输入地址建模,能够实现输入地址到目标地址之间的纯线性映射,低复杂度。
(2)基于对输入地址的统计信息能够有效的适配工作负载,复杂度低,容易实现。
(3)系统性层次化磨损均衡,在高视角(整个存储器内)采用基于统计的动态磨损均衡方式,在Tile颗粒度内通过静态磨损均衡的方式,进一步强化存储单元的磨损均衡性。
如图6所示,本公开实施例还提供一种存储器的磨损均衡方法,所述方法包括:
步骤601:接收写入请求,所述写入请求中携带输入地址;
步骤602:基于所述输入地址的地址映射函数将所述输入地址映射到目标地址;一个输入地址的地址映射函数基于所述输入地址的写入次数的累积分布特征生成,所述累积分布特征用于表征所述输入地址与所述存储器中位于所述输入地址之前的各个在前输入地址的累积写入次数。
在一些实施例中,所述基于所述输入地址的地址映射函数将所述输入地址映射到目标地址,包括:在所述存储器中各个输入地址的写入次数的总和大于第一预设次数阈值的情况下,基于所述写入请求中的输入地址的地址映射函数将所述写入请求中的输入地址映射到目标地址;和/或在所述存储器中各个输入地址的写入次数的总和小于或等于所述第一预设次数阈值的情况下,将所述写入请求中的输入地址确定为所述目标地址。
在一些实施例中,所述基于所述输入地址的地址映射函数将所述输入地址映射到目标地址,包括:基于所述输入地址的地址映射函数将所述输入地址映射到第一地址;基于所述输入地址和所述第一地址确定地址映射比例;基于所述地址映射比例确定所述输入地址对应的偏移量;基于所述输入地址对应的偏移量将所述输入地址映射到所述目标地址,不同的输入地址对应不同的偏移量。
在一些实施例中,在所述地址映射比例等于1的情况下,所述输入地址对应的偏移量基于所述第一地址确定;和/或在所述地址映射比例大于1的情况下,所述输入地址对应的偏移量基于所述输入地址在全部输入地址中的编号与输入地址的总数之间的余数确定;和/或在所述地址映射比例小于1的情况下,所述输入地址对应的偏移量通过第一控制单元分配得到。
在一些实施例中,各个输入地址被划分为多个地址段,同一地址段内各个输入地址的地址映射比例相同,且同一地址段内各个输入地址的偏移量不同。
在一些实施例中,所述多个存储单元被划分为多个存储块,所述存储器还包括多个第二控制单元,每个存储块对应一个第二控制单元;所述方法还包括:向所述第二控制单元发送数据迁移指令,以使所述第二控制单元将所在存储块中写入次数大于第二预设次数阈值的存储单元中的数据搬运到所在存储块中写入次数小于第三预设次数阈值的存储单元,所述第二预设次数阈值大于所述第三预设次数阈值。
在一些实施例中,所述向所述第二控制单元发送数据迁移指令,包括:接收所述第二控制单元发送的写入次数信息;所述写入次数信息用于表征所述第二控制单元所在的存储块中各个存储单元的写入次数;基于所述写入次数信息向所述第二控制单元发送数据迁移指令。
在一些实施例中,所述方法还包括:在所述累积分布特征发生改变的情况下,对所述存储器的各个输入地址的写入次数进行重置。
在一些实施例中,所述方法还包括:在所述存储器中各个目标地址在第二时刻的写入次数的累积分布特征与所述各个目标地址在第一时刻的写入次数的累积分布特征之间的差异大于预设的差异阈值的情况下,确定所述累积分布特征发生改变,所述第二时刻与所述第一时刻之间的时间间隔小于预设的时间间隔。
如图7所示,本公开实施例还提供另一种存储器的磨损均衡方法,所述方法包括:
步骤701:获取存储器的各个输入地址的写入次数的累积分布特征,所述累积分布特征用于表征所述存储器中的每个输入地址与位于所述输入地址之前的各个在前输入地址的累积写入次数;
步骤702:基于所述累积分布特征生成各个输入地址的地址映射函数,所述地址映射函数用于将所述输入地址映射到目标地址,以将数据写入所述存储器中所述目标地址对应的存储单元。
本公开的方法实施例中的各步骤可由上述存储器中的第一控制单元202执行,具体细节详见前述存储器的实施例,此处不再赘述。
如图8所示,本公开实施例还提供一种存储器的磨损均衡装置,所述装置包括:
接收模块801,用于接收写入请求,所述写入请求中携带输入地址;
映射模块802,用于基于所述输入地址的地址映射函数将所述输入地址映射到目标地址;一个输入地址的地址映射函数基于所述输入地址的写入次数的累积分布特征生成,所述累积分布特征用于表征所述输入地址与所述存储器中位于所述输入地址之前的各个在前输入地址的累积写入次数。
在一些实施例中,所述映射模块用于:在所述存储器中各个输入地址的写入次数的总和大于第一预设次数阈值的情况下,基于所述写入请求中的输入地址的地址映射函数将所述写入请求中的输入地址映射到目标地址;和/或在所述存储器中各个输入地址的写入次数的总和小于或等于所述第一预设次数阈值的情况下,将所述写入请求中的输入地址确定为所述目标地址。
在一些实施例中,所述映射模块用于:基于所述输入地址的地址映射函数将所述输入地址映射到第一地址;基于所述输入地址和所述第一地址确定地址映射比例;基于所述地址映射比例确定所述输入地址对应的偏移量;基于所述输入地址对应的偏移量将所述输入地址映射到所述目标地址,不同的输入地址对应不同的偏移量。
在一些实施例中,在所述地址映射比例等于1的情况下,所述输入地址对应的偏移量基于所述第一地址确定;和/或在所述地址映射比例大于1的情况下,所述输入地址对应的偏移量基于所述输入地址在全部输入地址中的编号与输入地址的总数之间的余数确定;和/或在所述地址映射比例小于1的情况下,所述输入地址对应的偏移量通过第一控制单元分配得到。
在一些实施例中,各个输入地址被划分为多个地址段,同一地址段内各个输入地址的地址映射比例相同,且同一地址段内各个输入地址的偏移量不同。
在一些实施例中,所述多个存储单元被划分为多个存储块,所述存储器还包括多个第二控制单元,每个存储块对应一个第二控制单元;所述装置还包括:发送模块,用于向所述第二控制单元发送数据迁移指令,以使所述第二控制单元将所在存储块中写入次数大于第二预设次数阈值的存储单元中的数据搬运到所在存储块中写入次数小于第三预设次数阈值的存储单元,所述第二预设次数阈值大于所述第三预设次数阈值。
在一些实施例中,所述发送模块用于:接收所述第二控制单元发送的写入次数信息;所述写入次数信息用于表征所述第二控制单元所在的存储块中各个存储单元的写入次数;基于所述写入次数信息向所述第二控制单元发送数据迁移指令。
在一些实施例中,所述装置还包括:重置模块,用于在所述累积分布特征发生改变的情况下,对所述存储器的各个输入地址的写入次数进行重置。
在一些实施例中,所述装置还包括:确定模块,用于在所述存储器中各个目标地址在第二时刻的写入次数的累积分布特征与所述各个目标地址在第一时刻的写入次数的累积分布特征之间的差异大于预设的差异阈值的情况下,确定所述累积分布特征发生改变,所述第二时刻与所述第一时刻之间的时间间隔小于预设的时间间隔。
如图9所示,本公开实施例还提供一种另存储器的磨损均衡装置,所述装置包括:
获取模块901,用于获取存储器的各个输入地址的写入次数的累积分布特征,所述累积分布特征用于表征所述存储器中的每个输入地址与位于所述输入地址之前的各个在前输入地址的累积写入次数;
生成模块902,用于基于所述累积分布特征生成各个输入地址的地址映射函数,所述地址映射函数用于将所述输入地址映射到目标地址,以将数据写入所述存储器中所述目标地址对应的存储单元。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本说明书实施例还提供一种电子设备,包括前述任一实施例中的存储器。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一实施例所述的方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (16)
1.一种存储器,其特征在于,所述存储器包括:
多个存储单元,用于存储数据;
第一控制单元,用于接收写入请求,所述写入请求中携带输入地址;基于所述输入地址的地址映射函数将所述输入地址映射到目标地址,以将数据写入所述目标地址对应的存储单元;
一个输入地址的地址映射函数基于所述输入地址的写入次数的累积分布特征生成,所述累积分布特征用于表征所述输入地址与所述存储器中位于所述输入地址之前的各个在前输入地址的累积写入次数。
2.根据权利要求1所述的存储器,其特征在于,所述第一控制单元基于以下方式将所述输入地址映射到所述目标地址:
在所述存储器中各个输入地址的写入次数的总和大于第一预设次数阈值的情况下,基于所述写入请求中的输入地址的地址映射函数将所述写入请求中的输入地址映射到目标地址;和/或
在所述存储器中各个输入地址的写入次数的总和小于或等于所述第一预设次数阈值的情况下,将所述写入请求中的输入地址确定为所述目标地址。
3.根据权利要求1或2所述的存储器,其特征在于,所述第一控制单元基于以下方式将所述写入请求中的输入地址映射到所述目标地址:
基于所述输入地址的地址映射函数将所述输入地址映射到第一地址;
基于所述输入地址和所述第一地址确定地址映射比例;
基于所述地址映射比例确定所述输入地址对应的偏移量;
基于所述输入地址对应的偏移量将所述输入地址映射到所述目标地址,不同的输入地址对应不同的偏移量。
4.根据权利要求3所述的存储器,其特征在于,所述第一控制单元基于以下方式将所述写入请求中的输入地址映射到所述目标地址:
在所述地址映射比例等于1的情况下,所述输入地址对应的偏移量基于所述第一地址确定;和/或
在所述地址映射比例大于1的情况下,所述输入地址对应的偏移量基于所述输入地址在全部输入地址中的编号与输入地址的总数之间的余数确定;和/或
在所述地址映射比例小于1的情况下,所述输入地址对应的偏移量通过所述第一控制单元分配得到。
5.根据权利要求3或4所述的存储器,其特征在于,各个输入地址被划分为多个地址段,同一地址段内各个输入地址的地址映射比例相同,且同一地址段内各个输入地址的偏移量不同。
6.根据权利要求1至5任意一项所述的存储器,其特征在于,所述多个存储单元被划分为多个存储块,所述存储器还包括多个第二控制单元,每个存储块对应一个第二控制单元;所述第一控制单元还用于:
向所述第二控制单元发送数据迁移指令,以使所述第二控制单元将所在存储块中写入次数大于第二预设次数阈值的存储单元中的数据搬运到所在存储块中写入次数小于第三预设次数阈值的存储单元,所述第二预设次数阈值大于所述第三预设次数阈值。
7.根据权利要求6所述的存储器,其特征在于,所述第一控制单元具体用于:
接收所述第二控制单元发送的写入次数信息;所述写入次数信息用于表征所述第二控制单元所在的存储块中各个存储单元的写入次数;
基于所述写入次数信息向所述第二控制单元发送数据迁移指令。
8.根据权利要求1至7任意一项所述的存储器,其特征在于,所述第一控制单元还用于:
在所述累积分布特征发生改变的情况下,对所述存储器的各个输入地址的写入次数进行重置。
9.根据权利要求8所述的存储器,其特征在于,所述第一控制单元还用于:
在所述存储器中各个目标地址在第二时刻的写入次数的累积分布特征与所述各个目标地址在第一时刻的写入次数的累积分布特征之间的差异大于预设的差异阈值的情况下,确定所述累积分布特征发生改变,所述第二时刻与所述第一时刻之间的时间间隔小于预设的时间间隔。
10.一种存储器,其特征在于,所述存储器包括:
多个存储单元,用于存储数据;
第一控制单元,用于获取存储器的各个输入地址的写入次数的累积分布特征,所述累积分布特征用于表征所述存储器中的每个输入地址与位于所述输入地址之前的各个在前输入地址的累积写入次数;基于所述累积分布特征生成各个输入地址的地址映射函数,所述地址映射函数用于将所述输入地址映射到目标地址,以将数据写入所述目标地址对应的存储单元。
11.一种存储器的磨损均衡方法,其特征在于,所述方法包括:
接收写入请求,所述写入请求中携带输入地址;
基于所述输入地址的地址映射函数将所述输入地址映射到目标地址;一个输入地址的地址映射函数基于所述输入地址的写入次数的累积分布特征生成,所述累积分布特征用于表征所述输入地址与所述存储器中位于所述输入地址之前的各个在前输入地址的累积写入次数。
12.一种存储器的磨损均衡方法,其特征在于,所述方法包括:
获取存储器的各个输入地址的写入次数的累积分布特征,所述累积分布特征用于表征所述存储器中的每个输入地址与位于所述输入地址之前的各个在前输入地址的累积写入次数;
基于所述累积分布特征生成各个输入地址的地址映射函数,所述地址映射函数用于将所述输入地址映射到目标地址,以将数据写入所述存储器中所述目标地址对应的存储单元。
13.一种存储器的磨损均衡装置,其特征在于,所述装置包括:
接收模块,用于接收写入请求,所述写入请求中携带输入地址;
映射模块,用于基于所述输入地址的地址映射函数将所述输入地址映射到目标地址;一个输入地址的地址映射函数基于所述输入地址的写入次数的累积分布特征生成,所述累积分布特征用于表征所述输入地址与所述存储器中位于所述输入地址之前的各个在前输入地址的累积写入次数。
14.一种存储器的磨损均衡装置,其特征在于,所述装置包括:
获取模块,用于获取存储器的各个输入地址的写入次数的累积分布特征,所述累积分布特征用于表征所述存储器中的每个输入地址与位于所述输入地址之前的各个在前输入地址的累积写入次数;
生成模块,用于基于所述累积分布特征生成各个输入地址的地址映射函数,所述地址映射函数用于将所述输入地址映射到目标地址,以将数据写入所述存储器中所述目标地址对应的存储单元。
15.一种电子设备,其特征在于,所述电子设备包括权利要求1至10任意一项所述的存储器。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求11或12所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210345772.3A CN114936169A (zh) | 2022-03-31 | 2022-03-31 | 存储器的磨损均衡方法和装置、存储器和电子设备 |
PCT/CN2022/124538 WO2023184930A1 (zh) | 2022-03-31 | 2022-10-11 | 存储器的磨损均衡方法和装置、存储器和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210345772.3A CN114936169A (zh) | 2022-03-31 | 2022-03-31 | 存储器的磨损均衡方法和装置、存储器和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114936169A true CN114936169A (zh) | 2022-08-23 |
Family
ID=82862047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210345772.3A Pending CN114936169A (zh) | 2022-03-31 | 2022-03-31 | 存储器的磨损均衡方法和装置、存储器和电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114936169A (zh) |
WO (1) | WO2023184930A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023184930A1 (zh) * | 2022-03-31 | 2023-10-05 | 上海商汤智能科技有限公司 | 存储器的磨损均衡方法和装置、存储器和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6345001B1 (en) * | 2000-09-14 | 2002-02-05 | Sandisk Corporation | Compressed event counting technique and application to a flash memory system |
US20130097403A1 (en) * | 2011-10-18 | 2013-04-18 | Rambus Inc. | Address Mapping in Memory Systems |
CN111258925A (zh) * | 2020-01-20 | 2020-06-09 | 中国科学院微电子研究所 | 非易失内存的访问方法、装置、内存控制器、设备及介质 |
CN111459850A (zh) * | 2020-05-18 | 2020-07-28 | 江苏时代全芯存储科技股份有限公司 | 记忆体装置以及运作方法 |
US20210224187A1 (en) * | 2020-01-17 | 2021-07-22 | SK Hynix Inc. | Memory system for garbage collection and operating method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2507710B1 (en) * | 2009-11-30 | 2018-10-31 | Hewlett-Packard Enterprise Development LP | Remapping for memory wear leveling |
CN103365786B (zh) * | 2012-04-01 | 2016-12-14 | 国民技术股份有限公司 | 数据存储方法、装置和系统 |
US10817435B1 (en) * | 2019-06-10 | 2020-10-27 | Micron Technology, Inc. | Queue-based wear leveling of memory components |
CN114936169A (zh) * | 2022-03-31 | 2022-08-23 | 上海阵量智能科技有限公司 | 存储器的磨损均衡方法和装置、存储器和电子设备 |
-
2022
- 2022-03-31 CN CN202210345772.3A patent/CN114936169A/zh active Pending
- 2022-10-11 WO PCT/CN2022/124538 patent/WO2023184930A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6345001B1 (en) * | 2000-09-14 | 2002-02-05 | Sandisk Corporation | Compressed event counting technique and application to a flash memory system |
US20130097403A1 (en) * | 2011-10-18 | 2013-04-18 | Rambus Inc. | Address Mapping in Memory Systems |
US20210224187A1 (en) * | 2020-01-17 | 2021-07-22 | SK Hynix Inc. | Memory system for garbage collection and operating method thereof |
CN111258925A (zh) * | 2020-01-20 | 2020-06-09 | 中国科学院微电子研究所 | 非易失内存的访问方法、装置、内存控制器、设备及介质 |
CN111459850A (zh) * | 2020-05-18 | 2020-07-28 | 江苏时代全芯存储科技股份有限公司 | 记忆体装置以及运作方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023184930A1 (zh) * | 2022-03-31 | 2023-10-05 | 上海商汤智能科技有限公司 | 存储器的磨损均衡方法和装置、存储器和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2023184930A1 (zh) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090323419A1 (en) | Read-time wear-leveling method in storage system using flash memory device | |
US8356152B2 (en) | Initiative wear leveling for non-volatile memory | |
CN102841852B (zh) | 磨损均衡方法、存储装置及信息系统 | |
US20080140918A1 (en) | Hybrid non-volatile solid state memory system | |
TW201717040A (zh) | 用於具有調適分割之一共用快取之系統及方法 | |
CN113094003B (zh) | 数据处理方法、数据存储装置及电子设备 | |
US10389380B2 (en) | Efficient data path architecture for flash devices configured to perform multi-pass programming | |
JP2023106490A (ja) | ストレージデバイスの容量利用率の関数であるプログラミング済みセル記憶密度モードを有するストレージデバイス | |
CN112817880A (zh) | 一种固态硬盘及其磨损平衡方法和终端设备 | |
US11763899B2 (en) | Balanced three-level read disturb management in a memory device | |
CN107992430A (zh) | 闪存芯片的管理方法、装置及计算机可读存储介质 | |
CN202472635U (zh) | 闪存磨损均衡装置 | |
CN112068772B (zh) | 数据存储方法、数据存储装置及存储装置 | |
WO2023184930A1 (zh) | 存储器的磨损均衡方法和装置、存储器和电子设备 | |
US11055228B2 (en) | Caching bypass mechanism for a multi-level memory | |
CN113590505B (zh) | 地址映射方法、固态硬盘控制器及固态硬盘 | |
KR20170132483A (ko) | 메모리 장치의 구동 방법 | |
CN111143313B (zh) | 一种提高混合映射算法的日志块读写性能的方法 | |
CN106326135B (zh) | 一种平移非易失性存储器nvm的数据的方法及装置 | |
CN111435403B (zh) | 一种闪存系统的磨损均衡方法及装置 | |
CN116185305A (zh) | 业务数据存储方法、装置、计算机设备和存储介质 | |
CN115904226A (zh) | 固态驱动器、设备及固态驱动器的操作方法 | |
CN115576863A (zh) | 一种数据读写方法、存储设备及存储介质 | |
US20230409203A1 (en) | Memory system and read method | |
US20200194080A1 (en) | Consolidation of copy-back and write in pram blocks |
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 |