存储器装置、存储器控制方法和程序的制作方法

文档序号:6466613阅读:143来源:国知局
专利名称:存储器装置、存储器控制方法和程序的制作方法
技术领域
本发明涉及存储器装置、存储器控制方法和程序。更具体地,本发明涉 及具有如闪存的非易失存储器的存储器装置、以及用于该存储器装置的存储 器控制方法和程序。
背景技术
存在多种存储器装置,其每个包含闪存并且用作如个人计算机、数字静 态相机、数字摄像机、以及音频记录器的设备使用的外部存储设备。闪存是 允许数据随机地以簇为单位写入到其并且从其读取的存储器。数据不是随机 地而是以块为单位从闪存删除闪存中的存储单元通过重复的数据更新而劣化。由于此原因,对闪存的 更新操作的次数是有限的。也就是说,避免集中在相同簇上的访问,以便延
更新数据不被写入相同的物理块,而是写入新删除状态的另一个物理块(即, 空闲块)。
使得在数据更新前分配给所述的逻辑地址的物理地址与在更新后分配给 该逻辑地址的物理地址不同。通过使用内部存储的地址转换表的闪存实现了 该特征,所述地址转换表表示逻辑和物理地址之间对应的关系。当存储器装 置附接到主机设备时,从闪存读取该地址转换表,加载到主机设备或存储器 装置的工作存储器,并且在其中更新。
在普通的存储器装置中,即使少数扇区的数据更新也涉及在整个物理块 中重写数据。对块的访问耗时并且促使其中的存储单元的劣化。为了最小化 该缺点,闪存中的每个块被划分为报头区域和数据区域。要写入到数据区域 的数据记录的起始地址和记录长度被写入相应的报头区域,并且数据区域中 的数据记录提供有链接信息区域和标记区域。因此数据以数据记录为单位被 写入和更新。当当前块变为耗尽的时,取回有效的数据记录并且转移到空闲
块,并且删除从其取回记录的块。该技术说明性地在日本专利公开No. Hei
11-73363 (以下称为专利文献l)中7>开。

发明内容
由如上面概述的报头区域和数据区域组成的每个块形成的闪存因而具有 为每个块建立的报头区域、链接信息区域、以及标记区域。上面的专利文献 1中的技术趋于減小容纳数据的存储器容量,并且不利于存储器的有效使用。
为了克服上述技术的缺点,本申请人提出了在日本专利公开No. 2006-48227 (以下称为专利文献2 )中公开的数据处理系统。该数据处理系统 包括提供逻辑/物理表,其中逻辑块的地址、物理块的地址、以及物理块的结 束簇数目相互关联。在操作中,如果基于写入指令要写入的数据的起始簇数 目SC高于逻辑/物理表中的物理块的结束簇数目EC,那么数据被添加到物理 块而不执行普通的物理块更新(即,写入新的数据到新的物理块并且复制原 始物理块)。
在上面的专利文献2中提出的数据处理系统减少了删除闪存的次数,并 且有效地在闪存中更新数据而不显著地减小闪存容量,由此减轻了存储器单 元的劣化并且加速地存储器中数据的访问。
上面的数据处理系统具有许多特性。在使用非易失性存储器作为其记录 介质的系统的存储器装置中的数据不能被覆盖。数据以不同于删除数据的单 位的单位被写入(即,写入单位小于删除单位)。数据可以被添加到非易失性 存储器的每个块内。
利用FAT (文件分配表)文件系统的存储器装置要求与写入文件数据并 行地更新如FAT和目录条目的管理信息。除了用于用户的数据区域外,保持 管理信息的记录设备在存储器内具有用于存储管理信息的区域。每次从主机 设备执行文件数据写入,在闪存中更新管理信息。
包含高速缓沖存储器块的存储器装置在每个高速缓沖存储器块内以簇为 单位保持数据。逻辑和物理地址之间的对应在高速緩沖存储器块中固定(即, 逻辑地址以从物理地址的开头开始的升序分配)。
在这些情况下,上述数据处理系统需要在文件数据的写入操作期间对超 过指定逻辑边界(即,以多个扇区为单位的逻辑空间大小)的连续的逻辑地
址执行写回(write-back),即使更新大小小于簇大小。该写回操作导致能够 缩短产品寿命的块删除。写回还包括碎片(garbage)收集和数据擦除,这能
够导致写入性能的下降。
如FAT和目录条目的管理信息结合文件数据的写入被更新。因为要写入 的文件的大小小于指定逻辑边界,该指定逻辑边界组成以多个扇区为单位的 逻辑空间,所以访问集中在相同的逻辑地址空间。这导致频繁的数据覆盖。
由于这些原因,无论何时数据被写到曾经被写的逻辑空间,上述数据处 理系统被强迫对高速緩冲存储器块执行写回操作。写回触发器阻止缩短产品 寿命的删除。写回还包括碎片收集和数据擦除,这可能导致写入性能的下降。
因为非易失性存储器(NAND型闪存)中的数据不能被覆盖并且因为以 块为单位删除数据,所以无论何时发生数据更新,逻辑/物理表都必须在存储 器装置内部保持一致。这意味着写入数据需要以块为单位保存在别处,而不 管要更新的数据的大小。
此外,不同于更新数据的数据需要通过数据的碎片收集从原始块复制。 在更新后,出现包含不需要的数据并且需要被删除的块。关于这一点,每块 能被删除的可允许的次数是有限的。
本申请人然后提出了一种旨在克服上述缺点的存储器装置和存储器控制 方法(在日本专利公开No. 2007-156633中,以下称为专利文献3)。提出的 装置和方法被设计来抑制写回操作,从而阻止碎片收集和数据擦除,并且最 小化写入性能的降低。尽管如此,提出的装置和方法具有以下缺点
根据上述技术,如果写入数据已经停止没有达到指定逻辑边界,那么数 据被保存到称为OD高速緩沖存储器的高速緩冲存储器块。管理信息以允许 逻辑空间(逻辑空间A)的开头和末尾在OD高速緩冲存储器中识别的方式 注册。因为只有一个逻辑空间可以被注册,所以如果在相同的块中发生写入 到不同的逻辑空间B,则必须执行写回。尽管该问题可以通过增大管理信息 的大小来避免,但这花费更长时间来保存膨胀的管理信息,并且保存管理信 息的处理需要被更频繁地执行。这导致当写回操作不发生时写入性能的下降。
本发明已经根据上面的情况做出,并且提供一种存储器装置、存储器控 制方法和程序,用于可靠地减小写回操作的频率,从而阻止当写回操作不发 生时写入性能的下降。
在执行本发明中并且根据本发明的一个实施例,提供了 一种存储器装置, 包括非易失性存储器,配置来允许以簇为单位向其写入数据和从其读取数 据,并且允许以多个扇区组成的块为单位从其删除数据;以及控制电路,配 置来控制对非易失性存储器的访问操作;其中该非易失性存储器包括管理 区域,其中记录管理信息;用户数据区域,其中记录来自用户的数据;以及 高速緩冲存储器区域,其中暂时保持要被写入用户数据区域和从用户数据区 域读取的数据;其中管理区域包括逻辑/物理表,其与分配给逻辑块的物理块 的地址相关联地存储用户数据区域中的逻辑块的地址,以及对应于逻辑/物理 表中的物理块的地址的高速緩冲存储器区域中的物理块的地址;并且其中, 一旦写入大小小于在用户数据区域中的用户块中以多个扇区为单位组成逻辑 空间大小的指定的逻辑大小,控制电路就在写入部分管理信息到保持数据的 高速緩沖存储器块的同时,保存数据到适当选择的高速緩沖存储器块。
优选地,控制电路可以在维持用于保存管理信息的非易失性存储器的大 小的同时,将数据保存在高速緩沖存储器块中的多个逻辑空间中。
优选地,根据高速緩沖存储器块中的管理信息,控制电路可以确定额外 的数据是否可以写入选择的高速緩沖存储器块,并且如果发现可以写入额外 的数据到高速緩冲存储器块,那么在向其添加写入数据之前写入额外的管理 信息到高速緩冲存储器块。
优选地,如果发现可以写入额外的数据到高速緩冲存储器块,那么在写 入额外的管理信息到高速緩冲存储器块和向其添加写入数据之前,控制电路 可以更新管理区域中的管理信息。
储器块,并且如果发现不能写入额外的数据到高速緩冲存储器块,那么确定 在高速緩冲存储器块中注册的多个逻辑空间的数目是否大于预定的数目;并 且其中,如果发现多个逻辑空间的数目小于预定的数目,那么控制电路可以 复制保存在高速緩冲存储器块中的有效数据到新的高速緩冲存储器块,并且 在复制到新的高速緩冲存储器块后添加关于状态的管理信息。
优选地,如果在高速緩沖存储器块中存在多个管理信息项,那么控制电 路可以使最近写入的管理信息项有效。
优选地,控制电路可以在向高速緩沖存储器块添加写入数据之前,写入 额外的管理信息到新的高速緩冲存储器块。
根据本发明的另 一个实施例,提供了 一种用于非易失性存储器的存储器 控制方法,该非易失性存储器配置来允许以簇为单位向其写入数据和从其读
存储器包括管理区域、用户数据区域以及高速緩沖存储器区域,该存储器管 理方法包括以下步骤记录逻辑/物理表,该逻辑/物理表与分配给逻辑块的物 理块的地址相关联地存储用户数据区域中的逻辑块的地址,以及对应于逻辑/
物理表中的物理块的地址的高速緩沖存储器区域中的物理块的地址;以及一 旦写入大小小于在用户数据区域中的用户块中以多个扇区为单位组成逻辑空 间大小的指定的逻辑大小的数据,就在写入部分管理信息到保持数据的高速 緩冲存储器块的同时,保存数据到适当选择的高速緩冲存储器块。
根据本发明的另 一个实施例,提供一种用于使得计算机对非易失性存储 器执行存储器控制处理的程序,该非易失性存储器配置来允许以簇为单位向 其写入数据和从其读取数据,并且允许以多个扇区组成的块为单位从其删除 数据,该非易失性存储器包括管理区域、用户数据区域以及高速緩冲存储器 区域,该存储器管理方法包括以下步骤记录逻辑/物理表,该逻辑/物理表与 分配给逻辑块的物理块的地址相关联地存储用户数据区域中的逻辑块的地 址,以及对应于逻辑/物理表中的物理块的地址的高速緩沖存储器区域中的物 理块的地址;以及一旦写入大小小于在用户数据区域中的用户块中以多个扇 区为单位组成逻辑空间大小的指定的逻辑大小的数据,就在写入部分管理信 息到保持数据的高速緩冲存储器块的同时,保存数据到适当选择的高速缓冲 存储器块。
其中本发明如上所述实现,部分管理信息保存在预定的高速緩冲存储器 块中。也就是说,部分管理信息存储到其中保存用户数据的块中。这使得可 以在保持用于在非易失性存储器中保存管理数据的完整大小的同时,在高速 緩沖存储器块中的保留多个逻辑空间,从而减少写回操作发生的次数。
根据本发明,如上所述,可靠地降低了写回操作的频率。这依次在抑制 写回的同时防止写入性能的降低。


图1是概述实现本发明的数据处理系统的典型配置的示意图; 图2是示出存储卡的典型结构的方块图3是示出用户数据块和高速緩沖存储器块之间典型的对应关系的示意
图4是组成写入处理的各步骤的流程图5是组成写入处理的其它步骤的流程图6是组成写入处理的其它步骤的流程图; 图7是组成写入处理的其它步骤的流程图; 图8是组成写入处理的其它步骤的流程图9A和9B每一个是示出具有从主机写入(以2个模式)的数据、处于 满状态的高速緩沖存储器块(AD-高速緩冲存储器)的示意图IO是示出在步骤S14中写入时高速緩冲存储器块的状态和用户数据块 的状态的示意图11是示出满足在步骤S22中写入的条件的典型的写入模式的示意图; 图12是示出在步骤S23中写入时高速緩冲存储器块的状态和用户数据块 的状态的示意图13是示出在步骤S25中写入时高速緩沖存储器块的状态和用户数据块 的状态的示意图14是示出在步骤S11中写入时高速緩冲存储器块的状态和用户数据块 的状态的示意图15是示出满足在步骤S31中写入的条件的典型的写入模式的示意图; 图16是示出在步骤S33中写入时高速緩冲存储器块的状态和用户数据块 的状态的示意图17是当满足写入到高速緩冲存储器块(OD-高速缓冲存储器)的条件
时要执行的各步骤的流程图18是示出满足在步骤S35中写入的条件的典型的写入模式的示意图; 图19是示出在步骤S3501中处于满状态(模式2)高速緩冲存储器块的
状态的示意图20是示出用于本发明的实施例的OD管理信息的典型结构的示意图21是示出当OD管理信息要在步骤S3502中写入高速緩冲存储器块 (OD-高速緩冲存储器)时有效的典型状态的示意图22是示出当OD管理信息要在步骤S3503中写入高速緩冲存储器块 (OD-高速緩冲存储器)时有效的典型状态的示意图23是示出多个逻辑数据如何在步骤S3505中写入高速緩沖存储器块 (OD-高速緩冲存储器)的示意图24是示出在有效数据在步骤S3506中被复制到新的高速缓冲存储器块
(OD-高速緩冲存储器)后有效的典型状态的示意图25是示出在步骤S39中写入时高速缓冲存储器块的状态和用户数据块 的状态的示意图26是示出在步骤S41中写入前高速緩冲存储器块的状态和用户数据块 的状态的示意图27是示出在步骤S41中写入后高速緩沖存储器块的状态和用户数据块 的状_态的示意图28是示出在步骤S36中写入前高速緩冲存储器块的状态和用户数据块 的状态的示意图29是示出在步骤S36中写入后高速緩冲存储器块的状态和用户数据块 的状态的示意图;以及
图30是组成以逻辑块为单位的写入处理的各步骤的流程图。
具体实施例方式
现在将结合附图描述本发明的优选实施例。图l是概述实现本发明的数 据处理系统的典型配置的示意图。
如图l所示,数据处理系统由两个主要组件组成主机设备IO、以及可 以可移除地附接到主机设备10的存储卡20。在本实施例中,存储卡20包括 为非易失性存储器的闪存。
主机设备IO典型地由如个人计算机、数字静态相机、数字摄像机、或数 字音频记录器的设备构成。主机设备10包括CPU 11、存储器12、显示单 元13、输入/输出(1/0)部分14、以及外部存储器接口 15。
CPU 11通过总线16与存储器12、显示单元13、输入/输出(1/0)部分 14、以及外部存储器接口 15连接。存储器12具有用于存储程序的ROM和 用作工作存储器的RAM。外部存储器接口 15根据来自CPU 11的指令发送数 据到存储卡20并且从存储卡20接收数据。
存储卡20包括CPU21、存储器22、闪存23、以及主机接口 24。
CPU 21通过总线25与存储器22、闪存23、以及主机接口 24连接。存 储器22具有用于存储程序的ROM和用作工作存储器的RAM。闪存23典型 地是NOR或NAND型闪存(非易失性存储器)。主机接口 24根据来自CPU21 的指令发送数据到主机设备10并且从主机设备IO接收数据。
图2是示出图1中的存储卡20的典型结构的方块图。如图2中所示,存 储卡20图示为板状记忆棒(注册商标)。当存储卡20附接到主机设备10时, 由主机设备10提供的数据被写入到存储卡20。存储卡20具有控制器部分30 和存储器部分40。存储器部分40包括多个闪存23,并且对闪存23的访问由 控制器部分30控制。
控制器部分30包括串行接口31、并行接口32、寄存器33、数据緩冲 器34、纠错电路(ECC) 35、微处理单元(MPU) 36、以及时钟信号发生器 37。串行接口 31、并行接口 32、寄存器33、数据緩冲器34、以及ECC 35 经由总线38相互互连。寄存器33、数据緩冲器34和ECC 35连接到MPU 36。
寄存器33包括指令寄存器和其它寄存器。数据緩冲器34暂时保持与闪 存23有关的被访问的数据。ECC 35对保持在数据緩冲器34中的数据执行纠 错处理。时钟信号发生器37生成用于记忆棒内部的时钟信号。
由主机设备10输出的数据通过信号线DATAO到DATA3输入到串行接 口 31和并行接口 32的任一或两者。数据从那里被传输到数据緩冲器34。数 据緩冲器34中的数据通过MPU 36被写入到闪存23。
存储卡20经由信号线VSS和VCC提供有基准电压和源电压。存储卡 20还装备有其它信号线信号线SCLK,通过其输入从主机设备10输入数据 所需的时钟信号;信号线INS,用于检查以确定存储卡20是否被正常地附接 到主机设备10;以及信号线BS,用于确定从主机设备IO提供的数据的方向。
以下是由数据处理系统执行的写入操作的概述。主机设备10首先发送跟 随有写入数据的写入命令和写入数据地址到存储卡20。每个闪存23具有以 扇区为单位向其写入和从其读取的数据,而主机设备10以簇为单元写入和读 取数据。由存储卡20接收的写入数据因而被放置在数据緩冲器34中。当写 入数据的接收完成时,保持在数据缓冲器34中的写入数据被写入到闪存23。
下面概述由数据处理系统执行的读取操作。主机设备10首先发送读取命 令和读取数据地址到存储卡20。 一旦接收命令和地址,所述的(in question) 数据就从闪存23读取并且放置在数据緩冲器34中。当完成从闪存23读取所 述的数据时,保持在数据緩冲器34中的读取数据从那里发送到主机设备10。
下面概述实现本发明的存储器控制方法。图3是示出用户数据块和高速 缓冲存储器块之间典型的对应关系的示意图。在图3中,参考标号51代表逻 辑/物理表,而参考标号52表示高速緩冲存储器块。
图1和2中示出的闪存23保持表示图3中指示的用户数据块的物理和逻 辑地址之间的对应关系的逻辑/物理表51。在逻辑/物理表51中,逻辑块的地 址0、 1、 2、 3、 4和5说明性地与分配给逻辑块的物理块的地址3、 8、 7、 6、 5和4相关联。当存储卡20附接到主机设备10时,由控制部分30从闪存23 读取逻辑/物理表51并且更新,从而与数据写入操作一致。
逻辑/物理表51中的物理块地址3、 8、 7、 6、 5和4的每个与高速緩沖 存储器块52中的物理地址2、 1、 0和9之一相关联。高速緩冲存储器块中的 物理地址2、 1、 0和9以使用频率的升序排列,如由参考标号53所示。
例如,假设物理块地址8、 7、 6和4表示空闲区域中的物理块的地址。 在此情况下,空闲块(即,无数据的高速緩冲存储器区域)的新的高速緩冲 存储器块52中物理地址2、 1、 0和9被分别分配给物理块地址8、 7、 6和4。 在高速緩冲存储器区域中的新的高速緩沖存储器块52中,物理地址2、 1、 0 和9以使用频率的升序排列。这使得数据可以从高速緩冲存储器块52的起始 开始写入。
以下是实现本发明的存储器控制方法的前提的描述。在随后描述中要使 用的主要术语在下面定义。
在图2中的如存储卡20的存储器装置中的多个闪存23每个包括管理 区域41、用户数据区域42、以及高速緩冲存储器区域43。在用户数据区域 42中的块称为用户数据块,而在高速缓冲存储器区域43终端块称为高速缓 冲存储器块。高速緩冲存储器块在大小上与用户块相等。当每个高速緩冲存 储器块的逻辑空间被划分为各用户块时,每个分区具有称为逻辑块大小的大 小。当每个用户块的逻辑空间划分为多个扇区时,每个分区具有称为逻辑页 大小(也称为指定的逻辑边界)的大小。已经从其删除数据的块称为空闲块。 从这种空闲块获得新的高速緩冲存储器块。
写回操作涉及将高速緩冲存储器块中保持的数据写回到用户数据块,从 而终止高速缓冲存储器块的使用。这使得必须将用户数据块中的数据与高速 缓冲存储器块中的数据合并。该合并触发复制操作。跟随该合并,已经变为 不需要的块需要被删除。还存在称为碎片收集的操作。这是执行写回所需的 复制操作。
随后是高速緩冲存储器块的描述。存在两种高速緩冲存储器块AD-高 速緩沖存储器和OD-高速緩冲存储器。可用的高速缓冲存储器块的总数是固
定的。AD-高速緩冲存储器的数目和OD-高速緩冲存储器的数目随着由主机
设备执行的写入操作变化。
AD-高速緩沖存储器是设计来保持文件数据的高速缓冲存储器块。OD-高速緩冲存储器或AD-高速緩沖存储器依赖于写入大小识别。如果当在获得 新的高速緩冲存储器块后执行写入操作时,超过指定的逻辑边界(逻辑页大 小)则识别AD-高速缓冲存储器。
取决于首先写入数据的逻辑地址,AD-高速緩沖存储器中写入数据的随 后的逻辑地址被限制。如果首先写入数据的逻辑地址空间是给定的逻辑块大 小空间(A)内,并且如果接下来写入凄t据的逻辑地址是逻辑空间(A)内并 且是高速緩冲存储器块的写入逻辑空间外,那么可以写入数据到该高速緩沖 存储器块。
OD-高速緩沖存储器是设计来保持如FAT和目录条目的管理信息的高速 緩冲存储器块。OD-高速緩冲存储器或AD-高速緩冲存储器依赖于写入大小 识别。如果当在获得新的高速緩沖存储器块后执行写入操作时,未超过指定 的逻辑边界(逻辑页大小)则识别OD-高速緩沖存储器。
取决于首先写入数据的逻辑地址,OD-高速緩冲存储器中写入数据的随 后的逻辑地址被限制。如果首先写入数据的逻辑地址空间是给定的逻辑块大 小空间(B)内,并且如果接下来写入数据的逻辑地址是逻辑空间(B)内, 那么可以写入数据到该高速緩冲存储器块。
下面作为管理信息部分解释高速緩沖存储器块相关的信息。管理信息包 括指示高速緩冲存储器块更新的频率的信息、表示高速緩冲存储器块对应的 逻辑块的信息、以及关于高速緩冲存储器块中第一逻辑地址的信息。
关于高速緩冲存储器块中写入扇区的地址信息不包括在管理信息中,通 过高速緩冲存储器块之内的读取来获取写入扇区地址。指示所述的高速緩冲 存储器块是AD-高速缓冲存储器或OD-高速緩冲存储器的信息也包括在管理 信息中。
现在将描述存储器控制方法的特定操作。图4到图8是指示写入处理的 流程图。图4到图8概述由CPU 21执行的各操作,用于写入数据到闪存23。
在图4的步骤Sl中,CPU 21从管理区域41中的管理信息获取关于用户 数据区域42中的用户数据的地址信息和写入逻辑空间信息。CPU 21还获取 高速緩冲存储器区域43中关于高速緩沖存储器块的地址信息和写入逻辑空
间信息、对应于用户数据区域42中的用户数据块的逻辑地址的地址信息。CPU 21还获取高速缓冲存储器区域43中关于新的高速緩沖存储器块(空闲块) 的地址信息。
在步骤S2中,CPU21检查以确定正被使用的高速緩冲存储器块中是否 存在任何分配的高速緩冲存储器块。在步骤S2中执行的是搜索如在图9A和 9B中示出的那些高速緩冲存储器块之一 的高速緩冲存储器块。
图9A和9B每一个是示出处于具有从主机写入(以2个模式)的数据的 满状态的高速緩冲存储器块(AD-高速緩冲存储器)的示意图。
图9A显示处于模式1的高速緩冲存储器块(AD-高速緩冲存储器)142, 其具有逻辑扇区地址0到"n",逻辑扇区地址0到"n"对应于用户数据块 141并且用从主机设备写入的写入数据143和数据144填满。
图9B显示处于模式2的高速緩沖存储器块(AD-高速緩冲存储器)146, 其具有逻辑扇区地址2到"n" 、 0和1,逻辑扇区地址2到"n" 、 0和1对应 于用户数据块145并且用从主机设备写入的写入数据147和数据148填满。
在图9A和9B中的任何高速緩冲存储器块状态下,没有另外的数据可以 被写入高速緩冲存储器块。因为不存在具有这种高速緩冲存储器块的点,所 以优选地对该高速緩冲存储器块执行写回操作。如果图9A和9B中的状态都 不适用,那么优选地对具有低使用频率的高速緩冲存储器块执行写回操作。
如果在步骤S2中没有发现分配的高速緩冲存储器块存在,那么到达S3。 在S3中,CPU 21检查以确定是否存在任何未使用的高速緩沖存储器块。如 果在步骤S3中发现存在未使用的高速緩沖存储器块,那么到达并且执行图5 中的步骤S10和随后的各步骤。如果在步骤S3中没有发现存在未使用的高速 緩沖存储器块,那么到达步骤S4。在步骤S4中,CPU21检查以确定是否存 在处于满状态的高速緩冲存储器块(AD-高速緩冲存储器)。
如果在步骤S4中没有发现处于满状态的高速緩沖存储器块(AD-高速緩 冲存储器),那么到达步骤S5。在步骤S5中,CPU 21获取具有低使用频率 的高速緩沖存储器块。在步骤S7中,CPU21执行写回,从而获取的具有低 使用频率的高速緩冲存储器块重新分配给用户数据块中的逻辑扇区地址。在 步骤S8中,CPU 21更新存储器22中的管理信息并且到达图5中的步骤SIO 和随后的各步骤。
如果在步骤S4中发现存在处于满状态的高速緩冲存储器块(AD-高速緩
沖存储器),那么到达步骤S6。在步骤S6中,CPU21在到达步骤S7前获取 处于满状态的高速緩冲存储器块。
如果步骤S2中发现存在分配的高速緩冲存储器块,那么到达步骤S9。 在步骤S9中,CPU 21检查以确定所述的高速緩冲存储器块是AD-高速緩冲 存储器或OD-高速緩冲存储器。如果在步骤S9中发现所述高速緩冲存储器块 是AD-高速緩沖存储器,那么到达并执行图6中的步骤S21和随后的各步骤。 如果在步骤S9中发现所述的高速緩冲存储器块是OD-高速緩冲存储器,那么 到达并执行图7中的步骤S31和随后的各步骤。
在图5的步骤S10中,CPU21检查以确定写入数据是否未达到(stopped short of)指定的逻辑边界。如果在步骤S10中发现写入数据已经超过指定的 逻辑边界,那么到达步骤S14。在步骤S14中,CPU21写入数据到新的高速 缓冲存储器块(AD-高速緩冲存储器)。在步骤S14中新的高速緩沖存储器块 (AD-高速緩冲存储器)的使用允许写入数据而不触发写回操作。在步骤S14 中,数据从高速緩冲存储器块的起始开始写入而不管逻辑地址。
图10是示出在步骤S14中写入时高速緩冲存储器块的状态和用户数据块 的状态的示意图。假设在图10中数据说明性地写入到用户数据块111中的逻 辑扇区地址2到5。因而随着数据写入,在从块的起始开始的高速缓冲存储 器块112中逻辑扇区地址2到5被写入,而其余的高速緩冲存储器块維持空 白。
在步骤S14中的写入操作后,到达步骤S15。在步骤S15中,CPU21更 新存储器22中的管理信息,因为高速緩冲存储器块112已经重新分配到用户 数据块lll。在步骤S16中,CPU21写入管理信息到管理区域41。
在图6的步骤S21中,CPU21检查以确定高速緩冲存储器块(AD-高速 緩沖存储器)是否具有它的写入区域独自处于满状态。如果在步骤S21中没 有发现高速緩沖存储器块(AD-高速緩冲存储器)具有它的写入区域独自处 于满状态,那么到达步骤S22。在步骤S22中,CPU21检查以确定写入到高 速缓冲存储器块(AD-高速緩冲存储器)的条件是否满足。
如果在步骤S22中发现满足写入到高速緩冲存储器块(AD-高速緩沖存 储器)的条件,那么到达步骤S23。在步骤S23中,CPU21执行对高速緩沖 存储器块(AD-高速緩冲存储器)的写入操作。在步骤S24中,CPU21更新 存储器21中的管理信息。
在步骤S22中执行的是确定要写入数据的逻辑空间是否适于逻辑空间81 到84之一,逻辑空间81到84在图11中示出并且相对于高速緩沖存储器块 中的写入逻辑空间不同地定位。
图11是示出满足在步骤S22中写入的条件的典型的写入模式的示意图。 在图11中,参考标号81表示在数据开始被写入写入空间86中的写入扇区后 的情况;参考标号82代表在数据开始被写入紧接写入空间86中的写入扇区 后的情况;参考标号83代表从主机设备写入的数据已经停止没有达到写入空 间86中的写入扇区的情况;以及参考标号84指示从主机设备写入的数据已 经紧接着写入空间86中的写入扇区前停止的情况。
在步骤S23中执行的是写入数据到分配的高速緩冲存储器块而不求助写 回操作。在步骤S23中,数据开始被紧接着高速緩冲存储器块内的写入扇区 后写入。如果不能紧接着写入扇区开始写入数据,那么复制直到写入开始扇 区地址的数据区域。
图12是示出在步骤S23中写入时高速緩冲存储器块的状态和用户数据块 的状态的示意图。说明性地,假设图IO的状态有效,在用户数据块121中的 逻辑扇区地址7和8发生写入操作。在此情况下,随着写入操作完成,写入 到高速緩冲存储器块122中逻辑扇区地址2到5的数据123由从用户数据块 121复制到逻辑扇区地址6的数据124跟随。数据]24后是从主机设备写入 到逻辑扇区地址7和8的数据125。
在步骤S23中的写入后,在高速緩冲存储器块中不存在块地址改变。这 引起对管理区域41的任何写入操作以保存管理信息;只有存储器22中的管 理信息在步骤S24更新。如果在步骤S21中发现高速緩冲存储器块(AD-高 速緩沖存储器)具有它的写入区域独自处于满状态,或如果在步骤S22中没 有发现满足写入数据到高速緩冲存储器块(AD-高速緩沖存储器)的条件, 那么到达S25-1。在步骤S25-1中,CPU 21检查以确定写入大小是否等于逻 辑块大小。如果在步骤S25-l中发现写入大小不等于逻辑块大小,那么到达 步骤S25并且CPU21执行写回操作。在步骤S26中,CPU 21更新存储器22 中的管理信息。
在步骤S25中执行的是随着写回操作执行,假若高速緩沖存储器块(AD-高速緩冲存储器)是图9A和9B中示出的满状态之一,则执行写回操作而不 触发碎片收集。在这一点上,高速缓冲存储器块在管理块中注册作为用户数
据块。删除在写回前有效的用户数据块的内容,并且作为结果的用户数据块 注册为管理信息中的空闲块。
即使没有发现高速緩沖存储器块(AD-高速緩冲存储器)处于满状态,
也可以在步骤S25中执行碎片收集以使高速緩冲存储器块处于满状态。如果 在步骤S25-l中发现写入大小等于逻辑块大小,那么数据在图8的步骤S41 中被写满到新的高速緩沖存储器块(AD-高速緩冲存储器)。在步骤S42中, CPU 21检查以确定是否分配高速緩冲存储器块(AD-高速緩沖存储器)。
如果在步骤S42中发现分配高速緩冲存储器块(AD-高速緩冲存储器), 那么到达步骤S43。在步骤S43中,CPU 21删除分配的高速緩沖存储器块(AD-高速緩沖存储器)。在步骤S43中删除高速緩沖存储器块(AD-高速緩冲存储 器)后,CPU 21到达步骤S44并且更新存储器22中的管理信息,因为分配 到用户数据块111的高速緩冲存储器块112已经被删除。在步骤S45中,CPU 21写入管理信息到管理区域4L
如果在步骤S42中发现没有分配高速缓冲存储器块(AD-高速緩沖存储 器),那么到达步骤S46。在步骤S46中,CPU21更新存储器22中的管理信 息,因为关于用户数据块111存在未分配的高速緩沖存储器块112。在步骤 S47中,CPU 21写入管理信息到管理区域41。
如所述,随着高速緩沖存储器块(AD-高速緩沖存储器,或之后要讨论 的AD-高速緩冲存储器)已经分配,发生伴随着写回操作的写入操作。在此 情况下,如果发现写入大小等于逻辑块大小,那么数据被写入新的高速緩冲 存储器块而不求助写回,并且删除旧的高速緩冲存储器块。
因为在上面的情况中抑制了写回操作,所以避免了可归因于碎片收集的 写入性能的下降。应该注意,发生了删除操作。由于不管是否分配高速緩冲 存储器块(AD-高速緩冲存储器或OD-高速緩沖存储器)都没有碎片收集, 性能保持恒定。
图13是示出在步骤S25中写入时高速緩沖存储器块的状态和用户数据块 的状态的示意图。在图13中说明了具有逻辑扇区地址0到"n"的用户数据 块131与在逻辑扇区地址2到7具有写入数据133的高速緩冲存储器块132 并置(juxtapose )。在此情况下,在其它逻辑扇区地址8到"n"、 0和1的数 据被从用户数据块131复制到高速緩冲存储器块132,如由参考标号134所 示。这使高速緩冲存储器块132处于满状态,使得可以执行写回操作来重新
分配高速緩冲存储器块。
换句话说,如图13中所示,在用户数据块131中的所有数据被复制到高
速緩沖存储器块132。在该复制操作后,在存储器22中的管理信息中高速緩 冲存储器块132注册为用户数据块131。在该复制前有效的用户数据块的内 容被删除,并且在存储器22中的管理数据中注册为空闲块。
前面已经对关于超过指定的逻辑边界的写入操作作了描述。以下是对落 入没有达到指定的逻辑边界的写入操作的描述。
如果在图5的步骤S10中发现写入数据未没有达到指定的逻辑边界,那 么到达步骤Sll。在步骤S11中,CPU21写入数据到新的高速緩冲存储器块 (OD-高速緩冲存储器)。该新的高速緩冲存储器块(OD-高速緩沖存储器) 用于步骤Sll中的写入操作,以便避免写回操作。在步骤Sll中,数据从高 速緩冲存储器块的起始开始写入,而不管逻辑地址。
图14是示出在步骤S11中写入时高速緩沖存储器块的状态和用户数据块 的状态的示意图。在图14中说明性地,假设对用户数据块151中的逻辑扇区 地址2执行写入操作。在写入操作后,从主机设备写入到高速缓沖存储器块 152中的逻辑扇区地址2的数据153,跟随有从用户数据块151复制到逻辑扇 区地址3的数据,如由参考标号154所示。两个数据的扇区合并以形成指定 的逻辑边界155。其余的高速緩冲存储器块维持没有数据。
在步骤Sll中的写入操作后,CPU 21到达步骤S12并且更新存储器22 中的管理信息,因为高速緩沖存储器块152已经重新分配到用户数据块l51。 在步骤S13中,CPU 21写入管理信息到管理区域41。
在步骤Sll中执行的是不伴随写回操作的写入操作,因为高速緩沖存储 器块被用来处理写入的没有达到指定的逻辑边界的数据。在步骤Sll中,数 据从高速緩冲存储器块的起始开始写入,而不管逻辑地址。
说明性地,如果对图14中代表组成指定的逻辑边界155的两个扇区的逻 辑扇区地址2执行写入操作,那么在该写入操作后,高速緩冲存储器块152 出现在图14中示出的状态中。也就是说,在逻辑扇区地址2的数据被写入高 速緩沖存储器块152的起始,并且在逻辑地址3的数据从用户数据块151中 的任何数据复制。在写入和复制操作后,更新存储器22中的管理信息,以便 反映新分配的高速缓冲存储器块152。管理信息也被写入到管理区域41。
在图7的步骤S31中,CPU21检查以确定是否满足写入到高速緩冲存储
器块(OD-高速緩沖存储器)的条件。如果在步骤S31中发现满足写入到高
速緩冲存储器块(OD-高速緩沖存储器)的条件,那么到达步骤S32。在步骤 S32中,CPU 21检查以确定高速緩冲存储器块(OD-高速缓沖存储器)是否 使它的写入区域独自处于满状态。
如果在步骤S32中没有发现高速緩冲存储器块(OD-高速緩沖存储器) 只使写入区域处于满状态,那么到达步骤S33。在步骤S33中,CPU21对高 速緩冲存储器块(OD-高速緩沖存储器)执行写入操作。在步骤S34中,CPU 21更新存储器22中的管理信息。
在步骤S31中执行的是确定要写入数据的逻辑空间是否适于逻辑空间91 到92之一,逻辑空间91到92在图15中示出并且相对于高速緩冲存储器块 中的写入逻辑空间不同地定位。
图15是示出满足在步骤S31中写入的条件的典型的写入^t式的示意图。 在图15中,参考标号91表示数据被写入写入空间94中的情况,而参考标号 92代表数据被写入与写入空间94相同的区域中的情况。
在步骤S33中执行的是到对分配的高速緩冲存储器块执行写入操作而不 触发写回操作。在步骤S33中,数据开始被紧接着高速緩冲存储器块内的写 入扇区后写入。
图16是示出在步骤S33中写入时高速緩冲存储器块的状态和用户数据块 的状态的示意图。说明性地,假设在图16的状态中,数据再次写入用户数据 块161中的逻辑扇区地址2。在此情况下,在写入完成后,写入到高速緩沖 存储器块162中逻辑扇区地址2和3的数据163跟随有从主机设备写入到逻 辑扇区地址2的数据,如由参考标号164所示。数据从用户数据块复制到逻 辑扇区地址3,如由参考标号165所示。此后,由参考标号164和165指示 的逻辑扇区地址2和3组成指定的逻辑边界166。
在步骤S33中的写入后,在高速緩冲存储器块中不存在块地址改变。这 不引起对管理区域41的任何写入操作以保存管理信息;只有存储器22中的 管理信息在步骤S34更新。
如果在步骤31中发现不满足写入到高速緩冲存储器块(OD-高速緩沖存 储器)的条件,那么到达步骤S35。在步骤S35中,CPU21检查以确定是否 满足写入到高速緩冲存储器块(OD-高速緩沖存储器)的条件。
如果在步骤S35中发现满足写入到高速緩沖存储器块的条件,即,如果
从主机写入数据的范围落入指定的逻辑边界大小内,那么到达并执行图17的
各步骤。如果发现写入范围超过指定的逻辑边界的大小,那么到达步骤S39-l 。 图18是示出满足在步骤S35中写入的条件的典型的写入模式的示意图。 在步骤S35中执行的是确定要写入数据的逻辑空间是否适于逻辑空间101-1、 101-2、 102-1和102-2之一,逻辑空间101-1、 101-2、 102-1和102-2在图18
中示出并且相对于高速緩冲存储器块中的写入逻辑空间不同地定位。
图17是当满足写入到高速緩冲存储器块(OD-高速緩沖存储器)的条件 时要执行的各步骤的流程图。以下是对由图17中的各步骤组成的处理的流程 的描述。
在图17的步骤S3501中,进行检查以确定是否能够从主机设备写入额外 的数据到高速緩冲存储器块(OD-高速緩冲存储器)。当执行该检查时,还考 虑如图19中所示的要写入到高速緩冲存储器块(OD-高速緩冲存储器)的 OD管理信息。如果在步骤S3501中发现额外的数据可写到高速緩冲存储器 块,那么到达步骤S3502。如果在步骤S3501中发现额外的数据不可写到高 速緩冲存储器块,那么到达步骤S3505。
图19是示出在步骤S3501中处于满状态(模式2)的高速緩冲存储器块 的状态的示意图。在此情况下,空闲空间的大小小于写入大小和OD管理信 息大小的和。
在步骤S3502中,如图20中所示的一个并且放置于RAM中的OD管理 信息110 (指示OD-高速緩沖存储器中写入数据的物理地址)被更新,因为 数据被写入到不同于当前写入数据的逻辑空间的逻辑空间。在此更新后,OD 管理信息被添加到高速緩冲存储器块(OD-高速缓沖存储器),并且到达步骤 S3503。
OD管理信息110被保存到闪存,使得一旦启动,高速緩冲存储器块(OD-高速缓冲存储器)中的有效数据的物理地址就能够被快速地获取。不需要读 取整个高速緩冲存储器块(OD-高速緩冲存储器)。尽管由于对闪存的写入操 作出现有限量的开销,但当与普通的写回操作比较时该操作的影响可以忽略。
图20是示出用于本发明的实施例的OD管理信息的典型结构的示意图。 该OD管理信息用于管理块大小,并且由逻辑扇区地址和对应于逻辑扇区地 址的物理扇区地址组成。如果没有注册地址,那么OD管理信息由指示没有 注册的设置构成。
图21是示出当OD管理信息要在步骤S3502中写入高速緩冲存储器块 (OD-高速緩沖存储器)时、典型的有效状态的示意图。在此情况下,指定 的逻辑边界在大小上等于OD管理信息。
在步骤S3503中,写入OD管理信息110到高速緩冲存储器块。然后额 外的数据从主机设备写入到高速緩沖存储器块,并且到达步骤S3504。
图22是示出当OD管理信息在步骤S3503中写入高速緩冲存储器块(OD-富娃续〉+在<法紧)时、i刑的右訪;l去'木^7^音图知闳?7+所A. 。D管理
信息首先写入高速缓冲存储器块,跟随有从主机设备写入的数据。
在步骤S3504中,更新RAM中的管理信息。
如果在步骤S3501中发现额外的数据不可写入高速緩冲存储器块,那么 到达步骤S3505。在步骤S3505中,进行检查以确定在高速緩冲存储器块(OD-高速緩沖存储器)注册的逻辑空间的数目是否大于预定数目。如果在步骤 S3505发现注册逻辑空间的数目大于预定数目,那么到达步骤S3511。如果在 步骤S3505发现注册逻辑空间的数目小于预定数目,那么到达步骤S3506。
图23是示出在步骤S3505中多个逻辑数据如何写入高速緩沖存储器块 (OD-高速缓冲存储器)的示意图。在此情况下,最近写入高速緩冲存储器 块的OD管理信息110变为有效。
在步骤S3506中,保持在高速緩冲存储器块(OD-高速緩沖存储器)中 的有效数据被复制到新的高速緩冲存储器块(OD-高速緩冲存储器)。此时还 更新RAM中的OD管理信息,并且到达步骤S3507。复制有效数据到新的高 速緩沖存储器块(OD-高速緩冲存储器)的原因如下在高速緩沖存储器块 (OD-高速緩冲存储器)中写入的数据包括FAT和其它涉及相同的逻辑地址 的频繁更新的条目。 一旦写入高速緩冲存储器块(OD-高速緩沖存储器),数 据就预期被频繁地更新,因而如果经历写回操作比如果复制(即,块中的所 有页面被复制,跟随有两块删除)引起更多的额外开销。
图24是示出在有效数据在步骤S3506中被复制到新的高速緩冲存储器块 (OD-高速緩冲存储器)后、典型的有效状态的示意图。 一旦复制有效数据, 就复制最近写入的有效OD管理信息110。用数据填满的逻辑扇区地址0到7 位于复制的OD管理信息之前。OD管理信息110之后是空闲空间。
在步骤S3507中,在有效数据被复制到新的高速緩沖存储器块(OD-高 速緩沖存储器)后有效的OD管理信息110另外写入新的高速緩冲存储器块 (OD-高速緩冲存储器)。步骤S3507跟随有步骤S3508。
在步骤S3508中,随着OD管理信息被保存,数据另外从主机设备写入 到新的高速緩冲存储器块。步骤S3508跟随有步骤S3509。
步骤S3511和随后的步骤与要在下面讨论的图7中的步骤S39和随后的 步骤相同。
如果在步骤S35中发现写入数据的范围不跟随高速緩冲存储器块(OD-高速緩冲存储器)中指定的逻辑边界,那么到达步骤S39-1。在步骤S39-1中, CPU21检查以确定写入大小是否等于逻辑块大小。如果在步骤S39-1中发现 写入大小不等于逻辑块大小,那么到达步骤S39,并且CPU21执行写回操作。 在步骤S40中,CPU 21更新存储器22中的管理信息。在步骤S39执行的是 获取当写回操作发生时用于执行写回的新的高速緩沖存储器块(AD-高速緩 沖存储器)。
图25是示出在步骤S39中写入时高速緩沖存储器块的状态和用户数据块 的状态的示意图。说明性地,在高速緩沖存储器块172中的逻辑扇区地址2 和3的数据首先复制到新的高速緩冲存储器块173,如参考标号174所示。 此后,在用户数据块171中的其它逻辑扇区地址4到"n"、 0和1的数据被 复制到新的高速緩冲存储器块173,如参考标号175所示。从图16的状态开 始,执行步骤S39中的写回操作导致图24中示出的状态。
在与步骤S39中的写回有关的复制操作之后,新的高速緩冲存储器块173 在管理信息中注册为用户数据块171。用户数据块171删除旧的内容,并且 在管理信息中注册为空闲块。
如果在步骤S32中发现高速緩沖存储器块(OD-高速緩冲存储器)独自 使它的写入区域处于满状态,那么到达步骤S41。在步骤S41中,CPU21对 新的高速緩冲存储器块(OD-高速緩沖存储器)执行写入操作。在步骤S41 中使用新的高速緩沖存储器块使得可能写入数据而不触发写回操作。在步骤 S41中,数据开始从高速緩冲存储器块的起始写入而不管逻辑地址。
在步骤S41中的写入操作后,到达步骤S42。在步骤S42中,CPU21更 新存储器22中的管理信息,因为高速緩冲存储器块已经重新分配给用户数据 块。在步骤S43中,CPU 21将管理信息写入到管理区域41。由于新获取的 高速緩冲存储器块(OD-高速緩冲存储器),在步骤S41中执行的是执行高速 緩沖存储器块更新而不触发写回操作。
图26是示出在步骤S41中写入前高速緩冲存储器块的状态和用户数据块 的状态的示意图。图27是示出在步骤S41中写入后高速緩沖存储器块的状态 和用户数据块的状态的示意图。
说明性地,假设在高速緩冲存储器块182和用户数据块181如图26中所 示形成的情况下,对逻辑扇区地址2执行另一个写入操作。在此情况下,如 图27中所示,数据从主机设备写入在高速緩冲存储器块193起始处的逻辑扇 区地址2,如参考标号194所示,跟随有从用户数据块191复制到逻辑扇区 地址3的数据。
在步骤S41中的复制操作后,新的高速緩冲存储器块193在管理信息中 注册为新的用户数据块。用户数据块19删除旧的内容并且在管理信息中注册 为空闲块。
如果在步骤S35中发现写入数据的范围跟随高速緩冲存储器块(OD-高 速緩沖存储器)中的指定的逻辑边界,那么到达步骤S36。在步骤S36中, CPU21对新的高速缓冲存储器块(OD-高速緩沖存储器)执行写入操作。在 步骤S36中使用新的高速緩冲存储器块使得可能写入数据而不触发写回操 作。在步骤S36中,数据开始从高速緩冲存储器块的起始写入而不管逻辑地 址。
图28是示出在步骤S36中写入前高速緩冲存储器块的状态和用户数据块 的状态的示意图。图29是示出在步骤S36中写入后高速緩冲存储器块的状态 和用户数据块的状态的示意图。
说明性地,假设在高速緩冲存储器块202和用户数据块201如图28中所 示形成的情况下,数据被写入用户数据块201中的逻辑地址5到7。在此情 况下,如图29中所示,在逻辑扇区地址2和3的数据从高速缓沖存储器块 212复制到新的高速緩沖存储器块213的起始,如参考标号214所示,跟随 有从用户数据块211复制到逻辑扇区地址4的数据,如参考标号215所示。 在数据215的复制后,数据从主机写入到逻辑扇区地址5到7,如参考标号 216所示。
在步骤S36中的写入操作后,到达步骤S37。在步骤S37中,CPU21更 新存储器22中的管理信息,因为高速緩冲存储器块213已经重新分配给用户 数据块211。在步骤S38中,CPU21写入管理信息到管理区域41。当在步骤 S35中的写入条件满足时,由于新获取的高速緩冲存储器块(AD-高速緩沖存
储器),在步骤S41中执行的是执行写入操作而不触发写回操作。
在步骤S36中的写入前,由参考标号214指示的数据从高速缓沖存储器 块212复制到新的高速緩冲存储器块213。然后从紧接在复制的数据214后 的扇区开始写入数据。如果数据不能紧接着复制的数据214后写入,那么用 户数据214被复制直到写入开始扇区地址。在步骤S36中的写入后,在管理 信息中新的高速緩冲存储器块213注册为新的高速緩冲存储器块212,并且 删除旧的高速緩冲存储器块212。
如果在步骤S39-l发现写入大小不等于逻辑块大小,那么到达步骤S41 。 在步骤S41中,CPU21将数据写满新的高速緩冲存储器块(AD-高速緩冲存 储器)。在步骤S42中,CPU 21检查以确定高速緩冲存储器块(AD-高速緩 冲存储器)是否已经分配。
如果在步骤S42发现分配了高速緩沖存储器块(AD-高速緩冲存储器), 那么到达步骤S43。在步骤S43中,CPU 21删除分配的高速緩冲存储器块(AD-高速緩冲存储器)。在步骤S43中删除分配的高速緩沖存储器块(AD-高速缓 沖存储器)后,CPU 21到达步骤S44。在步骤S44中,CPU 21更新存储器 22中的管理信息,以反映分配的高速緩沖存储器块112已经关于用户数据块 lll删除。在步骤S45中,CPU21写入管理信息到管理区域41。
如果在步骤S42发现没有分配高速緩沖存储器块(AD-高速緩冲存储 器),那么到达步骤S46。在步骤S46中,CPU21更新存储器22中的管理信 息,以反映(AD-高速緩冲存储器)关于用户数据块111未分配。在步骤S47 中,CPU21写入管理信息到管理区域41。
如所述,如果执行写入操作伴随有对已经分配的高速緩沖存储器块(OD-高速緩沖存储器或AD-高速緩冲存储器)的写回操作,并且如果发现写入大 小等于逻辑块大小,那么数据被写入新的高速緩冲存储器块而不求助于写回, 并且删除旧的高速緩冲存储器块。
因为在上面的情况中抑制了写回操作,所以避免了可归因于碎片收集的 写入性能的下降。应该注意,确实发生删除操作。由于没有碎片收集,性能 保持恒定而不管高速缓冲存储器块(AD-高速緩冲存储器)分配与否。
在写入数据没有超过给定的指定逻辑边界的情况下,部分管理信息保存 到高速緩沖存储器块(OD-高速緩冲存储器)中。更具体地,部分OD管理 信息被写入保持用户数据的块。这种安排使得可能在高速緩冲存储器块(OD-
高速緩冲存储器)中维持跨越多个逻辑空间的数据,同时保持闪存中的管理 信息的大小不变。这反过来帮助显著地减小写回操作的频率。
以此方式,管理信息量能够上升而不改变在闪存中保持的现有的管理信
息的大小,并且不改变管理信息更新的时刻(timing )。增加管理信息量转化
为写回操作的频率的明显减小(以及它的实际抑制)。
在写回操作的频率这样减小的情况下,碎片收集和闪存擦除比之前更少 发生,从而能够避免写入性能下降。当更少删除闪存的内容时,可以延长其 可重写次数(即,删除次数)有限的闪存的寿命。
特别地,利用FAT的介质特征在于非连续(间断的)逻辑地址(如在FAT1 和FAT2中的逻辑地址)的布局。该类型的介质经历对同一地址的频繁写入操 作。由本发明提出的存储器控制方法当结合具有大的块大小(例如,FAT1和 FAT2出现在同一块中)的介质使用时更加有效。
此外,在写入数据没有超过给定的指定逻辑边界的情况下,部分管理信 息可以保持在高速緩沖存储器块(OD-高速緩冲存储器)中,以便在启动时 加速管理信息的获取。也就是说,对OD中最后写入的页的读取操作允许保 持管理信息的位置的获取,使得第二读取操作允许获得该管理信息。在不需 要写入管理信息的情况下,读取高速緩冲存储器块(OD-高速緩冲存储器) 的整个内容使得可以构成(makeup)管理信息。结果,使得启动时管理信息 的获取明显比之前更快。
图30是构成以逻辑块为单位的写入处理的各步骤的流程图。在图30的 步骤Slll中,CPU 21从管理信息获取关于用户数据块的写入逻辑空间信息 和地址信息。CPU 21还获取关于高速緩冲存储器块的写入逻辑空间信息和地 址信息,该地址信息对应于用户数据块的逻辑地址。
在步骤S112中,CPU 21检查以确定是否存在分配给所述的用户数据块 的高速緩冲存储器块。如果在步骤S112中没有发现高速緩冲存储器块分配给 用户数据块,那么到达步骤S113。在步骤S113中,CPU21从用户数据块读 取数据,并且发送读取的数据到主机设备。当没有高速緩冲存储器块分配给 要求从其读取数据的逻辑块时,执行步骤S113。
如果在步骤S112中发现高速緩冲存储器块分配给用户数据块,那么到达 步骤S114。在步骤S114中,CPU21 ;险查以确定读取起始地址是否小于高速 緩冲存储器块中的逻辑地址。如果在步骤S114中发现读取起始地址小于高速
緩冲存储器块中的逻辑地址,那么到达步骤S115。在步骤S115中,CPU 21 检查以确定读取结束地址是否小于高速緩冲存储器块中的逻辑地址。如果在 步骤S115中发现读取结束地址小于高速緩沖存储器块中的逻辑地址,那么到 达步骤S116。在步骤S116中,CPU 21从用户数据块读取数据并且提供读取 的数据到主机设备。
如果在步骤S114中没有发现读取起始地址小于高速緩冲存储器块中的 逻辑地址,那么到达步骤S123。在步骤S123中,CPU21检查以确定读取起 始地址是否等于高速緩沖存储器块中的逻辑地址。如果在步骤S123中没有发 现读取起始地址等于高速緩冲存储器块中的任何逻辑地址,那么到达步骤 S128。在步骤S128中,CPU 21从用户数据块读取数据并且提供读取的数据 到主机设备。
当分配了高速緩冲存储器块、但在高速緩沖存储器块中没有发现在从其 读取请求的数据的逻辑地址处的数据时,执行步骤S116和S128。在这些步 骤中,从用户数据块读出数据到主机设备。
如果在步骤S115中没有发现读取结束地址小于高速緩沖存储器块中的 逻辑地址,那么到达步骤S117。在步骤S117中,CPU21检查以确定读fl结 束地址是否等于高速緩冲存储器块中的逻辑地址。如果在步骤S117中发现读 取结束地址等于高速緩冲存储器块中的逻辑地址,那么到达步骤S118。 CPU 21在步骤S118中从用户数据块读取数据,并且在步骤S119中从高速缓冲存 储器块读取其余的数据,读取的数据被发送到主机设备。
如果在步骤S117中没有发现读取结束地址等于高速緩冲存储器块中的 任何逻辑地址,那么到达步骤S120。 CPU21在步骤S120中从用户数据块读 取数据,在步骤S121中从高速緩沖存储器块读取随后的数据,并且在步骤 S122中从高速緩冲存储器块读取剩余的数据,读取的数据提供到主机设备。
如果在步骤S123中发现读取起始地址等于高速緩冲存储器块中的逻辑 地址,那么到达步骤S124。在步骤S124中,CPU21检查以确定读取结束地 址是否等于高速緩冲存储器块中的逻辑地址。如果在步骤S124中发现读取结 束地址等于高速緩沖存储器块中的逻辑地址,那么到达步骤S125。在步骤 S125中,CPU 21从高速緩沖存储器块读取数据,并且发送读取的数据到主 机设备。
如果在步骤S124中没有发现读取结束地址等于高速緩冲存储器块中的
任何逻辑地址,那么到达步骤S126。 CPU21在步骤S126中从高速緩沖存储 器块读取数据,并且在步骤S127中从用户数据块读取剩余的数据,读取的数 据被发送到主机设备。
步骤S118和S119、 S120到S122、 S126和S127是其中用户数据块中的 数据和高速緩冲存储器块中的数据都被读出的步骤。在此情况下的读取搡作 包括第一和第二部分。在第一部分中,用户数据块中的数据被读出到主机设 备。在第二部分中,如果发现对应于由主机设备要求的逻辑扇区地址的数据 存在于高速缓冲存储器块中,那么高速緩沖存储器块中的数据被读出到主机 设备。如果发现所述的数据不存在于高速緩沖存储器块中,那么从用户数据 块读取数据并且发送到主机设备。步骤S125是其中高速緩冲存储器块中的数 据被读出到主机设备的步骤。
如上所述,由闪存23示例的非易失性存储器(NAND型闪存)具有两 个特性在存储器中数据不能被覆盖,以及数据以块为单位删除。由此得出 结论,在数据更新的情况下,由存储卡20示例的存储器装置要求以块为单位 保存更新数据到其它的块而不管更新数据的大小,以便维持逻辑/物理表的一 致性。
由于此原因,必须复制原始块中除了更新数据外的数据。在更新后,具 有不必要的数据的块需要删除其内容(即,写回操作)。此外,每个块经历有 限的可重写次数。
实现本发明的存储器控制方法以涉及比用于存储器装置的普通控制方法 更少的写回操作的方式,使用高速緩冲存储器块控制各块。写回操作的减少 的频率反过来降低了执行的复制和删除操作的次数,使得数据更新操作的处 理速度被提高。因为减少了块删除次数,所以相应地延长了作为产品的存储 器装置的寿命。
当主机设备要写入超过指定的逻辑边界(即,以多个扇区为单位的逻辑 空间大小)的文件数据时,数据写入到重新分配的高速緩沖存储器块以便抑 制写回操作。随着写回被避免,禁止了碎片收集并且写入性能相应地改善。 写回操作的抑制反过来减小了删除块的内容的次数,从而延长了存储器产品的寿命。
根据本发明的存储器控制方法,当要写入的数据没有超过指定的逻辑边 界时,部分管理信息被保存在高速緩冲存储器块(OD-高速缓冲存储器)中。
更具体地,部分OD管理信息存储到保持用户数据的块中。这使得可能将跨 越多个逻辑空间的数据保存到高速緩冲存储器块(OD-高速緩沖存储器),而 不改变存储在闪存中的管理信息的大小,从而比之前更少执行写回操作。
对OD中最后写入页的读取操作允许保持管理信息的位置的获取,使得
第二读取操作允许获得管理信息。随着不需要写入管理信息,读取高速緩冲
存储器块(OD-高速緩冲存储器)的整个内容使得可能构成管理信息。结果, 使得启动时管理信息的获取明显比之前更快。
在数据要从主机设备写入的情况下,数据从高速缓冲存储器块的起始开 始写入而不管写入数据的逻辑地址空间。该特征抑制高速緩冲存储器块中的 复制操作,这转化为写入性能的提升。
当跟随在之前示例中写入的数据的文件数据要以不限于任何簇边界的方 式写入时,该数据可以添加到高速緩冲存储器块。这也抑制了写回操作。随 着写回被禁止,避免了碎片收集并且相应地提升了写入性能。
当写回操作被抑制时,相应地减少块删除操作,这有助于延长存储器产 品的寿命。高速緩沖存储器块的块地址单独以这种方式管理,即如果不存在 块地址改变,则不需要更新管理信息。这有助于改善写入性能。
此外,管理信息更新操作的频率的减小转化为其中保持管理信息的块删 除其内容的次数的明显下降。这有助于延长存储器产品的寿命。
当数据被添加到高速緩冲存储器块以便抑制写回操作时,禁止了碎片收 集并且提升了写入性能。随着写回被抑制,减少了删除各块的内容的次数, 这导致存储器产品更长的寿命。只有高速緩沖存储器块的块地址以这种方式 管理,即如果不改变块地址,则不需要更新管理信息。这有助于改善写入性 能。管理信息更新操作的减小的频率转化为其中保持管理信息的块删除其内 容的次数的明显下降。这有助于延长存储器产品的寿命。
当所述的高速緩冲存储器块处于满状态的情况下,执行到用户块的写回 操作而不触发碎片收集。这使得可能改善写入性能。
当主机设备要写入构成落入没有达到指定的逻辑边界(即,以多个扇区 为单位的逻辑空间大小)的管理信息的FAT和目录项时,数据被写入重新分 配的高速缓沖存储器块以便抑制写回操作。因而随着写回被抑制,避免了碎 片收集并且改善了写入性能。写回操作的抑制反过来減少了删除块的内容的 次数,从而延长了存储器产品的寿命。 当在写入操作后另外的数据要写入同 一逻辑地址空间时,那么该数据被 添加到高速緩沖存储器块以便抑制写回操作。因而随着写回被禁止,避免了 碎片收集并且相应地提高了写入性能。写回操作的抑制反过来减少了删除块 的内容的次数,从而延长了存储器产品的寿命。
在只管理高速緩冲存储器块的块地址的情况下,只要块地址没有改变就
不需要更新管理信息。这有助于改善写入性能。管理信息更新操作的减小的 频率转化为其中保持管理信息的块删除其内容的次数的明显下降。这有助于
延长存储器产品的寿命。
当数据被另外写入所述的高速緩冲存储器块时,写回被抑制并且碎片收 集也被抑制。这有助于改善写入性能。抑制写回操作有助于减少块删除操作 的次数,从而延长存储器产品的寿命。在只管理高速緩冲存储器块的块地址 的情况下,只要块地址没有改变就不需要更新管理信息。这导致写入性能的 提升。管理信息更新操作的减d、的频率保证删除其中保持管理信息的块的内 容的次数的明显下降。这有助于延长存储器产品的寿命。
当对处于满状态的高速緩冲存储器块执行数据写入操作时,数据被写入 另一个高速緩冲存储器块。这抑制写回操作和碎片收集,并且提升写入性能。 因为写回操作的抑制转化为减小的删除块的内容的次数,所以延长存储器产 品的寿命。
如果文件数据写入操作发生在组成管理信息的FAT或目录项已经被写入 后,那么数据被写入另一个高速緩沖存储器块,使得可以禁止写回操作。这 反过来抑制了碎片收集并且有助于提升写入性能。因为写回操作的抑制使得 可能减小删除块的内容的次数,所以延长存储器产品的寿命。
在没有空闲的高速緩冲存储器块可用的情况下,具有低更新频率的高速 緩冲存储器块被优选地分配用于写回操作。在写回操作时给具有低更新频率 的高速緩沖存储器块优先级改善了关于写入操作的高速緩冲存储器块的使用 效率。因为具有低更新频率的高速緩沖存储器块比具有高更新频率的高速緩 冲存储器块更不可能具有写入到其的数据,所以提供该特征。
当用于写入操作的高速緩冲存储器块的使用效率因而提升时,抑制了写 回并且也抑制了碎片收集,从而提升写入性能。写回操作的抑制转化为块删 除操作的減小的频率,这延长了存储器产品的寿命。
在没有空闲的高速缓冲存储器块可用的情况下,处于满状态的高速缓冲
存储器块优选地经历碎片收集。当处于满状态的高速緩冲存储器块被优选地 分配用于写回操作时,可以提高关于写入操作的高速緩冲存储器块的使用效 率。这是因为如果高速緩冲存储器块处于满状态,则不需要使用它们。
在关于写入操作改善了高速緩冲存储器块的使用效率的情况下,抑制了 碎片收集并且相应地提升了写入性能。随着写回被禁止,减少了块删除操作, 使得存储器产品的寿命被延长。只要高速緩冲存储器块处于满状态,就不需 要通过碎片收集复制每个块中的数据。这有助于提高性能。
上面详细讨论的各步骤和处理可以安排到可以由CPU或其它合适的计 算装置执行的程序中。这些程序可以存储在如半导体存储器、磁盘、光盘、 或软盘(注册商标)的记录介质上。 一块适合的携带该程序的这种介质可以 附接到计算机。反过来,计算机可以访问和执行保持在附接的记录介质上的 程序。
本领域的技术人员应该理解,取决于设计要求和其它因素,可以出现各 种修改、组合、子组合和更改,只要它们在权利要求和其等价的范围内。 相关申请的交叉引用
本发明包括涉及于2007年9月12日向日本专利局提交的日本专利申请 JP 2007-237181的主题,这里通过引用并入其全部内容。
权利要求
1. 一种存储器装置,包括非易失性存储器,配置来允许以簇为单位向其写入数据和从其读取数据,并且允许以由多个扇区组成的块为单位从其删除数据;以及控制电路,配置来控制对所述非易失性存储器的访问操作;其中该非易失性存储器包括管理区域,其中记录管理信息;用户数据区域,其中记录来自用户的数据;以及高速缓冲存储器区域,其中暂时保持要写入所述用户数据区域和从所述用户数据区域读取的数据;所述管理区域包括逻辑/物理表,其与分配给所述逻辑块的物理块的地址相关联地存储所述用户数据区域中的逻辑块的地址,以及对应于所述逻辑/物理表中的所述物理块的地址的所述高速缓冲存储器区域中的物理块的地址;并且一旦写入其大小小于在所述用户数据区域中的用户块中以多个扇区为单位组成的逻辑空间大小的指定的逻辑大小的数据,所述控制电路就在写入部分管理信息到保持所述数据的高速缓冲存储器块的同时,保存所述数据到适当选择的高速缓冲存储器块。
2. 如权利要求1所述的存储器装置,其中所述控制电路在维持用于保存 所述管理信息的所述非易失性存储器的大小的同时,将所述数据保存在所述 高速緩沖存储器块中的多个逻辑空间中。
3. 如权利要求1所述的存储器装置,其中所述控制电路根据高速緩冲存 储器块中的所述管理信息,确定额外的数据是否可以写入选择的高速緩冲存 储器块,如果发现可以写入额外的数据到所述高速緩冲存储器块,那么在向 其添加写入数据之前写入额外的管理信息到所述高速緩沖存储器块。
4. 如权利要求3所述的存储器装置,其中,如果发现可以写入额外的数 据到所述高速緩冲存储器块,那么在写入额外的管理信息到所述高速緩冲存 储器块和向其添加写入数据之前,所述控制电路更新所述管理区域中的所述 管理信息。
5. 如权利要求3所述的存储器装置,其中,所述控制电路确定额外的数据是否可以写入选择的高速緩冲存储器块,如果发现不能写入额外的数据到 高速緩沖存储器块,那么确定在所述高速缓冲存储器块中注册的多个逻辑空 间的数目是否大于预定的数目;并且如果发现所述多个逻辑空间的数目小于 所述预定的数目,那么所述控制电路复制保存在所述高速緩冲存储器块中的 有效数据到新的高速緩冲存储器块,并且在复制到所述新的高速緩冲存储器 块后添加关于状态的管理信息。
6. 如权利要求5所述的存储器装置,其中,如果在所述高速缓沖存储器块中存在多个管理信息项,那么所述控制电路使最近写入的管理信息项有效。
7. 如权利要求5所述的存储器装置,其中所述控制电路在向所述新的高 速緩沖存储器块添加写入数据之前,写入额外的管理信息到所述新的高速緩 沖存储器块。
8. —种用于非易失性存储器的存储器控制方法,所述非易失性存储器配 置来允许以簇为单位向其写入数据和从其读取数据,并且允许以多个扇区组 成的块为单位从其删除数据,所述非易失性存储器包括管理区域、用户数据 区域以及高速緩冲存储器区域,所述存储器管理方法包括以下步骤记录逻辑/物理表,所述逻辑/物理表与分配给所述逻辑块的物理块的地址 相关联地存储所述用户数据区域中的逻辑块的地址,以及对应于所述逻辑/物 理表中的所述物理块的地址的所述高速緩冲存储器区域中的物理块的地址; 以及一旦写入大小小于在所述用户数据区域中的用户块中以多个扇区为单位 组成逻辑空间大小的指定的逻辑大小的数据,就在写入部分管理信息到保持 所述数据的高速緩冲存储器块的同时,保存所述数据到适当选择的高速緩冲 存储器块。
9. 如权利要求8所述的存储器控制方法,其中所述保存步骤包括在维持 用于保存所述管理信息的所述非易失性存储器的大小的同时,将所述数据保 存在所述高速緩沖存储器块中的多个逻辑空间中。
10. 如权利要求8所述的存储器控制方法,其中所述保存步骤包括根据 高速緩冲存储器块中的所述管理信息,确定额外的数据是否可以写入选择的 高速緩沖存储器块,如果发现可以写入额外的数据到所述高速緩沖存储器块, 那么在向其添加写入数据之前写入额外的管理信息到所述高速缓沖存储器 块。
11. 如权利要求IO所述的存储器控制方法,其中,如果发现可以写入额 外的数据到所述高速緩冲存储器块,那么所述保存步骤包括在写入额外的管 理信息到所述高速缓沖存储器块和向其添加写入数据之前,更新所述管理区 域中的所述管理信息。
12. 如权利要求IO所述的存储器控制方法,其中所述保存步骤包括确定 额外的数据是否可以写入选择的高速緩冲存储器块,如果发现不能写入额外 的数据到高速緩冲存储器块,那么确定在所述高速緩冲存储器块中注册的多个逻辑空间的数目是否大于预定的数目;并且如果发现所述多个逻辑空间的数目小于所述预定的数目,那么所述控制电路复制保存在所述高速缓冲存储 器块中的有效数据到新的高速缓冲存储器块,并且在复制到所述新的高速緩 冲存储器块后添加关于状态的管理信息。
13. 如权利要求12所述的存储器控制方法,其中,如果在所述高速緩沖 存储器块中存在多个管理信息项,那么所述保存步骤包括使最近写入的管理 信息项有效。
14. 如权利要求12所述的存储器控制方法,其中所述保存步骤包括在向 所述新的高速緩冲存储器块添加写入数据之前,写入额外的管理信息到所述新的高速缓沖存储器块。
15. —种用于使得计算机对非易失性存储器执行存储器控制处理的程序, 所述非易失性存储器配置来允许以簇为单位向其写入数据和从其读取数据, 并且允许以多个扇区组成的块为单位从其删除数据,所述非易失性存储器包 括管理区域、用户数据区域以及高速緩沖存储器区域,所述存储器管理方法 包括以下步骤相关联地存储所述用户数据区域中的逻辑块的地址,以及对应于所述逻辑/物理表中的所述物理块的地址的所述高速緩沖存储器区域中的物理块的地址;以及一旦写入大小小于在所述用户数据区域中的用户块中以多个扇区为单位 组成逻辑空间大小的指定的逻辑大小的数据,就在写入部分管理信息到保持 所述数据的高速緩冲存储器块的同时,保存所述数据到适当选择的高速緩冲存储器块。
全文摘要
这里公开一种存储器装置,其包括非易失性存储器,配置来允许以簇为单位向其写入数据和从其读取数据,并且允许以多个扇区组成的块为单位从其删除数据;控制电路,配置来控制对所述非易失性存储器的访问操作;管理区域;用户数据区域;以及高速缓冲存储器区域;所述管理区域包括逻辑/物理表、以及所述高速缓冲存储器区域中的物理块的地址。
文档编号G06F12/08GK101387987SQ20081014940
公开日2009年3月18日 申请日期2008年9月12日 优先权日2007年9月12日
发明者中西健一, 金子畅宏 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1