存储器系统的制作方法

文档序号:6592449阅读:451来源:国知局
专利名称:存储器系统的制作方法
技术领域
本发明涉及一种包括非易失性半导体存储器的存储器系统。
背景技术
作为在计算机系统中使用的外部存储装置,安装有诸如NAND型闪速 存储器的非易失性半导体存储器的SSD (固态驱动器)引人注目。与磁盘 装置相比,闪速存储器具有诸如速度高和重量轻的优点。
SSD包括多个闪速存储器芯片;控制器,其响应于来自主机设备的 请求而执行对各自的闪速存储器芯片的读/写控制;緩冲存储器,其用于执 行在各自的闪速存储器芯片与主机设备之间的数据传送;电源电路;以及 与主机i殳备的连接接口 (参见例如专利文件l)。
非易失性半导体存储器的实例包括其中擦除、写入和读出的单位固定 的非易失性半导体存储器,例如,在存储数据时, 一但以块为单位擦除数 据,然后执行写入的非易失性半导体存储器,以及以与NAND型闪速存储 器相同的方式以页为单位执行写入和读出的非易失性半导体存储器。
另一方面,这样的单位被称为扇区,该单位用于诸如个人计算机的主 机设备,以将数据写入诸如硬盘的次级存储装置以及从中读出数据。扇区 独立于半导体存储装置的擦除、写入和读出的单位而设定。
例如,尽管非易失性半导体存储器的块的尺寸(块尺寸)为512 kB且 其页的尺寸(页尺寸)为4kB,但主机设备的扇区的尺寸(扇区尺寸)被 i殳定为512 B。
以此方式,非易失性半导体存储器的擦除、写入和读出的单位可大于 主机设备的写入和读出的单位。
8因此,当通过使用非易失性半导体存储器来配置个人计算机的次级存 储器装置(例如硬盘)时,有必要通过使尺寸适应于非易失性半导体存储 器的块尺寸和页尺寸,写入来自作为主机设备的个人计算机的具有小尺寸 的数据。
通过诸如个人计算机的主机设备而记录的数据既具有时间局域性,也 具有空间局域性(例如,参见非专利文件1)。因此,当记录数据时,如 果数据被直接记录在从外部指定的地址中,则重写(即,擦除处理)在时
间上集中在特定的区域中,并且擦除次数的偏差增大。因此,在NAND型 闪速存储器中,执行用于使数据更新区段均衡分布的被称为磨损均化 (wear leveling )的处理。
在磨损均化处理中,例如,由主机设备指定的逻辑地址-陂转译为其中 数据更新区段均衡地分布的非易失性半导体存储器的物理地址。
当在执行地址转译时使用这种NAND闪速存储器配置大容量次级存 储装置时,需要使来自作为主机设备的个人计算机的小尺寸数据适应于非 易失性半导体存储器的块尺寸和页尺寸,并写入数据。在这种数据管理中, 如果数据管理的单位是小尺寸(例如,页尺寸),则管理表的尺寸增加, 并且不适应二级存^^殳备的控制器的主存储器。不能够高速执行地址转换。 在通过管理表的搜寻中,如果搜寻处理时间长,则不能够有效利用闪速存 储器比磁盘装置更快的这样的闪速存储器优点。这样,根据作为二级存储 装置的NAND闪速存储器的容量的增加,管理表的尺寸不可避免地增加。 因此,需要一种尽可能多地降低管理表容量的方法,以及一种增加管理表 的搜寻处理速度的方法。


