基于固态硬盘的映射表重建方法、装置和计算机设备

文档序号:1543957 发布日期:2020-01-17 浏览:17次 >En<

阅读说明:本技术 基于固态硬盘的映射表重建方法、装置和计算机设备 (Mapping table reconstruction method and device based on solid state disk and computer equipment ) 是由 杨学森 李建 秦龙华 甘金涛 王伟良 贾宗铭 于 2019-09-23 设计创作,主要内容包括:本申请涉及一种基于固态硬盘的映射表重建方法、装置、计算机设备和存储介质,其中该方法包括:获取基于固态硬盘的映射表重建请求;根据所述基于固态硬盘的映射表重建请求从对应物理块的最后一个物理页开始进行扫描;从当前物理页的data区域中读取对应的逻辑地址以及N个逻辑地址偏移量,其中,所述N为大于1的正整数;根据所述当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址;根据所述当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系。本发明实现了当SSD内部映射表丢失时,可以减少全盘扫描的次数,达到快速重建映射表的目的。(The application relates to a mapping table rebuilding method and device based on a solid state disk, computer equipment and a storage medium, wherein the method comprises the following steps: acquiring a mapping table reconstruction request based on a solid state disk; scanning from the last physical page of the corresponding physical block according to the mapping table rebuilding request based on the solid state disk; reading a corresponding logical address and N logical address offsets from a data area of a current physical page, wherein N is a positive integer greater than 1; sequentially obtaining logical addresses corresponding to N adjacent pages according to the logical address corresponding to the current physical page and N logical address offsets; and reconstructing the mapping relation from the logical address to the physical address according to the logical address corresponding to the current physical page and the logical addresses corresponding to the N adjacent pages. The invention can reduce the times of full-disk scanning when the mapping table in the SSD is lost, thereby achieving the purpose of quickly reconstructing the mapping table.)

基于固态硬盘的映射表重建方法、装置和计算机设备

技术领域

本发明涉及固态硬盘技术领域,特别是涉及一种基于固态硬盘的映射表重建方法、装置、计算机设备和存储介质。

背景技术

目前,在SSD(固态硬盘)内部,逻辑地址空间到物理地址空间的映射,形成映射表。映射表的每一个映射关系都记录了用户数据的逻辑地址到物理地址的映射。若因为一些异常原因,映射表遭到破坏或者丢失,用户数据的逻辑地址到物理地址的映射关系找不到了,也就无法找到相应的用户数据了。因此,需要一种方法在映射表丢失的情况下也可以找到用户数据。

在传统技术中,为了在映射表丢失的情况下也可以找到用户数据,在写用户数据时,会把用户数据的逻辑地址记录在物理页的spare(备用)区域。若映射表丢失,则通过扫描读取物理页的spare区域,获取逻辑地址信息,重新建立了逻辑地址与物理地址的映射关系,待扫描完整的SSD,则建立起完整的映射表。由此可见,按照传统的方法,需要扫描整个SSD读取每一个物理块的每一物理页数据,假设一个SSD有200个物理块,每个物理块有80个物理页,每一个物理页的spare区只存储一个逻辑地址,全盘扫描总共需要读取200*80=16000次,读取的次数越多花费的时间越多,导致重新建立映射表的过程需要耗费大量的时间。

发明内容

基于此,有必要针对上述技术问题,提供一种可以实现快速重建映射表的基于固态硬盘的映射表重建方法、装置、计算机设备和存储介质。

一种基于固态硬盘的映射表重建方法,所述方法包括:

获取基于固态硬盘的映射表重建请求;

根据所述基于固态硬盘的映射表重建请求从对应物理块的最后一个物理页开始进行扫描;

从当前物理页的data区域中读取对应的逻辑地址以及N个逻辑地址偏移量,其中,所述N为大于1的正整数;

根据所述当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址;

根据所述当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系。

在其中一个实施例中,在所述根据所述当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系的步骤之后还包括:

从所述当前物理页向后移动N+1页作为下一次进行扫描的物理页。

在其中一个实施例中,在所述获取基于固态硬盘的映射表重建请求的步骤之前还包括:

获取用户数据的写入请求;

当所述用户数据写入到一物理块的物理页时,将对应的逻辑地址写入到当前物理页的data区域,同时依次将邻近所述当前物理页的后N个物理页存储的用户数据的逻辑地址相对当前逻辑地址的逻辑地址偏移量按照物理页的前后顺序一并写入所述当前物理页的data区域。

在其中一个实施例中,所述根据所述当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址的步骤还包括:

