1硬布线控制的计算机•在CPU中,由“时序控制信号形成部件”产生控制计算机各部分操作所需的控制信号。这个部件的组成有两种方式:微程序控制方式硬布线控制方式2020年6月17日星期三21.硬连线控制器•硬连线(Hard-wired)控制器是早期设计计算机控制器的一种方法–把控制部件看作为产生专门固定时序控制信号的逻辑电路•此逻辑电路以使用最少门电路和取得最高操作速度为设计目标–这种逻辑电路是一种由门电路和触发器构成的复杂逻辑网络–一旦控制部件构成后,除非重新设计和物理上对它重新连线,否则要想增加新的控制功能是不可能的2020年6月17日星期三3•硬连线控制器组成–组合逻辑网络、指令寄存器和指令译码器、时序发生器等–组合逻辑网络产生计算机所需的全部操作命令,是控制器的核心指令译码器指令寄存器时序发生器组合逻辑网络N启动停止时钟复位微操作控制信号执行部件反馈信息CBIRTI2020年6月17日星期三4•组合逻辑网络的输入信号有三个来源⑴来自指令译码器的输出I;⑵来自执行部件的反馈信息B;⑶来自时序发生器的时序信号T•组合逻辑网络的输出信号就是微操作控制信号C–用来对执行部件的操作进行控制•因此,组合逻辑网络输出的微操作控制信号C,就是以上输入信号的逻辑函数),,(TBIfC计算机组成原理6打入脉冲的形成与逻辑DB-IRCPCP-IR指令寄存器打入脉冲与逻辑PC+1CPCP-PC程序寄存器打入脉冲与逻辑ADS#T1ADS#’访问存储器T1周期打入脉冲7CLK2CLK2CLKT1T2CP打入脉冲T1节拍T2节拍机器主频计算机组成原理•显然,硬布线控制器的基本原理,归纳起来可叙述为:某一微操作控制信号C是指令操作码译码器输出Im、时序信号(节拍电位Mi,节拍脉冲Tk)和状态条件信号Bj的逻辑函数,即•C=f(Im,Mi,Tk,Bj)2020年6月17日星期三9•硬连线控制器的设计步骤–首先根据各条指令的功能要求,按照给出的数据通路,编写每条指令的操作流程;–然后根据全部指令的操作流程,并与适当的时序信号相结合,写出每个微操作控制信号的逻辑表达式,并进行化简;–最后按此逻辑表达式,用与门、或门和非门等逻辑门电路及触发器来产生微操作控制信号计算机组成原理计算机组成原理计算机组成原理计算机组成原理•这个控制信号是用门电路、触发器等许多器件采用布尔代数方法来设计实现的。当机器加电工作时,某一操作控制信号C在某条特定指令和状态条件下,在某一序号的特定节拍电位和节拍脉冲时间间隔中起作用,从而激活这条控制信号线,对执行部件实施控制。显然,从指令流程图出发,就可以一个不漏地确定在指令周期中各个时刻必须激活的所有操作控制信号。例如,对引起一次主存读操作的控制信号C3来说,当节拍电位M1=1,取指令时被激活;而节拍电位M4=1,三条指令(LDA,ADD,AND)取操作数时也被激活,此时指令译码器的LDA,ADD,AND输出均为1,因此C3的逻辑表达式可由下式确定:计算机组成原理•一般来说,还要考虑节拍脉冲和状态条件的约束,所以每一控制信号Cn可以由以下形式的布尔代数表达式来确定:•C3=M1+M4(LDA+ADD+AND)•在硬布线控制器中,某一微操作控制信号由布尔代数表达式描述的输出函数产生。设计微操作控制信号的方法和过程是,根据所有机器指令流程图,寻找出产生同一个微操作信号的所有条件,并与适当的节拍电位和节拍脉冲组合,从而写出其布尔代数表达式并进行简化,然后用门电路或门阵列来实现。•为了防止遗漏,设计时可按信号出现在指令流程图中的先后次序来书写,然后进行归纳和简化。要特别注意控制信号是电位有效还是脉冲有效,如果是脉冲有效,必须加入节拍脉冲信号进行相“与”。•计算机组成原理•在用硬布线实现的操作控制器中,通常,时序产生器除了产生节拍脉冲信号外,还应当产生节拍电位信号。这是因为,在一个指令周期中要顺序执行一系列微操作,需要设置若干节拍电位来定时。•与微程序控制相比,硬布线控制的速度较快。其原因是微程序控制中每条微指令都要从控存中读取一次,影响了速度,而硬布线控制主要取决于电路延迟。因此,近年来在某些超高速新型计算机结构中,又选用了硬布线控制器,或与微程序控制器混合使用。计算机组成原理17硬布线逻辑的实现途径•两级门电路的实现(参考chapter2)–PLA(可编程逻辑阵列)–PAL(可编程阵列逻辑)–GAL(通用阵列逻辑)•VLSI直接实现2020年6月17日星期三18门阵列控制器•由大量的与门、或门阵列等电路构成的器件,称为门阵列(GateArray)器件–典型代表产品包括:•可编程逻辑阵列(ProgrammableLogicArray,PLA)、可编程阵列逻辑(ProgrammableArrayLogic,PAL)、通用阵列逻辑(GenericArrayLogic,GAL)等•用门阵列器件设计的操作控制器,称为门阵列控制器–其工作原理与硬连线控制器基本相同–但门阵列控制器用门阵列器件代替硬连线控制器中的组合逻辑网络2020年6月17日星期三19•用门阵列实现微操作信号发生器时,–把操作码、时序信号和状态条件作为门阵列的输入–按一定的“与”、“或”关系编排后,其输出便是微操作控制信号•显然,门阵列控制器也是一种组合逻辑控制器–但是与常规的硬连线控制器不同,它是可编程的,并且不需要把一系列门电路和触发器通过硬连线组织起来2020年6月17日星期三20•门阵列控制器的设计步骤:–首先根据各条指令的功能要求,按照给出的数据通路,编写每条指令的操作流程;–然后根据全部指令的操作流程,并与适当的时序信号相结合,写出每个微操作控制信号的逻辑表达式,并进行化简;–最后按此逻辑表达式,用门阵列器件来产生微操作控制信号2020年6月17日星期三21•组合逻辑控制方法包括硬连线方法与门阵列方法两种•硬连线方法是分立元件时代的产物–采用这种方法的一项重要指标是尽量减少所用的逻辑门数目,以降低成本–但这样造成控制器结构不规整,各种操作控制信号以明显的随机形式散布在整个计算机中,不便于维修,可靠性低,并且造价高•门阵列方法用大规模集成电路来实现上述随机逻辑,从而克服了前者的缺点22硬布线控制器的特点•优点:当机器的指令集中指令条数较少且操作码规整时,译码速度快,硬件逻辑的执行速度快。•缺点:当机器的指令集中指令数量较大时,控制线路复杂;控制器的调试难度增大;自动化生产程度将降低。•典型机器:–早期的CPU–RISC机器2020年6月17日星期三23•微程序控制器是用微程序(Microprogram)实现计算机控制的控制器–具有规整性、灵活性、可维护性等一系列优点–在计算机设计中被广泛采用24Wilkes模型•微程序设计思想,最初是由英国剑桥大学的M.V.Wilkes于1951年提出。核心部分是连接有二极管的一个阵列。2020年6月17日星期三252.基本概念1)微命令2)微指令3)微地址4)微程序2020年6月17日星期三261)微命令•由微程序控制器通过控制线向执行部件发出的微操作控制信号称为微命令(Microorder)•执行部件接受微命令后所进行的操作就是微操作–微操作是计算机中最基本的操作2020年6月17日星期三272)微指令•在一个CPU周期中,实现一定操作功能的一组微命令的集合构成一条微指令(Microinstruction)–微指令存放在控制存储器中2020年6月17日星期三283)微地址•微地址(Microaddress)就是微指令在控制存储器中的地址2020年6月17日星期三294)微程序•一条机器指令的功能用若干条微指令组成的序列——微程序(Microprogram)来实现–微程序是由微指令组成、用以实现指令功能的程序2020年6月17日星期三30•由此可见,–微命令按照一定的要求组合成微指令–微指令按照指令功能的要求组合成微程序–一条机器指令的功能是用一段微程序来实现的•机器指令执行的过程就是微程序执行的过程–微程序的总和便可实现整个指令系统的功能2020年6月17日星期三311.基本思想•微程序控制器的基本思想–将程序设计的思想方法引入控制器的控制逻辑。微程序控制器将原来的组合逻辑变成了存储逻辑,并且可用类似程序设计的方法来设计控制逻辑。2020年6月17日星期三32–将有关微操作控制信号写成微指令–若干微指令组成一个微程序–所有微程序都存放在控制存储器中–当机器运行时,逐条读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应部件执行所规定的操作33控制存储器的组织公共子程序中断处理子程序ADD微程序SUB微程序…...JMP微程序转移至取指或中断入口微指令1微指令2………...2020年6月17日星期三34•微程序控制技术,其实质是用程序设计的思想方法来组织操作控制逻辑–存放微程序的存储器称为控制存储器(ControlMemory,CM,简称控存)–由于微程序是存储在控制存储器之中的,因此,改变控制存储器的内容就可以方便地改变指令特性、增删指令、甚至改变指令系统•这给计算机设计者和用户提供了相当大的灵活性2020年6月17日星期三35•微程序控制技术是利用软件方法来设计硬件的一项技术–能使机器逻辑设计规整,同时提高可靠性、可利用性和可维护性•微程序开发在许多方面类似于软件开发–软件工程中行之有效的一系列开发手段都可应用于微程序的开发上2020年6月17日星期三361)微程序控制器的组成原理•微程序控制器主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成–控制存储器•由只读存储器构成,用于存放微程序–微指令寄存器•用来存放从控制存储器中取得的微指令,包括微命令寄存器和微地址寄存器–微地址转移逻辑•用于产生后继微指令的地址微地址寄存器地址转移逻辑判别测试控制字段OP控制存储器地址译码状态条件微命令信号微命令寄存器指令寄存器IR……2020年6月17日星期三37⑴控制存储器•控制存储器用来存放实现机器指令系统的微程序–一般是高速的只读存储器–通常情况下,在微程序的调试阶段往往采用可读写的存储器,而微程序一旦固化,就采用只读存储器存放,并且在机器运行时只读不写•控制存储器的工作过程–读出一条微指令,执行这条微指令;–接着又读出下一条微指令,执行这一条微指令,……2020年6月17日星期三38•控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量•对控制存储器的要求是速度快,读出周期短•注意:–控制存储器是控制器的一部分,不属于主存储器–控制存储器存放的是微指令,而主存储器存放的则是指令2020年6月17日星期三39⑵微指令寄存器•微指令寄存器用来暂时存放由控制存储器读出的一条微指令信息,包括微命令寄存器和微地址寄存器–微命令寄存器保存微指令中的操作控制字段和判别测试字段的信息–微地址寄存器则保存将要访问的下一条微指令的地址2020年6月17日星期三40⑶地址转移逻辑•微地址寄存器存放微地址信息–微指令从控制存储器读出后,可直接给出下一条微指令的地址•如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出•当微程序出现分支时,意味着微程序出现条件转移–在这种情况下,则通过判别测试字段和执行部件的状态条件来反馈信息,对微地址寄存器的内容进行修改,并按修改好的内容去读取下一条微指令•地址转移逻辑就是承担自动修改微地址的任务的2020年6月17日星期三412)微程序控制器的工作过程•微程序控制器的工作过程–实质上就是在微程序控制器的控制下计算机执行机器指令的过程–可大致描述如下:①从控制存储器中运行取指令微程序,完成从主存储器中取得机器指令的工作②根据机器指令的操作码,得到该机器指令所对应的微程序的入口③逐条取出微指令,完成相关微操作控制④执行下一条机器指令42微程序控制的基本原理•微操作(控制信号)的编码–以加法指令为例:(rs)+((rs1)+disp)=rd•从M中取指=IR,(PC)-AB;(PC)+1=PC;ADS#,W/R#,M/IO#,Read#,DB-IR,