《第6章中央处理部件CPU2》由会员分享,可在线阅读,更多相关《第6章中央处理部件CPU2(43页珍藏版)》请在金锄头文库上搜索。
1、微程序控制技术微程序控制技术v微程序概念微程序概念v控制存储器及其组织控制存储器及其组织v微程序控制基本原理微程序控制基本原理v微程序的设计微程序的设计v微指令的编码技术微指令的编码技术v微指令的后继地址产生微指令的后继地址产生v微指令格式微指令格式v动态微程序设计、毫微程序设计概念动态微程序设计、毫微程序设计概念1微指令与微程序微指令与微程序v微指令:由同时发出的控制信号所执行的一组微操微指令:由同时发出的控制信号所执行的一组微操作。作。 例如:例如:加法指令的执行可分为:取指、计算地址、取操作数和加法指令的执行可分为:取指、计算地址、取操作数和加法运算四步,每一步都由一组微操作实现。这一组
2、能加法运算四步,每一步都由一组微操作实现。这一组能同时执行的微操作就构成一条微指令。同时执行的微操作就构成一条微指令。v微程序:一组微指令的集合。这样微程序:一组微指令的集合。这样:程序由一组指令组成程序由一组指令组成指令由一个微程序实现指令由一个微程序实现微程序由一组微指令实现微程序由一组微指令实现微指令由一组微操作实现微指令由一组微操作实现2Wilkes模型模型v微程序设计思想,最初是由英国剑桥大学的微程序设计思想,最初是由英国剑桥大学的M.V.Wilkes于于1951年提出。核心部分是连接有二极管的一个阵列。年提出。核心部分是连接有二极管的一个阵列。3控制器存储器控制器存储器v控制存储器
3、控制存储器(Control Memory):):简称简称控存,用于存放微程序的存储器。控存,用于存放微程序的存储器。v控制存储器与主存储器都是存储器,但由控制存储器与主存储器都是存储器,但由于其所处的位置和存放的内容不一致,故于其所处的位置和存放的内容不一致,故用不同的名称表示。前者存放微程序,后用不同的名称表示。前者存放微程序,后者存放系统程序和用户程序。进一步讲,者存放系统程序和用户程序。进一步讲,前者存放的是机器的指令集中每一条指令前者存放的是机器的指令集中每一条指令所对应的一个微程序的集合;而后者则存所对应的一个微程序的集合;而后者则存放的是机器指令和数据。放的是机器指令和数据。v执行
4、一条指令就是执行一段存放在控制存执行一条指令就是执行一段存放在控制存储器中的微程序。储器中的微程序。4控制存储器的组织控制存储器的组织公共子程序公共子程序中断处理子程序中断处理子程序ADD微程序微程序SUB微程序微程序.JMP 微程序微程序转移至取指或中断入口转移至取指或中断入口微指令微指令1微指令微指令2 .5微程序控制器的结构框图微程序控制器的结构框图v控制地址寄存器:存放控存地址;控制地址寄存器:存放控存地址;v控制缓冲寄存器:存放读出的微指令,因此也称微控制缓冲寄存器:存放读出的微指令,因此也称微指令寄存器(指令寄存器( IR)。)。顺序逻辑顺序逻辑控制地址寄存器控制地址寄存器控制存储
5、器控制存储器(CM/CS)控制缓冲寄存器控制缓冲寄存器读读6微程序控制器的功能结构图微程序控制器的功能结构图指令寄存器指令寄存器IR指令译码器指令译码器控制地址寄存器控制地址寄存器控制存储器(CM/CS)控制缓冲寄存器控制缓冲寄存器微指令译码器微指令译码器顺序逻辑顺序逻辑读下一地址下一地址控制信号至控制信号至CPU内部内部 或或系统总线系统总线ALU标志标志时钟信号时钟信号7微程序控制的基本原理微程序控制的基本原理v微操作(控制信号)的编码微操作(控制信号)的编码以加法指令为例:以加法指令为例: (rs)+(rs1)+disp)=rdv从从M中取指中取指 =IR: (PC)-AB ; (PC)
6、+1=PC; ADS#、W/R#、M/IO#; (Ready#;)DB-IR。v计算操作数地址,将得到的有效地址计算操作数地址,将得到的有效地址=AR: (rs1)-GR, (rs1)-ALU; disp-ALU; “+”; ALU-AR。v取操作数:取操作数:AR-AB;ADS#、W/R#、M/IO#;(Ready#;) DB-DR。v做加法:做加法:(rs)-GR, (rs)-ALU;DR-ALU; “+”; rd-GR, ALU-rd。(并置运算结果并置运算结果N,Z,V,C。)8控制器中各信号的位置图控制器中各信号的位置图9控制器所要控制的基本控制信号控制器所要控制的基本控制信号23个
7、个10微微指令的组织指令的组织v将将每个控制信号用每个控制信号用1bit表示,当该位为表示,当该位为1时,表时,表示有控制信号;为示有控制信号;为0时,表示无控制信号。时,表示无控制信号。v对对M/IO#、W/R#,则当该位为则当该位为1时,分别表示访时,分别表示访问存储器和写;当该位为问存储器和写;当该位为0时,分别表示时,分别表示IO访问访问和读。和读。v每条微指令执行完后,需要给出下条微指令执行每条微指令执行完后,需要给出下条微指令执行的地址。的地址。v微指令格式:微指令格式:11加法指令的微指令编码加法指令的微指令编码12微程序流程图微程序流程图13微微程序控制器的基本结构程序控制器的
8、基本结构来自来自Cache/主存主存IR微微指令寄存器指令寄存器 IR形成微程序入口地址形成微程序入口地址 op14微指令编码微指令编码-直接编码直接编码v直接编码(直接编码(direct encoding)直接控制法(水平型微指令)直接控制法(水平型微指令)字段直接编译法字段直接编译法译码器译码器1 译码器译码器2 译码器译码器3 译码器译码器4.微操作微操作微操作微操作微操作微操作微操作微操作IR后继地址后继地址15微指令编码微指令编码-间接编码间接编码v间接编码(间接编码(indirect encoding)字段间接编码字段间接编码译码器译码器1 译码器译码器2 译码器译码器3 译码器译
9、码器4.微操作微操作微操作微操作微操作微操作IR后继地址后继地址译码译码12微操作微操作v常数源字段常数源字段E编码编码16互斥互斥v互斥:如果有若干个(一组)微命令,在每互斥:如果有若干个(一组)微命令,在每次使用它们的次使用它们的微周期微周期内,只有一个微命令起内,只有一个微命令起作用,则这若干个微命令为互斥。作用,则这若干个微命令为互斥。v微周期:一条微指令执行所需要的时间。微周期:一条微指令执行所需要的时间。v在字段直接编码的微指令中,每一组译码器在字段直接编码的微指令中,每一组译码器输出的微操作必须为互斥。因此,若字段域输出的微操作必须为互斥。因此,若字段域为为3位,则最多能表示位,
10、则最多能表示7个互斥的位操作控制个互斥的位操作控制信号(通常信号(通常000表示不发微命令)表示不发微命令)。17后继地址的产生方式(后继地址的产生方式(1)v以增量方式产生后继地址以增量方式产生后继地址顺序执行微程序顺序执行微程序操作码操作码 地址码地址码译码器译码器控制地址寄存器控制地址寄存器(PC)控制存储器控制存储器 控控 制字段制字段 转移条件转移条件 后继地址后继地址+1PC+1微程序入口微程序入口18续前续前v以增量方式产生后继地址以增量方式产生后继地址转移的控制转移的控制操作码操作码 地址码地址码译码器译码器控制地址寄存器控制地址寄存器(PC)控制存储器控制存储器 控控 制字段
11、制字段 转移条件转移条件 后继地址后继地址微程序入口微程序入口逻辑控制逻辑控制转移地址转移地址19后继地址的产生方式(后继地址的产生方式(2)v增量与下址结合产生后继地址增量与下址结合产生后继地址BCF:转移控制字段;转移控制字段;BAF:转移地址字段转移地址字段v后继地址的形成就由转移控制字段后继地址的形成就由转移控制字段BCF控制,控制,并由并由BCF的具体长度决定转移地址形成的方式。的具体长度决定转移地址形成的方式。v若若BCF为为3位,则最多有位,则最多有8种后继地址的形成种后继地址的形成方式方式vBCF定义的定义的8条微操作命令条微操作命令。202122后继地址的产生方式(后继地址的
12、产生方式(3)v多路转移多路转移从操作码从操作码-控存地址。不同的操作码产生不同的微地控存地址。不同的操作码产生不同的微地址。用址。用Map ROM实现。实现。多个测试位,形成不同的后继地址。例如,有多个测试位,形成不同的后继地址。例如,有2个测试位,个测试位,则可以形成则可以形成4路转移地址。路转移地址。4个转移地址可以用微地址的个转移地址可以用微地址的最低最低2位实现。位实现。v微中断微中断发现有微中断请求时,在完成当前微指令执行后,取微发现有微中断请求时,在完成当前微指令执行后,取微中断程序的入口地址送中断程序的入口地址送PC。23微指令的格式微指令的格式v水平型微指令:水平型微指令:对
13、应对应CPU内部控制线和每一条系统总线控制线指内部控制线和每一条系统总线控制线指令中都有相应的令中都有相应的1位,同时还有一个指示转移发位,同时还有一个指示转移发生条件的条件字段和转移目的地址字段。生条件的条件字段和转移目的地址字段。v垂直型微指令:垂直型微指令:在微指令中设置微操作码字段、条件码和微地址在微指令中设置微操作码字段、条件码和微地址字段,微操作码字段通过微指令译码器翻译出微字段,微操作码字段通过微指令译码器翻译出微操作。操作。24续前续前水平型微指令格式水平型微指令格式 垂直型微指令格式垂直型微指令格式控控 制制 信信 号号 条件字段条件字段 后继地址后继地址微指令操作码微指令操
14、作码 条件码条件码 地址码地址码ADS#, W/IO#, C/D#, PA-AB, ALU-PC, PC+1, DB-IR, DB-DR, .译码器ADS#, W/IO#, C/D#, PA-AB, ALU-PC, PC+1, DB-IR, DB-DR, .25常用的垂直型微指令类型常用的垂直型微指令类型vRR传送型微指令传送型微指令v运算控制类微指令运算控制类微指令v移位控制型微指令移位控制型微指令v访问主存型微指令访问主存型微指令v条件转移型微指令条件转移型微指令v无条件转移型微指令无条件转移型微指令v其他其他26动态微程序动态微程序v静态微程序静态微程序 对应于一台计算机的机器指令只有一
15、组微程序,而且这对应于一台计算机的机器指令只有一组微程序,而且这一组微程序设计好之后,一般无须改变而且也不好改变,这一组微程序设计好之后,一般无须改变而且也不好改变,这种微程序称为静态微程序。种微程序称为静态微程序。v动态微程序动态微程序可以通过改变微指令和微程序来改变机器的指令可以通过改变微指令和微程序来改变机器的指令系统。系统。动态微程序的控存被称为可写控制存储器动态微程序的控存被称为可写控制存储器(WCS)或用户控制存储器(或用户控制存储器(UCS)27串行微程序控制器串行微程序控制器微微指令控制指令控制节拍脉冲节拍脉冲28并行微程序控制器并行微程序控制器微微指令控制指令控制节拍脉冲节拍
16、脉冲29毫微程序概念毫微程序概念v用于解释微程序的一种微程序。用于解释微程序的一种微程序。v微程序设计语言微程序设计语言30用用AM2900系列芯片构成一个微程序控制系列芯片构成一个微程序控制的的CPU(控制器控制器+运算器)运算器)R0R11:通用寄存器;通用寄存器;R12:堆栈寄存器堆栈寄存器SP;R13:程序计数器程序计数器PC,指向下一条指令;指向下一条指令;R14:程序计数器程序计数器PC*,指向当前指令;指向当前指令;R15:中断寄存器。中断寄存器。微程序顺序器微程序顺序器(Microsequencer)用于控用于控制产生下一条制产生下一条微指令的地址。微指令的地址。字长字长12位
17、,可位,可寻址寻址4K字。字。31AM2901的内部结构的内部结构32AM2910引脚说明引脚说明vD11D0:外部数据输入线外部数据输入线(字长(字长12位)位);vI3I0:4位构成位构成16条命令,确定下一条微指令的地址;条命令,确定下一条微指令的地址;vCC:条件输入,低有效,表示测试条件为真;条件输入,低有效,表示测试条件为真;vCCEN:CC允许信号,低有效,表示允许信号,低有效,表示CC有效。有效。vRLD:为低电平表示装为低电平表示装入入D11D0作为微地址;作为微地址;vCT:为高时,则为高时,则PC-Y+1,为低时,则为低时,则PCRd;vSUB :(Rd)-(Rs)-Rd
18、;vMOV: (Rs)-RdMULv(R1)*(Rs)-R0R1CALL,JMPvAddress-PCJP CDvCD表示条件码,表示条件码,v成立,则转移,成立,则转移,Address-PC; 否则否则 PC+1-PCOPCODE XX Rd Rs15 10 9 8 7 4 3 0OPCODE XX XXX Rs15 10 9 8 7 4 3 0 OPCODE XX XXX XXX15 10 9 8 7 4 3 0Address OPCODE CD XXX XXX15 10 9 8 7 4 3 0Address35模型机的微指令格式模型机的微指令格式v微指令字长微指令字长56位,后继地址字长
19、位,后继地址字长8位(可直接寻址位(可直接寻址256字),控制字段字),控制字段42位,位,6位备用位备用。W55W48:微指令转移地址或寄存器/计数器的初值,寻址范围0255W43W41:AM2901的CC条件选择字段SCC,用于测试的条件有:C、Z、N、V(条件转移指令的条件码,中断请求,微指令选择测试条件W40W39:AM2901的寄存器堆A,B地址选择信号。W40=1,则W27W24表示A寄存器地址; W39=1,则W27W24表示B寄存器地址。若W40=1或W39=0,则表示W27W24无效。W19W18:AM2901最低进位输入控制字段SCn(加法进位,减法借位,执行加1指令),一
20、般情况为0。W17W15:程序状态码选择字段SST,用于选择保存于状态寄存器STR中的运算结果的状态(Z、C、V、N)。W14W13:AM2901移位输入控制字段SSH(选择RAM0,RAM3,Q0,Q3)W11=0,Y输出到数据总线;W11=1,Y为高阻态。AM1901的4个数据输入选择IR,AR,MDR,STR的打入控制脉冲选通信号。36编制微程序编制微程序v假设假设7条指令通过条指令通过MAPROM映射后得到映射后得到微程序的入口地址。微程序的入口地址。 指令指令 微程序入口地址微程序入口地址ADD Rd, Rs KSUB Rd, Rs K+1MOV Rd, Rs K+2MUL Rs K
21、+3CALL address K+10JMP address K+15JP CD, address K+1637模型机微程序流程图模型机微程序流程图38微微程序汇总表程序汇总表39小结小结-微程序的编制方法微程序的编制方法v列出每条指令的操作步骤以及每一步骤中所用的控列出每条指令的操作步骤以及每一步骤中所用的控制信号;制信号;v用指定的微指令格式为每条指令编制微程序;用指定的微指令格式为每条指令编制微程序;v把每条指令对应的微程序中的公共部分提取;把每条指令对应的微程序中的公共部分提取;v画出微程序流程图;画出微程序流程图;v把编写好的微指令代码通过写入器写入到控制存储把编写好的微指令代码通过
22、写入器写入到控制存储器中。器中。v启动机器,调试每一条指令,执行结果正确,则表启动机器,调试每一条指令,执行结果正确,则表示设计的微程序正确,否则应检查该条指令所对应示设计的微程序正确,否则应检查该条指令所对应的微程序。的微程序。40微微程序控制计算机的工作过程程序控制计算机的工作过程v加电加电产生产生Reset信号,启动第信号,启动第1条指令的执行,条指令的执行,同时在微指令寄存器内置入同时在微指令寄存器内置入“取指取指”微操作。微操作。v当电压达到稳定值后,产生节拍当电压达到稳定值后,产生节拍T1,T2和和CP,同时形成各个寄存器的打入脉冲。同时形成各个寄存器的打入脉冲。v执行微操作。执行微操作。41作业作业vPage 235 :2,5,6,7,9返回返回返回返回42返回返回返回返回43