CN101681314A - 存储器系统 - Google Patents
存储器系统 Download PDFInfo
- Publication number
- CN101681314A CN101681314A CN200980000133A CN200980000133A CN101681314A CN 101681314 A CN101681314 A CN 101681314A CN 200980000133 A CN200980000133 A CN 200980000133A CN 200980000133 A CN200980000133 A CN 200980000133A CN 101681314 A CN101681314 A CN 101681314A
- Authority
- CN
- China
- Prior art keywords
- data
- memory block
- memory
- block
- unit
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 265
- 238000012545 processing Methods 0.000 claims description 116
- 238000004140 cleaning Methods 0.000 claims description 75
- 238000000034 method Methods 0.000 claims description 55
- 239000004065 semiconductor Substances 0.000 claims description 25
- 238000005201 scrubbing Methods 0.000 claims description 11
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 238000003860 storage Methods 0.000 abstract description 34
- 238000007726 management method Methods 0.000 description 161
- 238000013523 data management Methods 0.000 description 124
- 230000008569 process Effects 0.000 description 47
- 238000010586 diagram Methods 0.000 description 19
- 230000005055 memory storage Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 13
- 238000013519 translation Methods 0.000 description 11
- 239000003550 marker Substances 0.000 description 9
- 230000008859 change Effects 0.000 description 7
- 238000007667 floating Methods 0.000 description 7
- 230000006866 deterioration Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000001052 transient effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013499 data model Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000004615 ingredient Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000007480 spreading Effects 0.000 description 3
- 238000003892 spreading Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 241001553178 Arachis glabrata Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005039 memory span Effects 0.000 description 1
- 150000004767 nitrides Chemical class 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000003647 oxidation Effects 0.000 description 1
- 238000007254 oxidation reaction Methods 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 210000005239 tubule Anatomy 0.000 description 1
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/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
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种存储器系统包括:DRAM 20,其以等于或小于簇的单位执行写入和读出;NAND存储器10,其以页单位执行写入和读出,以及管理表群组,在其中存储管理信息,所述管理信息包括存储在DRAM 20和NAND存储器10中的数据的存储位置。当从外部接收到读出请求时,在未被写入的逻辑地址区存在于被请求读出的逻辑地址区所映射到的NAND存储器的存储区中时,数据管理单元120向外部通知与该逻辑地址区相关联的存储在DRAM 20中的固定数据。
Description
技术领域
本发明涉及一种包括非易失性半导体存储器的存储器系统。
背景技术
近年来,广泛公知诸如闪速存储器的非易失性半导体存储装置,其用于根据积累的电荷量存储信息。近来,NAND闪速存储器的容量得到增加。包含NAND闪速存储器作为次级存储装置的个人计算机投入了实际使用。
NAND闪速存储器是这样的半导体存储器,其中在写入数据之前有必要进行擦除处理。NAND闪速存储器的耐久寿命取决于擦除的次数(重写的次数)。通过在基底与控制栅极之间施加高电压以向浮动栅极中注入电子或从其中释放电子,执行NAND闪速存储器的数据擦除和数据写入。因此,当该擦除处理和写入处理执行很大数目的次数时,浮动栅极周围的栅极氧化膜恶化,且注入到浮动栅极中的电子丢失。有可能会破坏所记录的数据。
通过诸如个人计算机的计算机而记录的数据具有时间局域性和区域局域性(例如,参见非专利文件1)。由于这种特性,如果根据从外部指定的地址而直接记录数据,则重写处理和擦除处理集中在特定的区域中,并且各个存储装置会不均衡地恶化。因此,在这种类型的NAND闪速存储器中,执行用于使数据更新区段均等地分布在半导体存储装置中的被称为磨损均化(wear leveling)的处理,从而使半导体存储装置中的所有存储器基元(memory cell)中擦除的次数大致均等。
此外,在NAND闪速存储器中,一种现象称为读取干扰,其中读出页中的数据和与读出页在相同块中的另一页中的数据是不稳定的。读取干扰是这样一种现象,其中,在数据读出期间,由于对未选择基元的控制栅极施加的字线电势(未选择的字线电势),例如,电子被注入到具有值“1”的基元的浮动栅极,该基元的值被改变为“0”。
另一方面,据称,随着数据的擦除和写入重复较大数目的次数,读取干扰的不可能性(unlikelihood),即,抵抗读取干扰的耐久性会恶化(参见,例如,专利文件1)。还据称,读取干扰基本取决于从存储器基元读出的次数。此外,还据称,在其中在一个存储器基元中可存储2-位或更多信息的多值存储装置中,因为用于识别所存储数据的值的阈值的间隔很窄,读取干扰的影响增加。因此,被称为读取干扰的现象对于存储装置来说是一个严重的问题。
[专利文件1]日本专利文件公开号No H10-228783
[非专利文件1]David A.Patterson以及John L.Hennessy,“Computer Organization and Design:The Hardware/Software Interface”,Morgan Kaufman Pub,2004/8/31
发明内容
本发明的一个方面提供一种存储器系统,包括:作为高速缓冲存储器的第一存储区,其包括易失性半导体存储器;第二存储区和第三存储区,其包括非易失性半导体存储器,在所述第二存储区和所述第三存储区中,以页单位执行读出和写入,且以块单位执行擦除,所述块单位的大小为所述页单位的两倍或更大的自然数倍;管理表群组(group),在其中存储管理信息,所述管理信息包括存储在所述第一、第二和第三存储区中的数据的存储位置;以及控制器,其以与块中的一个或多个块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区,其中,当从外部接收到读出请求时,所述控制器基于所述管理表群组而判定未被写入的逻辑地址区是否存在于被请求读出的逻辑地址区所映射到的所述第二或第三存储区中,并且当存在所述未被写入的逻辑地址区时,向外部通知与所述未被写入的逻辑地址区相关联的预定的固定数据。
本发明的一个方面提供一种存储器系统,包括:作为高速缓冲存储器的第一存储区,其包括易失性半导体存储器;第二存储区和第三存储区,其包括非易失性半导体存储器,在所述第二存储区和所述第三存储区中,以页单位执行读出和写入,且以块单位执行擦除,所述块单位的大小为所述页单位的两倍或更大的自然数倍;管理表群组,在其中存储管理信息,所述管理信息包括存储在所述第一、第二和第三存储区中的数据的存储位置;以及控制器,其以与块中的一个或多个块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区,其中,当从外部接收到涉及从所述第一存储区向所述第二存储区的数据清理的写入请求,且包括从所述第一存储区清理至所述第二存储区的页单位的逻辑地址区的所有数据并不都存在于所述第一存储区时,所述控制器基于所述管理表,判定未被写入的逻辑地址区是否存在于用于填充在所述第一存储区中不存在的数据的逻辑地址区所映射到的所述第二和第三存储区中,并且当存在所述未被写入的逻辑地址区时,选择预定的固定数据作为填充源数据。
附图说明
图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存储器存取的处理的处理流程的流程图;
图23是个人计算机的实例的透视图;以及
图24是个人计算机中的系统架构的实例的图。
具体实施方式
下面,将参考附图详细解释根据本发明的存储器系统的示例性实施例。本发明并不限于下面的实施例。
(实施例)
下面将参考附图解释本发明的实施例。在下面的解释中,具有相同功能和配置的部件由相同的参考标号和符号表示。仅当必要时才进行对这些部件的重复解释。
首先,定义在该说明书中使用的术语。
物理页:在NAND存储器芯片中可以共同地写入和读出的单位。物理页大小为例如4kB。然而,不包括添加到SSD中的主数据(用户数据等)的诸如错误校正码的冗余位。通常,4kB+冗余位(例如,几十B)是在存储器基元(memory cell)中同时写入的单位。然而,为了便于解释,如上所述地定义物理页。
逻辑页:在SSD中设定的写入和读出单位。逻辑页与一个或多个物理页相关联。例如,在8-位正常模式下,逻辑页大小为4kB,而在32-位的双速模式下,逻辑页大小为32kB。然而,不包括冗余位。
物理块:可以在NAND存储器芯片中独立地擦除的最小单位。物理块包括多个物理页。物理块大小为例如512kB。然而,不包括添加到SSD中的主数据的诸如错误校正码的冗余位。通常,512kB+冗余位(例如,几十kB)是同时擦除的单位。然而,为了便于解释,如上所述地定义物理块。
逻辑块:在SSD中设定的擦除单位。逻辑块与一个或多个物理块相关联。例如,在8-位正常模式下,逻辑块大小为512kB,而在32-位的双速模式下,逻辑块大小为4MB。然而,不包括冗余位。
扇区:从主机存取的最小单位。扇区大小为例如512B。
簇:用于在SSD中管理“小数据(细粒数据)”的管理单位。簇大小等于或大于扇区大小,且例如被如此设定,使得簇大小的两倍或更大的自然数倍的大小为逻辑页大小。
轨道:用于在SSD中管理“大数据(粗粒数据)”的管理单位。轨道大小被如此设定,使得簇大小的两倍或更大的自然数倍的大小为轨道大小,且例如轨道大小的两倍或更大的自然数倍的大小为逻辑块大小。
空闲块(FB):在NAND型闪速存储器上的未分配使用的逻辑块。当向空闲块分配使用时,在擦除之后使用该空闲块。
坏块(BB):在NAND型闪速存储器上的由于大量错误而不能被用作存储区的物理块。例如,将不能正常完成擦除操作的物理块登记为坏块BB。
写入效率:在预定周期内逻辑块的擦除数量相对于从主机写入的数据数量的统计值。写入效率越小,NAND型闪速存储器的磨损度越小。
有效簇:存储对应于逻辑地址的最新数据的簇。
无效簇:存储由于具有相同逻辑地址的簇被写入其它存储区中而不被参考的非最新数据的簇。
有效轨道:存储对应于逻辑地址的最新数据的轨道。
无效轨道:存储由于具有相同逻辑地址的簇被写入其它存储区中而不被参考的非最新数据的轨道。
压紧:在管理对象中从逻辑块中仅提取有效簇和有效轨道并且在新的逻辑块中重写所述有效簇和有效轨道。
[第一实施例]
图1是SSD(固态驱动器)100的配置实例的框图。SSD 100通过存储器连接接口,例如ATA接口(ATA I/F)2,连接到主机设备1,例如个人计算机或CPU核,并且用作主机设备1的外部存储器。通过通信接口3,例如RS232C接口(RS232C I/F),SSD 100可以将数据传送到用于除错(debug)和制造检验的设备200并从其接收数据。SSD 100包括作为非易失性半导体存储器的NAND型闪速存储器(下文中简称为NAND存储器)10、作为控制器的驱动控制电路4、作为易失性半导体存储器的DRAM 20、电源电路5、用于状态显示的LED 6、检测驱动器中的温度的温度传感器7、以及熔丝8。
电源电路5从由主机设备1侧的电源电路供应的外部DC电力产生多个不同的内部DC电源电压,并将这些内部DC电源电压供应至SSD 100中的各个电路。电源电路5检测外部电源的上升沿,产生通电复位信号,并且将该通电复位信号供应至驱动控制电路4。熔丝8设置在主机设备1侧的电源电路与SSD 100中的电源电路5之间。当从外部电源电路供应过电流时,熔丝8断开,以防止内部电路发生故障。
NAND存储器10具有四个并行操作元件10a至10d,其执行四个并行操作。一个并行操作元件具有两个NAND存储器封装。NAND存储器封装中的每一个包括多个堆叠的NAND存储器芯片(例如,1个芯片=2GB)。在图1的情况下,NAND存储器封装中的每一个包括堆叠的四个NAND存储器芯片。NAND存储器10具有64GB的容量。当NAND存储器封装中的每一个包括堆叠的八个NAND存储器芯片时,NAND存储器10具有128GB的容量。
DRAM 20用作用于在主机设备1与NAND存储器10之间的数据传送的高速缓冲存储器以及用于工作区的存储器。可使用FeRAM(铁电随机存取存储器)、PRAM(相变随机存取存储器)或MRAM(磁阻随机存取存储器)来代替DRAM 20。驱动控制电路4通过DRAM 20而在主机设备1与NAND存储器10之间执行数据传送控制,并且控制SSD 100中的各个部件。驱动控制电路4将用于状态显示的信号供应至用于状态显示的LED 6。驱动控制电路4还具有从电源电路5接收通电复位信号且将复位信号和时钟信号供应至在自身电路和SSD 100中的各个单元的功能。
NAND存储器芯片中的每一个通过将多个物理块排成阵列作为数据擦除的单位而配置。图2(a)是包括在NAND存储器芯片中的一个物理块的配置实例的电路图。每个物理块包括沿着X方向依次排成阵列的(p+1)个NAND串(p为等于或大于0的整数)。包括在该(p+1)个NAND串的每一个中的选择晶体管ST1的漏极连接至位线BL0至BLp,并且其栅极共同地连接至选择栅极线SGD。选择晶体管ST2的源极共同地连接至源极线SL,并且其栅极共同地连接至选择栅极线SGS。
存储器基元晶体管MT中的每一个包括MOSFET(金属氧化物半导体场效应晶体管),该MOSFET包括形成于半导体基底上的堆叠栅极结构。该堆叠栅极结构包括经由栅极绝缘膜而形成于半导体基底上的电荷存储层(浮动栅电极),以及经由栅极间绝缘膜而形成于该电荷存储层上的控制栅电极。阈值电压根据在浮动栅电极中累积的电子的数目而变化。存储器基元晶体管MT根据阈值电压的差异而存储数据。存储器基元晶体管MT可被配置为存储一个位或可被配置为存储多值(等于或大于两个位的数据)。
存储器基元晶体管MT不限于具有浮动栅电极的结构,并且可以为诸如MONOS(金属-氧化物-氮化物-氧化物-硅)型的结构,该结构可通过使氮化物膜界面作为电荷存储层来俘获电子而调整阈值。类似地,MONOS结构的存储器基元晶体管MT可被配置为存储一个位或可被配置为存储多值(等于或大于两个位的数据)。
在每一个NAND串中,(q+1)个存储器基元晶体管MT排列在选择晶体管ST1的源极与选择晶体管ST2的漏极之间,使得其电流路径串联连接。换句话说,存储器基元晶体管MT在Y方向上串联连接,使得相邻的存储器基元晶体管MT共享扩散区域(源极区域或漏极区域)。
存储器基元晶体管MT的控制栅电极以从位于最漏极侧上的存储器基元晶体管MT开始的顺序分别连接至字线WL0至WLq。因此,连接至字线WL0的存储器基元晶体管MT的漏极连接至选择晶体管ST1的源极。连接至字线WLq的存储器基元晶体管MT的源极连接至选择晶体管ST2的漏极。
字线WL0至WLq共同地连接在物理块中的NAND串当中的存储器基元晶体管MT的控制栅电极。换句话说,存在于块的相同行中的存储器基元晶体管MT的控制栅极连接至相同的字线WL。将连接至相同字线WL的(p+1)个存储器基元晶体管MT作为一页(物理页)来处理。通过每一物理页来执行数据写入及数据读出。
位线BL0至BLp共同地连接块当中的选择晶体管ST1的漏极。换句话说,存在于多个块的相同列中的NAND串连接至相同的位线BL。
图2(b)为例如在四进制数据存储模式中的阈值分布的示意图,该四进制数据存储模式用于在一个存储器基元晶体管MT中存储两个位。在四进制数据存储模式中,可将由上部页(upper page)数据“x”和下部页(lowerpage)数据“y”定义的任何一个四进制数据“xy”存储在存储器基元晶体管MT中。
例如,作为四进制数据“xy”,“11”、“01”、“00”和“10”以存储器基元晶体管MT的阈值电压的顺序分配。数据“11”为已擦除状态(erased state),在该状态中存储器基元晶体管MT的阈值电压为负。
在下部页写入操作中,根据下部位数据“y”的写入,将数据“10”选择性地写入具有数据“11”(处于已擦除状态)的存储器基元晶体管MT中。在上部页写入之前的数据“10”的阈值分布大约位于在上部页写入之后的数据“01”和数据“00”的阈值分布的中间,并且可比在上部页写入之后的阈值分布更宽。在上部页写入操作中,选择性地对具有数据“11”的存储器基元和具有数据“10”的存储器基元进行上部位数据“x”的写入。将数据“01”和数据“00”写入存储器基元中。
图3为驱动控制电路4的硬件内部配置实例的框图。驱动控制电路4包括数据存取总线101、第一电路控制总线102以及第二电路控制总线103。控制整个驱动控制电路4的处理器104连接至第一电路控制总线102。启动ROM 105经由ROM控制器106而连接至第一电路控制总线102,在该启动ROM 105中存储有启动程序,所述启动程序用于启动存储在NAND存储器10中的各个管理程序(FW:固件)。时钟控制器107连接至第一电路控制总线102,该时钟控制器107从图1中所示的电源电路5接收通电复位信号且将复位信号和时钟信号供应至各个单元。
第二电路控制总线103连接至第一电路控制总线102。用于从图1中所示的温度传感器7接收数据的I2C电路108、将用于状态显示的信号供应至用于状态显示的LED 6的并行IO(PIO)电路109、以及控制RS232CI/F 3的串行IO(SIO)电路110连接至第二电路控制总线103。
ATA接口控制器(ATA控制器)111、第一ECC(错误检查及校正)电路112、NAND控制器113以及DRAM控制器114连接至数据存取总线101与第一电路控制总线102两者。ATA控制器111经由ATA接口2而将数据传输至主机设备1及从主机设备1接收数据。用作数据工作区和固件扩展区的SRAM 115经由SRAM控制器116而连接至数据存取总线101。当起动存储在NAND存储器10中的固件时,该固件通过存储在启动ROM105中的启动程序而传送至SRAM 115。
NAND控制器113包括NAND I/F 117、第二ECC电路118,以及用于DMA传送控制的DMA控制器119,其中NAND I/F 117执行用于与NAND存储器10的接口的接口处理,DMA控制器119执行NAND存储器10与DRAM 20之间的存取控制。第二ECC电路118执行第二校正码的编码且执行第一错误校正码的编码和解码。第一ECC电路112执行第二错误校正码的解码。第一错误校正码和第二错误校正码为,例如,汉明(hamming)码、BCH(Bose Chaudhuri Hocqenghem)码、RS(ReedSolomon)码、或LDPC(低密度奇偶检查)码。第二错误校正码的校正能力比第一错误校正码的校正能力高。
如图1和图3中所示,在NAND存储器10中,四个并行操作元件10a至10d经由四个八位通道(4ch)而并联连接至驱动控制电路4中的NAND控制器112。根据四个并行操作元件10a至10d是独立致动还是并行致动与是否使用在NAND存储器芯片中提供的双速模式(多页编程/多页读取/多块擦除)的组合,提供下文所解释的三种存取模式。
(1)8-位正常模式
8-位正常模式为用于仅致动一个通道且以8-位为单位执行数据传送的模式。以物理页大小(4kB)来执行写入和读出。以物理块大小(512kB)来执行擦除。一个逻辑块与一个物理块相关联,且逻辑块大小为512kB。
(2)32-位正常模式
32-位正常模式为用于并行致动四个通道且以32-位为单位执行数据传送的模式。以物理页大小×4(16kB)来执行写入和读出。以物理块大小×4(2MB)来执行擦除。一个逻辑块与四个物理块相关联,且逻辑块大小为2MB。
(3)32-位双速模式
32-位双速模式为用于并行致动四个通道且使用NAND存储器芯片的双速模式来执行写入和读出的模式。以物理页大小×4×2(32kB)来执行写入和读出。以物理块大小×4×2(4MB)来执行擦除。一个逻辑块与八个物理块相关联,且逻辑块大小为4MB。
在用于并行致动四个通道的32-位正常模式或32-位双速模式中,并行操作的四个或八个物理块为用于NAND存储器10的擦除单位,且并行操作的四个或八个物理页为用于NAND存储器10的写入单位和读出单位。在下面所解释的操作中,基本上,使用32-位双速模式。例如,假定:一个逻辑块=4MB=2i轨道=2j页=2k簇=2l扇区(i、j、k和l为自然数,且i<j<k<l的关系成立)。
在32-位双速模式中存取的逻辑块是以4MB为单位来存取。八个(2×4ch)物理块(一个物理块=512kB)与逻辑块相关联。当检测到以物理块单位管理的坏块BB时,该坏块BB不可用。因此,在这种情况下,将与逻辑块相关联的该八个物理块的组合变为不包括该坏块BB。
图4为通过处理器104实现的固件的功能配置实例的框图。通过处理器104实现的固件的功能粗略地分类为数据管理单元120、ATA命令处理单元121、安全管理单元122、启动加载器123、初始化管理单元124,以及除错支持单元125。
数据管理单元120经由NAND控制器112和第一ECC电路114而控制NAND存储器10与DRAM 20之间的数据传送以及关于NAND存储器10的各种功能。ATA命令处理单元121经由ATA控制器110和DRAM控制器113而与数据管理单元120协作来执行DRAM 20与主机设备1之间的数据传送处理。安全管理单元122与数据管理单元120和ATA命令处理单元121协作而管理各种安全信息。
启动加载器123在接通电源时将管理程序(固件)从NAND存储器10加载至SRAM 120。初始化管理单元124执行驱动控制电路4中的各个控制器和电路的初始化。除错支持单元125处理经由RS232C接口而从外部供应的用于除错的数据。数据管理单元120、ATA命令处理单元121和安全管理单元122主要为通过处理器104实现的执行存储在SRAM 114中的管理程序的功能单元。
在该实施例中,主要解释通过数据管理单元120实现的功能。数据管理单元120执行:例如,ATA命令处理单元121请求作为存储装置的NAND存储器10和DRAM 20(响应于来自主机设备的各种命令,例如写入请求、高速缓冲存储器清理请求以及读取请求)而提供的功能的供应、主机地址区域与NAND存储器10之间的对应关系的管理和管理信息的保护、使用DRAM 20和NAND存储器10的快速且高效的数据读出及写入功能的提供、NAND存储器10的可靠性的确保。
图5为形成在NAND存储器10和DRAM 20中的功能块的图。配置在DRAM 20上的写入高速缓冲存储器(WC)21和读取高速缓冲存储器(RC)22被插入在主机1与NAND存储器10之间。WC 21暂时存储来自主机设备1的写入数据。RC 22暂时存储来自NAND存储器10的读取数据。WC 21和RC 22可配置在不同的DRAM芯片上或如上文所述的其它种类的存储器芯片上。
由数据管理单元120将NAND存储器10中的逻辑块分配给前级存储区(FS:前存储器)12、中间级存储区(IS:中间存储器)13和主存储区(MS:主存储器)11的各个管理区,以便减少在写入期间NAND存储器10的擦除的量。FS 12以簇为单位(即,“小单位”)管理来自WC 21的数据,且将小数据(细粒数据)存储一短周期。IS 13以簇为单位(即,“小单位”)管理从FS 12溢出的数据,且将小数据(细粒数据)存储一长周期。MS 11以轨道为单位(即,“大单位”)存储来自WC 21、FS 12和IS 13的数据,且将大数据(粗粒数据)存储一长周期。例如,存储容量具有MS>IS且FS>WC的关系。
当对NAND存储器10的所有存储区应用小管理单位时,稍后解释的管理表的大小被放大,且不适应DRAM 20。因此,NAND存储器10的各个存储器被配置为以小管理单位管理NAND存储器10中仅在最近刚写入的数据和具有低写入效率的小数据。在国际申请No.PCT2008/JP/073950中描述了在SSD中使用“小单位”连同“大单位”的技术,该中请的全部内容纳入本文中作为参考。
图6为关于从WC 21向NAND存储器10的写入处理的更详细的功能框图。在FS 12的前级处设置FS输入缓冲器(FSIB)12a,其中该FS输入缓冲器(FSIB)12a缓冲来自WC 21的数据。在MS 11的前级处设置MS输入缓冲器(MSIB)11a,该MS输入缓冲器(MSIB)11a缓冲来自WC 21、FS 12或IS 13的数据。在MS 11中设置轨道前级存储区(TFS)11b。TFS 11b为插入在MSIB 11a与MS 11之间的具有FIFO(先进先出)结构的缓冲器。记录在TFS 11b中的数据为这样的数据,该数据的更新频率高于在MS 11中记录的数据的更新频率。NAND存储器10中的任何一个逻辑块被分配给MS 11、MSIB 11a、TFS 11b、FS 12、FSIB 12a和IS 13。
将详细解释图5和图6中所示的各个部件的具体功能配置。当主机设备1执行SSD 100的读取或写入时,主机设备1经由ATA接口而输入LBA(逻辑块地址)作为逻辑地址。如图7中所示,LBA是这样的逻辑地址,其中从0开始的序号被附到扇区(大小:512B)。在该实施例中,作为用于WC 21、RC 22、FS 12、IS 13和MS 11(它们为图5中所示的部件)的管理单位,定义逻辑簇地址和逻辑轨道地址,所述逻辑簇地址由在顺序上(in order)等于或高于LBA的低位(low-order)第(l-k+1)位的位串形成,所述逻辑轨道地址由在顺序上等于或高于LBA的低位第(l-i+1)位的位串形成。一个簇=2(l-k)个扇区,且一个轨道=2(k-i)个簇。
读取高速缓冲存储器(RC)22
解释RC 22。RC 22为响应于来自ATA命令处理单元121的读取请求而暂时存储来自NAND存储器10(FS 12、IS 13和MS 11)的读取数据的区。在该实施例中,RC 22是在例如m-线/n-路(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统中进行管理,且可将一个簇的数据存储在一个条目(entry)中。线通过逻辑簇地址的LSB(k-i)个位来判定。RC 22可在全关联系统中进行管理,或者可在简单FIFO系统中进行管理。
写入高速缓冲存储器(WC)21
解释WC 21。WC 21为响应于来自ATA命令处理单元121的写入请求而暂时存储来自主机设备1的写入数据的区。WC 21是在m-线/n-路(m为等于或大于2(k-i)的自然数,且n为等于或大于2的自然数)集合关联系统中进行管理,并可将一个簇的数据存储在一个条目中。线通过逻辑簇地址的LSB(k-i)个位来判定。例如,以从路1至路n的顺序搜寻可写入的路。登记(register)于WC 21中的轨道通过稍后所解释的WC轨道管理表24的FIFO结构以LRU(最近最少使用)进行管理,使得最早更新的顺序已知。WC 21可由全关联系统来管理。WC 21与RC 22可在线的数目和路的数目上有所不同。
根据写入请求而写入的数据一次存储在WC 21上。判定将要从WC 21清理至NAND 10的数据的方法遵从下面所解释的规则。
(i)当通过标记(tag)判定的线中的可写入的路为最后的(在该实施例中,第n个)空闲的路时,即,当使用最后的空闲的路时,决定清理登记于线中的轨道当中的基于LRU最早更新的轨道。
(ii)当登记于WC 21中的不同轨道的数目超过预定允许数目时,决定以LRU的顺序清理WC中的其簇数目小于预定数目的轨道。
根据上文所解释的策略来判定将要清理的轨道。在清理这些轨道时,清理包括在相同轨道中的所有数据。当将要清理的数据的量超过例如轨道大小的50%时,将数据清理至MS 11。当将要清理的数据的量未超过例如轨道大小的50%时,将数据清理至FS 12。
当在条件(i)下执行轨道清理且将数据清理至MS 11时,根据策略(i),选择WC 21的轨道当中满足将要清理的数据的量超过轨道大小的50%这一条件的轨道且将其添加至清理候选者,直至将要清理的轨道的数目达到2i为止(当轨道的数目一开始就等于或大于2i时,直至轨道的数目达到2i+1为止)。换句话说,当将要清理的轨道的数目小于2i时,以从WC中的最旧轨道开始的顺序选择具有多于2(k-i-1)的有效簇的轨道,且将其添加至清理候选者,直至轨道的数目达到2i为止。
当在条件(i)下执行轨道清理且将轨道清理至FS 12时,以LRU的顺序在WC 21中的轨道当中选择满足将要清理的数据的量不超过轨道大小的50%这一条件的轨道,并将该轨道的簇添加至清理候选者,直至将要清理的簇的数目达到2k为止。换句话说,通过以从最旧轨道开始的顺序追踪WC中的轨道而从具有2(k-i-1)个或更少的有效簇的轨道中提取簇,且当有效簇的数目达到2k时,以逻辑块为单位将簇清理至FSIB 12a。然而,当未寻找到2k个有效簇时,以逻辑页为单位将簇清理至FSIB 12a。用于判定是以逻辑块为单位还是以逻辑页为单位执行至FS 12的清理的有效簇的数目的阈值不限于针对一个逻辑块的值(即,2k),且可为比针对一个逻辑块的值稍小的值。
在来自ATA命令处理单元121的高速缓冲存储器清理请求中,在与上文相同的条件下将WC 21的所有内容清理至FS 12或MS 11(当将要清理的数据的量超过轨道大小的50%时,将数据清理至MS 11,且当数据的量未超过50%时,将数据清理至FS 12)。
前级存储区(FS)12
解释FS 12。FS 12适应其中以簇为单位管理数据的逻辑块单位的FIFO结构。FS 12为这样的缓冲器,其认为通过FS 12的数据具有比后级处的IS 13的数据高的更新频率。换句话说,在FS 12的FIFO结构中,当执行从主机向同一地址的重写时,使通过FIFO的有效簇(最新簇)无效。因此,可将通过FS 12的簇视为具有比从FS 12清理至IS 13或MS 11的簇更高的更新频率。
通过提供FS 12,减少了具有高更新频率的数据在后级处的IS 13中的压紧处理中的混合的可能性。当通过无效化而使逻辑块的有效簇的数目减少至0时,释放该逻辑块且将其分配为空闲块FB。当FS12中的逻辑块被无效时,获得新的空闲块FB且将其分配给FS 12。
当执行从WC 21至FS 12的簇清理时,簇被写入分配给FSIB 12a的逻辑块中。当在FSIB 12a中存在完成了所有逻辑页的写入的逻辑块时,通过稍后所解释的CIB处理将这些逻辑块从FSIB 12a移动至FS 12。在将这些逻辑块从FSIB 12a移动至FS 12的过程中,当FS 12的逻辑块的数目超过FS 12所允许的预定上限值时,将最旧的逻辑块从FS 12清理至IS 13或MS 11。例如,将轨道中有效簇比率等于或大于50%的轨道写入MS 11(TFS 11b)中,且将其中仍剩余有有效簇的逻辑块移动至IS 13。
关于NAND存储器10中的部件之间的数据移动,存在两种方式,即,移动(Move)和复制(Copy)。移动是这样的方法,其仅执行稍后所解释的管理表的指针(pointer)的重新定位,而不执行数据的实际重写。复制是这样的方法,其以页单位、轨道单位或块单位将存储于一个部件中的数据实际重写至其他部件中。
中间级存储区(IS)13
解释IS 13。在IS 13中,以与FS 12相同的方式以簇为单位执行数据的管理。可将存储于IS 13中的数据视为具有低更新频率的数据。当执行逻辑块从FS 12至IS 13的移动(movement)(移动(Move))(即,逻辑块从FS 12的清理)时,通过指针的重新定位,将作为清理对象的逻辑块(其先前为FS 12的管理对象)改变为IS 13的管理对象。根据逻辑块从FS 12至IS 13的移动,当IS 13的块的数目超过IS 13所允许的预定上限值时,即,当IS中可写空闲块FB的数目减小至小于阈值时,执行从IS13至MS 11的数据清理和压紧处理。使IS 13的块的数目返回至规定值。
IS 13使用轨道中的有效簇的数目来执行下文所解释的清理处理和压紧处理。
以有效簇的数目×有效簇系数(其是根据轨道是否存在于其中存在无效轨道的MS 11的逻辑块中而进行加权的数字;存在无效轨道时的数字大于不存在无效轨道时的数字)的顺序对轨道进行排序(sort)。收集具有大乘积值的2i+1个轨道(对于两个逻辑块),将其增加至为逻辑块大小的自然数倍大,且将其清理至MSIB 11a。
当具有最小数目的有效簇的两个逻辑块的有效簇的总数目为例如等于或大于作为预定的设定值的2k(对于一个逻辑块)时,重复上文所解释的步骤(以执行该步骤,直至可从IS中的两个逻辑块创建空闲块FB为止)。
以从具有最小数目的有效簇的逻辑块开始的顺序收集2k个簇,且在IS中进行压紧。
此处,选择具有最小数目的有效簇的两个逻辑块。然而,数目不限于二,且仅须为等于或大于二的数目。预定的设定值仅须等于或小于这样的簇的数目,其可存储于比选定的逻辑块的数目小一的数目的逻辑块中。
主存储区(MS)11
解释MS 11。在MS 11中,以轨道为单位执行数据的管理。可将存储于MS 11中的数据视为具有低更新频率。当执行轨道从WC 21、FS 12或IS 13至MS 11的复制或移动时,将轨道写入分配给MSIB 11a的逻辑块中。另一方面,当仅将轨道的一部分中的数据(簇)从FS 12,IS 13等等写入时,执行稍后所解释的被动合并,该被动合并用于合并MS中的现存轨道与新数据以产生新轨道,然后将所产生的轨道写入MSIB 11a中。当无效轨道在MS 11中累积且分配给MS 11的逻辑块的数目超过MS 11所允许的块的数目的上限时,执行压紧处理以产生空闲块FB。
作为MS 11的压紧处理,例如,执行下文所解释的仅关注逻辑块中的有效轨道的数目的方法。
从具有最小数目的有效轨道的逻辑块中选择逻辑块,直至可通过组合无效轨道而产生空闲块FB为止。
当执行用于整合存储于选定逻辑块中的轨道与WC 21、FS 12或IS 13中的数据的被动合并时,执行压紧。
将其中可整合2i个轨道的逻辑块输出至TFS 11b(2i轨道MS压紧),且将数目小于2i的轨道输出至MSIB 11a(小于2i的轨道压紧)以产生较大数目的空闲块FB。
TFS 11b适于其中以轨道为单位管理数据的逻辑块单位的FIFO结构。TFS 11b是这样的缓冲器,其认为通过TFS 11b的数据具有比后级处的MS 11的数据更高的更新频率。换句话说,在TFS 11b的FIFO结构中,当执行从主机向同一地址中的重写时,使通过FIFO的有效轨道(最新轨道)无效。因此,可将通过TFS 11b的轨道视为具有比从TFS 11b清理至MS 11的轨道更高的更新频率。
图8为管理表的图,该管理表用于使数据管理单元120控制并管理图5和图6中所示的各个部件。数据管理单元120具有(如上文所解释的)桥接ATA命令处理单元121与NAND存储器10的功能,且包括:DRAM层管理单元120a,其执行对存储于DRAM 20中的数据的管理;逻辑NAND层管理单元120b,其执行对存储于NAND存储器10中的数据的管理;以及物理NAND层管理单元120c,其管理作为物理存储装置的NAND存储器10。RC簇管理表23、WC轨道管理表24和WC簇管理表25由DRAM层管理单元120a来控制。轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42和FS/IS内簇管理表44由逻辑NAND层管理单元120b来管理。逻辑至物理转译表50由物理NAND层管理单元120c来管理。
RC 22由RC簇管理表23来管理,该RC簇管理表23是反向查找表。在该反向查找表中,可从存储装置的位置搜寻存储于该位置中的逻辑地址。WC 21由WC簇管理表25和WC轨道管理表24来管理,其中WC簇管理表25为反向查找表,而WC轨道管理表24为正向查找表。在该正向查找表中,可从逻辑地址搜寻其中存在与该逻辑地址对应的数据的存储装置的位置。
NAND存储器10中的FS 12(FSIB 12a)、IS 13以及MS 11(TFS 11b和MSIB 11a)的逻辑地址由轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42以及FS/IS内簇管理表44来管理。在NAND存储器10中的FS 12(FSIB 12a)、IS 13以及MS 11(TFS 11b和MSIB 11a)中,执行逻辑至物理转译表50的逻辑地址与物理地址的转换。将这些管理表存储于NAND存储器10上的区中且在SSD 100的初始化期间将其从NAND存储器读取至DRAM 20。
RC簇管理表23(反向查找)
参考图9解释RC簇管理表23。如上文所解释,在由逻辑簇地址LSB(k-i)个位编索引的n-路集合关联系统中管理RC 22。RC簇管理表23为用于管理RC(簇大小×m-线×n-路)22的各个条目的标记的表。这些标记中的每一个包括状态标志(flag)23a和逻辑轨道地址23b,其中状态标志23a包括多个位。除了指示所述条目是否可使用(有效/无效)的有效位之外,状态标志23a还包括例如指示所述条目是否在等待从NAND存储器10读出的位、以及指示所述条目是否在等待读出至ATA命令处理单元121的位。RC簇管理表23用作反向查找表,该反向查找表用于从DRAM 20上的标记存储位置搜寻与LBA一致的逻辑轨道地址。
WC簇管理表25(反向查找)
参考图10解释WC簇管理表25。如上文所解释,在由逻辑簇地址LSB(k-i)个位编索引的n-路集合关联系统中管理WC 21。WC簇管理表25为用于管理WC(簇大小×m-线×n-路)21的各个条目的标记的表。这些标记中的每一个包括多个位的状态标志25a、扇区位置位映像(bitmap)25b,以及逻辑轨道地址25c。
除了指示所述条目是否可使用(有效/无效)的有效位之外,状态标志25a还包括例如指示所述条目是否在等待清理至NAND存储器10的位、以及指示所述条目是否在等待从ATA命令处理单元121写入的位。通过将扇区扩展成2(1-k)个位,扇区位置位映像25b指示一个簇中所包括的2(l-k)个扇区中的哪一个存储有效数据。利用扇区位置位映像25b,可在WC 21中执行与LBA相同的以扇区为单位进行的管理。WC簇管理表25用作反向查找表,该反向查找表用于从DRAM 20上的标记存储位置搜寻与LBA一致的逻辑轨道地址。
WC轨道管理表24(正向查找)
参考图11解释WC轨道管理表24。WC轨道管理表24是用于管理信息(其中以轨道单位收集存储于WC 21上的簇)的表,且使用具有类似于FIFO功能的链接列表(linked list)结构来表示轨道当中在WC 21中的登记的顺序(LRU)。LRU可通过WC 21中最后被更新的顺序来表示。每一列表的条目包括逻辑轨道地址24a、逻辑轨道地址中所包括的WC 21中的有效簇数目24b、路-线位映像24c,以及下一个指针24d,该下一个指针24d指示指向下一条目的指针。WC轨道管理表24用作正向查找表,这是因为所需信息是从逻辑轨道地址24a获得的。
路-线位映像24c为这样的映像信息,其指示在WC 21中的m×n个条目中的哪一个中存储WC 21中的逻辑轨道地址中所包括的有效簇。在其中存储有效簇的条目中,有效位为“1”。路-线位映像24c包括例如(一位(有效)+log2n个位(n-路))×m个位(m-线)。WC轨道管理表24具有链接列表结构。仅输入关于WC 21中存在的逻辑轨道地址的信息。
轨道管理表30(正向查找)
参考图12解释轨道管理表30。轨道管理表30是用于以逻辑轨道地址为单位来管理MS 11上的逻辑数据位置的表。当以簇为单位将数据存储于FS 12或IS 13中时,轨道管理表30存储关于数据的基本信息和指向详细信息的指针。轨道管理表30被配置为阵列格式,该阵列格式具有逻辑轨道地址30a作为索引。具有逻辑轨道地址30a作为索引的每一条目包括诸如以下内容的信息:簇位映像30b、逻辑块ID 30c+逻辑块内轨道位置30d、簇表指针30e、FS簇的数目30f,以及IS簇的数目30g。轨道管理表30用作正向查找表,这是因为通过使用逻辑轨道地址作为索引,可获得诸如逻辑块ID(对应于存储装置位置)的所需信息,在该逻辑块ID中存储对应于逻辑轨道地址的轨道。
簇位映像30b是通过将属于一个逻辑轨道地址范围的2(k-i)个簇按照逻辑簇地址的升序分成例如八份而获得的位映像。八个位中的每一个指示对应于2(k-i-3)个簇地址的簇是存在于MS 11中还是存在于FS 12或IS 13中。当该位为“0”时,其指示作为搜寻对象的簇的确存在于MS 11中。当该位为“1”时,其指示簇很可能存在于FS 12或IS 13中。
逻辑块ID 30c是用于识别这样的逻辑块ID的信息,在该逻辑块ID中存储与逻辑轨道地址对应的轨道。逻辑块内轨道位置30d指示与逻辑轨道地址(30a)对应的轨道在由逻辑块ID 30c指定的逻辑块中的存储位置。因为一个逻辑块包括最大2i个有效轨道,所以逻辑块内轨道位置30d使用i个位识别2i个轨道位置。
簇表指针30e是指向具有链接列表结构的FS/IS管理表40的每一列表的顶条目的指针。在遍及簇位映像30b进行搜寻的过程中,当指示出簇很可能存在于FS 12或IS 13中时,通过使用簇表指针30e来执行遍及FS/IS管理表40的搜寻。FS簇的数目30f指示出存在于FS 12中的有效簇的数目。IS簇的数目30g指示出存在于IS 13中的有效簇的数目。
FS/IS管理表40(正向查找)
参考图13解释FS/IS管理表40。FS/IS管理表40是用于以逻辑簇地址管理存储于FS 12(包括FSIB 12a)或IS 13中的数据的位置的表。如图13中所示,对于每一个逻辑轨道地址,FS/IS管理表40以独立链接列表格式形成。如上文所解释的,指向每一列表的顶条目的指针被存储在轨道管理表30的簇表指针30e的字段中。在图13中,示出用于两个逻辑轨道地址的链接列表。每一个条目包括逻辑簇地址40a、逻辑块ID 40b、逻辑块内簇位置40c、FS/IS块ID 40d,以及下一个指针40e。FS/IS管理表40用作正向查找表,这是因为可以从逻辑簇地址40a获得诸如逻辑块ID40b以及逻辑块内簇位置40c(对应于存储装置位置)的所需信息,其中在上述逻辑块内簇位置40c中存储与逻辑簇地址40a对应的簇。
逻辑块ID 40b是用于识别其中存储与逻辑簇地址40a对应的簇的逻辑块ID的信息。逻辑块内簇位置40c指示与逻辑簇地址40a对应的簇在由逻辑块ID 40b指定的逻辑块中的存储位置。因为一个逻辑块包括最大2k个有效簇,所以逻辑块内簇位置40c使用k个位来识别2k个位置。在FS/IS块ID 40d中登记FS/IS块ID,该FS/IS块ID是稍后所解释的FS/IS逻辑块管理表42的索引。FS/IS块ID 40d是这样的信息,其用于识别属于FS 12或IS 13的逻辑块。FS/IS管理表40中的FS/IS块ID 40d被登记,以链接至稍后所解释的FS/IS逻辑块管理表42。下一个指针40e表示指向为每一个逻辑轨道地址链接的同一列表中的下一条目的指针。
MS逻辑块管理表35(反向查找)
参考图14解释MS逻辑块管理表35。MS逻辑块管理表35是这样的表,其用于整体地管理关于MS 11中使用的逻辑块的信息(例如,存储哪个轨道,以及轨道位置是否额外可记录)。在MS逻辑块管理表35中,还登记与属于FS 12(包括FSIB 12)和IS 13的逻辑块有关的信息。MS逻辑块管理表35以阵列格式形成,该阵列形式具有逻辑块ID 35a作为索引。在128GB的NAND存储器10的情况下,条目的数目最大可为32K个条目。这些条目中的每一个包括:用于2i个轨道的轨道管理指针35b、有效轨道的数目35c、可写入的顶轨道35d,以及有效标志35e。MS逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的逻辑块ID 35a获得诸如存储于逻辑块中的逻辑轨道地址的所需信息。
轨道管理指针35b存储与逻辑块ID 35a所指定的逻辑块中的2i个轨道位置中的每一个相对应的逻辑轨道地址。可以使用该逻辑轨道地址来进行遍及轨道管理表30的搜寻,该轨道管理表30具有逻辑轨道地址作为索引。有效轨道的数目35c指示出在逻辑块ID 35a所指定的逻辑块中存储的轨道当中的有效轨道的数目(最大为2i)。可写入的顶轨道位置35d指示当逻辑块ID 35a所指定的逻辑块为被额外记录的块时额外可记录的顶位置(0至2i-1,当额外记录结束时为2i)。当作为MS 11(包括MSIB 11a)来管理逻辑块条目时,有效标志35e为“1”。这里,“额外记录”是指以附加方式将簇或轨道写入逻辑块中的空逻辑页中。
FS/IS逻辑块管理表42(反向查找)
参考图15解释FS/IS逻辑块管理表42。FS/IS逻辑块管理表42以阵列格式形成,该阵列格式具有FS/IS块ID 42a作为索引。FS/IS逻辑块管理表42是用于管理与用作FS 12或IS 13的逻辑块有关的信息(与逻辑块ID的对应、指向FS/IS内簇管理表44的索引、逻辑块是否额外可记录等)的表。FS/IS逻辑块管理表42主要通过使用FS/IS管理表40中的FS/IS块ID 40d来存取。每一条目包括逻辑块ID 42b、块内簇表42c、有效簇的数目42d、可写入的顶页42e,以及有效标志42f。MS逻辑块管理表35用作反向查找表,这是因为可以从对应于存储装置位置的FS/IS块ID 42获得诸如在逻辑块中存储的簇的所需信息。
在MS逻辑块管理表35中登记的逻辑块当中与属于FS 12(包括FSIB12)和IS 13的逻辑块相对应的逻辑块ID被登记于逻辑块ID 42b中。指向稍后所解释的FS/IS内簇管理表44的索引被登记于块内簇表42c中,该FS/IS内簇管理表44指示在逻辑块中的每一个簇位置中登记由哪个逻辑簇地址指定的逻辑簇。有效簇的数目42d指示在FS/IS块ID 42a所指定的逻辑块中存储的簇当中的有效簇的数目(最大为2k)。可写入的顶页位置42e指示当FS/IS块ID 42a所指定的逻辑块为被额外记录的块时额外可记录的顶页位置(0至2j-1,当额外记录结束时为2i)。当作为FS 12(包括FSIB12)或IS 13来管理逻辑块条目时,有效标志42f为“1”。
FS/IS内簇管理表44(反向查找)
参考图16解释FS/IS内簇管理表44。FS/IS内簇管理表44是指示在用作FS 12或IS 13的逻辑块中的每一个簇位置中记录哪个簇的表。FS/IS内簇管理表44对于每一个逻辑块具有2j页×2(k-j)簇=2k个条目。在连续区中排列与逻辑块中的簇位置当中的第0至第2k-1个簇位置对应的信息。以与属于FS 12和IS 13的逻辑块数目(P)相等的数目来存储包括该2k条(piece)信息的表。FS/IS逻辑块管理表42的块内簇表42c是用于该P个表的位置信息(指针)。在连续区中排列的每一条目44a的位置指示在一个逻辑块中的簇位置。作为条目44a的内容,登记指向这样的列表的指针,该列表包括通过FS/IS管理表40管理的逻辑簇地址,使得可以识别簇位置中存储了哪个簇。换句话说,条目44a并不指示链接列表的顶部。在条目44a中登记指向这样一个列表的指针,该列表包括链接列表中的逻辑簇地址。
逻辑至物理转译表50(正向查找)
参考图17解释逻辑至物理转译表50。逻辑至物理转译表50以阵列格式形成,该阵列格式具有逻辑块ID 50a作为索引。在128GB的NAND存储器10的情况下,条目的数目可为最大32K个条目。逻辑至物理转译表50是用于管理关于逻辑块ID与物理块ID之间的转换和寿命的信息的表。这些条目中的每一个包括物理块地址50b、擦除的次数50c,以及读出的次数50d。逻辑至物理转译表50用作正向查找表,这是因为可以从逻辑块ID获得诸如物理块ID(物理块地址)的所需信息。
物理块地址50b指示属于一个逻辑块ID 50a的八个物理块ID(物理块地址)。擦除的次数50c指示逻辑块ID的擦除的次数。坏块(BB)以物理块(512KB)为单位来管理。然而,在32-位双速模式中,擦除的次数以一个逻辑块(4MB)为单位来管理。读出的次数50d指示逻辑块ID的读出的次数。擦除的次数50c可用于例如磨损均化处理中,该磨损均化处理用于均化NAND型闪速存储器的重写的次数。读出的次数50d可用于刷新处理中,该刷新处理用于重写在具有恶化的保持性能的物理块中存储的数据。
在国际申请No.PCT/JP2008/066508以及No.PCT/JP2008/066507中描述了磨损均化处理的实例。在国际申请No.PCT/JP2008/067597中描述了刷新处理的实例,其全部内容纳入本文作为参考。
图8中所示的管理表通过下文所解释的管理对象来对照。
RC管理:RC簇管理表23
WC管理:WC簇管理表25和WC轨道管理表24
MS管理:轨道管理表30和MS逻辑块管理表35
FS/IS管理:轨道管理表30、FS/IS管理表40、MS逻辑块管理表35、FS/IS逻辑块管理表42,以及FS/IS内簇管理表44
包括MS 11、MSIB 11a和TFS 11b的MS区的结构以MS结构管理表(未示出)进行管理。具体地,管理分配给MS 11、MSIB 11a和TFS 11b的逻辑块等等。包括FS 12、FSIB 12a和IS 13的FS/IS区的结构以FS/IS结构管理表(未示出)进行管理。具体地,管理分配给FS 12、FSIB 12a和IS 13的逻辑块等等。
读取处理
参考图18中所示的流程图来解释读取处理。当从ATA命令处理单元121输入读取命令、作为读出地址的LBA以及读出大小时,数据管理单元120遍及图9中所示的RC簇管理表23和图10中所示的WC簇管理表25进行搜寻(步骤S100)。具体地,数据管理单元120从RC簇管理表23和WC簇管理表25选择与LBA的逻辑簇地址的LSB(k-i)个位(参见图7)对应的线,且比较在选定的线的每一路中所输入的逻辑轨道地址23b和25c与LBA的逻辑轨道地址(步骤S110)。当存在使得输入于自身中的逻辑轨道地址与LBA的逻辑轨道地址一致的路时,数据管理单元120将此视为高速缓冲存储器命中(cache hit)。数据管理单元120读出与RC簇管理表23或WC簇管理表25的命中的线和路对应的WC 21或RC 22的数据,且将数据发送至ATA命令处理单元121(步骤S115)。
当RC 22或WC 21中不存在命中时(步骤S110),数据管理单元120搜寻作为搜寻对象的簇被存储于NAND存储器10的哪一部分中。首先,数据管理单元120遍及图12中所示的轨道管理表30进行搜寻(步骤S120)。轨道管理表30通过逻辑轨道地址30a来编索引。因此,数据管理单元120仅检查与LBA指定的逻辑轨道地址一致的逻辑轨道地址30a的条目。
数据管理单元120基于需要检查的LBA的逻辑簇地址而从簇位映像30b中选择对应位。当所述对应位指示“0”时,这意味着簇的最新数据的确存在于MS中(步骤S130)。在这种情况下,数据管理单元120从逻辑轨道地址30a的同一条目中的逻辑块ID 30c和逻辑块内轨道位置30d获得逻辑块ID以及轨道存在于其中的轨道位置。数据管理单元120使用LBA的逻辑簇地址的LSB(k-i)个位来计算从轨道位置的偏移。因此,数据管理单元120可计算与NAND存储器10中的逻辑簇地址相对应的簇被存储的位置。具体地,逻辑NAND层管理单元120b向物理NAND层管理单元120c提供:如上文所解释的从轨道管理表30获取的逻辑块ID 30c和逻辑块内位置30d;以及LBA的逻辑簇地址的LSB(k-i)个位。
物理NAND层管理单元120c从图17中所示的具有逻辑块ID作为索引的逻辑至物理转译表50获取对应于逻辑块ID 30c的物理块地址(物理块ID)(步骤S160)。数据管理单元120从逻辑块内轨道位置30d计算所获取的物理块ID中的轨道位置(轨道顶位置),且进一步从LBA的逻辑簇地址的LSB(k-i)个位计算与物理块ID中所计算出的轨道顶位置的偏移。因此,数据管理单元120可获取物理块中的簇。数据管理单元120经由RC 22将从NAND存储器10的MS 11获取的簇发送至ATA命令处理单元121(步骤S180)。
另一方面,当基于LBA的逻辑簇地址而在遍及簇位映像30b的搜寻中所述对应位指示“1”时,很可能该簇存储于FS 12或IS 13中(步骤S130)。在这种情况下,数据管理单元120在轨道管理表30中的逻辑轨道地址30a的相关条目当中提取簇表指针30e的条目,且使用此指针顺序地搜寻遍及与FS/IS管理表40的相关逻辑轨道地址相对应的链接列表(步骤S140)。具体地,数据管理单元120在相关逻辑轨道地址的链接列表中搜寻与LBA的逻辑簇地址一致的逻辑簇地址40a的条目。当存在逻辑簇地址40a的一致条目时(步骤S150),数据管理单元120在一致列表中获取逻辑块ID 40b和逻辑块内簇位置40c。以与上文所解释的方式相同的方式,数据管理单元120使用逻辑至物理转译表50来获取物理块中的簇(步骤S160和S180)。具体地,数据管理单元120从逻辑至物理转译表50获取与所获取的逻辑块ID对应的物理块地址(物理块ID)(步骤S160),且从由逻辑块内簇位置40e的条目获取的逻辑块内簇位置计算所获取的物理块ID的簇位置。因此,数据管理单元120可获取物理块中的簇。数据管理单元120经由RC22将从NAND存储器10的FS 12或IS 13获取的簇发送至ATA命令处理单元121(步骤S180)。
当在遍及FS/IS管理表40的搜寻中不存在作为搜寻对象的簇时(步骤S150),数据管理单元120再次遍及轨道管理表30的条目进行搜寻,且决定在MS 11上的位置(步骤S170)。
写入处理
参考图19中所示的流程图来解释写入处理。通过写入命令而写入的数据总是一次存储于WC 21上。此后,根据条件而将数据写入NAND存储器10中。在写入处理中,很可能执行清理处理和压紧处理。在该实施例中,将写入处理粗略划分成写入高速缓冲存储器闪速处理(write cache flashprocessing)(在下文中为WCF处理)与清除输入缓冲器处理(clean inputbuffer processing)(在下文中为CIB处理)的两个阶段。步骤S300至S320指示从来自ATA命令处理单元121的写入请求至WCF处理的处理。步骤S330至最后步骤指示CIB处理。
WCF处理是用于将WC 21中的数据复制至NAND存储器10(FS 12的FSIB 12a、或者MS 11的MSIB 11a)的处理。来自ATA命令处理单元121的单独的写入请求或高速缓冲存储器清理请求可仅通过该处理来完成。这使得可以将ATA命令处理单元121的写入请求的已开始处理中的延迟最大限制为这样的时间,该时间用于在与WC 21的容量相等的NAND存储器10中写入。
CIB处理包括用于将FSIB 12a中通过WCF处理而写入的数据移动至FS 12的处理,以及用于将MSIB 11a中通过WCF处理而写入的数据移动至MS 11的处理。当开始CIB处理时,很可能以链式反应的方式执行NAND存储器中的部件(FS 12、IS 13、MS 11等)当中的数据移动和压紧处理。全部处理所需的时间大体上根据状态而改变。
WCF处理
首先,解释WCF处理的细节。当从ATA命令处理单元121输入写入命令、作为写入地址的LBA以及写入大小时,DRAM层管理单元120a遍及图10中所示的WC簇管理表25进行搜寻(步骤S300和S305)。WC 21的状态通过图10中所示的WC簇管理表25的状态标志25a(例如,3个位)来限定。最典型地,状态标志25a的状态以无效(可用)→等待从ATA写入→有效(不可用)→等待清理至NAND→无效(可用)的顺序转变。首先,从LBA的逻辑簇地址LSB(k-i)个位判定写入目的地处的线,且搜寻所判定的线的n路。当与所输入的LBA的逻辑轨道地址相同的逻辑轨道地址25c被存储于所判定的线的n路中时(步骤S305),DRAM层管理单元120a将此条目锁定(secure)为用于写入簇的条目,因为该条目将被覆写(有效(不可用)→等待从ATA写入)。
DRAM层管理单元120a向ATA命令处理单元121通知对应于该条目的DRAM地址。当ATA命令处理单元121所进行的写入完成时,数据管理单元120将该条目的状态标志25a改变成有效(不可用),且将所需数据登记在扇区位置位映像25b和逻辑轨道地址25c的空间中。数据管理单元120更新WC轨道管理表24。具体地,当输入与已登记于WC轨道管理表24的列表中的逻辑轨道地址24a相同的LBA地址时,数据管理单元120更新相关列表的WC簇的数目24b以及路-线位映像24c,且改变下一个指针24d,以使该列表变为最新列表。当输入与登记于WC轨道管理表24的列表中的逻辑轨道地址24a不同的LBA地址时,数据管理单元120创建新列表,该新列表具有逻辑轨道地址24a、WC簇的数目24b、路-线位映像24c以及下一个指针24d的条目,且将该列表登记为最新列表。数据管理单元120执行上文所解释的表更新,从而完成写入处理(步骤S320)。
另一方面,当与所输入的LBA的逻辑轨道地址相同的逻辑轨道地址25c没有存储于所判定的线的n路中时,数据管理单元120判断是否有必要清理至NAND存储器10(步骤S305)。首先,数据管理单元120判断所判定的线中的可写入的路是否为最后的第n路。可写入的路是具有无效(可用)的状态标志25a的路,或者具有有效(不可用)的状态标志25a并等待清理至NAND的路。当状态标志25a为等待清理至NAND时,这意味着清理开始,且条目在等待清理的结束。当可写入的路并非为最后的第n路,且可写入的路是具有无效(可用)的状态标志25a的路时,数据管理单元120将此条目锁定为用于簇写入的条目(无效(可用)→等待从ATA写入)。数据管理单元120向ATA命令处理单元121通知对应于该条目的DRAM地址,且使ATA命令处理单元121执行写入。以与上文所解释的方式相同的方式,数据管理单元120更新WC簇管理表25和WC轨道管理表24(步骤S320)。
当可写入的路并非为最后的第n路时,以及当可写入的路为具有有效(不可用)的状态标志25a并等待清理至NAND的路时,数据管理单元120将此条目锁定为用于写入簇的条目(有效(不可用)且等待清理至NAND→有效(不可用)且等待从NAND清理并等待从ATA写入)。当结束清理时,数据管理单元120将状态标志25a改变为等待从ATA写入,向ATA命令处理单元121通知对应于该条目的DRAM地址,且使ATA命令处理单元121执行写入。以与上文所解释的方式相同的方式,数据管理单元120更新WC簇管理表25和WC轨道管理表24(步骤S320)。
当输入来自ATA命令处理单元121的写入请求而不必须触发清理处理时,执行上文所解释的处理。另一方面,当在输入写入请求之后触发清理处理时,执行下文所解释的处理。在步骤S305处,当所判定的线中的可写入的路为最后的第n路时,数据管理单元120基于这样的条件而选择将要清理的轨道(即,WC 21中的条目),该条件在判定将要从WC 21清理至NAND存储器10的数据的方法的(i)中进行解释,即,
(i)当通过标记判定的可写入的路为最后的(在该实施例中,第n个)空闲的路时,即,当将要使用最后的空闲的路时,决定清理登记于线中的轨道当中的基于LRU最早更新的轨道。
当根据上文所解释的策略判定将要清理的那个轨道时,如上文所解释的,如果相同逻辑轨道地址中所包括的WC 21中的所有簇将被清理,且将要清理的簇的量超过轨道大小的50%(即,如果WC中的有效簇的数目等于或大于决定清理的轨道中的2(k-i-1)时),则DRAM层管理单元120a执行至MSIB 11a的清理(步骤S310)。如果簇的量未超过轨道大小的50%(即,WC中的有效簇的数目小于决定清理的轨道中的2(k-i-1)),则DRAM层管理单元120a执行至FSIB 12a的清理(步骤S315)。稍后解释从WC21至MSIB 11a的清理以及从WC 21至FSIB 12a的清理的细节。将选定的清理条目的状态标志25a从有效(不可用)转变为等待清理至NAND存储器10。
通过使用WC轨道管理表24,执行对清理目的地的该判断。对于每一逻辑轨道地址,在WC轨道管理表24中登记指示有效簇数目的WC簇的数目24b的条目。数据管理单元120参考WC簇的数目24b的条目来判定应将FSIB 12a和MSIB 11a中的哪一者设定为从WC 21的清理的目的地。属于逻辑轨道地址的所有簇都以位映像格式登记于路-线位映像24c中。因此,在执行清理过程中,数据管理单元120可参考路-线位映像24c而容易地获悉应清理的簇中的每一个在WC 21中的存储位置。
在写入处理期间或在写入处理之后,数据管理单元120在以下条件得到满足时还以相同的方式执行至NAND存储器10的清理处理:
(ii)登记于WC 21中的轨道的数目超过预定数目。
WC→MSIB(复制)
当根据基于有效簇的数目(有效簇的数目等于或大于2(k-i-1))的判断而执行从WC 21至MSIB 11a的清理时,数据管理单元120如上文所解释地执行下文所解释的过程(步骤S310)。
1.参考WC簇管理表25且参考与将要清理的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为“1”时,数据管理单元120执行稍后所解释的轨道内扇区填充(padding),用于通过从NAND存储器10读出相同逻辑轨道地址中所包括的丢失扇区而与不存在于WC21中的扇区合并。
2.当决定清理的轨道的数目小于2i时,数据管理单元120添加决定清理的、具有2(k-i-1)个或更多有效簇的轨道,直至决定清理的轨道的数目从WC 21中的最旧者起达到2i个为止。
3.当将要复制的轨道有2i个或更多时,数据管理单元120以逻辑块为单位(每2i个轨道作为一个集合)在MSIB 11a中执行写入。
4.数据管理单元120以轨道为单位将无法形成2i个轨道的集合的轨道写入MSIB 11a中。
5.数据管理单元120在复制结束之后使已存在于FS、IS和MS上的簇和轨道当中的属于经复制的轨道的簇和轨道无效。
解释从WC 21至MSIB 11a的复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中经清理的轨道的所有簇相对应。此后,有可能在这些项中进行写入。关于与WC轨道管理表24中的经清理的轨道对应的列表,数据管理单元120改变或删除例如紧接在之前的一列表(an immediately preceding list)的下一个指针24d,且使该列表无效。
另一方面,当执行从WC 21至MSIB 11a的轨道清理时,数据管理单元120根据轨道清理而更新轨道管理表30和MS逻辑块管理表35。首先,数据管理单元120搜寻作为轨道管理表30的索引的逻辑轨道地址30a,以判断是否已经登记对应于经清理的轨道的逻辑轨道地址30a。当已登记逻辑轨道地址30a时,数据管理单元120更新该索引的簇位映像30b的字段(因为轨道被清理至MS 11侧,所以所有相关位被设定为“0”)以及逻辑块ID 30c+逻辑块内轨道位置30d。当未登记对应于经清理的轨道的逻辑轨道地址30a时,数据管理单元120将簇位映像30b以及逻辑块ID 30c+逻辑块内轨道位置30d登记于相关逻辑轨道地址30a的条目中。数据管理单元120根据轨道管理表30的改变而在必要时更新MS逻辑块管理表35中的逻辑块ID 35a、轨道管理指针35b、有效轨道的数目35c、可写入的顶轨道35d等的条目。
当执行从其它区(FS 12和IS 13)等等至MS 11的轨道写入时,或当执行通过MS 11中的压紧处理而进行的MS内轨道写入时,可将作为写入对象的逻辑轨道地址中所包括的WC 21中的有效簇同时写入MS 11中。这样的被动合并可随着从WC 21至MS 11的写入而存在。当执行这样的被动合并时,将簇从WC 21删除(使其无效)。
WC→FSIB(复制)
当根据基于有效簇的数目(有效簇的数目等于或大于2(k-i-1))的判断而执行从WC 21至FSIB 12a的清理时,数据管理单元120执行下文所解释的过程。
1.参考与将要清理的簇相对应的标记中的扇区位置位映像25b,当并非所有扇区位置位映像25b都为“1”时,数据管理单元120执行簇内扇区填充,用于通过从NAND存储器10读出相同逻辑簇地址中所包括的丢失扇区而与不存在于WC 21中的扇区合并。
2.数据管理单元120通过以从最旧轨道起的顺序追踪WC中的轨道而从仅具有小于2(k-i-1)个有效簇的轨道中提取簇,且当有效簇的数目达到2k时,以逻辑块为单位将所有簇写入FSIB 12a中。
3.当未寻找到2k个有效簇时,数据管理单元120以与逻辑页的数目相等的数目将具有小于2(k-i-1)的数目的有效簇的所有轨道写入FSIB 12a中。
4.数据管理单元120在复制结束之后使已存在于FS和IS上的簇当中的与被复制的簇具有相同逻辑簇地址的簇无效。
解释从WC 21至FSIB 12a的该复制处理中所涉及的各个管理表的更新处理。数据管理单元120将这样的条目中的状态标志25a设定为无效,这些条目与WC 21中属于WC簇管理表25中经清理的轨道的所有簇相对应。此后,有可能在这些条目中进行写入。关于与WC轨道管理表24中的经清理的轨道相对应的列表,数据管理单元120改变或删除例如紧接在之前的一列表的下一个指针24d,且使该列表无效。
另一方面,当执行从WC 21至FSIB 12a的簇清理时,数据管理单元120根据簇清理而更新轨道管理表30的簇表指针30e、FS簇的数目31f等等。数据管理单元120还更新FS/IS管理表40的逻辑块ID 40b、逻辑块内簇位置40c等等。关于最初不存在于FS 12中的簇,数据管理单元120将列表添加至FS/IS管理表40的链接列表。根据该更新,数据管理单元120更新MS逻辑块管理表35、FS/IS逻辑块管理表42和FS/IS内簇管理表44的相关的区段。
CIB处理
当上文所解释的WCF处理结束时,逻辑NAND层管理单元120b执行CIB处理,该CIB处理包括用于将FSIB 12a中通过WCF处理而写入的数据移动至FS 12的处理、以及用于将MSIB 11a中通过WCF处理而写入的数据移动至MS 11的处理。当开始CIB处理时,如上文所解释的,很可能以链式反应的方式执行块之间的数据移动和压紧处理。全部处理所需的时间大体上根据状态而改变。在CIB处理中,基本上,首先,执行MS 11中的CIB处理(步骤S330),随后,执行FS 12中的CIB处理(步骤S340),再次执行MS 11中的CIB处理(步骤S350),执行IS 13中的CIB处理(步骤360),且最后再次执行MS 11中的CIB处理(步骤S370)。在从FS 12至MSIB 11a的清理处理、从FS 12至IS 13的清理处理或从IS 13至MSIB 11a的清理处理中,当过程中出现循环时,可能不按顺序执行处理。下面将单独地解释MS 11中的CIB处理、FS 12中的CIB处理和IS 13中的CIB处理。
MS 11中的CIB处理
首先,解释MS 11中的CIB处理(步骤S330)。当执行轨道从WC 21、FS 12和IS 13向MS 11的移动时,将轨道写入MSIB 11a中。在完成在MSIB 11a中的写入之后,如上文所解释的,更新轨道管理表30,且改变(移动)轨道排列于其中的逻辑块ID 30c、块内轨道位置30d等等。当将新轨道写入MSIB 11a中时,使从开始起就存在于MS 11或TFS 11b中的轨道无效。该无效化处理是这样实现的,即,使这样的轨道无效,所述轨道来自MS逻辑块管理表35中的其中存储旧轨道信息的逻辑块的条目。具体地,删除MS逻辑块管理表35的条目中的轨道管理指针35b的字段中的相关轨道的指针,且使有效轨道的数目减一。当通过该轨道无效化而使一个逻辑块中的所有轨道无效时,使有效标志35e无效。通过这样的无效化等等,产生MS 11的包括无效轨道的逻辑块。当重复此步骤时,逻辑块的使用效率会降低而引起可用逻辑块的不足。
当出现这种情形且分配给MS 11的逻辑块的数目超过MS 11所允许的逻辑块的数目的上限时,数据管理单元120执行压紧处理以产生空闲块FB。将该空闲块FB返回至物理NAND层管理单元120c。逻辑NAND层管理单元120b减少分配给MS 11的逻辑块的数目,且接着重新从物理NAND层管理单元120c获取可写入的空闲块FB。压紧处理是这样的处理,其用于在新逻辑块中收集作为压紧对象的逻辑块的有效簇,或者将作为压紧对象的逻辑块中的有效轨道复制至其它逻辑块,以产生返回至物理NAND层管理单元120c的空闲块FB,且改善逻辑块的使用的效率。在执行压紧的过程中,当存在WC 21、FS 12和IS 13上的有效簇时,数据管理单元120执行被动合并,该被动合并用于合并作为压紧对象的在逻辑轨道地址中所包括的所有有效簇。登记于TFS 11b中的逻辑块不包括在压紧对象中。
具体地解释从MSIB 11a至MS 11或至TFS 11b的移动以及将MSIB11a中存在满逻辑块设定为条件的压紧处理的实例。“满”逻辑块是指其中所有逻辑页已被写入且不可能进行额外记录的逻辑块。
1.参考MS逻辑块管理表35的有效标志35e,当在MS 11中存在被无效的逻辑块时,数据管理单元120将该逻辑块设定为空闲块FB。
2.数据管理单元120将MSIB 11a中的满逻辑块移动至MS 11。具体地,数据管理单元120更新上文所解释的MS结构管理表(未示出),且将逻辑块从在MSIB的管理之下转移至在MS 11的管理之下。
3.数据管理单元120判断分配给MS 11的逻辑块的数目是否超过MS11所允许的逻辑块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的MS压紧。
4.参考MS逻辑块管理表35的有效轨道的数目35c的字段等等,数据管理单元120以有效轨道的数目对不包括在TFS 11b中的逻辑块当中的具有被无效的轨道的逻辑块进行排序。
5.数据管理单元120从具有小数目的有效轨道的逻辑块收集轨道,且执行压紧。在执行压紧过程中,首先,对于逻辑块中的每一个,对轨道进行复制(一次复制2i个轨道),以执行压紧。当作为压紧对象的轨道具有在WC 21、FS 12和IS 13中的有效簇时,数据管理单元120还合并这些有效簇。
6.数据管理单元120将压紧源处的逻辑块设定为空闲块FB。
7.当执行压紧且一个逻辑块包括有效的2i个轨道时,数据管理单元120将该逻辑块移动至TFS 11b的顶部。
8.当可通过将逻辑块中的有效轨道复制至另一逻辑块而产生空闲块FB时,数据管理单元120以轨道单位将数目小于2i的有效轨道额外记录在MSIB 11a中。
9.数据管理单元120将压紧源处的逻辑块设定为空闲块FB。
10.当分配给MS 11的逻辑块的数目降低至MS 11所允许的逻辑块的数目的上限以下时,数据管理单元120结束MS压紧处理。
FS 12中的CIB处理
解释FS 12中的CIB处理(步骤S340)。当通过从WC 21至FSIB 12a的簇写入处理而在FSIB 12a中产生其中所有的逻辑页都被写入的满逻辑块时,将FSIB 12a中的逻辑块从FSIB 12a移动至FS 12。根据该移动,将旧逻辑块从由多个逻辑块配置的FIFO结构的FS 12清理。
具体地如下文所解释地实现从FSIB 12a至FS 12的清理以及从FS 12至MS 11和/或IS 13的清理。
1.参考FS/IS逻辑块管理表42的有效标志35e等等,当在FS 12中存在被无效的逻辑块时,数据管理单元120将该逻辑块设定为空闲块FB。
2.数据管理单元120将FSIB 12a中的满逻辑块清理至FS 12。具体地,数据管理单元120更新FS/IS结构管理表(未示出),且将该逻辑块从在FSIB 12a的管理之下转移至在FS 12的管理之下。
3.数据管理单元120判断分配给FS 12的逻辑块的数目是否超过FS12所允许的逻辑块的数目的上限。当逻辑块的数目超过上限时,数据管理单元120执行下文所解释的清理。
4.数据管理单元120判定作为清理对象的最旧逻辑块中的簇当中应直接被复制至MS 11而不移动至IS 13的簇(实际上,因为MS 11的管理单位为轨道,所以以轨道单位判定所述簇)。
(A)数据管理单元120按照从逻辑页的顶部开始的顺序扫描作为清理对象的最旧逻辑块中的有效簇。
(B)数据管理单元120参考轨道管理表30的FS簇的数目30f的字段,寻找在FS中该簇所属于的轨道具有多少个有效簇。
(C)当该轨道中的有效簇的数目等于或大于预定阈值(例如,2k-1的50%)时,数据管理单元120将该轨道设定为清理至MS 11的候选者。
5.数据管理单元120将应被清理至MS 11的轨道写入MSIB 11a中。
6.当在最旧逻辑块中遗留有将要以轨道单位进行清理的有效簇时,数据管理单元120进一步执行至MSIB 11a的清理。
7.当即使在上文的处理2至处理4之后,作为清理对象的逻辑块中仍存在有效簇时,数据管理单元120将最旧逻辑块移动至IS 13。
当执行从FS 12至MSIB 11a的清理时,紧接在清理之后,数据管理单元120执行MS 11中的CIB处理(步骤S350)。
IS 13中的CIB处理
解释IS 13中的CIB处理(步骤S360)。根据从FS 12至IS 13的移动而将逻辑块添加至IS 13。然而,根据逻辑块的添加,逻辑块的数目超过可在多个逻辑块所形成的IS 13中进行管理的逻辑块的数目的上限。当逻辑块的数目超过上限时,在IS 13中,数据管理单元120执行一个到多个逻辑块至MS 11的清理,并执行IS压紧。具体地,数据管理单元120执行下文所解释的过程。
1.数据管理单元120以轨道中的有效簇的数目×有效簇系数对IS 13中所包括的轨道进行排序,收集具有大乘积值的2i+1个轨道(对于两个逻辑块),且将这些轨道清理至MSIB 11a。
2.当具有最小数目的有效簇的2i+1个逻辑块的有效簇的总数目为例如等于或大于作为预定设定值的2k个(对于一个逻辑块)时,数据管理单元120重复上文所解释的步骤。
3.在执行清理之后,数据管理单元120按照从具有最小数目的有效簇的逻辑块开始的顺序收集2k个簇,且执行IS 13中的压紧。
4.数据管理单元120将压紧源处的逻辑块当中不包括有效簇的逻辑块释放作为空闲块FB。
当执行从IS 13至MSIB 11a的清理时,紧接在清理之后,数据管理单元120执行MS 11中的CIB处理(步骤S370)。
图20为部件当中的数据的流动中的输入与输出的组合的图,且指示作为触发器引起数据的流动的原因。基本上,根据从WC 21的簇清理而将数据写入FS 12中。然而,当对于从WC 21至FS 12的清理偶然有必要进行簇内扇区填充(簇填充)时,复制来自FS 12、IS 13和MS 11的数据。在WC 21中,通过使用WC簇管理表25的标记中的扇区位置位映像25b而识别相关逻辑簇地址中存在还是不存在2(l-k)个扇区,有可能以扇区(512B)为单位执行管理。另一方面,FS 12和IS 13的管理单位为簇,且MS 11的管理单位为轨道,其中FS 12和IS 13为NAND存储器10中的功能部件。以这种方式,NAND存储器10中的管理单位比扇区大。因此,在从WC 21将数据写入NAND存储器10中的过程中,当在NAND存储器10中存在其逻辑簇地址与将要写入的数据的逻辑簇地址相同的数据时,有必要在进行这样的合并之后将数据写入NAND存储器10中,所述合并是将将要从WC 21写入NAND存储器10中的簇中的扇区与NAND存储器10中存在的相同逻辑簇地址中的扇区进行合并。
该处理是图20中所示的簇内扇区填充处理(簇填充)和轨道内扇区填充(轨道填充)。除非执行这些种类的处理,否则不能读出正确数据。因此,当数据从WC 21清理至FSIB 12a或MSIB 11a时,参考WC簇管理表25且参考与将要清理的簇相对应的标记中的扇区位置位映像25b。当并非所有的扇区位置位映像25b都为“1”时,执行簇内扇区填充或轨道内扇区填充,用于与NAND存储器10中所包括的相同簇或相同轨道中的扇区合并。DRAM 20的工作区被用于该处理。在DRAM 20的工作区上合并在逻辑簇地址或逻辑轨道地址中所包括的多个扇区,且产生将要清理的数据图像(簇图像或轨道图像)。将所产生的数据图像从DRAM 20的工作区写入MSIB 11a中或写入FSIB 12a中。
在IS 13中,基本上,根据从FS 12的块清理(移动)而写入数据,或者根据IS中的压紧而写入数据。在MS 11中,可从所有区段写入数据。当写入数据时,在MS 11中,因为仅可以以轨道为单位写入数据,所以可引起由MS本身的数据引起的填充。当以轨道为单位写入数据时,还根据被动合并而写入其它逻辑块中的片段数据。此外,在MS 11中,还根据MS压紧而写入数据。在被动合并中,当执行从WC 21、FS 12或IS 13这三个部件之一至MS 11的轨道清理或逻辑块清理(对于2i个轨道的清理)时,在DRAM 20的工作区中收集一个部件中的作为清理对象的轨道(或逻辑块)中所包括的两个部件中的有效簇以及MS 11中的有效簇,并将这些有效簇从DRAM 20的工作区写入MSIB 11a中作为用于一个轨道的数据。
参考图21和22解释根据本实施例的存储器系统的本质部分。图21和22所示的处理被控制为通过从主机设备接收请求的数据管理单元120(参见图4)来执行。
如背景技术部分所解释的,过去的方法的主要目的在于改善抵抗读取干扰的耐久性。因此,用于该目的的措施很复杂,并不可避免地导致成本的显著增加。另一方面,在采用其中频繁执行数据擦除、写入和读出的NAND闪速存储器的次级存储装置中,实际上通常很难完全消除读取干扰本身。
在这种类型的存储装置中存在耐久寿命这一概念。如果可以确实保证耐久寿命周期期间的正常操作,则存储装置可以发挥其作用。因此,在用作大容量次级存储装置的NAND闪速存储器中,如果可以延迟读取干扰的发生,就有可能抑制由读取干扰引起的存储装置耐久寿命的恶化的发展。
(用于减少在读取处理期间NAND存储器存取的处理)
图21是用于减少在读取处理期间NAND存储器存取的处理的处理流程的流程图。在图21中,数据管理单元120从主机设备接收读取请求(步骤ST101)。数据管理单元120基于由主机设备指定的LBA,参考WC簇管理表25(参见图8和10)、RC簇管理表23(参见图8和9)、WC轨道管理表24(参见图8和11)、轨道管理表30(参见图8和12)、FS/IS管理表40(参见图8和13)等等,并判定条目是否存在于WC 21、RC 22、MS 11、FS 12或IS 13中(步骤ST102)。
当存在由主机设备1指定的LBA(下文中称为“指定的LBA”)的条目时(步骤ST102处为“是”),数据管理单元120从NAND存储器中与其对应的存储位置读出相关数据(步骤ST103),将该数据通知给主机设备1(步骤ST104),并结束该处理。
另一方面,当不存在指定的LBA的条目时(步骤ST102处为“否”),数据管理单元120将从稍后解释的虚数据区中读出的数据通知给主机设备1(步骤ST105),并结束整个处理。当有效条目不存在于FS/IS管理表40上并且逻辑块ID在轨道管理表上为无效值(尚未被映射到MS 11)时,指定的LBA的条目不存在。
(虚数据和虚数据区)
解释虚数据和虚数据区。虚数据是具有这样的预定值的数据,当NAND存储器10的状态满足预定条件时,数据管理单元120应该将该预定值返回主机设备侧(ATA命令处理单元121)。准备簇大小的数据,以对簇进行填充。作为虚数据,例如,可以使用“全0”[0x0000...]和“全1”[0xFFFF...]。
虚数据区是在其中存储虚数据的存储区。在该实施例中,如上文所解释的,数据管理单元120向ATA命令处理单元121通知虚数据或虚数据区的地址,而不是向其通知这样的消息,该消息用于通知由主机设备指定的LBA(指定的LBA)是没有在NAND存储器10上写入的LBA区(未被写入的LBA区)。
(用于减少写入处理期间NAND存储器存取的处理)
图22是用于减少在写入处理期间NAND存储器存取的处理的处理流程的流程图。在图22中,当产生要求从WC 21进行数据清理的写入请求(清理请求)时(步骤ST201),并且当包括决定要清理的有效簇的逻辑地址区的全部数据并不都存在于WC 21中时,发生簇内扇区填充和轨道内扇区填充(步骤ST202)。
数据管理单元120参考WC簇管理表25。然而,当与将要清理的簇相对应的标记中的所有扇区位置位映像25b并非都为“1”时,扇区位置位映像25b需要与NAND存储器10中所包括的同一簇中的扇区进行合并。因此,数据管理单元120执行这样的处理,该处理用于判定应该用于进行填充的相应地址区的条目是否存在于NAND存储器10中(步骤ST203)。
当用于从WC 21的清理中所涉及的簇内扇区填充和轨道内扇区填充的相应地址区的条目存在于NAND存储器10中时(步骤ST203处为“是”),数据管理单元120选择存储在NAND存储器10中的同一簇中的扇区作为填充源,并将其与从WC 21清理的扇区合并(步骤ST204)。数据管理单元120将用NAND存储器中的有效数据填充的簇数据写入NAND存储器10中的预定位置中(步骤ST205),并结束该处理流程。
另一方面,当应该用于从WC 21的清理中所涉及的簇内扇区填充和轨道内扇区填充的相应地址区的条目不存在于NAND存储器10中时(步骤ST203处为“否”),数据管理单元120选择存储在DRAM 20中的虚数据作为填充源(步骤ST206)。数据管理单元120将用虚数据填充的簇数据写入NAND存储器10中的预定位置中(步骤ST207),并结束该处理流程。
(该实施例的补充解释和效果)
简要地补充解释上文解释的处理。在根据该实施例的存储器系统中,如上文所解释的,响应于包括未被写入的LBA的读取请求和写入请求,执行用于返回DRAM 20上的虚数据区的数据的处理。该处理使得可以自动地向主机侧返回所判定的固定数据,而不管理在写入之后哪个扇区区域未被写入。因此,可以减小用于管理未被写入的LBA区的存储器容量。
当在读取处理期间产生针对未被写入的LBA区的读出请求时,数据管理单元120返回从DRAM 20上的虚数据区读出的数据,而不对NAND存储器10进行存取。因此,可以减小对NAND存储器10的不必要的读出处理的次数。于是,可以延迟读取干扰的发生,并抑制由读取干扰引起的存储装置的耐久寿命的恶化的进展。
当在写入处理期间应该用于从WC 21的清理中所涉及的簇内扇区填充和轨道内扇区填充的相应地址区的条目不存在于NAND存储器10中时,数据管理单元120选择DRAM 20上的虚数据区作为填充源。因此,可以减少对NAND存储器10的不必要的读出处理的次数。于是,可以延迟读取干扰的发生,并抑制由读取干扰引起的存储装置的耐久寿命的恶化的发展。
在该实施例中,使用诸如“全0”[0x0000...]和“全1”[0xFFFF...]的值作为虚数据。然而,虚数据不限于这些值。任意值都可以被用作虚数据。
如上文所解释的,在该实施例中,可以抑制由读取干扰引起的存储装置的耐久寿命的恶化的发展。
本发明不限于上文所描述的实施例。因此,可在不偏离本发明的范围的情况下进行各种修改。
此外,上文所描述的实施例包括各种具有创造性步骤的组成部分。即,可通过分布或整合任意所揭示的组成部分而对本发明进行各种修改。
例如,可通过从这些实施例中所揭示的所有组成部分当中省略任意组成部分而进行本发明的各种修改,只要可解决本发明要解决的问题且可获得将要通过本发明获得的优点即可。
此外,在上述实施例中解释:簇大小乘以等于或大于二的正整数等于逻辑页大小。然而,本发明并不因此而受限制。
例如,簇大小可与逻辑页大小相同,或可为通过组合多个逻辑页而使逻辑页大小乘以等于或大于二的正整数所获得的大小。
此外,簇大小可与用于在诸如个人计算机的主机设备1上运行的OS(操作系统)的文件系统的管理单位相同。
此外,在上述实施例中解释:轨道大小乘以等于或大于二的正整数等于逻辑块大小。然而,本发明并不因此而受限制。
例如,轨道大小可与逻辑块大小相同,或可为通过组合多个逻辑块而使逻辑块大小乘以等于或大于二的正整数所获得的大小。
如果轨道大小等于或大于逻辑块大小,则MS压紧处理不是必要的。因此,可省略TFS 11b。
[第二实施例]
图23示出个人计算机的实例的透视图。个人计算机1200包括主体1201和显示单元1202。显示单元1202包括显示器外壳1203和容纳于显示器外壳1203中的显示装置1204。
主体1201包括底盘1205、键盘1206以及作为指向装置的触摸板1207。底盘1205包括主电路板、ODD单元(光盘装置)、卡槽以及第一实施例中所描述的SSD 1100。
卡槽设置为邻近底盘1205的周边壁。周边壁具有面向卡槽的开口1208。用户可从底盘1205的外部经由开口1208将额外装置插入卡槽中和将额外装置从卡槽移除。
SSD 1100可以以安装于个人计算机1200中的状态来使用以代替现有技术的HDD,或可以以插入个人计算机1200的卡槽中的状态来用作额外装置。
图24示出个人计算机中的系统架构的实例的图。个人计算机1200包括CPU 1301、北桥1302、主存储器1303、视频控制器1304、音频控制器1305、南桥1309、BIOS-ROM 1310、第一实施例中所描述的SSD 1100、ODD单元1311、嵌入式控制器/键盘控制器(EC/KBC)IC 1312,以及网络控制器1313。
CPU 1301是用于控制个人计算机1200的操作的处理器,且执行从SSD 1100加载至主存储器1303的操作系统(OS)。当ODD单元1311执行对光盘的读取处理和写入处理之一时,CPU 1301执行这些处理。CPU1301执行存储在BIOS-ROM 1310中的系统BIOS(基本输入输出系统)。系统BIOS是用于控制个人计算机1200的硬件的程序。
北桥1302是将CPU 1301的局部总线连接至南桥1309的桥接装置。北桥1302具有用于控制对主存储器1303的存取的存储器控制器。北桥1302具有通过AGP(加速图形端口)总线执行视频控制器1304与音频控制器1305之间的通信的功能。
主存储器1303暂时存储程序或数据,且用作CPU 1301的工作区。主存储器1303包括例如DRAM。视频控制器1304是用于控制显示单元的视频再现控制器,所述显示单元用于便携式计算机1200的显示监视器(LCD)1316。音频控制器1305是用于控制便携式计算机1200的扬声器的音频再现控制器。
南桥1309控制连接至LPC(低引脚计数)总线的装置,并控制连接至PCI(周边部件互连)总线的装置。南桥1309通过ATA接口控制作为存储软件和数据的存储器装置的SSD 1100。
个人计算机1200以扇区单位执行对SSD 1100的存取。例如,通过ATA接口输入写入命令、读取命令和高速缓冲存储器闪存命令(cache flashcommand)。南桥1309具有控制BIOS-ROM 1310和ODD单元1311的功能。
EC/KBC 1312是这样的一个芯片微处理器,其集成在用于控制电源的嵌入式控制器以及用于控制键盘(KB)1206和触摸板1207的键盘控制器上。EC/KBC 1312具有这样的功能,即,基于用户对电源按钮的操作而设定个人计算机1200的电源的接通/断开。网络控制器1313是例如执行至网络(例如,因特网)的通信的通信装置。
尽管上述实施例中的存储器系统作为SSD而被包含,但其也可以作为例如通过SDTM卡为代表的存储卡而被包含。此外,存储器系统不仅可应用于个人计算机,而且可应用于诸如蜂窝式电话、PDA(个人数字助理)、数字静态相机、数字视频相机以及电视的各种电子装置。
本领域技术人员将容易想到其他优点和修改。因此,本发明在其更宽泛的方面不限于本文中所示并描述的具体细节和代表性实施例。因此,可在不偏离由所附权利要求及其等价物所限定的总发明构思的精神或范围的情况下进行各种修改。
Claims (20)
1.一种存储器系统,包括:
作为高速缓冲存储器的第一存储区,其包括易失性半导体存储器;
第二存储区和第三存储区,其包括非易失性半导体存储器,在所述第二存储区和所述第三存储区中,以页单位执行读出和写入,且以块单位执行擦除,所述块单位的大小为所述页单位的两倍或更大的自然数倍;
管理表群组,在其中存储管理信息,所述管理信息包括存储在所述第一、第二和第三存储区中的数据的存储位置;以及
控制器,其以与块中的一个或多个块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区,其中,
当从外部接收到读出请求时,所述控制器基于所述管理表群组而判定未被写入的逻辑地址区是否存在于被请求读出的逻辑地址区所映射到的所述第二或第三存储区中,并且当存在所述未被写入的逻辑地址区时,向外部通知与所述未被写入的逻辑地址区相关联的预定的固定数据。
2.根据权利要求1的存储器系统,其中所述控制器以第一管理单位管理所述第一存储区和所述第二存储区,并以第二管理单位管理所述第三存储区。
3.根据权利要求1的存储器系统,其中所述固定数据存储在所述第一存储区中。
4.根据权利要求3的存储器系统,其中具有所述第一管理单位的大小的数据被提供作为所述固定数据。
5.根据权利要求4的存储器系统,其中具有“0”或“1”的位值的数据被提供作为所述固定数据。
6.根据权利要求2的存储器系统,其中所述第一管理单位是通过将所述页单位除以自然数而获得的大小。
7.根据权利要求2的存储器系统,其中所述第二管理单位的大小为所述页单位的两倍或更大的自然数倍,并且是通过将所述块单位除以等于或大于二的自然数而获得的大小。
8.根据权利要求1的存储器系统,其中
所述易失性半导体存储器为DRAM,并且
所述非易失性半导体存储器为NAND闪速存储器。
9.一种存储器系统,包括:
作为高速缓冲存储器的第一存储区,其包括易失性半导体存储器;
第二存储区和第三存储区,其包括非易失性半导体存储器,在所述第二存储区和所述第三存储区中,以页单位执行读出和写入,且以块单位执行擦除,所述块单位的大小为所述页单位的两倍或更大的自然数倍;
管理表群组,在其中存储管理信息,所述管理信息包括存储在所述第一、第二和第三存储区中的数据的存储位置;以及
控制器,其以与块中的一个或多个块相关联的逻辑块单位将所述非易失性半导体存储器的存储区分配给所述第二存储区和所述第三存储区,其中,
当从外部接收到涉及从所述第一存储区向所述第二存储区的数据清理的写入请求,且包括从所述第一存储区清理至所述第二存储区的页单位的逻辑地址区的所有数据并不都存在于所述第一存储区时,所述控制器基于所述管理表,判定未被写入的逻辑地址区是否存在于用于填充在所述第一存储区中不存在的数据的逻辑地址区所映射到的所述第二和第三存储区中,并且当存在所述未被写入的逻辑地址区时,选择预定的固定数据作为填充源数据。
10.根据权利要求9的存储器系统,其中所述控制器以第一管理单位管理所述第一存储区和所述第二存储区,并以第二管理单位管理所述第三存储区。
11.根据权利要求10的存储器系统,其中所述控制器执行第一处理、第二处理和第三处理,所述第一处理用于以扇区单位将多个数据写入所述第一存储区中作为所述第一管理单位中的数据,所述第二处理用于将写入所述第一存储区中的数据清理至所述第二存储区中作为所述第一管理单位中的数据,所述第三处理用于将写入所述第一存储区中的数据清理至所述第三存储区中作为所述第二管理单位中的数据。
12.根据权利要求11的存储器系统,其中当所述第一存储区中的数据所属于的所述第二管理单位中的数据的数目超过规定值时,所述控制器执行所述第二处理或所述第三处理。
13.根据权利要求11的存储器系统,其中在执行所述第二处理过程中,当在所述第二存储区中存在其地址与从所述第一存储区清理的所述第一管理单位中的数据的地址相同的数据时,所述控制器在合并所述第一存储区中存在的扇区数据和所述第二存储区中存在的相同地址中的扇区数据之后,将所述扇区数据写入所述第二存储区中。
14.根据权利要求11的存储器系统,其中在执行所述第三处理过程中,当在所述第三存储区中存在其地址与从所述第一存储区清理的所述第一管理单位中的数据的地址相同的数据时,所述控制器在合并所述第一存储区中存在的扇区数据和所述第三存储区中存在的相同地址中的扇区数据之后,将所述扇区数据写入所述第三存储区中。
15.根据权利要求9的存储器系统,其中所述固定数据存储在所述第一存储区中。
16.根据权利要求15的存储器系统,其中具有第一管理单位的大小的数据被提供作为所述固定数据。
17.根据权利要求16的存储器系统,其中具有“0”或“1”的位值的数据被提供作为所述固定数据。
18.根据权利要求10的存储器系统,其中所述第一管理单位是通过将所述页单位除以自然数而获得的大小。
19.根据权利要求10的存储器系统,其中所述第二管理单位的大小为所述页单位的两倍或更大的自然数倍,并且是通过将所述块单位除以等于或大于二的自然数而获得的大小。
20.根据权利要求9的存储器系统,其中
所述易失性半导体存储器为DRAM,并且
所述非易失性半导体存储器为NAND闪速存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP051481/2008 | 2008-03-01 | ||
JP2008051481A JP2009211234A (ja) | 2008-03-01 | 2008-03-01 | メモリシステム |
PCT/JP2009/052594 WO2009110301A1 (en) | 2008-03-01 | 2009-02-10 | Memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101681314A true CN101681314A (zh) | 2010-03-24 |
CN101681314B CN101681314B (zh) | 2011-12-28 |
Family
ID=41055862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009800001336A Expired - Fee Related CN101681314B (zh) | 2008-03-01 | 2009-02-10 | 存储器系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8171208B2 (zh) |
EP (1) | EP2260390A4 (zh) |
JP (1) | JP2009211234A (zh) |
KR (1) | KR101102634B1 (zh) |
CN (1) | CN101681314B (zh) |
TW (1) | TWI412039B (zh) |
WO (1) | WO2009110301A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102332290A (zh) * | 2010-05-24 | 2012-01-25 | 慧荣科技股份有限公司 | 用来管理和存取闪存模块的控制器 |
WO2014139047A1 (en) * | 2013-03-14 | 2014-09-18 | Micron Technology, Inc. | Memory systems and methods including training,data organizing,and/or shadowing |
CN105426315A (zh) * | 2014-09-02 | 2016-03-23 | 慧荣科技股份有限公司 | 实体储存对照表维护方法以及使用该方法的装置 |
CN108563401A (zh) * | 2018-03-27 | 2018-09-21 | 深圳忆联信息系统有限公司 | 一种ssd性能加速方法 |
CN108874298A (zh) * | 2017-05-15 | 2018-11-23 | 深圳市奇辉电气有限公司 | 一种数据存储的方法及装置 |
CN116880772A (zh) * | 2023-08-10 | 2023-10-13 | 广州菲利斯太阳能科技有限公司 | 基于flash保存发电量的方法 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4461170B2 (ja) | 2007-12-28 | 2010-05-12 | 株式会社東芝 | メモリシステム |
CN101632068B (zh) | 2007-12-28 | 2015-01-14 | 株式会社东芝 | 半导体存储装置 |
JP4439569B2 (ja) * | 2008-04-24 | 2010-03-24 | 株式会社東芝 | メモリシステム |
JP5221332B2 (ja) * | 2008-12-27 | 2013-06-26 | 株式会社東芝 | メモリシステム |
JP5317690B2 (ja) * | 2008-12-27 | 2013-10-16 | 株式会社東芝 | メモリシステム |
KR101269366B1 (ko) | 2009-02-12 | 2013-05-29 | 가부시끼가이샤 도시바 | 메모리 시스템 및 메모리 시스템의 제어 방법 |
JP5066199B2 (ja) | 2010-02-12 | 2012-11-07 | 株式会社東芝 | 半導体記憶装置 |
JP2011209973A (ja) * | 2010-03-30 | 2011-10-20 | Hitachi Ltd | ディスクアレイ構成プログラム、計算機、計算機システム |
US20120036308A1 (en) * | 2010-08-06 | 2012-02-09 | Swanson Robert C | Supporting a secure readable memory region for pre-boot and secure mode operations |
JP2012141946A (ja) * | 2010-12-16 | 2012-07-26 | Toshiba Corp | 半導体記憶装置 |
JP5221699B2 (ja) * | 2011-03-23 | 2013-06-26 | 株式会社東芝 | 半導体記憶装置 |
US8687421B2 (en) * | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
KR102218712B1 (ko) | 2014-02-11 | 2021-02-22 | 삼성전자주식회사 | 저장 장치의 어드레스 맵핑 방법 및 저장 장치의 데이터 독출 방법 |
KR102344834B1 (ko) * | 2014-09-24 | 2021-12-29 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템 |
TWI545433B (zh) * | 2015-03-04 | 2016-08-11 | 慧榮科技股份有限公司 | 實體儲存對照表維護方法以及使用該方法的裝置 |
US9880778B2 (en) * | 2015-11-09 | 2018-01-30 | Google Inc. | Memory devices and methods |
JP2018160056A (ja) | 2017-03-22 | 2018-10-11 | 東芝メモリ株式会社 | メモリコントローラ、メモリシステムおよび制御方法 |
US10446197B2 (en) | 2017-08-31 | 2019-10-15 | Micron Technology, Inc. | Optimized scan interval |
US10754580B2 (en) | 2017-10-23 | 2020-08-25 | Micron Technology, Inc. | Virtual partition management in a memory device |
US11455245B2 (en) | 2017-12-11 | 2022-09-27 | Micron Technology, Inc. | Scheme to improve efficiency of garbage collection in cached flash translation layer |
US10365854B1 (en) | 2018-03-19 | 2019-07-30 | Micron Technology, Inc. | Tracking data temperatures of logical block addresses |
US11537521B2 (en) | 2019-06-05 | 2022-12-27 | Samsung Electronics Co., Ltd. | Non-volatile dual inline memory module (NVDIMM) for supporting dram cache mode and operation method of NVDIMM |
US11921593B2 (en) * | 2022-04-27 | 2024-03-05 | Rubrik, Inc. | Multi-phase file recovery from cloud environments |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05314763A (ja) * | 1992-05-12 | 1993-11-26 | Mitsubishi Electric Corp | 半導体記憶装置 |
KR970008188B1 (ko) * | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
JP3450625B2 (ja) | 1997-02-10 | 2003-09-29 | 東芝マイクロエレクトロニクス株式会社 | 不揮発性半導体記憶装置とその動作方法 |
US7610438B2 (en) * | 2000-01-06 | 2009-10-27 | Super Talent Electronics, Inc. | Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
JP4772214B2 (ja) * | 2001-06-08 | 2011-09-14 | ルネサスエレクトロニクス株式会社 | 不揮発性記憶装置及びその書き換え制御方法 |
JP4280055B2 (ja) * | 2001-11-28 | 2009-06-17 | 株式会社Access | メモリ制御方法および装置 |
CN1480950A (zh) * | 2002-09-05 | 2004-03-10 | 力旺电子股份有限公司 | 即时多路复用且可快速复制数据的闪速存储器装置 |
DE10305986B4 (de) | 2003-02-12 | 2022-07-21 | IAD Gesellschaft für Informatik, Automatisierung und Datenverarbeitung mbH | Messsystem mit intelligentem Sensorkopf für Mittel- oder Hochspannungsanlagen oder im Bergbau |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7610435B2 (en) * | 2004-02-27 | 2009-10-27 | Panasonic Corporation | Nonvolatile memory device employing a write completion flag table |
JP2005250938A (ja) * | 2004-03-05 | 2005-09-15 | Hitachi Ltd | 記憶制御システム及び方法 |
JP3942612B2 (ja) * | 2004-09-10 | 2007-07-11 | 東京エレクトロンデバイス株式会社 | 記憶装置、メモリ管理方法及びプログラム |
US7366826B2 (en) * | 2004-12-16 | 2008-04-29 | Sandisk Corporation | Non-volatile memory and method with multi-stream update tracking |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
JP2007164318A (ja) | 2005-12-12 | 2007-06-28 | Renesas Technology Corp | 記憶装置 |
EP1960863A2 (en) * | 2005-12-13 | 2008-08-27 | SanDisk Corporation | Logically-addressed file storage |
US20070143560A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Non-volatile memories with memory allocation for a directly mapped file storage system |
JP4700562B2 (ja) * | 2006-05-18 | 2011-06-15 | 株式会社バッファロー | データ記憶装置およびデータ記憶方法 |
JP4794530B2 (ja) | 2007-10-26 | 2011-10-19 | ルネサスエレクトロニクス株式会社 | 半導体装置および携帯電話 |
-
2008
- 2008-03-01 JP JP2008051481A patent/JP2009211234A/ja not_active Abandoned
-
2009
- 2009-02-10 WO PCT/JP2009/052594 patent/WO2009110301A1/en active Application Filing
- 2009-02-10 KR KR1020097018119A patent/KR101102634B1/ko not_active IP Right Cessation
- 2009-02-10 EP EP09713658A patent/EP2260390A4/en not_active Withdrawn
- 2009-02-10 US US12/529,126 patent/US8171208B2/en active Active
- 2009-02-10 CN CN2009800001336A patent/CN101681314B/zh not_active Expired - Fee Related
- 2009-02-24 TW TW098105827A patent/TWI412039B/zh not_active IP Right Cessation
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102332290A (zh) * | 2010-05-24 | 2012-01-25 | 慧荣科技股份有限公司 | 用来管理和存取闪存模块的控制器 |
CN102332290B (zh) * | 2010-05-24 | 2015-02-04 | 慧荣科技股份有限公司 | 用来管理和存取闪存模块的控制器 |
WO2014139047A1 (en) * | 2013-03-14 | 2014-09-18 | Micron Technology, Inc. | Memory systems and methods including training,data organizing,and/or shadowing |
TWI512608B (zh) * | 2013-03-14 | 2015-12-11 | Micron Technology Inc | 包括訓練、資料組織及/或蔭蔽之記憶體系統及方法 |
CN105426315A (zh) * | 2014-09-02 | 2016-03-23 | 慧荣科技股份有限公司 | 实体储存对照表维护方法以及使用该方法的装置 |
CN105426315B (zh) * | 2014-09-02 | 2018-05-15 | 慧荣科技股份有限公司 | 实体储存对照表维护方法以及使用该方法的装置 |
CN108874298A (zh) * | 2017-05-15 | 2018-11-23 | 深圳市奇辉电气有限公司 | 一种数据存储的方法及装置 |
CN108874298B (zh) * | 2017-05-15 | 2021-08-03 | 深圳市奇辉电气有限公司 | 一种数据存储的方法及装置 |
CN108563401A (zh) * | 2018-03-27 | 2018-09-21 | 深圳忆联信息系统有限公司 | 一种ssd性能加速方法 |
CN116880772A (zh) * | 2023-08-10 | 2023-10-13 | 广州菲利斯太阳能科技有限公司 | 基于flash保存发电量的方法 |
CN116880772B (zh) * | 2023-08-10 | 2024-06-07 | 广州菲利斯太阳能科技有限公司 | 基于flash保存发电量的方法 |
Also Published As
Publication number | Publication date |
---|---|
KR101102634B1 (ko) | 2012-01-04 |
JP2009211234A (ja) | 2009-09-17 |
TW200947445A (en) | 2009-11-16 |
TWI412039B (zh) | 2013-10-11 |
US8171208B2 (en) | 2012-05-01 |
KR20090117933A (ko) | 2009-11-16 |
EP2260390A1 (en) | 2010-12-15 |
US20100312948A1 (en) | 2010-12-09 |
CN101681314B (zh) | 2011-12-28 |
EP2260390A4 (en) | 2012-11-14 |
WO2009110301A1 (en) | 2009-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681314B (zh) | 存储器系统 | |
CN101689140B (zh) | 存储器系统 | |
CN101681315B (zh) | 存储器系统 | |
CN101632068B (zh) | 半导体存储装置 | |
CN101681299A (zh) | 存储器系统 | |
KR101018766B1 (ko) | 메모리 시스템 | |
CN101095121B (zh) | 高速暂存区块 | |
TWI420310B (zh) | 記憶體系統 | |
KR101095765B1 (ko) | 메모리 시스템 및 그 제어 방법 | |
JP4551940B2 (ja) | メモリシステム | |
CN101641680A (zh) | 存储器系统 | |
KR101067457B1 (ko) | 메모리 시스템 | |
JP4691123B2 (ja) | メモリシステム | |
CN102667739A (zh) | 存储装置管理装置及用于管理存储装置的方法 | |
US9015421B2 (en) | Memory system | |
CN100533408C (zh) | 一种闪存的安全读写方法 | |
JP2010176702A (ja) | メモリシステム | |
KR101032671B1 (ko) | 메모리 시스템 | |
JP2009217756A (ja) | メモリシステム | |
JP2011103144A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111228 Termination date: 20130210 |