计算机组成原理第三章存储系统(四)课件.ppt
《计算机组成原理第三章存储系统(四)课件.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第三章存储系统(四)课件.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.5 Cache 3.5 Cache 存储器存储器3.5.1 Cache 3.5.1 Cache 基本原理基本原理一、一、Cache Cache的工作机制的工作机制 Cache Cache的工作机制基于的工作机制基于程序访问的局部性程序访问的局部性原则,即,一个运行程序的代码大都顺序存原则,即,一个运行程序的代码大都顺序存放在地址连续的存储器中,与程序相关的数放在地址连续的存储器中,与程序相关的数据在存储器中也相对集中。所以程序运行时,据在存储器中也相对集中。所以程序运行时,尤其有循环程序段和子程序段时,在较短时尤其有循环程序段和子程序段时,在较短时间区间内,常会对局部范围的存储器频繁访间区
2、间内,常会对局部范围的存储器频繁访问,而此范围之外的地址访问甚少。这种现问,而此范围之外的地址访问甚少。这种现象称为象称为程序访问的局部性程序访问的局部性。把局部范围的主存内容从主存放到一个把局部范围的主存内容从主存放到一个高速小容量存储器中,使高速小容量存储器中,使CPUCPU在这一段时间在这一段时间内直接访问它,以减少或不去访问慢速的内直接访问它,以减少或不去访问慢速的DRAM DRAM,程序运行速度将明显提高。,程序运行速度将明显提高。3.5 Cache 3.5 Cache 存储器存储器3.5.1 Cache 3.5.1 Cache 基本原理基本原理二、二、CacheCache存储器的构
3、成存储器的构成 了解了解cachecache的构成及工作原理必须首先了的构成及工作原理必须首先了解解“块块”的概念:(页,行)的概念:(页,行)Cache Cache存储器中,把存储器中,把cachecache和主存各分成若和主存各分成若干块(干块(blockblock,block frameblock frame)。)。主存与主存与cachecache中块的数目不同但块的大小相中块的数目不同但块的大小相等。等。块的大小通常以在主存的一个读块的大小通常以在主存的一个读/写周期中写周期中能访问的数据长度为限,常为几十字节。能访问的数据长度为限,常为几十字节。CacheCache存储器构成如下图所
4、示:存储器构成如下图所示:主主存存主主存存地地址址寄寄存存器器MARMAR主存主存cachecache地址变换地址变换机构机构CacheCache地址地址寄存器寄存器CARCARCacheCache存储器存储器替换控制部件替换控制部件C CP PU U不不命命中中命命中中单字宽单字宽多多字字宽宽地址总线地址总线数据总线数据总线CacheCache存储器构成图,虚框内为存储器构成图,虚框内为cachecache的控制部分的控制部分CacheCache存储器存储器=cache=cache存储器存储器+cache+cache控制器控制器三、三、CacheCache的命中率的命中率h=Nc/h=Nc/
5、(Nc+NmNc+Nm)教材教材P.106 P.106(3.43.4)其中,其中,NcNc表示在一个程序执行期间表示在一个程序执行期间cachecache完成存取的总次数,完成存取的总次数,Nm Nm表示在一个程序执行期间主存表示在一个程序执行期间主存完成存取的总次数,完成存取的总次数,h h即为即为命中率命中率。另外的与另外的与h h有关的两个公式有关的两个公式:设:设t tc c表示命中表示命中时的时的cachecache访问时间,访问时间,t tmm表示未命中时的表示未命中时的主存访问时间,主存访问时间,1-h1-h表示未命中率,则表示未命中率,则cache/cache/主存系统的平均访
6、问时间主存系统的平均访问时间t ta a为:为:t ta a=ht=htc c+(1-h1-h)t tm m (3.5)3.5)v再设再设r=tm/tcr=tm/tc表示主存慢于表示主存慢于cachecache的倍率,的倍率,e e表表示访问效率,示访问效率,则有:则有:e=tc/ta=tc/htc+e=tc/ta=tc/htc+(1-h1-h)tm=1/h+tm=1/h+(1-1-h h)r r v例(例(P.107P.107例例5 5):):CPUCPU执行一段程序时,执行一段程序时,cachecache完成存取的次数完成存取的次数19001900次,主存完成存取次,主存完成存取的次数为的
7、次数为100100次,已知次,已知cachecache的存取周期为的存取周期为50ns50ns,主存存取周期为,主存存取周期为250ns250ns,求,求cache/cache/主存主存系统的效率和平均访问时间。系统的效率和平均访问时间。v解:解:h=Nc/h=Nc/(Nc+NmNc+Nm)=1900/=1900/(1900+1001900+100)=0.=0.9595v r=tm/tc=250ns/50ns=5 r=tm/tc=250ns/50ns=5v e=1/r+(1-r)h=1/5+(1-5)X0.95=83.3%e=1/r+(1-r)h=1/5+(1-5)X0.95=83.3%v t
8、a=tc/e=50ns/0.833=60ns ta=tc/e=50ns/0.833=60nsv主存主存cachecache地址映射(地址映射(mappingmapping):把存放):把存放在主存中的程序按某种规则装入在主存中的程序按某种规则装入cachecache中,并中,并依此建立主存地址与依此建立主存地址与cachecache地址的对应关系。地址的对应关系。v主存主存cachecache地址变换:程序运行时,根据地地址变换:程序运行时,根据地址映射把主存地址即址映射把主存地址即MARMAR内容变换成内容变换成cachecache地地址即址即CARCAR内容。内容。v以上两个概念紧密相关而
9、又不同。以上两个概念紧密相关而又不同。v常用的三种地址映射方式及对应的地址变换常用的三种地址映射方式及对应的地址变换方法:方法:一、全相联映射及其地址变换一、全相联映射及其地址变换 1 1、全相联映射、全相联映射3.5.2 3.5.2 主存与主存与cachecache的地址映射(映象)和地的地址映射(映象)和地址变换址变换主存中任一个块能够映射到主存中任一个块能够映射到cachecache中任一块的位中任一块的位置(置(fully associative mappingfully associative mapping)。)。00 00块块000000块块主存主存例:设例:设cachecach
10、e块数块数Cb=4Cb=4,主存块数,主存块数Mb=8Mb=8,主存主存cachecache的全相联映射关系如下:的全相联映射关系如下:01 01块块 10 10块块 1 1 1 1块块001 001 块块010 010 块块011 011 块块 100100块块101 101 块块110 110 块块111 111 块块cachecache 2 2、全相联映射方式的地址变换、全相联映射方式的地址变换(1 1)全相联映射方式下的主存地址与)全相联映射方式下的主存地址与cachecache地地址形式址形式 主存地址主存地址主存块号主存块号+块内地址;块内地址;Cache Cache地址形式地址形
11、式cachecache块号块号+块内地址。块内地址。用用CAMCAM构成构成目录表目录表,该表由,该表由CbCb个字(等于个字(等于cachecache的块数)组成;的块数)组成;Cb Cb个字中,每一字由主存块号个字中,每一字由主存块号B B、cachecache块号块号b b构成构成(2 2)地址变换)地址变换 由由MARMAR内容即主存地址变换出内容即主存地址变换出CARCAR内容即内容即cachecache地址的过程如下:地址的过程如下:主主 存存 块块 号号 B B块内地址块内地址WWCacheCache块号块号b b块内地址块内地址ww主主 存存 块块 号号 B BCacheCac
12、he块号块号b bB Bb b相联相联比较比较命中命中不命中不命中访问主存访问主存MARMARCARCAR目录表:目录表:共共CbCb个字个字全相联映射的地址变换过程全相联映射的地址变换过程用用CAMCAM构成构成v3 3、全相联映射的特点、全相联映射的特点v(1 1)块的冲突率最小,)块的冲突率最小,cachecache利用率高;利用率高;v(2 2)代价较高()代价较高(CAMCAM),相联比较的),相联比较的时间较长,影响时间较长,影响cachecache的速度。小容量适的速度。小容量适用。用。v二、直接映射及地址变换二、直接映射及地址变换v1 1、直接映射、直接映射v首先将主存首先将主
13、存按按cachecache的大小分区的大小分区,然后各,然后各个区仍与个区仍与cachecache一样分成块:各区内的块一样分成块:各区内的块数、块长均同数、块长均同cachecache。v映射的规则是:主存各区中相同序号的映射的规则是:主存各区中相同序号的块只能映射到块只能映射到cachecache中相应序号的块中。中相应序号的块中。0000块块主存主存cachecacheMARMAR内容即主存地址形式为:内容即主存地址形式为:区号区号E+E+块号块号B+B+块内地址块内地址WWCARCAR内容即内容即cachecache地址仍是:地址仍是:块号块号b+b+块内地址块内地址ww0101块块1
14、010块块11 11 块块0 00000块块0 001 01 块块0 010 10 块块0 011 11 块块1 100 00 块块1 101 01 块块1 1 10 10 块块1 111 11 块块0 0区区1 1区区直接映射(直接映射(direct mappingdirect mapping)2 2、直接直接映射的地址变换映射的地址变换块号块号B B区号区号E EMARMAR块号块号b b块内地址块内地址wwCARCAR选择信号选择信号送送CPUCPU相等相等不等不等访问主存访问主存区号区号E E数据数据D0D0数据数据D1D1数据数据Dw-1Dw-1E ED0D0D1D1Dw-1Dw-1
15、cachecache块内地址块内地址WW比较比较1/w1/w多路选择器多路选择器3 3、直接映射的特点:、直接映射的特点:(1 1)硬件实现简单,访问速度较快;)硬件实现简单,访问速度较快;(2 2)CacheCache的空间利用率低,常有块冲突,命的空间利用率低,常有块冲突,命中率也低。中率也低。三、组相联映射及其地址变换三、组相联映射及其地址变换1 1、组相联映射(、组相联映射(set associative mappingset associative mapping)v主存先按主存先按cachecache大小分成若干个区;大小分成若干个区;主存与主存与cachecache的各区内再分成
16、大小相等的组的各区内再分成大小相等的组;各组再;各组再分成大小相等的块。分成大小相等的块。v组间采用直接映射组间采用直接映射:主存不同区中同序号的:主存不同区中同序号的组只能映射到组只能映射到cachecache中同序号的组。中同序号的组。v组内各块采用全相联映射组内各块采用全相联映射:一个组内各个块:一个组内各个块可映射到可映射到cachecache中对应组中的任一块的位置。中对应组中的任一块的位置。v组相联映射的地址形式组相联映射的地址形式vMARMAR内容即主存地址形式:区号内容即主存地址形式:区号E+E+组号组号G+G+组内块号组内块号B+B+块内地址块内地址WWvCARCAR内容即内
17、容即cachecache地址形式:组号地址形式:组号g+g+组内块号组内块号b+b+块内地址块内地址wwv用用CAMCAM构成构成“块表块表”,CacheCache中有几组就有中有几组就有几个块表,每个块表中的行数等于每组中块几个块表,每个块表中的行数等于每组中块的个数。的个数。v组相联映射图:组相联映射图:0 00 0块块0 01 1块块 1 11 1 块块1 11 11 1 块块1 11 10 0块块1 10 01 1块块1 10 00 0块块0 01 11 1 块块0 01 10 0块块0 00 01 1块块0 00 00 0块块1 10 0块块0 0组组1 1组组0 0组组1 1组组0
18、 0区区1 1区区1 1组组0 0组组组相联映射图组相联映射图cachecache主存主存2 2、组相联映射的地址变换:、组相联映射的地址变换:区号区号E E组号组号G G组内块号组内块号B B块内地址块内地址WWMARMAR组号组号g g组内块号组内块号b b块内地址块内地址wwCARCAR相联相联比较比较相等相等不命中不命中访问主存访问主存(命中)(命中)区号区号E E 组内块号组内块号B B组内块号组内块号b b块表:块表:每组每组一个,行数一个,行数等于组内分等于组内分块时块的个块时块的个数。每行记数。每行记录了主存某录了主存某块送入块送入cachecache时原在主存时原在主存的区号
19、、组的区号、组内块号及放内块号及放入入cachecache中的中的组内块号。组内块号。块表块表用用CAMCAM构成构成作业:作业:请比较全相联与组相联地址变换中的请比较全相联与组相联地址变换中的目录表目录表与与块表块表主主 存存 块块 号号 B B块内地址块内地址WWCacheCache块号块号b b块内地址块内地址ww主主 存存 块块 号号 B BCacheCache块号块号b bB Bb b相联相联比较比较命中命中不命中不命中访问主存访问主存MARMARCARCAR目录表:目录表:共共CbCb个字个字全相联映射的地址变换过程全相联映射的地址变换过程用用CAMCAM构成构成直接直接映射的地址
20、变换映射的地址变换块号块号B B区号区号E EMARMAR块号块号b b块内地址块内地址wwCARCAR选择信号选择信号送送CPUCPU相等相等不等不等访问主存访问主存区号区号E E数据数据D0D0数据数据D1D1数据数据Dw-1Dw-1E ED0D0D1D1Dw-1Dw-1cachecache块内地址块内地址WW比较比较1/w1/w多路选择器多路选择器v3 3、组相联映射的特点:、组相联映射的特点:v避免了全相联方式分配页面(块)时的大量避免了全相联方式分配页面(块)时的大量计算,也减少了直接映射方式下块的冲突。计算,也减少了直接映射方式下块的冲突。提高了存储体系的效率,因此使用广泛。提高了
21、存储体系的效率,因此使用广泛。v关于关于“N“N路组相联路组相联”的概念。的概念。v例:一台计算机的主存容量为例:一台计算机的主存容量为1MB1MB,字长,字长3232位,直接映射的位,直接映射的CacheCache容量为容量为512512字。试设计字。试设计主存地址格式(设该机为字节寻址方式)。主存地址格式(设该机为字节寻址方式)。v(1 1)Cache Cache块长为块长为1 1字;字;v(2 2)Cache Cache块长为块长为8 8字。字。v解答:主存地址位数为解答:主存地址位数为2020位,位,CacheCache地址位地址位数为数为11 11位。位。v主存按主存按CacheCa
22、che大小分区。其中分区个数:大小分区。其中分区个数:v1MB/5121MB/512字字=1MB/2KB=2=1MB/2KB=29 9个分区个分区区号区号区内块号区内块号块内地址块内地址直接映射方式下主存的地址格式为:直接映射方式下主存的地址格式为:CacheCache的地址格式为:的地址格式为:块号块号块内地址块内地址由上可知区号始终为由上可知区号始终为9 9位;位;19 019 010 010 019 1119 11(1 1)CacheCache块长为块长为1 1字,每区有字,每区有512512块,块号块,块号9 9位;位;1 01 0(2 2)CacheCache块长为块长为8 8字,每
23、区有字,每区有6464块,块号块,块号6 6位;位;10 210 21 01 010 510 5 4 04 010 510 5 4 04 0区号区号区内块号区内块号块内字地址块内字地址 字节地址字节地址10 210 2v3.5.3 3.5.3 替换策略替换策略v替换:主存替换:主存cachecache地址变换中一旦发生不命地址变换中一旦发生不命中,即需将主存中一个新的块调入中,即需将主存中一个新的块调入cachecache;而;而一般情况此时一般情况此时cachecache中相应位置的块中已经装中相应位置的块中已经装满数据,需找出一个不常用的块将其放入主满数据,需找出一个不常用的块将其放入主存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 第三 存储系统 课件
限制150内