CN101681315B - 存储器系统 - Google Patents
存储器系统 Download PDFInfo
- Publication number
- CN101681315B CN101681315B CN2009800001355A CN200980000135A CN101681315B CN 101681315 B CN101681315 B CN 101681315B CN 2009800001355 A CN2009800001355 A CN 2009800001355A CN 200980000135 A CN200980000135 A CN 200980000135A CN 101681315 B CN101681315 B CN 101681315B
- Authority
- CN
- China
- Prior art keywords
- block
- logical
- logical block
- data
- management unit
- 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.)
- Expired - Fee Related
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7202—Allocation control and policies
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
根据本发明实施例的存储器系统包括:数据管理单元120,其被划分为DRAM层管理单元120a、逻辑NAND层管理单元120b以及物理NAND层管理单元120c,以使用各个管理单元独立地执行对DRAM层,逻辑NAND层以及物理NAND层的管理,从而执行有效的块管理。
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
发明内容
根据本发明实施例的一种存储器系统包括:
非易失性半导体存储器,其包括多个并行操作元件,所述多个并行操作元件分别具有多个物理块作为数据擦除的单位;
高速缓冲存储器,其被配置在主机设备与所述非易失性半导体存储器之间;
控制器,其并行驱动所述并行操作元件,并通过所述高速缓冲存储器而执行在所述非易失性半导体存储器与所述主机设备之间的数据传送;
第一管理表,其具有在并行驱动的所述物理块和与所述物理块相关联的逻辑块之间的对应关系;
第二管理表,其具有在以扇区单位从所述主机设备输入的LBA逻辑地址与所述逻辑块之间的对应关系,其中
所述控制器包括:
第一控制单元,当发生与在所述物理块和所述逻辑块之间的对应关系的改变有关的第一事件时,所述第一控制单元基于所述第一管理表执行与所述第一事件对应的处理,并更新所述第一管理表;以及
第二控制单元,当发生与在所述LBA逻辑地址和所述逻辑块之间的对应关系的改变有关的第二事件时,所述第二控制单元基于所述第二管理表执行与所述第二事件对应的处理,并更新所述第二管理表;并且
所述控制器使得所述第一和第二控制单元彼此独立地操作。
附图说明
图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)是在存储器基元(memory cell)中同时写入的单位。然而,为了便于解释,如上所述地定义物理页。
逻辑页:在SSD中设定的写入和读出单位。逻辑页与一个或多个物理页相关联。例如,在8-位正常模式下,逻辑页大小为4kB,而在32-位的双速模式下,逻辑页大小为32kB。然而,不包括冗余位。
物理块:可以在NAND存储器芯片中独立地擦除的最小单位。物理块包括多个物理页。物理块大小为例如512kB。然而,不包括添加到SSD中的主数据的诸如错误校正码的冗余位。通常,512kB+冗余位(例如,几十kB)是同时擦除的单位。然而,为了便于解释,如上所述地定义物理块。
逻辑块:在SSD中设定的擦除单位。逻辑块与一个或多个物理块相关联。例如,在8-位正常模式下,逻辑块大小为512kB,而在32-位的双速模式下,逻辑块大小为4MB。然而,不包括冗余位。
扇区:从主机存取的最小单位。扇区大小为例如512B。
簇:用于在SSD中管理“小数据(细粒数据)”的管理单位。簇大小等于或大于扇区大小,且例如被如此设定,使得簇大小的两倍或更大的自然数倍的大小为逻辑页大小。
轨道:用于在SSD中管理“大数据(粗粒数据)”的管理单位。轨道大小被如此设定,使得簇大小的两倍或更大的自然数倍的大小为轨道大小,且例如轨道大小的两倍或更大的自然数倍的大小为逻辑块大小。
空闲块(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、作为易失性半导体存储器的DRAM 20、电源电路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中存储两个位。在四进制数据存储模式中,可将由上部页(upper page)数据“x”和下部页(lowerpage)数据“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中使用“小单位”连同“大单位”的技术,该申请的全部内容纳入本文中作为参考。
图6为关于从WC 21向NAND存储器10的写入处理的更详细的功能框图。在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中所示的部件)的管理单位,定义逻辑簇地址和逻辑轨道地址,所述逻辑簇地址由在顺序上(in order)等于或高于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-线/n-路(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统中进行管理,且可将一个簇的数据存储在一个条目(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。当FS12中的逻辑块被无效时,获得新的空闲块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使用轨道中的有效簇的数目来执行下文所解释的清理处理和压紧处理。
以有效簇的数目×有效簇系数(其是根据轨道是否存在于其中存在无效轨道的MS 11的逻辑块中而进行加权的数字;存在无效轨道时的数字大于不存在无效轨道时的数字)的顺序对轨道进行排序(sort)。收集具有大乘积值的2j+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上的区中且在SSD 100的初始化期间将其从NAND存储器读取至DRAM 20。
RC簇管理表23(反向查找)
参考图9解释RC簇管理表23。如上文所解释,在由逻辑簇地址LSB(k-i)个位编索引的n-路集合关联系统中管理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功能的链接列表(linked list)结构来表示轨道当中在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 40d是这样的信息,其用于识别属于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”。这里,“额外记录”是指以附加方式将簇或轨道写入逻辑块中的空逻辑页中。
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条(piece)信息的表。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、FSIB 12a和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处理)与清除输入缓冲器处理(clean inputbuffer processing)(在下文中为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)。稍后解释从WC21至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执行稍后所解释的轨道内扇区填充(padding),用于通过从NAND存储器10读出相同逻辑轨道地址中所包括的丢失扇区而与不存在于WC21中的扇区合并。
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改变或删除例如紧接在之前的一列表(an immediately preceding list)的下一个指针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 11中。这样的被动合并可随着从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簇的数目31f等等。数据管理单元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的移动以及将MSIB11a中存在满逻辑块设定为条件的压紧处理的实例。“满”逻辑块是指其中所有逻辑页已被写入且不可能进行额外记录的逻辑块。
1.参考MS逻辑块管理表35的有效标志35e,当在MS 11中存在被无效的逻辑块时,数据管理单元120将该逻辑块设定为空闲块FB。
2.数据管理单元120将MSIB 11a中的满逻辑块移动至MS 11。具体地,数据管理单元120更新上文所解释的MS结构管理表(未示出),且将逻辑块从在MSIB的管理之下转移至在MS 11的管理之下。
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 12a的管理之下转移至在FS 12的管理之下。
3.数据管理单元120判断分配给FS 12的逻辑块的数目是否超过FS12所允许的逻辑块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的清理。
4.数据管理单元120判定作为清理对象的最旧逻辑块中的簇当中应直接被复制至MS 11而不移动至IS 13的簇(实际上,因为MS 11的管理单位为轨道,所以以轨道单位判定所述簇)。
(A)数据管理单元120按照从逻辑页的顶部开始的顺序扫描作为清理对象的最旧逻辑块中的有效簇。
(B)数据管理单元120参考轨道管理表30的FS簇的数目30f的字段,寻找在FS中该簇所属于的轨道具有多少个有效簇。
(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的以逻辑块为单位的数据复制(块复制)。当上述数据不是用于一个逻辑块的数据时,执行至FS额外记录IB 12ab的以逻辑页为单位的数据复制(页复制)。
IS配置
IS单元13Q包括IS 13、IS输入缓冲器(ISIB)13a和IS压紧缓冲器13c。ISIB 13a具有用于一个至多个逻辑块的容量,IS压紧缓冲器13c具有例如用于一个逻辑块的容量,而IS 13具有用于大量逻辑块的容量。在IS 13中,如同在FS 12中一样,以逻辑块单位管理FIFO结构。IS压紧缓冲器13c为用于执行IS单元13Q中的压紧的缓冲器。
如上文所解释的,IS单元13Q以与FS单元12Q相同的方式以簇单位执行数据的管理。当执行逻辑块从FS单元12Q至IS单元13Q的移动(即,逻辑块从FS 12的清理)时,根据指针的重新定位,将作为清理对象的逻辑块(其为FS单元12Q的先前管理对象)改变成IS单元13(具体地,ISIB13a)的管理对象(块移动)。当根据逻辑块从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(块移动)。在该逻辑块被移动至TFS 11b之后,将空闲块FB分配为MS额外记录IB 11ab。
如上文所解释的,TFS 11b为这样的缓冲器,其具有用于大量逻辑块的容量,且具有插入在MS额外记录IB 11ab与MS 11之间的FIFO结构。将MS额外记录IB 11ab中以轨道单位额外记录的满逻辑块移动至具有FIFO结构的TFS 11b的输入侧。将通过MS 11中的压紧处理而形成的具有有效数据的逻辑块从MS压紧缓冲器11c移动(块移动)。MS压紧缓冲器11c为用于执行MS 11中的压紧的缓冲器。当根据MS 11中的压紧处理将MS中的轨道写入MS压紧缓冲器11c中时,执行被动合并,所述被动合并用于经由DRAM 20的工作区将WC 21、FS单元12Q和IS单元13Q中的、包括在作为写入对象的轨道中的有效簇写入MS压紧缓冲器11c中。在该实施例中,在MSIB 11a和TFS 11b中登记的逻辑块没有包括在压紧对象中。
图22是数据管理单元120的更详细的功能配置的图。如上文所解释的,数据管理单元120包括:DRAM层管理单元120a,其执行对存储于DRAM20中的数据的管理;逻辑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以及现用块(active block)管理表(AB管理表)230,且使用这些管理表来执行对NAND存储器10的物理NAND层的管理。
物理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是用于以物理块(512kR)单位管理坏块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管理表220,可以均等地分布将要擦除的逻辑块(磨损均化处理),使得所有逻辑块的擦除次数与擦除间隔大体均等。已知:除擦除的次数之外,NAND型闪速存储器的寿命还取决于擦除处理的间隔,在间隔较长时,保持性能较好且寿命较长。这还指示出:当擦除间隔短时,保持性能差且寿命受到损害。还已知:即使以短间隔执行写入,除非执行适当的长期擦除,否则保持性能得以恢复。
AB管理表230是从空闲块FB分配的被分配使用(例如,用于FS 12、IS 13或MS 11)的逻辑块(现用块AB)的列表。与在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、MS额外记录IB 11ab和TFS 11b的逻辑块ID;按有效轨道数目的逻辑块ID列表62,其用于存储具有小数目的有效轨道的逻辑块ID,以便增加MS压紧期间的排序处理的速度;以及区63和64,其用于管理作为状态信息的逻辑块的最大数目MBL和有效逻辑块的数目VBL。
在MS结构管理表60中,为MSFB 11aa、MS额外记录IB 11ab和TFS 11b准备具有所需数目的条目的固定字段61a至61c。逻辑块ID记录在固定字段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。作为FS/IS逻辑块管理表42的索引的FS/IS块ID 42a被登记在固定字段66a和66b中。在IS输入缓冲器管理表68中,为ISIB 13a准备具有所需数目的条目的固定字段。FS/IS块ID 42a被登记在固定字段中。在FS FIFO管理表67中,在固定字段中准备形成FS 12的FIFO结构的逻辑块的数目所用的条目。FS/IS块ID 42a被登记在FS FIFO管理表67的固定字段中。在IS FIFO管理表69中,在固定字段中准备形成IS 13的FIFO结构的逻辑块的数目所用的条目。FS/IS块ID 42a被登记在固定字段中。
解释在执行参照图19所解释的被划分成两个阶段(WCF处理和CIB处理)的写入处理过程中,从WC 21至MSIB 11a的复制处理中所涉及的对管理表的更新处理。此处,执行从WC 21至MS额外记录IB 11ab的以轨道为单位进行的复制。DRAM层管理单元120a参考轨道条目(在该轨道条目中登记有与决定清理的轨道对应的逻辑轨道地址24a)中的路-线位映像24c而以从顶部开始的顺序检查WC轨道管理表24,将WC簇管理表25中与路-线位映像24c的m×n个条目中具有有效位“1”的条目对应的条目中的状态标志25a从有效改变成等待清理至NAND,且向逻辑NAND层管理单元120b通知清理请求。
另一方面,逻辑NAND层管理单元120b参考图28中所示的MS结构管理表60的MS缓冲器管理表61和图14中所示的MS逻辑块管理表35而检查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将MS逻辑块管理表35的与从物理NAND层管理单元120c给出的空闲块FB的逻辑块ID相对应的条目的有效标志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存储器10中不存在具有相同逻辑轨道地址的旧轨道,且不执行轨道内扇区填充时,逻辑NAND层管理单元120b将与从WC 21清理的新轨道有关的所需信息登记在与轨道管理表30的逻辑轨道地址相对应的条目中。逻辑NAND层管理单元120b将与从WC 21清理的轨道有关的信息登记在与MS逻辑块管理表35的已写入的逻辑块ID相对应的条目中。关于MS逻辑块管理表35中的登记,存在例如作为轨道管理表30的索引的、与分配到MS 11的逻辑块中存储的轨道相对应的逻辑轨道地址(轨道管理指针35b)的更新、有效轨道的数目35c的更新,以及可写入的顶轨道35d的更新。
当NAND存储器10中存在具有相同逻辑轨道地址的旧轨道(该旧轨道被更替),且执行轨道内扇区填充时,逻辑NAND层管理单元120b更新所需信息,例如轨道管理表30中与合并源轨道对应的逻辑轨道地址30a的条目中的逻辑块ID 30c和逻辑块内轨道位置30d。具体地,逻辑NAND层管理单元120b将逻辑块ID 30c从合并源轨道所关联的MS 11中的旧逻辑块ID改变为与MS额外记录IB 11ab对应的新逻辑块ID。逻辑块内轨道位置30d根据额外记录状态而改变。
此外,逻辑NAND层管理单元120b删除MS逻辑块管理表35中这样的条目中的轨道管理指针35b的字段的相关区段,所述条目对应于与合并源轨道相关联的旧逻辑块ID,逻辑NAND层管理单元120b使有效轨道的数目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额外记录IB11ab的清理结束时,逻辑NAND层管理单元120b向DRAM层管理单元120a通知清理的完成(WCF处理)。DRAM层管理单元120a接收该通知,且将WC簇管理表25中与属于被清理的轨道的所有簇相对应的条目中的状态标志25a设定为无效(可用)。此后,可以将来自主机设备1的数据写入这些条目中。关于与WC轨道管理表24中的被清理的轨道对应的列表,例如,上一个列表的下一个指针24d被改变或删除,且该列表被无效化。
解释CIB处理。当WCF处理结束时,执行CIB处理,该CIB处理包括用于将FSIB 12a的通过WCF处理而写入的数据移动至FS 12的处理以及用于将MSIB 11a的通过WCF处理而写入的数据移动至MS 11或TFS11b的处理。下面参照图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处的判断为是时,逻辑NAND层管理单元120b参考MS逻辑块管理表35的有效轨道的数目35c而检查在MS中是否存在其有效轨道的数目35c为0的无效逻辑块。当在MS中存在无效逻辑块时,逻辑NAND层管理单元120b将该无效逻辑块返回至物理NAND层管理单元120c(步骤S405)。在MS逻辑块管理表35的与返回的无效逻辑块对应的条目中,将有效标志35e设定为无效,且使MS结构管理表60的有效逻辑块的数目VBL递减。逻辑NAND层管理单元120b将MSFB 11aa中的满逻辑块直接移动至MS 11,且将MS额外记录IB 11ab中的满逻辑块移动至TFS 11b(步骤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额外记录IB11ab。
首先,逻辑NAND层管理单元120b执行2i轨道MS压紧,该2i轨道MS压紧用于参考MS结构管理表60的按有效轨道数目的逻辑块ID列表62而从具有小数目的有效轨道的逻辑块中收集2i个轨道,且将所收集的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将轨道管理表30的具有与经受压紧的轨道对应的逻辑轨道地址30a的条目中的逻辑块ID 30c更新为从物理NAND层管理单元120c获取的空闲块FB的逻辑块ID,且更新逻辑块内轨道位置30d。
逻辑NAND层管理单元120b将从物理NAND层管理单元120c获取的空闲块FB的逻辑块ID(其用作MS压紧缓冲器11c)登记为MS逻辑块管理表35中的新条目,且将所需的信息登记在该条目中的各个字段中。关于登记,存在轨道管理指针35b的更新、有效轨道的数目的更新、可写入的顶轨道35d的更新等等。
逻辑NAND层管理单元120b将用作MS压紧缓冲器11c的逻辑块ID登记在MS结构管理表60的MS缓冲器管理表61的用于TFS的字段61c的FIFO结构(链接列表)的顶部处,以将通过包括作为MS压紧的结果的有效2i个轨道的一个逻辑块配置的MS压紧缓冲器11c移动至TFS 11b的顶部(最旧位置)。当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压紧。当用于收集2i个有效轨道的2i轨道MS压紧不可能处于有效逻辑块的数目VBL超过逻辑块的最大数目MBL的状态中时,逻辑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 12ab中是否存在一个或多个满逻辑块,在所述满逻辑块中所有逻辑页都通过簇被写入(步骤S440)。当在FSIB 12a中存在一个或多个满逻辑块时,逻辑NAND层管理单元120b执行下文所解释的处理。当步骤S440处的判断为否时,该过程在此处结束。
当步骤S440处的判断为是时,逻辑NAND层管理单元120b参考FS/IS结构管理表65和FS/IS逻辑块管理表42的有效簇的数目42d来检查在FS单元12Q中是否存在其有效簇的数目42d为0的无效逻辑块。当在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根据此时的状态执行例如一次两个逻辑块至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逐个依次检查FS 12的FIFO的顶部处的最旧逻辑块中的簇,且参考轨道管理表30的FS簇的数目31f的字段而搜寻在FS单元12Q中这些簇所属于的轨道具有多少个有效簇。当轨道中的有效簇的数目等于或大于预定阈值(例如,2k-i-1)时,逻辑NAND层管理单元120b将逻辑轨道地址设定为决定清理至MSIB 11a的轨道。
通过下面解释的路径(route)来执行该搜寻。
1.逻辑NAND层管理单元120b从FS/IS结构管理表65的FS FIFO管理表67获得FIFO的顶部处的最旧的FS/IS块ID。
2.逻辑NAND层管理单元120b从FS/IS逻辑块管理表42的与FS/IS块ID对应的条目中的块内簇表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。
针对例如一次两个逻辑块执行从FS 12至MS 11的清理(块复制)。换句话说,逻辑NAND层管理单元120b针对两个逻辑块收集具有等于或大于预定阈值(例如,2k-i-1)的轨道内有效簇的数目的轨道,且将针对两个逻辑块所收集的轨道清理至MSIB 11a的MSFB 11aa(步骤S460)。在该清理中,关于被清理的轨道中不存在于FS 12中的簇,逻辑NAND层管理单元120b执行用于从WC 21、IS单元13Q和MS 11读出簇且合并这些簇的被动合并。
然而,当对于两个逻辑块而言不存在决定清理至MSIB 11a的轨道时,逻辑NAND层管理单元120b将一个逻辑块清理至MSIB 11a的MSFB11aa(块复制),且额外地以轨道为单位将不足一个逻辑块的轨道记录在MS额外记录IB 11ab中(轨道复制)(步骤S460)。类似地,当对于一个逻辑块而言不存在决定清理至MSIB 11a的轨道时,逻辑NAND层管理单元120b额外地以轨道为单位将不足一个逻辑块的轨道记录在MS额外记录IB 11ab中(轨道复制)(步骤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至MSIB 11a的清理的条件(步骤S455)。当满足清理条件时,再次执行上文所解释的每两个逻辑块从FS 12至MSIB 11a的清理和MS 11中的CIB处理。重复这样的处理,直至在步骤S455处获得判断否为止。
FS 12中的CIB处理
当步骤S455处的判断为否时,逻辑NAND层管理单元120b判断是否满足从FS 12至ISIB 13a的清理的条件(步骤S490)。具体地,在从FS 12至MSIB 11a的清理处理中,当具有FIFO结构的处于满状态的FS 12的检查过的顶逻辑块中留存有有效簇时,逻辑NAND层管理单元120b执行从FS 12至ISIB 13a的清理(假定满足步骤S490处的从FS 12至IS 13的清理的条件)。
当在步骤S490处满足条件时,逻辑NAND层管理单元120b将仅包括这样的簇的顶逻辑块移动至ISIB 13a(块移动),这些簇不包括在被清理至MSIB 11a的轨道中(步骤S500)。在步骤S500处,逻辑NAND层管理单元120b执行例如一个逻辑块的清理。此后,根据状态,在执行步骤S520至S585处的过程之后,逻辑NAND层管理单元120b可根据步骤S590处的判断而再次执行步骤S500处的从FS 12至ISIB 13a的清理。
再次在步骤S500处执行清理的状态为以下的状态:其中,例如,当在FSIB 12a中存在具有多个满逻辑块的缓冲器(FSFB 12a或FS额外记录IB12ab)时,如果具有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所允许的逻辑块的预定最大数目(步骤S530)。具体地,逻辑NAND层管理单元120b判断从IS FIFO管理表69计算的逻辑块的数目是否超过预先设定的逻辑块的最大数目BLismax。
作为该比较的结果,当所计算的逻辑块的数目超过逻辑块的最大数目BLismax时,逻辑NAND层管理单元120b将例如两个逻辑块的轨道一次从IS 13清理至MSIB 11a的MSFB 11aa(步骤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从作为轨道管理表30的索引的逻辑轨道地址30a的下一个逻辑轨道地址开始搜寻(步骤S710),在最后搜寻中在步骤S740处将该下一个逻辑轨道地址存储为最终所搜寻的轨道。
当搜寻是第一次(第一循环)的搜寻时,逻辑NAND层管理单元120b从轨道管理表30的第一条目开始搜寻(步骤S710)。当步骤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基于两个列表(即,新搜寻的轨道列表与新添加的块内轨道列表(未示出))而选择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基于三个列表(即,未选定的轨道列表、新搜寻的轨道列表,以及新添加的块内轨道列表)而选择2i+1个轨道(步骤S770)。根据稍后所解释的图30中的步骤S570处的判断而判定是否应执行第二次或后续次的清理。在使用三个列表的选择处理中,逻辑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,当如上文所解释地选择针对两个逻辑块的轨道的清理候选者时,逻辑NAND层管理单元120b将针对两个逻辑块的选定的轨道(即,2i+1个轨道)清理至MSIB 11a的MSFB 11aa(步骤S540)。在该清理中,关于将要清理的轨道当中不存在于IS单元13Q中的簇,执行用于从WC 21、FS单元12和MS 11读出簇且合并这些簇的被动合并。在上述描述中,根据计分值S而选择待清理的轨道,所述计分值S是基于有效簇的数目和指示MS中是否存在多孔块的系数。然而,可仅根据有效簇的数目来选择将要清理的轨道。
MS中的CIB处理(图19中的步骤S370)
当以这种方式执行从IS 13至MSIB 11a的清理时,再次执行MS 11中的CIB处理(步骤S560)。步骤S560处的MS 11中的CIB处理与MS11中的第一次的CIB处理相同(步骤S400至S420)。因此,省略重复的解释。
IS中的CIB处理
逻辑NAND层管理单元120b判断是否应再次执行从IS 13至MSIB11a的清理(步骤S570)。逻辑NAND层管理单元120b使用MS逻辑块管理表35的字段和FS/IS逻辑块管理表42的有效簇的数目42d等等对步骤S540处的清理之后的IS 13中的逻辑块以从具有最小数目的有效簇的逻辑块开始的顺序进行排序。当具有最小数目的有效簇的两个逻辑块的有效簇的总数目等于或大于作为预定设定值的2k(针对一个逻辑块)时,逻辑NAND层管理单元120b判断出满足从IS 13至MSIB 11a的清理的条件(步骤S570)。
当满足从IS 13至MSIB 11a的清理的条件时,逻辑NAND层管理单元120b使该过程移至步骤S540,且执行图31中的步骤S700至S750和S770,以再次执行上文所解释的针对两个逻辑块的清理处理。只要步骤S570处的判断为是,逻辑NAND层管理单元120b即重复地执行针对两个逻辑块的从IS 13至MSIB 11a的清理处理和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结束当前写入处理。以上内容为写入处理的细节。
如上文所解释的,在该实施例中,数据管理单元120被划分为DRAM层管理单元120a、逻辑NAND层管理单元120b以及物理NAND层管理单元120c,以使用各个管理单元独立地执行对DRAM层、逻辑NAND层和物理NAND层的管理。
如图8和22所示,除了逻辑转译表50之外,物理NAND层管理单元120c还包括坏块管理表(BB管理表)200、保留块管理表(RB块管理表)210、空闲块管理表(FB管理表)220以及现用块管理表(AB管理表)230。当出现坏块BB时,通过使用这些管理表来执行对NAND存储器10的物理NAND层的管理,该管理包括物理块更换处理、磨损均化处理以及刷新处理。
类似地,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层的管理,所述管理包括读出处理、用于在写入处理中将数据从WC 21清理到NAND存储器10的清理处理(WCF处理),以及用于在写入处理中的CIB处理中簇和轨道相对于逻辑块的存储位置的排列处理。
如图8和22所示,在DRAM层管理单元120a、逻辑NAND层管理单元120b以及物理NAND层管理单元120c的各个层的管理单元中使用的管理表并不共享,并针对各个层的管理单元中执行的每种处理而局域化。因此,在各个层的管理单元中所执行的处理中,各个层管理单元中的处理不会因为由集中在应该使用的管理表上引起的等待使用的结束而延迟。可以高效并高速地执行各个管理单元中的处理。各个层的管理单元中执行的处理和处理中所使用的管理表针对每个层而局域化。因此,各个层管理单元中的控制处理得到简化,并且不必执行复杂的控制。
在该实施例中,为了简单并有效地在出现坏块BB时执行各种类型的块管理,例如物理块替换处理、磨损均化处理以及刷新处理,物理NAND层管理单元120c和逻辑NAND层管理单元120b是分离的,并引入逻辑块的概念以连接分离的物理NAND层管理单元120c和逻辑NAND层管理单元120b。
根据逻辑块的引入,物理NAND层管理单元120c可以在观察物理块的状态时不考虑逻辑NAND层管理单元120b中的处理而独立地执行各种块管理中所涉及的处理,例如物理块替换处理、磨损均化处理以及刷新处理(第一事件)。逻辑NAND层管理单元120b可以不考虑物理块的状态而在执行WCF处理、CIP处理等等(第二事件)中独立地执行用于逻辑扇区地址、逻辑簇地址和逻辑轨道地址与逻辑块之间的对应关系的更新和排列处理。
DRAM层管理单元120a和逻辑NAND层管理单元120b的相同之处在于:管理单元主要执行对逻辑地址的管理。因此,在该实施例中,也可以说,数据管理单元120被划分为:第一管理单元,其包括DRAM层管理单元120a和逻辑NAND层管理单元120b,主要执行对逻辑地址的管理;以及第二控制单元,其包括物理NAND层管理单元120c,主要执行对物理地址的管理。换句话说,在该实施例中,LBA逻辑地址与逻辑块之间的地址转换由第一控制单元执行,而逻辑块与物理块之间的地址转换由第二控制单元执行,以控制NAND存储器10的存储区。这使得可以对改变区段的表局域化,并减少在各个管理表中的写入的量。
本发明不限于上文所描述的实施例。因此,可在不偏离本发明的范围的情况下进行各种修改。
此外,上文所描述的实施例包括各种具有创造性步骤的组成部分。即,可通过分布或整合任意所揭示的组成部分而对本发明进行各种修改。
例如,可通过从这些实施例中所揭示的所有组成部分当中省略任意组成部分而进行本发明的各种修改,只要可解决本发明要解决的问题且可获得将要通过本发明获得的优点即可。
此外,在上述实施例中解释:簇大小乘以等于或大于二的正整数等于逻辑页大小。然而,本发明并不因此而受限制。
例如,簇大小可与逻辑页大小相同,或可为通过组合多个逻辑页而使逻辑页大小乘以等于或大于二的正整数所获得的大小。
此外,簇大小可与用于在诸如个人计算机的主机设备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执行这些处理。CPU1301执行存储在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接口输入写入命令、读取命令和高速缓冲存储器闪存命令(cache flashcommand)。南桥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.根据权利要求2的存储器系统,其中,即使当所述物理块中的至少一个被登记为坏块时,在所述逻辑块地址和所述逻辑块之间的对应关系也不发生改变。
4.根据权利要求1的存储器系统,其中所述第二事件包括用于将数据从所述高速缓冲存储器清理至所述非易失性半导体存储器的清理处理。
5.根据权利要求4的存储器系统,其中所述第二事件包括用于将所述清理处理中所涉及的所述非易失性半导体存储器中的数据重新定位的数据移动处理。
6.一种存储器系统,包括:
作为高速缓冲存储器的第一存储区,其包括在易失性半导体存储器中;
第二存储区和第三存储区,其包括在非易失性半导体存储器中,在所述第二存储区和所述第三存储区中,通过物理页单位执行数据读取和写入,且通过物理块单位执行数据擦除,所述物理块单位的大小为所述物理页单位的大小的两倍或更大的自然数倍,所述非易失性半导体存储器具有多个并行操作元件,所述多个并行操作元件的每一个具有多个物理块;以及
控制器,其执行:
第一处理,其用于以逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区,所述逻辑块单位与所述物理块中的一个或多个相关联;
第二处理,其用于将以扇区单位写入所述第一存储区中的多个数据清理至所述第二或第三存储区;以及
第三处理,其作为数据移动处理,用于将所述第二处理中所涉及的所述非易失性半导体存储器中的数据重新定位,其中
所述控制器包括:
第一管理表,其用于管理在所述物理块和与所述物理块相关联的逻辑块之间的对应关系;
第二管理表,其用于管理在以扇区单位从主机设备输入的逻辑块地址和所述逻辑块之间的对应关系,
所述控制器包括:
第一控制单元,当发生与在所述物理块和逻辑块之间的对应关系的改变有关的第一事件时,所述第一控制单元基于所述第一管理表执行所述第一处理,并更新所述第一管理表;以及
第二控制单元,当发生与在所述逻辑块地址和所述逻辑块之间的对应关系的改变有关的第二事件时,所述第二控制单元基于所述第二管理表执行所述第二或第三处理,并更新所述第二管理表;并且
所述控制器对所述第一和第二控制单元彼此独立地操作。
7.根据权利要求6的存储器系统,其中
所述第一事件包括在所述逻辑块中出现以所述物理块单位管理的坏块的事件,并且
当出现所述坏块时,所述第一控制单元执行物理块替换处理,该物理块替换处理用于基于所述第一管理表用相同并行操作元件中的另一物理块来替换所述坏块。
8.根据权利要求7的存储器系统,其中
所述第一管理表包括:
逻辑至物理转译表,其用于以逻辑块地址为单位管理在多个物理块地址与逻辑块地址之间的对应关系、擦除次数和擦除时间,其中所述多个物理块地址对应于多个物理块,所述逻辑块地址对应于与所述物理块相关联的逻辑块;以及
坏块管理表,其用于以并行操作元件为单位,管理分配给坏块的物理块的物理块地址,并且
当出现坏块时,所述第一控制单元将分配给所述坏块的物理块的物理块地址登记在所述坏块管理表中,并改变所述逻辑至物理转译表中的在所述逻辑块地址和所述物理块地址之间的对应关系,从而执行所述物理块替换处理。
9.根据权利要求7的存储器系统,其中在执行所述物理块替换处理之后,所述第一控制单元获取空闲块作为未分配应用的逻辑块,并执行对所获取的空闲块的逻辑块地址和经受所述物理块替换处理的逻辑块的逻辑块地址的替换。
10.根据权利要求8的存储器系统,其中
所述第一管理表还包括空闲块管理表,其用于管理这样的逻辑块的逻辑块地址,该逻辑块被分配给空闲块作为未分配应用的逻辑块,并且
在执行所述物理块替换处理之后,所述第一控制单元获取空闲块,并改变所述逻辑至物理转译表和所述空闲块管理表,从而执行对所获取的空闲块的逻辑块地址和经受所述物理块替换处理的逻辑块的逻辑块地址的替换。
11.根据权利要求10的存储器系统,其中
所述空闲块管理表包括:第一列表,其用于以所述逻辑至物理转译表所管理的擦除时间的顺序,管理分配给所述空闲块的逻辑块的逻辑块地址;以及第二列表,其用于以所述逻辑至物理转译表所管理的擦除次数的顺序,管理从所述第一列表溢出的逻辑块的逻辑块地址,并且
所述第一控制单元执行磨损均化处理,以使用所述第一和第二列表均匀地分散将要擦除的逻辑块。
12.根据权利要求6的存储器系统,其中
在执行所述第二处理时,当数据被清理至所述第二存储区时,所述控制器将所述扇区单位中的多个数据作为第一管理单位中的数据进行清理,并且当数据被清理至所述第三存储区时,所述控制器将所述扇区单位中的多个数据作为第二管理单位中的数据进行清理,所述第二管理单位的大小为所述第一管理单位的两倍或更大的自然数倍;
所述第二事件包括所述第一存储区中的数据所属于的所述第二管理单位中的数据的数目超过规定值的事件,并且
所述第二控制单元基于所述第二管理表执行所述第二处理。
13.根据权利要求12的存储器系统,其中
所述第二管理表包括:
第一高速缓冲存储器管理表,其以所述第一管理单位管理包括所述第二管理单位中的地址的标记信息,从而管理写入所述第一存储区中的数据的地址;以及
第二高速缓冲存储器管理表,其以所述第二管理单位的地址单位来管理指示出在所述第一存储区中存储的数据的时间顺序的信息,且针对所述第二管理单位中的每一地址,管理有效数据数目信息,所述有效数据数目信息指示出所述第二管理单位中的地址中所包括的所述第一管理单位中的有效数据的数目,并且
所述第二控制单元基于所述第二高速缓冲存储器管理表而检测所述第一存储区中的数据所属于的所述第二管理单位中的数据的数目超过规定值,并基于所述第二高速缓冲存储器管理表而执行所述第二处理。
14.根据权利要求12的存储器系统,其中
所述第二事件包括这样的事件,其中包括多个线和多个路的所述第一存储区的最后的空闲路被使用,并且
当所述最后的空闲路被使用时,所述第二控制单元执行所述第二处理。
15.根据权利要求13的存储器系统,其中所述第二控制单元基于由所述第二高速缓冲存储器管理表所管理的有效数据数目信息,判定所述第二和第三存储区中的哪一个被选择作为从所述第一存储区的清理目的地。
16.根据权利要求12的存储器系统,其中
所述第二事件包括分配给所述第二存储区的逻辑块的数目超过允许值的事件,并且
当分配给所述第二存储区的逻辑块的数目超过允许值时,所述第二控制单元执行第三处理,所述第三处理包括用于将在所述第二存储区中存储的多个数据清理至所述第三存储区作为所述第二管理单位中的数据的处理,或者压紧处理,所述压紧处理用于选择在所述第二存储区中存储的所述第一管理单位中的多个有效数据且将所述有效数据重写入新逻辑块中。
17.根据权利要求12的存储器系统,其中
所述第二事件包括分配给所述第三存储区的逻辑块的数目超过允许值的事件,并且
当分配给所述第三存储区的逻辑块的数目超过允许值时,所述第二控制单元执行第三处理,所述第三处理包括压紧处理,所述压紧处理用于选择在所述第三存储区中存储的所述第二管理单位中的多个有效数据且将所述有效数据重写入新逻辑块中。
18.根据权利要求12的存储器系统,还包括第四存储区,所述第四存储区包括在所述非易失性半导体存储器中,被配置用于单独为所述第二存储区以高更新频率存储数据,其中
所述第二事件包括分配给所述第四存储区的逻辑块的数目超过允许值的事件,并且
当分配给所述第四存储区的逻辑块的数目超过允许值时,所述第二控制单元执行第三处理,所述第三处理包括这样的处理,该处理用于将在所述第四存储区中最早登记的逻辑块中的数据清理至所述第三存储区作为所述第二管理单位中的数据,之后将在所述第四存储区中最早登记的逻辑块中存留的有效数据以所述逻辑块单位移动到所述第二存储区。
19.根据权利要求12的存储器系统,其中所述第二管理表包括:
正向查找第一逻辑层管理表,其用于从所述第二管理单位中的逻辑地址中检索第一管理信息,所述第一管理信息包括:包括所述逻辑块地址的信息,其指示出与所述第二管理单位中的逻辑地址对应的所述第二管理单位中的数据在所述第二和第三存储区中的存储位置,以及所述第二管理单位中的数据在由所述逻辑块地址指定的逻辑块中的存储位置;以及链接信息,其指向所述第二管理表中属于所述第二管理单位中的对应逻辑地址的条目;
正向查找第二逻辑层管理表,其具有用于所述第二管理单位中的每一个逻辑地址的条目,并且所述正向查找第二逻辑层管理表是这样的表,其用于从所述第一管理单位中的逻辑地址中检索第二管理信息,所述第二管理信息包括:包括逻辑块地址的信息,其指示出与所述第一管理单位中的逻辑地址对应的所述第一管理单位中的数据在所述第二存储区中的存储位置,以及所述第一管理单位中的数据在由所述逻辑块地址指定的逻辑块中的存储位置;以及链接信息,其指向在第四逻辑层管理表中登记的逻辑块地址;
反向查找第三逻辑层管理表,其中,针对所述逻辑块地址中的每一个,登记第三管理信息,所述第三管理信息包括链接信息,所述链接信息指向在所述第一逻辑层管理表中登记的所述第二管理单位中的逻辑地址,所述反向查找第三逻辑层管理表是这样的表,其用于从所述逻辑块地址检索与所述第二管理单位中的数据对应的所述第二管理单位中的地址,所述第二管理单位中的所述数据包括在与所述逻辑块地址对应的逻辑块中;以及
反向查找第四逻辑层管理表,其中,针对所述逻辑块地址中的每一个,登记第四管理信息,所述第四管理信息包括链接信息,所述链接信息指向在所述第二逻辑层管理表中登记的所述第一管理单位中的逻辑地址,所述反向查找第四逻辑层管理表是这样的表,其用于从所述逻辑块地址检索与所述第一管理单位中的数据对应的所述第一管理单位中的地址,所述第一管理单位中的所述数据包括在与所述逻辑块地址对应的逻辑块中。
20.根据权利要求6的存储器系统,其中所述易失性半导体存储器为DRAM,所述非易失性半导体存储器为NAND闪速存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP051478/2008 | 2008-03-01 | ||
JP2008051478A JP5032371B2 (ja) | 2008-03-01 | 2008-03-01 | メモリシステム |
PCT/JP2009/052598 WO2009110304A1 (en) | 2008-03-01 | 2009-02-10 | Memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101681315A CN101681315A (zh) | 2010-03-24 |
CN101681315B true CN101681315B (zh) | 2012-05-23 |
Family
ID=41055865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009800001355A Expired - Fee Related CN101681315B (zh) | 2008-03-01 | 2009-02-10 | 存储器系统 |
Country Status (7)
Country | Link |
---|---|
US (2) | US8209471B2 (zh) |
EP (1) | EP2260391A4 (zh) |
JP (1) | JP5032371B2 (zh) |
KR (1) | KR101075923B1 (zh) |
CN (1) | CN101681315B (zh) |
TW (1) | TWI406129B (zh) |
WO (1) | WO2009110304A1 (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2225643B1 (en) | 2007-12-28 | 2020-05-06 | Toshiba Memory Corporation | Semiconductor storage device |
JP4461170B2 (ja) | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
JP4653817B2 (ja) * | 2008-03-01 | 2011-03-16 | 株式会社東芝 | メモリシステム |
KR101516580B1 (ko) * | 2009-04-22 | 2015-05-11 | 삼성전자주식회사 | 컨트롤러, 이를 포함하는 데이터 저장 장치 및 데이터 저장 시스템, 및 그 방법 |
KR101600951B1 (ko) | 2009-05-18 | 2016-03-08 | 삼성전자주식회사 | 고체 상태 드라이브 장치 |
US8407403B2 (en) | 2009-12-07 | 2013-03-26 | Microsoft Corporation | Extending SSD lifetime using hybrid storage |
JP4987997B2 (ja) | 2010-02-26 | 2012-08-01 | 株式会社東芝 | メモリシステム |
US8489843B2 (en) * | 2010-04-20 | 2013-07-16 | Chip Memory Technology, Inc. | Configurable memory device |
JP5330432B2 (ja) * | 2011-03-11 | 2013-10-30 | 株式会社東芝 | データ記憶装置及びテーブル管理方法 |
JP5221699B2 (ja) * | 2011-03-23 | 2013-06-26 | 株式会社東芝 | 半導体記憶装置 |
US8638600B2 (en) | 2011-04-22 | 2014-01-28 | Hewlett-Packard Development Company, L.P. | Random-access memory with dynamically adjustable endurance and retention |
US20120272036A1 (en) * | 2011-04-22 | 2012-10-25 | Naveen Muralimanohar | Adaptive memory system |
CN102279808A (zh) * | 2011-09-06 | 2011-12-14 | 晨星软件研发(深圳)有限公司 | 一种嵌入式设备图像内存管理方法及装置 |
US8924636B2 (en) | 2012-02-23 | 2014-12-30 | Kabushiki Kaisha Toshiba | Management information generating method, logical block constructing method, and semiconductor memory device |
US9384124B2 (en) | 2012-07-20 | 2016-07-05 | Kabushiki Kaisha Toshiba | Data storage device, memory control method, and electronic device with data storage device |
US8856618B2 (en) * | 2012-10-04 | 2014-10-07 | HGST Netherlands B.V. | Scalable repair block error correction for sequential multiple data blocks in a magnetic data storage device |
US9652376B2 (en) * | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9652154B2 (en) * | 2014-02-05 | 2017-05-16 | Sandisk Technologies Llc | Storage module and host device for storage module defragmentation |
US9229813B2 (en) | 2014-03-06 | 2016-01-05 | HGST Netherlands B.V. | Error correction with on-demand parity sectors in magnetic data storage devices |
US9880778B2 (en) * | 2015-11-09 | 2018-01-30 | Google Inc. | Memory devices and methods |
US9857988B1 (en) * | 2016-07-10 | 2018-01-02 | Winbond Electronics Corporaiton | Data management in multiply-writeable flash memories |
JP6880402B2 (ja) * | 2017-05-10 | 2021-06-02 | 富士通株式会社 | メモリアクセス制御装置及びその制御方法 |
CN107229429B (zh) * | 2017-06-27 | 2020-06-16 | 苏州浪潮智能科技有限公司 | 一种存储空间管理方法及装置 |
JP7109949B2 (ja) * | 2018-03-23 | 2022-08-01 | キオクシア株式会社 | メモリシステム及びメモリシステムの制御方法 |
US10636459B2 (en) * | 2018-05-30 | 2020-04-28 | Micron Technology, Inc. | Wear leveling |
CN109144897B (zh) * | 2018-09-04 | 2023-07-14 | 杭州阿姆科技有限公司 | 一种实现大容量ssd磁盘的方法 |
US10817430B2 (en) | 2018-10-02 | 2020-10-27 | Micron Technology, Inc. | Access unit and management segment memory operations |
KR102233880B1 (ko) * | 2019-02-13 | 2021-03-30 | 울산과학기술원 | 싱글-레벨 기반의 데이터 저장 장치 및 방법 |
TWI793621B (zh) * | 2021-05-31 | 2023-02-21 | 大陸商北京歐錸德微電子技術有限公司 | 多通道同步輸出電路及利用其之控制晶片和電子裝置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1748198A (zh) * | 2003-12-25 | 2006-03-15 | 株式会社东芝 | 存储装置和信息处理系统 |
CN1749974A (zh) * | 2004-09-13 | 2006-03-22 | 株式会社东芝 | 存储器管理装置以及存储器装置 |
JP2007334413A (ja) * | 2006-06-12 | 2007-12-27 | Sony Corp | 記憶装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6347051B2 (en) | 1991-11-26 | 2002-02-12 | Hitachi, Ltd. | Storage device employing a flash memory |
JP3688835B2 (ja) | 1996-12-26 | 2005-08-31 | 株式会社東芝 | データ記憶システム及び同システムに適用するデータ転送方法 |
US7934074B2 (en) * | 1999-08-04 | 2011-04-26 | Super Talent Electronics | Flash module with plane-interleaved sequential writes to restricted-write flash chips |
US6938144B2 (en) * | 2001-03-22 | 2005-08-30 | Matsushita Electric Industrial Co., Ltd. | Address conversion unit for memory device |
GB0123416D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
US20050144516A1 (en) * | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
JP4218582B2 (ja) * | 2004-05-12 | 2009-02-04 | コニカミノルタビジネステクノロジーズ株式会社 | 画像形成装置 |
JP4722839B2 (ja) * | 2004-05-19 | 2011-07-13 | パナソニック株式会社 | メモリ制御回路、不揮発性記憶装置及びメモリ制御方法 |
US20060044934A1 (en) | 2004-09-02 | 2006-03-02 | Micron Technology, Inc. | Cluster based non-volatile memory translation layer |
JP4751163B2 (ja) * | 2005-09-29 | 2011-08-17 | 株式会社東芝 | メモリシステム |
JP4910360B2 (ja) * | 2005-10-20 | 2012-04-04 | ソニー株式会社 | 記憶装置、コンピュータシステム、およびデータ書き込み方法 |
JP2007280108A (ja) * | 2006-04-07 | 2007-10-25 | Sony Corp | 記憶媒体制御装置、記憶媒体制御方法、プログラム |
JP4636005B2 (ja) | 2006-11-13 | 2011-02-23 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP5014821B2 (ja) | 2007-02-06 | 2012-08-29 | 株式会社日立製作所 | ストレージシステム及びその制御方法 |
JP2007185965A (ja) * | 2007-02-28 | 2007-07-26 | Dainippon Printing Co Ltd | 化粧シートの製造方法およびその製造方法により製造された化粧シートが表面に積層されている建具・造作部材。 |
JP5010505B2 (ja) * | 2008-03-01 | 2012-08-29 | 株式会社東芝 | メモリシステム |
JP5221332B2 (ja) * | 2008-12-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
JP2010287049A (ja) * | 2009-06-11 | 2010-12-24 | Toshiba Corp | メモリシステムおよびメモリシステムの管理方法 |
JP5404483B2 (ja) * | 2010-03-17 | 2014-01-29 | 株式会社東芝 | メモリシステム |
-
2008
- 2008-03-01 JP JP2008051478A patent/JP5032371B2/ja active Active
-
2009
- 2009-02-10 KR KR1020097018123A patent/KR101075923B1/ko not_active IP Right Cessation
- 2009-02-10 WO PCT/JP2009/052598 patent/WO2009110304A1/en active Application Filing
- 2009-02-10 US US12/529,192 patent/US8209471B2/en active Active
- 2009-02-10 EP EP09713661A patent/EP2260391A4/en not_active Withdrawn
- 2009-02-10 CN CN2009800001355A patent/CN101681315B/zh not_active Expired - Fee Related
- 2009-02-25 TW TW098106022A patent/TWI406129B/zh not_active IP Right Cessation
-
2012
- 2012-01-26 US US13/358,763 patent/US8661191B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1748198A (zh) * | 2003-12-25 | 2006-03-15 | 株式会社东芝 | 存储装置和信息处理系统 |
CN1749974A (zh) * | 2004-09-13 | 2006-03-22 | 株式会社东芝 | 存储器管理装置以及存储器装置 |
JP2007334413A (ja) * | 2006-06-12 | 2007-12-27 | Sony Corp | 記憶装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5032371B2 (ja) | 2012-09-26 |
EP2260391A4 (en) | 2012-11-14 |
TW200951715A (en) | 2009-12-16 |
KR101075923B1 (ko) | 2011-10-26 |
WO2009110304A1 (en) | 2009-09-11 |
US20120124330A1 (en) | 2012-05-17 |
US8209471B2 (en) | 2012-06-26 |
US20110264859A1 (en) | 2011-10-27 |
US8661191B2 (en) | 2014-02-25 |
TWI406129B (zh) | 2013-08-21 |
CN101681315A (zh) | 2010-03-24 |
JP2009211232A (ja) | 2009-09-17 |
EP2260391A1 (en) | 2010-12-15 |
KR20090117937A (ko) | 2009-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681315B (zh) | 存储器系统 | |
CN101689140B (zh) | 存储器系统 | |
CN101681314B (zh) | 存储器系统 | |
CN101681299A (zh) | 存储器系统 | |
CN101647007A (zh) | 存储器系统 | |
JP4675985B2 (ja) | メモリシステム | |
KR101095765B1 (ko) | 메모리 시스템 및 그 제어 방법 | |
CN101641680A (zh) | 存储器系统 | |
JP4551940B2 (ja) | メモリシステム | |
TWI420310B (zh) | 記憶體系統 | |
JP4691123B2 (ja) | メモリシステム | |
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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 Termination date: 20170210 |
|
CF01 | Termination of patent right due to non-payment of annual fee |