偵測 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 的快取記憶體之前,所顯示的緩衝區大小僅是取用已公布的規格。