Abstract:
An optical storage apparatus for reproducing data from an optical medium is disclosed. The optical storage apparatus includes a rotation unit for rotating the optical medium at a rotational speed; a buffer memory for buffering data to be transmitted to a host; a data accessing unit, coupled to the buffer memory, for accessing data on the optical medium and storing data read from the optical medium into the buffer memory; and a buffer control block, coupled to the buffer memory, for monitoring a storage status of the buffer memory to control the rotation unit to adjust the rotational speed of the optical medium.

Description:
BACKGROUND  
       [0001]     This disclosure relates to an apparatus and method for reproducing data from an optical medium, and more particularly, to an apparatus and method for reproducing data from an optical medium driven at a variable rotational speed.  
         [0002]     Optical technology has given rise to highly popular devices such as CD and DVD players. The superior quality of such devices as compared to traditional audio devices has encouraged great development in the field.  
         [0003]     Most modern optical disc players utilize a specific rotational speed for both playback and data copying. If this specific rotational speed is relatively low, time taken for data copying will be significant. On the other hand, if the specific rotational speed is relatively high, power will be unnecessarily wasted, and noise due to excess spindle rotation may be present for playback. How to properly set the rotational speed for optimizing both playback and data copying performance becomes an important issue for designers.  
       SUMMARY  
       [0004]     It is therefore one of the objectives of the present invention to provide an optical disc player that can adjust the rotational speed by monitoring storage status of a buffer memory.  
         [0005]     Briefly described, the present disclosure comprises an optical disc rotating at a rotational speed; a rotation unit for rotating the optical disc, the rotation unit comprising a motor, and a rotation block; a data accessing unit for accessing data on the optical disc, the data accessing unit comprising an optical pickup, a servo control block, and a demodulator block; a buffer memory for buffering data accessed from the optical disc; and a buffer control block for determining control parameters of the optical disc system, comparing the control parameters with predetermined thresholds to generate comparison results, and utilizing the comparison results to control the rotational speed of the optical disc.  
         [0006]     A first embodiment of the optical storage apparatus determines a first control parameter when a buffer full event occurs; decreases the rotational speed of the disc if the first control parameter is greater than a first predetermined threshold; then determines a second control parameter; and increases the rotational speed of the disc if the second control parameter is greater than the second predetermined threshold. If no buffer full event occurs during a read request, the buffer control block determines the second control parameter and compares it with the second predetermined threshold without first carrying out the first control parameter comparison. The buffer control block will then increase the rotational speed of the disc if the second control parameter is greater than the second predetermined threshold.  
         [0007]     A second embodiment of the optical storage apparatus improves on the first embodiment by setting a cache_hit flag if data requested is already in the buffer. The optical storage apparatus resets the second control parameter if the first control parameter is equal to the first predetermined threshold and the cache_hit flag is set, or if the first control parameter is greater than the first predetermined threshold.  
         [0008]     A third embodiment calculates a control parameter between two buffer full events, increases the rotational speed if the control parameter is greater than a first predetermined threshold, and decreases the rotational speed if the control parameter is lower than a second predetermined threshold.  
         [0009]     A fourth embodiment determines a control parameter between an initial monitor time and a time threshold, decreases the rotational speed if the control parameter is greater than a first predetermined threshold, and increases the rotational speed if the control parameter is lower than a second predetermined threshold.  
         [0010]     These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]      FIG. 1  is a block diagram of an optical storage apparatus according to an embodiment of the present invention.  
         [0012]      FIG. 2  is a flowchart illustrating a first embodiment of tuning the rotational speed of an optical disc shown in  FIG. 1 .  
         [0013]      FIG. 3  is a flowchart illustrating a second embodiment of tuning the rotational speed of the optical disc shown in  FIG. 1 .  
         [0014]      FIG. 4  is a flowchart illustrating a third embodiment of tuning the rotational speed of the optical disc shown in  FIG. 1 .  
         [0015]      FIG. 5  is a flowchart illustrating a fourth embodiment of tuning the rotational speed of the optical disc shown in  FIG. 1 . 
     
    
     DETAILED DESCRIPTION  
       [0016]     Please refer to  FIG. 1 .  FIG. 1  is a block diagram of an optical storage apparatus  100  according to an embodiment of the present invention. In this embodiment, the optical storage apparatus  100  is an optical disc drive, and is utilized to access an optical disc  12 . The optical storage apparatus  100  rotates the optical disc  12  at a variable rotational speed by a rotation unit  40 . The rotation unit  40  comprises a motor  14 , and a rotation control block  32  used to drive the motor  14  for adjusting the rotational speed of the optical disc  12 . When data is requested from the optical disc  12  by a host  26 , a data accessing unit  50  accesses data from the optical disc  12 , demodulates it and sends it to a buffer memory  22 . The data accessing unit  50  comprises an optical pickup  16  for emitting laser light to the optical disc  12  and detecting reflected laser light from the optical disc  12 , a servo control block  36  for controlling tracking and focusing of the optical pickup  16 , and a demodulator block  18  for demodulating the reflected laser light to obtain the desired data stored on the optical disc  12 . A buffer control block  28 , connected to the buffer memory  22 , is utilized for controlling the rotation unit  40  to drive the optical disc  12  at a particular rotational speed. This is achieved by determining various control parameters of the optical storage apparatus  100 , and comparing the control parameters with predetermined thresholds, which is further detailed as follows.  
         [0017]     Based on a generated comparison result, the buffer control block  28  will determine whether to control the rotation unit  40  to increase or decrease the rotational speed of the optical disc  12 . The control parameters are calculated when it is determined by the buffer control block  28  that the buffer memory  22  is full. Please refer to  FIG. 2 .  FIG. 2  is a flowchart illustrating a first embodiment of tuning the rotational speed of the optical disc  12  shown in  FIG. 1 . The steps are as follows:  
         [0018]     Step  100 : Data read request from host  26 .  
         [0019]     Step  101 : Buffer full event occurred? If yes, go to step  102 ; otherwise, go to step  104 .  
         [0020]     Step  102 : Is rotational speed greater than minimum optimum velocity? If yes, go to step  103 ; otherwise, go to step  104 .  
         [0021]     Step  103 : Lower the rotational speed.  
         [0022]     Step  104 : Is the read success count greater than a predetermined threshold? If yes, go to step  105 ; otherwise, go to step  106 .  
         [0023]     Step  105 : Increase the rotational speed.  
         [0024]     Step  106 : End read request.  
         [0025]     When data is requested by the host  26 , data will be reproduced at a maximum optimum rotational speed, and sent to the buffer memory  22  (step  100 ). If a buffer full event occurs during a read request, this indicates that the rotational speed of the optical disc  12  is too fast (step  101 ). The buffer control block  28  utilizes the buffer full event to compare the rotational speed of the optical disc  12  with a minimum optimum rotational speed (step  102 ). If the rotational speed of the optical disc  12  is greater than this threshold (i.e. the minimum optimum rotational speed), the buffer control block  28  will control the rotation control block  32  to decrease the rotational speed of the optical disc  12 . This may cause the rotational speed to be lowered too much, so the buffer control block  28  then determines a read success count, i.e. the number of times data is successfully transferred from the buffer memory  22  to the host  26 , and compares this to a predetermined threshold (step  104 ). If the read success count is greater than the predetermined threshold, this indicates that the rotational speed of the optical disc  12  is too slow, so the buffer control block  28  controls the rotation control block  32  to increase the rotational speed of the optical disc  12  (step  105 ). Please note that, referring to the flowchart shown in  FIG. 2 , the operation of comparing the read success count with the predetermined threshold takes place even when a buffer full event does not occur in a read request. A DVDROM, for example, has a minimum optimum rotational speed of 4×, and a maximum optimum rotational speed of 16×. If a buffer full event occurs, the rotational speed will be downgraded in increments of 4×: i.e. 16×-&gt;12×-&gt;8×-&gt;4×. The read success count of the DVDROM is set as 10; if data is successfully transferred from the buffer memory to the host ten times, the rotational speed will be increased. Please note these numbers are given as examples to further illustrate the present invention and should not be construed as limitations.  
         [0026]     In this first embodiment of the present invention the read success count may exceed the predetermined threshold immediately after a buffer full event occurs. In this case, the optical storage apparatus  100  will switch between a high and a low velocity too fast, degrading the performance of the optical storage apparatus  100 . Please refer to  FIG. 3 .  FIG. 3  is a flowchart illustrating a second embodiment of tuning the rotational speed of the optical disc  12  shown in  FIG. 1 . The steps are as follows:  
         [0027]     Step  200 : Data read request from host  26 .  
         [0028]     Step  201 : Is data requested already in the buffer memory  22 ? If yes, go to step  202 ; otherwise, go to step  203 .  
         [0029]     Step  202 : Set a cache_hit flag.  
         [0030]     Step  203 : Has a buffer full event occurred? If yes, go to step  204 ; otherwise, go to step  209 .  
         [0031]     Step  204 : Is the rotational speed greater than a minimum optimum velocity? If yes, go to step  208 ; otherwise, go to step  205 .  
         [0032]     Step  205 : Is the rotational speed equal to the minimum optimum velocity? If yes, go to step  206 ; otherwise, go to step  209 .  
         [0033]     Step  206 : Is the cache_hit flag set? If yes, go to step  207 ; otherwise, go to step  209 ;  
         [0034]     Step  207 : Reset the read success count. Go to step  209 .  
         [0035]     Step  208 : Lower rotational speed and reset the read success count.  
         [0036]     Step  209 : Is the read success count greater than a predetermined threshold? If yes, go to step  210 ; otherwise, go to step  211 .  
         [0037]     Step  210 : Increase the rotational speed and reset the read success count.  
         [0038]     Step  211 : End read request.  
         [0039]     The second embodiment is similar to the first embodiment but is able to prevent the premature switching between high and low rotational velocities, by resetting the read success count after the rotational speed is decreased, and by utilizing a cache_hit flag for resetting the read success count. When data requested is already stored in the buffer memory  22  after the host  26  issues the corresponding data request, a cache_hit flag is set (steps  200 ,  201 , and  202 ). When the cache_hit flag is set, the read success count should be reset to zero to avoid the velocity being raised. If the rotational speed is equal to the minimum optimum rotational speed and the cache_hit flag is set, the read success count is reset (steps  205 ,  206 , and  207 ). If the rotational speed is greater than the minimum optimum rotational speed, the rotational speed is lowered and the read success count is reset (steps  204  and  208 ). The read success count is then compared with the predetermined threshold, as in the previous embodiment, and the rotational speed increased if the read success count is greater than the threshold (steps  209  and  210 ). Since part of the steps shown in  FIG. 3  are identical to that shown in  FIG. 2 , further description is omitted here for brevity.  
         [0040]     Please refer to  FIG. 4 .  FIG. 4  is a flowchart illustrating a third embodiment of tuning the rotational speed of the optical disc  12  shown in  FIG. 1 . The steps are as follows:  
         [0041]     Step  300 : Data read request from host  26 .  
         [0042]     Step  301 : Calculate read request count between two buffer full events.  
         [0043]     Step  302 : Is the read request count greater than a maximum threshold? If yes, go to step  305 ; otherwise, go to step  303 .  
         [0044]     Step  303 : Is the read request count lower than a minimum threshold? If yes, go to step  304 ; otherwise, go to step  306 .  
         [0045]     Step  304 : Lower the rotational speed. Go to step  306 .  
         [0046]     Step  305 : Increase the rotational speed.  
         [0047]     Step  306 : End read request.  
         [0048]     In this embodiment, after the host  26  issues a data request to the optical storage apparatus  100 , the buffer control block  28  determines the read request count between two buffer full events (steps  300  and  301 ). Then, the buffer control block  28  is designed to have two predetermined thresholds, i.e. a maximum threshold and a minimum threshold, used to examine the calculated read request count. If the frequency of read requests from the host  26  between two buffer full events (i.e. the calculated read request count) is greater than the maximum threshold, this indicates that the rotational speed of the optical disc  12  is too low, so the buffer control block  28  controls the rotation control block  32  to increase the rotational speed of the optical disc  12  (steps  302  and  305 ). However, if the read request count is not greater than the maximum threshold, the read request count will be compared with the minimum threshold (steps  302  and  303 ). If the frequency of read requests from the host  26  between two buffer full events is lower than the minimum threshold, this indicates that the rotational speed of the optical disc  12  is too high, so the buffer control block  28  controls the rotation control block  28  to decrease the rotational speed of the optical disc  12  (steps  303  and  304 ).  
         [0049]     Please refer to  FIG. 5 .  FIG. 5  is a flowchart illustrating a fourth embodiment of tuning the rotational speed of the optical disc  12  shown in  FIG. 1 . The steps are as follows:  
         [0050]     Step  400 : Data read request from host  26 .  
         [0051]     Step  401 : Is time limit reached? If yes, go to step  402 ; otherwise, go to step  403 .  
         [0052]     Step  402 : Reset monitor time and buffer full count. Go to step  403 .  
         [0053]     Step  403 : Is the monitor time equal to the time threshold? If yes, go to step  404 ; otherwise, go to step  408 .  
         [0054]     Step  404 : Is the buffer full count greater than a maximum threshold? If yes, go to step  407 ; otherwise, go to step  405 .  
         [0055]     Step  405 : Is the buffer full count lower than a minimum threshold? If yes, go to step  406 ; otherwise, go to step  408 .  
         [0056]     Step  406 : Increase the rotational speed. Go to step  408 .  
         [0057]     Step  407 : Lower the rotational speed.  
         [0058]     Step  408 : End read request.  
         [0059]     The buffer control block  28  determines the number of buffer full events between an initial monitor time and a time threshold. In this embodiment, after the host  26  issues a data request, the buffer control block  28  checks if the preset time limit is reached (steps  400  and  401 ). Please note that the time limit is greater than the time threshold. In this embodiment, using the preset time limit is to define the resetting timing for the increasing monitor time and the buffer full count. That is, each time the monitor time reaches the time limit, the monitor time is reset to the initial monitor time and the calculated buffer full count is reset to an initial value (e.g. zero) (step  402 ). Then, when the monitor time reaches the time threshold, the buffer control block  28  checks the currently calculated buffer full count (steps  403  and  404 ). If the buffer full count is greater than a maximum threshold, this indicates that the rotational speed is too high, as the buffer memory  22  is being filled with data too quickly. Therefore, the buffer control block  28  will decrease the rotational speed of the optical disc  12  by controlling the rotation control block  32 . However, if the buffer full count is lower than the maximum threshold, it will be compared with a minimum threshold (step  405 ). If the buffer full count is lower than the minimum threshold, this indicates that the rotational speed is too low, so the buffer control block  28  will increase the rotational speed of the optical disc  12  by controlling the rotation control block  32  (step  406 ). It should be noted that the clock continues to monitor the time over repeated read requests. Therefore, once the time limit is reached, the monitor time and the buffer full count are reset.  
         [0060]     Please note that the maximum threshold (in step  404 ) and the minimum threshold could be preset according to the rotational speed. For example, when the rotational speed is 16×, the maximum threshold is set to 24 and the minimum threshold is set to 12. When the rotational speed is 12×, the maximum threshold is set to 22 and the minimum speed is set to 14. When the rotational speed is 8×, the maximum threshold is set to 20 and the minimum threshold is set to 16. Please note that these thresholds are merely given as examples and should not be taken as limitations of the present invention.  
         [0061]     Referring to the above embodiments, the buffer control block for monitoring buffer full events and comparing counts with predetermined thresholds to lower or raise the rotational speed allows maximum efficiency to be reached during data recording operation and prevents noise caused by excess spindle rotation during playback operation.  
         [0062]     Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.