CN101241474A - 存储器映射系统及方法 - Google Patents

存储器映射系统及方法 Download PDF

Info

Publication number
CN101241474A
CN101241474A CNA2008100099115A CN200810009911A CN101241474A CN 101241474 A CN101241474 A CN 101241474A CN A2008100099115 A CNA2008100099115 A CN A2008100099115A CN 200810009911 A CN200810009911 A CN 200810009911A CN 101241474 A CN101241474 A CN 101241474A
Authority
CN
China
Prior art keywords
log
data
log blocks
group
blocks
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.)
Pending
Application number
CNA2008100099115A
Other languages
English (en)
Inventor
千源汶
李洋燮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101241474A publication Critical patent/CN101241474A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种存储器映射系统和方法,该系统包括:逻辑单元与物理单元的映射表;数据单元组,与映射表进行信号通信;日志单元组,每个日志单元组与对应的一个数据单元组相关联,其中,用于一个数据单元组内的任何数据单元的更新数据被存储在对应的一个日志单元组中内的任何日志单元中。该方法包括:从主机接收用于逻辑单元编号的写数据;确定多个数据块组中的哪一个包括所述逻辑单元编号;将写数据存储在与确定的数据块组对应的日志块组中的任意的未填充的日志单元中。

Description

存储器映射系统及方法
本申请要求于2007年2月6日在韩国知识产权局提交的第P2007-0012198号韩国专利申请的外国优先权,其公开通过引用完全包含于此。
                         技术领域
总体来说,本公开涉及闪存系统。更具体地讲,本公开涉及具有映射表(mapping table)的闪存系统和映射方法。
                         背景技术
新兴的便携式电子设备(比如计算机、数码相机、数码音乐播放器、蜂窝式电话和个人数字助理等)已经增加了对闪存的使用,具体地说,已经增加了对闪存卡的使用。闪存卡可以是SSD、SD卡、MMC、记忆棒(MemoryStick)或嵌入式卡(比如moviNAND、GBNAND和iNAND等)。
主机通常利用闪存转换层(flash translation layer,FTL)与闪存进行通信。FTL可包括存储在控制器或闪存中的固件(firmware)。FTL通常用于有效地管理闪存卡。
地址映射操作是FTL的一项功能,该操作从主机接收逻辑地址(LA),随后将接收到的LA转换成物理地址(PA)。PA是实际用于将数据存储在闪存内并从闪存检索数据的地址。
可利用地址映射表来帮助地址的转换。例如,地址映射表可被存储在闪存内,并被加载到控制器内的缓存(buffer)中。在地址映射表内,逻辑地址和对应的物理地址相关联。地址映射表的大小取决于被限定的映射单元。地址映射表的大小越大,所需的缓存的大小越大。通常的映射单元包括块或页,块通常是擦除单元的大小,而页通常是读/写单元的大小。
现有许多对应于各种映射单元可用的映射方法。在页映射方法中,通常由页单元确定映射表的大小。即,数据地址的逻辑页被转换成对应的物理页。这里,一个存储块可包括数十页或数百页。不利的是,例如,页映射方法所需的映射表的大小比块映射方法所需的映射表的大小大得多。
在块映射方法中,通常由块单元确定映射表的大小。这里,必须顺序地将页写入块内。不利的是,当使用这种方法时,为了创建自由块(free block),需要大量的合并操作(merge operation)。
                         发明内容
通过一种用于存储器映射的系统和方法来解决这些和其它问题。提供了示例实施例。
存储器映射的示例性方法包括:从主机接收用于逻辑单元编号的写数据;确定多个数据块组中的哪一个包括所述逻辑单元编号;将写数据存储在与确定的数据块组对应的日志块组中的任意的未填充的日志单元中。
另一示例性方法还包括从主机接收第二逻辑单元编号的写请求;将与第二物理单元编号对应的第二逻辑单元编号存储在日志块组的日志块中。
示例性存储器映射系统包括:输入装置,用于从主机接收用于逻辑单元编号的写数据;映射装置,用于确定多个数据块组中的哪一个包括所述逻辑单元编号;存储装置,用于将写数据存储在与确定的数据块组对应的日志块组中的任意的未填充的日志单元中。
示例性存储器映射系统包括:至少一个逻辑单元与物理单元的映射表;多个数据单元组,与至少一个映射表进行信号通信;多个日志单元组,每个日志单元组与多个数据单元组中对应的一个数据单元组相关联,其中,用于多个数据单元组中的一个数据单元组内的任意数据单元的更新数据被存储在多个日志单元组中的对应的一个日志单元组内的任意日志单元中。
将根据下面对示例性实施例的描述来进一步理解本公开,其中,将要结合附图来阅读对示例性实施例的描述。
                         附图说明
本公开提供了根据下面的示例性附图的一种用于存储器映射的系统和方法,其中:
图1示出了根据本公开示例性实施例的可用的存储器映射系统的示意性框图;
图2示出了根据本公开示例性实施例的可用的闪存卡系统的示意性框图;
图3示出了根据本公开示例性实施例的混合映射系统的示意性框图;
图4示出了根据本公开示例性实施例的合并顺序的示意性框图;
图5示出了根据本公开示例性实施例的具有组映射表的混合映射系统的示意性框图;
图6示出了根据本公开示例性实施例的组映射闪存转换层的示意性框图;
图7示出了根据本公开示例性实施例的逻辑闪存结构的示意性框图;
图8示出了根据本公开示例性实施例的页映射结构的示意性框图;
图9示出了根据本公开示例性实施例的块映射结构的示意性框图;
图10示出了根据本公开示例性实施例的混合映射结构的示意性框图;
图11示出了根据本公开示例性实施例的合并方法的示意性框图;
图12示出了根据本公开示例性实施例的复制-合并方法的示意性框图;
图13示出了根据本公开示例性实施例的交换-合并方法的示意性框图;
图14示出了根据本公开示例性实施例的1:1映射结构的示意性框图;
图15示出了根据本公开示例性实施例的1:2映射结构的示意性框图;
图16示出了根据本公开示例性实施例的1:N映射结构的示意性框图;
图17示出了根据本公开示例性实施例的N:M+K映射结构的示意性框图。
                      具体实施方式
如图1所示,存储器映射系统总地用参考标号100来表示。存储器映射系统100包括处理器116、与处理器进行信号通信的闪存110、与处理器进行信号通信的只读存储器(ROM)112及与处理器进行信号通信的随机存取存储器(RAM)114。例如,ROM 112可包括处理器116可执行的程序步骤,用于提供读命令和写命令,以从闪存110或RAM 114读取数据或将数据写入闪存110或RAM 114。根据本公开的存储器映射实施例,在闪存110内执行响应于读命令和写命令的读操作和写操作。此外,ROM 112和RAM 114可存储相关的数据结构和/或处理器116可执行的应用程序步骤。
转到图2,闪存卡系统总地用参考标号200来表示。闪存卡系统200可以是便携式电子设备,比如计算机、数码相机、数码音乐播放器、蜂窝式电话和个人数字助理(PDA)等。闪存卡系统200包括与闪存卡220进行信号通信的主机210。闪存卡220可以是固态盘(SSD)、SD卡、MMC、记忆棒、嵌入式卡(比如moviNAND、GBNAND和iNAND等)。
闪存卡220包括与闪存250进行信号通信的控制器230。主机210利用闪存转换层(FTL)与闪存250进行通信,FTL可包括用于有效地管理闪存卡220的固件和/或逻辑。FTL可被存储在控制器230或闪存250中,或可在控制器230或闪存250中实现。
控制器230包括与控制器总线232进行信号通信的主机接口231、与控制器总线232进行信号通信的闪存接口233、与控制器总线232进行信号通信的缓冲存储器235、与控制器总线232进行信号通信的CPU 237及与控制器总线232进行信号通信的ROM 239。
在操作中,地址映射操作是FTL的一项功能,地址映射操作从主机210接收逻辑地址(LA),然后将接收到的LA转换成物理地址(PA)。PA是实际用于将数据存储在闪存250内的地址。可使用地址映射表来帮助LA到PA的地址转换。在地址映射表内,逻辑地址和对应的物理地址相关联。该地址映射表可被存储在闪存250内,并被加载到控制器230内的缓冲存储器235。地址映射表的大小取决于被限定的映射单元。
现在转到图3,混合映射系统总地用参考标号300来表示。混合映射系统300包括主机310,主机310与FTL 320进行信号通信,FTL 320接着与闪存330进行信号通信。逻辑地址(LA)在主机310和FTL 320之间传递。物理地址(PA)在FTL 320和闪存330之间传递。FTL 320包括块映射表321和页映射表322。例如,可以对日志块(log block)应用页映射表,而可以对数据块应用块映射表。
闪存330包括数据区331,这里,数据区331包括具有物理块编号(PBN)100、101、102、103、104、105、206、303...、900、901、902和903的数据块。闪存330还包括日志区332,这里,日志区332包括具有PBN 300、400和500的日志块。闪存330还包括自由区333,这里,自由区333包括自由块600、601、602和603。此外,闪存330包括元区(meta region)334。
在操作中,例如,混合映射方法可用于在闪存卡系统中映射地址。在混合映射方法中,无论对页单元还是对块单元,映射表可以将逻辑地址与物理地址相关联。当混合映射方法用于日志块的页映射和数据块的块映射时,映射表的大小和合并操作的数量均会减小。
例如,当执行写操作时,将要被存储在指定数据块中的页数据首先存储在指定的日志块中。如果没有自由块来用作日志块,则FTL执行合并操作。在合并操作中,日志块中的页数据和与日志块对应的数据块中的页数据被存储或复制到新的数据块中。在这些操作期间发生变化的映射信息被存储在元块中。一旦内容被指定到其它块,则日志块和旧的数据块可以被安全地擦除。
如图4所示,合并顺序总地用参考标号400来表示。合并顺序400接收数据块100和日志块300,并提供合并后的数据块101。这里,当与逻辑页编号(LPN)1对应的数据已经存储在数据块100的物理页编号(PPN)2中且主机按LPN 2、3和0的次序来请求写操作时,日志块300的PPN 1、2和3按顺序被写入。当FTL比如因缺少自由块而执行日志块300的合并操作时,日志块300的LPN 2、3和0和对应的数据块100的LPN 1被按LPN 0、1、2和3的顺序分别复制到新数据块101的PPN 1、2、3和4。当比如对于新的日志块或自由块进行再指定时,日志块300和数据块100被擦除。
该方法使用了许多页复制操作和块擦除操作。假设一个块由4页组成,则每个合并操作需要四个页复制操作和两个块擦除操作。此外,该方法在日志块内具有低的页使用率。日志块300在通过合并被转换成自由块之前,只使用4页中的3页。用于频繁合并操作的许多复制操作和擦除操作以及低的页使用率,导致闪存卡系统的整体性能降低。
转到图5,具有组映射表的混合映射系统总地用参考标号500来表示。混合映射系统500包括与FTL 520进行信号通信的主机510,FTL 520随后与闪存530进行信号通信。逻辑地址(LA)在主机510和FTL 520之间传递。物理地址(PA)在FTL 520和闪存530之间传递。FTL 520包括数据块映射表521、组映射表522和页映射表523。例如,可以对日志块应用页映射表,而可以对数据块应用块映射表。
闪存530包括数据区531,这里,数据区531包括具有物理块编号(PBN)100、101、102、103、104、105、206、303...、900、901、902和903的数据块。这些数据块分布在数据块组之中。闪存530还包括日志区532,这里,日志区532包括具有PBN 300、400和500的日志块。这些日志块分布在日志块组中。闪存530还包括自由区533,这里,自由区533包括自由块600、601、602和603。此外,闪存530包括元区534。
在操作中,采用组映射方法,日志块组(LBG)被指定到数据块组(DBG)。LBG包括多个日志块且DBG包括多个数据块。这里,LBG 1由日志块300和400组成,并被指定到DBG 1。DBG 1由数据块100、101、102和103组成。因此,编程到数据块100~103的数据首先被编程到日志块300或400。LBG内的每个日志块可以被指定到被指定的DBG内的任意的数据块或所有的数据块。每个DBG或LBG内的块的数量是可变化的。通过组映射方法,可减少合并操作的数量,且日志块内的平均页使用率会提高。
现在转到图6,组映射闪存转换层(FTL)总地用参考标号600来表示。在该实施例中,FTL 600包括块映射表(BMT)610、组映射表(GMT)620和页映射表(PMT)630。这里,块映射表610将逻辑块编号(LBN)0~7分别与物理块编号(PBN)100~105、206和303相关联。组映射表620将DBG 1与日志块PBN 300和400相关联,并将DBG 2与日志块PBN 500相关联。对于DBG 1,页映射表630将逻辑页编号(LPN)3、4、11、12、13和14分别与物理页编号(PPN)1200、1201、1202、1203、1600和1601相关联。此外,对于DBG 2,页映射表630将LPN 17~20分别与PPN 2000~2003相关联。
因此,LBG 1的PBN 300具有分别与LPN 3、4、11和12相关联的PPN1200~1203。LBG 1的PBN 400具有分别与LPN 13和14相关联的PPN1600~1601。LBG 1与DBG 1相关联。DBG 1的PBN 100具有与LPN 0~3相关联的PPN 1~4。DBG 1的PBN 101具有与LPN 4~7相关联的PPN 1~4。DBG1的PBN 102具有与LPN 8~11相关联的PPN 1~4。DBG 1的PBN 103具有与LPN 12~15相关联的PPN 1~4。
此外,LBG 2的PBN 500具有分别与LPN 17~20相关联的PPN2000~2003。LBG 2与DBG 2相关联。DBG2的PBN 104具有与LPN 16~19相关联的PPN 1~4。DBG 2的PBN 105具有与LPN 20~23相关联的PPN 1~4。DBG 2的PBN 206具有与LPN 24~27相关联的PPN 1~4。DBG 2的PBN 303具有与LPN 28~31相关联的PPN 1~4。
因此,块映射表610将逻辑块编号(LBN)转换成物理块编号(PBN)。组映射表620具有每个DBG与对应于DBG的日志块的PBN之间的映射信息。页映射表630具有每个DBG、LPN和对应的PPN之间的映射信息。
在该示例性的组映射实施例的操作中,从主机接收LPN 3和4的写请求。FTL从自由块中指定日志块300,并产生与DBG 1对应的LBG 1。FTL将日志块300登记在组映射表620中。日志块300可以被指定到DBG 1内所有的数据块。这里,LPN 0~15可被存储在日志块300中。LPN 3和4被存储在日志块300的PPN 1200和1201中。映射信息被存储在页映射表630中。
接着,从主机接收LPN 11~14的写请求。LPN 11和12被存储在先前指定的日志块300的PPN 1202和1203中。根据这个新的映射信息来更新页映射表630。
另外地将新的日志块400指定给LBG 1,以存储LPN 13和14。FTL将日志块400登记在组映射表620中。LPN 13和14被存储在日志块400的PPN1600和1601中,且PMT 630被更新。写请求从主机到达LPN 17~20。
因为LPN 17~20不属于DBG 1,所以它们不能被存储在日志块400中。FTL从自由块中指定新的日志块500,并产生与DBG 2对应的LBG 2。FTL将日志块500登记在组映射表620中。LPN 16~31可以被存储在日志块500中。LPN 17~20被存储在日志块500的PPN 2000~2003中,且PMT 630被更新。
通过利用组映射方法,日志块的页使用率提高。这与例如日志块300只会使用一页(比如PPN 1200)的传统方法形成对比。在本实施例中,因为一个日志块被指定到数据块组内的所有数据块,所以日志块300使用所有的页(比如PPN 1200~1203)。此外,对应于日志块的页使用率的提高,合并操作的数量减少。此外,复制操作和擦除操作的数量减少,系统的性能提高。
如图7所示,逻辑闪存结构总地用参考标号700来表示。闪存700包括元数据区710和用户数据区720,其中,元数据区710对于用户来说是不可见的,用户数据区720对于用户来说是可见的。元数据区710包括固件块712、保留块714、MAP块716和写缓冲块718,其中,保留块714可用于替换坏的块。MAP块716包括块映射表717,该块映射表717将逻辑块编号0、1...、31分别映射到物理块编号3、15...、0。多个写缓冲块718包括写缓冲块719,这里,写缓冲块719存储逻辑页编号1和3的替代数据(即1′和3′)。
用户数据区720包括数据块722~726。数据块725包括逻辑页编号0、1、2和3。在操作中,合并操作将数据块725与写缓冲块719组合,以形成新的数据块726。这里,新的数据块726包括逻辑页编号0、1′、2和3′。
转到图8,页映射结构总地用参考标号800来表示。页映射结构800包括页映射表810和闪存870。页映射表810包括逻辑页编号830和对应的物理页编号850。逻辑页编号832用于查询对应的物理页编号。
在操作中,逻辑页编号(LPN)1初始地对应于物理页编号(PPN)2。新的PPN 5被写入闪存870中,且页映射表810被更新以将LPN 1与LPN 5相关联。这可以被称作“任意位置(out-of-place)映射”。更新的页可以被写入新块中的不同位置。页映射表更新使用了如上的相对大的映射表大小。例如,128KB的映射表用于128MB的NAND闪存。
现在转到图9,块映射结构总地用参考标号900来表示。块映射结构900包括块映射表920和闪存970。块映射表920包括逻辑块编号940和对应的物理块编号960。逻辑块编号942用于查询对应的物理块编号。物理页编号962是加到物理块编号的偏移量。
在操作中,在闪存970中,物理页编号(PPN)2被更新为PPN 2′。这可被称作“顺序位置(in-place)映射”。这里,更新的页被写入新块的相同位置,且块映射表被更新。当任意位置页更新导致块复制操作时在写操作期间存在上述复制。
如图10所示,混合映射结构总地用参考标号1000来表示。混合映射结构1000包括页映射表1010、块映射表1020、日志块1070和数据块1080。
页映射表1010包括逻辑页编号1030和对应的物理页编号1050。块映射表1020包括逻辑块编号1040和对应的物理块编号1060。逻辑块编号1032用于查询对应的物理块编号。
在操作中,逻辑块编号1032用于在块映射表1020中查询对应的物理块编号,或者,逻辑页编号1052用于在页映射表1010中查询对应的物理页编号。
例如,页映射可用于写缓存或日志块,而块映射可用于数据块。当逻辑页编号1初始地与日志块1070中的物理页编号2对应时,页映射表1010可被更新,以使逻辑页编号1变化成与物理页编号4对应。当日志块1070用于写入数据块1080时,块映射表1020可被更新。
转到图11,合并方法总地用参考标号1100来表示。这里,日志入口(entry)信息1110用于更新日志块1120。随后,日志块1120与数据块1130合并。合并后的数据被写入自由块1140,由此,自由块1140变成新的数据块。因此,合并方法1100指定自由块,并将有效页复制到被指定的自由块,通过将被指定的自由块设置为数据块来更新映射页,并将旧的日志块和旧的数据块设置为可擦除状态。
现在转到图12,复制-合并方法总地用参考标号1200来表示。这里,日志入口信息1210用于更新日志块1220的页。数据块1230的未变化的页被复制到日志块1220。因此,复制-合并方法1200将数据块中的有效页复制到日志块,通过将旧的日志块设置为数据块来更新映射页,并将旧的数据块设置为可擦除状态。
如图13所示,交换-合并方法总地用参考标号1300来表示。这里,日志入口信息1310被用于更新日志块1320中的所有页。通过将旧的日志块设置为数据块来更新映射页,并将旧的数据块设置为可擦除状态。
转到图14,1:1的映射结构总地用参考标号1400来表示。1:1的映射结构1400包括单元映射表1410,该单元映射表1410具有与物理单元编号部分或列1430对应的逻辑单元编号部分或列1420。物理单元编号对应于闪存内的包括传送单元1450的物理单元1440。例如,这些单元可以是块。即,每个映射表入口可以与一个物理单元对应。
现在转到图15,1:2映射结构总地用参考标号1500来表示。1:2映射结构1500包括页映射表1510和块映射表1520。页映射表1510具有与物理页编号部分或列1550对应的逻辑页编号部分或列1530。块映射表1520具有与物理块编号部分或列1560对应的逻辑块编号部分或列1540。
物理块编号和物理页编号对应于闪存或物理存储装置内的物理块1570~1573和它们的页。这里,来自块映射表1520的物理块编号(例如101)指向物理块1570,来自页映射表1510的物理页编号(比如1、0、2和3)指向块1570内的物理页。直接被标识在映射表中的块和页是原始单元,每个原始单元可具有与其相关联的一个附加的日志单元,用于记录更新。因此,原始块1570和1571可以分别与日志块1572和1573相关联。即,每个映射表入口可以与一个或两个物理单元对应。
如图16所示,1:N映射结构总地用参考标号1600来表示。1:N结构1600包括页映射表1610和块映射表1620。页映射表1610具有与物理页编号部分或列1650对应的逻辑页编号部分或列1630。块映射表1620具有与物理块编号部分或列1660对应的逻辑块编号部分或列1640。
物理块编号和物理页编号对应于物理存储装置或闪存内的物理块1670~1675和它们的页。这里,来自块映射表1620的物理块编号(比如101)指向物理块1670,来自页映射表1610的物理页编号(比如1、0、2和3)指向物理块1670内的物理页。直接被标识在映射表中的块和页是原始单元,每个原始单元可以具有与之相关联的N个附加的日志单元,用于记录更新。因此,原始块1671可以与日志块1673、1675...相关联。即,每个映射表入口可以与1~N个物理单元对应。1:N映射结构1600利用数据块与日志块的延迟的合并。
转到图17,N:M+K映射结构总地用参考标号1700来表示。N:M+K映射结构1700包括页映射表1710和块映射表1720。页映射表1710具有与物理页编号部分或列1750对应的逻辑页编号部分或列1730。块映射表1720具有与物理块编号部分或列1760对应的逻辑块编号部分或列1740。
物理块编号和物理页编号对应于闪存或物理存储装置内的物理块1769~1775和它们的页。这里,来自块映射表1720的物理块编号(比如101)指向物理块1770,来自页映射表1710的物理页编号(比如1、0、2和3)指向块1770内的物理页。直接在映射表中标识的块和页是原始单元,且每个原始单元可以与K个附加的成链状或成组的日志单元相关联,以记录更新。附加的成链状或成组的日志单元可以被N个原始单元所共用。此外,会存在M个不同的成链状或成组的附加日志单元。因此,原始块1771和1772均可与成链状的或成组的日志块1783和1785相关联,这里,原始块1771和1772分别具有物理块编号0和1。此外,例如,原始块1769和1770均可与日志块1780相关联,这里,原始块1769和1770分别具有物理块编号101和102。N:M+K映射结构1700利用数据块之间的日志块的关联性以及日志块与数据块的延迟的合并。这里,N是所有的用户数据块的数量,M是写缓存或日志决的数量,K是日志块组(LBG)中的延迟的合并或日志块的最大数量,其中,LBG可以被动态地控制。数据块组(DBG)与每个LBG相关联。在该示例中,每个DBG包括两个数据块,但是在可选的实施例中,DBG可包括任意数量的数据块。
存储“块”通常是擦除单元的大小,存储“页”通常是读/写单元的大小。相关领域的普通技术人员应该理解的是,可选的实施例可以使用可选的存储单元、块和/或页大小,这些大小都不限于示例性实施例中描述的那些。任意大小的其它单元或扇区(sector)可以用来替代这里描述的单元、块和/或页。例如,在混合映射实施例中,可优选地是,利用用于写缓存或日志单元的页映射,并利用用于数据单元的块映射,但是可选的实施例可利用两个或更多个可选大小的映射单元。
虽然在此已经参照附图描述了示例性实施例,但是应该理解,本公开不限于那些精确的实施例,并且在不脱离本公开的范围或精神的情况下,相关领域的普通技术人员可以实现对实施例的各种其它变化和更改。所有这些变化和更改意在被包括在如权利要求中阐述的本公开的范围内。

Claims (30)

1、一种存储器映射方法,所述方法包括:
从主机接收用于逻辑单元编号的写数据;
确定多个数据块组中的哪一个包括所述逻辑单元编号;
将写数据存储在与确定的数据块组对应的日志块组中的任意的未填充的日志单元中。
2、如权利要求1所述的方法,其中,单元的大小是最小的可写位数,块的大小是最小的可擦除位数且是可写单元的大小的多倍,组大小是可擦除块的大小的可变的倍数。
3、如权利要求1所述的方法,其中,单元是字节、页或扇区中的至少一种。
4、如权利要求1所述的方法,其中,逻辑单元编号与物理单元编号之间的关联性保存在页映射表中。
5、如权利要求4所述的方法,页映射表还包括分别与多个逻辑单元编号相关联的数据块组编号。
6、如权利要求1所述的方法,其中,确定数据块组的步骤包括基于逻辑单元编号除以多个数据块组的数量的模算术。
7、如权利要求1所述的方法,还包括通过将自由块指定为日志块组中的日志块来将日志块组初始化。
8、如权利要求7所述的方法,还包括通过将自由块指定为日志块组中的下一个日志块来扩展日志块组。
9、如权利要求7所述的方法,还包括将多个自由块指定为日志块组中的对应的多个日志块。
10、如权利要求1所述的方法,还包括将自由块指定为日志块。
11、如权利要求10所述的方法,指定日志块的步骤包括将所述日志块登记在组映射表中。
12、如权利要求11所述的方法,其中,组映射表的关联性是指每一组与用于日志块的多个物理块编号之间的关联性。
13、如权利要求10所述的方法,其中,日志块用于数据块组内的所有数据块。
14、如权利要求1所述的方法,还包括:
从主机接收第二逻辑单元编号的写请求;
将与第二物理单元编号相关联的第二逻辑单元编号存储在日志块组的日志块中。
15、如权利要求14所述的方法,存储第二逻辑单元编号的步骤包括:根据用于逻辑单元编号的新映射信息来更新页映射表。
16、如权利要求14所述的方法,还包括检查日志块是否被填满,如果被填满,则将另外的日志块指定到日志块组,以用于存储更多的日志单元编号。
17、如权利要求16所述的方法,指定另外的日志块的步骤包括根据用于另外的日志块的物理块编号的新映射信息来更新组映射表。
18、如权利要求16的方法,还包括:
从主机接收第三逻辑单元编号的写请求;
将与第三物理单元编号相关联的第三逻辑单元编号存储在日志块组现有的日志块中。
19、如权利要求1所述的方法,还包括:
从主机接收另一逻辑单元编号的写请求,其中,所述另一逻辑单元编号不包括在所述数据块组中;
将与另一物理单元编号相关联的所述另一逻辑单元编号存储在另一日志块组的日志块中,并更新页映射表。
20、如权利要求19所述的方法,还包括:
将自由块指定为日志块,以创建与包括另一逻辑单元编号的另一数据块组对应的另一日志块组。
21、如权利要求1所述的方法,其中,一个日志块被指定到数据块组内的所有数据块。
22、如权利要求1所述的方法,其中,日志块利用了多个物理单元编号。
23、如权利要求1所述的方法,其中,存储器包括闪存、DRAM、PRAM、MRAM、FRAM和EEPROM中的至少一种。
24、如权利要求1所述的方法,其中,至少一个映射表的构造方式为:将第一多个所有的用户数据块映射到具有第三多个延迟合并块的写缓存或第二多个日志块。
25、如权利要求24所述的方法,其中,第三多个延迟合并块被动态地控制。
26、如权利要求1所述的方法,其中,任意数量的日志块能与任意数量的逻辑块相关联。
27、如权利要求1所述的方法,其中,每个日志块组的日志块的数量大于1。
28、如权利要求1所述的方法,其中,日志块存储用于多个数据块的写数据单元。
29、一种存储器映射系统,包括:
输入装置,用于从主机接收用于逻辑单元编号的写数据;
映射装置,用于确定多个数据块组中的哪一个包括所述逻辑单元编号;
存储装置,用于将写数据存储在与确定的数据块组对应的日志块组中的任意的未填充的日志单元中。
30、一种存储器映射系统,包括:
至少一个逻辑单元与物理单元的映射表;
多个数据单元组,与至少一个映射表进行信号通信;
多个日志单元组,每个日志单元组与多个数据单元组中对应的一个数据单元组相关联,
其中,用于多个数据单元组中的一个数据单元组内的任意数据单元的更新数据被存储在多个日志单元组中的对应的一个日志单元组内的任意日志单元中。
CNA2008100099115A 2007-02-06 2008-02-13 存储器映射系统及方法 Pending CN101241474A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020070012198 2007-02-06
KR1020070012198A KR100885181B1 (ko) 2007-02-06 2007-02-06 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
US11/833,750 2007-08-03

