计算机组成原理14-存储系统04.ppt

上传人:hyn****60 文档编号:71574684 上传时间:2023-02-03 格式:PPT 页数:44 大小:943KB
返回 下载 相关 举报
计算机组成原理14-存储系统04.ppt_第1页
第1页 / 共44页
计算机组成原理14-存储系统04.ppt_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《计算机组成原理14-存储系统04.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理14-存储系统04.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、系系统统总总线线存储器存储器 运算器运算器 控制器控制器 接口与通信接口与通信 输入输入/输出设备输出设备 计算机组成原理计算机组成原理 第四章第四章 存储器存储器复习与作业复习与作业第第4章章 存储器存储器 4.4 辅助存储器(不讲了)辅助存储器(不讲了)演讲演讲 下周第一次课下周第一次课(23、24日)日)题目:题目:任意(只要是有关辅助存储器的)任意(只要是有关辅助存储器的)内容:内容:关于关于辅助存储器辅助存储器的分类、工作原理、先进技术等等的分类、工作原理、先进技术等等 可以从书中可以从书中4.4中选取内容,也可以从网上自己搜索整理。中选取内容,也可以从网上自己搜索整理。(例如:硬盘

2、、光盘工作原理、读取方式、主流产品、(例如:硬盘、光盘工作原理、读取方式、主流产品、主要型号参数的说明等等,主要型号参数的说明等等,移动硬盘,磁盘阵列先进存储设备的技术应用与发展)移动硬盘,磁盘阵列先进存储设备的技术应用与发展)要求:要求:每小班四名同学每小班四名同学(只能多不能少)(只能多不能少)每人每人6分钟(大概分钟(大概10张张PPT左右),准备充分,讲述流利。左右),准备充分,讲述流利。凡演讲者,期末考试卷面成绩凡演讲者,期末考试卷面成绩+5分。分。3.1、主存储器概述、主存储器概述3.2、主存储器构成、主存储器构成3.3、主存储器扩展、主存储器扩展3.4、主存储器与、主存储器与CP

3、U的连接的连接3.5、提高主存储器性能的技术、提高主存储器性能的技术 3.5.1、提高主存的制造技术、提高主存的制造技术 3.5.2、双端口存储器、双端口存储器 3.5.3、单体并行多字、单体并行多字存储器存储器 3.5.4、多体并行交叉存储器、多体并行交叉存储器 3、主存储器、主存储器角度二:提高角度二:提高存储体系结构存储体系结构角度一:硬件角度一:硬件提高元器件提高元器件存储系统中主要是通过存储系统中主要是通过并行主存储并行主存储器器和和设置设置Cache来提高速度。来提高速度。双端口存储器双端口存储器和和多体交叉存储器多体交叉存储器属属于并行存储器。前者采用空间并行于并行存储器。前者采

4、用空间并行技术,后者采用时间并行技术。技术,后者采用时间并行技术。第四章第四章 存储器存储器1、存储器的分类、存储器的分类2、存储器的层次结构(三级存储系统)、存储器的层次结构(三级存储系统)3、主存储器(内存、主存储器(内存 Main memory)4、高速缓冲存储器(、高速缓冲存储器(Cache)5、虚拟存储器(、虚拟存储器(Virtual Memory)6、相联存储器(了解)、相联存储器(了解)辅助存储器辅助存储器为了弥补主存速度的不足,在为了弥补主存速度的不足,在CPU与与主存主存之间设置一个之间设置一个 高速高速 小容量小容量 的的缓冲存储器,称缓冲存储器,称高速缓存(高速缓存(Ca

5、che),),主要由高速的主要由高速的SRAM组成。组成。其工作原理如下:其工作原理如下:我们利用我们利用程序程序运行的运行的局部性特点局部性特点,把,把CPU正在访问和即将访问的若正在访问和即将访问的若干程序块和数据块从主存调入高速缓存中,使干程序块和数据块从主存调入高速缓存中,使CPU大部分从高速缓大部分从高速缓存中读取指令和存取数据,极大地提高了存中读取指令和存取数据,极大地提高了CPU的访问速度。的访问速度。4、高速缓冲存储器(、高速缓冲存储器(Cache)CPUCache主存主存DRAM地址总线地址总线相联相联存储表存储表命中命中未命中未命中数据总线数据总线块块字字字字CPU读取数据

6、字时:读取数据字时:1)CPU输出输出字地址字地址同时送到同时送到Cache和和主存主存;2)Cache 先判断该字是否在先判断该字是否在Cache中;中;如果在,如果在,Cache直接送给直接送给CPU;如果不在,再去主存中读取。;如果不在,再去主存中读取。3)去主存取字时不仅把该去主存取字时不仅把该字字取出,同时还把取出,同时还把该字附近的该字附近的一块数据一块数据 都取出送给都取出送给Cache,以便,以便CPU下次读取字时在下次读取字时在Cache中读取。中读取。Cache的命中率高达的命中率高达98%以上。以上。4、高速缓冲存储器(、高速缓冲存储器(Cache)CPUCache主存主

7、存DRAM地址总线地址总线相联相联存储表存储表命中命中未命中未命中数据总线数据总线块块字字字字增加增加Cache后,使主存的平均存取时间尽可能接近后,使主存的平均存取时间尽可能接近Cache的。的。由于程序访问的局部性使之可能。由于程序访问的局部性使之可能。在一个程序执行期间在一个程序执行期间命中率命中率与程序的行为、与程序的行为、Cache的容量、组织方式、块的大小有关。的容量、组织方式、块的大小有关。Tc表示命中时的表示命中时的Cache读写时间,读写时间,Tm表示未命中时的主存读写时间,表示未命中时的主存读写时间,1-h表示未命中率,则表示未命中率,则Cache/主存系统主存系统的的平均

8、访问时间平均访问时间 Ta为:为:主存慢于主存慢于Cache的的倍率倍率 r:为提高访问效率,命中率越接近为提高访问效率,命中率越接近1越好,越好,r值以值以510为宜。为宜。命中率命中率 h=Cache完成存取的总次数完成存取的总次数/(Cache完成存取的总次数完成存取的总次数+主存完成存取的总次数主存完成存取的总次数)Ta=h*Tc+(1-h)Tmr=Tm/Tc4、高速缓冲存储器(、高速缓冲存储器(Cache)考研试题精选:考研试题精选:假设:假设:CPU执行某段程序时,共访问执行某段程序时,共访问Cache 3800 次,访问主存次,访问主存200次,次,已知已知Cache存取周期为存

9、取周期为50ns,主存存取周期为,主存存取周期为250ns。求:求:Cache主存系统主存系统的平均存取时间和效率。的平均存取时间和效率。解:解:系统命中率系统命中率 h=3800/3800+200=0.95 系统平均存取时间系统平均存取时间 Ta=50 ns*0.95+250 ns*(1-0.95)=60 ns系统效率系统效率=(Cache存取时间存取时间/平均存取时间)平均存取时间)=50ns/60ns=83.3%4、高速缓冲存储器(、高速缓冲存储器(Cache)公式一公式一考研试题精选:考研试题精选:例:例:CPU执行一段程序时,执行一段程序时,Cache完成存取的次数为完成存取的次数为

10、1900次,主存完成存次,主存完成存取的次数为取的次数为100次,已知次,已知Cache存取周期为存取周期为50ns,主存存取周期为,主存存取周期为250ns。求求:Cache/主存系统的效率和平均访问时间。主存系统的效率和平均访问时间。解:解:系统命中率系统命中率 h=1900/(1900+100)=0.95倍率倍率 r=Tm/Tc=250ns/50ns=5系统效率系统效率 =1/(r+(1-r)h)=1/(5+(1-5)*0.95)=83.3%系统平均访问时间系统平均访问时间 Ta=h*Tc+(1-h)Tm =0.95*50ns+0.05*250ns =47.5+12.5=60ns4、高速

11、缓冲存储器(、高速缓冲存储器(Cache)公式二公式二CPU与与Cache之间的数据交换以之间的数据交换以“字字”为单位,而为单位,而Cache与主存之间的与主存之间的数据交换以数据交换以“块块”为单位。为单位。一块由若干个字组成一块由若干个字组成,块是定长的。,块是定长的。为了实现为了实现Cache的上述功能,需要解决这样一些问题:的上述功能,需要解决这样一些问题:1)Cache与主存中存储单元与主存中存储单元地址映象关系,主存大而地址映象关系,主存大而Cache小小;(主存中的存储单元(主存中的存储单元 放在放在 Cache中哪个存储单元?)中哪个存储单元?)2)如何实现如何实现地址转换地

12、址转换,将访问主存的地址转换成访问,将访问主存的地址转换成访问Cache的地址;的地址;(CPU直接输出的是访问主存单元地址,主存长地址直接输出的是访问主存单元地址,主存长地址 变变 Cache短地址?)短地址?)3)若访问若访问Cache未命中且未命中且Cache未满时,数据块如何未满时,数据块如何调入?调入?Cache已满时,数据块如何已满时,数据块如何替换?先来先走?替换?先来先走?4)数据的一致性)数据的一致性问题:问题:Cache中的更新数据与内存中的陈旧数据之间的中的更新数据与内存中的陈旧数据之间的更新更新。4、高速缓冲存储器(、高速缓冲存储器(Cache)第四章第四章 存储系统存

13、储系统4、高速缓冲存储器(、高速缓冲存储器(Cache)4.1、地址映象、地址映象 4.2、替换算法、替换算法 4.3、多层次的、多层次的Cache辅助存储器辅助存储器Cache 的全部功能都是的全部功能都是由硬件完成的,由硬件完成的,对程序员来说是透明的。对程序员来说是透明的。4.1、地址映象、地址映象映象映象:其物理意义就是位置的对应关系,:其物理意义就是位置的对应关系,将主存地址变成将主存地址变成Cache地址地址。常见的映象方式主要有三种:常见的映象方式主要有三种:1)直接映象)直接映象2)全相联映象)全相联映象3)组相联映象)组相联映象CPUCache主存主存DRAM地址总线地址总线

14、相联相联存储表存储表命中命中未命中未命中数据总线数据总线块块字字字字0块块1块块15块块0块块1块块15块块0块块1块块15块块0块块1块块15块块0区区1区区255区区Cache主存主存区号区号块号块号块内地址块内地址块号块号块内地址块内地址主存地址主存地址Cache地址地址7位位4位位9位位4位位9位位4.1、地址映象、地址映象直接映像直接映像第第0块块第第1块块第第15块块第第16块块第第17块块第第31块块第第2032块块第第2033块块第第2047块块0123Cache块号块号主存区号主存区号块表块表直接映象直接映象方式是多对一影射。方式是多对一影射。主存中的一块只能映象到主存中的一

15、块只能映象到Cache某一个固定的块中。某一个固定的块中。直接映象的关系式:直接映象的关系式:K=I mod M K:Cache块号,块号,I:主存块号,主存块号,M:Cache总块数总块数00163248.203211173349.20334.1、地址映象、地址映象直接映像直接映像CPU先送出一个先送出一个主存地址主存地址,用,用主存地址中的区号主存地址中的区号与与块表中区号块表中区号比较比较,若命中:若命中:访访Cache(按主存地址的块号(按主存地址的块号+块内地址)读出一字送块内地址)读出一字送CUP;若未命中:若未命中:访内存(按主存地址的区号访内存(按主存地址的区号+块号)读出一块

16、送块号)读出一块送Cache。区号区号块号块号块内地址块内地址Cache块号块号块内地址块内地址比较比较命中命中未命中未命中访问内存访问内存访问访问Cache按块号按块号查找块表查找块表主存地址主存地址Cache地址地址4.1、地址映象、地址映象直接映像直接映像000001010011Cache块号块号区号标记区号标记例例1:设有一个设有一个Cache的容量为的容量为2KB,每个块为,每个块为16字(一字一字节)字(一字一字节)求:求:1)该)该Cache可容纳多少个块?可容纳多少个块?2KB=2048B 2048B/16B=128块块2)如果主存容量为)如果主存容量为256KB,则有多少块?

