硬碟(a hard disk drive)
/ HDD /
想像一台老式點唱機或唱片機,只不過在同一根主軸上疊著好幾張閃亮的唱片,全部一起飛快旋轉。一根小小的臂帶著唱針,能擺進任何一條音軌,讀出刻在上面的音樂。硬碟運作的構想一模一樣,只是那些「唱片」是鍍了磁性薄膜的光滑金屬磁片,「音樂」是你以微小磁化點存下的資料,而唱針則是一顆懸浮在表面上方僅一髮之距的讀寫頭。
具體來說,密封外殼裡有一片或多片裝在主軸上、持續旋轉的剛性磁片(常見為每分鐘 5400 或 7200 轉)。每個磁片表面被劃分成一圈圈同心圓,稱為磁軌,每條磁軌又分成一段段小弧形,稱為磁區(傳統上 512 位元組,現在常為 4 KB),磁區是硬碟讀寫的最小單位。每個表面各有一顆讀寫頭,全都裝在同一支會移動的臂上。要讀取某個磁區,硬碟必須依序做三件事:移動臂讓讀寫頭落在正確的磁軌上(搜尋時間)、等旋轉的磁片把想要的磁區轉到讀寫頭下方(旋轉延遲),再趁位元經過時讀出它們(傳輸時間)。因為所有讀寫頭一起移動,在同一個臂位置上、橫跨所有磁片的對應磁軌構成一個垂直集合,稱為磁柱。
為什麼重要:硬碟是機械式的,所以它的速度由實體移動主導,而非電子運作。一次需要長距搜尋加上等半圈旋轉的隨機存取,可能耗時約 10 毫秒——對 CPU 而言宛如永恆。正是這一個事實,造就了磁碟排程演算法(用來減少臂的總移動量)的存在,也讓硬碟上的循序存取遠快於隨機存取,並使得大量的作業系統設計都在設法避免去碰硬碟。沒有活動零件的 SSD 徹底改變了這套盤算。
一顆 7200 RPM 的硬碟每約 8.3 毫秒轉一圈,所以它的平均旋轉延遲(半圈)約為 4.2 毫秒。再加上約 9 毫秒的平均搜尋,一次隨機讀取就要花約 13 毫秒——在這同樣的時間裡,一顆 3 GHz 的 CPU 早已執行了數千萬條指令。
決定硬碟步調的是機械移動,而不是電子運作。
一個常見的誤解是硬碟的容量和速度是綁在一起的。並非如此:一顆巨大的硬碟可能很慢,因為不論它存了多少位元組,隨機存取仍要付出同樣的機械搜尋與旋轉代價。