第5章中央处理器CPU .ppt
1,第5章 中央处理器(CPU),5.1 控制器的基本概念5.2 时序系统与控制方式5.3 指令的执行过程5.4 微程序控制原理5.5 微程序设计举例5.6 硬布线控制器5.7 流水线处理技术5.8 CPU举例,2,5.1 控制器的基本概念,5.1.1 控制器的功能5.1.2 控制器的基本组成5.1.3 控制器的实现方法,控制器是计算机的控制和指挥中心,它负责对指令进行译码,产生一系列控制信号,指挥和 协调计算机各部件工作。,3,5.1.1 控制器的功能,1)操作控制功能2)指令顺序控制功能3)时序控制功能4)对异常和某些请求的处理功能(1)异常(2)中断(3)DMA请求或其它主控设备的总线请求,4,送AR,5.1.2 控制器的基本组成,时序部件,5,1)指令部件,(1)程序计数器PCPC是用来提供下一条要执行的指令的地址在程序顺序执行时,由PC自动增1功能提供下一条指令的地址。(2)指令寄存器IRIR用来存放当前从主存中取出的指令。指令存放于IR中,直到被下一条取出的指令所取代。,6,(3)指令译码器IDID的功能是对存放IR中的操作码进行译码。经ID输出的一系列控制电位反映该指令的操作性质。(4)地址形成部件地址形成部件的功能是根据指令的寻址方式,形成有效地址。有效地址地址寄存器AR(操作数的地址)有效地址PC(跳转的目标地址),7,2)时序部件时序部件是用来产生机器中的各种时序信号,对各种操作实施时间上的控制。(1)时钟脉冲发生器时钟脉冲信号是机器的主频信号,为机器提供时间基准。它由外接高稳定度的晶体振荡器产生,具有一定占空比。例如:占空比1/3,8,(2)启停线路开放和封锁脉冲,控制时序信号的发生和停止;保证起动时输出的第一个脉冲和停止时的最后一个脉冲都是完整的。(3)节拍信号发生器节拍信号分为节拍电位和节拍脉冲节拍电位:用于控制数据通路中代码的传送或数据的运算。节拍脉冲(工作脉冲):用于寄存器接收代码的选通信号。,9,3)微操作信号发生器,根据指令操作码译码结果和时序信号及状态标志,产生各种操作控制信号,以便正确地建立数据通路,完成取指令和执行指令的控制。通常把许多寄存器之间传送信息的通路,称为“数据通路”。4)中断控制逻辑中断控制逻辑是用来控制中断处理的硬件逻辑,对于某些外部中断的处理,需要外部中断逻 辑配合完成。,10,5.1.3 控制器的实现方法,硬布线控制器根据译出的指令各字段的含义,并结合当前工作状态及时序信号,由组合逻辑电路形成微操作控制信号。微程序控制器以存储逻辑取代组合逻辑,根据指令操作码的译码转向控制存储器取出对应的微程序,由微指令提供微操作控制信号。,11,5.2 时序系统与控制方式,5.2.1 时序系统5.2.2 时序控制方式,12,5.2.1 时序系统,计算机的协调动作需要时间标志,而时间标志是用时序信号来体现的。1)指令周期和机器周期(1)指令周期完成一条指令所有操作所需要的时间,称为指令周期。指令周期通常用若干机器周期(CPU周期)表示。指令周期长短不同。,13,(2)机器周期为了便于对执行时间各不相同的指令进行控制,一般根据指令的操作性质和控制功能,将各指令分成一些基本操作,每一条指令由若干个不同的基本操作组成,对每一个基本操作规定一个基本时间称为机器周期。不同机器周期完成不同的操作。在时序系统中设置一组周期状态触发器,以标志不同的机器周期。任一时序只允许其中的一个触发器为1,以表明CPU当前所处的机器周期。,14,2)节拍电位和工作脉冲,(1)节拍电位一个机器周期内要完成若干个微操作,这些微操作有的可以同时进行,有的则按先后次序串行执行。每个微操作都需要一定的时间,因此需要将一个机器周期分为若干相等的时间段,每一个时间段,用一个电平信号宽度对应,称为节拍电位。节拍电位作为开门/关门控制信号。,15,(2)工作脉冲用于同步触发器的翻转。如:运算结果打入、周期切换。一个节拍内可以设置一个或几个工作脉冲。工作脉冲一般处于节拍后部(节拍脉冲)。,若机器周期由时钟组成,脉冲的前沿将运算结果打入寄存器,后沿实现周期切换。时钟电位作为开门/关门控制信号。,16,节拍电位和工作脉冲配合关系,17,3)总线周期,完成一次总线操作所需的时间称为总线周期。总线周期与机器周期的区别在于总线周期是根据要求出现的。例如:8086基本的总线周期,18,4)多级时序系统,(1)三级时序信号间的关系,这些时序信号将参与形成各种微操作命令。,机器周期节拍工作脉冲,19,(2)时钟周期的时序系统,20,5.2.2 时序控制方式,CPU的控制方式包含时序控制方式和指令执行控制方式。形成控制不同操作序列的时序信号的方法,称为时序控制方式,其实质反映了时序信号的定时方式。1)同步控制方式固定时序控制。受事先确定的时序信号所控制。每个时序信号的结束意味一个微操作的完成,随即开始进行后继的微操作。,21,同步控制方式可选取的三种方案:,(1)定长机器周期(2)不定长机器周期。(3)中央控制与局部控制结合。,同步控制方式的特点设计简单,容易实现影响指令的执行速度,22,2)异步控制方式,每条指令、每个操作控制信号需要多少时间就占用多少时间。当控制器发出某一操作控制信号后,等待执行部件完成操作后发回“回答”信号,再开始新的操作。没有统一的时钟,各功能部件拥有各自的时序信号。异步控制方式的特点没有时间上的浪费,提高了机器的效率;分散控制,比较复杂。,23,3)联合控制方式,同步控制和异步控制相结合的方式。大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束。例如CPU访问主存时,依靠其送来的“READY”信号作为读写周期的结束。常用:部件内同步,部件间异步,24,5.3 指令的执行过程,5.3.1 CPU的基本功能元素5.3.2 指令执行的基本过程5.3.3 指令执行的微操作序列,25,5.3.1 CPU的基本功能元素,逻辑函数,启动信号,二进制存储位元,读写,1)门实现逻辑功能,采用电位控制数据流,无记忆功能2)存储位元存储一位数据的元件,采用脉冲打入数据,有记忆功能,26,5.3.2 指令执行的基本过程,CPU的工作过程就是执行指令序列的过程。1)取指令2)分析指令(1)指令译码产生微操作控制信号(2)计算操作数的有效地址(3)取操作数对于分页式或分段式存储器结构需要将有效地址与段或页基址组合形成物理地址送主存取出操作数。3)执行指令4)响应中断或DMA请求,27,PC,28,5.3.3 指令执行的微操作序列,从指令的微操作序列说明一条指令的执行过程。微操作序列是与CPU的内部数据通路密切相关。,指令格式加法指令完成的功能:(rs1)+disp)+(rs)rd(rd、rs为同一R)设加法指令采用四个机器周期(每个机器周期包含T1、T2):取指、计算有效地址、取数、运算及送结果,29,30,1)取指(PC)AB访存控制命令 ADS=1(T1周期)、M/IO=1、W/R=0DB IR(PC)+12)计算有效地址送AR,即(rs1)+disp ARrs1 GR、(rs1)ALU、disp ALU“+”ALU AR,31,3)取数(AR)AB访存控制命令 ADS=1(T1周期)、M/IO=1、W/R=0DBDR4)运算及送结果、置状态标志rs、rdGR、(rs)ALU、(DR)ALU“+”ALUGR、置N、Z、V、C标志,32,JC A,1)取指(PC)AB访存控制命令ADS=1(T1周期)、M/IO=1、W/R=0DB IR(PC)+12)分析执行If c=0 then endIf c=1 then(PC)ALU、disp ALU“+”ALU PC,33,5.4 微程序控制原理,5.4.1 微程序控制的基本概念5.4.2 实现微程序控制的基本原理5.4.3 微指令编码法5.4.4 微程序流的控制5.4.5 微指令格式及执行方式5.4.6 微程序设计技术的应用,34,5.4.1 微程序控制的基本概念,1)微命令和微操作控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令叫做微命令,它构成控制序列的最小单位。执行部件接受微命令后所进行的操作,称为微操作,它是最基本的、不可再分解的操作。相容性的微操作:指在同一个微周期内可以并行执行的微操作。(相容性微命令)互斥性的微操作:指不能在同一个微周期内并行执行的操作。(互斥性微命令),35,2)微指令和微地址,在一个微周期中,一组实现一定操作功能的微命令的组合,构成一条微指令(控制字)。微指令组成操作控制字段:用来发出管理和指挥全机工作的工作信号。位信息为“1”时,表示发出微命令;位信息为“0”时,表示不发微命令。顺序控制字段(下址字段):用来控制产生下一条微指令的地址。微指令存放在控制存储器中,存放微指令的控制存储器的单元地址称为微地址。,36,3)微周期(机器周期或节拍)从控存中读取一条微指令并执行相应的一组微命令所需的全部时间4)微程序 一条机器指令的功能是用许多条微指令组成的序列来实现的,这个微指令序列称为微程序。,37,微程序控制计算机涉及两个层次,传统机器层:机器指令工作程序主存储器微程序层:微指令微程序控制存储器,38,5.4.2 实现微程序控制的基本原理,1)微程序实现加法指令设ALU能进行+、-、四种运算,39,加法指令对应控制信号的序号,用4个机器周期完成,每个机器周期用一条微指令产生微操作命令。取指微指令的微命令序号:1、3、5、23、24、25计算有效地址微指令的微命令序号:4、8、10、15、21取数微指令的微命令序号:6、22、23、24、25运算及送结果微指令的微命令序号:9、11、13、15、19,40,微指令格式,取指微指令1010100000000000000000110 计算有效地址微指令0001000101000010000010000 001000000010取数微指令0000010000000000000001110 001000000011运算及送结果微指令0000000010101010001000000 001000000000,操作控制字段,顺序控制字段,(PC)AB,ALU PC,W/R,设控存容量为4K字,41,微程序流程图的表示,42,2)微程序控制器基本工作原理,43,工作过程:执行取指公共操作(0#单元开始)形成微程序入口地址MAR从CM中取微指令 IR:产生一组微命令控制有关操作,通过微地址形成部件形成下址下址MAR重复3)、4)直到机器指令的微程序执行完毕。返回到取指微程序的入口,重复上述过程,直到整个程序执行完毕。,44,3)时序信号的形成,(1)二分频电路及节拍电位、工作脉冲的产生,45,(2)打入脉冲的形成,方法一:控制信号“与”CP,46,方法二:直接用CP,47,(3)特殊控制信号的产生,例如:ADS,48,(4)访存需要等待的处理方法,49,5.4.3 微指令编码法,微指令编码是指对操作控制字段的编码。实质:在微指令中如何组织微命令。典型的微指令编译法有:1)直接控制法2)最短字长编码法3)字段直接编码法4)字段间接编码法5)常数源字段E,50,1)直接控制法,操作控制字段中的每一位代表一个微命令。优点:简单直观,其输出直接用于控制,并行性强,速度快。缺点:微指令字较长,因而使控制存储器容量较大。,51,2)最短字长编码法,所有微命令统一编码,每条微指令只定义一个微命令。L log2n优点:微指令字最短。缺点:译码复杂,不能充分利用硬件的并行性,微程序长,速度慢,对要求同时动作的组和性微操作无法实现。,52,3)字段直接编码法,把一组互斥性的微命令信号组成一个字段,然后通过字段译码器对每一个微命令信号进行译码,译码输出作为操作控制信号。,53,优点:用较少的二进制信息位表示较多的微命令信号。缺点:使微程序的执行速度减慢。例如:3位二进制位译码后可表示7个微命令,4位二进期位译码后可表示15个微命令。,54,例题:某运算器数据通路如图。指出哪些微操作是互斥的,哪些是相容的。分别用直接控制法和字段直接编译法设计适合该运算器的微指令格式中的操作控制字段。解:互斥微操作:IR A、R1 A、R2 A、R3 A互斥;R1B、R2B、R3B互斥;+、-、M互斥。相容微操作:A选通门的任一个微操作与B选通门的任一个微操作相容;LDR1、LDR2、LDR3相容。,55,56,直接控制法操作控制字段:,57,字段直接编码法操作控制字段,58,4)字段间接编码法,一个字段的某些编码不独立地定义某些微命令,而与其他字段联合定义。,59,例如:有一ALU,它能完成8种不同的算术运算和8种不同的移位运算,用1位字段指示是算术运算还是移位运算,3位字段指示是8种操作中的某一种。5)常数源字段E,通常把直接控制法与字段编码法相混合使用,以便能综合考虑微指令字长、灵活性和执行微程序速度等方面的要求。目标:减少微指令字长,增强微操作的并行性。,60,5.4.4 微程序流的控制,1)微程序入口地址的形成OP微程序入口地址一级功能转换机器指令的OP位数、位置固定(定长、定位置)二级功能转换同类机器指令的OP位数、位置固定,不同类机器指令的OP位数、位置不固定MAPROM机器指令的OP位数、位置不固定(变长、变位置),61,(1)一级功能转换,OP与入口地址的部分位相对应。000 OPB设OP以4位二进制编码表示:MOV 0000000BADD 0000001B SUB 0001111B,62,OP 111B,MOV 0000111BADD 0001111B SUB 1111111B,63,(2)二级功能转换,按指令类型标志转换-区分指令类各类按OP转换-形成入口地址,(3)采用映像存储器MAPROM(2716),64,2)后继微地址的形成,(1)增量方式顺序执行:后继微地址由现行微地址加上一个增量来产生。非顺序执行:由转移逻辑产生一个转移微地址。顺序执行的微指令序列必须安排在控制存储器的连续单元中。PC作为:微地址寄存器微程序计数器,65,增量方式,66,增量方式的基本特点:微指令的顺序控制字段较短,仅起选择作用。微程序转移很不灵活性,使得微程序在控制存储器中的物理空间分配困难。,67,(2)增量与下址字段结合方式,微指令顺序控制部分分成:转移控制字段BCF转移地址字段BAF当微程序转移时,将BAF送微程序计数器(PC),否则顺序执行下一条微指令(PC加1)。,68,69,(3)多路转移方式(断定方式),一条微指令具有多个转移分支的能力称为多路转移。当微程序不产生分支时,后继微地址直接由微指令的下址字段给出;当微程序出现分支时,有若干“后选”微地址可供选择。下址字段由两部分组成:非测试段:由设计者指定,一般为微地址的高位。测试段:根据有关状态位的测试确定后继微地址,一般为微地址低位部分。,70,测试段有1位标志,可实现微程序2路转移;测试段有2位标志,可实现微程序4路转移。,实现两路转移实现四路转移实现三路转移,71,3)微程序定序器Am2910,72,73,5.4.5 微指令格式及执行方式,1)微指令格式水平型微指令一次能定义并执行多个并行操作微命令的微指令,称为水平型微指令。垂直型微指令控制字段的设置采用编码法,由微操作码规定微指令的功能,称为垂直型微指令。垂直型微指令的结构类似于机器指令的结构。它有操作码,在一条微指令中只有1-2个微操作命令,每条微指令的功能简单。它是采用较长的微程序结构去换取较短的微指令结构。,74,(3)水平与垂直的比较:,75,2)微指令的执行方式,取微指令-从控存中取出执行微指令-执行规定的各个操作执行方式:串行方式 并行方式,(1)串行方式取微指令和执行微指令是顺序进行。在一条微指令取出并执行之后,才能取下一条微指令。,76,取微指令阶段:CM工作,数据通路等待执行微指令阶段:CM空闲,数据通路工作,77,(2)并行方式,在执行当前微指令的同时,预取下一条微指令。,78,5.4.6 微程序设计技术的应用,1)计算机功能固件化硬件的固件化计算机中凡具有逻辑控制功能的部件皆可固件化,例如:微程序控制器。软件的固件化用微程序实现操作系统的内核;提供对高级语言支持;用微程序实现嵌入主机系统的专用设备。例如:驱动程序以固件而不是用软件实现。,79,2)微程序仿真,使用微程序在一台机器上执行原本为另一类机器编写的程序,以支持用户程序由一种计算机移植到另一种计算机上。例如:System/370仿真IBM1401 宿主机 目标机宿主机提供二种工作方式:本机方式仿真方式,80,3)动态微程序设计,静态微程序设计微程序设计完毕,不允许也不便于改变,这样的设计称静态微程序设计(CM使用ROM,指令系统是固定的)动态微程序设计在一台微程序控制的计算机中,若能根据用户的要求改变微程序,那么这台机器就具有动态微程序设计功能。(CM使用WCM),81,动态微程序设计的应用,系统设计人员完成两套可供切换的微程序,例如:一套用于科学计算的指令系统另一套用于数据处理的指令系统本机指令系统中保留的供扩充指令的操作码或未定义操作码,由用户来定义。,82,5.5 微程序设计举例,5.5.1 系统构成5.5.2 微指令格式5.5.3 微程序设计,83,84,5.5.1 系统构成,设置26=64条机器指令,支持的寻址方式:立即数寻址方式直接地址寻址方式寄存器寻址方式寄存器间接寻址方式相对寻址方式变址寻址方式绝对寻址方式堆栈寻址方式,85,53条指令已实现11条未实现指令的操作码为:D4、D8、DC、E0、E4、E8、EC、F0、F4、F8、FC(最低二位用于选择C、Z、V、S 四个标志作为判断条件)。这11条指令的微程序入口地址为:100h、110h、120h、130h、140h、150h、160h、170h、180h、190h、1A0h。,86,硬件构成,以位片式器件Am2901、Am2910作为核心部件1)运算器4片Am2901、1片Am2902构成16位数据处理单元。STR:运算结果状态寄存器,87,4片Am2901中的16个4位寄存器构成16个16位寄存器R0R15及16位乘商寄存器Q(Q与其他寄存器联成32位寄存器,用于乘除运算)R0R3、R7R15:作为通用寄存器R4:作为SPR5:作为PCR6:作为IP(指令当前地址,与已增量的PC不同),88,Am2901的数据输入端D来源:来自DB(从M或I/O设备取操作数)IR的地址码字段STR运算结果送:内部RAR或DB设置STR,89,STR的输入:运算结果设置 弹栈恢复STR的输出:IB 组织/CC条件,90,2)控制器,1片Am2910微程序定序器、7片6116(2K*8)与2片2716ROM(共2048个字)组成控存、56位微指令寄存器、16位指令寄存器、2片2716(2K*8)MAPROM组成。微码装入:,91,两个地址计数器的作用:第一个计数器是由三个4位计数器组成,初值为0,每来一次工作脉冲使其计数一次。计数器输出:作为控存RAM写入单元地址;作为读ROM芯片的高9位地址。ROM的低2位地址Y1、Y0由第二个计数器提供,该计数器每计满4次,第一个计数器计数一次。由Y1、Y0的4个状态可获得LRCP0LRCP3。Y11由0变1(211=2048),结束微码装入操作。,92,微控存的地址来源:Am2910的Y9Y0存储器的地址寄存器(低10位)计数器输出Am2910的D的来源/MAP作为MAPROM的选通信号/PL选中下址作为D的输入/VECT选中接收内部总线的IB90,Smux,Y11,93,3)主存储器4K字EPROM(2片2732)2K字RAM(2片6116)4)总线地址总线(16位):接受来自地址寄存器的值,地址寄存器接受来自运算器的结果输出。送主存、接口、控存(LDMC),94,数据总线(16位):IB、DB两者间通过双向三态门,由/MIO和/WE控制。IB的输入来源:16个开关输入数据或地址、运算器输出、DB、中断向量寄存器、状态寄存器、IR的低位字节IB输出至:运算器的D输入端、DB、IR、送往可写控存的16位写入寄存器(4次)、Am2910的10位地址输入端。,95,5.5.2 微指令格式,采用水平型微指令格式。微指令字长56位:10位下址字段、3位备用、43位控制字段。,给出2910的/CC的选择码,96,SA=0:A口地址来自微码 SB=0:B口地址来自微码 SA=1:A口地址来自IR3-0 SB=1:B口地址来自IR7-4,97,返回,98,返回,99,返回,100,返回,101,返回,102,返回,103,5.5.3 微程序设计,104,以7条指令为例1)ADD、SUB、MOV(DR)+(SR)DR(DR)-(SR)DR(SR)DR,105,106,2)JP CND,JP CND功能:当条件满足时ADRPC,107,JP(双字),JP功能:ADRPC,108,109,3)CALL(双字),CALL功能:(SP)-1SP,(PC)(SP),ADRPC,110,111,4)乘法指令MUL,无符号乘(R1)*(SR)R0R1,112,113,5.6硬布线控制器,5.6.1 硬布线控制器与微程序控制器的比较5.6.2 硬布线控制器设计步骤5.6.3 硬布线控制器设计举例,114,5.6.1 硬布线控制器与微程序控制器的比较,115,微程序控制器,116,共同点基本功能都是依据当前正在执行的指令和它所处的执行步骤,形成并提供处在这一时刻整机各部件所需要的控制信号。组成部分都有程序计数器PC,指令寄存器IR,时序电路。都分成几个执行步骤完成每一条指令的具体功能。,117,不同点指令执行步骤的控制方法不同硬布线控制器是用节拍发生器指明指令执行步骤(机器周期、节拍、工作脉冲)微程序控制器是通过微指令地址的衔接区分指令执行步骤(微周期)提供微操作控制信号的方案不同硬布线控制器是用组合逻辑门电路直接提供控制计算机各功能部件协同运行所需的控制信号微程序控制器控制信号是以微程序的方式存放在控制存储器中,控制信号从控制存储器中读出,并经过一个微指令寄存器送到被控制部件。,118,特点比较,119,5.6.2 硬布线控制器设计步骤,1)时序系统2)拟定指令流程(以机器周期为线索、以指令为线索)3)列出微操作时间表(电位型微命令、脉冲型微命令)4)综合分析,归纳出产生每个微命令的条件,写出每个微命令的逻辑表达式,并进行化简。5)实现电路,120,1)数据通路,5.6.3 硬布线控制器设计举例,121,2)指令系统(15条)(单字节、双字节),122,123,3)时序系统采用三级:机器周期、节拍、工作脉冲机器周期:FETCH(T1)、ANA(T1)、EXE(T1T3)4)指令流程(举例)(1)取指,124,(2)单字节指令 ADD Ri,Rj;(Rj)+(Ri)Ri,125,MOV Ri,Rj;(0*(Rj)Ri,126,(3)双字节指令,LD Ri,adr;(adr)Ri,127,JMP、JC、JZ,adrPC(01:C=1 10:Z=1),转移条件=C*/I4*I3+Z*I4*/I3+/I4*/I3,128,5)列出微操作时间表(举例),ANA=1的条件:I7(/I6+/I5)+/I7I6I5/I2)EXE=1的条件:/I7(/I6+/I5+I2)+I7I6I5,129,130,6)微操作信号综合微操作控制信号=机器周期*节拍*脉冲*操作码*机器状态条件READ=FETCH*T1+ANA*I7*T1+EXE(/I7*I6*I5*/I2+I7*/I6*/I5+I7*I6*I5)T1(PC)+1PC=FETCH*T1+ANA*I7*T1+EXE*I7*I6*I5*T1CP PC=EXE*I7*I6*/I5*T1*P*转移条件,7)实现电路,131,5.7 流水线处理技术,对于指令的执行,CPU可有三种控制方式:顺序方式、重叠方式及流水线方式。,5.7.1 重叠控制和先行控制5.7.2 流水线工作原理,132,5.7.1 重叠控制和先行控制,1)顺序执行和重叠控制(1)顺序执行顺序执行方式是指各指令间顺序串行执行,执行完第k条指令后,方可取出第k+1条指令分析、执行。T=3nt,T=(t取指+t分析+t执行),133,(2)重叠控制一次重叠一次重叠执行方式是把执行第k条指令与取第k+1条指令同时进行。T=(2*n+1)t,134,二次重叠,二次重叠执行方式是把取第k+1条指令提前到与分析第k条指令同时进行,分析第k+1条指令与执行第k条指令同时进行。T=(n+2)t,135,二次重叠执行方式必须有独立的取指部件、指令分析部件和指令执行部件。解决访问内存冲突一般采用三种方法:设置彼此独立编址的指令存储器和数据存储器,并规定执行指令的结果只写到通用寄存器。采用多体交叉存储结构,一个读周期同时可以访问多个存储单元。采用先行控制技术,进行指令预取。,136,2)先行控制,在CPU内部设置指令队列缓冲器及相应的预取指令计数器、队列控制逻辑等,就可以预先将内存中的指令取到队列缓冲器中,这样“取指k+1”只需将第k+1条指令由指令队列缓冲器取到指令分析部件,无需访问内存。指令预取得以实现的原因是指令的执行阶段比分析阶段运行使用的时间长,在执行k和分析k+1同时进行时,当k+1已分析完成,k执行还未完成,此时若存储器空闲,就可进行指令的预取。,137,在先行控制下的一次重叠执行方式是把一条指令的执行过程分为“分析”和“执行”二个子过程。T=t分析1+MAXt分析i+t执行i-1+t执行n(i=2n),138,使各阶段的专用控制部件不间断的工作。T=t分析1+t执行i(i=1n),执行K,分析K+1,分析K,执行K+1,分析K+2,执行K+2,分析K+2,139,5.7.2 流水线工作原理,1)流水线概念流水线技术是将一个重复的处理过程分解为m个复杂程度大致相同,处理时间大致相同的子过程,每一个子过程由一个独立的功能部件完成。处理对象在实现各子过程的功能部件连成的通路上连续流动,在同一时间,m个部件同时进行不同的操作完成对不同的指令或数据,不同子过程的处理。这种并行处理是通过各功能部件在时间上的重叠实现的。,140,流水线方式与顺序工作方式相比,硬件设备增加量少,只是将完成各子过程的功能部件分开,但效率却相当于m套顺序处理设备的并行工作结果。,141,如果将一条指令的执行过程分解为取指令、指令译码、取操作数和执行四个子过程,每一过程对应的部件的输出端皆有一个锁存器,使对应的四个部件相互独立工作。设各部件的执行时间分别为t1、t2、t3、t4,且t1=t2=t3=t4=t,则执行指令的速度是顺序执行的4倍。,142,时空图,若部件并行工作,可采用时空图描述。横坐标表示时间,也就是输入到流水线中各个任务在流水线中所经过的时间,当各任务执行时间都相等时,横坐标被分割成相等长度的时间段纵坐标表示空间,也就是流水线的各个子过程(也称为功能段)。,143,2)流水线分类,(1)按照流水线使用的级别分类一个计算机系统可以在不同的并行等级上采用流水线技术 功能部件级(运算操作流水线)指令级(指令流水线)处理器级-又称为宏流水线,是指程序步骤的并行。,144,指令流水线,是一种将每条指令分解为多个子过程,并让各子过程操作重叠,从而实现n条指令并行处理的技术。,例如:80486CPU PF预取级D1译码级D2译码级EX执行级WB写回级,145,运算操作流水线,在指令流水线的每一个部件内部还可以采用流水线来实现。例如:浮点加法器流水线,146,(2)按照功能分类,单功能流水线:只能完成一种固定的功能。实现多种不同功能,可采用多条单功能流水线。多功能流水线多功能流水线是指流水线的各段可以进行不同的连接,在不同时间内或在同一时间内,通过不同连接方式实现不同的功能。,147,(3)按工作方式分类,静态流水线在某一时刻,只允许一个功能通过流水线单功能流水线一定是静态流水线静态多功能流水线从一种功能方式变为另一种,需要先排空流水线。动态流水线允许几个功能同时通过流水线。动态流水线一定是多功能流水线。,148,(4)按流水线结构分类,线性流水线设过程T被分成m个子过程,可表达为:T=T1,T2,Tm,各子过程之间有一定的优先关系:若ij,则必须在Ti完成以后,Tj才能开始执行。具有这样线性优先关系的流水线称为线性流水线。非线性流水线除有串行连接的通路外,还有反馈回路,某些功能段要反复多次使用。,149,3)衡量流水线性能的主要参数,吞吐率、加速比、效率(1)吞吐率TP吞吐率是指单位时间内流水线所完成的任务数量或输出的结果数量。,n:任务数 Tn:完成n个任务所需的时间。,150,若流水线包括m个子过程,其中第i个子过程流过对应功能部件的时间为ti实际吞吐率最大吞吐率,1,151,当流水线中各功能段的执行时间不完全相等时,吞吐率主要是由流水线中执行时间最长的那个功能段来决定,这个功能段就成了整个流水线的“瓶颈”。解决瓶颈问题:采取将“瓶颈”部分再细分重复设置瓶颈段,使多个瓶颈段并行工作,152,设流水线中各功能段的执行时间相等皆为t最大吞吐率TPmax=1/t实际吞吐率TP=n/mt+(n-1)t=TPmax/1+(m 1)/n,153,(2)加速比S,加速比是指顺序方式完成n个任务所需的时间与采用流水方式后完成n个任务所需的时间之比。设流水线包括m个子过程,且各子过程的执行时间相等,皆为t,则:S 顺序完成n个任务所需的时间/流水完成n个任务占用的时间n m t/mt+(n-1)tn m/m+(n-1)m/1+(m-1)/n当n很大时,Sm,即在理想情况下,流水线处理机的加速比等于流水线所包括的子过程数。,154,(3)效率E,流水线的效率是指流水线各段的设备利用率。E=n个任务占用的时空区/m个流水段的总的时空区=To/(mTn)To:n个任务占用的时空区即是顺序执行n个任务所使用的总的时间Tn:流水线完成n个任务所用的时间mTn:m段流水线完成n个任务的总的时空区。,155,设流水线中各功能段的执行时间相等皆为t E=m n t/m(m+n-1)t=n/(m+n-1)提高流水线的效率就是要求流水线连续不间断地流动,尽量减少流动间断时间。,156,4)流水线处理中的技术问题,(1)资源相关(结构相关)指当有多条指令进入流水线后在同一机器周期内争用同一功能部件所发生的冲突。解决资源相关的方法暂停流水线重复设置被争用的功能部件。,157,(2)数据相关,所谓数据相关是指第K+1条指令的操作数的地址是第k条指令保存结果的地址。存储器数据相关寄存器数据相关解决方法后推法设置相关的数据通路改变流水顺序-异步流动,158,(3)控制相关(转移相关),当流水线遇到分支指令或其它会改变程序计数器PC值的指令时,会发生控制相关冲突。解决方法延迟转移转移预测加快和提前形成条件码加快短循环过程,159,5.8 CPU举例(简述),5.8.1 Pentium 处理器5.8.2 SPARC 处理器,160,5.8.1 Pentium 处理器,Pentium是一个32位微处理器。Pentium通向存储器的外部数据总线宽度为64位,访存操作可同时传输8字节。Pentium外部地址总线32位,物理地址空间为4GB、虚拟地址空间为64TB,分页管理支持两种页面模式:4KB和4MB页面。内部:8KB指令cache和8KB数据cache;外部:可接256KB512KB的L2 cache。Pentium属于CISC结构处理器(具有RISC特征)。,161,Pentium的控制器采用硬布线控制和微程序控制相结合的方式:硬布线实现的指令用1个时钟周期执行完成;微程序实现的指令用23个时钟周期执行完成。Pentium的体系结构特点:超标量流水线;分立的指令cache和数据cache;重新设计的浮点运算部件;以BTB实现的动态转移预测。,162,5.8.2 SPARC 处理器,1)基于 SPARC的 MB86901的基本组成,163,(1)运算器部分,ALU:32位算逻运算部件Shifter:移位器Reg.File:寄存器组。ALU的源和目标Result:结果寄存器。ALU的结果移位器结果来自外部的数据(M、I/O端口)数据送外部数据送寄存器(专用、通用)Align:对齐电路旁路1、旁路2,164,(2)控制器部分,D、E、W:指令寄存器B1、B2:指令缓冲器Addr.Gen:地址形成部件。形成指令地址、数据地址。ADR:地址寄存器DPC、EPC、WPC:程序计数器Control:控制信号形式部件,165,(3)4个专用寄存器,Y:配合乘法运算TBR:提供中断服务程序入口地址的高位WIM:指示在寄存器组中保存数据时间最长的一个窗口(实现:将上一个窗口编号的对应位置1)PSR:程序状态寄存器,166,PSR,N、Z、V、C:整数条件码EC、EF:是否允许协处理器和浮部件工作PIL(4位):当中断优先级PIL时,CPU响应S:是管理员方式还是用户方式PS:保存陷阱前的S,以便返回时恢复ET:允许中断CWP(低5位):当前窗口指针,167,2)SPARC机在系统结构上采取的措施,CPU中设置相当多的通用寄存器,并采用硬件或软件手段管理和使用这些寄存器。采用Cache主存辅存三级存储体系。采用流水线组织。采用硬布线控制逻辑。,168,(1)寄存器窗口重叠技术,在RISC中对通用寄存器的处理采用两种方案:采用数量较大的寄存器堆,组成若干个窗口,并利用寄存器窗口重叠技术来加快程序的运转。利用一套分配寄存器的算法及编译程序的优化处理来充分利用寄存器资源。SPARC机采用了寄存器窗口重叠技术解决过程调用参数的传递问题和现场保护、恢复问题。例如:CALL/RETURN,169,寄存器窗口重叠技术,SPARC指令寄存器的地址码字段长位,允许访问32个逻辑寄存器。8个全局寄存器(R0 R7)24个局部寄存器(R8 R31),输入Ins(R24)R31)局部Locals(R16 R23)输出Outs(R8 R15),170,SPARC允许设置若干个窗口(632),窗口数取决于硬件设计所选定的物理寄存器实际数量。通过窗口指针CWP,可指出当前程序所访问的窗口号。,171,例如:A、B、C三层嵌套程序,R7全局R0,R15outsR8,R23localsR16,R31insR24,R15outsR8,R23localsR16,R31insR24,R15outsR8,R23localsR16,R31insR24,A程序,B程序,C程序,R23R8,R39R24,R63R40,调用时返回时,172,SPARC的MB86901有7个窗口,编号06(W0 W6),采用循环处理,共有120个物理寄存器,173,CWP为窗口号W6为最老的窗口,W6调用W5、W5调用W4当2 CWP-1=WIM时,发生窗口溢出例如:WIM=00000000000000000000000000000100CWP=3时调用子程序,则2 3-1=2 2=WIM,故发生窗口溢出,调用时 CWP-1CWP 返回时 CWP+1CWP,174,逻辑地址转换为物理地址的方法,7位物理地址低4位同逻辑地址7位物理地址高3位:Outs部分同当前CWPIns、locals部分为CWP+1(6为模)Outs、Ins、locals可用逻辑地址的最高2位区分:Outs 01、locals 10、Ins 11,175,(2)SPARC机的指令流水线,取指、译码、执行、写回执行是属于时间最长、情况最复杂的阶段,是确定周期的依据。32位SPARC指令流水线单周期流水线,取指n+1 译码n+1 执行n 写回n+1,取指n+2 译码n+2 执行n+2 写回n+2,取指n+3 译码n+3 执行n+3 写回n+3,D、E、W指令寄存器,176,双周期流水线(load指令、store指令),取指 译码 执行 写回n n n n,取指 译码 执行 写回n+2 n+1 n+1 n+1,load 译码 执行 写回数据 n+2 n+2 n+2,取指