1 主要芯片
硬盤的背面有一塊PCB控制電路板,上面有很多芯片以及元件,其中比較重要的三個芯片是:
A 硬盤的主控芯片,它是電路板中最大的一塊芯片,負責硬盤的工作、接口傳輸和電源供應
B 緩存芯片,它位于主控芯片上方,實際上是一個內存顆粒,提供讀寫硬盤時候的性能
C 驅動芯片,驅動主軸馬達
2 接口
硬盤與主板的連接部分就是硬盤的接口,常見的有ATA、SATA和SCSI標準接口。ATA、SATA接口主要用于個人電腦,SCSI接口則較多的應用在服務器上,接口的主要性能只表示傳輸率。
ATA接口傳輸率分為100MB/s和133MB/s,目前常見的ATA接口硬盤的外部傳輸速率模式有UltraATA/100、UltraDMA/133兩種,大多數的硬盤的都支持UltraDMA/100/133的傳輸速率模式。
SATA硬盤的出現,緩解了磁盤系統的瓶頸問題。首先SATA是以串行的方式傳送數據,這可使連接電纜數目變少,效率提高。其次,SATA有更高的起點、可發展的潛力大,Serial ATA 1.0定義的數據傳輸率可達150MB/s,這比ATA 133所能達到的133MB/s的最高數據傳輸率還高,而Serial ATA 2.0/3.0的數據傳輸率將達到300MB/s 和600MB/s。最后,Serial ATA具有更強的系統拓展性,由Serial ATA 采用點對點的傳輸協議,這樣可以使每個驅動器獨享帶寬,而且在拓展Serial ATA面會更有優勢。
3 內部結構
拆開硬盤后,可以看到硬盤的內部結構,它主要是由磁盤盤片、磁頭組件及磁頭傳動結構組成。
硬盤工作時,它的核心是盤片,由主軸驅動旋轉,然后由磁頭定位,在高速旋轉的盤片上定位數據來獲取數據,磁頭獲取的數據,首先被送入緩存,然后通過數據線傳送給系統。這就是硬盤的基本運作模式。
磁頭組件很復雜、精密,主要用來讀取和寫入數據,在它工作時,離磁盤盤片的距離相當近,而且不能接觸盤片,所以平時當硬盤在運行時,我們一定要讓硬盤保持平穩的狀態,不能晃動它,否則硬盤就很容易損壞。硬盤的磁頭是用線圈纏繞在磁芯上制成的 現在大都使用的是GMR(巨磁阻)磁頭。
磁盤盤片是由硬質合金組成的,是在盤片上涂上一層磁性物質,現在還出現了玻璃盤片。它的主要作用就是儲存數據和資料。主軸結構也就是使磁盤盤片運動起來的部分,它決定了硬盤的轉速。其中的馬達轉速越高,硬盤讀取數據的速度也越快,相應地,也產生了噪音。所以很多硬盤使用了液態軸承,讓硬盤的發熱量和噪音都減小。
目前的硬盤的盤片及磁頭均密封在金屬盒中,構成一體,不可拆卸,金屬盒內是高純度氣體,不是真空,因為在硬盤工作期間,磁頭是懸浮在盤片上面,這個懸浮是靠一個飛機頭來保持平衡。飛機頭與盤片保持一個適當的角度,高速旋轉的時候,用氣體的托力,就象飛機飛行在大氣中一樣,而磁頭(GMR磁頭)與盤片的距離一般在0.15μm左右,對氣體中的懸浮顆粒要求直徑不超過0.08μm,否則對磁頭的讀寫及其運動、壽命都會造成很大的影響;結束工作時,硬盤的磁頭會通過專門的機構讓它停落在它的著陸區(沒有數據存儲的區域)。
4 CHS尋址方式
到目前為止, 人們常說的硬盤尋址還是古老的CHS(Cylinder/Head/Sector)方式. 那么為什么要使用CHS這些參數,它們的意義是什么?它們的取值范圍是什么?早期硬盤的容量還非常小的時候,人們采用與軟盤類似的結構生產硬盤. 也就是硬盤盤片的每一條磁道都具有相同的扇區數.由此產生了所謂的3D參數 (Disk Geometry),既磁頭數(Heads), 柱面數(Cylinders),扇區數(Sectors),以及相應的CHS尋址方式.
磁頭數(Heads)表示硬盤總共有幾個磁頭,也就是有幾面盤片, 最大為 255 (用 8 個二進制位存儲);
柱面數(Cylinders) 表示硬盤每一面盤片上有幾條磁道,最大為 1023(用 10 個二進制位存儲);
扇區數(Sectors) 表示每一條磁道上有幾個扇區, 最大為 63(用 6個二進制位存儲).每個扇區一般是 512個字節, 理論上講這不是必須的,但好象沒有取別的值的.所以磁盤最大容量為:
255 * 1023 * 63 * 512 / 1048576 = 8024 MB ( 1M =1048576 Bytes )或硬盤廠商常用的單位:
255 * 1023 * 63 * 512 / 1000000 = 8414 MB ( 1M =1000000 Bytes )
在 CHS 尋址方式中, 磁頭, 柱面, 扇區的取值范圍分別為 0到 Heads - 1,0 到 Cylinders - 1, 1 到 Sectors (注意是從 1 開始)
5 基本 Int 13H 調用簡介
BIOS Int 13H 調用是 BIOS提供的磁盤基本輸入輸出中斷調用, 它可以完成磁盤(包括硬盤和軟盤)的復位, 讀寫, 校驗, 定位, 診斷,格式化等功能.它使用的就是 CHS 尋址方式, 因此最大識能訪問 8 GB 左右的硬盤。
6 現代硬盤尋址方式
在老式硬盤中, 由于每個磁道的扇區數相等,所以外道的記錄密度要遠低于內道, 因此會浪費很多磁盤空間 (與軟盤一樣). 為了解決這一問題,進一步提高硬盤容量, 人們改用等密度結構生產硬盤. 也就是說,外圈磁道的扇區比內圈磁道多. 采用這種結構后, 硬盤不再具有實際的3D參數,尋址方式也改為線性尋址, 即以扇區為單位進行尋址.為了與使用3D尋址的老軟件兼容 (如使用BIOSInt13H接口的軟件), 在硬盤控制器內部安裝了一個地址翻譯器,由它負責將老式3D參數翻譯成新的線性參數. 這也是為什么現在硬盤可以有多種尋址方式(不同的工作模式, 對應不同的3D參數, 如 LBA, LARGE, NORMAL)的原因。
7 擴展 Int 13H 簡介
雖然現代硬盤都已經采用了線性尋址, 但是由于基本 Int13H 的制約, 使用 BIOS Int 13H 接口的程序, 如 DOS 等還只能訪問 8 G以內的硬盤空間.為了打破這一限制, Microsoft 等幾家公司制定了擴展 Int 13H 標準(Extended Int13H), 采用線性尋址方式存取硬盤, 所以突破了 8 G的限制,而且還加入了對可拆卸介質 (如活動硬盤) 的支持.
8 硬盤工作模式“NORMAL”“LBA”“LARGE”的含義
NORMAL:普通模式是最早的 IDE 方式,在硬盤訪問時,BIOS 和 IDE 控制器對參數不做任何轉換。該模式支持的最大柱面數為 1024,最大磁頭數為 16,最大扇區數為 63,每扇區字節數為 512,因此支持最大硬盤的容量為:512x63x16x1024=528MB。在此模式下,硬盤的實際物理容量再大,也只能用到其中的 528M。
LBA(Logical Block Addressing):邏輯塊尋址模式。管理的硬盤空間可達 8.4GB。在 LBA 模式下,設置的柱面、磁頭、扇區等參數并不是實際硬盤的物理參數。在訪問硬盤時,由 IDE 控制器把由柱面、磁頭、扇區等參數確定的邏輯地址轉換為實際硬盤的物理地址。在 LBA 模式下,可設置的最大磁頭數為 255,其余參數與普通模式相同,由此可以計算出可訪問的硬盤容量為:512x63x255x1025=8.4GB。不過現在新主板的BIOS對 INT13 進行了擴展,使得 LBA 能支持 100GB 以上的硬盤。
LARGE:大硬盤模式,在硬盤的柱面超過 1024 而又不為 LBA 支持時采用。LARGE 模式采用的方法是把柱面數除以 2,把磁頭數乘以 2,其結果總容量不變。
在這三種硬盤模式中,現在 LBA 模式使用最多。
備注:
1 本來是沒有整理這篇文章的,只是在看GRUB相關東西時候,最后發現對硬盤的了解太少,所以整理了上面的文章。
2 還需要補充內容如下:硬盤LBA尋址是怎么定位一個扇區的?開機時候BIOS怎么檢測硬盤的容量的?硬盤自己的BIOS是實現什么功能的?如果硬盤工作在LBA模式,常見操作系統的硬盤驅動訪問硬盤某個扇區時候,給出的地址是CHS方式還是扇區的邏輯/物理地址?