CN104756088B - 用于非易失性存储器的灵活磨损管理 - Google Patents
用于非易失性存储器的灵活磨损管理 Download PDFInfo
- Publication number
- CN104756088B CN104756088B CN201380054985.XA CN201380054985A CN104756088B CN 104756088 B CN104756088 B CN 104756088B CN 201380054985 A CN201380054985 A CN 201380054985A CN 104756088 B CN104756088 B CN 104756088B
- Authority
- CN
- China
- Prior art keywords
- memory address
- physical memory
- specified threshold
- address
- cycle time
- 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
Links
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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)
Abstract
存储器单元磨损管理的系统和方法能够实现跨存储器单元地址空间的写周期的更均匀分布。系统和方法允许将经受大量写周期的存储器单元的物理地址与经受较少量写周期的存储器单元的物理地址交换。如果存储器单元群组的写周期计数超过指定阈值,则该存储器单元群组的物理地址是“热地址”。如果存储器单元群组的写周期计数未超过指定阈值,则该存储器单元群组的物理地址是“冷地址”。系统和方法允许动态增大写周期计数的指定阈值以确保冷地址可用于与存储器单元地址空间中的热地址交换。
Description
背景技术
计算机化装置能够包括用于存储在计算机化装置断电后能够存活的信息的非易失性存储媒体。此类计算机化装置能够是智能电话、平板或膝上型计算机,并且能够包括至少一个处理器和固态磁盘(SSD)。SSD为计算机化装置提供非易失性存储装置,并且处理器能够采用SSD为计算机化装置的用户存储数字信息(例如,数据,计算机可执行指令,应用)。由于数字信息存储在SSD的非易失性存储装置中,因此,即使计算机化装置的电源丢失,数字信息也能够留存在计算机化装置中。在计算机化装置的电源恢复后,处理器能够从SSD检索数字信息。
SSD一般包括在存储器单元的阵列中存储数字信息的非易失性存储媒体(例如,NAND闪存存储器、NOR闪存存储器)。此类存储器单元能够具有数万或数十万或甚至高达1百万或数百万个写周期(例如,擦除/写入操作的周期)的有限耐受性。如果非易失性存储媒体中的任何存储器单元经受超过其耐受性能力的多个写周期,则那些存储器单元可用坏,并且最终失去其功能性。例如,存储器单元可丢失数据,或者可失去其存储数据的能力。为努力确保在采用存储器单元的计算机化装置的预期寿命内无存储器单元变得用坏,计算机化装置可采用诸如“磨损均衡”的磨损管理技术,该技术一般设计成实现跨存储器单元的地址空间的擦除/写入操作的均匀分布。这样,能够降低由于存储器单元地址空间内写周期的高度集中而引起的存储器单元的过早失效。
附图说明
结合在本说明书中并构成其一部分的附图示出本文中描述的一个或多个实施例,并与描述一起解释这些实施例。在图中:
图1示出根据本申请能够配置成实现存储器单元磨损管理的计算机系统的框图;
图2示出能够包括在图1的计算机系统内的非易失性存储媒体中的元数据的图;
图3示出能够在图1的计算机系统中采用的存储器单元磨损管理的方法的流程图;
图4示出一个代表性均匀工作负载和两个代表性非均匀工作负载的跨存储器单元地址空间的写周期的示范分布图;
图5示出能够配置成实现存储器单元磨损管理的固态磁盘(SSD)的框图;以及
图6示出能够配置成实现存储器单元磨损管理的二级存储器(2LM)的框图。
具体实施方式
下面的详细描述参照附图。不同附图中的相同标号可识别相同或类似的元素。此外,以下的详细描述不限制本发明。
公开了能够在计算机化装置中采用以实现跨存储器单元地址空间的写周期的更均匀分布的存储器单元磨损管理的系统和方法。公开的系统和方法允许将已经受大量写周期(例如,擦除/写入操作的周期)的存储器单元的物理地址与已经受较少量写周期的存储器单元的物理地址互换或“交换”。如果存储器单元群组的写周期的数量(在本文中也称为“写周期计数”)超过指定阈值,则该存储器单元群组的物理地址在本文中称为“热地址”。如果存储器单元群组的写周期计数未超过指定阈值,则该存储器单元群组的物理地址在本文中称为“冷地址”。
一方面,如果基于写周期计数的指定阈值,将确定为存储器单元地址空间中的热地址的物理地址与存储器单元地址空间中从冷地址转变成热地址的另一物理地址交换,则公开的系统和方法允许“取消交换”该物理地址对,即,允许相应物理地址恢复到交换前的它们的存储器指派。另一方面,公开的系统和方法允许响应于预确定的事件,动态增大写周期计数的指定阈值以确保一个或更多个冷地址将可用于与确定为存储器单元地址空间中的热地址的物理地址交换。
又一方面,在要写入的存储器单元群组的物理地址被确定为热地址时,公开的系统和方法能够随机生成另一物理地址,并且如果确定该新物理地址是冷地址,则公开的系统和方法能够允许将该热地址与随机生成的冷地址交换。否则,如果随机生成冷地址的预确定百分比的尝试不成功,即,随机生成冷地址的每个此类尝试导致生成另一热地址,则公开的系统和方法能够将写周期计数的指定阈值动态增大预确定的量,由此增大存储器单元地址空间中可确定为冷地址的物理地址的数量。例如,如果随机生成冷地址的95%的此类尝试不成功,则能够假设存储器单元地址空间中大部分物理地址是热地址,并且因此能够增大写周期计数的指定阈值以增大可随后确定为冷地址的物理地址的数量。
采用诸如磨损均衡的常规磨损管理技术的非易失性存储媒体的一个缺陷是跨存储器单元地址空间的擦除/写入操作的期望均匀分布可能不是始终可实现的。对于非均匀工作负载,情况可尤其是如此,其中可以高概率写入存储器单元地址空间的一部分,而可以更低概率写入存储器单元地址空间的另一部分。另外,磨损均衡可能不是在采用“在适当位置写入(write-in-place)”数据处理技术的非易失性存储媒体中使用的最有利的磨损管理技术,“在适当位置写入”技术允许修改从特定存储器单元地址访问的数据,并且然后将其放回相同存储器单元位置。
通过提供允许将确定为存储器单元地址空间中的热地址的物理地址与确定为存储器单元地址空间中的冷地址的其它物理地址交换的存储器单元磨损管理的系统和方法,基于写周期计数的动态增大阈值,可实现跨存储器单元地址空间的写周期的更均匀分布。另外,通过允许取消交换存储器单元地址空间中以前交换的物理地址对(如果该物理地址对均变成热地址),可降低存储器单元地址空间中交换的物理地址的百分比,由此通过采用“在适当位置写入”数据处理技术的非易失性存储媒体,使公开的系统和方法更有利于使用。例如,在相应对中的物理地址均变成热地址时,以前交换的物理地址对的此类取消交换可确保存储器单元地址空间中不超过大约20%的物理地址在特定时间处于交换状态。
图1示出根据本申请能够配置成在易失性或非易失性存储器中实现存储器单元磨损管理的计算机系统100。如图1所示,计算机系统100包括至少一个处理器102、至少一个存储器104和诸如固态磁盘(SSD)的非易失性存储媒体106。处理器102操作以执行在诸如存储器104或任何其它适合的存储媒体的至少一个非暂时性存储媒体上存储的指令以便执行计算机系统100的各种过程,过程包括用于控制存储器104和/或非易失性存储媒体106的操作的一个或更多个过程。存储器104能够包括诸如易失性存储器112的可实现为动态随机存取存储器(DRAM)或任何其它适合的易失性存储器的一个或更多个存储器组件。要注意的是,在计算机系统100断电后,可丢失在易失性存储器112中存储的数字信息(例如,数据、计算机可执行指令、应用)。存储器104也能够配置成存储可由处理器102执行的操作系统108和可由操作系统108运行的一个或更多个应用110。响应于应用110之一生成的请求,处理器102能够执行操作系统108以在易失性存储器112和/或非易失性存储媒体106上执行数据擦除/写入/读取操作。非易失性存储媒体106配置成包括能够存储数字信息的非易失性存储器,即使计算机系统100电源丢失,数字信息仍能够留存。例如,非易失性存储器可实现为每存储器单元使用单比特的NAND或NOR闪存存储器、例如具有每单元两比特的NAND闪存存储器的多级单元(MLC)存储器、聚合物存储器、相变存储器(PCM)、使用相变存储器和开关(PCMS)技术的堆叠PCM单元阵列、基于纳米线的电荷捕获型存储器、铁电晶体管随机存取存储器(FeTRAM)、3维交叉点存储器或任何其它适合的非易失性存储器。在计算机系统100的电源恢复后,处理器102能够从非易失性存储媒体106的非易失性存储器检索数字信息。
要注意的是,图1示出计算机系统100的示范实施例,并且计算机系统100的其它实施例可包括比图1所示设备组件更多的设备组件或更少的设备组件。此外,设备组件可以与如图1所示不同地布置。例如,在一些实施例中,非易失性存储媒体106可位于经因特网或任何其它适合的网络计算机系统100可访问的远程站点。另外,计算机系统100的其它实施例中包含的各种设备组件执行的功能可以与如本文中所述不同地分布在相应组件中。
在一些实施例中,写入非易失性存储媒体106的非易失性存储器和/或从中读取的数据可成块构建。此外,表示数字信息的比特(例如,1或0)可存储在存储器单元的非易失性存储媒体106的非易失性存储器中,其又可组织成页或非易失性存储器的任何其它适合的部分或组块。例如,页的大小可以是2048字节或任何其它适合数量的字节。要在指定页上执行数据擦除/写入操作时,可先将该页放置到擦除块中,擦除块能够包含诸如64页的多页或任何其它适合数量的页。此外,在擦除块中页上存储的任何数据可暂时存储在易失性存储器112中,并且整个擦除块然后可被擦除,导致擦除块中的所有页变成空白页。接着,可将新数据写入指定页,并且可将易失性存储器112中暂时储的数据重新写入擦除块中的剩余页,由此完成在非易失性存储媒体106的非易失性存储器中的单个写周期(例如,擦除/写入操作的单个周期)。
图2示出能够在非易失性存储媒体106的非易失性存储器中存储的元数据信息114的表200。例如,元数据信息114可对应于用于在非易失性存储器的至少一个擦除块中多页或存储器的任何其它适合部分或组块的元数据。在一些实施例中,此类页元数据可存储在易失性存储器112中。如图2所示,表200包括将相应页的物理地址编索引的物理地址索引202。在本文中采用时,术语“索引”表示指向能够擦除/写入数据的非易失性存储器中特定页的物理地址的指针。
表200还包括用于存储页元数据的字段204,字段204又包括逻辑地址字段206和写周期计数字段208。逻辑地址字段208包括处理器102在位于非易失性存储媒体106的非易失性存储器的对应物理地址的页上执行数据擦除/写入/读取操作时能够引用的逻辑地址(例如,逻辑地址1、3、4、2)。逻辑地址字段208中的逻辑地址和由物理地址索引202编索引的物理地址提供逻辑到物理(L2P)间接表,处理器102能够使用该表将逻辑地址映射到相应页的物理地址。写周期计数字段210包括表示在非易失性存储器的那些物理地址相应页已经受的写周期的数量的值。例如,写周期计数字段210中的值范围可从0到数万或数十万个写周期,或者在一些实施例中高达1百万或数百万个写周期。如果特定页的写周期计数超过指定阈值,例如,250万个写周期或任何其它适合数量的写周期,则该页的物理地址在本文中称为“热地址”。如果特定页的写周期计数未超过指定阈值,则该页的物理地址在本文中称为“冷地址”。
另外,表200示出四个相应数据条目212(1)、212(2)、212(3)、212(4),它们能够在非易失性存储媒体106的非易失性存储器中分别占用四个相应页1、2、3、4。四个数据条目212(1)、212(2)、212(3)、212(4)分别由物理地址索引202的四个物理地址索引1、2、3、4编索引。要注意的是,为便于说明而在本文中阐述表200中所示的数据条目的数量,并且可采用任何其它适合数量的数据条目。具体而言,占用第1页的数据条目212(1)由物理地址索引1编索引,占用第2页的数据条目212(2)由物理地址索引2编索引,占用第3页的数据条目212(3)由物理地址索引3编索引,以及占用第4页的数据条目212(4)由物理地址索引4编索引。通过使用由表200提供的L2P间接表,处理器102能够在执行涉及数据条目212(1)的数据擦除/写入操作时将逻辑地址字段208中的逻辑地址1映射到由物理地址索引1编索引的物理地址。类似地,处理器102能够在执行涉及数据条目212(2)的数据擦除/写入操作时将逻辑地址字段208中的逻辑地址3映射到由物理地址索引2编索引的物理地址;能够在执行涉及数据条目212(3)的数据擦除/写入操作时将逻辑地址字段208中的逻辑地址4映射到由物理地址索引3编索引的物理地址;以及能够在执行涉及数据条目212(4)的数据擦除/写入操作时将逻辑地址字段208中的逻辑地址2映射到由物理地址索引4编索引的物理地址。
下面参照图3所示的流程图,进一步描述存储器单元磨损管理的公开的系统和方法。在计算机系统100内,此类存储器单元磨损管理能够由执行在存储器104上存储的指令的处理器102执行,以便启动存储器单元磨损管理过程,并且随后控制存储器104和/或非易失性存储媒体106的操作。如在框302中所示,处理器102先将写周期计数的指定阈值初始化为250万个写周期或任何其它适合数量的写周期。然后,如框304中所示,在非易失性存储媒体106的非易失性存储器中具有物理地址“A1”的页或存储器的任何其它适合部分或组块上,处理器102尝试执行数据擦除/写入操作。在物理地址A1开始的页上实际执行数据擦除/写入操作前,如在框305中所示,处理器102检查页元数据的写周期计数字段,以确定在物理地址A1该页已经受的写周期的数量。
如在框306中所示,处理器102确定用于在物理地址A1开始的页的写周期计数是否超过250万个写周期的指定阈值。如果确定用于在物理地址A1的页的写周期计数超过指定阈值,则认为物理地址A1是热地址。如框308中所示,处理器102因此将认为是热地址的物理地址A1与非易失性存储媒体106的非易失性存储器中另一页的物理地址“A2”交换。例如,物理地址A2可以由处理器102随机生成,或以其它方式生成、指定、指明、识别或以任何其它适合方式提供。此外,如在L2P间接表中指定的,可交换物理地址A1和A2,同时保持用于相应物理地址的相同逻辑地址。如在框308中进一步所示,处理器102检查页元数据的写周期计数字段以确定在物理地址A2该另一页已经受的写周期的数量。如在框309中所示,处理器102确定用于在物理地址A2开始的页的写周期计数是否超过250万个写周期的指定阈值。如果确定用于在物理地址A2的页的写周期计数超过指定阈值,则认为物理地址A2也是热地址,并且过程环回到框304。否则,认为物理地址A2是冷地址,并且处理器102在物理地址A2开始的页上执行数据擦除/写入操作,并且增大用于在物理地址A2的页的写周期计数,如在框310中所示。
如在框312中所示,通过检查页元数据的写周期计数字段,处理器102确定用于在物理地址A2开始的页的写周期计数是否超过250万个写周期的指定阈值。如果确定用于在物理地址A2的页的写周期计数超过指定阈值,则认为物理地址A2现在是热地址。如在框314中所示,处理器102因此取消交换物理地址A1和A2,并且过程环回到框304。否则,如果确定用于在物理地址A2的页的写周期计数未超过指定阈值,即仍认为物理地址A2是冷地址,则过程环回到框304而不取消交换物理地址A1和A2。
在框306,如果确定用于在物理地址A1开始的页的写周期计数未超过250万个写周期的指定阈值,则认为物理地址A1是冷地址。如在框316中所示,处理器102因此在物理地址A1的页上执行要求的数据擦除/写入操作,并且增大用于在物理地址A1的页的写周期计数。如在框318中所示,通过检查页元数据的写周期计数字段,处理器102确定用于在物理地址A1的页的写周期计数是否超过指定阈值。如果确定用于在物理地址A1的页的写周期计数未超过指定阈值,即仍认为物理地址A1是冷地址,则过程环回到框304。
否则,如果确定用于在物理地址A1开始的页的写周期计数超过250万个写周期的指定阈值,则认为物理地址A1现在是热地址。如在框320中所示,处理器102因此随机生成另一物理地址“A3”,并且如在框322中所示,通过检查页元数据的写周期计数字段,确定用于在物理地址A3开始的页的写周期计数是否超过指定阈值。如果确定用于在物理地址A3的页的写周期计数未超过指定阈值,即,确定物理地址A3为冷地址,则如在框324中所示,处理器102确定是否以前已将物理地址A3与另一物理地址交换。例如,通过检查L2P间接表,处理器能够确定是否以前已将物理地址A3与另一物理地址交换。如果确定以前未将物理地址A3与另一物理地址交换,则如框326中所示,处理器102交换物理地址A1与物理地址A3,并且过程环回到框304。否则,如在框332中所示,处理器102先取消交换物理地址A3和以前已与它交换的另一物理地址,并且将物理地址A1与物理地址A3交换。过程然后环回到框304。
在框322,如果确定用于在物理地址A3开始的页的写周期计数超过指定250万个写周期的指定阈值,则认为随机生成冷地址的处理器102的尝试未成功。如在框327中所示,处理器102因此增大在本文中称为“冷地址未命中计数器”的计数器,并且如在框328中所示,确定冷地址未命中计数器的值是否超过95的指定值或任何其它适合的计数器值。如果确定冷地址未命中计数器的值超过95的指定值,则处理器102将写周期计数的指定阈值增大任何适合的量,如100000,并且将冷地址未命中计数器重置为0,如在框330中所示。过程然后环回到框304。否则,如果确定冷地址未命中计数器的值未超过95的指定值,则过程环回到框304而不增大指定阈值或者重置冷地址未命中计数器。这样,如果认为随机生成冷地址的预确定百分比(例如,95%)的尝试不成功,即,随机生成冷地址的每个尝试导致生成另一热地址,则处理器102能够将写周期计数的指定阈值动态增大预确定的量(例如,100000),由此增大非易失性存储媒体106的非易失性存储器中随后可由处理器102确定为冷地址的物理地址的数量。
通过允许取消交换以前交换的物理地址对A1、A2(如果该物理地址对A1、A2均变成热地址),如在框314中所示,可降低存储器单元地址空间中交换的物理地址的百分比,由此通过采用“在适当位置写入”数据处理技术的非易失性存储媒体,使公开的系统和方法更有利于使用。如在框332中所示,通过允许处于交换状态的物理地址A3在与物理地址A1交换前取消交换,可进一步降低存储器地址空间中交换的物理地址的百分比。另外,如在框308中所示,通过允许物理地址A1与物理地址A2交换,并且如在框326和332中所示,通过进一步允许物理地址A1与物理地址A3交换,基于写周期计数的动态增大阈值,可实现跨存储器单元地址空间的写周期的更均匀分布。
图4示出一个代表性均匀工作负载和两个代表性非均匀工作负载的跨存储器单元地址空间的写周期的示范分布图。在代表性均匀工作负载中,假设能够以均匀概率随机擦除/写入存储器单元地址空间中的任何物理地址。两个代表性非均匀工作负载包括(1)第一非均匀工作负载,其中,假设90%的数据擦除/写入操作在大约6%的存储器单元地址空间上均匀分布,并且10%的数据擦除/写入操作在大约94%的存储器单元地址空间上均匀分布,以及(2)第二非均匀工作负载,其中假设100%的数据擦除/写入操作在大约6%的存储器单元地址空间上均匀分布,并且在剩余存储器单元地址空间上未执行数据擦除/写入操作。
对于代表性均匀/非均匀工作负载中的每个,图4示出写周期计数的数量(“写计数”)对存储器单元地址空间中物理地址的百分比(“地址百分比”)的示范曲线。用于代表性均匀工作负载的曲线401对应于采用写周期计数的动态增大阈值的公开的存储器单元磨损管理过程。类似地,用于相应第一和第二代表性非均匀工作负载的曲线402.1、403.1对应于采用写周期计数的动态增大阈值的公开的存储器单元磨损管理过程。用于相应第一和第二代表性非均匀工作负载的曲线402.2、403.2对应于采用写周期计数的恒定阈值的存储器单元磨损管理过程。
如图4所示,对应于代表性均匀工作负载的曲线401显示:使用具有写周期计数的动态增大阈值的公开的存储器单元磨损管理过程,可实现跨存储器单元地址空间的写周期的一般均匀分布。此外,用于第一代表性非均匀工作负载的曲线402.1、402.2的比较显示:使用具有写周期计数的动态增大阈值的公开的存储器单元磨损管理过程,可实现写周期的更均匀分布。类似地,对应于第二代表性非均匀工作负载的曲线403.1、403.2的比较显示:使用具有写周期计数的动态增大阈值的公开的存储器单元磨损管理过程,可实现写周期的更均匀分布。
在描述存储器单元磨损管理的公开的系统和方法的上述示范实施例后,可做出其它备选实施例或变化。例如,本文中描述了基于写周期计数的指定阈值,能够将存储器单元地址空间中确定为热地址的物理地址与存储器单元地址空间中确定为冷地址的另一物理地址交换。本文中也描述了如果将认为是热地址的物理地址与随后从冷地址转变成热地址的另一物理地址交换,则能够取消交换该物理地址对。在一些实施例中,公开的系统和方法也能够允许将认为是冷地址的物理地址与认为是热地址的另一物理地址交换。
另外,存储器单元地址空间中物理地址的交换能够基于写周期计数的多于一个指定阈值。例如,除本文中所述写周期计数的指定阈值外,还可指定与写周期计数的更低数量有关的写周期计数的第二阈值。此外,如果存储器单元群组的写周期计数超过对应于写周期计数的更低数量的第二指定阈值但小于对应于写周期计数的更高数量的指定阈值,则该存储器单元群组的物理地址能够称为“暖地址”。因此,存储器单元地址空间中物理地址的交换能够基于相应物理地址被确定为是热地址、暖地址还是冷地址。要注意的是,热地址向冷地址、冷地址向热地址、暖地址向冷地址、冷地址向暖地址、热地址向暖地址和/或暖地址向热地址的此类交换能够以各种组合和/或排列执行,以实现跨存储器单元地址空间的写周期的更均匀分布,特别是在非均匀工作负载的情况下。
本文中也描述了公开的系统和方法允许将已经受大量写周期的存储器单元的物理地址与已经受较少量写周期的存储器单元的物理地址交换。在一些实施例中,能够将已经受大量读周期的存储器单元的物理地址与已经受较少量读周期的存储器单元的物理地址交换。在此情况下,如果存储器单元群组的读周期的数量(在本文中也称为“读周期计数”)超过指定阈值,则该存储器单元群组的物理地址可称为“热地址”。此外,如果存储器单元群组的读周期计数未超过指定阈值,则该存储器单元群组的物理地址可称为“冷地址”。基于读周期计数的多于一个指定阈值,存储器单元群组的物理地址也可称为“暖地址”。
本文中也描述了处理器102能够使用L2P间接表将逻辑地址映射到物理地址。在一些实施例中,L2P间接表可存储在计算机系统100内的中心位置中,如在易失性存储器112中。要注意的是,如果计算机系统100断电,则可失去在易失性存储器112中存储的与L2P间接表有关的信息。在其它实施例中,L2P间接表可存储在非易失性存储媒体106中。在还有的其它实施例中,L2P间接表的元素可分布在计算机系统100的各种组件的一个或更多个组件内和/或在其之间。
本文中也描述了计算机系统100包括处理器102、存储器104和能够实现为固态磁盘(SSD)的非易失性存储媒体106。图5示出包括SSD 502的计算系统或装置500。如图5所示,计算系统或装置500还包括系统总线504和连接到系统总线504的易失性存储器506。SSD502包括控制器510和分别通过多个信道0到n连接到控制器510的多个非易失性存储器0到n。控制器510可通过总线接口508连接到系统总线504。在SSD 502内,控制器510能够配置成执行存储器单元磨损管理的公开的方法以便实现跨由一个或更多个非易失性存储器0到n定义的存储器单元地址空间的写周期的更均匀分布。
图6示出包括二级存储器(2LM) 602的计算系统或装置600,二级存储器602又包括近(易失性)存储器608和远(非易失性)存储器610。如图6所示,计算系统或装置600还包括处理器604和远存储器控制器(FMC) 606。处理器604包括2LM引擎612和近存储器控制器(NMC) 614。NMC 614管理能够充当远(非易失性)存储器610的高速缓存的近(易失性)存储器608的操作。例如,近(易失性)存储器608可实现为动态随机存取存储器(DRAM)或任何其它适合的易失性存储器。FMC 606管理远(非易失性)存储器610的操作,远存储器610可实现为闪存存储器或任何其它适合的非易失性存储器。在计算系统或装置600内,2LM引擎612能够配置成支持2LM 602的操作,包括用于执行存储器单元磨损管理的公开的方法的操作以便实现跨由远(非易失性)存储器610定义的存储器单元地址空间的写周期的更均匀分布。
示范实施例的以上描述提供用于说明,并且无意详尽或者限制本申请为明确的公开形式。鉴于本文中的教导,修改和变化是可能的,或者可从要求保护的本发明的实践中获得。例如,虽然本文中已参照图3描述了一系列操作,但在其它实现中可修改操作的顺序。此外,非相关操作可并行执行。
另外,除非另有说明,否则,术语“用户”在本文中采用时要从广义上理解为例如包括计算装置(例如,固定计算装置、移动计算装置)或计算装置的用户。
将显而易见的是,本文中所述一个或更多个实施例可以软件和/或硬件的许多不同形式实现。用于实现本文中所述实施例的软件代码和/或专用硬件不限制要求保护的本发明。因此,实施例的操作和行为在本文中未参照特定的软件代码和/或专用硬件描述,理解的是,本领域的技术人员将能够基于本文中的描述来设计软件和/或硬件以实现实施例。
此外,要求保护的本发明的某些特征可使用可由诸如处理器102的处理器或处理逻辑执行的计算机可执行指令实现。计算机可执行指令可存储在一个或更多个非暂时性有形计算机可读存储媒体上,其可以是易失性或非易失性的,并且可包括但不限于DRAM、静态随机存取存储器(SRAM)、闪存存储器、可移式磁盘和/或非可移式磁盘。
除非有明确描述,否则,本文中采用的元素、操作或指令不应视为对本申请是关键或必要的。此外,在本文中采用时,冠词“一”旨在包括一个或多个项目。在只表示一个项目时,采用术语“一个”或类似的语言。此外,除非另有说明,否则,短语“基于”旨在表示“至少部分基于”。
因此,意图是本发明不限于本文中公开的特定实施例,而是,本发明将包括落在随附权利要求范围内的任何和所有特定实施例和等同物。
Claims (20)
1.一种在计算机系统中执行存储器单元磨损管理的方法,包括:
跟踪第一存储器部分已经受的写周期的第一数量,所述第一存储器部分具有第一物理存储器地址;
响应于用于所述第一存储器部分的写周期的所述第一数量已超过第一指定阈值,将所述第一物理存储器地址与第二物理存储器地址交换,所述第二物理存储器地址对应于已经受低于所述第一指定阈值的第二数量的写周期的第二存储器部分;
在具有所述第二物理存储器地址的所述第二存储器部分上执行数据写入操作;以及
响应于预确定的事件,将所述第一指定阈值增大预确定的量。
2.如权利要求1所述的方法,还包括:
随机生成所述第二物理存储器地址。
3.如权利要求2所述的方法,其中所述第二物理存储器地址的所述随机生成包括随机生成一个或更多个物理存储器地址,直至生成对应于已经受低于所述第一指定阈值的所述数量的写周期的所述第二存储器部分的所述第二物理存储器地址。
4.如权利要求3所述的方法,其中所述预确定的事件对应于随机生成超过指定数量的物理存储器地址,并且其中所述第一指定阈值的所述增大包括如果已随机生成超过所述指定数量的物理存储器地址,则将所述第一指定阈值增大所述预确定的量。
5.如权利要求1所述的方法,还包括:
确定具有所述第二物理存储器地址的所述第二存储器部分已经受超过所述第一指定阈值的写周期的第三数量;以及
取消交换所述第一物理存储器地址和所述第二物理存储器地址。
6.如权利要求1所述的方法,还包括:
确定以前已将所述第二物理存储器地址与另一物理存储器地址交换;以及
在所述第一物理存储器地址与所述第二物理存储器地址的所述交换前,取消交换所述第二物理存储器地址和所述另一物理存储器地址。
7.如权利要求1所述的方法,还包括:
确定具有所述第一物理存储器地址的所述第一存储器部分已经受超过第二指定阈值的写周期的第三数量。
8.如权利要求7所述的方法,还包括:
确定所述第二存储器部分已经受低于所述第一指定阈值和所述第二指定阈值之一或两者的所述第二数量的写周期。
9.如权利要求8所述的方法,其中将所述第一指定阈值增大所述预确定的量包括将所述第一指定阈值和所述第二指定阈值之一或两者增大所述预确定的量。
10.一种在计算机系统中执行存储器单元磨损管理的设备,包括:
跟踪第一存储器部分已经受的写周期的第一数量的部件,所述第一存储器部分具有第一物理存储器地址;
响应于用于所述第一存储器部分的写周期的所述第一数量已超过第一指定阈值,将所述第一物理存储器地址与第二物理存储器地址交换的部件,所述第二物理存储器地址对应于已经受低于所述第一指定阈值的第二数量的写周期的第二存储器部分;
在具有所述第二物理存储器地址的所述第二存储器部分上执行数据写入操作的部件;以及
响应于预确定的事件,将所述第一指定阈值增大预确定的量的部件。
11.一种用于执行存储器单元磨损管理的设备,包括:
至少一个非易失性存储器,至少包括具有第一物理存储器地址的第一存储器部分和具有第二物理存储器地址的第二存储器部分;以及
至少一个控制器,操作以:
跟踪所述第一存储器部分已经受的写周期的第一数量;
响应于用于所述第一存储器部分的写周期的所述第一数量已超过第一指定阈值,在所述第二存储器部分上执行数据写入操作前将所述第一物理存储器地址与所述第二物理存储器地址交换,所述第二存储器部分已经受低于所述第一指定阈值的第二数量的写周期;以及
响应于预确定的事件,将所述指定阈值增大预确定的量。
12.如权利要求11所述的设备,其中所述至少一个控制器还操作以随机生成所述第二物理存储器地址。
13.如权利要求12所述的设备,其中所述至少一个控制器还操作以随机生成一个或更多个物理存储器地址,直至生成对应于已经受低于所述指定阈值的所述数量的写周期的所述第二存储器部分的所述第二物理存储器地址。
14.如权利要求13所述的设备,其中所述预确定的事件对应于随机生成超过指定数量的物理存储器地址,并且其中所述至少一个控制器还操作以如果已随机生成超过所述指定数量的物理存储器地址,则将所述指定阈值增大所述预确定的量。
15.如权利要求11所述的设备,其中所述至少一个控制器还操作以:
确定具有所述第二物理存储器地址的所述第二存储器部分已经受超过所述指定阈值的写周期的第三数量;以及
取消交换所述第一物理存储器地址和所述第二物理存储器地址。
16.一种计算机系统,包括:
系统总线;
耦合到所述系统总线的如权利要求11所述的设备;以及
耦合到所述系统总线的易失性存储器。
17.一种在计算机系统中执行存储器单元磨损管理的方法,包括:
跟踪第一存储器部分已经受的写周期的第一数量和读周期的第一数量之一或两者,所述第一存储器部分具有第一物理存储器地址;
响应于用于所述第一存储器部分的写周期的所述第一数量和读周期的所述第一数量之一或两者已超过第一指定阈值,将所述第一物理存储器地址与第二物理存储器地址交换,所述第二物理存储器地址对应于已经受低于所述第一指定阈值的第二数量的写周期和第二数量的读周期之一或两者的第二存储器部分;
在具有所述第二物理存储器地址的所述第二存储器部分上执行数据写入操作;以及
响应于预确定的事件,将所述指定阈值增大预确定的量。
18.如权利要求17所述的方法,还包括:
随机生成所述第二物理存储器地址。
19.如权利要求18所述的方法,其中所述第二物理存储器地址的所述随机生成包括随机生成一个或更多个物理存储器地址,直至生成对应于已经受低于所述指定阈值的所述数量的读周期的所述第二存储器部分的所述第二物理存储器地址。
20.如权利要求19所述的方法,其中所述预确定的事件对应于随机生成超过指定数量的物理存储器地址,并且其中所述指定阈值的所述增大包括如果已随机生成超过所述指定数量的物理存储器地址,则将所述指定阈值增大所述预确定的量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/682,885 US9032137B2 (en) | 2012-11-21 | 2012-11-21 | Flexible wear management for non-volatile memory |
US13/682885 | 2012-11-21 | ||
PCT/US2013/045616 WO2014081469A1 (en) | 2012-11-21 | 2013-06-13 | Flexible wear management for non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104756088A CN104756088A (zh) | 2015-07-01 |
CN104756088B true CN104756088B (zh) | 2017-08-11 |
Family
ID=50729058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380054985.XA Active CN104756088B (zh) | 2012-11-21 | 2013-06-13 | 用于非易失性存储器的灵活磨损管理 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9032137B2 (zh) |
KR (2) | KR101596652B1 (zh) |
CN (1) | CN104756088B (zh) |
WO (1) | WO2014081469A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6030485B2 (ja) * | 2013-03-21 | 2016-11-24 | 日立オートモティブシステムズ株式会社 | 電子制御装置 |
KR102142590B1 (ko) * | 2014-06-16 | 2020-08-07 | 삼성전자 주식회사 | 저항성 메모리 장치 및 저항성 메모리 장치의 동작방법 |
US9959060B1 (en) * | 2014-09-16 | 2018-05-01 | SK Hynix Inc. | Data separation during host write with storage allocated based on traffic profiles |
WO2016154079A1 (en) | 2015-03-20 | 2016-09-29 | Burlywood, LLC | Configurable multi-level error correction in a storage controller |
US9997251B2 (en) * | 2015-03-26 | 2018-06-12 | Burlywood, LLC | Medium defect management method for storage systems requiring an integrated controller |
JP6464916B2 (ja) * | 2015-05-12 | 2019-02-06 | 富士通株式会社 | メモリ装置及びメモリ装置の制御方法 |
KR20160150384A (ko) * | 2015-06-22 | 2016-12-30 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102403266B1 (ko) * | 2015-06-22 | 2022-05-27 | 삼성전자주식회사 | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
KR102615806B1 (ko) | 2016-05-25 | 2023-12-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
KR102639670B1 (ko) * | 2016-06-30 | 2024-02-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
US11556462B2 (en) | 2016-08-24 | 2023-01-17 | Futurewei Technologies, Inc. | Wear-leveling method for cross-point memory for multiple data temperature zones |
KR20180045091A (ko) | 2016-10-24 | 2018-05-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
US10970226B2 (en) | 2017-10-06 | 2021-04-06 | Silicon Motion, Inc. | Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device |
US11294743B2 (en) | 2017-10-26 | 2022-04-05 | SK Hynix Inc. | Firmware event tracking for NAND-based storage devices, and methods and instruction sets for performing the same |
KR102504368B1 (ko) * | 2017-12-22 | 2023-02-24 | 에스케이하이닉스 주식회사 | 비휘발성 메모리의 웨어 레벨링 동작을 관리하는 반도체 장치 |
KR102507646B1 (ko) * | 2018-02-01 | 2023-03-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR102583448B1 (ko) | 2018-04-10 | 2023-09-27 | 에스케이하이닉스 주식회사 | 온도 관리를 위해 주소를 제어하는 반도체 메모리 장치 |
US10877698B2 (en) * | 2018-07-05 | 2020-12-29 | SK Hynix Inc. | Semiconductor device for managing cold addresses of nonvolatile memory device |
US10592427B2 (en) * | 2018-08-02 | 2020-03-17 | Micron Technology, Inc. | Logical to physical table fragments |
US10860219B2 (en) * | 2018-10-05 | 2020-12-08 | Micron Technology, Inc. | Performing hybrid wear leveling operations based on a sub-total write counter |
US11188461B2 (en) * | 2019-06-19 | 2021-11-30 | Micron Technology, Inc. | Garbage collection adapted to memory device life expectancy |
US11183267B2 (en) | 2019-07-12 | 2021-11-23 | Micron Technology, Inc. | Recovery management of retired super management units |
US11816498B2 (en) * | 2021-01-21 | 2023-11-14 | Nutanix, Inc. | Early event-based notification for VM swapping |
US20240020016A1 (en) * | 2022-07-18 | 2024-01-18 | Micron Technology, Inc. | Metadata allocation in memory systems |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296539B2 (en) * | 2007-07-05 | 2012-10-23 | Actions Semiconductor Co., Ltd. | Method and apparatus for performing wear leveling in memory |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6985992B1 (en) | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
US7269708B2 (en) | 2004-04-20 | 2007-09-11 | Rambus Inc. | Memory controller for non-homogenous memory system |
US20060149891A1 (en) * | 2004-12-30 | 2006-07-06 | Rudelic John C | Relocated reclaim block |
EP1917577A2 (en) * | 2005-08-03 | 2008-05-07 | SanDisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
KR20100013485A (ko) * | 2008-07-31 | 2010-02-10 | 삼성전자주식회사 | 메모리 장치 및 웨어 레벨링 방법 |
US8130553B2 (en) | 2009-12-02 | 2012-03-06 | Seagate Technology Llc | Systems and methods for low wear operation of solid state memory |
-
2012
- 2012-11-21 US US13/682,885 patent/US9032137B2/en active Active
-
2013
- 2013-06-13 KR KR1020157009653A patent/KR101596652B1/ko active IP Right Grant
- 2013-06-13 WO PCT/US2013/045616 patent/WO2014081469A1/en active Application Filing
- 2013-06-13 KR KR1020167003857A patent/KR20160023922A/ko not_active Application Discontinuation
- 2013-06-13 CN CN201380054985.XA patent/CN104756088B/zh active Active
-
2015
- 2015-05-06 US US14/705,195 patent/US9501405B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296539B2 (en) * | 2007-07-05 | 2012-10-23 | Actions Semiconductor Co., Ltd. | Method and apparatus for performing wear leveling in memory |
Also Published As
Publication number | Publication date |
---|---|
CN104756088A (zh) | 2015-07-01 |
US9032137B2 (en) | 2015-05-12 |
US9501405B2 (en) | 2016-11-22 |
KR20160023922A (ko) | 2016-03-03 |
KR20150056621A (ko) | 2015-05-26 |
KR101596652B1 (ko) | 2016-02-22 |
US20150309926A1 (en) | 2015-10-29 |
US20140143474A1 (en) | 2014-05-22 |
WO2014081469A1 (en) | 2014-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104756088B (zh) | 用于非易失性存储器的灵活磨损管理 | |
US9921956B2 (en) | System and method for tracking block level mapping overhead in a non-volatile memory | |
Lee et al. | FAST: An efficient flash translation layer for flash memory | |
US10032488B1 (en) | System and method of managing data in a non-volatile memory having a staging sub-drive | |
CN104641356B (zh) | 地址映射 | |
CN105683897B (zh) | 具有陈旧数据机制的数据贮存系统及其操作方法 | |
CN107077427A (zh) | 跨电源周期来跟踪对写入命令和解除映射命令的混合 | |
CN108733510A (zh) | 数据储存装置及映射表重建方法 | |
CN107346290A (zh) | 使用并行化日志列表重放分区逻辑到物理数据地址转换表 | |
CN107003813B (zh) | 用于提高固态驱动器的读取性能的方法和装置 | |
CN109947663A (zh) | 分布式编程操作 | |
CN104731717A (zh) | 存储器装置及存储器管理方法 | |
CN110032521A (zh) | 用于增强闪存转换层映射灵活性以得到性能和寿命改进的方法和系统 | |
CN106354615A (zh) | 固态硬盘日志生成方法及其装置 | |
CN108228473A (zh) | 通过动态地传送存储器范围分配的负载平衡 | |
CN109992202A (zh) | 数据存储设备、其操作方法以及包括其的数据处理系统 | |
CN109923514A (zh) | 对数据的存储器操作 | |
CN114746834A (zh) | 基于分区状态的分区附加命令调度 | |
CN106020726B (zh) | 写入元数据的方法、设备、以及存储装置 | |
CN108920293A (zh) | 固态硬盘写失败的处理方法和固态硬盘 | |
CN109918317A (zh) | 一种基于磨损感知的nvm条间磨损均衡方法 | |
JP2013196155A (ja) | メモリシステム | |
US11269534B2 (en) | Data storage device and non-volatile memory control method | |
CN113391760B (zh) | 分区存储中的快照管理 | |
US20240143171A1 (en) | Systems, methods, and devices for using a reclaim unit based on a reference update in a storage device |
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 |