- 1、本文档共61页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
组成原理实验课件--微程序控制器
微程序控制器的工作原理,是用一条微指令的控制命令字段来提供一条机器指令的一个执行步骤所需要的控制信号,用这条微指令的下地址字段,指明下一条微指令在控制器存储器中的地址,以便从控制器存储器中读出下一条微指令。换句话说,每一条微指令对应一条机器指令的一个执行步骤。 * 微程序控制器的工作原理,是用一条微指令的控制命令字段来提供一条机器指令的一个执行步骤所需要的控制信号,用这条微指令的下地址字段,指明下一条微指令在控制器存储器中的地址,以便从控制器存储器中读出下一条微指令。换句话说,每一条微指令对应一条机器指令的一个执行步骤。 * * (1)程序计数器(PC),是用于提供指令在内存中的地址的部件,即服务于读取指令,能够接收下一条要执行的指令的地址。 (2)指令寄存器(IR),是用于保存从内存读来的指令内容的部件,能够提供本指令执行的整个过程中要用到的指令本身的主要信息(指令操作码和形式地址)。 (3)指令执行的步骤标记线路,用于标记出每条指令的各个执行步骤的相对次序关系,保证每一条指令按设定的步骤序列依次执行。 (4)全部时序控制信号的产生部件,它依据指令操作码、指令的执行步骤(时刻),也许还有些别的什么条件信号,来形成或提供出本时刻计算机各个部件要用到的控制信号。计算机整机各硬件系统,正是在这些信号控制下协同运行,执行指令,产生预期的执行结果。 依据前述控制器最后两个组成成分的具体组成与运行原理不同,通常把控制器区分为微程序的控制器和硬连线的控制器两大类。 * * * * * * * * Am2910是一片能提供12位微指令地址的器件,即它的输入输出的地址位数和器件内的部件位数均为12位,能直接寻址4096条微指令字的空间范围。 ① Am2910包括一个四输入的多路地址选择器,用来从寄存器/计数器(R/C),直接输入(D),微程序计数器(?PC)或微堆栈(F)四个输入中,选择其一作为下一条微指令的地址。 ② 寄存器/计数器由12个D型触发器组成。当它用作寄存器时,主要用于保存一个微地址,用以实现微程序转移;当它用作计数器时,具有减一功能(何时减一,取决于Am2910的命令码),主要用于控制微程序的循环次数,若装入的初值为N,则可能执行N+1次循环。 ③ 微程序计数器由12位的增量器和12位的寄存器?PC组成。当增量器的进位输入CI为高电平时,多路器的输出Y加1后装入?PC(即?PC←Y+1),用于实现微程序的顺序执行;而当CI为低电平时,多路器的输出Y直接装入?PC(即?PC←Y),用于实现同一条微指令的多次执行。 ④ 微堆栈是由5字×12位的寄存器堆栈和微堆栈指针?SP组成,主要用于保存微子程序调用时的返回地址和微程序循环的首地址。微堆栈指针?SP总是指向最后一次压入的数据,因此,执行微程序循环时,允许不执行弹出操作而直接访问微堆栈的栈顶。当微堆栈中的数据达到5个时,就发出微堆栈已满信号(/FULL=0),这时,任何压入操作都将覆盖掉栈顶的原有数据。 ⑤ 命令译码器接收外部送来的命令码I3~I0,条件输入 /CC 和条件允许 /CCEN信号,并对其译码,产生芯片内工作需要的控制信号和外部要用的三个控制选择信号/PL、/MAP和/VECT。三个输出信号 /PL、/MAP和 /VECT用于决定外部直接输入D的来源。 当 /PL 有效时(即/PL=0),D来源于微指令的下地址字段,用于给出微程序转移地址; 当 /MAP 有效时(即/MAP=0),D来源于MAPROM,用于实现从机器指令的操作码找到相应的微程序段首地址; 当 /VECT 有效时,(即/VECT=0),原意是来源于向量,现直接接地,未使用。 * * 可以把教学计算机中16位的微指令下地址字段的内容归纳为如下 4 种形式(40页): 16位的下地址为00E0h时,是顺序执行,即命令码选 E(1110),其它2个子字段不用,均给0值。例如用在微地址为0#、1#等许多条微指令中。(参见50页) 16位的下地址为0020h时,是实现按指令功能转移,即通过指令操作码映射出微指令地址,命令码选2,其它2个子字段不用,均给0值。其它2个子字段只用在微地址为3#命令码的微指令中。 微指令必定转移时,是8位的转移地址拼接3#命令码再拼接必转的条件编码0000,例如:2430h、3030h等,分别用在微地址为1E#、04#等许多条微指令中。 * 微指令按某一条件为真时转移、为假时则顺序执行时,16位的3个子字段都用到了。例如1436h、1a37h 等,分别用在微地址为12#、15#等微指令中。微指令转移的判断条件编码已经在40页表4-2中给出,是否转移是由SCC_GAL 向 Am2910 提供一个 /CC 信号决定的, /CC 为低时转移, /CC 为
文档评论(0)