1957 年 IBM 公司研制勝利的 IBM 350 RA MA C 第一台真正意義上的硬盤存儲器,之後經歷了漫長的技術革新,於 80 年代初期引入 PC 個人電腦)當時的容量僅為 20-40M 而經過 10 幾年的發展,硬盤的容量逐步提高,而當時一些設計上的失誤就造成了今天可能呈現的硬盤容量限制問題。容量限制問題:就是系統無法完全識別或正常使用超過一定容量的硬盤)
容量限制問題的成因
要明白這個原因我需要對 IDE 接口硬盤的工作方式做一個介紹,即使到現在今天的 IDE 硬盤驅動依舊使用早先的 DOS-BIOS 磁盤操作系統 - 基本輸入 / 輸出系統)分層結構上。基本工作模式就是順序調用 ->DOS 功能調用 -> 文件管理設備 ->INT 13 中斷管理(讀 / 寫) ->BIOS 磁盤服務 ->IDE ATA 界面 -> 磁盤控制器,也就是說我如果需要對硬盤進行操作必需通過以上的一系列步驟才能完成,那麼我以下一起來看看這一系列步驟的作用在。
文件管理設備:其負責文件及其在磁盤上存儲位置之間的映射關系,不過需要通過磁盤讀寫中斷 INT13 執行讀寫命令來存儲、調入文件。當新文件被保存時,文件管理器決定它當前目錄裡(電腦自動關機)的存儲位置,文件分配表中為這個新文件添加文件目錄項,並把文件寫入磁盤。當讀文件時,文件管理器在 FA T 中找到文件在磁盤上的位置,接著就調入文件。
IDE ATA 界面:介紹 IDE ATA 界面前,簡單說說硬盤的結構:硬盤分為一定數量的柱面(以硬盤中心為圓心的同心圓磁跡)每個柱面都需要磁頭來讀寫數據。另外,硬盤上的數據都是以每扇區 512 字節的格式存儲的所有的數據傳輸都是以扇區(柱面被等分的園弧磁跡)為單位的 IDE ATA 界面是寄存器驅動式的並口總線。要傳輸數據, BIOS 首先往 IDE ATA 裡(電腦自動關機)特定的寄存器寫入數據的開始地址和數據傳輸的長度,再把有關的讀 / 寫命令往特定的寄存器裡(電腦自動關機)發送從而開始數據傳輸。
現在硬盤一般都支持邏輯塊尋址 ( LBA 和柱面磁頭扇區尋址 ( CHS , 以 CHS 尋址方式來舉例:數據傳輸的開始地址是寫到 4 個 8 位寄存器裡(電腦自動關機)的分別是
柱面低位寄存器
柱面高位寄存器
扇區寄存器
設備 / 磁頭寄存器
因此,柱面地址是 16 位 [ 柱面低位寄存器( 8 位)柱面高位寄存器( 8 位) ] 扇區地址是 8 位(注意:扇區寄存器裡(電腦自動關機)第一個扇區是 1 扇區,而不是 0 扇區)而磁頭地址是 4 位(沒有完全占用 8 位)因此,硬盤柱面的最大數是 65,536 2 16 次方)磁頭的最大數是 16 2 4 次方)扇區的最大數是 255 2 8 次方 -1 注意剛剛我提到扇區寄存器問題 ) 所以,能尋址的最大扇區數是 267,386,880 65,536x16x255 一扇區又是 512 字節,也就是說如果以 CHS 尋址方式, IDE 硬盤的最大容量為 136.9GB LBA 尋址方式,上述的總共 28 位可用的寄存器空間 ( 16+8+4 被看作一個完整的 LBA 地址,因為包括位 0 CHS 裡(電腦自動關機)扇區不能從 0 開始計算)其能尋址的扇區數是 268,435,456 65,536x16x256 這時 IDE 硬盤的最大容量為 137.4GB
INT 13 管理: INT 13 管理其實也是依照寄存器的模式來設計的高層即文件管理器層發布數據讀寫命令和有關的參數給 CPU 然後觸發 INT 13 中斷的進行,激活 BIOS 磁盤服務來執行數據傳輸。數據的開始地址被寫到 3 個 8 位寄存器裡(電腦自動關機),分別是
柱面低位寄存器
柱面高位 / 扇區寄存器
磁頭寄存器
柱面地址是 10 位(柱面低位寄存器占用 8 位、柱面高位寄存器占用 2 位)扇區地址為 6 位( 8 位-已經被計算過的高位寄存器的 2 位)磁頭寄存器為 8 位。因此如果這樣的話:柱面的最大數是 1024 2 10 次方) 磁頭的最大數是 256 2 8 次方)扇區的最大數是 63 2 6 次方 -1 所以,通過 INT 13 管理能尋址的扇區數是 16,515,072 1,024x256x63 一扇區是 512 字節,也就是說如果以 CHS 尋址方式, IDE 硬盤的最大容量為 8.456GB LBA 尋址方式能尋址的扇區數是 16,777,216 1024x256x64 這時 IDE 硬盤的最大容量為 8.601GB
看到這裡(電腦自動關機),應該感到硬盤容量限制的成因有了一些 “ 眉目 ” 吧,那麼我具體來到底是什麼讓硬盤出現了所謂的限制:
硬盤容量限制問題的形成以及解決方案