天天看點

ARM體系結構與程式設計 閱讀筆記P207

在ARM中采用的是組相連的位址影響方式。如果cache塊大小為,則同一塊中的各位址中的位[31:L], 就是   

31---------------------------------- 0

31往右數的L位

如果cache組大小是(每組包含的塊數),則虛拟位址位[L+S-1:L]用于選擇cache中的某個組。

Cache的分類:

1 獨立cache  統一cache 

獨立是 指令和資料讀寫時時不同一cache。

2 寫通cache和寫回cache

寫回隻寫入cache不入主存。

寫通,cache,主存都有。

3 讀操縱配置設定cache和寫操作配置設定cache。

讀操作配置設定: 如果cache不命中,隻是簡單寫入主存,要讀取時才進行cache預取。

寫操作配置設定:  如果cache不命中,cache預取,

4 緩沖技術:

ARM中 I/O操作經常被映射為存儲器讀取操作實作。Cache技術要求兩次讀要有同樣的結果,但是I/O操作就不滿足上述條件。

寫緩沖技術,(buffer),如果I/O操作被緩沖了,等到一個時間再把結果寫回到I/O端,就好像又中斷了一樣。

是以MMU和PU 會将某些位址空間設定成非緩沖的。(uncachable,unbufferable)

5 存儲系統的一緻性問題。

位址映射關系造成的資料不一緻

比如虛拟位址到實體位址的映射關系發生變化前,虛拟位址A1所在的資料塊已經預取到cache,當虛拟位址和實體位址映射關系發生變化後,CPU通路A1,再用cache中資料塊将發生錯誤。

6指令cache的資料一緻性問題

Cache内容鎖定,讓關鍵代碼和資料所在的塊不會被替換。

CP15中 C7用于控制cache和寫緩沖區

C9是cache内容鎖定寄存器。

快速上下文切換技術 fast context switch extension , fcse. 

一般情況下,兩個程序占用的虛拟位址空間有重疊,系統在這兩個程序間進行切換時,必須進行虛拟位址到實體位址的重映射。這就涉及到很多東西。MMU中頁表,cache,TLB。

Fcse将各程序的虛拟空間切換成不同的虛拟空間。這樣進行程序間切換時就不需要進行虛拟位址到實體位址的重映射。

繼續閱讀