地址映射关系反馈方法、装置、设备及可读存储介质与流程

文档序号:16880339发布日期:2019-02-15 22:04阅读:145来源:国知局
地址映射关系反馈方法、装置、设备及可读存储介质与流程

本发明涉及存储技术领域,特别是涉及一种地址映射关系反馈方法、装置、设备及可读存储介质。



背景技术:

固态硬盘(solidstatedisks)中的nandflash存储器具有很多优于传统磁盘的特点,如低访问延迟、低能耗、噪声小、i/o性能高、寻址时间小、对温度和振动稳定性好等。由于固态硬盘的上述优点,且随着flash存储技术的不断进步使其每字节的价格不断降低,基于flash存储器的固态硬盘受到更广泛的关注。但是,flash存储器仍然存在固有缺陷阻碍其广泛应用,flash存储器的固有缺陷主要有价格仍然较高、读写速度不平衡、先擦后写特性、使用寿命受擦除次数限制。

为了减少上述固有缺陷对其性能的影响,flash存储器需要有效的管理方式支持。目前,大多通过ftl管理flash存储器的方式。即,基于nandflash的存储设备通常由三部分组成:接口控制器、闪存转换层(ftl)、nand闪存阵列。其中,flash存储器转换层实现对flash存储器的管理时,最基本和关键的是地址映射策略。地址映射是指从文件系统发出的虚拟逻辑地址到flash存储器中真实物理地址之间的映射关系。

地址映射关系可以对ftl甚至是整个flash可靠性产生至关重要的影响。具体的,由于nand闪存使用寿命受擦除次数限制,且极易出现损坏。一旦存储地址映射关系的区域出现错误,则会导致存储设备数据的丢失,无法进行回复等问题,进而导致存储设备的存储数据的可靠性较低。

综上所述,如何有效地解决保障数据的可靠性等问题,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种地址映射关系反馈方法、装置、设备及可读存储介质,通过在在nandflash存储设备中备份地址映射表,提高nandflash存储设备的数据存储的可靠性。

为解决上述技术问题,本发明提供如下技术方案:

一种地址映射关系反馈方法,包括:

nandflash存储设备接收目标进程发送的目标数据的地址查询请求;

读取预设映射表,获得存储所述地址查询请求对应的地址映射表的目标映射关系;

从所述原始物理地址中读取所述地址映射表,并判断是否成功读取到所述目标数据对应的目标地址映射关系;

如果读取失败,则从所述备份物理地址中读取所述地址映射表,获得所述目标地址映射关系;

将所述目标地址映射关系反馈至所述目标进程;其中,所述目标地址映射关系为所述目标数据的逻辑地址与物理地址的对应关系。

优选地,在所述接收目标进程发送的目标数据的地址查询请求之前,还包括:

nandflash存储设备接收地址映射表的写入请求;其中,所述nandflash存储设备包括区域一、区域二、区域三;

在所述区域二中确定出与所述地址映射表对应的原始存储地址,并在所述区域三中确定出与所述地址映射表对应的备份存储地址;

对所述地址映射表、所述原始存储地址和备份存储地址进行数据重组,获得目标地址映射表,以及所述原始存储地址和所述备份存储地址的目标映射关系;

将所述目标地址映射表分别写入所述原始存储地址和所述备份存储地址,并将所述目标映射关系写入所述区域一。

优选地,所述在所述区域二中确定出与所述地址映射表对应的原始存储地址,并在所述区域三中确定出与所述地址映射表对应的备份存储地址,包括:

采用磨损均衡机制,在所述区域二中确定出与所述地址映射表对应的原始存储地址,并在所述区域三中确定出与所述地址映射表对应的备份存储地址。

优选地,将所述目标映射关系写入所述区域一,包括:

将所述目标映射关系写入所述区域一中的预设映射表;其中,所述预设映射表的存储格式为ecc+vld+备份地址n+原始地址n+备份地址n-1+备份地址n-1+…+备份地址1+原始地址1+备份地址0+原始地址0;所述vld=1,表明所述预设映射表有效。

优选地,从所述备份物理地址中读取所述地址映射表,获得所述目标地址映射关系之后,还包括:

在所述区域二中重新确定出一块目标物理地址,并将所述地址映射表写入新的目标物理地址中;

将所述目标映射关系替换为所述目标物理地址和所述备份物理地址的映射关系。

优选地,还包括:

接收所述目标映射关系的写回操作请求;

在所述区域一中确定出一块写回物理地址,将所述目标映射关系写入所述写回物理地址中,以便nand-flash存储阵列进行写操作。

优选地,还包括:

接收所述地址映射表的更新请求,并将所述原始存储地址和备份存储地址中的地址映射表进行替换。

一种地址映射关系反馈装置,包括:

地址查询请求获取模块,用于nandflash存储设备接收目标进程发送的目标数据的地址查询请求;

目标映射关系获取模块,用于读取预设映射表,获得存储所述地址查询请求对应的地址映射表的目标映射关系;

第一目标地址映射关系读取模块,用于从所述原始物理地址中读取所述地址映射表,并判断是否成功读取到所述目标数据对应的目标地址映射关系;

第二目标地址映射关系读取模块,用于若所述第一目标地址映射关系读取模块读取失败,则从所述备份物理地址中读取所述地址映射表,获得所述目标地址映射关系;

目标地址映射关系反馈模块,用于将所述目标地址映射关系反馈至所述目标进程;其中,所述目标地址映射关系为所述目标数据的逻辑地址与物理地址的对应关系。

一种地址映射关系反馈设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述地址映射关系反馈方法的步骤。

一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述地址映射关系反馈方法的步骤。

应用本发明实施例所提供的方法,nandflash存储设备接收目标进程发送的目标数据的地址查询请求;读取预设映射表,获得存储地址查询请求对应的地址映射表的目标映射关系;从原始物理地址中读取地址映射表,并判断是否成功读取到目标数据对应的目标地址映射关系;如果读取失败,则从备份物理地址中读取地址映射表,获得目标地址映射关系;将目标地址映射关系反馈至目标进程;其中,目标地址映射关系为目标数据的逻辑地址与物理地址的对应关系。

nandflash存储设备接收目标进程发送的目标数据的地址查询请求之后,首先读取预设映射表,获得存储地址查询请求对应的地址映射表的目标映射关系。其中,目标映射关系为地址映射表的原始存储地址和备份存储地址的对应关系。得到目标映射关系之后,首先从原始存储地址中读取地址映射表,并判断是否成功读取到目标数据对应的目标地址映射关系。由于nand闪存的使用寿命受擦除次数限制,且极易出现损坏,因此nand内存存储的地址映射表极易出现损坏,进而导致无法正常读取地址映射关系。如果未能成功读取到目标地址映射关系,则从备份存储地址中读取地址映射表,获得目标地址映射关系。得到目标地址预设关系之后,可将目标地址映射关系反馈给目标进程,以便目标进程基于该对应关系对目标数据进行操作。其中,目标映射关系为目标数据的逻辑地址与物理地址的对应关系。通过将地址映射表进行备份,即使是在原始存储地址中存储的地址映射表发生了损坏,导致无法成功读取目标地址映射关系时,还可通过读取存储在备份存储地址的地址映射表,读取到,并返回目标数据的目标地址映射关系给目标进程。如此,便可保障目标进程可获得用于对存储设备中存储的目标数据进行操作的地址映射关系,即存储设备内存储的数据依然可操作,数据不会丢失,可提升nandflash存储设备的可靠性。

相应地,本发明实施例还提供了与上述地址映射关系反馈方法相对应的地址映射关系反馈装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

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

图1为本发明实施例中一种地址映射关系反馈方法的实施流程图;

图2为本发明实施例中一种地址映射表写入流程示意图;

图3为本发明实施例中一种nandflash存储设备区域划分示意图;

图4为本发明实施例中一种预设映射表的存储格式示意图;

图5为本发明实施例中一种写备份机制实现框图;

图6为本发明实施例中一种读备份机制实现框图;

图7为本发明实施例中一种地址映射关系反馈装置的结构示意图;

图8为本发明实施例中一种地址映射关系反馈设备的结构示意图;

图9为本发明实施例中一种地址映射关系反馈设备的具体结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

请参考图1,图1为本发明实施例中一种地址映射关系反馈方法的流程图,该方法包括以下步骤:

s101、nandflash存储设备接收目标进程发送的目标数据的地址查询请求。

其中nandflash存储设备为包括接口控制器、内存转换层(ftl)和nand闪存阵列的存储设备。由于在nandflash存储设备使用过程中,通常使用逻辑地址和物理地址两种地址来实现数据的读和写操作。其中,在有地址变换功能的计算机中,访内指令给出的地址(操作数)叫逻辑地址,也叫相对地址。要经过寻址方式的计算或变换才得到内存储器中的实际有效地址,即物理地址。上层应用或进程需对存储设备内存储的目标数据进行操作时,需确定该目标数据存储的物理地址之后,才能真正对目标数据进行操作。

其中,目标进程可具体对目标数据进行读/写的进程,目标进程发送的地址查询请求具体可以为查询已知逻辑地址的目标数据对应的物理地址。例如,查询请求为请求查询存储逻辑地址为a的目标数据的物理地址。

s102、读取预设映射表,获得存储地址查询请求对应的地址映射表的目标映射关系。

接收到读取目标数据的地址查询请求之后,可读取预设映射表,以获得存储地址查询请求对应的地址预设表的目标映射关系。其中,目标映射关系为存储地址预设表的原始存储地址与备份存储地址之间的对应关系,预设映射表即保存了多个不同地址映射表的对应关系。读取到地址查询请求对应的地址映射表的目标映射关系,即获得了与地址查询请求对应的地址映射表的原始存储地址和备份存储地址。其中,在预设映射表中,可通过判断地址查询请求所查询的目标数据对应的类型,来确定目标影响关系。例如,按照数据的冷热,将冷数据的地址映射关系存入冷数据地址映射表中,将热数据的地址映射关系存入热豆浆地址映射表中。

s103、从原始物理地址中读取地址映射表,并判断是否成功读取到目标数据对应的目标地址映射关系。

具体的,从原始物理地址中读取地址映射表,可以对地址映射表中的逻辑地址进行判断,即判断当前读取到的逻辑地址是否为目标数据的逻辑地址,如果是,则将该逻辑地址对应的物理地址读取出,如此便可获得目标数据的目标地址映射关系。由于nandflash极容易出现损坏,因此存储在原始物理地址中的地址映射表可能会出现不可读或读取到的逻辑地址有误的情况,因此还需判断是否成功读取到目标数据对应的目标地址映射关系。判断是否成功读取的方式可以为对读取到的目标地址映射关系进行校验,如果校验成功,则确定读取成功,如果校验失败,则确定读取失败。当然,若在地址映射表中未查找到目标数据对应的逻辑地址和/或逻辑地址也视为读取失败。

如果读取成功,则可执行步骤s105的操作;如果读取失败,则执行步骤s104的操作。

s104、从备份物理地址中读取地址映射表,获得目标地址映射关系。

在原始物理地址中未读取到目标地址映射关系时,还可从备份存储地址中读取目标地址映射关系。需要说明的是,针对同一个地址映射表,可以存在多个备份物理地址,即本发明实施例对地址映射表的备份数量不做限定。

s105、将目标地址映射关系反馈至目标进程。

其中,目标地址映射关系为目标数据的逻辑地址与物理地址的对应关系。

得到目标地址映射关系之后,可将目标地址映射关系发送给目标进程,以便目标进程拿到目标数据的逻辑地址与物理地址的对应关系,进一步基于物理地址对目标数据进行读取或修改。

优选地,为提高地址映射关系的反馈效率,从备份存储地址中读取到目标数据的目标地址映射关系之后,还可目标地址映射关系重新写入区域二中。在写入区域二时,为提高新写入的目标地址映射关系的可用性,还可在区域二中重新确定出一块目标物理地址,并将地址映射表写入新的目标物理地址中;将目标映射关系替换为目标物理地址和备份物理地址的映射关系。如此,在下一次接收到目标数据的地址查询请求时,即可在区域二中便可获得目标存储映射关系。

应用本发明实施例所提供的方法,nandflash存储设备接收目标进程发送的目标数据的地址查询请求;读取预设映射表,获得存储地址查询请求对应的地址映射表的目标映射关系;从原始物理地址中读取地址映射表,并判断是否成功读取到目标数据对应的目标地址映射关系;如果读取失败,则从备份物理地址中读取地址映射表,获得目标地址映射关系;将目标地址映射关系反馈至目标进程;其中,目标地址映射关系为目标数据的逻辑地址与物理地址的对应关系。

nandflash存储设备接收目标进程发送的目标数据的地址查询请求之后,首先读取预设映射表,获得存储地址查询请求对应的地址映射表的目标映射关系。其中,目标映射关系为地址映射表的原始存储地址和备份存储地址的对应关系。得到目标映射关系之后,首先从原始存储地址中读取地址映射表,并判断是否成功读取到目标数据对应的目标地址映射关系。由于nand闪存的使用寿命受擦除次数限制,且极易出现损坏,因此nand内存存储的地址映射表极易出现损坏,进而导致无法正常读取地址映射关系。如果未能成功读取到目标地址映射关系,则从备份存储地址中读取地址映射表,获得目标地址映射关系。得到目标地址预设关系之后,可将目标地址映射关系反馈给目标进程,以便目标进程基于该对应关系对目标数据进行操作。其中,目标映射关系为目标数据的逻辑地址与物理地址的对应关系。通过将地址映射表进行备份,即使是在原始存储地址中存储的地址映射表发生了损坏,导致无法成功读取目标地址映射关系时,还可通过读取存储在备份存储地址的地址映射表,读取到,并返回目标数据的目标地址映射关系给目标进程。如此,便可保障目标进程可获得用于对存储设备中存储的目标数据进行操作的地址映射关系,即存储设备内存储的数据依然可操作,数据不会丢失,可提升nandflash存储设备的可靠性。

实施例二:

为便于本领域技术人员更好的理解本发明实施例所提供的技术方案,下面对nandflash存储设备写入地址映射表为例,对本发明实施例所提供的技术方案进行详细描述。与实施例一相似/相同步骤可参照实施例一。

在执行步骤s101之前,还可以在nandflash存储设备中写入地址映射表。请参考图2,图2为本发明实施例中一种地址映射表写入流程示意图,具体过程如下:

s201、nandflash存储设备接收地址映射表的写入请求。

其中,nandflash存储设备包括区域一、区域二、区域三。

请参考图3,图3为本发明实施例中一种nandflash存储设备区域划分示意图。将nandflash存储设备划分为四个区域,其中,区域一存储原始存储地址和备份存储地址的对应关系;区域二中的原始存储地址和区域三的备份存储地址均存储地址映射表;区域四存储数据。为了防止存储块出现坏块,设置区域一、区域二和区域三时,可配置得比实际需求大一些。

s202、在区域二中确定出与地址映射表对应的原始存储地址,并在区域三中确定出与地址映射表对应的备份存储地址。

接收到地址映射表的写入请求之后,可在区域二中确定出一块物理地址,该物理地址即为存储地址映射表的原始存储地址,同时,在区域三中确定出一块或多块物理地址,区域三中的物理地址即为备份地址映射表的备份存储地址。

优选地,为了提高存储设备的使用寿命,减少出现坏块,可采用磨损均衡机制,在区域二中确定出与地址映射表对应的原始存储地址,并在区域三中确定出与地址映射表对应的备份存储地址。即,确定物理地址的方式可参照常见的磨损均衡机制进行确定,如冷热原则、最少使用原则等,以提高存储设备的使用寿命,避免高频使用某块而导致出现坏块。

s203、对地址映射表、原始存储地址和备份存储地址进行数据重组,获得目标地址映射表,以及原始存储地址和备份存储地址的目标映射关系。

确定了原始存储地址和备份存储地址之后,可对地址映射表、原始存储地址和备份存储地址进行数据重组,即对地址映射表进行数据转换,得到目标地址映射表,将对原始存储地址和备份存储地址建立目标映射关系。

s204、将目标地址映射表分别写入原始存储地址和备份存储地址,并将目标映射关系写入区域一。

完成数据转换之后,将目标地址映射表分别写入原始存储地址和备份存储地址之中,将目标映射关系写入区域一。

具体的,在区域一种写入目标映射关系时,可将目标映射关系写入区域一中的预设映射表。可参见图4,图4为本发明实施例中一种预设映射表的存储格式示意图。该预设映射表的存储格式为ecc+vld+备份地址n+原始地址n+备份地址n-1+备份地址n-1+…+备份地址1+原始地址1+备份地址0+原始地址0;若vld=1,即表明预设映射表有效。

优选地,由于地址映射关系的变化频率较高,为保障地址映射表产期可用,本发明实施例还提供了两种地址映射表更新方法。

利用写回模式对地址映射表进行更新,具体的包括:

步骤一、接收目标映射关系的写回操作请求;

步骤二、在区域一中确定出一块写回物理地址,将目标映射关系写入写回物理地址中,以便nand-flash存储阵列进行写操作。

为便于描述,下面将上述两个步骤结合起来进行说明。

即接收到写回操作请求之后,可在区域一种期待出一块写回物理地址,然后将目标映射关系写入写回物理地址中,如此,nand-flash存储阵列便可进行写操作。

利用替换方式对地址映射表进行更新,具体为接收地址映射表的更新请求,并将原始存储地址和备份存储地址中的地址映射表进行替换。

上述两种更新方式,可根据实际需要进行选择,如当更新内容较少时,可采用写回模式进行更新,当更新内容较多时,可采用整体替换的方式进行更新。

实施例三:

为便于本领域技术人员更好的实现本发明实施例所提供的技术方案,下面参照图5和图6所示的功能化模块对本发明实施例所提供的技术方案进行详细说明。

在写地址映射表时,为保证地址映射表的可靠性,可参照图5所示的写备份机制实现框图,具体实现过程包括:

第一步:若写地址映射表处理模块有需要写地址映射表操作时,向原始处理模块申请原始存储地址,用于原始地址映射表的存储;向备份处理模块申请备份存储地址,用于备份地址映射表的存储。

第二步:原始处理模块和备份处理模块收到请求后,便根据磨损均衡机制,原始处理模块从区域二申请一块物理地址,备份处理模块从区域三申请一块物理地址,分别向写地址映射表处理模块提供原始存储地址和备份存储地址。

第三步:写地址映射表处理模块拿到原始存储地址和备份存储地址后,将数据,原始存储地址和备份存储地址一块发送到数据重新组装模块。

第四步:数据重新组装模块收到数据后,将组装好的数据发往写地址映射表模块。

第五步:写地址映射表模块若收到数据重新组装模块的写请求后,获取地址映射表原始存储地址、备份存储地址和地址映射表数据后,将原始映射表写入区域二,将备份映射表写入区域三。

第六步:若写地址映射模块收到写请求后,将原始地址映射表写入区域二,将备份地址映射表写入区域三。若原始地址映射表和备份地址映射表均写入成功,则告知写地址映射表处理模块,可以进行下一个处理操作。同时,将写入正确的原始存储地址和备份存储地址告知备份处理模块,并维护原始存储地址和备份存储地址的映射关系。如果原始地址写入失败,则向原始处理模块重新申请原始存储地址,直到写入正确为止;如果备份地址写入失败,则向备份处理模块重新申请备份地址,直到写入正确为止,若二者均写入正确,则告知写地址映射表处理模块,可以进行下一个处理操作。同时,将最后写入正确的原始存储地址和备份存储地址告知备份处理模块,并维护原始存储地址和备份存储地址的映射关系。

在读地址映射表时,为保证地址映射表的读取可靠性,可参照图6给出了读备份实现框图,具体实现包括:

第一步:系统上电后,备份处理模块便向读地址映射表模块请求读取区域一的原始存储地址跟备份地址映射关系的映射表,之后存储在备份处理模块中。

第二步:读地址映射模块收到读请求后,便向nandflash存储阵列发起读请求,若读取成功,便将地址映射表发往读地址映射表处理模块;若读取失败,则向原始处理模块重新申请一块物理地址,同时向备份处理模块申请其备份存储地址。

第三步:原始处理模块收到失败请求后,便根据磨损均衡机制重新从区域二申请一块物理地址,发往读地址映射表模块。备份处理模块收到失败请求后,便向读地址映射表模块提供其备份存储地址。

第四步:读地址映射表模块根据提供的备份地址读取备份的地址映射表。

第五步:读地址映射表模块拿到替换的原始存储地址和备份地址后,便向写请求地址映射表模块请求映射表读取失败写更新请求。

第六步:写地址映射表处理模块收到读取失败写更新请求后,便将原始存储地址映射表重新写入新的替换的原始存储地址中。写入成功后便告知读地址映射表模块。若写入失败,则根据写地址映射表写失败操作进行处理,直到写入成功,便将成功写入的原始地址告知备份处理模块。

第七步:读地址映射表模块获取替换的地址映射表写入成功标志后,便根据备份存储地址将读取的地址映射表发往读地址映射表模块。

第八步:读地址映射表模块拿到地址映射表后,便发往请求方,之后便处理下一个读操作。

在映射表备份操作时,参见图5所示,具体实现过程包括:

第一步:备份处理模块收到写回操作后,便将存储在自身的原始存储地址跟备份存储地址的映射关系依次写回到nandflash存储阵列中,便根据磨损均衡机制,从区域一中申请一块物理地址,将物理地址跟映射关系发往写地址映射表模块。

第二步:写地址映射表模块收到写回的物理地址跟映射关系后,便向nandflash存储阵列发起写操作。若写成功,则告知备份处理模块进行下一个写操作;若写失败,则告知备份处理模块。

第三步:备份处理模块若收到写成功标志,则进行下一个写操作,直到所有的映射关系全部写入到nandflash存储阵列中;若收到写失败标志,则根据磨损均衡机制,重新申请一块物理地址,发往写地址映射表模块,直到写入成功为止。

第四步:写地址映射表模块收到备份处理模块发送来的新的物理地址后,便将刚才写入失败的映射关系重新写入新的物理地址,若写入成功,则告诉备份处理模块进行下一个写操作;若写入失败,则告知备份处理模块,由备份处理模块处理写失败操作请求。

实施例四:

相应于上面的方法实施例,本发明实施例还提供了一种地址映射关系反馈装置,下文描述的地址映射关系反馈装置与上文描述的地址映射关系反馈方法可相互对应参照。

参见图7所示,该装置包括以下模块:

地址查询请求获取模块101,用于nandflash存储设备接收目标进程发送的目标数据的地址查询请求;

目标映射关系获取模块102,用于读取预设映射表,获得存储地址查询请求对应的地址映射表的目标映射关系;

第一目标地址映射关系读取模块103,用于从原始物理地址中读取地址映射表,并判断是否成功读取到目标数据对应的目标地址映射关系;

第二目标地址映射关系读取模块104,用于若第一目标地址映射关系读取模块读取失败,则从备份物理地址中读取地址映射表,获得目标地址映射关系;

目标地址映射关系反馈模块105,用于将目标地址映射关系反馈至目标进程;其中,目标地址映射关系为目标数据的逻辑地址与物理地址的对应关系。

应用本发明实施例所提供的装置,nandflash存储设备接收目标进程发送的目标数据的地址查询请求;读取预设映射表,获得存储地址查询请求对应的地址映射表的目标映射关系;从原始物理地址中读取地址映射表,并判断是否成功读取到目标数据对应的目标地址映射关系;如果读取失败,则从备份物理地址中读取地址映射表,获得目标地址映射关系;将目标地址映射关系反馈至目标进程;其中,目标地址映射关系为目标数据的逻辑地址与物理地址的对应关系。

nandflash存储设备接收目标进程发送的目标数据的地址查询请求之后,首先读取预设映射表,获得存储地址查询请求对应的地址映射表的目标映射关系。其中,目标映射关系为地址映射表的原始存储地址和备份存储地址的对应关系。得到目标映射关系之后,首先从原始存储地址中读取地址映射表,并判断是否成功读取到目标数据对应的目标地址映射关系。由于nand闪存的使用寿命受擦除次数限制,且极易出现损坏,因此nand内存存储的地址映射表极易出现损坏,进而导致无法正常读取地址映射关系。如果未能成功读取到目标地址映射关系,则从备份存储地址中读取地址映射表,获得目标地址映射关系。得到目标地址预设关系之后,可将目标地址映射关系反馈给目标进程,以便目标进程基于该对应关系对目标数据进行操作。其中,目标映射关系为目标数据的逻辑地址与物理地址的对应关系。通过将地址映射表进行备份,即使是在原始存储地址中存储的地址映射表发生了损坏,导致无法成功读取目标地址映射关系时,还可通过读取存储在备份存储地址的地址映射表,读取到,并返回目标数据的目标地址映射关系给目标进程。如此,便可保障目标进程可获得用于对存储设备中存储的目标数据进行操作的地址映射关系,即存储设备内存储的数据依然可操作,数据不会丢失,可提升nandflash存储设备的可靠性。

在本发明的一种具体实施方式中,还包括:地址映射表写入模块,用于在接收目标进程发送的目标数据的地址查询请求之前,写入地址映射表;

其中,地址映射关系写入模块,包括:

写入请求接收单元,用于nandflash存储设备接收地址映射表的写入请求;其中,nandflash存储设备包括区域一、区域二、区域三;

存储地址确定单元,用于在区域二中确定出与地址映射表对应的原始存储地址,并在区域三中确定出与地址映射表对应的备份存储地址;

数据重组单元,用于对地址映射表、原始存储地址和备份存储地址进行数据重组,获得目标地址映射表,以及原始存储地址和备份存储地址的目标映射关系;

数据写入单元,用于将目标地址映射表分别写入原始存储地址和备份存储地址,并将目标映射关系写入区域一。

在本发明的一种具体实施方式中,存储地址确定单元,具体用于采用磨损均衡机制,在区域二中确定出与地址映射表对应的原始存储地址,并在区域三中确定出与地址映射表对应的备份存储地址。

在本发明的一种具体实施方式中,数据写入单元,具体用于将目标映射关系写入区域一中的预设映射表;其中,预设映射表的存储格式为ecc+vld+备份地址n+原始地址n+备份地址n-1+备份地址n-1+…+备份地址1+原始地址1+备份地址0+原始地址0;vld=1,表明预设映射表有效。

在本发明的一种具体实施方式中,还包括:

修正替换模块,用于从备份物理地址中读取地址映射表,获得目标地址映射关系之后,在区域二中重新确定出一块目标物理地址,并将地址映射表写入新的目标物理地址中;将目标映射关系替换为目标物理地址和备份物理地址的映射关系。

在本发明的一种具体实施方式中,还包括:

写回更新模块,用于接收目标映射关系的写回操作请求;在区域一中确定出一块写回物理地址,将目标映射关系写入写回物理地址中,以便nand-flash存储阵列进行写操作。

在本发明的一种具体实施方式中,还包括:

替换更新模块,用于接收地址映射表的更新请求,并将原始存储地址和备份存储地址中的地址映射表进行替换。

实施例五:

相应于上面的方法实施例,本发明实施例还提供了一种地址映射关系反馈设备,下文描述的一种地址映射关系反馈设备与上文描述的一种地址映射关系反馈方法可相互对应参照。

参见图8所示,该地址映射关系反馈设备包括:

存储器d1,用于存储计算机程序;

处理器d2,用于执行计算机程序时实现上述方法实施例的地址映射关系反馈方法的步骤。

具体的,请参考图9,为本实施例提供的一种地址映射关系反馈设备的具体结构示意图,该地址映射关系反馈设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在地址映射关系反馈设备301上执行存储介质330中的一系列指令操作。

地址映射关系反馈设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等。

上文所描述的地址映射关系反馈方法中的步骤可以由地址映射关系反馈设备的结构实现。

实施例六:

相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种地址映射关系反馈方法可相互对应参照。

一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的地址映射关系反馈方法的步骤。

该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

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