知识点
在这里我会回答以下几个问题:
-
计算机的范围内存的整个流程是什么?计算机中
虚拟地址
,物理地址
(P573),以及访问缓存的地址
(P426) 他们之间的关系是什么,又是如何进行转换的? -
我们在两个C语言程序中打印某个变量的内存,发现他们的内存显示是一样的,难道不会冲突吗?
PS:图均来自九曲阑干
让我们先来了解下缓存
我们要知道,为了解决CPU与存储器之间速度的巨大差异,我们的存储器并不再是单纯地指内存了。
我们也不再是单纯地将我们运行程序时访问内存抽象成直接访问一个数组了,而是访问一个存储器层次结构
其中,缓存贯穿存储器层次结构,甚至可以说第Li-1层就是第Li层的缓存
不同层次之间的数据交流是以块
为单位,为此各个层次的存储器都对数据进行了分块
(特殊的是在内存和磁盘之间的数据交流单位也被称为页,这主要是因为有虚拟内存技术)
相邻的层次之间块的大小是一样的
我们来看看我们的内存是如何组成的
首先我们的内存是由许多内存芯片封装而成,被称之为内存模块
标签:CSAPP,缓存,Cache,存储器,Lab,访问,内存,我们 From: https://www.cnblogs.com/cilinmengye/p/18088753