《微处理器系统结构与嵌入式系统设计课件:第三章 微处理器体系结构-》由会员分享,可在线阅读,更多相关《微处理器系统结构与嵌入式系统设计课件:第三章 微处理器体系结构-(110页珍藏版)》请在金锄头文库上搜索。
1、第三章微处理器体系结构及关键技术,3.1 微处理器体系结构及功能模块简介 处理器的主要功能及部件(掌握) 处理器的基本功能结构(掌握) 一个简化的处理器模型结构示例(理解) 3.2 处理器设计(理解) 处理器的设计步骤 控制器的操作与功能 随机逻辑控制器设计 微程序(微码)控制器结构及设计 寄存器组(register file)设计,1,第三章微处理器体系结构及关键技术,3.3 指令系统设计(掌握) 机器指令的组成 指令格式 指令类型 寻址方式 指令系统设计要点 3.4 指令流水线技术 流水线技术的特点(掌握) 流水线操作的详细说明(掌握) 流水线的局限性(理解) 指令流水线设计(理解) 3.
2、5 典型微处理体系结构简介(理解) ARM体系结构简介 Intel x86体系结构简介,2,第三章 微处理器体系结构及关键技术,3.1 微处理器体系结构及功能模块简介 处理器的主要功能 处理器的基本结构 一个简化的处理器模型结构示例 3.2 处理器设计 指令系统 数据通路 控制流程 时序部件 控制逻辑 3.3 指令流水线技术 3.4 典型微处理体系结构简介 3.5 先进的微处理器技术,2020/12/19,ARM、x86,随机逻辑、微程序(微码),数据类型、指令功能、指令格式、寻址方式,ALU、Reg、总线,程序、指令、微操作,时钟周期、工作周期、指令周期,特点、操作、局限、设计,宽度、周期,
3、第三章 习题,作业:13、5、9、10、11、1315 思考:1.6、4、68 、12、16,补充题(选作),2、某计算机指令系统中,指令字长为12位,每个地址码长3位,有三地址指令4条,单地址指令255条,零地址指令16条。 (1)能否以扩展操作码为其编码?说明其理由。 (2)如果其中单地址指令为254条呢?说明其理由。,1、有一条4个段的线性流水线,各段的执行时间分别为50ns、50ns、100ns、200ns。 (1)连续向流水线输入6条指令,画出指令执行的时-空图,求该流水线的实际吞吐率和效率。注意计算时需写出步骤。 (2)该流水线的瓶颈在哪一个段?请采用两种不同的措施消除此瓶颈,画出
4、两种改进方法后执行6条指令的时-空图。,流水线结构与微码结构的比较,比较下列操作在微码CPU和流水线CPU中的执行情况 Mem(Reg 1)+Mem(Reg 2)Reg 3 微码机器(CISC)中只需要一条指令表示,而在流水线机器(RISC)里则需要3条指令; 假设没有存储器延迟,则流水线机器中这3条指令可以在3个时钟周期内完成,而微码机器则需要8个时钟周期。 在流水线机器中需要取存5次存储器,而微码机器只需要3次。 若存储器速度为系统瓶颈,则应采用微码CPU,3次指令,2次数据,1次指令,2次数据,取指+译码执行:取操作数2,加法,存结果,中央处理单元 Central Processing
5、Unit, CPU 微处理器 Micro Processing Unit, MPU 微控制单元 Micro Control Unit, MCU 单片机 计算机,单片芯片,控制器、运算器、寄存器,CPU、少量存储器及I/O接口,CPU+存储器+总线/接口+外设,几个概念,2020-12-19,7/86,微处理器的主要功能,计算机系统设计师认为:处理器是指一种能够经过多个步骤执行计算任务的数字设备。 从本质上讲,处理器的作用是协调和控制计算机的各个部件,并执行程序的指令序列。 处理器的5个主要功能: 指令控制:控制指令按程序逻辑顺序执行。 操作控制:按照指令执行过程及指令约定功能的需求产生各种操作
6、控制信号。 时序控制:能够在适当的时间(时刻)使相应操作控制信号有效,并保持所需的时长。 数据加工:对数据进行算术和逻辑运算处理。 中断处理:程序执行过程中应能够及时处理出现的I/O操作请求及异常情况。,CPU最基本的功能,CPU的作用是协调和控制计算机的各个部件并执行程序中的指令序列,因此应具有以下基本功能:, 取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。 分析指令:即指令译码,是指对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。 执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器
7、及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成。,2020-12-19,9/86,微处理器的基本结构,冯诺依曼机: 5大部件 存储程序 串行单顺序,数据通路,CPU的RTL描述: 数据通路 控制器,数据通路,数据通路是指运算相关的部件及相关的数据传输路径 算术逻辑运算部件ALU 寄存器组 通用寄存器组、暂存器、指令寄存器、程序计数器、当前程序状态寄存器、地址寄存器、数据缓冲寄存器 简单的处理器中只设置一组数据传送总线,用来连接处理器内的寄存器和ALU部件 较复杂的处理器可能设置几组双向数据总线,同时传送多个数据,11,数据通路:ALUReg+内部总线
8、,ALU:运算 Reg组:暂存 内总线:传输 简单的单总线 (ALU总线) 复杂的多级总线(片上总线),控制器,输入,输出,一条运算指令的读取和执行过程可被划分为取指令、取源操作数、取目的操作数、执行运算操作、存放运算结果等阶段,每个阶段又可以再分成若干步操作-控制器实现控制,简化的处理器模型,哈佛结构,字长8位,4种指令格式的模型机结构,15,内存地址寄存器 内存数据寄存器 通用寄存器 累加寄存器 程序计数器 指令寄存器 多路选择器,CPU与内存储器的接口,1.对外形成三总线形式; 2.寄存器MAR和MDR简化了CPU与主存之间的传送通路,使其容易控制; 3.寄存器MAR和MDR对用户透明,
9、即不能编程访问;,微处理器的总体结构,数据通道 组成:ALU+寄存器+内部总线 功能:基本的二进制算术、逻辑及移位运算; 根据运算结果设置状态标志(进/借位、溢出等); 特性: 数据通路宽度:即字长,CPU单次传送和处理数据的能力。 数据通路周期:ALU运算并将保存结果的过程。 控制单元(控制器) 时序控制部件:指令周期、工作周期、时钟周期(工作脉冲) 指令译码逻辑:微程序(CISC )、硬连逻辑(RISC ) 、,指令集结构(ISA)是体系 结构的主要内容之一,其功 能设计实际就是确定软硬件 的功能分配。 考虑因素 速度、成本和灵活性 实现方式 硬件、软件 优化策略 RISC、CISC;流水
10、线;多核; 实现内容 数据类型、指令功能、指令格式、寻址方式 实现步骤 根据应用初拟出指令的分类和具体的指令; 编写出针对该指令系统的各种高级语言编译程序; 对多种算法程序进行模拟测试,确认指令系统的操作码和寻址方式的效能是否都比较高; 用硬件实现高频使用的指令,软件实现低频使用指令。,指令系统设计,19,指令系统设计的考虑因素,满足编程要求。程序员的软件接口,必须考虑编程的便利和效率 实现技术。处理器的硬件实现,芯片硬件设计实现的经济性。流水线是实现高性能处理机的流行技术,指令系统设计有利于流水线的实现 计算机的综合性能。CPU执行时间与每一类型指令的平均执行时间CPI和时钟频率有关。最常用
11、的指令类型尽可能快速执行,而最耗费时间(但最少用)的指令类型应从指令系统中去掉,改用软件实现。这是计算机结构师在设计指令系统时总是要面对的一个硬件和软件之间权衡的问题 向后兼容。这实际上是指令系统设计中的一个限制而不是有利因素。Pentium系列便是一个典型例子。,指令集设计示例,假设某机器的字长是8位,支持常见的简单指令:指令是双地址指令,源操作数采用2种寻址方式寄存器寻址(R0R3)和立即寻址;目标操作数可采用2种寻址方式寄存器寻址和存储器直接。请为下述九条机器指令设计可行的代码方案。,若采用定长编码(8bit)方案,可定义指令格式如下:,=0000表示ADD =0001表示SUB =00
12、10表示MOV =0011表示IN =0100表示OUT =0101表示RR ,目标寄存器编号,源寄存器编号,操 作 码,机器指令集,机器指令符号表示法,由于直接与机器指令二进制表示法打交道很困难,于是普遍使用的是机器指令符号表示法(symbol representation)。 操作码可缩写成助记符(mnemonic)来表示: ADD加 SUB减 MUL乘 DIV除 LOAD 由存储器装入 STOR 存入存储器,2020-12-19,22/86,汇编语言,数据类型,确认某种特殊类型的数据是否应该得到硬件支持 数值型数据:无符号整数、带符号整数、浮点数 非数值数据:字符串 确认字长(对数据长度
13、的限制) 截断(truncation)或溢出(overflow) 在选择数据格式和长度时需要平衡数值范围、程序执行期间发生溢出的可能性、处理设备和存储设备的复杂性、以及价格和速度等因素。,指令类型,指令按功能可分成以下三种基本类型: 数据传输:将数据从一个地方(源地址)复制到另一个 地方(目的地址),传输结束后源地址中的内容不变。 数据传送范围: R-R、R-M、M-R或M-M 数据传送宽度:一般为固定值(如8、16或32bit),其它宽度的数据传送一般可通过软件移位和合并操作来实现。 数据运算:包括算术运算(加、减、乘、除等)和逻辑 运算(与、或、非、异或等)。 该类指令需要明确操作数的类型
14、和长度。 控制类:用于改变正常的程序执行流程,完成程序的跳转,主要包括转移指令和过程指令。,I/O?,机器指令要素,操作码(operation code,opcode):需要完成的操作; 源操作数 (source operand reference):操作所需的输入; 结果操作数 (result operand reference):操作产生的结果; 下一条指令 (next instruction reference):告诉CPU到哪里取下一条指令。,2020-12-19,指令格式,在计算机内部,指令由一个位串来表示。相应于指令的各要素,这些位串划分成几个字段: 操作码字段: 说明CPU应进行
15、的操作 按操作类型分组:同类操作要求同样或类似的控制信号,因此编码也类似(有尽可能多的公共位) 操作数字段/地址字段: 说明源操作数和目的操作数存放的位置信息(R、M或I/O); 说明源操作数和目的操作数的数据类型; 下一条指令地址字段: 如紧跟当前指令,在主存或虚存中,则不需显示引用; 如可能产生跳转,则需要显示给出存储地址;,指令类型决定了CPU的软件功能特性,寻址方式决定了CPU硬件功能特性,26/86,操作码字段,常见指令字段分配,操作码位段分配,扩展操作码,机器指令符号表示法,由于直接与机器指令二进制表示法打交道很困难,于是普遍使用的是机器指令符号表示法(symbol represe
16、ntation)。 操作码可缩写成助记符(mnemonic)来表示 ADD加 SUB减 MUL乘 DIV除 LOAD 由存储器装入 STOR 存入存储器,2020-12-19,汇编语言,操作数字段,二元操作(binary operation)是一种基本操作类型,这样的指令通常包含三个操作数地址:两个源操作数和一个目的(结果)操作数。为了缩短指令长度,可以采用以下方法: 只有一个地址指定给存储器中的操作数,而其余地址都指定给寄存器,可以在指令格式中明确地指定其寄存器号。 把一个、两个或三个操作数的地址在指令格式中变成隐含的地址。隐含的地址可以指定给专用寄存器,而这些寄存器的名字隐含在指令格式的操作码中。,2020-12-19,29/86,机器指令结构:M-M、M-R、R-R,机器指令结构:零地址、单地址、双地址,数据类型,确认某种特殊类型的数据是否应该得到硬件支持 数值型数据:无符号整数、带符号整数、浮点数 非数值数据:字符串 确认字长