CN104102591A - 计算机子系统及在其中实现闪存转换层的方法 - Google Patents
计算机子系统及在其中实现闪存转换层的方法 Download PDFInfo
- Publication number
- CN104102591A CN104102591A CN201310465920.6A CN201310465920A CN104102591A CN 104102591 A CN104102591 A CN 104102591A CN 201310465920 A CN201310465920 A CN 201310465920A CN 104102591 A CN104102591 A CN 104102591A
- Authority
- CN
- China
- Prior art keywords
- address
- data structure
- block
- physical
- enum
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000013519 translation Methods 0.000 title claims abstract description 85
- 238000013507 mapping Methods 0.000 claims abstract description 269
- 230000015654 memory Effects 0.000 claims abstract description 166
- 238000006243 chemical reaction Methods 0.000 claims description 192
- 238000012545 processing Methods 0.000 claims description 40
- 239000003550 marker Substances 0.000 claims description 3
- 101000799388 Homo sapiens Thiopurine S-methyltransferase Proteins 0.000 claims 1
- 102100034162 Thiopurine S-methyltransferase Human genes 0.000 claims 1
- 230000009466 transformation Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 230000005055 memory storage Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012043 cost effectiveness analysis Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000005039 memory span Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000001028 reflection method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical 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 Of A Hierarchy Structure (AREA)
Abstract
本发明涉及计算机子系统及在其中实现闪存转换层的方法,该计算机子系统包含闪存存储器和随机存取存储器(RAM)。按照本发明的一种方法,闪存存储器包括用于存储真实数据的数据块和用于存储地址映射信息的转换块。RAM中包括缓存空间分配表和转换页映射表。可将缓存空间分配表格式化为第一缓存空间和第二缓存空间。当接收到一地址转换请求时,查询缓存空间分配表,以识别与该请求相符的地址映射数据结构是否存在。如不存在,在转换块中搜索相对应的地址映射数据结构,其中用于访问该转换块的物理转换页地址由转换页映射表提供。该相对应的地址转换数据结构也用于更新缓存空间分配表。
Description
技术领域
本发明涉及一种用于闪存存储器的基于需求的地址映射方案。特别是,涉及带缓存的基于需求的块地址映射方案,应用于大规模闪存存储系统以降低随机存取存储器RAM的规模。
背景技术
NAND闪存存储器广泛地应用于非易失、抗震动、低耗电的储存设备。类似其他储存媒介,闪存存储芯片的容量正在令人瞩目地提升而且大约每两年翻一倍。NAND闪存存储器容量的不断提升给用于闪存管理的块设备仿真软件的设计厂商提出了巨大的挑战。尤其是,必须在维持良好的系统响应时间的前提下控制主存储器(随机存取存储器)的成本。
图1描述了闪存储存系统的典型架构。在NAND闪存存储系统中,闪存转换层(FTL)130是建立在存储器技术设备(MTD)层140之上的块设备仿真层,该存储器技术设备层140能在闪存存储器150的闪存单元上做基础的读、写和擦除操作。闪存转换层130的主要作用是在文件系统120中的逻辑地址和闪存存储器150中对应的物理地址之间进行地址映射。
通常驻存于随机存取存储器中的地址映射表用于储存地址映射信息。随着在NAND闪存芯片中集成的物理页和块越来越多,随机存取存储器的需求出现强劲地增长以记录地址映射信息。举例来说,对于基于大块(2KB/页)的32GB的Micron NAND闪存存储器MT29F32G08CBABAWP,页闪存转换层的映射表大小为96MB,该映射表太大以至于无法存储于随机存取存储器中,尤其是对于低端闪存硬盘。
针对这一问题,块地址映射方案被提出并且广泛地用于NAND闪存储存系统。使用块到块地址映射的闪存转换层(FTL),相比于使用细粒度页映射的闪存转换层,能极大地减少地址映射表的大小。然而,随着闪存存储器容量的增加,需要容量较大的随机存取存储器来储存映射表。例如,上述的32GBMicron NAND闪存存储器,块地址映射表可占据1.13MB随机存取存储器空间。当NAND闪存存储器的容量增加时,问题变得更严重。本发明为解决上述问题,将一种基于需求的映射策略应用于大规模NAND闪存存储系统中。
本发明涉及一种基于需求的闪存转换层(demand-based flash translationlayer,简称DFTL)。基于需求的闪存转换层的概念由Gupta,A.,Kim,Y.,和Urganokar,B.(2009)在“DFTL:a flash translation layer employingdemand-based selective caching of page-level address mapping(DFTL:一种使用基于需求的页地址映射选择性缓存的闪存转换层)”一文中给出,参考2009年3月7日至11日第14届编程语言和操作系统的体系结构支持国际会议(the 14thInternational Conference on Architectural Support for Programming Languagesand Operating Systems,简称ASPLOS’09)公报第229-240页,这个披露在此处引用作为参考。DFTL是第一个基于需求的页映射方案。基于需求的闪存转换层(DFTL)在特定的闪存页中储存地址映射表,而非按传统方式将页地址映射表存储在随机存取存储器中。在随机存取存储器中设置一缓存用于储存文件系统经常使用的地址映射。在随机存取存储器中永久地设置另一总转换目录(global translation directory,简称GTD),用于作为转换页的入口。因此,DFTL能有效地缩减随机存取存储器的规模。尽管如此,基于页地址映射方案的DFTL相比于基于块地址映射策略的DFTL,在缩减随机存取存储器的规模方面并不突出。而且,用于DFTL的页映射表仍然在闪存存储器中占用大量的空间。使用这种映射表,与通常需要非常小的地址映射表的块地址映射方案相比,不但在闪存存储器中占用额外的空间而且还引入了更多用于其维护的时间和耐久开销。
本领域需要一种在现有DFTL基础上改进的占用随机存取存储器空间较小的DFTL。
发明内容
本发明提供用于在包含闪存存储器和随机存取存储器的计算机子系统中实现闪存转换层(FTL)的第一方法和第二方法。其中,闪存存储器划分为复数个块,在每个块中包含多个页,且所述块使用物理块地址寻址。在任一块中的每个页通过物理页地址寻址。闪存存储器可以是NAND闪存存储器。
本发明的第一方法包括:分配所述复数个块中的第一数目个块作为储存真实数据(real data)的数据块;分配所述复数个块中除数据块之外的第二数目个块作为转换块;分配所述随机存取存储器的第一部分作为缓存空间分配表;分配随机存取存储器的第二部分作为转换页映射表;且当接收到一地址转换请求时,通过地址转换处理过程将被请求的虚拟数据块地址转换为与其相对应的物理块地址。
并且,配置整体转换块用于存储块映射表,该块映射表包含复数个第一地址映射数据结构,每个第一地址映射数据结构包含(1)所述数据块中的一个数据块的逻辑块地址和(2)与所述数据块中的一个数据块的逻辑块地址相对应的物理块地址。配置所述缓存空间分配表,使其包括复数个第二地址映射数据结构,每个第二地址映射数据结构或标记为空闲(available),或包括(1)从复数个数据块中选定的一个数据块的逻辑块地址和(2)与该从复数个数据块中选定的一个数据块的逻辑块地址相对应的物理块地址。配置转换页映射表使其包含复数个第三地址映射数据结构,每个第三地址映射数据结构包括(1)从复数个数据块中选定的一个数据块的逻辑块地址,和(2)用于储存与该从复数个数据块中选定的一个数据块的逻辑块地址相对应的物理块地址的转换页的物理页地址。
特别地,地址转换处理过程具有如下特征。查找缓存空间分配表,以从所述复数个第二地址映射数据结构中识别是否存在第一识别数据结构,该第一识别数据结构的逻辑块地址与被请求的虚拟数据块地址相符(matches)。如果识别出第一识别数据结构,指定该第一识别数据结构中的物理块地址为与被请求的虚拟数据块地址相对应的物理块地址。如果未识别出第一识别数据结构,查找所述转换块以便从复数个第一地址映射数据结构中识别第二识别数据结构,该第二识别数据结构中的逻辑块地址与被请求的虚拟块地址相符,其中所述转换页映射表提供存储于其中的物理页地址以便访问所述转换块。当识别出第二识别数据结构,执行下列各项:(1)将该第二识别数据结构中的物理块地址指定为与所述被请求的虚拟数据块地址相对应的物理块地址;且(2)通过缓存更新处理过程使用第二识别数据结构更新缓存空间分配表,其中,缓存更新处理过程包括将所述第二识别数据结构拷贝至从复数个第二地址映射数据结构中选定的目标第二地址映射数据结构中。
优选地,使用顺序查找法在所述缓存空间分配表中查找所述第一识别数据结构。
优选地,缓存空间分配表格式化(partitioned into)为第三数目个缓存空间。如果所述缓存空间分配表满,选择缓存空间之一作为第一选定缓存空间。然后选择第一选定缓存空间中的复数个第二个地址映射数据结构之一作为用于拷贝入所述第二识别地址映射数据结构的所述目标第二地址映射数据结构。将所述第一选定缓存空间中除该目标第二地址映射数据结构以外的其他全部第二地址映射数据结构标记为空闲。如果所述缓存空间分配表未满,选择标记为空闲的第二地址映射数据结构中的一个作为所述目标第二地址映射数据结构。
用于格式化缓存空间分配表的第三数目可以是二,于是缓存空间分配表格式化为一第一缓存空间和一第二缓存空间。假设缓存空间分配表已满。如果已指定该第一缓存空间用于存储随机映射项目,选择该第一缓存空间作为第一选定缓存空间。否则,选择所述第二缓存空间作为第一选定缓存空间。考虑另一种情形,所述缓存空间分配表未满。第二选定缓存空间(其或者是第一缓存空间或者是第二缓存空间)是包含目标第二地址映射数据结构的缓存空间。如果该第二选定缓存空间未指定用于存储随机映射项目而且如果该第二选定数据结构不是该第二选定缓存空间中的顺序项目(sequential item),则重新指定该第二选定缓存空间为储存随机映射项目的缓存空间。
任一第一地址映射数据结构可更进一步包括与其中的逻辑块地址相对应的替补物理数据块地址(replacement physical data block address),同时将其中的该逻辑块地址作为虚拟数据块地址并且将其中的物理块地址作为主物理数据地址(primary physical data address)。同样地,任一第二地址映射数据结构,如果没有标记为空闲,可以进一步包括与其中的逻辑块地址相对应的替补逻辑块地址,同时将其中的该逻辑块地址作为虚拟数据块地址并且将其中的物理块地址作为主物理数据地址。因此在接收到地址转换请求后,能够获取均与被请求的虚拟数据块地址相对应的主物理块地址和替补物理数据块地址。
本发明的第二方法包括:分配第一数目个块作为储存真正数据的数据块;分配除数据块之外的第二数目个块作为转换块;分配随机存取存储器的第一部分作为数据块映射表缓存(DBMTC);分配随机存取存储器的第二部分作为转换页映射表(TPMT);分配随机存取存储器的第三部分作为转换页索引位置缓存(TPRLC);分配随机存取存储器的第四部分作为转换页存取频率缓存(TPAFC);且当接收到地址转换请求时,通过地址转换处理过程将被请求的虚拟数据块地址转换为与其相对应的物理块地址。
此外,配置整个转换块用于存储块映射表,使其包括复数个第一地址映射数据结构,每个该第一地址映射数据结构包括复数个数据块中的一个数据块的逻辑块地址和与该逻辑块地址相对应的物理块地址。配置DBMTC使其包含复数个第二地址映射数据结构,每个该第二地址映射数据结构或标记为空闲,或包括从复数个所述数据块中选定的一个数据块的逻辑块地址以及与该逻辑块地址相对应的物理块地址。配置TPMT使其包含复数个第三地址映射数据结构,每个该第三地址映射数据结构包括从复数个数据块中选定的一个数据块的逻辑块地址、转换页的物理页地址(该转换页用于存储与该从复数个所述数据块中选定的一个数据块的逻辑块地址相对应的物理地址),用于根据前述转换页的拷贝是否缓存于随机存取存储器来指示肯定结果或否定结果(positive result or a negative result)的位置指示器,和未命中频率记录(miss-frequency record)。配置TPRLC使其包含第四地址映射数据结构,每个第四地址映射数据结构或标记为空闲,或包含从复数个所述数据块中选出的一个数据块的逻辑块地址以及与该逻辑块地址相对应的物理块地址。配置TPAFC使其包含第五地址映射数据结构,每个第五地址映射数据结构或标记为空闲,或包含从复数个所述数据块中选出的一个数据块的逻辑块地址以及与该逻辑块地址相对应的物理块地址。
地址转换处理过程具有如下特征。查询DBMTC,以从复数个第二地址映射数据结构中识别是否存在第一识别数据结构,该第一识别数据结构的逻辑块地址与被请求的虚拟数据块地址相符。如果第一识别数据结构存在,将第一识别数据结构中的物理块地址指定为与被请求的虚拟数据块地址相对应物理块地址。如果未识别出该第一识别数据结构,查询TPMT,以从复数个第三地址映射数据结构中识别第二识别映射数据结构,该第二识别映射数据结构中的逻辑块地址与被请求的虚拟数据块地址相符。如果该第二识别数据结构中的位置指示器给出肯定结果,查找TPRLC和TPAFC,以在复数个第四地址映射数据结构和复数个第五地址映射数据结构中识别第三识别数据结构,该第三识别数据结构的逻辑块地址与被请求的虚拟数据块地址相符。如果在TPAFC中识别出第三识别数据结构,将所述第二识别数据结构中的未命中频率记录加一。当识别出第三识别数据结构时,将第三识别数据结构中的物理块地址指定为与被请求的虚拟数据块地址相对应的物理块地址。如果第二识别数据结构中的位置指示器给出否定结果,执行下列各项:(1)从闪存存储器中将包含存储于第二识别数据结构中的物理页地址的转换页全部载入随机存取存储器中;并且(2)查找载入的转换页,以在该载入的转换页中识别第四识别数据结构,该第四识别数据结构中的逻辑块地址与被请求的虚拟数据块地址相对应。当识别出第四识别数据结构,执行下列各项:(1)将第四识别数据结构的物理块地址指定为与被请求的虚拟数据相对应的物理块地址;(2)用第四识别数据结构更新DBMTC;(3)使用缓存更新处理过程根据整个载入的转换页更新TPRLC或TPAFC;并且(4)将第二识别数据结构中的位置指示器更新为肯定结果。
优选地,使用顺序查找方式在TPRLC和TPAFC中查找第三识别数据结构。
可选地,所述缓存更新处理过程具有下列各项特征。如果TPRLC和TPAFC中有任一个未满,在该TPRLC和TPAFC中选择一个未满的缓存作为目标缓存用于存储载入的转换页。如果TPRLC和TPAFC均已满,执行下列各项:(1)从TPRLC中选择第一被替换转换页(first victim translation page),取回第五识别数据结构中的未命中频率记录,该第五识别数据结构是从第三地址映射数据结构中选出的、且该第五识别数据结构中的物理页地址与所述第一被替换转换页的物理页地址相符;(2)从TPAFC中选择第二被替换转换页(second victim translation page),并且取回在从第三地址映射数据结构中选出的第六识别数据结构中的未命中频率记录,所述第六识别数据结构中的物理页地址与所述第二被替换转换页的物理页地址相符;(3)根据第五识别数据结构和第六识别数据结构中的未命中频率记录在第一被替换转换页和第二被替换转换页中选择一目标被替换转换页(targeted victim translation page);以及(4)用载入的转换页重写该目标被替换转换页。
优选地,利用最近最少使用(Least recently used,简称LRU)算法从TPRLC中的转换页中选出该第一被替换转换页,并且利用最少使用(Least frequentlyused,简称LFU)算法在TPAFC中的转换页中选择该第二被替换转换页。
任一第一地址映射数据结构可进一步包括一替补物理数据块地址(replacement physical data address),该替补物理数据块地址与其中的逻辑块地址相对应,同时将该逻辑块地址作为虚拟数据块地址并且物理块地址作为主物理数据地址(primary physical data address)。未标示为空闲的所述第二、第四和第五地址映射数据结构,可进一步包括一与逻辑块地址相对应的替补物理块地址,同时逻辑块地址作为虚拟数据块地址且物理块地址作为主物理数据地址。从而,在接收到地址转换请求之后,能够获取均与被请求的虚拟数据块地址相对应的主物理块地址和替补物理数据块地址。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1所示为闪存存储系统的典型架构;
图2是根据本发明一实施例,应用于随机存取存储器空间非常有限的系统中的闪存存储的基于需求的地址映射方案的示意图;
图3是根据本发明一实施例,应用于随机存取存储器空间非常有限的系统中的转换页映射表的示意图;
图4是根据本发明一实施例,应用于随机存取存储器空间非常有限的系统中的缓存空间分配表中的映射项目的示意图;
图5是根据本发明一实施例,应用于随机存取存储器空间非常有限的系统中的基于需求的地址映射的地址转换处理过程的流程图;
图6是根据本发明一实施例,应用于随机存取存储器空间受限的闪存储存系统中的闪存存储的基于需求的地址映射系统的示意图;
图7是根据本发明一实施例,应用于随机存取存储器空间受限的系统中的转换页映射表的示意图;
图8是根据本发明一实施例,应用于随机存取存储器空间受限的系统中的数据块映射表中的映射项目的示意图;
图9是根据本发明一实施例,应用于随机存取存储器空间受限的系统中的转换页索引位置缓存的示意图;
图10是根据本发明一实施例,应用于随机存取存储器空间受限的系统中的转换页访问频率缓存的示意图;
图11是根据本发明一实施例,应用于随机存取存储器空间受限的系统中的从逻辑数据块地址到物理数据块地址的地址转换处理过程的流程图。
图12是根据本发明一实施例,应用于随机存取存储器空间受限的系统中的获取被请求的物理转换页地址写入二级缓存的处理过程的流程图。
具体实施方式
A、本发明的基本构思
在下面的C部分和D部分中,详细说明用于大规模NAND闪存存储系统的两个地址映射方案。这两个地址映射方案为本发明的具体实施例。对随机存取存储器空间非常有限(举例来说,仅有1或2KB)的系统,在此公开了同时考虑空间局部性和访问频率的基于需求的地址映射方案。对于随机存取存储器空间受限(举例来说,少于几个MB)的系统,公开了一种带两级缓存结构的基于需求的块地址映射方案,该方案用于大规模NAND闪存存储系统中。
发明的基本构思是将块地址映射表存储于闪存的特定页(称为转换页)中,同时在随机存取存储器中设计用于存储基于需求的块地址映射的缓存。因为整个块地址映射表存储于闪存存储器中,只有需要的地址映射被载入随机存取存储器,所以能够有效地缩减随机存取存储器的规模。
针对随机存取存储器空间受限的系统,设计两级缓存结构同时考虑时间局部性、空间局部性以及访问频率以便改善缓存的命中率。第一级缓存用于缓存少数活跃的块映射。第二级缓存包括两个缓存,分别用于缓存那些符合空间局部性的转换页以及最经常访问的转换页。随机存取存储器中的转换页映射表(TPMT)设置为第二级缓存中的两个缓存和闪存中转换页之间的桥梁。对于一个给定的逻辑块地址,如果没有在第一级缓存中找到它的块映射信息,则将该逻辑块地址当做TPMT的索引来查找一个包含物理转换页地址(通过该物理转换页地址能在闪存中找到对应的映射信息)的条目(entry)。而且,在一个实施例中,TPMT的每个条目都有两个标记分别用于指示对应物理转换页是否缓存于第二级缓存中的两个缓存之一中。仅当对应的转换页没有缓存于第一级缓存及第二级缓存中时,才从闪存存储器中读取该对应的转换页。通过这种方式,可以有效地改善系统反应时间。同时设计了缓存准入协议和替换方案(kick-out schemes),以便完全地利用所有缓存空间并且不会产生冗余信息和冲突。
B、考虑的系统架构
通常一个NAND闪存存储器格式化为复数个块,每个该块分为一定数量的页。一个小块结构的NAND闪存存储器的一页能储存512B数据,且每个小块有32页;一个大块结构的NAND闪存存储器的一页能储存2KB数据,且每个大块有64页。与磁记录硬盘式储存系统相比,NAND闪存储存系统有两个特性。第一,闪存单元中的读操作和写操作的基本单位为页,而擦除操作的基本单位是块,这种特性通常被称为“批量擦除”。第二,擦除操作必须在写操作之前完成,这种特性通常被称为”写前擦除”(erase-before-write)或者”异地更新”(out-of-place update)。这两个固有的特性使针对闪存存储器的管理策略变得更复杂。为了向文件系统用户隐藏这些固有的特性并提供透明的数据储存服务,业内设计了闪存转换层(FTL)。
典型地,闪存转换层(FTL)包括三个部分,它们是地址转换器、空间释放器、和损耗平均器。在FTL中,所述地址转换器用于维持将逻辑地址转换为物理地址的地址映射表;所述空间释放器用于擦除存储了无效数据的过时的块以便释放空间;所述损耗平均器是一个可选元件,用于平均地向所有块分配擦除操作,以便延长闪存存储器的寿命。本发明的重心集中于FTL中的地址转换器的管理。
当文件系统层向NAND闪存存储器发送带有逻辑地址的读请求和写请求时,地址转换器通过查找地址映射表定位相对应的物理地址。这一处理过程称为地址转换。这一处理过程中的时间消耗是地址转换开销。根据“异地更新”(out-of-place update)特性,如果映射到一逻辑地址的物理地址位置含有先前写入数据,输入数据应该被写入到先前没有被写入数据的空的物理位置。然后应该根据新的地址映射项目更新映射表。
C、用于随机存取存储器空间非常有限的系统的基于需求的地址映射
C1、系统架构
图2为用于存储器空间非常有限的系统的基于需求的地址映射的示意图。在图2所示的架构中,闪存存储器220储存两种类型的物理块:数据块230和转换块240。数据块230用于储存来自输入输出请求的真实数据(real data),数据块230根据块映射方法映射。在地址映射中,整个块地址映射表储存于转换块240的复数个页中。这些用于储存块地址映射表的页,称为转换页。在转换块240中的转换页采用细粒度的页映射方法实现。用于为访问转换页提供物理页地址的转换页映射表(TPMT)260驻留于随机存取存储器210中。缓存空间分配表250,也驻留于随机存取存储器210中,该缓存空间分配表用于储存基于需求的块地址映射。在图2所示的实施例中,缓存空间分配表250格式化为缓存空间I251和缓存空间II252。
C2、转换页映射表260
转换页映射表260用于储存虚拟转换页地址和物理转换页地址之间的地址映射。图3示出转换页映射表260。使用的地址映射方案采用页地址映射策略。映射表260中的项目的数目与转换块240中的转换页的数目绑定。
C3、缓存空间分配表250
为了完全利用非常有限的随机存取存储器空间,缓存空间分配表250用于储存需要的块的活跃的地址映射。图4示出在缓存空间分配表250中的映射项目。一个映射项目记录了虚拟数据块地址到主物理数据块地址和替补物理数据块地址的地址映射。
将缓存空间分配表250虚拟地格式化为(virtually partitioned into)两个空间:缓存空间I251、和缓存空间II252。每个缓存空间或者储存顺序地址映射或者储存随机地址映射。这两个缓存空间之间的实际的空间格式化取决于具体应用。
C4、地址转换步骤
图5示出了用于随机存取存储器空间非常有限的系统的基于需求的地址映射的地址转换处理过程。给定一被请求的虚拟数据块地址Y,首先查询缓存空间分配表判断被请求的虚拟数据块地址的条目是否存在于缓存空间分配表中。由于缓存空间分配表仅保存数量有限的需要的地址映射项目,可采用顺序查寻方式,因为其不会引入过长的时间开销。如果被请求的地址映射存在于缓存空间分配表中,返回地址映射项目的主物理数据块地址和替换物理数据块地址。否则,认为被请求的地址映射存储于闪存存储器中。为找出储存被请求的地址映射项目在闪存存储器中的位置,首先查阅转换页映射表,该表中包含被请求地址映射的物理页地址的记录。前述新的地址映射请求是最近的存取请求。考虑到地址映射请求的时间局部性,将这个新请求的地址映射储存于缓存空间分配表是非常有价值的。于是,检查缓存空间分配表是否已满。如果缓存空间分配表已满,将在二个缓存空间中的一个缓存空间里的复数个地址映射移出。关于这一点,首先检测缓存空间I是否储存随机映射项目。如果是,将缓存空间I中储存的地址映射项目移至闪存存储器中,之后,将Y的地址映射读取至缓存空间I中。如果缓存空间I储存顺序映射项目,无论缓存空间II储存顺序映射项目还是随机映射项目,将缓存空间II中的映射项目移至闪存存储器中,然后Y的地址映射存储于缓存空间II中。
如果缓存空间分配表有空闲空间,首先挑选一个有空闲空间的缓存空间(缓存空间I或缓存空间II)。然后将该缓存空间作为目标缓存。如果该目标缓存储存随机映射项目,Y的地址映射可直接存入该目标缓存。如果该目标缓存储存顺序映射项目,从闪存存储器中取出Y的地址映射写入目标缓存,且重新将该目标缓存指定为存储随机映射项目的缓存。
D、用于随机存取存储器空间受限的系统的基于需求的地址映射
D1、系统架构
图6是一个随机存取存储器空间受限的系统的基于需求的地址映射的示意图。如图6所示,闪存存储器620储存两种类型的物理块:数据块630和转换块640。数据块630用于储存来自输入输出请求的真实数据,数据块630根据块映射方法映射。整个块地址映射表存储于转换块640的复数个页中,而不是按照传统方法将地址映射表存储于随机存取存储器610中。用于储存块地址映射表的页,称为转换页。转换块640中的转换页采用细粒度的页映射方法实现。用于为访问转换页提供物理页地址的转换页映射表(TPMT)660驻留于随机存取存储器610中。
用于数据块630的块地址映射表存储于转换页中,同时转换页的页地址映射表存储于随机存取存储器610中的TPMT 660中。考虑到索引的局部性和工作负荷的访问频率,在随机存取存储器中设计两级缓存。数据块映射表缓存(DBMTC)650,作为第一级缓存,用于缓存需要的数据块地址映射。第二级缓存670包括两个独立的缓存,分别是转换页索引位置缓存(TPRLC)671和转换页访问频率缓存(TPAFC)672。TPRLC 671用于选择性地缓存包含第一级缓存(即DBMTC 650)中需求的地址映射的转换页。TPAFC 672用于当被请求的映射在DBMTC 650和TPRLC 671中未能找到后,缓存被频繁访问的转换页。数据块地址映射表根据不同的缓存策略缓存于两级缓存650、670中。首先在第一级缓存(DBMTC 650)中查找被请求的地址映射。如果未命中,可通过查询TPMT 660得到该地址映射的位置信息。
D2、数据块630和转换页
如前所述,用于储存来自输入输出请求的真实数据的数据块630由块映射方法实现映射,其中,一个虚拟数据块地址(DVBA)映射到一个主物理数据块地址(DPPBA)和一个替补物理数据块地址(DRPBA)。如前所述,用于存储块地址映射表的转换块640中的任一页称为转换页。一个物理转换页可以储存一定数量的逻辑固定的块地址映射。举例来说,如果表达一个地址映射项目需要8字节(bytes),那么可以在一个转换页中储存256个逻辑上连续的映射。而且,存储整个块映射表带来的空间开销相比于整个闪存空间是可以忽略的。32GB闪存存储器只需要大约1.13MB闪存空间来储存所有的映射。
D3、转换页映射表(TPMT)660
图7示出了转换页映射表660。转换页映射表660实现从一个虚拟转换页地址(TVPA)到一个物理转换页地址(TPPA)的地址映射。假定以被请求的虚拟数据块地址(DVBA)除以每个物理转换页能存储的映射的数目,所得的商被定义为虚拟转换页地址(TVPA)。因为转换页使用了页地址映射,使用TPMT 660中的条目可以立刻寻址用于储存被请求的虚拟数据块地址的物理转换页。此外,在TPMT 660中,采用“物理转换页地址的位置”项目来记录每个虚拟转换页地址的物理转换页的位置(即在第二级缓存670中或者在闪存存储器620中),因此,如果该物理转换页已经在第二级缓存670中缓存,可避免从闪存存储器620中读取该物理转换页的不必要的麻烦。作为优选,该“位置指示器”还可指明保存该物理转换页的具体的缓存(也就是TPRLC 671或者TPAFC 672)。
在TPMT 660中,另外的一个项目“未命中频率(miss frequency)”用于在第一级缓存(DBMTC 650)和TPRLC 671未命中被请求的映射时,记录每个虚拟转换页地址的访问频率。若最早的两个缓存,即DBMTC 650和TPRLC 671,未命中被请求的映射,将“未命中频率”的数值加一。由此可知“未命中频率”的累积数值表示从闪存存储器620读取相对应转换页到随机存取存储器610的次数。虽然TPMT 660处于随机存取存储器610中,不占用任何闪存存储器620中的空间,但是该TPMT660不会带来多少空间开销。举例来说,32GB闪存存储器只需要1024个转换页,这些转换页仅占用4KB的随机存取存储器空间。
D4、数据块映射表缓存(DBMTC)650
为了利用工作负载的时间局部性,在随机存取存储器610中设置DBMTC 650,用以缓存少数与需求的块有关的活跃映射。图8示出了DBMTC650。在随机存取存储器610中查询并且更新被请求的映射,而非在转换页中更新,前者减少了地址转换的开销。如果被请求的映射不在缓存中且缓存未满,被请求的映射一旦从物理转换页中取回将直接读入缓存中。如果缓存已满,需要将一个被替换映射槽(victim mapping slot)移出以便给新存入的映射槽腾出空间。这可能导致额外的转换页拷贝操作。为了避免这种额外开销,被替换转换页(victim translation page)的选择和转换页读入操作应按照以下方法执行:在DBMTC 650的所有映射槽中,如果一映射同时缓存于第二级缓存670中,选择该映射作为被替换映射;如果一映射槽自从读入缓存后从未更新过,可以选择其作为被替换映射;否则,在第一级缓存(即DBMTC 650)中不需要被替换项目并且不执行读取操作。因为第一级缓存在随机存取存储器中,DBMTC 650可根据需要缓存的地址映射表的大小来灵活地设定成不同的大小。举例来说,DBMTC 650的大小可设定为16KB,只有映射表总量(1.13MB)的约1%。如果一个映射占用8字节(bytes),那么DBMTC 650之中保存了2048个条目。当活跃的映射组较大,可采用4路组相联映射法来组织缓存。
D5、转换页索引位置缓存(TPRLC)671
用于储存刚刚在第一级缓存(DBMTC 650)未命中的需要的映射槽的转换页被选择性地缓存于TPRLC 671中。图9示出了TPRLC 671。因为转换页覆盖较宽范围的逻辑上连续的多个地址映射,根据工作负载的空间局部性,TPRLC 671有一定几率命中一个第一级缓存未命中的请求。当第一级缓存未命中被请求的映射,如果根据第一级缓存的成本效益分析未选出被替换对象,则不执行读入操作。在这种情形下,被请求的映射仍可以缓存于随机存取存储器610中,因为其对应的转换页将从闪存储器620读入TPRLC 671中。作为第二级缓存670的一部分,TPRLC 671的读入操作将在对第一级缓存的读入操作时触发。当TPRLC 671已满,将一个被替换页移出以便为将要读入的转换页腾出空间。使用最近最少使用(LRU)算法作为TPRLC 671的替换算法。
D6、转换页访问频率缓存(TPAFC)672
最倾向于被读入随机存储器610的转换页将被选择性地缓存于TPAFC 672。TPAFC 672如图10所示。当请求的映射在第一级缓存(DBMTC 650)和TPRLC671中频繁地未命中时,将转换页从闪存存储器620读入随机存取存储器610能够有效地减少地址转换开销。作为第二级缓存670的另一部分,指定TPAFC672缓存包含频繁地被请求的映射的转换页。通过这种方式,在DBMTC 650和TPRLC 671中未命中的被请求映射在这个缓存中可能命中。当缓存已满时使用最少使用(LFU)替换算法驱逐出被替换转换页。当在闪存存储器620中的一个转换页相比于访问频率最低的已缓存转换页拥有较高的访问频率,则执行读入操作。
第二级缓存670(TPRLC 671和TPAFC 672的总和)的规模可以根据随机存取存储器规模的限制灵活地调节。举例来说,10个转换页占据大约20KB随机存取存储器空间。因为虚拟转换页地址作为索引缓存于第二级缓存670中,使用顺序查找足以搜索其中存储的逻辑上连续的地址映射。
D7、从逻辑地址到物理地址的转换
首先在两级缓存(DBMTC 650,TPRLC 671和TPAFC 672)中搜寻被请求映射,如果未在缓存中命中,从转换页之一中将其取回。图11描述了从逻辑数据块地址到物理数据块地址的地址转换处理过程。
如果被请求映射在第一级缓存(即DBMTC 650)中命中,可直接获取该被请求映射。否则,需要查询TPMT 660找出包含该被请求映射的转换页的位置。如果被请求映射缓存于第二级缓存670中,可使用顺序查找法在第二级缓存670中将其找出。如果两级缓存(即DBMTC 650,TPRLC 671和TPAFC 672)均未命中被请求映射且均已满,该被请求映射槽将读入第一级缓存(DBMTC650),并且被请求的转换页也将读入TPRLC 671或TPAFC 672中。
图12示出了将被请求的物理转换页读入第二级缓存670的处理过程。在被请求映射被读入DBMTC 650后,相对应的转换页也被载入第二级缓存670。如果TPRLC 671和TPAFC 672均已满,从TPRLC 671和TPAFC 672中分别依照最近最少使用(LRU)替换算法和最少访问(LFU)替换算法选出被替换转换页。如果被请求转换页的访问频率比TPAFC 672中的被替换转换页的访问频率高,在被替换转换页移出后将被请求的转换页读入TPAFC 672中。如果在闪存存储器620中的被请求页和TPAFC 672中的被替换页有相同的访问频率,基于如下的简单的成本效益分析来执行读入操作。若被替换页自读入TPAFC 670后无改变,将其移出,并读入被请求的转换页;否则,将被请求页读入TPRLC 671中。当被请求页的访问频率比TPAFC 672中的被替换页的低,在TPRLC 671中执行移出操作之后,将被请求页读入TPRLC 671中。
H、本发明
本发明提供用于在包含闪存存储器和随机存取存储器的计算机子系统中实现闪存转换层(FTL)的第一方法和第二方法。闪存存储器被划分为多个块,每个块包括多个页,且该块可由物理块地址寻址。该块中的每个页可由物理页地址寻址。
在闪存转换层(FTL)的实施中,常涉及用于控制FTL相关操作的一个或多个处理器。该一个或多个处理器可包括带有程序和数据存储器的通用处理器、用于控制及读-写-擦除访问闪存存储器的闪存控制器、或用于计算机子系统与子系统的外部系统环境交互的通信接口处理器。可以将该一个或者多数个处理器合并入在此考虑的计算机子系统。可配置该一个或多个处理器,使其根据本发明所公开的第一方法或第二方法在计算机子系统中实现FTL处理过程。
本发明公开的第一和第二方法可有效地适用于NAND闪存存储器。但是,本发明不局限于用于NAND闪存存储器。本发明适用于支持页读/写(page-wiseread/write)、并且划分多个块,且每个块进一步划分为多个页的通用闪存存储器。
在此公开的第一方法,基于前述C部分中的揭露,详细阐述如下。优选地,该第一方法适用于在随机存取存储器空间非常有限的情况下实施FTL。
在第一方法中,在闪存存储器中分配第一数目个块作为储存真实数据的数据块,并且分配除数据块之外的第二数目个块作为转换块。其中,将转换块整体配置为用于储存包含复数个第一地址映射数据结构的块映射表。每个第一地址映射数据结构包括(1)复数个数据块中的一个数据块的逻辑块地址和(2)与该复数个数据块中的一个数据块的逻辑块地址相对应的物理块地址。如前所述,任一转换块中的一页作为转换页。
此外,分配随机存取存储器的第一部分作为缓存空间分配表,该缓存空间分配表配置为包含复数个第二地址映射数据结构。每个第二地址映射数据结构或被标记为可读(available),或包括(1)从复数个数据块中选定的一个数据块的逻辑块地址和(2)与该从复数个数据块中选定的一个数据块的逻辑块地址相对应的物理块地址。此外,分配随机存取存储器的第二部分作为转换页映射表,配置该转换页映射表使其包含复数个第三地址映射数据结构。每个第三地址映射数据结构包括(1)从复数个数据块中选定的一个数据块的逻辑块地址,和(2)与该从复数个数据块中选定的一个数据块的逻辑块地址相对应的物理块地址。
当接收到地址转换请求,通过地址转换处理过程将被请求的虚拟数据块地址转换为与其相对应的物理块地址。
地址转换处理过程包括,查找缓存空间分配表,以从复数个第二地址映射数据结构中识别是否存在第一识别数据结构,该第一识别数据结构的逻辑块地址与被请求的虚拟数据块地址相符。优选地,选用C4中描述的顺序查找法查找缓存空间分配表。注意第一识别数据结构是从缓存空间分配表中的复数个第二地址映射数据结构之中选出的。如果识别出第一识别数据结构,将第一识别数据结构中的物理块地址指定为与被请求的虚拟数据块地址相对应的物理块地址。如果未识别出第一识别数据结构,查找闪存存储器中的转换块以便识别第二识别数据结构,该第二识别数据结构中的逻辑块地址与被请求的虚拟块地址相符。该第二识别数据结构是从转换块中的复数个第一地址映射数据结构中选出的。转换块和其中的转换页是根据转换页映射表提供的物理页地址来访问的。当识别出第二识别数据结构时,将第二识别数据结构中的物理块地址指定为与被请求的虚拟数据块地址相对应的物理块地址。而且通过缓存更新处理过程使用该第二识别数据结构更新缓存空间分配表。该缓存更新处理过程包括将第二识别数据结构拷贝至从复数个第二地址映射数据结构中选定的目标第二地址映射数据结构中。
在本发明的第一方法中,优选地,缓存空间分配表格式化为第三数目个缓存空间。在这种分区条件下,缓存更新处理过程进一步包括如下操作。如果缓存空间分配表未满,选择标记为空闲的第二地址映射数据结构中的一个作为选定的目标第二地址映射数据结构。如果缓存空间分配表已满,选定缓存空间中的一个作为第一选定缓存空间。然后选择第一选定缓存空间中的复数个第二地址映射数据结构之一作为选定的目标第二地址映射数据结构,用于拷贝入第二识别数据结构。进一步地,将第一选定缓存空间中除目标第二地址映射数据结构以外的其他全部第二地址映射数据结构标记为空闲。
在一具体实施中,用于格式化缓存空间分配表的第三数目是二。例如C3节中已提及将缓存空间分配表划分两个缓存空间。于是缓存空间分配表格式化为一个第一缓存空间和一个第二缓存空间。假设缓存空间分配表已满的情形。如果已指定第一缓存空间用于存储随机映射项目,选择第一个缓存空间作为用于拷贝入第二识别数据结构的第一选定缓存空间。如果是另外一种情况,指定第一缓存空间存储顺序映射项目而不是随机映射项目,选择第二缓存空间作为第一选定缓存空间。假设另一种情形,缓存空间分配表未满。在这种情形下,将包含选定的目标第二地址映射数据结构的缓存空间(或者是第一缓存空间或者是第二缓存空间),指定为第二选定缓存空间。缓存更新处理过程还进一步包括:如果第二选定缓存空间没有被指定为用于存储随机映射项目,而且如果第二识别数据结构不是第二选定缓存空间中的顺序项目,则重新指定第二选定缓存空间作为用于储存随机映射项目的缓存空间。
在C3节中提到的实施例中,将虚拟数据块地址映射到主物理数据块地址和替补物理数据块地址。于是在任何一个第一和第二地址映射数据结构中,其中的逻辑块地址作为虚拟数据块地址,并且其中的物理数据块地址作为主物理数据地址。任意一个第一地址映射数据结构可更进一步包括一个与其中的逻辑块地址相对应的替补物理数据块地址。相似地,第二地址映射数据结构中的任何一个,如果没有标记为空闲,可以更进一步包括一个与其中的逻辑块地址相对应的替补逻辑块地址。在这种设置下,在接收到地址转换请求之后,能够获取与被请求的虚拟数据块地址相对应的主物理块地址和替补物理数据块地址。
以上述D节中公开的内容为基础,在下列各项中详细地阐述本发明的第二方法。优选地,第二方法适用于在随机存取存储器空间受限的系统中实现FTL。
在第二方法中,分配第一数目个块作为储存真实数据的数据块;分配除数据块之外的第二数目个块作为转换块;配置整个转换块使其用于存储块映射表,该块映射表包括复数个第一地址映射数据结构。每个第一地址映射数据结构包括(1)复数个数据块中的一个数据块的逻辑块地址和(2)与所述复数个数据块中的一个数据块的逻辑块地址相对应的物理块地址。
分配随机存取存储器的第一部分作为数据块映射表缓存(DBMTC),配置该DBMTC使其包含复数个第二地址映射数据结构。每个第二地址映射数据结构或标记为空闲,或包括从复数个数据块中选出的一个数据块的逻辑块地址及与该从复数个数据块中选定的一个数据块的逻辑地址相对应的物理块地址。
分配随机存取存储器的第二部分作为转换页映射表(TPMT),配置该TPMT使其包含复数个第三地址映射数据结构。每个第三映射数据结构包括(1)从所述复数个数据块中选出的一个数据块的逻辑块地址,(2)用于存储与从所述复数个数据块中选出的一个数据块的逻辑块地址相对应的物理地址的转换页的物理页地址,(3)用于根据前述转换页的拷贝是否缓存于随机存取存储器指示肯定结果或否定结果的位置指示器和(4)未命中频率记录。
分配随机存取存储器的第三部分为转换页索引位置缓存(TPRLC),配置该TPRLC使其包含复数个第四地址映射数据结构。每个第四地址映射数据结构或标记为空闲,或包含(1)从复数个数据块中选出的一个数据块的逻辑块地址以及(2)与从所述复数个数据块中选出的一数据块的逻辑块地址相对应的物理块地址。
分配随机存取存储器的第四部分为转换页存取频率缓存(TPAFC),配置该TPAFC使其包含复数个第五地址映射数据结构。每个第五地址映射数据结构或标记为空闲,或包含(1)从复数个数据块中选出的一个数据块的逻辑块地址以及(2)与该从复数个数据块中选出的一个数据块的逻辑块地址相对应的物理块地址。
可选择地且有利地,位置指示器可包括用于指示转换页的拷贝是否缓存于TPRLC的第一标记(first flag),和用于指示该拷贝是否缓存于TPAFC的第二标记(second flag)。
当接收到地址转换请求时,通过地址转换处理过程将被请求的虚拟数据块地址转换为与其相对应的物理块地址。
该地址转换处理过程包括如下步骤,查询DBMTC,以在复数个第二地址映射数据结构中识别是否存在第一识别数据结构,该第一识别数据结构的逻辑块地址与被请求的虚拟数据块地址相符。值得注意的是该第一识别数据结构是从第二地址映射数据结构中选出的。如果识别出第一识别数据结构,将该第一识别数据结构中的物理块地址指定为与被请求的虚拟数据块地址相对应的物理块地址。如果未识别出第一识别数据结构,查询TPMT以识别第二识别映射数据结构,该第二识别映射数据结构中的逻辑块地址与被请求的虚拟数据块地址相符。相似地,该第二识别映射数据结构是从复数个第三映射数据结构中选出的。如果第二识别数据结构中的位置指示器给出肯定结果,该结果表示包含与地址转换请求相关的地址映射项目的转换页的一个拷贝存在于随机存取存储器中。查询TPRLC和TPAFC,以在复数个第四地址映射数据结构和复数个第五地址映射数据结构中识别第三识别数据结构,该第三识别数据结构的逻辑块地址与被请求的虚拟数据块地址相符。优选地,如D7节所述,使用顺序查找法搜索TPRLC和TPAFC。如果在TPAFC中判断存在第三识别数据结构,在第二识别数据结构中的未命中频率记录中增加一次。当识别出第三识别数据结构,将第三识别数据结构中的物理块地址指定为与被请求的虚拟数据块地址相对应的物理块地址。如果第二识别数据结构中的位置指示器给出否定结果,从闪存存储器中将包含存储于第二识别数据结构中的物理页地址的整个转换页载入随机存取存储器中。(该整个转换页将用于更新TPRLC或TPAFC。)接着查询载入的转换页,以在该载入的转换页中识别第四识别数据结构,该第四识别数据结构中的逻辑块地址与被请求的虚拟数据块地址相符。当识别出第四识别数据结构,将该第四识别数据结构中的物理块地址指定为与被请求的虚拟数据相对应的物理块地址。并且使用第四识别数据结构更新DBMTC。进一步地通过缓存更新处理过程使用整个载入的转换页更新TPRLC或TPAFC,并且使用肯定结果更新第二识别数据结构中的位置指示器。
可选地,缓存更新处理过程具有下列各项特征。如果TPRLC和TPAFC中有任一个未满,在目标缓存(TPRLC或TPAFC)中存储载入的转换页。如果TPRLC和TPAFC均已满,执行下列各项:
●从TPRLC中选择第一被替换转换页(first victim translation page)。取回第五识别数据结构中的未命中频率记录,所述第五识别数据结构是从第三地址映射数据结构中选出的,并且其中的物理页地址与所述第一被替换转换页的物理页地址相符。
●从TPAFC中选择第二被替换转换页(second victim translationpage)。取回第六识别数据结构中的未命中频率记录,所述第六识别数据结构是从第三地址映射数据结构中选出的,且其中的物理页地址与所述第二被替换转换页的物理页地址相符。
●根据第五识别数据结构和第六识别数据结构中的未命中频率记录在第一被替换转换页和第二被替换转换页中选择一目标被替换转换页;
●将载入的转换页写入该目标被替换转换页。
在D7节中给出了一个缓存更新处理过程的例子。优选地,使用最近最少使用(LRU)算法从TPRLC中的转换页中选出第一被替换转换页。并且优选地,使用最少使用(LFU)算法在TPAFC中的转换页中选出第二被替换转换页。
在D2节中提到的一实施例中,将虚拟数据块地址映射到主物理数据块地址和替补物理数据块地址。由此,在任一第一、第二、第四和第五地址映射数据结构中,其中的逻辑块地址作为虚拟数据块地址,并且其中的物理块地址作为主物理数据地址。任一第一地址映射数据结构可进一步包括一替补物理数据块地址,该替补物理数据块地址与其中的逻辑块地址相对应。相似地,未被标示为空闲的第二、第四和第五地址映射数据结构中的任何一个,均可进一步包括一与其中的逻辑块地址对应的替补物理块地址。在这种设置下,在接收到地址转换请求之后,能够获取与被请求的虚拟数据块地址相对应的主物理块地址和替补物理数据块地址。
本发明可在不脱离其中的原理和基本特征的前提下以其他具体形式实施。因此其中的实施例是为了说明本发明,而非限制性的。本发明的保护范围由权利要求限定,而非局限于前述具体实施方式,并且所有与权利要求在含义上等同的更改,和在权利要求范围中的更改,也都处于本发明保护范围内。
Claims (14)
1.一种在计算机子系统中实现闪存转换层的方法,所述计算机子系统包括闪存存储器和随机存取存储器(RAM),所述闪存存储器划分为多个块,每个块包括多个页,且所述块由物理块地址寻址,任一块中的每个页由物理页地址寻址,其特征在于,所述方法包括:
分配第一数目个块作为储存真实数据的数据块;
分配除数据块之外的第二数目个块作为转换块,任一转换块中的页称为转换页,其中转换块整体配置为用于存储块映射表,所述块映射表包括复数个第一地址映射数据结构,每个第一地址映射数据结构包括复数个数据块中的一个数据块的逻辑块地址和与该逻辑块地址相对应的物理块地址;
分配随机存取存储器的第一部分作为缓存空间分配表,所述缓存空间分配表配置为包含复数个第二地址映射数据结构,每个第二地址映射数据结构或标记为空闲(available),或包括从复数个数据块中选定的一个数据块的逻辑块地址和与该逻辑块地址相对应的物理块地址;
分配随机存取存储器的第二部分作为转换页映射表,所述转换页映射表配置为包含复数个第三地址映射数据结构,每个第三地址映射数据结构包括从复数个数据块中选出的一个数据块的逻辑块地址,和存储有与该逻辑块地址相对应的物理块地址的转换页的物理页地址;
当接收到地址转换请求时,通过地址转换处理过程将被请求的虚拟数据块地址转换为与其相对应的物理块地址;
其中,所述地址转换处理过程包括:
查找所述缓存空间分配表以从复数个第二地址映射数据结构中识别是否存在第一识别数据结构,该第一识别数据结构的逻辑块地址与被请求的虚拟数据块地址相符;
如果识别出第一识别数据结构,将该第一识别数据结构中的物理块地址指定为与被请求的虚拟数据块地址相对应的物理块地址;
如果未识别出第一识别数据结构,查找转换块以从复数个第一地址映射数据结构中识别第二识别数据结构,该第二识别数据结构中的逻辑块地址与被请求的虚拟块地址相符,其中所述转换页映射表提供存储于其中的物理页地址,用以访问转换块;
当识别出第二识别数据结构时,将该第二识别数据结构中的物理块地址指定为与被请求的虚拟数据块地址相对应的物理块地址;及
当识别出第二识别数据结构时,通过缓存更新处理过程使用第二识别数据结构更新缓存空间分配表,其中,所述缓存更新处理过程包括将所述第二识别数据结构拷贝至从复数个第二地址映射数据结构中选定的目标第二地址映射数据结构中。
2.根据权利要求1所述的在计算机子系统中实现闪存转换层的方法,其特征在于,其中,将所述缓存空间分配表格式化为第三数目个缓存空间,所述缓存更新处理过程进一步包括:
如果所述缓存空间分配表未满,选择标记为空闲的第二地址映射数据结构中的一个作为所述选定的目标第二地址映射数据结构;及
并且如果缓存空间分配表已满,选择所述缓存空间之一作为第一选定缓存空间;然后选择第一选定缓存空间中的复数个第二地址映射数据结构中的任一个作为所述选定的目标第二地址映射数据结构,并将第一选定缓存空间中除目标第二地址映射数据结构之外的全部第二地址映射数据结构标记为空闲。
3.根据权利要求2所述的在计算机子系统中实现闪存转换层的方法,其特征在于,
所述第三数目是二,从而将缓存空间分配表格式化为第一缓存空间和第二缓存空间;
如果所述缓存空间分配表已满,并且如果第一缓存空间指定为用于存储随机映射项目,选择所述第一缓存空间作为第一选定缓存空间;
如果所述缓存空间分配表已满,并且如果第一缓存空间未指定为用于存储随机映射项目,选择所述第二缓存空间作为第一选定缓存空间;且所述缓存更新处理过程进一步包括:
(a)对于第二选定缓存空间,其或者是第一缓存空间或者是第二缓存空间,被识别出包含在所述缓存空间映射表未满时选择的所述目标第二地址映射数据结构,如果该第二选定缓存空间未指定为用于存储随机映射项目而且如果第二识别数据结构不是第二选定缓存空间中的顺序项目,重新指定第二选定缓存空间作为储存随机映射项目的缓存空间。
4.根据权利要求1所述的在计算机子系统中实现闪存转换层的方法,其特征在于,
所述第一地址映射数据结构中的任一个进一步包括与逻辑块地址相对应的替补物理数据块地址,同时将所述逻辑块地址作为虚拟数据块地址并且将所述物理块地址作为主物理数据地址;并且,
所述第二地址映射数据结构中的任一个,如果没有标记为空闲,进一步包括与所述逻辑块地址相对应的替补物理数据块地址,同时将所述逻辑块地址作为虚拟数据块地址并且将所述物理块地址作为主物理数据地址;
从而,在接收到地址转换请求之后,能够获取与被请求的虚拟数据块地址相对应的主物理块地址和替补物理数据块地址。
5.根据权利要求1所述的在计算机子系统中实现闪存转换层的方法,其特征在于,使用顺序查找法在缓存空间分配表中识别所述第一识别数据结构。
6.根据权利要求1所述的在计算机子系统中实现闪存转换层的方法,其特征在于,所述闪存存储器是NAND闪存存储器。
7.一种计算机子系统,包括闪存存储器、随机存取存储器和一个或多个处理器,其特征在于,所述一个或多个处理器用于执行一处理过程,以实现权利要求1至4中任一项所述的实现闪存转换层的方法。
8.一种在计算机子系统中实现闪存转换层的方法,所述计算机子系统包括闪存存储器和随机存取存储器(RAM),所述闪存存储器划分为多个块,每个块包括多个页,且所述块由物理块地址寻址,任一块中的每个页由物理页地址寻址,其特征在于,所述方法包括:
分配第一数目个块作为储存真正数据的数据块;
分配除数据块之外的第二数目个块作为转换块,任一转换块中的页称为转换页,其中转换块整体配置为用于存储块映射表,所述块映射表包括复数个第一地址映射数据结构,每个第一地址映射数据结构包括复数个数据块中的一个数据块的逻辑块地址和与该逻辑块地址相对应的物理块地址;
分配随机存取存储器的第一部分作为数据块映射表缓存(DBMTC),所述数据块映射表缓存配置为包含复数个第二地址映射数据结构,每个第二地址映射数据结构或被标记为空闲,或包括从复数个数据块中选出的一个数据块的逻辑块地址及与该逻辑地址相对应的物理块地址;
分配随机存取存储器的第二部分作为转换页映射表(TPMT),所述转换页映射表配置为包含复数个第三地址映射数据结构,每个第三地址映射数据结构包括从复数个数据块中选出的一个数据块的逻辑块地址、用于存储有与该逻辑块地址相对应的物理块地址的转换页的物理页地址、用于根据前述转换页的拷贝是否缓存于所述随机存取存储器来指示肯定结果或否定结果的位置指示器,和未命中频率记录;
分配随机存取存储器的第三部分作为转换页索引位置缓存(TPRLC),该转换页索引位置缓存配置为包含复数个第四地址映射数据结构,每个第四地址映射数据结构或标记为空闲,或包含从复数个数据块中选出的一个数据块的逻辑块地址以及与该逻辑块地址相对应的物理块地址;
分配随机存取存储器的第四部分为转换页存取频率缓存(TPAFC),该转换页存取频率缓存配置为包含第五地址映射数据结构,每个第五地址映射数据结构或标记为空闲,或包含从复数个数据块中选出的一个数据块的逻辑块地址以及与该逻辑块地址相对应的物理块地址;
当接收到地址转换请求时,通过地址转换处理过程将被请求的虚拟数据块地址转换为与其相对应的物理块地址;
其中,所述地址转换处理过程包括:
查找数据块映射表缓存,以从复数个第二地址映射数据结构中识别是否存在第一识别数据结构,该第一识别数据结构的逻辑块地址与被请求的虚拟数据块地址相符;
如果识别出第一识别数据结构,将该第一识别数据结构中的物理块地址指定为与被请求的虚拟数据块地址相对应物理块地址;
如果未识别出第一识别数据结构,查找转换页映射表以从复数个第三地址映射数据结构中识别第二识别数据结构,该第二识别数据结构中的逻辑块地址与被请求的虚拟数据块地址相符;
如果该第二识别数据结构中的位置指示器给出肯定结果,查找所述转换页索引位置缓存(TPRLC)和所述转换页存取频率缓存(TPAFC)以在复数个第四地址映射数据结构和复数个第五地址映射数据结构中识别第三识别数据结构,该第三识别数据结构的逻辑块地址与被请求的虚拟数据块地址相符;
如果在TPAFC中识别出第三识别数据结构,在第二识别数据结构中的未命中频率记录中增加一次;
当识别出第三识别数据结构时,将第三识别数据结构中的物理块地址指定为与被请求的虚拟数据块地址相对应的物理块地址;
如果该第二识别数据结构中的位置指示器给出否定结果,将包含存储于第二识别数据结构中的物理页地址的整个转换页从闪存存储器中载入随机存取存储器中,并且查找该载入的转换页,以在载入的转换页中识别第四识别数据结构,该第四识别数据结构中的逻辑块地址与被请求的虚拟数据块地址相符;
当识别出第四识别数据结构时,将该第四识别数据结构的物理块地址指定为与被请求的虚拟数据块地址相对应的物理块地址;
当识别出第四识别数据结构时,使用第四识别数据结构更新DBMTC;并且,
当识别出第四识别数据结构时,通过缓存更新处理过程使用载入的转换页更新TPRLC或TPAFC,并用肯定结果更新第二识别数据结构中的位置指示器。
9.根据权利要求8所述的在计算机子系统中实现闪存转换层的方法,其特征在于,所述缓存更新处理过程包括:
如果TPRLC和TPAFC中有任一个未满,将载入的转换页存储到目标缓存中,该目标缓存是从TPRLC和TPAFC中选出的、并且未满的;
如果TPRLC和TPAFC均已满,执行以下步骤:
a)从TPRLC中选择第一被替换转换页,并且取回第五识别数据结构中的未命中频率记录,所述第五识别数据结构是从第三地址映射数据结构中选出的,并且第五识别数据结构中的物理页地址与所述第一被替换转换页的物理页地址相符;
b)从TPAFC中选择第二被替换转换页,并且取回第六识别数据结构中的未命中频率记录,所述第六识别数据结构是从第三地址映射数据结构中选出的,并且第六识别数据结构中的物理页地址与所述第二被替换转换页的物理页地址相符;
c)根据第五识别数据结构和第六识别数据结构中的未命中频率记录在第一被替换转换页和第二被替换转换页中选择一目标被替换转换页;
d)将载入的转换页写入所述目标被替换转换页。
10.根据权利要求9所述的在计算机子系统中实现闪存转换层的方法,其特征在于,其中:
使用最近最少使用(LRU)算法从TPRLC中的转换页中选出第一被替换转换页;并且
使用最少使用(Least frequently used,简称LFU)算法从TPAFC中的转换页中选出第二被替换转换页。
11.根据权利要求8所述的在计算机子系统中实现闪存转换层的方法,其特征在于,其中:
所述第一地址映射数据结构中的任一个进一步包括与逻辑块地址相对应的替补物理数据块地址,同时将所述逻辑块地址作为虚拟数据块地址并且将所述物理块地址作为主物理数据地址;并且,
所述第二地址映射数据结构中的任一个,如果没有标记为空闲,进一步包括与所述逻辑块地址相对应的替补物理数据块地址,同时将所述逻辑块地址作为虚拟数据块地址并且将所述物理块地址作为主物理数据地址;
所述第四地址映射数据结构中的任一个,如果没有标记为空闲,进一步包括与所述逻辑块地址相对应的替补物理数据块地址,同时将所述逻辑块地址作为虚拟数据块地址并且将所述物理块地址作为主物理数据地址;并且
所述第五地址映射数据结构中的任一个,如果没有标记为空闲,进一步包括与所述逻辑块地址相对应的替补物理数据块地址,同时将所述逻辑块地址作为虚拟数据块地址并且将所述物理块地址作为主物理数据地址;
从而,在接收到地址转换请求之后,能够获取与被请求的虚拟数据块地址相对应的主物理块地址和替补物理数据块地址。
12.根据权利要求8所述的在计算机子系统中实现闪存转换层的方法,其特征在于,使用顺序查找法在缓存空间分配表中识别所述第一识别数据结构。
13.根据权利要求8所述的在计算机子系统中实现闪存转换层的方法,其特征在于,所述闪存存储器是NAND闪存存储器。
14.一种计算机子系统,包括闪存存储器、随机存取存储器和一个或多个处理器,其特征在于,所述一个或多个处理器用于执行一处理过程,以实现权利要求8至11中任所述的实现闪存转换层的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/858,105 US20140304453A1 (en) | 2013-04-08 | 2013-04-08 | Effective Caching for Demand-based Flash Translation Layers in Large-Scale Flash Memory Storage Systems |
US13/858,105 | 2013-04-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104102591A true CN104102591A (zh) | 2014-10-15 |
Family
ID=51655319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310465920.6A Pending CN104102591A (zh) | 2013-04-08 | 2013-09-30 | 计算机子系统及在其中实现闪存转换层的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140304453A1 (zh) |
CN (1) | CN104102591A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740157A (zh) * | 2014-11-03 | 2016-07-06 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN106445832A (zh) * | 2016-09-06 | 2017-02-22 | 深圳市先天海量信息技术有限公司 | 闪存存储系统的地址映射方法及装置 |
CN106598876A (zh) * | 2015-10-15 | 2017-04-26 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
CN106815152A (zh) * | 2016-12-27 | 2017-06-09 | 华中科技大学 | 一种优化页级闪存转换层的方法 |
CN107423229A (zh) * | 2017-03-16 | 2017-12-01 | 杭州电子科技大学 | 一种面向页级ftl的缓冲区改进方法 |
CN107943711A (zh) * | 2016-10-12 | 2018-04-20 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
CN109491930A (zh) * | 2018-11-16 | 2019-03-19 | 杭州阿姆科技有限公司 | 一种ssd中优化写地址分配的方法 |
CN109840219A (zh) * | 2017-11-29 | 2019-06-04 | 北京忆恒创源科技有限公司 | 大容量固态存储设备的地址转换系统与方法 |
CN109960667A (zh) * | 2017-12-14 | 2019-07-02 | 北京忆恒创源科技有限公司 | 大容量固态存储设备的地址转换方法与装置 |
WO2021004231A1 (zh) * | 2019-07-10 | 2021-01-14 | 华为技术有限公司 | 一种闪存设备中的数据存储方法及闪存设备 |
CN112732309A (zh) * | 2021-01-14 | 2021-04-30 | 潍柴动力股份有限公司 | Flash存储器的更新方法、装置和电子设备 |
WO2021082109A1 (zh) * | 2019-10-31 | 2021-05-06 | 江苏华存电子科技有限公司 | 一种在静态随机存取存储器上的混合型映象表 |
CN113553099A (zh) * | 2020-04-24 | 2021-10-26 | 美光科技公司 | 主机常驻转换层写入命令 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468538B (zh) * | 2014-09-12 | 2018-11-06 | 华为技术有限公司 | 一种内存迁移方法及设备 |
US10338817B2 (en) * | 2014-12-30 | 2019-07-02 | Sandisk Technologies Llc | Systems and methods for storage recovery |
US20160291887A1 (en) * | 2015-03-30 | 2016-10-06 | Kabushiki Kaisha Toshiba | Solid-state drive with non-volatile random access memory |
CN106293493A (zh) * | 2015-05-18 | 2017-01-04 | 广明光电股份有限公司 | 固态硬盘模块动态储存转换层的方法 |
US10552335B2 (en) * | 2015-09-25 | 2020-02-04 | Beijing Lenovo Software Ltd. | Method and electronic device for a mapping table in a solid-state memory |
CN108139902A (zh) * | 2015-10-16 | 2018-06-08 | 科内克斯实验室公司 | 用于提供混合模式来访问ssd驱动器的方法和装置 |
US10235198B2 (en) | 2016-02-24 | 2019-03-19 | Samsung Electronics Co., Ltd. | VM-aware FTL design for SR-IOV NVME SSD |
US9959044B2 (en) * | 2016-05-03 | 2018-05-01 | Macronix International Co., Ltd. | Memory device including risky mapping table and controlling method thereof |
CN106095342B (zh) * | 2016-06-15 | 2019-05-14 | 华中科技大学 | 一种动态可变长条带的瓦记录磁盘阵列构建方法及系统 |
US10503635B2 (en) * | 2016-09-22 | 2019-12-10 | Dell Products, Lp | System and method for adaptive optimization for performance in solid state drives based on segment access frequency |
US10318423B2 (en) * | 2016-12-14 | 2019-06-11 | Macronix International Co., Ltd. | Methods and systems for managing physical information of memory units in a memory device |
KR20180094386A (ko) | 2017-02-15 | 2018-08-23 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR102521746B1 (ko) * | 2017-12-18 | 2023-04-13 | 에스케이하이닉스 주식회사 | 메모리 장치의 주소 맵핑을 관리하는 반도체 장치 및 이를 포함하는 데이터 저장 장치 |
KR102612911B1 (ko) * | 2018-08-31 | 2023-12-13 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
JP6995723B2 (ja) * | 2018-09-19 | 2022-01-17 | キオクシア株式会社 | メモリシステム、ストレージシステム、および制御方法 |
US10915451B2 (en) * | 2019-05-10 | 2021-02-09 | Samsung Electronics Co., Ltd. | Bandwidth boosted stacked memory |
US11580030B2 (en) | 2019-08-18 | 2023-02-14 | Smart IOPS, Inc. | Devices, systems, and methods of logical-to-physical address mapping |
US11907114B2 (en) * | 2019-08-18 | 2024-02-20 | Smart IOPS, Inc. | Devices, systems, and methods for dynamically remapping memory addresses |
US11487653B2 (en) * | 2019-09-27 | 2022-11-01 | Micron Technology, Inc. | L2P translation techniques in limited RAM systems to increase random write performance using multiple L2P caches |
CN111966611B (zh) * | 2020-08-03 | 2023-12-12 | 南京扬贺扬微电子科技有限公司 | 具有逻辑转物理地址架构的spi闪存控制芯片 |
US11977767B2 (en) * | 2022-03-14 | 2024-05-07 | Silicon Motion, Inc. | Method and apparatus for caching address mapping information in flash memory based storage device |
CN116010298B (zh) * | 2023-03-24 | 2023-09-22 | 温州市特种设备检测科学研究院(温州市特种设备应急处置中心) | Nand型闪存地址映射的方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110072194A1 (en) * | 2009-09-23 | 2011-03-24 | Lsi Corporation | Logical-to-Physical Address Translation for Solid State Disks |
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN102981963A (zh) * | 2012-10-30 | 2013-03-20 | 华中科技大学 | 一种固态盘的闪存转换层的实现方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US8024545B2 (en) * | 2007-10-19 | 2011-09-20 | Inha-Industry Partnership Institute | Efficient prefetching and asynchronous writing for flash memory |
KR20100082185A (ko) * | 2009-01-08 | 2010-07-16 | 삼성전자주식회사 | 플래시 메모리, 캐시 메모리, 그리고 제어기를 포함하는 사용자 장치 |
-
2013
- 2013-04-08 US US13/858,105 patent/US20140304453A1/en not_active Abandoned
- 2013-09-30 CN CN201310465920.6A patent/CN104102591A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110072194A1 (en) * | 2009-09-23 | 2011-03-24 | Lsi Corporation | Logical-to-Physical Address Translation for Solid State Disks |
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
CN102981963A (zh) * | 2012-10-30 | 2013-03-20 | 华中科技大学 | 一种固态盘的闪存转换层的实现方法 |
Non-Patent Citations (1)
Title |
---|
QIN ET AL: "《Hardware/Software Code sign and System Synthesis(CODES+ISSS)》", 29 October 2010, IEEE * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740157A (zh) * | 2014-11-03 | 2016-07-06 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
US10540289B2 (en) | 2014-11-03 | 2020-01-21 | Silicon Motion, Inc. | Data storage device and flash memory control method |
CN105740157B (zh) * | 2014-11-03 | 2018-11-16 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN106598876A (zh) * | 2015-10-15 | 2017-04-26 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
CN106598876B (zh) * | 2015-10-15 | 2020-02-14 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
CN106445832A (zh) * | 2016-09-06 | 2017-02-22 | 深圳市先天海量信息技术有限公司 | 闪存存储系统的地址映射方法及装置 |
CN107943711A (zh) * | 2016-10-12 | 2018-04-20 | 慧荣科技股份有限公司 | 数据储存装置及其数据维护方法 |
CN106815152A (zh) * | 2016-12-27 | 2017-06-09 | 华中科技大学 | 一种优化页级闪存转换层的方法 |
CN106815152B (zh) * | 2016-12-27 | 2019-05-31 | 华中科技大学 | 一种优化页级闪存转换层的方法 |
CN107423229A (zh) * | 2017-03-16 | 2017-12-01 | 杭州电子科技大学 | 一种面向页级ftl的缓冲区改进方法 |
CN107423229B (zh) * | 2017-03-16 | 2020-09-01 | 杭州电子科技大学 | 一种面向页级ftl的缓冲区改进方法 |
CN109840219A (zh) * | 2017-11-29 | 2019-06-04 | 北京忆恒创源科技有限公司 | 大容量固态存储设备的地址转换系统与方法 |
CN109840219B (zh) * | 2017-11-29 | 2024-04-05 | 北京忆恒创源科技股份有限公司 | 大容量固态存储设备的地址转换系统与方法 |
CN109960667A (zh) * | 2017-12-14 | 2019-07-02 | 北京忆恒创源科技有限公司 | 大容量固态存储设备的地址转换方法与装置 |
CN109960667B (zh) * | 2017-12-14 | 2023-09-15 | 北京忆恒创源科技股份有限公司 | 大容量固态存储设备的地址转换方法与装置 |
CN109491930A (zh) * | 2018-11-16 | 2019-03-19 | 杭州阿姆科技有限公司 | 一种ssd中优化写地址分配的方法 |
WO2021004231A1 (zh) * | 2019-07-10 | 2021-01-14 | 华为技术有限公司 | 一种闪存设备中的数据存储方法及闪存设备 |
WO2021082109A1 (zh) * | 2019-10-31 | 2021-05-06 | 江苏华存电子科技有限公司 | 一种在静态随机存取存储器上的混合型映象表 |
CN113553099A (zh) * | 2020-04-24 | 2021-10-26 | 美光科技公司 | 主机常驻转换层写入命令 |
CN112732309A (zh) * | 2021-01-14 | 2021-04-30 | 潍柴动力股份有限公司 | Flash存储器的更新方法、装置和电子设备 |
CN112732309B (zh) * | 2021-01-14 | 2023-08-18 | 潍柴动力股份有限公司 | Flash存储器的更新方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20140304453A1 (en) | 2014-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104102591A (zh) | 计算机子系统及在其中实现闪存转换层的方法 | |
CN110678836B (zh) | 用于键值存储的持久性存储器 | |
KR102193689B1 (ko) | 예측에 기초하여 효율적으로 캐시 라인을 관리하는 시스템 및 방법 | |
US9652386B2 (en) | Management of memory array with magnetic random access memory (MRAM) | |
CN104268094B (zh) | 一种优化的闪存地址映射方法 | |
US9104327B2 (en) | Fast translation indicator to reduce secondary address table checks in a memory device | |
CN103425600B (zh) | 一种固态盘闪存转换层中的地址映射方法 | |
US10740251B2 (en) | Hybrid drive translation layer | |
CN102981963B (zh) | 一种固态盘的闪存转换层的实现方法 | |
US20100115175A9 (en) | Method of managing a large array of non-volatile memories | |
US20130124794A1 (en) | Logical to physical address mapping in storage systems comprising solid state memory devices | |
US20070094440A1 (en) | Enhanced data access in a storage device | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN104166634A (zh) | 一种固态盘系统中的映射表缓存管理方法 | |
US20120297140A1 (en) | Expandable data cache | |
KR20130017748A (ko) | 메모리 컨트롤러 및 이의 데이터 관리방법 | |
KR20070075640A (ko) | 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 | |
KR101297442B1 (ko) | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 | |
US20200341909A1 (en) | Cache data location system | |
CN111580754B (zh) | 一种写友好的闪存固态盘缓存管理方法 | |
CN109478164A (zh) | 用于存储用于高速缓存条目传输的高速缓存位置信息的系统和方法 | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
Lin et al. | Improving flash translation layer performance by supporting large superblocks | |
Kim et al. | Clustered page-level mapping for flash memory-based storage devices | |
KR101353967B1 (ko) | 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: China Hung Hom Kowloon Hongkong Applicant after: The Hong Kong Polytechnic University Address before: The Hongkong Special Administrative Region Chinese Tsuen 603-609 Castle Peak Road, Jiangnan industrial floor A block 15 building Applicant before: The Hong Kong Polytechnic University |
|
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141015 |
|
WD01 | Invention patent application deemed withdrawn after publication |