CN1322428C - 闪速存储器管理方法 - Google Patents

闪速存储器管理方法 Download PDF

Info

Publication number
CN1322428C
CN1322428C CNB01144049XA CN01144049A CN1322428C CN 1322428 C CN1322428 C CN 1322428C CN B01144049X A CNB01144049X A CN B01144049XA CN 01144049 A CN01144049 A CN 01144049A CN 1322428 C CN1322428 C CN 1322428C
Authority
CN
China
Prior art keywords
page
log blocks
data block
data
free
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.)
Expired - Lifetime
Application number
CNB01144049XA
Other languages
English (en)
Other versions
CN1389790A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1389790A publication Critical patent/CN1389790A/zh
Application granted granted Critical
Publication of CN1322428C publication Critical patent/CN1322428C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Abstract

提供一种闪速存储器管理方法。根据该方法,当请求将预定数据写到已被写入数据的页面中时,将该预定数据写到与包含该页面的数据块相对应的日志块中。当再次接收到将预定数据写到该页面的请求时,将预定数据写到日志块中的空的自由页面中。即使请求连续地写同一个页面,该管理方法也能够在一个日志块中处理这种情况,由此提高了闪速存储器资源的使用效率。

Description

闪速存储器管理方法
技术领域
本发明涉及闪速存储器(flash memory),特别涉及在基于闪速存储器的系统中使用的闪速存储器管理方法。
背景技术
闪速存储器是一种特殊类型的非易失性存储器,可对其数据进行电擦除和编程。与基于磁盘存储器的设备相比,基于闪速存储器的存储设备功耗低且体积小。因此,既然可用闪速存储器来代替磁盘存储器,所以许多研究与开发正在积极地进行。可以预料,闪速存储器作为象数码相机、移动电话、或个人数字助理(PDA)这样的移动计算设备的存储设备,将会受到相当的重视。
在磁盘驱动器中,可用新数据改写以前的旧数据。然而,在闪速存储器中,在用新数据对一个块进行重写之前需要对其进行擦除,即,将存储单元恢复到能够写数据的初始状态。这一操作称为“擦除”。典型地,擦除操作比写操作需要更多的时间。此外,由于擦除操作是对块执行的,而该块的尺寸比写操作所要求的要大很多,因此,甚至有可能将没有要求写的部分擦除。这样,又需要通过写操作来对多余擦除的部分进行再生。最糟的情况是写(改写)数据的请求请求一个擦除操作和多个写操作来恢复被该擦除操作擦除的部分。由于执行擦除和写命令的单元的不一致性,从而使写的性能显著地低于读的性能。而且,闪速存储器的写性能要比由于机械操作而不可避免地包含延迟的、基于磁盘的存储设备还低。因此,提高写性能是设计基于闪速存储器的设备的根本。
美国第5,388,083号专利推荐了一种按内容寻址存储器(CAM,contentaddressable memory),用于把用户请求的逻辑地址转换为在闪速存储器中的物理地址,同时把更改了的数据写入空块而避免擦除周期,从而防止由于写前擦除所引起的延迟。但是,CAM系统的实现需要附加昂贵的电路。美国第5,485,595号专利推荐了一种方法,该方法包括把逻辑地址写入每页的附加区域中,并且顺序地对每个逻辑地址进行比较,同时在写请求时把更改了的数据写入空的空间而避免擦除周期。但是,如果读操作的单元很大,比如在与非型(NAND-type)闪速存储器中,该地址转换机制就需要用大量的时间来读取分散在该闪速存储器周围的地址转换信息,由此降低了系统的性能。
美国第5,845,313号专利推荐了一种闪速存储器存储体系结构,在该存储体系结构中,在系统复位期间,通过扫描闪速存储器中存储的逻辑地址,在专用RAM(随机存取存储器)中构造用于执行直接地址转换的线性地址转换表。但是,存储地址转换表需要大存储容量的RAM。例如,要存储一个具有32MB存储容量并且页面大小为512字节的基于闪速存储器的存储设备的地址转换表,假定为65,536页中的每一页提供2个字节的话,就需要128KB的RAM。对于象移动设备这样资源较少的小规模系统,该存储容量就太大了。
美国第5,404,485号专利推荐了一种方法,用于为写操作分配一个新块(替换块),并将数据写到该已分配的块中。但是,由于要为写操作连续地分配新块,所以存在写入相同页面的多个不同版本的块。也就是说,需要为每个块提供至少一个替换块,由此显著地减少了闪速存储器的容量。要被写入一个新块的页面,必须在与该页面被写到先前块的位置相同的位置上写。如果该页面被频繁地更新,而剩余的页面很少被更新,则只有该特定页面的内容被改变了,同时剩余页面包括多个相同的替换块,因此浪费了闪速存储器中的许多存储空间。因而,该方法不适用于象移动设备这样的小规模系统。
发明内容
为解决上述问题,本发明的一个目的是提供一种这样的基于闪速存储器的系统及其管理方法:它能够提高闪速存储器的性能。
本发明的另一个目的是提供一种这样的基于闪速存储器的系统及其管理方法:它能够在象掉电这样的紧急情况中一致地恢复数据。
本发明的另一个目的是提供一种这样的基于闪速存储器的系统及其管理方法:它在频繁地对特定页面进行数据更新的环境中,例如,基于文件分配表(FAT)的DOS(磁盘操作系统)的文件系统中,防止系统性能的恶化。
因此,为了实现上述目的,本发明提供一种用于将预定数据写到闪速存储器中的方法。该方法包括以下步骤:(a)接收将预定数据写到一个已写入数据的页面的请求;(b)将预定数据写到与包含该页面的一个数据块相对应的一个日志块中;(c)再次接收将预定数据写到该页面的请求;以及(d)将预定数据写到该日志块中的一个空的自由页面中。
最好,步骤(b)可包括以下步骤:步骤(b11),将预定数据写到一个空的自由页面中,或者步骤(b21),用于分配该日志块;以及(b22),在数据块中与被请求页面相同的位置上,将预定数据写到一个空页面中。
在另一实施例中,用于将预定数据写到闪速存储器中的方法包括以下步骤:(a)接收将预定数据写到一个页面的请求;(b)分配一个与包含该页面的第一数据块相对应的日志块1-1;(c)将预定数据写到日志块1-1中的一个空页;(d)再次接收将预定数据写到该页面的请求;以及(e)将预定数据写到日志块1-1中的一个空的自由页面中。最好,步骤(b)包括以下步骤:(b1)根据第二数据块和与第二数据块相对应的第二日志块,执行块合并,以创建第三数据块;以及(b2)把对第二数据块执行擦除操作而得到的自由块分配作为日志块1-1。最好,当要被分配作为日志块1-1的自由块不存在,或者当与第一数据块相对应的现有的日志块的所有页面都已被使用时,执行步骤(b1)。
最好,步骤(b1)可包括步骤(b11),用于当按照与排列第二数据块的页面相同的顺序排列第二日志块的页面,并且第二日志块的页面与第二数据块的页面一一对应时,执行转换合并(switch merge),以将第二日志块变成第三数据块。步骤(b1)可包括步骤(b12),用于当第二日志块中的页面被请求仅写入一次时,执行复制合并(copy merge),以将第二数据块的相应页面复制到第二日志块中的自由页面中,并且创建第三数据块。步骤(b1)可包括步骤(b13),用于执行简单合并(simple merge),以将第二日志块中的最新页面复制到还未写数据的自由块的自由页面中,并且将第二数据块的相应页面复制到其剩余的自由页面中,由此创建第三数据块。
最好,步骤(e)包括以下步骤:(e1)如果日志块1-1中不存在自由页面,则分配一个新的日志块1-2;以及(e2)将预定数据写到日志块1-2的自由页面中。步骤(e1)可以包括下步骤:(e11)当日志块1-1的页面被按照排列第一数据块的页面的顺序进行排列,并且日志块1-1的页面与第一数据块的页面一一对应时,执行转换合并,以将该日志块变成第二数据块;以及(e12)把对第一数据块执行擦除操作而得到的自由块分配作为日志块1-2。步骤(e1)可包括:步骤(e21),当日志块1-1中的页面被请求仅写入一次时,执行复制合并,以将第一数据块中的相应页面复制到日志块1-1中的自由页面中;以及(e22)把对第一数据块执行擦除操作而得到的自由块分配作为日志块1-2。步骤(e1)可包括以下步骤:(e31)执行简单合并,以将日志块1-1中的最新页面复制到自由块的自由页面中,并且将第一数据块的相应页面复制到其剩余的自由页面中,由此创建第二数据块;以及(e32)把对第一数据块或者日志块1-1执行擦除操作而得到的自由块分配作为日志块1-2。
最好,步骤(e2)可包括步骤(e21),用于将预定数据写到数据块中与被请求页面位置相同的自由页面中。
本发明还提供一种用于从闪速存储器中读预定数据的方法。该方法包括以下步骤:(a)对日志指针表(log pointer table)进行检索,查找记录被请求页面的逻辑地址的块地址部分的条目;(b)检查被请求页面的逻辑地址是否存在于找到的条目中;以及(c)查阅找到的条目中记录的相应日志块的物理地址、以及把被请求页面的逻辑地址写到找到的条目中的位置,并且访问该日志块的相应页面。最好,在步骤(c)中,在与把被请求页面的逻辑地址写到找到的条目中的位置相同的位置访问日志块中的相应页面。
本发明还提供一种用于管理包含数据块和用于写数据以更新数据块的日志块的闪速存储器的方法。该方法包括以下步骤:(a)当第一数据块的页面被按照与排列和第一数据块相对应的第一日志块的页面的顺序相同的顺序排列,并且第一数据块的所有页面与第一日志块的页面一一映射时,将第一日志块变成第二数据块;以及(b)更新地址转换信息。
在另一实施例中,用于管理包含数据块和用于写数据以更新数据块的日志块的闪速存储器的方法包括以下步骤:(a)当第一日志块中的页面被请求仅写入一次时,将第一数据块的相应页面复制到第一日志块的自由页面中,以创建第二数据块;以及(b)更新地址转换信息。
在另一实施例中,用于管理包含数据块和用于写数据以更新数据块的日志块的闪速存储器的方法包括以下步骤:(a)将第一日志块中的最新页面复制到还未写数据的自由块中,并且将与第一日志块相对应的第一数据块的相应页面复制到剩余的自由页面中,以创建第二数据块;以及(b)更新地址转换信息。
最好,在步骤(a)之前,该闪速存储器管理方法还包括步骤(a0),用于写在步骤(a)或(b)期间出现系统故障时恢复数据用的恢复信息。
最好,该闪速存储器管理方法还包括步骤(c),用于在步骤(a)或(b)期间出现系统故障时,参照恢复信息恢复数据。
恢复信息包括:自由块列表、日志块列表、以及日志指针表,该日志指针表是用于管理日志块的数据结构。日志指针表包含与日志块一一对应的日志指针表条目,每一项条目将日志块的物理地址映射成相应数据块的逻辑地址,并且按照相应日志块的页面的物理排列顺存储数据块的被请求页面的逻辑地址。
在另一实施例中,用于管理包含数据块和用于写数据以更新数据块的日志块的闪速存储器的方法包括以下步骤:(a)将预定区域分配给闪速存储器,并且将数据块和日志块列表以及用于管理日志块的数据结构作为恢复信息写到该预定区域中;(b)在出现系统故障时,根据恢复信息检查当前正被写入闪速存储器的状态,以确定是否出现错误;以及(c)如果出现错误,则根据恢复信息恢复数据。
附图说明
通过结合附图对本发明的优选实施例进行详细描述,本发明的上述目的和优点将会变得更加清楚,其中:
图1是本发明的一个优选实施例的基于闪速存储器的系统的方框图;
图2是用于解释本发明的、图1的闪速存储器中提供的用于存储普通数据(ordinary data)的块的参考图;
图3是用于解释用于日志块和数据块的读操作的参考图;
图4是用于解释本发明的一个实施例的、图1的闪速存储器被分成的节的参考图;
图5是用于解释本发明的另一实施例的,图1的闪速存储器被分成的节的参考图;
图6是用于解释日志指针表的参考图;
图7示出了日志指针表的一个条目的结构;
图8示出了日志指针表与闪速存储器之间的关系;
图9是用于解释可擦除块的参考图;
图10是简单合并的概念图;
图11是复制合并的概念图;
图12示出了在执行本发明的块合时块的变动;
图13是本发明的读操作的流程图;
图14是本发明的写操作的流程图;以及
图15是块合并的流程图。
具体实施方式
参照图1,基于闪速存储器的系统包括闪速存储器1、只读存储器(ROM)2、随机存取存储器(RAM)3、以及处理器4。处理器4与典型地记录在ROM2中的程序代码联合,发出一系列读或写命令,以从闪速存储器1或RAM3中读数据和向其写数据。依照本发明的闪速存储器管理方法对闪速存储器1执行写和读操作。ROM2和RAM3存储处理器4执行的应用程序代码或相关的数据结构。
参照图2,闪速存储器1包括多个数据块和与该多个数据块的至少一些相对应的日志块。数据块是用于存储任何普通数据的块,而日志块是用于在要对数据块的预定部分进行修改时记录被修改数据的块。因此,与多个数据块相对应的多个日志块包含相应数据块的被修改的页面。日志块中存储的页面具有的优先权优于相应数据块中存储的对应物,以便被引用。在本文中,具有第一优先权的页面称为“有效页面(valid pages)”,而被有效页面忽略的页面,甚至当该被忽略的页面中记录了物理上有效的数据时,也在逻辑上称为“无效页面(invalid pages)”。
参照图3,当用户请求在预定的逻辑地址读预定页面时,处理器4查阅RAM3中记录的日志指针表,以检查与预定页面相对应的日志块是否存在。如果相应日志块存在,则对被请求页面是否有效地存储在该日志块中进行检查。如果被请求页面有效地存储在该日志块中,则读取该日志块中存储的页面。否则,读取与该日志块相对应的数据块中存储的相应页面。日志指针表将在后面进行描述。
图4是本发明的一个实施例的、将闪速存储器1分成多个区域的参考图。参照图4,闪速存储器1被分成映射表区(map region)、日志块区、数据区、和自由块区。映射表区存储地址转换信息;日志块区用于日志块;数据块区用于数据块,以存储普通数据;而自由块区用于分配日志块或数据块。这里,在逻辑上对闪速存储器1进行分割,以形成四个区。因此,在物理上,这四个区,特别是数据块区、日志块区、和自由块区能够以几个分散区的形式不连续地存在于闪速存储器1中。
图5是本发明的另一实施例的、将闪速存储器1分成多个区域的参考图。参照图5,闪速存储器1被分成映射表区、检验点区、日志块区、数据块区、和自由块区。在该实施例中,检验点区是附加提供的。数据恢复所需的恢复信息记录在该检验点区中。与图4所示的区相似,映射表区存储地址转换信息;日志块区用于分配日志块;数据块区记录普通数据;而自由块区用于分配日志块或数据块。分别存储在映射表区和检验点区中的地址转换信息和恢复信息将会在后面进行详细的描述。
日志指针表是指阅用于管理日志块的数据结构。日志指针表包含数据块的逻辑地址、相应日志块的物理地址、以及按照日志块中的页面的相同物理排列顺序进行排列的相应数据块中的更新页面的偏移值(被请求页面的逻辑地址)。根据本发明,处理器4对日志块区进行扫描,以构造RAM3中的日志指针表。参照图6,日志指针表包含与每个日志块相对应的条目。一旦接收到请求,要根据预定页面的逻辑地址从闪速存储器1中的特定位置读数据或向其写数据时,在处理器4就查阅日志指针表,以根据相应条目的存在访问日志块或数据块。
图7示出了一个日志指针表条目的结构。参照图7,该日志指针表条目包括数据块的逻辑地址log_blk、和相应日志块的物理地址phy_blk。此外,该日志指针表条目还按照数据块中的页面记录顺序来记录日志块中相应页面的逻辑地址页面#0、页面#1、...、页面#N。
例如,假定一个块包含十六个页面,并且逻辑地址是02FF(十六进制数),前三位数“02F”表示块地址,而最后一位数“F”表示日志块中的一个被请求页面的偏移值。因此,检查逻辑指针表中存储的逻辑地址log_blk中是否存在02F,以确认相应日志块的存在。如果相应日志块存在,则检查被请求页面的逻辑地址02FF或偏移值F是否记录到相应条目中,以定位日志块中的更新页面。例如,如果页面#0是F,则被请求页面被记录在日志块中的第一物理页面中。
这样,被请求的逻辑地址的一部分,即,它的块地址部分,被用于检查日志块是否存在,并访问该块。此项技术称为“块寻址”。然后,整个正被请求的逻辑地址或偏移值被用于访问相应日志块中的页面,这称为“页面寻址”。因此,本发明采用块寻址和页面寻址两种方法,使被多次更新的同一页面能够记录到一个日志块中。
图8是日志指针表与闪速存储器1之间的关系的参考图。如图8所示,数据块的逻辑地址log_blk用于搜索与该数据块相对应的日志块,并且然后,物理地址phy_blk用于找到写相应日志块的位置。此外,根据本发明,相应日志块中的页面的逻辑地址页面#0、页面#1、...、页面#15被写入日志指针表条目中。在该实施例中,每个块包含十六个页面。
基本上,在与数据块中相应页面的所处位置相同的位置,把更新页面写到日志块中。实际上,如果一个更新页面被第一次写到日志块中,则可能在与数据块的相应页面相同的位置写该更新页面。然而,如果该更新页面要被再次更新,则不可能总是在与数据块的相应页面相同的位置上写。也就是说,如果在对数据块中的剩余页面进行了一次更新之前,再次更新相应数据块中的预定页面,则该预定页面被写到日志块的空的空间中。
图9是用于解释可擦除块的参考图。如果数据块中的所有页面仅被更新一次,则日志块的页面与数据块的页面一一对应地映射。在这种情况下,由于日志块包含了数据块的所有内容,所以即使数据块被擦除也不会出现数据丢失。有效数据不再存在的(整个阴影部分的)数据块称为“可擦除块”。被擦除的块称为“自由块”。在任何时候都能够对可擦除块进行擦除,并且在应用需要时能够将自由块作为数据块或日志块进行分配。
同时,本发明还包括涉及到块合并的执行。当重复执行写操作时执行块合并,从而使日志块内不存在能够被写的页面。在这种情况下,将日志块及相应数据块进行合并,以创建新的数据块,同时将先前的日志块擦除成为一个自由块。特别地,当数据块中的所有页面仅被更新一次时执行、以便按照页面在日志块中的定位顺序排列数据块中的页面的块合并称为“转换合并”。
相反,如果日志块中的页面排列与相应数据块中的不同,则执行简单合并。此外,当日志块的所有页面目前被写或读,从而必须为新请求的写操作分配新的日志块时,执行简单合并。在这种情况下,要被合并的日志块可能具有自由页面。
如果日志块中的所有页面仅被更新一次,则用数据块的相应页面对空页面进行填充,以将日志块变成数据块。这称为“复制合并”。也就是说,共有三种块合并:转换合并、简单合并、以及复制合并。
如上参照图9所述,通过将其中的相应数据块的所有页面仅被更新一次的日志块变成数据块,执行转换合并。该变化是通过更新地址转换信息完成的,并没有把已经写入的数据复制到数据块或日志块。即,对映射表区中记录的地址转换信息进行更新,以便将相应日志块映射为用户请求的逻辑地址。该映射表区存储用于每个块的地址转换信息,以便能够进行块寻址。这里,无效页面是指被有效页面忽略的页面,而在实际的实现中,无效页面可能在物理上是有效的。
如图10所示,通过在新的自由块中的、与有效页面被写到数据块和日志块中的位置相同的位置,写数据块及相应日志块的有效页面,执行简单合并,从而创建新的数据块。因此,合并的数据块和日志块能够是可擦除块。
如图11所示,通过把被写到现存数据块中的有效页面写到相应日志块的自由页面中,进行复制合并。将现存数据块变成可擦除块。如上所述,在块合并中使用的无效页面是指不被首先引用的页面,而在实际的实现中,它们可能是物理上有效的页面。
图12示出了在执行本发明的块合并时块的变化。参照图12,自由块变成了日志块或数据块。日志块通过转换合并或复制合并变成了数据块,或通过简单合并变成了可擦除块。数据块通过转换合并、复制合并、或简单合并变成了可擦除块。可擦除块被擦除,再次成为自由块。
要执行块合并,就需要驻留在闪速存储器1中的用于自由块和可擦除块的列表。该用于自由块和可擦除块的列表是指与日志指针表一同在RAM3中记录的数据结构。该列表可能被记录在闪速存储器1的映射表区和检验点区中。
在系统复位期间,必须对自由块列表、可擦除块列表、以及日志指针表进行重构。根据本发明的一个实施例分配检验点区,用于记录快速而全面地恢复这些数据结构所需的恢复信息。如果提供了检验点区,则将上述自由块列表、可擦除块列表、以及日志块列表作为恢复信息存储在检验点区中。特别地,检验点区还存储计划日志,该计划日志列出了将要执行的块合并的类型、以及由于块合所并引起的块的变化,以便防止在块合并期间可能发生的死机(overwhelmed system)、意外停电等而引起的信息丢失。更具体地说,计划日志包括:要被执行的块合并的类型、以及从自由块变成数据块的、从数据块变成自由块的、和从日志块变成自由块的块的物理地址。
此外,检验点区还存储构造地址转换信息所需的信息,例如存储地址转换信息的位置。检验点区自身的位置存储在闪速存储器1内的一个预定块中。
下面将根据上述配置描述本发明的一个优选实施例的、用于闪速存储器管理的方法。为了容易理解,将该闪速存储器管理方法分为以下几个方法:在系统启动时构造和重构数据结构的方法;从闪速存储器1读数据的方法;以及向闪速存储器1写数据的方法。
首先,在系统启动期间使用的闪速存储器管理方法是用于构造和重构数据结构的方法。亦即,该方法包括:构造用于写和读操作的地址转换信息和包含自由块列表、可擦除块列表、日志块列表以及日志指针表的数据结构;检查已构造信息的完整性,以便在需要重构时根据恢复信息重构数据结构。当对图1所示的系统进行初始化时,处理器4必须构造日志指针表以及自由块、可擦除块和日志块的列表。要完成这一任务,处理器4从存储在闪速存储器1的检验点区中的最新被写的页面中读取恢复信息。这是因为,如果恢复信息是被顺序地写入的,那么最新的恢复信息会被写到位于在检验点区中首先被发现的自由页面(空页面)的紧前面的页面中。然而,为了识别最新被写的页面,只要有可能,在应用需要时可能会改变写恢复信息的顺序。
通过扫描恢复信息中指定的每个日志块的所有页面、以读取用于每个页面的逻辑块地址中存储的逻辑地址、来构造日志指针表。由于映射表区也顺序地存储地址转换信息,所以最后被写的页面(第一个自由页面紧前面的页面)被认为是最新改变的页面,并且能够根据该最后被写的页面来构造地址转换信息。根据恢复信息还能够很容易地构造自由块列表和可擦除块列表。
接着,通过查阅计划日志,对包括日志指针表以及自由块、可擦除块和日志块的列表的已构造信息进行验证。就是说,当系统操作在块合并期间停止时,应该验证已构造的信息是否与真实情况相同。更具体地说,如果系统在向检验点区写恢复信息时、在执行块合并时、在更新映射表区中的地址转换信息时、以及在执行擦除操作时停止操作,就需要进行验证。对每一种情况,检查已构造的信息是否与真实情况一致,并且,如果不一致,就对已构造的信息进行重构如下:
1.如果系统在向检验点区写恢复信息时停止操作,则对来自在检验点区中写的恢复信息的第一个自由页面进行定位,以便通过读取其中存储的数据来检查该找到的页面在实际上是否是一个空页面。如果该自由页面不是空的,则确定为系统在向检验点区写恢复信息时停止操作。由于这发生在实际写数据之前,所以不必执行恢复过程,并且忽略最后记录的恢复信息。
2.如果系统在块合并期间停止操作,则检查数据是否被正确地写到作为要被变成数据块的块而在计划日志中列出的块的所有页面中。如果页面,若有的话,无效,则确定系统在块合并期间停止操作。在这种情况下,再次执行块合并,以适当地恢复数据。
3.如果系统在更新地址转换信息时停止操作,则从作为要被变成数据块的块而在计划日志中列出的块中读取逻辑地址,以检查该逻辑地址是否与映射表区中存储的信息一致。如果不一致,则确定系统在更新地址转换信息时停止操作。在这种情况下,通过根据从数据块中读取的逻辑地址、以及相应的物理地址,修改地址转换信息,能够适当地恢复数据。
4.如果系统在擦除操作期间停止操作,则检查作为要被变成自由块而在计划日志中列出的块实际上是否是空块。如果块不是自由块(如果块中的所有页面都不是空的),则再次对该被写的块执行擦除操作。
当通过在系统启动时使用的闪速存储器管理方法、用前面描述的方式构造所需的数据结构、并且然后完成完整性校验时,就能够执行读写操作了。
图13是本发明的读操作的流程图。处理器4搜索其中存在正被请求页面的日志块,并且从找到的日志块中读取被请求页面。更具体地说,处理器4顺序地检索日志指针表,查找与被请求页面的逻辑地址相对应的条目(步骤1301)。由于被请求页面的逻辑地址包括块寻址部分和页面寻址部分,因而通过查阅块寻址部分来搜索条目。如果找到匹配的条目(步骤1302),则检查被请求页面是否存在于找到的条目中(步骤1303)。如果找到被请求页面,则读取该页面(步骤1305)。在这种情况下,如果找到两个或更多相同的页面,则将上述那些页面中除存在于相同偏移值的位置的一个页面以外的最后一个找到的页面确定为最新的页面,并读取该页面。如果在步骤1302中没有找到匹配,或者如果日志块中不存在被请求页面(步骤1304),则根据被请求的逻辑地址读取数据块的相应页面(步骤1306)。
图14是本发明的写操作的流程图。处理器4首先搜索其中存在正被请求的页面的日志块。如果找到该日志块,则检查该日志块中与被请求页面位置相同的页面是否可用。如果相应页面可用,则对该页面执行写操作。如果其不可用,则对日志块中另一可用的页面执行写操作。如果日志块中不存在可用的页面,则分配一个新的日块,以便在相同的位置执行写操作。
更具体地说,处理器4根据正被请求的页面的逻辑地址,对日志指针表进行条目检索(步骤1401)。如果找到条目(步骤1402),就意味着存在与逻辑地址相对应的日志块,这时对条目进行检索,以检查与被请求页面具有相同的偏移值的页面是否可用(步骤1403)。如果该页面可用,则对相应页面执行写操作(步骤1404)。这里,可用的页面是指还没有被写入的空页面(自由页面)。根据页面是否有效(该页面被首先查阅或数据被写到该页面中),能够确定是否存在自由页面。接着,把与逻辑地址相对应的、已经执行写操作的页面的物理地址写到日志指针表的相应条目中。在这种情况下,在闪速存储器1中,通过一次写操作就完成了用户的写请求。
如果找到相应的日志块,但是具有相同偏移的页面已经被使用(步骤1403),则检查是否能够分配日志块中的另一个自由页面(步骤1406),并且对分配的自面页面执行写操作(步骤1407)。如果存在两个或更多的自由页面,则按顺序从头搜索日志块,以分配和与已写入数据的被请求页面相对应的页面最接近的页面。然后,把与被请求页面的逻辑地址相对应的已分配页面的物理地址写到日志指针表的相应条目中(步骤1405)。
如果检索日志指针表的结果是没有找到与被请求页面相对应的条目,则检查是否能分配新的日志块(步骤1408)。如果存在要被分配作为新的日志块的自由块,则将这些自由块中的一个分配作为新的日志块(步骤1408)。如果不存在自由块,则通过执行块合并来创建自由块,并且然后将新创建的自由块分配作为新的日志块(步骤1409)。对已分配的日志块中与被请求页面具有相同的偏移值的页面执行写操作(步骤1410)。然后,在日志指针表中创建相应的条目(步骤1405)。
图15是块合并操作的流程图。参照图15,根据日志块中页面的排列,以不同的方式执行块合并。更具体地说,处理器4检查日志块的所有页面是否与相应数据块的位于相同的位置(步骤1501)。如果是这样,则接着检查日志块中的所有页面是否有效(步骤1502)。如果日志块中的所有页面被按照与数据块中的页面的排列顺序相同的顺序进行排列,并且它们都有效,则执行转换合并。在执行转换合并之前,处理器4将恢复信息写到检验点区中(步骤1503)。根据系统设计者的选择可能会省略步骤1503。为执行转换合并,处理器4更新映射表区中存储的地址转换信息,从而使日志块成为新的数据块(步骤1504)。也就是说,如果将日志块变成新的数据块,由于在用户看来与逻辑地址相对应的物理地址改变了,所以地址转换信息必须更新。实际上,可将更新的地址转换信息写到映射表区的第一个自由页面中。类似地,映射表区顺序地存储地址转换信息,并且如果不存在自由页面,则为映射表区分配自由块,以将信息写到已分配的自由块中。分配自由块的方法与参照图14描述的方法相同。然后,数据块就变成了可擦除块,把数据块擦除,并且更新检验点区中记录的自由块列表(步骤1505)。
如果日志块中的任何页面都没有在与数据块的相应页面相同的位置进行排列,则执行简单合并。类似地,在进行简单合并之前,处理器4将恢复信息写到检验点区(步骤1506)。根据系统设计者的选择可能会省略步骤1506。然后,分配自由块,以将日志块的有效页面复制到某些自由块中(步骤1507)。将数据块的相应页面复制到剩余的自由块中(步骤1508)。更新映射表区中的地址转换信息,从而使自由块成为新的数据块(步骤1509)。分配自由块的方法与参照图14描述的方法相同。把日志块和数据块变成可擦除块,擦除日志块和数据块,并且更新检验点区中记录的自由块列表(步骤1510)。
如果日志块的所有页面都按照与数据块的页面的排列方式相同的方式进行排,但是,数据块中的一些页面在日志块中不存在,则执行复制合并。类似地,在执行复制合并之前,处理器4将恢复信息写到检验点区中(步骤1511)。
根据系统设计者的选择可能会省略步骤1511。然后,读取数据块的有效页面,以便将它们复制到日志块中(步骤1512)。更新映射表区中存储的地址转换信息,从而使日志块成为新的数据块(步骤1504),并且然后擦除数据块,并更新检验点区中存储的自由块列表(步骤1505)。
这样,如果没有找到用于更新数据的日志块,则分配自由块,把自由块变成日志块,并且对日志块执行写操作。如果仅剩一个自由块,而它不能作为日志块进行分配,则从现存的日志块中任选一个来执行块合并,由此创建新的自由块。然后,将该自由块分配作为日志块。在本发明中,应适当考虑块合并所需的费用和块的可用性。块的可用性可能会根据要执行的应用程序的类型而不同。本发明中没有详细说明替代算法。因此,本发明也可能使用象最近最少使用算法(LRU,least recently used)这样的公用替代算法来实现。
如上所述,本发明提供一种用于提高闪速存储器性能的闪速存储器管理方法。通常,为了更新一个数据块的一个部分,剩余部分也被复制,或者需要大量的地址转换信息。然而,本发明使相同的页面能够在一个日志块中被连续更新,由此提高了闪速存储器资源的效率。此外,在由于块合并期间断电所造成的系统故障的情况下,本发明能够使数据一致性地恢复。

