Systems and method relating generally to data processing, and more particularly to systems and methods for segmenting a data set and recovering the segmented data set.
Data devices often augment data to be transferred with various formatting data that allows for recovery of the transferred data. For example, a data set may be transferred with a synchronization mark that is utilized to indicate the beginning of a data set to be processed. In some cases, however, the synchronization mark is corrupted by noise or other factors. In such cases, the data set may not be recoverable. This loss of data becomes more significant as more and more user data is associated with a limited number of synchronization marks.
Hence, for at least the aforementioned reasons, there exists a need in the art for advanced systems and methods for data processing.
Systems and method relating generally to data processing, and more particularly to systems and methods for segmenting a data set and recovering the segmented data set.
Various embodiments of the present invention provide data transfer systems that include: a data transfer preparation circuit, a transfer characteristic determination circuit, and a format insertion circuit. The data transfer preparation circuit is operable to receive a user data set and to generate an output data set based upon the user data set. The transfer characteristic determination circuit is operable to determine a characteristic of an expected transfer of the output data set. The format insertion circuit is operable to dynamically augment the output data set with formatting information at a location selected based at least in part on the characteristic of the expected transfer to yield a transfer data set.
This summary provides only a general outline of some embodiments of the invention. The phrases “in one embodiment,” “according to one embodiment,” “in various embodiments”, “in one or more embodiments”, “in particular embodiments” and the like generally mean the particular feature, structure, or characteristic following the phrase is included in at least one embodiment of the present invention, and may be included in more than one embodiment of the present invention. Importantly, such phases do not necessarily refer to the same embodiment. Many other embodiments of the invention will become more fully apparent from the following detailed description, the appended claims and the accompanying drawings.
A further understanding of the various embodiments of the present invention may be realized by reference to the figures which are described in remaining portions of the specification. In the figures, like reference numerals are used throughout several figures to refer to similar components. In some instances, a sub-label consisting of a lower case letter is associated with a reference numeral to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components.
a graphically depicts a storage medium showing a number of servo data wedges distributed radially around the storage medium;
b shows a portion of the storage medium of
c shows a data set to be stored to the storage medium of
a-5b graphically depict a data scrambling process that may be applied to a data set to be transferred;
a-9b show example data from a reprocessing condition in accordance with one or more embodiments of the present invention.
Systems and method relating generally to data processing, and more particularly to systems and methods for segmenting a data set and recovering the segmented data set.
Various embodiments of the present invention provide data transfer systems that include: a data transfer preparation circuit, a transfer characteristic determination circuit, and a format insertion circuit. The data transfer preparation circuit is operable to receive a user data set and to generate an output data set based upon the user data set. The transfer characteristic determination circuit is operable to determine a characteristic of an expected transfer of the output data set. The format insertion circuit is operable to dynamically augment the output data set with formatting information at a location selected based at least in part on the characteristic of the expected transfer to yield a transfer data set. In some cases, the data transfer system is implemented as part of an integrated circuit.
In some instances of the aforementioned embodiments, the data transfer preparation circuit includes a data encoder circuit that is operable to apply a data encoding algorithm to an encoder input derived from the user data set to yield an encoded data set. In some cases, the data encoding algorithm is a low density parity check encoding algorithm. In one or more cases, the data transfer preparation circuit further includes a scrambler circuit that is operable to segregate the encoded data set into segments, and to re-arrange the segments.
In various instances of the aforementioned embodiments of the present invention, the characteristic of the expected transfer of the output data set is a maximum length between formatting information in the transfer data set. In some such instances, the data transfer system is implemented as part of a storage device, or a communication device. In one or more instances of the aforementioned embodiments, the data transfer system is implemented as part of a hard disk drive including a disk platter. In some such instances, the characteristic of an expected transfer of the output data set is a first characteristic that is a location of a servo data wedge on the disk platter relative to the output data set. The transfer characteristic determination circuit is further operable to determine a second characteristic of the expected transfer of the output data set that is a maximum length between formatting information in the transfer data set. In some cases, the format insertion circuit is operable to dynamically augment the output data set with formatting information at a location selected based at least in part on the first characteristic and the second characteristic of the expected transfer to yield a transfer data set. In some cases, the formatting information includes a sync mark. This sync mark is a known pattern.
Other embodiments of the present invention provide methods for data transfer that include: receiving a user data set; preparing the user data set for transfer using a data transfer preparation circuit to yield an output data set; determining a characteristic of the an expected transfer of the output data set; and dynamically augmenting the output data set with formatting information at a location selected based at least in part on the characteristic of the expected transfer to yield a transfer data set.
In some instances of the aforementioned embodiments, the data transfer preparation circuit includes a data encoder, and preparing the user data set for transfer includes applying a data encoding algorithm to an encoder input derived from the user data set to yield an encoded data set. In some cases, the data transfer preparation circuit further includes a scrambler circuit, and preparing the user data set for transfer further includes segregating the encoded data set into segments, and re-arranging the segments. In some cases, the characteristic of the expected transfer of the output data set is a maximum length between formatting information in the transfer data set. In various cases, the transfer data set is destined for a disk platter, and the characteristic of the expected transfer of the output data set is a location of a servo data wedge on the disk platter relative to the output data set.
Yet other embodiments of the present invention provide hard disk storage devices that include a disk platter and a data write circuit. The disk platter has at least a first servo data wedge and a second servo data wedge. The data write circuit includes: a data transfer preparation circuit operable to receive a user data set and to generate an output data set based upon the user data set; a transfer characteristic determination circuit operable to determine a location of the first servo data wedge relative to an expected storage location of the output data set, and a distance between the first servo data wedge and the second servo data wedge; and a format insertion circuit operable to dynamically augment the output data set with formatting information at a location selected based at least in part on one of the distance between the first servo data wedge and the second servo data wedge and the location of the first servo data wedge relative to an expected storage location of the output data set.
Various embodiments of the present invention provide data processing systems that include: the sync mark detection and forcing circuit, the data processing circuit, and a reverse sync mark derivation circuit. The sync mark detection and forcing circuit is operable to: receive an input data set; query the input data set to identify an actual sync mark; force a proxy sync mark where the actual sync mark is not identified; and re-force the proxy sync mark based upon an offset. The data processing circuit is operable to: apply a data processing algorithm to the input data set aligned using the forced proxy sync mark to yield a processed output; and re-apply the data processing algorithm to the input data set aligned using the re-forced proxy sync mark to yield a re-processed output. The reverse sync mark derivation circuit is operable to: correlate a portion of the processed output with a corresponding portion of the input data set to yield a true sync location; and a calculate a difference between the true sync location and the location of the forced sync mark to yield the offset. In some cases, the data processing systems are implemented as part of a storage device. In other cases, the data processing systems are implemented as part of a communication device. The actual sync mark may a known pattern. In some cases, the data processing system is implemented as part of an integrated circuit.
In some instances of the aforementioned embodiments, the reverse sync mark derivation circuit is further operable to auto-correlate the corresponding portion of the input data set to yield an original sync location. In some such instances, calculating the difference between the true sync location and the location of the forced sync mark includes calculating a difference between the true sync location and the original sync location. In various instances of the aforementioned embodiments, the data processing circuit includes a data decoding circuit operable to apply a data decoding algorithm to a decoder input derived from the input data set to yield the processed output. In some cases, the data decoding algorithm is a low density parity check algorithm. In some cases, the data processing circuit further includes a data detecting circuit operable to apply a data detection algorithm to a detector input derived from the input data to yield a detected output. In such cases, the decoder input is derived from the detected output. In various cases, the data processing circuit further includes a de-scrambling circuit operable to de-scramble the detected output to yield the decoder input.
In other instances of the aforementioned embodiments, querying the input data set to identify an actual sync mark includes comparing the input data set with a known sync pattern. In some instances of the aforementioned embodiments, the sync mark detection and forcing circuit is operable to re-force the proxy sync mark based upon the offset when the processed output includes errors. In one or more instances of the aforementioned embodiments, the sync mark detection and forcing circuit is operable to query the input data set to identify the actual sync mark during a period when formatting information including the actual sync mark is expected.
Other embodiments of the present invention provide methods for data transfer that include: receiving an input data set; querying the input data set for an actual sync mark; forcing a proxy sync mark where the actual sync mark is not found in the input data set; applying a data processing algorithm using a data processing circuit to the input data set to yield a processed output; correlating a portion of the processed output with a corresponding portion of the input data set to yield a true sync location; calculating a difference between the true sync location and the location of the forced sync mark to yield an offset; re-forcing the proxy sync mark based upon the offset; and re-applying the data processing algorithm using the data processing circuit to the input data set aligned using the re-forced proxy sync mark to yield a re-processed output.
In various instances of the aforementioned embodiments, the method further includes auto-correlating the corresponding portion of the input data set to yield an original sync location. Calculating the difference between the true sync location and the location of the forced sync mark includes calculating a difference between the true sync location and the original sync location. In some instances of the aforementioned embodiments, the data processing circuit includes a data decoding circuit operable to apply a data decoding algorithm to a decoder input derived from the input data set to yield the processed output. In some cases, the data decoding algorithm is a low density parity check algorithm. In various cases, the data processing circuit further includes a data detecting circuit operable to apply a data detection algorithm to a detector input derived from the input data to yield a detected output. In some cases, the decoder input is derived from the detected output.
Yet other embodiments of the present invention provide hard disk storage including: a disk platter storing information; a read/write head disposed in relation to the disk platter, and operable to sense the information to yield a sensed output; an analog to digital converter circuit operable to convert an analog input corresponding to the sensed output into digital samples; an equalizer circuit operable to equalize the digital samples to yield an equalized output; a sync mark detection and forcing circuit; a data processing circuit; and a reverse sync mark derivation circuit. The sync mark detection and forcing circuit is operable to: receive the equalized output; query the equalized output to identify an actual sync mark; force a proxy sync mark where the actual sync mark is not identified; and re-force the proxy sync mark based upon an offset. The data processing circuit is operable to: apply a data processing algorithm to the equalized output aligned using the forced proxy sync mark to yield a processed output; and re-apply the data processing algorithm to the equalized output aligned using the re-forced proxy sync mark to yield a re-processed output. The reverse sync mark derivation circuit is operable to: correlate a portion of the processed output with a corresponding portion of the equalized output to yield a true sync location; and a calculate a difference between the true sync location and the location of the forced sync mark to yield the offset.
Turning to
In a typical read operation, read/write head 176 is accurately positioned by motor controller 168 over a desired data track on disk platter 178. Motor controller 168 both positions read/write head 176 in relation to disk platter 178 and drives spindle motor 172 by moving read/write head assembly 176 to the proper data track on disk platter 178 under the direction of hard disk controller 166. Spindle motor 172 spins disk platter 178 at a determined spin rate (RPMs). Once read/write head 176 is positioned adjacent the proper data track, magnetic signals representing data on disk platter 178 are sensed by read/write head 176 as disk platter 178 is rotated by spindle motor 172. The sensed magnetic signals are provided as a continuous, minute analog signal representative of the magnetic data on disk platter 178. This minute analog signal is transferred from read/write head 176 to read channel circuit 110 via preamplifier 170. Preamplifier 170 is operable to amplify the minute analog signals accessed from disk platter 178. In turn, read channel circuit 110 decodes and digitizes the received analog signal to recreate the information originally written to disk platter 178. This data is provided as read data 103 to a receiving circuit. A write operation is substantially the opposite of the preceding read operation with write data 101 being provided to read channel circuit 110. This data is then encoded and written to disk platter 178.
In operation, data written to disk platter 178 is split into slices or portions. The formatting insertion circuitry of read channel circuit 110 occasionally interrupts the flow of slices destined to be written to disk platter 178 by dynamically inserting formatting information based upon the location of servo data wedges on disk platter 178 and the distance between servo data wedges on disk platter 178. This formatting information includes a sync mark that may be used for alignment with written data. In some cases, the dynamic insertion of formatting information is designed to assure that long runs of the slices destined for user data regions between servo data wedges are broken into portions small enough to be corrected using erasure decoding. The formatting information interrupting the flow of the slices is used when the data is read back from disk platter 178 to orient the data processing to the received data and assure proper alignment. Where one or more elements of the formatting information is not recoverable, the lost formatting processing circuitry of read channel circuit 110 is operable to force formatting information at an expected location. Where the forced formatting information fails to provide the needed alignment, the lost formatting processing circuitry of read channel circuit 110 uses decoded information to more accurately identify a location for the forced formatting information, and the processing is repeated using the more accurate location information. The dynamic formatting information insertion and lost formatting processing may be done using a circuit similar to that discussed below in relation to
It should be noted that storage system 100 may be integrated into a larger storage system such as, for example, a RAID (redundant array of inexpensive disks or redundant array of independent disks) based storage system. Such a RAID storage system increases stability and reliability through redundancy, combining multiple disks as a logical unit. Data may be spread across a number of disks included in the RAID storage system according to a variety of algorithms and accessed by an operating system as if it were a single disk. For example, data may be mirrored to multiple disks in the RAID storage system, or may be sliced and distributed across multiple disks in a number of techniques. If a small number of disks in the RAID storage system fail or become unavailable, error correction techniques may be used to recreate the missing data based on the remaining portions of the data from the other disks in the RAID storage system. The disks in the RAID storage system may be, but are not limited to, individual storage systems such as storage system 100, and may be located in close proximity to each other or distributed more widely for increased security. In a write operation, write data is provided to a controller, which stores the write data across the disks, for example by mirroring or by striping the write data. In a read operation, the controller retrieves the data from the disks. The controller then yields the resulting read data as if the RAID storage system were a single disk.
A data decoder circuit used in relation to read channel circuit 110 may be, but is not limited to, a low density parity check (LDPC) decoder circuit as are known in the art. Such low density parity check technology is applicable to transmission of information over virtually any channel or storage of information on virtually any media. Transmission applications include, but are not limited to, optical fiber, radio frequency channels, wired or wireless local area networks, digital subscriber line technologies, wireless cellular, Ethernet over any medium such as copper or optical fiber, cable channels such as cable television, and Earth-satellite communications. Storage applications include, but are not limited to, hard disk drives, compact disks, digital video disks, magnetic tapes and memory devices such as DRAM, NAND flash, NOR flash, other non-volatile memories and solid state drives.
In addition, it should be noted that storage system 100 may be modified to include solid state memory that is used to store data in addition to the storage offered by disk platter 178. This solid state memory may be used in parallel to disk platter 178 to provide additional storage. In such a case, the solid state memory receives and provides information directly to read channel circuit 110. Alternatively, the solid state memory may be used as a cache where it offers faster access time than that offered by disk platted 178. In such a case, the solid state memory may be disposed between interface controller 120 and read channel circuit 110 where it operates as a pass through to disk platter 178 when requested data is not available in the solid state memory or when the solid state memory does not have sufficient storage to hold a newly written data set. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of storage systems including both disk platter 178 and a solid state memory.
Turning to
During operation, data sent via transfer medium 230 includes formatting information that is dynamically inserted into a stream of data. The dynamic formatting information insertion processing may be done using a circuit similar to that discussed below in relation to the write side of
Turning to
Turning to
As shown, the length of user data region 414 between servo data wedge 404 and servo data wedge 406 corresponds to maximum length 435 at a location 472 between an inner diameter 470 and an outer diameter 474 of disk platter 400. Data transfer circuit 300 is operable to dynamically insert formatting information into the data stored to disk platter 400 such that the maximum number of elements of the data from a previously stored formatting information does not exceed maximum length 435. Thus, as the length between servo data wedge 404 and servo data wedge 406 increases beyond maximum length 435 the closer the write location gets to outer diameter 474, splitting the user data region with intervening formatting information becomes helpful. Because of this, data transfer circuit 300 dynamically inserts formatting information into a data set that is to cover the length between servo data wedge 404 and servo data wedge 406 at some point to assure that the maximum length of data from inserted formatting information does not exceed maximum length 435. This need to split data near outer diameter 474 of disk platter 400 is represented by splitting user data region 414 into two sections 414a, 414b.
Referring again to
Encoded output 382 is provided to a scrambler circuit 330. Scrambler circuit 330 segregates encoded output into slices. For example, encoded output 382 may include a number of 4 KB encoded sectors which are each divided into 1 KB slices. Scrambler circuit 330 then re-arranges the slices such that portions of the encoded sectors are intermixed. Turning to
Turning to
Referring again to
Data splitting circuit 350 receives formatting interrupt 318 and inserts formatting information into scrambled output 332 to yield a dynamically modified output 352. Again, as noted above, the formatting information may be a synchronization mark or include a sync mark. As an example, dynamically modified output 352 may be similar to data set 494 discussed in relation to
Data output 362 is received by an analog front end circuit 315 from medium 370 as a read input 372. Analog front end circuit 315 processes read input 372 to yield a processed analog signal 317 that is provided to an analog to digital converter circuit 325. Analog front end circuit 315 may include, but is not limited to, an analog filter and an amplifier circuit as are known in the art. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of circuitry that may be included as part of analog front end circuit 315. Analog to digital converter circuit 325 converts processed analog signal 317 into a corresponding series of digital samples 327. Analog to digital converter circuit 325 may be any circuit known in the art that is capable of producing digital samples corresponding to an analog input signal. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of analog to digital converter circuits that may be used in relation to different embodiments of the present invention. Digital samples 327 are provided to an equalizer circuit 335. Equalizer circuit 335 applies an equalization algorithm to digital samples 327 to yield an equalized output 337. In some embodiments of the present invention, equalizer circuit 335 is a digital finite impulse response filter circuit
Equalized output 337 is provided to a sync detection and sync forcing circuit 398, and to a data buffer 348. In some embodiments of the present invention, a sync mark is a known data pattern used to identify locations in a data set. A sync mark is expected within a defined window around the location where formatting information was inserted during a data write or transmit operation (i.e., by data splitting circuit 350). An approximated location of the formatting information can be derived based upon knowledge of a maximum run between sync marks (for both data received from a transmitter and from a disk platter of a hard disk drive) and/or the location of servo data wedges (where the data is received from a disk platter of a hard disk drive). A window during which a sync mark is expected is used to limit the possibility of finding a sync mark in the user data. Where a sync mark is not expected (i.e., not within the window), sync detection and sync forcing circuit 398 will not assert a sync found signal 399. On the other hand, when a sync mark is expected, sync detection and sync forcing circuit 398 compares a known sync pattern with equalized output 337. Where a match is found, sync detection and sync forcing circuit 398 asserts sync found signal 399 indicating an actual sync mark was found. When a sync mark is expected but not found, sync detection and sync forcing circuit 398 asserts sync found signal 399 at a location corresponding to where the sync mark was expected, and the segment currently being processed is indicated as having a missing sync mark.
Data buffer 348 aligns equalized output 337 using asserted sync marks 399 (both actual and forced) resulting in essentially the scrambled data set (i.e., scrambled output 332) that was originally generated. This aligned scrambled data set is provided as a detector input 349 to data detecting circuit 355. Data detecting circuit 355 applies a data detection algorithm to the assembled segments to yield a detected output 357. The data detection algorithm may be, but is not limited to, a Viterbi data detection algorithm or a maximum a posteriori data detection algorithm as are known in the art. Of note, the general phrases “Viterbi data detection algorithm” or “Viterbi algorithm data detector circuit” are used in their broadest sense to mean any Viterbi detection algorithm or Viterbi algorithm detector circuit or variations thereof including, but not limited to, bi-direction Viterbi detection algorithm or bi-direction Viterbi algorithm detector circuit. Also, the general phrases “maximum a posteriori data detection algorithm” or “maximum a posteriori data detector circuit” are used in their broadest sense to mean any maximum a posteriori detection algorithm or detector circuit or variations thereof including, but not limited to, simplified maximum a posteriori data detection algorithm and a max-log maximum a posteriori data detection algorithm, or corresponding detector circuits. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of data detection algorithms that may be used in relation to different embodiments of the present invention. The resulting detected output may include both hard decisions and soft decisions. The terms “hard decisions” and “soft decisions” are used in their broadest sense. In particular, “hard decisions” are outputs indicating an expected original input value (e.g., a binary ‘1’ or ‘0’, or a non-binary digital value), and the “soft decisions” indicate a likelihood that corresponding hard decisions are correct. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of hard decisions and soft decisions that may be used in relation to different embodiments of the present invention. Detected output 357 is provided to a de-scrambling circuit 351 that reverses the scrambling applied by scrambler circuit 330, and provides the resulting descrambled output as sector inputs 354.
Sector inputs 354 are provided to a data decoding circuit 365 that applies a data decoding algorithm to yield a decoded output. Data decoding circuit 365 includes missed format reversal circuitry. The data decoding algorithm operates to reverse the encoding applied prior to the data transfer. Thus, for example, where the data encoding was low density parity check encoding, the data decoding is a low density parity check decoding algorithm as is known in the art. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of data encoding and decoding algorithms that may be used in relation to different embodiments of the present invention. It is determined whether application of the data decoding algorithm converged for all of the sectors. Where the algorithm converged (no errors remain), a decoded output 367 for the corresponding converged sectors is provided to a hard decision output circuit 375 that converts decoded output 367 to a user read output 377.
Alternatively, where application of the data decoding algorithm fails to converge, data decoding circuit 365 provides the resulting decoded output 356 to a re-scrambling circuit 353. Re-scrambing circuit 353 scrambles decoded output 356 so that it is re-aligned with a detector input 349. At this point the data detection algorithm and data decoding algorithm are re-applied using guidance from the previous decoded output 356. This process is repeated either until the resulting decoded output converges, or until a maximum number of iterations through data detecting circuit 355 and data decoding circuit 365 have completed.
Where the maximum number of iterations have completed without reaching convergence, data decoding circuit 365 re-applies the data decoding while setting soft data associated with slices or segments where a sync mark was forced (i.e., the segments indicated by sync detection and forcing circuit 398) to zero. By setting them to zero, the likelihood that those elements are correct is set to zero. In addition, data decoding circuit 365 selects a slice from the decoded output corresponding to the missed sync mark is identified as a SyncTrue output 388 that is provided to a reverse sync mark derivation circuit 385.
Reverse sync mark derivation circuit 385 selects a slice from equalized output 337 that corresponds to SyncTrue output 388. The selected slice is designated as a SyncOriginal output 338. Reverse sync mark derivation circuit 385 auto-correlates SyncOriginal output 338 with itself to yield an original forced sync location (LAGN), and correlates SyncOriginal output 338 with SyncTrue output 388 to yield an actual sync location (LMIS). Reverse sync mark derivation circuit 385 subtracts LAGN from LMIS to yield a difference indicating a needed shift between the original force sync and a newly forced sync.
Reverse sync mark derivation circuit 385 replaces the originally forced sync mark with an updated forced sync mark 386. Data buffer 348 r-aligns the previously stored equalized output 337 using updated forced sync mark 386. This aligned scrambled data set is provided as detector input 349 to data detecting circuit 355. The process of applying the data detection algorithm by data detecting circuit 355 and the data decoding algorithm by data decoding circuit 365 is repeated for the newly aligned data. During an initial pass through the iterations, erasure decoding is applied to the slice associated with the forced. If such decoding results in convergence of the data, the process ends and the converged data is provided as user read data 387. Where, on the other hand, the processing fails, the data processing is repeated without erasing the data corresponding to the slice.
Turning to
In parallel, an expected alignment of the received used data with user writable areas on the storage medium is determined (block 620). This alignment predicts where the scrambled data set will be stored in relation to servo data wedges (where storage to a disk platter is intended) and/or expected lengths between intervening user data. This alignment information becomes a guide to where formatting is to be dynamically inserted. Based upon the determined locations (block 620), it is determined whether the next portion of the data is to be written directly after a servo data wedge on the storage medium (block 612). Where the next portion of he data is to be written directly after a servo data wedge on the storage medium (block 612), intervening formatting information including a sync mark is stored to the storage medium prior to storing an additional portion of the scrambled data (block 616).
Alternatively, where the next portion of the data is not to be written directly after a servo data wedge on the storage medium (block 612), it is determined whether the maximum length from a servo data wedge has passed (block 614). It should be noted that in some cases it may be a maximum length from the location of the last intervening formatting information. Where the maximum length from the servo data wedge has been exceeded (block 614), intervening formatting information including a sync mark is stored to the storage medium prior to storing an additional portion of the scrambled data (block 616). Where either a servo data wedge location (block 612) or a maximum length (block 614) are not found or intervening formatting information has been stored to the storage medium (block 616), the next portion of the scrambled data set is stored to the storage medium (block 618). It is then determined whether more scrambled data remains to be stored to the storage medium (block 620). Where more scrambled data remains to be stored (block 620), the processes of blocks 612-618 are performed for the additional data. Otherwise, where all of the scrambled data set has been stored to the storage medium (block 620), the process returns to block 602.
Turning to
The series of digital samples are equalized to yield an equalized output (block 706). The equalization may be performed, for example, by a digital finite impulse response filter circuit as are known in the art. It is determined whether a sync mark is expected (block 708). A sync mark is expected within a defined window around the location where formatting information was inserted during a data write or transmit operation. An approximated location of the formatting information can be derived based upon knowledge of a maximum run between sync marks (for both data received from a transmitter and from a disk platter of a hard disk drive) and/or the location of servo data wedges (where the data is received from a disk platter of a hard disk drive). A window during which a sync mark is expected is used to limit the possibility of finding a sync mark in the user data. Where a sync mark is not expected (block 708), finding a sync mark and/or forcing a sync mark is disabled.
Where a sync mark is expected (i.e., the currently processing equalized data is within a window of an expected sync mark)(block 708), it is determined whether a sync mark is found within the defined window (block 710). Finding a sync mark may be done, for example, by comparing a sync mark pattern with a series of the received equalized data. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of ways in which a sync mark may be detected in the equalized data. A sync mark may be missed or lost due to a number of factors including, but not limited to, noise in the data introduced during data transfer. Where a sync mark is not found within the expected window (block 710), a sync mark is forced at a location where the sync mark was expected, and a potentially flawed segment is identified (block 712). This forced sync mark identifies a best guess at the location of the start of the next segment to be processed. This location would have been identified by an actual sync mark if it had not been missed. The best guess for the location of the forced sync mark may be accurate or may be incorrect. Where the forced sync mark is placed at the correct location, the data processing will likely be able to recover the data corresponding to the segment near the missed sync mark. Where the sync mark is not placed at the correct location, additionally processes may be employed to recover the data (see
Where either the sync mark was found (block 710) or the sync mark was forced (block 712), the sync mark is used to synchronize the data processing to the location of an expected segment (block 714). The equalized data associated with the segment corresponding to the sync mark is received and stored (block 716). It is determined whether the transferred data includes more segments (block 718). This may be determined, for example, based upon an expected number of segments per data set. Where another segment is expected (block 718), the processing of blocks 708-716 is repeated for the next segment.
Otherwise, where all of the segments have been received (block 718), the segments are re-assembled to yield the originally transmitted data set in preparation for back end processing (block 720). A data detection algorithm is applied to the assembled segments to yield a detected output (block 722). Where an earlier application of a data decoding algorithm has been applied, the decoded output resulting from the earlier application of the data decoding algorithm is used to guide the data detection. The data detection algorithm may be, but is not limited to, a Viterbi data detection algorithm or a maximum a posteriori data detection algorithm as are known in the art. Of note, the general phrases “Viterbi data detection algorithm” or “Viterbi algorithm data detector circuit” are used in their broadest sense to mean any Viterbi detection algorithm or Viterbi algorithm detector circuit or variations thereof including, but not limited to, bi-direction Viterbi detection algorithm or bi-direction Viterbi algorithm detector circuit. Also, the general phrases “maximum a posteriori data detection algorithm” or “maximum a posteriori data detector circuit” are used in their broadest sense to mean any maximum a posteriori detection algorithm or detector circuit or variations thereof including, but not limited to, simplified maximum a posteriori data detection algorithm and a max-log maximum a posteriori data detection algorithm, or corresponding detector circuits. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of data detection algorithms that may be used in relation to different embodiments of the present invention. The resulting detected output may include both hard decisions and soft decisions. The terms “hard decisions” and “soft decisions” are used in their broadest sense. In particular, “hard decisions” are outputs indicating an expected original input value (e.g., a binary ‘1’ or ‘0’, or a non-binary digital value), and the “soft decisions” indicate a likelihood that corresponding hard decisions are correct. Based upon the disclosure provided herein, one of ordinary skill in the art will recognize a variety of hard decisions and soft decisions that may be used in relation to different embodiments of the present invention.
A reverse scramble is performed on the detected output to yield originally encoded sector inputs (block 724). This reverse scramble operates to reverse the data scrambling process applied prior to the data transfer. Thus, as an example, the reverse scramble reverses the process discussed above in relation to
It is determined whether application of the data decoding algorithm converged (block 728). Where the algorithm converged (no errors remain) (block 728), the decoded output for the corresponding converged sector is provided (block 732). Otherwise, where the algorithm failed to converge (errors remain) (block 728), it is determined whether another iteration applying the data detection algorithm and the data decoding algorithm is desired (block 730). A number of iterations applying the data detection algorithm and data decoding algorithm may be applied depending upon a particular design and throughput constraints. Where another iteration is desired (block 730), the processes of blocks 722-730 are repeated. Alternatively, where no additional iterations are desired (block 730), an error is indicated for the corresponding non-converged sectors is indicated and reprocessing (discussed in relation to
Turning to
SyncOriginal is correlated with SyncTrue to identify a peak correlation (i.e., a location where the two are most closely correlated) between the two data sets (block 820). The peak of the correlation is identified as LMIS. This establishes where in the equalized data the sync mark should have been forced. An example of this correlation is shown in
The sync is then re-forced at the shifted location (block 835), and one or more iterations of the data detection algorithm and the data decoding algorithm are applied to the equalized output corresponding to the sector inputs defined based upon the newly forced sync mark with the slice corresponding to the sync mark erased (e.g., setting the soft data to a low likelihood value) (block 840). This process is applied to the sector inputs that failed to converge and yields a decoded output. It is determined whether the various sector inputs converged (block 845). Where the sector inputs did converge (block 845), data for the converged outputs is provided (block 870). Otherwise, where one or more sector inputs failed to converge (block 845), one or more iterations of the data detection algorithm and the data decoding algorithm are applied to the equalized output corresponding to the sector inputs defined based upon the newly forced sync mark using the data in the slice corresponding to the sync mark erased (i.e., non-erasure decoding) (block 850). It is determined whether the various sector inputs converged (block 855). Where the sector inputs did converge (block 855), data for the converged outputs is provided (block 870). Otherwise, where one or more sector inputs failed to converge (block 855), an error is indicated (block 860).
It should be noted that the various blocks discussed in the above application may be implemented in integrated circuits along with other functionality. Such integrated circuits may include all of the functions of a given block, system or circuit, or a subset of the block, system or circuit. Further, elements of the blocks, systems or circuits may be implemented across multiple integrated circuits. Such integrated circuits may be any type of integrated circuit known in the art including, but are not limited to, a monolithic integrated circuit, a flip chip integrated circuit, a multichip module integrated circuit, and/or a mixed signal integrated circuit. It should also be noted that various functions of the blocks, systems or circuits discussed herein may be implemented in either software or firmware. In some such cases, the entire system, block or circuit may be implemented using its software or firmware equivalent. In other cases, the one part of a given system, block or circuit may be implemented in software or firmware, while other parts are implemented in hardware.
In conclusion, the invention provides novel systems, devices, methods and arrangements for data processing. While detailed descriptions of one or more embodiments of the invention have been given above, various alternatives, modifications, and equivalents will be apparent to those skilled in the art without varying from the spirit of the invention. Therefore, the above description should not be taken as limiting the scope of the invention, which is defined by the appended claims.
The present application claims priority to (is a non-provisional of) U.S. Pat. App. No. 61/902,934 entitled “Systems and Methods for Lost Synchronization Data Set Reprocessing”, and filed Nov. 12, 2013 by Li et al. The entirety of the aforementioned provisional patent application is incorporated herein by reference for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
4777544 | Brown et al. | Oct 1988 | A |
5130866 | Klaassen et al. | Jul 1992 | A |
5237325 | Klein et al. | Aug 1993 | A |
5278703 | Rub et al. | Jan 1994 | A |
5309357 | Stark et al. | May 1994 | A |
5341249 | Abbott et al. | Aug 1994 | A |
5377058 | Good et al. | Dec 1994 | A |
5521948 | Takeuchi | May 1996 | A |
5523902 | Pederson | Jun 1996 | A |
5594341 | Majidi-Ahy | Jan 1997 | A |
5629912 | Okawa | May 1997 | A |
5668679 | Swearingen et al. | Sep 1997 | A |
5696639 | Spurbeck et al. | Dec 1997 | A |
5768044 | Hetzler | Jun 1998 | A |
5781129 | Schwartz et al. | Jul 1998 | A |
5798885 | Saiki et al. | Aug 1998 | A |
5835295 | Behrens | Nov 1998 | A |
5844920 | Zook et al. | Dec 1998 | A |
5852524 | Glover et al. | Dec 1998 | A |
5892632 | Behrens | Apr 1999 | A |
5912869 | Tanaka et al. | Jun 1999 | A |
5955783 | Ben-Efraim | Sep 1999 | A |
5970104 | Zhong et al. | Oct 1999 | A |
5986830 | Hein | Nov 1999 | A |
5987562 | Glover | Nov 1999 | A |
6009549 | Bliss et al. | Dec 1999 | A |
6023383 | Glover et al. | Feb 2000 | A |
6023386 | Reed | Feb 2000 | A |
6052244 | Haraguchi et al. | Apr 2000 | A |
6069583 | Silvestrin et al. | May 2000 | A |
6081397 | Belser | Jun 2000 | A |
6111712 | Vishakhadatta et al. | Aug 2000 | A |
6208478 | Chiu et al. | Mar 2001 | B1 |
6269058 | Yamanoi et al. | Jul 2001 | B1 |
6278591 | Chang | Aug 2001 | B1 |
6400518 | Bhaumik et al. | Jun 2002 | B1 |
6404829 | Sonu | Jun 2002 | B1 |
6411452 | Cloke | Jun 2002 | B1 |
6441661 | Aoki et al. | Aug 2002 | B1 |
6476989 | Chainer | Nov 2002 | B1 |
6477209 | Itoi | Nov 2002 | B1 |
6490110 | Reed et al. | Dec 2002 | B2 |
6493162 | Fredrickson | Dec 2002 | B1 |
6519102 | Smith et al. | Feb 2003 | B1 |
6530060 | Vis et al. | Mar 2003 | B1 |
6603622 | Christiansen et al. | Aug 2003 | B1 |
6606048 | Sutardja | Aug 2003 | B1 |
6633447 | Franck et al. | Oct 2003 | B2 |
6646822 | Tuttle et al. | Nov 2003 | B1 |
6657802 | Ashley et al. | Dec 2003 | B1 |
6671404 | Kawatani | Dec 2003 | B1 |
6711228 | Kato et al. | Mar 2004 | B1 |
6717764 | Lake | Apr 2004 | B2 |
6741524 | Ichihara et al. | May 2004 | B2 |
6751774 | Aziz et al. | Jun 2004 | B2 |
6775529 | Roo | Aug 2004 | B1 |
6788484 | Honma | Sep 2004 | B2 |
6813108 | Annampedu et al. | Nov 2004 | B2 |
6816328 | Rae | Nov 2004 | B2 |
6839014 | Uda | Jan 2005 | B2 |
6856183 | Annampedu | Feb 2005 | B2 |
6856480 | Kuki | Feb 2005 | B2 |
6865040 | Fayeulle et al. | Mar 2005 | B2 |
6876511 | Koyanagi | Apr 2005 | B2 |
6906990 | Nagata et al. | Jun 2005 | B2 |
6912099 | Annampedu et al. | Jun 2005 | B2 |
6934229 | Fujiwara | Aug 2005 | B2 |
6963521 | Hayashi | Nov 2005 | B2 |
6980382 | Hirano et al. | Dec 2005 | B2 |
6999257 | Takeo | Feb 2006 | B2 |
6999264 | Ehrlich | Feb 2006 | B2 |
6999404 | Furumiya et al. | Feb 2006 | B2 |
7002767 | Annampedu et al. | Feb 2006 | B2 |
7016131 | Liu et al. | Mar 2006 | B2 |
7038875 | Lou et al. | May 2006 | B2 |
7054088 | Yamazaki et al. | May 2006 | B2 |
7072137 | Chiba | Jul 2006 | B2 |
7082005 | Annampedu et al. | Jul 2006 | B2 |
7092462 | Annampedu et al. | Aug 2006 | B2 |
7116504 | Oberg | Oct 2006 | B1 |
7126776 | Warren, Jr. et al. | Oct 2006 | B1 |
7133227 | Chiang | Nov 2006 | B2 |
7136250 | Wu et al. | Nov 2006 | B1 |
7154689 | Shepherd et al. | Dec 2006 | B1 |
7158464 | Gushima et al. | Jan 2007 | B2 |
7167328 | Annampedu et al. | Jan 2007 | B2 |
7167432 | Chiang | Jan 2007 | B2 |
7180693 | Annampedu et al. | Feb 2007 | B2 |
7187739 | Ma | Mar 2007 | B2 |
7191382 | James et al. | Mar 2007 | B2 |
7193544 | Fitelson et al. | Mar 2007 | B1 |
7193798 | Byrd et al. | Mar 2007 | B2 |
7199959 | Bryant | Apr 2007 | B1 |
7199961 | Wu et al. | Apr 2007 | B1 |
7203013 | Han et al. | Apr 2007 | B1 |
7203015 | Sakai et al. | Apr 2007 | B2 |
7203017 | Sutardja et al. | Apr 2007 | B1 |
7206146 | Flynn et al. | Apr 2007 | B2 |
7230789 | Brunnett et al. | Jun 2007 | B1 |
7248425 | Byun et al. | Jul 2007 | B2 |
RE39771 | Kobayashi et al. | Aug 2007 | E |
7253984 | Patapoutian et al. | Aug 2007 | B1 |
7265937 | Erden et al. | Sep 2007 | B1 |
7286313 | Erden et al. | Oct 2007 | B2 |
7301717 | Lee et al. | Nov 2007 | B1 |
7308057 | Patapoutian | Dec 2007 | B1 |
7323916 | Sidiropoulos et al. | Jan 2008 | B1 |
7362536 | Liu et al. | Apr 2008 | B1 |
7375918 | Shepherd et al. | May 2008 | B1 |
7394608 | Eleftheriou | Jul 2008 | B2 |
7403460 | Nagai | Jul 2008 | B2 |
7411531 | Aziz et al. | Aug 2008 | B2 |
7420498 | Barrenscheen | Sep 2008 | B2 |
7423827 | Neville | Sep 2008 | B2 |
7446690 | Kao | Nov 2008 | B2 |
7525460 | Liu et al. | Apr 2009 | B1 |
7529320 | Byrne et al. | May 2009 | B2 |
7558177 | Ogura et al. | Jul 2009 | B2 |
7583459 | Cheng | Sep 2009 | B1 |
7602567 | Park | Oct 2009 | B2 |
7602568 | Katchmart | Oct 2009 | B1 |
7616395 | Yamamoto | Nov 2009 | B2 |
7620101 | Jenkins | Nov 2009 | B1 |
7630155 | Maruyama et al. | Dec 2009 | B2 |
7643235 | Erden et al. | Jan 2010 | B2 |
7656982 | Gaedke | Feb 2010 | B2 |
7679850 | Smith | Mar 2010 | B2 |
7693243 | Chen et al. | Apr 2010 | B2 |
7738200 | Annampedu | Jun 2010 | B2 |
7768437 | Annampedu | Aug 2010 | B2 |
7768730 | Bliss et al. | Aug 2010 | B2 |
7796480 | Cheng et al. | Sep 2010 | B2 |
7813065 | Annampedu | Oct 2010 | B2 |
7821730 | Cao | Oct 2010 | B2 |
7835104 | Yamashita | Nov 2010 | B2 |
7889823 | Yang | Feb 2011 | B2 |
7929237 | Grundvig | Apr 2011 | B2 |
7974034 | Han | Jul 2011 | B1 |
8014099 | Mathew | Sep 2011 | B2 |
8027117 | Sutardja | Sep 2011 | B1 |
8049983 | Han | Nov 2011 | B1 |
8054573 | Mathew | Nov 2011 | B2 |
8054931 | Annampedu | Nov 2011 | B2 |
8059349 | Annampedu | Nov 2011 | B2 |
8098451 | Graef | Jan 2012 | B2 |
8102960 | Ran et al. | Jan 2012 | B2 |
8107573 | Chang | Jan 2012 | B2 |
8154818 | Mathew | Apr 2012 | B2 |
8154972 | Ratnakar Aravind | Apr 2012 | B2 |
8169726 | Wilson | May 2012 | B2 |
8174784 | Grundvig | May 2012 | B2 |
8174949 | Ratnakar Aravind | May 2012 | B2 |
8213106 | Guo | Jul 2012 | B1 |
8237597 | Liu | Aug 2012 | B2 |
8243381 | Annampedu | Aug 2012 | B2 |
8254049 | Annampedu | Aug 2012 | B2 |
8261171 | Annampedu | Sep 2012 | B2 |
8325433 | Zhang et al. | Dec 2012 | B2 |
8498071 | Grundvig et al. | Jul 2013 | B2 |
8508879 | Zou | Aug 2013 | B1 |
8564897 | Yang et al. | Oct 2013 | B1 |
8565047 | Wilson | Oct 2013 | B2 |
20020005795 | Asano et al. | Jan 2002 | A1 |
20020061087 | Williams | May 2002 | A1 |
20020150179 | Leis et al. | Oct 2002 | A1 |
20030035239 | Ottesen | Feb 2003 | A1 |
20040160860 | Song et al. | Aug 2004 | A1 |
20040252394 | Hamaguchi | Dec 2004 | A1 |
20050243455 | Annampedu | Nov 2005 | A1 |
20060132953 | Asakura | Jun 2006 | A1 |
20070008643 | Brady | Jan 2007 | A1 |
20070104300 | Esumi et al. | May 2007 | A1 |
20070139805 | Mead | Jun 2007 | A1 |
20080019031 | Chu | Jan 2008 | A1 |
20080056403 | Wilson | Mar 2008 | A1 |
20090142620 | Yamamoto et al. | Jun 2009 | A1 |
20090274247 | Galbraith et al. | Nov 2009 | A1 |
20100061490 | Noeldner | Mar 2010 | A1 |
20100067628 | Buehner | Mar 2010 | A1 |
20100118426 | Vikramaditya | May 2010 | A1 |
20100142078 | Annampedu | Jun 2010 | A1 |
20100149940 | Nakata | Jun 2010 | A1 |
20110043938 | Mathew | Feb 2011 | A1 |
20110157737 | Grundvig | Jun 2011 | A1 |
20110209026 | Xia | Aug 2011 | A1 |
20120036173 | Annampedu | Feb 2012 | A1 |
20120068870 | Liu et al. | Mar 2012 | A1 |
20120084336 | Yang | Apr 2012 | A1 |
20120087035 | Graef | Apr 2012 | A1 |
20120106607 | Miladinovic | May 2012 | A1 |
20120120784 | Yang | May 2012 | A1 |
20120124241 | Yang | May 2012 | A1 |
20120124454 | Liu et al. | May 2012 | A1 |
20120134042 | Annampedu | May 2012 | A1 |
20120134043 | Annampedu | May 2012 | A1 |
20120155587 | Annampedu | Jun 2012 | A1 |
20120182643 | Zhang | Jul 2012 | A1 |
20120236428 | Xia | Sep 2012 | A1 |
Number | Date | Country |
---|---|---|
2904168 | Jan 2008 | FR |
WO 03047091 | Jun 2003 | WO |
WO 2008009620 | Jan 2008 | WO |
Entry |
---|
U.S. Appl. No. 13/529,572, Jun. 21, 2012, Yang et al. |
Annampedu, V. et al fiAdaptive Algorithms for Asynchronous Detection of Coded Servo Signals Based on Interpolationfl, IEEE Transactions on Magnetics, vol. 41, No. 10, Oct. 2005. |
Aziz and Annampedu, fiAsynchronous Maximum Likelihood (ML) Detection of Servo repeatable Run Out (RRO) Datafl Magnetics Conf. IEEE InternationalMay 2006. |
J. Hagenauer and P. Hoeher, fiA Viterbi algorithm with soft-decision outputs and its applications,fl in Proc. IEEE Global Telecommunications Conference 1989, Dallas, Texas, No. |
Kryder, M. et al “Heat Assisted Magnetic Recording” Proc. IEEE, vol. 96, No. 11, p. 1810, Nov. 2008. |
Polikar, Robi “Ensemble Based Systems in Decision Making” IEEE Circuits and Systems Magazine Third qtr 2006, p. 21-47. |
U.S. Appl. No. 13/186,267, Unpublished (filed Jul. 19, 2011) (Haitao Xia). |
U.S. Appl. No. 13/100,021, Unpublished (filed May 3, 2011) (Haitao Xia). |
U.S. Appl. No. 13/173,088, Unpublished (filed Jun. 30, 2011) (Jeffrey P. Grundvig). |
U.S. Appl. No. 14/031,701, Unpublished (filed Sep. 19, 2013) (Ross S. Wilson). |
U.S. Appl. No. 13/242,983, Unpublished (filed Sep. 23, 2011) (Jeffrey P. Grundvig). |
U.S. Appl. No. 13/316,899, Unpublished (filed Dec. 12, 2011) (Haitao Xia). |
U.S. Appl. No. 13/529,572, Unpublished (filed Jun. 21, 2012) (Shaohua Yang). |
U.S. Appl. No. 13/685,990, Unpublished (filed Nov. 27, 2012) (Haitao Xia). |
U.S. Appl. No. 13/714,233, Unpublished (filed Dec. 13, 2012) (Haotian Zhang). |
U.S. Appl. No. 13/896,048, Unpublished (filed May 16, 2013) (Shaohua Yang). |
U.S. Appl. No. 13/896,027, Unpublished (filed May 16, 2013) (Shaohua Yang). |
U.S. Appl. No. 13/096,873, Unpublished (filed Apr. 28, 2011) (Ross S. Wilson). |
Weller et al “Thermal Limits in Ultrahigh-density Magnetic Recording” IEEE Trans. Magn. vol. 35, No. 6, p. 4423, Nov. 1999. |
Number | Date | Country | |
---|---|---|---|
61902934 | Nov 2013 | US |