CN101641680A - 存储器系统 - Google Patents
存储器系统 Download PDFInfo
- Publication number
- CN101641680A CN101641680A CN200880006501A CN200880006501A CN101641680A CN 101641680 A CN101641680 A CN 101641680A CN 200880006501 A CN200880006501 A CN 200880006501A CN 200880006501 A CN200880006501 A CN 200880006501A CN 101641680 A CN101641680 A CN 101641680A
- Authority
- CN
- China
- Prior art keywords
- data
- memory block
- memory
- block
- logical 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; 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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
一种存储器系统,包括:WC 21,通过主机设备以扇区单位从该WC 21读出数据和将数据写入该WC 21中;FS 12,以页单位从该FS 12读出数据和将数据写入该FS 12中;MS 11,以轨道单位从该MS 11读出数据和将数据写入该MS 11中;FSIB 12a,其用作为用于FS 12的输入缓冲器;以及MSIB 11a,其用作为用于MS 11的输入缓冲器。在FSIB 12a中设置FSBB 12ac,该FSBB 12ac具有等于或大于WC 21的存储容量的存储容量,且存储在WC 21中写入的数据。数据管理单元120管理各个存储单元,当判断在这些存储单元当中执行的一种处理超过预定时间时,数据管理单元120挂起被判断为超过预定时间的那个处理,并且控制在WC 21中写入的数据,以将所述数据保存在FSBB 12ac中。
Description
技术领域
本发明涉及一种包括非易失性半导体存储器的存储器系统。
背景技术
作为在计算机系统中使用的外部存储装置,安装有诸如NAND型闪速存储器的非易失性半导体存储器的SSD(固态驱动器)引人注目。与磁盘装置相比,闪速存储器具有诸如速度高和重量轻的优点。
SSD包括:多个闪速存储器芯片;控制器,其响应于来自主机设备的请求而执行对各自的闪速存储器芯片的读/写控制;缓冲存储器,其用于执行在各自的闪速存储器芯片与主机设备之间的数据传送;电源电路;以及与主机设备的连接接口(参见例如专利文件1)。
非易失性半导体存储器的实例包括其中擦除、写入和读出的单位固定的非易失性半导体存储器,例如在存储数据时一次以块为单位擦除数据然后执行写入的非易失性半导体存储器,以及以与NAND型闪速存储器相同的方式以页为单位执行写入和读出的非易失性半导体存储器。
另一方面,这样的单位被称为扇区,该单位用于诸如个人计算机的主机设备,以将数据写入诸如硬盘的次级存储装置以及从中读出数据。扇区独立于半导体存储装置的擦除、写入和读出的单位而设定。
例如,尽管非易失性半导体存储器的块的大小(块大小)为512kB且其页的大小(页大小)为4kB,但主机设备的扇区的大小(扇区大小)被设定为512B。
以此方式,非易失性半导体存储器的擦除、写入和读出的单位可大于主机设备的写入和读出的单位。
因此,当通过使用非易失性半导体存储器来配置个人计算机的次级存储器装置(例如硬盘)时,有必要通过使大小适应于非易失性半导体存储器的块大小和页大小,写入来自作为主机设备的个人计算机的具有小尺寸的数据。
通过诸如个人计算机的主机设备而记录的数据既具有时间局域性,也具有空间局域性(例如,参见非专利文件1)。因此,当记录数据时,如果数据被直接记录在从外部指定的地址中,则重写(即,擦除处理)在时间上集中在特定的区域中,并且擦除次数的偏差增大。因此,在NAND型闪速存储器中,执行用于使数据更新区段均衡分布的被称为磨损均化(wear leveling)的处理。
在磨损均化处理中,例如,由主机设备指定的逻辑地址被转译为其中数据更新区段均衡地分布的非易失性半导体存储器的物理地址。
已公开了这样一种SSD,其被配置为在闪速存储器和主机设备之间插入高速缓冲存储器且减少在闪速存储器中的写入次数(擦除次数)(例如,参见专利文件2)。在具有高速缓冲存储器的这种配置的情况下,当从主机设备发出写入请求而高速缓冲存储器已满时,执行用于将高速缓冲存储器中的数据清理(flush)到闪速存储器的处理。
[专利文件1]日本专利No.3688835
[专利文件2]PCT专利申请No.2007-528079的公开的日文译文
[专利文件3]日本专利申请公开No.2005-222550
[非专利文件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是NAND存储器的更详细配置的图;以及
图22是旁路模式的操作流的实例的流程图。
具体实施方式
下面,将参考附图详细解释根据本发明的存储器系统的最佳实施方式。
(实施例)
下面将参考附图解释本发明的实施例。在下面的解释中,具有相同功能和配置的部件由相同的参考标号和符号表示。仅当必要时才进行对这些部件的重复解释。
首先,定义在该说明书中使用的术语。
物理页:在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),SSD100可以将数据传送到用于除错(debug)和制造检验的设备200并从其接收数据。SSD100包括作为非易失性半导体存储器的NAND型闪速存储器(下文中简称为NAND存储器)10、作为控制器的驱动控制电路4、作为易失性半导体存储器的DRAM20、电源电路5、用于状态显示的LED6、检测驱动器中的温度的温度传感器7、以及熔丝8。
电源电路5从由主机设备1侧的电源电路供应的外部DC电力产生多个不同的内部DC电源电压,并将这些内部DC电源电压供应至SSD100中的各个电路。电源电路5检测外部电源的上升沿,产生接通复位信号,并且将该接通复位信号供应至驱动控制电路4。熔丝8设置在主机设备1一侧的电源电路与SSD100中的电源电路5之间。当从外部电源电路供应过电流时,熔丝8断开,以防止内部电路发生故障。
在这种情况下,NAND存储器10具有四个并行操作元件10a至10d,其执行四个并行操作。一个并行操作元件具有两个NAND存储器封装。NAND存储器封装中的每一个包括多个堆叠的NAND存储器芯片(例如,1个芯片=2GB)。在图1的情况下,NAND存储器封装中的每一个包括堆叠的四个NAND存储器芯片。NAND存储器10具有64GB的容量。当NAND存储器封装中的每一个包括堆叠的八个NAND存储器芯片时,NAND存储器10具有128GB的容量。
DRAM20用作为用于在主机设备1与NAND存储器10之间的数据传送的高速缓冲存储器以及用于工作区的存储器。可使用FeRAM来代替DRAM20。驱动控制电路4通过DRAM20在主机设备1与NAND存储器10之间执行数据传送控制,并且控制SSD100中的各个部件。驱动控制电路4将用于状态显示的信号供应至用于状态显示的LED6。驱动控制电路4还具有从电源电路5接收接通复位信号且将复位信号和时钟信号供应至在自身电路和SSD100中的各个单元的功能。
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中的启动程序而传送至SRAM115。
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与DRAM20之间的数据传送以及关于NAND存储器10的各种功能。ATA命令处理单元121经由ATA控制器110和DRAM控制器113与数据管理单元120协作来执行DRAM20与主机设备1之间的数据传送处理。安全管理单元122与数据管理单元120和ATA命令处理单元121协作而管理各种安全信息。
启动加载器123在接通电源时将管理程序(固件)从NAND存储器10加载至SRAM120。初始化管理单元124执行驱动控制电路4中的各个控制器和电路的初始化。除错支持单元125处理经由RS232C接口而从外部供应的用于除错的数据。数据管理单元120、ATA命令处理单元121和安全管理单元122主要为通过处理器104实现的执行存储在SRAM 114中的管理程序的功能单元。
在该实施例中,主要解释通过数据管理单元120实现的功能。数据管理单元120执行:例如,ATA命令处理单元121请求作为存储装置的NAND存储器10和DRAM20(响应于来自主机设备的各种命令,诸如写入请求、高速缓冲存储器清理请求以及读取请求)而提供的功能的供应、地址区域与NAND存储器10之间的对应关系的管理和管理信息的保护、使用DRAM20和NAND存储器10的快速且高效的数据读出及写入功能的提供、NAND存储器10的可靠性的确保。
图5为形成在NAND存储器10和DRAM20中的功能块的图。配置在DRAM20上的写入高速缓冲存储器(WC)21和读取高速缓冲存储器(RC)22被插入在主机1与NAND存储器10之间。WC21暂时存储来自主机设备1的写入数据。RC22暂时存储来自NAND存储器10的读取数据。由数据管理单元120将NAND存储器10中的逻辑块分配给前级存储区(FS:前存储器)12、中间级存储区(IS:中间存储器)13和主存储区(MS:主存储器)11的各个管理区,以便减少在写入期间NAND存储器10的擦除的量。FS12以簇为单位(即,“小单位”)管理来自WC 21的数据,且将小数据存储一短周期。IS13以簇为单位(即,“小单位”)管理从FS12溢出的数据,且将小数据存储一长周期。MS11以轨道为单位(即,“大单位”)将来自WC21、FS12和IS13的数据存储一长周期。例如,存储容量具有MS>IS且FS>WC的关系。
当对NAND存储器10的所有存储区应用小管理单位时,稍后解释的管理表的大小被放大,且不适应DRAM20。因此,NAND存储器10的各个存储器被配置为以小管理单位管理NAND存储器10中仅在最近刚写入的数据和具有低写入效率的小数据。
图6为关于从WC21向NAND存储器10的写入处理(WR处理)的更详细的功能框图。在FS12的前级处设置FS输入缓冲器(FSIB)12a,其中该FS输入缓冲器(FSIB)12a缓冲来自WC21的数据。在MS11的前级处设置MS输入缓冲器(MSIB)11a,该MS输入缓冲器(MSIB)11a缓冲来自WC21、FS12或IS13的数据。在MS11中设置轨道前级存储区(TFS)11b。TFS11b为插入在MSIB11a与MS11之间的具有FIFO(先进先出)结构的缓冲器。记录在TFS11b中的数据为这样的数据,该数据的更新频率高于从MSIB11a直接写入在MS11中的数据。NAND存储器10中的任何一个逻辑块被分配给MS11、MSIB11a、TFS11b、FS12、FSIB12a和IS13。
将详细解释图5和图6中所示的各个部件的具体功能配置。当主机设备1执行SSD100的读取或写入时,主机设备1经由ATA接口而输入LBA(逻辑块寻址)作为逻辑地址。如图7中所示,LBA为这样的逻辑地址,其中从0开始的序号被附到扇区(大小:512B)。在该实施例中,作为用于WC21、RC22、FS12、IS13和MS11(它们为图5中所示的部件)的管理单位,定义逻辑簇地址和逻辑轨道地址,所述逻辑簇地址由依次(inorder)等于或高于LBA的低位(l0w-order)第(l-k+1)位的位串形成,所述逻辑轨道地址由依次等于或高于LBA的低位第(l-i+1)位的位串形成。一个簇=2(l-k)个扇区,且一个轨道=2(k-i)个簇。
读取高速缓冲存储器(RC)22
解释RC22。RC22为响应于来自ATA命令处理单元121的读取请求而暂时存储来自NAND存储器10(FS12、IS13和MS11)的读取数据的区。在该实施例中,RC22是在例如m-线/n-路(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统中进行管理,且可将一个簇的数据存储在一个条目(entry)中。线通过逻辑簇地址的LSB(k-i)个位来判定。RC22可在全关联系统中进行管理,或者可在简单FIFO系统中进行管理。
写入高速缓冲存储器(WC)21
解释WC21。WC21为响应于来自ATA命令处理单元121的写入请求而暂时存储来自主机设备1的写入数据的区。WC21是在m-线/n-路(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统中进行管理,并可将一个簇的数据存储在一个条目中。线通过逻辑簇地址的LSB(k-i)个位来判定。例如,以从路1至路n依次搜寻可写入的路。登记(register)于WC21中的轨道通过稍后所解释的WC轨道管理表24的FIFO结构以LRU(最近最少使用)进行管理,使得最早更新的顺序已知。WC21可由全关联系统来管理。WC21与RC22可在线的数目和路的数目上有所不同。
根据写入请求而写入的数据一次存储在WC21上。判定将要从WC21清理至NAND10的数据的方法遵从下面所解释的规则。
(i)当通过标记(tag)判定的线中的可写入的路为最后的(在该实施例中,第n个)空闲的路时,即,当使用最后的空闲的路时,决定清理登记于线中的轨道当中的基于LRU最早更新的轨道。
(ii)当登记于WC21中的不同轨道的数目超过预定数目时,决定以LRU的顺序清理WC中的其簇数目小于预定数目的轨道。
根据上文所解释的策略来判定将要清理的轨道。在清理这些轨道时,清理包括在相同轨道中的所有数据。当将要清理的数据的量超过例如轨道大小的50%时,将数据清理至MS11。当将要清理的数据的量未超过例如轨道大小的50%时,将数据清理至FS12。
当在条件(i)下执行轨道清理且将数据清理至MS11时,根据策略(i),选择WC21的轨道当中满足将要清理的数据的量超过轨道大小的50%这一条件的轨道且将其添加至清理候选者,直至将要清理的轨道的数目达到2i为止(当轨道的数目一开始就等于或大于2i时,直至轨道的数目达到2i+1为止)。换句话说,当将要清理的轨道的数目小于2i时,以从WC中的最旧轨道开始的顺序选择具有多于2(k-i-1)的有效簇的轨道,且将其添加至清理候选者,直至轨道的数目达到2i为止。
当在条件(i)下执行轨道清理且将轨道清理至FS12时,以LRU的顺序在WC21中的轨道当中选择满足将要清理的数据的量不超过轨道大小的50%这一条件的轨道,并将该轨道的簇添加至清理候选者,直至将要清理的簇的数目达到2k为止。换句话说,通过以从最旧轨道开始的顺序追踪WC中的轨道而从具有2(k-i-1)个或更少的有效簇的轨道中提取簇,且当有效簇的数目达到2k时,以逻辑块为单位将簇清理至FSIB12a。然而,当未寻找到2k个有效簇时,以逻辑页为单位将簇清理至FSIB12a。用于判定是以逻辑块为单位还是以逻辑页为单位执行至FS12的清理的有效簇的数目的阈值不限于对于一个逻辑块的值(即,2k),且可为比对于一个逻辑块的值稍小的值。
在来自ATA命令处理单元121的高速缓冲存储器清理请求中,在与上文相同的条件下将WC21的所有内容清理至FS12或MS11(当将要清理的数据的量超过轨道大小的50%时,将数据清理至MS11,且当数据的量未超过50%时,将数据清理至FS12)。
前级存储区(FS)12
解释FS12。FS12适应其中以簇为单位管理数据的逻辑块单位的FIFO结构。FS12为这样的缓冲器,其认为通过FS12的数据具有比后级处的IS13的数据高的更新频率。换句话说,在FS12的FIFO结构中,当执行从主机向同一地址的重写时,使通过FIFO的有效簇(最新簇)无效。因此,可将通过FS12的簇视为具有比从FS12清理至IS13或MS11的簇更高的更新频率。
通过提供FS12,减少了具有高更新频率的数据在后级处的IS13中的压紧处理中的混合的可能性。当通过无效化而使存储旧簇的逻辑块的有效簇的数目减少至0时,释放该逻辑块且将其分配为空闲块FB。当逻辑块被无效时,获得新的空闲块FB且将其分配给FS12。
当执行从WC21至FS12的簇数据的移动时,簇被写入分配给FSIB12a的逻辑块中。当在FSIB12a中出现完成了所有页的写入的逻辑块时,通过稍后所解释的CIB处理将这些块从FSIB12a移动至FS12。在将这些块从FSIB12a移动至FS12的过程中,当FS12的块的数目超过FS12所允许的预定上限值时,将最旧的块从FS12清理至IS13或MS11。例如,将轨道中有效簇比率等于或大于50%的轨道写入MS11(TFS11b)中,且将其中仍剩余有有效簇的块移动至IS13。
关于NAND存储器10中的部件之间的数据移动,存在两种方式,即,移动(Move)和复制(Copy)。移动是这样的方法,其仅执行稍后所解释的管理表的指针(pointer)的重新定位,而不执行数据的实际重写。复制是这样的方法,其以页单位、轨道单位或块单位将存储于一个部件中的数据实际重写至另一部件中。
中间级存储区(IS)13
解释IS13。在IS13中,以与FS12相同的方式以簇为单位执行数据的管理。可将存储于IS13中的数据视为具有低更新频率的数据。当执行逻辑块从FS12至IS13的移动(movement)(移动(Move))(即,逻辑块从FS12的清理)时,通过指针的重新定位,将作为清理对象的逻辑块(其先前为FS12的管理对象)改变为IS13的管理对象块。根据逻辑块从FS12至IS13的移动,当IS13的块的数目超过IS13所允许的预定上限值时,即,当IS中可写空闲块FB的数目减小至小于阈值时,执行从IS13至MS11的数据清理和压紧处理。使IS13的块的数目返回至规定值。
IS13使用轨道中的有效簇的数目来执行下文所解释的清理处理和压紧处理。
以有效簇的数目×有效簇系数(其是根据轨道是否存在于其中存在无效轨道的MS11的逻辑块中而进行加权的数字;存在无效轨道时的数字大于不存在无效轨道时的数字)的顺序对轨道进行排序(sort)。收集具有大乘积值的2i+1个轨道(对于两个逻辑块),将其增加至为逻辑块大小的自然数倍大,且将其清理至MSIB11a。
当具有最小数目的有效簇的两个逻辑块的有效簇的总数目为例如等于或大于作为预定的设定值的2k(对于一个逻辑块)时,重复上文所解释的步骤(以执行该步骤,直至可从IS中的两个逻辑块创建空闲块FB为止)。
从具有最小数目的有效簇的逻辑块开始依次收集2k个簇,且在IS中进行压紧。
此处,选择具有最小数目的有效簇的两个逻辑块。然而,数目不限于二,且仅须为等于或大于二的数目。预定的设定值仅须等于或小于这样的簇的数目,其可存储于比选定的逻辑块的数目小一的数目的逻辑块中。
主存储区(MS)11
解释MS11。在MS11中,以轨道为单位执行数据的管理。可将存储于MS11中的数据视为具有低更新频率。当执行轨道数据从WC21、FS12或IS13至MS11的复制或移动时,将轨道写入被分配给MSIB11a的逻辑块中。另一方面,当仅将轨道的一部分中的数据(簇)从WC等等写入时,执行稍后所解释的被动合并,该被动合并用于合并现存的MS中的轨道数据与新数据以产生新轨道数据,然后将所产生的轨道数据写入MSIB11a中。当无效轨道在MS11中累积且分配给MS11的逻辑块的数目超过MS11所允许的块的数目的上限时,执行压紧处理以产生无效的空闲块FB。
作为MS11的压紧处理,例如,执行下文所解释的仅关注逻辑块中的有效轨道的数目的方法。
从具有最小数目的有效轨道的逻辑块中选择逻辑块,直至可通过组合无效轨道而产生无效的空闲块FB为止。
当执行用于整合存储于选定逻辑块中的轨道与WC21、FS12或IS13中的数据的被动合并时,执行压紧。
将其中可整合2i个轨道的逻辑块输出至TFS11b(2i轨道MS压紧),且将数目小于2i的轨道输出至MSIB11a(小于2i的轨道压紧)以产生较大数目的无效空闲块FB。
TFS11b是其中以轨道为单位管理数据的FIFO。TFS11b是这样的缓冲器,其认为通过TFS11b的数据具有比后级处的MS11的数据更高的更新频率。换句话说,在TFS11b的FIFO结构中,当执行从主机向同一地址中的重写时,使通过FIFO的有效轨道(最新轨道)无效。因此,可将通过TFS11b的轨道视为具有比从TFS11b清理至MS11的轨道更高的更新频率。
图8为管理表的图,该管理表用于使数据管理单元120控制并管理图5和图6中所示的各个部件。数据管理单元120具有(如上文所解释的)桥接ATA命令处理单元121与NAND存储器10的功能,且包括:DRAM层管理单元120a,其执行对存储于DRAM20中的数据的管理;逻辑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来管理。
RC22由RC簇管理表23来管理,该RC簇管理表23是反向查找表。在该反向查找表中,可从存储装置的位置搜寻存储于该位置中的逻辑地址。WC21由WC簇管理表25和WC轨道管理表24来管理,其中WC簇管理表25为反向查找表,而WC轨道管理表24为正向查找表。在该正向查找表中,可从逻辑地址搜寻其中存在与该逻辑地址对应的数据的存储装置的位置。
NAND存储器10中的FS12(FSIB12a)、IS13以及MS11(TFS11b和MSIB11a)的逻辑地址由轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42以及FS/IS内簇管理表44来管理。在NAND存储器10中的FS12(FSIB12a)、IS13以及MS11(TFS11b和MSIB11a)中,执行逻辑至物理转译表50的逻辑地址与物理地址的转换。将这些管理表存储于NAND存储器10上的区中且将其从NAND存储器读取至DRAM20,并且在SSD100的初始化期间使用这些管理表。
RC簇管理表23(反向查找)
参看图9解释RC簇管理表23。如上文所解释,在由逻辑簇地址LSB(k-i)个位编索引的n-路集合关联系统中管理RC22。RC簇管理表23为用于管理RC(簇大小×m-线×n-路)22的各个条目的标记的表。这些标记中的每一个包括状态标志(flag)23a和逻辑轨道地址23b,其中状态标志23a包括多个位。除了指示所述条目是否可使用(有效/无效)的有效位之外,状态标志23a还包括例如指示所述条目是否在等待从NAND存储器10读出的位、以及指示所述条目是否在等待读出至ATA命令处理单元121的位。RC簇管理表23用作反向查找表,该反向查找表用于从DRAM20上的标记存储位置搜寻与LBA一致的逻辑轨道地址。
WC簇管理表25(反向查找)
参看图10解释WC簇管理表25。如上文所解释,在由逻辑簇地址LSB(k-i)个位编索引的n-路集合关联系统中管理WC21。WC簇管理表25为用于管理WC(簇大小×m-线×n-路)21的各个条目的标记的表。这些标记中的每一个包括多个位的状态标志25a、扇区位置位映像(bitmap)25b,以及逻辑轨道地址25c。
除了指示所述条目是否可使用(有效/无效)的有效位之外,状态标志25a还包括例如指示所述条目是否在等待清理至NAND存储器10的位、以及指示所述条目是否在等待从ATA命令处理单元121写入的位。通过将扇区扩展成2(l-k)个位,扇区位置位映像25b指示一个簇中所包括的2(l-k)个扇区中的哪一个存储有效数据。利用扇区位置位映像25b,可在WC21中执行与LBA相同的以扇区为单位进行的管理。WC簇管理表25用作反向查找表,该反向查找表用于从DRAM20上的标记存储位置搜寻与LBA一致的逻辑轨道地址。
WC轨道管理表24(正向查找)
参看图11解释WC轨道管理表24。WC轨道管理表24为用于管理信息(其中以轨道单位收集存储于WC21上的簇)的表,且使用具有类似于FIFO功能的链接列表结构来表示轨道当中在WC21中的登记的顺序(LRU)。LRU可通过WC21中最后被更新的顺序来表示。每一列表的条目包括逻辑轨道地址24a、逻辑轨道地址中所包括的WC21中的有效簇数目24b、路-线位映像24c,以及下一个指针24d,该下一个指针24d指示指向下一条目的指针。WC轨道管理表24用作正向查找表,这是因为所需信息是从逻辑轨道地址24a获得的。
路-线位映像24c为这样的映像信息,其指示在WC21中的m×n个条目中的哪一个中存储WC21中的逻辑轨道地址中所包括的有效簇。在其中存储有效簇的条目中,有效位为“1”。路-线位映像24c包括例如(一位(有效)+log2n个位(n-路))×m个位(m-线)。WC轨道管理表24具有链接列表结构。仅输入关于WC21中存在的逻辑轨道地址的信息。
轨道管理表30(正向查找)
参看图12解释轨道管理表30。轨道管理表30为用于以逻辑轨道地址为单位来管理MS11上的逻辑数据位置的表。当以簇为单位将数据存储于FS12或IS13中时,轨道管理表30存储关于数据的基本信息和指向详细信息的指针。轨道管理表30被配置为阵列格式,该阵列格式具有逻辑轨道地址30a作为索引。具有逻辑轨道地址30a作为索引的每一条目包括诸如以下内容的信息:簇位映像30b、逻辑块ID30c+逻辑块内轨道位置30d、簇表指针30e、FS簇的数目30f,以及IS簇的数目30g。轨道管理表30用作正向查找表,这是因为通过使用逻辑轨道地址作为索引,可获得诸如逻辑块ID(对应于存储装置位置)的所需信息,在该逻辑块ID中存储对应于逻辑轨道地址的逻辑轨道。
簇位映像30b为通过将属于一个逻辑轨道地址范围的2(k-i)个簇按照簇地址的升序分成例如八份而获得的位映像。八个位中的每一个指示对应于2(k-i-3)个簇地址的簇是存在于MS11中还是存在于FS12或IS13中。当该位为“0”时,其指示作为搜寻对象的簇的确存在于MS11中。当该位为“1”时,其指示簇很可能存在于FS 12或IS 13中。
逻辑块ID 30c是用于识别这样的逻辑块ID的信息,在该逻辑块ID中存储与逻辑轨道地址对应的逻辑轨道。逻辑块内轨道位置30d指示与逻辑轨道地址(30a)对应的轨道在由逻辑块ID 30c指定的逻辑块中的存储位置。因为一个逻辑块包括最大2i个有效轨道,所以逻辑块内轨道位置30d使用i个位识别2i个轨道位置。
簇表指针30e是指向具有链接列表结构的FS/IS管理表40的每一列表的顶条目的指针。在搜寻整个簇位映像30b的过程中,当指示出簇很可能存在于FS12或IS13中时,通过使用簇表指针30e来执行遍及FS/IS管理表40的搜寻。FS簇的数目30f指示出存在于FS12中的有效簇的数目。IS簇的数目30g指示出存在于IS13中的有效簇的数目。
FS/IS管理表40(正向查找)
参看图13解释FS/IS管理表40。FS/IS管理表40为用于以逻辑簇为单位管理存储于FS12(包括FSIB12a)或IS13中的数据的位置的表。如图13中所示,对于每一个逻辑轨道地址,FS/IS管理表40以独立链接列表格式形成。如上文所解释,指向每一列表的顶条目的指针被存储在轨道管理表30的簇表指针30e的字段中。在图13中,示出用于两个逻辑轨道地址的链接列表。每一个条目包括逻辑簇地址40a、逻辑块ID40b、逻辑块内簇位置40c、FS/IS块ID40d,以及下一个指针40e。FS/IS管理表40用作正向查找表,这是因为可以从逻辑簇地址40a获得诸如逻辑块ID40b以及逻辑块内簇位置40c(对应于存储装置位置)的所需信息,其中在上述逻辑块内簇位置40c中存储与逻辑簇地址40a对应的逻辑簇。
逻辑块ID40b是用于识别其中存储与逻辑簇地址40a对应的簇的逻辑块ID的信息。逻辑块内簇位置40c指示与逻辑簇地址40a对应的簇在由逻辑块ID40b指定的逻辑块中的存储位置。因为一个逻辑块包括最大2k个有效簇,所以逻辑块内簇位置40c使用k个位来识别2k个位置。在FS/IS块ID40d中登记FS/IS块ID,该FS/IS块ID是稍后所解释的FS/IS逻辑块管理表42的索引。FS/IS块ID是这样的信息,其用于识别属于FS12或IS13的逻辑块。FS/IS管理表40中的FS/IS块ID40d被登记,以链接至稍后所解释的FS/IS逻辑块管理表42。下一个指针40e表示指向为每一个逻辑轨道地址链接的同一列表中的下一条目的指针。
MS逻辑块管理表35(反向查找)
参看图14解释MS逻辑块管理表35。MS逻辑块管理表35为这样的表,其用于整体地管理关于MS11中使用的逻辑块的信息(例如,存储哪个逻辑轨道,以及逻辑轨道是否另外可记录)。在MS逻辑块管理表35中,还登记与属于FS12(包括FSIB12)和IS13的逻辑块有关的信息。MS逻辑块管理表35以阵列格式形成,该阵列形式具有逻辑块ID35a作为索引。在128GB的NAND存储器10的情况下,条目的数目最大可为32K个条目。这些条目中的每一个包括:用于2i个轨道的轨道管理指针35b、有效轨道的数目35c、可写入的顶轨道35d,以及有效标志35e。MS逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的逻辑块ID35a获得诸如存储于逻辑块中的逻辑轨道地址的所需信息。
轨道管理指针35b存储与逻辑块ID35a所指定的逻辑块中的2i个轨道位置中的每一个相对应的逻辑轨道地址。可以使用该逻辑轨道地址来进行遍及轨道管理表30的搜寻,该轨道管理表30具有逻辑轨道地址作为索引。有效轨道的数目35c指示出在逻辑块ID35a所指定的逻辑块中存储的轨道当中的有效轨道的数目(最大为2i)。可写入的顶轨道位置35d指示当逻辑块ID35a所指定的逻辑块为被另外记录的块时另外可记录的顶位置(0至2i-1,当另外记录结束时为2i)。当作为MS11(包括MSIB11a)来管理逻辑块条目时,有效标志35e为“1”。
FS/IS逻辑块管理表42(反向查找)
参看图15解释FS/IS逻辑块管理表42。FS/IS逻辑块管理表42以阵列格式形成,该阵列格式具有FS/IS块ID42a作为索引。FS/IS逻辑块管理表42为用于管理与用作FS12或IS13的逻辑块有关的信息(与逻辑块ID的对应、指向FS/IS内簇管理表44的索引、逻辑块是否另外可记录等)的表。FS/IS逻辑块管理表42主要通过使用FS/IS管理表40中的FS/IS块ID40d来存取。每一条目包括逻辑块ID42b、块内簇表42c、有效簇的数目42d、可写入的顶页42e,以及有效标志42f。MS逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的FS/IS块ID42获得诸如在逻辑块中存储的逻辑簇之类的所需信息。
在MS逻辑块管理表35中登记的逻辑块当中与属于FS12(包括FSIB12)和IS13的逻辑块相对应的逻辑块ID被登记于逻辑块ID42b中。指向稍后所解释的FS/IS内簇管理表44的索引被登记于块内簇表42c中,该FS/IS内簇管理表44指示在逻辑块中的每一个簇位置中登记由哪个逻辑簇地址指定的逻辑簇。有效簇的数目42d指示在FS/IS块ID42a所指定的逻辑块中存储的簇当中的有效簇的数目(最大为2k)。可写入的顶页位置42e指示当FS/IS块ID42a所指定的逻辑块为被另外记录的块时,另外可记录的顶页位置(0至2j-1,当另外记录结束时为2i)。当作为FS12(包括FSIB12)或IS13来管理逻辑块条目时,有效标志42f为“1”。
FS/IS内簇管理表44(反向查找)
参看图16解释FS/IS内簇管理表44。FS/IS内簇管理表44为指示在用作FS12或IS13的逻辑块中的每一个簇位置中记录哪个逻辑簇的表。FS/IS内簇管理表44对于每一个逻辑块具有2j页×2(k-j)簇=2k个条目。在连续区中排列与逻辑块中的簇位置当中的第0至第2k-1个簇位置对应的信息。以与属于FS12和IS13的逻辑块数目(P)相等的数目来存储包括该2k条信息的表。FS/IS逻辑块管理表42的块内簇表42c为用于该P个表的位置信息(指针)。在连续区中排列的每一条目44a的位置指示在一个逻辑块中的簇位置。作为条目44a的内容,登记指向这样的列表的指针,该列表包括通过FS/IS管理表40管理的逻辑簇地址,使得可以识别簇位置中存储了哪个簇。换句话说,条目44a并不指示链接列表的顶部。在条目44a中登记指向这样一个列表的指针,这个列表包括链接列表中的逻辑簇地址。
逻辑至物理转译表50(正向查找)
参看图17解释逻辑至物理转译表50。逻辑至物理转译表50以阵列格式形成,该阵列格式具有逻辑块ID50a作为索引。在128GB的NAND存储器10的情况下,条目的数目可为最大32K个条目。逻辑至物理转译表50为用于管理关于逻辑块ID与物理块ID之间的转换和寿命的信息的表。这些条目中的每一个包括物理块地址50b、擦除的次数50c,以及读出的次数50d。逻辑至物理转译表50用作正向查找表,这是因为可以从逻辑块ID获得诸如物理块ID(物理块地址)之类的所需信息。
物理块地址50b指示属于一个逻辑块ID50a的八个物理块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
包括MS11、MSIB11a和TFS11b的MS区的结构以MS结构管理表(未示出)进行管理。具体地,管理分配给MS11、MSIB11a和TFS11b的逻辑块及其类似者。包括FS12、FSIB12a和IS13的FS/IS区的结构以FS/IS结构管理表(未示出)进行管理。具体地,管理分配给FS12、FSIB12a和IS13的逻辑块及其类似者。
读取处理
参看图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的命中的线和路对应的WC21或RC22的数据,且将数据发送至ATA命令处理单元121(步骤S115)。
当RC22或WC21中不存在命中时(步骤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经由RC22将从NAND存储器10的MS11获取的簇数据发送至ATA命令处理单元121(步骤S180)。
另一方面,当基于LBA的簇地址而在遍及簇位映像30b的搜寻中所述对应位指示“1”时,很可能该簇存储于FS12或IS13中(步骤S130)。在这种情况下,数据管理单元120在轨道管理表30中的轨道地址30a的相关条目当中提取簇表指针30e的条目,且使用此指针顺序地搜寻遍及与FS/IS管理表40的相关逻辑轨道地址相对应的链接列表(步骤S140)。具体地,数据管理单元120在相关逻辑轨道地址的链接列表中搜寻与LBA的逻辑簇地址一致的逻辑簇地址40a的条目。当存在逻辑簇地址40a的一致条目时(步骤S150),数据管理单元120在一致列表中获取逻辑块ID40b和逻辑块内簇位置40c。以与上文所解释的方式相同的方式,数据管理单元120使用逻辑至物理转译表50来获取物理块中的簇数据(步骤S160和S180)。具体地,数据管理单元120从逻辑至物理转译表50获取与所获取的逻辑块ID对应的物理块地址(物理块ID)(步骤S160),且从由逻辑块内簇位置40c的条目获取的逻辑块内簇位置计算所获取的物理块ID的簇位置。因此,数据管理单元120可获取物理块中的簇数据。数据管理单元120经由RC22将从NAND存储器10的FS12或IS13获取的簇数据发送至ATA命令处理单元121(步骤S180)。
当在遍及FS/IS管理表40的搜寻中不存在作为搜寻对象的簇时(步骤S150),数据管理单元120再次遍及轨道管理表30的条目进行搜寻,且决定在MS11上的位置(步骤S170)。
写入处理
参看图19中所示的流程图来解释写入处理。通过非用于FUA(绕过(bypassing)DRAM高速缓冲存储器而直接执行在NAND中写入)的写入命令而写入的数据总是一次存储于WC21上。此后,根据条件而将数据写入NAND存储器10中。在写入处理中,很可能执行清理处理和压紧处理。在该实施例中,将写入处理粗略划分成写入高速缓冲存储器闪速处理(在下文中为WCF处理)与清除输入缓冲器处理(在下文中为CIB处理)的两个阶段。步骤S300至S320指示从来自ATA命令处理单元121的写入请求至WCF处理的处理。步骤S330至最后步骤指示CIB处理。
WCF处理为用于将WC21中的数据复制至NAND存储器10(FS12的FSIB12a、或者MS11的MSIB11a)的处理。来自ATA命令处理单元121的单独的写入请求或高速缓冲存储器清理请求可仅通过该处理来完成。这使得可以将ATA命令处理单元121的写入请求的已开始处理中的延迟最大限制为这样的时间,该时间用于在与WC21的容量相等的NAND存储器10中写入。
CIB处理包括用于将FSIB12a中通过WCF处理而写入的数据移动至FS12的处理,以及用于将MSIB11a中通过WCF处理而写入的数据移动至MS11的处理。当开始CIB处理时,很可能以链式反应的方式执行NAND存储器中的部件(FS12、IS13、MS11等)当中的数据移动和压紧处理。全部处理所需的时间大体上根据状态而改变。
首先,解释WCF处理的细节。当从ATA命令处理单元121输入写入命令和作为写入地址的LBA时,DRAM层管理单元120a遍及图10中所示的WC簇管理表25进行搜寻(步骤S300和S305)。WC21的状态通过图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基于这样的条件而选择将要清理的轨道(即,WC21中的条目),该条件在判定将要从WC21清理至NAND存储器10的数据的方法的(i)中进行解释,即,
(i)当通过标记判定的可写入的路为最后的(在该实施例中,第n个)空闲的路时,即,当将使用最后的空闲的路时,决定清理登记于线中的轨道当中的基于LRU最早更新的轨道。
当根据上文所解释的策略判定将要清理的那个轨道时,如上文所解释的,如果相同轨道中所包括的WC21中的所有簇将被清理,且将要清理的簇的量超过轨道大小的50%(即,如果WC中的有效簇的数目等于或大于决定清理的轨道中的2(k-i-1)时),则DRAM层管理单元120a执行至MSIB11a的清理(步骤S310)。如果簇的量未超过轨道大小的50%(即,WC中的有效簇的数目小于决定清理的轨道中的2(k-i-1)),则DRAM层管理单元120a将轨道清理至FSIB12a(步骤S315)。稍后解释从WC21至MSIB11a的清理以及从WC21至FSIB12a的清理的细节。将选定的清理条目的状态标志25a从有效(不可用)转变为等待清理至NAND存储器10。
通过使用WC轨道管理表24,执行对于清理目的地的该判断。对于每一逻辑轨道地址,在WC轨道管理表24中登记指示有效簇数目的WC簇的数目24b的条目。数据管理单元120参考WC簇的数目24b的条目来判定应将FSIB12a和MSIB11a中的哪一者设定为从WC21的清理的目的地。属于逻辑轨道地址的所有簇都以位映像格式登记于路-线位映像24c中。因此,在执行清理过程中,数据管理单元120可参考路-线位映像24c而容易地获悉应清理的簇中的每一个在WC21中的存储位置。
在写入处理期间或在写入处理之后,数据管理单元120在以下条件得到满足时还以相同的方式执行至NAND存储器10的清理处理:
(ii)登记于WC21中的轨道的数目超过预定数目。
WC→MSIB(复制)
当根据基于有效簇的数目(有效簇的数目等于或大于2(k-i-1))的判断而执行从WC21至MSIB11a的清理时,数据管理单元120如上文所解释地执行下文所解释的过程(步骤S310)。
1.参考WC簇管理表25且参考与将要清理的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为“1”时,数据管理单元120执行稍后所解释的轨道内扇区填充(padding),用于与NAND存储器10中所包括的相同簇中的扇区合并。数据管理单元120还执行被动合并处理,该被动合并处理用于读出来自NAND存储器10的轨道中的不存在于WC21中的簇,且合并该簇。
2.当决定清理的轨道的数目小于2i时,数据管理单元120添加决定清理的、具有2(k-i-1)个或更多有效簇的轨道,直至决定清理的轨道的数目从WC21中的最旧者起达到2i个为止。
3.当将要复制的轨道有2i个或更多时,数据管理单元120以逻辑块单位(每2i个轨道作为一个集合)在MSIB11a中执行写入。
4.数据管理单元120以轨道为单位将无法形成2i个轨道的集合的轨道写入MSIB11a中。
5.数据管理单元120在复制结束之后使已存在于FS、IS和MS上的簇及轨道当中的属于经复制的轨道的簇和轨道无效。
解释从WC21至MSIB11a的复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC21中属于WC簇管理表25中经清理的轨道的所有簇相对应。此后,有可能在这些项中进行写入。关于与WC轨道管理表24中的经清理的轨道对应的列表,数据管理单元120改变或删除例如上一个列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WC21至MSIB11a的轨道移动时,数据管理单元120根据轨道移动而更新轨道管理表30和MS逻辑块管理表35。首先,数据管理单元120搜寻作为轨道管理表30的索引的逻辑轨道地址30a,以判断是否已经登记对应于被移动的轨道的逻辑轨道地址30a。当已登记逻辑轨道地址30a时,数据管理单元120更新该索引的簇位映像30b的字段(因为轨道被移动至MS11侧,所以所有相关位被设定为“0”)以及逻辑块ID30c+逻辑块内轨道位置30d。当未登记对应于被移动的轨道的逻辑轨道地址30a时,数据管理单元120将簇位映像30b以及逻辑块ID30c+逻辑块内轨道位置30d登记于相关逻辑轨道地址30a的条目中。数据管理单元120根据轨道管理表30的改变而在必要时更新MS逻辑块管理表35中的逻辑块ID35a、轨道管理指针35b、有效轨道的数目35c、可写入的顶轨道35d等的条目。
当执行从其它区(FS12和IS13)或其类似者至MS11的轨道写入时,或当执行通过MS11中的压紧处理而进行的MS轨道内写入时,可将作为写入对象的轨道中所包括的WC21中的有效簇同时写入MS中。这样的被动合并可随着从WC21至MS11的写入而存在。当执行这样的被动合并时,将簇从WC21删除(使其无效)。
WC→FSIB(复制)
当根据基于有效簇的数目(有效簇的数目等于或大于2(k-i-1))的判断而执行从WC21至FSIB12a的清理时,数据管理单元120如上文所解释地执行下文所解释的过程。
1.参考与将要清理的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为“1”时,数据管理单元120执行簇内扇区填充,用于与NAND存储器10中所包括的相同簇中的扇区合并。
2.数据管理单元120通过以从最旧轨道起的顺序追踪WC中的轨道而从仅具有小于2(k-i-1)个有效簇的轨道中提取簇,且当有效簇的数目达到2k时,以逻辑块为单位将所有簇写入FSIB12a中。
3.当未寻找到2k个有效簇时,数据管理单元120以与逻辑页的数目相等的数目将具有小于2(k-i-1)的数目的有效簇的所有轨道写入FSIB12a中。
4.数据管理单元120在复制结束之后使已存在于FS和IS上的簇当中的与被复制的簇相同的簇无效。
解释从WC21至FSIB12a的该复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC21中属于WC簇管理表25中经清理的轨道的所有簇相对应。此后,有可能在这些条目中进行写入。关于与WC轨道管理表24中的经清理的轨道相对应的列表,数据管理单元120改变或删除例如上一个列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WC21至FSIB12a的簇移动时,数据管理单元120根据簇移动而更新轨道管理表30的簇表指针30e、FS簇的数目30f及其类似者。数据管理单元120还更新FS/IS管理表40的逻辑块ID40b、逻辑块内簇位置40c及其类似者。关于最初不存在于FS12中的簇,数据管理单元120将列表添加至FS/IS管理表40的链接列表。根据该更新,数据管理单元120更新MS逻辑块管理表35、FS/IS逻辑块管理表42和FS/IS内簇管理表44的相关的区段。
CIB处理
当上文所解释的WCF处理结束时,逻辑NAND层管理单元120b执行CIB处理,该CIB处理包括用于将FSIB12a中通过WCF处理而写入的数据移动至FS12的处理、以及用于将MSIB11a中通过WCF处理而写入的数据移动至MS11的处理。当开始CIB处理时,如上文所解释的,很可能以链式反应的方式执行块之间的数据移动和压紧处理。全部处理所需的时间大体上根据状态而改变。在CIB处理中,基本上,首先,执行MS11中的CIB处理(步骤S330),随后,执行FS12中的CIB处理(步骤S340),再次执行MS11中的CIB处理(步骤S350),执行IS13中的CIB处理(步骤360),且最后再次执行MS11中的CIB处理(步骤S370)。在从FS12至MSIB11a的清理处理、从FS12至IS13的清理处理或从IS13至MSIB11a的清理处理中,当过程中出现循环时,可能不按顺序执行处理。下面将单独地解释MS11中的CIB处理、FS12中的CIB处理和IS13中的CIB处理。
MS11中的CIB处理
首先,解释MS11中的CIB处理(步骤S330)。当执行轨道数据从WC21、FS12和IS13向MS11的移动时,将轨道数据写入MSIB11a中。在完成在MSIB11a中的写入之后,如上文所解释的,更新轨道管理表30,且改变(移动)轨道排列于其中的逻辑块ID30c、块内轨道位置30d及其类似者。当将新轨道数据写入MSIB11a中时,使从开始起就存在于MS11或TFS11b中的轨道数据无效。该无效化处理是这样实现的,即,使这样的轨道无效,所述轨道来自MS逻辑块管理表35中的其中存储旧轨道信息的逻辑块的条目。具体地,删除MS逻辑块管理表35的条目中的轨道管理指针35b的字段中的相关轨道的指针,且使有效轨道的数目减一。当通过该轨道无效化而使一个逻辑块中的所有轨道无效时,使有效标志35e无效。通过这样无效化或其类似者,产生MS11的包括无效轨道的块。当重复此步骤时,块的使用效率会降低而引起可用逻辑块的不足。
当出现这种情形且分配给MS11的逻辑块的数目超过MS11所允许的块的数目的上限时,数据管理单元120执行压紧处理以产生无效的空闲块FB。将该无效的空闲块FB返回至物理NAND层管理单元120c。逻辑NAND层管理单元120b减少分配给MS11的逻辑块的数目,且接着重新从物理NAND层管理单元120c获取可写入的空闲块FB。压紧处理为这样的处理,其用于在新逻辑块中收集作为压紧对象的逻辑块的有效簇,或者将作为压紧对象的逻辑块中的有效轨道复制至其它逻辑块,以产生返回至物理NAND层管理单元120c的无效的空闲块FB,且改善逻辑块的使用的效率。在执行压紧的过程中,当存在WC、FS和IS上的有效簇时,数据管理单元120执行被动合并,该被动合并用于合并作为压紧对象的轨道区中的所有有效簇。登记于TFS11b中的逻辑块不包括在压紧对象中。
特别解释从MSIB11a至MS11或至TFS11b的清理以及将MSIB11a中存在满块设定为条件的压紧处理的实例。
1.参考MS逻辑块管理表35的有效标志35e,当在MS11中存在被无效的逻辑块时,数据管理单元120将该块设定为无效的空闲块FB。
2.数据管理单元120将MSIB11a中的满逻辑块清理至MS11。具体地,数据管理单元120更新上文所解释的MS结构管理表(未示出),且将逻辑块从在MSIB的管理之下转移至在MS的管理之下。
3.数据管理单元120判断分配给MS11的逻辑块的数目是否超过MS11所允许的块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的MS压紧。
4.参考MS逻辑块管理表35的有效轨道的数目35c的字段及其类似者,数据管理单元120以有效轨道的数目对不包括在TFS11b中的逻辑块当中的具有被无效的轨道的逻辑块进行分类。
5.数据管理单元120从具有小数目的有效轨道的逻辑块收集轨道,且执行压紧。在执行压紧过程中,首先,对于逻辑块中的每一个,对轨道进行复制(一次复制2i个轨道),以执行压紧。当作为压紧对象的轨道具有在WC21、FS12和IS13中的有效簇时,数据管理单元120还合并这些有效簇。
6.数据管理单元120将压紧源处的逻辑块设定为无效的空闲块FB。
7.当执行压紧且一个逻辑块包括有效的2i个轨道时,数据管理单元120将逻辑块移动至TFS11b的顶部。
8.当可通过将逻辑块中的有效轨道复制至另一逻辑块而产生无效的空闲块FB时,数据管理单元120以轨道单位将数目小于2i的有效轨道另外记录在MSIB11a中。
9.数据管理单元120将压紧源处的逻辑块设定为空闲块FB。
10.当分配给MS11的逻辑块的数目降低至MS11所允许的块的数目的上限以下时,数据管理单元120结束MS压紧处理。
FS12中的CIB处理
解释FS12中的CIB处理(步骤S340)。当通过从WC21至FSIB12a的簇写入处理而在FSIB12a中产生其中所有的页都被写入的逻辑块时,将FSIB12a中的块从FSIB12a移动至FS12。根据该移动,将旧逻辑块从多个逻辑块所配置的FIFO结构的FS12清理。
具体地如下文所解释地实现从FSIB12a至FS12的清理以及从FS12的块清理。
1.参考FS/IS逻辑块管理表42的有效标志35e及其类似者,当在FS12中存在被无效的逻辑块时,数据管理单元120将该块设定为无效的空闲块FB。
2.数据管理单元120将FSIB12a中的满块清理至FS12。具体地,数据管理单元120更新FS/IS结构管理表(未示出),且将该块从在FSIB的管理之下转移至在FS的管理之下。
3.数据管理单元120判断分配给FS12的逻辑块的数目是否超过FS12所允许的块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的清理。
4.首先,数据管理单元120确定作为清理对象的最旧逻辑块中的簇数据当中,应直接被移动至MS11而不移动至IS13的簇数据(实际上,因为MS的管理单位为轨道,所以以轨道单位确定所述簇数据)。
(A)数据管理单元120按照从页的顶部开始的顺序扫描作为清理对象的逻辑块中的有效簇。
(B)数据管理单元120参考轨道管理表30的FS簇的数目30f的字段,寻找在FS中该簇所属于的轨道具有多少个有效簇。
(C)当该轨道中的有效簇的数目等于或大于预定阈值(例如,2k-1的50%)时,数据管理单元120将该轨道设定为清理至MS的候选者。
5.数据管理单元120将应被清理至MS11的轨道写入MSIB11a中。
6.当遗留有清理轨道时,数据管理单元120进一步执行至MSIB11a的清理。
7.当即使在上文的处理2至处理4之后,作为清理对象的逻辑块中仍存在有效簇时,数据管理单元120将该逻辑块移动至IS13。
当执行从FS12至MSIB11a的清理时,紧接在清理之后,数据管理单元120执行MS11中的CIB处理(步骤S350)。
IS13中的CIB处理
解释IS13中的CIB处理(步骤S360)。根据从FS12至IS13的块移动而将逻辑块添加至IS13。然而,根据逻辑块的添加,逻辑块的数目超过可在多个逻辑块所形成的IS13中进行管理的块的数目的上限。当逻辑块的数目超过上限时,在IS13中,首先,数据管理单元120执行一个到多个逻辑块至MS11的清理,然后执行IS压紧。具体地,数据管理单元120执行下文所解释的过程。
1.数据管理单元120以轨道中的有效簇的数目×有效簇系数对IS13中所包括的轨道进行分类,收集具有大乘积值的2i+1个轨道(对于两个逻辑块),且将这些轨道清理至MSIB11a。
2.当具有最小数目的有效簇的2i+1个逻辑块的有效簇的总数目为例如等于或大于作为预定设定值的2k个(对于一个逻辑块)时,数据管理单元120重复上文所解释的步骤。
3.在执行清理之后,数据管理单元120按照从具有最小数目的有效簇的逻辑块开始的顺序收集2k个簇,且执行IS13中的压紧。
4.数据管理单元120将压紧源处的逻辑块当中不包括有效簇的逻辑块作为无效的空闲块FB返回。
当执行从IS13至MSIB11a的清理时,紧接在清理之后,数据管理单元120执行MS11中的CIB处理(步骤S370)。
图20为部件当中的数据的流动中的输入与输出的组合的图,且指示作为触发器引起数据的流动的原因。基本上,根据从WC21的簇清理而将数据写入FS12中。然而,当对于从WC21至FS12的清理偶然有必要进行簇内扇区填充(簇填充)时,复制来自FS12、IS13和MS11的数据。在WC21中,通过使用WC簇管理表25的标记中的扇区位置位映像25b识别相关簇地址中存在还是不存在2(l-k)个扇区,有可能以扇区(512B)为单位执行管理。另一方面,FS12和IS13的管理单位为簇,且MS11的管理单位为轨道,其中FS12和IS13为NAND存储器10中的功能部件。以这种方式,NAND存储器10中的管理单位比扇区大。因此,在从WC21将数据写入NAND存储器10的过程中,当在NAND存储器10中存在所具有的簇地址与将要写入的数据的簇地址相同的数据时,有必要在进行这样的合并之后将数据写入NAND存储器10中,所述合并是将从WC21写入NAND存储器10中的簇中的扇区与NAND存储器10中存在的相同簇地址中的扇区进行合并。
该处理为图20中所示的簇内扇区填充处理(簇填充)和轨道内扇区填充(轨道填充)。除非执行这些种类的处理,否则不能读出正确数据。因此,当数据从WC21清理至FSIB12a或MSIB11a时,参考WC簇管理表25且参考与将要清理的簇相对应的标记中的扇区位置位映像25b。当并非所有的扇区位置位映像25b都为“1”时,执行簇内扇区填充或轨道内扇区填充,用于与NAND存储器10中所包括的相同簇或相同轨道中的扇区合并。DRAM20的工作区被用于该处理。将数据从DRAM20的工作区写入MSIB11a中或写入FSIB12a中。
在IS13中,基本上,根据从FS12的块清理(移动)而写入数据,或者根据IS中的压紧而写入数据。在MS11中,可从所有区段写入数据。当写入数据时,在MS11中,因为仅可以以轨道为单位写入数据,所以可引起归因于MS本身的数据的填充。当以轨道为单位写入数据时,还根据被动合并而写入其它块中的片段数据。此外,在MS11中,还根据MS压紧而写入数据。在被动合并中,当执行从WC21、FS12或IS13这三个部件之一至MS11的轨道清理或逻辑块清理(对于2i个轨道的清理)时,在DRAM20的工作区中收集一个部件中的作为清理对象的轨道(或逻辑块)中所包括的两个部件中的有效簇以及MS11中的有效簇,并将这些有效簇从DRAM20的工作区写入MSIB11a中作为用于一个轨道的数据。
图21是根据该实施例的NAND存储器的详细配置的图。图21中示出了在图6中所示的FS12、IS13和MS11的详细配置。
如上文所解释的,当数据擦除单位(逻辑块)与数据管理单位(轨道或簇)不同时,根据闪速存储器的重写的进展,无效(非最新的)数据使得逻辑块为多孔的(porous)。当处于这种多孔状态的逻辑块增多时,基本可用的逻辑块减少,从而不能有效地使用NAND存储器10的存储区。因此,执行压紧处理,该压紧处理用于收集有效的最新数据且将数据重写在不同的块中。
然而,因为压紧处理所需的时间根据NAND存储器的存储容量和空闲区而波动,因此基本很难控制压紧处理时间。因此,当压紧处理正在进行时,那么很可能,对主机设备的命令处理响应会延迟,且不能在规定时间内返回。基于该认识,下面解释该实施例的涉及存储器系统的要点,该存储器系统可在规定的时间内返回对主机设备1的命令处理响应。
WC配置
如上文所解释的,在m-线/n-路(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统中管理WC21。登记于WC21中的数据以LRU(最近最少使用)进行管理。
FS配置
FS单元12Q包括FS输入缓冲器(FSIB)12a和FS12。如上文所解释的,FS12是以簇为单位管理数据的FIFIO。以页为单位针对2(k-l)个簇共同地执行数据的写入。FS12具有用于大量逻辑块的容量。从WC21清理的数据被输入其中的FS输入缓冲器(FSIB)12a设置在FS12的前级处。FSIB12a包括FS满块缓冲器(FSFB)12aa、FS额外记录缓冲器(FS额外记录IB)12ab,以及FS旁路缓冲器(bypass buffer)(在下文中为FSBB)12ac。
FSFB12aa具有用于一个至多个逻辑块的容量。FS额外记录IB12ab也具有用于一个至多个逻辑块的容量。FSBB12ac也具有用于一个至多个逻辑块的容量(例如,4MB)。当从WC21清理用于一个逻辑块的数据时,执行以块为单位至FSFB12aa的数据复制。否则,执行在FS额外记录IB12ab中以页为单位的额外写入。
FSBB12ac用于在这样的情况下原样保存存储于WC21中的内容,所述情况为,在CIB处理的执行期间发出涉及从WC21清理的写入命令,但是,即使在经过了预定时间之后CIB处理也没有结束时,(其原因很可能是IS13中的压紧处理中的延迟),或者从主机设备1发出复位请求。
IS配置
IS单元13Q包括IS输入缓冲器(ISIB)13a、IS13和IS压紧缓冲器13c。例如,ISIB13a具有用于一个至多个逻辑块的容量。IS压紧缓冲器13c具有用于一个逻辑块的容量。IS13具有用于大量逻辑块的容量。IS压紧缓冲器13c为用于执行IS13中的压紧的缓冲器。
如上文所解释的,IS13以与FS12相同的方式以簇单位执行数据的管理。以块为单位将数据写入IS13中。当执行逻辑块从FS12至IS13的移动(即,逻辑块从FS12的清理)时,根据指针的重新定位,将作为清理对象的逻辑块(其为FS12的先前管理对象)改变成IS13(具体地,ISIB13a)的管理对象块。当根据逻辑块从FS12至IS13的移动,IS13的块的数目超过预定上限时,执行从IS13至MS11的数据清理和压紧处理,且使IS13的块的数目复位为规定值。
MS配置
MS单元11Q包括MSIB11a、轨道前级缓冲器(TFS)11b,以及MS(MS主体)11。
MSIB11a包括一个至多个(在该实施例中为四个)MS满块输入缓冲器(在下文中为MSFB)11aa和一个至多个(在该实施例中为两个)额外记录输入缓冲器(在下文中为MS额外记录IB)11ab。一个MSFB11aa具有用于一个逻辑块的容量。MSFB11aa用于以逻辑块单位进行的写入。一个MS额外记录IB11ab具有用于一个逻辑块的容量。MS额外记录IB11ab用于以轨道单位进行的额外写入。
将从WC21清理的逻辑块、从FS12清理的逻辑块或从IS13清理的逻辑块复制至MSFB11aa。将复制至一个MSFB11aa的逻辑块直接移动至MS11而不移动通过TFS11b。在逻辑块被移动至MS11之后,将空闲块FB分配为MSFB11aa。
以额外记录的方式将从WC21清理的轨道或从FS12清理的轨道复制至MS额外记录IB11ab。将该MS额外记录IB11ab中以轨道为单位额外记录的满逻辑块移动至TFS11b。在逻辑块被移动至TFS11b之后,将空闲块FB分配为MS额外记录IB11ab。
虽然未在图21中示出,但在MSFB11aa和MS额外记录IB11ab中也存在用于被动合并的输入。在被动合并中,当执行从WC21、FS12和IS13这三个部件之一至MS11的轨道清理或块清理时,在DRAM20的工作区中收集一个部件中的作为清理对象的轨道(或块)中所包括的其他两个部件中的有效簇以及MS11中的有效簇。将这些有效簇从DRAM20的工作区写入MS额外记录IB11ab中作为用于一个轨道的数据或者写入MSFB11aa中作为用于一个块的数据。
TFS11b为这样的缓冲器,其具有用于大量逻辑块的容量,且具有插入在MS额外记录IB11ab与MS11之间的FIFO(先进先出)结构。将MS额外记录IB11ab中以轨道单位额外写入的满块移动至具有FIFO结构的TFS11b的输入侧。此外,将通过MS11中的压紧处理而形成的包括2i个有效轨道的一个逻辑块从MS压紧缓冲器11c移动至TFS11b的输入侧。
MS压紧缓冲器11c为用于执行MS11中的压紧的缓冲器。与FS12同样地,TFS11b具有FIFO结构。当执行从主机到同一轨道地址的重写入时,通过FIFO的有效轨道被无效化。将从FIFO结构溢出的最旧的块移动到MS11。因此,可将通过TFS11b的轨道视为具有比从MSFB11aa直接写入MS11中的块中所包括的轨道更高的更新频率。
在MS中执行的MS压紧处理包括两种MS压紧,即,用于收集2i个有效轨道且形成一个逻辑块的2i轨道MS压紧,以及用于收集少于2i个轨道的有效轨道且执行压紧的少于2i轨道MS压紧。在2i轨道MS压紧中,使用MS压紧缓冲器11c,并且将压紧后的逻辑块移动至TFS11b的顶部。在少于2i轨道MS压紧中,以轨道为单位将逻辑块复制至MS额外记录IB11ab。
(旁路模式)
解释旁路模式。旁路模式为这样的模式,其用于总是在完成写入命令之后对写入WC21中的数据进行清理处理,且不通过FS单元12Q和IS单元13Q而将数据直接写入MS11(MSIB11a)中。在通常的存储器系统中,提供特定的规定时间作为数据管理单元120处理从主机设备请求的命令的时间。换句话说,数据管理单元120必须在规定时间内执行对从主机设备请求的命令的响应处理(命令响应处理)。
因此,例如,当CIB处理所需的时间超过该规定时间时,有必要采取特殊措施。作为CIB处理的执行所需时间超过规定时间的起因,可想到用于解决IS13的碎片的压紧处理的执行。这是因为,在IS13中的压紧处理中,必须收集用于至少一个逻辑块的簇。将采取“特殊措施”的处理模式称为旁路模式。图21中所示的FSBB12a是用于在转换到旁路模式期间保存WC21中的有效簇的缓冲器,且是仅当数据管理单元120转换到旁路模式时使用的专用于旁路模式的缓冲器。
与在WC21上管理的数据同样地,FSBB12ac(FSIB12a)以簇单位管理数据。然而,与在WC21上管理的数据不同地,MSIB11a以轨道单位管理数据。因此,例如,当在WC21中存在具有不同地址的大量簇时,在将WC21中的数据保存在MSIB11a上的过程中,由于为这些地址中的每一个收集簇,必须准备用于不同地址的轨道。必须确保具有大容量的区域用于该保存。另一方面,当数据存储于FSIB12a(FSBB12ac)中时,由于以与WC21中的簇管理相同的簇管理来执行数据管理,因此仅仅与WC21的条目数目相等的簇是足够的。最大需要仅仅与WC21的容量相等的簇。因此,希望在FSIB12a中提供这样的FSBB12ac,该FSBB12ac是专用于旁路模式的缓冲器。
(旁路模式/操作流程)
解释以旁路模式进行的操作流程。图22是以旁路模式进行的操作流程的实例的流程图。
如图22中所示,首先,假定当执行正常写入处理中的CIB处理(步骤S800)时从ATA命令处理单元121发出要求清理处理的写入命令(步骤S801)。数据管理单元120执行用于判断CIB处理是否已完成的处理(步骤S802)。当CIB处理已完成(步骤S802处的“是”)时,数据管理单元120不转换至旁路模式,执行正常处理(写入命令处理)(步骤S803),并且退出该流程。
另一方面,当CIB处理未完成(步骤S802处的“否”)时,数据管理单元120执行用于判断在发出写入命令(步骤S801)之后是否经过了预定时间的处理。在该判断处理中,例如,使用安装在SSD或主机设备上的计时器,测量在写入命令的发出之后经过的时间,并且将该经过的时间与预定时间相比较。预定时间是比规定时间短的时间。例如,当用于对主机侧响应的命令响应处理的限度(规定时间)为“T1秒”时,比该限度短的时间,例如,“T2(T2<T1)秒”对应于“预定时间”。
当从写入命令的发出开始还未经过预定时间(步骤S804处的“否”),数据管理单元120返回到步骤S802处的处理。另一方面,当从写入命令的发出开始已经过了预定时间(步骤S804处的“是”)时,数据管理单元120将WC21中的有效簇保存在FSIB12a的FSBB12ac中(步骤S805)。此后,数据管理单元120将MSIB11a的各个缓冲器中的数据清理到MS11或TFS11b(步骤S806),并且将CIB处理挂起(步骤S807)。随后,数据管理单元120将在步骤S801处接收的由写入处理指定的数据通过WC21额外写入MSIB11a中(步骤S808)。此后,数据管理单元120重新开始CIB处理(步骤S809),执行用于判断CIB处理是否已完成的处理(步骤S810),并且,当CIB处理完成时(步骤S810处的“是”),退出旁路模式下的处理流程。
(关于旁路模式的补充解释)
简要地补充解释旁路模式。在处理流程中,步骤S805至S810处的处理对应于旁路模式的处理。在旁路模式的处理期间,数据管理单元120根据ATA命令处理单元121发出的写入命令而执行通过WC21的写入处理。在写入处理结束之后,数据管理单元120立即对MSIB11进行清理处理。数据管理单元120不对FSIB12a进行额外记录处理。关于高速缓冲存储器清理命令,由于已经清理了WC21中的所有的数据,因此可以在规定时间内向主机设备传送完成命令的通知,而不对NAND存储器10进行存取。
在旁路模式中,当用于在MSIB11a中的额外记录的处理已完成时,数据管理单元120无条件地重新开始CIB处理。在该处理期间,当再次由ATA命令处理单元121发出写入命令时,数据管理单元120继续CIB处理,直至满足与用于“旁路模式的开始”的条件相同的条件为止。当CIB处理在预定时间未结束时,数据管理单元120执行与上文中所解释的流程相同的用于通过WC21在MS中写入的处理。此后,数据管理单元120重复该处理,直至满足用于结束旁路模式的条件为止。当CIB处理在期限之前完成时,数据管理单元120结束旁路模式且返回到正常模式。
如上文所描述的,利用根据该实施例的存储器系统,当CIB处理(具体地,IS压紧处理)正在进行且从ATA命令处理单元121接收涉及WC清理处理的写入命令时,数据管理单元120在经过了预定时间之后挂起CIB处理,且执行旁路处理。这使得即使当CIB处理正在进行时也可以保证命令处理的等待时间(latency)。
根据本发明,提供了一种可以在规定时间内向主机设备返回命令处理响应的存储器系统。
本发明不限于上文所描述的这些实施例。因此,可在不偏离本发明的范围的情况下进行各种修改。
此外,上文所描述的实施例包括各种具有创造性步骤的组成部分。即,可通过分布或整合任意所揭示的组成部分而对本发明进行各种修改。
例如,可通过从这些实施例中所揭示的所有组成部分当中省略任意组成部分而进行本发明的各种修改,只要可解决本发明要解决的问题且可获得将要通过本发明获得的优点即可。
此外,在上述实施例中解释:簇大小乘以等于或大于二的正整数等于逻辑页大小。然而,本发明并不因此而受限制。
例如,簇大小可与逻辑页大小相同,或可为通过组合多个逻辑页而使逻辑页大小乘以等于或大于二的正整数所获得的大小。
此外,簇大小可与用于在诸如个人计算机的主机设备1上运行的OS(操作系统)的文件系统的管理单位相同。
此外,在上述实施例中解释:轨道大小乘以等于或大于二的正整数等于逻辑块大小。然而,本发明并不因此而受限制。
例如,轨道大小可与逻辑块大小相同,或可为通过组合多个逻辑块而使逻辑块大小乘以等于或大于二的正整数所获得的大小。
若轨道大小等于或大于逻辑块大小,则MS压紧处理不是必要的。因此,可省略TFS11b。
Claims (41)
1.一种存储器系统,包括:
作为高速缓冲存储器的第一存储区,其包括在易失性半导体存储器中;
第二存储区和第三存储区,其包括在非易失性半导体存储器中,在所述第二存储区和所述第三存储区中,通过页单位执行数据读取和写入,且通过块单位执行数据擦除,所述块单位的大小为所述页单位的大小的两倍或更大的自然数倍;
第一输入缓冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第一存储区与所述第二存储区之间进行缓冲;
第二输入缓冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第一存储区与所述第三存储区之间进行缓冲;
保存缓冲器,其存储容量等于或大于所述第一存储区的存储容量;以及
控制器,其通过与一个或多个块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区以及所述第一输入缓冲器和所述第二输入缓冲器,其中
所述控制器执行:
第一处理,其用于以扇区单位将多个数据写入所述第一存储区中;
第二处理,其用于以第一管理单位将存储在所述第一存储区中的数据清理至所述第一输入缓冲器,所述第一管理单位的大小为所述扇区单位的两倍或更大的自然数倍;
第三处理,其用于以第二管理单位将存储在所述第一存储区中的数据清理至所述第二输入缓冲器,所述第二管理单位的大小为所述第一管理单位的两倍或更大的自然数倍;
第四处理,其用于将所述第一输入缓冲器中所有页都被写入的逻辑块重新定位至所述第二存储区;
第五处理,其用于将所述第二输入缓冲器中所有页都被写入的逻辑块重新定位至所述第三存储区;
第六处理,其用于以所述第二管理单位将存储在所述第二存储区中的多个数据清理至所述第二输入缓冲器;以及
第七处理,其用于将写入在所述第一存储区中的所有有效数据写入所述保存缓冲器中,并且
当接收到要求所述第二处理和所述第三处理中的至少一个的写入请求时,以及当判断正执行的包括所述第四处理至所述第六处理的输入缓冲器清理处理超过预定时间时,挂起所述输入缓冲器清理处理,并且执行包括所述第七处理的旁路处理。
2.根据权利要求1的存储器系统,其中当分配给所述第二存储区的逻辑块的数目超过容许度时,所述控制器执行所述第六处理。
3.根据权利要求1的存储器系统,其中所述控制器将所述第一输入缓冲器的逻辑块的一部分作为不是所述第二处理的写入对象的所述保存缓冲器来进行管理。
4.根据权利要求3的存储器系统,其中所述控制器通过所述第一管理单位管理所述第一存储区和所述保存缓冲器。
5.根据权利要求4的存储器系统,其中在所述旁路处理中,所述控制器执行第十二处理,所述第十二处理用于在执行所述第七处理之后通过所述逻辑块的重新定位而将所述第二输入缓冲器中的所有有效数据移动至所述第三存储区。
6.根据权利要求5的存储器系统,其中在所述旁路处理中,所述控制器执行第十三处理,所述第十三处理用于在执行所述第十二处理之后开始所述写入请求的处理,且通过所述第一存储区将输入数据写入所述第二输入缓冲器中。
7.根据权利要求6的存储器系统,其中在所述旁路处理中,所述控制器在执行所述第十三处理之后重新开始所述输入缓冲器清理处理。
8.根据权利要求1的存储器系统,其中当所述第一存储区中的所述数据所属于的所述第二管理单位中的数据的数目超过规定值时,所述控制器执行所述第二处理和所述第三处理中的至少一者。
9.根据权利要求1的存储器系统,其中所述易失性半导体存储器为DRAM,且所述非易失性半导体存储器为NAND型闪速存储器。
10.一种存储器系统,包括:
作为高速缓冲存储器的第一存储区,其包括在易失性半导体存储器中;
第二存储区和第三存储区,其包括在非易失性半导体存储器中,在所述第二存储区和所述第三存储区中,通过页单位执行数据读取和写入且通过块单位执行数据擦除,所述块单位的大小为所述页单位的两倍或更大的自然数倍;
第一前级缓冲器,其包括在所述非易失性半导体存储器中,配置用于单独地存储用于所述第二存储区的具有高更新频率的数据;
第一输入缓冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第一存储区与所述第一前级缓冲器之间进行缓冲;
第二输入缓冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第一存储区与所述第三存储区之间进行缓冲;
保存缓冲器,其存储容量等于或大于所述第一存储区的存储容量;以及
控制器,其通过与一个或多个块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区、所述第一前级缓冲器以及所述第一输入缓冲器和所述第二输入缓冲器,其中
所述控制器执行:
第一处理,其用于以扇区单位将多个数据写入所述第一存储区中;
第二处理,其用于以第一管理单位将存储在所述第一存储区中的数据清理至所述第一输入缓冲器,所述第一管理单位的大小为所述扇区单位的两倍或更大的自然数倍;
第三处理,其用于以第二管理单位将存储在所述第一存储区中的数据清理至所述第二输入缓冲器,所述第二管理单位的大小为所述第一管理单位的两倍或更大的自然数倍;
第四处理,其用于将所述第一输入缓冲器中所有页都被写入的逻辑块重新定位至所述第一前级缓冲器;
第五处理,其用于将所述第二输入缓冲器中所有页都被写入的逻辑块重新定位至所述第三存储区;
第六处理,其用于以所述第二管理单位将存储在所述第二存储区中的多个数据清理至所述第二输入缓冲器;
第七处理,其用于将写入在所述第一存储区中的所有有效数据写入所述保存缓冲器中,
第八处理,其用于选择存储在所述第二存储区中的所述第一管理单位中的多个有效数据,且将所述有效数据重写在新逻辑块中;以及
第九处理,其用于将所述第一前级缓冲器中的逻辑块重新定位至所述第二存储区,并且
当接收到要求所述第二处理和所述第三处理中的至少一个的写入请求时,以及当判断正执行的包括所述第四处理至所述第六处理、所述第八处理和所述第九处理的输入缓冲器清理处理超过预定时间时,挂起所述输入缓冲器清理处理,并且执行包括所述第六处理的旁路处理。
11.根据权利要求10的存储器系统,其中当分配给所述第二存储区的逻辑块的数目超过容许度时,所述控制器执行所述第六处理和所述第八处理。
12.根据权利要求10的存储器系统,其中所述控制器通过逻辑块单位管理具有FIFO结构的所述第一前级缓冲器。
13.根据权利要求12的存储器系统,其中所述控制器执行第十四处理,所述第十四处理用于以所述第二管理单位将在所述第一前级缓冲器中最早登记的逻辑块中的数据清理到所述第二输入缓冲器。
14.根据权利要求13的存储器系统,其中当分配给所述第一前级缓冲器的逻辑块的数目超过容限度时,所述控制器执行所述第十四处理。
15.根据权利要求13的存储器系统,其中所述控制器对在执行所述第十四处理之后有效数据仍存在于其中的逻辑块执行所述第九处理。
16.根据权利要求10的存储器系统,其中所述控制器将所述第一输入缓冲器的逻辑块的一部分作为不是所述第二处理的写入对象的所述保存缓冲器来进行管理。
17.根据权利要求16的存储器系统,其中所述控制器通过所述第一管理单位管理所述第一存储区和所述保存缓冲器。
18.根据权利要求17的存储器系统,其中在所述旁路处理中,所述控制器执行第十二处理,所述第十二处理用于在执行所述第七处理之后通过所述逻辑块的重新定位而将所述第二输入缓冲器中的所有有效数据移动至所述第三存储区。
19.根据权利要求18的存储器系统,其中在所述旁路处理中,所述控制器执行第十三处理,所述第十三处理用于在执行所述第十二处理之后开始所述写入请求的处理,且通过所述第一存储区将输入数据写入所述第二输入缓冲器中。
20.根据权利要求19的存储器系统,其中在所述旁路处理中,所述控制器在执行所述第十三处理之后重新开始所述输入缓冲器清理处理。
21.根据权利要求10的存储器系统,其中当所述第一存储区中的所述数据所属于的所述第二管理单位中的数据的数目超过规定值时,所述控制器执行所述第二处理和所述第三处理中的至少一者。
22.根据权利要求10的存储器系统,其中所述易失性半导体存储器为DRAM,且所述非易失性半导体存储器为NAND型闪速存储器。
23.一种存储器系统,包括:
作为高速缓冲存储器的第一存储区,其包括在易失性半导体存储器中;
第二存储区和第三存储区,其包括在非易失性半导体存储器中,在所述第二存储区和所述第三存储区中,通过页单位执行数据读取和写入且通过块单位执行数据擦除,所述块单位的大小为所述页单位的两倍或更大的自然数倍;
第一前级缓冲器,其包括在所述非易失性半导体存储器中,配置用于单独地存储用于所述第二存储区的具有高更新频率的数据;
第二前级缓冲器,其包括在所述非易失性半导体存储器中,配置用于单独地存储用于所述第三存储区的具有高更新频率的数据;
第一输入缓冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第一存储区与所述第一前级缓冲器之间进行缓冲;
第二输入缓冲器,其包括在所述非易失性半导体存储器中,配置用于在所述第一存储区与所述第二前级缓冲器之间进行缓冲;
保存缓冲器,其存储容量等于或大于所述第一存储区的存储容量;以及
控制器,其通过与一个或多个块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区、所述第一前级缓冲器和所述第二前级缓冲器、以及所述第一输入缓冲器和所述第二输入缓冲器,其中
所述控制器执行:
第一处理,其用于以扇区单位将多个数据写入所述第一存储区中;
第二处理,其用于以第一管理单位将存储在所述第一存储区中的数据清理至所述第一输入缓冲器,所述第一管理单位的大小为所述扇区单位的两倍或更大的自然数倍;
第三处理,其用于以第二管理单位将存储在所述第一存储区中的数据清理至所述第二输入缓冲器,所述第二管理单位的大小为所述第一管理单位的两倍或更大的自然数倍;
第四处理,其用于将所述第一输入缓冲器中所有页都被写入的逻辑块重新定位至所述第一前级缓冲器;
第五处理,其用于将所述第二输入缓冲器中所有页都被写入的逻辑块重新定位至所述第二前级缓冲器;
第六处理,其用于以所述第二管理单位将存储在所述第二存储区中的多个数据清理至所述第二输入缓冲器;
第七处理,其用于将写入在所述第一存储区中的所有有效数据写入所述保存缓冲器中;
第八处理,其用于选择存储在所述第二存储区中的所述第一管理单位中的多个有效数据,且将所述有效数据重写在新逻辑块中;
第九处理,其用于将所述第一前级缓冲器中的逻辑块重新定位至所述第二存储区;
第十处理,其用于选择存储在所述第三存储区中的所述第二管理单位中的多个有效数据,且将所述有效数据重写在新逻辑块中;以及
第十一处理,其用于将所述第二前级缓冲器中的逻辑块重新定位至所述第三存储区,并且
当接收到要求所述第二处理和所述第三处理中的至少一个的写入请求时,以及当判断正执行的包括所述第四处理至所述第六处理、以及所述第八处理至所述第十一处理的输入缓冲器清理处理超过预定时间时,挂起所述输入缓冲器清理处理,并且执行包括所述第六处理的旁路处理。
24.根据权利要求23的存储器系统,其中当分配给所述第二存储区的逻辑块的数目超过容许度时,所述控制器执行所述第六处理和所述第八处理。
25.根据权利要求23的存储器系统,其中当分配给所述第二存储区的逻辑块的数目超过容许度时,所述控制器执行所述第十处理。
26.根据权利要求23的存储器系统,其中所述控制器通过逻辑块单位管理具有FIFO结构的所述第一前级缓冲器。
27.根据权利要求26的存储器系统,其中所述控制器通过逻辑块单位管理具有FIFO结构的所述第二前级缓冲器。
28.根据权利要求27的存储器系统,其中所述控制器执行第十四处理,所述第十四处理用于以所述第二管理单位将在所述第一前级缓冲器中最早登记的逻辑块中的数据清理到所述第二输入缓冲器。
29.根据权利要求28的存储器系统,其中当分配给所述第一前级缓冲器的逻辑块的数目超过容许度时,所述控制器执行所述第十四处理。
30.根据权利要求28的存储器系统,其中所述控制器对于在执行所述第十四处理之后有效数据仍存在于其中的逻辑块执行所述第九处理。
31.根据权利要求28的存储器系统,其中当分配给所述第二前级缓冲器的逻辑块的数目超过容许度时,所述控制器执行所述第十一处理。
32.根据权利要求28的存储器系统,其中所述控制器对于在所述第二前级缓冲器中最早登记的逻辑块执行所述第十一处理。
33.根据权利要求23的存储器系统,其中所述控制器将所述第一输入缓冲器的逻辑块的一部分作为不是所述第二处理的写入对象的所述保存缓冲器来进行管理。
34.根据权利要求33的存储器系统,其中所述控制器通过所述第一管理单位管理所述第一存储区和所述保存缓冲器。
35.根据权利要求34的存储器系统,其中在所述旁路处理中,所述控制器执行第十二处理,所述第十二处理用于在执行所述第七处理之后,通过所述逻辑块的重新定位而将所述第二输入缓冲器中的所有有效数据移动至所述第二前级缓冲器。
36.根据权利要求35的存储器系统,其中在所述旁路处理中,所述控制器执行第十三处理,所述第十三处理用于在执行所述第十二处理之后开始所述写入请求的处理,且通过所述第一存储区将输入数据写入所述第二输入缓冲器中。
37.根据权利要求36的存储器系统,其中在所述旁路处理中,所述控制器在执行所述第十三处理之后重新开始所述输入缓冲器清理处理。
38.根据权利要求23的存储器系统,其中当所述第一存储区中的数据所属于的所述第二管理单位中的数据的数目超过规定值时,所述控制器执行所述第二处理和所述第三处理中的至少一个。
39.根据权利要求23的存储器系统,其中所述易失性半导体存储器为DRAM,且所述非易失性半导体存储器为NAND型闪速存储器。
40.根据权利要求10的存储器系统,其中所述页单位的大小为所述第一管理单位的两倍或更大的自然数倍。
41.根据权利要求23的存储器系统,其中所述第二管理单位的大小为所述页单位的两倍或更大的自然数倍,且所述块单位的大小为所述第二管理单位的两倍或更大的自然数倍。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP051477/2008 | 2008-03-01 | ||
JP2008051477A JP4745356B2 (ja) | 2008-03-01 | 2008-03-01 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101641680A true CN101641680A (zh) | 2010-02-03 |
Family
ID=41055698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880006501A Pending CN101641680A (zh) | 2008-03-01 | 2008-09-22 | 存储器系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20100281204A1 (zh) |
EP (1) | EP2250566A4 (zh) |
JP (1) | JP4745356B2 (zh) |
KR (1) | KR101101655B1 (zh) |
CN (1) | CN101641680A (zh) |
TW (1) | TW200941218A (zh) |
WO (1) | WO2009110125A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902483A (zh) * | 2012-12-26 | 2014-07-02 | 擎泰科技股份有限公司 | 非易失性存储器的数据安排方法及存储器控制系统 |
CN107301133A (zh) * | 2017-07-20 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种构建丢失的FTL table的方法及装置 |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101632068B (zh) * | 2007-12-28 | 2015-01-14 | 株式会社东芝 | 半导体存储装置 |
JP4461170B2 (ja) | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
JP4691122B2 (ja) * | 2008-03-01 | 2011-06-01 | 株式会社東芝 | メモリシステム |
JP4439569B2 (ja) * | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
TWI370273B (en) | 2008-10-17 | 2012-08-11 | Coretronic Corp | Light guide plate |
JP5221332B2 (ja) * | 2008-12-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
JP5317690B2 (ja) * | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
CN102317925B (zh) | 2009-02-12 | 2014-07-23 | 株式会社东芝 | 存储器系统和控制存储器系统的方法 |
US8374480B2 (en) * | 2009-11-24 | 2013-02-12 | Aten International Co., Ltd. | Method and apparatus for video image data recording and playback |
JP5060574B2 (ja) * | 2010-03-16 | 2012-10-31 | 株式会社東芝 | メモリシステム |
JP5221593B2 (ja) * | 2010-04-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
JP2012008651A (ja) | 2010-06-22 | 2012-01-12 | Toshiba Corp | 半導体記憶装置、その制御方法および情報処理装置 |
TWI480731B (zh) * | 2010-06-30 | 2015-04-11 | Insyde Software Corp | 轉接裝置及經由該轉接裝置之除錯方法 |
JP2012128644A (ja) | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステム |
JP2012141946A (ja) * | 2010-12-16 | 2012-07-26 | Toshiba Corp | 半導体記憶装置 |
JP5535128B2 (ja) | 2010-12-16 | 2014-07-02 | 株式会社東芝 | メモリシステム |
TWI479315B (zh) * | 2012-07-03 | 2015-04-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
US20140032820A1 (en) * | 2012-07-25 | 2014-01-30 | Akinori Harasawa | Data storage apparatus, memory control method and electronic device with data storage apparatus |
CA2891355C (en) * | 2012-11-20 | 2022-04-05 | Charles I. Peddle | Solid state drive architectures |
TWI537734B (zh) * | 2013-06-18 | 2016-06-11 | 群聯電子股份有限公司 | 資料保護方法、記憶體控制器與記憶體儲存裝置 |
US9880778B2 (en) * | 2015-11-09 | 2018-01-30 | Google Inc. | Memory devices and methods |
JP2018041204A (ja) | 2016-09-06 | 2018-03-15 | 東芝メモリ株式会社 | メモリ装置及び情報処理システム |
FR3074317B1 (fr) | 2017-11-27 | 2019-11-22 | Idemia Identity & Security France | Procede d'acces a une zone memoire non volatile de type flash d'un element securise, tel qu'une carte a puce |
US10970216B2 (en) | 2017-12-27 | 2021-04-06 | Intel Corporation | Adaptive granularity write tracking |
US10949346B2 (en) * | 2018-11-08 | 2021-03-16 | International Business Machines Corporation | Data flush of a persistent memory cache or buffer |
TWI742961B (zh) * | 2020-12-10 | 2021-10-11 | 旺宏電子股份有限公司 | 快閃記憶體系統及其快閃記憶體裝置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3688835B2 (ja) * | 1996-12-26 | 2005-08-31 | 株式会社東芝 | データ記憶システム及び同システムに適用するデータ転送方法 |
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 |
KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US7173863B2 (en) * | 2004-03-08 | 2007-02-06 | Sandisk Corporation | Flash controller cache architecture |
US20050144379A1 (en) * | 2003-12-31 | 2005-06-30 | Eschmann Michael K. | Ordering disk cache requests |
KR100526190B1 (ko) * | 2004-02-06 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 재사상 방법 |
JP4768237B2 (ja) * | 2004-06-25 | 2011-09-07 | 株式会社東芝 | 携帯可能電子装置及び携帯可能電子装置の制御方法 |
US20070094445A1 (en) * | 2005-10-20 | 2007-04-26 | Trika Sanjeev N | Method to enable fast disk caching and efficient operations on solid state disks |
JP2008033788A (ja) * | 2006-07-31 | 2008-02-14 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法 |
US7814276B2 (en) * | 2007-11-20 | 2010-10-12 | Solid State System Co., Ltd. | Data cache architecture and cache algorithm used therein |
CN101632068B (zh) * | 2007-12-28 | 2015-01-14 | 株式会社东芝 | 半导体存储装置 |
JP4592774B2 (ja) * | 2008-03-01 | 2010-12-08 | 株式会社東芝 | メモリシステム |
JP4498426B2 (ja) * | 2008-03-01 | 2010-07-07 | 株式会社東芝 | メモリシステム |
JP4653817B2 (ja) * | 2008-03-01 | 2011-03-16 | 株式会社東芝 | メモリシステム |
JP4643667B2 (ja) * | 2008-03-01 | 2011-03-02 | 株式会社東芝 | メモリシステム |
-
2008
- 2008-03-01 JP JP2008051477A patent/JP4745356B2/ja not_active Expired - Fee Related
- 2008-09-22 WO PCT/JP2008/067598 patent/WO2009110125A1/en active Application Filing
- 2008-09-22 KR KR1020097018063A patent/KR101101655B1/ko not_active IP Right Cessation
- 2008-09-22 EP EP08872743A patent/EP2250566A4/en not_active Withdrawn
- 2008-09-22 US US12/529,193 patent/US20100281204A1/en not_active Abandoned
- 2008-09-22 CN CN200880006501A patent/CN101641680A/zh active Pending
- 2008-12-18 TW TW097149480A patent/TW200941218A/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103902483A (zh) * | 2012-12-26 | 2014-07-02 | 擎泰科技股份有限公司 | 非易失性存储器的数据安排方法及存储器控制系统 |
CN107301133A (zh) * | 2017-07-20 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种构建丢失的FTL table的方法及装置 |
CN107301133B (zh) * | 2017-07-20 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种构建丢失的FTL table的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2250566A4 (en) | 2011-09-28 |
WO2009110125A1 (en) | 2009-09-11 |
KR101101655B1 (ko) | 2011-12-30 |
TW200941218A (en) | 2009-10-01 |
US20100281204A1 (en) | 2010-11-04 |
JP2009211231A (ja) | 2009-09-17 |
JP4745356B2 (ja) | 2011-08-10 |
EP2250566A1 (en) | 2010-11-17 |
KR20090117930A (ko) | 2009-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101641680A (zh) | 存储器系统 | |
CN101681314B (zh) | 存储器系统 | |
CN101647007A (zh) | 存储器系统 | |
CN101689140B (zh) | 存储器系统 | |
CN101681315B (zh) | 存储器系统 | |
CN101681299A (zh) | 存储器系统 | |
CN101632068B (zh) | 半导体存储装置 | |
JP4551940B2 (ja) | メモリシステム | |
JP4653817B2 (ja) | メモリシステム | |
TWI420310B (zh) | 記憶體系統 | |
JP4691123B2 (ja) | メモリシステム | |
JP4762261B2 (ja) | メモリシステム | |
JP2009211219A (ja) | メモリシステム | |
CN100533408C (zh) | 一种闪存的安全读写方法 | |
CN101169751A (zh) | 具有闪存设备的系统及其数据恢复方法 | |
JP4592774B2 (ja) | メモリシステム | |
JP5221593B2 (ja) | メモリシステム | |
JP4510107B2 (ja) | メモリシステム | |
JP2009211222A (ja) | メモリシステム | |
JP4746641B2 (ja) | メモリシステム | |
JP5178857B2 (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: 20100203 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |