Read retry method in disk drive

A method for retrying a read operation upon detecting a read error of a disk drive is disclosed. The method includes the steps of decreasing the revolution rate of a disk until the read error is corrected; and if the read error is corrected, gradually increasing the revolution rate of the disk while a data read operation is performed.

BACKGROUND OF THE INVENTION
 1. Field of the Invention
 The present invention relates generally to disk drives such as CD-ROM
 (Compact Disk-Read Only Memory) drives, and more particularly, to a method
 for reducing read errors when reading data with a disk drive.
 2. Description of the Related Art
 Since a CD-ROM drive used in a contemporary personal computer or
 workstation accesses data at high speed such as 16.times. or 24.times.
 speed, read errors are likely to occur. Such a high-speed disk drive is
 designed to perform read retry processing that repeatedly attempts to read
 upon detecting a read error. Methods for the read retry processing are as
 follows: (1) a general method to retry reading for a prescribed number of
 times under the condition that the number of disk revolutions per unit
 time (i.e., disk revolution rate) is maintained at a given level; (2) a
 temporary decelerating method for reattempting to read by decreasing the
 disk revolution rate if an error is not corrected by the first general
 method, and for returning to the original disk revolution rate if the disk
 drive succeeds in reading; and (3) a decelerating method for reattempting
 to read by decreasing the disk revolution rate if an error is not
 corrected by the first general method, and for maintaining the revolution
 rate at the decreased level if the disk drive successfully reads.
 The above methods for read retry processing have respective advantages and
 disadvantages. The first general method exhibits low error correcting
 capability because the disk revolution rate is always maintained at a
 given level. The second temporary decelerating method is superior in error
 correcting capability, but increases the load on the system. That is, the
 revolution of a spindle motor is frequently controlled, due to a frequent
 abrupt increase in the disk revolution rate to return to the original
 revolution rate after a corresponding abrupt decrease the revolution rate
 to overcome an error. Furthermore, the second temporary decelerating
 method may damage the disk because the disk returns to the original
 revolution rate after an error is corrected. Typically, the disk is
 damaged due to the abrupt changes in the revolution speed of the disk. The
 damaged part of the disk may generate a read error again and therefore it
 becomes difficult to decipher the data in the error-prone region. In the
 third decelerating method, the data transmission rate is lowered because
 the decreased disk revolution rate is maintained after an error occurs.
 SUMMARY OF THE INVENTION
 It is an object of the present invention to provide a read retry method
 which has superior error correcting capability, and which can reduce read
 errors while maintaining a high data transmission rate.
 According to an aspect of the present invention, there is provided a method
 for retrying a read operation upon detecting a read error of a disk drive,
 including the steps of decreasing the revolution rate of a disk until the
 read error is corrected; and if the read error is corrected, gradually
 increasing the revolution rate of the disk while a data read operation is
 performed.
 The present invention improves error correcting capability by lowering the
 disk revolution rate when necessary. Once an error is corrected, the
 original disk revolution rate is not immediately returned to, in contrast
 to the conventional temporary decelerating method. Rather, the revolution
 rate is gradually increased in stages while a read operation is performed.
 Therefore, the next error can rapidly be detected before the revolution
 rate is significantly increased. As a result, unnecessary retrying time is
 diminished and the probability of generating an error reduced. Moreover,
 the spindle motor of the disk drive is prevented from revolving abruptly.
 In an illustrative embodiment, if the disk drive succeeds in reading a
 prescribed number of data blocks after a read error is corrected, the disk
 revolution rate is gradually increased. The number of data blocks is set
 in accordance with the type of error detected, e.g., an ECC (Error
 Correction Code) error or a servo error. For the ECC error, the data
 blocks are set in consideration of a scratch or contamination of the disk.
 In the case of a servo error, the number of data blocks is set in
 consideration of the vibration of the disk.
 The inventive read retry method can overcome an error at a maintainable
 maximum transmission rate because the number of revolutions of the disk is
 decreased in stages at the decreasing step. If a read error occurs again
 during the increasing step, the decreasing step is performed again.
 Therefore, an error can rapidly be sensed and an unnecessary retry
 operation omitted.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
 Referring to FIG. 3, in an optical disk drive such as a CD-ROM or digital
 versatile disk (DVD) drive, the position of a pick-up 2 is controlled by a
 servo DSP (digital signal processor) 3. A control signal which controls
 the disk revolution rate is transmitted from the servo DSP 3 to a spindle
 motor driver 5. The spindle motor driver 5 rotates a disk 1 at the proper
 number of revolutions per unit time by driving a spindle motor (SPM) 7,
 which is a disk motor, in response to the control signal from the servo
 DSP 3. Data read from the pick-up 2 is transmitted to a host computer via
 a decoder/interface 4. The overall operation of the servo DSP 3 is
 controlled by a central processing unit (CPU) 6.
 FIG. 1 is a flow chart illustrating an embodiment of a read retry method in
 accordance with the present invention. Various parameters used during the
 process are defined as follows: n is the number of retries in a recovery
 process; m is a number less than n, and in the range of one to five; A is
 a set number of data blocks corresponding to a scratch or contamination
 area of a disk, and B is a set number of data blocks corresponding to a
 servo error. That is, in the case of a servo error, a read success
 interval corresponding to B blocks is set by considering how many
 consecutive data block errors are caused by a typical vibration. It is
 noted here that when a disk rotates at a certain rotational speed of the
 spindle motor, the outer circumference of the disk is moving faster than
 the central portion of the disk. Hence, when setting an appropriate value
 for the parameter B considering the effect of vibrations, this fact should
 be taken into account.
 The read retry procedure begins in step 10, where a read operation is
 performed at the latest disk revolution rate. Initially, the latest
 revolution rate is typically a maximum rate. A "retry count" representing
 the number of retries at the maximum rate is initially set to zero. Also,
 an initial value of the maximum number of retries is set to n. As data is
 read from the disk, CPU 6 determines if a read error has occurred at steps
 20 and 30. If an ECC (error correction code) error is determined to have
 occurred at step 20, the routine proceeds to step 25 where a number of
 consecutive data blocks (which is used as a threshold for a subsequent
 successful read determination) is set to the parameter A. If, at step 30,
 it is determined that a servo error has occurred (typically causing
 vibration of the disk), the number of consecutive data blocks is set to
 the parameter B at step 35. If the number of consecutive blocks is set to
 A or B, a block count value is set to "0" at step 40.
 Next, the number of retries that have been performed, which corresponds to
 the retry count, is checked at step 50. If the number of retries is less
 than the set maximum value (n), the CPU 6 increases the retry count by one
 at step 52, and then returns to step 10 to perform a retry operation (a
 recovery process) by the conventional first general retry method. That is,
 another read attempt is made at the same disk revolution rate as the
 previous read attempt. On the other hand, if the number of retries equals
 the maximum value at step 50, the revolution rate of the spindle motor 7
 is decreased by one stage at step 60. The maximum number of retries is set
 to "0" at step 70. By setting this maximum number to zero, the next retry
 operation at the decreased revolution rate will be performed only once,
 since a "YES" answer will subsequently result in step 50. That is,
 multiple retries at each incrementally reduced revolution rate are not
 attempted. (In alternative embodiments, each retry operation at a
 decreased revolution rate can be performed two or more times.) However, if
 in step 80 it is determined that the revolution rate of the spindle motor
 7 has reached a minimum value (or is unchanged from its previous rate if
 the previous rate cannot be reduced any further) that status is designated
 to be a read error. Conversely, if the number of revolutions of the
 spindle motor 7 can be decreased, the CPU 6 returns to step 10 to perform
 the retry operation at the incrementally decreased revolution rate. It is
 noted here that the stages (decrements) by which the revolution rate is
 decreased need not be uniform. For instance, the first decrement may be
 from 24.times. to 16.times., with subsequent decrements being units of
 4.times..
 Thus, if a read error is initially detected, the CPU 6 first retries the
 read operation by n times at the initial revolution rate. If the read
 error is not corrected, the CPU 6 performs the read retry operation while
 gradually decreasing the revolution rate of the spindle motor 7 (a
 decelerating process). If it is impossible to perform a satisfactory read
 operation, in spite of the fact that the revolution rate of the spindle
 motor 7 has decreased to a minimum value, that status is designated as a
 read error. If the CPU 6 successfully reads (e.g., if it performs
 error-free reading from one data block or reading with an acceptable low
 number of errors from that data block) it continues to perform a read
 operation. Hence, even though there is an error due to a scratch,
 contamination or vibration of the disk 1, a read operation can be
 performed at the maximum readable revolution rate by virtue of the gradual
 reduction in the spindle motor revolution rate.
 If a read error is corrected by the above steps, the CPU 6 adds "1" to a
 block count value at step 90. The block count value is compared at step
 100 with the number of consecutive blocks A or B previously set in step 25
 or 35. That is, an interval which is concluded to be successful in reading
 after a read error is corrected is checked according to the error type
 (ECC or servo error). If the CPU 6 succeeds in reading during the number
 of consecutive blocks which is set according to the error type, it is
 decided that there is a low probability of generating consecutive errors.
 In other words, if the block count value is greater than or equal to the
 number of consecutive blocks, the revolution rate of the spindle motor 7
 is gradually increased at step 110. (The gradual increase can be on an
 incremental basis, with a read operation attempted at each incrementally
 increased revolution rate.) It is then checked at step 120 whether the
 revolution rate of the spindle motor 7 has reached a maximum value. If so,
 the maximum number of retries is reset to the parameter n at step 140. If
 the revolution rate is below the maximum value, the maximum number of
 retries is set to the parameter m, which is less than n, to continue to
 perform a read operation. By setting the maximum number of retries to m,
 rather than n, faster processing speed is achieved. Namely, if an error
 occurs again while the revolution rate of the spindle motor 7 is
 increased, it is due largely to the same error type as the previous one.
 Hence, it is preferable to reduce the number of retries during the
 recovery process at the gradually increased rotation rate, so as to
 quickly return to the deceleration process if necessary.
 Accordingly, through steps 90 to 140, if a read operation is successfully
 carried out after an error is detected, the revolution rate of the spindle
 motor 7 is gradually increased. If an error occurs again, a read operation
 can be performed by rapidly decreasing the revolution rate of the spindle
 motor 7 to that when the previous error was corrected, and even further if
 necessary. Moreover, the spindle motor 7 can gradually return to its
 maximum revolution rate.
 Variations in the revolution rate of the spindle motor 7 upon detecting an
 error are shown in FIGS. 2A and 2B. FIG. 2A shows variations in the
 revolution rate controlled by the conventional second and third
 decelerating methods; FIG. 2B shows exemplary variations in the revolution
 rate according to the present invention.
 Referring to FIG. 2A, when there are errors at points (1) to (6), the
 revolution rate of the spindle motor 7 controlled by the conventional
 second temporary decelerating method shifts between 8.times. speed and
 24.times. speed as indicated by a solid line. In the conventional third
 decelerating method, 8.times. speed is maintained after the number of
 revolutions is decreased from 10 24.times. speed to 8.times. speed as
 indicated by a dotted line.
 Referring to FIG. 2B, the revolution rate of the spindle motor 7 is
 decreased from 24.times. speed to 16.times. speed upon detecting an error
 at the point (1), and successful reading occurs at 16.times. speed.
 Thereafter, since a stable read operation has been attained, the
 revolution rate is gradually increased to 24.times. speed. When an error
 occurs at the point (2), the revolution rate is decreased to 16.times.
 speed again. Thereafter, since an error is detected while the revolution
 rate is gradually increased, the rate is again decreased to 16.times.
 speed. At points (4), (5) and (6), the rate is reduced in stages. That is,
 the revolution rate is reduced to 16.times. speed at point (4), to
 12.times. speed at point (5), and to 8.times. speed at point (6). Whether
 or not a stable read operation is achieved is determined in accordance
 with the number A or B of consecutive blocks, set according to the error
 type.
 When comparing variations in the revolution rate of the spindle motor 7,
 the conventional second temporary decelerating method affords fast speed,
 but the difference between the increased and decreased revolution rates is
 large. Therefore, it is difficult to achieve a stable read operation.
 However, in the present invention, a stable read operation can be obtained
 by suppressing the differences between the increased and decreased
 revolution rates. Further, since a retry operation is repeated at the same
 revolution rate upon detecting an error, a high transmission rate can be
 maintained in comparison with the conventional second temporary
 decelerating method. Although the conventional third decelerating method
 can perform a stable read operation since the number of revolution rate is
 maintained at 8.times. speed after an error is generated, the overall
 speed at which data is read is diminished. Consequently, the read retry
 method according to the present invention is superior.
 The inventive read retry method can reduce data read errors since there is
 no need to abruptly change the revolution rate of the spindle motor on a
 frequent basis. A read operation can be performed at a maintainable
 maximum transmission rate by decreasing the revolution rate of the spindle
 motor in stages. Since the spindle motor is gradually accelerated, an
 error can rapidly be sensed. Therefore, the occurrence of unnecessary
 retry operations is reduced, and the overall data transmission rate is
 improved.
 While the invention has been shown and described with reference to a
 certain preferred embodiment thereof, it will be understood by those
 skilled in the art that various changes in form and details may be made
 therein without departing from the spirit and scope of the invention as
 defined by the appended claims.