
计算机体系结构总结.docx
6页计算机体系结构的详尽描述一.计算机系统结构的基本概念1 .计算机体系结构的概念1964年GN.Amdahl在介绍 旧M360系统时提出:计算机系统结构是从程序员所看到的计算机属性, 即程序员编写出能在机器上正确运行的程序所必须了解的概念性结构和功能特性系统结构是对计算机系统中各级界面的划分、定义及其上下功能的分配系统结构设计主要研究界面的属性的透明性的取舍计算机系统结构(体系结构)指的是传统机器级的系统结构计算机系统结构研究的是软、硬件之间的功能分配以及对传统机器级界面的确定2 .计算机系统的多级层次结构第逐展(虚股机弱1第2级 I飞版制机密■第I级(实除机班)给级 匚实际机费1二.计算机指令集结构设计根据五个因素对计算机指令集结构进行分类:在CPU中操作数的存储方法; 指令中显式表示的操作数个数;操作数的寻址方式;指令集所提供的操作类型;操作数的类型和大小其中1是最主要的区别根据CPU内部存储单元类型,可将指令集结构分为 堆栈型指令集结构、累加器型指令集结构和通用寄存器型指令集结构优缺点?堆栈型(其CPU中存储操作数的主要单元是堆栈):是一种表示计算的简单模型;指令短小不能随机访问堆栈,从而很难生成 有效代码;同时,由于堆栈是瓶颈,所以很难被高效地实现。
累加器型(其CPU中存储操作数的主要单元是累加器):减少了机器的内部状态;指令短小由于累加器是唯一的暂存器,这种机器的存储器通信 开销最大寄存器型(CPU中存储操作数的主要单元是通用寄存器):易于生成高效的目标代码所有操作数均需命名,且要显式表示,因而指令比较长 现代大多数机器均采用通用寄存器型指令集结构,原因:一是寄存器和CPU内部其他存储单元一样,要比存储器快;其次是对编译器而言,可以更加容易、有效地分配和使用寄存器寄存器-寄存器型(RR)优点:简单,指令字长固定,是一种简单的代码生成模型,各种指令的执行时 钟周期数相近缺点:和 ALU指令中含存储器操作数的指令集结构相比,指令条数多,因而其目标代码 量较大寄存器-存储器(RM)优点:可以直接对存储器操作数进行访问,容易对指令进行编码,且其目标代码 量较小缺点:指令中的操作数类型不同在一条指令中同时对一个寄存器操作数和存储器操作数进行 编码,将限制指令所能够表示的寄存器个数由于指令的操作数可以存储在不同类型的存储器单元,所 以每条指令的执行时钟周期数也不尽相同存储器-存储器型(MM)优点:是一种最紧密的编码方式,无需浪费”寄存器保存变量。
缺点:指令字长多种多样每条指令的执行时钟周期数也大不一样,对存储器的频繁访问将导致存储器访问瓶颈问题CISC即复杂指令集计算机它是增强指令功能,把越来越多的功能交由硬件来实行,并且指令的数量也 是越来越多RISC精简指令集计算机它是尽可能的把指令集简化,不仅指令的条数少,而且指令的功 能也比较简单三.流水线技术流水线技术:将一个重复的时序过程分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其他子过程同时执行时空图:用来描述流水线的工作,横坐标表示时间,纵坐标代表流水线的各段流水技术有哪些特点?1)流水过程由多个相联系的子过程组成,每个过程称为流水线的“级”或“段”2)每个子过程由专用的功能段实现3)各个功能段所需时间应尽量相等4)流水线需要有“通过时间”,在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果5)流水技术适合于大量重复的时序过程,只有在输入端能连续地提供任务,流水线的效率才能充分发挥多倍性:在系统受限的部件上,同时处于同一执行阶段的指令或数据的最大数目流水线分类1按照流水线所完成的功能(1)单功能流水线:只能完成一种固定功能的流水线(2)多功能流水线:流水线的各段可以进行不同的连接,从而使流水线在不同的时间,或者在同一时间完成不同的功能。
2按照同一时间内各段之间的连接方式(1)静态流水线:在同一时间内,流水线的各段只能按同一种功 能的连接方式工作2)动态流水线:在同一时间内,当某些段正在实现某种运算时,另一些段却在实现 另一种运算3按照流水的级别(1)部件级流水线(运算操作流水线):把处理机的算术逻辑部件分段,以便为各种数据类型进行流水操作2)处理机级流水线(指令流水线):把解释指令的过程按照流水方式处理3)处理机间流水线(宏流水线):由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务4按数据表示 (1)标量流水处理机:处理机不具有向量数据表示,仅对标量数据进行流水处理2)向量流水处理机:处理机具有向量数据表示,并通过向量指令对向量的各元素进行处理5按照流水线中是否有反馈回路(1)线性流水线:流水线的各段串行连接,没有反馈回路2)非线性流水线:流水线中除有串行连接的通路外,还有反馈回路流水线寄存器的作用:把数据和控制信息从一个流水段传送到下一个流水段消除流水线的瓶颈段:细分瓶颈段;重复设置瓶颈段价流水线的性能指标(1)吞吐率:指在单位时间内流水线所完成的任务数或输出结果的数量2)流水线的加速比:指m段流水线的速度与等功能的非流水线的速度之比。
3)效率:指流水线的设备利用率流水线相关的三种类型:相关是指两条指令之间存在某种依赖关系确定程序中指令之间存在什么样的相关,对于充分发挥流水线的效率有重要的意义1.结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时将产生结构相关”;2.数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起数据相关”;3.控制相关:当流水线遇到分支指令和其他会改变PC值的指令时就会发生控制相关消除相关的基本方法:1让流水线暂停执行某些指令,而继续执行其他一些指令2当一条指令被暂停时, 在该暂停指令之后发射的所有指令都要被暂停,而在该暂停指令之前发射的指令则可继续执行,在暂停期间,流水线不会取新的指令输入/输出方式:程序控制(程序等待、程序中断) 、DMA、通道、I/O处理机数据相关:对于两条指令i (在前)和j (在后),如果下述条件之一成立,则称指令 j与指令i数据相关: (1)指令j使用指令i产生的结果;(2)指令j与指令k数据相关,而指令k又与指令i数据相关名相关如果两条指令使用相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。
指令j与指令i之间的名相关有以下两种:(1)反相关如果指令j写的名与指令i读的名相同,则称指令i和j发 生了反相关反相关指令之间的执行顺序是必须严格遵守的,以保证i读的值是正确的2)输出相关如果指令j和指令i写相同的名,则称指令i和j发生了输出相关输出相关指令的执行顺序是不能颠倒 的,以保证最后的结果是指令 j写进去的解决方法:换名技术,通过改变指令中操作数的名来消除名相关控制相关:由分支指令引起的相关它需要根据分支指令的执行结果来确定后续指令是否执行流水线冲突指对于具体的流水线来说,由于相关的存在,使得指令流中的下一条指令不能在指定的时钟周期执行1)结构冲突:因硬件资源满足不了指令重叠执行的要求而发生的冲突解决方法:流水化功能单元; 资源重复;暂停流水线2)数据冲突:当指令在流水线中重叠执行时,因需要用到前面指令的执行结 果而发生的冲突根据指令对寄存器的读写顺序,可将数据冲突分为:写后读冲突;写后写冲突;读后 写冲突3)控制冲突:流水线遇到分支指令和其他会改变PC值的指令所引起的冲突四种解决数据冲突的方法:1)定向技术:在某条指令产生一个结果之前,其他指令并不真正需要该计算 结果,如果将该计结果从其产生的地方直接送到其他指令需要它的地方,就可以避免暂停;2)暂停技术:设置一个“流水线互锁”的功能部件,一旦流水线互锁检测到数据相关,流水线暂停执行发生数据相关 指令后续的所有指令,直到该数据相关解决为止。
3)采用编译器调度当流水线中出现冲突时,编译器通过重新排列代码的顺序来消除流水线中的暂停,这种技术称为流水线调度4)重新组织代码顺序流水线设计者有时会允许结构冲突的存在,原因:一是为了减少硬件开销,二是为了减少功能单元的延 迟向量处理机:具有向量数据表示和相应向量指令的流水线处理机向量处理方式(1)水平处理方式:向量计算是按行的方式从左到右横向地进行若向量长度为N,则水平处理方式相当于执行N次循环若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水 处理2)垂直处理方式:适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、 输出端直接与存储器相联, 构成MM型(存储器-存储器)的运算流水线3) 分组处理方式:适合流水处理可设长度为n的向量寄存器,使每组向量运算的源 /目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成RR型运算流水线提高向量处理机性能的方法:多个功能部件;链接技术;分段开采技术;多处理机系统向量链接技术:当两条向量指令出现写后读”相关时,若它们不存在功能部件冲突和向量寄存器(源或目的)冲突,就有可能把它们所用的功能部件头尾相接,形成一个链接流水线,进行流水处理。
链接技术应用条件:1.无功能部件冲突2.无向量寄存器使用冲突 3.只有在前一条指令的第 1个结果元 素送入结果向量机寄存器的那个时钟周期才可以进行链接4.当一条向量指令的两个源操作数分别是两条先行指令的结果寄存器时,要求先行指令产生运算结果的时间必须相等5.要求进行链接执行的向量指令的向量长度必须相等四.指令级并行指令级并行:当指令之间不存在相关时,它们可以在流水线中重叠起来并行执行这种指令序列中存在 的潜在并行性称为指令级并行静态调度技术:依靠编译器对代码进行静态调度,以减少相关和冲突它不是在程序执行的过程中、而 是在编译期间进行代码调度和优化静态调度通过把相关的指令拉开距离来减少可能产生的停顿动态调度方法:在流水线中出现相关时,通过硬件重新安排指令的执行顺序,来调整相关指令实际执行 时的关系,减少处理器空转 (1)能够处理一些编译时情况不明的相关(比如涉及存储器访问的 相关),并简化了编译器2)能够使本来是面向某一流水线优化编译的代码在其他的流水线(动态调度)上也能高效地执行当然,动态调度的这些优点是以硬件复杂性的显著增加为代价的为了支持乱序执行,将 5段流水线的译码(ID)段细分为两个段(1)流出:指令译码,并检查是否存在 结构冲突。
如果不存在结构冲突,就将指令流出2)读操作数:等待数据冲突消失(如果有的话),然后读操作数Tomasulo算法的核心思想① 记录和检测指令相关, 操作数一旦就绪就立即执行, 把发生RAW冲突的可 能性减少到最少;② 通过寄存器换名来消除 WAR冲突和WAW冲突Tomasulo算法的基本思想是:只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数 据,这就使得即将执行的指令从相应的保留站中取得操作数,而不是从寄存器中指令的执行结果也是 直接送到等待数据的其他保留站中去因而,对于连续的寄存器写,只有最后一个才真正更新寄存器中 的内容一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称(编号)指令流出逻辑和保留站相结合实现寄存器换名,从而完全消除了数据写后写和先读后写相关这类名相关保留站:设置在运算部件的入口,每个保留站中保存一条已经流出并等待到本。












