CN102043727B - 恢复固态硬盘映射表的方法及其装置 - Google Patents

恢复固态硬盘映射表的方法及其装置 Download PDF

Info

Publication number
CN102043727B
CN102043727B CN200910174158.XA CN200910174158A CN102043727B CN 102043727 B CN102043727 B CN 102043727B CN 200910174158 A CN200910174158 A CN 200910174158A CN 102043727 B CN102043727 B CN 102043727B
Authority
CN
China
Prior art keywords
mapping table
buffer memory
information
hard disc
state hard
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.)
Expired - Fee Related
Application number
CN200910174158.XA
Other languages
English (en)
Other versions
CN102043727A (zh
Inventor
张宗全
Original Assignee
Huawei Symantec Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN200910174158.XA priority Critical patent/CN102043727B/zh
Publication of CN102043727A publication Critical patent/CN102043727A/zh
Application granted granted Critical
Publication of CN102043727B publication Critical patent/CN102043727B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明实施例公开了一种恢复固态硬盘映射表的方法,包括:判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量;若达到预定数量,则保存缓存中的映射表,接收数据写入操作指令,数据写入操作指令包括数据的逻辑地址信息;若未达到预定数量,则触发接收数据写入操作指令步骤;根据逻辑地址信息修改缓存中的映射表,保存修改信息;当固态硬盘上电时,加载保存的映射表至缓存中,根据在修改缓存中的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。本发明实施例能够在较短时间内恢复固态硬盘上次下电时的映射表。

Description

恢复固态硬盘映射表的方法及其装置
技术领域
本发明涉及计算机技术领域,具体涉及一种恢复固态硬盘映射表的方法及其装置。
背景技术
固态硬盘(SSD,solid state disk)由于没有普通硬盘的旋转介质,因而具有读写性能高,抗震能力强,电源开销小的优点,被广泛应用于军事、车载、工控、视频监控、网络终端等领域。
SSD由控制单元和存储单元组成。目前,SSD的存储单元大多采用闪存(Flash Memory),并且,这种SSD都保存有一映射表,该映射表用于表示闪存的物理存储空间与逻辑存储空间的映射关系。
由于SSD接收到数据写入操作指令之后,SSD需要修改映射表以更新映射表的映射关系,即SSD需要在映射表中,将数据的逻辑地址信息对应的旧物理地址信息修改为新物理地址信息,新物理地址为该数据在闪存中的存储地址。因此,SSD需要经常修改映射表,现有技术中将映射表保存在SSD的缓存(cache)中,以便于修改映射表和减少写入闪存的次数。由于将映射表保存在缓存中,SSD下电时,映射表会丢失,因此,SSD在闪存的冗余空间中保存有用于重建映射表的重建信息,使SSD上电时可利用该重建信息重建映射表,以恢复SSD上次下电时的映射表。
由于重建信息分布于闪存的每个块或每个页中,SSD读取重建信息需要消耗较长时间。因此,现有技术中,恢复SSD上次下电时的映射表需要消耗较长时间。
发明内容
本发明实施例提供一种恢复固态硬盘映射表的方法,能够在较短时间内恢复SSD上次下电时的映射表。
本发明实施例提供了一种恢复固态硬盘映射表的方法,包括:
判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量;
若达到预定数量,则保存缓存中的映射表,接收数据写入操作指令,数据写入操作指令包括数据的逻辑地址信息;
若未达到预定数量,则触发接收数据写入操作指令步骤;
根据逻辑地址信息修改缓存中的映射表,保存修改信息;
当固态硬盘上电时,加载保存的映射表至缓存中,根据在修改缓存中的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。
本发明实施例提供了一种恢复固态硬盘映射表的装置,包括:
判断模块,用于判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量,若是,则触发写入模块执行相关操作,否则触发接收模块执行相关操作;
写入模块,用于保存缓存中的映射表,并在保存映射表后触发接收模块执行相关操作;
接收模块,用于接收数据写入操作指令,数据写入操作指令包括数据的逻辑地址信息;
处理模块,用于根据逻辑地址信息修改缓存中的映射表,保存修改信息;
映射表恢复模块,用于当固态硬盘上电时,加载保存的映射表至缓存中;根据在修改缓存中的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。
本发明实施例中,在上次保存缓存中的映射表之后保存的修改信息达到预定数量时,保存缓存中的映射表,接收数据写入操作指令,根据该操作指令中的数据的逻辑地址信息修改保存的映射表,并保存当前的修改信息,在固态硬盘上电时,根据当前的修改信息,将缓存中的映射表恢复为固态硬盘上次下电时的映射表。本发明实施例不需要利用重建信息以恢复SSD上次下电时的映射表,无需读取分布于闪存的每个块或每个页中的重建信息,因此,本发明实施例能够在较短时间内恢复SSD上次下电时的映射表,并且,SSD可以不存储重建信息,节约了存储开销。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中恢复固态硬盘映射表的方法的一个实施例的流程图;
图2是本发明实施例中恢复固态硬盘映射表的方法的另一实施例的流程图;
图3是本发明实施例中恢复固态硬盘映射表的方法的另一实施例的流程图;
图4是本发明实施例中恢复固态硬盘映射表的方法的另一实施例的流程图;
图5是本发明实施例中恢复固态硬盘映射表的装置的一个实施例的结构示意图;
图6是本发明实施例中恢复固态硬盘映射表的装置的另一实施例的结构示意图;
图7是本发明实施例中恢复固态硬盘映射表的装置的映射表恢复模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种恢复固态硬盘映射表的方法及其装置,能够在较短时间内恢复SSD上次下电时的映射表。以下分别进行详细说明。
请参阅图1,本发明实施例中恢复固态硬盘映射表的方法的一个实施例包括:
101、判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量,若是,则执行102,否则执行103;
本实施例中,实施恢复固态硬盘映射表的方法的装置设置于SSD。可以理解的是,实施恢复固态硬盘映射表的方法的装置也可以不设置于SSD。
102、保存缓存中的映射表,执行103;
103、接收数据写入操作指令,数据写入操作指令包括数据的逻辑地址信息;
104、根据数据的逻辑地址信息修改缓存中的映射表;
SSD在接收数据写入操作指令之后,可以根据数据的逻辑地址信息修改缓存中的映射表,即在缓存中的映射表中,将该数据的逻辑地址信息对应的旧物理地址信息修改为新物理地址信息。
新物理地址信息为该数据在闪存中的存储地址信息,可根据数据的逻辑地址信息获得,此为现有公知技术,此处不作赘述。
105、保存修改信息;
SSD在接收数据写入操作指令之后,可根据数据的逻辑地址信息获得新物理地址信息(即数据在闪存中的存储地址信息),再将数据写入闪存中,此为现有公知技术,此处不作赘述。
修改信息可以采用多种形式表示,只要能够指示SSD是如何修改缓存中的映射表的,即能够指示在缓存中的映射表中,哪些逻辑地址信息对应的物理地址信息有修改,修改为什么新物理地址信息。
例如,修改信息可以为包括修改缓存中的映射表涉及的逻辑地址信息和新物理地址信息的增量信息项。
SSD可以根据105获得修改信息,也可以在接收数据写入操作指令后,根据数据的逻辑地址信息获得新物理地址信息,从而获得修改信息。
因此,104与105没有必然的先后顺序,将数据写入闪存中与保存修改信息也没有必然的先后顺序。
106、当固态硬盘上电时,加载保存的映射表至缓存中;根据在修改保存的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表,再执行101。
由101至105可知,当SSD上电时,可加载保存的映射表至缓存中,获取并根据在保存加载的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。相对现有技术,本实施例不需要利用重建信息以恢复SSD上次下电时的映射表,无需读取分布于闪存的每个块或每个页中的重建信息,因此,本实施例能够在较短时间内恢复SSD上次下电时的映射表,并且,SSD可以不存储重建信息,节约了存储开销。
为便于理解,下面以一更具体的实施例,对本发明实施例中恢复固态硬盘映射表的方法进行详细说明。
请参阅图2,本发明实施例中恢复固态硬盘映射表的方法的一个实施例包括:
201、判断第一存储单元是否存储已满,若是,则执行202,否则执行204;
本实施例中,仍以实施恢复固态硬盘映射表的方法的装置设置于SSD为例。
第一存储单元可为铁电存储器(FRAM,Ferroelectric Magnetic RandomAccess Memory)、磁性随机存储器(MRAM,Magnetic Random AccessMemory)、或非门闪存(NOR FLASH Memory),或其他非易失存储介质。第一存储单元可以集成于SSD,也可以外设于SSD。可以理解的是,也可以将SSD的闪存中的指定存储区域作为第一存储单元。
202、将缓存中的映射表写入闪存;
203、删除第一存储单元中的修改信息,删除修改信息后,执行204;
在执行202后,执行203。
204、接收数据写入操作指令,数据写入操作指令包括数据的逻辑地址信息;
205、根据数据的逻辑地址信息修改缓存中的映射表;
206、将数据写入闪存中,并在第一存储单元中保存修改信息,再执行201;
206的具体执行方式可以包括以下两种:(1)先将数据写入闪存中后,再在第一存储单元中保存修改信息;(2)将数据写入闪存中,同时,在第一存储单元中保存修改信息。
207、当固态硬盘上电时,加载闪存中最新保存的映射表至缓存中;
可以理解的是,可以在执行202(将缓存中的映射表写入闪存)后,将已写入闪存的最新的映射表设定标记,再执行203(删除第一存储单元中的修改信息);当固态硬盘上电时,则可以加载闪存中设定标记的映射表至缓存中。
可以理解的是,也可以在将缓存中的映射表写入闪存后,删除闪存中旧的映射表,当固态硬盘上电时,则可以加载闪存中唯一的映射表至缓存中。
208、获取第一存储单元中当前的修改信息;
在执行207后,执行208。
209、根据第一存储单元中当前的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表,再执行201。
由201至206可知,当SSD上电时,可加载闪存中最新保存的映射表至缓存中,获取并根据第一存储单元中的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。然后,再执行201。
此处需要说明的是,当206采用第(2)种方式时,可能会出现SSD下电时,SSD已经保存修改信息,但还未来得及将数据写入闪存中的情况,导致保存的修改信息是无效的。因此,当206采用第(2)种方式时,SSD根据第一存储单元中的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表具体可以包括:判断修改信息是否有效,若有效,则根据修改信息修改加载在缓存中的映射表。
当206采用第(1)种方式时,不会出现保存的修改信息无效的情况,因此,SSD可以直接根据修改信息修改加载在缓存中的映射表,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。
可以理解的是,当SSD上电时,若第一存储单元没有保存有修改信息,说明在SSD上次下电时,SSD刚好删除第一存储单元中的修改信息,还未来得及执行204和继续修改缓存中的映射表,因此,当SSD此次上电时,SSD加载到缓存中的映射表即为SSD上次下电时的映射表。
本实施例中,SSD在接收数据写入操作指令之后,修改缓存中的映射表,将数据写入闪存中,并在第一存储单元中保存修改信息。若第一存储单元存储已满,则将缓存中的映射表写入闪存中,再删除第一存储单元中的修改信息,然后再接收数据写入操作指令,进行新的修改信息的保存。
因此,当SSD上电时,SSD可以将闪存中最新保存的映射表加载至缓存中,获取并根据第一存储单元中的修改信息,将加载在缓存中的映射表恢复为SSD上次下电时的映射表。相对现有技术,本发明实施例不需要利用重建信息以恢复SSD上次下电时的映射表,无需读取分布于闪存的每个块或每个页中的重建信息,因此,本实施例能够在较短时间内恢复SSD上次下电时的映射表,并且,SSD可以不存储重建信息,节约了存储开销。
此外,为了能在下电时将缓存中的映射表写入闪存中,现有技术中的SSD设置了超级电容,而本实施例不需设置超级电容,实现较为简单。
下面以修改信息为上述增量信息项(包括修改缓存中的映射表涉及的逻辑地址信息和新物理地址信息)为例,对本发明实施例中恢复固态硬盘映射表的方法进行详细说明,请参阅图3,本发明实施例中恢复固态硬盘映射表的方法的另一实施例包括:
301、判断第一存储单元是否存储已满,若是,则执行302,否则执行305;
本实施例仍以实施恢复固态硬盘映射表的方法的装置设置于SSD为例。
302、将缓存中的映射表写入闪存;
303、将已写入闪存的最新的映射表设定标记;
在执行302后,执行303。
可以理解的是,在将已写入闪存的最新的映射表设定标记后,可以删除闪存中旧的映射表,以减小闪存的存储开销。
304、删除第一存储单元中的增量信息项,再执行305;
在执行303后,执行304。
305、接收数据写入操作指令;
306、修改缓存中的映射表;
307、将数据写入闪存中;
308、在第一存储单元中保存增量信息项,再执行301;
本实施例中,在将数据写入闪存中后,在第一存储单元中保存增量信息项,以避免出现保存的增量信息项无效的情况。
增量信息项包括修改缓存中的映射表涉及的逻辑地址信息和新物理地址信息。
309、当固态硬盘上电时,加载闪存中设定标记的映射表至缓存中;
310、获取第一存储单元中的增量信息项;
311、对应于第一存储单元中的增量信息项的逻辑地址信息,将该增量信息项的新物理地址信息填入加载在缓存中的映射表,以将加载在缓存中的映射表恢复为SSD上次下电时的映射表,再执行301。
当第一存储单元采用FRAM时,由于操作FRAM的时间较慢,因此,本实施例也可以在将数据写入闪存中的同时,在第一存储单元中保存增量信息项,以减少总的时间开销。但此时,会出现SSD下电时,SSD已经保存增量信息项,但还未来得及将数据写入闪存中的情况,导致保存的增量信息项是无效的。
因此,当保存增量信息项与将数据写入闪存中同时进行时,在311中,SSD需要先根据增量信息项对应的新物理地址数据判断增量信息项是否有效,若有效,才对应于增量信息项的逻辑地址信息,将该增量信息项的新物理地址信息填入加载在缓存中的映射表。
SSD根据增量信息项对应的新物理地址数据判断增量信息项是否有效,具体为:SSD根据增量信息项的新物理地址信息获取新物理地址数据,若新物理地址数据正确,即新物理地址有数据,则判定该增量信息项有效,否则判定该增量信息项无效。
此处需要说明的是,SSD若判定增量信息项对应的新物理地址数据不正确,即新物理地址没有数据,则SSD判定该增量信息项无效,但是,若在后面的过程中,该新物理地址被写入数据,则下次就会将该增量信息项误判为有效。因此,SSD在判定增量信息项无效之后,可以将该增量信息项删除,也可以将该增量信息项标记为无效,以免下次判断时出错。
本实施例中,SSD上电时,可将闪存中设定标记的映射表加载至缓存中,获取第一存储单元中的增量信息项,并对应于增量信息项的逻辑地址信息,将该增量信息项的新物理地址信息填入加载在缓存中的映射表,从而将加载在缓存中的映射表恢复为SSD上次下电时的映射表。相对现有技术,本实施例不需要利用重建信息以恢复SSD上次下电时的映射表,无需读取分布于闪存的每个块或每个页中的重建信息,因此,本实施例能够在较短时间内恢复SSD上次下电时的映射表。并且,本实施例中,SSD无需存储重建信息,节约了存储开销。
可以理解的是,还可以用旧物理地址数据来判断增量信息项是否有效,此时,增量信息项还需包括旧物理地址信息。下面,则以增量信息项还包括旧物理地址信息为例,说明本发明实施例中恢复固态硬盘映射表的方法。
请参阅图4,本发明实施例中恢复固态硬盘映射表的方法的另一实施例包括:
401、判断第一存储单元是否存储已满,若是,则执行402,否则执行405;
本实施例仍以实施恢复固态硬盘映射表的方法的装置设置于SSD为例。
402、将缓存中的映射表写入闪存;
403、将已写入闪存的最新的映射表设定标记;
在执行402后,执行403。
可以理解的是,在将已写入闪存的最新的映射表设定标记后,可以删除闪存中旧的映射表,以减小闪存的存储开销。
404、删除第一存储单元中的增量信息项,再执行405;
在执行403后,执行404。
405、接收数据写入操作指令;
406、修改缓存中的映射表;
407、将数据写入闪存中,同时,在第一存储单元中保存增量信息项,再执行401;
增量信息项包括修改缓存中的映射表涉及的逻辑地址信息、新物理地址信息和旧物理地址信息。
408、当固态硬盘上电时,加载闪存中设定标记的映射表至缓存中;
409、获取第一存储单元中的增量信息项;
410、判断增量信息项是否为完成状态,若是,则执行413;否则执行411;
本实施例中,将有效的增量信息项标记为完成状态。
411、根据该增量信息项的旧物理地址信息获取旧物理地址数据;
在410中若判定增量信息项不为完成状态,则执行411。
412、若旧物理地址数据不正确,则将该增量信息项标记为完成状态,再执行413;
在根据增量信息项的旧物理地址信息获取旧物理地址数据之后,SSD判断该旧物理地址数据是否正确,若不正确,即旧物理地址无数据,说明该增量信息项有效,则将该增量信息项标记为完成状态。
此处需要说明的是,本实施例中,若SSD根据增量信息项的旧物理地址信息获取的旧物理地址数据不正确,即旧物理地址没有数据,SSD则判定该增量信息项有效,若在之后,该旧物理地址被写入数据,则下次就会将该增量信息项误判为无效。因此,SSD在根据旧物理地址数据判定增量信息项有效之后,可将该增量信息项标记为完成状态,则下次判断时,若增量信息项为完成状态,则确定该增量信息项为有效的。
413、根据增量信息项的逻辑地址信息,将该增量信息项的新物理地址信息填入加载在缓存中的映射表。
在410判定增量信息项为完成状态之后,或者,在412中将增量信息项标记为完成状态后,SSD执行413,将加载在缓存中的映射表恢复为SSD上次下电时的映射表。
可以理解的是,本实施例中,SSD也可以根据增量信息项的新物理地址信息获取新物理地址数据,若新物理地址数据正确,则对应于该增量信息项的逻辑地址信息,将该增量信息项的新物理地址信息填入加载在缓存中的映射表,否则删除该增量信息项,从而将加载在缓存中的映射表恢复为SSD上次下电时的映射表。
可以理解的是,在将数据写入闪存中之后,可以确定保存的增量信息项是有效的,因此,可以在将数据写入闪存中之后,将保存的增量信息项标记为完成状态。
本实施例中,SSD上电时,可将闪存中设定标记的映射表加载至缓存中,获取第一存储单元中的增量信息项,并可以根据增量信息项中的旧物理地址信息或新物理地址信息,将加载在缓存中的映射表恢复为SSD上次下电时的映射表。相对现有技术,本实施例不需要利用重建信息以恢复SSD上次下电时的映射表,无需读取分布于闪存的每个块或每个页中的重建信息,因此,本实施例能够在较短时间内恢复SSD上次下电时的映射表。并且,本实施例中,SSD无需存储重建信息,节约了存储开销。
下面,对本发明实施例中恢复固态硬盘映射表的装置进行说明,请参阅图5,本发明实施例中恢复固态硬盘映射表的装置的一个实施例,该装置包括:
判断模块501,用于判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量,若是,则触发写入模块502执行相关操作,否则触发接收模块503执行相关操作;
写入模块502,用于保存缓存中的映射表,并在保存映射表后触发接收模块503执行相关操作;
接收模块503,用于接收数据写入操作指令,数据写入操作指令包括数据的逻辑地址信息;
处理模块504,用于根据逻辑地址信息修改保存的映射表,保存修改信息;
映射表恢复模块505,用于当固态硬盘上电时,加载保存的映射表至缓存中;根据在修改保存的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。
本实施例中的恢复固态硬盘映射表的装置,当SSD上电时,可加载保存的映射表至缓存中,获取并根据在保存加载的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。相对现有技术,本实施例不需要利用重建信息以恢复SSD上次下电时的映射表,无需读取分布于闪存的每个块或每个页中的重建信息,因此,本实施例能够在较短时间内恢复SSD上次下电时的映射表,并且,SSD可以不存储重建信息,节约了存储开销。
下面以一更具体的实施例对本发明实施例中的恢复固态硬盘映射表的装置进行详细说明。请参阅图6,本发明实施例中处理信息流的装置的另一个实施例,该装置包括:
判断模块601,用于判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量,若是,则触发写入模块602执行相关操作,否则触发接收模块603执行相关操作;
写入模块602,用于保存缓存中的映射表,并在保存映射表后触发删除模块执行相关操作;
接收模块603,用于接收数据写入操作指令,数据写入操作指令包括数据的逻辑地址信息;
处理模块604,用于根据逻辑地址信息修改保存的映射表,保存修改信息;
映射表恢复模块605,用于当固态硬盘上电时,加载最新保存的映射表至缓存中;根据在修改保存的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表;
删除模块606,用于删除第一存储单元中存储的修改信息,并触发接收模块执行相关操作。
在该装置中,判断模块601判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量包括:判断用于存储修改信息的第一存储单元是否存储已满,若是,则达到预定数量;否则未达到预定数量;
如图7所示,映射表恢复模块605包括:加载单元6051、获取单元6052和恢复单元6053;
加载单元6051,用于当固态硬盘上电时,加载保存的映射表至缓存中;
获取单元6052,用于获取第一存储单元中的修改信息;
恢复单元6053,用于根据第一存储单元中的修改信息将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表;
进一步地,该装置还可以包括:设定标记模块607,用于将已写入闪存的最新的映射表设定标记;
加载最新保存的映射表至缓存中包括:加载闪存中设定标记的映射表至缓存中。
本实施例中的恢复固态硬盘映射表的装置,当SSD上电时,可以将最新保存的映射表加载至缓存中,获取并根据第一存储单元中的修改信息,将加载在缓存中的映射表恢复为SSD上次下电时的映射表。相对现有技术,本发明实施例不需要利用重建信息以恢复SSD上次下电时的映射表,无需读取分布于闪存的每个块或每个页中的重建信息,因此,本实施例能够在较短时间内恢复SSD上次下电时的映射表,并且,SSD可以不存储重建信息,节约了存储开销。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的恢复固态硬盘映射表的方法及其装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (5)

1.一种恢复固态硬盘映射表的方法,其特征在于,包括:
判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量;
若达到预定数量,则保存缓存中的映射表,接收数据写入操作指令,所述数据写入操作指令包括数据的逻辑地址信息;
若未达到预定数量,则触发接收数据写入操作指令步骤;
根据所述逻辑地址信息修改缓存中的映射表,保存修改信息;
当固态硬盘上电时,加载保存的映射表至缓存中,根据在修改缓存中的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表;
所述保存缓存中的映射表包括:将缓存中的映射表写入闪存中;
所述方法还包括:将已写入闪存的最新的映射表设定标记;
所述加载最新保存的映射表至缓存中包括:加载闪存中设定标记的映射表至缓存中;
所述根据所述逻辑地址信息修改缓存中的映射表包括:在缓存中的映射表中,将该数据的逻辑地址信息对应的旧物理地址信息修改为新物理地址信息;
所述修改信息为增量信息项,所述增量信息项包括所述修改缓存中的映射表涉及的逻辑地址信息和新物理地址信息;
所述判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量包括:判断用于存储修改信息的第一存储单元是否存储已满,若是,则达到预定数量;否则未达到预定数量;
在所述保存缓存中的映射表之后,还包括:删除所述第一存储单元中存储的修改信息;
所述加载保存的映射表至缓存中包括:加载最新保存的映射表至缓存中;
所述根据在修改缓存中的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表包括:获取所述第一存储单元中的修改信息,根据所述第一存储单元中的修改信息将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。
2.根据权利要求1所述的恢复固态硬盘映射表的方法,其特征在于,所述根据第一存储单元中的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表包括:根据所述第一存储单元中的增量信息项的逻辑地址信息,将所述增量信息项的新物理地址信息填入所述加载在缓存中的映射表。
3.根据权利要求1所述的恢复固态硬盘映射表的方法,其特征在于,所述根据第一存储单元中的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表包括:
根据第一存储单元中的增量信息项的新物理地址信息获取新物理地址数据,若新物理地址数据正确,则根据所述增量信息项的逻辑地址信息,将所述增量信息项的新物理地址信息填入所述加载在缓存中的映射表;若所述新物理地址数据不正确,则删除所述第一存储单元中的增量信息项。
4.根据权利要求1所述的恢复固态硬盘映射表的方法,其特征在于,所述增量信息项还包括所述修改缓存中的映射表涉及的旧物理地址信息;
所述根据第一存储单元中的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表包括:
若第一存储单元中的增量信息项为完成状态,则根据所述增量信息项的逻辑地址信息,将所述增量信息项的新物理地址信息填入加载在缓存中的映射表;否则根据该增量信息项的旧物理地址信息获取旧物理地址数据,若所述旧物理地址数据不正确,则将增量信息项标记为完成状态,并根据所述增量信息项的逻辑地址信息,将所述增量信息项的新物理地址信息填入加载在缓存中的映射表。
5.一种恢复固态硬盘映射表的装置,其特征在于,包括:
判断模块,用于判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量,若是,则触发写入模块执行相关操作,否则触发接收模块执行相关操作;
写入模块,用于保存缓存中的映射表,并在保存映射表后触发接收模块执行相关操作;
接收模块,用于接收数据写入操作指令,所述数据写入操作指令包括数据的逻辑地址信息;
处理模块,用于根据所述逻辑地址信息修改所述缓存中的映射表,保存修改信息;
映射表恢复模块,用于当固态硬盘上电时,加载保存的映射表至缓存中;根据在修改缓存中的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表;
所述保存缓存中的映射表包括:将缓存中的映射表写入闪存中;
所述装置还包括:设定标记模块,用于将已写入闪存的最新的映射表设定标记;
所述加载最新保存的映射表至缓存中包括:加载闪存中设定标记的映射表至缓存中;
所述处理模块根据所述逻辑地址信息修改缓存中的映射表的具体方式为:在缓存中的映射表中,将该数据的逻辑地址信息对应的旧物理地址信息修改为新物理地址信息;
所述修改信息为增量信息项,所述增量信息项包括所述修改缓存中的映射表涉及的逻辑地址信息和新物理地址信息;
所述判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量包括:判断用于存储修改信息的第一存储单元是否存储已满,若是,则达到预定数量;否则未达到预定数量;
所述装置还包括:删除模块,用于在写入模块保存映射表之后,触发接收模块执行相关操作之前,删除所述第一存储单元中存储的修改信息;
所述加载保存的映射表至缓存中包括:加载最新保存的映射表至缓存中;
所述映射表恢复模块包括:加载单元、获取单元和恢复单元;
所述加载单元,用于当固态硬盘上电时,加载保存的映射表至缓存中;
所述获取单元,用于获取所述第一存储单元中的修改信息;
所述恢复单元,用于根据所述第一存储单元中的修改信息将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。
CN200910174158.XA 2009-10-10 2009-10-10 恢复固态硬盘映射表的方法及其装置 Expired - Fee Related CN102043727B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910174158.XA CN102043727B (zh) 2009-10-10 2009-10-10 恢复固态硬盘映射表的方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910174158.XA CN102043727B (zh) 2009-10-10 2009-10-10 恢复固态硬盘映射表的方法及其装置

Publications (2)

Publication Number Publication Date
CN102043727A CN102043727A (zh) 2011-05-04
CN102043727B true CN102043727B (zh) 2014-04-02

Family

ID=43909878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910174158.XA Expired - Fee Related CN102043727B (zh) 2009-10-10 2009-10-10 恢复固态硬盘映射表的方法及其装置

Country Status (1)

Country Link
CN (1) CN102043727B (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103116553B (zh) * 2011-11-16 2017-12-26 联想(北京)有限公司 数据使用控制方法、装置及存储设备
CN102567490B (zh) * 2011-12-21 2013-12-04 华为技术有限公司 数据库内的描述信息的恢复和数据的缓存方法及设备
CN103294607A (zh) * 2012-02-27 2013-09-11 北京华虹集成电路设计有限责任公司 一种存储管理方法
CN102902637B (zh) * 2012-11-19 2015-04-22 北京理工大学 一种固态硬盘数据断电保护方法
CN104216796B (zh) * 2013-06-04 2018-02-09 北京联想核芯科技有限公司 一种数据备份、恢复方法及电子设备
US20150089118A1 (en) * 2013-09-20 2015-03-26 Sandisk Technologies Inc. Methods, systems, and computer readable media for partition and cache restore
US9684607B2 (en) 2015-02-25 2017-06-20 Microsoft Technology Licensing, Llc Automatic recovery of application cache warmth
SG11201610696UA (en) 2014-07-01 2017-01-27 Razer Asia Pacific Pte Ltd Data storage systems, computing systems, methods for controlling a data storage system, and methods for controlling a computing system
US9684596B2 (en) 2015-02-25 2017-06-20 Microsoft Technology Licensing, Llc Application cache replication to secondary application(s)
CN104809037B (zh) * 2015-05-13 2018-04-13 深圳芯邦科技股份有限公司 eMMC基于特殊页的快速启动方法及装置
CN105243025B (zh) * 2015-09-25 2019-04-19 北京联想核芯科技有限公司 一种映射表的形成及加载方法、电子设备
CN107346211B (zh) * 2016-05-06 2020-03-31 合肥兆芯电子有限公司 映射表加载方法、存储器控制电路单元与存储器储存装置
CN112035382A (zh) * 2016-05-24 2020-12-04 北京忆芯科技有限公司 低延迟访问ftl的方法与装置
CN106294026A (zh) * 2016-08-19 2017-01-04 浪潮(北京)电子信息产业有限公司 一种固态盘异常掉电后的映射表恢复方法及其系统
CN106775466A (zh) * 2016-12-05 2017-05-31 深圳市金泰克半导体有限公司 一种无dram的ftl读缓存管理方法及装置
CN108536619B (zh) * 2017-03-03 2021-12-14 北京忆恒创源科技股份有限公司 快速恢复ftl表的方法与装置
CN107193758A (zh) * 2017-05-19 2017-09-22 记忆科技(深圳)有限公司 一种固态硬盘的映射表管理方法及固态硬盘
CN108121670B (zh) * 2017-08-07 2021-09-28 鸿秦(北京)科技有限公司 一种减少固态硬盘元数据回刷频率的映射方法
CN107506311B (zh) * 2017-08-30 2020-10-20 苏州浪潮智能科技有限公司 一种固态硬盘的ftl表的刷写方法及装置
CN109271329A (zh) * 2018-09-01 2019-01-25 苏州韦科韬信息技术有限公司 一种提高重建未映射表效率的方法
KR20200030245A (ko) * 2018-09-12 2020-03-20 에스케이하이닉스 주식회사 메모리 시스템에서의 유효 데이터 관리 방법 및 장치
CN109325373B (zh) * 2018-09-20 2021-10-22 郑州云海信息技术有限公司 一种元数据的保存方法、装置、设备及可读存储介质
KR20200110863A (ko) * 2019-03-18 2020-09-28 에스케이하이닉스 주식회사 메모리 시스템, 컴퓨팅 장치 및 동작 방법
US11061598B2 (en) * 2019-03-25 2021-07-13 Western Digital Technologies, Inc. Optimized handling of multiple copies in storage management
CN110286850B (zh) * 2019-05-15 2023-05-09 镕铭微电子(济南)有限公司 固态硬盘元数据的写入方法、恢复方法及固态硬盘
CN110287129B (zh) * 2019-06-27 2021-07-13 深圳忆联信息系统有限公司 基于固态硬盘的l2p表更新及写入管理方法和装置
CN112596949B (zh) * 2020-12-23 2022-12-16 厦门市美亚柏科信息股份有限公司 一种高效率的ssd删除数据恢复方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1338751A (zh) * 2001-07-05 2002-03-06 刘海全 一种计算机硬盘数据的保护方法
CN1609986A (zh) * 2004-11-17 2005-04-27 秦峰 硬盘永久型动态保存技术

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
TW200828014A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Flash memory management method with low RAM utilization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1338751A (zh) * 2001-07-05 2002-03-06 刘海全 一种计算机硬盘数据的保护方法
CN1609986A (zh) * 2004-11-17 2005-04-27 秦峰 硬盘永久型动态保存技术

Also Published As

Publication number Publication date
CN102043727A (zh) 2011-05-04

Similar Documents

Publication Publication Date Title
CN102043727B (zh) 恢复固态硬盘映射表的方法及其装置
US9645895B2 (en) Data storage device and flash memory control method
CN102483714B (zh) 恢复闪存存储器设备中的索引页的系统及方法
US8737148B2 (en) Selective retirement of blocks
JP5683023B2 (ja) 不揮発性一時データの処理
CN109977034B (zh) 数据储存装置以及非挥发式存储器操作方法
CN101963891A (zh) 数据存储处理方法与装置、固态硬盘系统与数据处理系统
CN105718530B (zh) 文件存储系统及其文件存储控制方法
CN108733510A (zh) 数据储存装置及映射表重建方法
CN101782875B (zh) 存储设备和数据存储方法
US20110060865A1 (en) Systems and Methods for Flash Memory Utilization
US10162561B2 (en) Managing backup of logical-to-physical translation information to control boot-time and write amplification
CN107092563B (zh) 一种垃圾回收方法及装置
US20170285954A1 (en) Data storage device and data maintenance method thereof
CN104516959A (zh) 一种管理数据库日志的方法及装置
WO2023116346A1 (zh) 异常掉电下Trim数据的恢复方法、系统及固态硬盘
CN108614744B (zh) 基于NAND flash的掉电保护方法和装置
CN109101437A (zh) 一种数据存储方法与终端
CN113031856A (zh) 存储器子系统中的断电数据保护
CN102789813B (zh) 一种控制存储设备内非最低有效位页使用的方法及装置
US9047923B1 (en) Fast shingled tracks recording
CN112347001B (zh) 闪存垃圾回收的校验方法、装置及电子设备
CN115878033B (zh) 一种固态硬盘及其映射表管理方法
CN110262980B (zh) 基于有限寿命存储介质的高速存储系统
CN111324289B (zh) 一种存储器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER NAME: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee after: Huawei Symantec Technologies Co., Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee before: Chengdu Huawei Symantec Technologies Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140402

Termination date: 20201010