计算机体系结构期末复习-存储系统

3 存储系统

文章目录

      • 3 存储系统
        • 3.1知识点
        • 3.2大题
        • (完)

3.1知识点

现在计算机系统以存储器为中心。我们希望拥有无限大的内存容量,以访问到所有特定的机器字。因此我们不单谈存储器,而是研究存储器系统,通过构建分层结构的存储器(每层容量比前一层大,但速度层层递减),达到我们的目的。本章主要介绍两种存储系统:cache和主存构成的cache存储系统(对系统程序员以上均透明),主存和磁盘存储器构成的虚拟存储系统(对应用程序员透明)。考试重点如下:
计算机体系结构期末复习-存储系统_第1张图片

  1. 存储器系统的评价指标,命中率H。命中率的定义:在M1中访问到的概率 H = N 1 N 1 + N 2 H=\frac{N1}{N1+N2} H=N1+N2N1 N 1 N1 N1为对M1的访问次数。则访问周期为 T = H ∗ T 1 + ( 1 − H ) ∗ T 2 T=H*T1+(1-H)*T2 T=HT1+(1H)T2,访问效率为 e = T 1 T e=\frac{T1}{T} e=TT1。我们可以利用数据的局部性原理,采用预取技术提高命中率,即不命中时把M2存储器中相邻多个单元组成的数据块送入M1存储器中。此时命中率更新为 H ′ = H + n − 1 n H^{'}=\frac{H+n-1}{n} H=nH+n1, n n n为数据块大小与数据重复使用次数的乘积。

  2. 存储器系统的层次结构。这个根据图片记忆一下。对应英文如下:①Register Files②Buffers(Lookahead)③Cache④Main Memory⑤Online Storage⑥Off-line Storage

    1. 计算机体系结构期末复习-存储系统_第2张图片
  3. 引入交叉访问存储器方式。避免过多的存储器访问冲突,让存储系统保持频带平衡(吞吐率够大,即一次取数据又快又多)。高位交叉存储器,目的:扩大存储器容量,实现:用地址码的高位部分区分存储体号。低位交叉访问存储器,目的:提高存储器访问速度,实现:用地址码的低位部分区分存储体号。看下面的图很清楚了,因为 19 m o d 8 = 3 19 mod8=3 19mod8=3,所以体数是8的情况下,体号是3,体内地址自然是2。低位交叉访问的方式自然可以引入并行存储器( n n n个存储体并行)的架构,但存在访问冲突,令 N N N为并行存储器的加速比,即每存储周期能访问到平均有效字的个数, g g g为读出的是转移指令且转移成功的概率。有公式 N = 1 − ( 1 − g ) n g N=\frac{1-(1-g)^{n}}{g} N=g1(1g)n。最后,最新的技术是可按错位存储进行无冲突访问,以增加加速比N,但实现较复杂。

    1. 计算机体系结构期末复习-存储系统_第3张图片
  4. 虚拟存储系统的构成和工作原理。构成,实页和虚页。工作原理和地址转换如下图所示,这图摘自计组课件,处理器提供虚地址,虚实地址转换以重定位的方式可以简化程序加载并加载到任意位置,.使多道程序访问主存具有安全、隔离性,也有助于构建大内存,图片上不只是找地址(虚实地址),还有后续访存的内容。CPU寄存器内部的通常是虚页地址VA,虚拟存储进行内部地址变换将VA(用户号U,虚页号P,页内偏移D)变为主存地址PA(实页号p,页内偏移d)。具体操作通过页表与快表TLB进行,TLB缺失?则PA在内存中;页表缺失?则PA在磁盘上,然后系统中断将PA的块复制到内存中。这样实页地址get到了!第二阶段,将实页地址喂给cache。cache缺失?则数据在主存中,写回或写直达cache。构成完整流程。其中,三种地址空间为,虚拟地址空间,主存地址空间,辅存地址空间,地址映射就是将虚拟地址空间映射到主存地址空间;三种虚拟存储器为,页式虚拟存储器,段式虚拟存储器,段页式虚拟存储器

    1. 计算机体系结构期末复习-存储系统_第4张图片
  5. 虚拟存储系统的地址转换。对于段氏虚拟存储器的地址变换,用段表基址寄存器和用户号U对应的As段表实现,见图1,图很明白。这种方式优点是模块化性能好,便于程序和数据共享,缺点是地址变换做两次加法花费时间长,主存利用率低。对于页氏虚拟存储器的地址变换,用页表基址和用户号U对应的Pa页表实现,见图2.优点是页表简单,主存利用率高。缺点是模块化性能不好,页表很长占用很大空间,需采用分级页表解决。对于段氏虚拟存储器的地址变换,用户按段写程序,每段分成几个固定大小的页,用用户号U对应的段表基址寄存器和段表(页表个数和页表起始地址)找到页表,再用虚页号找到页表对应的表项实现。最后是外部地址变换,如果页表缺页,要去磁盘上找页。因此每个程序都有外页表,它在磁盘上。

    1. 计算机体系结构期末复习-存储系统_第5张图片
    2. 计算机体系结构期末复习-存储系统_第6张图片
    3. 计算机体系结构期末复习-存储系统_第7张图片
  6. 页面替换算法。FIFO,最久没有使用算法LRU(选wait_time=max的丢弃),近期最少使用算法LFU(counter最小的丢弃),OPT算法。大题常考察页面替换表。 列表项是随时间的虚页地址流,行表项是实页号,详见作业。我们引入堆栈型替换算法,定义是若分配给程序的主存页面数增加,主存命中率也提高,至少不下降,LFU、LRU、OPT都是堆栈型算法,FIFO不是。另外,页面大小Sp也影响主存命中率H,过大的(页面数少替换频繁)过小的(页面小不易命中)Sp都会降低命中率。H随着主存容量S单效上升,但当S增大到某个值,几乎不再上升。同时,页面调度方式,如预取式,也影响主存命中率。

  7. cache的构成,地址映像。地址映像,建立主存地址PA和cache地址的关系(即前文提到的访存以找到数据块的环节,在cache中查找PA对应的物理块地址,若无再去主存找)。分类有全相联映像主存的任意一块可以映像到Cache中的任意一块,这时PA分为块号B和块内地址,若查找,需要遍历cache表全部的主存块号B看能否找到对应的PA块号的B,若找到则cache命中,得到cache地址(块号b和块内地址)取数据块,如图1。直接映像主存一块只能映射到cache的一个特定块中,cache地址与主存地址的低位同,即公式 b = B m o d C b b=BmodC_{b} b=BmodCb,这时PA分为区号E块号B和块内地址,若查找,只需根据PA算出主存的块号B得到对应的区表索引,看区表表项内容和PA中的区号E是否相符,有效位是否为1,若是则cache命中,得到cache地址(块号b和块内地址)取数据块,如图2。优点,简单速度快,缺点,块冲突率高。组相联映像主存和cache按同样大小划分为组(主存组多),组与组之间直接映像,组内全相联映像。地址变换为,PA分为区号E,组号G,组内块号B,块内地址。组号 m o d mod mod后用来定组b,区号和组内块号在对应的组遍历全部块表内组内元素,看表项内容(E,B)与PA中的(E,B)是否符合。若是则cache命中,得到cache地址(组号g,块号b和块内地址)取数据块,如图3。这三种方法若想提高cache访问速度,,可用多个相等比较器代替相联访问位选择组相联映像cache分组,主存按cache的组容量分区。以使组与组之间全相联映像,组内直接映像。这种方式PA无组号,只有区号,主存分区,cache分组。因此看表项内容区号E与PA中的E是否符合,这里就不放图片了。段相联映像主存和cache都按同样大小分段,段与段之间全相联,段内之间映像。主存和cache都分段,这时找段表的段号E和PA的E是否同,若同则cache命中。得到cache段号s,然后和主存地址的段内块号拼接得到cache地址访问块。优点,简单,缺点,段失效时损失较大。

    1. 计算机体系结构期末复习-存储系统_第8张图片
    2. 计算机体系结构期末复习-存储系统_第9张图片
    3. 计算机体系结构期末复习-存储系统_第10张图片
  8. cache的替换算法。主要用于组相联、段相联等(直接相联无需替换,全相联不讨论)。①轮换法,法一:每块一个计数器,在块表中增加替换计数器字段wait_time,替换规则类似LRU,选wait_time最大的替换;法二:每组一个计数器。优点,简单,缺点,没有利用程序的局部性原理。②LRU算法,也是每块一个计数器,在①基础上增加命中清0,若同组其他计数器的值小于命中块计数器原来值则加1的情况。优点,利用了程序的局部性原理,缺点,控制复杂。③堆栈法,把本次访问的块号与堆栈中所有块号进行相联比较,若相等则cache命中,然后将命中块从栈抽出来重新压到栈顶。没有相等则cache块失效,也把块号从栈顶压入,栈底的块就是被替换的块,这是LRU的另一种变体算法。缺点,速度慢,优点实现简单。

  9. cache系统的评价指标,命中率 H H H,加速比 S p = T m T S_{p}=\frac{T_{m}}{T} Sp=TTm S p m a x = T m T c S_{pmax}=\frac{T_{m}}{T_c} Spmax=TcTm T m 为 主 存 的 访 问 周 期 , T 为 c a c h e 的 等 效 访 问 周 期 , T c 为 c a c h e 的 访 问 周 期 T_{m}为主存的访问周期,T为cache的等效访问周期,T_{c}为cache的访问周期 Tm访Tcache访Tccache访。Cache的命中率随它的容量的增加而提高。和页大小类似,也存在最合适块大小和组数使H最大。

  10. cache的更新算法。写直达法WT和写回法WB。写直达法,数据写入cache也写入主存。写回法,只有替换时,才把修改过的cache块写入主存。从可靠性讲,写直达法优于写回法,而且控制的复杂性更优;与主存的通信量,写回法(以块为单位)少于写直达法,写回法的硬件实现代价更小。目前,在写回法采用按写分配(不命中还把一个块替换),在写直达法采用不按写分配(不命中时只把所要写的字写入主存)。解决Cache与主存不一致的主要方法有,共享cache法等。

3.2大题

  1. 低位交叉访问存储器的加速比 N N N

    1. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tDloSVEv-1575796777783)(计算机体系结构.assets/image-20191208171348360.png)]计算机体系结构期末复习-存储系统_第11张图片
  2. 虚实地址转换。

    1. 计算机体系结构期末复习-存储系统_第12张图片
  3. cache主存地址转换。

    1. 计算机体系结构期末复习-存储系统_第13张图片
    2. 计算机体系结构期末复习-存储系统_第14张图片
    3. 计算机体系结构期末复习-存储系统_第15张图片

(完)

你可能感兴趣的:(体系结构)