The subject matter of the present invention is related to the subject matter of co-pending application “SCALABLE REPAIR BLOCK ERROR CORRECTION FOR SEQUENTIAL MULTIPLE DATA BLOCKS IN A MAGNETIC DATA STORAGE DEVICE” bearing Ser. No. 13/645,309 with a filing date of 4 Oct. 2012, which is hereby incorporated by reference.
Embodiments of the invention relate to error correction techniques in magnetic data storage devices.
Conventional disk drives with magnetic media organize data in concentric tracks that are spaced apart. The concept of shingled writing is a form of magnetic recording and has been proposed as a way of increasing the areal density of magnetic recording. In shingle-written magnetic recording (SMR) media a region (band) of adjacent tracks are written so as to overlap one or more previously written tracks. The shingled tracks must be written in sequence unlike conventionally separated tracks, which can be written in any order. Tracks on an SMR disk surface are organized into a plurality of shingled regions. Once written in the shingled structure, an individual track or sector cannot be updated in place, because that would overwrite and destroy the overlapping tracks.
ECC in disk drives is used to correct errors and erasures, which occur when a data element is missing or known to be faulty. Traditionally ECC is performed on a sector basis using redundant bits appended to the sector data when it is written. These sector ECC approaches are not ideal for some disk drive applications such as streaming audio-video (AV) and the SMR architecture presents additional ECC problems. A problem addressed by the invention described herein is the recovery of sectors in “squeezed” tracks in a Shingled Magnetic Recording (SMR)-System.
US patent application 20110075292 by Richard New, et al. (Mar. 31, 2011) describes SMR drives in which band establishes a respective segment in a log-structured file system. Large error correction (ECC) block sizes within each segment (band) are implemented by storing the intermediate ECC parity state after each partial write of an ECC block. In this case, the ECC block size spans multiple physical sectors, and because of the larger ECC block size the error correction code is more efficient and able to correct larger defect errors on the disk. The ECC code may be implemented in a number of different ways which are known to those skilled in the art of designing ECC codes.
U.S. Pat. No. 7,490,212 to Kasiraj, et al. (Feb. 10, 2009) describes ECC for an SMR drive that is useful for recording and playback of video data in transaction data blocks larger than the conventional 512 byte block size but smaller than the band size. Large physical sectors can be used to improve format efficiency, and large ECC codeword sizes (larger than the transaction block size) can be used to improve reliability without imposing a read-modify-write performance on the system. To do this, the disk drive saves the cumulative ECC parity state between successive partial writes of each transaction block so that the parity computed in a first write operation is used to generate the parity for a subsequent write operation. For example, a transaction block size might be one megabyte, and the ECC might span the entire band. Each time a transaction block is written, gradually filling up the band, the cumulative parity state for the ECC is maintained, so that at the end of the last transaction block in that band, the ECC parity can be written out. This provides a very long ECC block size and therefore a very efficient ECC code which is resilient to defects and errors. The ECC code could be very simple, such as a single parity sector computed by XORing all of the data in the physical sectors in the band. This provides protection against a single sector failure within the band. However, using XORing the error correction block is a parity sector that can only correct one data block and is not scalable.
Published patent application 20110096828 (Apr. 28, 2011) by Ying Chen, et al. describes a system with encoding and decoding blocks with multiple independent scalability layers. The Forward Error Correction (FEC) is assumed to be applied to a “block” or “fragment” of data at a time, i.e., a “block” is a “source block” for FEC encoding and decoding purposes. A client device can use the segment indexing described herein to help to determine the source block structure of a segment. The FEC codes considered for use with block-request streaming are typically systematic FEC codes, i.e., the source symbols of the source block may be included as part of the encoding of the source block and thus the source symbols are transmitted. A systematic FEC encoder generates, from a source block of source symbols, some number of repair symbols and the combination of at least some of the source and repair symbols are the encoded symbols that are sent over the channel representing the source block. Some FEC codes may be useful for efficiently generating as many repair symbols as needed, such as “information additive codes” or “fountain codes” and examples of these codes include “chain reaction codes” and “multi-stage chain reaction codes”. Other FEC codes such, as Reed-Solomon codes may practically only generate a limited number of repair symbols for each source block.
Hard disk drive (HDD) archival applications such as so called “cold-storage” refer to data that is stored for various reasons but is rarely ever read again. For these applications the HDD design tradeoffs between density of storage, access speed, etc. are different than for HDDs used for data that is frequently read. Shingled Magnetic Recording (SMR) designs are particularly suitable and cost effective for cold storage. HDD archival applications such as “Cold-Storage” require increased capacities, obtained by TPI-Increase, as well as Data Integrity that guarantees data retrieval. These are conflicting requirements, as TPI increases by squeezing the width of the tracks, invariably results in unreadable “squeezed sectors”.
Embodiments of the invention described herein allow the recovery of sectors in a squeezed group of tracks using a two-level ECC scheme that includes both a single track level ECC scheme and a track band ECC scheme that functions across the set of tracks in the band. The track band ECC scheme uses additional parity information calculated using input data from multiple tracks to allow correction across tracks.
In embodiments of the invention tracks are organized into groups or bands of tracks (which will be called ECC track bands) that allow squeezed-sector corrections across tracks. In addition to the first level ECC capability for error corrections in a single track, embodiments of the invention use an ECC track band with reserved space for redundant parity sectors to dynamically correct for errors in a written track that exceed the first level ECC for the track. In some embodiments the additional parity information is written within the ECC track band, e.g. in the last track of the band. In alternative embodiments the track band parity sectors can be written in an exception track, which is not adjacent to the other tracks in the band, that is dedicated to track band parity sectors. In Shingled Magnetic Recording (SMR) disk drives, sequential logical blocks of user data are generally written in sequential physical tracks in shingled regions, so an ECC parity block that covers multiple sequential tracks according to the invention is practical without incurring a large performance penalty.
Embodiments of the invention are particularly useful in cold-storage applications by a) helping to achieve specified hard-error rate data recoverability in cold-storage devices, and b) increasing the sector erasure correction capability in the presence of “aging” and adjacent track interference (ATI) and far track interference (FTI) which can cause track squeeze propagation. In an exemplary embodiment of the invention data capacity can be increased by 25% increasing track squeeze with the extra ECC protection blocks taking up only an additional 1% of capacity, for a net 24% data increase.
Although the second level track band ECC according to the invention can be implemented using different mathematical algorithms than are used for first level single track ECC, embodiments will be described in which complementary algorithms are used for each level. An algebraic solution disclosed for particular embodiments of the invention integrates the sector-data in an ECC track band by using a Vandermonde Matrix discrete Fourier transform (DFT) in tandem with a Cauchy-Matrix Parity Sector Encoder to generate Track Band Parity Sectors for a track band. Both matrices are structured matrices, such that encoder/syndrome-generator and decoder are implemented using iteratively calculated programmable-multipliers and SRAM-storage accumulators.
Statistical test data on squeeze-errors suggests that within a selected band of adjacent tracks the number of “bursty tracks” in which the number of squeezed sectors exceeds an average number, is relatively small. This empirical evidence suggests that a Squeezed Sector Erasure Correction Scheme, that calculates Track Band Parity Sectors within a selected Band of Tracks to correct a large number of “Squeezed Sectors” read error in a limited number of “Bursty-Tracks” can solve the problem of both guaranteeing required data retrieval reliability, as well as increasing capacity by allowing narrower tracks that result in some squeezed data errors. The empirical data suggests that embodiments of such a scheme according to the invention will permit 20% TPI capacity gain at the expense of less than 2% additional parity sector overhead, which includes both track-parity sectors as well as track-band parity sectors.
Embodiments of the invention add Track Band Parity Sectors that can be applied to any “Bursty Track” in which the number of unreadable Squeezed Sectors exceeds the level-1 single Track-ECC correction capability. This approach is better than providing all individual tracks with a maximum number of Parity Sectors, capable of restoring all the Bursty-Track data, which would cause the loss of the TPI-Squeeze capacity gain in increased overhead.
The algebraic solution disclosed herein for embodiments of the invention integrates the sector data in a track band by using a Vandermonde Matrix DFT (discrete Fourier transform) in tandem with a Cauchy-Matrix Parity Sector Encoder to generate “Track Band Parity Sectors”. Both matrices are structured matrices, such that the encoder/syndrome-generator and decoder are implemented using iteratively calculated Programmable-Multipliers and SRAM-Storage Accumulators, that are used in SMR hard disk controller (HDC) implementation. Note that standard Reed-Solomon (RS) code shift-register implementation is unacceptable for this application.
The implementation of one embodiment of the invention uses programmable Cauchy Matrix generators and SRAM parity sector data storage implemented in hardware in the hard disk controller (HDC). In the first level track ECC, R1 parity sectors per track are implemented to provide for restoration of R1 squeezed sectors in each track in an n track band with N sectors per track. In the second level ECC, B×R2 parity sectors, which are flexibly available to be used in any bursty track within the track band, provide for restoration (R1+R2) squeezed sectors in B bursty tracks within the n track band. As an example, with n=64, N=348, B=7, R1=6, R2=6, with a standard 20% squeeze test data suggests that 2% overhead for the two level scheme provides guaranteed data integrity for a standard Cold Storage application.
The implementation of an embodiment of the invention will now be described. The track-level R1 parity N sector programmable multiplier operates as follows:
Pj,l(k)=Σi=1Ngi,j1mi,lk,G=[gi,l1]
The operation of the 4K sector Cauchy-Matrix encoder embodiment over Galois field GF(212) is described as follows:
GF*(212)={zk},kε[1,212−1],z|z12+z6+z4+z+(1::GF(2))
An n-track band parity sector generator embodiment is described as follows:
The B×R2-Track Band Parity Sector Generator is further described as follows:
The format for writing an n-track band according to an embodiment of the invention is described as follows:
N-sector Tk=[M1(k), . . . ,MN(k)],Index-kTrack,
where Tk is the N-Sector k-th track data.
The squeezed-sector modified parity sector encoder for tracks and track bands is further described as follows. The modified parity sector encoder is used in the decoding process. When the sectors on tracks are read back, some of those sectors can be unreadable because track squeeze has in effect erased the magnetic information needed to directly read the data. The MEDC erasure pointers detect squeezed sectors in each track as previously described. The process of recovering the data using the redundant parity includes re-encoding the sectors of data that can be read and skipping sectors that have been erased. The result of this re-encoding process will be called “Modified Parity Sectors” that contain only the contribution of the readable (non-squeezed) sectors.
Once this calculation is completed, the “Modified Parity Sectors” are XOR'ed with the original “Written Parity Sectors” to obtain SYNDROMES. These now contain the contribution of only those sectors that were unreadable, and are processed by the Decoder to regenerate the erased data.
{tilde over (P)}j,l(k)=Σ′igi,j(1){tilde over (m)}i,l(k),{tilde over (P)}j(k)=[{tilde over (P)}j,l(k)]l=1K
Track-Parity syndrome sectors are generated by XOR-ing the modified read-parity sectors with the written-parity sectors:
Sj(k)={tilde over (P)}j(k)⊕Pj(k),jε[1, . . . ,R1]
The track-parity syndrome sectors are the squeezed sectors encoded by the Cauchy submatrix, defined by the squeezed sector pointers in each track, which are recoverable by iterative Cauchy submatrix Inversion.
A track-level syndrome-sector decoder is described in the related application bearing Ser. No. 13/645,309. Restoration of index-k tracks with E1(k)≦R1 squeezed sectors indexed by MEDC-erasure pointers
TE,k=[i1(k), . . . ,iE
Syndrome-sector multiplication by an E1,k×E1,k Cauchy submatrix, iteratively calculated, inverse restores the E1,k squeezed sectors:
[Sj(k)]→[gi
The result is {Mi
The track-band parity syndrome sector generation process is further as follows. The track-band modified parity sectors are updated:
where Sum Σ′k skips bursty tracks and
Track-band modified parity sectors after track-level correction update process:
The track-band parity syndrome sectors are a Vandermonde submatrix combination of the “bursty” tracks and the Cauchy submatrices defined by the squeezed sector pointers in each b-Index “bursty” track:
The track-band level syndrome-sector decoding process is further described below and illustrated in
VT
indexed by Pointers to EB bursty tracks with E2(b
so that R1≦E2(b
and TB=[b1,b2, . . . , bE
Bursty-track decoupling is performed as:
[Ŝj(b
Restore E2(b
Number | Name | Date | Kind |
---|---|---|---|
4908826 | Hertrich | Mar 1990 | A |
4949326 | Takagi et al. | Aug 1990 | A |
5241531 | Ohno et al. | Aug 1993 | A |
5247523 | Arai et al. | Sep 1993 | A |
5251219 | Babb | Oct 1993 | A |
5392299 | Rhines et al. | Feb 1995 | A |
5745453 | Ikeda | Apr 1998 | A |
5761169 | Mine et al. | Jun 1998 | A |
5974580 | Zook et al. | Oct 1999 | A |
5991911 | Zook | Nov 1999 | A |
6275965 | Cox et al. | Aug 2001 | B1 |
6311304 | Kwon | Oct 2001 | B1 |
6891690 | Asano et al. | May 2005 | B2 |
7362529 | Chiao et al. | Apr 2008 | B2 |
7490212 | Kasiraj et al. | Feb 2009 | B2 |
7570445 | Alfred et al. | Aug 2009 | B2 |
7589925 | Chiao et al. | Sep 2009 | B1 |
7639447 | Yu et al. | Dec 2009 | B1 |
7663835 | Yu et al. | Feb 2010 | B1 |
7706096 | Ito et al. | Apr 2010 | B2 |
7890796 | Pawar et al. | Feb 2011 | B2 |
7929632 | Shao | Apr 2011 | B2 |
8225185 | Tang et al. | Jul 2012 | B1 |
8375274 | Bonke | Feb 2013 | B1 |
20010012252 | Yoshimoto et al. | Aug 2001 | A1 |
20020003947 | Abe et al. | Jan 2002 | A1 |
20020024891 | Yamazaki et al. | Feb 2002 | A1 |
20020054681 | Kuribayashi et al. | May 2002 | A1 |
20050025022 | Nakagawa | Feb 2005 | A1 |
20050044469 | Nakagawa et al. | Feb 2005 | A1 |
20050071537 | New et al. | Mar 2005 | A1 |
20050204267 | Nakagawa et al. | Sep 2005 | A1 |
20050229075 | Berkmann et al. | Oct 2005 | A1 |
20070121449 | Taniguchi et al. | May 2007 | A1 |
20070198890 | Dholakia et al. | Aug 2007 | A1 |
20080155316 | Pawar et al. | Jun 2008 | A1 |
20080225659 | Kuroda et al. | Sep 2008 | A1 |
20090290463 | Kuze et al. | Nov 2009 | A1 |
20100095181 | Ma et al. | Apr 2010 | A1 |
20100097903 | Kimura et al. | Apr 2010 | A1 |
20100218037 | Swartz et al. | Aug 2010 | A1 |
20110075292 | New et al. | Mar 2011 | A1 |
20110096828 | Chen et al. | Apr 2011 | A1 |
20120303930 | Coker et al. | Nov 2012 | A1 |
20130148225 | Coker et al. | Jun 2013 | A1 |
Number | Date | Country | |
---|---|---|---|
20150128008 A1 | May 2015 | US |