文档详情

第6章控制器原理ppt课件

m****
实名认证
店铺
PPT
3.49MB
约296页
文档ID:591330349
第6章控制器原理ppt课件_第1页
1/296

第第 6 6 章章 控制系统与控制系统与CPU CPU 本章学习内容•控制器的功能与组成控制器的功能与组成•控制方式与时序系统控制方式与时序系统•CPUCPU的总体结构的总体结构•组合逻辑控制器设计组合逻辑控制器设计•微程序控制器设计微程序控制器设计 6.1 6.1 控制器概述控制器概述 •控制器和运算器一起组成中央处理器,即控制器和运算器一起组成中央处理器,即CPUCPU〔〔CPU-Central Process UnitCPU-Central Process Unit)) •控制器是计算机的指挥和控制中心,由它控制器是计算机的指挥和控制中心,由它把计算机的运算器、存储器、把计算机的运算器、存储器、I/OI/O设备等设备等联系成一个有机的系统,并根据各部件具联系成一个有机的系统,并根据各部件具体要求,适时地发出各种控制命令,控制体要求,适时地发出各种控制命令,控制计算机各部件自动、协调地进行工作计算机各部件自动、协调地进行工作•控制器的功能是根据事先编好并存放在存控制器的功能是根据事先编好并存放在存储器中的解题程序,控制各部件有条不紊储器中的解题程序,控制各部件有条不紊地、自动协调地进行工作。

地、自动协调地进行工作 •计算机运行程序的基本过程:计算机运行程序的基本过程:•1.1.取指令取指令•根据指令地址〔由根据指令地址〔由PCPC提供),从存储器中取出所提供),从存储器中取出所要执行的指令要执行的指令•2.2.分析指令分析指令•① ① 对取出的指令进行译码分析确定指令应完成对取出的指令进行译码分析确定指令应完成的操作,产生相应操作的控制电位,参与形成该的操作,产生相应操作的控制电位,参与形成该指令功能所需要的全部控制命令〔微操作控制信指令功能所需要的全部控制命令〔微操作控制信号)•② ② 根据寻址方式的分析和指令功能要求,形成操根据寻址方式的分析和指令功能要求,形成操作数的有效地址,并按此地址取出操作数据〔运作数的有效地址,并按此地址取出操作数据〔运算型指令〕或形成转移地址算型指令〕或形成转移地址( (转移类指令转移类指令) ),以实,以实现程序转移现程序转移6.1.1 6.1.1 指令执行的基本步骤指令执行的基本步骤 •3.3.执行指令:执行指令:•根据指令分析所产生的操作控制信号和形成的根据指令分析所产生的操作控制信号和形成的有效地址,按一定的算法形成指令操作控制序有效地址,按一定的算法形成指令操作控制序列,控制有关部件完成指令规定的功能。

列,控制有关部件完成指令规定的功能•一条指令执行结束,若没有异常情况和特殊请一条指令执行结束,若没有异常情况和特殊请求,则按程序顺序,再去取出并执行下一条指求,则按程序顺序,再去取出并执行下一条指令•控制器的主要功能就是按取指令、分析指令、控制器的主要功能就是按取指令、分析指令、执行指令这样的步骤进行周而复始的控制过程,执行指令这样的步骤进行周而复始的控制过程,直到完成程序所规定的任务并停机为止直到完成程序所规定的任务并停机为止 指令指令ADD AADD A,,R7R7的执行过程的执行过程 6.1.2 6.1.2 控制器的基本功能控制器的基本功能•1 1.控制指令的正确执行.控制指令的正确执行•包括指令流出的控制,分析指令和执行指令的控包括指令流出的控制,分析指令和执行指令的控制,指令流向的控制制,指令流向的控制•⑴ ⑴ 指令流出控制〔对取指令的控制)指令流出控制〔对取指令的控制)•取指令时需进行的操作取指令时需进行的操作•(PC)→MAR(PC)→MAR,,Read Read ;给出指令地址,并向;给出指令地址,并向MEMMEM发发 出读命令出读命令•(MDR)→IR (MDR)→IR ;读出的指令经;读出的指令经MDRMDR存放到指存放到指 令寄存器令寄存器IRIR中中•(PC)(PC)增量增量→PC →PC ;为取下一条指令作准备;为取下一条指令作准备 •⑵ ⑵ 分析指令和执行指令的控制分析指令和执行指令的控制•IRIR中的指令经指令译码器中的指令经指令译码器(ID)(ID)译码分析,确定译码分析,确定操作性质,判明寻址方式并形成操作数的有效操作性质,判明寻址方式并形成操作数的有效地址。

地址•控制器根据分析的结果和形成的有效地址产生控制器根据分析的结果和形成的有效地址产生相应的操作控制信号序列,控制有关的部件完相应的操作控制信号序列,控制有关的部件完成指令所规定的操作功能成指令所规定的操作功能•例:设某指令的例:设某指令的IR15IR15~~IR12IR12==00000000时为时为MOVMOV指指令,那么令,那么 MOV MOV 的控制信号为:的控制信号为: •⑶ ⑶ 指令流向的控制指令流向的控制•指令流向控制即下条指令地址的形成控制指令流向控制即下条指令地址的形成控制•① ① 按指令序列顺序执行时,通过按指令序列顺序执行时,通过PCPC自动增量自动增量形成下条指令的地址形成下条指令的地址•② ② 当需要改变指令流向时,需改变程序计数当需要改变指令流向时,需改变程序计数器器PCPC中的内容中的内容•转移指令的执行:把形成的转向地址送入转移指令的执行:把形成的转向地址送入PCPC;;•转子指令的执行:把子程序入口地址送入转子指令的执行:把子程序入口地址送入PCPC;;•中断处理:将中断服务程序入口地址送入中断处理:将中断服务程序入口地址送入PCPC•为了正确返回,转子和中断还需保留为了正确返回,转子和中断还需保留PCPC被改变被改变之前的内容之前的内容( (即返回地址即返回地址) )。

•2.2.控制程序和数据的输入及结果的输出控制程序和数据的输入及结果的输出•为完成某项任务而编制的程序及所需数据,必须为完成某项任务而编制的程序及所需数据,必须通过某些输入设备预先存放在存储器中,运算结通过某些输入设备预先存放在存储器中,运算结果要用输出设备输出所以必须由控制器统一指果要用输出设备输出所以必须由控制器统一指挥,完成程序和数据的输入及结果的输出挥,完成程序和数据的输入及结果的输出•3 3.异常情况和特殊请求的处理.异常情况和特殊请求的处理•机器在运行程序过程中,往往可能会遇到一些异机器在运行程序过程中,往往可能会遇到一些异常情况〔如电源掉电、运算溢出等〕或某些特殊常情况〔如电源掉电、运算溢出等〕或某些特殊请求〔如打印机请求传送打印字符等)这些异请求〔如打印机请求传送打印字符等)这些异常和请求往往是事先无法预测的,控制器必须具常和请求往往是事先无法预测的,控制器必须具有检测和处理这些异常情况和特殊请求的功能有检测和处理这些异常情况和特殊请求的功能 •宏观上每条指令的执行过程均是取指、译码、宏观上每条指令的执行过程均是取指、译码、执行,但每条指令有不同的操作序列,需要在执行,但每条指令有不同的操作序列,需要在不同时间产生不同的控制序列,并有严格的时不同时间产生不同的控制序列,并有严格的时序要求。

控制器必须根据不同指令产生不同的序要求控制器必须根据不同指令产生不同的控制序列控制序列•控制器的主要任务控制器的主要任务•根据不同的指令、不同的状态条件,在不同的根据不同的指令、不同的状态条件,在不同的时间,产生不同的控制信号,控制计算机的各时间,产生不同的控制信号,控制计算机的各部件自动、协调地进行工作部件自动、协调地进行工作 指指令令执执行行的的一一般般流流程程 6.1.3 6.1.3 控制器的组成控制器的组成 •指令部件的主要功能是完成取指令和分析指令指令部件的主要功能是完成取指令和分析指令•⑴ ⑴ 程序计数器程序计数器 PC PC (指令计数器、指令地址寄(指令计数器、指令地址寄存器)存器)•程序计数器用于保证程序按规定的序列正确运行,程序计数器用于保证程序按规定的序列正确运行,并提供将要执行指令的指令地址并提供将要执行指令的指令地址•PCPC的位数应能表示主存的最大容量并与主存地址的位数应能表示主存的最大容量并与主存地址寄存器寄存器MARMAR的位数相同的位数相同•程序顺序执行时的程序顺序执行时的PCPC增量可以通过增量可以通过PCPC本身的计数本身的计数逻辑实现,也可以由运算器的逻辑实现,也可以由运算器的ALUALU实现。

实现1 1.指令部件.指令部件 •(2) (2) 指令寄存器指令寄存器 IR IR•指令寄存器用于存放当前正在执行的指令指令寄存器用于存放当前正在执行的指令•(3) (3) 指令译码器指令译码器 ID ID•对指令寄存器中的指令操作码进行译码分析,产对指令寄存器中的指令操作码进行译码分析,产生相应操作的控制电位,提供给微操作控制信号生相应操作的控制电位,提供给微操作控制信号形成部件对寻址方式字段进行译码分析,以控形成部件对寻址方式字段进行译码分析,以控制操作数有效地址的形成制操作数有效地址的形成•(4) (4) 地址形成部件地址形成部件•根据各种寻址方式,形成操作数有效地址根据各种寻址方式,形成操作数有效地址•在一些微、小型机中,为简化硬件逻辑,通常不在一些微、小型机中,为简化硬件逻辑,通常不设置专门的地址形成部件,而是借用运算器实现设置专门的地址形成部件,而是借用运算器实现有效地址的计算有效地址的计算 2 2.时序控制部件.时序控制部件•时序控制部件:用于产生一系列时序信号,为各时序控制部件:用于产生一系列时序信号,为各个微操作定时,以保证各个微操作的执行顺序个微操作定时,以保证各个微操作的执行顺序。

•从宏观从宏观( (即程序控制即程序控制) )上看,计算机的解题过程实上看,计算机的解题过程实质上是指令序列即一条条指令的执行过程质上是指令序列即一条条指令的执行过程•从微观从微观( (即指令控制即指令控制) )上看,计算机的解题过程是上看,计算机的解题过程是微操作序列即一个个微操作序列即一个个( (或一组组或一组组) )微操作的执行过微操作的执行过程•微操作:机器最简单的基本操作微操作:机器最简单的基本操作•一条指令的执行过程可以分解为若干微操作这一条指令的执行过程可以分解为若干微操作这些微操作有着严格的时间顺序要求,不可随意颠些微操作有着严格的时间顺序要求,不可随意颠倒 •(1)(1)脉冲源脉冲源•脉冲源用于产生一定频率的主时钟脉冲一般采脉冲源用于产生一定频率的主时钟脉冲一般采用石英晶体振荡器作为脉冲源计算机电源一接用石英晶体振荡器作为脉冲源计算机电源一接通,脉冲源立即按规定频率给出时钟脉冲通,脉冲源立即按规定频率给出时钟脉冲 •(2)(2)启停电路启停电路•启停电路用于控制整个机器工作的启动与停止启停电路用于控制整个机器工作的启动与停止实际上是保证可靠地送出或封锁主时钟脉冲,控实际上是保证可靠地送出或封锁主时钟脉冲,控制时序信号的发生与停止。

制时序信号的发生与停止 •(3)(3)时序信号发生器时序信号发生器•时序信号发生器用于产生机器所需的各种时序时序信号发生器用于产生机器所需的各种时序信号,以便控制有关部件在不同的时间完成不信号,以便控制有关部件在不同的时间完成不同的微操作同的微操作•不同的机器,有着不同的时序信号在同步控不同的机器,有着不同的时序信号在同步控制的机器中,一般包括周期、节拍、脉冲等三制的机器中,一般包括周期、节拍、脉冲等三级时序信号级时序信号 •微操作控制信号形成部件:根据指令部件提供微操作控制信号形成部件:根据指令部件提供的操作控制电位、时序部件所提供的各种时序的操作控制电位、时序部件所提供的各种时序信号以及有关的状态条件,产生机器所需要的信号以及有关的状态条件,产生机器所需要的各种微操作控制信号各种微操作控制信号•不同的指令,完成不同的功能,需要不同的微不同的指令,完成不同的功能,需要不同的微操作控制信号序列每条指令都有自己对应的操作控制信号序列每条指令都有自己对应的微操作序列控制器必须根据不同的指令,在微操作序列控制器必须根据不同的指令,在不同的时间,产生并发出不同的微操作控制信不同的时间,产生并发出不同的微操作控制信号,控制有关部件协调工作,完成指令所规定号,控制有关部件协调工作,完成指令所规定的任务。

的任务3 3.微操作控制信号形成部件.微操作控制信号形成部件 4 4.中断控制逻辑〔中断机构).中断控制逻辑〔中断机构)•用于实现异常情况和特殊请求的处理用于实现异常情况和特殊请求的处理 •程序状态寄存器:用于存放程序的工作状态程序状态寄存器:用于存放程序的工作状态( (如管态、如管态、目态等目态等) )和指令执行的结果特征和指令执行的结果特征( (如结果为零、结果溢如结果为零、结果溢出等出等) ),把它所存放的内容称为程序状态字,把它所存放的内容称为程序状态字(PSW)(PSW)PSWPSW表明了系统的基本状态,是控制程序执行的重要依据表明了系统的基本状态,是控制程序执行的重要依据不同的机器,不同的机器,PSWPSW的格式及内容不完全相同的格式及内容不完全相同•例:例:8086 CPU8086 CPU中的中的PSWPSW的格式的格式•CFCF:进位:进位 PF PF:奇偶:奇偶 AF AF:半进位:半进位•ZFZF:结果为:结果为0 SF0 SF:符号:符号 TF TF:单步:单步( (圈套圈套) )•IFIF:中断允许:中断允许 DF DF:地址增:地址增/ /减量减量 OF OF:溢出:溢出5 5.程序状态寄存器.程序状态寄存器 PSR PSR • 控制台用于实现人与机器之间的通信联控制台用于实现人与机器之间的通信联系,如启动或停止机器的运行、监视程序系,如启动或停止机器的运行、监视程序运行过程、对程序进行必要的修改或干预运行过程、对程序进行必要的修改或干预等。

等•早期有硬件控制台,用于设置地址和指令早期有硬件控制台,用于设置地址和指令如今,在大型机中有软件控制台通过控如今,在大型机中有软件控制台通过控制台命令,控制机器的启停,干预机器的制台命令,控制机器的启停,干预机器的工作6 6.控制台.控制台 •控制器的组成方式主要是指微操作控制信控制器的组成方式主要是指微操作控制信号形成部件采用何种组成方式产生微操作号形成部件采用何种组成方式产生微操作控制信号控制信号•根据产生微操作控制信号的方式不同,控根据产生微操作控制信号的方式不同,控制器可分为组合逻辑型、存储逻辑型、组制器可分为组合逻辑型、存储逻辑型、组合逻辑与存储逻辑结合型三种,它们的根合逻辑与存储逻辑结合型三种,它们的根本区别在于微操作信号发生器的实现方法本区别在于微操作信号发生器的实现方法不同,而控制器中的其他部分基本上是大不同,而控制器中的其他部分基本上是大同小异的同小异的6.1.4 6.1.4 控制器的组成方式控制器的组成方式 1 1.组合逻辑型.组合逻辑型•组合逻辑控制器也称为硬联逻辑或硬布线逻辑组合逻辑控制器也称为硬联逻辑或硬布线逻辑•组合逻辑控制器是根据控制要求和状态,采用组组合逻辑控制器是根据控制要求和状态,采用组合逻辑技术来实现的。

其微操作信号发生器是由合逻辑技术来实现的其微操作信号发生器是由门电路组成的复杂树形网络构成的门电路组成的复杂树形网络构成的•组合逻辑控制器的设计目标:使用最少器件数和组合逻辑控制器的设计目标:使用最少器件数和取得最高操作速度取得最高操作速度•优点:速度快巨型机和优点:速度快巨型机和RISCRISC机为了追求高速度机为了追求高速度采用组合逻辑控制器采用组合逻辑控制器 •缺陷:微操作信号发生器结构不规整,设计、调缺陷:微操作信号发生器结构不规整,设计、调试、维修较困难,难以实现设计自动化一旦控试、维修较困难,难以实现设计自动化一旦控制部件构成之后,要想增加新的控制功能是不可制部件构成之后,要想增加新的控制功能是不可能的 2 2.存储逻辑型.存储逻辑型•存储逻辑型控制器称为微程序控制器它是采用存储逻辑型控制器称为微程序控制器它是采用存储逻辑来实现的存储逻辑来实现的•存储逻辑型控制器的实现方法:存储逻辑型控制器的实现方法:•把微操作信号代码化,使每条机器指令转化成为把微操作信号代码化,使每条机器指令转化成为一段微程序存入控制存储器中执行指令时,读一段微程序存入控制存储器中执行指令时,读出控存中的微指令,由微指令产生微操作控制信出控存中的微指令,由微指令产生微操作控制信号。

号•优点:设计规整,调试、维修便利,更改、扩充优点:设计规整,调试、维修便利,更改、扩充指令方便,易于实现自动化设计指令方便,易于实现自动化设计•缺陷:由于增加了一级控制存储器,所以指令的缺陷:由于增加了一级控制存储器,所以指令的执行速度比组合逻辑控制器慢执行速度比组合逻辑控制器慢 3 3.组合逻辑和存储逻辑结合型.组合逻辑和存储逻辑结合型•组合逻辑和存储逻辑结合型控制器称为组合逻辑和存储逻辑结合型控制器称为PLAPLA控控制器•PLAPLA控制器是吸收前两种的设计思想来实现的控制器是吸收前两种的设计思想来实现的•PLAPLA控制器实际上也是一种组合逻辑控制器,控制器实际上也是一种组合逻辑控制器,但它的输出程序可编的,某一微操作控制信号但它的输出程序可编的,某一微操作控制信号由由PLAPLA的某一输出函数产生的某一输出函数产生•PLAPLA控制器是组合逻辑技术和存储逻辑技术结控制器是组合逻辑技术和存储逻辑技术结合的产物,它克服了两者的缺点,是一种较有合的产物,它克服了两者的缺点,是一种较有前途的方法前途的方法 •以上几种控制器的设计方法是不同的,但产生以上几种控制器的设计方法是不同的,但产生的微操作命令的功能是相同的,并且各个控制的微操作命令的功能是相同的,并且各个控制条件基本上也是一致的,都是由时序电路、操条件基本上也是一致的,都是由时序电路、操作码译码信号,以及被控部件的反馈信息有机作码译码信号,以及被控部件的反馈信息有机配合而成的。

配合而成的•从功能上看,这几种控制器只是微操作信号发从功能上看,这几种控制器只是微操作信号发生器的结构和原理不同,而外部的输入条件和生器的结构和原理不同,而外部的输入条件和输出结果几乎完全相同输出结果几乎完全相同 微操作信号发生器微操作信号发生器 6.2 控制器的控制方式与时序系统控制器的控制方式与时序系统•计算机执行指令的过程实际上是执行一系列的计算机执行指令的过程实际上是执行一系列的微操作的过程每一条指令都对应着一个微操微操作的过程每一条指令都对应着一个微操作序列,这些微操作中有些可以同时执行,有作序列,这些微操作中有些可以同时执行,有些则必须按严格的时间关系执行些则必须按严格的时间关系执行•控制器的控制方式需解决的问题:控制器的控制方式需解决的问题:•如何在时间上对各种微操作信号加以控制如何在时间上对各种微操作信号加以控制 6.2.1 6.2.1 控制方式控制方式•常用的控制方式有同步控制、异步控制和联合控常用的控制方式有同步控制、异步控制和联合控制•1 1.同步控制方式.同步控制方式•任何指令的运行或指令中各个微操作的执行,均任何指令的运行或指令中各个微操作的执行,均由确定的具有统一基准时标的时序信号所控制。

由确定的具有统一基准时标的时序信号所控制•即所有的操作均由统一的时钟控制,在标准的时即所有的操作均由统一的时钟控制,在标准的时间内完成间内完成•在同步控制方式下,每个时序信号的结束就意味在同步控制方式下,每个时序信号的结束就意味着安排完成的工作已经完成,随即开始执行后续着安排完成的工作已经完成,随即开始执行后续的微操作或自动转向下条指令的运行的微操作或自动转向下条指令的运行 •典型的同步控制方式:典型的同步控制方式:•以微操作序列最长的指令和执行时间最长的微以微操作序列最长的指令和执行时间最长的微操作为标准,把一条指令执行过程划分为若干操作为标准,把一条指令执行过程划分为若干个相对独立的阶段〔称为周期〕或若干个时间个相对独立的阶段〔称为周期〕或若干个时间区间〔称为节拍),采用完全统一的周期〔或区间〔称为节拍),采用完全统一的周期〔或节拍〕控制各条指令的执行节拍〕控制各条指令的执行•优点:时序关系简单,控制方便优点:时序关系简单,控制方便•缺陷:浪费时间缺陷:浪费时间•因为对比较简单的指令,将有很多节拍是不用因为对比较简单的指令,将有很多节拍是不用的,处于等待所以,在实际应用中都不采用的,处于等待。

所以,在实际应用中都不采用这种典型的同步控制方式,而是采用某些折衷这种典型的同步控制方式,而是采用某些折衷的方案 (1) (1) 采用中央控制与局部控制相结合的方法采用中央控制与局部控制相结合的方法•中央控制:统一节拍的控制中央控制:统一节拍的控制•根据大多数指令的微操作序列的情况,设置一根据大多数指令的微操作序列的情况,设置一个统一的节拍数,使之大多数指令均能在统一个统一的节拍数,使之大多数指令均能在统一的节拍内完成的节拍内完成•局部控制:在延长节拍内的控制局部控制:在延长节拍内的控制•对于少数在统一节拍内不能完成的指令,采用对于少数在统一节拍内不能完成的指令,采用延长节拍或增加节拍数,使之在延长节拍内完延长节拍或增加节拍数,使之在延长节拍内完成,执行完毕再返回中央控制成,执行完毕再返回中央控制 •例:设某计算机的指令通常用例:设某计算机的指令通常用8 8个节拍完成,个节拍完成,即有即有8 8个中央节拍个中央节拍 W7 W7~~W0 W0 ,当某指令在,当某指令在8 8个节个节拍中不能完成时,就插入若干局部节拍拍中不能完成时,就插入若干局部节拍 W6* W6*,,经过若干局部节拍经过若干局部节拍 W6* W6*后,再返回中央节拍后,再返回中央节拍 W7W7。

(2) (2) 采用不同的机器周期和延长节拍的方法采用不同的机器周期和延长节拍的方法•把一条指令执行过程划分为若干机器周期,如把一条指令执行过程划分为若干机器周期,如取指、取数、执行等周期根据所执行指令的取指、取数、执行等周期根据所执行指令的不同需要,选取不同的机器周期数在节拍安不同需要,选取不同的机器周期数在节拍安排上,每个周期划分为固定的节拍,每个节拍排上,每个周期划分为固定的节拍,每个节拍都可根据需要延长一个节拍都可根据需要延长一个节拍•这种方法可以解决执行不同的指令所需时间不这种方法可以解决执行不同的指令所需时间不统一问题统一问题•在在Intel 8088 Intel 8088 的指令执行过程中有读写周期、的指令执行过程中有读写周期、内部周期等,其中读写周期为内部周期等,其中读写周期为4 4个节拍,但可个节拍,但可以延长若干个节拍以延长若干个节拍 (3) (3) 采用分散节拍的方法采用分散节拍的方法•分散节拍:运行不同指令时,需要多少节拍,分散节拍:运行不同指令时,需要多少节拍,时序部件就发生多少节拍时序部件就发生多少节拍•这种方法可完全避免节拍轮空,是提高指令运这种方法可完全避免节拍轮空,是提高指令运行速度的有效方法,但这种方法使时序部件复行速度的有效方法,但这种方法使时序部件复杂化。

同时还不能解决节拍内那些简单的微操杂化同时还不能解决节拍内那些简单的微操作因等待所浪费的时间作因等待所浪费的时间 2 2.异步控制方式.异步控制方式•没有统一的同步信号,采用问答方式进行时序协没有统一的同步信号,采用问答方式进行时序协调,将前一操作的回答信号作为下一操作的启动调,将前一操作的回答信号作为下一操作的启动信号•异步控制方式不仅要区分不同指令对应的微操作异步控制方式不仅要区分不同指令对应的微操作序列的长短,而且要区分其中每个微操作的繁简,序列的长短,而且要区分其中每个微操作的繁简,每条指令、每个微操作需要多少时间就占用多少每条指令、每个微操作需要多少时间就占用多少时间 数据数据间隔可变间隔可变发送准发送准备好备好数据已数据已接受接受•这种方式可根据每条指令的操作的实际需要而这种方式可根据每条指令的操作的实际需要而分配时间,所以没有时间上的浪费,效率高分配时间,所以没有时间上的浪费,效率高但设计复杂且费设备但设计复杂且费设备 3 3.联合控制方式.联合控制方式•联合控制是将同步控制和异步控制相结合联合控制是将同步控制和异步控制相结合•联合控制方式的设计思想:联合控制方式的设计思想:•在功能部件内部采用同步方式或以同步方式为在功能部件内部采用同步方式或以同步方式为主的控制方式;在功能部件之间采用异步方式。

主的控制方式;在功能部件之间采用异步方式•通常对可以统一的微操作采用同步控制,对难通常对可以统一的微操作采用同步控制,对难以统一的微操作采用异步控制以统一的微操作采用异步控制 •例如,在微、小型机中,例如,在微、小型机中,CPU内部基本时序采内部基本时序采用同步控制方式,当用同步控制方式,当CPU通过总线与主存或其通过总线与主存或其它外设交换数据时,转入异步控制它外设交换数据时,转入异步控制•当当CPU访问外设时,只需给出起始信号,主存访问外设时,只需给出起始信号,主存或外部设备即按自己的时序信号去安排操作,一或外部设备即按自己的时序信号去安排操作,一旦操作结束,则向旦操作结束,则向CPU发结束信号,以便发结束信号,以便CPU再安排它的后继工作再安排它的后继工作 同步与异步时序的衔接关系同步与异步时序的衔接关系•当当CPUCPU要访主存时,在发读信号要访主存时,在发读信号READREAD同时发同时发““等待〞信号,等待信号使时序由同步转入异步等待〞信号,等待信号使时序由同步转入异步操作并冻结同步时序,使节拍间的相位关系不操作并冻结同步时序,使节拍间的相位关系不再发生变化,直到存储器按自己速度操作结束,再发生变化,直到存储器按自己速度操作结束,并向并向CPUCPU发回答信号发回答信号MOCMOC才解除对同步时序的冻才解除对同步时序的冻结,机器回到同步时序按原时序关系继续运行。

结,机器回到同步时序按原时序关系继续运行 •实际上现代计算机中几乎没有完全采用实际上现代计算机中几乎没有完全采用同步或完全采用异步的控制方式,大多同步或完全采用异步的控制方式,大多数都采用联合控制方式数都采用联合控制方式 6.2.2 6.2.2 时序系统时序系统•时序系统是控制器的心脏,由它为指令的执行提时序系统是控制器的心脏,由它为指令的执行提供各种定时信号通常,设计时序系统主要是针供各种定时信号通常,设计时序系统主要是针对同步控制方式的对同步控制方式的•1 1.指令周期与机器周期.指令周期与机器周期•指令周期:从取指令、分析指令到执行完一条指指令周期:从取指令、分析指令到执行完一条指令所需的全部时间令所需的全部时间•由于各种指令的操作功能不同,繁简程度不同,由于各种指令的操作功能不同,繁简程度不同,因此各种指令的指令周期也不尽相同因此各种指令的指令周期也不尽相同 •机器周期〔机器周期〔CPUCPU周期):指令周期中的某一工周期):指令周期中的某一工作阶段所需的时间在指令执行过程中,各机作阶段所需的时间在指令执行过程中,各机器周期相对独立器周期相对独立•一条指令的指令周期由若干个机器周期所组成,一条指令的指令周期由若干个机器周期所组成,每个机器周期完成一个基本操作。

所以机器周每个机器周期完成一个基本操作所以机器周期也称为基本周期期也称为基本周期•一般机器的一般机器的CPUCPU周期有取指周期、取数周期、周期有取指周期、取数周期、执行周期,中断周期等执行周期,中断周期等 •每个机器周期设置一个周期状态触发器与之对每个机器周期设置一个周期状态触发器与之对应,机器运行于哪个周期,与其对应的周期状应,机器运行于哪个周期,与其对应的周期状态触发器被置为态触发器被置为““1 1””显然,机器运行的任显然,机器运行的任何时刻都只能建立一个周期状态,因此同一时何时刻都只能建立一个周期状态,因此同一时刻只能有一个周期状态触发器被置为刻只能有一个周期状态触发器被置为““1 1””•不同工作周期所占的时间可以不等由于不同工作周期所占的时间可以不等由于CPUCPU内部操作速度快,而内部操作速度快,而CPUCPU访存所花时间较长,访存所花时间较长,所以许多计算机系统往往以主存周期为基础来所以许多计算机系统往往以主存周期为基础来规定规定CPUCPU周期,以便二者工作协调配合周期,以便二者工作协调配合 •把一个机器周期等分成若干个时间区间,每一把一个机器周期等分成若干个时间区间,每一时间区间称为一个节拍。

时间区间称为一个节拍•一个节拍对应一个电位信号,控制一个或几个一个节拍对应一个电位信号,控制一个或几个微操作的执行微操作的执行•在一个机器周期内,要完成若干个微操作,这在一个机器周期内,要完成若干个微操作,这些微操作不但需要占用一定的时间,而且有一些微操作不但需要占用一定的时间,而且有一定的先后次序因此,在同步控制方式中,基定的先后次序因此,在同步控制方式中,基本的控制方法就是把一个机器周期等分成若干本的控制方法就是把一个机器周期等分成若干个节拍,每一个节拍完成一步基本操作,如一个节拍,每一个节拍完成一步基本操作,如一次传送、一次加减运算等次传送、一次加减运算等•一个节拍电位信号的宽度取决于一个节拍电位信号的宽度取决于CPUCPU完成一个完成一个基本操作的时间基本操作的时间 2 2.节拍.节拍 • 节拍提供了一项基本操作所需的时间分节拍提供了一项基本操作所需的时间分段,但有的操作如打入寄存器,还需严段,但有的操作如打入寄存器,还需严格的定时脉冲,以确定在哪一时刻打入格的定时脉冲,以确定在哪一时刻打入节拍的切换,也需要严格的同步定时节拍的切换,也需要严格的同步定时所以在一个节拍内,有时还需要设置一所以在一个节拍内,有时还需要设置一个或几个工作脉冲,用于寄存器的复位个或几个工作脉冲,用于寄存器的复位和接收数据等。

和接收数据等•脉冲:一个节拍内设置的一个或几个工脉冲:一个节拍内设置的一个或几个工作脉冲3. 3. 脉冲〔定时脉冲)脉冲〔定时脉冲) •周期、节拍、脉冲构成了三级时序系统,它们周期、节拍、脉冲构成了三级时序系统,它们之间关系如下图所示图中包括两个机器周期之间关系如下图所示图中包括两个机器周期M1M1、、M2M2,每个周期包含四个节拍,每个周期包含四个节拍W0W0~~W3W3,每个,每个节拍内有一个脉冲节拍内有一个脉冲P P •微型机中常用的时序系统与上述三级时序系统有微型机中常用的时序系统与上述三级时序系统有所不同,称之为时钟周期时序系统所不同,称之为时钟周期时序系统•下图所示的是一典型指令的基本时序,一个指令下图所示的是一典型指令的基本时序,一个指令周期包含三个机器周期:取指周期、存储器读周周期包含三个机器周期:取指周期、存储器读周期和存储器写周期,三个周期中分别包含期和存储器写周期,三个周期中分别包含4 4个、个、3 3个、个、3 3个时钟周期个时钟周期 6.3 CPU6.3 CPU的总体结构的总体结构•CPUCPU即中央处理器,它包含运算器和控制器两即中央处理器,它包含运算器和控制器两个部分。

其功能为:个部分其功能为:•⑴ ⑴ 程序控制:控制程序按所要求的次序正确程序控制:控制程序按所要求的次序正确执行•⑵ ⑵ 操作控制:控制产生每条指令所需的操作操作控制:控制产生每条指令所需的操作信号,送往有关部件,控制完成指令规定的操信号,送往有关部件,控制完成指令规定的操作•⑶ ⑶ 时序控制:对各种操作实施时间上的定时,时序控制:对各种操作实施时间上的定时,使计算机有条不紊地工作使计算机有条不紊地工作•⑷ ⑷ 数据加工:对数据进行算逻运算处理数据加工:对数据进行算逻运算处理 6.3.1 6.3.1 寄存器的设置寄存器的设置•不同计算机的不同计算机的CPUCPU结构存在差别,但在结构存在差别,但在CPUCPU中一般中一般都设置下列寄存器:都设置下列寄存器:•(1)(1)指令寄存器指令寄存器 IR IR•(2)(2)程序计数器程序计数器 PC PC•(3)(3)累加寄存器累加寄存器 AC AC•(4)(4)程序状态寄存器程序状态寄存器 PSR PSR•(5)(5)地址寄存器地址寄存器 MAR MAR•(6)(6)数据缓冲寄存器数据缓冲寄存器 MDR( MDR(或或MBR)MBR) •其中其中⑵⑵、、⑶⑶、、⑷⑷是用户可用的,是用户可用的,⑴⑴、、⑸⑸、、⑹⑹是是用户不可用的。

用户不可用的•CPUCPU中还常设置一些程序不能直接访问、用于中还常设置一些程序不能直接访问、用于暂存操作数据或中间结果的寄存器,称为暂存暂存操作数据或中间结果的寄存器,称为暂存器 通用寄存器通用寄存器•通用寄存器:一组程序可访问的、具有多种功通用寄存器:一组程序可访问的、具有多种功能的寄存器能的寄存器•在指令系统中,为通用寄存器分配了编号〔寄在指令系统中,为通用寄存器分配了编号〔寄存器地址),可以编程指定使用其中的某个寄存器地址),可以编程指定使用其中的某个寄存器•通用寄存器自身的逻辑往往很简单并且比较统通用寄存器自身的逻辑往往很简单并且比较统一,甚至是快速的小规模存储器的一些单元,一,甚至是快速的小规模存储器的一些单元,但通过编程与运算器配合,可指定其实现多种但通过编程与运算器配合,可指定其实现多种功能,如提供操作数、保存中间结果〔即作累功能,如提供操作数、保存中间结果〔即作累加器用),或用作地址指针、基址寄存器、变加器用),或用作地址指针、基址寄存器、变址寄存器、计数器等址寄存器、计数器等 6.3.2 6.3.2 数据通路结构及指令流程分析数据通路结构及指令流程分析•数据通路:信息传送的基本路径。

数据通路:信息传送的基本路径•CPUCPU内部的数据通路通常是指运算器与寄存器内部的数据通路通常是指运算器与寄存器之间的信息传输通道之间的信息传输通道•数据通路结构直接影响着数据通路结构直接影响着CPUCPU内各种信息的传内各种信息的传送路径数据通路不同,指令执行过程的微操送路径数据通路不同,指令执行过程的微操作序列的安排也不同,它将直接影响到微操作作序列的安排也不同,它将直接影响到微操作信号形成部件的设计信号形成部件的设计 1 1.单总线结构.单总线结构•CPUCPU内部采用单总线内部采用单总线IBUSIBUS将寄存器和算术逻辑运将寄存器和算术逻辑运算部件连接起来算部件连接起来CPUCPU、主存、、主存、I/OI/O设备也通过一设备也通过一组单总线〔系统总线〕连接起来组单总线〔系统总线〕连接起来•在单总线结构中,在单总线结构中,CPUCPU内部的任何两个部件间的内部的任何两个部件间的数据传送都必须经过单总线数据传送都必须经过单总线IBUSIBUS,因此单总线结,因此单总线结构的控制比较简单,但传送速度受到限制在一构的控制比较简单,但传送速度受到限制在一些微、小型机中常采用这种结构些微、小型机中常采用这种结构。

单总线结构的单总线结构的CPUCPU 2. 2. 双总线结构双总线结构•CPUCPU内部通过内部通过B B总线〔接收总线〕和总线〔接收总线〕和F F总线〔发总线〔发送总线),将寄存器和算术逻辑运算部件连接送总线),将寄存器和算术逻辑运算部件连接起来各寄存器可通过控制门,建立寄存器与起来各寄存器可通过控制门,建立寄存器与总线之间的联系总线之间的联系•CPUCPU通过地址总线通过地址总线ABUSABUS和数据总线和数据总线DBUSDBUS与主存、与主存、I/OI/O设备连接设备连接 双双总总线线结结构构的的CPUCPU 3. 3. 指令流程分析指令流程分析•指令流程:指令的操作过程指令流程:指令的操作过程•对指令流程的影响因素:对指令流程的影响因素:•① ① 指令的执行步骤、访问主存的步骤、总指令的执行步骤、访问主存的步骤、总线的特点决定了指令流程的分步方式;线的特点决定了指令流程的分步方式;•②②指令功能不同,操作数的数量不同,指指令功能不同,操作数的数量不同,指令流程不同令流程不同•③③寻址方式不同,寻找操作数的过程不同寻址方式不同,寻找操作数的过程不同•④④数据通路不同,传送数据时的控制过程数据通路不同,传送数据时的控制过程不同。

不同 •⑤ ALU⑤ ALU的功能不同,指令的执行步骤不的功能不同,指令的执行步骤不同•⑥⑥不同的指令,执行时的基本步骤不同不同的指令,执行时的基本步骤不同如访存指令,需要访问存储器;如访存指令,需要访问存储器;R R——R R型型指令不需要访存指令不需要访存 •单总线结构中单总线结构中ALUALU的功能:的功能:A+1,A-1, A+B, A+1,A-1, A+B, A-BA-B•例例6.1 6.1 分析单总线结构的分析单总线结构的CPUCPU中,指令中,指令ADD (R1)ADD (R1),,R0R0的指令流程设前一操作数地址为源,后一的指令流程设前一操作数地址为源,后一操作数地址为目的操作数地址为目的•解:指令功能:解:指令功能:•((R1))((R1))++(R0)→R0(R0)→R0 •指令流程如下:指令流程如下:•(1)(PC)→MAR(1)(PC)→MAR,,ReadRead,,(PC)→Y(PC)→Y•(2) (Y)(2) (Y)++1→Z, M→MDR→IR 1→Z, M→MDR→IR ;送指令地址,读主存;送指令地址,读主存•(3) (Z)→PC (3) (Z)→PC ;;PCPC++1→PC,1→PC,取指令到取指令到IR IR •(4)(R1)→MAR(4)(R1)→MAR,,Read Read ;送源操作数地址;送源操作数地址•(5) M→MDR→Y (5) M→MDR→Y ;取出源操作数到;取出源操作数到Y Y中中•(6)(Y)(6)(Y)++(R0)→Z (R0)→Z ;执行加法运算,结果暂存;执行加法运算,结果暂存Z Z•(7)(Z)→R0 (7)(Z)→R0 ;加法结果送回目标寄;加法结果送回目标寄存器存器 •例:分析单总线结构的例:分析单总线结构的CPUCPU中,转移指令中,转移指令 JC D JC D 的指令流程。

的指令流程•解:指令功能:解:指令功能:•IF CIF C==1 THEN (PC)1 THEN (PC)++D→PC D→PC •指令流程如下:指令流程如下:•(1)(PC)→MAR(1)(PC)→MAR,,ReadRead,,(PC)→Y(PC)→Y•(2) (Y)(2) (Y)++1→Z, (MDR)→IR 1→Z, (MDR)→IR ;送指令地址,读主存;送指令地址,读主存•(3) (Z)→PC (3) (Z)→PC ;;PCPC++1→PC,1→PC,取指令到取指令到IR IR •(4) IF C(4) IF C==1 (PC)→Y 1 (PC)→Y ;送当前指令地址;送当前指令地址•(5) Y(5) Y++IR(DIR(D部分部分)→Z )→Z ;计算转移地址;计算转移地址•(6)(Z)→PC (6)(Z)→PC ;下条指令实现;下条指令实现转移转移 •根据指令流程还需要作进一步的控制信息分析根据指令流程还需要作进一步的控制信息分析•例:分析单总线结构的例:分析单总线结构的CPUCPU中指令中指令ADD X(R1),(R2)+ ADD X(R1),(R2)+ 的指令流程和控制信号序列。

的指令流程和控制信号序列•指令格式为两字节指令,第二字节为变址值指令格式为两字节指令,第二字节为变址值X X•源操作数采用变址寻址,目的操作数采用自增型变源操作数采用变址寻址,目的操作数采用自增型变址寻址•指令功能:指令功能:•(X(X++(R1))(R1))++((R2))→(R2), (R2)((R2))→(R2), (R2)++1→R21→R2控制信息分析控制信息分析 IDIDIRIRPCPCR0R0R1R1MARMARMDRMDRTEMPTEMPY YZ ZIRoutIRinPCoutPCinR0outR0inR1outR1inMARinMARoutMDRinTEMPoutTEMPinYin0→YZoutADDSUB1→CinZin主主存存ReadWrite…•单总线结构中单总线结构中ALU的功的功能:能:A+1,A-1, A+B, A-B 例例6.2 分析双总线结构的分析双总线结构的CPU中执行加法指令:中执行加法指令:ADD (R1),,R0的操作流程和控制信号序列的操作流程和控制信号序列 指令功能:指令功能:(R0)++((R1))→R0 分析:在执行本条加法指令时,从取指令到产生结分析:在执行本条加法指令时,从取指令到产生结果,共需访问存储器果,共需访问存储器2次,次,第第1次读取指令,第次读取指令,第2次读取源操作数。

次读取源操作数双总线结构中双总线结构中ALU的功能:的功能:A+1,A-1, A+B, A-B 可通过总线连接器可通过总线连接器G将总线将总线B的信息直接传到的信息直接传到F总线其控制信号为其控制信号为Gon 双双总总线线结结构构的的CPUCPU 操作流程和控制信号序列操作流程和控制信号序列 •例例6.3 6.3 分析双总线结构的分析双总线结构的CPUCPU中,指令中,指令 SUB X(R1),(R2)+ SUB X(R1),(R2)+ 的指令流程和控制信号的指令流程和控制信号•指令格式为两字节指令,第二字节为变址值指令格式为两字节指令,第二字节为变址值X X•源操作数的有效地址:源操作数的有效地址:E1E1==X X++(R1)(R1)•目的操作数的有效地址:目的操作数的有效地址:E2E2==(R2)(R2),,(R2)(R2)++1→R21→R2指令功能:指令功能: (E2) (E2)--(E1)→E2(E1)→E2•可通过总线连接器可通过总线连接器G G将总线将总线B B的信息直接传到的信息直接传到F F总线。

总线其控制信号为其控制信号为GonGon •((1 1)~()~(3 3〕为取指令阶段,〕为取指令阶段,•((4 4)~()~(6 6〕是取变址值〕是取变址值X X的流程,的流程,•((7 7)~()~(8 8〕计算形式地址,取出源操作数〕计算形式地址,取出源操作数•((9 9)~()~(1111〕为取目的数阶段〕为取目的数阶段•((1212)~()~(1313〕进入指令的执行阶段〕进入指令的执行阶段•整个指令流程执行结束后,共访问存储器整个指令流程执行结束后,共访问存储器5 5次 •如果双总线结构的如果双总线结构的CPUCPU中没有总线连接器中没有总线连接器G G,则,则ALUALU需要增加功能:需要增加功能:F F==B B•在控制信号流程中,可以将在控制信号流程中,可以将GonGon信号改为信号改为F F==B B 作业作业•P304 6.5 (3) •例:在双总线结构的机器中,分析转子指令:例:在双总线结构的机器中,分析转子指令:JSR XJSR X的执行过程设机器中没有总线连接器,的执行过程设机器中没有总线连接器,ALUALU的功能为:的功能为:• F F==A A++B B,,F F==A A--B B,, F F==A A++1 1,,F F==A A--1 1,, F F==A A,,F F==B B•JSRJSR为双字节指令,为双字节指令,X X为子程序入口地址,在第二为子程序入口地址,在第二字节。

字节•转子指令的功能:将断点地址保存到堆栈中,将转子指令的功能:将断点地址保存到堆栈中,将X X送入送入PCPC,实现程序转移实现程序转移 IDIDIRIRPCPCR0R0R1R1MARMARMDRMDRTEMPTEMPY YIR→BPC→BR0→BR1→BF→MARMAR→BTEMP→BF→YADDSUBA主存主存ReadWrite…R7R7R7→BABUSDBUSINCDECBF→TEMPF→MDRF→R7F→R!F→R0F→PCF→IRF FB B…SPSPSP→BF→SP •上题中,如果上题中,如果ALUALU的功能增加为的功能增加为• F F==A A++B B,,F F==A A--B B,, F F==A A++1 1,,F F==A A--1 1,, F F==B B++1 1,,F F==B B--1 1,, F F==A A,,F F==B B•处理器内部无暂存器处理器内部无暂存器TEMPTEMP•则控制序列可以进一步简化则控制序列可以进一步简化•指令执行过程与指令功能、寻址方式、数据通指令执行过程与指令功能、寻址方式、数据通路、路、ALUALU功能等紧密相关功能等紧密相关。

作业作业•在双总线结构的机器中,写出转子指令在双总线结构的机器中,写出转子指令RETRET的的操作序列及控制信号序列设机器中没有总操作序列及控制信号序列设机器中没有总线连接器,线连接器,ALUALU的功能为:的功能为:• F F==A A++B B,,F F==A A--B B,, F F==A A++1 1,,F F==A A--1 1,, F F==A A,,F F==B B•返回地址保存在堆栈中堆栈为自底向上生返回地址保存在堆栈中堆栈为自底向上生长 6.4 6.4 模型机的总体结构模型机的总体结构•以模型机为例,进一步了解控制器的控制原理以模型机为例,进一步了解控制器的控制原理和设计方法,建立计算机的整机结构和设计方法,建立计算机的整机结构 6.4.1 6.4.1 模型机的数据通路模型机的数据通路•1.1.字长:字长:1616位位•2. 2. 总线结构:总线结构:•① ① 内部总线:双总线结构内部总线:双总线结构•BUS1BUS1:输入总线,:输入总线, BUS2 BUS2:输出总线:输出总线•○○:输出控制门信号,如:输出控制门信号,如MDR→BUS1MDR→BUS1•CPCP:输入控制信号,如:输入控制信号,如CPYCPY•② ② 系统总线:系统总线:•地址总线:地址总线:ABUSABUS,数据总线:,数据总线:DBUSDBUS•I/OI/O与主存共享总线,用与主存共享总线,用 MREQ MREQ 控制访存;用控制访存;用IOREQ IOREQ 控制访问控制访问I/OI/O,,•R/W=1R/W=1,读,,读, R/W=0 R/W=0,写,写 •3. 3. 寄存器寄存器 •4. ALU4. ALU的功能的功能 •由由SN74181SN74181构成,在控制信号构成,在控制信号S3S3~~S0S0及及M M、、C0C0的的控制下,可完成控制下,可完成1616种逻辑运算和种逻辑运算和1616种算术运算。

种算术运算P242P242))•M M==0 0:算术运算:算术运算 M M==1 1:逻辑运算:逻辑运算 •5. 5. 状态标志状态标志•用于记录运算结果特征,可作为转移判断条件用于记录运算结果特征,可作为转移判断条件•CcCc:进位标志,打入脉冲::进位标志,打入脉冲:CPCcCPCc•CzCz:为零标志,打入脉冲::为零标志,打入脉冲:CPCzCPCz•6.6.移位器移位器•采用斜送方式实现移位传递,直送方式实现直采用斜送方式实现移位传递,直送方式实现直接传递≥1≥1FnAn++1SLSLAn--1AnDMDMSRSR •7.7.模型机的编址模型机的编址•主存按字编址,容量主存按字编址,容量64K64K字,字长字,字长1616位,位,1616位地址可寻址位地址可寻址64K64K 6.4.2 6.4.2 模型机的指令系统模型机的指令系统•指令系统中共指令系统中共1616条指令条指令•1.1.指令格式指令格式•⑴ ⑴ 双操作数指令双操作数指令•包括:包括:MOVMOV、、ADDADD、、SUBSUB、、ANDAND、、OROR、、EOREOR源地址源地址ES目的地址目的地址ED •包括:包括:INCINC、、COMCOM、、ROLROL、、RORROR目的地址目的地址ED⑵ ⑵ 单操作数指令单操作数指令 •转移指令采用相对寻址:转移地址=转移指令采用相对寻址:转移地址=(PC)(PC)++D D•D D采用补码,进行运算时,需进行符号扩展采用补码,进行运算时,需进行符号扩展•包括:包括:JMPJMP〔无条件转移)、〔无条件转移)、JCJC〔〔C C==1 1转移转移) )、、JZ JZ (Z(Z==1 1转移转移) ) 、、JSR(JSR(转子转子) )•转子指令转子指令JSRJSR的操作:的操作:•(SP)-1→SP(SP)-1→SP、、MARMAR,,•(PC)→MDR(PC)→MDR,,Write ((MDR)→Write ((MDR)→存储器存储器) )•(PC)(PC)++D→PCD→PC⑶ ⑶ 转移指令转移指令(PC)→(SP)(PC)→(SP) ⑷⑷ 返回与停机指令返回与停机指令•前往前往(RTS)与停机与停机(HALT)指令均为零地址指令指令均为零地址指令特征特征特征特征 •子程序子程序 返回指令返回指令(RTS)(RTS)的功能是:从子程序返的功能是:从子程序返回主程序回主程序•返回指令返回指令RTSRTS的操作:的操作: •(SP) →MAR(SP) →MAR,,Read Read • M→MDR→PC M→MDR→PC •(SP)(SP)++l →SP l →SP •HALT HALT 停机指令的功能是:停机指令的功能是:0→RUN0→RUN,将时钟信,将时钟信号截断。

号截断SP))→ PC((SP))→ PC 2. 2. 指令系统指令系统•为了简单起见,模型机的指令系统中只有为了简单起见,模型机的指令系统中只有1616条条指令,包括了传送指令、算逻指令、转移指令、指令,包括了传送指令、算逻指令、转移指令、转子与返回指令和停机指令等五类指令转子与返回指令和停机指令等五类指令 3.3.寻址方式寻址方式•除自减型寄存器间址不能使用除自减型寄存器间址不能使用PCPC外,其余寻址方外,其余寻址方式均可以使用所有可编程寄存器式均可以使用所有可编程寄存器 •在自增型寄存器间址中在自增型寄存器间址中•若若Rn==SP,那么,那么(SP)+为堆栈中的弹出数据操作+为堆栈中的弹出数据操作•若若Rn==PC,则为立即寻址,立即数保存在该指令,则为立即寻址,立即数保存在该指令的下一单元中的下一单元中•留意:如果目的操作数采用立即寻址,则有可能留意:如果目的操作数采用立即寻址,则有可能使指令数据不安全使指令数据不安全•自减型寄存器间址中自减型寄存器间址中•若若Rn==SP,那么-,那么-(SP) 为堆栈中的压入数据操为堆栈中的压入数据操作 •变址寻址的指令长度为双字,取指后需两次访存才变址寻址的指令长度为双字,取指后需两次访存才能得到操作数。

能得到操作数•取指令操作码后取指令操作码后•(PC)→MAR,,Read ;送;送X的地址,读的地址,读X•(PC)++1→PC ;;PC增量增量•M→MDR→Y ;取;取X值到值到Y•(Y)++(Rn)→MAR ,,Read ;形成有效地址,读操;形成有效地址,读操作数作数•变址寻址中,若变址寻址中,若Rn==PC,则为相对寻址则为相对寻址 6.4.3 6.4.3 模型机的时序系统模型机的时序系统•模型机采用同步控制方式、三级时序逻辑系统,模型机采用同步控制方式、三级时序逻辑系统,即利用周期、节拍、脉冲构成控制时序即利用周期、节拍、脉冲构成控制时序•1.1.模型机的机器周期模型机的机器周期 •每个机器周期内可以完成一次主存的读每个机器周期内可以完成一次主存的读/ /写操作•模型机设置六种机器周期模型机设置六种机器周期•取指周期取指周期 FT FT:完成取指、分析、:完成取指、分析、(PC)(PC)++1→PC1→PC•取源周期取源周期 ST ST:执行双操作数指令时,完成源操:执行双操作数指令时,完成源操 作数的寻址,取源操作数。

作数的寻址,取源操作数 (寄存器寻址时不用)(寄存器寻址时不用) •取目的周期取目的周期 DT DT:完成目的操作数的寻址,取:完成目的操作数的寻址,取 目的操作数目的操作数•执行周期执行周期 ET ET:完成指令操作,并保存结果完成指令操作,并保存结果•中断周期中断周期 IT IT:处理中断请求:处理中断请求•DMADMA周期周期 DMAT DMAT:实现:实现DMADMA传送本章暂不讨论本章暂不讨论 •CPUCPU中任何时候都只能有一个周期存在,可以用六个中任何时候都只能有一个周期存在,可以用六个状态标志表示状态标志表示CPUCPU当前进入了哪一个周期当前进入了哪一个周期•可用六个触发器表示六种不同的周期状态可用六个触发器表示六种不同的周期状态•TENDTEND• • P P为各触发器的打入脉冲,表示在每个机器周为各触发器的打入脉冲,表示在每个机器周期的最后一个时钟脉冲时,发出打入脉冲期的最后一个时钟脉冲时,发出打入脉冲 2.2.模型机的节拍与时序模型机的节拍与时序 •节拍用于在一个周期中产生不同的微操作信号。

节拍用于在一个周期中产生不同的微操作信号•每个周期中设置四个节拍每个周期中设置四个节拍T0T0、、T1T1、、T2T2、、T3T3•为节省节拍,在取目的周期为节省节拍,在取目的周期 DT DT 和执行周期和执行周期 ET ET中安排两种节拍产生方式根据微操作的需要,中安排两种节拍产生方式根据微操作的需要,可选择两个节拍,也可选择四个节拍可选择两个节拍,也可选择四个节拍•每个节拍内设置一个脉冲,用于寄存器接收代码,每个节拍内设置一个脉冲,用于寄存器接收代码,如如CPIRCPIR、、CPPCCPPC等均为脉冲信号等均为脉冲信号•脉冲的前沿用于寄存器接收数据脉冲的前沿用于寄存器接收数据•脉冲的后沿用于周期、节拍的转换脉冲的后沿用于周期、节拍的转换 •节拍由节拍发生器产生,用两位节拍由节拍发生器产生,用两位T T型触发器型触发器C1C1、、C2C2构成模构成模4 4计数器,经译码产生四个节拍电位计数器,经译码产生四个节拍电位T0T0、、T1T1、、T2T2、、T3T3触发器C1C1的的T T端固定接高电位,每来一个端固定接高电位,每来一个脉冲计一次数触发器脉冲计一次数触发器C2C2的的T T端受或门的输出控制。

端受或门的输出控制 •通过分析指令流程可知:通过分析指令流程可知:•当现行指令的目标寻址为非变址寻址时,在当现行指令的目标寻址为非变址寻址时,在DTDT中不进入中不进入T2T2拍,只需拍,只需T0T0、、T1T1两个节拍两个节拍•单操作数指令、单操作数指令、MOVMOV指令、双操作数指令的目指令、双操作数指令的目标寻址为寄存器寻址标寻址为寄存器寻址(DR(DR==1)1)以及转移类指令、以及转移类指令、停机指令在执行周期停机指令在执行周期ETET中只需两个节拍,不需中只需两个节拍,不需进入进入T2T2•上述情况应封锁上述情况应封锁C2C2计数•上图中触发器上图中触发器C1C1的的T T端固定接高电位,每来一端固定接高电位,每来一个脉冲计一次数触发器个脉冲计一次数触发器C2C2的的T T端受或门的输端受或门的输出控制,或门用于控制发出的节拍数出控制,或门用于控制发出的节拍数 3. 3. 脉冲脉冲•模型机在每个节拍内设置一个工作脉冲模型机在每个节拍内设置一个工作脉冲•脉冲的作用:脉冲的作用:•⑴ ⑴ 用于寄存器接收代码如各寄存器的用于寄存器接收代码如各寄存器的CPCP脉冲•⑵ ⑵ 用于周期、节拍的转换。

用于周期、节拍的转换•通常利用脉冲的前沿接收数据,用脉冲的后沿进通常利用脉冲的前沿接收数据,用脉冲的后沿进行周期、节拍的转换行周期、节拍的转换 模型机的三级时序关系模型机的三级时序关系 PC→BUS1PC→BUS1CPPCCPPCBUSiBUSiBUS1BUS1BUS2BUS2PCiPCiD DCPCPCPMARCPMARBUSiBUSiMARiMARiD DCPCPALUALUA A移位器移位器DMDMi iS3S3~~S0S0M M•例:例:(PC)→MAR•所需信号所需信号•①① PC→BUS1=1•②② S3S2S1S0M=11111•③③ DM=1•④④ CPMAR•①②③①②③是电位信号,需是电位信号,需在一个节拍内有效;在一个节拍内有效;④④是脉冲信号,其前沿将是脉冲信号,其前沿将数据打入,后沿变换节数据打入,后沿变换节拍节拍节拍脉冲脉冲 6.5 6.5 组合逻辑控制器的设计组合逻辑控制器的设计•用组合逻辑方法设计控制器的微操作控制信号用组合逻辑方法设计控制器的微操作控制信号形成部件,需要根据每条指令的要求,让节拍形成部件,需要根据每条指令的要求,让节拍电位和脉冲有步骤地去控制机器的有关部件,电位和脉冲有步骤地去控制机器的有关部件,一步一步地依次执行指令所规定的微操作序列,一步一步地依次执行指令所规定的微操作序列,从而在一个指令周期内完成一条指令所规定的从而在一个指令周期内完成一条指令所规定的全部操作功能。

全部操作功能 6.5.1 6.5.1 组合逻辑控制器的设计步骤组合逻辑控制器的设计步骤•在设计控制器之前,需由计算机系统结构设计在设计控制器之前,需由计算机系统结构设计人员设计好机器的指令系统、数据表示、时序人员设计好机器的指令系统、数据表示、时序系统,在此基础上,才能进行控制器的硬件线系统,在此基础上,才能进行控制器的硬件线路设计•组合逻辑控制器设计的设计步骤:组合逻辑控制器设计的设计步骤:•1.分析指令的执行步骤,绘制指令操作流程图分析指令的执行步骤,绘制指令操作流程图•分析指令操作流程的目的是确定指令执行的具分析指令操作流程的目的是确定指令执行的具体步骤,决定各步所需的控制命令体步骤,决定各步所需的控制命令 •指令操作流程图:根据机器指令的结构格式、数指令操作流程图:根据机器指令的结构格式、数据表示方式及各种运算的算法,把每条指令的执据表示方式及各种运算的算法,把每条指令的执行过程分解成若干功能部件能实现的基本微操作,行过程分解成若干功能部件能实现的基本微操作,并以图的形式排列成有先后次序、相互衔接配合并以图的形式排列成有先后次序、相互衔接配合的流程•指令流程图可以比较形象、直观地表明一条指令指令流程图可以比较形象、直观地表明一条指令的执行步骤和基本过程。

的执行步骤和基本过程 •指令操作时间表:把指令流程图中的各个微操作指令操作时间表:把指令流程图中的各个微操作具体落实到各个机器周期的相应节拍和脉冲中去,具体落实到各个机器周期的相应节拍和脉冲中去,并以微操作控制信号的形式编排成一张表并以微操作控制信号的形式编排成一张表•指令操作时间表用于形象地表明控制器应该在什指令操作时间表用于形象地表明控制器应该在什么时间,根据什么条件发出哪些微操作控制信号么时间,根据什么条件发出哪些微操作控制信号2. 2. 编排指令操作时间表编排指令操作时间表3. 3. 进行微操作综合进行微操作综合•对操作时间表中各个微操作控制信号分别按其条件对操作时间表中各个微操作控制信号分别按其条件进行归纳、综合,列出其综合的逻辑表达式,并进进行归纳、综合,列出其综合的逻辑表达式,并进行适当的调整、化简,得到比较合理的逻辑表达式行适当的调整、化简,得到比较合理的逻辑表达式 4.4.设计微操作控制信号形成部件设计微操作控制信号形成部件•根据各个微操作控制信号的逻辑表达式,用硬根据各个微操作控制信号的逻辑表达式,用硬件逻辑电路加以实现件逻辑电路加以实现•实现方法:实现方法:•① ① 根据逻辑表达式画出逻辑电路图,用组合根据逻辑表达式画出逻辑电路图,用组合逻辑网络实现逻辑网络实现•② ② 直接根据逻辑表达式用直接根据逻辑表达式用PLDPLD器件如器件如PLAPLA、、PALPAL、、GALGAL等实现。

等实现 6.5.2 6.5.2 模型机的设计模型机的设计•1. 1. 指令流程图和指令操作时间顺序指令流程图和指令操作时间顺序•涉及访存的周期通常需要有涉及访存的周期通常需要有4 4个节拍,其中个节拍,其中3 3个节个节拍用于访存取数,拍用于访存取数,1 1个节拍用于操作和判断各个节拍用于操作和判断各节拍的操作为:节拍的操作为:•T0T0:将访存地址送入:将访存地址送入MARMAR•T1T1:发访存请求信号和读信号,从主存读出信息:发访存请求信号和读信号,从主存读出信息 送入送入MDRMDR•T2T2:将读出信息从:将读出信息从MDRMDR传送到有关寄存器传送到有关寄存器•T3T3:进行相关操作和判断:进行相关操作和判断 •因为任何指令都必须进入取指周期,所以取指操因为任何指令都必须进入取指周期,所以取指操作也称为取指公操作作也称为取指公操作•在取指周期内,各节拍的操作为:在取指周期内,各节拍的操作为:•FT0FT0:指令地址:指令地址→MAR→MAR•FT1FT1:读指令:读指令→MDR→MDR,,PCPC++1→PC1→PC•FT2FT2:将:将MDRMDR中的现行指令传送到中的现行指令传送到IRIR,并由,并由IDID进行进行 译码。

译码•FT3FT3:根据指令译码结果进行判断,以确定下面应:根据指令译码结果进行判断,以确定下面应 进入哪个机器周期进入哪个机器周期1 1〕取指周期〔〕取指周期〔FTFT〕操作流程图〕操作流程图 取取指指公公操操作作流流程程 •在在FT3FT3节拍中,首先判断所取指令是否为转移节拍中,首先判断所取指令是否为转移类指令模型机中共定义了类指令模型机中共定义了4 4条转移指令:条转移指令:直接进入执行周期直接进入执行周期ETJUMP==JP_op++JC_op++JZ_op++JSR_op == IR15(IR14⊕ ⊕IR13) •如果源〔如果源〔SRSR〕和目的〔〕和目的〔DRDR〕操作数均采用寄存器〕操作数均采用寄存器寻址,也可以直接进入执行周期寻址,也可以直接进入执行周期ETET;否则,如果;否则,如果为双操作数指令需进入取源周期为双操作数指令需进入取源周期STST;如果为单操;如果为单操作数指令需进入取目的周期作数指令需进入取目的周期DTDT•指令有源操作数指令有源操作数SRSR时:时:IR11IR10IR9IR11IR10IR9表示寻址方式表示寻址方式•指令有目的操作数指令有目的操作数DRDR时:时:IR5IR4IR3IR5IR4IR3表示寻址方式表示寻址方式•令令SRSR== IR11IR10IR9 DR IR11IR10IR9 DR== IR5IR4IR3 IR5IR4IR3进入进入STST进入进入DTDT进入进入ETET指令格式 各节拍中的控制信号各节拍中的控制信号TENDTEND·P·P•P P表示时钟脉冲的前沿〔上升沿〕起作用。

表示时钟脉冲的前沿〔上升沿〕起作用•P P表示时钟脉冲的后沿〔下降沿〕起作用表示时钟脉冲的后沿〔下降沿〕起作用 2)2)取源周期〔取源周期〔STST〕的操作流程图〕的操作流程图•双操作数指令的源寻址方式为非寄存器寻址时,双操作数指令的源寻址方式为非寄存器寻址时,需进入取源周期,完成源操作数寻址并取源操需进入取源周期,完成源操作数寻址并取源操作数取出的源操作数暂存在暂存器作数取出的源操作数暂存在暂存器TEMPTEMP中•不同寻址方式有效地址形成方法不同,因此操不同寻址方式有效地址形成方法不同,因此操作流程也不同作流程也不同•由于变址寻址是到主存取出变址值,形成有效由于变址寻址是到主存取出变址值,形成有效地址后再取数,需访问两次主存因此,当源地址后再取数,需访问两次主存因此,当源寻址为变址寻址时,取源周期需重复一次寻址为变址寻址时,取源周期需重复一次•在取源周期在取源周期STST的的T3T3建立建立RepeatRepeat信号和信号和1→ST1→ST信信号,可重复进入号,可重复进入STST•在重复的在重复的STST的的T3T3,将,将RepeatRepeat信号清除,即可进信号清除,即可进入下一个周期。

入下一个周期 •⑴ ⑴ 源操作数采用寄存器间接寻址:源操作数采用寄存器间接寻址:•ST0ST0:寄存器中的地址信息:寄存器中的地址信息→MAR→MAR•ST1ST1:读主存数据:读主存数据→MDR→MDR•ST2ST2::(MDR)→TEMP(MDR)→TEMP•ST3ST3:根据是否需要读目的操作数,判断应进入:根据是否需要读目的操作数,判断应进入 执行周期还是取目的周期执行周期还是取目的周期 •⑵ ⑵ 源操作数采用变址寻址:源操作数采用变址寻址:•由于变址寻址需到主存取出变址值,再形成有由于变址寻址需到主存取出变址值,再形成有效地址,所以需两次访问主存,即需重复执行效地址,所以需两次访问主存,即需重复执行一次取源周期一次取源周期•① ① 第一取源周期:第一取源周期:•读变址值读变址值→Y→Y,并在,并在T3T3时,建立时,建立RepeatRepeat信号和信号和1→ST1→ST信号,使之重复进入信号,使之重复进入STST•② ② 重复取源周期:重复取源周期:•计算有效地址,读入数据计算有效地址,读入数据→TEMP→TEMP,并在重复,并在重复STST的的T3T3时,将时,将RepeatRepeat信号清除,以便进入下一个信号清除,以便进入下一个周期。

周期 •源操作数寻址方式的判断条件:源操作数寻址方式的判断条件:•寄存器间接寻址:寄存器间接寻址:(RS)(RS)== IR11IR10IR9 IR11IR10IR9•自增型寄存器间接寻址:自增型寄存器间接寻址:(RS)(RS)+=+= IR11IR10IR9IR11IR10IR9•自减型寄存器间接寻址:-自减型寄存器间接寻址:-(RS)(RS)== IR11IR10IR9IR11IR10IR9•变址寻址:变址寻址:XSXS== IR11IR10IR9 IR11IR10IR9 ST0 ST1 ST3ST2 3) 3) 取目的周期取目的周期(DT)(DT)的操作流程图的操作流程图•当双操作数指令和单操作数指令的目的寻址方当双操作数指令和单操作数指令的目的寻址方式为非寄存器寻址时,进入取目的周期完成目式为非寄存器寻址时,进入取目的周期完成目的操作数地址的寻址并读取目的操作数的操作数地址的寻址并读取目的操作数•由于目的操作数在执行周期才送入由于目的操作数在执行周期才送入ALUALU的的A A输入输入端运算,所以取出的目的操作数暂不传送,而端运算,所以取出的目的操作数暂不传送,而保留在保留在MDRMDR中,因此对于非变址寻址的寻址方中,因此对于非变址寻址的寻址方式只安排两个节拍即可完成操作。

式只安排两个节拍即可完成操作 •MOVMOV指令的目的寻址为非寄存器寻址时,也需指令的目的寻址为非寄存器寻址时,也需进入目的周期,但因进入目的周期,但因MOVMOV指令只需传送目的地指令只需传送目的地址而不需取目标操作数,因而操作比较简单址而不需取目标操作数,因而操作比较简单 非非MOVMOV指令的指令的DTDT周期周期 MOVMOV指令的指令的DTDT周期周期 DT0 DT1 DT3DT2 4) 4) 执行周期执行周期(ET)(ET)的操作流程图的操作流程图•由于不同指令具有不同的操作功能,不同的寻址由于不同指令具有不同的操作功能,不同的寻址方式,操作数有不同的来源,因此不同指令在执方式,操作数有不同的来源,因此不同指令在执行周期的操作流程也各不相同,需要按不同的指行周期的操作流程也各不相同,需要按不同的指令绘制执行周期的操作流程图令绘制执行周期的操作流程图•对于多数指令,执行周期的操作均可在两拍内完对于多数指令,执行周期的操作均可在两拍内完成,所以多数指令的执行周期内只设两个节拍成,所以多数指令的执行周期内只设两个节拍•但对于但对于JSRJSR、、RTSRTS以及双操作数指令的目的寻址为以及双操作数指令的目的寻址为非寄存器寻址〔即非寄存器寻址〔即DRDR==0 0〕时,因为需要访存,所〕时,因为需要访存,所以在执行周期内设四个节拍来完成。

以在执行周期内设四个节拍来完成•在模型机的节拍发生器中,通过控制触发器在模型机的节拍发生器中,通过控制触发器C2C2的的T T输入端,可以选择执行周期的节拍数输入端,可以选择执行周期的节拍数 ⑴ ⑴ 传送指令的执行周期流程图传送指令的执行周期流程图•传送指令在执行周期中的功能是:将源操作数送传送指令在执行周期中的功能是:将源操作数送入目的寄存器或存储单元传送操作均可在两个入目的寄存器或存储单元传送操作均可在两个节拍内完成节拍内完成•① SR① SR、、DRDR==1111或或0101,目的操作数为寄存器,不,目的操作数为寄存器,不用访存•执行:执行:(RS)→RD(RS)→RD,或,或(TEMP)→RD(TEMP)→RD•② SR② SR、、DRDR==1010或或0000,目的操作数为存储器单元,,目的操作数为存储器单元,需要访存需要访存•执行:(执行:(RS)→MDRRS)→MDR,或〔,或〔TEMP)→MDRTEMP)→MDR,写主存 •执行周期的结束,意味着一条指令的执行完毕执行周期的结束,意味着一条指令的执行完毕•在一条指令执行结束时,机器需自动检测有没在一条指令执行结束时,机器需自动检测有没有意外情况〔如电源失效〕和特殊请求〔如中有意外情况〔如电源失效〕和特殊请求〔如中断请求〕发生。

若有,需进入相应周期进行处断请求〕发生若有,需进入相应周期进行处理;若没有,则机器又进入取指周期读取下条理;若没有,则机器又进入取指周期读取下条指令•流程图中的流程图中的ENDEND框即表示一条指令执行结束,框即表示一条指令执行结束,进行结束后的检测检测操作均在执行周期的进行结束后的检测检测操作均在执行周期的最后一个节拍内完成最后一个节拍内完成 ⑵ ⑵ 双操作数指令的执行周期流程图双操作数指令的执行周期流程图•双操作数指令的执行周期的功能是:将源操作数双操作数指令的执行周期的功能是:将源操作数与目的操作数进行指定的操作后送入目的寄存器与目的操作数进行指定的操作后送入目的寄存器或存储单元或存储单元•① SR① SR、、DRDR==1111或或0101,目的操作数为寄存器,不,目的操作数为寄存器,不用访存•执行:执行:(RS)(RS)或或(TEMP)→Y(TEMP)→Y,,(RD) OP (Y)→RD(RD) OP (Y)→RD可在两个节拍内完成在两个节拍内完成•② SR② SR、、DRDR==1010或或0000,目的操作数为存储器单元,,目的操作数为存储器单元,需要访存需要访存•执行:执行:(RS)(RS)或或(TEMP)→Y(TEMP)→Y,,(MDR) OP (Y)→MDR,(MDR) OP (Y)→MDR,写主存。

需要在四个节拍内完成需要在四个节拍内完成 ⑶ ⑶ 单操作数指令的执行周期流程图单操作数指令的执行周期流程图•单操作数指令的执行周期的功能是:将目的操作单操作数指令的执行周期的功能是:将目的操作数进行指定的操作后送入目的寄存器或存储单元数进行指定的操作后送入目的寄存器或存储单元操作均可在两个节拍内完成操作均可在两个节拍内完成•① DR① DR==1 1,目的操作数为寄存器,不用访存目的操作数为寄存器,不用访存•执行:执行:(RD)OP →RD(RD)OP →RD•② DR② DR==0 0,目的操作数为存储器单元,需要访存目的操作数为存储器单元,需要访存•执行:执行:(MDR)OP →MDR,(MDR)OP →MDR,写主存 ⑷ ⑷ 转移指令的执行周期流程图转移指令的执行周期流程图•模型机的转移指令均采用相对寻址非转子指模型机的转移指令均采用相对寻址非转子指令的执行周期的功能是:将令的执行周期的功能是:将PCPC中的内容与指令中的内容与指令中给出的位移量相加得到转移目的地址送入中给出的位移量相加得到转移目的地址送入PCPC,实现转移操作均可在两个节拍内完成实现转移操作均可在两个节拍内完成。

•JPJP::PC→YPC→Y,, (Y) (Y)++IR(D)→PCIR(D)→PC•JCJC、、JZJZ:先判断:先判断CCCC或或CZCZ,若为,若为1 1,满足转移条件,,满足转移条件,则执行则执行(Y)(Y)++IR(D)→PCIR(D)→PC,否则指令执行结束否则指令执行结束 ⑸ ⑸ 转子和返回指令的执行周期流程图转子和返回指令的执行周期流程图•转子转子(JSR)(JSR)和返回和返回(RTS)(RTS)指令在执行周期中不仅指令在执行周期中不仅要改变要改变PCPC的内容,而且需要进行断点保护或恢的内容,而且需要进行断点保护或恢复断点的工作需要在四个节拍内完成复断点的工作需要在四个节拍内完成•JSRJSR::(SP)(SP)--1→SP1→SP,,PC→MDRPC→MDR和和Y Y,写主存,,写主存, (Y)(Y)++IR(D)→PCIR(D)→PC•RTSRTS::(SP)→MAR(SP)→MAR,,(SP)(SP)++1→SP1→SP,读主存,,读主存,(MDR)→PC(MDR)→PC ⑹ ⑹ 停机指令的执行周期流程图停机指令的执行周期流程图•停机指令〔停机指令〔HALTHALT〕的执行周期的功能是使机器〕的执行周期的功能是使机器暂停执行。

