2022年计算机体系结构知识点汇总.docx
精选学习资料 - - - - - - - - - 第一章运算机体系结构的基本概念1.运算机系统结构的经典定义程序员所看到的运算机属性,即 2.透亮性概念性结构与功能特性 ;在运算机技术中, 把这种原来存在的事物或属性, 但从某种角度看又似乎不存在 的概念称为透亮性;3.系列机由同一厂家生产的具有相同系统结构、的运算机 ;但具有不同组成和实现的一系列不同型号4.常见的运算机系统结构分类法有两种:Flynn 分类法、冯氏分类法Flynn 分类法把运算机系统的结构分为 4 类:单指令流单数据流 SISD 单指令流多数据流 SIMD 多指令流单数据流 MISD 多指令流多数据流 MIMD5.改进后程序的总执行时间名师归纳总结 - - - - - - -第 1 页,共 12 页精选学习资料 - - - - - - - - - 系统加速比为改进前与改进后总执行时间之比6. CPI(Cycles Per Instruction):每条指令执行的平均时钟周期数CPI = 执行程序所需的时钟周期数IC7. 储备程序原理的基本点:指令驱动8. 冯·诺依曼结构的主要特点1.以运算器为中心;2.在储备器中,指令和数据同等对待;指令和数据一样可以进行运算,即由指令组成的程序是可以修改的;3.储备器是按地址拜访、按次序线性编址的一维结构,每个单元的位数是 固定的;4.指令的执行是次序的 5.指令由操作码和地址码组成;6.指令和数据均以二进制编码表示,采纳二进制运算;9.软件的可移植性一个软件可以不经修改或者只需少量修改就可以由一台运算机移植到另一台 运算机上正确地运行; 差别只是执行时间的不同; 我们称这两台运算机是软件 兼容的;实现可移植性的常用方法 :采纳系列机、模拟与仿真、统一高级语言;软件兼容:向上(下)兼容:按某档机器编制的程序,不加修改就能运行于比它高(低)档的机器;向前(后)兼容:按某个时期投入市场的某种型号机器编制的程序,不加修 改地就能运行于在它之前(后)投入市场的机器;向后兼容是系列机的根本特点;名师归纳总结 兼容机: 由不同公司厂家生产的具有相同系统结构的运算机;第 2 页,共 12 页- - - - - - -精选学习资料 - - - - - - - - - 10.并行性 :运算机系统在同一时刻或者同一时间间隔内进行多种运算或操作;同时性 :两个或两个以上的大事在同一时刻发生;并发性 :两个或两个以上的大事在同一时间间隔内发生;从处理数据 的角度来看, 并行性等级 从低到高可分为:1.字串位串 :每次只对一个字的一位进行处理;最基本的串行处理方式,不存在并行性;2字串位并 :同时对一个字的全部位进行处理,不同字之间是串行的;开头显现并行性;3.字并位串 :同时对很多字的同一位(称为位片)进行处理;具有较高的并行性;4.全并行 :同时对很多字的全部位或部分位进行处理;最高一级的并行;从执行程序 的角度来看,并行性等级从低到高可分为:1.指令内部并行 :单条指令中各微操作之间的并行;2.指令级并行 :并行执行两条或两条以上的指令;3.线程级并行 :并行执行两个或两个以上的线程;通常是以一个进程内派生的多个线程为调度单位;4.任务级或过程级并行 :并行执行两个或两个以上的过程或任务(程序段)以子程序或进程为调度单元;5.作业或程序级并行 :并行执行两个或两个以上的作业或程序;提高并行性的技术途径:1.时间重叠引入时间因素,让多个处理过程在时间上相互错开,轮番重叠地使用同一套硬件设备的 各个部分,以加快硬件周转而赢得速度;2.资源重复引入空间因素,以数量取胜;通过重复设置硬件资源,大幅度地提高运算机系统的性 能;3.资源共享这是一种软件方法,它使多个任务按肯定时间次序轮番使用同一套硬件设备;其次章 运算机指令集结构1. CPU中用来储备操作数的储备单元的主要类型:堆栈、累加器、通用寄存器组名师归纳总结 - - - - - - -第 3 页,共 12 页精选学习资料 - - - - - - - - - 2.通用寄存器型 指令集结构 进一步细分为3 种类型寄存器 -寄存器型( RR型)寄存器 -储备器型( RM 型)储备器 -储备器型( MM 型)3.指令集结构的设计主要考虑 3 个因素:速度、成本、敏捷性 对指令集的基本要求:完整性、规整性、高效率、兼容性4.设计 RISC机器遵循的原就1.指令条数少而简洁;只选取使用频度很高的指令,在此基础上补充一些最 有用的指令;2.采纳简洁而又统一的指令格式,并削减寻址方式;指令字长都为 位;32 位或 643.指令的执行在单个机器周期内完成;采纳流水线机制 4.只有 load 和 store 指令才能拜访储备器,其他指令的操作都是在寄存器之间 进行;(即采纳 load-store 结构)5.大多数指令都采纳硬连规律来实现;6.强调优化编译器的作用,为高级语言程序生成优化的代码;7.充分利用流水技术来提高性能;5.指令由两部分组成:操作码、地址码 指令集的 3 种编码格式:变长编码格式、定长编码格式、混合型编码格式第三章 流水线技术1.流水线技术 :把一个重复的过程分解为如干个子过程,每个子过程由特地的功能部件来实现;把多个处理过程在时间上错开,依次通过各功能段,这样,每个子过程就可以与其他的子过程并行进行;流水线中的每个子过程及其功能部件称为流水线的级或段,流水线;流水线的段数称为流水线的深度;通过时间:第一个任务从进入流水线到流出结果所需的时间;排空时间: 最终一个任务从进入流水线到流出结果所需的时间;2.分类1.单功能流水线与多功能流水线 单功能流水线:只能完成一种固定功能的流水线;段与段相互连接形成多功能流水线:流水线的各段可以进行不同的连接,以实现不同的功能;名师归纳总结 - - - - - - -第 4 页,共 12 页精选学习资料 - - - - - - - - - 2.静态流水线与动态流水线 静态流水线:在 同一时间 内,多功能流水线中的各段只能按同一种功能 的连接方式工作;动态流水线:在 同一时间 内,多功能流水线中的各段可以依据 不同的方式 连接,同时执行多种功能;3.部件级、处理机级及处理机间流水线 部件级流水线(运算操作流水线) :把处理机的算术规律运算部件分段,使 得各种类型的运算操作能够按流水方式进行;处理机级流水线(指令流水线) :把指令的说明执行过程依据流水方式处 理;把一条指令的执行过程分解为如干个子过程,每个子过程在独立的功能部 件中执行;处理机间流水线(宏流水线) :它是由两个或者两个以上的处理机串行连接 起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分;4.线性流水线与非线性流水线 线性流水线:流水线的各段串行连接 ,没有反馈 回路;数据通过流水线中的各段时,每一个段最多只流过一次;非线性流水线:流水线中除了有串行的连接外,仍有反馈回路 ;5.次序流水线与乱序流水线 次序流水线:流水线输出端任务流出的次序与输入端任务流入的次序完全相同;每一个任务在流水线的各段中是一个跟着一个次序流淌的;乱序流水线:流水线输出端任务流出的次序与输入端任务流入的次序 可以 不同 ,答应后进入流水线的任务先完成(从输出端流出);6.标量处理机与向量流水处理机 标量处理机: 处理机不具有向量数据表示和向量指令,仅对标量数据进行流 水处理;向量流水处理机:具有向量数据表示和向量指令的处理机;3.吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量;TPnTK解决流水线瓶颈问题的常用方法:细分瓶颈段、重复设置瓶颈段;加速比: 完成同样一批任务,不使用流水线所用的时间与使用流水线所用的 时间之比;名师归纳总结 - - - - - - -第 5 页,共 12 页精选学习资料 - - - - - - - - - STsTk效率:流水线中的设备实际使用时间与整个运行时间的比值,即流水线设备的利用率;nEk n 1当流水线各段时间相等时,流水线的效率与吞吐率成正比;TP nTkTk=k+n-1 tE=TP t t=T 通过 /m m 表示段数 流水线的效率是流水线的实际加速比 S与它的最大加速比 k 的比值;E= S S= nkk k n 1 从时空图上看,效率就是 n 个任务占用的时空面积和 比;4.一条指令的执行过程分为以下 5 个周期:1.取指令周期( IF)IR MemPC ;PC值加 4;(假设每条指令占 4 个字节)2.指令译码 /读寄存器周期( ID)译码;k 个段总的时空面积之用 IR中的寄存器编号去拜访通用寄存器组,读出所需的操作数;3.执行/ 有效地址运算周期( EX)不同指令所进行的操作不同:储备器拜访指令: ALU把所指定的寄存器的内容与偏移量相加,形成用于 访存的有效地址;寄存器寄存器 ALU指令: ALU依据操作码指定的操作对从通用寄存器组 中读取的数据进行运算;寄存器立刻数 ALU指令: ALU依据操作码指定的操作对从通用寄存器组 中读取的第一操作数和立刻数进行运算;分支指令: ALU把偏移量与 PC值相加,形成转移目标的地址;同时,对在 前一个周期读出的操作数进行判定,确定分支是否胜利;4 储备器拜访分支完成周期(MEM)该周期处理的指令只有 load、store 和分支指令;其他类型的指令在此周期不 做任何操作;load 和 store 指令 load 指令:用上一个周期运算出的有效地址从储备器中读出相应的数据;store 指令:把指定的数据写入这个有效地址所指出的储备器单元;分支指令名师归纳总结 分支“ 胜利” ,就把转移目标地址送入PC;第 6 页,共 12 页- - - - - - -精选学习资料 - - - - - - - - - 分支指令执行完成;5.写回周期( WB)ALU运算指令和 load 指令在这个周期把结果数据写入通用寄存器组;ALU运算指令:结果数据来自 ALU;load 指令:结果数据来自储备器系统;5.相关:两条指令之间存在某种依靠关系;相关有 3 种类型 :数据相关(也称真数据相关) 、名相关、掌握相关数据相关 具有传递性,反映了数据的流淌关系 假如两条指令使用相同的名,但是它们之间并没有数据流淌,就称这两条指 令存在 名相关 ;反相关 :假如指令 j 写的名与指令 i 读的名相同,就称指令 i 和 j 发生了反 相关;指令 j 写的名指令 i 读的名 输出相关 :假如指令 j 和指令 i 写相同的名,就称指令i 和 j 发生了输出相关;指令 j 写的名指令 i 写的名 换名技术 :通过转变指令中操作数的名来排除名相关;前提:寄存器足够;掌握相关是指由分支指令引起的相关;流水线冲突是指对于详细的流水线来说,由于相关的存在,使得指令流中的 下一条指令不能在指定的时钟周期执行;6.流水线冲突有 3 种类型:结构冲突 :因硬件资源满意不了指令重叠执行的要求而发生的冲突;数据冲突 :当指令在流水线中重叠执行时,因需要用到前面指令的执行结果 而发生的冲突;掌握冲突:流水线遇到分支指令和其他会转变 数据冲突有:写后读冲突( RAW)PC值的指令所引起的冲突;在 i 写入之前, j 先去读;写后写冲突( WAW)j 读出的内容是错误的;对应于数据相关在 i 写入之前, j 先写;最终写入的结果是 读后写冲突( WAR)i 的;错误!对应于输出相关在 i 读之前, j 先写; i 读出的内容是错误的!由反相关引起;定向技术 :在某条指令产生运算结果之前,其他指令并不真正立刻需要该运算结果,如名师归纳总结 - - - - - - -第 7 页,共 12 页精选学习资料 - - - - - - - - - 果能够将该运算结果从其产生的地方直接送到其他指令需要它的地方,那么就可以防止停顿;流水线互锁机制,插入“ 暂停”;作用:检测发觉数据冲突,并使 依靠编译器解决数据冲突流水线停顿 ,直至冲突消逝;让编译重视新组织指令次序来排除冲突,这种技术称为指令调度 或流水线调度;掌握冲突处理分支指令最简洁的方法:“冻结 ”或者 “排空”流水线 ;由分支指令引起的推迟称为分支推迟;削减分支推迟的方法 :猜测分支失败 答应分支指令后的指令连续在流水线中流淌,就好象什么都没发生似的;如确定分支失败,将分支指令看作是一条一般指令,流水线正常流淌;如确定分支胜利,流水线就把在分支指令之后取出的全部指令转化为空操 作,并按分支目地重新取指令执行;要保证:分支结果出来之前不会转变处理机的状态,以便一旦猜错时,处理 机能够回退到原先的状态;猜测分支胜利 假设分支转移胜利,并从分支目标地址处取指令执行;起作用的前题:先知道分支目标地址,后知道分支是否胜利;前述 5 段流水线中,这种方法没有任何好处;推迟分支 主要思想:从规律上 “延长 ”分支指令的执行时间;把推迟分支看成是由原先的分 支指令和如干个推迟槽构成,不管分支是否胜利,都要按次序执行推迟槽中的 指令;分支推迟指令的调度任务:在推迟槽中放入有用的指令;由编译器完成;能否带来好处取决于编译器能否把有用 的指令调度到推迟槽中;名师归纳总结 - - - - - - -第 8 页,共 12 页精选学习资料 - - - - - - - - - 三种调度方法 : 从前调度、从目标处调度、从失败处调度MIPS如检测到 RAW冲突,流水线互锁机制必需在流水线中插入停顿,并使当前正处于 IF段和 ID 段的指令不再前进;分支指令的条件测试和分支目标地址运算在 段完成;向量处理机EX段完成,对 PC的修改在 MEM在流水线处理机中,设置向量数据表示和相应的向量指令,称为向量处理 机;不具有向量数据表示和相应的向量指令的流水线处理机,称为标量处理机;处理方式:1.横向水平处理方式 向量运算是按行的方式从左到右横向地进行;组成循环程序进行处理;i数据相关: N 次 功能切换: 2N 次不适合于向量处理机的并行处理;2.纵向 垂直 处理方式 向量运算是按列的方式从上到下纵向地进行;两条向量指令之间:数据相关:1 次功能切换: 1 次对处理机结构的要求:储备器储备器结构3.纵横 分组 处理方式又称为分组处理方式;把向量分成如干组,组内按纵向方式处理,依次处理各组;对处理机结构的要求:寄存器寄存器结构提高向量处理机性能的 方法:设置多个功能部件,使它们并行工作;采纳链接技术,加快一串向量指令的执行;采纳循环开采技术,加快循环的处理;采纳多处理机系统,进一步提高性能;链接技术链接特点:具有先写后读相关的两条指令,在不显现功能部件冲突和源向量 冲突的情形下,可以把功能部件链接起来进行流水处理,以达到加快执行的目 的;链接特性的实质:把流水线定向的思想引入到向量执行过程的结果;名师归纳总结 - - - - - - -第 9 页,共 12 页精选学习资料 - - - - - - - - - 第 4 章 指令级并行这种指令之间存在的潜在并行性称为指令级并行;1.流水线处理机的实际 CPI抱负流水线的 CPI加上各类停顿的时钟周期数:CPI流水线 = CPI抱负 + 停顿结构冲突+ 停顿数据冲突+ 停顿掌握冲突 抱负 CPI是衡量流水线最高性能的一个指标;2.基本程序块: 一段除了入口和出口以外不包含其他分支的线性代码段;3.循环级并行: 使一个循环中的不同循环体并行执行;4.程序次序:由源程序确定的在完全串行方式下指令的执行次序;保持反常行为是指:无论怎么转变指令的执行次序,都不能转变程序中反常 的发生情形;数据流:指数据值从其产生者指令到其消费者指令的实际流淌;静态调度依靠编译器对代码进行静态调度,以削减相关和冲突;它不是在程序执行的过程中、而是在编译期间进行代码调度和优化;通过把相关的指令拉开距离来削减可能产生的停顿;动态调度在程序的执行过程中,依靠特地硬件对代码进行调度,削减数据相关导致的 停顿不精确反常:当执行指令i 导致发生反常时,处理机的现场(状态)与严格按程序次序执行时指令i 的现场不同;i精确反常:假如发生反常时,处理机的现场跟严格按程序次序执行时指令 的现场相同;记分牌算法和 Tomasulo算法是两种比较典型的动态调度算法;Tomasulo算法基本思想 1.核心思想 记录和检测指令相关,操作数一旦就绪就立刻执行,把发生 RAW冲突的可能 性削减到最小;通过寄存器换名来排除WAR冲突和 WAW 冲突;名师归纳总结 - - - - - - -第 10 页,共 12 页精选学习资料 - - - - - - - - - 更多地依靠于硬件寄存器换名可以排除WAR冲突和 WAW冲突;寄存器换名是通过保留站和流出规律来共同完成的;Tomasulo算法具有以下两个特点:冲突检测和指令执行掌握是分布的;每个功能部件的保留站中的信息打算了什么时候指令可以在该功能部件开头执行;运算结果通过 CDB直接从产生它的保留站传送到全部需要它的功能部件,而 不用经过寄存器;每个保留站有以下几个字段:Op:要对源操作数进行的操作;Qj,Qk:将产生源操作数的保留站号;等于 0 表示操作数已经就绪且在Vj 或 Vk 中,或者不需要操作数;Vj,Vk:源操作数的值;对于每一个操作数来说, V 或 Q 字段只有一个有效;对于 load 来说, Vk 字段用于储存偏移量;Busy:为 “ yes”表示本保留站或缓冲单元 “忙”;A:仅 load 和 store 缓冲器有该字段;开头是存放指令中的立刻数字段,地址 运算后存放有效地址;动态分支猜测: 在程序运行时, 依据分支指令过去的表现来猜测其将来的行为;分支历史表BHT(Branch History Table)或分支猜测缓冲器(Branch Prediciton Buffer )最简洁的动态分支猜测方法;用 BHT来记录分支指令最近一次或几次的执行情形(胜利或不胜利),并据 此进行猜测;BTB名师归纳总结 目标:将分支的开销降为0第 11 页,共 12 页- - - - - - -精选学习资料 - - - - - - - - - 方法:分支目标缓冲 将分支胜利的分支指令的地址和它的分支目标地址都放到一个缓冲区中储存 起来,缓冲区以分支指令的地址作为标识;这个缓冲区就是分支目标缓冲器(Branch-Target Cache);循环绽开和指令调度增加指令间并行性最简洁和最常用的方法Branch-Target Buffer,简记为 BTB,或者开发循环级并行性循环的不同迭代之间存在的并行性;在把循环绽开后,通过重命名和指令调度来开发更多的并行性;编译器完成这种指令调度的才能受限于两个特性:程序固有的指令级并行性;流水线功能部件的执行推迟;循环绽开和指令调度时要留意以下几个方面:保证正确性;在循环绽开和调度过程中特别要留意两个地方的正确性:改;留意有效性;循环掌握, 操作数偏移量的修只有能够找到不同循环体之间的无关性,才能有效地使用循环绽开;使用不同的寄存器;(否就可能导致新的冲突)删除余外的测试指令和分支指令,留意对储备器数据的相关性分析并对循环终止代码和新的循环体代码进行相应的修正;例如:对于 load 指令和 store 指令,假如它们在不同的循环迭代中拜访的储备器地 址是不同的,它们就是相互独立的,可以相互对调;留意新的相关性由于原循环不同次的迭代在绽开后都到了同一次循环体中,因此可能带来新 的相关性;名师归纳总结 - - - - - - -第 12 页,共 12 页