1、第4章,指令、指令系统 和控制器部件,第4章 指令、指令系统和控制器部件,一、指令系统 综述:指令与指令格式 ,寻址方式。 基本指令系统:教学计算机的指令系统 和 汇编程序设计。 扩充性知识:PDP-11机指令系统,NOVA机指令系统。 二、控制器的功能和组成控制器的功能,控制器的组成,指令的执行步骤。控制器的分类:微程序控制器和组合逻辑控制器。 三、微程序控制器的运行原理微指令的格式:下地址字段 和 控制命令字段。 四、教学计算机的微程序控制器指令分类与典型指令的执行过程, 微程序分析,设计新指令的微程序及调试运行。 五、组合逻辑控制器的组成与运行原理 8 位教学实验计算机的组成与设计实例。
2、,返回,一、指令系统,指令 : 功能 定义 用法,指令格式:,操作码 操作数地址,固定长度 可变长度 交叉安排,无地址 一地址 二地址 多地址,2. 寻址方式,外设寻址,入 / 出端口地址方式,统一映象方式,主存寻址,寄存器寻址,直接寻址,变址寻址,寄存器间址,间接寻址,相对寻址,基地址寻址,立即数寻址,堆栈寻址,1.指令与指令格式,返回,指令:是计算机运行的最小的功能单位,是计算机用于控制各部件协调动作的命令,计算机最本质的功能就是连续的执行指令。 指令系统:一台计算机支持(或使用)的全部指令的集合,称为指令系统。 指令字:一种二进制代码,包括操作码和操作数地址。 操作码:用于指明本条指令的
3、操作功能。如:算数的加/减,逻辑的与/或,内存与外设的读/写等。 操作数地址:用于给出被操作的对象的地址。如:操作数所在的地址,程序转移地址,子程序调用地址等。,返回,1、指令的基本概念,对指令系统的要求,完备性: 指令齐全,编程方便 高效性:占内存少,运行省时 规整性:指令与运算规则统一 兼容性:新旧机指令软件兼容,当前的计算机指令系统,从其构成的复杂和完备程度,或者说设计中追求的不同的目标,区分,可分为 CISC 和RISC 两类:RISC(Reduced Instruction Set Computer),通常称为精简指令系统的计算机,只有数目较少、格式与功能简单、运行高效的指令,追求的
4、是计算机控制器实现简单,运行高速,更容易在单块超大规模集成电路中芯片内制做出来。CISC (Complex Instruction Set Computer),通常称为复杂指令系统的计算机,是相对于 RISC 一词而提出来的一种说法。其特点是:指令条数多,格式多样,寻址方式复杂,每条指令的功能强,优点是汇编程序设计容易些,但计算机控制器的实现困难多,很多指令被使用的机会并不多。,返回,指令格式: 操作码 操作数地址,返回,操作码的方案分类: 1、定长操作码方案:在指令字的最高位分配固定长度,用于表示操作码。 2、变长操作码方案:可以为最常用的指令少分配几位操作码。 3、交叉方案:操作码的二进制
5、位不集中在最高位,而是与操作数地址有所交叉。 操作数地址的设计: 1、无操作数指令:某些指令没有操作数,或使用某个已约定的操作数。如停机指令、空操作指令、关中断指令等。 2、单操作数指令:某些指令只用一个操作数必须在指令中指明其地址。 3、双操作数指令:如算数和逻辑运算,往往使用2个操作数,需要分别给出目的操作数和源操作数的地址。 4、多操作数指令:如用2个操作数地址表示目的和源操作数,用第三个操作数地址表示保存运算结果。,2、指令的分类,指令的分类,1、算数和逻辑运算指令:是每台计算机必须具有的指令。 2、移位操作指令:包括算数移位、逻辑移位和循环移位三种。 3、数据传送指令:用于通存通存、
6、通存内存、通存外设、内存内存之间的数据传送。指令要指明数据传送的方向。 4、转移指令、子程序调用与返回指令:转移指令:不执行邻接的下1条指令,而是转移到另一段程序的入口去执行。分为条件转移和无条件转移。条件转移指令还必须给出判断转移条件,通常是 C(进位)、Z(结果为0)、V(溢出)、S(符号位)的取值。子程序调用与返回指令:是一种特定的转移指令。即转去执行子程序,在子程序的最后要有返回当前指令的语句。用户自编的子程序系统提供的子程序,子程序,访问系统程序(访管)指令。 陷阱指令(TPAP)。,断电、检验出错、设备故障、非法指令等意外事故。,5、特权指令:仅用于操作系统或系统软件的指令。为确保
7、安全,这类指令不提供给用户使用。 6、其它指令:用于完成某些特定的处理功能。如:动态停机、空操作、置条件码、开中断、关中断、堆栈操作指令等。,操作数的来源和去向:,1、来自CPU内部的通用寄存器。通存一般有16个,R0 R15R0与外设交换数据,R4 为堆栈,R5 用作程序计数器PC。 2、来自外围设备(接口)中的一个寄存器。通常用设备编号入口端地址来表示。 3、来自内存的一个存储单元。在指令字中给出该存储单元的地址。,3、寻址方式,寻址:根据指令的内容确定操作数地址的过程。 寻址方式:获得操作数或操作数地址的方法。 地址:数据和指令在存储器中存放的位置。 形式地址:在指令字中给出的操作数的地
8、址被称为形式地址。 物理地址:用形式地址结合某些规则计算出操作数在存储器中的存储单元地址。 操作数地址可以是: 运算器中的累加器的编号或专用寄存器名称(编号)。 输入/输出指令中用到的 I/O 设备的入出端口地址。 内存储器的一个存储单元(或一 I/O设备 )的地址。,返回,计算机的CPU中一般设置有一定数量的通用寄存器,用于存放操作数、操作数地址或中间结果。寄存器寻址: 在指令字的操作数地址码字段给出操作数所在的通用寄存器的编号(地址)。称为寄存器寻址。例如:加法指令: ADD A, D(助记符号)指令字 : 10 0 0 0 010寄存器间接寻址: 右图中,如果D寄存器中给出的不是操作数,
9、而是 操作数的地址,这中方式称为寄存器间接寻址。,1、寄存器寻址、寄存器间接寻址,返回,寄存器 D 的地址,2、立即数寻址,所需的一个操作数在指令的地址码部分直接给出。,则 Num 即为操作数的值。,适用于操作数固定的情况,提高了指令的执行速度,当该立即数的值限定为较小值(占用位数少)时,可在第一个指令字中直接给出,否则可在第二个指令字中给出。,返回,在指令的地址码字段直接给出所需的操作数(或指令) 在存储器中的地址。,则 Addr 为操作数在存储器中的地址。或转移指令等用到的指令地址。,3、直接寻址,例:Addr = 5718H ,这里的H 表示 5718 是 16 进制的值5718H =
10、3,内存储器 5718 单元中的内容为 3,则操作数就是这里的 3,或下一条指令的地址为 3。,常用于读写内存的指令或转移等指令中。,内存储器,操作数,返回,操作数的地址由指定的变址寄存器(由Reg指定)的内容和指令中的地址码(Disp)相加得到。,4、变址寻址,通用寄存器,加法器,存储器,操作数,例:Disp=H18,Reg=5,(R5)=H5700则操作数地址 = H5718,便于对数组元素进行处理, 是计算机中常用的一种寻址方式。,返回,操作数(或指令)的地址由程序计数器 PC 的内容(即当前执行指令的地址)和指令的地址码相加得到。,5、相对寻址,例:Disp = H48 (PC) =
11、H5600则实际地址 = H5648,1主要用于转移指令,对浮动程序很有用。 2位移量可正可负,通常用补码表示。,返回,指令的地址码字段给出的内容既不是操作数,也不是操作数的地址,而是操作数(或指令)地址的地址,这被称为间接寻址方式,多一次读内存储器的操作。,6、间接寻址,存储器,操作数,Addr1,指令中的 Addr 可以用其他寻址方式给出,例如变址寻址,这就成为变址寻址与间接寻址的复合寻址方式。,返回,在计算机中设置一个专用的基址寄存器,操作数(或指令)的地址通过基址寄存器的内容和指令中的地址码相加得到。,7、基址寻址,基址寄存器,加法器,存储器,操作数,例:Disp= H18,BS= H
12、5700则操作数地址=H5718,主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。,返回,堆栈是内存储器中一块按 “ 后进先出 ” 原则进行读写的存储区,并通过一个专用的寄存器(称为堆栈指针SP)给出堆栈的栈顶地址完成数据的读写操作,故不必在指令中用操作数地址字段给堆栈地址。通常在读写操作的前后伴随有计算机自动(不是用户通过指令)修改 SP 内容的动作,以确保按正确的“后进先出”原则读写堆栈区。例如:(SP)- 1 SP和 AR,即SP的内容减 1 存回 SP,并送内存地址寄存器,接下来才可以把数据写到堆栈中。完成一次读堆栈操作后,要
13、接着执行(SP)+1 SP 的一次自动修改 SP 内容的操作。,8、堆栈寻址,需要注意的是,指令长度可能是一个字,也可能是两个字或多个字,要看操作数地址字段的位数要求,由具体的情况决定。,返回,4、16位教学机的指令格式,16位机指令支持单字和双字指令,第一个指令字的高8位是指令操作码字段,低8位和第二个指令字是操作数地址字段。,教学机高8位指令操作码(IRH7 IRH0)的含义:,教学机指令中,基本指令29条,扩展指令19条。,CZVS标志位: *号表示状态位在该指令执行后会被重置, 表示不被重置。,16位机基本指令说明: (一),16位机基本指令说明: (二),5、汇编语言简介,(1)、语
14、句的种类:,指令语句 伪指令语句,有与其对应的机器指令。,没有与其对应的机器指令,只说明如何汇编源程序,包括符号的定义,变量和段的定义等。,(2)、指令语句的格式:(由4个部分组成) 标号: 指令助记符 操作数 ,操作数 ;注释,常数操作数(数值表达式),寄存器操作数(寄存器名),存储器操作数(地址表达式)。,(3)、数值表达式: (1).常数:二进制数B、八进制数Q、十进制数D、十六进制数H、字符串常数,“定界符”。 (2).算数运算符,包括:正()、负()、加( )、减()、乘( * )、除(/) (3).关系运算符:相等(EQ)、不等(NE)、小于(LT)、大于(GT)、小于等于(LE)
15、、大于等于(GE) (4).逻辑运算符:与(AND)、或(OR)、非(NOT)、异或(XOR) (5).运算符的优先级:1各种扩号、2 * / SHL . SHR、3 HIGH . LOW 、4 、5 关系运算6 NOT、7 AND、8 OR . XOR 。,指令系统实验联机的汇编语言 程序设计,实验目的: 1、学习TEC2000教学机监控命令的用法。 2、学习TEC2000教学机的指令系统。 3、学习TEC2000教学机的汇编程序设计。 实验内容: 1、使用监控程序的R命令显示/修改寄存器的内容,使用D命令显示存储器的内容,使用E命令修改存储器内容。 2、使用A命令编写一段小程序,用G命令运
16、行该程序。 3、参照教材135页例1例3, 138页例1例5, 作3个汇编程序的实验。,联机的汇编程序设计实验步骤 1、把教学机COM1口与PC机的COM1口相连,置教学机控制方式选择开关为00101(连续、读内存、组合逻辑、16位、联机),开关拨向上方表示 “1”,拨向下方表示“0”,“X”表示任意。 2、PC机和教学机加电,使PC机进入Win98系统,找到C:TECPCEC16文件,双击进入仿真界面,当屏幕出现菜单显示时按“1”键(选COM1口)。,教学计算机软件子系统组成:软件子系统提供监控程序、汇编程序、双机通信及仿真终端等软件,该软件存储在一张软盘上,安装之后,在C盘上有一个文件夹T
17、EC,该文件夹下有一个文件 pcec16.exe,双击该文件即可进入仿真终端状态。,3、按一下“RESET”按键复位,再按一下“START”按键 开始,PC机屏幕上显示:TEC2000 CRT MONITONVersion 2.0 2001.10Computer Architectur Lab.Tsinghua University Copyright Jason He_,4、PC机进入到监控程序状态,提示符为:“ _ ”。在监控程序提示符“ _ ”下输入单字汇编命令A, 开始输入程序,最后以RET结束程序。再用G命令运行程序。,常用的单字汇编命令 A adr命令:完成单条指令的汇编操作,把产
18、生的执行代码放入对应的内存单元中。 G adr命令:从指定的地址连续运行一个用户程序遇到RET 语句时返回。 R 命令:R后面不代参数,显示全部寄存器和状态寄存器的值。 R寄存器名:修改寄存器的值,如 R Ro ,输入36,表示把16进制数值36 赋给Ro寄存器。,实验要求: 1、每完做一个实验,观察并写出本实验中使用的寄存器的状态。 2、实验完成之后,写出实验报告。在“实验结果和结论”栏中,写出汇编程序的清单和每个语句的含义,写出程序运行的结果。,例1: 编写程序,在显示器屏幕上显示95个可打印字符。 2000:MVRD R1,7E ;向寄存器传送直接数,7E(0111 1110)为SP的编
19、码 2002:MVRD R0,20 ;向寄存器传送直接数,20(0010 0000)为的编码 2004:OUT 80 ;通过串口输出R0低位字节内容到显示器屏幕 2005:PUSH R0 ;保存R0寄存器的内容到堆栈中; 2006:IN 81 ;读串行接口的状态寄存器的内容到R0寄存器 2007:SHR R0 ;R0内容右移一位,最低位的值移入标志位C 2008:JRNC 2006 ;条件转移,当标志位C不是1时就转到2006地址 2009:POP R0 ;从堆栈中恢复R0寄存器的原内容 200A:CMP R0,R1 ;比较两寄存器的内容相同否,相同则标志位Z=1 200B:JRZ 200F
20、;条件转移,当标志位Z为1时就转移到200F地址 200C:INC R0 ;把R0寄存器的内容增加1(产生下一个字符的编码) 200E:JR 2004 ;无条件转移指令,一定转移到2004地址 200F:RET; ;子程序返回指令,,例2:设计一个小程序,从键盘上接收一个字符并在屏幕上输出显示该字符。_ A2000 2000:IN 8l ;判键盘上是否按了一个键 2001:SHR R0 ;即串行口是否有了输入的字符 2002:SHR R0 2003:JRNC 2000 ;未输入完则循环测试,C=0,转2000 2004:IN 80 ;接收该字符 2005:OUT 80 ;在屏幕上输出显示字符6
21、 2006:RET ;每个用户程序都必须用RET指令结束 2007: ;按回车键即结束输入过程,回到提示符下_ G2000 从2000地址开始执行程序。,例3:设计一个程序,计算1到10的累加和。 (2060)MVRD R1,0000 ;置累加和的初值为0MVRD R2,000A ;最大的加数MVRD R3,0000 (2066)INC R3 ;得到下一个参加累加的数ADD R1,R3 ;累加计算CMP R3,R2 ;判断是否累加完JRNZ 2066 ;未完,开始下一轮累加RET,二、控制器的功能与组成,1. 控制器的功能2. 控制器的组成3. 指令执行步骤4. 微程序控制器,返回,1.控制器
22、的功能,计算机的功能是执行程序,程序是依次排列起来的指令代码。控制器的功能就在于:正确且自动地连续执行指令,正确地分步完成每一条指令规定的功能。或者说,就是向计算机各功能部件发出协调运行每一个步骤所需要的控制信号。,返回,控制器的功能,计算机的功能是执行程序程序是依次排列起来的指令代码 控制器的基本功能就在于正确且自动地连续执行指令正确地分步完成每一条指令规定的功能 再进一步说,就是向计算机各功能部件提供协调运行每一步所需要的控制信号(还要能及时处理异常情况和紧急请求),返回,2. 控制器的组成,(1).程序计数器:(PC)用于存放指令地址,能够读取指令和接收下一条要执行的指令的地址。有+1或
23、接收新值功能。 (2).指令寄存器:(IR)用于保存从内存读出的指令内容:操作码与操作数地址,主脉冲源与启停控制线路,按需要给出主脉冲信号。 (3).指令执行的步骤标记线路:指明每条指令的执行步骤。 (4).全部时序控制信号的产生部件它依据指令,形成或提供本时刻计算机各部件要用的控制信号。,3. 指令执行步骤,冯. 诺依曼 结构的计算机, 即存储程序的计算机,设置内存,存放程序和数据,在程序运行之前存入。执行程序:(1). 正确从程序首地址开始,(2). 正确分步执行每一条指令,并形成下条待执行指令的地址;(3). 正确并自动地连续执行指令,直到程序的最后一条指令。,返回,每条指令的执行步骤,
24、读取指令 指令地址送入主存地址寄存器 读主存,读出内容送入指定的寄存器 分析指令 按指令规定内容执行指令 不同指令的操作步骤数 和具体操作内容差异很大 检查有无中断请求 若有,则转去处理中断 若无,则转入下一条指令的执行过程,返回,形 成 下 一 条 指 令 的 地 址,总线与寄存器,DB 外部数据总线 IB CPU内部总线 CB 控制总线 AB 地址总线 IR 指令寄存器 AR 地址寄存器 INTP 中断优先级寄存器 PC 程序计数器(R5) SP 堆栈指针(R4),例:分析以下小程序,说明指令的执行步骤。,2000 ADD R0,R1 加法指令 R0+R1R0 AR PC, PC PC +
25、1 ;把PC中的指令地址送地址寄存器, 并产生下一条指令的地址 读主存,IR 读出的内容 ;按照AR中的地址读取指令存入指令寄存器。 R0 R0+R1 ;在累加器中完成加法运算,结果存入R0。 结束,检测中断请求,无中断请求,执行下一条指令。,2001 MVRD R2,R0 传送指令 R2R0 AR PC, PC PC +1 ;把PC中的指令地址送地址寄存器,并产生下一条指令的地址 读主存,IR 读出的内容 ;按照AR中的地址读取指令存入指令寄存器。 R2 R0+0 ;寄存器之间传送数据。 结束,检测中断请求,无中断请求,执行下一条指令。,2002 MVRD R9,2008 取立即数指令 R9
26、2008 AR PC, PC PC +1 ;把PC中的指令地址送地址寄存器,并产生下一条指令的地址 读主存,IR 读出的内容 ;按照AR中的地址读取指令存入指令寄存器。 AR PC, PC PC +1 读主存,R9 读出的内容结束,检测中断请求,无中断请求,执行下一条指令。,取出立即数(在指令的第2个字中)用两步分别送地址 和执行读出操作,之后在此形成下1条指令的地址。,2004 STRR R9 ,R2 写内存R9R2,把R2内容送以R9内容为地址的存储单元。 AR PC, PC PC +1 ;把PC中的指令地址送地址寄存器,并产生下一条指令的地址 读主存,IR 读出的内容 ;按照AR中的地址
27、读取指令存入指令寄存器。 AR R9+0 ;用两步分别送地址和执行写操作,送内存地址(保存 写主存,总线 R2+0 在R9中)到AR,写R2的内容到内存储器指定单元。结束,检测中断请求,无中断请求,执行下一条指令。,2005 IN 80 输入指令,R080口,把80端口地址寄存器的内容送R0。 AR PC, PC PC +1 ;把PC中的指令地址送地址寄存器,并产生下一条指令的地址 读主存,IR 读出的内容 ;按照AR中的地址读取指令存入指令寄存器。 AR I/O port 读外设,数据总线 读出内容 R0 数据总线内容+0结束,检测中断请求,无中断请求,执行下一条指令。,送外设I/O端口地址
28、到地址寄存器,读外设送来的数据到约定的寄存器R0。,2006 JRC 2000 条件相对转移指令,C=1 转2000 AR PC, PC PC +1 ;把PC中的指令地址送地址寄存器,并产生下一条指令的地址 读主存,IR 读出的内容 ;按照AR中的地址读取指令存入指令寄存器。 若C=1 则 PC 指令地址+相对寻址偏移值(在IR的低位字节)否则本步骤什么操作功能也不做(即保持PC内容不变,仍为顺序执行) 读外设,数据总线 读出内容 结束,检测中断请求,无中断请求,执行下一条指令。,2007 RET 子程序返回指令 AR PC, PC PC +1 ;把PC中的指令地址送地址寄存器,并产生下一条指
29、令的地址 读主存,IR 读出的内容 ;按照AR中的地址读取指令存入指令寄存器。 AR SP SP SP+1 读主存,PC 读出内容 结束,检测中断请求,无中断请求,执行下一条指令。,堆栈指针内容送地址寄存器,并修改堆栈指针内容,读出保存在堆栈中的程序断点到PC中,4. 微程序控制器,一、基本概念 (1)、微程序控制器的功能:向整机每个部件提供协同运行所需的控制信号。 (2)、微程序控制器的基本工作原理: 根据本次读入的机器指令的操作码,找到微程序的入口地址并读出这条微指令,然后执行这条微指令(控制计算机各部件协同动作)。然后,从控制存储器读出下一条微指令,为下一次执行指令作准备。微指令:执行一
30、条指令用到的全部控制信号和下一条微指令的地址信息。微程序:有多条微指令构成的程序段。,(3)、微程序控制器的组成: 、控制存储器(MAPROM) :是微程序控制器的核心,存储按一定规则组织好的全部控制信号,由几百条到上千条微指令组成。 、微程序定序器(Am2901):在执行本条指令的同时,形成下一条微指令的地址。 、微指令地址影射部件(MAPROM):由静态存储器构成,MAPROM的输入由指令寄存器的IRH给出8位的操作码,其输出为当前对应的微程序段的入口地址。输入的8位指令操作码与输出的入口地址对应,称为影射。 、微指令寄存器:用于存放当前微指令的内容。 、条件判断线路:由GAL20V8芯片
31、组成。功能一是产生清0信号,功能二是产生条件输入信号SCC。,二、得到下一条微指令的方法,(1)、微程序顺序执行时,本地址 + 1 构成下地址。 (2)、微程序必须转向某微地址时,某地址必须在微指令字中给出。 (3)、如果按执行结果选择顺序执行或转向,微指令字中要指明执行结果及转向地址。执行结果由运算器的标志位状态、控制器的执行 状态和外设中断状态来判断。 (4)、微子程序的调用及返回控制,用到微堆栈(sp )。 (5)、转向多条微指令地址中某一地址的控制(多分支)。 (6)、依据取来的机器指令的操作码,找到对应的微程序的入口地址(功能分支)。,根据以上6 种找下一条微指令的方法,应该从 两方
32、面入手: 一是:在微指令字中,分配相应字段给出微指令转移地址及转移的判断条件。 二是:要有专门的硬件支持。实现微指令地址+1 ,按判断 的条件给出判定结果,给出微堆栈管理等。,三、形成下一条微指令的核心硬件Am2910,Am2910 是教学计算机是形成下一条微指令地址的核心硬件。,条件允许,条件输入,寄存器计数 器装入控制,堆栈满信号,3个使能信号,决定D的输入来源,Y11 Y0,12位 的下地址输出,D11 D0,12 位的地址输入,输出允许控制,由12个D触发器组成。用作寄存器时,用于保存一个微地址,用以实现微程序转移。,由12个D触发器组成。 用作计数器时,具有减一功能,用于控制微程序的
33、循环次数。如果初值是N,则执行则执行N+1次循环。,RLD 寄存器/计数器装入控制,RLD=0 时,不管Am2910 所执行的命令和条件如何,都强制把D11D0装入寄存器/计数器。,四输入的地址选择器: D端:D11D0 ,来源有3个: 1、D来自映射地址部件MAPROM; 2、D来自指令的下地址字段。 3、D来自手拨开关,手动输入地址。,多选器的R端: 由寄存器/计数器产生下地址。 1.微程序转移时的保存在寄 存器中的微地址/R。 2.微程序循环时,计数器具有减1功能,控制循环次数/C。,多选器的F端: 微堆栈,由5字12位的寄存器和指针sp 组成。 用于保存调用子程序时的返回地址和微程序循
34、环时的首地址。,多选器的PC端: 微程序计数器,由12位的寄存器和12位的增量器组成。 1、当增量器的进位输入CI=1时, 多选器的输出Y加1后装入PC ,用于微程序的顺序执行。 2、当增量器的进位输入CI=0时,多 选器的输出Y直接装入PC,用于微程序的多次执行。,命令译码器: 用来接收外部送来的命令码CI3CI0。 接收条件输入信号/CC和条件允许信号/CCEN,对其译码,产生芯片内工作需要的控制信号,和外部要用的3个控制选择信号:/PL ,/MAP , /VECT 。,条件输入信号:/CC 条件允许信号:/CCEN 当 /CCEN=0 、 /CC =1 测试通过。 当 /CCEN=1 、
35、 /CC =0 测试失效。 /CC、/CCEN 与命令码CI3CI0共同决定给出下一条微指令的方案和对堆栈的操作。,命令译码器的输出: /PL:微程序转移控制, /PL=0决定D来自微指令字的下地址字段。 /MAP: 映射地址控制,/MAP=0 决定D来自MAPROM 映射地址。 /VECT:手拨地址控制,/VECT=0 决定D来自手拨开关。,1、Am2910 芯片的内部组成 、1个四输入的多路地址选择器,从D、R、F、pc 四路输入选择一路输出,作为下一条微指令的地址。输出为Y11 Y0。 、由12个D触发器组成的寄存器/计数器。寄存器:用于保存一个微地址,实现微程序转移;计数器:具有减一功
36、能,控制微程序的循环次数。 、微程序计数器,由12位的增量器和12位的寄存器组成,当增量器的输入CI=1时:多选器输出Y+1送pc ,实现微程序的顺序执行。当CI=0时:多选器输出 Y 送pc ,实现重复执行同一指令。 、微堆栈,由5字节12位的寄存器组成,包括微堆栈指针sp 。微堆栈用于保存微子程序调用时的返回地址和微程序循环的首地址,堆栈中的数据超过5个时, sp 发出栈满信号,/FULL=0,再压入的数据将覆盖栈顶原来的数据。,、Am2910的3个使能信号,决定D的输入来源。当 /PL 有效,(/PL=0):D来源于微指令的下地址字段,实现转移。当 /MAP 有效,(/MAP=0): D
37、来源于MAPROM,用于实现从机器指令的操作数找微程序段的首地址。当 /VECT有效,(/VECT=0):D接收手拨地址输入,或不用。 、 Am2910的命令译码器,命令码:I3 I0 。接收外部送来的命令码,该命令码来自微指令字的相关字段,用来选择Am2910 的16 条命令之一。条件输入:/CC条件允许:/CCEN,译码后,产生芯片内工作需要的控制信号 和/PL、/MAP、/VECT 3个控制选择信号,2、Am2910 芯片的引脚定义:、输入信号:D11 D0:外部直接输入的数据,可作为寄存器/计数器的初值,也可经多选器从Y输出,作为下一条微指令的地址。CI3 CI0:Am2910的命令码
38、:来自微指令字。见下表:,命令译码器常用命令码的功能:,0号命令:用于初始化,即无条件清除内部微堆栈,并使 Y的输出为0。2号命令:用于指令功能分支。即输出信号/MAP为低,使 D的输入信号从 MAPROM(微地址影射部件)得 到,并作为输出微地址Y的值。3号命令:用于条件微转移。当条件成立,/CC=0用PL把微指令字中的F地址字段的内容(转移地址)经过D输入并送到Y,实现微程序转移。14号命令:顺序执行。即执行紧跟在本条微指令后面的那条微指令。,/CCEN和/CC:共同确定测试条件是否通过。/CCEN = 0 /CCEN = 1/CC = 1 /CC = 0如测试通过,/CCEN与CI3 -
39、 CI0共同决定给出下地址方案和堆栈的操作。/PLD: 寄存器/计数器装入信号。当/PLD=0时强制把 D11- D0装入寄/计。CI:增量进位输入。CI=0时,Y+0PC。CI=1时, Y+1PC 。 、输出信号:Y11 Y0 : 下一条微指令的地址。用来读下一条微指令在控制存储器的地址。/FULL:微堆栈已满信号。 /FULL=0 表示堆栈已满。/PL,/MAP,/VECTR,F,pc,测试失败,测试通过,6选1,共同来决定输出Y11Y0,6个下地址来源:微下地址、影射地址、手拨地址、计/寄地址、微堆栈、微程序计数器。,微程序控制器基本组成逻辑图,四、微程序控制器的基本组成,微 程 序 控
40、 制 器 的 线 路 逻 辑 图,156页图4.15,教学计算机中的微程序控制器,微程序控制器,微程序控制器逻辑电路 (在小板上的部件),微程序控制器逻辑电路(在大板上的部件),微程序控制器组成: 1片Am2910给出下一条微指令的地址。 1片74LS374存8位下地址(IR)。 1片74LS273存8位条件码(IR)。 1片74LS377存8位当前微地址。 1片GAL20V8 按判断条件产生微指令转移信号和/CC。 1片28C65从指令操作码(映射)产生微下地址。 7片28C64组成控制存储器。 5片GAL20V8用作8位的D触发器(IR寄存器)。 2片GAL20V8实现两个4位的2选1芯片
41、功能,用来选择运算器的A口、B口地址。,微程序控制器部件56位的微指令,地址字段16位,控制命令字段40位。,微程序定序器(Am2910): 在执行当前微指令的同时,形成下一条微指令地址的核心硬件。,微下地址映射部件(MAPROM): 根据当前执行的指令,映射出下一条指令的入口地址。,微下地址映射部件的输入: 来自指令寄存器IRH7IRH0。,微下地址映射部件的输出: 输出到Am2910的外部输入D7D0。,微指令转移条件判断线路: 1、产生清零信号,用来完成对Am2910的初始化操作和为指令寄存器IR复位。 2、产生Am2910的/CC(条件输入)信号。 条件判断的依据1是输入C和Z标志,2
42、是来自指令寄存器的输出:IRH4IRH0。,当前微指令地址显示寄存器: 输出为当前微指令的地址,用8个发光二极管显示。,微指令寄存器IR: 组成如下: 1片74LS374 1片74LS273 5片GAL20V8 微指令寄存器IR的功能是用来存放当前微指令的内容,便于执行微指令。,控制存储器: 由7片28C64组成,是控制器的核心部件。用来存放事先设计好的微程序。每条微指令是56位的,有一个8位的地址编号。根据指令的地址编号,就可以找到对应的指令,取出指令到指令寄存器中执行。,AM2910在控器中的地位,DB:外部数据总线 IB:CPU内部总线 CB:控制总线 AB:地址总线 IR:指令寄存器
43、AR:地址寄存器 INTP:中断优先级寄存器 PC:程序计数器 SP:堆栈指针 SR,DR: 通用寄存器中 操作数地址字段R10R0,教学计算机微程序控制器的实际组成,1、微程序定序器Am2910功能:在执行本条指令的同时,形成下一条微指令的地址。在教学计算机中: 、在教学计算机中,把/OE接地,使Y11Y0总保持有效。 、把/CCEN 接地,使条件判断只取决于/CC。 、把CI接电源,使微指令地址+1总是执行。、用/MAP、/PL把 、与Am2910配套的电路:MAPROM:微地址映射部件SCC GAL20V8:逻辑值的条件判定线路,用于形成/CC信号。,MAPROM 输出的微地址微指令下地
44、址字段的微地址,Am2910的D输入端。,2、微指令地址映射部件由1片28C65静态存储器芯片组成,记作MAPROM。MAPROM的输入由指令寄存器的IRH给出8位操作码,其输出为当前指令对应的微程序段的入口地址。因为只有在读取指令之后才需要映射,所以,仅有Am2910的2#命令才允许读映射地址(见表4.5)。3、微指令转移的条件判断线路由1片GAL20V8组成,1是产生清零信号.2是产生Am2910的/CC信号.4、控制存储器由7片28C64 芯片组成,记作 “ CM1CM7 ” 用来存放教学机的微程序。每个芯片8位,共56位。,5、微指令寄存器由1片74LS374、1片面74LS273、5
45、片GAL20V8组成,用来存放微指令的内容。高16位用作微指令的下地址字段。6、当前微指令地址显示寄存器由1片74LS377组成,存放当前正在执行的微指令的地址并通过指示灯显示出该地址。,微指令格式和控制信号设计,1、8位的微下地址:给出当前微指令的下条相邻微指令的地址。仅当Am2910的 输出信号/PL有效时,该地址才被使用。(156页图4.15)CM1的输出D7D0作为下地址。,2、为Am2910提供的命令码:CI3CI0 4位的命令码。,3、微指令转移的判断条件:指出形成Am2910使用的/CC信号所依据的判断条件。,4、对内存储器和I/O接口的读写控制。,写内存,使用:STRR、PUS
46、H 指令。 读内存,使用LDRR、POP 指令。 写接口,使用IN 指令。 读接口,使用 OUT 指令。 即不读,又不写,应禁止读写操作。,5、对运算器A口、B口地址信号来源的选择,6、对CPU内部总线的读写操作控制:,对CPU内部总线的读写控制,通过3位的DC1编码来控制。谁向内部总线IB发送数据,谁从内部总线IB接受数据,见下表:,7、对几个特定的寄存器读写操作控制:,包括:指令寄存器IR,地址寄存器高8位ARH,地址寄存器低8位ARL,中断优先级寄存器INTP。通过对DC2信号的译码,产生输出,分别送个寄存器的/G控制端,完成对各寄存器接收数据的控制。,8、对运算器部件,有24位的控制信
47、号。4位的A口地址, 4位的B口地址,3位3组的控制码I8I0,3位SST控制记忆ALU的标志位。2位SCI控制运算器最低位的进位输入信号。2位SSH产生最高位、最低位的移位输入信号。,微下地址字段: 执行本指令的同时,本指令的最高8位就是下一条指令的地址。,为Am2910提供的命令码:CI3CI0,微指令转移的判断条件码: SCC3SCC0,对内存和I/O接口的读写控制码:,运算器数据来源选择码: I2I0,运算器A口、B口地址选择码:SA,SB,运算器运算结果选择码:I8I6。,ALU的运算功能结果选择码:I5I3。,运算器通用寄存器A口地址选择码:A3A0。,ALU的通用寄存器B口地址选择码:B3B0。,运算器的状态标志位控制码:C、Z、V、S。,运算器的最高位、最低位移位控制码:SSH。,运算器的最低位的进位输入控制码:SCI。,寄存器接收数据控制码:DC2。,向总线发送、接收数据选择码:DC1。,适用于其它全部指令的几条指令。,一条具体指令的全部内容。,一条具体指令的地址编号。,微程序控制器的运行原理,指令每一个执行步骤用到的全体控制信号组成一微指令 每条指令可以包括一到多个微操作 用多条微指令(一个微程序段)解释每条指令的执行过程 解释全部指令的微程序段的集合构成控制器的微程序 执行一条微指令所用的时间被称为一个微周期。 微指令的格式和内容:下地址字段 控制命令字段,