收藏 分享(赏)

第三章微处理器体系结构及关键技术.ppt

上传人:gnk289057 文档编号:9239056 上传时间:2019-07-30 格式:PPT 页数:67 大小:8.76MB
下载 相关 举报
第三章微处理器体系结构及关键技术.ppt_第1页
第1页 / 共67页
第三章微处理器体系结构及关键技术.ppt_第2页
第2页 / 共67页
第三章微处理器体系结构及关键技术.ppt_第3页
第3页 / 共67页
第三章微处理器体系结构及关键技术.ppt_第4页
第4页 / 共67页
第三章微处理器体系结构及关键技术.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、第3章 微处理器关键技术,微处理器基本功能及硬件组成 微处理器体系结构 随机逻辑体系结构 RISC结构,目标是减小电路规模并降低制造费用 微码体系结构CISC结构,目标是减少重复设计费用、增强CPU性能 流水线体系结构利用指令并行以提高计算机的性能 超标量体系结构利用多条流水线进一步提高计算机性能 指令系统设计 计算机工作过程,1/68,第三章习题,作业: 1、2、7、9、11、13 思考: 36、8、10、12、15、16,2019-7-30,2/68,第三章 结 束,2019-7-30,3/68,CPU的基本功能,CPU的作用是协调和控制计算机的各个部件并执行程序中的指令序列,因此应具有以

2、下基本功能:, 取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。 分析指令:即指令译码,是指对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。 执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成。,2019-7-30,4/68,CPU的基本功能模型,编程人员看到的CPU,2019-7-30,5/68,中央处理单元Central Processing Unit, CPU 微处理器Micro Proces

3、sing Unit, MPU 微控制单元Micro Control Unit, MCU 单片机 计算机,单片芯片,控制器、运算器、寄存器,CPU、少量存储器及I/O接口,CPU+存储器+总线/接口+外设,几个概念的对比,2019-7-30,6/68,控制单元(控制器) 时序控制部件:指令周期、工作周期、时钟周期(工作脉冲) 指令译码逻辑:微程序(CISC )、硬连逻辑(RISC ) 数据通道(运算器) 组成:ALU+寄存器+内部总线 功能:基本的二进制算术、逻辑及移位运算;根据运算结果设置状态标志(进/借位、溢出等); 特性: 数据通路宽度:即字长,CPU单次传送和处理数据的能力。 数据通路周

4、期:ALU运算并将保存结果的过程。,CPU的硬件组织,7/68,时序控制部件,时序控制部件:脉冲源+分频逻辑;用以产生各种系统所需的、满足时序要求的控制信号。 指令周期 读取并执行一条指令所需的时间 工作周期 指令周期中的不同工作阶段 时钟周期 系统中最小的基本时间分段,指令周期状态图,CPU中的多级时序,不同的CPU设计策略:CISC与RISC,CISC(Complex Instruction Set Computer,复杂指令集计算机) 不断增强原有指令的功能以及设置更为复杂的新指令取代原先由程序段完成的功能,从而实现软件功能的硬化。 RISC(Reduced Instruction Se

5、t Computer,精简指令集计算机) 通过减少指令种类和简化指令功能来降低硬件设计复杂度,从而提高指令的执行速度。现代计算机:RISC+CISC,2019-7-30,9/68,CISC的特点及设计思想,美国加州大学Berkeley分校的研究结果表明: 许多复杂指令很少被使用,“2-8原则” 控制器硬件复杂(指令多,且 具有不定长格式和复杂的数据 类型),占用了大量芯片面积 ,且容易出错,VLSI设计困难。 指令操作繁杂,执行速度慢。 指令规整性不好,不利用采用流水线技术提高性能。,2019-7-30,10/68,RISC的特点及设计思想,RISC机的设计应当遵循以下五个原则: 指令条数少,

6、格式简单,易于译码; 提供足够的寄存器,只允许load和store指令访问内存; 指令由硬件直接执行,在单个周期内完成; 充分利用流水线; 强调优化编译器的作用;,2019-7-30,11/68,典型的数据通路结构,ALU的实现: (1)由基本门电路实现全加器; (2)由n位全加器构成n位并行加法器 (3)以加法器为核心,通过扩展输入选择逻辑实现其它基本算术和逻辑运算;,2019-7-30,12/68,ALU功能描述示例,算术逻辑运算功能,移位运算功能,2019-7-30,CPU数据通路的RTL模型 (Register Transfer Level),2019-7-30,14/68,CISC与

