资源目录
压缩包内文档预览:(预览前20页/共36页)
编号:7409833
类型:共享资源
大小:7.33MB
格式:RAR
上传时间:2018-01-15
上传人:专业****设计
认证信息
个人认证
葛**(实名认证)
江苏
IP属地:江苏
45
积分
- 关 键 词:
-
计算机
系统、设计、
- 资源描述:
-
ASP068计算机组成原理教学网站,计算机,系统、设计、
- 内容简介:
-
计算机科学与工程学院,Lecture 7-1 存储系统,存储系统层次结构高速缓冲存储器Cache,2,存储系统的层次结构,半导体存储器作为主存储器(简称主存或内存),存放当前正在执行的程序和数据;而用磁盘,磁带,光盘作为外存储器或辅助存储器(简称外存或辅存),存放当前不在运行的大量程序和数据.半导体存储器可随机访问任一单元,而辅助存储器一般为串行访问存储器.串行存储器又可分成顺序存取存储器(例磁带)和直接存取存储器(例磁盘).,3,存储系统的层次结构,衡量存储器有三个指标:容量,速度和价格/位。 用单一的存储器很难同时满足三个指标。因为存取时间越短,每位的价格就越高;容量越大,每位的价格就越低;容量越大,存取时间就越长。这必须用存储系统来实现。存储系统不是硬件的简单堆积,是硬件与软件相结合的方法连接起来成为一个系统。这个系统对应用程序员透明,并且,从应用程序员看它是一个存储器,这个存储器的速度接近速度最快的那个存储器,存储器容量与容量最大的那个存储器相等或接近,单位容量的价格接近最便宜的那个存储器。,4,存储系统的层次结构,5,存储系统的层次结构,通过软件与硬件的结合,把主存和辅存统一成了一个整体,形成了一个存储层次,即虚拟存储系统(主存-辅存)。在系统中,应用程序员可用机器指令地址码对整个程序统一编址,如同程序员具有对应这个地址码宽度的全部虚存空间一样.该空间可以比主存实际空间大得多,以致可以存得下整个程序.这种指令地址码称为虚地址或逻辑地址,其对应的存储器容量称为虚存容量或虚存空间;而把实际主存的地址称为物理地址或实地址,其对应的存储容量称为主存容量。当CPU用虚地址访问主存时,机器自动地把它经辅助软件,硬件变换成主存实地址.察看这个地址所对应的单元内容是否已经装入主存,如果在主存就进行访问,如果不在主存内就经辅助软件硬件把它所在的那块程序和数据由辅存调入主存,而后进行访问.这些操作不必由程序员类安排,也就是说,对应用程序员是透明的.,6,存储系统的层次结构,在速度方面,计算机的主存和CPU一直保持了大约一个数量级的差距。在CPU和主存中间设置Cache,构成Cache-主存层次,要求Cache在速度上能跟得上CPU的要求。Cache-主存间的地址映像和调度吸取了主-辅存存储层次的技术,但完全由硬件来实现。现代计算机的典型存储结构为三级存储:Cache主存辅存,7,高速缓冲存储器(Cache),程序访问的局部性时间局部性: 一个存储项被访问,可能很快再访问.空间局部性: 存储项被访问,它的邻近项可能很快被访问.程序地址的分布是连续的,再加上循环程序和子程序段要重复执行多次,因此,对程序地址的访问就自然地具有相对集中的倾向.数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中.根据局部性原理,可以在主存和CPU之间设置一个高速的容量相对较小的存储器,存放当前正在执行的程序和数据,当程序运行时,不必从主存取指令和数据,而访问这个高速存储器即可.,8,Cache-CPU-主存之间的关系,关系,9,Cache的基本结构(分块),设主存地址n位,有2n个单元。将主存分块(Block),每块B字节, 共分M=2n/B块。 Cache由同样大小的块组成,由于容量小,所以块的数目小得多,主存中只有一小部分块的内容可放在Cache中。B=2b, M=2n/2b=2m, 主存地址n=m+bCache地址=c+bCache的每一块都有一个标记,10,Cache的基本结构(读),当CPU发出读请求时,将主存地址m位(或m位中的一部分)与Cache某块的标记相比较,根据其比较结果是否相等而分出两种情况: 当比较结果相等时,说明需要的数据已在Cache中,那么直接访问Cache就行了,在CPU与Cache之间,通常一次传送一个字; 当比较结果不相等时,说明需要的数据尚未调入Cache,那么就要把该数据所在的整个字块从主存一次调入Cache. 前一种情况称为访问Cache命中(Hit),后一种情况称为访问Cache不命中(Miss).,11,Cache的基本结构(读),Cache的读操作流程,12,Cache的基本结构(写),Cache中保存的字块是主存中相应字块的一个副本.如果程序执行过程中要对该字块的某个单元进行写操作,就会遇到如何保持Cache与主存的一致性问题. 通常有两种写入方式:一种方式是暂时只向Cache写入,并用标志加以说明,直到经过修改的字块被从Cache中替换出来时才一次写入主存(write back);第二种方式是每次写入Cache时也同时写入主存,使Cache和主存保持一致(write through).Write Back: 称为写回法,或回写法Write Through: 称为写直达法,或全写法,或写通过法另一种方法是写一次: 当被修改的单元根本就不在Cache时,写操作直接对主存进行,而不写入Cache.,13,Cache的基本结构,块的大小称为“块长”. 块长一般取一个主存周期所能调出的信息长度. Pentium为32个字节.Cache的容量和块的大小是影响Cache的效率的重要因素.通常用“命中率”来测量Cache的效率.命中率Hc=命中次数/总访问次数失效率=1Hc在从主存读出新的字块调入Cache时,如果遇到Cache中相应的位置已被其他字块占有,那么就必须去掉一个旧的字块,让位于一个新的字块. 这种替换应该遵循一定的规则,最好能使被替换的字块是下一段时间内估计最少使用的. 这些规则称为替换策略或替换算法,由替换部件加以实现.,14,Cache的基本结构,有效位: 为了说明标记是否有效. 当机器刚加电时,Reset信号将所有标记的有效位置“0”,使标记无效. 在程序执行的过程中,当Cache不命中时逐步将指令块或数据块从主存调入Cache中的某一块,并将这一块标记中的有效位置“1”.设Cache的存取时间为tc, 命中率为h, 主存的存取时间为TM,则平均存取时间=htc+(1h) (tc+tM)=tc+ (1h) tM,15,Cache的基本结构,16,Cache组织,地址映像:为了把信息放到Cache中,必须应用某种函数把主存地址映像到Cache,称作地址映像。地址映像方式: 直接映像全相联映像组相联映像在信息按照某种映像关系装入Cache后,在程序执行时,应将主存地址变换成Cache地址,这个过程叫做地址变换. 设主存储器空间被分为Mm(0), Mm(1), , Mm(i), , Mm(2m1),共2m块,Cache存储空间被分为Mc(0), Mc(1), , Mc(j), , Mc(2c1),共2c块,字块大小相同,为2b个字.,17,直接映像(Direct Mapping),把主存的每一块映射到一个固定的Cache块中。j=i mod 2c其中j为Cache的字块号,i为主存的字块号,2c为Cache的字块数。在这种映像方式中:主存的第0块,第2c块,第2c+1块, ,只能映像到Cache的第0块;而主存的第1块,第2c+1块,第2c+1+1块, ,只能映像到Cache的第1块;。优点:实现简单、花费少。缺点:不够灵活,Cache利用率不高。,18,直接映像(Direct Mapping),主存地址末b位是字块内地址(假定为字地址);中间c位是Cache字块地址;高(mc)=t位就是主存字块标记,也就是记录在相应Cache块标记中的内容,当有效位为“1”时,它表明该数据块是主存哪一块数据的副本.Cache在接收到CPU送来的主存地址和读/写命令后,只需根据中间c位字段找到Cache存储器字块,然后看其标记是否与主存地址高t位符合,如果符合且有效位为“1”,则可根据b位块内地址,从Cache中取得所需指令或数据;如果不符合或有效位为“0”,就从主存读入新的字块来替换旧的字块,并将CPU所需数据送往CPU,同时修改Cache标记(有效位“0”改为“1”).,19,直接映像地址变换,20,全相联映像(Associative Mapping),通过允许每个主存块装入到Cache的任何一个字块中来克服直接映射的缺点。,21,全相联映像(Associative Mapping),全相联映像方式是最灵活但成本最高的一种方式.它允许主存中的每一字块映像到Cache的任何一个字块位置上,也允许从确实已被占满的Cache中替换出任何一个旧字块.主要问题是在访问Cache时,需要和Cache的全部标记进行“比较”才能判断出所访主存地址的内容是否已在Cache中.由于Cache速度要求高,所以全部“比较”操作都要用硬件实现,通常由“按内容寻址的”相联存储器完成.,22,全相联映像地址变换,23,组相联映像(Set Associative Mapping),上述两种方案的折衷。把Cache分成v组,每组有k个字块,则m=v(=2C)k(=2r);r是路数j = (i mod v)2r+k 0k2r1按这种映像方式,组间为直接映像,而组内的字块为全相联映像方式.组相联映像把地址划分成3段,末b位为块内地址,中间c位为Cache组地址,高(t+ r)位形成标记字段.,24,组相联映像Cache组织,设主存为1MB=220Cache 为8KB=213块长为0.5KB=29块数=8KB/0.5KB=16Cache为二路组相联组数=块数/路数=8,注: 块号是组内块号的缩称组号是Cache内组号的缩称,25,组相联映像地址变换,26,块的替换算法,替换算法随机(RAND)先进先出(FIFO)最近最少使用(LRU)原始状态 访问7 访问5 访问1 访问6 0 7 5 1 6 1 0 7 5 12 1 0 7 5 3 2 1 0 74 3 2 2 05 4 3 3 26 5 4 4 37 6 6 6 4,27,块的替换算法,例:某程序对页面要求的序列为P3P4P2P6P4P3P7P4P3P6P3P4P8P4P6。设主存容量为3个页面,求FIFO和LRU替换算法时各自的命中率(假设开始时主存为空)。命中率Hc=命中次数/总访问次数FIFO:先进先出算法LRU:最近最少使用算法假设3个页面为入出,28,块的替换算法,FIFO算法命中率3/15=20%,29,块的替换算法,LRU算法命中率6/15=40%,30,多层次Cache结构,计算机开始实现Cache时,是将指令和数据存放在同一Cache中的.后来随着计算机技术的发展和处理速度的加快,存取数据的操作经常会与取指令的操作发生冲突,从而延迟了指令的读取.发展的趋势是将指令Cache和数据Cache分开而成为两个相互独立的Cache.近年来新设计的快速微处理芯片都将Cache集成在片内,片内Cache的读取速度要比片外Cache快得多.,31,多层次Cache结构,Intel 80386不含片内Cache,486包含一个8KB的片内Cache,它采用每字块16字节的四路组相联结构。Pentium包含两个片内Cache,一个用于数据,一个用于指令,每个cache有8K字节,采用每字块32字节的二路组相联结构.数据Cache有两个端口,分别与两个ALU交换数据,每个端口传送32位数据,也可组合成64位数据,与浮点部件接口相连,传送浮点数.数据Cache采取“写回”策略,即仅当Cache中的数据要调出,且被修改过,才需要写会主存.,32,多层次Cache结构,片内Cache的容量受芯片集成度的限制,一般在几十KB以内,因此命中率比大容量Cache低.于是推出了二级Cache方案:其中第一级Cache(L1)在处理器芯片内部;第二级Cache(L2)在片外,其容量可从几十KB到几百KB,采用SRAM存储器,两级Cache之间一般有专用总线相连.Pentium微处理器支持片外的第二级Cache,其容量为256KB或512KB.也是采用两路组相连方案.,33,Cache的一致性问题,Pentium处理器支持“修改/排它/共享/无效” (modified/exclusive/shared/invalid,简称MESI)协议.它原是为多处理器系统的Cache一致性设计的,但也适用于单处理机的二级Cache系统. 数据Cache的每一行包含两个状态位,每一Cache行处于4种状态之一,各状态的意义如下:修改(Modified,简称M):本Cache行中的数据已被修改(与主存的内容不同),仅在本Cache中的数据是正确的.排它(Exclusive,简称E):本Cache行中的数据与主存中的数据相同,但不存在于其他Cache中.共享(Shared,简称S):本Cache行中的数据与主存中的数据相同,且可存在于其他Cache中.无效(Invalid,简称I):本Cache行中的数据无效.,34,内部数据C
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。