《第三章计算机系分统层结构文档资料》由会员分享,可在线阅读,更多相关《第三章计算机系分统层结构文档资料(97页珍藏版)》请在金锄头文库上搜索。
1、第第2 2篇篇 计算机系统分层结构计算机系统分层结构 在在本本篇篇用用3章章分分三三个个层层次次,即即微微体体系系结结构构层层、指指令系统层和汇编语言层令系统层和汇编语言层讨论计算机系统的组成。讨论计算机系统的组成。 微微体体系系结结构构层层是是具具体体的的硬硬件件层层次次,可可看看作作是是指指令令系系统的解释器。统的解释器。 指指令令系系统统层层是是一一个个抽抽象象的的层层次次,其其指指令令系系统统是是一一种种硬件和编译器都可识别的机器语言。硬件和编译器都可识别的机器语言。 汇汇编编语语言言层层提提供供的的语语言言,是是将将机机器器语语言言“符符号号化化”以便于人们理解。以便于人们理解。 用
2、用汇汇编编语语言言编编写写的的程程序序先先由由汇汇编编器器翻翻译译成成机机器器语语言程序,再由微体系结构层解释执行。言程序,再由微体系结构层解释执行。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty L
3、td. 1.4 系统结构计算机系统结构计算机系统结构系统的层次结构系统的层次结构 面向问题语言层面向问题语言层汇编语言层汇编语言层操作系统层操作系统层指令系统层指令系统层微体系结构层微体系结构层5层4层3层2层1层硬件硬件- 机器语言机器语言机器与人的界面机器与人的界面符号化的机器语言符号化的机器语言面向用户的语言面向用户的语言硬件硬件/ /固件固件(微程序微程序)翻译翻译(编译器编译器)翻译翻译(汇编器汇编器)部分解释部分解释(操作系统操作系统)直接执行直接执行/解释解释(微程序微程序)Evaluation only.Created with Aspose.Slides for .NET 3
4、.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第第3 3章章 微体系结构层微体系结构层CPUCPU组织组织 在在微微体体系系结结构构层层 ,是是从从寄寄存存器器级级分分析析CPU的的结构和功能。结构和功能。本章主要内容:本章主要内容: CPU的基本组成和功能的基本组成和功能 算术逻辑部件算术逻辑
5、部件ALU和运算方法和运算方法 CPU模型机模型机 组合逻辑控制器原理组合逻辑控制器原理 微程序控制器原理微程序控制器原理Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第5章CPU . 学习
6、目的和要求:学习目的和要求: 认识认识CPUCPU在计算机中的位置;在计算机中的位置; 要求掌握要求掌握CPU与各个部分的协调工作原理;与各个部分的协调工作原理; . 重点重点:整机构成整机构成, ,三级时序三级时序, ,两类控制器;两类控制器; . 难点:难点:运算器运算器, , 微程序控制和设计。微程序控制和设计。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created wi
7、th Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.1 CPU(Central Process Unit) 的组成和功能的组成和功能 计算机的工作就是不断执行指令序列的过程。计算机的工作就是不断执行指令序列的过程。 CPU CPU的主要功能是从主存储器中取出指令、的主要功能是从主存储器中取出指令、分析指令和执行指令,即按指令控制计算机各部件分析指令和执行指令,即按指令控制计算机各部件操作,并对数据进行处理。操作,并对数据进行处理。 CPU CPU是计算机的核心组成部分
8、是计算机的核心组成部分 3.1.CPU的组成和功能Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.由由算术逻辑部件算术逻辑部件ALU 、控制器、控制器、各种寄存器(寄各种寄存器(寄存器群)和存
9、器群)和CPU内部总线(连接部件)内部总线(连接部件)另:另:Cache 3.1.1 CPU3.1.1 CPU的组成的组成Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.1 1ALUALU部件
10、部件ALUALU的功能是实现数据的的功能是实现数据的算术与逻辑运算算术与逻辑运算两个输入端口两个输入端口,参加运算的两个操作数,通常来,参加运算的两个操作数,通常来自自CPUCPU中的通用寄存器或中的通用寄存器或ALUALU总线。总线。控制信号:控制信号:ADD,SUB,OR,ANDADD,SUB,OR,AND等等输出:输出:运算结果运算结果Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation onl
11、y.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.CPU CPU 中的寄存器包括存放中的寄存器包括存放控制信息控制信息的寄存器,的寄存器,如如指令寄存器指令寄存器(IR)(IR)、程序计数器程序计数器(PC)(PC)和和状态状态字寄存器字寄存器(FR)(FR);以及存放所;以及存放所处理数据处理数据的寄存的寄存器,如器,如通用寄存器通用寄存器和和暂存器暂存器。2.2.寄存器寄存器 (1) (1)通用寄存器通用寄存器本身在逻辑上只具有本身在逻辑上只
12、具有接收信接收信息、存储信息和发送信息息、存储信息和发送信息的功能。可为的功能。可为ALUALU提提供操作数并存放运算结果供操作数并存放运算结果(MUL,DIV)(MUL,DIV),也可用,也可用作变址寄存器作变址寄存器(SI,DI)(SI,DI)、地址指针和计数器、地址指针和计数器(CX)(CX)等。等。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Asp
13、ose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. (2) (2)暂存器暂存器暂存从主存储器读出的数据暂存从主存储器读出的数据 ,暂暂存器没有寄存器号,因此不能直接编程访存器没有寄存器号,因此不能直接编程访问它们,是问它们,是透明透明的。(的。(ALUALU的两个输入)的两个输入) 用来存放当前正在执行的一条指令。执行用来存放当前正在执行的一条指令。执行指令时,需根据指令时,需根据PCPC中的指令地址从主存读中的指令地址从主存读取指令送到取指令送到IRIR中。中。 (3 3)指令寄
14、存器)指令寄存器IRIR(Instruction RegisterInstruction Register) 存放当前或下一条存放当前或下一条指令指令在主存中的在主存中的地址地址,因此又称为指令计数器或指令指针因此又称为指令计数器或指令指针IPIP(Instruction PointerInstruction Pointer)。)。 (4 4)程序计数器)程序计数器PCPC(Program CounterProgram Counter) Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
15、Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(5)状态寄存器)状态寄存器存放当前程序的运行状态和存放当前程序的运行状态和工作方式,其内容称为程序状态字工作方式,其内容称为程序状态字PSW(Program State Word),),PSW是是参与控制程序执行的重要依据。参与控制程序执行的重要依据。(P144) Evaluation only.C
16、reated with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.标志位的值标志位的值标志名标志名标志为标志为1标志为标志为0 OF 溢出(是溢出(是/否)否) OVNV DF 方向(增量方向(增量/ 减量)减量)DNUP IF 中断(允许中断
17、(允许/关闭)关闭)EIDI SF 符号(正符号(正/负)负)NGPL ZF 零(是零(是/否)否)ZRNZ AF 辅助进位(是辅助进位(是/否)否)ACNA PF 奇偶(偶奇偶(偶/奇)奇)PEPO CF 进位(是进位(是/否)否)CYNCEvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pr
18、ofile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3 3总线总线 所谓总线是一组能为多个部件所谓总线是一组能为多个部件分时共享分时共享的公共信息传送线路,的公共信息传送线路,它分时接收各部件送来的信息,并发送信息到有关部件。它分时接收各部件送来的信息,并发送信息到有关部件。 由于多个部件连接在一组公共总线上,可能会出现多个部件由于多个部件连接在一组公共总线上,可能会出现多个部件争争用用总线,因此需设置总线控制逻辑以解决总线控制权的有关问题。总线,因此需设置总线控制逻辑以解决总线控制权的有关问题。 CPUCPU内部总线内部总线用来连接用来连接CPU
19、CPU内的各寄存器与内的各寄存器与ALUALU ;总线分类: 系统总线系统总线用来连接用来连接CPUCPU、主存储器与、主存储器与I/OI/O接口,它通常包括接口,它通常包括三组:三组:数据数据总线、总线、地址地址总线和总线和控制控制总线。总线。按总线传送的方向可将总线分为按总线传送的方向可将总线分为单向单向总线和总线和双向双向总线。总线。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only
20、.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4 4CPUCPU内部数据通路内部数据通路 CPU CPU内部寄存器及内部寄存器及ALUALU之间通常用总线方式传送数据信息。之间通常用总线方式传送数据信息。介绍两介绍两种常见的结构。种常见的结构。 (1 1)单总线单总线数据通路结构(双向)数据通路结构(双向)采用单总线结构的采用单总线结构的CPUCPU数据通路数据通路 Evaluation only.Created with Aspose.Sli
21、des for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. CPU CPU数据通路结构只采用数据通路结构只采用一组内总线一组内总线,它是,它是双向双向总线。通用总线。通用寄存器组、其他寄存器和寄存器组、其他寄存器和ALUALU均连在这组内总线上。均连在这组内总线上。 CPU CP
22、U内各寄存器间的数据传送必须通过内总线进行,内各寄存器间的数据传送必须通过内总线进行,ALUALU通过内通过内总线得到操作数,其运算结果也经内总线输出。总线得到操作数,其运算结果也经内总线输出。 (2 2)多组内总线结构(单向)多组内总线结构(单向)采用三总线结构的采用三总线结构的CPUCPU数据通路数据通路 为了提高为了提高CPUCPU的工作速度,一种方法是在的工作速度,一种方法是在CPUCPU内部设置多组内总内部设置多组内总线,使几个数据传送操作能够同时进行,即实现线,使几个数据传送操作能够同时进行,即实现部分并行部分并行操作。操作。Evaluation only.Created with
23、 Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.ACYMemoryPCALURnR0IRCUPSWDRARclockIRinPCinADDSUBANDORR0in移位器移位器R0outR1in R1outRnin RnoutDRin DRoutAR
24、inARoutA码码C码码PCoutR/WCSACin YinIRout微命令序列(微指令)时序时序CPU内部的内部的结构示意图结构示意图R1B U S(总线)红色箭头红色箭头是微命令是微命令Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2
25、004-2011 Aspose Pty Ltd.3.1.2 3.1.2 指令执行过程指令执行过程 CPU CPU的主要功能就是的主要功能就是执行存放在存储器中的指令序列执行存放在存储器中的指令序列,即,即程序。程序。1 1指令的分段执行过程指令的分段执行过程 任何一条指令的执行都要经过任何一条指令的执行都要经过读取读取指令、指令、分析分析指令和指令和执行执行指指令令3 3个阶段。个阶段。 执行阶段还可细分执行阶段还可细分为:(1 1)取指令)取指令(2 2)分析指令)分析指令(3 3)执行指令)执行指令 取操作数取操作数 执行操作执行操作 形成下一条指令地址形成下一条指令地址 此外,此外,CP
26、UCPU还应该对运行过程中出现的某些还应该对运行过程中出现的某些异常情况异常情况或或输入输入/ /输出请求输出请求进行处理进行处理 。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.模型机数据
27、通路结构图模型机数据通路结构图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2 2指令之间的衔接方式指令之间的衔接方式 指令之间的衔接方式有两种:指令之间的衔接方式有两种:串行串行的顺序安排
28、方式与的顺序安排方式与并行并行的的重叠处理方式。重叠处理方式。 3.1.3 3.1.3 时序控制方式时序控制方式 执行一条指令的过程可分为几个阶段,而每一阶段又分为若干执行一条指令的过程可分为几个阶段,而每一阶段又分为若干步基本操作,每一步操作则由控制器产生一些相应的控制信号实现。步基本操作,每一步操作则由控制器产生一些相应的控制信号实现。因此,每条指令都可分解为一个控制信号序列,指令的执行过程就因此,每条指令都可分解为一个控制信号序列,指令的执行过程就是依次执行一个确定的是依次执行一个确定的控制信号序列控制信号序列的过程。的过程。 时序控制方式时序控制方式就是指微操作与时序信号之间采取何种关
29、系,就是指微操作与时序信号之间采取何种关系,它不仅直接决定时序信号的产生,也影响到控制器及其他部件的组它不仅直接决定时序信号的产生,也影响到控制器及其他部件的组成,以及指令的执行速度。成,以及指令的执行速度。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Co
30、pyright 2004-2011 Aspose Pty Ltd.1 1同步控制方式同步控制方式 同步控制方式是指各项操作由同步控制方式是指各项操作由统一统一的时序信号进行同步控制。的时序信号进行同步控制。 同步控制的基本特征是将操作时间分为若干长度相同的同步控制的基本特征是将操作时间分为若干长度相同的时钟时钟周期周期(也称为节拍),要求在一个或几个时钟周期内完成各个(也称为节拍),要求在一个或几个时钟周期内完成各个微微操作操作。在在CPUCPU内部通常是采用同步控制方式内部通常是采用同步控制方式 。 同步控制方式的优点是时序关系简单,结构上易于集中,相应同步控制方式的优点是时序关系简单,结构
31、上易于集中,相应的设计和实现比较方便。的设计和实现比较方便。2 2同步控制方式的多级时序系统同步控制方式的多级时序系统(1 1)多级时序的概念)多级时序的概念 在同步控制方式中,通常将时序信号划分为几级(其中包括指在同步控制方式中,通常将时序信号划分为几级(其中包括指令周期),称为多级时序。令周期),称为多级时序。 机器周期机器周期 节拍(时钟周期)节拍(时钟周期) 时钟脉冲信号时钟脉冲信号Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspo
32、se Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2 2)多级时序信号之间的关系)多级时序信号之间的关系三级时序信号之间的关系三级时序信号之间的关系 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation
33、 only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(3 3)时序系统的组成)时序系统的组成时序系统框图时序系统框图 3.1.4 3.1.4 指令流水线指令流水线 两段指令流水线两段指令流水线 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation
34、only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.为获得进一步的加速,流水线可以分成更多的阶段。为获得进一步的加速,流水线可以分成更多的阶段。 取指令取指令计算操作数地计算操作数地址址译码指令译码指令写操作数写操作数取操作数取操作数执行指令执行指令指令流水指令流水线线操作操作时时序序图图 影响流水线性能主要有以下几个因素:影响流水线性能主要有以下几个因素:(1)若各个阶段不全是相等的时间)若各个阶段不全是相等的时间 (2)流水线中的相关问题
35、)流水线中的相关问题(3)当遇到条件转移指令时)当遇到条件转移指令时(4)当)当I/O设备有中断请求或机器有故障时设备有中断请求或机器有故障时Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第
36、二节第二节 算术逻辑部件算术逻辑部件ALUALU和运算方法和运算方法 算术逻辑部件算术逻辑部件ALUALU主要完成对二进制代码的定点主要完成对二进制代码的定点算术运算算术运算和和逻逻辑运算辑运算。 3.2.1 3.2.1 算术逻辑部件算术逻辑部件ALUALU算术逻辑部件算术逻辑部件ALUALU的硬件实现涉及三个问题:的硬件实现涉及三个问题:(1 1)如何构成一位二进制加法单元,即全加器。)如何构成一位二进制加法单元,即全加器。(2 2)n n位全加器连同进位信号传送逻辑,构成一个位全加器连同进位信号传送逻辑,构成一个n n位并行加法器。位并行加法器。(3 3)以加法器为核心,通过输入选择逻辑扩
37、展为具有多种算术和逻)以加法器为核心,通过输入选择逻辑扩展为具有多种算术和逻辑运算功能的辑运算功能的ALUALU。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.1 1全加器全加器 用半加器构
38、成的全加器用半加器构成的全加器 和和进位进位目前,广泛采用半加器构成全加器。目前,广泛采用半加器构成全加器。 通常逻辑门电路都存在延通常逻辑门电路都存在延迟时间,全加器电路就是一个迟时间,全加器电路就是一个延迟部件,正是这个延迟特性延迟部件,正是这个延迟特性将影响全加器的速度。将影响全加器的速度。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.
39、Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2 2并行加法器与进位链结构并行加法器与进位链结构 用用n n位全加器实现两个位全加器实现两个n n位操作数各位同时相加,这种加法器称位操作数各位同时相加,这种加法器称为并行加法器。并行加法器中全加器的位数与操作数的位数相同。为并行加法器。并行加法器中全加器的位数与操作数的位数相同。(1 1)基本进位公式)基本进位公式设相加的两个设相加的两个n n位操作数为位操作数为: :进位信号的逻辑式 Evaluation only.Created w
40、ith Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.可以看出可以看出C C 由两部分组成:由两部分组成: 我们定义两个辅助函数:我们定义两个辅助函数: 进位产进位产生函数生函数进位传进位传递函数递函数因此有:因此有:Evaluation only
41、.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2 2)并行加法器的串行进位)并行加法器的串行进位 采用串行进位的并行加法器,是将采用串行进位的并行加法器,是将n n个全加器串接起来,就可个全加器串接起来,就可进行两个进
42、行两个n n位数相加。位数相加。 由于串行进位的延迟时间较长,所以在由于串行进位的延迟时间较长,所以在ALUALU中很少采用纯串行中很少采用纯串行进位的方式。但这种方式可节省器件,成本低,在分组进位方式中进位的方式。但这种方式可节省器件,成本低,在分组进位方式中局部采用有时也是可取的。局部采用有时也是可取的。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with A
43、spose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3 3并行进位(先行进位、同时进位)并行进位(先行进位、同时进位) 为了提高并行加法器的运算速度,就必须解决进位传递的问题。为了提高并行加法器的运算速度,就必须解决进位传递的问题。方法是让各级进位信号同时形成,而不是串行形成。方法是让各级进位信号同时形成,而不是串行形成。 这种同时形成各位进位的方法称为这种同时形成各位进位的方法称为并行进位并行进位或或先行进位先行进位,又,又称为称为同时进位同时进位。 虽然并行进位加法器的运算速
44、度快,但这是以增加硬件逻辑线虽然并行进位加法器的运算速度快,但这是以增加硬件逻辑线路为代价的。两种常用的路为代价的。两种常用的分组进位分组进位结构是:结构是:组内并行、组间串行的进位链。组内并行、组间串行的进位链。组内并行、组间并行的进位链。组内并行、组间并行的进位链。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET
45、 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4 4ALUALU举例举例SN74181SN74181框图框图 (1 1)SN74181SN74181外特性外特性Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Pro
46、file 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.实验1 算术逻辑运算实验两个SN74181组成8位片内并行进位,片间串行进位的运算器Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-20
47、11 Aspose Pty Ltd.16位并行进位ALU结构P87 图3-13Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.2.2 3.2.2 定点数运算方法定点数运算方法 数值运算的核
48、心是指加、减、乘、除四则算术。由于计算机中数值运算的核心是指加、减、乘、除四则算术。由于计算机中的数有定点和浮点两种表示形式,因此相应有的数有定点和浮点两种表示形式,因此相应有定点数定点数的运算和的运算和浮浮点数点数的运算。的运算。1 1定点加减运算定点加减运算(1 1)原码加减运算)原码加减运算( (不用不用) ) 例如,加法指令指示做(例如,加法指令指示做(+A+A)+ +(-B-B),由于一个操作数为负,),由于一个操作数为负,实际操作是做减法(实际操作是做减法(+A+A)- -(+B+B),结果符号与绝对值大的符号相),结果符号与绝对值大的符号相同。同理,在减法指令中指示做(同。同理,
49、在减法指令中指示做(+A+A)- -(-B-B),实际操作是做加),实际操作是做加法(法(+A+A)+ +(+B+B),结果与被减数符号相同。),结果与被减数符号相同。 (2 2)补码加减运算)补码加减运算 补码加法运算补码加法运算 X X + +Y Y = =X X + +Y Y 补码减法运算补码减法运算 X XY Y = =X X +(-+(-Y Y ) =) =X X +- +-Y Y Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Asp
50、ose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 补码运算规则补码运算规则 根据以上讨论,可将补码加减规则归纳根据以上讨论,可将补码加减规则归纳如下:如下: 参加运算的操作数用补码表示。参加运算的操作数用补码表示。 符号位参加运算。符号位参加运算。 若指令操作码为加,则两数直接相加;若指令操作码为加,则两数直接相加;若操作码为减,则将减数连同若操作码为减,则将减数连同符号位一起变反加符号位一起
51、变反加1 1后再与被减数相加。后再与被减数相加。 运算结果用补码表示。运算结果用补码表示。【例【例3-33-3】 X X = 00110110 = 00110110, Y Y =11001101 =11001101,求,求 X X+ +Y Y , X X- -Y Y 。由y补怎么求-y补?Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slide
52、s for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(3 3)溢出判别)溢出判别在什么情况下可能产生溢出在什么情况下可能产生溢出?例:设定点整数字长例:设定点整数字长8 8位,补码表示(最高位为位,补码表示(最高位为符号位),表示范围为符号位),表示范围为-128-128 127127,运算结果超,运算结果超出此范围就发生溢出。出此范围就发生溢出。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.
53、0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.0 00111110 0001101(1)31 +13=44 0 0101100 (2)-31 +(-12)=-430 11111110 1000001(3) 63+66=1291 0000001 1 10000011 0111110(4) -63+(-66)=-1290 1111111 正溢正溢
54、负溢负溢1 11000011 11101001 1010101 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 采用一个符号位判断采用一个符号位判断溢出溢出= S +A B = S +A B
55、 采用最高有效位的进位判断采用最高有效位的进位判断溢出溢出= C +C =C C = C +C =C C 采用变形补码判断采用变形补码判断( (双符号位双符号位) )用用S S 、S Sn n分别表示结果最高符号位和第分别表示结果最高符号位和第2 2符号位符号位 溢出溢出=S S =S S Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slid
56、es for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2 2移位移位 移位操作按移位性质可分为移位操作按移位性质可分为3 3种类型:种类型:逻辑移位逻辑移位、循环移位循环移位和和算术移位算术移位。 移位示意图移位示意图 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with
57、Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.定点数乘除法()软件实现()软件实现()逻辑电路()逻辑电路()专用乘除法器()专用乘除法器Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3
58、.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.【例【例3-103-10】 11011101 10111011的的运算过程如图所示。运算过程如图所示。无符号数乘法除法不做要求(P92-94)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.
59、5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.2.3 3.2.3 浮点数运算方法浮点数运算方法1 1浮点数加减运算浮点数加减运算 设有两个浮点数:设有两个浮点数:X X= =MxMx ,Y Y= =MyMy 。要实现。要实现X X + +Y Y的运算,的运算,需要以下需要以下4 4个步骤才能完成。个步骤才能完成。 对阶操作对阶操作 对阶的规则是对阶的规则是:阶码小的数向阶码大的数对齐阶码小的数向阶码大的数对齐 实现尾数的加(减)运算实现尾数的加(减)运算 结果规格化和判溢出结果规格化和判溢出a左规左规 b右规右规 若
60、运算结果是非规格化的数,例如尾若运算结果是非规格化的数,例如尾数是数是11.1x11.1xx x或或00.0x00.0xx x形式,就需形式,就需要将尾数左移,每左移一位,阶码减要将尾数左移,每左移一位,阶码减1 1,直至满足规格化条件为止(即尾,直至满足规格化条件为止(即尾数最高有效位的真值为数最高有效位的真值为1 1,或尾数符,或尾数符与最高有效位不等),这个过程称为与最高有效位不等),这个过程称为左规。在左规的同时应判断结果是否左规。在左规的同时应判断结果是否会下溢,即阶码小于所能表示的最小会下溢,即阶码小于所能表示的最小负数。负数。若运算结果尾数发生溢出,例如尾数若运算结果尾数发生溢出
61、,例如尾数为为10.xx10.xxx x或或01.xx01.xxx x形式,这并不形式,这并不表明浮点结果会溢出,此时需调整阶表明浮点结果会溢出,此时需调整阶码,将尾数右移一位,阶码加码,将尾数右移一位,阶码加1 1,称,称为右规。右规时,应判断结果是否会为右规。右规时,应判断结果是否会上溢,即阶码大于所能表示的最大正上溢,即阶码大于所能表示的最大正数。数。 舍入操作舍入操作 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty
62、Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 下面举一个浮点加的实例。下面举一个浮点加的实例。 【例【例3-123-12】 设有两个浮点数设有两个浮点数X X=2 =2 0.1101010.1101012 2,Y Y=2 =2 (-(-0.101011)0.101011)2 2。阶码阶码 尾数尾数 X X 浮浮=-10=-10; 00.110101 00.110101 Y Y 浮浮=-01=-01; 11
63、.010101 11.010101 对阶对阶阶码取大的,即阶码取大的,即-01,-01, 的尾数为的尾数为00.01101100.011011(0 0舍舍1 1入)入) 尾数求和尾数求和 00.011011+ 11.010101 11.110000 规格化及判溢出规格化及判溢出 左规得X+Y浮浮=1110;11.10000 舍入舍入 由于是左规,结果不需要舍入。由于是左规,结果不需要舍入。最后运算结果的真值为最后运算结果的真值为X+Y=2 (-0.100000)2。小数点右移即左规Evaluation only.Created with Aspose.Slides for .NET 3.5 C
64、lient Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2 2浮点数乘除运算浮点数乘除运算(1 1)浮点数乘法运算)浮点数乘法运算 阶码相加并判溢出阶码相加并判溢出 尾数相乘尾数相乘 规格化处理规格化处理 (2 2)浮点数除法运算)浮点数除法运算 求阶差求阶差 尾数相除尾数相除 ( (都已经规格化都已经规格化)
65、) 预置预置 检测被除数是否为检测被除数是否为0 0,若为,若为0 0则置商为则置商为0 0。如果除数为。如果除数为0 0,则置则置0 0除数标志,转中断处理。除数标志,转中断处理。 尾数调整尾数调整 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyri
66、ght 2004-2011 Aspose Pty Ltd.3.2.4 3.2.4 十进制数加减运算十进制数加减运算1 1进制转换进制转换( (十十-二二-十十) )2 2BCDBCD码码( (二二- -十进制数十进制数) ) 机器内部采用二机器内部采用二- -十进制数(十进制数(BCDBCD码),由码),由BCDBCD码运算指令码运算指令完成运算。实现完成运算。实现BCDBCD码运算的方法有两种:码运算的方法有两种: 专用进行专用进行BCDBCD码加、减、乘、除的运算指令。码加、减、乘、除的运算指令。 先用二进制数的加、减、乘、除指令进行运算,紧接着用先用二进制数的加、减、乘、除指令进行运算,
67、紧接着用BCDBCD码校正指码校正指令对运算结果进行校正。令对运算结果进行校正。 3 3BCDBCD码校正码校正 0-9 0-9不用校正不用校正, ,大于大于9 9则则+6+6即即+110+110校正校正Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyr
68、ight 2004-2011 Aspose Pty Ltd.第第3 3节节 CPU CPU模型机的组成及其数据通路模型机的组成及其数据通路3.3.1 3.3.1 基本组成基本组成模型机数据通路结构图模型机数据通路结构图Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.
69、0.Copyright 2004-2011 Aspose Pty Ltd.3.3.1 3.3.1 基本组成基本组成1 1寄存器寄存器(1 1)可编程寄存器)可编程寄存器 通用寄存器有通用寄存器有4 4个:个:R R0 0、R R1 1、R R2 2、R R3 3;堆栈指针为;堆栈指针为SPSP;程序状态字寄存;程序状态字寄存器为器为PSWPSW;程序计数器为;程序计数器为PCPC。(2 2)暂存器)暂存器暂存器有暂存器有3 3个:个:C C、D D、Z Z 。(3 3)指令寄存器)指令寄存器IRIR指令寄存器指令寄存器IRIR用来存放当前正在执行的一条指令用来存放当前正在执行的一条指令。 (4
70、 4)与主存接口的寄存器)与主存接口的寄存器MARMAR、MDRMDR CPU CPU对主存的控制信号有两个:读信号对主存的控制信号有两个:读信号RDRD控制对主存的读操作;写信号控制对主存的读操作;写信号WRWR控制对主存的写操作。控制对主存的写操作。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Cli
71、ent Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2 2运算部件运算部件 ALU ALU的输入的输入A A来自暂存器来自暂存器D D,输入,输入B B来自来自ALUALU总线,运算结果输出总线,运算结果输出到到Z Z 。控制。控制ALUALU运算的控制信号有:运算的控制信号有:ADDADD、SUBSUB、ANDAND、OROR、XORXOR、COMCOM、NEGNEG、A+1A+1、A-1A-1、B+1B+1、B-1B-1,它们分别控制,它们分别控制ALUALU完成加、减、与、或、完成加、减、与、或、异或、求负、求反等运算。异或、求负
72、、求反等运算。 3 3总线与数据通路结构总线与数据通路结构(1 1)ALU ALU 总线总线 CPU CPU内部采用单总线结构,即设置一组内部采用单总线结构,即设置一组ALUALU总线(也称为总线(也称为CPUCPU内内总线),由总线),由1616根双向数据传送线组成,根双向数据传送线组成,ALUALU和所有寄存器通过这组和所有寄存器通过这组公共总线连接起来。公共总线连接起来。 (2 2)系统总线)系统总线 模型机的模型机的CPUCPU、存储器及、存储器及I/OI/O设备分别挂接在一组系统总线上。设备分别挂接在一组系统总线上。系统总线包括:系统总线包括:1616根地址总线、根地址总线、1616
73、根数据总线,以及控制总线。为根数据总线,以及控制总线。为简单起见,模型机采用简单起见,模型机采用同步控制同步控制方式。方式。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4 4控制器及微命令
74、的基本形式控制器及微命令的基本形式(1 1)微命令的基本形式)微命令的基本形式 在模型机中,微命令有两种形式。在模型机中,微命令有两种形式。 电位型微命令电位型微命令 各寄存器输出到各寄存器输出到ALU总线的控制信号有:总线的控制信号有:R0OUT、R1OUT、PCOUT、SPOUT、MDROUT等。等。 ALU运算控制信号有:运算控制信号有:ADD、SUB、AND、OR、XOR等。等。 暂存器暂存器D的左移的左移/右移控制信号有:右移控制信号有:SAL、SAR。 程序计数器程序计数器PC的计数控制信号有:的计数控制信号有:PC+1。 MAR和和MDR输出到系统总线的控制信号有:输出到系统总线
75、的控制信号有:EMAR、EMDR。 寄存器置入控制信号有:寄存器置入控制信号有:SMDR、SPSW。 主存的读主存的读/写信号有:写信号有:RD、WR。 脉冲型微命令脉冲型微命令脉冲型微命令有:脉冲型微命令有:CPR0、CPR1、CPPC、CPIR、CPSP、CPMAR、CPMDR等。等。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slide
76、s for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2 2)控制器)控制器 传统控制器的主要部件包括:传统控制器的主要部件包括:指令寄存器指令寄存器IRIR、指令译码器指令译码器、程程序计数器序计数器PCPC、状态字寄存器状态字寄存器PSWPSW、时序系统和微操作信号发生器时序系统和微操作信号发生器。 控制器是整机的指挥中心,其控制器是整机的指挥中心,其基本功能就是执行指令,即根据指基本功能就是执行指令,即根据指令产生控制信号序列以控制相应部令产生控制信号序列以控制相应部件分步完成指定的操作。件分步
77、完成指定的操作。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.3.2 3.3.2 数据传送数据传送1 1寄存器之间的数据传送寄存器之间的数据传送 在模型机中,寄存器之间可直接通过在模型机
78、中,寄存器之间可直接通过ALUALU总线传送数总线传送数据,具体传送由据,具体传送由输出门输出门和和打入脉冲打入脉冲控制。控制。例如例如 :把寄存器:把寄存器R1的内容传送到寄存器的内容传送到寄存器R3,即实现传,即实现传送操作送操作R1R3所需控制信号为所需控制信号为R1OUT、CPR3 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slid
79、es for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2 2主存数据传送到主存数据传送到CPUCPU 主存与主存与CPUCPU之间通过之间通过系统总线系统总线传送数据。传送数据。 PCMAR PCMAR ;PCPC中的指令地址送存储器地址寄存器中的指令地址送存储器地址寄存器 MMDRIR MMDRIR ;从存储器中读指令到;从存储器中读指令到IRIR实现实现PCMAR的控制信号:的控制信号:PCOUT、CPMAR。 实现读操作实现读操作MMDR的控制信号:的控制信号:EMAR、RD、SMDR;实现实现
80、MDRIR的控制信号:的控制信号:MDROUT、CPIR。 例如:要从存储器中取指令到指令寄存器例如:要从存储器中取指令到指令寄存器IR,通过以下操作序列即可实现:通过以下操作序列即可实现: Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2
81、004-2011 Aspose Pty Ltd.3 3CPUCPU数据传送到主存数据传送到主存 R1MAR R1MAR ;地址送;地址送MARMAR R2MDR R2MDR ;数据送;数据送MDRMDR MDRM MDRM ;数据写入主存;数据写入主存例如:在例如:在R2中存放需写入主存的数据,存储单元地址在中存放需写入主存的数据,存储单元地址在R1中,则写一个数据到存储器可通过以下操作序列实现:中,则写一个数据到存储器可通过以下操作序列实现: 实现实现R1MAR的控制信号:的控制信号:R1OUT、CPMAR。实现实现R2MDR的控制信号为的控制信号为R2OUT、CPMDR。实现写操作实现写操
82、作MDRM的控制信号为的控制信号为EMAR、EMDR、WR Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4 4执行算术或逻辑操作执行算术或逻辑操作 R1D R1D ;把;把R1R1的内容先
83、送到寄存器的内容先送到寄存器D D D+ R2Z D+ R2Z ;R2R2内容送到内容送到ALUALU的的B B端与端与D D内容通过内容通过ALUALU 相加,结果送相加,结果送Z Z ZR3 ZR3 ;将存放在;将存放在Z Z中的相加结果送入中的相加结果送入R3R3中中例如:完成例如:完成“把寄存器把寄存器R1和和R2的内容相加,结果送到的内容相加,结果送到R3”这个功能,需要分成这个功能,需要分成3步执行:步执行: 实现实现R1D的控制信号:的控制信号:R1OUT、CPD。实现实现D + R2MDR的控制信号:的控制信号:R2OUT、ADD、CPZ。实现实现ZR3的控制信号:的控制信号:
84、ZOUT、CPR3。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 第四节第四节 组合逻辑控制器原理组合逻辑控制器原理 组合逻辑控制器组合逻辑控制器是指产生控制信号(即微命令)的部件,是是
85、指产生控制信号(即微命令)的部件,是用组合逻辑线路来实现。在模型机中有几十个微命令,则每个微命用组合逻辑线路来实现。在模型机中有几十个微命令,则每个微命令都需要一组逻辑门电路,根据相应的逻辑条件(如指令的操作码、令都需要一组逻辑门电路,根据相应的逻辑条件(如指令的操作码、寻址方式、时序信号等)产生该微命令。寻址方式、时序信号等)产生该微命令。 本节先介绍模型机的指令系统,然后假设模型机采用的是组合本节先介绍模型机的指令系统,然后假设模型机采用的是组合逻辑控制器,讨论其时序系统、指令执行流程及微命令的产生与综逻辑控制器,讨论其时序系统、指令执行流程及微命令的产生与综合。合。 Evaluation
86、 only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.4.1 模型机的指令系统模型机的指令系统1 1指令格式指令格式(1 1)双操作数指令:其格式如下图所示)双操作数指令:其格式如下图所示 第第12121515位表
87、示操作码,第位表示操作码,第6 61111位为源操作数地址段,第位为源操作数地址段,第0 05 5位为目的操作数地址段,在每个地址段字段中又分为两部分,其位为目的操作数地址段,在每个地址段字段中又分为两部分,其中中3 3位表明位表明寻址方式寻址方式类型,另外类型,另外3 3位给出所指定的位给出所指定的寄存器编号寄存器编号。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created
88、 with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(1 1)双操作数指令格式)双操作数指令格式可编程寄存器有可编程寄存器有7 7个,编号如下(留个,编号如下(留有一种编码有一种编码110110未用,可扩展):未用,可扩展): 通用寄存器通用寄存器R0R0R3 000R3 000011011 堆栈指针堆栈指针SP 100SP 100 程序状态字程序状态字PSW 101PSW 101 程序计数器程序计数器PC 111PC 111Evaluation only.Crea
89、ted with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2 2)单操作数指令)单操作数指令 第第0 05 5位为地址字段,第位为地址字段,第6 61111位空闲不用,位空闲不用,也可供扩展操作码用。也可供扩展操作码用。Evaluation
90、 only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(3 3)转移指令)转移指令 第第12121515位为操作码,第位为操作码,第6 61111位给出转移地址字段(也分为位给出转移地址字段(也分为寻址方式与寄存器号两
91、部分)。第寻址方式与寄存器号两部分)。第0 05 5位则为转移条件字段。其中,位则为转移条件字段。其中,第第0 03 3位中有一位为位中有一位为1 1,表明,表明转移条件转移条件进位进位C C、溢出溢出V V、结果为结果为零零Z Z、结果为负结果为负N N。第。第5 5位表明位表明转移方式转移方式,若为,若为0 0,表示相关标志位为,表示相关标志位为0 0转移;若为转移;若为1 1,表示相关标志位为,表示相关标志位为1 1转移。若第转移。若第0 05 5位全为位全为0 0,表示,表示无条件转移。无条件转移。 Evaluation only.Created with Aspose.Slides
92、for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2 2寻址方式寻址方式 模型机的编址为模型机的编址为按字编址按字编址,字长,字长1616位,即主存每个单元位,即主存每个单元1616位。位。采用简单变字长指令格式,指令长度可为采用简单变字长指令格式,指令长度可为1616位、位、3
93、232位(指令中含立位(指令中含立即数或一个操作数地址)或即数或一个操作数地址)或4848位(含位(含2 2个操作数地址),操作数字个操作数地址),操作数字长长1616位。位。模型机模型机寻寻址方式址方式 如下表如下表:类型类型寻址方式寻址方式汇编符号汇编符号可指定寄存器可指定寄存器 定义简述定义简述 0寄存器寻址寄存器寻址 R R R0R0R3R3,SPSP,PSWPSW 数在指定寄存器中数在指定寄存器中 1寄存器间址寄存器间址 (R) (R) R0R0R3R3,SPSP 地址在指定寄存器中地址在指定寄存器中 2自减型寄存自减型寄存器间址器间址 -(R) -(R) R0R0R3R3,SPSP
94、 寄存器内容减寄存器内容减1 1后为操作数地后为操作数地址址 3立即立即/ /自增自增型寄存器间型寄存器间址址 (R)+ (R)+ R0R0R3R3,SPSP,PCPC 寄存器内容为操作数地址,寄存器内容为操作数地址,操作后加操作后加1 1 4直接寻址直接寻址 DI DI PC PC 操作数地址紧跟着指令操作数地址紧跟着指令 5变址寻址变址寻址 X(R) X(R) R0R0R3R3,SPSP,PCPC 变址寄存器内容与紧跟指令的位变址寄存器内容与紧跟指令的位移量相加,为操作数地址移量相加,为操作数地址 Evaluation only.Created with Aspose.Slides for
95、 .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3 3操作类型操作类型 操作码共操作码共4 4位,现设置位,现设置1414种指令,余下两种操作码组合可供扩展种指令,余下两种操作码组合可供扩展。(1 1)传送指令)传送指令MOVMOV传送,操作码传送,操作码00000000。不设不设堆
96、栈堆栈操作指令、操作指令、I/OI/O指令指令(2 2)双操作数算术逻辑指令)双操作数算术逻辑指令ADDADD加,操作码加,操作码00010001(带进位)。(带进位)。SUBSUB减,操作码减,操作码00100010(带进位)。(带进位)。ANDAND逻辑与,操作码逻辑与,操作码00110011。OR OR 逻辑或,操作码逻辑或,操作码01000100。EOREOR逻辑异或,操作码逻辑异或,操作码01010101。(3 3)单操作数算术逻辑指令)单操作数算术逻辑指令COMCOM求反,操作码求反,操作码01100110。NEGNEG求补,操作码求补,操作码01110111。INCINC加加1
97、1,操作码,操作码10001000。DECDEC减减1 1,操作码,操作码10011001。SLSL 左移,操作码左移,操作码10101010。SR SR 右移,操作码右移,操作码10111011。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyrigh
98、t 2004-2011 Aspose Pty Ltd.(4 4)程序控制类指令)程序控制类指令 转移指令JMP,操作码1100。 IR5IR5 IR3IR3 IR2IR2 IR1IR1 IR0IR0 说说 明明 0 0 0 0 0 0 0 0 1 1 进位进位C=0C=0转转 1 1 0 0 0 0 0 0 1 1 进位进位C=1C=1转转 0 0 0 0 0 0 1 1 0 0 溢出溢出V=0V=0转转 1 1 0 0 0 0 1 1 0 0 溢出溢出V=1V=1转转 0 0 0 0 1 1 0 0 0 0 结果为零结果为零Z=1Z=1转转 1 1 0 0 1 1 0 0 0 0 结果不为零
99、结果不为零Z=0Z=0转转 0 0 1 1 0 0 0 0 0 0 结果为负结果为负N=1N=1转转 1 1 1 1 0 0 0 0 0 0 结果为正结果为正N=0N=0转转 0 0 0 0 0 0 0 0 0 0 无条件转移无条件转移 如上表所示,如上表所示,JMPJMP指令第指令第3 30 0位选择一位为位选择一位为1 1,表明以,表明以PSWPSW中的某一特征作为中的某一特征作为转移条件。因此,转移条件。因此,JMPJMP指令第指令第3 30 0位的含义与位的含义与PSWPSW第第3 30 0位含义分别相对应。例如位含义分别相对应。例如PSWPSW第第0 0位是进位位位是进位位C C,而
100、转移指令第,而转移指令第0 0位若为位若为1 1,则表明以进位状态为转移条件。,则表明以进位状态为转移条件。JMPJMP指令第指令第5 5位(位(IR5IR5)决定转移条件为)决定转移条件为0 0转,还是为转,还是为1 1转。若转。若JMPJMP指令第指令第5 50 0位全为位全为0 0,则表示无条件转移。,则表示无条件转移。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Create
101、d with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd. 返回指令返回指令RSTRST,操作码,操作码11001100。 RST RST指令与指令与JMPJMP指令的操作码相同,可视为一条指令。指令的操作码相同,可视为一条指令。RSTRST指令指令只能采用只能采用自增型寄存器间址自增型寄存器间址表明转移地址,并表明转移地址,并指定寄存器为指定寄存器为SPSP,即,即寻址方式为(寻址方式为(SPSP)+ +。它从堆栈中取出返回地址,然后修改堆栈指。它从堆栈中取出返回地址
102、,然后修改堆栈指针针SP+1SP+1。实际上,。实际上,“JMPJMP(SPSP)+ +”指令就是一条指令就是一条RSTRST指令。指令。 转子指令转子指令JSRJSR,操作码,操作码11011101。 执行执行JSRJSR指令时,先将返回地址压栈保存,然后按寻址方式找指令时,先将返回地址压栈保存,然后按寻址方式找到转移地址(即子程序入口地址),将它送入到转移地址(即子程序入口地址),将它送入PCPC中。中。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-
103、2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.4.2 3.4.2 模型机的时序系统模型机的时序系统 组合逻辑控制器依靠不同的时间标志,使组合逻辑控制器依靠不同的时间标志,使CPUCPU分步工作。模型分步工作。模型机采用前述的三级时序系统,即将时序信号分为机采用前述的三级时序系统,即将时序信号分为工作周期工作周期、节拍节拍(时钟周期)(时钟周期)和和工作脉冲工作脉冲。1 1
104、工作周期划分工作周期划分(1 1)取指周期)取指周期FTFT 在取指周期在取指周期FTFT中完成取中完成取指所需的操作指所需的操作 (2 2)源周期)源周期STST 如果需要从主存中读取如果需要从主存中读取源操作数,则进入源操作数,则进入STST。 (3 3)目的周期)目的周期DT DT 如果需要从主存中读取目的地如果需要从主存中读取目的地址或目的操作址或目的操作,则进入则进入DTDT。 (4 4)执行周期)执行周期ETET 在取得操作数后,则进入在取得操作数后,则进入ETET,在在ETET中中将依据将依据IRIR中操作码执行相应操作,如中操作码执行相应操作,如传送、算术运算、逻辑运算、获得转
105、传送、算术运算、逻辑运算、获得转移地址等移地址等 (5 5)中断中断响应周期响应周期ITIT (6 6)DMADMA传送周期传送周期DMATDMAT Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty L
106、td.(5 5)中断响应周期)中断响应周期ITIT (6 6)DMADMA传送周期传送周期DMATDMAT 中断方式:由于某些异常情况或特殊请求,引起中断方式:由于某些异常情况或特殊请求,引起CPU暂停执行当前程序,转暂停执行当前程序,转去执行中断处理子程序,以处理这些情况或请求,等处理完后又返回原程序去执行中断处理子程序,以处理这些情况或请求,等处理完后又返回原程序断点继续执行,这一过程就称为中断。断点继续执行,这一过程就称为中断。 CPU在响应中断请求之后,进入中断响应周期在响应中断请求之后,进入中断响应周期IT。在。在IT中将直接依靠中将直接依靠硬件进行关中断、保存断点、转处理程序入口等
107、操作。硬件进行关中断、保存断点、转处理程序入口等操作。IT结束后,进入取结束后,进入取指周期指周期FT,开始执行中断处理程序。,开始执行中断处理程序。 DMA(Direct Memory Access)即直接访存方式:其基本思想是在主存储器)即直接访存方式:其基本思想是在主存储器和和I/O设备之间建立直接的数据传送通路,由专门的设备之间建立直接的数据传送通路,由专门的DMA控制器控制主存和控制器控制主存和I/O设备间的数据传送,在传送时不需设备间的数据传送,在传送时不需CPU干预。由于传送过程完全由硬件干预。由于传送过程完全由硬件实现,所花费的时间短,因此能满足高速数据传送的需要。实现,所花费
108、的时间短,因此能满足高速数据传送的需要。 CPU响应响应DMA请求之后,进入请求之后,进入DMAT。在。在DMAT中,中,CPU交出系统总线交出系统总线的控制权,即的控制权,即MAR、MDR与系统总线脱钩(呈高阻态)。改由与系统总线脱钩(呈高阻态)。改由DMA控制器控制器控制系统总线,实现主存与外围设备间的数据直接传送,因此对控制系统总线,实现主存与外围设备间的数据直接传送,因此对CPU来说,来说,DMAT是一个空操作周期。是一个空操作周期。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0
109、.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.FTSTDTITETDMATDMA请请求?求?中断?中断?YYNNCPUCPU控制流程控制流程例例. 双操作数指令双操作数指令的两个操作的两个操作数均在主存中数均在主存中, ,工作周期变化为工作周期变化为: : FTSTDTETFTSTDTET(FTFT)例例. 单操作数指令的操作数在单操作数指
110、令的操作数在主存中主存中,工作周期变化为工作周期变化为: FTDTETFTDTET(FTFT)例例. . 双操作数指令的操作数均双操作数指令的操作数均在在CPUCPU寄存器中寄存器中,工作周期变化工作周期变化为为: FTETFTET(FTFT)左图描述了指令执行时工作左图描述了指令执行时工作周期状态变化流程。周期状态变化流程。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Creat
111、ed with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2 2节拍(时钟周期)节拍(时钟周期)T T 每个工作周期的操作一般需要分成若干步完成,为此将工作周期每个工作周期的操作一般需要分成若干步完成,为此将工作周期划分成若干划分成若干节拍节拍。 在模型机中,为了简化时序控制,将在模型机中,为了简化时序控制,将CPUCPU内部操作与访问主存内部操作与访问主存的操作统一考虑。的操作统一考虑。节拍宽度为最长微操作所需的时间节拍宽度为最长微操作所需的时间,即访,即访问主存操
112、作所需的时间。问主存操作所需的时间。 3 3工作脉冲工作脉冲P P3 3工作脉冲工作脉冲 在节拍中执行的有些操作需要同步定时脉冲,如将稳定的运算在节拍中执行的有些操作需要同步定时脉冲,如将稳定的运算结果打入寄存器、周期状态切换等。为此,模型机在每个节拍的末结果打入寄存器、周期状态切换等。为此,模型机在每个节拍的末尾发一个工作脉冲尾发一个工作脉冲P P,作为各种同步脉冲的来源,如左图。,作为各种同步脉冲的来源,如左图。 工作脉冲工作脉冲P P的前沿:的前沿:作为打入寄存器的定时信号,作为打入寄存器的定时信号,它标志着一次数据通路操作的完成。它标志着一次数据通路操作的完成。P P的后沿:的后沿:作
113、为节拍、工作周期切换的定时信号,作为节拍、工作周期切换的定时信号,在此刻对节拍计数器在此刻对节拍计数器T T计数、打入新的工作周期状态。计数、打入新的工作周期状态。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspos
114、e Pty Ltd.3.4.3 3.4.3 指令流程指令流程(重点)(重点) 分析指令流程是为了在寄存器这一层次分析分析指令流程是为了在寄存器这一层次分析指令的读取与执指令的读取与执行过程行过程,也就是讨论,也就是讨论CPUCPU的的工作机制。工作机制。1 1取指周期取指周期FT(Fetch)FT(Fetch)(1 1)进入)进入FTFT的条件的条件初始化时置入初始化时置入FTFT,程序正常运行时同步打程序正常运行时同步打入入FTFT。FTFTS SR RD DC CQ QQ Q总清总清1 11 FT1 FTCPCPFTFT取指周期状态触发器取指周期状态触发器 产生控制信号产生控制信号1FT1
115、FT的逻辑条件如下:的逻辑条件如下: 1FT= ET1FT= ET(1IT1IT1DMAT1DMAT)+ IT + DMAT+ IT + DMAT(1IT1IT1DMAT1DMAT)Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2
116、011 Aspose Pty Ltd.(2 2)取指流程)取指流程PCMARMMDRIRPC+1PCFTFT0 0FTFT1 1(3 3)微操作时间表)微操作时间表FTFT工作周期状工作周期状态态与与节节拍序号拍序号本拍中本拍中应发应发的的电电平型微命令平型微命令本拍中本拍中应发应发的脉冲型微命令的脉冲型微命令FTFT0 0PCPCOUTOUTT+1T+1P PCPMARCPMARCPT()CPT()FTFT1 1EMAREMAR、RDRD、SMDRSMDRMDRMDROUTOUTPC+1PC+1T=0T=01ST 1ST 逻辑逻辑式式111DT 1DT 逻辑逻辑式式221ET 1ET 逻辑逻
117、辑式式33P PCPIRCPIRCPPCCPPCCPT()CPT()CPST()CPST()CPDT()CPDT()CPET()CPET() Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2
118、 2MOVMOV指令指令1)1)取指令周期和取源操作取指令周期和取源操作数周期流程图数周期流程图FTFTST0ST0ST1ST1ST2ST2ST3ST3ST4ST4R R(R)(R)- -(R)(R)I/(R)+I/(R)+DIDIX(RX(R) )MOVEMOVE指令指令Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .N
119、ET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2)2)取目的地址和执取目的地址和执行周期流程图行周期流程图DT0DT0DT1DT1DT2DT2DT3DT3ET0ET0ET1ET1R R(R)(R)- -(R)(R)I/(R)+I/(R)+DIDIX(RX(R) )Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation o
120、nly.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3 3双操作数指令双操作数指令 双操作数指令共有双操作数指令共有5 5条:加条:加ADDADD、减、减SUBSUB、与、与ANDAND、或、或OROR、异或、异或EOREOR,其指令流程图,其指令流程图:STSTFTFTDT0DT0DT1DT1DT2DT2DT3DT3DT4DT4ET0ET0ET1ET1ET2ET2与与MOV相同相同Evaluation only.Created with As
121、pose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4 4单操作数指令单操作数指令 单操作数指令共有单操作数指令共有6 6条:求反条:求反COMCOM、求补、求补NEGNEG、加、加“1 1”INCINC、减减“1 1”DECDEC、左移、左移SLSL、右移
122、、右移SRSR,其指令流程图如图:,其指令流程图如图: FTFTST(ST(无无) )DTDTET0ET0ET1ET1ET2ET2与双操作数指与双操作数指令相同令相同Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspo
123、se Pty Ltd.5 5转移指令转移指令JMP/JMP/返回指令返回指令RSTRSTNJPJP,RSTPCPCPCPC R R (R) (R)(R)+/RST(R)+/RSTX(PC)X(PC)FTFTET1ET1ET2ET2ET3ET3ET4ET4Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Cli
124、ent Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.6 6转子指令转子指令JSRJSRST0ST0FTFTET0ET0ET1ET1ET2ET2ST1ST1ST2ST2ST3ST3ET4ET4流程图如下流程图如下:Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET
125、 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.8 8DMADMA周期周期 在实际机器中,在实际机器中,CPUCPU可在一个系统总线周期结束时响应可在一个系统总线周期结束时响应DMADMA请求。请求。 9 9键盘操作键盘操作3.4.4 3.4.4 微命令的综合与产生微命令的综合与产生微命令的微命令的逻辑逻辑表达式都是表达式都是“与与- -或或”式的式的逻辑逻辑形形态态,各,各“与与”项项通常包通常包括:指令操作括:指令操作码译码码译码信号、信号、寻寻址字段址字段译码译码信号、工作周期状信号、工作周期状态态、节节拍、工
126、作脉冲等。例如:拍、工作脉冲等。例如:PCPCOUT OUT = FT= FTT T0 0 + MOV+ MOVSTSTT T0 0 + + CPCPMAR MAR = FT= FTT T0 0 P + MOV P + MOVSTSTT T0 0P + P + T+1 = FTT+1 = FTT T0 0 + MOV+ MOVSTSTT T0 0+ +CPCPT T = =Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Lt
127、d.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第五节第五节 微程序控制器原理微程序控制器原理 有些有些CPUCPU采用微程序控制方式来产生微命令,相应的控制器称采用微程序控制方式来产生微命令,相应的控制器称为为微程序控制器微程序控制器。 1 1微程序控制方式的基本思想微程序控制方式的基本思想(1 1)将机器指令分解为基本的)将机器指令分解为基本的微命令序列微命令序列,用,用二进制代码二进制代码表示这些微命令,并
128、编成微指令,多条微指令再形成表示这些微命令,并编成微指令,多条微指令再形成微程序微程序。(2 2)一条微指令包含的微命令,控制实现)一条微指令包含的微命令,控制实现一步一步(一个节拍)操(一个节拍)操作;若干条微指令组成的一小段微程序解释执行一条机器指令。作;若干条微指令组成的一小段微程序解释执行一条机器指令。 CMCM中的微程序能解释执行整个指令系统的所有机器指令。中的微程序能解释执行整个指令系统的所有机器指令。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2
129、004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.指令指令代码代码运行运行状态状态控制存贮器控制存贮器CMCM微命微命令存令存储器储器 IRIR微命令序列微命令序列微程序控制器原理框图:微程序控制器原理框图: 控制存储器控制存储器CMCM功能:存放微程序。功能:存放微程序。CMCM属于属于CPUCPU,不属于主存储,不属于主存储器。器。微指令寄存器微指令寄存器 IRIR功
130、能:存放现行微指令。功能:存放现行微指令。微操作控制字段:微操作控制字段:提供一步操作所需的微命令。提供一步操作所需的微命令。指明后续微地址的形成方式。指明后续微地址的形成方式。顺序控制字段:顺序控制字段:提供微地址的给定部分提供微地址的给定部分Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client
131、Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.指令指令代码代码运行运行状态状态控制存贮器控制存贮器CMCM微命微命令存令存储器储器 IRIR微命令序列微命令序列微程序控制器原理框图:微程序控制器原理框图: 2微程序执行过程的描述(1 1)取机器指令)取机器指令CMCM取指取指微指令微指令IRIR微命令字段微命令字段译码器译码器微命令微命令机器指令机器指令IRIR主存主存Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyrig
132、ht 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.指令指令代码代码运行运行状态状态控制存贮器控制存贮器CMCM微命微命令存令存储器储器 IRIR微命令序列微命令序列微程序控制器原理框图:微程序控制器原理框图: (2 2)转微程序入口)转微程序入口(3 3)执行首条微指令)执行首条微指令IRIR操作码操作码微地址形微地址形成电路成电路入口入口ARARCMCMIRIR
133、微命令字段微命令字段IRIR译码器译码器微命令微命令操作部件操作部件Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.指令指令代码代码运行运行状态状态控制存贮器控制存贮器CMCM微命微命令存令存
134、储器储器 IRIR微命令序列微命令序列微程序控制器原理框图:微程序控制器原理框图: (4)取后续微指令)取后续微指令微地址字段微地址字段现行微地址现行微地址运行状态运行状态微地址形微地址形成电路成电路后续微地址后续微地址ARARCMCM后续微指令后续微指令IRIREvaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.
135、5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(5 5)执行后续微指令)执行后续微指令同(同(3 3)(6 6)返回)返回微程序执行完,返回微程序执行完,返回CMCM( (存放存放取指微指令取指微指令的固定单元的固定单元) )。指令指令代码代码运行运行状态状态控制存贮器控制存贮器CMCM微命微命令存令存储器储器 IRIR微命令序列微命令序列微程序控制器原理框图:微程序控制器原理框图: Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profil
136、e 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3 3基本概念和术语基本概念和术语(1 1)微命令与微操作微命令与微操作微命令微命令 微操作微操作 构成控制信号序列的最小单位。构成控制信号序列的最小单位。 由微命令控制实现的最基本操作。由微命令控制实现的最基本操作。 注意注意,在组合逻辑控制器中也存在,在组合逻辑控制器中也存在微
137、命令微命令、微操作微操作这两个概念,这两个概念,它们并非只是微程序控制方式的专用概念。它们并非只是微程序控制方式的专用概念。(2 2)微指令与微周期微指令与微周期微指令微指令微周期微周期若干微命令的组合,以编码形式存放在控制存储若干微命令的组合,以编码形式存放在控制存储器的一个单元中,控制实现一步操作。器的一个单元中,控制实现一步操作。通常指从控制存储器中读取一条微指令并执行相通常指从控制存储器中读取一条微指令并执行相应的微操作所需的时间。应的微操作所需的时间。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Prof
138、ile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(3 3)微程序与微程序设计微程序与微程序设计微程序微程序 微程序设计微程序设计 一系列微指令的有序集合。一系列微指令的有序集合。 是将传统的程序设计方法运用到控制逻辑的是将传统的程序设计方法运用到控制逻辑的设计中,在微程序中也可以有微子程序、循环、设计中,在微程序中也可以有微
139、子程序、循环、分支等形态。分支等形态。 (4 4)工作程序与微程序、主存储器与控制存储器工作程序与微程序、主存储器与控制存储器3.5.2 3.5.2 微指令编码方式微指令编码方式微指令编码的实质是解决在微指令中如何组织微命令的问题。微指令编码的实质是解决在微指令中如何组织微命令的问题。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides
140、 for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.1 1直接控制编码(不译码法)直接控制编码(不译码法)例例. . 某微指令某微指令微命令按位给出。微命令按位给出。不需译码,产生微命令的速度快;不需译码,产生微命令的速度快;信息的表示效率低。信息的表示效率低。 C C0 0 R W R W1 1 11 1 1C C0=0=0 0 进位初值为进位初值为0 01 1 进位初值为进位初值为1 1R R= =0 0 不读不读1 1 读读Evaluation only.Created with Aspose.S
141、lides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.操作唯一;操作唯一;加法器加法器A A输入端的控制命令放输入端的控制命令放AIAI字段,字段,B B输入端的控制命令输入端的控制命令放放BIBI字段。字段。 加法器加法器 A BR、CD、ER、CD、F000 000
142、不发命令不发命令010 C A010 C A100 E A100 E A001 R A001 R A011 D A011 D ACDAI BIAI BI3 3010 C A010 C A000 000 不发命令不发命令010 C B010 C B100 F B100 F B001 R B001 R B011 D B011 D B011 D B011 D BAIAI:BIBI: 一条微指令能同时一条微指令能同时提供若干微命令,便于组织各种操作。提供若干微命令,便于组织各种操作。 编码较简单;编码较简单;2 2分段直接编译法分段直接编译法Evaluation only.Created with A
143、spose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3 3分段间接编译法分段间接编译法例例. . 微命令由本字段编码和其他字段解释共同给微命令由本字段编码和其他字段解释共同给出。出。C C = C A C A 1) 1) 设置解释位或解释字段设置解释位或解
144、释字段解释位解释位1 1 A A为某类命令为某类命令0 0 A A为常数为常数2) 2) 分类编译分类编译按功能类型将微指令分类,分别安排各类微按功能类型将微指令分类,分别安排各类微指令格式和字段编码,并设置区分标志。指令格式和字段编码,并设置区分标志。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Cli
145、ent Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.4 4常数源字段常数源字段E E的设置的设置微操作控制字段 E 顺序控制字段 在微指令中,一般设有一个常数源字段在微指令中,一般设有一个常数源字段E E,就如同机器,就如同机器指令中的立即操作数一样,用来提供微指令所使用的常数指令中的立即操作数一样,用来提供微指令所使用的常数(由设计者填写),如提供计数器初值,通用寄存器地址,(由设计者填写),如提供计数器初值,通用寄存器地址,转移地址等。字段转移地址等。字段E E也可用来参与其他控制字段的间接编也可用来参与其他控制字段的间接编码,以减
146、少微指令字长,增加微指令的灵活性。字段码,以减少微指令字长,增加微指令的灵活性。字段E E在在微指令中的形式为微指令中的形式为 除上述几种基本的编码方法外,另外还有一些常见的除上述几种基本的编码方法外,另外还有一些常见的编码技术,如可采用微指令译码与部分机器指令译码的复编码技术,如可采用微指令译码与部分机器指令译码的复合控制、微地址参与解释微指令译码。合控制、微地址参与解释微指令译码。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose
147、 Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.5.3 3.5.3 微程序的顺序控制微程序的顺序控制1 1微程序入口地址的形成微程序入口地址的形成 每一条机器指令对应着一段微程序,其入口就是每一条机器指令对应着一段微程序,其入口就是初初始微地址始微地址。常用以下几种方式形成入口地址:。常用以下几种方式形成入口地址:(1 1)当操作码的位数与位置固定时,可直接使操作码与当操作码的位数与位置固定时,
148、可直接使操作码与入口地址码的部分相对应。入口地址码的部分相对应。 (2 2)当每类指令中的操作码位数与位置固定,而各类指当每类指令中的操作码位数与位置固定,而各类指令之间的操作码与位置不固定时,可采用分级转移的方式。令之间的操作码与位置不固定时,可采用分级转移的方式。 (3 3)当机器指令的操作码位数和位置都不固定时,通常当机器指令的操作码位数和位置都不固定时,通常可以采用可以采用PLAPLA电路将每条指令的操作码翻译成对应的微程电路将每条指令的操作码翻译成对应的微程序入口地址,也可以采用序入口地址,也可以采用PROMPROM(可编程只读存储器)实现(可编程只读存储器)实现转移,将指令操作码作
149、为转移,将指令操作码作为PROMPROM的地址输入,其对应的的地址输入,其对应的PROMPROM单元内容即为该机器指令的微程序入口地址。单元内容即为该机器指令的微程序入口地址。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-201
150、1 Aspose Pty Ltd.2 2后继微地址的形成后继微地址的形成 每条微指令执行完毕时,需根据其中的顺序控制字段每条微指令执行完毕时,需根据其中的顺序控制字段的要求形成的要求形成后继微指令地址后继微指令地址。 形成后继地址的两类方法形成后继地址的两类方法:(1 1)增量方式(顺序)增量方式(顺序- - 转移型微地址)转移型微地址)采用这种方式的微指令的顺序控制字段通常分成两采用这种方式的微指令的顺序控制字段通常分成两部分:部分:转移方式控制字段转移方式控制字段和和转移地址字段转移地址字段,其一般格,其一般格式如下:式如下: 微操作控制字段微操作控制字段 转移地址转移地址 转移方式转移方
151、式增量方式增量方式 : 顺序执行顺序执行 无条件转移无条件转移 条件转移条件转移 转微子程序转微子程序 微子程序返回微子程序返回 现行微地址现行微地址+1现行微指令给现行微指令给出转移微地址出转移微地址现行微指令给现行微指令给出转移微地址出转移微地址和转移条件和转移条件现行微指令给现行微指令给出微子程序入出微子程序入口。口。现行微指令给现行微指令给出寄存器号。出寄存器号。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd
152、.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.(2 2)断定方式)断定方式 由由直接给定直接给定和和测试断定测试断定相结合形成微地址。相结合形成微地址。微操作控制字段微操作控制字段 非测试段非测试段 测试段测试段指令格式:指令格式:非测试段非测试段 可由设计者直接给可由设计者直接给定,通常是后继微地址的高位定,通常是后继微地址的高位部分,用以指定后继微指令在部分,用以指定后继微指令在某个区域内。某个区域内。 测试
153、段测试段 根据有关状态的测试根据有关状态的测试结果确定其地址值,占后继微结果确定其地址值,占后继微地址的低位部分。这相当于在地址的低位部分。这相当于在指定区域内断定具体的分支。指定区域内断定具体的分支。所依据的测试状态可能是指定所依据的测试状态可能是指定的开关状态、指令操作码、状的开关状态、指令操作码、状态字等。态字等。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created
154、with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.5.4 3.5.4 微指令格式微指令格式微指令的微指令的编码方式编码方式是决定微指令格式的主要因素是决定微指令格式的主要因素 1 1水平型微指令水平型微指令特征如下:特征如下:(1 1)微指令较长)微指令较长 (2 2)微指令中的微操作具有高度并行性)微指令中的微操作具有高度并行性(3 3)微指令编码简单)微指令编码简单2 2垂直型微指令垂直型微指令优点:优点:微指令短、简单、规整,便于编写微程序。微指令短、简单
155、、规整,便于编写微程序。缺点:缺点:微程序长,执行速度慢;工作效率低。微程序长,执行速度慢;工作效率低。一条微指令定义并执行一种基本操作。一条微指令定义并执行一种基本操作。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 A
156、spose Pty Ltd.3.5.5 3.5.5 典型微指令举例典型微指令举例 模型机的微指令字长为模型机的微指令字长为2626位,分为位,分为8 8个字段,其格式如个字段,其格式如下:下: F FOUTOUT F FALUALU F FCPCP F FPCPC F FEMAREMAR F FR/WR/W F FSTST JC JC 4 5 5 2 1 2 2 5(1 1)基本数据通路控制字段)基本数据通路控制字段 FOUTFOUT FALUFALU FCP FCP FPCFPC寄存器的输出控制字段寄存器的输出控制字段 ALUALU的操作与的操作与Z Z的移位控制字段的移位控制字段寄存器的同
157、步打入控制字段寄存器的同步打入控制字段PCPC的操作控制字段的操作控制字段(2 2)访存控制字段)访存控制字段 FEMAR FEMAR FR/W FR/W(3 3)辅助控制字段)辅助控制字段 FST FSTMARMAR输出控制字段。输出控制字段。主存读写与主存读写与MDRMDR操作控制字段。操作控制字段。辅助操作控制字段辅助操作控制字段(4 4)顺序控)顺序控制字段制字段JCJC 转移方式字段,转移方式字段,用以选择后继用以选择后继微指令地址的微指令地址的形成方式形成方式 Evaluation only.Created with Aspose.Slides for .NET 3.5 Clien
158、t Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.6 RISC CISC功能强大功能强大, 编程容易编程容易,程序简洁易懂程序简洁易懂, 一一 直在软件界一统天下,但随着硬件技术的发展直在软件界一统天下,但随着硬件技术的发展 CISC的地位动摇了,为什么?因为:的地位动摇了,为什么?因为: CISC指令越来越多
159、,功能越来越复杂。指令越来越多,功能越来越复杂。90% 以上的指令在程序中只用到有以上的指令在程序中只用到有10%, 编译复杂编译复杂 烦琐,运算耗时,目标程序臃肿,烦琐,运算耗时,目标程序臃肿,人们人们 变得难以承受,于是变得难以承受,于是RISC应运而生。应运而生。Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET
160、 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.6 RISC技术技术 (P123) RISC的特点:的特点:RISC的巨大优势是程序执行和编译时间短,占用的巨大优势是程序执行和编译时间短,占用 内存少。主要缺点是对编程人员要求很高。内存少。主要缺点是对编程人员要求很高。(1 1)单周期指令,流水执行单周期指令,流水执行(2 2)采用)采用LOAD/STORELOAD/STORE结构结构(3 3)较少的指令数和寻址方式)较少的指令数和寻址方式, ,只有只有2323种寻址方式种寻址方式(4 4)固定的指令格式)固定的
161、指令格式, ,采用三地址指令采用三地址指令(5 5)面向寄存器的结构)面向寄存器的结构, ,大量指令在寄存器完成大量指令在寄存器完成(6 6)硬布线控制逻辑)硬布线控制逻辑(7 7)注重编译的优化)注重编译的优化Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.C
162、opyright 2004-2011 Aspose Pty Ltd.超标量超标量多个执行部件,一个周期内发出多条指多个执行部件,一个周期内发出多条指令,多条指令在不同的执行部件中并行令,多条指令在不同的执行部件中并行执行操作。执行操作。 超超流水线流水线将流水线的每个节拍分成将流水线的每个节拍分成3 3个或个或4 4个小个小节拍节拍. .典型的典型的RISC: RISC: UltraSPARCUltraSPARC指令系统指令系统Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyr
163、ight 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.3.6.2 UltraSPARC CPU3.6.2 UltraSPARC CPU的微体系结构的微体系结构1 1UltraSPARCUltraSPARC概况概况UltraSPARCUltraSPARC的的微体系结构框图:微体系结构框图:Evaluation only.Created with Aspose.Sli
164、des for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.2 2UltraSPARCUltraSPARC的流水线的流水线如图:如图:整数流水线整数流水线浮点数浮点数/图形流水线图形流水线3 3UltraSPARCUltraSPARC指令系统指令系统 UltraSPARC Ultr
165、aSPARC有两组寄存器:有两组寄存器:3232个个6464位的通用寄存位的通用寄存器和器和3232个浮点寄存器。个浮点寄存器。R0R0R31R31是通用寄存器,它们在特是通用寄存器,它们在特定的上下文中使用其他的名字。定的上下文中使用其他的名字。 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Clien
166、t Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.UltraSPARCUltraSPARC的通用寄存器的通用寄存器 Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.Evaluation only.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.