检测 ATA 硬盘中缓冲区或缓存大小
ATA 磁盘由名为 T13 委员会的行业协会制定的工程规范定义。计算机行业使用该规范文档来确保硬盘制造商、系统和芯片组制造商、主机适配器制造商、操作系统制造商、软件程序员之间的兼容性。SATA、SCSI、USB 和 1394 也存在类似的规范和协会。
最新规范名为 ATA-8。第一个规范 ATA-1 (1991) 定义了第一条命令(基于 ESDI 接口),其中包括识别设备命令。ATA 规范中的识别设备命令 (ECh) 返回有关硬盘的 512 字节二进制信息。该信息包括型号、序列号和容量。还包括支持诊断或以特定速度运行等功能。例如,计算机启动时,会发出识别设备命令来自动检测硬盘的大小。
ATA-1 (1991) 的识别设备 Word 21 响应定义如下:
“缓冲区大小以 512 字节为增量(0000h = 未指定)”
ATA-3 (1997) 的 Word 21 将响应更改为“已淘汰”。
当前 ATA-8 (2006) 的 Word 21 将响应定义为“已停用”。
由于不是必需,即使 ATA-3 规格进行了更改,许多硬盘制造商仍继续使用 Word 21 来指示缓冲区大小。多年以来,许多硬盘诊断工具和基准测试都是针对 Word 21 中的预期数据进行编写的。例如,如果 Word 21 显示 8000h,等于 16MB 的缓存大小(8000h = 32,768 x 512 = 16,777,216 字节)。
Seagate 不提供任何显示硬盘缓冲区大小的诊断软件。可通过查找支持搜索工具在此网站上获得所有 Seagate 硬盘型号的规格,包括缓冲区大小。
为什么缓存大小显示 0MB?
如果您的硬盘基准测试或诊断软件将缓冲区大小识别为 0MB,则您的硬盘实际上可能具有 32MB 缓存。请参阅硬盘发布的规格以进行确认。Word 21 中可能存储的最大值为 FFFFh。具有 32MB 缓冲区的现代硬盘需要再多一个字节来表示缓冲区大小:10000h。10000h (word 21) 的前两个字节为 0000h(即零)。
重要的是,识别设备命令检索到的任何值或信息都是制造商提供的简单数据。换句话说,当命令显示 8MB 缓冲区时,它仅仅读取了硬盘设计者提供的数据。这并不是对于实际存储芯片的自动检测。当硬盘报告 0MB 时,并未自动检测实际大小,仅仅读取了存储在 Word 21 中的数据。
因此,在 T13 委员会采用新的 ATA 规范来支持显示大于 FFFFh 的缓存大小之前,目前缓冲区大小只是一个公布的规范。