CN110704337B - 基于固态硬盘的映射表重建方法、装置和计算机设备 - Google Patents
基于固态硬盘的映射表重建方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN110704337B CN110704337B CN201910899968.5A CN201910899968A CN110704337B CN 110704337 B CN110704337 B CN 110704337B CN 201910899968 A CN201910899968 A CN 201910899968A CN 110704337 B CN110704337 B CN 110704337B
- Authority
- CN
- China
- Prior art keywords
- logical address
- physical page
- mapping table
- solid state
- state disk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于固态硬盘的映射表重建方法、装置、计算机设备和存储介质,其中该方法包括:获取基于固态硬盘的映射表重建请求;根据所述基于固态硬盘的映射表重建请求从对应物理块的最后一个物理页开始进行扫描;从当前物理页的data区域中读取对应的逻辑地址以及N个逻辑地址偏移量,其中,所述N为大于1的正整数;根据所述当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址;根据所述当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系。本发明实现了当SSD内部映射表丢失时,可以减少全盘扫描的次数,达到快速重建映射表的目的。
Description
技术领域
本发明涉及固态硬盘技术领域,特别是涉及一种基于固态硬盘的映射表重建方法、装置、计算机设备和存储介质。
背景技术
目前,在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)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于固态硬盘的映射表重建方法,其特征在于,所述方法包括:
获取基于固态硬盘的映射表重建请求;
根据所述基于固态硬盘的映射表重建请求从物理块的最后一个物理页开始进行扫描;
从当前物理页的data区域中读取对应的逻辑地址以及N个逻辑地址偏移量,其中,所述N为大于1的正整数;
根据所述当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址;
根据所述当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系。
2.根据权利要求1所述的基于固态硬盘的映射表重建方法,其特征在于,在所述根据所述当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系的步骤之后还包括:
从所述当前物理页向前移动N+1页作为下一次进行扫描的物理页。
3.根据权利要求1所述的基于固态硬盘的映射表重建方法,其特征在于,在所述获取基于固态硬盘的映射表重建请求的步骤之前还包括:
获取用户数据的写入请求;
当所述用户数据写入到一物理块的物理页时,将对应的逻辑地址写入到当前物理页的data区域,同时依次将邻近所述当前物理页的后N个物理页存储的用户数据的逻辑地址相对当前逻辑地址的逻辑地址偏移量按照物理页的前后顺序一并写入所述当前物理页的data区域。
4.根据权利要求1-3任一项所述的基于固态硬盘的映射表重建方法,其特征在于,所述根据所述当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址的步骤还包括:
分别计算所述当前物理页对应的逻辑地址与N个逻辑地址偏移量之和,依次得到N个邻近页对应的逻辑地址。
5.一种基于固态硬盘的映射表重建装置,其特征在于,所述装置包括:
第一获取模块,所述第一获取模块用于获取基于固态硬盘的映射表重建请求;
扫描模块,所述扫描模块用于根据所述基于固态硬盘的映射表重建请求从物理块的最后一个物理页开始进行扫描;
地址读取模块,所述地址读取模块用于从当前物理页的data区域中读取对应的逻辑地址以及N个逻辑地址偏移量,其中,所述N为大于1的正整数;
地址计算模块,所述地址计算模块用于根据所述当前物理页对应的逻辑地址以及N个逻辑地址偏移量依次得到N个邻近页对应的逻辑地址;
映射重建模块,所述映射重建模块用于根据所述当前物理页对应的逻辑地址以及N个邻近页对应的逻辑地址重建逻辑地址到物理地址的映射关系。
6.根据权利要求5所述的基于固态硬盘的映射表重建装置,其特征在于,所述装置还包括:
跳转模块,所述跳转模块用于从所述当前物理页向前移动N+1页作为下一次进行扫描的物理页。
7.根据权利要求5所述的基于固态硬盘的映射表重建装置,其特征在于,所述装置还包括:
第二获取模块,所述第二获取模块用于获取用户数据的写入请求;
写入模块,所述写入模块用于当所述用户数据写入到一物理块的物理页时,将对应的逻辑地址写入到当前物理页的data区域,同时依次将邻近所述当前物理页的后N个物理页存储的用户数据的逻辑地址相对当前逻辑地址的逻辑地址偏移量按照物理页的前后顺序一并写入所述当前物理页的data区域。
8.根据权利要求5-7任一项所述的基于固态硬盘的映射表重建装置,其特征在于,所述地址计算模块还用于:
分别计算所述当前物理页对应的逻辑地址与N个逻辑地址偏移量之和,依次得到N个邻近页对应的逻辑地址。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910899968.5A CN110704337B (zh) | 2019-09-23 | 2019-09-23 | 基于固态硬盘的映射表重建方法、装置和计算机设备 |
US17/043,482 US11816038B2 (en) | 2019-09-23 | 2020-02-28 | Method and apparatus of mapping table reconstruction based on SSD, and computer device |
PCT/CN2020/077120 WO2021056963A1 (zh) | 2019-09-23 | 2020-02-28 | 基于固态硬盘的映射表重建方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910899968.5A CN110704337B (zh) | 2019-09-23 | 2019-09-23 | 基于固态硬盘的映射表重建方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110704337A CN110704337A (zh) | 2020-01-17 |
CN110704337B true CN110704337B (zh) | 2021-01-19 |
Family
ID=69195618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910899968.5A Active CN110704337B (zh) | 2019-09-23 | 2019-09-23 | 基于固态硬盘的映射表重建方法、装置和计算机设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11816038B2 (zh) |
CN (1) | CN110704337B (zh) |
WO (1) | WO2021056963A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704337B (zh) * | 2019-09-23 | 2021-01-19 | 深圳忆联信息***有限公司 | 基于固态硬盘的映射表重建方法、装置和计算机设备 |
CN113971964B (zh) * | 2020-07-24 | 2023-08-04 | 深圳市江波龙电子股份有限公司 | 一种数据恢复方法及存储设备、终端设备 |
CN112000591B (zh) * | 2020-08-24 | 2023-12-05 | 深圳忆联信息***有限公司 | 可指定逻辑区块地址的扫描ssd方法、装置、计算机设备及存储介质 |
CN112084070B (zh) * | 2020-09-21 | 2024-04-26 | 深圳佰维存储科技股份有限公司 | L2p映射数据恢复方法、装置、存储介质及电子设备 |
CN113900589A (zh) * | 2021-09-16 | 2022-01-07 | 合肥致存微电子有限责任公司 | 一种数据的写入方法及装置 |
CN116467224B (zh) * | 2022-01-12 | 2023-10-31 | 联芸科技(杭州)股份有限公司 | L2p映射表重建方法及固态硬盘 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699341A (zh) * | 2013-12-17 | 2014-04-02 | 飞天诚信科技股份有限公司 | 一种向存储设备中写数据的方法 |
CN108153681A (zh) * | 2017-11-29 | 2018-06-12 | 深圳忆联信息***有限公司 | 一种大容量固态硬盘映射表压缩方法 |
CN108733510A (zh) * | 2017-04-25 | 2018-11-02 | 慧荣科技股份有限公司 | 数据储存装置及映射表重建方法 |
CN108804026A (zh) * | 2018-03-27 | 2018-11-13 | 深圳忆联信息***有限公司 | 一种固态硬盘全盘扫描方法及固态硬盘 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4949326A (en) * | 1986-12-10 | 1990-08-14 | Matsushita Electric Industrial Co., Ltd. | Optical information recording and reproducing system using optical disks having an error correction function |
CN103902406A (zh) * | 2012-12-31 | 2014-07-02 | 杨威锋 | 高可靠性固态存储设备的映射表信息的保存和恢复技术 |
TWI514140B (zh) | 2013-02-05 | 2015-12-21 | Via Tech Inc | 非揮發性記憶裝置及其操作方法 |
KR102233808B1 (ko) * | 2014-03-14 | 2021-03-30 | 삼성전자주식회사 | 저장 장치 및 그것의 테이블 관리 방법 |
CN105224478B (zh) * | 2015-09-25 | 2019-01-22 | 北京联想核芯科技有限公司 | 一种映射表的形成、更新和恢复方法及电子设备 |
JP6732684B2 (ja) * | 2017-03-15 | 2020-07-29 | キオクシア株式会社 | 情報処理装置、ストレージデバイスおよび情報処理システム |
CN107562644B (zh) * | 2017-08-11 | 2021-02-09 | 记忆科技(深圳)有限公司 | 一种固态硬盘映射表的压缩方法 |
KR102457564B1 (ko) * | 2017-09-20 | 2022-10-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
CN110704337B (zh) * | 2019-09-23 | 2021-01-19 | 深圳忆联信息***有限公司 | 基于固态硬盘的映射表重建方法、装置和计算机设备 |
-
2019
- 2019-09-23 CN CN201910899968.5A patent/CN110704337B/zh active Active
-
2020
- 2020-02-28 WO PCT/CN2020/077120 patent/WO2021056963A1/zh active Application Filing
- 2020-02-28 US US17/043,482 patent/US11816038B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699341A (zh) * | 2013-12-17 | 2014-04-02 | 飞天诚信科技股份有限公司 | 一种向存储设备中写数据的方法 |
CN108733510A (zh) * | 2017-04-25 | 2018-11-02 | 慧荣科技股份有限公司 | 数据储存装置及映射表重建方法 |
CN108153681A (zh) * | 2017-11-29 | 2018-06-12 | 深圳忆联信息***有限公司 | 一种大容量固态硬盘映射表压缩方法 |
CN108804026A (zh) * | 2018-03-27 | 2018-11-13 | 深圳忆联信息***有限公司 | 一种固态硬盘全盘扫描方法及固态硬盘 |
Also Published As
Publication number | Publication date |
---|---|
US20230131779A1 (en) | 2023-04-27 |
CN110704337A (zh) | 2020-01-17 |
WO2021056963A1 (zh) | 2021-04-01 |
US11816038B2 (en) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110704337B (zh) | 基于固态硬盘的映射表重建方法、装置和计算机设备 | |
CN109597571B (zh) | 数据存储方法、数据读取方法、装置和计算机设备 | |
CN110297606A (zh) | 基于固态硬盘的坏块管理方法、装置和计算机设备 | |
CN109144790A (zh) | MySQL数据库的合成备份方法和装置 | |
CN115543217B (zh) | 独立冗余磁盘阵列数据组织方法、装置、服务器和介质 | |
CN110362276A (zh) | 基于固态硬盘的Trim执行效率提升方法和装置 | |
CN112083882B (zh) | Sram坏点处理方法、***、装置和计算机设备 | |
US10942811B2 (en) | Data processing method for solid state drive | |
CN113312309B (zh) | 快照链的管理方法、装置和存储介质 | |
CN111897495B (zh) | 提高ssd写性能的实现方法、装置、计算机设备及存储介质 | |
CN115543215B (zh) | 数据写操作、数据读操作方法、装置 | |
CN110275596B (zh) | 基于固态硬盘的上电初始化加速方法、装置和计算机设备 | |
CN114115745B (zh) | 多Pass编程NAND的RAID优化方法、装置及计算机设备 | |
CN113821377B (zh) | 一种分布式存储集群的数据恢复方法、***及存储介质 | |
US10776052B2 (en) | Information processing apparatus, data compressing method, and computer-readable recording medium | |
CN116204356A (zh) | 基于索引重定向的数据合成方法、装置、设备和存储介质 | |
CN112596679B (zh) | 固态硬盘的raid实现方法、装置、计算机设备及存储介质 | |
CN110888823B (zh) | 页扫描效率的提升方法、装置及计算机设备 | |
CN109408404B (zh) | 基于tf卡的逆向查表方法、装置和计算机设备 | |
CN114185620B (zh) | 加速ssd固件加载实现方法、装置、计算机设备及存储介质 | |
CN117149075A (zh) | 基于DRAM-less固态硬盘的RAID实现方法和装置 | |
CN114710441B (zh) | 一种链路聚合方法、***、计算机设备和存储介质 | |
JP2018206161A (ja) | 記憶装置および記憶装置のデータ管理方法 | |
CN117407322A (zh) | DRAM-less固态硬盘的映射表双重更新实现方法和装置 | |
CN114003438A (zh) | 固态硬盘的映射表恢复方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |