Rotational speed control method for a disk player

A method is disclosed for adjusting the rotational speed of a disk player based on a calculated variable. The method increases the rotational speed of the disk player when the calculated variable is greater than a first threshold and decreases the rotational speed of the disk player when the calculated variable is less than a second threshold.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention pertains to a method that dynamically adjusts the rotational speed of a disk drive according to the data transfer rate from the computer system and the disk player.

2. Description of the Prior Art

The increase in the operating speed of personal computers (PCs) has been accompanied by improvements in the transfer speed and capacity of peripheral devices. Under these circumstances, computer storage media have also become multifunctional, instead of simply functioning as a means for the storage of information. For example, the contents of a CD-ROM disk can be music, data, or video. However, different applications may have large differences in the transfer rate between the optical disk player and the PC. For example, when a VCD movie is playing, the transfer rate is only 176 Kbyte/sec, that is, the so-called unit speed. On the other hand, the transfer rate of a document file can exceed 10 Mbyte/sec, an order of magnitudes.

In order to ensure that motor-driven disk drives (also referred to herein as disk players), such as for CD-ROMs, magnetic disks, or hard disks, can provide the transfer rate required by the computer, the motor is usually set to a rotational speed that is much higher than necessary. Thus, in conventional disk drives, it is very common for the motor to rotate at a very high speed even when the transfer rate required by the computer is fairly low. This results not only in inefficient power consumption, but also in noise and vibration generated by the motor when it rotates at high speeds. In addition, reading data at too high a speed may also result in the deterioration of the performance of the disk player.

Therefore, as described above, conventional high-speed disk players typically read data from disks at a set (i.e., fixed) and relatively high rotational speed. Regarding the setting of the motor speed of the disk player, the difficulty is how to calculate the computer system transfer rate. Since the transfer rate between the computer system and the disk player is affected by the time that the disk player itself spends reading data, one cannot simply assume that the amount of data transferred per unit time is the transfer rate.

Thus, there remains a need for disk drive and method that overcomes the drawbacks set forth above.

SUMMARY OF THE DISCLOSURE

It is an object of the present invention to provide a disk drive and method that avoids inefficient power consumption, noise and vibration generated by a disk drive motor that rotates at unnecessarily high speeds.

It is another object of the present invention to provide a disk drive and method that maintains the motor speed at an efficient level.

It is yet another object of the present invention to provide a disk drive and method whose motor speed is dynamically adjusted in accordance with the change in the transfer rate of data required by the computer system.

In order to accomplish the objects of the present invention, the present invention provides a method for adjusting the rotational speed of a disk player based on a calculated variable. Thereafter, the method increases or decreases the rotational speed of the disk player depending on whether the calculated variable is greater or less than one or more thresholds.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention provides, in a first embodiment, a method for adjusting the rotational speed of a disk player, which includes first calculating the proportion of time which the disk player is reading data from the disk during a unit time T. Thereafter, the method increases the rotational speed of the disk player if the proportion of time that the disk player spends reading data from the disk is greater than a first threshold during each of m consecutive units of time T, and decreases the rotational speed of the disk player if the proportion of time that the disk player spends reading data from the disk is less than a second threshold during each of n consecutive units of time T.

The present invention adopts a few assumptions in its method for adjusting the motor speed of a disk player. Instead of setting the motor speed by directly calculating the amount of data transfer between the computer system and the disk player, a method based on relative speed is used to determine whether to increase or decrease the motor speed. The assumptions are as follows

(1) If a disk player only spends a small amount of time during a given time period reading data from a disk, it means that the reading speed of the disk player is higher than is required by the computer system, and therefore the disk player need only spend a small portion of the time reading from the disk to satisfy the required amount of data transfer. In this case, the motor speed should be decreased.

(2) On the other hand, if during most of that given period of time, the disk player is reading data from the disk, then the reading speed of the disk player is less than that required by the computer system. In that case, the motor speed should be increased.

FIG. 1illustrates the primary elements of the system of the present invention according to a first embodiment. A disk player or drive50has a processor52that has an input coupled to a ROM54that stores all settings and the speed control software of the present invention. The processor52controls a motor56that drives the reading of a disk58, including the reading speed of the disk58. A decoder60is coupled to both the processor52and the disk58to facilitate the transfer of data from the disk58to the processor52. The decoder60can also be coupled to an interface of a PC or other device which is coupled to the disk drive50. The settings stored in the ROM54can include T, H, L, M and N, which are described below.

In operation, after a predetermined period of time T, the proportion of time that the disk player50spent reading data from the disk58is calculated, and the proportions of the data reading times in the previous m or n units of time periods T are also checked. If, during each such previous m units of time periods T, the proportion of time that the disk player50spends reading data from the disk58is greater than the threshold H for increasing the rotational speed, then the rotational speed for the motor56is increased. On the other hand, if, during each previous n units of time periods T, the proportion of time that the disk player50spends reading data from the disk58is less than the threshold L for decreasing the rotational speed, then the rotational speed for the motor56is decreased. In one non-limiting example, H can be 90%, and L can be 50%.

FIG. 2is a flowchart that illustrates the method according to one embodiment of the present invention. The present invention presents a dynamic speed control method with a variable transfer rate. Under the assumption that n=m, the method includes the following steps:

Step10: In this step, the values of T, H, and L are preset and the timing is started. Here, T is a constant time period, and H and L are the limit condition values to determine when to increase and decrease, respectively, the rotational speed of the motor. H is usually set at a value that is greater than L, and the values between H and L can be considered to represent the optimum rotational speeds. H and L can be adjusted to obtain the optimum rotational speeds.

Step11: In this step, the disk player50is coupled to the system circuit ofFIG. 1to perform its given task, such as executing commands issued by the computer. Processing then proceeds to step12.

Step12: In this step, it is determined whether the time period T has passed. If yes, processing proceeds to step13. If no, processing returns to step11.

Step13: In this step, Pk (i.e., the proportion of the time during which the disk player50reads data from the disk58during unit time T) is calculated based on t/T (i.e., Pk=t/T), and value of t is cleared, and the timing is restarted. Here, t is the time that the disk player spends reading data from the disk during unit time T, and k is used to denote a single block (seeFIG. 3). Processing then proceeds to step14.

Step14: In this step, it is determined whether k>m. If yes, this means that m units of time T have passed and processing proceeds to step15. If no, this means that fewer than m units of time T have passed, and processing proceeds to step18.

Step15: In this step, it is determined whether, in each of m previous consecutive units of time periods T (from the current Pk), the proportion of time that the disk player spends reading data from the disk is greater than H. In other words, are each of Pk, Pk-1. . . Pk-m+2, and Pk-m+1 greater than H? If the proportion of time that the disk player50spends reading data from the disk58is greater than H for each of m consecutive units of time T, then processing proceeds to step19to increase the rotational speed. If the proportion of time that the disk player50spends reading data from the disk58is not greater than H for each of m previous consecutive units of time T, then processing proceeds to step16.

Step16: In this step, it is determined whether k>n. If yes, this means that n units of time T have passed and processing proceeds to step17. If no, this means that fewer than n units of time T have passed, and processing proceeds to step18.

Step17: In this step, it is determined whether, in each of n previous consecutive units of time periods T (from the current Pk), the proportion of time that the disk player50spends reading data from the disk58is less than L. In other words, are each of Pk, Pk-1. . . Pk-n+2, and Pk-n+1 less than L? If the proportion of time that the disk player50spends reading data from the disk58is less than L for each of n consecutive units of time T, then processing proceeds to step20to decrease the rotational speed. If the proportion of time that the disk player50spends reading data from the disk58is not less than L for each of n previous consecutive units of time T, then processing proceeds to step18.

Step19: In this step, the rotational speed is increased by the processor52. The speed can be increased by using a number of different techniques, depending on the desired parameters and applications. For example, each incremental speed increase can be the same. As another example, a table (stored in the ROM54) can be used to store a number of pre-set increases, such as (but not limited to) 1000, 2000, 4000, 6000 rpm, etc. Thus, the first increase might be by 1000 rpm, the second increase would be by 2000 rpm, then the next increase would be by 4000 rpm, and so on. If such a technique is implemented, then any subsequent decreases (see step20) would have to follow the same progression, so that if the most recent speed increase was by 400 rpm, then a subsequent speed decrease would also be by 400 rpm, then the next speed decrease would be by 200 rpm, and so on. Then, Pk=(H+L)/2 is set so as to set Pk to a value between H and L to prevent another immediate increase or decrease when the next Pk is calculated in step13. Processing then proceeds to step18.

Step20: In this step, the rotational speed is decreased using principles similar to those explained above in connection with step19. Then Pk=(H+L)/2 is set (for the same reason as for step19above), and processing then proceeds to step18.

As an alternative, steps16and17can be performed before steps14and15because these two procedures are independent of each other.

In addition, m and n can be adjusted. For example, if m and n are increased to obtain a more stable speed change, this will carry with it an increase in the response time (i.e., more time is needed to achieve the required speed). To illustrate, assume that T=0.64 seconds. If m=4, then 0.64*4=2.56 seconds are required to increase the rotational speed. On the other hand, if m=6, then 0.64*6=3.84 seconds are required to increase the rotational speed.

According to the aforementioned method and as illustrated inFIG. 3, if the disk player50constantly reads data from the disk58for most of a given time period, this indicates that the disk player50is being overburdened, and the reading speed is less than the speed required by the computer system. Therefore, the rotational speed of the motor56should be increased to obtain a higher data transfer rate to meet the requirement of the computer system. On the other hand, if the disk player50reads data from the disk58for only a small part of a given time period, it indicates that the data transfer rate at the present rotational speed is much greater than that needed by the computer system. Thus, the rotational speed of the motor56should be decreased, and the motor56should be controlled to work at a more efficient rotational speed that is sufficient for the transfer rate required by the computer system. For example,FIG. 3illustrates that the rotational speed is increased when Pk exceeds H for m periods time T during the period310. During the period320, Pk is between the H and L values, so no changes in the rotational speed are needed. Then, the rotational speed is decreased when Pk is less than L for n periods time T during the period330.

FIG. 4is a flowchart that illustrates a method according to a second embodiment of the present invention, which illustrates another way to measure the loading of the player. The relationship between the reading speed of the disk player and the data speed requested by the computer system is decided by counting the number of read-commands received by the disk player50. A read-command is the command that is issued by the computer and received by the disk player50for the computer to request a certain section of data on the storage medium from the disk player50. The method includes the following steps:

Step410: In this step, the values of T, Hn, and Ln are preset and the timing is started. Here, T is a constant time period, and Hn and Ln are the limit condition values to determine when to increase and decrease, respectively, the rotational speed of the motor. Hn is usually set at a value that is greater than Ln. In this current example, the unit for Hn and Ln could be the number of read-commands.

Step411: In this step, the disk player50is coupled to the system circuit ofFIG. 1to perform its given task, such as executing commands issued by the computer. Processing then proceeds to step412.

Step412: In this step, it is determined whether the time period T has passed. If yes, processing proceeds to step413. If no, processing returns to step411.

Step413: In this step, an index Ck is determined by counting the number of read-commands received by the disk player50during a predetermined period of time T, and the timing is restarted. Here k is an index that is similar to that used in step13ofFIG. 2. In this example, Ck could be the number of read-commands issued by the computer during each unit time T. Furthermore, for read-commands requesting data stored in consecutive addresses, the burden to the disk player50may not as heavy as read-commands requesting data stored in non-consecutive addresses. Thus, different read-commands could be given various weighting according to their types and the loading they require, and Ck could also be a weighted summation of read-commands during each unit time T. Processing then proceeds to step414.

Step414: In this step, it is determined whether k>m. If yes, this means that m units of time T have passed and processing proceeds to step415. If no, this means that fewer than m units of time T have passed, and processing proceeds to step418.

Step415: In this step, it is determined whether, in each of m previous consecutive units of time periods T (from the current Ck), each of the counted value of read-commands is greater than Hn. In other words, are each of Ck, Ck-1. . . Ck-m+2, and Ck-m+1 greater than Hn? If the counted value of read-commands that the disk player50received is greater than Hn for each of m consecutive units of time T, then processing proceeds to step419to increase the rotational speed. If the counted value of read-commands that the disk player50received is less than Hn for each of m previous consecutive units of time T, then processing proceeds to step416.

Step416: In this step, it is determined whether k>n. If yes, this means that n units of time T have passed and processing proceeds to step417. If no, this means that fewer than n units of time T have passed, and processing proceeds to step418.

Step417: In this step, it is determined whether, in each of n previous consecutive units of time periods T (from the current Ck), the counted value of read-commands that the disk player received is less than Ln. In other words, are each of Ck, Ck-1. . . Ck-n+2, and Ck-n+1 less than Ln? If the counted value of read-commands that the disk player50received is less than Ln for each of n consecutive units of time T, then processing proceeds to step420to decrease the rotational speed. If the counted value of read-commands that the disk player50received is greater than Ln for each of n previous consecutive units of time T, then processing proceeds to step418.

Step418: The values of Ck-1. . . Ck-n+1 are updated by shifting the values of Ck-1. . . Ck-n+1. For example, Ck-n+1=the current Ck-n+2; . . . Ck-m+1=the current Ck-m+2; . . . Ck-2=the current Ck-1; Ck-1=the current Ck are set, and processing returns to step411. This shifting allows for the new Ck to be calculated.

Step419: In this step, the rotational speed is increased by the processor52. The speed can be increased by using a number of different techniques similar to those disclosed in step19above, and can be dependent on the desired parameters and applications. Moreover, Ck=(Hn+Ln)/2 is set so as to set Ck to a value between Hn and Ln to prevent another immediate increase or decrease when the next Ck is determined in step413. Processing then proceeds to step418.

Step420: In this step, the rotational speed is decreased using principles similar to those explained above in connection with step19. Then Ck=(Hn+Ln)/2 is set (for the same reason as for step419above), and processing then proceeds to step418.

As an alternative, steps416and417can be performed before steps414and415because these two procedures are independent of each other.

In addition, m and n can be adjusted. For example, if m and n are increased to obtain a more stable speed change, this will carry with it an increase in the response time (i.e., more time is needed to achieve the required speed) as illustrated in previous embodiment.

FIG. 5is a flowchart which illustrates a method according to a third embodiment of the present invention. The loading of the disk player50can be measured in a different way. Instead of monitoring the works during each time unit T, the method ofFIG. 5monitors the processing time needed by the disk player50to finish a fixed amount of works. For example, by measuring the time spent to finish reading a certain number of bytes of data, the proper speed requested by the computer can thus be derived. The method includes the following steps:

Step510: In this step, the values of D, Ht, and Lt are preset and the timing is started. Here, D is a certain amount of data such as 10 M bytes, and Ht and Lt are the limit condition values to determine when to decrease and increase, respectively, the rotational speed of the motor. Ht is usually set at a value that is greater than Lt, and Ht and Lt can be adjusted to obtain the optimum rotational speeds.

Step511: In this step, the disk player50is coupled to the system circuit ofFIG. 1to perform its given task, such as executing commands issued by the computer. Processing then proceeds to step512.

Step512: In this step, it is determined whether the predetermined amount of data D has been processed or requested by the computer. If yes, processing proceeds to step413. If no, processing returns to step411.

Step513: In this step, an index Tk is determined by calculating the time passed for the disk player50to finish a fixed amount of works, and then the timing is restarted. Here k is an index similar to that described in step13ofFIG. 2, and Tk here represents the total time that the disk player50consumes to process the D amount of data. For example, D amount of data could be set as 10M bytes of data, and Tk is set as the time period that the disk player50needs to transmit 10 M bytes to the computer. Processing then proceeds to step514.

Step514: In this step, it is determined whether k>m. If yes, this means that m units of data D have been processed and processing proceeds to step515. If no, this means that fewer than m units of data D have been processed and processing proceeds to step518.

Step515: In this step, it is determined whether, in the processing of each of m previous consecutive units of D amount of data (from the current Tk), the time consumed by the player is greater than Ht. In other words, are each of Tk, Tk-1. . . Tk-m+2, and Tk-m+1 greater than Ht? If the time that the disk player50spends processing D amount of data is greater than Ht for each of m consecutive units of D amount of data, then processing proceeds to step519to decrease the rotational speed. If the time that the disk player50spends processing D amount of data is less than Ht for each of m consecutive units of D amount of data, then processing proceeds to step516.

Step516: In this step, it is determined whether k>n. If yes, this means that n units of data D have been processed and processing proceeds to step517. If no, this means that fewer than n units of data D have been processed and processing proceeds to step518.

Step517: In this step, it is determined whether, in the processing of each of n previous consecutive units of D amount of data (from the current Tk), the time consumed by the player is greater than Ht. In other words, are each of Tk, Tk-1. . . Tk-n+2, and Tk-n+1 less than Lt? If the time that the disk player50spends processing D amount of data is less than Lt for each of n consecutive units of D amount of data, then processing proceeds to step520to increase the rotational speed. If the time that the disk player50spends processing D amount of data is greater than Lt for each of n consecutive units of D amount of data, then processing proceeds to step518.

Step518: The values of Tk-1. . . Tk-n+1 are updated by shifting the values of Tk-1. . . Tk-n+1. For example, Tk-n+1=the current Tk-n+2; . . . Tk-m+1=the current Tk-m+2; . . . Tk-2=the current Tk-1; Tk-1=the current Tk are set, and processing returns to step511. This shifting allows for the new Tk to be calculated.

Step519: In this step, the rotational speed is decreased by the processor52using the same principles disclosed above. After decreasing the rotational speed, Tk=(Ht+Lt)/2 is set so as to set Tk to a value between Ht and Lt to prevent another immediate increase or decrease when the next Tk is calculated in step513. Processing then proceeds to step518.

Step520: In this step, the rotational speed is increased using principles similar to those explained above in step19and419. Then Tk=(Ht+Lt)/2 is set (for the same reason as for step519above), and processing then proceeds to step518.

As an alternative, steps516and517can be performed before steps514and515because these two procedures are independent of each other. In addition, m and n can be adjusted as illustrated in previous embodiment.

FIG. 6is a flowchart which illustrates a method according to a fourth embodiment of the present invention. Similar to the third embodiment, the embodiment inFIG. 6monitors the processing time needed by the disk player50to finish a fixed amount of works. Instead of measuring the time spent to finish reading a certain number of bytes of data, a count value based on the number of read-commands received by the disk player50is determined. The method includes the following steps:

Step610: In this step, the values of Nc, Ht, and Lt are preset and the timing is started. Here, Nc is a predetermined value for the number of read-commands, and Ht and Lt are the limit condition values to determine when to decrease and increase, respectively, the rotational speed of the motor. Ht is usually set at a value that is greater than Lt, and Ht and Lt can be adjusted to obtain the optimum rotational speeds.

Step611: In this step, the disk player50is coupled to the system circuit ofFIG. 1to perform its given task, such as executing commands issued by the computer. Processing then proceeds to step612.

Step612: In this step, it is determined whether the predetermined number of read-commands Nc have been processed or requested by the computer. If yes, processing proceeds to step613. If no, processing returns to step611. As mentioned above in connection with the second embodiment, read-commands requesting data stored in consecutive addresses imposes a lesser burden to the disk player50than read-commands requesting data stored in non-consecutive addresses. Thus the number of read-commands Nc could be a count number such as a weighted summation of read-commands issued by the computer.

Step613: In this step, an index Tk is determined by calculating the time taken for the disk player50to finish a fixed amount of works, and then the timing is restarted. Here, k is an index that can be similar to that described in step13ofFIG. 2, and Tk represents the total time that the disk player50consumes to process the Nc read-commands. Processing then proceeds to step614.

Step614: In this step, it is determined whether k>m. If yes, this means that m units of Nc read-commands have been processed and processing proceeds to step615. If no, this means that fewer than m units of Nc read-commands have been processed and processing proceeds to step618.

Step615: In this step, it is determined whether, in the processing of each of m previous consecutive units of Nc read-commands (from the current Tk), the time consumed by the player is greater than Ht. In other words, are each of Tk, Tk-1. . . Tk-m+2, and Tk-m+1 greater than Ht? If the time that the disk player50spends processing Nc read-commands is greater than Ht for each of m consecutive units of Nc read-commands, then processing proceeds to step619to decrease the rotational speed. If the time that the disk player50spends processing Nc read-commands is less than Ht for each of m consecutive units of Nc read-commands, then processing proceeds to step616.

Step616: In this step, it is determined whether k>n. If yes, this means that n units of Nc read-commands have been processed and processing proceeds to step617. If no, this means that fewer than n units of Nc read-commands have been processed and processing proceeds to step618.

Step617: In this step, it is determined whether, in the processing of each of n previous consecutive units of Nc read-commands (from the current Tk), the time consumed by the player is greater than Ht. In other words, are each of Tk, Tk-1. . . Tk-n+2, and Tk-n+1 less than Lt? If the time that the disk player50spends processing Nc read-commands is less than Lt for each of n consecutive units of Nc read-commands, then processing proceeds to step620to increase the rotational speed. If the time that the disk player50spends processing Nc read-commands is greater than Lt for each of n consecutive units of Nc read-commands, then processing proceeds to step618.

Step618: The values of Tk-1. . . Tk-n+1 are updated by shifting the values of Tk-1. . . Tk-n+1. For example, Tk-n+1=the current Tk-n+2; . . . Tk-m+1=the current Tk-m+2; . . . Tk-2=the current Tk-1; Tk-1=the current Tk are set, and processing returns to step611. This shifting allows for the new Tk to be calculated.

Step619: In this step, the rotational speed is decreased by the processor52using the principles described above. After decreasing the rotational speed, Tk=(Ht+Lt)/2 is set so as to set Tk to a value between Ht and Lt to prevent another immediate increase or decrease when the next Tk is calculated in step613. Processing then proceeds to step618.

Step620: In this step, the rotational speed is increased using principles similar to those explained above in step19and419. Then Tk=(Ht+Lt)/2 is set (for the same reason as for step619above), and processing then proceeds to step618. As an alternative, steps616and617can be performed before steps614and615because these two procedures are independent of each other. In addition, m and n can be adjusted as illustrated in previous embodiment.