微处理器系统结构与嵌入式系统设计:第3章 微处理器体系结构_第1页
微处理器系统结构与嵌入式系统设计:第3章 微处理器体系结构_第2页
微处理器系统结构与嵌入式系统设计:第3章 微处理器体系结构_第3页
微处理器系统结构与嵌入式系统设计:第3章 微处理器体系结构_第4页
微处理器系统结构与嵌入式系统设计:第3章 微处理器体系结构_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章微处理器体系结构及关键技术3.1 微处理器体系结构及功能模块简介处理器的主要功能及部件(掌握) 处理器的基本功能结构(掌握) 一个简化的处理器模型结构示例(理解) 3.2 处理器设计(理解) 处理器的设计步骤控制器的操作与功能随机逻辑控制器设计微程序(微码)控制器结构及设计寄存器组(register file)设计1第三章微处理器体系结构及关键技术3.3 指令系统设计(掌握) 机器指令的组成指令格式指令类型寻址方式指令系统设计要点3.4 指令流水线技术流水线技术的特点(掌握) 流水线操作的详细说明(掌握) 流水线的局限性(理解) 指令流水线设计(理解) 3.5 典型微处理体系结构简介(理

2、解) ARM体系结构简介Intel x86体系结构简介2第三章 微处理器体系结构及关键技术3.1 微处理器体系结构及功能模块简介处理器的主要功能处理器的基本结构一个简化的处理器模型结构示例3.2 处理器设计指令系统数据通路控制流程时序部件控制逻辑3.3 指令流水线技术3.4 典型微处理体系结构简介3.5 先进的微处理器技术2022/7/15ARM、x86随机逻辑、微程序(微码)数据类型、指令功能、指令格式、寻址方式ALU、Reg、总线程序、指令、微操作时钟周期、工作周期、指令周期特点、操作、局限、设计宽度、周期第三章 习题作业:13、5、9、10、11、1315思考:4、68 、12、16补充

3、题(选作)2、某计算机指令系统中,指令字长为12位,每个地址码长3位,有三地址指令4条,单地址指令255条,零地址指令16条。(1)能否以扩展操作码为其编码?说明其理由。(2)如果其中单地址指令为254条呢?说明其理由。 1、有一条4个段的线性流水线,各段的执行时间分别为50ns、50ns、100ns、200ns。 (1)连续向流水线输入6条指令,画出指令执行的时-空图,求该流水线的实际吞吐率和效率。注意计算时需写出步骤。 (2)该流水线的瓶颈在哪一个段?请采用两种不同的措施消除此瓶颈,画出两种改进方法后执行6条指令的时-空图。 流水线结构与微码结构的比较比较下列操作在微码CPU和流水线CPU

4、中的执行情况Mem(Reg 1)+Mem(Reg 2)Reg 3微码机器(CISC)中只需要一条指令表示,而在流水线机器(RISC)里则需要3条指令;假设没有存储器延迟,则流水线机器中这3条指令可以在3个时钟周期内完成,而微码机器则需要8个时钟周期。在流水线机器中需要取存5次存储器,而微码机器只需要3次。若存储器速度为系统瓶颈,则应采用微码CPU3次指令,2次数据1次指令,2次数据取指+译码执行:取操作数2,加法,存结果中央处理单元 Central Processing Unit, CPU微处理器 Micro Processing Unit, MPU微控制单元 Micro Control Un

5、it, MCU单片机计算机单片芯片控制器、运算器、寄存器CPU、少量存储器及I/O接口CPU+存储器+总线/接口+外设几个概念yyyy-M-7/86微处理器的主要功能计算机系统设计师认为:处理器是指一种能够经过多个步骤执行计算任务的数字设备。从本质上讲,处理器的作用是协调和控制计算机的各个部件,并执行程序的指令序列。处理器的5个主要功能: 指令控制:控制指令按程序逻辑顺序执行。 操作控制:按照指令执行过程及指令约定功能的需求产生各种操作控制信号。 时序控制:能够在适当的时间(时刻)使相应操作控制信号有效,并保持所需的时长。 数据加工:对数据进行算术和逻辑运算处理。 中断处理:程序执行过程中应能

6、够及时处理出现的I/O操作请求及异常情况。CPU最基本的功能CPU的作用是协调和控制计算机的各个部件并执行程序中的指令序列,因此应具有以下基本功能: 取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。 分析指令:即指令译码,是指对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。 执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成。yyyy-M-9/86微处理器的基本结构冯诺依曼机:5大部件存储程序串行单

