CN1389790A - 闪速存储器管理方法 - Google Patents
闪速存储器管理方法 Download PDFInfo
- Publication number
- CN1389790A CN1389790A CN01144049A CN01144049A CN1389790A CN 1389790 A CN1389790 A CN 1389790A CN 01144049 A CN01144049 A CN 01144049A CN 01144049 A CN01144049 A CN 01144049A CN 1389790 A CN1389790 A CN 1389790A
- Authority
- CN
- China
- Prior art keywords
- page
- log blocks
- data
- data block
- write
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4239—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
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或RAM 3中读数据和向其写数据。依照本发明的闪速存储器管理方法对闪速存储器1执行写和读操作。ROM 2和RAM 3存储处理器4执行的应用程序代码或相关的数据结构。
参照图2,闪速存储器1包括多个数据块和与该多个数据块的至少一些相对应的日志块。数据块是用于存储任何普通数据的块,而日志块是用于在要对数据块的预定部分进行修改时记录被修改数据的块。因此,与多个数据块相对应的多个日志块包含相应数据块的被修改的页面。日志块中存储的页面具有的优先权优于相应数据块中存储的对应物,以便被引用。在本文中,具有第一优先权的页面称为“有效页面(valid pages)”,而被有效页面忽略的页面,甚至当该被忽略的页面中记录了物理上有效的数据时,也在逻辑上称为“无效页面(invalid pages)”。
参照图3,当用户请求在预定的逻辑地址读预定页面时,处理器4查阅RAM 3中记录的日志指针表,以检查与预定页面相对应的日志块是否存在。如果相应日志块存在,则对被请求页面是否有效地存储在该日志块中进行检查。如果被请求页面有效地存储在该日志块中,则读取该日志块中存储的页面。否则,读取与该日志块相对应的数据块中存储的相应页面。日志指针表将在后面进行描述。
图4是本发明的一个实施例的、将闪速存储器1分成多个区域的参考图。参照图4,闪速存储器1被分成映射表区(map region)、日志块区、数据区、和自由块区。映射表区存储地址转换信息;日志块区用于日志块;数据块区用于数据块,以存储普通数据;而自由块区用于分配日志块或数据块。这里,在逻辑上对闪速存储器1进行分割,以形成四个区。因此,在物理上,这四个区,特别是数据块区、日志块区、和自由块区能够以几个分散区的形式不连续地存在于闪速存储器1中。
图5是本发明的另一实施例的、将闪速存储器1分成多个区域的参考图。参照图5,闪速存储器1被分成映射表区、检验点区、日志块区、数据块区、和自由块区。在该实施例中,检验点区是附加提供的。数据恢复所需的恢复信息记录在该检验点区中。与图4所示的区相似,映射表区存储地址转换信息;日志块区用于分配日志块;数据块区记录普通数据;而自由块区用于分配日志块或数据块。分别存储在映射表区和检验点区中的地址转换信息和恢复信息将会在后面进行详细的描述。
日志指针表是指阅用于管理日志块的数据结构。日志指针表包含数据块的逻辑地址、相应日志块的物理地址、以及按照日志块中的页面的相同物理排列顺序进行排列的相应数据块中的更新页面的偏移值(被请求页面的逻辑地址)。根据本发明,处理器4对日志块区进行扫描,以构造RAM 3中的日志指针表。参照图6,日志指针表包含与每个日志块相对应的条目。一旦接收到请求,要根据预定页面的逻辑地址从闪速存储器1中的特定位置读数据或向其写数据时,在处理器4就查阅日志指针表,以根据相应条目的存在访问日志块或数据块。
图7示出了一个日志指针表条目的结构。参照图7,该日志指针表条目包括数据块的逻辑地址log blk、和相应日志块的物理地址phy blk。此外,该日志指针表条目还按照数据块中的页面记录顺序来记录日志块中相应页面的逻辑地址页面#0、页面#1、…、页面#N。
例如,假定一个块包含十七个页面,并且逻辑地址是02FF(十六进制数),前三位数“02FF”表示块地址,而最后一位数“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中的用于自由块和可擦除块的列表。该用于自由块和可擦除块的列表是指与日志指针表一同在RAM 3中记录的数据结构。该列表可能被记录在闪速存储器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 (38)
1、一种用于将预定数据写到闪速存储器中的方法,该方法包括以下步骤:
(a)接收将预定数据写到已被写数据的页面中的请求;
(b)将预定数据写到与包含该页面的数据块相对应的日志块中;
(c)再次接收将预定数据写到该页面中的请求;以及
(d)将预定数据写到日志块中的空的自由页面中。
2、如权利要求1所述的方法,其中,步骤(b)包括步骤(b11),用于将预定数据写到空的自由页面中。
3、如权利要求1所述的方法,其中,步骤(b)包括以下步骤:
(b21)分配日志块;以及
(b22)将预定数据写到数据块与中被请求页面位置相同的空白页面中。
4、一种用于将预定数据写到闪速存储器中的方法,该方法包括以下步骤:
(a)接收将预定数据写到页面中的请求;
(b)分配与包含该页面的第一数据块相对应的日志块1-1;
(c)将预定数据写到日志块1-1中的空页面中;
(d)再次接收将预定的数据写到该页面中的请求;以及
(e)将预定数据写到日志块1-1中的空的自由页面中。
5、如权利要求4所述的方法,其中,步骤(b)包括以下步骤:
(b1)执行块合,以根据第二数据块和与该第二数据块相对应的第二日志块创建第三数据块;以及
(b2)把对第二数据块执行擦除操作而得到的自由块分配作为日志块1-1。
6、如权利要求5所述的方法,其中,当要被分配作为日志块1-1的自由块不存在时执行步骤(b1)。
7、如权利要求5所述的方法,其中,当与第一数据块相对应的现存日志块的所有页面都已被使用时执行步骤(b1)。
8、如权利要求5所述的方法,其中,步骤(b1)包括步骤(b11),用于当第二日志块的页面被按照与第二数据块的页面的排列顺序相同的顺序进行排列,并且第二日志块的页面与第二数据块的页面一一对应时,执行转换合并,以将第二日志块变成第三数据块。
9、如权利要求5所述的方法,其中,步骤(b1)包括步骤(b12),用于当第二日志块中的页面被请求仅写入一次时,执行复制合并,以将第二数据块的相应页面复制到第二日志块中的自由页面中,并且创建第三数据块。
10、如权利要求5所述的方法,其中,步骤(b1)步骤(b13),用于执行简单合并,以将第二日志块中的最新页面复制到已被写入数据的自由块的自由页面中,并且将第二数据块的相应页面复制到其剩余的自由页面中,由此创建第三数据块。
11、如权利要求4所述的方法,其中,步骤(e)包括以下步骤:
(e1)如果日志块1-1中不存在自由页面,则分配新的日志块1-2;以及
(e2)将预定数据写到日志块1-2中的自由页面中。
12、如权利要求11所述的方法,其中,步骤(e1)包括以下步骤:
(e11)当日志块1-1的页面被按照与第一数据块的页面的排列顺序相同的顺序进行排列,并且日志块1-1的页面与第一数据块的页面一对一对应时,执行转换合并,以将日志块变成第二数据块,以及
(e12)把对第一数据块执行擦除操作而得到的自由块分配作为日志块1-2。
13、如权利要求11所述的方法,其中,步骤(e1)包括以下步骤:
(e21)当日志块1-1中的页面被请求仅写入一次时,执行复制合并,以将第一数据块中的相应页面复制到日志块1-1中的自由页面中;以及
(e22)把对第一数据块执行擦除操作而得到的自由块分配作为日志块1-2。
14、如权利要求11所述的方法,其中,步骤(e1)包括以下步骤:
(e31)执行简单合并,以将日志块1-1中的最新页面复制到自由块的自由页面中,并且将第一数据块的相应页面复制到其剩余的自由页面中,由此创建第二数据块;以及
(e32)把对第一数据块或日志块1-1执行擦除操作而得到的自由块分配作为日志块1-2。
15、如权利要求11所述的方法,其中,步骤(e2)包括步骤(e21),用于将预定数据写到数据块中与被请求页面位置相同的自由页面中。
16、一种用于从闪速存储器中读取预定数据的方法,该方法包括下列步骤:
(a)对日志指针表进行检索,查找记录被请求页面的逻辑地址的块地址部分的条目;
(b)检查被请求页面的逻辑地址是否存在于找到的条目中;以及
(c)查阅找到的条目中记录的相应日志块的逻辑地址、以及被请求页面的逻辑地址被写到找到的条目中的位置,并且访问日志块的相应页面。
17、如权利要求16所述的方法,其中,在步骤(c)中,在与被请求页面的逻辑进址被写到找到的条目中的位置相同的位置上访问日志块中的相应页面。
18、一种用于管理包含数据块和用于写数据以更新数据块的日志块的闪速存储器的方法,该方法包括以下步骤:
(a)当第一数据块的页面被按照与排列和第一数据块相对应的第一日志块的页面的顺序相同的顺序进行排列,并且第一数据块的所有页面与第一日志块的页面一一映射时,将第一日志块变成第二数据块;以及
(b)更新地址转换信息。
19、如权利要求18所述的方法,在步骤(a)前面还包括步骤(a0),用于写在步骤(a)或(b)期间出现系统故障时恢复数据用的恢复信息。
20、如权利要求19所述的方法,进一步包括步骤(c),用于在步骤(a)或(b)期间出现系统故障时,根据恢复信息恢复数据。
21、如权利要求20所述的方法,其中,恢复信息包括自由块列表、日志块列表、以及日志指针表,日志指针表是用于管理日志块的数据结构。
22、如权利要求21所述的方法,其中,日志指针表包含与日志块一一对应的日志指针表条目,每个条目将日志块的物理地址映射成相应数据块的逻辑地址,并且按照相应日志块的页面的物理排列顺序来存储数据块的被请求页面的逻辑地址。
23、如权利要求21所述的方法,其中,通过扫描存储日志块的日志块区来构造日志指针表。
24、一种用于管理包含数据块和用于写数据以更新数据块的日志块的闪速存储器的方法,该方法包括以下步骤:
(a)第一日志块中的页面被请求仅写入一次时,将第一数据块的相应页面复制到第一日志块的自由页面中,以便创建第二数据块;以及
(b)更新地址转换信息。
25、如权利要求24所述的方法,在步骤(a)之前还包括步骤(a0),用于写在步骤(a)或(b)期间出现系统故障时恢复数据用的恢复信息。
26、如权利要求25所述的方法,进一步骤包括步骤(c),用于在步骤(a)或(b)期间出现系统故障时,根据恢复信息恢复数据。
27、如权利要求26所述的方法,其中,恢复信息包括自由块列表、日志块列表、以及日志指针表,日志指针表是用于管理日志块的数据结构。
28、如权利要求27所述的方法,其中,日志指针表包含与日志块一一对应的日志指针表条目,每个条目将日志块的物理地址映射成相应数据块的逻辑地址,并且按照相应日志块的页面的物理排列顺序来存储数据块的被请求页面的逻辑地址。
29、如权利要求27所述的方法,其中,通过扫描存储日志块的日志块区来构造日志指针表。
30、一种用于管理包含数据块和用于写数据以更新数据块的日志块的闪速存储器的方法,该方法包括以下步骤:
(a)将第一日志块中的最新页面复制到已被写入数据的自由块中,并且将与第一日志块相对应的第一数据块的相应页面复制到剩余的自由页面中,以创建第二数据块;以及
(b)更新地址转换信息。
31、如权利要求30所述的方法,在步骤(a)之前还包括步骤(a0),用于写在步骤(a)或(b)期间出现系统故障时恢复数据用的恢复信息。
32、如权利要求31所述的方法,进一步包括步骤(c),用于在步骤(a)或(b)期间出现系统故障时,根据恢复信息恢复数据。
33、如权利要求32所述的方法,其中,恢复信息包括自由块列表、日志块列表、以及日志指针表,日志指针表是用于管理日志块的数据结构。
34、如权利要求33所述的方法,其中,日志指针表包含与日志块一一对应的日志指针表条目,每个条目将日志块的物理地址映射成相应数据块的逻辑地址,并且按照相应日志块的页面的物理排列顺序来存储数据块的被请求页面的逻辑地址。
35、如权利要求34所述的方法,其中,通过扫描存储日志块的日志块区来构造日志指针表。
36、一种用于管理包含数据块和用于写数据以更新数据块的日志块的闪速存储器的方法,该方法包括以下步骤:
(a)为闪速存储器分配预定的区,并且将数据块和日志块列表以及用于管理日志块的数据结构作为恢复信息写到预定的区中;
(b)在系统出现故障的情况下,根据恢复信息检查当前正被写入闪速存储器的状态,以确定地否出现错误;
(c)如果出现错误,则根据恢复信息恢复数据。
37、如权利要求36所述的方法,其中,恢复信息进一步包括自由块列表。
38、如权利要求37所述的方法,其中,日志指针表包含与日志块号相对应的日志指针表条目,每个条目将日志块的物理地址映射成相应数据块的逻辑地址,并且按照相应日志块的页面的物理排列顺序来存储数据块的被请求页面的逻辑地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0031124A KR100389867B1 (ko) | 2001-06-04 | 2001-06-04 | 플래시 메모리 관리방법 |
KR31124/01 | 2001-06-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1389790A true CN1389790A (zh) | 2003-01-08 |
CN1322428C 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 (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100428192C (zh) * | 2004-06-15 | 2008-10-22 | 冲电气工业株式会社 | 闪速存储器的写入方法 |
CN100440167C (zh) * | 2003-02-20 | 2008-12-03 | 索尼株式会社 | 记录媒体的记录控制方法及记录控制装置 |
CN102193871A (zh) * | 2010-03-12 | 2011-09-21 | 群联电子股份有限公司 | 非挥发性存储器存取方法、系统及非挥发性存储器控制器 |
CN101198939B (zh) * | 2005-05-12 | 2011-11-23 | 晟碟以色列有限公司 | 管理闪存中的存储器 |
CN101165660B (zh) * | 2006-10-19 | 2011-12-21 | 三星电子株式会社 | 在非易失性存储器中重用日志块的方法、非易失性存储器件 |
TWI403896B (zh) * | 2006-01-16 | 2013-08-01 | Thomson Licensing | 第一型記憶裝置的矩陣高速輸入資料之記錄方法 |
CN103456357A (zh) * | 2012-06-01 | 2013-12-18 | 三星电子株式会社 | 具有非易失性存储器件的存储设备以及写方法 |
US8667209B2 (en) | 2010-03-04 | 2014-03-04 | Phison Electronics Corp. | Non-volatile memory access method and system, and non-volatile memory controller |
CN103778964A (zh) * | 2013-12-30 | 2014-05-07 | 上海晨思电子科技有限公司 | 一种NAND Flash烧写数据的处理、使用方法及装置、系统 |
WO2015096698A1 (zh) * | 2013-12-24 | 2015-07-02 | 飞天诚信科技股份有限公司 | 一种Flash的数据写入和读取方法 |
CN105528299A (zh) * | 2014-09-05 | 2016-04-27 | 慧荣科技股份有限公司 | 读取命令排程方法以及使用该方法的装置 |
US9880940B2 (en) | 2013-03-11 | 2018-01-30 | Samsung Electronics Co., Ltd. | System-on-chip and method of operating the same |
CN109542843A (zh) * | 2017-09-21 | 2019-03-29 | 和硕联合科技股份有限公司 | 交易式文件存取方法与电子装置 |
Families Citing this family (138)
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 |
WO2004021191A1 (ja) | 2002-08-29 | 2004-03-11 | Matsushita Electric Industrial Co., Ltd. | 半導体メモリ装置、及び、フラッシュメモリへのデータ書き込み方法 |
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 |
JP4667243B2 (ja) * | 2003-08-29 | 2011-04-06 | パナソニック株式会社 | 不揮発性記憶装置及びその書込み方法 |
KR100608602B1 (ko) | 2003-12-10 | 2006-08-03 | 삼성전자주식회사 | 플래시 메모리, 이를 위한 사상 제어 장치 및 방법 |
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 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
KR100533683B1 (ko) * | 2004-02-03 | 2005-12-05 | 삼성전자주식회사 | 플래시 메모리의 데이터 관리 장치 및 방법 |
JP4701618B2 (ja) * | 2004-02-23 | 2011-06-15 | ソニー株式会社 | 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム |
CN100437517C (zh) * | 2004-04-28 | 2008-11-26 | 松下电器产业株式会社 | 非易失性存储装置和数据写入方法 |
US7877569B2 (en) | 2004-04-28 | 2011-01-25 | Panasonic Corporation | Reduction of fragmentation in nonvolatile memory using alternate address mapping |
JP4253272B2 (ja) * | 2004-05-27 | 2009-04-08 | 株式会社東芝 | メモリカード、半導体装置、及び半導体メモリの制御方法 |
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 |
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 | 삼성전자주식회사 | 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 |
US8122193B2 (en) | 2004-12-21 | 2012-02-21 | Samsung Electronics Co., Ltd. | Storage device and user device including the same |
KR100703727B1 (ko) | 2005-01-12 | 2007-04-05 | 삼성전자주식회사 | 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법 |
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 |
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 |
KR100684942B1 (ko) | 2005-02-07 | 2007-02-20 | 삼성전자주식회사 | 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템 |
KR100703753B1 (ko) * | 2005-04-14 | 2007-04-06 | 삼성전자주식회사 | 파일 시스템 관리 장치 및 방법 |
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 |
US7669003B2 (en) | 2005-08-03 | 2010-02-23 | Sandisk Corporation | Reprogrammable non-volatile memory systems with indexing of directly stored 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 |
US7552271B2 (en) * | 2005-08-03 | 2009-06-23 | Sandisk Corporation | Nonvolatile memory with block management |
EP1920335B1 (en) * | 2005-08-03 | 2011-05-11 | SanDisk Corporation | Reclaiming data storage capacity in flash memory systems |
US7949845B2 (en) | 2005-08-03 | 2011-05-24 | Sandisk Corporation | Indexing of file data in reprogrammable non-volatile memories that directly store data files |
JP4547028B2 (ja) * | 2005-08-03 | 2010-09-22 | サンディスク コーポレイション | ブロック管理を伴う不揮発性メモリ |
US7984084B2 (en) * | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
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 |
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 |
US7769978B2 (en) | 2005-12-21 | 2010-08-03 | Sandisk Corporation | Method and system for accessing non-volatile storage devices |
JP2009521049A (ja) * | 2005-12-21 | 2009-05-28 | エヌエックスピー ビー ヴィ | ブロック消去可能な記憶場所を有するメモリ |
US7676474B2 (en) * | 2005-12-22 | 2010-03-09 | Sap Ag | Systems and methods for finding log files generated by a distributed computer |
JP4898252B2 (ja) * | 2006-03-15 | 2012-03-14 | パナソニック株式会社 | 不揮発性記憶装置及びそのデータ管理方法 |
US7861159B2 (en) * | 2006-04-07 | 2010-12-28 | Pp Associates, Lp | Report generation with integrated quality management |
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株式会社 | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 |
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 | 삼성전자주식회사 | 데이터를 읽거나 쓰기 위한 방법 및 장치 |
US8572307B2 (en) | 2007-07-20 | 2013-10-29 | Panasonic Corporation | Memory controller, memory card, and nonvolatile memory system |
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 | 深圳市同洲电子股份有限公司 | 一种循环文件的操作方法 |
EP2225643B1 (en) | 2007-12-28 | 2020-05-06 | Toshiba Memory Corporation | Semiconductor storage device |
KR101465789B1 (ko) * | 2008-01-24 | 2014-11-26 | 삼성전자주식회사 | 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법 |
US8332572B2 (en) * | 2008-02-05 | 2012-12-11 | Spansion Llc | Wear leveling mechanism using a DRAM buffer |
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 |
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 | 株式会社東芝 | メモリデバイス |
CN101763320B (zh) * | 2008-12-24 | 2011-11-30 | 鸿富锦精密工业(深圳)有限公司 | 存储方法 |
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 | 區塊為基礎快閃記憶體之位元組存取 |
JPWO2011007511A1 (ja) * | 2009-07-16 | 2012-12-20 | パナソニック株式会社 | メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム |
KR101143397B1 (ko) | 2009-07-29 | 2012-05-23 | 에스케이하이닉스 주식회사 | 페이지 복사 발생 빈도를 줄이는 반도체 스토리지 시스템 및 그 제어 방법 |
KR20110018157A (ko) * | 2009-08-17 | 2011-02-23 | 삼성전자주식회사 | 플래시 메모리 장치의 액세스 방법 |
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 | 华为技术有限公司 | 一种文件同步方法、装置及系统 |
CN103270499B (zh) * | 2011-12-21 | 2016-10-05 | 华为技术有限公司 | 日志存储方法及系统 |
US8984247B1 (en) * | 2012-05-10 | 2015-03-17 | Western Digital Technologies, Inc. | Storing and reconstructing mapping table data in a data storage system |
US8966205B1 (en) | 2012-05-10 | 2015-02-24 | Western Digital Technologies, Inc. | System data management using garbage collection and hybrid self mapping |
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 |
KR102147359B1 (ko) * | 2012-06-29 | 2020-08-24 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치 |
KR20140078893A (ko) * | 2012-12-18 | 2014-06-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
CN103077118A (zh) * | 2012-12-28 | 2013-05-01 | 深圳市硅格半导体有限公司 | 一种无效数据回收方法及系统 |
US9471485B2 (en) | 2013-03-12 | 2016-10-18 | Macronix International Co., Ltd. | Difference L2P method |
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 | 에스케이텔레콤 주식회사 | 메모리장치 및 메모리장치의 동작 방법 |
CN104021088B (zh) * | 2014-06-24 | 2017-11-21 | 广东睿江云计算股份有限公司 | 日志存储方法和装置 |
JP2016018473A (ja) * | 2014-07-10 | 2016-02-01 | 株式会社東芝 | 半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法 |
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 |
CN109800180B (zh) | 2017-11-17 | 2023-06-27 | 爱思开海力士有限公司 | 用于地址映射的方法和存储器系统 |
CN109800178B (zh) | 2017-11-17 | 2023-05-16 | 爱思开海力士有限公司 | 垃圾收集方法以及用于混合地址映射的存储器系统 |
US11947839B2 (en) | 2021-05-10 | 2024-04-02 | Samsung Electronics Co., Ltd. | Storage device, system, and method for customizable metadata |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69033438T2 (de) * | 1989-04-13 | 2000-07-06 | Sandisk Corp., Santa Clara | Austausch von fehlerhaften Speicherzellen einer EEprommatritze |
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 |
US5404485A (en) * | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5388083A (en) * | 1993-03-26 | 1995-02-07 | Cirrus Logic, Inc. | Flash memory mass storage architecture |
US5479638A (en) | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
US5485595A (en) * | 1993-03-26 | 1996-01-16 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporating wear leveling technique without using cam cells |
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の記憶管理方法及び装置 |
US5860124A (en) * | 1996-09-30 | 1999-01-12 | Intel Corporation | Method for performing a continuous over-write of a file in nonvolatile memory |
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 |
NZ500202A (en) * | 1997-03-21 | 2001-11-30 | Canal Plus Sa | Updating of flash memory pages in computer memory system |
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 |
US5937425A (en) * | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
CA2306689A1 (en) * | 1997-10-16 | 1999-04-29 | The Victoria University Of Manchester | Timing circuit |
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 | 삼성전자주식회사 | 플래시 메모리와 그 제어 방법 |
KR100703680B1 (ko) * | 1999-10-14 | 2007-04-05 | 삼성전자주식회사 | 플래시 파일 시스템 |
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 |
-
2001
- 2001-06-04 KR KR10-2001-0031124A patent/KR100389867B1/ko active IP Right Grant
- 2001-12-18 JP JP2001384833A patent/JP3708047B2/ja not_active Expired - Fee Related
- 2001-12-28 CN CNB01144049XA patent/CN1322428C/zh not_active Expired - Lifetime
- 2001-12-31 US US10/029,966 patent/US6938116B2/en not_active Ceased
-
2007
- 2007-08-30 US US11/848,005 patent/USRE44052E1/en not_active Expired - Lifetime
-
2011
- 2011-06-02 US US13/134,225 patent/USRE45222E1/en not_active Expired - Lifetime
- 2011-06-02 US US13/151,735 patent/USRE45577E1/en not_active Expired - Lifetime
-
2015
- 2015-02-23 US US14/628,462 patent/USRE46404E1/en not_active Expired - Lifetime
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100440167C (zh) * | 2003-02-20 | 2008-12-03 | 索尼株式会社 | 记录媒体的记录控制方法及记录控制装置 |
CN100428192C (zh) * | 2004-06-15 | 2008-10-22 | 冲电气工业株式会社 | 闪速存储器的写入方法 |
CN101198939B (zh) * | 2005-05-12 | 2011-11-23 | 晟碟以色列有限公司 | 管理闪存中的存储器 |
TWI403896B (zh) * | 2006-01-16 | 2013-08-01 | Thomson Licensing | 第一型記憶裝置的矩陣高速輸入資料之記錄方法 |
CN101165660B (zh) * | 2006-10-19 | 2011-12-21 | 三星电子株式会社 | 在非易失性存储器中重用日志块的方法、非易失性存储器件 |
US8667209B2 (en) | 2010-03-04 | 2014-03-04 | Phison Electronics Corp. | Non-volatile memory access method and system, and non-volatile memory controller |
CN102193871B (zh) * | 2010-03-12 | 2014-08-20 | 群联电子股份有限公司 | 非挥发性存储器存取方法、系统及非挥发性存储器控制器 |
CN102193871A (zh) * | 2010-03-12 | 2011-09-21 | 群联电子股份有限公司 | 非挥发性存储器存取方法、系统及非挥发性存储器控制器 |
CN103473182A (zh) * | 2010-03-12 | 2013-12-25 | 群联电子股份有限公司 | 非挥发性存储器存取方法及非挥发性存储器控制器 |
CN103473182B (zh) * | 2010-03-12 | 2016-05-11 | 群联电子股份有限公司 | 非挥发性存储器存取方法及非挥发性存储器控制器 |
CN103456357A (zh) * | 2012-06-01 | 2013-12-18 | 三星电子株式会社 | 具有非易失性存储器件的存储设备以及写方法 |
CN103456357B (zh) * | 2012-06-01 | 2018-03-09 | 三星电子株式会社 | 具有非易失性存储器件的存储设备以及写方法 |
US9880940B2 (en) | 2013-03-11 | 2018-01-30 | Samsung Electronics Co., Ltd. | System-on-chip and method of operating the same |
TWI621945B (zh) * | 2013-03-11 | 2018-04-21 | 三星電子股份有限公司 | 系統晶片 |
WO2015096698A1 (zh) * | 2013-12-24 | 2015-07-02 | 飞天诚信科技股份有限公司 | 一种Flash的数据写入和读取方法 |
US10228875B2 (en) | 2013-12-24 | 2019-03-12 | Feitian Technologies Co., Ltd. | Data writing and reading methods for flash |
CN103778964B (zh) * | 2013-12-30 | 2016-08-17 | 上海晨思电子科技有限公司 | 一种NAND Flash烧写数据的处理、使用方法及装置、系统 |
CN103778964A (zh) * | 2013-12-30 | 2014-05-07 | 上海晨思电子科技有限公司 | 一种NAND Flash烧写数据的处理、使用方法及装置、系统 |
CN105528299A (zh) * | 2014-09-05 | 2016-04-27 | 慧荣科技股份有限公司 | 读取命令排程方法以及使用该方法的装置 |
CN105528299B (zh) * | 2014-09-05 | 2018-06-29 | 慧荣科技股份有限公司 | 读取命令排程方法以及使用该方法的装置 |
US10042756B2 (en) | 2014-09-05 | 2018-08-07 | Silicon Motion, Inc. | Methods for scheduling read commands and apparatuses using the same |
CN108733580A (zh) * | 2014-09-05 | 2018-11-02 | 慧荣科技股份有限公司 | 读取命令排程方法 |
CN109542843A (zh) * | 2017-09-21 | 2019-03-29 | 和硕联合科技股份有限公司 | 交易式文件存取方法与电子装置 |
Also Published As
Publication number | Publication date |
---|---|
USRE44052E1 (en) | 2013-03-05 |
JP3708047B2 (ja) | 2005-10-19 |
US20020184436A1 (en) | 2002-12-05 |
USRE45222E1 (en) | 2014-10-28 |
USRE45577E1 (en) | 2015-06-23 |
US6938116B2 (en) | 2005-08-30 |
JP2002366423A (ja) | 2002-12-20 |
KR100389867B1 (ko) | 2003-07-04 |
USRE46404E1 (en) | 2017-05-16 |
CN1322428C (zh) | 2007-06-20 |
KR20020092487A (ko) | 2002-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1389790A (zh) | 闪速存储器管理方法 | |
US11669444B2 (en) | Computing system and method for controlling storage device | |
US11467955B2 (en) | Memory system and method for controlling nonvolatile memory | |
CN101425041B (zh) | 在nand flash存储器上建立fat文件系统的优化方法 | |
CN1290021C (zh) | 编程和读取更新数据的非易失性存储器系统和方法 | |
CN100454273C (zh) | 用于块内页面分组的方法及设备 | |
KR101453264B1 (ko) | 메모리 디바이스에 대한 저장 어드레스 리매핑을 위한 방법과 시스템 | |
US8166233B2 (en) | Garbage collection for solid state disks | |
JP2856621B2 (ja) | 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置 | |
CN101382953B (zh) | 在用户空间访问文件系统的接口系统与文件读、写方法 | |
CN100487672C (zh) | 用于分割一逻辑块的方法及设备 | |
US8166258B2 (en) | Skip operations for solid state disks | |
US20080098195A1 (en) | Memory system including flash memory and mapping table management method | |
CN1822217A (zh) | 将数据存储在非易失性高速缓冲存储器中的设备和方法 | |
KR20110117099A (ko) | 메모리 장치에서 맵핑 어드레스 테이블을 유지관리하는 방법 | |
US20110161563A1 (en) | Block management method of a non-volatile memory | |
KR20100139149A (ko) | 다중 뱅크 메모리 장치에 대한 저장 주소 재매핑을 위한 방법과 시스템 | |
CN1701309A (zh) | 非易失性存储系统中的损耗平衡 | |
Choudhuri et al. | Performance improvement of block based NAND flash translation layer | |
US11307979B2 (en) | Data storage device and non-volatile memory control method | |
CN105335220A (zh) | 一种存储设备的事务恢复方法,及装置 | |
CN1701300A (zh) | 用于分解与一共用逻辑块相关联的物理块的方法和设备 | |
KR100533683B1 (ko) | 플래시 메모리의 데이터 관리 장치 및 방법 | |
CN113419674B (zh) | 数据编程管理方法、存储器及其控制器,以及计算机系统 | |
US11748023B2 (en) | Data storage device and non-volatile memory control method |
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 |