PTE、TLB、CACHE组成
PTE
页表(page table)的成员是PTE(page table entry),由于Linux对于PTE的定义和ARM硬件不一致,下面的L_开头的定义都是针对Linux的
在32位芯片中,PTE一共32位,低12位如上图定义是各种标志位;因为linux的page设定为4Kbytes,所以PPO是12位,则PPN是20位,PTE的高20位是PPN。
因为页表是全映射,所以页表的索引就是VPN,PTE不用存储VPN;但是TLB只存储部分PTE,所以VPN作为TLB tag存储在TLB entry里。
TLBE(TLB entry)
如下是一个虚拟地址,由VPN和VPO组成
TLBE由TLB tag、PPN、Valid组成;TLBI占2位,所以set取值范围为0~3,TLBI等于0即是set等于0。
上图一个set有4个line,一共3个set,所以属于4路组相连映射
CACHE