Claims (15)

1、一种用于将预定数据写到闪速存储器中的方法,该方法包括以下步骤:
(a)接收将预定数据写到其中已经被写入数据的第一数据块的页面中的请求;
(b)将预定数据写到与包含该页面的第一数据块相对应的第一日志块中;
(c)再次接收将预定数据写到该第一数据块的页面中的请求;以及
(d)将预定数据写到该第一日志块中的自由页面中。
2、如权利要求1所述的方法,其中,步骤(b)包括步骤(b11),用于将预定数据写到该第一日志块的自由页面中。
3、如权利要求1所述的方法,其中,步骤(b)包括以下步骤:
(b21)分配与该第一数据块相对应的第一日志块;以及
(b22)将预定数据写到与第一数据块中被请求页面的位置相同的该第一日志块的自由页面中。
4、如权利要求3所述的方法,其中,步骤(b21)包括以下步骤:
(b211)通过合并第一数据块和与该第一数据块相对应的第一日志块来执行块合并,以产生第二数据块;以及
(b212)把对第一数据块执行擦除操作而得到的自由块分配为第二日志块。
5、如权利要求4所述的方法,其中,当要被分配作为第一日志块的自由块不存在时执行步骤(b211)。
6、如权利要求4所述的方法,其中,当与第一数据块相对应的第一日志块的所有页面都已被使用时执行步骤(b211)。
7、如权利要求4所述的方法,其中,步骤(b211)包括步骤(b2111),用于当第一日志块的页面被按照与第一数据块的页面的排列顺序相同的顺序进行排列,并且第一日志块的页面与第一数据块的页面一一对应时,执行转换合并,以将该第一日志块分配作为第二数据块。
8、如权利要求4所述的方法,其中,步骤(b211)包括步骤(b2112),用于当第一日志块中的页面被请求仅写入一次时,执行复制合并,以将第一数据块的相应页面复制到第一日志块中的自由页面中,然后将该第一日志块分配作为第二数据块。
9、如权利要求4所述的方法,其中,步骤(b211)步骤(b2113),用于执行简单合并,以将第一日志块中的最新页面复制到已被写入数据的一个自由块的自由页面中,并且将第一数据块的与该自由块的剩余自由页面相对应的页面复制到该剩余的自由页面中,由此将该自由块分配作为第二数据块。
10、如权利要求1所述的方法,其中,步骤(d)包括以下步骤:
(d1)如果第一日志块中不存在自由页面,则分配新的第二日志块;以及
(d2)将预定数据写到该第二日志块中的自由页面中。
11、如权利要求10所述的方法,其中,步骤(d1)包括以下步骤:
(d11)当第一日志块的页面被按照与第一数据块的页面的排列顺序相同的顺序进行排列,并且第一日志块的页面与第一数据块的页面一一对应时,执行转换合并,以将该第一日志块分配作为第二数据块,以及
(d12)把对第一数据块执行擦除操作而得到的自由块分配作为第二日志块。
12、如权利要求10所述的方法,其中,步骤(d1)包括以下步骤:
(d21)当第一日志块中的页面被请求仅写入一次时,执行复制合并,以将第一数据块中的相应页面复制到第一日志块中的自由页面中;以及
(d22)把对第一数据块执行擦除操作而得到的自由块分配作为第二日志块。
13、如权利要求10所述的方法,其中,步骤(d1)包括以下步骤:
(d31)执行简单合并,以将第一日志块中的最新页面复制到一个自由块的自由页面中,并且将第一数据块的与该自由块的剩余自由页面相对应的页面复制到该剩余的自由页面中,由此将该自由块分配作为第二数据块;以及
(d32)把对第一数据块或第一日志块执行擦除操作而得到的自由块分配作为第二日志块。
14、如权利要求10所述的方法,其中,步骤(d2)包括步骤(d21),用于将预定数据写到数据块中与被请求页面位置相同的自由页面中。
15、如权利要求1所述的方法,其中,所述第一数据块被配置用于存储数据,而所述第一日志块被配置用于存储已经被修改的数据。
CNB01144049XA 2001-06-04 2001-12-28 闪速存储器管理方法 Expired - Lifetime CN1322428C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR31124/01 2001-06-04
KR10-2001-0031124A KR100389867B1 (ko) 2001-06-04 2001-06-04 플래시 메모리 관리방법

