最近一直在學習內存管理,也知道MMU是管理內存的映射的邏輯IP,還知道里面有個TLB。
今天剛剛好看到了幾篇前輩的文章,很是不錯,于是這里來一起學習一下吧。
PART 一:MMU 架構篇
MMU(Memory Management Unit,內存管理單元)是一種硬件模塊,用于在CPU和內存之間實現虛擬內存管理。
其主要功能是將虛擬地址轉換為物理地址,同時提供訪問權限的控制和緩存管理等功能。
放在整個大系統多核架構里面,每個處理器內置了MMU模塊,MMU模塊包含了TLB和TWU兩個子模塊。
1-宏觀理解
地址空間是一個抽象的概念,由CPU體系架構的地址總線決定,一般等同于CPU的尋址范圍、x位處理器中的x。地址空間一般分為 虛擬地址空間 和物理地址空間 。
任何時候,計算機上都存在一個程序能夠訪問的地址集合,我們稱之為地址空間。這個空間的大小由CPU的位數決定,例如一個32位的CPU,它的地址范圍是0 ~0xFFFFFFFF(4G),而對于一個64位的CPU,它的地址范圍為0 ~ 0xFFFFFFFFFFFFFFFF。
這個空間就是我們的程序能夠產生的地址范圍,我們把這個地址范圍稱為 虛擬地址空間,該空間中的某一個地址我們稱之為虛擬地址。與虛擬地址空間和虛擬地址相對應的則是物理地址空間和物理地址,大多數時候我們的系統所具備的物理地址空間只是虛擬地址空間的一個子集。
舉一個例子,對于一臺內存為 256MB的 32bit x86主機來說,它的虛擬地址空間范圍是 0 ~
0xFFFFFFFF(4G),而物理地址空間范圍是 0x000000000 ~ 0x0FFFFFFF(256MB)。
為什么需要這樣的轉換呢?其實這個就是現在多進程多線程、以及解決內存碎片化的途徑。這里就不展開了。
虛擬地址又被簡稱為虛地址,物理地址又被稱為實地址。虛擬地址和物理地址之間的轉換,又稱為虛實地址轉化。
而這個轉換的過程是硬件執行的:虛擬地址不是被直接送到內存地址總線上,而是送到內存管理單元MMU。他由一個或一組芯片組成,一般存在與協處理器中,其功能是把虛擬地址映射為物理地址。
-
cpu
+關注
關注
68文章
10863瀏覽量
211782 -
計算機
+關注
關注
19文章
7494瀏覽量
87963 -
內存管理
+關注
關注
0文章
168瀏覽量
14141 -
MMU
+關注
關注
0文章
91瀏覽量
18291
發布評論請先 登錄
相關推薦
評論