CN101069163A - 存储器系统以及写入非易失性半导体存储器中的方法 - Google Patents

存储器系统以及写入非易失性半导体存储器中的方法 Download PDF

Info

Publication number
CN101069163A
CN101069163A CNA2006800013096A CN200680001309A CN101069163A CN 101069163 A CN101069163 A CN 101069163A CN A2006800013096 A CNA2006800013096 A CN A2006800013096A CN 200680001309 A CN200680001309 A CN 200680001309A CN 101069163 A CN101069163 A CN 101069163A
Authority
CN
China
Prior art keywords
data
address
write
original block
piece
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
Application number
CNA2006800013096A
Other languages
English (en)
Other versions
CN100527097C (zh
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.)
Japanese Businessman Panjaya Co ltd
Kioxia 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 CN101069163A publication Critical patent/CN101069163A/zh
Application granted granted Critical
Publication of CN100527097C publication Critical patent/CN100527097C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

一种存储系统包括一个非易失性半导体存储器,该存储器包括由n个(n为自然数)写单元区域构成的第一原始块和由多个写单元区域构成的第一子块。一个控制器将具有第1到第p个(p为小于n的自然数)地址中的一个地址的数据写入所述第一原始块中。当所述控制器收到写入具有作为所述第1到第p个地址之一的第一写地址的数据的请求并且具有所述第一写地址的数据存在于所述第一原始块中时,所述控制器将具有所述第一写地址的数据写入所述第一子块中。

Description

