
微处理器系统结构与嵌入式系统设计课件:chap3 微处理器体系结构.ppt
173页1,第三章微处理器体系结构及关键技术,6学时,第三章微处理器体系结构及关键技术,3.1 微处理器体系结构及功能模块简介 处理器的主要功能及部件(掌握) 处理器的基本功能结构(掌握) 一个简化的处理器模型结构示例(理解) 3.2 处理器设计(理解) 处理器的设计步骤 控制器的操作与功能 随机逻辑控制器设计 微程序(微码)控制器结构及设计 寄存器组(register file)设计,2,第三章微处理器体系结构及关键技术,3.3 指令系统设计(掌握) 机器指令的组成 指令格式 指令类型 寻址方式 指令系统设计要点 3.4 指令流水线技术 流水线技术的特点(掌握) 流水线操作的详细说明(掌握) 流水线的局限性(理解) 指令流水线设计(理解) 3.5 典型微处理体系结构简介(理解) ARM体系结构简介 Intel x86体系结构简介,3,中央处理单元 Central Processing Unit, CPU 微处理器 Micro Processing Unit, MPU 微控制单元 Micro Control Unit, MCU 单片机 计算机,,单芯片,,控制器、运算器、寄存器,,CPU、少量存储器及I/O接口,,CPU+存储器+总线/接口+外设,几个概念,2020-12-19,4/86,3.1 微处理器体系结构及功能模块简介,冯诺依曼机: 5大部件 存储程序 串行单顺序,,,,,,每一个基本指令周期(或称取指、执行周期)经过一系列步骤执行一条指令 如指令读取、指令译码、数据读取、操作执行、结果存入以及下一条指令的确定 一条指令接着一条指令地重复这样的基本指令周期,3.1 微处理器体系结构及功能模块简介,,,数据通路,,CPU的RTL描述: 数据通路 控制器,,,,处理器的部件:算术逻辑运算部件(ALU)、寄存器组、内总线和控制器,7,微处理器组成,CPU组成 控制器 寄存器 算术和逻辑单元 指令执行单元 部件间的互连机构 指令系统 CPU的作用:协调并控制计算机的各个部件并执行程序的指令序列,微处理器的主要功能,计算机系统设计师认为:处理器是指一种能够经过多个步骤执行计算任务的数字设备 从本质上讲,处理器的作用是协调和控制计算机的各个部件,并执行程序的指令序列 处理器的5个主要功能: 指令控制:控制指令按程序逻辑顺序执行 操作控制:按照指令执行过程及指令约定功能的需求产生各种操作控制信号 时序控制:能够在适当的时间(时刻)使相应操作控制信号有效,并保持所需的时长 数据加工:对数据进行算术和逻辑运算处理 中断处理:程序执行过程中应能够及时处理出现的I/O操作请求及异常情况,8,9,CPU的功能,CPU的作用是协调和控制计算机的各个部件并执行程序的指令序列,具有以下基本功能:, 取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。
分析指令:即指令译码,是指对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令 执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成,数据通路:ALUReg+内部总线,,,,,,,,,,ALU:运算 Reg组:暂存 内总线:传输 简单的单总线 (ALU总线) 复杂的多级总线(片上总线),,,数据通路,数据通路是指运算相关的部件及相关的数据传输路径 算术逻辑运算部件ALU 寄存器组 通用寄存器组、暂存器、指令寄存器、程序计数器、当前程序状态寄存器、地址寄存器、数据缓冲寄存器 简单的处理器中只设置一组数据传送总线,用来连接处理器内的寄存器和ALU部件 较复杂的处理器可能设置几组双向数据总线,同时传送多个数据,11,12,CPU功能,能对指令进行译码并执行规定的动作 可以进行算术和逻辑运算 能与存储器和外设交换数据 提供整个系统所需的控制,控制器,,,输入,,,输出,,一条运算指令的读取和执行过程可被划分为取指令、取源操作数、取目的操作数、执行运算操作、存放运算结果等阶段,每个阶段又可以再分成若干步操作----控制器实现控制,简化的处理器模型机,控制器所需的指令、数据通路所需的数据都是从总线上得到 操作过程类似于上章所述,14,字长8位,4种指令格式的模型机结构,15,内存地址寄存器 内存数据寄存器 通用寄存器 累加寄存器 程序计数器 指令寄存器 多路选择器,简化的处理器模型,,,,,,,,哈佛结构,,,,CPU与内存储器的接口,,,1.对外形成三总线形式; 2.寄存器MAR和MDR简化了CPU与主存之间的传送通路,使其容易控制; 3.寄存器MAR和MDR对用户透明,即不能编程访问;,,3.2微处理器设计,数据通道 组成:ALU+寄存器+内部总线 功能:基本的二进制算术、逻辑及移位运算; 根据运算结果设置状态标志(进/借位、溢出等); 特性: 数据通路宽度:即字长,CPU单次传送和处理数据的能力。
数据通路周期:ALU运算并将保存结果的过程 控制单元(控制器) 时序控制部件:指令周期、工作周期、时钟周期(工作脉冲) 指令译码逻辑:微程序(CISC )、硬连逻辑(RISC ) 、,微处理器的总体结构,指令集结构(ISA)是体系 结构的主要内容之一,其功 能设计实际就是确定软硬件 的功能分配 考虑因素 速度、成本和灵活性 实现方式 硬件、软件 优化策略 RISC、CISC;流水线;多核; 实现内容 数据类型、指令功能、指令格式、寻址方式 实现步骤 根据应用初拟出指令的分类和具体的指令; 编写出针对该指令系统的各种高级语言编译程序; 对多种算法程序进行模拟测试,确认指令系统的操作码和寻址方式的效能是否都比较高; 用硬件实现高频使用的指令,软件实现低频使用指令指令系统设计,3.2.1 处理器的设计步骤,综合考虑指令系统、总体结构、时序系统等 拟定指令系统,20,3.2.1 处理器的设计步骤,确定总体结构 安排时序 拟定指令流程和微命令序列 形成控制逻辑 组合逻辑控制方式中,将产生微命令的条件进行综合、化简,形成逻辑式,从而构成控制器的核心逻辑电路 在微程序控制方式中,则是根据微命令代码来编写微指令,组成微程序,从而构成以控制存储器为核心的控制逻,21,3.2.2 控制器的操作与功能,微操作,22,23,1指令系统结构,指令字由几个字段组成 操作码字段规定了计算机指令系统中由CPU实现的操作 操作数是执行指令时需要的数据或寻找数据的方式 单个处理器的所有指令构成指令集,24,2随机逻辑体系结构,在随机逻辑体系结构中,用布尔逻辑函数来表示控制单元的输入和输出之间的关系,每一个控制信号在布尔逻辑中用一个逻辑符号表示 设计步骤: 使用指令集结构驱动硬件的逻辑方程 首先定义所需的指令集结构, 根据指令集结构决定硬件的逻辑方程及有限状态机的逻辑 硬件的逻辑方程再反馈到指令集结构 为简化具体实现所需的硬件逻辑,对指令集结构做必要的修改和优化,达到最大限度地减少逻辑复杂度的目的 由于指令集与硬件逻辑之间关系密切,设计过程复杂,难以用于其他款的处理器,重用性差,25,随机逻辑体系结构,26,随机逻辑体系结构的特点,优点: 使用的门电路总数少 从而减少制造费用 缺点: 指令集结构与硬件逻辑方程之间存在着密切联系,设计过程复杂 重用性差 设计成果很少能再利用到以后的新CPU设计中 指令集优化困难 仅用于较简单的指令集结构,27,3微码(Microcode)体系结构,在微码(微指令)结构中,控制单元的输入和输出之间的关系被视为一个存储系统,相当于把控制信号存储起来 控制信号存放在一个微程序内存里。
在指令执行过程中的每一个时钟周期,从微程序内存里读取一个(微)控制字作为指令执行的控制信号 微码设计思想 用软件方法控制数据信息传送,达到硬件实现 微程序顺序产生单条指令执行所需的全部控制信号,28,微码结构的工作原理,在微码体系结构中,其CPU的指令系统可以不直接用硬件逻辑电路实现,而是通过执行微代码程序来实现 微码结构由如下两部分组成: 微码控制器:小型的高速控制器 微代码:在微码控制器中运行的微指令和软件 设计微码体系结构的主要目的是: 当设计新的微码体系结构时能够减少重复设计的费用,增强CPU的性能,29,指令、微程序、微指令(微码),微指令:在一个时间单位(节拍)内出现的一组微操作描述的语句 微程序:一组微指令系列 通过一组微指令产生的控制信号,使一条指令中的所有微操作得以实现,即实现一条指令的功能,T1:微操作1(命令1,命令2,) 微操作2(命令1,命令2), Ti:微操作j(命令1,命令2,) 微指令i, Tm:微操作n(命令1,命令2,) 微指令m,微指令1,,,,一条机器指令,一个微程序,30,微码结构,31,微码机器包括:数据通路和控制流两个主要部分,32,微指令,33,微程序控制器的一般结构,34,微码结构优缺点,优点: 高度抽象存储结构,不是硬件电路 不易出错 易于修改,更新设计快 缺点: 微码的硬件电路开销大 微控制器的运行速度高 指令开箱依赖于微指令系统,指令集设计示例,假设某机器的字长是8位,支持常见的简单指令:指令是双地址指令,源操作数采用2种寻址方式寄存器寻址(R0R3)和立即寻址;目标操作数可采用2种寻址方式寄存器寻址和存储器直接。
请为下述九条机器指令设计可行的代码方案若采用定长编码(8bit)方案,可定义指令格式如下:,=0000表示ADD =0001表示SUB =0010表示MOV =0011表示IN =0100表示OUT =0101表示RR ,目标寄存器编号,源寄存器编号,操 作 码,机器指令集,,机器指令符号表示法,由于直接与机器指令二进制表示法打交道很困难,于是普遍使用的是机器指令符号表示法(symbol representation) 操作码可缩写成助记符(mnemonic)来表示 ADD加 SUB减 MUL乘 DIV除 LOAD 由存储器装入 STOR 存入存储器,2020-12-19,汇编语言,数据类型,确认某种特殊类型的数据是否应该得到硬件支持 数值型数据:无符号整数、带符号整数、浮点数 非数值数据:字符串 确认字长(对数据长度的限制) 截断(truncation)或溢出(overflow) 在选择数据格式和长度时需要平衡数值范围、程序执行期间发生溢出的可能性、处理设备和存储设备的复杂性、以及价格和速度等因素指令类型,指令按功能可分成以下三种基本类型: 数据传输:将数据从一个地方(源地址)复制到另一个 地方(目的地址),传输结束后源地址中的内容不变。
数据传送范围: R-R、R-M、M-R或M-M 数据传送宽度:一般为固定值(如8、16或32bit),其它宽度的数据传送一般可通过软件移位和合并操作来实现 数据运算:包括算术运算(加、减、乘、除等)和逻辑 运算(与、或、非、异或等) 该类指令需要明确操作数的类型和长度 控制类:用于改变正常的程序执行流程,完成程序的跳转,主要包括转移指令和过程指令I/O?,机器指令要素,操作码(operation code,opcode):需要完成的操作; 源操作数 (source operand reference):操作所需的输入; 结果操作数 (result operand reference):操作产生的结果; 下一条指令 (next instruction reference):告诉CPU到哪里取下一条指令2020-12-19,指令格式,在计算机内部,指令由一个位串来表示相应于指令的各要素,这些位串划分成几个字段: 操作码字段: 说明CPU应进行的操作 按操作类型分组:同类操作要求同样或类似的控制信号,因此编码也类似(有尽可能多的公共位) 操作数字段/地址字段: 说明源操作数和目的操作数存放的位置信息(R、M或I/O); 说明源操作数和目的操作数的数据类型; 下一条指令地址字段: 如紧跟当前指令。
