CN102169461A - 存储器系统 - Google Patents
存储器系统 Download PDFInfo
- Publication number
- CN102169461A CN102169461A CN2011100459610A CN201110045961A CN102169461A CN 102169461 A CN102169461 A CN 102169461A CN 2011100459610 A CN2011100459610 A CN 2011100459610A CN 201110045961 A CN201110045961 A CN 201110045961A CN 102169461 A CN102169461 A CN 102169461A
- Authority
- CN
- China
- Prior art keywords
- list
- free
- ordering rule
- unit
- free blocks
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
根据一个实施例,一种存储器系统包括:非易失性存储器、管理单元、排序规则保持单元、位置信息存储单元、列表选择单元、块选择单元、写入单元、和更新单元。管理单元保持对于每个存储区域的空闲块列表,其指示空闲块。排序规则保持单元保持排序规则,其用于确定空闲块列表的排序。位置信息存储单元存储位置信息,其指示在排序规则中空闲块列表的位置。列表选择单元选择与位置信息指示的位置相应的空闲块列表,以及块选择单元从中选择空闲块。更新单元在列表选择之后,用指示随后选择的空闲块列表的位置的位置信息来更新在位置信息存储单元中的位置信息。
Description
相关专利申请的交叉引用
本申请基于并要求享受2010年2月26日递交的日本专利申请No.2010-43299的优先权的利益,其全部内容以引用方式并入本文。
技术领域
概括地说,这里描述的实施例涉及包括非易失性半导体存储器的存储器系统。
背景技术
作为在计算机中使用的外部存储设备,使用非易失性半导体存储器的固态驱动器(SSD)、例如NAND闪存,这样的存储介质受到关注。由于SSD不包括机械操作,所以在抗阻、随机读取操作、和功耗方面,SSD优于传统使用的磁盘设备。
同时,NAND闪存的写入速度慢于磁盘设备的写入速度。因此,连接SSD中的NAND闪存的多个芯片以能够并行访问,并且NAND闪存自身被配置为能够在芯片的多个区域中同时进行写入操作,从而提高传输性能。
为了提高SSD的实际数据传输速率,需要完全使用如上配置的硬件的并行性。为此,配备临时性聚集从主机接收的写入数据的缓冲存储器,在缓冲存储器中聚集足够量的数据之后将数据分割,并且将数据并行地写入NAND闪存的多个芯片中。
将NAND闪存的存储区域分割成单元,称为块,并且在块单元中执行对于NAND闪存的数据擦除操作。即,通过在块中共同擦除数据并且以预定顺序在相应块中写入新数据来执行对于NAND闪存的数据写入操作。
同时,NAND闪存具有限制最大擦除计数的特征。例如,如果任意块的擦除计数等于或大于预定值,则块被用尽,并且数据存储失败的可能性增加。如果由于用尽而不能够存储数据的块的数目增加,则SSD的整个数据存储空间减少,并且当不能够提供预定的声明空间时SSD出现故障。为了增加SSD整体的寿命,需要均衡地使用所有块并且平衡每个块的擦除计数的机制。
如上所述,为了实际使用SSD,需要在访问时,特别在写入操作时利用并行性,以保持传输性能和平衡块之间的擦除计数。对于在写入数据时保证并行性和平衡块之间的擦除计数来说,选择写入数据的块的块分配方法是重要的。
例如,在硬盘中,如果对于SSD应用向每个地址固定地分配物理存储区域的方法,则将块固定地分配给SSD中的每个地址。然而,在这种情况下,引起以下两个问题。
当反复地覆写在与特定地址相应的块中写入的数据时,引起第一个问题。因为在与地址相应的块中重复共同的数据擦除和写入,仅相应块的擦除计数增加,并且相应块的寿命短于其他块的寿命。
当接收到针对向并行写入均被禁用的一个或多个块分配的地址的多个写入数据时,引起第二个问题。在这种情况下,在各个块中顺序写入数据,并且传输性能降低。
发明内容
根据本发明的一方面,提供一种存储器系统,包括:非易失性存储器,其包括多个存储区域,每个存储区域包括多个块,每个块是数据擦除的单位,所述非易失性存储器被配置为能够对于不同存储区域中包括的块进行并行写入;管理单元,其保持对于每个存储区域的空闲块列表,所述空闲块列表指示作为没有存储有效数据的块的空闲块;排序规则保持单元,其保持排序规则,所述排序规则是用于确定所述空闲块列表的排序的信息;位置信息存储单元,其存储位置信息,所述位置信息指示在所述排序规则中空闲块列表的位置;列表选择单元,其选择与所述位置信息指示的位置相应的空闲块列表;块选择单元,其从所述列表选择单元选择的空闲块列表选择空闲块;写入单元,其在所述块选择单元选择的空闲块中写入数据;以及更新单元,其在所述列表选择单元选择空闲块列表之后,用指示随后选择的空闲块列表的位置的位置信息来更新在所述位置信息存储单元中存储的位置信息。
根据本发明的另一方面,提供一种存储器系统,包括:非易失性存储器,其包括多个存储区域,每个存储区域包括多个块,每个块是数据擦除的单位,所述非易失性存储器被配置为能够对于不同存储区域中包括的块进行并行写入;管理单元,其保持对于每个存储区域的空闲块列表,所述空闲块列表指示作为没有存储有效数据的块的空闲块;排序规则保持单元,其保持排序规则,所述排序规则是用于确定所述空闲块列表的排序的信息;位置信息存储单元,其存储位置信息,所述位置信息指示在所述排序规则中空闲块列表的位置;列表选择单元,其选择与所述位置信息指示的位置相应的空闲块列表;块选择单元,其从所述列表选择单元选择的空闲块列表选择空闲块;写入单元,其在所述块选择单元选择的空闲块中写入数据;以及更新单元,其在所述列表选择单元选择空闲块列表之后,用指示随后选择的空闲块列表的位置的位置信息来更新在所述位置信息存储单元中存储的位置信息,其中所述位置信息存储单元存储位置信息,其指示基于使用多个不同排序规则生成的长期排序规则所确定的每个空闲块列表的排序。
通过本发明的存储器系统,能够在访问时,特别在写入操作时利用并行性,以保持传输性能和平衡块之间的擦除计数。
附图说明
图1示出可应用根据每个实施例的存储器系统的计算机的实例的示意图;
图2示出可应用于每个实施例的SSD的配置的实例的框图;
图3A和3B是具体地示出芯片的实例的配置的视图;
图4A和4B是示出地址和块之间的关联的示意图;
图5是示出根据每个实施例的数据写入处理的实例的流程图;
图6是示出排序规则的示意图;
图7是示出存储体-芯片-面配置的示意图;
图8是示出能够进行并行写入的空闲块的选择处理的实例的流程图;
图9是示出始终共同使用多个物理块的实例的示意图;
图10A和10B是示出以预定周期执行地址的写入的实例的示意图;
图11是示出根据第二实施例的排序规则生成方法的示意性流程图;
图12A至12C是示出排列小周期并生成新排列规则的实例的示意图;
图13A和13B是示出根据第二实施例以预定周期的地址的写入的实例的示意图;
图14是示出当面的数目较大时根据第二实施例的排序规则的实例的示意图;
图15是示出存储体-芯片-面配置的排序规则的实例的示意图;
图16A至16C是示出使用二进制随机数序列计算排序规则的实例的示意图;
图17是示出第三实施例的第一方法的跳过排序规则的处理的实例的流程图;
图18是示出跳过第三实施例的第一方法的排序规则的实例的示意图;
图19是示出第三实施例的第二方法的跳过排序规则的处理的实例的流程图;
图20A和20B是示出跳过第三实施例的第二方法的排序规则的实例的示意图;
图21A和21B是示出跳过第三实施例的第二方法的排序规则的另一实例的示意图;以及
图22是示出根据第三实施例的修改的排序规则的实例的示意图。
具体实施方式
一般地,根据一个实施例,一种存储器系统,包括:非易失性存储器、管理单元、排序规则保持单元、位置信息存储单元、列表选择单元、块选择单元、写入单元、和更新单元。所述非易失性存储器包括多个存储区域,每个存储区域包括多个块,每个块是数据擦除的单位。所述非易失性存储器被配置为能够对于不同存储区域中包括的块进行并行写入。所述管理单元保持对于每个存储区域的空闲块列表,所述空闲块列表指示作为没有存储有效数据的块的空闲块。所述排序规则保持单元保持排序规则,所述排序规则是用于确定所述空闲块列表的排序的信息。所述位置信息存储单元存储位置信息,所述位置信息指示在所述排序规则中空闲块列表的位置。所述列表选择单元选择与所述位置信息指示的位置相应的空闲块列表。所述块选择单元从所述列表选择单元选择的空闲块列表选择空闲块。所述写入单元在所述块选择单元选择的空闲块中写入数据。所述更新单元在所述列表选择单元选择空闲块列表之后,用指示随后选择的空闲块列表的位置的位置信息来更新在所述位置信息存储单元中存储的位置信息。
<每个实施例共同的配置>
以下,将参照附图详细描述存储器系统的实施例。然而,本发明不限于所述实施例。图1示出可应用根据每个实施例的存储器系统的计算机200的实例的外观。图1中示例出的计算机200是所谓的便携式计算机,其被配置为便携式的小尺寸和轻重量。计算机200包括主体201和显示单元202。显示单元202包括显示外壳203和存储在显示外壳203中的显示设备204。
主体201包括机壳205、键盘206、和触摸板207,其对应于定点设备。在机壳205中,存储主电路板、光盘驱动器(ODD)单元、卡槽、和固态驱动器(SSD)100。主电路板安装有计算机200的主要组件,例如中央处理单元(CPU)、只读存储器(ROM)、和随机存取存储器(RAM)。OOD单元执行光盘(例如压缩盘(CD)或数字通用盘(DVD))上的数据读取/写入操作。
卡槽被设置为与机壳205的外围壁临近。在外围壁上,设置有面向卡槽的开口208。用户可通过开口208将增加的设备从机壳205插入至卡槽中。
SSD 100是使用可写非易失性半导体存储器的存储设备。SSD 100可以在计算机200中安装SDD以存储操作系统(OS)或各种程序的状态下使用,而并非安装在传统硬盘驱动器(HDD)。然而,不限于此,SSD 100可在SSD插入至计算机200中包括的卡槽中的状态下用作增加的设备。
图2示出可应用于每个实施例的SSD 100的实例的配置。图示地,SSD100具有控制单元130、接口单元120、缓冲存储器121、和非易失性存储器单元122。控制单元130、接口单元120、缓冲存储器121、和非易失性存储器单元122被配置为连接至信号线,例如总线110,并且彼此交换数据。
接口单元120与主机装置通信。在上述图1和2的实例中,连接计算机200作为主机装置。以下,将计算机200描述为主机装置。接口单元120从主机装置200接收读取、写入或闪存命令,并向控制单元130通知命令的接收。接口单元120根据来自控制单元130的指令与主机装置200交换数据。
缓冲存储器121包括易失性存储器,例如动态RAM(DRAM)。缓冲存储器121临时存储在接口单元120和主机装置200之间交换的数据或从非易失性存储器单元122中读取或在其中写入的数据。然而,不限于此,SSD 100中的各种管理信息可以存储在缓冲存储器121中。
非易失性存储器单元122是其中数据为可重写并且存储的内容没有擦除(即使停止供电)的存储器。例如,在非易失性存储器单元122中存储从主机装置200发送的用户数据。然而,不限于此,除了用户数据之外,非易失性存储器单元122可在SSD 100中存储各种管理信息。
非易失性存储器单元122具有作为非易失性存储器存储介质的NAND闪存以及控制NAND闪存的NAND控制器(附图中未示出)的芯片123。每个芯片123可具有多个面(plane),他们是能够独立访问控制的存储区域。图3A和3B具体地示出非易失性存储器单元122的芯片123的实例的配置。在这个实例中,芯片123具有面#0和面#1的两个面,并且每个面具有多个块#0、#1、...、和#n,他们具有预定存储容量。
在芯片123中用作物理存储区的物理块的块是芯片123的数据擦除单位。可将多个物理块作为一个逻辑块来收集和处理。在这种情况下,逻辑块变为数据擦除单位。以下,将物理块和逻辑块简单地称为块,而不将物理块和逻辑块彼此区分。
当在芯片123的任意块中写入数据时,从块单位的相应块擦除数据,并且在相应块中写入新数据。由此,实质上在块单位中执行对于芯片123的数据写入操作。
在NAND闪存的芯片123中,所述面被配置,使得能够并行地在芯片中进行访问。例如,如图3A所示,在给出标号#0的芯片123中,能够对于属于面#0的块#0以及属于面#1的块#2进行并行访问。同时,如图3B所示,在相同标号#0的芯片123中,禁止对于块#0以及属于面#0的块#2进行并行访问。
在NAND闪存中,作为总存储容量,配备比向主机装置200提供的存储容量更大的存储容量。因此,在任意时间点,存在存储有效数据的块以及没有存储有效数据的块。没有存储有效数据的块称为空闲块。存储有效数据的块称为活动块。
再参照图2,控制单元130具有块管理单元131、数据读取单元132、数据写入单元133、数据管理单元134、和NAND驱动器135的各个功能。控制单元130通过接口单元120控制与主机装置200的通信,或者控制在缓冲存储器121和非易失性存储器单元122中存储的数据的管理或读取/写入。
控制单元130的各个功能可被配置为作为电路嵌入的SoC(片上系统)。然而,不限于此,通用处理器可用作控制单元130的硬件,并且这些功能可实现为在通用处理器上操作的软件。
在控制单元130中,数据管理单元134管理在表示数据的存储位置的地址(用于主机装置200和数据管理单元之间)和作为非易失性存储器单元122中的实际存储区域的块位置之间的相应关系。所述地址是用于主机装置200和SSD 100之间的地址。当写入数据时,动态关联所述地址和所述块。
将使用图4A和4B来描述在数据管理单元134中地址和块之间的关联。例如,如图4A所示,假设由主机装置200指定的数据的地址为地址A0、A1、...,并且在非易失性存储器单元122中某个面的块地址为块B0、B1、...。此外,假设由一个地址指定的数据的大小等于一个块的存储容量。
这里,考虑如下情况:在与地址A1相应的块中存储有效数据,并且实际用作非易失性存储器单元122中的地址A1的存储区域为块B1。在这种情况下,块B1为活动块,例如与块B1临近的块B2为空闲块。
在图4A的状态下,假设从主机装置200接收用于指示覆写地址A1的数据的命令。当相同地址的数据被覆写时,在块单位中执行数据覆写处理。数据管理单元134分配一个空闲块(例如块B2),并且在分配的空闲块中写入从主机装置200接收的数据。在对于空闲块写入数据之后,数据管理单元134将主机装置200指定的地址A1与实际写入数据的块B2关联。
结果,如图4B所示,块B2变为活动块。在覆写之前存储地址A的数据的块B1中,由于存储的数据变为无效,则块B1变为空闲块。如上所述,在SSD中,即使数据为指定为相同地址A1的数据,但是在每当写入数据时,用作实际存储区域的块改变。
再参照图2,数据读取单元132控制数据从非易失性存储器单元122的读取。数据写入单元133控制数据对于非易失性存储器单元122的写入。NAND驱动器135控制非易失性存储器单元122的NAND控制器(图中未示出),以根据数据读取单元132或数据写入单元133的请求从非易失性存储器单元122读取数据或在其中写入数据。
块管理单元131具有空闲块管理单元140和空闲块选择单元150,并且管理非易失性存储器单元122中的空闲块和选择在写入数据时使用的空闲块。空闲块管理单元140保持和管理空闲块列表,这是指示与没有存储有效数据的块相应的空闲块的信息。例如,空闲块管理单元140保持对于各个面的空闲块列表1410、1411、...、141m、和141n,他们是用于管理非易失性存储器单元122的空闲块的结构。基于与相应空闲块所属的面相应的空闲块列表141m,由空闲块管理单元140来管理非易失性存储器单元122的空闲块。
假设空闲块列表141m指示由空闲块管理单元140管理的空闲块列表1410至141n之间的任意空闲块列表。
空闲块列表141m可采取如下形式:包括与作为节点的每个空闲块相应的块标识符的块信息联接于每个空闲块列表。对于联接空闲块与空闲块列表的顺序,可使用简单的FIFO(先入先出),或者可按照根据空闲块的擦除计数对空闲块分类的顺序来联接空闲块。对于禁止并行写入的多个面,可将空闲块收集在一个空闲块列表中,并且可管理空闲块。
当在非易失性存储器单元122中写入数据时,空闲块选择单元150根据排序规则选择非易失性存储器单元122的空闲块。空闲块选择单元150具有排序规则操作单元151、位置信息更新单元152、排序规则保持单元153、和位置信息存储单元154。
排序规则保持单元153保持排序规则。排序规则是用于确定空闲块列表的排序的信息,并且由表格式或操作格式来定义。或者,排序规则可由除了表格式和操作格式之外的格式来定义。排序规则保持单元153可由存储设备的一部分或存储区域(图中未示出)来配置。排序规则操作单元151基于排序规则操作排序序列。排序序列是指示基于排序规则生成的空闲块列表的排序的信息。例如,排序序列是按顺序排列空闲块列表的标识符的信息。基于以下所述的排序序列和位置信息来选择空闲块列表。
位置信息存储单元154存储位置信息。位置信息是指示当根据排序规则生成空闲块列表的排序序列时在排序序列上的位置的信息。即,位置信息是指示基于排序规则确定的空闲块列表的排序的信息。位置信息更新单元152更新在位置信息存储单元154中存储的位置信息。例如,在排序规则操作单元151选择空闲块列表之后,位置信息更新单元152用指示随后选择的空闲块列表的位置信息来更新位置信息。
接下来,将使用图5的流程图示意性描述根据每个实施例的数据写入处理。在每个实施例中,当写入数据时,在缓冲存储器121中临时存储从主机装置200接收的写入数据。在缓冲存储器121中存储了足够量的数据之后,从缓冲存储器121读取所述写入数据,并将其并行地写入多个空闲块中。
在图5中,如果接口单元120等待来自主机装置200的写入命令并且接收到写入命令(步骤S10),则接口单元120向控制单元130通知写入命令的接收(步骤S11)。写入命令包括指示写入数据的写入地址的信息。
在接收到写入命令的接收的通知之后,在下一步骤S12,控制单元130的数据写入单元133在缓冲存储器121上分配一区域以接收从主机装置200发送的写入数据。数据写入单元133指示接口单元120在缓冲存储器121上分配的区域中接收从主机装置200发送的写入数据。在下一步骤S13,接口单元120接收从主机装置200发送的写入数据,以及在步骤S12中的缓冲存储器121上分配的区域中存储接收的写入数据。
在下一步骤S14,数据写入单元133确认在缓冲存储器121中存储的写入数据的量,并确定是否在缓冲存储器121中存储了预定量的写入数据。当确定了在缓冲存储器121中存储的写入数据的量小于预定量时,处理返回至步骤S10,并且数据写入单元133等待来自主机装置200的命令。
同时,当在步骤S14确定在缓冲存储器121中存储了预定量的写入数据时,处理进行至步骤S15。在步骤S15,数据写入单元133计算需要写入在缓冲存储器121中存储的写入数据的空闲块的数目。
在下一步骤S16,数据写入单元133请求空闲块管理单元140提供在步骤S15中计算的所需数目的空闲块。当数据写入单元133请求空闲块管理单元140提供空闲块时,处理进行至步骤S17,这是每个实施例的特征。在步骤S17,空闲块管理单元140接收来自数据写入单元133的请求,并从空闲块列表1410、1411、...、141m、和141n提取能够并行写入的所需数目的空闲块的组。空闲块管理单元140向数据写入单元133返回用于指示提取的空闲块的信息。
在下一步骤S18,数据写入单元133请求NAND驱动器135并行地在从空闲块管理单元140获得的信息所指示的空闲块中写入在缓冲存储器121上的写入数据。在下一步骤S19,NAND驱动器135控制非易失性存储器单元122的NAND控制器(图中未示出),并执行从数据写入单元133请求的写入数据的并行写入。
如果在步骤S19,在空闲块中写入了所述写入数据,则在下一步骤S20,数据写入单元133在数据管理单元134中登记写入数据的地址和块之间的相应关系。在下一步骤S21,数据管理单元134向空闲块管理单元140通知在登记之前(即在步骤S19中写入之前)作为空闲块的与指示写入数据的写入的地址关联的活动块。
在下一步骤S22,空闲块管理单元140识别与在步骤S21从数据管理单元134通知的空闲块所属的面相应的空闲块列表141m,并且将从数据管理单元134通知的空闲块与识别的空闲块列表141m联接。
<第一实施例>
接下来,将描述第一实施例。以下,将详细描述作为第一实施例的特征的空闲块选择处理(图5的步骤S17)。
当空闲块管理单元140选择能够并行写入的空闲块的组时,空闲块管理单元140根据预定排序规则从空闲块管理单元140管理的空闲块列表1410、1411、...、141m、...、和141n选择空闲块列表141m,并从选择的空闲块列表141m获取空闲块。
优选地,排序规则是这样的规则:如果从空闲块列表1410、1411、...、141m、...、和141n选择空闲块列表141m,则可按基于排序规则操作的排序顺序所示的排序获得能够并行写入的空闲块的组的规则。
例如,如图6所示,考虑如下情况:非易失性存储器单元122的芯片的数目为4,并且在每个芯片#0至#3中的面的数目为2。在这种情况下,存在总共8个面P0至P7,并且在8个面中能够并行写入。如果从每个面选择一个空闲块,则能够实现8个并行写入的最大值。
在图6中,每个矩形示出一个块,并且在每个矩形中的数字指示与块动态关联的地址。在图6中,箭头示出对于块的数据的写入方向或空闲块获取方向。这适用于以下所述的附图,只要没有给出特定论述。
例如,标识符“0”至“7”关联于与面P0至P7相应的空闲块列表141m、141m+1、...、和141m+7,按预定排序来排列标识符,并且如表达式1所示生成由标识符的序列表示的并且具有长度8的排序规则。先前生成排序规则,并且保持在排序规则表153中。
{0,1,2,3,4,5,6,7} (1)
如果表达式1中所示的排序规则被循环重复,则可选择能够8个并行写入的最大值的空闲块,即使空闲块开始从任意位置选择。例如,当开始从排序规则上的标识符“4”指示的位置选择空闲块时,由表达式2所示,空闲块列表可开始从标识符“4”的位置选择,选择位置可从标识符“7”的位置循环返回至标识符“0”的位置,并且可依次选择空闲块列表,直到标识符“3”的位置。
{4,5,6,7,0,1,2,3} (2)
接下来,考虑在能够并行写入的面的组上施加限制的情况。在这种情况下,可生成排序规则,使得在该排序规则下不能够并行写入的面之间的排序序列上的距离尽可能远。
例如,如图7所示,考虑非易失性存储器单元122的芯片的数目为4,每个芯片123中的面的数目为2,以及将芯片123分成两组,每组两个,以配置两个存储体3001(存储体B0)和3002(存储体B1)。以下,这个配置称为存储体-芯片-面配置。在存储体-芯片-面配置中,因为不能够并行写入,所以在属于相同存储体的芯片上施加限制。由此,在这种情况下,最大并行性(即能够并行写入的块的最大数目)变为4。
在图7中,在每个存储体中,将芯片123区分为芯片C0和C1,并且将每个芯片123中的面区分为面P0和P1。
在图7中,将每个面表示为“B(存储体号)C(存储体中的芯片号)P(芯片中的面号)”。例如,属于存储体B0的芯片C0中的面P0表示为“B0C0P0”。考虑生成由以下表达式3所示的排序规则。在表达式3所示的排序规则中,通过在每个存储体中选择一个芯片来实现4个并行写入的最大值。
{B0C0P0,B0C0P1,B1C0P0,B1C0P1,B0C1P0,B0C1P1,B1C1P0,B1C1P1} (3)
在表达式3所示的排序规则中,当空闲块开始从面P0获取时,可获取空闲块以能够4个并行写入的最大值。例如,当空闲块开始从面B1C0P0获取时,可按面B1C0P0、面B1C0P1、面B0C1P0、和面B0C1P1的顺序获取空闲块。
同时,当空闲块开始从面P1获取时,可获取仅能够3个并行写入的空闲块。例如,当空闲块开始从面B0C0P1获取时,在按照B0C0P1、面B1C0P0、和面B1C0P1的顺序获取的空闲块中能够并行写入。由于下一面B0C1P0是与空闲块从中开始选择的面B0C0P1相同的存储体中的不同芯片的面,所以在属于面B0C1P0的空闲块与从面B0C0P1获取的空闲块中不能够并行写入。
作为在能够并行写入的面的组上施加限制的情况,排序规则并非可一直获取具有最大并行性的空闲块的排序规则。
接下来,将详细描述根据第一实施例的空闲块获取处理。图8是示出通过块管理单元131对于能够并行写入的空闲块的选择处理的第一实施例。根据图8的流程图的处理相应于以上所述的图5的流程图中的步骤S17的处理。在以下说明书中,假设在图5的步骤S16中从数据写入单元133需要所需数目r个空闲块。此外,假设将排序规则先前确定为预定排序规则。
首先,块管理单元131从位置信息存储单元154获取位置信息Pos(步骤S30),并且计算在空闲块开始从获取的位置信息Pos指示的位置的空闲块列表141m选择时的最大并行性q(步骤S31)。
最大并行性q取决于在能够进行上述并行写入的面的组上的限制以及空闲块选择处理的开始位置。即,最大并行性q取决于在非易失性存储器单元122中芯片123的配置或基于存储体的芯片123的操作。
关于操作的限制的信息可先前存储在块管理单元131或非易失性存储器单元122的ROM(只读存储器)(图中未示出)中。然而,不限于此,当可根据主机装置200的一端动态设置限制或操作时,可通过接口单元120从主机装置200提供限制或操作。块管理单元131基于位置信息Pos和指示限制或操作的信息计算最大并行性q。
在下一步骤S32,将块获取数目rb和列表选择计数i分别初始化为0,并且处理进行至步骤S33。
在步骤S33,块管理单元131将位置信息Pos传送至排序规则操作单元151。排序规则操作单元151根据位置信息Pos和排序规则表153中保持的预定排序规则从空闲块管理单元140管理的空闲块列表1410、1411、...、141m、...、和141n选择与列表选择计数i相应的一个空闲块列表141m。以下,将与列表选择计数i相应的空闲块列表141m描述为空闲块列表L(i),只要没有给出特定论述。将选择的空闲块列表L(i)返回至块管理单元131。
块管理单元131检查空闲块是否保持在从排序规则操作单元151返回的空闲块列表L(i)中。当确定空闲块没有保持在空闲块列表L(i)中时,处理进行至步骤S37。在这种情况下,不能够从空闲块列表L(i)获得空闲块。
同时,在步骤S34,当确定空闲块保持在空闲块列表L(i)中时,处理进行至步骤S35。在步骤S35,空闲块选择单元150从空闲块列表L(i)选择空闲块B(i)。块管理单元131获取选择的空闲块B(i)。在下一步骤S36,块管理单元131将块获取数目rb增加1。在下一步骤S37,空闲块选择单元150将列表选择计数增加1,并计算列表选择计数。
在下一步骤S38,位置信息更新单元152用指示基于排序规则的排序序列上的下一位置的位置信息Pos来更新在位置信息存储单元154中保持的位置信息Pos。此时,当下一位置超出基于排序规则的排序顺序上的最后位置时,位置信息更新单元152将下一位置设置在基于排序规则的排序序列的头部。
处理进行至步骤S39,并且块管理单元131确定块获取数目rb是否达到空闲块获取数目r。当确定块获取数目rb达到空闲块获取数目r时,基于图8的流程图的处理系列结束,并且处理进行至图5的步骤S18。
同时,当在步骤S39确定块获取数目rb没有达到空闲块获取数目r时,处理进行至步骤S40。在步骤S40,块管理单元131确定列表选择计数i是否达到最大并行性q。当确定列表选择计数没有达到最大并行性q时,处理返回至步骤S33,并且执行与下一空闲块列表L(i)相关的处理。
同时,当确定列表选择计数达到最大并行性q时,基于图8的流程图的处理系列结束,并且处理进行至图5的步骤S18。即,在这种情况下,获取的空闲块数目没有达到所需数目,并且不能够从空闲块管理单元140管理的空闲块列表1410、1411、...、141m、...、和141n获取能够并行写入的空闲块的组。因此,空闲块选择处理结束。
根据第一实施例,生成排序规则,使得如果按所示排序选择空闲块列表,则可获取能够并行写入的空闲块的组。即使当从主机装置重复对于特定地址的写入时,可通过根据排序规则获取空闲块来抑制面之间的块获取计数的差,并且可避免擦除操作集中于特定块。
当在缓冲存储器中累计对于多个不同地址的写入数据时,可避免写入操作集中于特定块,并且可在尽可能多的面上执行并行写入。因此,可保持较高传输性能。
在以上说明书中,管理单元是芯片的唯一物理块,例如空闲块或活动块,但是本发明不限于这个实例。例如,如图9所示,当始终收集和使用多个物理块时,可将收集多个块的逻辑块用作管理单元。
在图9中,存储体-芯片-面配置与上述图7的配置相同。在图9中,在存储体B0和B1的每个中,收集和管理芯片C0和C1的编号相应的面。在存储体B0的实例中,收集芯片C0的面P0和芯片C1的面P0,并作为面P0’来管理。同样,收集芯片C0的面P1和芯片C1的面P1,并作为面P1’来管理。
在这种情况下,通过存储体B0的面P0’和面P1’以及存储体B1的面P0’和面P1’能够进行4个并行写入。排序顺序可应用于存储体B0的面P0’和面P1’以及存储体B1的面P0’和面P1’。
<第二实施例>
接下来,将描述第二实施例。在第二实施例中,将按照可获得能够最大并行写入的空闲块的组的顺序来一次性排列所有空闲块列表的排序规则定义为排序规则的小周期。通过按预定顺序排列小周期,生成新的长周期排序规则。
在第一实施例中描述的空闲块选择方法中,根据写入数据的地址模式,空闲块数目和活动块数目可能在空闲块列表之间不同。这是因为,当某个地址A被覆写时,与写入之前的地址A关联的活动块B1和在被获取用于写入的空闲块B2不必属于相同面。
具体地,当活动块B1和空闲块B2属于不同面时,在与活动块B1所属的面相应的空闲块列表中,空闲块列表中的空闲块的数目增加1;以及在与活动块B2所属的面相应的空闲块列表中,空闲块列表中的空闲块的数目减少1。
在通用的方法中,由于写入地址随机分布,所以假设在空闲块列表之间的空闲块数目的差不是很大。然而,在第一实施例中描述的排序规则下,当在写入请求的地址中存在特定模式时,空闲块可能集中于特定空闲块列表,并且在其他空闲块列表中空闲块可能被用尽。在这种情况下,降低在通过块管理单元131选择空闲块时的并行性,并且降低传输性能。
例如,当从头地址对于从SSD 100向主机装置200提供完整容量执行写入时(称为全尺寸顺序写入),与特定周期的地址相应的活动块集中于特定面。这将使用图10A来特别描述。当面的数目为8时,与“块地址×8”相应的活动块集中于面0上。在图10A的实例中,与地址A0、A8、A16、...相应的活动块集中于面0上。这适用于其他面。
这里,考虑重复地址为“块地址×8”的写入。在这种情况下,从所有面P0至P7选择用于写入的空闲块(图10A中的阴影部分)。同时,在写入之后释放的活动块集中于面P0上。由此,如图10B所示,在释放活动块之后,空闲块也集中于面P0上。
如果在与属于特定面的活动块关联的地址中存在周期性,则难以保持在写入时的并行性,或者对于在周期内覆写地址的写入模式平衡块之间的擦除计数。
在第二实施例中,根据上述第一实施例的排序规则改变,从而最小化周期性或者周期变长。图11是示意性示出根据第二实施例的顺序排序生成方法的实例的流程图。
首先,以与第一实施例相同的方式生成排序规则,并将其定义为小周期(步骤S50)。接下来,在步骤S50中生成的小周期内部分地改变基于排序规则的排序,并且生成另一小周期(步骤S51)。最后,以预定顺序排列多个在步骤S50中生成的小周期以及在步骤S51中生成的另一小周期,并且生成新排序规则(步骤S52)。新排序规则是具有比原始排序规则的周期更长的周期的长周期排序规则。即,基于多个不同的小周期排序规则生成长周期排序规则。
在步骤S52,可多次使用每个小周期和另一小周期,并且可连续多次使用相同小周期。在步骤S51,存在可通过改变小周期中的空闲块列表生成的大量其他小周期。然而,当在步骤S52生成新排序规则时,不需要使用可被考虑的所有小周期。
接下来,将使用特定实例来描述第二实施例。首先,作为第一实例,将描述能够并行写入的面的数目为2的情况。以下,将面描述为面Px(x是等于或大于0的整数),或简单地描述为Px,并且将地址描述为地址Ax,或简单地描述为Ax。
参照图12A,当能够并行写入的面的数目为2时,显示为小周期A和下方的小周期B的两种小周期作为排序规则的小周期存在。可先前生成每个小周期的排序规则,并且可保持在排序规则表153中。
小周期A:{P0,P1}
小周期B:{P1,P0}
排列小周期A和B,并且生成新排序规则。图12B示出小周期A和小周期B的每个使用4次并且使用8个小周期生成具有16长度的排序规则的实例。参照图12C,以上情况的排序规则如表达式4所示。位置信息更新单元152根据排列小周期A和小周期B的新排序规则更新位置信息。
{P0,P1,P1,P0,P1,P0,P0,P1,P1,P0,P0,P1,P0,P1,P1,P0} (4)
当根据基于表达式4的排序规则执行上述全尺寸顺序写入时,如图13A所示,向块分配地址。即,根据排序规则,以面P0和面P1的顺序向面P0和P1的头块分配地址A0和A1。以面P1和面P0的顺序向随后块分配地址A2和A3。以下,根据排序规则顺序分配地址A4、A5、...。
然后,图13B中示出执行地址变为“块大小×k”的周期性写入的实例,其中示出k=2的情况的实例,k=4的情况的实例,以及k=8的情况的实例。
在k=2的情况下,释放在全尺寸顺序写入时分配的地址中与地址A0、A2、A4、...相应的块。在k=4的情况下,释放在全尺寸顺序写入时分配的地址中与地址A0、A4、A8、...相应的块。在k=8的情况下,释放在全尺寸顺序写入时分配的地址中与地址A0、A8、A16、...相应的块。
如果通过释放的块所属的平面示出k=2、k=4和k=8中的每个,则建立以下表达式5至7。
k=2:{P0,P1,P1,P0,P1,P0,P0,P1,...} (5)
k=4:{P0,P1,P1,P0,...} (6)
k=8:{P0,P1,...} (7)
如表达式5至7所示,即使通过能够并行写入的面的数目的倍数周期执行写入,抑制在写入之前的活动块集中于特定面上。然而,当地址周期变为排序规则的长度的倍数时(在这个实例的情况下k=16),在写入之前的活动块集中于特定面上。
接下来,将描述在排序规则操作单元151中的排序规则操作方法。作为排序规则操作单元151的形式,考虑两种类型:使用在其中保持先前生成的排序规则的表的表方法和通过运算来计算排序规则的操作方法。
在表方法中,在排序规则表中先前保持通过排列具有排序规则的小周期生成的新排序规则。当选择空闲块列表时,排序规则操作单元151参考由排序规则表153上的位置信息Pos指示的排序规则下排序序列上的位置,并搜索空闲块列表的标识符。
运算方法是排序规则操作单元151通过运算从位置信息Pos生成空闲块标识符并生成排序规则的方法。例如,在面的数目为2并且长度为16的排序规则的实例中,可通过以下表达式8示例的运算来确定面。
表达式8基于通常用作程序语言的C语言描述操作序列。在C语言中,不允许二进制记法。然而,在表达式8中,在“0b”之后的“0”和“1”表示通过增加“0b”作为前缀的二进制数。例如,“0b10010110”等于十六进制记法的“0x96”。在表达式8中,在通过冒号(:)划分的每行的头部描述的每个数字指示行号。集中通过行号“1”至“5”指示的5行以配置表达式8。在双斜线(//)之后的内容描述各个行。
1:pattern=0b10010110;//binary number representing the orders ofshort periods
2:y=pos/2;//order of a short period
3:x=pos%2;//order of a short period among short periods
4:period_id=(pattern>>y)&0b1;//short period to be used
5:plane_id=period_id^x;//Exclusive-OR of short period identifiersand orders in short periods
(8)
在表达式8中,值pos是指示位置信息的值,并且采用0至15的范围内的值。值period_id是指示小周期的值,并且假设值0指示小周期A,值1指示小周期B。值plane_id指示按这个顺序选择的面的数目。在表达式8的示例中,通过第5行的表达式表示小周期A和小周期B的排序规则。
接下来,将描述能够并行写入的面的数目较多的情况。当能够并行写入的面的数目较多时,排序被改变的小周期的数目增加。此时,当组合小周期并且生成排序规则时,不需要使用被考虑的所有小周期。当空闲块列表的选择开始位置在小周期的中间时,可在不同小周期上执行空闲块列表的选择。即使在这种情况下,优选地,选择小周期,从而最大地保持并行性并排列小周期。
例如,考虑在面的数目为8并且在面之间的并行写入上没有施加限制的情况。在这种情况下,被考虑的小周期的数目为8。
如果按表达式9和表达式10的顺序排列由以下表达式9和10所示的小周期(通过与面相应的空闲块列表的标识符所示),当在表达式9所示的小周期以及表达式10所示的小周期上执行空闲块列表的选择时,连续选择面P7的空闲块列表。为此,不能够选择在两个小周期上能够并行写入的块的组。
{0,1,2,3,4,5,6,7} (9)
{7,0,1,2,3,4,5,6} (10)
因此,选择和排列小周期,从而在连续选择的位置处的空闲块列表的标识符并不相同。因此,即使在小周期上执行空闲块列表的选择,也可选择能够并行写入的空闲块的组。
例如,考虑通过以下表达式11和12所示的小周期。可将表达式12所示的排序规则看作通过对于表达式11所示的排序规则用7来扩展顺序所获得的排序规则。如果以表达式11和表达式12的顺序排列由表达式11和12所示的小周期,则连续执行选择的表达式11的尾部的标识符和表达式12的头部的标识符彼此不同。为此,即使在表达式11所示的小周期和表达式12所示的小周期上执行选择时,可选择能够并行写入的空闲块的组。即使当在小周期上执行选择时,可选择能够进行具有并行性7的并行写入的空闲块的组。
{0,1,2,3,4,5,6,7} (11)
{1,2,3,4,5,6,7,0} (12)
图14示出当面的数目为8(面P0至P7)并且在面之间的并行写入上没有施加限制时的排序规则的实例。面P0至P7与不同空闲块列表的标识符P0至P7关联。在图14的实例中,排列基于排序规则{P0,P1,P2,P3,P4,P5,P6,P7}的小周期(其中使用标识符P0作为头部,使用标识符P7作为尾部)以及对于小周期A通过在排序规则上的排序用7来扩展而获得的小周期B,C,...H,并且生成新排序规则。通过排列排序规则的不同小周期,抑制空闲块集中于特定面。
在图14的实例中,在新排序规则下,重复4次排列小周期A至H中的每个,并且小周期的总数变为32,长度变为256。可多次重复排列相同的小周期。在重复排列相同小周期的范围内,能够进行8个并行写入。
优选地,排列各个小周期A至H,从而最大化当在不同小周期上执行空闲块列表的选择时的并行性。在图14的实例中,当不同小周期彼此临近时,生成小周期的排序规则,从而在空闲块列表的选择排序中,小周期的排序规则中的顺序用7来扩展。在这种情况下,当在小周期上执行空闲块列表的选择时,可选择用并行性7能够进行并行写入的空闲块的组。
接下来,将描述对于在第一实施例中使用图7描述的存储体-芯片-面配置中在并行写入上施加的限制的情况应用第二实施例的实例。在这种情况下,如上所述,根据空闲块开始从中获取的面改变最大并行性。
图15示出存储体-芯片-面配置中的排序规则的实例。在图15的实例中,存储体的数目为4(B0至B3),在每个存储体中芯片的数目为2(C0和C1),在每个芯片中面的数目为2(P0和P1),面的总数为16。在这种情况下,由于施加用于指示对于相同存储体中的不同芯片禁止并行写入的限制,所以最大并行性为8。
在图15中,通过组合存储体号、芯片号、和面号将与每个面相应的空闲块列表的标识符表示为“B0C0P0”。
在图15的实例中,在小周期中以面号、存储体号、和芯片号的顺序作出改变,并且生成每个小周期的排序规则,从而最大化并行性。例如,小周期A的排序规则为{B0C0P0,B0C0P1,B1C0P0,B1C0P1,B2C0P0,B2C0PI1,B3C0P0,B3C0P1,B0C1P0,B0C1P1,B1C1P0,B1C1P1,B2C1P0,B2C1P1,B3C1P0,B3C1P1}。
在图15中所示的排序规则中,类似于使用图7所述的实例,当空闲块开始从面P0获取时,能够进行8个并行写入。同时,当空闲块开始从面P1获取时,由于施加用于指示对于相同存储体中的不同芯片的面P0和P1禁止并行写入的限制,所以将并行写入限制为7个并行写入。
配备小周期B,其中在不改变小周期A的存储体号和芯片号的情况下仅改变面号。为了防止由于对于周期性地址的写入而使得空闲块集中于特定存储体上,配备对于各个小周期A和B改变存储体的顺序的小周期C至H。由于当在存储体顺序不同的小周期上执行选择时并行性被限制为5或6,连续排列具有相同存储体号顺序的小周期,并且生成新排序规则。具体地,连续排列小周期A以及具有与小周期A相同的存储体号顺序的小周期B。同样,分别连续排列小周期C和D、小周期E和F、和小周期G和H。
在以上说明书中,通过表方法或运算方法先前生成按照预定次数排列小周期的排序规则,但是本发明不限于此。例如,可使用随机数来动态计算排序规则。
图16A至16C示出使用二进制随机数序列计算排序规则的实例。在图16A至16C的实例中,如果在每个小周期中随机值的值为0,则使用二进制随机数序列计算序列排序作为小周期A,以及如果随机值的值为1,则使用二进制随机数序列计算序列排序作为小周期B。当根据二进制随机数顺序计算排序规则时,如果二进制随机数序列为伪随机数,则排序规则的长度为“伪随机数的周期×面的数目”。由此,即使当在属于特定面的活动块关联的地址中存在周期性,相应地址的活动块集中于特定面上的周期变得非常长,并且这并不引起问题。
即使当使用随机数计算排序规则时,类似于以上情况,将表方法和运算方法看作排序规则操作单元151的形式。在表方法中,可保持随机数表作为排序规则表153中的排序规则。
在运算方法的情况下,在排序规则操作单元151中,可配备随机数操作符,并且可使用随机数运算要使用的小周期。例如,可通过以下表达式13所示的操作来确定基于随机数的面。由于方法的含义与表达式13的每个值通用于上述表达式8的值,这里将不再重复描述。
1:y=pos/2;//order of a short period
2:x=pos%2;//order of a short period among short periods
3:period_id=rand()&0b1;//determine a short period to be used,on thebasis of random numbers
4:plane_id=period_id^x;//exclusive logical sum of short periodidentifiers and orders in short periods
(13)
根据第二实施例,以预定顺序排列具有排序规则的小周期,并且生成具有更长周期的新排序规则。为此,即使当在来自主机装置的写入地址中存在周期性时,可抑制在空闲块列表之间的空闲块数目和活动块数目之间的差。在第二实施例中,由于最大并行性被配置为当排列小周期时被最大化,所以可保持传输性能。
<第三实施例>
接下来,将描述第三实施例。在上述第二实施例中,延长在排序规则保持单元中保持的排序规则,以隐藏在空闲块列表的选择中的周期性。第三实施例通过修改位置信息更新方法来实现相同效果。
在当前情况匹配于预定条件时,第三实施例跳过排序规则中的某个顺序。作为排序规则的跳过条件,可应用各种条件。接下来,将描述对于每个面的、当位置信息更新数目达到预定数目时跳过排序规则的第一方法以及当空闲块获取数目达到预定数目时跳过排序规则的第二方法。假设,对于例如空闲块选择单元150先前确定排序规则的跳过条件。
首先,将使用图17的流程图描述当位置信息更新数目达到预定数目时跳过排序规则的第一方法。图17的流程图相应于在上述图5的流程图中的步骤S17的处理。图17的流程图与在第一实施例中描述的图8的流程图的不同在于增加了跳过处理。
在图17的流程图中,将在某个时间点的位置信息更新数目设置为位置信息更新数目tPos,以及将其初始值设置为0。将用于确定是否跳过排序规则的位置信息更新数目tPos的阈值设置为作为预定值的跳过阈值sPos。此外,假设在图5的步骤S16中从数据写入单元133需要所需数目r个空闲块,并且排序规则被先前确定为预定排序规则。
首先,块管理单元131从位置信息存储单元154获取位置信息Pos(步骤S60),并且计算在空闲块开始从获取的位置信息Pos指示的位置的空闲块列表141m选择时的最大并行性q(步骤S61)。由于计算最大并行性q的方法通用于在图8的步骤S31中所示的方法,这里将不再重复描述。
在下一步骤S62,块管理单元131将块获取数目rb和列表选择计数i中的每个初始化为0,并且使得处理进行至步骤S63。在步骤S63,排序规则操作单元151根据从块管理单元131传送的位置信息Pos和预定排序规则从空闲块管理单元140管理的空闲块列表1410、1411、...、141m、...、和141n选择一个空闲块列表L(i),并且将选择的空闲块列表L(i)返回至块管理单元131。
块管理单元131检查空闲块是否保持在从排序规则操作单元151返回的空闲块列表L(i)中。当确定空闲块没有保持在空闲块列表L(i)中时,处理进行至步骤S67。
同时,在步骤S64,当确定空闲块保持在空闲块列表L(i)中时,处理进行至步骤S65。在步骤S65,空闲块选择单元150从空闲块列表L(i)选择空闲块B(i)。块管理单元131获取选择的空闲块B(i)。在下一步骤S66,块管理单元131将块获取数目rb增加1。在下一步骤S67,空闲块选择单元150将列表选择计数增加1,并计算列表选择计数i。
在下一步骤S68,位置信息存储单元154用指示基于排序规则的排序序列上的下一位置的位置信息Pos来更新在位置信息存储单元154中保持的位置信息Pos。此时,当下一位置超出基于排序规则的排序顺序上的最后位置时,位置信息更新单元152将下一位置设置在基于排序规则的排序序列的头部。
如果更新位置信息Pos,则处理进行至步骤S69,并且空闲块选择单元150将位置信息更新数目增加1。在下一步骤S70,空闲块选择单元150确定位置信息更新数目tPos是否等于或大于跳过阈值sPos。
当确定位置信息更新数目tPos等于或大于跳过阈值sPos时,处理进行至步骤S71,通过位置信息更新单元152将位置信息更新数目tPos初始化为0,并且处理返回至步骤S67。通过步骤S70的确定,处理返回至步骤S67,并且执行基于位置信息更新数目tPos的排序规则的跳过。
同时,当在步骤S79确定位置信息更新数目tPos小于跳过阈值sPos时,处理进行至步骤S72。在步骤S72,块管理单元131确定块获取数目rb是否达到空闲块所需数目r。当确定块获取数目rb达到空闲块所需数目r时,基于图17的流程图的处理系列结束,并且处理进行至图5的步骤S18。
同时,当确定块获取数目rb没有达到空闲块所需数目r时,处理进行至步骤S73。在步骤S73,块管理单元131确定列表选择计数i是否达到最大并行性q。当确定列表选择计数i没有达到最大并行性q时,处理返回至步骤S63,并且执行与下一空闲块列表L(i)相关的处理。
同时,当确定列表选择计数i达到最大并行性q时,基于图17的流程图的处理系列结束,并且处理进行至图5的步骤S18。
图18示出根据基于上述图17的流程图的处理执行排序规则的跳过的实例。在图18中,面的数目为8,并且能够进行8个并行写入。原始排序规则是重复仅小周期{0,1,2,3,4,5,6,7}的排序序列。图18示出在将跳过阈值sPos设置为32块以及位置信息更新数目tPos为32的情况下用下一位置更新位置信息Pos并且跳过排序规则的实例。
在图18的实例中,如果在原始排序规则的排序顺序下从第32个面P7获取空闲块,则跳过从接下来第33个面P0的空闲块的获取。此外,如果将位置信息更新数目tPos初始化为0,则重新开始累计位置信息更新数目tPos,并且位置信息更新数目tPos变为32,用下一位置来更新位置信息Pos,并且跳过排序规则。在这种情况下,跳过在原始排序规则的顺序序列中从第66个面P1的空闲块的获取。
具体地,首先,当在原始排序规则的顺序序列中从第32个面P7获取空闲块时,位置信息更新数目tPos变为32,并且处理从步骤S70返回至在图17的流程图中的步骤S67至步骤S71。在步骤S68,更新位置信息Pos,并且处理通过步骤S69至S73的处理返回至步骤S63。按照步骤S70的确定,在不获取空闲块的情况下更新位置信息Pos,并且跳过排序规则。
优选地,将跳过阈值sPos设置为排序规则的长度的倍数,以平衡空闲块列表之间的跳过频率。即,当将跳过阈值sPos设置为排序规则的长度的倍数时,如果获取与排序规则的长度相应的数目的空闲块,则跳过下一面并且从跳过的面的下一面获取与排序规则的长度相应的数目的空闲块。从而,排序规则在跳过位置处移动一个面,并且平衡在块之间的擦除计数。
同时,如果将跳过阈值sPos设置为(排序规则的长度的倍数)-1,仅在特定空闲块列表中生成跳过,并且这不是优选的。
接下来,使用图19的流程图来描述在第三实施例中的第二方法。当对于每个面,空闲块获取数目达到预定数目时,该方法跳过排序规则。基于图19的流程图的处理基本上与根据上述第一方法的基于图17的流程图的处理相同,除了执行跳过处理的时间不同。即,在第二方法中,对于每个面执行排序规则的跳过条件的确定,以控制每个面的跳过频率。
在这个方法中,对于每个空闲块列表L引入块获取分数t[L]。当从每个块列表获取块时,t[L]以分数增加值w[L]为单位增加。如果t[L]达到跳过阈值s[L],则跳过空闲块列表L的顺序。在块管理单元131中保持对于每个面的分数增加值w[L]、块获取分数t[L]、和跳过阈值s[L]。
首先,块管理单元131从位置信息存储单元154获取位置信息Pos(步骤S80),并且计算在空闲块开始从获取的位置信息Pos指示的位置的空闲块列表141m选择时的最大并行性q(步骤S81)。由于计算最大并行性q的方法通用于在图8的步骤S31中所示的方法,这里将不再重复描述。
在下一步骤S82,将块获取数目rb和列表选择计数i中的每个初始化为0,并且处理进行至步骤S83。在步骤S83,排序规则操作单元151根据从块管理单元131传送的位置信息Pos和预定排序规则从空闲块管理单元140管理的空闲块列表1410、1411、...、141m、...、和141n选择一个空闲块列表L(i),并且将选择的空闲块列表L(i)返回至块管理单元131。
在下一步骤S84,空闲块选择单元150将块获取分数t[L(i)]与跳过阈值s[L(i)]相比较,并确定块获取分数t[L(i)]是否等于或大于跳过阈值s[L(i)]。当确定块获取分数t[L(i)]等于或大于跳过阈值s[L(i)]时,在步骤S93,将从块获取分数t[L(i)]减去跳过阈值s[L(i)]获得的值设置为新块获取分数t[L(i)],并且处理进行至步骤S89。由于当确定块获取分数t[L(i)]等于或大于跳过阈值s[L(i)]时处理进行至步骤S89,所以在与空闲块列表L(i)相应的面中跳过排序规则。
同时,在步骤S84,当确定块获取分数t[L(i)]小于跳过阈值s[L(i)]时,处理进行至步骤S85。在步骤S85,块管理单元131检查空闲块是否保持在从排序规则操作单元151返回的空闲块列表L(i)中。当确定空闲块没有保持在空闲块列表L(i)中时,处理进行至步骤S89。
同时,在步骤S85,当确定空闲块保持在空闲块列表L(i)中时,处理进行至步骤S86。在步骤S86,空闲块选择单元150从空闲块列表L(i)选择空闲块B(i)。块管理单元131获取选择的空闲块B(i)。
在下一步骤S87,将块获取数目rb增加1。在下一步骤S88,空闲块选择单元150将分数增加值w[L(i)]与块获取分数t[L(i)]相加获得的值设置为新块获取分数t[L(i)]。处理进行至步骤S89,并且空闲块选择单元150将列表选择计数i增加1,并计算列表选择计数i。
在下一步骤S90,位置信息更新单元152用指示基于排序规则的排序序列上的下一位置的位置信息Pos来更新在位置信息存储单元154中保持的位置信息Pos。此时,当下一位置超出基于排序规则的排序顺序上的最后位置时,位置信息更新单元152将下一位置设置在基于排序规则的排序序列的头部。
如果更新位置信息Pos,则处理进行至步骤S91,并且块管理单元131确定块获取数目rb是否达到空闲块所需数目r。当确定块获取数目rb达到空闲块所需数目r时,基于图19的处理系列结束,并且处理进行至图5的步骤S18。
同时,当在步骤S91中确定块获取数目rb没有达到空闲块所需数目r时,处理进行至步骤S92。在步骤S92,块管理单元131确定列表选择计数i是否达到最大并行性q。当确定列表选择计数i没有达到最大并行性q时,处理返回至步骤S83,并且执行与下一空闲块列表L(i)相关的处理。
同时,当确定列表选择计数i达到最大并行性q时,基于图19的处理系列结束,并且处理进行至图5的步骤S18。
当多个空闲块列表具有相同值的分数增加值w[L]和跳过阈值s[L]时,如果块获取分数s[L]的初始值也设置为相同值(例如0),由于在相同时间执行多个空闲块列表的跳过,这不是优选的。为此,可对于每个空闲块列表,将块获取分数s[L]的初始值设置为不同值。
图20A和20B示出根据基于上述图19的流程图的处理执行排序规则上的跳过的实例。图20A示出分别设置为面P0至P7的每个的块获取分数t[L]的初始值、分数增加值w[L]、和跳过阈值s[L]。图20B示出这里的实例,其中面的数目为8,能够进行8个并行写入,并且原始排序规则变为重复仅小周期{0,1,2,3,4,5,6,7}的排序序列,这类似于上述图18。
在图20A的实例中,将分数增加值w[L]固定为1,并且跳过阈值s[L]可对于每个面改变。块获取分数t[L]显示在每个面中的空闲块获取数目,并且跳过阈值s[L]显示在生成排序规则的跳过的面中的空闲块获取数目。
在图20A的实例中,仅在面P6中将跳过阈值s[L]设置为8,以及在其他面中设置为32。为此,如图20B所示,面P6可相对于其他面增加跳过的频率。在图20B的实例中,在面P6中,当重复16次小周期时,生成两次跳过。同时,在其他面中,跳过的频率等于或小于1。
作为块获取分数t[L]的初始值,可对于每个面设置不同值。在图20A的实例中,在各个面P0至P7中,块获取分数t[L]的初始值偏移将跳过阈值s[L](=32)除以面的数目(=8)获得的值(=4)。由此,在除了面P6之外的7个面中,跳过的相位偏移4个小周期。例如,在图20B的实例中,对于块获取分数t[P0]的初始值28,在第5个小周期发生面P0的跳过,以及对于块获取分数t[P1]的初始值24,在第9个小周期发生面P1的跳过。同样,对于块获取分数t[P2]的初始值20,在第13个小周期发生面P2的跳过。
图21A和21B示出与上述图20A和20B的实例相比固定跳过阈值s[L]并且分数增加值w[L]可对于每个面改变的实例。如图21A所示,将跳过阈值s[L]固定值100,并且仅面P6的分数增加值w[L]为25,其他面的分数增加值为3。块获取分数t[L]的初始值基于将跳过阈值s[L](=100)除以面的数目(=8)获得的值(=12.5)偏移。在这种情况下,可以看出当分数增加值w[L]增加时,跳过的频率增加。
根据第三实施例,即使排序规则不复杂,也不具有长周期,但是排序规则的周期看起来较长和不规则,并且可隐藏空闲块列表的选择中的周期性。
例如,当仅特定面的总块数目或空闲块数目较小时,如果将跳过阈值s[L]设置为较小值,或者将分数增加值w[L]设置为较大值,可抑制空闲块的获取频率。从而,可预期平衡每个块的擦除计数,或平衡每个面的剩余空闲块数目。
<第三实施例的修改>
接下来,将描述第三实施例的修改。第三实施例的修改是第二实施例和第三实施例的组合实例。图22示出应用于第三实施例的修改的存储体-芯片-面配置的实例,其用在上述图15的实例中,并且在其中存储体的数目为4,每个面中的芯片的数目为2,每个芯片中的面的数目为2,并且总面数目为16。
在第二实施例中描述的图15的实例中,由于改变存储体排序的小周期也包括在排序规则中,所以排序规则很长并且复杂。同时,在根据图22中示出的第三实施例的修改的排序规则中,由于通过跳过来实现改变存储体排序的效果,所以排序规则具有组合小周期A和B的两个小周期的简单配置。
具体地,如使用第二实施例中的图15所述,排序规则操作单元151以面号、存储体号、和芯片号的顺序改变小周期,并且生成每个小周期的排序规则。例如,小周期A的排序规则为{B0C0P0,B0C0P1,B1C0P0,B1C0P1,B2C0P0,B2C0PI1,B3C0P0,B3C0P1,B0C1P0,B0C1P1,B1C1P0,B1C1P1,B2C1P0,B2C1P1,B3C1P0,B3C1P1}。在不改变小周期A的存储体号和芯片号的情况下,通过仅改变小周期A的面号来生成小周期B。
如上所述,排序规则操作单元151以表方法、运算方法或使用随机数的方法获得的顺序排列小周期A和小周期B,并生成新排序规则。从而,生成小周期的数目为8并且长度为128的排序规则。
同时,通过上述第三实施例的第一和第二方法,将排序规则设置为每当获取空闲块(例如128个块)时跳过。这样,每当跳过排序规则时可实现改变存储体顺序的效果。
如上所述,当从主机装置重复对于特定地址的写入时,可抑制在面之间的空闲块获取计数的差,以及可避免擦除计数集中在特定块中。
由于对于尽可能多的面执行并行写入,所以当在缓冲存储器中累计了对于多个不同地址的写入数据时,可抑制写入集中于特定面上,并且可保持优良的传输性能。
排列小周期并且延长排序规则的周期。为此,即使当在来自主机装置的写入地址中存在周期性时,可抑制在空闲块列表之间的空闲块数目和活动块数目之间的差。当排列小周期时,由于最大化地实施了并行性,所以可保持传输性能。
尽管描述了某些实施例,但是这些实施例仅通过实例来提出,并非限制本发明的范围。当然,这里描述的新颖性实施例可以通过多种其他形式实现;此外,可以作出这里描述的实施例的形式的各种省略、替换和改变,而不脱离本发明的精神。所附权利要求及其等同物旨在覆盖落入本发明的范围和精神内的这种形式或修改。
Claims (9)
1.一种存储器系统,包括:
非易失性存储器,其包括多个存储区域,每个存储区域包括多个块,每个块是数据擦除的单位,所述非易失性存储器被配置为能够对于不同存储区域中包括的块进行并行写入;
管理单元,其保持对于每个存储区域的空闲块列表,所述空闲块列表指示作为没有存储有效数据的块的空闲块;
排序规则保持单元,其保持排序规则,所述排序规则是用于确定所述空闲块列表的排序的信息;
位置信息存储单元,其存储位置信息,所述位置信息指示在所述排序规则中空闲块列表的位置;
列表选择单元,其选择与所述位置信息指示的位置相应的空闲块列表;
块选择单元,其从所述列表选择单元选择的空闲块列表选择空闲块;
写入单元,其在所述块选择单元选择的空闲块中写入数据;以及
更新单元,其在所述列表选择单元选择空闲块列表之后,用指示随后选择的空闲块列表的位置的位置信息来更新在所述位置信息存储单元中存储的位置信息。
2.如权利要求1所述的系统,
其中当在选择空闲块中满足所述块选择单元中确定的预定条件时,所述块选择单元跳过空闲块的选择;以及
当所述块选择单元跳过空闲块的选择时,所述更新单元进一步更新所述位置信息。
3.如权利要求2所述的系统,
其中,所述块选择单元对于每个空闲块列表计算所述列表选择单元选择空闲块列表的次数,以及当所述列表选择单元选择空闲块列表并且计算选择的列表的次数等于或大于阈值时跳过在所述空闲块列表中空闲块的选择。
4.如权利要求2所述的系统,
其中,所述块选择单元计算所述更新单元更新位置信息的次数,以及当计算的次数等于或大于阈值时跳过空闲块的选择。
5.如权利要求2所述的系统,
其中,所述位置信息存储单元存储位置信息,其指示基于使用多个不同排序规则生成的长期排序规则所确定的空闲块列表的排序。
6.如权利要求5所述的系统,
其中,所述列表选择单元通过使用多个排序规则和位置信息的运算来选择空闲块列表。
7.如权利要求5所述的系统,
其中,所述排序规则保持单元保持预先生成的长期排序规则;以及
所述列表选择单元参照在所述排序规则保持单元中保持的长期排序规则,并选择所述空闲块列表。
8.如权利要求5所述的系统,
其中,所述列表选择单元使用随机数动态生成所述长期排序规则,并使用生成的长期排序规则来选择所述空闲块列表。
9.一种存储器系统,包括:
非易失性存储器,其包括多个存储区域,每个存储区域包括多个块,每个块是数据擦除的单位,所述非易失性存储器被配置为能够对于不同存储区域中包括的块进行并行写入;
管理单元,其保持对于每个存储区域的空闲块列表,所述空闲块列表指示作为没有存储有效数据的块的空闲块;
排序规则保持单元,其保持排序规则,所述排序规则是用于确定所述空闲块列表的排序的信息;
位置信息存储单元,其存储位置信息,所述位置信息指示在所述排序规则中空闲块列表的位置;
列表选择单元,其选择与所述位置信息指示的位置相应的空闲块列表;
块选择单元,其从所述列表选择单元选择的空闲块列表选择空闲块;
写入单元,其在所述块选择单元选择的空闲块中写入数据;以及
更新单元,其在所述列表选择单元选择空闲块列表之后,用指示随后选择的空闲块列表的位置的位置信息来更新在所述位置信息存储单元中存储的位置信息,
其中所述位置信息存储单元存储位置信息,其指示基于使用多个不同排序规则生成的长期排序规则所确定的每个空闲块列表的排序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010043299A JP4987997B2 (ja) | 2010-02-26 | 2010-02-26 | メモリシステム |
JP043299/2010 | 2010-02-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102169461A true CN102169461A (zh) | 2011-08-31 |
CN102169461B CN102169461B (zh) | 2014-01-08 |
Family
ID=44490625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110045961.0A Expired - Fee Related CN102169461B (zh) | 2010-02-26 | 2011-02-25 | 存储器系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8583856B2 (zh) |
JP (1) | JP4987997B2 (zh) |
KR (1) | KR101277382B1 (zh) |
CN (1) | CN102169461B (zh) |
TW (1) | TWI464586B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117169A (zh) * | 2015-08-20 | 2015-12-02 | 浪潮(北京)电子信息产业有限公司 | 一种优化的磁盘空间管理的方法及装置 |
CN106874217A (zh) * | 2015-12-14 | 2017-06-20 | 株式会社东芝 | 存储器系统及控制方法 |
CN107590031A (zh) * | 2016-07-07 | 2018-01-16 | 高丽大学校产学协力团 | 存储器管理系统及其方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5609683B2 (ja) * | 2011-01-31 | 2014-10-22 | ソニー株式会社 | メモリ装置およびメモリシステム |
JP6139065B2 (ja) * | 2012-05-31 | 2017-05-31 | 株式会社東芝 | 映像処理装置及び映像処理方法 |
JP6041610B2 (ja) * | 2012-10-02 | 2016-12-14 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体 |
TWI479492B (zh) * | 2012-11-20 | 2015-04-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
CN103034603B (zh) * | 2012-12-07 | 2014-06-18 | 天津瑞发科半导体技术有限公司 | 多通道闪存卡控制装置及其控制方法 |
JP5994647B2 (ja) * | 2013-01-11 | 2016-09-21 | 三菱電機株式会社 | データ記録装置、及びデータ記録方法 |
JP5804584B1 (ja) * | 2014-10-30 | 2015-11-04 | ウィンボンド エレクトロニクス コーポレーション | Nand型フラッシュメモリのプログラム方法 |
KR102601211B1 (ko) | 2016-06-01 | 2023-11-10 | 삼성전자주식회사 | 빠른 재사용 메모리 블록 검출 방법 및 이를 이용한 메모리 블록 관리 방법 |
JP7010667B2 (ja) * | 2017-11-06 | 2022-01-26 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11126368B2 (en) * | 2019-04-30 | 2021-09-21 | Western Digital Technologies, Inc. | Systems and methods for finding a last good page in NAND open block |
US11599298B1 (en) * | 2021-09-23 | 2023-03-07 | Western Digital Technologies, Inc. | Storage system and method for prediction-based pre-erase of blocks to improve sequential performance |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623654A (en) * | 1994-08-31 | 1997-04-22 | Texas Instruments Incorporated | Fast fragmentation free memory manager using multiple free block size access table for a free list |
CN1542623A (zh) * | 2003-04-29 | 2004-11-03 | 华为技术有限公司 | 一种实现内存管理的方法 |
CN101339808A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 存储块的擦除方法及装置 |
CN101354681A (zh) * | 2008-09-23 | 2009-01-28 | 美商威睿电通公司 | 存储器系统、非易失性存储器的磨损均衡方法及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06511582A (ja) * | 1992-07-24 | 1994-12-22 | マイクロソフト コーポレイション | メモリを割り当てそして解放するコンピュータ方法及びシステム |
JP2000122923A (ja) * | 1998-07-13 | 2000-04-28 | Sony Corp | 記録装置および記録方法、再生装置および再生方法、記録媒体、並びにプログラム記録媒体 |
WO2007072317A2 (en) * | 2005-12-21 | 2007-06-28 | Nxp B.V. | Non-volatile memory with block erasable locations |
WO2007081638A2 (en) * | 2005-12-21 | 2007-07-19 | Sandisk Corporation | Non-volatile memories and methods with adaptive file handling in a directly mapped file storage system |
JP4171749B2 (ja) * | 2006-04-17 | 2008-10-29 | Tdk株式会社 | メモリコントローラおよびフラッシュメモリシステム |
JP2007334413A (ja) * | 2006-06-12 | 2007-12-27 | Sony Corp | 記憶装置 |
WO2008087634A1 (en) * | 2007-01-18 | 2008-07-24 | Sandisk Il Ltd. | A method and system for facilitating fast wake-up of a flash memory system |
KR101103201B1 (ko) * | 2008-02-29 | 2012-01-05 | 가부시끼가이샤 도시바 | 메모리 시스템 |
JP5010505B2 (ja) * | 2008-03-01 | 2012-08-29 | 株式会社東芝 | メモリシステム |
JP5032371B2 (ja) * | 2008-03-01 | 2012-09-26 | 株式会社東芝 | メモリシステム |
US20090271564A1 (en) * | 2008-04-25 | 2009-10-29 | Hitachi, Ltd. | Storage system |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
JP4666080B2 (ja) * | 2009-02-09 | 2011-04-06 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
-
2010
- 2010-02-26 JP JP2010043299A patent/JP4987997B2/ja not_active Expired - Fee Related
- 2010-09-15 US US12/882,703 patent/US8583856B2/en not_active Expired - Fee Related
-
2011
- 2011-02-14 TW TW100104807A patent/TWI464586B/zh not_active IP Right Cessation
- 2011-02-16 KR KR1020110013664A patent/KR101277382B1/ko not_active IP Right Cessation
- 2011-02-25 CN CN201110045961.0A patent/CN102169461B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623654A (en) * | 1994-08-31 | 1997-04-22 | Texas Instruments Incorporated | Fast fragmentation free memory manager using multiple free block size access table for a free list |
CN1542623A (zh) * | 2003-04-29 | 2004-11-03 | 华为技术有限公司 | 一种实现内存管理的方法 |
CN101339808A (zh) * | 2008-07-28 | 2009-01-07 | 华中科技大学 | 存储块的擦除方法及装置 |
CN101354681A (zh) * | 2008-09-23 | 2009-01-28 | 美商威睿电通公司 | 存储器系统、非易失性存储器的磨损均衡方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117169A (zh) * | 2015-08-20 | 2015-12-02 | 浪潮(北京)电子信息产业有限公司 | 一种优化的磁盘空间管理的方法及装置 |
CN105117169B (zh) * | 2015-08-20 | 2018-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种优化的磁盘空间管理的方法及装置 |
CN106874217A (zh) * | 2015-12-14 | 2017-06-20 | 株式会社东芝 | 存储器系统及控制方法 |
CN107590031A (zh) * | 2016-07-07 | 2018-01-16 | 高丽大学校产学协力团 | 存储器管理系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102169461B (zh) | 2014-01-08 |
JP4987997B2 (ja) | 2012-08-01 |
US20110213913A1 (en) | 2011-09-01 |
KR101277382B1 (ko) | 2013-06-20 |
JP2011180773A (ja) | 2011-09-15 |
TW201205289A (en) | 2012-02-01 |
TWI464586B (zh) | 2014-12-11 |
US8583856B2 (en) | 2013-11-12 |
KR20110098623A (ko) | 2011-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102169461B (zh) | 存储器系统 | |
CN102612685B (zh) | 经由存储器高速缓存操纵的无阻碍数据传送 | |
US10782910B2 (en) | Methods for internal data movements of a flash memory device and apparatuses using the same | |
CN100541455C (zh) | 使用请求调页技术的系统中减少页替换时间的方法和设备 | |
CN102929786B (zh) | 非易失性存储设备集合的易失性存储器表示 | |
CN102693184B (zh) | 处理具有非易失性存储器的系统的动态和静态数据 | |
KR102137761B1 (ko) | 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법 | |
US20080235306A1 (en) | Garbage collection in nonvolatile memories using data attributes, computer program products and methods of operating the same | |
CN105493053A (zh) | 多核处理器中的高速缓存划分 | |
US8825946B2 (en) | Memory system and data writing method | |
CN102708065A (zh) | 页面文件预留 | |
TWI434175B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
CN101627372A (zh) | 选择性地利用多个异类固态存储位置 | |
CN104346290A (zh) | 存储装置、计算机系统及其操作方法 | |
CN102332290A (zh) | 用来管理和存取闪存模块的控制器 | |
CN104866428A (zh) | 数据存取方法和数据存取装置 | |
US8112589B2 (en) | System for caching data from a main memory with a plurality of cache states | |
CN104364774A (zh) | 去重复虚拟机镜像转移器 | |
US20120210045A1 (en) | Data access method, and memory controller and memory storage apparatus using the same | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
KR20130079706A (ko) | 휘발성 메모리를 포함하는 저장 장치의 구동 방법 | |
JP2018160189A (ja) | メモリシステム | |
US11023374B2 (en) | Apparatus and method and computer program product for controlling data access | |
Chen et al. | Refinery swap: An efficient swap mechanism for hybrid DRAM–NVM systems | |
US20200319999A1 (en) | Storage device, control method of storage device, and storage medium |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140108 Termination date: 20170225 |