分别计算所述当前物理页对应的逻辑地址与N个逻辑地址偏移量之和,依次得到N个邻近页对应的逻辑地址。

一种基于固态硬盘的映射表重建装置,所述装置包括:

第一获取模块,所述第一获取模块用于获取基于固态硬盘的映射表重建请求;

扫描模块,所述扫描模块用于根据所述基于固态硬盘的映射表重建请求从对应物理块的最后一个物理页开始进行扫描;

地址读取模块,所述地址读取模块用于从当前物理页的data区域中读取对应的逻辑地址以及N个逻辑地址偏移量,其中,所述N为大于1的正整数;

地址计算模块,所述地址计算模块用于根据所述当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址;

映射重建模块,所述映射重建模块用于根据所述当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系。

在其中一个实施例中,所述装置还包括:

跳转模块,所述跳转模块用于从所述当前物理页向后移动N+1页作为下一次进行扫描的物理页。

在其中一个实施例中,所述装置还包括:

第二获取模块,所述第二获取模块用于获取用户数据的写入请求;

写入模块,所述写入模块用于当所述用户数据写入到一物理块的物理页时,将对应的逻辑地址写入到当前物理页的data区域,同时依次将邻近所述当前物理页的后N个物理页存储的用户数据的逻辑地址相对当前逻辑地址的逻辑地址偏移量按照物理页的前后顺序一并写入所述当前物理页的data区域。

在其中一个实施例中,所述地址计算模块还用于:

分别计算所述当前物理页对应的逻辑地址与N个逻辑地址偏移量之和,依次得到N个邻近页对应的逻辑地址。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。

上述基于固态硬盘的映射表重建方法、装置、计算机设备和存储介质,通过获取基于固态硬盘的映射表重建请求;根据所述基于固态硬盘的映射表重建请求从对应物理块的最后一个物理页开始进行扫描;从当前物理页的data区域中读取对应的逻辑地址以及N个逻辑地址偏移量,其中,所述N为大于1的正整数;根据所述当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址;根据所述当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系。本发明通过利用NAND FLASH物理块中物理页的data区域存储它本身逻辑地址以及邻近几个物理页相对此逻辑地址的偏移量的方法,实现了当SSD内部的映射表丢失时,可以减少全盘扫描的次数,达到快速重建映射表的目的。

附图说明

图1为一个实施例中基于固态硬盘的映射表重建方法的流程示意图;

图2为一个实施例中物理页data区存储逻辑地址的示意图;

图3为一个实施例中对物理块进行扫描并重建映射表的示意图;

图4为另一个实施例中基于固态硬盘的映射表重建方法的流程示意图;

图5为再一个实施例中基于固态硬盘的映射表重建方法的流程示意图;

图6为一个实施例中基于固态硬盘的映射表重建装置的结构框图;

图7为另一个实施例中基于固态硬盘的映射表重建装置的结构框图;

图8为再一个实施例中基于固态硬盘的映射表重建装置的结构框图;

图9为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

NAND FLASH是由许多block(物理块)组成,每一个block都有许多物理页组成。每个物理页都有两个存储区域,data(数据)区域和spare(备用)区域,由SSD固件决定这两个区域存储的数据。一般情况下,SSD固件会把用户数据存储在data区;而该用户数据对应的逻辑地址存储在物理页的spare区域。由于物理页的spare区存储空间大小有限,不能存放过多数据。通常情况下,物理页的spare区域只存放存储在该物理页内的用户数据对应的逻辑地址。

在传统技术中,当用户数据写入某一物理块的物理页时,就建立起它的逻辑地址到物理地址的映射关系,更新了映射表。同时,它的逻辑地址写入这个物理页的spare区。但因为异常情况,SSD内部的映射表丢失,固件需要对SSD进行全盘扫描以期望重建整个映射表。进行全盘扫描期间,读取每一个物理块的每一个物理页,从物理页的spare区域获得该物理页对应的逻辑地址,建立逻辑地址和物理地址之间的映射关系,把映射关系记录在映射表中。当全盘扫描结束,所有的映射关系都被建立起来了,映射表重建完成。例如:假设一个SSD有200个物理块,每个物理块有80个物理页,按照传统的做法,每一个物理页的spare区只存储一个逻辑地址,全盘扫描总共需要读取200*80=16000次,读取的次数越多花费的时间越多。

鉴于上述传统技术中存在的问题,本发明旨在提供一个基于固态硬盘的映射表重建方法,可以实现大幅度减少扫描次数,以此减小全盘扫描的时间。

