邏輯地址如何轉換成物理地址_第1頁
邏輯地址如何轉換成物理地址_第2頁
邏輯地址如何轉換成物理地址_第3頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、資料來源:來自本人網絡整理!祝您工作順利!邏輯地址如何轉換成物理地址 規(guī)律地址和物理地址是什么?規(guī)律地址如何轉換成物理地址?看到許多人都在問這個問題,我為大家共享了規(guī)律地址如何轉換成物理地址的方法,下面大家跟著我一起來理解一下吧。 規(guī)律地址轉換成物理地址 cpu將一個虛擬內存空間中的地址轉換為物理地址,需要進展兩步:首先將給定一個規(guī)律地址(其實是段內偏移量,這個肯定要理解!),cpu要利用其段式內存管理單元,先將為個規(guī)律地址轉換成一個線程地址,再利用其頁式內存管理單元,轉換為最終物理地址。 物理地址(physical address) 用于內存芯片級的單元尋址,與處理器和cpu連接的地址總線相

2、對應。 這個概念應當是這幾個概念中最好理解的一個,但是值得一提的是,雖然可以挺直把物理地址理解成插在機器上那根內存本身,把內存看成一個從0字節(jié)始終到最大空量逐字節(jié)的編號的大數組,然后把這個數組叫做物理地址,但是事實上,這只是一個硬件供應給軟件的抽像,內存的尋址方式并不是這樣。所以,說它是與地址總線相對應,是更貼切一些,不過拋開對物理內存尋址方式的考慮,挺直把物理地址與物理的內存一一對應,也是可以承受的?;蛟S錯誤的理解更利于形而上的抽像。 虛擬內存(virtual memory) 這是對整個內存(不要與機器上插那條對上號)的抽像描繪。它是相對于物理內存來講的,可以挺直理解成不直實的,假的內存,例

3、如,一個0x08000000內存地址,它并不對就物理地址上那個大數組中0x08000000 - 1那個地址元素; 之所以是這樣,是因為現代操作系統都供應了一種內存管理的抽像,即虛擬內存(virtual memory)。進程用法虛擬內存中的地址,由操作系統幫助相關硬件,把它轉換成真正的物理地址。這個轉換,是全部問題爭論的關鍵。 有了這樣的抽像,一個程序,就可以用法比真實物理地址大得多的地址空間。(拆東墻,補西墻,銀行也是這樣子做的),甚至多個進程可以用法一樣的地址。不驚奇,因為轉換后的物理地址并非一樣的。 可以把連接后的程序反編譯看一下,發(fā)覺連接器已經為程序安排了一個地址,例如,要調用某個函數a

4、,代碼不是call a,而是call 0x0811111111 ,也就是說,函數a的地址已經被定下來了。沒有這樣的轉換,沒有虛擬地址的概念,這樣做是根本行不通的。 規(guī)律地址(logical address) intel為了兼容,將遠古時代的段式內存管理方式保存了下來。規(guī)律地址指的是機器語言指令中,用來指定一個操作數或者是一條指令的地址。以上例,我們說的連接器為a安排的0x08111111這個地址就是規(guī)律地址。 不過不好意思,這樣說,似乎又違反了intel中段式管理中,對規(guī)律地址要求,一個規(guī)律地址,是由一個段標識符加上一個指定段內相對地址的偏移量,表示為 段標識符:段內偏移量,也就是說,上例中那

5、個0x08111111,應當表示為a的代碼段標識符: 0x08111111,這樣,才完好一些 線性地址(linear address)或也叫虛擬地址(virtual address) 跟規(guī)律地址類似,它也是一個不真實的地址,假如規(guī)律地址是對應的硬件平臺段式管理轉換前地址的話,那么線性地址那么對應了硬件頁式內存的轉換前地址。 在早期的硬盤中,由于每個磁道的扇區(qū)數相等,外磁道的記錄密度遠低于內磁道,因此造成許多磁盤空間的鋪張。為理解決這一問題,人們改用等密度構造,即外圈磁道的扇區(qū)比內圈磁道多。此種構造的硬盤不再具有實際的3d參數,尋址方式也改為以扇區(qū)為單位的線性尋址,這種尋址形式便是lba(log

6、ic block address, 規(guī)律塊地址)。在這種形式下,硬盤的物理地址與規(guī)律地址的轉換問題有肯定必要性和冗雜性,本文對此進展爭論,盼望對感愛好的讀者有所關心。 2 轉換過程 所謂規(guī)律扇區(qū)是物理扇區(qū)的一組連續(xù)數字的編號,操作系統采納的一種扇區(qū)編號方式,其編號是從0開頭到某個最大值方式排列,并連成一條線。用法規(guī)律扇區(qū)主要有以下兩個優(yōu)點:第一,規(guī)律扇區(qū)的概念使硬盤的讀寫操作脫離了柱面、磁頭和扇區(qū)的硬件參數;其次,在硬盤中每肯定數目的扇區(qū)組成了數據文件的最小單位 簇,在對一個詳細的簇進展讀寫操作時,操作系統劃分一個一維的規(guī)律扇區(qū)號要比用法三維物理扇區(qū)號簡潔的多,假如一個簇的扇區(qū)跨越在兩個盤片,

