1、 高速缓冲存储器 高速缓冲存储器(Cache)其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种 RAM,一般而言它不像系统主记忆体那样使用 DRAM 技术,而使用昂贵但较快速的 SRAM 技术,也有快取记忆体的名称。一、 基本概念在计算机存储系统的层次结构中,介于中央处理器和主存储器之间的高速小容量存储器。它和主存储器一起构成一级的存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。某些机器甚至有二级三级缓存,每级缓存比前一级缓存速度慢且容量大。而这时,一开始的高速小容量存储器就被人称为一级缓存。二、 组成结构高速缓冲存储器是存在于主存与 CPU 之间的一级
2、存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU 的速度。 主要由三大部分组成: Cache 存储体:存放由主存调入的指令与数据块。 地址转换部件:建立目录表以实现主存地址到缓存地址的转换。 替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。三、 作用介绍在 计 算 机 技 术 发 展 过 程 中 , 主 存 储 器 存 取 速 度 一 直 比 中 央 处 理器 操 作 速 度 慢 得 多 , 使 中 央 处 理 器 的 高 速 处 理 能 力 不 能 充 分 发 挥 ,整 个 计 算 机 系 统 的 工 作 效 率 受 到 影 响 。
3、有 很 多 方 法 可 用 来 缓 和 中 央处 理 器 和 主 存 储 器 之 间 速 度 不 匹 配 的 矛 盾 , 如 采 用 多 个 通 用 寄 存 器 、多 存 储 体 交 叉 存 取 等 , 在 存 储 层 次 上 采 用 高 速 缓 冲 存 储 器 也 是 常 用的 方 法 之 一 。 很 多 大 、 中 型 计 算 机 以 及 新 近 的 一 些 小 型 机 、 微 型 机也 都 采 用 高 速 缓 冲 存 储 器 。 高 速 缓 冲 存 储 器 的 容 量 一 般 只 有 主 存 储 器 的 几 百 分 之 一 , 但 它的 存 取 速 度 能 与 中 央 处 理 器 相 匹
4、 配 。 根 据 程 序 局 部 性 原 理 , 正 在 使用 的 主 存 储 器 某 一 单 元 邻 近 的 那 些 单 元 将 被 用 到 的 可 能 性 很 大 。 因而 , 当 中 央 处 理 器 存 取 主 存 储 器 某 一 单 元 时 , 计 算 机 硬 件 就 自 动 地将 包 括 该 单 元 在 内 的 那 一 组 单 元 内 容 调 入 高 速 缓 冲 存 储 器 , 中 央 处理 器 即 将 存 取 的 主 存 储 器 单 元 很 可 能 就 在 刚 刚 调 入 到 高 速 缓 冲 存 储器 的 那 一 组 单 元 内 。 于 是 , 中 央 处 理 器 就 可 以 直
5、接 对 高 速 缓 冲 存 储器 进 行 存 取 。 在 整 个 处 理 过 程 中 , 如 果 中 央 处 理 器 绝 大 多 数 存 取 主存 储 器 的 操 作 能 为 存 取 高 速 缓 冲 存 储 器 所 代 替 , 计 算 机 系 统 处 理 速度 就 能 显 著 提 高 。 在计算机技术发展过程中,主存储器存取速度一直比中央处理器操作速度慢得多,使中央处理器的高速处理能力不能充分发挥,整个计算机系统的工作效率受到影响。有很多方法可用来缓和中央处理器和主存储器之间速度不匹配的矛盾,如采用多个通用寄存器、多存储体交叉存取等,在存储层次上采用高速缓冲存储器也是常用的方法之一。很多大、中
6、型计算机以及新近的一些小型机、微型机也都采用高速缓冲存储器。 高速缓冲存储器的容量一般只有主存储器的几百分之一,但它的存取速度能与中央处理器相匹配。根据程序局部性原理,正在使用的主存储器某一单元邻近的那些单元将被用到的可能性很大。因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动地将包括该单元在内的那一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器的那一组单元内。于是,中央处理器就可以直接对高速缓冲存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,计算机系统处理速度就能显著提高。四、
7、 工作原理高速缓冲存储器通常由高速存储器、联想存储器、替换逻辑电路和相应的控制线路组成。在有高速缓冲存储器的计算机系统中,中央处理器存取主存储器的地址划分为行号、列号和组内地址三个字段。于是,主存储器就在逻辑上划分为若干行;每行划分为若干的存储单元组;每组包含几个或几十个字。高速存储器也相应地划分为行和列的存储单元组。二者的列数相同,组的大小也相同,但高速存储器的行数却比主存储器的行数少得多。 联想存储器用于地址联想,有与高速存储器相同行数和列数的存储单元。当主存储器某一列某一行存储单元组调入高速存储器同一列某一空着的存储单元组时,与联想存储器对应位置的存储单元就记录调入的存储单元组在主存储器
8、中的行号。 当中央处理器存取主存储器时,硬件首先自动对存取地址的列号字段进行译码,以便将联想存储器该列的全部行号与存取主存储器地址的行号字段进行比较:若有相同的,表明要存取的主存储器单元已在高速存储器中,称为命中,硬件就将存取主存储器的地址映射为高速存储器的地址并执行存取操作;若都不相同,表明该单元不在高速存储器中,称为脱靶,硬件将执行存取主存储器操作并自动将该单元所在的那一主存储器单元组调入高速存储器相同列中空着的存储单元组中,同时将该组在主存储器中的行号存入联想存储器对应位置的单元内。当出现脱靶而高速存储器对应列中没有空的位置时,便淘汰该列中的某一组以腾出位置存放新调入的组,这称为替换。确
9、定替换的规则叫替换算法,常用的替换算法有:最近最少使用法(LRU) 、先进先出法(FIFO)和随机法(RAND)等。替换逻辑电路就是执行这个功能的。另外,当执行写主存储器操作时,为保持主存储器和高速存储器内容的一致性,对命中和脱靶须分别处理: 写操作命中时,可采用写直达法(即同时写入主存储器和高速存储器)或写回法(即只写入高速存储器并标记该组修改过。淘汰该组时须将内容写回主存储器) ; 写操作脱靶时,可采用写分配法(即写入主存储器并将该组调入高速存储器)或写不分配法(即只写入主存储器但不将该组调入高速存储器) 。高速缓冲存储器的性能常用命中率来衡量。影响命中率的因素是高速存储器的容量、存储单元
10、组的大小、组数多少、地址联想比较方法、替换算法、写操作处理方法和程序特性等。 采用高速缓冲存储器技术的计算机已相当普遍。有的计算机还采用多个高速缓冲存储器,如系统高速缓冲存储器、指令高速缓冲存储器和地址变换高速缓冲存储器等,以提高系统性能。随着主存储器容量不断增大,高速缓冲存储器的容量也越来越大。缓冲存储器用在两个工作速度不同的硬件之间,在交换信息过程中起到缓冲作用。它能提高计算机系统的工作效益。下面主要谈谈两种高速缓冲存储器。 一、高速缓冲存储器 Cache 我们通常都认为计算机的速度是由 CPU 决定的,但是还要有其它的硬件或软件来充分发挥它的速度。我们知道要使用的软件都要通过主存储器(内
11、存)才能运行,而主存储器的运行速度和 CPU 之间有一个数量级的差距,这就限制了 CPU 速度潜力的发挥,为了弥补这个差距,人们在主存储器和 CPU 之间设置一种高速缓冲存储器 Cache。 高速缓冲存储器Cache 的运行速度高于主存储器数倍,与 CPU 速度差不多,容量较小。高速缓冲存储器 Cache 中的数据是主存储器的副本,在程序运行中,当需要取指令或数据时,CPU 先检查高速缓冲存储器 Cache 中是否有内容,若有就从 Cache 中取出,否则从主存储器取出,这样就充分发挥了 CPU 的潜力。 在 486 的机种中经常配备高速缓冲存储器 Cache,与主存储器相比,它的工作性质是不同的。简单地说,Cache 是针对CPU 作输入输出动作的,而主存储器是针对总线作输入输出动作的,因此 Cache 比主存储器的速度快。