《计算机组成与体系结构》——4.1存储

本节有:

  • buffer
  • cache
  • 命中
  • 缺失

1 计算机存储系统概述

主存储器种的一部分可用做缓冲区(buffer),暂时保存写入磁盘种的数据,这种技术有时称为磁盘高速缓存,它用两种方法改进性能:

  • 磁盘写入是以簇的形式进行的。一次传输的数据量较大,而不是很多次小的数据传送,这改善了磁盘的性能,减少了对处理器的占用。
  • 某些制定输出的数据在转存到磁盘之前可被程序访问。这样,可以快速地从软件高速缓存种检索,而不是从相对较慢的磁盘中检索。

1.1 cache存储器原理

cache介于CPU和主存之间,其中存放了主存储器的部分副本。当CPU试图访问主存中的某个字时,首先检查这个字是否在cache中,如果是,则把这个字传送给CPU;如果不是,则将主存中包含这个字的固定大小的块读入cache中,然后再传送该字给CPU。因为访问的局部性,当把某一块数据存入cache,以满足某次存储器的访问时,CPU将来还很有可能访问同一存储位置或该数据中的其他字。

单一cache.png

1.2 cache/主存结构

主存储器由多达个可寻址的字组成,每一个字有唯一的位地址。为了实现映射,我们将主存储器看成是由许多定长的块组成,每块有个字。即有个块。而cache包含个块,称作行,每行包括个字和几位标记。行的数量远远小于主存储器块的数目()。任何时候,只有主存储器块的子集驻留在cache中。如果要读取主存储器块中的某个字,则包含该字的块将被传送到cache中的一个行中。由于块数多余行数,所以单个行不可能永久地被某块专用。因此,每行都有一个标记(tag),用来识别当前存储的是哪一块。这个标记通常是主存储器地址的一部分。

cache主存结构.png

1.3 数据的命中与缺失

图a说明了一个读操作。处理器产生一个要读取字的地址RA,如果这个字在cache中,则把它直接传送给处理器。否则,将包含这个字的块装入cache中,然后再传送给CPU。可以看出最后两步操作时并行进行的,这在图b也有反映。在这种组织结构中,cache经数据线、控制线和地址线连接到处理器,数据线和地址线也分别于数据缓冲器和地址缓冲器相连,这些缓冲器都连接到总线上,从而与主存连接。当cache命中时,数据和地址缓冲器不启用,通信只在处理器和cache之间进行,此时系统总线上没有信号传输。当cache未命中时,所需求的地址被加载到系统总线上,数据通过数据缓冲器提交给cache和CPU。也有组织结构在未命中时,先把数据加载到cache,然后再由cache传送给CPU。

cache读操作.png

你可能感兴趣的:(《计算机组成与体系结构》——4.1存储)