CN1637721A - 地址映射方法和映射信息管理方法及其闪速存储器 - Google Patents
地址映射方法和映射信息管理方法及其闪速存储器 Download PDFInfo
- Publication number
- CN1637721A CN1637721A CNA2004101040229A CN200410104022A CN1637721A CN 1637721 A CN1637721 A CN 1637721A CN A2004101040229 A CNA2004101040229 A CN A2004101040229A CN 200410104022 A CN200410104022 A CN 200410104022A CN 1637721 A CN1637721 A CN 1637721A
- Authority
- CN
- China
- Prior art keywords
- sector
- data
- page
- written
- empty
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
Abstract
一种用于当使用逻辑-物理映射方案访问闪速存储器时最小化性能的降低的方法,和用于有效地存储并管理关于闪速存储器中的逻辑-物理映射的信息的方法。一种用于将数据写入闪速存储器中的方法包括:确定在具有将被写入的数据的最近写入的逻辑页号的物理页中扇区是否为空,该扇区偏移量匹配将被写入的数据的偏移量;如果该扇区为空,那么数据被写入该物理页中的扇区中;和如果扇区不为空,那么选择空物理页以将数据写入其偏移量匹配将被写入的数据的偏移量的被选空物理页中的扇区中并且将数据逻辑页号写入被选空物理页中。
Description
技术领域
本发明涉及一种用于访问闪速存储器的方法,更具体地讲,涉及一种当使用逻辑-物理映射方案来访问闪速存储器时减小性能的降低的方法,以及一种用于在闪速存储器中有效地存储并管理关于逻辑-物理映射的信息的方法。
背景技术
由于闪速存储器具有高存取速度和低功耗,并且与硬盘一样是非易失性的,所以它们被广泛地应用于例如嵌入式系统和移动装置的应用中。
为了在闪速存储器的已经写入的扇区中执行写操作,则考虑到闪速存储器的硬件特性,擦除包括扇区的整个块的操作应被提前执行。这是闪速存储器的性能的降低的主要原因。
为了解决以上的写之前擦除的问题,逻辑和物理地址的概念被引入。即,通过几种类型的映射算法,对于从主机端请求的逻辑地址的读/写操作被转变为对于闪速存储器的实际物理地址的读/写操作。此时,因为考虑其物理状态,所以可最大化闪速存储器的性能。
近来,为了提高闪速存储器系统的性能,开发了其中连续的闪速操作同时可被缓冲并且被处理的闪速存储器。此闪速存储器被称为大型块闪速存储器。然而,事实上,如果现有的逻辑-物理映射算法被应用到大型块闪速存储器中,则大型块闪速存储器的优点不能被充分地实现。因此,对于大型块闪速存储器,像本发明一样,存在对有效逻辑-物理映射算法的需求。
在转让给‘艾蒙系统闪速盘倡导者(M-Systems F1ash Disk Pioneer)’的专利号为5,404,485和5,937,425的美国专利、转让给‘三菱(Mitsubishi)’的专利号为5,905,993的美国专利、和转让给‘三星电子(Samsung Electronics)’的专利号为6,381,176的美国专利等中描述了闪速存储器逻辑-物理映射方案的传统技术。在这样的现有技术中的闪速存储器访问方法的核心涉及响应于对从主机端请求的逻辑扇区的写请求,写操作在闪速存储器的实际物理扇区中如何有效地被执行。这里,假设在闪速存储器中擦除操作以块为基础被执行,并且读/写操作以扇区为基础被执行,现有技术被粗略地分为扇区映射方案和块映射方案。
图1示出传统扇区映射的例子。由扇区号和扇区号偏移量组成的虚拟地址,通过已经被存储在闪速存储器中的以扇区为基础的映射信息被转换为逻辑地址。随后可从获得的逻辑地址的高位获得逻辑块号。最后的物理地址将从存储在主存储器中的逻辑块-物理块表被获得。
图2示出传统块映射的例子。虚拟块具有主块和映射到其的替换块。即,在任一逻辑块中的一个扇区通过以块为基础的映射信息将被映射到另一块中的一个扇区。此时,如果其他数据已经被写入主块中的相关扇区中,那么数据被写入替换块中。
闪速存储器包括读、写和擦除的三个主要操作。本发明的主要内容是关于读和写操作。因为读操作和写操作在操作中没有明显的区别,所以现有技术中的写操作将在这里讨论。
主机转发逻辑扇区号(LSN)以在闪速存储器中写数据。在如图1的扇区映射方案中,因为对于LSN和PSN(物理扇区号)的映射表存在,所以其足够在相关PSN中写数据。此时,在数据已经存在于相关PSN中的情况下,另一空PSN被找到。数据被写入找到的PSN中并且映射信息被修改。
在如图2的块映射方案中,逻辑块号(LBN)从给定的LSN中获得,物理块号(PBN)从存在的LBN-PBN映射表被找到,并且具有匹配的偏移量的PSN被找到以在其中写数据。当在处于扇区映射状态下数据已经充满扇区时,数据被写入可写的块中的扇区中,并且映射信息被修改。
近来已经开发的大型块闪速存储器提供用于两个或多个扇区的读和写方案。即,假设在闪速存储器中以页为基础执行操作并且页的大小等于4个扇区,可同时读或写4个扇区。然而,因为现存的逻辑-物理映射算法假设主机的扇区大小等于用于闪速存储器的操作的基准,所以当现有的算法被应用到大型块闪速存储器时不能获得大型块闪速存储器的优点。特别地,即使大型块闪速存储器关于用于一个或多个连续扇区的写操作(多个扇区写操作)显示出极好的性能,现有的算法也不考虑这种特性。
发明内容
本发明的目的在于解决上述问题。本发明的一个目的在于提供一种适用于大型块闪速存储器的逻辑-物理映射算法。
本发明的另一目的在于提供一种方法,通过其闪速存储器的性能可被最大化,并且通过逻辑-物理映射信息管理方法该系统即使在突然掉电的情况下也可被恢复。
根据用于实现上述目的的本发明的示例性实施例,提供了一种用于将数据写入包括具有包括预定数目的扇区的页的至少一个块的闪速存储器中的方法,其中数据以扇区或页为基础被写入并且以块为基础被擦除。该方法包括第一步骤,确定在具有将被写入的数据的最近写入的逻辑页号的物理页中扇区是否为空,扇区的偏移量匹配将被写入的数据的偏移量;第二步骤,如果确定其偏移量匹配的扇区为空,那么将数据写入其偏移量匹配的物理页的扇区中;和第三步骤,如果确定其偏移量匹配的扇区不为空,那么选择空物理页以将数据写入其偏移量匹配将被写入的数据的偏移量的被选空物理页中的扇区中,并且将数据的物理页号写入被选空物理页中。
根据本发明的示例性实施例,提供了一种用于将数据写入闪速存储器中的方法,包括:第一步骤,确定空扇区是否存在于具有将被写入的数据的最近写入的逻辑页号的物理页中,空扇区能够存储将被写入的数据;第二步骤,如果确定空扇区存在,那么将数据写入物理页中的空扇区中,并且将数据的逻辑扇区号写入物理页中;和第三步骤,如果确定空扇区不存在,那么选择空物理页以将数据写入被选物理页中的空扇区中,并且将数据的逻辑页号和逻辑扇区号写到被选空物理页中。
根据本发明的示例性实施例,提供了一种用于将数据写入闪速存储器中的方法,包括:第一步骤,确定能够存储将被写入的数据的空扇区是否存在于当前块中;和第二步骤,如果确定空扇区存在,那么将数据写入空扇区中,并且将数据的物理扇区号写入与空扇区位于的相同的物理页的物理页中。
根据本发明的示例性实施例,提供了一种包括具有包括预定数目的扇区的页的至少一个块的闪速存储器,其中,数据以扇区或页为基础被写入,并且以块为基础被擦除。闪速存储器确定在具有将被写入的数据的最近写入的逻辑页号的物理页中其偏移量匹配将被写入的数据的任何扇区是否为空。如果确定其偏移量匹配的扇区为空,那么闪速存储器将数据写入在物理页中其偏移量匹配的扇区中。如果确定其偏移量匹配的扇区不为空,那么闪速存储器选择空物理页以将数据写入其偏移量匹配将被写入的数据的偏移量的扇区中,并且将数据的逻辑页号写入被选空物理页中。
根据本发明的示例性实施例,提供了一种闪速存储器,其中确定能够存储将被写入的数据的空扇区是否存在于具有将被写入的数据的最近写入的逻辑页号的物理页中。如果确定空扇区存在,那么闪速存储器将数据写入物理页中的空扇区中,并且将数据的逻辑扇区号写入物理页中。如果确定空扇区不存在,那么空物理页被选择以将数据写入被选物理页中的空扇区中,并且将数据的逻辑页号和逻辑扇区号写入被选空物理页中。
根据本发明的示例性实施例,提供了一种闪速存储器,其中,进行确定关于能够存储将被写入的数据的空扇区是否存在于当前块中,并且如果空扇区存在,数据被写入空扇区中,并且数据的逻辑扇区号被写入与空扇区位于其中的物理页相同的物理页中。
根据本发明的示例性实施例,提供了一种包括多个块的闪速存储器,包括至少一个其中一些块被分配作为单独的映射块以存储逻辑-物理映射信息的映射片段单元。此时,映射块存储分为片段的映射信息。当映射信息被修改时,通过将存储修改的信息的映射片段单元写入该映射块中的空单元中来更新映射信息。
附图说明
通过下面结合附图对优选实施例进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:
图1是示出扇区映射的例子的示图;
图2是示出传统块映射的例子的示图;
图3是示出具有在其上运行的闪速存储器的系统的整个结构的示图;
图4是示出传统的NAND类型的小型块闪速存储器的配置的示图;
图5是示出传统的NAND类型的大型块闪速存储器的配置的示图;
图6是示出作为用于在大型块闪速存储器中读/写操作的基础的页的基本格式的示图;
图7是示出根据本发明的一对一的页映射处理的流程图;
图8是示出根据本发明的一对一的页映射方法的应用例子的示图;
图9是示出根据本发明的一对n的页映射处理的流程图;
图10是示出根据本发明的一对n的页映射方法的应用例子的示图;
图11是示出一对一的页映射被应用到其的扇区映射方法的流程图;
图12是示出根据本发明的一对一的页映射被应用到其的扇区映射方法的应用例子的示图;
图13是示出根据本发明的一对n的页映射被应用到其的扇区映射方法的流程图;
图14是示出根据本发明的一对n的页映射方法的应用例子的示图;
图15是示出根据本发明的偏移量匹配的扇区映射方法的流程图;
图16是示出根据本发明的偏移量匹配的扇区映射方法的应用例子的示图;
图17是示出根据本发明的偏移量失配的扇区映射方法的流程图;
图18是示出根据本发明的偏移量失配的扇区映射方法的应用例子的示图;
图19A是示出映射块和映射片段之间的关系的示图;
图19B是示出存储在映射片段中的信息的例子的示图;
图19C是示出当映射片段被修改时的操作的示图;
图20是示出预定分配数目的映射块的示图;和
图21是示出根据本发明的在映射片段单元中的备用区域的配置的示图。
具体实施方式
以下,参照附图来详细描述本发明的示例性实施例。以下结合附图对实施例进行详细讨论,本发明的优点和特点以及用于实现优点和特点的方法将会变得清楚。然而,本发明不受下述的实施例的限制,并且将以各种不同的方式来实现。描述的示例性实施例打算完成揭示本发明,并且为向本发明所属的技术领域的技术人员完全指示本发明的范围而提供。本发明仅由权利要求的范围限定。在整个描述中,相同的标号始终表示相同的部件。
图3示出具有在其上运行闪速存储器的系统的整个结构。能够XIP的存储器311是能够本地执行(XIP)功能的存储器,例如只读存储器(ROM)或者随机存取存储器(RAM)。程序代码可被加载并且在这种存储器上执行。在这种存储器中,RAM是易失性的而ROM是非易失性的。闪速存储器312不是前述的能够XIP的存储器311而是用于存储数据并且具有非易失特性的简单存储器。CPU 313用于通过执行加载到直接地(自)可执行存储器中闪速存储器存取代码来将从外部主机300请求的读/写操作转变为对闪速存储器的读/写操作。
图4和5示出128MB NAND类型的当前闪速存储器的配置。注意本发明可被应用于存储容量大小不同的闪速存储器中。如图4所示的小型块闪速存储器是其中对于从外部主机请求的数据的读/写操作的基础与由闪速存储器实际提供的读/写操作的基础相同的系统。例如,如果由外部主机以512B为基础进行读或写请求,所以即使在闪速存储器中同样以512B为基础进行读和写。在如图4的128MB闪速存储器的情况下,一页包括主区域512B和备用区域16B,并且作为用于擦除操作的基础的块包括32页。
在如图5中的大型块闪速存储器的情况下,用于闪速存储器的读/写操作的基础是用于由外部主机请求的读/写操作的多个基础。具体地讲,在图5的例子中,可看出闪速存储器中的一个页的大小与四个扇区的大小相同,并且作为用于擦除操作的基础的块包括64页。
图6示出用于大型块闪速存储器的读/写操作的基础的页的基本结构。近来,通常使用的大型块闪速存储器具有在小型块闪速存储器中的页的大小的四倍的页,因此,四个扇区可被存储在大型闪速存储器的主区域中。然而,即使四个或或多或少的扇区被存储在一个页中,本领域的技术人员应该明白,本发明的概念可被等同地应用。几类的元信息可被存储在备用区域中。主要元信息可包括作为每一扇区的逻辑扇区号的‘LSN(逻辑扇区号)’和作为闪速存储器的一个页的逻辑页号的‘LPN(逻辑页号)’。因此,逻辑-物理映射信息可被存储在闪速存储器的每一页中,但是映射表信息被单独地存储在闪速存储器的整个区域的部分中时可考虑不同的方法。
本发明是指将由主机端对逻辑地址的读/写请求转变为对大型块闪速存储器的物理地址的读/写请求的方法。将通过用于大型块的逻辑-物理地址映射方法和逻辑-物理地址映射信息管理方法来讨论本发明。
逻辑-物理地址映射方法
首先,将讨论用于大型块的逻辑-物理地址映射算法。闪速存储器的主要操作包括写操作和读操作,并且因为读操作仅仅是写操作的相反操作,则将讨论写操作。
由外部主机请求的写操作有两类。一类是输入LSN和相关数据的单一扇区写操作,另一类是输入开始LSN、连续LSN的数目、和相关数据的多扇区写操作。因为大型块闪速存储器系统能够执行对于至少一个扇区的并发的写操作,所以其可在多扇区写操作中提供极好的性能。另外,因为在当前被通常使用的大容量的闪速存储器中的一页包括四个扇区,其一页包括四个扇区的大型块闪速存储器的逻辑-物理映射算法将作为本发明的例子被讨论。
因为大型块闪速存储器不像小型块闪速存储器,其一页包括几个扇区并且具有能够多扇区写操作的结构,与小型块闪速存储器相比大型块闪速存储器可容纳各种逻辑-物理地址映射算法。
即,传统小型块闪速存储器系统具有块和作为用于基本逻辑映射的基础的扇区,而大型块闪速存储器具有页以及块和作为用于基本映射的基础的扇区。如上所述,在单一扇区写操作的情况下,大型块闪速存储器的写操作的输入是LSN和相关数据,并且该输入通过映射算法被转换为作为闪速存储器的物理地址的物理扇区号(PSN)。
首先,相应于LSN的逻辑块号的LBN通过闪速存储器的每块的扇区号来计算。相应于计算的LBN的物理块号的PBN通过参照LBN和PBN之间的映射表来确定。确定PBN的另一方法还包括通过将LBN写入闪速存储器的每一块的特定区域来存储逻辑物理块映射信息,并且找到相应于LBN的PBN的方法。
从找到的PBN获得扇区地址的方法粗略的包括两种方法:在假设扇区偏移量在逻辑块和物理块之间相同的情况下获得扇区地址的方法,和其中通过存储新的映射信息在扇区偏移量之间没有匹配被需要的方法。因为前者已经在现有技术中提出,所以后者被应用到根据本发明的大型块闪速存储器。具体地讲,其被分为六种方法的总和。第一和第二种方法是页映射第三和第四方法是页映射应用到其的扇区映射,以及第五和第六种方法是不具有页映射的扇区映射方法。对于页映射,LPN应如图6中被写入,并且对于扇区映射,LSN应如6中被写入。
第一方法是一对一的页映射方法,其中仅存在一个相应于一个逻辑地址的物理地址。图7是示出根据本发明的一对一的页映射处理的流程图。首先,将被处理的至少一个扇区的LSN从外部主机输入(S110)。LPN和LBN根据LSN被计算,并且通过使用以预定块为基础的映射信息来确定PBN(S120)。与确定的PBN相关的物理块须经以下处理。首先,确定相关LPN是否曾经在物理块中被使用(S130)。对于到大型块闪速存储器的应用,通过使用在本发明中提出的页的概念,预先确定特定扇区被包括在特定页中。因此,相关LPN是指包括以上定义的LSN的页的LPN。
在一对一的页映射方案中,因为一个物理页号(PPN)被确定用于一个LPN,所以需要检查关于输入的数据是否可被写入确定的PPN中。如果在S130中确定LPN还未被使用,则确定在适当位置的页是否为空(S131)。如果该页为空,则数据被写入该适当位置(S132),LPN被写入与那个位置相关的页的备用区域中(S133)并且结束处理。该适当位置是指由现有的物理-逻辑映射信息来描述的默认位置。即,其是指被描述以便根据预定映射信息具有特定LSN的扇区被写入具有特定LPN的页的偏移量的位置。
因此,数据基本上被写入其自己的适当位置,但是当其他数据已经被写入时,从而,没有被写入适当位置时,其能够将其他数据从具有较低编号的物理页号的上面的页或物理页到空物理页顺序地写入。
如果在S130中确定LPN已经被使用,所以当存在许多具有有效LPN的页,即,具有使用的LPN的页时,进行关于其偏移量匹配的扇区以及在最近生成的页中的随后的扇区是否为空(S140)。如果为空,则数据被写入其偏移量匹配的扇区的位置(S150),并且结束处理。这里,偏移量是指在一个页中适于被扇区占据的位置。例如,如果预先确定D4、D5、D6、和D7被顺序写入任一页中,则D4、D5、D6、和D7将具有分别作为它们偏移量值的0、1、2、和3。
在本发明中,为了获得在多扇区写操作中的高性能,尽管相关扇区为空,则只要页中的所有下一扇区不为空,数据就不被写入相关扇区中。原因是因为大多数写请求是对于连续扇区,并且其后当扇区不为空时,执行对于相关扇区的写操作,并且随后请求向连续扇区的另一请求需要代价大的更新操作。然而,在多扇区操作的情况下,存在提前指定多少扇区被使用的应用。在这种情况下,因为不需要所有随后的扇区必须为空,所以在S140中其能够仅确定其存偏移量匹配的扇区是否存在。
如果在S131中确定在适当位置的页不为空,则确定空的页是否存在于当前块中(S141)。如果空的页不存在,则分配下一新的块(S142),并且随后数据被写入新的块的适当位置(S132)。LPN被写入与该位置相关的页中的备用区域(S133)并且结束处理。
如果在S141中确定空页存在,则选择空页的一页,数据被写入偏移量匹配LSN的扇区的位置(S151)。并且LPN被写入被选页的备用区域(S160)。选择空页中的一个可在几种方法中进行。即,空页可从上面的页连续地选择,反之亦然。最后,进行将相关数据复制到现存的有效LPN以维持一对一的页映射(S170),其后,结束处理。
图8示出了根据本发明的一对一的页映射方法的应用例子。因为大型块闪速存储器能够多扇区写操作,则假设四个数据可被同时写入存储器。首先,四个数据D0、D1、D2和D3被顺序写入当前块的第一页(PPN=0)(S132)并且0被写入备用区域作为LPN值(S133)。然后,另四个数据D4、D5、D6和D7被顺序写入第二页(PPN=1)(S132)并且1被写入备用区域作为LPN值(S133)。此后,当D0和D1应被写入时,因为相关LPN‘0’已经被写入(S130的例子),所以确定在具有有效LPN的第一页(PPN=0)中具有相关偏移量的扇区是否为空(S140)。因为扇区不为空,所以D0被写入下一空页(PPN=2)的第一扇区,D1被写入第二扇区(S151),并且相关LPN‘0’被写入备用区域(S160)。另外,与现有有效LPN相关的剩余数据(写入PPN=0的剩余数据),即,D2和D3根据偏移量被复制到当前页(PPN2)(S170)。
紧接着,当D3应被写入时,D3被写入其偏移量在随后的空页(PPN=3)中匹配的扇区的位置,即,第四扇区(S151)并且相关LPN‘0’被写入(S160)。其后,来自第三页(PPN=2)的剩余数据,即,D0、D1、和D2根据它们的偏移量被复制到当前页(PPN=3)。
第二方法是一对n的页映射方法。该方法的流程图如图9所示。此映射方法是允许至少一个有效页将处于一个块中的方法,不像第一方法那样。即,执行写操作到具有被保持的相关LSN的扇区偏移量的物理地址,但是没有从现有的有效页复制剩余扇区的步骤。即,因为在本方法中,有效数据可处于至少一个页中,其中现有有效LPN的数据被复制的步骤不必要。因此,与以上的图7的流程图相比,尽管剩余步骤都相同,但是仅有的差别在于没有与图7的步骤S170相似的步骤。
图10示出根据本发明一对n的页映射方法的应用例子。首先,数据D0、D1、D2、和D3被顺序写入当前块的第一页(PPN=0)(S232),并且作为LPN值的0被写入备用区域(S233)。四个数据D4、D5、D6和D7随后被顺序写入第二页(PPN=1)(S232),并且作为LPN值的1被写入备用区域(S233)。此后,当D0和D1应被写入时,因为相关LPN‘0’已经被写入(S230的例子)所以确定在近来已经写入LPN的第一页(PPN=0)中具有相关偏移量的扇区是否为空(S240)。因为扇区不为空,所以D0被写入随后的空页(PPN=2)的第一扇区中,并且D1被写入其第二扇区(S251)。相关LPN‘0’被写入备用区域(S260)。
当D3随后应被写入时,因为在S240中确定在当前页(PPN=2)中其相关偏移量匹配的第四扇区为空,所以D3被写入第四扇区(S250)。其后,当D1应被写入时,因为在近来已经写入LPN的页(PPN=2)中其偏移量匹配的扇区不为空(S240),所以D1被写入在下一空页(PPN=3)中其偏移量匹配的第二扇区(S251),LPN被写入该页的备用区域中(S260),并且随后结束处理。
第三种方法是根据本发明的一对一的页映射被应用到其的扇区映射方法。该第三种方法与第一种一对一的页映射方法相似,而是一种在写时不需保持扇区偏移而在页中自由地写入的方法。即,其是其中数据被写入而不需保持扇区偏移量,但是在写入相关页被完成后剩余扇区从现有有效页被复制以便仅有一个有效页存在于一个块中的方式。图11是示出一对一的页映射被应用到其的扇区映射方法的流程图。因为不像图7的一对一的页映射那样,扇区偏移量不被保持,所以需要存储指示以扇区为基础的映射信息的LSN。此时,LSN和LPN连同相关数据一起被同时写入。
首先,将被处理的至少一个扇区的LSN从外部主机300被输入(S310)。LPN和LBN根据LSN来计算,并且通过使用以块为基础的预定映射信息来确定PBN(S320)。下列处理在与已确定的PBN相关的物理块上来执行。首先,确定相关LPN是否曾经在物理块中被使用(S330)。
如果在S330中确定LPN还未被使用,则确定在适当位置的页是否为空(S331)。如果页为空,则数据被写入适当位置(S332),LSN被写入与该位置相关的页的备用区域,LPN被写入备用区域的给定位置(S333),并且随后结束处理。将LSN写入与该位置相关的备用区域是指将数据写入与在物理页的主区域中数据被写入的扇区的位置相应的备用区域中的位置。例如,其是指如果数据被写入第一扇区,则数据的LSN被写入分配以在备用区域中写LSN的四个数位(digit)中的第一数位。
如果在S330中确定LPN已经被写,则确定空扇区是否存在于具有已写的LPN中的最近的一个的页中(S340)。如果存在空扇区,则数据被写入空扇区(S350),并且数据的LSN被写入在与该位置相关的页中的备用区域(S380)。
如果在S331中确定在适当位置的页不为空,则确定空页是否存在于当前块中(S341)。如果空页不存在,则分配下一新的块(S342),并且随后数据被写入新的块的适当位置(S332),LPN和LSN被写入与该位置相关的备用区域中(S333)并且结束处理。
如果在S341中确定存在空页,则空页之一被选择并且数据被写入该页的任一空扇区(通常,第一扇区)(S351),并且LPN和LSN被写入被选页的备用扇区(S360)。最后,为了保持一对一的页映射,复制具有现有有效的LSN的数据和该数据的LSN(S370)并且随后结束处理。有效LSN是指当相同LSN存在时,相同LSN中最近写入的一个。为了找到这个,当存在几个同样的LPN时,具有最近入写的LPN(有效LPN)的页被检索。因为在页中还可能存在几个相同的LSN,所以其能够找到LSN中的最近的LSN(如果数据被顺序写入的最低写入的LSN)。
图12示出根据本发明的一对一的页映射被应用到其的扇区映射方法的应用例子。首先,两个数据D0和D1被顺序写入当前块(PPN=0)的第一页(S332),0和1被分别地写入该页的备用区域的LSN被写入的四个数位的第一和第二数位,并且0被写入LPN被写入的部分(S333)。四个数据D4、D5、D6、和D7被顺序写入第二页(PPN=1)(S332),4、5、6、和7作为LSN被分别的写入备用区域,并且1作为LPN值被写入(S333)。
此后,如果D0和D1应被写入,则因为相关LPN‘0’已经被写入(S330的例子)所以确定空扇区是否存在于具有LPN的页(PPN=0)中(S340)。因为存在两个空扇区,所以D0和D1被分别地写入空扇区(S350),0和1被写入备用区域的LSN被写入的部分之间的第三和第四数位,分别与写入的D0和D1的位置一致(S380)。
如果D3必须被随后写入,则D3被写入下一空页(PPN=2)的空扇区,即,第一扇区(S350),并且相关LSN‘3’和相关LPN‘0’被写入(S360)。其后,来自第一页(PPN=0)的有效D0和D1(指的是最近写入的D0和D1)被复制到当前页(PPN=2)的空扇区中。作为D0和D1的LSN的0和1被复制到相关位置,即,被复制到备用区域的LSN被写入的部分的第二和第三数位(S370)。然后,如果D1应被写入,则因为空扇区存在于当前页(PPN=2)中(S340的例子),所以D1被写入该扇区(S350),并且1被写入相关LSN被写入的位置(S380)。
第四种方法是根据本发明的一对n的页映射被应用到其的扇区映射方法。与提出的第二种方法相似,但是差别在于在写期间不需保持扇区偏移量,写操作也在页中自由地进行。然而,这两种方法彼此相似之处在于具有有效扇区的至少一页可出现在一个块中。当写操作在该页中进行时,一旦数据被写入扇区偏移量匹配的位置,并且,如果数据已经存在于该数位,则空扇区可从左边被找到来写数据,反之亦然。图13是示出一对n的页映射被应用到其的扇区映射方法的流程图。与图11的流程图相比,尽管剩余步骤都相同,但是存在不同仅在于与图11的步骤S370相似的步骤不存在。
图14示出根据本发明的一对n的页映射方法的应用例子。首先,两个数据D0和D1被顺序写入当前块(PPN=0)中的第一页中(S432)。0和1被分别地写入该页的备用区域的LSN被写入的四个数位的第一和第二数位中,并且0被写入LPN被写入的部分(S433)。然后四个数据D4、D5、D6、和D7被顺序写入第二页(PPN=1)(S432),并且4、5、6、和7作为LSN值被分别地写入备用区域,并且1作为LPN值被写入(S433)。
然后,如果D0和D1应被写入,则因为相关LPN‘0’已被写入(S430的例子),所以确定空扇区是否存在于具有LPN的页(PPN=0)中(S440)。因为存在两个空扇区,所以D0和D1被写入空扇区(S450)。与写入的D0和D1的位置一致,0和1被分别地写入LSN被写入的备用区域中的部分中的第三和第四数位中(S480)。
如果D3应被写入,则D3被写入下一空页(PPN=2)中的空扇区,即第一扇区中(S451),并且相关LSN‘3’和相关LPN‘0’被写入(S460)。如果D1随后应被写入,则因为空扇区存在于当前页(PPN=2)中(S340的例子),所以D1被写入当前页(PPN=2)中的第二扇区中(S450),并且1被写入相关LSN被写入的位置(S480)。
因为提出的第五和第六种方法是没有页映射的扇区映射方法,所以其不需要在页的备用区域中写入LPN。图15是示出根据本发明的如第五种方法的偏移量匹配的扇区映射方法的流程图。此方法是找到空扇区并且当仅保持扇区偏移量时向其写数据的方法。
首先,将被处理的至少一个扇区的LSN从外部主机300输入(S510)。LPN和LBN根据LSN来计算,并且通过使用以块为基础的预定的映射信息来确定LPN(S520)。接下来的处理是在与确定的PBN相关的物理决上被执行。首先进行关于其偏移量匹配并且当时为空的扇区是否存在于当前块中的确定(S530)。如果在S530中确定空扇区存在,则数据被写入偏移量匹配的扇区的位置(S540),数据的LSN被写入当前页中的备用区域的LSN被写入的部分的相关位置中(S550),并且结束处理。如果在S530中确定空扇区不存在,则分配新的块(S531),并且随后执行S540和S550,结束处理。
图16示出根据本发明的偏移量匹配扇区映射方法的应用例子。D0和D1首先被分别地写入第一页(PPN=0)的第一和第二扇区中(S540),并且0和1被写入在LSN被写入的备用区域中的部分的相关数位(S550)。然后,如果D4、D5、D6、和D7将被写入,那么因为在第一页(PPN=0)中不存在写四个扇区的空间,所以四个扇区被写入下一页(PPN=1)(S540),并且作为相关LSN的4、5、6、和7被分别地向其写入(S550)。然后,如果D0和D1将被写入,那么D0和D1被写入以D0和D1的偏移量的空页(PPN=2)中(S540),并且作为相关LSN的0和1被分别地写入其中(S550)。
然后,如果D3将被写入,那么D3被写入以D3的偏移量的空页(PPN=0)中(S540),并且作为相关LSN的3被写入(S550)。其后,如果D1将被写入,那么D1被写入以D1的偏移量的空页(PPN=3)中(S540),并且作为相关LSN的1被分别地写入其中(S550)。
最后,如果D6和D7将被写入,那么D6和D7被写入其中第三和第四扇区为空的页(PPN=2)中,第三和第四扇区是D6和D7的偏移量(S540),并且作为相关LSN的6和7被写入(S550)。
图17是示出作为第六方法的偏移量失配扇区映射方法的流程图。此方法是不管页和扇区偏移量而顺序向空扇区写数据的方法。
首先,将被处理的至少一个扇区的LSN从外部主机300被输入(S610),LPN和LBN根据LSN被计算,并且通过使用以块为基础的预定映射信息来确定PBN(S620)。接下来的处理在与确定的PBN相关的物理块上被执行。首先,不考虑偏移量,确定空扇区是否存在于当前块中(S630)。如果在S630中确定存在空扇区,那么数据被写入空扇区中(S640),并且数据的LSN被写入当前页的备用区域的LSN被写入的部分的相关位置中(S650),结束处理。如果在S630中确定不存在空扇区,那么新的块被分配(S631),并且随后执行S640和S650,结束处理。
图18示出根据本发明的偏移量失配扇区映射方法的应用例子。首先,D0和D1被分别地写入第一页(PPN=0)的第一和第二扇区中(S640),并且0和1被写入备用区域的LSN被写入的位置中的相关数位中(S650)。然后,如果D4、D5、D6、和D7将被写入,那么因为在第一页(PPN=0)中不存在写四个扇区的空间,所以四个扇区的每个被写入下一扇区(PPN=1)(S640),并且作为相关LSN的4、5、6、和7被写入其上(S650)。然后,如果D0和D1将被写入,那么D0和D1被写入两个扇区为空的第一页(PPN=0)中(S640),并且作为相关LSN的0和1被写入其上(S650)。
然后,如果D3将被写入,那么因为第一页(PPN=0)和第二页(PPN=1)没有空扇区,所以D3被写入下一页(PPN=2)的第一扇区(S640),并且作为相关LSN的3被写入其上(S650)。其后,如果D1将被写入,那么D1被写入该页(PPN=2)的第二扇区中(S640),作为相关LSN的1被写入(S650)。最后,如果D6和D7将被写入,由于该页(PPN=2)的两个扇区仍为空,则D6和D7被写入页的第三和第四扇区中(S640),并且作为相关LSN的6和7被写入(S650)。
就有效地向根据本发明的能够多扇区写入的大型块闪速存储器写入数据的方法来说,已经提出了六种方式。因为闪速存储器允许以页为基础I/O,所以在多扇区写操作的情况下,通过使用闪速存储器的缓冲,扇区被缓冲,并且用于两个或多个扇区的写操作可在一次闪速写操作中被执行。
相应于这种写方法的读算法以与写算法相反的顺序被执行。在第一和第二方法的页映射中,因为物理扇区偏移量匹配逻辑地址的扇区偏移量,其能够找到其中请求读的扇区被定位的一页,并且随后能读取输入的扇区的偏移量的数据。此时,在第二方法中,因为一个或多个有效页存在,所以以与写算法相反的顺序找到最新的数据。
在第三和第四方法中,一旦相关页被找到,LSN被检索以找到相关扇区。此时,如果两个或多个同样的LSN存在,那么以与写算法相反的顺序找到有效扇区。
在第五方法中,因为扇区偏移量匹配,所以其能够以与写算法相反的顺序找到有效扇区。在基于LSN值找到有效扇区的第六方法中,相似地,当存在至少一个LSN时,其足够以与写算法相反的顺序来找到有效扇区。
逻辑-物理映射信息管理方法
以下,将讨论用于在闪速存储器中存储并管理逻辑-物理映射信息的方法的操作。应注意此方案可被特别地应用到小型块闪速存储器以及大型块闪速存储器。
图19A显示分为预定大小的片段(片)的逻辑-物理映射信息。通过将一个映射(map)片段和一个备用区域求和而获得的一个单元被定义为映射片段单元。一个映射片段单元的大小可等于闪速存储器的页中的主区域的大小。几个片段可被包括在闪速存储器的页的主区域中。一个片段可被存储在闪速存储器中的几个页的主区域中。因为当一些映射信息应被更新时,更新所有的映射信息可降低系统性能,所以映射信息被分为预定大小的片段以仅更新需要的片段。
如图19B所示,假设映射片段的大小等于页的主区域的大小,并且2字节被需要用于一个块的逻辑-物理映射信息,因为小型块闪速存储器具有每页512B的主区域,所以用于256块的映射信息可被存储在一个映射片段中。因为一块具有32页,所以32个映射片段单元可被存储在一个映射块中。因此,如果整个逻辑-物理映射信息可被分为并被存储在N个映射片段中,那么将存在32-N个空单元。当N个映射片段单元如图19A被初始地写入时,映射信息的修改发生。如果修改发生在映射片段#1中,那么将能够将修改的映射片段#1写入下一空单元,如图19C所示。如果多个具有相同映射片段号(#)的映射片段存在于一个块中,那么确定仅最近写入的映射片段是有效的。
每个映射片段单元除了映射片段之外具有含有关于映射片段的附加信息的备用区域。在小型块闪速存储器中,16字节可用于备用区域。逻辑-物理映射信息可以是以块为基础的映射信息,如上所述。在大型块闪速存储器中,不限于以块为基础的映射信息,或者可以是以扇区为基础的映射信息或以页为基础的映射信息。即,逻辑-物理映射信息可以是逻辑块号和物理块号之间的映射信息、逻辑页号和物理页号之间的映射信息、或者逻辑扇区号和物理扇区号之间的映射信息。
图20显示M个分配的映射块。预定数目的映射块(M个映射块)可从其中可写入所有逻辑-物理映射信息的数据块中来独立地分配。以下,如果将被写入的映射信息的大小不超过一个块(这种情况在以下被假设),那么操作可仅用一个分配的块来进行。然而,在任何系统在执行写或擦除任务期间突然掉电的情况下,留下先前映射表,直到最新更新的映射表被完全写入时才擦除先前映射表是安全的。因此,通过分配两个或多个块,即使一旦突然掉电映射表信息也可被安全地管理。
图21显示根据本发明的在映射片段单元400中的备用区域的配置。为了安全地保护逻辑-物理映射信息,附加信息被写入备用区域420。附加信息可包括随着当关于有效映射信息的映射片段单元从现有映射块被复制到新的映射块时增加的次数而被写的年龄(age)421、表示关于被划分并且被存储的映射片段的序列号的片段号422、表示当映射块被擦除时错误是否存在的签名423、和表示在写映射片段期间没有产生错误的有效标记424。当映射片段被写入时它们一起被写入。
年龄421被用于找到几个块中的有效块。其满足年龄每个块被写入一次,但是在本实施例中假设年龄被写入块中的所有映射片段单元中。在关于映射信息的映射片段410被更新的情况下,映射片段与关于更新的映射信息的片段号422一起被写入块中的第一空单元中。在通过对映射片段410的几次更新,空单元不再存在于块中的情况下,当下一空映射块存在时,其被写到下一空映射块中,并且当没有空映射块存在时,在有效映射块被擦除之后,涉及先前块的有效映射信息的映射片段410被整个地移动,并且比先前块的年龄421更高的年龄421被写入新的块。因此,具有最大年龄号421的映射块被认为有效。
当与映射信息相关的映射片段410在闪速存储器中被更新时,找到有效映射片段410的下列方法如下。在本发明中仅有一个块,该块具有与有效映射信息相关的映射片段410。因此,具有有效映射信息的映射块被首先找到,并且此块变成具有最大年龄421的映射块的块。由于即使在具有最大年龄421的映射块中也可存在具有特定片段号422的几个映射片段410,在映射片段之中最近记录的映射片段(当映射片段单元被顺序地记录时最低记录的一个)被选择。
即使写入闪速存储器的典型数据信息被部分地丢失,信息的剩余部分也仅允许用户执行期望的任务。相反地,映射信息包含较小数量的信息,但是,如果丢失,存储在闪速存器中的所有的数据很可能没用。因此,映射信息的安全保护非常重要。具体地讲,由于闪速存储器被广泛地使用在如嵌入式系统和移动装置的应用中,掉电频繁地发生。因此,对掉电的解决方法是必须的。在写或擦除操作期间掉电尤其重要。在本发明中,签名423和有效标记424概念的引入被用于辨别由掉电引起的无效数据。在关于映射信息的映射片段410已经被写入之后,有效标记424总是被写入。有效标记424没有被写到其的映射片段410被认为是由于完成记录处理结束失败导致的无效映射片段410。
另外,在写映射片段410的情况下,其与包括至少一位0的签名423的给定字节一起被写入。如果对于块的擦除操作被完成,那么块中的位都被初始化为1。因此,写入的数据的0s都被变为1s。当在擦除处理期间掉电发生时,一些位变为1s,而一些保留0s。因此,尽管有效标记424按照原样被保持,年龄421、签名423或诸如此类,包括映射片段410也将可能被修改。如果这样,将被擦除的块的年龄被修改,并且不幸地,有可能被修改为具有最高年龄421的块。例如,假设在擦除之前映射块的年龄的二进制数为‘0000101’,在映射块的擦除期间,‘0’将被改为‘1’,以致年龄为‘1111111’。如果此比有效映射块421的年龄大,那么停止擦除的映射块可被错误地识别为具有最大年龄421的有效映射块。
然而,当年龄421由于在块擦除期间发生掉电而导致被修改时,签名423的位也将被修改为1。因此,当签名不匹配时,其被认为是其中在擦除处理期间发生掉电的块,从而解决了前述问题。当这种方法被用于识别擦除操作期间的掉电,辨别的可能性取决于签名的长度和签名中的0s的数目。
最终,在映射块中不存在空单元的情况下,需要用于将所有的有效映射片段单元400移动到新的块的任务。此时,如果当有效映射片段单元400被移动到新的块时掉电发生,那么因为先前块还未被擦除,所以有效映射片段410可一起存在于两个映射块中。然而,根据本发明,有效标记424仅在所有的有效映射片段单元400、年龄421、片段号422、和签名423被完全地写入新的块中之后被写入。因此,即使当映射片段单元400被移动到新的块时掉电发生时,因为当搜索有效映射块时有效标记424不存在于新的映射块中,所以根据年龄421或诸如此类的,认为甚至可能具有更新映射信息的映射块无效。因此,这种映射块起初被从找到有效映射块的处理中排除。同时,因为先前映射块没有被擦除而按照原样保留,所以其被选择为有效映射块。从而,最新的映射信息可被安全地管理。
根据本发明,优点在于:通过提出大型块闪速存储器的特性被影响的逻辑-物理地址映射方法和逻辑-物理地址映射方法,即使在突然掉电时大型块闪速存储器的性能可被增强并且系统可被安全地恢复。
尽管本发明的实施例是参照附图来描述的,但本领域的那些技术人员应该理解,在不修改本发明的技术精神或本质特征的情况下本发明可在其他详细形式下被实现。因此,应注意该实施例在所有方面是示例性的,而不是限定性的。
Claims (36)
1、一种用于在闪速存储器中写数据的方法,该闪速存储器包括具有包括预定数目的扇区的页的至少一个块,数据以扇区为基础或以页为基础被写入,并且以块为基础被擦除,该方法包括:
第一步骤,确定在具有将被写入的数据的最新写入的逻辑页号的第一物理页中第一扇区是否为空,其中,第一扇区的偏移量匹配将被写入的数据的偏移量;
第二步骤,如果确定其偏移量匹配的第一扇区为空,那么在其偏移量匹配的物理页的第一扇区中写数据;和
第三步骤,如果确定其偏移量匹配的第一扇区不为空,则选择第二空物理页以将数据写到被选的第二空物理页中的第二扇区中,其中,第二扇区的偏移量匹配将被写入的数据的偏移量,并且将数据的逻辑页号写到被选的第二空物理页中。
2、如权利要求1所述的方法,其中,数据被写入的区域是多个物理页中的其中一个的主区域,并且逻辑页号被写入的区域是多个物理页中的其中一个的备用区域。
3、如权利要求1所述的方法,在第一步骤之前,还包括以下步骤:
确定将被写入的数据的逻辑页号是否曾经被写入,并且,如果逻辑页号已经被写入,那么执行第一步骤,否则,将数据和数据的逻辑页号写入由现有的物理-逻辑映射信息指定的位置。
4、如权利要求1所述的方法,其中,第一步骤同时确定在具有将被写入的数据的最近写入的逻辑页号的第一物理页中其偏移量匹配将被写入的数据的偏移量的第一扇区是否为空,并且跟随在第一物理页中的第一扇区的扇区是否都为空。
5、如权利要求1至4所述的方法,其中,该数据为第一数据,还包括:
第四步骤,在写到具有在第三步骤中写入的逻辑页号的现有有效逻辑页的多个数据之中,将第二数据而不是在第三步骤中写入的第一数据复制到被选第二空物理页中。
6、如权利要求5所述的方法,其中,通过找到一个或多个具有相同逻辑页号的最高编号的物理页,来完成当第二数据被从较低编号的物理页顺次写入时找到现有有效逻辑页。
7、如权利要求5所述的方法,其中,通过在一个或多个具有相同逻辑页号的物理页之中选择除在适当位置的页之外的页,并且找到被选页的最高编号的物理页,来完成当以适当位置优先方式写入第一数据时找到现有有效逻辑页。
8、一种用于在闪速存储器中写数据的方法,该闪速存储器包括具有包括预定数目的扇区的页的至少一个块,数据以扇区或页为基础被写入,并且以块为基础被擦除,该方法包括:
第一步骤,确定第一空扇区是否存在于具有将被写入的数据的最近写入的逻辑页号的第一物理页中,第一空扇区能够存储将被写入的数据;
第二步骤,如果确定第一空扇区存在,那么将数据写入第一物理页中的第一空扇区中,并且将数据的逻辑扇区号写入第一物理页中;和
第三步骤,如果确定第一空扇区不存在,那么选择第二空物理页以将数据写到被选的第二空物理页中的第二扇区中,并且将数据的逻辑页号和逻辑扇区号写到被选的第二空物理页中。
9、如权利要求8所述的方法,其中,第二步骤和第三步骤中写逻辑扇区号,将逻辑扇区号写入与数据被写入的第一空和第二空扇区中的一个的位置相应的第一物理页和第二空物理页中的一个的主区域中的备用区域的位置。
10、如权利要求8所述的方法,其中,数据为第一数据,还包括:
第四步骤,在写入具有在第三步骤中写入的逻辑页号的现有有效逻辑页中的多个数据之中,将第二数据而不是在第三步骤中写入的第一数据以及第二数据的逻辑扇区号复制到被选的第二空物理页中。
11、如权利要求10所述的方法,其中,通过在一个或多个具有相同逻辑页号的物理页之中找到最高编号的物理页,来完成当第二数据被从较低编号的物理页顺次写入时找到现有有效逻辑页。
12、如权利要求10所述的方法,其中,通过在一个或多个具有相同逻辑页号的物理页之中选择除在适当位置的页之外的页,并且找到被选的页的最高编号的物理页,来完成当以适当位置优先方式写入第一数据时找到有效逻辑页。
13、一种用于在闪速存储器中写数据的方法,该闪速存储器包括具有包括预定数目的扇区的页的至少一个块,数据以扇区为基础或以页为基础被写入,并且以块为基础被擦除,该方法包括:
第一步骤,确定能够存储将被写入的数据的第一空扇区是否存在于当前块中;和
第二步骤,如果确定第一空扇区存在,那么将数据写入第一空扇区中,并且将数据的逻辑扇区号写入第一空扇区所位于的第一物理页中。
14、如权利要求13所述的方法,其中,写逻辑扇区号,将逻辑扇区号写入在与数据被写入的第一空扇区的位置相应的物理页的主区域中的备用区域的位置。
15、如权利要求13所述的方法,其中,第一空扇区为空扇区,其中第一空扇区的偏移量匹配将被写入的数据的偏移量。
16、如权利要求15所述的方法,其中,第一步骤确定其偏移量匹配将被写入的数据的偏移量并且为空的第一空扇区是否存在于当前块中。
17、一种闪速存储器,包括具有包括预定数目的扇区的页的至少一个块,数据以扇区为基础或以页为基础被写入,并且以块为基础被擦除,其中:
闪速存储器确定在具有将被写入的数据的最新写入的逻辑扇区号的第一物理页中其中第一扇区的偏移量匹配将被写入的数据的偏移量的第一扇区是否为空,和
如果确定其偏移量匹配的第一扇区为空,那么闪速存储器将数据写入在第一物理页中的其偏移量匹配的第一扇区中,或者
如果确定其偏移量匹配的第一扇区不为空,那么闪速存储器选择第二空物理页以将数据写到第二扇区中,其中第二扇区的偏移量匹配将被写入的数据的偏移量,并且将数据的逻辑页号写入被选的第二空物理页中。
18、如权利要求17所述的闪速存储器,其中,确定第一扇区是否为空,同时确定在具有将被写入的数据的最新写入的逻辑页号的第一物理页中其偏移量匹配将被写入的数据的偏移量的第一扇区是否为空,并且跟随第一物理页中的第一扇区的剩余扇区是否都为空。
19、如权利要求17或18所述的闪速存储器,其中,数据是第一数据,并且在写到具有写入的逻辑页号的现有有效逻辑页的多个数据之中,第二数据而不是第一数据被复制到被选的第二空物理页中。
20、一种包括具有包括预定数目的扇区的页的至少一个块的闪速存储器,数据以扇区为基础或以页为基础被写入,并且以块为基础被擦除,其中:
闪速存储器确定第一空扇区是否存在于具有将被写入的数据的最新写入的逻辑页号的第一物理页中,第一空扇区能够存储将被写入的数据,和
如果确定第一空扇区存在,那么闪速存储器将数据写入第一物理页中的第一空扇区中,并且将数据的逻辑扇区号写入第一物理页中,或者
如果确定第一空扇区不存在,那么第二空物理页被选择以将数据写入被选的第二空物理页中的第二空扇区中,并且将数据的逻辑页号和逻辑扇区号写入被选的第二空物理页中。
21、如权利要求20所述的闪速存储器,其中,写逻辑扇区号,将逻辑扇区号写入与数据被写入的第一和第二扇区中的一个的位置相应的第一物理页和第二物理页中的一个中的主区域中的备用区域的位置中。
22、如权利要求20所述的闪速存储器,其中,数据是第一数据,并且在被写入具有写入的逻辑页号的现有有效逻辑页中的多个数据之中第二数据而不是第一数据以及其的逻辑扇区号被复制到第一物理页和被选的第二空物理页中的一个中。
23、一种包括具有包括预定数目的扇区的页的至少一个块的闪速存储器,数据以扇区为基础或以页为基础被写入,并且以块为基础被擦除,其中:
确定关于能够存储将被写入的数据的空扇区是否存在于当前块中,和
如果空扇区存在,那么数据将被写入空扇区中,并且数据的逻辑扇区号被写入空扇区所位于的物理页中。
24、如权利要求23所述的闪速存储器,其中,写逻辑扇区号,将逻辑扇区号写入与其中数据被写入物理页的主区域的空扇区的位置相应的备用区域的位置中。
25、如权利要求23所述的闪速存储器,其中,空扇区是其中扇区偏移量相应于将被写入的数据的偏移量的空扇区。
26、如权利要求25所述的闪速存储器,其中,确定空扇区是否存在于当前块中,确定扇区偏移量匹配将被写入的数据的扇区偏移量的空扇区以及其后面的剩余空扇区是否存在于当前块中。
27、一种包括多个块的闪速存储器,包括:
在被分配作为单独的映射块以存储逻辑-物理映射信息的多个块中的至少一个中的至少一个映射片段单元,单独的映射块存储被分为片段的逻辑-物理映射信息,其中,当逻辑-物理映射信息被修改时,通过将修改的信息写入单独映射块中的空映射单元中来更新逻辑-物理映射信息。
28、如权利要求27所述的闪速存储器,其中,在一个映射块中多个映射片段单元具有相同的号,当多个映射片段单元存在时,仅最近写入的映射片段单元被认为有效。
29、如权利要求27所述的闪速存储器,其中,逻辑-物理映射信息是逻辑块号和物理块号之间的映射信息。
30、如权利要求27所述的闪速存储器,其中,逻辑-物理映射信息是逻辑页号和物理页号之间的映射信息。
31、如权利要求27所述的闪速存储器,其中,逻辑-物理映射信息是逻辑扇区号和物理扇区号之间的映射信息。
32、如权利要求27所述的闪速存储器,其中,将被存储的逻辑-物理映射信息的数量不大于一个映射块。
33、如权利要求27所述的闪速存储器,其中,映射片段单元包括:
映射片段,用于存储分段为片段的逻辑-物理映射信息;和
备用区域,用于写入安全地保护逻辑-物理映射信息的附加信息。
34、如权利要求33所述的闪速存储器,其中,附加信息包括:
片段号字段,表示存储的分段的映射片段的序列号;和
年龄字段,其中,当关于有效映射信息的映射片段单元从现有的映射块被复制到新的映射块时年龄字段的数增加。
35、如权利要求33所述的闪速存储器,其中,附加信息包括表示因为在映射片段已经被完全写之后该附加信息才被写入所以在映射片段的擦除期间错误不发生的有效标记。
36、如权利要求33所述的闪速存储器,其中,附加信息包括具有至少一位0的位序列,并且附加信息还包括表示在存在至少一位被转换为1的基础上在映射块的擦除期间错误是否发生的签名字段。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR100488/2003 | 2003-12-30 | ||
KR10-2003-0100488A KR100526188B1 (ko) | 2003-12-30 | 2003-12-30 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
KR100488/03 | 2003-12-30 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101018722A Division CN1900919B (zh) | 2003-12-30 | 2004-12-30 | 包括多个块的闪速存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1637721A true CN1637721A (zh) | 2005-07-13 |
CN1295622C CN1295622C (zh) | 2007-01-17 |
Family
ID=34567858
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101018722A Active CN1900919B (zh) | 2003-12-30 | 2004-12-30 | 包括多个块的闪速存储器 |
CNB2004101040229A Active CN1295622C (zh) | 2003-12-30 | 2004-12-30 | 地址映射方法和映射信息管理方法及其闪速存储器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101018722A Active CN1900919B (zh) | 2003-12-30 | 2004-12-30 | 包括多个块的闪速存储器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7702844B2 (zh) |
EP (1) | EP1550952A3 (zh) |
JP (2) | JP3977370B2 (zh) |
KR (1) | KR100526188B1 (zh) |
CN (2) | CN1900919B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100456263C (zh) * | 2005-12-30 | 2009-01-28 | 深圳市桑达实业股份有限公司 | 在税控收款机中使用闪存时处理坏块的方法 |
CN102375779A (zh) * | 2010-08-16 | 2012-03-14 | 深圳市朗科科技股份有限公司 | 一种数据处理方法以及数据处理模块 |
CN101398759B (zh) * | 2007-06-29 | 2012-06-13 | 北京中星微电子有限公司 | 避免启动代码在数据段搬移时自我覆盖的方法 |
CN102541753A (zh) * | 2011-12-29 | 2012-07-04 | 上海爱信诺航芯电子科技有限公司 | 一种嵌入式存储器的读写优化方法 |
CN102662858A (zh) * | 2012-03-08 | 2012-09-12 | 上海爱信诺航芯电子科技有限公司 | 一种扩展sram容量的虚拟存储方法 |
CN102736981A (zh) * | 2011-04-08 | 2012-10-17 | 航天信息股份有限公司 | 提高nor flash擦写寿命的方法 |
CN102831072A (zh) * | 2012-08-10 | 2012-12-19 | 深圳市江波龙电子有限公司 | 闪存设备及其管理方法、数据读写方法及读写装置 |
CN101676882B (zh) * | 2008-09-16 | 2013-01-16 | 美光科技公司 | 存储器装置的内嵌映射信息 |
CN101782871B (zh) * | 2009-01-16 | 2013-02-13 | 株式会社东芝 | 信息处理装置、处理器及存储器管理方法 |
CN102955741A (zh) * | 2011-08-30 | 2013-03-06 | 联咏科技股份有限公司 | 存储器装置及其写入方法 |
CN101739352B (zh) * | 2008-11-06 | 2013-09-18 | 慧帝科技(深圳)有限公司 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN106201329A (zh) * | 2015-05-07 | 2016-12-07 | 慧荣科技股份有限公司 | 循环区块模式下的数据存取方法以及使用该方法的装置 |
CN110389906A (zh) * | 2018-04-23 | 2019-10-29 | 旺宏电子股份有限公司 | 存储器元件中重新编排数据的方法、及其控制器与系统 |
CN110888823A (zh) * | 2019-11-26 | 2020-03-17 | 深圳忆联信息系统有限公司 | 页扫描效率的提升方法、装置及计算机设备 |
Families Citing this family (126)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452938B1 (en) * | 2004-12-30 | 2013-05-28 | Azul Systems, Inc. | Garbage collection with memory quick release |
WO2007058617A1 (en) * | 2005-11-17 | 2007-05-24 | Chee Keng Chang | A controller for non-volatile memories, and methods of operating the memory controller |
JP4633802B2 (ja) * | 2005-12-09 | 2011-02-16 | パナソニック株式会社 | 不揮発性記憶装置及びデータ読み出し方法及び管理テーブル作成方法 |
KR100781517B1 (ko) * | 2006-02-16 | 2007-12-03 | 삼성전자주식회사 | 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법 |
KR100703806B1 (ko) | 2006-02-16 | 2007-04-09 | 삼성전자주식회사 | 비휘발성 메모리, 이를 위한 데이터 유효성을 판단하는장치 및 방법 |
JP2007233838A (ja) * | 2006-03-02 | 2007-09-13 | Toshiba Corp | メモリシステムの制御方法 |
KR100736103B1 (ko) | 2006-06-27 | 2007-07-06 | 삼성전자주식회사 | 비휘발성 메모리, 상기 비휘발성 메모리의 데이터 유효성을판단하는 장치 및 방법 |
TW200805394A (en) * | 2006-07-07 | 2008-01-16 | Alcor Micro Corp | Memory storage device and the read/write method thereof |
KR100809319B1 (ko) * | 2006-09-13 | 2008-03-05 | 삼성전자주식회사 | 플래시 메모리에서 연속한 섹터 쓰기 요청에 대해 원자성을제공하는 장치 및 방법 |
KR100843133B1 (ko) * | 2006-09-20 | 2008-07-02 | 삼성전자주식회사 | 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법 |
KR100806343B1 (ko) * | 2006-10-19 | 2008-02-27 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법 |
KR100843135B1 (ko) | 2006-11-20 | 2008-07-02 | 삼성전자주식회사 | 비휘발성 메모리 관리 방법 및 장치 |
KR100825802B1 (ko) * | 2007-02-13 | 2008-04-29 | 삼성전자주식회사 | 기입 데이터의 논리적 페이지보다 이전 논리적 페이지들을가지는 데이터들을 데이터 블록으로부터 복사하는 불휘발성메모리 장치의 데이터 기입 방법 |
KR100817087B1 (ko) * | 2007-02-13 | 2008-03-27 | 삼성전자주식회사 | 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법 |
KR101041710B1 (ko) | 2007-03-21 | 2011-06-14 | 인텔 코포레이션 | 비휘발성 메모리의 섹터 관리 방법 |
KR100889781B1 (ko) | 2007-04-30 | 2009-03-20 | 삼성전자주식회사 | 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템 |
US8650352B2 (en) | 2007-09-20 | 2014-02-11 | Densbits Technologies Ltd. | Systems and methods for determining logical values of coupled flash memory cells |
WO2009095902A2 (en) | 2008-01-31 | 2009-08-06 | Densbits Technologies Ltd. | Systems and methods for handling immediate data errors in flash memory |
US8694715B2 (en) | 2007-10-22 | 2014-04-08 | Densbits Technologies Ltd. | Methods for adaptively programming flash memory devices and flash memory systems incorporating same |
US8443242B2 (en) | 2007-10-25 | 2013-05-14 | Densbits Technologies Ltd. | Systems and methods for multiple coding rates in flash devices |
WO2009072105A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications |
WO2009072103A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells |
WO2009072102A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices |
WO2009074978A2 (en) | 2007-12-12 | 2009-06-18 | Densbits Technologies Ltd. | Systems and methods for error correction and decoding on multi-level physical media |
WO2009074979A2 (en) * | 2007-12-12 | 2009-06-18 | Densbits Technologies Ltd. | Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications |
US8327246B2 (en) | 2007-12-18 | 2012-12-04 | Densbits Technologies Ltd. | Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith |
KR100950281B1 (ko) * | 2008-02-28 | 2010-03-31 | 아주대학교산학협력단 | 플래시 메모리 시스템 및 플래시 메모리의 데이터 연산방법 |
US8972472B2 (en) | 2008-03-25 | 2015-03-03 | Densbits Technologies Ltd. | Apparatus and methods for hardware-efficient unbiased rounding |
JP2009282678A (ja) * | 2008-05-21 | 2009-12-03 | Hitachi Ltd | フラッシュメモリモジュール及びストレージシステム |
US8555086B2 (en) * | 2008-06-30 | 2013-10-08 | Intel Corporation | Encrypting data on a non-volatile memory |
JP5180726B2 (ja) * | 2008-07-31 | 2013-04-10 | 株式会社日立製作所 | 記憶装置およびデータ書き込み制御方法 |
KR20100021868A (ko) * | 2008-08-18 | 2010-02-26 | 삼성전자주식회사 | 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법 |
US8332725B2 (en) | 2008-08-20 | 2012-12-11 | Densbits Technologies Ltd. | Reprogramming non volatile memory portions |
KR100965051B1 (ko) | 2008-10-01 | 2010-06-21 | 서울시립대학교 산학협력단 | 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치 |
KR101510120B1 (ko) | 2008-11-21 | 2015-04-10 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 관리 방법 |
KR101022001B1 (ko) * | 2008-12-08 | 2011-03-17 | 주식회사 이스트후 | 플래시 메모리 시스템 및 플래시 메모리의 관리 방법 |
US8819385B2 (en) * | 2009-04-06 | 2014-08-26 | Densbits Technologies Ltd. | Device and method for managing a flash memory |
US8458574B2 (en) | 2009-04-06 | 2013-06-04 | Densbits Technologies Ltd. | Compact chien-search based decoding apparatus and method |
US8566510B2 (en) | 2009-05-12 | 2013-10-22 | Densbits Technologies Ltd. | Systems and method for flash memory management |
US8296503B2 (en) * | 2009-05-26 | 2012-10-23 | Mediatek Inc. | Data updating and recovering methods for a non-volatile memory array |
US8995197B1 (en) | 2009-08-26 | 2015-03-31 | Densbits Technologies Ltd. | System and methods for dynamic erase and program control for flash memory device memories |
US9330767B1 (en) | 2009-08-26 | 2016-05-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory module and method for programming a page of flash memory cells |
US8868821B2 (en) | 2009-08-26 | 2014-10-21 | Densbits Technologies Ltd. | Systems and methods for pre-equalization and code design for a flash memory |
US8305812B2 (en) | 2009-08-26 | 2012-11-06 | Densbits Technologies Ltd. | Flash memory module and method for programming a page of flash memory cells |
US8730729B2 (en) | 2009-10-15 | 2014-05-20 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
US8724387B2 (en) | 2009-10-22 | 2014-05-13 | Densbits Technologies Ltd. | Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages |
JP5525605B2 (ja) * | 2009-11-04 | 2014-06-18 | 株式会社日立製作所 | フラッシュメモリモジュール |
US8626988B2 (en) | 2009-11-19 | 2014-01-07 | Densbits Technologies Ltd. | System and method for uncoded bit error rate equalization via interleaving |
US9229970B2 (en) * | 2009-12-07 | 2016-01-05 | International Business Machines Corporation | Methods to minimize communication in a cluster database system |
US9037777B2 (en) | 2009-12-22 | 2015-05-19 | Densbits Technologies Ltd. | Device, system, and method for reducing program/read disturb in flash arrays |
US8607124B2 (en) | 2009-12-24 | 2013-12-10 | Densbits Technologies Ltd. | System and method for setting a flash memory cell read threshold |
US8700970B2 (en) | 2010-02-28 | 2014-04-15 | Densbits Technologies Ltd. | System and method for multi-dimensional decoding |
US8527840B2 (en) | 2010-04-06 | 2013-09-03 | Densbits Technologies Ltd. | System and method for restoring damaged data programmed on a flash device |
US8516274B2 (en) | 2010-04-06 | 2013-08-20 | Densbits Technologies Ltd. | Method, system and medium for analog encryption in a flash memory |
US8745317B2 (en) | 2010-04-07 | 2014-06-03 | Densbits Technologies Ltd. | System and method for storing information in a multi-level cell memory |
US9021177B2 (en) | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
US8539311B2 (en) | 2010-07-01 | 2013-09-17 | Densbits Technologies Ltd. | System and method for data recovery in multi-level cell memories |
US8621321B2 (en) | 2010-07-01 | 2013-12-31 | Densbits Technologies Ltd. | System and method for multi-dimensional encoding and decoding |
US20120008414A1 (en) | 2010-07-06 | 2012-01-12 | Michael Katz | Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system |
US8964464B2 (en) | 2010-08-24 | 2015-02-24 | Densbits Technologies Ltd. | System and method for accelerated sampling |
US8508995B2 (en) | 2010-09-15 | 2013-08-13 | Densbits Technologies Ltd. | System and method for adjusting read voltage thresholds in memories |
US9063878B2 (en) | 2010-11-03 | 2015-06-23 | Densbits Technologies Ltd. | Method, system and computer readable medium for copy back |
US8850100B2 (en) | 2010-12-07 | 2014-09-30 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
US10079068B2 (en) | 2011-02-23 | 2018-09-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Devices and method for wear estimation based memory management |
US8693258B2 (en) | 2011-03-17 | 2014-04-08 | Densbits Technologies Ltd. | Obtaining soft information using a hard interface |
US8990665B1 (en) | 2011-04-06 | 2015-03-24 | Densbits Technologies Ltd. | System, method and computer program product for joint search of a read threshold and soft decoding |
US9372792B1 (en) | 2011-05-12 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US9195592B1 (en) | 2011-05-12 | 2015-11-24 | Densbits Technologies Ltd. | Advanced management of a non-volatile memory |
US9396106B2 (en) | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US9501392B1 (en) | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
US9110785B1 (en) | 2011-05-12 | 2015-08-18 | Densbits Technologies Ltd. | Ordered merge of data sectors that belong to memory space portions |
US8996790B1 (en) | 2011-05-12 | 2015-03-31 | Densbits Technologies Ltd. | System and method for flash memory management |
US8667211B2 (en) | 2011-06-01 | 2014-03-04 | Densbits Technologies Ltd. | System and method for managing a non-volatile memory |
US8588003B1 (en) | 2011-08-01 | 2013-11-19 | Densbits Technologies Ltd. | System, method and computer program product for programming and for recovering from a power failure |
US9417803B2 (en) | 2011-09-20 | 2016-08-16 | Apple Inc. | Adaptive mapping of logical addresses to memory devices in solid state drives |
US8553468B2 (en) | 2011-09-21 | 2013-10-08 | Densbits Technologies Ltd. | System and method for managing erase operations in a non-volatile memory |
CN102609358B (zh) * | 2012-01-12 | 2014-12-03 | 记忆科技(深圳)有限公司 | 聚集静态数据的方法及其固态硬盘 |
JP5687639B2 (ja) | 2012-02-08 | 2015-03-18 | 株式会社東芝 | コントローラ、データ記憶装置及びプログラム |
US8996788B2 (en) | 2012-02-09 | 2015-03-31 | Densbits Technologies Ltd. | Configurable flash interface |
US8947941B2 (en) | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
US8996793B1 (en) | 2012-04-24 | 2015-03-31 | Densbits Technologies Ltd. | System, method and computer readable medium for generating soft information |
US8838937B1 (en) | 2012-05-23 | 2014-09-16 | Densbits Technologies Ltd. | Methods, systems and computer readable medium for writing and reading data |
US8879325B1 (en) | 2012-05-30 | 2014-11-04 | Densbits Technologies Ltd. | System, method and computer program product for processing read threshold information and for reading a flash memory module |
KR101993704B1 (ko) | 2012-08-24 | 2019-06-27 | 삼성전자주식회사 | 플래시 메모리를 기반으로 하는 저장 장치 및 플래시 메모리를 제어하는 메모리 컨트롤러의 쓰기 메모리 블록 할당 방법 |
US9921954B1 (en) * | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
US9368225B1 (en) | 2012-11-21 | 2016-06-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Determining read thresholds based upon read error direction statistics |
US9069659B1 (en) | 2013-01-03 | 2015-06-30 | Densbits Technologies Ltd. | Read threshold determination using reference read threshold |
US20140281132A1 (en) * | 2013-03-15 | 2014-09-18 | Marielle Bundukin | Method and system for ram cache coalescing |
KR101453313B1 (ko) * | 2013-03-25 | 2014-10-22 | 아주대학교산학협력단 | 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템 |
US9136876B1 (en) | 2013-06-13 | 2015-09-15 | Densbits Technologies Ltd. | Size limited multi-dimensional decoding |
US9489299B2 (en) | 2013-06-19 | 2016-11-08 | Sandisk Technologies Llc | Data encoding for non-volatile memory |
US9489300B2 (en) | 2013-06-19 | 2016-11-08 | Sandisk Technologies Llc | Data encoding for non-volatile memory |
US9489294B2 (en) * | 2013-06-19 | 2016-11-08 | Sandisk Technologies Llc | Data encoding for non-volatile memory |
US9413491B1 (en) | 2013-10-08 | 2016-08-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for multiple dimension decoding and encoding a message |
US9786388B1 (en) | 2013-10-09 | 2017-10-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9348694B1 (en) | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9397706B1 (en) | 2013-10-09 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for irregular multiple dimension decoding and encoding |
US9390008B2 (en) | 2013-12-11 | 2016-07-12 | Sandisk Technologies Llc | Data encoding for non-volatile memory |
CN103617101A (zh) * | 2013-12-12 | 2014-03-05 | 北京旋极信息技术股份有限公司 | 一种掉电保护方法及装置 |
WO2015096698A1 (zh) * | 2013-12-24 | 2015-07-02 | 飞天诚信科技股份有限公司 | 一种Flash的数据写入和读取方法 |
KR102252419B1 (ko) | 2014-01-09 | 2021-05-14 | 한국전자통신연구원 | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 |
US9536612B1 (en) | 2014-01-23 | 2017-01-03 | Avago Technologies General Ip (Singapore) Pte. Ltd | Digital signaling processing for three dimensional flash memory arrays |
US10120792B1 (en) | 2014-01-29 | 2018-11-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Programming an embedded flash storage device |
US9542262B1 (en) | 2014-05-29 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Error correction |
KR102430198B1 (ko) | 2014-06-12 | 2022-08-05 | 삼성전자주식회사 | 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법 |
US9892033B1 (en) | 2014-06-24 | 2018-02-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of memory units |
US9584159B1 (en) | 2014-07-03 | 2017-02-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interleaved encoding |
US9972393B1 (en) | 2014-07-03 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Accelerating programming of a flash memory module |
US9449702B1 (en) | 2014-07-08 | 2016-09-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power management |
US9524211B1 (en) | 2014-11-18 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Codeword management |
DE102015200808A1 (de) * | 2015-01-20 | 2016-07-21 | Continental Automotive Gmbh | Verfahren zur Behandlung von Unterbrechungen der Energieversorgung eines sektorweise löschbaren nichtflüchtigen Datenspeichers, elektronisches System und Computerprogrammprodukt |
US10305515B1 (en) | 2015-02-02 | 2019-05-28 | Avago Technologies International Sales Pte. Limited | System and method for encoding using multiple linear feedback shift registers |
CN106095699B (zh) * | 2015-03-20 | 2020-12-01 | 爱思开海力士有限公司 | 用于快闪存储器的可扩展spor算法 |
US10628255B1 (en) | 2015-06-11 | 2020-04-21 | Avago Technologies International Sales Pte. Limited | Multi-dimensional decoding |
US9851921B1 (en) | 2015-07-05 | 2017-12-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory chip processing |
TWI601141B (zh) * | 2015-08-21 | 2017-10-01 | 晨星半導體股份有限公司 | 快閃記憶體的存取方法及相關的記憶體控制器與電子裝置 |
US9996463B2 (en) * | 2015-11-10 | 2018-06-12 | International Business Machines Corporation | Selection and placement of volumes in a storage system using stripes |
CN105511583A (zh) * | 2015-12-02 | 2016-04-20 | 福建星网锐捷网络有限公司 | 用于存储设备的掉电保护电路及方法 |
US9954558B1 (en) | 2016-03-03 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Fast decoding of data stored in a flash memory |
KR102611292B1 (ko) * | 2016-06-22 | 2023-12-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US11100996B2 (en) * | 2017-08-30 | 2021-08-24 | Micron Technology, Inc. | Log data storage for flash memory |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11650932B2 (en) | 2020-10-25 | 2023-05-16 | Western Digital Technologies, Inc. | Integrated non-volatile memory assembly with address translation |
KR20230100008A (ko) * | 2021-12-28 | 2023-07-05 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
CN114816833B (zh) * | 2022-04-15 | 2023-07-18 | 巨翊科技(上海)有限公司 | 一种flash数据的写入方法、装置以及系统 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2251323B (en) * | 1990-12-31 | 1994-10-12 | Intel Corp | Disk emulation for a non-volatile semiconductor memory |
US5359570A (en) | 1992-11-13 | 1994-10-25 | Silicon Storage Technology, Inc. | Solid state peripheral storage device |
US5404485A (en) | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
JPH08137634A (ja) | 1994-11-09 | 1996-05-31 | Mitsubishi Electric Corp | フラッシュディスクカード |
JP3464836B2 (ja) * | 1995-01-19 | 2003-11-10 | 富士通株式会社 | 記憶装置のメモリ管理装置 |
JP3706167B2 (ja) | 1995-02-16 | 2005-10-12 | 株式会社ルネサステクノロジ | 半導体ディスク装置 |
JPH09185551A (ja) * | 1996-01-08 | 1997-07-15 | Mitsubishi Electric Corp | 半導体記憶装置 |
US5937425A (en) | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
KR100577380B1 (ko) * | 1999-09-29 | 2006-05-09 | 삼성전자주식회사 | 플래시 메모리와 그 제어 방법 |
KR100644602B1 (ko) | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
TW539946B (en) | 2001-08-07 | 2003-07-01 | Solid State System Company Ltd | Window-based flash memory storage system, and the management method and the access method thereof |
JP2003058417A (ja) * | 2001-08-21 | 2003-02-28 | Matsushita Electric Ind Co Ltd | 記憶装置 |
US6760805B2 (en) | 2001-09-05 | 2004-07-06 | M-Systems Flash Disk Pioneers Ltd. | Flash management system for large page size |
US6678785B2 (en) * | 2001-09-28 | 2004-01-13 | M-Systems Flash Disk Pioneers Ltd. | Flash management system using only sequential write |
US6711663B2 (en) | 2001-11-15 | 2004-03-23 | Key Technology Corporation | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof |
KR100449708B1 (ko) * | 2001-11-16 | 2004-09-22 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
JP4034971B2 (ja) | 2002-01-21 | 2008-01-16 | 富士通株式会社 | メモリコントローラおよびメモリシステム装置 |
JP3826115B2 (ja) | 2002-06-20 | 2006-09-27 | 東京エレクトロンデバイス株式会社 | 記憶装置、メモリ管理方法及びプログラム |
US7076598B2 (en) * | 2003-09-09 | 2006-07-11 | Solid State System Co., Ltd. | Pipeline accessing method to a large block memory |
-
2003
- 2003-12-30 KR KR10-2003-0100488A patent/KR100526188B1/ko active IP Right Grant
-
2004
- 2004-10-20 JP JP2004306003A patent/JP3977370B2/ja active Active
- 2004-12-22 US US11/018,673 patent/US7702844B2/en active Active
- 2004-12-24 EP EP04258142A patent/EP1550952A3/en not_active Withdrawn
- 2004-12-30 CN CN2006101018722A patent/CN1900919B/zh active Active
- 2004-12-30 CN CNB2004101040229A patent/CN1295622C/zh active Active
-
2007
- 2007-04-04 JP JP2007098644A patent/JP2007184005A/ja active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100456263C (zh) * | 2005-12-30 | 2009-01-28 | 深圳市桑达实业股份有限公司 | 在税控收款机中使用闪存时处理坏块的方法 |
CN101398759B (zh) * | 2007-06-29 | 2012-06-13 | 北京中星微电子有限公司 | 避免启动代码在数据段搬移时自我覆盖的方法 |
CN101676882B (zh) * | 2008-09-16 | 2013-01-16 | 美光科技公司 | 存储器装置的内嵌映射信息 |
CN101739352B (zh) * | 2008-11-06 | 2013-09-18 | 慧帝科技(深圳)有限公司 | 用来管理一记忆装置的方法以及其相关的记忆装置 |
CN101782871B (zh) * | 2009-01-16 | 2013-02-13 | 株式会社东芝 | 信息处理装置、处理器及存储器管理方法 |
CN102375779A (zh) * | 2010-08-16 | 2012-03-14 | 深圳市朗科科技股份有限公司 | 一种数据处理方法以及数据处理模块 |
CN102375779B (zh) * | 2010-08-16 | 2015-08-19 | 深圳市朗科科技股份有限公司 | 一种数据处理方法以及数据处理模块 |
CN102736981A (zh) * | 2011-04-08 | 2012-10-17 | 航天信息股份有限公司 | 提高nor flash擦写寿命的方法 |
CN102736981B (zh) * | 2011-04-08 | 2016-02-03 | 航天信息股份有限公司 | 提高nor flash擦写寿命的方法 |
CN102955741A (zh) * | 2011-08-30 | 2013-03-06 | 联咏科技股份有限公司 | 存储器装置及其写入方法 |
CN102541753A (zh) * | 2011-12-29 | 2012-07-04 | 上海爱信诺航芯电子科技有限公司 | 一种嵌入式存储器的读写优化方法 |
CN102541753B (zh) * | 2011-12-29 | 2015-08-19 | 上海爱信诺航芯电子科技有限公司 | 一种嵌入式存储器的读写优化方法 |
CN102662858B (zh) * | 2012-03-08 | 2015-03-25 | 上海爱信诺航芯电子科技有限公司 | 一种扩展sram容量的虚拟存储方法 |
CN102662858A (zh) * | 2012-03-08 | 2012-09-12 | 上海爱信诺航芯电子科技有限公司 | 一种扩展sram容量的虚拟存储方法 |
CN102831072A (zh) * | 2012-08-10 | 2012-12-19 | 深圳市江波龙电子有限公司 | 闪存设备及其管理方法、数据读写方法及读写装置 |
CN102831072B (zh) * | 2012-08-10 | 2016-03-02 | 深圳市江波龙电子有限公司 | 闪存设备及其管理方法、数据读写方法及读写装置 |
CN106201329A (zh) * | 2015-05-07 | 2016-12-07 | 慧荣科技股份有限公司 | 循环区块模式下的数据存取方法以及使用该方法的装置 |
US10168951B2 (en) | 2015-05-07 | 2019-01-01 | Silicon Motion, Inc. | Methods for accessing data in a circular block mode and apparatuses using the same |
CN106201329B (zh) * | 2015-05-07 | 2019-07-16 | 慧荣科技股份有限公司 | 循环区块模式下的数据存取方法以及使用该方法的装置 |
CN110389906A (zh) * | 2018-04-23 | 2019-10-29 | 旺宏电子股份有限公司 | 存储器元件中重新编排数据的方法、及其控制器与系统 |
CN110389906B (zh) * | 2018-04-23 | 2022-12-23 | 旺宏电子股份有限公司 | 存储器元件中重新编排数据的方法、及其控制器与系统 |
CN110888823A (zh) * | 2019-11-26 | 2020-03-17 | 深圳忆联信息系统有限公司 | 页扫描效率的提升方法、装置及计算机设备 |
CN110888823B (zh) * | 2019-11-26 | 2022-01-21 | 深圳忆联信息系统有限公司 | 页扫描效率的提升方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN1900919A (zh) | 2007-01-24 |
KR20050070672A (ko) | 2005-07-07 |
EP1550952A2 (en) | 2005-07-06 |
US7702844B2 (en) | 2010-04-20 |
EP1550952A3 (en) | 2008-01-23 |
CN1900919B (zh) | 2010-06-16 |
JP3977370B2 (ja) | 2007-09-19 |
CN1295622C (zh) | 2007-01-17 |
JP2007184005A (ja) | 2007-07-19 |
KR100526188B1 (ko) | 2005-11-04 |
JP2005196736A (ja) | 2005-07-21 |
US20050144368A1 (en) | 2005-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1295622C (zh) | 地址映射方法和映射信息管理方法及其闪速存储器 | |
US11520697B2 (en) | Method for managing a memory apparatus | |
US9304905B2 (en) | Memory controller and data management method thereof | |
US7254668B1 (en) | Method and apparatus for grouping pages within a block | |
US8533391B2 (en) | Storage device and user device including the same | |
JP3708047B2 (ja) | フラッシュメモリの管理方法 | |
US7783851B2 (en) | Methods of reusing log blocks in non-volatile memories and related non-volatile memory devices | |
KR100847506B1 (ko) | 기억 장치, 메모리 관리 방법 및 프로그램 | |
US20080098195A1 (en) | Memory system including flash memory and mapping table management method | |
CN1701308A (zh) | 维护非易失性存储系统中的擦除计数 | |
CN1701309A (zh) | 非易失性存储系统中的损耗平衡 | |
CN1701307A (zh) | 管理擦除计数区块的方法和设备 | |
US20130060991A1 (en) | Solid state drive and garbage collection control method thereof | |
CN101075211A (zh) | 基于sector访问的flash存储器的存储管理 | |
WO2006080014A2 (en) | Method of managing copy operations in flash memories | |
CN1822217A (zh) | 将数据存储在非易失性高速缓冲存储器中的设备和方法 | |
CN1701389A (zh) | 维持非易失性存储系统中的平均擦除计数 | |
CN1705936A (zh) | 用于分割一逻辑块的方法及设备 | |
JP2005242897A (ja) | フラッシュディスク装置 | |
CN1538456A (zh) | 闪存存取装置及方法 | |
US20130013885A1 (en) | Memory storage device, memory controller, and method for identifying valid data | |
JP2009205689A (ja) | フラッシュディスク装置 | |
US8898423B1 (en) | High performance caching architecture for data storage systems | |
JP2006155335A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
CN1749971A (zh) | 用长寿命非挥发性存储芯片提高内部或外部存储器使用寿命 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |