淺談硬盤工作原理

一、硬盤的分類:

固態硬盤:簡稱SSD ,近幾年開始普及的硬盤,固態硬盤(Solid State Drive)用固態電子存儲芯片陣列而製成的硬盤,由控制單元和存儲單元(FLASH芯片、DRAM芯片)組成。固態硬盤具有傳統機械硬盤不具備的快速讀寫(目前主流固態硬盤讀寫速度大概400M/s,而機械硬盤大概120M/s)、質量輕、能耗低(存儲介質是芯片,而不是盤片,運行起來沒有噪音)以及體積小等特點,但由於技術上面沒有硬盤成熟,其價格仍較爲昂貴,容量較低,其內部存儲芯片一旦損壞,數據較難恢復並且耐用性相對較短。

機械硬盤:簡稱HDD,傳統硬盤,這是本次博客要詳細介紹的。

混合硬盤:簡稱HHD, 一塊基於傳統機械硬盤誕生出來的新硬盤,一般速度比傳統機械硬盤快。

SSD採用閃存顆粒來存儲,HDD採用磁性碟片來存儲,混合硬盤(HHD: Hybrid Hard Disk)是把磁性硬盤和閃存集成到一起的一種硬盤。絕大多數硬盤都是固定硬盤,被永久性地密封固定在硬盤驅動器中。

二、首先,讓我們看一下硬盤的發展史:

1956年9月13日,IBM的IBM 350 RAMAC(Random Access Method of Accounting and Control)是現代硬盤的雛形,整個硬盤需要50個直徑爲24英寸表面塗有磁漿的盤片,它相當於兩個冰箱的體積,不過其存儲容量只有5MB。
1971年,IBM開始採用一種名叫Merlin的技術生產硬盤,這種技術據稱能使硬盤頭更好地在盤片上索引。
1973年,IBM 3340問世,主流採用採用紅色。這個大傢伙每平方英寸存儲1.7MB的數據,在當時已經創了一個紀錄。許多公司共享這些系統,需要時按照時間和存儲空間租用它。租賃價值爲7.81美元每兆,這個價格比當時汽油的價格還貴38%。它擁有“溫徹斯特”這個綽號,也就是我們現在所熟知的“溫氏架構”。來源於它兩個30MB的存儲單元,恰好是當時出名的“溫徹斯特來福槍”的口徑和填彈量。至此,硬盤的基本架構被確立。
1979年,IBM發明了Thin Film磁頭,使硬盤的數據定位更加準確,因此使得硬盤的密度大幅提升。
1980年,兩位前IBM員工創立的公司開發出5.25英寸規格的5MB硬盤,這是首款面向臺式機的產品,而該公司正是希捷公司(Seagate)公司。
1982年,日立發佈了全球首款容量超過1GB的硬盤。這就是容量爲1.2GB的H-8598硬盤。這塊硬盤擁有10片14英寸盤片,兩個讀寫磁頭。
1980年代末,IBM推出MR(Magneto Resistive磁阻)技術令磁頭靈敏度大大提升,使盤片的存儲密度較之前的20Mbpsi(bit/每平方英寸)提高了數十倍,該技術爲硬盤容量的巨大提升奠定了基礎。1991年,IBM應用該技術推出了首款3.5英寸的1GB硬盤。
1970年到1991年,硬盤碟片的存儲密度以每年25%~30%的速度增長;從1991年開始增長到60%~80%;至今,速度提升到100%甚至是200%。從1997年開始的驚人速度提升得益於IBM的GMR(Giant Magneto Resistive,巨磁阻)技術,它使磁頭靈敏度進一步提升,進而提高了存儲密度。
1993年,康諾(Conner Peripherals)推出了CP30344硬盤容量是340MB。
1995年,爲了配合Intel的LX芯片組,昆騰與Intel攜手發佈UDMA 33接口—EIDE標準將原來接口數據傳輸率從16.6MB/s提升到了33MB/s。同年,希捷開發出液態軸承(FDB,Fluid Dynamic Bearing)馬達。所謂的FDB就是指將陀螺儀上的技術引進到硬盤生產中,用厚度相當於頭髮直徑十分之一的油膜取代金屬軸承,減輕了硬盤噪音與發熱量。
1996年,希捷收購康諾(Conner Peripherals)
1998年2月,UDMA 66規格面世。
2000年10月,邁拓(Maxtor)收購昆騰。
2003年1月,日立宣佈完成20.5億美元的收購IBM硬盤事業部計劃,併成立日立環球存儲科技公司(Hitachi Global StorageTechnologies, Hitachi GST)。
2005年日立環儲和希捷都宣佈了將開始大量採用磁盤垂直寫入技術(perpendicular recording),該原理是將平行於盤片的磁場方向改變爲垂直(90度),更充分地利用的存儲空間。
2005年12月21日,希捷宣佈收購邁拓(Maxtor)。
2007年1月,日立環球存儲科技宣佈將會發售全球首隻1Terabyte的硬盤,比原先的預定時間遲了一年多。硬盤的售價爲399美元,平均每美元可以購得2.75GB硬盤空間。
2011年3月,西部數據以43億美元的價格,收購日立環球存儲科技。