Publications (1)

Publication Number Publication Date
CN101241474A true CN101241474A (zh) 2008-08-13

Family

ID=39677158

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008100099115A Pending CN101241474A (zh) 2007-02-06 2008-02-13 存储器映射系统及方法

Country Status (4)

Country Link
US (1) US20080189490A1 (zh)
JP (1) JP2008192154A (zh)
KR (1) KR100885181B1 (zh)
CN (1) CN101241474A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101937319A (zh) * 2009-06-29 2011-01-05 联发科技股份有限公司 存储器系统及其映射方法
CN101382873B (zh) * 2008-03-07 2011-10-12 威盛电子股份有限公司 储存单元管理方法及系统
CN102521144A (zh) * 2011-12-22 2012-06-27 清华大学 一种闪存转换层系统
CN103136116A (zh) * 2011-12-05 2013-06-05 财团法人工业技术研究院 存储器存储系统及其中控装置、管理方法与断电恢复方法
CN104102585A (zh) * 2013-04-03 2014-10-15 群联电子股份有限公司 映射信息记录方法、存储器控制器与存储器储存装置
CN107544866A (zh) * 2016-06-29 2018-01-05 北京忆恒创源科技有限公司 一种日志更新方法与装置
CN107544912A (zh) * 2016-06-29 2018-01-05 北京忆恒创源科技有限公司 一种日志记录方法、加载方法及其装置
CN107562644A (zh) * 2017-08-11 2018-01-09 记忆科技(深圳)有限公司 一种固态硬盘映射表的压缩方法
CN109388332A (zh) * 2017-08-04 2019-02-26 群联电子股份有限公司 数据存储方法、存储器控制电路单元及存储器存储装置
CN112711377A (zh) * 2019-10-25 2021-04-27 爱思开海力士有限公司 分布式存储系统的存储节点及其操作方法
US11544183B1 (en) * 2013-01-28 2023-01-03 Radian Memory Systems, Inc. Nonvolatile memory controller host-issued address delimited erasure and memory controller remapping of host-address space for bad blocks

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8452912B2 (en) * 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US8266367B2 (en) * 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US20110145489A1 (en) * 2004-04-05 2011-06-16 Super Talent Electronics, Inc. Hybrid storage device
US20110179219A1 (en) * 2004-04-05 2011-07-21 Super Talent Electronics, Inc. Hybrid storage device
CN101241472B (zh) * 2008-03-07 2010-12-22 威盛电子股份有限公司 映射管理方法及系统
TWI385519B (zh) * 2008-04-18 2013-02-11 Phison Electronics Corp 資料寫入方法及使用此方法的快閃儲存系統與其控制器
TWI398770B (zh) * 2008-07-08 2013-06-11 Phison Electronics Corp 用於快閃記憶體的資料存取方法、儲存系統與控制器
KR101086857B1 (ko) * 2008-07-25 2011-11-25 주식회사 팍스디스크 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
CN101676882B (zh) * 2008-09-16 2013-01-16 美光科技公司 存储器装置的内嵌映射信息
US8438325B2 (en) * 2008-10-09 2013-05-07 Cadence Design Systems, Inc. Method and apparatus for improving small write performance in a non-volatile memory
US9128821B2 (en) * 2008-10-10 2015-09-08 Seagate Technology Llc Data updating in non-volatile memory
KR101021364B1 (ko) * 2008-10-10 2011-03-14 한양대학교 산학협력단 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 멀티 플래시 메모리 관리방법 및 장치
KR101028929B1 (ko) * 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
KR101581859B1 (ko) * 2009-02-27 2016-01-21 삼성전자주식회사 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법
KR101574540B1 (ko) 2009-04-15 2015-12-07 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
KR100994052B1 (ko) 2009-05-06 2010-11-11 성균관대학교산학협력단 플래시 변환 계층에서 수행되는 데이터 관리 방법 및 이를 수행하는 플래시 메모리 장치
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
US8838878B2 (en) 2010-06-01 2014-09-16 Greenliant Llc Method of writing to a NAND memory block based file system with log based buffering
US8341340B2 (en) 2010-07-21 2012-12-25 Seagate Technology Llc Multi-tier address mapping in flash memory
US9021215B2 (en) 2011-03-21 2015-04-28 Apple Inc. Storage system exporting internal storage rules
KR20130084846A (ko) * 2012-01-18 2013-07-26 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치, 그것을 포함한 사용자 장치, 그리고 그것의 데이터 읽기 방법
KR102147359B1 (ko) * 2012-06-29 2020-08-24 삼성전자 주식회사 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
CN103778068A (zh) * 2012-10-24 2014-05-07 北京兆易创新科技股份有限公司 一种闪速存储器及访问闪速存储器数据的方法
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
KR101297442B1 (ko) * 2013-02-22 2013-08-16 서울과학기술대학교 산학협력단 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
US9489299B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9117520B2 (en) * 2013-06-19 2015-08-25 Sandisk Technologies Inc. Data encoding for non-volatile memory
US9489300B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9117514B2 (en) 2013-06-19 2015-08-25 Sandisk Technologies Inc. Data encoding for non-volatile memory
US9489294B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
KR102025180B1 (ko) 2013-08-08 2019-09-26 삼성전자주식회사 스토리지 시스템 및 그것의 쓰기 방법
US9390008B2 (en) 2013-12-11 2016-07-12 Sandisk Technologies Llc Data encoding for non-volatile memory
CN105917308B (zh) * 2014-01-22 2019-02-12 惠普发展公司,有限责任合伙企业 分区为包括元数据区域的多个区域的字节可寻址非易失性读写主存储器
KR102218712B1 (ko) 2014-02-11 2021-02-22 삼성전자주식회사 저장 장치의 어드레스 맵핑 방법 및 저장 장치의 데이터 독출 방법
TWI512467B (zh) * 2014-09-02 2015-12-11 Silicon Motion Inc 實體儲存對照表維護方法以及使用該方法的裝置
KR102263800B1 (ko) * 2015-01-07 2021-06-10 에스케이텔레콤 주식회사 메모리제어장치 및 메모리제어장치의 동작 방법
TWI545433B (zh) 2015-03-04 2016-08-11 慧榮科技股份有限公司 實體儲存對照表維護方法以及使用該方法的裝置
CN105205009B (zh) * 2015-09-30 2018-05-11 华为技术有限公司 一种基于大容量固态存储的地址映射方法及装置
TWI537729B (zh) * 2015-10-15 2016-06-11 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
JP6034467B2 (ja) * 2015-10-23 2016-11-30 株式会社東芝 システム
US10019198B2 (en) 2016-04-01 2018-07-10 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressable unit
US10031845B2 (en) 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
TWI641948B (zh) * 2017-07-27 2018-11-21 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
JP2019050066A (ja) * 2017-09-07 2019-03-28 株式会社東芝 ハードディスク装置および制御方法
CN109582593B (zh) * 2018-11-05 2022-09-30 华侨大学 一种基于计算的ftl地址映射读、写方法
TWI698744B (zh) * 2019-04-10 2020-07-11 慧榮科技股份有限公司 資料儲存裝置及邏輯至物理位址映射表之更新方法
CN110471861B (zh) * 2019-07-10 2022-02-11 华为技术有限公司 一种闪存设备中的数据存储方法及闪存设备
CN110727604B (zh) * 2019-08-26 2022-04-29 华为技术有限公司 一种数据处理方法及装置
CN114168225B (zh) * 2021-12-08 2024-05-14 深圳忆联信息系统有限公司 固态硬盘映射表延迟更新方法、装置、计算机设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
WO2005066970A2 (en) * 2003-12-30 2005-07-21 Sandisk Corporation Robust data duplication and improved update method in a multibit non-volatile memory
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
BRPI0418426A (pt) 2004-01-19 2007-05-22 Trek 2000 Int Ltd dispositivo portátil de armazenamento de dados usando uma tabela de mapeamento de endereço de memória
KR100638638B1 (ko) * 2004-09-03 2006-10-26 명지대학교 산학협력단 플래시 메모리의 제어 방법
KR100706242B1 (ko) * 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법
TW200705180A (en) * 2005-07-29 2007-02-01 Genesys Logic Inc Adjustable flash memory management system and method

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382873B (zh) * 2008-03-07 2011-10-12 威盛电子股份有限公司 储存单元管理方法及系统
CN101937319A (zh) * 2009-06-29 2011-01-05 联发科技股份有限公司 存储器系统及其映射方法
US8364931B2 (en) 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
CN101937319B (zh) * 2009-06-29 2013-02-20 联发科技股份有限公司 存储器系统及其映射方法
CN103136116A (zh) * 2011-12-05 2013-06-05 财团法人工业技术研究院 存储器存储系统及其中控装置、管理方法与断电恢复方法
US9164887B2 (en) 2011-12-05 2015-10-20 Industrial Technology Research Institute Power-failure recovery device and method for flash memory
CN103136116B (zh) * 2011-12-05 2016-03-23 财团法人工业技术研究院 存储器存储系统及其中控装置、管理方法与断电恢复方法
CN102521144A (zh) * 2011-12-22 2012-06-27 清华大学 一种闪存转换层系统
CN102521144B (zh) * 2011-12-22 2015-03-04 清华大学 一种闪存转换层系统
US11544183B1 (en) * 2013-01-28 2023-01-03 Radian Memory Systems, Inc. Nonvolatile memory controller host-issued address delimited erasure and memory controller remapping of host-address space for bad blocks
CN104102585B (zh) * 2013-04-03 2017-09-12 群联电子股份有限公司 映射信息记录方法、存储器控制器与存储器储存装置
CN104102585A (zh) * 2013-04-03 2014-10-15 群联电子股份有限公司 映射信息记录方法、存储器控制器与存储器储存装置
CN107544866A (zh) * 2016-06-29 2018-01-05 北京忆恒创源科技有限公司 一种日志更新方法与装置
CN107544912A (zh) * 2016-06-29 2018-01-05 北京忆恒创源科技有限公司 一种日志记录方法、加载方法及其装置
CN107544866B (zh) * 2016-06-29 2021-01-05 北京忆恒创源科技有限公司 一种日志更新方法与装置
CN109388332A (zh) * 2017-08-04 2019-02-26 群联电子股份有限公司 数据存储方法、存储器控制电路单元及存储器存储装置
CN107562644A (zh) * 2017-08-11 2018-01-09 记忆科技(深圳)有限公司 一种固态硬盘映射表的压缩方法
CN107562644B (zh) * 2017-08-11 2021-02-09 记忆科技(深圳)有限公司 一种固态硬盘映射表的压缩方法
CN112711377A (zh) * 2019-10-25 2021-04-27 爱思开海力士有限公司 分布式存储系统的存储节点及其操作方法
CN112711377B (zh) * 2019-10-25 2023-11-03 爱思开海力士有限公司 分布式存储系统的存储节点及其操作方法

