CN102483717B - 用于存储器磨损平衡的重映射方法及设备 - Google Patents

用于存储器磨损平衡的重映射方法及设备 Download PDF

Info

Publication number
CN102483717B
CN102483717B CN200980161184.7A CN200980161184A CN102483717B CN 102483717 B CN102483717 B CN 102483717B CN 200980161184 A CN200980161184 A CN 200980161184A CN 102483717 B CN102483717 B CN 102483717B
Authority
CN
China
Prior art keywords
address
line
physical
function
block
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.)
Expired - Fee Related
Application number
CN200980161184.7A
Other languages
English (en)
Other versions
CN102483717A (zh
Inventor
约瑟夫·A·图切克
埃里克·A·安德森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN102483717A publication Critical patent/CN102483717A/zh
Application granted granted Critical
Publication of CN102483717B publication Critical patent/CN102483717B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

提供一种用于存储器(10)的磨损平衡的重映射方法和对应的设备。该方法(300)被实现为逻辑且包括如下步骤:接收(305)存储操作,所述存储操作包括逻辑存储地址(20);将所述逻辑地址分为逻辑块地址部分(22)、逻辑线地址部分(24)和逻辑辅线地址部分(26);将逻辑块地址部分转换(315)为物理块地址(23);选择(320)线重映射关键字(33);将所述线重映射关键字应用于所述逻辑线地址部分,以产生物理线地址(25);产生(335)物理辅线地址部分(26);以及结合(340)所述物理块地址、物理线地址和物理辅线地址,以产生所述存储操作的物理地址(28)。

Description

用于存储器磨损平衡的重映射方法及设备
技术领域
本申请涉及用于存储器磨损平衡的重映射方法及设备。
背景技术
特定存储装置(例如闪存)易于出现如下耗损情况:这些存储器仅仅能存在多次更新(重写或擦除和写入)循环,尽管该次数可能相当大(十万以上)。为了弥补这种情况,这些存储装置可采用称为磨损平衡的方法,其包括监控存储区的相对使用以及存储器的逻辑区和物理区之间的映射,以确保存储器的所有物理区以相同速率磨损。磨损平衡有助于延长存储装置的使用寿命。
已经研发出多种用于磨损平衡的现有技术。通常在闪存转换层(FTL)中执行与这些技术相关的功能,该功能包括保持将存储器的逻辑块映射成存储器的物理块的查找表。该查找表大略要求一个关于每一个存储块的状态的字。对于允许细粒度更新的存储器来说,以单个更新单元的粒度保持这种转换表将需要相当大的表,从而减小了标准存储容量。
发明内容
本发明的一方面提供一种用于存储器的磨损平衡的重映射方法,该方法被实现为逻辑,包括:接收存储操作,所述存储操作包括逻辑存储地址;将所述逻辑地址分为逻辑块地址部分、逻辑线地址部分和逻辑辅线地址部分;执行块重映射,产生物理块地址;选择线重映射关键字,以在执行所述块重映射的相同块大小的块中执行线重映射;将所述线重映射关键字应用于所述逻辑线地址部分,以产生物理线地址;产生物理辅线地址;以及结合所述物理块地址、物理线地址和物理辅线地址,以产生所述存储操作的物理地址,其中选择线重映射关键字包括将所述逻辑块地址部分应用于线重映射表或者将所述物理块地址应用于线重映射表。
本发明的另一方面提供一种重映射设备,用于磨损平衡且被实现为逻辑,其中存储器接收针对特定存储操作而转换的物理地址,所述转换的物理地址提供存储区的使用的平衡,包括:地址分解函数,将逻辑地址分为逻辑块地址部分、逻辑线地址部分和逻辑辅线地址部分;块重映射表,执行块重映射以产生物理块地址;线重映射表,提供线重映射关键字以在执行所述块重映射的相同块大小的块中执行线重映射;线重映射函数,接收所述关键字并产生物理线地址;辅线转换装置,基于所述逻辑辅线地址部分产生物理辅线地址;以及物理地址函数,基于所述物理块地址、所述物理线地址和所述物理辅线地址产生物理地址,其中所述物理地址指定存储操作在所述存储器中的位置,其中所述线重映射关键字通过将所述逻辑块地址部分应用于所述线重映射表或者通过将所述物理块地址应用于所述线重映射表来确定。
附图说明
详细的描述将参照附图,在附图中相同附图标记指代相同的物体,且在附图中:
图1图示在其上可执行磨损平衡方法的示例性重映射的示例性存储系统;
图2图示示例性磨损平衡方法的重映射函数;
图3至图5图示利用图1中的存储装置的示例性转换操作;
图6图示在其上可执行示例性磨损平衡方法的可替代示例性存储系统;以及
图7图示示例性磨损平衡方法。
具体实施方式
存在很多用于制造存储器(例如SRAM、DRAM、闪存、忆阻器、PCM等)的不同技术。诸如SRAM的一些存储器耗损非常慢(例如1021次更新),如此之慢以至于对大部分实际用途来说,它们可被认为支持无限制的更新。诸如闪存的另一些存储器耗损比较快(按105量级更新)。具体地,闪存为可重复编程的固态非易失性存储器。闪存包括多个存储单元,且每一个单元包括置于源区和漏区之间的基板沟道上的电浮动栅。薄栅氧化层将浮动栅与基板隔离。该单元的阈值电平受放置在浮动栅上的电荷的数量控制。如果电荷电平高于特定阈值,则该单元被读取为具有一个状态,如果低于该阈值,则被读取为具有另一个状态。
为了使电子从基板通过栅氧化层移动到浮动栅,通过在指定时间段内向源极、漏极、基板以及单独的控制栅施加适当的电压组合,对期望的浮动栅电荷电平进行编程。来自浮动栅的电流泄漏随时间变化非常小,从而提供永久性存储。通过上述向元素施加适合的电压组合可减小浮动栅上的电荷电平,但优选的是包括与浮动栅相邻放置的单独擦除栅,其中在浮动栅与单独擦除栅之间具有隧道氧化物的薄层。
另一种存储技术,忆阻存储器(memristive memory)依据忆阻效应来工作。当电流流过特定材料(例如二氧化钛)时,它们的电阻可能改变,且这种改变非常持久;该材料记忆其电阻,因此叫忆阻器。这种效应在宏观尺度不显著,而在微观尺度变得显著。忆阻存储器单元由位于两个导体之间的忆阻材料薄膜组成。通过沿特定方向施加通过导体的高电流,薄膜的电阻可能增大或降低。然后可测量这种改变的电阻,而无需使用低电流使其改变。可采用交叉阵列形式制造忆阻装置,其中存在多条平行导线的层,然后在导线上端具有忆阻材料薄膜,然后在忆阻材料薄膜上端具有垂直于第一层导线的平行导线的层。
不考虑单个单元的技术,大量的这种单元形成了存储器。该单元优选地与为作为字线(word line)的一行这种单元提供的公共控制栅一起以二维阵列形式布置在半导体集成电路芯片上,且每一列中的单元具有它们的连接至公共位线的漏极或源极。然后通过向在期望的单元处相交的字线和位线施加适合的电压,每一个单元可单独寻址。为了更新(或重写、或擦除然后写入)该单元,不提供这种单独寻址,相反,通常将成组的单元连接在一起,以允许在一个组中的所有单元同时被更新。在闪存中,由于这样的组通常相当的大,因此它们被称为擦除块。与提供擦除相比,闪存通常以较小粒度提供写入,而为了改变一组单元的内容,它们必须首先被擦除,因此更新仅可以以擦除块的级别发生。
不同的存储系统对于不同的应用具有优势(例如由于成本、非易失性、用电量等)。然而,如之前所述,一些存储技术在它们可被更新(或重新编程、或擦除、或应用于特定存储技术的任何术语)的次数方面具有有限的寿命。随着单元所经历的循环次数增加,该单元的物理属性改变。具体对于闪存来说,当循环次数达到几万时,其开始需要更多的电压和/或时间来对该单元进行编程和擦除。这被认为是由于在重复编程和擦除循环期间,电子被俘获在各自的栅层和隧道介质层中。被俘获的电子的数量改变了该单元的操作特性,且在某一点处(近似为10万次循环),需要如此多的电压或时间来对该单元进行编程或擦除或者编程和擦除,以至于进一步使用它变得不切实际。在忆阻系统中,认为导线中的金属迁移导致难以向忆阻膜驱动充分的电流来实现电阻变化;根据装置的特性,装置出现的循环次数会改变,但目前的装置可持续几千到几万次循环。
为了弥补这种情况,经历“耗损”的存储装置可采用被称为磨损平衡的技术或方法,其包括基于逐块原理监控存储器使用率,和在存储器的逻辑区和物理区之间映射,以确保存储器的所有物理区以相同的速率耗损。
可在闪存转换层(FTL)中执行与磨损平衡技术相关联的功能,之所以这么叫是因为这些技术通常与闪存结合使用。磨损平衡技术的一个示例包括保持可将存储器的逻辑块映射到存储器的物理块的查找表。对于每一个存储块,该查找表大略需要一个状态字。更新粒度在过去相当的大,我们甚至称更新单元为块。较新的装置容许较小的更新粒度,且称这种单元为线(line)更为恰当。然而,对于容许细粒度更新的存储器来说,以单个线的粒度保持这样的转换表将需要相当大的表,从而减小了标准存储容量。
图1图示了在其上可至少利用块和线重映射函数执行示例性磨损平衡操作的示例性存储系统1。在图1中,闪存10被组织成存储单元,具体为很多块12,每一个块12为可闪擦除。每一个块12包括多个线14。每一个线14为可单独更新的最小存储单元。在一个实施例中,每一个块最少包括至少两个线,更为优选地最少包括8个线。
每一个块12被设计为包含标准计算机扇区的数据值加上一些开销(overhead)字段。从计算机系统接收由块30表示的数据。待写入数据30的存储位置的逻辑地址20也由计算机系统发送。该逻辑地址20通过地址转换系统被转换为物理地址28。
因此,在图1中,存储器10为具有4字节更新粒度(线)、1字节读取粒度的128字节闪存,且被组织为4个块12,每一个块12具有8条线14(32字节)。地址粒度为字节级。
由图1中的存储系统1执行的重映射将逻辑地址20转换为物理地址28。逻辑地址20具有三个部分,即块地址22、线地址24以及辅线地址26。例如,利用完整的重映射表32转换块地址22。
利用逻辑块地址22在线重映射表35中查找线重映射关键字33来转换地址20的线部分24。将地址20的线部分24和关键字33传递至函数(F)34,函数34产生转换的物理线地址25。利用该线地址转换允许存储器10的每一个块12将不同的重映射关键字用于函数F,且允许重映射函数F的性能被改变。
地址20的辅线部分26可无需转换而被传递。在很多存储类型中,更新可仅以线粒度来实现,而读取可以以更精细粒度(即以辅线级)来实现。
如上所述,利用线重映射关键字33使逻辑线地址24经过函数34。在实施例中,函数34为两输入函数,其在线重映射关键字33固定的情况下变为双射输入(bijective on input)函数。利用固定的线重映射关键字,任意逻辑线地址将映射为可能的物理线地址,且两个不同的逻辑线地址不可能映射为相同的物理线地址。可能的双射函数包括XOR、加法、乘法、各种密码函数、双射查找表以及键控位调和函数(keyed bit swizzling function)。在实施例中,系统1可采用一个重映射函数。在另一个实施例中,系统1可使用一部分线重映射关键字来在若干重映射函数当中选择。
图2中图示了使用位调和函数作为函数34。调和是其中输入被转变、旋转或混合的方法。在图1的存储器10的情况下,根据指定的模式转变地址位,来产生不同于输入的输出。在图2中,位调和函数50包括多个或交换或不交换位置的调和元素52。如所示被网络化至一起,元素52可将进入位调和为任何置换。在图2中,函数50可将四个位调和为任意置换。调和函数50接受6个位(0或1)作为重映射控制关键字,来控制元素52的执行。图2图示了基于该6个重映射控制关键字位的值的一个特定重映射。
调和函数50可被执行以完成磨损平衡方法的线重映射部分。线关键字查找向调和函数50的每一个元素52提供线重映射关键字(或为0或为1)。线重映射模块包括调和元素52。
当使用调和函数50时,为0的关键字值表示调和元素52充当通口。如果关键字值为1,则调和元素52交换输入和输出。例如,如果向输入为01的调和元素52提供为1的关键字值,则输出将为10;输入00将产生输出00;等等。因此,提供给调和函数50的四位地址将产生双射的重映射。调和逻辑具有避免重复写入存储块内的“热点”的有用特性,且易于执行。
返回图1,示出了存储器10与存储系统1的转换部分分离。图1中的存储系统1可在芯片上的转换部分与存储器10分离的情况下执行。在另一个实施例中,存储系统1可在单个芯片上执行。如果在单个芯片上执行,则在相同芯片上可包括用于确定何时和如何改变存储器的重映射的逻辑电路。可替代地,在具有与确定逻辑电路的片上接口的情况下,逻辑可处于片外。
图3示出利用图1的存储系统1的示例性磨损平衡操作和地址转换。针对块部分/线部分/辅线部分将逻辑地址20(0110011)分解为01/100/11。将逻辑块地址22(01)应用于块重映射表32,产生(01的)物理地址23。也将逻辑块地址22(01)应用于线重映射表35,产生(000的)关键字33以输出。将关键字33(000)和逻辑线地址24(100)传递至线重映射函数F。如上讨论的,线重映射函数F可为多个不同的函数,包括图2的调和函数。对于图3所示的实施例,线重映射函数F为模8加法。因此,100+000=100,得出物理地址28的中间(线)部分25。辅线部分26直接通过,且产生了0110011的物理地址28;该物理地址28恰好与逻辑地址20相同。存储区42对应于物理地址28。
图4示出利用与图3中相同的逻辑地址但具有改变的线重映射表35的另一种重映射转换。块地址22从01被转换为01,如之前所述。然而,线重映射表35返回100用于查找块地址01。函数F产生:100+100=000,得到转换的线地址25。这产生了0100011的物理地址,其不同于由图3的操作所产生的物理地址,且不同于输入的逻辑地址。存储单元44为相应的存储区。
图5示出又一个地址转换。在图5中,逻辑块地址22用于线重映射,地址20的逻辑块部分22被转换为00。在线重映射表35中的查找利用该逻辑块地址22(01)。这样得到011,当其与逻辑线地址24(100)一起使用时产生111的物理线地址25。地址组成部分全部组合以产生0011111的物理地址28。存储区46对应于该物理地址。
模8加法仅是函数F的一个示例。如上讨论的,调和函数也可用于重映射。其它重映射函数包括XOR,其将比加法更快且可能得到更好的磨损平衡。对于加法(或XOR)来说,线重映射表35中的关键字33应当是与地址20的线部分24相同的位数。其它的函数具有不同的特性,例如调和函数50对于4位线地址24将要求6位关键字。
如上所述的,系统1的存储器10和转换逻辑可位于相同芯片上,或不同芯片上。在另一个实施例中,块重映射表和线重映射表被组合为一个表。于是所得到的查找表将处于2位逻辑块地址和5位组合的物理块和函数关键字之间。
在又一个实施例中,在线重映射表中的查找是基于物理块地址。图6中示出了这样的存储系统结构。在图6中,存储系统100包括与之前相同的物理存储器10。将逻辑块地址22传递至块重映射模块132,块重映射模块132将3位逻辑块地址22转换为物理块地址23。将物理块地址23应用于物理存储器10,以限定存储器中接收写入操作的块,和应用于用于产生线重映射关键字133的线关键字查找135。线重映射模块134利用线重映射关键字133来将逻辑线地址24映射为物理线地址25。这些逻辑-物理地址映射的结果是物理存储器10中的将接收写入操作的特定块中的特定线。不过系统100深化了在接收逻辑地址和产生物理转换之间的逻辑路径。系统100还使得追踪存储器的特定逻辑页面具有特定访问模式(例如更为频繁地写入奇数地址)变得更为困难。另一方面,存储系统100使得容易追踪存储器10的特定物理块已经以特定方式耗损。
在图6中,假设逻辑地址为10位地址,其由作为逻辑块地址的前三位、作为逻辑线地址的之后三位以及作为偏移或字节地址的后四位组成,例如0011111000(178)。逻辑块地址22位可采用从0到7的任意值。块重映射表132提供了0的值映射到1、1映射到4、2映射到3等等。根据块重映射表132转换方法的输出为物理块地址23。将物理块地址应用于线关键字查找表135,来获取对逻辑地址的线地址部分进行调整的关键字。线重映射关键字在可执行块重映射的相同块大小的块中进行线重映射。假设由线关键字查找表执行的函数为加法函数(如上所述的,乘法、调和以及其它的函数也是可能的),且假设关键字为1。如果线地址为7,则1加上该地址导致从7到0的线重映射。即,在线重映射表133处将1的线重映射关键字应用于逻辑线地址24,以产生物理线地址25。进一步假设偏移为8,则从178的逻辑地址转换得到408,或1000001000。因此,物理块地址23、物理线地址25以及辅线或偏移地址26被组合以形成物理地址28。注意,块转换部分为粗粒度更新或转换;线转换或更新为基于函数的重映射。还要注意,该地址转换方案也允许相当细粒度的寻址-达到字节级。不过,地址的偏移部分还可设置为0,使得所寻址的存储器的最小单元为线;同样,通过将地址的线部分中的位数设置为0,所寻址的最小存储器单元为块。
利用图1中的存储系统1或图6中的存储系统100,如果辅线地址26为0位,则存储系统将使用与线大小匹配的粒度。不过,线大小可处于4字节和64字节之间,每一个块具有处于大约256条和4096条之间的线,块大小应当在512字节和1兆字节之间。因此,期望的线地址大小将处于8位至12位之间。不过,这主要是其余结构的结果(例如64字节高速缓存线大小使得64字节线合适;块大小等于存储器页面大小或是其2倍的幂也是合适的)。
图7为图示应用于图1的存储系统1的示例性磨损平衡操作300的流程图。在图7中,操作300开始于将数据30写入存储器10的区域的操作;数据30附有逻辑地址。为防止过度磨损或存储器“热点”,采用包含向下转换至线级的磨损平衡技术。
在块310中,将逻辑地址分解为块地址部分、线地址部分和辅线地址部分,且将这些地址部分应用于存储器转换子系统的各自元素。在块315中,首先将逻辑块地址部分应用于块重映射表32,以产生物理块地址。块转换表可使用任意函数,该函数针对所应用的至少一些逻辑块地址部分产生地址转换。还将逻辑块地址应用于线重映射表35,以产生关键字33(块320),在块325中,将期望的线重映射函数F(34)与线重映射关键字33结合,以形成双射。在块330中利用双射来产生物理线地址。
使辅线地址部分经过转换逻辑(块335),且在块340中,将其与物理块地址和物理线地址结合以产生物理地址。然后在块345中执行将数据30写入所产生的物理地址的写入操作,且操作300结束。

Claims (15)

1.一种用于存储器(10)的磨损平衡的重映射方法(300),该方法被实现为逻辑,包括:
接收(305)存储操作,所述存储操作包括逻辑存储地址(20);
将所述逻辑地址分为(310)逻辑块地址部分(22)、逻辑线地址部分(24)和逻辑辅线地址部分(26);
执行块重映射,产生物理块地址(23);
选择(320)线重映射关键字(33),以在执行所述块重映射的相同块大小的块中执行线重映射;
将所述线重映射关键字应用(320)于所述逻辑线地址部分,以产生物理线地址(25);
产生(335)物理辅线地址(26);以及
结合所述物理块地址、物理线地址和物理辅线地址,以产生所述存储操作的物理地址(28),
其中选择线重映射关键字包括将所述逻辑块地址部分(22)应用于线重映射表(35)或者将所述物理块地址(23)应用于线重映射表。
2.根据权利要求1所述的方法,其中执行所述块重映射包括将所述逻辑块地址部分转换(315)为所述物理块地址(23)。
3.根据权利要求1所述的方法,其中将所述线重映射关键字应用于所述逻辑线地址部分以产生物理线地址包括将所述线重映射关键字(33)应用于线重映射函数(34),并且其中所述线重映射关键字(33)被改变。
4.根据权利要求3所述的方法,其中所述线重映射函数(34)为调和函数、Bob Jenkins哈希函数、加法模、乘法以及密码函数中的一种。
5.根据权利要求4所述的方法,其中用于重映射的所述逻辑与所述存储器(10)被设置在同一个芯片上。
6.根据权利要求3所述的方法,其中所述线重映射函数(34)为键控位调和函数、XOR函数以及乘以奇数键对地址大小取模的乘法中的一种。
7.根据权利要求1所述的方法,其中用于重映射的所述逻辑被设置在第一芯片上,而所述存储器(10)被设置在第二芯片上。
8.根据权利要求7所述的方法,其中所述存储器为由于耗损而导致具有有限寿命的存储器类型,该存储器包括闪存、忆阻器以及相变存储器中的一种。
9.一种重映射设备,用于磨损平衡且被实现为逻辑,其中存储器(10)接收针对特定存储操作而转换的物理地址,所述转换的物理地址提供存储区的使用的平衡,包括:
地址分解函数,将逻辑地址(20)分为逻辑块地址部分(22)、逻辑线地址部分(24)和逻辑辅线地址部分(26);
块重映射表(32),执行块重映射以产生物理块地址(23);
线重映射表(35),提供线重映射关键字(33)以在执行所述块重映射的相同块大小的块中执行线重映射;
线重映射函数(34),接收所述关键字(33)并产生物理线地址(25);
辅线转换装置,基于所述逻辑辅线地址部分产生物理辅线地址(26);以及
物理地址函数,基于所述物理块地址、所述物理线地址和所述物理辅线地址产生物理地址(28),其中所述物理地址指定存储操作在所述存储器中的位置,
其中所述线重映射关键字通过将所述逻辑块地址部分应用于所述线重映射表或者通过将所述物理块地址应用于所述线重映射表来确定。
10.根据权利要求9所述的设备,其中所述块重映射表(32)通过将所述逻辑块地址部分转换为所述物理块地址(23)来执行所述块重映射。
11.根据权利要求9所述的设备,其中所述线重映射函数为调和函数、BobJenkins哈希函数、加法模、乘法以及密码函数中的一种。
12.根据权利要求11所述的设备,其中用于重映射的所述逻辑与所述存储器(10)被设置在同一个芯片上。
13.根据权利要求9所述的设备,其中所述线重映射函数为键控位调和函数、XOR函数以及乘以奇数键对地址大小取模的乘法中的一种。
14.根据权利要求9所述的设备,其中所述块重映射表包括计数器以保持物理存储块的更新的计数。
15.根据权利要求9所述的设备,其中用于重映射的所述逻辑被设置在第一芯片上,而所述存储器(10)被设置在第二芯片上。
CN200980161184.7A 2009-11-30 2009-11-30 用于存储器磨损平衡的重映射方法及设备 Expired - Fee Related CN102483717B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2009/066089 WO2011065957A1 (en) 2009-11-30 2009-11-30 Remapping for memory wear leveling

Publications (2)

Publication Number Publication Date
CN102483717A CN102483717A (zh) 2012-05-30
CN102483717B true CN102483717B (zh) 2014-09-17

Family

ID=44066825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980161184.7A Expired - Fee Related CN102483717B (zh) 2009-11-30 2009-11-30 用于存储器磨损平衡的重映射方法及设备

Country Status (4)

Country Link
US (1) US8745357B2 (zh)
EP (1) EP2507710B1 (zh)
CN (1) CN102483717B (zh)
WO (1) WO2011065957A1 (zh)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101448412B1 (ko) * 2010-08-30 2014-10-07 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 다층 메모리 어레이
US20120311228A1 (en) * 2011-06-03 2012-12-06 Advanced Micro Devices, Inc. Method and apparatus for performing memory wear-leveling using passive variable resistive memory write counters
US20120317377A1 (en) * 2011-06-09 2012-12-13 Alexander Palay Dual flash translation layer
CN102841852B (zh) * 2011-06-24 2015-06-17 华为技术有限公司 磨损均衡方法、存储装置及信息系统
US20130097403A1 (en) 2011-10-18 2013-04-18 Rambus Inc. Address Mapping in Memory Systems
US9396118B2 (en) 2011-12-28 2016-07-19 Intel Corporation Efficient dynamic randomizing address remapping for PCM caching to improve endurance and anti-attack
TWI492051B (zh) * 2012-09-05 2015-07-11 Silicon Motion Inc 資料儲存裝置與快閃記憶體控制方法
US20140089560A1 (en) * 2012-09-25 2014-03-27 Adesto Technologies Corporation Memory devices and methods having write data permutation for cell wear reduction
JP2014098978A (ja) * 2012-11-13 2014-05-29 Sony Corp メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法
CN103019624B (zh) * 2012-12-11 2015-07-15 清华大学 一种相变内存装置
CN103076996B (zh) * 2013-01-08 2016-08-03 深圳市硅格半导体有限公司 Pcram控制方法及系统
US9058870B2 (en) 2013-02-08 2015-06-16 Seagate Technology Llc Hash functions used to track variance parameters of resistance-based memory elements
CN104317753B (zh) * 2014-10-21 2017-09-22 中国科学院上海微系统与信息技术研究所 存储设备及其数据读写方法
CN105988950B (zh) * 2015-02-03 2019-05-21 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置
KR102403266B1 (ko) 2015-06-22 2022-05-27 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10445251B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
US10452533B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Access network for address mapping in non-volatile memories
US10452560B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
US10445232B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Determining control states for address mapping in non-volatile memories
US9921969B2 (en) 2015-07-14 2018-03-20 Western Digital Technologies, Inc. Generation of random address mapping in non-volatile memories using local and global interleaving
US10417122B2 (en) 2015-09-30 2019-09-17 Seagate Technology Llc Data randomization using memory block access counts
US20170160987A1 (en) * 2015-12-08 2017-06-08 Intel Corporation Multilevel main memory indirection
US10049717B2 (en) 2016-03-03 2018-08-14 Samsung Electronics Co., Ltd. Wear leveling for storage or memory device
US11056206B2 (en) * 2017-10-11 2021-07-06 Western Digital Technologies, Inc. Non-volatile memory with dynamic wear leveling group configuration
US10656844B2 (en) 2017-10-11 2020-05-19 Western Digital Technologies, Inc. Non-volatile memory with regional and inter-region wear leveling
CN114936169A (zh) * 2022-03-31 2022-08-23 上海阵量智能科技有限公司 存储器的磨损均衡方法和装置、存储器和电子设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956751A (en) * 1995-06-28 1999-09-21 Industrial Technology Research Institute Computer memory management system using physical segmentation space allocation
US5897662A (en) * 1995-08-18 1999-04-27 International Business Machines Corporation Pseudo-random address generation mechanism that reduces address translation time
US5953520A (en) * 1997-09-22 1999-09-14 International Business Machines Corporation Address translation buffer for data processing system emulation mode
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
US7966462B2 (en) * 1999-08-04 2011-06-21 Super Talent Electronics, Inc. Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US7565509B2 (en) * 2002-04-17 2009-07-21 Microsoft Corporation Using limits on address translation to control access to an addressable entity
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7644251B2 (en) 2005-12-19 2010-01-05 Sigmatel, Inc. Non-volatile solid-state memory controller
WO2007072317A2 (en) 2005-12-21 2007-06-28 Nxp B.V. Non-volatile memory with block erasable locations
US20100115175A9 (en) * 2006-12-18 2010-05-06 Zhiqing Zhuang Method of managing a large array of non-volatile memories
JP4967680B2 (ja) * 2007-01-23 2012-07-04 ソニー株式会社 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
US8103851B2 (en) * 2008-01-11 2012-01-24 International Business Machines Corporation Dynamic address translation with translation table entry format control for indentifying format of the translation table entry
US8370603B2 (en) * 2008-12-23 2013-02-05 Apple Inc. Architecture for address mapping of managed non-volatile memory

Also Published As

Publication number Publication date
WO2011065957A1 (en) 2011-06-03
EP2507710A1 (en) 2012-10-10
US8745357B2 (en) 2014-06-03
CN102483717A (zh) 2012-05-30
EP2507710B1 (en) 2018-10-31
EP2507710A4 (en) 2014-03-12
US20120233381A1 (en) 2012-09-13

Similar Documents

Publication Publication Date Title
CN102483717B (zh) 用于存储器磨损平衡的重映射方法及设备
KR102143086B1 (ko) 동적 슈퍼 블록을 포함하는 메모리 장치 및 관련 방법 및 전자 시스템
CN104126177B (zh) 预交错顺序数据的系统及方法
CN102047230A (zh) 混合式存储器管理
US20180267705A1 (en) Capacity-aware wear leveling in solid-state storage devices
CN103946811A (zh) 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
TW201142593A (en) Method and system for concurrent background and foreground operations in a non-volatile memory array
US10248333B1 (en) Write distribution techniques for two-terminal memory wear leveling
CN105593942A (zh) 非易失性存储器装置中的易失性存储器架构及相关控制器
JP2012519899A (ja) メモリブロックの選択
US20190318782A1 (en) Memory Devices and Memory Operational Methods
CN111158579B (zh) 固态硬盘及其数据存取的方法
US20150169228A1 (en) System and method of storing data at a non-volatile memory
KR20130023985A (ko) 개선된 랜덤 라이트 성능을 가지는 메타 데이터 그룹 구성 방법 및 그에 따른 반도체 저장 장치
WO2014105705A2 (en) Flash memory using virtual physical addresses
CN111752857A (zh) 存储器控制器及操作存储器控制器的方法
CN110998543A (zh) 磨损平整
CN112130749B (zh) 数据储存装置以及非挥发式存储器控制方法
US11513950B2 (en) Wear leveling in non-volatile memory
JP2021034091A (ja) メモリシステムおよび制御方法
JPWO2010038736A1 (ja) 半導体装置
Lastras-Montaño et al. A low-power hybrid reconfigurable architecture for resistive random-access memories
US10409714B1 (en) Logical to physical translation for two-terminal memory
CN104731710B (zh) 存储器管理方法、存储器控制电路单元与存储器储存装置
US9507706B2 (en) Memory system controller including a multi-resolution internal cache

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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160811

Address after: American Texas

Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Patentee before: Hewlett-Packard Development Company, Limited Liability Partnership

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140917

Termination date: 20201130

CF01 Termination of patent right due to non-payment of annual fee