一种优化的闪存地址映射方法

文档序号:6627875阅读:213来源:国知局
一种优化的闪存地址映射方法【专利摘要】本发明公开了一种优化的闪存地址映射方法,在基于需求的页级地址映射DFTL方法中,内存中维护了一个全局转换页映射表GTD,同时,在内存中使用地址映射缓存CMT,以缓存在转换页中频繁访问的地址映射项,其中,缓存的数据单元为整个地址转换页。本发明统一了闪存和缓存中的地址映射信息的粒度,充分利用数据的时间局部性和空间局部性,如短时间内频繁访问局部数据,只需访问页级地址映射缓存而不需要访问闪存,同时,当某个转换页需要被置换出缓存时,所有更新的地址映射信息能够一并更新到闪存中,提高了映射信息的利用率。【专利说明】一种优化的闪存地址映射方法【
技术领域
】[0001]本发明涉及闪存【
技术领域
】,具体涉及一种优化的闪存地址映射方法。【
背景技术
】[0002]随着闪存技术的发展与成熟,闪存存储器已广泛应用于各类存储系统,如U盘、智能手机、平板电脑、数字存储卡、固态硬盘等。与传统磁盘存储器相比,闪存具有读写性能高、非易失性、低功耗、高密度和良好的抗震性等优势。因此,闪存已成为移动嵌入式设备的存储介质。然而,闪存也存在一些局限,如“异地更新”和有限的块擦写次数。为了解决这些不足并使闪存像传统块设备一样工作,闪存存储系统中出现了一种称为闪存转换层(flashtranslat1nlayer,简称FTL)的嵌入式软件,用于处理外部I/O请求及管理闪存。其中,地址映射作为一个重要组件,负责将来自于文件系统的逻辑地址转换为闪存中的物理地址。因此,如何有效地执行地址映射并管理映射信息,成为一个关键问题。[0003]NAND是一种比硬盘驱动器更好的存储方案,这在不超过4GB的低容量应用中表现得犹为明显。随着人们持续追求功耗更低、重量更轻和性能更佳的产品。闪存芯片主要由物理块组成,每个物理块分为一定数量的物理页:块是擦写操作的基本单元,而页是读写操作的基本单元。一个页包含了数据域和备用域,备用域又称为00B(outofband)。OOB—般用于存储错误纠正码(ECC)和一些自定义信息。[0004]虽然NAND闪存具有诸多优势,但也存在一些局限:首先是“异地更新”,当数据页被写入数据后无法再次更新,直到所属的整个块被擦除。因此,对同一逻辑地址的不同更新数据将被写入不同的物理页,其中,存放最新数据的页称为有效页,而之前旧数据页称为无效页。因此,闪存中需要地址映射方法转换逻辑地址到最新数据所在的物理地址;同时,由于数据页不断消耗,需要垃圾回收机制去拷贝有效页并擦除无效数据块,以重新获得空数据块。[0005]其次是有限擦写次数的限制,对于单级单元(SLC)NAND闪存,每个块的擦写次数大约是100000次,而对多级单元(MLC)NAND闪存,擦写次数大约只有10000次。如果块实际擦写次数大于限制则可能成为坏块,无法再被使用。因此,需要均匀损耗机制以平衡不同块的热度,并选取合适的数据块进行垃圾回收。[0006]为了弥补上述缺陷,NAND闪存中使用闪存转换层(FTL)管理闪存。闪存转换层位于文件系统和闪存驱动层之间,对用户完全透明,并为上层文件系统提供块设备的操作接□。[0007]地址映射作为闪存转换层的重要组件,负责将来自文件系统的逻辑地址转换为闪存中的物理地址。地址映射方法主要分为3类:页级映射、块级映射和混合映射。[0008]在页级地址映射中,映射信息粒度与数据读写单元一致,都为数据页,因此数据请求可以写入闪存的任何数据页中。同时,页级地址映射能够延迟垃圾回收触发的时间,也就是说,直到闪存存储接近饱和才触发垃圾回收,因此能够获得更优的系统性能。然而页级地址映射方法需要维护庞大的页级地址映射表,在资源受限的嵌入式系统中难以实现。块级地址映射的映射粒度为数据块,每个数据请求的逻辑地址分为块号和块内偏移量,每个逻辑块被分配一个或多个物理块,然而由于“异地更新”的限制,已存储数据的数据页无法直接更新,因此,块级地址映射存在更新冲突,可能触发大量的垃圾回收,系统性能较低。在混合映射方法中,物理块被分为数据块(primaryblock)和日志块(logblock),数据块中使用块级地址映射映射首次写入的数据,而日志块利用页级地址映射存储更新数据。虽然混合映射权衡了系统性能和内存开销,但是在垃圾回收机制中需要将数据块和日志块进行合并,可能产生大量的性能开销,因此,混合映射方法也没有很好地解决性能和内存开销的问题。[0009]近年来提出了基于需求的页级地址映射(DFTL),一方面利用页级地址映射方法提供高效的地址转换性能,另一方面,通过地址映射缓存机制解决了页级地址映射表产生的大量内存开销问题。[0010]DFTL中的物理块被逻辑地分为两类:数据块(datablock)和地址转换块(translat1nblock)。数据块用于存储数据,转换块用于保存页级地址映射表。数据块和转换块共享闪存的物理空间。每个地址转换块中的页称为地址转换页(translat1npage),每个页包含了一定数量的逻辑页号到物理页号的页级地址映射项。为定位到最新的转换页,内存中维护了一个全局转换页映射表(globaltranslat1ndirectory,简称GTD)。同时,在内存中使用地址映射缓存(cachedmappingtable,简称CMT),以缓存在转换页中频繁访问的地址映射项。.地址映射缓存使用LRU算法对地址映射项进行置换。由于内存中只维护GTD和CMT,内存开销显著降低。同时,利用数据请求的时间局部性,保持了高效的地址映射性能。[0011]在基于需求的页级映射方法中,对地址转换页的操作将产生额外的性能开销,开销主要来源于两个方面:首先,从闪存的地址转换页中提取地址映射项到缓存中将产生转换页的读操作,当缓存已满需要进行置换时,置换的更新映射项需要先读取对应的转换页,并在更新后写回闪存。因此,缓存未命中时,最好的情况产生I个读操作,最坏情况会产生2个读操作和I个写操作。如图1所示,假设数据请求的逻辑地址是28,由于缓存未命中,首先访问GTD获得最新地址转换页的地址,然后从内存中读取该页(TPl),定位到对应的地址映射项(28,56),最后将其放入地址映射缓存中。当CMT置换出地址映射项(112,84)时,由于该映射项在缓存中被更新过,需要首先根据GTD获得闪存中的地址转换页(TP32),读取该页后更新对应的地址映射项,最后写回到新的转换页中。可以看到,地址映射缓存会带来很多地址转换页读写操作,这些操作穿插在处理数据请求的过程中,影响系统性能。[0012]另一方面,性能开销来源于垃圾回收过程。当数据块被垃圾回收时,所有有效页对应的转换页都需要更新、如图2所示,在回收块中有4个有效页(PPN从10到13),每个页对应于不同的转换页(分别为TP97,TP100,ΤΡ101,ΤΡ103)、在拷贝有效页后,所有对应的地址转换页也需要被读取、更新、写回到闪存中(写回后分别为ΤΡ128,ΤΡ129,ΤΡ130,ΤΡ131)。值得注意的是,实际更新的地址映射信息只有4项,却造成对应4个转换页的更新操作。因此,当回收块中存在很多有效数据页时,垃圾回收将产生大量的转换页更新开销。【
发明内容】[0013]本发明要解决的技术问题是:总的来说,基于需求的页级地址映射方法存在两个主要问题,首先,地址映射缓存的映射信息利用率较低,在读取整个转换页后,只缓存其中一个地址映射项。对于连续读写,某个地址转换页可能被重复多次请求产生大量开销。其次,在处理写请求时,不同逻辑地址的数据被连续写入同一数据块中,在垃圾回收时将产生大量的转换页更新。针对上述问题,本文设计了一种优化的地址映射方法。[0014]本发明从基于需求的页级地址映射方法出发,以解决地址映射造成的额外性能开销问题。这部分开销主要来源于地址映射缓存以及闪存中的地址转换页。通过分析这两个来源,设计了一种基于转换页的缓存机制、闪存数据写入和垃圾回收的完整优化方法。[0015]本发明所采用的技术方案为:一种优化的闪存地址映射方法,在基于需求的页级地址映射(DFTL)方法中,内存中维护了一个全局转换页映射表(globaltranslat1ndirectory,简称GTD),同时,在内存中使用地址映射缓存(cachedmappingtable,简称CMT),以缓存在转换页中频繁访问的地址映射项,缓存的数据单元为整个地址转换页,统一了闪存和缓存中的地址映射信息的粒度,每个地址转换页包含了IMB地址空间的映射信息,如短时间内频繁访问局部数据,只需访问页级地址映射缓存而不需要访问闪存;同时,当某个转换页需要被置换出缓存时,所有更新的地址映射信息能够一并更新到闪存中,提高了映射信息的利用率。[0016]所述GTD也是一个页级地址映射表,负责定位闪存中的地址转换页,在读取地址转换页后,可获得实际的地址映射信息,且所述优化的闪存地址映射方法利用内存中的全局转换页映射表和页级地址映射缓存具有相同映射信息粒度,融合两者的访问过程,扩展了全局转换页映射表GTD,增加了缓存索引(cacheindex,简称Cl),从GTD中直接定位缓存中的转换页,使转换页映射表直接链接到页级映射缓存;当有逻辑地址请求时,首先根据请求的逻辑地址定位到全局转换页映射表的项,由于每一项的起始逻辑地址是固定的,因此,将逻辑地址除以每个转换页保存的地址映射项数目即能访问到转换页映射表中的项,该项维护了转换页在闪存中的物理地址以及缓存索引;如果缓存索引为-1,则表明该转换页尚未缓存,需要访问闪存获取地址映射信息;否则,根据缓存索引可直接访问缓存的地址映射页以获得请求的物理地址。[0017]通过本方法提出的新的地址映射访问方式,简化了地址映射的访问过程,将缓存中的连续或者哈希查找的方式变为直接访问,节约了缓存访问时间。[0018]所述优化的闪存地址映射方法使用最近最少使用算法(LRU)作为页级地址映射缓存的置换策略,其中,转换页的更新次数也是选择置换的依据之一,如果某个转换页在缓存中从未被更新过,它将被优先置换出缓存,因为这样的置换操作不会产生额外的转换页读写开销。利用缓存中的置换项对应的地址转换页的起始地址(startlogicaladdress,简称SLA)和全局转换页映射表(GTD),以定位闪存中实际存储的转换页地址,执行置换操作。在图3的例子中,当有个写请求W,49时,PAMC中的第13项转换页需要被置换。可以看到,置换时,所有4个修改后的映射信息能够一次写入地址转换页。[0019]为了进一步减少因地址映射信息更新带来的转换页开销,所述方法采用了基于转换页的数据聚集方法:数据写入以其逻辑地址对应的转换页作为指导,逻辑地址对应于同一转换页的数据将被写入相同的数据块,因此,垃圾回收时,数据块对应的转换页数量最多为常量1,由此产生的额外地址映射信息更新的开销被降至最低。[0020]为了实现数据聚集方法,所述优化的闪存地址映射方法继续扩展全局转换页映射表,在表中的每一项保存了可用数据页的物理地址(availablepagenumber,简称APN),其中,物理地址为-1代表该项尚未分配数据块,同时,使用空块池(freeblockpool,简称FBP)记录闪存中所有的空数据块,当有数据请求时,按需分配空数据块给全局转换页映射表,在垃圾回收中,擦写后的空块回收到空块池,数据聚集技术优化了数据块中的数据分布,即,每个数据块中数据的逻辑地址限定在对应转换页维护的地址空间范围内,由于地址相近的数据更容易被一起更新,该方法能够间接减少垃圾回收时有效页拷贝数量。[0021]在闪存初始阶段,所有空数据块属于空块池,全局转换页映射表中每项可用数据页地址都为未分配状态(-1),当有写数据请求时,根据上文提到的计算方法定位全局转换页映射表的项,如果项内的APN不为-1,则直接将数据写入到对应的数据页,随后更新APN为所分配数据块中的下一个可用数据页,如果数据块已满,则将该地址置为-1;否则,若该转换页尚未分配数据块,检查空块池中是否存在可用的空数据块,若存在则按需分配并记录第I个数据页的物理地址作为APN,否则调用垃圾回收获得新的空数据块。[0022]由于物理块根据存储数据类型被分为数据块和地址转换块,相对应地存在两种垃圾回收:数据块垃圾回收和转换块垃圾回收.在数据块的垃圾回收中,为了保证每个数据块在垃圾回收后只对应一个转换页,所述优化的闪存地址映射方法将基于转换页数据聚集方法复用在垃圾回收中,在地址映射中,数据请求的发起者为文件系统,而在垃圾回收中为垃圾回收器,两者具有相似的地址映射过程,因此方法可以复用,在数据块的垃圾回收过程中,当垃圾回收器需要拷贝一个有效页时,首先访问全局转换页映射以获得当前的可用数据页的物理地址(APN),如果可用数据页是存在的(非-1),则直接将有效页写入可用数据页;否则,如果当前分配的数据块已经用完,则使用交换块(swapblock)作为新分配的数据块存储有效页;当垃圾回收完成时,擦除后的空数据块作为新的交换块。[0023]为了平衡数据块的擦写次数延长闪存的耐久性,闪存中记录了每个数据块的擦写次数,全局转换页映射表中能够维护数据区域的热度信息,记录每个地址转换页对应连续逻辑空间的访问频率,对频繁访问的项在写指针请求分配时选择擦写次数少的“冷”块,而对不频繁访问的则分配擦写次数较多的“热”块;同样,在垃圾回收中,选择擦写次数较少且无效页较多的数据块作为回收块进行擦写;在闪存空闲时间里,可对冷、热数据块进行数据交换以平衡块间擦写次数。[0024]本发明有益效果:本发明统一了闪存和缓存中的地址映射信息的粒度,充分利用数据的时间局部性和空间局部性,如短时间内频繁访问局部数据,只需访问页级地址映射缓存而不需要访问闪存,同时,当某个转换页需要被置换出缓存时,所有更新的地址映射信息能够一并更新到闪存中,提高了映射信息的利用率。【专利附图】【附图说明】[0025]图1为地址映射缓存产生的开销;图2为垃圾回收时产生的转换页操(数据块回收时的有效页拷贝);图3为垃圾回收时产生的转换页操(数据块回收时地址转换页的更新)图4为页级地址映射缓;图5为基于转换页的数据聚集;图6为基于转换页的数据块垃圾回收;图7为转换块的垃圾回收;图8为实验中使用的仿真框架。【具体实施方式】[0026]下面根据说明书附图,结合具体实施例,对本发明进一步说明:一种优化的闪存地址映射方法,在基于需求的页级地址映射(DFTL)方法中,内存中维护了一个全局转换页映射表GTD,同时,在内存中使用地址映射缓存CMT,以缓存在转换页中频繁访问的地址映射项,缓存的数据单元为整个地址转换页,统一了闪存和缓存中的地址映射信息的粒度,每个地址转换页包含了IMB地址空间的映射信息,如短时间内频繁访问局部数据,只需访问页级地址映射缓存而不需要访问闪存;同时,当某个转换页需要被置换出缓存时,所有更新的地址映射信息能够一并更新到闪存中,提高了映射信息的利用率。[0027]所述GTD也是一个页级地址映射表,负责定位闪存中的地址转换页,在读取地址转换页后,可获得实际的地址映射信息,且所述优化的闪存地址映射方法利用内存中的全局转换页映射表和页级地址映射缓存具有相同映射信息粒度,融合两者的访问过程,扩展了全局转换页映射表GTD,增加了缓存索引(cacheindex,简称Cl),从GTD中直接定位缓存中的转换页,使转换页映射表直接链接到页级映射缓存;当有逻辑地址请求时,首先根据请求的逻辑地址定位到全局转换页映射表的项,由于每一项的起始逻辑地址是固定的,因此,将逻辑地址除以每个转换页保存的地址映射项数目即能访问到转换页映射表中的项,该项维护了转换页在闪存中的物理地址以及缓存索引;如果缓存索引为-1,则表明该转换页尚未缓存,需要访问闪存获取地址映射信息;否则,根据缓存索引可直接访问缓存的地址映射页以获得请求的物理地址。[0028]通过本方法提出的新的地址映射访问方式,简化了地址映射的访问过程,将缓存中的连续或者哈希查找的方式变为直接访问,节约了缓存访问时间。[0029]如图4所示,为页级地址映射缓存示例,假设每个转换页能够存储6个地址映射项,请求读数据的逻辑地址为36,首先,在全局转换页映射表中定位其映射信息项,通过计算36/6=6定位到映射表中的第6项,其转换页地址为94,缓存索引为11。由于缓存索引不为-1,可直接访问PAMC的第11项获得实际地址映射(36,134),从而得到对应逻辑地址36的物理地址是134。[0030]所述优化的闪存地址映射方法使用最近最少使用算法(LRU)作为页级地址映射缓存的置换策略,其中,转换页的更新次数也是选择置换的依据之一,如果某个转换页在缓存中从未被更新过,它将被优先置换出缓存,因为这样的置换操作不会产生额外的转换页读写开销。利用缓存中的置换项对应的地址转换页的起始地址(startlogicaladdress,简称SLA)和全局转换页映射表(GTD),以定位闪存中实际存储的转换页地址,执行置换操作。[0031]在图4的例子中,当有个写请求为(W,49)时,PAMC中的第13项转换页需要被置换,可以看到,置换时,所有4个修改后的映射信息能够一次写入地址转换页。[0032]为了进一步减少因地址映射信息更新带来的转换页开销,所述方法采用了基于转换页的数据聚集方法:数据写入以其逻辑地址对应的转换页作为指导,逻辑地址对应于同一转换页的数据将被写入相同的数据块,因此,垃圾回收时,数据块对应的转换页数量最多为常量1,由此产生的额外地址映射信息更新的开销被降至最低。[0033]为了实现数据聚集方法,所述优化的闪存地址映射方法继续扩展全局转换页映射表,在表中的每一项保存了可用数据页的物理地址(availablepagenumber,简称APN),其中,物理地址为-1代表该项尚未分配数据块,同时,使用空块池(freeblockpool,简称FBP)记录闪存中所有的空数据块,当有数据请求时,按需分配空数据块给全局转换页映射表,在垃圾回收中,擦写后的空块回收到空块池,数据聚集技术优化了数据块中的数据分布,即,每个数据块中数据的逻辑地址限定在对应转换页维护的地址空间范围内,由于地址相近的数据更容易被一起更新,该方法能够间接减少垃圾回收时有效页拷贝数量.在闪存初始阶段,所有空数据块属于空块池,全局转换页映射表中每项可用数据页地址都为未分配状态(-1),当有写数据请求时,根据上文提到的计算方法定位全局转换页映射表的项,如果项内的APN不为-1,则直接将数据写入到对应的数据页,随后更新APN为所分配数据块中的下一个可用数据页,如果数据块已满,则将该地址置为-1;否则,若该转换页尚未分配数据块,检查空块池中是否存在可用的空数据块,若存在则按需分配并记录第I个数据页的物理地址作为APN,否则调用垃圾回收获得新的空数据块。[0034]如图5所示,为数据聚集示例,假设每个块中包含4个物理页,每个转换页能保存6个地址映射项。对于逻辑地址36的写请求,首先计算其全局转换页映射表中的项为36/6=6,然后得到可用数据页的地址(APN)为22。因此,数据D能够直接写入到数据块5的数据页22中。写入后,将可用数据页地址更新为23。对于另一个逻辑地址为49的写请求,计算得到第8项的APN为-1,说明该转换页尚未分配数据块,因此从空块池获得一个空数据块,然后将数据E写入空块的第I个数据页(数据页32)中,最后,APN更新为下一个数据页地址33。可以看到,对于数据块5,根据数据聚集方法,对应的地址映射信息全部属于转换页TP48。这里,TP48已经在缓存中,因此可直接在缓存中更新地址映射信息。新的空块也只对应转换页TP65。这样,每个数据块最多只对应I个地址转换页,从而将转换页的更新开销降低至最少。[0035]由于物理块根据存储数据类型被分为数据块和地址转换块,相对应地存在两种垃圾回收:数据块垃圾回收和转换块垃圾回收.在数据块的垃圾回收中,为了保证每个数据块在垃圾回收后只对应一个转换页,所述优化的闪存地址映射方法将基于转换页数据聚集方法复用在垃圾回收中,在地址映射中,数据请求的发起者为文件系统,而在垃圾回收中为垃圾回收器,两者具有相似的地址映射过程,因此方法可以复用,在数据块的垃圾回收过程中,当垃圾回收器需要拷贝一个有效页时,首先访问全局转换页映射以获得当前的可用数据页的物理地址(APN),如果可用数据页是存在的(非-1),则直接将有效页写入可用数据页;否则,如果当前分配的数据块已经用完,则使用交换块(swapblock)作为新分配的数据块存储有效页;当垃圾回收完成时,擦除后的空数据块作为新的交换块。[0036]如图6所示为数据块垃圾回收的示例,选中的回收数据块中有4个有效数据页(Q,B,D,E),当拷贝有效页Q时,方法首先定位到对应的GTD项,获得APN为68,因此,Q可以直接拷贝到数据块23的数据页68中;拷贝后,APN从68更新到69。同理,对于数据B也可以拷贝到数据页69中。此时,数据块23已经写满,所以APN被置为-1。当下一个数据拷贝请求D到来时,分配交换块给GTD项,因此,D和E都写入交换块中,APN也更新为交换块中下一个可用的数据页地址。最终,,数据块23擦除后将成为新的交换块,为下一次垃圾回收服务。对地址转换块的垃圾回收,闪存中维护一个当前可用的地址转换页,相当于统一的写指针,因此,转换页将被按顺序写入到当前地址转换块中。当闪存中无可分配的地址转换块时将触发垃圾回收,当垃圾回收时,回收块中的有效转换页将拷贝到写指针指向的可用地址转换页。同时,如果地址转换页位于缓存,则直接从缓存写入当前转换块,减少了对有效转换页的读操作和将来缓存产生的转换页更新操作。最后,页级地址映射缓存的置换将相近热度的转换页写回相同的转换块,间接地降低垃圾回收时转换块中的有效页的数目,从而降低了转换页的更新开销。[0037]如图7所示为地址转换块的垃圾回收,选中回收的地址转换块包含ΤΡ0,TP2,TP4这3个地址转换页,这3个地址转换页被拷贝到当前地址转换块中(TPPN:146?148)。拷贝过程中,如果存在缓存,则直接从缓存写入当前地址转换块,拷贝后对应的GTD也同时更新,以确保能够定位到最新的地址转换页。[0038]为了平衡数据块的擦写次数延长闪存的耐久性,闪存中记录了每个数据块的擦写次数,全局转换页映射表中能够维护数据区域的热度信息,记录每个地址转换页对应连续逻辑空间的访问频率,对频繁访问的项在写指针请求分配时选择擦写次数少的“冷”块,而对不频繁访问的则分配擦写次数较多的“热”块;同样,在垃圾回收中,选择擦写次数较少且无效页较多的数据块作为回收块进行擦写;在闪存空闲时间里,可对冷、热数据块进行数据交换以平衡块间擦写次数。[0039]在实施中,使用一系列的基准数据集仿真评估本文方法的有效性.本文将提出的方法(简称0ΑΤ)和一种代表性的基于需求的页级映射方法(DFTL)进行了实验比较。实验中使用4个性能度量指标:缓存命中率、转换页操作数、系统响应时间和块擦除次数。[0040]如图8所示为实验仿真平台框架,其中,DiskMon为磁盘驱动数据跟踪器,收集访问磁盘的I/O数据请求;DiskSim是一个广泛用于工业界的成熟磁盘仿真框架;FlashSim作为DiskSim的一个扩展组件,用于仿真闪存芯片的管理方法和基本操作。在仿真实验中,本实验在FlashSim中实现了DFTL和本文的地址映射方法,配置了一个32GB的NAND闪存存储系统。实验采用实际I/O数据请求研究不同地址映射方法对性能的影响。实验中,使用一系列基准数据集仿真评估本文方法,证明文本方法能够显著减少转换页操作并提升了系统性能。【权利要求】1.一种优化的闪存地址映射方法,在基于需求的页级地址映射DFTL方法中,内存中维护了一个全局转换页映射表GTD,同时,在内存中使用地址映射缓存CMT,以缓存在转换页中频繁访问的地址映射项,其特征在于:缓存的数据单元为整个地址转换页。2.根据权利要求1所述一种优化的闪存地址映射方法,其特征在于:全局转换页映射表GTD也是一个页级地址映射表,负责定位闪存中的地址转换页,在读取地址转换页后,可获得实际的地址映射信息,且所述优化的闪存地址映射方法利用内存中的全局转换页映射表和页级地址映射缓存具有相同映射信息粒度,融合两者的访问过程,扩展了全局转换页映射表GTD,增加了缓存索引Cl,从全局转换页映射表GTD中直接定位缓存中的转换页,使转换页映射表直接链接到页级映射缓存;当有逻辑地址请求时,首先根据请求的逻辑地址定位到全局转换页映射表的项,由于每一项的起始逻辑地址是固定的,因此,将逻辑地址除以每个转换页保存的地址映射项数目即能访问到转换页映射表中的项,该项维护了转换页在闪存中的物理地址以及缓存索引;如果缓存索引为-1,则表明该转换页尚未缓存,需要访问闪存获取地址映射信息;否则,根据缓存索引可直接访问缓存的地址映射页以获得请求的物理地址。3.根据权利要求1或2所述一种优化的闪存地址映射方法,其特征在于:所述优化的闪存地址映射方法使用最近最少使用算法LRU作为页级地址映射缓存的置换策略,其中,转换页的更新次数也是选择置换的依据之一,如果某个转换页在缓存中从未被更新过,它将被优先置换出缓存,利用缓存中的置换项对应的地址转换页的起始地址SLA和全局转换页映射表GTD,以定位闪存中实际存储的转换页地址,执行置换操作。4.根据权利要求3所述的一种优化的闪存地址映射方法,其特征在于,所述方法采用了基于转换页的数据聚集方法:数据写入以其逻辑地址对应的转换页作为指导,逻辑地址对应于同一转换页的数据将被写入相同的数据块。5.根据权利要求4所述的一种优化的闪存地址映射方法,其特征在于:为了实现数据聚集方法,所述优化的闪存地址映射方法继续扩展全局转换页映射表,在表中的每一项保存了可用数据页的物理地址APN,其中,物理地址为-1代表该项尚未分配数据块,同时,使用空块池FBP记录闪存中所有的空数据块,当有数据请求时,按需分配空数据块给全局转换页映射表,在垃圾回收中,擦写后的空块回收到空块池;在闪存初始阶段,所有空数据块属于空块池,全局转换页映射表中每项可用数据页地址都为未分配状态,当有写数据请求时,根据上文提到的计算方法定位全局转换页映射表的项,如果项内的APN不为-1,则直接将数据写入到对应的数据页,随后更新APN为所分配数据块中的下一个可用数据页,如果数据块已满,则将该地址置为-1;否则,若该转换页尚未分配数据块,检查空块池中是否存在可用的空数据块,若存在则按需分配并记录第I个数据页的物理地址作为APN,否则调用垃圾回收获得新的空数据块。6.根据权利要求5所述的一种优化的闪存地址映射方法,其特征在于:所述优化的闪存地址映射方法将基于转换页数据聚集方法复用在垃圾回收中,在数据块的垃圾回收过程中,当垃圾回收器需要拷贝一个有效页时,首先访问全局转换页映射以获得当前的可用数据页的物理地址APN,如果可用数据页是存在的,则直接将有效页写入可用数据页;否则,如果当前分配的数据块已经用完,则使用交换块作为新分配的数据块存储有效页;当垃圾回收完成时,擦除后的空数据块作为新的交换块。7.根据权利要求6所述的一种优化的闪存地址映射方法,其特征在于:选择擦写次数较少且无效页较多的数据块作为回收块进行擦写;在闪存空闲时间里,对冷、热数据块进行数据交换以平衡块间擦写次数。【文档编号】G06F12/02GK104268094SQ201410488749【公开日】2015年1月7日申请日期:2014年9月23日优先权日:2014年9月23日【发明者】杨晋博,尹艳艳,张新玲申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1