FTL地址映射的方法及装置与流程

文档序号:12597062阅读:594来源:国知局
FTL地址映射的方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种FTL地址映射的方法及装置。



背景技术:

闪存Flash-based SSD(Solid State Drive,固态硬盘)由主机接口、处理器、内存、通道控制器和一组闪存Flash芯片组成,Flash芯片内部包括多个晶元die,每个die包括多个分组plane,每个plane内部包括2048个块block,每个block由256个页组成。Flash芯片的读、写粒度为一个页,擦除粒度为一个块,读写特性为擦除后再写write-after-erase,即芯片上的数据不能原地更新。SSD对外呈现的读写空间,即供上层用户使用的空间,为逻辑地址空间,SSD内部读写空间由Flash颗粒组成,称为物理地址空间,逻辑地址空间与物理地址空间之间进行地址映射,Flash-based SSD内部包括一层FTL(Flash Translation Layer,地址转换层),负责逻辑地址空间到物理地址空间的映射,物理地址空间中还包括部分备用空间spare space,主要作为数据存储和FTL进行数据整合或垃圾回收的备用空间。目前根据FTL地址映射粒度,可以将映射方式分为三类:块级映射、页级映射和混合映射。页级映射为FTL允许一个逻辑页映射到任何一个物理页,即每个逻辑页维护一个映射表项,每个映射表项能够寻址任何一个物理页,这中映射方式映射灵活、空间利用率高存在,但是映射表很大、内存占用多。基于上述页级映射方式的不足,现有技术中采用了改进页级映射方法为:将逻辑地址空间划分为多个超级块superblock,superblock与物理地址空间之间通过块级映射实现,Superblock内部采用页级映射,将映射表存储在备用空间中,superblock内部映射时,首先将逻辑地址通过页映射到备用空间,从备用空间中的映射表确定物理地址,然后确定与逻辑地址对应的物理地址,即superblock内部采用三级页映射。这样,由于映射限定在Superblock内部并且存储在备用空间,可以减小映射表的大小, 减少占用的存储空间。

现有技术中至少存在如下技术特点:superblock内部采用了多级映射,所以每次主机读取数据时,需要进行多级查询才能从确定存储相应数据的物理地址,每次主机写数据时,需要多级元数据查询和写入,实现过程复杂,导致主机读写过程高延迟。



技术实现要素:

本发明的实施例提供一种FTL地址映射的方法及装置,能够解决现有技术中的页映射方法,实现过程复杂,导致读写过程高延迟的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,本发明的实施例提供一种FTL地址映射的方法,包括:

将逻辑地址空间划分为若干个逻辑地址段,每个所述逻辑地址段中所包括的逻辑块数量为预设值;

建立虚拟地址空间,所述虚拟地址空间包括虚拟地址段,所述虚拟地址段的数量大于或等于所述逻辑地址段的数量,各虚拟地址段中虚拟块的数量大于所述逻辑地址段中逻辑块的数量,所述虚拟地址段与所述逻辑地址段一一对应,所述虚拟地址段中的虚拟块与物理地址空间中的物理块一一映射;

建立所述逻辑地址段和与所述逻辑地址段对应的虚拟地址段之间的页级映射表,以及所述虚拟地址段中虚拟块和与所述虚拟地址段中虚拟块映射的物理地址空间中的物理块之间的块级映射表;

当主机读或写数据时,获取所述主机读或写数据对应的目标逻辑页地址;

根据所述目标逻辑页地址和所述页级映射表,确定目标虚拟页地址,所述目标虚拟页地址与所述目标逻辑页地址相互映射;

根据所述目标虚拟页地址和所述块级映射表,确定目标物理页地址,所述目标虚拟页地址所在虚拟块与所述目标逻辑页地址所在逻辑块相互映射。

结合第一方面,在第一方面的第一种可能的实现方式中,所述页级映射表存储与逻辑页地址映射的虚拟页地址,所述虚拟页地址包括虚拟页所属虚拟地址段的标识、虚拟页所属虚拟地址段中虚拟块的标识和块内偏移 量;

所述目标虚拟页地址包括所述目标虚拟页所属虚拟地址段的标识、所述目标虚拟页所属虚拟地址段中虚拟块的标识和目标块内偏移量。

结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述块级映射表存储与所述虚拟地址段中虚拟块映射的物理地址空间中物理块的地址,所述物理地址空间中物理块的地址包括所述物理地址空间中物理块的标识;

则所述根据所述目标虚拟页地址和所述块级映射表,确定目标物理页地址包括:

根据所述目标虚拟页所属虚拟地址段中虚拟块的标识和所述块级映射表,确定所述目标物理页所属物理块的标识;

根据所述目标物理页所属物理块的标识和所述目标块内偏移量确定所述目标物理页地址。

结合第一方面,在第一方面的第三种可能的实现方式中,所述虚拟地址段与所述逻辑地址段按照所述虚拟地址段标识顺序和所述逻辑地址段标识顺序一一对应。

结合第一方面,在第一方面的第四种可能的实现方式中,当主机写数据时,所述获取所述主机读或写数据对应的目标逻辑页地址包括:

根据所述主机发送的写数据请求获取所述主机读数据对应的目标逻辑页地址;

在所述根据所述目标虚拟页地址和所述块级映射表,确定目标物理页地址之后,所述方法还包括:

判断所述目标物理页地址当前是否存储其他数据;

当所述目标物理页地址当前未存储其他数据时,将所述主机写入的数据存储所述目标物理页地址;

当所述目标物理页地址当前存储其他数据时,在所述物理地址空间中选择当前未存储其他数据的物理页地址作为新目标物理页地址,与所述新目标物理页地址所属物理块相互映射的新目标虚拟块和所述目标虚拟页地址所在虚拟块属于同一个虚拟地址段;

将所述主机写入的数据存储所述新目标物理页地址。

结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,在所述将所述主机写入的数据存储所述新目标物理页地址之后,所述方法还包括:

根据所述新目标物理页地址和所述块级映射表确定新目标虚拟页地址,所述新目标虚拟页地址所在虚拟块与所述新目标逻辑页地址所在逻辑块相互映射;

根据所述新目标虚拟页地址更新所述页级映射表,使更新后的页级映射表中所述新目标虚拟页地址与所述目标逻辑页地址相互映射。

结合第一方面,在第一方面的第六种可能的实现方式中,当所述主机读数据时,所述获取所述主机读数据对应的目标逻辑页地址包括:

根据所述主机发送的读数据请求获取所述主机读数据对应的目标逻辑页地址;

在所述根据所述目标虚拟页地址和所述块级映射表,确定目标物理页地址之后,所述方法还包括:

向所述主机发送所述目标物理页地址中存储的数据。

第二方面,本发明的实施例提供一种FTL地址映射的装置,包括:

划分单元,用于将逻辑地址空间划分为若干个逻辑地址段,每个所述逻辑地址段中所包括的逻辑块数量为预设值;

建立单元,用于建立虚拟地址空间,所述虚拟地址空间包括虚拟地址段,所述虚拟地址段的数量大于或等于所述逻辑地址段的数量,各虚拟地址段中虚拟块的数量大于所述逻辑地址段中逻辑块的数量,所述虚拟地址段与所述逻辑地址段一一对应,所述虚拟地址段中的虚拟块与物理地址空间中的物理块为块级映射;

所述建立单元还用于建立所述逻辑地址段和与所述逻辑地址段对应的虚拟地址段之间的页级映射表,以及所述虚拟地址段中虚拟块和与所述虚拟地址段中虚拟块映射的物理地址空间中的物理块之间的块级映射表;

获取单元,用于当主机读或写数据时,获取所述主机读或写数据对应的目标逻辑页地址;

确定单元,用于根据所述目标逻辑页地址和所述页级映射表,确定目标虚拟页地址,所述目标虚拟页地址与所述目标逻辑页地址相互映射;

所述确定单元还用于根据所述目标虚拟页地址和所述块级映射表,确定目标物理页地址,所述目标虚拟页地址所在虚拟块与所述目标逻辑页地址所在逻辑块相互映射。

结合第二方面,在第二方面的第一种可能的实现方式中,所述页级映射表存储与逻辑页地址映射的虚拟页地址,所述虚拟页地址包括虚拟页所属虚拟地址段的标识、虚拟页所属虚拟地址段中虚拟块的标识和块内偏移量;

所述目标虚拟页地址包括所述目标虚拟页所属虚拟地址段的标识、所述目标虚拟页所属虚拟地址段中虚拟块的标识和目标块内偏移量。

结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述块级映射表存储与所述虚拟地址段中虚拟块映射的物理地址空间中物理块的地址,所述物理地址空间中物理块的地址包括所述物理地址空间中物理块的标识;

所述确定单元具体用于根据所述目标虚拟页所属虚拟地址段中虚拟块的标识和所述块级映射表,确定所述目标物理页所属物理块的标识;以及,用于根据所述目标物理页所属物理块的标识和所述目标块内偏移量确定所述目标物理页地址。

结合第二方面,在第二方面的第三种可能的实现方式中,所述虚拟地址段与所述逻辑地址段按照所述虚拟地址段标识顺序和所述逻辑地址段标识顺序一一对应。

结合第二方面,在第二方面的第四种可能的实现方式中,当主机写数据时,所述获取单元具体用于根据所述主机发送的写数据请求获取所述主机读数据对应的目标逻辑页地址;

所述装置还包括:

判断单元,用于判断所述目标物理页地址当前是否存储其他数据;

存储单元,用于当所述目标物理页地址当前未存储其他数据时,将所述主机写入的数据存储所述目标物理页地址;

选择单元,用于当所述目标物理页地址当前存储其他数据时,在所述物理地址空间中选择当前未存储其他数据的物理页地址作为新目标物理页地址,与所述新目标物理页地址所属物理块相互映射的新目标虚拟块和 所述目标虚拟页地址所在虚拟块属于同一个虚拟地址段;

所述存储单元还用于将所述主机写入的数据存储所述新目标物理页地址。

结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述确定单元还用于根据所述新目标物理页地址和所述块级映射表确定新目标虚拟页地址,所述新目标虚拟页地址所在虚拟块与所述新目标逻辑页地址所在逻辑块相互映射;所述装置还包括:

更新单元,用于根据所述新目标虚拟页地址更新所述页级映射表,使更新后的页级映射表中所述新目标虚拟页地址与所述目标逻辑页地址相互映射。

结合第二方面,在第二方面的第六种可能的实现方式中,当所述主机读数据时,所述获取单元具体用于根据所述主机发送的读数据请求获取所述主机读数据对应的目标逻辑页地址;

所述装置还包括:

发送单元,用于向所述主机发送所述目标物理页地址中存储的数据。

本发明实施例提供的一种FTL地址映射的方法及装置,本发明将逻辑地址划分为逻辑块为预设值的逻辑地址段,在逻辑地址与物理地址之间建立一层虚拟地址空间,使虚拟地址空间中的虚拟地址段与逻辑地址段之间映射方式为页级映射,虚拟地址空间与物理地址空间之间的映射方式为块级映射,并建立相应的页级映射表和块级映射表,在确定主机读或写数据的目标逻辑页地址后,通过页级映射表确定目标虚拟页地址,然后通过块级映射表确定目标物理页地址,从而完成从逻辑地址空间到物理地址空间的映射。如此,在逻辑地址空间与物理地址空间之间建立一层虚拟地址空间,虚拟地址空间与物理地址空间之间进行块级映射,块级映射表的大小远小于页级映射表的大小,并且映射过程简单;将逻辑地址空间进行划分,减少逻辑地址空间与虚拟地址空间之间页映射的范围,进而降低页级映射表中每个表项存储的寻址范围,降低页级映射表的大小,逻辑地址空间与虚拟地址空间之间采用单级页映射,实现过程简单,主机读或写数据时不会出现多次读取元数据的过程,操作方便,不会导致主机读写过程高延迟,提高设备性能。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明一实施例提供的方法流程图;

图2为本发明又一实施例提供的方法流程图;

图3、图4为本发明又一实施例提供的地址空间映射示意图;

图5、图6为本发明又一实施例提供的装置结构示意图;

图7为本发明又一实施例提供的固态硬盘结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。

本发明一实施例提供一种FTL地址映射的方法,用于FTL,如图1所示,所述方法包括:

101、FTL将逻辑地址空间划分为若干个逻辑地址段。

其中,每个所述逻辑地址段中所包括的逻辑块数量为预设值。

102、FTL建立虚拟地址空间。

其中,虚拟地址空间包括虚拟地址段,虚拟地址段的数量大于或等于逻辑地址段的数量,各虚拟地址段中虚拟块的数量大于逻辑地址段中逻辑块的数量,虚拟地址段与逻辑地址段一一对应,虚拟地址段中的虚拟块与物理地址空间中的物理块为块级映射。

本发明实施例中,虚拟地址段与逻辑地址段按照虚拟地址段标识顺序和逻辑地址段标识顺序一一对应。

103、FTL建立逻辑地址段和与逻辑地址段对应的虚拟地址段之间的 页级映射表,以及虚拟地址段中虚拟块和与虚拟地址段中虚拟块映射的物理地址空间中的物理块之间的块级映射表。

本发明实施例中,页级映射表存储与逻辑页地址映射的虚拟页地址,虚拟页地址包括虚拟页所属虚拟地址段的标识、虚拟页所属虚拟地址段中虚拟块的标识和块内偏移量。块级映射表存储与虚拟地址段中虚拟块映射的物理地址空间中物理块的地址,物理地址空间中物理块的地址包括物理地址空间中物理块的标识。

104、当主机读或写数据时,FTL获取主机读或写数据对应的目标逻辑页地址。

105、FTL根据目标逻辑页地址和页级映射表,确定目标虚拟页地址。

其中,目标虚拟页地址与目标逻辑页地址相互映射。

本发明实施例中,目标虚拟页地址包括目标虚拟页所属虚拟地址段的标识、目标虚拟页所属虚拟地址段中虚拟块的标识和目标块内偏移量。

106、FTL根据目标虚拟页地址和块级映射表,确定目标物理页地址。

其中,目标虚拟页地址所在虚拟块与目标逻辑页地址所在逻辑块相互映射。

需要说明的是,现有技术将映射表存储在备用空间中,但是,与每个superblock对应的备份空间是有限的,这就会导致每个superblock对应的可使用的备份空间减少,进而使FTL进行数据整合或垃圾回收时备用空间不足,影响设备性能。本发明实施例中映射过程不会占用物理地址空间中的备份空间,则不会对FTL进行数据整合或垃圾回收产生影响,避免现有技术中FTL进行数据整合或垃圾回收时备用空间不足,影响设备性能的情况。

本发明实施例中,将逻辑地址划分为逻辑块为预设值的逻辑地址段,在逻辑地址与物理地址之间建立一层虚拟地址空间,使虚拟地址空间中的虚拟地址段与逻辑地址段之间映射方式为页级映射,虚拟地址空间与物理地址空间之间的映射方式为块级映射,并建立相应的页级映射表和块级映射表,在确定主机读或写数据的目标逻辑页地址后,通过页级映射表确定目标虚拟页地址,然后通过块级映射表确定目标物理页地址,从而完成从逻辑地址空间到物理地址空间的映射。如此,在逻辑地址空间与物理地址 空间之间建立一层虚拟地址空间,虚拟地址空间与物理地址空间之间进行块级映射,块级映射表的大小远小于页级映射表的大小,并且映射过程简单;将逻辑地址空间进行划分,减少逻辑地址空间与虚拟地址空间之间页映射的范围,进而降低页级映射表中每个表项存储的寻址范围,降低页级映射表的大小,逻辑地址空间与虚拟地址空间之间采用单级页映射,实现过程简单,主机读或写数据时不会出现多次读取元数据的过程,操作方便,不会导致主机读写过程高延迟,提高设备性能。

本发明又一实施例提供一种FTL地址映射的方法,用于FTL,如图3所示,所述方法包括:

201、FTL将逻辑地址空间划分为若干个逻辑地址段。

其中,逻辑地址空间包括很多逻辑块,本发明实施例中,将逻辑地址空间划分为若干个逻辑地址段,,每个所述逻辑地址段中所包括的逻辑块数量为预设值,即每个逻辑地址段包括的逻辑块相同,个数为预设值。

202、FTL建立虚拟地址空间。

其中,虚拟地址空间并不直接存储数据,其包括多个虚拟地址段,虚拟地址段的数量大于或等于逻辑地址段的数量,各虚拟地址段中虚拟块的数量大于逻辑地址段中逻辑块的数量。虚拟地址段与逻辑地址段一一对应,虚拟地址段中的虚拟块与物理地址空间中的物理块为块级映射。

203、FTL建立逻辑地址段和与逻辑地址段对应的虚拟地址段之间的页级映射表。

其中,虚拟地址段与逻辑地址段一一对应,虚拟地址段与逻辑地址段之间的映射方式采用页级映射,即逻辑地址段中一个逻辑页映射虚拟地址段中的一个虚拟页,本步骤中建立相对应的虚拟地址段与逻辑地址段中逻辑页和虚拟也的映射关系。

需要说明的是,由于步骤201中将逻辑地址空间划分为逻辑地址段,则每一个逻辑页的地址应该由其所在逻辑地址段的标识、所在逻辑地址段中逻辑块的标识和所在逻辑地址段中逻辑块的块内偏移组成,相应的每一个虚拟页的地址应该由其所在虚拟地址段的标识、所在虚拟地址段中虚拟块的标识和所在虚拟地址段中虚拟块的块内偏移组成,当逻辑页与虚拟页建立映射关系时,页级映射表中存储逻辑页地址与虚拟页地址的映射关 系。

204、FTL建立虚拟地址段中虚拟块和与虚拟地址段中虚拟块映射的物理地址空间中的物理块之间的块级映射表。

其中,虚拟地址段中的虚拟块与物理地址空间中的物理块为块级映射,虚拟地址段与物理地址空间之间的映射方式采用块级映射,即虚拟地址段中一个逻辑块映射物理地址空间中的一个物理块,本步骤中建立相对应的虚拟块与物理块的映射关系。逻辑地址空间、虚拟地址空间和物理地址空间的映射方式如图3、图4所示。

