【文档说明】计算机组成原理中央处理器CPU85课件.ppt,共(78)页,783.601 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-76282.html
以下为本文档部分文字说明:
1第六章中央处理器中央处理器,简称CPU,是整个计算机的核心,它包括运算器和控制器。CPU的主要功能是执行指令,控制并完成各种操作,包括运算操作、传送操作、输入输出操作等。为了实现这些功能,需要解决4个关键问题。CPU由哪些部件组成?各部件之间如何交换信
息?CPU如何建立与外部的连接?CPU如何形成微命令序列来控制指令的执行?2本章主要内容主要内容中央处理器的功能和组成控制器的组成和实现方法指令周期、时序系统与控制方式微程序控制原理操作控制单元的设计流水线技术3一、
中央处理器的功能当我们用计算机解决某个问题时,首先要为计算机编写程序。程序是一个指令序列,这个指令序列就是要明确告诉计算机应该执行什么操作、数据从哪里来、结果送到哪里去。之后,一旦把程序装入主存,就可以由计算机自动地完成取出指
令和执行指令的任务。在程序运行过程中,在计算机的各部件之间传送着指令和数据,形成了指令流和数据流。数据是在传送过程中得到加工和处理的。CPU的基本功能就是对指令流和数据流在时间与空间上实施正确的控制。4CPU具备以下功能C
PU具备以下四个方面的功能:指令控制:保证机器按顺序执行程序是CPU的首要任务。操作控制:CPU根据指令的要求,产生需要的操作信号。时间控制:对各种操作信号进行定时,即进行时间控制。数据加工:对数据进行算术运算和逻辑运算。完成数据的加工处理,是CPU的核心任务。52、CPU的基本组成CP
U由运算器和控制器组成6运算器的组成与主要功能运算器的组成:算术逻辑单元(ALU)累加寄存器状态标志寄存器数据缓冲寄存器运算器的功能(前面已经介绍过):执行所有的算术运算执行所有的逻辑运算通常算术运算产生一个结果,而逻辑运算产生一个判断。运算器是进行数据加工处理的
部件,全部操作由控制器发出的控制信号来指挥,所以它是执行部件。7控制器的组成与主要功能控制器的组成:指令部件程序计数器指令寄存器指令译码器时序部件脉冲源节拍信号发生器启停控制逻辑微操作信号发生器中断控制逻辑控制器的主要功能:从内存中取出一条指令,并指出下一条指令在内存中的
位置对指令的操作码进行译码,并产生相应的操作控制信号。比如,一次内存读写操作,或一个算术逻辑运算操作等。指挥并控制CPU、内存以及输入输出设备之间的数据流动方向。83、CPU中的主要寄存器CPU中的寄存器用来暂时存放运算过程的中间结果、最终结果以及状态信息。各种计算机CP
U可能不同,但CPU中至少要有六类寄存器必不可少:数据缓冲寄存器指令寄存器程序计数器地址寄存器累加寄存器状态标志寄存器。9CPU中的主要寄存器(续)数据缓冲寄存器(MDR):用来暂存由内存读出或写入内存的指令和数据,是CPU和内存、外部设备信息传送的中转站。指令寄存器(IR):用来
存放当前正在执行的一条指令。在指令执行期间,指令寄存器的内容不允许发生变化。程序计数器(PC):用来存放将要执行的下一条指令的地址。地址寄存器(MAR):地址寄存器用来保存CPU当前所访问的内存单元
的地址。只要CPU和内存交换信息,都要用到地址寄存器和数据缓冲寄存器。累加寄存器(AC):执行算术逻辑操作时,为ALU提供操作数及存放运算结果。状态标志寄存器(PSW):用来存放由指令执行结果所建立的状态以及机器自身的运行状态,第一类为状态标志,第二类为控制标志。104、控制器的核心部件微
操作信号发生器:控制器的核心部件,其功能是根据指令操作码、状态信息和时序信号,产生各种微操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的任务。根据产生微操作控制信号的不同方式,控制器分为组合逻辑型、存储逻辑型以及组合
逻辑与存储逻辑结合型三种。采用组合逻辑实现的控制器称为组合逻辑控制器,采用存储逻辑实现的控制器称为微程序控制器。时序部件:脉冲源、节拍信号发生器和启停控制逻辑构成。微操作控制信号有严格的时间要求,绝不能出现任何差错。时序部件的作用是对各种操作实施时间上的控制。115、
CPU内部的数据通路CPU内部各部件之间需要传送信息,例如操作数由寄存器送到ALU进行运算,ALU将运算结果送入寄存器存放,等等。把CPU内部各部件之间传送数据的通路称为数据通路。通常,用总线连接CPU内
部各部件。有三种内部总线结构,即单总线结构、双总线结构和三总线结构,我们曾在四章关于运算器的组织中介绍过。12二、指令周期指令和数据都放在内存里。从形式上看,它们都是二进制代码,CPU是怎么准确地判别出是指令还是数据的?这要从指令周期说起。131、指令周期的基本概念CPU取指令—
执行指令的序列:指令周期是取出并执行完一条指令的时间。因为各种指令的操作功能不同,所以指令周期也不完全相同。指令周期通常用若干个CPU周期来表示,CPU周期也叫机器周期。一个CPU周期在时间上等于主存的一个存取周期。例如,从主存取出一条指令就需要一个CPU周期。以下通过一个简单程序的执行过
程来说明指令周期的概念。142、举例,一个简单程序八进制地址八进制内容助记符备注020021022023024..030031..040250000030030020040000000140021..000006000040..存和数单元CLAADD30STA40NO
PJMP21..累加器清零AC相加30单元把AC内容存40单元空操作跳转,地址2115①CLA指令的指令周期CLA指令完成累加器清零功能,是一条非访存指令,需要两个CPU周期,其中取指令阶段需要一个CPU周期,执行指令阶段需要一个CPU周期。16CPU完成三件事:①从内
存中取出指令②对程序计数器PC+1③对指令操作码进行译码CPU做6个动作:①PCMAR②PC+1PC③MARABUS④M(MAR)MDR⑤MDRIR⑥OP(IR)IDCPU已知道什么操作第一个CPU周期:取指令阶段17第二
个CPU周期,执行指令阶段CPU完成一件事:执行累加器清零操作。CPU做2个动作:微操作信号发生器送一控制信号(C)给算术逻辑单元ALU。Cout。ALU响应控制信号,将累加寄存器AC的内容全部清零,从而执行了CLA指令。0AC。CPU已完成指令操作18②ADD指令的指令周期第二条指
令是“ADD30”指令,这是一条通过访问内存取数并执行加法的指令。ADD指令的指令周期由三个CPU周期组成。第一个CPU周期为取指令阶段,与CLA指令相同,不再讨论。假设在取指结束后,ADD指令已被存放在指令寄存器中、而且被正确译码。19
第二个CPU周期,送操作数地址CPU完成一件事:送操作数地址到地址寄存器MAR。CPU做1个动作:把指令寄存器中地址码部分(30)装入地址寄存器MAR,执行:IRMAR操作.20第三个CPU周期,取操作数、两数相加CPU完成两件事:①取操作数②加法操作。CPU做4个动作:①MARABUS②
DBUSMDR③MDRALU④add,ALUACCPU完成指令操作21③STA指令的指令周期程序的第三条指令是“STA40”,这是一条访问内存的存数指令。STA指令由三个CPU周期组成。第一个CPU周期为取指令阶段,它与CLA、ADD指令相同。第二个CPU周期把指令
寄存器中地址码部分的形式地址40装到地址寄存器,过程跟ADD指令送操作数地址完全一样。我们讨论第三个CPU周期。22第三个CPU周期,数据写入内存CPU完成两件事:①累加器内容传送到数据缓冲寄存器中;②把该数据存入所选定的内存单元(40)中。CPU做4个动作:①ACMDR②MARAB
US③MDRDBUS④writeCPU完成指令操作23④NOP指令和JMP指令的指令周期程序现在已经进行到第四条指令“NOP”指令,这是一条空操作指令。这里不再给出指令周期图,其中第一个CPU周期中取指令,CPU把23号单元的“NOP”指令取出放到指令寄存器,第二个CPU周期中执行该指令。因
译码器译出是“NOP”指令,在第二个CPU周期中微操作信号发生器不发出任何控制信号。程序进行到第五条指令,即“JMP21”指令,这是一条程序控制指令。其含义是改变程序的执行顺序,无条件地转移到地址21执行指令。JMP指令周期由两
个CPU周期组成。我们从第二个CPU周期讨论。24第二个CPU周期,送转移地址CPU完成一件事:把指令寄存器中的地址码部分21送到程序计数器,用新的内容21取代PC中原先的内容25。CPU做1个动作:IRPCCPU完成指令操作253、用方框图来表示指令周期
一个方框代表一个CPU周期,菱形符号通常用来表示某种判别或测试,时间上依附于与它相邻的前面一个方框的CPU周期,不单独占用时间。“~”表示公操作,如指令执行结束后,CPU对外设中断请求的处理等。不单独占CPU周期26三、时序部件与控制方
式在日常生活中,我们学习、工作和休息遵循作息时间,以维持正常的秩序。在计算机系统中也有一个类似“作息时间”的东西,它叫时序部件。由于计算机高速地进行工作,每一个动作的时间是非常严格的,不能有任何差错。时序系统是控制器的
心脏,其功能是为指令的执行提供各种定时信号。271、时序信号的作用和体制我们曾经问过,CPU是怎么识别数据和指令的?结论如下:从时间上来说,取指令事件发生在指令周期的第一个CPU周期,即发生在“取指令”阶段,而取数据事件发生在指令周期的后面几个C
PU周期,即发生在“执行指令”阶段。从空间上来说,如果取出的代码是指令,那么一定送往指令寄存器,如果取出的代码是数据,那么一定送往运算器。从地址的来源讲,指令地址来源于程序计数器,而数据地址来源于地址形成部件。时序信号的作用就是用来划分时段,对各
种操作信号严格定时,使多个控制信号在时间上相互配合,从而完成某一特定功能.28三级时序体制(系统)一个指令周期分为若干机器周期(CPU周期);一个机器周期再划分为若干相等的时间段,每个时间段用一个电位信号来表示,称为节拍电位;在节拍中
执行的微操作,需要同步定时脉冲来配合,称为工作脉冲。节拍电位工作脉冲节拍脉冲机器周期CPU周期292、时序部件下图是组合逻辑控制器的时序部件结构图,由时钟源、启停控制逻辑、CPU周期信号发生器、节拍电位信号发生器、节拍脉冲(工作脉冲)发生器等部分组成。时钟源用来
为整个机器提供频率稳定的方波时钟脉冲信号,通常由石英晶体振荡器和与非门组成的正反馈电路组成。30节拍脉冲信号发生器触发器C1C0构成两位循环移位寄存器。开始时由清零信号CLR将C1C0清为00,然后在Clock上升沿和下降沿的作用下规律性地变化:00011110,译码后输出节
拍脉冲P0、P1、P2、P3。31节拍电位信号发生器节拍电位信号发生器可由循环移位寄存器组成。开始由清零信号CLR将移位寄存器清为0001,然后在脉冲信号clock作用下,按0001001001001000规律变化,从而输出节拍电位T0、T1、T2、T3。32CPU周期
信号发生器CPU周期信号一般设置单独的触发器表示,有几个周期就设置几个触发器。例如,某计算机系统设有取指令、取操作数和执行三个CPU周期,便设立三个触发器分别表示。每个CPU周期状态的建立信号由微操
作信号发生器产生,而且是在上一个CPU周期的最后一个节拍脉冲信号的下降沿建立。33启停控制逻辑计算机工作期间,要求时序信号必须是完整的。也就是说,不能从半个脉冲处开始工作;也不能在半个脉冲处结束工作。启停控制逻辑用来保证这一要求的实现。因为
T3的下降沿正是T0的上升沿,所以用T3信号作为Cr触发器的时钟端输入,就可以保证在T0的前沿开启时序部件工作,而在T3的后沿关闭时序部件。启动、停机信号平时为高电平343、时序控制方式控制不同操作序列的时序信号
的方法,称为时序控制方式。常用的控制方式有三种:同步控制、异步控制、联合控制,其实质反映了时序信号的定时方式。同步控制方式:用统一发出的时序信号对各项操作进行同步和控制,每个CPU周期中产生相同数目的节拍电位和工作脉冲。异步控
制方式:异步控制方式中没有统一的时钟信号,各部件按自身固有的速度工作。控制器发出某操作控制信号后,等待执行部件发回完成操作的“回答”信号,再开始新的操作。联合控制方式:联合控制是同步控制和异步控制相结合的
方式。对大多数节拍数相近的指令,采用同步控制;而对于节拍数多的少数指令或节拍数不固定的指令,采用异步控制。计算机系统多采用CPU、设备内部多采用35四、微程序控制原理计算机解题时,总是把一个复杂的问题化成一步一步的算术运算或逻辑运算等基本操作来做,每一个基本
操作称为一条指令。我们在指令周期中又讲到,一条指令的执行通过分解为更小的若干动作来实现。例如指令执行过程分解为“取指令、取操作数、执行指令”三个阶段;就取指令来说,又被分解为“从内存取指令、程序计数器PC+1、指令译码”三个微小的动作。如何产
生这些微小的动作有不同的方法。目前,大多数计算机普遍采用微程序设计技术来产生这些微动作。36微程序控制原理(续)微程序设计的概念和原理最早是英国剑桥大学的Wilkes教授在1951年提出来的。由于当时不具备制造存放微程序的控制存储器技术,实际上并没有真正使用。1964年,在IB
M360机器上将微程序设计技术付诸于实践,成功地用于控制器的设计。微程序设计技术是将程序设计技术和存储技术相结合,用程序设计的思想来组织这些微小操作的产生逻辑,即把这些操作控制信号编制成所谓的微指令,存放在一个只读存储器里;当机器
运行时,一条一条读出这些微指令,来产生指令执行过程中所需要的各种控制信号。371、微命令和微操作一台计算机基本上可以划分为两大部分—控制部件和执行部件。控制器是控制部件,而运算器、存储器和外围设备相对控
制器而言,都是执行部件。控制部件通过控制线向执行部件发出控制命令,通常把这种控制命令叫做微命令。执行部件接受微命令后所进行的操作,叫做微操作,它是最基本的、不可再分的操作。微操作与微命令具有一一对应的关系。由于数据通路的结构关系,微操作被分成相容性和相斥性两种。所谓相容
性微命令是指(同一微周期)那些可以同时产生、并行执行的微命令。所谓互斥性微命令是指(同一微周期)那些不能同时产生和执行的微命令。38相容性和互斥性微命令分析图20示出了一个简单运算器模型。其中,双线表示数据通路,单线表示微操作控制命令。+、-、M三个微命令是互斥性的微命令,4、6、8
是互斥性的微命令,5、7、9三个微命令也互相斥性的。它们是不能同时产生的。微命令1、2、3可以同时进行,所以是相容性的微命令。另外,ALU的X输入的微命令4、6、8分别与Y输入的微命令5、7、9任意两个也是相容性的。392、微指令和微程序一条微指令是实现一定操作功能的若干微命令的集合,是存
储在控制存储器中的一个控制字。存放微指令的控制存储器的单元地址称为微地址。一条微指令应至少包含两部分信息:操作控制信息和顺序控制信息。40微指令和微程序(续)操作控制字段:用来发出指挥全机工作的控制信号。这条微指令中的前17位对应操作控制
部分,每一位表示一个微命令。当某一位为1时,表示发出微命令;当某一位为0时,表示不发出微命令。顺序控制部分:用来产生下一条要执行的微指令的地址。一条机器指令的功能是用许多条微指令序列来实现的,这个微指令序列通常叫做微程序。一条机器指令对应一个微程序。413、微程序控
制器的组成图22给出了一个微程序控制器原理框图,包括控制存储器、微指令寄存器、微地址形成部件和微地址寄存器四部分。42微程序控制器的组成(续)控制存储器(CM):是用来存放微程序的,它在CPU内部,用ROM实现。(控制存储器在CPU内部,不
属于存储系统)。控制存储器的字长就是微指令字的长度。对控制存储器的要求是速度要快。控制器一旦开始工作,从控制存储器读出一条微指令、执行一条微指令;接着再读一条,再执行一条,……。通常从控制存储器中读出一条微指令,并
执行完相应的微操作所需的时间称为一个微指令周期,简称微周期。微指令寄存器(μIR):用来存放从控制存储器中读出的微指令,其位数和微指令字长相等。微地址形成部件:用来产生下一条微指令地址,是由机器指令操作码、运行状态以及微指令顺序控制字段给出的信息来形成的
。微地址寄存器(μMAR):用来存放读取微指令的地址,这个地址是控制存储器的单元地址。434、微程序控制器的工作过程微程序控制器的工作过程是在微程序控制器的控制下执行机器指令的过程。①执行取指令公操作。取指令操作对所有机器指令都一样,通常由一段取
指微程序来完成(取机器指令),属于公操作。②由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序入口地址,并送入微地址寄存器。③从控制存储器逐条取出对应的微指令并执行取出的微指令。④执行完一条机器指令所对应的一段微程序后,又回到取指微程序的入口地址,准备取下一条机器指令。5、机器
指令和微指令的关系从指令和微指令、程序和微程序、地址和微地址的对应关系来看,前者与主存有关,后者与控制存储器有关.机器指令的微操作序列的安排主要取决于数据通路的结构,不同的数据通路有不同的微操作序列。微操作控制信
号实际控制数据通路中的指令流和数据流的流向。控制信号的本质是按要求打开或关闭各个控制门。一条机器指令对应一段微程序,机器指令的执行过程就是与之对应的微程序的执行过程,机器指令执行过程中的微命令由微指令来产生。任何一
条机器指令的取指令操作都是相同,取指令操作的微命令被统一编制成一段微程序,作为公操作使用。456、微程序入口地址的形成机器指令的操作码字段指出其对应的微程序的入口地址。由机器指令操作码转换成微程序入口地址有三种方法:一级功能转换
:如果机器指令的操作码字段的位数和位置固定,可以直接用操作码与入口地址的部分位相对应。例如,某机器有16条机器指令,操作码由4位二进制数就能表示,分别为0000,0001,…,1111,假设微程序由4条微指令构成。以θ表示操作码,则微程序的入口地址可表示
为θ11B。对于这16条指令,微程序入口地址分别为:000011B,000111B,…111111B。46微程序入口地址的形成(续)二级功能转换:当同类机器指令的操作码字段的位数和位置固定,而不同类机器指令的操作码的位数和位置不固定时,就要使用二级功能转换。例如,先分
类转移,把位数一样、位置固定的分为一类;再用操作码对应微程序入口地址,第二次按操作码转移。编程转换:当机器指令的操作码位数和位置都不固定时,可以采用可编程逻辑阵列(PLA)将每条机器指令的操作码翻译成对应
的微程序的入口地址.477、后继微地址的形成找到微程序的入口地址,开始执行位程序。当执行完一条位指令后,如何找到要执行的下一条微指令?这就是后继微地址的形成问题,有三种方式。增量方式:增量方式又叫计数器方式,也就是用一个微程序计数器(μPC)来产生下一条微指令的地址。在顺序执行微指令时,后继
地址由现行微地址加上一个增量来产生(通常+1);在非顺序执行微指令时,由转移微指令实现转移。48后继微地址的形成(续一)转移微指令的顺序控制字段分为两部分:转移控制字段和转移地址字段。当转移条件满足
时,把转移地址字段的内容作为下一个微地址;当转移条件不满足时,则把微程序计数器的内容作为下一个微地址。通常把微地址寄存器改为微程序计数器。(能否把地址寄存器改造为程序计数器?)增量方式的优点是简单、编制微程序容易;缺点是在微程
序中会出现大量的转移微指令(约占25%),另外又要区分普通微指令和转移微指令,使得微程序控制电路复杂化。49后继微地址的形成(续二)断定方式:断定方式又称为下址字段法,在微程序控制器中不设置微程序计数器(μPC),而是在微指令格式中设置一个下址字段
,用于指明下一条要执行的微指令的地址。同时通过转移控制字段进行条件测试,并根据测试结果对下地址修改,形成转移微地址。1个测试位能产生2个分支,2个位测试位能产生4个分支,n个测试位能产生2n个分支。50后继微地址的形成(续三)增量和断定结合方式:增量方式与断定方式的结合,既要在微程序控制器
中设置微程序计数器,又要在每条微指令中设置顺序控制字段。顺序控制字段又分为两部分:转移控制字段和转移地址字段。当转移条件满足时,由转移地址字段的内容形成下一个微地址,若无转移要求,则直接根据微程序计数器的内容取出下一条微指令。51五、微程序设计技术微程序
设计的关键是如何确定微指令的结构。设计微指令结构应当追求如下目标:有利于缩短微指令的字长;有利于减小控制存储器的容量;有利于方便微指令的修改;有利于提高微程序执行的速度;有利于加强微程序设计的灵活性。521、微指令的编码方法微指
令包含操作控制字段和顺序控制字段两大部分。微指令编码方法就是操作码字段的编码方法。①直接控制法(不译码法)直接控制法是指操作控制字段中的每一位就是一个微命令,直接对应一种微操作。该位为1微命令有效、为0微命令无效。这种方法
结构简单,并行性强,输出直接用于控制。缺点是微指令字太长,控制存储器容量较大。53微指令的编码方法(续一)②最短编码法最短编码法将所有微命令统一编码,经过译码后才能得到微命令,每条微指令只定义一个微命令。这种方式下的操作控制字段,1位能定义2-1个
微命令,2位能定义4-1个微命令,……,N位能定义2N-1个微命令(留出1个空操作)。这种编码方式使得并行性差,微程序变长。以上两种编码方法处于两个极端,因此在实际中很少单独使用,只能与其它方法配合使用。54微指令的编码方法(续二)③字段编码法字段编码法是将操作控制字段分为若干个小段,段内
采用最短编码法,段间采用直接控制法。分为两种:字段直接编码法和字段间接编码法。字段直接编码法:小字段译码后直接用作微命令。字段间接编码法:为进一步缩短微指令的长度,小字段译码后进行逻辑组合,也就是字段间的某些译码输出联合定义微命令。55微指令的编码方法(续三)字段编码法中,操作控制码的
划分需要遵循以下规则:要把相斥的微命令分在同一字段,相容的微命令分在不同段内,(有利于缩短微指令长度、有利于提高并行性)。应与数据通路的结构相适应。各小段包含的信息位不能太多。(否则增加译码难度和译码时间)。每个小段要留出一个状态,表示本小段不发出任何微
命令。(某小段3位,最多定义7个相斥微命令,000表示不操作)。在实际编码时,根据需要可以把几种方法结合使用,也就是采用混合控制法,即把直接控制法和译码控制法进行结合等。562、微指令的格式微指令的编码方式是决定微指令格式的主要因素。一般微指令的格式大致分为两类:水平
型微指令和垂直型微指令。水平型微指令:一次能定义并执行多个微命令的微指令,叫做水平型微指令。操作控制字段采用直接控制法、字段编码法生成的微指令一般属于水平型微指令。水平型微指令并行操作能力强、执行机器指令的
速度快;但微程序设计复杂。用水平型微指令编写的微程序,具有微指令字长而微程序短的特点,面向控制逻辑描述。垂直型微指令:一次只能定义并执行一个微命令的微指令,叫做垂直型微指令。操作控制字段采用最短编码法生成的微指令属于垂直型微指令。垂直型微指令并行操作
能力差、执行机器指令的速度慢;但微程序设计简单。用垂直型微指令编写的微程序,具有微指令字短而微程序长的特点,面向控制算法描述。573、微指令的执行方式执行微指令的过程与执行机器指令的过程类似。第一步从控
制存储器中取出微指令,第二步执行微指令所规定的各个微操作。所以微指令的执行方式可分为串行和并行两种方式。并行执行方式:取微指令与执行微指令是重叠进行的,也就是在执行一条微指令的同时,预取下一条微指令。串行执行方式:在这种
方式下,取微指令、执行微指令完全按顺序进行,也就是在上条微指令执行完,才取下条微指令。584、动态微程序设计通常情况下,当微程序设计好之后,不允许改变也不便于改变,这样的设计称为静态微程序设计。假如在一台微程序控制的计算机中,能根据用户的要求改变微程序,那么这台
机器就具有动态微程序设计功能。动态微程序设计需要可写控制存储器的支持,否则难以改变微程序的内容。用于动态微程序设计的控制存储器称为可写控制存储器(WCS)。59六、控制单元的设计中央处理器CPU是整个计算机的
核心。控制单元CU(微操作控制信号发生器)是控制器的核心。控制单元的输入包括:时序信号机器指令操作码各部件的状态反馈信号等输出的微操作控制信号有两个去向:CPU内部的控制信号,用于控制寄存器之间的数据传送、以及实现C
PU功能的其它操作。CPU外部的控制信号,即送往主存或外设的控制信号,用于控制CPU与主存和外设的数据交换。控制器分三种:组合逻辑型、存储逻辑型、组合逻辑与存储逻辑结合型。不同类型的控制器仅是控制单元的实现方法不同。601、组合逻辑单元的设计组合逻辑控制器产生操作控制信号的办法是:根
据所有指令的流程图,寻找产生同一微操作信号的所有条件,并与适当的节拍电位和节拍脉冲进行组合,最后将所得到的布尔表达式用门电路或可编程器件来实现。确定机器指令的微操作序列之后,按照下列步骤进行设计:①列出微操作命令的操作时
间表把机器指令的各个阶段的微操作按照时间顺序列表,这样可以更好地理清楚它们之间的关系。②进行微操作信号的综合微操作信号=机器周期∧节拍电位∧节拍脉冲∧操作码∧运行状态③根据逻辑表达式画出逻辑图。根据逻辑表达式,可以画出对应每一个微操作信号的逻辑电路图,并用逻辑门电路来实现
。612、微程序控制单元的设计微程序控制器的操作控制信号由微指令产生。微程序控制单元的设计,主要任务是编写各条机器指令的微程序。①确定微程序的控制方式:根据设计要求,确定是采用水平微程序设计、还是垂直微程序设计?微指令是串行执行、还是并行执行?②拟定微命令系统:确定控制
中有哪些微命令?用什么样的格式表示这些微命令?比如,微命令字段的划分、编码方式的选择、初始微地址和后继微地址的形成方法等。③编制微程序:对微命令系统、微指令格式进行核对、审查、修改、优化之后,便可以编制机器指令的微程序。④微程序代码化:将修改完善的微程序转换成二进制代码,叫做代真.⑤写入
控制存储器:最后将二进制代码按地址写入控制存储器。62七、设计举例(一)例1、某计算机的CPU内部为双总线结构,所有数据传送都通过ALU,ALU具有下列功能,CPU结构如图所示。F=A;F=BF=A+1;F=B+1F=A-1;F=B-1写出转子指令(JSR)取指和执行周期的微操作。J
SR指令占两个字,第一个字是操作码,第二个字是子程序的入口地址。返回地址保存在堆栈中,堆栈指针始终指向栈顶。在图中,Y为暂存器,PC为程序计数器,MAR为地址寄存器,MDR为数据缓冲寄存器,IR为指令寄存器。解:转子指令的第一个为操作码、第二个为子程序的入口地址。①PCB,F=B
,FMAR,Read;读指令的第一个字②PCB,F=B+1,FPC③MDRB,F=B,FIR④PCB,F=B,FMAR,Read;读指令的第二个字⑤PCB,F=B+1,FPC⑥MDRB,F=B,FY⑦SPB,F=B-1,FSP,FMAR
;修改栈指针⑧PCB,F=B,FMDR,Write⑨YA,F=A,FPC;子程序首地址送PC⑩END工作之一设计微操作序列64设计举例(二)例二、图32为一微程序流程,每个方框代表一条微指令,分别用字符A—P表示其执行的微操作,根据给定的微程序流程设计微指令的顺序控制字段,并为每条微指令
分配一个地址。解:程序有两个分支处,第一处(C)有4个分支,由机器指令操作码的I1I0两位决定后继地址,分别指向4条不同的指令;第二处(E)有2个分支,根据运算结果Z的值决定,分别指向2条不同指令因此,微指令顺序控制
部分中的测试字段应有2位来分别对应2处测试。又因为共有16条微指令,所以下址字段需要4位。微地址分配的关键是带有分支的微指令。下址字段具有一定的约束条件,一般要选则测试条件所控制的那几位为0,目的是简化地址
的修改逻辑。由于微指令C按机器指令码I1I0实现4路分支,所以微指令C的下址的约束条件可选择末两位为0。若C的下址选择为0100。后继的4条微指令地址就分别为0100、0101、0110、0111,末两位就是I1I0的值。Z按同样的办法分配,后继微地址选
择1010、1011。工作之二后继地址分配66后继地址分配举例余下的微指令地址没有约束条件,可以任意分配。但一般按微程序流程从小到大,把控制存储器中没有分配的微地址分配给不同的微指令,就得到全部微指令地址。请注意区分微指令自己的微地址和它所指向的下
一条微指令的微地址!67微地址(自己的)微指令操作控制字段顺序控制字段二进制十进制微命令测试判断下地址00000A00000100011B00001000102C01010000113E10101001004D00001101015H0010000110
6L00100101117P00100110008I00101110019M001110101010F001100101111J001101110012G000000110113K000000111014N001111111115O00000068设计举例(三)
例3、某机有8条微指令I1—I8,每条微指令所含的微命令控制信号如下表所示。a—j分别代表10种不同性质的微命令信号,假设一条微指令的操作控制字段为8位,请安排微命令的操作控制字段格式,并将全部微指令代码化。微指令微命令信号abcdefghijI1√√√√√I2√√√√I3√√I4√
I5√√√√I6√√√I7√√√I8√√√69微操作命令设计解:题中有10不同性质的微命令,但微指令的操作控制字段只有8位,不能采用直接控制法。又因为微指令中有多个微命令是兼容的(a—e等),需同时产生,所以也不能用最短编码
法。选用字段编码和直接控制相结合的方法比较合适。将互斥的微命令安排在同一小段,b、i、j互斥,安排在同一小段内,e、f、h也互斥,也安排在一个小段内;其它微命令(a、c、d、g)因为相容,作为直接控制微命令。于是形成如下微指令控制字段格式.小段1小
段2译码输出微命令译码输出微命令00无00无01b01e10i10f11j11h70微操作命令设计(续)将8条微指令代码化可以得到:I1:11100101——acdgbeI2:10110010——acdg×fI3:00000111——acdgbhI4:0100
0000——acdg××I5:01011001——acdgieI6:10001111——acdgjhI7:01100011——acdg×hI8:10000111——acdgbh工作之三微操作命令设计71八、流水CPU计算机诞生到现在,人们追求的目标之一是高速度,因此,并行处理技术便
成为计算机发展的主流技术。并行性概括起来主要有三种形式:时间并行、空间并行、时间并行+空间并行。时间并行:它是指时间重叠,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。时间并行性概念的实
现方式就是采用流水处理部件。这是一种非常经济实用的并行技术,能保证计算机具有较高的性能价格比。目前的高性能微型机几乎无一例外地使用了流水技术。空间并行性:它是指资源重复,以“数量取胜”为原则来大幅度提高计算机的处理速度。大规模和超大规模集成电路的迅速发展为空间并行带来了
巨大的生机,也成为目前实现并行处理的一个主要途径。时间并行+空间并行:它是指时间重叠和资源重复的综合应用,既采用时间并行又采用空间并行。例如,奔腾CPU采用了超标量流水技术,在一个机器周期中同时执行两条指令,因
而既具有时间并行性,又具有空间并行性。这种并行技术带来的高效益是最好的。721、流水计算机的组成图31给出了现代计算机的系统组成原理示意图。其中,CPU按流水线方式组织,通常由三大部分组成:指令部件、指令队列、执行部件,并组成一个三级流水线,其中每个子部件又构成一个流水线。当执行部
件在执行第I条指令时,指令队列中存放着第I+1、I+2、…、I+k条指令,与此同时,指令部件正在取第I+k+1条指令。732、流水CPU的时空图为了实现流水,把输入的任务分割成一系列子任务,并使各子任务能在流水线的各个阶段并发地执行。当任
务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现子任务的并行性。下图表示流水CPU中一个指令周期的任务分解。这个指令周期中包含四个子过程:取指令(IF)、指令译码(ID)、执行运算(EX)、结果写回(WB),每个过程称为过程段(Si),
这样,一个流水线由一系列的串联的过程段组成。在统一的时钟信号控制下,数据从一个过程段流向相邻的过程段。74流水线与非流水线比较直观比较后发现,流水计算机在8个时间单位内执行了5条指令,而非流水计算机在8个时间单位内只执行了2条指令。显然,流水技术的应用,使计算机的速度大大提高了
。75标量流水线和超标量流水线的概念从数学的角度讲,标量是指单个量,而向量是指一组标量。一般计算机只有一条指令流水线。所以称为标量流水线。具有两条以上的指令流水线,则称为超标量流水线。763、流水线的分类指令流水线:是指令步骤的并行。将指令的处理过程划分
为取指令、译码、取操作数、执行、写回等几个并行处理的过程段。目前,高性能计算机都采用了指令流水线。算术流水线:指运算操作步骤的并行。如流水加法器、流水乘法器、流水除法器等。处理机流水线:又叫宏流水,是指程序步骤的并行。由一串级
联的处理机组成流水线的各个过程段,每台处理机负责某一特定的任务。数据从一台处理机输入,经处理后送入与第二台计算机相连的存储器中。第二台处理机从该存储器取出数据进行处理,然后传送给第三台处理机,如此串联下去。处理机流水线应用在多机系统中。774、流水线中的主要问
题要使流水线具有良好的性能,必须使流水线畅通流动,不发生断流。但是,实现流水线的不断流是困难的。因为存在以下三种相关冲突。资源相关:指多条指令进入流水线后,在同一机器周期内争用同一个功能部件。例如,如果
指令和数据放在同一个存储器中,且只有一个端口时,正在执行的两条指令都需要访问存储器,就会发生资源相关冲突。数据相关:在一个程序中,后一条指令的执行,必须等待前一条指令的执行结果,两条指令就会发生数据
相关冲突。在流水计算机中,指令的执行是重叠进行的,前一条指令还没有结束,第二、三条指令就陆续开始工作。当后继指令需要的操作数刚好是前一条指令的运算结果,便发生数据相关冲突。控制相关:当执行转移指令时,转移条件是由前一条指令建立的,转移的执行可能是
顺序取下条指令,也可能是转移到新的目标地址取指令,由此而引起流水线断流。为了解决上述冲突,应采取各种措施:比如,为了解决资源相关冲突,可以增加一个存储器,把指令和数据分开存放;为了解决数据相关冲突,可以在CPU内部增设若干结果缓冲寄存器,临时保
留运算结果,给后继指令使用;为了解决控制相关冲突,可以设置“转移取”和“顺序取”两路指令预取队列。78w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2
B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5
E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#o
XlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1
A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVj
RgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*
u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*
t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z
-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C
1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcL9H6E2B+y(u%rWkShP
dMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYn
VkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeM
bJ7G4D1z-w&t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXl
TiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ
8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMb
J7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK
8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u
%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfOcK9H5E2B+x(
u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRbJ8G4D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1
z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H
5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D2A-x*t
$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6
F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjR
gOdL9I6E3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6F3B0y(v%
s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%
r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7
G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!p
YmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A&t!pYmVjRgOcL9I
6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(
u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7
G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$
qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlTh
QeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlTiQeNb
J8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-
w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQf
NbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pY
mUjRfOcL9H6E3B+y(u%r#oWlTiMaJ7F4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbK8G5D1A-
x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZo
WkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWk
ShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x