端到端的地址翻译

高速缓存参数

   基本参数

参数           描述

S=2s       组数       

E         每个组的行数                                           

B=2b      块大小(字节)

m=log2(M)   (主存)物理地址位数

   衍生出来的量

参数      描述

M=2m      内存地址的最大数量  

s=log2(S)    组索引的位数

b=log2(B)    块偏移位数量

t=m-(s+b)    标记位数量

C=B*E*S    不包括像有效位和标记位这样开销的高速缓存大小(字节)

地址翻译符号
   基本参数

符号           描述

N=2n    虚拟地址空间中的地址数量

M=2m   物理地址空间中的地址数量

P=2p    页的大小(字节)

    虚拟地址(VA)的 组成部分

符号          描述

VPO    虚拟页面偏移量(字节)

VPN    虚拟页号

TLBI    TLB索引

YLBT     TLB标记

  物理地址(PA)的组成部分

符号          描述

PPO    物理页面偏移量(字节)

PPN    物理页号

CO      缓冲块内的字节偏移量

CI        高速缓存索引

CT      高速缓存标记

对于端到端的地址翻译,我们假设

  内存是按字节寻址的

  内存访问是针对1字节的字的(不是4字节的字)     偏移后读一个字节

  虚拟地址是14位长的(n=14)  

  物理地址是12位长的(m=12)

  页面大小是64字节(p=64)    页的位数是6(26=64)即VPO=PPO=6

  TLB是四路组相联的,总共有16个条目。块表有四组(索引位为2),每组四个共有16个条目。

  L1 d-cache是物理寻址,直接映射的,行大小为4字节,而总共有16个组。高速缓存每组只有一行,行大小为4字节,故每组4字节,(22=4,故偏移量为2位)一共16组(索引位为4)。

 块表:

     

页表:

     

 高速缓存:

     

下图展示了虚拟地址和物理地址的格式:

      

      

 给出虚拟地址:0x03d7,填下表:

A.虚拟地址格式

|------------------>TLBT<-------------------||-->TLBI<--|

  13      12      11      10       9        8       7         6        5       4        3        2       1        0

|---------------------------->VPN<--------------------------||------------------>VPO<------------------|

B.地址翻译

   

 C.物理地址格式

|------------------->CT<---------------------||------------->CI<-----------||--->CO<----|

   11      10       9        8       7        6        5        4       3        2        1        0 

 |------------------>PPN<-------------------||------------------->ppo<--------------------|

 D.物理内存引用

 

posted @ 2020-12-02 22:09  玉可可  阅读(206)  评论(0)    收藏  举报