需要说明的是,由于物理空间中的物理块地址为其物理块标识,当物理块与虚拟块建立映射关系时,块级映射表中存储物理块地址与虚拟块地址的映射关系。由于虚拟地址段与物理地址空间之间的映射方式采用块级映射,则虚拟块中各虚拟页的块内偏移量即为物理块中各物理页的块内偏移量。物理块与虚拟块之间还可以采用全相联块级映射。

205、当接收主机的读取数据请求时,FTL获取主机读取数据对应的目标逻辑页地址。

其中,FTL在主机的读取数据请求中获取目标逻辑页地址,目标逻辑页地址包括其所在逻辑地址段的标识、所在逻辑地址段中逻辑块的标识和所在逻辑地址段中逻辑块的目标块内偏移。

206、FTL根据目标逻辑页地址和页级映射表,FTL确定目标虚拟页地址。

其中,页级映射表中存储了各逻辑页地址与虚拟页地址的映射关系,则根据目标逻辑页地址查询页级映射表,即可得出与目标逻辑页地址映射的目标虚拟页地址。

207、FTL根据目标虚拟页地址和块级映射表,FTL确定目标物理块地址。

其中,块级映射表中存储了相互映射的虚拟块地址与物理块地址的映射关系,根据目标虚拟页所属虚拟快地址查询块级映射表,可以得出与目标虚拟页所属虚拟快地址映射的目标物理块地址。

208、FTL根据目标物理块地址和目标块内偏移确定目标物理页地址。

209、FTL从目标物理页地址中读取主机所属的数据,并将读取的数 据回复主机。

210、当接收主机的写数据请求时,FTL获取主机需要存储数据对应的目标逻辑页地址。

其中,需要存储数据对应的目标逻辑页地址包括其所在逻辑地址段的标识、所在逻辑地址段中逻辑块的标识和所在逻辑地址段中逻辑块的目标块内偏移。

211、FTL根据目标逻辑页地址和页级映射表,确定目标虚拟页地址。

212、FTL根据目标虚拟页地址和块级映射表,FTL确定目标物理块地址。

213、FTL根据目标物理块地址和目标块内偏移确定目标物理页地址。

214、FTL判断目标物理页地址当前是否被占用,若目标物理页地址当前未被占用,执行步骤215;若目标物理页地址当前被占用,执行步骤216。

215、FTL存储主机需要存储数据。

216、FTL选择未被占用的新目标物理页存储需要存储数据,并确定新目标物理页地址。

其中,与新目标物理页地址所属物理块相互映射的新目标虚拟块和目标虚拟页地址所在虚拟块属于同一个虚拟地址段。

217、FTL根据新目标物理页地址和块级映射表确定新目标虚拟页地址。

其中,新目标物理页地址包括其所在新目标物理块的地址和新目标块内偏移。根据新目标物理块地址查询块级映射表,确定与新目标物理块地址映射的新目标虚拟块地址,结合新目标虚拟块地址和新目标块内偏移确定新目标虚拟块地址。

218、FTL根据新目标虚拟页地址更新页级映射表,使页级映射表中目标逻辑页地址与新目标虚拟页地址映射。

需要说明的是,现有技术将映射表存储在备用空间中,但是,与每个superblock对应的备份空间是有限的,这就会导致每个superblock对应的可使用的备份空间减少,进而使FTL进行数据整合或垃圾回收时备用空间不足,影响设备性能。本发明实施例中映射过程不会占用物理地址空间中 的备份空间,则不会对FTL进行数据整合或垃圾回收产生影响,避免现有技术中FTL进行数据整合或垃圾回收时备用空间不足,影响设备性能的情况。

本发明实施例中,将逻辑地址划分为逻辑块为预设值的逻辑地址段,在逻辑地址与物理地址之间建立一层虚拟地址空间,使虚拟地址空间中的虚拟地址段与逻辑地址段之间映射方式为页级映射,虚拟地址空间与物理地址空间之间的映射方式为块级映射,并建立相应的页级映射表和块级映射表,在确定主机读或写数据的目标逻辑页地址后,通过页级映射表确定目标虚拟页地址,然后通过块级映射表确定目标物理页地址,从而完成从逻辑地址空间到物理地址空间的映射。如此,在逻辑地址空间与物理地址空间之间建立一层虚拟地址空间,虚拟地址空间与物理地址空间之间进行块级映射,块级映射表的大小远小于页级映射表的大小,并且映射过程简单;将逻辑地址空间进行划分,减少逻辑地址空间与虚拟地址空间之间页映射的范围,进而降低页级映射表中每个表项存储的寻址范围,降低页级映射表的大小,逻辑地址空间与虚拟地址空间之间采用单级页映射,实现过程简单,主机读或写数据时不会出现多次读取元数据的过程,操作方便,不会导致主机读写过程高延迟,提高设备性能。

本发明又一实施例提供一种FTL地址映射的装置30,如图5所示,所述装置30包括:

划分单元31,用于将逻辑地址空间划分为若干个逻辑地址段,每个所述逻辑地址段中所包括的逻辑块数量为预设值;

建立单元32,用于建立虚拟地址空间,所述虚拟地址空间包括虚拟地址段,所述虚拟地址段的数量大于或等于所述逻辑地址段的数量,各虚拟地址段中虚拟块的数量大于所述逻辑地址段中逻辑块的数量,所述虚拟地址段与所述逻辑地址段一一对应,所述虚拟地址段中的虚拟块与物理地址空间中的物理块为块级映射;

所述建立单元32还用于建立所述逻辑地址段和与所述逻辑地址段对应的虚拟地址段之间的页级映射表,以及所述虚拟地址段中虚拟块和与所述虚拟地址段中虚拟块映射的物理地址空间中的物理块之间的块级映射表;

获取单元33,用于当主机读或写数据时,获取所述主机读或写数据对应的目标逻辑页地址;

确定单元34,用于根据所述目标逻辑页地址和所述页级映射表,确定目标虚拟页地址,所述目标虚拟页地址与所述目标逻辑页地址相互映射;

所述确定单元34还用于根据所述目标虚拟页地址和所述块级映射表,确定目标物理页地址,所述目标虚拟页地址所在虚拟块与所述目标逻辑页地址所在逻辑块相互映射。

其中,所述页级映射表存储与逻辑页地址映射的虚拟页地址,所述虚拟页地址包括虚拟页所属虚拟地址段的标识、虚拟页所属虚拟地址段中虚拟块的标识和块内偏移量;所述目标虚拟页地址包括所述目标虚拟页所属虚拟地址段的标识、所述目标虚拟页所属虚拟地址段中虚拟块的标识和目标块内偏移量。所述块级映射表存储与所述虚拟地址段中虚拟块映射的物理地址空间中物理块的地址,所述物理地址空间中物理块的地址包括所述物理地址空间中物理块的标识。所述虚拟地址段与所述逻辑地址段按照所述虚拟地址段标识顺序和所述逻辑地址段标识顺序一一对应。

进一步的,所述确定单元34具体用于根据所述目标虚拟页所属虚拟地址段中虚拟块的标识和所述块级映射表,确定所述目标物理页所属物理块的标识;以及,用于根据所述目标物理页所属物理块的标识和所述目标块内偏移量确定所述目标物理页地址。

进一步的,当主机写数据时,所述获取单元33具体用于根据所述主机发送的写数据请求获取所述主机读数据对应的目标逻辑页地址。

进一步的,如图6所示,所述装置30还可以包括:

判断单元35,用于判断所述目标物理页地址当前是否存储其他数据;

存储单元36,用于当所述目标物理页地址当前未存储其他数据时,将所述主机写入的数据存储所述目标物理页地址;

选择单元37,用于当所述目标物理页地址当前存储其他数据时,在所述物理地址空间中选择当前未存储其他数据的物理页地址作为新目标物理页地址,与所述新目标物理页地址所属物理块相互映射的新目标虚拟块和所述目标虚拟页地址所在虚拟块属于同一个虚拟地址段;

所述存储单元36还用于将所述主机写入的数据存储所述新目标物理 页地址。

进一步的,所述确定单元34还用于根据所述新目标物理页地址和所述块级映射表确定新目标虚拟页地址,所述新目标虚拟页地址所在虚拟块与所述新目标逻辑页地址所在逻辑块相互映射。

进一步的,如图6所示,所述装置30还可以包括:

更新单元38,用于根据所述新目标虚拟页地址更新所述页级映射表,使更新后的页级映射表中所述新目标虚拟页地址与所述目标逻辑页地址相互映射。

进一步的,当所述主机读数据时,所述获取单元33具体用于根据所述主机发送的读数据请求获取所述主机读数据对应的目标逻辑页地址。

进一步的,如图6所示,所述装置30还可以包括:

发送单元39,用于向所述主机发送所述目标物理页地址中存储的数据。

本发明实施例中,装置30将逻辑地址划分为逻辑块为预设值的逻辑地址段,在逻辑地址与物理地址之间建立一层虚拟地址空间,使虚拟地址空间中的虚拟地址段与逻辑地址段之间映射方式为页级映射,虚拟地址空间与物理地址空间之间的映射方式为块级映射,并建立相应的页级映射表和块级映射表,在确定主机读或写数据的目标逻辑页地址后,通过页级映射表确定目标虚拟页地址,然后通过块级映射表确定目标物理页地址,从而完成从逻辑地址空间到物理地址空间的映射。如此,在逻辑地址空间与物理地址空间之间建立一层虚拟地址空间,虚拟地址空间与物理地址空间之间进行块级映射,块级映射表的大小远小于页级映射表的大小,并且映射过程简单;将逻辑地址空间进行划分,减少逻辑地址空间与虚拟地址空间之间页映射的范围,进而降低页级映射表中每个表项存储的寻址范围,降低页级映射表的大小,逻辑地址空间与虚拟地址空间之间采用单级页映射,实现过程简单,主机读或写数据时不会出现多次读取元数据的过程,操作方便,不会导致主机读写过程高延迟,提高设备性能。

本发明又一实施例提供一种固态硬盘40,如图7所示,所述固态硬盘40至少包括:处理单元401,I/O(Input/Output,输入/输出)接口402,存储单元403,通信总线404。通信总线404用于实现这些组件之间的通 信。

处理单元401为固态硬盘40的控制中心,利用各种接口和线路连接整个固态硬盘40的各个部分,通过运行或执行存储在存储单元内的软件程序和/或模块,以及调用存储在存储单元403内的数据,以执行固态硬盘40的各种功能和/或处理数据。所述处理单元401可以由集成电路(Integrated Circuit,IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。

I/O接口402用于建立通信信道,使固态硬盘40通过所述通信信道与主机等设备通信。所述I/O接口402实现方式可以包括无线局域网(Wireless Local Area Network,wireless LAN)模块、蓝牙模块、基带(Base Band)模块等通信模块,以及所述通信模块对应的射频(Radio Frequency,RF)电路,用于进行无线局域网络通信、蓝牙通信、红外线通信及/或蜂窝式通信系统通信,例如宽带码分多重接入(Wideband Code Division Multiple Access,W-CDMA)及/或高速下行封包存取(High Speed Downlink Packet Access,HSDPA)。所述通信模块用于控制固态硬盘40中的各组件的通信,并且可以支持直接内存存取(Direct Memory Access)。

在本发明的不同实施方式中,所述I/O接口402中的各种通信模块一般以集成电路芯片(Integrated Circuit Chip)的形式出现,并可进行选择性组合,而不必包括所有通信模块及对应的天线组。例如,所述I/O接口402可以仅包括基带芯片、射频芯片以及相应的天线以在一个蜂窝通信系统中提供通信功能。经由所述I/O接口402建立的无线通信连接,例如无线局域网接入或WCDMA接入,所述固态硬盘40可以连接至蜂窝网(Cellular Network)或因特网(Internet)。在本发明的一些可选实施方式中,所述I/O接口402中的通信模块,例如基带模块可以集成到处理单元401中。

存储单元403用于存储软件程序以及模块,处理单元401通过运行存储在存储单元403的软件程序以及模块,从而执行固态硬盘40的各种功能应用以及实现数据处理。存储单元403主要包括程序存储区和数据存储区,其中,程序存储区可以存储至少一个功能所需的应用程序4031等等;数据存储区可存储根据固态硬盘40的使用所创建的数据(比如音频数据、 电话本等)等。在本发明具体实施方式中,存储单元403可以包括易失性存储器,例如非挥发性动态随机存取内存(Nonvolatile Random Access Memory,NVRAM)、相变化随机存取内存(Phase Change RAM,PRAM)、磁阻式随机存取内存(Magetoresistive RAM,MRAM)等,还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、闪存器件,例如反或闪存(NOR flash memory)或是反及闪存(NAND flash memory)。非易失存储器储存处理单元401所执行的应用程序4031。所述处理单元401从所述非易失存储器加载运行程序与数据到内存并将数字内容储存于大量储存装置中。所述应用程序4031包括安装在固态硬盘40上的任何应用,包括但不限于浏览器、电子邮件、即时消息服务、文字处理、键盘虚拟、窗口小部件(Widget)、加密、数字版权管理、语音识别、语音复制、定位(例如由全球定位系统提供的功能)、音乐播放等等。

处理单元401,用于将逻辑地址空间划分为若干个逻辑地址段,每个所述逻辑地址段中所包括的逻辑块数量为预设值;以及,用于建立虚拟地址空间,所述虚拟地址空间包括虚拟地址段,所述虚拟地址段的数量大于或等于所述逻辑地址段的数量,各虚拟地址段中虚拟块的数量大于所述逻辑地址段中逻辑块的数量,所述虚拟地址段与所述逻辑地址段一一对应,所述虚拟地址段中的虚拟块与物理地址空间中的物理块为块级映射;以及,用于建立所述逻辑地址段和与所述逻辑地址段对应的虚拟地址段之间的页级映射表,以及所述虚拟地址段中虚拟块和与所述虚拟地址段中虚拟块映射的物理地址空间中的物理块之间的块级映射表;以及,用于当主机读或写数据时,获取所述主机读或写数据对应的目标逻辑页地址;以及,用于根据所述目标逻辑页地址和所述页级映射表,确定目标虚拟页地址,所述目标虚拟页地址与所述目标逻辑页地址相互映射;以及,用于根据所述目标虚拟页地址和所述块级映射表,确定目标物理页地址,所述目标虚拟页地址所在虚拟块与所述目标逻辑页地址所在逻辑块相互映射。

其中,所述页级映射表存储与逻辑页地址映射的虚拟页地址,所述虚拟页地址包括虚拟页所属虚拟地址段的标识、虚拟页所属虚拟地址段中虚拟块的标识和块内偏移量;所述目标虚拟页地址包括所述目标虚拟页所属 虚拟地址段的标识、所述目标虚拟页所属虚拟地址段中虚拟块的标识和目标块内偏移量。所述块级映射表存储与所述虚拟地址段中虚拟块映射的物理地址空间中物理块的地址,所述物理地址空间中物理块的地址包括所述物理地址空间中物理块的标识。所述虚拟地址段与所述逻辑地址段按照所述虚拟地址段标识顺序和所述逻辑地址段标识顺序一一对应。

本发明实施例的一种实施方式中,所述处理单元401还用于根据所述目标虚拟页所属虚拟地址段中虚拟块的标识和所述块级映射表,确定所述目标物理页所属物理块的标识;以及,用于根据所述目标物理页所属物理块的标识和所述目标块内偏移量确定所述目标物理页地址。

本发明实施例的一种实施方式中,当主机写数据时,所述处理单元401还用于根据所述主机发送的写数据请求获取所述主机读数据对应的目标逻辑页地址;以及,用于判断所述目标物理页地址当前是否存储其他数据;

所述存储单元403用于当所述目标物理页地址当前未存储其他数据时,将所述主机写入的数据存储所述目标物理页地址;

所述处理单元401还用于当所述目标物理页地址当前存储其他数据时,在所述物理地址空间中选择当前未存储其他数据的物理页地址作为新目标物理页地址,与所述新目标物理页地址所属物理块相互映射的新目标虚拟块和所述目标虚拟页地址所在虚拟块属于同一个虚拟地址段;

所述存储单元403还将所述主机写入的数据存储所述新目标物理页地址。

本发明实施例的一种实施方式中,所述处理单元401还用于根据所述新目标物理页地址和所述块级映射表确定新目标虚拟页地址,所述新目标虚拟页地址所在虚拟块与所述新目标逻辑页地址所在逻辑块相互映射;以及,用于根据所述新目标虚拟页地址更新所述页级映射表,使更新后的页级映射表中所述新目标虚拟页地址与所述目标逻辑页地址相互映射。

本发明实施例的一种实施方式中,当所述主机读数据时,所述处理单元401还用于根据所述主机发送的读数据请求获取所述主机读数据对应的目标逻辑页地址;

所述处理单元还用于401通过所述I/O接口402向所述主机发送所述目标物理页地址中存储的数据。

本发明实施例中,固态硬盘40将逻辑地址划分为逻辑块为预设值的逻辑地址段,在逻辑地址与物理地址之间建立一层虚拟地址空间,使虚拟地址空间中的虚拟地址段与逻辑地址段之间映射方式为页级映射,虚拟地址空间与物理地址空间之间的映射方式为块级映射,并建立相应的页级映射表和块级映射表,在确定主机读或写数据的目标逻辑页地址后,通过页级映射表确定目标虚拟页地址,然后通过块级映射表确定目标物理页地址,从而完成从逻辑地址空间到物理地址空间的映射。如此,在逻辑地址空间与物理地址空间之间建立一层虚拟地址空间,虚拟地址空间与物理地址空间之间进行块级映射,块级映射表的大小远小于页级映射表的大小,并且映射过程简单;将逻辑地址空间进行划分,减少逻辑地址空间与虚拟地址空间之间页映射的范围,进而降低页级映射表中每个表项存储的寻址范围,降低页级映射表的大小,逻辑地址空间与虚拟地址空间之间采用单级页映射,实现过程简单,主机读或写数据时不会出现多次读取元数据的过程,操作方便,不会导致主机读写过程高延迟,提高设备性能。

本发明实施例提供的FTL地址映射的装置可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。本发明实施例提供的FTL地址映射的方法及装置可以适用于FLT,但不仅限于此。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1