[发明专利]用于数据存储系统中的错误检测和纠正的方法和装置有效
申请号: | 201480015090.X | 申请日: | 2014-03-13 |
公开(公告)号: | CN105122213B | 公开(公告)日: | 2018-01-16 |
发明(设计)人: | 詹姆斯·坎德拉里亚 | 申请(专利权)人: | 思科技术公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F11/10;G06F3/06 |
代理公司: | 北京东方亿思知识产权代理有限责任公司11258 | 代理人: | 李晓冬 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 数据 存储系统 中的 错误 检测 纠正 方法 装置 | ||
技术领域
本申请涉及数据处理方法和装置,并且更具体地涉及用于数据存储系统中的错误检测和纠正的方法和装置。
背景技术
随着计算机系统的兴起以及工业、企业和个人对使用电子数据的依赖性持续增长,产生了对于能够以快速、有效和经济的方式成功地存储和取回以电子形式的大量数据的需求。为了存储电子数据(此后简称为数据),数据经常被分解为特定大小的块。例如,数据可以被分解为4千字节的块,被称为数据的4k块。
数据存储和取回的一个重要方面是应该通过由读操作取回的数据与由先前的写操作存储的数据相同来维护数据的完整性。另一重要方面是数据可被存储和取回的速度。在一些已知的系统中,要被存储的数据跨多个数据存储元件(例如,硬盘和/或固态驱动)进行分布。
在一些已知的系统中,由于检查错误所花费的时间,当先前存储的数据被从存储设备中读取时,这些已知的系统通常使用轻权重错误纠正技术,例如,单比特位错误检测技术。单比特位错误检测技术(例如,简单的奇偶校验)易于实现,例如,位被取异或,并且结果与和数据一起存储的奇偶检验位进行对比。奇偶校验可以对相对较小的数据单元(例如,一组几比特位或数百比特位)执行。虽然奇偶校验易于实现,但是其具有以下缺陷:如果偶数位具有错误(例如,存在两比特位错误),则该错误可能不能被奇偶校验检测到。因此,当两比特位或多比特位错误掩盖读取数据错误,使得其不能被奇偶校验操作检测到时,多比特位错误可能导致未检测到的读取数据错误。
如果没有奇偶校验失败,多数驱动系统通常在不对从盘中读取的数据执行额外检验的情况下返回该数据,即使系统可以在例如与该数据被读取的数据存储设备不同的数据存储设备上存储额外的错误纠正和/或检测信息(例如,一组奇偶校验位)以用于检测读错误的情形中。此外,在驱动中实现的轻权重错误检查(例如,CRC奇偶校验和BCH校验)不检测由噪声信道(例如,经历电磁干扰(EMI)的信道)引入的错误。这是因为驱动错误检测是在数据未被读取的驱动处做出的。
应该认识到,存在对于能够通过增加所检测到的读错误的数量来增加数据存储完整性,并且在读操作上能够提供比当前轻权重错误检测技术(例如,简单的单比特位奇偶检验)所提供的比特位错误检测更高级的比特位错误检测。虽然需要改进的错误检测技术,但是也希望用于读操作的新的或改进的错误检测技术针对每个读操作不引入过量的附加处理和/或延时。
发明内容
本文描述了用于向存储器有效地存储数据(例如,数据块)和从存储器有效地取回数据(例如,数据块)的数据处理方法和装置,其中所取回的数据以比使用先前已知的轻权重技术(例如,单比特位奇偶校验、轻权重循环冗余校验或轻权重BCH错误检测码)的可能方式更鲁棒的方式检查错误。
在各个实施例中,该方法和装置利用散列值,该散列值例如根据mumur散列函数生成并在将数据块写入存储设备的过程中被存储。散列值提供了更鲁棒的错误检测能力,其是比通常使用的单比特位奇偶校验、循环冗余校验或BCH错误检测码更重权重的技术。这至少部分是因为至少在一些实施例中,使用了相对较大的散列值(例如,24-31比特位),其相当大,因此比通常所使用的很多CRC或BCH码更可靠。对应于数据块的散列值(其作为写过程的一部分被存储)在一些实施例中被用于执行快速且相对容易的方式,以对从存储设备读取的经恢复的数据块实现错误检查。在一些实施例中,散列值的生成和存储是写操作的数据去重复的一部分。
在写过程中,被存储的数据块经受散列操作,并且针对被存储的数据块生成散列值。散列值可以并且在一些实施例中的确被用作数据去重复过程的一部分。数据块的散列值被存储并且可用于执行读操作时。
在至少一些实施例中,数据块的部分(例如,数据部分)被存储在存储阵列的不同驱动上。各个奇偶校验位可以并且通常针对被存储在单独的驱动上的数据部分而被存储在每个驱动上。存储在包括数据块的一部分的驱动上的奇偶校验位被用于在数据被从盘中读取时对数据执行简单奇偶校验。假设简单奇偶校验未产生错误,则从驱动读取的数据被返回。从多个驱动读取的数据部分由驱动控制器(例如,RAID控制器)响应于请求读取所存储的数据块的请求而提供,并且假设没有奇偶校验错误,则响应于请求读取数据块的请求而被返回。
根据一个特征,根据所返回的数据块,使用与在写操作期间针对数据块生成原散列值相同的散列函数生成散列值。所生成的散列值与先前(例如,作为在写操作期间执行的数据去重复过程的一部分)生成的所存储的散列值进行对比。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于思科技术公司,未经思科技术公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480015090.X/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置