Methods and apparatus for correcting errors in data read from a disk drive
Summary by NHIP
Error Correction During Idle Time
The method reads sectors from a memory medium, checks them for errors, and releases error-free data to a host. Bad sectors remain in buffer memory until the error correction engine is idle, allowing retry attempts with different correction facilities without re-reading the data.
Claim Score by NHIP
Abstract
Data requested from a disk drive by a host is read continuously from sectors in tracks on a rotating disk and is temporarily stored in buffer memory within the disk drive. Before releasing the sectors for host access, each sector is checked for errors, and if errors are identified, error correction is attempted in a correction engine, using a selected error correction facility. If the errors are not corrected using the first selected correction facility, the bad sector is held in the buffer memory until the correction engine is idle. The correction engine is idle, for example, when good sectors (which have no errors) are read and are immediately released for host access. This idle time in the correction engine is used to attempt error correction using one or more different correction facilities. If the errors are corrected using the correction engine's idle time, it is not necessary to re-read the sector.

Term
Term ended
Expired 18 October 2025, 0.9 years ago.
- Priority and filed
- Granted
- Expired
- Today
8 claims: 2 independent, 6 dependent
- 1Broadest claimClaim Score 54, average(NHIP)A method for correcting errors in data read from a memory medium for access by a host, the data being stored on at least one track having a plurality of sectors, comprising the steps of:reading selected sectors from the memory medium, storing the selected sectors in a buffer memory, checking each sector for errors and releasing sectors having no errors for host access, if errors are detected, attempting error correction using a selected correction facility in an error correction engine, and if the errors are identified, correcting the data in the buffer memory, and releasing the sector for host access, and if the errors in the bad sector are not identified, holding the bad sector in the buffer memory and attempting error correction using a different selected correction facility when the error correction engine is idle.
- 5Apparatus for recording information to a memory medium and reproducing the information from the memory medium for access by a host, the memory medium having the information stored on at least one track having a plurality of sectors comprising:means for recording the information on the memory medium;means for reading the information from the memory medium;a buffer memory that temporarily stores information read from the selected sectors, and an error correction unit that sequentially checks each sector for errors and releases sectors having no errors for host access, if errors are detected, the error correction unit attempting correction using a selected correction facility in an error correction engine, if the errors are corrected, the error correction engine correcting the data in the memory buffer and releasing the sector for host access, and if the errors in the bad sector are not corrected, the correction engine holding the bad sector in the buffer memory and attempting error correction using a different selected correction facility when the error correction engine is idle.
Independent claims2
32 paragraphs in 4 sections, as filed
0001This invention relates to methods and apparatus for correcting errors in data read from memory device such as a disk drive, and more particularly, to error correction methods and apparatus that use idle time in an error correction engine to reduce the time required for error correction.
BACKGROUND OF THE INVENTION
0002In a conventional disk drive, data is written to and read from a rotating magnetic medium (disk) by a write head and a read head mounted on a head slider. The disk drive writes and reads data in response to commands from a host, such as a personal computer.
0003In a disk drive, data is written to the disk on concentric tracks, in sectors defined within the tracks. When the disk drive receives a request for data from its host, the disk drive moves the read head to the first track having requested data, reads the relevant sector or sectors from the disk, and repeats that process until all of the requested data has been retrieved.
0004As the data is read, it is temporarily stored in an internal memory in the disk drive, while it is checked for errors. In the absence of errors, the data is released for access by the host. If errors are detected in a sector, though, an error correction engine attempts to correct them, using one or more algorithms. If the errors in the bad sector are not corrected, the data is typically re-read from the disk, which requires an additional rotation of the disk over the bad sector. This is inefficient, and increases the time required to correct the errors and release the data for host access. Thus, there is a need for methods and apparatus for correcting such data errors which are more efficient, and reduce or eliminate the need for re-reading data from the disk during the error correction process.
0005Accordingly, one object of this invention is to provide new and improved methods and apparatus for correcting errors in data read from a disk drive.
0006Another object is to provide new and improved error correction methods and apparatus that reduce the time required for error correction.
SUMMARY OF THE INVENTION
0007In keeping with one aspect of this invention, data requested from a disk drive by a host is read from sectors in tracks on a rotating disk and is temporarily stored in buffer memory within the disk drive. Before releasing the sectors for host access, each sector is checked for errors, and if errors are detected, error correction is attempted in a correction engine, using a selected error correction facility. If the errors in the bad sector are corrected using the first selected correction facility, the bad sector is corrected in the buffer memory. The sector is then released for host access.
0008If the errors are not corrected using the first selected correction facility, the bad sector is held in the buffer memory until the correction engine is idle. The correction engine is idle, for example, when good sectors (which have no errors) are read and are immediately released for host access. This idle time in the correction engine is used to attempt error correction using one or more different correction facilities. If the errors are corrected using the correction engine's idle time, it is not necessary to re-read the sector.
BRIEF DESCRIPTION OF THE DRAWINGS
0009The above mentioned and other features of this invention and the manner of obtaining them will become more apparent, and the invention itself will be best understood by reference to the following description of an embodiment of the invention taken in conjunction with the accompanying drawings, in which:
0010<figref idref="DRAWINGS">FIG. 1</figref> is a plan view of a disk drive made in accordance with the present invention;
0011<figref idref="DRAWINGS">FIG. 2</figref> is a block diagram of various components and interfaces used in the disk drive of <figref idref="DRAWINGS">FIG. 1</figref>;
0012<figref idref="DRAWINGS">FIG. 3</figref> is a block diagram of the error correction unit used in the disk drive of <figref idref="DRAWINGS">FIG. 1</figref>;
0013<figref idref="DRAWINGS">FIG. 4</figref> is a timing chart illustrating the overall operation of the error correction unit according to the present invention; and
0014<figref idref="DRAWINGS">FIG. 5</figref> is a flowchart showing the manner in which errors are corrected using the present invention.
DETAILED DESCRIPTION
0015As seen in <figref idref="DRAWINGS">FIG. 1</figref>, a disk drive <b>10</b> includes a rotatable memory medium disk <b>12</b>, and a head slider <b>14</b> that includes a read/write head or separate read and write heads (not shown) on the head slider. As the disk rotates, the slider <b>14</b> is moved across the disk by an actuator <b>16</b>.
0016The disk <b>12</b> has a plurality of concentric tracks <b>18</b>, each of which is divided into a plurality of consecutive sectors <b>19</b>. The memory medium could also be a disk that has a single track arranged in a spiral fashion, such as a CD-ROM, or a tape that might have a single track. In any event, each sector <b>19</b> includes a predetermined amount of information data, among other things.
0017The disk drive <b>10</b> writes information to the disk and reads information from the sectors in the disk, in a sector-by-sector fashion. The data is written to the disk in an encoded form, with predetermined formatting. When a host device <b>20</b>, shown in <figref idref="DRAWINGS">FIG. 2</figref>, such as a personal computer, issues a write command, data is sent from the host to a host interface <b>22</b>, and a buffer manager <b>24</b> temporarily stores the data in memory such as an SDRAM <b>26</b>. The data is formatted in a formatter <b>28</b>, which encodes the data with information that can be used to detect, identify and correct errors when the data is later read from the disk.
0018The head is placed over a desired track through an actuator control device (not shown), and writing begins when the write head is over the selected sectors. The writing operation is controlled by an internal control unit <b>34</b>. While not shown in <figref idref="DRAWINGS">FIG. 1</figref>, the control unit <b>34</b> interfaces with virtually all of the components of the disk drive. A typical control unit would be implemented with a central processing unit or processor, a state machine or the like.
0019When the host <b>20</b> issues a read command, the control unit <b>34</b> identifies the sectors that have the requested data. The read head is moved to the desired track and sector, and reads the selected sectors on that track, generally sequentially. The data passes through a preamp <b>36</b>, a read channel <b>38</b> and the formatter <b>28</b> to both the buffer manager <b>24</b> and an error correction code (ECC) unit <b>40</b>. The buffer manager <b>24</b> stores the sector data in SDRAM <b>26</b> or some other temporary storage facility.
0020The ECC unit <b>40</b> is shown in more detail in <figref idref="DRAWINGS">FIG. 3</figref>. The ECC unit <b>40</b> includes a syndrome generator <b>42</b> and an error correction engine <b>44</b>. The correction engine <b>44</b> can be software, firmware, and/or hardware, programmed to run multiple algorithms and use various techniques to identify errors in the data. The engine <b>44</b> can then directly or indirectly correct the errors in buffer memory <b>26</b>. The syndrome generator <b>42</b> executes an algorithm on data one sector at a time, to determine whether or not errors exist in each sector. If no errors exist, a typical syndrome will be all “0” or some other fixed result. In that event, the “all 0” result is sent to an OR gate <b>46</b>, and a “good sector” signal is sent to the control unit <b>34</b>.
0021If the syndrome generator <b>42</b> obtains a result that is not “all 0”, indicating that the sector contains errors, the syndrome is stored in a temporary syndrome storage memory <b>47</b>, and the syndrome is sent to the error correction engine <b>44</b>. The engine <b>44</b> executes a selected algorithm in an effort to identify the errors. If the correction engine <b>44</b> is able to identify the errors within a certain time, the correction engine <b>44</b> interfaces with the buffer manager <b>24</b> to correct the errors and produces an output CORRC to the OR gate <b>46</b>, which produces a “good sector” signal for the control unit. If the error cannot be corrected, the correction engine <b>44</b> sends a UNCORR output to the control unit <b>34</b>, indicating that a “bad sector” exists.
0022As seen in <figref idref="DRAWINGS">FIG. 2</figref>, the sectors are sent to the buffer manager <b>24</b> as they are sent through the ECC unit <b>40</b>. The buffer manager stores the read data in the SD-RAM <b>26</b> until the control unit releases the data to host access from the buffer memory <b>26</b>. If the sectors are good, the data can be released immediately. If bad sectors are found, they cannot be released until the errors are corrected.
0023The manner in which the requested sectors are read from the disk is illustrated in the timing chart of <figref idref="DRAWINGS">FIG. 4</figref>. The read gate opens for sectors <b>0</b>, <b>1</b>, <b>2</b>, <b>3</b>, <b>4</b> and <b>5</b>, in a continuous, sequential manner. The syndrome generator <b>42</b> is busy with the sectors at essentially the same time that the read gate is open. However, the result or output of the syndrome generator is produced after each sector is read, so the syndrome generator output lags the read gate by about the time that it takes to read one sector.
0024The syndrome non-zero signal in <figref idref="DRAWINGS">FIG. 4</figref> indicates that sector <b>0</b>, sector <b>1</b>, sector <b>3</b> and sector <b>5</b> contain errors, and sector <b>2</b> and sector <b>4</b> are good sectors. The error correction engine is busy when it corrects sectors <b>0</b> and <b>1</b>, but is idle after sectors <b>2</b> and <b>4</b> are checked, because those sectors have no errors. The engine is also busy after sectors <b>3</b> and <b>5</b> are checked, because those errors must be corrected, as well.
0025<figref idref="DRAWINGS">FIG. 4</figref> indicates that sector <b>0</b> could not be corrected immediately by the error correction engine, so a bad sector pulse for sector <b>0</b> was produced. <figref idref="DRAWINGS">FIG. 4</figref> also indicates that good sector pulses were produced for sector <b>1</b>, indicating that its error or errors were corrected immediately. A good sector pulse was generated immediately for sector <b>2</b> because sector <b>2</b> had no errors. Similarly, a good sector pulse was produced for sector <b>3</b> after its errors were immediately corrected, and a good sector pulse for sector <b>4</b> was produced soon afterwards, because sector <b>4</b> contained no errors. The errors in sector <b>5</b> were corrected, which produced a good sector pulse for sector <b>5</b>.
0026In conventional disk drives, the bad sector <b>0</b> would be re-read from the disk, adding time to the read process. With the present invention, though, idle time of the correction engine is utilized to try to fix sector <b>0</b>, without re-reading the bad sector from the disk. In the example of <figref idref="DRAWINGS">FIG. 4</figref>, the correction engine is idle in the time allocated for sectors <b>2</b> and <b>4</b>.
0027The manner in which the correction engine idle time is used is illustrated in <figref idref="DRAWINGS">FIG. 5</figref>. Requested sectors are continuously read at step S<b>50</b>, and are continuously stored in buffer memory in step S<b>52</b>. In step S<b>54</b>, sectors which have been released for host access are sent to the host as commanded.
0028As sectors are read and stored in the buffer memory, a syndrome is generated at step S<b>55</b>, and the results are checked in step S<b>56</b>. If no errors are found in a sector (i.e., the syndrome result is all 0), the sector is released for host access from the buffer memory in step S<b>58</b>.
0029If errors are detected at step S<b>56</b> (i.e., the syndrome result is not all 0), the syndromes are passed to the correction engine <b>44</b> at step S<b>57</b>, and the correction engine <b>44</b> attempts to identify the errors in the bad sector using a selected correction facility. If the errors are identified using the first selected correction facility, the bad sector is corrected in the buffer memory <b>26</b> in step S<b>62</b>. The corrected sector is then released for host access from the buffer in step S<b>58</b>.
0030If the errors are not corrected in the correction engine <b>44</b> using the first selected correction facility, the control unit <b>34</b> determines whether all correction facilities have been exhausted, in step S<b>64</b>. If not, the bad sector is held in the buffer memory <b>26</b> and the syndrome is held in temporary syndrome storage <b>47</b> (step S<b>66</b>) until the correction engine has idle time. When idle time is detected at step S<b>70</b>, the error correction engine <b>44</b> attempts error correction again, using a different selected correction facility. The control unit continues to loop the correction engine through various correction facilities until the errors are corrected or all the correction facilities have been exhausted. If all correction facilities have been exhausted and the errors are not corrected, the sector is re-read or the controller indicates that the read attempt has failed, at step S<b>72</b>. In this manner, idle time of the correction engine is utilized to avoid re-reading a bad sector from the disk, until all correction facilities have been exhausted.
0031With this invention, errors in sector data can be corrected more often without re-reading the sectors, eliminating an extra rotation of the disk. This is more efficient than conventional systems, and decreases the response time of the disk drive.
0032While the principles of the invention have been described above in connection with specific apparatus and applications, it is to be understood that this description is made only by way of example and not as a limitation on the scope of the invention.
Contents4
6 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8316280B2 | Cited by | United States of America | Applicant |
| US8797833B1 | Cited by | United States of America | Search report |
| US2010241930A1 | Cited by | United States of America | Pre-grant |
| US8953425B1 | Cited by | United States of America | Search report |
| US2003163759A1 | Cites | United States of America | Search report |
| US2003177434A1 | Cites | United States of America | Search report |
| US2004199718A1 | Cites | United States of America | Search report |
| US2005076285A1 | Cites | United States of America | Search report |
| US5778009A | Cites | United States of America | Search report |
| US5812564A | Cites | United States of America | Search report |
| US5844919A | Cites | United States of America | Search report |
| US5914967A | Cites | United States of America | Search report |
| US5974582A | Cites | United States of America | Search report |
| US6061824A | Cites | United States of America | Search report |
| US6247152B1 | Cites | United States of America | Search report |
| US6321351B1 | Cites | United States of America | Search report |
| US6327106B1 | Cites | United States of America | Search report |
| US6363511B1 | Cites | United States of America | Search report |
| US6961877B2 | Cites | United States of America | Search report |
| US6981205B2 | Cites | United States of America | Search report |
3 members in 2 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 93606904 | United States of America | A | |
| US20040936069 | – | – | – |
Members3
| Document | Office | Kind | |
|---|---|---|---|
| US2006053360A1 | United States of America | A1 | |
| JP2006079810A | Japan | A | |
| US7213192B2This record | United States of America | B2 |
29 transactions on the USPTO file
Allowed without a rejection on record.
- Non-final rejections
- 0
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Is Now CompleteCOMP | COMP | |
| Application Is Now CompleteCOMP | COMP | |
| Application Is Now CompleteCOMP | COMP | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Return TO OIPEROIPE | ROIPE | |
| Correspondence Address ChangeC.AD | C.AD | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Return TO OIPEROIPE | ROIPE | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Return TO OIPEROIPE | ROIPE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Correspondence Address ChangeC.AD | C.AD | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
3 recorded assignments at the USPTO, latest first
- Now
Now: Held by
TOSHIBA STORAGE DEVICE CORP - 2009-10-26
Assignment of assignors interest.
- From
- FUJITSU LTD
- To
- TOSHIBA STORAGE DEVICE CORP
Recorded 2009-10-26, Signed 2009-10-14
- 2009-10-26
Assignment of assignors interest.
Ownership change- From
- FUJITSU LTDFUJITSU LIMITED
- To
- TOSHIBA STORAGE DEVICE CORPTOSHIBA STORAGE DEVICE CORPORATION
Recorded 2009-10-26, Signed 2009-10-14
- 2004-09-08
Assignment of assignors interest.
Ownership change- From
- JAMES MICHAEL
- To
- FUJITSU LTDFUJITSU LIMITED
Recorded 2004-09-08, Signed 2004-09-02
10 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Lapse for failure to pay maintenance feesLapsedLAPS | LAPS | |
| Maintenance fee reminder mailedREMI | REMI | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Not any more in us assignment databaseASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FUJITSU LIMITED;REEL/FRAME:023419/0031XAS | XAS | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 07213192
- Publication, DOCDB
- 7213192
- Publication, EPODOC
- US7213192
- Application
- 10936069
- Application, DOCDB
- 93606904
- Application, EPODOC
- US20040936069
Titles
- English
- Methods and apparatus for correcting errors in data read from a disk drive
Patent term adjustment
- A delay
- +406 daysthe office missed an examination deadline
- Applicant delay
- −1 day
- Net adjustment
- 405 days
Classification
- CPC, 2
- G11B20/00
- G06F2211/1004
- IPC, 1
- G11B20 18
- USPC, 1
- 714769000