1. 請問硬碟物理地址是怎麼轉換的!
這個我不熟
2. 什麼是電腦的物理地址
物理地址是指內存或者硬碟的存儲數據的具體位置,一般用16進制的數表示不存在電腦的物理地址
3. 物理地址是不是指計算機存放數據在硬碟等存儲設備里的地址
不是存放在硬碟的,物理地址是記錄在各個硬體固件晶元上的,不可變更,每個硬體的物理地址都是唯一的,如網卡物理地址就是MAC地址例如:e0:fd:b2:d8:ff。硬碟的物理地址是一串字元如:wne72002048ed0001927。通常物理地址用於本地硬體識別,以便確定數據進出硬體是哪一個,在網路中相當於手機識別碼或人的身份證。
4. 磁碟的定址方式
硬碟有兩種定址模式,一種就是C/H/S(Cylinder/Head/Sector)定址模式,也可以稱為三維地址模式,這是硬碟最早採用的定址模式,當時硬碟的容量還非常小,人們採用與軟盤類似的結構生產硬碟,也就是硬碟碟片的每一條磁軌都具有相同的扇區數,由此產生了所謂的3D參數(Disk Geometry),既磁頭數(Heads)、柱面數(Cylinders)、 扇區數(Sectors),以及相應的定址方式。
在老式硬碟中,由於每個磁軌的扇區數相等(與軟盤一樣),所以外磁軌的記錄密度要遠低於內磁軌,因此會浪費很多磁碟空間。為了解決這一問題,進一步提高硬碟容量(C/H/S定址的容量是有限制的,後面會提到),人們改用等密度結構生產硬碟,也就是說,外圈磁軌的扇區比內圈磁軌多。採用這種結構後,硬碟不再具有實際的3D參數,定址方式也改為線性定址,即以扇區為單位進行定址,這種定址模式叫做LBA,全稱為Logic Block Address(即扇區的邏輯塊地址)。
扇區的三維物理地址與硬碟上的物理扇區一一對應,即三維物理地址可完全確定硬碟上的物理扇區。而在LBA方式下,系統把所有的物理扇區都按照某種方式或規則看做是一個線性編號的扇區,即從0到某個最大值方式排列,並連成一條線,把LBA作為一個整體來對待,而不再是具體的實際的C/H/S值,這樣只用一個序數就確定了一個惟一的物理扇區,顯然線性地址是物理扇區的邏輯地址。
為了與使用C/H/S定址的老軟體兼容(如使用BIOS Int13H介面的軟體)在硬碟控制器內部安裝了一個地址翻譯器,由它負責將C/H/S參數翻譯成LBA地址。
那麼LBA地址到底如何與實際的C/H/S值相對應呢?如何把C/H/S地址轉換為LBA地址,把LBA地址轉換成C/H/S值呢?
首先,我們來了解一下從C/H/S到LBA線性地址的轉換規則。由於系統在寫入數據時是按照從柱面到柱面的方式,在上一個柱面寫滿數據後才移動磁頭到下一個柱面,並從柱面的第一個磁頭的第一個扇區開始寫入,從而使磁碟性能最優,所以,在對物理扇區進行線性編址時,也按照這種方式進行。即把第一柱面(0柱)第一磁頭(0面)的第一扇區(1扇區)編為邏輯「0」扇區,把第一柱面(0柱)第一磁頭(0面)的第二扇區(2扇區)編為邏輯「1」扇區,直至第一柱面(0柱)第一磁頭(0面)的第63扇區(63扇區)編為邏輯「62」扇區,然後轉到第一柱面(0柱)第二磁頭(1面)的第一扇區(1扇區),接著上面編為邏輯「63」扇區,0柱面所有扇區編號完畢後轉到1柱面的0磁頭1扇區,依次往下進行,直至把所有的扇區都編上號。
另外還要注意C/H/S中的扇區編號從「1」至「63」,而LBA方式下扇區從「0」開始編號,所有扇區順序進行編號。
掌握了這個關系,我們就可以列出公式來對兩種定址模式進行相互轉換。
從C/H/S到LBA的轉換公式:
這里規定用C表示當前柱面號,H表示當前磁頭號,S表示當前扇區號,CS表示起始柱面號,HS表示起始磁頭號,SS表示起始扇區號,PS表示每磁軌扇區數,PH表示每柱面磁軌數,所以公式為:
LBA=(C–CS)﹡PH﹡PS+(H–HS)﹡PS+(S–SS)
一般情況下,CS=0,HS=0,SS=1,PS=63,PH=255。
下面帶入幾個值驗證一下:
當C/H/S=0/0/1時,代入公式得LBA=0
當C/H/S=0/0/63時,代入公式得LBA=62
當C/H/S=0/1/1時,代入公式得LBA=63
這里不再過多驗證,請讀者自己進行跟多值的驗證,下面來看從LBA到C/H/S的轉換關系。
首先介紹兩種運算DIV和MOD(這里指對正整數的操作)。DIV稱做整除運算,即被除數除以除數所得商的整數部分。比如,3 DIV 2=1,10 DIV 3=3;MOD運算則是取商的余數。比如,5 MOD 2=1,10 MOD 3=1。DIV和MOD是一對搭檔,一個取整數部分,一個取余數部分。
各參數仍然按上述假設進行,則從LBA到C/H/S的轉換公式為:
C=LBA DIV (PH﹡PS)+CS
H=(LBA DIV PS)MOD PH+HS
S=LBA MOD PS+SS
同樣可以帶入幾個值進行驗證:
當LBA=0時,代入公式得C/H/S=0/0/1
當LBA=62時,代入公式得C/H/S=0/0/63
當LBA=63時,代入公式得C/H/S=0/1/1
5. 什麼叫物理地址,是磁頭的一種古老的定址方式
物理地址即磁碟的柱面地址、磁頭地址、扇區地址,通過這三個地址來確定數據存儲的位置。
CHS(Cylinder/Head/Sector)定址模式也稱為3D模式,是硬碟最早採用的定址模式,它是在硬碟容量較小的前提下產生的。
硬碟的C/H/S 3D參數既可以計算出硬碟的容量,也可以確定數據所在的具體位置。這是因為扇區的三維物理地址與硬碟上的物理扇區一一對應,即三維物理地址可完全確定硬碟上的物理扇區。三維物理地址通常以C/H/S的次序來書寫,如C/H/S為0/1/1,則第一個數字0指0柱面,第二個數字1指1磁頭(盤面),第三個數字1指1扇區,表示該數據位於硬碟1盤面上的0磁軌1扇區。現在定位已完成,硬碟內部的參數和主板BIOS之間進行協議,正確發出定址信號,從而正確定位數據位置。