7、顺序数据通路CPU的RTL描述:数据通路控制器数据通路数据通路是指运算相关的部件及相关的数据传输路径算术逻辑运算部件ALU寄存器组通用寄存器组、暂存器、指令寄存器、程序计数器、当前程序状态寄存器、地址寄存器、数据缓冲寄存器简单的处理器中只设置一组数据传送总线,用来连接处理器内的寄存器和ALU部件较复杂的处理器可能设置几组双向数据总线,同时传送多个数据11数据通路:ALUReg+内部总线ALU:运算Reg组:暂存内总线:传输简单的单总线 (ALU总线)复杂的多级总线(片上总线)控制器输入输出一条运算指令的读取和执行过程可被划分为取指令、取源操作数、取目的操作数、执行运算操作、存放运算结果等阶段,

8、每个阶段又可以再分成若干步操作-控制器实现控制简化的处理器模型哈佛结构字长8位,4种指令格式的模型机结构15内存地址寄存器内存数据寄存器通用寄存器累加寄存器程序计数器指令寄存器多路选择器CPU与内存储器的接口1.对外形成三总线形式;2.寄存器MAR和MDR简化了CPU与主存之间的传送通路,使其容易控制;3.寄存器MAR和MDR对用户透明,即不能编程访问;微处理器的总体结构数据通道组成:ALU+寄存器+内部总线功能:基本的二进制算术、逻辑及移位运算; 根据运算结果设置状态标志(进/借位、溢出等); 特性:数据通路宽度:即字长,CPU单次传送和处理数据的能力。数据通路周期:ALU运算并将保存结果的

9、过程。控制单元(控制器)时序控制部件:指令周期、工作周期、时钟周期(工作脉冲)指令译码逻辑:微程序(CISC )、硬连逻辑(RISC ) 、指令集结构(ISA)是体系结构的主要内容之一,其功能设计实际就是确定软硬件的功能分配。考虑因素 速度、成本和灵活性实现方式 硬件、软件 优化策略 RISC、CISC;流水线;多核;实现内容 数据类型、指令功能、指令格式、寻址方式实现步骤根据应用初拟出指令的分类和具体的指令;编写出针对该指令系统的各种高级语言编译程序;对多种算法程序进行模拟测试,确认指令系统的操作码和寻址方式的效能是否都比较高;用硬件实现高频使用的指令,软件实现低频使用指令。指令系统设计19

10、指令系统设计的考虑因素满足编程要求。程序员的软件接口,必须考虑编程的便利和效率实现技术。处理器的硬件实现,芯片硬件设计实现的经济性。流水线是实现高性能处理机的流行技术,指令系统设计有利于流水线的实现计算机的综合性能。CPU执行时间与每一类型指令的平均执行时间CPI和时钟频率有关。最常用的指令类型尽可能快速执行,而最耗费时间(但最少用)的指令类型应从指令系统中去掉,改用软件实现。这是计算机结构师在设计指令系统时总是要面对的一个硬件和软件之间权衡的问题向后兼容。这实际上是指令系统设计中的一个限制而不是有利因素。Pentium系列便是一个典型例子。机器指令符号表示法 由于直接与机器指令二进制表示法打

11、交道很困难,于是普遍使用的是机器指令符号表示法(symbol representation)。操作码可缩写成助记符(mnemonic)来表示:ADD加SUB减MUL乘DIV除LOAD 由存储器装入STOR 存入存储器yyyy-M-20/86汇编语言数据类型确认某种特殊类型的数据是否应该得到硬件支持 数值型数据:无符号整数、带符号整数、浮点数 非数值数据:字符串确认字长(对数据长度的限制) 截断(truncation)或溢出(overflow)在选择数据格式和长度时需要平衡数值范围、程序执行期间发生溢出的可能性、处理设备和存储设备的复杂性、以及价格和速度等因素。指令类型指令按功能可分成以下三种基

12、本类型: 数据传输:将数据从一个地方(源地址)复制到另一个 地方(目的地址),传输结束后源地址中的内容不变。 数据传送范围: R-R、R-M、M-R或M-M 数据传送宽度:一般为固定值(如8、16或32bit),其它宽度的数据传送一般可通过软件移位和合并操作来实现。数据运算:包括算术运算(加、减、乘、除等)和逻辑 运算(与、或、非、异或等)。 该类指令需要明确操作数的类型和长度。控制类:用于改变正常的程序执行流程,完成程序的跳转,主要包括转移指令和过程指令。I/O?机器指令要素操作码(operation code,opcode):需要完成的操作;源操作数 (source operand ref

13、erence):操作所需的输入;结果操作数 (result operand reference):操作产生的结果;下一条指令 (next instruction reference):告诉CPU到哪里取下一条指令。 yyyy-M-指令格式 在计算机内部,指令由一个位串来表示。相应于指令的各要素,这些位串划分成几个字段:操作码字段:说明CPU应进行的操作按操作类型分组:同类操作要求同样或类似的控制信号,因此编码也类似(有尽可能多的公共位)操作数字段/地址字段:说明源操作数和目的操作数存放的位置信息(R、M或I/O);说明源操作数和目的操作数的数据类型;下一条指令地址字段: 如紧跟当前指令,在主存

14、或虚存中,则不需显示引用; 如可能产生跳转,则需要显示给出存储地址;指令类型决定了CPU的软件功能特性寻址方式决定了CPU硬件功能特性24/86操作码字段常见指令字段分配操作码位段分配扩展操作码机器指令符号表示法 由于直接与机器指令二进制表示法打交道很困难,于是普遍使用的是机器指令符号表示法(symbol representation)。操作码可缩写成助记符(mnemonic)来表示ADD加SUB减MUL乘DIV除LOAD 由存储器装入STOR 存入存储器yyyy-M-汇编语言操作数字段 二元操作(binary operation)是一种基本操作类型,这样的指令通常包含三个操作数地址:两个源操

15、作数和一个目的(结果)操作数。为了缩短指令长度,可以采用以下方法:只有一个地址指定给存储器中的操作数,而其余地址都指定给寄存器,可以在指令格式中明确地指定其寄存器号。把一个、两个或三个操作数的地址在指令格式中变成隐含的地址。隐含的地址可以指定给专用寄存器,而这些寄存器的名字隐含在指令格式的操作码中。yyyy-M-27/86机器指令结构:M-M、M-R、R-R机器指令结构:零地址、单地址、双地址数据类型确认某种特殊类型的数据是否应该得到硬件支持 数值型数据:无符号整数、带符号整数、浮点数 非数值数据:字符串确认字长(对数据长度的限制) 截断(truncation)或溢出(overflow)在选择

16、数据格式和长度时需要平衡数值范围、程序执行期间发生溢出的可能性、处理设备和存储设备的复杂性、以及价格和速度等因素。指令集设计示例假设某机器的字长是8位,支持常见的简单指令:指令是双地址指令,源操作数采用2种寻址方式寄存器寻址(R0R3)和立即寻址;目标操作数可采用2种寻址方式寄存器寻址和存储器直接。请为下述九条机器指令设计可行的代码方案。若采用定长编码(8bit)方案,可定义指令格式如下:76543210=0000表示ADD=0001表示SUB=0010表示MOV=0011表示IN=0100表示OUT=0101表示RR目的操作数寻址方式:0直接寻址 1寄存器寻址目标寄存器编号源操作数寻址方式:

17、0立即寻址 1寄存器寻址源寄存器编号操 作 码机器指令集寻址方式操作数实际存放位置:寻址方式:1在指令码中指定操作数:立即数寻址2在寄存器中指定操作数:寄存器(直接)寻址3在存储器中指定操作数:存储器直接寻址、存储器间接寻址4在汇编程序中指定操作数: 相对寻址5操作数在I/O接口中: 存储器寻址(存储器映像编址)或端口寻址(独立编址)立即数寻址immediate addressing mode立即数寻址方式(immediate addressing mode) :操作数是指令的组成部分不灵活,只能为原始数据,不能为结果寄存器直接寻址方式register direct addressing mo

18、de 指令的地址字段给出寄存器号(名) ,而被指定的寄存器的内容就是操作数。 存储器直接寻址memory direct addressing mode指令的地址字段直接给定一个立即数作为存储单元的地址。寄存器直接寻址存储器间接寻址memory indirect addressing mode(1) 寄存器间接寻址方式(2) 存储器间接寻址方式(3) 位移量寻址方式(4) 变址寻址方式(5) 比例尺寻址方式用于加强编写与位置无关的汇编语言程序寄存器间接寻址方式register indirect addressing mode 将存储器地址指定在寄存器中,即让寄存器内容指向一个可访问到操作数的存储

19、器单元。yyyy-M-36/86存储器间接寻址方式 memory indirect addressing mode 多级间接寻址; 通常用于访问存储器中的“跳转表”:跳转表首址指定在寄存器中,该表中的每个表项指向一个可访问到操作数的存储器单元。跳转表位移量寻址方式displacement addressing mode 通常用于数组、矩阵类向量数据的存取:寄存器值指定数组首址,立即数指定组内偏移;指数寻址方式indexed addressing mode 通常用于数组、矩阵类向量数据的存取:寄存器1值指定数组首址,寄存器2指定组内偏移;比例尺寻址方式scaled addressing mode

20、用字节表示的操作数的长度位移量寻址+指数寻址+自增/自减寻址PC相对寻址方式Program Counter-related addressing mode 主要用在转移和跳转指令,指定汇编语言程序码的内部位置作为目的地址偏移量操作数。指令:JUMP abe 操作: PC abe = (PC)updated +immSign_ext当前指令取出后的PC值出现在指令中基本的数据通路结构ALU的实现:(1)由基本门电路实现全加器;(2)由n位全加器构成n位加法器;(3)以加法器为核心,通过扩展输入选择逻辑实现其它基本算术和逻辑运算;ALU功能描述示例算术逻辑运算功能移位运算功能数据通路中数据流的定义

21、IRIDREGALUMEM开始退出IRIDALUMEMREG微操作通道开始退出单通数据通道RISC:Load/Store结构CISC:寻址方式复杂数据通路的实现程序、指令、微操作时序控制部件时序控制部件:脉冲源+分频逻辑;用以产生各种系统所需的、满足时序要求的控制信号。 指令周期 读取并执行一条指令所需的时间工作周期 指令周期中的不同工作阶段时钟周期 系统中最小的基本时间分段CPU中的多级时序 一个指令周期中的多个工作周期 现代控制器设计趋势: 采用非集中控制模式,I/O和M拥有各自的控制器,从而变为自主的功能部件。 I/O和M采用异步控制。 按照微控制命令的形成方式,控制器可分为随机逻辑和微

22、程序两种基本类型。控制器的设计 控制器根据指令译码结果和当前状态决定在什么时间、根据什么条件、发出什么命令、做什么操作:生成时序控制信号生成指令执行所需的控制信号响应各种中断或异常事件请求随机逻辑CPU的体系结构随机逻辑(硬连逻辑)体系结构用布尔逻辑函数来表示控制单元的输入和输出之间的关系。时序部件指令预处理随机逻辑CPU的特点优点: 可通过简化指令减少所使用的门电路总数从而减少制造费用。缺点:指令集结构与硬件逻辑方程之间存在着密切联系,设计过程复杂。重用性差,设计成果很少能再利用到以后的新CPU设计中。适用于较简单的指令集结构。最小化逻辑门数目优化硬件逻辑、尽可能地少用触发器优化硬件时序逻辑

23、门级数最小化;建立并行通路以满足时序约束(增加逻辑)简化指令集逻辑简单、寄存器数量少随机逻辑CPU的设计要点 RISC最重要的目的随机逻辑CPU的设计步骤 指令集结构驱动硬件的逻辑方程 定义所需的指令集结构; 根据指令集决定硬件逻辑及状态机;硬件逻辑方程反馈到指令集结构 对指令集结构做必要的修改和优化; 最大限度地减少逻辑复杂度;yyyy-M-随机逻辑CPU的操作1-取指令 程序计数器的值经MUX送到存储器; 存储器送回的指令写入指令寄存器; 程序计数器加1后回写;随机逻辑CPU的操作2-指令译码与执行 寄存器堆中的某个地址寄存器通过MUX寻址存储器,获得ALU的一个操作数; 另一个操作数来自

24、于寄存器堆中的数据寄存器; ALU的结果值被回写入寄存器堆。随机逻辑体系结构的操作组合电路数据选择器, 译码器, ALU, .同步单元Flipflop, Register, Register file, SRAM, DRAM边沿触发: 上升沿触发Clk DQEnffQDClkEnOpSelect - Add, Sub, . - And, Or, Xor, Not, . - GT, LT, EQ, Zero, . ResultComp?ABALUSelOA0A1An-1Mux.lg(n)ADecoder.O0O1On-1lg(n)硬件单元电路56寄存器堆ReadData1ReadSel1Read

25、Sel2 WriteSelRegister file2R+1WReadData2 WriteDataWEClockrd1rs1rs2wswdrd2we读操作是组合逻辑电路ffQ0D0ClkEnffQ1D1ffQ2D2ffQn-1Dn-1.register57寄存器堆的实现reg 31wsclkreg 1wdwers1rd1rd2reg 03253232rs255多端口的寄存器堆设计实现复杂几乎所有的MIPS指令都有2个寄存器源操作数Intels的Itanium处理器, 有128个通用寄存器组,分别有8个读端口和4个写端口!we:write enablews:write selectwd:wri

26、te datard:read datars:read select58数据通道:寄存器-寄存器ALU指令RegWrite Timing? 6 5 5 5 5 6 0 rsrt rd 0 func rd (rs) func (rt)31 26 25 21 20 16 15 11 5 00 x4AddclkaddrinstInst.MemoryPCinstinstinstinstOpCodezALUALUControlRegWriteclkrd1GPRsrs1rs2wswdrd2weAddr:addressInst:instructionrs:read selectws:write selectw

27、d:write datawe:write enablerd:read dataGPR:General Purpose RegisterFunc:function59数据通道:寄存器-立即数ALU指令 6 5 5 16opcode rsrt immediate rt (rs) op immediate31 26 25 2120 16 15 0ImmExtExtSelinstOpCode0 x4AddclkaddrinstInst.MemoryPCzALURegWriteclkrd1GPRsrs1rs2wswdrd2weinstinstinstALUControlAddr:addressInst:

28、instructionrs:read selectws:write selectwd:write datawe:write enablerd:read dataGPR:General Purpose RegisterFunc:function60数据通道合并时冲突ImmExtExtSelOpCode0 x4AddclkaddrinstInst.MemoryPCzALURegWriteclkrd1GPRsrs1rs2wswdrd2weinstinstinstinstALUControlinstinstopcode rsrt immediate rt (rs) op immediate 6 5 5

29、 5 5 6 0 rsrt rd 0 func rd (rs) func (rt)引入数据选择器61ALU指令的数据通道, opcode rsrt immediate rt (rs) op immediate 6 5 5 5 5 6 0 rsrt rd 0 func rd (rs) func (rt)BSrcReg / ImmRegDstrt / rdImmExtExtSelOpCode0 x4AddclkaddrinstInst.MemoryPCzALURegWriteclkrd1GPRsrs1rs2wswdrd2weOpSelALUControlRegDst: Register Desti

30、nationSrc:Source62数据传送指令:哈佛数据通道WBSrcALU / Memrs is the base registerrt is the destination of a Load or the source for a Store 6 55 16 addressing modeopcode rsrt displacement (rs) + displacement31 26 25 21 20 16 15 0RegDstBSrc“base”dispExtSelOpCodeOpSelALUControlzALU0 x4AddclkaddrinstInst.MemoryPCReg

31、Writeclkrd1GPRsrs1rs2wswdrd2weImmExtclkMemWriteaddrwdatardataData Memorywe63MIPS控制跳转指令有条件(GPR) 相对PC跳转无条件寄存器间接跳转 无条件绝对跳转相对PC跳转在PC+4的基础上再偏移量4得到跳转的目标地址 (偏移量为字): 128 KB的范围绝对跳转将 目标地址4附加在PC后得到跳转地址: 256 MB的范围跳转并链接将地址PC+4存入 链接寄存器(R31)所有控制传送延时1个指令周期跳转延时使得时序不匹配?! 6 55 16opcode rs offset BEQZ, BNEZ 6 26opcode

32、targetJ, JAL 6 55 16opcode rsJR, JALR64有条件跳转 (BEQZ, BNEZ)0 x4AddPCSrcclkWBSrcMemWriteaddrwdatardataData MemoryweRegDstBSrcExtSelOpCodezOpSelclkzero?clkaddrinstInst.MemoryPCrd1GPRsrs1rs2wswdrd2weImmExtALUALUControlAddbrpc+4RegWrite65寄存器间接跳转 (JR)0 x4RegWriteAddAddclkWBSrcMemWriteaddrwdatardataData Mem

33、oryweRegDstBSrcExtSelOpCodezOpSelclkzero?clkaddrinstInst.MemoryPCrd1GPRsrs1rs2wswdrd2weImmExtALUALUControlPCSrcbrpc+4rind66寄存器间接跳转并链接(JALR)0 x4RegWriteAddAddclkWBSrcMemWriteaddrwdatardataData MemoryweRegDstBSrcExtSelOpCodezOpSelclkzero?clkaddrinstInst.MemoryPCrd1GPRsrs1rs2wswdrd2weImmExtALUALUContro

34、l31PCSrcbrpc+4rind67绝对跳转 (J, JAL)0 x4RegWriteAddAddclkWBSrcMemWriteaddrwdatardataData MemoryweRegDstBSrcExtSelOpCodezOpSelclkzero?clkaddrinstInst.MemoryPCrd1GPRsrs1rs2wswdrd2weImmExtALUALUControl31PCSrcbrpc+4rindjabs68MIPS的哈佛结构数据通道0 x4RegWriteAddAddclkWBSrcMemWriteaddrwdatardataData MemoryweRegDstBS

35、rcExtSelOpCodezOpSelclkzero?clkaddrinstInst.MemoryPCrd1GPRsrs1rs2wswdrd2weImmExtALUALUControl31PCSrcbrrindjabspc+469随机逻辑连接控制是纯组合逻辑电路 combinational logicop codezero?ExtSelBSrcOpSelMemWriteWBSrcRegDstRegWritePCSrc70ALU 控制与立即数扩展Inst (Opcode) Decode MapInst (Func)ALUop0?+OpSel( Func, Op, +, 0? )ExtSel(

36、sExt16, uExt16, High16)71OpcodeExtSelBSrcOpSelMemWRegWWBSrcRegDstPCSrcALUALUiALUiuLWSWBEQZz=0BEQZz=1JJALJRJALR随机逻辑连接控制表BSrc = Reg / ImmWBSrc = ALU / Mem / PC RegDst = rt / rd / R31PCSrc = pc+4 / br / rind / jabs*noyesrindPCR31rind*nono*jabs*noyesPCR31jabs*nono*pc+4sExt16*0?nono*brsExt16*0?nono*pc+4s

37、Ext16Imm+yesno*pc+4ImmOpnoyesALUrtpc+4*RegFuncnoyesALUrdsExt16ImmOppc+4noyesALUrtpc+4sExt16Imm+noyesMemrtuExt16Balancing Operatorsa, b, c, d: 4-bit vectorsout = a * b * c * dXabXcXdzXabout = (a * b) * (c * d)XcdXzUnbalancedBalanced4 x 48 x 412 x 416-bit4 x 44 x 48 x 816-bitDelay through 3 Stages of

38、MultiplyDelay through 2 Stages of Multiply随机逻辑CPU的指令集设计 考虑如何让逻辑门可以快速而方便地实现 指令译码。 在随机逻辑CPU的指令集中,可以使用以下4种类型的指令:分支指令(branch instruction) 、存储器引用指令(memory reference instruction)、ALU指令(ALU instruction)、设置指令(SET instruction) 一般的设计方法是将指令内部的结构划分成多个指令字段(field)。同时还要求这些指令字段在各指令中所放的位置尽可能一样。这样,在CPU中可以减少指令译码所需的逻辑数

39、量。73/86指令的简化示例如果限制在机器内部只用一个累加器,则指令集就会被限制在如下范围内: 使用单目操作数的指令,可以将累加器作为一个源操作数,同时可作为一个目的操作数。 使用双目操作数的指令,可以将累加器作为一个源操作数,以存储器作为另一个源操作数,累加器同时也可作为目的操作数。如果只用一个索引寄存器,则寻址模式将局限于以下两种方式: 当进行直接存储器寻址时,存储器地址由指令中的部分字段提供。 当进行指数寻址时,目标地址一部分来自指令的存储器地址,与指数寄存器相加之后,形成目标操作数的地址。微码CPU的体系结构在微码结构中,控制单元的输入和输出之间的关系被视为一个存储系统。时序部件指令预

40、处理 工作原理 微程序控制(存储控制) 组成微码控制器+微代码微码CPU的特点优点:可以通过减少取指令次数的方法来降低存储器总访问时间从而提高系统性能;简化硬件设计,可使其成品机器几乎没有设计上的错误;建立或改动微代码比建立或改动电路省时、不易出错,因此更易于创建新的CPU版本;缺点: 同样功能微代码比硬连逻辑实现的开销大;yyyy-M-76/86微码结构与随机逻辑结构的比较硬件设计开销随机逻辑CPU的硬件和指令集必须同步进行设计和优化,因此比较复杂。微码CPU的指令集设计并不直接影响现有硬件,修改指令集并不需要重新设计新的硬件。性能如果采用相同指令集,则随机逻辑CPU操作会更快。如果执行相同