图1是SSD (固态驱动器)100的配置实例的框图。SSD 100通过存 储器连揍接口,例如ATA接口 (ATA I/F)2,连接到主机设备l,例如 个人计算机或CPU核,并且用作主机设备l的外部存储器。通过通信接口 3,例如RS232C接口 (RS232CI/F) , SSD 100可以将数据传送到用于除 错(debug)和制造检验的设备200并从其接收数据。SSD 100包括作为非 易失性半导体存储器的NAND型闪速存储器(下文中简称为NAND存储器)10、作为控制器的驱动控制电路4、作为易失性半导体存储器的DRAM20、电源电路5、用于状态显示的LED 6、检测驱动器中的温度的温度传感器7、以及熔丝8。
电源电路5从由主机设备1侧的电源电5$^应的外部DC电力产生多个不同的内部DC电源电压,并将这些内部DC电源电压供应至SSD 100中的各个电路。电源电路5检测外部电源的上升沿,产生通电复位信号,并且将该通电复位信号供应至驱动控制电路4。熔丝8设置在主机设备1一侧的电源电路与SSD 100中的电源电路5之间。当从外部电源电5^#应过电流时,熔丝8断开,以防止内部电路发生故障。
NAND存储器10具有四个并行操作元件10a至10d,其执行四个并行操作。 一个并行操作元件具有两个NAND存储器封装。NAND存储器封装中的每一个包括多个堆叠的NAND存储器芯片(例如,l个芯片-2GB)。在图1的情况下,NAND存储器封装中的每一个包括堆叠的四个NAND存储器芯片。NAND存储器10具有64 GB的容量。当NAND存储器封装中的每一个包括堆叠的八个NAND存储器芯片时,NAND存储器IO具有128GB的容量。
DRAM 20用作为用于在主机设备1与NAND存储器10之间的数据传送的高速緩冲存储器以及用于工作区的存储器。可使用FeRAM(铁电随fe^取存储器)、PRAM (相变随;lM!vlM!"储器)或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+l)个存储器基元晶体管MT排列在选择 晶体管ST1的源极与选择晶体管ST2的漏极之间,使得其电流路径串联连 接。换句话说,存储器基元晶体管MT在Y方向上串联连接,使得相邻的 存储器基元晶体管MT共享扩散区域(源极区域或漏极区域)。
存储器基元晶体管MT的控制栅极电极从位于最漏极侧上的存储器基 元晶体管MT开始依次分别连接至字线WLO至WLq。因此,连接至字线 WL0的存储器基元晶体管MT的漏极连接至选择晶体管ST1的源极。连 接至字线WLq的存储器基元晶体管MT的源极连接至选择晶体管ST2的 漏极。
字线WL0至WLq共同地连接在物理块中的NAND串当中的存储器 基元晶体管MT的控制栅极电极。换句话说,存在于块的相同行中的存储 器基元晶体管MT的控制栅极连接至相同的字线WL。将连接至相同字线
16WL的(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"的写入。 将数据"01"和数据"00"写入存储器单元中。
图3为驱动控制电路4的硬件内部配置实例的框图。驱动控制电路4 包括数据存取总线101、第一电膝控制总线102以及第二电路控制总线103。 控制整个驱动控制电路4的处理器104连接至第一电路控制总线102。启 动ROM 105经由ROM控制器106而连接至第一电路控制总线102,在该 启动ROM 105中存储有启动程序,所述启动程序用于启动存储在NAND 存储器IO中的各个管理程序(FW:固件)。时钟控制器107连接至第一 电路控制总线102,该时钟控制器107从图1中所示的电源电路5接收通 电复位信号且将复位信号和时钟信号供应至各个单元。
第二电路控制总线103连接至第一电路控制总线102。用于从图1中 所示的温度传感器7接收数据的I2C电路108、将用于状态显示的信号供应至用于状态显示的LED 6的并行IO( PIO )电路109、以及控制RS232C 1/F3的串行I0 (SIO)电路110连接至第二电i^制总线103。
ATA接口控制器(ATA控制器)111、第一ECC (错误检查及校正) 电路112、 NAND控制器113以及DRAM控制器114连接至数据存取总线 101与第一电5^t制总线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 (低密度奇偶检查)码。第二错误校正码的校正 能力比笫一g校正码的校正能力高。
如图1和图3中所示,在NAND存储器10中,四个并行的操作元件 10a至10d经由四个八位通道(4 ch)而并联连接至驱动控制电路4中的 NAND控制器112。根据四个并行的操作元件10a至10d是独立致动还是 并行致动与是否4吏用在NAND存储器芯片中提供的双速模式(多页编程/ 多页读取/多块擦除)的组合,提供下文所解释的三种存取模式。
(1) 8-位正常模式
8-位正常模式为用于仅致动一个通道且以8-位为单位执行数据传送的 模式。以物理页尺寸(4kB)来执行写入和读出。以物理块尺寸(512kB) 来执行擦除。 一个逻辑块与一个物理块相关联,且逻辑块尺寸为512kB。
(2) 32-位正常模式32-位正常模式为用于并行致动四个通道且以32-位为单位执行数据传 送的模式。以物理页尺寸x4 (16kB)来执行写入和读出。以物理块尺寸x4 (2MB)来执行擦除。 一个逻辑块与四个物理块相关联,且逻辑块尺寸为 2MB。
(3) 32-位X5Ut模式
32-位X5Ut模式为用于并行致动四个通道且使用NAND存储器芯片的 双速模式来执行写入和读出的模式。以物理页尺寸x4x2 (32 kB)来执行 写入和读出。以物理块尺寸x4x2 (4MB)来执行擦除。 一个逻辑块与八个 物理块相关联,且逻辑块尺寸为4MB。
在用于并行致动四个通道的32-位正常模式或32-位双速模式中,并行 操作的四个或八个物理块为用于NAND存储器10的擦除单位,且并行操 作的四个或八个物理页为用于NAND存储器10的写入单位及读出单位。 在下面所解释的操作中,基本上,使用32-位双速模式。例如,假定 一个 逻辑块=4 MB-2i轨道-2J页-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存储器IO之间的对应关系的管理和管理信息的保护、使用 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以簇为单位(即,"小单位")管理来自WC21的 数据,且将小数据(细粒数据)存储一短周期。IS 13以簇为单位(即,"小 单位")管理从FS 12溢出的数据,且将小数据(细粒数据)存储一长周 期。MS 11以轨道为单位(即,"大单位,,)存储来自WC 21、 FS 12和 IS13的数据,并存储大数据 粗粒数据) 一长周期。例如,存储容量具有MS>IS且FS>WC的关系。
当对NAND存储器10的所有存储区应用小管理单位时,稍后解释的管理表的尺寸被扩大,且不适应DRAM20。因此,NAND存储器10的各个存储器被配置为以小管理单位管理NAND存储器10中仅在最近刚写入的数据和具有低写入效率的小数据。在国际申请No.PCT2008/JP/073950中描述了在SSD100中使用"小单位"以及"大单位"的技术,其全部内容通过引用合并于此。
图6为关于从WC 21向NAND存储器10的写入处理(WR处理)的更详细的功能框图。在FS12的前级处设置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中的数据为这样的数据,该数据的更新频率高于记录在MS 11中的数据。NAND存储器10中的任何一个逻辑块净皮分配给MS 11、 MSIB lla、 TFS llb、 FS 12、 FSIB 12a和IS 13。
将详细解释图5和图6中所示的各个部件的具体功能配置。当主机设备1执行SSD 100的读取或写入时,主机设备1经由ATA接口而输入LBA(逻辑块寻址)作为逻辑地址。如图7中所示,LBA为这样的逻辑地址,其中从0开始的序号被附到扇区(尺寸512B)。在该实施例中,作为用于WC21、 RC22、 FS12、 IS 13和MS 11 (它们为图5中所示的部件)的管理单位,定义逻辑簇地址和逻辑轨道地址,所述逻辑簇地址由依次(inorder)等于或高于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-线(line) /n-路(way) (m为等于或大于2°^的自然数,且ii为等于或大于2的自然数)集合关联系统(setassociative system)中进行管理,且可将一个蔟的数据存储在一个条目(entry)中。线通过逻辑簇地址的LSB (k-i)个位来判定。RC 22可在全关联系统中进行管理,或者可在简单FIFO系统中进行管理。写高速緩沖存储器(WC) 21
解释WC21。 WC21为响应于来自ATA命令处理单元121的写入请求而暂时存储来自主机设备1的写入数据的区。WC 21是在m-线/n-路(m为等于或大于2(1^的自然数,且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%时,将数据排挤至FS 12。
当在条件(i )下执行轨道排挤且将数据排挤至MS 11时,根据策略(i ),选择WC 21的轨道当中满足将要排挤的数据的量超过轨道尺寸的50%这一条件的轨道且将其添加至排挤候选项,直至将要排挤的轨道的数目达到2j为止(当轨道的数目 一开始就等于或大于2j时,直至轨道的数目达到2i+1为止)。换句话说,当将要排挤的轨道的数目小于2J时,以从WC中的最旧轨道开始的顺序选择具有多于2W-"的有效蔟的轨道,且将其添加至排挤候选项,直至轨道的数目达到2i为止。
当在条件(i)下执行轨道排挤且将轨道排挤至FS 12时,以LRU的顺序在WC 21中的轨道当中选择满足将要排挤的数据的量不超过轨道尺寸的50%这一条件的轨道,并将该轨道的簇添加至排挤候选项,直至将要排挤的簇的数目达到2k为止。换句话说,通过以从最旧轨道开始的顺序追踪WC中的轨道而从具有2一-"个或更少的有效蔟的轨道中提取蔟,且当有效蔟的数目达到2k时,以逻辑块为单位将簇排挤至FSIB12a。然而,当未寻找到2k个有效蔟时,以逻辑页为单位将簇排挤至FSIB12a。用于判定是以逻辑块为单位还是以逻辑页为单位执行至FS 12的排挤的有效蔟的数目的阈值不限于一个逻辑块的值(即,2k),且可为比一个逻辑块的值稍小的值。
在来自ATA命令处理单元121的高速緩沖存储器排挤请求中,在与
挤的数据的量超过轨道尺寸的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中的
23压紧处理中的混合的可能性。当通过无效化而使逻辑块的有效簇的数目减
少至0时,釋,放该逻辑块且将其分配为空闲块FB。当FS 12中的逻辑块净皮 无效时,获得新的空闲块FB且将其分配给FS12。
当执行从WC 21至FS 12的簇排挤时,簇被写入分配给FSIB 12a的 逻辑块中。当在FSIB12a中出现完成了所有逻辑页的写入的逻辑块时,通 过稍后所解释的CIB处理将这些逻辑块从FSIB 12a移动至FS 12。在将这 些逻辑块从FSIB 12a移动至FS 12的过程中,当FS 12的逻辑块的数目超 过FS 12所允许的预定上限值时,将最旧的逻辑块从FS 12排挤至IS 13 或MSll。例如,将轨道中有效蔟比率等于或大于50。/。的轨道写入MS11 (TFSllb)中,且将其中仍剩余有有效簇的逻辑块移动至IS13。
关于NAND存储器10中的部件之间的数据移动,存在两种方式,即, 移动(Move)和复制(Copy)。移动是这样的方法,其仅执行稍后所解 释的管理表的指针(pointer)的重新定位,而不执行数据的实际重写。复 制是这样的方法,其以页单位、轨道单位或块单位将存储于一个部件中的 数据实际重写至另一部件中。
中间级存储区(IS) 13
解释IS13。在IS13中,以与FS12相同的方式以簇为单位执行数据 的管理。可将存储于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有效蔟系数的顺序对轨道进行分类(sort)(根据轨 道是否存在于其中存在无效轨道的MS 11的逻辑块中而加权的数目;存在无效轨道时的数目大于不存在无效轨道时的数目)。收集具有大乘积值的
21+1个轨道(对于两个逻辑块),将其增加至为逻辑块尺寸的自然数倍大, 且将其排挤至MSIB lla。
当具有最小数目的有效簇的两个逻辑块的有效蔟的总数目为例如等于 或大于作为预定的设定值的2k (对于一个逻辑块)时,重复上文所解释的 步骤(以执行该步骤,直至可从IS中的两个逻辑块可以创建空闲块FB为 止)。
从具有最小数目的有效蔟的逻辑块开始依次收集2k个簇,且在IS中 进行压紧。
此处,选择具有最小数目的有效蔟的两个逻辑块。然而,数目不限于 二,且仅须为等于或大于二的数目。预定的设定值仅须等于或小于这样的 簇的数目,该簇可存储于比选定的逻辑块的数目小一的数目的逻辑块中。
主存储区(MS) 11
解释MSll。在MS11中,以轨道为单位执行数据的管理。可将存储 于MS 11中的数据视为具有低更新频率。当执行轨道数据从WC 21、 FS 12 或IS 13至MS 11的复制或移动时,将轨道写入被分配给MSIB lla的逻 辑块中。另一方面,当仅将轨道的一部分中的数据(簇)从FS 12、 IS 13 等等写入时,执行稍后所解释的被动合并,该被动合并用于合并现存的 MS中的轨道数据与新数据以产生新轨道数据,然后将所产生的轨道数据 写入MSIB lla中。当无效轨道在MSll中累积且分配给MSll的逻辑块 的数目超过MSll所允许的块的数目的上限时,执行压紧处理以产生空闲 块FB。
作为MS11的压紧处理,例如,执行下文所解释的仅关注逻辑块中的 有效轨道的数目的方法。
从具有最小数目的有效轨道的逻辑块中选择逻辑块,直至可通过组合 无效轨道而产生空闲块FB为止。
当执行用于整合存储于选定逻辑块中的轨道与WC 21、 FS 12或IS 13 中的数据的被动合并时,执行压紧。将其中可整合个轨道的逻辑块输出至TFS lib ( 2j轨道MS压紧), 且将数目小于2i的轨道输出至MSIB 11a (小于(的轨道压紧)以产生较 大数目的空闲块FB。
TFS lib是其中以轨道为单位管理数据的FIFO。 TFS lib是这样的緩 沖器,其认为通过TFSllb的数据具有比后级处的MSll的数据更高的更 新频率。换句话说,在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存储器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 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 和MSIBlla)中,执行逻辑至物理转译表50的逻辑地址与物理地址的转 换。将这些管理表存储于NAND存储器10上的区中且将其从NAND存储 器读取至DRAM 20,并且在SSD 100的初始化期间使用这些管理表。 RC簇管理表23 (反向查找)
参看图9解释RC簇管理表23。如上文所解释,在由逻辑簇地址LSB (k-i)个位编索引的n-路集合关联系统(the n國way set associative system ) 中管理RC22。 RC蔟管理表23为用于管理RC (簇尺寸xm-线xn-路)22 的各个条目的标记的表。这些标记中的每一个包括状态标志(flag)23a和 逻辑轨道地址23b,其中状态标志23a包括多个位。除了指示所述条目是 否可使用(有效/无效)的有效位之外,状态标志23a还包括例如指示所述 条目是否在等待从NAND存储器IO读出的位、以及指示所述条目是否在 等待读出至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、扇区位置位映l象(bitmap ) 25b, 以及逻辑轨道地址25c。
除了指示所述条目是否可使用(有^L/无效)的有效位之外,状态标志 25a还包括例如指示所述条目是否在等待排挤至NAND存储器10的位、 以及指示所述条目是否在等待从ATA命令处理单元121写入的位。通过 将扇区扩展成2(|^个位,扇区位置位映像25b指示一个簇中所包括的2("k) 个扇区中的哪一个存储有效数据。利用扇区位置位映像25b,可在WC21 中执行与LBA相同的以扇区为单位进行的管理。WC簇管理表25用作反向查找表,该反向查找表用于从DRAM 20上的标记存储位置搜寻与LBA 一致的逻辑轨道地址。
WC轨道管理表24 (正向查找)
参看图11解释WC轨道管理表24。 WC轨道管理表24为用于管理信 息(其中以轨道单位收集存储于WC21上的簇)的表,且使用具有类似于 FIFO功能的链接列表结构来表示轨道当中在WC 21中的登记的顺序 (LRU) 。 LRU可通过WC 21中最后被更新的顺序来表示。每一列表的 条目包括逻辑轨道地址24a、逻辑轨道地址中所包括的WC21中的有效蔟 数目24b、路-线位映像24c、以及下一个指针24d,该下一个指针24d指 示指向下一条目的指针。WC轨道管理表24用作正向查找表,这是因为所 需信息是从逻辑轨道地址24a获得的。
路-线位映像24c为这样的映像信息,其指示在WC 21中的mxn个条 目中的哪一个中存储WC21中的逻辑轨道地址中所包括的有效蔟。在其中 存储有效蔟的条目中,有效位为"1"。路-线位映像24c包括例如(一位 (有效)+1(^211个位(n-路))xm个位(m-线)。WC轨道管理表24具 有链接列表结构。仅输入关于WC21中存在的逻辑轨道地址的信息。 轨道管理表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(1^个簇按照逻辑簇地址的升序分成例如八份而获得的位映像。八个位中的每一个指示对
应于2("3)个簇地址的簇是存在于MS 11中还是存在于FS 12或IS 13中。 当该位为"0"时,其指示作为搜寻对象的簇的确存在于MS 11中。当该 位为"1"时,其指示簇很可能存在于FS12或IS13中。
逻辑块ID 30c是用于识别这样的逻辑块ID的信息,在该逻辑块ID中 存储与逻辑轨道地址对应的逻辑轨道。逻辑块内轨道位置30d指示与逻辑 轨道地址(30a)对应的轨道在由逻辑块ID 30c指定的逻辑块中的存储位 置。因为一个逻辑块包括最大2i个有效轨道,所以逻辑块内轨道位置30d 使用i个位识别2j个轨道位置。
簇表指针30e是指向具有链接列表结构的FS/IS管理表40的每一列表 的顶条目的指针。在搜寻整个簇位映像30b的过程中,当指示出蔟很可能 存在于FS 12或IS 13中时,通过使用簇表指针30e来执行遍及FS/IS管理 表40的搜寻。FS簇的数目30f指示出存在于FS12中的有效蔟的数目。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、逻辑 块内簇位置40" 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个条目。这些条目中的每一个包括用于2J个轨道的轨道管理指针 35b、有效轨道的数目35c、可写入的顶轨道35d,以及有效标志35e。 MS 逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的 逻辑块ID 35a获得诸如存储于逻辑块中的逻辑轨道地址的所需信息。
轨道管理指针35b存储与逻辑块ID 35a所指定的逻辑块中的2j个轨道 位置中的每一个相对应的逻辑轨道地址。可以使用该逻辑轨道地址来进行 遍及轨道管理表30的搜寻,该轨道管理表30具有逻辑轨道地址作为索引。 有效轨道的数目35c指示出在逻辑块ID 35a所指定的逻辑块中存储的轨道 当中的有效轨道的数目(最大为2"。可写入的顶轨道位置35d指示当逻 辑块ID 35a所指定的逻辑块为被额外记录的块时额外可记录的顶位置(0 至2",当额外记录结束时为2i)。当作为MSll (包括MSIBlla)来管 理逻辑块条目时,有效标志35e为"1"。这里,"额外记录"意义为以附 带方式(appending manner)将簇或轨道写入逻辑块中的空逻辑页。
FS/IS逻辑块管理表42 (反向查找)
参看图15解释FS/IS逻辑块管理表42。 FS/IS逻辑块管理表42以阵列格式形成,该阵列格式具有FS/IS块ID 42a作为索引。FS/IS逻辑块管 理表42为用于管理与用作FS 12或IS 13的逻辑块有关的信息(与逻辑块 ID的对应、指向FS/IS内簇管理表44的索引、逻辑块是否额外可记录等) 的表。FS/IS逻辑块管理表42主要通过4吏用FS/IS管理表40中的FS/IS块 ID40diM"取。每一条目包括逻辑块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块ID 42a所指定的逻 辑块中存储的簇当中的有效蔟的数目(最大为2k)。可写入的顶页位置42e 指示当FS/IS块ID 42a所指定的逻辑块为被额外记录的块时,额外可记录 的顶页位置(0至2J",当额外记录结束时为2i)。当作为FS12(包括FSIB 12 )或IS 13来管理逻辑块条目时,有效标志42f为'T,。
FS/IS内簇管理表44 (反向查找)
参看图16解释FS/IS内簇管理表44。 FS/IS内簇管理表44为指示在 用作FS 12或IS 13的逻辑块中的每一个簇位置中记录哪个逻辑簇的表。 FS/IS内簇管理表44对于每一个逻辑块具有2j页x2"①簇-2k个条目。在连 续区中排列与逻辑块中的簇位置当中的与第0至第2k-l个簇位置对应的信 息。以与属于FS 12和IS 13的逻辑块数目(P)等价的数目来存储包括该 2k条信息的表。FS/IS逻辑块管理表42的块内簇表42c为用于该P个表的 位置信息(指针)。在连续区中排列的每一条目44a的位置指示在一个逻 辑块中的簇位置。作为条目44a的内容,登记指向这样的列表的指针,该 列表包括通过FS/IS管理表40管理的逻辑簇地址,使得可以识别在簇位置 中存储了哪个簇。换句话说,条目44a并不指示链接列表的顶部。在条目44a中登记指向这样一个列表的指针,这个列表包括链接列表中的逻辑蔟 地址。
逻辑至物理转译表50 (正向查找)
参看图17解释逻辑至物理转译表50。逻辑至物理转译表50以阵列格 式形成,该阵列格式具有逻辑块ID 50a作为索引。在128 GB的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可用于 刷新处理中,该刷新处理用于重写在具有恶化的保持性能的物理块中存储 的数据。
在国际申请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 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中所示的流程图来解#^取处理。当从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的搜寻 中所述对应位指示'T,时,很可能该簇存储于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 l2或IS 13获取的簇发送至ATA命令处理单 元121 (步骤S180 )。
当在遍及FS/IS管理表40的搜寻中不存在作为搜寻对象的簇时(步骤S150 ),数据管理单元120再次遍及轨道管理表30的条目进行搜寻,且决 定在MS 11上的位置(步骤S170)。 写入处理
参看图19中所示的流程图来解释写入处理。通过写入命令而写入的数 据总是一次存储于WC 21上。此后,根据条件而将数据写入NAND存储 器10中。在写入处理中,很可能执行排挤处理和压紧处理。在该实施例中, 将写入处理粗略划分成写入高速緩沖存储器闪速处理(write cache flash processing )(在下文中为WCF处理)和清除输入緩冲器处理(在下文中 为CIB处理)的两个阶段。步骤S300至S320指示从来自ATA命令处理 单元121的写入请求至WCF处理的处理。步骤S330至最后步骤指示CIB 处理。
WCF处理为用于将WC 21中的数据复制至NAND存储器10 ( FS 12 的FSIB 12a、或者MS 11的MSIB 11a)的处理。来自ATA命令处理单 元121的单独的写入请求或高速緩沖存储器排挤请求可仅通过该处理来完 成。这j吏得可以将ATA命令处理单元121的写入请求的已开始处理中的 延迟最大限制为这样的时间,该时间用于在与WC21的容量等价的NAND 存储器10中写入。
CIB处理包括用于将FSIB 12a中通过WCF处理而写入的数据移动至 FS12的处理,以及用于将MSIB 11a中通过WCF处理而写入的数据移动 至MS11的处理。当开始CIB处理时,很可能以链式反应的方式执行NAND 存储器中的部件(FS12、 IS 13、 MS11等)当中的数据移动和压紧处理。 全部处理所需的时间大体上根据状态而改变。
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、路-线位映 像2"以及下一个指针2W的条目,且将该列表登记为最新列表。数据管 理单元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中的有效蔟的数目等 于或大于决定排挤的轨道中的2^-"时),则DRAM层管理单元120a执 行至MSIB lla的排挤(步骤S310 )。如果簇的量未超过轨道尺寸的50% (即,WC中的有效蔟的数目小于决定排挤的轨道中的2W-"),则DRAM 层管理单元120a将轨道排挤至FSIB 12a(步骤S315 )。稍后解释从WC 21 至MSIB lla的排挤以及从WC 21至FSIB 12a的排挤的细节。将选定的排挤条目的状态标志25a从有效(不可用)转变为等待排挤至NAND存储 器10。
通过使用WC轨道管理表24,执行该对于排挤目的地的判断。对于每 一逻辑轨道地址,在WC轨道管理表24中登记指示有效蔟数目的WC蔟 的数目24b的条目。数据管理单元120参考WC簇的数目24b的条目来判 定应将FSIB 12a和MSIB lla中的哪一者设定为从WC 21的排挤的目的 地。属于逻辑轨道地址的所有簇都以位映像格式登记于路-线位映像24c中。 因此,在执行排挤过程中,数据管理单元120可参考客线位映像24c而容 易地获悉应排挤的簇中的每一个在WC21中的存储位置。
在写入处理期间或在写入处理之后,数据管理单元120在以下条件得 到满足时还以相同的方式执行至NAND存储器10的排挤处理 (ii)登记于WC 21中的轨道的数目超过预定数目。
WC — MSIB (复制)
当根据基于有效蔟的数目(有效簇的数目等于或大于2^i-")的判断而 执行从WC 21至MSIB lla的排挤时,数据管理单元120如上文所解释地 执行下文所解释的过程(步骤S310)。
1. 参考WC簇管理表25且参考与将要排挤的簇相对应的标记中的扇 区位置位映像25b,当并非所有扇区位置位映像25b都为"1"时,数据管 理单元120通it^ NAND存储器10读出包括在相同逻辑轨道中的丟失扇 区以执行稍后所解释的轨道内扇区填充(padding)用于与在WC 21中不 存在的扇区合并。
2. 当决定排挤的轨道的数目小于2J时,数据管理单元120添加决定排 挤的、具有2W-"个或更多有效簇的轨道,直至决定排挤的轨道的数目从 WC21中的最旧者起达到^个为止。
3. 当将要复制的轨道有分个或更多时,数据管理单元120以逻辑块单 位(每2J个轨道作为一个集合)在MSIB lla中执行写入。
4. 数据管理单元120以轨道为单位将无法形成2'个轨道的集合的轨道 写入MSIB lla中。5.数据管理单元120在复制结束之后使已存在于FS、 IS和MS上的簇及轨道当中的属于^^复制的轨道的簇和轨道无效。
解释从WC 21至MSIB lla的复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中经排挤的轨道的所有簇相对应。此后,有可能在这些条目中进行写入。关于与WC轨道管理表24中的经排挤的轨道对应的列表,数据管理单元120改变或删除例如上一个列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WC21至MSIBlla的轨道移动时,数据管理单元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的轨道写入时,或当执行通过MSll中的压紧处理而进行的MS轨道内写入时,可将作为写入对象的逻辑轨道地址中所包括的WC21中的有效蔟同时写入MS中。这样的被动合并可随着从WC 21至MS 11的写入而存在。当执行这样的被动合并时,将簇从WC21删除(使其无效)。
WC — FSIB (复制)
当根据基于有效蔟的数目(有效蔟的数目等于或大于2一-")的判断而执行从WC 21至FSIB 12a的排挤时,数据管理单元120如上文所解释地执行下文所解释的过程。
1. 参考与将要排挤的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为"1"时,数据管理单元120通过从NAND存储器10读出包括在相同逻辑轨道中的丟失扇区以执行蔟内扇区填充,用于与在WC 21中不存在的扇区合并。
2. 数据管理单元120通过以从最旧轨道起的顺序追踪WC中的轨道而从仅具有小于2W-"个有效蔟的轨道中提取簇,且当有效蔟的数目达到2k时,以逻辑块为单位将所有簇写入FSIB12a中。
3. 当未寻找到2k个有效蔟时,数据管理单元120以与逻辑页的数目等价的数目将具有小于2一-"的数目的有效蔟的所有轨道写入FSIB 12a中。
4. 数据管理单元120在复制结束之后使已存在于FS和IS上的簇当中的与被复制的簇相同的簇无效。
解释从WC 21至FSIB 12a的该复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中被排挤的轨道的所有蔟相对应。此后,有可能在这些条目中进行写入。关于与WC轨道管理表24中的经排挤的轨道相对应的列表,数据管理单元120改变或删除例如上一个列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WCM至FSIB 12a的簇排挤时,数据管理单元120根据簇排挤而更新轨道管理表30的簇表指针30e、 FS簇的数目30f及其类似者。数据管理单元120还更新FS/IS管理表40的逻辑块ID 40b、逻辑块内簇位置40c及其类似者。关于最初不存在于FS 12中的蔟,数据管理单元120将列表添加至FS/IS管理表40的链接列表。根据该更新,数据管理单元120更新MS逻辑块管理表35、 FS/IS逻辑块管理表42和FS/IS内簇管理表44的相关的区段。
CIB处理
当上文所解释的WCF处理结束时,逻辑NAND层管理单元120b执行CIB处理,该CIB处理包括用于将FSIB 12a中通过WCF处理而写入的数据移动至FS 12的处理、以及用于将MSIB lla中通过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 lla的排挤处理、从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中。在完成在MSIB lla中的写入之后,如上文所解释的,更新轨道管理表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,且改善逻辑块的使用的效率。在执行压紧的过程中,当存在WC21、 FS12和IS13上的有效蔟时,数据管理单元120执行被动合并,该被动合并用于合并作为压紧对象的包括在逻辑轨道地址中的所有有效簇。登记于TFS lib中的逻辑块不包括在压紧对象中。
特别解释从MSIB lla至MS ll或至TFS lib的移动以及将MSIB lla中存在满逻辑块设定为条件的压紧处理的实例。"满,,逻辑块意味着所有逻辑页写入^L写入的逻辑块,并且不可能进行额外记录。
1. 参考MS逻辑块管理表35的有效标志35e,当在MS 11中存在无效的逻辑块时,数据管理单元120将该逻辑块设定为空闲块FB。
2. 数据管理单元120将MSIB lla中的满逻辑块移动至MS 11。具体地,数据管理单元120更新上文所解释的MS结构管理表(未示出),且将逻辑块从在MSIB lla的管理之下转移至在MS的管理之下。
3. 数据管理单元120判断分配给MS 11的逻辑块的数目是否超过MSll所允许的块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的MS压紧。
4. 参考MS逻辑块管理表35的有效轨道的数目35c的字段及其类似者,数据管理单元120以有效轨道的数目对不包括在TFS lib中的逻辑块当中的具有无效轨道的逻辑块进行分类。
5. 数据管理单元120从具有小数目的有效轨道的逻辑块收集轨道,且执行压紧。在执行压紧过程中,首先,对于逻辑块中的每一个,对轨道进行复制(一次复制^个轨道),以执行压紧。当作为压紧对象的轨道具有在WC 21、 FS 12和IS 13中的有效簇时,数据管理单元120还合并这些有效蔟。
6. 数据管理单元120将压紧源处的逻辑块设定为空闲块FB。7. 当执行压紧且一个逻辑块包括有效的2i个轨道时,数据管理单元120将逻辑块移动至TFS lib的顶部。
8. 当可通过将逻辑块中的有效轨道复制至另一逻辑块而产生空闲块FB时,数据管理单元120以轨道单位将数目小于2i的有效轨道额外记录在MSIBlla中。
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。 4艮据该移动,将旧逻辑块从多个逻辑块所配置的FIFO结构的FS 12排挤。
具体地如下文所解释地实现从FSIB 12a至FS 12的排挤以;5L从FS 12到MS 11和/或IS 13的排挤。
1. 参考FS/IS逻辑块管理表42的有效标志35e及其类似者,当在FS 12中存在被无效的逻辑块时,数据管理单元120将该逻辑块设定为空闲块FB。
2. 数据管理单元120将FSIB 12a中的满逻辑块排挤至FS 12。具体地,数据管理单元120更新FS/IS结构管理表(未示出),且将该逻辑块从在FSIB的管理之下转移至在FS的管理之下。
3. 数据管理单元120判断分配给FS 12的逻辑块的数目是否超过FS12所允许的块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的排挤。
4. 首先,数据管理单元120确定作为排挤对象的最旧逻辑块中的簇当中,应直接被复制至MS11而不移动至IS13的簇(实际上,因为MS的管理单位为轨道,所以以轨道单位确定所述蔟数据)。
(A)数据管理单元120按照从逻辑页的顶部开始的顺序扫描作为排挤对象的最旧逻辑块中的有效蔟。
(B) 数据管理单元120参考轨道管理表30的FS簇的数目30f的字 段,寻找在FS 12中该簇所属于的轨道具有多少个有效蔟。
(C) 当该轨道中的有效蔟的数目等于或大于预定阈值(例如,2"的 50% )时,数据管理单元120将该轨道设定为排挤至MS 11的候选者。
5. 数据管理单元120将应被排挤至MS 11的轨道写入MSIB lla中。
6. 当在最旧逻辑块中遗留有要以轨道单元排挤的有效蔟时,数据管理 单元120进一步执行至MSIB lla的排挤。
7. 当即使在上文的处理2至处理4之后,作为排挤对象的逻辑块中仍 存在有效蔟时,数据管理单元120将该最旧逻辑块移动至IS 13。
当执行从FS 12至MSIB lla的排挤时,紧接在排挤之后,数据管理 单元120执行MS 11中的CIB处理(步骤S350 )。 IS13中的CIB处理
解释IS 13中的CIB处理(步骤S360)。根据从FS 12至IS 13的移 动而将逻辑块添加至IS13。然而,根据逻辑块的添加,逻辑块的数目超过 可在多个逻辑块所形成的IS 13中进行管理的块的数目的上限。当逻辑块 的数目超过上限时,在IS 13中,首先,数据管理单元120执行一个到多 个逻辑块至MS 11的排挤,然后执行IS压紧。具体地,数据管理单元120 执行下文所解释的过程。
1. 数据管理单元120以轨道中的有效蔟的数目x有效蔟系数对is 13 中所包括的轨道进行分类,收集具有大乘积值的2^个轨道(对于两个逻 辑块),且将这些轨道排挤至MSIB lla。
2. 当具有最小数目的有效蔟的2^个逻辑块的有效簇的总数目为例如 等于或大于作为预定"^殳定值的2k个(对于一个逻辑块)时,数据管理单元 120重复上文所解释的步骤。
3. 在执行排挤之后,数据管理单元120按照以从具有最小数目的有效 簇的逻辑块开始的顺序收集2k个簇,且执行IS13中的压紧。
4. 数据管理单元120将压紧源处的逻辑块当中不包括有效簇的逻辑块释放为空闲块FB。
当执行从IS 13至MSIB lla的排挤时,紧接在排挤之后,数据管理单 元120执行MS11中的CIB处理(步骤S370)。
图20为部件当中的数据的流动中的输入与输出的组合的图,且指示作 为触发器引起数据的流动的原因。基本上,根据从WC21的簇排挤而将数 据写入FS12中。然而,当对于从WC21至FS12的排挤偶然有必要进行 簇内扇区填充(簇填充)时,复制来自FS12、 IS13和MS11的数据。在 WC 21中,通过使用WC簇管理表25的标记中的扇区位置位映像25b识 别相关逻辑簇地址中存在还是不存在2&W个扇区,有可能以扇区(512 B) 为单位执行管理。另一方面,FS 12和IS 13的管理单位为簇,且MS 11 的管理单位为轨道,其中FS 12和IS 13为NAND存储器10中的功能部件。 以这种方式,NAND存储器IO中的管理单位比扇区大。因此,在从WC21 将数据写入NAND存储器10的过程中,当在NAND存储器10中存在所 具有的簇地址与将要写入的数据的簇地址相同的数据时,有必要在进行这 样的合并之后将数据写入NAND存储器10中,所述合并是将从WC 21写 入NAND存储器10中的蔟中的扇区与NAND存储器10中存在的相同逻 辑簇地址中的扇区进行合并。
该处理为图20中所示的簇内扇区填充处理(簇填充)和轨道内扇区填 充(轨道填充)。除非执行这些种类的处理,否则不能读出正确数据。因 此,当数据从WC21排挤至FSIB12a或MSIBlla时,参考WC蔟管理 表25且参考与将要排挤的簇相对应的标记中的扇区位置位映像25b。当并 非所有的扇区位置位映像25b都为'T,时,执行蔟内扇区填充或轨道内扇 区填充,用于与NAND存储器10中所包括的相同簇或相同轨道中的扇区 合并。DRAM 20的工作区,皮用于该处理。将逻辑簇地址或逻辑轨道地址 中包括的多个扇区合并到DRAM 20的工作区上,并创建要排挤的数据图 像(簇图像或轨道图像)。将创建的数据图像从DRAM 20的工作区写入 MSIB lla中或写入FSIB 12a中。
在IS 13中,基本上,根据从FS 12的块排挤(移动)而写入数据,或者根据IS中的压紧而写入数据。在MS11中,可从所有区段写入数据。 当写入数据时,在MS11中,因为仅可以以轨道为单位写入数据,所以可 引起归因于MS本身的数据的填充。当以轨道为单位写入数据时,还根据 被动合并而写入其它块中的片段数据。此外,在MS11中,还才艮据MS压 紧而写入数据。在4皮动合并中,当执行从WC 21、 FS 12或IS 13这三个部 件之一至MS 11的轨道排挤或逻辑块排挤(对于2i个轨道的排挤)时,在 DRAM 20的工作区中收集一个部件中的作为排挤对象的轨道(或逻辑块) 中所包括的两个部件中的有效蔟以及MSll中的有效蔟,并将这些有效簇 从DRAM 20的工作区写入MSIB lla中作为一个轨道的数据。更加详细地解释这个实施例。图21是与图6中所示的NAND存储器 IO的写入处理相关的详细功能配置的视图。省略多余解释。FS配置FS单元12Q包括FSIB 12a和FS 12。 FS 12具有用于大量逻辑块的容 量。以逻辑块为单位管理FIFO结构。从WC21排挤的数据被输入其中的 FS输入緩沖器(FSIB) 12a设置在FS 12的前级处。FSIB 12a包括FS满 块緩沖器(FSFB) 12aa和FS额外记录緩沖器(FS额外记录IB) 12ab。 FSFB 12aa具有用于一个至多个逻辑块的容量。FS额外记录IB 12ab也具 有用于一个至多个逻辑块的容量。当从WC21排挤的数据是用于一个逻辑 块的数据时,执行以逻辑块为单位至FSFB12aa的数据复制(块复制)。 当从WC 21排挤的数据不是用于一个逻辑块的数据时,执行到FS额外记 录IB 12ab中的以逻辑页为单位的翁:据复制(页复制)。IS配置IS单元13Q包括IS13、 IS输入緩沖器(ISIB) 13a 、和IS压紧緩沖 器13c。 ISIB 13a具有用于一个至多个逻辑块的容量。IS压紧緩冲器13c 具有例如用于一个逻辑块的容量,IS 13具有用于大量逻辑块的容量。在IS 13中,与在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 )Uab。一个MSFB llaa 具有用于一个逻辑块的容量。MSFB llaa用于以逻辑块单位进行的写入。 一个MS额外记录IB llab具有用于一个逻辑块的容量。MS额外记录IB llab用于以轨道单位进行的额外写入。将从WC 21排挤的逻辑块、从FS 12排挤的逻辑块或从IS 13排挤的 逻辑块复制至MSFB llaa (块复制)。将复制至一个MSFB llaa的逻辑 块直接移动至MSll (块复制)而不通过TFSllb移动。在逻辑块被移动 至MS11之后,将空闲块FB分配为MSFBllaa。以附带方式将从WC 21排挤的轨道或从FS 12排挤的轨道复制至MS 额外记录IB llab (轨道复制)。将该MS额外记录IB llab中以轨道为单 位额外记录的满逻辑块移动至TFS llb(块移动)。在逻辑块纟皮移动至TFS llb之后,将空闲块FB分配为MS额外记录IB llab。如上文所解释的,TFS llb为这样的緩沖器,其具有用于大量逻辑块 的容量,且具有插入在MS额外记录IB llab与MS 11之间的FIFO结构。 将MS额外记录IB llab中以轨道单位额外记录的满逻辑块移动至具有 FIFO结构的TFS lib的输入侧。从MS压紧緩冲器11c移动根据在MS 11 中的压紧处理形成的具有有效数据的逻辑块(块移动)。MS压紧緩沖器13Q (他们包括在作为写入对象的轨道中)中的有效簇。在该实施例 中,在压紧对象中不包括登记于MSIBlla和TFSllb中的逻辑块。图22是数据管理单元120的更详细功能配置的图。如上文所解释的, 数据管理单元120包括DRAM层管理单元120a,其执行在DRAM 20中 存储的数据的管理;逻辑NAND层管理单元120b,其执行在NAND存储 区10中存储的数据的管理;以及物理NAND层管理单元120c,其管理作 为物理存储装置的NAND存储器10。DRAM层管理单元120a包括RC蔟管理表23、 WC簇管理表25、和 WC轨道管理表24,并基于这些管理表执行DRAM层的管理。除了轨道 管理表30、 MS块管理表35、 FS/IS管理表40、 FS/IS逻辑块管理表42、 和FS/IS内蔟管理表44之外,逻辑NAND层管理单元120b还包括MS结 构管理表60和FS/IS结构管理表65,并基于这些管理表执行NAND存储 器10的逻辑NAND层的管理。除了逻辑至物理转译表50之外,物理NAND 层管理单元120c还包括坏块管理表(BB管理表)200、保留块管理表(RB 块管理表)210、空闲块管理表(FB管理表)220、和现用块管理表(AB管理 表)230,并使用这些管理表执行NAND存储器10的物理NAND层的管理。首先,解释物理NAND层。如上文所解释,在32-位X5Ul模式中,并 行地致动四个通道(chO、 chl、 ch2,及ch3),且通过使用NAND存储器芯 片的双速模式来执行擦除、写入及读出。如图23中所示,将四个并行的操 作元件10a至10d中的NAND存储器芯片中的每一个划分为,例如,平面 0及平面1的两个分区。划分的数目不限于二。平面0及平面1包括彼此 独立的周边电路(例如,行解码器、列解码器、页緩沖器,及数据高速緩沖 存储器),并可基于从NAND控制器112输入的命令而同时执行擦除、写 入和读出。在NAND存储器芯片的双速模式中,通过并行地控制平面0及 平面l来实现高速写入。通道 的并行操作及对该两个平面的同时存取,而使物理块的擦除单位增加至 512kBx4x2=4MB。因此,在32-位双速才莫式中,八个平面并行地操作。图24为逻辑至物理转译表50的另一实例的图。在图24中所示的逻辑 至物理转译表50中,指示对应于逻辑块ID 50a的逻辑块何时被擦除的时 间的擦除时间50e的字段被添加至图17中所示的逻辑至物理表50。关于 擦除时间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"分配给第一芯片的平面O。将物理块ID "2048" 至"4095"分配给第一芯片的平面1。当将使用期间所产生的坏块BB登记 于BB管理表200中时,物理NAND层管理单元120c将坏块BB添加在紧 随对应于该坏块BB的通道内平面ID(ID#0至ID弁7)的最后有效条目之后, 而不对坏块BB进行排序。例如,将这样的物理块登记为坏块BB,该物理块为,当为空闲块FB 分配使用时,对该物理块的擦除操作未正常结束,或者当将数据写入用作 FS12、 IS13或MS11的现用块AB中时,对该物理块的写入操作未正常 结束。RB管理表210为用于管理以八个物理块单位(512 kB)形成4 MB逻辑 块时剩余的物理块(保留块RB )的表。RB管理表210以与BB管理表200 的格式相同的格式进行管理。通过针对对应于块的通道内平面ID中的每 一个以FIFO来管理块,优选地按照从最早登记的保留块RB起的次序使用保留块RB。
FB管理表220为用于以4 MB逻辑块单位管理当前未被分配使用(例 如,用于FS12、 IS 13或MS ll)的空闲块FB的表,且为按照空闲块FB 的产生次序排序的FIFO格式的列表。逻辑块ID储存于每一条目中。将根 据压紧处理等等而返回至FB管理表220的空闲块FB添加至列表的尾端。 空闲块FB的分配通过返回列表的顶块来执行。
如图26中所示,FB管理表以返回FIFO列表220a和分配列表220b 的两级来配置。返回FIFO列表220a按照擦除时间50e的次序来对齐。在 分配列表220b中,具有较小的擦除次数50c的逻辑块定位为更接近于列表 的顶部。这样的配置用于防止以短时间间隔重复擦除操作。将返回至FB 管理表220的不必要的逻辑块添加至返回FIFO列表220a的尾端,并将其 储存于该尾端处历时固定周期。
根据逻辑块的擦除次数50c而将从返回FIFO列表220a推出的逻辑块 插入分配列表220b中的某处。当从逻辑NAND层管理单元120b请求空闲 块FB的分配时,逻辑NAND层管理单元120c从分配列表220b的顶部提 取空闲块FB,并分配该空闲块FB。
通过FB管理表,有可能均等地分布待擦除的逻辑块(磨损均化处理), 使得所有逻辑块的擦除次数与擦除间隔大体均等。已知除擦除的次数之 夕卜,NAND型闪速存储器的寿命还取决于擦除处理的间隔,在间隔较长时, 保持性能较佳且寿命较长.这还表明出当擦除间隔短时,保持性能不良 且寿命受到损害。还已知即使以短间隔执行写入,除非执行适当的长期 擦除,否则保持性能得以恢复。
AB管理表230是这样的逻辑块(现用块AB)的列表,其中向所述逻 辑块分配使用(例如,用于FS12、 IS 13或MS 11),所述逻辑块分配自空 闲块FB。如在FB管理表220中一样,在AB管理表230中,在每一条目 中储存逻辑块ID。具有较早登记次序的逻辑块被定位为更接近于顶部。AB 管理表用于,例如,刷新处理。
刷新处理是这样的技术,其用于防止由于写入数据的老化恶化及读取干扰(其为读取处理中所涉及的数据破裂)的影响而发生超过SSD 110的错误校正能力的错误。具体而言,例如,在超过错误校正能力的错误发生之前,执行用于读出所储存数据并执行错误校正的处理,接着执行将数据重写于NAND型闪速存储器中的处理。例如,可将具有大的读出次数50d的块、AB管理表230的顶块等等设定为刷新处理的监视目标。
物理NAND层管理单元120c执行下文所解释的逻辑块/物理块管理。首先,参看图27来解释逻辑至物理转译表50中的逻辑块ID与八个物理块ID之间的对应关系。
如上文所解释,与作为逻辑至物理转译表50的索引的逻辑块ID 50a相关联的八个物理块ID登记于逻辑至物理转译表50的物理块ID 50b的字段中。图27为NAND存储器10的逻辑块ID与物理块ID之间的对应关系的图。 一个区^示一个物理块。将物理块ID分配给争一个物理块。逻辑块LO(现用块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的对应于逻辑块LI的逻辑块ID 50a的条目进行搜寻,且将该条目中的物理块ID 50b的字段中所包括的八个物理块ID当中对应于第四列笫三行的坏块BB的物理块ID改变为对应于从RB管理表210中选择的第四列第四行中的保留块RB的物理地址ID。
因此,此后,逻辑块LI包括由交替长虛线与短虚线环绕的第一列第四行、第二列第三行、第三列第三行、第四列第四行、第五列第三行、第六列第三行、第七列第三行及第八列第四行中的八个新物理块的组合。假定逻辑块Ll的逻辑块ID为"LI"。
此后,物理NAND层管理单元120c从FB管理表220获取新空闲块FB(图27中未示出)。假定获取的空闲块FB的逻辑块ID为"L2"。物理NAND层管理单元120c使用逻辑至物理转译表50来执行逻辑块ID的替换。
具体而言,物理NAND层管理单元120c使与具有逻辑块ID "L2"的新空闲块FB相关联的八个物理块与逻辑块ID "LI"相关联。同时,物理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将逻辑块Ll中除第四列第三行之外的第一列第四行、第二列第三行、第三列第三行、第五列第三行、第六列第三4亍、第七列笫三;f亍及第八列第四行中的七个物理块登记于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-位正常才莫式中,该模式的擦除单位为一个物理块(512 kB)。当写入尺寸很小时,例如,当额外写入用于记录管理表的更新内容的日志时,使用8-位正常模式。
当在此种8-位正常模式中使用的空闲块FB,即,512kB的单位的物理块为必要的时,物理NAND层管理单元120c确保32-位X5Ut模式中有4MB逻辑块,并选择所获取的逻辑块中的一个物理块。图27指示出分配了通过虛线BL3环绕的逻辑块L3,逻辑块L3包括通过粗线环绕的一个物理块(该物理块不久用于逻辑NAND层管理单元120b中)。
在8-位正常模式中,首先,物理NAND层管理单元120c使用选定的一个物理块。当这一个物理块由于额外记录日志而填满数据时,物理NAND层管理单元120c用于逻辑块L3中的八个物理块当中的另 一物理块。此后,重复该处理。
解释32-位X5U4模式中的擦除处理。每当以逻辑块单位擦除NAND存储器10中的数据时,物理NAND层管理单元120c将对应于图24中所示
字段累加一,且将擦除时间50e更新为最新的数据。逻辑NAND层
参照图28和29解释在逻辑NAND层中用于管理的MS结构管理表60和FS/IS结构管理表65。图28所示的MS结构管理表60包括管理MS单元11Q的结构的区域以及存储状态信息的区域。MS结构管理表60包括MS緩沖器管理表61,用于管理作为MSFB llaa分配的逻辑块ID、 MS额外记录IB llab、和TFS llb、根据有效轨道的数目的逻辑块ID列表62,其用于存储具有少量有效轨道的逻辑块ID以增加在MS压紧期间分类处理的速度;以及区域63和64,用于管理作为状态信息的逻辑块的最大数目MBL以及有效逻辑块的数目VBL。
在MS结构管理表60中,为MSFB llaa、 MS额外记录IB llab和TFS 11b准备具有所需条目数的固定字段61a至61c。用于TFS lib的字段61c具有链接的列表结构。执行对具有FIFO结构的TFS lib的类似FIFO管理。
在根据有效轨道的数目的逻辑块ID列表62中,对于具有一个有效轨道的逻辑块准备所需条目数,对于具有两个有效轨道的逻辑块准备所需条目数,…,对于具有2J-1个有效轨道的逻辑块准备所需条目数。在每个条目中记录逻辑块ID。当搜寻MS逻辑块管理表35的有效轨道的数目35c的字段时,始终将根据有效轨道的数目的逻辑块ID列表62更新为最新状态。在根据有效轨道的数目的逻辑块ID列表62中不输入登记于MS緩冲器管理表61中的作为MSIB 11a和TFS lib的逻辑块。
在用于作为状态信息的逻辑块的最大数目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,用于管理FS12的FIFO结构;IS输入緩冲器管理表68,用于管理被分配为ISIB 13a的逻辑块ID;以及IS FIFO管理表69,用于管理IS 13的FIFO结构。
在FS输入緩冲器管理表66中,为FSFB 12aa和FS额外记录IB 12ab 准备具有所需条目数的固定字段66a和66b。在固定字段66a和66b中登 记作为FS/IS逻辑块管理表42的索引的FS/IS块ID 42a。在IS输入緩沖 器管理表68中,为ISIB 13a准备具有所需条目数的固定字段。在该固定 字段中登记FS/IS块ID 42a。在FS FIFO管理表67中,在固定字段中准 备用于形成FS 12的FIFO结构的逻辑块数目的条目。在FS FIFO管理表 67的固定字段中登记FS/IS块ID 42a。在IS FIFO管理表69中,在固定 字段中准备用于形成IS 13的FIFO结构的逻辑块数目的条目。在固定字段 中登记FS/IS块ID 42a 。
解释以下更新处理,即在参照图19解释的执行被分成2个阶段(WCF 处理和CIB处理)的写入处理时从WC 21到MSIB 11a的复制处理所涉及 的管理表的更新处理。这里,执行以轨道为单位从WC21到MS额外记录 IB llab的复制。参照在其中登记与决定要排挤的轨道对应的逻辑轨道地 址24a的轨道条目中的路-线(way-line)位映像24c, DRAM层管理单元120a 从顶部依次检查WC轨道管理表24,将在路-线位映像24c的m x n个条 目中将与具有有效位"1"的条目对应的WC簇管理表25中的条目的状态 标志25a从有效改变为等待以排挤到NAND,以及向逻辑NAND层管理单 元120b通知排挤请求。
另一方面,参照图28所示的MS结构管理表60的MS緩冲器管理表 61以及图14所示的MS逻辑块管理表35,逻辑NAND层管理单元120b 检查MS额外记录IB llab的状态。当根据MS緩冲器管理表61的MS额 外记录IB的字段61b判断MS额外记录IB llab已经存在时,逻辑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 层管理单元120b向物理NAND层管理单元120c通知搜寻的结果。因此, 物理NAND层管理单元120c执行从WC 21到MS额外记录IB llab的排 挤,这涉及轨道内扇区填充,或不涉及轨道内扇区填充。
当物理NAND层管理单元120c通知了从WC 21到MS额外记录IB llab的排挤完成时,如果从物理NAND层管理单元120c获得了新空闲块 FB作为MS额外记录IB llab,则逻辑NAND层管理单元120b设定与从 物理NAND层管理单元120c给出的空闲块FB的逻辑块ID对应的MS逻 辑块管理表35的条目的有效标志35e为有效,将该逻辑块ID登记于MS 緩冲器管理表61的MS额外记录IB的字段61b中,并增加MS结构管理 表60的有效逻辑块的数目VBL。
逻辑NAND层管理单元120b更新轨道管理表30。换句话说,逻辑 NAND层管理单元120b将例如簇位映4象30b、逻辑块ID 30c、和逻辑块内 轨道位置30d的所需信息登记于与从WC 21排挤到MS额外记录IB llab 的轨道对应的逻辑轨道地址30a的条目中。
当具有相同逻辑轨道地址的旧轨道没有存在于NAND存储器中并且没有执行轨道内扇区填充时,逻辑NAND层管理单元120b将与从WC 21 排挤的新轨道相关的所需信息登记于与轨道管理表30的逻辑轨道地址对 应的条目中。逻辑NAND层管理单元120b将从WC21排挤的轨道的相关 的信息登记于与MS逻辑块管理表35的已写入逻辑块ID对应的条目中。 作为在MS逻辑块管理表35中的登记,例如存在逻辑轨道地址(轨道管理 指针35b)的更新,其作为与在分配给MS 11的逻辑块中存储的轨道对应 的轨道管理表30的索引,存在有效轨道的数目35c,以及可写入的顶轨道 35d的更新。
当具有相同逻辑轨道地址的旧轨道存在于NAND存储器10中(取代 旧轨道)并且执行轨道内扇区填充时,逻辑NAND层管理单元120b在与 轨道管理表30中的合并源轨道对应的逻辑轨道地址30a的条目中更新例如 逻辑块ID 30c和逻辑块内轨道位置30d的所需信息。具体地,逻辑NAND 层管理单元120b将逻辑块ID30c从与合并源轨道关联的MS 11中的旧逻 辑块ID改变为与MS额外记录IB llab对应的新逻辑块ID。根据额外记 录状态改变逻辑块内轨道位置30d。
此外,在MS逻辑块管理表35中与合并源轨道关联的旧逻辑块ID相 应的条目中,逻辑NAND层管理单元120b删除轨道管理指针35b的字段 的相关部分,减少有效轨道的数目35c,并更新MS结构管理表60的根据 有效轨道的数目的逻辑块ID列表62。当与合并源轨道关联的旧逻辑块ID 相应的条目中的有效轨道的数目35c被逐渐减少到0时,逻辑NAND层管 理单元120b减少MS结构管理表60的有效逻辑块的数目VBL,并将作为 空闲块FB的逻辑块返回至物理NAND层管理单元120c。逻辑NAND层 管理单元120b设置与释放的逻辑块对应的条目的有效标志35e为无效。此 外,以如上文所解释的相同方式,逻辑NAND层管理单元120b将与从 WC 21排挤的新轨道相关的信息登记于MS逻辑块管理表35中。
当物理NAND层管理单元120c通知从WC 21到MS额外记录IB 1 lab 的排挤完成时,逻辑NAND层管理单元120b向DRAM层管理单元120b 通知排挤的完成(WCF处理)。DRAM层管理单元120a接收该通知并i殳置与属于WC簇管理表25中的排挤轨道的所有簇对应的条目中的状态标 志25a为无效(可用)。随后,可以在条目中写入来自主机装置l的数据。 对于与WC轨道管理表24中的排挤轨道对应的列表,例如,改变或删除 前一列表的下一指针24d,并且列表被无效。
解释CIB处理。当WCF处理完成时,执行CIB处理,其包括用于将 FSIB 12a中通过WCF处理而写入的数据移动至FS 12的处理、以及用于 将MSIB lla中通过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 lla的MSFB llaa 或MS额外记录IB llab中(步骤S400)。当一个或多个满块存在于MSIB lla中时,逻辑NAND层管理单元120b执行下面所解释的处理。当在步 骤S400的判断为否时,处理转移至步骤S440。
当在步骤S400的判断为是时,参照MS逻辑块管理表35的有效轨道 的数目35c,逻辑NAND层管理单元120b检查有效轨道的数目35c为0 的无效逻辑块是否存在于MS中。当无效逻辑块存在于MS中时,逻辑 NAND层管理单元120b将无效逻辑块返回至物理NAND层管理单元120c (步骤405)。在与返回的无效逻辑块对应的MS逻辑块管理表35的条目 中,将有效标志35e设置为无效,并减少MS结构管理表60的有效逻辑块 的数目VBL。逻辑NAND层管理单元120b直接将MSFB llaa中的满逻 辑块移动至MS 11 ,以及将MS额外记录IB llab中的满逻辑块移动至TFS lib (步骤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压紧处理,如上文所解释的,存在两种类型,即i个轨道 MS压紧和小于2j个轨道MS压紧。在2'个轨道MS压紧中,使用MS压 紧緩沖器lie,并且将压紧之后用作MS压紧緩冲器11c的逻辑块移动至 TFSllb的顶部。在小于2i个轨道MS压紧中,将有效轨道复制到MS额 外记录IBllab。
首先,为了从具有少量有效轨道的逻辑块收集2i个轨道,逻辑NAND 层管理单元120b参照MS结构管理表60的根据有效轨道的数目的逻辑块 ID62来执行2j个轨道MS压紧,并将收集的2j个轨道复制到从物理NAND 层管理单元120c获取的MS压紧緩冲器llc。
具体地,逻辑NAND层管理单元120b向物理NAND层管理单元120c 发出空闲块FB的获取请求,并获取空闲块FB以及被分配为空闲块FB的 逻辑块ID。逻辑NAND层管理单元120b请求物理NAND层管理单元120c 将,皮选择为压紧对象的多个轨道复制到空闲块FB 。当作为压紧对象轨道具 有在WC 21、 FS单元12Q、和IS单元13Q中的有效蔟时,逻辑NAND 层管理单元120b执行被动合并,以将有效蔟收集和合并到MS压缩緩冲器 llc中。
当物理NAND层管理单元120c通知压紧完成时,逻辑NAND层管理 单元120b将在具有与经过轨道管理表30a的压紧的轨道对应的逻辑轨道地 址30a的条目中的逻辑块ID 30c更新为从物理NAND层管理单元120c获取的空闲块FB的逻辑块ID,并更新逻辑块内轨道位置30d。
逻辑NAND层管理单元120b将从物理NAND层管理单元120c(用作 MS压紧緩冲器11c)获取的空闲块FB的逻辑块ID登记为MS逻辑块管 理表35中的新条目,并将所需信息登记于条目中的各个字段当中。作为该 登记,存在轨道管理指针35b的更新,有效轨道数目的更新,可写入的顶 轨道35d的更新等。
逻辑NAND层管理单元120b将用作MS压紧緩沖器11c的逻辑块ID 登记在用于MS结构管理緩沖器60的MS緩冲器管理表61的用于TFS的 字段61c的FIFO结构(链接列表)的顶部,以移动作为对TFS llb的顶 部(最旧位置)的MS压紧的结果的由包括有效2i个轨道的一个逻辑块配 置的MS压紧緩沖器llc。当TFS lib已满时,将顶部的最旧逻辑块移动 至MSll。
随后,数据管理单元120使得MS11中的压紧源的旧轨道无效。具体 地,逻辑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再次执行收集个有效轨道的2j个轨道MS压紧。 当在有效逻辑块的数目VBL超过逻辑块的最大数目MBL的状态下为了收 集2j个有效轨道的2j个轨道MS压紧是不可能的时,逻辑NAND层管理单 元120b执行小于2j个轨道MS压紧。
在小于2'个轨道MS压紧中,逻辑NAND层管理单元120b将作为压紧对象的小于2i个轨道数目的轨道复制到MS额外记录IB llab,以生成 由无效2s个轨道形成的无效逻辑块。逻辑NAND层管理单元120b使得生 成的无效逻辑块返回至物理NAND层管理单元120c,以减少有效逻辑块的 数目VBL。省略对于小于2i个轨道MS压紧的管理表更新的解释。 FS 12中的CIB处理
详细解释在图19中的步骤S340处解释的在FS12中的CIB处理。逻 辑NAND层管理单元120b从FS/IS逻辑块管理表32的有效蔟的数目42d 的字段获取与登记于FS/IS结构管理表65的FS输入緩沖器管理表66的 FSFB的字段66a与FS额外记录IB的字段66b中的逻辑块ID相关的有效 簇的数目的信息。逻辑NAND层管理单元120b检查以簇写入所有逻辑页 的一个或多个满块是否存在于FSIB 12a的FSFB 12aa或FS额外记录IB (步骤S440 )。当 一个或多个满块存在于FSIB 12a中时,逻辑NAND层 管理单元120b执4亍以下解释的处理。当在步骤S440的判断为否时,处理 在这里完成。
当在步骤S440的判断为是时,参照FS/IS结构管理表65和FS/IS逻 辑块管理表42的有效蔟的数目42d,逻辑NAND层管理单元120b检查有 效簇的数目42d为0的无效逻辑块是否存在于FS单元12Q中。当无效逻 辑块存在于FS单元12Q中时,逻辑NAND层管理单元120b将无效逻辑 块返回至物理NAND层管理单元120c (步骤S445)。
从MS逻辑块管理表35和FS/IS逻辑块管理表42删除所返回的逻辑 块的条目。逻辑NAND层管理单元120b将FSFB 12aa中的满逻辑块移动 至FS 12,以及将FS额外记录IB 12ab中的满逻辑块移动至FS 12 (步骤 S447)。具体地,移动处理是这样的处理,即仅用于删除在FS/IS结构管 理表65的FS输入緩冲器管理表66的用于FSFB的字段66a与用于FS额 外记录IB的字段66b中登记的相关逻辑块ID。
逻辑NAND层管理单元120b判断具有FIFO结构的FS 12的逻辑块 数目是否超过FS 12所允许的逻辑块的预定最大数目BLfsmax (步骤 S450 )。具体地,逻辑NAND层管理单元120b判断根据FS FIFO管理表67计算的逻辑块数目是否超过预先设置的逻辑块的最大数目BLfsmax。
作为这个比较的结果,当计算的逻辑块数目超过逻辑块的最大数目 BLfsmax时,根据该点的状态,逻辑NAND层管理单元120b每次对于例 如2个逻辑块执行到MS 11的排挤处理(步骤S460)以及对于一个逻辑块 执行到IS 13的排挤处理(步骤S500 )。当在步骤S450处判断FS 12未满 时,逻辑NAND层管理单元120b完成这里的处理,而不执行从FS 12到 MSIB 11a的排挤处理以及从FS 12到ISIB 13a的排挤处理。
在从FS 12到MSIB 11a的排挤处理中,逻辑NAND层管理单元120b 判断是否存在从FS 12直接复制到MSIB 11a而不需要移动通过IS单元 13Q的逻辑块(步骤S455)。具体地,逻辑NAND层管理单元120b参照 轨道管理表30的FS簇的数目31f的字段逐个依次检查在FS 12的FIFO 顶部的最旧逻辑块中的簇,并搜寻这些簇所属的轨道在FS单元12Q中具 有多少有效蔟。当轨道中的有,的数目等于或大于预定阈值(例如2"1) 时,逻辑NAND层管理单元120b设置该逻辑轨道地址作为决定要排挤到 MSIB 11a的轨道。
通过以下解释的路径(route)执行搜寻。
1. 逻辑NAND层管理单元120b从FS/IS结构管理表65的FS FIFO 管理表65获得在FIFO顶部的最早旧FS/IS块ID。
2. 逻辑NAND层管理单元120b从与FS/IS块ID对应的FS/IS逻辑 块管理表42的条目中的块内簇表42c的字段获得FS/IS内簇管理表44的 索引。
3. 逻辑NAND层管理单元120b从FS/IS内蔟管理表44中获得的索 引所指定的一个逻辑块中的每个条目获取到FS/IS管理表40的一个指针, 并跳转到FS/IS管理表40的相关链接。
4. 逻辑NAND层管理单元120b获得在跳转目的地的链接所属的相关 逻辑轨道地址。
5. 逻辑NAND层管理单元120b使用所获取的逻辑轨道地址检查在轨 道管理表30的相关条目中的FS簇的数目30f的字段。6.逻辑NAND层管理单元120b重复上述3至5。
例如,每次对于2个逻辑块执行从FS 12到MS 11的排挤(块复制)。 换句话说,逻辑NAND层管理单元120b收集2个逻辑块的具有等于或大 于预定阈值(例如2"1)的轨道内有效蔟的数目的轨道,以及将2个逻辑 块的收集的轨道排挤至MSIB lla的MSFB llaa (步骤S460 )。在排挤中, 对于在排挤的轨道中的FS 12中不存在的簇,逻辑NAND层管理单元120b 执行被动合并,以从WC21、 IS单元13Q和MS ll读出这些蔟,并合并 这些簇。
然而,当对于2个逻辑块不存在决定#皮排挤至MSIB lla的轨道时, 逻辑NAND层管理单元120b将1个逻辑块排挤至MSIB lla的MSFB llaa (块复制),并以轨道为单位在MS额外记录IB llab中额外地记录不够 1个逻辑块的轨道(轨道复制)(步骤S460 )。类似地,当对于l个逻辑 块不存在决定被排挤至MSIB lla的轨道时,逻辑NAND层管理单元120b 以轨道为单位在MS额外记录IB llab中额外地记录不够1个逻辑块的轨 道(轨道复制)(步骤S460)。随后,在FIFO结构的FS 12的顶逻辑块 中没有留下有效蔟时,逻辑NAND层管理单元120b向物理NAND层管理 单元120c返回顶逻辑块,作为无效逻辑块。
在MSll中的CIB处理(图19中的步骤S350)
当这样执行从FS 12到MSIB lla的排挤时,再次执行在MS单元11Q 中的CIB处理(步骤S480 )。在步骤S480中的在MS单元11Q中的CIB 处理与在MS单元11Q中的第一次CIB处理相同(步骤S400至S420 )。 因此,省略多余解释。在MS单元11Q中的CIB处理之后,逻辑NAND 层管理单元120b以上述解释的相同方式检查是否满足从FS 12到MSIB 11a的排挤的^Ht (步骤S455)。当满足排挤条件时,再次执行从FS 12 到MSIB lla的每2个逻辑块的排挤以及上述解释的在MS 11中的CIB处 理。这个处理^皮重复,直到在步骤S455中获得判断否。
在FS 12中的CIB处理
当在步骤S455中判断为否时,逻辑NAND层管理单元120b判断是否满足从FS 12到ISIB 13a的排挤的条件(步骤S490 )。具体地,在从FS 12 到MSIB lla的排挤中,当在具有FIFO结构的满状态的FS 12的检查的 逻辑块中留下有效蔟时,假设满足在步骤S490的从FS 12到IS 13的排挤 的条件,逻辑NAND层管理单元120b执行从FS 12到ISIB 13a的排挤。
当在步骤S490满足条件时,逻辑NAND层管理单元120b将仅包括未 包含在要排挤至MSIB lla的轨道中的簇的顶逻辑块移动至ISIB 13a (块 移动)(步骤S500)。在步骤S500,逻辑NAND层管理单元120b执行例 如一个逻辑块的排挤。随后,根据状态,在执行步骤S520到S585的过程 之后,逻辑NAND层管理单元120b可根据在步骤S590的判断再次执行在 步骤S500的从FS 12到ISIB 13a的排挤。
在步骤S500再次执行的排挤的状态是这样的状态,即,例如在具有多 个满逻辑块的緩冲器(FSFB 12a或FS额外记录IB 12ab )存在于FSIB 12a 中时,如果具有FIFO结构的FS 12是满的,则根据满块从FSIB 12a到 FS 12的移动执行多个逻辑块从FS 12到MSIB lla或ISIB 13a的排挤。 在这个条件下,可执行多个逻辑块从FS 12到ISIB 13a的排挤。
在IS中的CIB处理(图19中的步骤S360)
除了图30之外,参照图31中所示的流程解释在满足步骤S490的* 时在IS 13中执行的排挤处理和压紧处理的细节。首先,以上文解释的相 同方式,逻辑NAND层管理单元120b检查在IS单元13Q中是否存在无 效逻辑块,并且当IS单元13Q中存在无效逻辑块时,将无效逻辑块返回 至物理NAND层管理单元120c (步骤S520)。在与该返回的逻辑块对应 的MS逻辑块管理表35和FS/IS逻辑块管理表42的条目中,设置有效标 志 35e和42f为无效。
逻辑NAND层管理单元120b判断具有FIFO结构的IS 13的逻辑块数 目是否超过IS 13所允许的逻辑块的预定最大数目Blismax (步骤S530 )。 具体地,逻辑NAND层管理单元120b判断根据IS FIFO管理表69计算的 逻辑块数目是否超过预先设置的逻辑块的最大数目BLismax。
作为比较的结果,当所计算的逻辑块的数目超过逻辑块的最大数目BLismax时,逻辑NAND层管理单元120b将每次例如2个逻辑块的轨道 从IS 13排挤至MSIB 11a的MSFB 11a (步骤S540 )。当步骤S530的判 断为IS 13未满时,逻辑NAND层管理单元120b将ISIB 13a中的满逻辑 块移动至IS 13b,而不需要执行到MSIB 11a的排挤处理(步骤S585 )。
在步骤S540的排挤中,逻辑NAND层管理单元120b使用图12中所 示的轨道管理表30等执行如图31所示用于选择要排挤的轨道的处理。在 图31,逻辑NAND层管理单元120b开始选择处理(循环搜寻处理;以下 简单地称为搜寻处理)(步骤S700)。逻辑NAND层管理单元120b开始
一逻辑轨道地址搜寻,所述地址作为在最后搜寻中的最后检索的轨道(步 骤S710)。
当第一次执行搜寻(第一循环)时,逻辑NAND层管理单元120b开 始从轨道管理表30的第一条目搜寻(步骤S740 )。当在步骤S740存储的 搜寻轨道是轨道管理30的最后条目(图12中的轨道n),在步骤S710的 下一轨道搜寻中,逻辑NAND层管理单元120b返回至顶条目(图12中的 轨道O)。
在这样的搜寻中,参照轨道管理表30的条目中IS簇的数目30g的字 段(在相关逻辑轨道地址中的有效簇的数目),当在IS 13的条目中存储 有效蔟时,逻辑NAND层管理单元120b将该条目的逻辑轨道地址登记于 未示出的新搜寻的轨道列表中(步骤S720 )。逻辑NAND层管理单元120b 将在新搜寻的轨道列表中登记的轨道的数目与预定阈值L相比较。当登记 的轨道数目小于阈值L时,逻辑NAND层管理单元120b将过程转移到步 骤S710,并以上迷解释的相同方式检查轨道管理表30的下一条目。
通过重复这个处理,逻辑NAND层管理单元120b将阈值L的逻辑轨 道地址登记于新搜寻的轨道列表中(在步骤S730为"是")。逻辑NAND 层管理单元120b将与新搜寻的轨道列表中登记的逻辑轨道地址对应的轨 道管理表30的条目(索引)存储为搜寻的最后轨道,并在当前循环中完成 搜寻(步骤S740)。逻辑NAND层管理单元120b判断是否存在列出了上次未选择的(未 示出)的逻辑轨道地址的未选择的轨道列表(步骤S750)。在第一循环的 情况下,由于不存在未选择的轨道列表,所以逻辑NAND层管理单元120b 基于2个列表,即新搜寻轨道列表和新增加块内轨道列表(未示出)来选 择2^个逻辑轨道(步骤S760)。新增加的块内轨道列表是与在图30的 步骤S500从FS 12排挤至IS单元13Q的逻辑块(输入到FS/IS结构管理 表65的IS输入緩冲器管理表68中)中包括的轨道相关的列表。
在第一循环中,逻辑NAND层管理单元120b使用这两个列表选择2i+1 个轨道作为排挤候选项。在选择中,如上文所解释的,使用这样的选择参 考(分值)S,其是通过使用轨道中的有效蔟的数目和有效蔟系数来获得的。
分值S-轨道中的有效蔟的数目x有效簇系数。
有效蔟系数是根据轨道是否存在于其中无效轨道存在于MS单元11Q 中的逻辑块中而加权的值。轨道存在时的数目大于轨道不存在时的数目。
可通过查找轨道管理表30的IS簇的数目30g的字段来获得有效蔟的 数目。可通过按轨道管理指针35b的字段查找与轨道管理表30链接的MS 逻辑块管理表35的有效轨道的数目35c的字段来获^T效蔟系数。
逻辑NAND层管理单元120b从新增加块内轨道列表中包括的多个轨 道选择具有更大分值S的M个轨道(预定设置值)。逻辑NAND层管理 单元120b将通过先前搜寻登记于新搜寻轨道列表中的L个轨道增加至所 选的M个轨道,以及从L+M个轨道中选择具有更大分值S的2i+1个轨道 作为要排挤至MS 11的轨道。逻辑NAND层管理单元120b将L+M个轨 道中除了所选的2i+1个轨道之外的轨道登记于未选轨道列表中。
在第二或随后循环中,逻辑NAND层管理单元120b基于3个列表, 即未选轨道列表、新搜寻轨道列表和新增加块内轨道列表来选择2i+1个轨 道(步骤S770 )。才艮据随后在图30中的步骤S570的判断,确定是否应该 执行第二或随后时间的排挤。在使用3个列表的选择处理中,逻辑NAND 层管理单元120b从未选轨道列表中包括的多个轨道选择具有更大分值S 的N (预定设置值)个轨道,从新增加块内轨道列表中包括的多个轨道选择具有更大分值S的M(预定设置值),将当前第二或随后循环中获得的 新搜寻轨道列表中登记的L个轨道增加至N+M个轨道,并从L+M+N个 中选择具有更大分值s的2i+1个轨道作为要排挤至MS 11的轨道。逻辑 NAND层管理单元120b将L+M+N个逻辑轨道中除了所选的2i+1个轨道之 外的轨道登记于在下一循环中使用的未选轨道列表中。
再参照图30中的步骤S540,当如上所述选择2个逻辑块的轨道的排 挤候选项时,逻辑NAND层管理单元120b将2个逻辑块的所选轨道(即 2i+1个轨道)排挤至MSIB 11a的MSFB llaa (步骤S540 )。在排挤中, 对于要排挤在轨道中未存在于IS单元13Q中的簇,执行被动合并,以从 WC21、 FS单元12和MS11读出簇并合并簇。在以上说明中,基于有效 簇的数目以M示在MS中存在多孔块(porous block)的系数根据分值S 选择要排挤的轨道。然而,可仅根据有效蔟的数目选择要排挤的轨道。
在MS中的CIB处理(图19中的步骤S370)
当这样执行从IS 13到MSIB 11a的排挤时,再次执行在MS 11中的 CIB处理(步骤S560)。在步骤S560中的在MSll中的CIB处理与第一 次的在MS 11中的CIB处理(步骤S400至S420)相同。因此,省略多余
在IS中的CIB处理
逻辑NAND层管理单元120b判断是否应该再次执行从IS 13到MSIB 11a的排挤(步骤S570 )。在步骤S540的排挤之后,逻辑NAND层管理 单元120b使用MS逻辑块管理表35的字段和FS/IS逻辑块管理表42的有 效蔟的数目42d等以从有效蔟的最小数目依次对IS 13中的逻辑块分类。 当具有有效蔟的最小数目的2个逻辑块的有效蔟的总数等于或大于2k (对 于一个逻辑块),其可以是预定设置值时,逻辑NAND层管理单元120b 判断是否满足从IS 13到MSIB 11a的排挤的条件(步骤S570 )。
当满足从IS 13到MSIB 11a的排挤的M时,逻辑NAND层管理单 元120b将过程转移至S540,并执行图31中步骤S700到S750和S770以 再次执行上述2个逻辑块的排挤处理。只要在步骤S570的判断为是,逻辑NAND层管理单元120b重复执行从IS 13到MSIB 11a的2个逻辑块的排 挤处理以及在MSll中的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 的排挤的M (步骤S590 )。当满足从FS 12到ISIB 13a的排挤的条件时, 逻辑NAND层管理单元120b将处理转移至步骤S500,并再次重复该处理。 在完成IS压紧处理之后,当判断没有满足从FS 12到ISIB 13a的排挤的 条件时,逻辑NAND层管理单元120b完成当前写入处理。以上是写入处 理的细节。
如上所述,在这个实施例中,逻辑NAND层管理单元120b基于正向 查找轨道管理表30和FS/IS管理表40和反向查找MS逻辑块管理表35、 FS/IS逻辑块管理表42、和FS/IS内簇管理表44,对于作为NAND存储器 10中的组件的MS单元11Q、 FS单元12Q、和IS单元13Q执行读出处理 和写入处理(WCF+CIB)、以轨道为单位对MS单元11Q的管理、以蔟 为单位对FS单元12Q和IS单元13Q的管理等。
图12中所示的正向查找轨道管理表30是这样的表,通过使用以轨道 为单位排列LBS (其以扇区为单位排列)获得的逻辑轨道地址30作为索引来主要管理MS 11上的逻辑数据位置(逻辑块ID 30c和逻辑块内轨道位 置30d )。当以簇为单位将数据存储在FS单元12Q和IS单元13Q中时, 还存储指针作为FS/IS管理表40的条目的链接信息,在其中登记有基础信 息和关于数据的详细信息(见A1)。通过设置为索引的逻辑轨道地址30a 存储在写入例如FS簇的数目30f和IS簇的数目30g时用于排挤处理和压 紧处理所必要的信息。
对于图13中所示的正向查找FS/IS管理表40使用通过以簇为单位排 列LBA所获得的逻辑蔟地址。以独立于每个逻辑轨道地址的链接列表格式 形成FS/IS管理表40。每个逻辑轨道地址的链接列表中的每个是这样的表, 即以属于逻辑轨道地址的逻辑簇地址为单位管理在FS单元12Q或IS单元 13Q上的逻辑数据位置(逻辑块ID 40b +逻辑块内簇位置40c)的表。链 接列表包括FS/IS块ID 40d的字段,其作为对F/IS逻辑块管理表42的索 引的链接信息(见A5 )。
图14中所示的反向查找MS逻辑块管理表35通过设定为索引的逻辑 块ID存储与逻辑块中的轨道数目等价的轨道管理指针35b。反向查找MS 逻辑块管理表35是到轨道管理表30的索引的指针(见A2 ),所述轨道管 理表30指示在逻辑块ID 35a中存储哪些轨道地址。这使其可以管理属于 每个逻辑块ID 35a的逻辑轨道地址。此外,MS逻辑块管理表35通过设 定为索引的逻辑块ID35a存储在写入时用于排挤处理、压紧处理等的必要 信息,即有效轨道的数目35c、可写入的顶轨道35d、有效标志35e等。
图15中所示的反向查找FS/IS逻辑块管理表42是这样的表,即通过 设定为索引的FS/IS块ID 42a来管理表示在用作FS单元12Q或IS单元 13Q的逻辑块中存储哪个逻辑簇地址的信息。因此,FS/IS逻辑块管理表 42具有块内簇表42c的字段,作为到FS/IS内簇管理表44的指针(见A3 )。 FS/IS逻辑块管理表42通过设定为索引的FS/IS块ID 42a存储在写入时用 于排挤处理、压紧处理等的必要信息,即有效簇的数目42d、可写入的顶 页42e、有效标志42f等。
图16中所示的反向查找FS/IS内簇管理表44是这样的表,即与表上的条目位置关联的在用作FS单元12Q和IS单元13Q的一个逻辑块中管 理每个簇位置(通过以簇为单位划分NAND存储器10获得的存储位置) 的表。在每个条目44a的内容中,登记到包括由FS/IS管理表40管理的逻 辑簇地址的列表(链接列表中的一个列表)的作为链接信息的指针(见A4 ), 从而可以识别哪个逻辑簇地址与簇位置关联。
这样,在NAND存储器10的以轨道为单位的管理中,链接作为轨道 管理表30的索引的逻辑轨道地址30a与MA逻辑块管理表35的轨道管理 指针35b的字段,以形成作为正向查找表的轨道管理表30,以及形成作为 反向查找表的MS逻辑块管理表35。因此,在写入处理中,可以增加在执 行例如排挤处理、压紧处理和表更新的各种处理时的管理表的搜寻处理的 速度。
例如,在MS压紧处理中,轨道的存储位置改变。必须根据存储位置 的改变来改变MS逻辑块管理表35和轨道管理表30。换句话说,根据轨 道的存储位置的改变,必须改变与MS逻辑块管理表35的存储位置对应的 索引的每个字段(轨道管理指针35b、有效轨道的数目35c、可写入的顶轨 道位置35d等),之后改变例如轨道管理表30中的逻辑块ID 30c和逻辑 块内轨道位置30d的所需信息。
在这样的情形下,在这个实施例中,除了将逻辑块地址自身登记于在 MS逻辑块管理表35的轨道管理指针35b的字段中之外,还登记到轨道管 理表30的索引的指针。因此,可以跳转到轨道管理表30的索引的条目, 而不需要搜寻和改变所述条目中的所需信息。
另 一方面,在将相关逻辑轨道地址自身登记于轨道管理指针35b的字 段中时,在执行了改变MS逻辑块管理表35的每个条目的工作之后,必须 执行对相关逻辑轨道地址30a的搜寻处理,同时逐个跟踪轨道管理表30 的索引。在搜寻之后,改变在相关逻辑轨道地址40a的条目中的所需信息。 因此,与该实施例相比,更新管理表的工作的速度实质上降低。
在NAND存储器10的以簇为单位的管理中,将FS/IS逻辑块管理表 42的块内簇表42c链接至FS/IS内簇管理表44 ,以及链接FS/IS内蔟管理表44的条目44a和FS/IS管理表40,以形成作为正向查找表的FS/IS内蔟 管理表44,以及形成作为反向查找表的FS/IS逻辑块管理表42和FS/IS 内簇管理表44。因此,在写入处理中,可以增加在执行例如排挤处理、压 紧处理和表更新的各种处理时的管理表的搜寻处理的速度。
例如,在IS压紧处理中,簇的存储位置改变。必须才艮据存储位置的改 变来改变FS/IS逻辑块管理表42、块内簇表42c和FS/IS内簇管理表44。 换句话说,才艮据轨道的存储位置的改变,必须改变与FS/IS逻辑块管理表 42的存储位置对应的索引的每个字段(逻辑块ID42b、块内簇表42c、有 效簇的数目42d、可写入的顶页42e等),改变在FS/IS内簇管理表44的 每个条目中登记的数据,之后进一步改变例如在FS/IS管理表40的相关逻 辑簇地址中的逻辑块ID 40b和逻辑块内簇位置40c的所需信息。
在这样的情形下,在这个实施例中,除了将逻辑簇地址登记于在FS/IS 内簇管理表44的每个条目中之外,还登记到包括由FS/IS管理表40管理 的相关逻辑簇地址的列表的指针44a (见A4)。因此,可以从FS/IS内蔟 管理表44的相关条目跳转到包括FS/IS管理表40的逻辑簇地址的列表, 并改变列表中所需的信息。另一方面,在将相关逻辑簇地址自身登记于 FS/IS内簇管理表44的每个条目中时,在执行了改变FS/IS内簇管理表44 的每个条目的工作之后,必须执行对相关逻辑簇地址40a的搜寻处理,同 时逐个跟踪FS/IS管理表40中的链接列表。在搜寻之后,改变在相关逻辑 轨道地址40a的条目中的所需信息。因此,与该实施例相比,更新管理表 的工作的速度实质上降低。
在这个实施例中,轨道管理表30具有簇表指针30e,其是到FS/IS管 理表40的顶条目的作为链接信息的指针。FS/IS管理表40是对于每个逻 辑轨道地址独立的链接列表。这使其可以在增加搜寻处理速度的同时减少 管理表所必须的存储器量。例如,如果执行蔟管理的FS/IS管理表40是正 常表(包括当前通过蔟管理所管理的簇地址和存储位置)而非链接列表, 以搜寻在FS单元12Q或IS单元13Q上存在的簇,则在最坏的情况下, 必须对整个表搜寻,并且搜寻需要极长的时间。为了增加搜寻速度,还可想到准备具有与LBA区域对应的所有簇地址的条目的表。然而,管理表的 尺寸极大。另一方面,在这个实施例中,由逻辑轨道地址索引的轨道管理 表30具有到FS/IS管理表40的顶条目的指针,其是独立于每个逻辑轨道 地址的链接列表。因此,可以在增加搜寻处理速度的同时节省管理表所需 的存储量。
这样,在该实施例中,分别以轨道和簇为单位提供正向查找和反向查 找表,并且这些表被链接。因此,可以增加管理表的搜寻处理的速度。此 外,在该实施例中,WC轨道管理表24和FS/IS管理表40包括链接列表。 因此,减少表更新工作量,并且可减少管理表的容量。
换句话说,本发明提供一种存储器系统,其可增加对管理表的搜寻处 理的速度,并且可降低对创建管理表所需的存储量。
本发明不限于上文所描述的实施例。因此,可在不偏离本发明的范围 的情况下进行各种修改。
此外,上文所描述的实施例包括各种具有创造性步骤的组成部分。即, 可通过分布或整合任意所揭示的组成部分而对本发明进行各种修改。
例如,可通过从这些实施例中所揭示的所有组成部分当中省略任意组 成部分而进行本发明的各种修改,只要可解决本发明要解决的问题且可获 得将要通过本发明获得的优点即可。
此外,在上述实施例中解释簇尺寸乘以等于或大于二的正整数等于 逻辑页尺寸。然而,本发明并不因此而受限制。
例如,簇尺寸可与逻辑页尺寸相同,或可为通过组合多个逻辑页而使 逻辑页尺寸乘以等于或大于二的正整数所获得的尺寸。
此外,簇尺寸可与用于在诸如个人计算机的主机设备1上运行的OS (操作系统)的文件系统的管理单位相同。
此外,在上述实施例中解释轨道尺寸乘以等于或大于二的正整数等 于逻辑块尺寸。然而,本发明并不因此而受限制。
例如,轨道尺寸可与逻辑块尺寸相同,或可为通过组合多个逻辑块而 使逻辑块尺寸乘以等于或大于二的正整数所获得的尺寸。若轨道尺寸等于或大于逻辑块尺寸,则MS压紧处理不是必要的。因 此,可省略TFSllb。
[第二实施例
图32示出个人计算机的实例的立体图。个人计算机1200包括主体 1201及显示单元1202。显示单元1202包括显示器外壳1203及容纳于显示 器外壳1203中的显示装置1204。
主体1201包括底盘1205、键盘1206,及作为指向装置的触摸板1207。 底盘1205包括主电路板、ODD单元(光盘装置)、卡槽,及第一实施例中 所描述的SSD 1100。
卡槽^L置为邻近于底盘1205的周边壁。周边壁具有面向卡槽的开口 1208。 ^使用者可从底盘1205的外部经由开口 1208将额外装置插入卡槽中 及将额外装置从卡槽移除。
SSD 1100可以在安装于个人计算机1200中的状态下代替现有技术的 HDD来使用,或可以在插入个人计算机1200的卡槽中的状态下用作额外 装置。
图33示出个人计算机中的系统架构的实例的视图。个人计算机1200 包含CPU 1301、北桥1302、主存储器1303、视频控制器1304、音频控制 器1305、南桥1309、 BIOS-ROM 1310、第一实施例中所描述的SSD 1100、 ODD单元1311、嵌入式控制器/键盘控制器(EC/KBC)IC 1312,及网络控 制器1313。
CPU 1301为用于控制个人计算机1200的操作的处理器,且执行从 SSD 1100加载至主存储器1303的操作系统(OS)。当ODD单元1311执行 对光盘的读取过禾呈和写入过程之一时,CPU 1301执行这些过程。CPU 1301 执行储存于BIOS-ROM 1310中的系统BIOS (基本输入输出系统)。系统 BIOS为用于控制个人计算机1200的硬件的程序。
北桥1302为将CPU 1301的局部总线连接至南桥1309的桥接装置。 北桥1302具有用于控制对主存储器1303的存取的存储器控制器。北桥1302具有通过AGP(加速图形端口)总线执4亍视频控制器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 flash command )。南桥1309具有控制BIOS-ROM 1310及ODD单元1311 的功能。
EC/KBC 1312为整合于用于控制电源的嵌入式控制器上的一个芯片 微处理器,以及用于控制键盘(KB) 1206和触摸板1207的键盘控制器。 EC/KBC 1312具有这样的功能,即,基于使用者对电源掩組的操作而设定 个人计算机1200的电源的接通/断开。网络控制器1313为,例如,执行至 网络(例如,因特网)的通信的通信装置。
尽管上述实施例中的存储器系统包含SSD,但其也可以包含,例如, 以SDTM卡为代表的存储卡。此外,存储器系统不仅可应用于个人计算机, 而且可应用于诸如蜂窝式电话、PDA (个人数字助理)、数字静态相机、 数字视频相机以及电视之类的各种电子装置。
本领域技术人员将容易想到额外优点及修改。因此,本发明在其更宽 泛的方面不限于本文中所示并描述的具体细节和代表性实施例。因此,可 在不偏离由所附权利要求及其等价物所限定的一般发明概念的精神或范畴 的情况下进行各^H务改。
权利要求
1.一种存储器系统,包括作为高速缓冲存储器的第一存储区,其包括在易失性半导体存储器中;第二存储区和第三存储区,其包括在非易失性半导体存储器中,在所述第二存储区和所述第三存储区中,通过页单位执行数据读取和写入,且通过物理块单位执行数据擦除,所述物理块单位的尺寸为所述页单位的尺寸的两倍或更大的自然数倍;控制器,其通过与一个或多个所述物理块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区,其中所述控制器执行第一处理,将从所述第一存储区排挤的扇区单位的多个数据写入到所述第二存储区,作为第一管理单位的数据;第二处理,将从所述第一存储区排挤的扇区单位的多个数据写入到所述第三存储区,作为第二管理单位的数据,所述第二管理单位的尺寸为所述第一管理单位的尺寸的两倍或更大的自然数倍;第三处理,将所述第二存储区中存储的数据排挤至所述第三存储区,作为所述第二管理单位的数据;第四处理,选择所述第二存储区中存储的第一管理单位的多个有效数据,并将所述有效数据重新写入新逻辑块;以及第五处理,选择所述第三存储区中存储的第二管理单位的多个有效数据,并将所述有效数据重新写入新逻辑块;所述控制器包括正向查找第一管理表,从第二管理单位的逻辑地址提取包括以下信息的第一管理信息,即指示与第二管理单位的逻辑地址对应的在所述第二管理单位的数据的第二或第三存储区中的存储位置的逻辑块地址的信息,以及由所述逻辑块地址指定的逻辑块中的第二管理单位的数据的存储位置的信息,以及到第二管理表中的属于第二管理单位的对应逻辑地址的条目的链接信息;正向查找第二管理表,其具有第二管理单位的每个逻辑地址的条目,所述正向查找第二管理表是这样的表,从第一管理单位的逻辑地址提取包括以下信息的第二管理信息,即指示与第一管理单位的逻辑地址对应的在所述第一管理单位的数据的第二存储区中的存储位置的逻辑块地址的信息,以及由所述逻辑块地址指定的逻辑块中的第一管理单位的数据的存储位置的信息,以及到登记于第四管理表中的逻辑块地址的链接信息;反向查找第三管理表,其中为每个逻辑块地址登记有包括以下信息的第三管理信息,即到在第一管理表中登记的第二管理单位的逻辑地址的链接信息,所述反向查找第三管理表是这样的表,从逻辑块地址提取与第二管理单位的数据对应的第二管理单位的地址,所述第二管理单位的数据包括在与所述逻辑块地址对应的逻辑块中;反向查找第四管理表,其中为每个逻辑块地址登记有包括以下信息的第四管理信息,即到在第二管理表中登记的第一管理单位的逻辑地址的链接信息,所述反向查找第四管理表是这样的表,从逻辑块地址提取与第一管理单位的数据对应的第一管理单位的地址,所述第一管理单位的数据包括在与所述逻辑块地址对应的逻辑块中;以及第五管理表,管理与多个物理块对应的多个物理块地址和与所述物理块关联的逻辑块对应的逻辑块地址之间的对应关系;以及所述控制器基于第一至第五管理表执行第一至第五处理。
2. 根据权利要求1所述的存储器系统,其中对于所述第二管理单位 的每个逻辑地址,所述第一管理表具有这样的信息,即指示将属于所述第 二管理单位的逻辑地址的所述第一管理单位的数据分配到所述第二存储区 和所述第三存储区中的哪个。
3. 根据权利要求1所述的存储器系统,其中对于所述第二管理单位 的每个逻辑地址,所述第一管理表具有这样的信息,即指示在所述第二存 储区中的所述第二管理单位的有效数据的数目。
4. 根据权利要求1所述的存储器系统,其中所述第二管理表中的所 述第二管理单位的每个逻辑地址的每个条目包括链接列表。
5. 根据权利要求1所述的存储器系统,其中对于每个逻辑块地址, 所述第三管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑 块中存储的第二管理单位的数据当中的有效数据的数目。
6. 根据权利要求5所述的存储器系统,其中对于每个逻辑块地址, 所述第三管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑 块中可写入第二管理单位的数据的位置。
7. 根据权利要求1所述的存储器系统,其中对于每个逻辑块地址, 所述第四管理表具有这样的信息,即指示在所述第二存储区中的第一管理 单位的有效数据的数目。
8. 根据权利要求7所述的存储器系统,其中对于每个逻辑块地址, 所述第四管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑 块中可写入数据的页位置。
9. 根据权利要求1所述的存储器系统,其中所述易失性半导体存储 区是DRAM,所述非易失性半导体存储区是NAND闪速存储器。
10. 根据权利要求l所述的存储器系统,其中所述第一管理单位的尺 寸等于或大于所述扇区尺寸的尺寸,所述第二管理单位的尺寸小于所述逻 辑块单位的尺寸。
11. 一种存储器系统,包括作为高速緩冲存储器的第一存储区,其包括在易失性半导体存储器中; 第二、第三和第四存储区,其包括在非易失性半导体存储器中,在所述第二、第三和第四存储区中,通过页单位执行数据读取和写入,且通过物理块单位执行lt据擦除,所述物理块单位的尺寸为所述页单位的尺寸的两倍或更大的自然数倍;以及控制器,其通过与一个或多个所述物理块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二、第三和第四存储器,其中所述控制器执行第一处理,将从所述第一存储区排挤的扇区单位的多个数据写入 到所述第二存储区,作为第一管理单位的数据;第二处理,将从所述第一存储区排挤的扇区单位的多个数据写入 到所述第三存储区,作为第二管理单位的数据,所述第二管理单位的尺寸 为所述第一管理单位的尺寸的两倍或更大的自然数倍;第三处理,将所述第二存储区中最早登记的逻辑块中的数据排挤 到所述第三存储区,作为所述第二管理单位的数据;第四处理,在所述第三处理的执行之后,将所述第二存储区中最 早登记的逻辑块中的剩余的有效数据重新定位到所述逻辑块单位的第四存 储区;第五处理,将在所述第四存储区中存储的多个数据排挤至所述第 三存储区,作为所述第二管理单位的数据;第六处理,选择在所述第四存储区中存储的第一管理单位的多个 有效数据,并将所述有效数据重新写入新逻辑块;以及第七处理,选择在所述第三存储区中存储的第二管理单位的多个 有效数据,并将所述有效数据重新写入新逻辑块; 所述控制器包括正向查找第一管理表,从第二管理单位的逻辑地址提取包括以下 信息的第一管理信息,即指示与第二管理单位的逻辑地址对应的在所述第 二管理单位的数据的第二、第三或第四存储区中的存储位置的逻辑块地址 的信息,以及由所述逻辑块地址指定的逻辑块中的第二管理单位的数据的 存储位置的信息,以及到第二管理表中的属于第二管理单位的对应逻辑地 址的条目的链接信息;正向查找第二管理表,其具有第二管理单位的每个逻辑地址的条 目,所述正向查找第二管理表是这样的表,从第一管理单位的逻辑地址提 取包括以下信息的第二管理信息,即指示与第一管理单位的逻辑地址对应 的在所述第一管理单位的数据的第二和第四存储区中的存储位置的逻辑块地址的信息,以及由所述逻辑块地址指定的逻辑块中的第一管理单位的数据的存储位置的信息,以及到登记于第四管理表中的逻辑块地址的链接信 會 反向查找笫三管理表,其中为每个逻辑块地址登记有包括以下信 息的第三管理信息,即到在第一管理表中登记的第二管理单位的逻辑地址 的链接信息,所述反向查找第三管理表是这样的表,从逻辑块地址提取与 第二管理单位的数据对应的第二管理单位的地址,所述第二管理单位的数据包括在与所述逻辑块地址对应的逻辑块中;反向查找第四管理表,其中为每个逻辑块地址登记有包括以下信 息的第四管理信息,即到在第二管理表中登记的第一管理单位的逻辑地址 的链接信息,所述反向查找第四管理表是这样的表,从逻辑块地址提取与 第一管理单位的数据对应的第一管理单位的地址,所述第一管理单位的数 据包括在与所述逻辑块地址对应的逻辑块中;以及第五管理表,管理与多个物理块对应的多个物理块地址和与所述 物理块关联的逻辑块对应的逻辑块地址之间的对应关系;以及 所述控制器基于第一至第五管理表执行第一至第七处理。
12. 才艮据权利要求11所述的存储器系统,其中对于所述第二管理单 位的每个逻辑地址,所述第一管理表具有这样的信息,即指示将属于所述 第二管理单位的逻辑地址的所述第一管理单位的数据分配所述第二或第三 存储区和所述第四存储区中的哪个。
13. 根据权利要求11所述的存储器系统,其中对于所述第二管理单 位的每个逻辑地址,所述第一管理表具有这样的信息,即指示在所述第二 或第三存储区中的所述第二管理单位的有效数据的数目。
14. 才艮据权利要求11所述的存储器系统,其中所述第二管理表中的 所述第二管理单位的每个逻辑地址的每个条目包括链接列表。
15. 根据权利要求ll所述的存储器系统,其中对于每个逻辑块地址, 所述第三管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑块中存储的第二管理单位的数据当中的有效翁:据的数目。
16. 根据权利要求15所述的存储器系统,其中对于每个逻辑块地址, 所述第三管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑 块中可写入第二管理单位的数据的位置。
17. 根据权利要求ll所述的存储器系统,其中对于每个逻辑块地址, 所述第四管理表具有这样的信息,即指示在所述第二存储区中的第一管理 单位的有效数据的数目。
18. 根据权利要求17所述的存储器系统,其中对于每个逻辑块地址, 所述第四管理表具有这样的信息,即指示在与所述逻辑块地址对应的逻辑 块中可写入数据的页位置。
19. 根据权利要求11所述的存储器系统,其中所述易失性半导体存 储区是DRAM,所述非易失性半导体存储区是NAND闪速存储器。
20. 根据权利要求11所述的存储器系统,其中所述第一管理单位的 尺寸等于或大于所述扇区尺寸的尺寸,所述第二管理单位的尺寸小于所述 逻辑块单位的尺寸。
全文摘要
一种根据本发明实施例的存储器系统,包括通过提供正向查找表和反向查找表并链接这些表来增加遍及管理表的搜寻的处理速度,其中正向查找表用于例如分别以轨道和簇为单位从逻辑地址中搜寻数据与逻辑地址对应的存储装置位置,所述反向查找表用于从存储装置的位置搜寻在该位置中存储的逻辑地址。
文档编号G06F12/02GK101681299SQ200980000122
公开日2010年3月24日 申请日期2009年2月10日 优先权日2008年3月1日
发明者初田幸辅, 松崎秀则, 矢野纯二 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1