一种高性能的混合FTL方法及固态存储设备与流程

文档序号:29157851发布日期:2022-03-08 22:05阅读:128来源:国知局
pba存储对应k个l2p中第一个l2p的datapba,且无对应的ftl下级表,直接实现对应k个l2p的大颗粒映射。7.更进一步,本发明所述高性能的混合ftl方法中的mappingsize为固定值,其可选的配置值包括4k或8k或16k或32k或64k或128k或256kbytes。8.本发明所述高性能的固态存储设备,包括控制器和非易失性存储器;所述控制器为带有嵌入式cpu的控制器,运行ftl;所述非易失性存储器包括nor或nand或mram或pcm;所述ftl采用前述高性能的混合ftl方法保存主机读写的用户数据以及其在非易失性存储器中的实际存储位置的映射关系。9.进一步,本发明所述高性能的固态存储设备,所述ftl上级表和ftl下级表均在非易失性存储器中存储。10.进一步,本发明所述高性能的固态存储设备,所述ftl上级表为invalid_pmt或者block_pmt时,该固态存储设备不再存储该pmt对应的ftl下级表全部l2p,对应映射信息将由ftl上级表的pmt提供和存储;所述ftl上级表为valid_pmt时,该固态存储设备需要同时存储该pmt和该pmt对应的ftl下级表的全部l2p。11.更进一步,本发明所述高性能的固态存储设备,在执行主机读操作时根据ftl上级表检索的结果,确定是否跳过ftl下级表检索,并执行非易失性存储器读操作;具体操作为:invalid_pmt:直接填充读buf,读操作完成;block_pmt:基于pmt的信息直接生成datapba,执行非易失性存储器读操作;valid_pmt:继续执行ftl下级表检索,读取对应l2p的datapba,执行非易失性存储器读操作。12.更进一步,本发明所述高性能的固态存储设备,在执行主机写操作时在完成非易失性存储器写操作的同时,根据pmt内存储的l2p是否连续,标识不同的ftl上级表信息,并确定是否回收对应ftl下级表的资源;具体操作为:连续:标识block_pmt,仅更新并保存ftl上级表记录信息,取消并回收对应ftl下级表的资源;不连续:标识valid_pmt,采用逐个对应l2p更新datapba的方式处理。13.更进一步,本发明所述高性能的固态存储设备,在执行gc(garbagecollection垃圾回收)操作时,可以采取策略性连续存储,优化固态存储设备的数据和ftl的存储结构。14.更进一步,本发明所述高性能的固态存储设备,在执行主机trim(sata协议)或datasetmanagementcommand(nvme协议)操作时根据pmt内l2p是否连续,标识不同的ftl上级表信息,并确定是否回收对应ftl下级表的资源;具体操作为:连续:标识invalid_pmt,仅更新并保存ftl上级表记录信息,取消并回收对应ftl下级表的资源;不连续:标识valid_pmt,采用逐个对应l2p更新为“无效”的方式处理。15.更进一步,本发明所述高性能的固态存储设备,所述固态存储设备上电时,ftl上级表会被优先读取;所述ftl下级表则根据主机读写和算法设计需要,在使用前被加载。16.本发明所述高性能的混合ftl方法及固态存储设备,采用了ftl多级架构管理;在提供了基于mappingsize切分数据块的ftl下级表的原小颗粒映射能力的基础上,通过在其ftl上级表中增加大颗粒的映射能力,实现多阶混合映射能力,优化并减少ftl的表项存储资源占用和处理开销。本发明所述的高性能混合ftl方法的固态存储设备,同时兼顾小颗粒和大颗粒读写处理优化,从而确保主机的小颗粒随机读写数据访问和大颗粒顺序读写数据访问均能获得极大的存储性能提升。附图说明17.图1为本发明所述ftl下级表示意图;图2为本发明所述ftl上级表示意图;图3为本发明实施例所述ftl上级表示意图;图4为本发明实施例所述固态存储设备读操作处理流程示意图;图5为本发明实施例所述固态存储设备写操作处理流程示意图;图6为本发明实施例所述固态存储设备trim或datasetmanagementcommand操作处理流程示意图。具体实施方式18.下面通过附图及实施例对本发明所述高性能的混合ftl方法及固态存储设备进行详细说明。19.实施例一本公开实施例公开一种高性能的混合ftl方法,ftl设定固定的mappingsize作为每个lpn的大小,用于切分用户数据块;所述mappingsize包括4k或8k或16k或32k或64k或128k或256kbytes,在具体应用中可根据需求进行选择。20.所述ftl采用多级架构管理;所述多级架构管理的架构为2级ftl架构或3级ftl架构;所述2级ftl架构包括ftl上级表、ftl下级表;所述3级ftl架构包括ftl索引表、ftl上级表和ftl下级表;所述ftl下级表的每个l2p记录每个lpn实际存储的datapba信息,实现单个l2p的小颗粒映射,如图1所示;所述ftl上级表以每k个l2p为块大小作为一个pmt,记录这些l2p信息在非易失性存储器中存储的tablepba信息;所述k为2的幂次方,通常为29或者212,如图2所示;图中pmt的个数t=(n+(k-1))/k,其最后一个pmt包括的有效l2p个数可能少于k个。21.在本公开实施例中,所述pmt支持3种方式的tablepba信息,分别为invalid_pmt、valid_pmt和block_pmt,如图3所示;所述invalid_pmt的pmt对应的k个l2p均处于无效状态;pmt的tablepba仅存储“无效标识符”,无对应的ftl下级表,直接实现对应k个l2p的大颗粒无效映射;所述valid_pmt的pmt对应的k个l2p中至少有一个有效;pmt的tablepba存储对应k个l2p在非易失性存储器中存储的pba数据;而datapba则存储在ftl下级表的对应l2p中;所述block_pmt的pmt对应的k个l2p全部有效,并且其datapba连续;pmt的tablepba存储对应k个l2p中第一个l2p的datapba,且无对应的ftl下级表,直接实现对应k个l2p的大颗粒映射。22.实施例二在实施例一的基础上,本公开实施例公开一种高性能的固态存储设备,所述固态存储设备为ssd,其包括控制器、nand,以及可选的dram。23.在本公开实施例中,所述固态存储设备的控制器为带有嵌入式cpu,运行ftl;所述的ftl采用实施例一所述的高性能的混合ftl方法。所述固态存储设备采用2级的ftl(flashtranslationlayer)实现主机读写的用户数据至nand中实际存储位置的映射关系。24.本公开实施例中所述固态存储设备的ftl使用固定的mappingsize作为每个lpn的大小,其mappingsize实际为4kbytes。25.本公开实施例中所述固态存储设备的ftl下级表管理和存储每4kbytes用户数据在nand中存储位置的l2p信息。所述l2p实际存储的数据为datapba数据。26.本公开实施例中所述固态存储设备的ftl上级表管理和存储每512bytes的多个l2p信息在nand中存储位置的pmt信息。所述pmt实际存储的数据为tablepba数据。27.本公开实施例中所述固态存储设备的ftl上级表中的pmt支持3种方式的tablepba信息,具体包括:invalid_pmt:该pmt对应的全部l2p均处于无效状态。pmt仅存储“无效标识符”,无对应的ftl下级表。valid_pmt:该pmt对应的k个l2p中至少有一个有效;k的值在本实施例中为128。pmt存储对应k个l2p在非易失性存储器中存储的pba数据。而datapba则存储在ftl下级表的对应l2p中。block_pmt:该pmt对应的k个l2p全部有效,并且其datapba连续。pmt存储对应k个l2p中第一个l2p的datapba,且无对应的ftl下级表。28.需要说明的是,本公开实施例中所述固态存储设备的ftl上级表为invalid_pmt或者block_pmt,该固态存储设备不再存储该pmt对应的ftl下级表全部l2p,并可释放其在nand中的存储资源。其对应的映射信息将会直接通过ftl上级表的pmt存储和提供。29.在本公开实施例中,所述固态存储设备的ftl上级表和ftl下级表均会在非易失性存储器中保存。30.本公开实施例中所述固态存储设备的ftl上级表为invalid_pmt或者block_pmt,该固态存储设备不再存储该pmt对应的ftl下级表全部l2p,并可释放其在nand中的存储资源。其对应的映射信息将会直接通过ftl上级表的pmt提供和存储。31.需要说明的是,本公开实施例中所述固态存储设备的ftl上级表为valid_pmt时,该固态存储设备需要同时存储该pmt和该pmt对应的ftl下级表的全部l2p。32.本公开实施例中所述固态存储设备在上电时,ftl上级表会被优先读取,并常驻dram、sram或nandpslccacheblk。ftl下级表则根据主机读写的需要,按需在使用前被加载至dram或sram中。33.如图4所示,本公开实施例中所述固态存储设备在执行主机读操作会根据ftl上级表检索的结果,确定是否跳过ftl下级表检索,并执行非易失性存储器读操作;其具体操作为:invalid_pmt:直接填充读buf,读操作完成。34.block_pmt:基于pmt的信息直接生成datapba,执行非易失性存储器读操作。35.valid_pmt:继续执行ftl下级表检索,读取对应l2p的datapba,执行非易失性存储器读操作。36.如图5所示,本公开实施例中所述固态存储设备在执行主机写操作时会在完成非易失性存储器写操作的同时,根据pmt内存储的l2p是否连续,标识不同的ftl上级表信息,并确定是否回收对应ftl下级表的资源;其具体操作为:连续:标识block_pmt,仅更新并保存ftl上级表记录信息,取消并回收对应ftl下级表的资源。37.不连续:标识valid_pmt,采用逐个对应l2p更新datapba的方式处理。ftl上级表和下级表均需要在非易失性存储器存储。38.本公开实施例中所述固态存储设备在执行gc(garbagecollection垃圾回收)操作时会采取策略性连续存储,优化固态存储设备的数据和ftl的存储结构。39.如图6所示,本公开实施例中所述固态存储设备在执行主机trim(sata协议)或datasetmanagementcommand(nvme协议)操作时会根据pmt内l2p是否连续,标识不同的ftl上级表信息,并确定是否回收对应ftl下级表的资源;其具体操作为:连续:标识invalid_pmt,仅更新并保存ftl上级表记录信息,取消并回收对应ftl下级表的资源。40.不连续:标识valid_pmt,采用逐个对应l2p更新为“无效”的方式处理。ftl上级表和下级表均需要在非易失性存储器存储。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1