一种基于大容量固态存储的地址映射方法及装置制造方法及图纸

技术编号:12627586 阅读:99 留言:0更新日期:2016-01-01 03:11
本发明专利技术提供一种基于大容量固态存储的地址映射方法,其特征在于,包括:获取用于将数据写入固态硬盘的写命令,所述写命令携带待写入数据及所述待写入数据的逻辑区块地址;根据所述全局2级映射表,查询所述逻辑区块地址所对应的主存中的所述3级映射表;如果所述主存中不存在所述逻辑区块地址所对应的3级映射表,则根据所述全局2级映射表索引所述固态硬盘中的3级映射表中,将所述逻辑区块地址所对应的所述固态硬盘中的3级映射表读出并存储到所述主存中;控制固态硬盘控制器为所述逻辑区块地址分配物理页号,并将所述物理页号存储在所述主存中所述逻辑区块地址所对应的3级映射表中,将所述待写入数据写入所述物理页号。

【技术实现步骤摘要】

本专利技术涉及电子通信
,尤其涉及一种一种基于大容量固态存储的地址映射方法及装置
技术介绍
存储领域常用的数据载体是机械硬盘和固态硬盘(SSD),固态硬盘具有体积小,能耗低,抗干扰能力强,寻址时间极小,每秒进行读写操作的次数(1PS)高等特点,相较于传统磁盘,flash等固态硬盘存储可以做到微秒级的的延迟,而传统磁盘智能做到毫秒级延迟。但是,由于flash等固态硬盘本身(I)修改数据不能直接在原数据上重写,导致非定点更新;(2)数据读写的基本单位是页,而擦除的基本单位是块;(3)由于寿命问题,每个擦除块只能被擦除有限的次数等固有特性,所以基于flash等固态硬盘的存储系统,需要模拟读写机械硬盘的传统块设备的行为,对系统屏蔽固态驱动器的特性。闪存转换层(FTL)算法,其实就是一种逻辑区块地址(LBA)到物理页号(PPN)的映射。当文件系统发送指令要写入或者更新一个特定的逻辑页,闪存转换层(FTL)实际上就是把数据写入到一个不同的空闲物理页并更新映射表,并把这个页上包含的旧数据置为无效。正是因为闪存转换层(FTL)的存在,操作系统才能把当成硬盘驱动器那样的操作,因此,闪存转换层(FTL)算法的性能也就直接影响flash等固态硬盘的性能表现。早期的flash等固态硬盘容量较小,每个芯片的页数有限,所述小粒度的页级映射策略,是一种高效灵活的映射方法,可以把任何一个逻辑页映射到任意的物理页,每个映射关系对应一个映射条目。但是由于映射的粒度小,当flash等固态硬盘容量较大时,需要消耗大量的内存来存储映射表信息,不适宜大容量的固态存储系统。使用块级映射地址的转换,通过地址映射将逻辑块号转化成物理块号,根据逻辑地址中的块号偏移将数据写入物理块中具有相同偏移的物理页。由于采用粗粒度的映射,映射表显著减少。但是假如N个页面组成一个块,跟基本的页映射算法相比,块映射的映射表数量降低为原来的1/N,使得整个映射表能够完全存储在主存RAM中。块级映射方案中,替代块的空间利用率很低,造成存储空间的浪费;另一方面,当进行flash等固态硬盘的擦除操作时,需要大量的数据擦除和歉意操作,系统运行一段时间需要频繁的垃圾回收,造成系统的性能抖动。
技术实现思路
本专利技术实施例提供一种基于大容量固态存储的地址映射方法及装置,通过根据将要被读或写入的数据的逻辑区块地址,在2级映射表中查找所述逻辑区块地址对应的3级映射表,从所述3级映射表中读出所述数据或者在为所述逻辑区块地址分配的物理页号中写入所述数据的多级顺序映射方案,由于在2级映射表中仅存储3级映射表的索引,而且只有在主存中的3级映射表没有存储所述待读或待写入数据时,才将固态硬盘中的所述逻辑区块地址所对应的3级映射表写入主存,从而解决了在大容量存储的情形下页级映射由于映射粒度小需要消耗大量主存存储空间的问题,也避免了块级映射进行块操作时涉及数据较多导致的性能不稳定问题,从而达到了简化映射关系以减少主存存储空间的消耗并且维持性能稳定的效果。第一方面提供一种基于大容量固态存储的地址映射方法,其特征在于,包括:获取用于将数据写入固态硬盘的写命令,所述写命令携带待写入数据及所述待写入数据的逻辑区块地址;根据所述全局2级映射表,查询所述逻辑区块地址所对应的主存中的所述3级映射表,所述全局2级映射表用于索引所述主存中3级映射表和固态硬盘中的3级映射表,所述主存中3级映射表和固态硬盘中的3级映射表用于存储所述逻辑区块地址及与所述逻辑区块地址对应的物理页号的映射关系;如果所述主存中不存在所述逻辑区块地址所对应的3级映射表,则根据所述全局2级映射表索引所述固态硬盘中的3级映射表中,将所述逻辑区块地址所对应的所述固态硬盘中的3级映射表读出并存储到所述主存中;控制固态硬盘控制器为所述逻辑区块地址分配物理页号,并将所述物理页号存储在所述主存中所述逻辑区块地址所对应的3级映射表中;在所述主存中所述逻辑区块地址所对应的3级映射表中,将待写入数据写入所述物理页号所对应的存储空间。在第一方面第一种可能的实现方式中,在所述如果所述主存中不存在所述逻辑区块地址所对应的3级映射表,则根据所述全局2级映射表索引所述固态硬盘中的3级映射表中,将所述逻辑区块地址所对应的所述固态硬盘中的3级映射表读出并存储到所述主存中之前,其特征在于,还包括:判断所述主存中存储所述3级映射表的空间是否到达预设阈值,在达到所述预设阈值的情况下,则根据预设缓存规则将冷数据从所述主存移出并写入到所述固态硬盘中,以为将所述固态硬盘中的逻辑区块地址所对应的3级映射表写入所述主存提供存储空间。结合第一方面或第一方面第一种可能的实现方式,在第二种可能的实现方式中,在所述控制固态硬盘控制器为所述逻辑区块地址分配物理页号,并将所述物理页号存储在所述主存中所述逻辑区块地址所对应的3级映射表中之后,还包括:将所述物理页号写入所述固态硬盘中;或,将所述逻辑区块地址与所述物理页号写入主存中后,将所述物理页号写入所述固态硬盘中。结合第一方面第二种可能的实现方式,在第三种可能的实现方式中,在所述将所述物理页号写入所述固态硬盘中之后,还包括:将所述逻辑区块地址与所述物理页号在所述2级映射表与I级映射表中进行更新。结合第一方面至第一方面第三种可能的实现方式,在第四种可能的实现方式中,在所述如果所述主存中不存在所述逻辑区块地址所对应的3级映射表,则根据所述全局2级映射表索引所述固态硬盘中的3级映射表中,将所述逻辑区块地址所对应的所述固态硬盘中的3级映射表读出并存储到所述主存中之后,还包括:将所述3级映射表中的所述逻辑区块地址所对应的计数器加一;在所述控制固态硬盘控制器为所述逻辑区块地址分配物理页号,并将所述物理页号存储在所述主存中所述逻辑区块地址所对应的3级映射表中之后,对所述三级映射表中的所述逻辑区块地址所对应的计数器减一,以确认所述待写入数据的所述逻辑区块地址获得了对应的物理页号。第二方面提供一种一种基于大容量固态存储的地址映射方法,其特征在于,包括:获取用于读固态硬盘中数据的读命令,所述读命令携带待写入数据的逻辑区块地址;在主存中通过全局2级映射表,查询所述主存中3级映射表中存储的所述逻辑区块地址所对应的物理页号,所述全局2级映射表用于索引所述主存中的3级映射表和固态硬盘中的3级映射表;如果所述主存中的所述3级映射表中未存储所述逻辑区块地址所对应的物理页号,则根据所述全局2级映射表索引所述固态硬盘中的所述3级映射表,将所述固态硬盘中的所述3级映射表中存储的所述逻辑区块地址及与所述逻辑区块地址对应的物理页号读出;从所述物理页上读取所述数据。第三方面提供一种基于大容量固态存储的地址映射方法,其特征在于,包括:获取用于读或写固态硬盘中数据的命令,所述命令包括读命令或写命令;判断所述命令是读命令或写命令;如果所述命令是读命令,所述读命令携带逻辑区块地址,在主存中通过全局2级映射表,查询所述主存中3级映射表中存储的所述逻辑区块地址所对应的物理页号,所述全局2级映射表用于索引所述主存中的3级映射表和固态硬盘中的3级映射表;如果所述主存中的所述3级映射表中未存储所述逻辑区块地址所对应的物理页号,则根据所述全局2级映射表索引所述固态硬盘中的所述3级映射表,将所述固态硬本文档来自技高网
...
一种基于大容量固态存储的地址映射方法及装置

【技术保护点】
一种基于大容量固态存储的地址映射方法,其特征在于,包括:获取用于将数据写入固态硬盘的写命令,所述写命令携带待写入数据及所述待写入数据的逻辑区块地址;根据全局2级映射表,查询所述逻辑区块地址所对应的主存中的3级映射表,所述全局2级映射表用于索引所述主存中3级映射表和固态硬盘中的3级映射表,所述主存中3级映射表和固态硬盘中的3级映射表用于存储所述逻辑区块地址及与所述逻辑区块地址对应的物理页号的映射关系;如果所述主存中不存在所述逻辑区块地址所对应的3级映射表,则根据所述全局2级映射表索引所述固态硬盘中的3级映射表中,将所述逻辑区块地址所对应的所述固态硬盘中的3级映射表读出并存储到所述主存中;控制固态硬盘控制器为所述逻辑区块地址分配物理页号,并将所述物理页号存储在所述主存中所述逻辑区块地址所对应的3级映射表中;在所述主存中所述逻辑区块地址所对应的3级映射表中,将所述待写入数据写入所述物理页号所对应的存储空间。

【技术特征摘要】

【专利技术属性】
技术研发人员:许璐孙亚萍
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1