17、,则有多少块?256 KB=256*1024 B=262144 B 262144B/16B=16384块块3)主存地址有多少位?)主存地址有多少位?Cache 地址有多少位?地址有多少位?主存有主存有18位,位,Cache有有11位。位。4)在直接映象方式下,主存中第)在直接映象方式下,主存中第135块映象到块映象到Cache中哪块?中哪块?K=I mod M=135 mod 128=7 5)进行地址映射时,主存地址分成哪几段?各段分别有多少位?)进行地址映射时,主存地址分成哪几段?各段分别有多少位?主存地址分为三段:主存地址分为三段:主存区号位数主存区号位数=主存地址位数主存地址位数 Cac

18、he 地址位数地址位数=18-11=7位位 Cache块号位数块号位数=7位位 27=128 块内地址位数块内地址位数 =4位位 24=16 主存区号主存区号块号块号块内地址块内地址4.1、地址映象、地址映象直接映像直接映像例例2:设一个设一个Cache中有中有8块,访问主存进行读操作的块,访问主存进行读操作的块地址块地址依次为:依次为:10110、11010、10110、11010、10000、00100、10010,求每次访问时求每次访问时Cache的内容。的内容。主存区号主存区号块号块号块内地址块内地址2位位3位位主存块号主存块号Cache块号块号块内地址块内地址比较比较未命中未命中访问

19、内存访问内存000001010011100101110111000001010011100101110111 内存内存10区区10 110块表块表000001010011100101110111 Cache调入调入调入调入104.1、地址映象、地址映象直接映像直接映像例例2:设一个设一个Cache中有中有8块,访问主存进行读操作的块地址依次为:块,访问主存进行读操作的块地址依次为:10110、11010、10110、11010、10000、00100、10010,求每次访问时求每次访问时Cache的内容。的内容。主存区号标记主存区号标记块号块号块内地址块内地址2位位3位位主存块号主存块号Cac

20、he块号块号块内地址块内地址比较比较未命中未命中访问内存访问内存111000000101001110010111011100000101001110010111011111 内存内存11区区11 010块表块表000001010011100101110111 Cache调入调入调入调入4.1、地址映象、地址映象直接映像直接映像例例2:设一个设一个Cache中有中有8块,访问主存进行读操作的块地址依次为:块,访问主存进行读操作的块地址依次为:10110、11010、10110、11010、10000、00100、10010,求每次访问时求每次访问时Cache的内容。的内容。主存区号标记主存区号标

21、记块号块号块内地址块内地址2位位3位位主存块号主存块号Cache块号块号块内地址块内地址比较比较命中命中111000000101001110010111011110 110块表块表000001010011100101110111 Cache访问访问Cache4.1、地址映象、地址映象直接映像直接映像例例2:设一个设一个Cache中有中有8块,访问主存进行读操作的块地址依次为:块,访问主存进行读操作的块地址依次为:10110、11010、10110、11010、10000、00100、10010,求每次访问时求每次访问时Cache的内容。的内容。主存区号标记主存区号标记块号块号块内地址块内地址2

22、位位3位位主存块号主存块号Cache块号块号块内地址块内地址比较比较命中命中111000000101001110010111011111 010块表块表000001010011100101110111 Cache访问访问Cache4.1、地址映象、地址映象直接映像直接映像例例2:设一个设一个Cache中有中有8块,访问主存进行读操作的块地址依次为:块,访问主存进行读操作的块地址依次为:10110、11010、10110、11010、10000、00100、10010,求每次访问时求每次访问时Cache的内容。的内容。主存区号标记主存区号标记块号块号块内地址块内地址2位位3位位主存块号主存块号C

23、ache块号块号块内地址块内地址比较比较未命中未命中访问内存访问内存1110000001010011100101110111000001010011100101110111 内存内存10区区10 000块表块表000001010011100101110111 Cache调入调入调入调入104.1、地址映象、地址映象直接映像直接映像例例2:设一个设一个Cache中有中有8块,访问主存进行读操作的块地址依次为:块,访问主存进行读操作的块地址依次为:10110、11010、10110、11010、10000、00100、10010,求每次访问时求每次访问时Cache的内容。的内容。主存区号标记主存区

24、号标记块号块号块内地址块内地址2位位3位位主存块号主存块号Cache块号块号块内地址块内地址比较比较未命中未命中访问内存访问内存1110000001010011100101110111000001010011100101110111 内存内存00区区00 100块表块表000001010011100101110111 Cache调入调入调入调入10004.1、地址映象、地址映象直接映像直接映像例例2:设一个设一个Cache中有中有8块,访问主存进行读操作的块地址依次为:块,访问主存进行读操作的块地址依次为:10110、11010、10110、11010、10000、00100、10010,求每

25、次访问时求每次访问时Cache的内容。的内容。主存区号标记主存区号标记块号块号块内地址块内地址2位位3位位主存块号主存块号Cache块号块号块内地址块内地址比较比较未命中未命中访问内存访问内存1110000001010011100101110111000001010011100101110111 内存内存10区区10 010块表块表000001010011100101110111 Cache替换替换替换替换1000104.1、地址映象、地址映象直接映像直接映像直接映射方式的优点:直接映射方式的优点:硬件比较简单,成本低。硬件比较简单,成本低。直接映射方式的缺点:直接映射方式的缺点:1)每个主存

26、块对应每个主存块对应Cache中一个固定的位置,中一个固定的位置,Cache中即使有空的中即使有空的 块,但是如果不是对应的内存块则不能调入进去,所以块,但是如果不是对应的内存块则不能调入进去,所以Cache的利的利 用率不高。用率不高。2)若未命中,从主存读入的块替换出若未命中,从主存读入的块替换出Cache原先存放的块原先存放的块,但很有可,但很有可 能很短一段时间后又要换入。能很短一段时间后又要换入。4.1、地址映象、地址映象直接映像直接映像0块块1块块15块块0块块1块块15块块2047块块Cache主存主存2)全相联映象)全相联映象 主存中任一块都可以映象主存中任一块都可以映象 到到

27、Cache中任一块上。中任一块上。(必须采用相联存储器必须采用相联存储器)块号块号块内地址块内地址块号块号块内地址块内地址主存地址主存地址Cache地址地址11位位9位位4位位9位位4.1、地址映象、地址映象全相联映像全相联映像块表块表主存块号主存块号0123Cache块号块号主存块号主存块号块内地址块内地址主存地址主存地址Cache块号块号块内地址块内地址比较比较命中命中未命中未命中访问内存访问内存块表块表访问访问Cache主存块号标记主存块号标记Cache块号块号Cache地址地址4.1、地址映象、地址映象全相联映像全相联映像查找速度比较慢,实现成本高,很难实现。必须采用相联存储器查找速度

28、比较慢,实现成本高,很难实现。必须采用相联存储器P153。主存块号主存块号块内地址块内地址主存地址主存地址Cache块号块号块内地址块内地址比较比较命中命中块表块表访问访问Cache01101001主存块号标记主存块号标记101Cache块号块号Cache地址地址例:例:设全相联映象下,访问主存进行读操作的块地址为:设全相联映象下,访问主存进行读操作的块地址为:01101001,块表如下,求访问时块表如下,求访问时Cache的块号。的块号。1014.1、地址映象、地址映象全相联映像全相联映像3)组相联映象(普遍采用)组相联映象(普遍采用)前两种映象的折中方案:前两种映象的折中方案:组与组之间直

29、接映象,组内全相联映象组与组之间直接映象,组内全相联映象。将将Cache分成分成u组,每组组,每组v块,将主存也分成块,将主存也分成U组,每组组,每组V块,块,u=V (主存中一个组内的块数主存中一个组内的块数=Cache中组数)中组数)主存块放到主存块放到Cache哪个组是固定的,但存放到该组哪个块是灵活的。哪个组是固定的,但存放到该组哪个块是灵活的。主存组号主存组号块号块号主存地址主存地址Cache地址地址7位位块内地址块内地址3位位Cache组号组号3位位块号块号块内地址块内地址1位位9位位Cache中每组分中每组分2块(块(1位):位):两路组相联映象两路组相联映象;Cache中每组分

