CN103946819B - 用于非易失性系统存储器的统计耗损均衡 - Google Patents

用于非易失性系统存储器的统计耗损均衡 Download PDF

Info

Publication number
CN103946819B
CN103946819B CN201180075090.5A CN201180075090A CN103946819B CN 103946819 B CN103946819 B CN 103946819B CN 201180075090 A CN201180075090 A CN 201180075090A CN 103946819 B CN103946819 B CN 103946819B
Authority
CN
China
Prior art keywords
block
piece
write
list
loss equalization
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.)
Active
Application number
CN201180075090.5A
Other languages
English (en)
Other versions
CN103946819A (zh
Inventor
R.K.拉马努简
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN103946819A publication Critical patent/CN103946819A/zh
Application granted granted Critical
Publication of CN103946819B publication Critical patent/CN103946819B/zh
Active 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • 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
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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

Abstract

描述了对于非易失性系统存储器而言可以特别有用的统计耗损均衡。在一个实施例中,本发明包括:耗损均衡移动状态机,基于耗损准则来选择活动块,将所选择的活动块的内容移动到来自空闲块列表的块,并且将所选择的活动块移动到未使用块列表;空闲块列表扩展状态机,从目标空闲块列表中取块,将该块的内容移动到来自未使用块列表的块,并且将取自目标块列表的块移动到空闲块列表;以及目标空闲块生成状态机,从未使用块列表中选择块,并且将所选择的块移动到目标空闲块列表。

Description

用于非易失性系统存储器的统计耗损均衡
技术领域
本公开涉及用于存储器阵列的耗损均衡的领域,并且特别地,涉及使用块列表和移动操作来对存储器单元块的使用进行耗损均衡。
背景技术
各种不同的新的存储器单元技术已经被开发并且正在发展为针对磁和开关晶体管存储器的替换,诸如硬盘驱动器和各种随机存取存储器。这些新存储器类型中的一些具有它们对任何特定存储器单元所允许的写周期的数量的限制。为了使这些存储设备的服务寿命最大化,耗损均衡系统被用来跨存储器单元而均衡耗损,从而遍及设备来分布写。耗损均衡可以在操作系统、软件应用、存储器控制器、或存储器模块中。
PCM(相变存储器)和PCMS(相变存储器和开关)是具有适于用作各种不同的计算系统中的存储器的性能特性的NVM(非易失性存储器)技术。PCMS提供快速读和写,并且能够允许同时写单个存储器单元或一小组单元。这使PCMS不仅适于替换常规的大容量储存存储器,还有适于替换短期和缓冲存储器。目前,DRAM(动态随机存取存储器)和SRAM(静态随机存取存储器)被用于这些高速应用。然而,像NAND和其它类型的闪速存储器那样,PCMS具有对能够对任何一个储存单元而执行的写周期的总数量的限制。
当应用于典型主存储器应用时,应用于NAND的传统耗损均衡方案产生问题。使用小粒度读和写而频繁访问主存储器,并且甚至较小的延迟增加具有对整体系统的显著的性能影响。用于NAND的传统的耗损均衡方案将大块的存储器单元用于耗损均衡,并且在处理耗损均衡操作方面需要相当大的开销。此类方案还需要大量的元数据来追踪每个单元块的使用。因而,此类方案对于主存储器应用而言变得昂贵。
对于基于NAND的储存子系统,很大的耗损均衡块与显式耗损均衡一起被使用。显式耗损均衡需要保持对每个NAND块的总的写计数的追踪。如果基于NAND的储存被用作大容量储存系统(诸如用于硬盘驱动器替换),那么性能要求远低于用于主存储器的性能要求。然而,此类大耗损均衡块不可使用于对延迟特别敏感的存储器子系统。这可能包括图形和处理缓冲器以及短期高速缓存存储器子系统。另外,因为主存储器或类似的应用中的写业务通常由随机分布的许多小粒度写来构成,所以使用大存储器单元块很难追踪这些写。最后,显式耗损均衡需要对每个写而维护和更新总的耗损计数。这对于存储器应用中的较小的块而言变得很复杂。为了显式地追踪用于每个单元的写,大多数现有的NAND存储器系统使用智能微控制器和固件来进行耗损均衡。
发明内容
按照本申请的一个方面,限定了一种用于存储器阵列的耗损均衡的方法,包括:将系统存储器地址指派到物理存储器的第一块的物理存储器地址;计数对物理存储器的第一块的写操作的数量的指示;所述第一块存储来自所述写操作的数据;将所计数的指示与阈值相比较;如果所计数的写操作的数量超过所述阈值,那么选择物理存储器的第二块;通过将所述第一块的内容写到写缓冲器,将用于所述第一块的未决写操作聚集到所述写缓冲器中,以及将所述写缓冲器的内容写到所述第二块,执行在所述第一块中存储的数据向所选择的第二块的耗损均衡移动;将所述系统存储器地址指派到所述第二块;以及将所述第一块指派到物理存储器的未使用块池。
附图说明
在附图的各图中,以示例的方式而不以限制性的方式来图示本发明的实施例,在所述附图中,相似的附图标记指代类似的元件。
图1是根据本发明的实施例的存储器地址间接系统的框图。
图2是根据本发明的实施例的图1的地址间接单元的框图。
图3A是根据本发明的实施例的利用地址间接单元的耗损均衡的过程流图。
图3B是根据本发明的实施例的利用空闲块列表的耗损均衡的过程流图。
图3C是根据本发明的实施例的使用地址间接表中的写计数的耗损均衡的过程流图。
图4A-4D是根据本发明的实施例的示出为了耗损均衡而在块之间移动数据和地址的阵列的存储器块的框图。
图5是根据本发明的实施例的其中耗损均衡应用于其存储器系统的计算机系统的框图。
具体实施方式
根据一个实施例,本发明使用快速并具有很低的开销的统计耗损均衡机制。其在出现小粒度写操作的情况下工作,并且还使连接的存储器阵列的服务寿命最大化。
所描述的耗损均衡机制对于具有小写粒度的高性能应用中的使用而言特别有用,但不限于此。该方案为了最高的性能和带宽效率而实现直接对PCMS阵列的小粒度写。利用诸如4KB块的较小的块粒度的耗损均衡被允许。耗损均衡频率能够使用权衡耗损均衡与带宽成本的统一性的固定写周期计数触发来调整。过热点能够通过将整个PCMS地址空间用于统一耗损均衡移动而避免。工作量行为能够与用于耗损均衡移动的块的选择分开。能够防御恶意或滥用软件。能够为每个块而维护整体耗损计数,以有助于“耗损带”分类需要。最后,ECC(误差校正码)或误差检测码能够被用来标识到达耗尽寿命的终点的块。这些块能够被看作坏块并且不再使用。
这些或其它优势中的一个或多个能够使用以下更详细描述的特征中的一个或多个来获得。这些特征包括高速地址间接机制,以及基于写频率的周期性触发来执行耗损均衡移动。另外,该方案具有在能够以较大的块粒度来进行耗损均衡的同时允许到PCMS系统中的小粒度写的能力。能够包括对坏块的自动排除,并且周期性触发能够与空闲耗损均衡块的随机选择合并,以确保针对耗损均衡的一定统计统一性。
在一个实施例中,本文所描述的耗损均衡方案将软件用来寻址存储器的系统物理地址空间(SPA)分成4KB大小的块。PCMS设备地址空间(PDA)也采用相同大小的块来分割。每个SPA块被映射到特定的PDA块。到该块中的写被计数和追踪。以预定的计数,将SPA块移动到使用各种不同的算法而选择的不同的PDA块,所述算法确保关于软件写模式的随机化。SPA块依赖于写的频率而持续地被重新映射到不同的PDA块。重新映射方案确保在不产生任何软件生成的过热点的情况下,覆盖整个PDA空间。
由于重新映射的统计性质,不存在追踪到任何块中的写的总数量的需要。该算法确保由在其之后将移动块的写的数量所规定的窄窗内的统一耗损。
因为到任何耗损均衡块中的写使用比单个块(子块)更小的粒度而发生,所以写计数不在对不同的子块的写之间进行区分。如果软件重复地选择写到单个块的相同的子块,则可能在块内产生过热点。附加的机制确保在一个块内不产生任何过热点。在SPA块到不同的PDA块的每次耗损均衡移动时,4KB块内的所有64B子块能够被随机地打乱(shuffle)以确保不耗尽4KB块的任何一个部分。
在一个实施例中,该打乱使用预定的种子(seed)和键(key)来发起。能够为AIT中的每个块而追踪该键。下次,SPA子块被访问;该相同的种子和键被用来重新生成PDA块内的64B地址。在另一个实施例中,目标块能够使用通过物理地址的游走(walk)来选择,能够使用模式游走或随机游走。目标块还能够基于在起动期间所生成的列表来选择。附加的替代包括使用静态种子的随机打乱、序列旋转、对地址位与随机数应用XOR、对PDA地址位与SPA地址位应用XOR等。
图1示出如以下更详细描述的可以包括耗损均衡系统的存储器地址间接系统的框图。地址间接单元100通过存储器通道112发送和接收存储器地址、命令和数据,所述地址间接单元100依赖于特定的实现而耦合到存储器控制器、通用控制器、或处理器。将读命令和数据接收到读队列114中,并且将写命令和数据接收到写队列116中。将读和写这二者都发送到解释存储器通道地址并且将其应用于物理存储器单元阵列122的物理地址的地址控制单元110。
地址控制单元进一步耦合到写缓冲器118和读缓冲器120,以在读和写在地址控制单元中转换之后对其进行缓冲,以应用于存储器122。
图1示出本发明的一个实施例中的可以由地址控制单元所使用的数据结构中的两个。地址间接表(AIT)101存储从由存储器通道112所使用的系统物理地址(SPA)空间到由存储器122所使用的PCMS设备地址空间(PDA)的地址转换的当前映射。其还保存自最近的耗损均衡移动以来的到地址空间的每个块中的写的数量。AIT采用一些类型的快速存储器来保持,诸如用于快速访问的DRAM。其可以利用每次读和写事务来访问。
AIT通过以下所描述的耗损均衡过程而被频繁地修改。系统的安全和耗损的均衡能够通过在初始配置AIT的映射时使其随机化而进一步增强。在擦除或基本上擦除了PCMS存储器的情况下,还能够针对擦除后的块而再次使AIT随机化。这不仅对耗损进行均衡,还消除了外人预测哪个PDA与任何特定的SPA对应的任何能力。另外,虽然AIT将存储器单元的块从用于该块的SPA映射到用于该块的PDA,但耗损可以通过使每个块内的PDA的子块的排序随机化来进一步均衡。
在一个实施例中,AIT被组织为转换条目的简单线性表。每个条目映射例如4KBPCMS页。AIT中的每个条目可以仅是几字节。因而,使AIT的大小保持得较小。虽然AIT可以在PCMS中维护,但其然后也可以需要耗损均衡,这致使系统更复杂。在一个实施例中,AIT位于可由存储器控制器芯片容易访问的并且与所述存储器控制器芯片分离的单独的DRAM芯片中。
管芯(die)外AIT可以利用本地存储在存储器控制器中的AIT高速缓存(见图2)来扩增。高速缓存可以被用于最近访问过的AIT条目,以使得到由这些条目所覆盖的块中的未来访问将不需要管芯外AIT访问。因为软件通常相继较短地多次访问相同的位置,所以高速缓存可以提供更快的存储器访问时间。另一方面,高速缓存增加了其必须被保持到最新的方面的复杂性,并且不在高速缓存中的任何地址将访问得更慢。
图1还示出读和写缓冲器与物理存储器之间的PCMS描述符表(PDT)102。PCMS描述符表是反向的(reverse)AIT。其反向地存储相同的映射,以将每个PDA块的地址转换到对应的SPA块的地址。另外,其还能够被用来保存关于每个块的类型。这能够包括关于哪些块是坏块的记录。PDT能够被用来挑选PDA空间中的块用于耗损均衡移动的目的地。此类块被称作“空闲块”并且保持在存储器控制器中的空闲块列表中。因为被选择为空闲块的块能够包含有效数据,所以必须在将所述块移动到空闲块列表之前,首先将该有效数据移动到某一未使用块。适当地修改AIT以改变用于被移动的原始块的SPA到PDA映射。PDT在永久存储器中维护,并且通常将驻存于PCMS存储器自身中。
图2详细地示出图1的地址间接单元100。特别地,图2示出地址间接单元100内的耗损均衡逻辑200的细节。耗损均衡逻辑被示出为与状态机交互的队列或列表集。耗损均衡逻辑可以实现为如所图示的硬件组件或实现为软件模块,实现为固件或实现为不同的此类项目的组合。
块103是耗损均衡逻辑200内的未决耗损均衡队列(PWLQ)。该队列保存每个SPA块的描述符,以指示每个块的耗损的级别。这能够被用来确定何时应该为耗损均衡的目的而移动块。与以下所描述的其它数据结构和状态机的大多数一样的该队列可以在存储器控制器的内部或一些其它可快速访问的位置中维护。在一个实施例中,当通过AIT的写请求发现用于该块的AIT条目中的写计数值大于或等于写计数低阈值的值并且小于或等于写计数高阈值时,对队列的底部制作条目。
如以上所提到的,AIT维护用于每个块的写计数寄存器。该值可以是写操作的实际计数或与写的数量相关的某一其它值。在一个实施例中,写计数是实际写计数的因数,诸如十六分之一或某一其它的方便的值。为了在时间上更均匀地散布耗损均衡操作,写计数能够被初始化为随机值。这还将马上开始耗损均衡过程,以使得未决队列在某一时间量内不保持为空,并且然后在若干块差不多同时到达写计数阈值时很快地填充。另外,不必为存储器的每个物理块追踪总的写计数。如以下所描述的,各个块列表能够在不具有总的写计数的知识的情况下,统计地分布块的使用。因而,当将块移回到使用中时,新的写计数能够以零或以某一其它随机或预定值来初始化。
块104是耗损均衡逻辑中的空闲耗损均衡块列表(FWLBL)。该列表包含可用于耗损均衡移动的PDA块的描述符。该列表中的块当前没有被映射到SPA块,并且因而可用以接收从当前被映射到SPA块的块的移动。存在挑选要接收移动的块的不同方式。在一些实现中,可以期望挑选算法,以使得其相对于使用存储器和软件或工作量存储器分配或写/读模式的软件是分开且随机的。还可以期望选择均匀地覆盖整个PCMS地址空间的技术,从而避免任何潜在的过热点产生模式和对低写计数块的选择的偏差。
一种此类方法是为BIOS(基本输入/输出系统)或类似的起动资源而使SPA到PDA映射随机化,并且将其用来使AIT和PDT初始化。在该初始的随机化之后,用于空闲耗损均衡块列表的条目能够通过连续地游走通过仅排除空闲块和坏块的整个PDA地址空间来挑选。
块105是耗损均衡逻辑中的目标耗损均衡块列表(TWLBL)。该列表包含被用来在空闲块列表104开始不足时产生新的空闲块的PDA块的描述符。该列表中的块仍然被指派到SPA块。在将该列表上的块复制到耗损均衡移动中的另一个块之后,然后将该块移动到未使用块列表。
块106是耗损均衡逻辑中的未使用块列表(UBL)。该列表包含当前未使用的PDA块的描述符。块可以是从未使用过的块,原因在于系统还不需要它们。通常大多数或所有的块将是近期保留的、然后被耗损均衡移动到另一个块的SPA块。换句话说,该队列包含先前被映射到系统存储器空间中但然后该系统存储器空间被移动到另一个物理块从而使该物理块未使用的块的列表。这些块现在准备变为新的空闲块或从基于空闲块选择过程而变为空闲块的其它块接收数据。
除了各种队列之外,图2的图将耗损均衡逻辑示出为使用状态机来操作。在所描述的示例中,对于耗损均衡存在三个部分。更多或更少的部分可以依赖于特定的实现而使用。本文将该三个部分描述为耗损均衡移动、空闲块列表扩展、以及目标空闲块选择。
在一个实施例中,耗损均衡在系统配置期间发起。在存储器配置期间,BIOS或另一个存储器配置代理为耗损均衡目的而留出PDA块集以用作空闲块。这是组成空闲块列表的块的初始集。当耗损均衡继续进行时,块持续地被使用并且添加到空闲块列表以平均上保持某一恒定数量的空闲块。因而,空闲块从可用于系统软件的总的块计数减去。未留出的块被指派到MCA(存储器通道地址)块。MCA从用于每个PCMS控制器的SPA得到。该初始的MCA到PDA指派能够使用各种不同的映射方案。在一个示例中,其使用随机化的映射方案。
图2示出作为耗损均衡逻辑200的部分的耗损均衡移动状态机201。该状态机从未决队列103中取条目,并且将其移动到取自空闲块列表104的PDA块。当这被完成时,其将更新AIT 101以示出SPA和PDA之间的新映射。其将把先前所使用的PDA块放到未使用块列表106中。PDT 102也利用正确的反向映射来更新。
如图2中所示,将耗损均衡移动状态机耦合到每个队列和列表以及还耦合到地址控制逻辑110。通过地址控制逻辑,耗损均衡状态机能够到达AIT和PDT。在所图示的示例中,通过包括用于近期使用的AIT值的AIT高速缓存214的DRAM(动态随机存取存储器)控制器212而到达AIT。DRAM控制器通过DRAM存储器通道总线而耦合到驻存于管芯外的外部位置中的AIT(未示出)。
因为每次耗损均衡移动均从空闲块列表移除条目,所以空闲块列表扩展周期地发生以保持空闲耗损均衡块列表充满。用于触发扩展的阈值可以被选择以适合特定的应用。空闲块列表扩展状态机202从目标块列表105中取条目,并且将其内容移动到来自未使用块列表106的条目。然后,其将把目标块列表条目移动到空闲块列表104中。通过其连接到的地址控制逻辑,其然后将适当地更新AIT 101和PDT 102。
目标空闲块生成状态机203选择供空闲块列表扩展状态机使用的下一块。在存储器控制器中例如在耗损均衡逻辑中或在地址间接单元中维护此类块的列表。目标空闲块生成状态机将使用特定的技术来挑选注定要进入目标空闲块列表104的下一PDA块。该技术可以基于各个不同的准则来选择。两个准则是要覆盖其选择过程中的所有的PDA空间和要将系统软件与其对特定SPA地址空间的使用之间的任何关联分开。换句话说,针对第一个准则,该技术在整个存储器阵列而不仅是一部分之上散布耗损。这有助于确保整个阵列在大约相同的时间耗尽。第二个准则防止运行在计算系统上的软件确定要使用的PDA地址。某一软件程序将被写成使用特定的地址。这将使与那些特定地址对应的存储器单元更快地耗尽。通过改变地址空间,由软件所指定的物理地址将随时间改变到不同的实际物理存储器单元,从而均衡耗损。
用于挑选下一PDA块的不同技术能够依赖于用于特定应用的特定设计的需要来选择。就随机打乱块内的子块而言,技术的准确性和精度能够针对其复杂度和其可能引入的延迟而被平衡。能够使用如被用于打乱子块的类似技术,包括模式游走、随机游走、起动列表、随机打乱、序列旋转等。
AIT高速缓存214协助AIT 101的操作。因为AIT是很大的表并且处于用于每个事务的关键时序路径中,所以AIT高速缓存可以被保持在PCMS控制器内的SRAM、DRAM、或某一其它类型的存储器中,以提供对存储在AIT中的SPA到PDA映射表的很快的访问。在一个示例中,当PCMS控制器接收到写事务时,写事务将包括SPA中的地址。控制器使用SPA地址来查找AIT中的条目,以确定对应的PDA块地址。写控制器还将递增(increment)在访问过的AIT条目中保存的写计数。如果写计数达到某一预定值,则将条目添加到未决队列103。如果否,那么AIT条目利用新的写计数来简单地更新,并且如对于存储器阵列122(诸如PCMS)而言正常的那样,写继续进行。
注意对PCMS的写的粒度比耗损均衡块小得多。在该实施例中,子块是64字节并且耗损均衡块是4千字节。该权衡提供到PCMS中的高效写带宽使用同时使AIT保持合理的大小(用于每个4KB块的条目)。然而,可以为写和耗损均衡粒度而选择其它大小,以适合不同的实现。
图3A根据过程流图示出以上描述的操作。该过程开始于块301处。耗损均衡移动状态机201从未决队列103中取条目并且将其移动到取自空闲块列表14的PDA块。
在该移动发生之前,依赖于实现,可以存在一些使该操作可能或更高效的准备。早前,写请求指令将被运行并且将调用存储器控制器、地址间接逻辑、或耗损均衡系统来读AIT,以便找到与写请求的逻辑地址对应的适当的物理地址。写请求例如通过将数据写到PCMS写缓冲器118中而运行,在操作的规则进程中所述数据将从所述PCMS写缓冲器118被写到PCMS 122中。
在读AIT时,系统将检查AIT写计数值。该值可以被存储在AIT中或另一个位置中。如果该值大于低阈值,那么系统能够在未决队列103中公布移动请求。同时,依赖于特定的实施例,可以更新写计数值。另外,能够在AIT中设置耗损均衡未决位。这将指示耗损均衡移动对于物理存储器的对应的块而言是未决的。
在开始实际移动之前,耗损均衡移动状态机挑选来自未决队列的耗损均衡请求,并且使其进入到活动耗损均衡移动条目(AWLM)中。AWLM条目是与当前活动的耗损均衡移动操作关联的上下文。AWLM条目维持有效直到完成对应的耗损均衡移动和关联的状态更新。
在一个实施例中,AWLM能够包括指示耗损均衡移动是否正在进行的有效/无效条目、指示要从中移动数据的块的源地址、以及指示来自源块的数据将被移动到的目的地块的目的地地址。在完成对应的耗损均衡移动之后,AWLM条目可以被清除、或设为无效。
在一个实施例中,在AWLM条目被设为有效之后,然后能够在缓冲器中保存对存储器的该块的任何未来的写操作,直到完成耗损均衡移动之后。指令能够被保存或能够对写缓冲器执行写,在移动之后其将从所述写缓冲器被写到PCMS。在耗损均衡移动结束之后,然后未决写操作将被发送到新的目标块。通过将AWLM与AIT相关联,查找AIT来将写请求映射到物理存储器的任何写操作能够同时发现对于特定的块而言耗损均衡移动正在进行。
为了开始耗损均衡移动,耗损均衡移动状态机从空闲块列表中取空闲块,读要被移动的PCMS块,并且将数据从源块的物理存储器移动到缓冲器中。等待去往物理存储器的写缓冲器中的任何条目还可以被聚集到写缓冲器中。可替代地,在完成移动之后,这些可以被留在写缓冲器中以供运行。耗损均衡状态机然后可以将过去在源块中的数据从移动缓冲器写到目的地块中。在完成耗损均衡移动时,AWLM条目能够被清除或设为无效。
在块302处,耗损均衡移动状态机更新AIT以示出SPA与PDA之间的新映射。这将反映从映射到源块到映射到目的地块的映射方面的改变。AIT也被更新以刷新写计数,并且清除未决写操作的列表,如果有的话。在块303处,其将把先前使用的PDA块放到未使用块列表中,并且在块304处,其还将更新PDT以反映该移动。在该移动之后,用于先前使用的PDA块的写计数能够被删除或利用缺省或随机值而改写。不存在追踪用于未使用块的写计数的需要。这通过功率循环和灾难事件来增强系统的健壮性。
为了支持耗损均衡移动,空闲块列表被扩展以不断地添加新块。这些是由耗损均衡移动在块被移动到空闲耗损均衡块列表中的块时所消耗的块。空闲块列表扩展状态机从未使用块列表中取块,并且将它们移动到空闲耗损均衡块列表,以使得它们能够成为耗损均衡移动中的目的地块。
参考图3B的流过程,在块305处,空闲块列表扩展状态机202从目标块列表105中取条目,并且将其内容移动到来自未使用块列表106的条目。该移动可以涉及以上所提到的用于耗损均衡移动状态机的操作中的许多,包括设置耗损均衡未决位、将数据移动到写缓冲器中、聚集任何未决的写操作、以及然后当完成移动时清除未决位。来自未使用块列表的块在该情况下是目的地块,并且在移动之前或之后从未使用块列表移除。来自目标块列表的块是源块,并且其被移动到空闲块列表。
在块306处,空闲块列表扩展状态机将目标块列表105条目移动到空闲块列表104中。换句话说,来自目标块列表的块现在是空的,并且能够被移动到空闲块列表。然后,在块307处,状态机将适当地更新AIT和PDT。
空闲块列表扩展消耗来自目标块列表的块,因此目标空闲块生成状态机补充目标块列表。
参考图3C,在块308处,目标空闲块生成状态机203挑选要进入空闲块列表的下一PDA。该选择能够依赖于特定的实现而采用各种不同的方式来完成。这可以包括随机游走、对耗损均衡计数值的检查等。在一个实施例中,状态机选择未被标识为坏块的下一块。
在块310处,当写事务由PCMS控制器接收时,其查找AIT中的系统地址(SPA)以确定PDA块地址。在块311处,其将递增在AIT条目中保存的写计数。在块312处,如果写计数达到某一预定值,那么在块313处,条目被存放在未决队列中。如果否,那么在块314处利用新的写计数来简单地更新AIT,并且如对于PCMS而言正常的那样,写继续进行。
图4A到4B表示数据在存储器阵列(例如,PCMS阵列)中的存储器单元的块之间从一个块移动到另一个。在图4A至4D中,空闲块F表示空闲PDA块。SPA块1-16表示当前被指派到SPA块的PDA块。换句话说,被指派的PDA块当前被用来存储数据。
图4A示出其中被标记F的第一组块可用或空闲并且被标记1-16的第二组块处于使用的稳定状态。在空闲块列表104中列出F块,并且在AIT 101和PDT 102中指示块1-16。
在图4B中,SPA块8例如由于对其的大的总数量的写而变得“过热”。然后,其被置于未决队列中并且因而将被调度用于耗损均衡移动。在图4C中,耗损均衡移动状态机将过热块8复制到第一可用空闲块(附图顶部处的F块)。以前的块8变为由U所指示的未使用块。该块将被添加到未使用块列表106。
在该移动之后,目标空闲块状态机203将下一可用的PDA块挑选为下一空闲块。如图4C中所指示的,下一空闲块被标识为块1。在空闲块列表104中指示了空闲块。在下一空闲块被识别之后,空闲块扩展状态机202将在图4C中被指示为块1的目标空闲块的当前内容移动到在图4C中被指示为U的未使用块。然后其在目标块列表105中添加目标空闲块的标识符。在图4D中示出了该状况,其中存在四个空闲块F,然而,以前的先使用的块1不是空闲块F,并且以前在块1中的内容已经移动到以前的块8。
以上所描述的技术有助于提供空闲块较慢地移动通过整个PDA空间以及空闲块的标识与软件所生成的SPA地址分开。
以上所描述的过程流使用耗损均衡移动状态机201从其中选择用于耗损均衡移动的块的未决队列103。块能够使用先入先出方法或使用某种模式或随机选择来选择。在一个实施例中,未决队列中的所有的块准备用于移动,并且如果队列中的块的数量未变得太大,则先移动哪些并不重要。
以上所描述的过程流还使用未使用块列表106、目标块列表105、以及空闲块列表104。未使用块列表被用来允许将块从目标块列表移动到空闲块列表。空闲块列表被用来允许将(未决队列中的)具有高写计数的使用中的块移动到未使用块列表。考虑另一种方式,耗损均衡移动状态机将数据移动到空闲块列表中的块,而空闲扩展状态机将数据从目标块列表中的块移动到未使用块列表的块。
作为结果,存在两个同时发生的同时移动过程。耗损均衡过程从未决队列中取块,并且将其移动到未使用块列表。为了这样做,其还从空闲块列表中取块并且将它们投入使用,其中它们可以最终返回到未决队列。空闲块列表扩展过程从目标块列表中取块并且将它们移动到空闲块列表。为了这样做,其还从未使用块列表中取块并且将它们投入使用,其中它们可以最终返回到未决队列。耗损均衡从中提出块的未决队列将这两个过程与三个块列表联系在一起,以使得块能够从一个过程移动到另一个。
该两个同时移动过程依赖于针对其操作的不同的选择准则。耗损均衡过程依赖于写计数。基于写计数而将块置于未决队列中。然而,空闲块列表扩展过程不使用写计数。这消除对追踪用于未使用和空闲块的写计数的任何需要。如以上所提到的,其能够使用广范围的不同的技术来填充目标空闲块列表。第二过程将各种混合添加到物理地址块的使用,这改善了耗损均衡系统的完整性。第二过程还降低了系统的可预测性。这使系统更难以被外人攻击。第二过程通过将另一个因素添加到存储器块的整体使用而有助于确保所有的块都被使用,以及确保不管可能由特定软件或BIOS程序调用的系统地址如何,都跨整个物理存储器来应用耗损均衡。
如以上所提到的,目标块能够使用通过物理地址的游走来选择,能够使用模式游走、或随机游走。目标块还能够基于在起动期间所生成的列表来选择。附加的替代包括使用静态种子的随机打乱、序列旋转、对地址位与随机数应用XOR、对PDA地址位与SPA地址位应用XOR等。
在一个实施例中,不使用第二过程、空闲块列表扩展过程、目标块列表、以及空闲块列表。代之以,耗损均衡状态机从未决队列中取块,将内容从那些块移动到选自未使用块列表的块中,并且在该移动之后,将第一块指派到未使用块列表。在此类实施例中,从未使用块列表的块的选择能够使用以上所描述的选择目标块的过程来完成。
在另一个实施例中,不使用第一过程、耗损均衡过程、未使用块列表和未决队列。空闲块扩展过程从目标空闲块列表中取块,将内容移动到选自空闲块列表的块,并且在该移动之后,将第一块指派到空闲块列表。从空闲块列表的块的选择能够如以上所描述的用于选择目标块的那样完成。虽然在该实施例中,不直接对耗损均衡进行寻址,但其将通过在每次移动之后重新映射地址转换而间接地被寻址。
能够通过对本文所描述的实施例移除和添加数据结构、状态机、和操作来对本文所描述的示例做出许多其它变形。还能够将操作移动到不同的硬件组件以及到不同的位置,以适合特定的应用。以上所描述的简化的单过程实施例二者都能够通过使系统的附加元件随机化而增强。例如,能够为空闲或未使用块而初始地或周期性地使AIT随机化。能够初始地以及每当AIT在移动之后被更新时,使AIT内的子块的映射随机化。类似地,能够使写计数随机化。除随机初始化之外,当前值能够以一定间隔使用附加、或替换、或其它操作而被随机化。还能够类似地操纵系统的许多其它参数,以遍及存储器阵列来散布操作并且以改变操作的时序。
图5示出本发明的实施例可以应用于的系统的示例。中央处理单元(CPU)501耦合到控制器中枢(hub)502或南桥502。CPU包括存储器控制器并且直接耦合到通常采用DRAM的形式的系统存储器505,但在以上所描述的示例中,该存储器可以是非易失性存储器,诸如PCMS。CPU还耦合到外围图形总线503以供由一个或多个视频卡使用,并且还可以将视频从视频端口504直接提供到显示器。
控制器中枢502还具有到大容量存储器506的存储器控制器接口,所述大容量存储器506诸如磁盘、基于闪速的存储器或其它存储器类型,包括PCMS。在一个实施例中,大容量存储器直接耦合到系统存储器(采用点线来示出)或到CPU,并且不连接到控制器中枢。在另一个实施例中,系统存储器和大容量存储器这二者都通过控制器中枢在不同总线上或通过相同的总线而耦合到CPU。地址间接单元可以被并入到CPU、控制器中枢、或存储器阵列中。
依赖于计算机系统的预期使用,控制器中枢还连接到多个其它的设备。在所图示的系统中,控制器中枢还耦合到外部串行总线507,诸如一个或多个USB(通用串行总线)、火线、雷电接口、或显示端口。控制器中枢还耦合到固件中枢508以准许到系统设备(未示出)的连接。用户I/O设备509和音频I/O 510还耦合到控制器中枢。与外围组件总线511一起,还可以支持视频。诸如以太网512、WiFi、513或蜂窝数据之类的网络接口还可以由到控制器中枢的独立连接或通过到图中所示出的其它总线的一个或多个的连接来支持。
本发明的实施例可以被用作微计算机架构中的PCMS控制器的主要部分,或用于将PCMS用作海量存储器的分层服务器存储器子系统,以供其它使用。在所描述的示例中,该技术优化性能和PCMS耗尽,并且因而为服务器平台提供有独特价值的解决方案。除其它应用之外,其还能够与使用基于DRAM的地址间接表的任何基于PCMS的存储器子系统一起使用。所描述的技术允许例如到PCMS中的直接64B写。
要领会的是,比以上所描述的示例更少或更多装配的系统对于某些实现而言可能是优选的。因而,从实现到实现,示例性系统的配置将依赖于许多因素而变化,诸如价格约束、性能需要、技术改进、或其它情况。
实施例可以被实现为以下的任一或组合:使用母板而互连的一个或多个微芯片或集成电路、硬连线逻辑、由存储器设备所存储的并且由微处理器所运行的软件、固件、专用集成电路(ASIC)、和/或现场可编程门阵列(FPGA)。术语“逻辑”可以例如包括软件、或硬件、和/或软件和硬件的组合。
对“一个实施例”、“实施例”、“示例性实施例”、“各种实施例”等的引用指示如此描述的本发明的一个或多个实施例可以包括特定的特征、结构、或特性,但不是每个实施例都必须包括该特定的特征、结构、或特性。进一步地,一些实施例可以具有为其它实施例而描述的特征的一些、所有、或全无。
在以下描述和权利要求中,可以使用术语“耦合”及其衍生。“耦合”被用来指示两个或更多的元件彼此协作或交互,但它们可以或可以不在其之间具有中介的物理或电气组件。
如权利要求中所使用的,除非另有规定,使用顺序形容词“第一”、“第二”、“第三”等来描述共同元件仅指示正在参考相似元件的不同实例,并且不意在暗示如此描述的元件必须时间地、空间地、按排名地、或以任何其它方式来采用所给出的顺序。
附图和前述的描述给出实施例的示例。本领域技术人员将领会的是,所描述的元件的一个或多个很可能合并成单个功能元件。可替代地,某些元件可以被分成多个功能元件。来自一个实施例的元件可以被添加到另一个实施例。例如,本文所描述的过程的次序可以被改变并且不限于本文所描述的方式。此外,任何流程图的动作不需要采用所示出的次序来实现;所有的动作也不必都需要执行。同样,不依赖于其它动作的那些动作可以与其它动作并行地执行。实施例的范围不在任何意义上由这些特定的示例来限制。诸如结构、尺寸、以及材料的使用方面的差异的许多变形(不管是否在说明书中明确给出)是可能的。实施例的范围与以下权利要求所给出的范围至少一样宽。

Claims (22)

1.一种均衡存储器阵列中的耗损的方法,包括:
将系统存储器地址指派到物理存储器的第一块的物理存储器地址;
计数对物理存储器的第一块的写操作的数量的指示;所述第一块存储来自所述写操作的数据;
将所计数的指示与阈值相比较;
如果所计数的写操作的数量超过所述阈值,那么选择物理存储器的第二块;
通过将所述第一块的内容写到写缓冲器,将用于所述第一块的未决写操作聚集到所述写缓冲器中,以及将所述写缓冲器的内容写到所述第二块,执行在所述第一块中存储的数据向所选择的第二块的耗损均衡移动;
将所述系统存储器地址指派到所述第二块;以及
将所述第一块指派到物理存储器的未使用块池。
2.根据权利要求1所述的方法,其中选择第二块包括从所述未使用块池中选择所述第二块。
3.根据权利要求1所述的方法,其中选择第二块包括从空闲块池中选择所述第二块。
4.根据权利要求3所述的方法,进一步包括从被指派到系统存储器地址的块之中选择块作为所述空闲块池的块,以及将内容移动到来自所述未使用块池的块。
5.根据权利要求4所述的方法,其中从被指派到系统存储器地址的块之中选择所述块包括使用随机游走来选择块。
6.根据权利要求1所述的方法,进一步包括将所述第一块指派到等待耗损均衡移动的块的未决队列,以及从所述未决队列中选择所述第一块。
7.根据权利要求1所述的方法,其中将所述第一块指派到所述未使用块池包括将所述第一块指派到空闲块池。
8.根据权利要求1所述的方法,其中执行耗损均衡移动进一步包括设置与地址间接表关联的位,以指示系统存储器地址不可用于写操作。
9.根据权利要求8所述的方法,进一步包括在执行所述耗损均衡移动之前设置所述位,以及在执行所述耗损均衡移动之后清除所述位。
10.根据权利要求9所述的方法,其中设置所述位使得用于从所述系统存储器地址读或写的指令被缓冲,直到所述位被清除。
11.根据权利要求1所述的方法,进一步包括基于耗损均衡的期望量来选择所述阈值。
12.根据权利要求1所述的方法,进一步包括在将所述第一块指派到所述未使用块池之后,重置物理存储器的所述第一块的写操作的所计数的数量。
13.一种均衡存储器阵列中的耗损的方法,包括:
将系统存储器地址集映射到物理存储器的第一块的物理存储器地址,所述映射打乱系统存储器地址的子块到所述第一块的子块的映射;
使用于所述第一块的写计数值初始化;
在写到所述第一块的所述物理存储器地址时,递增所述写计数值;
如果所述写计数值超过阈值,那么选择物理存储器的第二块;
通过将所述第一块的内容写到写缓冲器,将用于所述第一块的未决写操作聚集到所述写缓冲器中,以及将所述写缓冲器的内容写到所述第二块,执行在所述第一块中存储的数据向所选择的第二块的耗损均衡移动;
将所述系统存储器地址指派到所述第二块的物理存储器地址;以及
将所述第一块指派到物理存储器的未使用块池。
14.根据权利要求13所述的方法,其中所述打乱包括随机打乱。
15.根据权利要求13所述的方法,其中初始化用于所述第一块的写计数值包括将随机值指派为所述写计数值。
16.根据权利要求13所述的方法,其中初始化用于所述第一块的写计数值包括将所述写计数值设为零。
17.一种均衡存储器阵列中的耗损的装置,包括:
地址间接表,将来自软件系统的系统存储器地址转换到所述存储器阵列的物理设备地址;
写计数寄存器,存储对所述存储器阵列的存储器的每个块的写操作的数量的指示,所述存储器阵列的单元被分成多个块;
地址控制逻辑,将所存储的指示与阈值相比较;以及
耗损均衡逻辑,其通过将数据从第一块移动到第二块来执行在所述第一块中存储的数据的耗损均衡移动,对于所述第一块而言所存储的指示超过所述阈值,所述第二块选自空闲块池,并且所述耗损均衡逻辑更新所述地址间接表来反映所述耗损均衡移动,
其中通过将所述第一块的内容写到写缓冲器,将用于所述第一块的未决写操作聚集到所述写缓冲器中,以及将所述写缓冲器的内容写到所述第二块,执行将所述数据从所述第一块向所述第二块的移动。
18.根据权利要求17所述的装置,其中所述耗损均衡逻辑从空闲块池中选择所述第二块,并且从被指派到系统存储器地址的块之中选择块作为所述空闲块池的块,并且将所述第一块的内容移动到来自未使用块池的块。
19.根据权利要求17所述的装置,其中所述耗损均衡逻辑在执行所述耗损均衡移动之后,将所述写计数寄存器发起为随机值。
20.一种均衡存储器阵列中的耗损的装置,包括:
耗损均衡移动状态机,基于多个写操作来选择活动块,将所选择的活动块的内容移动到来自空闲块列表的块,以及将所选择的活动块移动到未使用块列表,通过将所选择活动块的内容写到写缓冲器,将用于所选择活动块的未决写操作聚集到所述写缓冲器中,以及将所述写缓冲器的内容写到来自空闲块列表的块,将所选择的活动块的内容移动到来自空闲块列表的块;
空闲块列表扩展状态机,从目标空闲块列表中取块,将所述块的内容移动到来自所述未使用块列表的块,以及将取自所述目标空闲块列表的所述块移动到空闲块列表;以及
目标空闲块生成状态机,从所述未使用块列表中选择块,以及将所选择的块移动到所述目标空闲块列表。
21.根据权利要求20所述的装置,其中所述耗损均衡移动状态机进一步更新地址间接表来反映从所选择的活动块的内容移动,并且其中所述空闲块列表扩展状态机进一步更新所述地址间接表来反映从取自所述目标空闲块列表的块的内容移动。
22.根据权利要求21所述的装置,其中所述目标空闲块生成状态机使用耗损平衡技术来选择块。
CN201180075090.5A 2011-09-30 2011-09-30 用于非易失性系统存储器的统计耗损均衡 Active CN103946819B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/054384 WO2013048470A1 (en) 2011-09-30 2011-09-30 Statistical wear leveling for non-volatile system memory

Publications (2)

Publication Number Publication Date
CN103946819A CN103946819A (zh) 2014-07-23
CN103946819B true CN103946819B (zh) 2017-05-17

Family

ID=47996201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180075090.5A Active CN103946819B (zh) 2011-09-30 2011-09-30 用于非易失性系统存储器的统计耗损均衡

Country Status (5)

Country Link
US (1) US9298606B2 (zh)
EP (1) EP2761471B1 (zh)
CN (1) CN103946819B (zh)
TW (2) TWI518503B (zh)
WO (1) WO2013048470A1 (zh)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013048385A1 (en) 2011-09-28 2013-04-04 Intel Corporation Maximum-likelihood decoder in a memory controller for synchronization
CN103946813B (zh) 2011-09-30 2017-08-25 英特尔公司 基于使用统计量追踪的远存储器访问信号的生成
CN107608910B (zh) 2011-09-30 2021-07-02 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
US9378133B2 (en) 2011-09-30 2016-06-28 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
US9317429B2 (en) 2011-09-30 2016-04-19 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
WO2013048491A1 (en) 2011-09-30 2013-04-04 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
WO2013048493A1 (en) 2011-09-30 2013-04-04 Intel Corporation Memory channel that supports near memory and far memory access
EP3346386B1 (en) 2011-09-30 2020-01-22 Intel Corporation Non-volatile random access memory (nvram) as a replacement for traditional mass storage
CN103946824B (zh) 2011-11-22 2016-08-24 英特尔公司 一种用于非易失性随机访问存储器的访问控制方法、装置及系统
WO2013089686A1 (en) 2011-12-13 2013-06-20 Intel Corporation A method and system for providing instant responses to sleep state transitions with non-volatile random access memory
WO2013089685A1 (en) 2011-12-13 2013-06-20 Intel Corporation Enhanced system sleep state support in servers using non-volatile random access memory
WO2013095385A1 (en) 2011-12-20 2013-06-27 Intel Corporation Apparatus and method for phase change memory drift management
CN103999067A (zh) 2011-12-21 2014-08-20 英特尔公司 以多个非易失性存储器为特征的高性能存储结构和系统
KR101572403B1 (ko) 2011-12-22 2015-11-26 인텔 코포레이션 메모리 채널 셧다운에 의한 전력 절약
WO2013095644A1 (en) 2011-12-23 2013-06-27 Intel Corporation Page miss handler including wear leveling logic
US20140189284A1 (en) * 2011-12-23 2014-07-03 Nevin Hyuseinova Sub-block based wear leveling
CN104137084B (zh) 2011-12-28 2017-08-11 英特尔公司 提高耐久性和抗攻击性的用于pcm缓存的有效动态随机化地址重映射
US9418700B2 (en) 2012-06-29 2016-08-16 Intel Corporation Bad block management mechanism
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US20150143021A1 (en) * 2012-12-26 2015-05-21 Unisys Corporation Equalizing wear on storage devices through file system controls
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
US9513815B2 (en) * 2013-12-19 2016-12-06 Macronix International Co., Ltd. Memory management based on usage specifications
CN104932833B (zh) * 2014-03-21 2018-07-31 华为技术有限公司 磨损均衡方法、装置及存储设备
US10365835B2 (en) * 2014-05-28 2019-07-30 Micron Technology, Inc. Apparatuses and methods for performing write count threshold wear leveling operations
US10437500B2 (en) 2014-10-29 2019-10-08 Hewlett Packard Enterprise Development Lp Committing altered metadata to a non-volatile storage device
US10055267B2 (en) * 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
US10204047B2 (en) 2015-03-27 2019-02-12 Intel Corporation Memory controller for multi-level system memory with coherency unit
US9952801B2 (en) * 2015-06-26 2018-04-24 Intel Corporation Accelerated address indirection table lookup for wear-leveled non-volatile memory
US10387259B2 (en) 2015-06-26 2019-08-20 Intel Corporation Instant restart in non volatile system memory computing systems with embedded programmable data checking
US10073659B2 (en) 2015-06-26 2018-09-11 Intel Corporation Power management circuit with per activity weighting and multiple throttle down thresholds
US10108549B2 (en) 2015-09-23 2018-10-23 Intel Corporation Method and apparatus for pre-fetching data in a system having a multi-level system memory
US10261901B2 (en) 2015-09-25 2019-04-16 Intel Corporation Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory
US10185501B2 (en) 2015-09-25 2019-01-22 Intel Corporation Method and apparatus for pinning memory pages in a multi-level system memory
US9792224B2 (en) 2015-10-23 2017-10-17 Intel Corporation Reducing latency by persisting data relationships in relation to corresponding data in persistent memory
US10033411B2 (en) 2015-11-20 2018-07-24 Intel Corporation Adjustable error protection for stored data
US10095618B2 (en) 2015-11-25 2018-10-09 Intel Corporation Memory card with volatile and non volatile memory space having multiple usage model configurations
GB2545409B (en) * 2015-12-10 2020-01-08 Advanced Risc Mach Ltd Wear levelling in non-volatile memories
US9747041B2 (en) 2015-12-23 2017-08-29 Intel Corporation Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device
TWI571882B (zh) * 2016-02-19 2017-02-21 群聯電子股份有限公司 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置
US10007606B2 (en) 2016-03-30 2018-06-26 Intel Corporation Implementation of reserved cache slots in computing system having inclusive/non inclusive tracking and two level system memory
US10185619B2 (en) 2016-03-31 2019-01-22 Intel Corporation Handling of error prone cache line slots of memory side cache of multi-level system memory
US10007462B1 (en) * 2016-03-31 2018-06-26 EMC IP Holding Company LLC Method and system for adaptive data migration in solid state memory
US10019198B2 (en) 2016-04-01 2018-07-10 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressable unit
US10031845B2 (en) * 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
US10120806B2 (en) 2016-06-27 2018-11-06 Intel Corporation Multi-level system memory with near memory scrubbing based on predicted far memory idle time
US10528462B2 (en) * 2016-09-26 2020-01-07 Intel Corporation Storage device having improved write uniformity stability
CN106547629B (zh) * 2016-11-03 2020-05-26 中山大学 一种状态机副本管理模型的优化方法
US10261876B2 (en) 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
EP3553665A4 (en) 2016-12-28 2020-01-29 Huawei Technologies Co., Ltd. METHOD, DEVICE AND SYSTEM FOR ACCESSING A NON-VOLATILE MEMORY
US10915453B2 (en) 2016-12-29 2021-02-09 Intel Corporation Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures
US10445261B2 (en) 2016-12-30 2019-10-15 Intel Corporation System memory having point-to-point link that transports compressed traffic
KR20180094391A (ko) * 2017-02-15 2018-08-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11074018B2 (en) * 2017-04-06 2021-07-27 International Business Machines Corporation Network asset management
KR20180125694A (ko) 2017-05-16 2018-11-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN106990926A (zh) * 2017-06-14 2017-07-28 郑州云海信息技术有限公司 一种固态硬盘磨损均衡的处理方法
US10304814B2 (en) 2017-06-30 2019-05-28 Intel Corporation I/O layout footprint for multiple 1LM/2LM configurations
US10642727B1 (en) * 2017-09-27 2020-05-05 Amazon Technologies, Inc. Managing migration events performed by a memory controller
US11188467B2 (en) 2017-09-28 2021-11-30 Intel Corporation Multi-level system memory with near memory capable of storing compressed cache lines
US10698819B2 (en) * 2017-12-14 2020-06-30 SK Hynix Inc. Memory system and operating method thereof
CN110032524B (zh) * 2017-12-14 2023-01-06 爱思开海力士有限公司 存储器系统及其操作方法
US10860244B2 (en) 2017-12-26 2020-12-08 Intel Corporation Method and apparatus for multi-level memory early page demotion
KR102398540B1 (ko) 2018-02-19 2022-05-17 에스케이하이닉스 주식회사 메모리 장치, 반도체 장치 및 반도체 시스템
US11099995B2 (en) 2018-03-28 2021-08-24 Intel Corporation Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory
US10636459B2 (en) 2018-05-30 2020-04-28 Micron Technology, Inc. Wear leveling
US10983715B2 (en) * 2018-09-19 2021-04-20 Western Digital Technologies, Inc. Expandable memory for use with solid state systems and devices
US10860219B2 (en) * 2018-10-05 2020-12-08 Micron Technology, Inc. Performing hybrid wear leveling operations based on a sub-total write counter
CN111258491B (zh) * 2018-11-30 2021-10-15 北京忆芯科技有限公司 降低读命令处理延迟的方法与装置
US11055228B2 (en) 2019-01-31 2021-07-06 Intel Corporation Caching bypass mechanism for a multi-level memory
US11144230B2 (en) * 2019-02-18 2021-10-12 International Business Machines Corporation Data copy amount reduction in data replication
EP4022614A4 (en) * 2019-08-31 2023-08-30 Cryptography Research, Inc. DIRECT ACCESS
US11244717B2 (en) * 2019-12-02 2022-02-08 Micron Technology, Inc. Write operation techniques for memory systems
US11836351B2 (en) * 2022-03-31 2023-12-05 Lenovo Global Technology (United States) Inc. Causing a storage device to switch storage tiers based on a wear level
US20230342060A1 (en) * 2022-04-26 2023-10-26 Micron Technology, Inc. Techniques for data transfer operations
CN116027988B (zh) * 2023-03-22 2023-06-23 电子科技大学 用于存储器的损耗均衡方法及其芯片控制器的控制方法
CN117632038B (zh) * 2024-01-25 2024-04-02 合肥兆芯电子有限公司 损耗平衡方法、存储器存储装置及存储器控制电路单元

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
CN1591685A (zh) * 2003-04-10 2005-03-09 株式会社瑞萨科技 存储装置
CN101030166A (zh) * 2006-03-03 2007-09-05 凌阳科技股份有限公司 非易失性存储器的平均抹除方法与装置
TW200915324A (en) * 2007-09-27 2009-04-01 Phison Electronics Corp Wear leveling method and controller using the same

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
JP4751163B2 (ja) 2005-09-29 2011-08-17 株式会社東芝 メモリシステム
TWI303828B (en) 2006-03-03 2008-12-01 Winbond Electronics Corp A method and a system for erasing a nonvolatile memory
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
CN101645309B (zh) * 2008-08-05 2013-05-22 威刚科技(苏州)有限公司 非挥发性存储装置及其控制方法
KR101662273B1 (ko) * 2009-11-27 2016-10-05 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 마모도 관리 방법
US8949506B2 (en) * 2010-07-30 2015-02-03 Apple Inc. Initiating wear leveling for a non-volatile memory
US8612804B1 (en) * 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
CN1591685A (zh) * 2003-04-10 2005-03-09 株式会社瑞萨科技 存储装置
CN101030166A (zh) * 2006-03-03 2007-09-05 凌阳科技股份有限公司 非易失性存储器的平均抹除方法与装置
TW200915324A (en) * 2007-09-27 2009-04-01 Phison Electronics Corp Wear leveling method and controller using the same

Also Published As

Publication number Publication date
US9298606B2 (en) 2016-03-29
TWI518503B (zh) 2016-01-21
TWI578157B (zh) 2017-04-11
US20130282967A1 (en) 2013-10-24
WO2013048470A1 (en) 2013-04-04
EP2761471B1 (en) 2017-10-25
CN103946819A (zh) 2014-07-23
EP2761471A1 (en) 2014-08-06
TW201627865A (zh) 2016-08-01
EP2761471A4 (en) 2015-05-27
TW201324147A (zh) 2013-06-16

Similar Documents

Publication Publication Date Title
CN103946819B (zh) 用于非易失性系统存储器的统计耗损均衡
US20230244576A1 (en) High performance persistent memory
US20170286311A1 (en) Repetitive address indirection in a memory
US10229047B2 (en) Apparatus and method of wear leveling for storage class memory using cache filtering
Zilberberg et al. Phase-change memory: An architectural perspective
Xia et al. A survey of phase change memory systems
CN114072774A (zh) 数据存储系统中的块模式切换
JP2006236304A (ja) 記憶装置および情報処理システム
TW201324154A (zh) 記憶體儲存系統及其中控裝置、管理方法與斷電復原方法
JP2005115910A (ja) シリアルフラッシュメモリにおけるxipのための優先順位に基づくフラッシュメモリ制御装置及びこれを用いたメモリ管理方法、これによるフラッシュメモリチップ
TWI473100B (zh) Flash memory system and its operation method
US10754785B2 (en) Checkpointing for DRAM-less SSD
US10248333B1 (en) Write distribution techniques for two-terminal memory wear leveling
JP7353934B2 (ja) メモリシステムおよび制御方法
Sun et al. A high performance and energy-efficient cold data eviction algorithm for 3D-TSV hybrid ReRAM/MLC NAND SSD
CN101923518A (zh) 存储器系统、操作方法和数据加载的方法
US10606484B2 (en) NAND flash storage device with NAND buffer
CN113924546A (zh) 非易失性存储器中的磨损感知块模式转换
TWI792892B (zh) 鏡像資料至非揮發性記憶體之控制器之寫入快取中
JP5338859B2 (ja) 記憶装置および情報処理システム
Yoon et al. Self-adaptive filtering algorithm with PCM-based memory storage system
CN108877862B (zh) 页条带的数据组织以及向页条带写入数据的方法与装置
TWI726381B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
Luo et al. Accurate age counter for wear leveling on non-volatile based main memory
TWI724550B (zh) 資料儲存裝置以及非揮發式記憶體控制方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant