Codeword interleaving for magnetic storage media

文档序号:74843 发布日期:2021-10-01 浏览:43次 中文

阅读说明:本技术 用于磁存储介质的码字交织 (Codeword interleaving for magnetic storage media ) 是由 M·奥伯格 于 2020-02-26 设计创作,主要内容包括:本公开描述了用于磁存储介质的码字交织的方面。在一些方面,码字的分段跨磁存储介质的多个扇区散布或交织。一个或多个码字的数据可以由读取通道接收,并且对于每个码字,选择或接收相应的指示符。指示符可以指示码字之一的分段将被写入多个扇区的哪些分区。然后对数据进行编码以提供码字,并且基于与码字对应的相应指示符将码字的分段放置在交织器中。码字分段从交织器写入磁存储介质的多个扇区的分区。通过这样做,码字可以跨多个扇区散布,使得一些扇区的丢失不会阻止码字的读回和解码。(The present disclosure describes aspects of codeword interleaving for magnetic storage media. In some aspects, the segments of the codeword are spread or interleaved across multiple sectors of the magnetic storage medium. Data of one or more codewords may be received by the read channel and for each codeword a corresponding indicator is selected or received. The indicator may indicate which partitions of the plurality of sectors a segment of one of the codewords is to be written to. The data is then encoded to provide codewords, and the segments of the codewords are placed in an interleaver based on respective indicators corresponding to the codewords. The code word segments are written from the interleaver to a partition of a plurality of sectors of the magnetic storage medium. By doing so, the codeword may be spread across multiple sectors so that the loss of some sectors does not prevent the readback and decoding of the codeword.)

1. A method for improving the reliability of data written to a magnetic storage medium, comprising:

receiving data to be written to one or more codewords of a set of multiple sectors of the magnetic storage medium;

selecting a respective indicator for each of the one or more codewords, the indicator indicating within which partitions of the plurality of sectors segments of the codeword are to be written;

encoding the data to provide one or more codewords of encoded data;

placing segments of the one or more codewords into an interleaver based on a respective indicator corresponding to each of the codewords; and

writing, from the interleaver, a segment of each of the one or more codewords to a partition of at least some of the plurality of sectors to interleave the respective segment of the codeword across the set of the plurality of sectors of the magnetic storage medium.

2. The method of claim 1, wherein the respective indicator corresponding to each codeword comprises a predefined index, and the method further comprises: receiving an indication from a storage medium controller as to which predefined index corresponds to at least one of the codewords.

3. The method of claim 1, further comprising: for at least one of the codewords, determining a location index of a respective partition of the at least some of the plurality of sectors to which the segment of the codeword is to be written.

4. The method of claim 3, further comprising:

receiving a write signal indicating a start of one of the plurality of sectors from a storage medium controller;

determining, based on the position index of the at least one codeword, that one of the segments of the codeword is to be written to one of the partitions of the sector; and

based on the write signal and the location index, writing one of the segments of the codeword to a partition of a sector that received the write signal.

5. The method of claim 3, further comprising:

receiving a write signal indicating a start of one of the plurality of sectors from a storage medium controller;

determining, based on the position index of the at least one codeword, that one of the segments of the codeword is not to be written to one of the partitions of the sector; and

based on the position index of the codeword, blocking the write signal to prevent writing to a partition of sectors to which one of the segments of the codeword is not to be written.

6. The method of claim 1, wherein:

the set of multiple sectors of the magnetic storage medium comprises contiguous sectors of the magnetic storage medium; and

writing the segments of the one or more codewords into a partition comprises: writing segments of at least one of the codewords to non-contiguous sectors of the plurality of sectors of the magnetic storage medium.

7. The method of claim 1, wherein:

the set of multiple sectors of the magnetic storage medium comprises contiguous sectors of the magnetic storage medium; and

writing the segments of the one or more codewords into a partition comprises: writing a segment of at least one of the codewords to a contiguous sector of the plurality of sectors of the magnetic storage medium.

8. The method of claim 1, wherein writing respective segments of the one or more codewords to the partitions of the plurality of sectors comprises: writing a segment of at least one of the codewords to each sector of the set of multiple sectors of the magnetic storage medium.

9. An apparatus for improved data storage reliability, comprising:

an interface to receive data from a host;

a disk of magnetic storage media arranged in sectors to store the data;

An interleaver buffer configured to buffer segments of codewords for writing to sectors of the magnetic storage medium; and

an interleaver configured to:

receiving, from the host device, data corresponding to one or more codewords to be stored by a set of multiple sectors of the magnetic storage medium;

selecting a respective indicator for each of the one or more codewords, the indicator indicating within which partitions of the plurality of sectors segments of the codeword are to be written;

encoding data of the one or more codewords to provide one or more codewords of encoded data;

placing segments of the one or more codewords into the interleaver buffer based on respective indicators corresponding to each of the codewords; and

writing segments of the one or more codewords from the interleaving buffer to partitions of at least some of the plurality of sectors to interleave the respective segments of the codewords across the set of the plurality of sectors of the magnetic storage medium.

10. The apparatus of claim 9, wherein the interleaver is further configured to: for at least one of the codewords, determining a location index of a respective partition of the partitions of the plurality of sectors to which the segment of the codeword is to be written.

11. The apparatus of claim 10, further comprising:

a storage medium controller configured to generate a write signal indicating a start of one of the plurality of sectors, and wherein:

the interleaver is further configured to:

determining, based on the position index of the at least one codeword, that one of the segments of the codeword is to be written to one of the partitions of the sector; and

based on the write signal and the location index, writing one of the segments of the at least one codeword to a partition of a sector that received the write signal.

12. The apparatus of claim 10, further comprising:

a storage medium controller configured to generate a write signal indicating a start of one of the plurality of sectors, and wherein:

the interleaver is further configured to:

determining, based on the position index of the at least one codeword, that one of the segments of the codeword is not to be written to one of the partitions of the sector; and

based on the position index, blocking the write signal to prevent writing to a partition of sectors to which one of the segments of the at least one codeword is not to be written.

13. The apparatus of claim 11, further comprising a storage medium controller configured to:

Grouping the plurality of sectors of the magnetic storage medium into interleaved sets of sectors;

providing data corresponding to a set of codewords for the set of interleaved sectors to the interleaver, the data for the set of codewords comprising data for the one or more codewords; and

providing, to the interleaver and for each codeword of the set of codewords, an indication of a respective indicator corresponding to the codeword to enable the interleaver to select the respective indicator to interleave the segments of the codeword.

14. The apparatus of claim 13, wherein the set of interleaved sectors comprises a number of sectors equal to or greater in number than a number of one or more codewords to which the set of interleaved sectors corresponds.

15. The apparatus of claim 9, wherein:

segments of the one or more codewords are written to respective partitions of consecutive sectors of the plurality of sectors; or

Segments of the one or more codewords are written to respective partitions of non-contiguous sectors of the plurality of sectors.

16. A system on a chip (SoC), comprising:

an interface for a storage media controller from which data is received for writing to a magnetic storage media;

An interface for a media writer of the magnetic storage media;

an interleaver buffer configured to buffer segments of codewords for writing to sectors of the magnetic storage medium; and

an interleaver configured to:

receiving data from the storage medium controller corresponding to one or more codewords to be written to a set of multiple sectors of the magnetic storage medium;

receiving, from the storage medium controller, respective indicators indicating which partitions of the plurality of sectors a segment of each of the codewords is to be written to;

encoding data of the one or more codewords to provide one or more codewords of encoded data;

placing segments of the one or more codewords into the interleaver buffer based on respective indicators corresponding to each of the codewords; and

writing, from the interleaving buffer and with the media writer, segments of the one or more codewords to partitions of at least some of the plurality of sectors to interleave respective segments of the codewords across the set of the plurality of sectors of the magnetic storage medium.

17. The SoC of claim 16, wherein the interleaver is further configured to: for at least one of the codewords, determining a location index of a respective partition of the partitions of the plurality of sectors to which the segment of the codeword is to be written.

18. The SoC of claim 17, wherein the interleaver is further configured to:

receiving a write signal from the storage medium controller indicating a start of one of the plurality of sectors;

determining, based on the position index of the at least one codeword, that one of the segments of the codeword is to be written to one of the partitions of the sector; and

based on the write signal and the location index, writing one of the segments of the at least one codeword to a partition of a sector that received the write signal.

19. The SoC of claim 17, wherein the interleaver is further configured to:

receiving a write signal from the storage medium controller indicating a start of one of the plurality of sectors;

determining, based on the position index of the at least one codeword, that one of the segments of the codeword is not to be written to one of the partitions of the sector; and

based on the position index, blocking the write signal to prevent writing to a partition of sectors to which one of the segments of the at least one codeword is not to be written.

20. The SoC of claim 16, wherein:

segments of the one or more codewords are written to respective partitions of consecutive sectors of the plurality of sectors; or

Segments of the one or more codewords are written to respective partitions of non-contiguous sectors of the plurality of sectors.

Background

Electronic devices provide many services to modern society. These services enable electronic devices to provide entertainment, assist in scientific research and development, and provide many modern conveniences. Many of these services create or use data stored by electronic devices. The data may include digital media such as books or movies, algorithms to perform complex simulations, personal user data, applications, etc. To avoid exceeding data storage limits, increasing the data storage capacity of the electronic device, it is beneficial to avoid deleting data, limiting services, or purchasing additional external storage devices.

Many electronic devices use media drives to store data on disks, such as hard disk drives. Typically, the data for each disk is organized along concentric tracks of magnetic media in which bits of data are written. Typically, data for a device is grouped and written to various physical portions of a magnetic media track in block order. However, the magnetic medium on the disk surface is typically non-uniform, such that the quality of the magnetic medium may vary significantly around the disk surface. Due to these variations, readback of data from the magnetic medium has a non-uniform signal-to-noise ratio (SNR). Thus, when a block of data is written to a portion of a poor quality media or a degraded portion (e.g., due to the write head drifting off-track from an adjacent track), the data of the media drive may be lost, which may result in a low SNR read signal or a read back failure.

Disclosure of Invention

This summary is provided to introduce a selection of subject matter that is further described in the detailed description and accompanying figures. Accordingly, this summary should not be considered to describe essential features nor should it be taken as limiting the scope of the claimed subject matter.

In various aspects, segments of a codeword are spread or interleaved across multiple sectors (e.g., physical locations) of a magnetic storage medium. Data for one or more codewords may be received by the read/write channel and, for each codeword, a corresponding indicator (e.g., index) is selected or received. The indicator may include an indicator indicating which partitions of the plurality of sectors a segment of one of the codewords is to be written to. The data is then encoded to provide codewords, and the segments of the codewords are placed in an interleaver based on respective indicators corresponding to the codewords. The code word segments are written from the interleaver to a partition of a plurality of sectors of the magnetic storage medium. By doing so, the codeword can be spread across multiple sectors so that the loss of several sectors does not prevent readback and decoding of the codeword.

In some aspects, an interleaver of a storage medium controller implements a method comprising: data is received for one or more codewords to be written to a set of multiple sectors (e.g., physical locations or track sectors) of a magnetic storage medium. For each of the one or more codewords, a respective indicator is selected, which indicates in which partitions of the plurality of sectors the segments of the codeword are to be written. Data is encoded to provide one or more codewords of encoded data, and segments of the one or more codewords are placed into an interleaving buffer based on respective indicators corresponding to each codeword. Segments of each of the one or more codewords are then written from the interleaving buffer to partitions of at least some of the plurality of sectors to interleave the respective segments of codewords across the plurality of sectors of the magnetic storage medium. Alternatively or additionally, the segments of each of the one or more codewords may be written to non-contiguous sectors of the plurality of sectors, e.g., partitions of every other sector.

In other aspects, an apparatus comprises: an interface for receiving data from a host, a magnetic storage medium disk storing data arranged in sectors, an interleaving buffer configured to buffer codeword segments for writing to sectors of the magnetic storage medium, and an interleaver. The interleaver is configured to receive data from a host device corresponding to one or more codewords to be stored by a plurality of sectors of the magnetic storage medium. The interleaver selects for each of the one or more codewords a corresponding indicator indicating into which of the partitions of the plurality of sectors the segment of the codeword is to be written. The data for the one or more codewords is then encoded to provide one or more codewords of encoded data. The interleaver then places segments of one or more codewords into an interleaving buffer based on respective indicators corresponding to each codeword. Segments of one or more codewords are written from the interleaving buffer to partitions of at least some of the plurality of sectors to interleave respective segments of codewords across the plurality of sectors of the magnetic storage medium.

In yet another aspect, a system on a chip (SoC) is described, comprising: an interface of the storage media controller to receive data from the storage media controller to write to the magnetic storage media; an interface to a media writer of a magnetic storage medium; an interleaving buffer configured to buffer codeword segments for writing to sectors of a magnetic storage medium; and an interleaver. The interleaver is configured to receive data corresponding to one or more codewords to be stored in a plurality of sectors of the magnetic storage medium from a storage medium controller. The interleaver also receives from the storage medium controller respective indices indicating which partitions of the plurality of sectors each segment of a codeword is to be written within. The data of the one or more codewords is encoded to provide one or more codewords of encoded data. The interleaver then places segments of one or more codewords into an interleaving buffer based on respective indicators corresponding to each codeword. The media writer then writes the segments of the one or more codewords from the interleaving buffer to partitions of at least some of the plurality of sectors to interleave the respective segments of codewords across the plurality of sectors of the magnetic storage medium.

The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features and advantages will be apparent from the description and drawings, and from the claims.

Drawings

The details of one or more implementations of codeword interleaving for magnetic storage media are set forth in the accompanying drawings and the detailed description below. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference symbols in different instances in the description and the figures indicates similar elements:

FIG. 1 illustrates an example operating environment with a device that can implement codeword interleaving for magnetic storage media.

Fig. 2 illustrates an example configuration of the hard disk drive shown in fig. 1.

FIG. 3 illustrates an example configuration of a read/write channel and an interleaver that can write code word segments to sectors of the magnetic storage medium shown in FIG. 2.

FIG. 4 illustrates an example configuration of a read/write channel and timing recovery circuit that can read codeword segments from a sector of the magnetic storage medium shown in FIG. 2.

FIG. 5 depicts an example method for writing interleaved codeword segments to sectors of a media track in accordance with one or more aspects.

FIG. 6 illustrates an example media track of a sector partition writing interleaved codeword segments in accordance with one or more aspects.

FIG. 7 depicts an example method for interleaving codewords and writing segments of the interleaved codewords to corresponding sector partitions of a magnetic storage medium.

FIG. 8 depicts an example method for interleaved codeword segmentation for reading a plurality of codewords from respective sector partitions of a magnetic storage medium.

FIG. 9 depicts an example method of reading segments of codewords from sector partitions as shown in FIG. 8 with buffered timing recovery.

FIG. 10 illustrates an exemplary System-on-Chip (SoC) environment for implementing some aspects of codeword interleaving for magnetic storage media.

FIG. 11 illustrates an example storage medium controller configured to implement some aspects of codeword interleaving for a magnetic storage medium.

Detailed Description

Conventional techniques for writing data to the magnetic media of a magnetic disk typically write blocks of data to various physical portions of the tracks of the magnetic media. Typically, the data for each disk is organized along concentric tracks of magnetic media in which data blocks are written. Typically, data is grouped and written sequentially so that each block of data is written to the next portion of the magnetic media track. In other words, a block of data is written to a portion of a track of magnetic media. However, the magnetic medium on the disk surface is typically non-uniform, such that the quality of the magnetic medium may vary significantly around the disk surface. Due to these variations, readback of data from the magnetic medium has a non-uniform signal-to-noise ratio (SNR). Thus, when a block of data is written to a portion of a poor quality media or a degraded portion (e.g., due to the write head drifting off-track from an adjacent track), the data of the media drive may be lost, which may result in a low SNR read signal or a read back failure.

This disclosure describes apparatus and techniques for codeword interleaving for magnetic storage media. In contrast to conventional data writing techniques, the described apparatus and techniques may write segments (or portions) of codewords across multiple sectors (e.g., physical locations) of a media track. Typically, multiple sectors of a media track or recording track are grouped or assigned as an interleaver group. These sectors of the interleaver group may be divided into or include partitions for storing segments of codewords, rather than sectors of entire codewords or user data. In some aspects, data for one or more codewords of an interleaver group is received, e.g., by a read/write channel of a magnetic storage medium. A respective indicator or index of the codeword may also be received that indicates which partitions of the plurality of sectors are to be written with the segment of the codeword. In some cases, data is encoded to provide one or more codewords. Segments of one or more codewords are then placed in an interleaver (e.g., buffer) based on respective indicators (e.g., indices) corresponding to the codewords. The segments of the codeword are written from the interleaver to the partitions of the plurality of sectors to interleave the respective segments of the codeword across the plurality of sectors of the interleaver group. Thus, if one or two codeword segments are written to a poor quality sector or a degraded sector (e.g., due to write head drift), other codeword segments from other sectors of the media track can be used to recover and decode the original data of the codeword without using the missing codeword segments in the bad or degraded sectors.

In various aspects, segments of a codeword are spread or interleaved across multiple sectors of a magnetic storage medium. Data for one or more codewords may be received by the read/write channel and, for each codeword, a corresponding indicator (e.g., index) is selected or received. The indicator or index may indicate which partition of the plurality of sectors a segment of one of the codewords is to be written to. The data is then encoded to provide codewords, and the segments of the codewords are placed in an interleaver based on respective indicators corresponding to the codewords. The code word segments are written from the interleaver to a partition of a plurality of sectors of the magnetic storage medium. By doing so, the interleaved codeword segments can be spread across multiple sectors so that the loss of some sectors of the media track does not prevent the readback and decoding of the codeword.

The following discussion describes an operating environment, techniques that may be employed in the operating environment, and a system on a chip (SoC) in which components of the operating environment may be embodied. In the context of the present disclosure, reference is made to an operating environment by way of example only.

Operating environment

FIG. 1 illustrates an example operating environment 100 with a computing device 102 (e.g., a host device), the computing device 102 capable of storing data to and accessing data from various storage devices, such as magnetic media-based drives. Examples of computing device 102 may include laptop 104, desktop 106, and server 108, any of which may be configured as part of a storage network or cloud storage. Further examples of computing device 102 (not shown) may include a tablet, a set-top box, a data storage device, a wearable smart device, a television, a content streaming device, a high-definition multimedia interface (HDMI) media bar, a smart appliance, a home automation controller, a smart thermostat, an internet of things (IoT) device, a Mobile Internet Device (MID), a Network Attached Storage (NAS) drive, a converged storage system, a gaming console, an automotive entertainment device, an automotive computing system, an automotive control module (such as an engine or powertrain control module), and so forth.

