第三章微处理器体系结构及关键技术3.1微处理器体系结构及功能模块简介1.处理器的主要功能2.处理器的基本结构3.一个简化的处理器模型结构示例3.2处理器设计1.指令系统2.数据通路3.控制流程4.时序部件5.控制逻辑3.3指令流水线技术3.4典型微处理体系结构简介3.5先进的微处理器技术2020/1/24数据类型、指令功能、指令格式、寻址方式ALU、Reg、总线宽度、周期程序、指令、微操作时钟周期、工作周期、指令周期随机逻辑、微程序(微码)1.中央处理单元CentralProcessingUnit,CPU2.微处理器MicroProcessingUnit,MPU3.微控制单元MicroControlUnit,MCU4.单片机5.计算机单片芯片控制器、运算器、寄存器CPU、少量存储器及I/O接口CPU+存储器+总线/接口+外设几个概念2020-1-243/863.1.1微处理器的主要功能计算机系统设计师认为:处理器是指一种能够经过多个步骤执行计算任务的数字设备。从本质上讲,处理器的作用是协调和控制计算机的各个部件,并执行程序的指令序列。处理器的5个主要功能:①指令控制:控制指令按程序逻辑顺序执行。②操作控制:按照指令执行过程及指令约定功能的需求产生各种操作控制信号。③时序控制:能够在适当的时间(时刻)使相应操作控制信号有效,并保持所需的时长。④数据加工:对数据进行算术和逻辑运算处理。⑤中断处理:程序执行过程中应能够及时处理出现的I/O操作请求及异常情况。3.1.2CPU最基本的功能CPU的作用是协调和控制计算机的各个部件并执行程序中的指令序列,因此应具有以下基本功能:取指令,PC值加1停机?译码并执行结束YN①取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。②分析指令:即指令译码,是指对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。③执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成。2020-1-245/86微处理器的基本结构冯·诺依曼机:5大部件存储程序串行单顺序数据通路CPU的RTL描述:数据通路控制器数据通路:ALU+Reg+内部总线ALU:运算Reg组:暂存内总线:传输简单的单总线(ALU总线)复杂的多级总线(片上总线)控制器输入输出3.1.3简化的处理器模型输入输出简化的处理器模型哈佛结构CPU与内存储器的接口1.对外形成三总线形式;2.寄存器MAR和MBR简化了CPU与主存之间的传送通路,使其容易控制;3.寄存器MAR和MBR对用户透明,即不能编程访问;微处理器的总体结构数据通道1.组成:ALU+寄存器+内部总线2.功能:基本的二进制算术、逻辑及移位运算;根据运算结果设置状态标志(进/借位、溢出等);3.特性:数据通路宽度:即字长,CPU单次传送和处理数据的能力。数据通路周期:ALU运算并将保存结果的过程。控制单元(控制器)1.时序控制部件:指令周期、工作周期、时钟周期(工作脉冲)2.指令译码逻辑:微程序(CISC)、硬连逻辑(RISC)、……指令集结构(ISA)是体系结构的主要内容之一,其功能设计实际就是确定软硬件的功能分配。考虑因素速度、成本和灵活性实现方式硬件、软件优化策略RISC、CISC;流水线;多核;……实现内容数据类型、指令功能、指令格式、寻址方式实现步骤–根据应用初拟出指令的分类和具体的指令;–编写出针对该指令系统的各种高级语言编译程序;–对多种算法程序进行模拟测试,确认指令系统的操作码和寻址方式的效能是否都比较高;–用硬件实现高频使用的指令,软件实现低频使用指令。3.2.1指令系统设计指令集设计示例假设某机器的字长是8位,支持常见的简单指令:指令是双地址指令,源操作数采用2种寻址方式—寄存器寻址(R0~R3)和立即寻址;目标操作数可采用2种寻址方式-寄存器寻址和存储器直接。请为下述九条机器指令设计可行的代码方案。若采用定长编码(8bit)方案,可定义指令格式如下:76543210=0000表示ADD=0001表示SUB=0010表示MOV=0011表示IN=0100表示OUT=0101表示RR……目的操作数寻址方式:0—直接寻址1—寄存器寻址目标寄存器编号源操作数寻址方式:0—立即寻址1—寄存器寻址源寄存器编号操作码机器指令集机器指令符号表示法由于直接与机器指令二进制表示法打交道很困难,于是普遍使用的是机器指令符号表示法(symbolrepresentation)。操作码可缩写成助记符(mnemonic)来表示:ADD加SUB减MUL乘DIV除LOAD由存储器装入STOR存入存储器2020-1-2416/86汇编语言数据类型确认某种特殊类型的数据是否应该得到硬件支持数值型数据:无符号整数、带符号整数、浮点数非数值数据:字符串确认字长(对数据长度的限制)截断(truncation)或溢出(overflow)在选择数据格式和长度时需要平衡数值范围、程序执行期间发生溢出的可能性、处理设备和存储设备的复杂性、以及价格和速度等因素。指令类型指令按功能可分成以下三种基本类型:1.数据传输:将数据从一个地方(源地址)复制到另一个地方(目的地址),传输结束后源地址中的内容不变。数据传送范围:R-R、R-M、M-R或M-M数据传送宽度:一般为固定值(如8、16或32bit),其它宽度的数据传送一般可通过软件移位和合并操作来实现。2.数据运算:包括算术运算(加、减、乘、除等)和逻辑运算(与、或、非、异或等)。该类指令需要明确操作数的类型和长度。3.控制类:用于改变正常的程序执行流程,完成程序的跳转,主要包括转移指令和过程指令。I/O?机器指令要素操作码(operationcode,opcode):需要完成的操作;源操作数(sourceoperandreference):操作所需的输入;结果操作数(resultoperandreference):操作产生的结果;下一条指令(nextinstructionreference):告诉CPU到哪里取下一条指令。2020-1-24指令格式在计算机内部,指令由一个位串来表示。相应于指令的各要素,这些位串划分成几个字段:–操作码字段:说明CPU应进行的操作按操作类型分组:同类操作要求同样或类似的控制信号,因此编码也类似(有尽可能多的公共位)–操作数字段/地址字段:说明源操作数和目的操作数存放的位置信息(R、M或I/O);说明源操作数和目的操作数的数据类型;–下一条指令地址字段:如紧跟当前指令,在主存或虚存中,则不需显示引用;如可能产生跳转,则需要显示给出存储地址;指令类型决定了CPU的软件功能特性寻址方式决定了CPU硬件功能特性20/86操作码字段常见指令字段分配操作码位段分配扩展操作码操作数字段二元操作(binaryoperation)是一种基本操作类型,这样的指令通常包含三个操作数地址:两个源操作数和一个目的(结果)操作数。为了缩短指令长度,可以采用以下方法:•只有一个地址指定给存储器中的操作数,而其余地址都指定给寄存器,可以在指令格式中明确地指定其寄存器号。把一个、两个或三个操作数的地址在指令格式中变成隐含的地址。隐含的地址可以指定给专用寄存器,而这些寄存器的名字隐含在指令格式的操作码中。2020-1-2422/86机器指令结构:M-M、M-R、R-R机器指令结构:零地址、单地址、双地址寻址方式操作数实际存放位置:寻址方式:1.在指令码中指定操作数:立即数寻址2.在寄存器中指定操作数:寄存器(直接)寻址3.在存储器中指定操作数:存储器直接寻址、存储器间接寻址4.在汇编程序中指定操作数:相对寻址5.操作数在I/O接口中:存储器寻址(存储器映像编址)或端口寻址(独立编址)ABDB控制器运算器寄存器CPU存储器00000H~FFFFFHI/O接口0000H~FFFFHI/O外设CB立即数寻址immediateaddressingmode寄存器直接寻址方式registerdirectaddressingmode指令的地址字段给出寄存器号(名),而被指定的寄存器的内容就是操作数。存储器直接寻址memorydirectaddressingmode指令的地址字段直接给定一个立即数作为存储单元的地址。寄存器直接寻址存储器间接寻址memoryindirectaddressingmode(1)寄存器间接寻址方式(2)存储器间接寻址方式(3)位移量寻址方式(4)变址寻址方式(5)比例尺寻址方式用于加强编写与位置无关的汇编语言程序寄存器间接寻址方式registerindirectaddressingmode将存储器地址指定在寄存器中,即让寄存器内容指向一个可访问到操作数的存储器单元。2020-1-2428/86存储器间接寻址方式memoryindirectaddressingmode多级间接寻址;通常用于访问存储器中的“跳转表”:跳转表首址指定在寄存器中,该表中的每个表项指向一个可访问到操作数的存储器单元。跳转表位移量寻址方式displacementaddressingmode通常用于数组、矩阵类向量数据的存取:寄存器值指定数组首址,立即数指定组内偏移;指数寻址方式indexedaddressingmode通常用于数组、矩阵类向量数据的存取:寄存器1值指定数组首址,寄存器2指定组内偏移;比例尺寻址方式scaledaddressingmode用字节表示的操作数的长度位移量寻址+指数寻址+自增/自减寻址PC相对寻址方式ProgramCounter-relatedaddressingmode主要用在转移和跳转指令,指定汇编语言程序码的内部位置作为目的地址偏移量操作数。指令:JUMP[abe]操作:PC←[abe]=(PC)updated+immSign_ext当前指令取出后的PC值出现在指令中3.2.2基本的数据通路结构ALU的实现:(1)由基本门电路实现全加器;(2)由n位全加器构成n位加法器;(3)以加法器为核心,通过扩展输入选择逻辑实现其它基本算术和逻辑运算;ALU功能描述示例算术逻辑运算功能移位运算功能数据通路中数据流的定义IRIDREGALUMEM开始退出IRIDALUMEMREG微操作通道开始退出单通数据通道RISC:Load/Store结构CISC:寻址方式复杂数据通路的实现3.2.3控制流程:程序、指令、微操作3.2.4时序控制部件时序控制部件:脉冲源+分频逻辑;用以产生各种系统所需的、满足时序要求的控制信号。指令周期读取并执行一条指令所需的时间工作周期指令周期中的不同工作阶段时钟周期系统中最小的基本时间分段CPU中的多级时序一个指令周期中的多个工作周期现代控制器设计趋势:采用非集中控制模式,I/O和M拥有各自的控制器,从而变为自主的功能部件。I/O和M采用异步控制。按照微控制命令的形成方式,控制器可分为随机逻辑和微程序两种基本类型。3.2.5控制器的设计控制器根据指令译码结果和当前状态决定在什么时间、根据什么条件、发出什么命令、做什么操作:生成时序控制信号生成指令执行所需的控制信号响应各种中断或异常事件请求随机逻辑CPU的体系结构随机逻辑(硬连逻辑)体系结构用布尔逻辑函数来表示控制单元的输入和输出之间的关系。时序部件指令预处理随机逻辑CPU的特点优点:可通过简化指令减少所使用的门电路总数从而减少制造费用。缺点:–指令集结构与硬件逻辑方程之间存在着密切联系,设计过程复杂。–重用性差,设计成果很少能再利用到以后的新CPU设计中。–适用于较简单的指令集结构。最小化逻辑门数目优化硬件逻辑、尽可能地少用触发器优化硬件时序逻辑门级数最小化;建立并行通路以满足时序约束(增加逻辑)简化指令集逻辑简单、寄存器数量少随机逻辑CPU的设计要点RISC最重要的目的随机逻辑CPU的设计步骤一.指令集结构