计算机组成原理第12讲_微操作_第1页
计算机组成原理第12讲_微操作_第2页
计算机组成原理第12讲_微操作_第3页
计算机组成原理第12讲_微操作_第4页
计算机组成原理第12讲_微操作_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机组成原理Principles of Computer Organization广义双语教学课程09/skyclass25/青岛理工大学 校级精品课程http:/ 中央处理器中央处理器Chapter 6 Central Processing UnitDeveloping new, high-end CPUs is a very costly proposition. Both the logical complexity (needing very large logic design and logic verification teams and s

2、imulation farms with perhaps thousands of computers) and the high operating frequencies (needing large circuit design teams and access to the state-of-the-art fabrication process) account for the high cost of design for this type of chip. (2)盛建伦3中央处理器的组成中央处理器的组成 CPU的基本组成包括:运算部件、寄存器、总线、时序系的基本组成包括:运算部

3、件、寄存器、总线、时序系统、指令译码器统、指令译码器ID和微操作命令产生部件等。和微操作命令产生部件等。2指令部件指令部件 指令译码器指令译码器(Instruction Decoder)的功能是对指令寄存器中功能是对指令寄存器中的指令指令的操作码进行分析操作码进行分析(译码译码),决定应该执行决定应该执行的基本操作基本操作。1运算部件运算部件 ALU; 定点乘法、除法部件;定点乘法、除法部件; 浮点部件。浮点部件。 指令部件指令部件的主要任务任务是完成取指令完成取指令和分析指令分析指令。包括:程序程序计数器计数器、指令寄存器指令寄存器、指令译码器指令译码器ID和地址形成部件地址形成部件。地址形

4、成部件根据操作数地址形成部件根据操作数的寻址方式形成操作数寻址方式形成操作数的有效地址有效地址。盛建伦43寄存器寄存器CPU中的寄存器可分为通用寄存器通用寄存器和专用寄存器专用寄存器两大类。 通用寄存器通用寄存器 General-purpose Register 通用寄存器通用寄存器主要用于存放参与运算存放参与运算的数据数据和运算结果,运算结果,有的还可以作为变址寄存器、计数器、地址指针变址寄存器、计数器、地址指针等。 CISC机的CPU通常设有几个或十几个通用寄存器,RISC机的CPU则可能有多达上百个通用寄存器。在CPU中设置众多的通用寄存器的目的主要是为了减少计算过程中的访存次数。 通用

5、寄存器组通用寄存器组是程序可访问程序可访问的。其中,最重要最重要的是累加寄存器累加寄存器Accumulator。CPU内通用寄存器内通用寄存器的位数位数取决于机器字长,机器字长,与ALU的位数相同。位数相同。 此外,在此外,在CPU中中可能还有几个暂存器几个暂存器,一般在ALU入口入口,主要用于暂时保存暂时保存ALU运算所需要运算所需要的两个操作数之一两个操作数之一。暂存器暂存器对程程序员序员是透明的透明的transparent (用户不可见的)。盛建伦5 CPU至少包含至少包含以下5个专用寄存器:程序计数器PC,指令寄存器IR,存储器数据寄存器MDR,存储器地址寄存器MAR,程序状态字寄存器

6、PSWR。 专用寄存器专用寄存器 程序计数器程序计数器PC (Program Counter) 程序计数器程序计数器是用来存放要取存放要取的下一条指令下一条指令在主存储器的地址存储器的地址的,有自动加有自动加1功能。程序计数器功能。程序计数器的位数位数取决于CPU能够访问能够访问的程序程序存储空间存储空间的大小大小,一般与地址总线地址总线的线数相同线数相同。 当程序当程序是顺序执行顺序执行时,每取一个指令字,程序计数器,每取一个指令字,程序计数器PC自动自动加加1,形成下一条指令,形成下一条指令的地址。地址。当程序发生转移程序发生转移时,用转移目标转移目标地址取代地址取代PC原来原来的值作为下

7、一条指令值作为下一条指令的地址。地址。盛建伦6专用寄存器 指令寄存器指令寄存器IR (Instruction Register) 指令寄存器指令寄存器IR是用来存放是用来存放(从存储器取来)当前正在执行的当前正在执行的指令的。指令寄存器的位数取决于指令字长。指令的。指令寄存器的位数取决于指令字长。 程序状态字寄存器程序状态字寄存器PSWR (Program State Word Register) 程序状态字寄存器程序状态字寄存器(或称为状态标志寄存器状态标志寄存器F/条件码寄存器条件码寄存器)用于存放程序状态字用于存放程序状态字 Program State Word 。 程序状态字的每个位表

8、示程序或机器运行的某个状态,包括程序状态字的每个位表示程序或机器运行的某个状态,包括执行算术运算、逻辑运算、移位操作指令后的状态,以及一些控执行算术运算、逻辑运算、移位操作指令后的状态,以及一些控制标志制标志(中断、陷阱等)。盛建伦7 存储器地址寄存器的内容是存储器地址寄存器的内容是CPU访存时要读访存时要读/写的存储单元的写的存储单元的地址地址。存储器地址寄存器存储器地址寄存器MAR的位数取决于的位数取决于CPU(读写数据时读写数据时)能够访问的存储空间的大小能够访问的存储空间的大小,一般与地址总线的线数相同一般与地址总线的线数相同。 存储器数据寄存器存储器数据寄存器MDR (Memory

9、Data Register) 存储器数据寄存器用于暂时保存从主存储器取来的一个数据存储器数据寄存器用于暂时保存从主存储器取来的一个数据字或即将写入主存储器的一个数据字。存储器数据寄存器字或即将写入主存储器的一个数据字。存储器数据寄存器MDR的的位数取决于数据总线的宽度。位数取决于数据总线的宽度。 存储器地址寄存器存储器地址寄存器MAR (Memory Address Register) 此外,此外,CPU中可能还有其他一些专用寄存器:中断向量寄存中可能还有其他一些专用寄存器:中断向量寄存器器Interrupt Vector Register 、堆栈指针堆栈指针Stack Pointer等。等。

10、专用寄存器盛建伦8 处理机通过系统总线与主存储器和计算机系统内的其他部件处理机通过系统总线与主存储器和计算机系统内的其他部件进行信息传送。进行信息传送。系统总线通常包括系统总线通常包括:地址总线地址总线,数据总线数据总线,控制总线控制总线。计算机的字长与数据总线的宽度不一定相同。计算机的字长与数据总线的宽度不一定相同。 总线是由多个设备共享的传送信息的一簇公共的信号线及总线是由多个设备共享的传送信息的一簇公共的信号线及相关逻辑。相关逻辑。4总线总线 Bus 处理机内部总线处理机内部总线用于处理机内部用于处理机内部各个部件之间部件之间的信息传送信息传送。 系统总线系统总线单总线单总线双总线双总线

11、三总线三总线盛建伦9 脉冲源产生一定频率的脉冲信号作为机器的时钟脉冲。由时脉冲源产生一定频率的脉冲信号作为机器的时钟脉冲。由时序电路产生周期、节拍、工作脉冲等时序信号。序电路产生周期、节拍、工作脉冲等时序信号。6微操作控制信号形成部件(控制单元微操作控制信号形成部件(控制单元CU)根据指令分析指令分析的结果和时序信号时序信号,产生相应产生相应的微操作控制信号微操作控制信号。5时序系统时序系统包括:脉冲源、启停线路、时序信号形成部件等。包括:脉冲源、启停线路、时序信号形成部件等。 CPU的各种操作需要严格的定时控制的各种操作需要严格的定时控制。为了保证指令及各个为了保证指令及各个微操作的执行按正

12、确顺序完成微操作的执行按正确顺序完成,需要相应的控制指令周期需要相应的控制指令周期、机器机器周期的周期信号周期的周期信号、节拍电位节拍电位、节拍脉冲等节拍脉冲等。 微操作命令序列的形成方法有组合逻辑(硬布线)和微程序微操作命令序列的形成方法有组合逻辑(硬布线)和微程序两大类。两大类。 根据微操作控制信号的形成方法,控制器可分为:微程序控根据微操作控制信号的形成方法,控制器可分为:微程序控制器,硬布线(组合逻辑)控制器两大类。制器,硬布线(组合逻辑)控制器两大类。盛建伦10微操作命令的分析微操作命令的分析 一条一条指令的运行过程可以分为指令的运行过程可以分为3个阶段:取指令阶段、分个阶段:取指令

13、阶段、分析取数阶段、执行阶段。析取数阶段、执行阶段。1. 取指令阶段取指令阶段 Fetch the Instruction 把指令从主存储器中取出来并送到指令寄存器中去。把指令从主存储器中取出来并送到指令寄存器中去。 把程序计数器把程序计数器PC的内容的内容(直接或通过MAR)送到地址总送到地址总线上。线上。 由控制单元经控制总线向存储器发出读命令。由控制单元经控制总线向存储器发出读命令。 等待一段时间后等待一段时间后,从主存储器中读出的指令出现在数据总从主存储器中读出的指令出现在数据总线上线上,从数据总线将取出的指令读入从数据总线将取出的指令读入(可以暂时放在MDR)。 把指令送到把指令送到

14、CPU的指令寄存器的指令寄存器IR。 程序计数器程序计数器PC加加1,为取下一条指令做好准备。,为取下一条指令做好准备。盛建伦112分析取数阶段分析取数阶段 从存储器取来的指令一进入指令寄存器,指令译码器就开始从存储器取来的指令一进入指令寄存器,指令译码器就开始对指令操作码译码,并根据寻址方式形成操作数有效地址。对指令操作码译码,并根据寻址方式形成操作数有效地址。 对于不同的寻址方式有不同的寻址操作。如果操作数在主存对于不同的寻址方式有不同的寻址操作。如果操作数在主存储器,还需要访问主存取数。储器,还需要访问主存取数。 访问存储器取操作数时,首先把主存地址寄存器访问存储器取操作数时,首先把主存

15、地址寄存器MAR的内容的内容送到地址总线,接着发出存储器读命令。等待一段时间后,从数送到地址总线,接着发出存储器读命令。等待一段时间后,从数据总线将从存储器读出的数据读入据总线将从存储器读出的数据读入CPU并送到并送到CPU的数据寄存器数据寄存器MDR。 任何一条指令的执行都是从取指令操作开始,所以,取指令任何一条指令的执行都是从取指令操作开始,所以,取指令操作称为公共操作。操作称为公共操作。盛建伦123执行阶段执行阶段 Execute 在执行阶段完成指令规定的运算操作并将结果送入指定的地在执行阶段完成指令规定的运算操作并将结果送入指定的地方方(寄存器、主存单元、I/O端口)。 把数据写到存储

16、器时,首先把主存地址寄存器把数据写到存储器时,首先把主存地址寄存器MAR的内容送的内容送到地址总线,数据寄存器到地址总线,数据寄存器MDR的内容送到数据总线,接着发出存的内容送到数据总线,接着发出存储器写命令,等待一段时间后存储器写周期结束。储器写命令,等待一段时间后存储器写周期结束。如果运算结果要写入主存储器,还需要做存储器写操作。如果运算结果要写入主存储器,还需要做存储器写操作。 在指令的执行阶段执行阶段发出什么操作控制信号操作控制信号(微命令微命令)与指令指令功能功能、寻址方式寻址方式和CPU内数据传送数据传送的通路通路等有关。程序计数器PCOP地址码指令寄存器指令译码器ID微操作控制信

17、号形成部件脉 冲源启停线路时 序信 号产 生部件运算器ALU通用寄存器组状态寄存器数据寄存器MDR地址寄存器MARCLK+1ResetReset中断机构DBABCB主存储器I/O指令数据操 作 数地址指令地址转移地址形 式地址总线控制控制器的基本组成框图14取指令周期取指令周期 Fetching Cycle取指令的过程可归纳为以下几个操作:取指令的过程可归纳为以下几个操作: 现行指令地址送到存储器地址寄存器,现行指令地址送到存储器地址寄存器,并送上过地址总线 向主存储器发出读命令,启动主存作读操作,向主存储器发出读命令,启动主存作读操作, 将将MAR(通过地址总线)所指的主存单元中的内容所指的

18、主存单元中的内容 (指令)经数据总线读入经数据总线读入MDR, 把指令送到指令寄存器把指令送到指令寄存器IR。 形成下一条指令的地址形成下一条指令的地址,记作 PCMAR记作 1R记作 M(MAR) MDR记作 MDR IR 记作 (PC)+1 PC间指周期间指周期间指周期完成取操作数有效地址的任务, 操作如下: 将指令的地址码部分送到存储器地址寄存器,将指令的地址码部分送到存储器地址寄存器, 向主存储器发出读命令向主存储器发出读命令R,启动主存的读操作,启动主存的读操作, 将将MAR(通过地址总线)所指的主存单元中的内容所指的主存单元中的内容(有效地址)经数据总线读入经数据总线读入MDR,

19、把操作数有效地址送到存储器地址寄存器存储器地址寄存器,记作 Ad(IR) MAR记作 1R记作 M(MAR) MDR记作 MDR MAR盛建伦16 除间指周期外,其它一些寻址方式如果操作数在主存储器,除间指周期外,其它一些寻址方式如果操作数在主存储器,在形成操作数有效地址(并送到存储器地址寄存器中)后,也需在形成操作数有效地址(并送到存储器地址寄存器中)后,也需要访问主存取数。操作如下:要访问主存取数。操作如下: 向主存储器发出读命令向主存储器发出读命令R,启动主存作读操作,启动主存作读操作, 记作 1R 将将MAR(通过地址总线通过地址总线)所指的主存单元中的内容所指的主存单元中的内容(数据

20、)经数据总线读入经数据总线读入MDR,记作 M(MAR) MDR盛建伦17 不同指令在执行周期的微操作是不同的不同指令在执行周期的微操作是不同的,下面分下面分“非访存指非访存指令令”,“访存指令访存指令”,“转移类指令转移类指令”讨论讨论:执行周期执行周期 Execution Cycle1非访存指令非访存指令(1)清除累加器指令)清除累加器指令CLA该指令完成累加器清零的操作,该指令完成累加器清零的操作,记作 0ACC(2)累加器取反指令)累加器取反指令COM该指令完成累加器内容取反的操作,该指令完成累加器内容取反的操作,记作ACCACC (3)累加器加)累加器加1指令指令INC该指令完成累加

