1、第5章 中央处理器2022年6月9日星期四2目录目录5.1 CPU的功能和组成的功能和组成掌握掌握5.2 指令周期指令周期掌握掌握5.3 时序产生器和控制方式时序产生器和控制方式了解了解5.4 微程序控制器微程序控制器掌握掌握5.5 硬连线控制器硬连线控制器了解了解5.6 流水流水CPU掌握掌握5.7 RISC CPU了解了解2022年6月9日星期四3考研大纲要求考研大纲要求(一)(一)CPU的功能和基本结构的功能和基本结构(二)指令执行过程(二)指令执行过程(三)数据通路的功能和基本结构(三)数据通路的功能和基本结构(四)控制器的功能和工作原理(四)控制器的功能和工作原理1.硬布线控制器硬布
2、线控制器2.微程序控制器微程序控制器微程序、微指令和微命令微程序、微指令和微命令微指令的编码方式;微地址的形成方式微指令的编码方式;微地址的形成方式(五)(五) 指令流水线指令流水线1.指令流水线的基本概念指令流水线的基本概念2.超标量和动态流水线的基本概念超标量和动态流水线的基本概念2022年6月9日星期四45.1 CPU的组成和功能的组成和功能l 5.1.1 CPU的功能的功能l 5.1.2 CPU的基本组成的基本组成l 5.1.3CPU中的主要寄存器中的主要寄存器l 5.1.4 操作控制器与时序产生器操作控制器与时序产生器2022年6月9日星期四55.1.1 CPU的功能的功能lCPU(
3、中央处理器)(中央处理器) 控制程序按设定方式执行;控制程序按设定方式执行;lCPU的主要功能:的主要功能: 指令控制指令控制u控制程序的执行顺序;控制程序的执行顺序; 操作控制操作控制u产生和发送各操作信号;产生和发送各操作信号; 时间控制时间控制u控制指令、或操作的实施时间;控制指令、或操作的实施时间; 数据加工数据加工u对数据进行算术逻辑运算;对数据进行算术逻辑运算;顺序寻址、跳跃寻址对指令操作码译码后产生控制信号维持各类操作的时序关系由ALU完成具体的运算2022年6月9日星期四65.1.2 CPU的基本组成的基本组成l现代的现代的CPU的组成的组成运算器、控制器运算器、控制器l控制器
4、的主要功能控制器的主要功能从内存中取出一条指令,并指出下条指令的存放位置;从内存中取出一条指令,并指出下条指令的存放位置;对指令进行译码,产生相应的操作控制信号;对指令进行译码,产生相应的操作控制信号;控制控制CPU、内存和输入、内存和输入/输出设备之间数据流动;输出设备之间数据流动;l运算器的主要功能:运算器的主要功能: 执行所有的算术运算;执行所有的算术运算;执行所有的逻辑运算,并进行逻辑测试。执行所有的逻辑运算,并进行逻辑测试。冯诺依曼机的定义、片内Cache;PC、IRALU、通用寄存器组、标志寄存器CU、时序电路、操作控制器2022年6月9日星期四7CPU模型图模型图运算器Cache
5、控制器2022年6月9日星期四85.1.3CPU中的主要寄存器(中的主要寄存器(1/3) 1. 数据缓冲寄存器(数据缓冲寄存器(DR) 暂时存放暂时存放CPU与外界传送的数据,可以是指令字或数据字。与外界传送的数据,可以是指令字或数据字。 作用作用 : 作为作为CPU和内存、外部设备之间信息传送的中转站;和内存、外部设备之间信息传送的中转站;补偿补偿CPU和内存、外围设备之间在操作速度上的差别;和内存、外围设备之间在操作速度上的差别;2. 通用寄存器通用寄存器 功能:暂时存放功能:暂时存放ALU运算的数据或结果。运算的数据或结果。 CPU中的通用寄存器可多达中的通用寄存器可多达16个,个,32
6、个,甚至更多。个,甚至更多。2022年6月9日星期四95.1.3CPU中的主要寄存器(中的主要寄存器(2/3) 3.状态条件寄存器(状态条件寄存器(PSW) 保存各种状态和条件控制信号;保存各种状态和条件控制信号;u 进位标志进位标志(C),溢出标志,溢出标志(V),零标志,零标志(Z),符号标志,符号标志(N) 每个信号由一个触发器保存,从而拼成一个寄存器。每个信号由一个触发器保存,从而拼成一个寄存器。4.地址寄存器(地址寄存器(AR) 保存当前保存当前CPU所访问数据的内存单元地址;所访问数据的内存单元地址; 主要用于解决主存主要用于解决主存/外设和外设和CPU之间的速度差异,使地址信之间
7、的速度差异,使地址信息可以保持到主存息可以保持到主存/外设的读写操作完成为止外设的读写操作完成为止 。2022年6月9日星期四105.1.3CPU中的主要寄存器(中的主要寄存器(3/3) 5.程序计数器(程序计数器(PC)始终存放下一条指令的地址,对应于指令始终存放下一条指令的地址,对应于指令Cache的访问;的访问;其内容变化分两种情况其内容变化分两种情况u顺序执行:顺序执行: PC+1PCu转移执行转移执行: (指令指令OPR)PC6.指令寄存器(指令寄存器(IR)保存当前正在执行的一条指令。保存当前正在执行的一条指令。指令寄存器中操作码字段的输出就是指令译码器的输入。指令寄存器中操作码字
8、段的输出就是指令译码器的输入。寄存功能计数功能2022年6月9日星期四115.1.4 操作控制器与时序产生器操作控制器与时序产生器 l数据通路数据通路 寄存器之间传送信息的通路。寄存器之间传送信息的通路。l操作控制器操作控制器 根据指令操作码和时序信号,产生各种操作控制信号;根据指令操作码和时序信号,产生各种操作控制信号; 建立正确建立正确的的数据通路,从而完成指令的执行。数据通路,从而完成指令的执行。l根据设计方法不同,操作控制器可分为根据设计方法不同,操作控制器可分为硬布线控制器硬布线控制器:采用时序逻辑技术实现;:采用时序逻辑技术实现;微程序控制器微程序控制器:采用存储逻辑实现;:采用存
9、储逻辑实现;前两种方式的结合前两种方式的结合;l时序产生器时序产生器 对各种操作实施时间的控制。对各种操作实施时间的控制。2022年6月9日星期四12数据通路的建立数据通路的建立增量写入读出写入读出写入读出锁存锁存写入读出写入读出运算类型读出写入2022年6月9日星期四135.2 指令周期指令周期l5.2.1 指令周期的基本概念指令周期的基本概念l5.2.2 MOV R0 , R1指令指令的的指令指令周期周期l5.2.3 LAD R1 , 6指令的指令周期指令的指令周期l5.2.4 ADD R1 , R2指令的指令周期指令的指令周期 l5.2.5 STO R2 , (R3)指令的指令周期指令的
10、指令周期 l5.2.6 JMP 101指令的指令周期指令的指令周期l5.2.7 用方框图语言表示指令周期用方框图语言表示指令周期2022年6月9日星期四145.2.1 指令周期的基本概念指令周期的基本概念 lCPU执行程序是一个执行程序是一个“取指令取指令执行指令执行指令”的循环过程。的循环过程。l指令周期指令周期 CPU从内存中从内存中取出取出一条指令,并一条指令,并执行执行的时间总和;的时间总和;lCPU周期周期 又称机器周期,一般为从内存读取一条指令字的最短时间;又称机器周期,一般为从内存读取一条指令字的最短时间; 一个一个CPU周期可以完成周期可以完成CPU的一个基本操作。的一个基本操
11、作。 l时钟周期时钟周期 也叫节拍脉冲或也叫节拍脉冲或T周期,是计算机处理操作的基本时间单位。周期,是计算机处理操作的基本时间单位。2022年6月9日星期四15关于指令周期关于指令周期l一个完整的指令周期由一个完整的指令周期由若干机若干机器周期器周期:取指周期取指周期间址周期间址周期执行周期执行周期中断周期中断周期l所有指令的所有指令的第一个机器周期必第一个机器周期必为取指周期为取指周期;l一个基本的一个基本的CPU周期包含周期包含4个时个时钟周期钟周期,对于某些,对于某些CPU周期可周期可以包含更多的时钟周期。以包含更多的时钟周期。l不同指令的指令周期所包含的不同指令的指令周期所包含的时钟周
12、期个数时钟周期个数不一定相同不一定相同。求操作数有效地址本教材上,间址周期和执行周期统称为执行周期!2022年6月9日星期四16一个简单的程序一个简单的程序地址 指令说明100程序执行前设置(R0)=00,(R1)=10;(R2)=20,(R3)=30101MOV R0 , R1传送指令MOV执行(R1)R0102LAD R1 , 6取数指令LAD从6号单元中取数100R1103ADD R1 , R2加法指令ADD执行(R1)+(R2)R2,结果为(R2)=120104STO R2 , (R3)存数指令STO用(R3)间接寻址,(R2)=120写入30号单元105JMP 101转移指令JMP改
13、变程序执行顺序,转到101号单元106AND R1 , R3逻辑与指令AND执行(R1) (R3) R3地址地址数据数据570610076610773040(120)2022年6月9日星期四175.2.2 MOV R0 , R1指令的指令周期指令的指令周期lMOV是一条是一条RR型指令,它需型指令,它需要两个要两个CPU 周期:周期:取指周期取指周期从存储器中取出指令;从存储器中取出指令;程序计数器程序计数器PC加加1;译码或测试指令操作码,译码或测试指令操作码,发出控制信号;发出控制信号;执行周期执行周期u在控制信号的作用下,在控制信号的作用下,将将R1中的数据经过中的数据经过ALU送入送入
14、R0;2022年6月9日星期四18MOV R0 , R1指令的执行过程演示指令的执行过程演示101MOV R0 , R1102MOV10动画演示2022年6月9日星期四19MOV R0 , R1指令周期中的控制信号指令周期中的控制信号1.取指周期取指周期 PCABUS指令指令Cache ,译码并启动;,译码并启动;指令指令Cache IR;PC PC+1,为取下条指令做好准备;,为取下条指令做好准备;IR中的操作码被译码或测试,中的操作码被译码或测试,CPU识别出是指令识别出是指令MOV。2.执行指令阶段执行指令阶段R1ALU,R1中数据通过中数据通过ALU传送;传送;ALU DBUS DRR
15、0;PC读指令Cache启动指令Cache读IR写PC增量R1读ALU传送控制ALU输出DR锁存R0写2022年6月9日星期四205.2.3 LAD R1 , 6指令的指令周期指令的指令周期lLAD指令是指令是RS型指令,型指令,需要访存获取操作数,共需要访存获取操作数,共包含三个包含三个CPU周期:周期:取值周期取值周期间址周期间址周期u从从IR的地址码字段获的地址码字段获取操作数地址;(或取操作数地址;(或者通过计算获得者通过计算获得EA)执行周期执行周期u访存获取操作数送入访存获取操作数送入通用寄存器通用寄存器R1;2022年6月9日星期四21LAD R1 , 6指令的执行过程演示指令的
16、执行过程演示102LAD R1,6103LAD6100动画演示2022年6月9日星期四22LAD R1 , 6指令周期中的控制信号指令周期中的控制信号1.LAD取指周期取指周期CPU动作与取动作与取MOV指令的取值周期中一样。指令的取值周期中一样。2.LAD指令的执行周期指令的执行周期IR DBUS AR;u该过程为寻址周期;该过程为寻址周期; ARABUS数据数据Cache ,译码并启动;,译码并启动;数据数据Cache DBUS DRR1;IR读AR锁存数据Cache启动数据Cache读DR锁存R1写2022年6月9日星期四235.2.4ADD R1 , R2指令的指令周期指令的指令周期
17、lADD指令的指令周期由两个指令的指令周期由两个CPU周期组成周期组成 。取指周期(略)取指周期(略)执行周期执行周期u从寄存器从寄存器R1、R2中取出数据,作为源操作数;中取出数据,作为源操作数;u将两数据送往将两数据送往ALU,并使,并使ALU进行加运算;进行加运算;u结果保存到结果保存到R1中。中。2022年6月9日星期四24ADD R1 , R2指令的执行过程演示指令的执行过程演示103ADD R1,R2104ADD10020120动画演示2022年6月9日星期四25ADD R1 , R2指令周期中的控制信号指令周期中的控制信号取指周期(略)取指周期(略)CPU动作与取动作与取MOV指
18、令的取值周期中一样。指令的取值周期中一样。执行周期执行周期R1、R2ALU;ALU做加运算,将两数相加;做加运算,将两数相加;ALUDBUSDRR1,保存结果;,保存结果;R1读R2读ALU加ALU输出DR锁存R1写2022年6月9日星期四265.2.5STO R2 , (R3)指令的指令周期指令的指令周期 lSTO指令是指令是RS型指令,需要型指令,需要3个个CPU周期。周期。取指周期(略)取指周期(略)间址周期间址周期u根据根据R3中的地址寻址所要访问的存储单元;中的地址寻址所要访问的存储单元;执行周期执行周期u将寄存器将寄存器R2中的数据送入指定的存储单元;中的数据送入指定的存储单元;2
19、022年6月9日星期四27STO R2 , (R3)指令的执行过程演示指令的执行过程演示104STO R2,(R3)105STO动画演示 30 120 2022年6月9日星期四28STO R2 , (R3)指令周期中的控制信号指令周期中的控制信号1. 取指周期(略)取指周期(略)2. 执行周期执行周期 R3DBUSAR,发出地址启动数据,发出地址启动数据Cache;u该过程为间址周期;该过程为间址周期; R2DBUS数据数据Cache;R3读AR锁存R2读数据Cache写2022年6月9日星期四295.2.6 JMP 101指令的指令周期指令的指令周期lJMP指令是一条无条件转移指令,用来改变
20、程序的指令是一条无条件转移指令,用来改变程序的执行顺序;执行顺序;lJMP指令的执行需要两个指令的执行需要两个CPU周期:周期:取指周期(略)取指周期(略)执行周期执行周期u使用使用JMP指令中的直接地址为指令中的直接地址为PC赋值;赋值;2022年6月9日星期四30JMP 101指令的执行过程演示指令的执行过程演示105JMP 101106JMP动画演示1012022年6月9日星期四31JMP 101指令指令周期中的控制信号周期中的控制信号1. 取指周期(略)取指周期(略)2. 执行周期执行周期 IRDBUSPC;IR读PC写2022年6月9日星期四325.2.7用方框图语言表示指令周期用方
21、框图语言表示指令周期l方框方框代表一个代表一个CPU周期;周期;方框中的内容表示数据通路的操作或某种控制操作。方框中的内容表示数据通路的操作或某种控制操作。 l菱形菱形通常用来表示某种判别或测试;通常用来表示某种判别或测试;时间上依附于之前一个方框的时间上依附于之前一个方框的CPU周期,而不单独占用一周期,而不单独占用一个个CPU周期;周期;l(公操作符号)(公操作符号)表示一条指令已经执行完毕,转入公操作。表示一条指令已经执行完毕,转入公操作。所谓公操作所谓公操作就是一条指令执行完毕后,就是一条指令执行完毕后,CPU所开始的一些所开始的一些操作,比如对外围设备请求的处理等。操作,比如对外围设
22、备请求的处理等。2022年6月9日星期四33P139 图图5.14方框图语言表示的指令周期方框图语言表示的指令周期 MOV R0 , R1 LAD R1 , 6 ADD R1 , R2 STO R2 , (R3) JMP 101 2022年6月9日星期四34课本课本P139 【例【例1】l图图5.15所示为双总线结构机器的数据通路,各构成部件如图,所示为双总线结构机器的数据通路,各构成部件如图,线上标注有小圈表示有控制信号,未标字符的线为直通线。线上标注有小圈表示有控制信号,未标字符的线为直通线。 “ADD R2,R0”指令完成指令完成(R0)+(R2)R0的功能操作,的功能操作,画出其指令周
23、期流程图,并列出相应的微操作控制信号序画出其指令周期流程图,并列出相应的微操作控制信号序列。列。 “SUB R1,R3”指令完成指令完成(R3)-(R1)R3的操作,画出其的操作,画出其指令期流程图,并列出相应的微操作控制信号序列。指令期流程图,并列出相应的微操作控制信号序列。2022年6月9日星期四35l 指令周期应包括指令周期应包括取指取指周期周期和和执行周期执行周期;l 执行周期中应首先将执行周期中应首先将R0、R2两寄存器的两寄存器的内容送入内容送入ALU的操作的操作数缓冲器中,再执行数缓冲器中,再执行加法运算;加法运算;(1) “ADD R2,R0” (R0)+(R2)R0(PC)A
24、R(M)DR(DR)IR译码(R2)Y(R0)X(R0)+(R2)R0取指周期执行周期PC0GARiR/W=1DR0GIRiR20GYiR00GXi+GR0i2022年6月9日星期四36指令指令ADD R2,R0的执行过程的执行过程指令地址指令R2R0和2022年6月9日星期四37l指令周期应包括指令周期应包括取指周取指周期期和和执行周期执行周期;l取指周期与取指周期与ADD指令指令完全相同;完全相同;l执行周期与执行周期与ADD指令指令不同之处在于不同之处在于ALU的的控制信号为控制信号为“”(2) “SUB R1,R3” (R3) (R1)R3(PC)AR(M)DR(DR)IR译码(R3)
25、Y(R1)X(R3)-(R1)R3取指周期执行周期PC0GARiR/W=1DR0GIRiR30GYiR10GXiGR3i2022年6月9日星期四38参考上例试写出下列指令的微操作序列参考上例试写出下列指令的微操作序列l指令指令STO R1,(R2)功能:功能:R1(R2),将,将R1的数据送入的数据送入R2指向的单元中;指向的单元中;l指令指令LAD (R3),R0功能:将功能:将R3指向单元中的数据送入指向单元中的数据送入R0中;中;l指令指令ADD R0,(R1)功能:将功能:将R1指向单元中的数据和指向单元中的数据和R0的内容相加,并将结果存的内容相加,并将结果存入入R0寄存器中。寄存器
26、中。l指令指令ADD (R1),R0功能:功能:(R0)+(R1)(R1),将,将R0中的数据与中的数据与R1指向单元中指向单元中的数据相加,并将结果送入的数据相加,并将结果送入R1指向的单元中;指向的单元中;2022年6月9日星期四39计算机的性能指标计算机的性能指标l主频主频/时钟周期时钟周期主时钟的频率主时钟的频率(f)叫叫CPU的主频的主频;主频的倒数称为主频的倒数称为CPU时钟周期(时钟周期(T),),T=1/f。lCPI执行一条指令所需的平均时钟周期数。执行一条指令所需的平均时钟周期数。lMIPS每秒百万指令数,即单位时间内执行的指令数。每秒百万指令数,即单位时间内执行的指令数。2
27、022年6月9日星期四40【例【例1】某】某CPU的主频为的主频为8MHz,设每个,设每个CPU周期平周期平均包括均包括4个时钟周期,且该机平均指令执行速个时钟周期,且该机平均指令执行速度为度为1MIPS。 求该机平均指令周期。求该机平均指令周期。 平均指令周期平均指令周期 求每个指令周期包含的平均求每个指令周期包含的平均CPU周期。周期。 时钟周期时钟周期 一个一个CPU周期为周期为4个时钟周期,则个时钟周期,则40.125=0.5us; 故每个指令周期包含故每个指令周期包含1/0.5=2个平均个平均CPU周期。周期。1秒1百万条指令11061us1 8MHz0.125us2022年6月9日
28、星期四41【例【例2】 若某机主频为若某机主频为200MHz,每个指令周期,每个指令周期平均为平均为2.5个个CPU周期,每个周期,每个CPU周期周期平均包括平均包括2个主频周期。个主频周期。该机平均指令执行速度为多少该机平均指令执行速度为多少MIPS?执行一条指令的时间执行一条指令的时间 2.5 2时钟周期时钟周期 2.5 2平均指令执行速度平均指令执行速度1/平均指令周期平均指令周期若主频不变,但每条指令平均包括若主频不变,但每条指令平均包括5个个CPU周期,每个周期,每个CPU周周期又包含期又包含4个主频周期,平均指令执行速度为多少个主频周期,平均指令执行速度为多少MIPS?执行一条指令
29、的时间执行一条指令的时间5 4时钟周期时钟周期 5 4平均指令执行速度平均指令执行速度1/平均指令周期平均指令周期 1 200MHz40MIPS 1 200MHz10MIPS 1 40M 1 10M2022年6月9日星期四425.3 时序产生器和控制方式时序产生器和控制方式 l5.3.1 时序信号的作用和体制时序信号的作用和体制l5.3.2 时序信号产生器时序信号产生器l5.3.3 控制方式控制方式2022年6月9日星期四435.3.1 时序信号的作用和体制时序信号的作用和体制l时序信号的作用时序信号的作用使计算机准确、迅速、有条不紊地工作;使计算机准确、迅速、有条不紊地工作;lCPU通过时序
30、控制来识别指令和数据:通过时序控制来识别指令和数据:指令周期的第一个指令周期的第一个CPU周期周期取指周期取指周期;u从存储单元中取出的一定是指令,需要送往从存储单元中取出的一定是指令,需要送往IR指令寄存器;指令寄存器;指令周期的其他指令周期的其他CPU周期周期执行周期执行周期;u从存储单元中取出的一定是数据,需要送往运算器。从存储单元中取出的一定是数据,需要送往运算器。l时序信号的体制:时序信号的体制:电位电位脉冲制脉冲制脉冲到达之前,电平信号必须要稳定;脉冲到达之前,电平信号必须要稳定;CPU的时间表2022年6月9日星期四44控制器的时序信号控制器的时序信号l硬布线控制器的时序信号硬布
31、线控制器的时序信号常采用常采用主状态周期节拍电位节拍脉冲主状态周期节拍电位节拍脉冲三级体制。三级体制。l微程序控制器的时序信号微程序控制器的时序信号一般采用一般采用节拍电位节拍脉冲节拍电位节拍脉冲二级体制。二级体制。节拍脉冲节拍电位1主状态周期节拍电位2节拍电位可表示一个CPU周期主状态周期可包含若干个节拍电位,是最大的时间单位时钟周期2022年6月9日星期四455.3.2 时序信号产生器时序信号产生器l时序信号产生器:用逻辑电路实现时序的控制;时序信号产生器:用逻辑电路实现时序的控制;l微程序控制器中时序信号产生器的组成:微程序控制器中时序信号产生器的组成: P142图图5.17时钟源时钟源
32、提供稳定的基本方波时钟信号;提供稳定的基本方波时钟信号;环形脉冲发生器环形脉冲发生器产生一组有序的间隔相等或不等的脉冲序列;产生一组有序的间隔相等或不等的脉冲序列;节拍脉冲和读写时序译码逻辑节拍脉冲和读写时序译码逻辑 环形脉冲与节拍脉冲共同作用产生各控制信号的时序;环形脉冲与节拍脉冲共同作用产生各控制信号的时序;启停控制逻辑启停控制逻辑 2022年6月9日星期四465.3.3控制方式控制方式 l控制器的控制方式控制器的控制方式控制不同操作序列的时序信号的方法。控制不同操作序列的时序信号的方法。 l同步控制方式同步控制方式在任何情况下,已定的指令在执行时所需的机器周期数和时在任何情况下,已定的指
33、令在执行时所需的机器周期数和时钟周期数都固定不变。钟周期数都固定不变。 l异步控制方式异步控制方式每条指令、每个操作控制信号需要多少时间就占用多少时间。每条指令、每个操作控制信号需要多少时间就占用多少时间。 l联合控制方式联合控制方式大部分操作序列为固定的机器周期,对某些时间难以确定的大部分操作序列为固定的机器周期,对某些时间难以确定的操作则以执行部件的操作则以执行部件的“回答回答”信号作为本次操作的结束。信号作为本次操作的结束。机器周期的节拍脉冲数固定,但是各条指令周期的机器周期机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定。数不固定。2022年6月9日星期四475.4 微程序
34、控制器微程序控制器 l5.4.1 微程序控制原理微程序控制原理l5.4.2 微程序设计技术微程序设计技术2022年6月9日星期四485.4.1 微程序控制原理微程序控制原理l微程序设计技术是微程序设计技术是利用软件方法来设计硬件利用软件方法来设计硬件的一门技术。的一门技术。具有具有规整性、灵活性、可维护性规整性、灵活性、可维护性等一系列优点;等一系列优点;逐渐取代了早期的组合逻辑控制器,已被广泛地应用。逐渐取代了早期的组合逻辑控制器,已被广泛地应用。l基本思想基本思想仿照通常的解题程序的方法,仿照通常的解题程序的方法,把操作控制信号编成所谓的把操作控制信号编成所谓的“微指令微指令”,存放到一个
35、只读存储器里;,存放到一个只读存储器里;当机器运行时,一条一条地读出这些微指令,从而产生全当机器运行时,一条一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,使部件执行规定的操作。机所需要的各种操作控制信号,使部件执行规定的操作。2022年6月9日星期四491、微命令和微操作、微命令和微操作l控制部件与执行部件之间的联系控制部件与执行部件之间的联系控制部件向执行部件发出控制信号;控制部件向执行部件发出控制信号;执行部件向控制部件返回状态信息;执行部件向控制部件返回状态信息; l微命令微命令控制部件通过控制线向执行部件发出的各种控制命令;控制部件通过控制线向执行部件发出的各种控制命令;
36、l微操作微操作执行部件接受微命令后所执行的操作;执行部件接受微命令后所执行的操作;l状态测试状态测试执行部件通过反馈线向控制部件反映当前操作状态,以使执行部件通过反馈线向控制部件反映当前操作状态,以使控制部件决定下一步的微命令;控制部件决定下一步的微命令;控制线执行部件的最基本的操作2022年6月9日星期四50微操作的分类微操作的分类l相容性微操作相容性微操作在同时或同一个在同时或同一个CPU周期内可以并行执行的微周期内可以并行执行的微操作;操作;l相斥性微操作相斥性微操作不能在同时或不能在同一个不能在同时或不能在同一个CPU周期内并行执周期内并行执行的微操作。行的微操作。2022年6月9日星
37、期四51简单运算器数据通路简单运算器数据通路相斥性微操作相斥性微操作相斥性微操作相容性微操作2022年6月9日星期四522、微指令和微程序、微指令和微程序l微指令微指令一个一个CPU周期中,实现一定操作功能的一组微命令的组合。周期中,实现一定操作功能的一组微命令的组合。微指令微指令一般包含一般包含操作控制操作控制和和顺序控制顺序控制两大部分两大部分u操作控制:用于发出管理和指挥全机工作的控制信号;操作控制:用于发出管理和指挥全机工作的控制信号;u顺序控制:用于决定产生下一条微指令的地址;顺序控制:用于决定产生下一条微指令的地址;所有的微指令都存放于控制存储器中,使用所有的微指令都存放于控制存储
38、器中,使用地址地址访问;访问;l微程序微程序能实现一条机器指令功能的多条微指令序列;能实现一条机器指令功能的多条微指令序列;每条机器指令都对应着一段微程序;每条机器指令都对应着一段微程序;微地址2022年6月9日星期四53l顺序控制部分的顺序控制部分的P1、P2为判别测试标志;为判别测试标志;若为若为00,则顺序寻址微指令;,则顺序寻址微指令;若为若为01、10,则跳跃寻址微指令。,则跳跃寻址微指令。l直接地址直接地址2023位位顺序寻址时,直接地址即为下一条微指令地址;顺序寻址时,直接地址即为下一条微指令地址;跳跃寻址时,则要对直接地址修改,得到下条微指令地址;跳跃寻址时,则要对直接地址修改
39、,得到下条微指令地址;微指令基本格式微指令基本格式节拍脉冲信号节拍电位信号2022年6月9日星期四543、微程序控制器原理框图、微程序控制器原理框图l微程序控制器主要构成部件:微程序控制器主要构成部件: P147图图5.23控制存储器(控制存储器(CM)u存放实现全部指令系统的微指令;存放实现全部指令系统的微指令;u由只读存储器构成,要求速度快,读出周期短。由只读存储器构成,要求速度快,读出周期短。微指令寄存器微指令寄存器 存放由控制存储器读出的一条微指令信息;存放由控制存储器读出的一条微指令信息;u微地址寄存器:微地址寄存器:决定将要访问的下一条微指令的地址;决定将要访问的下一条微指令的地址
40、;u微命令寄存器微命令寄存器:保存一条微指令的操作控制字段和判别测试字:保存一条微指令的操作控制字段和判别测试字段的信息。段的信息。地址转移逻辑地址转移逻辑u用于跳跃寻址微指令时,承担自动完成修改微地址的任务。用于跳跃寻址微指令时,承担自动完成修改微地址的任务。2022年6月9日星期四55P147图图5.23 微程序控制器原理框图微程序控制器原理框图2022年6月9日星期四56微程序控制器的工作过程微程序控制器的工作过程l“取指微指令取指微指令”为所有指令的公用微指令;为所有指令的公用微指令;通常放在控制存储器中的通常放在控制存储器中的“0”地址单元地址单元;所有机器指令的所有机器指令的最后一
41、条微指令的直接地址最后一条微指令的直接地址都指向都指向0地址单地址单元,用以取下一条微指令。元,用以取下一条微指令。l取得机器指令后,取得机器指令后,经过经过P1测试测试,即操作码测试,产生对应的微,即操作码测试,产生对应的微程序入口地址,并送入微地址寄存器。程序入口地址,并送入微地址寄存器。l指令执行过程中,指令执行过程中,通过通过P2测试测试,修正下一条微指令的地址,逐,修正下一条微指令的地址,逐条读取微指令执行。条读取微指令执行。l执行完对应于一条机器指令的微程序后,返回到取指微指令,执行完对应于一条机器指令的微程序后,返回到取指微指令,不断重复,直至程序执行完毕。不断重复,直至程序执行
42、完毕。2022年6月9日星期四574、微程序举例、微程序举例l “十进制加法十进制加法”指令是用指令是用BCD码来完成十进制数的加法运算。码来完成十进制数的加法运算。当两数位相加小于等于当两数位相加小于等于9时,结果正确;时,结果正确;当两数位相加大于当两数位相加大于9时,必须对和数位进行加时,必须对和数位进行加6的修正。的修正。l例如:例如:3+4 = 0011 + 0100 = 0111= 78+7 = 1000 + 0111 = 111125+36 = 0010 0101 + 0011 0110 =0101 1011+ 0110 = 0001 0101= 15 = 0110 0001以“
43、十进制加法”指令为例+ 01102022年6月9日星期四58(R2) - (R3) R2十进制加法指令的微指令执行流程十进制加法指令的微指令执行流程l假定假定(R1)=a,(R2)=b,(R3)=6;l第一条微指令第一条微指令取指微指令取指微指令从内存中取出该指令,并修改从内存中取出该指令,并修改PC的值;的值;对操作码进行对操作码进行P1测试,确定下一条微指测试,确定下一条微指令的地址;令的地址;l第二条微指令第二条微指令两数相加微指令两数相加微指令l第三条微指令第三条微指令和数修正微指令和数修正微指令P2测试,根据进位标志决定下一条微指测试,根据进位标志决定下一条微指令的地址令的地址l第四
44、条微指令第四条微指令和数逆修正微指令和数逆修正微指令取指令P1测试(R1)+(R2) R2(R2)+(R3) R2P2测试Cy=1Cy=02022年6月9日星期四59十进制加法指令的微指令十进制加法指令的微指令l第一条微指令(取微指令)第一条微指令(取微指令)000 00 00 00 000 11111 10 0000l第二条微指令(两数相加)第二条微指令(两数相加)010 10 01 00 100 00000 00 1001l第三条微指令(和数加第三条微指令(和数加6)010 00 10 01 100 00000 01 0000l第四条微指令(和数减第四条微指令(和数减6)010 00 10
45、 01 001 00000 00 0000取微指令取微指令和数减和数减6和数加和数加6两数相加两数相加0000000110011010控制存储器LDARRDLDDRLDIRPC+1R1XR2Y+LDR2R2XR3Y+LDR2R2XR3YLDR22022年6月9日星期四605、CPU周期与微指令周期的关系周期与微指令周期的关系l微指令周期微指令周期读出微指令的时间加上执行该条微指令的时间;读出微指令的时间加上执行该条微指令的时间;串行方式的微程序控制器中的概念;串行方式的微程序控制器中的概念;l一般来讲,一个微指令周期时间设计得恰好和一般来讲,一个微指令周期时间设计得恰好和CPU周期时间相等。周
46、期时间相等。 2022年6月9日星期四61CPU周期与微指令周期关系的例子周期与微指令周期关系的例子lCPU周期为周期为0.8us,包括,包括4个节拍脉冲个节拍脉冲T1T4,每个脉冲,每个脉冲200ns;T1T3的的600ns为执行微指令的时间;为执行微指令的时间;T4的的200ns为取微指令的时间;为取微指令的时间;lT1的上升沿,将读出的微指令存入微指令寄存器;的上升沿,将读出的微指令存入微指令寄存器;lT4的上升沿保存微指令的执行结果,的上升沿保存微指令的执行结果,T4期间取微指令。期间取微指令。T1 T2 T3 T4 T1 T2 T3 T4T4T4执行微指令 微指令周期CPU周期CPU
47、周期 读微指令 2022年6月9日星期四626、机器指令与微指令的关系、机器指令与微指令的关系l一条机器指令对应一个微程序,一个微程序由若干条微指一条机器指令对应一个微程序,一个微程序由若干条微指令序列组成的;令序列组成的;一条机器指令所完成的操作划分成若干条微指令来完成,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。由微指令进行解释和执行。l从指令与微指令,程序与微程序,地址与微地址的一一对从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,应关系来看,前者与内存有关前者与内存有关,后者与控制存储器有关后者与控制存储器有关。l每一个每一个CPU周期对应一
48、条微指令。周期对应一条微指令。2022年6月9日星期四63【例】【例】 设某设某16位计算机运算器框图如下图位计算机运算器框图如下图(a)所示,其中所示,其中ALU为为16位的加法器位的加法器(高电平工作高电平工作),SA、SB为为16位暂存器。位暂存器。4个通用寄存器,其读、写控制功个通用寄存器,其读、写控制功能见下表。能见下表。 读控制读控制RRA0 RA1选中选中100R0101R1110R2111R30不读不读写控制写控制WWA0 WA1 选中选中100R0101R1110R2111R30不写不写2022年6月9日星期四64l 控制信号说明控制信号说明 RA0RA1 / WA0WA1
49、:读写通用寄存器时,选择所读写的寄存器;:读写通用寄存器时,选择所读写的寄存器; R / W:寄存器读:寄存器读 / 写命令;写命令; LDSA / LDSB :将数据打入:将数据打入SA / SB的控制信号;的控制信号; SB ALU:将:将SB中数据送入中数据送入ALU的控制信号;的控制信号; ALU:传送:传送SB的控制信号,并使加法器最低位加的控制信号,并使加法器最低位加1; Reset:清暂存器:清暂存器SB为零的信号;为零的信号; :一段微程序结束,转入取机器指令的控制信号;:一段微程序结束,转入取机器指令的控制信号;l 要求:用二进制代码写出如下指令的微程序:要求:用二进制代码写
50、出如下指令的微程序: “ADD R0,R1”指令,即指令,即(R0)+(R1)R1 “SUB R2,R3”指令,即指令,即(R3)-(R2)R3 “MOV R2,R3”指令,即指令,即(R2)(R3)【例】微指令【例】微指令字长字长12位,微指令格式如下所示(未位,微指令格式如下所示(未考虑顺序控制字段)。考虑顺序控制字段)。WA1RA1RA0WA0R WLDSALDSBSBALUSBALUReset SB2022年6月9日星期四65【例】解答【例】解答l三条指令的微指令的微程序流程图三条指令的微指令的微程序流程图l三条指令的微程序代码如下表:三条指令的微程序代码如下表:未考虑未考虑“取指周期