ARM MMU架構 -- CPU如何訪問MMU及DRAM


《ARM Architecture Reference Manual ARMv8-A》里面有Memory層級框架圖,從中可以看出L1、L2、DRAM、Disk、MMU之間的關系,以及他們在整個存儲系統中扮演的角色。

 

 

涉及到的相關文檔有:

  • 《ARM Architecture Reference Manual ARMv8-A》:E2 The AArch32 Application Level Memory Model和G3 The AArch32 System Level Memory Model兩個章節,從總體架構上介紹了ARMv8-A Memory系統。
  • 《Cortex-A53 TRM》:6 Level 1 Memory System、5 Memory Management Unit、7 Level 2 Memory System三個章節介紹了MMU/L1/L2三個模塊在A53上的實現。

具體到MMU:

  • 《MMU-500 TRM》:MMU-500技術參考手冊。
  • 《ARM SMMUv2》:System MMU 架構規格 version 2.0。

具體到L2:

  • 《L2C-310 TRM》:L2控制器技術參考手冊。

 

在Linux內核中查看L1/L2/L3緩存:

1 lscpu
2 ...
3 L1d cache: 32K
4 L1i cache: 32K
5 L2 cache: 256K
6 L3 cache: 6144K
7 ...

或者讀取節點:

1 cat /sys/devices/system/cpu/cpu0/cache/indexx/size
2 cat /sys/devices/system/cpu/cpu0/cache/indexx/level

MMU-500組成

  • VA:Virtual Address
  • PA:Physical Address
  • IPA:Intermediate Physical Address

MMU-500是系統級的存儲管理單元,它基於自身寄存器和轉換表中的地址映射和存儲器屬性,將虛擬地址轉換成物理地址。
將這個轉換過程分為兩個階段:

  • Stage 1 - 將輸入的VA轉換成PA或者IPA輸出。
  • Stage 2 - 將IPA轉換成PA。
  • 或者結合Stage 1和Stage 2將輸入的VA->IPA->PA。

MMU-500可以將 轉換表查找結果緩存到TLB中。
MMU-500包含一下主要部件:

  • TBU(Translation Buffer Unit) - 包含緩存頁表的TLB,MMU-500給每個Master配置了一個TBU,專屬於Master。
  • TCU(Translation Control Unit) - 控制和管理地址轉換,一個MMU-500僅包含一個TCU。
  • Interconnect - 多TBU到TCU之間的連接。

Master可能包括GPU、Video engines、DMA Controller、LCD Controller、Network Controller等。

 

 參考

關於CPU Cache -- 程序猿需要知道的那些事 • cenalulu's Tech Blog

閱讀ARM Memory(L1/L2/MMU)筆記_weixin_34174132的博客-CSDN博客

關於TCM

TCM(Tighyly Coupled Memory,緊耦合內存)是一個固定大小的RAM,緊密地耦合至處理器內核,提供與cache相當的性能。

相比於cache的有點是,程序代碼可以精確地控制什么函數或什么代碼放在哪兒。當然TCM永遠不會被踢出主存儲器,他會有一個用戶預設性能,而不是cache那樣是統計特性的提高。
TCM對於以下幾種情況的代碼是非常有用、也是需要的:可預見的實時處理(中斷處理)、時間可預見(加密算法)、避免cache分析(加密算法)、或者只是要求高性能的代碼(編解碼功能)。
隨着cache大小的增加以及總線性能的規模,TCM將會變得越來越不重要,但是他提供了一個讓你權衡的機會。

如何使用TCM?

在支持TCM的處理上,包含頭文件#include <asm/tcm.h>。
使用__tcmdata、__tcmconst、__tcmfunc、__tcmlocalfunc修飾符,將變量、函數放到特定的tcm段中。
還可以使用tcm_alloc/tcm_free申請釋放內存。

對ARM緊致內存TCM的理解》- 關於TCM的介紹,以及和Cache相比的優劣。

內核中tcm(arm)與sram代碼》- 如何使用TCM。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM