计算机组成原理 复习第7章教材

上传人:我** 文档编号:116974475 上传时间:2019-11-18 格式:PPT 页数:36 大小:337KB
返回 下载 相关 举报
计算机组成原理 复习第7章教材_第1页
第1页 / 共36页
计算机组成原理 复习第7章教材_第2页
第2页 / 共36页
计算机组成原理 复习第7章教材_第3页
第3页 / 共36页
计算机组成原理 复习第7章教材_第4页
第4页 / 共36页
计算机组成原理 复习第7章教材_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《计算机组成原理 复习第7章教材》由会员分享,可在线阅读,更多相关《计算机组成原理 复习第7章教材(36页珍藏版)》请在金锄头文库上搜索。

1、计算机组成原理 Principles of Computer Organization 广义双语教学课程 青岛理工大学 校级精品课程 1 第七章 存储系统 存储系统的层次结构 高速缓冲存储器 Cache Memory System 复习 2 评价存储器性能的主要依据是容量,速度,价格。 主存储器容量 SM = W l m =存储器字长每个存储器的字数并行工作的存储器个数 设计存储系统的主要目标是:在尽可能低的价格下提供尽可 能高的速度及尽可能大的存储容量。 存储层次 Memory Hierarchy 存储体系(存储层次)是从系统结构上,通过软硬结合, 把不同速度的存储器统一成一个整体。 使得从

2、整体来看,其速度接近于最快最贵的存储器,容量却 是慢速的存储器的,每位价格也接近于廉价慢速的存储器。 3 解决主存容量不足的方法是: 用存储层次的方法把高速度小容量的主存和低速度大容量的 辅存统一成一个整体,形成的存储层次(主存-辅存层次)能够具 有辅存的容量,接近于主存的等效速度和辅存的每位成本,使用 户可以按比主存大得多的虚拟存储空间编制程序。 解决主存与CPU速度差距的方法: 在CPU中设置通用寄存器 多模块交叉存储器 存储层次的方法 存储层次的方法是在CPU和主存之间设置高速缓冲存储器, 构成Cache-主存层次。 Cache-主存层次的效果,从CPU看,有了一个接近于CPU速 度的高

3、速的主存储器,但每位价格却是接近于慢速的主存的。 4 存储体系的评价 CPUM1M2 c1,SM1,TA1c2,SM2,TA2 设二级存储层次由高速度小容量的M1和低速度大容量的M2组成。 1. 存储层次的每位平均价格 Two-Level Memories 5 2命中率 Hit Ratio 存储层次的命中率H 定义为由CPU产生的逻辑地址能在M1访 问到(命中Hit)的概率。 H = 命中次数 / 访存总次数。 若逻辑地址流中能在M1访问到的次数为R1,不能在M1访问 到(在M2中还未调到M1)的次数为R2,则命中率 3. 访问存储层次的平均访问时间 TA= HTA1 +(1H)TA2 TA2

4、是在M1未 命中的代价。 6 主存储器 存储器的访问方式 随机存取 Random Access 磁盘存储器直接存取 Direct Access 磁带存储器顺序存取 Sequential Access 相联存储器相联存取 Associative Access 7 Cache-主存层次 Cache 是位于CPU与主存之间的一个高速小容量的存储器。 Cache一般采用和CPU相同的半导体工艺制成,在物理位置 上尽量靠近CPU,而不在主存模块中,最好在处理器芯片内。其 速度与CPU的速度相匹配。 Cache的管理全部用硬件实现。 TA=HTA1 +(1H)TA2 = Cache-主存层次的平均访问时间

5、为 HTC +(1H)(TM+ TC) 主存-Cache地址映射变换( Mapping Function ): 直接映射,相联映射(全相联),组相联映射。 常用的Cache替换算法有:LRU,FIFO,LFU,Random。 TA=HTA1 +(1H)TA2 =HTC +(1H)TM 8 原理上,Cache-主存层次有两种工作方式: 方式1. CPU对Cache和主存都有直接访问路径。 方式2. CPU只直接访问Cache,不直接访问主存。 Cache既是Cache-主存层次中的 一层,也是一个旁路存储器。 CPUCache主存 CPU Cache 主存 CPU发出的地址同时访问Cache和主

