2005/04/17

HDD算法

算是回憶的memo

最開始的年代,硬碟是高價值的設備,單位是MB (更早之前的我還來不及接觸)
計算的方法是由 每一磁區大小 X 磁區數目 X 磁柱數目 X 磁頭數目
capacity = sector size x sectors x cylinders x heads

Normal的設定中,最大磁頭數只有16,最大磁柱數 1024,最大磁區數是 63,每一磁區大小為512
故最大硬碟容量 = 512 * 63 * 1024 * 16 大約是528MB

後來cylinder開始超過1024,但部份主機板或軟體無法辨識,所以設計出Large的定址方式
其不同處在於使用時將cylinder除以2,藉以騙過那些不認得大於1024位址的軟、硬體
而計算容量時再將磁頭數乘以2,達成總大小不變

這樣還是停留在MB的價值觀呀,於是又定義了新的定址方式:LBA(Logical Block Addressing)
此時是用一種邏輯的方法來定義資料的位置,由IDE controller跟BIOS去處理邏輯與實體位置的轉換(mapping)
此時最大磁柱數可到16383,即最大容量可到 8.4G
再往上加強,提升最大磁頭數到 255,這是LBA的最大值 137G

科技始終來自人性
為了解決人們儲存大量且高品質的動作愛情片的需求,硬碟愈來愈大,愈來愈便宜,137G不夠了
可是LBA的28Bit定址已經沒辦法再提升了,現在新的方式就是48Bit定址,一舉將最大值推到144PB
1PB = 1000 TB ; 1 TB = 1000 GB


ps,據說,當TB硬碟面市時,user會面臨的問題是32bit作業系統無法接受,如同當初dos無法接受64GB
 
_ _