资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,计算机组成原理与汇编语言程序设计,(第2版),徐 洁 俸远桢 主编,第 3 章(1),第,2篇 计算机系统分层结构,在本篇用3章分三个层次,即微体系结构层、指令系统层和汇编语言层讨论计算机系统的组成。,微体系结构层是具体的硬件层次,可看作是指令系统的解释器。,指令系统层是一个抽象的层次,其指令系统是一种硬件和编译器都可识别的机器语言。,汇编语言层提供的语言,是将机器语言“符号化”以便于人们理解。,用汇编语言编写的程序先由汇编器翻译成机器语言程序,再由微体系结构层解释执行。,第3,章 微体系结构层,CPU,组织,在微体系结构层,,,是从寄存器级分析,CPU,的结构和功能。本章主要内容:,CPU,的基本组成和功能,算术逻辑部件,ALU,和运算方法,CPU,模型机,组合逻辑控制器原理,微程序控制器原理,中央处理器,CPU,的主要功能是从主存储器中取出指令、分析指令和执行指令,即按指令控制计算机各部件操作,并对数据进行处理。,第1节,CPU,的组成和功能,3.1.1,CPU,的组成,CPU,通常由以下几部分构成,:,控制器,;,算术逻辑部件,ALU;,各种寄存器,;,CPU,内部总线。,CPU,的基本组成框图,1,ALU,部件与寄存器,ALU,框图,(1),ALU,部件,ALU,的功能是实现数据的,算术与逻辑运算,。,ALU,的输入有两个端口,分别接收参加运算的两个操作数,通常它们来自,CPU,中的通用寄存器或,ALU,总线。,ALU,的输出取决于对其功能的控制,当控制功能选择加、减、与、或等运算功能之一时,其输出结果将为对应的和、差、与值、或值等。,(2,)寄存器,CPU,中的寄存器包括存放,控制信息,的寄存器,如,指令寄存器,、,程序计数器,和,状态字寄存器,;以及存放所,处理数据,的寄存器,如,通用寄存器,和,暂存器,。,寄存器,通用,通常,CPU,内部设置有一组寄存器,每个寄存器都可以承担多种用途,因此习惯上称为通用寄存器。,通用寄存器本身在逻辑上只具有接收信息、存储信息和发送信息的功能。但通过编程以及与,ALU,的配合可以实现多种功能,如它们可为,ALU,提供操作数并存放运算结果,也可用作变址寄存器、地址指针和计数器等。,器,暂存,在,CPU,中一般要设置暂存器,主要是为了暂存从主存储器读出的数据,暂存器没有寄存器号,因此不能直接编程访问它们。,寄存器,IR(,I,nstruction,R,egister),指令,用来存放当前正在执行的一条指令。,执行指令时,需根据,PC,中的指令地址从主存读取指令送到,IR,中。,。,计数器,PC(,P,rogram,C,ounter),程序,用以存放当前或下一条,指令,在主存中的,地址,,因此又称为指令计数器或指令指针,IP(Instruction Pointer)。,寄存器,状态,CPU,内部设置的状态寄存器,用来存放当前程序的,运行状态,和,工作方式,,其内容称为程序状态字,PSW(Program State Word),PSW,是参与控制程序执行的重要依据。,2,总线,所谓总线是一组能为多个部件,分时共享,的公共信息传送线路,它分时接收各部件送来的信息,并发送信息到有关部件。,由于多个部件连接在一组公共总线上,可能会出现多个部件,争用,总线,因此需设置总线控制逻辑以解决总线控制权的有关问题。,CPU,内部总线,用来连接,CPU,内的各寄存器与,ALU,;,总线分类,:,系统总线,用来连接,CPU、,主存储器与,I/O,接口,它通常包括三组:,数据,总线、,地址,总线和,控制,总线。,按总线传送的方向可将总线分为,单向,总线和,双向,总线。,3,CPU,内部数据通路,CPU,内部寄存器及,ALU,之间通常用总线方式传送数据信息。,介绍两种常见的结构。,(1,),单总线,数据通路结构,采用单总线结构的,CPU,数据通路,CPU,数据通路结构只采用,一组内总线,,它是,双向,总线。通用寄存器组、其他寄存器和,ALU,均连在这组内总线上。,CPU,内各寄存器间的数据传送必须通过内总线进行,,ALU,通过内总线得到操作数,其运算结果也经内总线输出。,(2,)多组内总线结构,采用三总线结构的,CPU,数据通路,为了提高,CPU,的工作速度,一种方法是在,CPU,内部设置多组内总线,使几个数据传送操作能够同时进行,即实现部分并行操作。,3.1.2,指令执行过程,CPU,的主要功能就是,执行存放在存储器中的指令序列,,即程序。,1,指令的分段执行过程,任何一条指令的执行都要经过,读取,指令、,分析,指令和,执行,指令,3,个阶段。,执行阶段还可细分,为,:,(1,)取指令,(2,)分析指令,(3,)执行指令,取操作数,执行操作,形成下一条指令地址,此外,,CPU,还应该对运行过程中出现的某些,异常情况,或,输入,/,输出请求,进行处理。,2,指令之间的衔接方式,指令之间的衔接方式有两种:,串行,的顺序安排方式与,并行,的重叠处理方式。,3.1.3,时序控制方式,执行一条指令的过程可分为几个阶段,而每一阶段又分为若干步基本操作,每一步操作则由控制器产生一些相应的控制信号实现。因此,每条指令都可分解为一个控制信号序列,指令的执行过程就是依次执行一个确定的,控制信号序列,的过程。,时序控制方式,就是指微操作与时序信号之间采取何种关系,它不仅直接决定时序信号的产生,也影响到控制器及其他部件的组成,以及指令的执行速度。,1,同步控制方式,同步控制方式是指各项操作由,统一,的时序信号进行同步控制。,同步控制的基本特征是将操作时间分为若干长度相同的,时钟周期,(也称为节拍),要求在一个或几个时钟周期内完成各个,微操作,。,在,CPU,内部通常是采用同步控制方式,。,同步控制方式的优点是时序关系简单,结构上易于集中,相应的设计和实现比较方便。,2,同步控制方式的多级时序系统,(1,)多级时序的概念,在同步控制方式中,通常将时序信号划分为几级(其中包括指令周期),称为多级时序。,机器周期,节拍,(,时钟周期,),时钟脉冲信号,(2,)多级时序信号之间的关系,三级时序信号之间的关系,(3,)时序系统的组成,时序系统框图,3.1.4,指令流水线,两段指令流水线,为获得进一步的加速,流水线可以分成更多的阶段。,取指令,计算操作数地址,译码指令,写操作数,取操作数,执行指令,指令流水线操作时序图,影响流水线性能主要有以下几个因素:,(,1,)若各个阶段不全是相等的时间,(,2,)流水线中的相关问题,(,3,)当遇到条件转移指令时,(,4,)当,I/O,设备有中断请求或机器有故障时,第二节 算术逻辑部件,ALU,和运算方法,算术逻辑部件,ALU,主要完成对二进制代码的定点,算术运算,和,逻辑运算,。,3.2.1,算术逻辑部件,ALU,算术逻辑部件,ALU,的硬件实现涉及三个问题:,(1,)如何构成一位二进制加法单元,即全加器。,(,2),n,位全加器连同进位信号传送逻辑,构成一个,n,位并行加法器。,(,3,)以加法器为核心,通过输入选择逻辑扩展为具有多种算术和逻辑运算功能的,ALU。,1,全加器,用半加器构成的全加器,和,进位,目前,广泛采用半加器构成全加器。,通常逻辑门电路都存在延迟时间,全加器电路就是一个延迟部件,正是这个延迟特性将影响全加器的速度。,2,并行加法器与进位链结构,用,n,位全加器实现两个,n,位操作数各位同时相加,这种加法器称为并行加法器。并行加法器中全加器的位数与操作数的位数相同。,(1,)基本进位公式,设相加的两个,n,位操作数为,:,进位信号的逻辑式,可以看出,C,由两部分组成:,我们定义两个辅助函数:,进位产生函数,进位传递函数,因此有:,(2,)并行加法器的串行进位,采用串行进位的并行加法器,是将,n,个全加器串接起来,就可进行两个,n,位数相加。,由于串行进位的延迟时间较长,所以在,ALU,中很少采用纯串行进位的方式。但这种方式可节省器件,成本低,在分组进位方式中局部采用有时也是可取的。,3,并行进位(先行进位、同时进位),为了提高并行加法器的运算速度,就必须解决进位传递的问题。方法是让各级进位信号同时形成,而不是串行形成。,这种同时形成各位进位的方法称为,并行进位,或,先行进位,,又称为,同时进位,。,虽然并行进位加法器的运算速度快,但这是以增加硬件逻辑线路为代价的。两种常用的,分组进位,结构是:,组内并行、组间串行的进位链。,组内并行、组间并行的进位链。,4,ALU,举例,SN74181,框图,(1),SN74181,外,特性,SN74181,的一位单元,(2),SN74181,内部结构,S,3,S,2,X,i,S,1,S,0,Y,i,0 0,1,0 0,A,i,0 1,A,i,+,0 1,A,i,B,i,1 0,A,i,+B,i,1 0,A,i,1 1,A,i,1 1,0,表,3-1,一位,ALU,单元的输入选择逻辑,工作方式选择,S,3,S,2,S,1,S,0,逻辑运算,M=1,算术运算,M=0,工作方式选择,S,3,S,2,S,1,S,0,逻辑运算,M=1,算术运算,M=0,0000,A,减,1,1000,A,加(,A+B,),0001,AB,减,1,1001,A,加,B,0010,+B,A,减,1,1010,B,AB,加(,A+B,),0011,逻辑,1,全,1,1011,A+B,A+B,0100,A,加(,A+B,),1100,逻辑,0,全,0,0101,AB,加(,A+B,),1101,AB,加,A,0110,A,加B,1110,AB,AB,加,A,0111,A+B,1111,A,A,(,3),SN74181,功能表,(,4)用,SN74181,构成16位并行进位,ALU,3.2.2,定点数运算方法,数值运算的核心是指加、减、乘、除四则算术。由于计算机中的数有定点和浮点两种表示形式,因此相应有,定点数,的运算和,浮点数,的运算。,1,定点加减运算,(1,)原码加减运算,例如,加法指令指示做(,+,A)+(-B),,由于一个操作数为负,实际操作是做减法(,+,A)-(+B),,结果符号与绝对值大的符号相同。同理,在减法指令中指示做(,+,A)-(-B),,实际操作是做加法(,+,A)+(+B),,结果与被减数符号相同。,(2,)补码加减运算,补码加法运算,X,+,Y,=,X,+,Y,补码减法运算,X,Y,=,X,+(-,Y,)=,X,+-,Y,补码运算规则 根据以上讨论,可将补码加减规则归纳,如下:,参加运算的操作数用补码表示。,符号位参加运算。,若指令操作码为加,则两数直接相加;若操作码为减,则将减数连同符号位一起变反加,1,后再与被减数相加。,运算结果用补码表示。,【例3-3】,X,=00110110,,Y,=11001101,求,X,+,Y,,,X,-,Y,。,(3,)溢出判别,在什么情况下可能产生溢出,?,例:设定点整数字长8位,补码表示(最高位为符号位),表示范围为-128,127,运算结果超出此范围就发生溢出。,0 0011111,0 0001101,(1)31+13=44,0 0101100,(2)-31 +(-12)=-43,0 1111111,0 1000001,(3)63+66=129,1 0000001,1 1000001,1 0111110,(4)-63+(-66)=-129,0 1111111,正溢,负溢,1,1100001,1,1110100,1,1010101,采用一个符号位判断,溢出,=,S+A B,采用最高有效位的进位判断,溢出,=,C +C =C C,采用变形补码判断,(,双符号位,),用,S 、,S,n,分别表示结果最高符号位和第,2,符号位,溢出,=,S S,2,移位,移位操作按移位性质可分为,3,种类型:,逻辑移位,、,循环移位,和,算术移位,。,移位示意图,3,定点数乘除运算,(1,)无符号整数一位乘法,计算机中的乘法运算采用的方
展开阅读全文