既然CPU不会从主存里读数据,那MDR有什么用呢?

来源:3-6 计算机的高速缓存

Charles_So_网页开发

2021-02-18

我在看老师您回答同学们的提问的时候,发现老师一直重复强调同一个观点:

CPU不会从主存中读取数据;假如CPU需要的数据不在高速缓存里,CPU会等CPU高速缓存从主存里取数据;然后CPU再从高速缓存里取数据

图片描述

图片描述

假设CPU真的不会从主存里面取数据,那么MDR这个主存数据读取器,有什么用?

图片描述
图片描述

写回答

2回答

咚咚呛

2021-02-18

在CPU结构中,MDR、MAR都是寄存器,功能不同所以具体名字会有所不同。

MDR是用于临时存储CPU运算时所用到的数据的,CPU不会直接读取内存的数据,当CPU需要访问的数据不在寄存器时,会发出缺页中断,转而处理其他的任务,而缺页中断会有专门的设备进行处理(这个设备我们成为MMU),处理的主要过程就是发生内存的置换,把数据置换到CPU的寄存器,也即是MDR。

希望对你有所帮助。

0
3
Charles_So_网页开发
非常感谢!
2021-02-20
共3条回复

的意义

2021-07-01

感觉老师讲的这个有问题,应该是cache miss的时候,cpu直接从主存获取数据到寄存器里,同时把数据替换进cache里面,也就是说CPU与主存是有直接通信的情况的,顺便可以看下教材上的图示,
60dce1610001502f05470729.jpg

60dce18e0001115105470729.jpg

0
1
咚咚呛
『CPU直接从主存获取数据到寄存器里』,这句话不够严谨,CPU如果需要从主存读取数据,需要发出虚拟内存地址,虚拟内存地址需要经过MMU转换为物理地址才可以进行Cache的置换,因此可以实际上并不是CPU直接从主存读取数据,其中是经过了MMU,你这里书本提供的图省略了MMU工作的部分。
2021-07-01
共1条回复

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程