日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

嵌入式linux学习笔记1—内存管理MMU之虚拟地址到物理地址的转化

發(fā)布時間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式linux学习笔记1—内存管理MMU之虚拟地址到物理地址的转化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.內(nèi)存管理基本知識

1.S3C2440最多會用到兩級頁表:以段的方式進行轉(zhuǎn)換時只用到一級頁表,以頁的方式進行轉(zhuǎn)換時用到兩級頁表。頁的大小有三種:大頁(64KB),小頁(4KB),極小頁(1KB)。條目也稱為"描述符",有:段描述符,大頁描述符,小頁描述符,極小頁描述符——他們保存大頁,小頁,極小頁的起始物理地址;粗頁表描述符,細(xì)頁表描述符——他們保存二級頁表的物理地址。

2.一級頁表描述符的最低兩位,可分為以下四種情況:

(1).0b00:無效。

(2).0b01:粗頁表。

(3).0b10:段。

(4).0b11:細(xì)頁表。

3.二級頁表描述符的最低兩位,可分為以下四種情況:

(1).0b00:無效。

(2).0b01:大頁描述符。

(3).0b10:小頁描述符。

(4).0b11:極小頁描述符。

4.一級頁表地址,將它寫入?yún)f(xié)處理器CP15的寄存器C2(稱為頁表基址寄存器)

二.地址轉(zhuǎn)化過程(基址+變址的形式)

1.段的地址轉(zhuǎn)化過程

NO1.一級頁表基址C2[31:14]+MVA[31:20]+低兩位為0構(gòu)成一個32位的物理地址,找到其中存儲的描述符,此描述符最低兩位為0b10,稱為段描述符;

NO2.段描述符[31:20]+MVA[19:0]構(gòu)成一個32位的物理地址——這就是MVA對應(yīng)的PA。

2.大頁的地址轉(zhuǎn)化過程

(1).大頁描述符保存在粗頁表中

? NO1.一級頁表基址C2[31:14]+MVA[31:20]+低兩位為0構(gòu)成一個32位的物理地址,找到其中存儲的描述符,此描述符最低兩位為0b01,稱為粗頁表描述符;

? NO2.粗頁表描述符[31:10]+MVA[19:12]+低兩位為0構(gòu)成一個新的32位地址,找到其中存儲的描述符,此描述符最低兩位為0b01,稱為大頁描述符;

? NO3.大頁描述符[31:16]+MVA[15:0]構(gòu)成一個32位的物理地址——這就是MVA對應(yīng)的PA。

(2).大頁描述符保存在細(xì)頁表中

??NO1.一級頁表基址C2[31:14]+MVA[31:20]+低兩位為0構(gòu)成一個32位的物理地址,找到其中存儲的描述符,此描述符最低兩位為0b11,稱為細(xì)頁表描述符;

? NO2.細(xì)頁表描述符[31:12]+MVA[19:10]+低兩位為0構(gòu)成一個新的32位地址,找到其中存儲的描述符,此描述符最低兩位為0b01,稱為大頁描述符;

? NO3.大頁描述符[31:16]+MVA[15:0]構(gòu)成一個32位的物理地址——這就是MVA對應(yīng)的PA。

3.小頁的地址轉(zhuǎn)化過程?

(1).小頁描述符保存在粗頁表中

? NO1.一級頁表基址C2[31:14]+MVA[31:20]+低兩位為0構(gòu)成一個32位的物理地址,找到其中存儲的描述符,此描述符最低兩位為0b01,稱為粗頁表描述符;

? NO2.粗頁表描述符[31:10]+MVA[19:12]+低兩位為0構(gòu)成一個新的32位地址,找到其中存儲的描述符,此描述符最低兩位為0b10,稱為小頁描述符;

? NO3.小頁描述符[31:16]+MVA[15:0]構(gòu)成一個32位的物理地址——這就是MVA對應(yīng)的PA。

(2).小頁描述符保存在細(xì)頁表中

??NO1.一級頁表基址C2[31:14]+MVA[31:20]+低兩位為0構(gòu)成一個32位的物理地址,找到其中存儲的描述符,此描述符最低兩位為0b11,稱為細(xì)頁表描述符;

? NO2.細(xì)頁表描述符[31:12]+MVA[19:10]+低兩位為0構(gòu)成一個新的32位地址,找到其中存儲的描述符,此描述符最低兩位為0b10,稱為小頁描述符;

? NO3.小頁描述符[31:16]+MVA[15:0]構(gòu)成一個32位的物理地址——這就是MVA對應(yīng)的PA。

4.極小頁的地址轉(zhuǎn)化過程

? NO1.一級頁表基址C2[31:14]+MVA[31:20]+低兩位為0構(gòu)成一個32位的物理地址,找到其中存儲的描述符,此描述符最低兩位為0b11,稱為細(xì)頁表描述符;

? NO2.細(xì)頁表描述符[31:12]+MVA[19:10]+低兩位為0構(gòu)成一個新的32位地址,找到其中存儲的描述符,此描述符最低兩位為0b11,稱為極小頁描述符;

? NO3.極小頁描述符[31:16]+MVA[15:0]構(gòu)成一個32位的物理地址——這就是MVA對應(yīng)的PA。

三.粗頁表細(xì)頁表每個條目表示的物理空間的由來

1.粗頁表中連續(xù)16個條目都保存同一大頁描述符

? 用于粗頁表索引的MVA[19:12]與用于大頁內(nèi)尋址的MVA[15:0]有重合的位,粗頁表中保存的描述符[31:16]作為物理地址的基址,為了保證基址相同,變址變化,即描述符 ? 不變,MVA[15:0]變化,當(dāng)MVA[15:12]由0b0000變化到0b1111時,里面存儲的描述符應(yīng)該相同——所以,粗頁表中連續(xù)16個條目都保存同一大頁描述符。

2.細(xì)頁表中連續(xù)4個條目保存同一小頁描述符

???用于細(xì)頁表索引的MVA[19:10]與用于小頁內(nèi)尋址的MVA[11:0]有重合的位,粗頁表中保存的描述符[31:12]作為物理地址的基址,為了保證基址相同,變址變化,即描述符 ? ?不變,MVA[11:0]變化,當(dāng)MVA[11:10]由0b00變化到0b11時,里面存儲的描述符應(yīng)該相同——所以,粗頁表中連續(xù)4個條目都保存同一小頁描述符。

四.為什么極小頁描述符只能保存在細(xì)頁表中

? ?MVA[31:20]索引一級頁表,MVA[19:12]索引二級頁表中的粗頁表,MVA[19:10]索引二級頁表中的細(xì)頁表,MVA[9:0]表示極小頁的尋址空間。又每一個MVA對應(yīng)一個 ? 不同的物理地址PA,當(dāng)極小頁的描述符保存在粗頁表中時,MVA[11:10]變化時,其對應(yīng)的物理地址全部相同,故不能保存在粗頁表中。

轉(zhuǎn)載于:https://www.cnblogs.com/WenlongLiu/p/5272763.html

總結(jié)

以上是生活随笔為你收集整理的嵌入式linux学习笔记1—内存管理MMU之虚拟地址到物理地址的转化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。