九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
S3C2440的內(nèi)存管理單元MMU--大小頁地址轉(zhuǎn)換

1.MMU簡介

   MMU(Memory Management Unit),內(nèi)存管理單元,主要職責(zé):將虛擬地址映射為物理地址,提供硬件機制的內(nèi)存訪問權(quán)限檢查。

2.基本概念

  虛擬地址(Virtual Address,VA),修改后的虛擬地址(Modified VA),物理地址(Phisical Address)
 VA是CPU使用的地址,MVA是MMU、Caches使用的,他們的映射關(guān)系:
  

(1)cpu看到的是VA
(2)caches和MMU使用的是MVA,
(3)實際物理設(shè)設(shè)備使用的是PA。

3.地址轉(zhuǎn)換中的基本概念
地址的轉(zhuǎn)換就像是數(shù)學(xué)中映射,利用函數(shù)公式,多對1,就是多個虛擬地址對應(yīng)同一個物理地址。
這里地址轉(zhuǎn)換用的是頁表的方式。
(1)頁表
   頁表是由一個個表項(Entry,又稱作描述符)組成的物理表,每個頁表項或是一個物理頁(一塊物理內(nèi)存,大小為1k,4k不等)的起始地址,或是一個二級頁表的地址(當(dāng)是一個二級頁表的地址時,又可以稱該頁表為頁描述符)。所有的頁表都用物理地址訪問。

 (2)表項(描述符)的分類
  依據(jù)描述符保存的內(nèi)容,可以分為兩類。
  一類保存的是直接的物理頁或段的起始地址,如段描述符、大頁、小頁、極小頁描述符。
  另一類保存的是二級頁表的物理地址,如粗頁表描述符,細(xì)頁表描述符。
 (3)一級映射與二級映射
   一級映射,是指以段(Section,大小1MB)的方式進(jìn)行轉(zhuǎn)換。
   二級映射,是以頁的方式進(jìn)行轉(zhuǎn)換。ARM頁大小由三種:1k,4k,64k。

4.地址轉(zhuǎn)換的過程
 (1)CPU發(fā)出一個VA,是怎么轉(zhuǎn)換為MVA的
   這在上圖可以看到,是通過一個硬件電路轉(zhuǎn)換的。
 在ARM9里面,如果VA<32M,利用進(jìn)程標(biāo)識號PID轉(zhuǎn)換得到MVA
過程如下:
if(VA < 32M)
     MVA = VA | ( PID<<25 )
else
     MVA = VA
只是上面的過程是由硬件實現(xiàn)的。
  這樣為VA進(jìn)行了一級映射,為什么呢?在linux系統(tǒng)里,每個進(jìn)程的地址空間0-4G,0-3G是進(jìn)程獨有的,稱為用戶空間,3G-4G是系統(tǒng)的,稱為內(nèi)核空間,所有進(jìn)程共享。如果兩個進(jìn)程所用的VA有重疊,在切換進(jìn)程時,為了把重疊的VA映射到不同的PA上,需要重建頁表、使無效caches和TLBS。使用了MVA,使進(jìn)程在VA相同的情況下,使用不同的MVA,進(jìn)而PA也不同。這就是在VA與PA之間加上一次到MVA的映射的意義。

(2)MVA到PA的轉(zhuǎn)換
上面說了,虛擬地址到物理地址的轉(zhuǎn)換有兩種方式:公式映射+頁表轉(zhuǎn)換。
概念上面也介紹過了。
這里就進(jìn)行實際的轉(zhuǎn)換說明。
首先,給定一個MVA,要進(jìn)行轉(zhuǎn)換,先要找到一級頁表,怎么找?
有一個寄存器,TTB寄存器,頁表基地址寄存器,負(fù)責(zé)保存一級頁表的基地址,當(dāng)然是物理地址。
 
TTB寄存器是集成在CP15協(xié)處理器中的,


TTB的格式:
因此,一級頁表的地址是16k對齊的,因為[14:0]要求為0.
 
一級頁表的描述符格式:
 
 
一級頁表的表項,可以是個段描述符,粗頁表描述符或細(xì)頁表描述符。
共同點是,每個描述符都代表1MB的物理地址空間。
不同點:段描述符直接指向一個1MB地址空間,可以直接訪問;而頁表描述符,顧名思義,就是指向一個二級頁表,還需要另一次映射。
 
二級頁表的描述符格式:
 

二級頁表有兩種:粗頁表(Coarse Page Table )+細(xì)頁表( Fine Page Table)
粗頁表與細(xì)頁表的異同:粗頁表有最多256個表項,每個表項可表示4kb空間,如果表項是個大頁頁表描述符,則連續(xù)16個表項都表示同一個大頁描述符。
細(xì)頁表中每個表項代表1kb,指向一個極小頁;也可擴展成4k的小頁,64k的大頁。
 
頁表的結(jié)構(gòu)與格式就是這些了。。下面看轉(zhuǎn)換的具體過程
 

段地址轉(zhuǎn)換

大頁地址轉(zhuǎn)換
小頁的地址轉(zhuǎn)換

極小頁的地址轉(zhuǎn)換
 
 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
s3c2440硬件學(xué)習(xí)筆記----內(nèi)存管理單元MMU
內(nèi)存管理單元MMU概述
虛擬內(nèi)存 & I/O & 零拷貝
徹底搞懂虛擬內(nèi)存,虛擬地址,虛擬地址空間
PowerPCE600內(nèi)核MMU機制分析二
ARM920T虛擬地址原理分析及實現(xiàn)
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服