2011年4月,希捷宣佈與三星強化策略夥伴關係。

2011年3月8日凌晨,WD西部數據公司宣佈,將以現金加股票的形式,出資43億美元收購日立全資子公司,同爲世界級硬盤大廠的日立環球存儲技術公司(HGST)。

三、小白長見識時間:下面總結一下目前存儲領域的幾大巨頭:

1、希捷(Seagate)
希捷公司成立於1980年,現爲全球第1大的硬盤、磁盤和讀寫磁頭製造商,希捷在設計、製造和銷售硬盤領域居全球領先地位,提供用於企業、臺式電腦、移動設備和消費電子的產品。、
(2005年併購邁拓(Maxtor)
2011年4月-2011年12月 收購三星(Samsung)旗下的硬盤業務後成爲最大的硬盤廠商。)
2、西部數據(Western Digital)
西部數據是全球知名的硬盤廠商,現爲全球第2大硬盤製造商,成立於1979年,總部位於美國加州,在世界各地設有分公司或辦事處,爲全球五大洲用戶提供存儲器產品,2011年3月收購日立。

3、東芝(TOSHIBA)
日本最大的半導體製造商,亦是第二大綜合電機製造商,隸屬於三井集團旗下。 主要生產移動存儲產品。

    



四、磁盤的物理構造

從硬盤問世至今已經過了56個年頭,不管是容量、體積還是生產工藝都較之前有了重大革新和改進,但一直都保持了“溫氏”的架構(固態硬盤除外,它不是我們今天的主角)。

經過封裝後的硬盤,對我們一般呈現出如下的樣子:


背面:



打開後蓋:




    硬盤主要由盤體、控制電路板和接口部件組成。盤體就是一個密封,封裝了多個盤片的腔體;控制電路包含硬盤BIOS,主控芯片和硬盤緩存等單元;接口部件包含電源、數據接口主從跳線等。
    硬盤的盤片一般採用合金材料,多數爲鋁合金(IBM曾經開發過玻璃材質的盤片,好像現在有些廠家也生產玻璃材質的盤片,但不多見),盤面上塗着磁性材料,厚度一般在0.5mm左右。有些硬盤只裝一張盤片,有些則有多張。硬盤盤片安裝在主軸電機的轉軸上,在主軸電機的帶動下作高速旋轉。每張盤片的容量稱爲單碟容量,而一塊硬盤的總容量就是所有盤片容量的總和。早期硬盤由於單碟容量低,所以盤片較多。現代的硬盤盤片一般只有少數幾片。 盤片上的記錄密度很大,而且盤片工作時會高速旋轉,爲保證其工作的穩定,數據保存的長久,所以硬片都是密封在硬盤內部。不可自行拆卸硬盤,在普通環境下空氣中的灰塵、指紋、頭髮絲等細小雜質都會對硬盤造成永久損害。一個被大卸八塊的硬盤如下:



    接下來我們瞭解一下硬盤的盤面,柱面,磁道和扇區的概念。
 
    盤面
    硬盤一般會有一個或多個盤片,每個盤片可以有兩個面(Side),即第1個盤片的正面稱爲0面,反面稱爲1面;第2個盤片的正面稱爲2面,反面稱爲3面...依次類推。每個盤面對應一個磁頭(head)用於讀寫數據。第一個盤面的正面的磁頭稱爲0磁頭,背面稱爲1磁頭;第二個盤片正面的磁頭稱爲2磁頭,背面稱爲3磁頭,以此類推。盤面數和磁頭數是相等的。



    一張單面的盤片需要一個磁頭,雙面的盤片則需要兩個磁頭。硬盤採用高精度、輕型磁頭驅動和定位系統。這種系統能使磁頭在盤面上快速移動,讀寫硬盤時,磁頭依靠磁盤的高速旋轉引起的空氣動力效應懸浮在盤面上,與盤面的距離不到1微米(約爲頭髮直徑的百分之一),可以在極短的時間內精確定位到計算機指令指定的磁道上。
    早期由於定位系統限制,磁頭傳動臂只能在盤片的內外磁道之間移動。因此,不管開機還是關機,磁頭總在盤片上。所不同的是,關機時磁頭停留在盤片啓停區,開機時磁頭“飛行”在磁盤片上方。
 
    磁道
    每個盤片的每個盤面被劃分成多個狹窄的同心圓環,數據就是存儲在這樣的同心圓環上,我們將這樣的圓環稱爲磁道(Track),每個盤面可以劃分多個磁道。關機時磁頭停留在硬盤的着陸區(Landing Zone),這個着陸區以前是位於離盤心最近的區域,不存放任何數據。在後期的硬盤工藝中有些硬盤生產廠商將這個區域被移動到了盤片的外面,如下所示:


    在每個盤面的最外圈,離盤心最遠的地方是“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)。
 
    一個7200(轉/每分鐘)的硬盤,每旋轉一週所需時間爲60×1000÷7200=8.33毫秒,則平均旋轉延遲時間爲8.33÷2=4.17毫秒(平均情況下,需要旋轉半圈)。平均尋道時間和平均選裝延遲稱爲平均存取時間。
 
    所以,最後看一下硬盤的容量計算公式:
    硬盤容量=盤面數×柱面數×扇區數×512字節
 
 
    MBR,它是存在於硬盤的0柱面,0磁頭,1扇區裏,佔512字節的空間。這512字節裏包含了主引導程序Bootloader和磁盤分區表DPT。其中Bootloader佔446字節,分區表佔64字節,一個分區要佔用16字節,64字節的分區表只能被劃分4個分區,這也就是目前我們的硬盤最多隻能支持4個分區記錄的原因。


    即,如果你將硬盤分成4個主分區的話,必須確保所有的磁盤空間都被使用了(這不是廢話麼),一般情況下我們都是劃分一個主分區加一個擴展分區,然後在擴展分區裏再繼續劃分邏輯分區。當然,邏輯分區表也需要分區表,它是存在於擴展分區的第一個扇區裏,所以邏輯分區的個數最多也只能有512/16=32個,並不是想分多少個邏輯分區都可以。
    注意,我們所說的擴展分區也是要佔用分區表項的。例如,如果我們的硬盤只劃分一個主分區和一個邏輯分區,此時的分區表的排列如下:
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          19      152586   83  Linux
/dev/sda2              20        2569    20482875   83  Extended
/dev/sda5            2570        19457     4128705   82  Linux
    主分區爲1號分區,擴展分區佔用了2號分區,3和4號擴展分區被預留了下來,邏輯分區從5開始編號依次遞增,這裏我們只劃分了一個邏輯分區。


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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章