(b)直接映射的cache检索过程000011011000001(a)组相联映射示意图120页PPT
CACHE深入介绍(刘艳波)

CACHE深入介绍Cache是我们经常关心的话题,K6-Ⅲ的推出引出了一种全新的缓存结构即Tri-level Cache设计思想。
那么对于微机系统而言,Cache到底有什么作用?它的工作原理又是如何的呢?·使用Cache的必要性所谓Cache即高速缓冲存储器,它位于CPU与主存即DRAM(Dynamic RAM动态存储器)之间,是通常由SRAM(Static RAM静态存储器)构成的规模较小但存取速度很快的存储器。
目前计算机主要使用的内存为DRAM,它具有价格低、容量大等特点,但由于使用电容存储信息,存取速度难以提高,而CPU每执行一条指令都要访问一次或多次主存,DRAM的读写速度远低于CPU速度,因此为了实现速度上的匹配,只能在CPU指令周期中插入wait状态,高速CPU处于等待状态将大大降低系统的执行效率。
SRAM由于其采用了与CPU相同的制作工艺,因此与DRAM相比,它的存取速度快,但体积大、功耗大,价格很高,不可能也不必要将所有的内存都采用SRAM。
因此为了解决速度与成本的矛盾就产生了一种分级处理的方法,即在主存和CPU之间加装一个容量相对较小的SRAM作为高速缓冲存储器;当采用Cache 后,在Cache中保存着主存中部分内容的副本(称为存储器映象),CPU在读写数据时,首先访问Cache (由于Cache的速度与CPU相当,所以CPU可以在零等待状态下完成指令的执行),只有当Cache中无CPU所需的数据时(这称之"未命中",否则称为"命中"),CPU才去访问主存。
而目前大容量Cache 能使CPU访问Cache命中率高达90%-98%,从而大大提高了CPU访问数据的速度,提高了系统的性能。
·使用Cache的可行性对大量的典型程序的运行情况分析结果表明,在一个较短的时间内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。
地址映像

区号根据 Cache 容量划分 区号长度=主存地址位数-Cache 地址位数 主存的块号和 Cache 块号的长度相同,位数 K 取决于 Cache 中能容纳的个数 J K=LOG2J 主存的块内地址和 Cache 的块内地址长度相同,位数 M 取决于块的容量 Q M=LOG2Q
例题: 容量为 64 块的 Cache 采用组相联方式映像,字块大小为 128 字节,每 4 块为一组,若主容 量为 4096 块,且以字编址,那么主存地址为(19)位,主存区号为(6)位。
方法一: 分区数=主存容量/Cache 容量=4096/64=64; 区内分组数=64/4=16; 组内分块数=4 块/组; 块内地址=128 字节; 所以根据公式: 主存地址位数=6+4+2+7=19; 主存区号=6 位。
方法二: 主存地址的位数 A 由主存容量 N 决定 A=log2N=区号位数+块号位数+块内地址位数 所以: A=LOG2N=LOG2(4096*128)=LOG2(2^12*2^7)=LOG2(2^19)=19; Cache 地址的位数 B 由 Cache 容量 H 决定 B128)=13. 区号的计算方法同上!
Cache 与主存地址映像知识点及例题分析
知识点:Cache 与主存地址映 Cache 和主存都被分成若干个大小相等的块,每块由若干个字节组成,主存和 Cache 的数据 交换是以块为单位,需要考虑二者地址的逻辑关系。 地址映像:把主存地址空间映像到 Cache 地址空间,即按某种规则把主存的块复制到 Cache 中。 一、全相连映像 主存中任何一个块均可以映像装入到 Cache 中的任何一个块的位置上。主存地址分为块号和 块内地址两部分,Cache 地址也分为块号和块内地址。Cache 的块内地址部分直接取自主存 地址的块内地址段。主存块号和 Cache 块号不相同,Cache 块号根据主存块号从块表中查找。 Cache 保存的各数据块互不相关,Cache 必须对每个块和块自身的地址加以存储。当请求数 据时,Cache 控制器要把请求地址同所有的地址加以比较,进行确认。 特点:灵活,块冲突率低,只有在 Cache 中的块全部装满后才会出现冲突,Cache 利用率高。 但地址变换机构复杂,地址变换速度慢,成本高。 公式: 主存地址位数=块号+块内地址; Cache 地址位数=块号+块内地址。 二、直接映像 把主存分成若干区,每区与 Cache 大小相同。区内分块,主存每个区中块的大小和 Cache 中块的大小相等,主存中每个区包含的块的个数与 Cache 中块的个数相等。任意一个主存块 只能映像到 Cache 中唯一指定的块中,即相同块号的位置。主存地址分为三部分:区号、块 号和块内地址,Cache 地址分为:块号和块内地址。直接映像方式下,数据块只能映像到 Cache 中唯一指定的位置,故不存在替换算法的问题。它不同于全相连 Cache,地址仅需比 较一次。 特点:地址变换简单、速度快,可直接由主存地址提取出 Cache 地址。但不灵活,块冲突率 较高,Cache 空间得不到充分利用。 公式: 主存地址位数=区号+区内分块号+块内地址; Cache 地址位数=块号+块内地址。 三、组相连映像 组相连映像是前两种方式的折衷。主存按 Cache 容量分区,每个区分为若干组,每组包含若 干块。Cache 也进行同样的分组和分块。主存中一个组内的块数与 Cache 中一个组内的块数 相等。组间采用直接方式,组内采用全相连方式。组的容量=1 时,即直接映像,组的容量 =整个 Cache 的容量时,即全相连映像。Cache 的存在对于程序员透明,Cache 的地址变换 和数据块的替换算法都采用硬件实现。 公式: 主存地址位数=区号+组号+主存块号+块内地址; Cache 地址位数=组号+组内块号+块内地址。 四、主存地址和 Cache 地址的相关计算 主存地址的位数 A 由主存容量 N 决定(N 位容量) A=log2N=区号位数+块号位数+块内地址位数 Cache 地址的位数 B 由 Cache 容量 H 决定 B=LOG2H=块号位数+块内地址位数
体系结构试题及答案