暂停执行 •执行:执行:0→RUN0→RUN •模型机严格按照周期、节拍工作,根据各指令模型机严格按照周期、节拍工作,根据各指令所需的周期数和各周期所需的节拍数,可以计所需的周期数和各周期所需的节拍数,可以计算每条指令所需的节拍数算每条指令所需的节拍数•例:计算指令例:计算指令 ADD R0,,R1所需的周期和节所需的周期和节拍数•解:解:∵∵ R0,,R1采用寄存器寻址,采用寄存器寻址,∴∴需要取指需要取指和执行两个周期和执行两个周期•∵∵ FT周期需周期需4个节拍,个节拍,ET周期需周期需2个节拍个节拍•∴∴ 共需共需6个节拍个节拍 •例:计算指令例:计算指令 ADD X1(R0) ADD X1(R0),,X2(R1)X2(R1)所需的周所需的周期和节拍数期和节拍数•解:解: •例:模型机中程序的执行过程其中内存单元例:模型机中程序的执行过程其中内存单元地址和内容均用十六进制表示地址和内容均用十六进制表示•寄存器:寄存器:R0::0200H,, PC::0080H•主存:主存: 启动机器启动机器(PC)→MAR(PC)→MAR读主存读主存(PC)(PC)++1→PC1→PC(MDR)→IR(MDR)→IR1→ST1→ST(R0)→MAR(R0)→MAR读主存读主存FT0FT0FT1FT1FT2FT2FT3FT3ST0ST0ST1ST10080H→MAR0080H→MAR0081H→PC0081H→PC0202H→MDR0202H→MDR0202H→IR0202H→IR,,MOV (R0),R2MOV (R0),R2进入取源周期进入取源周期0020H→MAR0020H→MAR0086H→MDR0086H→MDR(MDR)→TEMP(MDR)→TEMPST2ST20086H→TEMP0086H→TEMP1→ET1→ETST3ST3目的是寄存器寻址目的是寄存器寻址进入执行周期进入执行周期 (TEMP)→R2(TEMP)→R2ET0ET0ET1ET10086H→R20086H→R2取下一条指令取下一条指令1→FT1→FT(PC)→MAR(PC)→MAR读主存读主存(PC)(PC)++1→PC1→PC(MDR)→IR(MDR)→IR1→ST1→STFT0FT0FT1FT1FT2FT2FT3FT30081H→MAR0081H→MAR0082H→PC0082H→PC14A7H→MDR14A7H→MDR14A7H→IR14A7H→IR,, ADD (R2) ADD (R2)++,X(PC),X(PC)进入取源周期进入取源周期(R2)→MAR(R2)→MAR读主存读主存(R2)(R2)++1→R21→R2ST0ST0ST1ST10086H→MAR0086H→MAR0087H→R20087H→R203FFH→MDR03FFH→MDR (MDR)→TEMP(MDR)→TEMPST2ST203FFH→TEMP03FFH→TEMP1→DT1→DTST3ST3目的是变址寻址目的是变址寻址进入取目的周期进入取目的周期(PC)→MAR(PC)→MAR读主存读主存(PC)(PC)++1→PC1→PCDT0DT0DT1DT10082H→MAR0082H→MAR(MDR)→Y(MDR)→YDT2DT20004H→Y0004H→Y1→DT1→DT1→Repeat1→RepeatDT3DT3变址寻址,再次进变址寻址,再次进入取目的周期入取目的周期0083H→PC0083H→PC0004H→MDR0004H→MDR(Y)(Y)++(PC)→MAR(PC)→MAR读主存读主存1→ET1→ET0→Repeat0→RepeatDT0DT0DT1DT10087H→MAR0087H→MARFC00H→MDRFC00H→MDR进入执行周期进入执行周期 (TEMP)→Y(TEMP)→YET0ET0ET1ET103FFH→Y03FFH→YFC00H+03FFHFC00H+03FFH==FFFFH→MDRFFFFH→MDR(MDR)+(Y)→MDR(MDR)+(Y)→MDRET3ET3取下一条指令取下一条指令1→FT1→FT写主存写主存ET2ET2FFFFH→FFFFH→内存内存0087H0087H单元单元(PC)→MAR(PC)→MAR读主存读主存(PC)(PC)++1→PC1→PC(MDR)→IR(MDR)→IR1→DT1→DTFT0FT0FT1FT1FT2FT2FT3FT30083H→MAR0083H→MAR0084H→PC0084H→PC6012H→MDR6012H→MDR6012H→IR6012H→IR,,INC (R2)INC (R2)++进入取目的周期进入取目的周期 (R2)→MAR(R2)→MAR读主存读主存(R2)(R2)++1→ R21→ R21→ET1→ETDT0DT0DT1DT10087H→MAR0087H→MAR0088H→R20088H→R2FFFFH→MDRFFFFH→MDR进入执行周期进入执行周期(MDR)+1→MDR(MDR)+1→MDRET0ET0ET1ET1FFFFHFFFFH++1 1==0→MDR,1→Z0→MDR,1→Z0→0→内存内存0087H0087H单元单元取下一条指令取下一条指令写主存写主存1→FT1→FT(PC)→MAR(PC)→MAR读主存读主存(PC)(PC)++1→PC1→PC(MDR)→IR(MDR)→IRFT0FT0FT1FT1FT2FT20084H→MAR0084H→MAR0085H→PC0085H→PCC0A8H→MDRC0A8H→MDRC0A8H→IRC0A8H→IR,,JZ 0A8HJZ 0A8H (PC)→Y(PC)→YET0ET0ET1ET10085H→Y0085H→Y0085H+0A8H0085H+0A8H==012DH→PC012DH→PC取下一条指令取下一条指令(Y)+IR(D)→PC(Y)+IR(D)→PC1→FT1→FT……1→ET1→ETFT3FT3进入执行周期进入执行周期 3. 3. 微操作控制信号综合微操作控制信号综合•指令操作时间表根据指令流程、时序系统和数指令操作时间表根据指令流程、时序系统和数据通路结构,列出了实现整个指令系统的全部据通路结构,列出了实现整个指令系统的全部操作控制信号。

将同一种控制信号在不同时间操作控制信号将同一种控制信号在不同时间下产生的条件进行归纳、综合、化简后,就可下产生的条件进行归纳、综合、化简后,就可写出该控制信号的综合逻辑表达式写出该控制信号的综合逻辑表达式•逻辑表达式中包括下列因素:逻辑表达式中包括下列因素:•微操作控制信号=微操作控制信号=F(F(周期、节拍、脉冲、指令、周期、节拍、脉冲、指令、状态条件状态条件) ) •例:读信号〔例:读信号〔R/WR/W〕的逻辑表达式〕的逻辑表达式•例:脉冲信号例:脉冲信号CPTEMPCPTEMP的逻辑表达式的逻辑表达式•例:脉冲信号例:脉冲信号PC→BUS1PC→BUS1的逻辑表达式的逻辑表达式 •可用一个触发器产生重复周期信号可用一个触发器产生重复周期信号RepeatRepeat•ResetReset信号使信号使RepeatRepeat==0 0•进入进入STST或或DTDT后,若需要重复周期,就使后,若需要重复周期,就使CPRepeatCPRepeat有效,有效,RepeatRepeat==1 1Q QRepeatRepeatCPCPD DR RResetResetCPRepeatCPRepeat •在重复周期还需要在重复周期还需要CPCP脉冲,使脉冲,使RepeatRepeat翻转为翻转为 0 0。

•CPRepeatCPRepeat的逻辑表达式的逻辑表达式• Repeat Repeat信号与其他信号的时间关系信号与其他信号的时间关系 4. 4. 控制信号形成电路控制信号形成电路•将逻辑表达式经逻辑综合、化简得到各个微操作将逻辑表达式经逻辑综合、化简得到各个微操作控制信号的比较合理的表达式后,即可设计实现控制信号的比较合理的表达式后,即可设计实现电路•1 1)) 用组合逻辑电路实现用组合逻辑电路实现•将各微操作控制信号用组合逻辑电路实现,就构将各微操作控制信号用组合逻辑电路实现,就构成了组合逻辑控制器的微操作控制信号形成部件成了组合逻辑控制器的微操作控制信号形成部件•在实际设计过程中,用硬件实现逻辑电路图时,在实际设计过程中,用硬件实现逻辑电路图时,有时受逻辑门的扇入系数限制,需要修改逻辑表有时受逻辑门的扇入系数限制,需要修改逻辑表达式,此时就可能要增加逻辑电路如果信号所达式,此时就可能要增加逻辑电路如果信号所经过的级数也增加的话,还将增加延迟时间另经过的级数也增加的话,还将增加延迟时间另外在实现时还有负载问题外在实现时还有负载问题 •例:读信号〔例:读信号〔R/W〕的逻辑电路图〕的逻辑电路图 2) 2) 用用PLAPLA器件实现器件实现•可编程逻辑阵列可编程逻辑阵列PLAPLA电路是由与阵列和或阵列组成,电路是由与阵列和或阵列组成,电路的输出为输入项的与或式。

电路的输出为输入项的与或式•经微操作综合而得到的微操作控制信号的逻辑表经微操作综合而得到的微操作控制信号的逻辑表达式基本上都是与或表达式,因而可很方便地用达式基本上都是与或表达式,因而可很方便地用PLAPLA电路实现电路实现•例:用例:用PLAPLA器件实现下列逻辑函数器件实现下列逻辑函数 •当用当用PLAPLA器件实现模型机控制信号逻辑时,则器件实现模型机控制信号逻辑时,则将指令码、机器周期、节拍、脉冲及某状态条将指令码、机器周期、节拍、脉冲及某状态条件作为件作为PLAPLA器件的与阵列输入信号,按微操作器件的与阵列输入信号,按微操作信号综合所得的逻辑表达式分别对与阵列、或信号综合所得的逻辑表达式分别对与阵列、或阵列进行编程,即可由或阵列输出各个控制信阵列进行编程,即可由或阵列输出各个控制信号 6.6 6.6 微程序控制器原理微程序控制器原理•6.6.1 6.6.1 微程序控制器概述微程序控制器概述 •组合逻辑控制器的缺点组合逻辑控制器的缺点•① ① 繁琐、杂乱,缺乏规律性,设计效率低,不繁琐、杂乱,缺乏规律性,设计效率低,不利于检查调试利于检查调试•② ② 不易修改和扩充,缺乏灵活性。

不易修改和扩充,缺乏灵活性•因为设计结果用印刷电路板因为设计结果用印刷电路板( (硬连逻辑硬连逻辑) )固定下来固定下来以后,就很难再修改与扩充以后,就很难再修改与扩充 微程序设计思想微程序设计思想•微程序控制的基本概念微程序控制的基本概念•每一条指令都对应着自己的微操作序列,每一每一条指令都对应着自己的微操作序列,每一条指令的执行过程,都可以划分为若干基本的条指令的执行过程,都可以划分为若干基本的微操作把各条指令的微操作序列,以二进制微操作把各条指令的微操作序列,以二进制编码字〔称为微指令〕的形式编制成程序〔称编码字〔称为微指令〕的形式编制成程序〔称为微程序),并存放在一个存储器〔称为控制为微程序),并存放在一个存储器〔称为控制存储器〕中执行指令时,通过读取并执行相存储器〕中执行指令时,通过读取并执行相应的微程序实现一条指令的功能应的微程序实现一条指令的功能•微程序设计的实质微程序设计的实质•用程序设计的思想方法来组织操作控制逻辑,用程序设计的思想方法来组织操作控制逻辑,用规整的存储逻辑代替繁杂的组合逻辑用规整的存储逻辑代替繁杂的组合逻辑 •例:模型机中指令例:模型机中指令 ADD R1 ADD R1,,R0R0的指令执行过程的指令执行过程及控制信号。

及控制信号PC)→MAR(PC)→MAR读主存读主存(PC)(PC)++1→PC1→PC(MDR)→IR(MDR)→IR1→ET1→ETFT0FT0FT1FT1FT2FT2FT3FT3PC→BUS1PC→BUS1,,S3S2S1S0MS3S2S1S0M,,DMDM,,CPMARCPMARMREQMREQ,,R/W=1R/W=1,,PC→BUS1PC→BUS1,,S3S2S1S0MS3S2S1S0M,,C0C0,,DMDM,,CPPCCPPCMDR→BUS1MDR→BUS1,,S3S2S1S0MS3S2S1S0M,,DMDM,,CPIRCPIR1→ET,CPET1→ET,CPET(R1)→Y(R1)→YET0ET0ET1ET1R0→BUS1R0→BUS1,,S3S2S1S0MS3S2S1S0M,,DMDM,,CPR0,CPCC,CPCZCPR0,CPCC,CPCZR1→BUS1R1→BUS1,,S3S2S1S0MS3S2S1S0M,,DMDM,,CPYCPY(R0)(R0)++(Y)→R0(Y)→R0ENDEND •可以利用二进制编码描述操作系列可以利用二进制编码描述操作系列 •微操作:微操作:PC→BUS1PC→BUS1,,S3S2S1S0MS3S2S1S0M,,DMDM,,CPMAR CPMAR 对应的控制信号编码为:对应的控制信号编码为:•111 11111 0 00 10 000 1 00111 11111 0 00 10 000 1 00•微操作:微操作:MREQMREQ,,R/W=1R/W=1,,PC→BUS1PC→BUS1,,S3S2S1S0MS3S2S1S0M,,C0C0,,DMDM,,CPPC CPPC 对应的控制信号编码为:对应的控制信号编码为:•111 11110 1 00 00 111 1 01111 11110 1 00 00 111 1 01•微操作:微操作:MDR→BUS1MDR→BUS1,,S3S2S1S0MS3S2S1S0M,,DMDM,,CPIR CPIR 对应的控制信号编码为:对应的控制信号编码为:•101 11111 0 00 01 000 101 11111 0 00 01 000 ×× 00 00 •将指令要执行的控制信号用二进制编码字编码将指令要执行的控制信号用二进制编码字编码后依次存入存储器。

执行指令时,顺序读出编后依次存入存储器执行指令时,顺序读出编码字,产生控制命令,即可控制有关部件完成码字,产生控制命令,即可控制有关部件完成规定的操作规定的操作•这种控制思想称为微程序控制这种控制思想称为微程序控制•微程序设计将软件设计技术应用到硬件设计中,微程序设计将软件设计技术应用到硬件设计中,其特点是:应用灵活,控制规整,便于计算机其特点是:应用灵活,控制规整,便于计算机设计自动化,并易于修改和扩充设计自动化,并易于修改和扩充•CISC系列的小、微型机多采用微程序控制方系列的小、微型机多采用微程序控制方法设计控制器法设计控制器 •微程序设计的实质微程序设计的实质•用程序设计的思想方法来组织操作控制逻辑,用程序设计的思想方法来组织操作控制逻辑,用规整的存储逻辑代替繁杂的组合逻辑用规整的存储逻辑代替繁杂的组合逻辑•因为微程序控制是将微操作控制信号以编码字因为微程序控制是将微操作控制信号以编码字( (即微指令即微指令) )的形式存放在控制存储器中执行的形式存放在控制存储器中执行指令时,通过依次读取一条条微指令,产生一指令时,通过依次读取一条条微指令,产生一组组操作控制信号,控制有关功能部件完成一组组操作控制信号,控制有关功能部件完成一组组微操作。

因此,又称为存储逻辑组组微操作因此,又称为存储逻辑•组合逻辑的设计思想又称为硬连逻辑组合逻辑的设计思想又称为硬连逻辑 •在微程序控制机器中,涉及到两个层次在微程序控制机器中,涉及到两个层次•传统机器级传统机器级 ———— 机器指令机器指令•是使用机器语言的程序员所看到的用机器指是使用机器语言的程序员所看到的用机器指令编制工作程序,完成某一处理任务令编制工作程序,完成某一处理任务CPUCPU执行执行的程序存放在主存储器中的程序存放在主存储器中•微程序微程序 ———— 微指令微指令•是硬件设计者所看到的用微指令编制微程序,是硬件设计者所看到的用微指令编制微程序,用以完成一条机器指令的功能微程序存放在用以完成一条机器指令的功能微程序存放在控制存储器中微指令用于产生一组控制命令,控制存储器中微指令用于产生一组控制命令,称为微命令,控制完成一组微操作称为微命令,控制完成一组微操作 1. 1. 基本概念基本概念•① ① 微命令;直接作用于部件或控制门电路的控制微命令;直接作用于部件或控制门电路的控制命令是构成控制信号序列的最小单位是构成控制信号序列的最小单位•例如模型机中的例如模型机中的PC→BUS1PC→BUS1,,R0→BUS1R0→BUS1、、CPIRCPIR、、R/WR/W等控制信号都称为微命令。

等控制信号都称为微命令•② ② 微操作;由微命令控制实现的最基本的操作微操作;由微命令控制实现的最基本的操作•微操作的定义可大可小微操作的定义可大可小•例:例:•微操作微操作 (PC)→MAR (PC)→MAR :是在一组微命令:是在一组微命令 PC→BUS1 PC→BUS1、、S3S2S1S0MS3S2S1S0M、、DMDM、、CPMARCPMAR的控制下实现的的控制下实现的•微操作打开微操作打开PCPC与与BUS1BUS1之间的控制门:是在一个微命之间的控制门:是在一个微命令令PC→BUS1PC→BUS1的控制下实现的的控制下实现的 •③ ③ 微指令:用以产生一组微命令,控制完成一组微指令:用以产生一组微命令,控制完成一组微操作的二进制编码字称为微指令微操作的二进制编码字称为微指令•微指令存放在控制存储器中一条微指令通常控微指令存放在控制存储器中一条微指令通常控制实现数据通路中的一步操作过程制实现数据通路中的一步操作过程•④ ④ 微程序:一系列微指令的有序集合称为微程序微程序:一系列微指令的有序集合称为微程序•在微程序控制的机器中,一条机器指令对应着一在微程序控制的机器中,一条机器指令对应着一段由若干条有序的微指令构成的微程序;通过解段由若干条有序的微指令构成的微程序;通过解释执行一段微程序,可以实现相应的一条机器指释执行一段微程序,可以实现相应的一条机器指令的功能。

令的功能 •⑤ ⑤ 微周期:从控制存储器中读取一条微指令微周期:从控制存储器中读取一条微指令并执行相应的微操作所需的时间称为微周期并执行相应的微操作所需的时间称为微周期•在微程序控制的机器中,微周期是它的主要时在微程序控制的机器中,微周期是它的主要时序信号通常一个时钟周期为一个微周期通常一个时钟周期为一个微周期•微指令的执行采用同步方式,每个微周期的时微指令的执行采用同步方式,每个微周期的时间相同在模型机中,一个微周期相当于一个间相同在模型机中,一个微周期相当于一个节拍•⑥ ⑥ 控制存储器〔控制存储器〔CMCM):存放微程序的存储器存放微程序的存储器简称控存,也称为微程序存储器简称控存,也称为微程序存储器•一般计算讥指令系统是固定的,因而实现指令一般计算讥指令系统是固定的,因而实现指令系统的微程序也是固定的,所以控制存储器通系统的微程序也是固定的,所以控制存储器通常用只读存储器实现常用只读存储器实现 2.2.微程序控制器的组成结构微程序控制器的组成结构 微程序控制器的主要部分微程序控制器的主要部分•① ① 控制存储器控制存储器CMCM:控存的每个单元存放一条微指:控存的每个单元存放一条微指令代码。

令代码•图中每条横线表示一个单元,其中每个交叉点表图中每条横线表示一个单元,其中每个交叉点表示微指令的一位,有示微指令的一位,有“•”“•”表示该位为表示该位为1 1,无,无“•”“•”表示该位为表示该位为0 0•② ② 微指令寄存器微指令寄存器μIRμIR:存放从控存中读取的微指:存放从控存中读取的微指令•微指令通常分为两大字段:微指令通常分为两大字段:•操作控制字段:经译码或直接产生一组微命令,操作控制字段:经译码或直接产生一组微命令,控制有关部件完成微指令所规定的微操作控制有关部件完成微指令所规定的微操作•地址控制字段:指示下条微指令地址的形成方式地址控制字段:指示下条微指令地址的形成方式或直接给出下条微指令地址或直接给出下条微指令地址 •③③ 微地址形成电路:用于产生起始微地址和后继微地址形成电路:用于产生起始微地址和后继微地址,保证微程序的连续执行微地址,保证微程序的连续执行•④④ 微地址寄存器微地址寄存器μMAR:接受微地址形成电路送:接受微地址形成电路送来的地址,为读取微指令准备好控存的地址来的地址,为读取微指令准备好控存的地址•⑤⑤ 译码与驱动电路:对译码与驱动电路:对μMAR中的微地址进行译中的微地址进行译码,找到被访问的控存单元并驱动其进行读取操码,找到被访问的控存单元并驱动其进行读取操作,读取微指令并存放于微指令寄存器中。

作,读取微指令并存放于微指令寄存器中 •在微程序控制器组成框图中,在微程序控制器组成框图中,PCPC、、IRIR、、PSRPSR等的等的功能与组合逻辑控制器中的功能一致功能与组合逻辑控制器中的功能一致•微程序控制器与组合逻辑控制器的主要区别在于微程序控制器与组合逻辑控制器的主要区别在于微操作控制信号形成部件的不同微操作控制信号形成部件的不同•① ① 组合逻辑控制器中的复杂组合逻辑网络在微组合逻辑控制器中的复杂组合逻辑网络在微程序控制器被规整的存储逻辑所替代程序控制器被规整的存储逻辑所替代•② ② 存储逻辑中包含了存放微程序的控制存储器存储逻辑中包含了存放微程序的控制存储器 3.3.微程序控制器的工作过程微程序控制器的工作过程• ①① 启动取指令微程序启动取指令微程序•(PC)→MAR,读出机器指令,读出机器指令→IR,,PC增量,为下增量,为下条指令准备地址条指令准备地址•②② 根据根据IR中的指令码,通过微地址形成电路产生中的指令码,通过微地址形成电路产生该指令的微程序的起始微地址,并送入该指令的微程序的起始微地址,并送入μMAR中 •③③ μMAR中的微地址经译码、驱动,从被选的控中的微地址经译码、驱动,从被选的控存单元中取出一条微指令并送入存单元中取出一条微指令并送入μIR。

•④④ μIR中的微指令的操作控制字段经译码或直接中的微指令的操作控制字段经译码或直接产生一组微命令并送往有关的功能部件,控制其产生一组微命令并送往有关的功能部件,控制其完成所规定的微操作完成所规定的微操作 •⑤ μIR⑤ μIR中微指令的地址控制字段及有关状态中微指令的地址控制字段及有关状态条件送往微地址形成电路,产生下条微指令的条件送往微地址形成电路,产生下条微指令的地址,再去读取并执行下条微指令如此循环,地址,再去读取并执行下条微指令如此循环,直到一条机器指令的微程序全部执行完毕直到一条机器指令的微程序全部执行完毕•⑥⑥一条指令的微程序执行结束,再启动取指令一条指令的微程序执行结束,再启动取指令微指令或微程序,读取下条机器指令根据该微指令或微程序,读取下条机器指令根据该指令码形成起始微地址,又转入执行它的一段指令码形成起始微地址,又转入执行它的一段微程序 4. 4. 程序、指令、微程序、微指令、微命令、程序、指令、微程序、微指令、微命令、微操作的关系微操作的关系 阐明阐明•(1) 微程序实质上定义了机器的指令系统微程序实质上定义了机器的指令系统只要修改控存中的微程序,就可以修改机器只要修改控存中的微程序,就可以修改机器的指令系统。

的指令系统•(2) 由于一条机器指令的执行过程中,需要由于一条机器指令的执行过程中,需要多次访问控存,所以控存的速度直接影响到多次访问控存,所以控存的速度直接影响到机器的速度机器的速度•(3)对于大、巨型机而言,由于要求高速运对于大、巨型机而言,由于要求高速运行,所以多采用组合逻辑实现指令,而不用行,所以多采用组合逻辑实现指令,而不用微程序实现采用微程序实现采用RISC设计思想的机器,设计思想的机器,为了实现高速,也较少使用微程序实现为了实现高速,也较少使用微程序实现 微程序控制器设计的关键微程序控制器设计的关键•①① 微指令的结构格式及编码方法即如微指令的结构格式及编码方法即如何用一个二进制编码字表示各个微命令何用一个二进制编码字表示各个微命令•②② 微程序的寻址即微程序顺序控制的微程序的寻址即微程序顺序控制的方法也就是如何解决微程序中微指令之方法也就是如何解决微程序中微指令之间的衔接和不同机器指令所对应的微程序间的衔接和不同机器指令所对应的微程序之间的逻辑衔接,保证微程序的连续执行之间的逻辑衔接,保证微程序的连续执行•③③ 微指令执行方式解决如何提高微指微指令执行方式解决如何提高微指令的执行速度的问题。

令的执行速度的问题 6.6.2 6.6.2 微指令的编译方法微指令的编译方法•微指令的编译方法:指如何对微指令的操作控制微指令的编译方法:指如何对微指令的操作控制字段进行编码来表示各个微命令,以及如何把编字段进行编码来表示各个微命令,以及如何把编码译成相应的微命令即微指令的格式应如何设码译成相应的微命令即微指令的格式应如何设计,应怎样进行微指令的译码计,应怎样进行微指令的译码•设计微指令的结构格式时,主要考虑的问题设计微指令的结构格式时,主要考虑的问题•①① 如何有利于缩短微指令字长如何有利于缩短微指令字长•②② 如何有利于缩短微程序,减少所需的控存空间如何有利于缩短微程序,减少所需的控存空间•③③ 如何有利于提高微程序执行速度如何有利于提高微程序执行速度 常用的微指令编译方法常用的微指令编译方法•1 1.直接控制法〔不译法).直接控制法〔不译法)•微指令操作控制字段的每一位都直接表示一个微微指令操作控制字段的每一位都直接表示一个微命令,该位为命令,该位为““1 1””,表示执行这个微命令,为,表示执行这个微命令,为““0 0〞表示不执行该微命令由于这种方法不需译〞表示不执行该微命令。

由于这种方法不需译码,所以也称不译法码,所以也称不译法•例:在模型机中,若只考虑输入信号,则有例:在模型机中,若只考虑输入信号,则有3535个个微命令,因此微指令的操作控制字段应长微命令,因此微指令的操作控制字段应长3535位•设设μIRμIR的第的第2222位对应于位对应于C0C0,则译码时有,则译码时有C0C0==μIR22μIR22 •直接控制法的优点:结构简单,并行性强,操作直接控制法的优点:结构简单,并行性强,操作速度快•直接控制法的缺点:微指令字太长,信息效率低直接控制法的缺点:微指令字太长,信息效率低•因为在这种方法中,有因为在这种方法中,有N N个微命令,操作控制字个微命令,操作控制字段就需段就需N N位在实际机器中,微命令数达几百个,位在实际机器中,微命令数达几百个,使微指令字长达到难以接受的地步同时在几百使微指令字长达到难以接受的地步同时在几百个微命令中有很多是互斥的,不允许同时出现的个微命令中有很多是互斥的,不允许同时出现的〔如〔如R0→BUS1R0→BUS1,,R1→BUS1R1→BUS1),将它们安排在同一),将它们安排在同一条微指令内,只会使信息效率降低条微指令内,只会使信息效率降低。

•因此在实际机器中,往往与其它方法混合使用,因此在实际机器中,往往与其它方法混合使用,仅部分位采用直接控制法仅部分位采用直接控制法 2 2.最短编码法.最短编码法•将所有的微命令进行统一编码,每条微指令只将所有的微命令进行统一编码,每条微指令只定义一个微命令若微命令总数为定义一个微命令若微命令总数为N N,则最短编,则最短编码法中操作控制字段的长度码法中操作控制字段的长度L L,应满足下列关系:,应满足下列关系:• L≥log2N L≥log2N•最短编码法所得的微指令字长最短,但要通过最短编码法所得的微指令字长最短,但要通过微命令译码器译码才能得到所需的微命令微微命令译码器译码才能得到所需的微命令微命令越多,译码器就越复杂同时这种方法在命令越多,译码器就越复杂同时这种方法在某一时间只能产生一个微命令,不能充分利用某一时间只能产生一个微命令,不能充分利用机器硬件所具有的并行性,使微程序很长,所机器硬件所具有的并行性,使微程序很长,所以这种方法很少独立使用以这种方法很少独立使用 3 3.字段直接编码法.字段直接编码法•将微指令操作控制字段划分为若干个子字段,每将微指令操作控制字段划分为若干个子字段,每个子字段的所有微命令进行统一编码。

因此在这个子字段的所有微命令进行统一编码因此在这种方法中,不同的子字段的不同编码,表示不同种方法中,不同的子字段的不同编码,表示不同的微命令的微命令•子字段的划分原则:子字段的划分原则:•① ① 把互斥的微命令〔即不允许同时出现的微命令把互斥的微命令〔即不允许同时出现的微命令〕划分在同一字段内,相容的〔即允许同时出现〕划分在同一字段内,相容的〔即允许同时出现〕微命令划分在不同字段内〕微命令划分在不同字段内 •② ② 字段的划分应与数据通路结构相适应字段的划分应与数据通路结构相适应•③ ③ 一般每个子字段应留出一个状态,表示本字段一般每个子字段应留出一个状态,表示本字段不发任何微命令不发任何微命令•④ ④ 每个子字段所定义的微命令数不宜太多,否则每个子字段所定义的微命令数不宜太多,否则将使微命令译码复杂将使微命令译码复杂 •例:各例:各Ri→BUS1Ri→BUS1是互斥的,可以划分在同一字段;是互斥的,可以划分在同一字段;RS→BUS1RS→BUS1和和CPRSCPRS是相容的,应划分在不同字段是相容的,应划分在不同字段•字段直接编码法的微指令结构字段直接编码法的微指令结构 •P306 6.16 4 4.字段间接编码法.字段间接编码法•指一个字段的某一编码的意义由另一字段的编码来指一个字段的某一编码的意义由另一字段的编码来定义。

也就是一个字段的编码不能直接独立地定义定义也就是一个字段的编码不能直接独立地定义微命令,它必须与其它字段的编码联合定义微命令,它必须与其它字段的编码联合定义 5 5.常数源字段的设置.常数源字段的设置•在微指令字中,通常还设置一个常数源字段,如在微指令字中,通常还设置一个常数源字段,如同指令字中的立即数一样,用来提供某些常数,同指令字中的立即数一样,用来提供某些常数,如给计数器置初值,为某些数据提供修改量,配如给计数器置初值,为某些数据提供修改量,配合形成微程序转移微地址等合形成微程序转移微地址等• 6.6.3 6.6.3 微程序的顺序控制方式微程序的顺序控制方式•微程序顺序控制〔或地址控制〕需解决的问题微程序顺序控制〔或地址控制〕需解决的问题是微程序应如何存放和执行,即需考虑初始微是微程序应如何存放和执行,即需考虑初始微地址和后继微地址的各种形成方法地址和后继微地址的各种形成方法 •微程序的初始微地址〔微程序的入口地址):微程序的初始微地址〔微程序的入口地址):指令所对应微程序的第一条微指令所在控制存指令所对应微程序的第一条微指令所在控制存储器单元的地址储器单元的地址•现行微指令:执行微程序过程中,当前正在执现行微指令:执行微程序过程中,当前正在执行的微指令。

行的微指令•现行微地址:现行微指令所在控制存储器单元现行微地址:现行微指令所在控制存储器单元的地址•后继微指令:现行微指令执行完毕后,下一条后继微指令:现行微指令执行完毕后,下一条要执行的微指令要执行的微指令•后继微地址:后继微指令所在控存单元的地址后继微地址:后继微指令所在控存单元的地址 1 1.初始微地址的形成.初始微地址的形成•由于每一条机器指令的执行,都必须首先进行由于每一条机器指令的执行,都必须首先进行取指令操作,所以要有取指令操作,所以要有““取指令〞微程序,控取指令〞微程序,控制从主存中取出一条机器指令制从主存中取出一条机器指令•““取指令〞微程序〔通常由一条或几条微指令取指令〞微程序〔通常由一条或几条微指令组成〕是公用的,一般安排在从组成〕是公用的,一般安排在从0 0号控存单元号控存单元或其它特定的控存单元开始或其它特定的控存单元开始•经过经过““取指令〞后,机器指令从主存取到取指令〞后,机器指令从主存取到IRIR,,然后根据机器指令操作码转换出该指令所对应然后根据机器指令操作码转换出该指令所对应的微程序入口地址,形成初始微地址的微程序入口地址,形成初始微地址 初始微地址的几种形成方式初始微地址的几种形成方式•(1) (1) 一级功能转移一级功能转移•根据指令操作码,直接转移到相应微程序根据指令操作码,直接转移到相应微程序的入口,即指令操作码直接参与形成微程的入口,即指令操作码直接参与形成微程序的入口地址。

序的入口地址•当指令操作码的位置与位数均固定时,可当指令操作码的位置与位数均固定时,可直接用操作码作为微地址的低位直接用操作码作为微地址的低位•一级功能转移适用于指令操作码的位置和一级功能转移适用于指令操作码的位置和长度比较规整的和固定的情况长度比较规整的和固定的情况 •例:模型机有例:模型机有1616条指令,操作码对应条指令,操作码对应IRIR的的1515~~1212位,令微地址为位,令微地址为0000……0 OP0 OP,,OPOP为指令操作码为指令操作码当取出指令后,直接由当取出指令后,直接由IRl5IRl5~~1212作为微地址作为微地址的低的低4 4位 (2) (2) 二级功能转移二级功能转移•先按指令类型标志转移,以区分出是哪一类指先按指令类型标志转移,以区分出是哪一类指令规定每类指令中位置和位数是固定的,在令规定每类指令中位置和位数是固定的,在第二级按操作码区分出具体是哪条指令,转移第二级按操作码区分出具体是哪条指令,转移到相应微程序入口到相应微程序入口•二级功能转移适合于机器指令的操作码的位数二级功能转移适合于机器指令的操作码的位数和位置不固定的情况和位置不固定的情况 取指微程序取指微程序一级功能转移一级功能转移二级功能转移二级功能转移二级功能转移二级功能转移二级功能转移二级功能转移DRDRADD…SUB…单数单数双数双数…MOV二级功能转移二级功能转移 (3) (3) 用用PLAPLA电路实现功能转移电路实现功能转移•利用利用PLAPLA电路实现功能转移:将指令操作码作电路实现功能转移:将指令操作码作为可编程逻辑阵列为可编程逻辑阵列PLAPLA的输入,的输入,PLAPLA的输出就是的输出就是相应微程序入口地址。

相应微程序入口地址•这种方法对于变长度、变位置的操作码尤为有这种方法对于变长度、变位置的操作码尤为有效,而且转移速度较快效,而且转移速度较快•例:设有例:设有I0I0、、I1I1、、I2I2、、……、、I7I7共共8 8条指令,其条指令,其操作码分别为操作码分别为000000、、001001、、……、、111111,对应的微,对应的微程序入口地址分别为程序入口地址分别为020H020H、、031H031H、、……、、146H146H可用可用PLAPLA实现微程序入口地址的寻址实现微程序入口地址的寻址 2 2.后继微地址的形成.后继微地址的形成•找到初始微地址后,开始执行相应的微程序找到初始微地址后,开始执行相应的微程序每条微指令执行完毕,都要根据要求形成后继每条微指令执行完毕,都要根据要求形成后继微地址,以保证微程序的正常执行微地址,以保证微程序的正常执行•后继微地址的形成方法对微程序编制的灵活性后继微地址的形成方法对微程序编制的灵活性影响很大影响很大•后继微地址的形成方法主要有两种基本类型:后继微地址的形成方法主要有两种基本类型:增量方式和断定方式增量方式和断定方式 (1) (1) 增量方式增量方式•微地址的控制方式与程序地址控制方式相似,微地址的控制方式与程序地址控制方式相似,也有顺序执行、转移、转子之分。

也有顺序执行、转移、转子之分•增量方式:当微程序按地址递增顺序一条条地增量方式:当微程序按地址递增顺序一条条地执行微指令时,后继微地址是现行微地址加上执行微指令时,后继微地址是现行微地址加上一个增量〔通常为一个增量〔通常为1 1)•(μPC)(μPC)增量增量→ μPC→ μPC•μPCμPC是微程序计数器,微程序控制器中为节省是微程序计数器,微程序控制器中为节省设备,也可将设备,也可将μMARμMAR做成具有计数功能的寄存做成具有计数功能的寄存器,与器,与μPCμPC合为一个寄存器合为一个寄存器•(μMAR)(μMAR)增量增量→ μMAR→ μMAR •在增量方式中,当微程序转移或调用微子程序时,在增量方式中,当微程序转移或调用微子程序时,要解决转移微地址的形成问题要解决转移微地址的形成问题•转移微地址的形成方法转移微地址的形成方法•① ① 由微地址形成电路产生转移微地址由微地址形成电路产生转移微地址•由微地址形成电路根据执行的微指令和当前状态由微地址形成电路根据执行的微指令和当前状态形成转移微地址形成转移微地址•这种方法的电路比较复杂这种方法的电路比较复杂 •② ② 由微指令的下地址控制字段设置转移微地址。

由微指令的下地址控制字段设置转移微地址•通常把微指令的地址控制字段分为两个部分:通常把微指令的地址控制字段分为两个部分:•转移地址字段转移地址字段BAFBAF:提供转移地址提供转移地址•转移控制字段转移控制字段BCFBCF:规定地址的形成方式规定地址的形成方式•微指令执行完毕,根据微指令执行完毕,根据BCFBCF和和BAFBAF中的内容,控中的内容,控制是否转移和转移到何处制是否转移和转移到何处•若转移,若转移,BAF→μPCBAF→μPC,否则,按,否则,按μPCμPC的现行内容的现行内容顺序执行顺序执行 微地址形成方式举例微地址形成方式举例 (2) (2) 断定方式断定方式•断定方式:后继微地址可由设计者指定或由设计断定方式:后继微地址可由设计者指定或由设计者指定的测试判定字段控制产生者指定的测试判定字段控制产生•采用断定方式的后继微地址一般由两部分组成:采用断定方式的后继微地址一般由两部分组成:•非因变分量:由设计者直接指定的部分,一般是非因变分量:由设计者直接指定的部分,一般是微地址的高位部分微地址的高位部分•因变分量:根据判定条件产生的部分,一般对应因变分量:根据判定条件产生的部分,一般对应微地址的低位部分。

微地址的低位部分 •例:某机的微指令格式为:例:某机的微指令格式为:•A、、B为两个判定条件为两个判定条件 •设:微指令的高位地址为设:微指令的高位地址为10110111011011•A A::0101,,B B::1111•那么那么 后继微指令的微地址为:后继微指令的微地址为: 1011011 1 S 1011011 1 S•这是条件转移微指令这是条件转移微指令•若若S S==1 1,后继微地址为:,后继微地址为: 101101111 101101111==16FH16FH•若若S S==0 0,后继微地址为:,后继微地址为: 101101110 101101110==16EH16EH•采用断定方式可以实现快速多路转移,适合于采用断定方式可以实现快速多路转移,适合于功能转移的需要缺点是编制微程序时,地址功能转移的需要缺点是编制微程序时,地址安排比较复杂,微程序执行顺序不直观在实安排比较复杂,微程序执行顺序不直观在实际机器中,往往增量方式与断定方式混合使用际机器中,往往增量方式与断定方式混合使用 模型机下地址形成方法模型机下地址形成方法 •例例6.4 6.4 已知某计算机采用微程序控制方式,其已知某计算机采用微程序控制方式,其控制存储器的容量为控制存储器的容量为512512××32bit32bit。

微程序可以微程序可以在整个控制存储器中实现转移可控制微程序在整个控制存储器中实现转移可控制微程序转移的条件有转移的条件有6 6个,采用直接控制和字段混合个,采用直接控制和字段混合编码,后继微指令地址采用断定方式,微指令编码,后继微指令地址采用断定方式,微指令格式如下:格式如下: •请说明微指令中请说明微指令中3 3个字段分别应为多少位个字段分别应为多少位 •由已知条件可以得出:由已知条件可以得出:•∵ ∵ 控存的容量为控存的容量为512512个单元=个单元= 29 29个单元个单元•∴∴下条指令的微地址应当为下条指令的微地址应当为9 9位•测试条件字段有两种可能:测试条件字段有两种可能:•① ① 判判定定条条件件可可组组合合使使用用,,采采用用直直接接控控制制,,每每个个判判定定条条件件占占1 1位位,,则则测测试试条条件件字字段段需需6 6位位,,这这样样,,剩下的为操作控制字段的可用位数为:剩下的为操作控制字段的可用位数为:•3232--9 9--6 6==1717位3 3个字段的位数分配可以是:个字段的位数分配可以是:•微操作编码字段:微操作编码字段:1717位;位;•转移测试条件字段:转移测试条件字段:6 6位;位;•下条指令微地址:下条指令微地址:9 9位。

位 •② ② 将将判判定定条条件件编编码码表表示示,,采采用用组组合合控控制制,,6 6个个判判定定条条件件的的二二进进制制共共编编码码占占3 3位位,,则则测测试试条条件件字字段段需需3 3位位,,这这样样,,剩剩下下的的为为操操作作控控制制字字段段的的可可用用位数为:位数为:•3232--9 9--3 3==2020位3 3个字段的位数分配可以是:个字段的位数分配可以是:•微操作编码字段:微操作编码字段:2020位;位;•转移测试条件字段:转移测试条件字段:3 3位;位;•下条指令微地址:下条指令微地址:9 9位 •例例6.5 6.5 下下图图为为一一微微程程序序流流程程,,每每一一方方框框为为一一条条微微指指令令,,用用字字母母A A~~P P分分别别表表示示微微指指令令执执行行的的微微操作,该微程序流程的两个分支分别是:操作,该微程序流程的两个分支分别是:•指令的指令的OPOP最低两位〔最低两位〔I1I0I1I0〕控制〕控制4 4路转移;路转移;•状态标志状态标志CZCZ的值决定后继微地址的形成的值决定后继微地址的形成•请请设设计计该该微微程程序序的的微微指指令令的的顺顺序序控控制制字字段段,,并并为每条微指令分配一个微地址。

为每条微指令分配一个微地址 •解:由图可知,该微程序有两处存在分支是:解:由图可知,该微程序有两处存在分支是:•① ① 指指令令操操作作码码的的I1I0I1I0〔〔2 2位位))::指指出出4 4条条微微指指令令的地址〔控制转移),的地址〔控制转移),•② ② 根根据据运运算算结结果果标标志志CZCZ的的值值决决定定2 2条条微微指指令令的的执行次序执行次序•该该微微程程序序中中共共有有1616条条微微指指令令,,所所以以微微指指令令中中的的下地址字段需要下地址字段需要4 4位•为为了了规规定定地地址址的的形形成成方方式式,,应应在在微微指指令令中中设设置置测试条件字段,用于描述后继地址的形成方式测试条件字段,用于描述后继地址的形成方式•地址的形成方式有:地址的形成方式有:•①①直直接接根根据据下下地地址址字字段段内内容容形形成成;;②②根根据据指指令令操操作作码码的的I1I0I1I0形形成成;;③③根根据据运运算算结结果果标标志志CZCZ形形成所以测试条件字段需要成所以测试条件字段需要2 2位 •因因此此,,本本例例的的微微指指令令格格式式由由3 3部部分分内内容容组组成成,,如下所示:如下所示: •地地址址的的分分配配关关键键在在于于分分支支微微指指令令的的安安排排,,此此时时,,对对下下地地址址字字段段的的值值具具有有一一定定的的约约束束条条件件,,一一般般取取由由测测试试条条件件控控制制的的那那几几位位为为约约束束条条件件,,目目的的在在于于简化地址修改逻辑。

简化地址修改逻辑•在在本本题题中中,,微微指指令令C C按按指指令令OPOP〔〔I1I0I1I0〕〕实实现现4 4路路分分支支,,控控制制在在末末2 2位位,,这这样样,,下下地地址址的的约约束束条条件件是是末末2 2位位全全为为0 0,,地地址址为为01000100,,微微指指令令C C的的后后继继4 4条条微微指指令令的的地地址址分分别别为为01000100、、01010101、、01100110、、01110111,,末末2 2位实现了按位实现了按I1I0I1I0转移;转移;•同理,可以将按同理,可以将按CZCZ转移的地址定为转移的地址定为10x010x0、、10x110x1 •剩剩下下的的微微指指令令的的地地址址没没有有约约束束条条件件,,可可任任意意分分配配一一般般可可根根据据微微程程序序流流程程从从小小地地址址到到大大地地址址〔〔或或从从上上到到下下、、从从左左到到右右〕〕顺顺序序,,将将控控制制存存储储器中没有分配的微地址安排到不同的微指令中器中没有分配的微地址安排到不同的微指令中•下下表表是是本本例例微微程程序序的的微微指指令令的的地地址址分分配配结结果果,,其其中中,,绿绿色色部部分分微微指指令令下下地地址址的的形形成成受受测测试试字字段约束条件的控制。

段约束条件的控制 •在在微微地地址址形形成成电电路路形形成成微微地地址址时时,,可可通通过过下下图图的的修修改改电电路路生生成成受受约约束束的的微微地地址址〔〔高高位位地地址址指指定) 作业作业•P306 6.17 6.6.4 6.6.4 微指令的执行方式微指令的执行方式•微程序控制器是通过一条一条地执行微指令来微程序控制器是通过一条一条地执行微指令来实现指令控制的实现指令控制的•执行一条微指令的过程:执行一条微指令的过程:•①① 取微指令:将微指令从控制存储器中取出取微指令:将微指令从控制存储器中取出•②② 执行微指令:执行微指令所规定的各个微操执行微指令:执行微指令所规定的各个微操作•根据取后继微指令和执行现行微指令之间的时根据取后继微指令和执行现行微指令之间的时间关系,微指令有两种执行方式:串行执行和间关系,微指令有两种执行方式:串行执行和并行执行并行执行 1 1.串行执行方式.串行执行方式•取微指令和执行微指令是顺序、串行执行的,取微指令和执行微指令是顺序、串行执行的,在一条微指令取出并执行完毕后,才能取下一在一条微指令取出并执行完毕后,才能取下一条微指令条微指令 串行微周期的时序图串行微周期的时序图 •串行方式的优点是:控制简单。

串行方式的优点是:控制简单•因为在每个微周期中,总要等到所有微操作结束,因为在每个微周期中,总要等到所有微操作结束,并建立了运算结果状态之后,才确定后继微指令并建立了运算结果状态之后,才确定后继微指令地址因此,无论后继微地址是按地址因此,无论后继微地址是按μPCμPC增量方式,增量方式,还是根据结果特征实现微程序转移,串行方式都还是根据结果特征实现微程序转移,串行方式都可容易实现控制可容易实现控制•串行方式的缺点是:设备效率低,执行速度慢串行方式的缺点是:设备效率低,执行速度慢•因为在一个微周期内的取微指令阶段,控制存储因为在一个微周期内的取微指令阶段,控制存储器工作,数据通路等待;而在执行微指令阶段,器工作,数据通路等待;而在执行微指令阶段,数据通路工作,控制存储器空闲因而效率低数据通路工作,控制存储器空闲因而效率低 2 2.并行执行方式.并行执行方式•微指令的并行执行方式微指令的并行执行方式•将取指令操作和执行微指令操作重叠起来将取指令操作和执行微指令操作重叠起来•由于取微指令与执行微指令分别在两个不同部由于取微指令与执行微指令分别在两个不同部件中执行,这种重叠是完全可行的在执行本件中执行,这种重叠是完全可行的。

在执行本条微指令的同时,可预取下一条微指令条微指令的同时,可预取下一条微指令•假设取微指令所需时间比执行微指令短,因而假设取微指令所需时间比执行微指令短,因而将执行微指令时间作为微周期将执行微指令时间作为微周期 并行方式时序图并行方式时序图 • 由于并行方式中取微指令与执行微指令在时间由于并行方式中取微指令与执行微指令在时间上有重叠,所以微程序执行速度比串行方式快,上有重叠,所以微程序执行速度比串行方式快,设备效率也高设备效率也高•但微指令的预取会带来一些控制问题例如有但微指令的预取会带来一些控制问题例如有时需根据运算结果特征实现微程序转移,而结时需根据运算结果特征实现微程序转移,而结果产生是在微周期的末尾,此时预取的微指令果产生是在微周期的末尾,此时预取的微指令已经取出若转移成功,预取的微指令无效已经取出若转移成功,预取的微指令无效•如何处理并行方式中的微程序转移,是一个难如何处理并行方式中的微程序转移,是一个难度较大的问题通常有延迟周期法、猜测法、度较大的问题通常有延迟周期法、猜测法、预取多条转向微指令等方法其中最简单方法预取多条转向微指令等方法其中最简单方法就是延迟周期法遇到按现行微指令结果特征就是延迟周期法。

遇到按现行微指令结果特征转移时,延迟一个微周期再取微指令转移时,延迟一个微周期再取微指令 6.6.6 微程序控制器设计步骤微程序控制器设计步骤•⑴ ⑴ 确定微指令格式和执行方式确定微指令格式和执行方式•⑵ ⑵ 定定义义微微命命令令集集、、确确定定微微命命令令编编码码方方式式和微指令排序方式和微指令排序方式•根根据据机机器器指指令令的的所所有有微微控控制制信信号号拟拟定定微微命命令令集集,,确确定定微微命命令令编编码码方方式式和和字字段段的的划划分分,,选选择择微微指指令令排排序序方方法法〔〔增增量量式式、、断定式等)断定式等) •⑶ ⑶ 编制微程序编制微程序•列列出出机机器器指指令令的的全全部部微微命命令令节节拍拍安安排排,,按按已已定定的的微微指指令令格格式式编编制制微微程程序序,,并并对对所所有有微微程程序序进进行优化和代码化行优化和代码化•⑷ ⑷ 写入微程序写入微程序•将二进制表示的全部微程序写入控制存储器将二进制表示的全部微程序写入控制存储器 •例:例: 某计算机采用微程序控制器设计,已知某计算机采用微程序控制器设计,已知每条机器指令的执行过程均可分解成每条机器指令的执行过程均可分解成8 8条微指条微指令组成的微程序,该机指令系统采用定长格式,令组成的微程序,该机指令系统采用定长格式,操作码字段为操作码字段为6 6位。

位•问:控制存储器至少应能容纳多少条微指令?问:控制存储器至少应能容纳多少条微指令?如何确定机器指令操作码与该指令微程序的起如何确定机器指令操作码与该指令微程序的起始地址的对应关系?请给出具体方案始地址的对应关系?请给出具体方案•解:解:⑴ 6⑴ 6位操作码可定义位操作码可定义6464种功能,所以共有种功能,所以共有6464条机器指令每条指令由条机器指令每条指令由8 8条微指令完成,条微指令完成,所以控制存储器至少应能所以控制存储器至少应能 64 64××8 8==512 512 条微指条微指令 •⑵ ⑵ 控存微地址宽度应为控存微地址宽度应为9 9位,以便寻址位,以便寻址2929个控个控存单元•可以将各机器指令的可以将各机器指令的6 6位操作码作为位操作码作为9 9位微地址位微地址的高的高6 6位,以形成该指令微程序的起始地址位,以形成该指令微程序的起始地址•μMARμMAR地址格式地址格式( (起始地址起始地址) ) OP码〔6位) X X X 6.6.7 6.6.7 模型机的微程序设计模型机的微程序设计•1 1.模型机的时序系统.模型机的时序系统•采用徽程序控制以后,指令的微操作序列采用徽程序控制以后,指令的微操作序列不再由周期、节拍等时序信号控制,而代不再由周期、节拍等时序信号控制,而代之以统一规整的微周期。

之以统一规整的微周期•模型机采用取微指令与执行微指令顺序串模型机采用取微指令与执行微指令顺序串行执行的控制方式,并采用三相时钟控制行执行的控制方式,并采用三相时钟控制•CP1CP1:用于打入微地址并启动控制存储器读:用于打入微地址并启动控制存储器读取微指令取微指令•CP2CP2:用于把读出的微指令打入到:用于把读出的微指令打入到μIRμIR中,中,经译码或直接产生一组微命令,控制完成经译码或直接产生一组微命令,控制完成规定的微操作规定的微操作•CP3CP3:用于把操作结果打入到相应的寄存器:用于把操作结果打入到相应的寄存器中 模型机的微程序时序关系模型机的微程序时序关系 2 2.模型机的微指令格式.模型机的微指令格式•模型机的微指令格式设计要根据模型机数据通模型机的微指令格式设计要根据模型机数据通路结构的需要和微操作的相容性与相斥性相路结构的需要和微操作的相容性与相斥性相斥的操作可以编在微指令的一个字段中,相容斥的操作可以编在微指令的一个字段中,相容的操作必须编在微指令的不同字段中的操作必须编在微指令的不同字段中•例如,模型机中例如,模型机中Ri→BUS1Ri→BUS1均为相斥操作,可以均为相斥操作,可以编在一个字段;而编在一个字段;而CPRiCPRi与与CPMARCPMAR是相容的,必是相容的,必须安排在不同字段,因此在模型机的微指令中须安排在不同字段,因此在模型机的微指令中给给CPCP信号安排了两个字段信号安排了两个字段BUS01BUS01和和BUS02BUS02。

模型机的微指令格式模型机的微指令格式 •各字段编码及意义:各字段编码及意义:•⑴⑴ BUSin::BUS1输入选择字段〔三位)输入选择字段〔三位)•其中其中RS→BUS1和和RD→BUS1所选的寄存器分别所选的寄存器分别取决于机器指令字的取决于机器指令字的8~~6位和位和2~~0位 •⑵ ALU⑵ ALU操作控制字段操作控制字段S3S2S1S0MS3S2S1S0M〔五位)〔五位) •⑶⑶ C0 进位字段〔五位)进位字段〔五位)•⑷⑷ S 移位字段〔二位)移位字段〔二位) •⑸⑸ BUSO1 BUS2输出分配输出分配1〔二位)〔二位) •⑹⑹ BUSO2 BUS2输出分配输出分配2〔三位)〔三位)•其中其中CPRS和和CPRD所选的寄存器分别取决于机器所选的寄存器分别取决于机器指令字的指令字的8~~6位和位和2~~0位 •⑺⑺ R/W 读写控制字段〔一位)读写控制字段〔一位)•⑻⑻ MREQ/IOREQ 访主存访主存/IO请求字段〔二位)请求字段〔二位) •⑼ SCF ⑼ SCF 顺序控制字段〔四位)顺序控制字段〔四位)•SCFSCF用于控制微地址的形成用于控制微地址的形成 •⑽ ⑽ 下地址字段〔八位)下地址字段〔八位)•用于指示下条微指令地址或微子程序入口用于指示下条微指令地址或微子程序入口地址。

地址•下地址字段的内容取决于下列器件的输出,下地址字段的内容取决于下列器件的输出,不同的微指令,规定不同不同的微指令,规定不同P278P278))•PLA1PLA1:用于实现按指令类型的功能转移用于实现按指令类型的功能转移•PLA2PLA2:用于实现按源寻址方式的功能转移用于实现按源寻址方式的功能转移•PLA3PLA3:用于实现按目标寻址方式的功能转:用于实现按目标寻址方式的功能转移•RRRR:返回地址寄存器,用于存放返回地址返回地址寄存器,用于存放返回地址执行返回微指令时,按此地址返回微主程执行返回微指令时,按此地址返回微主程序 PLA1PLA1:实现按指令类型的功能转移:实现按指令类型的功能转移 PLA2PLA2和和PLA3PLA3的逻辑结构的逻辑结构 3 3.模型机的微程序流程及微程序的编制.模型机的微程序流程及微程序的编制•(1)(1)取指令的微程序流程取指令的微程序流程 •在流程图中,矩形框里面的内容表示该条微指令在流程图中,矩形框里面的内容表示该条微指令所要完成的微操作和下条微指令地址;矩形框外所要完成的微操作和下条微指令地址;矩形框外面左上角,标注了本条微指令在控制存储器中的面左上角,标注了本条微指令在控制存储器中的微地址,右上角标注了执行本条微指令的某些条微地址,右上角标注了执行本条微指令的某些条件。

件 取指操作微程序流程取指操作微程序流程 •其余指令的微程序流程见教材其余指令的微程序流程见教材P279P279~~P281P281•模型机微程序的编制见教材模型机微程序的编制见教材P282P282~~P289P289的表的表6-176-17 例:写出指令例:写出指令AND R0AND R0,,R1R1的微指令执行流程的微指令执行流程•设设(PC)(PC)==0081H0081H,,(R0)(R0)==1234H1234H,,(R1)(R1)==00FFH00FFH•解:解:ADD R0ADD R0,,R1R1的机器指令编码的机器指令编码•0011 000 000 000 0010011 000 000 000 001==3001H3001H 6.7 6.7 流水线处理技术流水线处理技术 •6.7.1 6.7.1 指令的执行方式指令的执行方式 •前面所述的控制器同步、异步和联合控制前面所述的控制器同步、异步和联合控制三种控制方式是根据微操作序列的时序来三种控制方式是根据微操作序列的时序来划分的•根据各条指令之间的衔接关系指令的执行根据各条指令之间的衔接关系指令的执行又可分为顺序、重叠、流水三种方式。

又可分为顺序、重叠、流水三种方式 1. 1. 顺序方式顺序方式 •各条指令之间顺序串行执行即一条指令执行完各条指令之间顺序串行执行即一条指令执行完以后,才取下条指令来执行以后,才取下条指令来执行•顺序控制方式的优点是控制简单,节省设备,但顺序控制方式的优点是控制简单,节省设备,但执行速度慢,机器效率低,在时间上不能充分利执行速度慢,机器效率低,在时间上不能充分利用各部件例如在执行运算时,主存可能是空闲用各部件例如在执行运算时,主存可能是空闲的 •顺序控制方式:顺序控制方式: •前一条指令的解释执行完成之前,就开始下一条前一条指令的解释执行完成之前,就开始下一条指令的解释执行,即相邻两条指令在时间上相互指令的解释执行,即相邻两条指令在时间上相互重叠•在重叠方式中,由于相邻两条指令重叠执行,因在重叠方式中,由于相邻两条指令重叠执行,因而加快了程序的运行速度,但其控制逻辑要比顺而加快了程序的运行速度,但其控制逻辑要比顺序方式复杂,对存储器系统频宽要求要高一般序方式复杂,对存储器系统频宽要求要高一般要求存储器采用多存储体交叉工作的方法,以满要求存储器采用多存储体交叉工作的方法,以满足存储器速度要求;另外通常采用指令预取部件,足存储器速度要求;另外通常采用指令预取部件,利用主存的空闲时间预取后续指令。

利用主存的空闲时间预取后续指令 2 2.重叠方式.重叠方式 重叠执行方式重叠执行方式 •把指令的执行过程划分成若干个复杂程度相当、把指令的执行过程划分成若干个复杂程度相当、处理时间大致相等的子过程,每个子过程由一处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成同一时间,多个功个独立的功能部件来完成同一时间,多个功能部件同时工作,完成对不同子过程的处理能部件同时工作,完成对不同子过程的处理•流水方式是重叠方式的进一步发展,采用类似流水方式是重叠方式的进一步发展,采用类似生产流水线方式控制指令的解释执行生产流水线方式控制指令的解释执行•由于流水线上各功能部件并行工作,同时进行由于流水线上各功能部件并行工作,同时进行对多条指令的解释执行,使机器的处理速度大对多条指令的解释执行,使机器的处理速度大大提高 3 3.流水方式.流水方式 •在采用五段流水线对指令解释执行时,在一个时在采用五段流水线对指令解释执行时,在一个时钟周期内,同时有五条指令分别在不同的功能部钟周期内,同时有五条指令分别在不同的功能部件上被解释件上被解释•流水线稳定工作后,每个时钟周期都有一条指令流水线稳定工作后,每个时钟周期都有一条指令的执行结果从流水线流出。