存储器系统以及写入非易失性半导体存储器中的方法
技术领域
本发明涉及到一种存储器系统以及一种利用比如卡控制器来对存储器写入的方法。
背景技术
具有非易失性半导体存储器,比如闪存,的存储卡被用作记录音乐数据和视频数据的介质。存储卡中所用的闪存的一个典型例子包括一种NAND型闪存。
存储器中的数据依照来自应用程序等的写请求由存储卡所插入的主器件中的文件系统来管理。所述文件系统将要写入的文件分为簇大小的数据片段。给每个被分割的数据分配一个逻辑地址,所述数据按逻辑地址的顺序被分配给未分配的簇。存储卡将数据写入存储器中,同时在存储器中实现的一个表之类的东西上管理每个数据的逻辑地址和用以写入所述逻辑地址的数据的物理地址之间的对应。
当使用这种类型的文件系统时,诸如FAT这样的管理数据和有关根目录入口的信息以及被写数据在存储器中写入数据时要进行更新。然而,NAND型闪存有以下特点:(1)数据一页一页地写入,(2)每个包含多页的块要擦除数据,(3)数据不能写入已经存有数据的页。所以,为了按页更新数据,通过使用一个擦除了的块来执行下面所描述的过程。具体说,将要更新的数据(新数据)写入没有数据写入的新块中,然后,将没有更新的其余的数据从一个含有旧数据(要重写成新数据的数据)的旧块中复制到所述新块中。于是,需要相当多的时间来更新每一页的数据。
如上所述,在每次需要写文件的时候,要频繁地更新管理数据。因此,在使用闪存和FAT文件系统的存储卡中,数据的写和重写速度会慢。
为了避免写速度的减小,可以将FAT文件系统的管理数据写入一个高速缓存块(子块)中,该块专用于按写请求的顺序从低地址页到高地址页存储数据。提供所述高速缓存块时也提供一个每个逻辑地址的数据原先要写入的块(原始块)。随着写入给定数据的请求的到来,数据被写入所述原始块中。每次对已经写入原始块中的数据进行更新的请求来到时,所述数据被相继写入所述子块中。在这个过程中,存储卡准备一个对应表,该表指明,给定逻辑地址上的最新数据要写入子块中的哪一页中。
所述卡在预定的时刻重建原始块。所述重建包括,参考对应表,将子块中每个逻辑地址上的最新数据收集到原始块中。
然而,原始块的重建存在下述的问题。假设,例如,块B1是一个原始块,用来存储地址0到5的数据,如图16所示。地址0到5上的每个旧数据被存储在块B1中,地址0到5上的每个最新数据被存储在所述原始块B1的一个子块SB中。当地址0到5的原始块从这个状态重建时,采取下面的步骤。首先,准备好一个擦除了的块B2,然后,地址0的最新数据从子块的页5中读出,并写入所述块B2的页1中。
接着,地址1的最新数据从子块的页4中读出,并写入所述块B2的页2中。通过重复这个过程,地址0到5的最新数据被写入所述块B2中,如图16所示。最后,块B2被设定为地址0到5的一个相应的原始块。
为了执行上述过程,读写过程重复执行的次数与分配给一个原始块的地址数(在所示例子中为六个地址)相同。在重建期间,存储卡给主器件连续输出占线信号。如果占线信号的输出时间比主器件中设定的时间周期要长的话,主器件可以判断存储卡出现了问题。由于技术的进步而使页的容量增加时,这个问题会变得更加显著。
发明内容
根据本发明的一个方面,提供一种存储系统,该系统包含非易失性半导体存储器,它包括由n个(n为自然数)写单元区域构成的第一原始块和由多个写单元区域构成的第一子块,以及一个控制器,它将具有第1到第p个(p为小于n的自然数)地址中的一个地址的数据写入所述第一原始块中,当所述控制器收到写入具有所述第1到第p个地址之一的第一写地址的数据的请求并且具有所述第一写地址的数据存在于所述第一原始块中时,所述控制器将具有所述第一写地址的数据写入所述第一子块中。
根据本发明的一个方面,提供一种写入非易失性半导体存储器中的方法,该存储器包括由n个(n为自然数)写单元区域构成的第一原始块和由多个写单元区域构成的第一子块,该方法包括,将具有第1到第p个(p为小于n的自然数)地址中的一个地址的数据写入所述第一原始块中,当所述控制器收到写具有所述第1到第p个地址之一的第一写地址的数据的请求并且具有所述第一写地址的数据存在于所述第一原始块中时,将具有所述第一写地址的数据写入所述第一子块中。
附图说明
图1是一个示意图,显示了根据本发明的一个实施例的存储卡的配置;
图2显示了根据本发明的实施例的存储卡中信号管脚的信号分配;
图3是一个方框图,显示了根据本发明的实施例的存储卡的硬件配置;
图4显示了根据本发明的实施例的存储卡中寄存器单元的详细配置;
图5显示了根据本发明的实施例的存储卡中闪存的缓冲器和存储单元的结构;
图6显示了每个操作模式中SD总线信号管脚的信号分配;
图7显示了FAT文件系统的配置;
图8显示了FAT和根目录入口中的数据的例子;
图9显示了本发明的实施例所述的存储卡中存储器的配置;
图10、11、12和13为示意图和流程图,用来解释根据本发明的实施例的写入存储卡中的方法;
图14A和14B示意地显示了二元存储器和多值存储器的存储情形;
图15A和15B示意地显示了多值存储器的二元模式中的存储情形,以及
图16用来解释写入存储卡的常规方法
具体实施方式
下面将参考附图解释本发明的一个实施例。在下面的描述中,实质上具有相同功能和配置的部件分别用同样的参考数字来指定,并且只在需要的时候再次对其做解释。
下面以存储卡为例来解释根据本发明的一个实施例的存储系统。
图1是一个示意图,显示了根据本发明的一个实施例的存储卡的配置。所述存储卡1通过总线接口14给主器件2发送信息并从主器件2接收信息。所述存储卡1包括一个NAND型闪存(下文中简称为闪存)芯片11、一个用来控制所述闪存芯片11的卡控制器12、和多个信号管脚(第一到第九管脚)13。
所述信号管脚13与卡控制器12电连接。所述管脚13的第一到第九管脚中的每一个管脚都被分配一个信号,例如图2所示。
数据0到3被分别分配给第七、第八、第九和第一管脚。第一管脚也被分配给卡探测信号。此外,第二管脚被分配给命令。第三和第六管脚被分配给接地电位Vss,第四管脚被分配给电源电位Vd,以及第五管脚被分配给时钟信号。
形成的存储卡1要能够插入所述主器件2上形成的一个狭槽,并能从中拔出来。安装在主器件2中的主控制器(未显示)能够通过所述第一到第九管脚与存储卡1中的卡控制器12交流各种信号和数据。例如,往存储卡1中写数据时,所述主控制器通过第二管脚给卡控制器12发送一个作为串行信号的写命令。在这个过程中,卡控制器12在响应于加在第五管脚上的时钟信号,接收加在第二管脚上的写命令。
如上所述,只使用第二管脚写命令串行输入卡控制器12。被分配给命令输入的所述第二管脚被安排在用于数据3的第一管脚和用于接地电位Vss的第三管脚之间,如图2所示。信号管脚13及其总线接口14被用来在主器件2中的主控制器和存储卡1之间进行通信。
另一方面,闪存11和卡控制器12之间的通信通过一个用于NAND型闪存的接口来进行。所以,尽管没有显示出来,闪存11和卡控制器12通过一个8位输入/输出(I/O)线彼此连接起来。
例如,当写数据到闪存11中时,卡控制器12通过所述I/O线相继输入数据输入命令80H、列地址、页地址、数据、以及程序命令10H到闪存11中。在所述命令80H中,“H”表明是十六进制记号。实际上,8位信号“10000000”并行地加在8位I/O线上。换言之,一个多位的命令并行地加在NAND型闪存所用接口上。
另外,在NAND型闪存的接口中,用于闪存11的命令与数据共享同一个I/O线来进行通信。这样,主器件2中的主控制器与存储卡1之间的通信接口就不同于闪存11和卡控制器12之间的通信接口。
图3是一个方框图,显示了根据本发明的实施例的存储卡的硬件配置。
主器件2包括对通过总线接口14连接到其上的存储卡1进行访问的硬件和软件。存储卡1一旦连接到主器件2上,就被供给电源并开始工作,因此就执行对应着来自主器件2的访问的处理。
如上所述,存储卡1包括闪存11和卡控制器12。闪存11中用来擦除的块的大小(擦除单元中的块的大小)是预定的(比如,256kB)。另外,数据以称作页(比如,2kB)的单位来写入闪存或从闪存读出。
卡控制器12管理闪存11中的物理状况(例如,哪个物理块地址包含了顺序号形式的哪个逻辑扇区地址数据,或者,哪个块被擦除了)。卡控制器12包括一个主接口模块21、一个微处理单元(MPU)22、一个闪存控制器23、一个只读存储器(ROM)24、一个随机存取存储器(RAM)25、和一个缓冲器26。
所述主接口模块21作为卡控制器12和主器件2之间的一个接口来执行处理,并包含一个寄存器(register)单元27。图4显示了所述寄存器单元27的详细配置。寄存器单元27包括卡状态寄存器(card status register)、以及各种寄存器,如卡识别号(card identification number,CID)、相对卡地址(relative card address,RCA)、驱动级寄存器(driver stage register,DSR)、卡专用数据(card specific data,CSD)、SD配置数据寄存器(SDconfiguration data register,SCR)、和操作条件寄存器(operation conditionregister,OCR)。
这些寄存器的定义如下所述。所述卡状态寄存器供正常操作来存储例如下面要描述的出错信息。CID、RCA、DSR、CSD、SCR和OCR主要用来初始化存储卡。
CID存储存储卡1的单个号码。RCA存储相对卡地址,该地址在初始化时由主器件动态地确定。DSR存储存储卡1的总线驱动功率(bus drivepower)等。
CSD存储存储卡1的特征参数值,并保存版本信息、性能识别码和性能参数。
SCR存储存储卡1的数据布局。OCR存储存储卡1的操作电压,该电压被限制在操作范围电压之内。
MPU22控制存储卡1作为一个整体的操作。例如,当存储卡1被通电时,MPU22将存储在ROM24中的固件(控制程序)读取到RAM25上,并执行预定的处理从而在RAM25上准备各种表。
MPU22也从主器件2中接收写命令、读命令和擦除命令,并执行用于闪存11的一个预定处理或者控制通过缓冲器26的数据转移处理。
ROM24存储一个控制程序,用于MPU22所实施的控制。RAM25用作MPU22的一个工作区,并存储控制程序和各种表。闪存控制器23作为卡控制器12和闪存11之间的接口执行处理。
在从主器件2写数据到闪存11中或在将从闪存11中读出的数据发送到主器件2中时,所述缓冲器26临时存储一批预定数量的数据(比如,一页)。
图5显示了存储卡1的闪存11中的数据布局。闪存11的每页具有2112B(512B数据存储单元×4+10B冗余部分×4+24B管理数据存储单元),并且128页,比如,构成一个擦除单元(256kB+8kB(k:1024))。在下面的描述中,为方便起见,闪存11的擦除单元被设置为256kB。
另外,闪存11具有一个页面缓冲器11A,用于输入数据到闪存11中或从闪存11中输出数据。所述页面缓冲器11A的存储容量为2112B(2048B+64B)。写数据时,页面缓冲器11A以对应着其存储容量的一页为单位输入数据到闪存11中或从闪存11中输出数据。
如果闪存11的存储容量为1G比特(bit),那么256kB的块(擦除单元)的数目为512个。
尽管图5显示了256kB块的擦除单元,在实际中,16kB块的擦除单元也是有效的。在这种情形中,每页具有528B(512B数据存储单元+16B冗余部分),并且32页构成了一个擦除单元(16kB+05kB)。
如图3所示,闪存11中被写入数据的区域(数据存储区)被分成一些区,这些区对应着要存储的数据。闪存11包括管理数据区31、机密数据区32、保护数据区33和用户数据区34。
所述管理数据区31在其中主要存有关于存储卡的管理信息,即,存储卡1的安全信息和诸如介质ID的卡信息。
所述机密数据区32存有用于加密的密钥信息和用于验证的机密数据,它不能被主器件2访问。
所述保护数据区33存有重要数据,该区域只有当主器件2的合法性通过与连接到存储卡1上的主器件2相互验证而被确认之后才可以被访问。
所述用户数据区34存有用户数据,能被自由访问,并能被存储卡1的用户所使用。
尽管本实施例的解释参考了一种情形,即存储卡1的工作模式为SD4-比特模式,但是,本发明也可以用于SD1-比特模式和SPI模式。图6显示了SD4-比特模式、SD1-比特模式和SPI模式中各个信号管脚的信号分配。
存储卡1的工作模式大致分为SD模式和SPI模式。在SD模式中,存储卡1由来自主器件2的总线宽度改变命令设置为SD4-bit模式或者SD1-bit模式。
需要注意4个数据,即,数据0管脚(DAT0)到数据3管脚(DAT3)。在以4-比特宽度为单位转移数据的SD4-比特模式中,包括数据0管脚到数据3管脚在内的四个管脚都被用于数据转移。
在以1-比特宽度为单位转移数据的SD1-比特模式中,只有数据0管脚(DAT0)用于数据转移,而数据1管脚(DAT1)和数据2管脚(DAT2)根本不使用。而且,数据3管脚(DAT3)用于从例如存储卡1到主器件2的异步中断。
在SPI模式中,数据0管脚(DAT0)被用于从存储卡1到主器件2的数据信号线(数据输出)。命令管脚(CMD)被用于从主器件2到存储卡1的数据信号线(数据输入)。数据1管脚(DAT1)和数据2管脚(DAT2)根本不用。而且,在SPI模式中,数据3管脚(DAT3)被用于从主器件2到存储卡1的(chip select signal)CS的发送。
主器件2在其上安装了一个文件系统。该文件系统管理记录在存储器中的文件(数据),并在存储器中包含管理区和管理信息。所述文件系统也定义如何在存储器中准备诸如文件和文件夹等的目录信息、如何移动或删除所述文件和文件夹、定义数据记录系统和管理区在哪里以及如何使用它的信息。
图7显示了簇大小为16kB的文件分配表(FAT)文件系统的例子。所述文件系统的配置包括管理区701和多个簇A、B、C和D(702到705)。所述文件系统管理区701包括,例如,用于存储引导信息的引导区711、用于存储分区信息等的区域712、用于存储根目录入口信息的根目录入口区713、以及FAT1、FAT2(714、715)。
假设,例如,使用了簇A和簇C,名字为“AAA.txt”且文件大小为32kB的文件被写入一个存储单元。该文件的大小大于簇的大小,所以,该文件以簇为单位进行划分,并存储在所述存储单元的空白簇中。具体说,由于所述要写入的文件的大小为32kB,故使用两个簇来写所述文件。所述簇不要求是连续的,所以,可以使用例如簇B和D来存储所述文件。配置一个文件的每个数据通常被分配连续的逻辑地址。因此,即使当文件系统将配置文件的每个数据分配给地址不连续的簇,分配给每个数据的逻辑地址也是连续的。
指示所述文件要被写入哪个簇的管理数据被存储在所述FAT1和FAT2中。FAT1和FAT2存储相同的数据。当一个FAT变得有缺陷时,可以用另一个来修补数据。FAT1和FAT2存储有关分配给所述文件的簇的信息以及有关存储单元中各个簇的连接关系的信息。通过追踪存储在FAT1和FAT2中的信息,可以恢复原始文件。
在这种情形中,被分割的文件的前16kB存储在簇B中,后16kB存储在簇D中。因此,FAT1和FAT2中存储的信息指明,簇D应该连接在簇B之后。在读取被分成两个簇的所述文件时,数据按FAT1和FAT2所示串行连接,以恢复原始文件。
根目录入口区713存储文件名或文件夹名、文件大小、属性和文件更新日期及时间、以及一个标记,该标记指明FAT1和FAT2中所指示的哪个簇是所述文件的头簇。在所解释的例子中,存储在所述根目录入口区713的信息有,文件名“AAA.txt”、文件大小32kB、簇B为头簇。
图8显示了FAT1、FAT2中的数据以及根目录入口的一个例子。如图8所示,文件“FILE1.txt”、“FILE2.txt”和“FILE3.txt”中每个文件的头簇的位置信息显示为根目录区中的文件入口(file entry)。文件“FILE1.txt”、“FILE2.txt”和“FILE3.txt”的头簇分别为簇0002、0005和0007。
FAT(FAT1、FAT2)显示了紧接着每个簇后面的簇号。在“FILE1.txt”的例子中,簇0003存储紧接着存储在头簇0002中的数据的数据,而簇0004存储紧接着簇0003中所存储的数据的数据。连接簇0002、0003和0004的数据就得到了恢复的“FILE1.txt”文件。
图9显示了根据本发明的实施例的存储卡中存储器的配置。如图9所示,用户数据区11包括用于正常数据存储的原始块OB以及子块(高速缓存块)SB。所述块OB、SB对应着闪存中的擦除单元。逻辑地址在一个预定范围内连续的数据按照其逻辑地址的顺序可被写入一个单一的原始块OB中。通过收集可以被连续地读入一个块中的数据,这个规则被用来使读操作有效率。每个原始块OB具有页OP,每个子块SB具有页SP。
一般地,数据按照逻辑地址的顺序从物理地址较低的页向物理地址较高的页OP被写入原始块OB中。
所述原始块OB包括用于数据的原始块OBD1到OBDn以及用于管理数据的原始块OBM1到OBMn。用于数据的原始块OBD1到OBDn中存储着配置文件的真实数据(下文中简称为数据),而用于管理数据的原始块OBM1到OBMn中存储着管理数据,诸如FAT。
用于数据的原始块OBD1到OBDn用于存储和包含在原始块OBD1到OBDn中的页同样多的数据。当一个块被配置了128页时,具有连续地址的最多128个数据被写入所述用于数据的原始块中。
另一方面,用于管理数据的原始块OBM1到OBMn中存储比包含在原始块OBM1到OBMn中的页少的管理数据。多个用于管理数据的原始块OBM被用来存储n个数据(n为包含在一个块中的页的数目,比如,128个)。假设,例如,一个用于管理数据的原始块OBM中页的数目为128。于是,128个地址中的几个地址的数据被存储在一个用于管理数据的原始块OBM中,而128个地址中其余地址的数据被存储在另一个用于管理数据的原始块OBM中。
当,例如,两个用于管理数据的原始块OBM被用来存储管理数据时,第一个用于管理数据的原始块OBM中存储逻辑地址A0到An中逻辑地址A0到Ap的数据,其中p为小于n的自然数。第二个用于管理数据的原始块OBM中存储逻辑地址Ap+1到An的数据。作为一个最典型的例子,每个用于管理数据的原始块OBM中存储包含在一个原始块中的页数之半的地址的数据。于是,在每个用于管理数据的原始块OBM中存在着未用的页。被归入同一个用于管理数据的原始块中的多个逻辑地址在下文中被称作一个组。
类似地,当三个用于管理数据的原始块OBM被用来存储管理数据时,第一个用于管理数据的原始块中存储逻辑地址A0到An中逻辑地址A0到Ap的数据。第二个用于管理数据的原始块中存储着逻辑地址Ap+1到Aq的数据,其中,q为大于等于(p+1)而小于n的自然数。第三个用于管理数据的原始块中存储着逻辑地址Aq+1到An的数据。当使用四个或者更多的用于管理数据的原始块OBM时,使用类似的规则。
而且,为用于管理数据的原始块OBM1到OBMn提供子块(高速缓存块)SB1到SBn。在每个子块SB中,要写入对应着每个子块SB的用于管理数据的原始块OBM中的数据,不管其逻辑地址如何,一个接一个地被写入最高物理地址页。
下面,参考图10到图13来解释写入具有上述配置的存储卡的方法。图10、11和12用来解释根据本发明的实施例的写入存储卡的方法。图13为一个流程图,显示了本发明的实施例所述的响应一个写请求后写入存储卡的操作。
根据下面描述的方法,卡控制器12将数据写入闪存11中。具体说,卡控制器12根据后面叙述的方法将数据写入闪存11中,而同时通过例如在RAM中实现的对应表,对从主器件2接收的写请求所要求的数据的逻辑地址与所述逻辑地址的数据要被写入的物理地址之间的对应进行管理。
在图10所示的例子中,每个原始块OB包括六页,并且卡控制器11的运行要使得每个用于管理数据的原始块OBM简单地说存储三个地址,即六个地址的一半数目,的数据。
首先,响应于第一个写请求,地址A0、A1、A2的管理数据被顺序写入专用于存储地址A0、A1、A2的管理数据的用于管理数据的原始块OBM1的页OP11、OP12和OP13中。具体说,要确定是否存在用于管理数据的原始块,其中写有地址A0、A1、A2的管理数据(步骤S1)。如果没有这样一个用于管理数据的原始块,则确定与写请求相关的管理数据(写数据)的地址(步骤S2)。如果该地址为A0、A1和A2中的任何一个,那么该过程进行到步骤S3。
在步骤S3中,将地址A0的管理数据写入被擦除的块OBM1中。使用用于管理数据的原始块OBM1作为存储地址A0、A1和A2中的管理数据的一个块,与第一个写请求相关的、与地址A0同属一组的地址A1和A2中的管理数据随后被写入原始块OBM1中。具体说,如果步骤S1中的判断是“false(假)”,而步骤S2中的判断是“true(真)”,那么,写数据被写入用于管理数据的原始块OBM1中。页OP14、OP15和OP16不被使用。
另一方面,响应于第一个写请求,地址A3、A4和A5的管理数据被相继写入专用于存储地址A3、A4和A5中的管理数据的用于管理数据的原始块OBM2中的页OP21、OP22和OP23中。具体说,如果步骤S1和步骤S2中的判断均为“false(假)”,那么,该过程前进到步骤S4。
在步骤S4中,将地址A3中的管理数据写入被擦除的块OBM2中。用于管理数据的原始块OBM2被用作存储地址A3、A4和A5的管理数据的专用块,与第一个写请求相关的、所要求的与地址A3同属一组的地址A4和A5上的管理数据随后被写入原始块OBM2中。具体说,如果步骤S1和S2中的判断均是“false(假)”,那么,写数据被写入用于管理数据的原始块OBM2中。页OP24、OP25和OP26不被使用。
一旦接收到更新写入用于管理数据的原始块OBM1中的逻辑地址A0、A1和A2中的任何一个地址中的管理数据的请求,所述管理数据就被写入子块SB1中,而不管其逻辑地址,如图11所示。具体说,如果步骤S1中的判断为“真”,那么该过程前进到步骤S5。在步骤S5中,决定写数据的地址。如果地址为A0、A1和A2中的任何一个,那么,按照写请求到来的顺序从子块SB1中的页SP11到页SP16所述写数据被写入(步骤S6)。
类似地,一旦接收到针对写入在用于管理数据的原始块OBM2中的逻辑地址A3、A4和A5中的任何一个地址上的管理数据的更新请求,所述管理数据就被写入子块SB2中,而不管其逻辑地址如何。具体说,如果步骤S1中的判断为“真”,而步骤S5的判断为“假”,那么,按照写请求到来的顺序从子块SB2中的页SP21到页SP26所述写数据被写入(步骤S7)。
接着,如图12所示,通过在一个预定的时刻,比如当子块SB1被充满时,使用子块SB1中的每个逻辑地址上的最新管理数据,重建地址A0、A1和A2上的用于管理数据的原始块(步骤S8)。具体说,准备好用于管理数据的被擦除的原始块OBM3,并且,将逻辑地址A0、A1和A2上的最新管理数据按照逻辑地址的顺序相继复制到用于管理数据的原始块OBM3中,即按顺序复制到页OP31、OP32和OP33中。
然后,重写对应表以表明,逻辑地址A0、A1和A2分别对应着管理数据块OBM3中的页OP31、OP32和OP33,该块存储逻辑地址A0、A1和A2上的管理数据。随后,在一个预定的时刻,擦除管理数据块OBM1中的数据。
一个原始块的重建所需的数据读/写周期与分配在一个原始块中进行存储的地址的数目相一致。根据本实施例,用于管理数据的每个原始块OBM包含n页,并被分配了少于n个的地址。因此,重建一个用于管理数据的原始块OBM所需的读/写周期小于n。
对于子块SB2也执行类似的过程。具体说,准备好用于管理数据的被擦除的原始块OBM4,并且,将逻辑地址A3、A4和A5上的最新管理数据相继分别复制到用于管理数据的原始块OBM4中的页OP41、OP42和OP43中。然后,重写对应表,使得逻辑地址A3、A4和A5与用于存储逻辑地址A3、A4和A5上的管理数据的管理数据块OBM4中的页OP41、OP42和OP43彼此对应。
当闪存11的存储单元能够记录多值(多位,诸如2位)信息时,可以使用下面描述的方法。具体说,通过一种称作二元模式(binary mode)的方法,将管理数据以多值信息形式写入用于管理数据的原始块OBM的存储单元中,并写入子块SB中。下面参考图14A、14B、15A和15B来解释这个方法。图14A和14B示意地显示了数据是如何存储在二元存储器和多值存储器中的。图15A和15B示意地显示了数据是如何存储在多值存储器的二元模式中的。
NAND型闪存可以分为二元存储器和多值存储器。如图14A所显示的,在二元存储器的一个存储单元MC中只存储1位的逻辑数据“0”或“1”。另一方面,在多值存储器中,比如两位数据可以存储在一个存储单元MC中,如图14B所示。
例如,一旦收到8位数据比如“01101111”在二元存储器中的写请求,具有连续的物理地址的八个存储单元MC中的每个单元存储所述8位数据中的一位,并且将一个页地址分配给所述八位的簇。
另一方面,例如使用多值存储器,每个存储单元存储2位数据,并且为每个位分配不同的页地址。例如,给每个存储单元MC中最重要的位的簇分配一个页地址,为最不重要的位的簇分配一个页地址。给最重要位的簇所分配的页被称作,比如,上页,而给最不重要位的簇所分配的页被称作,比如,下页。
当在多值存储器的一个存储单元MC中写入2位的数据时,进行两个写操作。换言之,数据被独立地写入下页地址和上页地址中。
写入多值存储器中的当前规则可以允许在写入下页之后再写入上页,禁止在写入上页之后再写入下页。根据这个规则,如果某种问题(比如,瞬时电源失效)发生了,并且在写入下页时存储单元MC的存储被毁坏了,那么,只有要写入下页中的数据被毁坏,因为上页中没有数据写入。
然而,如果写入上页失效,并且存储单元中的数据被毁,则已经写入下页中的数据也被毁。被毁的数据通常不留在闪存11中,或者如果留的话,只留在主器件2中。因此,除非从主器件2中再传一次数据(尽管是不希望的),否则,闪存11中的整个数据将丢失。
如上所述,需要诸如FAT这样的管理数据来将被分割成簇的数据恢复成原始文件。所以,一旦管理数据被毁,原始文件就不能被恢复了。
因此,在将管理数据写入子块SB中时,多值存储单元被用作一个二元存储单元。这样一来,尽管与多值数据的写操作相比每个存储单元的存储容量减少了,但可以防止在写入上页时已经写入的下页中的管理数据被毁坏。这种写入方法被称作,例如,“二元模式”。
图15A和15B显示了如何以两种方式将多值存储单元用作二元存储单元。在一种方法中,数据只写在上页和下页之一中(图15A)。另一种方法包括,在上页和下页中写入同样的数据(图15B)。在这两种方法中,只有下页或上页中的数据(1位数据)被写入一个存储单元中。因此,当数据不能被写入的时候,可以防止已经写入的数据被毁掉。
在用于管理数据的原始块OB的存储单元中,比如在用于数据的原始块OBD中,存有多值数据(数据以多值模式写入),但由于下面要描述的原因没有数据以二元模式写入。就是说,数据以多值模式写入用于管理数据的原始块OB的存储单元MC中,所以,下页中的数据或许由于在重建时不能写入上页的数据之类而被毁。然而,即使在这种情形中,用于管理数据的原始块OB中下页的被毁数据也被存储在子块SB中。结果,即使当上页中的数据不能被写入用于管理数据的原始块OB中时,管理数据也不完全丢失掉。
使用本发明的实施例所述的存储卡,用于管理数据的原始块存储少于n个地址的数据,n为包含在用于存储管理数据的原始块中的页数,并且多于两个的用于管理数据的管理块存储n个地址的管理数据。因此,重建一个用于管理数据的原始块OBM所需的读/写周期数小于n。
复制子块SB中每个地址的所有最新管理数据到一个用于管理数据的原始块OBM所需要的总时间为常数,不管分配给用于管理数据的一个原始块的地址的数目是多少。然而,至少根据本实施例,一个重建阶段所需时间比下述情形所需时间要短,即,与包含在用于管理数据的原始块OBM中的页同样多的地址被分配给每个用于管理数据的原始块OBM的情形。因此,可以防止重建中占线信号的持续时间超过预定时间。
其它的优势和修改对于熟悉本领域的人员很容易产生。所以,本发明就其较广泛的层面而言不限制于这里所显示和描述的具体细节和代表性实施例。因此,可以进行各种修改而不偏离附属权利要求书及其等价描述所定义的一般性发明性概念的精神和范围。

Claims (20)

1.一种存储系统,包含有:
非易失性半导体存储器,包括由n个(n为自然数)写单元区域构成的第一原始块和由多个写单元区域构成的第一子块,以及
控制器,该控制器将具有第1到第p个(p为小于n的自然数)地址中的一个地址的数据写入所述第一原始块中,当所述控制器收到写入具有作为所述第1到第p个地址之一的第一写地址的数据的请求并且具有所述第一写地址的数据存在于所述第一原始块中时,所述控制器将具有所述第一写地址的数据写入所述第一子块中。
2.根据权利要求1所述的存储系统,其中,
所述存储器还包括由n个写单元区域构成的第二原始块和由多个写单元区域构成的第二子块,
所述控制器,将具有第(p+1)到第m个(m为不小于p+2且不大于n的自然数)地址中的一个地址的数据写入所述第二原始块中,当所述控制器收到写入具有作为所述第(p+1)到第m个地址之一的第二写地址的数据的请求并且具有所述第二写地址的数据存在于所述第二原始块中时,所述控制器将具有所述第二写地址的数据写入所述第二子块中。
3.根据权利要求2所述的存储系统,其中,
所述存储器还包括由n个写单元区域构成的第三原始块,
所述控制器将具有所述第1到第p个地址并被存储在所述第一子块中的每个数据中最后一个数据写入所述第三原始块中。
4.根据权利要求2所述的存储系统,其中,
要写入所述第一原始块中的数据包括要写入所述存储器中的真实数据的管理信息。
5.根据权利要求2所述的存储系统,其中,
所述控制器
按照写数据的逻辑地址的顺序,从低地址的所述写单元区域到高地址的所述写单元区域将所述写数据写入所述第一原始块中,以及
不管所述写数据的逻辑地址如何,从低地址的所述写单元区域到高地址的所述写单元区域将所述写数据写入所述第一子块中。
6.根据权利要求2所述的存储系统,其中,
所述第一原始块中的每个存储单元存储多位数据。
7.根据权利要求2所述的存储系统,其中,
所述存储器的每个存储单元存储多位的数据,以及
所述控制器将一位信息写入所述第一子块的所述存储单元中。
8.根据权利要求7所述的存储系统,其中,
多个地址被分配给所述第一子块的每个所述存储单元,以及
一位信息被写入所述第一子块的每个所述存储单元中的多个地址中的一个地址。
9.根据权利要求2所述的存储系统,其中,
所述存储器还包括由n个写单元区域构成的第三原始块,以及
所述第三原始块存储多个具有连续n个地址的真实数据。
10.根据权利要求9所述的存储系统,其中,
所述第三原始块的每个存储单元存储多位的数据。
11.一种写入非易失性半导体存储器中的方法,该存储器包括由n个(n为自然数)写单元区域构成的第一原始块和由多个写单元区域构成的第一子块,该方法包括:
将具有第1到第p个(p为小于n的自然数)地址中的一个地址的数据写入所述第一原始块中,
当所述控制器收到写入具有作为所述第1到第p个地址之一的第一写地址的数据的请求并且具有所述第一写地址的数据存在于所述第一原始块中时,将具有所述第一写地址的数据写入所述第一子块中。
12.根据权利要求11所述的方法,其中,
所述存储器还包括由n个写单元区域构成的第二原始块和由多个写单元区域构成的第二子块,
该方法还包括:
将具有第(p+1)到第m个(m为不小于p+2且不大于n的自然数)地址中的一个地址的数据写入所述第二原始块中,以及
当所述控制器收到写入具有作为所述第(p+1)到第m个地址之一的第二写地址的数据的请求并且具有所述第二写地址的数据存在于所述第二原始块中时,将具有所述第二写地址的数据写入所述第二子块中。
13.根据权利要求12所述的方法,其中,
所述存储器还包括由n个写单元区域构成的第三原始块,以及
所述方法还包括,将具有所述第1到第p个地址并被存储在所述第一子块中的每个数据中最后一个数据写入所述第三原始块中。
14.根据权利要求12所述的方法,其中,
要写入所述第一原始块中的数据包括要写入所述存储器中的真实数据的管理信息。
15.根据权利要求12所述的方法,其中,
按照写数据的逻辑地址的顺序,从低地址的所述写单元区域到高地址的所述写单元区域将所述写数据写入所述第一原始块中,以及
不管所述写数据的逻辑地址如何,从低地址的所述写单元区域到高地址的所述写单元区域将所述写数据写入所述第一子块中。
16.根据权利要求12所述的方法,其中,
所述第一原始块中的存储单元存储多位的数据。
17.根据权利要求12所述的方法,其中,
所述存储器的存储单元存储多位的数据,以及
一位信息被写入所述第一子块的存储单元中。
18.根据权利要求17所述的方法,其中,
多个地址被分配给所述第一子块的每个所述存储单元,以及
一位信息被写入所述第一子块的每个所述存储单元中多个地址中的一个地址。
19.根据权利要求12所述的方法,其中,
所述存储器还包括由n个写单元区域构成的第三原始块,以及
所述第三原始块存储多个具有连续n个地址的真实数据。
20.根据权利要求19所述的方法,其中,
所述第三原始块的存储单元存储多位的数据。
CNB2006800013096A 2005-09-29 2006-09-27 存储器系统以及写入非易失性半导体存储器中的方法 Active CN100527097C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP283388/2005 2005-09-29
JP2005283388A JP4751163B2 (ja) 2005-09-29 2005-09-29 メモリシステム

