存储器系统的制作方法

文档序号:6476541阅读:268来源:国知局
专利名称:存储器系统的制作方法
技术领域
本发明涉及一种包括非易失性半导体存储器的存储器系统。
技术背景作为在计算机系统中使用的外部存储装置,安装有诸如NAND型闪速 存储器的非易失性半导体存储器的SSD (固态驱动器)引人注目。与磁盘 装置相比,闪速存储器具有诸如速度高和重量轻的优点。SSD包括多个闪速存储器芯片;控制器,其响应于来自主机设备的 请求而执行对各自的闪速存储器芯片的读/写控制;緩沖存储器,其用于执 行在各自的闪速存储器芯片与主机设备之间的数据传送;电源电路;以及 与主机设备的连楱接口 (参见例如专利文件l)。非易失性半导体存储器的实例包括其中擦除、写入和读出的单位固定 的非易失性半导体存储器,例如在存储数据时一次以块为单位擦除数据然 后执行写入的非易失性半导体存储器,以及以与NAND型闪速存储器相同 的方式以页为单位执行写入和读出的非易失性半导体存储器。另一方面,这样的单位净皮称为扇区,该单位用于诸如个人计算机的主 机设备,以将数据写入诸如硬盘的次级存储装置以及从中读出数据。扇区 独立于半导体存储装置的擦除、写入和读出的单位而设定。例如,尽管非易失性半导体存储器的块的大小(块大小)为512kB且 其页的大小(页大小)为4kB,但主机设备的扇区的大小(扇区大小)被 i殳定为512 B。以此方式,非易失性半导体存储器的擦除、写入和读出的单位可大于 主机设备的写入和读出的单位。因此,当通过使用非易失性半导体存储器来配置个人计算机的次M 储器装置(例如硬盘)时,有必要通过使大小适应于非易失性半导体存储 器的块大小和页大小,写入来自作为主机设备的个人计算机的具有小尺寸 的数据。通过诸如个人计算机的主机设备而记录的数据既具有时间局域性,也 具有空间局域性(例如,参见非专利文件1)。因此,当记录数据时,如 果数据被直接记录在从外部指定的地址中,则重写(即,擦除处理)在时间上集中在特定的区域中,并且擦除次数的偏差增大。因此,在NAND型 闪速存储器中,执行用于使数据更新区段均衡分布的被称为磨损均化 (wear leveling )的处理。在磨损均化处理中,例如,由主机设备指定的逻辑地址被转译为其中 数据更新区段均衡地分布的非易失性半导体存储器的物理地址。已公开了这样一种SSD ,其被配置为在闪速存储器和主机设备之间插 入高速緩冲存储器且减少在闪速存储器中的写入次数(擦除次数)(例如, 参见专利文件2)。当执行从主机设备在高速緩沖存储器中的写入时,如果 高速緩冲存储器是满的,则在将数据从高速緩冲存储器清理(flush)到闪 速存储器之后将数据写入高速緩冲存储器中。如上文所解释的,当数据擦除单位(块)与数据管理单位不同时,根 据闪速存储器的重写的进展,无效的(非最新的)数据使得块为多孔的 (porous)。当处于这种多孔状态的块增多时,基本可用的块减少,不能 有效地使用闪速存储器的存储区。因此,执行称为压紧的处理,其用于收 集有效的最新数据且将数据重写在不同的块中(例如,参见专利文件3)。当以这种方式执行从高速緩冲存储器至闪速存储器的数据清理时,如 果闪速存储器处于多孔状态,则可想到在执行诸如压紧的处理以将闪速 存储器的存储区改变成满意状态之后,执行从高速緩冲存储器至闪速存储 器的数据清理。然而,当压紧处理等正在进行时,必须使从高速緩冲存储 器至闪速存储器的数据清理等待。需要一种解决该问题的有效方法。[专利文件1日本专利No. 3688835[专利文件2PCT专利申请No. 2007-528079的公开的日文译文[专利文件3日本专利申请公开No. 2005-222550[非专利文件1David A. Patterson以及John L. Hennessy, "Computer Organization and Design: The Hardware/Software Interface", Morgan Kaufmann Pub, 2004/8/31本发明提供一种可减少用于从高速緩沖存储器至闪速存储器的数据清 理的处理时间的存储器系统。发明内容本发明的一方面提供一种存储器系统,包括作为高速緩冲存储器的 第一存储区,其包括在易失性半导体存储器中;第二和第三存储区,其包 括在非易失性半导体存储器中,其中通过页单位执行数据读取和写入,且 通过块单位执行数据擦除,所述块单位的大小为所述页单位的两倍或更大 的自然数倍;第一输入緩冲器,其包括在所述非易失性半导体存储器中, 配置用于在所述第 一存储区与所述第二存储区之间进行緩冲;第二输入緩 冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第一存储 区与所述第三存储区之间进行緩冲;以及控制器,其通过与一个或多个块 相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第 二和第三存储区以及所迷第一和第二输入緩冲器,其中所述控制器执行第一处理,其用于以扇区单位将多个数据写入所述 第一存储区中;第二处理,其用于以第一管理单位将存储在所述第一存储 区中的数据清理至所述第一输入緩沖器,所述第一管理单位的大小为所述 扇区单位的两倍或更大的自然数倍;第三处理,其用于以第二管理单位将 存储在所述第 一存储区中的数据清理至所述第二输入緩冲器,所述第二管 理单位的大小为所述第一管理单位的两倍或更大的自然数倍;第四处理, 其用于将所述第 一输入緩沖器中所有页都被写入的逻辑块重新定位至所述 第二存储区;第五处理,其用于将所述第二输入緩沖器中所有页都被写入 的逻辑块重新定位至所述第三存储区;以及第六处理,其用于以所述第二管理单位将存储在所述第二存储区中的多个数据清理至所述第二输入緩冲 器。


图1是SSD的配置实例的框图;图2是包括在NAND存储器芯片中的一个块的配置实例以及在四进制 数据存储系统中的阈值分布的图;图3是驱动控制电路的硬件内部配置实例的框图; 图4是处理器的功能配置实例的框图;图5是在NAND存储器和DRAM中形成的功能配置的框图;图6是与从WC到NAND存储器的写入处理有关的详细功能框图;图7是LBA逻辑地址的图;图8是在数据管理单元中的管理表的配置实例的图;图9是RC蔟(cluster)管理表的实例的图;图IO是WC簇管理表的实例的图;图ll是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的清理操作的实例的流程图。
具体实施例方式
下面,将参考附图详细解释根据本发明的存储器系统的最佳实施方式。 (实施例)
下面将参考附图解释本发明的实施例。在下面的解释中,具有相同功 能和配置的部件由相同的参考标号和符号表示。仅当必要时才进行对这些 部件的重复解释。
首先,定义在该说明书中使用的术语。
物理页在NAND存储器芯片中可以共同地写入和读出的单位。物理 页大小为例如4kB。然而,不包括添加到SSD中的主数据(用户数据等) 的诸如错误校正码的冗余位。通常,4 kB +冗余位(例如,几十B)是在 存储器单元中同时写入的单位。然而,为了便于解释,如上所述地定义物 理页。
逻辑页在SSD中设定的写入和读出单位。逻辑页与一个或多个物理 页相关联。例如,在8-位正常模式下,逻辑页大小为4kB,而在32-位的 4模式下,逻辑页大小为32kB。然而,不包括冗余位。
物理块可以在NAND存储器芯片中独立地擦除的最小单位。物理块 包括多个物理页。物理块大小为例如512kB。然而,不包括添加到SSD中的主数据的诸如皿校正码的冗余位。通常,512 kB+冗余位(例如,几 十kB)是同时擦除的单位。然而,为了便于解释,如上所述地定义物理块。
逻辑块在SSD中设定的擦除单位。逻辑块与一个或多个物理块相关 联。例如,在8-位正常模式下,逻辑块大小为512kB,而在32-位的双速 模式下,逻辑块大小为4MB。然而,不包括冗余位。
扇区从主枳存取的最小单位。扇区大小为例如512B。
簇用于在SSD中管理"小数据(细粒数据)"的管理单位。例如, 簇大小等于或大于扇区大小,且#1如此设定,4吏得簇大小的两倍或更大的 自然数倍的大小为逻辑页大小。
轨道用于在SSD中管理"大数据(粗粒数据)"的管理单位。例如, 轨道大小被如此设定,使得簇大小的两倍或更大的自然数倍的大小为轨道 大小,且轨道大小的两倍或更大的自然数倍的大小为逻辑块大小。
空闲块(FB):在NAND型闪速存储器上的未分配使用的逻辑块。 当向空闲块分配使用时,在擦除之后使用该空闲块。
坏块(BB):在NAND型闪速存储器上的由于大量餘溪而不能被用 作存储区的物理块。例如,将不能正常完成擦除操作的物理块登记为坏块 BB。
写入效率在预定周期内逻辑块的擦除数量相对于从主机写入的数据 数量的统计值。写入效率越小,NAND型闪速存储器的磨损度越小。 有效簇存储最新数据的簇。 无效蔟存储非最新数据的簇。 有效轨道存储最新数据的轨道。 无效轨道存储非最新数据的轨道。
压紧在管理对象中从逻辑块中仅提取有效蔟和有效轨道并且在新的 逻辑块中重写所述有效蔟和有效轨道。 [第一实施例
图1是SSD (固态驱动器)IOO的配置实例的框图。SSD 100通过存 储器连楱接口,例如ATA接口 (ATA I/F)2,连接到主机设备l,例如个人计算机或CPU核,并且用作主机设备l的外部存储器。通过通信接口 3,例如RS232C接口 (RS232CI/F) , SSD 100可以将数据传送到用于除 错(debug)和制造检验的设备200并从其接收数据。SSD 100包括作为非 易失性半导体存储器的NAND型闪速存储器(下文中简称为NAND存储 器)10、作为控制器的驱动控制电路4、作为易失性半导体存储器的DRAM 20、电源电路5、用于状态显示的LED 6、检测驱动器中的温度的温度传 感器7、以及熔丝8。
电源电路5从由主机设备1侧的电源电i^跌应的外部DC电力产生多 个不同的内部DC电源电压,并将这些内部DC电源电压供应至SSD 100 中的各个电路。电源电路5检测外部电源的上升沿,产生接通复位信号, 并且将该接通复位信号供应至驱动控制电路4。熔丝8设置在主机设备1 一侧的电源电路与SSD100中的电源电路5之间。当从外部电源电i^应 过电流时,熔丝8断开,以防止内部电路发生故障。
在这种情况下,NAND存储器10具有四个并行操作元件10a至10d, 其执行四个并行操作。 一个并行操作元件具有两个NAND存储器封装。 NAND存储器封装中的每一个包括多个堆叠的NAND存储器芯片(例如, 1个芯片=2 GB)。在图1的情况下,NAND存储器封装中的每一个包括 堆叠的四个NAND存储器芯片。NAND存储器10具有64 GB的容量。当 NAND存储器封装中的每一个包括堆叠的八个NAND存储器芯片时, NAND存储器10具有128 GB的容量。
DRAM 20用作为用于在主机设备1与NAND存储器10之间的数据传 送的高速緩冲存储器以及用于工作区的存储器。可使用FeRAM来代替 DRAM 20。驱动控制电路4通过DRAM 20在主机设备1与NAND存储 器IO之间执行数据传送控制,并且控制SSD 100中的各个部件。驱动控制 电路4将用于状态显示的信号供应至用于状态显示的LED 6。驱动控制电 路4还具有从电源电路5接收接通复位信号且将复位信号和时钟信号供应 至在自身电路和SSD 100中的各个单元的功能。
NAND存储器芯片中的每一个通过将多个物理块排成阵列作为数据擦除的单位而配置。图2 (a)是包括在NAND存储器芯片中的一个物理块 的配置实例的电路图。每个物理块包括沿着X方向依次排成阵列的(p+l) 个NAND串(p为等于或大于0的整数)。包括在该(p+l)个NAND串 的每一个中的选择晶体管ST1的漏极连接至位线BLO至BLp,并且其栅 极共同地连接至选择栅极线SGD。选择晶体管ST2的源极共同地连接至源 极线SL ,并且其栅极共同地连接至选择栅极线SGS 。
存储器单元晶体管MT中的每一个包括MOSFET(金属氧化物半导体 场效应晶体管),该MOSFET包括形成于半导体基底上的堆叠栅极结构。 该堆叠栅极结构包括经由栅极绝缘膜而形成于半导体基底上的电荷存储层 (浮动栅电极),以及经由栅极间绝缘膜而形成于该电荷存储层上的控制 栅电极。阈值电压根据在浮动栅电极中累积的电子的数目而变化。存储器 单元晶体管MT才艮据阈值电压的差异而存储数据。存储器单元晶体管MT 可被配置为存储一个位或可被配置为存储多值(等于或大于两个位的数 据)。
存储器单元晶体管MT不限于具有浮动栅电极的结构,并且可以为诸 如MONOS (金属-氧化物-氮化物-氧化物-硅)型的结构,该结构可通过使 氮化物膜界面作为电荷存储层来俘获电子而调整阈值。类似地,MONOS 结构的存储器单元晶体管MT可被配置为存储一个位或可被配置为存储多 值(等于或大于两个位的数据)。
在每一个NAND串中,(q+l)个存储器单元晶体管MT排列在选择 晶体管ST1的源极与选择晶体管ST2的漏极之间,使得其电流路径串联连 接。换句话说,存储器单元晶体管MT在Y方向上串联连接,使得相邻的 存储器单元晶体管MT共享扩散区域(源极区域或漏极区域)。
存储器单元晶体管MT的控制栅电极从位于最漏极侧上的存储器单元 晶体管MT开始依次分别连接至字线WLO至WLq。因此,连接至字线 WLO的存储器单元晶体管MT的漏极连接至选择晶体管ST1的源极。连 接至字线WLq的存储器单元晶体管MT的源极连接至选择晶体管ST2的 漏极。字线WLO至WLq共同地连接在物理块中的NAND串当中的存储器 单元晶体管MT的控制栅电极。换句话说,存在于块的相同行中的存储器 单元晶体管MT的控制栅极连接至相同的字线WL。将连接至相同字线 WL的(p+l)个存储器单元晶体管MT作为一页(物理页)来处理。通 过每一物理页来执行数据写入及数据读出。
位线BLO至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" 的存储器单元和具有数据"io"的存储器单元进行上部位数据"x"的写入。
将数据"or和数据"oo"写入存储器单元中。
图3为驱动控制电路4的硬件内部配置实例的框图。驱动控制电路4 包括数据存取总线101 、第一电珞控制总线102以及第二电珞拴制总线103。 控制整个驱动控制电路4的处理器104连接至第一电路控制总线102。启 动ROM 105经由ROM控制器106而连接至第一电路拴制总线102,在该 启动ROM 105中存储有启动程序,所述启动程序用于启动存储在NAND 存储器IO中的各个管理程序(FW:固件)。时钟控制器107连接至第一 电路控制总线102,该时钟控制器107从图1中所示的电源电路5接收接通复位信号且将复位信号和时钟信号供应至各个单元。
第二电i^制总线103连接至第一电漆控制总线102。用于从图1中 所示的温度传感器7接收数据的I2C电路108、将用于状态显示的信号供 应至用于状态显示的LED 6的并行IO( PIO)电路109、以及控制RS232C I/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中的固件时,该固件通过存储在启动ROM 105中的启动程序而传送至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 (Reed Solomon)码、或LDPC (低密度奇偶检查)码。第二错误校正码的校正 能力比第一错误校正码的校正能力高。
如图1和图3中所示,在NAND存储器10中,四个并行的操作元件 10a至10d经由四个八位通道(4 ch)而并联连接至驱动控制电路4中的 NAND控制器112。根据四个并行的操作元件10a至10d是独立致动还是 并行致动与是否使用在NAND存储器芯片中提供的X5Ul模式(多页编程/ 多页读取/多块擦除)的组合,提供下文所解释的三种存W^式。 (1) 8-位正常模式
8-位正常才莫式为用于仅致动一个通道且以8-位为单位执行数据传送的模式。以物理页大小(4kB)来执行写入和读出。以物理块大小(512 kB) 来执行擦除。 一个逻辑块与一个物理块相关联,且逻辑块大小为512kB。
(2) 32-位正常模式
32-位正常才莫式为用于并行致动四个通道且以32-位为单位执行数据传 送的模式。以物理页大小x4 (16kB)来执行写入和读出。以物理块大小x4 (2MB)来执行擦除。 一个逻辑块与四个物理块相关联,且逻辑块大小为 2MB。
(3) 32-位超模式
32-位4;漠式为用于并行致动四个通道且使用NAND存储器芯片的 双速模式来执行写入和读出的模式。以物理页大小x4x2 (32 kB)来执行 写入和读出。以物理块大小x4x2 (4MB)来执4亍擦除。 一个逻辑块与八个 物理块相关联,且逻辑块大小为4MB。
在用于并行致动四个通道的32-位正常模式或32-位双速模式中,并行 操作的四个或八个物理块为用于NAND存储器10的擦除单位,且并行操 作的四个或八个物理页为用于NAND存储器10的写入单位及读出单位。 在下面所解释的操作中,基本上,使用32-位双速模式。例如,假定 一个 逻辑块=4 1\18=2'轨道=^页-2k簇-2'扇区(i、 j、 k和1为自然数,且i<j<k<l 的关系成立)。
在32-位双速模式中存取的逻辑块是以4 MB的单位来存取。八 (2x4ch)个物理块( 一个物理块=512 kB )与逻辑块相关联。当检测到以 物理块单位管理的坏块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的读取 数据。由数据管理单元120将NAND存储器10中的逻辑块分配给前M 储区(FS:前存储器)12、中间级存储区(IS:中间存储器)13和主存储 区(MS:主存储器)ll的各个管理区,以便减少在写入期间NAND存储 器10的擦除的量。FS 12以簇为单位(即,"小单位")管理来自WC 21 的数据,且将小数据存储一短周期。IS13以簇为单位(即,"小单位") 管理从FS 12溢出的数据,且将小数据存储一长周期。MS 11以轨道为单 位(即,"大单位")将来自WC 21、 FS 12和IS 13的数据存储一长周期。例如,存储容量具有MS>IS且FS>WC的关系。
当对NAND存储器10的所有存储区应用小管理单位时,稍后解释的 管理表的大小被放大,且不适应DRAM20。因此,NAND存储器10的各 个存储器被配置为以小管理单位管理NAND存储器10中仅在最近刚写入 的数据和具有低写入效率的小数据。
图6为关于从WC21向NAND存储器10的写入处理(WR处理)的 更详细的功能框图。在FS 12的前级处设置FS输入緩冲器(FSIB) 12a, 其中该FS输入緩冲器(FSIB) 12a緩冲来自WC 21的数据。在MS 11的 前级处设置MS输入緩冲器(MSIB) lla,该MS输入緩冲器(MSIB) lla緩冲来自WC21、 FS 12或IS 13的数据。在MS 11中设置轨道前级存 储区(TFS ) llb。 TFS lib为插入在MSIB lla与MS 11之间的具有FIFO
(先进先出)结构的緩冲器。记录在TFSllb中的数据为这样的数据,该 数据的更新频率高于从MSIBlla直接写入在MSll中的数据。NAND存 储器10中的任何一个逻辑块被分配给MS 11 、 MSIB lla、 TFS llb、 FS 12、 FSIB 12a和IS 13。
将详细解释图5和图6中所示的各个部件的具体功能配置。当主机设 备1执行SSD 100的读取或写入时,主机设备1经由ATA接口而输入LBA
(逻辑块寻址)作为逻辑地址。如图7中所示,LBA为这样的逻辑地址, 其中从O开始的序号被附到扇区(大小512 B)。在该实施例中,作为用 于WC21、 RC22、 FS12、 IS 13和MS 11 (它们为图5中所示的部件) 的管理单位,定义逻辑簇地址和逻辑轨道地址,所述逻辑簇地址由依次(in order)等于或高于LBA的低位(low-order)第(1-k+l)位的位串形成, 所述逻辑轨道地址由依次等于或高于LBA的低位第(1-i+l )位的位串形成。 一个簇=2州个扇区,且一个轨道=2阿个簇。 读取高速緩冲存储器(RC) 22
解释RC 22。 RC 22为响应于来自ATA命令处理单元121的读取请求 而暂时存储来自NAND存储器10 (FS 12、 IS 13和MS 11)的读取数据的 区。在该实施例中,RC 22是在例如m-线/n-路(m为等于或大于2°^的自然数,且n为等于或大于2的自然数)集合关联系统中进行管理,且可将 一个簇的数据存储在一个条目(entry )中。线通过逻辑簇地址的LSB ( k-i) 个位来判定。RC 22可在全关联系统中进行管理,或者可在简单FIFO系 统中进行管理。
写入高速緩沖存储器(WC) 21
解释WC21。 WC21为响应于来自ATA命令处理单元121的写入请 求而暂时存储来自主机设备l的写入数据的区。WC21是在m-线/n-路(m 为等于或大于2^D的自然数,且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) 当登记于WC21中的不同轨道的数目超过预定数目时,决定以 LRU的顺序清理WC中的其簇数目小于预定数目的轨道。
才艮据上文所解释的策略来判定将要清理的轨道。在清理这些轨道时, 清理包括在相同轨道中的所有数据。当将要清理的数据的量超过例如轨道 大小的50。/。时,将数据清理至MSll。当将要清理的数据的量未超过例如 轨道大小的50%时,将数据清理至FS12。
当在条件(i )下执行轨道清理且将数据清理至MS 11时,根据策略(i), 选择WC 21的轨道当中满足将要清理的数据的量超过轨道大小的50%这 一条件的轨道且将其添加至清理候选者,直至将要清理的轨道的数目达到2i为止(当轨道的数目一开始就等于或大于2i时,直至轨道的数目达到21+1 为止)。换句话说,当将要清理的轨道的数目小于2i时,以从WC中的最 旧轨道开始的顺序选择具有多于2一-"的有效蔟的轨道,且将其添加至清理 候选者,直至轨道的数目达到2J为止。
当在条件(i)下执行轨道清理且将轨道清理至FS 12时,以LRU的 顺序在WC 21中的轨道当中选择满足将要清理的数据的量不超过轨道大 小的50%这一条件的轨道,并将该轨道的簇添加至清理候选者,直至将要 清理的簇的数目达到2k为止。换句话说,通过以从最旧轨道开始的顺序追 踪WC中的轨道而从具有2^""个或更少的有效簇的轨道中提取蔟,且当 有效蔟的数目达到2k时,以逻辑块为单位将簇清理至FSIB 12a。然而,当 未寻找到2k个有效蔟时,以逻辑页为单位将簇清理至FSIB12a。用于判定 是以逻辑块为单位还是以逻辑页为单位执行至FS 12的清理的有效簇的数 目的阈值不限于对于一个逻辑块的值(即,2k),且可为比对于一个逻辑 块的值稍小的值。
在来自ATA命令处理单元121的高速緩冲存储器清理请求中,在与 上文相同的条件下将WC21的所有内容清理至FS 12或MS 11 (当将要清 理的数据的量超过轨道大小的50%时,将数据清理至MSll,且当数据的 量未超过50%时,将数据清理至FS12)。
前级存储区(FS) 12
解释FS 12。 FS 12适应其中以簇为单位管理数据的逻辑块单位的FIFO 结构。FS 12为这样的緩沖器,其认为通过FS 12的数据具有比后级处的 IS13的数据高的更新频率。换句话说,在FS12的FIFO结构中,当执行 从主机向同一地址的重写时,使通过FIFO的有效蔟(最新蔟)无效。因 此,可将通过FS 12的簇视为具有比从FS 12清理至IS 13或MS 11的簇 更高的更新频率。
通过提供FS 12,减少了具有高更新频率的数据在后级处的IS 13中的 压紧处理中的混合的可能性。当通过无效化而使存储旧簇的逻辑块的有效 簇的数目减少至0时,释》文该逻辑块且将其分配为空闲块FB。当逻辑块被无效时,获得新的空闲块FB且将其分配给FS12。
当执行从WC 21至FS 12的簇数据的移动时,簇被写入分配给FSIB 12a的逻辑块中。当在FSIB12a中出现完成了所有页的写入的逻辑块时, 通过稍后所解释的CIB处理将这些块从FSIB 12a移动至FS 12。在将这些 块从FSIB12a移动至FS12的过程中,当FS 12的块的数目超过FS 12所 允许的预定上限值时,将最旧的块从FS12清理至IS13或MS11。例如, 将轨道中有效蔟比率等于或大于50。/。的轨道写入MS 11 (TFSllb)中, 且将其中仍剩余有有效簇的块移动至IS 13。
关于NAND存储器IO中的部件之间的数据移动,存在两种方式,即, 移动(Move)和复制(Copy)。移动是这样的方法,其仅执行稍后所解 释的管理表的指针(pointer)的重新定位,而不执行数据的实际重写。复 制是这样的方法,其以页单位、轨道单位或块单位将存储于一个部件中的 数据实际重写至另一部件中。
中间级存储区(IS) 13
解释IS13。在IS13中,以与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的数目减小至小于阈值时,执行从 IS 13至MS 11的数据清理和压紧处理。使IS 13的块的数目返回至规定值。
IS 13使用轨道中的有效簇的数目来执行下文所解释的清理处理和压 紧处理。
以有效簇的数目x有效簇系数(其是根据轨道是否存在于其中存在无效 轨道的MS 11的逻辑块中而进行加权的数字;存在无效轨道时的数字大于 不存在无效轨道时的数字)的顺序对轨道进行排序(sort)。收集具有大 乘积值的2^个轨道(对于两个逻辑块),将其增加至为逻辑块大小的自然数倍大,且将其清理至MSIB lla。
当具有最小数目的有效蔟的两个逻辑块的有效蔟的总数目为例如等于 或大于作为预定的设定值的2k (对于一个逻辑块)时,重复上文所解释的 步骤(以执行该步骤,直至可从IS中的两个逻辑块创建空闲块FB为止)。
从具有最小数目的有效簇的逻辑块开始依次收集2k个簇,且在IS中 进行压紧。
此处,选择具有最小数目的有效蔟的两个逻辑块。然而,数目不限于 二,且仅须为等于或大于二的数目。预定的设定值仅须等于或小于这样的 簇的数目,其可存储于比选定的逻辑块的数目小一的数目的逻辑块中。
主存储区(MS) 11
解释MSll。在MS11中,以轨道为单位执行数据的管理。可将存储 于MS 11中的数据视为具有低更新频率。当执行轨道数据从WC 21、 FS 12 或IS 13至MS 11的复制或移动时,将轨道写入被分配给MSIB lla的逻 辑块中。另一方面,当仅将轨道的一部分中的数据(簇)从WC等等写入 时,执行稍后所解释的被动合并,该被动合并用于合并现存的MS中的轨 道数据与新数据以产生新轨道数据,然后将所产生的轨道数据写入MSIB lla中。当无效轨道在MSll中累积且分配给MSll的逻辑块的数目超过 MS 11所允许的块的数目的上限时,执行压紧处理以产生无效的空闲块 FB。
作为MS 11的压紧处理,例如,执行下文所解释的仅关注逻辑块中的 有效轨道的数目的方法。
从具有最小数目的有效轨道的逻辑块中选择逻辑块,直至可通过组合 无效轨道而产生无效的空闲块FB为止。
当执行用于整合存储于选定逻辑块中的轨道与WC 21、 FS 12或IS 13 中的数据的被动合并时,执行压紧。
将其中可整合2i个轨道的逻辑块输出至TFS lib ( 2J轨道MS压紧), 且将数目小于2i的轨道输出至MSIB lla (小于2i的轨道压紧)以产生较 大数目的无效空闲块FB。TFSllb是其中以轨道为单位管理数据的FIFO。 TFSllb是这样的緩 沖器,其认为通过TFS lib的数据具有比后级处的MS 11的数据更高的更 新频率。换句话说,在TFS lib的FIFO结构中,当执行从主机向同一地 址中的重写时,使通过FIFO的有效轨道(最新轨道)无效。因此,可将 通过TFS lib的轨道视为具有比从TFS llb清理至MS 11的轨道更高的更 新频率。
图8为管理表的图,该管理表用于使数据管理单元120控制并管理图 5和图6中所示的各个部件。数据管理单元120具有(如上文所解释的) 桥接ATA命令处理单元121与NAND存储器10的功能,且包括DRAM 层管理单元120a,其执行对存储于DRAM 20中的数据的管理;逻辑NAND 层管理单元120b,其执行对存储于NAND存储器IO中的数据的管理;以 及物理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 lib 和MSIBlla)的逻辑地址由轨道管理表30、 FS/IS管理表40、 MS逻辑块 管理表35、 FS/IS逻辑块管理表42以及FS/IS内簇管理表44来管理。在 NAND存储器10中的FS 12 (FSIB 12a) 、 IS 13以及MS 11 (TFS lib 和MSIB 11a )中,执行逻辑至物理转译表50的逻辑地址与物理地址的转换。将这些管理表存储于NAND存储器10上的区中且将其从NAND存储 器读取至DRAM 20,并且在SSD 100的初始化期间使用这些管理表。 RC蔟管理表23 (反向查找)
参看图9解释RC簇管理表23。如上文所解释,在由逻辑簇地址LSB (k-i)个位编索引的n-路集合关联系统中管理RC 22。 RC簇管理表23为 用于管理RC (蔟大小xm-线xn-路)22的各个条目的标记的表。这些标记 中的每一个包括状态标志(flag) 23a和逻辑轨道地址23b,其中状态标志 23a包括多个位。除了指示所述条目是否可使用(有^t/无效)的有效位之 外,状态标志23a还包括例如指示所述条目是否在等待从NAND存储器 10读出的位、以及指示所述条目是否在等待读出至ATA命令处理单元121 的位。RC簇管理表23用作反向查找表,该反向查找表用于从DRAM 20 上的标记存储位置搜寻与LBA —致的逻辑轨道地址。
WC簇管理表25 (反向查找)
参看图10解释WC簇管理表25。如上文所解释,在由逻辑簇地址LSB (k-i)个位编索引的n-路集合关联系统中管理WC 21。 WC簇管理表25 为用于管理WC (簇大小xm-线xn-路)21的各个条目的标记的表。这些标 记中的每一个包括多个位的状态标志25a、扇区位置位映像(bitmap)25b, 以及逻辑轨道地址25c。
除了指示所述条目是否可使用(有勿无效)的有效位之外,状态标志 25a还包括例如指示所述条目是否在等待清理至NAND存储器10的位、 以及指示所述条目是否在等待从ATA命令处理单元121写入的位。通过 将扇区扩展成2(|^个位,扇区位置位映像25b指示一个簇中所包括的2("k) 个扇区中的哪一个存储有效数据。利用 扇区位置位映像25b,可在WC21 中执行与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中的mxn个条 目中的哪一个中存储WC21中的逻辑轨道地址中所包括的有效蔟。在其中 存储有效蔟的条目中,有效位为'T,。客线位映像24c包括例如(一位
(有效)+log2n个位(n-路))xm个位(m-线)。WC轨道管理表24具 有链接列表结构。仅输入关于wc21中存在的逻辑轨道地址的信息。 轨道管理表30 (正向查找)
参看图12解释轨道管理表30。轨道管理表30为用于以逻辑轨道地址 为单位来管理MS 11上的逻辑数据位置的表。当以簇为单位将数据存储于 FS 12或IS 13中时,轨道管理表30存储关于数据的基本信息和指向详细 信息的指针。轨道管理表30被配置为阵列格式,该阵列格式具有逻辑轨道 地址30a作为索引。具有逻辑轨道地址30a作为索引的每一条目包^i者如 以下内容的信息簇位映像30b、逻辑块ID30c+逻辑块内轨道位置30d、 蔟表指针30e、 FS簇的数目30f,以及IS簇的数目30g。轨道管理表30用 作正向查找表,这是因为通过使用逻辑轨道地址作为索引,可获得诸如逻 辑块ID (对应于存储装置位置)的所需信息,在该逻辑块ID中存储对应 于逻辑轨道地址的逻辑轨道。
簇位映像30b为通过将属于一个逻辑轨道地址范围的2,个簇按照簇 地址的升序分成例如八份而获得的位映像。八个位中的每一个指示对应于 20^-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指示出存在于FS12中的有效蔟的数目。IS 簇的数目30g指示出存在于IS13中的有效簇的数目。
FS/IS管理表40 (正向查找)
参看图13解释FS/IS管理表40。 FS/IS管理表40为用于以逻辑簇为 单位管理存储于FS 12 (包括FSIB 12a )或IS 13中的数据的位置的表。如 图13中所示,对于每一个逻辑轨道地址,FS/IS管理表40以独立链接列 表格式形成。如上文所解释,指向每一列表的顶条目的指针被存储在轨道 管理表30的簇表指针30e的字段中。在图13中,示出用于两个逻辑轨道 地址的链接列表。每一个条目包括逻辑蔟地址40a、逻辑块ID40b、逻辑 块内簇位置40c、 FS/IS块ID40d,以及下一个指针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 或IS13的逻辑块。FS/IS管理表40中的FS/IS块ID 40d被登记,以链接至稍后所解释的FS/IS逻辑块管理表42。下一个指针40e表示指向为每一 个逻辑轨道地址链接的同一列表中的下一条目的指针。 MS逻辑块管理表35 (反向查找)
参看图14解释MS逻辑块管理表35。 MS逻辑块管理表35为这样的 表,其用于整体地管理关于MSll中使用的逻辑块的信息(例如,存储哪 个逻辑轨道,以及逻辑轨道是否另外可记录)。在MS逻辑块管理表35 中,还登记与属于FS 12 (包括FSIB 12 )和IS 13的逻辑块有关的信息。 MS逻辑块管理表35以阵列格式形成,该阵列形式具有逻辑块ID 35a作 为索引。在128 GB的NAND存储器10的情况下,条目的数目最大可为 32 K个条目。这些条目中的每一个包括用于2'个轨道的轨道管理指针 35b、有效轨道的数目35c、可写入的顶轨道35d,以及有效标志35e。 MS 逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的 逻辑块ID 35a获得诸如存储于逻辑块中的逻辑轨道地址的所需信息。
轨道管理指针35b存储与逻辑块ID 35a所指定的逻辑块中的^个轨道 位置中的每一个相对应的逻辑轨道地址。可以使用该逻辑轨道地址来进行 遍及轨道管理表30的搜寻,该轨道管理表30具有逻辑轨道地址作为索引。 有效轨道的数目35c指示出在逻辑块ID 35a所指定的逻辑块中存储的轨道 当中的有效轨道的数目(最大为2"。可写入的顶轨道位置35d指示当逻 辑块ID 35a所指定的逻辑块为被另外记录的块时另外可记录的顶位置(0 至2",当另外记录结束时为2j)。当作为MS 11 (包括MSIB lla)来管 理逻辑块条目时,有效标志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块 ID40d来存取。每一条目包括逻辑块ID42b、块内簇表42c、有效蔟的数目42d、可写入的顶页42e,以及有效标志42f。 MS逻辑块管理表35用作 反向查找表,这是因为可以从对应于存储装置位置的FS/IS块ID 42获得 诸如在逻辑块中存储的逻辑簇之类的所需信息。
在MS逻辑块管理表35中登记的逻辑块当中与属于FS 12(包括FSIB 12 )和IS 13的逻辑块相对应的逻辑块ID净皮登记于逻辑块ID 42b中。指 向稍后所解释的FS/IS内簇管理表44的索引被登记于块内簇表42c中,该 FS/IS内簇管理表44指示在逻辑块中的每一个簇位置中登记由哪个逻辑簇 地址指定的逻辑簇。有效簇的数目42d指示在FS/IS块ID42a所指定的逻 辑块中存储的簇当中的有效蔟的数目(最大为2k)。可写入的顶页位置42e 指示当FS/IS块ID 42a所指定的逻辑块为被另外记录的块时,另外可记录 的顶页位置(0至2J",当另外记录结束时为2j)。当作为FS12(包括FSIB 12)或IS13来管理逻辑块条目时,有效标志42f为"1"。
FS/IS内簇管理表44 (反向查找)
参看图16解释FS/IS内簇管理表44。 FS/IS内簇管理表44为指示在 用作FS 12或IS 13的逻辑块中的每一个簇位置中记录哪个逻辑簇的表。 FS/IS内簇管理表44对于每一个逻辑块具有2j页x2^D簇-2k个条目。在连 续区中排列与逻辑块中的簇位置当中的第0至第2k-l个簇位置对应的信 息。以与属于FS12和IS13的逻辑块数目(P)相等的数目来存储包括该 2k条信息的表。FS/IS逻辑块管理表42的块内簇表42c为用于该P个表的 位置信息(指针)。在连续区中排列的每一条目44a的位置指示在一个逻 辑块中的簇位置。作为条目44a的内容,登记指向这样的列表的指针,该 列表包括通过FS/IS管理表40管理的逻辑簇地址,使得可以识别簇位置中 存储了哪个簇。换句话说,条目44a并不指示链接列表的顶部。在条目44a 中登记指向这样一个列表的指针,这个列表包括链接列表中的逻辑簇地址。
逻辑至物理转译表50 (正向查找)
参看图17解释逻辑至物理转译表50。逻辑至物理转译表50以阵列格 式形成,该阵列格式具有逻辑块ID50a作为索引。在128GB的NAND存 储器10的情况下,条目的数目可为最大32K个条目。逻辑至物理转译表50为用于管理关于逻辑块ID与物理块ID之间的转换和寿命的信息的表。 这些条目中的每一个包括物理块地址50b、擦除的次数50c,以及读出的次 数50d。逻辑至物理转译表50用作正向查找表,这是因为可以从逻辑块ID 获得诸如物理块ID (物理块地址)之类的所需信息。
物理块地址50b指示属于一个逻辑块ID 50a的八个物理块ID (物理 块地址)。擦除的次数50c指示逻辑块ID的擦除的次数。坏块(BB)以 物理块(512 KB)为单位来管理。然而,在32-位双速模式中,擦除的次 数以一个逻辑块(4 MB)的单位来管理。读出的次数50d指示逻辑块ID 的读出的次数。擦除的次数50c可用于例如磨损均化处理中,该磨损均化 处理用于均化NAND型闪速存储器的重写的次数。读出的次数50d可用于 刷新处理中,该刷新处理用于重写在具有恶化的保持性能的物理块中存储 的数据。
图8中所示的管理表通过下文所解释的管理对象来对照。
RC管理RC蔟管理表
WC管理WC蔟管理表和WC轨道管理表
MS管理轨道管理表30和MS逻辑块管理表35
FS/IS管理轨道管理表30、 FS/IS管理表40、 MS逻辑块管理表35、 FS/IS逻辑块管理表42,以及FS/IS内蔟管理表44
包括MS 11、 MSIB lla和TFS lib的MS区的结构以MS结构管理 表(未示出)进行管理。具体地,管理分配给MSll、 MSIBlla和TFSllb 的逻辑块及其类似者。包括FS 12、 FSIB 12a和IS 13的FS/IS区的结构以 FS/IS结构管理表(未示出)进行管理。具体地,管理分配给FS 12、 FSIB 12a和IS 13的逻辑块及其类似者。
读取处理
参看图18中所示的流程图来解g取处理。当从ATA命令处理单元 121输入读取命令和作为读出地址的LBA时,数据管理单元120遍及图9 中所示的RC簇管理表23和图10中所示的WC簇管理表25进行搜寻(步 骤SIOO)。具体地,数据管理单元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中所示的流程图来解释写入处理。通过非用于FUA (绕过 (bypassing) DRAM高速緩冲存储器而直接执行在NAND中写入)的写 入命令而写入的数据总是一次存储于WC 21上。此后,根据条件而将数据 写入NAND存储器10中。在写入处理中,很可能执行清理处理和压紧处 理。在该实施例中,将写入处理粗略划分成写入高速緩冲存储器闪速处理 (在下文中为WCF处理)与清除输入緩冲器处理(在下文中为CIB处理)的两个阶段。步骤S300至S320指示从来自ATA命令处理单元121的写 入请求至WCF处理的处理。步骤S330至最后步骤指示CIB处理。
WCF处理为用于将WC 21中的数据复制至NAND存储器10 (FS 12 的FSIB 12a、或者MS 11的MSIB lla)的处理。来自ATA命令处理单 元121的单独的写入请求或高速緩冲存储器清理请求可仅通过该处理来完 成。这4吏得可以将ATA命令处理单元121的写入请求的已开始处理中的 延迟最大限制为这样的时间,该时间用于在与WC21的容量相等的NAND 存储器10中写入。
CIB处理包括用于将FSIB 12a中通过WCF处理而写入的数据移动至 FS12的处理,以及用于将MSIBlla中通过WCF处理而写入的数据移动 至MS 11的处理。当开始CIB处理时,很可能以链式反应的方式执行NAND 存储器中的部件(FS12、 IS 13、 MS11等)当中的数据移动和压紧处理。 全部处理所需的时间大体上根据状态而改变。
首先,解释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改变成有效(不可用),且将所需数 据登记在扇区位置位映4象25b和逻辑轨道地址25c的空间中。数据管理单元120更新WC轨道管理表24。具体地,当输入与已登记于WC轨道管理表24的列表中的逻辑轨道地址24a相同的LBA地址时,数据管理单元120更新相关列表的路-线位映像24c以及WC簇的数目24b,且改变下一个指针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最早更新的轨道。
当才艮据上文所解释的策略判定将要清理的那个轨道时,如上文所解释的,如果相同轨道中所包括的WC21中的所有蔟将被清理,且将要清理的簇的量超过轨道大小的50% (即,如果WC中的有效簇的数目等于或大于决定清理的轨道中的2W-"时),则DRAM层管理单元120a执行至MSIB11a的清理(步骤S310)。如果蔟的量未超过轨道大小的50% (即,WC中的有效蔟的数目小于决定清理的轨道中的2^""),则DRAM层管理单元120a将轨道清理至FSIB 12a(步骤S315 )。稍后解释从WC 21至MSIB11a的清理以及从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而容易地获悉应清理的簇中的每一个在WC21中的存储位置。
在写入处理期间或在写入处理之后,数据管理单元120在以下条件得到满足时还以相同的方式执行至NAND存储器10的清理处理(ii)登记于WC 21中的轨道的数目超过预定数目。WC — MSIB (复制)
当根据基于有效蔟的数目(有效蔟的数目等于或大于2W-")的判断而执行从WC 21至MSIB lla的清理时,数据管理单元120如上文所解释地执行下文所解释的过程(步骤S310 )。
1. 参考WC簇管理表25且参考与将要清理的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为"1"时,数据管理单元120执行稍后所解释的轨道内扇区填充(padding),用于与NAND存储器10中所包括的相同簇中的扇区合并。数据管理单元120还执行;故动合并处理,该被动合并处理用于读出来自NAND存储器10的轨道中的不存在于WC21中的簇,且合并该簇。
2. 当决定清理的轨道的数目小于2i时,数据管理单元120添加决定清理的、具有2W-"个或更多有效簇的轨道,直至决定清理的轨道的数目从WC21中的最旧者起达到分个为止。
3. 当将要复制的轨道有2i个或更多时,数据管理单元120以逻辑块单位(每2i个轨道作为一个集合)在MSIBlla中执行写入。
4. 数据管理单元120以轨道为单位将无法形成2i个轨道的集合的轨道写入MSIB lla中。
5. 数据管理单元120在复制结束之后^f吏已存在于FS、 IS和MS上的簇及轨道当中的属于经复制的轨道的簇和轨道无效。
解释从WC 21至MSIB lla的复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中经清理的轨道的所有簇相对应。此后,有可能在这些项中进行写入。关于与WC轨道管理表24中的经清理的轨道对应的列表,数据管理单元120改变或删除例如上一个列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WC21至MSIBlla的轨道移动时,数据管理单元120 4艮据轨道移动而更新轨道管理表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的轨道写入时,或当执行通过MSll中的压紧处理而进行的MS轨道内写入时,可将作为写入对象的轨道中所包括的WC21中的有效蔟同时写入MS中。这样的被动合并可随着从WC 21至MS 11的写入而存在。当执行这样的被动合并时,将簇从WC21删除(使其无效)。WC — FSIB (复制)
当根据基于有效蔟的数目(有效簇的数目等于或大于2("")的判断而执行从WC 21至FSIB 12a的清理时,数据管理单元120如上文所解释地执行下文所解释的过程。
1. 参考与将要清理的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为'T,时,数据管理单元120执行簇内扇区填充,用于与NAND存储器IO中所包括的相同簇中的扇区合并。
2. 数据管理单元120通过以从最旧轨道起的顺序追踪WC中的轨道而从仅具有小于2W"个有效蔟的轨道中提取簇,且当有效蔟的数目达到2k时,以逻辑块为单位将所有簇写入FSIB 12a中。
3. 当未寻找到2k个有效蔟时,数据管理单元120以与逻辑页的数目相等的数目将具有小于2W-"的数目的有效蔟的所有轨道写入FSIB 12a中。4.数据管理单元120在复制结束之后使已存在于FS和IS上的簇当中的与被复制的簇相同的簇无效。
解释从WC 21至FSIB 12a的该复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中经清理的轨道的所有簇相对应。此后,有可能在这些条目中进行写入。关于与WC轨道管理表24中的经清理的轨道相对应的列表,数据管理单元120改变或删除例如上一个列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WC21至FSIB12a的簇移动时,数据管理单元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处理而写入的数据移动至MSll的处理。当开始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 lla的清理处理中,当过程中出现循环时,可能不按顺序执行处理。下面将单独地解释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 lla中。 在完成在MSIBlla中的写入之后,如上文所解释的,更新轨道管理表30, 且改变(移动)轨道排列于其中的逻辑块ID30c、块内轨道位置30d及其 类似者。当将新轨道数据写入MSIB lla中时,使从开始起就存在于MS 11 或TFSllb中的轨道数据无效。该无效化处理是这样实现的,即,使这样 的轨道无效,所述轨道来自MS逻辑块管理表35中的其中存储旧轨道信息 的逻辑块的条目。具体地,删除MS逻辑块管理表35的条目中的轨道管理 指针35b的字段中的相关轨道的指针,且使有效轨道的数目减一。当通过 该轨道无效化而使一个逻辑块中的所有轨道无效时,使有效标志35e无效。 通过这样无效化或其类似者,产生MSll的包括无效轨道的块。当重复此 步骤时,块的使用效率会降低而引起可用逻辑块的不足。
当出现这种情形且分配给MS 11的逻辑块的数目超过MS 11所允许的 块的数目的上限时,数据管理单元120执行压紧处理以产生无效的空闲块 FB。将该无效的空闲块FB返回至物理NAND层管理单元120c。逻辑NAND 层管理单元120b减少分配给MS 11的逻辑块的数目,且接着重新从物理 NAND层管理单元120c获取可写入的空闲块FB。压紧处理为这样的处理, 其用于在新逻辑块中收集作为压紧对象的逻辑块的有效蔟,或者将作为压 紧对象的逻辑块中的有效轨道复制至其它逻辑块,以产生返回至物理 NAND层管理单元120c的无效的空闲块FB,且改善逻辑块的使用的效率。 在执行压紧的过程中,当存在WC、 FS和IS上的有效蔟时,数据管理单 元120执行被动合并,该被动合并用于合并作为压紧对象的轨道区中的所 有有效蔟。登记于TFS lib中的逻辑块不包括在压紧对象中。
特别解释从MSIB lla至MS ll或至TFS lib的清理以及将MSIB lla 中存在满块设定为条件的压紧处理的实例。
1.参考MS逻辑块管理表35的有效标志35e,当在MS 11中存在被无效的逻辑块时,数据管理单元120将该块设定为无效的空闲块FB。
2. 数据管理单元120将MSIB lla中的满逻辑块清理至MS 11。具体 地,数据管理单元120更新上文所解释的MS结构管理表(未示出),且 将逻辑块从在MSIB的管理之下转移至在MS的管理之下。
3. 数据管理单元120判断分配给MS 11的逻辑块的数目是否超过MS ll所允许的块的数目的上限。当逻辑块的数目超过上限时,数据管理单元 120执行下文所解释的MS压紧。
4. 参考MS逻辑块管理表35的有效轨道的数目35c的字段及其类似 者,数据管理单元120以有效轨道的数目对不包括在TFS lib中的逻辑块 当中的具有^t无效的轨道的逻辑块进行分类。
5. 数据管理单元120从具有小数目的有效轨道的逻辑块收集轨道,且 执行压紧。在执行压紧过程中,首先,对于逻辑块中的每一个,对轨道进 行复制(一次复制2i个轨道),以执行压紧。当作为压紧对象的轨道具有 在WC 21、 FS 12和IS 13中的有效蔟时,数据管理单元120还合并这些有 效簇。
6. 数据管理单元120将压紧源处的逻辑块设定为无效的空闲块FB。
7. 当执行压紧且一个逻辑块包括有效的2i个轨道时,数据管理单元 120将逻辑块移动至TFS lib的顶部。
8. 当可通过将逻辑块中的有效轨道复制至另一逻辑块而产生无效的 空闲块FB时,数据管理单元120以轨道单位将数目小于24的有效轨道另 外记录在MSIB lla中。
9. 数据管理单元120将压紧源处的逻辑块设定为空闲块FB。
10. 当分配给MS 11的逻辑块的数目降低至MS 11所允许的块的数目 的上限以下时,数据管理单元120结束MS压紧处理。
FS 12中的CIB处理
解释FS 12中的CIB处理(步骤S340)。当通过从WC 21至FSIB 12a 的簇写入处理而在FSIB 12a中产生其中所有的页都被写入的逻辑块时,将 FSIB12a中的块从FSIB12a移动至FS12。根据该移动,将旧逻辑块从多个逻辑块所配置的FIFO结构的FS 12清理。
具体地如下文所解释地实现从FSIB 12a至FS 12的清理以及从FS 12 的块清理。
1. 参考FS/IS逻辑块管理表42的有效标志35e及其类似者,当在FS 12 中存在被无效的逻辑块时,数据管理单元120将该块设定为无效的空闲块 FB。
2. 数据管理单元120将FSIB 12a中的满块清理至FS 12。具体地,数 据管理单元120更新FS/IS结构管理表(未示出),且将该块从在FSIB 的管理之下转移至在FS的管理之下。
3. 数据管理单元120判断分配给FS 12的逻辑块的数目是否超过FS 12所允许的块的数目的上限。当逻辑块的数目超过上限时,数据管理单元 120执行下文所解释的清理。
4. 首先,数据管理单元120确定作为清理对象的最旧逻辑块中的簇数 据当中,应直接被移动至MS11而不移动至IS13的簇数据(实际上,因 为MS的管理单位为轨道,所以以轨道单位确定所述蔟数据)。
(A)数据管理单元120按照从页的顶部开始的顺序扫描作为清理对 象的逻辑块中的有效蔟。
(B )数据管理单元120参考轨道管理表30的FS簇的数目30f的字 段,寻找在FS中该簇所属于的轨道具有多少个有效蔟。
(C)当该轨道中的有效簇的数目等于或大于预定阈值(例如,2"的 50%)时,数据管理单元120将该轨道设定为清理至MS的候选者。
5. 数据管理单元120将应被清理至MS 11的轨道写入MSIB 11a中。
6. 当遗留有清理轨道时,数据管理单元120进一步执行至MSIB 11a 的清理。
7. 当即使在上文的处理2至处理4之后,作为清理对象的逻辑块中仍 存在有效簇时,数据管理单元120将该逻辑块移动至IS13。
当执行从FS 12至MSIB lla的清理时,紧接在清理之后,数据管理 单元120执行MS 11中的CIB处理(步骤S350 )。IS 13中的CIB处理
解释IS 13中的CIB处理(步骤S360)。根据从FS 12至IS 13的块 移动而将逻辑块添加至IS13。然而,根据逻辑块的添加,逻辑块的数目超 过可在多个逻辑块所形成的IS 13中进行管理的块的数目的上限。当逻辑 块的数目超过上限时,在IS 13中,首先,数据管理单元120执行一个到 多个逻辑块至MS ll的清理,然后执行IS压紧。具体地,数据管理单元 120执行下文所解释的过程。
1. 数据管理单元120以轨道中的有效蔟的数目x有效蔟系数对IS 13 中所包括的轨道进行分类,收集具有大乘积值的2^个轨道(对于两个逻 辑块),且将这些轨道清理至MSIBlla。
2. 当具有最小数目的有效蔟的2i"个逻辑块的有效簇的总数目为例如 等于或大于作为预定设定值的2k个(对于一个逻辑块)时,数据管理单元 120重复上文所解释的步骤。
3. 在执行清理之后,数据管理单元120按照从具有最小数目的有效簇 的逻辑块开始的顺序收集2k个簇,且执4亍IS13中的压紧。
4. 数据管理单元120将压紧源处的逻辑块当中不包括有效蔟的逻辑块 作为无效的空闲块FB返回。
当执行从IS 13至MSIB lla的清理时,紧接在清理之后,数据管理单 元120执行MS 11中的CIB处理(步骤S370 )。
图20为部件当中的数据的流动中的输入与输出的組合的图,且指示作 为触发器引起数据的流动的原因。基本上,根据从WC21的簇清理而将数 据写入FS12中。然而,当对于从WC21至FS12的清理偶然有必要进行 簇内扇区填充(簇填充)时,复制来自FS12、 IS13和MS11的数据。在 WC 21中,通过^_用WC簇管理表25的标记中的扇区位置位映像25b识 别相关簇地址中存在还是不存在20^个扇区,有可能以扇区(512B)为单 位执4亍管理。另一方面,FS 12和IS 13的管理单位为簇,且MS 11的管 理单位为轨道,其中FS12和IS13为NAND存储器IO中的功能部件。以 这种方式,NAND存储器10中的管理单位比扇区大。因此,在从WC 21将数据写入NAND存储器10的过程中,当在NAND存储器10中存在所 具有的簇地址与将要写入的数据的簇地址相同的数据时,有必要在进行这 样的合并之后将数据写入NAND存储器10中,所述合并是将从WC 21写 入NAND存储器10中的蔟中的扇区与NAND存储器10中存在的相同簇 地址中的扇区进行合并。
该处理为图20中所示的簇内扇区填充处理(簇填充)和轨道内扇区填 充(轨道填充)。除非执行这些种类的处理,否则不能读出正确数据。因 此,当数据从WC21清理至FSIB12a或MSIBlla时,参考WC簇管理 表25且参考与将要清理的簇相对应的标记中的扇区位置位映像25b。当并 非所有的扇区位置位映像25b都为"1"时,执行蔟内扇区填充或轨道内扇 区填充,用于与NAND存储器10中所包括的相同簇或相同轨道中的扇区 合并。DRAM20的工作区被用于该处理。将数据从DRAM20的工作区写 入MSIBlla中或写入FSIB 12a中。
在IS 13中,基本上,根据从FS 12的块清理(移动)而写入数据, 或者根据IS中的压紧而写入数据。在MS11中,可从所有区段写入数据。 当写入数据时,在MS11中,因为仅可以以轨道为单位写入数据,所以可 引起归因于MS本身的数据的填充。当以轨道为单位写入数据时,还根据 被动合并而写入其它块中的片段数据。此外,在MS11中,还根据MS压 紧而写入数据。在^L动合并中,当执行从WC21、 FS 12或IS 13这三个部 件之一至MS 11的轨道清理或逻辑块清理(对于2j个轨道的清理)时,在 DRAM 20的工作区中收集一个部件中的作为清理对象的轨道(或逻辑块) 中所包括的两个部件中的有效蔟以及MSll中的有效簇,并将这些有M 从DRAM 20的工作区写入MSIB 1 la中作为用于一个轨道的数据。
更详细解释该实施例。图21是与图6中所示的NAND存储器10的写 入处理有关的详细功能配置的图。省略冗余解释。
FS配置
FS单元12Q包括FSIB 12a和FS 12。 FS 12具有用于大量逻辑块的容 量。以逻辑块为单位管理FIFO结构。从WC21清理的数据被输入其中的
45FS输入緩冲器(FSIB ) 12a设置在FS 12的前级处。FSIB 12a包括FS满 块緩冲器(FSFB) 12aa和FS额外记录緩沖器(FS额外记录IB) Uab。 FSFB 12aa具有用于一个至多个逻辑块的容量。FS额外记录IB 12ab也具 有用于一个至多个逻辑块的容量。当从WC21清理的数据是用于一个逻辑 块的数据时,执行以逻辑块为单位向FSFB12aa的数据复制。当该数据不 是用于一个逻辑块的数据时,执行以逻辑页为单位向FS额外记录IB 12ab 的额外写入。 IS配置
IS单元13Q包括IS13、 IS输入緩沖器(ISIB) 13a和IS压紧緩冲器 13c。 ISIB 13a具有用于一个至多个逻辑块的容量,IS压紧緩沖器13c具有 用于例如一个逻辑块的容量,并且IS 13具有用于大量逻辑块的容量。在 IS13中,与在FS12中一样地,以逻辑块为单位管理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的移动,IS13的块的数目超过预定上限时,执行从IS13至MS单元 11Q的数据清理和IS压紧处理,且使IS单元13Q的块的数目返回为规定 值。
MS配置
MS单元11Q包括MSIB lla、轨道前级緩冲器(TFS) lib,以及 MS 11。 MSIB lla包括一个至多个(在该实施例中为四个)MS满块输入 緩冲器(在下文中为MSFB) llaa和一个至多个(在该实施例中为两个) 额外记录输入緩冲器(在下文中为MS额外记录IB )11ab。一个MSFB llaa 具有用于一个逻辑块的容量。MSFB llaa用于以逻辑块为单位进行的写 入。 一个MS额外记录IB llab具有用于一个逻辑块的容量。MS额外记录IB llab用于以轨道为单位进行的额外写入。
将从WC 21清理的逻辑块、从FS 12清理的逻辑块或从IS 13清理的 逻辑块复制至MSFB llaa。将复制至一个MSFB llaa的逻辑块直接移动 至MS 11而不移动通过TFS llb。在逻辑块被移动至MS 11之后,将空闲 块FB分配为MSFBllaa。
以额外记录的方式将从WC 21清理的轨道或从FS 12清理的轨道复制 至MS额外记录IB llab。将该MS额外记录IB llab中以轨道为单位额外 记录的满逻辑块移动至TFSllb。在逻辑块被移动至TFS llb之后,将空 闲块FB分配为MS额外记录IB llab。
如上文所解释的,TFS llb为这样的緩冲器,其具有用于大量逻辑块 的容量,且具有插入在MS额外记录IB llab与MS 11之间的FIFO结构。 将MS额外记录IB llab中以轨道为单位额外记录的满逻辑块移动至具有 FIFO结构的TFS llb的输入侧。从MS压紧緩冲器llc移动根据MS 11 中的压紧处理而形成的逻辑块。MS压紧緩冲器llc为用于执行MS 11中 的压紧的緩冲器。当根据MS 11中的压紧处理而将MS中的轨道写入MS 压紧緩冲器llc中时,执4i^皮动合并,该被动合并用于经由DRAM 20的 工作区将WC 21、 FS单元12Q和IS单元13Q中的有效蔟(其包括在作 为写入对象的轨道中)写入MS压紧緩沖器llc中。在该实施例中,登记 于MSIB 11a和TFS lib中的逻辑块不包括在压紧对象中。
图22是数据管理单元120的更详细的功能配置的图。如上文所解释的, 数据管理单元120包括DRAM层管理单元120a,其执行对存储于DRAM 20中的数据的管理;逻辑NAND层管理单元120b,其执行对存储于NAND 存储器IO中的数据的管理;以及物理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管理表)2加以及现用 块(active block)管理表(AB管理表)230,且使用这些管理表来执行对 NAND存储器10的物理NAND层的管理。 物理NAND层
首先,解释物理NAND层。如上文所解释的,在32-位双速模式中, 并行地致动四个通道(ch0、 chl、 ch2和ch3),且通过使用NAND存储 器芯片的双速模式来执行擦除、写入和读出。如图23中所示,将四个并行 操作元件10a至10d中的NAND存储器芯片中的每一个划分为例如平面0 和平面1的两个分区。划分的数目不限于二。平面0和平面1包括彼此独 立的周边电路(例如,行解码器、列解码器、页緩冲器和数据高速緩冲存 储器),且可基于从NAND控制器112输入的命令而同时执行擦除、写入 和读出。在NAND存储器芯片的双速模式中,通过并行地控制平面0和平 面1来实现高速写入。
物理块大小为512 kB。因此,在32-位X5U4模式中,根据该四个通道
kBx4x2=4MB。因此,在32-位双速模式中,八个平面并行地操作。
图24是逻辑至物理转译表50的另一实例的图。在图24中所示的逻辑 至物理转译表50中,将擦除时间50e的字段添加至图17中所示的逻辑至 物理表50,该擦除时间50e指示擦除与逻辑块ID 50a对应的逻辑 的时间。 关于擦除时间50e,例如,仅须使用通过测量对NAND存储器芯片中的逻 辑块应用擦除操作的次数而获得的值,或者使用NAND控制器112的激励 时间。擦除时间50e用于稍后所解释的FB管理表220中的空闲块FB管理。 BB管理表200是用于以物理块(512 kB )为单位管理坏块BB的表。 如图25中所示,BB管理表200以二维阵列格式形成,其具有例如针对每 4 (通道)x2 (平面/通道)个通道内平面的关于物理块的(物理块的数目/平面)x (NAND存储器芯片的数目/一个并行操作元件)的信息。在BB 管理表200的每一条目中,存储用于每一个物理块的物理块ID 200a。
在该实施例的情况下, 一个NAND存储器芯片具有2GB的大小。将 物理块ID"0,,至"2047"分配给第一芯片的平面0。将物理块ID"2048"至 "4095,,分配给第一芯片的平面1。当将使用期间所产生的坏块BB登记于 BB管理表200中时,物理NAND层管理单元120c紧接在与坏块BB对应 的通道内平面ID (ID洲至HM7)的最后有效条目之后添加坏块BB而不 对坏块BB进行排序。
RB管理表210是用于管理以八个物理块为单位(512 kB )形成4 MB 逻辑块时剩余的块(保留块RB )的表。RB管理表210以与BB管理表200 相同的格式进行管理。通过针对与块对应的通道内平面ID中的每一个以 FIFO来管理块,择优地从最早登记的保留块开始依次使用保留块。
FB管理表220是用于以4 MB逻辑块单位管理当前未被分配应用的空 闲块FB的表,且是以空闲块FB的产生顺序排序的FIFO格式的列表。逻 辑块ID存储在每一条目中。将根据压紧处理等而返回至FB管理表220的 空闲块FB添加至列表的尾端。通过返回列表的顶块,执行空闲块FB分配。
如图26中所示,FB管理表以返回FIFO列表(return FIFO list)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是从空闲块FB分配的被分配应用的逻辑块(现用块 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包括例如第一列第三行、第二列第二行、第三列第二行、 第四列第二行、第五列第二行、第六列第二行、第七列第二行和第八列第 三行中的八个物理块。被虛线BL1包围的逻辑块L1包括例如第一列第四 行、第二列第三行、第三列第三行、第四列第三行、第五列第三行、第六 列第三行、第七列第三行和第八列第四行中的八个物理块。
此后,例如,假定逻辑块LI的第四列第三行中的物理块作为不能用 作存储区的坏块BB而登记在BB管理表200中。物理NAND层管理单元120c检测到该登记,且从RB管理表210选择与已登记为坏块BB的物理 块相同的通道和平面中的保留块RB来作为用于坏块BB的替换候选者。 在图27的情况下,选择邻近坏块BB的第四列第四行中的物理块(保留块 RB)作为用于第四列第三行中的坏块BB的替换候选者。
物理NAND层管理单元120c遍及逻辑至物理转译表50的与逻辑块 LI对应的逻辑块ID 50a的条目进行搜寻,且将该条目中的物理块ID 50b 的字段中所包括的八个物理块ID当中与第四列第三行对应的坏块BB的物 理块ID改变为与从RB管理表210选择的第四列第四行中的保留块RB对 应的物理地址ID。因此,此后,逻辑块L1包括被交替长虛线与短虚线包 围的第一列第四行、第二列第三行、第三列第三行、第四列第四行、第五 列第三行、第六列第三行、第七列第三行和第八列第四行中的八个新物理 块的组合。假定逻辑块LI的逻辑块ID为"Ll"。
此后,物理NAND层管理单元120c锁定来自FB管理表220的新空 闲块FB。假定被锁定的空闲块FB的逻辑块ID为"L3"。物理NAND层管 理单元120c使用逻辑至物理转译表50来执行逻辑块ID的替换。具体地, 物理NAND层管理单元120c使与具有逻辑块ID"L3,,的新空闲块FB相关 联的八个物理块与逻辑块ID"L1"相关联,且使被交替长虛线与短虛线包围 的第一列第四行、第二列第三行、第三列第三行、第四列第四行、第五列 第三行、第六列第三行、第七列第三行和第八列第四行中的八个物理块与 逻辑块ID"L3"相关联。还根据逻辑块ID的替换而替换擦除次数50c、读 出次数50d和擦除时间50e。此后,物理NAND层管理单元120c将逻辑块 ID"L3"登记在FB管理表220中。
另一方面,当不存在可被坏块BB替换的保留块RB时,物理NAND 层管理单元120c执行下文所解释的处理。例如,假定将第四列第三行中的 物理块作为坏块BB登记在BB管理表200中且在与坏块BB相同的通道和 相同的平面中不存在保留块RB。在这种情况下,首先,物理NAND层管 理单元120c将逻辑块LI中除第四列第三行之外的第一列第四行、第二列 第三行、第三列第三行、第五列第三行、第六列第三行、第七列第三行和第八列第四行中的七个物理块登记在RB管理表210中。此后,以与上文 所解释的方式相同的方式,物理NAND层管理单元120c锁定来自FB管 理表220的新空闲块FB,且如上文所解释地执行逻辑块ID的替换,然后 将从FB管理表220所获取的逻辑块ID设定为不可用。
以这种方式,即使当产生坏块BB时,物理NAND层管理单元120c 也执行逻辑块ID的替换。因此,用于逻辑NAND层管理单元120b中的逻 辑块ID在产生坏块BB之前和之后不改变。因此,即使当多个物理块中的 至少一个被登记为坏块时,LBA逻辑地址与逻辑块之间的对应关系也不改 变。可以防止逻辑NAND层管理单元120b中的管理表的重写的开销。
解释32-位双速模式中的擦除处理。每当以逻辑块为单位擦除NAND 存储器IO中的数据时,物理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,其用于管理^皮分配为MSFBllaa、 MS 额外记录IB llab和TFS lib的逻辑块ID;按有效轨道数目的逻辑块ID 列表62,其用于存储具有小数目的有效轨道的逻辑块ID,以便增加MS 压紧期间的排序处理的速度;以及区63和64,其用于管理作为状态信息 的逻辑块的最大数目MBL和有效逻辑块的数目VBL。
在MS结构管理表60中,为MSFB llaa、 MS额外记录IB llab和 TFS lib准备具有所需数目的条目的固定字段61a至61c。逻辑块ID记录 在固定字段61a至61c中。用于TFS lib的字段61c具有链接列表结构。 执行用于具有FIFO结构的TFS lib的类似FIFO的管理。
在按有效轨道数目的逻辑块ID列表62中,为具有一个有效轨道的逻 辑块准备所需数目的条目,为具有两个有效轨道的逻辑块准备所需数目的条目,...,且为具有2i-l个有效轨道的逻辑块准备所需数目的条目。逻辑
块ID记录在这些条目中的每一个中。当搜寻MS逻辑块管理表35的有效 轨道的数目35c的字段时,总是将按有效轨道数目的逻辑块ID列表62更 新至最新状态。在按有效轨道数目的逻辑块ID列表62中不输入作为MSIB lla和TFS lib而登记在MS緩冲器管理表61中的逻辑块。
在用于作为状态信息的逻辑块的最大数目MBL的固定字段63中,记 录逻辑块的最大数目MBL,其作为允许MS单元11Q获取的逻辑块的数 目。在用于作为状态信息的有效逻辑块的数目VBL的固定字段64中,记 录有效逻辑块的数目VBL,其作为当前作为MS单元IIQ所管理的逻辑块 的数目。
图29中所示的FS/IS结构管理表65具有用于管理FS单元12Q和IS 单元13Q的结构的区。FS/IS结构管理表65包括FS输入緩冲器管理表 66,其用于管理4皮分配为FSIB 12a和FS额外记录IB 12ab的逻辑块ID; FSFIFO管理表67,其用于管理FS 12的FIFO结构;IS输入緩冲器管理 表68,其用于管理被分配为ISIB 13a的逻辑块ID;以及ISFIFO管理表 69,其用于管理IS13的FIFO结构。
在FS输入緩冲器管理表66中,为FSFB 12aa和FS额外记录IB 12ab 准备具有所需数目的条目的固定字段66a和66b。作为FS/IS逻辑块管理 表42的索引的FS/IS块ID42a被登记在固定字段66a和66b中。在IS输 入緩冲器管理表68中,为ISIB13a准备具有所需数目的条目的固定字段。 FS/IS块ID 42a被登记在固定字段中。在FSFIFO管理表67中,在固定字 段中准备用于形成FS 12的FIFO结构的逻辑块的数目的条目。FS/IS块ID 42a被登记在FSFIFO管理表67的固定字段中。在ISFIFO管理表69中, 在固定字段中准备用于形成IS 13的FIFO结构的逻辑块的数目的条目。 FS/IS块ID 42a被登记在固定字段中。
解释在执行参看图19所解释的划分成两个阶段(WCF处理和CIB处
理表的更新处理。此处,执行从WC21至MS额外记录IBllab的以轨道为单位进行的复制。DRAM层管理单元120a参考这样的轨道条目中的路-线位映像24c而从顶部开始依次检查WC轨道管理表24,在所述轨道条目 中登记有与决定清理的轨道对应的逻辑轨道地址24a,将WC簇管理表25 中与路-线位映像24c的mxn个条目中具有有效位"l"的条目对应的条目中 的状态标志25a从有效改变成等待清理至NAND,且向逻辑NAND层管理 单元120b通知清理请求。
另一方面,逻辑NAND层管理单元120b参考图28中所示的MS结构 管理表60的MS緩冲器管理表61和图14中所示的MS逻辑块管理表35 而检查MS额外记录IB llab的状态。当从MS緩沖器管理表61的用于 MS额外记录IB的字段61b判断出MS额外记录IBllab已经存在时,逻 辑NAND层管理单元120b从MS逻辑块管理表35的有效轨道的数目35c 的字段获取与用于MS额外记录IB的字段61b中所登记的逻辑块ID的可 写入的轨道的数目有关的信息,且向DRAM层管理单元120a通知所获取 的可写入的轨道的数目。
当从MS緩冲器管理表61的用于MS额外记录IB的字段61b判断出 MS额外记录IB llab不存在时,逻辑NAND层管理单元120b向物理 NAND层管理单元120c发出用于获取空闲块FB的请求,且获取空闲块 FB以及被分配为FB的逻辑块ID。逻辑NAND层管理单元120b向DRAM 层管理单元120a通知所获取的空闲块FB的可写入轨道的数目2j。
DRAM层管理单元120a通过从逻辑NAND层管理单元120b通知的 可写入轨道的数目而从WC轨道管理表24选择轨道,且判断是否执行轨 道内扇区填充和被动合并。此处,假定不必执行轨道内扇区填充。为了检 查将要清理的轨道是否存在于NAND存储器10中且查明是否执行被动合 并,DRAM层管理单元120a向逻辑NAND层管理单元120b通知所需的 信息(例如,将要清理的逻辑轨道地址)。
当逻辑NAND层管理单元120b接收到该通知时,逻辑NAND层管理 单元120b遍及作为轨道管理表30的索引的逻辑轨道地址30a进行搜寻, 且当必要时,进一步遍及FS/IS管理表40进行搜寻,搜寻与将要清理的逻辑轨道地址相同的逻辑轨道是否存在于NAND存储器10侧上,且向物理 NAND层管理单元120c通知该搜寻的结果。因此,物理NAND层管理单 元120c执行涉及被动合并或不涉及被动合并的从WC 21至MS额外记录 IB llab的清理。
当从物理NAND层管理单元120c通知从WC 21至MS额外记录IB llab的清理结束时,如果从物理NAND层管理单元120c获取新空闲块FB 作为MS额外记录IB llab,则逻辑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 llab 的轨道相对应的逻辑轨道地址30a的条目中。
当不执行被动合并时,如上文所解释的,逻辑NAND层管理单元120b 将所需的信息登记在轨道管理表30的对应逻辑轨道条目中。逻辑NAND 层管理单元120b将关于从WC 21清理的新轨道的数据登记在与MS逻辑 块管理表35的已写入的逻辑块ID相对应的条目中。关于MS逻辑块管理 表35中的登记,存在例如作为轨道管理表30的索引的与存储在MS逻辑 块中的轨道对应的逻辑轨道地址(轨道管理指针35b)的更新、有效轨道 的数目35c的更新,以及可写入的顶轨道35d的更新。
当假定执行WC 21和MS 11的被动合并时,更新轨道管理表30中与 合并源轨道对应的逻辑轨道地址30a的条目中的所需的信息(例如,逻辑 块ID30c和逻辑块内轨道位置30d)。具体地,将逻辑块ID 30c从逻辑块 ID 30c存在于MS 11中时的逻辑块ID改变为与MS额外记录IB llab对 应的逻辑块ID。逻辑块内轨道位置30d根据额外记录状态而改变。
此夕卜,数据管理单元120删除MS逻辑块管理表35中与合并源处的逻辑块对应的条目中的轨道管理指针35b的字段的相关区段,使有效轨道的 数目35c递减,且更新MS结构管理表60的按有效轨道数目的逻辑块ID 列表62。当与合并源处的逻辑块对应的条目中的有效轨道的数目35c通过 该递减而减少至0时,数据管理单元120使MS结构管理表60的有效逻辑 块的数目VBL递减,且将该不可写入的无效空闲块FB返回至物理NAND 层管理单元120c。数据管理单元120将与该返回的逻辑块对应的条目的有 效标志35e设定为无效。此外,以与上文所解释的方式相同的方式,数据 管理单元120将关于从WC 21清理的新轨道的数据登记在MS逻辑块管理 表35中。
当从物理NAND层管理单元120c通知从WC 21至MS额外记录IB llab的清理结束时,逻辑NAND层管理单元120b向DRAM层管理单元 120a通知清理的结束。DRAM层管理单元120a接收该通知,且将WC蔟 管理表25中与属于被清理轨道的所有簇对应的条目中的状态标志25a设定 为无效(可用)。此后,可以在这些条目中进^f亍写入。关于与WC轨道管 理表24中的被清理的轨道对应的列表,例如,改变或删除上一个列表的下 一个指针24d,且使该列表无效。
解释CIB处理。当WCF处理结束时,执行CIB处理,该CIB处理 包括用于将FSIB 12a的通过WCF处理而写入的数据移动至FS 12的处理 以及用于将MSIB 11 a的通过WCF处理而写入的数据移动至MS 11或TFS lib的处理。下面参看图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 llaa或MS额外记录IB llab中是否存在 其所有轨道都净皮写入的一个或多个满块(步骤S400 )。当在MSIB 11a中存在一个或多个满块时,逻辑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 llaa 中的满逻辑块移动至MS 11,且将MS额外记录IB llab中的满逻辑块移 动至TFSllb (步骤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压紧处理,如上文所解释的,存在两种类型,即,2J轨道MS 压紧和小于2i的轨道MS压紧。在2i轨道MS压紧中,使用MS压紧緩冲 器llc。将压紧之后的逻辑块移动至TFS lib的顶部。在小于2J的轨道 MS压紧中,以轨道单位将逻辑块复制至MS额外记录IB llab。
首先,逻辑NAND层管理单元120b执行2J轨道MS压紧,用于参考 MS结构管理表60的按有效轨道的数目的逻辑块ID列表62,而从具有小 数目的有效轨道的逻辑块收集2j个轨道,且将所收集的2j个轨道复制至从物理NAND层管理单元120c获取的MS压紧緩冲器11c作为可重写的空 闲块FB。
具体地,逻辑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获取 的空闲块FB的逻辑块ID (其用作MS压紧緩冲器11c )登记为MS逻辑 块管理表35中的新条目,且将所需的信息登记在该条目中的各个字段中。 关于登记,存在轨道管理指针35b的更新、有效轨道的数目的更新、可写 入的顶轨道35d的更新等等。
数据管理单元120将用作MS压紧緩冲器11c的逻辑块ID登记在MS 结构管理表60的MS緩冲器管理表61的用于TFS的字段61c的FIFO结 构(链接列表)的顶部处,以将通过包括作为MS压紧的结果的有效2i个 轨道的一个逻辑块配置的MS压紧緩冲器11c移动至TFS lib的顶部(最 旧位置)。当TFSllb已满时,将顶部的最旧块移动至MSll。
随后,数据管理单元120使MS11中在压紧源处的旧轨道数据无效。 具体地,数据管理单元120删除MS逻辑块管理表35中与压紧源处的逻辑 块对应的条目中的轨道管理指针35b的字段的相关段,使有效轨道的数目 35c递减,且更新MS结构管理表60的按有效轨道的数目的逻辑块ID列 表62。当有效轨道的数目35c通过该递减而减少至0时,数据管理单元120
58使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执行小于2j的轨道MS压紧。
在小于2j的轨道MS压紧中,逻辑NAND层管理单元120b将作为压紧对象的数目小于2i个轨道的轨道复制至MS额外记录IB llab,以产生通过无效的2j个轨道形成的无效逻辑块。逻辑NAND层管理单元120b将所产生的无效逻辑块返回至物理NAND层管理单元120c,以减少有效逻辑块的数目VBL。省略对用于小于2j的轨道MS压紧的管理表的更新的解释。
FS 12中的CIB处理
详细解释图19中的步骤S340处所解释的FS 12中的CIB处理。逻辑NAND层管理单元120b从FS/IS逻辑块管理表42的有效簇的数目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判断从FSFIFO管理表67计算的逻辑块的数目是否超过预先设定的逻辑块的最大数目BLfsmax。
作为该比较的结果,当所计算的逻辑块的数目超过逻辑块的最大数目BLfsmax时,逻辑NAND层管理单元120b判断出可写入的空闲块FB不足。逻辑NAND层管理单元120b根据该点处的状态而执行例如一次两个逻辑块至MS 11的清理处理(步骤S460)和一次一个逻辑块至IS 13的清理处理(步骤S500)。当在步骤S450处的判断中FS 12未满时,逻辑NAND层管理单元120b在此处结束处理,而不执行从FS 12至MSIB 11a的清理处理和从FS 12至ISIB 13a的清理处理。
在从FS12至MSIBlla的清理处理中,首先,逻辑NAND层管理单元120b判断是否存在从FS 12直接移动至MSIB 11a而不移动通过IS单元13Q的逻辑块(步骤S455)。具体地,逻辑NAND层管理单元120b逐个依次检查FS 12的FIFO的顶部的最旧逻辑块中的簇,且参考轨道管理表30的FS簇的数目30f的字段而搜寻在FS单元12Q中这些簇所属的轨道具有多少个有效蔟。当轨道中的有效簇的数目等于或大于预定阈值(例如,2"")时,逻辑NAND层管理单元120b将逻辑轨道设定为决定清理至MSIB 11a的轨道。
通过下面解释的路径(route)来执行该搜寻。1. 逻辑NAND层管理单元120b从FS/IS结构管理表65的FSFIFO管理表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针对两个逻辑块收集具有等于或大于预定阈值(例如,2"")的轨道内有效簇的数目的轨道,且将针对两个逻辑块所收集的轨道清理至MSIB lla的MSFB llaa (步骤S460)。在该清理中,关于被清理的轨道中不存在于FS 12中的簇,逻辑NAND层管理单元120b执行用于读出来自WC21、 IS单元13Q和MS 11的簇且合并这些簇的被动合并。
然而,当对于两个逻辑块而言不存在决定清理至MSIB lla的轨道时,逻辑NAND层管理单元120b将一个逻辑块清理至MSIB lla的MSFBllaa,且额外以轨道为单位将不足一个逻辑块的轨道记录并写入MS额外记录IBllab中(步骤S460)。类似地,当对于一个逻辑块而言不存在决定清理至MSIB lla的轨道时,逻辑NAND层管理单元120b额外以轨道为单位将不足一个逻辑块的轨道记录并写入MS额外记录IB llab中(步骤S460)。此后,当FIFO结构的FS12的顶逻辑块中没有有效蔟留下时,逻辑NAND层管理单元120b将顶逻辑块作为无效逻辑块返回至物理NAND层管理单元120c。
MS 11中的CIB处理(图19中的步骤S350)
当以这种方式执行从FS至MSIB lla的清理时,再次执行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的清理的条件(步骤S4卯)。具体地,在从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结构的FS12为满的,则根据满块从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判断从ISFIFO管理表69计算的逻 辑块的数目是否超过预先设定的逻辑块的最大数目BLismax。
作为该比较的结果,当所计算的逻辑块的数目超过逻辑块的最大数目 BLismax时,逻辑NAND层管理单元120b判断出可写入的空闲块FB不 足,且将例如两个逻辑块的轨道从IS 13清理至MSIB 11a的MSFB llaa (步骤S540)。当在步骤S530处的判断中IS 13未满时,逻辑NAND层 管理单元120b将ISIB 13a中的满逻辑块移动至IS 13b而不执行至MSIB lla的清理处理(步骤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 )时,
63在步骤S710处的下一个轨道搜寻中,逻辑NAND层管理单元120b返回至 顶条目(图12中的轨道O)。
在该搜寻中,参考轨道管理表30的条目中的IS簇的数目30g的字段 (相关逻辑轨道中的有效蔟的数目),当有效蔟存储在IS13的条目中时, 逻辑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'+1个逻辑轨道(步骤S760)。新添加的块内轨道列表是 与在图30中的步骤S500处从FS 12清理至IS单元13Q的块(在FS/IS 结构管理表65的IS输入緩冲器管理表68中输入)中所包括的轨道有关的 列表。
在第一循环中,逻辑NAND层管理单元120b使用该两个列表选择2i+1 个轨道作为清理候选者。在该选择中,如上文所解释的,使用通过使用轨 道中的有效蔟的数目和有M系数而获得的选择参考值(计分值)S。
计分值S-轨道中的有效蔟的数目x有效蔟系数
有效簇系数是根据在MS单元11Q中轨道是否存在于其中存在无效轨 道的逻辑块中而进行加权的数字。该轨道存在时的数字比该轨道不存在时的数字大。
可通过查看轨道管理表30的IS簇的数目30g的字段而获M效蔟的 数目。可通过查看通过轨道管理指针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将针对两个逻辑 块的选定的轨道(即,2^个轨道)清理至MSIB lla的MSFB llaa (步 骤S540)。在该清理中,关于将要清理的轨道当中不存在于IS单元13Q 中的簇,执行用于读出来自WC21、 FS单元12和MS11的簇且合并这些簇的被动合并。在上述描述中,根据基于有效蔟的数目和指示MS中是否 存在多孔块的系数的计分值S而选择待清理的轨道。然而,可仅根据有效 簇的数目来选择待清理的轨道。
MS中的CIB处理(图19中的步骤S370)
当以这种方式执行从IS 13至MSIB lla的清理时,再次执行MS 11 中的CIB处理(步骤S560 )。步骤S560处的MS 11中的CIB处理与MS 11中的第一次的CIB处理相同(步骤S400至S420 )。因此,省略冗余解 释。
IS中的CIB处理
逻辑NAND层管理单元120b判断是否应再次执行从IS 13至MSIB lla的清理(步骤S570)。逻辑NAND层管理单元120b使用MS逻辑块 管理表35的字段和FS/IS逻辑块管理表42的有效蔟的数目42d等等对步 骤S540处的清理之后的IS 13中的逻辑块从具有最小数目的有效蔟的逻辑 块开始依次进行排序。当具有最小数目的有效簇的两个逻辑块的有效簇的 总数目等于或大于作为预定设定值的2k(针对一个逻辑块)时,逻辑NAND 层管理单元120b判断出满足从IS 13至MSIB lla的清理的条件(步骤 S570)。
当满足从IS 13至MSIB lla的清理的M时,逻辑NAND层管理单 元120b使该过程移至步骤S540,且执行图31中的步骤S700至S750和 S770,以再次执行上文所解释的针对两个逻辑块的清理处理。只要步骤 S570处的判断为是,逻辑NAND层管理单元120b即重复地执行针对两个 逻辑块的从IS 13至MSIB lla的清理处理和MS 11中的CIB处理。当步 骤S570处的判断为否时,逻辑NAND层管理单元120b执行IS13中的压 紧处理(步骤S5別)。
在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的清理的M时, 逻辑NAND层管理单元120b使该过程移至步骤S500,且再次重复该过程。 在IS压紧处理结束之后,当判断出不满足从FS 12至ISIB 13a的清理的 M时,逻辑NAND层管理单元120b结束当前写入处理。以上内容为写 入处理的细节。
如上文所解释的,在该实施例中,充当输入緩冲器的FSIB12a设置在 FS 12的前级处,充当输入緩冲器的ISIB 13a设置在IS 13的前级处,且 充当输入緩冲器的MSIB llai殳置在MS 11的前级处。将写入处理划分成 以下两个阶段:WCF处理,其用于执行用于从WC 21至FSIB 12a或MSIB lla的数据清理的处理;以及CIB处理,其包括从FSIB12a至FS12的清 理、从ISIB 13a至IS 13的清理、从MSIB 11a至MS 11的清理、从FS 12 至ISIB 13a的清理、从IS13至MSIBlla的清理、MS压紧和IS压紧。 换句话说,提供输入緩冲器(FSIB 12a、 ISIB13a,以及MSIB 11a),且 通过输入緩沖器而将写入阶段划分成以下两个阶段从WC 21至NAND 存储器10的写入处理(WCF处理)和NAND存储器中的数据移动处理
(CIB处理)。因此,即使当NAND存储器中的数据移动处理(CIB处理) 正在进行时,也可以立即执行从WC 21至NAND存储器10的写入处理
(WCF处理)而没有延迟。可以确保从WC 21至NAND存储器10的写 入处理的等待时间(latency)。
因为将写入状态划分成这样的两个阶段,所以容易并行地对WCF处
67理与CIB处理进4亍流水线作业和执行。当并行地执行WCF处理与CIB处 理时,可以从主机设备侧隐藏CIB处理的处理时间且进一步增加写入处理 的速度。
根据本发明,可以提供一种可减少用于从高速緩沖存储器至闪速存储 器的数据清理的处理时间的存储器系统。
本发明不限于上文所描述的这些实施例。因此,可在不偏离本发明的 范围的情况下进行各种修改。
此外,上文所描述的实施例包括各种具有创造性的組成部分。即,可 通过分布或整合任意所揭示的组成部分而对本发明进行各种修改。
例如,可通过从这些实施例中所揭示的所有组成部分当中省略任意组 成部分而进行本发明的各种修改,只要可解决本发明要解决的问题且可获 得将要通过本发明获得的优点即可。
此外,在上述实施例中解释簇大小乘以等于或大于二的正整数等于 逻辑页大小。然而,本发明并不因此而受限制。
例如,簇大小可与逻辑页大小相同,或可为通过组合多个逻辑页而使 逻辑页大小乘以等于或大于二的正整数所获得的大小。
此外,簇大小可与用于在诸如个人计算机的主机设备1上运行的OS (操作系统)的文件系统的管理单位相同。
此外,在上述实施例中解释轨道大小乘以等于或大于二的正整数等 于逻辑块大小。然而,本发明并不因此而受限制。
例如,轨道大小可与逻辑块大小相同,或可为通过组合多个逻辑块而 使逻辑块大小乘以等于或大于二的正整数所获得的大小。
如果轨道大小等于或大于逻辑块大小,则MS压紧处理不是必要的。 因此,可省略TFSllb。
权利要求
1.一种存储器系统,包括作为高速缓冲存储器的第一存储区,其包括在易失性半导体存储器中;第二存储区和第三存储区,其包括在非易失性半导体存储器中,在所述第二存储区和所述第三存储区中,通过页单位执行数据读取和写入,且通过块单位执行数据擦除,所述块单位的大小为所述页单位的两倍或更大的自然数倍;第一输入缓冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第一存储区与所述第二存储区之间进行缓冲;第二输入缓冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第一存储区与所述第三存储区之间进行缓冲;以及控制器,其通过与一个或多个块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区以及所述第一输入缓冲器和所述第二输入缓冲器,其中所述控制器执行第一处理,其用于以扇区单位将多个数据写入所述第一存储区中;第二处理,其用于以第一管理单位将存储在所述第一存储区中的数据清理至所述第一输入缓冲器,所述第一管理单位的大小为所述扇区单位的两倍或更大的自然数倍;第三处理,其用于以第二管理单位将存储在所述第一存储区中的数据清理至所述第二输入缓冲器,所述第二管理单位的大小为所述第一管理单位的两倍或更大的自然数倍;第四处理,其用于将所述第一输入缓冲器中所有页都被写入的逻辑块重新定位至所述第二存储区;第五处理,其用于将所述第二输入缓冲器中所有页都被写入的逻辑块重新定位至所述第三存储区;以及第六处理,其用于以所述第二管理单位将存储在所述第二存储区中的多个数据清理至所述第二输入缓冲器。
2. 根据权利要求l的存储器系统,其中当接收到写入请求时,所述控 制器在通过执行所述第 一处理至所述第三处理而写入与所述写入请求相关 联的输入数据的阶段时通知写入的结束。
3. 根据权利要求l的存储器系统,其中当分配给所述第二存储区的逻 辑块的数目超过容许度时,所述控制器执行所迷第六处理。
4. 根据权利要求l的存储器系统,其中所述控制器使所述第二存储区 中的这样的数据无效,该数据与写入所述第一输入緩冲器中的替代数据具 有相同的逻辑地址。
5. 根据权利要求l的存储器系统,其中所述控制器使所述第二存储区 和所述第三存储区中的这样的数据无效,该数据与写入所述第二输入緩冲 器中的替代数据具有相同的逻辑地址。
6. 根据权利要求l的存储器系统,其中当所述第一存储区中的数据所 属于的所述第二管理单位中的数据的数目超过规定值时,所述控制器执行 所述第二处理和所述第三处理中的至少一个。
7. 根据权利要求l的存储器系统,其中所述控制器并行地执行所述第 一至第三处理与所述第四至第六处理。
8. 根据权利要求l的存储器系统,其中所述易失性半导体存储器为 DRAM,所述非易失性半导体存储器为NAND型闪速存储器。
9. 一种存储器系统,包括作为高速緩冲存储器的第 一存储区,其包括在易失性半导体存储器中; 第二存储区和第三存储区,其包括在非易失性半导体存储器中,在所 述第二存储区和所述第三存储区中,通过页单位执行数据读取和写入,且 通过块单位执行数据擦除,所述块单位的大小为所述页单位的两倍或更大 的自然数倍;第一前级緩冲器,其包括在所述非易失性半导体存储器中,配置用于 单独地存储用于所述第二存储区的具有高更新频率的数据;第一输入緩冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第 一存储区与所述第 一前级緩冲器之间进行緩冲;第二输入緩冲器,其包括在所述非易失性半导体存储器中,配置用于 在所述第一存储区与所述第三存储区之间进行緩冲;以及控制器,其通过与 一个或多个块相关联的逻辑块单位将所述非易失性 半导体存储器的存储区分配给所述第二存储区和所述第三存储区、所述第 一前级緩冲器以及所述第 一输入緩冲器和所述第二输入緩沖器,其中 所述控制器执行第一处理,其用于以扇区单位将多个数据写入所述第 一存储区中; 第二处理,其用于以第一管理单位将存储在所述第一存储区中的数据清理至所述第一输入緩冲器,所述第一管理单位的大小为所述扇区单 位的两倍或更大的自然数倍;第三处理,其用于以第二管理单位将存储在所述第一存储区中的 数据清理至所述第二输入緩冲器,所述第二管理单位的大小为所述第一管 理单位的两倍或更大的自然数倍;第四处理,其用于将所述第一输入緩冲器中所有页都被写入的逻 辑块重新定位至所述第一前级緩冲器;第五处理,其用于将所述第二输入緩冲器中所有页都被写入的逻 辑块重新定位至所述第三存储区;第六处理,其用于以所述第二管理单位将存储在所述第二存储区 中的多个数据清理至所述第二输入緩冲器;第七处理,其用于以所述第一管理单位选择存储在所述第二存储 区中的多个有效数据,且将所述有效数据重写在新逻辑块中;以及第八处理,其用于将所述第一前级緩冲器中的逻辑块重新定位至 所述第二存储区。
10. 根据权利要求9的存储器系统,其中当分配给所述第二存储区的逻 辑块的数目超过容许度时,所述控制器执行所述第六处理和所述第七处理。
11. 根据权利要求9的存储器系统,其中所述控制器辅助所述第七处理 而将被有效数据填满的所述新逻辑块分配给所述第二存储区。
12. 根据权利要求9的存储器系统,其中所述控制器通过逻辑块单位管 理具有FIFO结构的所述第 一前级緩冲器。
13. 根据权利要求12的存储器系统,其中所述控制器使所述第一前级 緩冲器和所述第二存储区中的这样的数据无效,该数据与写入所述第一输 入緩冲器中的替代数据具有相同的逻辑地址。
14. 根据权利要求12的存储器系统,其中所述控制器使所述第一前级 緩冲器以及所述第二存储区和所述第三存储区中的这样的数据无效,该数 据与写入所述第二输入緩冲器中的替代数据具有相同的逻辑地址。
15. 根据权利要求12的存储器系统,其中所述控制器执行第十一处理, 所述第十 一处理用于以所述第二管理单位将最早在所述第 一前级緩沖器中 登记的逻辑块中的数据清理至所述第二输入緩冲器。
16. 根据权利要求15的存储器系统,其中当分配给所述第一前级緩沖 器的逻辑块的数目超过容许度时,所述控制器执行所述第十一处理。
17. 根据权利要求15的存储器系统,其中所述控制器对于在执行所述 第十一处理之后有效数据仍存在于其中的逻辑块执行所述第八处理。
18. 根据权利要求9的存储器系统,其中当所述第一存储区中的数据所 属于的所述第二管理单位中的数据的数目超过规定值时,所述控制器执行 所述笫二处理和所述第三处理中的至少 一个。
19. 根据权利要求9的存储器系统,其中所述控制器并行地执行所述第 一至第三处理与所述第四至第八处理。
20. 根据权利要求9的存储器系统,其中所述易失性半导体存储器为 DRAM,所述非易失性半导体存储器为NAND型闪速存储器。
21. —种存储器系统,包括作为高速緩冲存储器的第一存储区,其包括在易失性半导体存储器中; 第二存储区和第三存储区,其包括在非易失性半导体存储器中,在所 述第二存储区和所述第三存储区中,通过页单位执行数据读取和写入且通 过块单位执行数据擦除,所述块单位的大小为所述页单位的两倍或更大的 自然数倍;第一前级緩冲器,其包括在所述非易失性半导体存储器中,配置用于单独地存储用于所述第二存储区的具有高更新频率的数据;第二前级緩冲器,其包括在所述非易失性半导体存储器中,配置用于 单独地存储用于所述第三存储区的具有高更新频率的数据;第一输入緩冲器,其包括在所述非易失性半导体存储器中,配置用于 在所述第 一存储区与所述第 一前级緩冲器之间进行緩沖;第二输入緩冲器,其包括在所述非易失性半导体存储器中,配置用于 在所述第一存储区与所述第二前级緩冲器之间进行緩冲;以及控制器,其通过与一个或多个块相关联的逻辑块单位将所述非易失性 半导体存储器的存储区分配给所述第二存储区和所述第三存储区、所述第 一前级緩冲器和所述第二前级緩冲器、以及所述第 一输入緩冲器和所述第 二输入緩冲器,其中 所述控制器执行第一处理,其用于以扇区单位将多个数据写入所述第一存储区中;第二处理,其用于以第一管理单位将存储在所述第一存储区中的 数据清理至所述第一输入緩冲器,所述第一管理单位的大小为所述扇区单 位的两倍或更大的自然数倍;第三处理,其用于以第二管理单位将存储在所述第一存储区中的 数据清理至所述第二输入緩冲器,所述第二管理单位的大小为所述第一管 理单位的两倍或更大的自然数倍;第四处理,其用于将所述第一输入緩沖器中所有页都被写入的逻 辑块重新定位至所述第 一前级緩沖器;第五处理,其用于将所述第二输入緩冲器中所有页都被写入的逻 辑块重新定位至所述第二前级緩冲器;第六处理,其用于以所述第二管理单位将存储在所述第二存储区 中的多个数据清理至所述第二输入緩冲器;第七处理,其用于以所述第一管理单位选择存储在所述第二存储 区中的多个有效数据,且将所述有效数据重写在新逻辑块中;第八处理,其用于将所述第一前级緩沖器中的逻辑块重新定位至 所述第二存储区;第九处理,其用于以所述第二管理单位选择存储在所述第三存储 区中的多个有效数据,且将所述有效数据重写在新逻辑块中;以及第十处理,其用于将所述第二前级緩沖器中的逻辑块重新定位至 所述第三存储区。
22. 根据权利要求21的存储器系统,其中当分配给所述第二存储区的 逻辑块的数目超过容许度时,所述控制器执行所述第六处理和所述第七处 理。
23. 根据权利要求21的存储器系统,其中所述控制器辅助所述第七处 理而将被有效数据填满的所述新逻辑块分配给所述第二存储区。
24. 根据权利要求21的存储器系统,其中当分配给所述第三存储区的 逻辑块的数目超过容许度时,所述控制器执行所述第九处理。
25. 根据权利要求21的存储器系统,其中所述控制器辅助所述第九处 理而将被有效数据填满的所述新逻辑块分配给所述第二前级緩沖器。
26. 根据权利要求21的存储器系统,其中所述控制器通过逻辑块单位 管理具有FIFO结构的所述第 一前级緩冲器。
27. 根据权利要求26的存储器系统,其中所述控制器通过逻辑块单位 管理具有FIFO结构的所述第二前级緩冲器。
28. 根据权利要求27的存储器系统,其中所述控制器使所述第一前级 緩冲器和所述第二存储区中的这样的数据无效,该数据与写入所述第一输 入緩冲器中的替代数据具有相同的逻辑地址。
29. 根据权利要求27的存储器系统,其中所述控制器使所述第一和第 二前级緩冲器以及所述第二和第三存储区中的这样的数据无效,该数据与 写入所述第二输入緩沖器中的替代数据具有相同的逻辑地址。
30. 根据权利要求27的存储器系统,其中所述控制器执行第十一处理, 所述第十 一处理用于以所述第二管理单位将最早在所述第 一前级緩冲器中 登记的逻辑块中的数据清理到所述第二输入緩沖器。
31. 根据权利要求30的存储器系统,其中当分配给所述第一前级緩沖 器的逻辑块的数目超过容许度时,所述控制器执行所述第十一处理。
32. 根据权利要求31的存储器系统,其中所述控制器对于在执行所述 第十一处理之后有效数据仍存在于其中的逻辑块执行所述第八处理。
33. 根据权利要求27的存储器系统,其中当分配给所述第二前级緩冲 器的逻辑块的数目超过容许度时,所述控制器执行所述第十处理。
34. 根据权利要求33的存储器系统,其中所述控制器对于最早在所述 第二前级緩冲器中登记的逻辑块执行所述笫十处理。
35. 根据权利要求21的存储器系统,其中当所述第一存储区中的数据 所属于的所述第二管理单位中的数据的数目超过规定值时,所述控制器执 行所述第二处理和所述第三处理中的至少 一个。
36. 根据权利要求21的存储器系统,其中所述控制器并行地执行所述 第一至第三处理与所述第四至第十处理。
37. 根据权利要求9的存储器系统,其中所述页单位的大小为所述第一 管理单位的两倍或更大的自然数倍。
38. 根据权利要求21的存储器系统,其中所述第二管理单位的大小为 所述页单位的两倍或更大的自然数倍,且所述块单位的大小为所述第二管 理单位的两倍或更大的自然数倍。
39. 根据权利要求21的存储器系统,其中所述易失性半导体存储器为 DRAM,且所述非易失性半导体存储器为NAND型闪速存储器。
全文摘要
控制器执行第一处理,其用于以扇区单位将多个数据写入第一存储区中;第二处理,其用于以第一管理单位将存储在第一存储区中的数据清理至第一输入缓冲器,第一管理单位的大小为扇区单位的两倍或更大的自然数倍;第三处理,其用于以第二管理单位将存储在第一存储区中的数据清理至第二输入缓冲器,第二管理单位的大小为第一管理单位的两倍或更大的自然数倍;第四处理,其用于将第一输入缓冲器中所有页都被写入的逻辑块重新定位至第二存储区;第五处理,其用于将第二输入缓冲器中所有页都被写入的逻辑块重新定位至第三存储区;以及第六处理,其用于以第二管理单位将存储在第二存储区中的多个数据清理至第二输入缓冲器。
文档编号G06F12/08GK101647007SQ200880006648
公开日2010年2月10日 申请日期2008年9月22日 优先权日2008年3月1日
发明者初田幸辅, 松崎秀则, 矢野纯二 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1