21、器内容加该指令完成累加器内容加1,结果送累加器的操作,结果送累加器的操作,记作 (ACC)+1ACC盛建伦18该指令完成累加器内容算术右移该指令完成累加器内容算术右移1位的操作,位的操作,记作R(ACC)ACC,ACC0ACC0(5)循环左移)循环左移1位指令位指令CSL该指令完成累加器内容循环左移该指令完成累加器内容循环左移1位的操作,位的操作,记作L(ACC)ACC,ACC0ACCn(6)停机指令)停机指令STP该指令将运行标志触发器该指令将运行标志触发器G置置0,记作 0G(4)算术右移)算术右移1位指令位指令SHR1非访存指令非访存指令盛建伦19(1)加法指令)加法指令ADD X 该指

22、令完成累加器内容与主存该指令完成累加器内容与主存X单元的内容相加,结果送累单元的内容相加,结果送累加器的操作,加器的操作,操作表达式(2)减法指令)减法指令SUB X2访存指令访存指令 该指令完成累加器内容与主存该指令完成累加器内容与主存X单元的内容相减,结果送累单元的内容相减,结果送累加器的操作,加器的操作,操作表达式(执行周期执行周期)(ACC)+ (MDR)ACC(ACC)(MDR)ACC(执行周期执行周期)M(MAR) MDR (存储器读周期)(存储器读周期)X MAR (形成操作数有效地址后)盛建伦20(4)取数指令)取数指令LDA X该指令将一主存单元的内容取到累加器中,该指令将一

23、主存单元的内容取到累加器中,操作表达式(5)存数指令)存数指令STA X该指令将累加器内容写入主存该指令将累加器内容写入主存X单元中,单元中,操作表达式2访存指令访存指令(MDR)ACC(执行周期)(执行周期)(ACC) MDR(3)与指令)与指令AND X 该指令完成累加器内容与一主存单元的内容相与,结果送累该指令完成累加器内容与一主存单元的内容相与,结果送累加器的操作,加器的操作,操作表达式(ACC) (MDR)ACC(执行周期执行周期)盛建伦213转移类指令转移类指令(1)无条件转移指令)无条件转移指令JMP X指令的地址码部分送指令的地址码部分送PC,操作表达式(2)条件转移指令)条件