30、中每组分4块(块(2位):位):四路组相联映象四路组相联映象;9位位4.1、地址映象、地址映象组相联映像组相联映像0块块1块块0块块1块块7块块0块块1块块7块块0块块1块块7块块0组组1组组255组组Cache主存主存0块块1块块0块块1块块0组组1组组7组组共分共分8组组主存分主存分256组,每组组,每组8块,块,Cache分分8组,每组组,每组2块。块。主存中主存中0、8、16映射于映射于Cache第第0组的第组的第0或或1块。块。两路组相联映象两路组相联映象共分共分256组组每组分每组分8块块4.1、地址映象、地址映象组相联映像组相联映像比较比较命中命中未命中未命中访问内存访问内存查找

31、块表查找块表访问访问Cache000001010011主存组号主存组号Cache组号组号主存组号主存组号主存地址主存地址Cache地址地址7位位3位位块号块号块内地址块内地址9位位Cache组号组号块号块号块内地址块内地址Cache块号块号3位位1位位9位位4.1、地址映象、地址映象组相联映像组相联映像比较比较命中命中查找块表查找块表访问访问Cache主存组号主存组号主存地址主存地址Cache地址地址7位位3位位块号块号块内地址块内地址9位位Cache组号组号块号块号块内地址块内地址3位位1位位9位位例:例:设一个设一个Cache中有中有8块,块表如下,访问主存进行读操作的地址为:块,块表如下

32、,访问主存进行读操作的地址为:010 1011 0010 0010 0110、求访问时、求访问时Cache的地址。的地址。00110 0010 01104.1、地址映象、地址映象组相联映像组相联映像001主存组号标记主存组号标记010 1011Cache组号组号1Cache块号块号第四章第四章 存储系统存储系统4、高速缓冲存储器(、高速缓冲存储器(Cache)4.1、地址映象、地址映象 4.2、替换算法、替换算法 4.3、多层次的、多层次的Cache辅助存储器辅助存储器Cache 的全部功能都是的全部功能都是由硬件完成的,由硬件完成的,对程序员来说是透明的。对程序员来说是透明的。有了有了Cac

33、he使使CPU的工作效率大大提高。但是当未命中而将新的主存块的工作效率大大提高。但是当未命中而将新的主存块调入调入Cache中而它的可用位置又已被占满时,就产生替换算法问题。中而它的可用位置又已被占满时,就产生替换算法问题。替换算法目的:替换算法目的:获得最高命中率获得最高命中率,使,使CPU访问的块尽可能都在访问的块尽可能都在Cache中。中。1)先进先出算法)先进先出算法 FIFO 按调入按调入Cache的先后决定淘汰的顺序,淘汰的先后决定淘汰的顺序,淘汰最先调入最先调入Cache的块的块。这种方法:这种方法:实现容易,系统开销少,但不一定合理,因为有些最先调实现容易,系统开销少,但不一定

34、合理,因为有些最先调入的块可能正在使用。入的块可能正在使用。2)最近最少使用算法)最近最少使用算法 LRU 为为Cache各块建立一个各块建立一个LRU目录,记录其调用情况,当需要替换时将目录,记录其调用情况,当需要替换时将 在在最近一段时间内使用最少的块最近一段时间内使用最少的块替换出去。替换出去。这种方法:这种方法:命中率高,但算法复杂,系统开销大。命中率高,但算法复杂,系统开销大。4.2、替换算法、替换算法LRU替换算法替换算法的平均命中率的平均命中率高于高于FIFO替换算法替换算法的平均命中率。的平均命中率。应为应为LRU替换算法替换算法反映了反映了程序的局部性程序的局部性特点。特点。

35、例:例:设一个容量为设一个容量为4个块的全相联个块的全相联Cache,分别采用,分别采用FIFO和和LRU替换算替换算 法,假定访问的主存地址块序列为法,假定访问的主存地址块序列为2、11、2、9、7、6、4、3,画出每次访问后画出每次访问后Cache中的内容变化情况。中的内容变化情况。解:解:FIFO先进先出替换算法先进先出替换算法主存地址块号:主存地址块号:2 11 2 9 7 6 4 3Cache块块分配情况:分配情况:操作状态操作状态 调入调入 调入调入 命中命中 调入调入 调入调入 替换替换 替换替换 替换替换211221121192119761197649764374.2、替换算法

