硬碟的定址方式

2021-07-30 06:25:47 字數 2183 閱讀 5215

什麼是chs定址

很久以前, 硬碟的容量還非常小的時候,人們採用與軟盤類似的結構生產硬碟。也就是硬碟碟片的每一條磁軌都具有相同的扇區數。由此產生了所謂的csh 3d引數 (disk geometry)。即磁頭數(heads),柱面數(cylinders),扇區數(sectors),以及相應chs定址方式。

chs定址模式將硬碟劃分為磁頭(heads)、柱面(cylinder)、扇區(sector)。

磁頭(heads):每張磁片的正反兩面各有乙個磁頭,乙個磁頭對應一張磁片的乙個面。因此,用第幾磁 頭就可以表示資料在哪個磁面。

柱面(cylinder):所有磁片中半徑相同的同心磁軌構成「柱面",意思是這一系列的磁軌垂直疊在一起,就形成乙個柱面的形狀。簡單地理解,柱面數=磁軌數。

扇區(sector):將磁軌劃分為若干個小的區段,就是扇區。雖然很小,但實際是乙個扇子的形狀,故稱為扇區。每個扇區的容量為512位元組。

下面的圖可能能更好的幫助理解:

chs定址的最大容量

chs定址方式的容量由chs三個引數決定:

磁頭數最大為255 (用 8 個二進位制位儲存)。從0開始編號。

柱面數最大為1023(用 10 個二進位制位儲存)。從0開始編號。

扇區數最大數 63(用 6個二進位制位儲存)。從1始編號。

所以chs定址方式的最大定址範圍為:

255 * 1023 * 63 * 512 / 1048576 = 7.837 gb ( 1m =1048576 bytes )

或硬碟廠商常用的單位:

255 * 1023 * 63 * 512 / 1000000 = 8.414 gb ( 1m =1000000 bytes )

chs定址的缺點

顯然,由於要求每個磁軌的扇區數相等,而外道的周長要大於內道,所以外道的記錄密度要遠低於內道,不僅造成了硬碟空間的浪費,也限制了硬碟的容量。為了解決這一問題,進一步提高硬碟容量,人們改用等密度結構生產硬碟。也就是說,外圈磁軌的扇區比內圈磁軌多,採用這種結構後,硬碟不再具有實際的chs引數,定址方式也改為線性定址,即以扇區為單位進行定址。

但一些古老的軟體仍然使用chs定址方式(如使用biosint13h介面的軟體),為了相容這樣的程式,在硬碟控制器內部安裝了乙個位址翻譯器,可以通過它將老式chs引數翻譯成新的線性引數。

lba(logical block addressing)邏輯塊定址模式。在 lba 模式下,我們知道硬碟上的乙個資料區域由它所在的磁頭、柱面(也就是磁軌)和扇區所唯一確定。早期系統就是直接使用磁頭柱面和扇區來對硬碟進行定址(這稱 為chs定址),這需要分別儲存每個區域的三個引數(這稱為3d引數),使用時再分別讀取三個引數,然後在送到磁碟控制器去執行。由於系統用8b來儲存磁 頭位址,用10b來儲存柱面位址,用6b來儲存扇區位址,而乙個扇區共有512b,這樣使用chs定址一塊硬碟最大容量為256 * 1024 * 63 * 512b = 8064 mb(1mb = 1048576b)(若按1mb=1000000b來算就是8.4gb)。隨著硬碟技術的進步,硬碟容量越來越大,chs模式無法管理超過8064 mb的硬碟,因此工程師們發明了更加簡便的lba定址方式。在lba位址中,位址不再表示實際硬碟的實際實體地址(柱面、磁頭和扇區)。lba編址方式將 chs這種三維定址方式轉變為一維的線性定址,它把硬碟所有的物理扇區的c/h/s編號通過一定的規則轉變為一線性的編號,系統效率得到大大提高,避免了 煩瑣的磁頭/柱面/扇區的定址方式。在訪問硬碟時,由硬碟控制器再這種邏輯位址轉換為實際硬碟的實體地址。

large 大硬碟模式,在硬碟的柱面超過 1024 而又不為 lba 支援時採用。large 模式採用的方法是把柱面數除以 2,把磁頭數乘以 2,其結果總容量不變。

在這三種硬碟模式中,現在 lba 模式使用最多。

lba與c/h/s 之間的轉換:

設ns為每磁軌扇區數,nh為磁頭數,c、h、s分別表示磁碟的柱面、磁頭和扇區編號,lba表示邏輯扇區號,div為整除計算,mod為求餘計算,則:

lba=nh×ns×c+ns×h+s-1;

c=(lba div ns)div nh;

h=(lba div ns)mod nh;

s=(lba mod ns)+1

例如 lba = 0 則 chs = 0/0/1

從c/h/s到lba的計算公式:

lba=(c-cs)*ph*ps+(h-hs)*ps+(s-ss)

硬碟中磁頭定址方式

看了好多中介紹硬碟工作原理的文章,一直有幾個問題困擾著我 1 硬碟工作時轉動,非工作時不轉動 2 磁頭定址的軌跡是怎麼樣的 下邊就這兩個問題來說明下 1 待機是將當前處於執行狀態的資料儲存在記憶體中,機器只對記憶體供電,而硬碟 螢幕和cpu等部件則停止供電。由於資料儲存在速度快的記憶體中,因此進入等...

定址 定址方式

定址方式就是處理器根據指令中給出的位址資訊來尋找實體地址的方式。在儲存器中,運算元或指令字寫入或讀出的方式,有位址指定方式 相聯儲存方式和堆疊訪問方式。幾乎所有的計算機,在記憶體中都採用位址指定方式。當採用位址指定方式時,形成運算元或指令位址的方式稱為定址方式。定址方式分為兩類,即指令定址方式和資料...

硬碟定址 CHS LBA教程

近期回顧了下hdd磁碟的結構原理,重新又發現幾個比較有意思的問題 稍作整理記錄一下。背景資訊 fdisk l 命令返回 rhce 7以下 root vm 0 15 centos fdisk l disk dev vda 53.7 gb,53687091200 bytes 255 heads,63 s...