24、转移指令 根据前面一条指令执行的结果根据前面一条指令执行的结果(对标志寄存器的影响对标志寄存器的影响)决决定是否转移。定是否转移。Ad (IR)PC进位进位转移指令转移指令JC X 如果进位标志如果进位标志C=1,则指令的地址码部分送,则指令的地址码部分送PC,否则顺序执,否则顺序执行。行。操作表达式PCPCCIRAdC)()(盛建伦22负负转移指令转移指令JN X如果标志如果标志N=1,则指令的地址码部分送则指令的地址码部分送PC,否则顺序执行否则顺序执行。操作表达式PCPCNIRAdN)()(进位转移指令JC X 如果进位标志C=1,则指令的地址码部分送PC,否则顺序执行。操作表达式PCP

25、CCIRAdC)()(零零转移指令转移指令JZ X如果标志如果标志Z=1,则指令的地址码部分送则指令的地址码部分送PC,否则顺序执行否则顺序执行。PCPCZIRAdZ)()(操作表达式(2)条件转移指令根据前面一条指令执行的结果(对标志寄存器的影响)决定是否转移 指令的执行过程可以进一步分解成一系列微操作。微操作指令的执行过程可以进一步分解成一系列微操作。微操作序列与机器内部的数据通路有关。序列与机器内部的数据通路有关。微操作控制信号举例微操作控制信号举例ALU指令译码器IRPCMARMDRR0RN-1YZ数据线地址线存储总线微命令微命令Microcommand是是微操作的控制信号微操作的控制

26、信号微操作微操作Microoperation是微命令微命令的操作过程操作过程,是执行部件接受微命令执行部件接受微命令后所进行所进行的最基本最基本的操作操作CPU内部内部总线总线例例1通用寄存器之间传送数据通用寄存器之间传送数据 要把寄存器要把寄存器R1的内容的内容传送到寄存器传送到寄存器R4,(R1)R4R1out,R4in 有效有效ALURiYZYinZinRiinRioutZoutALUinALU控制+-暂存器暂存器暂存器暂存器需要下列微命令:需要下列微命令:例例2ALU完成算术逻辑运算完成算术逻辑运算 要将寄存器要将寄存器R1的内容与寄的内容与寄存器存器R2的内容相加,结果送到的内容相加

27、,结果送到寄存器寄存器R3。记作:(记作:(R1)+(R2)R3微操作序列如下:微操作序列如下:第第1步步 (R1)YR1out,Yin 有效有效第第2步(步(R2)+(Y)ZR2out,ALUin,+,Zin 有效有效第第3步步 (Z)R3Zout,R3in 有效有效ALURiYZYinZinRiinRioutZoutALUinA L U控制+-MDRinPCout地址总线数据总线PCinAd(IR)outMDRoutMARinALURiYZYinZinRiinRioutZoutALUinALU控制+-PCMARMDR+1IRinIR(R1out,MARin 有效有效) M(MAR)MDR假

28、设,要访问的主存假设,要访问的主存单元的地址在单元的地址在R1中,中,从主存读入的字放到从主存读入的字放到R2中。中。例例3从主存储器读从主存储器读1个数据字个数据字主存单元的地址送到主存单元的地址送到MAR后,就打开三态门出现在地址线上后,就打开三态门出现在地址线上微操作如下:微操作如下: (R1)MAR 1R(MDR)R2(MDRout,R2in 有效)有效)MDRinPCout地址总线数据总线PCinAd(IR)outMDRoutMARinALURiYZYinZinRiinRioutZoutALUinALU控制+-PCMARMDR+1IRinIRMDRout,IRin 有效有效((R0)

29、)+(R1)(R0)一条指令的执行过程举例该指令实现如下操作:该指令实现如下操作:1加法指令加法指令 ADD R0,R1 (PC)MAR 1R (MDR)IR(1)取指周期)取指周期 M(MAR)MDR (PC)+1PCPCout,MARin 有效有效MDRinPCout地址总线数据总线PCinAd(IR)outMDRoutMARinALURiYZYinZinRiinRioutZoutALUinALU控制+-PCMARMDR+1IRinIRPC+1 有效有效(2)取数周期)取数周期 (R0)MAR 1R M(MAR)MDRYR0out,MARin 有效有效MDRout,Yin 有效有效MDRinPCout地址总线数据总线PCinAd(IR)outMDRoutMARinALURiYZYinZinRiinRioutZoutALUinALU控制+-PCMARMDR+1IRinIR((R0))+(R1)(R0)(3)执行周期)执行周期 (R1)+(Y)Z (Z)MDR假设假设MAR的内容没有改变,否则应同时有(的内容没有改变,否则应同时有(R0)MAR 1W Zout,MDRin 有效有效MDRinPCout地址总线数据总线PCinAd(IR)outMDRoutMARin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论