1、第六章第六章 控制器控制器l6.1 控制器功能及组成控制器功能及组成l6.2 指令执行过程及时序控制方式指令执行过程及时序控制方式l6.3 硬布线控制器的设计硬布线控制器的设计l6.4 微程序控制器及设计技术微程序控制器及设计技术控制器功能控制器功能l控制器的作用就是控制计算机完成用户提出的控制器的作用就是控制计算机完成用户提出的任务:处理信息、处理异常情况。任务:处理信息、处理异常情况。问题:如何接受任务请求?问题:如何接受任务请求?如何理解任务内容?如何理解任务内容?如何控制计算机完成任务?如何控制计算机完成任务?控制器基本组成(数据通路)控制器基本组成(数据通路)问题:如何知道一个时间从
2、存储器中取出的是指令还是数据?问题:如何知道一个时间从存储器中取出的是指令还是数据?图中每条数据通路的作用?图中每条数据通路的作用?1.1.取指令取指令 当程序已在存储器中时,首先根据程序入当程序已在存储器中时,首先根据程序入口取出第一条指令,为此要发出指令地址及控口取出第一条指令,为此要发出指令地址及控制信号。然后不断取出第制信号。然后不断取出第2 2,3 3,条指令。条指令。2.2.分析指令分析指令 或叫解释指令、指令译码等。或叫解释指令、指令译码等。功能:是对当前取得的指令进行分析,指出功能:是对当前取得的指令进行分析,指出它要求作什么操作,并产生相应的操作控制命它要求作什么操作,并产生
3、相应的操作控制命令,如果参与操作的数据在存储器中,还需要令,如果参与操作的数据在存储器中,还需要形成操作数地址形成操作数地址3.3.执行指令执行指令 功能:根据分析指令时产生的功能:根据分析指令时产生的“操作命令操作命令”和和“操作数地址操作数地址”形成相应的操作控制信号序列,形成相应的操作控制信号序列,通过通过CPUCPU及输入输出设备的执行,实现每条指令的及输入输出设备的执行,实现每条指令的功能,其中还包括对运算结果的处理以及下条指功能,其中还包括对运算结果的处理以及下条指令地址的形成。令地址的形成。计算机不断重复顺序执行上述三种基本操作:计算机不断重复顺序执行上述三种基本操作:取指、分析
4、、执行;再取指、再分析、再执取指、分析、执行;再取指、再分析、再执行行,如此循环,直到遇到停机指令或外来的,如此循环,直到遇到停机指令或外来的干预为止。干预为止。组合逻辑控制器的时序关系组合逻辑控制器的时序关系l指令周期:是指取出并执行一条指令所需的时间,由若干指令周期:是指取出并执行一条指令所需的时间,由若干个个CPUCPU周期组成,每个周期组成,每个CPUCPU周期由若干时钟周期组成。周期由若干时钟周期组成。控制器时序工作方式控制器时序工作方式l同步控制方式:同步控制方式:同步控制方式中不同操作的周期、节拍、同步控制方式中不同操作的周期、节拍、脉冲(时序)长短相等。脉冲(时序)长短相等。l
5、异步控制方式:异步控制方式:不同的操作对应的时序长短不同。不同的操作对应的时序长短不同。l联合控制方式:联合控制方式:同步与异步的结合。同步与异步的结合。指令的执行过程指令的执行过程l典型程序的执行过程典型程序的执行过程:020 CLA -非访内指令非访内指令021 ADD 30-直接访内指令直接访内指令022 STA 40023 NOP024 JMP 21030 000 006031 000 040 数据数据040 存和单元存和单元控制信号产生电路的设计:控制信号产生电路的设计:控制信号产生电路原理图控制信号产生电路原理图 控制信号产生电路的设计控制信号产生电路的设计l1、确定指令周期(、确
6、定指令周期(CPU周期、节拍),根据指令功能,周期、节拍),根据指令功能,将所有指令分解成各个机器周期内的微操作将所有指令分解成各个机器周期内的微操作l2、确定控制信号产生电路的输入输出(分别是什、确定控制信号产生电路的输入输出(分别是什么?),写每一个微命令的逻辑表达式:么?),写每一个微命令的逻辑表达式:微操作命令名微操作命令名=指令名指令名*CPU周期周期*节拍节拍*条件条件l3、综合化简每一个微操作命令,写出相应的逻辑表达、综合化简每一个微操作命令,写出相应的逻辑表达式,画出相应的控制信号产生电路逻辑图式,画出相应的控制信号产生电路逻辑图组合逻辑控制器设计举例:组合逻辑控制器设计举例:
7、指令格式、运算器及指令格式、运算器及CPU体系体系操作码操作码直接寻址地址直接寻址地址81070000:CLA001:ADD010:STA011:NOP100:JMP单地址指令,目标地址隐含单地址指令,目标地址隐含在累加器在累加器ACAC中,源操作数只中,源操作数只有直接寻址方式一种有直接寻址方式一种FICT0:PC-SB,SB-AR,RDT1:DR-SB,SB-IR(PC+1)T2:(PC+1)FDCT0:0-ACIR(8-10)=000IR(8-10)=001IR(8-10)=010IR(8-10)=011IR(8-10)=100CLAEXECT0:IR(0-7)-SB,SB-ART1:A
8、C-SB,SB-DR,WRADDSTANOPJMPT0:IR(0-7)-SB,SB-PC为什么为什么PC+1不不放到放到T0或或T1?考虑不同的运算器总线结构(单总线或混合总线结构)考虑不同的运算器总线结构(单总线或混合总线结构),指令系统(若内存间接寻址)会导致微命令如何变化?指令系统(若内存间接寻址)会导致微命令如何变化?T0:IR(0-7)-SB,SB-AR,RDT0:IR(0-7)-SB,SB-AR,RDT1:DR-SB,SB-ALU.R,AC-ALU.LT2:ADD,ALU.O-ACT0:DR-SB,SB-ALU.R,AC-ALU.LT1:ADD,ALU.O-AC控制信号逻辑表达式控
9、制信号逻辑表达式控制信号产生电路逻辑图控制信号产生电路逻辑图指令译码器设计指令译码器设计l考虑计算机组合逻辑控制中什么是译码考虑计算机组合逻辑控制中什么是译码组合逻辑控制器设计:组合逻辑控制器设计:指令格式、运算器及指令格式、运算器及CPU体系体系操作码操作码89700:CLA1:ADD单地址指令,目标地址隐含单地址指令,目标地址隐含在累加器在累加器ACAC中,源操作数有中,源操作数有直接寻址方式、寄存器直接直接寻址方式、寄存器直接寻址方式两种寻址方式两种寻址方式寻址方式寄存器编号寄存器编号直接寻址地址直接寻址地址0:寄存器直接:寄存器直接1:存储器直接:存储器直接0:R01:R1问题:如果将
10、问题:如果将R0作为变址寻址寄存器,指令格式如何变化?作为变址寻址寄存器,指令格式如何变化?1FICEXEC微程序控制器微程序控制器是在控制器设计中引入程序是在控制器设计中引入程序设计思想而设计完成的控制器,该控制器设计思想而设计完成的控制器,该控制器中控制命令并非产生于组合逻辑电路,而中控制命令并非产生于组合逻辑电路,而是取自于是取自于控制存储器控制存储器中。微程序控制器中中。微程序控制器中的控制存储器内存放着对应所有指令的微的控制存储器内存放着对应所有指令的微命令组,执行某一条指令时,控制器会根命令组,执行某一条指令时,控制器会根据微地址取出对应该指令的微命令组。相据微地址取出对应该指令的
11、微命令组。相应的概念:应的概念:微命令、微指令、微程序微命令、微指令、微程序。微程序控制器微程序控制器微指令的格式微指令的格式微命令编码微命令编码微命令编码微命令编码下地址控制字下地址控制字段段NACNAC下地址字段下地址字段微程序控制器微程序控制器组成及工作原理组成及工作原理时序部件时序部件PSW 微命令编码方式微命令编码方式l直接表示法直接表示法l直接编码法直接编码法 用用n位表示位表示2n个微命令个微命令l字段直接编码法字段直接编码法 将互斥微命令采用编码方式表示,相容命令则采用直将互斥微命令采用编码方式表示,相容命令则采用直接表示法表示接表示法表示l字段间接编码法字段间接编码法 由不同
12、编码字段结合生成一些微命令由不同编码字段结合生成一些微命令PC-SB SB-AR RD PC+1下地址的生成(下地址的生成(NAC类型)类型)l增量方式:增量方式:顺序:下地址顺序:下地址=uPC,(uPC+)非顺序:下地址由跳转微指令决定,跳转微非顺序:下地址由跳转微指令决定,跳转微指令根据指令根据NAC决定是否跳到决定是否跳到NA,条件不满足,条件不满足则由则由uPC生成下地址生成下地址l断定方式:下地址断定方式:下地址=NA(微命令(微命令 NAC NA)l结合方式:结合方式:(微命令微命令 NAC NA),uPC l例:已知某计算机有例:已知某计算机有80条指令,平均每条指令条指令,平
13、均每条指令由由12条微指令组成,其中有一条取指微指令是条微指令组成,其中有一条取指微指令是所有指令共有的,设微指令的长度为所有指令共有的,设微指令的长度为32位,计位,计算断定方式的微程序控制存储器的容量(设测算断定方式的微程序控制存储器的容量(设测试条件不大于四种)。试条件不大于四种)。解:解:881*44l例:某机采用微程序控制器,已知每条机器指令可以例:某机采用微程序控制器,已知每条机器指令可以分解成分解成8条微指令组成的微程序(不考虑取指的单独条微指令组成的微程序(不考虑取指的单独存放问题),该机指令系统采用存放问题),该机指令系统采用6位定长操作码格式。位定长操作码格式。问:问:1)
14、确定微程序控制存储器的单元数;)确定微程序控制存储器的单元数;2)增量方式中,如何确定机器指令操作码与该)增量方式中,如何确定机器指令操作码与该指令微程序起始地址的对应关系,给出一种方案。指令微程序起始地址的对应关系,给出一种方案。l解:解:1)512 2)uPC8uPC3=OP5OP0l例:某机采用微程序控制方式,微指令字长例:某机采用微程序控制方式,微指令字长24位,共位,共有有30个微命令,构成四个相斥类,各包含个微命令,构成四个相斥类,各包含5个、个、8个、个、14个和个和3个微命令,另外有两个直接存放的微命令。个微命令,另外有两个直接存放的微命令。外部条件共外部条件共3个,计算微程序
15、控制存储器的容量。个,计算微程序控制存储器的容量。l解:解:512*24微程序控制器设计:微程序控制器设计:指令格式、运算器及指令格式、运算器及CPU体系体系操作码操作码89700:CLA1:ADD单地址指令,目标地址隐含单地址指令,目标地址隐含在累加器在累加器ACAC中,源操作数有中,源操作数有直接寻址方式、寄存器直接直接寻址方式、寄存器直接寻址方式两种寻址方式两种寻址方式寻址方式寄存器编号寄存器编号直接寻址地址直接寻址地址0:寄存器直接:寄存器直接1:存储器直接:存储器直接0:R01:R1问题:如果将问题:如果将R0作为变址寻址寄存器,指令格式如何变化?作为变址寻址寄存器,指令格式如何变化
16、?微程序控制器设计举例微程序控制器设计举例:指令微流程指令微流程微程序控制器设计举例微程序控制器设计举例 微命令编码设计微命令编码设计SBinSBout0-ACPC+1RDADDSB-ARSB-IR30001102000001010011100111SB-ALU.RPC-SBDR-SBIR(0)-SBIR(0-7)-SB11ALU.O-AC11AC-ALU.L1微程序控制器设计举例微程序控制器设计举例 下地址部分设计下地址部分设计lNAC字段:字段:2位,位,00:顺序;:顺序;01:操作码跳转;:操作码跳转;10:add寻址方式跳转;寻址方式跳转;11:无条件跳转:无条件跳转lNA字段:需要
17、确定多少位,字段:需要确定多少位,根据什么确定根据什么确定?l存储控制器规格的确定存储控制器规格的确定9条微指令,可以配置条微指令,可以配置16个单元,因此需要个单元,因此需要4位地址码表示位地址码表示16*17微程序控制器设计举例微程序控制器设计举例 控制存储器存储空间分配控制存储器存储空间分配001 01 0 0 0 0 1 0 00 xxxx010 10 0 0 0 0 0 0 00 xxxx 000 00 0 0 0 1 0 0 01 1001000 00 1 0 0 0 0 0 11 0000011 11 0 0 1 0 0 0 00 xxxxSBinSBout0-ACPC+1RDA
18、DD32114ALU.O-AC11AC-ALU.L1NACNA12000 00 0 1 0 0 0 1 11 0000100 01 0 0 0 0 1 0 00 xxxx010 11 0 0 1 0 0 0 00 xxxx000 00 0 1 0 0 0 1 11 0000 xxx xx x x x x x x 10 0110实验微程序控制器实验微程序控制器可编程控制器可编程控制器l组合逻辑控制器和微程序控制器分别在组合逻辑控制器和微程序控制器分别在速度速度以以及及可扩展性可扩展性方面显示出各自的优势,结合两者方面显示出各自的优势,结合两者的优势可以利用的优势可以利用可编程逻辑器件可编程逻辑器
19、件实现控制器:实现控制器:即利用即利用数字系统设计平台设计数字系统设计平台设计控制器(组合逻控制器(组合逻辑控制器或微程序控制器),然后辑控制器或微程序控制器),然后下载下载到可编到可编程器件实现。该方法实现的控制器程器件实现。该方法实现的控制器兼具兼具速度及速度及可扩展性的优势,同时随着可编程器件和设计可扩展性的优势,同时随着可编程器件和设计平台的发展,平台的发展,成本成本方面也不再是该设计方案发方面也不再是该设计方案发展的瓶颈。展的瓶颈。流水线计算机系统流水线计算机系统l指令执行过程分为几个指令执行过程分为几个独立步骤独立步骤。根据指令执行。根据指令执行中各个步骤的顺序不同指令执行方式可以
20、分为:中各个步骤的顺序不同指令执行方式可以分为:顺序、重叠、流水线三种。指令的后两种执行方顺序、重叠、流水线三种。指令的后两种执行方式就是现代流水计算机系统。其中的式就是现代流水计算机系统。其中的CPU通常由通常由几个几个独立部件独立部件组成,分别对应实现指令执行过程组成,分别对应实现指令执行过程中的几个独立步骤。常见的流水线形式有:中的几个独立步骤。常见的流水线形式有:指令指令流水线流水线、算术流水线、处理机流水线。流水线技、算术流水线、处理机流水线。流水线技术可以提高控制器的速度术可以提高控制器的速度,但要解决好以下几个问但要解决好以下几个问题:题:资源相关资源相关(分析与取指中的访主冲突问题);(分析与取指中的访主冲突问题);控制相关控制相关(执行与分析中转移指令带来的问题);(执行与分析中转移指令带来的问题);数相关问题数相关问题(上一条指令执行的结果是下一条指(上一条指令执行的结果是下一条指令的操作数)。令的操作数)。