41、的计算任务,微码CPU能够通过使用更少(但更复杂)的指令达到更高性能。当系统整体性能受限于存储器的速度时,微码CPU对性能提高的优势更为明显。yyyy-M-77/86微码CPU的设计步骤 建立硬件体系结构, 保证其具备执行必要基本功能步骤的功能。将指令分割成许多微步骤,转写成微程序并写入控制存储器。微指令Micro-instruction微程序Micro-program(固件fireware)指令instruction微码控制器Microcode controller(定序器sequencer)yyyy-M-78/86微码CPU的操作1-指令译码与执行控制逻辑对IR中的指令译码,确定对应微码程

42、序地址并写入PC;PC向微码ROM提供 地址,返回的微码写入IR;IR译码后产生相应的控制信号;PC地址加1后获取下一条微指令地址,直到完成整个微码程序yyyy-M-80微结构的实现结构:模块如何连接?静态的!行为:数据在模块间如何移动?动态的!ControllerDatapathcontrolpointsstatuslines81指令、微程序、微指令(微码)微指令:在一个时间单位(节拍)内出现的一组微操作描述的语句微程序:一组微指令系列通过一组微指令产生的控制信号,使一条指令中的所有微操作得以实现,即实现一条指令的功能T1:微操作1(命令1,命令2,) 微操作2(命令1,命令2) Ti:微操

43、作j(命令1,命令2,) 微指令i Tm:微操作n(命令1,命令2,) 微指令m微指令1一条机器指令 一个微程序82微代码的微结构Memory(RAM)Datapathmcontroller(ROM)AddrDatazero?busy?opcodeenMemMemWrt存储固定的微代码指令存储用户程序指令(如, MIPS, x86, etc.)83MIPS微控制器next statePC (state)Opcodezero?Busy (memory)Control Signals (17)ss6Program ROMaddrdata输入锁存会有1个周期的延迟= 2(opcode+status+

44、s) wordsHow big is “s”?ROM size ?Word size ?= control+s bits84MIPS控制器V2JumpType = next | spin | fetch | dispatch | feqz | fnez Control Signals (17)Control ROMaddressdata+1 OpcodeextPC (state)jumplogiczeroPCPC+1absoluteop-groupbusyPCSrcinput encoding reduces ROM height next-state encoding reduces ROM

45、 width 微码CPU的操作2-读写数据 数据通路一般应有如下三个基本的时钟周期:从存储器读数据后:写入寄存器堆(Register File);写入指令寄存器(IR);写入临时寄存器(TempIn);作为ALU的一个输入;从寄存器读数据后:写入存储器地址寄存器MAR;写入临时寄存器作为ALU的 一个输入;存入存储器;将Result寄存器内容写入寄存器组,或存入存储器;86MIPS的总线型数据通道微指令: 寄存器到寄存器的传送 (17 个控制信号) MA PC means RegSel = PC; enReg=yes; ldMA= yesB Regrt meansenMemMAaddrdata

46、ldMAMemorybusyMemWrtBus32zero? A BOpSelldAldBALUenALUALUcontrol2RegWrtenRegaddrdatarsrtrd32(PC)31(Link)RegSel32 GPRs+ PC .32-bit Reg3rsrtrdExtSelIROpcodeldIRImmExtenImm2RegSel = rt; enReg=yes; ldB = yes87微指令分解instr fetch: MA PC A PCIR MemoryPC A + 4dispatch on OPcodecan betreated asa macroALU: A Reg

47、rsB RegrtRegrd func(A,B)do instruction fetchALUi: A RegrsB Immsign extension .Regrt Opcode(A,B)do instruction fetchopcode rsrt immediate rt (rs) op immediate 6 5 5 5 5 6 0 rsrt rd 0 func rd (rs) func (rt)ALUALUi流水线技术的特点 延迟320ps吞吐量3.125GIPS延迟?ps吞吐量?GIPS延迟360ps吞吐量8.33GIPS单个操作延迟增加;整体吞吐量增加;流水线操作过程90流水线数

