• 第三章  流水线技术
  1. 流水线定义:把一个重复的过程分解为若干个子过程,每个过程由专门的功能部件来实现,把多个处理过程在时间上错开,依次通过各个功能段,这样每个子过程就可以与其他子过程并行进行。

    1. 流水线的深度:流水线的段数称为流水线的深度;
    2. 流水线工作过程常采用时空图来描述
  2. 流水线的特点:
    1. 将一个处理过程分为若干子过程,每个子过程由专门功能部件实现;
    2. 各段时间应尽量相等,避免阻塞、断流从而形成瓶颈段;
    3. 每个功能部件后都需要一个缓冲寄存器(锁存器),称为流水寄存器;
    4. 适合大量重复的时序过程,,输入端最好不断地提供任务才能发挥最大效率;
    5. 流水线需要由通过时间河排空时间。
  3. 流水线的分类;
    1. 单功能流水线与多功能流水线:

      • 单功能:只能完成一种固定功能;
      • 多功能:各段可以进行不同的链连接以完成不同的功能。
    2. 静态流水线与动态流水线:都属于多功能流水线
      • 静态:同一时间各段按同一连接方式工作,若需另一种连接实现另一种功能,则需等待原来任务流出后才可改变连接;
      • 同一时间各段可按不同方式连接实现不同功能,灵活,提高处理速度。

注意:静态流水线只有输入的是一串相同的计算任务时才充分发挥流水线效率,否则流水线效率回合顺序处理一致。

    1. 顺序流水线与乱序流水线:

      • 顺序:输出端任务流出顺序与输入端任务输入顺序一致,即任务一个跟着一个;
      • 乱序:允许不按照输入顺序流出。
  1. 流水线的性能指标:
    1. 吞吐率:TP = 完成任务数/完成任务所用时间。

注:在各段不完全相等的流水线中,时间最长的段称为流水线的瓶颈段。

解决瓶颈段问题的方法:

  1. 细分瓶颈段:将瓶颈段细分成小段,每小段为∆t
  2. 重复设置瓶颈段:重复设置的段并行工作,依次错开处理任务,但控制逻辑复杂,需要的硬件也增多。
    1. 加速比:S = 不使用流水线的时间/使用流水线的时间。
    2. 效率:E = 任务实际占用的时空区/总的时空区。
  1. 流水线中的三个问题:

    1. 瓶颈问题:计算机的时钟周期取决于瓶颈段的延迟时间,因此设计流水线时要尽可能的使各段时间相等。
    2. 流水线的额外开销:是指流水寄存器延迟和时钟偏移开销。采用流水技术后,可以提高指令执行的吞吐从而提高执行速度,但流水线实际上并不能真正减少一条指令的执行时间。实际上,由于开销的存在,反而会使每条指令的执行时间增加,这限制了流水线深度的增加。前面提到增加流水线的段数可以提高流水线的性能,但是流水线段数的增加是受到额外开销限制的,一旦时钟周期减小到和额外开销时间接近的时候,流水线就没有意义。
    3. 冲突问题:后面的计算要用到前面的结果等,数据冲突,控制冲突,结构冲突等。
  2. 相关:指的是两条指令之间存在某种依赖关系。有三类:数据相关,名相关和控制相关。
    1. 数据相关:一条指令要用到另一条指令的计算结果
    2. 名相关:名是指指令所访问的寄存器或者存储单元的名称,如果两条指令使用相同的名,但是之间没有数据流动,则这两条指令存在名相关。
      • 反相关:如果指令j写的名与指令i读的名相同,则这两条指令存在反相关;
      • 输出相关:如果两条指令写相同的名,则两条指令发生了输出相关。
    3. 控制相关:由分支指令引起的相关,需要根据分支指令的执行结果确定后续指令是否继续执行。
  3. 流水线冲突:结构冲突,数据冲突,控制冲突。
    1. 结构冲突:因为硬件资源满足不了指令重叠执行的要求而发生的冲突。下面介绍两种消除方法:

      • 在前一条指令访问存储器的时候将流水线停顿一个时钟周期,推迟后面取指令的操作,这个停顿周期被称为流水线气泡。但这回影响流水线的性能。
      • 在流水处理机种设置相互独立的指令存储器或者数据存储器。或者将统一的Cache分为独立的指令CaChe和独立的数据Cache。
    2. 数据冲突:当指令在流水线中重叠执行的时候因需要用到前面指令的执行结果而发生的冲突。
      • 分类:写后读、读后写、写后写。
      • 解决办法:
        1. 通过定向技术减少数据冲突引起的停顿
        2. 依靠编译器解决数据冲突
    3. 控制冲突:流水线遇到分支指令和其他会改变PC值的指令时发生的冲突。下面介绍减少分支延迟的三种方法:
      • 预测分支失败
      • 预测分支成功
      • 延迟分支
  • 指令级并行
  1. 指令级并行的基本概念

    1. 指令之间存在的潜在并行性称之为指令级并行,简称ILP;
    2. IPC:指的是每个时钟周期完成的指令条数;
    3. 流水线的实际CPI等于理想流水线的CPI加上各类停顿的时钟周期
    4. CPI = CPI理想 +停顿数据冲突+停顿结构冲突+停顿控制冲突
    5. 并发指令需要解决的具体问题:流水线冲突
    6. 相关的两类解决方案:
      • 保持相关,但避免发生冲突:指令调度;
      • 通过代码变换消除相关:寄存器重命名。
    7. 并行有指令级别、线程级别、处理器之间、独立计算机之间,这种从微观到宏观的级别用粒度表示,粒度逐渐升高。
  2. 指令的动态调度
    1. 静态调度:

      • 依靠编译器对代码进行静态调度,以减少相关和冲突;
      • 不是在执行过程中,而是在编译期间对代码及逆行调度和优化;
      • 把相关的指令拉开距离从而能减少可能产生的停顿。
  1. 动态调度:在程序执行过程中依靠专门的硬件对代码进行调度,减少数据相关导致的停顿;
  2. 动态调度的优点:
    • 处理编译时情况不明的相关,简化了编译器;
    • 能够使本来面向某一流水线优化编译的代码在其他流水线上也能高效运行;
    • 以硬件复杂性的显著增加为代价。
  3. 经典(顺序)流水线的主要缺点:
    • 指令按序流出和按序执行,解决办法:允许乱序执行
  4. 在前述的五段流水线中,是不会发生WAR和WAW冲突的,但是允许乱序执行使 得这两个冲突可能发生了。解决办法:通过寄存器重命名来消除
  1. 动态分支预测技术

    1. 定义:在程序运行的时候,根据程序过去的表现预测程序将来的行为,如果分支发生了变化,那么预测结果也跟着改变。有更好的预测准确性和适应性。
    2. 分支预测的有效性取决于:
      • 预测的准确性
      • 预测正确与不正确两种情况下的分支开销
    3. 决定分支开销的因素:
      • 流水线结构
      • 预测方法
      • 预测错误时的恢复策略
    4. 采用动态分支预测技术的目标:
      • 预测分支是否成功
      • 尽快找到分支目标地址
    5. 预测错误时的处理方法:作废已经预取和分析的指令,恢复线程,并从另一条分支路径中重新取指令。
    6. 分支历史表BHT:是最简单的动态分支预测技术,用BHT来记录分支指令最近一次或几次的执行情况,并据此进行预测
    7. 1位的BHT:上次预测成功则下次成功,上次失败则下次失败
    8. 2位的BHT:2位分支预测的性能与n(n>=2)位分支预测的性能差不多
    9. 2位BHT的操作步骤:
      • 分支预测
      • 状态修改:根据状态变迁图修改状态
    10. NHT的作用范围:较少流水线的停顿,BHT不会给五级流水线带来好处。
    11. 具有大小位4KB的BHT的预测准确率就可以达到82%---99%,因而采用4KB的BHT就可以了。
    12. BHT的实现:
      • 可以跟分支指令编译器存放在Cache中
      • 可以用一块专门的硬件来实现
    13. 分支目标缓冲器BTB:可以将分支的开销降为0
    14. BTB的结构:
  • 第四章  存储系统
  1. 存储系统的基本知识

    1. 存储器速度的三个指标:

      • 带宽:MB/秒
      • 吞吐率:IOPS(对外存)
      • 存取时间:1ns,10ns,100ns,s
    2. 存储的本质:信息跨越时间的传递
      • 主要的存储介质:磁、电、光
      • 存储器的主要技术指标:容量,速度,成本
      • 处理器与存储器的主要速度差是主要矛盾
      • 存储系统的主要技术:高速缓冲Cache
        1. Cache的主要原理:程序执行的局部性原理、加快经常性事件原理。
    3. 目前大多数计算机都采用三级存储系统:Cache<------->主存<-------->辅存
  2. 存储系统性能的量化
    1. 命中率:CPU访问存储系统的时候,在M1中找到所需信息的概率。N1——>访问M1的次数,N2——>访问M2的次数,从而:H = N1/(N1+N2)     ,不命中率 = 1-H.
  3. Cache基本知识
    1. 完全没有局部性的程序是不存在的。
    2. Cache系统是硬件自动实现的,对程序员是透明的。
    3. 三种映射规则:
      • 全相联映像:主存中的数据可以放在Cache的任何地方
      • 直接映像:主存中的数据只能被放到Cache中的某一个特定的唯一的位置
      • 组相联映像:Cache 被分成若干个组,每个组有若干个块组成,主存中的每一块可以放置到Cache唯一的一个组中的任何一个位置。
  4. 映像规则与变换
    1. 全相联映像机器变换:

      • 映像规则:主存中的数据可以放在Cache的任何地方
      • 主要特点:
        1. 空间利用率最高,冲突的概率也最低
        2. 实现最为复杂
      • 地址变换规则:硬件实现很复杂,需要比较每个Cache块是否被使用
    2. 直接映像:
      • 映像规则:主存中的数据只能被放到Cache中的某一个特定的唯一的位置
      • Cache地址的计算公式:b = B mod Cb  其中:b是Cache块号,B是主存块号,Cb是Cache块数。
      • 地址映像规则:对主存进行分区,每个区的数据块数量和Cache中数据块的数量相同,每个区中的数据块和Cache中的数据块一一对应放置。
  1. 组相联映像:

    • 映像规则:主存和Cache按照同样的大小划分成块和组,主存和Cache的组之间采用直接映像方式,两个对应的组内部采用组相联映像方式
    • 特点:冲突概率低,利用率高,失效率降低,但难以实现,造价高
    • 地址变换:用多个相等比较器来代替相连访问
  1. Cache替换算法及其实现

    1. 主要特点:全部使用硬件实现
    2. 主要方法:
      • 轮换法:用于组相联映像方式,每块一个计数器或每组一个计数器
      • LRU算法:每块设置一个计数器,计数器长度与块号字段长度相同
        1. 优点:命中率高,可以正确利用局部性原理,属于堆栈型算法,命中率单调上升
        2. 缺点:控制逻辑复杂,因为增加了判断和处理是否命中的情况。
  2. 降低Cache的不命中率:
    1. 三种类型的不命中:

      • 强制性不命中:首次访问首个块的时候该块不在Cache中,需要从下一级存储器中嗲如Cache

解决方法:增加块的大小,预取

  • 容量不命中:如果所需块不能全部调入Cache中,则当某些块被替换后,若又重新被访问,则不命中。

解决方法:增加容量

  • 冲突不命中:如果太多的块映像到同一组中,该组某块被别的块替换后又重新访问的情况。

解决方法:提高相连度。

  1. 应该增加合适的Cache块大小,Cache容量越大,使不命中率达到最低的块的大小就越大,增加块大小会增加不命中开销。
  2. 减少Cache不命中开销的方法:
    • 使用两级Cache
    • 让读不命中优先于写
    • 写缓冲合并
    • 请求写处理技术
    • 非阻塞Cache技术,允许不命中下命中
  1. 并行主存系统

    1. 主存的主要型嫩南瓜指标:

      • 延迟:数据访问需要等待的时间
      • 带宽:单位时间内能传达的二进制字节数注:以往,Cache主要关心延迟,I/O主要关心带宽。
    2. 并行主存系统:即在一个访存周期内能并行访问多个存储字的存储器。
    3. 两种提升主存带宽的方法:
      • 单体多字节存储器:实现简单,但是访存效率低
      • 多体交叉存储器:
  2. 虚拟存储器
    1. 基本原理:

      • 借助磁盘等辅助存储器扩大了主存容量,使之为更大或更多的程序所使用
      • 虚拟存储器指的是主存----外存层次
      • 以透明的方式为用户提供了一个比实际主存空间大得多的程序地址空间
    2. 主要特点:
      • 多个进程可以共享主存空间
      • 多个进程可以通过分时或同时使用CPU,通过虚拟村吹起的管理,它可以自动完成
      • 程序员无需做存储器管理工作
      • 可以给每个程序一个虚拟的逻辑地址空间,减少程序员负担
      • 采用动态重定位,简化了程序的装入
    3. 分类:段式和页式
    4. 四个问题:
      • 映像规则:全相联映像
      • 查找算法:页表,TLB,段表
      • 替换算法:LRU
      • 写策略:写回法
    5. 虚拟地址到物理地址的映射:
      • 虚拟地址又编译程序生成,器对应的存储空间称为虚存空间或逻辑地址空间
      • 计算机物理内存的访问地址称为实地址或物理地址,对应的存储空关键称为主存空间
      • 程序进行虚地址到实地址的转换称为地址的再定位
    6. TLB快表
      1. TLB是专用的高速缓冲器,用于存放近期经常使用的页表项
      2. TLB中的内容是页表部分内容的一个副本
      3. TLB也用了局部性原理
      4. TLB一般比Cache的标识存储器更小更快

计算机系统结构知识点总结相关推荐

  1. 自考计算机系统结构知识点,2019自考计算机系统结构复习精讲资料一

    2019年4月自考报名已经开始,同学们可以开始准备2019年4月自考复习,下面是2019自考计算机系统结构复习精讲资料一,了解更多自考历年真题请锁定自学考试网,更有海量自考题库,精品复习资料等你来下载 ...

  2. 计算机系统结构之重要知识点总结1

                                                                                第一章 计算机系统结构的概念 重要知识点: 1. ...

  3. 计算机系统结构期末知识点总结(最后一课)

    这篇博客主要是对<计算机系统结构>课程进行期末知识点总结. 1. 透明性(下面对某类程序员是透明的,PPT举例,P33) 概念:本来存在的事物或属性,从某种角度看似乎不存在. 例如:浮点数 ...

  4. 计算机体系结构考试题及知识点,2018年10月自考02325计算机系统结构真题及答案...

    小编给大家提供的是2018年10月自考02325计算机系统结构真题及答案,大家可以参考下,毕竟历年真题比试题和背知识点有效果. 2018年 10 月高等教育自学考试全国统一命题考试 计算机系统结构试卷 ...

  5. 自考计算机系统结构总结知识点,自考计算机系统结构复习资料.doc

    自考计算机系统结构复习资料 本章中,有以下内容是要重点复习的: 关于计算机系统结构的概念: 计算机系统结构是把各个 功能部件 组成一个系统,这些部件可以是硬件.软件或者两者的混合体. 计算机系统结构是 ...

  6. 计算机系统结构答案汤志忠,计算机系统结构(第2版)郑伟明汤志忠课后习题答案以及例题收录.doc...

    计算机系统结构(第2版)郑伟明汤志忠课后习题答案以及例题收录.doc 1计算机系统结构第2版郑伟明汤志忠编著清华大学出版社习题解答21目录11第一章P331719(透明性概念),112118(AMDA ...

  7. 计算机系统论文摘要,计算机系统结构论文摘要怎么写 计算机系统结构论文摘要范文参考...

    [100篇]免费关于计算机系统结构论文摘要范文,均为免费优秀摘要,可做为计算机系统结构相关摘要参考,是计算机系统结构相关毕业论文写作必备的免费摘要论文范本格式模板,[快快阅读吧!] 第一篇论文摘要:* ...

  8. 【计算机体系结构】计算机系统结构的基本概念——基本知识要点汇总

    halo~我是bay_Tong桐小白 本文内容是桐小白个人对所学知识进行的总结和分享,知识点会不定期进行编辑更新和完善,了解最近更新内容可参看更新日志,欢迎各位大神留言.指点 计算机系统结构的基本概念 ...

  9. 【1】基础知识——♥计算机系统结构♥

    计算机系统结构是计算机组成原理的进一步延伸.关于其的学习以及笔记我在此进行总结. 参考书籍:<计算机系统结构教程(第2版)>(张晨曦等编著).<计算机系统结构>(单博炜编著) ...

最新文章

  1. 从入门到精(fang)通(qi)第5期 我们的征途是星辰大海
  2. 数据院携手汽车工程系,女生节尽展清华大数据风采~
  3. hadoop的HA高可用配置(没有搞完)
  4. 如何选举根端口,指定端口,阻塞端口
  5. RecyclerListView的使用
  6. Unity3D 退出游戏应用的代码
  7. C语言 #define ABS(X) (X >= 0) ? X : -X 遇到的逻辑错误
  8. android 判断是否是标点符号_如何“专业”的定义Android的string资源中标点符号及特殊字符...
  9. 调整Node运行内存全攻略
  10. Sumatra PDF软件基本使用和快捷键
  11. 丙烯酸酯PEG丙烯酸酯,DA-PEG-DA
  12. 投放Google广告怎么做才是最合适的?谷歌广告的优势在哪
  13. [技术发展-24]:现有物联网通信技术特点
  14. SQLCE数据工具(Flyhoward Ltd SDF Viewer)
  15. default默认值 unique单列唯一和联合唯一 primary key主键 auto_increment自增 外键foregin key 表与表之间关系
  16. Deep Feedback Network for Recommendation用于推荐系统的深度反馈网络
  17. Corral the Cows赶牛入圈(二维离散化)
  18. 计蒜客习题:修建大桥
  19. 麦芽糖醇(CAS 585-88-6)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. TI DM6437 EDMA3使用总结

热门文章

  1. 目标检测:Object Detection with Deep Learning: A Review
  2. tiles框架使用简单总结
  3. 全球及中国厦门市软件和信息技术服务产业趋势分析及投资规模现状调研报告2021-2027年
  4. 编译报错:实际参数列表和形式参数列表长度不同 解决方法
  5. 腾讯马拉松之部门竞赛
  6. 我的前端学习之路<定位>
  7. mysql 获取字符串前几位或后几位
  8. Java程序员的推荐阅读书籍 (转载robbin)
  9. 为什么JVM不建议超过32G内存
  10. 快速理解Vue父子组件传值