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