在一个实施例中,如图1所示,提供了一种基于固态硬盘的映射表重建方法,该方法包括:

步骤102,获取基于固态硬盘的映射表重建请求;

步骤104,根据基于固态硬盘的映射表重建请求从对应物理块的最后一个物理页开始进行扫描;

步骤106,从当前物理页的data区域中读取对应的逻辑地址以及N个逻辑地址偏移量,其中,N为大于1的正整数;

步骤108,根据当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址;

步骤110,根据当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系。

在本实施例中,针对物理页的spare区域空间大小有限,只够存储一个逻辑地址,本实施例提出了利用物理页的data区域存储当前物理页的逻辑地址和邻近物理页相对当前页逻辑地址的偏移量,减少全盘扫描次数,以达到快速重建映射表的目的。

具体地,首先获取基于固态硬盘的映射表重建请求,并根据该请求从对应物理块的最后一个物理页开始进行扫描。接着,通过扫描该物理页获取了这个物理页存储的逻辑地址的同时一并获取它邻近的几个物理页存储的逻辑地址。这样,不但找到了当前物理地址对应的逻辑地址,也找到了邻近的物理地址对应的逻辑地址,建立起了多个映射关系,不需要扫描邻近的几个物理页了,减少了扫描的次数。由于物理页的spare区域存储空间有限,只能存储一个逻辑地址,显然满足不了需求。相对的,物理页的data区域空间很大,可以存储当前页的逻辑地址和其邻近页相对当前页的逻辑地址的偏移量,当前页的逻辑地址加上偏移量等于邻近页的逻辑地址,这样就一次性地获得了当前页和邻近页的逻辑地址。达到了减少全盘扫描的次数,快速重建映射表的目的。

在一个实施例中,根据当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址的步骤还包括:分别计算当前物理页对应的逻辑地址与N个逻辑地址偏移量之和,依次得到N个邻近页对应的逻辑地址。

具体地,以每个物理页data区域存储1个逻辑地址和7个偏移量为例进行详细说明,当用户数据写入到NAND FLASH某一物理块的物理页时,它的逻辑地址写入到该物理页的data区域,同时在这个物理块内,紧挨着这个物理页的后7个物理页存储的用户数据的逻辑地址相对当前逻辑地址的偏移量按照物理页的前后顺序也一并写入当前这个物理页的data区域。这样当前的物理页存储了1个逻辑地址和7个偏移量:当前物理页对应的逻辑地址和紧挨着这个物理页的后7个物理页的逻辑地址转换为相对当前页逻辑地址的偏移量。如图2所示,某一物理块的物理页7不但存储了它自身对应的逻辑地址39,还依次向后存储了物理页6~物理页0相对于逻辑地址37的偏移量29、-24、28、2、18、-37、-34等7个偏移量。物理页6~物理页0实际的逻辑地址分别是68、15、67、41、57、2、5等。当前页的逻辑地址加上邻近页偏移量就等于邻近页实际逻辑地址。

若映射表丢失了,需要全盘扫描来恢复映射表。从每一个物理块的最后一个物理页进行扫描,每扫描到一个物理页,会得到1个逻辑地址和7个偏移量,逻辑地址是当前物理页对应的逻辑地址,7个偏移量是当前页向后7页的偏移量。逻辑地址加上偏移量就等于后7页的逻辑地址。这样建立了8个逻辑地址到物理地址的映射关系,从当前物理页向后移动8页作为下一次的扫描页。如图3所示。这样扫描次数仅仅是一般方法的1/8。还是假设一个SSD有200个物理块,每个物理块有80个物理页,每个物理块只需扫描80/8=10次,整个SSD扫描200*10=2000次,远小于一般方法的16000次。扫描次数减少了,全盘扫描时间也相应减少了。

在上述实施例中,通过获取基于固态硬盘的映射表重建请求;根据基于固态硬盘的映射表重建请求从对应物理块的最后一个物理页开始进行扫描;从当前物理页的data区域中读取对应的逻辑地址以及N个逻辑地址偏移量,其中,N为大于1的正整数;根据当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址;根据当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系。本实施例通过利用NAND FLASH物理块中物理页的data区域存储它本身逻辑地址以及邻近几个物理页相对此逻辑地址的偏移量的方法,实现了当SSD内部的映射表丢失时,可以减少全盘扫描的次数,达到快速重建映射表的目的。

在一个实施例中,如图3所示,提供了一种基于固态硬盘的映射表重建方法,该方法包括:

步骤402,获取基于固态硬盘的映射表重建请求;

步骤404,根据基于固态硬盘的映射表重建请求从对应物理块的最后一个物理页开始进行扫描;

