1. 程式人生 > >計算機機械硬碟的結構和工作原理

計算機機械硬碟的結構和工作原理

    學習作業系統的檔案系統必須要了解一下計算機的硬碟的結構和工作方式,否則,對存取效率等問題不能很好的理解,今天學習了一下機械硬碟的結構和原理,在這裡和大家分享一下。

    由上圖所示,機械硬碟主要由以下幾部分組成:機械手臂(Boom),磁頭(Head),轉軸(Spindle),碟片(Platter)組成,在實際應用中又將碟片分成了磁軌(Track),扇區(Sector)和柱面(Cylinder),下面就分別介紹一下這些組成部分。

機械手臂

    機械手臂由控制電路控制,可以前後移動,在機械手臂的前端有磁頭,機械手臂的作用就是,移動磁頭,使磁頭位於正確的位置上。

磁頭

     磁頭由機械手臂控制在碟片上移動。讀寫硬碟時,磁頭依靠磁碟的高速旋轉引起的空氣動力效應懸浮在盤面上,與盤面的距離不到1微米(約為頭髮直徑的百分之一),可以在極短的時間內精確定位到計算機指令指定的磁軌上。磁頭的數量與碟片數量有關。一張單面的磁碟需要一個磁頭,如果是雙面的磁碟,則需要兩個磁頭,整個硬碟的磁頭的數量就是各個碟片所需要的磁頭的數量的總和。

碟片

    硬碟的儲存介質,所有的資訊都儲存在這裡,碟片分為單面碟片和雙面碟片,單面碟片只能在一面進行儲存,雙面碟片能在兩面進行儲存。硬碟的碟片一般採用合金材料,多數為鋁合金(IBM曾經開發過玻璃材質的碟片,好像現在有些廠家也生產玻璃材質的碟片,但不多見),盤面上塗著磁性材料,厚度一般在0.5mm左右。有些硬碟只裝一張碟片,有些則有多張。硬碟碟片安裝在主軸電機的轉軸上,在主軸電機的帶動下作高速旋轉。每張碟片的容量稱為單碟容量,而一塊硬碟的總容量就是所有碟片容量的總和。早期硬碟由於單碟容量低,所以碟片較多。現代的硬碟碟片一般只有少數幾片。 碟片上的記錄密度很大,而且碟片工作時會高速旋轉,為保證其工作的穩定,資料儲存的長久,所以硬片都是密封在硬碟內部。不可自行拆卸硬碟,在普通環境下空氣中的灰塵、指紋、頭髮絲等細小雜質都會對硬碟造成永久損害。 硬碟一般會有一個或多個碟片,每個碟片可以有兩個面(Side),即第1個碟片的正面稱為0面,反面稱為1面;第2個碟片的正面稱為2面,反面稱為3面…依次類推。每個盤面對應一個磁頭(head)用於讀寫資料。第一個盤面的正面的磁頭稱為0磁頭,背面稱為1磁頭;第二個碟片正面的磁頭稱為2磁頭,背面稱為3磁頭,以此類推。盤面數和磁頭數是相等的。

磁軌

     每個碟片的每個盤面被劃分成多個狹窄的同心圓環,資料就是儲存在這樣的同心圓環上,我們將這樣的圓環稱為磁軌(Track),每個盤面可以劃分多個磁軌。在每個盤面的最外圈,離盤心最遠的地方是“0”磁軌,向盤心方向依次增長為1磁軌,2磁軌,等等。硬碟資料的存放就是從最外圈開始。

扇區

     根據硬碟規格的不同,磁軌數可以從幾百到成千上萬不等。每個磁軌上可以儲存數KB的資料,但計算機並不需要一次讀寫這麼多資料。在這一這基礎上,又把每個磁軌劃分成若干弧段,每段稱為一個扇區(Sector)。扇區是硬碟上儲存的物理單位,每個扇區可儲存128×2N次方(N=0,1,2,3)位元組的資料。從DOS時代起,每扇區是128×22=512位元組,現在已經成了業界不成文的規定,也沒有哪個硬碟廠商試圖去改變這種約定。也就是說即使計算機只需要硬碟上儲存的某個位元組,也須一次把這個位元組所在的扇區中的全部512位元組讀入記憶體,再選擇所需的那個位元組。扇區的編號是從1開始,而不是0,這一點需要注意。另外,硬碟在劃分扇區時,和軟盤是有一定區別的。軟盤的一個磁軌中,扇區號一般依次編排,如1號,2號,3號…以此類推。但在硬碟磁軌中,扇區號是按照某個間隔跳躍著編排。比如,2號扇區並不是1號扇區後的按順序的第一個而是第八個,3號扇區又是2號扇區後的按順序的第八個,依此類推,這個“八”稱為交叉因子。

     這個交叉因子的來歷有必要詳述一下,我們知道,資料讀取經常需要按順序讀取一系列相鄰的扇區(邏輯資料相鄰)。如對磁軌扇區按物理順序進行編號,很有可能出現當磁頭讀取完第一個扇區後,由於碟片轉速過快來不及讀取下一個扇區,(要知道物理相鄰扇區位置距離是極小的),必須等待轉完一圈,這極大浪費了時間。所以就用交叉來解決這個問題。

柱面

     柱面其實是我們抽象出來的一個邏輯概念,前面說過,離盤心最遠的磁軌為0磁軌,依此往裡為1磁軌,2磁軌,3磁軌….,不同面上相同磁軌編號則組成了一個圓柱面,即所稱的柱面(Cylinder)。這裡要注意,硬碟資料的讀寫是按柱面進行,即磁頭讀寫資料時首先在同一柱面內從0磁頭開始進行操作,依次向下在同一柱面的不同盤面(即磁頭上)進行操作,只有在同一柱面所有的磁頭全部讀寫完畢後磁頭才轉移到下一柱面,因為選取磁頭只需通過電子切換即可,而選取柱面則必須通過機械切換。電子切換比從在機械上磁頭向鄰近磁軌移動快得多。因此,資料的讀寫按柱面進行,而不按盤面進行。 讀寫資料都是按照這種方式進行,儘可能提高了硬碟讀寫效率。

     將物理相鄰的若干個扇區稱為了一個簇。作業系統讀寫磁碟的基本單位是扇區,而檔案系統的基本單位是簇(Cluster)。在Windows下,隨便找個幾字節的檔案,在其上面點選滑鼠右鍵選擇屬性,看看實際大小與佔用空間兩項內容,如大小:15 位元組 (15 位元組), 佔用空間:4.00 KB (4,096 位元組)。這裡的佔用空間就是你機器分割槽的簇大小,因為再小的檔案都會佔用空間,邏輯基本單位是4K,所以都會佔用4K。 簇一般有這幾類大小 4K,8K,16K,32K,64K等。簇越大儲存效能越好,但空間浪費嚴重。簇越小效能相對越低,但空間利用率高。NTFS格式的檔案系統簇的大小為4K。

硬碟的工作原理

     現代硬碟尋道都是採用CHS(Cylinder Head Sector)的方式,硬碟讀取資料時,讀寫磁頭沿徑向移動,移到要讀取的扇區所在磁軌的上方,這段時間稱為尋道時間(seek time)。因讀寫磁頭的起始位置與目標位置之間的距離不同,尋道時間也不同。目前硬碟一般為2到30毫秒,平均約為9毫秒。磁頭到達指定磁軌後,然後通過碟片的旋轉,使得要讀取的扇區轉到讀寫磁頭的下方,這段時間稱為旋轉延遲時間(rotational latencytime)。

     參考:http://blog.chinaunix.net/uid-23069658-id-3413957.html