PPC的MMU實現簡介

MMU就是內存管理單元,PPC上有兩種方式來實現MMU,Block方式和Segment方式。兩種方式在一個嵌入式系統中可以並存,但Block方式優先於Segment方式。

利用Block方式,PPC需要利用到BAT,可以稱之爲Block寄存器(是一種SPR)。在PPC750中一共有16個BAT,分成2類,分別是IBAT與DBAT(指令與數據),這兩類中又分爲四組,每組由Lower BAT和UpperBAT組成。PPC尋址時,通過LowerBAT與UpperBAT來找到物理地址,通過寄存器中的BIT來判斷是否進行內存保護等功能。

Segment方式也就是段頁式方式,首先由OS產生一個頁表,其大小應該由實際的物理內存決定。利用段頁式尋址比較簡單:PPC首先查找TLB(硬件實現的頁表緩存),如果在TLB中找不到,就去查找頁表。頁表由若干個PTEG組成,一個PTEG又由8個PTE組成,PTE也就是每個頁的信息。

VXworks有自己的mmu實現,但我們的系統中是自己開發的,通過sysLib.c中的Block和頁信息影射來設置具體內存的管理方式,然後在系統啓動後,接管vxworks的頁表和BAT,並通過我們的程序來實現MMU。

MMU是很有意思的一部分,有時間會詳細把這部分內容翻譯過來。


本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/asper/archive/2005/11/06/524090.aspx

發佈了26 篇原創文章 · 獲贊 5 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章