儲存、匯流排與輸入輸出

硬碟(HDD)

/ H-D-D /

想像一台唱片機,但唱針還能寫,而且唱片每分鐘轉好幾千圈。硬碟把資料以微小的磁性圖案存在旋轉的碟片上,由一個浮在表面上方一髮之距、裝在擺動臂上的磁頭讀寫。它是經典的長期儲存裝置:每 GB 便宜、沒電也保得住資料,但是機械式的——而那套機構正是它的長處與奇特緩慢的共同來源。

幾何結構值得認識,因為它解釋了時序。每片碟片分成一圈圈同心圓,叫做磁軌,每條磁軌再分成弧段,叫做磁區(你能讀寫的最小單位,歷史上是 512 位元組,現在常是 4 KB)。要讀某個磁區,必須發生兩個物理動作:機臂把磁頭擺到正確的磁軌——這個延遲是尋道時間;然後碟片必須旋轉,直到想要的磁區轉到磁頭下方——這個延遲是旋轉延遲,平均是半圈。要到這時位元才讀得到。這些機械延遲以毫秒計,那是數百萬個 CPU 週期。

實用的教訓在於存取模式。讀同一條磁軌上彼此相鄰的磁區很快(循序存取):一次尋道,然後碟片一轉位元就串流出來。讀散落在整個磁碟各處的磁區很慢(隨機存取):每跳一次就付一次新的尋道與旋轉延遲。所以硬碟的循序頻寬可以不錯,但它的隨機存取 IOPS 很差——每秒幾百次操作。這正是固態硬碟靠著沒有運動部件與近乎均勻的存取時間翻轉局面之處(見 solid-state-drive)。

一顆 7200 RPM 的硬碟約每 8.3 毫秒轉一圈,所以平均旋轉延遲約 4.2 毫秒;再加約 9 毫秒的尋道,一次隨機讀取在任何資料流動前約要 13 毫秒——那大約是每秒 75 次隨機讀取。然而讀一個長的循序檔案,那些延遲只付一次,位元便以每秒 100 MB 以上串流出來。

同一顆硬碟:隨機讀取很糟(每秒幾十次),循序讀取卻不錯(100+ MB/s)。存取模式決定一切。

硬碟標榜的「傳輸速率」描述的是循序串流。它對隨機工作負載幾乎沒有任何意義,那裡尋道與旋轉延遲主宰一切,吞吐量可能低上百倍。

又称
HDDhard diskspinning diskmagnetic disk硬碟磁碟