Publications (2)

Publication Number Publication Date
CN1389790A CN1389790A (zh) 2003-01-08
CN1322428C true CN1322428C (zh) 2007-06-20

Family

ID=19710358

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB01144049XA Expired - Lifetime CN1322428C (zh) 2001-06-04 2001-12-28 闪速存储器管理方法

Country Status (4)

Country Link
US (5) US6938116B2 (zh)
JP (1) JP3708047B2 (zh)
KR (1) KR100389867B1 (zh)
CN (1) CN1322428C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101763320B (zh) * 2008-12-24 2011-11-30 鸿富锦精密工业(深圳)有限公司 存储方法
CN101529410B (zh) * 2006-04-07 2013-11-06 Pp联合有限公司 具有综合质量管理的报告生成

Families Citing this family (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
JP3967121B2 (ja) * 2001-12-11 2007-08-29 株式会社ルネサステクノロジ ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム
US7111289B2 (en) * 2001-12-21 2006-09-19 Agere Systems, Inc. Method for implementing dual link list structure to enable fast link-list pointer updates
CN100347685C (zh) 2002-08-29 2007-11-07 松下电器产业株式会社 用于将数据写入快闪存储设备的半导体存储器的装置和方法
KR100484485B1 (ko) * 2002-10-01 2005-04-20 한국전자통신연구원 비휘발성 메모리에의 데이터 저장 방법 및 장치
US6910106B2 (en) * 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
JP3928724B2 (ja) * 2003-02-20 2007-06-13 ソニー株式会社 記録媒体の記録制御方法および記録媒体の記録制御装置
WO2005022393A1 (ja) * 2003-08-29 2005-03-10 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置及びその書込み方法
KR100608602B1 (ko) * 2003-12-10 2006-08-03 삼성전자주식회사 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
KR100526188B1 (ko) 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
KR100533683B1 (ko) * 2004-02-03 2005-12-05 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
JP4701618B2 (ja) * 2004-02-23 2011-06-15 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
EP1746510A4 (en) 2004-04-28 2008-08-27 Matsushita Electric Ind Co Ltd NONVOLATILE STORAGE DEVICE AND DATA WRITING METHOD
CN100437517C (zh) * 2004-04-28 2008-11-26 松下电器产业株式会社 非易失性存储装置和数据写入方法
JP4253272B2 (ja) * 2004-05-27 2009-04-08 株式会社東芝 メモリカード、半導体装置、及び半導体メモリの制御方法
JP2006003966A (ja) * 2004-06-15 2006-01-05 Oki Electric Ind Co Ltd フラッシュメモリの書込方法
US7302543B2 (en) * 2004-06-16 2007-11-27 Nec Laboratories America, Inc. Compressed memory architecture for embedded systems
KR100568115B1 (ko) 2004-06-30 2006-04-05 삼성전자주식회사 점진적 머지 방법 및 그것을 이용한 메모리 시스템
KR100577384B1 (ko) * 2004-07-28 2006-05-10 삼성전자주식회사 페이지 정보를 이용한 페이지 대체 방법
KR100695267B1 (ko) * 2004-08-23 2007-03-14 에스케이 텔레콤주식회사 이동통신 단말기의 랜덤 액세스 메모리의 저장 공간을절감하는 방법
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
US20090172269A1 (en) * 2005-02-04 2009-07-02 Samsung Electronics Co., Ltd. Nonvolatile memory device and associated data merge method
KR100684887B1 (ko) 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
KR100703727B1 (ko) 2005-01-12 2007-04-05 삼성전자주식회사 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
US7877539B2 (en) 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184719A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184718A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
KR100684942B1 (ko) 2005-02-07 2007-02-20 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
KR100703753B1 (ko) * 2005-04-14 2007-04-06 삼성전자주식회사 파일 시스템 관리 장치 및 방법
US7275140B2 (en) * 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
KR100706246B1 (ko) * 2005-05-24 2007-04-11 삼성전자주식회사 읽기 성능을 향상시킬 수 있는 메모리 카드
JP4723921B2 (ja) * 2005-06-13 2011-07-13 株式会社日立製作所 記憶制御装置及びその制御方法
US20060294049A1 (en) * 2005-06-27 2006-12-28 Microsoft Corporation Back-off mechanism for search
US7685380B1 (en) * 2005-06-29 2010-03-23 Xilinx, Inc. Method for using configuration memory for data storage and read operations
ATE493707T1 (de) * 2005-08-03 2011-01-15 Sandisk Corp Nichtflüchtiger speicher mit blockverwaltung
US7552271B2 (en) * 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7949845B2 (en) 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7669003B2 (en) 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7984084B2 (en) 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
JP4533956B2 (ja) * 2005-08-03 2010-09-01 サンディスク コーポレイション フラッシュメモリシステムのデータ記憶容量の解放
US7474559B1 (en) 2005-08-30 2009-01-06 Xilinx, Inc. Circuit and method for employing unused configuration memory cells as scratchpad memory
CN100573476C (zh) * 2005-09-25 2009-12-23 深圳市朗科科技股份有限公司 闪存介质数据管理方法
KR100801072B1 (ko) * 2005-09-30 2008-02-11 삼성전자주식회사 플래시 메모리, 이를 위한 맵핑 장치 및 방법
US7529905B2 (en) 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7814262B2 (en) 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7516267B2 (en) * 2005-11-03 2009-04-07 Intel Corporation Recovering from a non-volatile memory failure
US20070136671A1 (en) * 2005-12-12 2007-06-14 Buhrke Eric R Method and system for directing attention during a conversation
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
EP1966701A2 (en) * 2005-12-21 2008-09-10 Nxp B.V. Memory with block-erasable locations
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7676474B2 (en) * 2005-12-22 2010-03-09 Sap Ag Systems and methods for finding log files generated by a distributed computer
EP1808863A1 (en) * 2006-01-16 2007-07-18 Deutsche Thomson-Brandt Gmbh Method and apparatus for recording high-speed input data into a matrix of memory devices
JP4898252B2 (ja) * 2006-03-15 2012-03-14 パナソニック株式会社 不揮発性記憶装置及びそのデータ管理方法
JP2007280108A (ja) * 2006-04-07 2007-10-25 Sony Corp 記憶媒体制御装置、記憶媒体制御方法、プログラム
US8307148B2 (en) 2006-06-23 2012-11-06 Microsoft Corporation Flash management techniques
US20080005449A1 (en) * 2006-07-03 2008-01-03 Phison Electronics Corp. Generalized flash memory and method thereof
KR101430097B1 (ko) * 2006-09-15 2014-08-13 샌디스크 테크놀로지스, 인코포레이티드 비휘발성 메모리 및 클래스 기반의 업데이트 블록 대체 규칙을 위한 방법
JP4609406B2 (ja) * 2006-10-12 2011-01-12 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
KR100849221B1 (ko) * 2006-10-19 2008-07-31 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
KR100771521B1 (ko) 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR100843135B1 (ko) 2006-11-20 2008-07-02 삼성전자주식회사 비휘발성 메모리 관리 방법 및 장치
JP2008152464A (ja) 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
US8560760B2 (en) * 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
KR100885181B1 (ko) * 2007-02-06 2009-02-23 삼성전자주식회사 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
KR100817087B1 (ko) * 2007-02-13 2008-03-27 삼성전자주식회사 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법
US7657572B2 (en) 2007-03-06 2010-02-02 Microsoft Corporation Selectively utilizing a plurality of disparate solid state storage locations
JP4468407B2 (ja) * 2007-05-14 2010-05-26 フェリカネットワークス株式会社 データ管理システム、管理サーバ、データ管理方法、およびプログラム
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
KR101300821B1 (ko) 2007-07-04 2013-08-26 삼성전자주식회사 비휘발성 메모리의 데이터 손실을 방지하기 위한 장치 및방법
KR101472797B1 (ko) * 2007-07-16 2014-12-15 삼성전자주식회사 데이터를 읽거나 쓰기 위한 방법 및 장치
JP5378197B2 (ja) * 2007-07-20 2013-12-25 パナソニック株式会社 メモリコントローラ、メモリカード、不揮発性メモリシステム
KR101447188B1 (ko) * 2007-07-31 2014-10-08 삼성전자주식회사 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
JP2009139990A (ja) * 2007-12-03 2009-06-25 Internatl Business Mach Corp <Ibm> 情報の不正取得を防止する技術
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
CN101256564B (zh) * 2007-12-25 2010-06-02 深圳市同洲电子股份有限公司 一种循环文件的操作方法
JP4533968B2 (ja) 2007-12-28 2010-09-01 株式会社東芝 半導体記憶装置及びその制御方法、コントローラ、情報処理装置
KR101465789B1 (ko) * 2008-01-24 2014-11-26 삼성전자주식회사 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
US8275945B2 (en) 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
US8332572B2 (en) * 2008-02-05 2012-12-11 Spansion Llc Wear leveling mechanism using a DRAM buffer
US8352671B2 (en) 2008-02-05 2013-01-08 Spansion Llc Partial allocate paging mechanism using a controller and a buffer
US8370519B2 (en) * 2008-02-12 2013-02-05 Microsoft Corporation Copying data onto an expandable memory in a wireless device using a desktop interface
KR101477047B1 (ko) * 2008-02-29 2014-12-30 삼성전자주식회사 메모리 시스템 및 그것의 블록 병합 방법
KR101067457B1 (ko) 2008-03-01 2011-09-27 가부시끼가이샤 도시바 메모리 시스템
JP4745356B2 (ja) * 2008-03-01 2011-08-10 株式会社東芝 メモリシステム
JP4498426B2 (ja) * 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
US7979626B2 (en) * 2008-05-13 2011-07-12 Microsoft Corporation Flash recovery employing transaction log
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
JP5132451B2 (ja) * 2008-07-02 2013-01-30 株式会社リコー 画像形成装置
JP2010020586A (ja) * 2008-07-11 2010-01-28 Nec Electronics Corp データ処理装置
CN101324903B (zh) * 2008-07-24 2013-02-13 深圳市同洲电子股份有限公司 一种循环文件转循环线性文件方法及其访问操作方法
KR101086857B1 (ko) * 2008-07-25 2011-11-25 주식회사 팍스디스크 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
KR100954039B1 (ko) * 2008-08-11 2010-04-20 (주)인디링스 플래시 메모리 제어 방법 및 제어 장치
US20100057755A1 (en) * 2008-08-29 2010-03-04 Red Hat Corporation File system with flexible inode structures
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
KR101011434B1 (ko) * 2008-10-28 2011-01-28 코오롱건설주식회사 침지형분리막여과조의 공기공급장치
KR100970537B1 (ko) * 2008-11-20 2010-07-16 서울시립대학교 산학협력단 Ssd 관리 장치 및 방법
KR101022001B1 (ko) * 2008-12-08 2011-03-17 주식회사 이스트후 플래시 메모리 시스템 및 플래시 메모리의 관리 방법
JP5175703B2 (ja) * 2008-12-11 2013-04-03 株式会社東芝 メモリデバイス
KR101028929B1 (ko) * 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
KR101581859B1 (ko) * 2009-02-27 2016-01-21 삼성전자주식회사 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법
KR100994052B1 (ko) 2009-05-06 2010-11-11 성균관대학교산학협력단 플래시 변환 계층에서 수행되는 데이터 관리 방법 및 이를 수행하는 플래시 메모리 장치
TWI457940B (zh) * 2009-05-15 2014-10-21 Macronix Int Co Ltd 區塊為基礎快閃記憶體之位元組存取
WO2011007511A1 (ja) * 2009-07-16 2011-01-20 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム
KR101143397B1 (ko) 2009-07-29 2012-05-23 에스케이하이닉스 주식회사 페이지 복사 발생 빈도를 줄이는 반도체 스토리지 시스템 및 그 제어 방법
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
TWI446349B (zh) 2010-03-04 2014-07-21 Phison Electronics Corp 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
CN103473182B (zh) * 2010-03-12 2016-05-11 群联电子股份有限公司 非挥发性存储器存取方法及非挥发性存储器控制器
US20110283044A1 (en) * 2010-05-11 2011-11-17 Seagate Technology Llc Device and method for reliable data storage
US20110289289A1 (en) * 2010-05-20 2011-11-24 Microsoft Corporation Backup and restore of items using bounded checkpoint and log buffers in memory
JP5679383B2 (ja) * 2011-06-09 2015-03-04 Necディスプレイソリューションズ株式会社 電子機器、電源操作ログ記録方法およびプログラム
TWI521343B (zh) 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
CN102521289B (zh) * 2011-11-29 2013-12-04 华为技术有限公司 一种文件同步方法、装置及系统
WO2013091167A1 (zh) * 2011-12-21 2013-06-27 华为技术有限公司 日志存储方法及系统
US8966205B1 (en) 2012-05-10 2015-02-24 Western Digital Technologies, Inc. System data management using garbage collection and hybrid self mapping
US8984247B1 (en) * 2012-05-10 2015-03-17 Western Digital Technologies, Inc. Storing and reconstructing mapping table data in a data storage system
US9977612B1 (en) 2012-05-11 2018-05-22 Western Digital Technologies, Inc. System data management using garbage collection and logs
US9170932B1 (en) 2012-05-22 2015-10-27 Western Digital Technologies, Inc. System data storage mechanism providing coherency and segmented data loading
KR101997572B1 (ko) * 2012-06-01 2019-07-09 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법
KR102147359B1 (ko) * 2012-06-29 2020-08-24 삼성전자 주식회사 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
KR20140078893A (ko) * 2012-12-18 2014-06-26 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
CN103077118A (zh) * 2012-12-28 2013-05-01 深圳市硅格半导体有限公司 一种无效数据回收方法及系统
KR102069273B1 (ko) * 2013-03-11 2020-01-22 삼성전자주식회사 시스템 온 칩 및 그 동작방법
TWI505090B (zh) 2013-03-12 2015-10-21 Macronix Int Co Ltd 差異邏輯至實體方法
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
KR101519069B1 (ko) * 2013-12-03 2015-05-12 에스케이텔레콤 주식회사 메모리장치 및 메모리장치의 동작 방법
WO2015096698A1 (zh) * 2013-12-24 2015-07-02 飞天诚信科技股份有限公司 一种Flash的数据写入和读取方法
CN103778964B (zh) * 2013-12-30 2016-08-17 上海晨思电子科技有限公司 一种NAND Flash烧写数据的处理、使用方法及装置、系统
CN104021088B (zh) * 2014-06-24 2017-11-21 广东睿江云计算股份有限公司 日志存储方法和装置
JP2016018473A (ja) * 2014-07-10 2016-02-01 株式会社東芝 半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法
TWI512609B (zh) * 2014-09-05 2015-12-11 Silicon Motion Inc 讀取命令排程方法以及使用該方法的裝置
KR102474937B1 (ko) 2016-03-21 2022-12-07 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
RU2636107C1 (ru) * 2016-10-28 2017-11-20 Общество с ограниченной ответственностью "Лаборатория информационно-измерительной и преобразовательной техники" Способ записи данных на накопитель цифровой информации на базе flash-памяти типа nand
US9905294B1 (en) 2017-05-03 2018-02-27 Seagate Technology Llc Writing logically offset pages of data to N-level memory cells coupled to a common word line
TWI650660B (zh) * 2017-09-21 2019-02-11 和碩聯合科技股份有限公司 交易式檔案存取方法與電子裝置
US10896125B2 (en) 2017-11-17 2021-01-19 SK Hynix Inc. Garbage collection methods and memory systems for hybrid address mapping
CN109800180B (zh) 2017-11-17 2023-06-27 爱思开海力士有限公司 用于地址映射的方法和存储器系统
US11947839B2 (en) 2021-05-10 2024-04-02 Samsung Electronics Co., Ltd. Storage device, system, and method for customizable metadata

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1098526A (zh) * 1993-03-08 1995-02-08 M-系统有限公司 闪速文件系统
WO1998043248A1 (en) * 1997-03-21 1998-10-01 Canal+ Societe Anonyme Computer memory organization
CN1238846A (zh) * 1996-09-30 1999-12-15 英特尔公司 对非易失性存储器中的文件进行连续重写的方法
CN1293404A (zh) * 1999-10-14 2001-05-02 三星电子株式会社 快闪文件系统

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69034191T2 (de) * 1989-04-13 2005-11-24 Sandisk Corp., Sunnyvale EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
US5226133A (en) * 1989-12-01 1993-07-06 Silicon Graphics, Inc. Two-level translation look-aside buffer using partial addresses for enhanced speed
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
US5652723A (en) * 1991-04-18 1997-07-29 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device
JP3485938B2 (ja) * 1992-03-31 2004-01-13 株式会社東芝 不揮発性半導体メモリ装置
JP3328321B2 (ja) * 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
US5528764A (en) * 1992-12-24 1996-06-18 Ncr Corporation Bus system with cache snooping signals having a turnaround time between agents driving the bus for keeping the bus from floating for an extended period
JPH06222986A (ja) * 1993-01-26 1994-08-12 Oki Electric Ind Co Ltd メモリ制御装置
US5266133A (en) 1993-02-17 1993-11-30 Sika Corporation Dry expansible sealant and baffle composition and product
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5479638A (en) 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
JP3184383B2 (ja) * 1993-11-26 2001-07-09 シャープ株式会社 ホームコントローラ
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
JP3706167B2 (ja) * 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
JPH08314794A (ja) * 1995-02-28 1996-11-29 Matsushita Electric Ind Co Ltd 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム
JPH08328762A (ja) * 1995-06-06 1996-12-13 Mitsubishi Electric Corp 半導体ディスク装置及びそのメモリ管理方法
US5778427A (en) 1995-07-07 1998-07-07 Sun Microsystems, Inc. Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
JPH0997205A (ja) * 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
US5696929A (en) * 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
JPH09185551A (ja) * 1996-01-08 1997-07-15 Mitsubishi Electric Corp 半導体記憶装置
KR980010782A (ko) * 1996-07-02 1998-04-30 이대원 플래시 메모리의 오버라이트 방법
JPH1040175A (ja) * 1996-07-19 1998-02-13 Canon Inc フラッシュromの記憶管理方法及び装置
US5956473A (en) 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US5745418A (en) 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
JPH10154101A (ja) * 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
US6418506B1 (en) * 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
AU757820B2 (en) * 1997-10-16 2003-03-06 University Of Manchester, The Timing circuit
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6076137A (en) * 1997-12-11 2000-06-13 Lexar Media, Inc. Method and apparatus for storing location identification information within non-volatile memory devices
US6263398B1 (en) * 1998-02-10 2001-07-17 Ramtron International Corporation Integrated circuit memory device incorporating a non-volatile memory array and a relatively faster access time memory cache
US6298428B1 (en) 1998-03-30 2001-10-02 International Business Machines Corporation Method and apparatus for shared persistent virtual storage on existing operating systems
US6327638B1 (en) 1998-06-30 2001-12-04 Lsi Logic Corporation Disk striping method and storage subsystem using same
JP2000057039A (ja) * 1998-08-03 2000-02-25 Canon Inc アクセス制御方法及び装置及びファイルシステム及び情報処理装置
KR20000039727A (ko) * 1998-12-15 2000-07-05 구자홍 플래시 메모리 접근 방법
JP2001006379A (ja) * 1999-06-16 2001-01-12 Fujitsu Ltd 複写、移動機能を有するフラッシュメモリ
KR100577380B1 (ko) * 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
JP2001209543A (ja) * 2000-01-28 2001-08-03 Nec Ic Microcomput Syst Ltd フラッシュ・マイコンにおけるプログラム書き換え方法
JP3734408B2 (ja) 2000-07-03 2006-01-11 シャープ株式会社 半導体記憶装置
US6704835B1 (en) * 2000-09-26 2004-03-09 Intel Corporation Posted write-through cache for flash memory
US6564286B2 (en) * 2001-03-07 2003-05-13 Sony Corporation Non-volatile memory system for instant-on
US6836816B2 (en) * 2001-03-28 2004-12-28 Intel Corporation Flash memory low-latency cache
US6760805B2 (en) * 2001-09-05 2004-07-06 M-Systems Flash Disk Pioneers Ltd. Flash management system for large page size
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1098526A (zh) * 1993-03-08 1995-02-08 M-系统有限公司 闪速文件系统
CN1238846A (zh) * 1996-09-30 1999-12-15 英特尔公司 对非易失性存储器中的文件进行连续重写的方法
WO1998043248A1 (en) * 1997-03-21 1998-10-01 Canal+ Societe Anonyme Computer memory organization
CN1293404A (zh) * 1999-10-14 2001-05-02 三星电子株式会社 快闪文件系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529410B (zh) * 2006-04-07 2013-11-06 Pp联合有限公司 具有综合质量管理的报告生成
CN101763320B (zh) * 2008-12-24 2011-11-30 鸿富锦精密工业(深圳)有限公司 存储方法

Also Published As

Publication number Publication date
USRE44052E1 (en) 2013-03-05
JP2002366423A (ja) 2002-12-20
CN1389790A (zh) 2003-01-08
USRE45577E1 (en) 2015-06-23
KR20020092487A (ko) 2002-12-12
US6938116B2 (en) 2005-08-30
USRE46404E1 (en) 2017-05-16
USRE45222E1 (en) 2014-10-28
KR100389867B1 (ko) 2003-07-04
JP3708047B2 (ja) 2005-10-19
US20020184436A1 (en) 2002-12-05

Similar Documents

Publication Publication Date Title
CN1322428C (zh) 闪速存储器管理方法
CN100454273C (zh) 用于块内页面分组的方法及设备
CN101673245B (zh) 包括存储器管理装置的信息处理装置和存储器管理方法
JP2856621B2 (ja) 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
CN100487672C (zh) 用于分割一逻辑块的方法及设备
CN100485642C (zh) 非易失性存储器系统及操作非易失性存储器系统的方法
KR100630980B1 (ko) 메모리 카드 및 반도체 장치
US8041884B2 (en) Controller for non-volatile memories and methods of operating the memory controller
CN101382953B (zh) 在用户空间访问文件系统的接口系统与文件读、写方法
CN105122220A (zh) 固态驱动器中的原子写入命令支持
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
CN101535963A (zh) 具有可编程耐久性的快闪存储器
CN1098526A (zh) 闪速文件系统
JPWO2007066720A1 (ja) 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法
CN105027090A (zh) 用于固态驱动器中的物理到逻辑映射的方法、设备和系统
JPWO2005106673A1 (ja) 不揮発性記憶装置及びデータ書込み方法
KR20150083264A (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
CN102779096A (zh) 一种基于页块面三维的闪存地址映射方法
JP2011022933A (ja) メモリ管理装置を含む情報処理装置及びメモリ管理方法
US20090132757A1 (en) Storage system for improving efficiency in accessing flash memory and method for the same
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
US7058784B2 (en) Method for managing access operation on nonvolatile memory and block structure thereof
JPH07152641A (ja) プログラムキャッシュ装置
JP2007011872A (ja) メモリカードとその制御方法
CN105335220A (zh) 一种存储设备的事务恢复方法,及装置

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20070620