• <output id="aynwq"><form id="aynwq"><code id="aynwq"></code></form></output>

    <mark id="aynwq"><option id="aynwq"></option></mark>
  • <mark id="aynwq"><option id="aynwq"></option></mark><label id="aynwq"><dl id="aynwq"></dl></label>
  • 學習啦 > 學習電腦 > 網絡知識 > 網絡基礎知識 > 虛地址的物理地址計算

    虛地址的物理地址計算

    時間: 春健736 分享

    虛地址的物理地址計算

      一般MAC地址在網卡中是固定的,當然也有網絡高手會想辦法去修改自己的MAC地址。那么虛地址的物理地址怎么計算?學習啦小編整理了修改硬盤物理地址的相關資料。供大家參考!

      虛地址的物理地址計算參考如下

      虛地址到物理地址的轉換過程

      MVA (Modified Virtual address,修改過的虛擬地址,這個地址由CPU產生#1)

      step1.通過TTBR找到粗表描述符

      轉換表基地址#2 + MVA的粗頁表索引 = 粗頁表的物理地址

      step2.通過粗表描述符找到小頁描述符

      粗頁表基地址#3 + MVA的小頁表索引 = 小頁表的物理地址

      step3.通過小頁描述符找到物理地址

      小頁基地址#4 + MVA的頁索引 = 物理地址

      step1得到的粗頁表的物理地址位定義

      step2得到的小頁表的物理地址位定義

      step3得到的物理地址位定義

      注1:嚴格的說,這個地址是可能是FCSE或ARM926ej-s處理器產生

      注2:轉換表基地址保存在TTBR,詳見TTBR

      注3:粗頁表基地址保存在粗頁表描述符中,詳見粗頁表描述符

      注4:小頁表基地址保存在粗頁表描述符中,詳見小頁表描述符

      --------------------------------------------------------------------------------------

      CP15

      系統(tǒng)控制協(xié)處理器(CP15)被用來配置和控制ARM926ej-s處理器。cache、mmu都通過CP15的寄存器來控制。需要使用專門的指令訪問CP15的寄存器。

      ARM926ej-s系統(tǒng)中的地址

      ARM926ej-s產生的地址為虛地址(VA),F(xiàn)CSE(快速上下文切換控制器)將VA轉換為修改過的虛地址(MVA)供MMU使用,MMU將MVA轉換為TCM和AMBA總線的物理地址(PA)。

      CP15的c1寄存器

      c1寄存器是ARM926ej-s處理器的控制寄存器。該寄存器用來使能或禁用cache、配置MMU。

      I 0: 禁用iCache,1使能iCache

      C 0:禁用dCache,1使能dCache

      如果c1寄存器禁用了cache,小頁表的C、B位是無效的。

      TLB

      MMU是OS分頁內存管理的硬件基礎。MMU使用TLB(Translation lookaside buffer,即旁路轉換緩沖,或稱為頁表緩沖;用來存放虛擬地址到物理地址的轉換表)將虛擬地址轉換為物理地址。

      TLB保存在SDRAM中。

      TTBR

      TTBR是Translation Table Base Register的縮寫,中文全稱是:轉換表基地址寄存器。TTBR是協(xié)處理器CP15的c2寄存器。

      由于讀取TTBR時Bit13~Bit0是不可預測的,所以粗頁表的起始地址必須是按64K對齊的。

      粗表描述符

      填充為紅色的位固定為0/1。Bit8~Bit5為域控制位,可以定義16個域。

      小頁描述符

      填充為紅色的位固定為0/1。AP3~AP0為訪問控制位,訪問控制位和域控制位配合完成了對內存訪問權限的管理。在boot中,禁用域控制,同時將AP3~AP0全部設置為3(任何人都可以讀寫)。只關注 C cache控制位,B buffer控制位。

      #寫通。讀命中,從Dcche讀取數(shù)據,讀未命中,(cache)行填充;寫命中,寫數(shù)據帶Dcache,并緩沖到外邊存儲器寫未命中,緩沖到外部存儲器

      #寫回。讀命中,從Dcache讀取數(shù)據,讀未命中,(cache)行填充;寫命中,寫數(shù)據帶Dcache ;寫未命中,緩沖到外部存儲器

      虛擬地址到物理地址的轉換步驟

      已知一個虛擬地址0x01AF5518, 則轉換的過程如下:

      注意: *這里討論的以Windows下普通模式分頁的情況, 也就是2級頁表的情況*

      1.首先把虛擬地址拆分成3個部分(低12位, 中10位, 高10位), 換成2進制如下:

      -> 0000 0001 1010 1111 0101 0101 0001 1000

      按照10, 10, 12的位數(shù)重新排列后

      -> (頁目錄索引)00 000 00110, (頁表項索引)10 1111 0101, (偏移)0101 0001 1000

      換算成十六進制后可以得到如下結果

      頁目錄索引 = 6, 頁表項索引 = 0x2f5 , 偏移 = 0x518

      2. 根據當前的CR3寄存器中的物理地址定位頁目錄表基址

      Cr3中存放的是物理地址, 這個物理地址指向進程的頁目錄表基址, 由此可以得到

      頁目錄表基址(PDE) = Cr3 = 0xAA0E5000

      3. 計算頁表項的地址

      頁表地址存放在頁目錄表(PDE)中的第6個項目中, 也就是

      [0xAA0E5000 + 4 * 6] = [0xAA0E5018] = 0x3D955867, 其中0x00000867為該頁表屬性值, PTE = 0x3D955000

      3. 計算頁面物理地址

      我們要找的頁面在這個頁表中的第0x2f5項, 所以虛擬地址所在的頁的物理地址為

      [0x3D955000 + 0x2f5 * 4] = [0x3D955BD4] =

      假設[0x3D955BD4] = 0x7095e847, 頁面的物理地址 x0x7095e000, 0x00000847表示的是頁面屬性

      4. 計算最終的物理地址

      由虛擬地址分離的偏移可以計算出最終的物理地址為

      0x7095E000 + 0x00000518 = 0x7095E518.

      看過“虛地址的物理地址計算 ”的人還看了:

    1.虛擬地址到物理地址的轉換

    2.物理地址與虛擬地址怎么轉換

    3.物理地址和虛擬地址

    4.物理地址與虛擬地址映射

    5.物理地址和邏輯地址的區(qū)別

    604271 主站蜘蛛池模板: 中文字字幕码一二区| 国产乱人伦app精品久久| 亚洲精品国产电影| eeuss影院www在线观看免费| 精品欧洲男同同志videos| 无码av岛国片在线播放| 国产亚洲日韩欧美一区二区三区| 九九影视理伦片| 黄色毛片免费观看| 日韩人妻无码一区二区三区久久| 国产成人无码午夜视频在线观看| 久青草影院在线观看国产| 国产叼嘿久久精品久久| 日韩精品欧美激情国产一区| 国产女人高潮视频在线观看 | 久别的草原电视剧免费观看| 天天碰免费视频| 暖暖直播在线观看| 国产内射大片99| 久久久久亚洲AV无码专区首JN| 色综合久久一区二区三区| 成年免费视频黄网站在线观看| 啊灬啊别停灬用力啊呻吟| 一本到视频在线| 狠狠97人人婷婷五月| 国产香蕉精品视频| 亚洲免费观看视频| 黄色在线视频网| 日日碰狠狠添天天爽超碰97| 四虎影在线永久免费四虎地址8848aa| 一进一出60分钟免费视频| 男插女高潮一区二区| 国产超清在线观看| 五月天婷婷在线播放| 蜜桃av无码免费看永久| 很黄很污的视频在线观看| 人妻无码久久一区二区三区免费| 91av最新地址| 最好2018中文免费视频| 国产一区二区三区不卡AV| h文站着从后面挺进孕妇|