The present disclosure relates to technologies for storing data in a disk-based storage device incorporating multiple readers per recording surface to reduce recovery time from read errors using super-parity. According to some embodiments, a storage device comprises a read/write head and an associated recording surface. The read/write head has a plurality of readers configured to read a plurality of data tracks on the associated recording surface concurrently. The recording surface is segmented into a plurality of super blocks comprising a portion of each of a number of adjacent data tracks, the number of adjacent data tracks in each of the plurality of super blocks being equal to the number of the plurality of data tracks that can be read concurrently by the plurality of readers. Each super block further comprises parity information on one of the number of adjacent data tracks containing data recovery information for the super block.
According to further embodiments, a method of recovering from an unrecoverable data error in a read operation of a disk-based storage device comprises reading a super block containing a target segment of the read operation, wherein reading the super block is performed in less than one full rotation of the disk. The super block comprises a portion of each of a number of adjacent data tracks on a recording surface of a disk in the storage device. The number of adjacent data tracks in the super block is equal to a number of data tracks that may be read concurrently by a read/write head associated with the recording surface. The super block further comprises parity information on one of the number of adjacent data tracks. The data read from the super block and the parity information is then used to recover data from the target segment.
According to further embodiments, a system comprises a disk comprising a recording surface formatted with a plurality of concentric data tracks, a read/write head associated with the recording surface and comprising a plurality of reader elements and configured to read a plurality of data tracks concurrently, and a controller operably connected to the read/write head. The recording surface is segmented into super blocks comprising a portion of each of a number of data tracks, the number of data tracks in each super block being equal to the number of the plurality of data tracks that are read concurrently by the plurality of reader element. Each super block further comprises parity information on one of the number of data tracks, the parity information comprising data recovery information for the super block. The controller is configured to, upon detecting an unrecoverable data error in a read operation from the disk, read the super block containing a target segment of the read operation, the reading of the super block requiring less than one full rotation of the disk; and use the data read from the super block and the parity information to recover data from the target segment.
These and other features and aspects of the various embodiments will become apparent upon reading the following Detailed Description and reviewing the accompanying drawings.
In the following Detailed Description, references are made to the accompanying drawings that form a part hereof, and that show, by way of illustration, specific embodiments or examples. The drawings herein are not drawn to scale. Like numerals represent like elements throughout the several figures.
The following detailed description is directed to technologies for storing data in a disk-based storage device incorporating multiple readers per recording surface, such as a hard-disk drive (“HDD”) device utilizing multi-sensor magnetic recording (“MSMR”) technology, to reduce recovery time from read errors using super-parity. An HDD device may contain one or more disks having magnetic recording surfaces upon which data is stored. The recording surfaces may be formatted to include a number of concentric data tracks, the data tracks further divided into segments or “sectors” in which the user data is stored. The HDD device may further employ a number of devices in the detection/decoding process to allow for recovering data from a bad read. For example, the sectors may include error correction codes (“ECCs”), such as Reed-Solomon error correction codes or low-density parity-check codes (“LDPC”), that allow the data to be recovered from the read sector without requiring additional reads of the recording surface.
If the data cannot be recovered using such devices, an unrecoverable data error (“UDE”) occurs. When a UDE occurs, the HDD device may incorporate other means for recovering the data that require re-reading data from the target sector, the entire data track containing the target sector, and/or adjacent data tracks. One method of recovering from a UDE includes super-parity recovery. Super-parity recovery is often utilized in enterprise-level drives and involves grouping smaller segments or sectors into larger “super blocks” that also include parity information that can be utilized to recover data from the super block.
Conventionally, in an HDD incorporating super-parity recovery, the super block comprises a whole data track, with the parity information stored at the end of the track. For example,
In the conventional scheme, in order to recover from a UDE in a read of a target sector 108, the controller of the HDD device will read the entire data track 102A containing the sector, including the parity information 106A, and utilize the data read from the track and the parity information to recover the data from the target sector. In an HDD device where the disks rotate at 5400 rpm, it takes at least 11 milliseconds to read the entire length of the data track 102. This means that the time to recover a particular target sector 108 using super-parity cannot be less than 11 milliseconds.
In HDD devices incorporating MSMR, also referred to as two-dimensional magnetic recording (“TDMR”), a plurality of reader elements are associated with each recording surface. Reading data with multiple reader elements improves bit-error rates (“BER”) by allowing the detection/decoding process to account for adjacent track interference (“ATI”), and also allows simultaneous reading of multiple data tracks 102 from the recording surface. According to embodiments, depending on the number of reader elements and their configuration on the read/write head(s), the HDD device may be capable of concurrently reading data from two, three, or more data tracks 102 on the recording surface in a single pass.
According to embodiments presented herein, a novel approach for storing data in super blocks on the recording surface(s) utilizes this characteristic of MSMR technology to allow super-parity recovery from a UDE without requiring a full rotation of the disk. To accomplish this, super blocks 104 are created on the recording surface across a number of data tracks 102 based on the number of data tracks that can be read concurrently by the reader elements associated with the surface. In addition, only a portion of each data track 102 is included in each super block 104. This layout is shown in
In addition, each super block 104A-104K contains corresponding parity information 106A-106K that can be utilized to recover data from the super block. Because the super blocks comprise only a 1/K portion of the length of the data tracks 102A-102S and span the same number S of data tracks that can be read concurrently by the MSMR drive, it will be appreciated that an entire super block, such as super block 104A, including the corresponding parity information 106A, can be read without requiring an entire revolution of the disk, thus shortening the time required for super-parity recovery over the conventional layout.
In some embodiments, the all of the data tracks 102A-102S comprising each super block 104A-104K are adjacent, such as tracks N through N+S−1 shown in
Because the parity information 106 is maintained for the entire super block 104, and because a super block is distributed into a plurality of data tracks 102, it will be appreciated that all data tracks comprising a super block should be written together in a same write operation in order to maintain the validity of the parity data, according to some embodiments. Accordingly, the novel layout of super blocks 104 described herein may be particularly suited for drives incorporating shingled-magnetic recording (“SMR”). In an HDD device incorporating SMR, write operations are performed in a unit of an SMR band comprising multiple, adjacent data tracks 102. Thus, during an SMR band write, parity information 106A and 106B for super blocks 104A and 104B may be calculated during the writing of data 1-1 and data 2-1 in data track N 102A and temporarily stored. When data 1-2 and data 2-2 for data track N+1 102B is written, calculation of the parity information 106A and 106B may be completed and then written to the data track N+1 to complete the writing of the super blocks 104A and 104B to the disk, as shown in
The storage device 400 further includes at least one read/write head 410 located adjacent to the surface of each disk 402. The read/write head 410 may read information from the disk 402 by sensing a magnetic field formed on portions of the magnetic recording surface of the disk, and may write information to the disk by magnetizing a portion of the surface of the disk. The read/write head 410 may be located at the distal end of an arm 404 that is rotated by and actuator 406, such as a voice-coil motor (“VCM”), in order to position the read/write head 410 over a portion of the recording surface.
According to embodiments, the read/write head 410 includes multiple reader elements, such as reader elements 412A and 412B (referred to herein generally as reader elements 412). The reader elements 412 may comprise magneto-resistive (“MR”) readers, tunneling MR readers, or the like. In various embodiments, there may be two, three, four, or more reader elements 412 associated with the recording surface of each disk 402 distributed over one or more read/write heads 410, and the reader elements may be configured in width, angle, and position to read two or more data tracks 102 concurrently as the disk 402 is rotated beneath the read/write head(s). For example, as shown in
The storage device 400 may further comprise a controller 420 that controls the operations of the storage device. The controller 420 may include a processor 422. The processor 422 may implement a host interface 424 allowing the storage device 400 to communicate with a host device, other parts of storage device 400, or other components, such as a server computer, personal computer (“PC”), laptop, tablet, game console, set-top box or any other electronics device that can be communicatively coupled to the storage device 400 to store and retrieve data from the storage device. The processor 422 may process write operations received from the host device by formatting the associated data and transfer the formatted data via a read/write channel 426 through the read/write head 410 and to the recording surface of the disk 402. The processor 422 may further process read operations from the host device by determining the location of the desired data on the surface of the disk 402, moving the read/write head(s) 410 over the determined location, reading the data from the surface of the disk via the read/write channel 426, correcting any errors and formatting the data for transfer to the host device.
The read/write channel 426 may convert data between the digital signals processed by the processor 422 and the analog signals conducted through the read/write head 410 for reading and writing data to the surface of the disk 402. The analog signals to and from the read/write head 410 may be further processed through a pre-amplifier circuit. The read/write channel 426 may further provide servo data read from the disk 402 to the actuator 406 to position the read/write head 410. The read/write head 410 may be positioned to read or write data to a specific sector 108 on the recording surface of the disk 402 by moving the head radially across the data tracks 102 using the actuator 406 while a motor rotates the disk to bring the target sector under the reader elements 412 and/or writer element 414 or the read/write head.
The controller 420 may further include a computer-readable storage medium or “memory” 428 for storing processor-executable instructions, data structures and other information. The memory 428 may comprise a non-volatile memory, such as read-only memory (“ROM”) and/or FLASH memory, and a random-access memory (“RAM”), such as dynamic random access memory (“DRAM”) or synchronous dynamic random access memory (“SDRAM”). For example, the non-volatile memory and/or the RAM may store a firmware that comprises commands and data necessary for performing the operations of the storage device 400. According to some embodiments, the memory 428 may store processor-executable instructions that, when executed by the processor 422, perform the routine 500 for recovering from a UDE in the storage device using super-parity recovery, as described herein.
In addition to the memory 428, the environment may include other computer-readable media storing program modules, data structures, and other data described herein for storing data in the storage device 400 to reduce recovery time from read errors using super-parity. It will be appreciated by those skilled in the art that computer-readable media can be any available media that may be accessed by the controller 420 or other computing system for the non-transitory storage of information. Computer-readable media includes volatile and non-volatile, removable and non-removable storage media implemented in any method or technology, including, but not limited to, RAM, ROM, erasable programmable ROM (“EPROM”), electrically-erasable programmable ROM (“EEPROM”), FLASH memory or other solid-state memory technology, compact disc ROM (“CD-ROM”), digital versatile disk (“DVD”), high definition DVD (“HD-DVD”), BLU-RAY or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices and the like.
In further embodiments, the environment may include a super-parity recovery module 430. The super-parity recovery module 430 may be executed in response to a UDE in a read of a target sector 108 on the disk 402 to recover data for the target sector by reading the encompassing super block 104 and the corresponding parity information 106. According to embodiments, the super-parity recovery module 430 may perform the methods and processes described herein for reducing recovery time from read errors using super-parity in the storage device 400. According to some embodiments, the super-parity recovery module 430 may be implemented in the controller 420 as software, hardware, or any combination of the two. For example, the super-parity recovery module 430 may be stored in the memory 428 as part of the firmware of the storage device 400 and may be executed by the processor 422 for performing the methods and processes described herein. The super-parity recovery module 430 may alternatively or additionally be stored in other computer-readable media accessible by the controller 420. In further embodiments, the super-parity recovery module 430 may be implemented in a computing system external to and operably connected to the storage device 400, such as in a driver module of a host device connected to storage device through the interface 424, for example. The super-parity recovery module 430 may further be stored in a memory or other computer-readable media accessible by the computing system and be executed by a processor of the computing system.
It will be appreciated that the structure and/or functionality of the storage device 400 may be different that that illustrated in
The routine 500 begins at step 502, where the super-parity recovery module 430 reads the super block 104 containing the target sector 108 in which the UDE has occurred. For example, in an HDD device incorporating MSMR technology with read/write heads 410 configured to read two, adjacent data tracks concurrently, the super-parity recovery module 430 may read the super block 104A, including the corresponding parity information 106A, comprising portions of data track N 102A and data track N+1 102B in a single pass. It will be appreciated that reading of the entire super block 104A with the multi-reader read/write head 410 will require less than a full rotation of the disk 402.
From step 502, the routine 500 proceeds to step 504, where the super-parity recovery module 430 uses the data read from the super block 104A and the corresponding parity information 106A to recover the data from the target sector 108. Because the parity information 106A facilitates recovery of all data in the corresponding super block 104A, the super-parity recovery module 430 may be able to read the encompassing super block and recover the target sector 108 in less time than the disk 402 requires for a full rotation. The data recovered from the target sector 108 can then be returned to the host through the host interface in response to the read operation. From step 504, the routine 500 ends.
Based on the foregoing, it will be appreciated that technologies for storing data in a disk-based storage device incorporating multiple readers per recording surface to reduce recovery time from read errors using super-parity are presented herein. While embodiments are described herein in regard to an HDD device, it will be appreciated that the embodiments described in this disclosure may be utilized in any disk based storage device having the capability to read multiple data tracks concurrently, including but not limited to, a magnetic disk drive, a hybrid magnetic and solid state drive, an optical disk storage device, and the like. The above-described embodiments are merely possible examples of implementations, merely set forth for a clear understanding of the principles of the present disclosure.
The logical operations, functions or steps described herein as part of a method, process or routine may be implemented (1) as a sequence of processor-implemented acts, software modules or portions of code running on a controller or computing system and/or (2) as interconnected machine logic circuits or circuit modules within the controller or computing system. The implementation is a matter of choice dependent on the performance and other requirements of the system. Alternate implementations are included in which operations, functions or steps may not be included or executed at all, may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the present disclosure.
It will be further appreciated that conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more particular embodiments or that one or more particular embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.
Many variations and modifications may be made to the above-described embodiments without departing substantially from the spirit and principles of the present disclosure. Further, the scope of the present disclosure is intended to cover any and all combinations and sub-combinations of all elements, features and aspects discussed above. All such modifications and variations are intended to be included herein within the scope of the present disclosure, and all possible claims to individual aspects or combinations of elements or steps are intended to be supported by the present disclosure.