计算机系统结构课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《计算机系统结构课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构 课件
- 资源描述:
-
1、计算机系统结构计算机系统结构第五章第五章 存储系统存储系统5.1 存储系统介绍存储系统 指计算机中由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和算法(软件)所组成的系统。计算机系统中,一般使用具有层次结构的存储系统,主要可分为三个存储层面:高速缓冲存储器、主存储器和辅助存储器。高速缓冲存储器主要用于改善主存储器与中央处理器(CPU)的速度匹配问题,而辅助存储器则主要用于扩大计算机系统的存储空间。5.1.1 存储系统的层次结构层次存储系统是指把各种不同存储容量、存取速度、访问方式和单位存储价格的存储器,按照一定的层次结构组成多层存储器,并通过管理软件和辅助硬件有机组合成统
2、一的存储体系,使计算机系统中使用到的各种程序和数据层次的分布到各个存储器中。辅助软硬件辅助软硬件主存主存辅存辅存图5-1 主/辅存结构多级存储体系二级存储体系结构可以进一步扩展到多级存储层次,对CPU而言,存储系统是一个整体:越靠近CPU的存储器存取速度越快,存储容量越小,也即下图中M1的存取速度最接近于CPU,而存储系统总体容量和单位存储价格接近于离CPU“最远”的Mn。多级存储体系(续1)5.1.2 存储系统的性能参数存储器有三个主要的性能指标:存储容量、存取速度、存储单位价格。用户期望:期望存储器价格尽可能低,提供尽可能高的存取速度和尽量大的存储容量。系统的观点,计算机系统性能的发挥要求
3、存储器存取速度与CPU相匹配,而容量上又应尽可能装入所有系统和用户软件;应用的观点,要求存储器的价格只能占整个计算机系统硬件价格的一小部分。矛盾的现实:存取速度越快,存储器的单位存储价格就越高;在一定的单位存储价格下,存储容量越大,存储器的总价就越高。5.1.2 存储系统的性能参数(续1)存储容量存储容量引入虚拟存储系统,为计算机系统使用者另设额外的虚拟地址空间,它既不是主存储器的地址空间,也不是磁盘存储器的地址空间,是将主存和辅存的地址空间统一编址,形成的一个庞大的存储空间。单位存储价格单位存储价格 ,为使得C1 C2,则需要M2 M1存取速度和访问命中率存取速度和访问命中率访问命中率,指C
4、PU访问存储系统时在主存储器中一次访问得到所需信息的概率。212211CCCPCPP211NNNH21)1(TTHTHTT1e 5.2 高速缓冲存储器Cache计算机系统为改善CPU与主存储器之间的速度匹配问题,在CPU和主存储器之间加入一个高速、小容量的缓冲存储器Cache,构成Cache主存储器的存储系统,使得存储系统对CPU而言,速度接近于高速缓冲存储器Cache,存储容量接近于主存储器。Cache存储器主要由三个部分组成:(1)Cache存储器,用于存放由主存储器调入的指令与数据块;(2)地址转换部件,用于实现主存储器地址到Cache存储器地址的转换;(3)替换部件,当缓存满时根据指定
5、策略进行数据块替换,并对地址转换部件做对应修改。Cache工作原理Cache工作原理(续1)系统工作时,地址转换部件维护一个映射表,用于确定Cache存储器中是否有所要访问的块,以及确定其位置。该映射表中的每一项对应于Cache存储器的一个分块,用于指出当前该块中存放的信息对应于主存储器的哪个分块。为提高CPU对Cache存储器的访问命中率,Cache存储器的工作原理是基于程序访问局部性原理程序访问局部性原理的,它不断地将与当前指令集相关联的一部分后继指令集从主存储器读取到Cache存储器,以供CPU访问,从而达到存储系统与CPU速度匹配的目的。Arm Cache 组织结构框图5.2.2 地址
6、映象与变换方法地址映象是将主存储器中的数据分块按某种规则装入Cache存储器中,并建立主存储器地址与Cache存储器地址之间的对应关系。地址变换是指当主存储器中的分块按照地址映象方法装入Cache存储器后,在实际运行过程中,主存储器地址如何转换成为相应的Cache存储器地址。地址的映象和变换是紧密相关的,采用什么样的地址映象方法,就有与这种映象方法相对应的地址变换方法。一般可分为以下几种类型:(1)全相联映象及其变换方法(2)直接映象及其变换方法(3)组相联映象及其变换方法(1)全相联映象及其变换方法全相联映象是指主存储器中的任意分块可以被放置到Cache存储器中的任意一个位置。其中,主存储器
7、与Cache存储器的分块大小相同。映像规则地址变换规则(2)直接映象及其变换方法直接映象是指将主存储器中的某一分块在Cache存储器中都有唯一对应的位置。主存储器按Cache大小分成若干区,在区内进行分块,分块大小与Cache存储器中分块大小相等,主存储器中每个区包含分块的个数与Cache存储器中分块的个数相等。映像规则地址变换规则(3)组相联映象及其变换方法组相联映象把主存储器和Cache按同样大小划分成块,再将主存储器和Cache按同样大小划分成组,每一组由相同的块数组成,然后将主存储器按Cache大小分成区,主存储器每个区的组数与Cache的组数相同。组相联映象在各组之间是直接映象,但组
8、内各块之间是全相联映象。(3)组相联映象及其变换方法(续1)映像规则地址变换规则5.2.3 Cache替换算法及实现当CPU读Cache时,有两种可能:(一)需要的数据已在Cache中,那么只需直接访问Cache;(二)是需要的数据尚未装入Cache,则CPU从主存储器中读取信息的同时,需按所需的映象规则将该地址所在的那块存储内容从主存储器拷贝到Cache中。对于第二种情况,若该块所映象的Cache块位置已全部被占满,则必须选择将Cache中的某一块替换出去,需要Cache替换算法解决如何选择被换出块的问题。Cache替换算法随机替换算法随机替换算法随机法是Cache替换算法中最简单的一种。这
9、种方法是随机地选择可以被替换的一块进行替换。有些系统设置一个随机数产生器,依据所产生的随机数选择替换块,进行替换。先进先出替换算法先进先出替换算法(FIFO)这种策略总是把最先调入的Cache块作为被替换的块替换出去。最近最少使用替换算法最近最少使用替换算法(LRU)LRU法是依据各块的使用情况,总是选择最近最久没被使用的块作为被替换的块进行替换。因为目前为止最久没有被访问的块,很可能也是将来最少访问的块。Cache替换算法(续1)堆栈替换算法堆栈替换算法堆栈替换算法使用栈顶到栈底各项的先后次序来记录Cache中或Cache中同一组内各个块被访问的先后顺序。栈顶恒存放近期最近被访问过的块的块号
10、,栈底恒存放近期最久没有被访问过的块的块号,即准备被替换掉的块的块号(LRU堆栈实现)。比较对替换算法比较对替换算法LRU算法用一组硬件的逻辑电路记录同一组中各个块使用的时间和次数,然后按照各个块被访问过的时间顺序排序,从中找出最久没有被访问过的块。用一个两态的触发器的状态来表示两个块之间的先后顺序,再经过门电路就可以找到LRU块。Cache替换算法(续2)各种各种Cache替换算法的优缺点替换算法的优缺点(1)随机替换算法:优点是简单,容易实现;缺点是没有考虑到Cache块的使用历史情况,没有利用程序的局部性特点,从而命中率较低,失效率较高。(2)FIFO替换算法:优点是由于它不需记录各个块
11、的使用情况,实现起来也较容易;缺点是虽然考虑到了各块进入Cache的先后顺序这一使用“历史”,但还不能正确地反映程序的局部性特点。(3)LRU替换算法:LRU算法较好地反映了程序的局部性特点,失效率较低,但LRU算法比较复杂,硬件实现较困难,特别是当组的大小增加时,LRU的实现代价将越来越高。5.2.4 cache一致性问题由于Cache中保存的是主存储器的一部分副本,则有可能在一段时间内,主存储器中某单元的内容与Cache中对应单元的内容出现不一致。例如:(1)CPU在写入Cache时,修改了Cache中某单元的内容,而主存储器中对于单元的内容却可能没有改变,还是原来的。此时,如果I/O处理
12、器或其他处理器要用到主存储器中的数据,则可能会出现主存储器内容跟不上Cache对应内容的变化而造成的数据不一致性错误。(2)I/O处理机或其他处理机已修改了主存储器某个单元的内容,而Cache中对于单元的副本内容却可能没有改变。这时,如果CPU访问Cache并读取数据,也可能会出现Cache内容跟不上主存储器对于内容的变化而产生的不一致性错误。5.2.4 cache一致性问题(续1)对于Cache中的副本与主存储器中的内容能否保持一致,是Cache能否可靠工作的一个关键问题。要解决这个问题,首先要选择合适的Cache更新算法。对Cache不一致性问题的解决,主要是需要更新主存储器内容,一般有两
13、种常用更新算法:(1)写回法:写回法也称拷回法。CPU执行“写”操作时,只把信息写入Cache,而不写入主存储器,仅当该块需被替换时,才相应Cache块写回到主存储器。(2)写直达法:写直达法也称存直达法。CPU在执行“写”操作时,不仅把信息写入到Cache,而且也写回主存储器,当某一块需要被替换时,不必再写回到主存储器,只需要直接调入新块并覆盖该块即可。5.2.4 cache一致性问题(续2)写回法与写直达法比较:(1)写回法较写直达法速度要快;(2)在可靠性方面,写回法不如写达法;(3)写直达法的控制较写回法简单;(4)写直达法易于实现,但硬件实现代价相对较大。进行“写”操作时,也可能出现
14、写不命中。由于“写”操作并不需要访问该单元中的所有的数据,在出现Cache写不命中时,无论写回法还是写直达法,都需要考虑在写操作的同时是否将其调入Cache,一般有两种选择:(1)按写分配法:写失效时,除了完成写入主存储器外,还把该写地址单元所在的块由主存储器调入Cache。(2)不按写分配法:写失效时,只完成写入主存储器,而不把该写地址单元所在的块从主存储器调入Cache。5.2.5 Cache性能分析评价Cache存储器,主要是看Cache命中率的高低,命中率主要与下面几个因素有关:(1)程序在执行过程中的地址流分布情况,其中地址流的分布情况是由程序本身决定的;可通过编写适应Cache的代
15、码;(2)当发生Cache块失效时,所采用的替换算法;(3)Cache的容量,块的大小、块的总数;(4)采用组相联时组的大小等。Cache友好代码Cache友好代码(续1)适当字节填充,减少缓冲不命中数量Float x8Float x125.2.5 Cache性能分析(续1)Cache命中率与容量的关系Cache的容量越大,则Cache的命中率将越高。5.2.5 Cache性能分析(续2)Cache命中率与块大小的关系在采用组相联映象方式的Cache中,当Cache的容量一定时,块的大小也会影响命中率。5.2.5 Cache性能分析(续3)Cache命中率与组数的关系当Cache的容量一定时,
16、分组的数目对于Cache命中率的影响也是很明显的:组数分得越多,命中率会下降,命中率会随着组数的增加而下降;当组数不太大时,命中率降低得相当少;当组数超过一定数量时,命中率下降非常快。Cache系统加速定义:H1TTH1TH1THTTTRmcmCmmamcTH1THT5.2.5 Cache性能分析(续4)从Cache系统加速比定义可以看出,Cache系统的加速比与Cache的命中率H和主存储器访问周期Tm及Cache访问周期Tc有关,而Cache系统中,主存储器的访问周期和Cache的访问周期一般是一定的,所以只要提高Cache的命中率,就可以获得较高的Cache系统加速比,提高存储系统的速度
17、。5.3 Cache性能的优化除加速比定义衡量Cache存储系统性能外,Cache存储器的平均访问时间是测评存储系统性能的一种更好的指标:平均访问时间=命中时间+失效率*失效开销从平均访问时间这一指标来看,还可以从3个方面对Cache的性能进行优化:(1)降低Cache失效率 (2)减少失效开销 (3)减少命中时间5.3.1降低Cache失效率的方法Cache失效的原因分析:(1)强制性失效:对块第一次访问,该块不在Cache中,需从主存储器中将该块调入Cache中。(2)容量失效:如果程序执行时,Cache容纳不了所需的所有块,则会发生容量失效。当某些块被替换后,可能随后重新访问又被调入。(
18、3)冲突失效:在组相联映象或直接相联映象中,如果太多的冲突块映象到同一组中,产生冲突,则可能会出现某个块刚被替换出去,随后又重新访问而被再次调入。5.3.1降低Cache失效率的方法(续1)增加Cache块大小 Cache命中率和块大小的关系:在Cache容量一定时,当块大小开始增加时,命中率也开始增加,但当增加到一定程度后,命中率反而开始下降。失效率和命中率是两个相关的概念,命中率增加时,失效率下降;命中率下降时,失效率反而增加。另外,Cache容量越大,则使失效率达到最低的块大小就越大。5.3.1降低Cache失效率的方法(续2)增加Cache容量 Cache容量越大,命中率越高,相关,失
19、效率则越低。但增加Cache容量不仅会增加成本,而且也可能会因为复杂的电路结构等而增加Cache的访问时间。指令和数据硬件预取 指令和数据硬件预取是指在处理器访问指令和数据之前,就把它们预取到Cache中或预取到可以比存储器访问速度更快的外部缓冲区中。指令预取一般有恒预取和不命中预取两种方法。5.3.1降低Cache失效率的方法(续3)编译器控制预取 硬件预取的一种替代方法是在编译时加入预取指令,在数据被使用之前发出预取请求。有以下两种方式:(1)寄存器预取:将数据预取到寄存器中。(2)Cache预取:只将数据预取到Cache中,并不放入寄存器。编译器优化以降低Cache失效率这种方法是采用软
20、件方法来优化Cache性能,试图通过优化编译时间来改善Cache性能:(1)程序代码和数据重组(2)循环交换(3)分块5.3.2 减少Cache失效开销与降低失效率一样,减少Cache失效开销同样可以缩短Cache存储器的平均访问时间并提高Cache的性能。(1)采用两级Cache:在原Cache和存储器之间增加一级Cache,构成两级Cache。其中第一级Cache可以让它小到足以与快速的处理器运行时钟周期相匹配,而第二级Cache则让它大到足以捕获到对内存进行的大多数访问,从而有效地降低了失效开销。(2)让读失效优先于写:提高写直达Cache性能最重要的方法是设置一个容量适中的写缓存。然而
21、写缓存中可能包含读失效时所需单元的最新值,这个值尚未写入存储器,导致了存储器访问的复杂化。解决方法是让读失效等待,直至写缓存为空。5.3.2 减少Cache失效开销(续1)合并写缓冲区 采用写直达法的Cache要有一个写缓冲区,如果写缓冲区为空,就把被替换的数据和相应地址写入缓冲区。请求字处理技术 处理器在同一时刻只需要调入块中的一个字(即请求字),不必等到全部的块调入Cache,就可以将该字送往处理器并重新启动处理器进行访问,一般有以下两种策略:(1)请求字优先:调块时,先向存储器请求处理器所要的请求字。一旦该请求字到达即送往处理器,让处理器继续执行,同时可以从存储器中调入该块的其他字。(2
22、)提前重启动:在请求字没到达处理器时,处理器处于等待状态。5.3.3 减少命中时间除了通过降低失效率和减少失效开销来优化Cache性能的方法以外,还可通过减少命中时间来优化Cache的性能。命中时间也是平均访问时间的一个组成部分,它的重要性在于它会影响处理器的时钟频率。(1)小而简单的Cache减少命中时间 采用容量小、结构简单的Cache,这样快表较小,查表的速度较快,从而有效地提高了Cache的访问速度。(2)路预测减少命中时间 路预测要求Cache中预留特殊的比较位,用来预测下一次访问Cache时可能会用到的路或块。5.3.3 减少命中时间(续1)(3)踪迹Cache(Trace Cac
23、he)减少命中时间 踪迹Cache中存储的是处理器所执行的动态指令序列,而不是用于存储主存储器中给出的静态指令序列。L例如,在Pentium4处理器的踪迹Cache中由于使用了译码微操作,从而节省了译码时间。(4)流水线Cache访问 流水线Cache访问方法是将流水线、Cache访问以及使一级Cache命中时的有效时延分散到几个时钟周期。它实际上并不能真正减少Cache命中时间,但可以提供较短的周期时间和高宽带。5.4 主存储器及性能优化主存储器也即主存,是存储层次中紧接着Cache下面的一个层次。它是计算机硬件的一个重要部件,其作用是存放指令和数据,并能由中央处理器直接随机存取。它既被用来
24、满足Cache的请求,也被用作I/O接口。主存的性能指标主要是存储容量、存取时间、存储周期和存储器带宽。存储容量是指在一个存储器中可以容纳的存储单元总数;存取时间是指从启动到完成一次存储器操作所经历的时间;存储周期是指连续启动两次操作所需间隔的最小时间;存储器带宽是指单位时间里存储器所存取的信息量。5.4.1 主存储器目前,就主存的速度来看,仍不能满足CPU的要求,这是因为主存速度的改进跟不上CPU速度的提高。Cache的引入,在很大程度上弥补了主存和CPU速度上的巨大差距。主存的延迟因影响Cache的失效开销而成为Cache主要关心的问题,另外,随着第二级Cache的广泛应用,主存带宽对于C
展开阅读全文