Coarse interleaving

A method includes encoding a sector of data to be written to a data storage device with a single error correcting code (ECC). The sector of data is divided into N individually readable and writeable portions, with N≥2. The individually readable and writeable portions of the sector of data are separated with a space between the portions of the sector of data in a pattern.

SUMMARY

In one embodiment, a method includes encoding a sector of data to be written to a data storage device with a single error correcting code (ECC). The sector of data is divided into N individually readable and writeable portions, with N≥2. The individually readable and writeable portions of the sector of data are separated with a space.

In another embodiment, a system includes a data storage device to receive a piece of data to be stored, and a controller. The controller is configured to encode a sector of data to be written to the data storage device with a single error correcting code (ECC). The controller is further configured to divide the sector of data into N individually readable and writeable portions, with N≥2. The controller is further configured to separate the individually readable and writeable portions of the sector of data with a space between the portions of the sector of data in a pattern.

In another embodiment, a method includes encoding each sector of data of a plurality of sectors of data to be written to a storage drive with its own single error correcting code (ECC). Each sector of data of the plurality of sectors of data is divided into N equal size individually readable and writeable portions, with N≥2. The divided individually readable and writeable portions of each of the sectors are interleaved with a space between the individually readable and writeable portions of the sector on a single track in a pattern chosen to have uniform latency for adjacent sector reads.

Other features and benefits that characterize embodiments of the disclosure will be apparent upon reading the following detailed description and review of the associated drawings.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

In a hard disc drive (HDD), proximate positions on a given track are correlated in signal to noise ratio (SNR). A local impairment therefore usually degrades SNR of a whole sector, leading to increased likelihood of sector failure. Several approaches to alleviating this issue have been used, with each having negatives. One approach is to interleave sectors in the media such that a local impairment is distributed among multiple sectors. This approach requires a read-modify-write operation. Another approach is to encode a sector with a single error correcting code (ECC) and distribute it on two adjacent tracks. This approach has concerns with skew issues, write performance, and implementation with two-dimensional magnetic recording (TDMR). Yet another approach is to encode a sector with a single ECC and distribute it on two different surfaces. This approach has concerns with impairment correlation in track misregistration (TMR) and the availability of dual channels.

In the first approach discussed above, with interleaved sectors, a fraction of a host sector (typically 4 kilobytes (kB)) cannot be written. There is a mapping of multiple host sectors written to a single media sector that is larger than a host sector, such as 32 kB. Even if it is distributed on the media sector, the media sector and all intervening sectors are read to retrieve their data, then modified to accommodate the new write, new ECC is computed, and then all host sectors are rewritten. This is referred to as read-modify-write, and is very time consuming for writing a single media sector. Suppose eight 4 kB host sectors are interleaved onto a 32 kB media sector, and one of the eight 4 kB host sectors is to be rewritten. In this instance, each of the eight host sectors on the media sector is read, modification is done on the host sector to be written, and all eight host sectors are re-written to the media sector.

In the second approach, two adjacent tracks are written for separate sections of a sector of data. With such an approach, two writers and two readers are used. With two writers, skew issues arise when a read/write head moves from an inner diameter (ID) to an outer diameter (OD) of an HDD. The head may be aligned tangential to a track at a middle diameter (MD), but is skewed at the ID or OD. With two readers/writers, and a fixed relative position of head separation, alignment becomes an issue. This is especially true with variable tracks per inch (TPI) approaches that are commonly used in HDDs. Alternatively, with data recorded in two passes and read back in two passes, a large performance penalty is present.

In the third approach, data from a sector is divided and written to two separate platters of an HDD. Since different heads seek/read/write on different platters, the issues with skew are reduced in such an approach. However, TMR issues related to external vibrations will affect the whole HDD at the same time, and so writing to different platters, while physically separating the data, does not account for a single vibration affecting both heads at the same time. Further, even though writing and reading of data may be done in parallel, the processing of that data is not done in parallel when there is only one data processing unit, which is common. To process in parallel would use additional channels adding additional costs.

Space diversity approaches that avoid the issues discussed above are provided by embodiments of the present disclosure. In actual operating conditions, only a few locations on tracks of an HDD have quality issues. In most areas of an HDD, a suitable margin is present to allow for recovering a sector written on media of the HDD. Certain locations, such as tracks squeezed or otherwise impinged on by/from adjacent tracks, or areas being written when a vibration such as an external vibration occurs, tend to result in most failures. Space diversity, such as is provided in embodiments of the present disclosure, diversify data within the HDD, so even if a small amount of data is compromised, the whole sector is not. ECC code for the sector can be used to reconstruct bad data more easily when it is diversified over space.

Embodiments of the present disclosure generally provide an interleaving process for data of a sector of data to be written to an HDD. In one approach, a sector of data is encoded with a single ECC for the entire sector, and is divided into at least two portions. Then, a space is introduced between the split portions of the sector on a track of the HDD. While this introduces a small latency, the interleaving, as well as some specific order of sector portions within the interleaving, provides benefits including not having a read-write-modify configuration for data of different sectors (as each split portion of a sector is written with its unique preamble field), no sector size change, and no read head additions or multiple channels. In one embodiment, each sector is split into two sections, and a number of split sectors are interleaved within a track. With ordering of the sector sections, a read/write of two consecutive sectors introduces a small amount of latency, but allows for a net increased areal density (ADC).

Prior to providing a detailed description of the different embodiments, one example of an illustrative operating environment in which certain specific embodiments disclosed herein may be incorporated is shown inFIG.1. The operating environment shown inFIG.1is for illustration purposes only. Embodiments of the present disclosure are not limited to any particular operating environment such as the operating environment shown inFIG.1. Embodiments of the present disclosure are illustratively practiced within any number of different types of operating environments.

It will be understood that, when an element is referred to as being “connected,” “coupled,” or “attached” to another element, it can be directly connected, coupled, or attached to the other element, or it can be indirectly connected, coupled, or attached to the other element where intervening or intermediate elements may be present. In contrast, if an element is referred to as being “directly connected,” “directly coupled” or “directly attached” to another element, there are no intervening elements present. Drawings illustrating direct connections, couplings or attachments between elements also include embodiments, in which the elements are indirectly connected, coupled, or attached to each other.

FIG.1is a diagrammatic illustration of a system in which data interleaving is carried out in accordance with certain embodiments of the present disclosure. Specifically,FIG.1provides a simplified block diagram of a data storage device (DSD)100. The DSD100may be coupled to a host102and may service commands from the host102. The host102may also be referred to as the host system, host device or host computer. The host102can be a desktop computer, a laptop computer, a server, a tablet computer, a telephone, a music player, another electronic device, or any combination thereof. The DSD100can communicate with the host device102via a hardware or firmware-based interface104. The interface104may comprise any interface that allows communication between a host102and a DSD100, either wired or wireless, such as NVMe (non-volatile memory express), SCSI (small computer system interface), SAS (serial attached SCSI), FC-AL (fiber channel arbitrated loop), PCI-E (peripheral component interconnect express), IDE (integrated drive electronics), AT (advanced technology), ATA (advanced technology attachment), SATA (serial advanced technology attachment), eSATA (external SATA), PATA (parallel ATA), PCIe (peripheral component interconnect express), IEEE (institute of electrical and electronics engineers)-1394, USB (universal serial bus), compact flash, Ethernet, Thunderbolt, or other interface connector adapted for connection to a host computer. The interface104may include a connector (not shown) that allows the DSD100to be physically removed from the host102.

DSD100can include a programmable controller106and main storage108. Programmable controller106can include associated memory and one or more processors. The main storage108can be arranged as one or more rotatable recording discs to provide a main data storage space.

FIG.2is a diagram of a basic coarse interleaving configuration200according to an embodiment of the present disclosure. InFIG.2, a first sector of data202and a second sector of data204are to be written to a HDD. In thisFIG.2, each sector is a 4 kB sector, although the sector size may be different without departing from the scope of the disclosure. In this configuration, sector202is broken into two portions202A and202B, each of 2 kB size. Sector204is broken into two portions204A and204B, each of 2 kB size. In this approach, a sector (e.g., sector202or204) is provided from a host as a complete sector encoded with a single ECC.

A space, L, for example in units of sector size (e.g., 4 kB in this example) is introduced between portions of a sector on a track of the HDD. For writing, portion202A is written, then portion204A, . . . , until all sectors to be written have their first portions written. Then the second portions202B,204B, . . . are written. The separation, L, between portions of a sector may be chosen based on predetermined criteria, such as latency and operational speed. In one example, the separation can be L=3 sectors.

While each sector202and204is shown as being broken into two equal portions, it should be understood that the sector may be broken into more equal size portions, such as 4, 5, or more, without departing from the scope of the disclosure.

When broken into portions, the encoding does not change. instead, the sector is simply broken into portions for writing. Each portion of a sector is provided with its own preamble. Preambles are known, and contain metadata including by way of example only, one or more of an address mark detection including a special sequence of bits to allow a timing lock via a phase locked loop (PLL), a guard band for separation of sectors, and the like. The addition of a preamble to each portion of a sector does add some small amount of overhead. With current HDD settings, this additional format cost is in one embodiment about 0.5%. Format loss may be reduced with further configuration of the preamble. Also, areal density may be increased since space diversity allows the placement of bits and/or tracks closer together.

Writing in the fashion shown inFIG.2does not affect the host in any way. All splitting and space diversity writing and reading of sector data is performed in the HDD, by a controller or other control logic as is discussed further herein.

Layouts of portions of sectors may be done in a pattern.FIG.3shows a format layout300according to an embodiment of the present disclosure. InFIG.3, ten sectors are shown, each broken into two portions, so that there are a plurality of first portions and a plurality of second portions. The first and second portions are302A and302B of a first sector,304A and304B of a second sector,306A and306B of a third sector,308A and308B of a fourth sector,310A and310B of a fifth sector,312A and312B of a sixth sector,314A and314B of a seventh sector,316A and316B of an eight sector,318A and318B of a ninth sector, and320A and320B of a tenth sector. In this example, the sectors are 4 kB in size, and the portions are each 2 kB in size.

For example, a pattern is formed by interleaving a number of sectors of data each divided into two portions, and arranged in an order with the first portion of each of the sectors of data written consecutively followed by the second portion of each of the sectors of data written consecutively. In this arrangement, a first half of the sectors are written with their first portions written consecutively, followed by their second portions consecutively. That is, portions302A,304A,306A,308A, and310A are written, followed by portions302B,304B,306B,308B, and310B. Then portions312A,314A,316A,318A, and320A are written, followed by portions312B,314B,316B,318B, and320B.

In this configuration, latency on a read is determined by an amount of delay in reading a sector or sectors. For each individual sector, a latency read is L. L in this configuration is two sectors in length (four sector portions). For reading all sectors, there is no latency. For reading consecutive sectors, the latency depends on which sectors are to be read. Reading sectors302and304, latency is ¾ L. That is,302A and304A are read,306A,308A, and310A are skipped, and302B and304B are read. Reading sectors310and312introduces the most latency.310A is read, and302B,304B,306B, and308B are skipped (L latency).310B and312A are read, and314A,316A,318A, and320A are skipped (L latency), and then312B is read. That is a total latency of 2L, since the reads are occurring from two periods.

FromFIG.3, a period P of length 2L+1 is introduced due to a latency L. This periodicity can make it more challenging to fit an integer number of periods in each track. In one configuration of a HDD, each sector takes about 20 microseconds (μs) of time to move a read/write head. Due to the latency L, a read command takes longer to execute, impacting input/output operations per second (IOPS). However, this is noticeable only under a random-read environment. Even then, the impact is quite small. For example, with L=3, the additional latency is around 60 μs whereas an average command execution is about 5 milliseconds (ms), depending on queue depth, location on disc, etc.) This results in about a 1% loss in random-read IOPS. The latency introduced does not affect operations greatly, and the space diversity introduced more than overcomes the performance loss.

To reduce the largest read latency from 2L, and to introduce a uniform latency of L, an alternative format layout400is shown inFIG.4. Layout400includes a pattern of portions of sectors that writes all first portions of sectors consecutively, but spaced apart by another portion of the selection of second portions. In this configuration, the order of the second portions is offset by two portions. That is, there are 20 portions in 10 sectors. The first portions are written with the first portion302A of the plurality of first portions in a first position and consecutively every other portion. The second portions are written starting offset, with the ninth second portion318B written after the first portion302A, then the tenth, first, second, . . . second portions consecutively every other portion. This makes the latency equal for all single sector reads, other than a read of all sectors which has no latency. The situation of 2L latency (reading sectors310and312as inFIG.3), has latency of L in this configuration. Portion310A is read, portion306B is skipped (¼ L), portion312A is read, portions308B and314A are skipped (½ L), portion310B is read, portion316A is skipped (¼ L), and portion312B is read. Every read has a latency of L, since the reads are all in one period.

A method500of interleaving is shown in flow chart form inFIG.5. Method500comprises, in one embodiment, encoding a sector of data to be written to a hard disc drive (HDD) with a single error correcting code (ECC) in block502. The sector of data is divided into N portions, with N≥2 in block504. The portions of the sector of data are separated with a space between the portions of the sector of data in a pattern in block506.

Advantages of the embodiments of the present disclosure over previous attempted solutions include 1) no read-modify-write operation is used since each 4 kB sector can be written and read independent of any other sector; 2) No changing of sector size on the part of a host is used; and 3) no reader additions or multiple channels are used.

Further advantages of the embodiments of the present disclosure include net areal density (ADC) gain, even with format loss (e.g., for extra preamble space). Gains are higher for a high-vibration environment over a low-vibration environment.

A higher ADC gain for high-vibration environments is due to more energy in acoustic mode disturbance in 2-4 kilohertz (kHz) frequency range. The lower ADC gain for low-vibration environments is due to lack of acoustic mode disturbance energy. Nearly all energy is in mechanical mode disturbances which are in 100 s of Hz that use longer interleave periods.

In some instances, an integer number of periods may not exactly fit onto a single track. In those situations, several options may be employed. If, for example, an integer number of periods on a single track is too low in resolution, boundary conditions may apply.

HDD surfaces are divided into different zones. There may be hundreds of zones or more. If the media and the read/write head are good and stable, more closely packed reading/writing may be able to be performed. That is, good read/write heads can place more data on media than bad read/write heads. To have good resolution, such considerations are taken into account. This may be done at manufacture, for example.

If a period for writing/reading is 10, and there are 102 sectors, the number of sectors is not evenly splittable. Ten periods may be used, but there are then two sectors that are outliers. In such boundary conditions, there are options for treatment. in one embodiment, additional sectors are written to and read from an adjacent track. This may lead to larger latency issues.

Bits per inch (BPI) and tracks per inch (TPI) may be adjusted in some situations. BPI and TPI have a relationship. As BPI increases, TPI usually is decreased. As BPI decreases, TPI usually may be increased. A period depends on a number of sectors being written/read. With a period P having a separation between portions of L, P is larger if an even number of periods are desired in the track. This can affect resolution.

Options for addressing this loss of resolution include increasing TPI. Narrower tracks means more tracks. For example, if 10.3 periods fit on a track, 10 periods may be written, and the margin introduced by that may be used to increase TPI. Another option is to split the data to two adjacent tracks, without using an even number of periods.

Another option is to use more than one period on a track. For example, if a track has N sectors, and two periods P and P′, a solution to fit all data onto one track chooses integers n and m such that nP+mP′=N. In a numeric example, suppose there are 102 sectors (N), the sectors may be divided into periods of 10 (P) and 6 (P′). Satisfying the n and m integers results in n=6 (60 sectors) and m=76 (42 sectors). This matches not a single period but multiple periods on a track to match a number of sectors in the track. This weighted sum of two is exactly the number of sectors desired to be written to the track. P and P′ can differ by 1 relative to the choice of P to reduce and ADC impact.

Hardware and processes associated with the embodiments is what are typically used for reading and writing, with control logic within a controller or other processor used to implement the methods. In general, the read and write processes involve detectors, decoders, and encoders, in addition to read/write hardware.

FIG.6illustrates an example write process600. While the particular process is shown, it should be understood that other write processes will be apparent to those of skill in the art, without departing form the scope of the present disclosure. On the write side, a buffer602, of size proportional to L, is positioned between an ECC encoder604and write circuitry606. Control logic608is included to segment the incoming sector into portions and to record the portions to the media at an appropriate time.

In an example write operation according to an embodiment, a sector to be written is sent from a host. The sector has its ECC determined on a complete sector basis. Once the ECC is determined, the sector is loaded to the buffer602according to instructions in the control logic608. In one example, the sector is split into two portions. The data comes in as a full sector, with ECC. The control logic writes a first half (or other determined portion), and then at a later time and in a different location, writes the second half, using the buffer602to assemble all data to be written. Data is written with writer606according to instructions form the control logic608.

FIG.7illustrates an example read process700. While the particular process is shown, it should be understood that other read processes will be apparent to those of skill in the art, without departing form the scope of the present disclosure. For a read operation, a buffer702of size proportional to L, is placed after an analog to digital converter (ADC)704and a finite impulse response filter (FIR)706for frequency shaping. The buffer702, using instructions from control logic708, bundles sector portions to be read by aligning them in the buffer702. All data not being read may be skipped. The buffer702at this point actually holds data samples rather than bits. The FIR706is inserted before the buffer702to reduce the latency for adaption. A detector710(including ECC decoder712and, depending on the type of ECC being used, soft output Viterbi algorithm (SOVA)714, is inserted after the buffer702to allow the detector710to detect a whole sector at a time.

In one embodiment, such as using low density parity check codes (LDPC) for ECC, the SOVA714and elastic buffer716may be used. In general, there is a detector and a decoder. Specific types of ECC have specific elements for detecting and decoding. In LDPC, probabilities are used, so the SOVA714is employed. In essence, with LDPC, decode time is variable, as LDPC is an iterative decoding process. Some errors will converge quickly, and others will not. Those errors that do not converge quickly use more iterations. Since read media data does not wait for decoding, in some embodiments an elastic buffer716is used. If the buffer702is designed to be able to store sufficient data for 10 iterations, and a specific sector uses 30 iterations for decoding, the extra data is moved to the elastic buffer716. Such a read process, as has been mentioned, is only one read process, and other read processes may be used without departing from the scope of the disclosure.

Referring now toFIG.8, a simplified block diagram of a storage system800in which embodiments of the present disclosure may be practiced is shown. Storage system800may be an HDD with a platter or platters808, a read head, and associated controllers (not shown). System800may include, by way of example, a controller802couplable via a bus804or the like to a host system850, where the host system850may provide power over the bus804or through a separate power bus (not shown), and a storage component806(such as a spinning disk or platter of disks808). Controller802is configured to carry out interleaving in accordance with one or more of the methods described above. To carry out the interleaving, the controller802may execute instructions stored on any tangible computer-readable medium/memory in storage system800.