CN102779095A - 闪存装置、存储器控制装置、存储器控制方法及存储*** - Google Patents
闪存装置、存储器控制装置、存储器控制方法及存储*** Download PDFInfo
- Publication number
- CN102779095A CN102779095A CN2012101354150A CN201210135415A CN102779095A CN 102779095 A CN102779095 A CN 102779095A CN 2012101354150 A CN2012101354150 A CN 2012101354150A CN 201210135415 A CN201210135415 A CN 201210135415A CN 102779095 A CN102779095 A CN 102779095A
- Authority
- CN
- China
- Prior art keywords
- write
- data
- block
- order
- size
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种闪存装置、存储器控制装置、存储器控制方法及存储***。其中,该闪存装置包括:闪存单元;以及控制单元,该控制单元被配置为执行控制使得大小小于闪存单元的块大小的数据被顺序写入闪存单元。
Description
技术领域
本发明涉及一种包括闪存(flash memory,闪速存储器)的闪存装置(flash memory device),用于闪存的存储器控制装置,用于存储器控制装置的方法,以及存储***。
背景技术
捕捉(例如)动态图像或静态图像的一些数字照相机装置利用安装有闪存的存储卡作为用于捕捉的图像数据的记录介质。尤其是,对用于动态图像记录的存储卡以高速执行数据记录的需求日益增长。
在其中安装有闪存的存储卡中,通过两种管理方法:块级管理(block-level management)和页级管理(page-level management)来管理闪存中的数据。
众所周知,在块级管理中,以闪存的块大小为单位来管理数据,在页级管理中,以闪存的页大小为单位来管理数据。块由多个页构成,因此“块大小>页大小”。
在此,在页级管理中,数据大小单位小于块级管理的数据大小单位的管理是可行的。在块级管理和页级管理中,在比较存储卡所需的工作存储器时,可以看出页级管理对较大大小的工作存储器来说是必不可少的。因此,为了按照页级管理来管理存储卡内的所有闪存,较大的工作存储器是必不可少的。
为此,在包括闪存的存储卡中,一些数据通过页级管理执行管理,其余数据通过块级管理执行管理。
具体地,在包括闪存的存储卡中,在要求从主机装置(例如上述数字照相机装置)侧写入的数据的大小较小的情况下,接收的数据由页级管理来管理,在数据大小较大的情况下,接收的数据由块级管理来管理。
此外,在从主机装置写入的小尺寸数据的总量超过通过页级管理能够执行管理的大小的情况下,一部分数据的管理单位从页级管理变为块级管理。这就是俗称的垃圾收集(garbage collection,无用单元收集)(例如,参照日本未审查专利申请第2007-193883号和2007-58840号)。
发明内容
然而,垃圾收集的发生导致存储卡的性能(记录速度)降低。因此,为了实现高速记录,优选地,尽可能多地降低垃圾收集的发生频率。
另外,闪存的块大小趋于随闪存世代的发展而增加。这是因为如果使块大小较大,则能够以对应于这种增加的速度来实现更高速度的数据写入。
然而,在增加块大小以试图实现更高速度写入的情况下,用于发送数据的主机装置侧(即,写入数据发送侧)必须按照对应于上述的方式增加缓冲存储器的大小。在上述缓冲存储器的大小小于经扩展的块大小的情况下,不可能将主机装置在存储卡侧通过块级管理执行数据写入以及在页级管理下执行记录相组合,因此难以实现高速记录。
期望通过有效减小包括闪存的存储器装置(闪存装置)的垃圾收集的发生频率来实现更高的记录速度,并且还期望在不扩大用于发送写入数据的主机装置侧的缓冲存储器的大小的情况下实现更高的记录速度。
本发明的闪存装置包括闪存单元,还包括控制单元,该控制单元用于执行控制使得大小小于闪存单元的块大小的数据被顺序写入闪存单元。
此外,本发明的存储器控制装置执行控制使得大小小于闪存单元的块大小的数据被顺序写入闪存单元。
此外,本发明的存储***包括:闪存单元;指示单元,指示将数据写入闪存单元;以及控制单元,执行控制使得由指示单元指示写入的、大小小于闪存单元的块大小的数据被顺序写入闪存单元。
根据本发明,对于难以通过块级管理执行记录的、大小小于块大小的数据可以被顺序写入闪存单元。在此,术语“顺序写入(sequential writing)”指的是按照预定写入单位中目标物理块的逻辑地址来顺序地将写入目标数据写入。
在现有技术的根据两种管理(具体地,块级管理和页级管理)执行数据写入的闪存装置中,在将要写入的数据的大小与块大小相匹配的情况下,利用块级管理执行记录,利用页级管理写入大小小于块大小的数据。为此,即便(例如)大小小于块大小的数据是在逻辑地址方面连续的独立数据,也会对这些独立数据在页级管理下执行写入。
相比之下,根据使顺序写入成为可能的本发明,可对大小小于块大小的数据执行顺序写入。也就是说,例如在如上所述的情况下,可有效防止独立数据被分配给不同物理块以及作为页级管理下写入的情况而被记录。
也就是说,与对于大小小于块大小的数据的写入来说页级管理是唯一选择的现有技术相比,根据使顺序写入成为可能的本发明,可有效减小垃圾收集的发生频率。与现有技术相比,可在记录速度方面提高性能。
此外,在如上所述的现有技术中,在主机装置侧只包括大小小于块大小的缓冲存储器的情况下,主机装置侧只能发送大小小于块大小的数据。因此,同样在这种情况下,即便数据在逻辑地址方面是连续的,在现有技术的闪存装置中,也要选择在页级管理下的写入。
相比之下,根据使顺序写入成为可能的本发明,即便仅能从主机装置侧发送大小小于块大小的数据,这些数据也可被顺序写入,即,这些数据可以按逻辑地址的顺序被记录至预定物理块。根据该处理,与在页级管理下执行记录的情况不同,可以减小垃圾收集的发生频率,并可提高这方面的性能。
根据本发明,可通过有效地将垃圾收集的发生减小至小于现有技术来提高记录速度。
此外,在从具有用于数据传输的、小尺寸缓冲存储器的主机装置要执行写入的情况下,同样可以实现高速数据记录。
附图说明
图1示出了根据实施方式的存储***的配置;
图2示出了闪存中使用的物理地址的概述;
图3示出了逻辑扇区地址、逻辑页地址及逻辑块地址的概述;
图4示出了块级管理块(block-level management block)的数据结构;
图5示出了页级管理块(page-level management block)的数据结构;
图6示出了顺序写入管理块的数据结构;
图7示出了管理信息块的数据结构;
图8示出了块级管理表的数据结构;
图9示出了页级管理表的数据结构;
图10示出了页级映射的数据结构;
图11示出了顺序写入块管理表的数据结构;
图12示出了无效数据块管理表的数据结构;
图13示出了从主机装置侧对闪存装置侧执行写指示的示例;
图14是写命令执行过程的流程图;
图15是示出了作为图14中所示的写入逻辑块处理(S 103)执行的具体处理内容的流程图;
图16是示出了块级写入的处理内容的流程图;
图17示意性地示出了通过顺序写入块的垃圾收集的处于物理级的数据转移状态的示例;
图18示出了作为示例的、在图17中所示的数据转移之前的顺序写入块管理表、块级管理表、页级管理表及页级映射的内容;
图19示出了作为示例的、在图17中所示的数据转移之后的顺序写入块管理表、块级管理表、页级管理表及页级映射的内容;
图20A和图20B示出了作为示例的、顺序写入及顺序写入后的顺序写入块管理表的内容;
图21是示出了页级写入的处理内容的流程图;
图22示意性地示出了通过页级管理块的垃圾收集的处于物理级的数据转移状态的示例;
图23示出了作为示例的、在图22中所示的数据转移之前的块级管理表、页级管理表及页级映射的内容;
图24示出了作为示例的、在图22中所示的数据转移之后的块级管理表、页级管理表及页级映射的内容;
图25A和图25B分别示出了作为写入页级管理块而执行的数据写入的示例,及数据写入后页级映射经更新后的页级映射的示例;
图26示出了第二实施方式中在主机装置使闪存装置执行顺序写入的情况下执行的写入指示的示例;
图27是示出了顺序写入开始命令处理过程的内容的流程图;
图28是示出顺序写入完成命令处理过程的内容的流程图;以及
图29是示出第二实施方式中写入逻辑块过程的内容的流程图。
具体实施方式
下面将对根据本发明的实施方式执行描述。
按下列顺序进行描述。
1.第一实施方式
1-1.存储***的配置
1-2.数据管理技术
1-3.第一实施方式中的存储器控制技术
2.第二实施方式
3.变型例
在此,第一实施方式是闪存装置自身基于使用由主机侧对于闪存装置侧的写命令所指定的写入数据的数据大小和逻辑地址来改变数据写入技术的实施方式。第二实施方式是主机侧通过使用写命令来明确通知闪存装置切换写入技术,闪存装置响应于此而改变数据管理技术的实施方式。
1.第一实施方式
1-1.存储***的配置
图1示出了实施方式的存储***的配置。
实施方式的存储***被配置为包括闪存装置1和主机装置5。
主机装置5向闪存装置1发送读命令或写命令,以便读取闪存装置1中记录的数据或写入数据。
就该实例而言,假设主机装置5是(例如)捕捉静态图像或动态图像并对其数据执行记录/再现的数字照相机装置。
如图1所示的闪存装置1包括:闪存4,外部接口2,和存储控制器(memory controller)3。
闪存4形成为NAND型闪存,在存储控制器3的控制下将数据记录(写入)闪存或从闪存再现(读取)数据。
用户数据记录区4A和管理信息记录区4B设置在闪存4中。在用户数据记录区4A中,存在稍后描述的三种块(其作为已写入数据的物理块):块级管理块30、页级管理块40、以及顺序写入管理块50。
此外,在管理信息记录区4B中,存在管理信息块60,在该信息块中记录有用于管理块级管理块30、页级管理块40、以及顺序写入管理块50的数据。
存储控制器3由包括中央处理器(CPU)、只读存储器(ROM)、以及随机存取存储器(RAM)的微型计算机构成,并且通过执行(例如)根据上述ROM中存储的程序的处理对闪存装置执行整体控制。
具体地说,存储控制器3对由外部接口2接收的命令执行解释,利用各种管理信息(稍后描述)执行从逻辑地址至物理地址的转换处理,将数据写入闪存4或从闪存读取数据,在将数据写入闪存4时生成/添加误差校正码(ECC)数据,读取时执行ECC误差校正处理等。
设置外部接口2从而能够在主机装置5和存储控制器3之间发送和接收各种数据,并从主机装置5接收命令并发送和接收数据。
在此,当要读取闪存4的数据时,主机装置5向存储控制器3发送指定存在读取数据的开始逻辑地址(至少由一组逻辑块地址和逻辑页地址指定)和数据大小的命令,作为读命令。响应于此,存储控制器3从指定的逻辑地址读取指定大小的数据,并将该数据发送至主机装置5。
此外,当要写入数据时,主机装置5发送指定数据写入目的地的开始逻辑地址和数据大小的命令,作为写命令。响应于此,存储控制器3在闪存4中执行写入以便将指定大小的数据记录在指定的逻辑地址。
1-2.数据管理技术
下面将描述用于对记录于闪存4中的数据进行管理的技术。
首先,将描述物理地址和逻辑地址。
在闪存4中,物理地址用作表示闪存4中记录的数据的位置信息的地址。
图2示出了闪存4中使用的物理地址的概要。在闪存4中,以下三种地址被用作物理地址:物理块地址、物理页地址、以及物理扇区地址。
图2中,物理块10对应于闪存4中使用的NAND闪存的最小擦除单位的块,并在闪存4中读取数据。
图2中,将其中执行数据读取/编程/擦除的块的数量设为“b”,将0至b-1的物理块地址分配给块。
将物理块10划分成物理页11。每个物理页11对应于作为NAND闪存的最小程序单元的页。按递增顺序自开始页将物理页地址分配给物理块10中的页。
图2中,将存在于物理块10内的物理页11的数量设为“p”,将0至p-1的物理页地址分配给物理页11。
物理扇区12与主机装置5使用的逻辑地址处指定的最小区域(扇区)的大小相匹配。将每个物理页11划分成多个物理扇区12,按递增顺序将物理扇区地址分配给对应的物理扇区12。
图2中,假设将每个物理页11划分成物理扇区12。在这种情况下,将0至s-1的物理扇区地址分配给物理扇区12。
在闪存装置1中,物理地址与数据的逻辑地址相关联。为了使逻辑地址与物理地址相关联,逻辑地址按三种地址进行处理:逻辑扇区地址、逻辑页地址、以及逻辑块地址。
图3示出了逻辑扇区地址、逻辑页地址、以及逻辑块地址的概要。
假设闪存装置1中可以由主机装置5处理的逻辑地址空间20的地址为0至as-1。将一个逻辑扇区地址分配给一个对应的逻辑地址。图3中,将逻辑地址分配给0至s-1的逻辑扇区地址。在此,“s”是存在于物理页11内的物理扇区12的数量。
逻辑页22由多个逻辑扇区21构成。图3中,“s”个逻辑扇区21形成一个逻辑页22,将0至p-1的逻辑页地址分配给所有逻辑页22。“p”是存在于一个物理块10内的物理页11的数量。
逻辑块23由多个逻辑页22构成。图3中,“p”个逻辑页22形成一个逻辑块23,将0至a-1的逻辑块地址分配给所有逻辑块23。
接下来,将对记录于闪存4中的各种物理块的具体数据结构进行描述。
图4示出了块级管理块30的数据结构。
在此,块级管理块30指的是通过块级管理对其执行写入(块级写入)的物理块。
在块级管理块30的所有物理页(图4中,已写页31,written page)中写入数据。这是因为,在块级写入中,将一个块大小的数据写入一个物理块。
如图4所示,将附加信息32、附加信息ECC 32a、用户数据33及用户数据ECC 33a记录在一个物理页中。附加信息32由下列信息项构成:指明为块级管理块30的块类型34、指明块级管理块30的世代信息(generation information)的修订35、块级管理块30中写入的数据的逻辑块地址36及对应于存储相关附加信息32的物理页的逻辑页地址37。
逻辑块地址36在同一块级管理块30中具有相同值。
此外,在块级管理块30中,逻辑页地址37的值与已写入逻辑页地址37的数据的物理页的物理页地址相匹配。具体地说,图4示出物理页地址i与在相关的物理页地址i处写入的数据的逻辑页地址i相匹配。
此外,逻辑扇区地址与物理扇区地址相匹配。
此时,用户数据33的大小与物理扇区的大小相匹配,并且能够记录于一个物理页中的用户数据33的数量与物理页中的物理扇区的数量相匹配。
图5示出了页级管理块40的数据结构。
页级管理块40表示在通过页级管理的写入(页级写入)中已被使用的物理块。
页级管理块40包括已写页41a和未写页41b。
如图5所示,在充当已写页41a的物理页中,记录了附加信息42、附加信息ECC 42a、用户数据43和用户数据ECC 43a。
附加信息42由下列信息项构成:指明为页级管理块40的块类型44、指明页级管理块40的世代信息的修订45、页级管理块40中写入的数据的逻辑块地址46及对应于其中已存储相关附加信息42的物理页的逻辑页地址47。
同样,在这种情况下,所有逻辑块地址46在所有相同的页级管理块40具有相同值。
然而,就页级管理块40而言,逻辑页地址47的值不必与已写入相关逻辑页地址47的数据的物理页的物理页地址相匹配。这是因为,在页级写入中,将大小小于块大小的数据分别分配给不同物理块并记录。
此外,同样地,在页级管理块40中,逻辑扇区地址与物理扇区地址相匹配。
同样,在这种情况下,用户数据43的大小与物理扇区的大小相匹配,并且能够记录在一个物理页中的用户数据43的数量与物理页中物理扇区的数量相匹配。
此外,在页级管理块40中,未写页41b进入已记录了0xFFFF(其是NAND闪存的初始值)的状态,如图5所示。
图6示出了顺序写入管理块50的数据结构。
顺序写入管理块50是实施方式中用于顺序写入的物理块(稍后描述)。
顺序写入管理块50包括已写页51a和未写页51b。
在已写页51a的物理页中,记录了附加信息52、附加信息ECC 52a、用户数据53及用户数据ECC 53a。附加信息52由下列信息项构成:指明为顺序写入管理块50的块类型54、指明顺序写入管理块50的世代信息的修订55、顺序写入管理块50中写入数据的逻辑块地址56及对应于已存储相关附加信息52的物理页的逻辑页地址57。
同样,在这种情况下,逻辑块地址56在全部的同一顺序写入管理块50中具有相同值。
此外,在顺序写入管理块50中,与图4中所示的块级管理块30的情况类似,逻辑页地址57的值与已写入相关的逻辑页地址57的数据的物理页的物理页地址相匹配(图6中,已存储了附加信息52的物理页地址的值i与已存储了相关附加信息52的逻辑页地址57的值i相匹配)。这是因为,如稍后描述,在顺序写入中,将在逻辑地址方面是连续的、从主机装置5侧被指示写入的逻辑页数据按物理页地址的顺序记录到被选择作为顺序写入管理块50的物理块中。
此外,同样地,在顺序写入管理块50中,逻辑扇区地址与物理扇区地址相匹配。
这种情况与图4和图5的情况的相同之处还在于用户数据53的大小与物理扇区的大小相匹配,以及能够记录在一个物理页中的用户数据53的数量与物理页中物理扇区的数量相匹配。
此外,如图6所示,在这种情况下,未写页51b的存储值同样是初始值(0xFFFF)。
图7示出了管理信息块60的数据结构。
管理信息块60是存储各种管理信息的物理块,如稍后图8至图12中所示。
图7中,管理信息块60包括已写页61a和未写页61b。
在已写页61a的物理页中,记录了附加信息62、附加信息ECC 62a、管理信息63及管理信息ECC 63a。附加信息62由下列信息项构成:指明为管理信息块60的块类型64及指明管理信息块60的世代信息的修订65。
作为管理信息63而被记录的管理信息包括:图8中所示的块级管理表70、图9中所示的页级管理表75、图10中所示的页级映射76、图11中所示的顺序写入块管理表77及图12中所示的无效数据块管理表78。
图8示出了块级管理表70的数据结构。
块级管理表70是使能块级管理的管理信息,并且是使逻辑块地址和物理块地址彼此关联的信息,如图8所示。
在此,块级管理表70中保持的逻辑块地址的数量与主机装置5可以写入/读取数据的逻辑块的数量(图8中设为“a”)相匹配。
图8中,物理块分配逻辑块(physical-block-assigned logical block)71a指的是以下逻辑块:在该逻辑块中的数据已记录至某一物理块。
这种逻辑块71a的逻辑块地址以下述方式被保持:使得已记录了数据的(分配)物理块的地址与逻辑块71a关联。
另一方面,在块级管理表70中,尚未分配物理块的逻辑块71b的逻辑块地址以下述方式被保持:使得无效物理块地址(0xFFFF)与逻辑块71b关联。
在块级管理表70中,例如在对某一逻辑块地址的数据执行块级写入的情况下,将与该逻辑块地址相关联的物理块地址的值(0xFFFF)更新为已执行了相关数据写入的物理块的地址值。
图9示出了页级管理表75的数据结构。
页级管理表75按照物理块地址与逻辑块地址相关联的方式形成,如图9所示。
页级管理表75是用于管理已执行了逻辑块中逻辑页的数据记录的物理块(即,图5中所示的页级管理块40)和逻辑块之间对应关系的管理信息,是在通过页级管理的记录(页级写入)中所使用的管理信息。
在页级管理表75中进行设定,对于逻辑块地址,可以保持预先确定的“d”个地址,对于物理块地址,可以保持预先确定的“f”个地址。此时,f≥d。
如上所述,在页级写入中,能够在页级写入中使用的逻辑/物理块的数量是有限的。在页级写入中所使用的物理块的数量超过上述“f”的情况下,使得垃圾收集发生,并最新地确保可用的物理块。
图9中,在分配有物理块(页级管理块40)的、由图9中X1表示的逻辑块地址中,保持有物理块的物理块地址。
此外,在尚未分配页级管理块的、由X2表示的逻辑块地址中,保持无效物理块地址(0xFFFF),其表示页级管理表75具有空缺的状态。
此外,存在多个物理块地址与一个逻辑块地址相关联的情况,如以下情况,在页级管理表75中,例如,图9中的物理块地址x0.0和物理块地址x0.1与逻辑块地址C0相关联。
这是因为,如上所述,在页级写入中,某一逻辑块中的数据按照被分配给多个物理块的方式来记录。
图10示出了页级映射76的数据结构。
页级映射76是用于标识已执行了某一逻辑块中的逻辑页数据记录的物理页的地址(由一组物理块地址和物理页地址标识)的管理信息,并按照以下方式形成:如图10所示,物理块地址和物理页地址与逻辑页地址相关联。
所存在的页级映射76在数量上与页级管理表75中保持有效物理块地址的逻辑块的数量相对应。
图10示出了对于图9中所示的逻辑块地址C1的页级映射76的内容作为示例。
在数据存在于页级管理表75中保持的物理块地址中的情况下,如图10中X3表示的,保持写有逻辑页地址的数据的物理页地址和物理块地址。
另一方面,在数据不存在于页级管理表75中保持的物理块地址中的情况下,如X4表示的,将无效值(0xFFFF)保持在对应于逻辑页地址的物理块地址和物理页地址中。
图11示出了顺序写入块管理表77的数据结构。
顺序写入块管理表77充当要被新添加的、用于作为实施方式来实现顺序写入的管理信息。
如图11所示,顺序写入块管理表77是物理块地址和最终写入逻辑页地址与逻辑块地址相关联的信息。
顺序写入块管理表77可以存储预先确定的“e”个地址作为逻辑块地址。换句话说,可用于顺序写入的物理块(顺序写入管理块50)的数量被限定为“e”个。
在此,在顺序写入使用的物理块的数量达到上限值的情况下,使得用于顺序写入块的垃圾收集(稍后描述)发生,以便最新地确保可用的物理块。
图11中,例如,如X5所示,在已分配了物理块(顺序写入管理块50)的逻辑块地址中,存储所分配的物理块的物理块地址。此外,在顺序写入中,在已执行了的写入达到相关逻辑块中的中间逻辑页的情况下,在逻辑块数据内将写入最终执行处的页数据的逻辑地址的值进行关联作为最终写入逻辑页地址的值。
另一方面,图11中的X6表示尚未分配物理块的逻辑块地址(在顺序写入中所有数据都已写入的逻辑块的地址)、与逻辑块地址相关联的物理块地址和最终写入逻辑页地址的内容。在这种情况下,对于逻辑块地址、物理块地址、及最终写入逻辑页地址的所有值保持无效数据(0xFFFF)。
如上所述,将数据已全部按照顺序写入而被写入的逻辑块从使用顺序写入块管理表77的管理中排除。此外,同时,保持上述无效数据(0xFFFF)表示可用块存在于顺序写入块管理表77内(即,可用于顺序写入的可用块具有空缺)。
图12示出了无效数据块管理表78的数据结构。
无效数据块管理表78是用于从已写入数据的物理块中识别数据可擦除块的管理信息,其中,物理块是块级管理块30、页级管理块40、及顺序写入管理块50之一。
在无效数据块管理表78中,例如,适当保持发生垃圾收集导致数据擦除成为可能的物理块的物理块地址。图12中的X7表示可擦除块的物理块地址。
另一方面,对于因为可擦除而实际已擦除数据的物理块来说,如X8所示,将块的物理块地址更新为无效值(0xFFFF)。从而防止已擦除块的误擦除(即,块可能被最新写入数据)。
1-3.第一实施方式中的存储器控制技术
将参照图13至图25对第一实施方式中的存储器控制技术进行描述。
首先,将参照图13描述从主机装置5侧对闪存装置1侧执行写入指示的示例。
图13中,示出以下情况作为示例,在图13中的时刻t1、t3、t5及t7一共四次发出写命令。接着每个写命令,在时刻t2、t4、t6及t8发送要写入闪存装置1的数据。
在这种情况下,在每个写命令中,将逻辑块大小/4的数据大小指定为写入数据大小。因此,总共执行一个逻辑块大小的写指示。在每个写命令中,指定了大小为逻辑块大小/4的写入数据。因此,与每个写命令一起指定的写入开始的逻辑地址的值,该值在时刻t1时为0,在时刻t3为逻辑块大小/4,在时刻t5为逻辑块大小/2,在时刻t7为逻辑块大小*3/4。
将进行描述以便确认。图13仅示出了写指示方案的示例。当然,可以对不同逻辑块的数据单独执行实际写指示,一个写命令中指定的写入数据大小可能与上述不同。
例如,在按照图13中所示的方案执行来自主机装置5侧的写指示的情况下,具体地说,在本实施方式的闪存装置1中按逻辑地址的顺序对属于某一逻辑块的各个数据连续执行写指示,并执行数据的大小大于或等于预定大小的写指示,执行作为顺序写入的数据写入以便对应于每个写命令。
下面将对第一实施方式中的存储器控制技术进行描述,包括顺序写入处理。
首先,图14为写命令执行处理的流程图。
例如,根据图1中所示的存储控制器3中设置的上述ROM等中存储的程序执行包括图14及稍后描述的图15、图16及图21中所示的处理操作。
图14中,步骤S101中,存储控制器3等待来自主机装置5侧的写命令。
然后,在发生来自主机装置5侧的写命令的情况下,步骤S102中,存储控制器3执行逻辑地址转换处理。在逻辑地址转换处理中,基于由主机装置5指定的逻辑地址和数据大小分别计算执行写入处的逻辑块地址、逻辑页地址及逻辑扇区地址。
在此,在闪存中,在写入指示数据大小大于逻辑块大小的情况下,顺序地分别对从写入开始的逻辑块地址至最终逻辑块地址的每个逻辑块执行数据写入处理。
在步骤S102中执行逻辑地址转换处理后,步骤S103中,执行写入逻辑块处理。
在写入逻辑块处理中,执行对于每个逻辑块的写入处理。
稍后将参照图15(以及图16和图21)对步骤S103中作为写入逻辑块处理所执行的具体处理内容进行描述。
在执行了步骤S103中的写入逻辑块处理后,步骤S104中判定是否完成所有的写入逻辑块处理。即,判定对于在步骤S102中的逻辑地址转换处理中已执行写入的所有逻辑块地址处是否完成了写入逻辑块处理。
当在步骤S104中获得尚未在所有逻辑块地址处完成写入处理且未完成所有的写入逻辑块处理这一否定结果时,处理返回步骤S103。也就是说,执行步骤S103中的写入处理直至写入处理在对于写入对象的所有逻辑块地址上完成。
另一方面,当在步骤S104中获得写入处理在所有逻辑块地址上完成且已完成所有写入逻辑块处理这一肯定结果时,完成图14中所示的写命令执行处理。
图15为示出作为图14中所示的写入逻辑块处理(S103)所要执行的具体处理内容的流程图。
首先,步骤S201中,判定写入大小是否与物理块大小相匹配。也就是说,判定要在步骤S103中的写入逻辑地址处理中写入的数据的大小是否与物理块大小相匹配。
步骤S201的判定处理还可以被描述为用于判定写入大小是否小于物理块大小的处理。
当步骤S201中得到写入大小与物理块大小相匹配这一肯定结果时,处理前进至图16中所示的步骤S301。也就是说,执行对于块级写入的处理。
在此,将参照图16对用于块级写入的处理进行描述。
图16中,步骤S301中,执行用于获取未写物理块的处理。也就是说,从作为闪存4的未写物理块管理的物理块地址中获取任意物理块地址。
在执行了步骤S301中的用于获取未写物理块的处理后,步骤S302中,执行块级管理块写入处理。也就是说,将从主机装置5侧接收的数据写入步骤S301中获得地址的物理块。
在执行了步骤S302中的写入处理后,步骤S303中,执行管理信息更新处理。也就是说,将步骤S301中获得的物理块地址的值写入块级管理表70中,作为分配给针对相关写入逻辑块处理的对象的逻辑块地址的物理块地址的值。
在执行步骤S303中的管理信息更新处理后,完成步骤S103中的写入逻辑块处理。
在写入逻辑块处理中执行的块数据写入伴随有逻辑级的覆写(overwrite,覆盖)的情况下,存在以下情况:不仅应当执行如上所述的块级管理表70的更新处理,而且还应当更新其他管理信息,诸如页级管理表75、页级映射76及无效数据块管理表78。
例如,关于针对写入逻辑块处理对象的逻辑块的数据,在覆写前旧数据处于在块级管理下已写入物理块(设为物理块b0)的情况下,当在步骤S302的写入中最新写入相关逻辑块的数据时,应将记录了旧数据的物理块b0处理成可擦除。因此,在这种情况下,应一起执行将相关物理块b0的物理块地址添加到无效数据块管理表78的处理。
可替换地,在过去按照分布方式通过页级写入将上述旧数据的一部分或全部写入各自不同的物理块的情况下,通过执行上述步骤S302的写入(即,用于逻辑级覆写的物理级写入)应当使这些数据无效。因此,在这种情况下,对于这些将要无效的数据应当执行将无效值(0xFFFF)写入页级管理表75和页级映射76的更新处理。
返回图15,将进行描述。
当在早先的步骤S201中由于写入大小与物理块大小不匹配而得到否定结果时,处理前进至步骤S202,在该步骤中判定逻辑块是否存在于顺序写入块管理表77内。即,判定已执行写入的逻辑块(即,用于相关写入逻辑块处理的对象的逻辑块)的逻辑块地址是否存在于顺序写入块管理表77内。
在此,在已执行写入的逻辑块的地址值存在于顺序写入块管理表77内的情况下,相关逻辑块的数据处于正在被顺序写入。
另一方面,在已执行了写入的逻辑块的地址值不存在于顺序写入块管理表77内的情况下,相关逻辑块至少不是处于正被顺序写入的块。.
通过考虑这点还可以看出,上述步骤S202的判定处理被视为判定顺序写入数据所属的逻辑块地址中的数据在过去是否被顺序写入。
当在步骤S202中由于逻辑块不存在于顺序写入块管理表77内而得到否定结果时,处理前进至步骤S203。
步骤S203和S204的处理是用于判定是否应对顺序写入管理块50执行最新登记及要在相关写入逻辑块处理中写入的数据是否应写入其中的处理。
步骤S203中,判定写入大小是否大于或等于(物理块大小)/4以及是否是逻辑页大小的倍数。
换句话说,判定写入大小是否是适合于顺序写入的大小。
在此,适合于顺序写入的大小的上限根据(例如)设定的块大小等而不同,而不必限于“(物理块大小)/4以上”。就该实例而言,对应于块大小=32MB(百万字节),大小假设为(物理块大小)/4以上。
当在步骤S203中由于不满足写入大小大于等于(物理块大小)/4且是逻辑页大小的倍数的条件而得到否定结果时,处理前进至稍后的图21中所示的步骤S401。即,处理前进至针对页级写入的处理。
另一方面,当在步骤S203中获得写入大小大于等于(物理块大小)/4且是逻辑页大小的倍数这一肯定结果时,处理前进至步骤S204,在该步骤判定写入开始逻辑页地址是否为0以及逻辑扇区地址是否为0。即,判定数据的写入开始地址是否与针对相关写入逻辑块处理的对象的逻辑块的开始地址相匹配。
当在步骤S204中由于不满足写入开始逻辑页地址为0且逻辑扇区地址为0的条件而得到否定结果时,处理前进至图21中所示的用于页级写入的处理。
另一方面,当在步骤S204中由于写入开始逻辑页地址为0且逻辑扇区地址为0而得到肯定结果时,处理前进至步骤S205。
步骤S205中,判定顺序写入块管理表77是否有空缺(vacancy,空位)。即,判定可用作顺序写入块50的块的数量是否达到上限。
当在步骤S205中因为顺序写入块管理表77存在空缺而得到肯定结果时,处理前进至步骤S207,在该步骤中,在顺序写入块管理表77中执行新登记。也就是说,将逻辑块地址(针对相关写入逻辑地址处理中对象的逻辑块的地址)和用作顺序写入块50的块的物理块地址新添加到顺序写入块管理表77中,并登记新的顺序写入块50。
在新登记的情况下,对于在顺序写入块管理表77中的最终写入逻辑页地址的值,例如写入初始值(0xFFFF)。
当在步骤S205中因为顺序写入块管理表77不存在空缺而得到否定结果时,处理前进至步骤S206,在执行了该步骤中的顺序写入块的垃圾收集后(即,在确保能够用作顺序写入管理块50的物理块后),执行上述步骤S207的新登记处理。
在此,作为步骤S206中的“顺序写入块的垃圾收集”的处理,首先,从使用顺序写入块管理表77所管理的逻辑块中选择一个逻辑块。下文中,将如此选择的逻辑块的地址设为“ai”。
在如上所述选择的逻辑块ai中执行垃圾收集,将低于相关逻辑块ai的数据的管理更新为块级管理。因此,顺序写入块管理表77存在空缺。
此时,作为顺序写入块的垃圾收集,根据下列情况执行不同处理:
1)当将按照上述方式选择的逻辑块ai的记录数据分配到其他块并记录时(也就是说,作为逻辑块ai的记录数据,除顺序写入块管理表77管理下的数据之外,还存在页级管理和块级管理下的数据),以及
2)当逻辑块ai的记录数据根本不存在于其他块中时(即,当逻辑块ai的记录数据仅仅是顺序写入块管理表77管理下的数据时)。
将参照图17至图19,描述对应于上述1)情况而执行的顺序写入块的垃圾收集的具体实例。
图17示意性地示出了在1)的情况下通过顺序写入块的垃圾收集的在物理级中的数据转移状态的实例。图18示出了在图17中所示的数据转移之前的顺序写入块管理表77、块级管理表70、页级管理表75及页级映射76的内容作为示例。
图19示出了在图17中所示的数据转移之后的顺序写入块管理表77、块级管理表70、页级管理表75及页级映射76的内容作为示例。
在按照上述方式从顺序写入块管理表77中选择一个逻辑块地址(ai)后,通过参照块级管理表70、页级管理表75、及页级映射76,如图17所示,相对于顺序写入块管理表77中分配给逻辑块地址ai的物理块地址(在这种情况下为xi)的未写物理页51a,收集并补写分配给其他物理块的相关逻辑块地址ai的逻辑页数据。
然后,在执行了涉及这种垃圾收集的、处于物理级的数据转移后,更新各管理信息,如图19所示。
具体地说,对于顺序写入块管理表77,将分配有逻辑块地址ai的逻辑块地址的值、物理块地址的值及最终写入逻辑页地址的值全部更新为无效值(0xFFFF)。
此外,对于块级管理表70,将已分配给逻辑块地址ai的物理块地址更新为xi。
此外,对于页级管理表75,将分配有逻辑块地址ai的逻辑块地址的值、及物理块地址的值全部更新为无效值(0xFFFF)。
此外,将用于逻辑块地址ai的页级映射76的物理块地址及物理页地址的值全部更新为无效值(0xFFFF)。
由于这种垃圾收集,已分配给选择的逻辑块地址ai的地址xi的物理块最新地置于块级管理下。因此,可以将能够在顺序写入块管理表77中使用的物理块的空缺数量增加一。
如图17和图18中所示的示例,在将逻辑块ai的旧数据写入了某一物理块(图17和图18示例中的物理块地址b0)且将该数据置于块级管理的情况下,作为执行顺序写入块垃圾收集的结果,相关物理块地址b0的物理块应被处理成可擦除。因此,就图17和图18中所示的实例而言,在顺序写入块的垃圾收集时,还执行用于将相关物理块地址b0登记到无效数据块管理表78中的处理。
另一方面,在上述2)情况下的顺序写入块的垃圾收集与1)的共同之处在于:第一,从顺序写入块管理表77中选择一个逻辑块地址(ai)。
在上述2)的情况下,如上所述,在选择逻辑块地址ai后,例如,将诸如初始值的虚拟数据(dummy data,空数据)写入顺序写入块管理表77中的、已分配给相关逻辑块地址ai的物理块(xi)的未写物理页51b,以便整个块都写有数据。
此外,在顺序写入块管理表77中,将分配有逻辑块地址ai的逻辑块地址的值、物理块地址的值及最终写入逻辑页地址的值全部更新为无效值(0xFFFF)。此外,在块级管理表70中,最新写入逻辑块地址ai以及与逻辑块地址ai相关联的物理块地址xi。因此,相关物理块xi被最新地置于块级管理下。因此,对应于上述2)的情况,可以在顺序写入块管理表77中生成新的空缺块。
在此,根据上述描述了解的是,“顺序写入块的垃圾收集”的要点在于,通过将选自顺序写入块管理表77的某一顺序写入管理块50最新地置于块级管理下,在顺序写入块管理表77中确保空缺。
返回图15,进行描述。
图15中,在执行了步骤S207中的针对顺序写入块77的新登记处理后,在步骤S208中执行顺序写入处理。即,按照在步骤S207中已最新登记的物理块中的地址的顺序执行写入。
图20A示出了这种情况下的顺序写入的概念图。
如上所述,在该实例的顺序写入中,在物理块(设为图20A中的地址bj)中,自物理页地址0和物理扇区地址0开始顺序写入从主机装置5接收的数据。此时,写入的单位是逻辑页大小。
图15中,在执行了步骤S208中的顺序写入处理后,在步骤S213中,将最终写入物理页地址登记在顺序写入块管理表77中。也就是说,作为来自顺序写入块管理表77中登记的逻辑块地址、与步骤S207中执行顺序写入处的逻辑块地址相关的最终写入逻辑页地址的值,将执行最终写入的逻辑页地址的值写入。
图20B示出了在步骤S213的登记处理后顺序写入块管理表77的内容作为示例。
例如,在顺序写入块管理表77中,如果对于逻辑块地址aj的数据,在物理块地址bj的块中执行达到逻辑页地址Pk的顺序写入,则在此情况下,如图20B所示,写入逻辑页地址Pk作为与逻辑块地址aj和物理块地址bj相关联的最终写入逻辑页地址。
图15中,在执行了步骤S213的登记处理后,完成写入逻辑块处理(S103)。
接下来,将描述对应于下列情况所要执行的处理:在该情况中,由于逻辑块存在于顺序写入块管理表77中而在先前的步骤S202的判定处理中得到肯定结果,即,顺序写入处于正在执行的情况。
图15中,在步骤S202的判定处理中获得肯定结果时,处理前进至步骤S209。
步骤S209中,判定写入开始逻辑页地址是否与顺序逻辑页地址连续。即,针对用于相关写入逻辑块处理的、利用顺序写入块管理表77管理的逻辑块地址,判定写入开始逻辑页地址是否与最终写入逻辑页地址连续,以及写入开始逻辑扇区地址是否为0。
例如,将参照图20B中所示的顺序写入块管理表77的内容进行描述。在这种情况下,如果针对正在执行写入处的逻辑块地址aj,写入开始逻辑页地址的值为(pk+1)且逻辑页的偏移量为0,则得到写入开始逻辑页地址与顺序逻辑页地址连续的判定结果。
当在步骤S209中由于写入开始逻辑页地址与顺序逻辑页地址不连续而得到否定结果时,处理前进至步骤S215,在该步骤中执行顺序写入完成及数据完整性处理,此后,处理转入图21中所示的页级写入的处理(稍后描述)。
在此,步骤S215的顺序写入完成及数据完整性处理是以下处理:对于顺序写入块管理表77中管理的、用于相关写入逻辑块处理的对象的逻辑块,通过在正执行顺序写入的块的垃圾收集而将针对相关逻辑块的数据的管理升级为块级管理并结束顺序写入。也就是说,上述提及的处理是在转入图21中所示的页级写入之前确保数据兼容性的处理。
作为步骤S215的顺序写入完成及数据完整性处理的具体处理内容,根据下列情况执行不同处理:
3)当将用于相关写入逻辑块处理的对象的逻辑块(临时设为“Ti”)的记录数据分配到其他块并记录时(也就是说,作为逻辑块Ti的记录数据,除顺序写入块管理表77管理下的数据之外,还存在页级管理和块级管理下的数据),以及
4)当逻辑块的记录数据根本不存在于其他块中时(当逻辑块Ti的记录数据仅仅是顺序写入块管理表77管理下的数据时)。
在此,就上述3)的情况而言,逻辑块Ti被逻辑块ai取代,执行类似于对应于参照图17至图19描述的1)的先前处理的处理,以便将用于逻辑块Ti的数据管理更新为块级管理。
另一方面,就上述4)的情况而言,类似地,逻辑块Ti被逻辑块ai取代,执行类似于先前2)的处理,以便将逻辑块Ti的数据管理更新为块级管理。
另一方面,当在步骤S209中得到写入开始逻辑页地址与顺序逻辑页地址连续这一肯定结果时,处理前进至步骤S210,在该步骤中判定写入大小是否是逻辑页的倍数。
在此,在NAND闪存中,由于数据的读取/写入单位是页大小,当写入大小不是页大小的倍数时(即,输出小于页的大小或输出大小的零头小于页大小),数据不适合于顺序写入。
由于这个原因,当在步骤S210中由于写入大小不是逻辑页的倍数而获得否定结果时,处理前进至上述步骤S215,在该步骤中执行顺序写入完成及数据完整性处理,然后处理转入图21中所示的针对页级写入的处理。
另一方面,当在步骤S210中由于写入大小是逻辑页的倍数而获得肯定结果时,处理前进至步骤S211,在步骤中将数据补写到正顺序写入的物理块。也就是说,从顺序写入块管理表77获得分配给执行了写入的逻辑块的物理块地址的值及最终写入逻辑页地址的值,自所获得地址的物理块中的未写物理页中的开始页依次写入数据。
例如,利用图20B的顺序写入块管理表77的内容进行描述。在这种情况下,写入开始逻辑页地址为pk+1,自对应于相关逻辑页地址pk+1的物理页依次写入指定大小的数据。
在执行了步骤S211的数据补写处理后,在步骤S212中,判定是否在最终物理页处执行了写入。即,相当于判定数据是否已写入已分配给执行写入的逻辑块的顺序写入块50中的所有物理页。
当在步骤S212中由于写入不是最终物理页而获得否定结果时,处理前进至先前的步骤S213,在该步骤中将最终写入物理页地址登记在顺序写入块管理表77中。
另一方面,当在步骤S212中由于是对最终物理页写入而获得肯定结果时,处理前进至步骤S214,在该步骤中执行块登记处理。即,该处理是将完成了所有页的写入的块从顺序写入管理下最新地置于块级管理下的处理。
具体地说,如果所有页都已完成写入的逻辑块(即,针对相关写入逻辑块处理的对象的逻辑块)的地址用ai表示,在顺序写入块管理表77中已分配给相关逻辑块ai的物理块的地址用xi表示,在S214的登记处理中,将顺序写入块管理表77中分配了逻辑块地址ai的逻辑块地址的值、物理块地址的值、及最终写入逻辑页地址的值全部更新为无效值(0xFFFF),在块级管理表70中执行用于最新地写入逻辑块地址ai及与逻辑块地址ai相关联的物理块地址xi的处理。
在此,关于步骤S214的块登记处理,
5)在针对相关写入逻辑块处理的对象的逻辑块的中间点已写有数据的情况下,此时将数据最新补写到接下来的部分,仅执行上述的登记处理就足够了。
6)然而,在作为补写的物理写入伴随有逻辑级覆写的情况下,则还与上述登记处理一起,执行将针对逻辑覆写的对象的旧数据进行删除的处理。
具体地说,将针对相关写入逻辑块处理的对象的逻辑块的地址设置为ai并将顺序写入块管理表77中已分配给相关逻辑块ai的物理块的地址设置为xi。将在页级管理表75中已分配逻辑块地址ai的逻辑块地址的值及物理块地址的值全部更新为无效值(0xFFFF)。同样,执行以下处理:将用于逻辑块地址ai的页级映射76的物理块地址和物理页地址的值更新为无效值(0xFFFF)。
在执行了步骤S214的登记处理后,完成写入逻辑块处理(S103)。
接下来,将参照图21描述针对页级写入的处理。
图21中,首先,步骤S401中,判定逻辑块是否存在于页级管理表75中。即,判定针对相关写入逻辑块处理的对象的逻辑块地址是否存在于页级管理表75中。
当在步骤S401中由于逻辑块存在于页级管理表75中而获得肯定结果时,处理前进至图21中所示的步骤S406,在该步骤中执行对于页级管理块40的写入操作。即,将从主机装置5侧接收的数据内的、具有可写入大小的数据写入页级管理表75中已分配给相关写入逻辑块处理的对象的逻辑块地址的页级管理块40。
另一方面,当在步骤S401中得到逻辑块不存在于页级管理表75中这一否定结果时,处理前进至步骤S402,在该步骤中判定页级管理表75是否存在空缺。具体地说,判定页级管理表75中登记的逻辑块的数量是否达到上述“d”。
当在步骤S402中由于页级管理表75存在空缺而获得肯定结果时,处理前进至步骤S403,在该步骤中判定使用页级管理表75管理的物理块的数量是否小于“f”。即,判定使用页级管理表75执行管理的、充当页级管理块40的物理块的数量是否已达到上限值(该上限值=f)。
无论出现哪种情况,当在步骤S403中得到了使用页级管理表75管理的物理块的数量不小于“f”(已达到上限值“f”)这一否定结果时,且在步骤S402中得到页级管理表75不存在空缺这一否定结果时,处理前进至步骤S404,在该步骤中执行页级管理块的垃圾收集。
之后,在步骤S405中,在页级管理表75中执行新登记。也就是说,将针对相关写入逻辑块处理的对象的逻辑块地址最新地登记在页级管理表75中,以便最新地确保分配给相关逻辑块地址的页级管理块40(物理块)。
此外,当在步骤S403中得到可使用页级管理表75管理的物理块的数量小于“f”(未达到上限值“f”)这一肯定结果时,跳过步骤S404的垃圾收集,执行上述步骤S405的新登记处理。
在此,将参照图22至图24对步骤S404中“页级管理块的垃圾收集”的处理概要进行描述。
图22示意性地示出了通过页级管理块的垃圾收集、处于物理级的数据转移状态的实例。图23示出了在图22中所示的数据转移之前的块级管理表70、页级管理表75及页级映射76的内容作为示例。
图24示出了在图22中所示的数据转移之后的块级管理表70、页级管理表75及页级映射76的内容作为示例。
首先,在页级管理块的垃圾收集处理中,从使用页级管理表75管理的逻辑块地址中选择一个逻辑块地址,还获得未写物理块中的一个物理块地址。在这种情况的实例中,假设针对逻辑块地址,选择图23中的逻辑块地址ai。此外,将选择的未写物理块的物理块地址设置为xi。
在如上所述的选择了逻辑块地址ai和未写物理块地址xi之后,通过参照如图22所示的块级管理表70、页级管理表75及页级映射76,收集分配给其他物理块的逻辑块地址ai的逻辑页数据并将该数据写入物理块地址xi的未写物理页。
在执行了这种物理级的数据转移处理后,对图24中所示的各管理信息执行更新。
具体地说,对于块级管理表70,将分配给逻辑块地址ai的物理块地址更新为xi。即,作为结果,逻辑块ai被最新地置于块级管理下。
此外,对于页级管理表75,将逻辑块地址的值及已分配有逻辑块地址ai的物理块地址的值全部更新为无效值(0xFFFF)。此外,将用于逻辑块地址ai的页级映射76的物理块地址以及物理页地址的值全部更新为无效值(0xFFFF)。由于这些处理,使逻辑块ai的所分配的旧页数据无效,还在页级管理表75中确保新的空缺块。
如图22和图23中所示的示例,在将逻辑块ai的旧数据写入某一物理块(图22和图23中的物理块地址b0)且将该数据置于块级管理的情况下,由于执行页级管理块的垃圾收集的原因,相关物理块地址b0的物理块应处理成可擦除。因此,就图22和图23中所示的实例而言,在页级管理块的垃圾收集时,还执行将相关物理块地址b0登记到无效数据块管理表78中的处理。
返回图21,进行描述。
在执行了步骤S404的垃圾收集后,执行上述步骤S405中针对页级管理表75的新登记处理。将进行描述以便确认。步骤S405的登记处理是以下处理:从未写物理块中获得一个物理块地址并按照与针对相关写入逻辑块处理的对象的逻辑块地址的值相关联的方式将获得的物理页地址的值最新地写入页级管理表75中。
在执行了步骤S405的登记处理后,处理前进至上述步骤S406,在该步骤中执行对于页级管理块40的写入。
然后,在执行了步骤S406的写入后,在步骤S407中,对页级映射76执行更新。即,更新对应于已从主机装置5侧接收并写入的数据的页级映射76的值。
图25A和图25B分别示出了作为写入页级管理块40(S406)所执行的数据写入的实例,及更新页级映射76(S407)后的页级映射76的实例。
例如,假设在步骤S406的写入页级管理块40的处理中,将逻辑页地址yi和yi+1的数据分别写入物理块地址xj的物理页地址pi和pi+1,如图25A所示。
此时在页级映射76中,更新逻辑块地址的值及对应于逻辑页地址yi和yi+1的物理页地址的值,如图25B所示。
返回图21,在执行了步骤S407的映射更新处理后,在步骤S408中,判定是否完成所有数据的写入。即,判定在针对相关写入逻辑块处理的对象的逻辑块地址中的、主机装置5侧规定大小的所有数据是否已写入。
当在步骤S408中得到还未完成所有数据写入这一否定结果时,处理返回先前的步骤S403,在该步骤中再次判定使用页级管理表75管理的物理块的数量是否小于“f”。
另一方面,当在步骤S408中由于完成所有数据写入而获得肯定结果时,完成写入逻辑块处理(S103)。
如前文描述的,在该实施方式中,使得对具有大小小于块大小的、难以通过块级管理执行记录的数据来说顺序写入成为可能。
在根据两种管理(即,块级管理和页级管理)执行数据写入的现有技术的闪存装置中,在要被写入的数据与块大小相匹配的情况下,利用块级管理执行记录,并且在页级管理下写入大小小于块大小的数据。为此,即便(例如)大小小于块大小的数据在逻辑地址方面是连续的独立数据,通常也会对这些数据执行页级管理写入。
相比之下,根据该实施方式,可对大小小于块大小的数据执行顺序写入。也就是说,例如在如上所述的情况下,可有效防止独立数据被分配给不同物理块并防止作为页级管理下而被记录。
也就是说,根据使顺序写入成为可能的该实施方式,与对于大小小于块大小的数据来说页级管理写入是唯一选择的现有技术相比,可有效减小垃圾收集的发生频率。因此,与现有技术相比,可提高记录速度方面的性能。
此外,如上所述,在现有技术中,在主机装置5侧只设置有大小小于块大小的缓冲存储器的情况下,主机装置5侧只能发送大小小于块大小的数据(在这种情况下,例如,采取图13中所示的发送形式)。因此,同样在这种情况下,即便数据在逻辑地址方面是连续的,在现有技术的闪存装置中,仍选择通过页级管理的写入。
相比之下,根据使顺序写入成为可能的该实施方式,即便主机装置5侧只能发送大小小于块大小的数据,那些数据也可被顺序写入。因此,与利用页级管理执行记录的情况不同,可以减小垃圾收集的发生频率,并可实现高速记录。也就是说,同样在从具有小尺寸缓冲存储器的、用于数据传输的主机装置5进行写入的情况下,可以实现高速数据记录。
2.第二实施方式
接下来,将对本发明的第二实施方式进行描述。
如上所述,第二实施方式是:主机装置5通过使用命令明确通知闪存装置1侧切换写入技术,闪存装置1响应于相关通知来改变数据写入技术。
在第二实施方式中,除主机装置5采用上述方式指示顺序写入外,与闪存装置1中执行的存储器控制技术相关的处理内容也不同于第一实施方式。在第二实施方式中,主要由图1中所示的存储控制器3执行的程序已改变而不同于第一实施方式中的程序,闪存装置1的内部配置与图1中所示的配置相同。
图26示出了第二实施方式中的主机装置5使闪存装置1执行顺序写入的情况下所执行的写入指示的实例。
当在这种情况下主机装置5使闪存装置1执行顺序写入时,主机装置5将顺序写入开始命令发送至闪存装置1侧,如图26中的时刻t1所示。在顺序写入开始命令中,如图26所示,一并指定充当针对顺序写入的对象的数据的写入开始地址的逻辑地址以及期望顺序写入的数据的大小(总大小)。在这种情况下,写入开始的逻辑地址为“0”,如图26所示。
同样,在图26中,类似于先前图13的情况,示出了将等于逻辑块大小/4的数据大小指定为每个写命令中的写入数据大小,并总体执行达到一个逻辑块大小的写入指示的实例。
由于这个原因,在这种情况下由时刻t1的顺序写入开始命令指定的数据大小是图26中所示的“逻辑块大小”。
在时刻t1发送顺序写入开始命令后,类似于图13的情况,主机装置5将其中指定了逻辑地址和写入大小的写命令以及写入数据顺序发送至闪存装置1。在这种情况的实例中,在时刻t9发送的数据是要被顺序写入闪存装置1侧的、最终发送的数据。
发送最终写入数据后,这种情况下的主机装置5发送顺序写入完成命令(时刻t10)。对于顺序写入完成命令,类似于先前的顺序写入开始命令,一并指定写入数据的逻辑地址和大小(总大小)。
在此,这种情况下的主机装置5被设计为仅在期望执行顺序写入时才发送表示意图的写入开始命令,该主机装置并不特意发送表示有关其他块级写入和页级写入的意图的写入开始命令,并通常发送其中指定了逻辑地址和写入数据大小的写入命令。
接下来,将对这种情况下的闪存装置1侧执行处理的概要进行描述。
在第二实施方式的闪存装置1中,作为对应于来自主机装置5侧的顺序写入开始命令的处理,执行图27中所示的处理。
此外,作为对应于来自主机装置5侧的顺序写入完成命令的处理,执行图28中所示的处理。
此外,同样在第二实施方式的闪存装置1中,作为对应于写入命令的处理,执行先前图14中所示的处理。然而,第二实施方式与第一实施方式的不同之处在于:第二实施方式中将图29中所示的处理执行为步骤S103的写入逻辑块处理。
存储控制器3将图27、图28和图14中所示的处理执行为并行处理。
例如,在从主机装置5侧接收到顺序写入开始命令的情况下,在图27的步骤S501中获得肯定结果,并且在除了已将顺序写入管理块50分配给利用主机装置5侧的顺序写入开始命令指定的逻辑块地址的情况以外,执行确保新的顺序写入管理块50的处理。
然后,接收到上述顺序写入开始命令后,在从主机装置5侧接收写入命令的情况下,执行涉及图14中所示的写入逻辑块处理(S103)的一系列处理。按照上述方式,就第二实施方式而言,针对写入逻辑块处理(S103),执行图29中所示的处理。
此外,在从主机装置5侧接收到顺序写入完成命令的情况下,在图28的步骤S601中获得肯定结果,并执行通过顺序写入所执行的写入是否已达到目标块中的最终物理页的处理。
此外,在从主机装置5侧发出写命令而不涉及顺序写入开始命令的情况下,根据图28中所示的处理来判定是应当执行块级写入或是应当执行页级写入。
下文将详细描述第二实施方式的闪存装置1执行的图27至图29的处理。
首先,将描述对应于图27中所示的顺序写入开始命令的处理。
图27中,在步骤S501中,等待要从主机装置5侧接收的顺序写入开始命令。
然后,在收到顺序写入开始命令的情况下,处理前进至步骤S502。
在步骤S502中,判定逻辑块是否存在于顺序写入块管理表77中。该处理的内容与先前参照图15描述的步骤S202的处理内容相同。
当在步骤S502中由于逻辑块存在于顺序写入块管理表77中而获得肯定结果时,完成图27中所示的处理。
另一方面,当在步骤S502中由于逻辑块不存在于顺序写入块管理表77中而获得否定结果时,在步骤S503中判定顺序写入块管理表77是否存在空缺。
当在步骤S503中由于顺序写入块管理表77存在空缺而获得肯定结果时,处理前进至步骤S505,在该步骤中在顺序写入块管理表77中执行新登记。也就是说,将步骤S501中接收到的顺序写入开始命令指定的逻辑块地址登记在顺序写入块管理表77中,并将顺序写入块50分配给相关逻辑块地址。
另一方面,当在步骤S503中由于顺序写入块管理表77不存在空缺而获得否定结果时,处理前进至步骤S504,在该步骤中执行顺序写入块的垃圾收集。步骤S504的垃圾收集处理的内容与先前的步骤S206的垃圾收集处理相同,因此省略重复描述。
执行了步骤S504的垃圾收集后,执行步骤S505的新登记处理。
执行了步骤S505的新登记后,完成图27中所示的顺序写入开始命令处理。
将参照图28描述对应于顺序写入完成命令的处理。
图28中,在步骤S601中,等待要从主机装置5侧接收的顺序写入完成命令。
在收到顺序写入完成命令的情况下,处理前进至步骤S602。
在步骤S602中,判定是否已经在最后物理页中执行了写入。也就是说,类似于先前的步骤S212的处理,判定数据是否已被写入分配给执行了写入的逻辑块的顺序写入块50中的所有物理页。
当在步骤S602中,由于已在最终物理页中执行了写入而获得肯定结果时,处理前进至步骤S603,在该步骤中执行块登记处理。
也就是说,结果是将已被写入达到最终物理页的顺序写入块50最新地置于块级管理下。
步骤S603的块登记处理与先前步骤S214的块登记处理相同。因此,在发生了逻辑级覆写后,随后还要执行使针对覆写的对象的旧数据被处理成已删除的处理。
另一方面,当在步骤S602中由于未在最终物理页中执行写入而获得否定结果时,处理前进至步骤S604,在该步骤中执行顺序写入块的垃圾收集。步骤S604的垃圾收集处理与先前步骤S206的垃圾收集处理相同。
与对应于已对最终物理页执行写入的情况执行的步骤S604的处理一样,还可执行与先前步骤S213的处理相同的“将最终写入物理页地址登记在顺序写入块77中”的处理,而非如上所述的顺序写入块的垃圾收集处理。
然而,在这种情况下,已从主机装置5侧收到顺序写入完成命令(在这种情况下,可以假设在主机装置5侧不再存在要被顺序写入的数据)。因此,此后,在用于相关顺序写入的顺序写入块50中发生补写的可能性较小。因此,可以看出的是,从确保顺序写入块管理表77中的空缺的角度,如上所述的顺序写入块的垃圾收集是期望的。
在执行了步骤S603的块登记处理或步骤S604的垃圾收集处理后,完成该图中所示的顺序写入完成命令处理。
将参照图29描述第二实施方式的写入逻辑块处理(S103)。
图29中,类似于先前的步骤S201,在步骤S701中,判定写入大小是否与物理块大小相匹配。
当在步骤S701中由于写入大小与物理块大小相匹配而获得肯定结果时,同样在这种情况下,处理转入图16中所示的针对块级写入的处理。
另一方面,当在步骤S701中由于写入大小不与物理块大小相匹配而获得否定结果时,在步骤S702中,判定逻辑块是否存在于顺序写入块管理表77中。步骤S702的判定处理与先前步骤S202的判定处理相同。
当在步骤S702中由于逻辑块不存在于顺序写入块管理表77中而获得否定结果时,处理转入图21中所示的针对页级写入的处理。
另一方面,当在步骤S702中由于逻辑块存在于顺序写入块管理表77中而获得肯定结果时,处理前进至步骤S703,在该步骤中执行顺序写入。
在此,在收到来自主机装置5侧的顺序写入开始命令的情况下,由于先前图27的处理,通常将顺序写入块50分配给相关逻辑块。从而在步骤S703中对分配的顺序写入块50执行顺序写入。
在执行了步骤S703的顺序写入后,在步骤S704中,执行将最终写入物理页地址登记在顺序写入块77中的处理。
在执行了步骤S703的登记处理后,完成这种情况下的写入逻辑块处理(S103)。
前文描述的第二实施方式与第一实施方式的相同之处在于使得对于大小小于闪存装置1中块大小的数据进行顺序写入成为了可能。因此,类似于第一实施方式,与现有技术相比可以实现更高的记录速度。
此外,同样在从用于数据传输的缓冲存储器的大小小于块大小的主机装置5进行写入的情况下,第二实施方式与第一实施方式的相同之处在于可以实现高速数据记录。
3.变型例
虽然上文已对根据本发明的实施方式进行了描述,但本发明不应限于前文中描述的具体实例。
例如,形成存储***的主机装置5不限于数字照相机装置。可使用其他信息处理装置,诸如个人计算机。
此外,闪存装置1不限于诸如存储卡的卡形存储装置,可使用包括闪存的存储装置,诸如固态硬盘(SSD)。
本发明可采取以下(1)至(15)中描述的如下配置。
(1)一种闪存装置,包括:
闪存单元;以及
控制单元,被配置为执行控制使得大小小于所述闪存单元的块大小的数据被顺序写入所述闪存单元。
(2)如上述(1)所述的闪存装置,其中,所述控制单元判定被指示要从外部装置写入的数据的大小是否小于所述块大小,并基于判定结果来执行控制使得大小小于所述块大小的数据被顺序写入所述闪存单元。
(3)如上述(2)所述的闪存装置,其中,所述控制单元
判定指示写入的所述数据所属的逻辑块地址中的数据是否在过去被顺序写入,
进一步判定指示写入的所述数据的大小是否大于或等于所述块大小的1/n,其中,n是2以上的自然数,以及
执行控制使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入、且指示写入的所述数据的大小大于或等于所述块大小的1/n时执行所述顺序写入。
(4)如上述(3)所述的闪存装置,其中,所述控制单元
进一步判定指示写入的所述数据的写入开始逻辑页地址和写入开始逻辑扇区地址是否都指明起始地址,以及
执行控制使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入、指示写入的所述数据的大小大于或等于所述块大小的1/n、且所述写入开始逻辑页地址和所述写入开始逻辑扇区地址都指明起始地址时执行所述顺序写入。
(5)如上述(4)所述的闪存装置,其中,所述控制单元判定用作顺序写入块的块的数量是否达到上限值,并且当用作所述顺序写入块的块的数量达到所述上限值时对从正在使用的所述顺序写入块中选出的顺序写入块执行垃圾收集。
(6)如上述(2)所述的闪存装置,其中,所述控制单元
进一步判定指示写入的所述数据所属的逻辑块地址中的数据在过去是否被顺序写入,以及
当指示写入的所述数据所属的逻辑块地址中的数据在过去被顺序写入且存在正被写有数据的顺序写入块时,执行控制使得根据关于是否至少指示写入的所述数据的所述写入开始逻辑页地址是否与所述正被写有数据的顺序写入块的最终写入逻辑页地址连续的判定结果,将指示写入的所述数据补写到所述正被写有数据的顺序写入块。
(7)如上述(6)所述的闪存装置,其中,所述控制单元
进一步判定指示写入的所述数据的大小是否是所述闪存单元的页大小的倍数,以及
执行控制,使得当存在正被写有数据的顺序写入块、指示写入的所述数据的写入开始逻辑页地址与所述正被写有数据的顺序写入块的最终写入逻辑页地址连续、且指示写入的所述数据的大小是所述页大小的倍数时,将指示写入的所述数据补写到所述正被写有数据的顺序写入块。
(8)如上述(4)所述的闪存装置,其中,所述控制单元
进一步判定指示写入的所述数据的大小是否是所述闪存单元的页大小的倍数,以及
执行控制,使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入、指示写入的所述数据的大小大于或等于所述块大小的1/n、所述写入开始逻辑页地址和所述写入开始逻辑扇区地址都指明起始地址、且指示写入的所述数据的大小是所述页大小的倍数时,执行顺序写入。
(9)如上述(2)所述的闪存装置,其中,当指示写入的所述数据的大小与所述闪存单元的所述块大小相匹配时,所述控制单元执行控制使得在块级管理下写入指示写入的数据。
(10)如上述(2)至(9)所述的闪存装置,其中,所述控制单元
判定指示写入的所述数据所属的逻辑块地址中的数据在过去是否被顺序写入,
进一步判定指示写入的所述数据的大小是否大于或等于所述块大小的1/n,其中,n是2以上的自然数,以及
执行控制,使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入、且指示写入的所述数据的大小不大于等于所述块大小的1/n时,在页级管理下写入指示写入的所述数据。
(11)如上述(2)至(10)所述的闪存装置,其中,所述控制单元
判定指示写入的所述数据所属的逻辑块地址中的数据在过去是否被顺序写入,
进一步判定指示写入的所述数据的写入开始逻辑页地址和写入开始逻辑扇区地址是否都指明起始地址,以及
执行控制,使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入、且不满足指示写入的所述数据的写入开始逻辑页地址和写入开始逻辑扇区地址都指明起始地址的条件时,在页级管理下写入指示写入的所述数据。
(12)如上述(2)至(11)所述的闪存装置,其中,所述控制单元
判定指示写入的所述数据所属的逻辑块地址中的数据是否在过去被顺序写入,
进一步判定指示写入的所述数据的大小是否是所述闪存单元的页大小的倍数,以及
执行控制,使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入、且指示写入的所述数据的大小不是所述页大小的倍数时,在页级管理下写入指示写入的所述数据。
(13)如上述(2)至(12)所述的闪存装置,其中,所述控制单元
判定指示写入的所述数据所属的逻辑块地址中的数据是否在过去被顺序写入,
进一步判定指示写入的所述数据的写入开始逻辑页地址是否与正被写有数据的顺序写入块的最终写入逻辑页地址连续,以及
执行控制,使得当指示写入的所述数据所属的逻辑块地址中的数据在过去被顺序写入、存在正被写有数据的顺序写入块、且指示写入的所述数据的写入开始逻辑页地址不与所述正被写有数据的顺序写入块的最终写入逻辑页地址连续时,在页级管理下写入指示写入的所述数据。
(14)如上述(2)至(13)所述的闪存装置,其中,所述控制单元
判定指示写入的所述数据所属的逻辑块地址中的数据是否在过去被顺序写入,
进一步判定指示写入的所述数据的大小是否是所述闪存单元的所述页大小的倍数,以及
执行控制,使得当指示写入的所述数据所属的逻辑块地址中的数据在过去被顺序写入、存在正被写有数据的顺序写入块、且指示写入的所述数据的大小不是所述页大小的倍数时,在页级管理下写入指示写入的所述数据。
(15)如上述(1)所述的闪存装置,其中,所述控制单元响应于来自外部装置的顺序写入指示而执行控制,使得大小小于所述闪存单元的所述块大小的数据被顺序写入所述闪存单元。
本申请包含于2011年5月9日向日本专利局提交的日本在先专利申请JP 2011-104519中所公开的主题,其全部内容结合于此作为参考。
本领域的技术人员应当理解,根据设计要求和其他因素,可以进行各种修改、组合、子组合和变形,均应包含在所附权利要求或其等同物的范围之内。
Claims (18)
1.一种闪存装置,包括:
闪存单元;以及
控制单元,被配置为执行控制使得大小小于所述闪存单元的块大小的数据被顺序写入所述闪存单元。
2.根据权利要求1所述的闪存装置,其中,所述控制单元判定被指示要从外部装置写入的数据的大小是否小于所述块大小,并基于判定结果来执行控制使得大小小于所述块大小的数据被顺序写入所述闪存单元。
3.根据权利要求2所述的闪存装置,其中,所述控制单元:
判定指示写入的所述数据所属的逻辑块地址中的数据是否在过去被顺序写入,
进一步判定指示写入的所述数据的大小是否大于或等于所述块大小的1/n,其中,n是2以上的自然数,以及
执行控制使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入且指示写入的所述数据的大小大于等于所述块大小的1/n时执行所述顺序写入。
4.根据权利要求3所述的闪存装置,其中,所述控制单元:
进一步判定指示写入的所述数据的写入开始逻辑页地址和写入开始逻辑扇区地址是否都指明起始地址,以及
执行控制,使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入、指示写入的所述数据的大小大于等于所述块大小的1/n且所述写入开始逻辑页地址和所述写入开始逻辑扇区地址都指明起始地址时,执行所述顺序写入。
5.根据权利要求4所述的闪存装置,其中,所述控制单元判定用作顺序写入块的块的数量是否达到上限值,并且当用作所述顺序写入块的块的数量达到所述上限值时对从正在使用的所述顺序写入块中选出的顺序写入块执行垃圾收集。
6.根据权利要求2所述的闪存装置,其中,所述控制单元:
进一步判定指示写入的所述数据所属的逻辑块地址中的数据在过去是否被顺序写入,以及
当指示写入的所述数据所属的逻辑块地址中的数据在过去被顺序写入且存在正被写有数据的顺序写入块时,执行控制使得根据关于至少指示写入的所述数据的写入开始逻辑页地址与所述正被写有数据的顺序写入块的最终写入逻辑页地址是否连续的判定结果,将指示写入的所述数据补写到所述正被写有数据的顺序写入块。
7.根据权利要求6所述的闪存装置,其中,所述控制单元:
进一步判定指示写入的所述数据的大小是否是所述闪存单元的页大小的倍数,以及
执行控制,使得当存在正被写有数据的顺序写入块、指示写入的所述数据的写入开始逻辑页地址与所述正被写有数据的顺序写入块的最终写入逻辑页地址连续且指示写入的所述数据的大小是所述页大小的倍数时,将指示写入的所述数据补写到所述正被写有数据的顺序写入块。
8.根据权利要求4所述的闪存装置,其中,所述控制单元:
进一步判定指示写入的所述数据的大小是否是所述闪存单元的页大小的倍数,以及
执行控制,使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入、指示写入的所述数据的大小大于等于所述块大小的1/n、所述写入开始逻辑页地址和所述写入开始逻辑扇区地址都指明起始地址且指示写入的所述数据的大小是所述页大小的倍数时,执行顺序写入。
9.根据权利要求2所述的闪存装置,其中,当指示写入的所述数据的大小与所述闪存单元的所述块大小相一致时,所述控制单元执行控制使得在块级管理下写入指示写入的所述数据。
10.根据权利要求2所述的闪存装置,其中,所述控制单元:
判定指示写入的所述数据所属的逻辑块地址中的数据在过去是否被顺序写入,
进一步判定指示写入的所述数据的大小是否大于等于所述块大小的1/n,其中,n是2以上的自然数,以及
执行控制,使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入且指示写入的所述数据的大小不大于等于所述块大小的1/n时,在页级管理下写入指示写入的所述数据。
11.根据权利要求2所述的闪存装置,其中,所述控制单元:
判定指示写入的所述数据所属的逻辑块地址中的数据在过去是否被顺序写入,
进一步判定指示写入的所述数据的写入开始逻辑页地址和写入开始逻辑扇区地址是否都指明起始地址,以及
执行控制,使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入且不满足指示写入的所述数据的写入开始逻辑页地址和写入开始逻辑扇区地址都指明起始地址的条件时,在页级管理下写入指示写入的所述数据。
12.根据权利要求2所述的闪存装置,其中,所述控制单元:
判定指示写入的所述数据所属的逻辑块地址中的数据是否在过去被顺序写入,
进一步判定指示写入的所述数据的大小是否是所述闪存单元的页大小的倍数,以及
执行控制,使得当指示写入的所述数据的大小小于所述块大小、指示写入的所述数据所属的逻辑块地址中的数据在过去未被顺序写入且指示写入的所述数据的大小不是所述页大小的倍数时,在页级管理下写入指示写入的所述数据。
13.根据权利要求2所述的闪存装置,其中,所述控制单元:
判定指示写入的所述数据所属的逻辑块地址中的数据是否在过去被顺序写入,
进一步判定指示写入的所述数据的写入开始逻辑页地址是否与正被写有数据的顺序写入块的最终写入逻辑页地址连续,以及
执行控制,使得当指示写入的所述数据所属的逻辑块地址中的数据在过去被顺序写入、存在正被写有数据的顺序写入块且指示写入的所述数据的写入开始逻辑页地址不与所述正被写有数据的顺序写入块的最终写入逻辑页地址连续时,在页级管理下写入指示写入的所述数据。
14.根据权利要求2所述的闪存装置,其中,所述控制单元:
判定指示写入的所述数据所属的逻辑块地址中的数据是否在过去被顺序写入,
进一步判定指示写入的所述数据的大小是否是所述闪存单元的所述页大小的倍数,以及
执行控制,使得当指示写入的所述数据所属的逻辑块地址中的数据在过去被顺序写入、存在正被写有数据的顺序写入块且指示写入的所述数据的大小不是所述页大小的倍数时,在页级管理下写入指示写入的所述数据。
15.根据权利要求1所述的闪存装置,其中,所述控制单元响应于来自外部装置的顺序写入指示而执行控制,使得大小小于所述闪存单元的所述块大小的数据被顺序写入所述闪存单元。
16.一种存储器控制装置,被配置为执行控制使得大小小于闪存单元的块大小的数据被顺序写入所述闪存单元。
17.一种存储器控制方法,包括:
执行控制,使得大小小于闪存单元的块大小的数据被顺序写入所述闪存单元。
18.一种存储***,包括:
闪存单元;
指示单元,被配置为指示要向所述闪存单元写入数据;以及
控制单元,被配置为执行控制使得被所述指示单元指示写入的、大小小于所述闪存单元的块大小的数据被顺序写入所述闪存单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-104519 | 2011-05-09 | ||
JP2011104519A JP5708216B2 (ja) | 2011-05-09 | 2011-05-09 | フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102779095A true CN102779095A (zh) | 2012-11-14 |
CN102779095B CN102779095B (zh) | 2017-03-01 |
Family
ID=47124013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210135415.0A Expired - Fee Related CN102779095B (zh) | 2011-05-09 | 2012-05-02 | 闪存装置、存储器控制装置、存储器控制方法及存储*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US8996791B2 (zh) |
JP (1) | JP5708216B2 (zh) |
CN (1) | CN102779095B (zh) |
TW (1) | TW201245958A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951248A (zh) * | 2014-03-24 | 2015-09-30 | 三星电子株式会社 | 操作数据存储装置的方法和操作数据处理***的方法 |
CN110825659A (zh) * | 2018-08-14 | 2020-02-21 | 爱思开海力士有限公司 | 用于检查存储器***中的块中的有效数据的设备和方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013242694A (ja) * | 2012-05-21 | 2013-12-05 | Renesas Mobile Corp | 半導体装置、電子装置、電子システム及び電子装置の制御方法 |
US9489296B1 (en) | 2012-10-17 | 2016-11-08 | Western Digital Technologies, Inc. | Methods, devices and systems for hardware-based garbage collection in solid state drives |
CN103176753B (zh) * | 2013-03-07 | 2016-06-01 | 深圳市江波龙电子有限公司 | 存储设备及其数据管理方法 |
EP2972888B1 (en) | 2013-03-14 | 2019-02-06 | Micron Technology, INC. | Memory systems and methods including training,data organizing,and/or shadowing |
US9354955B1 (en) | 2014-03-19 | 2016-05-31 | Western Digital Technologies, Inc. | Partial garbage collection for fast error handling and optimized garbage collection for the invisible band |
CN103973802A (zh) * | 2014-05-19 | 2014-08-06 | 浪潮电子信息产业股份有限公司 | 一种基于数据压缩融合的网卡驱动设计方法 |
CN106802867B (zh) * | 2015-11-25 | 2020-12-01 | 建兴储存科技(广州)有限公司 | 固态储存装置及其数据编程方法 |
JP6391719B2 (ja) * | 2017-01-10 | 2018-09-19 | マイクロン テクノロジー, インク. | トレーニング、データ再構築および/またはシャドウィングを含むメモリシステムおよび方法 |
JP6995520B2 (ja) * | 2017-07-14 | 2022-02-04 | キヤノン株式会社 | 記録装置 |
KR20200057473A (ko) | 2018-11-16 | 2020-05-26 | 삼성전자주식회사 | 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
CN110780812B (zh) * | 2019-09-27 | 2021-08-24 | 苏州浪潮智能科技有限公司 | 一种硬盘数据置无效方法与装置 |
CN111158592B (zh) * | 2019-12-26 | 2023-07-18 | 广东浪潮大数据研究有限公司 | 固态硬盘及其垃圾回收方法、装置和计算机可读存储介质 |
KR20210128240A (ko) * | 2020-04-16 | 2021-10-26 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이의 동작 방법 |
CN113515531B (zh) * | 2021-05-08 | 2022-12-02 | 重庆紫光华山智安科技有限公司 | 数据访问方法、装置、客户端及存储介质 |
TWI795249B (zh) * | 2022-03-29 | 2023-03-01 | 睿寬智能科技有限公司 | 用於閃存裝置之性能平衡導向之寫入速度控制法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930815A (en) * | 1995-07-31 | 1999-07-27 | Lexar Media, Inc. | Moving sequential sectors within a block of information in a flash memory mass storage architecture |
CN1938720A (zh) * | 2004-03-31 | 2007-03-28 | 松下电器产业株式会社 | 存储卡和存储卡*** |
CN101097543A (zh) * | 2006-06-30 | 2008-01-02 | 株式会社东芝 | 具备非易失性半导体存储器的存储器*** |
CN101493794A (zh) * | 2009-01-19 | 2009-07-29 | 成都市华为赛门铁克科技有限公司 | 一种闪存数据处理方法及装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657468A (en) * | 1995-08-17 | 1997-08-12 | Ambex Technologies, Inc. | Method and apparatus for improving performance in a reduntant array of independent disks |
US5941998A (en) * | 1997-07-25 | 1999-08-24 | Samsung Electronics Co., Ltd. | Disk drive incorporating read-verify after write method |
JP2001202281A (ja) * | 2000-01-19 | 2001-07-27 | Sony Corp | 記録方法及び装置、転送方法及び装置、再生方法及び装置、記録媒体 |
US6775423B2 (en) * | 2000-05-03 | 2004-08-10 | Microsoft Corporation | Systems and methods for incrementally updating an image in flash memory |
JP3578075B2 (ja) * | 2000-10-13 | 2004-10-20 | 日本電気株式会社 | ディスクアレイ制御装置及びディスクアレイ制御方法 |
JP4058322B2 (ja) * | 2002-10-07 | 2008-03-05 | 株式会社ルネサステクノロジ | メモリカード |
WO2005106673A1 (ja) * | 2004-04-28 | 2005-11-10 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置及びデータ書込み方法 |
US8452929B2 (en) * | 2005-04-21 | 2013-05-28 | Violin Memory Inc. | Method and system for storage of data in non-volatile media |
JP5162846B2 (ja) | 2005-07-29 | 2013-03-13 | ソニー株式会社 | 記憶装置、コンピュータシステム、および記憶システム |
JP2007193883A (ja) | 2006-01-18 | 2007-08-02 | Sony Corp | データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法 |
JP2008123473A (ja) * | 2006-10-20 | 2008-05-29 | Toshiba Corp | 記憶装置及びその制御方法 |
JP5224498B2 (ja) * | 2007-02-28 | 2013-07-03 | 学校法人早稲田大学 | メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム |
CN101632068B (zh) * | 2007-12-28 | 2015-01-14 | 株式会社东芝 | 半导体存储装置 |
TW201011755A (en) * | 2008-09-10 | 2010-03-16 | Skymedi Corp | Flash memory system and its data recovery method |
JP4758518B2 (ja) * | 2009-06-18 | 2011-08-31 | パナソニック株式会社 | 不揮発性記憶装置、アクセス装置、不揮発性記憶システム及びメモリコントローラ |
US8688894B2 (en) * | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
KR101739556B1 (ko) * | 2010-11-15 | 2017-05-24 | 삼성전자주식회사 | 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법 |
US8788742B2 (en) * | 2011-05-23 | 2014-07-22 | International Business Machines Corporation | Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device |
-
2011
- 2011-05-09 JP JP2011104519A patent/JP5708216B2/ja active Active
-
2012
- 2012-03-21 TW TW101109731A patent/TW201245958A/zh unknown
- 2012-03-30 US US13/436,282 patent/US8996791B2/en not_active Expired - Fee Related
- 2012-05-02 CN CN201210135415.0A patent/CN102779095B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5930815A (en) * | 1995-07-31 | 1999-07-27 | Lexar Media, Inc. | Moving sequential sectors within a block of information in a flash memory mass storage architecture |
CN1938720A (zh) * | 2004-03-31 | 2007-03-28 | 松下电器产业株式会社 | 存储卡和存储卡*** |
CN101097543A (zh) * | 2006-06-30 | 2008-01-02 | 株式会社东芝 | 具备非易失性半导体存储器的存储器*** |
CN101493794A (zh) * | 2009-01-19 | 2009-07-29 | 成都市华为赛门铁克科技有限公司 | 一种闪存数据处理方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951248A (zh) * | 2014-03-24 | 2015-09-30 | 三星电子株式会社 | 操作数据存储装置的方法和操作数据处理***的方法 |
CN104951248B (zh) * | 2014-03-24 | 2019-06-11 | 三星电子株式会社 | 操作数据存储装置的方法和操作数据处理***的方法 |
CN110825659A (zh) * | 2018-08-14 | 2020-02-21 | 爱思开海力士有限公司 | 用于检查存储器***中的块中的有效数据的设备和方法 |
CN110825659B (zh) * | 2018-08-14 | 2023-04-07 | 爱思开海力士有限公司 | 用于检查存储器***中的块中的有效数据的设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
US8996791B2 (en) | 2015-03-31 |
CN102779095B (zh) | 2017-03-01 |
JP2012234495A (ja) | 2012-11-29 |
TW201245958A (en) | 2012-11-16 |
JP5708216B2 (ja) | 2015-04-30 |
US20120290769A1 (en) | 2012-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102779095A (zh) | 闪存装置、存储器控制装置、存储器控制方法及存储*** | |
CN101937319B (zh) | 存储器***及其映射方法 | |
JP3708047B2 (ja) | フラッシュメモリの管理方法 | |
US7877569B2 (en) | Reduction of fragmentation in nonvolatile memory using alternate address mapping | |
CN101233498B (zh) | 快闪存储器中利用直接数据文件存储的数据操作 | |
US7487303B2 (en) | Flash memory device and associated data merge method | |
US8645614B2 (en) | Method and apparatus for managing data of flash memory via address mapping | |
US8386746B2 (en) | Storage unit management methods and systems | |
JP4738038B2 (ja) | メモリカード | |
KR101465789B1 (ko) | 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법 | |
US8095723B2 (en) | Log-based flash translation layer and operating method thereof | |
JP4533956B2 (ja) | フラッシュメモリシステムのデータ記憶容量の解放 | |
US9396107B2 (en) | Memory system having memory controller with cache memory and NVRAM and method of operating same | |
CN108572922A (zh) | 数据储存装置以及其操作方法 | |
EP1923792A1 (en) | Apparatus and method of managing nonvolatile memory | |
CN103455432A (zh) | 用来管理一记忆装置的方法以及其相关的记忆装置 | |
CN101238431A (zh) | 大容量数据存储*** | |
CN101606133A (zh) | 具有连续逻辑地址空间接口的直接数据文件***的使用 | |
CN101241474A (zh) | 存储器映射***及方法 | |
JP2009503746A5 (zh) | ||
EP1542129A2 (en) | Flash memory and mapping control apparatus and method for flash memory | |
EP2843562A1 (en) | Non-volatile memory device for sequential writing | |
US20050169058A1 (en) | Data management apparatus and method used for flash memory | |
CN103577119A (zh) | 用于下一代固态硬盘控制器中乱序传输数据的***和方法 | |
CN101833519B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170301 |
|
CF01 | Termination of patent right due to non-payment of annual fee |