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

文档序号:6580428阅读:439来源:国知局
专利名称:恢复固态硬盘映射表的方法及其装置的制作方法
技术领域
本发明涉及计算机技术领域,具体涉及一种恢复固态硬盘映射表的方法及其装置。
背景技术
固态硬盘(SSD,solid state disk)由于没有普通硬盘的旋转介质,因而具有读写 性能高,抗震能力强,电源开销小的优点,被广泛应用于军事、车载、工控、视频监控、网络终 端等领域。SSD由控制单元和存储单元组成。目前,SSD的存储单元大多采用闪存(Flash Memory),并且,这种SSD都保存有一映射表,该映射表用于表示闪存的物理存储空间与逻 辑存储空间的映射关系。由于SSD接收到数据写入操作指令之后,SSD需要修改映射表以更新映射表的映 射关系,即SSD需要在映射表中,将数据的逻辑地址信息对应的旧物理地址信息修改为新 物理地址信息,新物理地址为该数据在闪存中的存储地址。因此,SSD需要经常修改映射表, 现有技术中将映射表保存在SSD的缓存(cache)中,以便于修改映射表和减少写入闪存的 次数。由于将映射表保存在缓存中,SSD下电时,映射表会丢失,因此,SSD在闪存的冗余空 间中保存有用于重建映射表的重建信息,使SSD上电时可利用该重建信息重建映射表,以 恢复SSD上次下电时的映射表。由于重建信息分布于闪存的每个块或每个页中,SSD读取重建信息需要消耗较长 时间。因此,现有技术中,恢复SSD上次下电时的映射表需要消耗较长时间。

发明内容
本发明实施例提供一种恢复固态硬盘映射表的方法,能够在较短时间内恢复SSD 上次下电时的映射表。本发明实施例提供了一种恢复固态硬盘映射表的方法,包括判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量;若达到预定数量,则保存缓存中的映射表,接收数据写入操作指令,数据写入操作 指令包括数据的逻辑地址信息;若未达到预定数量,则触发接收数据写入操作指令步骤;根据逻辑地址信息修改缓存中的映射表,保存修改信息;当固态硬盘上电时,加载保存的映射表至缓存中,根据在修改缓存中的映射表之 后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。本发明实施例提供了一种恢复固态硬盘映射表的装置,包括判断模块,用于判断在上次保存缓存中的映射表之后保存的修改信息是否达到预 定数量,若是,则触发写入模块执行相关操作,否则触发接收模块执行相关操作;写入模块,用于保存缓存中的映射表,并在保存映射表后触发接收模块执行相关操作;接收模块,用于接收数据写入操作指令,数据写入操作指令包括数据的逻辑地址 fn息;处理模块,用于根据逻辑地址信息修改缓存中的映射表,保存修改信息;映射表恢复模块,用于当固态硬盘上电时,加载保存的映射表至缓存中;根据在修 改缓存中的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下 电时的映射表。本发明实施例中,在上次保存缓存中的映射表之后保存的修改信息达到预定数量 时,保存缓存中的映射表,接收数据写入操作指令,根据该操作指令中的数据的逻辑地址信 息修改保存的映射表,并保存当前的修改信息,在固态硬盘上电时,根据当前的修改信息, 将缓存中的映射表恢复为固态硬盘上次下电时的映射表。本发明实施例不需要利用重建 信息以恢复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 Random Access Memory)、磁性随机存储器(MRAM, Magnetic Random Access Memory)、或非门闪存(NOR FLASH Memory),或其他非易失存储介质。第一存储单元可以集成于SSD,也可以外设于SSD。 可以理解的是,也可以将SSD的闪存中的指定存储区域作为第一存储单元。
202、将缓存中的映射表写入闪存;203、删除第一存储单元中的修改信息,删除修改信息后,执行204 ;在执行202后,执行203。204、接收数据写入操作指令,数据写入操作指令包括数据的逻辑地址信息;205、根据数据的逻辑地址信息修改缓存中的映射表;206、将数据写入闪存中,并在第一存储单元中保存修改信息,再执行201 ;206的具体执行方式可以包括以下两种(1)先将数据写入闪存中后,再在第一存 储单元中保存修改信息;( 将数据写入闪存中,同时,在第一存储单元中保存修改信息。207、当固态硬盘上电时,加载闪存中最新保存的映射表至缓存中;可以理解的是,可以在执行202(将缓存中的映射表写入闪存)后,将已写入闪存 的最新的映射表设定标记,再执行203(删除第一存储单元中的修改信息);当固态硬盘上 电时,则可以加载闪存中设定标记的映射表至缓存中。可以理解的是,也可以在将缓存中的映射表写入闪存后,删除闪存中旧的映射表, 当固态硬盘上电时,则可以加载闪存中唯一的映射表至缓存中。208、获取第一存储单元中当前的修改信息;在执行207后,执行208。209、根据第一存储单元中当前的修改信息,将加载在缓存中的映射表恢复为固态 硬盘上次下电时的映射表,再执行201。由201至206可知,当SSD上电时,可加载闪存中最新保存的映射表至缓存中,获 取并根据第一存储单元中的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电 时的映射表。然后,再执行201。此处需要说明的是,当206采用第⑵种方式时,可能会出现SSD下电时,SSD已经 保存修改信息,但还未来得及将数据写入闪存中的情况,导致保存的修改信息是无效的。因 此,当206采用第( 种方式时,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、磁盘或光盘等。以上对本发明实施例所提供的恢复固态硬盘映射表的方法及其装置进行了详细 介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本 发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应 理解为对本发明的限制。
权利要求
1.一种恢复固态硬盘映射表的方法,其特征在于,包括判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量;若达到预定数量,则保存缓存中的映射表,接收数据写入操作指令,所述数据写入操作 指令包括数据的逻辑地址信息;若未达到预定数量,则触发接收数据写入操作指令步骤;根据所述逻辑地址信息修改缓存中的映射表,保存修改信息;当固态硬盘上电时,加载保存的映射表至缓存中,根据在修改缓存中的映射表之后保 存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。
2.根据权利要求1所述的恢复固态硬盘映射表的方法,其特征在于,所述判断在上次 保存缓存中的映射表之后保存的修改信息是否达到预定数量包括判断用于存储修改信息 的第一存储单元是否存储已满,若是,则达到预定数量;否则未达到预定数量;在所述保存缓存中的映射表之后,还包括删除所述第一存储单元中存储的修改信息;所述加载保存的映射表至缓存中包括加载最新保存的映射表至缓存中;所述根据在修改缓存中的映射表之后保存的修改信息,将加载在缓存中的映射表恢复 为固态硬盘上次下电时的映射表包括获取所述第一存储单元中的修改信息,根据所述第 一存储单元中的修改信息将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。
3.根据权利要求2所述的恢复固态硬盘映射表的方法,其特征在于,所述保存缓存中 的映射表包括将缓存中的映射表写入闪存中;所述方法还包括将已写入闪存的最新的映射表设定标记;所述加载最新保存的映射表至缓存中包括加载闪存中设定标记的映射表至缓存中。
4.根据权利要求3所述的恢复固态硬盘映射表的方法,其特征在于,所述修改信息为 增量信息项,所述增量信息项包括所述修改缓存中的映射表涉及的逻辑地址信息和新物理 地址信息。
5.根据权利要求4所述的恢复固态硬盘映射表的方法,其特征在于,所述根据第一存 储单元中的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表包 括根据所述第一存储单元中的增量信息项的逻辑地址信息,将所述增量信息项的新物理 地址信息填入所述加载在缓存中的映射表。
6.根据权利要求4所述的恢复固态硬盘映射表的方法,其特征在于,所述根据第一存 储单元中的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表包 括根据第一存储单元中的增量信息项的新物理地址信息获取新物理地址数据,若新物理 地址数据正确,则根据所述增量信息项的逻辑地址信息,将所述增量信息项的新物理地址 信息填入所述加载在缓存中的映射表;若所述新物理地址数据不正确,则删除所述第一存 储单元中的增量信息项。
7.根据权利要求4所述的恢复固态硬盘映射表的方法,其特征在于,所述增量信息项 还包括所述修改缓存中的映射表涉及的旧物理地址信息;所述根据第一存储单元中的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次 下电时的映射表包括若第一存储单元中的增量信息项为完成状态,则根据所述增量信息项的逻辑地址信 息,将所述增量信息项的新物理地址信息填入加载在缓存中的映射表;否则根据该增量信 息项的旧物理地址信息获取旧物理地址数据,若所述旧物理地址数据不正确,则将增量信 息项标记为完成状态,并根据所述增量信息项的逻辑地址信息,将所述增量信息项的新物 理地址信息填入加载在缓存中的映射表。
8.一种恢复固态硬盘映射表的装置,其特征在于,包括判断模块,用于判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数 量,若是,则触发写入模块执行相关操作,否则触发接收模块执行相关操作;写入模块,用于保存缓存中的映射表,并在保存映射表后触发接收模块执行相关操作;接收模块,用于接收数据写入操作指令,所述数据写入操作指令包括数据的逻辑地址 fn息;处理模块,用于根据所述逻辑地址信息修改所述缓存中的映射表,保存修改信息; 映射表恢复模块,用于当固态硬盘上电时,加载保存的映射表至缓存中;根据在修改缓 存中的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时 的映射表。
9.根据权利要求8所述的装置,其特征在于,所述判断在上次保存缓存中的映射表之 后保存的修改信息是否达到预定数量包括判断用于存储修改信息的第一存储单元是否存 储已满,若是,则达到预定数量;否则未达到预定数量;所述装置还包括删除模块,用于在写入模块保存映射表之后,触发接收模块执行相关 操作之前,删除所述第一存储单元中存储的修改信息;所述加载保存的映射表至缓存中包括加载最新保存的映射表至缓存中; 所述映射表恢复模块包括加载单元、获取单元和恢复单元; 所述加载单元,用于当固态硬盘上电时,加载保存的映射表至缓存中; 所述获取单元,用于获取所述第一存储单元中的修改信息;所述恢复单元,用于根据所述第一存储单元中的修改信息将加载在缓存中的映射表恢 复为固态硬盘上次下电时的映射表。
10.根据权利要求9所述的装置,其特征在于,所述保存缓存中的映射表包括将缓存 中的映射表写入闪存中;所述装置还包括设定标记模块,用于将已写入闪存的最新的映射表设定标记; 所述加载最新保存的映射表至缓存中包括加载闪存中设定标记的映射表至缓存中。
全文摘要
本发明实施例公开了一种恢复固态硬盘映射表的方法,包括判断在上次保存缓存中的映射表之后保存的修改信息是否达到预定数量;若达到预定数量,则保存缓存中的映射表,接收数据写入操作指令,数据写入操作指令包括数据的逻辑地址信息;若未达到预定数量,则触发接收数据写入操作指令步骤;根据逻辑地址信息修改缓存中的映射表,保存修改信息;当固态硬盘上电时,加载保存的映射表至缓存中,根据在修改缓存中的映射表之后保存的修改信息,将加载在缓存中的映射表恢复为固态硬盘上次下电时的映射表。本发明实施例能够在较短时间内恢复固态硬盘上次下电时的映射表。
文档编号G06F12/08GK102043727SQ200910174158
公开日2011年5月4日 申请日期2009年10月10日 优先权日2009年10月10日
发明者张宗全 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1