36、、替换算法例:例:设一个容量为设一个容量为4个块的全相联个块的全相联Cache,分别采用,分别采用FIFO和和LRU替换算替换算 法,假定访问的主存地址块序列为法,假定访问的主存地址块序列为2、11、2、9、7、6、4、3,画出每次访问后画出每次访问后Cache中的内容变化情况。中的内容变化情况。解:解:LRU最近最少使用替换算法最近最少使用替换算法主存地址块号主存地址块号2 11 2 9 7 6 4 3Cache块块分配情况:分配情况:操作状态操作状态 调入调入 调入调入 命中命中 调入调入 调入调入 替换替换 替换替换 替换替换4.2、替换算法、替换算法211221121192119726

37、9746974637第四章第四章 存储系统存储系统4、高速缓冲存储器(、高速缓冲存储器(Cache)4.1、地址映象、地址映象 4.2、替换算法、替换算法 4.3、多层次的、多层次的Cache辅助存储器辅助存储器Cache 的全部功能都是的全部功能都是由硬件完成的,由硬件完成的,对程序员来说是透明的。对程序员来说是透明的。1)、指令)、指令Cache和数据和数据Cache 随着计算机技术的发展和处理速度的加快,存取数据的操作经常会随着计算机技术的发展和处理速度的加快,存取数据的操作经常会 与取指令的操作发生冲突,从而延迟了指令的读取。与取指令的操作发生冲突,从而延迟了指令的读取。发展的趋势是将

38、指令发展的趋势是将指令Cache和数据和数据Cache分开而成为分开而成为两个相互独立两个相互独立 的的Cache。2)、)、多层次多层次Cache结构结构 片内片内Cache的容量受芯片集成度的限制,容量小,命中率低。的容量受芯片集成度的限制,容量小,命中率低。于是推出了于是推出了二级二级Cache方案方案:一级一级Cache(L1)在在CPU芯芯片内片内,容量小,速度快;,容量小,速度快;二级二级Cache(L2)在在CPU芯芯片外片外,容量大,容量大,SRAM存储器。存储器。两级两级Cache之间一般有专用总线相连。之间一般有专用总线相连。4.3、多层次的、多层次的Cache3)、)、C

39、ache的一致性问题的一致性问题 CPU对对Cache的写入更改了的写入更改了Cache的内容,可选用写操作策略使的内容,可选用写操作策略使 Cache内容与主存内容保持一致。常用的写操作策略:内容与主存内容保持一致。常用的写操作策略:(1)写回法)写回法 当当CPU写写Cache命中时,只修改命中时,只修改Cache的内容,而不立即写入主的内容,而不立即写入主 存;只有当此块被存;只有当此块被换出时才写回主存换出时才写回主存。减少了访问主存的次数,。减少了访问主存的次数,但存在不一致性的隐患。但存在不一致性的隐患。(2)写直达法写直达法 当当CPU写写Cache命中时,命中时,同时修改同时修

40、改Cache与主存与主存的内容,维护了的内容,维护了 一致性。当一致性。当CPU写写Cache未命中时,直接修改内存的内容。但是未命中时,直接修改内存的内容。但是 降低了降低了Cache的功效。的功效。(3)写一次法)写一次法 基于以上两种方法,基于以上两种方法,第一次写命中时使用写直达法第一次写命中时使用写直达法(同时修改(同时修改 Cache与主存的内容),与主存的内容),以后命中和未命中使用写回法以后命中和未命中使用写回法(只修改(只修改 Cache的内容)的内容)4.3、多层次的、多层次的Cache奔腾奔腾PC机采用两级机采用两级Cache结构结构:安装在主板上的安装在主板上的2级级C

41、ache(L2)和集成在和集成在CPU内的内的1级级Cache(L1)都采用都采用2路组相联映射方式路组相联映射方式。CPU中的中的L1分设分设指令指令Cache和和数据数据Cache。2级级Cache采用的是写回法,采用的是写回法,1级数据级数据Cache采用的是写一次法。采用的是写一次法。为了维护为了维护Cache的一致性,的一致性,L1和和L2均采用均采用MESI协议。协议。2级级Cache的内容是的内容是主存的子集主存的子集,而,而1级级Cache又是又是2级级Cache的子集的子集。4.3、多层次的、多层次的Cache奔腾奔腾PC机的机的Cache考研试题精选:考研试题精选:设某机主

42、存容量为设某机主存容量为16MB,按字节寻址按字节寻址。Cache容量为容量为16KB。每块。每块8个字,个字,每个字每个字32位。设计一个四路组相联映射(位。设计一个四路组相联映射(Cache每组每组4块)的块)的Cache,要求:要求:1)画出主存地址字段中各段的位数。)画出主存地址字段中各段的位数。解解1)按字节寻址(一个存储单元一字节),所以计算一块内有多少字节:按字节寻址(一个存储单元一字节),所以计算一块内有多少字节:每块每块8个字,每字个字,每字32位(位(4B),每块),每块32B(25B),所以),所以块内地址块内地址5位。位。Cache容量容量16KB=214B,每块每块2

43、5B 每组每组4块块=4*25B=27B Cache组数组数=总容量总容量/组容量组容量=214B/27B=27,Cache组数组数=内存块数,所以内存块数,所以内存块地址内存块地址7位位。内存容量内存容量16MB,所以内存地址总位数,所以内存地址总位数 24 位,所以位,所以内存组地址内存组地址 12位位。解解 2)每块每块8个字,个字,0(未命中未命中),调入),调入1块(块(0-7字),字),1-7命中,命中,8(未命中未命中),调入),调入1块(块(8-15字),字),9-15命中,命中,16(未命中未命中),调入),调入1块(块(16-23字),字),17-23命中,命中,24(未命

44、中未命中),调入),调入1块(块(24-31字),字),25-31命中,命中,32(未命中未命中),调入),调入1块(块(32-39字),字),33-39命中,命中,40(未命中未命中),调入),调入1块(块(40-47字),字),41-47命中,命中,48(未命中未命中),调入),调入1块(块(48-55字),字),49-55命中,命中,56(未命中未命中),调入),调入1块(块(56-63字),字),57-63命中,命中,64(未命中未命中),调入),调入1块(块(64-71字),字),65-71命中,命中,72(未命中未命中),调入),调入1块(块(72-79字),字),73-79命中,

45、命中,80(未命中未命中),调入),调入1块(块(80-87字),字),81-87命中,命中,88(未命中未命中),调入),调入1块(块(88-95字),字),89-95命中,命中,96(未命中未命中),调入),调入1块(块(96-103字),字),97-103命中,命中,100次中命中次中命中87次,后次,后700次全命中,次全命中,命中率命中率=787/800 =98.375%考研试题精选:考研试题精选:设某机主存容量为设某机主存容量为16MB,按字节寻址按字节寻址。Cache容量为容量为16KB。每块。每块8个字,个字,每个字每个字32位。设计一个四路组相联映射(位。设计一个四路组相联映

46、射(Cache每组每组4块)的块)的Cache,要求:要求:2)设)设Cache的初态为空,的初态为空,CPU依次从主存第依次从主存第0,1,2,99号单元读出号单元读出100个字,个字,并按此次序重复并按此次序重复8次,问命中率是多少?次,问命中率是多少?解解3)设设Cache存取周期为存取周期为t,则主存存取周期为,则主存存取周期为 6t,没有没有Cache的访问时间:的访问时间:6t*800=4800 t 有有Cache的访问时间:的访问时间:6t*13+t*787=865 t 没有没有Cache是有是有Cache访问时间的访问时间的 4800/865=5.5 倍倍 即,有即,有Cach

47、e是没有是没有Cache访问速度的访问速度的5.5倍。提高了倍。提高了4.5倍。倍。考研试题精选:考研试题精选:设某机主存容量为设某机主存容量为16MB,按字节寻址按字节寻址。Cache容量为容量为16KB。每块。每块8个字,个字,每个字每个字32位。设计一个四路组相联映射(位。设计一个四路组相联映射(Cache每组每组4块)的块)的Cache,要求:要求:3)若)若Cache的速度是主存速度的的速度是主存速度的6倍,试问有倍,试问有Cache和无和无Cache相比,相比,速度提高了多少倍?速度提高了多少倍?复习与作业复习与作业复习章节:复习章节:第第4章章 存储器存储器4.3 高速缓冲存储器高速缓冲存储器 作业:作业:P152 24 25 26 27 28 29 30 31 32 33

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