Publications (2)

Publication Number Publication Date
CN101069163A true CN101069163A (zh) 2007-11-07
CN100527097C CN100527097C (zh) 2009-08-12

Family

ID=37899914

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006800013096A Active CN100527097C (zh) 2005-09-29 2006-09-27 存储器系统以及写入非易失性半导体存储器中的方法

Country Status (6)

Country Link
US (3) US7872922B2 (zh)
JP (1) JP4751163B2 (zh)
KR (1) KR100899242B1 (zh)
CN (1) CN100527097C (zh)
TW (1) TWI316207B (zh)
WO (1) WO2007037507A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279820A (zh) * 2011-08-24 2011-12-14 四川和芯微电子股份有限公司 基于spi接口的数据存储装置及控制方法
CN107818808A (zh) * 2016-09-14 2018-03-20 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器存储装置
CN108292519A (zh) * 2015-12-22 2018-07-17 桑迪士克科技有限责任公司 用于非易失性存储器的子块模式

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702846B2 (en) * 2005-03-15 2010-04-20 Panasonic Corporation Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method
JP4356782B2 (ja) * 2007-09-12 2009-11-04 ソニー株式会社 メモリ装置、メモリ制御方法、およびプログラム
US8429329B2 (en) 2007-10-17 2013-04-23 Micron Technology, Inc. Serial interface NAND
US7814276B2 (en) * 2007-11-20 2010-10-12 Solid State System Co., Ltd. Data cache architecture and cache algorithm used therein
TWI368223B (en) * 2007-12-07 2012-07-11 Phison Electronics Corp Flash memory data writing method and controller using the same
JP5032371B2 (ja) 2008-03-01 2012-09-26 株式会社東芝 メモリシステム
KR101067457B1 (ko) * 2008-03-01 2011-09-27 가부시끼가이샤 도시바 메모리 시스템
JP4558054B2 (ja) * 2008-03-11 2010-10-06 株式会社東芝 メモリシステム
TWI399651B (zh) * 2008-09-12 2013-06-21 Communication protocol method and system for input / output device
US8438325B2 (en) * 2008-10-09 2013-05-07 Cadence Design Systems, Inc. Method and apparatus for improving small write performance in a non-volatile memory
TWI413984B (zh) 2008-10-16 2013-11-01 Silicon Motion Inc 快閃記憶體裝置以及資料更新方法
JP2010152778A (ja) * 2008-12-26 2010-07-08 Hitachi Ulsi Systems Co Ltd 半導体記憶装置
US8724401B2 (en) * 2009-09-29 2014-05-13 Seagate Technology Llc Data stripes and addressing for flash memory devices
US20120324182A1 (en) * 2010-03-04 2012-12-20 Nec Software Tohoku, Ltd. Storage device
JP4818453B1 (ja) * 2010-07-30 2011-11-16 株式会社東芝 電子機器およびデータ読み出し方法
JP2012133416A (ja) * 2010-12-17 2012-07-12 Toshiba Corp メモリシステム
US9076528B2 (en) * 2011-05-31 2015-07-07 Micron Technology, Inc. Apparatus including memory management control circuitry and related methods for allocation of a write block cluster
US9298606B2 (en) 2011-09-30 2016-03-29 Intel Corporation Statistical wear leveling for non-volatile system memory
US9305112B2 (en) * 2012-09-14 2016-04-05 International Business Machines Corporation Select pages implementing leaf nodes and internal nodes of a data set index for reuse
CN104008069B (zh) * 2013-02-22 2018-06-15 中兴通讯股份有限公司 一种数据保护方法、装置及设备
EP2965318B1 (en) * 2013-03-07 2018-05-02 Charles I. Peddle High speed flash controllers
US10032493B2 (en) 2015-01-07 2018-07-24 Micron Technology, Inc. Longest element length determination in memory
JP7109949B2 (ja) * 2018-03-23 2022-08-01 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
JP2001306393A (ja) * 2000-04-20 2001-11-02 Mitsubishi Electric Corp 記憶装置
JP2003233993A (ja) * 2002-02-08 2003-08-22 Matsushita Electric Ind Co Ltd 不揮発性記憶装置の書き換え方法
JP3699942B2 (ja) 2002-03-25 2005-09-28 株式会社東芝 メモリ管理方式およびメモリ管理装置
JP2004086991A (ja) 2002-08-27 2004-03-18 Renesas Technology Corp 不揮発性記憶装置
US7174440B2 (en) * 2002-10-28 2007-02-06 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
US7039788B1 (en) * 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
JP4218406B2 (ja) 2003-04-25 2009-02-04 富士フイルム株式会社 情報記録再生方法
TW200504577A (en) * 2003-07-16 2005-02-01 Matsushita Electric Ind Co Ltd Management method for data storage in data recording medium, and information processing device using the same
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
KR20060134011A (ko) * 2003-12-30 2006-12-27 쌘디스크 코포레이션 메모리 플레인 배열을 갖춘 비휘발성 메모리 및 방법
KR20070005730A (ko) * 2004-04-28 2007-01-10 마츠시타 덴끼 산교 가부시키가이샤 불휘발성 기억장치 및 데이터 기록방법
JP4157501B2 (ja) 2004-06-30 2008-10-01 株式会社東芝 記憶装置
JP4561246B2 (ja) * 2004-08-31 2010-10-13 ソニー株式会社 メモリ装置
JP4192129B2 (ja) 2004-09-13 2008-12-03 株式会社東芝 メモリ管理装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279820A (zh) * 2011-08-24 2011-12-14 四川和芯微电子股份有限公司 基于spi接口的数据存储装置及控制方法
CN108292519A (zh) * 2015-12-22 2018-07-17 桑迪士克科技有限责任公司 用于非易失性存储器的子块模式
CN108292519B (zh) * 2015-12-22 2021-10-22 桑迪士克科技有限责任公司 用于非易失性存储器的子块模式
CN107818808A (zh) * 2016-09-14 2018-03-20 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器存储装置
CN107818808B (zh) * 2016-09-14 2023-09-12 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器存储装置

