一种固态硬盘及数据读写方法

文档序号:6480076阅读:732来源:国知局
专利名称:一种固态硬盘及数据读写方法
技术领域
本发明涉及数据存储技术领域,特别涉及一种固态硬盘及数据读写方法。
背景技术
固态硬盘(Solid State Disk, SSD),是由控制单元和固态存储单元组成的硬盘,
其接口规范、功能及使用方法上与普通硬盘相同。由于固态硬盘没有普通硬盘的机械旋转
装置,因此具有读写速度快、工作噪音低、抗震性好、工作温度范围大等特点。
目前,固态硬盘的存储介质大多采用非易失性的闪存(flash)芯片,其优点是数
据保护不受电源控制、移动方便,可以适应于多种环境,缺点在于闪存块有时会存在读写错
误,影响数据的可靠性。 针对上述问题,我们可以通过建立冗余数据的方法来提高数据的可靠性,一种比 较常用的方案是使用备份软件或数据同步软件,这种方法的缺点在于要求用户进行额外 的设置或操作,并且在进行数据备份或同步时,需要占用系统资源,对硬盘的读写性能造成 影响。

发明内容
有鉴于此,本发明实施例提供了一种固态硬盘及数据读写方法,以实现在不影响 读写性能的情况下,提高固态硬盘的数据可靠性,技术方案如下
—种固态硬盘,包括 存储单元,包括具有相同存储空间结构的原始数据区域和备份数据区域,所述原 始数据区域的存储空间地址,与所述备份数据区域的存储空间地址一一对应;
写入控制单元,用于根据数据写入指令,将数据同时写入所述存储单元的原始数 据区域和备份数据区域; 读取控制单元,用于根据数据读取指令,由所述存储单元的原始数据区域读取数 据,如果出现读取错误,则根据所述存储空间地址的对应关系,由所述存储单元的备份数据 区域读取数据。 —种固态硬盘的数据读写方法,包括 当接收到数据写入指令时,将数据同时写入固态硬盘的原始数据区域和备份数据 区域; 当接收到数据读取指令时,由固态硬盘的原始数据区域读取数据,如果出现读取 错误,则根据原始数据区域与备份数据存储空间地址的对应关系,由备份数据区域读取数 据; 其中,所述原始数据区域和所述备份数据区域具有相同的存储空间结构,所述原
始数据区域的存储空间地址,与所述备份数据区域的存储空间地址一一对应。 以上技术方案,应用固态硬盘闪存芯片的特性,同时对一块硬盘的多个存储区域
进行相同的写入操作,当数据读取错误时,则自动从备份存储区域中读取数据,在不影响硬盘性能的情况下,提高了数据的可靠性。


图1为本发明实施例固态硬盘的结构示意图;
图2为本发明实施例固态硬盘的存储空间结构示意图;
图3为本发明实施例固态硬盘的数据写操作示意图;
图4为本发明实施例固态硬盘的块擦除操作示意图;
图5为本发明实施例固态硬盘的另一种结构示意图;
图6为本发明实施例数据恢复单元的结构示意图;
图7为本发明实施例的数据读取方法流程图;
图8为本发明实施例的数据恢复方法流程图。
具体实施例方式首先对本发明实施例所提供的一种固态硬盘进行介绍,参见图1所示,包括
存储单元110,包括具有相同存储空间结构的原始数据区域和备份数据区域,所述 原始数据区域的存储空间地址,与所述备份数据区域的存储空间地址一一对应;
写入控制单元120,用于根据数据写入指令,将数据同时写入所述存储单元的原始 数据区域和备份数据区域; 读取控制单元130,用于根据数据读取指令,由所述存储单元的原始数据区域读取 数据,如果出现读取错误,则根据所述存储空间地址的对应关系,由所述存储单元的备份数 据区域读取数据。 其中,所述存储单元110的存储空间示意图,可参见图2所示。在固态硬盘中,基本 的存储单位为闪存块(block),图2所示的存储空间中,所有的闪存块被划分为两部分,其
中block0、block2、block4......构成plane0,blockl、block3、block5......构成planel,
我们将plane0作为原始数据区,将planel作为备份数据区。 原始数据区和备份数据区的具有完全一致的大小及存储空间结构,并且存储空间
的地址一一对应,如图2所示,原始数据区中的地址0000h、0001h......分别对应备份数据
区中的地址1000h、1001h......,也就是说,对于原始数据区中的任意一个存储空间地址,
都能在备份数据区域中找到一个与之相对应的地址。 当所述写入控制单元120,接收到数据写入操作指令后,会将数据写入原始数据区 域和备份数据区域,由于固态硬盘闪存芯片具有two plane block的特性,因此可以将数 据同时写入两部分区域,并且,相对于只写入一部分区域的写操作来说,写入速度也不会变 慢。 存储空间地址可以由物理地址和逻辑地址来表示,其中物理地址是对应硬盘的实 际物理结构(例如固态硬盘中的闪存块block、页面page等)所编排的地址,图2所示的 地址即为物理地址;而逻辑地址则用于方便计算机对硬盘进行访问。 一般来说,硬盘的读写 操作所直接访问的都是逻辑地址,该逻辑地址与硬盘的物理地址具有一定的映射关系,在 本发明实施例中,我们可以将原始数据区域的物理地址和备份数据区域的物理地址,与相 同的逻辑地址建立映射关系。例如,参见图2所示,可以将0000h和1000h与同一个逻辑地址AO建立映射关系,将OOOlh和lOOlh与同一个逻辑地址Al建立映射关系......以此类
推,也可以将OOOOh与lOOlh与同一个逻辑地址AO建立映射关系,将OOOlh与lOOOh与同
一个逻辑地址A1建立映射关系,并不局限于具体的顺序......以此类推。这样,在对某一
逻辑地址进行写操作的时候,就可以将数据同时分别写入原始数据区域和备份数据区域的 相应物理地址上。 参见图3所示,在固态硬盘中,page是用来进行数据写操作的最小单位,一个 block由若干个page组成(图中所示为64个),当进行数据写操作时,数据会被同时写入 原始数据区和备份数据区的page中,并且,这两部分区域的page地址都是相互对应的。同 理,参见图4所示,当进行块擦除操作时,在两个区域中,具有对应关系的数据块会被同时 擦除。 在进行正常读取操作时,所述读取控制单元130,仅从原始数据区域读取数据,由 于固态硬盘的闪存块有时会出现读写错误,因此在读取数据以后,还会对所读取的数据进 行ECC(Error Checking and Correcting,错误检查和纠正)校验,如果校验通过则将所读 取的数据输出,如果校验失败,说明在原始数据区域中存储的数据有错误,此时,需要由备 份数据区域读取数据。 以图2所示的存储空间为例,假如在读取地址0040h时,出现数据读取错误,则需 要到该地址所对应的备份数据区域中的地址(即1040h)读取数据,由于在这两个地址中所 写入的数据是一致的,因此可以将1040h中所读取的数据作为正常输出。在这之后,读取控 制单元可以继续在原始数据区域进行数据读取,如果出现读取错误,则再次到备份数据区 域中读取相应的备份数据。 为了保证原始数据区域数据的有效性,当原始数据区域出现数据读取错误时,需
要对错误数据进行恢复。参见图5所示,本发明实施例所提供的固定硬盘,还包括 数据恢复单元140,用于在所述读取控制单元出现读取错误时,对错误数据进行恢复。 参见图6所示,所述数据恢复单元140,可以包括 数据块检测子单元141,用于在出现读取错误时,检测出现读取错误的数据块是否 损坏; 对于固态硬盘来说,出现错误可能只是偶然情况,但是,如果错误是由数据块损坏 所引起的,那么在该数据块中出现错误的概率就很高了 。检测数据块是否损耗的方法,可以 是通过多次对该数据块进行数据写入并读取,并统计出现读取错误的概率,如果该概率超 过一定的阈值,则判定该数据块已经损坏。 第一恢复子单元142,用于当所述数据块检测子单元的检测结果为否时,用于根据 所述存储空间地址的对应关系,将备份数据区域中的数据,恢复至所述出现读取错误的数 据块; 如果经过检测,判定出现读取错误的数据块没有损坏,说明读取错误的出现是偶 然的,此时可以将备份数据区域中的数据重新写入原始数据区域。以图2所示的存储空间 为例,假如在读取地址0040h时出现读取错误,经检测判断该地址所在的数据块block2没 有损坏,则将地址1040h中的数据恢复至0040h中。 在本发明实施例所提供的固态硬盘中,还可以包括若干保留数据块,这些保留数据块不属于存储单元110,也即不会用作正常的数据读写,仅当存储单元110当中的数据块 损坏时,再使用保留数据块替换损坏的数据块,以保证硬盘数据的可靠性。参见图6所示, 所述数据恢复单元140,还可以包括 第二恢复子单元143,当所述数据块检测子单元的检测结果为是时,用于使用固态 硬盘的保留数据块对损坏的数据块进行替换;根据所述存储空间地址的对应关系,将备份 数据区域中的数据,恢复至所述替换后的数据块。 如果经过检测,判定出现读取错误的数据块损坏,则该数据块已经无法进行数据 读写,为了保证硬盘继续正常使用,可以用保留数据块替换该损坏的数据块。仍以图2所示 的存储空间为例,假如block2损坏,使用保留区块block A替换block2,为了保证原始数据 区与备份数据区存储空间的对应关系,还需要将原先block2与block3的对应关系,修改为 block A与block3的对应关系;或者,也可以将原block2的地址映射到blockA的地址,这 样,在替换之后,所有针对于block2的操作,实际上都会被转移到block A。
替换完毕后,还要将block3中的数据,恢复至blockA中,以确保原始数据区域中 数据的有效性。 需要说明的是,上述实施例中,存储空间的分配方法以及存储地址的设定仅用作 示意性说明,并不构成对本发明技术方案的限定。 在上述实施例所提供的固态硬盘中,采用的是一个原始数据区域对应一个备份数 据区域的方案,本领域技术人员易于想到的是,也可以采用一个原始数据区域对应多个备 份数据区域的方案,从而进一步提高硬盘整体的数据可靠性,这些改进也都应该包括在本 发明的保护范围内。 以上技术方案,应用固态硬盘闪存芯片的特性,同时对一块硬盘的两个或两个以
上存储区域进行相同的写入操作,当数据读取错误时,则自动从备份存储区域中读取数据,
在不影响硬盘性能的情况下,提高了数据的可靠性。此外,还可以进一步判断数据读取错误
是否由闪存块损坏所引起,如果是,则只需从固态硬盘的保留区块中选取新的闪存块来替
换损坏的闪存块,即可自动恢复硬盘的正常使用,无需对硬件进行更换。 相应于上面的方法实施例,本发明实施例还提供了固态硬盘的数据读写方法。 本发明实施例所提供的固态硬盘的数据写入方法,包括 当接收到数据写入指令时,将数据同时写入固态硬盘的原始数据区域和备份数据 区域; 其中,原始数据区域和备份数据区域具有相同的存储空间结构,并且原始数据区 域的存储空间地址,与所述备份数据区域的存储空间地址一一对应。 当固态硬盘的写入控制单元接收到数据写入操作指令后,会将数据写入原始数据 区域和备份数据区域,由于固态硬盘闪存芯片具有two plane block的特性,因此可以将数 据同时写入两部分区域,并且,相对于只写入一部分区域的写操作来说,写入速度也不会变 慢。 本发明实施例所提供的固态硬盘的数据读取方法流程图可以参见图7所示,包括 以下步骤 S701,根据数据读取指令,由固态硬盘的原始数据区域读取数据。 S702,对所读取的数据进行校验,如果校验正确,则执行S703,否则执行S704。
S703,输出所读取的数据。 S704,根据原始数据区域与备份数据存储空间地址的对应关系,由备份数据区域 读取数据并输出; 进一步的,为了保证原始数据区域数据的有效性,当原始数据区域出现数据读取 错误时,需要对错误数据进行恢复。参见图8所示,对错误进行恢复的步骤,包括
S705,检测出现读取错误的数据块是否损坏;如果否,则执行S706,如果是,则执 行S707。 S706,根据所述存储空间地址的对应关系,将备份数据区域中的数据,恢复至所述 读取错误的数据块。 S707,使用固态硬盘的保留数据块对损坏的数据块进行替换;根据所述存储空间
地址的对应关系,将备份数据区域中的数据,恢复至所述替换后的数据块。 以上所提供的固态硬盘数据读写方法,应用固态硬盘闪存芯片的特性,同时对一
块硬盘的两个或两个以上存储区域进行相同的写入操作,当数据读取错误时,则自动从备
份存储区域中读取数据,在不影响硬盘性能的情况下,提高了数据的可靠性。此外,还可以
进一步判断数据读取错误是否由闪存块损坏所引起,如果是,则只需从固态硬盘的保留区
块中选取新的闪存块来替换损坏的闪存块,即可自动恢复硬盘的正常使用,无需对硬件进
行更换。 对于上述方法实施例而言,由于其基本相应于装置实施例,所以描述得比较简单, 相关之处参见装置实施例的部分说明即可。本领域普通技术人员可以理解实现上述方法 实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一 计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存 储介质包括ROM(Read-Only Memory,只读存储记忆体)、RAM (Random Access Memory,随机 存储记忆体)、磁碟或者光盘等各种可以存储程序代码的介质。 以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
一种固态硬盘,其特征在于,包括存储单元,包括具有相同存储空间结构的原始数据区域和备份数据区域,所述原始数据区域的存储空间地址,与所述备份数据区域的存储空间地址一一对应;写入控制单元,用于根据数据写入指令,将数据同时写入所述存储单元的原始数据区域和备份数据区域;读取控制单元,用于根据数据读取指令,由所述存储单元的原始数据区域读取数据,如果出现读取错误,则根据所述存储空间地址的对应关系,由所述存储单元的备份数据区域读取数据。
2. 根据权利要求1所述的固态硬盘,其特征在于,所述原始数据区域的存储空间地址 与备份数据区域的存储空间地址一一对应,具体为原始数据区域的物理地址和备份数据 区域的物理地址,与相同的逻辑地址具有映射关系;则所述写入控制单元,用于根据数据写入指令,将数据同时写入相同的逻辑地址所对应 的原始数据区域的物理地址和备份数据区域的物理地址;所述读取控制单元,用于根据数据读取指令,由所述存储单元的原始数据区域读取数 据,如果出现读取错误,则根据所述映射关系,读取与出现错误的物理地 >址所对应的备份数 据区域物理地址上的数据。
3. 根据权利要求1所述的固态硬盘,其特征在于,该固态硬盘还包括 数据恢复单元,用于在所述读取控制单元出现读取错误时,对错误数据进行恢复。
4. 根据权利要求3所述的固态硬盘,其特征在于,所述数据恢复单元,包括 数据块检测子单元,用于在出现读取错误时,检测出现读取错误的数据块是否损坏; 第一恢复子单元,当所述数据块检测子单元的检测结果为否时,用于根据所述存储空间地址的对应关系,将备份数据区域中的数据,恢复至所述出现读取错误的数据块。
5. 根据权利要求4所述的固态硬盘,其特征在于,所述数据恢复单元,还包括 第二恢复子单元,当所述数据块检测子单元的检测结果为是时,用于使用固态硬盘的保留数据块对损坏的数据块进行替换;根据所述存储空间地址的对应关系,将备份数据区 域中的数据,恢复至所述替换后的数据块。
6. —种固态硬盘的数据读写方法,其特征在于,包括当接收到数据写入指令时,将数据同时写入固态硬盘的原始数据区域和备份数据区域;当接收到数据读取指令时,由固态硬盘的原始数据区域读取数据,如果出现读取错误, 则根据原始数据区域与备份数据存储空间地址的对应关系,由备份数据区域读取数据;其中,所述原始数据区域和所述备份数据区域具有相同的存储空间结构,所述原始数 据区域的存储空间地址,与所述备份数据区域的存储空间地址一一对应。
7. 根据权利要求6所述的方法,其特征在于,还包括当出现读取错误时,对错误数据 进行恢复。
8. 根据权利要求7所述的方法,其特征在于,所述对错误数据进行恢复,包括 检测出现读取错误的数据块是否损坏;如果否,则根据所述存储空间地址的对应关系,将备份数据区域中的数据,恢复至所述 出现读取错误的数据块。
9.根据权利要求8所述的方法,其特征在于,还包括如果检测到出现读取错误的数据块损坏,则使用固态硬盘的保留数据块对损坏的数据 块进行替换;根据所述存储空间地址的对应关系,将备份数据区域中的数据,恢复至所述替 换后的数据块。
全文摘要
本发明实施例公开了一种固态硬盘及数据读写方法。一种固态硬盘包括存储单元,包括具有相同存储空间结构的原始数据区域和备份数据区域,所述原始数据区域的存储空间地址,与所述备份数据区域的存储空间地址一一对应;写入控制单元,用于根据数据写入指令,将数据同时写入所述存储单元的原始数据区域和备份数据区域;读取控制单元,用于根据数据读取指令,由所述存储单元的原始数据区域读取数据,如果出现读取错误,则根据所述存储空间地址的对应关系,由所述存储单元的备份数据区域读取数据。以上技术方案,应用固态硬盘闪存芯片的特性,同时对一块硬盘的多个存储区域进行相同的写入操作,在不影响硬盘性能的情况下,提高了数据的可靠性。
文档编号G06F11/14GK101777013SQ20091000022
公开日2010年7月14日 申请日期2009年1月12日 优先权日2009年1月12日
发明者张宗全 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1