In general, computing device 102 may provide, communicate, or store data for any suitable purpose, such as enabling the functionality of a particular type of device, providing a user interface, enabling network access, implementing a gaming application, playing back media, providing navigation, editing content, providing data storage, and so forth. Alternatively or additionally, computing device 102 can store various data such as databases, user data, multimedia, applications, operating systems, and the like. One or more computing devices 102 may be configured to provide remote data storage or services, such as cloud storage, archiving, backup, client services, record retention, and so forth.

In one embodiment, computing device 102 includes a processor 110 and a computer-readable storage medium 112. The processor 110 may be implemented as any suitable type or number of processors, whether single core or multi-core (e.g., an ARM or x86 processor core), for executing instructions or commands of an operating system or other programs of the computing device 102. The computer readable storage media 112(CRM 112) includes storage media 114 and media drives 116. The storage medium or system memory of computing device 102 may include any suitable type or combination of volatile or non-volatile memory. For example, the volatile memory of the computing device 102 may include various types of Random Access Memory (RAM), dynamic RAM (dram), static RAM (sram), and the like. The non-volatile memory may include Read Only Memory (ROM), electrically erasable programmable ROM (eeprom), or flash memory (e.g., NOR flash memory or NAND flash memory). These memories may store data associated with the operating system and/or applications of computing device 102, alone or in combination.

The media drive 116 of the computing device 102 may comprise one or more media drives or be implemented as part of a data storage system associated with the computing device 102. In this example, media drive 116 includes a hard disk drive 118(HDD 118) that is capable of storing data and is described with reference to various aspects of codeword interleaving. Alternatively or additionally, media drives 116 may be configured as any suitable type of data storage drive or system, such as a storage device, storage drive, storage array, storage volume, and the like. Although described with reference to the computing device 102, the media drive 116 may also be implemented separately as a standalone device or as part of a larger storage complex, such as a data center, server farm, or virtualized storage system (e.g., for cloud-based storage or services) in which various aspects of codeword interleaving are implemented.

Computing device 102 may also include I/O ports 120, a graphics processing unit (GPU, not shown), and a data interface 122. In general, the I/O ports 120 allow the computing device 102 to interact with other devices, peripherals, or users. For example, the I/O ports 120 may include or be coupled to a universal serial bus, a human interface device, an audio input, an audio output, and the like. The GPU processes and renders graphics-related data for the computing device 102, such as user interface elements of an operating system, application programs, and so forth. In some cases, the GPU accesses a portion of local memory to render graphics or includes dedicated memory (e.g., video RAM) for rendering graphics for the computing device 102.

The data interface 122 of the computing device 102 provides a connection to one or more networks and other devices connected to the networks. The data interface 122 may include a wired interface, such as an ethernet or fiber optic interface, for transferring data over a local network, an intranet, or the internet. Alternatively or additionally, the data interface 122 may include a wireless interface to facilitate communication over a wireless network, such as a wireless UAN, a wide area wireless network (e.g., a cellular network), and/or a Wireless Personal Area Network (WPAN). In accordance with one or more aspects of codeword interleaving for magnetic storage media, any data communicated through the I/O ports 120 or the data interface 122 can be written to or read from a memory system of the computing device 102.

Returning to media drive 116, computing device 102 may include a hard disk drive 118 as shown and/or other types of storage media on which codeword interleaving may be implemented. Although not shown, other configurations of the media drive 116 are also contemplated, such as Solid State Drives (SSDs), tape drives, optical media drives, HDD/SSD hybrid drives, and other storage systems that write data to a storage medium (e.g., a magnetic or optical storage medium). Alternatively or additionally, the computing device 102 may include a media drive array or a media drive aggregation device or host that functions as a plurality of media drives in which aspects of codeword interleaving may be implemented.

In this example, the disk drive 118 includes a head-disk assembly 124(HDA 124) and a drive control module 126 to implement or enable the functionality of the hard disk drive 118. In some cases, the drive control module 126 is implemented as a Printed Circuit Board Assembly (PCBA) using semiconductor devices, logic, or other circuitry. The HDA 124 includes one or more media disks 128 mounted on an integrated spindle and motor assembly 130. The spindle and motor assembly 130 may rotate the media disk 128 under (or over) a read/write head 132 coupled to a head assembly (not shown) of the HDA 124. The media disk 128 may be coated with a hard magnetic material (e.g., a particle surface or a thin fdm surface) and may be written to or read from a single side or both sides.

The read/write head 132 may be operatively coupled to a preamplifier/write module 134 (preamplifier/writer 134) of the HDA 124 that includes a preamplifier circuit for amplifying a write signal or a read signal of the read/write head 132. The preamplifier/writer 134 may receive or store current values that the head selects, amplifies, or senses useful for writing data to the magnetic media 202 or reading data from the magnetic media 202. The read/write head 132 and/or the preamplifier/writer 134 may be configured to function in concert or coordination with other components of the hard disk drive 118 to implement aspects of codeword interleaving.

As shown in FIG. 1, the example drive control module 126 of the hard disk drive 118 includes a storage medium controller 136, a servo control unit 138, and a read/write channel 140(R/W channel 140). In general, the storage media controller 136 enables the computing device 102 to access the contents of the magnetic storage media of the media drive 116, such as data for an operating system, application programs, or application programs or other services. The storage media controller 136 can also write data of the computing device 102 to and read data of the computing device 102 from the magnetic storage media of the media drive 116. In some cases, the drive control module 126 directs or uses the servo control unit 138 to control mechanical operations such as positioning the read/write head 132 via the HDA 124 and rotational speed control via the spindle and motor assembly 130.

The read/write channel 140 may include digital-to-analog and analog-to-digital paths for converting write data to write signals or read signals to read data, respectively. For example, the read/write channel 140 may process and encode signals when data, such as sectors of user data, is written to the media disk 128 as codeword segments. Alternatively or additionally, the read/write channel 140 may process and decode signals when reading encoded data, such as code word segments, from multiple sectors of the media disk 128. Such signal processing, encoding and/or decoding of the write signal or read signal may include signal conditioning, sampling, equalization, phase conditioning, detection, error correction, and the like. How the read/write channel 140 is implemented and used varies and is described throughout this disclosure. The drive control module 126 or its components may be implemented as one or more IC chips, a system on a chip, a system in a package, or a microprocessor equipped or implementing a hard disk drive controller. The drive control module 126 may also include drive electronics (not shown) and/or include various interfaces, such as a host bus interface, a storage medium interface, a spindle interface, or a preamplifier/writer interface.

In some aspects, the read/write channel 140 includes a sector interleaver 142 (interleaver 142), an interleaving index 144, and a buffer timing recovery circuit 146. Interleaver 142 is capable of segmenting or dividing user data or codewords to provide codeword segments, which may be interleaved or written across multiple sectors of a magnetic storage medium. In some cases, a sector or media track of a magnetic storage medium is partitioned into sector partitions where codeword segments are written. Alternatively or additionally, interleaver 142 may also read codeword segments from respective partitions of the plurality of sectors. Interleaver 142 may aggregate the segments of the codeword for subsequent decoding to provide user data.

The interleaving index 144 may indicate how to interleave various segments of codewords across multiple sectors (e.g., media tracks or recording track sectors). In some cases, the interleaving index 144 is used to load or place the codeword segments into the interleaver 142 or interleaving buffer. In other cases, the interleaving index 144 may be used to mask or block read gating (gate) to selectively read codeword segments from corresponding sector partitions. Buffer timing recovery circuit 146 may read and decode the codeword segments by timing interpolation to adjust the phase of the data samples read back from the sectors of the media track. As the size of the codeword segment is reduced, a short synchronization mark may be used to indicate the start or position of the codeword segment. Buffering the readback data samples in determining the phase of the synchronization sequence or preamble may allow for the use of short (e.g., less than 40 to 50 bit clock) synchronization marks in the codeword segments in some cases. How interleaver 142, interleaving index 144, and buffer timing recovery circuit 146 are implemented and used varies and is described throughout this disclosure.

FIG. 2 illustrates an example configuration of the hard disk drive 118 shown in FIG. 1 at 200. As shown in FIG. 2, in one embodiment, the HDA 124 of the hard disk drive 118 includes an integrated spindle and motor assembly 130 by which the media disks 128 of the magnetic media 202 are supported and/or operated upon. The arm 204 may manipulate, and thus position, the read/write head 132 (or multiple read/write heads 132) over a desired track 206 of the magnetic media 202 on the media disk 128. In general, read/write head 132 may include various numbers of head elements with combined or separate functions (e.g., dedicated R/W functions). For example, the read/write head 132 may include one or more readers (read heads/elements) and one writer (write heads/elements). In other cases, the read/write head 132 may include a dedicated write head (element) and one or more separate additional dedicated read heads (elements). Alternatively or additionally, although multiple arms 204 are shown in FIG. 2, the HDA 124 or spindle and motor assembly may be implemented with a single arm 204 or other suitable structure for positioning the read/write head 132. The HDA 124 and the drive control module 126 may be implemented separately, on separate substrates, and/or as separate PCBA's of media drives. Signals or data transmitted between the HDA 124 and the drive control module 126 may be carried by a flexible printed cable or other suitable connection structure (e.g., traces, connectors, bond wires, solder balls, etc.).

FIG. 2 also includes an illustration of an example sector 208 configured to store a codeword segment written to magnetic media 202 of the media disk 128. One or more read/write heads 132 may write user data or codewords to corresponding sectors 208 of tracks 206 (e.g., sectors of tracks 206) of media disks 128. For purposes of illustration, the top media disk 128 is shown to include tracks 206, e.g., after being written in sectors 208 of codewords by the read/write head 132. In general, during a write operation, the read/write head 132 may be driven by a write current provided by the preamplifier/writer 134, whereby an electrical signal is used to generate and/or transmit a magnetic field having an encoded bit polarity associated with the media disk 128. In response to application of a magnetic field or write field, read/write head 132 may form a plurality of magnets in the magnetic grains of sector 208 of media disk 128 that correspond to encoded codewords of data (e.g., user data). The HDA 124 of the hard disk drive 118 may be configured to perform write operations according to any suitable recording technique, such as Perpendicular Magnetic Recording (PMR), Shingled Magnetic Recording (SMR), Heat Assisted Magnetic Recording (HAMR), Microwave Assisted Magnetic Recording (MAMR), and the like.

As shown at 210, data sector 212 may generally correspond to sector 208 of magnetic media 202. In terms of codeword interleaving, a data sector 212 is encoded to provide a codeword 214 of encoded data. In some cases, the data is encoded by the read/write channel 140 with Error Correction Coding (ECC) to provide a codeword that reduces errors in data storage and transmission by introducing data redundancy into the data channel, e.g., in the form of additional bits for verifying the validity of the original data. Examples of error correction codes employed by read/write channel 140 or interleaver 142 include Reed-Solomon (RS), Bose, Ray-Chaudhuri, Hocquenghem (BCH), Low Density Parity Check (LDPC), Turbo codes, polarization codes, linear block codes, or any other suitable error correction code.

In this example, the codeword 214 is partitioned or divided into 16 segments of the codeword, which may also be referred to as codeword segments. Here, assume that the storage media controller 136 has assigned 16 sectors 208 of the media track 206 to an interleaver group 216 or a plurality of sectors to which segments of one or more codewords are spread. Alternatively or additionally, each sector 208 may be divided or partitioned into any suitable number of partitions 218-1 to 218-n, where n is any suitable integer. As shown in fig. 2, codeword 214 is divided into segments 220 written across 16 sectors of interleaver group 216. Although illustrated as being written to successive or contiguous sectors 208 of the interleaver bank 216, codeword segments may also be written to non-successive or non-contiguous sectors 208, e.g., spreading the codewords to a larger number of sectors 208.

In some aspects, the codeword segment 220 includes a preamble 222, a synchronization mark 224 (synchronization mark 224), segment data 226 (e.g., encoded user data), and a post-synchronization code 228. To save or reduce access overhead, codeword section 220 may be implemented with a preamble 222 and a synchronization mark 224 configured for use with buffer timing recovery circuit 146. In general, this enables the use of a shorter synchronization sequence in the preamble 222 and the synchronization mark 224 through buffering of data samples while performing at least a portion of the phase calculation on the synchronization sequence. By doing so, rather than delaying the reading of the synchronization mark until after the phase is determined when reading the synchronization sequence, the phase of the buffered data samples may be adjusted for synchronization mark identification after the phase is determined (e.g., in parallel). In some cases, this enables codeword segmentation 220 to be implemented with shorter synchronization sequences (e.g., less than 40 to 50 bit clocks) than those used for conventional codeword writing (e.g., approximately 100 bit clocks in length).

FIG. 3 illustrates generally at 300 an example configuration of a read/write channel and an interleaver that can write a segment of a codeword according to one or more aspects of codeword interleaving for a magnetic storage medium. In this example, an interleaver 142 is operatively coupled to the read/write channel 140, which also includes an instance of an interleaving index 144. Although shown as separate components or circuits in FIG. 3, the interleaver 142 and the interleaving index 144 may be integrated into one component, separated in other components of the hard disk drive 118, and/or integrated with other microelectronic or electronic circuitry of the read/write channel 140 or storage media controller 136. For example, in some aspects, storage medium controller 136 may include an interleaver 142 and interleave codeword segments for writing across sectors of a magnetic storage medium.

As shown in FIG. 3, the host interface 302 may provide data 212 (e.g., user data) or other information to the storage media controller 136 for writing to the magnetic media 202. In some aspects, storage medium controller 136 or interleaver 142 allocates a set of physical medium sectors 208 on which to write one or more interleaved codewords 214. For example, 16 consecutive sectors 208 may be allocated for writing 16 interleaved codewords 214. The storage medium controller 136 may provide the data 212 to the read/write channel 140 for writing to one or more codewords of sectors 208 of the media track 206. As described herein, data 212 of codeword 214 may also be referred to as a user data sector. Alternatively or additionally, storage medium controller 136 may encode data 212 and provide codewords 214 to read/write channel 140.

In some aspects, the storage medium controller 136 also provides information regarding which codeword interlaces will be used to interleave the codeword segments 220 and write them to the sectors 208 of the media track 206. For example, when 16 sectors are allocated or configured as an interleaver group, if four interleaved codewords 214 are sent to the read/write channel 140, the storage medium controller 136 may provide this information to the interleaver 142 as how to interleave the segments of the four codewords 214 to or across the 16 sectors 208 of the media track 206. This information may include an interleaving index 144 or indicator that specifies how to interleave the codewords 214 between sectors 208 of the interleaver group. The interleaving index 144 may comprise a predefined index or indicator, which may be known to one or both of the storage media controller 136 or the read/write channel 140, such that the interleaving index 144 may be referenced by a unique index identifier (e.g., 0, 1, 14, 15). In this example, the storage medium controller 136 includes an interleave index selector 304 (index selector 304) that may be configured to select a corresponding interleave index 144 for a codeword 214 sent to the read/write channel 140. In the context of this example, index selector 304 will select a different interleaving index for each of the four codewords 214 to interleave and write to the 16 sectors 208 of the interleaver group.

In general, the read/write channel 140 may receive a sector of data 212, encode the data 212 into a codeword 214, and provide the codeword 214 to the interleaver 142. In this example, interleaver 142 includes a configurable interleaver buffer 306, and interleaver 142 places segments of codewords 214 into configurable interleaver buffer 306 based on respective interleaving indices 144 corresponding to the codewords. Although illustrated here as a buffer, interleaver 142 may include any suitable data structure to receive interleaved codeword segments 220 placed by interleaver 142 for writing to corresponding sectors of an interleaver group.

The interleaver buffer 306 may be divided or include any suitable number of portions 308-1 to 308-m, where m is any suitable integer. In this example, the interleaver buffer 306 includes 16 portions, which may correspond to 16 codewords or 16 sectors of a media track. In other words, the interleaver 142 or the interleaver buffer 306 may be configured based on the size of the interleaver group (e.g., the allocated sectors) or the number of codewords to be written to the interleaver group. Alternatively or additionally, each portion 308 of interleaver buffer 306 may be divided into or include partitions 310-1 through 310-i, where i is any suitable integer. In some cases, the number of partitions 310 of the portion 308 corresponds to the number of time slots or partitions (e.g., sector partitions) included by one or more sectors 208 of the interleaver group. In this example, portions 308 of interleaver buffer 306 may each include 16 partitions 310 to buffer or store 16 codeword segments 220.

For example, assume that the storage medium controller 136 provides data 212 for four codewords 214 and four corresponding interleaving indices 144 for each codeword. In some aspects, the read/write channel 140 obtains a first sector of data 212, encodes the data 212 to provide a first codeword 214, and the interleaver 142 places segments 220 of the first codeword 214 into an interleaver buffer 306 based on a first interleaving index 144. The read/write channel 140 may then retrieve a second sector of the data 212, encode the data 212 to provide a second codeword 214, and the interleaver 142 places a segment 220 of the second codeword 214 into an interleaver buffer 306 based on the second interleaving index 144. The read/write channel 140 and the interleaver 142 may also repeat these operations for the third and fourth codewords 214 to interleave the segments of the four codewords in the interleaving buffer 306. As shown in fig. 3, a first portion 308-1 of the interleaver buffer 306 may include codeword segments 220-1 through 220-4 that are placed in partitions or time slots of the portion 308 based on the interleaving index 144. Thus, based on the interleaving index 144 received with the data 212 of the codeword 214, respective segments of the four codewords 214 may be placed in or across the 16 portions 308 of the interleaving buffer 306.

To write the codeword segment 220 from the interleaver 142, the storage medium controller 136 may provide a write gating signal 312 (write gating 312 or write signal) to the read/write channel 140. The storage media controller 136 may provide a write gate 312 for each sector 208 of the media track 206 to indicate the start or location of the physical sector to the read/write channel 140. Alternatively or additionally, the read/write channel 140 or the interleaver 142 may determine a location index of the codeword 214 for writing the codeword segments to the corresponding partitions of sectors of the interleaver group. In some cases, the read/write channel 140 or the interleaver 142 determines to write one of the segments of the codeword to one of the partitions of the sector based on the location index and then writes the segment based on the write signal and the location index. In other cases, the read/write channel 140 or the interleaver 142 determines that one of the segments of the codeword is not to be written to one of the partitions of sectors based on the position index and blocks the write signal to prevent writing of the partition of sectors.

In some aspects, the read/write channel 140 may manage or block the write gate 312 provided by the storage media controller 136 to generate an interleaved write gate signal 314 for the preamplifier 134 of the media drive (interleaved write gate 314). The read/write channel 140 or interleaver 142 may also provide the codeword segments 220 from the interleaver buffer 306 to the preamplifier 134 as preamplifier data 316, which may include signals corresponding to data patterns of the codeword segments. Based on the interleaved write gating 314 and the preamplifier data 316, the preamplifier 134 generates or provides a write current 318 to the write head 132 of the media drive to write the interleaved codeword segments 220 to the sectors 208 of the magnetic media 202.

The write current 318 generated by the preamplifier 134 may then be provided to the corresponding write head 132 of the magnetic medium 202. Based on the write current 318, the write head 132 may selectively generate a magnetic write field 320 to form magnetic in the sectors 208 of the media track 206 corresponding to the interleaved codeword segments 220. Alternatively or additionally, the storage medium controller 136 may control the write gate 312 or the interleaved write gate 314 for each codeword segment that is written to the magnetic medium 202. To this end, read/write channel 140 may provide information regarding the length of each codeword segment 220 to be written from interleaver 142. As such, it may be advantageous to allow the read/write channel 140 to control the writing of interleaved codeword segments 220 because the writing process is not halted or delayed when writing codeword segments 220 to contiguous partitions of sectors 208 of a media track 206.

In some aspects, the storage medium controller 136 may provide one or more codewords belonging to the same interleaver group to the read/write channel 140. The storage medium controller 136 may also provide, for example, along with the codeword, an index for each codeword indicating where the codeword belongs in the set of interleavers and/or how to interleave segments of the codeword with corresponding segments of other codewords in the set of interleavers. For example, in a bank of 16 (sectors or codewords) interleavers, each codeword provided by storage medium controller 136 to read/write channel 140 may be given a unique index (e.g., 0, 1, 14, 15) by index selector 304 to indicate to read/write channel 140 where (e.g., which interleaving mode) to fill interleaver 142 with the codeword. The unique index may also be used for the read/write channel 140 to generate a position index for where to write a segment of a codeword into one or more sectors of an interleaver group.

The read/write channel 140 may place or insert the codeword into the interleaver 142 based on the interleaving index 144 (or unique index) provided by the index selector 304 for the codeword. The storage media controller 136 may generate a write gate 312 for each physical sector 206 on a media track 206 within an interleaver group. In response to the write gating 312, the read/write channel 140 may determine whether to write the codeword segment to the partition of the sector based on the location index. When there are no codeword segments to write, the read/write channel 140 may block the write gate 312 until the next sector partition to prevent overwriting of existing data in the sector. At the next sector partition, the read/write channel 140 again checks to see if there are any codeword segments to write. When there are codewords to be written to the partition of sectors, the read/write channel 140 may unlock the write gates 312 to write the codeword segments with the preamble, sync mark, and/or postamble. The read/write channel 140 or the interleaver 142 may continue to process the codeword fragments in a similar manner until the writing of the set of interleavers is complete.

FIG. 4 illustrates generally at 400 an example configuration of a read/write channel and timing recovery circuit that can read codeword segments according to one or more aspects of codeword interleaving for a magnetic storage medium. In this example, an instance of the buffer timing recovery circuit 146 is operatively coupled with the read/write channel 140 of the media storage drive. Although shown as separate components or circuits in FIG. 4, read/write channel 140 and buffer timing recovery circuit 146 may be integrated as one component, separate from other components of hard disk drive 118, and/or integrated with preamplifier 134, storage media controller 136, and/or other microelectronic circuits or electronics of read/write channel 140.

In this example, read/write channel 140 and other components are described in the context of reading codeword segments 220 from a sector of magnetic storage media 202 (magnetic media 202). For example, the host system or computing device 102 may issue read commands for data stored as interleaved codeword segments spread across multiple sectors 208 of the media disk 128. In general, as the media disk 128 rotates under the read head 132, the read head 132 senses the magnetic field 402 stored to the codeword section 220 of the magnetic media 202, which induces an analog signal 404 at the read head 132. The preamplifier 134 (preamplifier 134) amplifies the analog signal 404 received from the read head 132 and provides an amplified signal 406 to the read/write channel 140.

In various aspects, the read/write channel 140 conditions and samples the amplified signal 406 (e.g., a readback continuous-time signal) provided by the preamplifier 134 to read back the codeword segments 220. To facilitate reading of codeword segments 220 independently of other codeword segments of a sector, each codeword segment 220 may include a synchronization sequence. By doing so, the readback circuitry of the read/write channel 140 can identify the correct start of a codeword segment within a sector or a partition of a sector. In some aspects, the read/write channel 140 uses a buffer timing recovery circuit 146 to properly synchronize with each codeword segment during readback.

In this example, the buffer timing recovery circuit 146 of the read/write channel 140 includes a first-in-first-out (FIFO) buffer 408, a phase module 410, and a digital timing interpolation filter 412. Generally, through the buffering timing recovery circuit 146 and digital timing recovery (which may also be referred to as interpolation timing recovery), data samples provided by the amplified signal 406 of the read/write channel 140 may be buffered in the FIFO buffer 408 at least partially in parallel with the phase of the synchronization sequence calculated by the phase module 410 based on the read signal (e.g., the amplified signal 406). In some aspects, the data on the media disc is written as a preamble, followed by an address mark, and then encoded user data. The preamble, address mark and encoded user data may be received by the read/write channel as amplified signal 406. Phase module 410 may use the preamble portion of the read signal to calculate a phase offset to initialize the correct phase in the digital timing interpolation filter. When the phase module calculates the phase, the remaining read signals may be buffered in the FIFO buffer 408. When calculating the phase, the data in the FIFO buffer 408 is then passed through a digital interpolation filter 412 for phase adjustment or correction. Digital timing interpolation filter 412 may then adjust the phase of the data samples based on the phase determined by phase module 410 to provide phase adjusted data samples 414. By doing so, the use of long synchronization sequences can be avoided, since there is no need to continuously receive synchronization sequences when calculating the phase.

The read/write channel 140 may identify the synchronization mark of the codeword segment in the phase adjusted samples 414 and acquire a timing lock and/or lock control loop to read back the codeword segment 220. In some cases, read/write channel 140 aggregates the segments of codeword 214 and provides codeword 214 to storage media controller 136. In other cases, the read/write channel 140 may decode the codewords 214 and provide the data 212 to the storage medium controller 136. Thus, the read/write channel 140 may convert the phase adjusted data samples or other sampled signals to digital signals and recover the decoded data 212 that is provided to the storage media controller 136. Although not shown, the read/write channel 140 may include any suitable combination of equalizer, detector, adaptation, or gain modules for detecting, equalizing, and/or decoding the data 212 from the signal received by the preamplifier 134.

In some aspects, the storage medium controller 136 enables read back of a segment 220 of one or more codewords by providing an interleaving index 144 for the codeword to be read back. For example, for a given group of codeword interleavers or subset of the group, the index selector 304 of the storage medium controller 136 may provide an interleaving index (e.g., 0, 1, 2, 14, 15) of the codewords of the group of interleavers to read back. In some cases, the read/write channel 140 may generate corresponding position indices (e.g., physical positions in a sector) for those segments 220 of the codeword to be read back based on the interleaving indices.

To facilitate read back of the codeword segments, storage medium controller 136 may also generate a read gate signal (read gate 416 or read signal) that indicates the beginning or location of one or more physical sectors on the medium. In response to the read gating 416, the read/write channel 140 may determine whether to read a codeword segment from a partition of sectors based on the location index. When there are no codeword segments to read, the read/write channel 140 may block the read gate 416 until the next sector partition to prevent reading of unintended codeword segments. At the next sector partition, the read/write channel 140 may again check to see if any codeword fragments are to be read. When there is a codeword to read to a partition of sectors, the read/write channel 140 may unlock the read gate 416 to read a codeword segment, which may also include a preamble, a synchronization mark, and/or a postamble. The read/write channel 140 or the interleaver 142 may continue to process the codeword fragments in a similar manner until the reading of the group or subset of interleavers is complete.

Techniques for codeword interleaving for magnetic storage media

The following discussion describes techniques for codeword interleaving for magnetic storage media that may improve data storage reliability or enable data access across degenerate media sectors. The techniques may be implemented using any of the environments and entities described herein, such as the read/write channel 140, the interleaver 142, the interleaving index 144, or the buffer timing recovery circuit 146. These techniques include the methods illustrated in fig. 5 and 7-9, each of which is shown as a set of operations performed by one or more entities.

These methods are not necessarily limited to the order of operations shown in the figures. Rather, any of the operations may be repeated, skipped, substituted, or reordered to achieve the various aspects described herein. Further, the methods may be used in whole or in part in conjunction with each other, whether performed by the same entity, separate entities, or any combination thereof. For example, aspects of the described methods may be combined to implement codeword interleaving of magnetic media for writing and/or reading one or more interleaved codewords across multiple sectors of a magnetic storage medium. In portions of the following discussion, reference will be made to the entities of operating environment 100 of FIG. 1, FIG. 2, FIG. 3, and/or FIG. 4. Such references should not be taken as limiting the described aspects to the operating environment 100, entities, configurations or implementations, but rather as illustrations of one of a variety of examples. Alternatively or additionally, the operations of these methods may also be implemented by or with entities described with reference to the system-on-chip of fig. 10 and/or the storage medium controller of fig. 11.

FIG. 5 depicts an example method 500 for implementing codeword interleaving for a magnetic storage medium, including operations performed by or with read/write channel 140, interleaver 142, and/or interleaving index 144.

At 502, data for one or more codewords is received. The data may correspond to codewords to be written to or written across corresponding sectors of a media track or magnetic storage medium. In some cases, the data is uncoded data or user data received from a host or storage media controller. The data of a codeword may also refer to or correspond to a sector of user data or an amount of data to be written to a sector of a media track. In other words, a "sector" of user data may include an amount of user data corresponding to the approximate size of a media track or physical sector of the recording medium. For example, assume that the storage medium controller has allocated six sectors of a medium track to an interleaver group and has received four sectors worth of user data from the host. The read/write channel may receive four sectors of user data from the host or data for encoding four codewords to interleave across six sectors of an interleaver group. Alternatively, data for one codeword may be received, thereby implementing the method 500 to write a segment of one codeword across sectors of an interleaver bank.

At 504, for each of the one or more codewords, a respective index is selected that indicates which sector partitions of the segment of the codeword are to be written. The index may comprise an interleaved index, which may be predefined or referenced by a unique index (e.g., 0, 1,.. 14, 15). In some cases, an indication of the respective index is received, such that the respective index can be selected for the codeword. In the context of this example, the read/write channel may receive unique references to four interleaved indices (e.g., 0, 1, 3, and 4) for four sectors (or codewords) of user data.

At 506, data of one of the codewords is encoded to provide a codeword of encoded data for writing to the magnetic storage medium. In some cases, the data may be encoded using Error Correction Coding (ECC) to provide a codeword. The ECC may include one of: Reed-Solomon (RS), Bose, Ray-Chaudhuri, Hocquenghem (BCH), Low Density Parity Check (LDPC), Turbo code, polar code, or another error correcting code. By way of example, consider fig. 6, which illustrates an example of codewords and media tracks for sector partitions to which interleaved codeword segments are written in accordance with one or more aspects at 600. Continuing the ongoing example, the read/write channel encodes data of a first sector of user data to provide a first codeword 214-1. The encoding may also be repeated to provide second, third and fourth codewords 214-1, 214-2 and 214-3 as shown in fig. 6.

At 508, the segments of the codeword are placed into an interleaver based on the respective indices corresponding to the codeword. The code words may be divided or split into approximately equal sized segments, or segments corresponding to the size of the sector partition to which the segments are to be written. In some cases, the size of a segment is configured based on the size of the interleaver group (e.g., the number of sectors) and the codeword density of the interleaver group (e.g., the total number of codewords to be written across the sectors of the interleaver group).

Optionally, from operation 508, the method 500 may return to operation 506 to encode the data with another or next one of the one or more codewords. By doing so, operations 506 and/or 508 may be repeated until each of one or more codewords is encoded and a corresponding segment of each codeword is placed into an interleaver. In the context of the present example shown in fig. 6, the interleaver places segments 220 of codewords 214 into corresponding time slots of an interleaver buffer partition 310. As described herein, an interleaver or read/write channel may place codeword segments 220-1 through 220-4 into corresponding time slots of interleaver buffer partition 310 based on an interleaving index associated with or corresponding to each of codewords 214.

At 510, a write signal is received indicating the start of a sector or sector partition. In some cases, the writing signal and location index of the codeword segment may be used to determine which sector partitions write the codeword segment. Optionally, at 512, the write signal may be blocked for sectors or partitions to which the codeword segment is not written.

At 514, the codeword segments are written to corresponding partitions of the sectors of the magnetic storage medium. Based on the position index of the segments of the codeword, the segments can be written from the interleaver or interleaver buffer when the write head encounters a sector of the interleaver group. The respective segments of one or more codewords may be written sequentially or out of sequence. For example, an interleaver buffer or interleaver block may be filled with respective interleaved segments of a plurality of codewords (e.g., codewords 214-1, 214-2. A user, storage medium controller, or read/write channel may write less than all of the interleaved codewords and/or in any suitable order. In some cases, a user may write codewords 214-9 and 214-12 during a first write operation or sequence. The user may then proceed to write other codewords in any suitable order and/or in any number of write operations or sequences. In other words, the first received or filled codeword (e.g., 214-1) may not be the first codeword written to a segment of a corresponding sector partition in the magnetic storage medium. In some cases, the codeword fragments may be written to all partitions or slots of the physical sector. In other cases, the codeword segments may be written to a subset of partitions or slots of the physical sector.

To summarize the present example, four codeword segments 220-1 to 220-4 are written from the interleaver into a partition or slot of the second sector 208 of the interleaver group. Here, note that the read/write channel may block the write signal at 602 and 604, where no codeword segments are written during interleaved write operations. At 606 of FIG. 6, assuming the storage medium controller provides data for the two additional codewords 214-5 and 214-6, the read/write channel and interleaver may perform subsequent interleaved write operations to write the codeword segments 220-5 and 220-6 to other time slots or partitions of the interleaver group sectors. To prevent previously written codeword segments 220-1 through 220-4 from being overwritten, the read/write channel may block the write signal when these sector partitions or slots of the interleaver group are encountered.

FIG. 7 depicts an example method 700 for writing codeword segments from an interleaver to a corresponding sector partition of a magnetic storage medium. The operations of method 700 may be performed by or with read/write channel 140, interleaver 142, and/or interleaving index 144. Alternatively, one codeword may be received such that method 700 is implemented to write a segment of the one codeword across sectors of the interleaver bank.

At 702, one or more codewords are received. One or more codewords are to be written to a set of sectors of the magnetic storage medium. In some cases, the codeword is encoded data corresponding to a sector of user data. The codeword may be received from a storage medium controller. The size of the codeword may correspond to the amount of data in a user data sector or the amount of data written to a media track sector.

At 704, for each of the codewords, a respective index is received that indicates which sector partitions the segment of the codeword is to be written to. The indices may include interleaved indices, which may be predefined or referenced by unique indices (e.g., 0, 1,... 14, 15). In some cases, an indication of the respective index is received, such that the respective index can be selected for the codeword.

At 706, the segments of the codeword are placed into an interleaver based on the respective indices corresponding to the codeword. The code words may be divided or split into approximately the same size segments or segments corresponding to the size of the sector partition (or sector slot) to which the segments are to be written. In some cases, the size of a segment (e.g., 1/16 for a sector) is configured based on the size of the interleaver group (e.g., sector (16)) and the codeword density of the interleaver group, e.g., the total number of codewords (16) to be written across sectors of the interleaver group.

At 708, a location index (or indicator) is generated for the codeword for the location where the segment of the codeword is to be written to the sector partition of the magnetic storage medium. In some cases, position indices are generated for segments of the codeword based on an interleaving index corresponding to the codeword. Alternatively or additionally, the position index may be determined based on the position of the codeword within the interleaver or interleaver buffer.

Optionally, from operation 708, the method 700 may return to operation 706 to place a segment of another codeword into the interleaver and/or determine a position index of the segment of the codeword. By doing so, operations 706 and/or 708 may be repeated until each of one or more codewords is encoded, indexed via physical location, and a corresponding segment of the codeword is placed into the interleaver.

At 710, a write signal is received indicating a start (or location) of a sector. A write signal may be received from the storage medium controller to indicate the start of a sector or the start of each physical sector of a media track. At 712, a determination is made as to whether to write the segment of the codeword to the partition of the sector. In some cases, the determination is made based on a location index of the codeword that indicates a location at which the segment of the codeword is physically written to a corresponding sector partition or sector slot on the media track.

Optionally, at 714, the write signal is blocked in response to determining that the codeword segment is not to be written to the sector partition. This may prevent overwriting of codeword segments residing on sector partitions. Optionally, at 716, the codeword segments are written from the interleaver to the partitions of the sector based on the write signal and/or the location index of the codeword segments.

FIG. 8 depicts an example method 800 for reading interleaved codeword segments from corresponding sector partitions of a magnetic storage medium. The operations of method 800 may be performed by or with read/write channel 140, interleaver 142, interleaving index 144, and/or buffer timing recovery circuit 146.

At 802, indices of a plurality of interleaved codeword segments to be read are received. The plurality of interleaved codeword segments are to be read from respective partitions of a plurality of sectors of a magnetic storage medium. The index may comprise an interleaved index, which may be predefined or referenced by a unique index (e.g., 0, 1, 14, 15). In some cases, an indication of the respective index is received, thereby enabling selection of an index for a segment of a codeword to be read. For example, for a given interleaver group of codewords or for a subset of codewords of the group, the index selector of the storage medium controller may provide an interleaving index for the codewords of the interleaver group to be read back. Alternatively, the index of one codeword may be received, and the method 800 may be implemented to read a segment of the one codeword from a sector of an interleaver group.

At 804, the location of the corresponding partition with interleaved codeword segments within the plurality of sectors is determined. A location may be determined for a plurality of sectors of a codeword based on the received index. In some cases, the position index of the segment of the codeword is determined based on an interleaving index received from the storage medium controller.

At 806, a read signal is received indicating a start of one of a plurality of sectors from which one of the interleaved codeword segments is read. A read signal may be received from the storage medium controller to indicate the start of a sector or the start of each physical sector of a media track. In response to the read signal, the read/write channel may determine whether to read the codeword segment from the partition of sectors based on the location index.

Optionally, at 808, the read signal is blocked for other sector partitions of the sector from which the interleaved codeword segment is not read. When there are no codeword segments to read, the read/write channel may block the read signal (e.g., read gating) until the next sector partition to prevent reading of unintended codeword segments. At the next sector partition, the read/write channel may again check to see if there are any codeword segments to read.

Optionally, at 810, the interleaved codeword segments are read from the sector partitions based on the read signal and the determined locations for the codeword segments. When a codeword is to be read to a partition of sectors, the read/write channel may unblock the read signal to read a codeword segment, which may include a preamble, a synchronization mark, and/or a postamble. Optionally, from operation 810, the method 800 may return to operation 806 to read additional codeword segments from sectors of the interleaver group. By doing so, the read/write channel 140 or the interleaver 142 may continue to process the codeword fragments in a similar manner until the reading of the group or subset of the group of interleavers is complete.

FIG. 9 depicts an example method 900 for recovering segments of read codewords from sector partitions using buffer timing. The operations of method 900 may be performed by or with read/write channel 140, interleaver 142, interleaving index 144, and/or buffer timing recovery circuit 146.

At 902, data samples are read from a sector partition of a magnetic storage medium based on a read signal and an interleaving index. Sector partitions may store or include segments of codewords that encode data. In some cases, segments of the codeword are written to sector partitions based on the interleaving index, which may enable reading of the segments by using the same interleaving index.

At 904, the data samples are buffered in a first-in-first-out (FIFO) manner. During phase determination or phase calculation of the synchronization sequence of the segments of the code word or sector partition, the data samples may be buffered in parallel or at least in part. At 906, the phase of the synchronization sequence of the codeword segment is determined. The phase of the synchronization sequence may be determined or calculated in parallel or at least partially while buffering the data samples.

At 908, the phase of the data samples is adjusted to provide phase adjusted or phase corrected data samples for the codeword segments. This may enable the sync mark of the segment to be found without using a conventional long sync sequence (e.g., such that the phase must be calculated before the sync mark is encountered). At 910, a synchronization mark in the phase adjusted data sample is identified that indicates the start of the segment of the codeword (or a position in the data sample). For example, a readback circuit of the read/write channel may identify the correct start of a codeword segment within a sector or a partition of sectors.

At 912, segments of the codeword are read from the sector partitions based on (or using) the synchronization marks. For example, a synchronization mark may be used to identify and extract a codeword from a data sample read from a sector of a media track. The segments of one or more codewords may be read from respective partitions of consecutive sectors of the interleaver group. Alternatively, segments of one or more codewords may be read from respective partitions of non-contiguous sectors of the set of interleavers. At 914, at least the segments of the codeword read from the sector partitions are decoded to provide uncoded data (e.g., user data). In some cases, the segment is combined with other segments of the codeword for decoding to provide data for the codeword.

System on chip

Fig. 10 illustrates an example system on a chip (SoC)1000 that can implement various aspects of codeword interleaving for magnetic storage media. SoC 1000 may be implemented in any suitable device, such as a smartphone, netbook, tablet, access point, network attached storage, camera, smart device, printer, set-top box, server, Solid State Drive (SSD), tape drive, Hard Disk Drive (HDD), storage drive array, storage module, storage media controller, storage media interface, head disk assembly, magnetic media preamplifier, automated computing system, or any other suitable type of device (e.g., other devices described herein). Although described with reference to a SoC, the entities of fig. 10 may also be implemented as other types of integrated circuits or embedded systems, such as an Application Specific Integrated Circuit (ASIC), a memory controller, a communication controller, an Application Specific Standard Product (ASSP), a Digital Signal Processor (DSP), a programmable SoC (psoc), a System In Package (SiP), or a Field Programmable Gate Array (FPGA).

SoC 1000 may be integrated with electronic circuitry, microprocessors, memory, input-output (I/O) control logic, communication interfaces, firmware, and/or software for providing the functionality of a computing device or magnetic storage system, such as any device or component (e.g., hard disk drive) described herein. SoC 1000 may also include an integrated data bus or interconnect fabric (not shown) that couples the various components of the SoC for data communication or routing between the components. The integrated data bus, interconnect fabric, or other components of SoC 1000 may be exposed or accessible through an external port, parallel data interface, serial data interface, peripheral component interface, or any other suitable data interface. For example, components of SoC 1000 may access or control an external storage medium or magnetic write circuit through an external interface or off-chip data interface.

In this example, SoC 1000 is shown with various components including input-output (I/O) control logic 1002 and a hardware-based processor 1004 (processor 1004), e.g., a microprocessor, processor core, application processor, DSP, etc. SoC 1000 also includes memory 1006, which may include any type and/or combination of RAM, SRAM, DRAM, non-volatile memory, ROM, one-time programmable (OTP) memory, multiple-time programmable (MTP) memory, flash memory, and/or other suitable electronic data storage. In some aspects, the processor 1004 and code stored on the memory 1006 (e.g., firmware) are implemented as part of a storage medium controller or storage medium interface to provide various functions associated with codeword interleaving for magnetic storage media (e.g., read/write channel functions). In the context of the present disclosure, the memory 1006 stores data, code, instructions or other information via non-transitory signals and does not include carrier waves or transitory signals. Alternatively or additionally, SoC 1000 may include a data interface (not shown) for accessing additional or scalable off-chip storage media, such as magnetic memory or solid state memory (e.g., flash memory or NAND memory).

SoC 1000 may also include firmware 1008, applications, programs, software, and/or an operating system, which may be embodied as processor-executable instructions held on memory 1006 for execution by processor 1004 to implement functions of SoC 1000. SoC 1000 may also include other communication interfaces, such as a transceiver interface for controlling or communicating with local on-chip (not shown) or off-chip communication transceiver components. Alternatively or additionally, the transceiver interface may also include or implement a signal interface to communicate Radio Frequency (RF), Intermediate Frequency (IF), or baseband frequency signals off-chip to facilitate wired or wireless communication through a transceiver, physical layer transceiver (PHY), or Media Access Controller (MAC) coupled to SoC 1000. For example, SoC 1000 can include a transceiver interface configured to enable storage over a wired or wireless network to provide a Network Attached Storage (NAS) device with codeword interleaving features.

In this example, SoC 1000 also includes a read/write channel 140, an interleaver 142, an interleaving index 144, and a buffer timing recovery circuit 146, which may be implemented alone or in combination with a storage component or data interface as shown. Alternatively or additionally, SoC 1000 may include an interface to a preamplifier, storage media controller, and/or spindle/motor components of a magnetic media disk drive. As described herein, the interleaver 142 may divide sectors, segment codewords, select interleaving indices (for write or read operations), interleave codeword segments for writing to a storage medium, aggregate codeword segments read from a storage medium, or any combination of the like to implement codeword interleaving aspects of a magnetic storage medium. Any of these entities may be embodied as different or combined components, as described with reference to various aspects presented herein. Examples of such components and/or entities or corresponding functionality are described with reference to corresponding components or entities of environment 100 of fig. 1 or corresponding configurations shown in fig. 2, 3, and/or 4. Interleaver 142 may be implemented, in whole or in part, as digital logic, circuitry, and/or processor-executable instructions retained by memory 1006 and executed by processor 1004 to implement various aspects or features of codeword interleaving for magnetic storage media.

The interleaver 142 may be implemented independently or in combination with any suitable components or circuits to implement aspects described herein. For example, the interleaver may be implemented as part of a DSP, a processor/memory bridge, an I/O bridge, a graphics processing unit, a memory controller, an Arithmetic Logic Unit (ALU), or the like. Interleaver 142 may also be provided integrally with other entities of SoC 1000, such as integrated with processor 1004, memory 1006, storage medium interface, or firmware 1008 of SoC 1000. Alternatively or additionally, interleaver 142 and/or other components of SoC 1000 may be implemented as hardware, firmware, fixed logic circuitry, or any combination thereof.

As another example, consider FIG. 11, which illustrates an example storage medium controller 1100 in accordance with one or more aspects of codeword interleaving for a magnetic storage medium. In general, the storage media controller 1100 enables the computing device 102 to access the contents of the magnetic storage media, such as an operating system, application programs, or data for application programs or other services. The storage media controller may also write data for the computing device 102 to and read data from a magnetic storage medium associated with the controller.

In various aspects, the storage media controller 1100, or any combination of its components, may be implemented as a storage drive controller (e.g., a HDD controller or HDD chipset), a storage media controller, a NAS controller, a storage media interface, a storage media endpoint, a storage media target, or a storage aggregation controller for magnetic storage media, solid state storage media, etc. (e.g., a hybrid SSD/HDD storage system). In some cases, the storage media controller 1100 is similar to or implemented with components of the SoC 1000 described with reference to fig. 10. In other words, an instance of SoC 1000 can be configured as a storage media controller, such as storage media controller 1100, to manage magnetic storage media. In this example, storage medium controller 1100 includes input-output (I/O) control logic 1102 and a processor 1104, such as a microprocessor, microcontroller, processor core, application processor, DSP, or the like. The storage media controller also includes a host interface 1106 (e.g., SATA, PCIe, NVMe, or Fabric interface) and a storage media interface 1108 (e.g., a magnetic media interface or Head Disk Assembly (HDA) interface) that are capable of accessing the host system (or architecture) and the storage media, respectively. In this example, the storage medium interface includes separate instances of a spindle interface 1110 and a preamplifier interface 1112 to enable communication with a head-disk assembly of the media drive.

In some aspects, the storage medium controller 1100 implements aspects of codeword interleaving for magnetic storage media when managing or enabling access to a storage medium coupled to the storage medium interface 1108. The storage media controller 1100 may provide a storage interface to a host system through a host interface 1106 through which storage access commands, such as data written to a magnetic storage medium, are received from the host system. As shown in FIG. 11, the storage medium controller 1100 may also include a servo control unit 138, a read/write channel 140, and an interleaver 142 for implementation aspects of codeword interleaving. In this example, the storage medium controller also includes an interleave index 144 and an index selector 304, which may be implemented or accessed by an interleaver 142 as described herein. Although not shown, the read/write channel 140 or interleaver 142 may also include a buffer timing recovery circuit 146 for reading back codeword segments from sector partitions. The servo control unit 138 is operably coupled to the spindle interface 1110 and may provide spindle or voice coil control for the magnetic media drive. In some aspects, the firmware or logic of processor 1104 and storage medium controller 1100 is implemented to provide interleaver 142 and/or various data writing or processing functions associated with codeword interleaving of magnetic storage media.

The interleaver 142 of the storage medium controller 1100 may be implemented alone as shown or in combination with the processor 1104, the read/write channel 140, or the storage medium interface 1108. According to various aspects, interleaver 142 may divide sectors, segment codewords, interleave codeword segments for writing to a storage medium, aggregate codeword segments read from a storage medium, or any combination of the like. Examples of such components and/or entities or corresponding functionality are described with reference to corresponding components or entities of environment 100 of fig. 1 or corresponding configurations shown in fig. 2, 3, and/or 4. Interleaver 142 may be implemented, in whole or in part, as processor-executable instructions retained by a memory of a controller and executed by processor 1104 to implement various aspects and/or features of codeword interleaving for magnetic storage media.

Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific examples, features, or acts described herein, including the order of their execution.

In the following, various examples are described:

example 1: a method for improving the reliability of data written to a magnetic storage medium, comprising:

Receiving data to be written to one or more codewords of a set of multiple sectors of the magnetic storage medium;

selecting for each of said one or more codewords a respective indicator indicating within which partitions of said plurality of sectors a segment of said codeword is to be written;

encoding the data to provide one or more codewords of encoded data;

placing segments of the one or more codewords into an interleaver based on a respective indicator corresponding to each of the codewords; and

writing, from the interleaver, a segment of each of the one or more codewords to a partition of at least some of the plurality of sectors to interleave the respective segment of the codeword across the set of the plurality of sectors of the magnetic storage medium.

Example 2: the method of example 1 or any of the following examples, wherein the respective indicator corresponding to each codeword comprises a predefined index, and the method further comprises: receiving an indication from a storage medium controller as to which predefined index corresponds to at least one of the codewords.

Example 3: the method of any of the above or below examples, further comprising: for at least one of the codewords, a location index is determined at which to write the segment of the codeword to the respective partition of the at least some of the plurality of sectors.

Example 4: the method of any of the above or below examples, further comprising:

receiving a write signal indicating a start of one of the plurality of sectors from a storage medium controller;

determining, based on the position index of the at least one codeword, that one of the segments of the codeword is to be written to one of the partitions of the sector; and

based on the write signal and the location index, one of the segments of the codeword is written to a partition of the sector that received the write signal.

Example 5: the method of any of the above or below examples, further comprising:

receiving a write signal indicating a start of one of the plurality of sectors from a storage medium controller;

determining, based on the position index of the at least one codeword, that one of the segments of the codeword is not written to one of the partitions of the sector; and

based on the position index of the codeword, blocking the write signal to prevent writing to a partition of sectors to which one of the segments of the codeword is not written.

Example 6: the method of any of the above or below examples, wherein:

the set of multiple sectors of the magnetic storage medium comprises contiguous sectors of the magnetic storage medium; and

Writing the segments of the one or more codewords into a partition comprises: writing segments of at least one of the codewords to non-contiguous sectors of the plurality of sectors of the magnetic storage medium.

Example 7: the method of any of the above or below examples, wherein:

the set of multiple sectors of the magnetic storage medium comprises contiguous sectors of the magnetic storage medium; and

writing the segments of the one or more codewords into a partition comprises: writing a segment of at least one of the codewords to a contiguous sector of the plurality of sectors of the magnetic storage medium.

Example 8: the method of any preceding example, wherein writing respective segments of the one or more codewords to partitions of the plurality of sectors comprises: a segment of at least one of the codewords is written to each sector of the set of multiple sectors of the magnetic storage medium.

Example 9: an apparatus for improved data storage reliability, comprising:

an interface to receive data from a host;

a disk of magnetic storage media arranged in sectors to store the data;

an interleaver buffer configured to buffer segments of codewords for writing to sectors of the magnetic storage medium; and

An interleaver configured to:

receiving, from a host device, data corresponding to one or more codewords to be stored by a set of multiple sectors of the magnetic storage medium;

selecting for each of said one or more codewords a respective indicator indicating within which partitions of said plurality of sectors a segment of said codeword is to be written;

encoding data of the one or more codewords to provide one or more codewords of encoded data;

placing segments of the one or more codewords into the interleaver buffer based on respective indicators corresponding to each of the codewords; and

writing segments of the one or more codewords from the interleaving buffer to partitions of at least some of the plurality of sectors to interleave the respective segments of the codewords across the set of the plurality of sectors of the magnetic storage medium.

Example 10: the apparatus of example 9 or any of the following examples, wherein the interleaver is further configured to: for at least one of the codewords, a location index is determined at which to write a segment of the codeword to a respective one of the partitions of the plurality of sectors.

Example 11: the apparatus of example 10, further comprising:

A storage medium controller configured to generate a write signal indicating a start of one of the plurality of sectors, and wherein:

the interleaver is further configured to:

determining, based on the position index of the at least one codeword, one of the segments of the codeword to be written to one of the partitions of the sector; and

based on the write signal and the location index, writing one of the segments of the at least one codeword to a partition of a sector that received the write signal.

Example 12: the apparatus of any of the above or below examples, further comprising:

a storage medium controller configured to generate a write signal indicating a start of one of the plurality of sectors, and wherein:

the interleaver is further configured to:

determining, based on the position index of the at least one codeword, that one of the segments of the codeword does not write to one of the partitions of the sector; and

based on the position index, blocking the write signal to prevent writing to a partition of sectors to which one of the segments of the at least one codeword is not written.

Example 13: the apparatus of example 11, further comprising a storage medium controller configured to:

grouping the plurality of sectors of the magnetic storage medium into interleaved sets of sectors;

Providing data corresponding to a set of codewords for the set of interleaved sectors to the interleaver, the data for the set of codewords comprising data for the one or more codewords; and

providing an indication of a respective indicator corresponding to the codeword to the interleaver and for each codeword of the set of codewords to enable the interleaver to select the respective indicator to interleave the segments of the codeword.

Example 14: the apparatus of any preceding or subsequent example, wherein the set of interleaved sectors comprises a number of sectors equal to or greater in number than a number of one or more codewords corresponding to the set of interleaved sectors.

Example 15: the apparatus of any preceding example, wherein:

writing segments of the one or more codewords to respective partitions of consecutive sectors of the plurality of sectors; or

Writing segments of the one or more codewords to respective partitions of non-contiguous sectors of the plurality of sectors.

Example 16: a system on a chip (SoC), comprising:

an interface for a storage media controller to receive data from the storage media controller for writing to a magnetic storage media;

an interface for a media writer of the magnetic storage media;

An interleaver buffer configured to buffer segments of codewords for writing to sectors of the magnetic storage medium; and

an interleaver configured to:

receiving data from the storage medium controller corresponding to one or more codewords to be written to a set of multiple sectors of the magnetic storage medium;

receiving, from the storage medium controller, respective indicators indicating which partitions of the plurality of sectors a segment of each of the codewords is to be written to;

encoding data of the one or more codewords to provide one or more codewords of encoded data;

placing segments of the one or more codewords into the interleaver buffer based on respective indicators corresponding to each of the codewords; and

writing, from the interleaving buffer and with the media writer, segments of the one or more codewords to partitions of at least some of the plurality of sectors to interleave respective segments of the codewords across the set of the plurality of sectors of the magnetic storage medium.

Example 17: the SoC of example 16 or any of the following examples, wherein the interleaver is further configured to: for at least one of the codewords, a location index is determined for writing a segment of the codeword to a respective one of the partitions of the plurality of sectors.

Example 18: the SoC of any of the above or below examples, wherein the interleaver is further configured to:

receiving a write signal from the storage medium controller indicating a start of one of the plurality of sectors;

determining, based on the position index of the at least one codeword, that one of the segments of the codeword is to be written to one of the partitions of the sector; and

based on the write signal and the location index, writing one of the segments of the at least one codeword to a partition of a sector that received the write signal.

Example 19: the SoC of any of the above or below examples, wherein the interleaver is further configured to:

receiving a write signal from the storage medium controller indicating a start of one of the plurality of sectors;

determining, based on the position index of the at least one codeword, that one of the segments of the codeword is not written to one of the partitions of the sector; and

based on the position index, blocking the write signal to prevent writing to a partition of sectors to which one of the segments of the at least one codeword is not written.

Example 20: the SoC of any of the above examples, wherein:

writing segments of the one or more codewords to respective partitions of consecutive sectors of the plurality of sectors; or

Writing segments of the one or more codewords to respective partitions of non-contiguous sectors of the plurality of sectors.

34页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:使用磁约瑟夫森结器件作为π反相器

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!