CN101681307A - 存储器系统 - Google Patents

存储器系统 Download PDF

Info

Publication number
CN101681307A
CN101681307A CN200980000126A CN200980000126A CN101681307A CN 101681307 A CN101681307 A CN 101681307A CN 200980000126 A CN200980000126 A CN 200980000126A CN 200980000126 A CN200980000126 A CN 200980000126A CN 101681307 A CN101681307 A CN 101681307A
Authority
CN
China
Prior art keywords
data
unit
address
track
memory
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
Application number
CN200980000126A
Other languages
English (en)
Inventor
矢野纯二
初田幸辅
松崎秀则
加藤亮一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of CN101681307A publication Critical patent/CN101681307A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data

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 Of A Hierarchy Structure (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

根据本发明的一个实施例所述的存储器系统包括:第一管理表,对与写入第一存储区的数据相关的地址进行管理;以及第二管理表,以第二管理单元中的地址为单位对指示所述第一存储区中所存储的数据的时间顺序的信息进行管理,并对于所述第二管理单元中的每个地址对指示在所述第二管理单元中的地址中所包含的所述第一管理单元中的数据的数目的有效数据数目信息进行管理。

Description

存储器系统
技术领域
本发明涉及到使用诸如闪存等非易失性半导体存储器装置进行配置的存储器系统。
背景技术
作为在计算机系统中所使用的外部存储装置,利用诸如NAND型闪存等非易失性半导体存储器进行配置的SSD(solid state drive,固态驱动器)吸引了注意力。与磁盘装置相比,所述闪存的优点有比如速度快且重量轻。
SSD包括多个闪存芯片、控制器(根据主机设备的请求对所述各个闪存芯片进行读写控制)、缓冲存储器(在所述各个闪存芯片和所述主机设备之间进行数据转移)、电源电路、以及到所述主机设备的连接接口(例如,专利文献1)。
像所述NAND闪存这样,作为非易失性半导体存储器装置,有这样的非易失性半导体存储器装置,这种装置在存储数据中一度以称作块的单位来擦除数据,然后进行写入;还有这样的非易失性半导体存储器装置,这种装置以称作页的单位进行读出和写入;以及还有这样的非易失性半导体存储器装置,其中,擦除、读出和写入的单位混合使用。
另一方面,主机设备(诸如个人电脑)在次级存储装置(诸如硬盘)中读写数据的单位被称作扇区。所述扇区的设置独立于半导体存储器装置的擦除、读出和写入的单位。
例如,所述半导体存储器装置中的块的大小(块大小)为512kB,其中的页的大小(页大小)为4kB,而所述主机设备中的扇区的大小(扇区大小)被设置为512B。
这样,所述半导体存储器装置的擦除、读出和写入的单位或许比所述主机设备的读出和写入的单位要大。
当个人电脑的次级存储装置(诸如硬盘)使用诸如半导体存储器装置进行配置时,需要使来自作为主机设备的个人电脑的小尺寸数据适应所述半导体存储器装置的块大小和页大小,并对所述数据进行地址转换。
闪存有一个趋势,即,随着数据写入之前进行的块的擦除的次数的增加,存储单元的退化会持续发生。所以,进行一种称作损耗平衡的处理,用来使数据更新部分在半导体存储器装置中均匀分散,使得所述半导体存储器装置中的所有存储单元的擦除次数大致均衡。
当使用这种闪存来配置大容量次级存储装置时,在进行地址转换中,如果数据管理的单位为小尺寸(例如,页大小),那么,管理表的大小就会增加,并且不适合所述次级存储装置的控制器中的主存储器。地址转换不能快速进行。这样,所述管理表的大小不可避免地会随着作为次级存储装置的NAND闪存的容量的增加而增加。所以,需要一种方法,尽量减小所述管理表的容量并且提高所述管理表的搜寻处理的速度。
在SSD中,如专利文献2所提出的,经常在闪存和主机设备之间插入缓存存储器,以减少所述闪存中的写入次数(擦除次数)。当从主机设备向所述缓冲存储器进行写入时,如果所述缓冲存储器满了,那么,在将数据从所述缓冲存储器清除到所述闪存之后再在所述缓冲存储器中写入数据。这样,在缓冲存储器写入的情形中,不像缓冲存储器读出那样,要进行清除处理,将数据清除到闪存中。所以,处理是复杂的,其管理表的大小会增加,并且所述管理表的搜寻处理费时较长。
[专利文献1]日本专利第3688835号
[专利文献2]国际专利申请第2007-528079号的公开的日文翻译
发明内容
根据本发明的一个实施例所述的存储器系统包括:
第一存储区,比如易失性半导体存储器中所包含的缓冲存储器;
第二和第三存储区,包含在非易失性半导体存储器中,其中,以页为单位进行数据的读和写,以及以大小为所述页单位的两倍或更多整数倍的物理块为单位进行数据擦除;以及
控制器,以与一个或多个所述物理块相关的逻辑块为单位将所述非易失性半导体存储器的存储区分配给所述第二和第三存储区,其中
所述控制器执行:
第一处理,用来以扇区为单位将多个数据写入所述第一存储区中,作为第一管理单元中的数据;
第二处理,用来将写入所述第一存储区中的数据清除(flush)到所述第二存储区中,作为所述第一管理单元中的数据;以及
第三处理,用来将写入所述第一存储区中的数据清除到所述第三存储区中,作为大小为所述第一管理单元的两倍或更多整数倍的第二管理单元中的数据,
所述控制器包括:
第一管理表,对与写入所述第一存储区的数据相关的地址进行管理;以及
第二管理表,以所述第二管理单元中的地址为单位对指示所述第一存储区中所存储的数据的时间顺序的信息进行管理,并对于所述第二管理单元中的每个地址对指示在所述第二管理单元中的地址中所包含的所述第一管理单元中的数据的数目的有效数据数目信息进行管理,以及所述控制器利用所述第一和第二管理表来执行所述第一到第三处理。
所以,可以快速地确定所述清除处理以便将所述第一存储区中的数据清除到所述第二或第三存储区中、增加写处理的速度、以及减小管理表的大小。
附图说明
图1是SSD的配置例子的方框图;
图2是NAND存储器芯片中所包含的一个物理块的配置例子的电路图以及四进制数据存储系统中的阈值分布;
图3是驱动器控制电路的硬件内部配置例子的方框图;
图4是处理器的功能配置例子的方框图;
图5是在NAND存储器和DRAM中所形成的功能配置的方框图;
图6是与从WC到NAND存储器的写处理相关的详细的功能方框图;
图7是LBA逻辑地址的图示;
图8是数据管理单元中的管理表的配置例子的图示;
图9是RC簇管理表的例子的图示;
图10是WC簇管理表的例子的图示;
图11是WC轨道管理表的例子的图示;
图12是轨道管理表的例子的图示;
图13是FS/IS管理表的例子的图示;
图14是MS逻辑块管理表的例子的图示;
图15是FS/IS逻辑块管理表的例子的图示;
图16是FS/IS内簇管理表的例子的图示;
图17是逻辑-物理转换表的例子的图示;
图18是读处理的操作例子的流程图;
图19是写处理的操作例子的流程图;
图20是各个部件之间的数据流中的输入和输出的组合图以及导致所述数据流的原因;
图21是个人电脑的例子的透视图;以及
图22是个人电脑中的体系结构的例子的图示。
具体实施方式
下面将参考附图详细描述根据本发明所述的存储器系统的示范性实施例。本发明不限于下面的实施例。
(实施例)
下面将参考附图来说明本发明的实施例。在下面的说明中,具有相同功能和配置的部件用相同的参考数字和符号来指示。只是在必要的时候才对这些部件进行重复说明。
首先定义在本说明书中所使用的术语。
物理页:在NAND存储器芯片中能够一起被读和写的单位。物理页的大小为例如4kB。然而,不包括添加到SSD中的主数据(用户数据等)上的冗余位(诸如错误校正码)。通常,4kB+冗余位(例如,几十B)为在存储器单元中同时进行写入的单位。然而,为了说明方便,物理页如上述那样进行定义。
逻辑页:SSD中所设置的写入和读出单位。逻辑页与一个或多个物理页相关。逻辑页的大小例如在8位正常模式中为4kB,而在32位倍速模式中为32kB。然而,不包括冗余位。
物理块:在NAND存储器芯片中能够独立进行擦除的最小单位。物理块包括多个物理页。物理块的大小为,例如,512kB。然而,不包括添加到SSD中的主数据上的冗余位(诸如错误校正码)。通常,512kB+冗余位(例如,几十B)为同时进行擦除的单位。然而,为了说明方便,物理块如上述那样进行定义。
逻辑块:SSD中所设置的擦除单位。逻辑块与一个或多个物理块相关。逻辑块的大小例如在8位正常模式中为512kB,而在32位倍速模式中为4MB。然而,不包括冗余位。
扇区:主机访问的最小单位。扇区大小为,例如,512B。
簇:用于管理SSD中的“小数据(细粒数据(fine grained data))”的管理单位。簇大小等于或大于扇区大小,并且,例如,其设置使得逻辑页的大小为所述簇大小的两倍或更多的整数倍。
轨道:用于管理SSD中的“大数据(粗粒数据(coarse grained data))”的管理单位。轨道大小的设置使得轨道大小为所述簇大小的两倍或更大整数倍,并且,例如,逻辑块的大小为所述轨道大小的两倍或更大整数倍。
自由块(FB):NAND型闪存中没有被分配使用的逻辑块。当分配使用所述自由块时,在进行擦除之后使用所述自由块。
坏块(BB):NAND型闪存中由于有大量的错误而不能作为存储区进行使用的物理块。例如,没有正常进行擦除操作的物理块被登记为坏块BB。
写入率:在预定的时间内,逻辑块的擦除量相对于从主机写入的数据量的统计值。当所述写入率较低时,NAND型闪存的损耗程度就比较小。
有效簇:存储有与逻辑地址相对应的最新数据的簇。
无效簇:存储有非最新数据的簇,由于具有同一逻辑地址的簇被写入其它存储区中,这些数据不再被查寻。
有效轨道:存储有与逻辑地址相对应的最新数据的轨道。
无效轨道:存储有非最新数据的轨道,由于具有同一逻辑地址的簇被写入其它存储区中,这些数据不再被查寻。
压缩(compaction):在管理对象中从逻辑块只提取有效簇和有效轨道,并将所述有效簇和有效轨道重新写入新的逻辑块中。
[第一实施例]
图1是SSD(solid state drive,固态驱动器)100的配置例子的方框图。SSD 100通过诸如ATA接口(ATA I/F)2这样的存储器连接接口与主机设备1(诸如个人电脑或CPU核)相连,作为主机设备1的外存储器。SSD100能够通过诸如RS232C接口(RS232C I/F)这样的通信接口3向调试及制造检测设备200发送数据或从该设备接收数据。SSD 100包括非易失性半导体存储器NAND型闪存(下文中简称为NAND存储器)10、作为控制器的驱动器控制电路4、易失性半导体存储器DRAM 20、电源电路5、用于状态显示的LED 6、探测驱动器中的温度的温度传感器7、以及保险丝8。
电源电路5从主机设备1这边的电源电路所提供的外部DC电源产生多个不同的内部DC电源电压,并将这些内部DC电源电压提供给SSD 100中的各个电路。电源电路5探测外部电源电压的上升沿,产生通电重置信号,并将所述通电重置信号提供给驱动器控制电路4。在主机设备1这边的电源电路和SSD 100中的电源电路5之间提供保险丝8。当外部电源电路所提供的电流太大时,保险丝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(Ferroelectric Random AccessMemory,铁电随机存取存储器)、PRAM(Phase-change Random AccessMemory,相变随机存取存储器)、或MRAM(Magnetoresistive RandomAccess Memory,磁阻随机存取存储器)来替代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能够通过使氮化物膜界面成为电荷存储层以收集电子来调节阈值。类似地,具有所述MONOS结构的存储器单元晶体管MT可以用来存储一位,也可以用来存储多值(等于或大于两位的数据)。
在所述每个NAND串中,在选择晶体管ST1的源极和选择晶体管ST2的漏极之间排列有(q+1)个存储器单元晶体管MT,使得其电流通路串联在一起。换言之,所述存储器单元晶体管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中存储两位的四进制数据存储模式(quaternary data storage mode)中的阈值分布的示意图。在所述四进制数据存储模式中,任何一个由高级页数据(upper page data)“x”和低级页数据(lower page data)“y”所定义的四进制数据“xy”能够被存储在存储器单元晶体管MT中。
例如,按存储器单元晶体管MT的阈值的顺序分配“11”、“01”、“00”、和“10”,作为四进制数据“xy”。数据“11”为擦除状态,其中,存储器单元晶体管MT的阈值电压为负。
在低级页写入操作中,根据低位数据“y”的写入,将数据“10”有选择地写入具有数据“11”(在所述擦除状态中)的存储器单元晶体管MT中。高级页写入之前的数据“10”的阈值分布大致位于高级页写入之后的数据“01”和数据“00”的阈值分布的中间,并且可以比高级页写入之后的阈值分布宽一些。在高级页写入操作中,将高位数据“x”有选择地写入数据“11”的存储器单元和数据“10”的存储器单元中。数据“01”和数据“00”就被写入存储器单元中。
图3是驱动器控制电路4的硬件内部配置例子的方框图。驱动器控制电路4包括数据访问总线101、第一电路控制总线102、和第二电路控制总线103。控制整个驱动器控制电路4的处理器104与第一电路控制总线102相连。引导ROM 105中存储有用于引导NAND存储器10中所存储的各个管理程序(FW:firmware固件)的引导程序,它通过ROM控制器106与第一电路控制总线102相连。时钟控制器107从图1所示的电源电路5接收通电重置信号并将重置信号和时钟信号提供给各个单元,它与第一电路控制总线102相连。
第二电路控制总线103与第一电路控制总线102相连。从图1所示的温度传感器7接收数据的I2C电路108、将状态显示信号提供给状态显示LED 6的并行IO(PIO)电路109、以及控制RS232C I/F 3的串行IO(SIO)电路110与第二电路控制总线103相连。
ATA接口控制器(ATA控制器)111、第一ECC(Error Checking andCorrection,错误检查和校正)电路112、NAND控制器113、以及DRAM控制器114与数据访问总线101和第一电路控制总线102相连。ATA控制器111通过ATA接口2将数据发送到主机设备1以及从主机设备1接收数据。用作数据工作区和固件扩充区的SRAM 115通过SRAM控制器116与数据访问总线101相连。当启动NAND存储器10中所存储的固件时,由引导ROM 105中所存储的引导程序将所述固件传输到SRAM 115。
NAND控制器113包括进行接口处理以与NAND存储器10进行接口的NAND I/F 117、第二ECC电路118、以及用于DMA传输控制的DMA控制器119,其中DMA控制器119在NAND存储器10和DRAM 20之间进行访问控制。第二ECC电路118进行第二校正码的编码以及进行第一错误校正码的编码和解码。第一ECC电路112进行第二错误校正码的解码。所述第一错误校正码和所述第二错误校正码为,例如,海明码、BCH(Bose Chaudhuri Hocqenghem)码、RS(Reed Solomon)码、或LDPC(low density parity check,低密度奇偶校验)码。第二错误校正码的校正能力高于第一错误校正码的校正能力。
如图1和3所示,在NAND存储器10中,4个并联工作元件10a到10d通过4个8位信道(4ch)并联到驱动器控制电路4中的NAND控制器113上。
根据所述4个并联工作元件10a到10d是独立操作的还是并行操作的以及是否使用在NAND存储器芯片中所提供的倍速模式(多页程序/多页读/多块擦除)这两者的组合,提供下面要说明的三种访问模式。
(1)8位正常模式
8位正常模式是只操作一个信道并以8位为单位来进行数据转移的模式。以物理页大小(4kB)来进行写入和读出。以物理块大小(512kB)来进行擦除。一个逻辑块与一个物理块相关,并且逻辑块大小为512kB。
(2)32位正常模式
32位正常模式是并行操作4个信道并以32位为单位进行数据转移的模式。以物理页大小×4(16kB)来进行写入和读出。以物理块大小×4(2MB)来进行擦除。一个逻辑块与4个物理块相关,并且逻辑块大小为2MB。
(3)32位倍速模式
32位倍速模式是并行操作4个信道并利用NAND存储器芯片的倍速模式进行写入和读出的模式。以物理页大小×4×2(32kB)来进行写入和读出。以物理块大小×4×2(4MB)来进行擦除。一个逻辑块与8个物理块相关,并且逻辑块大小为4MB。
在并行操作4个信道的32位正常模式或32位倍速模式中,并行工作的4个或8个物理块为NAND存储器10的擦除单元,而并行工作的4个或8个物理页为NAND存储器10的写入单元和读出单元。在下面所说明的操作中,基本上使用32位倍速模式。例如,假设一个逻辑块=4MB=2i个轨道=2j个页=2k个簇=2l个扇区(i、j、k和l为自然数,并且有i<j<k<l的关系)。
在32位倍速模式中所访问的逻辑块以4MB为单位进行访问。8个(2×4ch)物理块(一个物理块=512kB)与所述逻辑块相关。当探测到以物理块为单位进行管理的坏块BB时,所述坏块BB就是不可使用的。所以,在这种情形中,与所述逻辑块相关的8个物理块的组合就变为不包括所述坏块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是由执行SRAM 114中所存储的管理程序的处理器104所实现的主要功能单元。
在本实施例中,主要说明数据管理单元120所实现的功能。数据管理单元120提供例如ATA命令处理单元121请求作为存储装置的NAND存储器10和DRAM 20根据所述主机设备所发送的各种命令(诸如写请求、缓存清除请求、以及读请求)提供的功能、对主机地址区和NAND存储器10之间的对应关系进行管理并保护管理信息、以及利用DRAM 20和NAND 10提供快速而高效的数据读出和写入功能,确保NAND 10的可靠性。
图5是在NAND存储器10和DRAM 20中所形成的功能块的图。在主机1和NAND存储器10之间插入在DRAM 20中所配置的写缓存(WC)21和读缓存(RC)22。WC 21临时存储来自主机设备1的写数据。RC 22临时存储来自NAND 10的读数据。WC 21和RC 22可以被配置在不同的DRAM芯片上或上述其它类型的存储器芯片上。
NAND存储器10中的逻辑块由数据管理单元120分配给前级存储区(FS:Front Storage,前级存储)12、中间级存储区(IS:IntermediateStorage,中间级存储)13和主存储区(MS:主存储)11的各个管理区,以便减少写入期间NAND存储器10的擦除次数。FS 12以簇为单位(即,“小单位”)来管理来自WC 21的数据,并将小数据(细粒度数据,finegrained data)存储一段短暂的时间。IS 13以簇为单位(即,“小单位”)管理从FS 12溢出的数据,并将小数据(细粒度数据,fine grained data)存储一段较长的时间。MS 11以轨道为单位(即,“大单位”)存储来自WC 21、FS 12、和IS 13的数据,并将大数据(粗粒度数据,coarse graineddata)存储一段较长的时间。例如,存储容量的关系有MS>IS,FS>WC。
当在NAND存储器10的所有存储区中采用小管理单元时,后面要说明的管理表的大小就扩大了,并且不适合DRAM 20。所以,NAND存储器10中的各级存储被配置来以小管理单位只管理最近刚写入的数据和小数据,其中写入NAND存储器10的效率较低。国际申请(InternationalApplication)第字PCT2008/JP/073950号中描述了在SSD 100中使用所述“小单位”以及“大单位”的技术,该申请的全部内容以引述的方式纳入这里。
图6是与从WC 21到NAND存储器10的写处理相关的更详细的功能方框图。在FS 12的前级提供对来自WC 21的数据进行缓冲存储的FS输入缓冲器(FSIB)12a。在MS 11的前级提供对来自WC 21、FS 12或IS 13的数据进行缓冲存储的MS输入缓冲器(MSIB)11a。在MS 11中提供轨道前级存储区(TFS)11b。TFS 11b是插在MSIB 11a和MS11之间的具有FIFO(First in First out,先进先出)结构的缓冲器。TFS 11b中所记录的数据是更新频率比MS 11中所记录的数据的更新频率更高的数据。NAND存储器10中的任何逻辑块都被分配给了MS 11、MSIB 11a、TFS11b、FS 12、FSIB 12a和IS 13。
下面详细说明图5和6中所示的各个部件的具体功能配置。当主机设备1对SSD 100进行读或写时,主机设备1通过ATA接口输入LBA(LogicalBlock Addressing,逻辑块地址)作为逻辑地址。如图7所示,所述LBA是逻辑地址,其中从0开始的序列号被附加的扇区(大小:512B)上。
在本实施例中,作为WC 21、RC 22、FS 12、IS 13和MS 11(它们是图5所示的部件)的管理单位,定义逻辑簇地址和逻辑轨道地址,前者由在顺序上等于或高于LBA的低阶第(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的自然数)组相联(set associative)系统来管理,并且能够在一个条目中存储一个簇的数据。一行由所述逻辑簇地址的LSB(k-i)位来确定。RC 22可以按全相联(full-associative)系统来管理,或者可以按简单的FIFO系统来管理。
写缓存(WC)21
下面说明WC 21。 WC 21是用于根据ATA命令处理单元121的写请求临时存储来自主机设备1的写数据的区域。WC 21按m行/n路(m为等于或大于2(k-i)的自然数,n为等于或大于2的自然数)组相联(setassociative)系统来管理,并且能够在一个入口中存储一个簇的数据。一行由所述逻辑簇地址的LSB(k-i)位来确定。例如,从第1路到第n路顺序搜寻可写的路。WC 21中所寄存的轨道由后面要说明的WC轨道管理表24的FIFO结构按LRU(least recently used,最近最少使用的)来管理,使得最先更新的顺序是已知的。RC 21可以按全相联(full-associative)系统来管理。WC 21的行的数目和路的数目可以与RC 22的不同。
根据写请求所写入的数据一度被存储在WC 21中。从WC 21到NAND10要清除的数据的确定方法按照下面所说明的规则来进行。
(i)当由某个标签所确定的某个行中的可写路为最后一个(在本实施例中,为第n个)自由路(free way)时,即,当使用最后一个自由路时,在所述行中所寄存的轨道中基于LRU所最早更新的轨道被确定为要进行清除。
(ii)当WC 21中所寄存的不同轨道的数目超过了预定的允许数时,WC中簇的数目小于预定数的轨道被确定为要按LRU的顺序进行清除。
根据上述的规则来确定要清除的轨道。在清除轨道中,同一轨道中所包含的所有数据都被清除。当要清除的数据量超过例如轨道大小的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时,在WC 21中的轨道中按LRU的顺序选择满足要清除的数据量不超过轨道大小的50%这个条件的轨道,并将所述轨道的簇添加到清除候选中,直到要清除的簇的数目达到2k为止。换言之,通过从最早的轨道起按顺序在所述WC中跟踪轨道来从具有2(k-i-1)个或少于2(k-i-1)个有效簇的轨道中提取簇,并且当有效簇的数目达到2k时,以逻辑块为单位将所述簇清除到FSIB12a中。然而,如果没有找到2k个有效簇,则以逻辑页为单位将所述簇清除到FSIB 12a中。用来判断是以逻辑块还是以逻辑页为单位来进行到FS12的清除的有效簇数目阈值不限于一个逻辑块的值(即2k),可以是一个比一个逻辑块的值稍小的值。
在来自ATA命令处理单元121的缓存清除(Cache Flush)请求中,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(free block)。当FS 12中的逻辑块被无效化时,就获得了新的自由块FB并将其分配给FS12。
当从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中的各部件之间的数据移动方法,有两种方法,即“移动”和“复制”。“移动”是一种简单地进行后面要说明的管理表的指针位置的重新定位而不进行实际的数据重写的方法。“复制”是一种以页、轨道、或块为单位将一个部件中存储的数据实际重写到另一个部件中的方法。
中间级存储区(IS)13
下面说明IS 13。在IS 13中,以与FS 12相同的方式以簇为单位进行数据的管理。IS 13中所存储的数据可以被认为是具有低更新频率的数据。当从FS 12到IS 13进行逻辑块的移动(“移动”)时,即从FS 12进行所述逻辑块的清除时,通过指针的重新定位,将作为清除对象的逻辑块(它先前是FS 12的管理对象)变为IS 13的管理对象。根据所述逻辑块从FS 12到IS 13的移动,当IS 13中的块的数目超过了IS 13所允许的预定上限值时,即,当所述IS中可写的自由块FB的数目下降到小于某个阈值时,进行从IS 13到MS 11的数据清除以及压缩处理(compaction processing)。将IS 13中的块的数目恢复到某个特定的值。
IS 13利用轨道中的有效簇的数目来执行下面要说明的清除处理和压缩处理。
轨道按有效簇的数目×有效簇系数(根据在逻辑块(其中在MS 11中有无效轨道)中是否有轨道进行加权的数目)的顺序进行拣选;当存在无效轨道时所述数目大于当不存在无效轨道时的所述数目)。收集乘积值大的2i+1个轨道(两个逻辑块的),将其增加到自然数倍与逻辑块大小同样大,并将其清除到MSIB 11a中。
当有效簇数目最小的两个逻辑块的有效簇的总数例如等于或大于预设的2k(一个逻辑块的)时,重复上述步骤(进行所述步骤,直到在IS中从两个逻辑块能够产生一个自由块FB为止)。
在IS中,从有效簇数目最小的逻辑块按顺序收集2k个簇,并进行压缩。
这里,选择有效簇数目最小的两个逻辑块。然而,所述数目不限于2,只必须是等于或大于2的数目。所述预设值只必须等于或小于能够被存储在数目比所选逻辑块的数目小1的逻辑块中的簇的数目。
主存储区(MS)11
下面说明MS 11。在MS 11中,以轨道为单位进行数据管理。MS 11中所存储的数据可以被认为是具有低的更新频率。当从WC 21、FS 12、或IS 13“复制”或“移动”轨道到MS 11中时,将所述轨道写入被分配给MSIB 11a的逻辑块。另一方面,当从FS 12、IS 13等只写入所述轨道的一部分中的数据(簇)时,进行后面要说明的被动合并(passive merge),用来将MS 11中的现有轨道和新数据合并起来以产生新轨道,然后将所产生的轨道写入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进行管理,该表是一个反向查寻表(reverselookup table)。在所述反向查寻表中,能够从存储装置的位置搜寻在该位置处所存储的逻辑地址。WC 21由WC簇管理表25(它是一个反向查寻表)和WC轨道管理表24(它是一个前向查寻表(forward lookup table))进行管理。在所述前向查寻表中,从一个逻辑地址能够搜寻与所述逻辑地址相对应的数据所在的存储装置的位置。
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存储器10读到DRAM 20上。
RC簇管理表23(反向查寻)
下面参考图9来说明RC簇管理表23。如上所述,RC 22按n路组相联系统进行管理,该系统由逻辑簇地址LSB(k-i)位进行索引。RC簇管理表23是用于对RC(簇大小×m行×n路)22的各个条目的标签进行管理的表。所述每个标签都包括一个包含多个位的状态标记23a和一个逻辑轨道地址23b。除了指示所述条目是否可以使用(有效/无效)的有效位之外,状态标记23a还包括例如指示所述条目是否在等待从NAND存储器10进行读出的位和指示所述条目是否在等待向ATA命令处理单元121进行读出的位。RC簇管理表23作为反向查寻表,用来从DRAM 20中的标签存储位置搜寻与LBA一致的逻辑轨道地址。
WC簇管理表25(反向查寻)
下面参考图10来说明WC簇管理表25。如上所述,WC 21按n路组相联系统进行管理,该系统由逻辑簇地址LSB(k-i)位进行索引。WC簇管理表25是用于对WC(簇大小×m行×n路)21的各个条目的标签进行管理的表。所述每个标签都包括一个多个位的状态标记25a、一个扇区位置位图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 structure)表示轨道在WC 21中的寄存顺序(LRU)。所述LRU可以由WC 21中最后更新的顺序来表示。每个链接列表中的条目包括逻辑轨道地址24a、所述逻辑轨道地址中所包括的WC 21中的有效簇的数目24b、路-行位图24c、和指示到下一个条目的指针的下一个指针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具有阵列格式(array format),以逻辑轨道地址30a作为索引。以逻辑轨道地址30a为索引的每个条目包括诸如簇位图30b、逻辑块ID 30c+逻辑块内轨道位置30d、簇表指针(cluster table pointer)30e、FS簇的数目30f、和IS簇的数目30g等信息。轨道管理表30是前向查寻表,因为,使用逻辑轨道地址作为索引,可以获得所要求的信息,诸如逻辑块ID(与存储装置位置相对应),其中存储着与所述逻辑轨道地址相对应的轨道。
簇位图30b是通过将属于一个逻辑轨道地址范围的2(k-i)个簇按逻辑簇地址的上升顺序分成例如8份而获得的位图。8位中的每个位指示了与2(k-i-3)个簇地址相对应的簇是否在MS 11或在FS 12或IS 13中。当所述位为“0”时,这表明作为搜寻对象的簇肯定在MS 11中。当所述位为“1”时,这表明所述簇可能在FS 12或IS 13中。
逻辑块ID 30c是用于识别逻辑块ID的信息,其中存储着与逻辑轨道地址相对应的轨道。逻辑块内轨道位置30d指示了在由逻辑块ID 30c所指定的逻辑块中与逻辑轨道地址30a相对应的轨道的存储位置。因为一个逻辑块最多包括2i个有效轨道,逻辑块内轨道位置30d利用i位来识别2i个轨道位置。
簇表指针30e是指向具有链接列表结构的FS/IS管理表40的每个链接列表(list)的顶部条目的指针。在通过簇位图30b进行搜寻中,当表明所述簇可能在FS 12或IS 13中时,利用簇表指针30e来对FS/IS管理表40进行搜寻。FS簇的数目30f指示了在FS 12中所存在的有效簇的数目。IS簇的数目30g指示了在IS 13中所存在的有效簇的数目。
FS/IS管理表40(前向搜寻)
参考图13来说明FS/IS管理表40。FS/IS管理表40是一个用于以逻辑簇地址为单位对FS 12(包括FSIB 12a)或IS 13中所存储的数据的位置进行管理的表。如图13所示,所形成的FS/IS管理表40对每个逻辑轨道地址有一个独立的链接列表格式。如上所述,指向每个链接列表的顶部条目的指针被存储在轨道管理表30的簇表指针30e域中。在图13中,显示了两个逻辑轨道地址的链接列表。每个条目包括逻辑簇地址40a、逻辑块ID 40b、逻辑块内簇位置40c、FS/IS块ID 40d、和下一个指针40e。FS/IS管理表40是一个前向查寻表,因为,从逻辑簇地址40a获取所要求的信息,诸如逻辑块ID 40b和逻辑块内簇位置40e(与存储装置位置相对应),其中存储有与逻辑簇地址40a相对应的簇。
逻辑块ID 40b是用于识别逻辑块ID的信息,其中存储着与逻辑块地址40a相对应的簇。逻辑块内簇位置40c指示了在由逻辑块ID 40b所指定的逻辑块中与逻辑簇地址40a相对应的簇的存储位置。因为一个逻辑块最多包括2k个有效簇,所以,逻辑块内簇位置40c利用k位来识别2k个簇位置。FS/IS块ID是后面要说明的FS/IS逻辑块管理表42的索引,它被寄存在FS/IS块ID 40d中。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中,也寄存了与属于FS12(包括FSIB 12a)和IS 13的逻辑块相关的信息。所形成的MS逻辑块管理表35具有阵列格式,以逻辑块ID 35a作为索引。如果是128GB的NAND存储器10,那么条目数最多可以为32K个条目。每个条目都包括2i个轨道的轨道管理指针35b、有效轨道数35c、可写的顶部轨道35d、以及有效标记35e。MS逻辑块管理表35是一个反向查寻表,因为从与存储装置位置相对应的逻辑块ID 35a可以获得所要求的信息,诸如所述逻辑块中所存储的逻辑轨道地址。
轨道管理指针35b在由逻辑块ID 35a所指定的逻辑块中存储着与2i个轨道位置中的每个轨道位置相对应的逻辑轨道地址。可以利用所述逻辑轨道地址对以逻辑轨道地址作为索引的轨道管理表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管理表40中的FS/IS块ID 40d来对FS/IS逻辑块管理表42进行访问。每个条目包括逻辑块ID 42b、块内簇表42c、有效簇的数目42d、可写的顶部页42e、和有效标记42f。MS逻辑块管理表35是一个反向查寻表,因为从与存储装置位置相对应的FS/IS块ID 42来获得所要求的信息,诸如逻辑块中所存储的簇。
在逻辑块ID 42b中寄存了MS逻辑块管理表35中所寄存的逻辑块中的与属于FS 12(包括FSIB 12a)和IS 13的逻辑块相对应的逻辑块ID。在块内簇表42c中寄存了后面要说明的FS/IS内簇管理表44的索引,该索引指示了通过在逻辑块中的每个簇位置中寄存了哪个逻辑簇地址而指定的逻辑簇。有效簇的数目42d指示了由FS/IS块ID 42a所指定的逻辑块中所存储的簇中的有效簇的数目(最大为2k)。可写的顶部页位置42e指示了当FS/IS块ID 42a所指定的逻辑块为要进行附加记录的块时可进行附加记录的顶部页位置(0到2j-1,当附加记录完成时为2i)。当所述逻辑块条目被定为FS 12(包括FSIB 12a)或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个簇位置相对应的信息被安排在连续的区域中。包含2k个信息的表被存储起来,其数目(P)与属于FS 12和IS 13的逻辑块的数目等价。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的8个物理块ID(物理块地址)。擦除次数50c指示了所述逻辑块ID的擦除次数。坏块(BB)以物理块(512KB)为单位进行管理。然而,所述擦除次数在32位倍速模式中以一个逻辑块(4MB)为单位进行管理。读出次数50d指示了所述逻辑块ID的读出次数。擦除次数50c可以用在例如损耗平衡处理中,用来对NAND型闪存的重写次数进行平衡。读出次数50d可以用在刷新处理中,用来对保持特性变差的物理块中所存储的数据进行重写。
在国际专利申请PCT/JP2008/066508号和PCT/JP2008/066507号中描述了所述损耗平衡处理的例子。在国际专利申请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将如上所述从轨道管理表30所获得的逻辑块ID 30c和逻辑块内位置30d以及所述LBA的逻辑簇地址的LSB(k-i)位传送给物理NAND层管理单元120c。
物理NAND层管理单元120c从图17所示的以逻辑块ID为索引的逻辑-物理转换表50中获取与逻辑块ID 30c相对应的物理块地址(物理块ID)(步骤S160)。数据管理单元120从逻辑块内轨道位置30d计算所获取的物理块ID中的轨道位置(轨道顶部位置),并进一步从所述LBA的逻辑簇地址的LSB(k-i)位计算相对于所述物理块ID中的计算出的轨道顶部位置的偏移。于是,数据管理单元120能够获得所述物理块中的簇。数据管理单元120将从NAND存储器10中的MS 11所获得的所述簇通过RC 22发送到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将从NAND存储器10中的FS 12或IS 13所获得的簇通过RC 22发送到ATA命令处理单元121(步骤S180)。
在对FS/IS管理表40进行的搜寻中,当作为搜寻对象的簇不存在时(步骤S150),数据管理单元120再次对轨道管理表30中的条目进行搜寻,并决定MS 11中的一个位置(步骤S170)。
写处理
参考图19中的流程图来说明写处理。由写命令所写的数据总是一度被存储在WC 21中。之后,根据情况,所述数据被写入NAND存储器10中。在写处理中,可能进行清除处理(flush processing)和压缩处理(compactionprocessing)。在本实施例中,写处理大致分成两个阶段,即写缓存闪处理(write cache flash processing,下文中称作WCF处理)和清空输入缓冲器处理(clean input buffer processing,下文中称作CIB处理)。步骤S300到S320指示了来自ATA命令处理单元121的写请求的处理到WCF处理。步骤S330到最后一步指示了CIB处理。
WCF处理用于将WC 21中的数据复制到NAND存储器10(FS 12中的FSIB 12a或MS 11中的MSIB 11a)中。来自ATA命令处理单元121的单独的写请求或缓存清除请求(Cache Flush request)只能由这个处理来完成。这就可以将开始对ATA命令处理单元121所发出的写请求进行处理的延迟限制为写入与WC 21的容量等价的NAND存储器10中所用的时间这个极限。
CIB处理包括,将由WCF处理写入FSIB 12a中的数据移动到FS 12中的处理和将由WCF处理写入MSIB 11a中的数据移动到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确保这个条目为用于写簇的条目,因为所述条目要被覆写(有效(不可使用)→等待从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的路,或者是具有有效(不可使用)和等待向NAND进行清除这样的状态标记25a的路。当状态标记25a为等待向NAND进行清除时,这意味着,清除开始了,并且一个条目是,等待所述清除的完成。当所述可写的路不是最后的第n路并且所述可写的路是具有无效(可使用)这样的状态标记25a的路时,数据管理单元120确保这个条目为用于簇写入的条目(无效(可使用)→等待从ATA的写入)。数据管理单元120向ATA命令处理单元121通报与所述条目相对应的DRAM地址,并使ATA命令处理单元121执行写入。以与上述同样的方式,数据管理单元120更新WC簇管理表25和WC轨道管理表24(步骤S320)。
当所述可写的路不是最后的第n路并且当所述可写的路是具有有效(不可使用)和等待向NAND进行清除这样的状态标记25a的路时,数据管理单元120确保这个条目为用于写入簇的条目(有效(不可使用)和等待向NAND进行清除→有效(不可使用)和等待从NAND进行清除和等待从ATA进行写入)。当所述清除完成时,数据管理单元120将状态标记25a改变为等待从ATA写入、向ATA命令处理单元121通报与所述条目相对应的DRAM地址、并使ATA命令处理单元121执行写入。以与上述同样的方式,数据管理单元120更新WC簇管理表25和WC轨道管理表24(步骤S320)。
当输入了来自ATA命令处理单元121的写请求时,当清除处理不必启动时,进行上述处理。另一方面,在输入了写请求之后,当启动了清除处理时,进行下述处理。在步骤S305中,当在所确定的行中的可写的路为最后的第n路时,数据管理单元120基于(i)中所说明的条件,即,将所确定的数据从WC 21清除到NAND存储器10中的方法,选择要进行清除的轨道(即,WC 21中的某个条目):
(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)。后面将说明从WC 21到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进行后面要说明的内部轨道扇区填充(intra-track sector padding),以便通过从NAND存储器10读出所述同一逻辑轨道地址中所包含的丢失扇区,与WC 21中不存在的扇区进行合并。
2.当决定要进行清除的轨道数小于2i时,数据管理单元120添加决定要进行清除的具有2(k-i-1)个或更多有效簇的轨道,直到在WC 21中从最早的轨道算起决定要进行清除的轨道的数目达到2i为止。
3.当有2i个或更多的轨道要进行复制时,数据管理单元120以逻辑块为单位在MSIB 11a中进行写入,以每2i个轨道作为一组。
4.数据管理单元120对不能以轨道为单位在MSIB 11a中形成2i个一组的轨道的那些轨道进行写入。
5.在所述复制完成后,在所述FS、IS和MS中已经存在的那些轨道中,数据管理单元120使属于所述复制轨道的簇和轨道无效化。
下面说明在从WC 21到MSIB 11a进行的复制处理中所涉及的各个管理表的更新处理。数据管理单元120将WC簇管理表25中属于被清除轨道的WC 21中的所有簇所对应的条目中的状态标记25a设置为无效。之后,就可以在这些条目中进行写入。至于WC轨道管理表24中与被清除的轨道相对应的列表,数据管理单元120改变或删除例如前面最近的一个列表的下一个指针24d,并使所述列表无效。
另一方面,当从WC 21到MSIB 11a进行轨道清除时,数据管理单元120根据所述轨道清除更新轨道管理表30和MS逻辑块管理表35。首先,数据管理单元120搜寻作为轨道管理表30的索引的逻辑轨道地址30a,以判断与所述清除的轨道相对应的逻辑轨道地址30a是否已经被寄存。当所述逻辑轨道地址30a已经被寄存时,数据管理单元120更新所述索引的簇位图30b(因为所述轨道被清除到MS 11一边,因此所有的相关位都被设置为“0”)、逻辑块ID 30c+逻辑块内轨道位置30d等域。当与所清除的轨道相对应的逻辑轨道地址30a没有被寄存时,数据管理单元120在相关的逻辑轨道地址30a的条目中寄存簇位图30b以及逻辑块ID 30c+逻辑块内轨道位置30d。数据管理单元120根据轨道管理表30的变化在需要时更新MS逻辑块管理表35中的逻辑块ID 35a、轨道管理指针35b、有效轨道数35c、可写的顶部轨道35d等条目。
当从其它区域(FS 12和IS 13)向MS 11进行轨道写入时,或当通过压缩处理在MS 11中进行内部MS轨道写入时,可以将作为写入对象的所述逻辑轨道地址中所包括的WC 21中的有效簇同时写入MS 11中。这种被动合并(passive merge)可以作为从WC 21到MS 11进行的写入。当进行这种被动合并时,从WC 21中删除所述簇(无效化的)。
WC→FSIB(复制)
当根据基于有效簇数目(所述有效簇数目等于或大于2(k-i-1))所做出的判断从WC 21向FSIB 12a进行清除时,数据管理单元120执行下面要说明的过程。
1.参考在与要被清除的簇相对应的标签中的扇区位置位图25b,当扇区位置位图25b并非均为“1”时,数据管理单元120进行后面要说明的内部簇扇区填充(intra-cluster sector padding),以便通过从NAND存储器10读出所述同一逻辑簇地址中所包含的丢失扇区,与WC 21中不存在的扇区进行合并。
2.数据管理单元120从只具有少于2(k-i-1)个有效簇的轨道中提取簇,按从最早的轨道开始的顺序跟踪WC中的轨道,并且当有效簇的数目达到2k时,以逻辑块为单位将所有的簇写入FSIB 12a中。
3.当没有找到2k个有效簇时,数据管理单元120将所具有的有效簇的数目小于2(k-i-1)的所有轨道写入FSIB 12a中,写入轨道的数目等价于逻辑页的数目。
4.在所述复制完成后,在FS 12和IS 13中已经存在的那些簇中,数据管理单元120使与被复制的簇具有同一逻辑簇地址的簇无效化。
下面说明在从WC 21到FSIB 12a进行的复制处理中所涉及的各个管理表的更新处理。数据管理单元120将WC簇管理表25中属于被清除轨道的WC 21中的所有簇所对应的条目中的状态标记25a设置为无效。之后,就可以在这些条目中进行写入。至于WC轨道管理表24中与被清除的轨道相对应的列表,数据管理单元120改变或删除例如前面最近的一个列表的下一个指针24d,并使所述列表无效。
另一方面,当从WC 21到FSIB 12a进行簇清除时,数据管理单元120根据所述簇清除来更新轨道管理表30中的簇表指针30e、FS簇的数目30f等。数据管理单元120也更新FS/IS管理表40中的逻辑块ID 40b、逻辑块内簇位置40c等。对于原来在FS 12中不存在的簇,数据管理单元120在FS/IS管理表40的链接列表上添加列表。根据所述更新,数据管理单元120更新MS逻辑块管理表35、FS/IS逻辑块管理表42、和FS/IS内簇管理表44的相关部分。
CIB处理
当上述WCF处理完成时,逻辑NAND层管理单元120b执行CIB处理,该处理包括将由WCF处理写入FSIB 12a的数据移动到FS 12的处理和将由WCF处理写入MSIB 11a的数据移动到MS 11的处理。当CIB处理开始时,如上所述,可能以连锁反应的方式进行块之间的数据移动以及进行压缩处理。总的处理所需要的时间实际上随着状态而变化。基本上,在CIB处理中,首先,在MS 11中进行CIB处理(步骤S330),随后,在FS 12中进行CIB处理(步骤S340),再次在MS 11中进行CIB处理(步骤S350),在IS 13中进行CIB处理(步骤S360),最后,再次在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、FS12和IS 13向MS 11进行轨道移动时,将所述轨道写入MSIB 11a。在MSIB11a中的写入完成后,如上所述,更新轨道管理表30,并改变包含轨道的逻辑块ID 30c、块内轨道位置30d等(移动)。当在MSIB 11a中写入新的轨道时,将MS 11或TFS 11b中从一开始就有的轨道无效化。通过从MS逻辑块管理表35中使存储着旧轨道信息的逻辑块的条目所包括的轨道无效化来实现这种无效化处理。具体说,删除MS逻辑块管理表35的所述条目中的轨道管理指针35b域中的相关轨道的指针,并将有效轨道的数目减1。当一个逻辑块中的所有轨道都通过这种轨道无效化进行了无效处理时,将有效标记35e无效化。通过这种无效化或类似处理产生了包含无效轨道的MS 11的逻辑块。当重复这个过程时,逻辑块的使用效率可能会导致可使用逻辑块的不足。
当这种情形出现并且分配给MS 11的逻辑块的数目超过MS 11所允许的逻辑块数目的上限时,数据管理单元120进行压缩处理以产生自由块FB。将所述自由块FB返回物理NAND层管理单元120c。逻辑NAND层管理单元120b减少分配给MS 11的逻辑块数目,然后,重新从物理NAND层管理单元120c获取可写的自由块FB。所述压缩处理用来在新逻辑块中收集作为压缩对象的逻辑块中的有效簇或者将作为压缩对象的逻辑块中的有效轨道复制到其它逻辑块中以产生返回物理NAND层管理单元120的自由块FB,并提高逻辑块的使用效率。在进行压缩中,当WC 21、FS 12和IS 13中的有效簇存在时,数据管理单元120进行被动合并,将作为压缩对象的逻辑轨道地址中所包含的所有有效簇合并起来。TFS 11b中所寄存的逻辑块不包括在所述压缩对象中。
具体说明一个从MSIB 11a到MS 11或到TFS 11b的移动以及将在MSIB 11a中存在满逻辑块作为状态的压缩处理的例子。所述满逻辑块是指这样的逻辑块,其中,所有的逻辑页都被写入并且不可能进行另外的记录。
1.参考MS逻辑块管理表35中的有效标记35e,当MS 11中存在无效化的逻辑块时,数据管理单元120将所述逻辑块设置为自由块FB。
2.数据管理单元120将MSIB 11a中的满逻辑块移动到MS 11中。具体说,数据管理单元120更新上述MS结构管理表(未显示),并将所述逻辑块从在MSIB 11a之下进行管理转换为在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以轨道为单位在MSIB 11a中附加记录数目少于2i个的有效轨道。
9.数据管理单元120将所述压缩源中的逻辑块设置为自由块FB。
10.当分配给MS 11的逻辑块的数目小于MS 11所允许的逻辑块数目的上限时,数据管理单元120就完成了MS压缩处理。
下面说明FS 12中的CIB处理(步骤S340)。当通过从WC 21到FSIB12a的簇写入处理在FSIB 12a中产生了所有逻辑页均被写入了的满逻辑块时,将FSIB 12中的所述逻辑块从FSIB 12a移动到FS 12中。根据所述移动,从具有由多个逻辑块所配置的FIFO结构的FS 12中清除了旧逻辑块。
具体地如下所述来实现从FSIB 12a到FS 12的清除和从FS 12到MS11和/或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的逻辑块的数目是否超过了FS 12所允许的逻辑块的数目的上限。当所述逻辑块的数目超过了所述上限时,数据管理单元120就执行下面所说明的清除处理。
4.数据管理单元120在作为清除对象的最早的逻辑块中的簇中确定应该被直接复制到MS 11中而不被移动到IS 13的簇(实际上,因为MS 11的管理单位为轨道,所以以轨道为单位来确定所述簇)。
(A)数据管理单元120从逻辑页的顶部开始顺序地对作为清除对象的最早的逻辑块中的有效簇进行扫描。
(B)数据管理单元120参考轨道管理表30中的FS簇的数目30f域在FS 12中找出所述簇所属的轨道具有多少个有效簇。
(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 2的清除时,对来自FS 12、IS 13和MS 11的数据进行复制。在WC 21中,通过利用WC簇管理表25的标签中的扇区位置位图25b判断在相关的逻辑簇地址中是否有2(l-k)个扇区,可以以扇区(512B)为单位进行管理。另一方面,NAND存储器10中的功能部件FS 12和IS 13的管理单位为簇,而MS 11的管理单位为轨道。这样,NAND存储器10中的管理单位就比扇区大。所以,在从WC 21向NAND存储器10写入数据中,当在NAND存储器10中存在这样的数据,其逻辑簇地址与要写入的数据的逻辑簇地址相同时,在要从WC 21写入NAND存储器10的簇中的扇区和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中,也根据SM压缩写入数据。在所述被动合并中,当从WC 21、FS 12或IS 13这三个部件中的一个部件向MS 11进行轨道清除或逻辑块清除(清除2i个轨道)时,将一个部件中作为清除对象的轨道(或逻辑块)中所包含的两个部件中的有效簇和MS 11中的有效簇收集到DRAM 20的工作区中,并将其从DRAM 20的工作区写入MSIB 11a,作为一个轨道的数据。
下面将更详细地说明本实施例的基本部分。如上所述,图10所示的WC簇管理表25和图11所示的WC轨道管理表24用于WC 21的管理。如上所述,WC簇管理表25以簇为单位来管理组相联系统WC 21的各个条目的标签。在所述各个标签中,除了逻辑轨道地址25c外,还添加了具有多个位的状态标记25a以及扇区位置位图25b。
如上所述,WC轨道管理表24对以轨道为单位收集了WC 21中所存储的簇的信息进行管理,并利用具有类似FIFO功能的链接列表结构表示了各逻辑轨道地址在WC 21中的寄存顺序(LRU)。每个条目包括WC簇的数目24b(指示了在相关的逻辑轨道地址中所包含的WC 21中的有效簇的数目)、路-行位图24c(指示了在WC 21中的m×n个条目的哪个条目中存储着WC 21中的逻辑轨道地址中所包含的有效簇)、以及下一个指针24d(指示了下一个逻辑轨道地址的位置)。
当WC 21中的写处理完成时,在WC轨道管理表24中,如上所述,由数据管理单元120的逻辑NAND层120b来更新相关的逻辑轨道地址24a、WC簇的数目、路-行位图24c等。由所述链接列表的FIFO结构来改变逻辑轨道地址在WC 21中的寄存顺序。
在WC 21中进行写入中,当状态(i)满足时,即当使用最后一个自由路时,对WC轨道管理表24(其中轨道按LRU顺序相链接)进行搜寻以确定在相关行中所寄存的轨道中对最早更新的轨道进行清除。在所述清除中,确定要进行清除的同一轨道中所包含的WC 21中的所有簇都被清除。在WC轨道管理表24的路-行位图24c中,属于相关逻辑轨道地址的所有的簇以位图格式进行寄存。所以,通过参考路-行位图24c,可以很容易地得知应该被清除的各个簇在WC 21中的存储位置,并提高清除处理的速度。
在写处理期间,当满足状态(ii)时,即当WC 21中所寄存的轨道的数目(不同逻辑轨道地址的数目)超过了预定的允许数时,按LRU顺序清除这样的轨道,其中,属于该轨道的WC 21中的簇的数目小于所述预定数目。通过对WC轨道管理表24中所寄存的列表的数目(即,WC 21中所寄存的逻辑轨道地址24a的数目)进行计数,能够很容易地得到状态(ii)。当状态(ii)满足时,决定要清除的同一轨道中所包括的WC 21中的所有的簇也被清除。在这个清除中,如在上述清除中那样,通过参考路-行位图24c,可以很容易地得知应该被清除的各个簇在WC 21中的存储位置,并提高清除处理的速度。此外,当搜寻这样的轨道时,其中属于该轨道的WC 21中的簇的数目小于所述预定数目,通过参考WC轨道管理表24中的WC簇的数目24b域,可以容易而快捷地确定所述轨道。
当触发了所述清除处理时,如上所述,所述同一轨道中所包括的WC21中的所有簇都被清除。如果要清除的簇的数量超过了轨道大小的50%,那么,所述簇被清除到MS 11中的MSIB 11a中,如果要清除的簇的数量不超过轨道大小的50%,那么,所述簇被清除到FS 12中的FSIB 12a中。在确定清除目的地时,通过参考WC轨道管理表24中的WC簇的数目24b域,可以很容易并且马上确定FSIB 12a和MSIB 11a中哪个被设置为从WC21进行清除的目的地,并提高清除处理的速度。
这样,在本实施例中,通过WC轨道管理表24可以管理每个逻辑轨道地址的信息,包括逻辑轨道地址在WC21中进行寄存的时间顺序、逻辑轨道地址中的有效簇的数目、以及属于所述逻辑轨道地址的各个簇在WC21中的存储位置。所以,可以增加WC 21中的写处理和清除处理的速度,并减小WC 21的管理表的存储量。
在本实施例中,当在写处理期间使用最后一个自由路时,在WC 21中进行清除。所以,在数据充满了各个路之前进行清除。这就消除了一种状态,其中写处理的等待时间极其长,并且这也有助于在写处理期间确保等待时间。
在本实施例中,在n路相联缓存配置中,当WC 21中所寄存的逻辑轨道的数目超过了预定的允许数时,在WC 21中进行清除。所以,在要被寄存的逻辑轨道的数目增加并且清除处理费时很长之前进行清除。这就消除了一种状态,其中写处理的等待时间极其长,并且这也有助于在写处理期间确保等待时间。
本发明不限于所述实施例。因此,在不偏离本发明范围的情况下可以进行各种修正。
此外,上述实施例包括具有创新步骤的各种要素。就是说,通过对所公布的要素进行任何任意的分散或集中可以对本发明做出各种修正。
例如,通过从本实施例中所公布的所有要素中省略任何任意的要素来对本发明进行各种修正,只要是解决了要由本发明进行解决的问题并且获得了要由本发明获得的优点即可。
此外,在上述实施例中说明了,簇大小乘以等于或大于2的正整数等于逻辑页大小。然而,本发明不限于此。
例如,所述簇大小可以与逻辑页大小相同,或者可以是通过合并多个逻辑页通过将所述逻辑页大小乘以等于或大于2的正整数而获得的大小。
此外,所述簇大小可以与在主机设备1(诸如个人电脑)上运行的操作系统中的文件系统的管理单位相同。
此外,在上述实施例中说明了,轨道大小乘以等于或大于2的正整数等于逻辑块大小。然而,本发明不限于此。
例如,所述轨道大小可以与逻辑块大小相同,或者可以是通过合并多个逻辑块通过将所述逻辑块大小乘以等于或大于2的正整数而获得的大小。
如果所述轨道大小等于或大于逻辑块的大小时,MS压缩处理就不必要。所以,可以省略TFS 11b。
[第二实施例]
图21显示了个人电脑例子的透视图。个人电脑1200包括主体1201和显示单元1202。显示单元1202包括显示器外壳1203和装在显示器外壳1203内的显示装置1204。
主体1201包括底盘1205、键盘1206、和作为定点设备的触摸垫1207。底盘1205包括主电路板、ODD单元(optical disk device,光盘装置)、卡的插口、和在第一实施例中所描述的SSD 1100。
所提供的卡的插口与底盘1205的周围侧壁邻近。所述周围侧壁具有面对所述卡的插口的开口1208。用户通过开口1208从底盘1205的外部将附加的装置插入所述卡的插口或从所述卡的插口中拔出。
可以将SSD 1100安装在个人电脑1200中,替代现有技术中的HDD,或者,可以将SSD 1100作为附加装置插入个人电脑1200上的卡的插口中。
图22显示了个人电脑中的体系结构的例子。个人电脑1200包括CPU1301、北桥1302、主存储器1303、视频控制器1304、音频控制器1305、南桥1309、BIOS-ROM 1310、第一实施例中所描述的SSD 1100、ODD单元1311、嵌入式控制器/键盘控制器(EC/KBC)IC 1312、和网络控制器1313。
CPU 1301是一个用来控制个人电脑1200的操作的处理器,并执行从SSD 1100加载到主存储器1303中的操作系统。当ODD单元1311执行到光盘上的读过程或写过程时,CPU 1301就执行这些过程。CPU 1301执行BIOS-ROM 1310中所存储的系统BIOS(basic input output system,基本输入输出系统)。系统BIOS是一个用于控制个人电脑1200中的硬件的程序。
北桥1302是一个桥式装置,它将CPU 1301的本地总线连接到南桥1309上。北桥1302具有存储器控制器,用来控制对主存储器1303的访问。北桥1302的一个功能是,通过AGP(accelerated graphics port,加速图形端口)总线在视频控制器1304和音频控制器1305之间进行通信。
主存储器1303临时存储程序或数据,它是CPU 1301的工作区。主存储器1303由例如DRAM构成。视频控制器1304是一个视频再现控制器,用来对用于便携电脑1200的显示器(LCD)1316的显示单元进行控制。音频控制器1305是一个音频再现控制器,用来对便携电脑1200的扬声器进行控制。
南桥1309控制与LPC(low pin count,低管脚数)总线相连的装置,并且控制与PCI(peripheral component interconnect,外设组件互联)总线相连的装置。南桥1309通过ATA接口来控制存储有软件和数据的存储装置SSD 1100。
个人电脑1200以扇区为单位对SSD 1100进行访问。例如,通过ATA接口来输入写命令、读命令和缓存清除命令。南桥1309的一个功能是,控制BIOS-ROM 1310和ODD 1311。
EC/KBC 1312是单片微型计算机,它集成了用于控制电源的嵌入式控制器和用于控制键盘(KB)1206和触摸垫1207的键盘控制器。EC/KBC1312的一个功能是,基于用户对电源按钮的操作设置个人电脑1200的电源的通/断。网络控制器1313是一个例如执行与网络(例如,互联网)进行通信的通信装置。
尽管在所述实施例中存储器系统是SSD,但也可以是例如存储卡,典型的是SDTM卡。此外,所述存储器系统不仅可以用于个人电脑,而且也可以用于各种电子装置,诸如手机、PDA(个人数字助理)、数码相机、数字摄像机、以及电视机。
本领域中的技术人员会容易地发现其它的优点和修正。所以,本发明就其更广泛的方面而言不限于这里所显示和描述的具体细节和有代表性的实施例。因此,可以做出各种修正而不偏离由附属权利要求书及其等价说法所定义的一般性的发明性概念的精神或范围。

Claims (19)

1.一种存储器系统,包括:
第一存储区,包含在易失性半导体存储器中作为缓冲存储器;
第二和第三存储区,包含在非易失性半导体存储器中,其中,以页为单位进行数据的读和写,以及以大小为所述页单位的两倍或更多整数倍的块为单位进行数据擦除;以及
控制器,以与一个或多个所述块相关联的逻辑块为单位将所述非易失性半导体存储器的存储区分配给所述第二和第三存储区,其中
所述控制器执行:
第一处理,用来以扇区为单位将多个数据写入所述第一存储区中,作为第一管理单元中的数据;
第二处理,用来将写入所述第一存储区中的数据清除到所述第二存储区中,作为所述第一管理单元中的数据;以及
第三处理,用来将写入所述第一存储区中的数据清除到所述第三存储区中,作为大小为所述第一管理单元的两倍或更多整数倍的第二管理单元中的数据,
所述控制器包括:
第一管理表,对与写入所述第一存储区的数据相关的地址进行管理;以及
第二管理表,以所述第二管理单元中的地址为单位对指示所述第一存储区中所存储的数据的时间顺序的信息进行管理,并对于所述第二管理单元中的每个地址对有效数据数目信息进行管理,该有效数据数目信息指示在所述第二管理单元中的所述地址中所包含的所述第一管理单元中的数据的数目,以及
所述控制器利用所述第一和第二管理表来执行所述第一到第三处理。
2.根据权利要求1所述的存储器系统,其中,所述第一管理表在所述第一管理单元中对包括所述第二管理单元中的地址的标签信息进行管理。
3.根据权利要求2所述的存储器系统,其中,所述标签信息还包括指示所述第一管理单元中的数据中所包括的多个扇区中的哪个扇区存储了所述有效数据的信息。
4.根据权利要求2所述的存储器系统,其中,
所述第一存储区具有多个条目,这些条目包括多个行和多个路,以及
所述第二管理表还对路-行位图信息进行管理,该路-行位图信息指示了在所述条目中的哪个条目中存储了所述第二管理单元中的地址中所包括的所述第一管理单元中的有效数据。
5.根据权利要求4所述的存储器系统,其中,
所述第二管理表采用链接列表格式,以及
在各个列表的条目中包括所述第二管理单元中的地址、指示所述第二管理单元中的地址中所包括的有效第一管理单元的数目的信息、以及所述路-行位图信息。
6.根据权利要求2所述的存储器系统,其中,
所述第一存储区具有多个条目,这些条目包括多个行和多个路,以及
当使用最后的自由路时,所述控制器执行所述第二或第三处理。
7.根据权利要求4所述的存储器系统,其中,
当使用最后的自由路时,所述控制器执行所述第二或第三处理。
8.根据权利要求7所述的存储器系统,其中,所述控制器基于指示由所述第二管理表管理的所述时间顺序的信息在所述第一管理表的相关行中寄存的所述第二管理单元中的地址中选择最早更新了的所述第二管理单元中的地址,利用所述路-行位图信息选择所述第二管理单元中的所选地址中包括的所述第一管理单元中的所有数据,并执行所述第二或第三处理,其中将所述第一管理单元中的所选数据设置为清除目标。
9.根据权利要求8所述的存储器系统,其中,所述控制器基于由所述第二管理表管理的有效数据数目信息来确定应该执行所述第二处理和所述第三处理中的哪个处理。
10.根据权利要求2所述的存储器系统,其中,当所述第一存储区中的数据所属的所述第二管理单元中的数据的数目超过指定值时,所述控制器执行所述第二或第三处理。
11.根据权利要求5所述的存储器系统,其中,当所述第一存储区中的数据所属的所述第二管理单元中的数据的数目超过指定值时,所述控制器执行所述第二或第三处理。
12.根据权利要求11所述的存储器系统,其中,所述控制器基于作为所述第二管理表的链接列表中的列表的数目来确定所述第一存储区中的数据所属的所述第二管理单元中的数据的数目是否超过所述指定值。
13.根据权利要求11所述的存储器系统,其中,所述控制器基于指示所述时间顺序的信息、所述有效数据数目信息、以及由所述第二管理表管理的所述路-行位图信息从更新最早的开始按顺序选择所述第二管理单元中的数据,其中,所述第二管理单元中的地址中所包含的所述第一管理单元中的有效数据的数目小于某个预定数,并且所述控制器执行所述第二或第三处理,其中将所述第二管理单元中的所选数据设置为清除目标。
14.根据权利要求13所述的存储器系统,其中,所述控制器基于由所述第二管理表管理的有效数据数目信息来确定应该执行所述第二处理和所述第三处理中的哪个处理。
15.一种存储器系统,包括:
第一存储区,包含在易失性半导体存储器中作为缓冲存储器,其中,以第一单位进行数据读写,以大小为所述第一单位的正整数倍的第二单位进行数据管理;
第二存储区,包含在非易失性半导体存储器中,其中,以大小为所述第一单位的正整数倍的第三单位进行数据的读和写,以所述第二单位进行数据管理,以及以大小为所述三单位的两倍或更多整数倍的第四单位进行数据擦除;
第三存储区,包含在非易失性半导体存储器中,其中,以大小为所述第二单位的两倍或更多整数倍的第五单位进行数据的读和写,以所述第五单位进行数据管理,以及以所述第四单位进行数据擦除;以及
控制器,以所述第二单位的大小来管理所述第一存储区,以所述第二单位的大小来管理第二存储区,以所述第五单位的大小来管理第三存储区,在所述第一存储区中写入以所述第一单位所形成的多个数据,以所述第三单位将写入所述第一存储区中的数据清除到所述第二存储区中,或者以所述第五单位将所述数据清除到所述第三存储区中,其中,
所述控制器包括:
第一管理表,以所述第二单位来管理作为所述缓冲存储器的标签信息的所述第五单位中的地址;以及
第二管理表,管理所述第五单位中的地址中在所述缓冲存储器中寄存的顺序,并且在所述第二管理表中,对于所述第五单位中的每个地址,存储有包含所述第五单位中的地址中所包括的有效第二单位的数目的信息,以及
所述控制器利用所述第一和第二管理表来对所述缓存存储器进行控制。
16.根据权利要求15所述的存储器系统,其中,所述第二管理表以链接列表的格式管理所述第五单位中的地址中在所述缓冲存储器中寄存的顺序。
17.根据权利要求15所述的存储器系统,其中,当所述第二管理表中所寄存的所述第五单位中的地址的数目超过预定阈值时,所述控制器将数据清除到所述第二或第三存储区。
18.根据权利要求15所述的存储器系统,其中,
所述缓冲存储器具有多个路,以及
当使用最后的自由路时,所述控制器浆数据清除到所述第二或第三存储区。
19.根据权利要求15所述的存储器系统,其中,所述第一单位为扇区,所述第二单位为簇,所述第三单位为页,所述第四单位为块,以及所述第五单位为轨道。
CN200980000126A 2008-03-01 2009-02-10 存储器系统 Pending CN101681307A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP051472/2008 2008-03-01
JP2008051472A JP4691122B2 (ja) 2008-03-01 2008-03-01 メモリシステム
PCT/JP2009/052589 WO2009110299A1 (en) 2008-03-01 2009-02-10 Memory system

Publications (1)

Publication Number Publication Date
CN101681307A true CN101681307A (zh) 2010-03-24

Family

ID=41055860

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980000126A Pending CN101681307A (zh) 2008-03-01 2009-02-10 存储器系统

Country Status (7)

Country Link
US (1) US8938586B2 (zh)
EP (1) EP2271988A4 (zh)
JP (1) JP4691122B2 (zh)
KR (1) KR101079936B1 (zh)
CN (1) CN101681307A (zh)
TW (1) TWI420310B (zh)
WO (1) WO2009110299A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011110133A2 (zh) * 2011-04-25 2011-09-15 华为技术有限公司 存储系统中数据处理方法及设备
CN103294603A (zh) * 2012-02-03 2013-09-11 特拉博斯股份有限公司 用于控制存储器分配的方法和设备
CN105989860A (zh) * 2014-10-20 2016-10-05 株式会社 东芝 磁盘装置和用于访问数据扇区的方法
CN108170382A (zh) * 2018-02-05 2018-06-15 力瑞信(深圳)科技有限公司 一种固态硬盘及数据读取系统
CN109189739A (zh) * 2018-09-20 2019-01-11 北京京东尚科信息技术有限公司 缓存空间回收方法和装置
CN113253945A (zh) * 2021-07-08 2021-08-13 成都易我科技开发有限责任公司 磁盘卷变簇的方法、装置及电子设备

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
JP4533968B2 (ja) 2007-12-28 2010-09-01 株式会社東芝 半導体記憶装置及びその制御方法、コントローラ、情報処理装置
JP4461170B2 (ja) 2007-12-28 2010-05-12 株式会社東芝 メモリシステム
JP4653817B2 (ja) * 2008-03-01 2011-03-16 株式会社東芝 メモリシステム
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US20110252185A1 (en) * 2010-04-08 2011-10-13 Silicon Storage Technology, Inc. Method Of Operating A NAND Memory Controller To Minimize Read Latency Time
US9007836B2 (en) 2011-01-13 2015-04-14 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
JP2013222434A (ja) 2012-04-19 2013-10-28 Nec Corp キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム
CN104090730B (zh) * 2014-07-08 2017-02-22 飞天诚信科技股份有限公司 一种对存储设备进行数据读写的方法及装置
US10303372B2 (en) * 2015-12-01 2019-05-28 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
TWI571740B (zh) * 2016-03-18 2017-02-21 華邦電子股份有限公司 記憶體裝置及記憶體區塊使用方法
US11314635B1 (en) * 2017-12-12 2022-04-26 Amazon Technologies, Inc. Tracking persistent memory usage
JP2022161746A (ja) 2021-04-09 2022-10-21 富士通株式会社 情報処理プログラム、情報処理方法、および情報処理装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US6101574A (en) * 1995-02-16 2000-08-08 Fujitsu Limited Disk control unit for holding track data in non-volatile cache memory
JP3688835B2 (ja) 1996-12-26 2005-08-31 株式会社東芝 データ記憶システム及び同システムに適用するデータ転送方法
JP2001318832A (ja) 2000-05-12 2001-11-16 Nec Corp ディスクキャッシュ制御システム
JP3742075B2 (ja) 2003-07-01 2006-02-01 株式会社日立製作所 外部記憶サブシステム
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
JP4768237B2 (ja) * 2004-06-25 2011-09-07 株式会社東芝 携帯可能電子装置及び携帯可能電子装置の制御方法
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7549021B2 (en) * 2006-02-22 2009-06-16 Seagate Technology Llc Enhanced data integrity using parallel volatile and non-volatile transfer buffers
JP2008033788A (ja) * 2006-07-31 2008-02-14 Matsushita Electric Ind Co Ltd 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JP4412676B2 (ja) 2007-05-30 2010-02-10 インターナショナル・ビジネス・マシーンズ・コーポレーション メインメモリに書き込むデータをキャッシュする技術
JP4963088B2 (ja) * 2007-07-13 2012-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション データをキャッシュする技術
JP4533968B2 (ja) * 2007-12-28 2010-09-01 株式会社東芝 半導体記憶装置及びその制御方法、コントローラ、情報処理装置
JP4643667B2 (ja) * 2008-03-01 2011-03-02 株式会社東芝 メモリシステム
JP4745356B2 (ja) * 2008-03-01 2011-08-10 株式会社東芝 メモリシステム
JP4498426B2 (ja) * 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
JP4592774B2 (ja) * 2008-03-01 2010-12-08 株式会社東芝 メモリシステム
JP4653817B2 (ja) * 2008-03-01 2011-03-16 株式会社東芝 メモリシステム
US8046530B2 (en) * 2008-10-02 2011-10-25 Infineon Technologies Ag Process and method for erase strategy in solid state disks

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011110133A2 (zh) * 2011-04-25 2011-09-15 华为技术有限公司 存储系统中数据处理方法及设备
WO2011110133A3 (zh) * 2011-04-25 2012-01-26 华为技术有限公司 存储系统中数据处理方法及设备
CN103294603A (zh) * 2012-02-03 2013-09-11 特拉博斯股份有限公司 用于控制存储器分配的方法和设备
CN103294603B (zh) * 2012-02-03 2017-11-28 特拉博斯股份有限公司 用于控制存储器分配的方法和设备
CN105989860A (zh) * 2014-10-20 2016-10-05 株式会社 东芝 磁盘装置和用于访问数据扇区的方法
CN105989860B (zh) * 2014-10-20 2019-01-25 株式会社东芝 磁盘装置和用于访问数据扇区的方法
CN108170382A (zh) * 2018-02-05 2018-06-15 力瑞信(深圳)科技有限公司 一种固态硬盘及数据读取系统
CN108170382B (zh) * 2018-02-05 2023-12-12 力瑞信(深圳)科技有限公司 一种固态硬盘及数据读取系统
CN109189739A (zh) * 2018-09-20 2019-01-11 北京京东尚科信息技术有限公司 缓存空间回收方法和装置
CN113253945A (zh) * 2021-07-08 2021-08-13 成都易我科技开发有限责任公司 磁盘卷变簇的方法、装置及电子设备
CN113253945B (zh) * 2021-07-08 2021-09-28 成都易我科技开发有限责任公司 磁盘卷变簇的方法、装置及电子设备

Also Published As

Publication number Publication date
EP2271988A1 (en) 2011-01-12
US20110307667A1 (en) 2011-12-15
WO2009110299A1 (en) 2009-09-11
EP2271988A4 (en) 2011-04-27
JP2009211226A (ja) 2009-09-17
TW200951716A (en) 2009-12-16
KR101079936B1 (ko) 2011-11-04
KR20090117938A (ko) 2009-11-16
TWI420310B (zh) 2013-12-21
US8938586B2 (en) 2015-01-20
JP4691122B2 (ja) 2011-06-01

Similar Documents

Publication Publication Date Title
CN101681307A (zh) 存储器系统
CN101681314B (zh) 存储器系统
CN101689140B (zh) 存储器系统
CN101632068B (zh) 半导体存储装置
KR101095765B1 (ko) 메모리 시스템 및 그 제어 방법
KR101066937B1 (ko) 메모리 시스템 및 그 데이터 소거 방법
CN101681315B (zh) 存储器系统
TWI437431B (zh) 記憶體系統及控制記憶體系統的方法
KR101117403B1 (ko) 메모리 시스템, 컨트롤러 및 메모리 시스템의 제어 방법
US8001317B2 (en) Data writing method for non-volatile memory and controller using the same
CN102667739B (zh) 存储装置管理装置及用于管理存储装置的方法
CN101681299A (zh) 存储器系统
US20130173875A1 (en) Method of managing storage region of memory device, and storage apparatus using the method
US9015421B2 (en) Memory system
CN114072774A (zh) 数据存储系统中的块模式切换
US20090222616A1 (en) Memory system
CN103137199A (zh) 存储器系统、数据存储设备、存储卡和固态驱动器
KR20090094196A (ko) 메모리 시스템
CN113900586A (zh) 存储器系统及其操作方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20100324