CN101689140B - 存储器系统 - Google Patents
存储器系统 Download PDFInfo
- Publication number
- CN101689140B CN101689140B CN200980000136XA CN200980000136A CN101689140B CN 101689140 B CN101689140 B CN 101689140B CN 200980000136X A CN200980000136X A CN 200980000136XA CN 200980000136 A CN200980000136 A CN 200980000136A CN 101689140 B CN101689140 B CN 101689140B
- Authority
- CN
- China
- Prior art keywords
- block
- logical block
- logical
- physical
- track
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
根据本发明的存储器系统包括:通过采用这样的非易失性半导体存储器和控制器来减少管理表创建所需的存储器的量,所述非易失性半导体存储器包括多个并行操作元件,所述多个并行操作元件分别具有多个物理块作为数据擦除的单位,所述控制器可以并行驱动所述并行操作元件并具有擦除次数管理单元,所述擦除次数管理单元以与并行驱动的多个物理块相关联的逻辑块为单位管理擦除次数。
Description
技术领域
本发明涉及一种包括非易失性半导体存储器的存储器系统。
背景技术
非易失性半导体存储器的实例包括其中擦除、写入和读出的单位固定的非易失性半导体存储器,例如在存储数据时一次以块为单位擦除数据然后执行写入的非易失性半导体存储器,以及以与NAND型闪速存储器相同的方式以页为单位执行写入和读出的非易失性半导体存储器。
另一方面,这样的单位被称为扇区,该单位用于诸如个人计算机的主机设备,以将数据写入诸如硬盘的次级存储装置以及从中读出数据。扇区独立于半导体存储装置的擦除、写入和读出的单位而设定。
例如,尽管非易失性半导体存储器的块的大小(块大小)为512kB且其页的大小(页大小)为4kB,但主机设备的扇区的大小(扇区大小)被设定为512B。
以此方式,非易失性半导体存储器的擦除、写入和读出的单位可大于主机设备的写入和读出的单位。
因此,当通过使用非易失性半导体存储器来配置个人计算机的次级存储器装置(例如硬盘)时,有必要通过使大小适应于非易失性半导体存储器的块大小和页大小,写入来自作为主机设备的个人计算机的具有小尺寸的数据。
通过诸如个人计算机的主机设备而记录的数据既具有时间局域性,也具有空间局域性(例如,参见非专利文件1)。因此,当记录数据时,如果数据被直接记录在从外部指定的地址中,则重写(即,擦除处理)在时间上集中在特定的区域中,并且擦除次数的偏差增大。因此,在NAND型闪速存储器中,执行用于使数据更新区段均衡分布的被称为磨损均化(wear leveling)的处理。
在磨损均化处理中,例如,由主机设备指定的逻辑地址被转译为其中数据更新区段均衡地分布的非易失性半导体存储器的物理地址。
当使用NAND闪速存储器配置大容量次级存储装置时,在进行地址转译过程中,如果数据管理的单位为很小的大小(例如,页大小),那么管理表的大小增加,并且不适于次级存储装置的控制器的主存储器。地址转译不能以高速执行。以这种方式,根据作为次级存储装置的NAND闪速存储器的容量的增加,管理表的大小不可避免地增加。因此,需要一种方法,来尽可能地减小管理表的容量。
NAND闪速存储器是这样一种半导体存储器,针对这种存储器,在执行写入之前必需进行擦除处理。NAND闪速存储器的耐久寿命取决于重写的次数。在NAND闪速存储器中的数据写入和擦除过程中,通过在基底和控制栅极之间施加高电压,而向浮动栅极注入电子或从其中释放电子。当该过程执行很大数目的次数时,浮动栅极周围的栅极氧化膜劣化,注入到浮动栅极中的电子丢失,数据会被破坏。换句话说,当重写的次数增加时,在重写之后数据的保持时间缩短(保持性能的劣化)。
如上文所解释的,在NAND闪速存储器中,擦除的最小单位通常是块。然而,当以物理块为单位管理擦除次数时,管理表大小增加,这与管理表大小的降低相背。
[非专利文件1]David A.Patterson以及John L.Hennessy,“Computer Organization and Design:The Hardware/Software Interface”,Morgan Kaufmann Pub,2004/8/31
发明内容
根据本发明实施例的一种存储器系统包括:非易失性半导体存储器,其包括多个并行操作元件,所述多个并行操作元件分别具有多个物理块作为数据擦除的单位;以及控制器,其可以并行驱动所述并行操作元件,并具有擦除次数管理单元,所述擦除次数管理单元以与并行驱动的多个物理块相关联的逻辑块为单位管理擦除次数。
根据本发明,可以提供这样的存储器系统,该系统可以减小管理表创建所需要的存储器的量。
附图说明
图1是SSD的配置实例的框图;
图2是包括在NAND存储器芯片中的一个块的配置实例以及在四进制数据存储系统中的阈值分布的图;
图3是驱动控制电路的硬件内部配置实例的框图;
图4是处理器的功能配置实例的框图;
图5是在NAND存储器和DRAM中形成的功能配置的框图;
图6是与从WC到NAND存储器的写入处理有关的详细功能框图;
图7是LBA逻辑地址的图;
图8是在数据管理单元中的管理表的配置实例的图;
图9是RC簇(cluster)管理表的实例的图;
图10是WC簇管理表的实例的图;
图11是WC轨道(track)管理表的实例的图;
图12是轨道管理表的实例的图;
图13是FS/IS管理表的实例的图;
图14是MS逻辑块管理表的实例的图;
图15是FS/IS逻辑块管理表的实例的图;
图16是FS/IS内簇管理表的实例的图;
图17是逻辑至物理转译表的实例的图;
图18是读取处理的操作实例的流程图;
图19是写入处理的操作实例的流程图;
图20是在部件之间的数据的流动中的输入与输出的组合以及该流动的起因的图;
图21是并行操作元件、平面、通道之间的关系的图;
图22是物理NAND层和该物理NAND层中使用的管理表的框图;
图23是逻辑至物理转译表的另一实例的图;
图24是BB管理表的实例的图;
图25是FB管理表的内部配置实例的图;
图26是NAND存储器的逻辑块与物理块之间的对应关系的图;
图27是个人计算机的实例的透视图;以及
图28是个人计算机中的系统架构的实例的图。
具体实施方式
下面,将参考附图详细解释根据本发明的存储器系统的示例性实施例。本发明并不限于下面的实施例。
(实施例)
下面将参考附图解释本发明的实施例。在下面的解释中,具有相同功能和配置的部件由相同的参考标号和符号表示。仅当必要时才进行对这些部件的重复解释。
首先,定义在该说明书中使用的术语。
物理页:在NAND存储器芯片中可以共同地写入和读出的单位。物理页大小为例如4kB。然而,不包括添加到SSD中的主数据(用户数据等)的诸如错误校正码的冗余位。通常,4kB+冗余位(例如,几十B)是在存储器基元(memory cell)中同时写入的单位。然而,为了便于解释,如上所述地定义物理页。
逻辑页:在SSD中设定的写入和读出单位。逻辑页与一个或多个物理页相关联。例如,在8-位正常模式下,逻辑页大小为4kB,而在32-位的双速模式下,逻辑页大小为32kB。然而,不包括冗余位。
物理块:可以在NAND存储器芯片中独立地擦除的最小单位。物理块包括多个物理页。物理块大小为例如512kB。然而,不包括添加到SSD中的主数据的诸如错误校正码的冗余位。通常,512kB+冗余位(例如,几十kB)是同时擦除的单位。然而,为了便于解释,如上所述地定义物理块。
逻辑块:在SSD中设定的擦除单位。逻辑块与一个或多个物理块相关联。例如,在8-位正常模式下,逻辑块大小为512kB,而在32-位的双速模式下,逻辑块大小为4MB。然而,不包括冗余位。
扇区:从主机存取的最小单位。扇区大小为例如512B。
簇:用于在SSD中管理“小数据(细粒数据)”的管理单位。簇大小等于或大于扇区大小,且例如被如此设定,使得簇大小的两倍或更大的自然数倍的大小为逻辑页大小。
轨道:用于在SSD中管理“大数据(粗粒数据)”的管理单位。轨道大小被如此设定,使得簇大小的两倍或更大的自然数倍的大小为轨道大小,且例如轨道大小的两倍或更大的自然数倍的大小为逻辑块大小。
空闲块(FB):在NAND型闪速存储器上的未分配使用的逻辑块。当向空闲块分配使用时,在擦除之后使用该空闲块。
坏块(BB):在NAND型闪速存储器上的由于大量错误而不能被用作存储区的物理块。例如,将不能正常完成擦除操作的物理块登记为坏块BB。
写入效率:在预定周期内逻辑块的擦除数量相对于从主机写入的数据数量的统计值。写入效率越小,NAND型闪速存储器的磨损度越小。
有效簇:存储对应于逻辑地址的最新数据的簇。
无效簇:存储由于具有相同逻辑地址的簇被写入其它存储区中而不被参考的非最新数据的簇。
有效轨道:存储对应于逻辑地址的最新数据的轨道。
无效轨道:存储由于具有相同逻辑地址的簇被写入其它存储区中而不被参考的非最新数据的轨道。
压紧:在管理对象中从逻辑块中仅提取有效簇和有效轨道并且在新的逻辑块中重写所述有效簇和有效轨道。
[第一实施例]
图1是SSD(固态驱动器)100的配置实例的框图。SSD 100通过存储器连接接口,例如ATA接口(ATA I/F)2,连接到主机设备1,例如个人计算机或CPU核,并且用作主机设备1的外部存储器。通过通信接口3,例如RS232C接口(RS232C I/F),SSD 100可以将数据传送到用于除错(debug)和制造检验的设备200并从其接收数据。SSD 100包括作为非易失性半导体存储器的NAND型闪速存储器(下文中简称为NAND存储器)10、作为控制器的驱动控制电路4、作为易失性半导体存储器的DRAM 20、电源电路5、用于状态显示的LED 6、检测驱动器中的温度的温度传感器7、以及熔丝8。
电源电路5从由主机设备1侧的电源电路供应的外部DC电力产生多个不同的内部DC电源电压,并将这些内部DC电源电压供应至SSD 100中的各个电路。电源电路5检测外部电源的上升沿,产生通电复位信号,并且将该通电复位信号供应至驱动控制电路4。熔丝8设置在主机设备1侧的电源电路与SSD 100中的电源电路5之间。当从外部电源电路供应过电流时,熔丝8断开,以防止内部电路发生故障。
NAND存储器10具有四个并行操作元件10a至10d,其执行四个并行操作。一个并行操作元件具有两个NAND存储器封装。NAND存储器封装中的每一个包括多个堆叠的NAND存储器芯片(例如,1个芯片=2GB)。在图1的情况下,NAND存储器封装中的每一个包括堆叠的四个NAND存储器芯片。NAND存储器10具有64GB的容量。当NAND存储器封装中的每一个包括堆叠的八个NAND存储器芯片时,NAND存储器10具有128GB的容量。
DRAM 20用作用于在主机设备1与NAND存储器10之间的数据传送的高速缓冲存储器以及用于工作区的存储器。可使用FeRAM(铁电随机存取存储器)、PRAM(相变随机存取存储器)或MRAM(磁阻随机存取存储器)来代替DRAM 20。驱动控制电路4通过DRAM 20而在主机设备1与NAND存储器10之间执行数据传送控制,并且控制SSD 100中的各个部件。驱动控制电路4将用于状态显示的信号供应至用于状态显示的LED 6。驱动控制电路4还具有从电源电路5接收通电复位信号且将复位信号和时钟信号供应至在自身电路和SSD 100中的各个单元的功能。
NAND存储器芯片中的每一个通过将多个物理块排成阵列作为数据擦除的单位而配置。图2(a)是包括在NAND存储器芯片中的一个物理块的配置实例的电路图。每个物理块包括沿着X方向依次排成阵列的(p+1)个NAND串(p为等于或大于0的整数)。包括在该(p+1)个NAND串的每一个中的选择晶体管ST1的漏极连接至位线BL0至BLp,并且其栅极共同地连接至选择栅极线SGD。选择晶体管ST2的源极共同地连接至源极线SL,并且其栅极共同地连接至选择栅极线SGS。
存储器基元晶体管MT中的每一个包括MOSFET(金属氧化物半导体场效应晶体管),该MOSFET包括形成于半导体基底上的堆叠栅极结构。该堆叠栅极结构包括经由栅极绝缘膜而形成于半导体基底上的电荷存储层(浮动栅电极),以及经由栅极间绝缘膜而形成于该电荷存储层上的控制栅电极。阈值电压根据在浮动栅电极中累积的电子的数目而变化。存储器基元晶体管MT根据阈值电压的差异而存储数据。存储器基元晶体管MT可被配置为存储一个位或可被配置为存储多值(等于或大于两个位的数据)。
存储器基元晶体管MT不限于具有浮动栅电极的结构,并且可以为诸如MONOS(金属-氧化物-氮化物-氧化物-硅)型的结构,该结构可通过使氮化物膜界面作为电荷存储层来俘获电子而调整阈值。类似地,MONOS结构的存储器基元晶体管MT可被配置为存储一个位或可被配置为存储多值(等于或大于两个位的数据)。
在每一个NAND串中,(q+1)个存储器基元晶体管MT排列在选择晶体管ST1的源极与选择晶体管ST2的漏极之间,使得其电流路径串联连接。换句话说,存储器基元晶体管MT在Y方向上串联连接,使得相邻的存储器基元晶体管MT共享扩散区域(源极区域或漏极区域)。
存储器基元晶体管MT的控制栅电极以从位于最漏极侧上的存储器基元晶体管MT开始的顺序分别连接至字线WL0至WLq。因此,连接至字线WL0的存储器基元晶体管MT的漏极连接至选择晶体管ST1的源极。连接至字线WLq的存储器基元晶体管MT的源极连接至选择晶体管ST2的漏极。
字线WL0至WLq共同地连接在物理块中的NAND串当中的存储器基元晶体管MT的控制栅电极。换句话说,存在于块的相同行中的存储器基元晶体管MT的控制栅极连接至相同的字线WL。将连接至相同字线WL的(p+1)个存储器基元晶体管MT作为一页(物理页)来处理。通过每一物理页来执行数据写入及数据读出。
位线BL0至BLp共同地连接块当中的选择晶体管ST1的漏极。换句话说,存在于多个块的相同列中的NAND串连接至相同的位线BL。
图2(b)为例如在四进制数据存储模式中的阈值分布的示意图,该四进制数据存储模式用于在一个存储器基元晶体管MT中存储两个位。在四进制数据存储模式中,可将由上部页(upper page)数据“x”和下部页(lowerpage)数据“y”定义的任何一个四进制数据“xy”存储在存储器基元晶体管MT中。
例如,作为四进制数据“xy”,“11”、“01”、“00”和“10”以存储器基元晶体管MT的阈值电压的顺序分配。数据“11”为已擦除状态(erased state),在该状态中存储器基元晶体管MT的阈值电压为负。
在下部页写入操作中,根据下部位数据“y”的写入,将数据“10”选择性地写入具有数据“11”(处于已擦除状态)的存储器基元晶体管MT中。在上部页写入之前的数据“10”的阈值分布大约位于在上部页写入之后的数据“01”和数据“00”的阈值分布的中间,并且可比在上部页写入之后的阈值分布更宽。在上部页写入操作中,选择性地对具有数据“11”的存储器基元和具有数据“10”的存储器基元进行上部位数据“x”的写入。将数据“01”和数据“00”写入存储器基元中。
图3为驱动控制电路4的硬件内部配置实例的框图。驱动控制电路4包括数据存取总线101、第一电路控制总线102以及第二电路控制总线103。控制整个驱动控制电路4的处理器104连接至第一电路控制总线102。启动ROM 105经由ROM控制器106而连接至第一电路控制总线102,在该启动ROM 105中存储有启动程序,所述启动程序用于启动存储在NAND存储器10中的各个管理程序(FW:固件)。时钟控制器107连接至第一电路控制总线102,该时钟控制器107从图1中所示的电源电路5接收通电复位信号且将复位信号和时钟信号供应至各个单元。
第二电路控制总线103连接至第一电路控制总线102。用于从图1中所示的温度传感器7接收数据的I2C电路108、将用于状态显示的信号供应至用于状态显示的LED 6的并行IO(PIO)电路109、以及控制RS232CI/F 3的串行IO(SIO)电路110连接至第二电路控制总线103。
ATA接口控制器(ATA控制器)111、第一ECC(错误检查及校正)电路112、NAND控制器113以及DRAM控制器114连接至数据存取总线101与第一电路控制总线102两者。ATA控制器111经由ATA接口2而将数据传输至主机设备1及从主机设备1接收数据。用作数据工作区和固件扩展区的SRAM 115经由SRAM控制器116而连接至数据存取总线101。当起动存储在NAND存储器10中的固件时,该固件通过存储在启动ROM105中的启动程序而传送至SRAM 115。
NAND控制器113包括NAND I/F 117、第二ECC电路118,以及用于DMA传送控制的DMA控制器119,其中NAND I/F 117执行用于与NAND存储器10的接口的接口处理,DMA控制器119执行NAND存储器10与DRAM 20之间的存取控制。第二ECC电路118执行第二校正码的编码且执行第一错误校正码的编码和解码。第一ECC电路112执行第二错误校正码的解码。第一错误校正码和第二错误校正码为,例如,汉明(hamming)码、BCH(Bose Chaudhuri Hocqenghem)码、RS(ReedSolomon)码、或LDPC(低密度奇偶检查)码。第二错误校正码的校正能力比第一错误校正码的校正能力高。
如图1和图3中所示,在NAND存储器10中,四个并行操作元件10a至10d经由四个八位通道(4ch)而并联连接至驱动控制电路4中的NAND控制器112。根据四个并行操作元件10a至10d是独立致动还是并行致动与是否使用在NAND存储器芯片中提供的双速模式(多页编程/多页读取/多块擦除)的组合,提供下文所解释的三种存取模式。
(1)8-位正常模式
8-位正常模式为用于仅致动一个通道且以8-位为单位执行数据传送的模式。以物理页大小(4kB)来执行写入和读出。以物理块大小(512kB)来执行擦除。一个逻辑块与一个物理块相关联,且逻辑块大小为512kB。
(2)32-位正常模式
32-位正常模式为用于并行致动四个通道且以32-位为单位执行数据传送的模式。以物理页大小×4(16kB)来执行写入和读出。以物理块大小×4(2MB)来执行擦除。一个逻辑块与四个物理块相关联,且逻辑块大小为2MB。
(3)32-位双速模式
32-位双速模式为用于并行致动四个通道且使用NAND存储器芯片的双速模式来执行写入和读出的模式。以物理页大小×4×2(32kB)来执行写入和读出。以物理块大小×4×2(4MB)来执行擦除。一个逻辑块与八个物理块相关联,且逻辑块大小为4MB。
在用于并行致动四个通道的32-位正常模式或32-位双速模式中,并行操作的四个或八个物理块为用于NAND存储器10的擦除单位,且并行操作的四个或八个物理页为用于NAND存储器10的写入单位和读出单位。在下面所解释的操作中,基本上,使用32-位双速模式。例如,假定:一个逻辑块=4MB=2i轨道=2j页=2k簇=2l扇区(i、j、k和l为自然数,且i<j<k<l的关系成立)。
在32-位双速模式中存取的逻辑块是以4MB为单位来存取。八个(2×4ch)物理块(一个物理块=512kB)与逻辑块相关联。当检测到以物理块单位管理的坏块BB时,该坏块BB不可用。因此,在这种情况下,将与逻辑块相关联的该八个物理块的组合变为不包括该坏块BB。
图4为通过处理器104实现的固件的功能配置实例的框图。通过处理器104实现的固件的功能粗略地分类为数据管理单元120、ATA命令处理单元121、安全管理单元122、启动加载器123、初始化管理单元124,以及除错支持单元125。
数据管理单元120经由NAND控制器112和第一ECC电路114而控制NAND存储器10与DRAM 20之间的数据传送以及关于NAND存储器10的各种功能。ATA命令处理单元121经由ATA控制器110和DRAM控制器113而与数据管理单元120协作来执行DRAM 20与主机设备1之间的数据传送处理。安全管理单元122与数据管理单元120和ATA命令处理单元121协作而管理各种安全信息。
启动加载器123在接通电源时将管理程序(固件)从NAND存储器10加载至SRAM 120。初始化管理单元124执行驱动控制电路4中的各个控制器和电路的初始化。除错支持单元125处理经由RS232C接口而从外部供应的用于除错的数据。数据管理单元120、ATA命令处理单元121和安全管理单元122主要为通过处理器104实现的执行存储在SRAM 114中的管理程序的功能单元。
在该实施例中,主要解释通过数据管理单元120实现的功能。数据管理单元120执行:例如,ATA命令处理单元121请求作为存储装置的NAND存储器10和DRAM 20(响应于来自主机设备的各种命令,例如写入请求、高速缓冲存储器清理请求以及读取请求)而提供的功能的供应、主机地址区域与NAND存储器10之间的对应关系的管理和管理信息的保护、使用DRAM 20和NAND存储器10的快速且高效的数据读出及写入功能的提供、NAND存储器10的可靠性的确保。
图5为形成在NAND存储器10和DRAM 20中的功能块的图。配置在DRAM 20上的写入高速缓冲存储器(WC)21和读取高速缓冲存储器(RC)22被插入在主机1与NAND存储器10之间。WC 21暂时存储来自主机设备1的写入数据。RC 22暂时存储来自NAND存储器10的读取数据。WC 21和RC 22可配置在不同的DRAM芯片上或如上文所述的其它种类的存储器芯片上。
由数据管理单元120将NAND存储器10中的逻辑块分配给前级存储区(FS:前存储器)12、中间级存储区(IS:中间存储器)13和主存储区(MS:主存储器)11的各个管理区,以便减少在写入期间NAND存储器10的擦除的量。FS 12以簇为单位(即,“小单位”)管理来自WC 21的数据,且将小数据(细粒数据)存储一短周期。IS 13以簇为单位(即,“小单位”)管理从FS 12溢出的数据,且将小数据(细粒数据)存储一长周期。MS 11以轨道为单位(即,“大单位”)存储来自WC 21、FS 12和IS 13的数据,且将大数据(粗粒数据)存储一长周期。例如,存储容量具有MS>IS且FS>WC的关系。
当对NAND存储器10的所有存储区应用小管理单位时,稍后解释的管理表的大小被放大,且不适应DRAM 20。因此,NAND存储器10的各个存储器被配置为以小管理单位管理NAND存储器10中仅在最近刚写入的数据和具有低写入效率的小数据。在国际申请No.PCT2008/JP/073950中描述了在SSD中使用“小单位”连同“大单位”的技术,该申请的全部内容纳入本文中作为参考。
图6为关于从WC 21向NAND存储器10的写入处理的更详细的功能框图。在FS 12的前级处设置FS输入缓冲器(FSIB)12a,其中该FS输入缓冲器(FSIB)12a缓冲来自WC 21的数据。在MS 11的前级处设置MS输入缓冲器(MSIB)11a,该MS输入缓冲器(MSIB)11a缓冲来自WC 21、FS 12或IS 13的数据。在MS 11中设置轨道前级存储区(TFS)11b。TFS 11b为插入在MSIB 11a与MS 11之间的具有FIFO(先进先出)结构的缓冲器。记录在TFS 11b中的数据为这样的数据,该数据的更新频率高于在MS 11中记录的数据的更新频率。NAND存储器10中的任何一个逻辑块被分配给MS 11、MSIB 11a、TFS 11b、FS 12、FSIB 12a和IS 13。
将详细解释图5和图6中所示的各个部件的具体功能配置。当主机设备1执行SSD 100的读取或写入时,主机设备1经由ATA接口而输入LBA(逻辑块地址)作为逻辑地址。如图7中所示,LBA是这样的逻辑地址,其中从0开始的序号被附到扇区(大小:512B)。在该实施例中,作为用于WC 21、RC 22、FS 12、IS 13和MS 11(它们为图5中所示的部件)的管理单位,定义逻辑簇地址和逻辑轨道地址,所述逻辑簇地址由在顺序上(in order)等于或高于LBA的低位(low-order)第(l-k+1)位的位串形成,所述逻辑轨道地址由在顺序上等于或高于LBA的低位第(l-i+1)位的位串形成。一个簇=2(l-k)个扇区,且一个轨道=2(k-i)个簇。
读取高速缓冲存储器(RC)22
解释RC 22。RC 22为响应于来自ATA命令处理单元121的读取请求而暂时存储来自NAND存储器10(FS 12、IS 13和MS 11)的读取数据的区。在该实施例中,RC 22是在例如m-线/n-路(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统中进行管理,且可将一个簇的数据存储在一个条目(entry)中。线通过逻辑簇地址的LSB(k-i)个位来判定。RC 22可在全关联系统中进行管理,或者可在简单FIFO系统中进行管理。
写入高速缓冲存储器(WC)21
解释WC 21。WC 21为响应于来自ATA命令处理单元121的写入请求而暂时存储来自主机设备1的写入数据的区。WC 21是在m-线/n-路(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统中进行管理,并可将一个簇的数据存储在一个条目中。线通过逻辑簇地址的LSB(k-i)个位来判定。例如,以从路1至路n的顺序搜寻可写入的路。登记(register)于WC 21中的轨道通过稍后所解释的WC轨道管理表24的FIFO结构以LRU(最近最少使用)进行管理,使得最早更新的顺序已知。WC 21可由全关联系统来管理。WC 21与RC 22可在线的数目和路的数目上有所不同。
根据写入请求而写入的数据一次存储在WC 21上。判定将要从WC 21清理至NAND 10的数据的方法遵从下面所解释的规则。
(i)当通过标记(tag)判定的线中的可写入的路为最后的(在该实施例中,第n个)空闲的路时,即,当使用最后的空闲的路时,决定清理登记于线中的轨道当中的基于LRU最早更新的轨道。
(ii)当登记于WC 21中的不同轨道的数目超过预定允许数目时,决定以LRU的顺序清理WC中的其簇数目小于预定数目的轨道。
根据上文所解释的策略来判定将要清理的轨道。在清理这些轨道时,清理包括在相同轨道中的所有数据。当将要清理的数据的量超过例如轨道大小的50%时,将数据清理至MS 11。当将要清理的数据的量未超过例如轨道大小的50%时,将数据清理至FS 12。
当在条件(i)下执行轨道清理且将数据清理至MS 11时,根据策略(i),选择WC 21的轨道当中满足将要清理的数据的量超过轨道大小的50%这一条件的轨道且将其添加至清理候选者,直至将要清理的轨道的数目达到2i为止(当轨道的数目一开始就等于或大于2i时,直至轨道的数目达到2i+1为止)。换句话说,当将要清理的轨道的数目小于2i时,以从WC中的最旧轨道开始的顺序选择具有多于2(k-i-1)的有效簇的轨道,且将其添加至清理候选者,直至轨道的数目达到2i为止。
当在条件(i)下执行轨道清理且将轨道清理至FS 12时,以LRU的顺序在WC 21中的轨道当中选择满足将要清理的数据的量不超过轨道大小的50%这一条件的轨道,并将该轨道的簇添加至清理候选者,直至将要清理的簇的数目达到2k为止。换句话说,通过以从最旧轨道开始的顺序追踪WC中的轨道而从具有2(k-i-1)个或更少的有效簇的轨道中提取簇,且当有效簇的数目达到2k时,以逻辑块为单位将簇清理至FSIB 12a。然而,当未寻找到2k个有效簇时,以逻辑页为单位将簇清理至FSIB 12a。用于判定是以逻辑块为单位还是以逻辑页为单位执行至FS 12的清理的有效簇的数目的阈值不限于针对一个逻辑块的值(即,2k),且可为比针对一个逻辑块的值稍小的值。
在来自ATA命令处理单元121的高速缓冲存储器清理请求中,在与上文相同的条件下将WC 21的所有内容清理至FS 12或MS 11(当将要清理的数据的量超过轨道大小的50%时,将数据清理至MS 11,且当数据的量未超过50%时,将数据清理至FS 12)。
前级存储区(FS)12
解释FS 12。FS 12适应其中以簇为单位管理数据的逻辑块单位的FIFO结构。FS 12为这样的缓冲器,其认为通过FS 12的数据具有比后级处的IS 13的数据高的更新频率。换句话说,在FS 12的FIFO结构中,当执行从主机向同一地址的重写时,使通过FIFO的有效簇(最新簇)无效。因此,可将通过FS 12的簇视为具有比从FS 12清理至IS 13或MS 11的簇更高的更新频率。
通过提供FS 12,减少了具有高更新频率的数据在后级处的IS 13中的压紧处理中的混合的可能性。当通过无效化而使逻辑块的有效簇的数目减少至0时,释放该逻辑块且将其分配为空闲块FB。当FS12中的逻辑块被无效时,获得新的空闲块FB且将其分配给FS 12。
当执行从WC 21至FS 12的簇清理时,簇被写入分配给FSIB 12a的逻辑块中。当在FSIB 12a中存在完成了所有逻辑页的写入的逻辑块时,通过稍后所解释的CIB处理将这些逻辑块从FSIB 12a移动至FS 12。在将这些逻辑块从FSIB 12a移动至FS 12的过程中,当FS 12的逻辑块的数目超过FS 12所允许的预定上限值时,将最旧的逻辑块从FS 12清理至IS 13或MS 11。例如,将轨道中有效簇比率等于或大于50%的轨道写入MS 11(TFS 11b)中,且将其中仍剩余有有效簇的逻辑块移动至IS 13。
关于NAND存储器10中的部件之间的数据移动,存在两种方式,即,移动(Move)和复制(Copy)。移动是这样的方法,其仅执行稍后所解释的管理表的指针(pointer)的重新定位,而不执行数据的实际重写。复制是这样的方法,其以页单位、轨道单位或块单位将存储于一个部件中的数据实际重写至其他部件中。
中间级存储区(IS)13
解释IS 13。在IS 13中,以与FS 12相同的方式以簇为单位执行数据的管理。可将存储于IS 13中的数据视为具有低更新频率的数据。当执行逻辑块从FS 12至IS 13的移动(movement)(移动(Move))(即,逻辑块从FS 12的清理)时,通过指针的重新定位,将作为清理对象的逻辑块(其先前为FS 12的管理对象)改变为IS 13的管理对象。根据逻辑块从FS 12至IS 13的移动,当IS 13的块的数目超过IS 13所允许的预定上限值时,即,当IS中可写空闲块FB的数目减小至小于阈值时,执行从IS13至MS 11的数据清理和压紧处理。使IS 13的块的数目返回至规定值。
IS 13使用轨道中的有效簇的数目来执行下文所解释的清理处理和压紧处理。
以有效簇的数目×有效簇系数(其是根据轨道是否存在于其中存在无效轨道的MS 11的逻辑块中而进行加权的数字;存在无效轨道时的数字大于不存在无效轨道时的数字)的顺序对轨道进行排序(sort)。收集具有大乘积值的2i+1个轨道(对于两个逻辑块),将其增加至为逻辑块大小的自然数倍大,且将其清理至MSIB 11a。
当具有最小数目的有效簇的两个逻辑块的有效簇的总数目为例如等于或大于作为预定的设定值的2k(对于一个逻辑块)时,重复上文所解释的步骤(以执行该步骤,直至可从IS中的两个逻辑块创建空闲块FB为止)。
以从具有最小数目的有效簇的逻辑块开始的顺序收集2k个簇,且在IS中进行压紧。
此处,选择具有最小数目的有效簇的两个逻辑块。然而,数目不限于二,且仅须为等于或大于二的数目。预定的设定值仅须等于或小于这样的簇的数目,其可存储于比选定的逻辑块的数目小一的数目的逻辑块中。
主存储区(MS)11
解释MS 11。在MS 11中,以轨道为单位执行数据的管理。可将存储于MS 11中的数据视为具有低更新频率。当执行轨道从WC 21、FS 12或IS 13至MS 11的复制或移动时,将轨道写入分配给MSIB 11a的逻辑块中。另一方面,当仅将轨道的一部分中的数据(簇)从FS 12,IS 13等等写入时,执行稍后所解释的被动合并,该被动合并用于合并MS中的现存轨道与新数据以产生新轨道,然后将所产生的轨道写入MSIB 11a中。当无效轨道在MS 11中累积且分配给MS 11的逻辑块的数目超过MS 11所允许的块的数目的上限时,执行压紧处理以产生空闲块FB。
作为MS 11的压紧处理,例如,执行下文所解释的仅关注逻辑块中的有效轨道的数目的方法。
从具有最小数目的有效轨道的逻辑块中选择逻辑块,直至可通过组合无效轨道而产生空闲块FB为止。
当执行用于整合存储于选定逻辑块中的轨道与WC 21、FS 12或IS 13中的数据的被动合并时,执行压紧。
将其中可整合2i个轨道的逻辑块输出至TFS 11b(2i轨道MS压紧),且将数目小于2i的轨道输出至MSIB 11a(小于2i的轨道压紧)以产生较大数目的空闲块FB。
TFS 11b适于其中以轨道为单位管理数据的逻辑块单位的FIFO结构。TFS 11b是这样的缓冲器,其认为通过TFS 11b的数据具有比后级处的MS 11的数据更高的更新频率。换句话说,在TFS 11b的FIFO结构中,当执行从主机向同一地址中的重写时,使通过FIFO的有效轨道(最新轨道)无效。因此,可将通过TFS 11b的轨道视为具有比从TFS 11b清理至MS 11的轨道更高的更新频率。
图8为管理表的图,该管理表用于使数据管理单元120控制并管理图5和图6中所示的各个部件。数据管理单元120具有(如上文所解释的)桥接ATA命令处理单元121与NAND存储器10的功能,且包括:DRAM层管理单元120a,其执行对存储于DRAM 20中的数据的管理;逻辑NAND层管理单元120b,其执行对存储于NAND存储器10中的数据的管理;以及物理NAND层管理单元120c,其管理作为物理存储装置的NAND存储器10。RC簇管理表23、WC轨道管理表24和WC簇管理表25由DRAM层管理单元120a来控制。轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42和FS/IS内簇管理表44由逻辑NAND层管理单元120b来管理。逻辑至物理转译表50由物理NAND层管理单元120c来管理。
RC 22由RC簇管理表23来管理,该RC簇管理表23是反向查找表。在该反向查找表中,可从存储装置的位置搜寻存储于该位置中的逻辑地址。WC 21由WC簇管理表25和WC轨道管理表24来管理,其中WC簇管理表25为反向查找表,而WC轨道管理表24为正向查找表。在该正向查找表中,可从逻辑地址搜寻其中存在与该逻辑地址对应的数据的存储装置的位置。
NAND存储器10中的FS 12(FSIB 12a)、IS 13以及MS 11(TFS 11b和MSIB 11a)的逻辑地址由轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42以及FS/IS内簇管理表44来管理。在NAND存储器10中的FS 12(FSIB 12a)、IS 13以及MS 11(TFS 11b和MSIB 11a)中,执行逻辑至物理转译表50的逻辑地址与物理地址的转换。将这些管理表存储于NAND存储器10上的区中且在SSD 100的初始化期间将其从NAND存储器读取至DRAM 20。
RC簇管理表23(反向查找)
参考图9解释RC簇管理表23。如上文所解释,在由逻辑簇地址LSB(k-i)个位编索引的n-路集合关联系统中管理RC 22。RC簇管理表23为用于管理RC(簇大小×m-线×n-路)22的各个条目的标记的表。这些标记中的每一个包括状态标志(flag)23a和逻辑轨道地址23b,其中状态标志23a包括多个位。除了指示所述条目是否可使用(有效/无效)的有效位之外,状态标志23a还包括例如指示所述条目是否在等待从NAND存储器10读出的位、以及指示所述条目是否在等待读出至ATA命令处理单元121的位。RC簇管理表23用作反向查找表,该反向查找表用于从DRAM 20上的标记存储位置搜寻与LBA一致的逻辑轨道地址。
WC簇管理表25(反向查找)
参考图10解释WC簇管理表25。如上文所解释,在由逻辑簇地址LSB(k-i)个位编索引的n-路集合关联系统中管理WC 21。WC簇管理表25为用于管理WC(簇大小×m-线×n-路)21的各个条目的标记的表。这些标记中的每一个包括多个位的状态标志25a、扇区位置位映像(bitmap)25b,以及逻辑轨道地址25c。
除了指示所述条目是否可使用(有效/无效)的有效位之外,状态标志25a还包括例如指示所述条目是否在等待清理至NAND存储器10的位、以及指示所述条目是否在等待从ATA命令处理单元121写入的位。通过将扇区扩展成2(l-k)个位,扇区位置位映像25b指示一个簇中所包括的2(l-k)个扇区中的哪一个存储有效数据。利用扇区位置位映像25b,可在WC 21中执行与LBA相同的以扇区为单位进行的管理。WC簇管理表25用作反向查找表,该反向查找表用于从DRAM 20上的标记存储位置搜寻与LBA一致的逻辑轨道地址。
WC轨道管理表24(正向查找)
参考图11解释WC轨道管理表24。WC轨道管理表24是用于管理信息(其中以轨道单位收集存储于WC 21上的簇)的表,且使用具有类似于FIFO功能的链接列表(linked list)结构来表示轨道当中在WC 21中的登记的顺序(LRU)。LRU可通过WC 21中最后被更新的顺序来表示。每一列表的条目包括逻辑轨道地址24a、逻辑轨道地址中所包括的WC 21中的有效簇数目24b、路-线位映像24c,以及下一个指针24d,该下一个指针24d指示指向下一条目的指针。WC轨道管理表24用作正向查找表,这是因为所需信息是从逻辑轨道地址24a获得的。
路-线位映像24c为这样的映像信息,其指示在WC 21中的m×n个条目中的哪一个中存储WC 21中的逻辑轨道地址中所包括的有效簇。在其中存储有效簇的条目中,有效位为“1”。路-线位映像24c包括例如(一位(有效)+log2n个位(n-路))×m个位(m-线)。WC轨道管理表24具有链接列表结构。仅输入关于WC 21中存在的逻辑轨道地址的信息。
轨道管理表30(正向查找)
参考图12解释轨道管理表30。轨道管理表30是用于以逻辑轨道地址为单位来管理MS 11上的逻辑数据位置的表。当以簇为单位将数据存储于FS 12或IS 13中时,轨道管理表30存储关于数据的基本信息和指向详细信息的指针。轨道管理表30被配置为阵列格式,该阵列格式具有逻辑轨道地址30a作为索引。具有逻辑轨道地址30a作为索引的每一条目包括诸如以下内容的信息:簇位映像30b、逻辑块ID 30c+逻辑块内轨道位置30d、簇表指针30e、FS簇的数目30f,以及IS簇的数目30g。轨道管理表30用作正向查找表,这是因为通过使用逻辑轨道地址作为索引,可获得诸如逻辑块ID(对应于存储装置位置)的所需信息,在该逻辑块ID中存储对应于逻辑轨道地址的轨道。
簇位映像30b是通过将属于一个逻辑轨道地址范围的2(k-i)个簇按照逻辑簇地址的升序分成例如八份而获得的位映像。八个位中的每一个指示对应于2(k-i-3)个簇地址的簇是存在于MS 11中还是存在于FS 12或IS 13中。当该位为“0”时,其指示作为搜寻对象的簇的确存在于MS 11中。当该位为“1”时,其指示簇很可能存在于FS 12或IS 13中。
逻辑块ID 30c是用于识别这样的逻辑块ID的信息,在该逻辑块ID中存储与逻辑轨道地址对应的轨道。逻辑块内轨道位置30d指示与逻辑轨道地址(30a)对应的轨道在由逻辑块ID 30c指定的逻辑块中的存储位置。因为一个逻辑块包括最大2i个有效轨道,所以逻辑块内轨道位置30d使用i个位识别2i个轨道位置。
簇表指针30e是指向具有链接列表结构的FS/IS管理表40的每一列表的顶条目的指针。在遍及簇位映像30b进行搜寻的过程中,当指示出簇很可能存在于FS 12或IS 13中时,通过使用簇表指针30e来执行遍及FS/IS管理表40的搜寻。FS簇的数目30f指示出存在于FS 12中的有效簇的数目。IS簇的数目30g指示出存在于IS 13中的有效簇的数目。
FS/IS管理表40(正向查找)
参考图13解释FS/IS管理表40。FS/IS管理表40是用于以逻辑簇地址管理存储于FS 12(包括FSIB 12a)或IS 13中的数据的位置的表。如图13中所示,对于每一个逻辑轨道地址,FS/IS管理表40以独立链接列表格式形成。如上文所解释的,指向每一列表的顶条目的指针被存储在轨道管理表30的簇表指针30e的字段中。在图13中,示出用于两个逻辑轨道地址的链接列表。每一个条目包括逻辑簇地址40a、逻辑块ID 40b、逻辑块内簇位置40c、FS/IS块ID 40d,以及下一个指针40e。FS/IS管理表40用作正向查找表,这是因为可以从逻辑簇地址40a获得诸如逻辑块ID40b以及逻辑块内簇位置40c(对应于存储装置位置)的所需信息,其中在上述逻辑块内簇位置40c中存储与逻辑簇地址40a对应的簇。
逻辑块ID 40b是用于识别其中存储与逻辑簇地址40a对应的簇的逻辑块ID的信息。逻辑块内簇位置40c指示与逻辑簇地址40a对应的簇在由逻辑块ID 40b指定的逻辑块中的存储位置。因为一个逻辑块包括最大2k个有效簇,所以逻辑块内簇位置40c使用k个位来识别2k个位置。在FS/IS块ID 40d中登记FS/IS块ID,该FS/IS块ID是稍后所解释的FS/IS逻辑块管理表42的索引。FS/IS块ID 40d是这样的信息,其用于识别属于FS 12或IS 13的逻辑块。FS/IS管理表40中的FS/IS块ID 40d被登记,以链接至稍后所解释的FS/IS逻辑块管理表42。下一个指针40e表示指向为每一个逻辑轨道地址链接的同一列表中的下一条目的指针。
MS逻辑块管理表35(反向查找)
参考图14解释MS逻辑块管理表35。MS逻辑块管理表35是这样的表,其用于整体地管理关于MS 11中使用的逻辑块的信息(例如,存储哪个轨道,以及轨道位置是否额外可记录)。在MS逻辑块管理表35中,还登记与属于FS 12(包括FSIB 12)和IS 13的逻辑块有关的信息。MS逻辑块管理表35以阵列格式形成,该阵列形式具有逻辑块ID 35a作为索引。在128GB的NAND存储器10的情况下,条目的数目最大可为32K个条目。这些条目中的每一个包括:用于2i个轨道的轨道管理指针35b、有效轨道的数目35c、可写入的顶轨道35d,以及有效标志35e。MS逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的逻辑块ID 35a获得诸如存储于逻辑块中的逻辑轨道地址的所需信息。
轨道管理指针35b存储与逻辑块ID 35a所指定的逻辑块中的2i个轨道位置中的每一个相对应的逻辑轨道地址。可以使用该逻辑轨道地址来进行遍及轨道管理表30的搜寻,该轨道管理表30具有逻辑轨道地址作为索引。有效轨道的数目35c指示出在逻辑块ID 35a所指定的逻辑块中存储的轨道当中的有效轨道的数目(最大为2i)。可写入的顶轨道位置35d指示当逻辑块ID 35a所指定的逻辑块为被额外记录的块时额外可记录的顶位置(0至2i-1,当额外记录结束时为2i)。当作为MS 11(包括MSIB 11a)来管理逻辑块条目时,有效标志35e为“1”。这里,“额外记录”是指以附加方式将簇或轨道写入逻辑块中的空逻辑页中。
FS/IS逻辑块管理表42(反向查找)
参考图15解释FS/IS逻辑块管理表42。FS/IS逻辑块管理表42以阵列格式形成,该阵列格式具有FS/IS块ID 42a作为索引。FS/IS逻辑块管理表42是用于管理与用作FS 12或IS 13的逻辑块有关的信息(与逻辑块ID的对应、指向FS/IS内簇管理表44的索引、逻辑块是否额外可记录等)的表。FS/IS逻辑块管理表42主要通过使用FS/IS管理表40中的FS/IS块ID 40d来存取。每一条目包括逻辑块ID 42b、块内簇表42c、有效簇的数目42d、可写入的顶页42e,以及有效标志42f。MS逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的FS/IS块ID 42获得诸如在逻辑块中存储的簇的所需信息。
在MS逻辑块管理表35中登记的逻辑块当中与属于FS 12(包括FSIB12)和IS 13的逻辑块相对应的逻辑块ID被登记于逻辑块ID 42b中。指向稍后所解释的FS/IS内簇管理表44的索引被登记于块内簇表42c中,该FS/IS内簇管理表44指示在逻辑块中的每一个簇位置中登记由哪个逻辑簇地址指定的逻辑簇。有效簇的数目42d指示在FS/IS块ID 42a所指定的逻辑块中存储的簇当中的有效簇的数目(最大为2k)。可写入的顶页位置42e指示当FS/IS块ID 42a所指定的逻辑块为被额外记录的块时额外可记录的顶页位置(0至2j-1,当额外记录结束时为2i)。当作为FS 12(包括FSIB12)或IS 13来管理逻辑块条目时,有效标志42f为“1”。
FS/IS内簇管理表44(反向查找)
参考图16解释FS/IS内簇管理表44。FS/IS内簇管理表44是指示在用作FS 12或IS 13的逻辑块中的每一个簇位置中记录哪个簇的表。FS/IS内簇管理表44对于每一个逻辑块具有2j页×2(k-j)簇=2k个条目。在连续区中排列与逻辑块中的簇位置当中的第0至第2k-1个簇位置对应的信息。以与属于FS 12和IS 13的逻辑块数目(P)相等的数目来存储包括该2k条(piece)信息的表。FS/IS逻辑块管理表42的块内簇表42c是用于该P个表的位置信息(指针)。在连续区中排列的每一条目44a的位置指示在一个逻辑块中的簇位置。作为条目44a的内容,登记指向这样的列表的指针,该列表包括通过FS/IS管理表40管理的逻辑簇地址,使得可以识别簇位置中存储了哪个簇。换句话说,条目44a并不指示链接列表的顶部。在条目44a中登记指向这样一个列表的指针,该列表包括链接列表中的逻辑簇地址。
逻辑至物理转译表50(正向查找)
参考图17解释逻辑至物理转译表50。逻辑至物理转译表50以阵列格式形成,其具有逻辑块ID 50a作为索引。在128GB的NAND存储器10的情况下,条目的数目可为最大32K个条目。逻辑至物理转译表50是用于管理关于逻辑块ID与物理块ID之间的转换和寿命的信息的表。这些条目中的每一个包括物理块地址50b、擦除的次数50c,以及读出的次数50d。逻辑至物理转译表50用作正向查找表,这是因为可以从逻辑块ID获得诸如物理块ID(物理块地址)的所需信息。
物理块地址50b指示属于一个逻辑块ID 50a的八个物理块ID(物理块地址)。擦除的次数50c指示逻辑块ID的擦除的次数。坏块(BB)以物理块(512KB)为单位来管理。然而,在32-位双速模式中,擦除的次数以一个逻辑块(4MB)为单位来管理。读出的次数50d指示逻辑块ID的读出的次数。擦除的次数50c可用于例如磨损均化处理中,该磨损均化处理用于均化NAND型闪速存储器的重写的次数。读出的次数50d可用于刷新处理中,该刷新处理用于重写在具有劣化的保持性能的物理块中存储的数据。
在国际申请No.PCT/JP2008/066508以及No.PCT/JP2008/066507中描述了磨损均化处理的实例。在国际申请No.PCT/JP2008/067597中描述了刷新处理的实例,其全部内容纳入本文作为参考。
图8中所示的管理表通过下文所解释的管理对象来对照。
RC管理:RC簇管理表23
WC管理:WC簇管理表25和WC轨道管理表24
MS管理:轨道管理表30和MS逻辑块管理表35
FS/IS管理:轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42,以及FS/IS内簇管理表44
包括MS 11、MSIB 11a和TFS 11b的MS区的结构以MS结构管理表(未示出)进行管理。具体地,管理分配给MS 11、MSIB 11a和TFS 11b的逻辑块等等。包括FS 12、FSIB 12a和IS 13的FS/IS区的结构以FS/IS结构管理表(未示出)进行管理。具体地,管理分配给FS 12、FSIB 12a和IS 13的逻辑块等等。
读取处理
参考图18中所示的流程图来解释读取处理。当从ATA命令处理单元121输入读取命令、作为读出地址的LBA以及读出大小时,数据管理单元120遍及图9中所示的RC簇管理表23和图10中所示的WC簇管理表25进行搜寻(步骤S100)。具体地,数据管理单元120从RC簇管理表23和WC簇管理表25选择与LBA的逻辑簇地址的LSB(k-i)个位(参见图7)对应的线,且比较在选定的线的每一路中所输入的逻辑轨道地址23b和25c与LBA的逻辑轨道地址(步骤S110)。当存在使得输入于自身中的逻辑轨道地址与LBA的逻辑轨道地址一致的路时,数据管理单元120将此视为高速缓冲存储器命中(cache hit)。数据管理单元120读出与RC簇管理表23或WC簇管理表25的命中的线和路对应的WC 21或RC 22的数据,且将数据发送至ATA命令处理单元121(步骤S115)。
当RC 22或WC 21中不存在命中时(步骤S110),数据管理单元120搜寻作为搜寻对象的簇被存储于NAND存储器10的哪一部分中。首先,数据管理单元120遍及图12中所示的轨道管理表30进行搜寻(步骤S120)。轨道管理表30通过逻辑轨道地址30a来编索引。因此,数据管理单元120仅检查与LBA指定的逻辑轨道地址一致的逻辑轨道地址30a的条目。
数据管理单元120基于需要检查的LBA的逻辑簇地址而从簇位映像30b中选择对应位。当所述对应位指示“0”时,这意味着簇的最新数据的确存在于MS中(步骤S130)。在这种情况下,数据管理单元120从逻辑轨道地址30a的同一条目中的逻辑块ID 30c和逻辑块内轨道位置30d获得逻辑块ID以及轨道存在于其中的轨道位置。数据管理单元120使用LBA的逻辑簇地址的LSB(k-i)个位来计算从轨道位置的偏移。因此,数据管理单元120可计算与NAND存储器10中的逻辑簇地址相对应的簇被存储的位置。具体地,逻辑NAND层管理单元120b向物理NAND层管理单元120c提供:如上文所解释的从轨道管理表30获取的逻辑块ID 30c和逻辑块内位置30d;以及LBA的逻辑簇地址的LSB(k-i)个位。
物理NAND层管理单元120c从图17中所示的具有逻辑块ID作为索引的逻辑至物理转译表50获取对应于逻辑块ID 30c的物理块地址(物理块ID)(步骤S160)。数据管理单元120从逻辑块内轨道位置30d计算所获取的物理块ID中的轨道位置(轨道顶位置),且进一步从LBA的逻辑簇地址的LSB(k-i)个位计算与物理块ID中所计算出的轨道顶位置的偏移。因此,数据管理单元120可获取物理块中的簇。数据管理单元120经由RC 22将从NAND存储器10的MS 11获取的簇发送至ATA命令处理单元121(步骤S180)。
另一方面,当基于LBA的逻辑簇地址而在遍及簇位映像30b的搜寻中所述对应位指示“1”时,很可能该簇存储于FS 12或IS 13中(步骤S130)。在这种情况下,数据管理单元120在轨道管理表30中的逻辑轨道地址30a的相关条目当中提取簇表指针30e的条目,且使用此指针顺序地搜寻遍及与FS/IS管理表40的相关逻辑轨道地址相对应的链接列表(步骤S140)。具体地,数据管理单元120在相关逻辑轨道地址的链接列表中搜寻与LBA的逻辑簇地址一致的逻辑簇地址40a的条目。当存在逻辑簇地址40a的一致条目时(步骤S150),数据管理单元120在一致列表中获取逻辑块ID 40b和逻辑块内簇位置40c。以与上文所解释的方式相同的方式,数据管理单元120使用逻辑至物理转译表50来获取物理块中的簇(步骤S160和S180)。具体地,数据管理单元120从逻辑至物理转译表50获取与所获取的逻辑块ID对应的物理块地址(物理块ID)(步骤S160),且从由逻辑块内簇位置40c的条目获取的逻辑块内簇位置计算所获取的物理块ID的簇位置。因此,数据管理单元120可获取物理块中的簇。数据管理单元120经由RC22将从NAND存储器10的FS 12或IS 13获取的簇发送至ATA命令处理单元121(步骤S180)。
当在遍及FS/IS管理表40的搜寻中不存在作为搜寻对象的簇时(步骤S150),数据管理单元120再次遍及轨道管理表30的条目进行搜寻,且决定在MS 11上的位置(步骤S170)。
写入处理
参考图19中所示的流程图来解释写入处理。通过写入命令而写入的数据总是一次存储于WC 21上。此后,根据条件而将数据写入NAND存储器10中。在写入处理中,很可能执行清理处理和压紧处理。在该实施例中,将写入处理粗略划分成写入高速缓冲存储器闪速处理(write cache flashprocessing)(在下文中为WCF处理)与清除输入缓冲器处理(clean inputbuffer processing)(在下文中为CIB处理)的两个阶段。步骤S300至S320指示从来自ATA命令处理单元121的写入请求至WCF处理的处理。步骤S330至最后步骤指示CIB处理。
WCF处理是用于将WC 21中的数据复制至NAND存储器10(FS 12的FSIB 12a、或者MS 11的MSIB 11a)的处理。来自ATA命令处理单元121的单独的写入请求或高速缓冲存储器清理请求可仅通过该处理来完成。这使得可以将ATA命令处理单元121的写入请求的已开始处理中的延迟最大限制为这样的时间,该时间用于在与WC 21的容量相等的NAND存储器10中写入。
CIB处理包括用于将FSIB 12a中通过WCF处理而写入的数据移动至FS 12的处理,以及用于将MSIB 11a中通过WCF处理而写入的数据移动至MS 11的处理。当开始CIB处理时,很可能以链式反应的方式执行NAND存储器中的部件(FS 12、IS 13、MS 11等)当中的数据移动和压紧处理。全部处理所需的时间大体上根据状态而改变。
WCF处理
首先,解释WCF处理的细节。当从ATA命令处理单元121输入写入命令、作为写入地址的LBA以及写入大小时,DRAM层管理单元120a遍及图10中所示的WC簇管理表25进行搜寻(步骤S300和S305)。WC 21的状态通过图10中所示的WC簇管理表25的状态标志25a(例如,3个位)来限定。最典型地,状态标志25a的状态以无效(可用)→等待从ATA写入→有效(不可用)→等待清理至NAND→无效(可用)的顺序转变。首先,从LBA的逻辑簇地址LSB(k-i)个位判定写入目的地处的线,且搜寻所判定的线的n路。当与所输入的LBA的逻辑轨道地址相同的逻辑轨道地址25c被存储于所判定的线的n路中时(步骤S305),DRAM层管理单元120a将此条目锁定(secure)为用于写入簇的条目,因为该条目将被覆写(有效(不可用)→等待从ATA写入)。
DRAM层管理单元120a向ATA命令处理单元121通知对应于该条目的DRAM地址。当ATA命令处理单元121所进行的写入完成时,数据管理单元120将该条目的状态标志25a改变成有效(不可用),且将所需数据登记在扇区位置位映像25b和逻辑轨道地址25c的空间中。数据管理单元120更新WC轨道管理表24。具体地,当输入与已登记于WC轨道管理表24的列表中的逻辑轨道地址24a相同的LBA地址时,数据管理单元120更新相关列表的WC簇的数目24b以及路-线位映像24c,且改变下一个指针24d,以使该列表变为最新列表。当输入与登记于WC轨道管理表24的列表中的逻辑轨道地址24a不同的LBA地址时,数据管理单元120创建新列表,该新列表具有逻辑轨道地址24a、WC簇的数目24b、路-线位映像24c以及下一个指针24d的条目,且将该列表登记为最新列表。数据管理单元120执行上文所解释的表更新,从而完成写入处理(步骤S320)。
另一方面,当与所输入的LBA的逻辑轨道地址相同的逻辑轨道地址25c没有存储于所判定的线的n路中时,数据管理单元120判断是否有必要清理至NAND存储器10(步骤S305)。首先,数据管理单元120判断所判定的线中的可写入的路是否为最后的第n路。可写入的路是具有无效(可用)的状态标志25a的路,或者具有有效(不可用)的状态标志25a并等待清理至NAND的路。当状态标志25a为等待清理至NAND时,这意味着清理开始,且条目在等待清理的结束。当可写入的路并非为最后的第n路,且可写入的路是具有无效(可用)的状态标志25a的路时,数据管理单元120将此条目锁定为用于簇写入的条目(无效(可用)→等待从ATA写入)。数据管理单元120向ATA命令处理单元121通知对应于该条目的DRAM地址,且使ATA命令处理单元121执行写入。以与上文所解释的方式相同的方式,数据管理单元120更新WC簇管理表25和WC轨道管理表24(步骤S320)。
当可写入的路并非为最后的第n路时,以及当可写入的路为具有有效(不可用)的状态标志25a并等待清理至NAND的路时,数据管理单元120将此条目锁定为用于写入簇的条目(有效(不可用)且等待清理至NAND→有效(不可用)且等待从NAND清理并等待从ATA写入)。当结束清理时,数据管理单元120将状态标志25a改变为等待从ATA写入,向ATA命令处理单元121通知对应于该条目的DRAM地址,且使ATA命令处理单元121执行写入。以与上文所解释的方式相同的方式,数据管理单元120更新WC簇管理表25和WC轨道管理表24(步骤S320)。
当输入来自ATA命令处理单元121的写入请求而不必须触发清理处理时,执行上文所解释的处理。另一方面,当在输入写入请求之后触发清理处理时,执行下文所解释的处理。在步骤S305处,当所判定的线中的可写入的路为最后的第n路时,数据管理单元120基于这样的条件而选择将要清理的轨道(即,WC 21中的条目),该条件在判定将要从WC 21清理至NAND存储器10的数据的方法的(i)中进行解释,即,
(i)当通过标记判定的可写入的路为最后的(在该实施例中,第n个)空闲的路时,即,当将要使用最后的空闲的路时,决定清理登记于线中的轨道当中的基于LRU最早更新的轨道。
当根据上文所解释的策略判定将要清理的那个轨道时,如上文所解释的,如果相同逻辑轨道地址中所包括的WC 21中的所有簇将被清理,且将要清理的簇的量超过轨道大小的50%(即,如果WC中的有效簇的数目等于或大于决定清理的轨道中的2(k-i-1)时),则DRAM层管理单元120a执行至MSIB 11a的清理(步骤S310)。如果簇的量未超过轨道大小的50%(即,WC中的有效簇的数目小于决定清理的轨道中的2(k-i-1)),则DRAM层管理单元120a执行至FSIB 12a的清理(步骤S315)。稍后解释从WC21至MSIB 11a的清理以及从WC 21至FSIB 12a的清理的细节。将选定的清理条目的状态标志25a从有效(不可用)转变为等待清理至NAND存储器10。
通过使用WC轨道管理表24,执行对清理目的地的该判断。对于每一逻辑轨道地址,在WC轨道管理表24中登记指示有效簇数目的WC簇的数目24b的条目。数据管理单元120参考WC簇的数目24b的条目来判定应将FSIB 12a和MSIB 11a中的哪一者设定为从WC 21的清理的目的地。属于逻辑轨道地址的所有簇都以位映像格式登记于路-线位映像24c中。因此,在执行清理过程中,数据管理单元120可参考路-线位映像24c而容易地获悉应清理的簇中的每一个在WC 21中的存储位置。
在写入处理期间或在写入处理之后,数据管理单元120在以下条件得到满足时还以相同的方式执行至NAND存储器10的清理处理:
(ii)登记于WC 21中的轨道的数目超过预定数目。
WC→MSIB(复制)
当根据基于有效簇的数目(有效簇的数目等于或大于2(k-i-1))的判断而执行从WC 21至MSIB 11a的清理时,数据管理单元120如上文所解释地执行下文所解释的过程(步骤S310)。
1.参考WC簇管理表25且参考与将要清理的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为“1”时,数据管理单元120执行稍后所解释的轨道内扇区填充(padding),用于通过从NAND存储器10读出相同逻辑轨道地址中所包括的丢失扇区而与不存在于WC21中的扇区合并。
2.当决定清理的轨道的数目小于2i时,数据管理单元120添加决定清理的、具有2(k-i-1)个或更多有效簇的轨道,直至决定清理的轨道的数目从WC 21中的最旧者起达到2i个为止。
3.当将要复制的轨道有2i个或更多时,数据管理单元120以逻辑块为单位(每2i个轨道作为一个集合)在MSIB 11a中执行写入。
4.数据管理单元120以轨道为单位将无法形成2i个轨道的集合的轨道写入MSIB 11a中。
5.数据管理单元120在复制结束之后使已存在于FS、IS和MS上的簇和轨道当中的属于经复制的轨道的簇和轨道无效。
解释从WC 21至MSIB 11a的复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中经清理的轨道的所有簇相对应。此后,有可能在这些项中进行写入。关于与WC轨道管理表24中的经清理的轨道对应的列表,数据管理单元120改变或删除例如紧接在之前的一列表(an immediately preceding list)的下一个指针24d,且使该列表无效。
另一方面,当执行从WC 21至MSIB 11a的轨道清理时,数据管理单元120根据轨道清理而更新轨道管理表30和MS逻辑块管理表35。首先,数据管理单元120搜寻作为轨道管理表30的索引的逻辑轨道地址30a,以判断是否已经登记对应于经清理的轨道的逻辑轨道地址30a。当已登记逻辑轨道地址30a时,数据管理单元120更新该索引的簇位映像30b的字段(因为轨道被清理至MS 11侧,所以所有相关位被设定为“0”)以及逻辑块ID 30c+逻辑块内轨道位置30d。当未登记对应于经清理的轨道的逻辑轨道地址30a时,数据管理单元120将簇位映像30b以及逻辑块ID 30c+逻辑块内轨道位置30d登记于相关逻辑轨道地址30a的条目中。数据管理单元120根据轨道管理表30的改变而在必要时更新MS逻辑块管理表35中的逻辑块ID 35a、轨道管理指针35b、有效轨道的数目35c、可写入的顶轨道35d等的条目。
当执行从其它区(FS 12和IS 13)等等至MS 11的轨道写入时,或当执行通过MS 11中的压紧处理而进行的MS内轨道写入时,可将作为写入对象的逻辑轨道地址中所包括的WC 21中的有效簇同时写入MS 11中。这样的被动合并可随着从WC 21至MS 11的写入而存在。当执行这样的被动合并时,将簇从WC 21删除(使其无效)。
WC→FSIB(复制)
当根据基于有效簇的数目(有效簇的数目等于或大于2(k-i-1))的判断而执行从WC 21至FSIB 12a的清理时,数据管理单元120执行下文所解释的过程。
1.参考与将要清理的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为“1”时,数据管理单元120执行簇内扇区填充,用于通过从NAND存储器10读出相同逻辑簇地址中所包括的丢失扇区而与不存在于WC 21中的扇区合并。
2.数据管理单元120通过以从最旧轨道起的顺序追踪WC中的轨道而从仅具有小于2(k-i-1)个有效簇的轨道中提取簇,且当有效簇的数目达到2k时,以逻辑块为单位将所有簇写入FSIB 12a中。
3.当未寻找到2k个有效簇时,数据管理单元120以与逻辑页的数目相等的数目将具有小于2(k-i-1)的数目的有效簇的所有轨道写入FSIB 12a中。
4.数据管理单元120在复制结束之后使已存在于FS和IS上的簇当中的与被复制的簇具有相同逻辑簇地址的簇无效。
解释从WC 21至FSIB 12a的该复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中经清理的轨道的所有簇相对应。此后,有可能在这些条目中进行写入。关于与WC轨道管理表24中的经清理的轨道相对应的列表,数据管理单元120改变或删除例如紧接在之前的一列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WC 21至FSIB 12a的簇清理时,数据管理单元120根据簇清理而更新轨道管理表30的簇表指针30e、FS簇的数目31f等等。数据管理单元120还更新FS/IS管理表40的逻辑块ID 40b、逻辑块内簇位置40c等等。关于最初不存在于FS 12中的簇,数据管理单元120将列表添加至FS/IS管理表40的链接列表。根据该更新,数据管理单元120更新MS逻辑块管理表35、FS/IS逻辑块管理表42和FS/IS内簇管理表44的相关的区段。
CIB处理
当上文所解释的WCF处理结束时,逻辑NAND层管理单元120b执行CIB处理,该CIB处理包括用于将FSIB 12a中通过WCF处理而写入的数据移动至FS 12的处理、以及用于将MSIB 11a中通过WCF处理而写入的数据移动至MS 11的处理。当开始CIB处理时,如上文所解释的,很可能以链式反应的方式执行块之间的数据移动和压紧处理。全部处理所需的时间大体上根据状态而改变。在CIB处理中,基本上,首先,执行MS 11中的CIB处理(步骤S330),随后,执行FS 12中的CIB处理(步骤S340),再次执行MS 11中的CIB处理(步骤S350),执行IS 13中的CIB处理(步骤360),且最后再次执行MS 11中的CIB处理(步骤S370)。在从FS 12至MSIB 11a的清理处理、从FS 12至IS 13的清理处理或从IS 13至MSIB 11a的清理处理中,当过程中出现循环时,可能不按顺序执行处理。下面将单独地解释MS 11中的CIB处理、FS 12中的CIB处理和IS 13中的CIB处理。
MS 11中的CIB处理
首先,解释MS 11中的CIB处理(步骤S330)。当执行轨道从WC 21、FS 12和IS 13向MS 11的移动时,将轨道写入MSIB 11a中。在完成在MSIB 11a中的写入之后,如上文所解释的,更新轨道管理表30,且改变(移动)轨道排列于其中的逻辑块ID 30c、块内轨道位置30d等等。当将新轨道写入MSIB 11a中时,使从开始起就存在于MS 11或TFS 11b中的轨道无效。该无效化处理是这样实现的,即,使这样的轨道无效,所述轨道来自MS逻辑块管理表35中的其中存储旧轨道信息的逻辑块的条目。具体地,删除MS逻辑块管理表35的条目中的轨道管理指针35b的字段中的相关轨道的指针,且使有效轨道的数目减一。当通过该轨道无效化而使一个逻辑块中的所有轨道无效时,使有效标志35e无效。通过这样的无效化等等,产生MS 11的包括无效轨道的逻辑块。当重复此步骤时,逻辑块的使用效率会降低而引起可用逻辑块的不足。
当出现这种情形且分配给MS 11的逻辑块的数目超过MS 11所允许的逻辑块的数目的上限时,数据管理单元120执行压紧处理以产生空闲块FB。将该空闲块FB返回至物理NAND层管理单元120c。逻辑NAND层管理单元120b减少分配给MS 11的逻辑块的数目,且接着重新从物理NAND层管理单元120c获取可写入的空闲块FB。压紧处理是这样的处理,其用于在新逻辑块中收集作为压紧对象的逻辑块的有效簇,或者将作为压紧对象的逻辑块中的有效轨道复制至其它逻辑块,以产生返回至物理NAND层管理单元120c的空闲块FB,且改善逻辑块的使用的效率。在执行压紧的过程中,当存在WC 21、FS 12和IS 13上的有效簇时,数据管理单元120执行被动合并,该被动合并用于合并作为压紧对象的在逻辑轨道地址中所包括的所有有效簇。登记于TFS 11b中的逻辑块不包括在压紧对象中。
具体地解释从MSIB 11a至MS 11或至TFS 11b的移动以及将MSIB11a中存在满逻辑块设定为条件的压紧处理的实例。“满”逻辑块是指其中所有逻辑页已被写入且不可能进行额外记录的逻辑块。
1.参考MS逻辑块管理表35的有效标志35e,当在MS 11中存在被无效的逻辑块时,数据管理单元120将该逻辑块设定为空闲块FB。
2.数据管理单元120将MSIB 11a中的满逻辑块移动至MS 11。具体地,数据管理单元120更新上文所解释的MS结构管理表(未示出),且将逻辑块从在MSIB的管理之下转移至在MS 11的管理之下。
3.数据管理单元120判断分配给MS 11的逻辑块的数目是否超过MS11所允许的逻辑块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的MS压紧。
4.参考MS逻辑块管理表35的有效轨道的数目35c的字段等等,数据管理单元120以有效轨道的数目对不包括在TFS 11b中的逻辑块当中的具有被无效的轨道的逻辑块进行排序。
5.数据管理单元120从具有小数目的有效轨道的逻辑块收集轨道,且执行压紧。在执行压紧过程中,首先,对于逻辑块中的每一个,对轨道进行复制(一次复制2i个轨道),以执行压紧。当作为压紧对象的轨道具有在WC 21、FS 12和IS 13中的有效簇时,数据管理单元120还合并这些有效簇。
6.数据管理单元120将压紧源处的逻辑块设定为空闲块FB。
7.当执行压紧且一个逻辑块包括有效的2i个轨道时,数据管理单元120将该逻辑块移动至TFS 11b的顶部。
8.当可通过将逻辑块中的有效轨道复制至另一逻辑块而产生空闲块FB时,数据管理单元120以轨道单位将数目小于2i的有效轨道额外记录在MSIB 11a中。
9.数据管理单元120将压紧源处的逻辑块设定为空闲块FB。
10.当分配给MS 11的逻辑块的数目降低至MS 11所允许的逻辑块的数目的上限以下时,数据管理单元120结束MS压紧处理。
FS 12中的CIB处理
解释FS 12中的CIB处理(步骤S340)。当通过从WC 21至FSIB 12a的簇写入处理而在FSIB 12a中产生其中所有的逻辑页都被写入的满逻辑块时,将FSIB 12a中的逻辑块从FSIB 12a移动至FS 12。根据该移动,将旧逻辑块从由多个逻辑块配置的FIFO结构的FS 12清理。
具体地如下文所解释地实现从FSIB 12a至FS 12的清理以及从FS 12至MS 11和/或IS 13的清理。
1.参考FS/IS逻辑块管理表42的有效标志35e等等,当在FS 12中存在被无效的逻辑块时,数据管理单元120将该逻辑块设定为空闲块FB。
2.数据管理单元120将FSIB 12a中的满逻辑块清理至FS 12。具体地,数据管理单元120更新FS/IS结构管理表(未示出),且将该逻辑块从在FSIB 12a的管理之下转移至在FS 12的管理之下。
3.数据管理单元120判断分配给FS 12的逻辑块的数目是否超过FS12所允许的逻辑块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的清理。
4.数据管理单元120判定作为清理对象的最旧逻辑块中的簇当中应直接被复制至MS 11而不移动至IS 13的簇(实际上,因为MS 11的管理单位为轨道,所以以轨道单位判定所述簇)。
(A)数据管理单元120按照从逻辑页的顶部开始的顺序扫描作为清理对象的最旧逻辑块中的有效簇。
(B)数据管理单元120参考轨道管理表30的FS簇的数目30f的字段,寻找在FS中该簇所属于的轨道具有多少个有效簇。
(C)当该轨道中的有效簇的数目等于或大于预定阈值(例如,2k-1的50%)时,数据管理单元120将该轨道设定为清理至MS 11的候选者。
5.数据管理单元120将应被清理至MS 11的轨道写入MSIB 11a中。
6.当在最旧逻辑块中遗留有将要以轨道单位进行清理的有效簇时,数据管理单元120进一步执行至MSIB 11a的清理。
7.当即使在上文的处理2至处理4之后,作为清理对象的逻辑块中仍存在有效簇时,数据管理单元120将最旧逻辑块移动至IS 13。
当执行从FS 12至MSIB 11a的清理时,紧接在清理之后,数据管理单元120执行MS 11中的CIB处理(步骤S350)。
IS 13中的CIB处理
解释IS 13中的CIB处理(步骤S360)。根据从FS 12至IS 13的移动而将逻辑块添加至IS 13。然而,根据逻辑块的添加,逻辑块的数目超过可在多个逻辑块所形成的IS 13中进行管理的逻辑块的数目的上限。当逻辑块的数目超过上限时,在IS 13中,数据管理单元120执行一个到多个逻辑块至MS 11的清理,并执行IS压紧。具体地,数据管理单元120执行下文所解释的过程。
1.数据管理单元120以轨道中的有效簇的数目×有效簇系数对IS 13中所包括的轨道进行排序,收集具有大乘积值的2i+1个轨道(对于两个逻辑块),且将这些轨道清理至MSIB 11a。
2.当具有最小数目的有效簇的2i+1个逻辑块的有效簇的总数目为例如等于或大于作为预定设定值的2k个(对于一个逻辑块)时,数据管理单元120重复上文所解释的步骤。
3.在执行清理之后,数据管理单元120按照从具有最小数目的有效簇的逻辑块开始的顺序收集2k个簇,且执行IS 13中的压紧。
4.数据管理单元120将压紧源处的逻辑块当中不包括有效簇的逻辑块释放作为空闲块FB。
当执行从IS 13至MSIB 11a的清理时,紧接在清理之后,数据管理单元120执行MS 11中的CIB处理(步骤S370)。
图20为部件当中的数据的流动中的输入与输出的组合的图,且指示作为触发器引起数据的流动的原因。基本上,根据从WC 21的簇清理而将数据写入FS 12中。然而,当对于从WC 21至FS 12的清理偶然有必要进行簇内扇区填充(簇填充)时,复制来自FS 12、IS 13和MS 11的数据。在WC 21中,通过使用WC簇管理表25的标记中的扇区位置位映像25b而识别相关逻辑簇地址中存在还是不存在2(l-k)个扇区,有可能以扇区(512B)为单位执行管理。另一方面,FS 12和IS 13的管理单位为簇,且MS 11的管理单位为轨道,其中FS 12和IS 13为NAND存储器10中的功能部件。以这种方式,NAND存储器10中的管理单位比扇区大。因此,在从WC 21将数据写入NAND存储器10中的过程中,当在NAND存储器10中存在其逻辑簇地址与将要写入的数据的逻辑簇地址相同的数据时,有必要在进行这样的合并之后将数据写入NAND存储器10中,所述合并是将将要从WC 21写入NAND存储器10中的簇中的扇区与NAND存储器10中存在的相同逻辑簇地址中的扇区进行合并。
该处理是图20中所示的簇内扇区填充处理(簇填充)和轨道内扇区填充(轨道填充)。除非执行这些种类的处理,否则不能读出正确数据。因此,当数据从WC 21清理至FSIB 12a或MSIB 11a时,参考WC簇管理表25且参考与将要清理的簇相对应的标记中的扇区位置位映像25b。当并非所有的扇区位置位映像25b都为“1”时,执行簇内扇区填充或轨道内扇区填充,用于与NAND存储器10中所包括的相同簇或相同轨道中的扇区合并。DRAM 20的工作区被用于该处理。在DRAM 20的工作区上合并在逻辑簇地址或逻辑轨道地址中所包括的多个扇区,且产生将要清理的数据图像(簇图像或轨道图像)。将所产生的数据图像从DRAM 20的工作区写入MSIB 11a中或写入FSIB 12a中。
在IS 13中,基本上,根据从FS 12的块清理(移动)而写入数据,或者根据IS中的压紧而写入数据。在MS 11中,可从所有区段写入数据。当写入数据时,在MS 11中,因为仅可以以轨道为单位写入数据,所以可引起由MS本身的数据引起的填充。当以轨道为单位写入数据时,还根据被动合并而写入其它逻辑块中的片段数据。此外,在MS 11中,还根据MS压紧而写入数据。在被动合并中,当执行从WC 21、FS 12或IS 13这三个部件之一至MS 11的轨道清理或逻辑块清理(对于2i个轨道的清理)时,在DRAM 20的工作区中收集一个部件中的作为清理对象的轨道(或逻辑块)中所包括的两个部件中的有效簇以及MS 11中的有效簇,并将这些有效簇从DRAM 20的工作区写入MSIB 11a中作为用于一个轨道的数据。
随后,更为详细地解释该实施例的要点部分。如上文所解释的,在32-位双速模式中,并行地致动四个通道(ch0、ch1、ch2和ch3),且通过使用NAND存储器芯片的双速模式来执行擦除、写入和读出。如图21中所示,将四个并行操作元件10a至10d中的NAND存储器芯片中的每一个划分为,例如,平面0和平面1的两个分区。划分的数目不限于二。平面0和平面1包括彼此独立的周边电路(例如,行解码器、列解码器、页缓冲器和数据高速缓冲存储器),并可基于从NAND控制器112输入的命令而同时执行擦除、写入和读出。在NAND存储器芯片的双速模式中,通过并行地控制平面0和平面1来实现高速写入。
物理块大小为512kB。因此,在32-位双速模式中,根据该四个通道的并行操作和对该两个平面的同时存取,使物理块的擦除单位增加至512kB×4×2=4MB。因此,在32-位双速模式中,八个平面并行地操作。
如图22中所示,除了逻辑至物理转译表50之外,图8中所示的配置数据管理单元120的物理NAND层管理单元120c包括:坏块管理表(BB管理表)200、保留块管理表(RB块管理表)210、空闲块管理表(FB管理表)220、现用块(active block)管理表(AB管理表)230以及8-位与32-位对应表235。物理NAND层管理单元120c使用这些管理表执行对NAND存储器10的物理NAND层的管理。
图23是逻辑至物理转译表50的另一实例的图。在图23中所示的逻辑至物理转译表50中,指示与逻辑块ID 50a对应的逻辑块何时被擦除的时间的擦除时间50e的字段被添加至图17中所示的逻辑至物理表50。关于擦除时间50e,例如,仅须使用通过测量对NAND存储器芯片中的逻辑块所应用的擦除操作的次数而获得的值或者NAND控制器112的激励时间。擦除时间50e用于稍后所解释的FB管理表220中的空闲块FB管理。
BB管理表200是用于以物理块(512kB)单位管理坏块BB的表。如图24所示,BB管理表200以二维阵列格式形成,其具有例如针对每4(通道)×2(平面/通道)个通道内平面的关于物理块的(物理块的数目/平面)×(NAND存储器芯片的数目/一个并行操作元件)的信息。在BB管理表200的每一条目中,存储每一物理块的物理块ID 200a。
在该实施例的情况下,一个NAND存储器芯片具有2GB的大小。将物理块ID“0”至“2047”分配给第一芯片的平面0。将物理块ID“2048”至“4095”分配给第一芯片的平面1。当将使用期间所产生的坏块BB登记于BB管理表200中时,物理NAND层管理单元120c将坏块BB添加在紧接在与该坏块BB对应的通道内平面ID(ID#0至ID#7)的最后有效条目之后,而不对坏块BB进行排序。
例如,将这样的物理块登记为坏块BB,该物理块为,当为空闲块FB分配使用时,对该物理块的擦除操作还未正常结束,或者当将数据写入用作FS 12、IS 13或MS 11的现用块AB中时,对该物理块的写入操作还未正常结束。
RB管理表210是用于管理以八个物理块单位(512kB)形成4MB逻辑块时剩余的物理块(保留块RB)的表。RB管理表210以与BB管理表200的格式相同的格式进行管理。通过针对对应于块的通道内平面ID中的每一个以FIFO来管理块,择优地以从最早登记的保留块RB开始的顺序使用保留块RB。
FB管理表220是用于以4MB逻辑块为单位管理当前未被分配使用(例如,用于FS 12、IS 13或MS 11)的空闲块FB的表,且是以空闲块FB的产生的顺序排序的FIFO格式的列表。逻辑块ID存储于每一条目中。将根据压紧处理等等而返回至FB管理表220的空闲块FB添加至列表的尾端。通过返回列表的顶块来执行空闲块FB分配。
如图25中所示,FB管理表以返回FIFO列表220a和分配列表220b的两级来配置。返回FIFO列表220a以擦除时间50e的顺序来对准。在分配列表220b中,具有较小的擦除次数50c的逻辑块定位为较接近于列表的顶部。这是用于防止以短时间间隔重复擦除操作的配置。将返回至FB管理表220的不必要的逻辑块添加至返回FIFO列表220a的尾端,并将其存储于该尾端处历时一固定周期。
根据逻辑块的擦除次数50c而将从返回FIFO列表220a推出的逻辑块插入分配列表220b中的某处。当从逻辑NAND层管理单元120b请求空闲块FB的分配时,逻辑NAND层管理单元120c从分配列表220b的顶部提取空闲块FB,并分配该空闲块FB。
利用FB管理表220,可以均等地分布将要擦除的逻辑块(磨损均化处理),使得所有逻辑块的擦除次数与擦除间隔大体均等。已知:除擦除的次数之外,NAND型闪速存储器的寿命还取决于擦除处理的间隔,在间隔较长时,保持性能较好且寿命较长。这还指示出:当擦除间隔短时,保持性能差且寿命受到损害。还已知:即使以短间隔执行写入,除非执行适当的长期擦除,否则保持性能得以恢复。
AB管理表230是从空闲块FB分配的被分配使用(例如,用于FS 12、IS 13或MS 11)的逻辑块(现用块AB)的列表。与在FB管理表220中一样,在AB管理表230中,在每一条目中存储逻辑块ID。具有较早登记顺序的逻辑块被定位为较接近于顶部。AB管理表用于例如刷新处理。
刷新处理是这样的技术,其用于防止由于被写入的数据的老化劣化和读取干扰(其为读取处理中所涉及的数据破裂)的影响而发生超过SSD 110的错误校正能力的错误。具体地,例如,在超过错误校正能力的错误发生之前,执行用于读出所存储的数据并执行错误校正的处理,接着执行将数据重写于NAND型闪速存储器中的处理。例如,可将具有大的读出次数50d的块、AB管理表230的顶块等等设定为刷新处理的监视对象。
8-位32-位对应表235是这样的表,其用于将32-位双速模式中的4MB逻辑块划分成8-位正常模式中的八个逻辑块且管理这些物理块。具体地,8-位与32-位对应表235是表示4MB逻辑块的列表与逻辑块中所包括的使用中或已使用的512KB物理块之间的关系的位映像。
物理NAND层管理单元120c执行下文所解释的逻辑块/物理块管理。首先,参考图26来解释逻辑至物理转译表50中的逻辑块ID与八个物理块ID之间的对应关系。
如上文所解释的,与作为逻辑至物理转译表50的索引的逻辑块ID 50a相关联的八个物理块ID被登记在逻辑至物理转译表50的物理块ID 50b的字段中。图26是NAND存储器10的逻辑块ID与物理块ID之间的对应关系的图。一个区段表示一个物理块。将物理块ID分配给每一个物理块。逻辑块L0(现用块AB)包括,例如,在第一列第三行、第二列第二行、第三列第二行、第四列第二行、第五列第二行、第六列第二行、第七列第二行和第八列第三行中的八个物理块。由虚线BL1环绕的逻辑块L1(现用块AB)包括,例如,在第一列第四行、第二列第三行、第三列第三行、第四列第三行、第五列第三行、第六列第三行、第七列第三行和第八列第四行中的八个物理块。
此后,例如,假定:当为逻辑块L1分配使用(在这种情况下,逻辑块L1为空闲块FB)且执行擦除操作时,或当将数据写入用作FS 12、IS 13或MS 11的逻辑块L1中(在这种情况下,逻辑块L1为现用块AB,如图27所示)且执行写入操作时,对于逻辑块L1的第四列第三行中的物理块的擦除或写入操作未正常结束,因此,将该物理块作为无法用作存储区的坏块BB登记于BB管理表200中。
物理NAND层管理单元120c检测该登记,并从RB管理表210中选择与登记为坏块BB的物理块的通道和平面相同的通道和平面中的保留块RB作为用于坏块BB的替换候选者。
在图26的情况下,选择与坏块BB邻近的第四列第四行中的物理块(保留块RB)作为用于第四列第三行中的坏块BB的替换候选者。
物理NAND层管理单元120c遍及逻辑至物理转译表50的与逻辑块L1对应的逻辑块ID 50a的条目进行搜寻,且将该条目中的物理块ID 50b的字段中所包括的八个物理块ID当中与第四列第三行对应的坏块BB的物理块ID改变为与从RB管理表210中选择的第四列第四行中的保留块RB对应的物理地址ID。
因此,此后,逻辑块L1包括由交替长虚线与短虚线环绕的在第一列第四行、第二列第三行、第三列第三行、第四列第四行、第五列第三行、第六列第三行、第七列第三行和第八列第四行中的八个新物理块的组合。假定逻辑块L1的逻辑块ID为“L1”。
此后,物理NAND层管理单元120c锁定来自FB管理表220的新空闲块FB(图27中未示出)。假定被锁定的空闲块FB的逻辑块ID为“L2”。物理NAND层管理单元120c使用逻辑至物理转译表50来执行逻辑块ID的替换。
具体地,物理NAND层管理单元120c使与具有逻辑块ID“L2”的新空闲块FB相关联的八个物理块与逻辑块ID“L1”相关联。同时,物理NAND层管理单元120c使被交替长虚线与短虚线环绕的第一列第四行、第二列第三行、第三列第三行、第四列第四行、第五列第三行、第六列第三行、第七列第三行和第八列第四行中的八个物理块与逻辑块ID“L2”相关联。还根据物理块ID的更新而替换擦除次数50c、读出次数50d和擦除时间50e。此后,物理NAND层管理单元120c将逻辑块ID“L2”登记于FB管理表220中。逻辑NAND层管理单元120b重新在具有相同逻辑块ID“L1”的新锁定的逻辑块中执行擦除或写入操作。
另一方面,当不存在可替换坏块BB的保留块RB时,物理NAND层管理单元120c执行下文所解释的处理。例如,假定:将第四列第三行中的物理块作为坏块BB登记于BB管理表200中,并且在与坏块BB相同的通道和相同的平面中不存在保留块RB。在这种情况下,首先,物理NAND层管理单元120c将逻辑块L1中除第四列第三行之外的第一列第四行、第二列第三行、第三列第三行、第五列第三行、第六列第三行、第七列第三行和第八列第四行中的七个物理块登记于RB管理表210中。此后,以与上文所解释的方式相同的方式,物理NAND层管理单元120c锁定来自FB管理表220的新空闲块FB,并如上文所解释地执行逻辑块ID的替换,接着将从FB管理表220获取的逻辑块ID设定为不可用。
以这种方式,即使当产生坏块BB时,物理NAND层管理单元120c也执行逻辑块ID的替换。因此,用于逻辑NAND层管理单元120b中的逻辑块ID在产生坏块BB之前和之后不发生改变。因此,即使在多个物理块中的至少一个被登记为坏块时,LBA逻辑地址与逻辑块之间的对应关系也不改变。可用防止逻辑NAND层管理单元120b中的管理表的重写的开销。
解释32-位双速模式中的擦除处理。每当以逻辑块为单位擦除NAND存储器10中的数据时,物理NAND层管理单元120c将与图23中所示的逻辑至物理转译表50的已擦除的逻辑块对应的逻辑块ID中的擦除次数50c的字段累加一,且将擦除时间50e更新为最新的数据。
如上文所解释的,擦除次数50c和擦除时间50e用于磨损均化,以均等地分布将要擦除的逻辑块,使得所有逻辑块的擦除次数与擦除间隔大体均衡。
例如,在该实施例中,通过使用擦除次数50c和擦除时间50e而执行下文所解释的磨损均化(静态磨损均化)处理。在FB管理表220中管理从逻辑NAND层管理单元120b返回至物理NAND层管理单元120c的空闲块FB。将返回至FB管理表220的逻辑块添加至图25中所示的返回FIFO列表220a的尾端,且将其存储于其中历时一固定周期。
根据逻辑块的擦除次数而将从返回FIFO列表220a推出的逻辑块插入分配列表220b中的某处。当从逻辑NAND层管理单元120b请求空闲块FB的分配时,物理NAND层管理单元120c从分配列表220b的顶部提取空闲块FB且分配该空闲块FB。以这种方式,使各个逻辑块的擦除次数与擦除间隔平均化。
在图23中所示的逻辑至物理转译表50中,以逻辑块为单位来管理擦除的次数50c和擦除时间50e,其中并行驱动的多个物理块(在这种情况下,八个物理块)被分配给逻辑块单位。如上文所解释的,当在逻辑块中出现以物理块为单位管理的坏块BB时,利用同一通道和同一平面中的另一物理块来替换坏块BB(坏块BB与该另一物理块为相同的并行元件)以形成逻辑块。
在这种情况下,在逻辑至物理转译表50中发生与相关逻辑块ID对应的物理块ID 50b的字段的重写。然而,在这点上,不更新擦除次数50c和擦除时间50e,并维持其先前值。这是因为,由于在逻辑块当中通过磨损均化处理而将擦除次数与擦除间隔平均化到某一程度,所以将优先权给予增大管理单位并减小管理表大小,而不是实际上以物理块为单位来管理被替换的物理块的擦除次数且增大管理表大小。
以这种方式,在该实施例中,逻辑至物理转译表50以逻辑块单位(并行驱动的多个物理块被分配给该逻辑块单位)管理诸如擦除次数50c和擦除时间50e的擦除信息。因此,可以减小管理表大小,并有助于减少管理表创建所需的存储器量。
另一方面,即使当例如与逻辑块相关联的多个物理块当中的一个物理块变为坏块BB时,也可以通过仅替换该变为坏块BB的物理块而有效地使用存储区,而不阻止使用包括该坏块BB的整个逻辑块。
此外,即使当出现坏块BB时,逻辑NAND层管理单元120b也总是可以接收与空闲块FB相同大小的逻辑块。因此,可以减少CIB处理中的处理负载。
在用于独立地驱动并行操作元件10a至10d中的一个平面的8-位正常模式中,该模式的擦除单位为一个物理块(512kB)。当写入大小很小时,例如,当另外写入用于记录管理表的更新后内容的日志时,使用8-位正常模式。当在这种8-位正常模式中使用的空闲块FB,即,512kB单位的物理块为必要的时,物理NAND层管理单元120c使用8-位与32-位对应表235来选择一个物理块,且使用选定的物理块来执行8-位正常模式。图26指示出指派被虚线BL3环绕的逻辑块L3,该逻辑块L3包括被粗线环绕的一个物理块(该物理块不久用于逻辑NAND层管理单元120b中)。
在8-位正常模式中,首先,物理NAND层管理单元120c使用选定的一个物理块。当这一个物理块由于日志的额外写入而填满数据时,物理NAND层管理单元120c基于8-位与32-位对应表235,使用八个物理块当中的另一物理块来更新该8-位与32-位对应表235。此后,重复该处理。
以这种方式,即使在8-位正常模式的情况下,也可以通过分配包括八个物理块的逻辑块且将这些物理块中的每一个均等地使用相同次数,而使32-位双速模式中分配给逻辑块的各个物理块当中的耐久寿命均衡。仅用于8-位正常模式中的块通过8-位与32-位对应表235而以物理块单位来管理。因此,与以物理块单位管理所有块相比,可以减小表的大小,且有助于减少管理表创建所需的存储器量。
此外,在8-位正常模式的情况下,物理NAND层管理单元120c可分配在32-位正常模式中包括四个物理块的逻辑块,并且将这些物理块中的每一个均等地使用相同次数。可以使32-位正常模式中分配给逻辑块的各个物理块当中的耐久寿命均衡。
本发明不限于上文所描述的实施例。因此,可在不偏离本发明的范围的情况下进行各种修改。
此外,上文所描述的实施例包括各种具有创造性步骤的组成部分。即,可通过分布或整合任意所揭示的组成部分而对本发明进行各种修改。
例如,可通过从这些实施例中所揭示的所有组成部分当中省略任意组成部分而进行本发明的各种修改,只要可解决本发明要解决的问题且可获得将要通过本发明获得的优点即可。
此外,在上述实施例中解释:簇大小乘以等于或大于二的正整数等于逻辑页大小。然而,本发明并不因此而受限制。
例如,簇大小可与逻辑页大小相同,或可为通过组合多个逻辑页而使逻辑页大小乘以等于或大于二的正整数所获得的大小。
此外,簇大小可与用于在诸如个人计算机的主机设备1上运行的OS(操作系统)的文件系统的管理单位相同。
此外,在上述实施例中解释:轨道大小乘以等于或大于二的正整数等于逻辑块大小。然而,本发明并不因此而受限制。
例如,轨道大小可与逻辑块大小相同,或可为通过组合多个逻辑块而使逻辑块大小乘以等于或大于二的正整数所获得的大小。
如果轨道大小等于或大于逻辑块大小,则MS压紧处理不是必要的。因此,可省略TFS 11b。
[第二实施例]
图27示出个人计算机的实例的透视图。个人计算机1200包括主体1201和显示单元1202。显示单元1202包括显示器外壳1203和容纳于显示器外壳1203中的显示装置1204。
主体1201包括底盘1205、键盘1206以及作为指向装置的触摸板1207。底盘1205包括主电路板、ODD单元(光盘装置)、卡槽以及第一实施例中所描述的SSD 1100。
卡槽设置为邻近底盘1205的周边壁。周边壁具有面向卡槽的开口1208。用户可从底盘1205的外部经由开口1208将额外装置插入卡槽中和将额外装置从卡槽移除。
SSD 1100可以以安装于个人计算机1200中的状态来使用以代替现有技术的HDD,或可以以插入个人计算机1200的卡槽中的状态来用作额外装置。
图28示出个人计算机中的系统架构的实例的图。个人计算机1200包括CPU 1301、北桥1302、主存储器1303、视频控制器1304、音频控制器1305、南桥1309、BIOS-ROM 1310、第一实施例中所描述的SSD 1100、ODD单元1311、嵌入式控制器/键盘控制器(EC/KBC)IC 1312,以及网络控制器1313。
CPU 1301是用于控制个人计算机1200的操作的处理器,且执行从SSD 1100加载至主存储器1303的操作系统(OS)。当ODD单元1311执行对光盘的读取处理和写入处理之一时,CPU 1301执行这些处理。CPU1301执行存储在BIOS-ROM 1310中的系统BIOS(基本输入输出系统)。系统BIOS是用于控制个人计算机1200的硬件的程序。
北桥1302是将CPU 1301的局部总线连接至南桥1309的桥接装置。北桥1302具有用于控制对主存储器1303的存取的存储器控制器。北桥1302具有通过AGP(加速图形端口)总线执行视频控制器1304与音频控制器1305之间的通信的功能。
主存储器1303暂时存储程序或数据,且用作CPU 1301的工作区。主存储器1303包括例如DRAM。视频控制器1304是用于控制显示单元的视频再现控制器,所述显示单元用于便携式计算机1200的显示监视器(LCD)1316。音频控制器1305是用于控制便携式计算机1200的扬声器的音频再现控制器。
南桥1309控制连接至LPC(低引脚计数)总线的装置,并控制连接至PCI(周边部件互连)总线的装置。南桥1309通过ATA接口控制作为存储软件和数据的存储器装置的SSD 1100。
个人计算机1200以扇区单位执行对SSD 1100的存取。例如,通过ATA接口输入写入命令、读取命令和高速缓冲存储器闪存命令(cache flashcommand)。南桥1309具有控制BIOS-ROM 1310和ODD单元1311的功能。
EC/KBC 1312是这样的一个芯片微处理器,其集成在用于控制电源的嵌入式控制器以及用于控制键盘(KB)1206和触摸板1207的键盘控制器上。EC/KBC 1312具有这样的功能,即,基于用户对电源按钮的操作而设定个人计算机1200的电源的接通/断开。网络控制器1313是例如执行至网络(例如,因特网)的通信的通信装置。
尽管上述实施例中的存储器系统作为SSD而被包含,但其也可以作为例如通过SDTM卡为代表的存储卡而被包含。此外,存储器系统不仅可应用于个人计算机,而且可应用于诸如蜂窝式电话、PDA(个人数字助理)、数字静态相机、数字视频相机以及电视的各种电子装置。
本领域技术人员将容易想到其他优点和修改。因此,本发明在其更宽泛的方面不限于本文中所示并描述的具体细节和代表性实施例。因此,可在不偏离由所附权利要求及其等价物所限定的总发明构思的精神或范围的情况下进行各种修改。
Claims (18)
1.一种存储器系统,包括:
非易失性半导体存储器,其包括多个并行操作元件,所述多个并行操作元件分别具有多个物理块,所述多个物理块中的每一个为数据擦除的单位;以及
控制器,其可以并行驱动所述并行操作元件,并具有擦除次数管理单元,所述擦除次数管理单元以逻辑块为单位管理擦除次数,所述逻辑块包括并行驱动的所述多个物理块。
2.根据权利要求1的存储器系统,其中所述控制器还包括坏块管理单元,当在逻辑块中出现以物理块为单位管理的坏块时,所述坏块管理单元执行物理块替换处理,所述物理块替换处理用于用相同并行操作元件中的另一物理块替换所述坏块。
3.根据权利要求2的存储器系统,其中在执行所述物理块替换处理时,所述坏块管理单元从以物理块为单位管理的保留块中获取所述另一物理块。
4.根据权利要求3的存储器系统,其中所述坏块管理单元在执行所述物理块替换处理之后获取空闲块作为未分配的逻辑块,且执行所获取的空闲块的逻辑块地址与这样的逻辑块的逻辑块地址的替换,在该逻辑块中,物理块中的至少一个已经受所述物理块替换处理。
5.根据权利要求3的存储器系统,其中当所述相同并行操作元件中的应该用来替换所述坏块的另一物理块不存在时,所述坏块管理单元在执行所述物理块替换处理时将除所述坏块之外的一个或多个物理块登记为所述保留块。
6.根据权利要求4的存储器系统,其中当所述相同并行操作元件中的应该用来替换所述坏块的另一物理块不存在时,所述坏块管理单元在执行所述物理块替换处理时将除所述坏块之外的一个或多个物理块登记为所述保留块。
7.根据权利要求6的存储器系统,其中所述坏块管理单元在将除所述坏块之外的一个或多个物理块登记为所述保留块之后获取空闲块,执行所获取的空闲块的逻辑块地址与这样的逻辑块的逻辑块地址的替换,并禁用所述空闲块的逻辑块地址,在该逻辑块中,除所述坏块之外的物理块被登记为所述保留块。
8.根据权利要求2的存储器系统,其中当通过所述坏块管理单元执行所述物理块替换处理时,所述擦除次数管理单元维持以逻辑块为单位管理的所述擦除次数。
9.根据权利要求1的存储器系统,其中所述控制器包括逻辑至物理转译表,所述逻辑至物理转译表用于以逻辑块为单位管理多个物理块地址与逻辑块地址之间的对应关系以及所述擦除次数,其中所述多个物理块地址对应于多个物理块,所述逻辑块地址对应于逻辑块。
10.根据权利要求9的存储器系统,其中所述逻辑至物理转译表还以逻辑块为单位管理擦除时间。
11.根据权利要求2的存储器系统,其中所述坏块管理单元包括坏块管理表,所述坏块管理表用于以并行操作元件为单位管理这样的物理块的物理块地址,该物理块被分配给所述坏块。
12.根据权利要求3的存储器系统,其中所述控制器包括保留块管理表,所述保留块管理表用于以并行操作元件为单位管理这样的物理块的物理块地址,该物理块被分配给所述保留块。
13.根据权利要求4的存储器系统,其中所述控制器包括空闲块管理表,所述空闲块管理表用于管理这样的逻辑块的逻辑块地址,该逻辑块被分配给所述空闲块。
14.根据权利要求13的存储器系统,其中所述控制器还包括逻辑至物理转译表,所述逻辑至物理转译表用于以逻辑块为单位管理多个物理块地址与逻辑块地址之间的对应关系、所述擦除次数以及擦除时间,其中所述多个物理块地址对应于多个物理块,所述逻辑块地址对应于逻辑块;以及
所述空闲块管理表包括:第一列表,其用于以所述逻辑至物理转译表所管理的从新到旧排列的擦除时间的顺序来管理这样的逻辑块的逻辑块地址,该逻辑块被分配给所述空闲块;以及第二列表,其用于以所述逻辑至物理转译表所管理的从大到小排列的擦除次数的顺序来管理从所述第一列表溢出的逻辑块的逻辑块地址,并且
所述控制器从所述第二列表获取所述空闲块。
15.根据权利要求1的存储器系统,其中所述控制器可独立地驱动所述并行操作元件中的至少一个,且在执行所述独立驱动时,对分配给所述逻辑块的多个物理块中的每一个使用相同的次数。
16.根据权利要求1的存储器系统,其中所述并行操作元件包括连接所述非易失性半导体存储器和所述控制器的多个通道。
17.根据权利要求1的存储器系统,其中所述并行操作元件包括连接所述非易失性半导体存储器和所述控制器的多个通道、以及多个非易失性半导体存储器芯片,每个非易失性半导体存储器芯片被划分为多个分区。
18.根据权利要求1的存储器系统,其中所述非易失性半导体存储器为NAND闪速存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008051470A JP5010505B2 (ja) | 2008-03-01 | 2008-03-01 | メモリシステム |
JP051470/2008 | 2008-03-01 | ||
PCT/JP2009/052595 WO2009110302A1 (en) | 2008-03-01 | 2009-02-10 | Memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101689140A CN101689140A (zh) | 2010-03-31 |
CN101689140B true CN101689140B (zh) | 2012-04-18 |
Family
ID=41055863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980000136XA Expired - Fee Related CN101689140B (zh) | 2008-03-01 | 2009-02-10 | 存储器系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8447914B2 (zh) |
EP (1) | EP2250565A4 (zh) |
JP (1) | JP5010505B2 (zh) |
KR (1) | KR101079890B1 (zh) |
CN (1) | CN101689140B (zh) |
TW (1) | TWI388988B (zh) |
WO (1) | WO2009110302A1 (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2225643B1 (en) | 2007-12-28 | 2020-05-06 | Toshiba Memory Corporation | Semiconductor storage device |
JP4461170B2 (ja) | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
JP2009205555A (ja) * | 2008-02-28 | 2009-09-10 | Toshiba Corp | メモリシステム |
JP5032371B2 (ja) | 2008-03-01 | 2012-09-26 | 株式会社東芝 | メモリシステム |
JP4653817B2 (ja) * | 2008-03-01 | 2011-03-16 | 株式会社東芝 | メモリシステム |
JP4439569B2 (ja) * | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
JP5317690B2 (ja) * | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
JP5221332B2 (ja) * | 2008-12-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
KR101269366B1 (ko) | 2009-02-12 | 2013-05-29 | 가부시끼가이샤 도시바 | 메모리 시스템 및 메모리 시스템의 제어 방법 |
TW201037711A (en) * | 2009-04-13 | 2010-10-16 | Jmicron Technology Corp | Data access method used in multi-channel flash memory system and data access apparatus thereof |
US8375162B2 (en) * | 2009-06-03 | 2013-02-12 | Ocz Technology Group Inc. | Method and apparatus for reducing write cycles in NAND-based flash memory devices |
JP2011070346A (ja) * | 2009-09-25 | 2011-04-07 | Toshiba Corp | メモリシステム |
JP4987997B2 (ja) * | 2010-02-26 | 2012-08-01 | 株式会社東芝 | メモリシステム |
JP5404483B2 (ja) * | 2010-03-17 | 2014-01-29 | 株式会社東芝 | メモリシステム |
JP5593254B2 (ja) * | 2010-05-12 | 2014-09-17 | パナソニック株式会社 | 半導体メモリ装置及び半導体メモリシステム |
JP2012123499A (ja) | 2010-12-07 | 2012-06-28 | Toshiba Corp | メモリシステム |
JP2012248109A (ja) | 2011-05-30 | 2012-12-13 | Toshiba Corp | マルチチャネルを有するメモリ装置及び同装置におけるコンパクションのためのリードコマンド群生成方法 |
US8924636B2 (en) | 2012-02-23 | 2014-12-30 | Kabushiki Kaisha Toshiba | Management information generating method, logical block constructing method, and semiconductor memory device |
US9251055B2 (en) | 2012-02-23 | 2016-02-02 | Kabushiki Kaisha Toshiba | Memory system and control method of memory system |
JP5813589B2 (ja) * | 2012-07-13 | 2015-11-17 | 株式会社東芝 | メモリシステムおよびその制御方法 |
US9734911B2 (en) * | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for asynchronous die operations in a non-volatile memory |
US9734050B2 (en) | 2012-12-31 | 2017-08-15 | Sandisk Technologies Llc | Method and system for managing background operations in a multi-layer memory |
US10445229B1 (en) * | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
CN104021816B (zh) * | 2013-03-01 | 2017-03-29 | 安凯(广州)微电子技术有限公司 | 一种测试nftl的方法及系统 |
CN104424103B (zh) * | 2013-08-21 | 2018-05-29 | 光宝科技股份有限公司 | 固态储存装置中高速缓存的管理方法 |
KR102225989B1 (ko) | 2014-03-04 | 2021-03-10 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
US9483411B2 (en) | 2014-03-05 | 2016-11-01 | Kabushiki Kaisha Toshiba | Memory system which transfers management information between first and second memories in a burst mode before a read process is performed on a third memory |
KR102285462B1 (ko) * | 2014-03-26 | 2021-08-05 | 삼성전자주식회사 | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법 |
KR101963629B1 (ko) * | 2016-07-07 | 2019-03-29 | 고려대학교 산학협력단 | 메모리 관리 시스템 및 그 방법 |
JP2018160189A (ja) * | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステム |
KR102492729B1 (ko) | 2017-12-13 | 2023-01-27 | 마이크론 테크놀로지, 인크. | 가변 폭 수퍼 블록 어드레싱 |
JP7109949B2 (ja) * | 2018-03-23 | 2022-08-01 | キオクシア株式会社 | メモリシステム及びメモリシステムの制御方法 |
JP7077151B2 (ja) * | 2018-06-06 | 2022-05-30 | キオクシア株式会社 | メモリシステム |
KR102533207B1 (ko) * | 2018-08-30 | 2023-05-17 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
KR20200085513A (ko) * | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
CN113485948B (zh) * | 2021-06-29 | 2023-11-14 | 成都忆芯科技有限公司 | Nvm坏块管理方法与控制部件 |
CN113485641B (zh) * | 2021-06-29 | 2024-04-16 | 成都忆芯科技有限公司 | 处理io命令的方法及其控制部件 |
US20230044942A1 (en) * | 2021-08-03 | 2023-02-09 | Kioxia Corporation | Conditional update, delayed lookup |
US11467970B1 (en) | 2021-08-03 | 2022-10-11 | Kioxia Corporation | Metadata management in non-volatile memory devices using in-memory journal |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR970008188B1 (ko) | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
JP3976839B2 (ja) | 1996-07-09 | 2007-09-19 | 株式会社ルネサステクノロジ | 不揮発性メモリシステムおよび不揮発性半導体メモリ |
US6000006A (en) | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
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 |
US7020739B2 (en) * | 2000-12-06 | 2006-03-28 | Tdk Corporation | Memory controller, flash memory system having memory controller and method for controlling flash memory device |
JP4280055B2 (ja) * | 2001-11-28 | 2009-06-17 | 株式会社Access | メモリ制御方法および装置 |
WO2004040586A1 (en) | 2002-10-28 | 2004-05-13 | Sandisk Corporation | Automated wear leveling in non-volatile storage systems |
US20050144516A1 (en) | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
US7441067B2 (en) | 2004-11-15 | 2008-10-21 | Sandisk Corporation | Cyclic flash memory wear leveling |
TW200636471A (en) * | 2005-04-01 | 2006-10-16 | Mediatek Inc | Method of parallel programmable memory and the system thereof |
US8055833B2 (en) * | 2006-10-05 | 2011-11-08 | Google Inc. | System and method for increasing capacity, performance, and flexibility of flash storage |
US20070088905A1 (en) * | 2005-10-17 | 2007-04-19 | Simpletech, Inc. | System and method for purging a flash storage device |
WO2007086214A1 (ja) | 2006-01-24 | 2007-08-02 | Advantest Corporation | 試験装置および選択装置 |
US7640389B2 (en) * | 2006-02-28 | 2009-12-29 | Freescale Semiconductor, Inc. | Non-volatile memory having a multiple block erase mode and method therefor |
JP4863749B2 (ja) | 2006-03-29 | 2012-01-25 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム |
KR101185617B1 (ko) | 2006-04-04 | 2012-09-24 | 삼성전자주식회사 | 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법 |
JP2007334413A (ja) * | 2006-06-12 | 2007-12-27 | Sony Corp | 記憶装置 |
CN100530070C (zh) * | 2006-11-24 | 2009-08-19 | 骆建军 | 基于flash的硬盘 |
KR100857761B1 (ko) * | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
US8122179B2 (en) * | 2007-12-14 | 2012-02-21 | Silicon Motion, Inc. | Memory apparatus and method of evenly using the blocks of a flash memory |
US7917689B2 (en) * | 2007-12-28 | 2011-03-29 | Intel Corporation | Methods and apparatuses for nonvolatile memory wear leveling |
-
2008
- 2008-03-01 JP JP2008051470A patent/JP5010505B2/ja active Active
-
2009
- 2009-02-10 EP EP09713660A patent/EP2250565A4/en not_active Withdrawn
- 2009-02-10 KR KR1020097018122A patent/KR101079890B1/ko not_active IP Right Cessation
- 2009-02-10 US US12/529,139 patent/US8447914B2/en active Active
- 2009-02-10 WO PCT/JP2009/052595 patent/WO2009110302A1/en active Application Filing
- 2009-02-10 CN CN200980000136XA patent/CN101689140B/zh not_active Expired - Fee Related
- 2009-02-24 TW TW098105828A patent/TWI388988B/zh not_active IP Right Cessation
Non-Patent Citations (2)
Title |
---|
JP特开2003-228513A 2003.08.15 |
JP特开2007-334413A 2007.12.27 |
Also Published As
Publication number | Publication date |
---|---|
WO2009110302A1 (en) | 2009-09-11 |
CN101689140A (zh) | 2010-03-31 |
TWI388988B (zh) | 2013-03-11 |
KR101079890B1 (ko) | 2011-11-04 |
EP2250565A1 (en) | 2010-11-17 |
EP2250565A4 (en) | 2012-10-31 |
JP5010505B2 (ja) | 2012-08-29 |
KR20090117936A (ko) | 2009-11-16 |
TW200947211A (en) | 2009-11-16 |
US20110022784A1 (en) | 2011-01-27 |
JP2009211225A (ja) | 2009-09-17 |
US8447914B2 (en) | 2013-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101689140B (zh) | 存储器系统 | |
CN101681314B (zh) | 存储器系统 | |
CN101681315B (zh) | 存储器系统 | |
CN101681299A (zh) | 存储器系统 | |
KR101018766B1 (ko) | 메모리 시스템 | |
JP5198245B2 (ja) | メモリシステム | |
TWI420310B (zh) | 記憶體系統 | |
CN101095121B (zh) | 高速暂存区块 | |
CN101632068B (zh) | 半导体存储装置 | |
JP4675985B2 (ja) | メモリシステム | |
JP4551940B2 (ja) | メモリシステム | |
KR101101655B1 (ko) | 메모리 시스템 | |
JP4691123B2 (ja) | メモリシステム | |
US9015421B2 (en) | Memory system | |
CN100533408C (zh) | 一种闪存的安全读写方法 | |
JP2010157133A (ja) | メモリシステム | |
JP4592774B2 (ja) | メモリシステム | |
JP5221593B2 (ja) | メモリシステム | |
KR101032671B1 (ko) | 메모리 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120418 Termination date: 20170210 |