Patent ID: 7477477

Claim:
A hard disk drive comprising: a disk-like storage medium configured to be capable of reading and writing data; a seek controller configured to control a disk head to make a fast seek of seeking the disk head at high speed or a slow seek of seeking the disk head at low speed to read or write the data based on a read command or a write command requested for execution; a non-volatile memory configured to be capable of reading and writing the data; an access controller configured to read or write the data from or into the non-volatile memory based on the read command or the write command requested for execution; a command receiver configured to receive the write command or the read command of reading or writing the data from a host; a decision unit configured to decide which of the seek controller and the access controller performs the command received by the command receiver; a first command storage configured to store write commands and read commands decided to be executed by the seek controller; a second command storage configured to store write commands and read commands decided to be executed by the access controller; a first selection unit configured to select the command from the second command storage and request the access controller to execute selected command; a use situation detection unit configured to detect a use situation of the non-volatile memory; a second selection unit configured to select, when the use situation is low, the command which enables the disk head to be located at a start position of writing or reading most rapidly from among the write commands and the read commands stored in the first command storage assuming that the disk head performs the fast seek for the write command and the slow seek for the read command and request the seek controller to execute selected command by designating the fast seek if the selected command is the write command and by designating the slow seek if the selected command is the read command; a write error processing unit configured to detect a write error during execution of the write command requested by the second selection unit and store a write command for writing write failed data, in the second command storage; and a third selection unit configured to select, when the use situation of the non-volatile memory is high, the command which enables the disk head to be located at the start position of writing or reading most rapidly from among the write commands and the read commands stored in the first command storage assuming that the disk head performs the slow seek and request the seek controller to execute selected command by designating the slow seek.