1、1,第2篇 计算机系统分层结构,在本篇用3章分三个层次,即微体系结构层、指令系统层和汇编语言层讨论计算机系统的组成。微体系结构层是具体的硬件层次,可看作是指令系统的解释器。指令系统层是一个抽象的层次,其指令系统是一种硬件和编译器都可识别的机器语言。汇编语言层提供的语言,是将机器语言“符号化”以便于人们理解。用汇编语言编写的程序先由汇编器翻译成机器语言程序,再由微体系结构层解释执行。,2,第3章 微体系结构层CPU 组织,在微体系结构层 ,是从寄存器级分析CPU的结构和功能。本章主要内容: 3.1 CPU的基本组成和功能 3.2 算术逻辑部件ALU和运算方法 3.3 CPU模型机的组成及其数据通
2、路 3.4 组合逻辑控制器原理 3.5 微程序控制器原理 3.6 精简指令集计算机(RISC),3,中央处理器CPU的主要功能是从主存储器中取出指令、分析指令和执行指令,即按指令控制计算机各部件操作,并对数据进行处理。,3.1 CPU的组成和功能,第3章 微体系结构层CPU 组织,4,3.1.1 CPU的组成,CPU通常由以下几部分构成:, 控制器 ;, 算术逻辑部件ALU;, 各种寄存器;, CPU内部总线。,CPU的基本组成框图,5,1ALU部件与寄存器,ALU框图,(1)ALU部件,ALU的功能是实现数据的算术与逻辑运算。,ALU的输入有两个端口,分别接收参加运算的两个操作数,通常它们来
3、自CPU中的通用寄存器或ALU总线。ALU的输出取决于对其功能的控制,当控制功能选择加、减、与、或等运算功能之一时,其输出结果将为对应的和、差、与值、或值等。,6,(2)寄存器,CPU 中的寄存器包括存放控制信息的寄存器,如指令寄存器、程序计数器和状态字寄存器;以及存放所处理数据的寄存器,如通用寄存器和暂存器。, 寄存器,通用,通常CPU内部设置有一组寄存器,每个寄存器都可以承担多种用途,因此习惯上称为通用寄存器。,通用寄存器本身在逻辑上只具有接收信息、存储信息和发送信息的功能。但通过编程以及与ALU的配合可以实现多种功能,如它们可为ALU提供操作数并存放运算结果,也可用作变址寄存器、地址指针
4、和计数器等。, 器,暂存,在CPU中一般要设置暂存器,主要是为了暂存从主存储器读出的数据 ,暂存器没有寄存器号,因此不能直接编程访问它们。,7, 寄存器IR(Instruction Register),指令,用来存放当前正在执行的一条指令。,指令可划分为操作码和地址码字段,由二进制代码组成。执行指令时必须对操作码进行译码,以识别出所要求的操作,这个功能由“指令译码器”完成。, 计数器PC(Program Counter),程序,用以存放当前或下一条指令在主存中的地址,因此又称为指令计数器或指令指针IP(Instruction Pointer)。, 寄存器,状态,CPU内部设置的状态寄存器,用来
5、存放当前程序的运行状态和工作方式,其内容称为程序状态字PSW(Program State Word),PSW是参与控制程序执行的重要依据。,8,2总线,所谓总线是一组能为多个部件分时共享的公共信息传送线路,它分时接收各部件送来的信息,并发送信息到有关部件。,由于多个部件连接在一组公共总线上,可能会出现多个部件争用总线,因此需设置总线控制逻辑以解决总线控制权的有关问题。,CPU内部总线用来连接CPU内的各寄存器与ALU ;,总线分类:,系统总线用来连接CPU、主存储器与I/O接口,它通常包括三组:数据总线、地址总线和控制总线。,按总线传送的方向可将总线分为单向总线和双向总线。,9,3CPU内部数
6、据通路,CPU内部寄存器及ALU之间通常用总线方式传送数据信息。介绍两种常见的结构。,(1)单总线数据通路结构,采用单总线结构的CPU数据通路,10,CPU数据通路结构只采用一组内总线,它是双向总线。通用寄存器组、其他寄存器和ALU均连在这组内总线上。,CPU内各寄存器间的数据传送必须通过内总线进行,ALU通过内总线得到操作数,其运算结果也经内总线输出。,(2)多组内总线结构,采用三总线结构的CPU数据通路,为了提高CPU的工作速度,一种方法是在CPU内部设置多组内总线,使几个数据传送操作能够同时进行,即实现部分并行操作。,11,3.1.2 指令执行过程,CPU的主要功能就是执行存放在存储器中
7、的指令序列,即程序。,1指令的分段执行过程,任何一条指令的执行都要经过读取指令、分析指令和执行指令3个阶段。,执行阶段还可细分为:,(1)取指令,(2)分析指令,(3)执行指令, 取操作数, 执行操作, 形成下一条指令地址,此外,CPU还应该对运行过程中出现的某些异常情况或输入/输出请求进行处理,12,2指令之间的衔接方式,指令之间的衔接方式有两种:串行的顺序安排方式与并行的重叠处理方式。,3.1.3 时序控制方式,执行一条指令的过程可分为几个阶段,而每一阶段又分为若干步基本操作,每一步操作则由控制器产生一些相应的控制信号实现。因此,每条指令都可分解为一个控制信号序列,指令的执行过程就是依次执
8、行一个确定的控制信号序列的过程。,时序控制方式就是指微操作与时序信号之间采取何种关系,它不仅直接决定时序信号的产生,也影响到控制器及其他部件的组成,以及指令的执行速度。,13,1同步控制方式,同步控制方式是指各项操作由统一的时序信号进行同步控制。,同步控制的基本特征是将操作时间分为若干长度相同的时钟周期(也称为节拍),要求在一个或几个时钟周期内完成各个微操作。在CPU内部通常是采用同步控制方式 。,同步控制方式的优点是时序关系简单,结构上易于集中,相应的设计和实现比较方便。,2同步控制方式的多级时序系统,(1)多级时序的概念,在同步控制方式中,通常将时序信号划分为几级(其中包括指令周期),称为
9、多级时序。, 机器周期, 节拍(时钟周期), 时钟脉冲信号,14,(2)多级时序信号之间的关系,三级时序信号之间的关系,15,(3)时序系统的组成,时序系统框图,3.1.4 指令流水线,两段指令流水线,16,为获得进一步的加速,流水线可以分成更多的阶段。,取指令,计算操作数地址,译码指令,写操作数,取操作数,执行指令,指令流水线操作时序图,影响流水线性能主要有以下几个因素: (1)若各个阶段不全是相等的时间 (2)流水线中的相关问题 (3)当遇到条件转移指令时 (4)当I/O设备有中断请求或机器有故障时,17,3.2 算术逻辑部件ALU和运算方法,算术逻辑部件ALU主要完成对二进制代码的定点算
10、术运算和逻辑运算。,3.2.1 算术逻辑部件ALU,算术逻辑部件ALU的硬件实现涉及三个问题:,(1)如何构成一位二进制加法单元,即全加器。 (2)n位全加器连同进位信号传送逻辑,构成一个n位并行加法器。 (3)以加法器为核心,通过输入选择逻辑扩展为具有多种算术和逻辑运算功能的ALU。,18,1全加器,用半加器构成的全加器,和,进位,目前,广泛采用半加器构成全加器。,通常逻辑门电路都存在延迟时间,全加器电路就是一个延迟部件,正是这个延迟特性将影响全加器的速度。,19,2并行加法器与进位链结构,用n位全加器实现两个n位操作数各位同时相加,这种加法器称为并行加法器。并行加法器中全加器的位数与操作数
11、的位数相同。,(1)基本进位公式,设相加的两个n位操作数为:,进位信号的逻辑式,可以看出C 由两部分组成:,我们定义两个辅助函数:,进位产生函数,进位传递函数,因此有:,20,(2)并行加法器的串行进位,采用串行进位的并行加法器,是将n个全加器串接起来,就可进行两个n位数相加。,由于串行进位的延迟时间较长,所以在ALU中很少采用纯串行进位的方式。但这种方式可节省器件,成本低,在分组进位方式中局部采用有时也是可取的。,21,3并行进位(先行进位、同时进位),为了提高并行加法器的运算速度,就必须解决进位传递的问题。方法是让各级进位信号同时形成,而不是串行形成。,这种同时形成各位进位的方法称为并行进
12、位或先行进位,又称为同时进位。,虽然并行进位加法器的运算速度快,但这是以增加硬件逻辑线路为代价的。两种常用的分组进位结构是:两种常用的分组进位结构是:,组内并行、组间串行的进位链。 组内并行、组间并行的进位链。,22,4ALU举例,SN74181框图,一位ALU单元,23,3.2.2 定点数运算方法,数值运算的核心是指加、减、乘、除四则算术。由于计算机中的数有定点和浮点两种表示形式,因此相应有定点数的运算和浮点数的运算。,1定点加减运算,(1)原码加减运算,例如,加法指令指示做(+A)+(-B),由于一个操作数为负,实际操作是做减法(+A)-(+B),结果符号与绝对值大的符号相同。同理,在减法
13、指令中指示做(+A)-(-B),实际操作是做加法(+A)+(+B),结果与被减数符号相同。,(2)补码加减运算, 补码加法运算,X +Y =X +Y , 补码减法运算,XY =X +(-Y ) =X +-Y ,24, 补码运算规则 根据以上讨论,可将补码加减规则归纳如下: 参加运算的操作数用补码表示。 符号位参加运算。 若指令操作码为加,则两数直接相加;若操作码为减, 则将减数连同符号位一起变反加1后再与被减数相加。 运算结果用补码表示。,【例3-3】 X = 00110110,Y =11001101,求X+Y ,X-Y 。,25,(3)溢出判别,在什么情况下可能产生溢出?,例.A有4位尾数,
14、1位符号Sn数B有4位尾数,1位符号Sn,符号位参加运算,结果符号Sn 符号位进位Cn 尾数最高位进位Cn-1,26,正溢,负溢,27, 采用一个符号位判断,溢出= S +A B, 采用最高有效位的进位判断,溢出= C +C =C C, 采用变形补码判断(双符号位),用S 、Sn分别表示结果最高符号位和第2符号位,溢出=S S,28,2移位,移位操作按移位性质可分为3种类型:逻辑移位、循环移位和算术移位。,移位示意图,29,3定点数乘除运算,(1)无符号整数一位乘法,【例3-10】 1101 1011的运算过程如图所示。,30,(2)无符号整数一位除法,【例3-11】 用不恢复余数法计算000
15、010000011。,解:A、C:00001000;B:0011;:1101。其运算过程如图:,31,3.2.3 浮点数运算方法,1浮点数加减运算,设有两个浮点数:X=Mx ,Y=My 。要实现X +Y的运算,需要以下4个步骤才能完成。, 对阶操作 对阶的规则是:阶码小的数向阶码大的数对齐, 实现尾数的加(减)运算, 结果规格化和判溢出,a左规,b右规,若运算结果是非规格化的数,例如尾数是11.1xx或00.0xx形式,就需要将尾数左移,每左移一位,阶码减1,直至满足规格化条件为止(即尾数最高有效位的真值为1,或尾数符与最高有效位不等),这个过程称为左规。在左规的同时应判断结果是否会下溢,即阶
16、码小于所能表示的最小负数。,若运算结果尾数发生溢出,例如尾数为10.xxx或01.xxx形式,这并不表明浮点结果会溢出,此时需调整阶码,将尾数右移一位,阶码加1,称为右规。右规时,应判断结果是否会上溢,即阶码大于所能表示的最大正数。, 舍入操作,32,下面举一个浮点加的实例。【例3-12】 设有两个浮点数X=2 0.1101012,Y=2 (-0.101011)2。,阶码 尾数 X浮=11,10; 00.110101 Y浮=11,11; 11.010101, 对阶,E =EX +-EY =1110+0001=1111,即E =-1,将MX右移一位,其阶码加1,得,=11,11;00.01101
17、1(用0舍1入法), 尾数求和,00.011011 + 11.01010111.110000, 规格化及判溢出,左规得,X+Y浮=1110;11.10000, 舍入 由于是左规,结果不需要舍入。,最后运算结果的真值为 X+Y=2 (-0.100000)2。,33,2浮点数乘除运算,(1)浮点数乘法运算, 阶码相加并判溢出, 尾数相乘, 规格化处理,(2)浮点数除法运算, 求阶差, 尾数相除, 预置 检测被除数是否为0,若为0则置商为0。如果除数为0,则置0除数标志,转中断处理。, 尾数调整,34,3.2.4 十进制数加减运算,1进制转换,2直接进行十进制数运算,机器内部所处理的十进制数采用二-
18、十进制数(BCD码)表示形式,其运算由BCD码运算指令完成。目前,计算机实现BCD码运算的方法有两种:, 机器的指令系统中设有专用进行BCD码加、减、乘、除的运算指令。, 先用二进制数的加、减、乘、除指令进行运算,紧接着用BCD码校正指令对运算结果进行校正。,3BCD码的加法运算,在BCD码中,每位十进制数与小于或等于9的二进制数相同,但求得的和可能大于9,因而需要校正。,35,3.3 CPU模型机的组成及其数据通路,3.3.1 基本组成,模型机数据通路结构图,36,3.3.1 基本组成,1寄存器,(1)可编程寄存器,通用寄存器有4个:R0、R1、R2、R3;堆栈指针为SP;程序状态字寄存器为
19、PSW;程序计数器为PC。,(2)暂存器,暂存器有3个:C、D、Z 。,(3)指令寄存器IR,指令寄存器IR用来存放当前正在执行的一条指令。,(4)与主存接口的寄存器MAR、MDR,CPU对主存的控制信号有两个:读信号RD控制对主存的读操作;写信号WR控制对主存的写操作。,37,2运算部件,ALU的输入A来自暂存器D,输入B来自ALU总线,运算结果输出到Z 。控制ALU运算的控制信号有:ADD、SUB、AND、OR、XOR、COM、NEG、A+1、A-1、B+1、B-1,它们分别控制ALU完成加、减、与、或、异或、求负、求反等运算。,3总线与数据通路结构,(1)ALU 总线,CPU内部采用单总
20、线结构,即设置一组ALU总线(也称为CPU内总线),由16根双向数据传送线组成,ALU和所有寄存器通过这组公共总线连接起来。,(2)系统总线,模型机的CPU、存储器及I/O设备分别挂接在一组系统总线上。系统总线包括:16根地址总线、16根数据总线,以及控制总线。为简单起见,模型机采用同步控制方式。,38,4控制器及微命令的基本形式,(1)微命令的基本形式,在模型机中,微命令有两种形式。, 电位型微命令, 各寄存器输出到ALU总线的控制信号有:R0OUT、R1OUT、PCOUT、SPOUT、MDROUT等。 ALU运算控制信号有:ADD、SUB、AND、OR、XOR等。 暂存器D的左移/右移控制
21、信号有:SAL、SAR。 程序计数器PC的计数控制信号有:PC+1。 MAR和MDR输出到系统总线的控制信号有:EMAR、EMDR。 寄存器置入控制信号有:SMDR、SPSW。 主存的读/写信号有:RD、WR。, 脉冲型微命令,脉冲型微命令有:CPR0、CPR1、CPPC、CPIR、CPSP、CPMAR、CPMDR等。,39,(2)控制器,传统控制器的主要部件包括:指令寄存器IR、指令译码器、程序计数器PC、状态字寄存器PSW、时序系统和微操作信号发生器。,控制器是整机的指挥中心,其基本功能就是分析执行指令,即根据指令产生控制信号序列以控制相应部件分步完成指定的操作。,40,3.3.2 数据传
22、送,1寄存器之间的数据传送,在模型机中,寄存器之间可直接通过ALU总线传送数据,具体传送由输出门和打入脉冲控制。,例如 :把寄存器R1的内容传送到寄存器R3,即实现传送操作R1R3所需控制信号为R1OUT、CPR3,41,2主存数据传送到CPU,主存与CPU之间通过系统总线传送数据。, PCMAR ;PC中的指令地址送存储器地址寄存器 MMDRIR ;从存储器中读指令到IR,实现PCMAR的控制信号:PCOUT、CPMAR。,实现读操作MMDR的控制信号:EMAR、RD、SMDR; 实现MDRIR的控制信号:MDROUT、CPIR。,例如:要从存储器中取指令到指令寄存器IR, 通过以下操作序列
23、即可实现:,42,3CPU数据传送到主存, R1MAR ;地址送MAR R2MDR ;数据送MDR MDRM ;数据写入主存,例如:在R2中存放需写入主存的数据,存储单元地址在 R1中,则写一个数据到存储器可通过以下操作序列实现:,实现R1MAR的控制信号:R1OUT、CPMAR。 实现R2MDR的控制信号为R2OUT、CPMDR。 实现写操作MDRM的控制信号为EMAR、EMDR、WR,43,4执行算术或逻辑操作, R1D ;把R1的内容先送到寄存器D D+ R2Z ;R2内容送到ALU的B端与D内容通过ALU相加,结果送Z ZR3 ;将存放在Z中的相加结果送入R3中,例如:完成“把寄存器R
24、1和R2的内容相加,结果送到R3”这个功能,需要分成3步执行:,实现R1D的控制信号:R1OUT、CPD。 实现D + R2MDR的控制信号:R2OUT、ADD、CPZ。 实现ZR3的控制信号:ZOUT、CPR3。,44,3.4 组合逻辑控制器原理,组合逻辑控制器是指产生控制信号(即微命令)的部件,是用组合逻辑线路来实现。在模型机中有几十个微命令,则每个微命令都需要一组逻辑门电路,根据相应的逻辑条件(如指令的操作码、寻址方式、时序信号等)产生该微命令。,本节先介绍模型机的指令系统,然后假设模型机采用的是组合逻辑控制器,讨论其时序系统、指令执行流程及微命令的产生与综合。,45,3.4.1 模型机
25、的指令系统,1指令格式,(1)双操作数指令:其格式如下图所示,第1215位表示操作码,第611位为源操作数地址段,第05位为目的操作数地址段,在每个地址段字段中又分为两部分,其中3位表明寻址方式类型,另外3位给出所指定的寄存器编号。,46,(1)双操作数指令格式,可编程寄存器有7个,编号如下(留有一种编码未用,可扩展): 通用寄存器R0R3 000011 堆栈指针SP 100 程序状态字PSW 101 程序计数器PC 111,47,(2)单操作数指令,第05位为地址字段,第611位空闲不用, 也可供扩展操作码用。,48,(3)转移指令,第1215位为操作码,第611位给出转移地址字段(也分为寻
26、址方式与寄存器号两部分)。第05位则为转移条件字段。其中,第03位中有一位为1,表明转移条件进位C、溢出V、结果为零Z、结果为负N。第5位表明转移方式,若为0,表示相关标志位为0转移;若为1,表示相关标志位为1转移。若第05位全为0,表示无条件转移。,49,2寻址方式,模型机的编址为按字编址,字长16位,即主存每个单元16位。采用简单变字长指令格式,指令长度可为16位、32位(指令中含立即数或一个操作数地址)或48位(含2个操作数地址),操作数字长16位。模型机寻址方式 如下表:,50,3操作类型,操作码共4位,现设置14种指令,余下两种操作码组合可供扩展。,(1)传送指令,MOV传送,操作码
27、0000。,(2)双操作数算术逻辑指令,ADD加,操作码0001(带进位)。 SUB减,操作码0010(带进位)。 AND逻辑与,操作码0011。 OR 逻辑或,操作码0100。 EOR逻辑异或,操作码0101。,(3)单操作数算术逻辑指令,COM求反,操作码0110。 NEG求补,操作码0111。 INC加1,操作码1000。 DEC减1,操作码1001。 SL 左移,操作码1010。 SR 右移,操作码1011。,51,(4)程序控制类指令, 转移指令JMP,操作码1100。,如上表所示,JMP指令第30位选择一位为1,表明以PSW中的某一特征作为转移条件。因此,JMP指令第30位的含义与
28、PSW第30位含义分别相对应。例如PSW第0位是进位位C,而转移指令第0位若为1,则表明以进位状态为转移条件。JMP指令第5位(IR5)决定转移条件为0转,还是为1转。若JMP指令第50位全为0,则表示无条件转移。,52, 返回指令RST,操作码1100。,RST指令与JMP指令的操作码相同,可视为一条指令。RST指令只能采用自增型寄存器间址表明转移地址,并指定寄存器为SP,即寻址方式为(SP)+。它从堆栈中取出返回地址,然后修改堆栈指针SP+1。实际上,“JMP(SP)+”指令就是一条RST指令。, 转子指令JSR,操作码1101。,执行JSR指令时,先将返回地址压栈保存,然后按寻址方式找到
29、转移地址(即子程序入口地址),将它送入PC中。,53,3.4.2 模型机的时序系统,组合逻辑控制器依靠不同的时间标志,使CPU分步工作。模型机采用前述的三级时序系统,即将时序信号分为工作周期、节拍(时钟周期)和工作脉冲。,1工作周期划分,(1)取指周期FT,在取指周期FT中完成取指所需的操作,(2)源周期ST,如果需要从主存中读取源操作数,则进入ST。,(3)目的周期DT,如果需要从主存中读取目的地址或目的操作,则进入DT。,(4)执行周期ET,在取得操作数后,则进入ET,在ET中将依据IR中操作码执行相应操作,如传送、算术运算、逻辑运算、获得转移地址等,(5)中断响应周期IT,(6)DMA传
30、送周期DMAT,54,(5)中断响应周期IT,(6)DMA传送周期DMAT,中断方式:由于某些异常情况或特殊请求,引起CPU暂停执行当前程序,转去执行中断处理子程序,以处理这些情况或请求,等处理完后又返回原程序断点继续执行,这一过程就称为中断。,CPU在响应中断请求之后,进入中断响应周期IT。在IT中将直接依靠硬件进行关中断、保存断点、转处理程序入口等操作。IT结束后,进入取指周期FT,开始执行中断处理程序。,DMA(Direct Memory Access)即直接访存方式:其基本思想是在主存储器和I/O设备之间建立直接的数据传送通路,由专门的DMA控制器控制主存和I/O设备间的数据传送,在传
31、送时不需CPU干预。由于传送过程完全由硬件实现,所花费的时间短,因此能满足高速数据传送的需要。,CPU响应DMA请求之后,进入DMAT。在DMAT中,CPU交出系统总线的控制权,即MAR、MDR与系统总线脱钩(呈高阻态)。改由DMA控制器控制系统总线,实现主存与外围设备间的数据直接传送,因此对CPU来说,DMAT是一个空操作周期。,55,FT,ST,DT,IT,ET,DMAT,DMA请求?,中断?,Y,Y,N,N,CPU控制流程,例. 双操作数指令的两个操作数均在主存中,工作周期变化为:,FTSTDTET(FT),例. 单操作数指令的操作数在主存中,工作周期变化为:,FTDTET(FT),例.
32、 双操作数指令的操作数均在CPU寄存器中,工作周期变化为:,FTET(FT),左图描述了指令执行时工作周期状态变化流程。,56,2节拍(时钟周期)T,每个工作周期的操作一般需要分成若干步完成,为此将工作周期划分成若干节拍。,在模型机中,为了简化时序控制,将CPU内部操作与访问主存的操作统一考虑。节拍宽度为最长微操作所需的时间,即访问主存操作所需的时间。,3工作脉冲P,3工作脉冲,在节拍中执行的有些操作需要同步定时脉冲,如将稳定的运算结果打入寄存器、周期状态切换等。为此,模型机在每个节拍的末尾发一个工作脉冲P,作为各种同步脉冲的来源,如左图。,工作脉冲P的前沿:作为打入寄存器的定时信号,它标志着
33、一次数据通路操作的完成。 P的后沿:作为节拍、工作周期切换的定时信号,在此刻对节拍计数器T计数、打入新的工作周期状态。,57,3.4.3 指令流程,分析指令流程是为了在寄存器这一层次分析指令的读取与执行过程,也就是讨论CPU的工作机制。,1取指周期FT,(1)进入FT的条件,初始化时置入FT,,程序正常运行时同步打入FT。,1,CPFT,取指周期状态触发器,产生控制信号1FT的逻辑条件如下:,1FT= ET(1IT1DMAT)+ IT + DMAT(1IT1DMAT),58,(2)取指流程,PCMAR,MMDRIR PC+1PC,FT0,FT1,(3)微操作时间表,59,2MOV指令,1)取指
34、令周期和取源操作数周期流程图,FT,ST0,ST1,ST2,ST3,ST4,R,(R),-(R),I/(R)+,DI,X(R),MOVE指令,60,2)取目的地址和执行周期流程图,DT0,DT1,DT2,DT3,ET0,ET1,R,(R),-(R),I/(R)+,DI,X(R),61,3双操作数指令,双操作数指令共有5条:加ADD、减SUB、与AND、或OR、异或EOR,其指令流程图:,ST,FT,DT0,DT1,DT2,DT3,DT4,ET0,ET1,ET2,与MOV相同,62,4单操作数指令,单操作数指令共有6条:求反COM、求补NEG、加“1”INC、减“1”DEC、左移SL、右移SR,
35、其指令流程图如图:,FT,ST,DT,ET0,ET1,ET2,与双操作数指令相同,63,5转移指令JMP/返回指令RST,NJP,JP,RST,PC,PC,R,(R),(R)+/RST,X(PC),FT,ET1,ET2,ET3,ET4,64,6转子指令JSR,ST0,FT,ET0,ET1,ET2,ST1,ST2,ST3,ET4,流程图如下:,65,8DMA周期,在实际机器中,CPU可在一个系统总线周期结束时响应DMA请求。,9键盘操作,3.4.4 微命令的综合与产生,微命令的逻辑表达式都是“与-或”式的逻辑形态,各“与”项通常包括:指令操作码译码信号、寻址字段译码信号、工作周期状态、节拍、工作
36、脉冲等。例如:,PCOUT = FTT0 + MOV,STT0 + ,CPMAR = FTT0 P + MOV,STT0P + ,T+1 = FTT0 + MOVSTT0,+,CPT =,66,3.5 微程序控制器原理,有些CPU采用微程序控制方式来产生微命令,相应的控制器称为微程序控制器。,1微程序控制方式的基本思想,(1)将机器指令分解为基本的微命令序列,用二进制代码表示这些微命令,并编成微指令,多条微指令再形成微程序。,(2)一条微指令包含的微命令,控制实现一步(一个节拍)操作;若干条微指令组成的一小段微程序解释执行一条机器指令。,CM中的微程序能解释执行整个指令系统的所有机器指令。,6
37、7,指令代码,运行状态,控制存贮器CM,微命令存储器IR,微命令序列,微程序控制器原理框图:,控制存储器CM 功能:存放微程序。 CM属于CPU,不属于主存储器。,微指令寄存器 IR 功能:存放现行微指令。 微操作控制字段:提供一步操作所需的微命令。指明后续微地址的形成方式。 顺序控制字段:提供微地址的给定部分,68,指令代码,运行状态,控制存贮器CM,微命令存储器IR,微命令序列,微程序控制器原理框图:,2微程序执行过程的描述,(1)取机器指令,CM,取指微指令,IR,微命令字段,译码器,微命令,机器指令,IR,主存,69,指令代码,运行状态,控制存贮器CM,微命令存储器IR,微命令序列,微
38、程序控制器原理框图:,(2)转微程序入口,(3)执行首条微指令,IR,操作码,微地址形成电路,入口,AR,CM,IR,微命令字段,IR,译码器,微命令,操作部件,70,指令代码,运行状态,控制存贮器CM,微命令存储器IR,微命令序列,微程序控制器原理框图:,(4)取后续微指令,微地址字段 现行微地址 运行状态,微地址形成电路,后续微地址,AR,CM,后续微指令,IR,71,(5)执行后续微指令,同(3),(6)返回,微程序执行完,返回CM,(存放取指微指令的固定单元)。,指令代码,运行状态,控制存贮器CM,微命令存储器IR,微命令序列,微程序控制器原理框图:,72,3基本概念和术语,(1)微命
39、令与微操作,微命令,微操作,构成控制信号序列的最小单位。,由微命令控制实现的最基本操作。,注意,在组合逻辑控制器中也存在微命令、微操作这两个概念,它们并非只是微程序控制方式的专用概念。,(2)微指令与微周期,微指令,微周期,若干微命令的组合,以编码形式存放在控制存储器的一个单元中,控制实现一步操作。,通常指从控制存储器中读取一条微指令并执行相应的微操作所需的时间。,73,(3)微程序与微程序设计,微程序,微程序设计, 一系列微指令的有序集合。,是将传统的程序设计方法运用到控制逻辑的设计中,在微程序中也可以有微子程序、循环、分支等形态。,(4)工作程序与微程序、主存储器与控制存储器,3.5.2
40、微指令编码方式,微指令编码的实质是解决在微指令中如何组织微命令的问题。,74,1直接控制编码(不译码法),例. 某微指令,微命令按位给出。,不需译码,产生微命令的速度快; 信息的表示效率低。,75,例. 某微指令,微命令按位给出。,不需译码,产生微命令的速度快; 信息的表示效率低。,2分段直接编译法,76,操作唯一;,加法器A输入端的控制命令放 AI字段,B输入端的控制命令 放BI字段。,C,D,AI:,BI:,一条微指令能同时 提供若干微命令,便于组织各种操作。,编码较简单;,77,3分段间接编译法,例.,微命令由本字段编码和其他字段解释共同给 出。,C =,1) 设置解释位或解释字段,解释
41、位,1 A为某类命令 0 A为常数,2) 分类编译,按功能类型将微指令分类,分别安排各类微 指令格式和字段编码,并设置区分标志。,78,4常数源字段E的设置,微操作控制字段 E 顺序控制字段,在微指令中,一般设有一个常数源字段E,就如同机器指令中的立即操作数一样,用来提供微指令所使用的常数(由设计者填写),如提供计数器初值,通用寄存器地址,转移地址等。字段E也可用来参与其他控制字段的间接编码,以减少微指令字长,增加微指令的灵活性。字段E在微指令中的形式为,除上述几种基本的编码方法外,另外还有一些常见的编码技术,如可采用微指令译码与部分机器指令译码的复合控制、微地址参与解释微指令译码。,79,3
42、.5.3 微程序的顺序控制,1微程序入口地址的形成,每一条机器指令对应着一段微程序,其入口就是初始微地址。常用以下几种方式形成入口地址:,(1)当操作码的位数与位置固定时,可直接使操作码与入口地址码的部分相对应。,(2)当每类指令中的操作码位数与位置固定,而各类指令之间的操作码与位置不固定时,可采用分级转移的方式。,(3)当机器指令的操作码位数和位置都不固定时,通常可以采用PLA电路将每条指令的操作码翻译成对应的微程序入口地址,也可以采用PROM(可编程只读存储器)实现转移,将指令操作码作为PROM的地址输入,其对应的PROM单元内容即为该机器指令的微程序入口地址。,80,2后继微地址的形成,
43、每条微指令执行完毕时,需根据其中的顺序控制字段的要求形成后继微指令地址。,形成后继地址的两类方法:,(1)增量方式(顺序- 转移型微地址),采用这种方式的微指令的顺序控制字段通常分成两部分:转移方式控制字段和转移地址字段,其一般格式如下:,微操作控制字段 转移地址 转移方式,增量方式 :, 顺序执行, 无条件转移, 条件转移, 转微子程序, 微子程序返回,现行微地址+1,现行微指令给出转移微地址,现行微指令给出转移微地址和转移条件,现行微指令给出微子程序入口。,现行微指令给出寄存器号。,81,(2)断定方式,由直接给定和测试断定相结合形成微地址。,微操作控制字段 非测试段 测试段,指令格式:,
44、非测试段 可由设计者直接给定,通常是后继微地址的高位部分,用以指定后继微指令在某个区域内。,测试段 根据有关状态的测试结果确定其地址值,占后继微地址的低位部分。这相当于在指定区域内断定具体的分支。所依据的测试状态可能是指定的开关状态、指令操作码、状态字等。,82,3.5.4 微指令格式,微指令的编码方式是决定微指令格式的主要因素,1水平型微指令,特征如下:,(1)微指令较长,(2)微指令中的微操作具有高度并行性,(3)微指令编码简单,2垂直型微指令,优点:,微指令短、简单、规整,便于编写微程序。,缺点:,微程序长,执行速度慢;工作效率低。,一条微指令定义并执行一种基本操作。,83,3.5.5
45、典型微指令举例,模型机的微指令字长为26位,分为8个字段,其格式如下:,FOUT FALU FCP FPC FEMAR FR/W FST JC,4 5 5 2 1 2 2 5,(1)基本数据通路控制字段, FOUT, FALU, FCP, FPC,寄存器的输出控制字段,ALU的操作与Z的移位控制字段,寄存器的同步打入控制字段,PC的操作控制字段,(2)访存控制字段, FEMAR, FR/W,(3)辅助控制字段, FST,MAR输出控制字段。,主存读写与MDR操作控制字段。,辅助操作控制字段,(4)顺序控制字段 JC 转移方式字段,用以选择后继微指令地址的形成方式,84,CPU模型机的组成及其数
46、据通路,1RISC与CISC,传统的CISC(复杂指令系统计算机)设计思想并不利于提高计算机的速度。而且复杂的指令系统必然增加硬件实现的复杂性,从而使计算机的研制周期长、投资大。,2RISC的特点,(1)大多数指令在一个机器周期内完成,(2)采用LOAD/STORE结构,(3)较少的指令数和寻址方式,(4)固定的指令格式,(5)面向寄存器的结构,(6)硬布线控制逻辑,(7)注重编译的优化,85,3超标量与超流水线概念,将RISC设计成具有多个执行部件的结构,同时在每一个周期内允许发出多条指令,并调度多条指令在不同的执行部件中并行执行操作,这就是所谓 。,将流水线的每个节拍分成3个或4个小节拍,
47、每个小节拍执行一个操作,便有可能在取出第i条指令后,相隔一个小节拍,就取出第i+1条指令,这样就可能在一个流水线的节拍内,取出3条或4条指令,送入流水线去执行,从而使CPI小于l,这就是所谓 。,超标量结构,超流水线结构,86,3.6.2 UltraSPARC CPU的微体系结构,1UltraSPARC概况,UltraSPARC的微体系结构框图:,87,2UltraSPARC的流水线,如图:,整数流水线,浮点数/图形流水线,3UltraSPARC指令系统,UltraSPARC有两组寄存器:32个64位的通用寄存器和32个浮点寄存器。R0R31是通用寄存器,它们在特定的上下文中使用其他的名字。,
48、88,UltraSPARC的通用寄存器,89,第三节 CPU模型机的组成及其数据通路,90,第3节 CPU模型机的组成及其数据通路,3.3.1 基本组成,模型机数据通路结构图,91,3.3.1 基本组成,1寄存器,(1)可编程寄存器,通用寄存器有4个:R0、R1、R2、R3;堆栈指针为SP;程序状态字寄存器为PSW;程序计数器为PC。,(2)暂存器,暂存器有3个:C、D、Z 。,(3)指令寄存器IR,指令寄存器IR用来存放当前正在执行的一条指令。,(4)与主存接口的寄存器MAR、MDR,CPU对主存的控制信号有两个:读信号RD控制对主存的读操作;写信号WR控制对主存的写操作。,92,2运算部件,ALU的输入A来自暂存器D,输入B来自ALU总线,运算结果输出到Z 。控制ALU运算的控制信号有:ADD、SUB、AND、OR、XOR、COM、NEG、A+1、A-1、B+1、B-1,它们分别控制ALU完成加、减、与、或、异或、求负、求反等运算。,