一.名词解释2:1Cache经验规则:大小为N得直接印象Cache得失效率约等于大小为N/2得两路组相联Cache得失效率。
通道处理机:通道得专用处理机,来专门负责整个计算机体系得输入/输出工作。
通道处理机只能执行有限得一组输入/输出指令。
透明性:在计算机技术中,把这种本来存在得事物或属性,但从某种角度瞧又好像不存在得概念称为透明性。
向量处理机:设置了向量数据表示与相应得向量指令得流水线处理机称为向量处理机。
虚拟Cache:直接用虚拟地址进行访问得Cache计算机系统结构:传统机器程序员所瞧到得计算机属性,即概念性结构与功能特性。
系列机:由同一厂家生产得具有相同系统结构、但具有不同组成与实现得一系列不同型号得计算机。
同构型多处理机系统:由多个同类型或至少担负同等功能得处理机组成,它们同时处理同一作业中能并行执行得多个任务。
堆栈型机器:CPU 中存储操作数得单元就是堆栈得机器。
累加器型机器:CPU 中存储操作数得单元就是累加器得机器。
通用寄存器型机器:CPU 中存储操作数得单元就是通用寄存器得机器。
数据相关:考虑两条指令i与j,i在j得前面,如果下述条件之一成立,则称指令j与指令i数据相关:(1)指令j使用指令i产生得结果;(2)指令j与指令k数据相关,而指令k又与指令i数据相关。
定向:用来解决写后读冲突得。
在发生写后读相关得情况下,在计算结果尚未出来之前,后面等待使用该结果得指令并不见得就是马上就要用该结果。
如果能够将该计算结果从其产生得地方直接送到其它指令需要它得地方,那么就可以避免停顿。
指令级并行:简称ILP。
就是指指令之间存在得一种并行性,利用它,计算机可以并行执行两条或两条以上得指令。
指令得动态调度:就是指在保持数据流与异常行为得情况下,通过硬件对指令执行顺序进行重新安排,以提高流水线得利用率且减少停顿现象。
就是由硬件在程序实际运行时实施得。
指令得静态调度:就是指依靠编译器对代码进行静态调度,以减少相关与冲突。
计组answer02