7、RISC的数据流,2019-7-30,15/68,微处理器体系结构分类,16/68,随机逻辑(硬连逻辑)体系结构用布尔逻辑函数来表示控制单元的输入和输出之间的关系。,随机逻辑CPU的体系结构,时序部件,指令预处理,2019-7-30,17/68,随机逻辑CPU的操作1-取指令, 程序计数器的值经MUX送到存储器; 存储器送回的指令写入指令寄存器; 程序计数器加1后回写;,2019-7-30,18/68,随机逻辑CPU的操作2-指令译码与执行, 寄存器堆中的某个地址寄存器通过MUX寻址存储器,获得ALU的一个操作数; 另一个操作数来自于寄存器堆中的数据寄存器; ALU的结果值被回写入寄存器堆。,

8、2019-7-30,19/68,随机逻辑CPU的设计步骤,指令集结构驱动硬件的逻辑方程定义所需的指令集结构;根据指令集决定硬件逻辑及有限状态机; 硬件逻辑方程反馈到指令集结构对指令集结构做必要的修改和优化;最大限度地减少逻辑复杂度;,2019-7-30,20/68,最小化逻辑门数目优化硬件逻辑、尽可能地少用触发器 优化硬件时序逻辑门级数最小化;建立并行通路以减少时序约束(增加逻辑门) 简化指令集逻辑简单、寄存器数量少,随机逻辑CPU的设计要点,RISC,2019-7-30,21/68,随机逻辑CPU的特点,优点:可通过简化指令减少所使用的门电路总数从而减少制造费用。 缺点: 指令集结构与硬件逻

9、辑方程之间存在着密切联系,设计过程复杂。 重用性差,设计成果很少能再利用到以后的新CPU设计中。 适用于较简单的指令集结构。,2019-7-30,22/68,微码CPU的体系结构,在微码结构中,控制单元的输入和输出之间的关系被视为一个存储系统。,时序部件,指令预处理,工作原理微程序控制,又称存储控制。组成 微码控制器 +微代码,2019-7-30,23/68,微码CPU的控制逻辑与控制流,控制逻辑对IR中的指令译码,确定对应微码程序地址并写入PC; PC向微码ROM提供地址,返回的微码写入IR; IR译码后产生相应 的控制信号; PC地址加1后获取 下一条微指令地址, 直到完成整个微码 程序;

10、,2019-7-30,微码CPU的数据通路与数据流,数据通路一般应有如下三个基本的时钟周期: 从存储器读数据后: 写入寄存器堆(Register File); 写入指令寄存器(IR); 写入临时寄存器(TempIn); 作为ALU的一个输入; 从寄存器读数据后: 写入存储器地址寄存器MAR; 写入临时寄存器作为ALU的 一个输入; 存入存储器; 将Result寄存器内容写入寄存器堆,或存入存储器,2019-7-30,25/68,微码CPU的设计步骤,建立硬件体系结构保证其具备执行必要基本功能步骤的功能。 将指令分割成许多微步骤,转写成微程序并写入控制存储器ROM。,微指令Micro-instr

11、uction 微程序Micro-program(固件fireware) 指令instruction 微码控制器Microcode controller(定序器sequencer),2019-7-30,26/68,微码CPU的特点,优点: 可以通过减少取指令次数的方法来降低存储器总访问时间从而提高系统性能; 简化硬件设计,可使其成品机器几乎没有设计上的错误; 建立或改动微代码比建立或改动电路省时、不易出错,因此创建新的CPU版本将会更快; 缺点: 微代码比硬件实现的开销大; 宏指令的开销依赖于微指令系统;,2019-7-30,27/68,微码结构与随机逻辑结构的比较,硬件设计开销 随机逻辑CPU

12、的硬件和指令集必须同步进行设计和优化,因此比较复杂。 微码CPU的指令集设计并不直接影响现有硬件,修改指令集并不需要重新设计新的硬件。 性能 如果采用相同指令集,则随机逻辑CPU操作会更快。 如果执行相同的计算任务,微码CPU能够通过使用更少(但更复杂)的指令达到更高性能。 当系统整体性能受限于存储器的速度时,微码CPU对性能提高的优势更为明显。,2019-7-30,28/68,流水线技术,可通过分割逻辑,插入缓冲寄存器(流水线Reg)来构建; 利用指令级并行以提高计算机的性能;,流水线满载,独立硬件模块,2019-7-30,指令时空图,顺序执行,4级流水线执行,流水线满载,30/68,四级流