48、据通道通过将指令的执行划分为多个步骤的方法可以缩短时钟周期tC max tIM, tRF, tALU, tDM, tRW ( = tDM probably) 但除非采用流水线方式,否则CPI将增加write-backphasefetchphaseexecutephasedecode & Reg-fetchphasememoryphaseaddrwdatardataDataMemoryweALUImmExt0 x4AddaddrrdataInst.Memoryrd1GPRsrs1rs2wswdrd2weIRPCIM: Instruction MemoryRF: Register FetchDM:

49、 Data Memory91优化的流水线tC max tIM, tRF, tALU, tDM, tRW = tDMtC max tIM, tRF+tALU, tDM, tRW = tDM存储器操作耗时最多,因此其它耗时少的级可以合并回写时间很短,通常可以合并到存储器操作流水级tC max tIM, tRF+tALU, tDM+tRW = tDM+ tRWincrease the critical path by 10%write-backphasefetchphaseexecutephasedecode & Reg-fetchphasememoryphaseaddrwdatardataData

50、MemoryweALUImmExt0 x4AddaddrrdataInst.Memoryrd1GPRsrs1rs2wswdrd2weIRPCtIM= 10 unitstDM= 10 unitstALU= 5 unitstRF= 1 unittRW= 1 unit925级流水线的执行假设tIMtRFtALUtDMtRWtime t0t1t2t3t4t5t6t7. . . .instruction1IF1ID1EX1MA1WB1instruction2 IF2ID2EX2MA2WB2instruction3IF3ID3EX3MA3WB3instruction4 IF4ID4EX4MA4WB4ins

51、truction5 IF5ID5EX5MA5WB5Write-Back (WB)I-Fetch (IF)Execute (EX)Decode, Reg. Fetch (ID)Memory (MA)addrwdatardataDataMemoryweALUImmExt0 x4AddaddrrdataInst.Memoryrd1GPRsrs1rs2wswdrd2weIRPC93流水线的执行:ALU指令IRIRIR31PCABYRMD1MD2addrinstInstMemory0 x4AddIRImmExtALUrd1GPRsrs1rs2wswdrd2wewdataaddrwdatardataDat

52、a Memorywe每级流水线需要指令寄存器IR,控制相应环节的操作流水线的局限性 各阶段性能差异会导致流水线性能下降 寄存器延迟开销导致流水线性能下降硬件空闲延迟?ps吞吐量?GIPS延迟360ps吞吐量5.88GIPS指令流水线设计基本要求流水线各个段的操作相互独立流水线各个段的操作同步性能指标吞吐率(Throughput Rate)加速比(Speedup Ratio)效率(Efficiency)相关及处理 结构相关、数据相关和控制相关深度(depth)或并行度(degree of parallelism)即流水级数m等待时间(latency) 每一作业从开始到结束所需时钟周期数,m理想流

53、水线: 各级延时时间相等; 无等待时间; 大量代码不断流;吞吐率(Throughput Rate)吞吐率Tp:指单位时间内能完成的作业量。最大吞吐率Tpmax:流水线达到稳定状态后的吞吐率。用于描述流水线执行各种运算的速率,通常表示为每秒执行的运算数或每周期执行的运算数。若一个m级线性流水线各级时长(即拍长)均为t,则连续处理n条指令时的实际吞吐率Tp为:可以看出,当n时,最大吞吐率Tpmax1/ t理想流水线,大量代码加速比(Speedup Ratio)非流水线执行时间相对流水线执行时间之比。 若一个m级线性流水线各级时长(即拍长)均为t,则连续处理n条指令时的加速比Sp为:可以看出,当 n

54、时,Spm,即最大加速比等于流水线的段数m。效率(Efficiency)一定时段内,流水线所有段处于工作状态的比率。 若一个m级线性流水线各级时长(即拍长)均为t,则连续处理n条指令时的效率E为:E =指令完成时间内占用的时空区 /指令总时空区可以看出,当 n时,E1,即流过流水线的指令越多,流水线效率越高。 ARM体系结构1。RISC指令集,内核小,功耗低、成本低2。哈佛结构3。运算器操作数只能从寄存器输入/输出4。采用桶式移位器处理ALU输入,灵活高速8086体系结构1。冯式结构2。运算器操作数可以从寄存器、存储器或I/O端口获得3。分成两大功能部件EU、BIU101ARM指令编码格式Opcode:指令操作码。cond:指令的条件码。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论