CN104050052B - 错误校正代码播种 - Google Patents

错误校正代码播种 Download PDF

Info

Publication number
CN104050052B
CN104050052B CN201410085225.1A CN201410085225A CN104050052B CN 104050052 B CN104050052 B CN 104050052B CN 201410085225 A CN201410085225 A CN 201410085225A CN 104050052 B CN104050052 B CN 104050052B
Authority
CN
China
Prior art keywords
offset
data block
data
unit number
block
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.)
Active
Application number
CN201410085225.1A
Other languages
English (en)
Other versions
CN104050052A (zh
Inventor
D·J·库能
A·T·卡塔里亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of CN104050052A publication Critical patent/CN104050052A/zh
Application granted granted Critical
Publication of CN104050052B publication Critical patent/CN104050052B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本申请公开了错误校正代码播种。本文中公开的技术提供了一种当数据块的单元号与存储在数据块中的ECC值不匹配时对从数据块读取的数据进行验证的方法。特别地,该方法包括:基于单元号来访问数据块的索引序列中的数据块,其中所述索引序列中的每个数据块与存储的ECC值;取回与所述数据库的所述单元号相关联的偏移量;基于所述单元号和所述偏移量来生成ECC值;以及判定所生成的ECC值和所存储的ECC值是否满足完整性条件。

Description

错误校正代码播种
相关申请的交叉引用
本申请涉及到序号为__、发明名称为“Error Correction Code Seeding”且与本申请同时递交的美国专利申请,该美国申请因其所公开和教导的全部内容特此通过引用合并于本文中。
背景技术
在驱动器处理的多个阶段中都会发现不可用数据块。当发现这样的数据块时,驱动器会被重新线性化,以使可用数据块具有以关于每个数据块的错误校正代码(ECC)信息编码的顺序索引。由于该重新线性化,ECC信息被重新写到全部可用数据块上,使得可用块具有顺序索引。然而,要花费几个小时来将单个驱动器重新线性化,这对制造商而言是相当大的开销。
发明概述
本文所描述的以及进行权利要求的实施方案通过如下方案解决了上述问题:基于单元号来访问数据块的索引序列中的数据块,其中所述索引序列中的每个数据块与存储的ECC值;取回与所述数据库的所述单元号相关联的偏移量;基于所述单元号和所述偏移量来生成ECC值;以及判定所生成的ECC值和所存储的ECC值是否满足完整性条件。
提供该概述是为了以简化形式引入下文在发明详述部分中进一步说明的构思的选择。该概述不意在确定权利要求主题的关键特征或必要特征,也不意在用于限定权利要求主题的范围。这些以及其它的特征和优点将从下面的发明详述的阅读中变得显然。
附图说明
图1图示出具有当数据块的单元号与存储在数据块中的错误校正代码(ECC)值不匹配时用于对从数据块中读取的数据进行验证的机构的系统。
图2图示出具有创建偏移量表的偏移量表创建模块的存储设备,偏移量表能够用于计算用于错误检测模块的种子值。
图3图示出具有用于当数据块的单元号与存储在数据块中的ECC值不匹配时用于对从数据块中读取的数据进行验证的机构的另一系统。
图4图示出用于创建偏移量表的实施例操作,偏移量表能够用于创建用于错误检测模块的种子值。
图5图示出当数据块的单元号与存储在数据块中的ECC值不匹配时用于对从数据块中读取的数据进行验证的实施例操作。
图6披露了适于实施用于在磁盘访问操作期间选择性略去目标数据块的索引序列中的一个以上数据块的系统的一个以上方案的计算机系统的框图。
发明详述
图1图示出具有用于当数据块的单元号与存储在数据块中的错误校正代码(ECC)值不匹配时用于对数据块的数据进行验证的机构(例如,偏移量查找模块114)的系统100。系统100包括主计算机102,其将一个或多个访问命令104(例如,读命令或写命令)发送到存储驱动器106。存储驱动器106是具有有形的计算机可读存储介质的设备,该存储介质能够将数据存储在可由计算机访问的顺序单位中(例如,单元或数据块)。该有形计算机可读介质可以包括但不限于磁存储盘、固态驱动器、快擦写存储器、光存储盘、随机存取存储器(RAM)、只读存储器(ROM)等等。存储驱动器106包括多个数据块(例如,数据块108),其能够保持设定数量的存储字节。
每个数据块都具有与存储设备106上的数据块的索引序列中的数据块物理位置相关联的物理索引(例如,数据块108中的物理索引0)。根据一种实施方式,存储设备106上的顺序数据块与连续增加的物理索引相关联。每个数据块还包括错误校正代码(ECC)信息(未示出),包括对数据块的物理索引进行编码的ECC值。
存储设备(例如,存储驱动器106)可以包括在设备的初始处理期间被标识为差的或不可用的多个数据块。例如,磁盘表面上的块缺陷或不规格(例如,热粗糙)会使得磁盘的一个或多个块不可用。没有实际的物理缺陷的数据块也可能是“不可用的”,因为它们由于其它原因从存储设备的数据存储操作中被选择性地略去了。因此,术语“不可用”在本文中用于表示由于任何原因而从数据存储操作中的使用选择性地略去的存储块。
当从存储驱动器106上的数据块读回数据时,错误检测与校正模块110执行数据完整性校验以确保所读或写的数据是正确的并且正确的数据块被访问。为了执行该完整性校验,错误检测与校正模块110使用种子值和从数据块读回的数据来生成ECC值。当完整性校验成功时,所生成的ECC值与存储在数据块中的ECC值匹配。然而,如果种子值与数据块的物理索引不匹配,该确认通常是不可能的。
在图1中,在初始工厂处理操作期间具有物理索引1和4的数据块被标识为不可用。然而,存储驱动器106无需重新线性化来从存储设备的索引方案中排除不可用块1和4。相反,系统100已经被制造为包括偏移量查找模块114,其可以是固件中的功能模块。偏移量查找模块114允许错误检测与校正模块110对从数据块读取的数据的完整性进行验证,即使当输入到错误检测与校正模块110的种子值不同于数据块的物理索引时。
在图示的实施例中,主计算机102发送四个访问命令104以将四个名字(例如,Sarah、Jake、June和Charlie)写入具有单元号0-3的四个目标数据块中。与四个目标数据块中的每一个相关联的数据(例如,名字)连同与每个数据块对应的逻辑块地址(LBA)一起发送到存储驱动器106。存储设备100将来自主计算机102的LBA分别转换成单元号0、1、2和3。此后,数据分配模块(未示出)选择物理块索引以与各单元号对应。为避免将数据写到具有物理索引1和4的不可用块中,数据分配模块判定与单元号0、1、2和3相关联的数据能够分别分配到物理数据块0、2、3和5中。结果是,名字Sarah、Jake、June和Charlie被写入物理数据块0、2、3和5中。
当从四个目标数据块中的一个读回数据时,偏移量查找模块114计算种子值,该种子值能够由错误检测与校正模块110使用来对从目标数据块中读取的数据的完整性进行验证。特别地,偏移量查找模块114访问偏移量表(未示出)并且取回与目标数据块的单元号相关联的偏移量。利用单元号和偏移量,偏移量查找模块生成种子值。错误检测与校正模块110使用种子值和从关联数据块读回的数据来计算ECC值,将该ECC值与存储在目标数据块中的ECC值进行比较。
例如,为了验证数据“Sarah”的完整性,偏移量查找模块114取回与单元号0相关联的偏移量0。利用偏移量0,偏移量查找模块114计算种子值0,该种子值用于计算与存储在具有物理索引0的数据块中的ECC值匹配的ECC值。
同样,为了验证数据“Jake”的完整性,偏移量查找模块114使用单元值1来取回偏移量1并且计算种子值2。错误检测与校正模块110使用种子2来计算与存储在具有物理索引2的数据块中的ECC值匹配的ECC值。
类似地,为了验证数据“Charlie”的完整性,偏移量查找模块110取回与单元号3相关联的偏移量2并且计算种子值5。错误检测与校正模块110使用种子值5和从具有物理索引5的数据块读回的数据来计算与存储在具有物理索引5的数据块中的ECC值匹配的ECC值。结果,数据写入到介质上的顺序可用数据块中,验证了数据的完整性,并且在初始驱动器处理期间未对驱动器进行重新线性化。
图2图示出具有创建偏移量表204的偏移量表创建模块202的存储设备200,偏移量表204能够用于计算用于错误检测模块(未示出)的种子值,并且因此对从数据块读取的数据的完整性进行验证。存储设备200包括存储介质206,存储介质206具有能够存储设定数据量的多个数据块(例如,数据块208和210)。存储介质206可以是任何类型的有形计算机可读介质;然而,在一种实施方式中,存储介质是磁盘并且数据块是沿着磁盘上的数据磁道的顺序扇区。在另一实施方式中,存储介质是固态驱动器(SSD)。
存储介质206上的每个数据块具有与索引序列(例如,包括在存储介质206上的可用的不可用的数据块两者的序列)中的数据块物理位置相关联的物理索引(例如,数据块210中的物理索引0)。另外,每个数据块具有经编码的EEC信息,经编码的EEC信息对数据块的物理索引进行编码(例如,数据块210中的经编码的物理索引“ECC0”)。在可以在ECC信息编码到每个数据块上之后进行的工厂格式化操作期间,通过错误检测模块(未示出)将不可用数据块(例如,具有物理索引1和4的不可用数据块)标识在存储介质206上。
经由偏移量表创建模块202实现了用于对从存储操作中选择性地略去不可用块的序列中的数据块进行错误校验的机构。偏移量表创建模块202将可用数据块的物理索引与对应的单元号(其中单元号统一地表示可用数据块的未中断序列)相关联并且将增量偏移量值与选定的单元号相关联地记录在偏移量表204中。该偏移量值随后可用于对在磁盘存储操作期间写和读的数据的完整性进行校验。
图2还包括逻辑表214(其可以包括或者可以不包括在存储器中),逻辑表示例了用于取得偏移量表204的偏移量的逻辑。特别地,逻辑表214具有“物理索引”栏,其包括对应于存储介质206上的可用数据块和不可用数据块两者的物理索引。逻辑表214还具有“单元号”栏,其包括与每个可用数据块相关联的单元号。例如,物理索引1和4不具有在偏移量表204中的对应单元号,因为这些数据块已被错误检测模块标识为不可用。因此,一组连续的单元号0、1、2和3分别对应于顺序可用数据块0、2、3和5的物理索引。偏移量(例如,逻辑表214中的总偏移量值)表示数据块的物理索引和单元号之间的差值。总偏移量值与索引序列中的不可用数据块之后的每个可用数据块关联地增1。例如,总偏移量值与物理索引2关联地增1,因为物理索引2对应于具有物理索引1的不可用数据块之后的下一可用数据块。类似地,总偏移量还与物理索引5关联地增1,因为物理索引5对应于具有物理索引4的不可用数据块之后的下一可用数据块。通过偏移量表创建模块202将在逻辑表214中所图示的信息浓缩成偏移量表204且存储在存储设备200的存储器中。
偏移量表创建模块202不将与存储设备上的每一个可用物理索引相关联的偏移量记录在偏移量表204中。相反,与具有受增量影响的第一个顺序物理索引的每个可用数据块(例如,物理索引的索引序列中不可用数据块之后的第一个可用数据块)相关联地记录偏移量。例如,单元号1和2均受偏移量1影响。然而,物理索引2是受偏移量1影响的第一个物理索引。因此,与物理索引2相关联地记录偏移量1。
偏移量表创建模块202被图示为在存储设备200的内部(例如,固件中的模块);然而,偏移量表创建模块202和/或逻辑映射模块202可以是与存储设备200通信耦合的外部设备的软件或固件。由偏移量表创建模块202创建的偏移量表204与存储设备200相关联地保存在例如存储设备200的固件中,以使其可在存储设备200的整个生命周期内被访问。特别地,每当从数据块读取数据时可以访问偏移量表204,并且偏移量表204用于计算用于错误检测与校正模块的种子值,该种子值对存储在数据块中的数据的完整性进行验证。
图3图示出具有当数据块的单元号与存储在数据块中的ECC值不匹配时用于对从数据块读取的数据进行验证的机构(例如,偏移量查找模块310)的另一系统300。系统包括主计算机(未示出),其发送一个或多个访问命令304(例如,读命令和写命令)至存储设备306。存储设备306也包括偏移量查找模块320、偏移量表322和存储介质312。存储介质312包括用于存储数据的多个数据块(例如,数据块308)。每个数据块都具有与存储介质312上的数据块的索引序列中的数据块物理位置相关联的物理索引(例如,数据块308中的物理索引0)。另外,每个数据块都包含对数据块的物理索引进行编码的EEC信息。例如,数据块308具有对数据块的物理索引“0”进行编码的ECC值‘ECC0’。
在存储设备306的工厂处理操作期间,标识不可用数据块(例如,不可用数据块314和318)。可以与参考图2描述的偏移量表创建模块相同或相似的偏移量表创建模块(未示出)创建偏移量表322。偏移量表322包括名称为“单元号”的第一栏。此处,单元号序列表示可用块的未中断序列。仅选择列于偏移量表322中的单元号。偏移量表322还包括名称为“总偏移量”的栏,其包括能够用于将既定单元号转换成可作为种子传递到错误检测与校正模块310的值的偏移量。
在图3中,主计算机发送访问命令304以将四个名字(例如,Sarah、Jake、June和Charlie)写入与单元号0、1、2和3相关联的四个目标数据块中。特别地,主机将LBA发送到存储设备306,并且存储设备将LBA转换成关联的单元号0-3。利用现有技术,存储设备判定与单元号0-3相关联的数据分别可写入到物理索引0、2、3和5。
当随后从目标数据块之一读回数据时,存储设备306的偏移量查找模块320访问偏移量表322并且取回与每个单元号相关联的偏移量。在图示的实施例中,偏移量查找模块320取回与单元号0相关联的偏移量0;与单元号1和2相关联的偏移量1;以及与单元号3相关联的偏移量2。通过将每个目标数据块的单元号增加到关联的偏移量,偏移量查找模块310计算种子值(对于每个目标数据块),该种子值被输入到错误检测与校正模块310。错误检测与校正模块310利用种子值对存储在目标数据块中的数据的完整性进行验证。结果是,错误检测与校正模块310能够通过计算ECC值并且将其与存储在目标数据块中的ECC值进行比较来检测并校正数据中的错误。如果计算出的ECC值和所存储的ECC值满足完整性条件(例如,如果值匹配或者满足一些其它相关),则对写入目标数据块的数据的完整性进行了验证。
例如,为确保名字“Jake”被正确地写且写到正确的数据块中,物理索引2(通过将关联的单元号与来自偏移量表322的偏移量相加在一起来计算)连同写到具有物理索引2的单元的数据(例如,“Jake”)一起被输入到错误检测与校正模块310。利用这些输入,错误检测与校正模块310计算ECC值(例如,ECC2),该ECC值与具有物理索引2的数据块上所存储的ECC值(例如,ECC2)匹配。
在图中示出错误检测与校正模块310和偏移量查找模块320两者都位于存储设备306的内部(例如,固件)。然而,两个模块中的任一个还可以是与存储设备300通信耦合的外部设备的软件或固件。
图4图示出用于创建能够用于计算用于错误检测模块的种子值的偏移量表的示例性操作。指定操作405将索引序列中的数据块指定为不可用,其中每个数据块与物理索引相关联。索引序列是包括存储设备上的可用数据块和不可用数据块两者的序列。在一种实施方案中,存储设备上的顺序数据块被分配了在索引序列中连续增加的物理索引。关联操作410将单元号与索引序列中的标识数据块之后的后续可用数据块相关联。记录操作415将偏移量与后续可用数据块的单元号相关联地记录在偏移量表中,其中偏移量用于生成后续可用数据块的ECC值。在一种实施方式中,偏移量与关联的单元号相加以创建用于计算ECC值的用于错误检测与校正模块的种子值。计算出的ECC值和在后续可用数据块上编码的ECC值满足完整性条件,确保写入后续可用数据块的数据的完整性。
在一种实施方式中,所记录的偏移量是后续可用数据块的单元号与物理索引之间的差值。偏移量可以与索引序列中受偏移量影响的第一个数据块相关联地记录在偏移量表中。在一种实施方式中,索引序列中的数据块是沿着磁盘上的数据磁道的连续扇区。
在一种实施方式中,示例性操作400是在存储设备的初始工厂格式化期间进行的。操作405-415可以在工厂中0重复多次,并且可以与磁盘上的多个选择性略去(即,不可用)的数据块中的每个相关地记录偏移量。
图5图示出用于当数据块的单元号与存储在数据块中的ECC值不匹配时对从数据块读取的数据进行验证的示例性操作500。访问操作505基于单元号来访问数据块中具有索引序列的数据块,其中索引序列中的每个数据块包括存储的ECC值。在一种实施方案中,数据块的索引序列是存储设备中的连续数据块的序列。在另一实施方式中,数据块是沿着磁介质盘中的数据磁道的扇区。
取回操作510取回与数据块的单元号相关联的偏移量。在一种实施方式中,取回操作510通过访问可存储在存储设备的固件中的偏移量访问表来取回偏移量。
生成操作515基于单元号和所取回的偏移量来生成ECC值。在一种实施方式中,判定操作515通过为错误检测与校正模块播种单元号与偏移量之和来生成ECC值。
判定操作520判定所生成的ECC值和所存储的ECC值是否满足完整性条件。在一种实施方式中,如果所生成的ECC值和经编码的ECC值相等,则满足完整性条件。
图6披露了适于实现用于在磁盘访问操作期间选择性略去目标数据库的索引序列中的一个或多个数据库的系统的一个或多个方案的计算机系统600的框图。在一种实施方案中,计算机系统600与存储设备可通信地耦合,存储设备具有偏移量表创建模块、错误检测与校正模块和/或偏移量查找模块,偏移量查找模块取回偏移量以计算与用于错误检测与校正操作的数据库相关联的种子。
计算机系统600能够执行在有形计算机可读存储介质中具体实施的计算机程序产品以执行计算机处理。有形计算机可读存储介质不具体实施在载波或其它信号中。数据和程序文件可输入到计算机系统600中,计算机系统600利用一个以上的处理器来读取文件并且执行其中的程序。在图6中示出了计算机系统的一些元件,其中显示处理器602具有输入/输出(I/O)部604、中央处理单元(CPU)606和存储器部608。可存在一个以上的处理器602、使得计算系统600的处理器602包括单个中央处理单元6060或多个处理单元。计算系统600可以是常规的计算机、分布式计算机或任何其它类型的计算机。所描述的技术可任选地以加载于存储器608、磁盘存储单元612或可移除存储器618中的软件实现。
在示例性实施方式中,错误检测与校正模块、偏移量查找模块和/或偏移量表创建模块可以存储在存储器608和/或存储单元612中且由处理器607执行的指令来具体实现。此外,本地计算系统、远程数据源和/或服务以及其它关联逻辑表示可配置成适应性地分配工作负荷任务以提高系统性能的固件、硬件和/或软件。错误检测与校正模块、偏移量查找模块和/或偏移量表创建模块可利用通用计算机和专用软件(诸如执行服务软件的服务器)、以及专用计算系统和专用软件(诸如执行服务软件的移动设备或网络应用)、或其它计算配置来实现。另外,程序数据,诸如偏移量表,可以存储在存储器608和/或存储单元612中并且由处理器602执行。
本文所描述的实施方式可实现为一个或多个计算机系统中的逻辑步骤。本发明的逻辑操作实现为:(1)在一个或多个计算机系统中执行的处理器实现的步骤序列;以及(2)一个或多个计算机系统内的相互连接的机器或电路模块。实施方式是选择的问题,取决于实施本发明的计算机系统的性能要求。因此,构成本文所描述的实施方案的实施方案的逻辑操作不同地称为操作、步骤、对象或模块。此外,应当理解的是,逻辑操作可以根据需要按任意次序执行、添加和省略,除非明确地做要求或者权利要求语言本质上使得特定次序成为必然。
上述的说明书、实施例和数据提供了对示例性实施方案的结构和使用的完整描述。因为能够在不偏离本发明的精神和范围的情况下做出许多可选的实施方案,本发明在于本文中所附的权利要求。此外,不同实施方案的结构特征可组合到另外的实施方案中而不会偏离所记述的权利要求。

Claims (20)

1.一种用于错误校正代码播种的方法,包括:
基于单元号来访问数据块的索引序列中的数据块,其中所述索引序列中的每个数据块包括存储的ECC值;
取回与所述数据块的所述单元号相关联的偏移量,所述偏移量是后续可用数据块的单元号与物理索引之间的差值;
基于所述单元号、所述偏移量和从所述数据块读回的数据来生成ECC值;以及
判定所生成的ECC值和所存储的ECC值是否满足完整性条件。
2.如权利要求1所述的方法,还包括:
为错误检测与校正模块播种基于所述单元号和所述偏移量的值。
3.如权利要求2所述的方法,其中为所述错误检测与校正模块播种还包括:
为所述错误检测与校正模块播种作为所述单元号和所述偏移量之和的值。
4.如权利要求1所述的方法,其中所述偏移量是从存储在存储设备的固件中的偏移量表中取回的。
5.如权利要求4所述的方法,其中所述偏移量表是在工厂格式化操作期间创建的。
6.如权利要求1所述的方法,其中所述数据块的索引序列是沿着磁盘上的数据磁道的连续扇区。
7.如权利要求1所述的方法,其中所述索引序列包括与存储设备上的顺序数据块相关联的连续增加的索引。
8.一种用于错误校正代码播种的装置,所述装置包括:
基于单元号来访问数据块的索引序列中的数据块的装置,其中所述索引序列中的每个数据块包括存储的ECC值;
取回与所述数据块的所述单元号相关联的偏移量的装置,所述偏移量是后续可用数据块的单元号与物理索引之间的差值;
基于所述单元号、所述偏移量、以及从所述数据块读回的数据来生成ECC值的装置;以及
判定所生成的ECC值和所存储的ECC值是否满足完整性条件的装置。
9.如权利要求8所述的用于错误校正代码播种的装置,其特征在于还包括:
为错误检测与校正模块播种基于所述单元号和所述偏移量的值的装置。
10.如权利要求8所述的用于错误校正代码播种的装置,其中所述偏移量是从存储在存储设备的固件中的偏移量表中取回的。
11.如权利要求10所述的用于错误校正代码播种的装置,其中所述偏移量表是在工厂格式化操作期间创建的。
12.如权利要求8所述的用于错误校正代码播种的装置,其中所述数据块的索引序列是沿着磁盘上的数据磁道的连续扇区。
13.如权利要求8所述的用于错误校正代码播种的装置,其中所述索引序列包括与存储设备上的顺序数据块相关联的连续增加的索引。
14.一种用于错误校正代码播种的系统,包括:
存储设备;
偏移量查找模块,其配置为取回与索引序列中的数据块的单元号相关联的偏移量,所述偏移量是后续可用数据块的单元号与物理索引之间的差值,其中所述索引序列中的每个数据块包括所存储的ECC值;
错误检测与校正模块,其配置为:
基于所述单元号、所述偏移量、以及从所述数据块读回的数据来生成ECC值;以及
判定所生成的ECC值和所存储的ECC值是否满足完整性条件。
15.如权利要求14所述的系统,其中所述错误检测与校正模块进一步配置为利用作为所述单元号与所述偏移量之和的种子来生成ECC值。
16.如权利要求15所述的系统,其中所述偏移量查找模块配置为从存储在存储设备的固件中的偏移量表中取回所述偏移量。
17.如权利要求16所述的系统,其中所述偏移量表是在工厂格式化操作期间创建的。
18.如权利要求15所述的系统,其中数据块的索引序列是沿着磁盘上的数据磁道的连续扇区。
19.如权利要求15所述的系统,其中所述索引序列包括与存储设备上的顺序数据块相关联的连续增加的索引。
20.如权利要求15所述的系统,其中所述错误检测与校正模块判定为:当所生成的ECC值等于所存储的ECC值时,满足所述完整性条件。
CN201410085225.1A 2013-03-11 2014-03-10 错误校正代码播种 Active CN104050052B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/793,999 US9262264B2 (en) 2013-03-11 2013-03-11 Error correction code seeding
US13/793,999 2013-03-11

Publications (2)

Publication Number Publication Date
CN104050052A CN104050052A (zh) 2014-09-17
CN104050052B true CN104050052B (zh) 2017-11-17

Family

ID=51489443

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410085225.1A Active CN104050052B (zh) 2013-03-11 2014-03-10 错误校正代码播种

Country Status (3)

Country Link
US (1) US9262264B2 (zh)
JP (1) JP5824087B2 (zh)
CN (1) CN104050052B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9400721B2 (en) * 2013-03-11 2016-07-26 Seagate Technology Llc Error correction code seeding
US20220407813A1 (en) * 2021-06-16 2022-12-22 Ampere Computing Llc Apparatuses, systems, and methods for implied sequence numbering of transactions in a processor-based system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075468A (zh) * 2006-04-21 2007-11-21 联发科技股份有限公司 错误更正系统及其方法
CN102323907A (zh) * 2011-08-19 2012-01-18 长安大学 嵌入式arm处理器对nandflash数据存储和删除方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04172662A (ja) 1990-11-05 1992-06-19 Matsushita Graphic Commun Syst Inc 記憶媒体欠陥管理方法
JPH0736789A (ja) 1993-07-16 1995-02-07 Matsushita Electric Ind Co Ltd 交替セクタ管理方式
US6115793A (en) 1998-02-11 2000-09-05 Ati Technologies, Inc. Mapping logical cache indexes to physical cache indexes to reduce thrashing and increase cache size
US6182196B1 (en) 1998-02-20 2001-01-30 Ati International Srl Method and apparatus for arbitrating access requests to a memory
JP2968790B1 (ja) 1998-08-25 1999-11-02 茨城日本電気株式会社 磁気ディスク装置のアドレス変換方法、磁気ディスク装置、アドレス変換プログラムを記録した記録媒体
KR100366644B1 (ko) 1998-12-30 2003-02-20 삼성전자 주식회사 지역별시작위치정보를저장하는기록매체와이정보를이용한데이터관리방법
US7253981B2 (en) 2002-04-26 2007-08-07 Seagate Technology, Llc Disc drive with reduced write latency
US20040003172A1 (en) 2002-07-01 2004-01-01 Hui Su Fast disc write mechanism in hard disc drives
JP2009105536A (ja) * 2007-10-22 2009-05-14 Toshiba Corp Rds対応受信装置
US8301912B2 (en) * 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
KR101518199B1 (ko) * 2008-05-23 2015-05-06 삼성전자주식회사 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치
JP2010123078A (ja) 2008-11-21 2010-06-03 Toshiba Storage Device Corp アクセス制御装置、アクセス制御方法および記憶装置
EP2413329B1 (en) 2010-07-28 2014-03-26 Fujitsu Semiconductor Europe GmbH Electronic apparatuses
US8479062B2 (en) * 2010-12-03 2013-07-02 International Business Machines Corporation Program disturb error logging and correction for flash memory
US9146683B2 (en) 2011-04-20 2015-09-29 Seagate Technology Llc Logical block address mapping
KR101678919B1 (ko) 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
US8913335B2 (en) 2011-05-23 2014-12-16 HGST Netherlands B.V. Storage device with shingled data and unshingled cache regions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075468A (zh) * 2006-04-21 2007-11-21 联发科技股份有限公司 错误更正系统及其方法
CN102323907A (zh) * 2011-08-19 2012-01-18 长安大学 嵌入式arm处理器对nandflash数据存储和删除方法

Also Published As

Publication number Publication date
JP5824087B2 (ja) 2015-11-25
CN104050052A (zh) 2014-09-17
JP2014175001A (ja) 2014-09-22
US20140258810A1 (en) 2014-09-11
US9262264B2 (en) 2016-02-16

Similar Documents

Publication Publication Date Title
CN104978281B (zh) 数据存储设备中的数据完整性管理
CN101427323B (zh) 读取非易失性计算机存储器的系统和方法
KR101892302B1 (ko) 불휘발성 메모리 시스템들을 위한 위브 시퀀스 카운터
KR101870521B1 (ko) 스토리지 저널링을 개선하는 방법 및 시스템
US20140068208A1 (en) Separately stored redundancy
CN101877233B (zh) 驱动装置
WO2019174205A1 (zh) 一种垃圾回收的方法、装置及存储设备
US9977626B2 (en) Implementing scattered atomic I/O writes
CN101373446B (zh) 文件系统的压力测试方法
US20200089566A1 (en) Apparatus for diagnosing memory system and operating method thereof
US10922234B2 (en) Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
TW201931366A (zh) 資料儲存裝置以及非揮發式記憶體操作方法
US20170132245A1 (en) Storage controller and method for managing a solid-state memory
US8489852B2 (en) Method and system for manipulating data
US20130166991A1 (en) Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same
US20120117347A1 (en) Initializing of a memory area
TWI677877B (zh) 用於校正記憶體裝置的方法及記憶體裝置
CN110389906A (zh) 存储器元件中重新编排数据的方法、及其控制器与系统
US20200050400A1 (en) Method of accessing data in storage device, method of managing data in storage device and storage device performing the same
JP5330432B2 (ja) データ記憶装置及びテーブル管理方法
WO2017143843A1 (zh) 元数据修复方法及装置
CN104050052B (zh) 错误校正代码播种
US8688938B2 (en) Data copying
CN104050053B (zh) 错误校正代码播种
CN106598769A (zh) Emmc烧录文件检验的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant