2020年计算机考研进入冲刺阶段,下面新东方在线为您整理了2020考研:计算机组成原理章节考点(6),希望对大家有帮助!
2.控制器的组成
根据对控制器功能分析,得出控制器的基本组成如下:
1).程序计数器(PC)
即指令地址寄存器.在某些计算机中用来存放当前正在执行的指令地址;而在另一些计算机中则用来存放即将要执行的下一条指令地址;而在有指令预取功能的计算机中,一般还需要增加一个程序计数器用来存放下一条要取出的指令地址.
有两种途径来形成指令地址,其一是顺序执行的情况,通过程序计数器加“1”形成下一条指令地址(如存储器按字节编址,而指令长度为4个字节,则加“4”).其二是遇到需要改变顺序执行程序的情况,一般由转移类指令形成转移地址送往程序计数器,作为下一条指令的地址.
2).指令寄存器(IR)
用以存放当前正在执行的指令,以便在指令执行过程中,控制完成一条指令的全部功能.
3).指令译码器或操作码译码器
对指令寄存器中的操作码进行分析解释,产生相应的控制信号.
在执行指令过程中,需要形成有一定时序关系的操作控制信号序列,为此还需要下述组成部分.
4).脉冲源及启停线路
脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲,是机器周期和工作脉冲的基准信号,在机器刚加电时,还应产生一个总清信号(reset).启停线路保证可靠地送出或封锁时钟脉冲,控制时序信号的发生或停止,从而启动机器工作或使之停机.
5).时序控制信号形成部件
当机器启动后,在CLK时钟作用下,根据当前正在执行的指令的需要,产生相应的时序控制信号,并根据被控功能部件的反馈信号调整时序控制信号.例如,当执行加法指令时,若产生运算溢出的异常情况,一般不再执行将结果送入目的寄存器(或存储单元)的操作,而发出中断请求信号,转入中断处理;又如执行条件转移指令时,根据不同的条件产生不同的控制信号,从而进入适当的程序分支.
(二)指令执行过程
1.指令执行的时序
执行指令1执行指令2执行指令3执行指令4执行指令5
因此,每条指令的执行过程如下:
取指周期执行周期1执行周期2执行周期3执行周期4
第一个机器周期总是取指周期,而指令的地址总是从PC中获得,当发出读取存储器命令后,指令总是从数据总线DB送回,CPU接受到指令之后,将指令放在指令寄存器IR之中.指令在IR中一直保留到取下一条指令为止.
第二个机器周期开始,根据指令有所不同:
执行一次ALU运算:分配一个机器周期.
执行访问一次存储器:分配一个机器周期.
所以,根据指令执行的不同情况,将会得到不同指令执行所占用的机器周期.
根据每个机器周期完成的任务不同,我们将每个机器周期按照任务命名.如同用取指周期命名第一个机器周期一样.
2.指令执行过程举例
假设指令格式如下:
操作码rs,rdrs1imm(Disp)
rs,rd,rsl为通用寄存器地址;imm(或disp)为立即数(或位移量).
加法指令功能:将寄存器(rs)中的一个数与存储器中的一个数(其地址为(rsl)+disp)相加,结果放在寄存器rd中,rs与rd为同一寄存器.
加法指令完成以下操作:
①取指周期
从存储器取指令,送入指令寄存器,并进行操作码译码(分析指令).
程序计数器加1,为下一条指令作好准备.
控制器发出的控制信号:PC→AB,W/R=0,M/IO=1;DB→IR;PC+1.
②计算地址周期
计算数据地址,将计算得到的有效地址送地址寄存器AR.
控制器发出的控制信号:rsl→GR,(rsl)→ALU,disp→ALU(将rsl的内容与disp送ALU);“+”(加法命令送ALU);ALU→AR(有效地址送地址寄存器).
③取数周期
到存储器取数.
控制器发出的控制信号:AR→AB,W/R=0,M/IO=1;DB→DR(将地址寄存器内容送地址总线,同时发访存读命令,存储器读出数据送数据总线后,打入数据寄存器).
④执行周期
进行加法运算,结果送寄存器,并根据运算结果置状态位N,Z,V,C.
控制器送出的控制信号:rs,rd→GR,(rs)→ALU,DR→ALU(两个源操作数送ALU);
ALU→rd(运算结果送寄存器rd)
(三)数据通路的功能和基本结构
CPU的数据通路是连接CPU内部各个部件以及和CPU外部个部件之间的数据和控制信号的连接关系图.
数据通路的基本结构:
(四)控制器的功能和工作原理
1.硬布线控制器
控制器控制信号的产生是采用逻辑电路,也称组合逻辑电路控制方式.“时序控制信号形成部件”是由硬逻辑布线完成的.实际设计中,需要几十~几百条指令,确定每条指令所需的机器周期,将情况相同的指令归并在一起,列出表达式,画出逻辑图.
(1)时序与节拍
每一步由一个机器周期来完成,假设采用4个机器周期,总之,需要4个不同的信号输出,代表4个不同的周期.
(2)操作码译码器
指令的操作码部分指出本指令将执行什么指令,如加法,减法等.对于不同的指令,采用不同的代码表示.
(3)操作控制信号的产生
以加法指令为例,加法指令的完成是由4个机器周期cy1,cy2,cy3,cy4组成,分别是取指,计算地址,取数,计算4个机器周期.
将所有的机器周期的操作控制信号的逻辑表达式全部写出来,就会得到各个操作控制信号的所有表达式,再将这些表达式安每个操作控制信号组合起来,就得到某个操作控制信号的表达式.
取指周期需要产生的操作控制信号如下:
PC→AB=cy1;将PC送地址总线
ADS=cy1·T1;存储器地质有效
M/IO=cy1;存储器操作
W/R=cy1;读操作
DB→IR=cy1;将读出的结果送IR
PC+1=cy1;将程序计数器加1
计算地址周期cy2需要完成有效地址((rs1)+Disp)的计算.产生的操作控制信号如下:
rs1→GR=加法指令·cy2;送通用寄存器地址
(rs1)→ALU=加法指令·cy2;通用寄存器送ALU
Disp→ALU=加法指令·cy2;偏移量送ALU
“+”=加法指令·cy2;ALU执行加法操作
ALU→AR=加法指令·cy2;运算结果送地址总线
例如,“+”操作控制信号在加法指令的cy2(计算有效地址)和cy4(操作数相加)时需要;减法指令的cy2(计算有效地址)时需要;转移指令的cy2(计算有效地址)时需要;….
所以,“+”操作控制信号的逻辑表达式如下:
“+”=加法指令·(cy2+cy4)+减法指令·cy2+转移指令·cy2+…
设机器有7位操作码(OP0~OP6),假设加法指令的操作码为0001100,形成的加法指令信号的逻辑表达式为:
加法指令=OP0OP1OP2OP3OP4OP5OP6
如,某机器128条指令,用7位操作码(OP0~OP6),如果其中有16条算术逻辑运算指令,可以将这些指令的3位操作码都设计相同的编码,如OP0OP1OP2=001,而其他位OP3~OP6编码表示16个不同的指令.
设命令A是所有算术逻辑运算在cy2周期需要产生的,逻辑表达式:
A=加法指令·cy2+减法指令·cy2+逻辑加指令·cy2+…
=(加法指令·+减法指令+逻辑加指令+…)·cy2
=OP0·OP1·OP2·cy2
只需要一个与门,就可实现命令A.
2.微程序控制器
(1)微程序,微指令和微命令
在计算机中,一条指令的功能是通过按一定次序执行一系列基本操作完成的,这些基本操作称为微操作.例如,前面讲到的加法指令,分成四步(取指令,计算地址,取数,加法运算)完成,每一步实现若干个微操作.实现这些微操作的控制命令就是微命令.
微操作是指最基本的,不可再分的操作,如前面提到的:
PC→AB;W/R=0;DB→IR等.
PC→AB等就是微命令.
微指令:在微程序控制的计算机中,将由同时发出的控制信号所执行的一组微操作称为微指令,所以微指令就是把同时发出的控制信号的有关信息汇集起来而形成的.将一条指令分成若干条微指令,按次序执行这些微指令,就可以实现指令的功能.组成微指令的微操作又称微命令.
微程序:计算机的程序由指令序列构成,而计算机每条指令的功能均由微指令序列解释完成,这些微指令序列的集合就叫做微程序.
(2)微指令的编码方式;
1)直接控制法
在微指令的控制字段中,每一位代表一个微命令,在设计微指令时,是否发出某个微命令,只要将控制字段中相应位置成“1”或“0”,这样就可打开或关闭某个控制门,这就是直接控制法.
2)字段直接编译法
选出互斥的微命令,并将这些微命令编成一组,成为微指令字的一个字段,用二进制编码来表示,就是字段直接编译法.
3)字段间接编译法
字段间接编译法是在字段直接编译法的基础上,进一步缩短微指令字长的一种编译法.如果在字段直接编译法中,还规定一个字段的某些微命令,要兼由另一字段中的某些微命令来解释,称为字段间接编译法.
(3)微地址的形式方式.
1)微程序入口地址的形成
<1>一级转移方式
当操作码的位数与位置固定时,可直接使操作码与入口地址的部分位对应.
<2>多级转移方式
先按照指令类型标志转移到某条微指令,以区分出是哪一大类,然后可以进一步按指令操作码转移,区分出是该指令中的哪一类具体操作.
2)微程序后继地址的形成
<1>以增量方式产生后继微地址.
在顺序执行微指令时,后继微地址由现行微地址加上一个增量(通常为1)形成的;而在非顺序执行时则要产生一个转移微地址.
<2>增量与下址字段结合产生后继微地址
将微指令的下址字段分成两部分:转移控制字段BCF和转移地址字段BAF,当微程序实现转移时,将BAF送μPC,否则顺序执行下一条微指令(μPC+1).
(五)指令流水线
1.指令流水线的基本概念
(1)流水线基本原理
流水线技术是一种显著提高指令执行速度与效率的技术.方法是:指令取指完成后,不等该指令执行完毕即可取下一条指令.
如果把一条指令的解释过程进一步细分,例如,把分析,执行两个过程分成取指,译码,执行,访存和写回寄存器五个子过程,并用五个子部件分别处理这五个子过程.