Also Published As

Publication number Publication date
US7872922B2 (en) 2011-01-18
US20070245181A1 (en) 2007-10-18
WO2007037507A1 (en) 2007-04-05
JP4751163B2 (ja) 2011-08-17
TWI316207B (en) 2009-10-21
US20110087831A1 (en) 2011-04-14
US8310896B2 (en) 2012-11-13
TW200721016A (en) 2007-06-01
KR20070085481A (ko) 2007-08-27
JP2007094764A (ja) 2007-04-12
US20120144100A1 (en) 2012-06-07
WO2007037507A9 (en) 2007-05-24
US8130557B2 (en) 2012-03-06
KR100899242B1 (ko) 2009-05-27
CN100527097C (zh) 2009-08-12

Similar Documents

Publication Publication Date Title
CN101069163A (zh) 存储器系统以及写入非易失性半导体存储器中的方法
US7877540B2 (en) Logically-addressed file storage methods
KR100980309B1 (ko) 호스트 디바이스 및 메모리 시스템
JP5530012B2 (ja) 記憶装置のためのストレージアドレス再マッピングのための方法およびシステム
US7480766B2 (en) Interfacing systems operating through a logical address space and on a direct data file basis
US7984084B2 (en) Non-volatile memory with scheduled reclaim operations
US8880483B2 (en) System and method for implementing extensions to intelligently manage resources of a mass storage system
US7937523B2 (en) Memory system with nonvolatile semiconductor memory
CN1171150C (zh) 数据管理装置、数据管理方法和存贮数据的存贮卡
CN1795437A (zh) 用于块内页面分组的方法及设备
US8307172B2 (en) Memory system including memory controller and separately formatted nonvolatile memory to avoid “copy-involving write” during updating file data in the memory
CN1702776A (zh) 存储卡、半导体装置和半导体存储器的控制方法
US20070136553A1 (en) Logically-addressed file storage systems
US20080155175A1 (en) Host System That Manages a LBA Interface With Flash Memory
CN1705936A (zh) 用于分割一逻辑块的方法及设备
JP2010026933A (ja) メモリシステム、ホスト装置
EP1910928A2 (en) Non-volatile memory with scheduled reclaim operations
WO2007070763A2 (en) Logically-addressed file storage
CN100437458C (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
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170807

Address after: Tokyo, Japan

Patentee after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Patentee before: Toshiba Corp.

TR01 Transfer of patent right
CP01 Change in the name or title of a patent holder

Address after: Tokyo, Japan

Patentee after: Kaixia Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.

Address after: Tokyo, Japan

Patentee after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Patentee before: Japanese businessman Panjaya Co.,Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20211022

Address after: Tokyo, Japan

Patentee after: Japanese businessman Panjaya Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.

TR01 Transfer of patent right