CN103455429B - 对存储器进行群组式耗损平均的方法及设备 - Google Patents
对存储器进行群组式耗损平均的方法及设备 Download PDFInfo
- Publication number
- CN103455429B CN103455429B CN201210579100.5A CN201210579100A CN103455429B CN 103455429 B CN103455429 B CN 103455429B CN 201210579100 A CN201210579100 A CN 201210579100A CN 103455429 B CN103455429 B CN 103455429B
- Authority
- CN
- China
- Prior art keywords
- page
- group
- access times
- empty
- publish
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种对存储器进行群组式耗损平均的方法及设备。该群组式耗损平均方法用于包括多个页面的存储器,包括依据多个使用次数指派使用中的页面给多个使用中的群组;该多个使用中的群组包括最低使用次数范围的低度使用中的群组,以及最高使用次数范围的高度使用中的群组;此方法包括依据多个使用次数,指派多个空页面给多个空群组;该多个空群组包括最低使用次数范围的低空群组,以及最高使用次数范围的高空群组;此方法维持多个使用中的页面的多个使用次数;对于一目前使用中的页面的一触发事件上,该方法决定一目前使用中的页面的使用次数是否超过一热交换阈值,如果是,则将目前使用中的页面中的数据移动至低空群组中的一最前页面。
Description
技术领域
本发明是有关于存储器装置技术领域,尤其是一种对包括多个页面的一存储器进行群组式耗损平均的方法及设备。
背景技术
非易失性存储器具有写入/擦除耐久性限制。在没有使用次数的存储器管理的情况下,存储器可能过早地耗损或甚至导致系统故障。供存储器管理用的耗损平均(wearleveling)是增加非易失性存储器耐久性的方法。有效耗损平均算法的实行可能消耗存储器空间,增加操作复杂性,并导致系统架空及延迟。因此,在低延迟与有效耗损平均之间达到权衡是重要的。对于非易失性存储器(例如相变材料式存储器)的写入/擦除耐久性限制可以是大约106-109,低于动态随机存取存储器(DRAM)的限制(可以是1015以上)。因此,对于使用于高耐久性环境的非易失性存储器(像正常受限于DRAM的高耐久性环境),有效的耗损平均算法可能更重要。
理想上是可提供一种有效耗损平均设计,其具有低计算复杂性及低延迟,且可以与用于存储器管理的既存虚寻址机构相容。
发明内容
本发明提供一种对包括多个页面的一存储器进行群组式耗损平均的方法及设备,以达非易失性存储器(包括相变存储器)的耗损平均。此方法包括依据多个使用次数指派多个使用中的页面给多个使用中的群组,这些群组是支持此方法的数据结构。该多个使用中的群组包括最低使用次数范围的低度使用中的群组,以及最高使用次数范围的高度使用中的群组。此方法包括依据多个使用次数指派多个空页面给多个空群组。该多个空群组包括最低使用次数范围的低空群组,以及最高使用次数范围的高空群组。此方法维持多个使用中的页面的多个使用次数。对于使用中的一特定页面的一触发事件,此方法决定特定页面的使用次数是否超过一热交换阈值,如果是,则将此特定页面中的数据移动至低空群组中的一目标页面,将此特定页面的状态从使用中的改变成空闲(free),将目标页面的状态从空闲改变成使用中,以及将现在使用中的的目标页面加至一使用中的群组。特定页面亦被加至一空群组。其他耗损平均程序可通过使用群组构造而被执行。本发明亦说明一种实施耗损平均程序的设备。
本发明的其他实施样态及优点可以从以下图式、详细说明与权利要求范围而了解。
附图说明
图1是一例示存储器管理系统的方块图。
图2A至图2B显示针对由耗损平均所招致的地址重新映像的一分页表(pagetable)中的登载项的修改。
图3显示一例示数据结构。
图4显示用以交换热页面的动态耗损平均。
图5是动态耗损平均的流程图。
图6显示用以交换冷页面的静态耗损平均。
图7是静态耗损平均的流程图。
图8是一例示计算机系统的方块图。
【主要元件符号说明】
c[q]:使用次数
F[b]:低空群组
F[h]:高空群组中的最终页面
I[b]:低度使用中的群组
p:空页面
q:使用中的页面
R:热交换阈值
TLB:转换后备缓冲器
3:登载项
100:存储器管理系统
120:操作系统
122:OS层分页
124:寿命感知管理
130:存储器管理单元
132:地址转换单元
134:转换后备缓冲器
136:使用次数快取
140:存储器
142:分页表
144:计数器
242:分页表
244:逻辑页面地址
245:实体页面地址
250:箭号
251:箭号
252:箭号
310:空列表
311~319:空群组
311a:最前空页面
319a:最前空页面
319b:最终空页面
319c:最终空页面
320:使用中的列表
321~329:使用中的群组
321a:使用中的页面
329a:最前使用页面
329z:最终使用中的页面
810:计算机系统
812:总线次系统
814:存储器控制器
816:数据处理器
818:网络接口次系统
820:用户接口输出装置
822:用户接口输入设备
824:储存次系统
826:存储器次系统
828:存储器
830:主要随机存取存储器
832:只读存储器
具体实施方式
以下将参考图1至图8来详细说明耗损平均技术实施例。
图1是一例示存储器管理系统100的方块图,存储器管理系统100使用一种对包括多个页面的一存储器进行存储器管理的方法。此系统接口于用户进程(userprocess),例如App1、App2以及Appn。此系统依据用户进程进行程序执行及存储器配置。此系统包括一操作系统(OS)120、一存储器管理单元(MMU)130以及存储器140。操作系统120包括OS层分页122与寿命感知管理124,并与存储器管理单元130相沟通。存储器管理单元130包括一地址转换单元132、一转换后备缓冲器(TLB)134以及一使用次数快取136,并与存储器140相沟通。存储器140可包括多个页面(其包括基于相变存储器(PCM)的页面)、一分页表142及多个计数器144。寿命感知管理124的逻辑用于导引由OS所采用的逻辑寻址或虚拟寻址所用的耗损平均程序。举例而言,寿命感知管理124可被实施作为OS的特征,或作为一附加(add-on)存储器驱动器程序。
于此例子中,OS维持一转换后备缓冲器(TLB)134以寻址存储器的页面,且与寿命感知管理124合作来维持使用次数快取136,其包括供TLB固有页面用的多个登载项(entry)。在其他实施例中,使用次数快取136可以不依赖TLB逻辑。
转换后备缓冲器134可以是小而快的快取,其通过快取譬如页面与最近使用的页面的页框号码来加速地址转换时间。因此,为了支持耗损平均程序,它提供一种确认使用中的页面的有效方法。
计数器144计算存储器中的实体页面的使用次数。实体页面的使用次数可能是写入计数或擦除计数。在此,使用次数小于另一实体页面使用次数的一实体页面,是被称为比另一实体页面″更年轻″。反之,另一个实体页面是被称为比具有较低使用次数的实体页面″更老″。
对于具有使用次数快取的登载项的页面,使用次数快取136纪录由计数器144所产生的使用次数,其于此例子中包括TLB固有页面。于此种例子中,使用次数快取中的非固有页面的使用次数则被指定为″群组(bucket)″,这些群组具有与它们相关的对应使用次数范围。当页面被移动进入及离开使用次数快取136时,可基于与群组相关的范围,来预估页面的初始使用次数。
使用次数快取136可用以避免针对非易失性存储器(例如PCM式存储器)中的每个页面的频繁计数器更新。使用次数快取136可能在存储器管理单元130中。寿命感知管理124决定如何分配并交换存储器中的页面以提高存储器耐久性。通过使用操作系统120中的OS层分页122,由页面布局以及交换所招致的地址重新映像可通过修改分页表142中的对应登载项而执行。通过使用寿命感知管理124,当页面布局或页面交换必须被执行而不需要搜寻或排序存储器140中的页面时,可获得一年轻页面。因此所获得的一年轻页面可能是在最低使用次数范围的多个实体页面之一。
图2A至图2B显示耗损平均所招致的地址重新映像的分页表的登载项修改。这些图显示逻辑页面地址244的列表、分页表242中的登载项列表以及实体页面地址245的列表。一张分页表242(例如图1所显示的分页表142)可能是由操作系统120所使用的一种数据结构,用以储存在逻辑页面地址与实体页面地址之间的映像。转换后备缓冲器134储存来自分页表142的最近使用映射快取。当一逻辑页面地址必须被转换成一实体页面地址时,操作系统120首先搜寻转换后备缓冲器134。如果找到,则转换后备缓冲器134恢复实体页面地址,且操作系统120可继续存储器存取。如果未找到匹配的,则操作系统120可查分页表142中的地址映像。如果分页表142恢复实体页面地址,则操作系统120可将实体页面地址写入至转换后备缓冲器134以追踪最近使用映像,然后继续存储器存取。
如图2A及图2B所显示的,逻辑页面地址244的列表范围从0至L-1,而L为此系统中的逻辑页面地址的总数。实体页面地址245的列表范围从0至P-1,而P为此系统中的实体页面地址的总数。分页表242具有范围从0到T-1的登载项,而T为分页表中的登载项的总数。
参考图2A,分页表242中的登载项T-2、3以及4分别将逻辑页面地址0、2以及L-1映像至实体页面地址2、1以及P-2。因此,位于逻辑页面地址2的页面被映像至实体地址1,且为一使用中的页面。使用中的页面具有数据,而空页面不具有任何数据、具有不正确数据或具有擦除数据。位于实体地址P-1的页面为一空页面。
如上所述的耗损平均程序可以与逻辑寻址协调而被执行。因此,如果确定位于实体地址1的目前使用中的页面的使用次数超过一热交换阈值,则可将位于实体地址1的数据移动至位于实体页面地址P-1的空页面。热交换阈值是更进一步结合图4作说明。图2B显示从实体页面地址1移动数据至实体地址P-1,而不改变对应逻辑页面地址的结果。在图2A中,分页表242中的登载项3将逻辑地址2(箭号250)映像至实体页面1(箭号251)。在如图2B所示的交换之后,分页表242中的登载项3将逻辑地址2(箭号250)映像至实体页面1(箭号252)。位于实体地址P-1的实体页面现在使数据从位于实体地址1的实体页面被移动,而位于实体地址1的实体页面现在是空着的。因此,可以利用具有较低使用次数的空页面来交换使用次数超过热交换阈值的使用中的页面,藉以改善非易失性存储器的写入/擦除耐久性。
图3至图5显示一种对包括多个页面的一存储器进行存储器管理的方法。此方法包括:依据使用次数将使用中的页面指派到使用中的群组;依据使用次数将空页面指派到空群组;以及维持使用中的页面的使用次数。此方法包括用以交换热页面的动态耗损平均,以及用以交换冷页面的静态耗损平均。
图3显示成为存储器管理的方法的基础的例示数据结构。多个页面被分类为使用中的页面或空页面,并被指派给使用中的″群组″或空″群组″,用以依据它们的使用次数分类页面,并用以确认较年轻及较老页面。使用中的页面被维持于使用中的群组中。空页面维持于空群组中。使用中的群组可通过包括最前页面与最终页面的页面的链接栏表而被实施。空群组可通过包括最前页面与最终页面的页面的链接栏表而被实施。数据结构包括:群组的使用列表,用以管理使用中的页面;以及群组的空列表,用以管理空页面。在此实施例中,群组的使用中的列表与群组的空列表可包括相同数目的群组或不同数目的群组。于此例子中,使用中的列表维持使用中的页面的N个群组的列表。空列表维持空页面的N个群组的列表。一个列表上的每个群组是对应至另一列表上的一群组。维持目前最年轻空页面中的群组被称为空群组或低空群组,与维持使用中的页面中的群组被称为使用中的群组或低度使用中的群组。
如图3所显示的,数据结构包括一使用中的列表320及一空列表310。使用中的列表320连结使用中的群组(例如使用中的群组321、322、...、328以及329),使用中的页面可能依据使用次数被指派进入使用中的群组。使用次数可能是每个页面的擦除计数或写入计数。同一使用中的群组中的页面的使用次数落在被指派到该群组的使用次数范围。每个使用中的群组可能被指派多重使用中的页面,而在一使用中的群组内部的使用中的页面可能连结在一起,以一最前页面开始并以一最终页面结束。例如,使用中的群组329是被指派至从最前使用页面329a至最终使用中的页面329z的使用中的页面。在使用中的群组329内部的使用中的页面被连结在一起,以最前使用中的页面329a开始并以最终使用中的页面329z结束。使用中的群组可包括最低使用次数范围的低度使用中的群组(例如使用中的群组321),以及最高使用次数范围的高度使用中的群组(例如使用中的群组329)。使用中的列表320让使用中的群组维持在大约使用次数范围,从低度使用中的群组增加至高度使用中的群组。例如,低度使用中的群组321可具有0-1000的使用次数范围,高度使用中的群组可具有9001-10000的使用次数范围,而在它们之间的使用中的群组可具有使用次数1001-2000、2001-3000、3001-4000等的范围。较老页面为具有较高使用次数的页面,且被指派给较远离低度使用中的群组而接近或已在高度使用中的群组中的使用中的群组。一使用中的群组可能是空的,例如使用中的群组328。使用中的列表320是以一种圆形格式连结,以使高度使用中的群组连结回到低度使用中的群组。低度使用中的群组最后可能变成空的,这是因为低度使用中的群组的页面逐渐被移动至其他群组。当低度使用中的群组(例如使用中的群组321)用完页面时,可旋转使用中的列表320以让使用中的群组322变成低度使用中的群组,而让使用中的群组321变成高度使用中的群组,藉以依需要改变与群组相关的使用次数范围。
空列表310连结空群组(例如311、312、...、318以及319),空页面可能依据使用次数被指派进入空群组。如于此所说明,使用次数可能是每个页面的擦除计数或写入计数。相同空群组中的页面具有相同范围或使用次数。每个空群组可能被指派多重空页面,而在一空群组内部的空页面可能连结在一起,以一最前页面开始并以一最终页面结束。例如,空群组319是被指派一最前空页面319a、一最终空页面319b等。在空群组319内部的空页面被连结在一起,以最前空页面319a开始并以最终空页面319b结束。空群组可包括最低使用次数范围的低空群组(例如空群组311),以及最高使用次数范围的高空群组(例如空群组319)。较老页面是被指派给较远离低空群组且较接近或已在高空群组中的空群组。一空群组可能是空的,例如空群组312。空列表310是以一种圆形格式连结,以使高空群组319被连结回到低空群组311。低空群组最后可能变成空的,这是因为低空群组中的页面逐渐被移动至其他群组。当低空群组(例如空群组311)用完页面时,可旋转空列表310以使空群组312变成低空群组,而空群组311变成高空群组。
在操作时,此方法依据使用次数将使用中的页面指派给使用中的群组,例如使用中的群组的321-329。使用中的群组包括最低使用次数范围的低度使用中的群组(例如使用中的群组321),以及最高使用次数范围的高度使用中的群组(例如使用中的群组329)。此方法依据使用次数将空页面指派给空群组,例如空群组311-319。空群组包括最低使用次数范围的低空群组(例如空群组311),以及最高使用次数范围的高空群组(例如空群组319)。
此方法维持使用中的页面的使用次数。此方法可通过使用图1所显示的使用次数快取136来维持使用次数。一页面的登载项中的使用次数可能因页面中的数据擦除或数据写入而递增。一页面的登载项可能是在使用次数快取136中。例如,最终使用中的页面329z的登载项中的使用次数是根据最终使用中的页面329z中的数据擦除而递增。一页面的一登载项中的使用次数亦可根据页面中的数据的写入而递增。
图4显示用以交换热页面的动态耗损平均。于此例子中,最终使用中的页面329z可具有一高使用次数,因此,被视为一热页面。在一触发事件之时,例如受到读取或写入存取时,可侦测这种高使用次数。交换热页面包括将在由使用中的列表320所维持的热页面中的数据移动至由空列表310所维持的较年轻页面。如果最终使用中的页面329z满足热交换条件(例如一阈值相对使用次数),则耗损平均算法可将最终使用中的页面329z中的数据交换成低空群组311中的最前空页面311a。依此方式,热数据是被移动至具有较低使用次数的页面。
图5为动态耗损平均的流程图。参考图4及图5,在一目前使用中的页面的一触发事件上(510),此方法决定最终使用中的页面329z的使用次数是否超过一阈值,例如一热交换阈值(520),如果是,则此方法将最终使用中的页面329z中的数据移动至低空群组311中的一页面(例如一最前空页面311a),从而释放最终使用中的页面329z(530)。此方法接着针对被移动至低空群组311的数据执行更新(540),针对低空群组311中的最前空页面311a递增使用次数(550),并指派空页面给对应于使用中的群组329的使用次数范围的一空群组319(560)。此方法维持一使用次数快取136(图1),其具有供包括使用次数的使用中的页面用的多个登载项。目前使用中的页面的触发事件,可建立供使用次数快取中的目前使用中的页面用的一登载项。热交换阈值可能依据系统需求的因素(例如存储器中的页面的相对使用次数、群组数、耗损平均的颗粒度以及耗损平均方法的复杂性),通过使用存储器而根据实验被决定、被指派并被系统所调整。
图6显示用以交换冷页面的静态耗损平均。冷页面为在非易失性存储器中很少被更新的页面,从而可能会因占据使用中的列表中的新页面而导致较差页面利用。一冷页面中的数据可被称为冷数据。于此例子中,低度使用中的群组中的使用中的页面321a可具有低使用次数,因此,被视为一冷页面。在一触发事件之时,例如受到读取或写入存取时,可侦测这种低使用次数。交换冷页面包括将在由使用中的列表320所维持的冷页面中的数据移动至由空列表310所维持的较老页面。如果使用中的页面321a满足一冷交换条件(例如相对于使用次数的阈值),则耗损平均算法可将使用中的页面321a中的数据交换成一高空群组319中的一最终空页面319c。依此方式,冷数据是从具有一较低使用次数的一页面被移动,藉以释放供其他更有效逻辑页面使用的低使用次数页面。
图7为静态耗损平均的流程图。参考图6及图7,在一目前使用中的页面321a的一触发事件上(710),此方法决定目前使用中的页面321a的使用次数是否小于一第二阈值,例如一冷交换阈值(720),如果是,则此方法将目前使用中的页面321a中的数据移动至高空群组319中的一页面(例如一最终空页面319c)(730),从而使得使用中的页面321a可被频繁更新数据所用。此方法针对高空群组319中的最终空页面319c递增使用次数(740),并指派高空群组319中的最终空页面319c给对应于高空群组319的使用次数范围的高度使用中的群组329(750)。
此方法维持一使用次数快取136(图1),其具有供包括使用次数的使用中的页面用的多个登载项。目前使用中的页面的触发事件,可被建立或从使用次数快取移除目前使用中的页面的一登载项。冷交换阈值可能依据系统需求的因素(例如在页面之间的相对使用次数、群组数、耗损平均的颗粒度以及耗损平均方法的复杂性),通过使用存储器而根据实验被决定、被指派并被系统所调整。
如于此所说明的,此方法维持一使用次数快取136(图1),其具有供包括使用次数的使用中的页面用的多个登载项。为了提供具有包括最近被写入的使用页面以执行耗损平均的信息的操作系统120(图1),可能需要从使用次数快取136移除或在使用次数快取136中建立实体页面的登载项。当从使用次数快取136移除一页面的一登载项时,此方法基于登载项中的使用次数指派其给一使用中的群组。例如,如果在使用次数快取136中,一页面的一登载项的使用次数为3500,则此方法指派页面给维持使用中的页面具有从3001至4000的范围中的使用次数的一使用中的群组。当一页面的一登载项是在使用次数快取136中被建立时,此方法基于其使用中的群组指派一使用次数给它。例如,当一页面的一登载项是在使用次数快取136被建立时(此页面来自一个维持使用中的页面具有从3001至4000的范围中的使用次数的使用中的群组),此方法基于其使用中的群组将一使用次数(例如3500)或在3001(含3001)与4000(含4000)之间的另一个使用次数指派给它。
于一实施例中,两个算法基于群组式数据结构管理存储器页面。算法1可使用于此所说明的静态耗损平均,用以在需要一空页面时分配一年轻页面。算法2可使用于此所说明的动态耗损平均与静态耗损平均,用于避免老页面因频繁更新而被耗损。算法1与算法2的伪码(或程序代码)如下:
算法1
1:ifF[b]≠0then
2:p←thelastpageinF[b]
3:moveptotheheadofI[b]
4:else
5:p←thelastpageinI[b]
6:q←thelastpageinF[h]
7:copythedataofptoq
8:c[q]←c[q]+1
9:moveqtotheheadofI[h]
10:returnp
算法2
1:ifs_≠(b+N-1)modNthen
2:performupdateonq
3:c[q]←c[q]+1
4:ifc[q]≥Rthen
5:moveqtotheheadofI[s+1]
6:c[q]←0
7:else
8:if0<c[q]<R/2then
9:performupdateonq
10:c[q]←c[q]+1
11:else
12:p←invokefreepageallocation
13:copythedataofqtop
14:performupdateonp
15:moveqtotheheadofF[s]
16:c[p]←c[p]+1
17:ifc[p]≥Rthen
18:moveptotheheadofI[b+1]
19:c[p]←0
在算法1中,F[]表示空列表310,而I[]表示使用中的列表320。b表示低空群组与低度使用中的群组的群组索引,而h表示高空群组与高度使用中的群组的群组索引。因此,F[b]表示低空群组,而I[b]表示低度使用中的群组。p为算法1传回的一空页面的一指标。在算法2中,q为待更新的一目前使用中的页面。p为算法1传回的一空页面的一指标。b表示低度使用中的群组的群组索引,而s表示页面q的群组索引。N为群组数。R为一热交换阈值。c[q]追踪页面q的使用次数。″(b+N-1)modN″为至高度使用中的群组的索引。
当需要一空页面时,其是从低空群组或低度使用中的群组被分配。如果低空群组不是空的,则算法将低空群组F[b]中的最终页面移动至低度使用中的群组I[b]的标头(第1-3行)。接着,算法1使低空群组F[b]中的最终页面恢复成为一空页面(第10行)。
如果低空群组是空的,则算法2将低度使用中的群组I[b]中的最终页面的数据移动至一高空群组中的最终页面F[h],针对高空群组中的最终页面F[h]递增使用次数,并指派高空群组中的最终页面F[h]给对应于高空群组F[h]的使用次数范围的高度使用中的群组I[h](第5-9行)。然后,算法1使低度使用中的群组I[b]中的最终页面恢复成为一空页面(第10行)。因此算法1通过使用静态耗损平均且通过移动冷数据至冷页面而从低空群组F[b](第1-3行)或从低度使用中的群组I[b]分配一空页面(第5-9行),并恢复低度使用中的群组I[b]中的空页面p。
当需要更新一目前使用中的页面q时,算法2可直接更新目前使用中的页面q,或依据目前使用中的页面q的使用次数是否超过热交换阈值R而首先以一空页面p交换目前使用中的页面q。
如果使用中的页面q的群组索引并非等于高度使用中的群组的群组索引″(b+N-1)modN″(第1行),则算法2直接更新使用中的页面q(第2行),并使目前使用中的页面q的使用次数递增1(第3行)。在递增之后,如果目前使用中的页面q的使用次数等于或超过热交换阈值R(第4行),则算法2将使用中的页面q从目前的群组移动至具有较高范围的使用次数的下一群组I[s+1]的标头,并将使用次数重设成0,以表示位于下一群组I[s+1]的标头的页面中的数据是由于密集更新而从一个具有较低范围的使用次数的群组被移动到那里(第4-6行)。
如果使用中的页面q的群组索引等于高度使用中的群组的群组索引″(b+N-1)modN″(第1行),则使用中的页面q是在高度使用中的群组中,并可具有超过热交换阈值的使用次数。接着,算法2测试目前使用中的页面q的使用次数c[q]是不是在大于0且小于热交换阈值的一半的范围(0<c[q]<R/2)中。如果使用次数c[q]是在此范围中,则算法2直接更新使用中的页面q(第9行),并使目前使用中的页面q的使用次数递增1(第10行)。
如果高度使用中的群组中的目前使用中的页面q的使用次数c[q]为0,则其表示目前使用中的页面已依据算法2的第4-6行(目前使用中的页面q的使用次数c[q]被重设成0)而从一使用中的页面(具有超过一群组中的热交换阈值R的使用次数,此群组具有较低范围的使用次数)被移动到那里。如果高度使用中的群组中的目前使用中的页面q的使用次数c[q]等于或大于R/2,则使用次数可能超过热交换阈值R。因此,如果高度使用中的群组中的目前使用中的页面q的使用次数c[q]在(0<c[q]<R/2)的范围外(第11行),则算法2通过使用算法1(采用静态耗损平均)首先分配一空页面p(第12行)。依据算法1,空页面p是在低度使用中的群组I[b]中。算法2接着采用动态耗损平均(第13-16行)。尤其,算法2将目前使用中的页面q中的数据移动至空页面p(第13行),并针对被移动至页面p的数据执行更新(第14行)。然后,算法2释放目前使用中的页面q,并指派空页面q给对应于高度使用中的群组I[s]的使用次数范围的高空群组F[s]的标头(第15行)。
算法2将使用次数递增1在页面p上(第16行)。在递增之后,如果目前使用中的页面p的使用次数等于或超过热交换阈值R(第17行),则算法2将使用中的页面p从目前使用中的群组I[b]移动至具有较高范围的使用次数的下一个使用中的群组I[b+1]的标头,并将使用次数重设成0,以表示位于群组I[b+1]的标头的页面中的数据是由于密集更新而从具有较低范围的使用次数的一群组被移动到那里(第17-19行)。
图8为依据一个实施例的一例示计算机系统810的方块图。计算机系统810可包括一储存次系统824及一存储器控制器814,储存次系统824包括一存储器828,存储器828包括多个页面,且存储器控制器814耦接到至少此存储器828。
存储器828可能在群组式动态及静态耗损平均存储器管理之下。存储器828可能储存包括使用中的群组与空群组的群组式耗损平均的群组式数据结构,使用中的群组中的使用中的页面的使用次数,以及一分页表(例如图1所说明的分页表142)。
存储器828可包括像硫属的相变存储器材料,以及其他可编程电阻材料。相变存储器材料可包括例如锗(Ge)、锑(Sb)、碲(Te)、镓(Ga)、铟(In)、银(Ag)、硒(Se)、铊(Ti)、铋(Bi)、锡(Sn)、铜(Cu)、钯(Pd)、铅(Pb)、硫磺(S)以及金(Au)的材料的合金。相变材料一般包括GexSbxTex材料。可同样可使用其他可编程电阻存储器,包括金属氧化物存储器、闪存、电解导电电桥存储器等等。
存储器控制器814包括多个程序或其他逻辑,用于通过使用群组式动态耗损平均及静态耗损平均来执行存储器管理。尤其,存储器控制器814包括依据使用次数指派使用中的页面给使用中的群组的逻辑。使用中的群组包括最低使用次数范围的一低度使用中的群组,以及最高使用次数范围的一高度使用中的群组。存储器控制器814的逻辑可依据使用次数指派空页面给空群组。空群组包括最低使用次数范围的一低空群组,以及最高使用次数范围的一高空群组。存储器控制器814的逻辑维持使用中的页面的使用次数。对动态耗损平均而言,一目前使用中的页面的一触发事件上,存储器控制器814的逻辑决定目前使用中的页面的使用次数是否超过一热交换阈值,如果是,则将目前使用中的页面中的数据移动至低空群组中的一页面(例如最前页面),并释放目前使用中的页面。对静态耗损平均而言,在一目前使用中的页面的一触发事件上,存储器控制器814的逻辑决定目前使用中的页面的使用次数是否小于一冷交换阈值,如果是,则将目前使用中的页面中的数据移动至低空群组中的一页面(例如最终页面)。
存储器控制器814可包括一存储器管理单元130与寿命感知管理124(图1)。例示计算机系统810及/或存储器控制器814的逻辑用于执行如在对包括多个页面的一存储器进行上述存储器管理方法的其他任务。
在群组式动态及静态耗损平均管理之下的存储器828可能在一集成电路上,其中存储器控制器814包括在集成电路上的逻辑。计算机系统810可包括一数据处理器816,其中存储器控制器814包括在数据处理器816上的逻辑。举例而言,此逻辑可包括通过使用上述动态耗损平均及静态耗损平均的例如算法1及算法2的算法,用于避免老页面因频繁更新而耗损。
数据处理器816经由总线次系统812与一些周边装置相沟通。这些周边装置可包括储存次系统824、用户接口输入设备822、用户接口输出装置820以及一网络接口次系统818,储存次系统824包括譬如存储器装置(例如ROM及RAM)以及具有耗损平均的存储器828。输入及输出装置允许用户与计算机系统810交互作用。网络接口次系统818提供一接口至外部网络。
用户接口输入设备822可包括一键盘;指向装置,例如一鼠标、轨迹球、触摸板或绘图板;一扫描仪;并入显示器的一触控屏幕;音频输入设备,例如语音识别系统及麦克风;以及其他型式的输入设备。一般而言,专门用语″输入设备″欲包括装置及方法的所有可能型式,用于输入信息进入计算机系统810中。
用户接口输出装置820可包括一显示次系统、一打印机、一传真机或例如音频输出装置的非视觉显示器。显示次系统可包括一阴极射线管(CRT)、例如一液晶显示器(LCD)的一平板装置、一投影装置或用以建立一看得见的影像的某些其他机构。显示次系统亦可例如经由音频输出装置提供一非视觉显示器。一般而言,专门用语″输出装置″欲包括装置及方法的所有可能的型式,用于将来自计算机系统810的信息输出至用户或至另一机器或计算机系统。
储存次系统824储存程序设计及数据架构,其提供于此所说明的某些或所有模块及方法的功能性。这些软件模块一般是单独通过数据处理器816或与其他处理器结合而执行。
使用于储存次系统824的存储器次系统826可包括一些存储器,其包括一主要随机存取存储器(RAM)830以供在程序执行期间储存指令及数据,以及一个储存固定指令的只读存储器(ROM)832。储存次系统824可提供程序及数据文件的持久储存,并可包括一硬式磁盘驱动器、一软式磁盘驱动器连同相关的可移除媒体、一CD-ROM碟机、一光驱或可移除媒体卡匣。实施某些实施例的功能性的模块可能储存于储存次系统824中,或储存于处理器可存取的其他机器中。
总线次系统812提供一种如预期的用于使计算机系统810的各种元件及次系统彼此沟通的机构。虽然总线次系统812被概要显示为单一总线,但总线次系统的替代实施例可能使用多重总线。
计算机系统810可以是属于变化型式,包括工作站、服务器、运算丛集、刀锋服务器(BladeServer)、服务器农场或任何其他数据处理系统或计算装置。由于计算机及网络的千变万化的本质,图8中所描绘的计算机系统810的说明意欲作为一例子。计算机系统810的多数其他架构是可能具有比图8中所描绘的计算机系统更多或更少元件。
本申请案提供一种对包括多个页面的一存储器进行的存储器管理方法。此方法包括依据多个使用次数指派使用中的页面给多个使用中的群组,该多个使用中的群组包括最低使用次数范围的低度使用中的群组,以及最高使用次数范围的高度使用中的群组。此方法包括依据多个使用次数指派多个空页面给多个空群组,该多个空群组包括最低使用次数范围的低空群组,以及最高使用次数范围的高空群组。此方法包括维持多个使用中的页面的多个使用次数。此方法包括,在一目前使用中的页面的一触发事件上,决定一使用中的群组中的一目前使用中的页面的该使用次数是否超过一阈值,如果是,则将目前使用中的页面中的数据移动至低空群组中的一页面。
这些与额外实施例可包括下述特征的一个或多个。低空群组可包括空页面的列表,而低空群组中的页面可能是列表中的最前页面。此方法可更包括释放目前使用中的页面,并指派所释放的目前使用中的页面给对应于使用中的群组的一使用次数内的空群组。此方法可维持一使用次数快取,其具有包括多个使用次数的多个使用中的页面的多个登载项,且其中目前使用中的页面的触发事件是从使用次数快取移除目前使用中的页面的登载项。
此方法可更包括,在一目前使用中的页面的一触发事件上,决定目前使用中的页面的使用次数是否小于一第二阈值,如果是,则将目前使用中的页面中的数据移动至一高空群组中的页面。高空群组可包括空页面的一列表,且高空群组中的页面可能是列表中的一最终页面。此方法可包括指派高空群组中的页面给对应于高空群组的使用次数范围的使用中的群组。此方法可包括维持一使用次数快取,其具有包括多个使用次数的多个使用中的页面的多个登载项,且其中目前使用中的页面的触发事件是从使用次数快取移除目前使用中的页面的登载项。
此方法可包括维持一使用次数快取,其具有包括多个使用次数的多个使用中的页面的多个登载项,当一页面的一登载项是从使用次数快取被移除时,基于登载项中的使用次数指派其给一使用中的群组,而当一页面的一登载项被建立在使用次数快取中时,基于其使用中的群组指派一使用次数给它。
使用中的群组与空群组可包括多个页面(包括最前页面)的各自链接栏表。此方法可包括维持一转换后备缓冲器TLB,用于寻址存储器中的页面,并维持包括TLB固有的页面的多个登载项的使用次数快取。
此方法可包括指派空页面给对应于使用中的群组的使用次数范围的空群组。维持使用中的页面的使用次数可包括,对于页面数据的擦除,递增一页面的一登载项中的使用次数。
本申请案提供一种设备,其包括一个包括多个页面存储器,以及一个耦接至存储器的存储器控制器。存储器控制器包括:依据多个使用次数指派多个使用中的页面给多个使用中的群组的逻辑,该多个使用中的群组包括最低使用次数范围的一低度使用中的群组以及最高使用次数范围的一高度使用中的群组;依据多个使用次数指派多个空页面给多个空群组的逻辑,该多个空群组包括最低使用次数范围的一低空群组,以及最高使用次数范围的一高空群组;维持多个使用中的页面的多个使用次数的一逻辑;以及决定一使用中的群组中的一目前使用中的页面的使用次数是否超过一阈值的逻辑,如果是,则将目前使用中的页面中的数据移动至低空群组中的页面。
这些与额外实施例可包括下述特征的一个或多个。低空群组可包括空页面的列表,且低空群组中的页面可能是列表中的最前页面。存储器控制器可包括一逻辑,其释放目前使用中的页面,并指派释放的目前使用中的页面给一个对应于使用中的群组的使用次数范围的空群组。存储器控制器可包括一使用次数快取,其具有供包括使用次数的使用中的页面用的多个登载项,且目前使用中的页面的触发事件是从使用次数快取移除供目前使用中的页面用的一登载项。
存储器控制器可更包括一逻辑,其对于一目前使用中的页面的一触发事件,决定目前页面的使用次数是否小于一第二阈值,如果是,则将目前使用中的页面中的数据移动至一高空群组中的页面。高空群组可包括空页面的一列表,且高空群组中的页面为列表中的一最终页面。存储器控制器的可包括逻辑,其指派高空群组中的页面给一个对应于高空群组的使用次数范围的使用中的群组。存储器控制器可包括一使用次数快取,其具有包括多个使用次数的多个使用中的页面的多个登载项,且目前使用中的页面的触发事件是从使用次数快取移除供目前使用中的页面用的一登载项。
存储器控制器可包括一使用次数快取。使用次数快取具有包括多个使用次数的多个使用中的页面用的多个登载项;使用次数快取包括逻辑,于一页面的一登载项是从使用次数快取被移除时,基于登载项中的使用次数而指派其给一使用中的群组;且使用次数快取包括逻辑,在一页面的一登载项被建立在使用次数快取中时,基于其使用中的群组指派一使用次数给它。
在此设备中,使用中的群组与空群组可包括多个页面(包括最前页面)的各自链接栏表。此设备可包括一个用于寻址存储器中的页面的转换后备缓冲器TLB,以及一个TLB固有页面的多个登载项的使用次数快取。此设备可包括逻辑,其指派空页面给对应于使用中的群组的使用次数范围的空群组。此设备可包括逻辑,对于页面数据的擦除,其递增一页面的一登载项中的使用次数。
此设备中的存储器可能是在一集成电路上,且存储器控制器可包括集成电路上的逻辑。此设备可更包括一数据处理器,其中存储器控制器包括数据处理器上的逻辑。此设备可更包括一分页表,其中存储器可储存使用中的群组、空群组、使用中的群组中的使用中的页面的使用次数以及分页表。存储器可包括相变存储器材料。
虽然本发明是参考上述的较佳实施例及例子而揭露,但吾人应理解到这些例子意欲呈现例示而非以限制的意义。吾人考虑到熟习本项技艺者将轻易地想到修改及组合,这些修改及组合将落在本发明的精神及随附权利要求范围的范畴之内。
Claims (18)
1.一种对包括多个页面的一存储器进行群组式耗损平均的方法,包括:
依据多个使用次数指派多个使用中的页面给多个使用中的群组,包括一最低使用次数范围的一低度使用中的群组,以及一最高使用次数范围的一高度使用中的群组;
依据多个使用次数指派多个空页面给多个空群组,该多个空群组包括一最低使用次数范围的一低空群组,以及一最高使用次数范围的一高空群组;
维持多个使用中的页面的多个使用次数;以及
决定一使用中的群组中的一目前使用中的页面的该使用次数是否超过一阈值,如果是,则将该目前使用中的页面中的数据移动至该低空群组中的一页面。
2.根据权利要求1所述的方法,包括:释放该目前使用中的页面,并指派被释放的该目前使用中的页面给对应于该使用中的群组的一使用次数范围内的一空群组。
3.根据权利要求1所述的方法,其中该决定是因应于该目前使用中的页面上的一操作的一触发事件而被执行。
4.根据权利要求3所述的方法,包括:维持一使用次数快取,其具有包括多个使用次数的多个使用中的页面的多个登载项,且其中该目前使用中的页面的该触发事件是从该使用次数快取移除该目前使用中的页面的一登载项。
5.根据权利要求1所述的方法,包括:决定该目前使用中的页面的该使用次数是否小于一第二阈值,如果是,则将该目前使用中的页面中的数据移动至该高空群组中的一页面。
6.根据权利要求5所述的方法,包括:指派该高空群组中的该页面给对应于该高空群组的一使用次数范围的一使用中的群组。
7.根据权利要求5所述的方法,其中决定该目前使用中的页面的该使用次数是否小于该第二阈值是因应于该目前使用中的页面上的一操作的一触发事件而被执行。
8.根据权利要求7所述的方法,包括:维持一使用次数快取,其具有包括多个使用次数的多个使用中的页面的多个登载项,且其中该目前使用中的页面的该触发事件是从该使用次数快取移除该目前使用中的页面的一登载项。
9.根据权利要求1所述的方法,包括:维持一使用次数快取,其具有包括多个次数的多个使用中的页面的多个登载项,而当一页面的一登载项从该使用次数快取被移除时,基于该登载项中的该使用次数指派其给一使用中的群组,且当一页面的一登载项被建立在该使用次数快取中时,基于其使用中的群组指派一使用次数给它。
10.一种对包括多个页面的一存储器进行群组式耗损平均的设备,包括:
一存储器控制器,耦接至该存储器,包括:依据多个使用次数指派多个使用中的页面给多个使用中的群组的一逻辑,该多个使用中的群组包括一最低使用次数范围的一低度使用中的群组,以及一最高使用次数范围的一高度使用中的群组;依据多个使用次数指派多个空页面给多个空群组的一逻辑,该多个空群组包括一最低使用次数范围的一低空群组,以及一最高使用次数范围的一高空群组;维持多个使用中的页面的多个使用次数的一逻辑;以及决定一使用中的群组中的一目前使用中的页面的该使用次数是否超过一阈值的一逻辑,如果是,则将该目前使用中的页面中的数据移动至该低空群组中的一页面。
11.根据权利要求10所述的设备,其中该存储器控制器包括:释放该目前使用中的页面并指派被释放的该目前使用中的页面给对应于该使用中的群组的一使用次数范围内的一空群组的一逻辑。
12.根据权利要求10所述的设备,其中决定该使用中的群组中的该目前使用中的页面的该使用次数是否超过该阈值的该逻辑,是因应于该目前使用中的页面上的一操作的一触发事件。
13.根据权利要求12所述的设备,该存储器控制器包括一使用次数快取,其具有包括多个使用次数的多个使用中的页面的多个登载项,且其中该目前使用中的页面的该触发事件是从该使用次数快取移除该目前使用中的页面的一登载项。
14.根据权利要求10所述的设备,该存储器控制器包括:决定该目前页面的该使用次数是否小于一第二阈值的一逻辑,如果是,则将该目前使用中的页面中的数据移动至该高空群组中的一页面。
15.根据权利要求14所述的设备,该存储器控制器包括:指派该高空群组中的该页面给对应于该高空群组的一使用次数范围的一使用中的群组的一逻辑。
16.根据权利要求14所述的设备,其中决定该目前使用中的页面的使用次数是否小于该第二阈值的该逻辑,是因应于该目前使用中的页面上的一操作的一触发事件。
17.根据权利要求16所述的设备,该存储器控制器包括一使用次数快取,其具有包括多个使用次数的多个使用中的页面的多个登载项,且其中该目前使用中的页面的该触发事件是从该使用次数快取移除该目前使用中的页面的一登载项。
18.根据权利要求10所述的设备,该存储器控制器包括一使用次数快取,其具有包括多个使用次数的多个使用中的页面的多个登载项,且该存储器控制器包括一逻辑,其在一页面的一登载项从该使用次数快取被移除时,基于该登载项中的该使用次数指派其给一使用中的群组,且在一页面的一登载项被建立在该使用次数快取中时,基于其使用中的群组指派一使用次数给它。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261654301P | 2012-06-01 | 2012-06-01 | |
US61/654,301 | 2012-06-01 | ||
US13/646,426 | 2012-10-05 | ||
US13/646,426 US9251056B2 (en) | 2012-06-01 | 2012-10-05 | Bucket-based wear leveling method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103455429A CN103455429A (zh) | 2013-12-18 |
CN103455429B true CN103455429B (zh) | 2016-06-15 |
Family
ID=49671746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210579100.5A Active CN103455429B (zh) | 2012-06-01 | 2012-12-27 | 对存储器进行群组式耗损平均的方法及设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9251056B2 (zh) |
CN (1) | CN103455429B (zh) |
TW (1) | TWI468939B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9547586B2 (en) * | 2013-01-03 | 2017-01-17 | Macronix International Co., Ltd. | Metadata containers with indirect pointers |
US20140258628A1 (en) * | 2013-03-11 | 2014-09-11 | Lsi Corporation | System, method and computer-readable medium for managing a cache store to achieve improved cache ramp-up across system reboots |
US9348748B2 (en) | 2013-12-24 | 2016-05-24 | Macronix International Co., Ltd. | Heal leveling |
KR20160058458A (ko) * | 2014-11-17 | 2016-05-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102403266B1 (ko) * | 2015-06-22 | 2022-05-27 | 삼성전자주식회사 | 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템 |
US9842059B2 (en) | 2016-04-14 | 2017-12-12 | Western Digital Technologies, Inc. | Wear leveling in storage devices |
US10268594B2 (en) * | 2017-01-05 | 2019-04-23 | International Business Machines Corporation | Implementing paging device selection based on wear-level data |
US10671296B2 (en) | 2017-08-09 | 2020-06-02 | Macronix International Co., Ltd. | Management system for managing memory device and management method for managing the same |
TWI652571B (zh) | 2017-08-09 | 2019-03-01 | 旺宏電子股份有限公司 | 記憶體裝置之管理系統及管理方法 |
US10733110B1 (en) | 2017-12-04 | 2020-08-04 | Amazon Technologies, Inc. | Collecting statistics for persistent memory |
JP2022147574A (ja) * | 2021-03-23 | 2022-10-06 | キオクシア株式会社 | メモリコントローラ、及びメモリシステム |
KR20230060569A (ko) * | 2021-10-27 | 2023-05-08 | 삼성전자주식회사 | 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법 |
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 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835959A (en) * | 1995-12-01 | 1998-11-10 | Sand Technology Systems International, Inc. | Memory management system and method using dual indexing structures |
Family Cites Families (15)
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 |
US20070208904A1 (en) * | 2006-03-03 | 2007-09-06 | Wu-Han Hsieh | Wear leveling method and apparatus for nonvolatile memory |
US8140737B2 (en) * | 2007-01-30 | 2012-03-20 | Skymedi Corporation | Method for enhancing life cycle of memory |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US8954654B2 (en) * | 2008-06-18 | 2015-02-10 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance |
TWI385669B (zh) * | 2008-07-23 | 2013-02-11 | Phison Electronics Corp | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 |
KR100974215B1 (ko) * | 2008-10-02 | 2010-08-06 | 주식회사 하이닉스반도체 | 반도체 스토리지 시스템 및 그 제어 방법 |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US8719486B2 (en) * | 2009-06-24 | 2014-05-06 | Micron Technology, Inc. | Pinning content in nonvolatile memory |
US8688894B2 (en) * | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
CN102201259A (zh) * | 2010-03-24 | 2011-09-28 | 建兴电子科技股份有限公司 | 非易失性存储器的平均抹写方法 |
TWI446345B (zh) * | 2010-12-31 | 2014-07-21 | Silicon Motion Inc | 用來進行區塊管理之方法以及記憶裝置及控制器 |
US9405670B2 (en) * | 2011-06-09 | 2016-08-02 | Tsinghua University | Wear leveling method and apparatus |
US9183136B2 (en) * | 2012-05-16 | 2015-11-10 | Hitachi, Ltd. | Storage control apparatus and storage control method |
-
2012
- 2012-10-05 US US13/646,426 patent/US9251056B2/en active Active
- 2012-10-23 TW TW101139151A patent/TWI468939B/zh active
- 2012-12-27 CN CN201210579100.5A patent/CN103455429B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835959A (en) * | 1995-12-01 | 1998-11-10 | Sand Technology Systems International, Inc. | Memory management system and method using dual indexing structures |
Also Published As
Publication number | Publication date |
---|---|
US9251056B2 (en) | 2016-02-02 |
TW201351138A (zh) | 2013-12-16 |
CN103455429A (zh) | 2013-12-18 |
US20130326148A1 (en) | 2013-12-05 |
TWI468939B (zh) | 2015-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103455429B (zh) | 对存储器进行群组式耗损平均的方法及设备 | |
US8296496B2 (en) | Main memory with non-volatile memory and DRAM | |
CN105653202B (zh) | 一种用于逻辑存储管理的多级方案 | |
CN103914398B (zh) | 用以管理具有实体地址空间的存储器使用率的方法及装置 | |
CN105493052B (zh) | 用于存储器管理的高速缓存操作 | |
US7484074B2 (en) | Method and system for automatically distributing real memory between virtual memory page sizes | |
CN106557353A (zh) | 一种容器承载业务应用的服务器性能指标评价方法 | |
US8495302B2 (en) | Selecting a target number of pages for allocation to a partition | |
US8799611B2 (en) | Managing allocation of memory pages | |
US20220326872A1 (en) | Method for selecting a data block to be collected in gc and storage device thereof | |
Liu et al. | Durable address translation in PCM-based flash storage systems | |
US20180032429A1 (en) | Techniques to allocate regions of a multi-level, multi-technology system memory to appropriate memory access initiators | |
US8583890B2 (en) | Disposition instructions for extended access commands | |
JPWO2010116735A1 (ja) | キャッシュメモリ装置、キャッシュメモリ制御方法、プログラムおよび集積回路 | |
JP2021518605A (ja) | ハイブリッドメモリシステム | |
US10515671B2 (en) | Method and apparatus for reducing memory access latency | |
CN104102456B (zh) | 存储器装置机器操作方法 | |
US11561834B2 (en) | Methods and systems for adaptive memory-resource management | |
CN109840048A (zh) | 存储命令处理方法及其存储设备 | |
CN114270317A (zh) | 层次型存储器系统 | |
CN114341816A (zh) | 三层层次型存储器系统 | |
CN109783006A (zh) | 计算系统及操作计算系统的方法 | |
CN111209227A (zh) | 数据处理系统 | |
US20230229576A1 (en) | Read-disturb-based read temperature information utilization system | |
US11995340B2 (en) | Read-disturb-based read temperature information access system |
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 |