7、那么用法柱面、磁頭和扇區(qū)的表示方法就更加冗雜了。那么硬盤的物理地址和規(guī)律地址是如何轉換的呢?下面詳細介紹其互相轉換方法。 2.1 硬盤物理地址轉換為規(guī)律地址 首先我們先來理解一下從c/h/s到lba線性地址的轉換規(guī)章。為了與用法c/h/s尋址的老軟件兼容,于是在硬盤掌握器內部安裝了一個地址翻譯器,它負責將c/h/s參數翻譯成lba地址。 同時,由于系統在寫入數據時是根據從柱面到柱面的方式,當上一個柱面寫滿數據后才挪動磁頭到下一個柱面,而且是從柱面的第一個磁頭的第一個扇區(qū)開頭寫入,從而使磁盤性能最優(yōu)。那么在對物理扇區(qū)進展線性編址時,也是根據這種方式進展。即把第一柱面(0柱)第一磁頭(0面)的第一

8、扇區(qū)(1扇區(qū))編為規(guī)律0扇區(qū),把第一柱面(0柱)第一磁頭(0面)的其次扇區(qū)(2扇區(qū))編為規(guī)律1扇區(qū),直至第一柱面(0柱)第一磁頭(0面)的第63扇區(qū)(63扇區(qū))編為規(guī)律62扇區(qū),然后將磁頭轉到第一柱面(0柱)其次磁頭(1面)的第一扇區(qū)(1扇區(qū)),接著上面其對應的規(guī)律編號為第63扇區(qū),0柱面全部扇區(qū)編號完畢后才轉到1柱面的0磁頭1扇區(qū),依次向下進展,直到將全部的扇區(qū)都編上號。我們需要留意的是,物理扇區(qū)c/h/s中的扇區(qū)編號是從1至63,而規(guī)律扇區(qū)lba方式下扇區(qū)是從0開頭編號,全部扇區(qū)編號按挨次進展。 在此轉換過程中,我們必需要知道的物理量有: c1起始扇區(qū)的柱面號 h1起始扇區(qū)的磁頭號 s1起

9、始扇區(qū)的扇區(qū)號 ns每磁道的扇區(qū)數 nh硬盤每柱面磁道數 c、h、s表示硬盤當前的柱面號、磁頭號和扇區(qū)號,那么計算柱面c、磁頭h、扇區(qū)s對應的相對規(guī)律扇區(qū)號rs的公式為: 規(guī)律扇區(qū)rs=nhns(c-c1)+ns(h-h1)+(s-s1),為驗證此公式,下面我們來舉個例子。 實例:已知有一個4磁頭(硬盤每柱面的磁道數為4),每磁道有17個扇區(qū)的硬盤,其中有一個規(guī)律硬盤d:,它的第一個扇區(qū)在硬盤的柱面號為120,磁頭號為1,扇區(qū)號為1的位置,那么計算柱面號為160,磁頭號為3,扇區(qū)號為6的規(guī)律扇區(qū)號rs是多少? 分析: 依據前面的說明,已知條件有:c1=120, h1=1, s1=1, ns=1

10、7, nh=4,c=160,h=3,s=6,那么代入上面公式可得到規(guī)律扇區(qū)號rs=417(160-120)+17(3-1)+(6-1)=2759,即硬盤柱面號為160,磁頭號為3,扇區(qū)號為6的規(guī)律扇區(qū)號為2759. 硬盤規(guī)律地址轉換成物理地址 在對硬盤進展故障維護或者進展相關軟件開發(fā)時,不僅需要將硬盤的物理地址轉換成規(guī)律地址,有時還需要知道規(guī)律地址轉換為物理地址的方法。 依據計算機中符號的常用法那么,我們用div表示除法運算,用mod表示取余數運算,其他參數如c、h、s依舊表示硬盤當前的柱面、磁頭和扇區(qū)號,c1、h1、s1、ns和nh含義也和上面全都。在已知硬盤規(guī)律地址即規(guī)律扇區(qū)號ls的狀況下,求硬盤對應的物理地址的柱面號c、磁頭號h和扇區(qū)號s的方法如下: c=(ls div ns)div nh)+ c1 h=(ls div ns)mod nh)+ h1 s=(ls mod nh)+ s1 實例:設硬盤的磁頭號為4,每磁道17個扇區(qū),其中規(guī)律硬盤d的第一個扇區(qū)在硬盤的柱面120、磁頭1、扇區(qū)1上,求規(guī)律d盤上規(guī)律扇區(qū)為2757編號對應的物理地址是多少? 分析:依據上面的已知條件,我們可知c1=120, h1=1,s1=1,ns=17,nh=4,ls=2757,那么將這些數據

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論