天天看點

機械硬碟的存儲結構及原理

本文轉載自:https://blog.csdn.net/u013125075/article/details/86576640

硬碟是電腦主要的存儲媒介之一。根據硬碟的讀寫方式和存儲方式不同,目前主流的硬碟可以分為固态硬碟(SSD硬碟)、機械硬碟(HDD 硬碟)兩種。由于固态硬碟存在價格昂貴、容量較小和一旦損壞難以修複等特點,目前市場主要流行的依然是機械硬碟。當然,在高端計算機中通常會結合兩種硬碟來擷取更好的性能,這裡暫且不提。故而本部落客要對機械硬碟的結構和原理進行講解。

機械硬碟的存儲結構及原理

硬碟是由很多的盤片組成,而其存儲資訊的方式就是通過盤片表面的磁性物質來存儲資料。把盤片放在顯微鏡下放大,可以看到盤片表面是凹凸不平的,凸起的地方被磁化,代表數字 1,凹的地方沒有被磁化,代表數字 0,是以硬碟可以通過二進制的形式來存儲表示文字、圖檔等的資訊。

機械硬碟主要由磁盤、磁頭、盤片主軸、控制電機、磁頭控制器、資料轉換器、接口、緩存等幾個部分組成。

機械硬碟的存儲結構及原理

所有的盤片都固定在一個旋轉軸上,這個軸即盤片主軸。所有的盤片之間是絕對平行的,且在每個盤片的盤面上都有一個磁頭來對磁盤上的資料進行讀寫操作。所有的磁頭連在一個磁頭控制器上,由磁頭控制器負責各個磁頭的運動,磁頭可沿盤片的半徑方向移動,實際上磁頭是圍繞固定點做圓周移動(如果有興趣可以通過上面的磁盤結構圖自己看,這裡不加以解釋),而且傳統的硬碟中由于所有磁頭都固定在同一個控制器上,是以每個磁頭同一時刻是同軸的,即從正上方往下看,所有磁頭任何時候都是重疊的,在這種情況下每一時刻隻有一個磁頭能夠進行資料的讀取。當硬碟啟動時盤片在主軸的帶動下以每分鐘數千轉到上萬轉的速度在高速運轉,而磁頭在控制器的控制下固定在某個位置上對經過其下方的磁盤區域進行資訊的讀寫。

由前面的描述可知,硬碟的資料主要存儲在許多盤片上的磁性物質上,而這些這些資訊是通過磁頭在某一點上對其下方的轉動的磁片進行寫入的,故而這些資訊以一條條圍繞主軸的同心圓細線的形式存在。為了友善描述與管理,我們把這些存儲資訊的同心圓細線稱為磁道,将盤片中用于記錄資訊的面稱為盤面(目前主流的硬碟一般每個盤片的兩個面都會用于記錄資訊,是以每個盤片對應兩個盤面。當然,也有部分隻有一面用于記錄資訊的,在此暫不贅述),而多個盤片上半徑相同的磁道稱為柱面,為了更好的對磁盤資源進行過濾,我們有将每個磁道劃分為均勻的幾段稱為扇區。

機械硬碟的存儲結構及原理

下面對幾個名詞的定義是作用進行解析:

盤面:硬碟的盤片一般用鋁合金材料做基片,硬碟的每一個盤片的兩個面都可以用于記錄資訊,一般每個盤面都會得到利用,都可以存儲資料,成為盤面。當然,也有的硬碟為了簡化磁頭結構或其他原因隻利用其中一個面來記錄資訊,這樣每個盤片就隻對應一個盤面。每一個盤面都有一個盤面号,按順序從上至下從 0 開始編号。在硬碟系統中,盤面号又叫磁頭号,因為每一個盤面都有一個對應的讀寫磁頭。

磁道:磁盤在格式化時被劃分成許多用于記錄資訊的同心圓,這些同心圓軌迹叫做磁道。磁道從外向内從 0 開始順序編号,硬碟的每一個盤面有 300-1024 個磁道,新式大容量硬碟每面的磁道數更多,資訊以脈沖串的形式記錄在這些軌迹中,這些同心圓不是連續記錄資料,而是被劃分成一段段的圓弧。這些圓弧的角速度一樣,由于徑向長度不一樣,是以線速度也不一樣,外圈的線速度較内圈的線速度大,是以同樣的轉速度下,外圈在同樣時間段裡,劃過的圓弧長度要比内圈劃過的圓弧長度大。磁道是看不見的,隻是盤面上以特殊形式磁化了的一些磁化區,在磁盤格式化時就已規劃完畢。

柱面:所有盤面上半徑相同的磁道構成的一個圓柱面,即在磁盤上所有與主軸距離相同的磁道成為柱面。之是以給出柱面這一概念主要是為了提高磁盤的讀寫速率。在機械硬碟中資料的讀取是依靠磁頭來進行的,每個盤面對應一個磁頭,而這些磁頭通常被固定在同一轉軸上,同時這些磁頭從磁盤的上方看是重合的,也就是說所有磁頭同一時間處于同一半徑的磁道上。而由哪個磁頭進行資料的讀取則由對應的控制系統來進行電子切換,這個過程相對于将磁頭移動的相鄰的磁道是一個極快的過程,為了提高資料的讀/寫速率,資料的存儲一般是按照柱面的順序來的,具體的做法就是資料先存儲在某一柱面的第一個磁道上,之後建資料存儲到同一柱面的第二個磁道上,一直到同一柱面的所有磁道都使用完後才轉到下一柱面進行讀/寫操作。

扇區:扇區是磁盤讀寫的基本機關,每個扇區包括 512 個位元組的資料和一些其他資訊,這些資訊包含存儲資料位址的辨別符(盤面号,柱面号,扇區号等)和用于保護資料的糾錯碼(ECC)。在傳統磁盤上,一般盤面上每一個磁道所對應的扇區是相同的,由于盤面上的磁道大小是不均勻的,其中越靠近主軸的磁道長度越小,越遠離主軸的磁道長度越大,是以這樣的配置設定方式會造成“大面積小資料”的浪費情況,為了避免這種情況很多硬碟采用同密度盤片,是以半徑不同的磁道劃分成出來的扇區數量也是不同的,磁道越長所包含的扇區也也就也多。關于扇區号,目前主要有兩種定義規則,其中一種是每個磁道擁有自己的扇區号,在每個磁道中扇區号都是從0開始增加的,之後通過CHS(也稱3D)尋址方式來對對應扇區進行通路,而另一種則是對硬碟上所有的扇區進行統一編号,其編号規則為:LBA(邏輯扇區号)=磁頭數 × 每磁道扇區數 × 目前所在柱面号 + 每磁道扇區數 × 目前所在磁頭号 + 目前所在扇區号 – 1 。這兩種方式中,前者适合對每個磁道所擁有的磁道相同的傳統磁盤,而後者時候采用同密度盤片的磁盤。