Detecting Buffer or Cache Size in ATA Hard Disk Drives
ATA disk drives are defined by an engineering specification written by an industry consortium called the T13 committee. The specification document is used by the computer industry to guarantee compatibility between drive manufacturers, system and chipset manufacturers, host adapter manufacturers, operating system manufacturers, software programmers and more. Similar specifications and groups exist for SATA, SCSI, USB, and 1394.
The current specification is called ATA-8. The first specification, ATA-1 (1991), defined the first commands (based on the ESDI interface) which included the Identify Device command. The Identify Device command (ECh) in the ATA spec returns 512 bytes of binary information about a disk drive. This information includes things like the model number, serial number and capacity. It also includes capabilities like having support for diagnostics or the ability to run at certain speeds. When a computer starts up, for example, it issues the Identify Device command to auto detect the size of the drive.
Word 21 of the ATA-1 (1991) Identify Device response was defined as follows:
" Buffer size in 512 byte increments (0000h=not specified) "
Word 21 of the ATA-3 (1997) the response changed to "Obsolete."
Word 21 of the ATA-8 (2006) the response is currently defined as "Retired."
While not required, even with the ATA-3 specification change, many drive manufacturers continue to use Word 21 to indicate the buffer size. Over the years, many hard drive diagnostics tools and benchmark utilities have been written that expect data in word 21. For example, if word 21 shows 8000h then that would equal a cache size of 16MB (8000h = 32,768 x 512 = 16,777,216 bytes ).
Seagate does not offer any diagnostic software that shows the drive buffer size. Specifications, including buffer size, for all Seagate drive models are available on this web site through the Support Find search tool.
Why does the cache size say 0MB?
If your hard drive benchmark or diagnostic software identifies the buffer size as 0MB, your drive may actually have 32MB of cache. See your drive's published specifications for a confirmation. The maximum value that could ever be stored in word 21 is FFFFh. A modern disk drive with 32MB of buffer would need one more byte to represent the buffer size: 10000h. The first two bytes of 10000h (word 21) is 0000h, or zero.
It is important to understand that any value or information retrieved by the Identify Device command is simple data provided by the manufacturer. In other words, when it says an 8MB buffer, it is only reading data provided by the drive designer. It is not an auto detection of the actual memory chip. When a drive reports 0MB it is not an auto detection of size, it is only reading the data stored in word 21.
Therefore, until a new ATA specification is adopted by the T13 committee to support the display of cache sizes greater than FFFFh, the buffer size is now only a published specification.