CN111344788A - 基于设备群体数据完整性共享的系统级纠错编码分配 - Google Patents
基于设备群体数据完整性共享的系统级纠错编码分配 Download PDFInfo
- Publication number
- CN111344788A CN111344788A CN201980005693.4A CN201980005693A CN111344788A CN 111344788 A CN111344788 A CN 111344788A CN 201980005693 A CN201980005693 A CN 201980005693A CN 111344788 A CN111344788 A CN 111344788A
- Authority
- CN
- China
- Prior art keywords
- data
- data storage
- ecc
- storage devices
- stored
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/356—Unequal error protection [UEP]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
数据存储系统的动态可扩展纠错编码(ECC)方案涉及系统控制器,该系统控制器基于从数据存储设备阵列访问的操作数据完整性信息来预测重建要存储在特定数据存储设备上的数据所需的ECC的类型和/或量。因此,除非需要,否则不需要分配冗余。可根据共同特征将设备逻辑上分组为子集,由此针对子集中的设备进行的预测可基于来自该子集以及来自其他相关子集的数据完整性信息。
Description
技术领域
本发明的实施方案可整体涉及数据存储系统,并且更具体地讲,涉及基于来自系统存储设备的数据完整性信息的纠错编码(ECC)。
背景技术
存在对高容量数字数据存储系统的商业需求,其中多个数据存储设备(DSD)容纳在共同的壳体中。数据存储系统通常包括容纳多个搁架的大型壳体,DSD的行安装在该搁架上。历史上,存储系统具有严格自主独立设计的错误冗余方案。这导致整个系统中的重叠和效率降低。例如,设备可以分配奇偶校验以保护来自任何数据的任何成分的任何错误,而不管这是否是需要的或者主机是否可能需要那些数据。因此,设备上的这种纠错编码会增加系统的故障占用面积(即,最小错误事件)、调用的延迟和成本。
本节中描述的任何方法是可以实行的方法,但不一定是先前已经设想到或实行过的方法。因此,除非另有说明,否则不应认为本节所述的任何方法仅仅因为包含在本节中而成为现有技术。
附图说明
实施方案通过示例而非限制的方式在附图中示出,在附图中相同的附图标记指代相似的元件并且其中:
图1A是根据一个实施方案的示出硬盘驱动器(HDD)的平面图;
图1B是根据一个实施方案的示出固态驱动器(SSD)的框图;
图2为根据一个实施方案的示出数据存储系统的透视图;
图3是根据一个实施方案的示出数据存储系统架构的框图;并且
图4是根据一个实施方案的示出用于基于设备数据完整性信息来分配系统级纠错编码(ECC)的方法的流程图。
具体实施方式
本发明描述了基于来自系统存储设备的数据完整性信息的纠错编码(ECC)的方法。在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对本文所述的本发明实施方案的透彻理解。然而,将显而易见的是,本文所述的本发明的实施方案可以在没有这些具体细节的情况下实践。在其他情况下,熟知的结构和装置以框图的形式示出,以便避免不必要地模糊本文所述的本发明的实施方案。
数据存储系统
存在对高容量数字数据存储系统的商业需求,其中多个数据存储设备(DSD)容纳在共同的壳体中。数据存储系统通常包括容纳多个搁架的大型壳体,DSD的行安装在该搁架上。图2为根据实施方案的示出数据存储系统的透视图。数据存储系统200包括系统壳体202(或“支架202”),多个数据存储系统托盘204容纳在该系统壳体中。每个托盘204可被放置或滑动到支架202内的对应狭槽中。支架202还容纳系统控制器,并且还可容纳开关、存储服务器、应用服务器、电源、冷却风扇等。
图3是根据一个实施方案的示出数据存储系统架构的框图。示例性架构300示出了包括多个数据存储设备(DSD)304a(DSD1)、304b(DSD2)和304n(DSDn)的数据存储系统200,其中n表示可因具体实施而异的任意数量的DSD。每个DSD 304a-304n根据对应的通信协议323经由通信接口322处于系统控制器312的控制下并与该系统控制器通信。每个DSD 304a、304b、304n包括由包括DSD ECC模块310的相应DSD控制器308控制的对应非易失性存储器(NVM)306。每个DSD ECC模块310(其可以是例如对应片上系统(SoC)的组成部分,诸如HDD上下文中的数据信道或硬盘控制器的一部分)能够使用诸如本领域已知的那些程序在数据磁道级执行“磁道ECC”处理,即ECC编码/解码。系统控制器312包括存储器313、系统ECC模块314,该模块包括ECC编码器316、ECC解码器318和ECC规则引擎320,其中每一个表示涉及ECC奇偶校验编码和解码的过程功能,如本文其他地方更详细描述的。
在本文中被描述为由系统控制器312或DSD 304a-304n执行或可执行的处理、功能、过程、动作、方法步骤等可包括通过执行存储在一个或多个存储器单元中的一个或多个指令序列来执行,并且当由一个或多个处理器执行时,导致此类性能。系统控制器312可以硬件、软件和固件的任何形式和/或组合来实施。例如,并且根据一个实施方案,系统控制器312包括专用集成电路(ASIC),该专用集成电路包括用于存储此类指令的至少一个存储器单元(诸如固件、作为非限制性示例)和用于执行此类指令的至少一个处理器,使得ECC奇偶校验分配、编码、解码和应用程序能够通过将损坏或丢失的数据转换为其原始形式作为写入请求来恢复损坏的存储数据。
数据存储系统200可与主机350通信地耦接,主机350可实施在可执行代码可在其上执行的硬件机器(对于非限制性示例,计算机或硬件服务器,等等),或作为可由一个或多个处理器(对于非限制性示例,软件服务器诸如数据库服务器、应用程序服务器、媒体服务器等)执行的软件指令。主机350通常表示数据存储系统200的客户端,并且具有向数据存储系统200提出读取和写入请求的能力。需注意,系统控制器312也可被称为“主机”,因为该术语通常参考对数据存储设备或设备阵列进行I/O调用的任何设备来使用。
引言
如本文所使用的,术语“基本上”应当理解为描述大部分或差不多被结构化、配置、定尺寸等的特征,但在实践中制造公差等引起结构、构型、尺寸等并不总是或一定如所述的那样精确的情形。例如,将结构描述为“基本上竖直的”将为该术语赋予其普通含义,使得侧壁对于所有实用目的均为竖直的,但可能并不精确地处于90度。
纠错编码(ECC)(或“纠错码”、“纠错码”等)通常是指用于校正(即,重建或“恢复”)损坏数据的方案、技术、过程、编码/解码等。损坏数据可能是数据的不正确传输、或在数据存储(即,写入)到非易失性存储器中之后发生的不需要的位翻转(位错误)、或在数据存储到非易失性存储器诸如DSD 304a、304b、304n的NVM 306(图3)之后发生的不需要的位擦除的结果。ECC通常通过向相关联的数据添加或追加额外的编码数据(有时通常称为“奇偶校验”、“奇偶校验数据”、“奇偶校验信息”、“奇偶校验位”等)来实现,使得即使在数据中引入多个错误(直到使用奇偶校验的能力)时,也可以恢复数据。
例如,“写入验证”功能可用于某些数据存储上下文中以确保数据可靠性(所谓的“数据完整性”),但可通过降低写入命令吞吐量而不利地影响系统性能。因此,保持数据完整性具有其自己的权衡和挑战,并且可以考虑提交资源到增强ECC方案,以恢复损坏的数据,而不是在存储设备提交资源到数据完整性。换句话讲,人们可能愿意在存储设备处(例如,在DSD 304a-304n(图3)的非易失性存储器306处)接受较少的数据完整性,以便提高性能,同时进一步依赖于经由更独立、智能和特定场景的ECC方案恢复损坏数据。
智能系统级纠错编码
如所讨论的,历史存储系统具有严格自主独立设计的错误冗余方案,这可导致整个系统的重叠和效率降低。相比之下,分布在整个存储系统中的不同存储设备处和之间的数据完整性的扩展整体视图可导致更有效和更可靠的整体存储系统。
数据存储设备,诸如构成数据存储系统200(图2和图3)的DSD304a-304n(图3),可以被认为是可能影响与每个DSD相关联的数据完整性的因素的敏感传感器,诸如HDD的环境中的温度、气流、振动等,以及SSD的环境中的年龄、存储周期等。此外,HDD形式的DSD 304a-304n可为关于对应于特定媒体头部或区域的位置误差信号(PES)和对其有贡献的因素的信息源。因此,当与诸如控制器312(图3)的系统控制器共享时,每个DSD可能在内部知晓的数据完整性信息以及它们的组合可以为设备级的数据劣化症状提供廉价但有价值的扩展视力,以用作系统级的知情且有效的ECC控制点。还可存在关于在系统级可用(例如,对系统控制器可用)的DSD的附加信息,这些信息可有助于和/或组合以有助于系统级的智能预测ECC决策。例如,在HDD的上下文中,可使系统控制器知晓信息,诸如存储设备形状因素、磁盘数量(和/或致动器)、磁盘的RPM(每分钟转数)以及HDD模型中的其他常见变型,以及每个存储设备在特定搁架和系统支架(例如,图2的支架202)内的定位、与风扇的相对接近度、风扇速度、与热源的相对接近度、以及每个设备本身外部的其他因素。需注意,DSD 304a-304n以及控制器312可被编程为随时间“学习”。因此,可能影响与每个DSD相关的数据完整性的因素可能不是静态的,即,这些因素(以及基于这些因素的ECC决策)可能是动态的。
图4是根据一个实施方案的示出用于基于设备数据完整性信息来分配系统级纠错编码(ECC)的方法的流程图。
在框402处,组成数据存储系统的多个数据存储设备向系统控制器电路提供对相应数据完整性信息的访问。例如,根据一个实施方案,数据存储系统200(图2和图3)的DSD304a-304n(图3)可向系统控制器312(图3)(或系统控制器312可操作以发起即时消息协议)发起即时消息协议(例如,其可为现有的或者可为该目的而专门定制并覆盖到现有的或其他的通信协议上),例如,经由公共通信信道或总线和/或专用通信信道或总线,DSD 304a-304n(或DSD 304a-304n的至少一个子集)经由相应的通信接口322(图3)向控制器312传输或报告相应的数据完整性、数据适应性、数据风险信息。另选地,例如并且根据一个实施方案,数据完整性、数据适应性、数据风险信息可以存储在每个对应的DSD 304a-304n上,或者存储在非对应DSD 304a-304n中的任何其他DSD上,或者存储在控制器312可以从其访问/读取此类数据完整性信息的其他位置。
一般来讲,根据一个实施方案,数据完整性、适应性、风险信息表征当相应DSD执行读取操作时发生读取错误(例如,由于位翻转、位擦除等而导致的损坏数据)的概率或风险。换句话讲,每个DSD 304a-304n可以向控制器312提供测量其相应读取信号完整性的一组操作量度。此外,对于非限制性示例而言,系统控制器312有时可基于对应存储数据的重要性、与替换或重建来自其他来源的存储数据相关的成本等,来选择改变ECC决策中所利用的度量。
对于一个非限制性示例,每个或任何DSD 304a-304n可以提供对应于HDD扇区的原始信号完整性,诸如局部迭代计数器的形式,这是关于读取信道解码位的难度或处理密集度的信号质量度量。对于另一个非限制性示例,举例来说,每个或任何DSD 304a-304n可以提供数据完整性、适应性、关于相邻磁道干扰(ATI)和/或远磁道干扰(FTI)和/或磁道挤压的风险信息,以及它们的影响(例如,振幅变化、擦除带宽、字节错误率)。对于非限制性示例,DSD 304a-304n可为此目的而向控制器312共享的其他数据完整性度量可以是每头或每区信噪比(SNR)裕度、关于在叠瓦式磁记录(SMR)HDD、HDD盘加载/卸载区等的上下文中的写入抑制前馈和智能写入验证操作的信息。
一般来讲,DSD 304a-304n可提供给控制器312的数据完整性、适应性、风险信息的类型在DSD关于其自身的本地知识的上下文中是相对无界的,并且目的是提供信息,以使控制器312能够相对于DSD内生成的读取信号的质量执行相关风险评估和预测。这并不是说由DSD 304a-304n提供给控制器312的信息是任意的,而是本文所述技术的总体系统设计、开发和实现将受益于对每个DSD可用的信息类型和对系统控制器有用的信息类型的集成方法以用于评估和预测目的。
在框404处,控制器电路基于来自多个数据存储设备的至少一个子集的数据完整性信息来确定对应于要存储在一个或多个数据存储设备上的数据的纠错编码(ECC)的类型和/或量。例如,基于框402处DSD 304a-304n的群体已与控制器312共享的数据完整性、适应性、风险信息(或此类共享信息的至少一个子集),控制器312的ECC规则引擎320(图3)评估此类信息以预测对应于给定DSD 304a-304n的读取操作的错误概率或风险。然后,基于其评估的结果(其可进一步基于除在框402处收集的信息之外的信息),控制器312可做出关于ECC的类型和/或数量、级别、程度的知情决定(对于非限制性示例,低密度奇偶校验(LDPC)码在最低级别,在下一级的N个逻辑块地址(LBA)上的块级代码、在下一级的多个DSD上实现为分布式代码的擦除编码、RAID方案等)适用于处理相关联的数据损坏风险,并且控制器312然后可以跟踪哪个数据附加的奇偶校验被分配。例如,假设特定DSD上的数据具有1x字节的编码奇偶校验的基线奇偶校验,如果该DSD共享的数据完整性、适应性、风险信息导致控制器312得出该特定DSD上的数据受到损害或老化(例如,通过热衰减、挤压等)的结论或预测,则控制器312的规则引擎320可以确定例如编码奇偶校验的2X字节或甚至4X字节适用于写入该特定DSD的新数据。
根据一个实施方案,多个DSD 304a-304n根据一个或多个共同特征(例如,振动环境、年龄、驱动类型等)在逻辑上分组为子集,并且在框404处针对DSD 304a-304n的特定子集或针对该子集内的特定DSD 304a-304n执行的确定基于来自该特定子集的共享数据完整性信息。另选地,根据一个实施方案,在框404处针对DSD 304a-304n的特定子集或针对该子集内的特定DSD 304a-304n执行的确定基于来自该特定子集和来自DSD304a-304n的一个或多个附加的子集的共享数据完整性信息。
系统控制器312可能具有DSD 304a-304n不可用的知识,DSD 304a-304n可利用该知识在框404处进行确定。对于非限制性示例,控制器312可诸如基于来自主机350(图3)的写入请求中的信息了解某些数据的时间关键性,控制器312基于该信息确定所需ECC。例如,读取延迟更不可取的数据继而可被分配最大ECC保护。对于另一个非限制性示例,控制器312了解某些数据的冗余(例如,ECC奇偶校验)是否已经存在于不同的上下文中。例如,控制器312可知道擦除编码保护已经在较大规模上(诸如在档案文件语境中)可用,并且读取延迟不是最重要的,基于该读取延迟,控制器312放弃附加的ECC保护,因为数据已经被这种其他形式的ECC保护覆盖。根据一个实施方案,与框404相关联的处理作为后台进程、连续地或作为处理带宽可用来执行。另选地,根据一个实施方案,响应于来自主机350的写入请求来执行与框404相关联的处理,由此可在执行此类处理的同时使写入请求排队以写入到存储设备阵列。
在框406处,控制器312计算在框404处确定的ECC,并且在框408处,将数据存储(写入)在DSD 304a-304n中的一个或多个上,并且将相应计算的ECC存储(写入)在DSD 304a-304n中的一个或多个上。例如,根据一个实施方案,ECC可存储在对应的DSD 304a-304n上,对应的数据存储在该DSD 304a-304n上。另选地,例如并且根据一个实施方案,数据可存储在一个DSD 304a-304n上,而对应ECC存储在与存储数据本身的DSD 304a-304n不同的DSD304a-304n上(或控制器312可访问的其他地方)。根据一个实施方案,在框408处,ECC存储在虚拟磁道上,即与较大扇区组的特定数量的HDD扇区逻辑关联的磁道。例如,ECC可存储在与存储对应数据的磁道分开的磁道上,并且作为非限制性示例,可存储在500扇区组的每100扇区的磁道上。因此,不需要读取整个磁道来获得奇偶校验,该奇偶校验通常存储在存储对应数据的磁道的末尾。
因此,响应于来自客户端(诸如主机350)的数据读取请求,控制器312向其上存储有数据的一个或多个DSD 304a-304n提出读取请求,一个或多个DSD 304a-304n向控制器312返回所请求的数据和对应的ECC,并且控制器312对ECC解码以便重建或完美所请求的数据。根据一个实施方案,DSD 304a-304n返回某种形式的所请求的数据,而与读取操作是否成功无关。也就是说,在部分失效读取操作的情况下,DSD 304a-304n可以返回失效扇区的“伪”数据,并且控制器312基于可用ECC检测和校正数据错误。此外,经常使用的冗余或奇偶校验可以由控制器312(例如,在存储器313中)和/或DSD 304a-304n高速缓存,以提高其可用性。
基于来自如本文所述的系统存储设备的数据完整性信息的纠错编码(ECC)的动态和可扩展方法提供了比常规方法更可靠的数据存储系统,并且因此在其预期或指定或通告或保证的操作寿命周期内提供了更可用的数据存储系统。这至少部分地是因为根据设备304a-304n的群体向控制器312报告或以其他方式与控制器312共享的信息和实际数据完整性反馈,系统控制器312获得数据存储设备304a-304n的阵列的数据信号完整性的整体视图。因此,在存储系统内采用ECC的更优化的模式,例如,在数据完整性强的情况下仅需要生成必要量的ECC,并且在数据完整性受损且读取失败被抑制的情况下,可以生成所需量的ECC。换句话讲,ECC的类型和量更紧密地映射到实际所需的数据冗余量,因为所需ECC的类型和量是基于来自和关于设备阵列的“实际”操作知识来确定/预测的。因此,这种灵活和适应性的ECC方法进一步提供了更低的计算成本和更有效的ECC框架,其中仅在需要时或需要之处产生编码。此外,由于ECC计算和处理对设备I/O操作的影响最小,因此在系统级别确定何时以及何处需要编码以及需要多少编码提供了更好的执行数据存储系统。
示例性操作上下文的物理描述
硬盘驱动器配置
实施方案可用于采用多个数据存储设备(DSD)诸如硬盘驱动器(HDD)以及固态存储器设备(或“固态驱动器”(SSD))和/或混合驱动器的数据存储系统的上下文中。因此,根据一个实施方案,图1A中显示了示出HDD100的平面图以示出示例性操作上下文。
图1A示出了包括滑块110b的HDD 100的部件的功能布置,滑块110b包括磁性读写磁头110a。滑块110b和磁头110a可统称为磁头滑块。HDD 100包括具有磁头滑块的至少一个磁头万向节组件(HGA)110、通常经由弯曲部附接到磁头滑块的引线悬架110c,以及附接到引线悬架110c的负载梁110d。HDD 100还包括可旋转地安装在主轴124上的至少一个记录介质120和附接到主轴124用于旋转介质120的驱动马达(不可见)。读写磁头110a(也可以称为换能器)包括写元件和读元件,用于分别写入和读取存储在HDD 100的介质120上的信息。可使用磁盘夹128将介质120或多个磁盘介质附连到主轴124。
HDD 100还包括附接到HGA 110的臂132、滑架134、音圈马达(VCM),该VCM包括包含附接到滑架134的音圈140的电枢136和包含音圈磁体(不可见)的定子144。VCM的电枢136附接到滑架134并且被配置为移动臂132和HGA 110以访问介质120的部分,它们共同安装在具有插置的枢转轴承组件152的枢轴148上。就具有多个磁盘的HDD而言,滑架134可称为“E形块”或梳齿,因为滑架被布置为承载联动的臂阵列,从而使之呈现梳齿的外观。
包括包含磁头滑块耦接至的弯曲部的磁头万向节组件(例如,HGA110)、弯曲部耦接至的致动器臂(例如,臂132)和/或负载梁,以及致动器臂耦接至的致动器(例如,VCM)的组件可以统称为磁头堆叠组件(HSA)。然而,HSA可包括比所述的那些更多或更少的部件。例如,HSA可指还包括电互连部件的组件。一般来讲,HSA是被配置为移动磁头滑块以访问介质120的部分以进行读和写操作的组件。
进一步参考图1A,包括至磁头110a的写信号和来自磁头110a的读信号的电信号(例如,到VCM的音圈140的电流)由柔性电缆组件(FCA)156(或“柔性电缆”)传输。柔性电缆156与磁头110a之间的互连件可包括臂电子(AE)模块160,该AE模块可具有读信号的板载前置放大器以及其他读通道和写通道电子部件。AE模块160可附接到滑架134,如图所示。柔性电缆156可以耦接到电连接器块164,该电连接器块164在一些配置中通过由HDD外壳168提供的电馈通提供电气连通。HDD外壳168(或“壳体底座”或“基板”或简称“底座”)与HDD盖一起为HDD100的信息存储组件提供半密封(或气密密封,在一些配置中)的保护壳体。
其他电子部件,包括磁盘控制器和包括数字信号处理器(DSP)的伺服电子器件,向驱动马达、VCM的音圈140和HGA 110的磁头110a提供电信号。提供给驱动马达的电信号使驱动马达旋转,从而向主轴124提供扭矩,该扭矩继而传输到附连到主轴124的介质120。因此,介质120沿方向172旋转。旋转的介质120形成空气垫,该空气垫充当滑块110b的空气轴承表面(ABS)搭载于其上的空气轴承,以使得滑块110b在介质120的表面上方飞行,而不与记录信息的薄磁记录层形成接触。类似地,在利用轻于空气的气体(诸如用于非限制性示例的氦气)的HDD中,旋转的介质120形成气垫,该气垫充当滑块110b搭载于其上的气体或流体轴承。
向VCM的音圈140提供的电信号使HGA 110的磁头110a能够访问上面记录有信息的磁道176。因此,VCM的电枢136摆动经过圆弧180,这使HGA 110的磁头110a能够访问介质120上的各个磁道。信息存储在介质120上的多个径向嵌套的磁道中,这些磁道被布置在介质120上的扇区(诸如扇区184)中。相应地,每个磁道由多个扇区化磁道部分(或“磁道扇区”)诸如扇区化磁道部分188构成。每个扇区化磁道部分188可包括记录的信息和数据头,该数据头包含纠错码信息和伺服突发信号图案,诸如ABCD-伺服突发信号图案(其是识别磁道176的信息)。在访问磁道176时,HGA 110的磁头110a的读元件读取伺服突发信号图案,该伺服突发信号图案向伺服电子器件提供定位错误信号(PES),这会控制向VCM的音圈140提供的电信号,从而使磁头110a能够跟随磁道176。在找到磁道176并识别特定的扇区化磁道部分188时,磁头110a或者从磁道176读取信息或者根据磁盘控制器从外部代理(例如计算机系统的微处理器)接收的指令将信息写入磁道176。
HDD的电子架构包括用于执行其各自的HDD操作功能的多个电子部件,诸如硬盘控制器(“HDC”)、接口控制器、臂电子模块、数据通道、马达驱动器、伺服处理器、缓冲存储器等。两个或更多个此类部件可以组合在称为“片上系统”(“SOC”)的单个集成电路板上。此类电子部件中的若干个(如果不是全部的话)通常布置在印刷电路板上,该印刷电路板耦接到HDD的底侧,诸如耦接到HDD外壳168。
固态驱动器配置
图1B是示出可以实现本发明的实施方案的示例性操作上下文的框图。图1B示出了通用SSD架构150,其中SSD 152通过主通信接口156与主机154通信地耦接。实施方案不限于如图1B所描绘的配置,相反,实施方案可以利用除图1B所示之外的SSD配置来实现。例如,实施方案可被实现为在依赖于用于写入和读取数据的非易失性存储器存储部件的其他环境中操作。
主机154广义地表示对一个或多个存储器设备进行数据I/O请求或调用等的任何类型的计算硬件、软件或固件(或前述的任何组合)。例如,主机154可以是在计算机、平板电脑、移动电话或通常包含存储器或与存储器交互的任何类型的计算设备上执行的操作系统,诸如主机350(图3)。将主机154耦接到SSD 152的主接口156可以是例如存储系统的内部总线或通信电缆或无线通信链路等。
图1B所示的示例性SSD 152包括接口160、控制器162(例如,其中具有固件逻辑的控制器)、寻址164功能块、数据缓冲高速缓存166、纠错码(ECC)168以及一个或多个非易失性存储器部件170a、170b-170n。
接口160是部件即SSD 152与主机154之间在该上下文中的交互点,并且在硬件和软件两者的层级上均适用。这允许部件经由输入/输出系统和相关联的协议与其他部件进行通信。硬件接口通常由接口处的机械信号、电信号和逻辑信号以及用于对它们进行排序的协议来描述。通用和标准接口的一些非限制性示例包括SCSI(小型计算机系统接口)、SAS(串行附接SCSI)和SATA(串行ATA)。
SSD 152包括控制器162,该控制器162将把非易失性存储器部件(例如,NAND闪存)桥接到主机(诸如非易失性存储器170a、170b、170n)的电子器件结合到主机154。控制器通常是执行固件级代码的嵌入式处理器,并且是SSD性能的重要因素。
控制器162经由寻址164功能块与非易失性存储器170a、170b、170n进行交互。寻址164功能用于例如管理从主机154到SSD 152上(即SSD152的非易失性存储器170a、170b、170n上)的对应物理块地址的逻辑块地址(LBA)之间的映射。因为非易失性存储器页面和主机扇区的大小不同,所以SSD必须构建和维护使其能够在将数据写入扇区或从扇区读取数据的主机与实际放置该数据的物理非易失性存储器页面之间转换的数据结构。可为SSD的易失性存储器172中的会话构建和维护该表结构或“映射”,诸如DRAM或控制器162和寻址164可访问的一些其他本地易失性存储器部件。另选地,可以在SSD的非易失性存储器诸如非易失性存储器170a、170b-170n中的会话上更持久地保持表结构。
除非易失性存储器170a、170b-170n之外,寻址164还与数据缓冲器高速缓存166和纠错码(ECC)168交互。SSD 152的数据缓冲器高速缓存166通常使用DRAM作为高速缓存,类似于硬盘驱动器中的高速缓存。数据缓冲器高速缓存166用作向和从非易失性存储器部件传输数据的缓冲器或分级区域,并且用作高速缓存以加快对高速缓存数据的未来请求。数据缓冲器高速缓存166通常用易失性存储器来实现,因此存储在其中的数据不会永久性地存储在高速缓存中,即,数据不是持久性的。
ECC 168是将冗余数据或奇偶校验数据添加到消息中的系统,使得即使在传输过程中引入多个错误或在存储装置上引入多个错误,ECC 168也可由接收器恢复。
最后,SSD 152包括一个或多个非易失性存储器170a、170b-170n部件。对于非限制性示例,非易失性存储器部件170a、170b-170n可被实现为闪存存储器(例如,NAND或NOR闪存)或现在或将来可用的其他类型的固态存储器。非易失性存储器170a、170b-170n部件是数据持续存储在其上的实际存储器电子部件。SSD 152的非易失性存储器170a、170b-170n部件可被认为是硬盘驱动器(HDD)存储设备中的硬盘的模拟。
此外,本文对数据存储设备的引用可涵盖多介质存储设备(或“多介质设备”,其有时可被称为“多层设备”或“混合驱动器”)。多介质存储设备通常指的是具有常规HDD(参见例如HDD 100)与使用非易失性存储器(诸如闪存或其他固态(例如,集成电路)存储器)的SSD(例如,参见SSD 150)(其为电可擦除和可编程的)组合的功能的存储设备。由于不同类型的存储介质的操作、管理和控制通常不同,因此混合驱动器的固态部分可包括其自身对应的控制器功能,该控制器功能可与HDD功能一起集成到单个控制器中。多介质存储设备可被构建和配置为以多种方式操作并利用固态部分,诸如作为非限制性示例,将固态存储器用作高速缓存存储器,用于存储频繁访问的数据,用于存储I/O密集数据,用于存储对应于有效载荷数据的元数据(例如,用于辅助解码有效载荷数据)等。另外,多介质存储设备可以被构建和配置为基本上作为单个壳体中的两个存储设备,即常规的HDD和SSD,具有用于主机连接的一个或多个接口。
扩展和替代
在前述说明中,已经参照大量的具体细节描述了本发明的实施方案,这些细节可根据不同的具体实施而变化。因此,可以在不脱离实施方案较宽的精神和范围的情况下对其进行各种修改和改变。因此,本发明以及申请人旨在成为本发明的唯一且排他性的指示物的是由本专利申请以此类权利要求发出的具体形式发出的一组权利要求,包括任何后续的更正。本文明确阐述的对包含在这些权利要求中的术语的任何定义应当决定如权利要求中使用的这些术语的含义。从而,未在权利要求中明确引述的限制、元件、特性、特征、优点或属性不应以任何方式限制此权利要求的范围。因此,本说明书和附图被认为是示例性意义的而不是限制性意义的。
此外,在该描述中,某些过程步骤可按特定顺序示出,并且字母和字母数字标签可用于识别某些步骤。除非在说明书中明确指明,否则实施方案不一定限于执行此类步骤的任何特定顺序。具体地讲,这些标号仅用于方便步骤的识别,并非旨在指定或要求执行此类步骤的特定顺序。
Claims (26)
1.一种方法,包括:
构成数据存储系统的多个数据存储设备向所述数据存储系统的控制器电路提供对相应数据完整性信息的访问;
所述控制器电路至少部分地基于来自所述多个数据存储设备的至少一个子集的所述数据完整性信息,确定对应于要存储在所述多个数据存储设备中的一个或多个数据存储设备上的数据的纠错编码(ECC)的类型和/或量,以抑制读取操作失败;
所述控制器电路计算所确定的ECC;以及
存储数据并且将所述对应计算的ECC存储在所述多个数据存储设备中的一个或多个数据存储设备上。
2.根据权利要求1所述的方法,其中响应于来自客户端的写入请求来执行所述确定。
3.根据权利要求1所述的方法,其中所述确定作为后台进程来执行。
4.根据权利要求1所述的方法,还包括:
响应于来自客户端的数据读取请求,所述控制器电路请求来自所述请求数据存储在其上的所述数据存储设备中的一者或多者的读取操作;
所述一个或多个数据存储设备向所述控制器电路返回所述请求数据和所述对应ECC;以及
所述控制器电路解码所述ECC。
5.根据权利要求1所述的方法,其中:
所述多个数据存储设备根据一个或多个共同特征在逻辑上被分组为子集;并且
数据存储设备的特定子集的确定基于来自所述特定子集的数据完整性信息。
6.根据权利要求1所述的方法,其中:
所述多个数据存储设备根据一个或多个共同特征在逻辑上被分组为子集;并且
数据存储设备的特定子集的所述确定基于来自所述特定子集和来自数据存储设备的一个或多个附加的子集的数据完整性信息。
7.根据权利要求1所述的方法,其中来自数据存储设备的所述数据完整性信息表征对应于所述数据存储设备的信号完整性。
8.根据权利要求7所述的方法,其中来自数据存储设备的所述数据完整性信息包括对应于所述数据存储设备的存储介质的至少一部分的本地迭代计数器。
9.根据权利要求7所述的方法,其中来自数据存储设备的所述数据完整性信息包括表征与所述数据存储设备的存储介质的至少一部分相对应的相邻磁道干扰的度量。
10.根据权利要求1所述的方法,其中所述确定还基于要存储在所述一个或多个数据存储设备上的所述数据的时间关键性。
11.根据权利要求1所述的方法,其中所述确定还基于对应于要存储在所述一个或多个数据存储设备上的所述数据的其他纠错编码的可用性。
12.根据权利要求1所述的方法,其中所述确定还基于确保所述数据存储系统在其指定寿命周期期间的操作可用性。
13.根据权利要求1所述的方法,其中:
所述ECC的存储存储在逻辑上与较大数据扇区组的特定数量的硬盘驱动器数据扇区相关联的ECC磁道上;并且
所述ECC磁道是与存储对应数据的磁道不同的磁道。
14.根据权利要求1所述的方法,其中所述提供对所述相应数据完整性信息的访问包括所述多个数据存储设备中的一个或多个向所述控制器电路报告相应数据完整性信息。
15.根据权利要求1所述的方法,其中所述提供对所述相应数据完整性信息的访问包括所述控制器电路读取存储在所述多个数据存储设备中的一个或多个数据存储设备上的数据完整性信息。
16.根据权利要求1所述的方法,其中所述存储包括将所计算的ECC存储在其上存储有所述对应数据的所述数据存储设备上。
17.根据权利要求1所述的方法,其中所述存储包括将所述数据存储在第一数据存储设备上以及将所述对应的计算ECC存储在不同的第二数据存储设备上。
18.一种数据存储系统,包括:
多个数据存储设备;和
系统控制器电路,所述系统控制器电路包括存储器和一个或多个处理器,并且实施一个或多个指令序列,所述一个或多个指令序列在由所述一个或多个处理器执行时,使得执行以下操作:
访问对应于存储在所述多个数据存储设备的至少一个子集上的数据的相应数据适应性信息;
至少部分地基于所访问的数据适应性信息,确定对应于要存储在所述多个数据存储设备中的一个或多个数据存储设备上的数据的纠错编码(ECC)的类型和/或量,以抑制读取操作失败;
计算所述确定的ECC;以及
响应于来自客户端的数据写入命令,命令写入数据并将所述对应的计算ECC写入所述多个数据存储设备中的一个或多个数据存储设备。
19.根据权利要求18所述的数据存储系统,其中所述一个或多个指令序列使得进一步执行以下操作:
响应于来自所述客户端的数据读取请求,请求来自其上存储有所请求的数据的所述数据存储设备中的一者或多者的读取操作;
从所述一个或多个数据存储设备接收所述请求数据和所述对应ECC;以及
解码所述ECC。
20.根据权利要求18所述的数据存储系统,其中:
所述一个或多个指令序列使得基于一个或多个共同特征在逻辑上将所述多个数据存储设备进一步分组为子集的执行;并且
确定数据存储设备的特定子集基于来自至少所述特定子集的所述数据适应性信息。
21.根据权利要求18所述的数据存储系统,其中来自数据存储设备的所述数据适应性信息表征对应于所述数据存储设备的数据读取错误的风险。
22.根据权利要求18所述的数据存储系统,其中所述多个数据存储设备包括来自由旋转磁性存储介质设备、固态存储器设备和多媒体设备组成的组的至少两种类型的设备。
23.根据权利要求18所述的数据存储系统,其中所述确定还基于确保所述数据存储系统在其保证的寿命周期期间的操作可用性。
24.一种数据存储系统电子控制器制造,所述数据存储系统电子控制器制造实施一个或多个指令序列,所述一个或多个指令序列在由一个或多个处理器执行时使得执行以下操作:
在所述控制器制造的控制下,访问对应于存储在多个数据存储设备的至少一个子集上的数据的相应数据风险信息;以及
至少部分地基于来自提供对所述数据风险信息的访问的所述多个数据存储设备的至少一个子集的所述数据风险信息,预测是否需要附加的纠错编码(ECC)来将数据存储在所述多个数据存储设备中的一个或多个数据存储设备上以抑制读取操作失败。
25.根据权利要求24所述的数据存储系统电子控制器制造,其中所述一个或多个指令序列使得进一步执行以下操作:
响应于预测需要附加的ECC,计算所述附加的ECC;
响应于来自系统客户端的数据写入命令,命令写入数据并将所述对应的附加的ECC写入所述数据存储设备中的一个或多个;
响应于来自所述系统客户端的数据读取请求,请求来自其上存储有所请求的数据的所述数据存储设备中的一者或多者的读取操作;
从所述一个或多个数据存储设备接收所述请求数据和所述对应的附加的ECC;以及
解码所述附加的ECC以重建所述请求数据。
26.根据权利要求24所述的数据存储系统电子控制器制造,其中所述一个或多个指令序列使得进一步执行以下操作:
响应于预测不需要附加的ECC,并且响应于来自系统客户端的数据读取请求,请求来自其上存储有所请求数据的所述数据存储设备中的一者或多者的读取操作;
从所述一个或多个数据存储设备接收已就位用于保护所述数据的所述请求数据和ECC;以及
对已就位所述ECC解码,以重建所述请求数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/020,853 US10897273B2 (en) | 2018-06-27 | 2018-06-27 | System-level error correction coding allocation based on device population data integrity sharing |
US16/020,853 | 2018-06-27 | ||
PCT/US2019/020607 WO2020005339A1 (en) | 2018-06-27 | 2019-03-04 | System-level error correction coding allocation based on device population data integrity sharing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111344788A true CN111344788A (zh) | 2020-06-26 |
CN111344788B CN111344788B (zh) | 2021-11-23 |
Family
ID=68986798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005693.4A Active CN111344788B (zh) | 2018-06-27 | 2019-03-04 | 基于设备群体数据完整性共享的系统级纠错编码分配 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10897273B2 (zh) |
CN (1) | CN111344788B (zh) |
DE (1) | DE112019000131T5 (zh) |
WO (1) | WO2020005339A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10802908B2 (en) | 2018-07-31 | 2020-10-13 | Western Digital Technologies, Inc. | Data dependent allocation of error correction resources |
US20230044165A1 (en) * | 2021-08-06 | 2023-02-09 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for remote data transfers to memory |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730344B1 (en) * | 2006-08-28 | 2010-06-01 | Marvell International Ltd. | System and method for error correction |
US20100251068A1 (en) * | 2009-03-27 | 2010-09-30 | Li-Lien Lin | Storage controller with encoding/decoding circuit programmable to support different ecc requirements and related method thereof |
CN102130742A (zh) * | 2010-01-14 | 2011-07-20 | 三菱电机株式会社 | 纠错编码装置和方法、及纠错解码装置和方法 |
US20170249242A1 (en) * | 2009-05-18 | 2017-08-31 | Longitude Enterprise Flash S.A.R.L. | Apparatus, system, and method to increase data integrity in a redundant storage system |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961890B2 (en) | 2001-08-16 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Dynamic variable-length error correction code |
US20050120265A1 (en) | 2003-12-02 | 2005-06-02 | Pline Steven L. | Data storage system with error correction code and replaceable defective memory |
US7810017B2 (en) | 2006-03-20 | 2010-10-05 | Micron Technology, Inc. | Variable sector-count ECC |
US8443134B2 (en) | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
US7900118B2 (en) | 2007-02-12 | 2011-03-01 | Phison Electronics Corp. | Flash memory system and method for controlling the same |
US8046380B2 (en) | 2008-04-08 | 2011-10-25 | Quantum Corporation | Data storage system |
WO2009155963A1 (en) | 2008-06-23 | 2009-12-30 | Ericsson Hungary Ltd | Improving transmission of media streams of broadcast services in a multimedia broadcast transmission system |
US8255774B2 (en) | 2009-02-17 | 2012-08-28 | Seagate Technology | Data storage system with non-volatile memory for error correction |
US8266498B2 (en) * | 2009-03-31 | 2012-09-11 | Freescale Semiconductor, Inc. | Implementation of multiple error detection schemes for a cache |
WO2011031260A1 (en) | 2009-09-10 | 2011-03-17 | Hewlett-Packard Development Company, L.P. | Memory subsystem having a first portion to store data with error correction code information and a second portion to store data without error correction code information |
US8327226B2 (en) | 2010-02-03 | 2012-12-04 | Seagate Technology Llc | Adjustable error correction code length in an electrical storage device |
US8856439B2 (en) | 2010-12-03 | 2014-10-07 | Lsi Corporation | Method and device for utilizing application-level prior knowledge for selectively storing data in higher performance media |
US9106264B2 (en) | 2011-01-04 | 2015-08-11 | Lsi Corporation | Encoding and decoding in flash memories using convolutional-type low-density parity check codes |
US9112537B2 (en) | 2011-12-22 | 2015-08-18 | Intel Corporation | Content-aware caches for reliability |
US8910017B2 (en) | 2012-07-02 | 2014-12-09 | Sandisk Technologies Inc. | Flash memory with random partition |
US8898548B1 (en) | 2012-08-24 | 2014-11-25 | Western Digital Technologies, Inc. | Methods, data storage devices and systems having variable size ECC page size |
US8972826B2 (en) | 2012-10-24 | 2015-03-03 | Western Digital Technologies, Inc. | Adaptive error correction codes for data storage systems |
US9384002B2 (en) * | 2012-11-16 | 2016-07-05 | International Business Machines Corporation | Speculative finish of instruction execution in a processor core |
US9032271B2 (en) | 2012-12-07 | 2015-05-12 | Western Digital Technologies, Inc. | System and method for lower page data recovery in a solid state drive |
US20160132388A1 (en) | 2013-06-14 | 2016-05-12 | Samsung Electronics Co., Ltd | Semiconductor memory device and ecc method thereof |
US9201728B2 (en) | 2013-09-12 | 2015-12-01 | Seagate Technology Llc | Memory device with variable code rate |
US9558066B2 (en) | 2014-09-26 | 2017-01-31 | Intel Corporation | Exchanging ECC metadata between memory and host system |
US9984768B2 (en) | 2014-10-20 | 2018-05-29 | Sandisk Technologies Llc | Distributing storage of ECC code words |
US9786386B2 (en) | 2015-02-27 | 2017-10-10 | Microsoft Technology Licensing, Llc | Dynamic approximate storage for custom applications |
US9690656B2 (en) | 2015-02-27 | 2017-06-27 | Microsoft Technology Licensing, Llc | Data encoding on single-level and variable multi-level cell storage |
CN107771124A (zh) | 2015-05-01 | 2018-03-06 | 材料科学公司 | 包括铝板和胶粘剂芯的层合体 |
US10223197B2 (en) | 2015-08-06 | 2019-03-05 | Nxp B.V. | Integrated circuit device and method for applying error correction to SRAM memory |
US9916199B2 (en) | 2016-03-30 | 2018-03-13 | Intel Corporation | Method and apparatus for an error tolerance aware data retention scheme in a storage device for multi-scale error tolerant data |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US10069597B2 (en) | 2016-09-07 | 2018-09-04 | Western Digital Technologies, Inc. | Aggregated metadata transfer at a data storage device |
-
2018
- 2018-06-27 US US16/020,853 patent/US10897273B2/en active Active
-
2019
- 2019-03-04 WO PCT/US2019/020607 patent/WO2020005339A1/en active Application Filing
- 2019-03-04 CN CN201980005693.4A patent/CN111344788B/zh active Active
- 2019-03-04 DE DE112019000131.0T patent/DE112019000131T5/de active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7730344B1 (en) * | 2006-08-28 | 2010-06-01 | Marvell International Ltd. | System and method for error correction |
US20100251068A1 (en) * | 2009-03-27 | 2010-09-30 | Li-Lien Lin | Storage controller with encoding/decoding circuit programmable to support different ecc requirements and related method thereof |
US20170249242A1 (en) * | 2009-05-18 | 2017-08-31 | Longitude Enterprise Flash S.A.R.L. | Apparatus, system, and method to increase data integrity in a redundant storage system |
CN102130742A (zh) * | 2010-01-14 | 2011-07-20 | 三菱电机株式会社 | 纠错编码装置和方法、及纠错解码装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200007169A1 (en) | 2020-01-02 |
WO2020005339A1 (en) | 2020-01-02 |
CN111344788B (zh) | 2021-11-23 |
US10897273B2 (en) | 2021-01-19 |
DE112019000131T5 (de) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10186296B2 (en) | Error correction for storage devices | |
US10339005B2 (en) | Stripe mapping in memory | |
US10372356B2 (en) | Enhanced data protection in data storage drives | |
US8255774B2 (en) | Data storage system with non-volatile memory for error correction | |
CN111508532B (zh) | 用于磁存储介质的健康管理 | |
US9128846B2 (en) | Disk array device, control device and data write method | |
EP2483785B1 (en) | Stripe-based memory operation | |
US9070390B2 (en) | Modified areal densities for degraded storage device read heads | |
JP4547357B2 (ja) | 記憶データ構造用の冗長性 | |
US20160203041A1 (en) | Track error-correcting code extension | |
US10275309B2 (en) | Multi-layer integrated zone partition system error correction | |
CN111344788B (zh) | 基于设备群体数据完整性共享的系统级纠错编码分配 | |
US7386754B2 (en) | Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity | |
US10574270B1 (en) | Sector management in drives having multiple modulation coding | |
CN113179665A (zh) | 使用基于纠错的度量来识别性能不佳的数据存储设备 | |
US20080059708A1 (en) | Command queue ordering by positionally pushing access commands | |
US11157364B1 (en) | Distributed error correction coding for parallel storage devices | |
US11294598B2 (en) | Storage devices having minimum write sizes of data | |
US20170344425A1 (en) | Error-laden data handling on a storage device | |
CN115087962A (zh) | 用于全跨度降级的抢先升级 | |
US10969969B2 (en) | Use of recovery behavior for prognosticating and in-situ repair of data storage devices | |
KR20220024746A (ko) | 자기 기억 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |