Table driven write complete algorithm
Original Publication Date: 2002-Feb-04
Included in the Prior Art Database: 2003-Jun-20
To improve performance of a disk drive, the operations are scheduled so as to reduce the access time. That is, the next read or write is chosen from a group (the queue) so as to minimize the time it takes to move the actuator (the seek time) and then wait for the data to spin around on the disk (the latency). But good scheduling requires being able to well estimate the seek time. This can be difficult with state of the art algorithms. They have a "variable" settle time designed to reduce the chance that data is read or written off track. This algorithm acts as a write inhibit algorithm in that the drive does not allow writes during this time. The invention is to replace the variable settle algorithm with a count down algorithm. The count down algorithm works by enabling writes at a time specified by the scheduling algorithm only. In this fashion the scheduling algorithm always has an accurate estimate of the seek time required for any operation, and its scheduling efficiency increases. Data integrity is still preserved because in addition to the variable settle algorithms, there are other "write inhibit" algorithms that stop writes based on observed behavior of the head (e.g. too far from track center, velocity too high, predicted to be to far from track center.) The scheduling algorithm needs to have a table of seek times versus seek lengths, and the entries in this table have to be chosen so that there are only an acceptable number of write inhibits. So this method does not necessarily improve the seek and settle time of the drive. And this table either has to be robust enough to tolerate environmental variation, like high temperature, low voltage, and operational vibration, or it has to be able to adapt the entries in the table as the environmentals change. The process now works this way. Upon completion of the previous command: 0. The queue is updated. (As before. Just included for completeness.) The scheduling algorithm picks the next operation to execute using any of several known techniques. One input to the scheduling algorithm is a table giving the time to read and write complete. The selected operation is executed. That is, the seek to the target is started. The time to write ready is loaded in a down counter. The seek continues and each servo sample the down counter is decremented. When the down counter decrements to zero, the seek is considered to be complete. Each sample after the seek is completed, the read/write inhibit criteria are checked and if needed the data transfer is interrupted. Repeat, when the data transfer is done.