【第一章】计算机系统漫游(2)

1.5高速缓存

在运行hello world的例子当中我们了解到了:系统花费了大量的时间把信息从一个地方挪到另一个地方。hello程序的机器指令最初是放在磁盘上的,加载hello程序时将机器指令从磁盘上拷贝到主存上,当处理器运行程序时,指令又从主存拷贝到处理器。大量的拷贝减慢了程序的实际工作,因此系统设计者的一个目标就是使这些拷贝操作尽可能的快

根据机器原理,较大的存储设备要比较小的存储设备运行的慢,快速设备的造价远高于低速同类设备。

例如:一个磁盘驱动器可能比主存大100倍,但是对于处理器而言,从磁盘读取一个字的时间开销比从主存读取的开销大1000万倍

与此类似,主存里可以存放几百万字节,而处理器中的寄存器只存储几百字节的信息。但是处理器从寄存器中读取信息的速度比从主存中快了100倍。因此,加快处理器的运行速度比加快主存的处理速度要容易和便宜得多

针对这种处理器与主存之间的差异,系统设计者采用了更小更快的存储设备,称为高速缓存存储器(cache memories)。它们被用来作为暂时的集结区域,存放处理器在不久的将来可能会用到的信息。

高速缓存存储器是为了解决主存的存取速度一直比中央处理器的操作慢得多,使中央处理器的性能发挥不出来设计的

位于处理芯片上的L1高速缓存的容量可以达到数万字节,且访问速度几乎和访问寄存器一样快。

一个容量为数十万到数百万的更大的L2高速缓存是通过一条特殊的总线连接到处理器的。进程访问L2的时间开销要比访问L1的时间开销大5倍,但考虑到L2缓存的容量这仍为很理想的访问速度。

L1和L2高速缓存是用一种叫做静态随机访问存储器(Static Random Access Memory)的硬件技术实现的

1.6形成层次结构的存储设备

在处理器和一个较大较慢的设备(如主存)之间插入一个更小、更快的存储设备(例如,高速缓存存储器)的想法成为了一个普遍的概念。

实际上,每个计算机系统中的存储设备都被组织成一个存储器层次结构

存储器分层结构的主要思想是一个层次上的存储器作为下一层次上的存储器的高级缓存。因此,寄存器文件就是L1的高速缓存,而L1又是L2的高级缓存,L2是主存的高级缓存,主存是磁盘的高级缓存。在某些带分布式文件系统的网络系统中,本地磁盘就是其他系统中磁盘上被存储数据的高速缓存