US20160350185A1 - Flexible super block sizing for failed sector recovery - Google Patents
Flexible super block sizing for failed sector recovery Download PDFInfo
- Publication number
- US20160350185A1 US20160350185A1 US14/721,227 US201514721227A US2016350185A1 US 20160350185 A1 US20160350185 A1 US 20160350185A1 US 201514721227 A US201514721227 A US 201514721227A US 2016350185 A1 US2016350185 A1 US 2016350185A1
- Authority
- US
- United States
- Prior art keywords
- super
- storage device
- track
- sectors
- track zone
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/02—Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
- G11B5/09—Digital recording
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- 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
-
- 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
- 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/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B2020/1218—Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
- G11B2020/1222—ECC block, i.e. a block of error correction encoded symbols which includes all parity data needed for decoding
-
- 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/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B2020/1218—Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
- G11B2020/1224—Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc extent, i.e. a set of sectors which numbers form a continuous ascending sequence
-
- 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/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B2020/1218—Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
- G11B2020/1232—Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc sector, i.e. the minimal addressable physical data unit
-
- 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/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B2020/1291—Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting serves a specific purpose
- G11B2020/1298—Enhancement of the signal quality
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/012—Recording on, or reproducing or erasing from, magnetic disks
Definitions
- the disclosed technology provides for a method and system comprising determining size of a super block for a track zone in a storage medium based on at least one parameter of the track zone, wherein the super block includes a super parity for recovery of a failed sector within the super block.
- FIG. 1 illustrates a schematic diagram of an example data storage system utilizing the flexible super block sizing scheme.
- FIG. 2 illustrates schematic diagrams of example track zones with super blocks.
- FIG. 3 illustrates a table showing different examples of the flexible super block sizing scheme.
- FIG. 4 illustrates a schematic diagram of an example storage medium utilizing a selection scheme for determining where to store data.
- Errors may be induced in data stored on certain types of data storage devices, such as hard disc drives. For example, physical impact or interaction with electrical or magnetic fields may induce such errors.
- a storage device may store error detection data (EDI)), such as parity bits.
- EDI error detection data
- a portion of data may be stored at a hard disc and EDD related to that portion of the data may be stored on the hard disc adjacent to the portion of data.
- ECD error correction data
- the ECD may be used to assist with reconstructing data in which errors have been induced. For example, an error correction algorithm may use the ECD to reconstruct data without such error.
- a storage device may logically divide the storage space into a plurality of sectors, each sector comprising a predetermined number of bytes of data.
- the data is stored on a plurality of concentric tracks.
- the storage device may also logically divide the entire storage space on the storage device into a plurality of track zones, each track zone defied by contiguous tracks within a radial zone.
- a plurality of contiguous sectors within a track zone may be logically grouped together to form a block, referred to herein as a “super block.”
- the data within such super blocks are stored with a super parity for error correction to the data within the super block. Specifically, the super parity is calculated based on the data stored within the super block and using a parity calculation algorithm.
- the disclosed technology provides for a method of determining the size of a super block (e.g., a plurality of contiguous sectors) for a track zone in a storage medium based on at least one parameter of the track zone.
- the super block includes at least one super parity for recovery of a failed sector within the super block.
- the parameters used to determine the size of the super block can include, but are not limited to, bit error rate, the sectors per track zone, the types of data, etc.
- the size of a super block for a particular zone may be small if the data to be stored in that particular zone is requires high fidelity (such as system data, cache data, etc.).
- the size of super block in that data sector may be small.
- determining the size of the super block in this manner allows removing cross-track issues where a super block is located over multiple tracks.
- the size of the super block is also determined in such a manner so that the number of read sectors required to use super parity is reduced. The reduction in the number sectors required for use of super parity allows using the super parity without a decrease in performance and to have a flexible scheme by dynamically prioritizing capacity or reliability during processing.
- a parity sector ratio of each track zone by error rate can be controlled (i.e., how many super parity sectors used).
- parity sector ratio will be 1%, or if there are two parity sectors, the parity sector ratio will be 2%.
- the number of parity sectors can be controlled.
- FIG. 1 illustrates a schematic diagram 100 of an example data storage system utilizing the flexible super block sizing scheme disclosed herein.
- the data storage system includes a host computer 102 that sends one or more access commands (e.g., read or write commands) to a storage device 106 .
- the storage device 106 is a disk drive assembly; however, in other implementations, the storage device 106 may be any device having any tangible computer-readable storage media. Such tangible computer-readable media may include without limitation magnetic storage disks, solid state drives, flash memory, optical storage disks, random access memories (RAMs), read only memories (ROMs) and the like.
- the storage device 106 includes a disk 104 that may store data on one or both of its planar surfaces (only one planar surface is shown). Further, each planar surface capable of storing data includes a series of thin concentric tracks (e.g., a data track 122 ).
- a head assembly (e.g., a head 120 ) is positioned adjacent to each planar surface capable of storing and retrieving data. Each head assembly reads and writes data to and from the corresponding planar surface.
- the head 120 is attached to a distal end of an actuator arm 112 positioned over the disk 104 .
- a rotary voice coil motor that rotates about an actuator axis of rotation 114 is used to position the head 120 on a data track (e.g., the data track 122 ) and a spindle motor that rotates about disk axis of rotation 122 is used to rotate the disk 104 .
- a flex cable 130 provides the requisite electrical connection paths for the head 120 while allowing pivotal movement of the actuator arm 112 during operation.
- Servo signals are detected and demodulated by one or more demodulator circuits (not shown) and processed by a digital signal processor (not shown) to control the position of the head 120 .
- demodulator circuits not shown
- digital signal processor not shown
- the described technology may be used with a variety of storage formats, including continuous magnetic media, discrete track media, shingled media, etc.
- the storage device 106 includes a microcontroller 126 that includes a plurality of encoders configured to encode data from the host computer 102 before the data is written to the disk 104 .
- the encoders may be hardware, software, and/or firmware executable by an integrated processor of the storage device 106 or a processor of a host computer 102 .
- the host computer 102 sends data in a form of a binary data stream (i.e., a series of is and Os) to the storage device 106 .
- the microcontroller 126 receives the binary data stream and selects one or more encoders to encode the data before writing it to the disk 104 .
- the encoders add additional bits (e.g., error-correcting bits) and/or convert the data stream into a form suitable for recording.
- the additional bits may allow the storage device 106 to detect and correct a limited number of errors that occur in the read data. Examples of such encoders may be an error corrector code (ECC) coder to generate error correction data (ECD).
- ECC error corrector code
- Such ECC coder may be a sector-based ECC coder, a track-based ECC coder, and more generally, a zone-based ECC coder (e.g., where a zone includes multiple data tracks).
- a sector-based ECC coder adds coding redundancies to a data stream to enable error correction within a sector of the storage medium on the disc 104 .
- a track-based ECC coder adds coding redundancies to a data stream to enable error correction at a track level
- a zone-based ECC coder adds coding redundancies to a data stream to enable error correction at a zone level.
- ECC coding redundancies stored in the data region are used to ensure that the data is read back correctly.
- a sector-based ECC code may be used to correct data of an individual data sector by analyzing data read from the sector.
- a track-based ECC code may be used to correct data of a data track by analyzing data read from the entire data track.
- a shingled magnetic recording device that reads and writes data in bands (e.g., groupings of multiple data tracks) may utilize a band-based ECC code to correct data within a band by analyzing data of the band in view of a band-based ECC code.
- a modulation encoder is another encoder type that analyzes the pattern of 1s and 0s within a binary data stream and alters the pattern to reduce the number of write errors that may occur as a result of too many consecutive transitions (e.g., from 0 to 1 or vice versa).
- Modulation codes add constraints to a binary data stream to suppress or eliminate certain patterns that are more error prone than others. For example, the pattern 1010101 may be more prone to error than 1111000. If the modulation encoder eliminates or suppresses high frequency patterns such as 1010101 or 0101010, fewer errors are included when the stored data is decoded. To impose constraints, the modulation encoder adds one or more redundant bits to the end of the data stream.
- a modulation decoder converts the altered binary data stream back to the original binary data stream when the data is read back from the storage medium 104 during a read operation.
- a super parity is an error correction operation used to recover data during disk failures.
- Super parity is very powerful reliability feature designed to improve unrecoverable read error rate.
- Super parity can regenerate one sector (e.g., bit level regeneration) from a parity sector in a super block.
- Valid parity sectors can be used to rebuild an otherwise unrecoverable sector. This technique can fix a completely corrupted sector.
- a track-based super parity implementation an entire track read is required during recovery of failed sectors.
- the size of a super block depends on a zone. Each zone has a different super block size. If a target track has many failed sectors (e.g., more than 2 failed sectors) during a whole track read, super parity cannot operate.
- An alternative implementation involving ISO-based super parity requires specified numbers of sectors (840 KB or 210 sectors per super block) for media cache.
- ISO-based super parity has shortcomings as well. ISO-based super parity decreases performance because ISO-based super parity has a cross-track issue (e.g., 1 super block throughout 2 tracks).
- the microcontroller 126 applies a flexible super block scheme to track zones (e.g., Zone 1 , Zone, 2 , Zone 3 , and Zone 4 ) of the disk 104 .
- the microcontroller 126 determines the size of a super block for a track zone in a storage medium based on at least one parameter of the track zone.
- a super block includes a super parity for recovery of a failed sector within the super block.
- the microcontroller 126 can determine the size of a superblock 132 (as shown in View A) to include one parity sector for N data sectors, including one defective sector to be regenerated. Determination of the superblock sizing is described in detail in FIG. 2 .
- FIG. 2 illustrates a schematic diagram of super blocks in example track zones 200 .
- the 12 sectors in each track include 10 data sectors.
- the disclosed technology is utilized for the N+1 track.
- the flexible super block sizing scheme divides the track sectors into two superblocks 204 and 206 .
- Each of the super blocks 204 and 206 have one parity sector after five data sectors.
- super parity can be utilized because there is only one failed sector in super block 204 (i.e., not more than two failed sectors in one super block).
- the flexible super block sizing enables recovery of one failed sector in the N+1 track with the use of two super blocks as opposed to recovery of no failed sectors in the N track.
- By increasing the availability of parity sectors for a track and dividing the super block size into smaller super blocks within a track zone there may be a loss in areal density capability.
- implementation of the flexible super block sizing technology results in better reliability performance.
- FIG. 3 illustrates a table 300 showing different example super block sizing schemes 302 - 306 where the flexible super block sizing technology is utilized based on bit error rate and sectors per track.
- the super block sizing schemes in the table all have a total of 384 sectors to be divided into a number of super blocks.
- a BER ratio is the number of bit errors divided by the total number of transferred bits during a studied time interval.
- a predetermined standard may require four parity sectors in a zone with a BER of less than ⁇ 2.0.
- a zone with a BER greater than or equal to ⁇ 2.0 but less than or equal to ⁇ 2.3 two parity sectors may be required.
- a zone with a BER greater than ⁇ 2.3 one parity sector may be required.
- the super block sizing scheme 304 there may be more than two failed sectors per the 384 sectors. Specifically, it may be determined that there are four defective sectors and 380 data sectors. In this implementation, it can be determined that four parity sectors are required. This can be accomplished by dividing the total sector into 2 super blocks, with two parity sectors in each of the two super blocks. This would result in each of the two super blocks being 190 sectors and two parity sectors, thus resulting in a total of four parity sectors per the 384 sectors.
- the super block sizing scheme 306 there may also be more than two failed sectors and a bit error rate higher than in example 304 . Specifically, it may be determined that there may be six defective sectors and 378 data sectors in the total sector. In this implementation, it can be determined that the sector should be divided into three super blocks, with two parity sectors in each of the three super blocks. This would result in each of the three super blocks being 126 sectors and two parity sectors, thus resulting in a total of six parity sectors.
- the super block sizing schemes 302 , 304 , and 306 are shown schematically under the table in FIG. 3 .
- the described flexible super block sizing schemes can be implemented dynamically in process.
- the super block can be divided into smaller super blocks (e.g., divided into two or more super blocks) and the number of parity sectors can be increased based on the bit error rate and the sectors per track for a designated track zone.
- FIG. 4 illustrates example operations 400 for determining the size of a super block for a track zone in a storage medium.
- the bit error rate of a track zone is determined.
- Operation 404 determines how many sectors are in the track zone.
- Operation 406 determines the size of a super block for the track zone based on the bit error rate and the number of sectors in the track zone. If there are more than two failed sectors in a track and many data sectors, then more than one super block is required. Operation 408 determines the number of parity sectors for the super block.
- Operation 410 determines whether more than one super block should be determined based on the bit error rate, the number of sectors in the track zone, and the sizing of the first super block. If more than one super block is determined in operation 410 , then an operation 412 determines the number of parity sectors for other super blocks. Operations 402 - 412 can occur dynamically in-process sequentially or simultaneously. An operation 414 recovers data from the failed sectors in the one or more super blocks.
- the implementations described herein may be implemented as logical steps in one or more computer systems.
- the logical operations of the various implementations described herein are implemented (1) as a sequence of processor-implemented steps executing in one or more computer systems and (2) as interconnected machine or circuit modules within one or more computer systems.
- the implementation is a matter of choice, dependent on the performance requirements of the computer system. Accordingly, the logical operations making up the implementations of the implementations described herein are referred to variously as operations, steps, objects, or modules.
- logical operations may be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Description
- The disclosed technology provides for a method and system comprising determining size of a super block for a track zone in a storage medium based on at least one parameter of the track zone, wherein the super block includes a super parity for recovery of a failed sector within the super block.
- This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Other features, details, utilities, and advantages of the claimed subject matter will be apparent from the following more particular written Detailed Description of various implementations and implementations as further illustrated in the accompanying drawings and defined in the appended claims.
- These and various other features and advantages will be apparent from a reading of the following detailed description.
- A further understanding of the various implementations described herein may be realized by reference to the figures, which are described in the remaining portion of the specification. In the figures, like reference numerals are used throughout several figures to refer to similar components.
-
FIG. 1 illustrates a schematic diagram of an example data storage system utilizing the flexible super block sizing scheme. -
FIG. 2 illustrates schematic diagrams of example track zones with super blocks. -
FIG. 3 illustrates a table showing different examples of the flexible super block sizing scheme. -
FIG. 4 illustrates a schematic diagram of an example storage medium utilizing a selection scheme for determining where to store data. - Errors may be induced in data stored on certain types of data storage devices, such as hard disc drives. For example, physical impact or interaction with electrical or magnetic fields may induce such errors. To help improve data reliability, a storage device may store error detection data (EDI)), such as parity bits. In some configurations, a portion of data may be stored at a hard disc and EDD related to that portion of the data may be stored on the hard disc adjacent to the portion of data, To provide additional data reliability certain storage devices may also store error correction data (ECD), such as super parity data. The ECD may be used to assist with reconstructing data in which errors have been induced. For example, an error correction algorithm may use the ECD to reconstruct data without such error.
- A storage device may logically divide the storage space into a plurality of sectors, each sector comprising a predetermined number of bytes of data. For storage media such as a disc drive, the data is stored on a plurality of concentric tracks. The storage device may also logically divide the entire storage space on the storage device into a plurality of track zones, each track zone defied by contiguous tracks within a radial zone. Furthermore, a plurality of contiguous sectors within a track zone may be logically grouped together to form a block, referred to herein as a “super block.” The data within such super blocks are stored with a super parity for error correction to the data within the super block. Specifically, the super parity is calculated based on the data stored within the super block and using a parity calculation algorithm.
- The disclosed technology provides for a method of determining the size of a super block (e.g., a plurality of contiguous sectors) for a track zone in a storage medium based on at least one parameter of the track zone. The super block includes at least one super parity for recovery of a failed sector within the super block. The parameters used to determine the size of the super block can include, but are not limited to, bit error rate, the sectors per track zone, the types of data, etc. For example, the size of a super block for a particular zone may be small if the data to be stored in that particular zone is requires high fidelity (such as system data, cache data, etc.). On the other hand, if the data to be stored in another zone does not require high fidelity (i.e., video data), the size of super block in that data sector may be small. As disclosed below, determining the size of the super block in this manner allows removing cross-track issues where a super block is located over multiple tracks. Furthermore, the size of the super block is also determined in such a manner so that the number of read sectors required to use super parity is reduced. The reduction in the number sectors required for use of super parity allows using the super parity without a decrease in performance and to have a flexible scheme by dynamically prioritizing capacity or reliability during processing. Additionally, a parity sector ratio of each track zone by error rate can be controlled (i.e., how many super parity sectors used). Up to four parity sectors per super block can be used, for example, if there are 100 sectors per track, one parity sector, then the parity sector ratio will be 1%, or if there are two parity sectors, the parity sector ratio will be 2%. The number of parity sectors can be controlled.
-
FIG. 1 illustrates a schematic diagram 100 of an example data storage system utilizing the flexible super block sizing scheme disclosed herein. The data storage system includes ahost computer 102 that sends one or more access commands (e.g., read or write commands) to astorage device 106. Thestorage device 106 is a disk drive assembly; however, in other implementations, thestorage device 106 may be any device having any tangible computer-readable storage media. Such tangible computer-readable media may include without limitation magnetic storage disks, solid state drives, flash memory, optical storage disks, random access memories (RAMs), read only memories (ROMs) and the like. Thestorage device 106 includes adisk 104 that may store data on one or both of its planar surfaces (only one planar surface is shown). Further, each planar surface capable of storing data includes a series of thin concentric tracks (e.g., a data track 122). - A head assembly (e.g., a head 120) is positioned adjacent to each planar surface capable of storing and retrieving data. Each head assembly reads and writes data to and from the corresponding planar surface. The
head 120 is attached to a distal end of anactuator arm 112 positioned over thedisk 104. A rotary voice coil motor that rotates about an actuator axis ofrotation 114 is used to position thehead 120 on a data track (e.g., the data track 122) and a spindle motor that rotates about disk axis ofrotation 122 is used to rotate thedisk 104. Aflex cable 130 provides the requisite electrical connection paths for thehead 120 while allowing pivotal movement of theactuator arm 112 during operation. Servo signals are detected and demodulated by one or more demodulator circuits (not shown) and processed by a digital signal processor (not shown) to control the position of thehead 120. It should be understood that the described technology may be used with a variety of storage formats, including continuous magnetic media, discrete track media, shingled media, etc. - The
storage device 106 includes amicrocontroller 126 that includes a plurality of encoders configured to encode data from thehost computer 102 before the data is written to thedisk 104. The encoders may be hardware, software, and/or firmware executable by an integrated processor of thestorage device 106 or a processor of ahost computer 102. - To write data to the
disk 104, thehost computer 102 sends data in a form of a binary data stream (i.e., a series of is and Os) to thestorage device 106. Themicrocontroller 126 receives the binary data stream and selects one or more encoders to encode the data before writing it to thedisk 104. The encoders add additional bits (e.g., error-correcting bits) and/or convert the data stream into a form suitable for recording. When data is read back from thedisk 104, the additional bits may allow thestorage device 106 to detect and correct a limited number of errors that occur in the read data. Examples of such encoders may be an error corrector code (ECC) coder to generate error correction data (ECD). - Such ECC coder may be a sector-based ECC coder, a track-based ECC coder, and more generally, a zone-based ECC coder (e.g., where a zone includes multiple data tracks). A sector-based ECC coder adds coding redundancies to a data stream to enable error correction within a sector of the storage medium on the
disc 104. Similarly, a track-based ECC coder adds coding redundancies to a data stream to enable error correction at a track level, whereas a zone-based ECC coder adds coding redundancies to a data stream to enable error correction at a zone level. - When data is read back from a predefined data region (such as a sector, a track, a zone, etc.), ECC coding redundancies stored in the data region are used to ensure that the data is read back correctly. For example, a sector-based ECC code may be used to correct data of an individual data sector by analyzing data read from the sector. Likewise, a track-based ECC code may be used to correct data of a data track by analyzing data read from the entire data track. A shingled magnetic recording device that reads and writes data in bands (e.g., groupings of multiple data tracks) may utilize a band-based ECC code to correct data within a band by analyzing data of the band in view of a band-based ECC code.
- A modulation encoder is another encoder type that analyzes the pattern of 1s and 0s within a binary data stream and alters the pattern to reduce the number of write errors that may occur as a result of too many consecutive transitions (e.g., from 0 to 1 or vice versa). Modulation codes add constraints to a binary data stream to suppress or eliminate certain patterns that are more error prone than others. For example, the pattern 1010101 may be more prone to error than 1111000. If the modulation encoder eliminates or suppresses high frequency patterns such as 1010101 or 0101010, fewer errors are included when the stored data is decoded. To impose constraints, the modulation encoder adds one or more redundant bits to the end of the data stream. A modulation decoder converts the altered binary data stream back to the original binary data stream when the data is read back from the
storage medium 104 during a read operation. - A super parity is an error correction operation used to recover data during disk failures. Super parity is very powerful reliability feature designed to improve unrecoverable read error rate. Super parity can regenerate one sector (e.g., bit level regeneration) from a parity sector in a super block. Valid parity sectors can be used to rebuild an otherwise unrecoverable sector. This technique can fix a completely corrupted sector.
- In a track-based super parity implementation, an entire track read is required during recovery of failed sectors. The size of a super block depends on a zone. Each zone has a different super block size. If a target track has many failed sectors (e.g., more than 2 failed sectors) during a whole track read, super parity cannot operate. An alternative implementation involving ISO-based super parity requires specified numbers of sectors (840 KB or 210 sectors per super block) for media cache. However, ISO-based super parity has shortcomings as well. ISO-based super parity decreases performance because ISO-based super parity has a cross-track issue (e.g., 1 super block throughout 2 tracks).
- To allow for error correction and error prevention that is optimized in different areas of the
disk 104, themicrocontroller 126 applies a flexible super block scheme to track zones (e.g.,Zone 1, Zone, 2,Zone 3, and Zone 4) of thedisk 104. Specifically, themicrocontroller 126 determines the size of a super block for a track zone in a storage medium based on at least one parameter of the track zone. Here a super block includes a super parity for recovery of a failed sector within the super block. - For example, the
microcontroller 126 can determine the size of a superblock 132 (as shown in View A) to include one parity sector for N data sectors, including one defective sector to be regenerated. Determination of the superblock sizing is described in detail inFIG. 2 . -
FIG. 2 illustrates a schematic diagram of super blocks inexample track zones 200. The super blocks, on track N and track N+1, each have 12 sectors. There are two parity sectors in each track N and track N+1. As illustrated, for track N, both parity sectors are at the end, whereas for track N+1, one parity sector is at the end and the other is in the middle and the location of the parity sector is disclosed below. The 12 sectors in each track include 10 data sectors. There is onesuperblock 202 in the N track. Three of the data sectors on the N track are failed sectors, designated by “X.” In track N, track-based super parity cannot be utilized because there are more than 2 failed sectors. Thus, no sectors can be recovered. - The disclosed technology is utilized for the N+1 track. The flexible super block sizing scheme divides the track sectors into two
204 and 206. Each of thesuperblocks 204 and 206 have one parity sector after five data sectors. By providing flexibility in super block sizing, super parity can be utilized because there is only one failed sector in super block 204 (i.e., not more than two failed sectors in one super block). Thus, the flexible super block sizing enables recovery of one failed sector in the N+1 track with the use of two super blocks as opposed to recovery of no failed sectors in the N track. By increasing the availability of parity sectors for a track and dividing the super block size into smaller super blocks within a track zone, there may be a loss in areal density capability. However, implementation of the flexible super block sizing technology results in better reliability performance.super blocks -
FIG. 3 illustrates a table 300 showing different example super block sizing schemes 302-306 where the flexible super block sizing technology is utilized based on bit error rate and sectors per track. The super block sizing schemes in the table all have a total of 384 sectors to be divided into a number of super blocks. - In some implementations, different BER standards can be used to determine track quality and how many parity sectors are required in a flexible super block sizing scheme. Specifically, a BER ratio is the number of bit errors divided by the total number of transferred bits during a studied time interval. For example, a predetermined standard may require four parity sectors in a zone with a BER of less than −2.0. In a zone with a BER greater than or equal to −2.0 but less than or equal to −2.3, two parity sectors may be required. In a zone with a BER greater than −2.3, one parity sector may be required.
- In the super
block sizing scheme 302 inFIG. 3 , it is determined that there are two defective sectors per the 384 sectors. This low bit error rate indicates bad track quality. Therefore, it can be determined that a given track requires more parity sectors. In one implementation, a standard may require, for example, a zone BER <2.0 may only require one parity sector. In this example, the low bit error rate requires two parity sectors for the 384 sectors. Thus, it can be determined that one super block size of 382 sectors is sufficient. - In the super
block sizing scheme 304, there may be more than two failed sectors per the 384 sectors. Specifically, it may be determined that there are four defective sectors and 380 data sectors. In this implementation, it can be determined that four parity sectors are required. This can be accomplished by dividing the total sector into 2 super blocks, with two parity sectors in each of the two super blocks. This would result in each of the two super blocks being 190 sectors and two parity sectors, thus resulting in a total of four parity sectors per the 384 sectors. - In the super
block sizing scheme 306, there may also be more than two failed sectors and a bit error rate higher than in example 304. Specifically, it may be determined that there may be six defective sectors and 378 data sectors in the total sector. In this implementation, it can be determined that the sector should be divided into three super blocks, with two parity sectors in each of the three super blocks. This would result in each of the three super blocks being 126 sectors and two parity sectors, thus resulting in a total of six parity sectors. The super 302, 304, and 306 are shown schematically under the table inblock sizing schemes FIG. 3 . - The described flexible super block sizing schemes can be implemented dynamically in process. When the bit error rate is high in a track zone (e.g., there are more than two defective sectors in a super block), the super block can be divided into smaller super blocks (e.g., divided into two or more super blocks) and the number of parity sectors can be increased based on the bit error rate and the sectors per track for a designated track zone.
-
FIG. 4 illustratesexample operations 400 for determining the size of a super block for a track zone in a storage medium. In anoperation 402, the bit error rate of a track zone is determined.Operation 404 determines how many sectors are in the track zone. -
Operation 406 determines the size of a super block for the track zone based on the bit error rate and the number of sectors in the track zone. If there are more than two failed sectors in a track and many data sectors, then more than one super block is required.Operation 408 determines the number of parity sectors for the super block. -
Operation 410 determines whether more than one super block should be determined based on the bit error rate, the number of sectors in the track zone, and the sizing of the first super block. If more than one super block is determined inoperation 410, then anoperation 412 determines the number of parity sectors for other super blocks. Operations 402-412 can occur dynamically in-process sequentially or simultaneously. Anoperation 414 recovers data from the failed sectors in the one or more super blocks. - The implementations described herein may be implemented as logical steps in one or more computer systems. The logical operations of the various implementations described herein are implemented (1) as a sequence of processor-implemented steps executing in one or more computer systems and (2) as interconnected machine or circuit modules within one or more computer systems. The implementation is a matter of choice, dependent on the performance requirements of the computer system. Accordingly, the logical operations making up the implementations of the implementations described herein are referred to variously as operations, steps, objects, or modules. Furthermore, it should be understood that logical operations may be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
- In the interest of clarity, not all of the routine functions of the implementations described herein are shown and described. It will be appreciated that in the development of any such actual implementation, numerous implementation-specific decisions are made in order to achieve the developer's specific goals, such as compliance with application—and business-related constraints, and that those specific goals will vary from one implementation to another and from one developer to another.
- The above specification, examples, and data provide a complete description of the structure and use of example implementations. Because many alternate implementations can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended. Furthermore, structural features of the different implementations may be combined in yet another implementation without departing from the recited claims.
Claims (22)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/721,227 US9489260B1 (en) | 2015-05-26 | 2015-05-26 | Flexible super block sizing for failed sector recovery |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/721,227 US9489260B1 (en) | 2015-05-26 | 2015-05-26 | Flexible super block sizing for failed sector recovery |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US9489260B1 US9489260B1 (en) | 2016-11-08 |
| US20160350185A1 true US20160350185A1 (en) | 2016-12-01 |
Family
ID=57211000
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/721,227 Active US9489260B1 (en) | 2015-05-26 | 2015-05-26 | Flexible super block sizing for failed sector recovery |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US9489260B1 (en) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170031751A1 (en) * | 2015-07-31 | 2017-02-02 | SK Hynix Inc. | Data storage device and operating method thereof |
| US20170206927A1 (en) * | 2014-11-24 | 2017-07-20 | Seagate Technology Llc | Interlaced magnetic recording super parity |
| CN108228090A (en) * | 2016-12-22 | 2018-06-29 | 财团法人工业技术研究院 | Hard disk array and reconstruction method thereof |
| US11726710B2 (en) | 2020-12-22 | 2023-08-15 | Seagate Technology Llc | Matrix super parity for data storage |
| JP2023140541A (en) * | 2022-03-23 | 2023-10-05 | 株式会社東芝 | magnetic disk device |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10289487B2 (en) * | 2016-04-27 | 2019-05-14 | Silicon Motion Inc. | Method for accessing flash memory module and associated flash memory controller and memory device |
| US10019314B2 (en) | 2016-04-27 | 2018-07-10 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
| CN111679787B (en) | 2016-04-27 | 2023-07-18 | 慧荣科技股份有限公司 | Flash memory device, flash memory controller, and flash memory storage management method |
| US10896091B2 (en) | 2019-05-30 | 2021-01-19 | Seagate Technology Llc | Managing superparity storage location usage and coverage |
| JP2022143899A (en) * | 2021-03-18 | 2022-10-03 | 株式会社東芝 | magnetic disk device |
| US11929093B2 (en) | 2022-03-22 | 2024-03-12 | Western Digital Technologies, Inc. | Overlapping processing of data tracks |
| US11764813B1 (en) * | 2022-06-07 | 2023-09-19 | Western Digital Technologies, Inc. | Extendable parity code matrix construction and utilization in a data storage device |
| US12099409B2 (en) | 2022-06-07 | 2024-09-24 | Western Digital Technologies, Inc. | Adjustable code rates and dynamic ECC in a data storage device |
| US11853203B1 (en) | 2022-06-23 | 2023-12-26 | Western Digital Technologies, Inc. | Systems and methods with variable size super blocks in zoned namespace devices |
| US11948602B2 (en) | 2022-06-29 | 2024-04-02 | Western Digital Technologies, Inc. | Offset spiral data track format for data storage devices |
| TWI837829B (en) * | 2022-09-19 | 2024-04-01 | 慧榮科技股份有限公司 | Method for accessing flash memory module and associated flash memory controller and memory device |
| US12028091B2 (en) | 2022-09-26 | 2024-07-02 | Western Digital Technologies, Inc. | Adjustable code rates and dynamic ECC in a data storage device with write verification |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6446156B1 (en) | 1999-04-21 | 2002-09-03 | Seagate Technology Llc | Proposal of capacity tuning in the production process of storage disc drives |
| US8756399B2 (en) | 2006-01-25 | 2014-06-17 | Seagate Technology Llc | Mutable association of a set of logical block addresses to a band of physical storage blocks |
| US8122322B2 (en) | 2007-07-31 | 2012-02-21 | Seagate Technology Llc | System and method of storing reliability data |
| US7827378B2 (en) | 2007-08-21 | 2010-11-02 | Seagate Technology Llc | Defect management using mutable logical to physical association |
| US20140055881A1 (en) | 2012-08-22 | 2014-02-27 | Lsi Corporation | Recording regions in a shingled magnetic hard disk drive system |
-
2015
- 2015-05-26 US US14/721,227 patent/US9489260B1/en active Active
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20170206927A1 (en) * | 2014-11-24 | 2017-07-20 | Seagate Technology Llc | Interlaced magnetic recording super parity |
| US10049698B2 (en) * | 2014-11-24 | 2018-08-14 | Seagate Technology Llc | Interlaced magnetic recording super parity |
| US20170031751A1 (en) * | 2015-07-31 | 2017-02-02 | SK Hynix Inc. | Data storage device and operating method thereof |
| US10127997B2 (en) * | 2015-07-31 | 2018-11-13 | SK Hynix Inc. | Data storage device comprising super block parity data based on page type of word line or plane |
| CN108228090A (en) * | 2016-12-22 | 2018-06-29 | 财团法人工业技术研究院 | Hard disk array and reconstruction method thereof |
| US10831601B2 (en) | 2016-12-22 | 2020-11-10 | Industrial Technology Research Institute | Reconstruction hard disk array and reconstruction method for to-be-reconstructed hard disks therein including comparing backup data with an access timestamp of first, second and third hard disks |
| US11726710B2 (en) | 2020-12-22 | 2023-08-15 | Seagate Technology Llc | Matrix super parity for data storage |
| JP2023140541A (en) * | 2022-03-23 | 2023-10-05 | 株式会社東芝 | magnetic disk device |
| JP7693602B2 (en) | 2022-03-23 | 2025-06-17 | 株式会社東芝 | Magnetic disk device |
Also Published As
| Publication number | Publication date |
|---|---|
| US9489260B1 (en) | 2016-11-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9489260B1 (en) | Flexible super block sizing for failed sector recovery | |
| US9059737B2 (en) | Disk drive with distributed codeword blocks | |
| JP3663377B2 (en) | Data storage device, read data processing device, and read data processing method | |
| US9312886B2 (en) | Storage device with multiple coding redundancies | |
| US9396062B1 (en) | Group based codes for multi-dimensional recording (MDR) | |
| US6640326B1 (en) | Data set recovery by codeword overlay | |
| US7644337B2 (en) | Error correction device, encoder, decoder, method, and information storage device | |
| US9015549B2 (en) | Iterating inner and outer codes for data recovery | |
| US10437674B1 (en) | Variable parity sectors | |
| US9837115B1 (en) | Unequal error correction code in multi-track recording | |
| US10606699B2 (en) | Data storage device employing multi-level parity sectors for data recovery procedure | |
| US10177791B1 (en) | Syndrome update and maintenance | |
| US20050060630A1 (en) | Direct partial update of CRC/ECC check bytes | |
| KR20130035917A (en) | Hardware-based methods and apparatus for inter-track interference mitigation in magnetic recording systems | |
| US8671326B1 (en) | Concatenated codes for recovering stored data | |
| US5265104A (en) | Data storage system including redundant storage devices | |
| US10530390B2 (en) | Data storage device employing memory efficient processing of un-converged codewords | |
| US11042439B1 (en) | Efficient read and recovery with outer code | |
| US11055171B2 (en) | Data storage device employing multi-level parity sectors for data recovery procedure | |
| US10574270B1 (en) | Sector management in drives having multiple modulation coding | |
| US10382065B1 (en) | Iterative outer code recovery using data from multiple reads | |
| TW201513102A (en) | Systems and methods for multi-level encoding and decoding | |
| KR20070106393A (en) | Redundancy protection for data recorded across multiple layers of recording media | |
| US8937778B1 (en) | Methods and apparatus for performing track-level based data coding | |
| US11340972B1 (en) | Error categorization based on bit information |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HONG, EUN YEONG;PARK, BUM SEOK;LEE, MOWEON;REEL/FRAME:035709/0644 Effective date: 20150521 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |