3D參數(shù)
很久以前,硬盤的容量還非常小的時候,人們采用與軟盤類似的結(jié)構(gòu)生產(chǎn)硬盤。也就是硬盤盤片的每一條磁道都具有相同的扇區(qū)數(shù)。由此產(chǎn)生了所謂的3D參數(shù)(Disk Geometry). 即磁頭數(shù)(Heads),柱面數(shù)(Cylinders),扇區(qū)數(shù)(Sectors),以及相應(yīng)的尋址方式。其中:
磁頭數(shù)(Heads)表示硬盤總共有幾個磁頭,也就是有幾面盤片, 最大為255 (用8 個二進(jìn)制位存儲)
柱面數(shù)(Cylinders) 表示硬盤每一面盤片上有幾條磁道,最大為1023(用 10 個二進(jìn)制位存儲)
扇區(qū)數(shù)(Sectors) 表示每一條磁道上有幾個扇區(qū), 最大為63(用 6個二進(jìn)制位存儲) 每個扇區(qū)一般是512個字節(jié), 理論上講這不是必須的,但好像沒有取別的值的。 所以磁盤最大容量為:255 * 1023 * 63 * 512 / 1048576 = 7.837 GB ( 1M =1048576 Bytes ) 或硬盤廠商常用的單位:255 * 1023 * 63 * 512 / 1000000 = 8.414 GB ( 1M =1000000 Bytes )
在CHS 尋址方式中,磁道,柱面,扇區(qū)的取值范圍分別為0到 Heads - 1。0 到Cylinders - 1。1 到Sectors (注意是從1 開始)。
基本Int 13H 調(diào)用
BIOS Int 13H 調(diào)用是BIOS提供的磁盤基本輸入輸出中斷調(diào)用,它可以完成磁盤(包括硬盤和軟盤)的復(fù)位,讀寫,校驗,定位,診,格式化等功能。它使用的就是CHS 尋址方式,因此最大識能訪問 8 GB 左右的硬盤(本文中如不作特殊說明,均以 1M = 1048576 字節(jié)為單位)。
現(xiàn)代硬盤結(jié)構(gòu)
在老式硬盤中,由于每個磁道的扇區(qū)數(shù)相等,所以外道的記錄密度要遠(yuǎn)低于內(nèi)道,因此會浪費很多磁盤空間 (與軟盤一樣)。為了解決這一問題,進(jìn)一步提高硬盤容量,人們改用等密度結(jié)構(gòu)生產(chǎn)硬盤。也就是說,外圈磁道的扇區(qū)比內(nèi)圈磁道多,采用這種結(jié)構(gòu)后,硬盤不再具有實際的3D參數(shù),尋址方式也改為線性尋址,即以扇區(qū)為單位進(jìn)行尋址。
為了與使用3D尋址的老軟件兼容(如使用BIOSInt13H接口的軟件), 在硬盤控制器內(nèi)部安裝了一個地址翻譯器,由它負(fù)責(zé)將老式3D參數(shù)翻譯成新的線性參數(shù)。這也是為什么現(xiàn)在硬盤的3D參數(shù)可以有多種選擇的原因(不同的工作模式,對應(yīng)不同的3D參數(shù),如 LBA,LARGE,NORMAL)。
擴(kuò)展Int 13H
雖然現(xiàn)代硬盤都已經(jīng)采用了線性尋址,但是由于基本Int13H 的制約,使用BIOS Int 13H 接口的程序,如 DOS 等還只能訪問8 G以內(nèi)的硬盤空間。為了打破這一限制,Microsoft 等幾家公司制定了擴(kuò)展Int 13H 標(biāo)準(zhǔn)(Extended Int13H),采用線性尋址方式存取硬盤,所以突破了 8 G的限制,而且還加入了對可拆卸介質(zhì) (如活動硬盤) 的支持。