CN101647007A - 存储器系统 - Google Patents
存储器系统 Download PDFInfo
- Publication number
- CN101647007A CN101647007A CN200880006648A CN200880006648A CN101647007A CN 101647007 A CN101647007 A CN 101647007A CN 200880006648 A CN200880006648 A CN 200880006648A CN 200880006648 A CN200880006648 A CN 200880006648A CN 101647007 A CN101647007 A CN 101647007A
- Authority
- CN
- China
- Prior art keywords
- data
- logical
- storage area
- management unit
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
控制器执行:第一处理,其用于以扇区单位将多个数据写入第一存储区中;第二处理,其用于以第一管理单位将存储在第一存储区中的数据清理至第一输入缓冲器,第一管理单位的大小为扇区单位的两倍或更大的自然数倍;第三处理,其用于以第二管理单位将存储在第一存储区中的数据清理至第二输入缓冲器,第二管理单位的大小为第一管理单位的两倍或更大的自然数倍;第四处理,其用于将第一输入缓冲器中所有页都被写入的逻辑块重新定位至第二存储区;第五处理,其用于将第二输入缓冲器中所有页都被写入的逻辑块重新定位至第三存储区;以及第六处理,其用于以第二管理单位将存储在第二存储区中的多个数据清理至第二输入缓冲器。
Description
技术领域
本发明涉及一种包括非易失性半导体存储器的存储器系统。
背景技术
作为在计算机系统中使用的外部存储装置,安装有诸如NAND型闪速存储器的非易失性半导体存储器的SSD(固态驱动器)引人注目。与磁盘装置相比,闪速存储器具有诸如速度高和重量轻的优点。
SSD包括:多个闪速存储器芯片;控制器,其响应于来自主机设备的请求而执行对各自的闪速存储器芯片的读/写控制;缓冲存储器,其用于执行在各自的闪速存储器芯片与主机设备之间的数据传送;电源电路;以及与主机设备的连接接口(参见例如专利文件1)。
非易失性半导体存储器的实例包括其中擦除、写入和读出的单位固定的非易失性半导体存储器,例如在存储数据时一次以块为单位擦除数据然后执行写入的非易失性半导体存储器,以及以与NAND型闪速存储器相同的方式以页为单位执行写入和读出的非易失性半导体存储器。
另一方面,这样的单位被称为扇区,该单位用于诸如个人计算机的主机设备,以将数据写入诸如硬盘的次级存储装置以及从中读出数据。扇区独立于半导体存储装置的擦除、写入和读出的单位而设定。
例如,尽管非易失性半导体存储器的块的大小(块大小)为512kB且其页的大小(页大小)为4kB,但主机设备的扇区的大小(扇区大小)被设定为512B。
以此方式,非易失性半导体存储器的擦除、写入和读出的单位可大于主机设备的写入和读出的单位。
因此,当通过使用非易失性半导体存储器来配置个人计算机的次级存储器装置(例如硬盘)时,有必要通过使大小适应于非易失性半导体存储器的块大小和页大小,写入来自作为主机设备的个人计算机的具有小尺寸的数据。
通过诸如个人计算机的主机设备而记录的数据既具有时间局域性,也具有空间局域性(例如,参见非专利文件1)。因此,当记录数据时,如果数据被直接记录在从外部指定的地址中,则重写(即,擦除处理)在时间上集中在特定的区域中,并且擦除次数的偏差增大。因此,在NAND型闪速存储器中,执行用于使数据更新区段均衡分布的被称为磨损均化(wear leveling)的处理。
在磨损均化处理中,例如,由主机设备指定的逻辑地址被转译为其中数据更新区段均衡地分布的非易失性半导体存储器的物理地址。
已公开了这样一种SSD,其被配置为在闪速存储器和主机设备之间插入高速缓冲存储器且减少在闪速存储器中的写入次数(擦除次数)(例如,参见专利文件2)。当执行从主机设备在高速缓冲存储器中的写入时,如果高速缓冲存储器是满的,则在将数据从高速缓冲存储器清理(flush)到闪速存储器之后将数据写入高速缓冲存储器中。
如上文所解释的,当数据擦除单位(块)与数据管理单位不同时,根据闪速存储器的重写的进展,无效的(非最新的)数据使得块为多孔的(porous)。当处于这种多孔状态的块增多时,基本可用的块减少,不能有效地使用闪速存储器的存储区。因此,执行称为压紧的处理,其用于收集有效的最新数据且将数据重写在不同的块中(例如,参见专利文件3)。
当以这种方式执行从高速缓冲存储器至闪速存储器的数据清理时,如果闪速存储器处于多孔状态,则可想到:在执行诸如压紧的处理以将闪速存储器的存储区改变成满意状态之后,执行从高速缓冲存储器至闪速存储器的数据清理。然而,当压紧处理等正在进行时,必须使从高速缓冲存储器至闪速存储器的数据清理等待。需要一种解决该问题的有效方法。
[专利文件1]日本专利No.3688835
[专利文件2]PCT专利申请No.2007-528079的公开的日文译文
[专利文件3]日本专利申请公开No.2005-222550
[非专利文件1]David A.Patterson以及John L.Hennessy,“Compu ter 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)管理表的实例的图;
图10是WC簇管理表的实例的图;
图11是WC轨道(track)管理表的实例的图;
图12是轨道管理表的实例的图;
图13是FS/IS管理表的实例的图;
图14是MS逻辑块管理表的实例的图;
图15是FS/IS逻辑块管理表的实例的图;
图16是FS/IS内簇管理表的实例的图;
图17是逻辑至物理转换表的实例的图;
图18是读处理的操作实例的流程图;
图19是写处理的操作实例的流程图;
图20是在部件之间的数据的流动中的输入与输出的组合以及该流动的起因的图;
图21是与从WC到NAND存储器的写入处理有关的更详细的功能框图;
图22是数据管理单元中的管理表的另一配置实例的图;
图23是并行操作元件、平面和通道之间的关系图的图;
图24是逻辑至物理转译表的另一实例的图;
图25是BB管理表的实例的图;
图26是FB管理表的内部配置实例的图;
图27是NAND存储器的逻辑块与物理块之间的对应关系的图;
图28是MS结构管理表的实例的图;
图29是FS/IS结构管理表的实例的图;
图30是写入处理的操作实例的详细流程图;以及
图31是IS的清理操作的实例的流程图。
具体实施方式
下面,将参考附图详细解释根据本发明的存储器系统的最佳实施方式。
(实施例)
下面将参考附图解释本发明的实施例。在下面的解释中,具有相同功能和配置的部件由相同的参考标号和符号表示。仅当必要时才进行对这些部件的重复解释。
首先,定义在该说明书中使用的术语。
物理页:在NAND存储器芯片中可以共同地写入和读出的单位。物理页大小为例如4kB。然而,不包括添加到SSD中的主数据(用户数据等)的诸如错误校正码的冗余位。通常,4kB+冗余位(例如,几十B)是在存储器单元中同时写入的单位。然而,为了便于解释,如上所述地定义物理页。
逻辑页:在SSD中设定的写入和读出单位。逻辑页与一个或多个物理页相关联。例如,在8-位正常模式下,逻辑页大小为4kB,而在32-位的双速模式下,逻辑页大小为32kB。然而,不包括冗余位。
物理块:可以在NAND存储器芯片中独立地擦除的最小单位。物理块包括多个物理页。物理块大小为例如512kB。然而,不包括添加到SSD中的主数据的诸如错误校正码的冗余位。通常,512kB+冗余位(例如,几十kB)是同时擦除的单位。然而,为了便于解释,如上所述地定义物理块。
逻辑块:在SSD中设定的擦除单位。逻辑块与一个或多个物理块相关联。例如,在8-位正常模式下,逻辑块大小为512kB,而在32-位的双速模式下,逻辑块大小为4MB。然而,不包括冗余位。
扇区:从主机存取的最小单位。扇区大小为例如512B。
簇:用于在SSD中管理“小数据(细粒数据)”的管理单位。例如,簇大小等于或大于扇区大小,且被如此设定,使得簇大小的两倍或更大的自然数倍的大小为逻辑页大小。
轨道:用于在SSD中管理“大数据(粗粒数据)”的管理单位。例如,轨道大小被如此设定,使得簇大小的两倍或更大的自然数倍的大小为轨道大小,且轨道大小的两倍或更大的自然数倍的大小为逻辑块大小。
空闲块(FB):在NAND型闪速存储器上的未分配使用的逻辑块。当向空闲块分配使用时,在擦除之后使用该空闲块。
坏块(BB):在NAND型闪速存储器上的由于大量错误而不能被用作存储区的物理块。例如,将不能正常完成擦除操作的物理块登记为坏块BB。
写入效率:在预定周期内逻辑块的擦除数量相对于从主机写入的数据数量的统计值。写入效率越小,NAND型闪速存储器的磨损度越小。
有效簇:存储最新数据的簇。
无效簇:存储非最新数据的簇。
有效轨道:存储最新数据的轨道。
无效轨道:存储非最新数据的轨道。
压紧:在管理对象中从逻辑块中仅提取有效簇和有效轨道并且在新的逻辑块中重写所述有效簇和有效轨道。
[第一实施例]
图1是SSD(固态驱动器)100的配置实例的框图。SSD 100通过存储器连接接口,例如ATA接口(ATA I/F)2,连接到主机设备1,例如个人计算机或CPU核,并且用作主机设备1的外部存储器。通过通信接口3,例如RS232C接口(RS232C I/F),SSD 100可以将数据传送到用于除错(debug)和制造检验的设备200并从其接收数据。SSD 100包括作为非易失性半导体存储器的NAND型闪速存储器(下文中简称为NAND存储器)10、作为控制器的驱动控制电路4、作为易失性半导体存储器的DRAM20、电源电路5、用于状态显示的LED 6、检测驱动器中的温度的温度传感器7、以及熔丝8。
电源电路5从由主机设备1侧的电源电路供应的外部DC电力产生多个不同的内部DC电源电压,并将这些内部DC电源电压供应至SSD 100中的各个电路。电源电路5检测外部电源的上升沿,产生接通复位信号,并且将该接通复位信号供应至驱动控制电路4。熔丝8设置在主机设备1一侧的电源电路与SSD 100中的电源电路5之间。当从外部电源电路供应过电流时,熔丝8断开,以防止内部电路发生故障。
在这种情况下,NAND存储器10具有四个并行操作元件10a至10d,其执行四个并行操作。一个并行操作元件具有两个NAND存储器封装。NAND存储器封装中的每一个包括多个堆叠的NAND存储器芯片(例如,1个芯片=2GB)。在图1的情况下,NAND存储器封装中的每一个包括堆叠的四个NAND存储器芯片。NAND存储器10具有64GB的容量。当NAND存储器封装中的每一个包括堆叠的八个NAND存储器芯片时,NAND存储器10具有128GB的容量。
DRAM 20用作为用于在主机设备1与NAND存储器10之间的数据传送的高速缓冲存储器以及用于工作区的存储器。可使用FeRAM来代替DRAM 20。驱动控制电路4通过DRAM 20在主机设备1与NAND存储器10之间执行数据传送控制,并且控制SSD 100中的各个部件。驱动控制电路4将用于状态显示的信号供应至用于状态显示的LED 6。驱动控制电路4还具有从电源电路5接收接通复位信号且将复位信号和时钟信号供应至在自身电路和SSD 100中的各个单元的功能。
NAND存储器芯片中的每一个通过将多个物理块排成阵列作为数据擦除的单位而配置。图2(a)是包括在NAND存储器芯片中的一个物理块的配置实例的电路图。每个物理块包括沿着X方向依次排成阵列的(p+1)个NAND串(p为等于或大于0的整数)。包括在该(p+1)个NAND串的每一个中的选择晶体管ST1的漏极连接至位线BL0至BLp,并且其栅极共同地连接至选择栅极线SGD。选择晶体管ST2的源极共同地连接至源极线SL,并且其栅极共同地连接至选择栅极线SGS。
存储器单元晶体管MT中的每一个包括MOSFET(金属氧化物半导体场效应晶体管),该MOSFET包括形成于半导体基底上的堆叠栅极结构。该堆叠栅极结构包括经由栅极绝缘膜而形成于半导体基底上的电荷存储层(浮动栅电极),以及经由栅极间绝缘膜而形成于该电荷存储层上的控制栅电极。阈值电压根据在浮动栅电极中累积的电子的数目而变化。存储器单元晶体管MT根据阈值电压的差异而存储数据。存储器单元晶体管MT可被配置为存储一个位或可被配置为存储多值(等于或大于两个位的数据)。
存储器单元晶体管MT不限于具有浮动栅电极的结构,并且可以为诸如MONOS(金属-氧化物-氮化物-氧化物-硅)型的结构,该结构可通过使氮化物膜界面作为电荷存储层来俘获电子而调整阈值。类似地,MONOS结构的存储器单元晶体管MT可被配置为存储一个位或可被配置为存储多值(等于或大于两个位的数据)。
在每一个NAND串中,(q+1)个存储器单元晶体管MT排列在选择晶体管ST1的源极与选择晶体管ST2的漏极之间,使得其电流路径串联连接。换句话说,存储器单元晶体管MT在Y方向上串联连接,使得相邻的存储器单元晶体管MT共享扩散区域(源极区域或漏极区域)。
存储器单元晶体管MT的控制栅电极从位于最漏极侧上的存储器单元晶体管MT开始依次分别连接至字线WL0至WLq。因此,连接至字线WL0的存储器单元晶体管MT的漏极连接至选择晶体管ST1的源极。连接至字线WLq的存储器单元晶体管MT的源极连接至选择晶体管ST2的漏极。
字线WL0至WLq共同地连接在物理块中的NAND串当中的存储器单元晶体管MT的控制栅电极。换句话说,存在于块的相同行中的存储器单元晶体管MT的控制栅极连接至相同的字线WL。将连接至相同字线WL的(p+1)个存储器单元晶体管MT作为一页(物理页)来处理。通过每一物理页来执行数据写入及数据读出。
位线BL0至BLp共同地连接块当中的选择晶体管ST1的漏极。换句话说,存在于多个块中的相同列中的NAND串连接至相同的位线BL。
图2(b)为例如在四进制数据存储模式中的阈值分布的示意图,该四进制数据存储模式用于在一个存储器单元晶体管MT中存储两个位。在四进制数据存储模式中,可将由上部页数据“x”和下部页数据“y”定义的任何一个四进制数据“xy”存储在存储器单元晶体管MT中。
例如,作为四进制数据“xy”,“11”、“01”、“00”和“10”以存储器单元晶体管MT的阈值电压的顺序分配。数据“11”为已擦除状态(erased state),在该状态中存储器单元晶体管MT的阈值电压为负。
在下部页写入操作中,根据下部位数据“y”的写入,将数据“10”选择性地写入具有数据“11”(处于已擦除状态)的存储器单元晶体管MT中。在上部页写入之前的数据“10”的阈值分布大约位于在上部页写入之后的数据“01”和数据“00”的阈值分布的中间,并且可比在上部页写入之后的阈值分布更宽。在上部页写入操作中,选择性地对具有数据“11”的存储器单元和具有数据“10”的存储器单元进行上部位数据“x”的写入。将数据“01”和数据“00”写入存储器单元中。
图3为驱动控制电路4的硬件内部配置实例的框图。驱动控制电路4包括数据存取总线101、第一电路控制总线102以及第二电路控制总线103。控制整个驱动控制电路4的处理器104连接至第一电路控制总线102。启动ROM 105经由ROM控制器106而连接至第一电路控制总线102,在该启动ROM 105中存储有启动程序,所述启动程序用于启动存储在NAND存储器10中的各个管理程序(FW:固件)。时钟控制器107连接至第一电路控制总线102,该时钟控制器107从图1中所示的电源电路5接收接通复位信号且将复位信号和时钟信号供应至各个单元。
第二电路控制总线103连接至第一电路控制总线102。用于从图1中所示的温度传感器7接收数据的I2C电路108、将用于状态显示的信号供应至用于状态显示的LED 6的并行IO(PIO)电路109、以及控制RS232CI/F 3的串行IO(SIO)电路110连接至第二电路控制总线103。
ATA接口控制器(ATA控制器)111、第一ECC(错误检查及校正)电路112、NAND控制器113以及DRAM控制器114连接至数据存取总线101与第一电路控制总线102两者。ATA控制器111经由ATA接口2而将数据传输至主机设备1及从主机设备1接收数据。用作数据工作区和固件扩展区的SRAM 115经由SRAM控制器116而连接至数据存取总线101。当起动存储在NAND存储器10中的固件时,该固件通过存储在启动ROM105中的启动程序而传送至SRAM 115。
NAND控制器113包括NAND I/F 117、第二ECC电路118,以及用于DMA传送控制的DMA控制器119,其中NAND I/F 117执行用于与NAND存储器10的接口的接口处理,DMA控制器119执行NAND存储器10与DRAM 20之间的存取控制。第二ECC电路118执行第二校正码的编码且执行第一错误校正码的编码和解码。第一ECC电路112执行第二错误校正码的解码。第一错误校正码及第二错误校正码为,例如,汉明(hamming)码、BCH(Bose Chaudhuri Hocqenghem)码、RS(ReedSolomon)码、或LDPC(低密度奇偶检查)码。第二错误校正码的校正能力比第一错误校正码的校正能力高。
如图1和图3中所示,在NAND存储器10中,四个并行的操作元件10a至10d经由四个八位通道(4ch)而并联连接至驱动控制电路4中的NAND控制器112。根据四个并行的操作元件10a至10d是独立致动还是并行致动与是否使用在NAND存储器芯片中提供的双速模式(多页编程/多页读取/多块擦除)的组合,提供下文所解释的三种存取模式。
(1)8-位正常模式
8-位正常模式为用于仅致动一个通道且以8-位为单位执行数据传送的模式。以物理页大小(4kB)来执行写入和读出。以物理块大小(512kB)来执行擦除。一个逻辑块与一个物理块相关联,且逻辑块大小为512kB。
(2)32-位正常模式
32-位正常模式为用于并行致动四个通道且以32-位为单位执行数据传送的模式。以物理页大小×4(16kB)来执行写入和读出。以物理块大小×4(2MB)来执行擦除。一个逻辑块与四个物理块相关联,且逻辑块大小为2MB。
(3)32-位双速模式
32-位双速模式为用于并行致动四个通道且使用NAND存储器芯片的双速模式来执行写入和读出的模式。以物理页大小×4×2(32kB)来执行写入和读出。以物理块大小×4×2(4MB)来执行擦除。一个逻辑块与八个物理块相关联,且逻辑块大小为4MB。
在用于并行致动四个通道的32-位正常模式或32-位双速模式中,并行操作的四个或八个物理块为用于NAND存储器10的擦除单位,且并行操作的四个或八个物理页为用于NAND存储器10的写入单位及读出单位。在下面所解释的操作中,基本上,使用32-位双速模式。例如,假定:一个逻辑块=4MB=2i轨道=2j页=2k簇=2l扇区(i、j、k和l为自然数,且i<j<k<l的关系成立)。
在32-位双速模式中存取的逻辑块是以4MB的单位来存取。八(2×4ch)个物理块(一个物理块=512kB)与逻辑块相关联。当检测到以物理块单位管理的坏块BB时,该坏块BB不可用。因此,在这种情况下,将与逻辑块相关联的该八个物理块的组合变为不包括该坏块BB。
图4为通过处理器104实现的固件的功能配置实例的框图。通过处理器104实现的固件的功能粗略地分类为数据管理单元120、ATA命令处理单元121、安全管理单元122、启动加载器123、初始化管理单元124,以及除错支持单元125。
数据管理单元120经由NAND控制器112和第一ECC电路114而控制NAND存储器10与DRAM 20之间的数据传送以及关于NAND存储器10的各种功能。ATA命令处理单元121经由ATA控制器110和DRAM控制器113与数据管理单元120协作来执行DRAM 20与主机设备1之间的数据传送处理。安全管理单元122与数据管理单元120和ATA命令处理单元121协作而管理各种安全信息。
启动加载器123在接通电源时将管理程序(固件)从NAND存储器10加载至SRAM 120。初始化管理单元124执行驱动控制电路4中的各个控制器和电路的初始化。除错支持单元125处理经由RS232C接口而从外部供应的用于除错的数据。数据管理单元120、ATA命令处理单元121和安全管理单元122主要为通过处理器104实现的执行存储在SRAM 114中的管理程序的功能单元。
在该实施例中,主要解释通过数据管理单元120实现的功能。数据管理单元120执行:例如,ATA命令处理单元121请求作为存储装置的NAND存储器10和DRAM 20(响应于来自主机设备的各种命令,诸如写入请求、高速缓冲存储器清理请求以及读取请求)而提供的功能的供应、地址区域与NAND存储器10之间的对应关系的管理和管理信息的保护、使用DRAM 20和NAND存储器10的快速且高效的数据读出及写入功能的提供、NAND存储器10的可靠性的确保。
图5为形成在NAND存储器10和DRAM 20中的功能块的图。配置在DRAM 20上的写入高速缓冲存储器(WC)21和读取高速缓冲存储器(RC)22被插入在主机1与NAND存储器10之间。WC 21暂时存储来自主机设备1的写入数据。RC 22暂时存储来自NAND存储器10的读取数据。由数据管理单元120将NAND存储器10中的逻辑块分配给前级存储区(FS:前存储器)12、中间级存储区(IS:中间存储器)13和主存储区(MS:主存储器)11的各个管理区,以便减少在写入期间NAND存储器10的擦除的量。FS 12以簇为单位(即,“小单位”)管理来自WC 21的数据,且将小数据存储一短周期。IS 13以簇为单位(即,“小单位”)管理从FS 12溢出的数据,且将小数据存储一长周期。MS 11以轨道为单位(即,“大单位”)将来自WC 21、FS 12和IS 13的数据存储一长周期。例如,存储容量具有MS>IS且FS>WC的关系。
当对NAND存储器10的所有存储区应用小管理单位时,稍后解释的管理表的大小被放大,且不适应DRAM 20。因此,NAND存储器10的各个存储器被配置为以小管理单位管理NAND存储器10中仅在最近刚写入的数据和具有低写入效率的小数据。
图6为关于从WC 21向NAND存储器10的写入处理(WR处理)的更详细的功能框图。在FS 12的前级处设置FS输入缓冲器(FSIB)12a,其中该FS输入缓冲器(FSIB)12a缓冲来自WC 21的数据。在MS 11的前级处设置MS输入缓冲器(MSIB)11a,该MS输入缓冲器(MSIB)11a缓冲来自WC 21、FS 12或IS 13的数据。在MS 11中设置轨道前级存储区(TFS)11b。TFS 11b为插入在MSIB 11a与MS 11之间的具有FIFO(先进先出)结构的缓冲器。记录在TFS 11b中的数据为这样的数据,该数据的更新频率高于从MSIB 11a直接写入在MS 11中的数据。NAND存储器10中的任何一个逻辑块被分配给MS 11、MSIB 11a、TFS 11b、FS 12、FSIB 12a和IS 13。
将详细解释图5和图6中所示的各个部件的具体功能配置。当主机设备1执行SSD 100的读取或写入时,主机设备1经由ATA接口而输入LBA(逻辑块寻址)作为逻辑地址。如图7中所示,LBA为这样的逻辑地址,其中从0开始的序号被附到扇区(大小:512B)。在该实施例中,作为用于WC 21、RC 22、FS 12、IS 13和MS 11(它们为图5中所示的部件)的管理单位,定义逻辑簇地址和逻辑轨道地址,所述逻辑簇地址由依次(inorder)等于或高于LBA的低位(low-order)第(l-k+1)位的位串形成,所述逻辑轨道地址由依次等于或高于LBA的低位第(l-i+1)位的位串形成。一个簇=2(l-k)个扇区,且一个轨道=2(k-i)个簇。
读取高速缓冲存储器(RC)22
解释RC 22。RC 22为响应于来自ATA命令处理单元121的读取请求而暂时存储来自NAND存储器10(FS 12、IS 13和MS 11)的读取数据的区。在该实施例中,RC 22是在例如m-线/n-路(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统中进行管理,且可将一个簇的数据存储在一个条目(entry)中。线通过逻辑簇地址的LSB(k-i)个位来判定。RC 22可在全关联系统中进行管理,或者可在简单FIFO系统中进行管理。
写入高速缓冲存储器(WC)21
解释WC 21。WC 21为响应于来自ATA命令处理单元121的写入请求而暂时存储来自主机设备1的写入数据的区。WC 21是在m-线/n-路(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统中进行管理,并可将一个簇的数据存储在一个条目中。线通过逻辑簇地址的LSB(k-i)个位来判定。例如,以从路1至路n依次搜寻可写入的路。登记(register)于WC 21中的轨道通过稍后所解释的WC轨道管理表24的FIFO结构以LRU(最近最少使用)进行管理,使得最早更新的顺序已知。WC 21可由全关联系统来管理。WC 21与RC 22可在线的数目和路的数目上有所不同。
根据写入请求而写入的数据一次存储在WC 21上。判定将要从WC 21清理至NAND 10的数据的方法遵从下面所解释的规则。
(i)当通过标记(tag)判定的线中的可写入的路为最后的(在该实施例中,第n个)空闲的路时,即,当使用最后的空闲的路时,决定清理登记于线中的轨道当中的基于LRU最早更新的轨道。
(ii)当登记于WC 21中的不同轨道的数目超过预定数目时,决定以LRU的顺序清理WC中的其簇数目小于预定数目的轨道。
根据上文所解释的策略来判定将要清理的轨道。在清理这些轨道时,清理包括在相同轨道中的所有数据。当将要清理的数据的量超过例如轨道大小的50%时,将数据清理至MS 11。当将要清理的数据的量未超过例如轨道大小的50%时,将数据清理至FS 12。
当在条件(i)下执行轨道清理且将数据清理至MS 11时,根据策略(i),选择WC 21的轨道当中满足将要清理的数据的量超过轨道大小的50%这一条件的轨道且将其添加至清理候选者,直至将要清理的轨道的数目达到2i为止(当轨道的数目一开始就等于或大于2i时,直至轨道的数目达到2i+1为止)。换句话说,当将要清理的轨道的数目小于2i时,以从WC中的最旧轨道开始的顺序选择具有多于2(k-i-1)的有效簇的轨道,且将其添加至清理候选者,直至轨道的数目达到2i为止。
当在条件(i)下执行轨道清理且将轨道清理至FS 12时,以LRU的顺序在WC 21中的轨道当中选择满足将要清理的数据的量不超过轨道大小的50%这一条件的轨道,并将该轨道的簇添加至清理候选者,直至将要清理的簇的数目达到2k为止。换句话说,通过以从最旧轨道开始的顺序追踪WC中的轨道而从具有2(k-i-1)个或更少的有效簇的轨道中提取簇,且当有效簇的数目达到2k时,以逻辑块为单位将簇清理至FSIB 12a。然而,当未寻找到2k个有效簇时,以逻辑页为单位将簇清理至FSIB 12a。用于判定是以逻辑块为单位还是以逻辑页为单位执行至FS 12的清理的有效簇的数目的阈值不限于对于一个逻辑块的值(即,2k),且可为比对于一个逻辑块的值稍小的值。
在来自ATA命令处理单元121的高速缓冲存储器清理请求中,在与上文相同的条件下将WC 21的所有内容清理至FS 12或MS 11(当将要清理的数据的量超过轨道大小的50%时,将数据清理至MS 11,且当数据的量未超过50%时,将数据清理至FS 12)。
前级存储区(FS)12
解释FS 12。FS 12适应其中以簇为单位管理数据的逻辑块单位的FIFO结构。FS 12为这样的缓冲器,其认为通过FS 12的数据具有比后级处的IS 13的数据高的更新频率。换句话说,在FS 12的FIFO结构中,当执行从主机向同一地址的重写时,使通过FIFO的有效簇(最新簇)无效。因此,可将通过FS 12的簇视为具有比从FS 12清理至IS 13或MS 11的簇更高的更新频率。
通过提供FS 12,减少了具有高更新频率的数据在后级处的IS 13中的压紧处理中的混合的可能性。当通过无效化而使存储旧簇的逻辑块的有效簇的数目减少至0时,释放该逻辑块且将其分配为空闲块FB。当逻辑块被无效时,获得新的空闲块FB且将其分配给FS 12。
当执行从WC 21至FS 12的簇数据的移动时,簇被写入分配给FSIB12a的逻辑块中。当在FSIB 12a中出现完成了所有页的写入的逻辑块时,通过稍后所解释的CIB处理将这些块从FSIB 12a移动至FS 12。在将这些块从FSIB 12a移动至FS 12的过程中,当FS 12的块的数目超过FS 12所允许的预定上限值时,将最旧的块从FS 12清理至IS 13或MS 11。例如,将轨道中有效簇比率等于或大于50%的轨道写入MS 11(TFS 11b)中,且将其中仍剩余有有效簇的块移动至IS 13。
关于NAND存储器10中的部件之间的数据移动,存在两种方式,即,移动(Move)和复制(Copy)。移动是这样的方法,其仅执行稍后所解释的管理表的指针(pointer)的重新定位,而不执行数据的实际重写。复制是这样的方法,其以页单位、轨道单位或块单位将存储于一个部件中的数据实际重写至另一部件中。
中间级存储区(IS)13
解释IS 13。在IS 13中,以与FS 12相同的方式以簇为单位执行数据的管理。可将存储于IS 13中的数据视为具有低更新频率的数据。当执行逻辑块从FS 12至IS 13的移动(movement)(移动(Move))(即,逻辑块从FS 12的清理)时,通过指针的重新定位,将作为清理对象的逻辑块(其先前为FS 12的管理对象)改变为IS 13的管理对象块。根据逻辑块从FS 12至IS 13的移动,当IS 13的块的数目超过IS 13所允许的预定上限值时,即,当IS中可写空闲块FB的数目减小至小于阈值时,执行从IS 13至MS 11的数据清理和压紧处理。使IS 13的块的数目返回至规定值。
IS 13使用轨道中的有效簇的数目来执行下文所解释的清理处理和压紧处理。
以有效簇的数目×有效簇系数(其是根据轨道是否存在于其中存在无效轨道的MS 11的逻辑块中而进行加权的数字;存在无效轨道时的数字大于不存在无效轨道时的数字)的顺序对轨道进行排序(sort)。收集具有大乘积值的2i+1个轨道(对于两个逻辑块),将其增加至为逻辑块大小的自然数倍大,且将其清理至MSIB 11a。
当具有最小数目的有效簇的两个逻辑块的有效簇的总数目为例如等于或大于作为预定的设定值的2k(对于一个逻辑块)时,重复上文所解释的步骤(以执行该步骤,直至可从IS中的两个逻辑块创建空闲块FB为止)。
从具有最小数目的有效簇的逻辑块开始依次收集2k个簇,且在IS中进行压紧。
此处,选择具有最小数目的有效簇的两个逻辑块。然而,数目不限于二,且仅须为等于或大于二的数目。预定的设定值仅须等于或小于这样的簇的数目,其可存储于比选定的逻辑块的数目小一的数目的逻辑块中。
主存储区(MS)11
解释MS 11。在MS 11中,以轨道为单位执行数据的管理。可将存储于MS 11中的数据视为具有低更新频率。当执行轨道数据从WC 21、FS 12或IS 13至MS 11的复制或移动时,将轨道写入被分配给MSIB 11a的逻辑块中。另一方面,当仅将轨道的一部分中的数据(簇)从WC等等写入时,执行稍后所解释的被动合并,该被动合并用于合并现存的MS中的轨道数据与新数据以产生新轨道数据,然后将所产生的轨道数据写入MSIB11a中。当无效轨道在MS 11中累积且分配给MS 11的逻辑块的数目超过MS 11所允许的块的数目的上限时,执行压紧处理以产生无效的空闲块FB。
作为MS 11的压紧处理,例如,执行下文所解释的仅关注逻辑块中的有效轨道的数目的方法。
从具有最小数目的有效轨道的逻辑块中选择逻辑块,直至可通过组合无效轨道而产生无效的空闲块FB为止。
当执行用于整合存储于选定逻辑块中的轨道与WC 21、FS 12或IS 13中的数据的被动合并时,执行压紧。
将其中可整合2i个轨道的逻辑块输出至TFS 11b(2i轨道MS压紧),且将数目小于2i的轨道输出至MSIB 11a(小于2i的轨道压紧)以产生较大数目的无效空闲块FB。
TFS 11b是其中以轨道为单位管理数据的FIFO。TFS 11b是这样的缓冲器,其认为通过TFS 11b的数据具有比后级处的MS 11的数据更高的更新频率。换句话说,在TFS 11b的FIFO结构中,当执行从主机向同一地址中的重写时,使通过FIFO的有效轨道(最新轨道)无效。因此,可将通过TFS 11b的轨道视为具有比从TFS 11b清理至MS 11的轨道更高的更新频率。
图8为管理表的图,该管理表用于使数据管理单元120控制并管理图5和图6中所示的各个部件。数据管理单元120具有(如上文所解释的)桥接ATA命令处理单元121与NAND存储器10的功能,且包括:DRAM层管理单元120a,其执行对存储于DRAM 20中的数据的管理;逻辑NAND层管理单元120b,其执行对存储于NAND存储器10中的数据的管理;以及物理NAND层管理单元120c,其管理作为物理存储装置的NAND存储器10。RC簇管理表23、WC轨道管理表24和WC簇管理表25由DRAM层管理单元120a来控制。轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42和FS/IS内簇管理表44由逻辑NAND层管理单元120b来管理。逻辑至物理转译表50由物理NAND层管理单元120c来管理。
RC 22由RC簇管理表23来管理,该RC簇管理表23是反向查找表。在该反向查找表中,可从存储装置的位置搜寻存储于该位置中的逻辑地址。WC 21由WC簇管理表25和WC轨道管理表24来管理,其中WC簇管理表25为反向查找表,而WC轨道管理表24为正向查找表。在该正向查找表中,可从逻辑地址搜寻其中存在与该逻辑地址对应的数据的存储装置的位置。
NAND存储器10中的FS 12(FSIB 12a)、IS 13以及MS 11(TFS 11b和MSIB 11a)的逻辑地址由轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42以及FS/IS内簇管理表44来管理。在NAND存储器10中的FS 12(FSIB 12a)、IS 13以及MS 11(TFS 11b和MSIB 11a)中,执行逻辑至物理转译表50的逻辑地址与物理地址的转换。将这些管理表存储于NAND存储器10上的区中且将其从NAND存储器读取至DRAM 20,并且在SSD 100的初始化期间使用这些管理表。
RC簇管理表23(反向查找)
参看图9解释RC簇管理表23。如上文所解释,在由逻辑簇地址LSB(k-i)个位编索引的n-路集合关联系统中管理RC 22。RC簇管理表23为用于管理RC(簇大小×m-线×n-路)22的各个条目的标记的表。这些标记中的每一个包括状态标志(flag)23a和逻辑轨道地址23b,其中状态标志23a包括多个位。除了指示所述条目是否可使用(有效/无效)的有效位之外,状态标志23a还包括例如指示所述条目是否在等待从NAND存储器10读出的位、以及指示所述条目是否在等待读出至ATA命令处理单元121的位。RC簇管理表23用作反向查找表,该反向查找表用于从DRAM 20上的标记存储位置搜寻与LBA一致的逻辑轨道地址。
WC簇管理表25(反向查找)
参看图10解释WC簇管理表25。如上文所解释,在由逻辑簇地址LSB(k-i)个位编索引的n-路集合关联系统中管理WC 21。WC簇管理表25为用于管理WC(簇大小×m-线×n-路)21的各个条目的标记的表。这些标记中的每一个包括多个位的状态标志25a、扇区位置位映像(bitmap)25b,以及逻辑轨道地址25c。
除了指示所述条目是否可使用(有效/无效)的有效位之外,状态标志25a还包括例如指示所述条目是否在等待清理至NAND存储器10的位、以及指示所述条目是否在等待从ATA命令处理单元121写入的位。通过将扇区扩展成2(l-k)个位,扇区位置位映像25b指示一个簇中所包括的2(l-k)个扇区中的哪一个存储有效数据。利用扇区位置位映像25b,可在WC 21中执行与LBA相同的以扇区为单位进行的管理。WC簇管理表25用作反向查找表,该反向查找表用于从DRAM 20上的标记存储位置搜寻与LBA一致的逻辑轨道地址。
WC轨道管理表24(正向查找)
参看图11解释WC轨道管理表24。WC轨道管理表24为用于管理信息(其中以轨道单位收集存储于WC 21上的簇)的表,且使用具有类似于FIFO功能的链接列表结构来表示轨道当中在WC 21中的登记的顺序(LRU)。LRU可通过WC 21中最后被更新的顺序来表示。每一列表的条目包括逻辑轨道地址24a、逻辑轨道地址中所包括的WC 21中的有效簇数目24b、路-线位映像24c,以及下一个指针24d,该下一个指针24d指示指向下一条目的指针。WC轨道管理表24用作正向查找表,这是因为所需信息是从逻辑轨道地址24a获得的。
路-线位映像24c为这样的映像信息,其指示在WC 21中的m×n个条目中的哪一个中存储WC 21中的逻辑轨道地址中所包括的有效簇。在其中存储有效簇的条目中,有效位为“1”。路-线位映像24c包括例如(一位(有效)+log2n个位(n-路))×m个位(m-线)。WC轨道管理表24具有链接列表结构。仅输入关于WC 21中存在的逻辑轨道地址的信息。
轨道管理表30(正向查找)
参看图12解释轨道管理表30。轨道管理表30为用于以逻辑轨道地址为单位来管理MS 11上的逻辑数据位置的表。当以簇为单位将数据存储于FS 12或IS 13中时,轨道管理表30存储关于数据的基本信息和指向详细信息的指针。轨道管理表30被配置为阵列格式,该阵列格式具有逻辑轨道地址30a作为索引。具有逻辑轨道地址30a作为索引的每一条目包括诸如以下内容的信息:簇位映像30b、逻辑块ID 30c+逻辑块内轨道位置30d、簇表指针30e、FS簇的数目30f,以及IS簇的数目30g。轨道管理表30用作正向查找表,这是因为通过使用逻辑轨道地址作为索引,可获得诸如逻辑块ID(对应于存储装置位置)的所需信息,在该逻辑块ID中存储对应于逻辑轨道地址的逻辑轨道。
簇位映像30b为通过将属于一个逻辑轨道地址范围的2(k-i)个簇按照簇地址的升序分成例如八份而获得的位映像。八个位中的每一个指示对应于2(k-i-3)个簇地址的簇是存在于MS 11中还是存在于FS 12或IS 13中。当该位为“0”时,其指示作为搜寻对象的簇的确存在于MS 11中。当该位为“1”时,其指示簇很可能存在于FS 12或IS 13中。
逻辑块ID 30c是用于识别这样的逻辑块ID的信息,在该逻辑块ID中存储与逻辑轨道地址对应的逻辑轨道。逻辑块内轨道位置30d指示与逻辑轨道地址(30a)对应的轨道在由逻辑块ID 30c指定的逻辑块中的存储位置。因为一个逻辑块包括最大2i个有效轨道,所以逻辑块内轨道位置30d使用i个位识别2i个轨道位置。
簇表指针30e是指向具有链接列表结构的FS/IS管理表40的每一列表的顶条目的指针。在搜寻整个簇位映像30b的过程中,当指示出簇很可能存在于FS 12或IS 13中时,通过使用簇表指针30e来执行遍及FS/IS管理表40的搜寻。FS簇的数目30f指示出存在于FS 12中的有效簇的数目。IS簇的数目30g指示出存在于IS 13中的有效簇的数目。
FS/IS管理表40(正向查找)
参看图13解释FS/IS管理表40。FS/IS管理表40为用于以逻辑簇为单位管理存储于FS 12(包括FSIB 12a)或IS 13中的数据的位置的表。如图13中所示,对于每一个逻辑轨道地址,FS/IS管理表40以独立链接列表格式形成。如上文所解释,指向每一列表的顶条目的指针被存储在轨道管理表30的簇表指针30e的字段中。在图13中,示出用于两个逻辑轨道地址的链接列表。每一个条目包括逻辑簇地址40a、逻辑块ID 40b、逻辑块内簇位置40c、FS/IS块ID 40d,以及下一个指针40e。FS/IS管理表40用作正向查找表,这是因为可以从逻辑簇地址40a获得诸如逻辑块ID 40b以及逻辑块内簇位置40c(对应于存储装置位置)的所需信息,其中在上述逻辑块内簇位置40c中存储与逻辑簇地址40a对应的逻辑簇。
逻辑块ID 40b是用于识别其中存储与逻辑簇地址40a对应的簇的逻辑块ID的信息。逻辑块内簇位置40c指示与逻辑簇地址40a对应的簇在由逻辑块ID 40b指定的逻辑块中的存储位置。因为一个逻辑块包括最大2k个有效簇,所以逻辑块内簇位置40c使用k个位来识别2k个位置。在FS/IS块ID 40d中登记FS/IS块ID,该FS/IS块ID是稍后所解释的FS/IS逻辑块管理表42的索引。FS/IS块ID是这样的信息,其用于识别属于FS 12或IS 13的逻辑块。FS/IS管理表40中的FS/IS块ID 40d被登记,以链接至稍后所解释的FS/IS逻辑块管理表42。下一个指针40e表示指向为每一个逻辑轨道地址链接的同一列表中的下一条目的指针。
MS逻辑块管理表35(反向查找)
参看图14解释MS逻辑块管理表35。MS逻辑块管理表35为这样的表,其用于整体地管理关于MS 11中使用的逻辑块的信息(例如,存储哪个逻辑轨道,以及逻辑轨道是否另外可记录)。在MS逻辑块管理表35中,还登记与属于FS 12(包括FSIB 12)和IS 13的逻辑块有关的信息。MS逻辑块管理表35以阵列格式形成,该阵列形式具有逻辑块ID 35a作为索引。在128GB的NAND存储器10的情况下,条目的数目最大可为32K个条目。这些条目中的每一个包括:用于2i个轨道的轨道管理指针35b、有效轨道的数目35c、可写入的顶轨道35d,以及有效标志35e。MS逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的逻辑块ID 35a获得诸如存储于逻辑块中的逻辑轨道地址的所需信息。
轨道管理指针35b存储与逻辑块ID 35a所指定的逻辑块中的2i个轨道位置中的每一个相对应的逻辑轨道地址。可以使用该逻辑轨道地址来进行遍及轨道管理表30的搜寻,该轨道管理表30具有逻辑轨道地址作为索引。有效轨道的数目35c指示出在逻辑块ID 35a所指定的逻辑块中存储的轨道当中的有效轨道的数目(最大为2i)。可写入的顶轨道位置35d指示当逻辑块ID 35a所指定的逻辑块为被另外记录的块时另外可记录的顶位置(0至2i-1,当另外记录结束时为2i)。当作为MS 11(包括MSIB 11a)来管理逻辑块条目时,有效标志35e为“1”。
FS/IS逻辑块管理表42(反向查找)
参看图15解释FS/IS逻辑块管理表42。FS/IS逻辑块管理表42以阵列格式形成,该阵列格式具有FS/IS块ID 42a作为索引。FS/IS逻辑块管理表42为用于管理与用作FS 12或IS 13的逻辑块有关的信息(与逻辑块ID的对应、指向FS/IS内簇管理表44的索引、逻辑块是否另外可记录等)的表。FS/IS逻辑块管理表42主要通过使用FS/IS管理表40中的FS/IS块ID 40d来存取。每一条目包括逻辑块ID 42b、块内簇表42c、有效簇的数目42d、可写入的顶页42e,以及有效标志42f。MS逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的FS/IS块ID 42获得诸如在逻辑块中存储的逻辑簇之类的所需信息。
在MS逻辑块管理表35中登记的逻辑块当中与属于FS 12(包括FSIB12)和IS 13的逻辑块相对应的逻辑块ID被登记于逻辑块ID 42b中。指向稍后所解释的FS/IS内簇管理表44的索引被登记于块内簇表42c中,该FS/IS内簇管理表44指示在逻辑块中的每一个簇位置中登记由哪个逻辑簇地址指定的逻辑簇。有效簇的数目42d指示在FS/IS块ID 42a所指定的逻辑块中存储的簇当中的有效簇的数目(最大为2k)。可写入的顶页位置42e指示当FS/IS块ID 42a所指定的逻辑块为被另外记录的块时,另外可记录的顶页位置(0至2j-1,当另外记录结束时为2i)。当作为FS 12(包括FSIB12)或IS 13来管理逻辑块条目时,有效标志42f为“1”。
FS/IS内簇管理表44(反向查找)
参看图16解释FS/IS内簇管理表44。FS/IS内簇管理表44为指示在用作FS 12或IS 13的逻辑块中的每一个簇位置中记录哪个逻辑簇的表。FS/IS内簇管理表44对于每一个逻辑块具有2j页×2(k-j)簇=2k个条目。在连续区中排列与逻辑块中的簇位置当中的第0至第2k-1个簇位置对应的信息。以与属于FS 12和IS 13的逻辑块数目(P)相等的数目来存储包括该2k条信息的表。FS/IS逻辑块管理表42的块内簇表42c为用于该P个表的位置信息(指针)。在连续区中排列的每一条目44a的位置指示在一个逻辑块中的簇位置。作为条目44a的内容,登记指向这样的列表的指针,该列表包括通过FS/IS管理表40管理的逻辑簇地址,使得可以识别簇位置中存储了哪个簇。换句话说,条目44a并不指示链接列表的顶部。在条目44a中登记指向这样一个列表的指针,这个列表包括链接列表中的逻辑簇地址。
逻辑至物理转译表50(正向查找)
参看图17解释逻辑至物理转译表50。逻辑至物理转译表50以阵列格式形成,该阵列格式具有逻辑块ID 50a作为索引。在128GB的NAND存储器10的情况下,条目的数目可为最大32K个条目。逻辑至物理转译表50为用于管理关于逻辑块ID与物理块ID之间的转换和寿命的信息的表。这些条目中的每一个包括物理块地址50b、擦除的次数50c,以及读出的次数50d。逻辑至物理转译表50用作正向查找表,这是因为可以从逻辑块ID获得诸如物理块ID(物理块地址)之类的所需信息。
物理块地址50b指示属于一个逻辑块ID 50a的八个物理块ID(物理块地址)。擦除的次数50c指示逻辑块ID的擦除的次数。坏块(BB)以物理块(512KB)为单位来管理。然而,在32-位双速模式中,擦除的次数以一个逻辑块(4MB)的单位来管理。读出的次数50d指示逻辑块ID的读出的次数。擦除的次数50c可用于例如磨损均化处理中,该磨损均化处理用于均化NAND型闪速存储器的重写的次数。读出的次数50d可用于刷新处理中,该刷新处理用于重写在具有恶化的保持性能的物理块中存储的数据。
图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 11a和TFS 11b的MS区的结构以MS结构管理表(未示出)进行管理。具体地,管理分配给MS 11、MSIB 11a和TFS 11b的逻辑块及其类似者。包括FS 12、FSIB 12a和IS 13的FS/IS区的结构以FS/IS结构管理表(未示出)进行管理。具体地,管理分配给FS 12、FSIB12a和IS 13的逻辑块及其类似者。
读取处理
参看图18中所示的流程图来解释读取处理。当从ATA命令处理单元121输入读取命令和作为读出地址的LBA时,数据管理单元120遍及图9中所示的RC簇管理表23和图10中所示的WC簇管理表25进行搜寻(步骤S100)。具体地,数据管理单元120从RC簇管理表23和WC簇管理表25选择与LBA的簇地址的LSB(k-i)个位(参见图7)对应的线,且比较在选定的线的每一路中所输入的逻辑轨道地址23b和25c与LBA的轨道地址(步骤S110)。当存在使得输入于自身中的逻辑轨道地址与LBA的轨道地址一致的路时,数据管理单元120将此视为高速缓冲存储器命中(cache hit)。数据管理单元120读出与RC簇管理表23或WC簇管理表25的命中的线和路对应的WC 21或RC 22的数据,且将数据发送至ATA命令处理单元121(步骤S115)。
当RC 22或WC 21中不存在命中时(步骤S110),数据管理单元120搜寻作为搜寻对象的簇被存储于NAND存储器10的哪一部分中。首先,数据管理单元120遍及图12中所示的轨道管理表30进行搜寻(步骤S120)。轨道管理表30通过逻辑轨道地址30a来编索引。因此,数据管理单元120仅检查与LBA指定的逻辑轨道地址一致的逻辑轨道地址30a的条目。
数据管理单元120基于需要检查的LBA的逻辑簇地址而从簇位映像30b中选择对应位。当所述对应位指示“0”时,这意味着簇的最新数据的确存在于MS中(步骤S130)。在这种情况下,数据管理单元120从逻辑轨道地址30a的同一条目中的逻辑块ID 30c和逻辑块内轨道位置30d获得逻辑块ID以及轨道存在于其中的轨道位置。数据管理单元120使用LBA的簇地址的LSB(k-i)个位来计算从轨道位置的偏移。因此,数据管理单元120可计算与NAND存储器10中的簇地址相对应的簇数据被存储的位置。具体地,逻辑NAND层管理单元120b向物理NAND层管理单元120c提供:如上文所解释的从轨道管理表30获取的逻辑块ID 30c和逻辑块内位置30d;以及LBA的逻辑簇地址的LSB(k-i)个位。
物理NAND层管理单元120c从图17中所示的具有逻辑块ID作为索引的逻辑至物理转译表50获取对应于逻辑块ID 30c的物理块地址(物理块ID)(步骤S160)。数据管理单元120从逻辑块内轨道位置30d计算所获取的物理块ID中的轨道位置(轨道顶位置),且进一步从LBA的簇地址的LSB(k-i)个位计算与物理块ID中所计算出的轨道顶位置的偏移。因此,数据管理单元120可获取物理块中的簇数据。数据管理单元120经由RC 22将从NAND存储器10的MS 11获取的簇数据发送至ATA命令处理单元121(步骤S180)。
另一方面,当基于LBA的簇地址而在遍及簇位映像30b的搜寻中所述对应位指示“1”时,很可能该簇存储于FS 12或IS 13中(步骤S130)。在这种情况下,数据管理单元120在轨道管理表30中的轨道地址30a的相关条目当中提取簇表指针30e的条目,且使用此指针顺序地搜寻遍及与FS/IS管理表40的相关逻辑轨道地址相对应的链接列表(步骤S140)。具体地,数据管理单元120在相关逻辑轨道地址的链接列表中搜寻与LBA的逻辑簇地址一致的逻辑簇地址40a的条目。当存在逻辑簇地址40a的一致条目时(步骤S150),数据管理单元120在一致列表中获取逻辑块ID 40b和逻辑块内簇位置40c。以与上文所解释的方式相同的方式,数据管理单元120使用逻辑至物理转译表50来获取物理块中的簇数据(步骤S160和S180)。具体地,数据管理单元120从逻辑至物理转译表50获取与所获取的逻辑块ID对应的物理块地址(物理块ID)(步骤S160),且从由逻辑块内簇位置40c的条目获取的逻辑块内簇位置计算所获取的物理块ID的簇位置。因此,数据管理单元120可获取物理块中的簇数据。数据管理单元120经由RC 22将从NAND存储器10的FS 12或IS 13获取的簇数据发送至ATA命令处理单元121(步骤S180)。
当在遍及FS/IS管理表40的搜寻中不存在作为搜寻对象的簇时(步骤S150),数据管理单元120再次遍及轨道管理表30的条目进行搜寻,且决定在MS 11上的位置(步骤S170)。
写入处理
参看图19中所示的流程图来解释写入处理。通过非用于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 11a)的处理。来自ATA命令处理单元121的单独的写入请求或高速缓冲存储器清理请求可仅通过该处理来完成。这使得可以将ATA命令处理单元121的写入请求的已开始处理中的延迟最大限制为这样的时间,该时间用于在与WC 21的容量相等的NAND存储器10中写入。
CIB处理包括用于将FSIB 12a中通过WCF处理而写入的数据移动至FS 12的处理,以及用于将MSIB 11a中通过WCF处理而写入的数据移动至MS 11的处理。当开始CIB处理时,很可能以链式反应的方式执行NAND存储器中的部件(FS 12、IS 13、MS 11等)当中的数据移动和压紧处理。全部处理所需的时间大体上根据状态而改变。
首先,解释WCF处理的细节。当从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更新相关列表的路-线位映像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最早更新的轨道。
当根据上文所解释的策略判定将要清理的那个轨道时,如上文所解释的,如果相同轨道中所包括的WC 21中的所有簇将被清理,且将要清理的簇的量超过轨道大小的50%(即,如果WC中的有效簇的数目等于或大于决定清理的轨道中的2(k-i-1)时),则DRAM层管理单元120a执行至MSIB11a的清理(步骤S310)。如果簇的量未超过轨道大小的50%(即,WC中的有效簇的数目小于决定清理的轨道中的2(k-i-1)),则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而容易地获悉应清理的簇中的每一个在WC 21中的存储位置。
在写入处理期间或在写入处理之后,数据管理单元120在以下条件得到满足时还以相同的方式执行至NAND存储器10的清理处理:
(ii)登记于WC 21中的轨道的数目超过预定数目。
WC→MSIB(复制)
当根据基于有效簇的数目(有效簇的数目等于或大于2(k-i-1))的判断而执行从WC 21至MSIB 11a的清理时,数据管理单元120如上文所解释地执行下文所解释的过程(步骤S310)。
1.参考WC簇管理表25且参考与将要清理的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为“1”时,数据管理单元120执行稍后所解释的轨道内扇区填充(padding),用于与NAND存储器10中所包括的相同簇中的扇区合并。数据管理单元120还执行被动合并处理,该被动合并处理用于读出来自NAND存储器10的轨道中的不存在于WC 21中的簇,且合并该簇。
2.当决定清理的轨道的数目小于2i时,数据管理单元120添加决定清理的、具有2(k-i-1)个或更多有效簇的轨道,直至决定清理的轨道的数目从WC 21中的最旧者起达到2i个为止。
3.当将要复制的轨道有2i个或更多时,数据管理单元120以逻辑块单位(每2i个轨道作为一个集合)在MSIB 11a中执行写入。
4.数据管理单元120以轨道为单位将无法形成2i个轨道的集合的轨道写入MSIB 11a中。
5.数据管理单元120在复制结束之后使已存在于FS、IS和MS上的簇及轨道当中的属于经复制的轨道的簇和轨道无效。
解释从WC 21至MSIB 11a的复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中经清理的轨道的所有簇相对应。此后,有可能在这些项中进行写入。关于与WC轨道管理表24中的经清理的轨道对应的列表,数据管理单元120改变或删除例如上一个列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WC 21至MSIB 11a的轨道移动时,数据管理单元120根据轨道移动而更新轨道管理表30和MS逻辑块管理表35。首先,数据管理单元120搜寻作为轨道管理表30的索引的逻辑轨道地址30a,以判断是否已经登记对应于被移动的轨道的逻辑轨道地址30a。当已登记逻辑轨道地址30a时,数据管理单元120更新该索引的簇位映像30b的字段(因为轨道被移动至MS 11侧,所以所有相关位被设定为“0”)以及逻辑块ID 30c+逻辑块内轨道位置30d。当未登记对应于被移动的轨道的逻辑轨道地址30a时,数据管理单元120将簇位映像30b以及逻辑块ID 30c+逻辑块内轨道位置30d登记于相关逻辑轨道地址30a的条目中。数据管理单元120根据轨道管理表30的改变而在必要时更新MS逻辑块管理表35中的逻辑块ID 35a、轨道管理指针35b、有效轨道的数目35c、可写入的顶轨道35d等的条目。
当执行从其它区(FS 12和IS 13)或其类似者至MS 11的轨道写入时,或当执行通过MS 11中的压紧处理而进行的MS轨道内写入时,可将作为写入对象的轨道中所包括的WC 21中的有效簇同时写入MS中。这样的被动合并可随着从WC 21至MS 11的写入而存在。当执行这样的被动合并时,将簇从WC 21删除(使其无效)。
WC→FSIB(复制)
当根据基于有效簇的数目(有效簇的数目等于或大于2(k-i-1))的判断而执行从WC 21至FSIB 12a的清理时,数据管理单元120如上文所解释地执行下文所解释的过程。
1.参考与将要清理的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为“1”时,数据管理单元120执行簇内扇区填充,用于与NAND存储器10中所包括的相同簇中的扇区合并。
2.数据管理单元120通过以从最旧轨道起的顺序追踪WC中的轨道而从仅具有小于2(k-i-1)个有效簇的轨道中提取簇,且当有效簇的数目达到2k时,以逻辑块为单位将所有簇写入FSIB 12a中。
3.当未寻找到2k个有效簇时,数据管理单元120以与逻辑页的数目相等的数目将具有小于2(k-i-1)的数目的有效簇的所有轨道写入FSIB 12a中。
4.数据管理单元120在复制结束之后使已存在于FS和IS上的簇当中的与被复制的簇相同的簇无效。
解释从WC 21至FSIB 12a的该复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中经清理的轨道的所有簇相对应。此后,有可能在这些条目中进行写入。关于与WC轨道管理表24中的经清理的轨道相对应的列表,数据管理单元120改变或删除例如上一个列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WC 21至FSIB 12a的簇移动时,数据管理单元120根据簇移动而更新轨道管理表30的簇表指针30e、FS簇的数目30f及其类似者。数据管理单元120还更新FS/IS管理表40的逻辑块ID 40b、逻辑块内簇位置40c及其类似者。关于最初不存在于FS 12中的簇,数据管理单元120将列表添加至FS/IS管理表40的链接列表。根据该更新,数据管理单元120更新MS逻辑块管理表35、FS/IS逻辑块管理表42和FS/IS内簇管理表44的相关的区段。
CIB处理
当上文所解释的WCF处理结束时,逻辑NAND层管理单元120b执行CIB处理,该CIB处理包括用于将FSIB 12a中通过WCF处理而写入的数据移动至FS 12的处理、以及用于将MSIB 11a中通过WCF处理而写入的数据移动至MS 11的处理。当开始CIB处理时,如上文所解释的,很可能以链式反应的方式执行块之间的数据移动和压紧处理。全部处理所需的时间大体上根据状态而改变。在CIB处理中,基本上,首先,执行MS 11中的CIB处理(步骤S330),随后,执行FS 12中的CIB处理(步骤S340),再次执行MS 11中的CIB处理(步骤S350),执行IS 13中的CIB处理(步骤360),且最后再次执行MS 11中的CIB处理(步骤S370)。在从FS 12至MSIB 11a的清理处理、从FS 12至IS 13的清理处理或从IS 13至MSIB 11a的清理处理中,当过程中出现循环时,可能不按顺序执行处理。下面将单独地解释MS 11中的CIB处理、FS 12中的CIB处理和IS 13中的CIB处理。
MS 11中的CIB处理
首先,解释MS 11中的CIB处理(步骤S330)。当执行轨道数据从WC 21、FS 12和IS 13向MS 11的移动时,将轨道数据写入MSIB 11a中。在完成在MSIB 11a中的写入之后,如上文所解释的,更新轨道管理表30,且改变(移动)轨道排列于其中的逻辑块ID 30c、块内轨道位置30d及其类似者。当将新轨道数据写入MSIB 11a中时,使从开始起就存在于MS 11或TFS 11b中的轨道数据无效。该无效化处理是这样实现的,即,使这样的轨道无效,所述轨道来自MS逻辑块管理表35中的其中存储旧轨道信息的逻辑块的条目。具体地,删除MS逻辑块管理表35的条目中的轨道管理指针35b的字段中的相关轨道的指针,且使有效轨道的数目减一。当通过该轨道无效化而使一个逻辑块中的所有轨道无效时,使有效标志35e无效。通过这样无效化或其类似者,产生MS 11的包括无效轨道的块。当重复此步骤时,块的使用效率会降低而引起可用逻辑块的不足。
当出现这种情形且分配给MS 11的逻辑块的数目超过MS 11所允许的块的数目的上限时,数据管理单元120执行压紧处理以产生无效的空闲块FB。将该无效的空闲块FB返回至物理NAND层管理单元120c。逻辑NAND层管理单元120b减少分配给MS 11的逻辑块的数目,且接着重新从物理NAND层管理单元120c获取可写入的空闲块FB。压紧处理为这样的处理,其用于在新逻辑块中收集作为压紧对象的逻辑块的有效簇,或者将作为压紧对象的逻辑块中的有效轨道复制至其它逻辑块,以产生返回至物理NAND层管理单元120c的无效的空闲块FB,且改善逻辑块的使用的效率。在执行压紧的过程中,当存在WC、FS和IS上的有效簇时,数据管理单元120执行被动合并,该被动合并用于合并作为压紧对象的轨道区中的所有有效簇。登记于TFS 11b中的逻辑块不包括在压紧对象中。
特别解释从MSIB 11a至MS 11或至TFS 11b的清理以及将MSIB 11a中存在满块设定为条件的压紧处理的实例。
1.参考MS逻辑块管理表35的有效标志35e,当在MS 11中存在被无效的逻辑块时,数据管理单元120将该块设定为无效的空闲块FB。
2.数据管理单元120将MSIB 11a中的满逻辑块清理至MS 11。具体地,数据管理单元120更新上文所解释的MS结构管理表(未示出),且将逻辑块从在MSIB的管理之下转移至在MS的管理之下。
3.数据管理单元120判断分配给MS 11的逻辑块的数目是否超过MS11所允许的块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的MS压紧。
4.参考MS逻辑块管理表35的有效轨道的数目35c的字段及其类似者,数据管理单元120以有效轨道的数目对不包括在TFS 11b中的逻辑块当中的具有被无效的轨道的逻辑块进行分类。
5.数据管理单元120从具有小数目的有效轨道的逻辑块收集轨道,且执行压紧。在执行压紧过程中,首先,对于逻辑块中的每一个,对轨道进行复制(一次复制2i个轨道),以执行压紧。当作为压紧对象的轨道具有在WC 21、FS 12和IS 13中的有效簇时,数据管理单元120还合并这些有效簇。
6.数据管理单元120将压紧源处的逻辑块设定为无效的空闲块FB。
7.当执行压紧且一个逻辑块包括有效的2i个轨道时,数据管理单元120将逻辑块移动至TFS 11b的顶部。
8.当可通过将逻辑块中的有效轨道复制至另一逻辑块而产生无效的空闲块FB时,数据管理单元120以轨道单位将数目小于2i的有效轨道另外记录在MSIB 11a中。
9.数据管理单元120将压紧源处的逻辑块设定为空闲块FB。
10.当分配给MS 11的逻辑块的数目降低至MS 11所允许的块的数目的上限以下时,数据管理单元120结束MS压紧处理。
FS 12中的CIB处理
解释FS 12中的CIB处理(步骤S340)。当通过从WC 21至FSIB 12a的簇写入处理而在FSIB 12a中产生其中所有的页都被写入的逻辑块时,将FSIB 12a中的块从FSIB 12a移动至FS 12。根据该移动,将旧逻辑块从多个逻辑块所配置的FIFO结构的FS 12清理。
具体地如下文所解释地实现从FSIB 12a至FS 12的清理以及从FS 12的块清理。
1.参考FS/IS逻辑块管理表42的有效标志35e及其类似者,当在FS 12中存在被无效的逻辑块时,数据管理单元120将该块设定为无效的空闲块FB。
2.数据管理单元120将FSIB 12a中的满块清理至FS 12。具体地,数据管理单元120更新FS/IS结构管理表(未示出),且将该块从在FSIB的管理之下转移至在FS的管理之下。
3.数据管理单元120判断分配给FS 12的逻辑块的数目是否超过FS12所允许的块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的清理。
4.首先,数据管理单元120确定作为清理对象的最旧逻辑块中的簇数据当中,应直接被移动至MS 11而不移动至IS 13的簇数据(实际上,因为MS的管理单位为轨道,所以以轨道单位确定所述簇数据)。
(A)数据管理单元120按照从页的顶部开始的顺序扫描作为清理对象的逻辑块中的有效簇。
(B)数据管理单元120参考轨道管理表30的FS簇的数目30f的字段,寻找在FS中该簇所属于的轨道具有多少个有效簇。
(C)当该轨道中的有效簇的数目等于或大于预定阈值(例如,2k-1的50%)时,数据管理单元120将该轨道设定为清理至MS的候选者。
5.数据管理单元120将应被清理至MS 11的轨道写入MSIB 11a中。
6.当遗留有清理轨道时,数据管理单元120进一步执行至MSIB 11a的清理。
7.当即使在上文的处理2至处理4之后,作为清理对象的逻辑块中仍存在有效簇时,数据管理单元120将该逻辑块移动至IS 13。
当执行从FS 12至MSIB 11a的清理时,紧接在清理之后,数据管理单元120执行MS 11中的CIB处理(步骤S350)。
IS 13中的CIB处理
解释IS 13中的CIB处理(步骤S360)。根据从FS 12至IS 13的块移动而将逻辑块添加至IS 13。然而,根据逻辑块的添加,逻辑块的数目超过可在多个逻辑块所形成的IS 13中进行管理的块的数目的上限。当逻辑块的数目超过上限时,在IS 13中,首先,数据管理单元120执行一个到多个逻辑块至MS 11的清理,然后执行IS压紧。具体地,数据管理单元120执行下文所解释的过程。
1.数据管理单元120以轨道中的有效簇的数目×有效簇系数对IS 13中所包括的轨道进行分类,收集具有大乘积值的2i+1个轨道(对于两个逻辑块),且将这些轨道清理至MSIB 11a。
2.当具有最小数目的有效簇的2i+1个逻辑块的有效簇的总数目为例如等于或大于作为预定设定值的2k个(对于一个逻辑块)时,数据管理单元120重复上文所解释的步骤。
3.在执行清理之后,数据管理单元120按照从具有最小数目的有效簇的逻辑块开始的顺序收集2k个簇,且执行IS 13中的压紧。
4.数据管理单元120将压紧源处的逻辑块当中不包括有效簇的逻辑块作为无效的空闲块FB返回。
当执行从IS 13至MSIB 11a的清理时,紧接在清理之后,数据管理单元120执行MS 11中的CIB处理(步骤S370)。
图20为部件当中的数据的流动中的输入与输出的组合的图,且指示作为触发器引起数据的流动的原因。基本上,根据从WC 21的簇清理而将数据写入FS 12中。然而,当对于从WC 21至FS 12的清理偶然有必要进行簇内扇区填充(簇填充)时,复制来自FS 12、IS 13和MS 11的数据。在WC 21中,通过使用WC簇管理表25的标记中的扇区位置位映像25b识别相关簇地址中存在还是不存在2(l-k)个扇区,有可能以扇区(512B)为单位执行管理。另一方面,FS 12和IS 13的管理单位为簇,且MS 11的管理单位为轨道,其中FS 12和IS 13为NAND存储器10中的功能部件。以这种方式,NAND存储器10中的管理单位比扇区大。因此,在从WC 21将数据写入NAND存储器10的过程中,当在NAND存储器10中存在所具有的簇地址与将要写入的数据的簇地址相同的数据时,有必要在进行这样的合并之后将数据写入NAND存储器10中,所述合并是将从WC 21写入NAND存储器10中的簇中的扇区与NAND存储器10中存在的相同簇地址中的扇区进行合并。
该处理为图20中所示的簇内扇区填充处理(簇填充)和轨道内扇区填充(轨道填充)。除非执行这些种类的处理,否则不能读出正确数据。因此,当数据从WC 21清理至FSIB 12a或MSIB 11a时,参考WC簇管理表25且参考与将要清理的簇相对应的标记中的扇区位置位映像25b。当并非所有的扇区位置位映像25b都为“1”时,执行簇内扇区填充或轨道内扇区填充,用于与NAND存储器10中所包括的相同簇或相同轨道中的扇区合并。DRAM 20的工作区被用于该处理。将数据从DRAM 20的工作区写入MSIB 11a中或写入FSIB 12a中。
在IS 13中,基本上,根据从FS 12的块清理(移动)而写入数据,或者根据IS中的压紧而写入数据。在MS 11中,可从所有区段写入数据。当写入数据时,在MS 11中,因为仅可以以轨道为单位写入数据,所以可引起归因于MS本身的数据的填充。当以轨道为单位写入数据时,还根据被动合并而写入其它块中的片段数据。此外,在MS 11中,还根据MS压紧而写入数据。在被动合并中,当执行从WC 21、FS 12或IS 13这三个部件之一至MS 11的轨道清理或逻辑块清理(对于2i个轨道的清理)时,在DRAM 20的工作区中收集一个部件中的作为清理对象的轨道(或逻辑块)中所包括的两个部件中的有效簇以及MS 11中的有效簇,并将这些有效簇从DRAM 20的工作区写入MSIB 11a中作为用于一个轨道的数据。
更详细解释该实施例。图21是与图6中所示的NAND存储器10的写入处理有关的详细功能配置的图。省略冗余解释。
FS配置
FS单元12Q包括FSIB 12a和FS 12。FS 12具有用于大量逻辑块的容量。以逻辑块为单位管理FIFO结构。从WC 21清理的数据被输入其中的FS输入缓冲器(FSIB)12a设置在FS 12的前级处。FSIB 12a包括FS满块缓冲器(FSFB)12aa和FS额外记录缓冲器(FS额外记录IB)12ab。FSFB 12aa具有用于一个至多个逻辑块的容量。FS额外记录IB 12ab也具有用于一个至多个逻辑块的容量。当从WC 21清理的数据是用于一个逻辑块的数据时,执行以逻辑块为单位向FSFB 12aa的数据复制。当该数据不是用于一个逻辑块的数据时,执行以逻辑页为单位向FS额外记录IB 12ab的额外写入。
IS配置
IS单元13Q包括IS 13、IS输入缓冲器(ISIB)13a和IS压紧缓冲器13c。ISIB 13a具有用于一个至多个逻辑块的容量,IS压紧缓冲器13c具有用于例如一个逻辑块的容量,并且IS 13具有用于大量逻辑块的容量。在IS 13中,与在FS 12中一样地,以逻辑块为单位管理FIFO结构。IS压紧缓冲器13c为用于执行IS单元13Q中的压紧的缓冲器。
如上文所解释的,IS单元13Q以与FS单元12Q相同的方式以簇为单位执行数据的管理。当执行逻辑块从FS单元12Q至IS单元13Q的移动(即,逻辑块从FS 12的清理)时,根据指针的重新定位,将作为清理对象的逻辑块(其为FS单元12Q的先前管理对象)改变成IS单元13(具体地,ISIB 13a)的管理对象块。当根据逻辑块从FS单元12Q至IS单元13Q的移动,IS 13的块的数目超过预定上限时,执行从IS 13至MS单元11Q的数据清理和IS压紧处理,且使IS单元13Q的块的数目返回为规定值。
MS配置
MS单元11Q包括MSIB 11a、轨道前级缓冲器(TFS)11b,以及MS 11。MSIB 11a包括一个至多个(在该实施例中为四个)MS满块输入缓冲器(在下文中为MSFB)11aa和一个至多个(在该实施例中为两个)额外记录输入缓冲器(在下文中为MS额外记录IB)11ab。一个MSFB 11aa具有用于一个逻辑块的容量。MSFB 11aa用于以逻辑块为单位进行的写入。一个MS额外记录IB 11ab具有用于一个逻辑块的容量。MS额外记录IB 11ab用于以轨道为单位进行的额外写入。
将从WC 21清理的逻辑块、从FS 12清理的逻辑块或从IS 13清理的逻辑块复制至MSFB 11aa。将复制至一个MSFB 11aa的逻辑块直接移动至MS 11而不移动通过TFS 11b。在逻辑块被移动至MS 11之后,将空闲块FB分配为MSFB 11aa。
以额外记录的方式将从WC 21清理的轨道或从FS 12清理的轨道复制至MS额外记录IB 11ab。将该MS额外记录IB 11ab中以轨道为单位额外记录的满逻辑块移动至TFS 11b。在逻辑块被移动至TFS 11b之后,将空闲块FB分配为MS额外记录IB 11ab。
如上文所解释的,TFS 11b为这样的缓冲器,其具有用于大量逻辑块的容量,且具有插入在MS额外记录IB 11ab与MS 11之间的FIFO结构。将MS额外记录IB 11ab中以轨道为单位额外记录的满逻辑块移动至具有FIFO结构的TFS 11b的输入侧。从MS压紧缓冲器11c移动根据MS 11中的压紧处理而形成的逻辑块。MS压紧缓冲器11c为用于执行MS 11中的压紧的缓冲器。当根据MS 11中的压紧处理而将MS中的轨道写入MS压紧缓冲器11c中时,执行被动合并,该被动合并用于经由DRAM 20的工作区将WC 21、FS单元12Q和IS单元13Q中的有效簇(其包括在作为写入对象的轨道中)写入MS压紧缓冲器11c中。在该实施例中,登记于MSIB 11a和TFS 11b中的逻辑块不包括在压紧对象中。
图22是数据管理单元120的更详细的功能配置的图。如上文所解释的,数据管理单元120包括:DRAM层管理单元120a,其执行对存储于DRAM20中的数据的管理;逻辑NAND层管理单元120b,其执行对存储于NAND存储器10中的数据的管理;以及物理NAND层管理单元120c,其管理作为物理存储装置的NAND存储器10。
DRAM层管理单元120a包括RC簇管理表23、WC簇管理表25,以及WC轨道管理表24,且基于这些管理表而执行对DRAM层的管理。除了轨道管理表30、MS块管理表35、FS/IS管理表40、FS/IS逻辑块管理表42和FS/IS内簇管理表44之外,逻辑NAND层管理单元120b还包括MS结构管理表60和FS/IS结构管理表65,且基于这些管理表而执行对NAND存储器10的逻辑NAND层的管理。除了逻辑至物理转译表50之外,物理NAND层管理单元120c还包括坏块管理表(BB管理表)200、保留块管理表(RB块管理表)210、空闲块管理表(FB管理表)220以及现用块(active block)管理表(AB管理表)230,且使用这些管理表来执行对NAND存储器10的物理NAND层的管理。
物理NAND层
首先,解释物理NAND层。如上文所解释的,在32-位双速模式中,并行地致动四个通道(ch0、ch1、ch2和ch3),且通过使用NAND存储器芯片的双速模式来执行擦除、写入和读出。如图23中所示,将四个并行操作元件10a至10d中的NAND存储器芯片中的每一个划分为例如平面0和平面1的两个分区。划分的数目不限于二。平面0和平面1包括彼此独立的周边电路(例如,行解码器、列解码器、页缓冲器和数据高速缓冲存储器),且可基于从NAND控制器112输入的命令而同时执行擦除、写入和读出。在NAND存储器芯片的双速模式中,通过并行地控制平面0和平面1来实现高速写入。
物理块大小为512kB。因此,在32-位双速模式中,根据该四个通道的并行操作和对该两个平面的同时存取而将物理块的擦除单位增加至512kB×4×2=4MB。因此,在32-位双速模式中,八个平面并行地操作。
图24是逻辑至物理转译表50的另一实例的图。在图24中所示的逻辑至物理转译表50中,将擦除时间50e的字段添加至图17中所示的逻辑至物理表50,该擦除时间50e指示擦除与逻辑块ID 50a对应的逻辑块的时间。关于擦除时间50e,例如,仅须使用通过测量对NAND存储器芯片中的逻辑块应用擦除操作的次数而获得的值,或者使用NAND控制器112的激励时间。擦除时间50e用于稍后所解释的FB管理表220中的空闲块FB管理。
BB管理表200是用于以物理块(512kB)为单位管理坏块BB的表。如图25中所示,BB管理表200以二维阵列格式形成,其具有例如针对每4(通道)×2(平面/通道)个通道内平面的关于物理块的(物理块的数目/平面)×(NAND存储器芯片的数目/一个并行操作元件)的信息。在BB管理表200的每一条目中,存储用于每一个物理块的物理块ID 200a。
在该实施例的情况下,一个NAND存储器芯片具有2GB的大小。将物理块ID“0”至“2047”分配给第一芯片的平面0。将物理块ID“2048”至“4095”分配给第一芯片的平面1。当将使用期间所产生的坏块BB登记于BB管理表200中时,物理NAND层管理单元120c紧接在与坏块BB对应的通道内平面ID(ID#0至ID#7)的最后有效条目之后添加坏块BB而不对坏块BB进行排序。
RB管理表210是用于管理以八个物理块为单位(512kB)形成4MB逻辑块时剩余的块(保留块RB)的表。RB管理表210以与BB管理表200相同的格式进行管理。通过针对与块对应的通道内平面ID中的每一个以FIFO来管理块,择优地从最早登记的保留块开始依次使用保留块。
FB管理表220是用于以4MB逻辑块单位管理当前未被分配应用的空闲块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管理表用于例如刷新处理。
刷新处理是这样一种技术,其用于防止由于已写入的数据的老化劣化和读取干扰(其为读取处理中所涉及的数据中断)的影响而发生超过SSD110的错误校正能力的错误。具体地,例如,在超过错误校正能力的错误发生之前,执行这样的处理,该处理用于读出所存储的数据并执行错误校正且接着将数据重写入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包括例如第一列第四行、第二列第三行、第三列第三行、第四列第三行、第五列第三行、第六列第三行、第七列第三行和第八列第四行中的八个物理块。
此后,例如,假定逻辑块L1的第四列第三行中的物理块作为不能用作存储区的坏块BB而登记在BB管理表200中。物理NAND层管理单元120c检测到该登记,且从RB管理表210选择与已登记为坏块BB的物理块相同的通道和平面中的保留块RB来作为用于坏块BB的替换候选者。在图27的情况下,选择邻近坏块BB的第四列第四行中的物理块(保留块RB)作为用于第四列第三行中的坏块BB的替换候选者。
物理NAND层管理单元120c遍及逻辑至物理转译表50的与逻辑块L1对应的逻辑块ID 50a的条目进行搜寻,且将该条目中的物理块ID 50b的字段中所包括的八个物理块ID当中与第四列第三行对应的坏块BB的物理块ID改变为与从RB管理表210选择的第四列第四行中的保留块RB对应的物理地址ID。因此,此后,逻辑块L1包括被交替长虚线与短虚线包围的第一列第四行、第二列第三行、第三列第三行、第四列第四行、第五列第三行、第六列第三行、第七列第三行和第八列第四行中的八个新物理块的组合。假定逻辑块L1的逻辑块ID为“L1”。
此后,物理NAND层管理单元120c锁定来自FB管理表220的新空闲块FB。假定被锁定的空闲块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将逻辑块L1中除第四列第三行之外的第一列第四行、第二列第三行、第三列第三行、第五列第三行、第六列第三行、第七列第三行和第八列第四行中的七个物理块登记在RB管理表210中。此后,以与上文所解释的方式相同的方式,物理NAND层管理单元120c锁定来自FB管理表220的新空闲块FB,且如上文所解释地执行逻辑块ID的替换,然后将从FB管理表220所获取的逻辑块ID设定为不可用。
以这种方式,即使当产生坏块BB时,物理NAND层管理单元120c也执行逻辑块ID的替换。因此,用于逻辑NAND层管理单元120b中的逻辑块ID在产生坏块BB之前和之后不改变。因此,即使当多个物理块中的至少一个被登记为坏块时,LBA逻辑地址与逻辑块之间的对应关系也不改变。可以防止逻辑NAND层管理单元120b中的管理表的重写的开销。
解释32-位双速模式中的擦除处理。每当以逻辑块为单位擦除NAND存储器10中的数据时,物理NAND层管理单元120c将与图24中所示的逻辑至物理转译表50的已擦除的逻辑块对应的逻辑块ID中的擦除次数50c的字段加一,且将擦除时间50e更新为最新的数据。
逻辑NAND层
参看图28和图29来解释用于逻辑NAND层中的管理的MS结构管理表60和FS/IS结构管理表65。图28中所示的MS结构管理表60包括用于管理MS单元11Q的结构的区和用于存储状态信息的区。MS结构管理表60包括:MS缓冲器管理表61,其用于管理被分配为MSFB 11aa、MS额外记录IB 11ab和TFS 11b的逻辑块ID;按有效轨道数目的逻辑块ID列表62,其用于存储具有小数目的有效轨道的逻辑块ID,以便增加MS压紧期间的排序处理的速度;以及区63和64,其用于管理作为状态信息的逻辑块的最大数目MBL和有效逻辑块的数目VBL。
在MS结构管理表60中,为MSFB 11aa、MS额外记录IB 11ab和TFS 11b准备具有所需数目的条目的固定字段61a至61c。逻辑块ID记录在固定字段61a至61c中。用于TFS 11b的字段61c具有链接列表结构。执行用于具有FIFO结构的TFS 11b的类似FIFO的管理。
在按有效轨道数目的逻辑块ID列表62中,为具有一个有效轨道的逻辑块准备所需数目的条目,为具有两个有效轨道的逻辑块准备所需数目的条目,...,且为具有2i-1个有效轨道的逻辑块准备所需数目的条目。逻辑块ID记录在这些条目中的每一个中。当搜寻MS逻辑块管理表35的有效轨道的数目35c的字段时,总是将按有效轨道数目的逻辑块ID列表62更新至最新状态。在按有效轨道数目的逻辑块ID列表62中不输入作为MSIB11a和TFS 11b而登记在MS缓冲器管理表61中的逻辑块。
在用于作为状态信息的逻辑块的最大数目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;FSFIFO管理表67,其用于管理FS 12的FIFO结构;IS输入缓冲器管理表68,其用于管理被分配为ISIB 13a的逻辑块ID;以及ISFIFO管理表69,其用于管理IS 13的FIFO结构。
在FS输入缓冲器管理表66中,为FSFB 12aa和FS额外记录IB 12ab准备具有所需数目的条目的固定字段66a和66b。作为FS/IS逻辑块管理表42的索引的FS/IS块ID 42a被登记在固定字段66a和66b中。在IS输入缓冲器管理表68中,为ISIB 13a准备具有所需数目的条目的固定字段。FS/IS块ID 42a被登记在固定字段中。在FSFIFO管理表67中,在固定字段中准备用于形成FS 12的FIFO结构的逻辑块的数目的条目。FS/IS块ID42a被登记在FSFIFO管理表67的固定字段中。在ISFIFO管理表69中,在固定字段中准备用于形成IS 13的FIFO结构的逻辑块的数目的条目。FS/IS块ID 42a被登记在固定字段中。
解释在执行参看图19所解释的划分成两个阶段(WCF处理和CIB处理)的写入处理过程中从WC 21至MSIB 11a的复制处理中所涉及的对管理表的更新处理。此处,执行从WC 21至MS额外记录IB 11ab的以轨道为单位进行的复制。DRAM层管理单元120a参考这样的轨道条目中的路-线位映像24c而从顶部开始依次检查WC轨道管理表24,在所述轨道条目中登记有与决定清理的轨道对应的逻辑轨道地址24a,将WC簇管理表25中与路-线位映像24c的m×n个条目中具有有效位“1”的条目对应的条目中的状态标志25a从有效改变成等待清理至NAND,且向逻辑NAND层管理单元120b通知清理请求。
另一方面,逻辑NAND层管理单元120b参考图28中所示的MS结构管理表60的MS缓冲器管理表61和图14中所示的MS逻辑块管理表35而检查MS额外记录IB 11ab的状态。当从MS缓冲器管理表61的用于MS额外记录IB的字段61b判断出MS额外记录IB 11ab已经存在时,逻辑NAND层管理单元120b从MS逻辑块管理表35的有效轨道的数目35c的字段获取与用于MS额外记录IB的字段61b中所登记的逻辑块ID的可写入的轨道的数目有关的信息,且向DRAM层管理单元120a通知所获取的可写入的轨道的数目。
当从MS缓冲器管理表61的用于MS额外记录IB的字段61b判断出MS额外记录IB 11ab不存在时,逻辑NAND层管理单元120b向物理NAND层管理单元120c发出用于获取空闲块FB的请求,且获取空闲块FB以及被分配为FB的逻辑块ID。逻辑NAND层管理单元120b向DRAM层管理单元120a通知所获取的空闲块FB的可写入轨道的数目2i。
DRAM层管理单元120a通过从逻辑NAND层管理单元120b通知的可写入轨道的数目而从WC轨道管理表24选择轨道,且判断是否执行轨道内扇区填充和被动合并。此处,假定不必执行轨道内扇区填充。为了检查将要清理的轨道是否存在于NAND存储器10中且查明是否执行被动合并,DRAM层管理单元120a向逻辑NAND层管理单元120b通知所需的信息(例如,将要清理的逻辑轨道地址)。
当逻辑NAND层管理单元120b接收到该通知时,逻辑NAND层管理单元120b遍及作为轨道管理表30的索引的逻辑轨道地址30a进行搜寻,且当必要时,进一步遍及FS/IS管理表40进行搜寻,搜寻与将要清理的逻辑轨道地址相同的逻辑轨道是否存在于NAND存储器10侧上,且向物理NAND层管理单元120c通知该搜寻的结果。因此,物理NAND层管理单元120c执行涉及被动合并或不涉及被动合并的从WC 21至MS额外记录IB 11ab的清理。
当从物理NAND层管理单元120c通知从WC 21至MS额外记录IB11ab的清理结束时,如果从物理NAND层管理单元120c获取新空闲块FB作为MS额外记录IB 11ab,则逻辑NAND层管理单元120b将MS逻辑块管理表35中的与从物理NAND层管理单元120c给出的空闲块FB的逻辑块ID相对应的条目的有效标志35e设定为有效,将逻辑块ID登记在MS缓冲器管理表61的用于MS额外记录IB的字段61b中,且使MS结构管理表60的有效逻辑块的数目VBL递增。
逻辑NAND层管理单元120b更新轨道管理表30。换句话说,逻辑NAND层管理单元120b将所需的信息(例如,簇位映像30b、逻辑块ID 30c和逻辑块内轨道位置30d)登记在与从WC 21清理至MS额外记录IB 11ab的轨道相对应的逻辑轨道地址30a的条目中。
当不执行被动合并时,如上文所解释的,逻辑NAND层管理单元120b将所需的信息登记在轨道管理表30的对应逻辑轨道条目中。逻辑NAND层管理单元120b将关于从WC 21清理的新轨道的数据登记在与MS逻辑块管理表35的已写入的逻辑块ID相对应的条目中。关于MS逻辑块管理表35中的登记,存在例如作为轨道管理表30的索引的与存储在MS逻辑块中的轨道对应的逻辑轨道地址(轨道管理指针35b)的更新、有效轨道的数目35c的更新,以及可写入的顶轨道35d的更新。
当假定执行WC 21和MS 11的被动合并时,更新轨道管理表30中与合并源轨道对应的逻辑轨道地址30a的条目中的所需的信息(例如,逻辑块ID 30c和逻辑块内轨道位置30d)。具体地,将逻辑块ID 30c从逻辑块ID 30c存在于MS 11中时的逻辑块ID改变为与MS额外记录IB 11ab对应的逻辑块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额外记录IB11ab的清理结束时,逻辑NAND层管理单元120b向DRAM层管理单元120a通知清理的结束。DRAM层管理单元120a接收该通知,且将WC簇管理表25中与属于被清理轨道的所有簇对应的条目中的状态标志25a设定为无效(可用)。此后,可以在这些条目中进行写入。关于与WC轨道管理表24中的被清理的轨道对应的列表,例如,改变或删除上一个列表的下一个指针24d,且使该列表无效。
解释CIB处理。当WCF处理结束时,执行CIB处理,该CIB处理包括用于将FSIB 12a的通过WCF处理而写入的数据移动至FS 12的处理以及用于将MSIB 11a的通过WCF处理而写入的数据移动至MS 11或TFS11b的处理。下面参看图30中所示的流程图来解释CIB处理的详细过程。
MS单元11Q中的CIB处理
首先,详细地解释图19中的步骤S330处所解释的MS单元11Q中的第一次的CIB处理。逻辑NAND层管理单元120b从MS逻辑块管理表35的有效轨道的数目35c的字段获取与在MS结构管理表60的MS缓冲器管理表61的用于MSFB的字段61a和用于MS额外记录IB的字段61b中登记的逻辑块ID有关的有效轨道的数目的信息。逻辑NAND层管理单元120b检查在MSIB 11a的MSFB 11aa或MS额外记录IB 11ab中是否存在其所有轨道都被写入的一个或多个满块(步骤S400)。当在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 11aa中的满逻辑块移动至MS 11,且将MS额外记录IB 11ab中的满逻辑块移动至TFS 11b(步骤S407)。该移动处理是这样的处理,其用于仅删除在MS结构管理表60的MS缓冲器管理表61的用于MSFB的字段61a和用于MS额外记录IB的字段61b中登记的相关逻辑块ID。
逻辑NAND层管理单元120b比较MS结构管理表60的作为状态信息的有效逻辑块的数目VBL与逻辑块的最大数目MBL(步骤S410)。作为该比较的结果,当有效逻辑块的数目VBL超过逻辑块的最大数目MBL时,逻辑NAND层管理单元120b判断出可写入的空闲块FB不足,逐块地执行下文所解释的MS压紧处理,增加应被返回至物理NAND层管理单元120c的完全通过无效轨道配置的无效逻辑块,且将有效逻辑块的数目VBL减少至小于块的最大数目MBL(步骤S420)。当在步骤S410处的判断中可写入的空闲块FB并非不足时,将该过程移至步骤S440。
关于MS压紧处理,如上文所解释的,存在两种类型,即,2i轨道MS压紧和小于2i的轨道MS压紧。在2i轨道MS压紧中,使用MS压紧缓冲器11c。将压紧之后的逻辑块移动至TFS 11b的顶部。在小于2i的轨道MS压紧中,以轨道单位将逻辑块复制至MS额外记录IB 11ab。
首先,逻辑NAND层管理单元120b执行2i轨道MS压紧,用于参考MS结构管理表60的按有效轨道的数目的逻辑块ID列表62,而从具有小数目的有效轨道的逻辑块收集2i个轨道,且将所收集的2i个轨道复制至从物理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 11b的顶部(最旧位置)。当TFS 11b已满时,将顶部的最旧块移动至MS 11。
随后,数据管理单元120使MS 11中在压紧源处的旧轨道数据无效。具体地,数据管理单元120删除MS逻辑块管理表35中与压紧源处的逻辑块对应的条目中的轨道管理指针35b的字段的相关段,使有效轨道的数目35c递减,且更新MS结构管理表60的按有效轨道的数目的逻辑块ID列表62。当有效轨道的数目35c通过该递减而减少至0时,数据管理单元120使MS结构管理表60的有效逻辑块的数目VBL递减,且将该无效逻辑块返回至物理NAND层管理单元120c。将MS逻辑块管理表35的与返回的逻辑块对应的条目的有效标志35e设定为无效。
当该压紧处理和用于返回无效逻辑块FB的处理结束时,逻辑NAND层管理单元120b比较有效逻辑块的数目VBL与逻辑块的最大数目MBL。当有效逻辑块的数目VBL超过逻辑块的最大数目MBL时,逻辑NAND层管理单元120b再次执行用于收集2i个有效轨道的2i轨道MS压紧。当用于收集2i个有效轨道的2i轨道MS压紧不可能处于有效逻辑块的数目VBL超过逻辑块的最大数目MBL的状态中时,逻辑NAND层管理单元120b执行小于2i的轨道MS压紧。
在小于2i的轨道MS压紧中,逻辑NAND层管理单元120b将作为压紧对象的数目小于2i个轨道的轨道复制至MS额外记录IB 11ab,以产生通过无效的2i个轨道形成的无效逻辑块。逻辑NAND层管理单元120b将所产生的无效逻辑块返回至物理NAND层管理单元120c,以减少有效逻辑块的数目VBL。省略对用于小于2i的轨道MS压紧的管理表的更新的解释。
FS 12中的CIB处理
详细解释图19中的步骤S340处所解释的FS 12中的CIB处理。逻辑NAND层管理单元120b从FS/IS逻辑块管理表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的清理处理。
在从FS 12至MSIB 11a的清理处理中,首先,逻辑NAND层管理单元120b判断是否存在从FS 12直接移动至MSIB 11a而不移动通过IS单元13Q的逻辑块(步骤S455)。具体地,逻辑NAND层管理单元120b逐个依次检查FS 12的FIFO的顶部的最旧逻辑块中的簇,且参考轨道管理表30的FS簇的数目30f的字段而搜寻在FS单元12Q中这些簇所属的轨道具有多少个有效簇。当轨道中的有效簇的数目等于或大于预定阈值(例如,2k-i-1)时,逻辑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针对两个逻辑块收集具有等于或大于预定阈值(例如,2k-i-1)的轨道内有效簇的数目的轨道,且将针对两个逻辑块所收集的轨道清理至MSIB 11a的MSFB 11aa(步骤S460)。在该清理中,关于被清理的轨道中不存在于FS 12中的簇,逻辑NAND层管理单元120b执行用于读出来自WC 21、IS单元13Q和MS 11的簇且合并这些簇的被动合并。
然而,当对于两个逻辑块而言不存在决定清理至MSIB 11a的轨道时,逻辑NAND层管理单元120b将一个逻辑块清理至MSIB 11a的MSFB11aa,且额外以轨道为单位将不足一个逻辑块的轨道记录并写入MS额外记录IB 11ab中(步骤S460)。类似地,当对于一个逻辑块而言不存在决定清理至MSIB 11a的轨道时,逻辑NAND层管理单元120b额外以轨道为单位将不足一个逻辑块的轨道记录并写入MS额外记录IB 11ab中(步骤S460)。此后,当FIFO结构的FS 12的顶逻辑块中没有有效簇留下时,逻辑NAND层管理单元120b将顶逻辑块作为无效逻辑块返回至物理NAND层管理单元120c。
MS 11中的CIB处理(图19中的步骤S350)
当以这种方式执行从FS至MSIB 11a的清理时,再次执行MS单元11Q中的CIB处理(步骤S480)。步骤S480处的MS单元11Q中的CIB处理与MS单元11Q中的第一次的CIB处理相同(步骤S400至S420)。因此,省略冗余解释。在MS单元11Q中的CIB处理之后,逻辑NAND层管理单元120b以与上文所解释的方式相同的方式检查是否满足从FS 12至MSIB 11a的清理的条件(步骤S455)。当满足清理条件时,再次执行上文所解释的两个逻辑块从FS 12至MSIB 11a的清理和MS 11中的CIB处理。重复该处理,直至在步骤S455处获得判断否为止。
FS 12中的CIB处理
当步骤S455处的判断为否时,逻辑NAND层管理单元120b判断是否满足从FS 12至ISIB 13a的清理的条件(步骤S490)。具体地,在从FS 12至MSIB 11a的清理处理中,当有效簇留在具有FIFO结构的处于满状态的FS 12的检查过的顶逻辑块中时,逻辑NAND层管理单元120b执行从FS 12至ISIB 13a的清理(假定满足步骤S490处的从FS 12至IS 13的清理的条件)。
当在步骤S490处满足条件时,逻辑NAND层管理单元120b将仅包括这样的簇的顶逻辑块移动至ISIB 13a,这些簇不包括在被清理至MSIB 11a的轨道中(步骤S500)。在步骤S500处,逻辑NAND层管理单元120b执行例如一个逻辑块的清理。此后,根据状态,在执行步骤S520至S585处的过程之后,逻辑NAND层管理单元120b可根据步骤S590处的判断而再次执行步骤S500处的从FS 12至ISIB 13a的清理。
再次在步骤S500处执行清理的状态为以下的状态:其中,例如,当在FSIB 12a中存在具有多个满逻辑块的缓冲器(FSFB 12a或FS额外记录IB12ab)时,如果具有FIFO结构的FS 12为满的,则根据满块从FSIB 12a至FS 12的移动而执行多个块从FS 12至MSIB 11a或ISIB 13a的清理。在这种条件下,很可能执行多个逻辑块从FS 12至ISIB 13a的清理。
IS中的CIB处理(图19中的步骤S360)
除参看图30之外,还参看图31中所示的流程图来解释在满足步骤S490处的条件时在IS 13中所执行的清理处理和压紧处理的细节。首先,以与上文所解释的方式相同的方式,逻辑NAND层管理单元120b检查在IS单元13Q中是否存在无效逻辑块,且当在IS单元13Q中存在无效逻辑块时,将该无效逻辑块返回至物理NAND层管理单元120c(步骤S520)。在MS逻辑块管理表35和FS/IS逻辑块管理表42的与经返回的逻辑块的条目对应的条目中,将有效标志35e和42f设定为无效。
逻辑NAND层管理单元120b判断具有FIFO结构的IS 13的逻辑块的数目是否超过IS 13所允许的逻辑块的预定最大数目BLismax(步骤S530)。具体地,逻辑NAND层管理单元120b判断从ISFIFO管理表69计算的逻辑块的数目是否超过预先设定的逻辑块的最大数目BLismax。
作为该比较的结果,当所计算的逻辑块的数目超过逻辑块的最大数目BLismax时,逻辑NAND层管理单元120b判断出可写入的空闲块FB不足,且将例如两个逻辑块的轨道从IS 13清理至MSIB 11a的MSFB 11aa(步骤S540)。当在步骤S530处的判断中IS 13未满时,逻辑NAND层管理单元120b将ISIB 13a中的满逻辑块移动至IS 13b而不执行至MSIB11a的清理处理(步骤S585)。
在步骤S540处的清理中,逻辑NAND层管理单元120b使用图12中所示的轨道管理表30等等执行图31中所示的用于选择将要清理的轨道的处理。在图31中,逻辑NAND层管理单元120b开始选择处理(循环搜寻处理;在下文中简称为搜寻处理)(步骤S700)。逻辑NAND层管理单元120b从作为轨道管理表30的索引的逻辑轨道地址30a的下一个逻辑轨道地址开始搜寻(步骤S710),在最后搜寻中在步骤S740处将该下一个逻辑轨道地址存储为最后所搜寻的轨道。
当搜寻是第一次(第一循环)的搜寻时,逻辑NAND层管理单元120b从轨道管理表30的第一条目开始搜寻(步骤S710)。当步骤S740处所存储的所搜寻的轨道是轨道管理表30的最后条目(图12中的轨道n)时,在步骤S710处的下一个轨道搜寻中,逻辑NAND层管理单元120b返回至顶条目(图12中的轨道0)。
在该搜寻中,参考轨道管理表30的条目中的IS簇的数目30g的字段(相关逻辑轨道中的有效簇的数目),当有效簇存储在IS 13的条目中时,逻辑NAND层管理单元120b将该条目的逻辑轨道地址登记在未示出的新搜寻的轨道列表中(步骤S720)。逻辑NAND层管理单元120b比较在新搜寻的轨道列表中登记的轨道的数目与预定阈值L。当所登记的轨道的数目小于阈值L时,逻辑NAND层管理单元120b使该过程移至步骤S710,且以与上文所解释的方式相同的方式检查轨道管理表30的下一条目。
通过重复该处理,逻辑NAND层管理单元120b将用于阈值L的逻辑轨道地址登记在新搜寻的轨道列表中(步骤S730处的“是”)。逻辑NAND层管理单元120b将轨道管理表30的与最后在新近所搜寻的轨道列表中登记的逻辑轨道地址对应的条目(索引)存储为所搜寻的最后轨道,且结束当前循环中的搜寻(步骤S740)。
逻辑NAND层管理单元120b判断是否存在未选定的轨道列表(在该列表中列出上次未选定的逻辑轨道(未示出))(步骤S750)。在第一循环的情况下,因为不存在未选定的轨道列表,所以逻辑NAND层管理单元120b基于两个列表(即,新搜寻的轨道列表与新添加的块内轨道列表(未示出))而选择2i+1个逻辑轨道(步骤S760)。新添加的块内轨道列表是与在图30中的步骤S500处从FS 12清理至IS单元13Q的块(在FS/IS结构管理表65的IS输入缓冲器管理表68中输入)中所包括的轨道有关的列表。
在第一循环中,逻辑NAND层管理单元120b使用该两个列表选择2i+1个轨道作为清理候选者。在该选择中,如上文所解释的,使用通过使用轨道中的有效簇的数目和有效簇系数而获得的选择参考值(计分值)S。
计分值S=轨道中的有效簇的数目×有效簇系数
有效簇系数是根据在MS单元11Q中轨道是否存在于其中存在无效轨道的逻辑块中而进行加权的数字。该轨道存在时的数字比该轨道不存在时的数字大。
可通过查看轨道管理表30的IS簇的数目30g的字段而获取有效簇的数目。可通过查看通过轨道管理指针35b的字段而链接至轨道管理表30的MS逻辑块管理表35的有效轨道的数目35c的字段而获取有效簇系数。
逻辑NAND层管理单元120b从新添加的块内轨道列表中所包括的多个轨道中选择具有较大计分值S的M(预定设定值)个轨道。逻辑NAND层管理单元120b将通过先前搜寻而登记在新搜寻的轨道列表中的L个轨道添加至选定的M个轨道,且从L+M个轨道中选择具有较高计分值S的2i+1个轨道作为将要清理至MS 11的轨道。逻辑NAND层管理单元120b将L+M个轨道当中除选定的2i+1个轨道之外的轨道登记在未选定的轨道列表中。
在第二或后续循环中,逻辑NAND层管理单元120b基于三个列表(即,未选定的轨道列表、新搜寻的轨道列表,以及新添加的块内轨道列表)而选择2i+1个轨道(步骤S770)。根据稍后所解释的图30中的步骤S570处的判断判定是否应执行第二次或后续次的清理。在使用三个列表的选择处理中,逻辑NAND层管理单元120b从未选定的轨道列表中所包括的多个轨道中选择具有较高计分值S的N(预定设定值)个轨道,从新添加的块内轨道列表中所包括的多个轨道中选择具有较高计分值S的M(预定设定值)个轨道,将当前第二循环或后续的循环中所获得的登记在新搜寻的轨道列表中的L个轨道添加至N+M个轨道,且从L+M+N个轨道中选择具有较高计分值S的2i+1个轨道作为将要清理至MS 11的轨道。逻辑NAND层管理单元120b将L+M+N个逻辑轨道当中除选定的2i+1个轨道之外的轨道登记在用于下一个循环中的未选定的轨道列表中。
返回参看图30中的步骤S540,当如上文所解释地选择针对两个逻辑块的轨道的提取候选者时,逻辑NAND层管理单元120b将针对两个逻辑块的选定的轨道(即,2i+1个轨道)清理至MSIB 11a的MSFB 11aa(步骤S540)。在该清理中,关于将要清理的轨道当中不存在于IS单元13Q中的簇,执行用于读出来自WC 21、FS单元12和MS 11的簇且合并这些簇的被动合并。在上述描述中,根据基于有效簇的数目和指示MS中是否存在多孔块的系数的计分值S而选择待清理的轨道。然而,可仅根据有效簇的数目来选择待清理的轨道。
MS中的CIB处理(图19中的步骤S370)
当以这种方式执行从IS 13至MSIB 11a的清理时,再次执行MS 11中的CIB处理(步骤S560)。步骤S560处的MS 11中的CIB处理与MS11中的第一次的CIB处理相同(步骤S400至S420)。因此,省略冗余解释。
IS中的CIB处理
逻辑NAND层管理单元120b判断是否应再次执行从IS 13至MSIB11a的清理(步骤S570)。逻辑NAND层管理单元120b使用MS逻辑块管理表35的字段和FS/IS逻辑块管理表42的有效簇的数目42d等等对步骤S540处的清理之后的IS 13中的逻辑块从具有最小数目的有效簇的逻辑块开始依次进行排序。当具有最小数目的有效簇的两个逻辑块的有效簇的总数目等于或大于作为预定设定值的2k(针对一个逻辑块)时,逻辑NAND层管理单元120b判断出满足从IS 13至MSIB 11a的清理的条件(步骤S570)。
当满足从IS 13至MSIB 11a的清理的条件时,逻辑NAND层管理单元120b使该过程移至步骤S540,且执行图31中的步骤S700至S750和S770,以再次执行上文所解释的针对两个逻辑块的清理处理。只要步骤S570处的判断为是,逻辑NAND层管理单元120b即重复地执行针对两个逻辑块的从IS 13至MSIB 11a的清理处理和MS 11中的CIB处理。当步骤S570处的判断为否时,逻辑NAND层管理单元120b执行IS 13中的压紧处理(步骤S580)。
在IS压紧处理中,逻辑NAND层管理单元120b使用MS逻辑块管理表35的字段和FS/IS逻辑块管理表42的有效簇的数目42d等,从IS单元13Q中具有最小数目的有效簇的逻辑块开始依次收集一个逻辑块的簇(即,2k个簇),且将该2k个簇复制至IS压紧缓冲器13c。当该复制处理结束时,逻辑NAND层管理单元120b将压紧源(复制源)处的逻辑块当中不具有有效簇的逻辑块作为无效逻辑块返回至物理NAND层管理单元120c。逻辑NAND层管理单元120b通过压紧处理而将通过由有效簇填满的逻辑块配置的IS压紧缓冲器13c移动至IS 13。
在该压紧之后,将ISIB 13a中的满逻辑块移动至IS 13(步骤S585)。具体地,该移动处理是用于仅删除在FS/IS结构管理表65的IS输入缓冲器管理表68的用于ISIB的字段中登记的相关逻辑块ID的处理。
此后,逻辑NAND层管理单元120b判断是否满足从FS 12至ISIB 13a的清理的条件(步骤S590)。当满足从FS 12至ISIB 13a的清理的条件时,逻辑NAND层管理单元120b使该过程移至步骤S500,且再次重复该过程。在IS压紧处理结束之后,当判断出不满足从FS 12至ISIB 13a的清理的条件时,逻辑NAND层管理单元120b结束当前写入处理。以上内容为写入处理的细节。
如上文所解释的,在该实施例中,充当输入缓冲器的FSIB 12a设置在FS 12的前级处,充当输入缓冲器的ISIB 13a设置在IS 13的前级处,且充当输入缓冲器的MSIB 11a设置在MS 11的前级处。将写入处理划分成以下两个阶段:WCF处理,其用于执行用于从WC 21至FSIB 12a或MSIB11a的数据清理的处理;以及CIB处理,其包括从FSIB 12a至FS 12的清理、从ISIB 13a至IS 13的清理、从MSIB 11a至MS 11的清理、从FS 12至ISIB 13a的清理、从IS 13至MSIB 11a的清理、MS压紧和IS压紧。换句话说,提供输入缓冲器(FSIB 12a、ISIB 13a,以及MSIB 11a),且通过输入缓冲器而将写入阶段划分成以下两个阶段:从WC 21至NAND存储器10的写入处理(WCF处理)和NAND存储器中的数据移动处理(CIB处理)。因此,即使当NAND存储器中的数据移动处理(CIB处理)正在进行时,也可以立即执行从WC 21至NAND存储器10的写入处理(WCF处理)而没有延迟。可以确保从WC 21至NAND存储器10的写入处理的等待时间(latency)。
因为将写入状态划分成这样的两个阶段,所以容易并行地对WCF处理与CIB处理进行流水线作业和执行。当并行地执行WCF处理与CIB处理时,可以从主机设备侧隐藏CIB处理的处理时间且进一步增加写入处理的速度。
根据本发明,可以提供一种可减少用于从高速缓冲存储器至闪速存储器的数据清理的处理时间的存储器系统。
本发明不限于上文所描述的这些实施例。因此,可在不偏离本发明的范围的情况下进行各种修改。
此外,上文所描述的实施例包括各种具有创造性的组成部分。即,可通过分布或整合任意所揭示的组成部分而对本发明进行各种修改。
例如,可通过从这些实施例中所揭示的所有组成部分当中省略任意组成部分而进行本发明的各种修改,只要可解决本发明要解决的问题且可获得将要通过本发明获得的优点即可。
此外,在上述实施例中解释:簇大小乘以等于或大于二的正整数等于逻辑页大小。然而,本发明并不因此而受限制。
例如,簇大小可与逻辑页大小相同,或可为通过组合多个逻辑页而使逻辑页大小乘以等于或大于二的正整数所获得的大小。
此外,簇大小可与用于在诸如个人计算机的主机设备1上运行的OS(操作系统)的文件系统的管理单位相同。
此外,在上述实施例中解释:轨道大小乘以等于或大于二的正整数等于逻辑块大小。然而,本发明并不因此而受限制。
例如,轨道大小可与逻辑块大小相同,或可为通过组合多个逻辑块而使逻辑块大小乘以等于或大于二的正整数所获得的大小。
如果轨道大小等于或大于逻辑块大小,则MS压紧处理不是必要的。因此,可省略TFS 11b。
Claims (39)
1.一种存储器系统,包括:
作为高速缓冲存储器的第一存储区,其包括在易失性半导体存储器中;
第二存储区和第三存储区,其包括在非易失性半导体存储器中,在所述第二存储区和所述第三存储区中,通过页单位执行数据读取和写入,且通过块单位执行数据擦除,所述块单位的大小为所述页单位的两倍或更大的自然数倍;
第一输入缓冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第一存储区与所述第二存储区之间进行缓冲;
第二输入缓冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第一存储区与所述第三存储区之间进行缓冲;以及
控制器,其通过与一个或多个块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区以及所述第一输入缓冲器和所述第二输入缓冲器,其中
所述控制器执行:
第一处理,其用于以扇区单位将多个数据写入所述第一存储区中;
第二处理,其用于以第一管理单位将存储在所述第一存储区中的数据清理至所述第一输入缓冲器,所述第一管理单位的大小为所述扇区单位的两倍或更大的自然数倍;
第三处理,其用于以第二管理单位将存储在所述第一存储区中的数据清理至所述第二输入缓冲器,所述第二管理单位的大小为所述第一管理单位的两倍或更大的自然数倍;
第四处理,其用于将所述第一输入缓冲器中所有页都被写入的逻辑块重新定位至所述第二存储区;
第五处理,其用于将所述第二输入缓冲器中所有页都被写入的逻辑块重新定位至所述第三存储区;以及
第六处理,其用于以所述第二管理单位将存储在所述第二存储区中的多个数据清理至所述第二输入缓冲器。
2.根据权利要求1的存储器系统,其中当接收到写入请求时,所述控制器在通过执行所述第一处理至所述第三处理而写入与所述写入请求相关联的输入数据的阶段时通知写入的结束。
3.根据权利要求1的存储器系统,其中当分配给所述第二存储区的逻辑块的数目超过容许度时,所述控制器执行所述第六处理。
4.根据权利要求1的存储器系统,其中所述控制器使所述第二存储区中的这样的数据无效,该数据与写入所述第一输入缓冲器中的替代数据具有相同的逻辑地址。
5.根据权利要求1的存储器系统,其中所述控制器使所述第二存储区和所述第三存储区中的这样的数据无效,该数据与写入所述第二输入缓冲器中的替代数据具有相同的逻辑地址。
6.根据权利要求1的存储器系统,其中当所述第一存储区中的数据所属于的所述第二管理单位中的数据的数目超过规定值时,所述控制器执行所述第二处理和所述第三处理中的至少一个。
7.根据权利要求1的存储器系统,其中所述控制器并行地执行所述第一至第三处理与所述第四至第六处理。
8.根据权利要求1的存储器系统,其中所述易失性半导体存储器为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型闪速存储器。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008051473A JP4498426B2 (ja) | 2008-03-01 | 2008-03-01 | メモリシステム |
| JP051473/2008 | 2008-03-01 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN101647007A true CN101647007A (zh) | 2010-02-10 |
Family
ID=41055699
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN200880006648A Pending CN101647007A (zh) | 2008-03-01 | 2008-09-22 | 存储器系统 |
Country Status (7)
| Country | Link |
|---|---|
| US (2) | US7904640B2 (zh) |
| EP (1) | EP2250567A4 (zh) |
| JP (1) | JP4498426B2 (zh) |
| KR (1) | KR101018766B1 (zh) |
| CN (1) | CN101647007A (zh) |
| TW (1) | TWI400615B (zh) |
| WO (1) | WO2009110126A1 (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102375698A (zh) * | 2010-08-23 | 2012-03-14 | 群联电子股份有限公司 | 数据串分派与传送方法、存储器控制器与存储器储存装置 |
| CN102999437A (zh) * | 2011-09-19 | 2013-03-27 | 群联电子股份有限公司 | 数据搬移方法、存储器控制器与存储器储存装置 |
| CN106293504A (zh) * | 2015-06-26 | 2017-01-04 | Emc公司 | 使用现有的备份装置作为附加的主存储器来解决写入压力 |
| CN112988072A (zh) * | 2021-03-22 | 2021-06-18 | 北京车和家信息技术有限公司 | 数据处理方法和装置、存储介质和电子设备 |
Families Citing this family (57)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100842680B1 (ko) * | 2007-01-08 | 2008-07-01 | 삼성전자주식회사 | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 |
| KR101077339B1 (ko) * | 2007-12-28 | 2011-10-26 | 가부시끼가이샤 도시바 | 반도체 기억 장치 |
| JP4461170B2 (ja) | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
| JP4653817B2 (ja) * | 2008-03-01 | 2011-03-16 | 株式会社東芝 | メモリシステム |
| JP4745356B2 (ja) * | 2008-03-01 | 2011-08-10 | 株式会社東芝 | メモリシステム |
| JP4691122B2 (ja) * | 2008-03-01 | 2011-06-01 | 株式会社東芝 | メモリシステム |
| JP4510107B2 (ja) * | 2008-03-12 | 2010-07-21 | 株式会社東芝 | メモリシステム |
| KR101067457B1 (ko) | 2008-03-01 | 2011-09-27 | 가부시끼가이샤 도시바 | 메모리 시스템 |
| JP4762261B2 (ja) * | 2008-03-12 | 2011-08-31 | 株式会社東芝 | メモリシステム |
| JP4439569B2 (ja) * | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
| JP5317690B2 (ja) * | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
| JP5221332B2 (ja) * | 2008-12-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
| WO2010093056A1 (en) | 2009-02-12 | 2010-08-19 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
| TWI408689B (zh) * | 2009-04-14 | 2013-09-11 | Jmicron Technology Corp | 存取儲存裝置的方法及相關控制電路 |
| TW201102812A (en) * | 2009-07-15 | 2011-01-16 | A Data Technology Co Ltd | A storage device and data processing method thereof |
| JP5221593B2 (ja) * | 2010-04-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
| JP5535128B2 (ja) | 2010-12-16 | 2014-07-02 | 株式会社東芝 | メモリシステム |
| JP2012141946A (ja) * | 2010-12-16 | 2012-07-26 | Toshiba Corp | 半導体記憶装置 |
| KR101734199B1 (ko) * | 2010-12-29 | 2017-05-24 | 삼성전자주식회사 | 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법 |
| WO2012100087A2 (en) * | 2011-01-19 | 2012-07-26 | Fusion-Io, Inc. | Apparatus, system, and method for managing out-of-service conditions |
| US8458145B2 (en) * | 2011-01-20 | 2013-06-04 | Infinidat Ltd. | System and method of storage optimization |
| JP5221699B2 (ja) * | 2011-03-23 | 2013-06-26 | 株式会社東芝 | 半導体記憶装置 |
| KR101792867B1 (ko) | 2011-06-16 | 2017-11-02 | 삼성전자주식회사 | 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법 |
| US8990493B1 (en) | 2011-06-30 | 2015-03-24 | Western Digital Technologies, Inc. | Method and apparatus for performing force unit access writes on a disk |
| TWI448892B (zh) * | 2011-09-06 | 2014-08-11 | Phison Electronics Corp | 資料搬移方法、記憶體控制器與記憶體儲存裝置 |
| US20130091321A1 (en) * | 2011-10-11 | 2013-04-11 | Cisco Technology, Inc. | Method and apparatus for utilizing nand flash in a memory system hierarchy |
| JP5674634B2 (ja) * | 2011-12-28 | 2015-02-25 | 株式会社東芝 | コントローラ、記憶装置およびプログラム |
| JP5713926B2 (ja) * | 2012-01-13 | 2015-05-07 | 株式会社東芝 | 磁気ディスク装置及び同磁気ディスク装置におけるデータバッファリング方法 |
| US8554963B1 (en) | 2012-03-23 | 2013-10-08 | DSSD, Inc. | Storage system with multicast DMA and unified address space |
| US8370567B1 (en) * | 2012-03-23 | 2013-02-05 | DSSD, Inc. | Storage system with self describing data |
| KR101351550B1 (ko) * | 2012-04-18 | 2014-01-22 | 연세대학교 산학협력단 | 비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식 |
| US9645917B2 (en) * | 2012-05-22 | 2017-05-09 | Netapp, Inc. | Specializing I/O access patterns for flash storage |
| EP2856324A4 (en) * | 2012-06-04 | 2016-01-20 | Hewlett Packard Development Co | MANAGING AN ANALYTICAL FUNCTION TO EXECUTE ON DATA STORED IN AN INPUT BLOCK |
| JP5813589B2 (ja) * | 2012-07-13 | 2015-11-17 | 株式会社東芝 | メモリシステムおよびその制御方法 |
| US8392428B1 (en) | 2012-09-12 | 2013-03-05 | DSSD, Inc. | Method and system for hash fragment representation |
| US9471484B2 (en) | 2012-09-19 | 2016-10-18 | Novachips Canada Inc. | Flash memory controller having dual mode pin-out |
| JP6028670B2 (ja) * | 2013-04-22 | 2016-11-16 | 株式会社デンソー | データ記憶装置 |
| CN103544995B (zh) * | 2013-08-27 | 2016-09-21 | 华为技术有限公司 | 一种坏道修复方法及装置 |
| KR102244618B1 (ko) * | 2014-02-21 | 2021-04-26 | 삼성전자 주식회사 | 플래시 메모리 시스템 및 플래시 메모리 시스템의 제어 방법 |
| CN105243071A (zh) * | 2014-07-12 | 2016-01-13 | 航天恒星科技有限公司 | 一种适用于无文件系统的可检索文件存取方法 |
| US9378149B1 (en) | 2014-08-29 | 2016-06-28 | Emc Corporation | Method and system for tracking modification times of data in a storage system |
| US11347637B2 (en) | 2014-10-30 | 2022-05-31 | Kioxia Corporation | Memory system and non-transitory computer readable recording medium |
| US10102118B2 (en) | 2014-10-30 | 2018-10-16 | Toshiba Memory Corporation | Memory system and non-transitory computer readable recording medium |
| TWI567554B (zh) | 2014-11-06 | 2017-01-21 | 慧榮科技股份有限公司 | 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置 |
| US9710199B2 (en) | 2014-11-07 | 2017-07-18 | International Business Machines Corporation | Non-volatile memory data storage with low read amplification |
| US9400603B2 (en) | 2014-12-16 | 2016-07-26 | International Business Machines Corporation | Implementing enhanced performance flash memory devices |
| US10162700B2 (en) | 2014-12-23 | 2018-12-25 | International Business Machines Corporation | Workload-adaptive data packing algorithm |
| CN104503707B (zh) | 2014-12-24 | 2018-03-06 | 华为技术有限公司 | 读取数据的方法以及装置 |
| US10049035B1 (en) * | 2015-03-10 | 2018-08-14 | Reniac, Inc. | Stream memory management unit (SMMU) |
| JP6384375B2 (ja) | 2015-03-23 | 2018-09-05 | 富士通株式会社 | 情報処理装置、記憶装置制御方法、記憶装置制御プログラム及び情報処理システム |
| KR101718713B1 (ko) * | 2015-05-29 | 2017-03-22 | 주식회사 이에프텍 | 비휘발성 메모리 시스템 |
| US9712190B2 (en) | 2015-09-24 | 2017-07-18 | International Business Machines Corporation | Data packing for compression-enabled storage systems |
| US9870285B2 (en) | 2015-11-18 | 2018-01-16 | International Business Machines Corporation | Selectively de-straddling data pages in non-volatile memory |
| JP2018041204A (ja) * | 2016-09-06 | 2018-03-15 | 東芝メモリ株式会社 | メモリ装置及び情報処理システム |
| TWI664527B (zh) * | 2018-03-20 | 2019-07-01 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置 |
| JP2022094705A (ja) * | 2020-12-15 | 2022-06-27 | キオクシア株式会社 | メモリシステムおよび制御方法 |
| JP7713417B2 (ja) * | 2022-03-18 | 2025-07-25 | 株式会社日立製作所 | ストレージシステム及びデータキャッシュ方法 |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3176019B2 (ja) | 1995-04-05 | 2001-06-11 | 株式会社東芝 | 不揮発性半導体記憶部を含む記憶システム |
| JP3688835B2 (ja) * | 1996-12-26 | 2005-08-31 | 株式会社東芝 | データ記憶システム及び同システムに適用するデータ転送方法 |
| TW484064B (en) * | 1999-07-12 | 2002-04-21 | Feiya Technology Corp | Flash memory management, data linking architecture and algorithm |
| US7966462B2 (en) * | 1999-08-04 | 2011-06-21 | Super Talent Electronics, Inc. | Multi-channel flash module with plane-interleaved sequential ECC writes and background recycling to restricted-write flash chips |
| KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
| US7173863B2 (en) | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
| KR100526190B1 (ko) * | 2004-02-06 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 재사상 방법 |
| JP4768237B2 (ja) * | 2004-06-25 | 2011-09-07 | 株式会社東芝 | 携帯可能電子装置及び携帯可能電子装置の制御方法 |
| US7212440B2 (en) * | 2004-12-30 | 2007-05-01 | Sandisk Corporation | On-chip data grouping and alignment |
| US20070041050A1 (en) * | 2005-08-17 | 2007-02-22 | Bing-Yu Wang | Memory management method and system |
| JP2008033788A (ja) * | 2006-07-31 | 2008-02-14 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法 |
| WO2008019218A2 (en) * | 2006-08-04 | 2008-02-14 | Sandisk Corporation | Phased garbage collection |
| US7934052B2 (en) * | 2007-12-27 | 2011-04-26 | Pliant Technology, Inc. | System and method for performing host initiated mass storage commands using a hierarchy of data structures |
| KR100953044B1 (ko) * | 2008-05-26 | 2010-04-14 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 프로그램 방법 |
| US8327072B2 (en) * | 2008-07-23 | 2012-12-04 | International Business Machines Corporation | Victim cache replacement |
-
2008
- 2008-03-01 JP JP2008051473A patent/JP4498426B2/ja not_active Expired - Fee Related
- 2008-09-22 CN CN200880006648A patent/CN101647007A/zh active Pending
- 2008-09-22 EP EP08872744A patent/EP2250567A4/en not_active Withdrawn
- 2008-09-22 KR KR1020097018121A patent/KR101018766B1/ko not_active Expired - Fee Related
- 2008-09-22 US US12/529,270 patent/US7904640B2/en not_active Expired - Fee Related
- 2008-09-22 WO PCT/JP2008/067600 patent/WO2009110126A1/en not_active Ceased
-
2009
- 2009-02-23 TW TW098105693A patent/TWI400615B/zh not_active IP Right Cessation
-
2011
- 2011-01-04 US US12/984,337 patent/US8176237B2/en not_active Expired - Fee Related
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102375698A (zh) * | 2010-08-23 | 2012-03-14 | 群联电子股份有限公司 | 数据串分派与传送方法、存储器控制器与存储器储存装置 |
| CN102375698B (zh) * | 2010-08-23 | 2014-06-25 | 群联电子股份有限公司 | 数据串分派与传送方法、存储器控制器与存储器储存装置 |
| CN102999437A (zh) * | 2011-09-19 | 2013-03-27 | 群联电子股份有限公司 | 数据搬移方法、存储器控制器与存储器储存装置 |
| CN102999437B (zh) * | 2011-09-19 | 2015-12-16 | 群联电子股份有限公司 | 数据搬移方法、存储器控制器与存储器储存装置 |
| CN106293504A (zh) * | 2015-06-26 | 2017-01-04 | Emc公司 | 使用现有的备份装置作为附加的主存储器来解决写入压力 |
| CN106293504B (zh) * | 2015-06-26 | 2019-06-04 | Emc公司 | 使用现有的备份装置作为附加的主存储器来解决写入压力 |
| CN112988072A (zh) * | 2021-03-22 | 2021-06-18 | 北京车和家信息技术有限公司 | 数据处理方法和装置、存储介质和电子设备 |
| CN112988072B (zh) * | 2021-03-22 | 2023-11-14 | 北京车和家信息技术有限公司 | 数据处理方法和装置、存储介质和电子设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP4498426B2 (ja) | 2010-07-07 |
| WO2009110126A1 (en) | 2009-09-11 |
| EP2250567A4 (en) | 2011-09-28 |
| US20100274950A1 (en) | 2010-10-28 |
| US8176237B2 (en) | 2012-05-08 |
| EP2250567A1 (en) | 2010-11-17 |
| US7904640B2 (en) | 2011-03-08 |
| TWI400615B (zh) | 2013-07-01 |
| TW200947213A (en) | 2009-11-16 |
| KR101018766B1 (ko) | 2011-03-07 |
| JP2009211227A (ja) | 2009-09-17 |
| KR20090117935A (ko) | 2009-11-16 |
| US20110099349A1 (en) | 2011-04-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101681315B (zh) | 存储器系统 | |
| TWI400615B (zh) | 記憶體系統 | |
| CN101689140B (zh) | 存储器系统 | |
| KR101101655B1 (ko) | 메모리 시스템 | |
| TWI400609B (zh) | 記憶體系統 | |
| JP4691122B2 (ja) | メモリシステム | |
| JP4691123B2 (ja) | メモリシステム | |
| CN101681314A (zh) | 存储器系统 | |
| JP2009211228A (ja) | メモリシステム | |
| JP2009211229A (ja) | メモリシステム | |
| JP5221593B2 (ja) | メモリシステム | |
| JP5178857B2 (ja) | メモリシステム | |
| KR101032671B1 (ko) | 메모리 시스템 | |
| JP2009211224A (ja) | メモリシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20100210 |
|
| C20 | Patent right or utility model deemed to be abandoned or is abandoned |