计算机体系结构-第五章 存储层次
- 格式:ppt
- 大小:1.30 MB
- 文档页数:89
第五章存储器层次结构存储器是计算机系统的核心组成部分。
本章介绍存储器层次结构(memory hierarchy)的基本概念和原理,讨论和分析如何利用局部性原理提高Cache/主存存储器层次结构、虚拟存储器(主存/辅存存储层次)的性能。
最后以Alpha机的存储系统为实例综合介绍存储体系的工作过程。
5.1存储器层次结构的基本概念5.1.1存储器的基本性能参数评价存储器性能的参数主要有三个方面:容量、速度与价格。
存储器容量用S=W×l×m表示,W为存储器字长,l为存储器字数,m则为存储器体数。
评价存储器的速度一般有以下几个参数:访问时间(access time)Ta:从存储器接到读请求到所读的字传送到数据总线上的时间间隔。
存储周期Tm:连续两次访问存储器之间所必需的最小时间间隔。
一般Tm > Ta。
存储带宽Bm:存储器被连续访问时所提供的数据传输速流,单位是位(或字节)/秒。
存储器的价格通常用单位字节价格来表示。
若总容量为S的存储器的总价格为C,则单位字节价格c=C/S。
5.1.2存储器层次结构的基本原理程序设计人员总是希望存储器的速度尽可能的高,以与处理器的速度相匹配;存储器的容量尽可能的大,以装下可能极大的程序;因此,高速度、大容量、低价格始终是存储体系的设计目标。
一方面,经过几十年的发展,存储器的工艺实现技术有了突飞猛进的发展,高速、大容量、低价的存储器件以惊人的速度生产出来。
尽管如此,存储技术的发展证明单一工艺的单一存储器很难同时满足容量、价格、速度三方面的性能要求(见图5.1存储器的速度与价格的关系曲线)。
事实上,对容量与速度、速度与价格、容量与价格的性能要求是相互有矛盾的。
而且,存储器速度的改进始终跟不上CPU速度的提高。
图5.1 存储器的速度与价格的关系曲线另一方面,第一章中我们已介绍了局部性原理,即所有程序都具有这样的行为特性:程序倾向于再次使用最近刚用过的数据和指令。
第五章存储层次知识点汇总存储器层次结构、存储层次性能参数(平均每位价格、命中率、平均访存时间)、存储层次4个问题、CPU 访存地址分割、全相联映像、直接映像、组相联映像、查找方法、替换算法(随机、先进先出、最近最少使用法)、写直达法、写回法、按写分配、不按写分配、Cache性能分析、3C失效(强制失效、容量失效、冲突失效)、Victim Cache、伪相联映像Cache、硬件预取、编译器优化(数组合并、内外循环交换、循环融合、分块)、写缓冲合并、单字宽存储器、多字宽存储器、多体交叉存储器、存储体、虚拟存储器(页式、段式)、快表(TLB)简答题1.单级存储器的主要矛盾是什么?通常采取什么方法来解决?(知识点:多级存储器)答:主要矛盾:(1) 速度越快,每位价格就越高。
(2) 容量越大,每位价格就越低。
(3) 容量越大,速度越慢。
采取多级存储层次方法来解决。
2.“Cache-主存”和“主存-辅存”层次的主要区别是什么?(知识点:存储层次)3.在存储层次中应解决哪四个问题?(知识点:存储层次的四个问题)答:(1)映像规则:当把一个块调入高一层存储器时,可以放到哪些位置上。
(2)查找算法:当所要访问的块在高一层存储器中时,如何找到该块。
(3)替换算法:当发生失效时,应替换哪一块。
(4)写策略:当进行写访问时,应进行哪些操作。
4.地址映像方法有哪几种?它们各有什么优缺点?(知识点:地址映像)(1)全相联映像。
实现查找的机制复杂,代价高,速度慢。
Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。
(2)直接映像。
实现查找的机制简单,速度快。
Cache空间的利用率较低,块冲突概率较高,因而Cache 的失效率也高。
(3)组相联映像。
组相联是直接映像和全相联的一种折中。
5.Cache的3C失效是哪三种失效?针对每种失效给出一种降低失效率的方法。
(知识点:3C失效)答:强制性失效、容量失效、冲突失效。
名词解释:(1)静态流水线——同一时间内,流水线的各段只能按同一种功能的连接方式工作。
(2)分段开采——当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。
(3)计算机体系结构——程序员所看到的计算机的属性,即概念性结构与功能特性(4)时间重叠——在并行性中引入时间因素,即多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
(5)TLB——个专用高速存储器,用于存放近期经常使用的页表项,其内容是页表部分内容的一个副本(6)结构冲突——指某种指令组合因为资源冲突而不能正常执行(7)程序的局部性原理——程序在执行时所访问的地址不是随机的,而是相对簇聚;这种簇聚包括指令和数据两部分。
(8)2:1Cache经验规则——大小为N的直接映象Cache的失效率约等于大小为N /2的两路组相联Cache的实效率。
(9)组相联映象——主存中的每一块可以放置到Cache中唯一的一组中任何一个地方(10)数据相关——当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作的顺序,使得读/写操作顺序不同于它们非流水实现时的顺序,将导致数据相关。
(1)动态流水线——同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算。
(2)透明性——指在计算机技术中,把本来存在的事物或属性,但从某种角度看又好像不存在的特性。
(3)层次结构——计算机系统可以按语言的功能划分为多级层次结构,每一层以不同的语言为特征。
(4)资源共享——是一种软件方法,它使多个任务按一定的时间顺序轮流使用同一套硬件设备。
(5)快表——个专用高速存储器,用于存放近期经常使用的页表项,其内容是页表部分内容的一个副本。
(6)控制相关——指由分支指令引起的相关,它需要根据分支指令的执行结果来确定后续指令是否执行。
(7)存储层次——采用不同的技术实现的存储器,处在离CPU 不同距离的层次上,目标是达到离CPU最近的存储器的速度,最远的存储器的容量。
计算机存储器的层次结构计算机存储器的层次结构是一种按照速度、容量和成本等因素进行优化的层次化设计,用于满足计算机对数据存储和读写的要求。
一般情况下,计算机存储器系统包括几个主要层次:寄存器、缓存、主存和辅助存储器。
下文将详细介绍每个层次的特点和作用。
1. 寄存器(Register):寄存器是计算机中速度最快的存储器,位于CPU内部,通常由硬件实现。
寄存器既可以存储指令,也可以存储数据。
它的特点是容量小且成本高,但读写速度非常快。
寄存器的主要作用是存储CPU当前的工作数据,如指令地址、运算结果等。
2. 缓存(Cache):缓存是位于CPU和主存之间的高速存储器,用于解决CPU和主存之间的速度不匹配问题。
由于主存的读写速度无法满足CPU的高速计算需求,缓存可以暂时存储主存中的部分数据,以提高CPU的访问速度。
缓存分为一级缓存(L1 Cache)和二级缓存(L2 Cache),一级缓存一般嵌入在CPU内部,容量较小但速度很快,而二级缓存位于CPU和主存之间,容量较大但速度稍慢。
3. 主存(Main Memory):主存也称为内存,是计算机中用于存储数据和指令的主要存储器。
主存分为随机存储器(RAM)和只读存储器(ROM)两种类型。
随机存储器是一种易失性存储器,具有读写功能,其内容在断电后会丢失。
而只读存储器是一种不可擦写、只读的存储器,用于存储固定不变的数据和程序。
主存的特点是容量大但速度较慢,价格适中。
4. 辅助存储器(Auxiliary Storage):辅助存储器通常是指硬盘、光盘等外部的大容量存储介质。
与主存相比,辅助存储器的容量更大,价格更便宜,但读写速度更慢。
辅助存储器一般被用于长期存储大量的数据和程序,以及作为主存的扩展。
存储器的层次结构的设计原理是通过将数据和指令分级存储在各个层次,根据访问频率和速度要求将数据从慢速的层次复制到快速的层次中,以提高计算机的运行效率。
具体而言,数据和指令首先从辅助存储器加载到主存中,当CPU需要访问数据时,首先在缓存中查找,如果找不到则从主存中读取,如果还是找不到则从辅助存储器中读取。
第五章存储层次5.1名词解释1.存储层次——采用不同的技术实现的存储器,处在离CPU不同距离的层次上,目标是达到离CPU最近的存储器的速度,最远的存储器的容量。
2.全相联映象——主存中的任一块可以被放置到Cache中任意一个地方。
3.直接映象——主存中的每一块只能被放置到Cache中唯一的一个地方。
4.组相联映象——主存中的每一块可以放置到Cache中唯一的一组中任何一个地方(Cache 分成若干组,每组由若干块构成)。
5.替换算法——由于主存中的块比Cache中的块多,所以当要从主存中调一个块到Cache 中时,会出现该块所映象到的一组(或一个)Cache块已全部被占用的情况。
这时,需要被迫腾出其中的某一块,以接纳新调入的块。
6.L RU——选择最近最少被访问的块作为被替换的块。
实际实现都是选择最久没有被访问的块作为被替换的块。
7.写直达法——在执行写操作时,不仅把信息写入Cache中相应的块,而且也写入下一级存储器中相应的块。
8.写回法——只把信息写入Cache中相应块,该块只有被替换时,才被写回主存。
9.按写分配法——写失效时,先把所写单元所在的块调入Cache,然后再进行写入。
10.不按写分配法——写失效时,直接写入下一级存储器中,而不把相应的块调入Cache。
11.写合并——在往缓冲器写入地址和数据时,如果缓冲器中存在被修改过的块,就检查其地址,看看本次写入数据的地址是否和缓冲器内某个有效块的地址匹配。
如果匹配,就将新数据与该块合并。
12.命中时间——访问Cache命中时所用的时间。
13.失效率——CPU访存时,在一级存储器中找不到所需信息的概率。
14.失效开销——CPU向二级存储器发出访问请求到把这个数据调入一级存储器所需的时间。
15.强制性失效——当第一次访问一个块时,该块不在Cache中,需要从下一级存储器中调入Cache,这就是强制性失效。
16.容量失效——如果程序在执行时,所需要的块不能全部调入Cache中,则当某些块被替换后又重新被访问,就会产生失效,这种失效就称作容量失效。
第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:失效率最低。
第1章计算机系统结构的基本概念1.1 解释下列术语层次机构:按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。
这些层次依次为:微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。
虚拟机:用软件实现的机器。
翻译:先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。
解释:对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。
执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。
计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。
在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。
计算机组成:计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。
计算机实现:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。
系统加速比:对系统中某部分进行改进时,改进后系统性能提高的倍数。
Amdahl定律:当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。
程序的局部性原理:程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。
包括时间局部性和空间局部性。
CPI:每条指令执行的平均时钟周期数。
测试程序套件:由各种不同的真实应用程序构成的一组测试程序,用来测试计算机在各个方面的处理性能。
存储程序计算机:冯·诺依曼结构计算机。
其基本点是指令驱动。
程序预先存放在计算机存储器中,机器一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。
系列机:由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。