Also Published As

Publication number Publication date
KR100885181B1 (ko) 2009-02-23
KR20080073499A (ko) 2008-08-11
US20080189490A1 (en) 2008-08-07
JP2008192154A (ja) 2008-08-21

Similar Documents

Publication Publication Date Title
CN101241474A (zh) 存储器映射系统及方法
CN101937319B (zh) 存储器系统及其映射方法
US8595414B2 (en) Selectively combining commands for a system having non-volatile memory
US11232041B2 (en) Memory addressing
CN100454273C (zh) 用于块内页面分组的方法及设备
CN110781096B (zh) 用于通过预测需求时间来执行垃圾收集的设备和方法
TWI418980B (zh) 記憶體控制器、用於格式化記憶體系統中之記憶體陣列和固態驅動器之方法及固態記憶體系統
KR101465789B1 (ko) 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
US8230160B2 (en) Flash memory storage system and flash memory controller and data processing method thereof
US20190220396A1 (en) Data Storage Device
US9396107B2 (en) Memory system having memory controller with cache memory and NVRAM and method of operating same
US10496334B2 (en) Solid state drive using two-level indirection architecture
US20180089074A1 (en) Techniques to Manage Key-Value Storage at a Memory or Storage Device
CN101493794B (zh) 一种闪存数据处理方法及装置
CN109753234B (zh) 存储器系统及非易失性存储器的控制方法
US20220066693A1 (en) System and method of writing to nonvolatile memory using write buffers
US20130166828A1 (en) Data update apparatus and method for flash memory file system
TW200527433A (en) Memory card and semiconductor device
CN102054533A (zh) 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器
US11580030B2 (en) Devices, systems, and methods of logical-to-physical address mapping
CN102779096A (zh) 一种基于页块面三维的闪存地址映射方法
US9507523B1 (en) Methods, devices and systems for variable size logical page management in a solid state drive
WO2006028283B1 (en) Storage device, memory management method and program
KR20120063829A (ko) 비휘발성 메모리 장치의 데이터 처리 방법
US8489852B2 (en) Method and system for manipulating data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20080813