“计算机组织结构”作业02参考答案任桐炜rentw@1.一个组关联Cache由64个行组成,每组4行。
主存储器包含4K个块,每块128字,请表示主存地址的格式。
由每块128字得到块内地址长7位,64行每组4行得一共16组,需要4位表示,标记需要12(4K)-4(组号)=8位2.一个两路组关联的Cache具有8K字节的容量,每行16字节。
64M字节的主存时字节可寻址的(即以字节为单位进行访问)。
请给出主存地址格式。
根据每行16个字节,算出块内地址为4;根据2^9行和2路组,算出组号为8位;根据主存为64M。
即:[花霞,121250049]3.假设Cache有4K字,每行32字。
对十六进制主存地址:111111、666666、BBBBBB,请用十六进制格式表示如下信息:(1)直接映射Cache的地址格式,(2)全关联映射Cache 的地址格式,(3)两路组关联Cache的地址格式。
(提示:每个映射方式下,需要将标记、块内地址等分开表示。
)[刘璟121250083]1)共6位说明地址长24,cache一共有4K/32=2^7行,即标记12行号7块内地址52)块号194.计算机系统包含容量为32K×16位的主存,按字编址,每字16位。
Cache采用4路组关联的映射方式,数据区大小为4K字,主存块大小为64字。
假设Cache初始时是空的,处理器顺序地从存储单元(每个存储单元中包含1个字)0,1,…,4351中取数,然后再重复这一顺序9次,并且Cache的速度是主存的10倍,同时假设块替换用LRU算法。
请说明使用Cache后的改进。
主存地址为:标记5,组号4,块内地址64352/64=68,即在前68块中操作10次,第一个轮回68次全部未命中,第二个轮回0,1,2,3四个组分别有编号未命中,未命中号为:0,1,2,3,16,17,18,19,32,33,34, 35,48,49,50,51,64,65,66,67共20次(因为只有四路,所以读取64~67的时候替换0,1,2,3那一路,下一次读取0,1,2,3的时候因为是LRU就去替换16~19那一路,,以下类推,轮番替换,所以上面这20个数是永远未命中的)得命中率为P=(4352*10-68-20*9)/43520=99.43%设cache的读取时间为T,则主存的读取时间为10T,则使用缓存后,系统效率提高到原来的N倍,N为:N= 10T/(T+10*0.0057T)=9.55.考虑一个每行16个字节的4行Cache,主存按每块16个字节划分,即块0有地址0到15的16个字节,等等。
(b)直接映射的cache检索过程000011011000001(a)组相联映射示意图

存取时间、存储周期、存储器带宽怎样反映主存的 速度指标?
SRAM中,用一个锁存器作为存储元。 只要直流供电电源一直加在这个记忆电路上,
它就无限期地保持记忆的1状态或0状态。如果 电源断电,那么存储的数据(1或0)就会丢失 。
基本静态存储元结构图
正逻辑体制:高电平VH用逻辑“1”表示,低电平VL用逻 辑“0”来表示,这种逻辑体制称为正逻辑体制。 负逻辑体制:高电平VH用逻辑“0”表示,低电平VL用逻 辑“1”来表示,这种逻辑体制称为负逻辑体制。 每种逻辑门用不同的逻辑体制来描述其逻辑功能是不同 的,即每种逻辑门都有两种等效逻辑符号,两种逻辑符 号可以进行等效。 两种逻辑符号等效变换规则:1)只要在一种逻辑符号 的所有输入、输出端同时加上或者去掉小圈(当一根线 上有两个小圈,相当于两次取反,则无需画圈)2)将 原来的符号互换(与←→或、同或←→异或)即可。 由此可得到:正与 = 负或 正与非 = 负或非 正或 = 负与 正或非 = 负与非
几个概念: 1、存储位元:存储一位(bit)二进制代码的存 储元件称为基本存储单元(或存储位元) 2、存储单元:主存中最小可编址的单位,是C PU对主存可访问操作的最小单位;每个由若干 个存储位元组成。 3、存储器:多个存储单元按一定规则组成一个 整体。
按存储介质分类:磁表面/半导体存储器 按存取方式分类:随机/顺序存取 按读写功能分类:ROM,RAM
正逻辑的或非门
负逻辑的或非门 (相当于与非门)
正逻辑的与门
负逻辑的与门 (相当于或非门)
0 0 0 0 0 0
1 1
0 0
0 0
11
读命令
1
0
0
1
0
Cache的原理与地址映像机制