6、存。如果Cache命中,则 放弃对主存的访问。如果Cache不命中,则从主存读出。 当CPU需要访问存储器时,先检查Cache,此时,地址不出 现在地址总线上。如果Cache不命中,才通过总线访问主存。 标准的二级存储层次。 TA= HTC +(1H)(TM) TA= HTC +(1H)(TM+ TC) 9 (1)直接映射 Direct Mapping 主存的每一块只能映射到Cache的一个特定的行。 若Cache有m行,每行n字,主存有2S块, 则直接映射可表示为 Cache的行号i = 主存的块号j(Modulo m) 0 1 2 m-1 Cache0 主存 1 2 m-1 m m+1 m

7、+2 2m-1 km-1 km nm-1 2m 2m+1 10 设 m=2r ,n=2W若Cache有m行,每行n字,主存有2S块, 主存地址(S+w位) Cache地址(r+w位) Tag 字 0 字 1 字 n-1 Cache的 内容 选中1行选中行内1个字 标志Tag行地址Line字地址Word S r位r位w位 行地址Line字地址Word 11 S- r = 8位r = 14位w = 2位 主存容量16MB,按字节编址,Cache容量64KB,每行4个字节。 主存地址(S+w位) 选中1行选中行内1个字 Cache地址(r+w位) CPU访存时,用主存地址中间的r=14位作为Cach

8、e行地址,选 中1行Cache。把该行的Tag与主存地址中的高8位Tag比较。 若相同,则命中,用主存地址最低2位作为字地址取出1个字 节数据。 若不命中,则22位地址S用于从主存中取出1个块(4字节)数 据至Cache。 例如: 标志Tag行地址Line字地址Word 行地址Line字地址Word 12 (2)相联映射 Associative Mapping (全相联映射Fully Associative Mapping) 主存的任何块都能映象到Cache的任何行。 把主存行地址作为标志项和数据一道存入Cache。该标志项 唯一地识别主存的一块。为了确定1个块是否在Cache中,Cache

9、的控制逻辑必须同时检查每一行的标志项是否相符。 例:主存容量16MB,Cache容量64KB,16K行,每行4个字节。 主存地址TagWord 22位2位 13 主存的任一块j只能映象到 Cache的组i。块j可映射到 组i中任一行。 (3)组相联映射 Set- associative Mapping 组相联映射是对直接 映射和全相联映射技术的折 中,避免了二者的缺点。组 间是直接映象,组内各行间 是全相联映象。 设Cache有m行,主存分成 与Cache行同样大小的 2S块 ,每块n字。 0 主存 1 2 6 7 8 4 5 3 Cache 0Tag 1 Set 0 0 1 Set 1 0

10、1 Set 2 0 1 Set 3 Cache分成v组,每组k行。m=vkv=2d Cache的组号i = 主存块号j(Modulo v) 14 主存容量16MB,Cache容量64KB,每行4个字节,2路组相联。 Cache 行数= 16K行, K = 2,v = 8K=2d 主存地址(S+w位) 选中1组选中行内1个字 标志Tag组地址Set字地址Word 9位13位2位 组地址Set字地址WordCache地址(d+w位) CPU访存时,用主存地址中间的d=13位作为Cache组地址, 选中1组Cache。把该组的2行的Tag同时与主存地址中的高9位Tag 比较。 若某行的Tag与主存地

11、址中的Tag相符合,则命中,用主存地 址最低2位作为字地址从该行中取出1个字节数据。 若不命中,则用22位地址S从主存中取出1个块(4字节)数据 至Cache。 15 73 设某流水线计算机有一个指令和数据合一的Cache,已知 Cache的读/写时间为10 nS,主存的读/写时间为100 nS,取指的命 中率为98%,数据的命中率为95%,在执行程序时,约有1/5指令 需要存/取一个操作数。为简化起见,假设指令流水线在任何时候 都不阻塞。问设置Cache后与无Cache比较,计算机的运算速度可 提高多少倍? 解一: 无Cache,执行5条指令的时间 T1=(5+1)100 = 600 nS

12、有Cache,执行5条指令的时间 T2 =(100.98+(100+10)0.02)5 + 100.95+(100+10)0.05 = 60+15 = 75 nS 速度提高倍数= T1 / T2 = 600 / 75 = 8 倍 执行5条指令,共有6次访存。 16 73 设某流水线计算机有一个指令和数据合一的Cache,已知 Cache的读/写时间为10 nS,主存的读/写时间为100 nS,取指的命 中率为98%,数据的命中率为95%,在执行程序时,约有1/5指令 需要存/取一个操作数。为简化起见,假设指令流水线在任何时候 都不阻塞。问设置Cache后与无Cache比较,计算机的运算速度可

13、提高多少倍? 解二: 平均每5次取指令有1次存取操作数,所以 平均命中率HA=(0.985+0.95)/ 6 = 0.975 TA= 0.97510+0.025(100+10) = 9.75+2.75 = 12.5 nS 速度提高倍数= T1 / T2 = 100 / 12.5 = 8 倍 17 Cache的读/写时间为10 nS,主存的读/写时间为100 nS,取指的 命中率为98%,数据的命中率为95%,在执行程序时,约有1/5指 令需要存/取一个操作数。假设指令流水线在任何时候都不阻塞。 74 接上题,如果采用哈佛结构(分开的指令Cache和数据 Cache),运算速度可提高多少倍? 解

14、: 采用哈佛结构可以并行访问指令Cache和数据Cache。如果指 令Cache和数据Cache的命中率仍然和上题一样。在5次取指令中 ,有4次的命中率为0.98,有1次取指令的同时有存取操作数,命 中率应该按0.95。 平均命中率HA=(0.984+0.95)/ 5 = 0.974 TA= 0.97410+0.026(100+10) = 9.74+2.86 = 12.6 nS 速度提高倍数= TM / TA = 120 / 12.6 = 9.524 倍 18 75 设某计算机的Cache采用四路组相联映象,已知Cache容量为 16KB,主存容量为2MB,每个字块有8个字,每个字有32位。请

15、 回答: (1)主存地址多少位(按字节编址),各字段如何划分(各需 多少位)? 解: (1) 主存按字节编址,容量2MB,每个可寻址单元的容量为1个字节。 2M=221, 主存地址为21位。 Cache容量16KB,每个字是32bit = 4B 每行8个字,字地址3位 字节地址2位 Cache的总字数=16KB/4B = 4K字 Cache的行数= 41024 / 8 = 512行 (四路组相联) Cache的组数= 512 / 4 = 128 组 组地址7位 地址结构: Tag组号字地址字节地址 7位9位3位2位 19 (2)设Cache起始为空,CPU从主存单元0,1,100,依 次读出1

16、01个字(主存一次读出1个字),并重复按此次序读11次 ,问命中率为多少?若Cache速度是主存的5倍,问采用Cache与 无Cache比较速度提高多少倍? 75 解: (2) 分析Cache-主存映象关系: 主存的第i块映象到Cache的第i组(每组4行)。 主存的0100单元在012块中。 程序运行时,读0单元不命中,将第0块(8个字)装入Cache的0 组。接下去读17单元都命中。读8单元不命中,将第1块(8个字 )装入Cache的1组。这样,一直到读100单元,总共有13次不命 中。 由于Cache有128组,所以Cache不满,在这个过程中不发生替换。 装入Cache的101个字在以后的重复访问中全部命中。 20 命中率 H = 命中次数 / 访存的总次数 75 H =(1110113) /(11101)= 1098 / 1111 = 0.9883 TA=HTC

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号