13、水线CPU的操作,(1)取指令级 将下一条指令的地址发送到指令存储器,并等待此指令返回。 (2)指令译码级 指令译码并从寄存器中取出所需的源操作数。 (3)指令执行级 执行运算,并将其结果送至下一阶段;而存储器取存指令则利用此阶段从存储器中完成数据的取存操作 (4)数据回写级将数据写回到寄存器或者数据存储器,或在决定分支跳转时写入地址寄存器给出下一个指令的地址。,31/68,流水线CPU中双存储器访问的操作, 所有ALU指令都限制为仅可对寄存器进行; 只有存储器取存指令才能读写存储器; a)从存储器取出(LOAD):Mem(Reg 1)Reg 2 b)写入存储器(STORE):Reg 1Mem

14、(Reg 2) 否则会需要更多级流水线;,2019-7-30,32/68,流水线CPU的性能,吞吐量(throughput)单位时间完成的作业,最大值等于每一时钟周期1个作业。 等待时间(latency)每一作业从开始到结束需用时钟周期数d。 深度(depth)或并行度(degree of parallelism)即流水线的级数d 。 加速比非流水线执行时间相对流水线执行时间之比。如果d级流水线每级需用一个时钟周期T,则N条指令的总执行时间:Tpipeline = Tload +Tempty = (N+(d-1)*T则该流水线的加速比为:Tunpipeline/ Tpipeline= Nd /

15、(N + d -1),2019-7-30,33/68,流水线结构与微码结构的比较1,指令集的限制 微码机器中指令可以任意复杂; 流水线机器中指令越复杂所需的级数就越多; 指令的并行性 微码机器中指令的各微码执行阶段必须依次执行 流水线机器容许同时执行不同指令; 提高性能的手段 微码机器通过减少存储器读来提高性能; 流水线机器通过增加硬件实现指令的并行来提高性能;,2019-7-30,34/68,流水线结构与微码结构的比较2,比较下列操作在微码CPU和流水线CPU中的执行情况: Mem(Reg 1)+Mem(Reg 2)Reg 3 微码机器(CISC)中只需要一条指令表示,而在流水线机器(RIS

16、C)里则需要3条指令; 假设没有存储器延迟,则流水线机器中这3条指令可以在3个时钟周期内完成,而微码机器则需要8个时钟周期。 在流水线机器中需要取存5次存储器,而微码机器只需要3次。若存储器较慢,则微码CPU的执行速度可能更快,3次指令,2次数据,1次指令,2次数据,取指+译码执行:取操作数2,加法,存结果,2019-7-30,35/68,流水线CPU的特点,优点:通过指令级并行来提高性能。 缺点: 增加了硬件成本。 流水寄存器引入延迟和时钟偏移,这些额外开销会使每条指令的执行时间有所增加,这也限制了流水线的深度。 流水线中各段的操作存在关联(dependence)时也会引起流水线中断,从而影

17、响流水线的性能和效率。,2019-7-30,36/68,流水线冲突,理想流水线的性能:每个时钟周期完成一条指令 实际流水线机器中可能存在的冲突(hazard): 数据冲突(如后面的计算要用到前面的结果) 定向技术可将结果数据从其产生的地方直接传送到所有需要它的功能部件 编译器可利用流水线调度(scheduling)技术来重新组织指令顺序 结构冲突(硬件资源不够) 增加额外的同类型资源 改变资源的设计使其能被同时使用 控制冲突(分支等跳转指令引起 ) 可采用分支预测及预测执行技术最大限度地使处理器各部分保持运行状态。,多端口的寄存器堆,哈佛结构存储器、超标量流水线,2019-7-30,37/68

18、,流水线数据冲突及乱序执行,教材图3-22有误,流水线结构冲突及超标量流水线,?,有5个执行单元的超标量流水线,有2套硬件的超标量流水线CPU,共用一个取指单元的5段双流水线,2019-7-30,VLIW处理机的结构与指令格式,和超标量处理机不同,超长指令字VLIW(Very Long Instruction Word)依靠编译器在编译时找出指令之间潜在的并行性,并通过指令调度把可能出现的数据冲突减少到最小,最后把能并行执行的多条指令组装成一条很长的指令,然后由处理机中多个相互独立的执行部件分别执行长指令中的一个操作,即相当于同时执行多条指令。VLIW处理机能否成功,很大程度上取决于代码压缩的

19、效率,其编译程序和体系结构的关系 非常密切,缺乏对传统软件 和硬件的兼容,因而不大适 用于一般应用领域。,2019-7-30,超标量CPU的体系结构,超标量技术:可在一个时钟周期内对多条指令进行并行处理,使CPI小于1; 特点:处理器中有两个或两个以上的相同的功能部件;要求操作数之间必须没有相关性;,整数指令,浮点指令,2019-7-30,41/68,超标量处理机一般概念性结构,instruction fetching 多个流水线读取及转移预测逻辑 instruction decoding 并行译码器,预译码技术 instruction dispatching 动态规划 instruction

20、 execution 多个流水线功能单元 instruction completion 暂存结果数据 instruction retiring 真正更新Reg和Mem中的结果数据,2019-7-30,42/68,超标量结构机器的例子,两条输入流水线,三条执行流水线,每个时钟周期可从存储器中获取两条指令,用于执行不需要访问存储器的指令,可处理所有需要或不需要访问存储器的指令,可用于进行乘、除类较复杂的算术运算,决定应使用哪一条执行流水线,指令集结构(ISA,Instruction Set Architecture): 是体系结构的主要内容之一,对CPU的基本组织会产生非常大的影响。ISA功能设计

21、实际就是确定软硬件的功能分配。 考虑因素 速度、成本和灵活性 实现方式 硬件、软件 优化策略 RISC、CISC;流水线;多核; 实现内容 数据类型、指令功能、指令格式、寻址方式 实现步骤 根据应用初拟出指令的分类和具体的指令; 编写出针对该指令系统的各种高级语言编译程序; 对多种算法程序进行模拟测试,确认指令系统的操作码和寻址方式的效能是否都比较高; 用硬件实现高频使用的指令,软件实现低频使用指令。,指令系统设计,2019-7-30,随机逻辑CPU的指令集设计,考虑能否让逻辑门可以快速而方便地实现指令译码。 一般的设计方法是将指令内部的结构划分成多个指令字段(field)。同时还要求这些指令

22、字段在各指令中所放的位置尽可能一样。这样,在CPU中可以减少指令译码所需的逻辑数量。在随机逻辑CPU的指令集中,可以使用以下4种类型的指令:分支指令(branch instruction) 、存储器引用指令(memory reference instruction)、ALU指令(ALU instruction)、设置指令(SET instruction)。,45/68,流水线CPU的指令集设计,复杂的指令需要更多的流水线阶段: 若要能够使用索引存储器的地址,则在执行阶段之后需要增加一个单独的存储器阶段,从而成为一个五级流水线。 ALU运算若要能够支持源存储器,则在执行阶段之前需要增加一个单独的

23、存储器阶段,从而成为一个五级流水线。 对于既要有存储器索引又要有源存储器的ALU运算,就需要上述额外的两个阶段,从而成为一个六级流水线。,46/68,机器指令符号表示法 symbol representation,由于直接与机器指令二进制表示法打交道很困难,于是普遍使用的是机器指令符号表示法(symbol representation)。操作码可缩写成助记符(mnemonic)来表示:ADD 加SUB 减MUL 乘DIV 除LOAD 由存储器装入STOR 存入存储器,2019-7-30,47/68,数 据 类 型,确认某种特殊类型的数据是否应该得到硬件支持。数值型数据:无符号整数、带符号整数、

24、浮点数非数值数据:字符串 确认字长(对数据长度的限制)。截断(truncation)或溢出(overflow)在选择数据格式长度时需要平衡数值范围、程序执行期间发生溢出的可能性、处理设备和存储设备的复杂性、以及价格和速度等因素。,2019-7-30,48/68,指令类型,指令按功能可分成如下三种基本类型: 数据传输:将数据从一个地方(源地址)复制到另一个地方(目的地址),传输结束后源地址中的内容不变。数据传送范围: R-R、R-M、M-R或M-M数据传送宽度:可能为固定值(如8、16或32bit),其它宽度的数据 传送一般可通过软件移位和合并操作来实现。 数据运算:包括算术运算(加、减、乘、除

25、等)和逻辑运 算(与、或、非、异或等)。该类指令需要明确操作数的类型和长度。 控制类:用于改变正常的程序执行流程,完成程序的跳转 ,主要包括转移指令和过程指令。,I/O?,2019-7-30,49/68,机器指令要素,操作码(operation code,opcode):需要完成的操作; 源操作数 (source operand reference):操作所需的输入; 结果操作数 (result operand reference):操作产生的结果; 下一条指令 (next instruction reference):告诉CPU这到 哪里取下一条指令。,2019-7-30,50/68,指令格

26、式,在计算机内部,指令由一个位串来表示。相应于指令的各要素,这些位串划分成几个字段:操作码字段:说明CPU应进行的操作 操作数字段/地址字段: 说明源操作数和目的操作数存放的位置信息: 说明源操作数和目的操作数的数据类型。 下一条指令地址字段:如紧跟当前指令,在主存或虚存中,则不需显示引用;如可能产生跳转,则需要显示给出存储地址;,指令类型决定了CPU的软件功能特性,寻址方式决定了CPU硬件功能特性,51/68,寻 址 方 式,操作数实际存放位置:寻址方式: 1操作数在寄存器中:寄存器(直接)寻址 2操作数在存储器中:存储器直接寻址、存储器间接寻址、立即数寻址、相对寻址 3操作数在I/O接口中

27、:存储器寻址(存储器映像编址)或端口寻址(独立编址),52/68,寄存器直接寻址方式 register direct addressing mode,指令的地址字段给出寄存器号(名) ,而被指定的寄存器的内容就是操作数。,2019-7-30,53/68,存储器直接寻址 memory direct addressing mode,指令的地址字段直接给定一个立即数作为存储器的逻辑地址。,寄存器直接寻址,2019-7-30,54/68,存储器间接寻址 memory indirect addressing mode,(1)寄存器间接寻址方式 (2)存储器间接寻址方式 (3)位移量寻址方式 (4)指数寻

28、址方式 (5)自增和自减寻址方式 (6)比例尺寻址方式,2019-7-30,55/68,寄存器间接寻址方式 register indirect addressing mode,将存储器地址指定在寄存器中,即让寄存器内容指向一个可访问到操作数的存储器单元。,2019-7-30,56/68,存储器间接寻址方式 memory indirect addressing mode,2019-7-30,57/68,位移量寻址方式 displacement addressing mode,针对数组、矩阵类向量数据的存取,2019-7-30,58/68,指数寻址方式 indexed addressing mod

29、e,与位置无关的(position-independent)汇编语言程序,2019-7-30,59/68,自增和自减寻址方式 auto-increment/decrement addressing mode,PUSH POP,比例尺寻址方式 scaled addressing mode,用字节表示的操作数的长度,位移量寻址+指数寻址+自增/自减寻址,2019-7-30,61/68,PC相对寻址方式 Program Counter-related addressing mode,主要用在转移和跳转指令,指定汇编语言程序码的内部位置作为操作数。指令:JUMP abe 操作: PC abe = (P

30、C)updated +(imm)sign_ext,表示当前指令取出后的PC值,出现在指令中,2019-7-30,62/68,立即数寻址 immediate addressing mode,2019-7-30,63/68,指 令 字 段,常见指令字段分配,操作码位段分配,扩展操作码,2019-7-30,64/68,操作数的数目,二元操作(binary operation)是一种基本操作类型,通常包含三个操作数地址:两个源操作数和一个目的(结果)操作数。每一个操作数可以定位在存储器或寄存器中。 如限制在机器内部只用一个累加器: 单操作数指令:累加器用做源操作数以及目的操作数; 双操作数指令:累加器

31、用做源操作数之一以及目的操作数,以存储器 为另一个源操作数; 如限制在机器内部只用一个索引寄存器: 当进行存储器直接寻址时,存储器地址由指令中的部分字段提供。 当进行指数寻址时,目标地址一部分来自于指令的存储器地址,与一 个指数寄存器相加之后,形成目标操作数的地址。,2019-7-30,65/68,计算机的工作本质上就是执行程序的过程。 顺序执行 指令执行的基本过程可以分为取指令(fetch)、分析指令(decode)和执行指令(execute)三个阶段。 非顺序执行 转移(jump) 执行条件/无条件转移指令,不返回 过程(procedure)调用 主程序调用子程序后返回断点 中断(interrupt) 外界突发事件处理完后返回断点 异常( exception)程序本身产生的某些例外处理完后重新执行 陷阱(trap) 程序本身产生某些例外条件处理完后返回断点,计算机工作过程,2019-7-30,66/68,程序的执行过程,取指令、分析指令、执行指令,CB,AB,DB,地址译码,读控制,MOV A,5CH ADD A,2EH,1,2019-7-30,67/68,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报