二、பைடு நூலகம்址映像机制
4. 查找方法
基于目录表的查找
只需查找候选位置 所对应的目录表项
二、地址映像机制
4. 查找方法
并行查找 顺序查找
二、地址映像机制
4. 查找方法
顺序查找
主候选位置 (MRU块)
二、地址映像机制
4. 查找方法
并行查找
硬件: 相联存储器 单体多字存储器
二、地址映像机制
4. 查找方法
常用的地址映像方式 直接映像方式
全相联映像方式
组相联映像方式
二、地址映像机制
1. 直接相联
t位 Cache存储体 0 标记 * 1 标记
比较器(t位) 主存储体 字块0 字块1
字块 0 字块 1
…
…
字块2c-1
2c-1
标记 字块
2c-1
字块2c
字块2c +1 字块2c+1-1
=
有效位=1? 是 命中 否
命中率 与 Cache 的 容量 与 块长 有关 H
C
命中率
CPU 欲访问的信息在 Cache 中的 比率
命中率 与 Cache 的 容量 与 块长 有关
H 1 容量大
容量小 BC
Cache –主存系统的效率
效率 e 与 命中率 有关
访问 Cache 的时间 e= × 100% 平均访问时间
设 Cache 命中率 为 h,访问 Cache 的时间为 tc , 访问 主存 的时间为 tm
标记 标记 字块0 字块1 …
主存储器
字块0
字块1
标记
字块2c-1 字块2c-1 …
…
主存地址
主存字块标记 字块内地址
《计算机系统结构》张晨曦 问答题 第5章
第5章存储层次1. 单级存储器的主要矛盾是什么?通常采取什么方法来解决?主要矛盾:(1) 速度越快,每位价格就越高。
(2) 容量越大,每位价格就越低。
(3) 容量越大,速度越慢。
采取多级存储层次方法来解决。
2. 评价存储层次的主要参数有哪些?存储层次的平均每位价格、命中率或失效率、平均访问时间。
3. “Cache-主存”和“主存-辅存”层次的主要区别是什么?4. 在存储层次中应解决哪四个问题?(1)映像规则:当把一个块调入高一层存储器时,可以放到哪些位置上。
(2)查找算法:当所要访问的块在高一层存储器中时,如何找到该块。
(3)替换算法:当发生失效时,应替换哪一块。
(4)写策略:当进行写访问时,应进行哪些操作。
5. 地址映像方法有哪几种?它们各有什么优缺点?(1)全相联映像。
实现查找的机制复杂,代价高,速度慢。
Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。
(2)直接映像。
实现查找的机制简单,速度快。
Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。
(3)组相联映像。
组相联是直接映像和全相联的一种折中。
6. 组相联Cache比相同容量的直接映像Cache的失效率低。
由此是否可以得出结论:采用组相联Cache一定能带来性能上的提高?为什么?不一定。
因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关。
7. Cache中,有哪两种实现并行查找的方法?(1)用相联存储器实现。
(2)用单体多字存储器和比较器来实现。
8. 替换算法有哪几种?它们各有什么优缺点?(1)随机法:简单、易于用硬件实现,但这种方法没有考虑Cache块过去被使用的情况,反映不了程序的局部性,所以其失效率比LRU的高。
(2)先进先出法:容易实现。
它虽然利用了同一组中各块进入Cache的顺序这一“历史”信息,但还是不能正确地反映程序的局部性。
(3)最近最少使用法LRU:失效率最低。
(b)直接映射的cache检索过程000011011000001(a)组相联映射示意图
(1)如上图所示,这是EPROM的写入过程,在漏极加高 压,电子从源极流向漏极沟道充分开启。在高压的作 用下,电子的拉力加强,能量使电子的温度极度上升, 变为热电子。此时,若在G2栅上加正电压,形成方 向与沟道垂直的电场,使热电子能跃过SiO2的势垒, 注入到浮栅中。在没有别的外力的情况下,电子会很 好的保持着。(即:写入“0”的过程。) (2)在需要消去电子时,利用紫外线进行照射,给电 子足够的电量能逃逸出浮栅。(即可以抹成“1”)。
2、刷新周期 刷新周期:DRAM存储位元是基于电容器上的 电荷量存储,这个电荷量随着时间和温度而减 少,因此必须定期地刷新,以保持它们原来记
◦ 刷新操作有两种刷新方式:
集中式刷新:DRAM的所有行在每一个刷新周期中都被刷 新。 分散式刷新:每一行的刷新插入到正常的读/写周期之中。
集中式刷新: 例如刷新周期为8ms的内存来说,所有行的集 中式刷新必须每隔8ms进行一次。为此将8ms 时间分为两部分:前一段时间进行正常的读/ 写操作,后一段时间(8ms至正常读/写周期 时间)做为集中刷新操作时间。 分散式刷新: 例如p70图3.7所示的DRAM有1024行,如果 刷新周期为8ms,则每一行必须每隔 8ms÷1024=7.8us进行一次。
由于CPU和主存储器之间在速度上是不匹配的, 这种情况便成为限制高速计算机设计的主要问 题。为了提高CPU和主存之间的数据传输率, 除了主存采用更高速的技术来缩短读出时间外, 还可以采用并行技术的存储器。
1、双端口存储器的逻辑结构 双端口存储器由于同一个存储器具有两组 相互独立的读写控制电路而得名。由于进行 并行的独立操作,因而是一种高速工作的存 储器,在科研和工程中非常有用。 举例说明, 双端口存储器IDT7133的逻辑框图 。如下 页图。
CACHE与主存之间的全相联映射,直接映射和组相联映射的区别
目录表存放在相关(联)存储器中,其中包括三部分:数据块在主存的块地址、存入缓存后的块地址、及有效位(也称装入位)。由于是全相联方式,因此,目录表的容量应当与缓存的块数相同。
举例:某机主存容量为1M,Cache的容量为32KB, 每块的大小为16个字(或字节)。 划出主、缓存的地址格式、
相关存储器中每个单元包含有:
主存地址中的区号E与组内块号B,两者结合在一起,其对应的字段是缓存块地址b。相关存储器的容量,应与缓存的块数相同。当进行数据访问时,先根据组号,在目录表中找到该组所包含的各块的目录,然后将被访数据的主存区号与组内块号,与本组内各块的目录同时进行比较。如果比较相等,而且有效位为“1”则命中。
举例:上例中,主存容量为1M,
Cache的容量为32KB,每块的大小为16个字(或字节)。划出主、缓存的地址格式、目录表格式及其容量。
容量:与缓冲块数量相同即211=2048(或32K/16=2048)。
3.组相联映象方式
组相联的映象规则:
(1) 主存和Cache按同样大小划分成块。
(2) 主存和Cache按同样大小划分成组。
(1) CPU写Cache,没有立即写主存;
(2) I/O处理机或I/O设备写主存。
从而造成Cache与主存内容的不一致,如图2.3.8所示。
对Cache进行写操作时引起的不一致的解决方法:
1.全写法亦称写直达法(WT法-Write through)
方法:在对Cache进行写操作的同时,也对主存该内容进行写入。
当容量达到一定程度后,容量的增加命中率的改善并不大;Cache块容量加大,
命中率也明显增加,但增加到一定值之后反而出现命中率下降的现象;直接映象法命中率比较低,全相联方式命中率比较高,在组相联方式中,组数分得越多,则命中率下降。
Cache映像、查找和替换
3. 组相联映象及其变换
映象规则: 主存和Cache按同样大小划分成块和组。 主存和Cache的组之间采用直接映象方式。 在两个对应的组内部采用全相联映象方式。 组相联映象方式的优点: 块的冲突概率比较低, 块的利用率大幅度提高, 块失效率明显降低。 组相联映象方式的缺点: 实现难度和造价要比直接映象方式高。
区内块号 B
块内地址 W
组内块号 b
块内 w
≠
E
b
块表(按地址访问,读出的多个区号进行相联比较,e 是有效位)
3.3.3 Cache替换算法及其实现
使用的场合: 直接映象方式实际上不需要替换算法 全相联映象方式的替换算法最复杂 主要用于组相联、段相联等映象方式中 要解决的问题: 记录每次访问Cache的块号 在访问过程中,对记录的块号进行管理 根据记录和管理结果,找出替换的块号 主要特点:全部用硬件实现
LRU算法的优缺点 主要优点: (1)命中率比较高, (2)能够比较正确地利用程序的局部性特点, (3)充分地利用历史上块地址流的分布情况, (4)是一种堆栈型算法,随着组内块数增加, 命中率单调上升。 主要缺点: 控制逻辑复杂,因为增加了判断和处理是否 命中的情况。
例3.13:IBM 370/165机的Cache采用组相联 映象方式。每组有4块,为了实现LRU替换 算法,在块表中为每一块设置一个 2 位的计 数器。在访问Cache的过程中,块的装入、 替换及命中时,计数器的工作情况如表:
机器型号 DEC VAX-11/780 Amdahl 470/V6 Intel i860 D-Cache Honeywell 66/60 Amdahl 470/V7 IBM 370/168 IBM3033 Motolola 88110 Cache 块数 Cb 每组的块数 Gb Cache 组数 Cg 1024 512 256 512 2048 1024 1024 256 2 2 2 4 4 8 16 2 512 256 128 128 512 128 64 128