《计算机存储与外设》----1.2 Cache存储器的性能

本节书摘来自华章出版社《计算机存储与外设》一书中的第1章,第2节,作者Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著,沈 立 肖晓强 王苏峰 译,更多章节内容可以访问“华章计算机”公众号查看。

1.2 Cache存储器的性能

在判断加入Cache是否划算之前,需要知道增加Cache对计算机性能会产生多大的影响。这里首先介绍一个简单的模型,忽略实际Cache系统的细节:每个系统的Cache都不完全一样。特别是,该模型假定每个Cache项都为一个字宽,而实际Cache存放的是一个块(包含若干个字)。

Cache系统的主要参数就是命中率(hit ratio)h,它定义为所有访问操作在Cache中命中的概率,由系统操作统计结果决定。访问局部性的作用使得命中率通常较高,基本保持在98%左右。本章的后续部分将讨论影响命中率的因素以及使h保持较高值的方法。

在计算Cache对处理器性能的影响之前,需要引入一些术语:
主存储器访问时间     tm
Cache访问时间          tc
命中率                        h
失效率                        m
加速比                        S

加速比(speedup ratio)是没有Cache时存储系统的访问时间与具有Cache时系统访问时间的比值。对于N次访存,如果没有Cache,则总的访问时间为Ntm。

对于N次访存,如果有Cache,总访问时间是N(htc+mtm)。失效率m,定义为m=1-h,因为访问要么命中要么不命中。因此,具有Cache的系统的加速比为:

该表达式假定所有操作均为访存操作,这是不正确的,因为处理器也要完成内部操作。后面还会谈到这一点。如果不关心主存储器和Cache的绝对速度的话,可以引入一个参数,k=tc/tm,它定义了Cache相对主存储器的速度比例。由h和k定义的加速比为:

图1-6显示了当k=0.2时加速比S与命中率h的关系曲线。正如大家理解的那样,当h=0时的加速比为1,因为所有访存操作都访问了主存储器。当h=1时,所有访存操作都在Cache中进行,因此加速比为1/k。

从图1-6中得出的一个最重要的结论是,加速比对命中率敏感。只有当h接近90%,Cache的性能影响才十分显著。该结论与常识是一致的。如果h低于90%,访问主存储器的时间占较大比例,快速访问Cache带来的效果对系统性能的影响不大。

上述加速比S的公式适用于存储器和Cache可并行工作的系统,因为它假定每个存储周期开始时,同时(并行)访问主存储器和Cache;也就是,访存地址同时交给Cache和主存储器。如果命中,终止对主存储器的访问。如果Cache不响应,数据将从主存储器中返回。

实际微处理器能够获得的加速比并不如上述公式得到的那样乐观。真实微处理器的操作速度由其时钟周期、每个存储器访问所需时钟周期数以及由于访问存储器而处于等待状态的时间确定。加快Cache的速度并不如减少等待时间重要。即使使用十分快速的Cache,也不可能将访存时间减少到比不包含等待状态的一个总线周期还要短。

看看下面这个例子。
微处理器的时钟周期时间              10ns
每个总线周期所需最小时钟周期数  3
存储器访问时间                             40ns
由于访存带来的等待时间         2个时钟周期
Cache访问时间                              10ns
由于访问Cache带来的等待状态      0
这些数据表明,存储器访问需要(3个时钟周期+ 2个等待状态)×10ns=50ns,访问Cache需要3×10ns=30ns。该计算过程并不包含主存储器和Cache的实际访问时间。加速比为:

假设平均命中率为95%,根据上式计算的加速比是1.61(即161%)。该结果比直接拿Cache和主存储器的访存时间来计算得到的结果(即2.46)要小。
以上公式省略了不需访问存储器的内部操作的影响。下面看看德克萨斯仪器公司操作说明书中给出的既考虑非存储器访问操作又考虑访问Cache和主存储器中的数据时,微处理器的平均周期时间tact。

式中:
Fint为处理内部操作指令所占比例(以70%为例);
Fmem为访存操作指令所占比例(以30%为例);
tcyc为处理器的时钟周期时间(以10ns为例);
twait为由于Cache失效导致的等待时间(以50ns为例);
tCache为Cache访问时间(以5ns为例);
h为命中率(以0.9为例)。

把给出的实际参数的例子代入公式计算,可得:

即使是这个结果也没有给出全部事实,因为实际系统不会一次仅在Cache和主存储器间移动一个字的数据。Cache基本存储单元的容量不只是一个字,而是一块(line),它通常包括4~64个字节。当发生失效时,从存储器中会传输一块数据到Cache。因此,失效开销不仅仅是调入一个数据,而是包括一块数据。

此时,也许可以对前面提到的存储墙进行讨论。假设某系统以周期为单位的指令平均执行时间Timeavc为:

式中,CPUuse表示非访存指令所占比例(以80%为例);tCPU表示这类指令执行需要的时钟周期数(假定为1);Memoryuse表示访存指令所占比例;tmemory表示这类指令执行需要的时钟周期数(假定为10)。如果命中率h为0.95,则:
Timeave = 0.80·1 + 0.20·0.95·1 + 0.20·(1-0.95)·10 = 0.80 + 0.19 + 0.10 = 1.09个周期

