




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第三章微处理器体系结构及关键技术6学时第三章微处理器体系结构及关键技术3.1 微处理器体系结构及功能模块简介处理器的主要功能及部件(掌握) 处理器的基本功能结构(掌握) 一个简化的处理器模型结构示例(理解) 3.2 处理器设计(理解) 处理器的设计步骤控制器的操作与功能随机逻辑控制器设计微程序(微码)控制器结构及设计寄存器组(register file)设计2第三章微处理器体系结构及关键技术3.3 指令系统设计(掌握) 机器指令的组成指令格式指令类型寻址方式指令系统设计要点3.4 指令流水线技术流水线技术的特点(掌握) 流水线操作的详细说明(掌握) 流水线的局限性(理解) 指令流水线设计(理
2、解) 3.5 典型微处理体系结构简介(理解) ARM体系结构简介Intel x86体系结构简介3中央处理单元 Central Processing Unit, CPU微处理器 Micro Processing Unit, MPU微控制单元 Micro Control Unit, MCU单片机计算机单芯片控制器、运算器、寄存器CPU、少量存储器及I/O接口CPU+存储器+总线/接口+外设几个概念yyyy-M-4/863.1 微处理器体系结构及功能模块简介冯诺依曼机:5大部件存储程序串行单顺序每一个基本指令周期(或称取指、执行周期)经过一系列步骤执行一条指令如指令读取、指令译码、数据读取、操作执行
3、、结果存入以及下一条指令的确定一条指令接着一条指令地重复这样的基本指令周期3.1 微处理器体系结构及功能模块简介数据通路CPU的RTL描述:数据通路控制器处理器的部件:算术逻辑运算部件(ALU)、寄存器组、内总线和控制器7微处理器组成CPU组成控制器寄存器算术和逻辑单元指令执行单元部件间的互连机构指令系统CPU的作用:协调并控制计算机的各个部件并执行程序的指令序列微处理器的主要功能计算机系统设计师认为:处理器是指一种能够经过多个步骤执行计算任务的数字设备从本质上讲,处理器的作用是协调和控制计算机的各个部件,并执行程序的指令序列处理器的5个主要功能:指令控制:控制指令按程序逻辑顺序执行操作控制:
4、按照指令执行过程及指令约定功能的需求产生各种操作控制信号时序控制:能够在适当的时间(时刻)使相应操作控制信号有效,并保持所需的时长数据加工:对数据进行算术和逻辑运算处理中断处理:程序执行过程中应能够及时处理出现的I/O操作请求及异常情况89CPU的功能CPU的作用是协调和控制计算机的各个部件并执行程序的指令序列,具有以下基本功能: 取指令:当程序已在存储器中时,首先根据程序入口地址取出一条程序,为此要发出指令地址及控制信号。 分析指令:即指令译码,是指对当前取得的指令进行分析,指出它要求什么操作,并产生相应的操作控制命令。 执行指令:根据分析指令时产生的“操作命令”形成相应的操作控制信号序列,
5、通过运算器、存储器及输入/输出设备的执行,实现每条指令的功能,其中包括对运算结果的处理以及下条指令地址的形成数据通路:ALUReg+内部总线ALU:运算Reg组:暂存内总线:传输简单的单总线 (ALU总线)复杂的多级总线(片上总线)数据通路数据通路是指运算相关的部件及相关的数据传输路径算术逻辑运算部件ALU寄存器组通用寄存器组、暂存器、指令寄存器、程序计数器、当前程序状态寄存器、地址寄存器、数据缓冲寄存器简单的处理器中只设置一组数据传送总线,用来连接处理器内的寄存器和ALU部件较复杂的处理器可能设置几组双向数据总线,同时传送多个数据1112CPU功能能对指令进行译码并执行规定的动作可以进行算术
6、和逻辑运算能与存储器和外设交换数据提供整个系统所需的控制控制器输入输出一条运算指令的读取和执行过程可被划分为取指令、取源操作数、取目的操作数、执行运算操作、存放运算结果等阶段,每个阶段又可以再分成若干步操作-控制器实现控制简化的处理器模型机控制器所需的指令、数据通路所需的数据都是从总线上得到操作过程类似于上章所述14字长8位,4种指令格式的模型机结构15内存地址寄存器内存数据寄存器通用寄存器累加寄存器程序计数器指令寄存器多路选择器简化的处理器模型哈佛结构CPU与内存储器的接口1.对外形成三总线形式;2.寄存器MAR和MDR简化了CPU与主存之间的传送通路,使其容易控制;3.寄存器MAR和MDR
7、对用户透明,即不能编程访问;3.2微处理器设计数据通道组成:ALU+寄存器+内部总线功能:基本的二进制算术、逻辑及移位运算; 根据运算结果设置状态标志(进/借位、溢出等); 特性:数据通路宽度:即字长,CPU单次传送和处理数据的能力。数据通路周期:ALU运算并将保存结果的过程。控制单元(控制器)时序控制部件:指令周期、工作周期、时钟周期(工作脉冲)指令译码逻辑:微程序(CISC )、硬连逻辑(RISC ) 、微处理器的总体结构指令集结构(ISA)是体系结构的主要内容之一,其功能设计实际就是确定软硬件的功能分配。考虑因素 速度、成本和灵活性实现方式 硬件、软件 优化策略 RISC、CISC;流水
8、线;多核;实现内容 数据类型、指令功能、指令格式、寻址方式实现步骤根据应用初拟出指令的分类和具体的指令;编写出针对该指令系统的各种高级语言编译程序;对多种算法程序进行模拟测试,确认指令系统的操作码和寻址方式的效能是否都比较高;用硬件实现高频使用的指令,软件实现低频使用指令。指令系统设计3.2.1 处理器的设计步骤综合考虑指令系统、总体结构、时序系统等拟定指令系统203.2.1 处理器的设计步骤确定总体结构安排时序拟定指令流程和微命令序列形成控制逻辑组合逻辑控制方式中,将产生微命令的条件进行综合、化简,形成逻辑式,从而构成控制器的核心逻辑电路。在微程序控制方式中,则是根据微命令代码来编写微指令,
9、组成微程序,从而构成以控制存储器为核心的控制逻213.2.2 控制器的操作与功能微操作22231指令系统结构指令字由几个字段组成 操作码字段规定了计算机指令系统中由CPU实现的操作操作数是执行指令时需要的数据或寻找数据的方式单个处理器的所有指令构成指令集242随机逻辑体系结构在随机逻辑体系结构中,用布尔逻辑函数来表示控制单元的输入和输出之间的关系,每一个控制信号在布尔逻辑中用一个逻辑符号表示设计步骤:使用指令集结构驱动硬件的逻辑方程首先定义所需的指令集结构,根据指令集结构决定硬件的逻辑方程及有限状态机的逻辑硬件的逻辑方程再反馈到指令集结构为简化具体实现所需的硬件逻辑,对指令集结构做必要的修改和
10、优化,达到最大限度地减少逻辑复杂度的目的由于指令集与硬件逻辑之间关系密切,设计过程复杂,难以用于其他款的处理器,重用性差25随机逻辑体系结构 26随机逻辑体系结构的特点优点:使用的门电路总数少从而减少制造费用缺点:指令集结构与硬件逻辑方程之间存在着密切联系,设计过程复杂重用性差设计成果很少能再利用到以后的新CPU设计中指令集优化困难仅用于较简单的指令集结构273微码(Microcode)体系结构在微码(微指令)结构中,控制单元的输入和输出之间的关系被视为一个存储系统,相当于把控制信号存储起来控制信号存放在一个微程序内存里。在指令执行过程中的每一个时钟周期,从微程序内存里读取一个(微)控制字作为
11、指令执行的控制信号微码设计思想用软件方法控制数据信息传送,达到硬件实现微程序顺序产生单条指令执行所需的全部控制信号28微码结构的工作原理在微码体系结构中,其CPU的指令系统可以不直接用硬件逻辑电路实现,而是通过执行微代码程序来实现微码结构由如下两部分组成:微码控制器:小型的高速控制器微代码:在微码控制器中运行的微指令和软件设计微码体系结构的主要目的是:当设计新的微码体系结构时能够减少重复设计的费用,增强CPU的性能29指令、微程序、微指令(微码)微指令:在一个时间单位(节拍)内出现的一组微操作描述的语句微程序:一组微指令系列通过一组微指令产生的控制信号,使一条指令中的所有微操作得以实现,即实现
12、一条指令的功能T1:微操作1(命令1,命令2,) 微操作2(命令1,命令2) Ti:微操作j(命令1,命令2,) 微指令i Tm:微操作n(命令1,命令2,) 微指令m微指令1一条机器指令 一个微程序30微码结构Memory(RAM)Datapathmcontroller(ROM)AddrDatazero?busy?opcodeM使能写使能存储微码指令 微码组成的指令构成的用户程序 (如 MIPS, x86等)31微码机器包括:数据通路和控制流两个主要部分 32微指令33微程序控制器的一般结构34微码结构优缺点优点:高度抽象存储结构,不是硬件电路不易出错易于修改,更新设计快缺点:微码的硬件电路
13、开销大微控制器的运行速度高指令开箱依赖于微指令系统 指令集设计示例假设某机器的字长是8位,支持常见的简单指令:指令是双地址指令,源操作数采用2种寻址方式寄存器寻址(R0R3)和立即寻址;目标操作数可采用2种寻址方式寄存器寻址和存储器直接。请为下述九条机器指令设计可行的代码方案。若采用定长编码(8bit)方案,可定义指令格式如下:76543210=0000表示ADD=0001表示SUB=0010表示MOV=0011表示IN=0100表示OUT=0101表示RR目的操作数寻址方式:0直接寻址 1寄存器寻址目标寄存器编号源操作数寻址方式:0立即寻址 1寄存器寻址源寄存器编号操 作 码机器指令集机器指
14、令符号表示法 由于直接与机器指令二进制表示法打交道很困难,于是普遍使用的是机器指令符号表示法(symbol representation)。操作码可缩写成助记符(mnemonic)来表示ADD加SUB减MUL乘DIV除LOAD 由存储器装入STOR 存入存储器yyyy-M-汇编语言数据类型确认某种特殊类型的数据是否应该得到硬件支持 数值型数据:无符号整数、带符号整数、浮点数 非数值数据:字符串确认字长(对数据长度的限制) 截断(truncation)或溢出(overflow)在选择数据格式和长度时需要平衡数值范围、程序执行期间发生溢出的可能性、处理设备和存储设备的复杂性、以及价格和速度等因素。
15、指令类型指令按功能可分成以下三种基本类型: 数据传输:将数据从一个地方(源地址)复制到另一个 地方(目的地址),传输结束后源地址中的内容不变。 数据传送范围: R-R、R-M、M-R或M-M 数据传送宽度:一般为固定值(如8、16或32bit),其它宽度的数据传送一般可通过软件移位和合并操作来实现。数据运算:包括算术运算(加、减、乘、除等)和逻辑 运算(与、或、非、异或等)。 该类指令需要明确操作数的类型和长度。控制类:用于改变正常的程序执行流程,完成程序的跳转,主要包括转移指令和过程指令。I/O?机器指令要素操作码(operation code,opcode):需要完成的操作;源操作数 (s
16、ource operand reference):操作所需的输入;结果操作数 (result operand reference):操作产生的结果;下一条指令 (next instruction reference):告诉CPU到哪里取下一条指令。 yyyy-M-指令格式 在计算机内部,指令由一个位串来表示。相应于指令的各要素,这些位串划分成几个字段:操作码字段:说明CPU应进行的操作按操作类型分组:同类操作要求同样或类似的控制信号,因此编码也类似(有尽可能多的公共位)操作数字段/地址字段:说明源操作数和目的操作数存放的位置信息(R、M或I/O);说明源操作数和目的操作数的数据类型;下一条指令
17、地址字段: 如紧跟当前指令,在主存或虚存中,则不需显示引用; 如可能产生跳转,则需要显示给出存储地址;指令类型决定了CPU的软件功能特性寻址方式决定了CPU硬件功能特性41/86操作码字段常见指令字段分配操作码位段分配扩展操作码操作数字段 二元操作(binary operation)是一种基本操作类型,这样的指令通常包含三个操作数地址:两个源操作数和一个目的(结果)操作数。为了缩短指令长度,可以采用以下方法:只有一个地址指定给存储器中的操作数,而其余地址都指定给寄存器,可以在指令格式中明确地指定其寄存器号。把一个、两个或三个操作数的地址在指令格式中变成隐含的地址。隐含的地址可以指定给专用寄存器
18、,而这些寄存器的名字隐含在指令格式的操作码中。yyyy-M-43/86机器指令结构:M-M、M-R、R-R机器指令结构:零地址、单地址、双地址寻址方式操作数实际存放位置:寻址方式:1在指令码中指定操作数:立即数寻址2在寄存器中指定操作数:寄存器(直接)寻址3在存储器中指定操作数:存储器直接寻址、存储器间接寻址4在汇编程序中指定操作数: 相对寻址5操作数在I/O接口中: 存储器寻址(存储器映像编址)或端口寻址(独立编址)立即数寻址immediate addressing mode寄存器直接寻址方式register direct addressing mode 指令的地址字段给出寄存器号(名) ,
19、而被指定的寄存器的内容就是操作数。 存储器直接寻址memory direct addressing mode指令的地址字段直接给定一个立即数作为存储单元的地址。寄存器直接寻址存储器间接寻址memory indirect addressing mode(1) 寄存器间接寻址方式(2) 存储器间接寻址方式(3) 位移量寻址方式(4) 变址寻址方式(5) 比例尺寻址方式用于加强编写与位置无关的汇编语言程序寄存器间接寻址方式register indirect addressing mode 将存储器地址指定在寄存器中,即让寄存器内容指向一个可访问到操作数的存储器单元。yyyy-M-49/86存储器间接
20、寻址方式 memory indirect addressing mode 多级间接寻址; 通常用于访问存储器中的“跳转表”:跳转表首址指定在寄存器中,该表中的每个表项指向一个可访问到操作数的存储器单元。跳转表位移量寻址方式displacement addressing mode 通常用于数组、矩阵类向量数据的存取:寄存器值指定数组首址,立即数指定组内偏移;指数寻址方式indexed addressing mode 通常用于数组、矩阵类向量数据的存取:寄存器1值指定数组首址,寄存器2指定组内偏移;比例尺寻址方式scaled addressing mode用字节表示的操作数的长度位移量寻址+指数寻
21、址+自增/自减寻址PC相对寻址方式Program Counter-related addressing mode 主要用在转移和跳转指令,指定汇编语言程序码的内部位置作为目的地址偏移量操作数。指令:JUMP abe 操作: PC abe = (PC)updated +immSign_ext当前指令取出后的PC值出现在指令中55控制单元模型56CPU内部结构CPU包括算术和逻辑单元、累加器、程序计数器、指令寄存器、指令译码器、时序和控制部件57MIPS的总线型数据通道微指令: 寄存器到寄存器的传送 (17 个控制信号) MA PC means RegSel = PC; enReg=yes; ld
22、MA= yesB Regrt meansenMemMAaddrdataldMAMemorybusyMemWrtBus32zero? A BOpSelldAldBALUenALUALUcontrol2RegWrtenRegaddrdatarsrtrd32(PC)31(Link)RegSel32 GPRs+ PC .32-bit Reg3rsrtrdExtSelIROpcodeldIRImmExtenImm2RegSel = rt; enReg=yes; ldB = yes583.1.2 微处理器体系结构简介在设计计算机体系结构时,要考虑:CPU采用何种指令系统?该计算机体系的价格及性能之比如何?
23、这种计算机体系有销售市场吗?指令系统指令格式寻址方式59处理器结构按照指令执行的串行/并行及电路结构不同划分,处理器结构分为六种60流水线结构成功设计的流水线机器会要求在它的指令集设计及硬件设计之间达到一种平衡,因此设计流水线机器是一项比较困难的工作。此外,当流水线在并行地执行指令时,正执行的指令之间可能发生多种冲突(hazard)情况,所以在设计流水线机器时要预先考虑到可能的冲突,并且设法在设计时加以解决。61指令的顺序执行和流水线执行 62流水线技术 理想流水线的性能:达到每一个时钟周期可以完成一条指令与指令串行执行相比较,速度提高5倍 流水线是一种多条指令重叠执行的实现技术633.2 指
24、令系统设计指令是规定微处理器进行操作的命令,不同类型的处理器具有不同的指令系统指令系统设计是中央处理器设计的基础,CPU的操作由其执行的指令来确定指令字由操作码、操作数和操作数地址等字段组成一条指令的地址字段和相关的寻址方式对CPU的组织结构有显著的影响,因此要仔细考虑指令系统的结构设计643.2.1 机器指令要素每条机器指令必定包含CPU执行所需的信息。机器指令要素 操作码(operation code):指定将要完成的操作(如ADD或I/O等)。这些二进制代码常简称为opcode 源操作数引用(source operand reference):操作会涉及到一个或多个源操作数,这是操作所需
25、的输入结果操作数引用(result operand reference):操作可产生一个结果下一条指令引用(next instruction reference):告诉CPU这条指令执行完后到哪里取下一条指令,通常下一条指令紧跟之后,因此不显式引用65 指令周期状态图 66操作数存储位置主存或虚存:与下一条指令的引用一样,必须提供主存或虚存的地址CPU寄存器:除极少数例外,一个CPU总有一个或多个能被机器指令访问的寄存器。若只有一个寄存器,则对它的引用可以是隐式的;若不止一个寄存器,则每个寄存器要指定一个唯一的编号,指令提供所需寄存器的寄存器编号I/O设备:需要I/O操作的指令必须指定I/O模
26、块或设备。若使用存储器映射(memory-mapped)I/O方式,则只是另一类主存或虚存地址。673.2.2 指令格式指令格式:指令要素的组织形式,即构成指令的位串的组织形式。这些位串划分成几个字段指令集通常不止一种指令格式。处理器使用的一般指令格式:68指令格式的要素指令格式取决于计算机指令系统的机器代码表示。操作码,定义了将要执行的操作,二进制编码,编码位数决定了指令类型数目操作数,源操作数和目的操作数在存储器和(或)寄存器中所在位置的信息。这些位置都用地址以及各种寻址方式加以指定。操作数的数据类型。可选要素立即数:操作数作为指令的构成部分直接给出位移量:操作地址的补充信息附加信息69指
27、令操作操作码和操作数是机器指令的两个最重要的部分。操作码字段定义了具体的何种操作,体现了计算机在软件方面的执行功能特性操作数由地址字段给出获得数据的方法,由地址信息和寻址方式共同决定,往往需要硬件电路的变换得到最终的地址,进而选中相应的单元并获得操作数,因此决定了计算机的硬件电路结构指令系统包含许多不同类型的指令。其中,二元操作(binary operation)是一种基本操作类型,要使用三个操作数地址二元操作包含两个源操作数和一个目的(结果)操作数,每一个操作数可以定位在存储器或寄存器中。 70二元操作数获得的方法提供3个操作数地址的缺点:指令编码长,译码电路复杂,执行时间长一个操作数指定为
28、存储器,其余为寄存器衍生出:存储器与寄存器,寄存器与寄存器例:MOV A,2000H, MOV A,B操作数地址隐含在指定的寄存器中寄存器间接寻址例:MOV A,B71机器指令符号表示法由于直接与机器指令二进制表示法打交道很困难,于是普遍使用的是机器指令符号表示法(symbol representation)。操作码可缩写成助记符(mnemonic)来表示。常见的例子有ADD加SUB减MUL乘DIV除LOAD由存储器装入STOR存入存储器723.2.3 指令类型计算机的目的是运算,如何获得原始数据?数据输入中间结果、复杂运算的部分结果怎么办?数据存储条件运算,分支判断,异常情况如何处理?转移将
29、指令按功能分成如下四类 数据处理:算术和逻辑指令; 数据存储:存储器指令; 数据输入/输出:I/O指令; 控制:测试和转移指令。733.2.4 寻址方式寻址方式:寻找、获得操作数所在地址的方法例如,指令的操作数字段有寄存器号,并不一定表示操作数就在该寄存器中。而可能是寄存器中包含了指向存储器的指针,操作数是在存储器中寻址方式是指令的组成部分,同时含有寄存器的信息opcodemodregr/mdispData操作码 方式寄存器(Mod字节) 位移量 立即数744类寻址方式被寻址的操作数可以存在于指令码内、寄存器内、存储器单元内或汇编语言程序内部的某一位置,有下面4类寻址方式:在指令码中指定操作数
30、:操作数已经是指令的构成部分在寄存器中指定操作数:指令中指明了寄存器作为操作数的存储位置指定存储器中的操作数:指令中通过一定方式指明了存储单元在汇编语言程序内部指定一个位置751在指令码中指定操作数立即数寻址方式(immediate addressing mode) :操作数是指令的组成部分不灵活,只能为原始数据,不能为结果762在寄存器中指定操作数寄存器直接寻址方式(register direct addressing mode):指明寄存器采用这一寻址方式,指令在它的地址字段中指定一个寄存器号,而被指定的寄存器的内容就是操作数,即寄存器号是一个指针,它直接指向该寄存器中的操作数。 773指
31、定存储器中的操作数(1)存储器直接寻址方式(2)寄存器间接寻址方式(3)存储器间接寻址方式(4)位移量寻址方式(5)指数寻址方式(6)自增和自减寻址方式(7)比例尺寻址方式78(1)存储器直接寻址方式在指令格式中指定一个立即数作为存储器地址。这种在指令码中包含存储器地址的寻址方式称为存储器直接寻址方式(memory direct addressing mode), 79(2)寄存器间接寻址方式将存储器地址指定在寄存器中。这样就定义了寄存器间接寻址方式(register indirect addressing mode),它让寄存器内容指向一个可访问到操作数的存储器单元。 80(3)存储器间接寻
32、址方式 81(4)位移量寻址方式 82(5)指数寻址方式 两个寄存器的内容相加将给出读取所需元素的有效地址83(6)自增和自减寻址方式专为在存储器中实现堆栈操作而设计的,分别称为自增寻址方式(auto-increment addressing mode)和自减寻址方式(auto-decrement addressing mode)。指令格式的地址字段指定一个称为堆栈指针寄存器(SP)的专用寄存器。该寄存器包含堆栈指针,总是指向现在的栈顶位置。块操作指令通常也是自增或自减的 84推入(PUSH) 、弹出(POP)操作其中: -(SP)表示SP先做指针自减操作,再将数据压入堆栈; (SP)+表示数
33、据弹出后,SP再做指针自加操作。 858687(7)比例尺寻址方式将位移量寻址方式和指数寻址方式相结合,则得到了一种通用的寻址方式,称为比例尺寻址方式它要指定3个变量:一个立即数imm,用做与位置无关程序的位移量;两个寄存器Rs和Rx,分别用于指数寻址方式。有效存储器地址= imm+(Rs)+(Rx)d,其中d是用字节表示的操作数的长度。(Rx)d意味着(Rx)可以在循环程序的每一次迭代中简单地用一条指令增1或减1,而每一次迭代指数的真实修改量由寻址方式自动安排。 88 比例尺寻址方式 894程序内部的PC相对寻址方式程序指针相对寻址方式主要用在转移和跳转指令中目的地址或目标地址被指定为汇编语
34、言程序内部的一个标识。每一个标识附属在一条指令上程序加载进入存储器时,标识的值就等于该指令的地址程序进行汇编时,标识便很容易地变换为相对程序计数器(PC)的一个偏移量。使用这一寻址方式可以计算出一个目的地址,指向一条事先指定的指令,或作为转移控制之用 90PC相对寻址方式 PC相对寻址方式:指定汇编语言程序码的内部位置作为操作数例如JUMP abe ; PCabe = (PC)updated + immsign_ext(PC)updated表示当前指令取出后的PC值,immsign_ext表示imm,可以是一个符号位扩展的有符号数(补码)。利用此公式可以计算出imm为abe的函数)915寻址方
35、式的实例(80 x86)D:源操作数D=0,则reg域指定的寄存器用作源操作数D=1,则reg域指定的寄存器用作目的操作数,而源操作数可来自r/m域中的存储器或寄存器W:表示操作数是8位还是16位W=0,指令中两个操作数均为8位,W=1,则为16位操作码寻址方式与寄存器号位移量/立即数位移量/立即数立即数立即数第1字节 2字节 3字节 4字节 5字节 6字节opcodemodregr/mdispData操作码 方式寄存器(Mod字节) 位移量 立即数D WD7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0Mod reg r/m 操作码字节 寻址方式字
36、节9293举例例:写出指令MOV BX+DI-6,CL的机器语言编码1. 可用符号写成MOV mem,reg的形式,故该指令编码形式为:100010DWmodregr/mdisp82. 由于目的数是存储器寻址,D=0和reg域指定了源寄存器。CL的reg编码为001,操作数为8位,W=0,则有:10001000mod001r/mdisp83. r/m=001,是对BX+DI+disp的寻址计算。位移量disp=-6,为FAH。当mod=01时,为选取8位位移量,则有:100010000100100111111010=88H、49H、FAH94ARM指令编码格式Opcode:指令操作码。cond
37、:指令的条件码。S:决定指令的操作是否影响cpsr的值。Rd:目标寄存器编码。Rn:包含第一个操作数的寄存器编码。Operand2:第2操作数。CondOpcodeSRnRdOperand2011121516192021242527283178953.2.5 指令系统设计指令系统设计需考虑的因素满足编程要求。程序员的软件接口,必须考虑编程的便利和效率实现技术。处理器的硬件实现,芯片硬件设计实现的经济性。流水线是实现高性能处理机的流行技术,指令系统设计有利于流水线的实现计算机的综合性能。CPU执行时间与每一类型指令的平均执行时间CPI和时钟频率有关。最常用的指令类型尽可能快速执行,而最耗费时间(
38、但最少用)的指令类型应从指令系统中去掉,改用软件实现。这是计算机结构师在设计指令系统时总是要面对的一个硬件和软件之间权衡的问题向后兼容。这实际上是指令系统设计中的一个限制而不是有利因素。Pentium系列便是一个典型例子。96指令类型 数据移动指令。数可以存在于存储器和寄存器中,也可以是在指令码内部指定的立即数。 COPY或DUPLICATE(复制) ,MOVE(移动) ,LOAD(载入),PUSH(推入堆栈)和POP 算术逻辑运算指令。大多数计算机都提供了基本算术指令整数的ADD(加),SUB(减),MUL(乘)和DIV(除)控制指令。控制指令在汇编语言级实现高级语言构造if-then-el
39、se,while-do,case和goto的能力两个子类:BRANCH(转移)和JUMP(跳转)973.3 随机逻辑(硬连接)体系结构3.3.1 随机逻辑体系结构的特点逻辑门数的最少化对硬件逻辑设计进行优化尽可能少用触发器(flip-flop)优化硬件时序以增强性能将总的逻辑门级数最小化,减少延时建立并行逻辑通路的方法减少时序的约束和延时调整指令操作周期的长度,使之与时钟周期匹配,发挥效率采用简单指令集尽可能多使用累加器,并且同时作为源及目的操作数间接寻址时,地址尽可能由指令直接提供983.3.2 随机逻辑体系结构的操作1随机逻辑体系结构的硬件结构 控制器、数据通道992取指令操作所有指令操作
40、可划分成:一个是取指令周期一个是指令执行周期在取指令周期内,将进行如下一系列操作经过多路器(MUX),把程序计数器的值(指令的地址)选送到存储器存储器回送所期望的指令(或数据),然后它被写入指令寄存器同时,通过加法器将程序计数器之值加1,并将其值作为新值回写入程序计数器100 取指令操作 1013执行指令操作存储器引用的指令执行周期在寄存器堆中选定一个地址寄存器,并通过多路器(MUX)将其值送到存储器来自于存储器的数据作为ALU的一个源操作数;另一个源操作数则来自于寄存器堆中的数据寄存器。它们将一同被送往ALU的输入。ALU的结果值被回写入寄存器堆102执行指令操作随机逻辑体系结构的操作组合电
41、路数据选择器, 译码器, 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)硬件单元电路104寄存器堆ReadData1ReadSel1ReadSel2 WriteSelRegister file2R+1WReadData2 Wr
42、iteDataWEClockrd1rs1rs2wswdrd2we读操作是组合逻辑电路ffQ0D0ClkEnffQ1D1ffQ2D2ffQn-1Dn-1.register105寄存器堆的实现reg 31wsclkreg 1wdwers1rd1rd2reg 03253232rs255多端口的寄存器堆设计实现复杂几乎所有的MIPS指令都有2个寄存器源操作数Intels的Itanium处理器, 有128个通用寄存器组,分别有8个都端口和4个写端口!we:write enablews:write selectwd:write datard:read datars:read select106数据通道:寄
43、存器-寄存器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 selectwd:write datawe:write enablerd:read dataGP
44、R:General Purpose RegisterFunc:function107数据通道:寄存器-立即数ALU指令 6 5 5 16opcode rsrt immediate rt (rs) op immediate31 26 25 2120 16 15 0ImmExtExtSelinstOpCode0 x4AddclkaddrinstInst.MemoryPCzALURegWriteclkrd1GPRsrs1rs2wswdrd2weinstinstinstALUControlAddr:addressInst:instructionrs:read selectws:write select
45、wd:write datawe:write enablerd:read dataGPR:General Purpose RegisterFunc:function108数据通道合并时冲突ImmExtExtSelOpCode0 x4AddclkaddrinstInst.MemoryPCzALURegWriteclkrd1GPRsrs1rs2wswdrd2weinstinstinstinstALUControlinstinstopcode rsrt immediate rt (rs) op immediate 6 5 5 5 5 6 0 rsrt rd 0 func rd (rs) func (r
46、t)引入数据选择器109ALU指令的数据通道, 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 DestinationSrc:Source110数据传送指令:哈佛数据通道WBSrcA
47、LU / 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.MemoryPCRegWriteclkrd1GPRsrs1rs2wswdrd2weImmExtc
48、lkMemWriteaddrwdatardataData Memorywe111MIPS控制跳转指令有条件(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 targetJ, JAL 6 55 16opcode rsJR, JAL
49、R112有条件跳转 (BEQZ, BNEZ)0 x4AddPCSrcclkWBSrcMemWriteaddrwdatardataData MemoryweRegDstBSrcExtSelOpCodezOpSelclkzero?clkaddrinstInst.MemoryPCrd1GPRsrs1rs2wswdrd2weImmExtALUALUControlAddbrpc+4RegWrite113寄存器间接跳转 (JR)0 x4RegWriteAddAddclkWBSrcMemWriteaddrwdatardataData MemoryweRegDstBSrcExtSelOpCodezOpSelc
50、lkzero?clkaddrinstInst.MemoryPCrd1GPRsrs1rs2wswdrd2weImmExtALUALUControlPCSrcbrpc+4rind114寄存器间接跳转并链接(JALR)0 x4RegWriteAddAddclkWBSrcMemWriteaddrwdatardataData MemoryweRegDstBSrcExtSelOpCodezOpSelclkzero?clkaddrinstInst.MemoryPCrd1GPRsrs1rs2wswdrd2weImmExtALUALUControl31PCSrcbrpc+4rind115绝对跳转 (J, JAL
51、)0 x4RegWriteAddAddclkWBSrcMemWriteaddrwdatardataData MemoryweRegDstBSrcExtSelOpCodezOpSelclkzero?clkaddrinstInst.MemoryPCrd1GPRsrs1rs2wswdrd2weImmExtALUALUControl31PCSrcbrpc+4rindjabs116MIPS的哈佛结构数据通道0 x4RegWriteAddAddclkWBSrcMemWriteaddrwdatardataData MemoryweRegDstBSrcExtSelOpCodezOpSelclkzero?clk
52、addrinstInst.MemoryPCrd1GPRsrs1rs2wswdrd2weImmExtALUALUControl31PCSrcbrrindjabspc+4117随机逻辑连接控制是纯组合逻辑电路 combinational logicop codezero?ExtSelBSrcOpSelMemWriteWBSrcRegDstRegWritePCSrc118ALU 控制与立即数扩展Inst (Opcode) Decode MapInst (Func)ALUop0?+OpSel( Func, Op, +, 0? )ExtSel( sExt16, uExt16, High16)119Opc
53、odeExtSelBSrcOpSelMemWRegWWBSrcRegDstPCSrcALUALUiALUiuLWSWBEQZz=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+4sExt16Imm+yesno*pc+4ImmOpnoye
54、sALUrtpc+4*RegFuncnoyesALUrdsExt16ImmOppc+4noyesALUrtpc+4sExt16Imm+noyesMemrtuExt16120哈佛结构的单周期随机逻辑连接控制的条件时钟周期足够长以保证下述操作都能完成取指令译码及取寄存器ALU运算取数据回写寄存器的建立时间即:tC tIFetch + tRFetch + tALU+ tDMem+ tRWB在下个周期的上升沿,PC,寄存器组,和存储器的内容都已经更新1213.3.3 随机逻辑体系结构指令集的设计设计指令集时,必须考虑能否让逻辑门可以快速而方便地实现指令译码。一般的设计方法是将指令内部的结构划分成多个指
55、令字段(field)。同时还要求这些指令字段在各指令中所放的位置尽可能一样。这样,在CPU中可以减少指令译码所需的逻辑数量。122随机逻辑CPU的指令类型 分支指令(branch instruction)。分支指令的跳转方向取决于标记寄存器中的值。最常见的分支指令是使用相对PC地址的跳转。因为这类分支指令无需变更,可以方便地放置在存储器中的任何位置,可以容易地执行所需的功能操作存储器引用指令(memory reference instruction)。存储器引用指令是从存储器取出数据,或者向存储器内存入数据的一种操作,它可以采用许多不同的寻址模式。ALU指令(ALU instruction)。
56、ALU指令需要两个来源及一个目的地。ALU指令的来源可能是寄存器、存储器或立即数,这两者都可以包含在指令内。设置指令(SET instruction)。如果指令集仅依赖寄存器模式或指数寻址模式进行存储器引用指令的取存操作,则寄存器本身无法初始化。因此,指令集中必须包括一些设置指令,以完成寄存器初始化任务1233.4 微码体系结构设计微码体系结构处理器的主要目的是减少重复设计的费用,增强CPU的性能。高性能的微码处理器是由设计较为复杂的指令集实现的,同时也使硬件的设计得以简化而运行更快。微码结构试图将指令集与硬件设计分开1243.4.1 微码体系结构的特点处理器操作中存储器存取延时是最大的延时,
57、因此需要减少取指令的次数可用复杂指令来替代若干条简单指令,减少从存储器中取出指令的总次数微码可以独立于硬件设计之外进行设计与验证,而且容易修改或移植到新的机器上微码结构的设计方法把每条指令分割成许多微步骤或微指令。这种设计方法改变了机器硬件设计的工作,简化成编写实现每条指令所需微码(一系列微指令)的软件设计工作125微码控制器微码设计增加一个可控制微码执行顺序的微指令序列的定序器(sequencer)或微码控制器微指令只需较短操作(可在23个单位延时加一个逻辑门建立时间之内完成),硬件时序分析简单许多微码结构处理器可以采用频率高得多且单一时钟周期操作,避免随机逻辑结构所需的多种时钟周期操作,简
58、化硬件设计126 3.4.2 微码机器操作微码机器1271数据通路数据通路的三个基本时钟周期从存储器读取数据,如下操作之一将其写入寄存器堆(Register File);将其写入指令寄存器(IR);将其写入TempIn寄存器(Temporary Register,临时寄存器);将其作为ALU的一个数据源从寄存器堆读取数据,如下操作之一将其写入存储器地址寄存器(Memory Address Register, MAR);将其写入TempIn寄存器,作为ALU的一个输入数据;将其作为数据存入存储器将Result寄存器(用于在每个时钟周期后保持ALU的输出结果的寄存器)的数据写入寄存器堆,或者作为数
59、据存入存储器1282控制流控制流决定某条指令中微代码的执行顺序,流程:每一个指令周期开始于将存储器中的指令写入IR控制逻辑进行指令译码,以确定执行这条指令的微码程序在微码ROM中的起始地址,并将这个微码地址写入PCPC向微码ROM提供一个微码地址,ROM返回一个字长的微码,并写入IRIR随后向机器的数据通路和控制流提供控制信号PC的地址加1来获取下一条微指令的地址,直到到达整个微码程序的最后一条微分支指令此后PC又开始执行取微指令程序,从而开始了另一条指令的执行周期。129微结构的实现结构:模块如何连接?静态的!行为:数据在模块间如何移动?动态的!ControllerDatapathcontr
60、olpointsstatuslines130微代码的微结构Memory(RAM)Datapathmcontroller(ROM)AddrDatazero?busy?opcodeenMemMemWrt存储固定的微代码指令存储用户程序指令(如, MIPS, x86, etc.)131MIPS微控制器next statePC (state)Opcodezero?Busy (memory)Control Signals (17)ss6Program ROMaddrdata输入锁存会有1个周期的延迟= 2(opcode+status+s) wordsHow big is “s”?ROM size ?Wo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防治肿瘤科普知识课件
- 江苏省泰兴市黄桥教育联盟2026届中考语文模拟试题含解析
- 黄金买卖合同2025年
- 工程技术服务合同书2025年
- 会议室装修合同(2025版)
- 湖北省枣阳市重点名校2026届中考英语押题卷含答案
- 社区救助管理办法
- 灌区设计管理办法
- 物流纸箱管理办法
- 煤炭网点管理办法
- 河北省廊坊市各县区乡镇行政村村庄村名居民村民委员会明细
- 桥台裂缝加固处理方案
- 危货运输安全知识
- 沈阳终止解除劳动合同范文证明书(三联)
- 脚手架架在楼板上验算书
- ThinkPad X220 拆机解析深入分析
- 第3章沼气发酵原理与设计
- 《中学思想政治课程教学论》课程教学大纲
- 华为技术校园招聘会ppt招聘宣讲会ppt课件
- 消防预防方案及处理预案
- 安全隐患排查整改台账2012
评论
0/150
提交评论