<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學(xué)習(xí)啦>學(xué)習(xí)電腦>網(wǎng)絡(luò)知識>網(wǎng)絡(luò)基礎(chǔ)知識>

        虛擬地址和物理地址轉(zhuǎn)換

        時間: 春健736 分享

          內(nèi)核也不能直接訪問物理地址.但因?yàn)閮?nèi)核的虛擬地址和物理地址之間只是一個差值0xc0000000的區(qū)別,所以從物理地址求虛擬地址或從虛擬地址求物理地址很容易。那么虛擬地址和物理地址怎么轉(zhuǎn)換?學(xué)習(xí)啦小編整理了修改硬盤物理地址的相關(guān)資料。供大家參考!

          虛擬地址和物理地址轉(zhuǎn)換參考如下

          虛擬地址(Virtual Address Space)

          虛擬地址并不真實(shí)存在于計(jì)算機(jī)中。每個進(jìn)程都分配有自己的虛擬空間,而且只能訪問自己被分配使用的空間。理論上,虛擬空間受物理內(nèi)存大小的限制,如給有4GB內(nèi)存,那么虛擬地址空間的地址范圍就應(yīng)該是0x00000000~0xFFFFFFFF(4GB)。

          為什么每個進(jìn)程的虛擬地址空間范圍都可以這么大呢,這涉及到地址的映射機(jī)制;程序?qū)嶋H運(yùn)行時,系統(tǒng)會先將虛擬地址映射到物理地址中的范圍。

          另外一個概念:虛擬內(nèi)存。虛擬內(nèi)存是內(nèi)存中的一片連續(xù)地址空間。在物理存儲位置上的意義,不一定就是指物理內(nèi)存,可能也是在硬盤上開辟的一篇地址空間。

          物理地址(physical address)

        物理地址用于內(nèi)存芯片級的單元尋址,與處理器和CPU連接的地址總線相對應(yīng)。

          ——這個概念應(yīng)該是這幾個概念中最好理解的一個,但是值得一提的是,雖然可以直接把物理地址理解成插在機(jī)器上那根內(nèi)存本身,把內(nèi)存看成一個從0字節(jié)一直到最大空量逐字節(jié)的編號的大數(shù)組,然后把這個數(shù)組叫做物理地址,但是事實(shí)上,這只是一個硬件提供給軟件的抽像,內(nèi)存的尋址方式并不是這樣。所以,說它是“與地址總線相對應(yīng)”,是更貼切一些,不過拋開對物理內(nèi)存尋址方式的考慮,直接把物理地址與物理的內(nèi)存一一對應(yīng),也是可以接受的。也許錯誤的理解更利于形而上的抽像。

          虛地址到物理地址的轉(zhuǎn)換過程

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

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

          轉(zhuǎn)換表基地址#2 + MVA的粗頁表索引 = 粗頁表的物理地址

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

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

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

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

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

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

          step3得到的物理地址位定義

          注1:嚴(yán)格的說,這個地址是可能是FCSE或ARM926ej-s處理器產(chǎn)生

          注2:轉(zhuǎn)換表基地址保存在TTBR,詳見TTBR

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

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

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

          CP15

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

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

          ARM926ej-s產(chǎn)生的地址為虛地址(VA),F(xiàn)CSE(快速上下文切換控制器)將VA轉(zhuǎn)換為修改過的虛地址(MVA)供MMU使用,MMU將MVA轉(zhuǎn)換為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分頁內(nèi)存管理的硬件基礎(chǔ)。MMU使用TLB(Translation lookaside buffer,即旁路轉(zhuǎn)換緩沖,或稱為頁表緩沖;用來存放虛擬地址到物理地址的轉(zhuǎn)換表)將虛擬地址轉(zhuǎn)換為物理地址。

          TLB保存在SDRAM中。

          TTBR

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

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

          粗表描述符

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

          小頁描述符

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

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

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

          虛擬地址到物理地址的轉(zhuǎn)換步驟

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

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

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

          -> 0000 0001 1010 1111 0101 0101 0001 1000

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

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

          換算成十六進(jìn)制后可以得到如下結(jié)果

          頁目錄索引 = 6, 頁表項(xiàng)索引 = 0x2f5 , 偏移 = 0x518

          2. 根據(jù)當(dāng)前的CR3寄存器中的物理地址定位頁目錄表基址

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

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

          3. 計(jì)算頁表項(xiàng)的地址

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

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

          3. 計(jì)算頁面物理地址

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

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

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

          4. 計(jì)算最終的物理地址

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

          0x7095E000 + 0x00000518 = 0x7095E518.

          看過“虛擬地址和物理地址轉(zhuǎn)換 ”的人還看了:

        1.虛擬地址到物理地址的轉(zhuǎn)換

        2.物理地址與虛擬地址怎么轉(zhuǎn)換

        3.物理地址和虛擬地址

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

        5.linux虛擬地址怎么映射物理地址

        604349 主站蜘蛛池模板: 狠狠色丁香婷婷综合尤物| 久久亚洲av成人无码软件| 天堂www在线中文| 人人妻人人添人人爽日韩欧美| 在线日韩日本国产亚洲| 高清有码国产一区二区| 在线看免费无码av天堂的| 国产尤物精品自在拍视频首页| 内射少妇36p九色| 老熟妇国产一区二区三区 | 亚洲天堂成人一区二区三区| 91久久偷偷做嫩草影院免费看| 国产成人a在线观看视频| 无码人妻h动漫| 国产成人精品三级在线影院| 中文字幕无码久久精品| 牛鞭伸入女人下身的真视频| 公喝错春药让我高潮| 无码国产精品一区二区免费3P| 国偷自产一区二区三区在线视频| 荡公乱妇hd电影中文字幕| 一区二区在线观看成人午夜| 国产精品午夜福利免费看| 国产精品一区二区三区色| 国产精品一二二区视在线| 久久精品青青大伊人av| 亚洲国产欧美在线人成大黄瓜| 亚洲深深色噜噜狠狠网站| 少妇人妻偷人精品视蜜桃 | 国产精品午夜福利免费看| 日韩福利视频导航| 日韩伦理片| 一区二区三区av在线观看| 中文字幕在线观看一区二区| 欧美亚洲另类 丝袜综合网| 一级成人欧美一区在线观看| 在线高清免费不卡全码| 激情综合五月天开心久久| 中文字幕亚洲人妻系列| 久久精品国产国语对白 | 放荡的美妇在线播放|