的执行结果从流水线流出•设各功能段所需时间相等,均为一个时钟周期,设各功能段所需时间相等,均为一个时钟周期,则理想的情况下,流水线吞吐率则理想的情况下,流水线吞吐率( (单位时间内所处单位时间内所处理的指令条数理的指令条数) )为:为:•ΔtΔt为流水线时钟周期如果采用顺序方式,则一为流水线时钟周期如果采用顺序方式,则一条指令执行时间为条指令执行时间为T T==5Δt5Δt,显然,流水方式大大,显然,流水方式大大提高了机器的吞吐率提高了机器的吞吐率 6.7.2 6.7.2 流水线的分类流水线的分类 •1. 1. 按处理级别分类按处理级别分类•⑴ ⑴ 操作部件级流水线操作部件级流水线•将复杂的运算过程组成流水线工作方式将复杂的运算过程组成流水线工作方式•例如:将浮点加法运算分成求阶差、对阶、尾例如:将浮点加法运算分成求阶差、对阶、尾数加和规格化处理数加和规格化处理4 4个子部件,形成浮点加法个子部件,形成浮点加法运算流水线运算流水线•⑵ ⑵ 指令级流水线指令级流水线•将指令的整个执行过程分为若干个子过程将指令的整个执行过程分为若干个子过程•例如:将指令的执行过程分为取指令、指令译例如:将指令的执行过程分为取指令、指令译码、取操作数、执行和存结果等码、取操作数、执行和存结果等5 5个子过程。

个子过程 •⑶ ⑶ 处理机级流水线处理机级流水线•处理机级流水线是一条宏流水线多个处理机通过处理机级流水线是一条宏流水线多个处理机通过共享存储器串接起来处理同一数据流,每个处理机共享存储器串接起来处理同一数据流,每个处理机〔〔PE Processor ElementPE Processor Element〕完成专一任务,并将〕完成专一任务,并将结果输出到共享存储器〔结果输出到共享存储器〔SM Shared MemorySM Shared Memory),),而下一个处理机则从共享存储器取出新结果进行再而下一个处理机则从共享存储器取出新结果进行再处理〔完成自身的指定任务)处理〔完成自身的指定任务) 2. 2. 按功能分类按功能分类 •⑴ ⑴ 单功能流水线单功能流水线•只完成一种功能的流水线如乘法流水线只完成一种功能的流水线如乘法流水线•⑵ ⑵ 多功能流水线多功能流水线•可完成两种以上功能的流水线多功能流水线可完成两种以上功能的流水线多功能流水线的控制复杂的控制复杂•例如,美国例如,美国TITI公司的公司的ASCASC计算机有一个多功能计算机有一个多功能流水线,该流水线含流水线,该流水线含8 8功能段〔输入、求阶差、功能段〔输入、求阶差、对阶移位、相加、规格化、相乘、累加和输出)对阶移位、相加、规格化、相乘、累加和输出),可完成定点加运算〔输入、相加、输出)、,可完成定点加运算〔输入、相加、输出)、定点乘运算〔输入、相乘、累加、输出〕和浮定点乘运算〔输入、相乘、累加、输出〕和浮点加运算〔输入、求阶差、对阶移位、相加、点加运算〔输入、求阶差、对阶移位、相加、规格化和输出)。

规格化和输出) 3. 3. 按工作方式分类按工作方式分类 •⑴⑴ 静态流水线静态流水线•在同一时间内只能以一种方式工作的流在同一时间内只能以一种方式工作的流水线静态流水线可以是单功能的,也水线静态流水线可以是单功能的,也可以是多功能的〔必须在一种功能流水可以是多功能的〔必须在一种功能流水完成后,排空流水线,再静态切换到另完成后,排空流水线,再静态切换到另一种功能)一种功能) 但多功能的频繁切换将严但多功能的频繁切换将严重影响流水线的处理效率重影响流水线的处理效率 •⑵⑵ 动态流水线动态流水线•允许在同一时间内将不同的功能段组合允许在同一时间内将不同的功能段组合成具有多种功能的流水子集,以完成不成具有多种功能的流水子集,以完成不同的功能的流水线动态流水线必须是同的功能的流水线动态流水线必须是多功能流水线多功能流水线 4. 4. 按流水线结构分类按流水线结构分类 •⑴⑴ 线性流水线线性流水线•线性流水线的每个功能段在处理流水任务时,线性流水线的每个功能段在处理流水任务时,最多只经过一次最多只经过一次, 没有反馈回路没有反馈回路 •⑵⑵ 非线性流水线非线性流水线 •非线性流水线的功能段可以通过反馈回路多次非线性流水线的功能段可以通过反馈回路多次被使用。

被使用 6.7.3 6.7.3 线性流水线的性能线性流水线的性能 •1. 1. 流水线时空图流水线时空图 2. 2. 流水线的主要指标流水线的主要指标 •1) 1) 吞吐率吞吐率(TP) (TP) •吞吐率是指单位时间内流水线能完成的吞吐率是指单位时间内流水线能完成的指令数、任务数和输出结果的数量指令数、任务数和输出结果的数量•对于线性流水线来说,在各功能部件占对于线性流水线来说,在各功能部件占用时间相同的情况下,用时间相同的情况下,TPTP的值为:的值为:•m m为流水线的段数,为流水线的段数,n n为送入流水线的指为送入流水线的指令条数令条数 2) 2) 加速比加速比(SP) (SP) •加速比是指采用流水线后的工作速度与等效的加速比是指采用流水线后的工作速度与等效的顺序串行方式的工作速度之比顺序串行方式的工作速度之比 •设需求解设需求解n个任务,若采用串行方式工作,需个任务,若采用串行方式工作,需要的时间为要的时间为TS,采用,采用m段流水线方式工作,需段流水线方式工作,需要的时间为要的时间为TC,则加速比为:,则加速比为:• 3) 3) 效率效率(η) (η) •流水线的效率是指流水线中各功能段的利用率。

流水线的效率是指流水线中各功能段的利用率•由于流水线有建立和排空时间,因此各功能段由于流水线有建立和排空时间,因此各功能段的设备不可能一直处于忙碌状态,总有一段空的设备不可能一直处于忙碌状态,总有一段空闲时间•一般用流水线各段处于工作时间的时空区与流一般用流水线各段处于工作时间的时空区与流水线中各段总的时空区之比来计算效率即:水线中各段总的时空区之比来计算效率即: •例例6.5 6.5 设有设有100100条指令的程序段经过下图的指令流条指令的程序段经过下图的指令流水线执行,请求出完成该程序段的流水时间、流水线执行,请求出完成该程序段的流水时间、流水线的实际吞吐率、加速比和效率设水线的实际吞吐率、加速比和效率设ΔtΔt==10ns10ns))• •解:流水线完成解:流水线完成100100个任务的总时间个任务的总时间•TCTC==mΔtmΔt++(n(n--1)Δt1)Δt==5 5××ΔtΔt++9999××ΔtΔt ==104Δt104Δt==1040ns1040ns•吞吐率:吞吐率:TPTP==100100//TCTC==100100//1040ns1040ns•∵∵采用非流水线系统完成采用非流水线系统完成100100个任务的总时间:个任务的总时间:• TS TS==100100××5 5××1010==5000ns 5000ns •∴ ∴ 加速比:加速比:SPSP==TSTS//TCTC==50005000//1040 ≈ 5 1040 ≈ 5 •效率:效率:ηη==TPΔtTPΔt==10001000//1040 ≈ 100% 1040 ≈ 100% 作业作业•P306 6.19 3. 3. 标准流水线标准流水线 •流水线中功能段的数量是影响流水线性能的重流水线中功能段的数量是影响流水线性能的重要元素。

要元素•根据理论计算,流水线功能段的数量越多,其根据理论计算,流水线功能段的数量越多,其吞吐率越大但如果综合考虑成本和各段之间吞吐率越大但如果综合考虑成本和各段之间的锁存器的延迟时间,流水线的最佳段数应在的锁存器的延迟时间,流水线的最佳段数应在2 2~~1010段之间•标准的流水线功能段的段数限定在标准的流水线功能段的段数限定在5 5段左右 4. 4. 高级流水线高级流水线 •为了加速流水处理器的处理速度,需对流水线为了加速流水处理器的处理速度,需对流水线的构造进一步加以改造的构造进一步加以改造•目前主要采取的措施有:超流水线、超长指令目前主要采取的措施有:超流水线、超长指令字流水线和超标量流水线字流水线和超标量流水线 1) 1) 超流水技术超流水技术 ((Super Super PipeliningPipelining))•将流水线进一步细分,增加流水线的段数,减将流水线进一步细分,增加流水线的段数,减少每段的延迟时间,从而加快流水线的处理速少每段的延迟时间,从而加快流水线的处理速度•采用超流水技术的流水线的段数至少在采用超流水技术的流水线的段数至少在5段以段以上 2) 2) 超长指令字技术超长指令字技术 ((VLIWVLIW))•超长指令字技术〔超长指令字技术〔Very Long Instruction Very Long Instruction WordWord)。

•超长指令字:以一条长指令来实现多个操作的超长指令字:以一条长指令来实现多个操作的并行执行,以减少对存储器的访问并行执行,以减少对存储器的访问•超长指令字的实现:超长指令字的实现:•在处理机中设置多个可并行操作的功能部件在处理机中设置多个可并行操作的功能部件在一条超长指令字的多个操作控制字段的直接在一条超长指令字的多个操作控制字段的直接控制下并行操作控制下并行操作•超长指令字是采用资源重复的策略开发并行性超长指令字是采用资源重复的策略开发并行性•超长指令字的长度达上百位,甚至上千位超长指令字的长度达上百位,甚至上千位 例:在执行阶段并行执行三个操作例:在执行阶段并行执行三个操作 3) 3) 超标量技术超标量技术 •超标量处理器〔超标量处理器〔Superscalar ProcessorSuperscalar Processor〕的〕的主要方法是通过重复设置指令流水线〔多条功主要方法是通过重复设置指令流水线〔多条功能相同的指令流水线),在一个时钟周期内启能相同的指令流水线),在一个时钟周期内启动〔发射〕多条指令进行并行处理,进一步加动〔发射〕多条指令进行并行处理,进一步加快流水处理速度快流水处理速度。

•如如PentiumPentium计算机采用了计算机采用了2 2套流水线〔套流水线〔U U、、V V流水流水线〕提高运算器的运算速度线〕提高运算器的运算速度 •超流水和超标量技术结合可以构造超标量超流超流水和超标量技术结合可以构造超标量超流水处理器水处理器 在超标量机中每个时钟周期可同时启动三条在超标量机中每个时钟周期可同时启动三条指令的情况指令的情况 6.7.4 6.7.4 流水线的相关问题流水线的相关问题 •要使流水线具有良好的性能,必须设法使流水要使流水线具有良好的性能,必须设法使流水线能畅通流动,即做到充分流水,不发生断流线能畅通流动,即做到充分流水,不发生断流•如果在一段程序的相近指令之间存在某种依赖如果在一段程序的相近指令之间存在某种依赖关系,称为指令之间存在相关关系关系,称为指令之间存在相关关系•使流水断流的相关问题使流水断流的相关问题•局部相关:指令执行过程中的资源冲突〔资源局部相关:指令执行过程中的资源冲突〔资源相关)、数据相关相关)、数据相关•全局相关:控制转移相关,如转移指令、中断全局相关:控制转移相关,如转移指令、中断的处理 1. 1. 资源相关资源相关 •资源相关是指当有多条指令进入流水线后,在资源相关是指当有多条指令进入流水线后,在同一机器周期内争用同一功能部件而导致流水同一机器周期内争用同一功能部件而导致流水不能继续运行的现象。

不能继续运行的现象•如在图如在图6-536-53的流水线中,若的流水线中,若OFKOFK涉及访问存储涉及访问存储器〔取存储单元的数据),则与器〔取存储单元的数据),则与IFK+2IFK+2发生访发生访存冲突•解决资源相关的方法:解决资源相关的方法:•使后续的相关指令延迟一节拍进入流水线,或使后续的相关指令延迟一节拍进入流水线,或者增加缓冲部件〔如者增加缓冲部件〔如CacheCache),将指令提前预),将指令提前预取到缓冲区取到缓冲区 2. 2. 数据相关数据相关 •由于多条指令进入流水线后,各条指令的操作由于多条指令进入流水线后,各条指令的操作重叠进行,使得原来对操作数的访问顺序发生重叠进行,使得原来对操作数的访问顺序发生了变化,产生了错误的运行结果,从而导致了了变化,产生了错误的运行结果,从而导致了数据相关冲突数据相关冲突•如在图如在图6-536-53的流水线中,若的流水线中,若OFK+1OFK+1取出的数据是取出的数据是WBKWBK保存的结果〔保存的结果〔RAW-Read After WriteRAW-Read After Write),则),则出现出现““先读后写〞顺序错误,称为先读后写〞顺序错误,称为RAWRAW相关。

相关•解决数据相关的方法:解决数据相关的方法:•使后续相关的指令延迟进入流水线〔推后法),使后续相关的指令延迟进入流水线〔推后法),或者增加快速直接通道〔零延迟量法)或者增加快速直接通道〔零延迟量法) 3. 3. 控制转移相关控制转移相关 •控制相关是指有分支指令、转子指令和中断等控制相关是指有分支指令、转子指令和中断等引起的相关引起的相关•当转移类指令进入流水线时,如果引起转移的当转移类指令进入流水线时,如果引起转移的状态还未形成,则无法确定后续指令的进入状态还未形成,则无法确定后续指令的进入此时无法决定是选择成功分支的指令序列进入此时无法决定是选择成功分支的指令序列进入流水线,还是选择不成功分支的指令序列进入流水线,还是选择不成功分支的指令序列进入流水线 •出现控制相关时,将使流水线的连续流动受到出现控制相关时,将使流水线的连续流动受到破坏因此比起数据相关来,控制相关会使流破坏因此比起数据相关来,控制相关会使流水线丧失更多的性能,使流水线的吞吐率和效水线丧失更多的性能,使流水线的吞吐率和效率严重下降率严重下降 •如在图如在图6-536-53的流水线中,若的流水线中,若EXKEXK是完成运算类是完成运算类指令的操作,可以生成有关状态标志。

而指令的操作,可以生成有关状态标志而IFK+1IFK+1是条件转移指令,并在是条件转移指令,并在IDK+1IDK+1分析状态条分析状态条件,决定是否转移这时将出现件,决定是否转移这时将出现““分析条件在分析条件在先,条件形成在后〞的错误,可能导致错误的先,条件形成在后〞的错误,可能导致错误的分支指令序列进入流水线分支指令序列进入流水线 解决控制转移相关的常用办法解决控制转移相关的常用办法 •1) 1) 加快和提前形成条件码加快和提前形成条件码 •在不影响状态标志的情况下将形成状态在不影响状态标志的情况下将形成状态条件的指令前移若干个位置〔表面上改条件的指令前移若干个位置〔表面上改动了指令的执行顺序),当条件转移指动了指令的执行顺序),当条件转移指令进入流水线后,可以按已形成的状态,令进入流水线后,可以按已形成的状态,立即判断后续的分支序列立即判断后续的分支序列 •2) 2) 预取转移成功或不成功两个分支序列的指令预取转移成功或不成功两个分支序列的指令•在转移条件未形成之前,将判断条件出现概率高在转移条件未形成之前,将判断条件出现概率高的分支指令序列预取到流水线,并完成译码、取的分支指令序列预取到流水线,并完成译码、取操作数等动作,但不进行操作,或有操作不回送操作数等动作,但不进行操作,或有操作不回送结果。

一旦条件码生成并表明猜测成功时,就立结果一旦条件码生成并表明猜测成功时,就立即执行操作或回送结果若是猜测不对,则作废即执行操作或回送结果若是猜测不对,则作废猜测分支路径的所有操作猜测分支路径的所有操作 •3) 3) 采用延迟转移技术采用延迟转移技术•从条件转移指令进入到获取正确的条件码之间,从条件转移指令进入到获取正确的条件码之间,已有若干条指令进入流水线〔此时段被称为转已有若干条指令进入流水线〔此时段被称为转移延迟槽),这些指令若是某分支上的指令,移延迟槽),这些指令若是某分支上的指令,则随时可能被废弃因此,可以在转移延迟槽则随时可能被废弃因此,可以在转移延迟槽中安排一些有效的指令,如将转移指令前面的中安排一些有效的指令,如将转移指令前面的指令后移到槽中,或将转移指令后面的指令前指令后移到槽中,或将转移指令后面的指令前移到延迟槽中当然,这些指令的变动不能影移到延迟槽中当然,这些指令的变动不能影响其它指令的正确执行即充分利用延迟槽做响其它指令的正确执行即充分利用延迟槽做有效的工作有效的工作 •在转移延迟槽中安排有用的指令,利用有效的在转移延迟槽中安排有用的指令,利用有效的软件手段,可以减少由于控制相关而造成的流软件手段,可以减少由于控制相关而造成的流水线性能下降。

水线性能下降•① ① 将转移指令前的指令调入转移延迟槽内执行将转移指令前的指令调入转移延迟槽内执行•当然转移指令必须与调入的指令不相关当然转移指令必须与调入的指令不相关•例:例:•ADD R0,R1,R2 BRANCH LADD R0,R1,R2 BRANCH L•BRANCH L ADD R0,R1,R2 BRANCH L ADD R0,R1,R2 •②②将转移目标处的指令调入转移延迟槽内执行将转移目标处的指令调入转移延迟槽内执行 •例:例:•BRANCH L BRANCH L BRANCH L BRANCH L • SUB R4,R5,R6 SUB R4,R5,R6 •…… ……•L L:: SUB R4,R5,R6 L SUB R4,R5,R6 L:: SUB R4,R5,R6 SUB R4,R5,R6 •转移成功时,此方法有效且不破坏程序的正确性。

转移成功时,此方法有效且不破坏程序的正确性•当转移不发生时,指令当转移不发生时,指令L L的执行结果应对其他指令的执行结果应对其他指令没有影响没有影响•因为程序其余部分也有可能转移到因为程序其余部分也有可能转移到L L,所以一般仍,所以一般仍需将指令需将指令L L在原处保存在原处保存 •③ ③ 将转移不发生时应该执行的指令调入转移延迟将转移不发生时应该执行的指令调入转移延迟槽内执行槽内执行 •例:例:•BRANCH L BRANCH L BRANCH L BRANCH L • SUB R4,R5,R6 SUB R4,R5,R6 •SUB R4,R5,R6SUB R4,R5,R6• …… ……•L L:: L L::•转移不成功时,此方法有效且不破坏程序的正确性转移不成功时,此方法有效且不破坏程序的正确性。

•当转移发生时,该指令的执行结果应对其他指令没当转移发生时,该指令的执行结果应对其他指令没有影响。

下载提示
相似文档
正为您匹配相似的精品文档