CN101681299A - 存储器系统 - Google Patents

存储器系统 Download PDF

Info

Publication number
CN101681299A
CN101681299A CN200980000122A CN200980000122A CN101681299A CN 101681299 A CN101681299 A CN 101681299A CN 200980000122 A CN200980000122 A CN 200980000122A CN 200980000122 A CN200980000122 A CN 200980000122A CN 101681299 A CN101681299 A CN 101681299A
Authority
CN
China
Prior art keywords
management unit
logical block
data
logical
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200980000122A
Other languages
English (en)
Inventor
矢野纯二
初田幸辅
松崎秀则
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of CN101681299A publication Critical patent/CN101681299A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

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)
  • Read Only Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种根据本发明实施例的存储器系统,包括:通过提供正向查找表和反向查找表并链接这些表来增加遍及管理表的搜寻的处理速度,其中正向查找表用于例如分别以轨道和簇为单位从逻辑地址中搜寻数据与逻辑地址对应的存储装置位置,所述反向查找表用于从存储装置的位置搜寻在该位置中存储的逻辑地址。

Description

存储器系统
技术领域
本发明涉及一种包括非易失性半导体存储器的存储器系统。
背景技术
作为在计算机系统中使用的外部存储装置,安装有诸如NAND型闪速存储器的非易失性半导体存储器的SSD(固态驱动器)引人注目。与磁盘装置相比,闪速存储器具有诸如速度高和重量轻的优点。
SSD包括:多个闪速存储器芯片;控制器,其响应于来自主机设备的请求而执行对各自的闪速存储器芯片的读/写控制;缓冲存储器,其用于执行在各自的闪速存储器芯片与主机设备之间的数据传送;电源电路;以及与主机设备的连接接口(参见例如专利文件1)。
非易失性半导体存储器的实例包括其中擦除、写入和读出的单位固定的非易失性半导体存储器,例如,在存储数据时,一但以块为单位擦除数据,然后执行写入的非易失性半导体存储器,以及以与NAND型闪速存储器相同的方式以页为单位执行写入和读出的非易失性半导体存储器。
另一方面,这样的单位被称为扇区,该单位用于诸如个人计算机的主机设备,以将数据写入诸如硬盘的次级存储装置以及从中读出数据。扇区独立于半导体存储装置的擦除、写入和读出的单位而设定。
例如,尽管非易失性半导体存储器的块的尺寸(块尺寸)为512kB且其页的尺寸(页尺寸)为4kB,但主机设备的扇区的尺寸(扇区尺寸)被设定为512B。
以此方式,非易失性半导体存储器的擦除、写入和读出的单位可大于主机设备的写入和读出的单位。
因此,当通过使用非易失性半导体存储器来配置个人计算机的次级存储器装置(例如硬盘)时,有必要通过使尺寸适应于非易失性半导体存储器的块尺寸和页尺寸,写入来自作为主机设备的个人计算机的具有小尺寸的数据。
通过诸如个人计算机的主机设备而记录的数据既具有时间局域性,也具有空间局域性(例如,参见非专利文件1)。因此,当记录数据时,如果数据被直接记录在从外部指定的地址中,则重写(即,擦除处理)在时间上集中在特定的区域中,并且擦除次数的偏差增大。因此,在NAND型闪速存储器中,执行用于使数据更新区段均衡分布的被称为磨损均化(wear leveling)的处理。
在磨损均化处理中,例如,由主机设备指定的逻辑地址被转译为其中数据更新区段均衡地分布的非易失性半导体存储器的物理地址。
当在执行地址转译时使用这种NAND闪速存储器配置大容量次级存储装置时,需要使来自作为主机设备的个人计算机的小尺寸数据适应于非易失性半导体存储器的块尺寸和页尺寸,并写入数据。在这种数据管理中,如果数据管理的单位是小尺寸(例如,页尺寸),则管理表的尺寸增加,并且不适应二级存储设备的控制器的主存储器。不能够高速执行地址转换。在通过管理表的搜寻中,如果搜寻处理时间长,则不能够有效利用闪速存储器比磁盘装置更快的这样的闪速存储器优点。这样,根据作为二级存储装置的NAND闪速存储器的容量的增加,管理表的尺寸不可避免地增加。因此,需要一种尽可能多地降低管理表容量的方法,以及一种增加管理表的搜寻处理速度的方法。
[专利文件1]日本专利No.3688835
[非专利文件1]David A.Patterson以及John L.Hennessy,“Computer Organization and Design:The Hardware/Software Interface”,Morgan Kaufmann Pub,2004/8/31
发明内容
根据本发明实施例,一种存储器系统,包括:
作为高速缓冲存储器的第一存储区,其包括在易失性半导体存储器中;
第二存储区和第三存储区,其包括在非易失性半导体存储器中,在所述第二存储区和所述第三存储区中,通过页单位执行数据读取和写入,且通过物理块单位执行数据擦除,所述物理块单位的尺寸为所述页单位的尺寸的两倍或更大的自然数倍;
控制器,其通过与一个或多个物理块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区,其中
所述控制器执行:
第一处理,将从所述第一存储区排挤(flush)的扇区单位的多个数据写入到所述第二存储区,作为第一管理单位的数据;
第二处理,将从所述第一存储区排挤的扇区单位的多个数据写入到所述第三存储区,作为第二管理单位的数据,所述第二管理单位的尺寸为所述第一管理单位的尺寸的两倍或更大的自然数倍;
第三处理,将所述第二存储区中存储的数据排挤至所述第三存储区,作为所述第二管理单位的数据;
第四处理,选择所述第二存储区中存储的第一管理单位的多个有效数据,并将所述有效数据重新写入新逻辑块;以及
第五处理,选择所述第三存储区中存储的第二管理单位的多个有效数据,并将所述有效数据重新写入新逻辑块;
所述控制器包括:
正向查找第一管理表,从第二管理单位的逻辑地址提取包括以下信息的第一管理信息,即指示与第二管理单位的逻辑地址对应的在所述第二管理单位的数据的第二或第三存储区中的存储位置的逻辑块地址的信息,以及由逻辑块地址指定的逻辑块中的第二管理单位的数据的存储位置的信息,以及到第二管理表中的属于第二管理单位的对应逻辑地址的条目的链接信息;
正向查找第二管理表,其具有第二管理单位的每个逻辑地址的条目,所述正向查找第二管理表是这样的表,从第一管理单位的逻辑地址提取包括以下信息的第二管理信息,即指示与第一管理单位的逻辑地址对应的在所述第一管理单位的数据的第二存储区中的存储位置的逻辑块地址的信息,以及由所述逻辑块地址指定的逻辑块中的第一管理单位的数据的存储位置的信息,以及到登记于第四管理表中的逻辑块地址的链接信息;
反向查找第三管理表,其中为每个逻辑块地址登记有包括以下信息的第三管理信息,即到在第一管理表中登记的第二管理单位的逻辑地址的链接信息,所述反向查找第三管理表是这样的表,从逻辑块地址提取与第二管理单位的数据对应的第二管理单位的地址,所述第二管理单位的数据包括在与所述逻辑块地址对应的逻辑块中;
反向查找第四管理表,其中为每个逻辑块地址登记有包括以下信息的第四管理信息,即到在第二管理表中登记的第一管理单位的逻辑地址的链接信息,所述反向查找第四管理表是这样的表,从逻辑块地址提取与第一管理单位的数据对应的第一管理单位的地址,所述第一管理单位的数据包括在与所述逻辑块地址对应的逻辑块中;以及
第五管理表,管理与多个物理块对应的多个物理块地址和与所述物理块关联的逻辑块对应的逻辑块地址之间的对应关系;以及
所述控制器基于第一至第五管理表执行第一至第五处理。
根据本发明实施例的存储器系统,可以提供这样的存储器系统,即,可增加管理表的搜寻处理的速度并降低创建管理表所需的存储器量。
附图说明
图1是SSD的配置实例的框图;
图2是包括在NAND存储器芯片中的一个块的配置实例以及在四元数据存储系统中的阈值分布的图;
图3是驱动控制电路的硬件内部配置实例的框图;
图4是处理器的功能配置实例的框图;
图5是在NAND存储器和DRAM中形成的功能配置的框图;
图6是与从WC到NAND存储器的写入处理有关的详细功能框图;
图7是LBA逻辑地址的图;
图8是在数据管理单元中的管理表的配置实例的图;
图9是RC簇(cluster)管理表的实例的图;
图10是WC簇管理表的实例的图;
图11是WC轨道(track)管理表的实例的图;
图12是轨道管理表的实例的图;
图13是FS/IS管理表的实例的图;
图14是MS逻辑块管理表的实例的图;
图15是FS/IS逻辑块管理表的实例的图;
图16是FS/IS内簇管理表的实例的图;
图17是逻辑至物理转换表的实例的图;
图18是读处理的操作实例的流程图;
图19是写处理的操作实例的流程图;
图20是在部件之间的数据的流动中的输入与输出的组合以及该流动的起因的图;
图21是与从WC到NAND存储器的写处理相关的更详细的功能框图;
图22是数据管理单元中的管理表的另一配置实例的图;
图23是在并行操作元件、平面、和信道之间的关系的图;
图24是逻辑至物理转译表的另一实例的图;
图25是BB管理表的实例的图;
图26是FB管理表的内部配置实例的图;
图27是在NAND存储器的逻辑块和物理块之间的对应关系的图;
图28是MS结构管理表的实例的图;
图29是FS/IS结构管理表的实例的图;
图30是写处理的操作实例的详细流程;
图31是IS的排挤操作的实例的流程;
图32是个人计算机的实例的立体图;以及
图33是在个人计算机中的系统架构的实例的图。
具体实施方式
下面,将参考附图详细解释根据本发明的存储器系统的最佳实施方式。本发明不限于以下实施例。
(实施例)
下面将参考附图解释本发明的实施例。在下面的解释中,具有相同功能和配置的部件由相同的参考标号和符号表示。仅当必要时才进行对这些部件的重复解释。
首先,定义在该说明书中使用的术语。
物理页:在NAND存储器芯片中可以共同地写入和读出的单位。物理页尺寸为例如4kB。然而,不包括添加到SSD中的主数据(用户数据等)的诸如错误校正码的冗余位。通常,4kB+冗余位(例如,几十B)是在存储器基元中同时写入的单位。然而,为了便于解释,如上所述地定义物理页。
逻辑页:在SSD中设定的写入和读出单位。逻辑页与一个或多个物理页相关联。例如,在8-位正常模式下,逻辑页尺寸为4kB,而在32-位的双速模式下,逻辑页尺寸为32kB。然而,不包括冗余位。
物理块:可以在NAND存储器芯片中独立地擦除的最小单位。物理块包括多个物理页。物理块尺寸为例如512kB。然而,不包括添加到SSD中的主数据的诸如错误校正码的冗余位。通常,512kB+冗余位(例如,几十kB)是同时擦除的单位。然而,为了便于解释,如上所述地定义物理块。
逻辑块:在SSD中设定的擦除单位。逻辑块与一个或多个物理块相关联。例如,在8-位正常模式下,逻辑块尺寸为512kB,而在32-位的双速模式下,逻辑块尺寸为4MB。然而,不包括冗余位。
扇区:从主机的最小存取单位。扇区尺寸为例如512B。
簇:用于在SSD中管理“小数据(细粒数据)(fine grained data)”的管理单位。例如,簇尺寸等于或大于扇区尺寸,且被如此设定,使得簇尺寸的两倍或更大的自然数倍的尺寸为逻辑页尺寸。
轨道:用于在SSD中管理“大数据(粗粒数据)(coarse grained data)”的管理单位。例如,轨道尺寸被如此设定,使得簇尺寸的两倍或更大的自然数倍的尺寸为轨道尺寸,且轨道尺寸的两倍或更大的自然数倍的尺寸为逻辑块尺寸。
空闲块(FB):在NAND型闪速存储器上的未分配使用的逻辑块。当分配使用空闲块时,在擦除之后使用该空闲块。
坏块(BB):在NAND型闪速存储器上的由于大量错误而不能被用作存储区的物理块。例如,将不能正常完成擦除操作的物理块登记为坏块BB。
写入效率:在预定周期内逻辑块的擦除数量相对于从主机写入的数据量的统计值。写入效率越小,NAND型闪速存储器的磨损度越小。
有效簇:存储对应于逻辑地址的最新数据的簇。
无效簇:作为具有相同逻辑地址的簇被写入其他存储区的结果,而存储将不被参考的非最新数据的簇。
有效轨道:存储对应于逻辑地址的最新数据的轨道。
无效轨道:作为具有相同逻辑地址的簇被写入其他存储区的结果,存储将不被参考的非最新数据的轨道。
压紧:在管理对象中从逻辑块中仅提取有效簇和有效轨道并且在新的逻辑块中重写所述有效簇和有效轨道。
[第一实施例]
图1是SSD(固态驱动器)100的配置实例的框图。SSD 100通过存储器连接接口,例如ATA接口(ATA I/F)2,连接到主机设备1,例如个人计算机或CPU核,并且用作主机设备1的外部存储器。通过通信接口3,例如RS232C接口(RS232C I/F),SSD 100可以将数据传送到用于除错(debug)和制造检验的设备200并从其接收数据。SSD 100包括作为非易失性半导体存储器的NAND型闪速存储器(下文中简称为NAND存储器)10、作为控制器的驱动控制电路4、作为易失性半导体存储器的DRAM20、电源电路5、用于状态显示的LED 6、检测驱动器中的温度的温度传感器7、以及熔丝8。
电源电路5从由主机设备1侧的电源电路供应的外部DC电力产生多个不同的内部DC电源电压,并将这些内部DC电源电压供应至SSD 100中的各个电路。电源电路5检测外部电源的上升沿,产生通电复位信号,并且将该通电复位信号供应至驱动控制电路4。熔丝8设置在主机设备1一侧的电源电路与SSD 100中的电源电路5之间。当从外部电源电路供应过电流时,熔丝8断开,以防止内部电路发生故障。
NAND存储器10具有四个并行操作元件10a至10d,其执行四个并行操作。一个并行操作元件具有两个NAND存储器封装。NAND存储器封装中的每一个包括多个堆叠的NAND存储器芯片(例如,1个芯片=2GB)。在图1的情况下,NAND存储器封装中的每一个包括堆叠的四个NAND存储器芯片。NAND存储器10具有64GB的容量。当NAND存储器封装中的每一个包括堆叠的八个NAND存储器芯片时,NAND存储器10具有128GB的容量。
DRAM 20用作为用于在主机设备1与NAND存储器10之间的数据传送的高速缓冲存储器以及用于工作区的存储器。可使用FeRAM(铁电随机存取存储器)、PRAM(相变随机存取存储器)或MRAM(磁电阻随机存取存储器)来代替DRAM 20。驱动控制电路4通过DRAM 20在主机设备1与NAND存储器10之间执行数据传送控制,并且控制SSD 100中的各个部件。驱动控制电路4将用于状态显示的信号供应至用于状态显示的LED 6。驱动控制电路4还具有从电源电路5接收通电复位信号且将复位信号和时钟信号供应至在自身电路和SSD 100中的各个单元的功能。
NAND存储器芯片中的每一个通过将多个物理块排成阵列作为数据擦除的单位而配置。图2(a)是包括在NAND存储器芯片中的一个物理块的配置实例的电路图。每个物理块包括沿着X方向依次排成阵列的(p+1)个NAND串(p为等于或大于0的整数)。包括在该(p+1)个NAND串的每一个中的选择晶体管ST1的漏极连接至位线BL0至BLp,并且其栅极共同地连接至选择栅极线SGD。选择晶体管ST2的源极共同地连接至源极线SL,并且其栅极共同地连接至选择栅极线SGS。
存储器基元晶体管MT中的每一个包括MOSFET(金属氧化物半导体场效应晶体管),该MOSFET包括形成于半导体基底上的堆叠栅极结构。该堆叠栅极结构包括经由栅极绝缘膜而形成于半导体基底上的电荷存储层(浮置栅极电极),以及经由栅极间绝缘膜而形成于该电荷存储层上的控制栅极电极。阈值电压根据在浮置栅极电极中累积的电子的数目而变化。存储器基元晶体管MT根据阈值电压的差异而存储数据。存储器基元晶体管MT可被配置为存储一个位或可被配置为存储多值(等于或大于两个位的数据)。
存储器基元晶体管MT不限于具有浮置栅极电极的结构,并且可以为诸如MONOS(金属-氧化物-氮化物-氧化物-硅)型的结构,该结构可通过使氮化物膜界面作为电荷存储层来俘获电子而调整阈值。类似地,MONOS结构的存储器基元晶体管MT可被配置为存储一个位或可被配置为存储多值(等于或大于两个位的数据)。
在每一个NAND串中,(q+1)个存储器基元晶体管MT排列在选择晶体管ST1的源极与选择晶体管ST2的漏极之间,使得其电流路径串联连接。换句话说,存储器基元晶体管MT在Y方向上串联连接,使得相邻的存储器基元晶体管MT共享扩散区域(源极区域或漏极区域)。
存储器基元晶体管MT的控制栅极电极从位于最漏极侧上的存储器基元晶体管MT开始依次分别连接至字线WL0至WLq。因此,连接至字线WL0的存储器基元晶体管MT的漏极连接至选择晶体管ST1的源极。连接至字线WLq的存储器基元晶体管MT的源极连接至选择晶体管ST2的漏极。
字线WL0至WLq共同地连接在物理块中的NAND串当中的存储器基元晶体管MT的控制栅极电极。换句话说,存在于块的相同行中的存储器基元晶体管MT的控制栅极连接至相同的字线WL。将连接至相同字线WL的(p+1)个存储器基元晶体管MT作为一页(物理页)来处理。通过每一物理页来执行数据写入及数据读出。
位线BL0至BLp共同地连接块当中的选择晶体管ST1的漏极。换句话说,存在于多个块中的相同列中的NAND串连接至相同的位线BL。
图2(b)为例如在四元数据存储模式中的阈值分布的示意图,该四元数据存储模式用于在一个存储器基元晶体管MT中存储两个位。在四元数据存储模式中,可将由上部页数据“x”和下部页数据“y”定义的任何一个四元数据“xy”存储在存储器基元晶体管MT中。
例如,作为四元数据“xy”,“11”、“01”、“00”和“10”以存储器基元晶体管MT的阈值电压的顺序分配。数据“11”为已擦除状态(erased state),在该状态中存储器基元晶体管MT的阈值电压为负。
在下部页写入操作中,根据下部位数据“y”的写入,将数据“10”选择性地写入具有数据“11”(处于已擦除状态)的存储器基元晶体管MT中。在上部页写入之前的数据“10”的阈值分布大约位于在上部页写入之后的数据“01”和数据“00”的阈值分布的中间,并且可比在上部页写入之后的阈值分布更宽。在上部页写入操作中,选择性地对具有数据“11”的存储器单元和具有数据“10”的存储器单元进行上部位数据“x”的写入。将数据“01”和数据“00”写入存储器单元中。
图3为驱动控制电路4的硬件内部配置实例的框图。驱动控制电路4包括数据存取总线101、第一电路控制总线102以及第二电路控制总线103。控制整个驱动控制电路4的处理器104连接至第一电路控制总线102。启动ROM 105经由ROM控制器106而连接至第一电路控制总线102,在该启动ROM 105中存储有启动程序,所述启动程序用于启动存储在NAND存储器10中的各个管理程序(FW:固件)。时钟控制器107连接至第一电路控制总线102,该时钟控制器107从图1中所示的电源电路5接收通电复位信号且将复位信号和时钟信号供应至各个单元。
第二电路控制总线103连接至第一电路控制总线102。用于从图1中所示的温度传感器7接收数据的I2C电路108、将用于状态显示的信号供应至用于状态显示的LED 6的并行IO(PIO)电路109、以及控制RS232CI/F 3的串行IO(SIO)电路110连接至第二电路控制总线103。
ATA接口控制器(ATA控制器)111、第一ECC(错误检查及校正)电路112、NAND控制器113以及DRAM控制器114连接至数据存取总线101与第一电路控制总线102两者。ATA控制器111经由ATA接口2而将数据传输至主机设备1及从主机设备1接收数据。用作数据工作区和固件扩展区的SRAM 115经由SRAM控制器116而连接至数据存取总线101。当起动存储在NAND存储器10中的固件时,该固件通过存储在启动ROM105中的启动程序而传送至SRAM 115。
NAND控制器113包括NAND I/F 117、第二ECC电路118,以及用于DMA传送控制的DMA控制器119,其中NAND I/F 117执行用于与NAND存储器10的接口的接口处理,DMA控制器119执行NAND存储器10与DRAM 20之间的存取控制。第二ECC电路118执行第二校正码的编码且执行第一错误校正码的编码和解码。第一ECC电路112执行第二错误校正码的解码。第一错误校正码及第二错误校正码为,例如,汉明(hamming)码、BCH(Bose Chaudhuri Hocqenghem)码、RS(ReedSolomon)码、或LDPC(低密度奇偶检查)码。第二错误校正码的校正能力比第一错误校正码的校正能力高。
如图1和图3中所示,在NAND存储器10中,四个并行的操作元件10a至10d经由四个八位通道(4ch)而并联连接至驱动控制电路4中的NAND控制器112。根据四个并行的操作元件10a至10d是独立致动还是并行致动与是否使用在NAND存储器芯片中提供的双速模式(多页编程/多页读取/多块擦除)的组合,提供下文所解释的三种存取模式。
(1)8-位正常模式
8-位正常模式为用于仅致动一个通道且以8-位为单位执行数据传送的模式。以物理页尺寸(4kB)来执行写入和读出。以物理块尺寸(512kB)来执行擦除。一个逻辑块与一个物理块相关联,且逻辑块尺寸为512kB。
(2)32-位正常模式
32-位正常模式为用于并行致动四个通道且以32-位为单位执行数据传送的模式。以物理页尺寸×4(16kB)来执行写入和读出。以物理块尺寸×4(2MB)来执行擦除。一个逻辑块与四个物理块相关联,且逻辑块尺寸为2MB。
(3)32-位双速模式
32-位双速模式为用于并行致动四个通道且使用NAND存储器芯片的双速模式来执行写入和读出的模式。以物理页尺寸×4×2(32kB)来执行写入和读出。以物理块尺寸×4×2(4MB)来执行擦除。一个逻辑块与八个物理块相关联,且逻辑块尺寸为4MB。
在用于并行致动四个通道的32-位正常模式或32-位双速模式中,并行操作的四个或八个物理块为用于NAND存储器10的擦除单位,且并行操作的四个或八个物理页为用于NAND存储器10的写入单位及读出单位。在下面所解释的操作中,基本上,使用32-位双速模式。例如,假定:一个逻辑块=4MB=2i轨道=2j页=2k簇=2l扇区(i、j、k和l为自然数,且i<j<k<l的关系成立)。
在32-位双速模式中存取的逻辑块是以4MB的单位来存取。八个(2×4ch)个物理块(一个物理块=512kB)与逻辑块相关联。当检测到以物理块单位管理的坏块BB时,该坏块BB不可用。因此,在这种情况下,将与逻辑块相关联的该八个物理块的组合变为不包括该坏块BB。
图4为通过处理器104实现的固件的功能配置实例的框图。通过处理器104实现的固件的功能粗略地分类为数据管理单元120、ATA命令处理单元121、安全管理单元122、启动加载器123、初始化管理单元124,以及除错支持单元125。
数据管理单元120经由NAND控制器112和第一ECC电路114而控制NAND存储器10与DRAM 20之间的数据传送以及关于NAND存储器10的各种功能。ATA命令处理单元121经由ATA控制器110和DRAM控制器113与数据管理单元120协作来执行DRAM 20与主机设备1之间的数据传送处理。安全管理单元122与数据管理单元120和ATA命令处理单元121协作而管理各种安全信息。
启动加载器123在接通电源时将管理程序(固件)从NAND存储器10加载至SRAM 120。初始化管理单元124执行驱动控制电路4中的各个控制器和电路的初始化。调试支持单元125处理经由RS232C接口而从外部供应的用于调试的数据。数据管理单元120、ATA命令处理单元121和安全管理单元122主要为通过处理器104执行存储在SRAM 114中的管理程序而实现的的功能单元。
在该实施例中,主要解释通过数据管理单元120实现的功能。数据管理单元120执行:例如,ATA命令处理单元121请求作为存储装置的NAND存储器10和DRAM 20(响应于来自主机设备的各种命令,诸如写入请求、高速缓冲存储器排挤请求以及读取请求)而提供的功能的供应、主机地址区域与NAND存储器10之间的对应关系的管理和管理信息的保护、使用DRAM 20和NAND存储器10的快速且高效的数据读出及写入功能的提供、NAND存储器10的可靠性的确保。
图5为形成在NAND存储器10和DRAM 20中的功能块的图。配置在DRAM 20上的写入高速缓冲存储器(WC)21和读取高速缓冲存储器(RC)22被插入在主机1与NAND存储器10之间。WC 21临时存储来自主机设备1的写入数据。RC 22临时存储来自NAND存储器10的读取数据。WC 21和RC 22可被配置在不同DRAM芯片或上述其他类型存储器芯片上。
由数据管理单元120将NAND存储器10中的逻辑块分配给前级存储区(FS:前存储器)12、中间级存储区(IS:中间存储器)13和主存储区(MS:主存储器)11的各个管理区,以便减少在写入期间NAND存储器10的擦除的量。FS 12以簇为单位(即,“小单位”)管理来自WC 21的数据,且将小数据(细粒数据)存储一短周期。IS 13以簇为单位(即,“小单位”)管理从FS 12溢出的数据,且将小数据(细粒数据)存储一长周期。MS 11以轨道为单位(即,“大单位”)存储来自WC 21、FS 12和IS 13的数据,并存储大数据(粗粒数据)一长周期。例如,存储容量具有MS>IS且FS>WC的关系。
当对NAND存储器10的所有存储区应用小管理单位时,稍后解释的管理表的尺寸被扩大,且不适应DRAM 20。因此,NAND存储器10的各个存储器被配置为以小管理单位管理NAND存储器10中仅在最近刚写入的数据和具有低写入效率的小数据。在国际申请No.PCT2008/JP/073950中描述了在SSD 100中使用“小单位”以及“大单位”的技术,其全部内容通过引用合并于此。
图6为关于从WC 21向NAND存储器10的写入处理(WR处理)的更详细的功能框图。在FS 12的前级处设置FS输入缓冲器(FSIB)12a,其中该FS输入缓冲器(FSIB)12a缓冲来自WC 21的数据。在MS 11的前级处设置MS输入缓冲器(MSIB)11a,该MS输入缓冲器(MSIB)11a缓冲来自WC 21、FS 12或IS 13的数据。在MS 11中设置轨道前级存储区(TFS)11b。TFS 11b为插入在MSIB 11a与MS 11之间的具有FIFO(先进先出)结构的缓冲器。记录在TFS 11b中的数据为这样的数据,该数据的更新频率高于记录在MS 11中的数据。NAND存储器10中的任何一个逻辑块被分配给MS 11、MSIB 11a、TFS 11b、FS 12、FSIB 12a和IS 13。
将详细解释图5和图6中所示的各个部件的具体功能配置。当主机设备1执行SSD 100的读取或写入时,主机设备1经由ATA接口而输入LBA(逻辑块寻址)作为逻辑地址。如图7中所示,LBA为这样的逻辑地址,其中从0开始的序号被附到扇区(尺寸:512B)。在该实施例中,作为用于WC 21、RC 22、FS 12、IS 13和MS 11(它们为图5中所示的部件)的管理单位,定义逻辑簇地址和逻辑轨道地址,所述逻辑簇地址由依次(inorder)等于或高于LBA的低阶(low-order)第(l-k+1)位的位串形成,所述逻辑轨道地址由依次等于或高于LBA的低阶第(l-i+1)位的位串形成。一个簇=2(l-k)个扇区,且一个轨道=2(k-i)个簇。
读高速缓冲存储器(RC)22
解释RC 22。RC 22为响应于来自ATA命令处理单元121的读取请求而暂时存储来自NAND存储器10(FS 12、IS 13和MS 11)的读取数据的区。在该实施例中,RC 22是在例如m-线(line)/n-路(way)(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统(setassociative system)中进行管理,且可将一个簇的数据存储在一个条目(entry)中。线通过逻辑簇地址的LSB(k-i)个位来判定。RC 22可在全关联系统中进行管理,或者可在简单FIFO系统中进行管理。
写高速缓冲存储器(WC)21
解释WC 21。WC 21为响应于来自ATA命令处理单元121的写入请求而暂时存储来自主机设备1的写入数据的区。WC 21是在m-线/n-路(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统中进行管理,并可将一个簇的数据存储在一个条目中。线通过逻辑簇地址的LSB(k-i)个位来判定。例如,以从路1至路n依次搜寻可写入的路。登记(register)在WC 21中的轨道通过稍后所解释的WC轨道管理表24的FIFO结构以LRU(最近最少使用)进行管理,使得最早更新的顺序已知。WC 21可由全关联系统来管理。WC 21与RC 22可在线的数目和路的数目上有所不同。
根据写入请求而写入的数据一但存储在WC 21上。判定将要从WC 21排挤至NAND 10的数据的方法遵从下面所解释的规则。
(i)当通过标记(tag)判定的线中的可写入的路为最后的(在该实施例中,第n个)空闲的路时,即,当使用最后的空闲的路时,决定排挤登记于线中的轨道当中的基于LRU最早更新的轨道。
(ii)当登记于WC 21中的不同轨道的数目超过预定数目时,决定以LRU的顺序排挤WC中的其簇数目小于预定数目的轨道。
根据上文所解释的策略来判定将要排挤的轨道。在排挤这些轨道时,排挤包括在相同轨道中的所有数据。当将要排挤的数据的量超过例如轨道尺寸的50%时,将数据排挤至MS 11。当将要排挤的数据的量未超过例如轨道尺寸的50%时,将数据排挤至FS 12。
当在条件(i)下执行轨道排挤且将数据排挤至MS 11时,根据策略(i),选择WC 21的轨道当中满足将要排挤的数据的量超过轨道尺寸的50%这一条件的轨道且将其添加至排挤候选项,直至将要排挤的轨道的数目达到2i为止(当轨道的数目一开始就等于或大于2i时,直至轨道的数目达到2i+1为止)。换句话说,当将要排挤的轨道的数目小于2i时,以从WC中的最旧轨道开始的顺序选择具有多于2(k-i-1)的有效簇的轨道,且将其添加至排挤候选项,直至轨道的数目达到2i为止。
当在条件(i)下执行轨道排挤且将轨道排挤至FS 12时,以LRU的顺序在WC 21中的轨道当中选择满足将要排挤的数据的量不超过轨道尺寸的50%这一条件的轨道,并将该轨道的簇添加至排挤候选项,直至将要排挤的簇的数目达到2k为止。换句话说,通过以从最旧轨道开始的顺序追踪WC中的轨道而从具有2(k-i-1)个或更少的有效簇的轨道中提取簇,且当有效簇的数目达到2k时,以逻辑块为单位将簇排挤至FSIB 12a。然而,当未寻找到2k个有效簇时,以逻辑页为单位将簇排挤至FSIB 12a。用于判定是以逻辑块为单位还是以逻辑页为单位执行至FS 12的排挤的有效簇的数目的阈值不限于一个逻辑块的值(即,2k),且可为比一个逻辑块的值稍小的值。
在来自ATA命令处理单元121的高速缓冲存储器排挤请求中,在与上文相同的条件下将WC 21的所有内容排挤至FS 12或MS 11(当将要排挤的数据的量超过轨道尺寸的50%时,将数据排挤至MS 11,且当数据的量未超过50%时,将数据排挤至FS 12)。
前级存储区(FS)12
解释FS 12。FS 12适应其中以簇为单位管理数据的逻辑块单位的FIFO结构。FS 12为这样的缓冲器,其认为通过FS 12的数据具有比后级处的IS 13的数据高的更新频率。换句话说,在FS 12的FIFO结构中,当执行从主机向同一地址的重写时,使通过FIFO的有效簇(最新簇)无效。因此,可将通过FS 12的簇视为具有比从FS 12排挤至IS 13或MS 11的簇更高的更新频率。
通过提供FS 12,减少了具有高更新频率的数据在后级处的IS 13中的压紧处理中的混合的可能性。当通过无效化而使逻辑块的有效簇的数目减少至0时,释放该逻辑块且将其分配为空闲块FB。当FS 12中的逻辑块被无效时,获得新的空闲块FB且将其分配给FS 12。
当执行从WC 21至FS 12的簇排挤时,簇被写入分配给FSIB 12a的逻辑块中。当在FSIB 12a中出现完成了所有逻辑页的写入的逻辑块时,通过稍后所解释的CIB处理将这些逻辑块从FSIB 12a移动至FS 12。在将这些逻辑块从FSIB 12a移动至FS 12的过程中,当FS 12的逻辑块的数目超过FS 12所允许的预定上限值时,将最旧的逻辑块从FS 12排挤至IS 13或MS 11。例如,将轨道中有效簇比率等于或大于50%的轨道写入MS 11(TFS 11b)中,且将其中仍剩余有有效簇的逻辑块移动至IS 13。
关于NAND存储器10中的部件之间的数据移动,存在两种方式,即,移动(Move)和复制(Copy)。移动是这样的方法,其仅执行稍后所解释的管理表的指针(pointer)的重新定位,而不执行数据的实际重写。复制是这样的方法,其以页单位、轨道单位或块单位将存储于一个部件中的数据实际重写至另一部件中。
中间级存储区(IS)13
解释IS 13。在IS 13中,以与FS 12相同的方式以簇为单位执行数据的管理。可将存储于IS 13中的数据视为具有低更新频率的数据。当执行逻辑块从FS 12至IS 13的移动(movement)(移动(Move))(即,逻辑块从FS 12的排挤)时,通过指针的重新定位,将作为排挤对象的逻辑块(其先前为FS 12的管理对象)改变为IS 13的管理对象。根据逻辑块从FS 12至IS 13的移动,当IS 13的块的数目超过IS 13所允许的预定上限值时,即,当IS中可写空闲块FB的数目减小至小于阈值时,执行从IS13至MS 11的数据排挤和压紧处理。使IS 13的块的数目返回至规定值。
IS 13使用轨道中的有效簇的数目来执行下文所解释的排挤处理和压紧处理。
以有效簇的数目×有效簇系数的顺序对轨道进行分类(sort)(根据轨道是否存在于其中存在无效轨道的MS 11的逻辑块中而加权的数目;存在无效轨道时的数目大于不存在无效轨道时的数目)。收集具有大乘积值的2i+1个轨道(对于两个逻辑块),将其增加至为逻辑块尺寸的自然数倍大,且将其排挤至MSIB 11a。
当具有最小数目的有效簇的两个逻辑块的有效簇的总数目为例如等于或大于作为预定的设定值的2k(对于一个逻辑块)时,重复上文所解释的步骤(以执行该步骤,直至可从IS中的两个逻辑块可以创建空闲块FB为止)。
从具有最小数目的有效簇的逻辑块开始依次收集2k个簇,且在IS中进行压紧。
此处,选择具有最小数目的有效簇的两个逻辑块。然而,数目不限于二,且仅须为等于或大于二的数目。预定的设定值仅须等于或小于这样的簇的数目,该簇可存储于比选定的逻辑块的数目小一的数目的逻辑块中。
主存储区(MS)11
解释MS 11。在MS 11中,以轨道为单位执行数据的管理。可将存储于MS 11中的数据视为具有低更新频率。当执行轨道数据从WC 21、FS 12或IS 13至MS 11的复制或移动时,将轨道写入被分配给MSIB 11a的逻辑块中。另一方面,当仅将轨道的一部分中的数据(簇)从FS 12、IS 13等等写入时,执行稍后所解释的被动合并,该被动合并用于合并现存的MS中的轨道数据与新数据以产生新轨道数据,然后将所产生的轨道数据写入MSIB 11a中。当无效轨道在MS 11中累积且分配给MS 11的逻辑块的数目超过MS 11所允许的块的数目的上限时,执行压紧处理以产生空闲块FB。
作为MS 11的压紧处理,例如,执行下文所解释的仅关注逻辑块中的有效轨道的数目的方法。
从具有最小数目的有效轨道的逻辑块中选择逻辑块,直至可通过组合无效轨道而产生空闲块FB为止。
当执行用于整合存储于选定逻辑块中的轨道与WC 21、FS 12或IS 13中的数据的被动合并时,执行压紧。
将其中可整合2i个轨道的逻辑块输出至TFS 11b(2i轨道MS压紧),且将数目小于2i的轨道输出至MSIB 11a(小于2i的轨道压紧)以产生较大数目的空闲块FB。
TFS 11b是其中以轨道为单位管理数据的FIFO。TFS 11b是这样的缓冲器,其认为通过TFS 11b的数据具有比后级处的MS 11的数据更高的更新频率。换句话说,在TFS 11b的FIFO结构中,当执行从主机向同一地址中的重写时,使通过FIFO的有效轨道(最新轨道)无效。因此,可将通过TFS 11b的轨道视为具有比从TFS 11b排挤至MS 11的轨道更高的更新频率。
图8为管理表的图,该管理表用于使数据管理单元120控制并管理图5和图6中所示的各个部件。数据管理单元120具有(如上文所解释的)桥接ATA命令处理单元121与NAND存储器10的功能,且包括:DRAM层管理单元120a,其执行对存储于DRAM 20中的数据的管理;逻辑NAND层管理单元120b,其执行对存储于NAND存储器10中的数据的管理;以及物理NAND层管理单元120c,其管理作为物理存储装置的NAND存储器10。RC簇管理表23、WC轨道管理表24和WC簇管理表25由DRAM层管理单元120a来控制。轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42和FS/IS内簇管理表44由逻辑NAND层管理单元120b来管理。逻辑至物理转译表50由物理NAND层管理单元120c来管理。
RC 22由RC簇管理表23来管理,该RC簇管理表23是反向查找表。在该反向查找表中,可从存储装置的位置搜寻存储于该位置中的逻辑地址。WC 21由WC簇管理表25和WC轨道管理表24来管理,其中WC簇管理表25为反向查找表,而WC轨道管理表24为正向查找表。在该正向查找表中,可从逻辑地址搜寻其中存在与该逻辑地址对应的数据的存储装置的位置。
NAND存储器10中的FS 12(FSIB 12a)、IS 13以及MS 11(TFS 11b和MSIB 11a)的逻辑地址由轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42以及FS/IS内簇管理表44来管理。在NAND存储器10中的FS 12(FSIB 12a)、IS 13以及MS 11(TFS 11b和MSIB 11a)中,执行逻辑至物理转译表50的逻辑地址与物理地址的转换。将这些管理表存储于NAND存储器10上的区中且将其从NAND存储器读取至DRAM 20,并且在SSD 100的初始化期间使用这些管理表。
RC簇管理表23(反向查找)
参看图9解释RC簇管理表23。如上文所解释,在由逻辑簇地址LSB(k-i)个位编索引的n-路集合关联系统(the n-way set associative system)中管理RC 22。RC簇管理表23为用于管理RC(簇尺寸×m-线×n-路)22的各个条目的标记的表。这些标记中的每一个包括状态标志(flag)23a和逻辑轨道地址23b,其中状态标志23a包括多个位。除了指示所述条目是否可使用(有效/无效)的有效位之外,状态标志23a还包括例如指示所述条目是否在等待从NAND存储器10读出的位、以及指示所述条目是否在等待读出至ATA命令处理单元121的位。RC簇管理表23用作反向查找表,该反向查找表用于从DRAM 20上的标记存储位置搜寻与LBA一致的逻辑轨道地址。
WC簇管理表25(反向查找)
参看图10解释WC簇管理表25。如上文所解释,在由逻辑簇地址LSB(k-i)个位编索引的n-路集合关联系统中管理WC 21。WC簇管理表25为用于管理WC(簇尺寸×m-线×n-路)21的各个条目的标记的表。这些标记中的每一个包括多个位的状态标志25a、扇区位置位映像(bitmap)25b,以及逻辑轨道地址25c。
除了指示所述条目是否可使用(有效/无效)的有效位之外,状态标志25a还包括例如指示所述条目是否在等待排挤至NAND存储器10的位、以及指示所述条目是否在等待从ATA命令处理单元121写入的位。通过将扇区扩展成2(l-k)个位,扇区位置位映像25b指示一个簇中所包括的2(l-k)个扇区中的哪一个存储有效数据。利用扇区位置位映像25b,可在WC 21中执行与LBA相同的以扇区为单位进行的管理。WC簇管理表25用作反向查找表,该反向查找表用于从DRAM 20上的标记存储位置搜寻与LBA一致的逻辑轨道地址。
WC轨道管理表24(正向查找)
参看图11解释WC轨道管理表24。WC轨道管理表24为用于管理信息(其中以轨道单位收集存储于WC 21上的簇)的表,且使用具有类似于FIFO功能的链接列表结构来表示轨道当中在WC 21中的登记的顺序(LRU)。LRU可通过WC 21中最后被更新的顺序来表示。每一列表的条目包括逻辑轨道地址24a、逻辑轨道地址中所包括的WC 21中的有效簇数目24b、路-线位映像24c、以及下一个指针24d,该下一个指针24d指示指向下一条目的指针。WC轨道管理表24用作正向查找表,这是因为所需信息是从逻辑轨道地址24a获得的。
路-线位映像24c为这样的映像信息,其指示在WC 21中的m×n个条目中的哪一个中存储WC 21中的逻辑轨道地址中所包括的有效簇。在其中存储有效簇的条目中,有效位为“1”。路-线位映像24c包括例如(一位(有效)+log2n个位(n-路))×m个位(m-线)。WC轨道管理表24具有链接列表结构。仅输入关于WC 21中存在的逻辑轨道地址的信息。
轨道管理表30(正向查找)
参看图12解释轨道管理表30。轨道管理表30为用于以逻辑轨道地址为单位来管理MS 11上的逻辑数据位置的表。当以簇为单位将数据存储于FS 12或IS 13中时,轨道管理表30存储关于数据的基本信息和指向详细信息的指针。轨道管理表30被配置为阵列格式,该阵列格式具有作为索引的逻辑轨道地址30a。具有逻辑轨道地址30a作为索引的每一条目包括诸如以下内容的信息:簇位映像30b、逻辑块ID 30c+逻辑块内轨道位置30d、簇表指针30e、FS簇的数目30f,以及IS簇的数目30g。轨道管理表30用作正向查找表,这是因为通过使用逻辑轨道地址作为索引,可获得诸如逻辑块ID(对应于存储装置位置)的所需信息,在该逻辑块ID中存储对应于逻辑轨道地址的逻辑轨道。
簇位映像30b为通过将属于一个逻辑轨道地址范围的2(k-i)个簇按照逻辑簇地址的升序分成例如八份而获得的位映像。八个位中的每一个指示对应于2(k-i-3)个簇地址的簇是存在于MS 11中还是存在于FS 12或IS 13中。当该位为“0”时,其指示作为搜寻对象的簇的确存在于MS 11中。当该位为“1”时,其指示簇很可能存在于FS 12或IS 13中。
逻辑块ID 30c是用于识别这样的逻辑块ID的信息,在该逻辑块ID中存储与逻辑轨道地址对应的逻辑轨道。逻辑块内轨道位置30d指示与逻辑轨道地址(30a)对应的轨道在由逻辑块ID 30c指定的逻辑块中的存储位置。因为一个逻辑块包括最大2i个有效轨道,所以逻辑块内轨道位置30d使用i个位识别2i个轨道位置。
簇表指针30e是指向具有链接列表结构的FS/IS管理表40的每一列表的顶条目的指针。在搜寻整个簇位映像30b的过程中,当指示出簇很可能存在于FS 12或IS 13中时,通过使用簇表指针30e来执行遍及FS/IS管理表40的搜寻。FS簇的数目30f指示出存在于FS 12中的有效簇的数目。IS簇的数目30g指示出存在于IS 13中的有效簇的数目。
FS/IS管理表40(正向查找)
参看图13解释FS/IS管理表40。FS/IS管理表40为用于以逻辑簇地址来管理存储于FS 12(包括FSIB 12a)或IS 13中的数据的位置的表。如图13中所示,对于每一个逻辑轨道地址,FS/IS管理表40以独立链接列表格式形成。如上文所解释,指向每一列表的顶条目的指针被存储在轨道管理表30的簇表指针30e的字段中。在图13中,示出用于两个逻辑轨道地址的链接列表。每一个条目包括逻辑簇地址40a、逻辑块ID 40b、逻辑块内簇位置40c、FS/IS块ID 40d,以及下一个指针40e。FS/IS管理表40用作正向查找表,这是因为可以从逻辑簇地址40a获得诸如逻辑块ID 40b以及逻辑块内簇位置40c(对应于存储装置位置)的所需信息,其中在上述逻辑块内簇位置40c中存储与逻辑簇地址40a对应的逻辑簇。
逻辑块ID 40b是用于识别其中存储与逻辑簇地址40a对应的簇的逻辑块ID的信息。逻辑块内簇位置40c指示与逻辑簇地址40a对应的簇在由逻辑块ID 40b指定的逻辑块中的存储位置。因为一个逻辑块包括最大2k个有效簇,所以逻辑块内簇位置40c使用k个位来识别2k个位置。在FS/IS块ID 40d中登记FS/IS块ID,该FS/IS块ID是稍后所解释的FS/IS逻辑块管理表42的索引。FS/IS块ID是这样的信息,其用于识别属于FS 12或IS 13的逻辑块。FS/IS管理表40中的FS/IS块ID 40d被登记,以链接至稍后所解释的FS/IS逻辑块管理表42。下一个指针40e表示指向为每一个逻辑轨道地址链接的同一列表中的下一条目的指针。
MS逻辑块管理表35(反向查找)
参看图14解释MS逻辑块管理表35。MS逻辑块管理表35为这样的表,其用于整体地管理关于MS 11中使用的逻辑块的信息(例如,存储哪个逻辑轨道,以及逻辑轨道是否额外可记录)。在MS逻辑块管理表35中,还登记与属于FS 12(包括FSIB 12)和IS 13的逻辑块有关的信息。MS逻辑块管理表35以阵列格式形成,该阵列形式具有逻辑块ID 35a作为索引。在128GB的NAND存储器10的情况下,条目的数目最大可为32K个条目。这些条目中的每一个包括:用于2i个轨道的轨道管理指针35b、有效轨道的数目35c、可写入的顶轨道35d,以及有效标志35e。MS逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的逻辑块ID 35a获得诸如存储于逻辑块中的逻辑轨道地址的所需信息。
轨道管理指针35b存储与逻辑块ID 35a所指定的逻辑块中的2i个轨道位置中的每一个相对应的逻辑轨道地址。可以使用该逻辑轨道地址来进行遍及轨道管理表30的搜寻,该轨道管理表30具有逻辑轨道地址作为索引。有效轨道的数目35c指示出在逻辑块ID 35a所指定的逻辑块中存储的轨道当中的有效轨道的数目(最大为2i)。可写入的顶轨道位置35d指示当逻辑块ID 35a所指定的逻辑块为被额外记录的块时额外可记录的顶位置(0至2i-1,当额外记录结束时为2i)。当作为MS 11(包括MSIB 11a)来管理逻辑块条目时,有效标志35e为“1”。这里,“额外记录”意义为以附带方式(appending manner)将簇或轨道写入逻辑块中的空逻辑页。
FS/IS逻辑块管理表42(反向查找)
参看图15解释FS/IS逻辑块管理表42。FS/IS逻辑块管理表42以阵列格式形成,该阵列格式具有FS/IS块ID 42a作为索引。FS/IS逻辑块管理表42为用于管理与用作FS 12或IS 13的逻辑块有关的信息(与逻辑块ID的对应、指向FS/IS内簇管理表44的索引、逻辑块是否额外可记录等)的表。FS/IS逻辑块管理表42主要通过使用FS/IS管理表40中的FS/IS块ID 40d来存取。每一条目包括逻辑块ID 42b、块内簇表42c、有效簇的数目42d、可写入的顶页42e,以及有效标志42f。MS逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的FS/IS块ID 42获得诸如在逻辑块中存储的簇之类的所需信息。
在MS逻辑块管理表35中登记的逻辑块当中与属于FS 12(包括FSIB12)和IS 13的逻辑块相对应的逻辑块ID被登记于逻辑块ID 42b中。指向稍后所解释的FS/IS内簇管理表44的索引被登记于块内簇表42c中,该FS/IS内簇管理表44指示在逻辑块中的每一个簇位置中登记由哪个逻辑簇地址指定的逻辑簇。有效簇的数目42d指示在FS/IS块ID 42a所指定的逻辑块中存储的簇当中的有效簇的数目(最大为2k)。可写入的顶页位置42e指示当FS/IS块ID 42a所指定的逻辑块为被额外记录的块时,额外可记录的顶页位置(0至2j-1,当额外记录结束时为2i)。当作为FS 12(包括FSIB12)或IS 13来管理逻辑块条目时,有效标志42f为“1”。
FS/IS内簇管理表44(反向查找)
参看图16解释FS/IS内簇管理表44。FS/IS内簇管理表44为指示在用作FS 12或IS 13的逻辑块中的每一个簇位置中记录哪个逻辑簇的表。FS/IS内簇管理表44对于每一个逻辑块具有2j页×2(k-j)簇=2k个条目。在连续区中排列与逻辑块中的簇位置当中的与第0至第2k-1个簇位置对应的信息。以与属于FS 12和IS 13的逻辑块数目(P)等价的数目来存储包括该2k条信息的表。FS/IS逻辑块管理表42的块内簇表42c为用于该P个表的位置信息(指针)。在连续区中排列的每一条目44a的位置指示在一个逻辑块中的簇位置。作为条目44a的内容,登记指向这样的列表的指针,该列表包括通过FS/IS管理表40管理的逻辑簇地址,使得可以识别在簇位置中存储了哪个簇。换句话说,条目44a并不指示链接列表的顶部。在条目44a中登记指向这样一个列表的指针,这个列表包括链接列表中的逻辑簇地址。
逻辑至物理转译表50(正向查找)
参看图17解释逻辑至物理转译表50。逻辑至物理转译表50以阵列格式形成,该阵列格式具有逻辑块ID 50a作为索引。在128GB的NAND存储器10的情况下,条目的数目可为最大32K个条目。逻辑至物理转译表50为用于管理关于逻辑块ID与物理块ID之间的转换和寿命的信息的表。这些条目中的每一个包括物理块地址50b、擦除的次数50c,以及读出的次数50d。逻辑至物理转译表50用作正向查找表,这是因为可以从逻辑块ID获得诸如物理块ID(物理块地址)之类的所需信息。
物理块地址50b指示属于一个逻辑块ID 50a的八个物理块ID(物理块地址)。擦除的次数50c指示逻辑块ID的擦除的次数。坏块(BB)以物理块(512KB)为单位来管理。然而,在32-位双速模式中,擦除的次数以一个逻辑块(4MB)的单位来管理。读出的次数50d指示逻辑块ID的读出的次数。擦除的次数50c可用于例如磨损均化处理中,该磨损均化处理用于均化NAND型闪速存储器的重写的次数。读出的次数50d可用于刷新处理中,该刷新处理用于重写在具有恶化的保持性能的物理块中存储的数据。
在国际申请No.PCT/JP2008/066508和No.PCT/JP2008/066507中描述了磨损均化处理的实例。在国际申请No.PCT/JP2008/067597中描述了刷新处理的实例,其全部内容通过引用合并于此。
图8中所示的管理表通过下文所解释的管理对象来对照。
RC管理:RC簇管理表23
WC管理:WC簇管理表25和WC轨道管理表24
MS管理:轨道管理表30和MS逻辑块管理表35
FS/IS管理:轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42,以及FS/IS内簇管理表44
包括MS 11、MSIB 11a和TFS 11b的MS区的结构以MS结构管理表(未示出)进行管理。具体地,管理分配给MS 11、MSIB 11a和TFS 11b的逻辑块及其类似者。包括FS 12、FSIB 12a和IS 13的FS/IS区的结构以FS/IS结构管理表(未示出)进行管理。具体地,管理分配给FS 12、FSIB12a和IS 13的逻辑块及其类似者。
读取处理
参看图18中所示的流程图来解释读取处理。当从ATA命令处理单元121输入读取命令和作为读出地址的LBA和读出尺寸时,数据管理单元120遍及图9中所示的RC簇管理表23和图10中所示的WC簇管理表25进行搜寻(步骤S100)。具体地,数据管理单元120从RC簇管理表23和WC簇管理表25选择与LBA的逻辑簇地址的LSB(k-i)个位(参见图7)对应的线,且比较在选定的线的每一路中所输入的逻辑轨道地址23b和25c与LBA的轨道地址(步骤S110)。当存在使得输入于自身中的逻辑轨道地址与LBA的轨道地址一致的路时,数据管理单元120将此视为高速缓冲存储器命中(cache hit)。数据管理单元120读出与RC簇管理表23或WC簇管理表25的命中的线和路对应的WC 21或RC 22的数据,且将数据发送至ATA命令处理单元121(步骤S115)。
当RC 22或WC 21中不存在命中时(步骤S110),数据管理单元120搜寻作为搜寻对象的簇被存储于NAND存储器10的哪一部分中。首先,数据管理单元120遍及图12中所示的轨道管理表30进行搜寻(步骤S120)。轨道管理表30通过逻辑轨道地址30a来编索引。因此,数据管理单元120仅检查与LBA指定的逻辑轨道地址一致的逻辑轨道地址30a的条目。
数据管理单元120基于需要检查的LBA的逻辑簇地址而从簇位映像30b中选择对应位。当所述对应位指示“0”时,这意味着簇的最新数据的确存在于MS中(步骤S130)。在这种情况下,数据管理单元120从逻辑轨道地址30a的同一条目中的逻辑块ID 30c和逻辑块内轨道位置30d获得逻辑块ID以及轨道存在于其中的轨道位置。数据管理单元120使用LBA的逻辑簇地址的LSB(k-i)个位来计算从轨道位置的偏移。因此,数据管理单元120可计算与NAND存储器10中的逻辑簇地址相对应的簇数据被存储的位置。具体地,逻辑NAND层管理单元120b向物理NAND层管理单元120c提供:如上文所解释的从轨道管理表30获取的逻辑块ID 30c和逻辑块内位置30d,以及LBA的逻辑簇地址的LSB(k-i)个位。
物理NAND层管理单元120c从图17中所示的具有逻辑块ID作为索引的逻辑至物理转译表50获取对应于逻辑块ID 30c的物理块地址(物理块ID)(步骤S160)。数据管理单元120从逻辑块内轨道位置30d计算所获取的物理块ID中的轨道位置(轨道顶位置),且进一步从LBA的逻辑簇地址的LSB(k-i)个位计算与物理块ID中所计算出的轨道顶位置的偏移。因此,数据管理单元120可获取物理块中的簇数据。数据管理单元120经由RC 22将从NAND存储器10的MS 11获取的簇发送至ATA命令处理单元121(步骤S180)。
另一方面,当基于LBA的逻辑簇地址而在遍及簇位映像30b的搜寻中所述对应位指示“1”时,很可能该簇存储于FS 12或IS 13中(步骤S130)。在这种情况下,数据管理单元120在轨道管理表30中的逻辑轨道地址30a的相关条目当中提取簇表指针30e的条目,且使用此指针顺序地搜寻遍及与FS/IS管理表40的相关逻辑轨道地址相对应的链接列表(步骤S140)。具体地,数据管理单元120在相关逻辑轨道地址的链接列表中搜寻与LBA的逻辑簇地址一致的逻辑簇地址40a的条目。当存在逻辑簇地址40a的一致条目时(步骤S150),数据管理单元120在一致列表中获取逻辑块ID 40b和逻辑块内簇位置40c。以与上文所解释的方式相同的方式,数据管理单元120使用逻辑至物理转译表50来获取物理块中的簇(步骤S160和S180)。具体地,数据管理单元120从逻辑至物理转译表50获取与所获取的逻辑块ID对应的物理块地址(物理块ID)(步骤S160),且从由逻辑块内簇位置40c的条目获取的逻辑块内簇位置计算所获取的物理块ID的簇位置。因此,数据管理单元120可获取物理块中的簇。数据管理单元120经由RC 22将从NAND存储器10的FS 12或IS 13获取的簇发送至ATA命令处理单元121(步骤S180)。
当在遍及FS/IS管理表40的搜寻中不存在作为搜寻对象的簇时(步骤S150),数据管理单元120再次遍及轨道管理表30的条目进行搜寻,且决定在MS 11上的位置(步骤S170)。
写入处理
参看图19中所示的流程图来解释写入处理。通过写入命令而写入的数据总是一次存储于WC 21上。此后,根据条件而将数据写入NAND存储器10中。在写入处理中,很可能执行排挤处理和压紧处理。在该实施例中,将写入处理粗略划分成写入高速缓冲存储器闪速处理(write cache flashprocessing)(在下文中为WCF处理)和清除输入缓冲器处理(在下文中为CIB处理)的两个阶段。步骤S300至S320指示从来自ATA命令处理单元121的写入请求至WCF处理的处理。步骤S330至最后步骤指示CIB处理。
WCF处理为用于将WC 21中的数据复制至NAND存储器10(FS 12的FSIB 12a、或者MS 11的MSIB 11a)的处理。来自ATA命令处理单元121的单独的写入请求或高速缓冲存储器排挤请求可仅通过该处理来完成。这使得可以将ATA命令处理单元121的写入请求的已开始处理中的延迟最大限制为这样的时间,该时间用于在与WC 21的容量等价的NAND存储器10中写入。
CIB处理包括用于将FSIB 12a中通过WCF处理而写入的数据移动至FS 12的处理,以及用于将MSIB 11a中通过WCF处理而写入的数据移动至MS 11的处理。当开始CIB处理时,很可能以链式反应的方式执行NAND存储器中的部件(FS 12、IS 13、MS 11等)当中的数据移动和压紧处理。全部处理所需的时间大体上根据状态而改变。
WCF处理
首先,解释WCF处理的细节。当从ATA命令处理单元121输入写入命令、作为写入地址的LBA和写入尺寸时,DRAM层管理单元120a遍及图10中所示的WC簇管理表25进行搜寻(步骤S300和S305)。WC 21的状态通过图10中所示的WC簇管理表25的状态标志25a(例如,3个位)来限定。最典型地,状态标志25a的状态以无效(可用)→等待从ATA写入→有效(不可用)→等待排挤至NAND→无效(可用)的顺序转变。首先,从LBA的逻辑簇地址LSB(k-i)个位判定写入目的地处的线,且搜寻所判定的线的n路。当与所输入的LBA的逻辑轨道地址相同的逻辑轨道地址25c存储于所判定的线的n路中时(步骤S305),DRAM层管理单元120a将此条目获取(secure)为用于写入簇的条目,因为该条目将被覆写(有效(不可用)→等待从ATA写入)。
DRAM层管理单元120a向ATA命令处理单元121通知对应于该条目的DRAM地址。当ATA命令处理单元121所进行的写入完成时,数据管理单元120将该条目的状态标志25a改变成有效(不可用),且将所需数据登记在扇区位置位映像25b和逻辑轨道地址25c的空间中。数据管理单元120更新WC轨道管理表24。具体地,当输入与已登记于WC轨道管理表24的列表中的逻辑轨道地址24a相同的LBA地址时,数据管理单元120更新相关列表的WC簇的数目24b和路-线位映像24c,且改变下一个指针24d,以使该列表变为最新列表。当输入与登记于WC轨道管理表24的列表中的逻辑轨道地址24a不同的LBA地址时,数据管理单元120创建新列表,该新列表具有逻辑轨道地址24a、WC簇的数目24b、路-线位映像24c以及下一个指针24d的条目,且将该列表登记为最新列表。数据管理单元120执行上文所解释的表更新,从而完成写入处理(步骤S320)。
另一方面,当与所输入的LBA的逻辑轨道地址相同的逻辑轨道地址25c没有存储于所判定的线的n路中时,数据管理单元120判断是否有必要排挤至NAND存储器10(步骤S305)。首先,数据管理单元120判断所判定的线中的可写入的路是否为最后的第n路。可写入的路为具有无效(可用)的状态标志25a的路,或者具有有效(不可用)状态标志25a并等待排挤至NAND的路。当状态标志25a为等待排挤至NAND时,这意味着排挤开始了,且条目为排挤的结束的等待。当可写入的路并非为最后的第n路,且可写入的路为具有无效(可用)的状态标志25a的路时,数据管理单元120将此条目获取为用于簇写入的条目(无效(可用)→等待从ATA写入)。数据管理单元120向ATA命令处理单元121通知对应于该条目的DRAM地址,且使ATA命令处理单元121执行写入。以与上文所解释的方式相同的方式,数据管理单元120更新WC簇管理表25和WC轨道管理表24(步骤S320)。
当可写入的路并非为最后的第n路时,以及当可写入的路为具有有效(不可用)的状态标志25a并等待排挤至NAND的路时,数据管理单元120将此条目获取为用于簇写入的条目(有效(不可用)且等待排挤至NAND→有效(不可用)且等待从NAND排挤并等待从ATA写入)。当结束排挤时,数据管理单元120将状态标志25a改变为等待从ATA写入,向ATA命令处理单元121通知对应于该条目的DRAM地址,且使ATA命令处理单元121执行写入。以与上文所解释的方式相同的方式,数据管理单元120更新WC簇管理表25和WC轨道管理表24(步骤S320)。
当输入来自ATA命令处理单元121的写入请求而不必须触发排挤处理时,执行上文所解释的处理。另一方面,当在输入写入请求之后触发排挤处理时,执行下文所解释的处理。在步骤S305处,当所判定的线中的可写入的路为最后的第n路时,数据管理单元120基于这样的条件而选择将要排挤的轨道(即,WC 21中的条目),该条件在判定将要从WC 21排挤至NAND存储器10的数据的方法的(i)中进行解释,即,
(i)当通过标记判定的可写入的路为最后的(在该实施例中,第n个)空闲的路时,即,当将使用最后的空闲的路时,决定排挤登记于线中的轨道当中的基于LRU的最早更新的轨道。
当根据上文所解释的策略判定将要排挤的那个轨道时,如上文所解释的,如果相同逻辑轨道地址中所包括的WC 21中的所有簇将被排挤,且将要排挤的簇的量超过轨道尺寸的50%(即,如果WC中的有效簇的数目等于或大于决定排挤的轨道中的2(k-i-1)时),则DRAM层管理单元120a执行至MSIB 11a的排挤(步骤S310)。如果簇的量未超过轨道尺寸的50%(即,WC中的有效簇的数目小于决定排挤的轨道中的2(k-i-1)),则DRAM层管理单元120a将轨道排挤至FSIB 12a(步骤S315)。稍后解释从WC 21至MSIB 11a的排挤以及从WC 21至FSIB 12a的排挤的细节。将选定的排挤条目的状态标志25a从有效(不可用)转变为等待排挤至NAND存储器10。
通过使用WC轨道管理表24,执行该对于排挤目的地的判断。对于每一逻辑轨道地址,在WC轨道管理表24中登记指示有效簇数目的WC簇的数目24b的条目。数据管理单元120参考WC簇的数目24b的条目来判定应将FSIB 12a和MSIB 11a中的哪一者设定为从WC 21的排挤的目的地。属于逻辑轨道地址的所有簇都以位映像格式登记于路-线位映像24c中。因此,在执行排挤过程中,数据管理单元120可参考路-线位映像24c而容易地获悉应排挤的簇中的每一个在WC 21中的存储位置。
在写入处理期间或在写入处理之后,数据管理单元120在以下条件得到满足时还以相同的方式执行至NAND存储器10的排挤处理:
(ii)登记于WC 21中的轨道的数目超过预定数目。
WC→MSIB(复制)
当根据基于有效簇的数目(有效簇的数目等于或大于2(k-i-1))的判断而执行从WC 21至MSIB 11a的排挤时,数据管理单元120如上文所解释地执行下文所解释的过程(步骤S310)。
1.参考WC簇管理表25且参考与将要排挤的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为“1”时,数据管理单元120通过从NAND存储器10读出包括在相同逻辑轨道中的丢失扇区以执行稍后所解释的轨道内扇区填充(padding)用于与在WC 21中不存在的扇区合并。
2.当决定排挤的轨道的数目小于2i时,数据管理单元120添加决定排挤的、具有2(k-i-1)个或更多有效簇的轨道,直至决定排挤的轨道的数目从WC 21中的最旧者起达到2i个为止。
3.当将要复制的轨道有2i个或更多时,数据管理单元120以逻辑块单位(每2i个轨道作为一个集合)在MSIB 11a中执行写入。
4.数据管理单元120以轨道为单位将无法形成2i个轨道的集合的轨道写入MSIB 11a中。
5.数据管理单元120在复制结束之后使已存在于FS、IS和MS上的簇及轨道当中的属于被复制的轨道的簇和轨道无效。
解释从WC 21至MSIB 11a的复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中经排挤的轨道的所有簇相对应。此后,有可能在这些条目中进行写入。关于与WC轨道管理表24中的经排挤的轨道对应的列表,数据管理单元120改变或删除例如上一个列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WC 21至MSIB 11a的轨道移动时,数据管理单元120根据轨道排挤而更新轨道管理表30和MS逻辑块管理表35。首先,数据管理单元120搜寻作为轨道管理表30的索引的逻辑轨道地址30a,以判断是否已经登记对应于被排挤的轨道的逻辑轨道地址30a。当已登记逻辑轨道地址30a时,数据管理单元120更新该索引的簇位映像30b的字段(因为轨道被排挤至MS 11侧,所以所有相关位被设定为“0”)以及逻辑块ID 30c+逻辑块内轨道位置30d。当未登记对应于被排挤的轨道的逻辑轨道地址30a时,数据管理单元120将簇位映像30b以及逻辑块ID 30c+逻辑块内轨道位置30d登记于相关逻辑轨道地址30a的条目中。数据管理单元120根据轨道管理表30的改变而在必要时更新MS逻辑块管理表35中的逻辑块ID 35a、轨道管理指针35b、有效轨道的数目35c、可写入的顶轨道35d等的条目。
当执行从其它区(FS 12和IS 13)或其类似者至MS 11的轨道写入时,或当执行通过MS 11中的压紧处理而进行的MS轨道内写入时,可将作为写入对象的逻辑轨道地址中所包括的WC 21中的有效簇同时写入MS中。这样的被动合并可随着从WC 21至MS 11的写入而存在。当执行这样的被动合并时,将簇从WC 21删除(使其无效)。
WC→FSIB(复制)
当根据基于有效簇的数目(有效簇的数目等于或大于2(k-i-1))的判断而执行从WC 21至FSIB 12a的排挤时,数据管理单元120如上文所解释地执行下文所解释的过程。
1.参考与将要排挤的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为“1”时,数据管理单元120通过从NAND存储器10读出包括在相同逻辑轨道中的丢失扇区以执行簇内扇区填充,用于与在WC 21中不存在的扇区合并。
2.数据管理单元120通过以从最旧轨道起的顺序追踪WC中的轨道而从仅具有小于2(k-i-1)个有效簇的轨道中提取簇,且当有效簇的数目达到2k时,以逻辑块为单位将所有簇写入FSIB 12a中。
3.当未寻找到2k个有效簇时,数据管理单元120以与逻辑页的数目等价的数目将具有小于2(k-i-1)的数目的有效簇的所有轨道写入FSIB 12a中。
4.数据管理单元120在复制结束之后使已存在于FS和IS上的簇当中的与被复制的簇相同的簇无效。
解释从WC 21至FSIB 12a的该复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中被排挤的轨道的所有簇相对应。此后,有可能在这些条目中进行写入。关于与WC轨道管理表24中的经排挤的轨道相对应的列表,数据管理单元120改变或删除例如上一个列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WC 21至FSIB 12a的簇排挤时,数据管理单元120根据簇排挤而更新轨道管理表30的簇表指针30e、FS簇的数目30f及其类似者。数据管理单元120还更新FS/IS管理表40的逻辑块ID 40b、逻辑块内簇位置40c及其类似者。关于最初不存在于FS 12中的簇,数据管理单元120将列表添加至FS/IS管理表40的链接列表。根据该更新,数据管理单元120更新MS逻辑块管理表35、FS/IS逻辑块管理表42和FS/IS内簇管理表44的相关的区段。
CIB处理
当上文所解释的WCF处理结束时,逻辑NAND层管理单元120b执行CIB处理,该CIB处理包括用于将FSIB 12a中通过WCF处理而写入的数据移动至FS 12的处理、以及用于将MSIB 11a中通过WCF处理而写入的数据移动至MS 11的处理。当开始CIB处理时,如上文所解释的,很可能以链式反应的方式执行块之间的数据移动和压紧处理。全部处理所需的时间大体上根据状态而改变。在CIB处理中,基本上,首先,执行MS 11中的CIB处理(步骤S330),随后,执行FS 12中的CIB处理(步骤S340),再次执行MS 11中的CIB处理(步骤S350),执行IS 13中的CIB处理(步骤360),且最后再次执行MS 11中的CIB处理(步骤S370)。在从FS 12至MSIB 11a的排挤处理、从FS 12至IS 13的排挤处理或从IS 13至MSIB 11a的排挤处理中,当过程中出现循环时,可能不按顺序执行处理。下面将单独地解释MS 11中的CIB处理、FS 12中的CIB处理和IS 13中的CIB处理。
MS 11中的CIB处理
首先,解释MS 11中的CIB处理(步骤S330)。当执行轨道数据从WC 21、FS 12和IS 13向MS 11的移动时,将轨道数据写入MSIB 11a中。在完成在MSIB 11a中的写入之后,如上文所解释的,更新轨道管理表30,且改变(移动)轨道排列于其中的逻辑块ID 30c、块内轨道位置30d及其类似者。当将新轨道数据写入MSIB 11a中时,使从开始起就存在于MS 11或TFS 11b中的轨道数据无效。该无效化处理是这样实现的,即,使这样的轨道无效,所述轨道来自MS逻辑块管理表35中的其中存储旧轨道信息的逻辑块的条目。具体地,删除MS逻辑块管理表35的条目中的轨道管理指针35b的字段中的相关轨道的指针,且使有效轨道的数目减一。当通过该轨道无效化而使一个逻辑块中的所有轨道无效时,使有效标志35e无效。通过这样无效化或其类似者,产生MS 11的包括无效轨道的逻辑块。当重复此步骤时,逻辑块的使用效率会降低而引起可用逻辑块的不足。
当出现这种情形且分配给MS 11的逻辑块的数目超过MS 11所允许的逻辑块的数目的上限时,数据管理单元120执行压紧处理以产生无效的空闲块FB。将该无效的空闲块FB返回至物理NAND层管理单元120c。逻辑NAND层管理单元120b减少分配给MS 11的逻辑块的数目,且接着重新从物理NAND层管理单元120c获取可写入的空闲块FB。压紧处理为这样的处理,其用于在新逻辑块中收集作为压紧对象的逻辑块的有效簇,或者将作为压紧对象的逻辑块中的有效轨道复制至其它逻辑块,以产生返回至物理NAND层管理单元120c的空闲块FB,且改善逻辑块的使用的效率。在执行压紧的过程中,当存在WC 21、FS 12和IS 13上的有效簇时,数据管理单元120执行被动合并,该被动合并用于合并作为压紧对象的包括在逻辑轨道地址中的所有有效簇。登记于TFS 11b中的逻辑块不包括在压紧对象中。
特别解释从MSIB 11a至MS 11或至TFS 11b的移动以及将MSIB 11a中存在满逻辑块设定为条件的压紧处理的实例。“满”逻辑块意味着所有逻辑页写入被写入的逻辑块,并且不可能进行额外记录。
1.参考MS逻辑块管理表35的有效标志35e,当在MS 11中存在无效的逻辑块时,数据管理单元120将该逻辑块设定为空闲块FB。
2.数据管理单元120将MSIB 11a中的满逻辑块移动至MS 11。具体地,数据管理单元120更新上文所解释的MS结构管理表(未示出),且将逻辑块从在MSIB 11a的管理之下转移至在MS的管理之下。
3.数据管理单元120判断分配给MS 11的逻辑块的数目是否超过MS11所允许的块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的MS压紧。
4.参考MS逻辑块管理表35的有效轨道的数目35c的字段及其类似者,数据管理单元120以有效轨道的数目对不包括在TFS 11b中的逻辑块当中的具有无效轨道的逻辑块进行分类。
5.数据管理单元120从具有小数目的有效轨道的逻辑块收集轨道,且执行压紧。在执行压紧过程中,首先,对于逻辑块中的每一个,对轨道进行复制(一次复制2i个轨道),以执行压紧。当作为压紧对象的轨道具有在WC 21、FS 12和IS 13中的有效簇时,数据管理单元120还合并这些有效簇。
6.数据管理单元120将压紧源处的逻辑块设定为空闲块FB。
7.当执行压紧且一个逻辑块包括有效的2i个轨道时,数据管理单元120将逻辑块移动至TFS 11b的顶部。
8.当可通过将逻辑块中的有效轨道复制至另一逻辑块而产生空闲块FB时,数据管理单元120以轨道单位将数目小于2i的有效轨道额外记录在MSIB 11a中。
9.数据管理单元120将压紧源处的逻辑块设定为空闲块FB。
10.当分配给MS 11的逻辑块的数目降低至MS 11所允许的块的数目的上限以下时,数据管理单元120结束MS压紧处理。
在FS 12中的CIB处理
解释FS 12中的CIB处理(步骤S340)。当通过从WC 21至FSIB 12a的簇写入处理而在FSIB 12a中产生其中所有的逻辑页都被写入的逻辑块时,将FSIB 12a中的逻辑块从FSIB 12a移动至FS 12。根据该移动,将旧逻辑块从多个逻辑块所配置的FIFO结构的FS 12排挤。
具体地如下文所解释地实现从FSIB 12a至FS 12的排挤以及从FS 12到MS 11和/或IS 13的排挤。
1.参考FS/IS逻辑块管理表42的有效标志35e及其类似者,当在FS 12中存在被无效的逻辑块时,数据管理单元120将该逻辑块设定为空闲块FB。
2.数据管理单元120将FSIB 12a中的满逻辑块排挤至FS 12。具体地,数据管理单元120更新FS/IS结构管理表(未示出),且将该逻辑块从在FSIB的管理之下转移至在FS的管理之下。
3.数据管理单元120判断分配给FS 12的逻辑块的数目是否超过FS12所允许的块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的排挤。
4.首先,数据管理单元120确定作为排挤对象的最旧逻辑块中的簇当中,应直接被复制至MS 11而不移动至IS 13的簇(实际上,因为MS的管理单位为轨道,所以以轨道单位确定所述簇数据)。
(A)数据管理单元120按照从逻辑页的顶部开始的顺序扫描作为排挤对象的最旧逻辑块中的有效簇。
(B)数据管理单元120参考轨道管理表30的FS簇的数目30f的字段,寻找在FS 12中该簇所属于的轨道具有多少个有效簇。
(C)当该轨道中的有效簇的数目等于或大于预定阈值(例如,2k-1的50%)时,数据管理单元120将该轨道设定为排挤至MS 11的候选者。
5.数据管理单元120将应被排挤至MS 11的轨道写入MSIB 11a中。
6.当在最旧逻辑块中遗留有要以轨道单元排挤的有效簇时,数据管理单元120进一步执行至MSIB 11a的排挤。
7.当即使在上文的处理2至处理4之后,作为排挤对象的逻辑块中仍存在有效簇时,数据管理单元120将该最旧逻辑块移动至IS 13。
当执行从FS 12至MSIB 11a的排挤时,紧接在排挤之后,数据管理单元120执行MS 11中的CIB处理(步骤S350)。
IS 13中的CIB处理
解释IS 13中的CIB处理(步骤S360)。根据从FS 12至IS 13的移动而将逻辑块添加至IS 13。然而,根据逻辑块的添加,逻辑块的数目超过可在多个逻辑块所形成的IS 13中进行管理的块的数目的上限。当逻辑块的数目超过上限时,在IS 13中,首先,数据管理单元120执行一个到多个逻辑块至MS 11的排挤,然后执行IS压紧。具体地,数据管理单元120执行下文所解释的过程。
1.数据管理单元120以轨道中的有效簇的数目×有效簇系数对IS 13中所包括的轨道进行分类,收集具有大乘积值的2i+1个轨道(对于两个逻辑块),且将这些轨道排挤至MSIB 11a。
2.当具有最小数目的有效簇的2i+1个逻辑块的有效簇的总数目为例如等于或大于作为预定设定值的2k个(对于一个逻辑块)时,数据管理单元120重复上文所解释的步骤。
3.在执行排挤之后,数据管理单元120按照以从具有最小数目的有效簇的逻辑块开始的顺序收集2k个簇,且执行IS 13中的压紧。
4.数据管理单元120将压紧源处的逻辑块当中不包括有效簇的逻辑块释放为空闲块FB。
当执行从IS 13至MSIB 11a的排挤时,紧接在排挤之后,数据管理单元120执行MS 11中的CIB处理(步骤S370)。
图20为部件当中的数据的流动中的输入与输出的组合的图,且指示作为触发器引起数据的流动的原因。基本上,根据从WC 21的簇排挤而将数据写入FS 12中。然而,当对于从WC 21至FS 12的排挤偶然有必要进行簇内扇区填充(簇填充)时,复制来自FS 12、IS 13和MS 11的数据。在WC 21中,通过使用WC簇管理表25的标记中的扇区位置位映像25b识别相关逻辑簇地址中存在还是不存在2(l-k)个扇区,有可能以扇区(512B)为单位执行管理。另一方面,FS 12和IS 13的管理单位为簇,且MS 11的管理单位为轨道,其中FS 12和IS 13为NAND存储器10中的功能部件。以这种方式,NAND存储器10中的管理单位比扇区大。因此,在从WC 21将数据写入NAND存储器10的过程中,当在NAND存储器10中存在所具有的簇地址与将要写入的数据的簇地址相同的数据时,有必要在进行这样的合并之后将数据写入NAND存储器10中,所述合并是将从WC 21写入NAND存储器10中的簇中的扇区与NAND存储器10中存在的相同逻辑簇地址中的扇区进行合并。
该处理为图20中所示的簇内扇区填充处理(簇填充)和轨道内扇区填充(轨道填充)。除非执行这些种类的处理,否则不能读出正确数据。因此,当数据从WC 21排挤至FSIB 12a或MSIB 11a时,参考WC簇管理表25且参考与将要排挤的簇相对应的标记中的扇区位置位映像25b。当并非所有的扇区位置位映像25b都为“1”时,执行簇内扇区填充或轨道内扇区填充,用于与NAND存储器10中所包括的相同簇或相同轨道中的扇区合并。DRAM 20的工作区被用于该处理。将逻辑簇地址或逻辑轨道地址中包括的多个扇区合并到DRAM 20的工作区上,并创建要排挤的数据图像(簇图像或轨道图像)。将创建的数据图像从DRAM 20的工作区写入MSIB 11a中或写入FSIB 12a中。
在IS 13中,基本上,根据从FS 12的块排挤(移动)而写入数据,或者根据IS中的压紧而写入数据。在MS 11中,可从所有区段写入数据。当写入数据时,在MS 11中,因为仅可以以轨道为单位写入数据,所以可引起归因于MS本身的数据的填充。当以轨道为单位写入数据时,还根据被动合并而写入其它块中的片段数据。此外,在MS 11中,还根据MS压紧而写入数据。在被动合并中,当执行从WC 21、FS 12或IS 13这三个部件之一至MS 11的轨道排挤或逻辑块排挤(对于2i个轨道的排挤)时,在DRAM 20的工作区中收集一个部件中的作为排挤对象的轨道(或逻辑块)中所包括的两个部件中的有效簇以及MS 11中的有效簇,并将这些有效簇从DRAM 20的工作区写入MSIB 11a中作为一个轨道的数据。
更加详细地解释这个实施例。图21是与图6中所示的NAND存储器10的写入处理相关的详细功能配置的视图。省略多余解释。
FS配置
FS单元12Q包括FSIB 12a和FS 12。FS 12具有用于大量逻辑块的容量。以逻辑块为单位管理FIFO结构。从WC 21排挤的数据被输入其中的FS输入缓冲器(FSIB)12a设置在FS 12的前级处。FSIB 12a包括FS满块缓冲器(FSFB)12aa和FS额外记录缓冲器(FS额外记录IB)12ab。FSFB 12aa具有用于一个至多个逻辑块的容量。FS额外记录IB 12ab也具有用于一个至多个逻辑块的容量。当从WC 21排挤的数据是用于一个逻辑块的数据时,执行以逻辑块为单位至FSFB 12aa的数据复制(块复制)。当从WC 21排挤的数据不是用于一个逻辑块的数据时,执行到FS额外记录IB 12ab中的以逻辑页为单位的数据复制(页复制)。
IS配置
IS单元13Q包括IS 13、IS输入缓冲器(ISIB)13a、和IS压紧缓冲器13c。ISIB 13a具有用于一个至多个逻辑块的容量。IS压紧缓冲器13c具有例如用于一个逻辑块的容量,IS 13具有用于大量逻辑块的容量。在IS13中,与在FS 12中一样,以逻辑块为单位管理FIFO结构。IS压紧缓冲器13c为用于执行IS单元13Q中的压紧的缓冲器。
如上文所解释的,IS单元13Q以与FS单元12Q相同的方式以簇为单位执行数据的管理。当执行逻辑块从FS单元12Q至IS单元13Q的移动(即,逻辑块从FS 12的排挤)时,根据指针的重新定位(块移动),将作为排挤对象的逻辑块(其为FS单元12Q的先前管理对象)改变成IS单元13(具体地,ISIB 13a)的管理对象。当根据逻辑块从FS单元12Q至IS单元13Q的移动,IS 13的逻辑块的数目超过预定上限时,执行从IS 13至MS单元11Q的数据排挤和IS压紧处理,且使IS单元13Q的逻辑块的数目复位为规定值。
MS配置
MS单元11Q包括MSIB 11a、轨道前级缓冲器(TFS)11b,以及MS 11。MSIB 11a包括一个至多个(在该实施例中为四个)MS满块输入缓冲器(在下文中为MSFB)11aa和一个至多个(在该实施例中为两个)额外记录输入缓冲器(在下文中为MS额外记录IB)11ab。一个MSFB 11aa具有用于一个逻辑块的容量。MSFB 11aa用于以逻辑块单位进行的写入。一个MS额外记录IB 11ab具有用于一个逻辑块的容量。MS额外记录IB11ab用于以轨道单位进行的额外写入。
将从WC 21排挤的逻辑块、从FS 12排挤的逻辑块或从IS 13排挤的逻辑块复制至MSFB 11aa(块复制)。将复制至一个MSFB 11aa的逻辑块直接移动至MS 11(块复制)而不通过TFS 11b移动。在逻辑块被移动至MS 11之后,将空闲块FB分配为MSFB 11aa。
以附带方式将从WC 21排挤的轨道或从FS 12排挤的轨道复制至MS额外记录IB 11ab(轨道复制)。将该MS额外记录IB 11ab中以轨道为单位额外记录的满逻辑块移动至TFS 11b(块移动)。在逻辑块被移动至TFS11b之后,将空闲块FB分配为MS额外记录IB 11ab。
如上文所解释的,TFS 11b为这样的缓冲器,其具有用于大量逻辑块的容量,且具有插入在MS额外记录IB 11ab与MS 11之间的FIFO结构。将MS额外记录IB 11ab中以轨道单位额外记录的满逻辑块移动至具有FIFO结构的TFS 11b的输入侧。从MS压紧缓冲器11c移动根据在MS 11中的压紧处理形成的具有有效数据的逻辑块(块移动)。MS压紧缓冲器11c为用于执行MS 11中的压紧的缓冲器。当根据MS 11中的压紧处理在MS压紧缓冲器11c中写入MS中的轨道时,执行被动合并,用于经由DRAM 20的工作区在MS压紧缓冲器中写入WC 21、FS单元12Q、和IS单元13Q(他们包括在作为写入对象的轨道中)中的有效簇。在该实施例中,在压紧对象中不包括登记于MSIB 11a和TFS 11b中的逻辑块。
图22是数据管理单元120的更详细功能配置的图。如上文所解释的,数据管理单元120包括:DRAM层管理单元120a,其执行在DRAM 20中存储的数据的管理;逻辑NAND层管理单元120b,其执行在NAND存储区10中存储的数据的管理;以及物理NAND层管理单元120c,其管理作为物理存储装置的NAND存储器10。
DRAM层管理单元120a包括RC簇管理表23、WC簇管理表25、和WC轨道管理表24,并基于这些管理表执行DRAM层的管理。除了轨道管理表30、MS块管理表35、FS/IS管理表40、FS/IS逻辑块管理表42、和FS/IS内簇管理表44之外,逻辑NAND层管理单元120b还包括MS结构管理表60和FS/IS结构管理表65,并基于这些管理表执行NAND存储器10的逻辑NAND层的管理。除了逻辑至物理转译表50之外,物理NAND层管理单元120c还包括:坏块管理表(BB管理表)200、保留块管理表(RB块管理表)210、空闲块管理表(FB管理表)220、和现用块管理表(AB管理表)230,并使用这些管理表执行NAND存储器10的物理NAND层的管理。
首先,解释物理NAND层。如上文所解释,在32-位双速模式中,并行地致动四个通道(ch0、ch1、ch2,及ch3),且通过使用NAND存储器芯片的双速模式来执行擦除、写入及读出。如图23中所示,将四个并行的操作元件10a至10d中的NAND存储器芯片中的每一个划分为,例如,平面0及平面1的两个分区。划分的数目不限于二。平面0及平面1包括彼此独立的周边电路(例如,行解码器、列解码器、页缓冲器,及数据高速缓冲存储器),并可基于从NAND控制器112输入的命令而同时执行擦除、写入和读出。在NAND存储器芯片的双速模式中,通过并行地控制平面0及平面1来实现高速写入。
物理块尺寸为512kB。因此,在32-位双速模式中,根据该四个通道的并行操作及对该两个平面的同时存取,而使物理块的擦除单位增加至512kB×4×2=4MB。因此,在32-位双速模式中,八个平面并行地操作。
图24为逻辑至物理转译表50的另一实例的图。在图24中所示的逻辑至物理转译表50中,指示对应于逻辑块ID 50a的逻辑块何时被擦除的时间的擦除时间50e的字段被添加至图17中所示的逻辑至物理表50。关于擦除时间50e,例如,通过测量擦除操作的次数而得到的值被施加于NAND存储器芯片中的逻辑块,或者仅需使用NAND控制器112的激励时间。擦除时间50e用于稍后所解释的FB管理表220中的空闲块FB管理。
BB管理表200为用于以物理块(512kB)单位管理坏块BB的表。如图25所示,BB管理表200以二维阵列格式形成,其具有例如针对每4(通道)×2(平面/通道)个通道内平面的关于(物理块的数目/平面)×(NAND存储器芯片的数目/一并行操作元件)的物理块的信息。在BB管理表200的每一条目中,储存每一物理块的物理块ID 200a。
在此实施例的情况下,一个NAND存储器芯片具有2GB的尺寸。将物理块ID“0”至“2047”分配给第一芯片的平面0。将物理块ID“2048”至“4095”分配给第一芯片的平面1。当将使用期间所产生的坏块BB登记于BB管理表200中时,物理NAND层管理单元120c将坏块BB添加在紧随对应于该坏块BB的通道内平面ID(ID#0至ID#7)的最后有效条目之后,而不对坏块BB进行排序。
例如,将这样的物理块登记为坏块BB,该物理块为,当为空闲块FB分配使用时,对该物理块的擦除操作未正常结束,或者当将数据写入用作FS 12、IS 13或MS 11的现用块AB中时,对该物理块的写入操作未正常结束。
RB管理表210为用于管理以八个物理块单位(512kB)形成4MB逻辑块时剩余的物理块(保留块RB)的表。RB管理表210以与BB管理表200的格式相同的格式进行管理。通过针对对应于块的通道内平面ID中的每一个以FIFO来管理块,优选地按照从最早登记的保留块RB起的次序使用保留块RB。
FB管理表220为用于以4MB逻辑块单位管理当前未被分配使用(例如,用于FS 12、IS 13或MS 11)的空闲块FB的表,且为按照空闲块FB的产生次序排序的FIFO格式的列表。逻辑块ID储存于每一条目中。将根据压紧处理等等而返回至FB管理表220的空闲块FB添加至列表的尾端。空闲块FB的分配通过返回列表的顶块来执行。
如图26中所示,FB管理表以返回FIFO列表220a和分配列表220b的两级来配置。返回FIFO列表220a按照擦除时间50e的次序来对齐。在分配列表220b中,具有较小的擦除次数50c的逻辑块定位为更接近于列表的顶部。这样的配置用于防止以短时间间隔重复擦除操作。将返回至FB管理表220的不必要的逻辑块添加至返回FIFO列表220a的尾端,并将其储存于该尾端处历时固定周期。
根据逻辑块的擦除次数50c而将从返回FIFO列表220a推出的逻辑块插入分配列表220b中的某处。当从逻辑NAND层管理单元120b请求空闲块FB的分配时,逻辑NAND层管理单元120c从分配列表220b的顶部提取空闲块FB,并分配该空闲块FB。
通过FB管理表,有可能均等地分布待擦除的逻辑块(磨损均化处理),使得所有逻辑块的擦除次数与擦除间隔大体均等。已知:除擦除的次数之外,NAND型闪速存储器的寿命还取决于擦除处理的间隔,在间隔较长时,保持性能较佳且寿命较长。这还表明出:当擦除间隔短时,保持性能不良且寿命受到损害。还已知:即使以短间隔执行写入,除非执行适当的长期擦除,否则保持性能得以恢复。
AB管理表230是这样的逻辑块(现用块AB)的列表,其中向所述逻辑块分配使用(例如,用于FS 12、IS 13或MS 11),所述逻辑块分配自空闲块FB。如在FB管理表220中一样,在AB管理表230中,在每一条目中储存逻辑块ID。具有较早登记次序的逻辑块被定位为更接近于顶部。AB管理表用于,例如,刷新处理。
刷新处理是这样的技术,其用于防止由于写入数据的老化恶化及读取干扰(其为读取处理中所涉及的数据破裂)的影响而发生超过SSD 110的错误校正能力的错误。具体而言,例如,在超过错误校正能力的错误发生之前,执行用于读出所储存数据并执行错误校正的处理,接着执行将数据重写于NAND型闪速存储器中的处理。例如,可将具有大的读出次数50d的块、AB管理表230的顶块等等设定为刷新处理的监视目标。
物理NAND层管理单元120c执行下文所解释的逻辑块/物理块管理。首先,参看图27来解释逻辑至物理转译表50中的逻辑块ID与八个物理块ID之间的对应关系。
如上文所解释,与作为逻辑至物理转译表50的索引的逻辑块ID 50a相关联的八个物理块ID登记于逻辑至物理转译表50的物理块ID 50b的字段中。图27为NAND存储器10的逻辑块ID与物理块ID之间的对应关系的图。一个区段表示一个物理块。将物理块ID分配给每一个物理块。逻辑块L0(现用块AB)包括,例如,第一列第三行、第二列第二行、第三列第二行、第四列第二行、第五列第二行、第六列第二行、第七列第二行及第八列第三行中的八个物理块。由虚线BL1环绕的逻辑块L1(现用块AB)包括,例如,第一列第四行、第二列第三行、第三列第三行、第四列第三行、第五列第三行、第六列第三行、第七列第三行及第八列第四行中的八个物理块。
此后,例如,假定:当为逻辑块L1分配使用(在此情况下,逻辑块L1为空闲块FB)且执行擦除操作时,或当将数据写入用作FS 12、IS 13或MS 11的逻辑块L1中(在此情况下,逻辑块L1为现用块AB,如图27所示)且执行写入操作时,对于逻辑块L1的第四列第三行中的物理块的擦除或写入操作未正常结束,因此,将该物理块作为无法用作储存区的坏块BB登记于BB管理表200中。
物理NAND层管理单元120c检测该登记,并从RB管理表210中选择与登记为坏块BB的物理块相同的通道及平面中的保留块RB作为坏块BB的替换候选者。
在图27的情况下,选择邻近于坏块BB的第四列第四行中的物理块(保留块RB)作为第四列第三行中的坏块BB的替换候选者。
物理NAND层管理单元120c遍及逻辑至物理转译表50的对应于逻辑块L1的逻辑块ID 50a的条目进行搜寻,且将该条目中的物理块ID 50b的字段中所包括的八个物理块ID当中对应于第四列第三行的坏块BB的物理块ID改变为对应于从RB管理表210中选择的第四列第四行中的保留块RB的物理地址ID。
因此,此后,逻辑块L1包括由交替长虚线与短虚线环绕的第一列第四行、第二列第三行、第三列第三行、第四列第四行、第五列第三行、第六列第三行、第七列第三行及第八列第四行中的八个新物理块的组合。假定:逻辑块L1的逻辑块ID为“L1”。
此后,物理NAND层管理单元120c从FB管理表220获取新空闲块FB(图27中未示出)。假定:获取的空闲块FB的逻辑块ID为“L2”。物理NAND层管理单元120c使用逻辑至物理转译表50来执行逻辑块ID的替换。
具体而言,物理NAND层管理单元120c使与具有逻辑块ID“L2”的新空闲块FB相关联的八个物理块与逻辑块ID“L1”相关联。同时,物理NAND层管理单元120c使通过交替长虚线与短虚线环绕的第一列第四行、第二列第三行、第三列第三行、第四列第四行、第五列第三行、第六列第三行、第七列第三行及第八列第四行中的八个物理块与逻辑块ID“L2”相关联。还根据物理块ID的更新而替换擦除次数50c、读出次数50d及擦除时间50e。此后,物理NAND层管理单元120c将逻辑块ID“L2”登记于FB管理表220中。逻辑NAND层管理单元120b重新在具有相同逻辑块ID“L1”的新获取的逻辑块中执行擦除或写入操作。
另一方面,当不存在可替换坏块BB的保留块RB时,物理NAND层管理单元120c执行下文所解释的处理。例如,假定:将第四列第三行中的物理块作为坏块BB登记于BB管理表200中,并且在与坏块BB相同的通道及相同的平面中不存在保留块RB。在此状况下,首先,物理NAND层管理单元120c将逻辑块L1中除第四列第三行之外的第一列第四行、第二列第三行、第三列第三行、第五列第三行、第六列第三行、第七列第三行及第八列第四行中的七个物理块登记于RB管理表210中。此后,以与上文所解释的方式相同的方式,物理NAND层管理单元120c从FB管理表220获取新空闲块FB,并如上文所解释执行逻辑块ID的替换,接着将从FB管理表220所获取的逻辑块ID设定为不可用。
以此方式,即使当产生坏块BB时,物理NAND层管理单元120c执行逻辑块ID的替换。因此,逻辑NAND层管理单元120b中使用的逻辑块ID在产生坏块BB之前及之后不发生改变。因此,即使多个物理块中的至少一个被登记为坏块,LBA逻辑地址与逻辑块之间的对应关系也不改变。有可能防止逻辑NAND层管理单元120b中管理表重写的开销。
在用于独立驱动并行操作元件10a至10d中的一个平面的8-位正常模式中,该模式的擦除单位为一个物理块(512kB)。当写入尺寸很小时,例如,当额外写入用于记录管理表的更新内容的日志时,使用8-位正常模式。
当在此种8-位正常模式中使用的空闲块FB,即,512kB的单位的物理块为必要的时,物理NAND层管理单元120c确保32-位双速模式中有4MB逻辑块,并选择所获取的逻辑块中的一个物理块。图27指示出分配了通过虚线BL3环绕的逻辑块L3,逻辑块L3包括通过粗线环绕的一个物理块(该物理块不久用于逻辑NAND层管理单元120b中)。
在8-位正常模式中,首先,物理NAND层管理单元120c使用选定的一个物理块。当这一个物理块由于额外记录日志而填满数据时,物理NAND层管理单元120c用于逻辑块L3中的八个物理块当中的另一物理块。此后,重复该处理。
解释32-位双速模式中的擦除处理。每当以逻辑块单位擦除NAND存储器10中的数据时,物理NAND层管理单元120c将对应于图24中所示的逻辑至物理转译表50的擦除的逻辑块的逻辑块ID中的擦除次数50c的字段累加一,且将擦除时间50e更新为最新的数据。
逻辑NAND层
参照图28和29解释在逻辑NAND层中用于管理的MS结构管理表60和FS/IS结构管理表65。图28所示的MS结构管理表60包括管理MS单元11Q的结构的区域以及存储状态信息的区域。MS结构管理表60包括:MS缓冲器管理表61,用于管理作为MSFB 11aa分配的逻辑块ID、MS额外记录IB 11ab、和TFS 11b、根据有效轨道的数目的逻辑块ID列表62,其用于存储具有少量有效轨道的逻辑块ID以增加在MS压紧期间分类处理的速度;以及区域63和64,用于管理作为状态信息的逻辑块的最大数目MBL以及有效逻辑块的数目VBL。
在MS结构管理表60中,为MSFB 11aa、MS额外记录IB 11ab和TFS 11b准备具有所需条目数的固定字段61a至61c。用于TFS 11b的字段61c具有链接的列表结构。执行对具有FIFO结构的TFS 11b的类似FIFO管理。
在根据有效轨道的数目的逻辑块ID列表62中,对于具有一个有效轨道的逻辑块准备所需条目数,对于具有两个有效轨道的逻辑块准备所需条目数,...,对于具有2i-1个有效轨道的逻辑块准备所需条目数。在每个条目中记录逻辑块ID。当搜寻MS逻辑块管理表35的有效轨道的数目35c的字段时,始终将根据有效轨道的数目的逻辑块ID列表62更新为最新状态。在根据有效轨道的数目的逻辑块ID列表62中不输入登记于MS缓冲器管理表61中的作为MSIB 11a和TFS 11b的逻辑块。
在用于作为状态信息的逻辑块的最大数目MBL的固定字段63中,记录逻辑块的最大数目MBL,其作为允许MS单元11Q获得的逻辑块数目。在用于作为状态信息的有效逻辑块的数目VBL的固定字段64中,记录有效逻辑块的数目VBL,其作为被作为MS单元11Q而管理的当前逻辑块数目。
图29中所示的FS/IS结构管理表65具有管理FS单元12Q和IS单元13Q的结构的区域。FS/IS结构管理表65包括:FS输入缓冲器管理表66,用于管理被分配为FSIB 12a和FS额外记录IB 12ab的逻辑块ID;FS FIFO管理表67,用于管理FS 12的FIFO结构;IS输入缓冲器管理表68,用于管理被分配为ISIB 13a的逻辑块ID;以及IS FIFO管理表69,用于管理IS 13的FIFO结构。
在FS输入缓冲器管理表66中,为FSFB 12aa和FS额外记录IB 12ab准备具有所需条目数的固定字段66a和66b。在固定字段66a和66b中登记作为FS/IS逻辑块管理表42的索引的FS/IS块ID 42a。在IS输入缓冲器管理表68中,为ISIB 13a准备具有所需条目数的固定字段。在该固定字段中登记FS/IS块ID 42a。在FS FIFO管理表67中,在固定字段中准备用于形成FS 12的FIFO结构的逻辑块数目的条目。在FS FIFO管理表67的固定字段中登记FS/IS块ID 42a。在IS FIFO管理表69中,在固定字段中准备用于形成IS 13的FIFO结构的逻辑块数目的条目。在固定字段中登记FS/IS块ID 42a。
解释以下更新处理,即在参照图19解释的执行被分成2个阶段(WCF处理和CIB处理)的写入处理时从WC 21到MSIB 11a的复制处理所涉及的管理表的更新处理。这里,执行以轨道为单位从WC 21到MS额外记录IB 11ab的复制。参照在其中登记与决定要排挤的轨道对应的逻辑轨道地址24a的轨道条目中的路-线(way-line)位映像24c,DRAM层管理单元120a从顶部依次检查WC轨道管理表24,将在路-线位映像24c的m×n个条目中将与具有有效位“1”的条目对应的WC簇管理表25中的条目的状态标志25a从有效改变为等待以排挤到NAND,以及向逻辑NAND层管理单元120b通知排挤请求。
另一方面,参照图28所示的MS结构管理表60的MS缓冲器管理表61以及图14所示的MS逻辑块管理表35,逻辑NAND层管理单元120b检查MS额外记录IB 11ab的状态。当根据MS缓冲器管理表61的MS额外记录IB的字段61b判断MS额外记录IB 11ab已经存在时,逻辑NAND层管理单元120b从MS逻辑块管理表35的有效轨道的数目35c的字段获得在MS额外记录IB的字段61b中登记的逻辑块ID的可写轨道数目的相关信息,并向DRAM层管理单元120a通知所获得的可写轨道数目。
当根据MS缓冲器管理表61的MS额外记录IB的字段61b判断MS额外记录IB 11ab不存在时,逻辑NAND层管理单元120b向物理NAND层管理单元120c发出用于获取空闲块FB的请求,并获取空闲块FB以及被分配为空闲块FB的逻辑块ID。逻辑NAND层管理单元120b向DRAM层管理单元120a通知所获取的空闲块FB的可写轨道的数目2i
DRAM层管理单元120a按照从逻辑NAND层管理单元120b通知的可写轨道数目从WC轨道管理表24选择轨道,并判断是否执行轨道内扇区填充。为了检查在要排挤的逻辑轨道地址范围内包括的簇和/或轨道是否存在于NAND存储器10中以及判断是否执行轨道内扇区填充,DRAM层管理单元120a向逻辑NAND层管理单元120b通知例如要排挤的逻辑轨道地址的所需信息。
当逻辑NAND层管理单元120b接收该通知时,逻辑NAND层管理单元120b通过作为轨道管理表30的索引的逻辑轨道地址30a进行搜寻,并且在必要时,进一步遍及FS/IS管理表40搜寻,并判断与要排挤的逻辑轨道地址一致的逻辑轨道地址是否存在于NAND存储器10中。逻辑NAND层管理单元120b向物理NAND层管理单元120c通知搜寻的结果。因此,物理NAND层管理单元120c执行从WC 21到MS额外记录IB 11ab的排挤,这涉及轨道内扇区填充,或不涉及轨道内扇区填充。
当物理NAND层管理单元120c通知了从WC 21到MS额外记录IB11ab的排挤完成时,如果从物理NAND层管理单元120c获得了新空闲块FB作为MS额外记录IB 11ab,则逻辑NAND层管理单元120b设定与从物理NAND层管理单元120c给出的空闲块FB的逻辑块ID对应的MS逻辑块管理表35的条目的有效标志35e为有效,将该逻辑块ID登记于MS缓冲器管理表61的MS额外记录IB的字段61b中,并增加MS结构管理表60的有效逻辑块的数目VBL。
逻辑NAND层管理单元120b更新轨道管理表30。换句话说,逻辑NAND层管理单元120b将例如簇位映像30b、逻辑块ID 30c、和逻辑块内轨道位置30d的所需信息登记于与从WC 21排挤到MS额外记录IB 11ab的轨道对应的逻辑轨道地址30a的条目中。
当具有相同逻辑轨道地址的旧轨道没有存在于NAND存储器中并且没有执行轨道内扇区填充时,逻辑NAND层管理单元120b将与从WC 21排挤的新轨道相关的所需信息登记于与轨道管理表30的逻辑轨道地址对应的条目中。逻辑NAND层管理单元120b将从WC 21排挤的轨道的相关的信息登记于与MS逻辑块管理表35的已写入逻辑块ID对应的条目中。作为在MS逻辑块管理表35中的登记,例如存在逻辑轨道地址(轨道管理指针35b)的更新,其作为与在分配给MS 11的逻辑块中存储的轨道对应的轨道管理表30的索引,存在有效轨道的数目35c,以及可写入的顶轨道35d的更新。
当具有相同逻辑轨道地址的旧轨道存在于NAND存储器10中(取代旧轨道)并且执行轨道内扇区填充时,逻辑NAND层管理单元120b在与轨道管理表30中的合并源轨道对应的逻辑轨道地址30a的条目中更新例如逻辑块ID 30c和逻辑块内轨道位置30d的所需信息。具体地,逻辑NAND层管理单元120b将逻辑块ID 30c从与合并源轨道关联的MS 11中的旧逻辑块ID改变为与MS额外记录IB 11ab对应的新逻辑块ID。根据额外记录状态改变逻辑块内轨道位置30d。
此外,在MS逻辑块管理表35中与合并源轨道关联的旧逻辑块ID相应的条目中,逻辑NAND层管理单元120b删除轨道管理指针35b的字段的相关部分,减少有效轨道的数目35c,并更新MS结构管理表60的根据有效轨道的数目的逻辑块ID列表62。当与合并源轨道关联的旧逻辑块ID相应的条目中的有效轨道的数目35c被逐渐减少到0时,逻辑NAND层管理单元120b减少MS结构管理表60的有效逻辑块的数目VBL,并将作为空闲块FB的逻辑块返回至物理NAND层管理单元120c。逻辑NAND层管理单元120b设置与释放的逻辑块对应的条目的有效标志35e为无效。此外,以如上文所解释的相同方式,逻辑NAND层管理单元120b将与从WC 21排挤的新轨道相关的信息登记于MS逻辑块管理表35中。
当物理NAND层管理单元120c通知从WC 21到MS额外记录IB 11ab的排挤完成时,逻辑NAND层管理单元120b向DRAM层管理单元120b通知排挤的完成(WCF处理)。DRAM层管理单元120a接收该通知并设置与属于WC簇管理表25中的排挤轨道的所有簇对应的条目中的状态标志25a为无效(可用)。随后,可以在条目中写入来自主机装置1的数据。对于与WC轨道管理表24中的排挤轨道对应的列表,例如,改变或删除前一列表的下一指针24d,并且列表被无效。
解释CIB处理。当WCF处理完成时,执行CIB处理,其包括用于将FSIB 12a中通过WCF处理而写入的数据移动至FS 12的处理、以及用于将MSIB 11a中通过WCF处理而写入的数据移动至MS 11或TFS 11b的处理。以下参照图30的流程图解释CIB处理的详细过程。
在MS单元11Q中的CIB处理
首先,详细解释在图19中的步骤S330解释的在MS单元11Q中的第一次的CIB处理。逻辑NAND层管理单元120b从MS逻辑块管理表35的有效轨道的数目35c的字段获取在MS结构管理表60的MS缓冲器管理表61的MSFB的字段61a与MS额外记录IB的字段61b中登记的与逻辑块ID相关的有效轨道数目的信息。逻辑NAND层管理单元120b检查以轨道写入所有逻辑页的一个或多个满块是否存在于MSIB 11a的MSFB 11aa或MS额外记录IB 11ab中(步骤S400)。当一个或多个满块存在于MSIB11a中时,逻辑NAND层管理单元120b执行下面所解释的处理。当在步骤S400的判断为否时,处理转移至步骤S440。
当在步骤S400的判断为是时,参照MS逻辑块管理表35的有效轨道的数目35c,逻辑NAND层管理单元120b检查有效轨道的数目35c为0的无效逻辑块是否存在于MS中。当无效逻辑块存在于MS中时,逻辑NAND层管理单元120b将无效逻辑块返回至物理NAND层管理单元120c(步骤405)。在与返回的无效逻辑块对应的MS逻辑块管理表35的条目中,将有效标志35e设置为无效,并减少MS结构管理表60的有效逻辑块的数目VBL。逻辑NAND层管理单元120b直接将MSFB 11aa中的满逻辑块移动至MS 11,以及将MS额外记录IB 11ab中的满逻辑块移动至TFS11b(步骤S407)。这种移动处理是这样的处理,即仅删除在MS结构管理表60的MS缓冲器管理表61的MSFB的字段61a与MS额外记录IB的字段61b中登记的相关逻辑块ID。
逻辑NAND层管理单元120b将作为MS结构管理表60的状态信息的有效逻辑块数目VBL的与逻辑块的最大数目MBL相比较(步骤S410)。作为比较结果,在有效逻辑块的数目VBL超过逻辑块的最大数目MBL时,逻辑NAND层管理单元120b判断空闲块FB不足,执行以下逐块解释的MS压紧处理,增加应该返回至完全按无效轨道配置的物理NAND层管理单元120c的无效逻辑块,并将有效逻辑块的数目VBL减小到小于块最大数目MBL(步骤S420)。当在步骤S410判断空闲块FB充足时,处理转移到步骤S440。
作为MS压紧处理,如上文所解释的,存在两种类型,即2i个轨道MS压紧和小于2i个轨道MS压紧。在2i个轨道MS压紧中,使用MS压紧缓冲器11c,并且将压紧之后用作MS压紧缓冲器11c的逻辑块移动至TFS 11b的顶部。在小于2i个轨道MS压紧中,将有效轨道复制到MS额外记录IB 11ab。
首先,为了从具有少量有效轨道的逻辑块收集2i个轨道,逻辑NAND层管理单元120b参照MS结构管理表60的根据有效轨道的数目的逻辑块ID62来执行2i个轨道MS压紧,并将收集的2i个轨道复制到从物理NAND层管理单元120c获取的MS压紧缓冲器11c。
具体地,逻辑NAND层管理单元120b向物理NAND层管理单元120c发出空闲块FB的获取请求,并获取空闲块FB以及被分配为空闲块FB的逻辑块ID。逻辑NAND层管理单元120b请求物理NAND层管理单元120c将被选择为压紧对象的多个轨道复制到空闲块FB。当作为压紧对象轨道具有在WC 21、FS单元12Q、和IS单元13Q中的有效簇时,逻辑NAND层管理单元120b执行被动合并,以将有效簇收集和合并到MS压缩缓冲器11c中。
当物理NAND层管理单元120c通知压紧完成时,逻辑NAND层管理单元120b将在具有与经过轨道管理表30a的压紧的轨道对应的逻辑轨道地址30a的条目中的逻辑块ID 30c更新为从物理NAND层管理单元120c获取的空闲块FB的逻辑块ID,并更新逻辑块内轨道位置30d。
逻辑NAND层管理单元120b将从物理NAND层管理单元120c(用作MS压紧缓冲器11c)获取的空闲块FB的逻辑块ID登记为MS逻辑块管理表35中的新条目,并将所需信息登记于条目中的各个字段当中。作为该登记,存在轨道管理指针35b的更新,有效轨道数目的更新,可写入的顶轨道35d的更新等。
逻辑NAND层管理单元120b将用作MS压紧缓冲器11c的逻辑块ID登记在用于MS结构管理缓冲器60的MS缓冲器管理表61的用于TFS的字段61c的FIFO结构(链接列表)的顶部,以移动作为对TFS 11b的顶部(最旧位置)的MS压紧的结果的由包括有效2i个轨道的一个逻辑块配置的MS压紧缓冲器11c。当TFS 11b已满时,将顶部的最旧逻辑块移动至MS 11。
随后,数据管理单元120使得MS 11中的压紧源的旧轨道无效。具体地,逻辑NAND层管理单元120b删除在与MS逻辑块管理表35中的压紧源处的逻辑块对应的条目中的轨道管理指针35b的字段的相关部分,减少有效轨道的数目35c,并更新MS结构管理表60的根据有效轨道的数目的逻辑块ID列表62。当有效轨道的数目35c减少到0时,逻辑NAND层管理单元120b减少MS结构管理表60的有效逻辑块的数目VBL,并将该无效逻辑块返回至物理NAND层管理单元120c。将与返回的逻辑块对应的MS逻辑块管理表35的条目的有效标志35e设置为无效。
当这个压紧处理以及返回无效逻辑块FB的处理完成时,逻辑NAND层管理单元120b将有效逻辑块的数目VBL和逻辑块的最大数目MBL相比较。当有效逻辑块的数目VBL超过逻辑块的最大数目MBL时,逻辑NAND层管理单元120b再次执行收集2i个有效轨道的2i个轨道MS压紧。当在有效逻辑块的数目VBL超过逻辑块的最大数目MBL的状态下为了收集2i个有效轨道的2i个轨道MS压紧是不可能的时,逻辑NAND层管理单元120b执行小于2i个轨道MS压紧。
在小于2i个轨道MS压紧中,逻辑NAND层管理单元120b将作为压紧对象的小于2i个轨道数目的轨道复制到MS额外记录IB 11ab,以生成由无效2i个轨道形成的无效逻辑块。逻辑NAND层管理单元120b使得生成的无效逻辑块返回至物理NAND层管理单元120c,以减少有效逻辑块的数目VBL。省略对于小于2i个轨道MS压紧的管理表更新的解释。
FS 12中的CIB处理
详细解释在图19中的步骤S340处解释的在FS 12中的CIB处理。逻辑NAND层管理单元120b从FS/IS逻辑块管理表32的有效簇的数目42d的字段获取与登记于FS/IS结构管理表65的FS输入缓冲器管理表66的FSFB的字段66a与FS额外记录IB的字段66b中的逻辑块ID相关的有效簇的数目的信息。逻辑NAND层管理单元120b检查以簇写入所有逻辑页的一个或多个满块是否存在于FSIB 12a的FSFB 12aa或FS额外记录IB(步骤S440)。当一个或多个满块存在于FSIB 12a中时,逻辑NAND层管理单元120b执行以下解释的处理。当在步骤S440的判断为否时,处理在这里完成。
当在步骤S440的判断为是时,参照FS/IS结构管理表65和FS/IS逻辑块管理表42的有效簇的数目42d,逻辑NAND层管理单元120b检查有效簇的数目42d为0的无效逻辑块是否存在于FS单元12Q中。当无效逻辑块存在于FS单元12Q中时,逻辑NAND层管理单元120b将无效逻辑块返回至物理NAND层管理单元120c(步骤S445)。
从MS逻辑块管理表35和FS/IS逻辑块管理表42删除所返回的逻辑块的条目。逻辑NAND层管理单元120b将FSFB 12aa中的满逻辑块移动至FS 12,以及将FS额外记录IB 12ab中的满逻辑块移动至FS 12(步骤S447)。具体地,移动处理是这样的处理,即仅用于删除在FS/IS结构管理表65的FS输入缓冲器管理表66的用于FSFB的字段66a与用于FS额外记录IB的字段66b中登记的相关逻辑块ID。
逻辑NAND层管理单元120b判断具有FIFO结构的FS 12的逻辑块数目是否超过FS 12所允许的逻辑块的预定最大数目BLfsmax(步骤S450)。具体地,逻辑NAND层管理单元120b判断根据FS FIFO管理表67计算的逻辑块数目是否超过预先设置的逻辑块的最大数目BLfsmax。
作为这个比较的结果,当计算的逻辑块数目超过逻辑块的最大数目BLfsmax时,根据该点的状态,逻辑NAND层管理单元120b每次对于例如2个逻辑块执行到MS 11的排挤处理(步骤S460)以及对于一个逻辑块执行到IS 13的排挤处理(步骤S500)。当在步骤S450处判断FS 12未满时,逻辑NAND层管理单元120b完成这里的处理,而不执行从FS 12到MSIB 11a的排挤处理以及从FS 12到ISIB 13a的排挤处理。
在从FS 12到MSIB 11a的排挤处理中,逻辑NAND层管理单元120b判断是否存在从FS 12直接复制到MSIB 11a而不需要移动通过IS单元13Q的逻辑块(步骤S455)。具体地,逻辑NAND层管理单元120b参照轨道管理表30的FS簇的数目31f的字段逐个依次检查在FS 12的FIFO顶部的最旧逻辑块中的簇,并搜寻这些簇所属的轨道在FS单元12Q中具有多少有效簇。当轨道中的有效簇的数目等于或大于预定阈值(例如2k-i-1)时,逻辑NAND层管理单元120b设置该逻辑轨道地址作为决定要排挤到MSIB 11a的轨道。
通过以下解释的路径(route)执行搜寻。
1.逻辑NAND层管理单元120b从FS/IS结构管理表65的FS FIFO管理表65获得在FIFO顶部的最早旧FS/IS块ID。
2.逻辑NAND层管理单元120b从与FS/IS块ID对应的FS/IS逻辑块管理表42的条目中的块内簇表42c的字段获得FS/IS内簇管理表44的索引。
3.逻辑NAND层管理单元120b从FS/IS内簇管理表44中获得的索引所指定的一个逻辑块中的每个条目获取到FS/IS管理表40的一个指针,并跳转到FS/IS管理表40的相关链接。
4.逻辑NAND层管理单元120b获得在跳转目的地的链接所属的相关逻辑轨道地址。
5.逻辑NAND层管理单元120b使用所获取的逻辑轨道地址检查在轨道管理表30的相关条目中的FS簇的数目30f的字段。
6.逻辑NAND层管理单元120b重复上述3至5。
例如,每次对于2个逻辑块执行从FS 12到MS 11的排挤(块复制)。换句话说,逻辑NAND层管理单元120b收集2个逻辑块的具有等于或大于预定阈值(例如2k-i-1)的轨道内有效簇的数目的轨道,以及将2个逻辑块的收集的轨道排挤至MSIB 11a的MSFB 11aa(步骤S460)。在排挤中,对于在排挤的轨道中的FS 12中不存在的簇,逻辑NAND层管理单元120b执行被动合并,以从WC 21、IS单元13Q和MS 11读出这些簇,并合并这些簇。
然而,当对于2个逻辑块不存在决定被排挤至MSIB 11a的轨道时,逻辑NAND层管理单元120b将1个逻辑块排挤至MSIB 11a的MSFB 11aa(块复制),并以轨道为单位在MS额外记录IB 11ab中额外地记录不够1个逻辑块的轨道(轨道复制)(步骤S460)。类似地,当对于1个逻辑块不存在决定被排挤至MSIB 11a的轨道时,逻辑NAND层管理单元120b以轨道为单位在MS额外记录IB 11ab中额外地记录不够1个逻辑块的轨道(轨道复制)(步骤S460)。随后,在FIFO结构的FS 12的顶逻辑块中没有留下有效簇时,逻辑NAND层管理单元120b向物理NAND层管理单元120c返回顶逻辑块,作为无效逻辑块。
在MS 11中的CIB处理(图19中的步骤S350)
当这样执行从FS 12到MSIB 11a的排挤时,再次执行在MS单元11Q中的CIB处理(步骤S480)。在步骤S480中的在MS单元11Q中的CIB处理与在MS单元11Q中的第一次CIB处理相同(步骤S400至S420)。因此,省略多余解释。在MS单元11Q中的CIB处理之后,逻辑NAND层管理单元120b以上述解释的相同方式检查是否满足从FS 12到MSIB11a的排挤的条件(步骤S455)。当满足排挤条件时,再次执行从FS 12到MSIB 11a的每2个逻辑块的排挤以及上述解释的在MS 11中的CIB处理。这个处理被重复,直到在步骤S455中获得判断否。
在FS 12中的CIB处理
当在步骤S455中判断为否时,逻辑NAND层管理单元120b判断是否满足从FS 12到ISIB 13a的排挤的条件(步骤S490)。具体地,在从FS 12到MSIB 11a的排挤中,当在具有FIFO结构的满状态的FS 12的检查的逻辑块中留下有效簇时,假设满足在步骤S490的从FS 12到IS 13的排挤的条件,逻辑NAND层管理单元120b执行从FS 12到ISIB 13a的排挤。
当在步骤S490满足条件时,逻辑NAND层管理单元120b将仅包括未包含在要排挤至MSIB 11a的轨道中的簇的顶逻辑块移动至ISIB 13a(块移动)(步骤S500)。在步骤S500,逻辑NAND层管理单元120b执行例如一个逻辑块的排挤。随后,根据状态,在执行步骤S520到S585的过程之后,逻辑NAND层管理单元120b可根据在步骤S590的判断再次执行在步骤S500的从FS 12到ISIB 13a的排挤。
在步骤S500再次执行的排挤的状态是这样的状态,即,例如在具有多个满逻辑块的缓冲器(FSFB 12a或FS额外记录IB 12ab)存在于FSIB 12a中时,如果具有FIFO结构的FS 12是满的,则根据满块从FSIB 12a到FS 12的移动执行多个逻辑块从FS 12到MSIB 11a或ISIB 13a的排挤。在这个条件下,可执行多个逻辑块从FS 12到ISIB 13a的排挤。
在IS中的CIB处理(图19中的步骤S360)
除了图30之外,参照图31中所示的流程解释在满足步骤S490的条件时在IS 13中执行的排挤处理和压紧处理的细节。首先,以上文解释的相同方式,逻辑NAND层管理单元120b检查在IS单元13Q中是否存在无效逻辑块,并且当IS单元13Q中存在无效逻辑块时,将无效逻辑块返回至物理NAND层管理单元120c(步骤S520)。在与该返回的逻辑块对应的MS逻辑块管理表35和FS/IS逻辑块管理表42的条目中,设置有效标志35e和42f为无效。
逻辑NAND层管理单元120b判断具有FIFO结构的IS 13的逻辑块数目是否超过IS 13所允许的逻辑块的预定最大数目Blismax(步骤S530)。具体地,逻辑NAND层管理单元120b判断根据IS FIFO管理表69计算的逻辑块数目是否超过预先设置的逻辑块的最大数目BLismax。
作为比较的结果,当所计算的逻辑块的数目超过逻辑块的最大数目BLismax时,逻辑NAND层管理单元120b将每次例如2个逻辑块的轨道从IS 13排挤至MSIB 11a的MSFB 11a(步骤S540)。当步骤S530的判断为IS 13未满时,逻辑NAND层管理单元120b将ISIB 13a中的满逻辑块移动至IS 13b,而不需要执行到MSIB 11a的排挤处理(步骤S585)。
在步骤S540的排挤中,逻辑NAND层管理单元120b使用图12中所示的轨道管理表30等执行如图31所示用于选择要排挤的轨道的处理。在图31,逻辑NAND层管理单元120b开始选择处理(循环搜寻处理;以下简单地称为搜寻处理)(步骤S700)。逻辑NAND层管理单元120b开始从在步骤S740存储的作为轨道管理表30的索引的逻辑轨道地址30a的下一逻辑轨道地址搜寻,所述地址作为在最后搜寻中的最后检索的轨道(步骤S710)。
当第一次执行搜寻(第一循环)时,逻辑NAND层管理单元120b开始从轨道管理表30的第一条目搜寻(步骤S740)。当在步骤S740存储的搜寻轨道是轨道管理30的最后条目(图12中的轨道n),在步骤S710的下一轨道搜寻中,逻辑NAND层管理单元120b返回至顶条目(图12中的轨道0)。
在这样的搜寻中,参照轨道管理表30的条目中IS簇的数目30g的字段(在相关逻辑轨道地址中的有效簇的数目),当在IS 13的条目中存储有效簇时,逻辑NAND层管理单元120b将该条目的逻辑轨道地址登记于未示出的新搜寻的轨道列表中(步骤S720)。逻辑NAND层管理单元120b将在新搜寻的轨道列表中登记的轨道的数目与预定阈值L相比较。当登记的轨道数目小于阈值L时,逻辑NAND层管理单元120b将过程转移到步骤S710,并以上述解释的相同方式检查轨道管理表30的下一条目。
通过重复这个处理,逻辑NAND层管理单元120b将阈值L的逻辑轨道地址登记于新搜寻的轨道列表中(在步骤S730为“是”)。逻辑NAND层管理单元120b将与新搜寻的轨道列表中登记的逻辑轨道地址对应的轨道管理表30的条目(索引)存储为搜寻的最后轨道,并在当前循环中完成搜寻(步骤S740)。
逻辑NAND层管理单元120b判断是否存在列出了上次未选择的(未示出)的逻辑轨道地址的未选择的轨道列表(步骤S750)。在第一循环的情况下,由于不存在未选择的轨道列表,所以逻辑NAND层管理单元120b基于2个列表,即新搜寻轨道列表和新增加块内轨道列表(未示出)来选择2i+1个逻辑轨道(步骤S760)。新增加的块内轨道列表是与在图30的步骤S500从FS 12排挤至IS单元13Q的逻辑块(输入到FS/IS结构管理表65的IS输入缓冲器管理表68中)中包括的轨道相关的列表。
在第一循环中,逻辑NAND层管理单元120b使用这两个列表选择2i+1个轨道作为排挤候选项。在选择中,如上文所解释的,使用这样的选择参考(分值)S,其是通过使用轨道中的有效簇的数目和有效簇系数来获得的。
分值S=轨道中的有效簇的数目×有效簇系数。
有效簇系数是根据轨道是否存在于其中无效轨道存在于MS单元11Q中的逻辑块中而加权的值。轨道存在时的数目大于轨道不存在时的数目。
可通过查找轨道管理表30的IS簇的数目30g的字段来获得有效簇的数目。可通过按轨道管理指针35b的字段查找与轨道管理表30链接的MS逻辑块管理表35的有效轨道的数目35c的字段来获取有效簇系数。
逻辑NAND层管理单元120b从新增加块内轨道列表中包括的多个轨道选择具有更大分值S的M个轨道(预定设置值)。逻辑NAND层管理单元120b将通过先前搜寻登记于新搜寻轨道列表中的L个轨道增加至所选的M个轨道,以及从L+M个轨道中选择具有更大分值S的2i+1个轨道作为要排挤至MS 11的轨道。逻辑NAND层管理单元120b将L+M个轨道中除了所选的2i+1个轨道之外的轨道登记于未选轨道列表中。
在第二或随后循环中,逻辑NAND层管理单元120b基于3个列表,即未选轨道列表、新搜寻轨道列表和新增加块内轨道列表来选择2i+1个轨道(步骤S770)。根据随后在图30中的步骤S570的判断,确定是否应该执行第二或随后时间的排挤。在使用3个列表的选择处理中,逻辑NAND层管理单元120b从未选轨道列表中包括的多个轨道选择具有更大分值S的N(预定设置值)个轨道,从新增加块内轨道列表中包括的多个轨道选择具有更大分值S的M(预定设置值),将当前第二或随后循环中获得的新搜寻轨道列表中登记的L个轨道增加至N+M个轨道,并从L+M+N个中选择具有更大分值S的2i+1个轨道作为要排挤至MS 11的轨道。逻辑NAND层管理单元120b将L+M+N个逻辑轨道中除了所选的2i+1个轨道之外的轨道登记于在下一循环中使用的未选轨道列表中。
再参照图30中的步骤S540,当如上所述选择2个逻辑块的轨道的排挤候选项时,逻辑NAND层管理单元120b将2个逻辑块的所选轨道(即2i+1个轨道)排挤至MSIB 11a的MSFB 11aa(步骤S540)。在排挤中,对于要排挤在轨道中未存在于IS单元13Q中的簇,执行被动合并,以从WC 21、FS单元12和MS 11读出簇并合并簇。在以上说明中,基于有效簇的数目以及表示在MS中存在多孔块(porous block)的系数根据分值S选择要排挤的轨道。然而,可仅根据有效簇的数目选择要排挤的轨道。
在MS中的CIB处理(图19中的步骤S370)
当这样执行从IS 13到MSIB 11a的排挤时,再次执行在MS 11中的CIB处理(步骤S560)。在步骤S560中的在MS 11中的CIB处理与第一次的在MS 11中的CIB处理(步骤S400至S420)相同。因此,省略多余解释。
在IS中的CIB处理
逻辑NAND层管理单元120b判断是否应该再次执行从IS 13到MSIB11a的排挤(步骤S570)。在步骤S540的排挤之后,逻辑NAND层管理单元120b使用MS逻辑块管理表35的字段和FS/IS逻辑块管理表42的有效簇的数目42d等以从有效簇的最小数目依次对IS 13中的逻辑块分类。当具有有效簇的最小数目的2个逻辑块的有效簇的总数等于或大于2k(对于一个逻辑块),其可以是预定设置值时,逻辑NAND层管理单元120b判断是否满足从IS 13到MSIB 11a的排挤的条件(步骤S570)。
当满足从IS 13到MSIB 11a的排挤的条件时,逻辑NAND层管理单元120b将过程转移至S540,并执行图31中步骤S700到S750和S770以再次执行上述2个逻辑块的排挤处理。只要在步骤S570的判断为是,逻辑NAND层管理单元120b重复执行从IS 13到MSIB 11a的2个逻辑块的排挤处理以及在MS 11中的CIB处理。当在步骤S570的判断为否时,逻辑NAND层管理单元120b执行在IS 13中的压紧处理(步骤S580)。
在IS压紧处理中,逻辑NAND层管理单元120b使用MS逻辑块管理表35的字段和FS/IS逻辑块管理表42的有效簇的数目42d等以从在IS单元13Q中的具有最小数目的有效簇的逻辑块依次收集一个逻辑块的簇,即2k个簇,并将2k个簇复制到IS压紧缓冲器13c。当完成该复制处理时,逻辑NAND层管理单元120b将在压紧源(复制源)处的逻辑块中的没有有效簇的逻辑块返回至物理NAND层管理单元120c,作为无效逻辑块。逻辑NAND层管理单元120b将通过压紧处理而填充有有效簇的逻辑块所配置的IS压紧缓冲器13c移动至IS 13。
在该压紧之后,将ISIB 13a中的满逻辑块移动至IS 13(步骤S585)。具体地,这种移动处理是这样的处理,即仅用于删除在FS/IS结构管理表65的IS输入缓冲器管理表68的ISIB的字段中登记的相关逻辑块ID。
随后,逻辑NAND层管理单元120b判断是否满足从FS 12到ISIB 13a的排挤的条件(步骤S590)。当满足从FS 12到ISIB 13a的排挤的条件时,逻辑NAND层管理单元120b将处理转移至步骤S500,并再次重复该处理。在完成IS压紧处理之后,当判断没有满足从FS 12到ISIB 13a的排挤的条件时,逻辑NAND层管理单元120b完成当前写入处理。以上是写入处理的细节。
如上所述,在这个实施例中,逻辑NAND层管理单元120b基于正向查找轨道管理表30和FS/IS管理表40和反向查找MS逻辑块管理表35、FS/IS逻辑块管理表42、和FS/IS内簇管理表44,对于作为NAND存储器10中的组件的MS单元11Q、FS单元12Q、和IS单元13Q执行读出处理和写入处理(WCF+CIB)、以轨道为单位对MS单元11Q的管理、以簇为单位对FS单元12Q和IS单元13Q的管理等。
图12中所示的正向查找轨道管理表30是这样的表,通过使用以轨道为单位排列LBS(其以扇区为单位排列)获得的逻辑轨道地址30作为索引来主要管理MS 11上的逻辑数据位置(逻辑块ID 30e和逻辑块内轨道位置30d)。当以簇为单位将数据存储在FS单元12Q和IS单元13Q中时,还存储指针作为FS/IS管理表40的条目的链接信息,在其中登记有基础信息和关于数据的详细信息(见A1)。通过设置为索引的逻辑轨道地址30a存储在写入例如FS簇的数目30f和IS簇的数目30g时用于排挤处理和压紧处理所必要的信息。
对于图13中所示的正向查找FS/IS管理表40使用通过以簇为单位排列LBA所获得的逻辑簇地址。以独立于每个逻辑轨道地址的链接列表格式形成FS/IS管理表40。每个逻辑轨道地址的链接列表中的每个是这样的表,即以属于逻辑轨道地址的逻辑簇地址为单位管理在FS单元12Q或IS单元13Q上的逻辑数据位置(逻辑块ID 40b+逻辑块内簇位置40c)的表。链接列表包括FS/IS块ID 40d的字段,其作为对F/IS逻辑块管理表42的索引的链接信息(见A5)。
图14中所示的反向查找MS逻辑块管理表35通过设定为索引的逻辑块ID存储与逻辑块中的轨道数目等价的轨道管理指针35b。反向查找MS逻辑块管理表35是到轨道管理表30的索引的指针(见A2),所述轨道管理表30指示在逻辑块ID 35a中存储哪些轨道地址。这使其可以管理属于每个逻辑块ID 35a的逻辑轨道地址。此外,MS逻辑块管理表35通过设定为索引的逻辑块ID35a存储在写入时用于排挤处理、压紧处理等的必要信息,即有效轨道的数目35c、可写入的顶轨道35d、有效标志35e等。
图15中所示的反向查找FS/IS逻辑块管理表42是这样的表,即通过设定为索引的FS/IS块ID 42a来管理表示在用作FS单元12Q或IS单元13Q的逻辑块中存储哪个逻辑簇地址的信息。因此,FS/IS逻辑块管理表42具有块内簇表42c的字段,作为到FS/IS内簇管理表44的指针(见A3)。FS/IS逻辑块管理表42通过设定为索引的FS/IS块ID 42a存储在写入时用于排挤处理、压紧处理等的必要信息,即有效簇的数目42d、可写入的顶页42e、有效标志42f等。
图16中所示的反向查找FS/IS内簇管理表44是这样的表,即与表上的条目位置关联的在用作FS单元12Q和IS单元13Q的一个逻辑块中管理每个簇位置(通过以簇为单位划分NAND存储器10获得的存储位置)的表。在每个条目44a的内容中,登记到包括由FS/IS管理表40管理的逻辑簇地址的列表(链接列表中的一个列表)的作为链接信息的指针(见A4),从而可以识别哪个逻辑簇地址与簇位置关联。
这样,在NAND存储器10的以轨道为单位的管理中,链接作为轨道管理表30的索引的逻辑轨道地址30a与MA逻辑块管理表35的轨道管理指针35b的字段,以形成作为正向查找表的轨道管理表30,以及形成作为反向查找表的MS逻辑块管理表35。因此,在写入处理中,可以增加在执行例如排挤处理、压紧处理和表更新的各种处理时的管理表的搜寻处理的速度。
例如,在MS压紧处理中,轨道的存储位置改变。必须根据存储位置的改变来改变MS逻辑块管理表35和轨道管理表30。换句话说,根据轨道的存储位置的改变,必须改变与MS逻辑块管理表35的存储位置对应的索引的每个字段(轨道管理指针35b、有效轨道的数目35c、可写入的顶轨道位置35d等),之后改变例如轨道管理表30中的逻辑块ID 30c和逻辑块内轨道位置30d的所需信息。
在这样的情形下,在这个实施例中,除了将逻辑块地址自身登记于在MS逻辑块管理表35的轨道管理指针35b的字段中之外,还登记到轨道管理表30的索引的指针。因此,可以跳转到轨道管理表30的索引的条目,而不需要搜寻和改变所述条目中的所需信息。
另一方面,在将相关逻辑轨道地址自身登记于轨道管理指针35b的字段中时,在执行了改变MS逻辑块管理表35的每个条目的工作之后,必须执行对相关逻辑轨道地址30a的搜寻处理,同时逐个跟踪轨道管理表30的索引。在搜寻之后,改变在相关逻辑轨道地址40a的条目中的所需信息。因此,与该实施例相比,更新管理表的工作的速度实质上降低。
在NAND存储器10的以簇为单位的管理中,将FS/IS逻辑块管理表42的块内簇表42c链接至FS/IS内簇管理表44,以及链接FS/IS内簇管理表44的条目44a和FS/IS管理表40,以形成作为正向查找表的FS/IS内簇管理表44,以及形成作为反向查找表的FS/IS逻辑块管理表42和FS/IS内簇管理表44。因此,在写入处理中,可以增加在执行例如排挤处理、压紧处理和表更新的各种处理时的管理表的搜寻处理的速度。
例如,在IS压紧处理中,簇的存储位置改变。必须根据存储位置的改变来改变FS/IS逻辑块管理表42、块内簇表42c和FS/IS内簇管理表44。换句话说,根据轨道的存储位置的改变,必须改变与FS/IS逻辑块管理表42的存储位置对应的索引的每个字段(逻辑块ID 42b、块内簇表42c、有效簇的数目42d、可写入的顶页42e等),改变在FS/IS内簇管理表44的每个条目中登记的数据,之后进一步改变例如在FS/IS管理表40的相关逻辑簇地址中的逻辑块ID 40b和逻辑块内簇位置40c的所需信息。
在这样的情形下,在这个实施例中,除了将逻辑簇地址登记于在FS/IS内簇管理表44的每个条目中之外,还登记到包括由FS/IS管理表40管理的相关逻辑簇地址的列表的指针44a(见A4)。因此,可以从FS/IS内簇管理表44的相关条目跳转到包括FS/IS管理表40的逻辑簇地址的列表,并改变列表中所需的信息。另一方面,在将相关逻辑簇地址自身登记于FS/IS内簇管理表44的每个条目中时,在执行了改变FS/IS内簇管理表44的每个条目的工作之后,必须执行对相关逻辑簇地址40a的搜寻处理,同时逐个跟踪FS/IS管理表40中的链接列表。在搜寻之后,改变在相关逻辑轨道地址40a的条目中的所需信息。因此,与该实施例相比,更新管理表的工作的速度实质上降低。
在这个实施例中,轨道管理表30具有簇表指针30e,其是到FS/IS管理表40的顶条目的作为链接信息的指针。FS/IS管理表40是对于每个逻辑轨道地址独立的链接列表。这使其可以在增加搜寻处理速度的同时减少管理表所必须的存储器量。例如,如果执行簇管理的FS/IS管理表40是正常表(包括当前通过簇管理所管理的簇地址和存储位置)而非链接列表,以搜寻在FS单元12Q或IS单元13Q上存在的簇,则在最坏的情况下,必须对整个表搜寻,并且搜寻需要极长的时间。为了增加搜寻速度,还可想到准备具有与LBA区域对应的所有簇地址的条目的表。然而,管理表的尺寸极大。另一方面,在这个实施例中,由逻辑轨道地址索引的轨道管理表30具有到FS/IS管理表40的顶条目的指针,其是独立于每个逻辑轨道地址的链接列表。因此,可以在增加搜寻处理速度的同时节省管理表所需的存储量。
这样,在该实施例中,分别以轨道和簇为单位提供正向查找和反向查找表,并且这些表被链接。因此,可以增加管理表的搜寻处理的速度。此外,在该实施例中,WC轨道管理表24和FS/IS管理表40包括链接列表。因此,减少表更新工作量,并且可减少管理表的容量。
换句话说,本发明提供一种存储器系统,其可增加对管理表的搜寻处理的速度,并且可降低对创建管理表所需的存储量。
本发明不限于上文所描述的实施例。因此,可在不偏离本发明的范围的情况下进行各种修改。
此外,上文所描述的实施例包括各种具有创造性步骤的组成部分。即,可通过分布或整合任意所揭示的组成部分而对本发明进行各种修改。
例如,可通过从这些实施例中所揭示的所有组成部分当中省略任意组成部分而进行本发明的各种修改,只要可解决本发明要解决的问题且可获得将要通过本发明获得的优点即可。
此外,在上述实施例中解释:簇尺寸乘以等于或大于二的正整数等于逻辑页尺寸。然而,本发明并不因此而受限制。
例如,簇尺寸可与逻辑页尺寸相同,或可为通过组合多个逻辑页而使逻辑页尺寸乘以等于或大于二的正整数所获得的尺寸。
此外,簇尺寸可与用于在诸如个人计算机的主机设备1上运行的OS(操作系统)的文件系统的管理单位相同。
此外,在上述实施例中解释:轨道尺寸乘以等于或大于二的正整数等于逻辑块尺寸。然而,本发明并不因此而受限制。
例如,轨道尺寸可与逻辑块尺寸相同,或可为通过组合多个逻辑块而使逻辑块尺寸乘以等于或大于二的正整数所获得的尺寸。
若轨道尺寸等于或大于逻辑块尺寸,则MS压紧处理不是必要的。因此,可省略TFS 11b。
[第二实施例]
图32示出个人计算机的实例的立体图。个人计算机1200包括主体1201及显示单元1202。显示单元1202包括显示器外壳1203及容纳于显示器外壳1203中的显示装置1204。
主体1201包括底盘1205、键盘1206,及作为指向装置的触摸板1207。底盘1205包括主电路板、ODD单元(光盘装置)、卡槽,及第一实施例中所描述的SSD 1100。
卡槽设置为邻近于底盘1205的周边壁。周边壁具有面向卡槽的开口1208。使用者可从底盘1205的外部经由开口1208将额外装置插入卡槽中及将额外装置从卡槽移除。
SSD 1100可以在安装于个人计算机1200中的状态下代替现有技术的HDD来使用,或可以在插入个人计算机1200的卡槽中的状态下用作额外装置。
图33示出个人计算机中的系统架构的实例的视图。个人计算机1200包含CPU 1301、北桥1302、主存储器1303、视频控制器1304、音频控制器1305、南桥1309、BIOS-ROM 1310、第一实施例中所描述的SSD 1100、ODD单元1311、嵌入式控制器/键盘控制器(EC/KBC)IC 1312,及网络控制器1313。
CPU 1301为用于控制个人计算机1200的操作的处理器,且执行从SSD 1100加载至主存储器1303的操作系统(OS)。当ODD单元1311执行对光盘的读取过程和写入过程之一时,CPU 1301执行这些过程。CPU 1301执行储存于BIOS-ROM 1310中的系统BIOS(基本输入输出系统)。系统BIOS为用于控制个人计算机1200的硬件的程序。
北桥1302为将CPU 1301的局部总线连接至南桥1309的桥接装置。北桥1302具有用于控制对主存储器1303的存取的存储器控制器。北桥1302具有通过AGP(加速图形端口)总线执行视频控制器1304与音频控制器1305之间的通信的功能。
主存储器1303临时储存程序或数据,且作用为CPU 1301的工作区。主存储器1303包含,例如,DRAM。视频控制器1304为用于控制显示单元的视频再现控制器,所述显示单元用于便携式计算机1200的显示监视器(LCD)1316。音频控制器1305为用于控制便携式计算机1200的扬声器的音频再现控制器。
南桥1309控制连接至LPC(低引脚计数)总线的装置,并控制连接至PCI(周边组件互连)总线的装置。南桥1309经由ATA接口控制作为储存软件及数据的存储器装置的SSD 1100。
个人计算机1200以扇区单位执行对SSD 1100的存取。例如,通过ATA接口输入写入命令、读取命令及高速缓冲存储器闪速存储器命令(cacheflash command)。南桥1309具有控制BIOS-ROM 1310及ODD单元1311的功能。
EC/KBC 1312为整合于用于控制电源的嵌入式控制器上的一个芯片微处理器,以及用于控制键盘(KB)1206和触摸板1207的键盘控制器。EC/KBC 1312具有这样的功能,即,基于使用者对电源按钮的操作而设定个人计算机1200的电源的接通/断开。网络控制器1313为,例如,执行至网络(例如,因特网)的通信的通信装置。
尽管上述实施例中的存储器系统包含SSD,但其也可以包含,例如,以SDTM卡为代表的存储卡。此外,存储器系统不仅可应用于个人计算机,而且可应用于诸如蜂窝式电话、PDA(个人数字助理)、数字静态相机、数字视频相机以及电视之类的各种电子装置。
本领域技术人员将容易想到额外优点及修改。因此,本发明在其更宽泛的方面不限于本文中所示并描述的具体细节和代表性实施例。因此,可在不偏离由所附权利要求及其等价物所限定的一般发明概念的精神或范畴的情况下进行各种修改。

Claims (20)

1.一种存储器系统,包括:
作为高速缓冲存储器的第一存储区,其包括在易失性半导体存储器中;
第二存储区和第三存储区,其包括在非易失性半导体存储器中,在所述第二存储区和所述第三存储区中,通过页单位执行数据读取和写入,且通过物理块单位执行数据擦除,所述物理块单位的尺寸为所述页单位的尺寸的两倍或更大的自然数倍;
控制器,其通过与一个或多个所述物理块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区,其中
所述控制器执行:
第一处理,将从所述第一存储区排挤的扇区单位的多个数据写入到所述第二存储区,作为第一管理单位的数据;
第二处理,将从所述第一存储区排挤的扇区单位的多个数据写入到所述第三存储区,作为第二管理单位的数据,所述第二管理单位的尺寸为所述第一管理单位的尺寸的两倍或更大的自然数倍;
第三处理,将所述第二存储区中存储的数据排挤至所述第三存储区,作为所述第二管理单位的数据;
第四处理,选择所述第二存储区中存储的第一管理单位的多个有效数据,并将所述有效数据重新写入新逻辑块;以及
第五处理,选择所述第三存储区中存储的第二管理单位的多个有效数据,并将所述有效数据重新写入新逻辑块;
所述控制器包括:
正向查找第一管理表,从第二管理单位的逻辑地址提取包括以下信息的第一管理信息,即指示与第二管理单位的逻辑地址对应的在所述第二管理单位的数据的第二或第三存储区中的存储位置的逻辑块地址的信息,以及由所述逻辑块地址指定的逻辑块中的第二管理单位的数据的存储位置的信息,以及到第二管理表中的属于第二管理单位的对应逻辑地址的条目的链接信息;
正向查找第二管理表,其具有第二管理单位的每个逻辑地址的条目,所述正向查找第二管理表是这样的表,从第一管理单位的逻辑地址提取包括以下信息的第二管理信息,即指示与第一管理单位的逻辑地址对应的在所述第一管理单位的数据的第二存储区中的存储位置的逻辑块地址的信息,以及由所述逻辑块地址指定的逻辑块中的第一管理单位的数据的存储位置的信息,以及到登记于第四管理表中的逻辑块地址的链接信息;
反向查找第三管理表,其中为每个逻辑块地址登记有包括以下信息的第三管理信息,即到在第一管理表中登记的第二管理单位的逻辑地址的链接信息,所述反向查找第三管理表是这样的表,从逻辑块地址提取与第二管理单位的数据对应的第二管理单位的地址,所述第二管理单位的数据包括在与所述逻辑块地址对应的逻辑块中;
反向查找第四管理表,其中为每个逻辑块地址登记有包括以下信息的第四管理信息,即到在第二管理表中登记的第一管理单位的逻辑地址的链接信息,所述反向查找第四管理表是这样的表,从逻辑块地址提取与第一管理单位的数据对应的第一管理单位的地址,所述第一管理单位的数据包括在与所述逻辑块地址对应的逻辑块中;以及
第五管理表,管理与多个物理块对应的多个物理块地址和与所述物理块关联的逻辑块对应的逻辑块地址之间的对应关系;以及
所述控制器基于第一至第五管理表执行第一至第五处理。
2.根据权利要求1所述的存储器系统,其中对于所述第二管理单位的每个逻辑地址,所述第一管理表具有这样的信息,即指示将属于所述第二管理单位的逻辑地址的所述第一管理单位的数据分配到所述第二存储区和所述第三存储区中的哪个。
3.根据权利要求1所述的存储器系统,其中对于所述第二管理单位的每个逻辑地址,所述第一管理表具有这样的信息,即指示在所述第二存储区中的所述第二管理单位的有效数据的数目。
4.根据权利要求1所述的存储器系统,其中所述第二管理表中的所述第二管理单位的每个逻辑地址的每个条目包括链接列表。
5.根据权利要求1所述的存储器系统,其中对于每个逻辑块地址,所述第三管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑块中存储的第二管理单位的数据当中的有效数据的数目。
6.根据权利要求5所述的存储器系统,其中对于每个逻辑块地址,所述第三管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑块中可写入第二管理单位的数据的位置。
7.根据权利要求1所述的存储器系统,其中对于每个逻辑块地址,所述第四管理表具有这样的信息,即指示在所述第二存储区中的第一管理单位的有效数据的数目。
8.根据权利要求7所述的存储器系统,其中对于每个逻辑块地址,所述第四管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑块中可写入数据的页位置。
9.根据权利要求1所述的存储器系统,其中所述易失性半导体存储区是DRAM,所述非易失性半导体存储区是NAND闪速存储器。
10.根据权利要求1所述的存储器系统,其中所述第一管理单位的尺寸等于或大于所述扇区尺寸的尺寸,所述第二管理单位的尺寸小于所述逻辑块单位的尺寸。
11.一种存储器系统,包括:
作为高速缓冲存储器的第一存储区,其包括在易失性半导体存储器中;
第二、第三和第四存储区,其包括在非易失性半导体存储器中,在所述第二、第三和第四存储区中,通过页单位执行数据读取和写入,且通过物理块单位执行数据擦除,所述物理块单位的尺寸为所述页单位的尺寸的两倍或更大的自然数倍;以及
控制器,其通过与一个或多个所述物理块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二、第三和第四存储器,其中
所述控制器执行:
第一处理,将从所述第一存储区排挤的扇区单位的多个数据写入到所述第二存储区,作为第一管理单位的数据;
第二处理,将从所述第一存储区排挤的扇区单位的多个数据写入到所述第三存储区,作为第二管理单位的数据,所述第二管理单位的尺寸为所述第一管理单位的尺寸的两倍或更大的自然数倍;
第三处理,将所述第二存储区中最早登记的逻辑块中的数据排挤到所述第三存储区,作为所述第二管理单位的数据;
第四处理,在所述第三处理的执行之后,将所述第二存储区中最早登记的逻辑块中的剩余的有效数据重新定位到所述逻辑块单位的第四存储区;
第五处理,将在所述第四存储区中存储的多个数据排挤至所述第三存储区,作为所述第二管理单位的数据;
第六处理,选择在所述第四存储区中存储的第一管理单位的多个有效数据,并将所述有效数据重新写入新逻辑块;以及
第七处理,选择在所述第三存储区中存储的第二管理单位的多个有效数据,并将所述有效数据重新写入新逻辑块;
所述控制器包括:
正向查找第一管理表,从第二管理单位的逻辑地址提取包括以下信息的第一管理信息,即指示与第二管理单位的逻辑地址对应的在所述第二管理单位的数据的第二、第三或第四存储区中的存储位置的逻辑块地址的信息,以及由所述逻辑块地址指定的逻辑块中的第二管理单位的数据的存储位置的信息,以及到第二管理表中的属于第二管理单位的对应逻辑地址的条目的链接信息;
正向查找第二管理表,其具有第二管理单位的每个逻辑地址的条目,所述正向查找第二管理表是这样的表,从第一管理单位的逻辑地址提取包括以下信息的第二管理信息,即指示与第一管理单位的逻辑地址对应的在所述第一管理单位的数据的第二和第四存储区中的存储位置的逻辑块地址的信息,以及由所述逻辑块地址指定的逻辑块中的第一管理单位的数据的存储位置的信息,以及到登记于第四管理表中的逻辑块地址的链接信息;
反向查找第三管理表,其中为每个逻辑块地址登记有包括以下信息的第三管理信息,即到在第一管理表中登记的第二管理单位的逻辑地址的链接信息,所述反向查找第三管理表是这样的表,从逻辑块地址提取与第二管理单位的数据对应的第二管理单位的地址,所述第二管理单位的数据包括在与所述逻辑块地址对应的逻辑块中;
反向查找第四管理表,其中为每个逻辑块地址登记有包括以下信息的第四管理信息,即到在第二管理表中登记的第一管理单位的逻辑地址的链接信息,所述反向查找第四管理表是这样的表,从逻辑块地址提取与第一管理单位的数据对应的第一管理单位的地址,所述第一管理单位的数据包括在与所述逻辑块地址对应的逻辑块中;以及
第五管理表,管理与多个物理块对应的多个物理块地址和与所述物理块关联的逻辑块对应的逻辑块地址之间的对应关系;以及
所述控制器基于第一至第五管理表执行第一至第七处理。
12.根据权利要求11所述的存储器系统,其中对于所述第二管理单位的每个逻辑地址,所述第一管理表具有这样的信息,即指示将属于所述第二管理单位的逻辑地址的所述第一管理单位的数据分配所述第二或第三存储区和所述第四存储区中的哪个。
13.根据权利要求11所述的存储器系统,其中对于所述第二管理单位的每个逻辑地址,所述第一管理表具有这样的信息,即指示在所述第二或第三存储区中的所述第二管理单位的有效数据的数目。
14.根据权利要求11所述的存储器系统,其中所述第二管理表中的所述第二管理单位的每个逻辑地址的每个条目包括链接列表。
15.根据权利要求11所述的存储器系统,其中对于每个逻辑块地址,所述第三管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑块中存储的第二管理单位的数据当中的有效数据的数目。
16.根据权利要求15所述的存储器系统,其中对于每个逻辑块地址,所述第三管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑块中可写入第二管理单位的数据的位置。
17.根据权利要求11所述的存储器系统,其中对于每个逻辑块地址,所述第四管理表具有这样的信息,即指示在所述第二存储区中的第一管理单位的有效数据的数目。
18.根据权利要求17所述的存储器系统,其中对于每个逻辑块地址,所述第四管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑块中可写入数据的页位置。
19.根据权利要求11所述的存储器系统,其中所述易失性半导体存储区是DRAM,所述非易失性半导体存储区是NAND闪速存储器。
20.根据权利要求11所述的存储器系统,其中所述第一管理单位的尺寸等于或大于所述扇区尺寸的尺寸,所述第二管理单位的尺寸小于所述逻辑块单位的尺寸。
CN200980000122A 2008-03-01 2009-02-10 存储器系统 Pending CN101681299A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008051479A JP2009211233A (ja) 2008-03-01 2008-03-01 メモリシステム
JP051479/2008 2008-03-01
PCT/JP2009/052603 WO2009110306A1 (en) 2008-03-01 2009-02-10 Memory system

Publications (1)

Publication Number Publication Date
CN101681299A true CN101681299A (zh) 2010-03-24

Family

ID=41055867

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980000122A Pending CN101681299A (zh) 2008-03-01 2009-02-10 存储器系统

Country Status (6)

Country Link
US (4) US8554984B2 (zh)
EP (1) EP2250564A4 (zh)
JP (1) JP2009211233A (zh)
CN (1) CN101681299A (zh)
TW (1) TWI400609B (zh)
WO (1) WO2009110306A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105989860A (zh) * 2014-10-20 2016-10-05 株式会社 东芝 磁盘装置和用于访问数据扇区的方法
CN106991058A (zh) * 2016-01-21 2017-07-28 腾讯科技(深圳)有限公司 预取文件处理方法及装置
CN107766173A (zh) * 2016-08-16 2018-03-06 爱思开海力士有限公司 半导体器件和半导体系统
US20220188223A1 (en) * 2020-12-16 2022-06-16 Micron Technology, Inc. Memory sub-system write sequence track

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533384B2 (en) 2007-12-27 2013-09-10 Sandisk Enterprise Ip Llc Flash memory controller garbage collection operations performed independently in multiple flash memory groups
CN101632068B (zh) 2007-12-28 2015-01-14 株式会社东芝 半导体存储装置
JP4461170B2 (ja) 2007-12-28 2010-05-12 株式会社東芝 メモリシステム
JP4672742B2 (ja) * 2008-02-27 2011-04-20 株式会社東芝 メモリコントローラおよびメモリシステム
JP4653817B2 (ja) * 2008-03-01 2011-03-16 株式会社東芝 メモリシステム
EP2396729B1 (en) 2009-02-12 2019-05-22 Toshiba Memory Corporation Memory system and method of controlling memory system
TWI431627B (zh) * 2009-07-31 2014-03-21 Silicon Motion Inc 快閃記憶體裝置及快閃記憶體裝置之運作方法
US9779057B2 (en) 2009-09-11 2017-10-03 Micron Technology, Inc. Autonomous memory architecture
TWI506422B (zh) * 2009-09-23 2015-11-01 Silicon Motion Inc 用來管理具有多通道、多途徑的記憶裝置之方法以及相關之記憶裝置及其控制器
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
US9292533B2 (en) * 2010-06-08 2016-03-22 Dell Products L.P. Systems and methods for improving storage efficiency in an information handling system
KR101691997B1 (ko) * 2010-07-22 2017-01-02 삼성전자 주식회사 영상처리장치 및 그 제어방법
JP5010723B2 (ja) * 2010-09-22 2012-08-29 株式会社東芝 半導体記憶制御装置
KR20120079397A (ko) * 2011-01-04 2012-07-12 삼성전자주식회사 적층형 반도체 장치 및 이의 제조 방법
US9251055B2 (en) * 2012-02-23 2016-02-02 Kabushiki Kaisha Toshiba Memory system and control method of memory system
US20130254463A1 (en) * 2012-03-23 2013-09-26 Kabushiki Kaisha Toshiba Memory system
TWI521528B (zh) * 2012-08-08 2016-02-11 群聯電子股份有限公司 記憶體儲存裝置、其記憶體控制器與資料處理方法
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9921954B1 (en) * 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US20140250277A1 (en) * 2013-03-04 2014-09-04 Kabushiki Kaisha Toshiba Memory system
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US10003675B2 (en) 2013-12-02 2018-06-19 Micron Technology, Inc. Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9448876B2 (en) * 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) * 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9305665B2 (en) * 2014-03-31 2016-04-05 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9606870B1 (en) 2014-03-31 2017-03-28 EMC IP Holding Company LLC Data reduction techniques in a flash-based key/value cluster storage
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
CN105302677A (zh) * 2014-07-29 2016-02-03 株式会社东芝 信息处理装置和信息处理方法
US10025843B1 (en) 2014-09-24 2018-07-17 EMC IP Holding Company LLC Adjusting consistency groups during asynchronous replication
US9582201B2 (en) 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
US10162694B2 (en) 2015-12-21 2018-12-25 Intel Corporation Hardware apparatuses and methods for memory corruption detection
US10048877B2 (en) * 2015-12-21 2018-08-14 Intel Corporation Predictive memory maintenance
KR102585871B1 (ko) * 2016-02-26 2023-10-10 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10942844B2 (en) 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
US10191791B2 (en) 2016-07-02 2019-01-29 Intel Corporation Enhanced address space layout randomization
KR102409760B1 (ko) * 2017-03-17 2022-06-17 에스케이하이닉스 주식회사 메모리 시스템
US10090067B1 (en) * 2017-05-30 2018-10-02 Seagate Technology Llc Data storage device with rewritable in-place memory
US11221956B2 (en) * 2017-05-31 2022-01-11 Seagate Technology Llc Hybrid storage device with three-level memory mapping
TWI658402B (zh) * 2017-07-20 2019-05-01 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
JP7109949B2 (ja) 2018-03-23 2022-08-01 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法
CN110765156A (zh) * 2018-07-09 2020-02-07 慧荣科技股份有限公司 链表搜索装置及方法
US10817430B2 (en) * 2018-10-02 2020-10-27 Micron Technology, Inc. Access unit and management segment memory operations
KR20230094588A (ko) * 2021-12-21 2023-06-28 에스케이하이닉스 주식회사 복수의 존들에 대응하는 데이터를 관리하는 메모리 시스템 및 그 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3688835B2 (ja) 1996-12-26 2005-08-31 株式会社東芝 データ記憶システム及び同システムに適用するデータ転送方法
JP3072722B2 (ja) * 1997-06-20 2000-08-07 ソニー株式会社 フラッシュメモリを用いるデータ管理装置及びデータ管理方法並びにフラッシュメモリを用いる記憶媒体
JP4085478B2 (ja) * 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
US6587933B2 (en) * 2001-01-26 2003-07-01 International Business Machines Corporation Method, system, and program for discarding data in a storage system where updates to a primary storage device are shadowed in a secondary storage device
US6941436B2 (en) * 2002-05-09 2005-09-06 International Business Machines Corporation Method and apparatus for managing memory blocks in a logical partitioned data processing system
KR100457812B1 (ko) * 2002-11-14 2004-11-18 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
TWI223145B (en) * 2003-03-04 2004-11-01 Megawin Technology Co Ltd Method for detecting logical address of non-volatile storage medium
US8041878B2 (en) * 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US7412560B2 (en) 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
ATE493707T1 (de) * 2005-08-03 2011-01-15 Sandisk Corp Nichtflüchtiger speicher mit blockverwaltung
US7669003B2 (en) 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7571275B2 (en) * 2005-08-31 2009-08-04 Hamilton Sundstrand Corporation Flash real-time operating system for small embedded applications
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
JP5076411B2 (ja) * 2005-11-30 2012-11-21 ソニー株式会社 記憶装置、コンピュータシステム
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US20070255889A1 (en) * 2006-03-22 2007-11-01 Yoav Yogev Non-volatile memory device and method of operating the device
JP2008033788A (ja) * 2006-07-31 2008-02-14 Matsushita Electric Ind Co Ltd 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JP4932427B2 (ja) * 2006-10-20 2012-05-16 株式会社日立製作所 記憶装置及び記憶方法
US7793036B2 (en) * 2007-05-30 2010-09-07 Intel Corporation Method and arrangements for utilizing NAND memory
JP5221332B2 (ja) * 2008-12-27 2013-06-26 株式会社東芝 メモリシステム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105989860A (zh) * 2014-10-20 2016-10-05 株式会社 东芝 磁盘装置和用于访问数据扇区的方法
CN105989860B (zh) * 2014-10-20 2019-01-25 株式会社东芝 磁盘装置和用于访问数据扇区的方法
CN106991058A (zh) * 2016-01-21 2017-07-28 腾讯科技(深圳)有限公司 预取文件处理方法及装置
CN107766173A (zh) * 2016-08-16 2018-03-06 爱思开海力士有限公司 半导体器件和半导体系统
US20220188223A1 (en) * 2020-12-16 2022-06-16 Micron Technology, Inc. Memory sub-system write sequence track
US11841794B2 (en) * 2020-12-16 2023-12-12 Micron Technology, Inc. Memory sub-system write sequence track

Also Published As

Publication number Publication date
US20140250264A1 (en) 2014-09-04
US8554984B2 (en) 2013-10-08
TW200951714A (en) 2009-12-16
US8762631B2 (en) 2014-06-24
US20140013043A1 (en) 2014-01-09
EP2250564A4 (en) 2012-10-31
WO2009110306A1 (en) 2009-09-11
US20110185105A1 (en) 2011-07-28
EP2250564A1 (en) 2010-11-17
JP2009211233A (ja) 2009-09-17
US20160055080A1 (en) 2016-02-25
US9213635B2 (en) 2015-12-15
TWI400609B (zh) 2013-07-01

Similar Documents

Publication Publication Date Title
CN101681315B (zh) 存储器系统
CN101681299A (zh) 存储器系统
CN101689140B (zh) 存储器系统
CN101681314B (zh) 存储器系统
KR101018766B1 (ko) 메모리 시스템
KR101095765B1 (ko) 메모리 시스템 및 그 제어 방법
JP4675985B2 (ja) メモリシステム
CN101095121B (zh) 高速暂存区块
CN101169751B (zh) 具有闪存设备的系统及其数据恢复方法
CN101632068B (zh) 半导体存储装置
TWI420310B (zh) 記憶體系統
JP4551940B2 (ja) メモリシステム
CN101641680A (zh) 存储器系统
CN102667739A (zh) 存储装置管理装置及用于管理存储装置的方法
KR20090094196A (ko) 메모리 시스템
JP4592774B2 (ja) メモリシステム
JP5221593B2 (ja) メモリシステム
JP4510107B2 (ja) メモリシステム
KR101032671B1 (ko) 메모리 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20100324