计算机系统机构第四优秀课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《计算机系统机构第四优秀课件.ppt》由会员分享,可在线阅读,更多相关《计算机系统机构第四优秀课件.ppt(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机系统机构第四第1页,本讲稿共95页Cache块位置012ncb-1主存块012nmb-12ncb-1块2ncb+02ncb+122ncb-1块块22ncb+032ncb-10区1区2区2nmbncb-1区图 4.35 直接映象规则第2页,本讲稿共95页 2)变换变换过程过程主存块号块内地址主存地址 nmnmbnmr ncbncrCache地址 nc2ncb项 相联比较不等 块失效区号012ncb-1相等访Cache 区号(按地址访问存贮器)由2ncb 中 选 1图 4.36 直接映象的 地址变换过程第3页,本讲稿共95页 3)优缺点优缺点 优点:优点:a)所需硬件简单,只需要容量较小的按
2、地址访问所需硬件简单,只需要容量较小的按地址访问 的区号标志表存贮器和少量外比较电路,因此的区号标志表存贮器和少量外比较电路,因此 成本低。成本低。b)访问访问Cache与访问区号表、比较区号是否相符与访问区号表、比较区号是否相符 的操作是同时进行的。当的操作是同时进行的。当Cache命中时就意味着命中时就意味着 省去了地址变换所花费的时间。省去了地址变换所花费的时间。第4页,本讲稿共95页 缺点缺点:直接映象法最致命的缺点就是:直接映象法最致命的缺点就是Cache的块的块冲突率很高。只要有两个或两个以上经常使用的块冲突率很高。只要有两个或两个以上经常使用的块恰好被映象到恰好被映象到Cache
3、的同一个块位置时,就会使得的同一个块位置时,就会使得Cache的命中率急剧下降。而且,即使此时的命中率急剧下降。而且,即使此时Cache中有大量的空闲块存在,仍然会发生块失效和块冲中有大量的空闲块存在,仍然会发生块失效和块冲突,无法使用突,无法使用Cache中的空闲块,所以,中的空闲块,所以,Cache的的利用率很低。正是因为这个原因才使得目前采用直利用率很低。正是因为这个原因才使得目前采用直接映象的接映象的Cache存贮器很少了。存贮器很少了。第5页,本讲稿共95页3.组相联映象及其变换组相联映象及其变换 1)思想:简要说明如下图思想:简要说明如下图4.37所示,将所示,将Cache空间和主
4、空间和主存空间都分组,每组存空间都分组,每组S块块(S2s)。Cache一共一共2ncb个块,个块,分成分成Q组组(Q=2q),整个,整个Cache是一区。主存分成与是一区。主存分成与Cache一一样大小的样大小的2nd个区,其地址按区号、组号、组内块号、块内个区,其地址按区号、组号、组内块号、块内地址分成对应的地址分成对应的4个字段。主存地址的组号、组内块号分个字段。主存地址的组号、组内块号分别用别用q、s 字段表示,它们的宽度和位置与字段表示,它们的宽度和位置与Cache地址的地址的q、s是一致的。是一致的。第6页,本讲稿共95页2)规则:组相联映象指的是各组之间直接映象,但组规则:组相联
5、映象指的是各组之间直接映象,但组内各块间则是全相联映象。如图内各块间则是全相联映象。如图4.37所示。所示。第7页,本讲稿共95页组号 q组内块号 s块内地址 ncr组号 q组内块号 s块内地址 nmr区号 nd1位1位2位2位1位ncbnmbncnm块位置0 块01122334455667789101112131415012301230123012301230123第0组第0组第1组第1组第0组第1组 第0区(Cache容量)第1区(Cache容量)Cache主存 组内全相联 组间直接相联图4.37 组相联映象规则 第8页,本讲稿共95页 3)讨论讨论 当组相联映象的当组相联映象的S值大到等
6、于值大到等于Cache的块数的块数(即即s=ncb)时就变成了全相联映象,而当时就变成了全相联映象,而当S值小到只有值小到只有1块块(即无即无s字段字段)时就变成了直接映象。因此全相联映象和直接映时就变成了直接映象。因此全相联映象和直接映象只是组相联映象的两个极端。在象只是组相联映象的两个极端。在Cache空间大小及空间大小及块的大小都已经确定的情况下,块的大小都已经确定的情况下,Cache的总块数就定的总块数就定了,但结构设计者仍可以对了,但结构设计者仍可以对S和和Q值进行选择。值进行选择。Q和和S的选取主要依据对块冲突概率、块失效率、映象表复的选取主要依据对块冲突概率、块失效率、映象表复杂
7、性和成本、查表速度等的折衷权衡。组内块数杂性和成本、查表速度等的折衷权衡。组内块数S愈愈多,块冲突概率和块失效率愈低,映象表愈复杂、成多,块冲突概率和块失效率愈低,映象表愈复杂、成本愈高,查表速度愈慢。所以通常采用在典型工作负本愈高,查表速度愈慢。所以通常采用在典型工作负荷下进行模拟而定。荷下进行模拟而定。第9页,本讲稿共95页 4)地址变换地址变换组号 q组内块号 s块内地址 nmr区号 nd组号 q组内块号 s块内地址 ncrnmnc直接直接相联比较不等块失效相等相联比较ndssnd s表的总容量为表的总容量为2ncb 2q2s行行2q组中选 12s行第10页,本讲稿共95页4.段相联映象
8、段相联映象 在全相联、直接相联、组相联映象的基础上还可在全相联、直接相联、组相联映象的基础上还可以有各种变形,段相联就是一例。段相联实质上是以有各种变形,段相联就是一例。段相联实质上是组相联的特例。他是采用组间全相联、组内直接映组相联的特例。他是采用组间全相联、组内直接映象。为了与组相联加以区别,将这种映象方式称为象。为了与组相联加以区别,将这种映象方式称为段相联。就是说,段相联映象是把主存和段相联。就是说,段相联映象是把主存和Cache分分成具有相同的成具有相同的Z块的若干段,段与段之间采用全相块的若干段,段与段之间采用全相联映象,而段内各块之间采用直接映象。如图联映象,而段内各块之间采用直
9、接映象。如图4.42所示:所示:第11页,本讲稿共95页 块0块1块2Z1Cache主存 块0块1块2Z1 块0块1块2Z1 块0块1块2Z1 块0块1块2Z1段0段0(Z个段)段1段2nmb/Z1段2ncb/Z1图4.42 具有每段Z个块的断相联映象段间全相联 段内直接第12页,本讲稿共95页4.3.3替换算法的实现替换算法的实现 当访存发生当访存发生Cache块失效,需要把主存块按所采块失效,需要把主存块按所采用的映象规则装入用的映象规则装入Cache时,如果又出现时,如果又出现Cache块冲块冲突,就必须按某种策略选择将突,就必须按某种策略选择将Cache中的哪一块替中的哪一块替换出去。
10、换出去。Cache主存存贮层次的替换算法与虚主存存贮层次的替换算法与虚拟存贮器的没有什么不同,不外乎也是拟存贮器的没有什么不同,不外乎也是FIFO法或法或LRU法,其中法,其中LRULRU法最为常用。法最为常用。第13页,本讲稿共95页1.堆栈法堆栈法 1)思想思想 我们在我们在4.2.2中讲过,中讲过,LRU法是堆栈型替换算法,法是堆栈型替换算法,也讲了对于也讲了对于LRU算法,堆栈算法,堆栈St中由栈顶到栈底的各中由栈顶到栈底的各项(行)恒反映出到项(行)恒反映出到t时刻,实存中各页被访问过的时刻,实存中各页被访问过的近远次序,以及每访问一页,堆栈近远次序,以及每访问一页,堆栈St中各项的
11、变换中各项的变换过程。结果是此堆栈的栈顶恒存放近期最近访问过过程。结果是此堆栈的栈顶恒存放近期最近访问过的页的页号,而栈底恒存放近期最久没有方问过的的页的页号,而栈底恒存放近期最久没有方问过的页的页号,即准备被替换掉的页的页号。那么,我页的页号,即准备被替换掉的页的页号。那么,我们在们在Cache主存存贮层次中就可以按此思想实主存存贮层次中就可以按此思想实际组成一个硬件堆栈。际组成一个硬件堆栈。第14页,本讲稿共95页 2)过程过程(块号)(块号)(块号)(块号)(块号)2ncb个寄存器需重新排列的块号 都下推一行 被访问的块号(经相联比较找到)寄存器堆栈 压入ncb位近期最近访 问过的块近期
12、最久没有 访问过的块图 4.43 全相联映象LRU法经堆栈实现(需要有相联比较功能)第15页,本讲稿共95页 3)缺点:缺点:这种硬件堆栈既要求具有相联比较的功能,又要这种硬件堆栈既要求具有相联比较的功能,又要求能全下移、部分下移和从中间取出一项的功能,求能全下移、部分下移和从中间取出一项的功能,成本较高,因此只适用于组相联且组内块数较少的成本较高,因此只适用于组相联且组内块数较少的LRU替换场合。替换场合。4)变形变形 上述这种堆栈,各块被访问的先后次序由该项在上述这种堆栈,各块被访问的先后次序由该项在堆栈中距离栈底是近还是远来反映。为了避免堆栈堆栈中距离栈底是近还是远来反映。为了避免堆栈中
13、各行存放的内容经常同时进行下移,以便节省成中各行存放的内容经常同时进行下移,以便节省成本,我们采用另一种变形,即将存放块号的寄存器本,我们采用另一种变形,即将存放块号的寄存器的几何位置与的几何位置与Cache中的块号对应,而用寄存器存中的块号对应,而用寄存器存第16页,本讲稿共95页放值的大小来表示已被访问过的远近次序。以组相放值的大小来表示已被访问过的远近次序。以组相联为例,每一组均使用如图联为例,每一组均使用如图4.44那样的一个寄存器那样的一个寄存器组,由组,由2s个寄存器组成,每个寄存器为个寄存器组成,每个寄存器为s位宽,可以位宽,可以存放表示从存放表示从0到到2s1的次序值。如果让越
14、是最近访的次序值。如果让越是最近访问的,其次序值愈小,则只需通过相联比较求最大问的,其次序值愈小,则只需通过相联比较求最大值(不是相联比较相符),找到该最大值所在的寄值(不是相联比较相符),找到该最大值所在的寄存器号,这就是对应存器号,这就是对应Cache中应该被替换掉的块的中应该被替换掉的块的块号。块号。第17页,本讲稿共95页第0块的访问次序第1块的访问次序第2块的访问次序第2s-1块的访问次序块0块1块2块2s-1 2s个寄存器 S位(其中一组)Cache存贮器(其中一组)图 4.44 组相联LRU法经寄存器实现(每组一个,需要有相联比较功能)第18页,本讲稿共95页2.比较对法比较对法
15、 1)思路思路 比较法的基本思路是让各个块成对组合,用一个比较法的基本思路是让各个块成对组合,用一个触发器的状态来表示该比较对内两块访问的远近次触发器的状态来表示该比较对内两块访问的远近次序,再经门电路就可以找到序,再经门电路就可以找到LRU块。比如说有块。比如说有A BC三块,互相之间可以组合成三块,互相之间可以组合成AB BA AC CA BC CB6对,其中对,其中AB和和BA、AC和和CA、BC和和CB是重复是重复的,所以的,所以TAB为为“1”,表示,表示A比比B更近被访问过;更近被访问过;TAB为为“0”,则表示,则表示B比比A更近被访问过。更近被访问过。TAC、TBC也类也类似定
16、义。这样,当访问过的次序为似定义。这样,当访问过的次序为A B C,即最近,即最近第19页,本讲稿共95页访问过的为访问过的为A,最久未被访问过的为,最久未被访问过的为C,则这三个触,则这三个触发器状态分别为发器状态分别为TAB1,TAC1,TBC1。如果访。如果访问过的次序为问过的次序为B A C,C为最久未被访问过的块,则为最久未被访问过的块,则此时必有此时必有TAB0,TAC1,TBC1。因此最久未被。因此最久未被访问过的块访问过的块C作为被替换掉的块的话,用布尔代数作为被替换掉的块的话,用布尔代数式必有:式必有:CLRUTAB TACTBC+TAB TACTBC TACTBC同理可得:
17、同理可得:BLRUTABTBC ;ALRUTAB TAC因此,完全可以用门、触发器等硬件组合实现,如因此,完全可以用门、触发器等硬件组合实现,如图图4.45所示:所示:第20页,本讲稿共95页&010101TABTACTBC ALRU BLRU CLRU访问B访问C访问A图 4.15 用比较对法实现LRU算法第21页,本讲稿共95页 2)分析分析 我们来看比较对法所用的硬件量。由于每块均可我们来看比较对法所用的硬件量。由于每块均可能作为能作为LRU块,其信号需要用一个与门产生,例如块,其信号需要用一个与门产生,例如ALRU与门要有从与门要有从TAB TAC来的输入,来的输入,BLRU门要有从门
18、要有从TAB,TBC来的输入,而与每块有关的对数个数为块来的输入,而与每块有关的对数个数为块数减去数减去1,所以与门的扇入数是块数减去,所以与门的扇入数是块数减去1。若。若p为为块数,量量组合,比较对触发器的个数应为块数,量量组合,比较对触发器的个数应为Cp2,即,即为为p(p-1)/2。表。表4.2给出了比较对法块数给出了比较对法块数p的取值与门的取值与门数、门的输入端数及比较对触发器数的关系。数、门的输入端数及比较对触发器数的关系。第22页,本讲稿共95页3)总结总结 替换算法实现的设计要围绕下面两点来考虑:替换算法实现的设计要围绕下面两点来考虑:a)如何对每次访问进行记录(使用位法、堆栈
19、法和比较对如何对每次访问进行记录(使用位法、堆栈法和比较对法所用的记录方法都不同);法所用的记录方法都不同);b)如何根据所记录的信息来判定近期内哪一块最久没有被如何根据所记录的信息来判定近期内哪一块最久没有被访问过。由此可见,实现方法和所用的映象方法密切相访问过。由此可见,实现方法和所用的映象方法密切相关。关。例如,对于主存例如,对于主存辅存存贮层次的全相联映象辅存存贮层次的全相联映象宜于采用使用位法或类似的方法,而不宜采用堆栈宜于采用使用位法或类似的方法,而不宜采用堆栈法和比较对法;但对于法和比较对法;但对于Cache主存存贮层次的主存存贮层次的组相联映象,因为组内块数较少,就宜于采用比较
20、组相联映象,因为组内块数较少,就宜于采用比较第23页,本讲稿共95页对法或堆栈法。替换算法的设计和实现也和器件的对法或堆栈法。替换算法的设计和实现也和器件的发展密切相关,随着器件技术的发展,尤其是高速发展密切相关,随着器件技术的发展,尤其是高速相联存贮器片子的改进,已经而且必然会不断研制相联存贮器片子的改进,已经而且必然会不断研制出新的更好的实现方法。出新的更好的实现方法。第24页,本讲稿共95页4.3.4 Cache的透明性及性能分析的透明性及性能分析 1.Cache的透明性分析的透明性分析 1)两种问题的出现两种问题的出现 虽然虽然Cache是主存的一部分副本,主存中某单元的是主存的一部分
21、副本,主存中某单元的内容却可能在一段时间里会与内容却可能在一段时间里会与Cache中对应单元的内中对应单元的内容不一致。例如,容不一致。例如,CPU往往Cache写入,修改了写入,修改了Cache中某单元的内容,而在主存中对应于此单元的内容中某单元的内容,而在主存中对应于此单元的内容却可能仍是原来的,没有改变。这时,如果却可能仍是原来的,没有改变。这时,如果CPU或或I/O处理机及其他处理机要经主存交换信息,那么主处理机及其他处理机要经主存交换信息,那么主存内容跟不上存内容跟不上Cache对应内容变化的这种不一致就会对应内容变化的这种不一致就会造成错误。造成错误。第25页,本讲稿共95页 同样
22、,同样,I/O处理机或其他处理机已把新的内容送入处理机或其他处理机已把新的内容送入主存某个区域,而主存某个区域,而Cache中对应于此区域的副本内中对应于此区域的副本内容却仍可能是原来的。这时,如果容却仍可能是原来的。这时,如果CPU要从要从Cache中读取信息,也会因为这种中读取信息,也会因为这种Cache内容跟不上主存内容跟不上主存对应内容变化的不一致而造成错误。因此,必须采对应内容变化的不一致而造成错误。因此,必须采取措施解决好由于读写过程中产生的取措施解决好由于读写过程中产生的Cache和主存和主存对应内容不一致的问题。对应内容不一致的问题。第26页,本讲稿共95页 2)写回法写回法
23、写回法是在写回法是在CPU执行写操作时,只是把信息写入执行写操作时,只是把信息写入Cache,仅当需要被替换时,才将已经被写入过的,仅当需要被替换时,才将已经被写入过的Cache块先送回主存,然后再调入新块。这种方法块先送回主存,然后再调入新块。这种方法也称为抵触修改法,类似于虚拟存贮器中进行页面也称为抵触修改法,类似于虚拟存贮器中进行页面替换时的情况。因此,替换时的情况。因此,Cache主存存贮层次的主存存贮层次的地址映象表中需对地址映象表中需对Cache中的每个块设置一个中的每个块设置一个“修改修改位位”,作为该块装入,作为该块装入Cache后是否被修改过的标志。后是否被修改过的标志。这样
24、在块替换时,根据该块的修改位是否位这样在块替换时,根据该块的修改位是否位1,就可,就可以决定替换时是否先将该块存回主存原来的位置。以决定替换时是否先将该块存回主存原来的位置。第27页,本讲稿共95页 3)写直达法写直达法 写直达法也称为存直达法,它利用写直达法也称为存直达法,它利用Cache主主存存贮层次在处理机和主存之间的直接通路,每当存存贮层次在处理机和主存之间的直接通路,每当处理机写入处理机写入Cache的同时,也通过此通路直接写入的同时,也通过此通路直接写入主存。这样,在块替换时,就不必先写回主存,而主存。这样,在块替换时,就不必先写回主存,而可以立即调入新页。显然,写回法是把开销花在
25、每可以立即调入新页。显然,写回法是把开销花在每次需要替换的时候,而写直达法则把开销花在每次次需要替换的时候,而写直达法则把开销花在每次写入写入Cache时都附加一个比写时都附加一个比写Cache长的多的写主存长的多的写主存时间。时间。第28页,本讲稿共95页 4)写不命中处理写不命中处理 当出现写不命中时,无论是写回法还是写直达法当出现写不命中时,无论是写回法还是写直达法都有一个在写时是否取的问题。一种是不按写分配都有一个在写时是否取的问题。一种是不按写分配法,即当法,即当Cache写不命中时只写入主存,该写地址写不命中时只写入主存,该写地址单元所在块不从主存调进单元所在块不从主存调进Cach
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 机构 第四 优秀 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内