硬盤基礎知識之物理結構
首先簡單認識一下硬盤的物理結構,硬盤內部的物理結構很復雜,只能從大的顆粒度去看內部的結構
本文引用地址:http://www.j9360.com/article/201712/372676.htm總體來說,硬盤結構包括:盤片、磁頭、盤片主軸、控制電機、磁頭控制器、數據轉換器、接口、緩存等幾個部份。所有的盤片(一般硬盤里有多個盤片,盤片之間平行)都固定在一個主軸上。在每個盤片的存儲面上都有一個磁頭,磁頭與盤片之間的距離很小(所以劇烈震動容易損壞),磁頭連在一個磁頭控制器上,統一控制各個磁頭的運動。磁頭沿盤片的半徑方向動作,而盤片則按照指定方向高速旋轉,這樣磁頭就可以到達盤片上的任意位置了。
先上幾張美圖:


基本的結構就是這樣子的,至于硬盤是如何進行讀寫的,必須要知道磁盤盤片是如何劃分的?否則你只知道磁頭在盤片上動來動去。
盤片上涉及的基本概念
整個硬盤上一般有很多的盤片組成,每個盤片如同切西瓜一樣被“切”成一塊一塊的扇面,同時沿著半徑的方向被劃分成了很多同心圓,就是傳說中的磁道,每條磁道被扇面切成很多的扇形區域叫做扇區(扇區是從磁盤讀出和寫入信息的最小單位,通常大小為512字節),不同盤片上的同半徑磁道組成了柱面,這些都是磁盤物理上的概念,知道便可。有了這些概念,我幫便可以計算磁盤的容量:
磁頭數 × 磁道(柱面)數 × 每道扇區數 × 每扇區字節數
磁頭(head)數:每個盤片一般有上下兩面,分別對應1個磁頭,共2個磁頭;
磁道(track)數:磁道是從盤片外圈往內圈編號0磁道,1磁道...,靠近主軸的同心圓用于停靠磁頭,不存儲數據;
柱面(cylinder)數:同磁道數量;
扇區(sector)數:每個磁道都別切分成很多扇形區域,每道的扇區數量相同;
圓盤(platter)數:就是盤片的數量。


硬盤上的數據定位
每個扇區可存儲128×2的N次方(N=0.1.2.3)字節的數據(一般為512B),扇區為數據存儲的最小單元,從上圖可知,外圈的扇區面積比內圈大,為何存儲的數據量相同,這是因為內外圈使用的磁物質密度不同,但現在的硬盤已經采用內外圈同密度物質來存儲數據了,以減少類似“大面積小數據”的浪費情況。(此時的內外磁道的扇區數量將不同,具體細節省略)
有了扇區(sector),有了柱面(cylinder),有了磁頭(head),顯然可以定位數據了,這就是數據定位(尋址)方式之一,CHS(也稱3D),對早期的磁盤(上圖所示)非常有效,知道用哪個磁頭,讀取哪個柱面上的第幾扇區就OK了。CHS模式支持的硬盤容量有限,用8bit來存儲磁頭地址,用10bit來存儲柱面地址,用6bit來存儲扇區地址,而一個扇區共有512Byte,這樣使用CHS尋址一塊硬盤最大容量為256 * 1024 * 63 * 512B = 8064 MB(1MB = 1048576B)(若按1MB=1000000B來算就是8.4GB)
但現在很多硬盤采用同密度盤片,意味著內外磁道上的扇區數量不同,扇區數量增加,容量增加,3D很難定位尋址,新的尋址模式:LBA(Logical Block Addressing)。在LBA地址中,地址不再表示實際硬盤的實際物理地址(柱面、磁頭和扇區)。LBA編址方式將CHS這種三維尋址方式轉變為一維的線性尋址,它把硬盤所有的物理扇區的C/H/S編號通過一定的規則轉變為一線性的編號,系統效率得到大大提高,避免了煩瑣的磁頭/柱面/扇區的尋址方式。在訪問硬盤時,由硬盤控制器再將這種邏輯地址轉換為實際硬盤的物理地址。
LBA下的編號,扇區編號是從0開始。
邏輯扇區號LBA的公式:
LBA(邏輯扇區號)=磁頭數 × 每磁道扇區數 × 當前所在柱面號 + 每磁道扇區數 × 當前所在磁頭號 + 當前所在扇區號 – 1
例如:CHS=0/0/1,則根據公式LBA=255 × 63 × 0 + 63 × 0 + 1 – 1= 0
也就是說物理0柱面0磁頭1扇區,是邏輯0扇區。

評論