步骤406,从当前物理页的data区域中读取对应的逻辑地址以及N个逻辑地址偏移量,其中,N为大于1的正整数;

步骤408,根据当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址;

步骤410,根据当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系;

步骤412,从当前物理页向后移动N+1页作为下一次进行扫描的物理页。

在本实施例中,若映射表丢失了,需要全盘扫描来恢复映射表。从每一个物理块的最后一个物理页进行扫描,每扫描到一个物理页,会得到1个逻辑地址和N个偏移量,逻辑地址是当前物理页对应的逻辑地址,N个偏移量是当前页向后N页的偏移量。逻辑地址加上偏移量就等于后N页的逻辑地址。这样建立了N+1个逻辑地址到物理地址的映射关系。最后,从当前物理页向后移动N+1页作为下一次的扫描页,大大的减少了对物理页扫描的次数。

具体地,例如图3中所示的扫描次数仅仅是传统方法的1/8。假设一个SSD有200个物理块,每个物理块有80个物理页,每个物理块只需扫描80/8=10次,整个SSD扫描200*10=2000次,远小于一般方法的16000次。扫描次数减少了,全盘扫描时间也相应减少了。

在一个实施例中,如图5所示,提供了一种基于固态硬盘的映射表重建方法,该方法在在获取基于固态硬盘的映射表重建请求的步骤之前还包括:

步骤502,获取用户数据的写入请求;

步骤504,当用户数据写入到一物理块的物理页时,将对应的逻辑地址写入到当前物理页的data区域,同时依次将邻近当前物理页的后N个物理页存储的用户数据的逻辑地址相对当前逻辑地址的逻辑地址偏移量按照物理页的前后顺序一并写入当前物理页的data区域。

在本实施例中,当用户数据写入到NAND FLASH某一物理块的物理页时,它的逻辑地址写入到该物理页的data区域,同时在这个物理块内,紧挨着这个物理页的后N个物理页存储的用户数据的逻辑地址相对当前逻辑地址的偏移量按照物理页的前后顺序也一并写入当前这个物理页的data区域。这样当前的物理页存储了1个逻辑地址和N个偏移量:当前物理页对应的逻辑地址和紧挨着这个物理页的后N个物理页的逻辑地址转换为相对当前页逻辑地址的偏移量。

具体地,例如图2中所示的某一物理块的物理页7不但存储了它自身对应的逻辑地址39,还依次向后存储了物理页6~物理页0相对于逻辑地址37的偏移量29、-24、28、2、18、-37、-34等7个偏移量。物理页6~物理页0实际的逻辑地址分别是68、15、67、41、57、2、5等。当前页的逻辑地址加上邻近页偏移量就等于邻近页实际逻辑地址。

应该理解的是,虽然图3-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图6所示,提供了一种基于固态硬盘的映射表重建装置600,该装置包括:

第一获取模块601,用于获取基于固态硬盘的映射表重建请求;

扫描模块602,用于根据基于固态硬盘的映射表重建请求从对应物理块的最后一个物理页开始进行扫描;

地址读取模块603,用于从当前物理页的data区域中读取对应的逻辑地址以及N个逻辑地址偏移量,其中,N为大于1的正整数;

地址计算模块604,用于根据当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址;

映射重建模块605,用于根据当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系。

在一个实施例中,如图7所示,提供了一种基于固态硬盘的映射表重建装置600,该装置还包括:

跳转模块606,用于从当前物理页向后移动N+1页作为下一次进行扫描的物理页。

在一个实施例中,如图8所示,提供了一种基于固态硬盘的映射表重建装置600,该装置还包括:

第二获取模块607,用于获取用户数据的写入请求;

写入模块608,用于当用户数据写入到一物理块的物理页时,将对应的逻辑地址写入到当前物理页的data区域,同时依次将邻近当前物理页的后N个物理页存储的用户数据的逻辑地址相对当前逻辑地址的逻辑地址偏移量按照物理页的前后顺序一并写入当前物理页的data区域。

在一个实施例中,地址计算模块604还用于:

分别计算当前物理页对应的逻辑地址与N个逻辑地址偏移量之和,依次得到N个邻近页对应的逻辑地址。

关于基于固态硬盘的映射表重建装置的具体限定可以参见上文中对于基于固态硬盘的映射表重建方法的限定,在此不再赘述。

在一个实施例中,提供了一种计算机设备,其内部结构图可以如图9所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于固态硬盘的映射表重建方法。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:地址转换装置、人工智能芯片及电子设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类