DISK DRIVE OPERATION
SpinPoint V40
Product Manual
36
Thus Read Caching can provide substantial time savings during at least half of all disk requests. For example,
Read Caching could save most of the disk transaction time by eliminating the seek and rotational latency
delays that prominently dominate the typical disk transaction.
Read Caching operates by continuing to fill its cache memory with adjacent data after transferring data
requested by the host. Unlike a non-caching controller, The SID2001 Interface Controller continues a read
operation after the requested data has been transferred to the host system. This read operation terminates
after a programmed amount of subsequent data has been read into the cache memory.
The cache memory consists of a 512KB sync DRAM buffer allocated to hold the data. It can be directly
accessed by the host by means of read and write commands. The unit of data stored is the logical block, or a
multiple of the 512-byte sector. Therefore, all accesses to cache memory must be in multiples of the sector
size. The following commands empty the cache:
• IDENTIFY DRIVE (ECh)
• FORMAT TRACK (50h)
• EXECUTE DRIVE DIAGNOSTIC (90h)
• READ LONG (23h)
• WRITE VERIFY (3Ch)
• INITIALIZE DEVICE PARAMETER (91h)
• SLEEP (99h, E6h)
• STANDBY IMMEDIATELY (94h,E0h)
• READ BUFFER (E4h)
• WRITE BUFFER (E8h)
• WRITE SAME (E9h)
5.5.2 Write Caching
Write caching improves both single and multi-sector write performance by reducing delays introduced by
rotational latency. When the drive writes a pattern of multiple sequential data, it stores the data to a cache
buffer and immediately sends a COMMAND COMPLETE message to the host before it writes the data to the
disk.
The data is then written collectively to the drive thereby minimizing the disk seeking operation. Data is held
in cache no longer than the maximum seek time plus rotational latency. Host retries must be enabled for
Write Caching to be active.
If the data request is random, the data of the previous command is written to the disk before COMMAND
COMPLETE is posted for the current command. Read commands work similarly. The previous write is
allowed to finish before the read operation starts.
If a defective sector is found during a write, the sector is automatically relocated before the write occurs.
This ensures that cached data that already has been reported as written successfully gets written, even if an
error should occur.
If the sector is not automatically relocated, the drive drops out of write caching and reports the error as an ID
Not Found. If the write command is still active on the AT interface, the error is reported during that
command. Otherwise, it is reported on the next command.