




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章 中央处理部件(CPU) 中央处理部件(CPU)是计算机系统的核心部件,包括运算器和控制器两大部分。 本章重点讨论控制器,说明在计算机的运行过程中个各硬部件的作用,掌握控制器的工作过程及实现原理。 计算机进行信息处理分为两步:1.将程序和数据存入存储器.2.从“程序入口”第一条指令的地址开始执行程序。计算机中一般用ROM存放固定程序,加电时产生复位(RESET)信号,并从固定程序入口开始运行。当前执行的指令地址放在程序计数器(PC)中,开机时,利用复位信号给PC置初值.计算机工作过程:加电-产生复位信号-执行程序-停机-停电6.1 计算机的硬件系统1.Intel 80386微机系统 80
2、386 微机系统主要由80386CPU、80387协处理器、总线控制逻辑等组成。803842. 80386结构及外部连线 80386包括指令部件、执行部件和存储管理部件。指令部件:完成取指、译码功能,并产生控制信号。执行部件:包括ALU、乘法部件寄存器组等。存储管理部件:确定存储器地址。各信号功能如下:(5)W/R#、D/C#、M/IO#、LOCK#:总线周期信号。80386与存储器IO设备之间传送一个数据的时间叫总线周期。(1)D0 D31: 32位数据总线,双向。(2)A2 A31,BE0#BE3#: A0 A31,是32位地址线。其中A0,A1在80386内部转换成“字节使能”信号BE0
3、#BE3#,分别选择03字节。(3)CLK2:输入到80386 的时钟。(4)reset:总清或复位信号。(6) ADS#、NA#、BS16#、Ready#: 总线控制信号。ADS#:地址状态信号,有效时,表示A2 A31,BE0#BE3#及总线周期信号W/R#,D/C#,M/IO#已有效,开始进行读写。NA#: 是由存储器或IO送到80386的信号。允许CPU送下一地址.BS16#:由存储器或IO送到80386的信号,表示传送数据宽度为16位。(7)HOLD和HLDA:总线仲裁信号。主设备:控制总线的设备。从设备:与主设备交换信息的设备。(8)INTR和NMI: 中断请求和不可屏蔽中断请求信
4、号。(9)PEREQ,BUSY#,ERROR#:协处理器接口信号。PEREQ:为协处理器请求信号。BUSY#:为协处理器忙信号。ERROR#:为协处理器出错信号。(10)电源和接地6.2 控制器的组成6.2.1. 控制器的功能 1.取指令2.分析指令,也叫解释或指令译码。3.执行指令除此之外,还要有:4.控制程序和数据的输入与结果输出。5.对异常情况的处理6.2.2. 控制器的组成 1.程序计数器(PC)2.指令寄存器(IR)3.指令译码器或操作码译码器4. 脉冲源及启停线路5.时序控制信号形成部件6.2.3. 指令执行过程 1.组成控制器的基本电路计算机中采用的电路基本分为两种类型:(1)具
5、有记忆功能:触发器,寄存器,计数器,存储单元等。(2)没有记忆功能:门电路,加法器,ALU等。nHnnYX半加器逻辑图2. 指令执行过程举例 下面以加法指令和转移指令为例:(1)加法指令的执行过程参看图6.6加法指令功能: 将寄存器( rs )中的数与存储器中的一个数(地址为(r s1)+ DispDisp)相加,结果放rd中。假设指令格式如下:操作码操作码rs,rdrs1imm(imm(或或Disp)Disp)加法指令完成以下操作:(1)从存储器取指令,送入IR中,并对操作码译码。 程序计数器加1。为此,控制器应发出的信号有:PC AB, W/R=0, M/IO=1; DB IR; PC+1
6、参见25假设指令格式如下:操作码操作码rs,rdrs1imm(imm(或或Disp)Disp)加法指令完成以下操作:(2)计算数据地址,将得到的有效地址送入AR。 控制器应发出的信号有:rs1 GR , (rs1) ALU, disp ALU,“+” , ALU AR(3)到存储器取数。 控制器应发出的信号有:AR AB, W/R=0, M/IO=1; DB DR假设指令格式如下:操作码操作码rs,rdrs1imm(imm(或或Disp)Disp)(4)进行加法运算,结果送寄存器,并根据结果设置状态位N,Z,V,C。 控制器应发出的信号有:rs GR , (rs) ALU, DR ALU,“+
7、” 送送 ALU, rd GR, ALU GR设置设置N,Z,V,C以上操作需四个机器周期,安排如下:t1t2t3t4取指令取指令计算地址计算地址取数取数运算送结果运算送结果2. 指令执行过程举例 ()条件转移指令的执行过程指令功能:根据N,Z,V,C的状态,决定是否转移。满足条件,则转移到本指令所指定的地址,否则顺序执行。条件指令完成以下操作:(1)从存储器取指令,送入IR中,并对操作码译码, 程序计数器加1。如不转移即为下条指令地址。为此,控制器应发出的信号有:PC AB, W/R=0, M/IO=1; DB IR; PC+1(2)如转移条件成立,需计算转移地址PC+disp 控制器应发出
8、的信号有:PC ALU, disp ALU,“+” , ALU PC其他指令的控制信号也按同样方法分析,根据指令功能确定所需机器周期数,并确定所需控制信号。 控制信号如何产生呢?一般有微程序控制和硬布线控制两种方法。 6.3 微程序控制计算机的基本工作原理6.3.1 微程序控制的基本概念 几个名词概念: 微操作:微操作:完成指令功能所需的一系列基本操作。完成指令功能所需的一系列基本操作。微指令:微指令:同时发出的控制信号所执行的一组微操作。同时发出的控制信号所执行的一组微操作。 组成微指令的微操作又叫组成微指令的微操作又叫微命令微命令。 一条指令的实现,可由执行若干条微指令来完成。一条指令的实
9、现,可由执行若干条微指令来完成。微程序:微程序:完成指令功能所需的微指令序列的集合。完成指令功能所需的微指令序列的集合。控制存储器:控制存储器:存放微程序与下址的存储器。一般用存放微程序与下址的存储器。一般用ROM。6.3.2 实现微程序控制的基本原理 1. 控制信号 将前面讲过的运算器和控制器合在一起,即为CPU框图356.3.2 实现微程序控制的基本原理 1. 控制信号 仍以加法指令为例:它由四条微指令解释执行,每条微指令所需信号为:(1)取指微指令指令地址送地址总线:PC AB (1 1)发访存控制命令:ADS(21), M/IO=1(22), W/R=0(23)指令送指令寄存器: DB
10、 IR(5 5)程序计数器+1:PC+1(3 3)(2)计算地址微指令取两个源操作数: rs1 GR (8 8),), (rs1) ALU(10) disp ALU (4 4)加法运算: “+” (13)有效地址送地址寄存器: ALU AR(19)(3)取数微指令数据地址送地址总线: AR AB (2020)发访存控制命令:ADS (21), M/IO (22), W/R (23) 数据送数据寄存器: DB DR (6) (4)加法运算和送结果微指令两个源操作数送ALU: rs GR (9) , (rs) ALU(11) DR ALU (1212)加法运算: “+” (13)送结果: ALU
11、GR(17)下面讨论如何产生这些信号:微指令最简单的形式是每个控制信号用一个控制位来表示。“1”表示有控制信号,“0”表示没有控制信号。而M/IO,W/R等信号,则根据情况置成“1”或“0”。图6.8中总共有23个控制信号,需要23位。如果控制存储器为4K字,则每条微指令还需12位表示下址。微指令格式表示如下:实际计算机控制信号数量比上例大得多。微指令字的长度一般在100位以上。下图为加法指令的四条微指令编码。实际计算机控制信号数量比上例大得多。微指令字的长度一般在100位以上。2. 微程序控制器微程序控制器工作原理:指令取到IR中以后,根据操作码译码得到相应指令的第一条微指令的地址。指令译码
12、部件可用只读存储器组成,将操作码作为只读存储器的输入地址,该单元的内容即为相应的微指令在控制存储器中的地址。根据此地址取出微指令放在微指令寄存器中。3.时序信号及工作脉冲 的形成在图6.8中,使各个寄存器接收数据的工作脉冲是如何形成的呢?(1)如何形成CLK,T1,T2?CLK2二分频后得到CLK,再 二分频得到T1,反向后得到T2.(2)如何形成CP?CP= T2 CLKCLK2利用不同信号组合可得到其他工作脉冲。如:CP1= T1 CLKCLK23.时序信号及工作脉冲 的形成(3)寄存器接收数据的工作脉冲是如何形成的呢?例如取指周期,要将指令送IR,并且PC+1,此时:DB IR和PC+1
13、为“1”.254.电路配合中的常见问题(1)电路延迟引起的波形畸变4.电路配合中的常见问题(2)机器周期的确定5.微程序控制计算机工作过程简单总结(1)加电,由reset 信号为PC置初值.同时在微指令寄存器内置一条“取指”微指令.(2)机器开始工作,产生T1,T2,和CP脉冲.(3)机器不断取指令、分析指令、执行指令。微指令从微程序控制器中取出后,放在微指令寄存器中,由微指令的控制字段的各位直接控制信息和数据的传送。停机和停电的区别:停机时寄存器、存储器信息不变。重新启动后,继续执行原程序。停电则信息消失,加电后重新开始。6.4 6.4 微程序设计技术微程序设计技术在进行微程序设计时,还要注
14、意三个问题:在进行微程序设计时,还要注意三个问题:(1)如何缩短微指令字长。)如何缩短微指令字长。(2)如何减少微程序长度。)如何减少微程序长度。(3)如何提高微程序的执行速度。)如何提高微程序的执行速度。6.4.1 微指令的编译法(编码译码方法)微指令的编译法(编码译码方法)1 . 直接控制法,不译法。直接控制法,不译法。控制字段的每一位就是一个微命控制字段的每一位就是一个微命令,直接对应于一种微操作。令,直接对应于一种微操作。优点:简单直观,微命令相互独优点:简单直观,微命令相互独立可并行执行,不需译码,速度快。立可并行执行,不需译码,速度快。缺点:微指令很长,信息效率低。缺点:微指令很长
15、,信息效率低。2.字段直接编译法字段直接编译法微周期:执行一条微指令所需的时间。微周期:执行一条微指令所需的时间。在任一微周期内,所有微命令不可能同时有效。在任一微周期内,所有微命令不可能同时有效。如果若干个微命令在每个微周期内只有一个起作用,那么如果若干个微命令在每个微周期内只有一个起作用,那么这些微命令是这些微命令是互斥的互斥的。将微指令操作码字段分成若干小段,每个小段将微指令操作码字段分成若干小段,每个小段分别译码,译码器的输出即为原来的微命令。分别译码,译码器的输出即为原来的微命令。分段方法:分段方法:互斥的微命令归为同一组互斥的微命令归为同一组相容的微命令分在不同的字段中相容的微命令
16、分在不同的字段中字(分)段直接编译法微命令微命令微命令下址字段控制字段微命令译码器微指令寄存器3.字段间接编译法字段间接编译法在字段直接编译法中,还规定一个字段的某在字段直接编译法中,还规定一个字段的某些微命令要兼由其他字段的某些微命令来解释,些微命令要兼由其他字段的某些微命令来解释,称为:称为:字段间接编译法。字段间接编译法。可进一步缩短微指令的字长。可进一步缩短微指令的字长。字段间接编译法微命令译码器微命令译码器a1,1a2,1a7,1a1,2a2,2a7,2b1b2微命令寄存器4. 常数源字段常数源字段E在微指令中,一般设有一个常数源字段在微指令中,一般设有一个常数源字段E,如同如同指令
17、中的直接操作数一样。指令中的直接操作数一样。E字段一般只有几位,字段一般只有几位,用来给某些部件发送常数。用来给某些部件发送常数。用作计数器初值,控用作计数器初值,控制微程序循环次数等。制微程序循环次数等。5. 其它6.4.2 6.4.2 微指令流的控制微指令流的控制 对微程序流的控制就是指现行微指令执行后,对微程序流的控制就是指现行微指令执行后,怎样产生下一条微指令的地址,即怎样产生下一条微指令的地址,即后继微地址。后继微地址。 什么是现行微指令?什么是现行微指令? 什么是现行微地址?什么是现行微地址?什么是后继微指令?什么是后继微指令? 什么是后继微地址?什么是后继微地址?前面已讲过两种产
18、生后继微指令地址的方法:前面已讲过两种产生后继微指令地址的方法: 1 由指令操作码译码器产生。(取指令后)由指令操作码译码器产生。(取指令后) 2 由微指令的下址字段指出后继微地址。由微指令的下址字段指出后继微地址。 下面介绍几种常见的下面介绍几种常见的产生产生后继微地址的方法。后继微地址的方法。 1. 产生后继微指令地址的几种方法产生后继微指令地址的几种方法) 增量方式(计数器方式):增量方式(计数器方式):后继地址可由现行地址加上一个增量(加后继地址可由现行地址加上一个增量(加1)形成。)形成。在顺序执行微指令时,可以增量方式形成后继地址。在顺序执行微指令时,可以增量方式形成后继地址。 当
19、微程序实现转移时,则要产生转移地址。当微程序实现转移时,则要产生转移地址。PC :( 微程序计数器微程序计数器)用来指示微指令在控制存储器中的地址。用来指示微指令在控制存储器中的地址。顺序执行微指令时顺序执行微指令时, PC +1产生后继地址。产生后继地址。操作码地址码译码器uPC控制存储器控制字段下址译码器微程序入口微指令寄存器转移地址转移条件+1IR顺序执行指令则将现行微地址(在UPC中)+1后产生后继地址,若遇到转移类指令,则由,uPC与形成转移地址的逻辑电路组合成后继地址这种方法将下址字段分成两部分,转移控制字段这种方法将下址字段分成两部分,转移控制字段BCF和和转移地址字段转移地址字
20、段BAF,当微程序实现转移时,将,当微程序实现转移时,将BAF送送PC 否则顺序执行下一条微指令(否则顺序执行下一条微指令( PC +1)2 ) 增量与下址字段结合产生后继微地址:增量与下址字段结合产生后继微地址:执行微指令条件时执行微指令条件时,转移条件有好几种转移条件有好几种:这里假设有这里假设有8种种,由控制字段由控制字段BCF译码给出。如表译码给出。如表6.2CT计数器计数器-控制循环次数控制循环次数.RR-返回地址寄存器返回地址寄存器,存放执行微子程序后返回原来微存放执行微子程序后返回原来微程序的地址。程序的地址。 (3)多路转移方式多路转移方式:一条微指令存在多个转移分支的情况称为
21、一条微指令存在多个转移分支的情况称为多路转多路转移。移。一个明显的例子是根据操作码产生不同的后继地一个明显的例子是根据操作码产生不同的后继地址。址。 有时要根据硬件状态决定后继地址。有时要根据硬件状态决定后继地址。 根据一个状态可以有两路转移,根据两个状根据一个状态可以有两路转移,根据两个状态可以有四路转移。态可以有四路转移。(4) 微中断微中断:2 以以AM2900系列芯片构成的微程序系列芯片构成的微程序CPU TEC-2机的机的CPU是以位片式器件是以位片式器件Am2901和和Am2910为核为核心构成的,主要由运算器、控制器组成。心构成的,主要由运算器、控制器组成。 1) 运算器运算器
22、数据处理单元:数据处理单元:由四片由四片Am2901和一片和一片Am2902构成超构成超前进位前进位ALU。 状态寄存器状态寄存器 STR:保存运算结果状态保存运算结果状态(F) 寄存器寄存器 R0R15:由由16个个16位寄存器组成,其中位寄存器组成,其中R4用做用做堆栈指针堆栈指针SP,R5用做程序计数器用做程序计数器PC,R6定义为定义为IP,保,保存当前指令地址,其余用做通用寄存器存当前指令地址,其余用做通用寄存器 2) 控制器控制器 采用并行微程序控制方式,主要由采用并行微程序控制方式,主要由:指令寄存器指令寄存器IR微程序入口地址映射存储器微程序入口地址映射存储器MAPROM微程序
23、控制器微程序控制器(定序器)定序器)Am2910控制存储器控制存储器CS微指令寄存器微指令寄存器等部分组成。等部分组成。控制存储器CS微指令寄存器MAPPL AM2910Am2901 4Am2902MAP操作码 地址码I/O存储器161616总线控制信号12CCI3I0DY12IR模型机结构图 AM2910 AM2910芯片功能简介芯片功能简介 AM2910 称作微程序控制器,用于产生下称作微程序控制器,用于产生下一条微指令地址,其长度一条微指令地址,其长度12位,可寻址位,可寻址4K的控的控制存储器。制存储器。一、一、AM2910的组成:的组成: 由由PC 、微堆栈、计数器微堆栈、计数器/寄
24、存器、命令译码器、寄存器、命令译码器、多路地址选择器多路地址选择器组成,组成, 其输出其输出Y0Y11直送到控存直送到控存CSreturnPC 、微堆、微堆栈、计数器栈、计数器/寄存器、命令寄存器、命令译码器、多路译码器、多路地址选择器地址选择器其输出其输出Y0Y11直送直送到控存到控存CS( () )多路地址选择器多路地址选择器 用来选择下一条微指令地址。用来选择下一条微指令地址。 它从片内的微程序计数器(它从片内的微程序计数器( PC )、寄、寄存器存器/计数器(计数器(R)微堆栈()微堆栈(F)或直接从输)或直接从输入地址(入地址(D)中选择一个作为输出。)中选择一个作为输出。 由由12
25、位寄存器和位寄存器和12位增量器组成。位增量器组成。当增量器的输入当增量器的输入CI为高电平时,多路器的为高电平时,多路器的输出输出Y加加1后装入后装入PC (即即PC Y+1),用于实,用于实现微程序的顺序执行,而当增量器的输入现微程序的顺序执行,而当增量器的输入CI为为低电平时,多路器的输出低电平时,多路器的输出Y直接装入直接装入PC(即即PC Y),用于实现一条微指令的多次执行,用于实现一条微指令的多次执行( () ) 微程序计数器(微程序计数器( PC ) 由由1212个个D D型触发器组成,当它用作寄型触发器组成,当它用作寄存器时,主要用于保存一个微地址,用以存器时,主要用于保存一个
26、微地址,用以实现微程序分支,当它用作计数器时,具实现微程序分支,当它用作计数器时,具有减有减“1”1”功能(受功能(受AM2910AM2910的命令码的命令码I3-I0I3-I0控制)主要用于控制微程序的循环次数,控制)主要用于控制微程序的循环次数,若装入的初值为若装入的初值为N N则可执行则可执行N+1N+1次次. .( () ) 寄存器寄存器/ /计数器计数器 由由512位寄存器堆位寄存器堆F和微堆栈指针和微堆栈指针SP组组成,主要用于保存微子程序的返回地址和微成,主要用于保存微子程序的返回地址和微程序循环的首地址。微堆栈指针程序循环的首地址。微堆栈指针SP 总是指总是指向最后一次压入的数
27、据,因此执行微程序循向最后一次压入的数据,因此执行微程序循环时,允许不执行弹出操作而直接访问微堆环时,允许不执行弹出操作而直接访问微堆栈的栈顶,当堆栈中的数据达到栈的栈顶,当堆栈中的数据达到5个时就发出个时就发出堆栈满信号(堆栈满信号(FULL=0),这时继续压入操),这时继续压入操作都将覆盖掉栈顶元素作都将覆盖掉栈顶元素( () ) 微堆栈(微堆栈(F F)接收从微指令控制字段送来的命令码接收从微指令控制字段送来的命令码(I3I0)和硬件状态和硬件状态CC,用来执行,用来执行AM2910的的内部操作及选择下址输出内部操作及选择下址输出.( () ) 命令译码器命令译码器AM2910D11D0
28、 :外部输入数据,既可作为寄存器:外部输入数据,既可作为寄存器/计数器的初计数器的初值,也可直接经地址多路选择器值,也可直接经地址多路选择器Y输出,作为下一条输出,作为下一条微指令的地址。微指令的地址。二、Am2910引脚信号(1) (1) 输入线输入线CC :条件输入,若为低电平,则表示测试条件为真,:条件输入,若为低电平,则表示测试条件为真,否则,表示测试失效。否则,表示测试失效。CCEN :CC允许信号,若为低电平,表示允许信号,若为低电平,表示CC有效,有效,否则不管否则不管CC是什么状态,测试条件恒为真。是什么状态,测试条件恒为真。I3I0 :AM2910的命令码,来自微指令的有关字
29、段的命令码,来自微指令的有关字段和和CC配合,用以选择配合,用以选择Am2910的十六条命令之一。的十六条命令之一。RLD :寄存器:寄存器/计数器装入信号,当为低电平时,不管计数器装入信号,当为低电平时,不管Am2910所执行的命令和测试条件如何,都强制把输所执行的命令和测试条件如何,都强制把输入入D11D0装入。装入。 CI :增量器进位输入,当为高电平时:增量器进位输入,当为高电平时PC Y+1,当为当为低电平时低电平时, PC Y。OE :Y输出允许信号,低电平有效,当为高电平时,输出允许信号,低电平有效,当为高电平时,Y输出为高阻状态。输出为高阻状态。CP :时钟脉冲信号,由低变高的
30、上升沿触发所有内部:时钟脉冲信号,由低变高的上升沿触发所有内部状态的变化。状态的变化。 二、Am2910引脚信号(1) (1) 输入线输入线Y11Y0 :下一条微指令的地址,它直接作为控制存储:下一条微指令的地址,它直接作为控制存储器的地址。器的地址。FULL :微堆栈满信号,低电平有效。:微堆栈满信号,低电平有效。PL :使能信号,有效时(低电平)决定输入:使能信号,有效时(低电平)决定输入D来源于来源于微指令的地址字段,用于实现微程序的转移。微指令的地址字段,用于实现微程序的转移。MAP :使能信号,有效时(:使能信号,有效时(MAP=0),决定输入),决定输入D来来源于源于MAPROM(
31、即图中的操作码译码器),给出相(即图中的操作码译码器),给出相应指令的第一条微指令地址。应指令的第一条微指令地址。VECT :使能信号,有效时(:使能信号,有效时(VECT=0),决定),决定D来源来源于中断逻辑,给出中断处理微程序的入口地址。于中断逻辑,给出中断处理微程序的入口地址。() ) 输出线输出线四位命令码I3I0可提供十六条命令,用来选择下一条将要执行的微指令的地址。其中有4条命令(I3I0为0,2,12和14)是无条件转移命令,有3条命令(8,9或15)受到条件输入(CC和CCEN)的控制,命令15同时受到条件输入和计数器当前值的控制,可以实现三路(F,D, PC )转移。 三、
32、三、AM2910AM2910的命令码的命令码I3I0AM2910的命令举例的命令举例2号命令(号命令(I3I0=0010): 无条件转无条件转MAP发发MAP信号,下条微指令的地址来自信号,下条微指令的地址来自MAPROM,该命该命令用在取指之后。令用在取指之后。3号命令(号命令(I3I0=0011): 条件转条件转PL先测试条件先测试条件CC,若测试通过(若测试通过(CC=0),则下址来自微指则下址来自微指令的地址字段(即转移),否则来自令的地址字段(即转移),否则来自PC (顺序)(顺序)。4号命令(号命令(I3I0=0100): 进栈并条件装入计数器进栈并条件装入计数器把下条微指令的地址
33、压入堆栈中,同时若条件测试通把下条微指令的地址压入堆栈中,同时若条件测试通过,则把微指令地址字段的内容(通常为循环次数)过,则把微指令地址字段的内容(通常为循环次数)装入计数器,然后顺序执行。该命令用来建立微循环。装入计数器,然后顺序执行。该命令用来建立微循环。8号命令(号命令(I3I0=1000): 重复循环重复循环使用这条命令,前面应已执行过使用这条命令,前面应已执行过4号命令,即循环首号命令,即循环首地址已入栈。执行该命令时,先判断计数器是否为地址已入栈。执行该命令时,先判断计数器是否为0,若不为若不为0,则计数器减,则计数器减1,取栈顶内容作为下址(即循,取栈顶内容作为下址(即循环),
34、否则,环),否则, SP-1,然后顺序执行。然后顺序执行。 15号命令(号命令(I3I0=1111): 三路转移三路转移使用这条命令,前面应已执行过使用这条命令,前面应已执行过4号命令,即已把转号命令,即已把转移地址入栈移地址入栈,循环计数值装入计数器。该命令同时受条循环计数值装入计数器。该命令同时受条件输入和计数器当前值的控制件输入和计数器当前值的控制.15号命令(号命令(I3I0=1111): 三路转移三路转移计数器计数器不为0,则减1为0,退栈条件满足:退栈, PC作为下址作为下址条件不满足:栈顶栈顶作为下址作为下址条件满足:退栈, PC作为下址作为下址条件不满足:当前微指令下址字下址字
35、段作为下址段作为下址.1.水平型微指令:水平型微指令: 每条微指令定义并执行几种并行的基本操作。每条微指令定义并执行几种并行的基本操作。 这种微指令包含的微命令较多,相应的位数较多这种微指令包含的微命令较多,相应的位数较多(水平方向长),直接控制法、字段编译法属于此水平方向长),直接控制法、字段编译法属于此类。类。 特点:特点:执行效率高(每步能做较多操作),灵活执行效率高(每步能做较多操作),灵活性强,微程序短,微指令长。性强,微程序短,微指令长。6.4.3 6.4.3 微指令格式微指令格式可分成两大类可分成两大类:水平型微指令水平型微指令,垂直型微指令:垂直型微指令:2 垂直型微指令:垂直
36、型微指令: 在微指令中设有微操作码字段,采用微操作在微指令中设有微操作码字段,采用微操作码编译法,由微操作码规定微操作的功能。码编译法,由微操作码规定微操作的功能。特点:特点:每条微指令只定义一、二种基本操作。每条微指令只定义一、二种基本操作。 这种微指令位数较少(水平方向短),而实现同这种微指令位数较少(水平方向短),而实现同等功能所需的微程序较长(垂直方向长)。等功能所需的微程序较长(垂直方向长)。 优点:微指令短,简单,规整,易于编制与优点:微指令短,简单,规整,易于编制与调试。调试。 缺点:缺点: 执行效率低,不能充分利用执行效率低,不能充分利用CPU的并的并行能力。行能力。下面举一个
37、简化的垂直型微指令的例子下面举一个简化的垂直型微指令的例子 设微指令字长设微指令字长16位,微操作码位,微操作码3位,有位,有8条微指条微指令。令。(1).寄存器寄存器-寄存器传送型微指令寄存器传送型微指令 微指令格式:微指令格式:0 0 0 目标寄存器编址目标寄存器编址 源寄存器编址源寄存器编址 其其 他他0 1 2 3 7 8 12 13 15功能:源寄存器数据送目标寄存器。功能:源寄存器数据送目标寄存器。02位:微操作码位:微操作码(2).运算控制型微指令运算控制型微指令 微指令格式:微指令格式:0 0 1右输入源编址右输入源编址 左输入源编址左输入源编址 ALU0 1 2 3 7 8
38、12 13 15功能:选择运算器功能:选择运算器(ALU)的左右两输入端的左右两输入端的信息的信息,按按ALU字段指定的运算功能进行字段指定的运算功能进行处理,结果送入暂存器处理,结果送入暂存器.还有其它一些微指令还有其它一些微指令.3.水平型微指令与垂直型微指令的比较水平型微指令与垂直型微指令的比较水平型微指令水平型微指令执行效率高,灵活性强,微程执行效率高,灵活性强,微程序短,而垂直型微指令则并行操作能力差序短,而垂直型微指令则并行操作能力差.水平型微指令执行一条指令时间短水平型微指令执行一条指令时间短,而而垂直垂直型微指令则较长型微指令则较长.水平型微指令字较长水平型微指令字较长,但微程
39、序较短但微程序较短.水平型微指令用户较难掌握水平型微指令用户较难掌握,而垂直型微指而垂直型微指令相对容易。令相对容易。TEC-2机微指令格式机微指令格式B55 46 45 44 43 40 39 37 36 35 34 3210 位下址备用CI3-0SCCSC 备用 SSTB23 22 2019 16 15 12 11 109 8 7 6 4 3 2 B0WEI2-0A口地址B口地址SCi SSH SASBDC1DC2B31 30 28 27 26 24I8-6I5-3REQMIOB55 46 45 44 43 40 39 37 36 35 34 3210 位下址备用CI3-0SCCSC 备用
40、 SSTB55B46: 10 位下址字段。位下址字段。B43B40: AM2910 的的4 位命令代码(位命令代码(I3I0),给),给 出出16条命令之一。条命令之一。SCC和和SC: 给出给出AM2910的条件输入(的条件输入(CC)的编码。)的编码。SCC和和SC: 给出给出AM2910的条件输入(的条件输入(CC)的编码。)的编码。SCC SC /CC SCC IR10-8 /CC 0 1 0 1 2 3 4 5 0 /FS1 /FS2 /FS3 /WAIT 2 3 4 5 6 1 /C /Z /V /S /INT 7 0 1 2 3 4 5 6 7 /C /Z /V /S C Z V
41、 S return操作码操作码CND位移量位移量 15 10 9 8 7 0 FS1 FS2 FS3 FS4 X X X 1 运算器实验运算器实验 0 0 0 0 装入微程序装入微程序 0 0 1 0 执行微程序执行微程序 0 1 0 0 存储器写(单步)存储器写(单步) 0 1 1 0 存储器读(单步)存储器读(单步) 1 0 0 0 存储器读(连续)存储器读(连续) 1 0 1 0 从从0地址连续执行地址连续执行 1 1 0 0 从指定地址单步执行从指定地址单步执行 1 1 1 0 从指定地址连续执行从指定地址连续执行B55 46 45 44 43 40 39 37 36 35 34 32
42、10 位下址备用CI3-0SCCSC 备用 SSTSST: 指出如何设置状态位指出如何设置状态位C,Z,V,S。SST C Z V S 0 1 2 3 4 5 6 7 C CYIB7 0 1RAM0RAM3 Q0 Z FIB6 Z Z Z Z Z V OVIB5 V V V V V S F3IB4 S S S S S转转16B23 22 2019 16 15 12 11 109 8 7 6 4 3 2 B0WEI2-0A口地址B口地址SCi SSH SASBDC1DC2B31 30 28 27 26 24I8-6I5-3REQMIOMIO REQ WE操作功能0 0 00 0 10 1 00
43、1 1 0 X1 1 1 X存储器写存储器写存储器读存储器读I/O 写写I /O 读读不操作不操作装入微码装入微码A口地址:给出AM2901通用寄存器组的A口地址。B口地址:给出AM2901通用寄存器组的B口地址。B23 22 2019 16 15 12 11 109 8 7 6 4 3 2 B0WEI2-0A口地址B口地址SCi SSH SASBDC1DC2 SCi Cin0 00 101 1 1 0 1 CTCL方波方波SSH 左 移 右 移RAM0 Q0RAM3 Q3 0 C Q3 X0 00 101 1 1 X X F3 X 0 C CYF3或或OV X XRAM0RAM0最低进位最低
44、进位移位控制移位控制B23 22 2019 16 15 12 11 109 8 7 6 4 3 2 B0WEI2-0A口地址B口地址SCi SSH SASBDC1DC2SA=0DC1控制控制 0 1 2 3 4 5 6 7A、B口地址口地址选择控制选择控制SB=0A口地址 B口地址SA=1SB=1IR3-0IR7-4DC2控制控制SWTOIBRTOIBITOIBFTOIBINTA NC EI DI NC GIR GAR GINTPCPLDR0CPLDR1CPLDR2CPLDR3 0 1 2 3 4 5 6 7p11TEC-2机CPU组成:1.指令寄存器IR(16位)2.译码器(MAPROM)2
45、片2716(2K8)输入6位地址,输出10位微指令地址。3.AM2910微程序定序器4.控制存储器7片6116组成(2K8)只用1K.5.程序计数器PC(用R5代替)6.56条指令的微码存在2片2176中(2K16) ,每条微指令占4个字,高8位清0,开机时装入CS.TEC-2机微程序执行过程:机微程序执行过程:设功能开关设功能开关FS1FS4拨在拨在1010位置。从位置。从0地址连续地址连续执行。执行。1.加电后,发加电后,发reset信号,使微指令寄存器的信号,使微指令寄存器的43-40清清0,即,即0#命令。并使命令。并使2910的的Y11-Y0(这里仅用这里仅用Y9-Y0)为为0,故首
46、先读出控存中,故首先读出控存中0#单元的微指令。单元的微指令。2.第一条微指令是判第一条微指令是判FS1的状态的状态,若为若为1,条件条件CC满足满足,执行执行3#命令命令,转移。转移。B55 46 454443 40 39 37 36 35 34 32 10 位下址备 CI3-0SCC SCSST 23 22 2019 16 15 12 11 109 8 7 6 4 3 2 B0WE I2-0A口地址 B口地址SCi SSH SASBDC1DC2 31 30 28 27 26 24I8-6I5-3REQMIO备0000 0100 00 00 0011 0 1 0 0 0 0 00 1 0 1
47、1 0 0 0 0 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 01 0 0 4 0 3 4 0 B 0 F 0 5 0 0 2 next(1). 第一条微指令是判第一条微指令是判FS1的状态的状态,若为若为1,条件条件CC满足满足,执行执行3#命令命令,转移到转移到10H.CC条件条件=FS1(SCC=010,SC=0)TEC-2机微程序清单:机微程序清单:地址 微操作 命令 下址 十六进制代码00H CC=FS1 3# 10H 04 03 40 B0 F0 50 02 10H CC=FS2 3# 18H 06 03 60 90 80 00 00 11
48、H CC=FS3 3# 17H 05 C3 80 80 C5 00 00 17H 0 PC 14# 00 0E 00 B1 95 50 00 18H PC AR 14# 00 0E 00 B0 C5 60 72 PC IP19H PC+1 PC 14# 00 0E 00 B0 C5 60 72 MEM IR1AH MAP=0 2# 00 02 00 90 80 00 00 B55 46 454443 40 39 37 36 35 34 32 10 位下址备 CI3-0SCC SCSST 23 22 2019 16 15 12 11 109 8 7 6 4 3 2 B0WE I2-0A口地址 B
49、口地址SCi SSH SASBDC1DC2 31 30 28 27 26 24I8-6I5-3REQMIO备0000 0110 00 00 0011 0 1 1 0 0 0 00 1 0 01 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 6 0 3 6 0 9 0 8 0 0 0 0 0 next(2). 10H中的微指令是判中的微指令是判FS2的状态的状态,条件条件CC不不满足满足,顺序执行顺序执行. 10H CC=FS2 3# 18H 06 03 60 90 80 00 00地址地址 微操作微操作 命令命令 下址下址 十
50、六进制代码十六进制代码B55 46 454443 40 39 37 36 35 34 32 10 位下址备 CI3-0SCC SCSST 23 22 2019 16 15 12 11 109 8 7 6 4 3 2 B0WE I2-0A口地址 B口地址SCi SSH SASBDC1DC2 31 30 28 27 26 24I8-6I5-3REQMIO备0000 0101 11 00 0011 1 00 0 0 0 0 0 1 0 0 0 0 0 00 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 5 C 3 8 0 8 0 C 5 0 0 0
51、 0 next(3). 11H中的微指令是判中的微指令是判FS3的状态的状态,条件条件CC满足满足,转移转移到到17H执行执行. 前三条判断前三条判断FS1-3,符合符合101,从从0地址执行地址执行程序程序,首先将首先将PC Q,然后将然后将PC(R5)清清0.11H CC=FS3 3# 17H 05 C3 80 80 C5 00 00地址地址 微操作微操作 命令命令 下址下址 十六进制代码十六进制代码B55 46 454443 40 39 37 36 35 34 32 10 位下址备 CI3-0SCC SCSST 23 22 2019 16 15 12 11 109 8 7 6 4 3 2
52、 B0WE I2-0A口地址 B口地址SCi SSH SASBDC1DC2 31 30 28 27 26 24I8-6I5-3REQMIO备0000 0000 00 00 1110 0 00 0 0 0 0 0 1 0 1 1 0 0 01 1 00 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 00 0 0 0 0 E 0 0 B 1 9 5 5 0 0 0 next 17H中的微指令是将中的微指令是将PC清清0(R5-R5 R5),然后顺序执然后顺序执行行. I8-0=011 001 001(F B,R-S, A.B),SA,SB=0MIO,REQ,WE=101,
53、表示无操作表示无操作 17H 0 PC 14# 无用无用 00 0E 00 B1 95 50 00地址地址 微操作微操作 命令命令 下址下址 十六进制代码十六进制代码(4).B55 46 454443 40 39 37 36 35 34 32 10 位下址备 CI3-0SCC SCSST 23 22 2019 16 15 12 11 109 8 7 6 4 3 2 B0WE I2-0A口地址 B口地址SCi SSH SASBDC1DC2 31 30 28 27 26 24I8-6I5-3REQMIO备0000 0000 00 00 1110 000 0 0 0 0 0 1 0 1 1 0 0
54、00 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 E 0 0 B 0 C 5 6 0 7 2 next18H中的微指令是将中的微指令是将PC送送AR同时送同时送IP(0+R5 R6),然然后顺序执行后顺序执行. I8-0=011 000 100(F B,R+S, 0,A)DC1=7发发DI,DC2=2,发发GAR(地址寄存器门打开)地址寄存器门打开) 18H PC AR 14# 无用无用 00 0E 00 B0 C5 60 72地址地址 微操作微操作 命令命令 下址下址 十六进制代码十六进制代码PC IP(R6)(5).B55 4
55、6 454443 40 39 37 36 35 34 32 10 位下址备 CI3-0SCC SCSST 23 22 2019 16 15 12 11 109 8 7 6 4 3 2 B0WE I2-0A口地址 B口地址SCi SSH SASBDC1DC2 31 30 28 27 26 24I8-6I5-3REQMIO备0000 0000 00 00 1110 000 0 0 0 0 0 0 0 1 1 0 0 00 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 E 0 0 3 0 B 0 5 4 0 1 next19H中的微指令是
56、中的微指令是取指取指发存储器读信号发存储器读信号=001及及GIR(IR门打开门打开),同时同时PC加,加,(1+0+ R5 R5),然后顺序执行然后顺序执行. I8-0=011 000 011(F B,R+S, 0,B),Sci=1,Cin=1DC2=1, 19H PC+1 PC 14# 无用无用 00 0E 00 30 B0 54 01地址地址 微操作微操作 命令命令 下址下址 十六进制代码十六进制代码MEM IR(取指)取指)(6).B55 46 454443 40 39 37 36 35 34 32 10 位下址备 CI3-0SCC SCSST 23 22 2019 16 15 12
57、11 109 8 7 6 4 3 2 B0WE I2-0A口地址 B口地址SCi SSH SASBDC1DC2 31 30 28 27 26 24I8-6I5-3REQMIO备0000 0000 00 00 0010 000 0 0 0 0 0 1 0 0 1 0 0 00 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 9 0 8 0 0 0 0 0next(7). 1AH中的微指令是执行中的微指令是执行2#命令命令,按按MAPROM中读出中读出的地址转移的地址转移,不同的指令转到不同的入口地址。不同的指令转到不同的入口
58、地址。 1AH MAP=0 2# 无用无用 00 02 00 90 80 00 00地址地址 微操作微操作 命令命令 下址下址 十六进制代码十六进制代码TEC-2机微程序清单:机微程序清单:地址 微操作 命令 下址 十六进制代码00H CC=FS1 3# 10H 04 03 40 B0 F0 50 02 10H CC=FS2 3# 18H 06 03 60 90 80 00 00 11H CC=FS3 3# 17H 05 C3 80 80 C5 00 00 17H 0 PC 14# 00 0E 00 B1 95 50 00 18H PC AR 14# 00 0E 00 B0 C5 60 72
59、PC IP19H PC+1 PC 14# 00 0E 00 B0 C5 60 72 MEM IR1AH MAP=0 2# 00 02 00 90 80 00 00 指令操作码及微程序入口地址指令操作码及微程序入口地址操作码操作码 IR15-IR8 指令指令 MAPROM 微程序微程序 地址地址 入口地址入口地址 0 0 000000 NOP 00H 8CH 0 4 000001 ADD DR , SR 01H 1CH 0 8 000010 ADC DR , SR 02H 1EH CC 110011 CALL ADR 33H 94H D0 110100 LDMC 34H 98H D4 11010
60、1 未用未用 35H 100H D8 110110 未用未用 36H 110HFC 111111 未用未用 3FH 1A0H 3. 双操作数指令(双操作数指令(17条)条)格式一:格式一: 15 109 8 7 4 3 0 操作码操作码 不用不用DRSRB55 46 454443 40 39 37 36 35 34 32 10 位下址备 CI3-0SCC SCSST 23 22 2019 16 15 12 11 109 8 7 6 4 3 2 B0WE I2-0A口地址 B口地址SCi SSH SASBDC1DC2 31 30 28 27 26 24I8-6I5-3REQMIO备0000 00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 稳定性数据分析方法-深度研究
- 电汇清算技术发展动态-深度研究
- 劳务派遣 长期合同范本
- 个人公司出资合同范本
- 2025届中国建材总院校园招聘正式启动笔试参考题库附带答案详解
- 内部临时用工合同范例
- 信用卡合同范本
- 兴趣班合同范本
- 公司融资租赁合同范本
- 上海公寓租金合同范本
- 经典文学作品中的女性形象研究外文文献翻译2016年
- 控股集团公司组织架构图.docx
- 高炉煤气安全知识的培训
- 2008 年全国高校俄语专业四级水平测试试卷
- 需求供给与均衡价格PPT课件
- 最常用2000个英语单词_(全部标有注释)字母排序
- 人造革的几种生产制造方法
- 在银行大零售业务工作会议上的讲话讲解学习
- 古代传说中的艺术形象-
- 水电站大坝土建安装工程悬臂模板施工手册
- 三体系内审检查表(共58页).doc
评论
0/150
提交评论