计算机硬件系统组成26992.ppt
计算机硬件系统组成计算机硬件系统组成运运算算器器控控制制器器主存储器主存储器输入设备输入设备输出设备输出设备总总线线和和入入出出接接口口高速缓存高速缓存虚拟存储器虚拟存储器(磁盘设备磁盘设备)第第6章章中央处理部件(中央处理部件(CPU)6.1中央处理其结构中央处理其结构中央中央理器简称理器简称CPUCPU,是用来实现运算和控制功能的部是用来实现运算和控制功能的部件,件,由运算器、由运算器、控制器和寄存器控制器和寄存器 3 3 部分组成。运算器部分组成。运算器用于完成数据的算术和逻辑运算。用于完成数据的算术和逻辑运算。CPUCPU内部的寄存器用来内部的寄存器用来暂存参加运算的操作数和运算结果。控制器通常由指令寄暂存参加运算的操作数和运算结果。控制器通常由指令寄存器、存器、指令译码器和控制电路组成。指令是一组二进制指令译码器和控制电路组成。指令是一组二进制编码信息,主要包括两个内容:编码信息,主要包括两个内容:一是告诉计算机进行什一是告诉计算机进行什么操作;二是指出操作数或操作数地址。么操作;二是指出操作数或操作数地址。控制电路根据控制电路根据指令的要求向微型机各部件发出一系列相应的控制信指令的要求向微型机各部件发出一系列相应的控制信息,息,使它们协调有序地工作。使它们协调有序地工作。第第6章章中央处理部件(中央处理部件(CPU)6.1中央处理其结构中央处理其结构一、结构框图一、结构框图指令部件时序部件条件状态寄存器算逻部件控制信号形成部件ABDBCB二、各部件功能二、各部件功能当用计算机解决某个问题时,我们首先必须为它编写当用计算机解决某个问题时,我们首先必须为它编写程序。程序是一个指令序列,这个序列明确告诉计算机应程序。程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据。一旦该执行什么操作,在什么地方找到用来操作的数据。一旦把程序装入内存储器,就可以由计算机来自动完成取出指把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。专门用来完成此项工作的计算机部令和执行指令的任务。专门用来完成此项工作的计算机部件就是件就是中央处理器(中央处理器(CPU)。CPU对整个计算机系统的运行是极其重要的,它具有对整个计算机系统的运行是极其重要的,它具有如下四方面的基本功能:如下四方面的基本功能:(一)指令控制(一)指令控制程序的顺序控制称为指令控制。由于程序是一个指令程序的顺序控制称为指令控制。由于程序是一个指令序列,这些指令的相互顺序不能任意颠倒,必须严格按程序列,这些指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序进行。序规定的顺序进行。(二)操作控制二)操作控制一条指令的功能往往是由若干个操作信号的组合来一条指令的功能往往是由若干个操作信号的组合来实现的,因此,实现的,因此,CPU管理并产生由内存取出的每条指令的管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。些部件按指令的要求进行动作。(三)时间控制三)时间控制对各种操作实施时间上的定时称为时间控制。在计算对各种操作实施时间上的定时称为时间控制。在计算机中,各种指令的操作信号以及一条指令的整个执行过程机中,各种指令的操作信号以及一条指令的整个执行过程都受到时间的严格定时。都受到时间的严格定时。(四)数据加工四)数据加工数据加工就是对数据进行算术运算和逻辑运算处理。数据加工就是对数据进行算术运算和逻辑运算处理。6.2控制器控制器一、控制器的分类一、控制器的分类微程序的控制器微程序的控制器硬布线的控制器硬布线的控制器计算机的功能是执行程序计算机的功能是执行程序程序是依次排列起来的指令代码程序是依次排列起来的指令代码控制器的功能就在于控制器的功能就在于正确且自动地连续执行指令正确且自动地连续执行指令正确地分步完成每一条指令规定的功能正确地分步完成每一条指令规定的功能再进一步说,再进一步说,就是向计算机各功能部件发出就是向计算机各功能部件发出协调运行每一步所需要的控制信号协调运行每一步所需要的控制信号每条指令的执行步骤每条指令的执行步骤读取指令读取指令指令地址送入主存地址寄存器指令地址送入主存地址寄存器读主存,读出内容送入指定的寄存器读主存,读出内容送入指定的寄存器分析指令分析指令按指令规定内容执行指令按指令规定内容执行指令不同指令的操作步骤数,不同指令的操作步骤数,和具体操作内容差异很大和具体操作内容差异很大检查有无中断请求检查有无中断请求若有,则转中断处理若有,则转中断处理若无,则转入下一条指令的执行过程若无,则转入下一条指令的执行过程形形成成下下一一条条指指令令地地址址6.2控制器控制器二、控制器的功能二、控制器的功能(一)取指令:(一)取指令:(二)分析指令:(二)分析指令:(三)执行指令:(三)执行指令:(四)(四)I/O操作:操作:(五)处理异常:(五)处理异常:三、控制器的组成三、控制器的组成根据对控制器的功能分析,得出控制器的基本组成如根据对控制器的功能分析,得出控制器的基本组成如下:下:(一)程序计数器(一)程序计数器(PC):):为了保证程序能够连续地执行下去,为了保证程序能够连续地执行下去,CPU必须具有某必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为这种作用,所以通常又称为指令计数器指令计数器。在程序开始执行。在程序开始执行前,必须将它的起始地址,即程序的第一条指令所在的内前,必须将它的起始地址,即程序的第一条指令所在的内存单元地址送入存单元地址送入PC,因此因此PC的内容即是从内存提取的第的内容即是从内存提取的第一条指令的地址。当执行指令时,一条指令的地址。当执行指令时,CPU将自动修改将自动修改PC的的内容,以便使其保持的总是将要执行的下一条指令的地址。内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对常只是简单的对PC加加1。但是,当遇到转移指令如但是,当遇到转移指令如JMP指令时,那么后继指令指令时,那么后继指令的地址(即的地址(即PC的内容的内容)必须从指令的地址段取得。在这种必须从指令的地址段取得。在这种情况下,下一条从内存取出的指令将由转移指令来规定,情况下,下一条从内存取出的指令将由转移指令来规定,而不是像通常一样按顺序来取得。因此程序计数器的结构而不是像通常一样按顺序来取得。因此程序计数器的结构应当是具有寄存信息和计数两种功能的结构。应当是具有寄存信息和计数两种功能的结构。(二)地址寄存器(二)地址寄存器(AR):):地址寄存器用来保存当前地址寄存器用来保存当前CPUCPU所访问的内存单元的地所访问的内存单元的地址。由于在内存和址。由于在内存和CPUCPU之间存在着操作速度上的差别,所之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止写操作完成为止 。当当CPUCPU和内存进行信息交换,即和内存进行信息交换,即CPUCPU向内存存向内存存/取数据取数据时,或者时,或者CPUCPU从内存中读出指令时,都要使用地址寄存器从内存中读出指令时,都要使用地址寄存器和数据缓冲寄存器。同样,如果我们把外围设备的设备地和数据缓冲寄存器。同样,如果我们把外围设备的设备地址作为象内存的地址单元那样来看待,那么,当址作为象内存的地址单元那样来看待,那么,当CPUCPU和外和外围设备交换信息时,我们同样使用地址寄存器和数据缓冲围设备交换信息时,我们同样使用地址寄存器和数据缓冲寄存器。寄存器。(三)数据缓冲寄存器(三)数据缓冲寄存器(DR):):数据缓冲寄存器用来暂时存放由内存储器读出的一条数据缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。数据字时,也暂时将它们存放在数据缓冲寄存器中。缓冲寄存器的作用是缓冲寄存器的作用是:(1)作为作为CPU和内存、外部设备之间信息传送的中转站;和内存、外部设备之间信息传送的中转站;(2)补偿补偿CPU和内存、外围设备之间在操作速度上的差别;和内存、外围设备之间在操作速度上的差别;(3)在单累加器结构的运算器中,数据缓冲寄存器还可兼在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。作为操作数寄存器。(四)四)指令寄存器(指令寄存器(IRIR)指令寄存器用来保存当前正在执行的一条指令。当执指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码字段,由传送至指令寄存器。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。码进行测试,以便识别所要求的操作。指令译码器就是指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。出具体操作的特定信号。(五)累加寄存器(五)累加寄存器(AC):):累加寄存器累加寄存器AC通常简称为累加器,它是一个通用寄通常简称为累加器,它是一个通用寄存器。其功能是:当运算器的算术逻辑单元(存器。其功能是:当运算器的算术逻辑单元(ALU)执行执行算术或逻辑运算时,为算术或逻辑运算时,为ALU提供一个工作区。累加寄存器提供一个工作区。累加寄存器暂时存放暂时存放ALU运算的结果信息。显然,运算器中至少要有运算的结果信息。显然,运算器中至少要有一个累加寄存器。一个累加寄存器。目前目前CPU中的累加寄存器,多达中的累加寄存器,多达16个,个,32个,甚至更个,甚至更多。当使用多个累加器时,就变成通用寄存器堆结构,其多。当使用多个累加器时,就变成通用寄存器堆结构,其中任何一个可存放源操作数,也可存放结果操作数。在这中任何一个可存放源操作数,也可存放结果操作数。在这种情况下,需要在指令格式中对寄存器号加以编址。种情况下,需要在指令格式中对寄存器号加以编址。(六)状态条件寄存器(六)状态条件寄存器(PSW):):状态条件寄存器保存由算术指令和逻辑指令运行或测状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进位标志试的结果建立的各种条件码内容,如运算结果进位标志(C),运算结果溢出标志运算结果溢出标志(V),运算结果为零标运算结果为零标志志(Z),运运算结果为负标志算结果为负标志(N)等等。这些标志位通常分别由等等。这些标志位通常分别由1位触位触发器保存。发器保存。除此之外,状态条件寄存器还保存中断和系统工作状除此之外,状态条件寄存器还保存中断和系统工作状态等信息,以便使态等信息,以便使CPU和系统能及时了解机器运行状态和和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器。条件标志拼凑而成的寄存器。(七)脉冲源及启停线路:七)脉冲源及启停线路:脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲,是机器周期和工作脉冲的基准信号,在机器刚加电脉冲,是机器周期和工作脉冲的基准信号,在机器刚加电时,还应产生一个总清信号(时,还应产生一个总清信号(reset)。)。启停线路保证可靠启停线路保证可靠地送出封锁时钟脉冲,控制时序信号的发生或停止,从而地送出封锁时钟脉冲,控制时序信号的发生或停止,从而起动机器工作或使之停机。起动机器工作或使之停机。(八)时钟控制信号形成部件八)时钟控制信号形成部件 当机器启动后,在当机器启动后,在CLKCLK时钟作用下,根据当前正在执时钟作用下,根据当前正在执行的指令的需要,产生相应的时序控制信号,并根据被控行的指令的需要,产生相应的时序控制信号,并根据被控制功能部件的反馈信号调整时序控制信号。制功能部件的反馈信号调整时序控制信号。时序控制时序控制信号信号形成部件形成部件译码译码IRPC输出输出设备设备输入输入设备设备主主存存运算器运算器部件部件时时序序启停启停地地址址寄寄存存器器数据总线数据总线地址总线地址总线控制总线控制总线.控制条件控制条件控制器信号控制器信号主振主振硬布线硬布线方案的方案的控制器控制器控制控制存储器存储器映射映射IRPC输出输出设备设备输入输入设备设备主主存存运算器运算器部件部件下下地地址址启停启停地地址址寄寄存存器器数据总线数据总线地址总线地址总线控制总线控制总线.控制条件控制条件微指令寄存器微指令寄存器主振主振微程序微程序方案的方案的控制器控制器四、组成控制器的基本电路四、组成控制器的基本电路(一)具有记忆功能的触发器以及由它组成的寄存器、计(一)具有记忆功能的触发器以及由它组成的寄存器、计数器和存储单元。其特点是当输入信号消失后,源信号仍数器和存储单元。其特点是当输入信号消失后,源信号仍保留其中。保留其中。(二)没有记忆功能的门电路及由它组成的加法器、算术(二)没有记忆功能的门电路及由它组成的加法器、算术逻辑运算单元(逻辑运算单元(ALU)和各种逻辑电路等。其特点是当输和各种逻辑电路等。其特点是当输入信号改变后,输出跟着改变。入信号改变后,输出跟着改变。五、指令执行过程五、指令执行过程(一)基本概念(一)基本概念1.指令周期:指令周期:CPU从内存取出一条指令并执行这条指令的从内存取出一条指令并执行这条指令的时间总和。时间总和。2.CPU周期:又称机器周期,周期:又称机器周期,CPU访问一次内存所花的访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定时间较长,因此用从内存读取一条指令字的最短时间来定义。义。3.时钟周期:通常称为节拍脉冲或时钟周期:通常称为节拍脉冲或T周期。一个周期。一个CPU周期周期包含若干个时钟周期。包含若干个时钟周期。下图示出了采用定长下图示出了采用定长CPU周期的指令周期示意图。周期的指令周期示意图。(二)(二)CLA命令命令CLA是一条非访内指令,它需要两个是一条非访内指令,它需要两个CPU周期,其周期,其中取指令阶段需要一个中取指令阶段需要一个CPU周期,执行指令阶段需要一个周期,执行指令阶段需要一个CPU周期。周期。1取指令阶段取指令阶段(1)程序计数器程序计数器PC的内容的内容20(假设假设)被装入地址寄存器被装入地址寄存器AR;(2)程序计数器内容加程序计数器内容加1,变成,变成21,为取下一条指令做好准,为取下一条指令做好准备;备;(3)地址寄存器的内容被放到地址总线上;地址寄存器的内容被放到地址总线上;(4)所选存储器单元所选存储器单元20的内容经过数据总线,传送到数据的内容经过数据总线,传送到数据缓冲寄存器缓冲寄存器DR;(5)缓冲寄存器的内容传送到指令寄存器缓冲寄存器的内容传送到指令寄存器IR;(6)指令寄存器中的操作码被译码或测试;指令寄存器中的操作码被译码或测试;(7)CPU识别出是指令识别出是指令CLA,至此,取指令阶段即告结束。至此,取指令阶段即告结束。2执行指令阶段执行指令阶段(1)操作控制器送一控制信号给算术逻辑运算单元操作控制器送一控制信号给算术逻辑运算单元ALU;(2)ALU响应该控制信号,将累加寄存器响应该控制信号,将累加寄存器AC的内容全部清的内容全部清零,从而执行了零,从而执行了CLA指令。指令。(三)(三)ADD30命令命令ADD指令的指令周期由三个指令的指令周期由三个CPU周期组成。周期组成。1.取指令阶段取指令阶段取指令阶段与取指令阶段与CLA基本相同;基本相同;2.送操作数地址送操作数地址第二个第二个CPU周期主要完成送操作数地址。在此阶段,周期主要完成送操作数地址。在此阶段,CPU的动作只有一个,那就是把指令寄存器中的地址码部的动作只有一个,那就是把指令寄存器中的地址码部分分(30)装入地址寄存器,其中装入地址寄存器,其中30为内存中存放操作数的地为内存中存放操作数的地址。址。3.两操作数相加两操作数相加第三个第三个CPU周期主要完成取操作数并执行加法操作中。周期主要完成取操作数并执行加法操作中。在此阶段,在此阶段,CPU完成如下动作:完成如下动作:(1)把地址寄存器中的操作数的地址把地址寄存器中的操作数的地址(30)发送到地址总线发送到地址总线(2)由存储器单元由存储器单元30中读出操作数中读出操作数(6),并经过数据总线传,并经过数据总线传送到缓冲寄存器。送到缓冲寄存器。(3)执行加操作:由数据缓冲寄存器来的操作数执行加操作:由数据缓冲寄存器来的操作数(6)可送往可送往ALU的一个输入端,已等候在累加器内的另的一个输入端,已等候在累加器内的另一个操作数一个操作数(因为因为CLA指令执行结束后累加器内容为零指令执行结束后累加器内容为零)送往送往ALU的的另一输入端,于是另一输入端,于是ALU将两数相加,产生运算结果为将两数相加,产生运算结果为0+66。这个结果放回累加器,替换了累加器中原先的数。这个结果放回累加器,替换了累加器中原先的数0。(四)(四)STA40指令指令1.取指令阶段取指令阶段取指令阶段与取指令阶段与CLA基本相同;基本相同;2.送操作数地址送操作数地址在第二个在第二个CPU周期中,周期中,CPU完成的动作是把指令寄存完成的动作是把指令寄存器中地址码部分的形式地址器中地址码部分的形式地址40装到地址寄存器。其中数字装到地址寄存器。其中数字40是操作数地址。是操作数地址。3.存储和数存储和数执行阶段的第二个执行阶段的第二个CPU周期中,累加寄存器的内容传送到周期中,累加寄存器的内容传送到缓冲寄存器,然后再存入到所选定的存储单元缓冲寄存器,然后再存入到所选定的存储单元(40)中。中。CPU完成如下动作:完成如下动作:(1)累加器的内容累加器的内容(6)被传送到数据缓冲寄存器被传送到数据缓冲寄存器DR;(2)把地址寄存器的内容把地址寄存器的内容(40)发送到地址总线上,发送到地址总线上,40即为即为将要存入的数据将要存入的数据6的内存单元号;的内存单元号;(3)把缓冲寄存器的内容把缓冲寄存器的内容(6)发送到数据总线上;发送到数据总线上;(4)数据总线上的数写入到所选中的存储器单元中,即将数据总线上的数写入到所选中的存储器单元中,即将数数6写入到存储器写入到存储器40号单元中。号单元中。注意:注意:在这个操作之后,累加器中仍然保留和数在这个操作之后,累加器中仍然保留和数6,而存,而存储器储器40号单元中原先的内容被冲掉号单元中原先的内容被冲掉。(五)(五)NOP指令指令这是一条空操作指令。其中第一个这是一条空操作指令。其中第一个CPU周期中取指周期中取指令,令,CPU把把23号单元的号单元的“NOP”指令取出放到指令寄存器,指令取出放到指令寄存器,第二个第二个CPU周期中执行该指令。因译码器译出是周期中执行该指令。因译码器译出是“NOP”指令,第二个指令,第二个CPU周期中操作控制器不发出任何控制信号。周期中操作控制器不发出任何控制信号。NOP指令可用来调机之用。指令可用来调机之用。(六)(六)JMP21指令指令JMP指令的指令周期由两个指令的指令周期由两个CPU周期组成。周期组成。1.第一个第一个CPU周期(取指令阶段)周期(取指令阶段)CPU把把24号单元的号单元的“JMP21”指令取出放至指令寄存指令取出放至指令寄存器,器,同时程序计数器内容加同时程序计数器内容加1,变为,变为25,从而取下一条指,从而取下一条指令做好准备。令做好准备。2.第二个第二个CPU周期(执行阶段)周期(执行阶段)CPU把指令寄存器中地址码部分把指令寄存器中地址码部分21送到程序计数器,送到程序计数器,从而用新内容从而用新内容21代替代替PC原先的内容原先的内容25。这样,下一条指。这样,下一条指令将不从令将不从25单元读出,而是从内存单元读出,而是从内存21单元开始读出并执行,单元开始读出并执行,从而改变了程序原先的执行顺序。从而改变了程序原先的执行顺序。注意:注意:执行执行“JMP21”指令时,我们此处所给的四条指令指令时,我们此处所给的四条指令组成的程序进入了死循环,除非人为停机,否则这个程序组成的程序进入了死循环,除非人为停机,否则这个程序将无休止地运行下去。将无休止地运行下去。6.3微程序控制器微程序控制器一、基本概念一、基本概念微程序控制器:所有控制信号皆由微程序及相关电路产生。微程序控制器:所有控制信号皆由微程序及相关电路产生。微操作:计算机最小且不可分解的操作。微操作:计算机最小且不可分解的操作。微操作控制信号:控制微操作的信号。微操作控制信号:控制微操作的信号。微指令:若干个微命令的集合。微指令:若干个微命令的集合。微命令:产生微操作控制信号的命令。微命令:产生微操作控制信号的命令。微程序:完成一条机器指令所需全部微指令的有序集合。微程序:完成一条机器指令所需全部微指令的有序集合。微控制存储器:用来存放微程序的存储器。微控制存储器:用来存放微程序的存储器。二、微程序控制器的工作过程二、微程序控制器的工作过程(一)结构(一)结构1.结构框图结构框图它主要由它主要由控制存储器、微指令寄存器控制存储器、微指令寄存器和和地址转移逻辑地址转移逻辑三大部分组成。三大部分组成。1.控制存储器控制存储器控制存储器用来存放实现全部指令系统的微程序,它控制存储器用来存放实现全部指令系统的微程序,它是一种只读存储器。一旦微程序固化,机器运行时则只读是一种只读存储器。一旦微程序固化,机器运行时则只读不写。其工作过程是:每读出一条微指令,则执行这条微不写。其工作过程是:每读出一条微指令,则执行这条微指令;接着又读出下一条微指令,又执行这一条微指令指令;接着又读出下一条微指令,又执行这一条微指令。读出一条微指令并执。读出一条微指令并执行微指令的时间总和称为一行微指令的时间总和称为一个微指令周期。通常,在串行方式的微程序控制器中,微个微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是只读存储器的工作周期。控制存储器的字长指令周期就是只读存储器的工作周期。控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。对控制存储器的要求是速度快,即取决于微程序的数量。对控制存储器的要求是速度快,读出周期要短。读出周期要短。2.微指令寄存器微指令寄存器微指令寄存器用来存放由控制存储器读出的一条微指微指令寄存器用来存放由控制存储器读出的一条微指令信息。其中微地址寄存器决定将要访问的下一条微指令令信息。其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。段和判别测试字段的信息。3.地址转移逻辑地址转移逻辑 在一般情况下,微指令由控制存储器读出后直接给出在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称下一条微指令的地址,通常我们简称微地址微地址,这个微地址,这个微地址信息就存放在微地址寄存器中。如果微程序不出现分支,信息就存放在微地址寄存器中。如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。当那么下一条微指令的地址就直接由微地址寄存器给出。当微程序出现分支时,意味着微程序出现条件转移。在这种微程序出现分支时,意味着微程序出现条件转移。在这种情况下,通过判别测试字段情况下,通过判别测试字段P和执行部件的和执行部件的“状态条件状态条件”反馈信息,去修改微地址寄存器的内容,并按改好的内容反馈信息,去修改微地址寄存器的内容,并按改好的内容去读下一条微指令。地址转移逻辑就承担自动完成修改微去读下一条微指令。地址转移逻辑就承担自动完成修改微地址的任务。地址的任务。(二)工作过程(二)工作过程以执行一条加法指令为例,它由四条微指令解释执行,以执行一条加法指令为例,它由四条微指令解释执行,一条微指令中的所有控制信号是同时发出的。每条微指令一条微指令中的所有控制信号是同时发出的。每条微指令所需的控制信号如下:所需的控制信号如下:1.取指微指令取指微指令指令地址送地址总线;指令地址送地址总线;发访存控制命令,从存储器取指令送数据总线;发访存控制命令,从存储器取指令送数据总线;指令送指令寄存器;指令送指令寄存器;程序计数器程序计数器+1。2.计算地址微指令计算地址微指令取两个源操作数(计算地址用);取两个源操作数(计算地址用);加法运算;加法运算;有效地址送地址寄存器;有效地址送地址寄存器;3.取数微指令取数微指令数据地址送地址总线;数据地址送地址总线;发访存控制命令,从存储器将数据送数据总线;发访存控制命令,从存储器将数据送数据总线;数据送数据寄存器;数据送数据寄存器;4.加法运算和送结果微指令加法运算和送结果微指令两操作输送两操作输送ALU;加法运算;加法运算;运算结果送通用寄存器。运算结果送通用寄存器。(三)微指令的组成形式(三)微指令的组成形式微指令最简单的组成形式是将控制信号用一个控制位微指令最简单的组成形式是将控制信号用一个控制位来表示,当该位为来表示,当该位为“1”时,定义为有控制信号,当该位时,定义为有控制信号,当该位为为“0”时,没有控制信号。如控制存储器容量位时,没有控制信号。如控制存储器容量位4K时,时,则总共有则总共有23个控制信号,其余个控制信号,其余12位来表示下址。位来表示下址。如书如书176页页实际的计算机的控制信号数量要大的多,而且控制存储器实际的计算机的控制信号数量要大的多,而且控制存储器容量一般大于容量一般大于4K字,因此微指令字的长度通常在字,因此微指令字的长度通常在100位以位以上。控制存储器的容量取决于实现指令系统所需的微程序上。控制存储器的容量取决于实现指令系统所需的微程序的长度。的长度。(四)(四)CPU周期与微指令周期的关系周期与微指令周期的关系在串行方式的微程序控制器中在串行方式的微程序控制器中:微指令周期微指令周期=读出微指令的时间读出微指令的时间+执行该条微指令的时间执行该条微指令的时间下图示出了某小型机中下图示出了某小型机中CPU周期与微指令周期的时间关系:周期与微指令周期的时间关系:一个一个CPU周期为周期为0.8s,它包含四个等间隔的节拍脉它包含四个等间隔的节拍脉冲冲T1T4,每个脉冲宽度为每个脉冲宽度为200ns。用用T4作为读取微指令作为读取微指令的时间,用的时间,用T1+T2+T3时间作为执行微指令的时间。例如,时间作为执行微指令的时间。例如,在前在前600ns时间内运算器进行运算,在时间内运算器进行运算,在600ns时间的末尾运时间的末尾运算器已经运算完毕,可用算器已经运算完毕,可用T4上升沿将运算结果打入某个寄上升沿将运算结果打入某个寄存器。与此同时可用存器。与此同时可用T4间隔读取下条微指令,经间隔读取下条微指令,经200ns时时间延迟,下条微指令又从只读存储器读出,并用间延迟,下条微指令又从只读存储器读出,并用T1上升沿上升沿打入到微指令寄存器。如忽略触发器的翻转延迟,那么下打入到微指令寄存器。如忽略触发器的翻转延迟,那么下条微指令的微命令信号就从条微指令的微命令信号就从T1上升沿起就开始有效,直到上升沿起就开始有效,直到下一条微指令读出后打入微指令寄存器为止。因此一条微下一条微指令读出后打入微指令寄存器为止。因此一条微指令的保持时间恰好是指令的保持时间恰好是0.8s,也就是一个也就是一个CPU周期的时周期的时间。间。(五)机器指令与微指令的关系(五)机器指令与微指令的关系 一条机器指令对应一个微程序,这个微程序是由若干一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。简言之,一条机器指令干条微指令组成的序列来实现的。简言之,一条机器指令所完成的所完成的操作划分成若干条微指令来完成,由微指令进操作划分成若干条微指令来完成,由微指令进行解释和执行。行解释和执行。从指令与微指令,程序与微程序,地址与微地址的一从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存储器有关,后者与控制存储一对应关系来看,前者与内存储器有关,后者与控制存储器有关。器有关。我们在前面曾讲述了指令与机器周期概念,并归纳了我们在前面曾讲述了指令与机器周期概念,并归纳了五条典型指令的指令周期,并演示了这五条指令的微程序五条典型指令的指令周期,并演示了这五条指令的微程序流程图,每一个流程图,每一个CPU周期就对应一条微指令。这就告诉我周期就对应一条微指令。这就告诉我们如何设计微程序,也将使我们进一步体验到机器指令与们如何设计微程序,也将使我们进一步体验到机器指令与微指令的关系。微指令的关系。微程序的控制器运行原理微程序的控制器运行原理每条指令一个执行步骤用到的全体控制信号组成一每条指令一个执行步骤用到的全体控制信号组成一微指令微指令每条指令可以包括一到多个每条指令可以包括一到多个微操作微操作用多条用多条微指令微指令解释每条指令的整个执行过程解释每条指令的整个执行过程全部微指令的集合全部微指令的集合叫做叫做微程序微程序执行一条微指令所用的时间被称为一个执行一条微指令所用的时间被称为一个微周期。微周期。微指令的格式和内容:微指令的格式和内容:下地址字段下地址字段控制命令字段控制命令字段执行第执行第I条微指令条微指令形成第形成第I+1条微指令地址条微指令地址读第读第I+1条微指令条微指令读与执行微指令的读与执行微指令的并行流水技术并行流水技术加法指令加法指令ADDR1,R2读取指令读取指令1ARPC2读主读主存,存,IR读出内容读出内容PCPC+13由操作码找微地址,读控存由操作码找微地址,读控存执行指令执行指令4ALUR1ALUR2执行执行+R1ALU结束,判中断结束,判中断形形成成下下条条指指令令地地址址寄存器内容传送指令寄存器内容传送指令MOVR9,R1读取指令读取指令1ARPC2读主存,读主存,IR读出内容读出内容PCPC+13由操作码找微地址,读控存由操作码找微地址,读控存执行指令执行指令4ALU0ALUR1执行执行+R9ALU结束,判中断结束,判中断形形成成下下条条指指令令地地址址写寄存器内容到主存写寄存器内容到主存MOV807,R9读取指令读取指令1ARPC2读主存,读主存,IR读出内容读出内容PCPC+13由操作码找微地址,读控存由操作码找微地址,读控存执行指令执行指令4ARPC,PCPC+15读主存,读主存,AR读出内容读出内容6写主存写主存,总线总线ALU,ALU0,ALU R9,+形形成成下下条条指指令令地地址址(地址(地址807存在指令的第二个字中)存在指令的第二个字中)判中断判中断(注)(注)输入指令输入指令IN80读取指令读取指令1ARPC2读主存读主存,IR读出内容读出内容PCPC+13由操作码找微地址,读控存由操作码找微地址,读控存执行指令执行指令4ARI/oport(IR低字节)低字节)5读外设,读外设,ALU读出内容读出内容+,ALU0R0ALU结束,判中断结束,判中断形形成成下下条条指指令令地地址址相对转移指令相对转移指令JRc,offset读取指令读取指令1IP,ARPC2读主存,读主存,IR读出内容读出内容PCPC+13由操作码找微地址,读控存由操作码找微地址,读控存执行指令执行指令4若若c=1则:则:ALUIPALUoffset(IR低字节)低字节)+,PCALU否则,顺序执行否则,顺序执行结束,判中断结束,判中断形形成成下下条条指指令令地地址址子程序返回指令子程序返回指令RET读取指令读取指令1ARPC2读主存,读主存,IR读出内容读出内容PCPC+1 3由操作码找微地址,读控存由操作码找微地址,读控存 执行指令执行指令4ARSPSPSP+15读主存读主存,PC读出内容读出内容结束,判中断结束,判中断形形成成下下条条指指令令地地址址设某计算机运算器框图如图设某计算机运算器框图如图(a)所示,其中所示,其中ALU为为16位的加法器位的加法器(高电平工作高电平工作),SA,SB为为16位暂存器。位暂存器。4个通个通用寄存器由用寄存器由D触发器组成,触发器组成,Q端输出:端输出:其读、写控制功能见下表:其读、写控制功能见下表:机器采用串行微程序控制方式,其微指令周期见图机器采用串行微程序控制方式,其微指令周期见图(b)。其中读其中读ROM是从控存中读出一条微指令时间,为是从控存中读出一条微指令时间,为1s;ALU工作是加法器做加法运算,为工作是加法器做加法运算,为500ns;m1是读是读寄存器时间,为寄存器时间,为500ns;m2是写寄存器的工作脉冲宽度,是写寄存器的工作脉冲宽度,为为100ns。微指令字长微指令字长12位,微指令格式如下:位,微指令格式如下:RA0RA1:读读R0-R3的选择控制的选择控制WA0WA1:写写R0-R3的选择控制的选择控制R:寄存器读命令寄存器读命令W:寄存器写命令寄存器写命令LDSA:打入打入SA的控制信号的控制信号LDSB:打入打入SB的控制信号的控制信号SB-ALU:传送传送SB的控制信号的控制信号SB-ALU:传送传送SB的控制信号的控制信号,并使加法器最低位加并使加法器最低位加1.Reset:清暂存器清暂存器SB为零的信号为零的信号:一段微程序结束,转入取机器指令的控制信号:一段微程序结束,转入取机器指令的控制信号要求:用二进制代码写出如下指令的微程序:要求:用二进制代码写出如下指令的微程序:(1)“ADDR0,R1”指令,即指令,即(R0)+(R1)R1(2)“SUBR2,R3”指令,即指令,即(R3)-(R2)R3(3)“MOVR2,R3”指令,即指令,即(R2)(R3)先画出三条指令的微指令的微程序流程图,如下图所示。先画出三条指令的微指令的微程序流程图,如下图所示。其中未考虑其中未考虑“取指周期取指周期”和顺序控制问题,也即微和顺序控制问题,也即微程序仅考虑程序仅考虑“执行周期执行周期”,每一框表示一条微指令。每一框表示一条微指令。根据给定的微指令周期根据给定的微指令周期时间关系,完成时间关系,完成ADD,SUB指令的执行动作需要指令的执行动作需要3条微条微指令,指令,MOV指令只需指令只需2条微条微指令。用二进制代码写出的指令。用二进制代码写出的三条指令的微程序列于下表三条指令的微程序列于下表中,其中中,其中*表示代码随意设表示代码随意设置置(0或或1均可均可)。