CPU如何访问主存?

最近再看计组,然后在存储系统章节,可以知道,访问内存有两个层次,cache--主存层次(解决主存访问速度的问题)、主存--辅存层次(解决主存容量的问题)。两个单独理解都很好理解,但是在一次真实访问中,两个层次是怎么合并起来的呢?

首先CPU在不停的执行程序,其内部可见地址为虚拟地址,是程序员能看到的地址。

1.找物理地址(主存--辅存层次-保证了想访问的在主存中:

1.1 该地址首先会去到cache中,cache中存在TLB表,TLB表是页表的一部分内容,保存装入为1的条目,如果在TLB中找到了相应的页表项,那么直接根据页表项得到物理地址。

 1.2 (准确的说主存--辅存层次在这里!!)如果TLB没有找到相应的页表项,那么说明不在TLB里,那我们就需要通过页表来进行查询物理地址,这个时候需要借助内存管理单元MMU,通过MMU查询页表,如果在页表中相应页表项装入位为1,说明在内存中,得到物理地址;如果为0不在内存中则需要通过虚拟存储器中软硬件进行主存和辅存的调入调出,修改页表,最终得到物理地址。

注:TLB只保存装入位为1,查到说明一定在内存里,同时这里也处理了主存和辅存的调入调出,这里也是主存--辅存层次应用的地方,也是虚拟存储器进行管理的地方。

 2.找到内容(cache--主存层次-根据物理地址去访问:

2.1 找到物理地址后,就根据物理地址转换为cache地址,看看能不能命中cache,命中cache直接找到内容,不命中cache,就通过该物理地址真实访问主存即可。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值