《第三章微处理器体系结构及关键技术.ppt》由会员分享,可在线阅读,更多相关《第三章微处理器体系结构及关键技术.ppt(67页珍藏版)》请在三一办公上搜索。
1、第3章 微处理器关键技术,微处理器基本功能及硬件组成微处理器体系结构随机逻辑体系结构RISC结构,目标是减小电路规模并降低制造费用微码体系结构 CISC结构,目标是减少重复设计费用、增强CPU性能流水线体系结构 利用指令并行以提高计算机的性能超标量体系结构 利用多条流水线进一步提高计算机性能指令系统设计计算机工作过程,1/68,第三章习题,作业:1、2、7、9、11、13 思考:36、8、10、12、15、16,2023-6-23,2/68,第三章结 束,2023-6-23,3/68,CPU的基本功能,CPU的作用是协调和控制计算机的各个部件并执行程序中的指令序列,因此应具有以下基本功能:,取
2、指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。分析指令:即指令译码,是指对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成。,2023-6-23,4/68,CPU的基本功能模型,编程人员看到的CPU,2023-6-23,5/68,中央处理单元 Central Processing Unit,CPU微处理器 Micro Processing Unit,M
3、PU微控制单元 Micro Control Unit,MCU单片机计算机,单片芯片,控制器、运算器、寄存器,CPU、少量存储器及I/O接口,CPU+存储器+总线/接口+外设,几个概念的对比,2023-6-23,6/68,控制单元(控制器)时序控制部件:指令周期、工作周期、时钟周期(工作脉冲)指令译码逻辑:微程序(CISC)、硬连逻辑(RISC)数据通道(运算器)组成:ALU+寄存器+内部总线功能:基本的二进制算术、逻辑及移位运算;根据运算结果设置状态标志(进/借位、溢出等);特性:数据通路宽度:即字长,CPU单次传送和处理数据的能力。数据通路周期:ALU运算并将保存结果的过程。,CPU的硬件组
4、织,7/68,时序控制部件,时序控制部件:脉冲源+分频逻辑;用以产生各种系统所需的、满足时序要求的控制信号。指令周期 读取并执行一条指令所需的时间工作周期 指令周期中的不同工作阶段时钟周期 系统中最小的基本时间分段,指令周期状态图,CPU中的多级时序,不同的CPU设计策略:CISC与RISC,CISC(Complex Instruction Set Computer,复杂指令集计算机)不断增强原有指令的功能以及设置更为复杂的新指令取代原先由程序段完成的功能,从而实现软件功能的硬化。RISC(Reduced Instruction Set Computer,精简指令集计算机)通过减少指令种类和简
5、化指令功能来降低硬件设计复杂度,从而提高指令的执行速度。现代计算机:RISC+CISC,2023-6-23,9/68,CISC的特点及设计思想,美国加州大学Berkeley分校的研究结果表明:许多复杂指令很少被使用,“2-8原则”控制器硬件复杂(指令多,且具有不定长格式和复杂的数据类型),占用了大量芯片面积,且容易出错,VLSI设计困难。指令操作繁杂,执行速度慢。指令规整性不好,不利用采用 流水线技术提高性能。,2023-6-23,10/68,RISC的特点及设计思想,RISC机的设计应当遵循以下五个原则:指令条数少,格式简单,易于译码;提供足够的寄存器,只允许load 和store指令访问内
6、存;指令由硬件直接执行,在单个周期内完成;充分利用流水线;强调优化编译器的作用;,2023-6-23,11/68,典型的数据通路结构,ALU的实现:(1)由基本门电路实现全加器;(2)由n位全加器构成n位并行加法器(3)以加法器为核心,通过扩展输入选择逻辑实现其它基本算术和逻辑运算;,2023-6-23,12/68,ALU功能描述示例,算术逻辑运算功能,移位运算功能,2023-6-23,CPU数据通路的RTL模型(Register Transfer Level),2023-6-23,14/68,CISC与RISC的数据流,2023-6-23,15/68,微处理器体系结构分类,16/68,随机逻
7、辑(硬连逻辑)体系结构用布尔逻辑函数来表示控制单元的输入和输出之间的关系。,随机逻辑CPU的体系结构,时序部件,指令预处理,2023-6-23,17/68,随机逻辑CPU的操作1-取指令,程序计数器的值经MUX送到存储器;存储器送回的指令写入指令寄存器;程序计数器加1后回写;,2023-6-23,18/68,随机逻辑CPU的操作2-指令译码与执行,寄存器堆中的某个地址寄存器通过MUX寻址存储器,获得ALU的一个操作数;另一个操作数来自于寄存器堆中的数据寄存器;ALU的结果值被回写入寄存器堆。,2023-6-23,19/68,随机逻辑CPU的设计步骤,指令集结构驱动硬件的逻辑方程 定义所需的指令
8、集结构;根据指令集决定硬件逻辑及有限状态机;硬件逻辑方程反馈到指令集结构 对指令集结构做必要的修改和优化;最大限度地减少逻辑复杂度;,2023-6-23,20/68,最小化逻辑门数目优化硬件逻辑、尽可能地少用触发器优化硬件时序逻辑门级数最小化;建立并行通路以减少时序约束(增加逻辑门)简化指令集逻辑简单、寄存器数量少,随机逻辑CPU的设计要点,RISC,2023-6-23,21/68,随机逻辑CPU的特点,优点:可通过简化指令减少所使用的门电路总数从而减少制造费用。缺点:指令集结构与硬件逻辑方程之间存在着密切联系,设计过程复杂。重用性差,设计成果很少能再利用到以后的新CPU设计中。适用于较简单的
9、指令集结构。,2023-6-23,22/68,微码CPU的体系结构,在微码结构中,控制单元的输入和输出之间的关系被视为一个存储系统。,时序部件,指令预处理,工作原理 微程序控制,又称存储控制。组成微码控制器+微代码,2023-6-23,23/68,微码CPU的控制逻辑与控制流,控制逻辑对IR中的指令译码,确定对应微码程序地址并写入PC;PC向微码ROM提供地址,返回的微码写入IR;IR译码后产生相应的控制信号;PC地址加1后获取下一条微指令地址,直到完成整个微码程序;,2023-6-23,微码CPU的数据通路与数据流,数据通路一般应有如下三个基本的时钟周期:从存储器读数据后:写入寄存器堆(Re
10、gister File);写入指令寄存器(IR);写入临时寄存器(TempIn);作为ALU的一个输入;从寄存器读数据后:写入存储器地址寄存器MAR;写入临时寄存器作为ALU的一个输入;存入存储器;将Result寄存器内容写入寄存器堆,或存入存储器,2023-6-23,25/68,微码CPU的设计步骤,建立硬件体系结构 保证其具备执行必要基本功能步骤的功能。将指令分割成许多微步骤,转写成微程序并写入控制存储器ROM。,微指令Micro-instruction微程序Micro-program(固件fireware)指令instruction微码控制器Microcode controller(定序
11、器sequencer),2023-6-23,26/68,微码CPU的特点,优点:可以通过减少取指令次数的方法来降低存储器总访问时间从而提高系统性能;简化硬件设计,可使其成品机器几乎没有设计上的错误;建立或改动微代码比建立或改动电路省时、不易出错,因此创建新的CPU版本将会更快;缺点:微代码比硬件实现的开销大;宏指令的开销依赖于微指令系统;,2023-6-23,27/68,微码结构与随机逻辑结构的比较,硬件设计开销随机逻辑CPU的硬件和指令集必须同步进行设计和优化,因此比较复杂。微码CPU的指令集设计并不直接影响现有硬件,修改指令集并不需要重新设计新的硬件。性能如果采用相同指令集,则随机逻辑CP
12、U操作会更快。如果执行相同的计算任务,微码CPU能够通过使用更少(但更复杂)的指令达到更高性能。当系统整体性能受限于存储器的速度时,微码CPU对性能提高的优势更为明显。,2023-6-23,28/68,流水线技术,可通过分割逻辑,插入缓冲寄存器(流水线Reg)来构建;利用指令级并行以提高计算机的性能;,流水线满载,独立硬件模块,2023-6-23,指令时空图,顺序执行,4级流水线执行,流水线满载,30/68,四级流水线CPU的操作,(1)取指令级将下一条指令的地址发送到指令存储器,并等待此指令返回。(2)指令译码级指令译码并从寄存器中取出所需的源操作数。(3)指令执行级执行运算,并将其结果送至
13、下一阶段;而存储器取存指令则利用此阶段从存储器中完成数据的取存操作(4)数据回写级 将数据写回到寄存器或者数据存储器,或在决定分支跳转时写入地址寄存器给出下一个指令的地址。,31/68,流水线CPU中双存储器访问的操作,所有ALU指令都限制为仅可对寄存器进行;只有存储器取存指令才能读写存储器;a)从存储器取出(LOAD):Mem(Reg 1)Reg 2b)写入存储器(STORE):Reg 1Mem(Reg 2)否则会需要更多级流水线;,2023-6-23,32/68,流水线CPU的性能,吞吐量(throughput)单位时间完成的作业,最大值等于每一时钟周期1个作业。等待时间(latency)
14、每一作业从开始到结束需用时钟周期数d。深度(depth)或并行度(degree of parallelism)即流水线的级数d。加速比非流水线执行时间相对流水线执行时间之比。如果d级流水线每级需用一个时钟周期T,则N条指令的总执行时间:Tpipeline=Tload+Tempty=(N+(d-1)*T 则该流水线的加速比为:Tunpipeline/Tpipeline=Nd/(N+d-1),2023-6-23,33/68,流水线结构与微码结构的比较1,指令集的限制微码机器中指令可以任意复杂;流水线机器中指令越复杂所需的级数就越多;指令的并行性微码机器中指令的各微码执行阶段必须依次执行流水线机器容
15、许同时执行不同指令;提高性能的手段微码机器通过减少存储器读来提高性能;流水线机器通过增加硬件实现指令的并行来提高性能;,2023-6-23,34/68,流水线结构与微码结构的比较2,比较下列操作在微码CPU和流水线CPU中的执行情况:Mem(Reg 1)+Mem(Reg 2)Reg 3微码机器(CISC)中只需要一条指令表示,而在流水线机器(RISC)里则需要3条指令;假设没有存储器延迟,则流水线机器中这3条指令可以在3个时钟周期内完成,而微码机器则需要8个时钟周期。在流水线机器中需要取存5次存储器,而微码机器只需要3次。若存储器较慢,则微码CPU的执行速度可能更快,3次指令,2次数据,1次指
16、令,2次数据,取指+译码执行:取操作数2,加法,存结果,2023-6-23,35/68,流水线CPU的特点,优点:通过指令级并行来提高性能。缺点:增加了硬件成本。流水寄存器引入延迟和时钟偏移,这些额外开销会使每条指令的执行时间有所增加,这也限制了流水线的深度。流水线中各段的操作存在关联(dependence)时也会引起流水线中断,从而影响流水线的性能和效率。,2023-6-23,36/68,流水线冲突,理想流水线的性能:每个时钟周期完成一条指令实际流水线机器中可能存在的冲突(hazard):数据冲突(如后面的计算要用到前面的结果)定向技术可将结果数据从其产生的地方直接传送到所有需要它的功能部件
17、编译器可利用流水线调度(scheduling)技术来重新组织指令顺序结构冲突(硬件资源不够)增加额外的同类型资源改变资源的设计使其能被同时使用控制冲突(分支等跳转指令引起)可采用分支预测及预测执行技术最大限度地使处理器各部分保持运行状态。,多端口的寄存器堆,哈佛结构存储器、超标量流水线,2023-6-23,37/68,流水线数据冲突及乱序执行,教材图3-22有误,流水线结构冲突及超标量流水线,?,有5个执行单元的超标量流水线,有2套硬件的超标量流水线CPU,共用一个取指单元的5段双流水线,2023-6-23,VLIW处理机的结构与指令格式,和超标量处理机不同,超长指令字VLIW(Very Lo
18、ng Instruction Word)依靠编译器在编译时找出指令之间潜在的并行性,并通过指令调度把可能出现的数据冲突减少到最小,最后把能并行执行的多条指令组装成一条很长的指令,然后由处理机中多个相互独立的执行部件分别执行长指令中的一个操作,即相当于同时执行多条指令。VLIW处理机能否成功,很大程度上取决于代码压缩的效率,其编译程序和体系结构的关系非常密切,缺乏对传统软件和硬件的兼容,因而不大适用于一般应用领域。,2023-6-23,超标量CPU的体系结构,超标量技术:可在一个时钟周期内对多条指令进行并行处理,使CPI小于1;特点:处理器中有两个或两个以上的相同的功能部件;要求操作数之间必须没
19、有相关性;,整数指令,浮点指令,2023-6-23,41/68,超标量处理机一般概念性结构,instruction fetching多个流水线读取及转移预测逻辑instruction decoding并行译码器,预译码技术instruction dispatching动态规划instruction execution多个流水线功能单元instruction completion暂存结果数据instruction retiring真正更新Reg和Mem中的结果数据,2023-6-23,42/68,超标量结构机器的例子,两条输入流水线,三条执行流水线,每个时钟周期可从存储器中获取两条指令,用于执行
20、不需要访问存储器的指令,可处理所有需要或不需要访问存储器的指令,可用于进行乘、除类较复杂的算术运算,决定应使用哪一条执行流水线,指令集结构(ISA,Instruction Set Architecture):是体系结构的主要内容之一,对CPU的基本组织会产生非常大的影响。ISA功能设计实际就是确定软硬件的功能分配。考虑因素 速度、成本和灵活性实现方式 硬件、软件 优化策略 RISC、CISC;流水线;多核;实现内容 数据类型、指令功能、指令格式、寻址方式实现步骤根据应用初拟出指令的分类和具体的指令;编写出针对该指令系统的各种高级语言编译程序;对多种算法程序进行模拟测试,确认指令系统的操作码和寻
21、址方式的效能是否都比较高;用硬件实现高频使用的指令,软件实现低频使用指令。,指令系统设计,2023-6-23,随机逻辑CPU的指令集设计,考虑能否让逻辑门可以快速而方便地实现指令译码。一般的设计方法是将指令内部的结构划分成多个指令字段(field)。同时还要求这些指令字段在各指令中所放的位置尽可能一样。这样,在CPU中可以减少指令译码所需的逻辑数量。在随机逻辑CPU的指令集中,可以使用以下4种类型的指令:分支指令(branch instruction)、存储器引用指令(memory reference instruction)、ALU指令(ALU instruction)、设置指令(SET i
22、nstruction)。,45/68,流水线CPU的指令集设计,复杂的指令需要更多的流水线阶段:若要能够使用索引存储器的地址,则在执行阶段之后需要增加一个单独的存储器阶段,从而成为一个五级流水线。ALU运算若要能够支持源存储器,则在执行阶段之前需要增加一个单独的存储器阶段,从而成为一个五级流水线。对于既要有存储器索引又要有源存储器的ALU运算,就需要上述额外的两个阶段,从而成为一个六级流水线。,46/68,机器指令符号表示法symbol representation,由于直接与机器指令二进制表示法打交道很困难,于是普遍使用的是机器指令符号表示法(symbol representation)。操
23、作码可缩写成助记符(mnemonic)来表示:ADD加SUB减MUL乘DIV除LOAD由存储器装入STOR存入存储器,2023-6-23,47/68,数 据 类 型,确认某种特殊类型的数据是否应该得到硬件支持。数值型数据:无符号整数、带符号整数、浮点数 非数值数据:字符串确认字长(对数据长度的限制)。截断(truncation)或溢出(overflow)在选择数据格式长度时需要平衡数值范围、程序执行期间发生溢出的可能性、处理设备和存储设备的复杂性、以及价格和速度等因素。,2023-6-23,48/68,指令类型,指令按功能可分成如下三种基本类型:数据传输:将数据从一个地方(源地址)复制到另一个
24、地方(目的地址),传输结束后源地址中的内容不变。数据传送范围:R-R、R-M、M-R或M-M 数据传送宽度:可能为固定值(如8、16或32bit),其它宽度的数据 传送一般可通过软件移位和合并操作来实现。数据运算:包括算术运算(加、减、乘、除等)和逻辑运算(与、或、非、异或等)。该类指令需要明确操作数的类型和长度。控制类:用于改变正常的程序执行流程,完成程序的跳转,主要包括转移指令和过程指令。,I/O?,2023-6-23,49/68,机器指令要素,操作码(operation code,opcode):需要完成的操作;源操作数(source operand reference):操作所需的输入
25、;结果操作数(result operand reference):操作产生的结果;下一条指令(next instruction reference):告诉CPU这到哪里取下一条指令。,2023-6-23,50/68,指令格式,在计算机内部,指令由一个位串来表示。相应于指令的各要素,这些位串划分成几个字段:操作码字段:说明CPU应进行的操作操作数字段/地址字段:说明源操作数和目的操作数存放的位置信息:说明源操作数和目的操作数的数据类型。下一条指令地址字段:如紧跟当前指令,在主存或虚存中,则不需显示引用;如可能产生跳转,则需要显示给出存储地址;,指令类型决定了CPU的软件功能特性,寻址方式决定了C
26、PU硬件功能特性,51/68,寻 址 方 式,操作数实际存放位置:寻址方式:1操作数在寄存器中:寄存器(直接)寻址2操作数在存储器中:存储器直接寻址、存储器间接寻址、立即数寻址、相对寻址3操作数在I/O接口中:存储器寻址(存储器映像编址)或端口寻址(独立编址),52/68,寄存器直接寻址方式register direct addressing mode,指令的地址字段给出寄存器号(名),而被指定的寄存器的内容就是操作数。,2023-6-23,53/68,存储器直接寻址memory direct addressing mode,指令的地址字段直接给定一个立即数作为存储器的逻辑地址。,寄存器直接寻
27、址,2023-6-23,54/68,存储器间接寻址memory indirect addressing mode,(1)寄存器间接寻址方式(2)存储器间接寻址方式(3)位移量寻址方式(4)指数寻址方式(5)自增和自减寻址方式(6)比例尺寻址方式,2023-6-23,55/68,寄存器间接寻址方式register indirect addressing mode,将存储器地址指定在寄存器中,即让寄存器内容指向一个可访问到操作数的存储器单元。,2023-6-23,56/68,存储器间接寻址方式 memory indirect addressing mode,2023-6-23,57/68,位移量寻
28、址方式displacement addressing mode,针对数组、矩阵类向量数据的存取,2023-6-23,58/68,指数寻址方式indexed addressing mode,与位置无关的(position-independent)汇编语言程序,2023-6-23,59/68,自增和自减寻址方式auto-increment/decrement addressing mode,PUSHPOP,比例尺寻址方式scaled addressing mode,用字节表示的操作数的长度,位移量寻址+指数寻址+自增/自减寻址,2023-6-23,61/68,PC相对寻址方式Program Cou
29、nter-related addressing mode,主要用在转移和跳转指令,指定汇编语言程序码的内部位置作为操作数。指令:JUMP abe 操作:PC abe=(PC)updated+(imm)sign_ext,表示当前指令取出后的PC值,出现在指令中,2023-6-23,62/68,立即数寻址immediate addressing mode,2023-6-23,63/68,指 令 字 段,常见指令字段分配,操作码位段分配,扩展操作码,2023-6-23,64/68,操作数的数目,二元操作(binary operation)是一种基本操作类型,通常包含三个操作数地址:两个源操作数和一个
30、目的(结果)操作数。每一个操作数可以定位在存储器或寄存器中。如限制在机器内部只用一个累加器:单操作数指令:累加器用做源操作数以及目的操作数;双操作数指令:累加器用做源操作数之一以及目的操作数,以存储器为另一个源操作数;如限制在机器内部只用一个索引寄存器:当进行存储器直接寻址时,存储器地址由指令中的部分字段提供。当进行指数寻址时,目标地址一部分来自于指令的存储器地址,与一个指数寄存器相加之后,形成目标操作数的地址。,2023-6-23,65/68,计算机的工作本质上就是执行程序的过程。顺序执行指令执行的基本过程可以分为取指令(fetch)、分析指令(decode)和执行指令(execute)三个阶段。非顺序执行转移(jump)执行条件/无条件转移指令,不返回过程(procedure)调用 主程序调用子程序后返回断点中断(interrupt)外界突发事件处理完后返回断点异常(exception)程序本身产生的某些例外处理完后重新执行陷阱(trap)程序本身产生某些例外条件处理完后返回断点,计算机工作过程,2023-6-23,66/68,程序的执行过程,取指令、分析指令、执行指令,CB,AB,DB,地址译码,读控制,MOV A,5CHADD A,2EH,1,2023-6-23,67/68,