经过一段时间,处理器的速度提高10倍,Cache的速度提高5倍,DRAM的速度提高2倍。CPU、Cache与DRAM的访问时间之比不再是1∶1:10,而是1∶2∶50。此时,
Timeave = 0.80·1 + 0.20·0.95·2 + 0.20·(1-0.95)·50 = 0.80 + 0.38 + 0.50 = 1.68个周期

假设第二种情况下,时钟周期时间是第一种情况的1/10,加速比为10.9/1.68=6.488。这表明时钟和CPU的速度快了10倍,而吞吐量只增加了6倍。

如果考虑Cache的写失效,可以重新审视Cache的性能。

时间: 2024-07-30 13:42:31

《计算机存储与外设》----1.2 Cache存储器的性能的相关文章

《计算机存储与外设》----第1章 Computer Organization and Architecture: Themes and Variations Cache存储器和虚拟存储器 1.1 Cache存储器概述

本节书摘来自华章出版社<计算机存储与外设>一书中的第1章,第1节,作者Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著,沈 立 肖晓强 王苏峰 译,更多章节内容可以访问"华章计算机"公众号查看. 第1章 Computer Organization and Architecture: Themes and Variations Cache存储器和虚拟

《计算机存储与外设》----1.3 Cache的组织

本节书摘来自华章出版社<计算机存储与外设>一书中的第1章,第1.3节,作者Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著,沈 立 肖晓强 王苏峰 译,更多章节内容可以访问"华章计算机"公众号查看. 1.3 Cache的组织 下面介绍Cache的组织和结构.一个Cache只是可用存储空间的一小部分.那么什么样的数据可以进入Cache?数据会放在什么

《计算机存储与外设》----1.4 Cache设计中要考虑的因素

本节书摘来自华章出版社<计算机存储与外设>一书中的第1章,第1.4节,作者Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著,沈 立 肖晓强 王苏峰 译,更多章节内容可以访问"华章计算机"公众号查看. 1.4 Cache设计中要考虑的因素 前面已经说过,由于需要考虑的因素很多,Cache的设计比较复杂,其中一些因素依赖于计算机系统自身的属性.在本节中

《计算机存储与外设》----1.5 虚拟存储器和存储器管理

本节书摘来自华章出版社<计算机存储与外设>一书中的第1章,第1.5节,作者Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著,沈 立 肖晓强 王苏峰 译,更多章节内容可以访问"华章计算机"公众号查看. 1.5 虚拟存储器和存储器管理 存储器管理(Memory Management)是操作系统和硬件的切合点,它关注的是管理主存储器和磁盘.从许多方面看,

《计算机存储与外设》----第2章 Computer Organization and Architecture: Themes and Variations 主 存 储 器 2.1 简介

本 节 书 摘 来 自 华 章 出 版 社 <计算机存储与外设> 一 书 中 的 第2章,第2.1节, 作 者 Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著, 沈 立 肖晓强 王苏峰 译, 更 多 章 节 内 容 可 以 访 问 云 栖 社 区 "华 章 计 算 机" 公 众 号 查 看. 第2章 Computer Organization a

《计算机存储与外设》----2.3 DRAM

本 节 书 摘 来 自 华 章 出 版 社 <计算机存储与外设> 一 书 中 的 第2章,第2.3节, 作 者 Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著, 沈 立 肖晓强 王苏峰 译, 更 多 章 节 内 容 可 以 访 问 云 栖 社 区 "华 章 计 算 机" 公 众 号 查 看. 2.3 DRAM 大多数PC机和工作站使用DRAM实现

《计算机存储与外设》----导读

目 录[第1章 Cache存储器和虚拟存储器 1.1 Cache存储器概述 1.1.1 Cache存储器的结构 ](https://yq.aliyun.com/articles/89723)1.2 Cache存储器的性能[1.3 Cache的组织 1.3.1 全相联映射Cache 1.3.2 直接映射Cache 1.3.3 组相联Cache 1.3.4 伪相联.Victim.Annex和Trace Cache ](https://yq.aliyun.com/articles/89795)[1.4

cpu-关于计算机存储设备地址的问题

问题描述 关于计算机存储设备地址的问题 汇编语言上说,CPU把所有的存储设备都有一个统一的逻辑地址,也就是各个存储器都是统一编址了的,那么我的问题是,假如内存条上4G的地址已经确定了,那么内存上的地址可能是其他存储器的地址,下可能是另一个存储器的地址,那么我在电脑上再加上一条内存条,那么这4G内存条的地址是加在原来已经编号的逻辑地址之后呢?还是加在原来这个内存条地址之后,而后面的所有的地址再往后推移呢? 解决方案 推荐给你一篇博文:http://blog.csdn.net/violetfeeli

下一代计算机存储单位:Brontobyte、Gegobyte

每天互联网上都有1EB的数据被创建,这相当于2.5亿张DVD的容量.同样ZB也不是很遥远 - 计算每年互联网传输的数据总量时就会用到.http://www.aliyun.com/zixun/aggregation/15069.html">Cisco估算在2016年互联网传输总量将达到1.3ZB,所以用不了多久我们就要谈论更高级别的数据了. 大数据科学家用来讨论政府数据(FBI或NSA汇总的公民数据)时,YB代替了ZB.如果用DVD进行储存,1YB数据需要250万亿张DVD.虽然已经够大了,