1、第三章第三章 微处理器体系结构及关键技术微处理器体系结构及关键技术3.1 微处理器体系结构及功能模块简介微处理器体系结构及功能模块简介1.处理器的主要功能2.处理器的基本结构3.一个简化的处理器模型结构示例3.2 处理器设计处理器设计3.3 指令系统设计指令系统设计 3.4 指令流水线指令流水线技技术术3.5 典型微处理体系结构简介典型微处理体系结构简介2022-11-28ARM、x86特点特点、操作操作、局限局限、设计设计参考资料:参考资料:浪潮之巅浪潮之巅第五章奔腾的芯(英特尔第五章奔腾的芯(英特尔Intel)大话处理器大话处理器1.中央处理单元中央处理单元 Central Process
2、ing Unit,CPU2.微处理器微处理器 Micro Processing Unit,MPU3.微控制单元微控制单元 Micro Control Unit,MCU4.单片机单片机5.计算机计算机单单片片芯芯片片控制器、运算器、寄存器控制器、运算器、寄存器几个概念几个概念yyyy-M-d2/86微处理器主要性能指标微处理器主要性能指标l主频主频:即微处理器:即微处理器时钟频率时钟频率。如。如Pentium4 2GHz同系列的微处理器,主频越高,速度越快。同系列的微处理器,主频越高,速度越快。但主频相同的微处理器,速度不一定都相同,因结构有差异但主频相同的微处理器,速度不一定都相同,因结构有差
3、异l外频外频:微处理器:微处理器外部总线工作频率外部总线工作频率。如。如Pentium4 2GHz的外频为的外频为400MHzl倍频倍频:主频主频=外频外频 X 倍频;倍频;l地址总线宽度地址总线宽度:决定访存空间。如:决定访存空间。如32位地址线访问位地址线访问232=4GB存储单元存储单元l数据总线宽度数据总线宽度:决定微处理器与外部存储器、输入:决定微处理器与外部存储器、输入/输输出部件之间一次交换的二进制数据位数。如出部件之间一次交换的二进制数据位数。如8、16、32、64位。位。注意:地址总线宽度与数据总线宽度没有直接关系。注意:地址总线宽度与数据总线宽度没有直接关系。微微处理器的主
4、要功能处理器的主要功能计算机系统设计师认为:处理器是指一种能够经过多个计算机系统设计师认为:处理器是指一种能够经过多个步骤执行步骤执行计算计算任务的任务的数字数字设备。设备。从本质上讲,处理器的作用是协调和控制计算机的各个从本质上讲,处理器的作用是协调和控制计算机的各个部件,并部件,并执行程序执行程序的指令序列。的指令序列。处理器的处理器的5个主要功能:个主要功能:指令控制指令控制:控制指令按程序逻辑顺序执行。控制指令按程序逻辑顺序执行。操作控制操作控制:按照指令执行过程及指令约定功能的需求产生各按照指令执行过程及指令约定功能的需求产生各种操作控制信号。种操作控制信号。时间时间控制控制:能够在
5、适当的时间能够在适当的时间(时刻时刻)使相应操作控制信号有使相应操作控制信号有效,并保持所需的时长。效,并保持所需的时长。数据加工数据加工:对数据进行算术和逻辑运算处理。对数据进行算术和逻辑运算处理。中断处理中断处理:程序执行过程中应能够及时处理出现的程序执行过程中应能够及时处理出现的I/O操作请操作请求及异常情况。求及异常情况。一一寄存器组寄存器组 (通过寄存器通过寄存器序号序号进行读写)进行读写)二二控制单元(控制器)控制单元(控制器)1.时序控制部件:时序控制部件:指令周期、工作周期、时钟周期指令周期、工作周期、时钟周期(工作脉冲工作脉冲)2.指令译码逻辑:指令译码逻辑:微程序(微程序(
6、CISC)、硬连逻辑()、硬连逻辑(RISC)三三数据通道(运算器)数据通道(运算器)1.组成:组成:ALU+寄存器寄存器+内部总线内部总线2.功能:功能:基本的二进制算术、逻辑及移位运算;基本的二进制算术、逻辑及移位运算;根据运算结果设置状态标志(进根据运算结果设置状态标志(进/借位、溢出等);借位、溢出等);3.特性:特性:1)数据通路宽度:数据通路宽度:即字长,即字长,CPU单次传送和处理数据的能力。单次传送和处理数据的能力。2)数据通路周期数据通路周期:ALU运算并将保存结果的过程。运算并将保存结果的过程。CPU的硬件组织的硬件组织5/68CPU的寄存器简化模型及分类1.CPU组组 1
7、)通用寄存器通用寄存器(GPR)2)程序状态寄存器程序状态寄存器(PSR)2.控制组控制组1)程序计数器(程序计数器(PC)2)指令寄存器(指令寄存器(IR)3.存储器组存储器组1)存储器地址寄存器存储器地址寄存器(MAR)2)存储器数据寄存器存储器数据寄存器(MBR)计算机及微计算机及微处理器的处理器的基本结构基本结构数据通路数据通路CPU的的RTL描述:描述:控制器控制器数据通路数据通路数据通路数据通路:ALUReg+内部总线内部总线ALU:运算:运算Reg组:暂存组:暂存内总线:传输内总线:传输p 简单的单总线简单的单总线(ALU总线总线)p 复杂的多级总线复杂的多级总线(片上总线片上总
8、线)ALU、通用寄存器、通用寄存器、ALU输入输出寄存器的结构输入输出寄存器的结构l在汇编语言中,在汇编语言中,ALU(算术逻算术逻辑单元辑单元)单元直接访问通用寄单元直接访问通用寄存器进行运算存器进行运算(C=A+B)l在硬件实现时,通用寄存器中在硬件实现时,通用寄存器中的数据先被读到流水线寄存器的数据先被读到流水线寄存器(即(即ALU的输入寄存器)中,的输入寄存器)中,ALU运算结束后,数据会存储运算结束后,数据会存储在在ALU的输出寄存器中,最后的输出寄存器中,最后再送回到通用寄存器中再送回到通用寄存器中ARALU输入输入1,BRALU输入输入2 运算结果运算结果R输出输出 RALU输出
9、输出C ALU的输出的输出1.算术逻辑运算结果算术逻辑运算结果2.运算结果的标志信息运算结果的标志信息(N、Z、C、V),该,该信息放在程序状态寄存器(信息放在程序状态寄存器(PSR)中)中控制器组成控制器组成1.时序控制部件时序控制部件指令周期指令周期工作周期工作周期时钟周期时钟周期(工作脉冲工作脉冲)2.指令译码逻辑指令译码逻辑微程序(微程序(CISC)硬连逻辑(硬连逻辑(RISC)3.控制单元控制单元 时钟(时序控制部件)时钟(时序控制部件)时序控制部件:脉冲源时序控制部件:脉冲源+分频逻辑;用以产生各种系统所需分频逻辑;用以产生各种系统所需的、满足时序要求的控制信号。的、满足时序要求的
10、控制信号。1.时钟周期时钟周期Tn 处理器完成一个基本操作所用时间的最小单位处理器完成一个基本操作所用时间的最小单位 2.工作周期工作周期Mn 指令周期中的不同工作阶段指令周期中的不同工作阶段3.指令周期指令周期 读取并执行一条指令所需的时间读取并执行一条指令所需的时间4.总线周期总线周期 完成一次存储器读完成一次存储器读/写操作所用时间写操作所用时间 ISA(Instruction Set Architecture)的出现 IBM IBM在它的在它的System/360System/360计算计算机中引入了机中引入了ISA(Instruction Set ISA(Instruction Se
11、t ArchitectureArchitecture指令集体系结构指令集体系结构)的概的概念,将编程所需要了解的硬件信息从念,将编程所需要了解的硬件信息从硬件系统中抽象出来,这样软件人员硬件系统中抽象出来,这样软件人员就可以面向就可以面向ISAISA进行编程,开发出的进行编程,开发出的软件不经过修改就可以应用在其他采软件不经过修改就可以应用在其他采用同样用同样ISAISA架构的系统上。架构的系统上。早期,软件的编写都是直接面早期,软件的编写都是直接面向硬件系统的,即使是同一计算机向硬件系统的,即使是同一计算机公司的不同计算机产品,它们的软公司的不同计算机产品,它们的软件都是不能通用的。件都是不
12、能通用的。人类与计算机的沟通语言指令集架构指令集架构(ISA):是体系结构的主要内容之一,对是体系结构的主要内容之一,对CPU的的基本组织会产生非常大的影响。基本组织会产生非常大的影响。ISA功能设计实际就是确定功能设计实际就是确定软硬件的功能分配。软硬件的功能分配。一一考虑因素考虑因素 速度、成本和灵活性速度、成本和灵活性二二实现方式实现方式 硬件、软件硬件、软件 三三优化策略优化策略 RISC、CISC;流水线;多核;流水线;多核;四四实现内容实现内容 指令功能、数据类型、指令格式、寻址方式指令功能、数据类型、指令格式、寻址方式五五实现步骤实现步骤1.根据应用初拟出根据应用初拟出指令指令的
13、分类和具体的指令;的分类和具体的指令;2.编写出针对该指令系统的各种高级语言编写出针对该指令系统的各种高级语言编译程序编译程序;3.对多种算法程序进行模拟测试,确认指令系统的对多种算法程序进行模拟测试,确认指令系统的操作码和寻址操作码和寻址方式方式的效能是否都比较高;的效能是否都比较高;4.用硬件实现高频使用的指令,软件实现低频使用指令。用硬件实现高频使用的指令,软件实现低频使用指令。3.3 指令系统设计指令系统设计指令集发展历程3.3.1 机器指令的组成1.操作码操作码(operation code,opcode):需要完成的操作:需要完成的操作2.源操作数源操作数(source opera
14、nd reference):操作所需的输入:操作所需的输入(可能在可能在处理器的寄存器或内存储器或处理器的寄存器或内存储器或I/O设备中设备中)3.结果操作数结果操作数(result operand reference):操作产生的结果:操作产生的结果4.下一条指令下一条指令(next instruction reference):告诉:告诉CPU到到 哪里取下一条指令哪里取下一条指令 3.3.2指令格式在计算机在计算机内部内部,指令由一个,指令由一个二进制位串二进制位串来表示。来表示。相应于指令的各要素相应于指令的各要素,这些位串划分成几个这些位串划分成几个字段字段:1.操作码字段:操作码字
15、段:说明说明CPU应进行的操作应进行的操作(决定决定CPU的软件功能特性的软件功能特性)2.操作数操作数/地址字段地址字段(寻址方式寻址方式决定决定CPU硬件功能特性硬件功能特性)l说明源操作数和目的操作数存放的位置信息l说明源操作数和目的操作数的数据类型3.下一条指令地址字段下一条指令地址字段指令字段分类常见指令常见指令字段分配字段分配操作码操作码位段分配位段分配机器指令符号表示法symbol representation 由于直接与机器指令二进制表示法打交道很由于直接与机器指令二进制表示法打交道很困难,于是普遍使用的是机器指令符号表示法困难,于是普遍使用的是机器指令符号表示法(symbol
16、 representation)。操作码可缩写成操作码可缩写成助记符(mnemonic)来表示:来表示:ADD加加SUB减减MUL乘乘DIV除除LOAD由存储器装入由存储器装入STOR存入存储器存入存储器yyyy-M-d20/68汇编语言助记符汇编语言助记符1.操作助记符操作助记符ADD,SUB,MUL,DIV2.操作数助记符操作数助记符X,Y(变量定义变量定义)3.指令助记符指令助记符MOV A,#0 x10 ;A=0 x10,A为寄存器名;为寄存器名;ADD A,A,#0 x20 ;A=A+0 x20;3.3.3指令类型指令类型指令按功能可分成以下三种基本类型:指令按功能可分成以下三种基本
17、类型:1.数据传输:数据传输:将数据从一个地方(源地址)复制到另一个将数据从一个地方(源地址)复制到另一个 地方(目的地方(目的地址),传输结束后源地址中的内容不变。地址),传输结束后源地址中的内容不变。u 数据传送范围数据传送范围:R-R、R-M、M-R或或M-Mu 数据传送宽度数据传送宽度:一般:一般为固定值(如为固定值(如8、16或或32bit),其它宽度的数据),其它宽度的数据传送传送一般可一般可通过软件移位和合并操作来实现。通过软件移位和合并操作来实现。2.数据运算:数据运算:包括包括算术运算(加、减、乘、除等)和逻辑算术运算(加、减、乘、除等)和逻辑 运算(与运算(与、或、非、异或
18、等)、或、非、异或等)。该类指令该类指令需要明确操作数的类型和长度需要明确操作数的类型和长度。3.控制类:控制类:用于改变正常的程序执行流程,完成程序的跳转用于改变正常的程序执行流程,完成程序的跳转,主要包括主要包括转移指令和过程指令。转移指令和过程指令。I/O3.3.4 寻址方式寻址方式操作数实际存放位置操作数实际存放位置(P75):寻址方式寻址方式:通过地址寻找指令操作数的方式通过地址寻找指令操作数的方式 1在指令码中指定操作数:立即数寻址2在寄存器中指定操作数:寄存器(直接)寻址3在存储器中指定操作数:存储器直接寻址、存储器间接寻址4在汇编程序中指定操作数:相对寻址5操作数在I/O接口中
19、:存储器寻址(存储器映像编址)或端口寻址(独立编址)ABDB控控制制器器运运算算器器寄寄存存器器CPU存存储储器器00000HFFFFFHI/O接接口口0000HFFFFHI/O外外设设CB立即数寻址存储器存储器汇编指令:汇编指令:MOV R0,1 ;1是立即数寻址是立即数寻址 操作数操作数指令寄存器寄存器立即数字段的长度受指令长度的限制立即数字段的长度受指令长度的限制00000001R0寄存器直接寻址方式 指令的地址字段给出指令的地址字段给出CPU内内寄存器号寄存器号(名名),而被指定的寄存器的而被指定的寄存器的内容就是操作数。内容就是操作数。汇编指令:汇编指令:MOV R1,R0;R1和和
20、R0是寄存器直接寻址是寄存器直接寻址可以用可以用n位地址字段指定位地址字段指定2n个通用寄存器。个通用寄存器。存储器直接寻址指令的地址字段直指令的地址字段直接给定一个立即数作为接给定一个立即数作为存储器的逻辑地址存储器的逻辑地址。相当于相当于C语言中的普通变量,语言中的普通变量,变量地址直接在指令中给出变量地址直接在指令中给出:int a=0,b=10;a =b;操作数地址受可用位数限制。操作数地址受可用位数限制。寄存器直接寻址与存储器直接寻址对比寄存器直接寻址与存储器直接寻址对比区别:前者在区别:前者在CPU内部操作,后者需要发出存储器地址和存储器读信号内部操作,后者需要发出存储器地址和存储
21、器读信号寄存器间接寻址方式 将存储器地址指定在寄存将存储器地址指定在寄存器中,即让器中,即让寄存器寄存器内容内容指向指向一个可访问到操作数的存储一个可访问到操作数的存储器单元。器单元。yyyy-M-d28/86相当于相当于C语言中的普通变量,变量地语言中的普通变量,变量地址在寄存器中给出址在寄存器中给出:register int addr=0 x30000000;int a=*addr;操作数操作数地址地址操作数地址放在寄存器中,不受可用位数限制。操作数地址放在寄存器中,不受可用位数限制。存储器直接寻址存储器直接寻址 VS 寄存器间接寻址寄存器间接寻址存储器间接寻址方式相当于相当于C语言语言中
22、的二维指针中的二维指针位移量寻址方式1.相当于相当于C语言中的结构体:语言中的结构体:struct int year;int month;int day;int hour;int minute;int second;dateTime;strcut dateTime dt;变址寻址方式(索引寻址方式)相当于相当于C语言中的一维字符数组语言中的一维字符数组,Rs存放数组首地址,存放数组首地址,Rx存存放数组下标放数组下标比例尺寻址方式位移量寻址位移量寻址+索引寻址索引寻址相当于相当于C语言中的一维结构体数组语言中的一维结构体数组,Rs存放数组首地址,存放数组首地址,Rx存放数存放数组下标,组下标,
23、d为结构体的大小,为结构体的大小,imm为结构体中成员的偏移量为结构体中成员的偏移量PC相对寻址方式 主要用在主要用在转移和跳转指令转移和跳转指令,指定汇编语言,指定汇编语言程序码的内部位置作为操作数。程序码的内部位置作为操作数。指令:指令:JUMP abe JUMP abe 操作:操作:PC PC abe=(PC)updated+abe=(PC)updated+(immimm)sign_extsign_ext表示当前指令表示当前指令取出后的取出后的PCPC值值出现在指令中出现在指令中指令集设计示例指令集设计示例假设某机器的字长是假设某机器的字长是8位,位,支持常见的简单指令支持常见的简单指令
24、:指令是双地址指令,源操作数采用指令是双地址指令,源操作数采用2种种寻址方式寻址方式寄寄存器寻址存器寻址(R0R1)和立即寻址和立即寻址;目标操作数可采用;目标操作数可采用2种种寻址方式寻址方式寄存器寻址寄存器寻址(R0R1)和立即寻址和立即寻址。请为下。请为下述九条机器指令设计可行的代码方案。述九条机器指令设计可行的代码方案。若采用定长编码(若采用定长编码(8bit)方案,可定义指令格式如下:)方案,可定义指令格式如下:76543210=0000=0000表示表示ADDADD=0001=0001表示表示SUBSUB=0010=0010表示表示MOVMOV=0011=0011表示表示ININ=
25、0100=0100表示表示OUTOUT=0101=0101表示表示RRRR目的操作数寻址方式:目的操作数寻址方式:0 0立即寻址立即寻址 1 1寄存器寻址寄存器寻址目标寄存目标寄存器编号器编号源操作数寻址方式:源操作数寻址方式:0 0立即寻址立即寻址 1 1寄存器寻址寄存器寻址源寄存器源寄存器编号编号操操 作作 码码扩展操作码扩展操作码(用用16个二进制表示个二进制表示76个操作码个操作码)3.4 流水线技术 改善冯诺依曼结构指令执行和存储器访问串行性的方法:哈佛体系结构存储器分层结构指令流水线技术超标量结构高速缓存与虚拟存储器3.4.1流水线技术的特点流水线技术的特点 延迟延迟320ps吞吐
26、量吞吐量3.125GIPS=1/320延迟延迟?ps吞吐量吞吐量?GIPS延迟延迟360ps360ps吞吐量吞吐量8.33GIPS8.33GIPS=1/120ps=1/120ps单个操作延迟增加;单个操作延迟增加;整体吞吐量增加;整体吞吐量增加;A B CA B CA B C流水线操作过程流水线操作过程流水线的局限性流水线的局限性 各阶段性能差异各阶段性能差异会会导致流水线性能下降导致流水线性能下降硬件空闲硬件空闲延迟延迟=170ps=170ps*3=510ps3=510ps吞吐量吞吐量=5.88GIPS=5.88GIPS流水线加倍,效率未加倍流水线加倍,效率未加倍 寄存器延迟寄存器延迟开销开
27、销导致硬件控制复杂,性能未加倍导致硬件控制复杂,性能未加倍延迟延迟360ps吞吐量吞吐量8.33GIPS=1/120ps3.4.4 指令流水线设计指令流水线设计一一基本要求基本要求流水线各个段的操作相互独立流水线各个段的操作相互独立流水线各个段的操作同步流水线各个段的操作同步二二性能指标性能指标吞吐率吞吐率(Throughput Rate)加速比加速比(Speedup Ratio)效率效率(Efficiency)三三相关及处理相关及处理 结构相关、数据相关和控制相关结构相关、数据相关和控制相关理想流水线:理想流水线:各级延时时间相等;各级延时时间相等;无等待时间;无等待时间;大量代码不断流;大
28、量代码不断流;流水线CPU的性能吞吐率吞吐率(throughput)单位时间能处理的指令或输出结果的数量单位时间能处理的指令或输出结果的数量等待时间等待时间(latency)每一作业从开始到结束需用时钟周期数每一作业从开始到结束需用时钟周期数t t。深度深度(depth)或并行度或并行度(degree of parallelism)即流水线的级数即流水线的级数d d。吞吐率吞吐率(Throughput Rate)吞吐率吞吐率Tp:指单位时间内能完成的作业量。:指单位时间内能完成的作业量。最大吞吐率最大吞吐率Tpmax:流水线达到稳定状态后的吞流水线达到稳定状态后的吞吐率吐率。用于用于描述流水线
29、执行各种运算的描述流水线执行各种运算的速率速率,通常表示为通常表示为每秒执行的运算数或每周期执行的运算数每秒执行的运算数或每周期执行的运算数。1(1)1(1)/pnnTTm tntmnt 流水若一个m级线性流水线各级时长(即拍长)均为t,则连续处理n条指令时的实际吞吐率Tp为:可以看出,当n时,最大吞吐率Tpmax1/t理想流水线,大量代码理想流水线,大量代码加速比加速比(Speedup Ratio)非流水线执行时间相对流水线非流水线执行时间相对流水线执行时间之比(图执行时间之比(图3-38 a和和b)。若一个m级线性流水线各级时长(即拍长)均为t,则连续处理n条指令时的加速比Sp为:(1)1
30、1(1)/pTn m tnmmSTm tntmnmn 串行流水可以看出,当 n时,Spm,即最大加速比等于流水线的段数m。此处假设非流水线和流水线此处假设非流水线和流水线CPU的时钟周期相同,如果不同,则公式推导的时钟周期相同,如果不同,则公式推导过程中的过程中的t不能直接除去,比如习题不能直接除去,比如习题3.10。效率效率(Efficiency)一定时段内,流水线所有段处一定时段内,流水线所有段处于工作状态的比率于工作状态的比率(图(图3-38 b)t1(1)1(1)/n m tm m tntmn 若一个m级线性流水线各级时长(即拍长)均为t,则连续处理n条指令时的效率E为:E=指令完成时
31、间内占用的时空区/指令总时空区可以看出,当 n时,E1,即流过流水线的指令越多,流水线效率越高。史上最经典的5级流水线1.对于运算指令,在对于运算指令,在MEM阶段空闲。阶段空闲。2.对于对于load指令,在指令,在EX阶段计算要访问的地址,在阶段计算要访问的地址,在MEM阶阶段从内存中将数据读入到段从内存中将数据读入到MEM register(MEM和和WB之间之间的流水寄存器的流水寄存器)中,在中,在WB阶段,将阶段,将MEM register的数据写的数据写回到通用寄存器中回到通用寄存器中3.对于对于store指令,在指令,在EX阶段计算要访问的地址,在阶段计算要访问的地址,在MEM阶阶
32、段将寄存器中的数据写回到存储器中。段将寄存器中的数据写回到存储器中。4.从寄存器堆中读数据到从寄存器堆中读数据到ALU输入寄存器这个步骤被放在了输入寄存器这个步骤被放在了ID 阶段阶段流水线冲突(流水线冲突(P45、P89)理想流水线的性能:单流水线每个时钟周期完成理想流水线的性能:单流水线每个时钟周期完成1条指令条指令实际多流水线机器中可能存在实际多流水线机器中可能存在冒险冒险导致停顿:导致停顿:数据冲突(如后面的计算要用到前面的结果)数据冲突(如后面的计算要用到前面的结果)定向技术:将结果数据从其产生的地方直接传送到需要它的定向技术:将结果数据从其产生的地方直接传送到需要它的部件部件流水线
33、调度(流水线调度(scheduling):编译器重新组织指令顺序):编译器重新组织指令顺序结构冲突(硬件资源不够)结构冲突(硬件资源不够)增加额外的同类型资源增加额外的同类型资源改变资源的设计使其能被同时使用改变资源的设计使其能被同时使用控制冲突(分支等跳转指令引起控制冲突(分支等跳转指令引起)可采用分支预测及预测执行技术最大限度地使处理器各部分可采用分支预测及预测执行技术最大限度地使处理器各部分保持运行状态。保持运行状态。多端口的寄存器堆哈佛结构存储器、超标量yyyy-M-d48/862022-11-2848/50流水线冲突-数据冒险1.数据冒险数据冒险(当前指令的源操作数与前一条指令的目标
34、操作当前指令的源操作数与前一条指令的目标操作数相同数相同)a)违背写后读规则违背写后读规则(RAW):后一条指令试图在前一条指令写一个:后一条指令试图在前一条指令写一个数据之前读取该数据数据之前读取该数据DIV R2,R0MOV R3,R2b)违背写后写规则违背写后写规则(WAW):后一条指令试图在前一条指令写一个:后一条指令试图在前一条指令写一个数据之前写该数据数据之前写该数据ADD R2,R1,R0MOV R2,R3c)违背读后写规则违背读后写规则(WAR):后一条指令试图在前一条指令读一个:后一条指令试图在前一条指令读一个数据之前写该数据数据之前写该数据ADD R2,R1,R0MOV R
35、0,R2教材图2-19有错误 (P46)顺序流水线数据依赖2.可能的解决办法可能的解决办法在相关指令之间增加等待周期(两个)在相关指令之间增加等待周期(两个)定向技术定向技术可将结果数据从其产生的地方直接传送可将结果数据从其产生的地方直接传送到所有需要它的功能部件到所有需要它的功能部件编译器可利用流水线调度(编译器可利用流水线调度(scheduling)技术来)技术来重新组织指令顺序重新组织指令顺序(乱序执行乱序执行)nopnop乱序执行流水线(打乱指令执行顺序)教材图2-20有错误(P47)顺序执行顺序执行乱序执行乱序执行流水线冲突-结构冒险2.结构冒险结构冒险(资源冲突资源冲突)原因:原因
36、:硬件资源不够,例如:硬件资源不够,例如:两条指令都需要除法操作两条指令都需要除法操作,或取指令以及指令执行阶段均需要访问存储器,或取指令以及指令执行阶段均需要访问存储器解决方法:解决方法:增加增加额外的同类型资源额外的同类型资源(超标量超标量)改变资源的设计使其改变资源的设计使其能被同时使用能被同时使用(哈佛结构和双哈佛结构和双端口存储器端口存储器)轮流暂停一部分流水线,轮流使用资源轮流暂停一部分流水线,轮流使用资源流水线冲突-控制冒险3.控制冒险控制冒险 原因:分支、跳转原因:分支、跳转等指令引起流水线等指令引起流水线中断中断 解决办法:采用分解决办法:采用分支预测及预测执行支预测及预测执
37、行技术最大限度地使技术最大限度地使处理器各部分保持处理器各部分保持运行状态。运行状态。void main(void)int a,b,c,d,e;scanf(%d%d,&a,&b);c=sumOf(a,b);/产生跳转产生跳转 d=2*c;e=d*d;printf(%d+%d=%d,a,b,c);int sumOf(int a,int b)return a+b;流水线流水线CPU的特点及限制的特点及限制1.优点:通过指令级并行来提高性能2.不能无限提高流水线级数的原因:增加了硬件成本增加了硬件成本流水寄存器会引入延迟流水寄存器会引入延迟,因此流水线级数加,因此流水线级数加倍,但性能并没有加倍倍,
38、但性能并没有加倍流水线中各段的操作存在关联时可能会引起流水线中各段的操作存在关联时可能会引起流水线中断流水线中断,流水线级数也多损失越大,流水线级数也多损失越大yyyy-M-d56/862022-11-2856/503.5.1 ARM体系结构体系结构1。RISC指令集,指令集,内核小,功耗低、内核小,功耗低、成本低成本低2。哈佛结构。哈佛结构3。运算器操作。运算器操作数只能从寄存器数只能从寄存器输入输入/输出输出4。采用桶式移。采用桶式移位器处理位器处理ALU输输入,灵活高速入,灵活高速ARM指令系统特点指令系统特点1.RISC指令规则,适合流水设计指令规则,适合流水设计2.寻址方式灵活简单,
39、执行效率高寻址方式灵活简单,执行效率高3.所有指令的条件执行实现最快速的代码执行所有指令的条件执行实现最快速的代码执行4.支持支持Thumb(16 位)位)/ARM(32 位)双指令集,能位)双指令集,能很好的兼容很好的兼容8 位位/16 位器件位器件3.5.2 Intel8086体系结构体系结构1.冯式结构冯式结构2.运算器操作数可以从寄存器、存储器或运算器操作数可以从寄存器、存储器或I/O端口获得端口获得3.分成两大功能部件分成两大功能部件EU、BIUx86指令系统特点指令系统特点1.为保持兼容性采用变长的、高度不规则的为保持兼容性采用变长的、高度不规则的CISC指令集。指令集。2.是基于
40、专用寄存器组的二地址存储器是基于专用寄存器组的二地址存储器-寄存寄存器器(M-R)机:对于二元操作,一个操作数总机:对于二元操作,一个操作数总是指定在寄存器中,另一个操作数可以从是指定在寄存器中,另一个操作数可以从存储器或寄存器中读取。存储器或寄存器中读取。x86“复杂”外表下的“简单”芯 x86x86虽说是虽说是CISCCISC指令集,不过指令集,不过x86x86内核可以认为是内核可以认为是RISCRISC内内核,核,x86x86指令集会先被解码为类似于指令集会先被解码为类似于RISCRISC的微操作的微操作(uops)(uops)。微处理器设计微处理器设计(P64)1、拟定指令系统、拟定指
41、令系统:需要完成哪些操作。:需要完成哪些操作。2、确定总体结构、确定总体结构:寄存器设置、运算部件、控制部件的设计:寄存器设置、运算部件、控制部件的设计3、安排时序、安排时序:时序控制信号的产生(控制器完成具体产生)时序控制信号的产生(控制器完成具体产生)4、拟定指令流程、拟定指令流程:指令执行过程中的每一步传送操作的流程。:指令执行过程中的每一步传送操作的流程。5、形成控制逻辑、形成控制逻辑:根据指令流程形成最终的控制逻辑。:根据指令流程形成最终的控制逻辑。按照微控制命令的形成方式,控制器可分为按照微控制命令的形成方式,控制器可分为组合组合逻辑逻辑控制器控制器和和微程序微程序控制器控制器两种
42、基本类型两种基本类型。微处理器体系结构分类63/861.串行串行指令 随机逻辑结构 微码结构2.并行并行指令 流水线结构 超流水线结构 超标量结构 多处理器结构随机逻辑体系结构随机逻辑体系结构 1.需求背景:销售量很大需求背景:销售量很大(性能要求不是很高性能要求不是很高)2.目标:减少制造费用目标:减少制造费用3.方法:减少使用的门电路总数方法:减少使用的门电路总数4.用途:支持简单指令集用途:支持简单指令集随机逻辑随机逻辑(硬连线逻辑硬连线逻辑)体系结构中,用体系结构中,用布尔逻布尔逻辑函数辑函数来表示控制单元的输入和输出之间的关系来表示控制单元的输入和输出之间的关系随机逻辑CPU的设计步
43、骤 1.指令集结构驱动硬件的逻辑方程指令集结构驱动硬件的逻辑方程 定义所需的指令集结构;定义所需的指令集结构;根据指令集决定硬件逻辑及状态机;根据指令集决定硬件逻辑及状态机;2.硬件逻辑方程反馈到指令集结构硬件逻辑方程反馈到指令集结构 对指令集结构做必要的修改和优化;对指令集结构做必要的修改和优化;最大限度地减少逻辑复杂度;最大限度地减少逻辑复杂度;随机逻辑CPU原理框图随机逻辑CPU的特点优点:优点:可通过简化指令减少所使用的门电路总可通过简化指令减少所使用的门电路总数,从而数,从而减少制造费用减少制造费用。缺点:缺点:指令集结构与硬件逻辑方程之间存在着密切联指令集结构与硬件逻辑方程之间存在
44、着密切联系,设计过程系,设计过程复杂复杂。重用性差重用性差,设计成果很少能再利用到以后的新,设计成果很少能再利用到以后的新CPU设计中。设计中。适用于较适用于较简单的指令集简单的指令集结构。结构。微码体系结构微码体系结构 1.需求背景:需要更高性能的微处理器,而存需求背景:需要更高性能的微处理器,而存储器的访问速度太慢(与储器的访问速度太慢(与CPU的执行速度相的执行速度相比)比)2.目标:设计新目标:设计新CPU时能减少重复设计费用时能减少重复设计费用3.方法:把指令集与硬件的设计分开方法:把指令集与硬件的设计分开4.用途:支持复杂指令集结构用途:支持复杂指令集结构(CISC)微码CPU的控
45、制逻辑与控制流1.控制逻辑对控制逻辑对IR(指令寄存(指令寄存器)器)中的指令译码,确定中的指令译码,确定对应微码程序地址并写入对应微码程序地址并写入 PC(微地址寄存器)(微地址寄存器);2.PC向微码向微码ROM提供地址提供地址,返回的微码写入,返回的微码写入 IR(微指令寄存器)微指令寄存器);3.IR译码后产生相应译码后产生相应 的控制信号;的控制信号;4.PC地址加地址加1后获取后获取 下一条微指令地址,下一条微指令地址,直到完成整个微码直到完成整个微码 程序;程序;yyyy-M-d宏代码到微代码的转换宏代码到微代码的转换(仅仅是功能示例仅仅是功能示例)序号序号代码代码1 c=(a+
46、b)*(c+d);2 3 c=a*b*c*d1000:a1=a+b1001:a2=c+d1002:c =a1 *a2;.2000:a1=a*b;2001:a2=c*d;2002:c =a1*a2;.CPU内微码存储器内微码存储器宏指令宏指令(程序员编写程序员编写)方法:把每一条复杂指令(CISC)所完成的工作分解为多个有序步骤(每一个步骤称为一个微码),并把这些步骤封装为一段简单代码(RISC思想)放在CPU内部的微码存储器中。在微码结构中,控制单元的在微码结构中,控制单元的输入和输出之间的关系被视为一输入和输出之间的关系被视为一个个存储系统存储系统。微码CPU的特点优点:优点:1.可以通过减
47、少取指令次数的方法来可以通过减少取指令次数的方法来降低存储器总降低存储器总访问时间访问时间从而提高系统性能;从而提高系统性能;2.简化硬件设计简化硬件设计,可使其成品机器几乎没有设计上,可使其成品机器几乎没有设计上的错误;的错误;3.建立或改动微代码比建立或改动电路省时、不易建立或改动微代码比建立或改动电路省时、不易出错,因此创建新的出错,因此创建新的CPU版本将会更快;版本将会更快;缺点:缺点:1.微代码比硬件实现的开销大微代码比硬件实现的开销大;2.微码微码ROM访问速度慢访问速度慢3.由于由于ROM只读,修复故障比较困难只读,修复故障比较困难微码结构与随机逻辑结构的比较1.硬件设计开销硬
48、件设计开销l随机逻辑随机逻辑CPU的的硬件和指令集必须同步硬件和指令集必须同步进行设计和优化,进行设计和优化,因此比较复杂。因此比较复杂。l微码微码CPU的指令集设计的指令集设计并不直接影响现有硬件并不直接影响现有硬件,修改指令,修改指令集并不需要重新设计新的硬件。集并不需要重新设计新的硬件。2.性能性能l如果采用如果采用相同指令集相同指令集,则随机逻辑,则随机逻辑CPU操作会更快。操作会更快。l如果执行如果执行相同的计算任务相同的计算任务,微码,微码CPU能够通过使用更少能够通过使用更少(但更复杂但更复杂)的指令达到更高性能。的指令达到更高性能。l当系统整体性能受限于当系统整体性能受限于存储器的速度存储器的速度时,微码时,微码CPU对性能对性能提高的优势更为明显。提高的优势更为明显。CISCCISC与与RISCRISC的数据流的数据流IRIDREGALUMEM开始退出IRIDALUMEMREG微操作通道开始退出单通数据通道RISC:Load/Store结构结构CISC:寻址方式复杂:寻址方式复杂yyyy-M-d73/8673/50CPU子系统总结子系统总结