6计算机组成原理(第六章)

Download Report

Transcript 6计算机组成原理(第六章)

第六章 中央处理器

中央处理器,简称CPU,是整个计算机的核心,它包括运
算器和控制器。
CPU的主要功能是执行指令,控制并完成各种操作,包括
运算操作、传送操作、输入输出操作等。

为了实现这些功能,需要解决4个关键问题。
 CPU由哪些部件组成?
 各部件之间如何交换信息?
 CPU如何建立与外部的连接?
 CPU如何形成微命令序列来控制指令的执行?
1
本章主要内容
主要内容






中央处理器的功能和组成
控制器的组成和实现方法
指令周期、时序系统与控制方式
微程序控制原理
操作控制单元的设计
流水线技术
2
一、中央处理器的功能
当我们用计算机解决某个问题时,首先要为计算机编写程序。
程序是一个指令序列,这个指令序列就是要明确告诉计算机应
该执行什么操作、数据从哪里来、结果送到哪里去。之后,一
旦把程序装入主存,就可以由计算机自动地完成取出指令和执
行指令的任务。
在程序运行过程中,在计算机的各部件之间传送着指令和数据,
形成了指令流和数据流。数据是在传送过程中得到加工和处理
的 。CPU的基本功能就是对指令流和数据流在时间与空间上实
施正确的控制。
3
CPU具备以下功能
CPU具备以下四个方面的功能:

指令控制:保证机器按顺序执行程序是CPU的首要任务。

操作控制:CPU根据指令的要求,产生需要的操作信号。

时间控制:对各种操作信号进行定时,即进行时间控制。

数据加工:对数据进行算术运算和逻辑运算。完成数据的加工
处理,是CPU的核心任务。
4
2、CPU的基本组成
CPU由运算器
和控制器组成
5
运算器的组成与主要功能

运算器的组成:





算术逻辑单元(ALU)
累加寄存器
状态标志寄存器
数据缓冲寄存器
运算器的功能(前面已经介绍过):


执行所有的算术运算
执行所有的逻辑运算
通常算术运算产生一个结果,而逻辑运算产生一个判断。运
算器是进行数据加工处理的部件,全部操作由控制器发出的
控制信号来指挥,所以它是执行部件。
6
控制器的组成与主要功能
控制器的组成:




指令部件
 程序计数器
 指令寄存器
 指令译码器
时序部件
 脉冲源
 节拍信号发生器
 启停控制逻辑
微操作信号发生器
中断控制逻辑
控制器的主要功能:



从内存中取出一条指令,并指
出下一条指令在内存中的位置
对指令的操作码进行译码,并
产生相应的操作控制信号。比
如,一次内存读写操作,或一
个算术逻辑运算操作等。
指挥并控制CPU、内存以及输
入输出设备之间的数据流动方
向。
7
3、CPU中的主要寄存器

CPU中的寄存器用来暂时存放运算过程的中间结果、最终结果
以及状态信息。各种计算机CPU可能不同,但CPU中至少要有
六类寄存器必不可少:






数据缓冲寄存器
指令寄存器
程序计数器
地址寄存器
累加寄存器
状态标志寄存器。
8
CPU中的主要寄存器(续)






数据缓冲寄存器(MDR):用来暂存由内存读出或写入内存的
指令和数据,是CPU和内存、外部设备信息传送的中转站 。
指令寄存器(IR):用来存放当前正在执行的一条指令。在指
令执行期间,指令寄存器的内容不允许发生变化。
程序计数器(PC):用来存放将要执行的下一条指令的地址。
地址寄存器(MAR):地址寄存器用来保存CPU当前所访问的
内存单元的地址。只要CPU和内存交换信息,都要用到地址寄
存器和数据缓冲寄存器。
累加寄存器(AC):执行算术逻辑操作时,为ALU提供操作数
及存放运算结果。
状态标志寄存器(PSW):用来存放由指令执行结果所建立的
状态以及机器自身的运行状态 ,第一类为状态标志 ,第二类为
控制标志 。
9
4、控制器的核心部件

微操作信号发生器:控制器的核心部件,其功能是根据
指令操作码、状态信息和时序信号,产生各种微操作控制信
号,以便正确地建立数据通路,从而完成取指令和执行指令
的任务。
根据产生微操作控制信号的不同方式,控制器分为组合逻辑
型、存储逻辑型以及组合逻辑与存储逻辑结合型三种。采用
组合逻辑实现的控制器称为组合逻辑控制器,采用存储逻辑
实现的控制器称为微程序控制器。

时序部件:脉冲源、节拍信号发生器和启停控制逻辑构成。
微操作控制信号有严格的时间要求,绝不能出现任何差错。
时序部件的作用是对各种操作实施时间上的控制。
10
5、CPU内部的数据通路


CPU内部各部件之间需要传送信息,例如操作数由
寄存器送到ALU进行运算,ALU将运算结果送入寄
存器存放,等等。把CPU内部各部件之间传送数据
的通路称为数据通路。
通常,用总线连接CPU内部各部件。有三种内部总
线结构,即单总线结构、双总线结构和三总线结构,
我们曾在四章关于运算器的组织中介绍过。
11
二、指令周期
指令和数据都放在内存里。从形式上看,它们
都是二进制代码, CPU是怎么准确地判别出
是指令还是数据的 ?这要从指令周期说起。
12
1、指令周期的基本概念




CPU取指令—执行指令的序列:
指令周期是取出并执行完一条指令的时间。因为各种指令的
操作功能不同,所以指令周期也不完全相同。
指令周期通常用若干个CPU周期来表示,CPU周期也叫机器
周期。一个CPU周期在时间上等于主存的一个存取周期。例
如,从主存取出一条指令就需要一个CPU周期。
以下通过一个简单程序的执行过程来说明指令周期的概念。
13
2、举例,一个简单程序
八进制地址
020
021
022
023
024
.
.
030
031
.
.
040
八进制内容
250 000
030 030
020 040
000 000
140 021
.
.
000 006
000 040
.
.
存和数单元
助记符
CLA
ADD 30
STA 40
NOP
JMP 21
.
.
备注
累加器清零
AC相加30单元
把AC内容存40单元
空操作
跳转,地址21
14
① CLA指令的指令周期
CLA指令完成累加器清零功能,是一条非访存指令,需要两个
CPU周期,其中取指令阶段需要一个CPU周期,执行指令阶段
需要一个CPU周期。
15
第一个CPU周期:取指令阶段
CPU完成三件事:
① 从内存中取出指令
② 对程序计数器PC+1
③ 对指令操作码进行译码
CPU做6个动作:
① PCMAR
② PC+1PC
③ MARABUS
④ M(MAR)MDR
⑤ MDRIR
⑥ OP(IR)ID
CPU已知道什么操作
16
第二个CPU周期,执行指令阶段
CPU完成一件事:
 执行累加器清零操作。
CPU做2个动作:
 微操作信号发生器送一
控制信号(C)给算术逻
辑单元ALU。Cout。
 ALU响应控制信号,将
累加寄存器AC的内容
全部清零,从而执行了
CLA指令。0AC。
CPU已完成指令操作
17
② ADD指令的指令周期
第二条指令是“ADD 30”指令,这是一条通过访问内存取数并执行加
法的指令。ADD指令的指令周期由三个CPU周期组成。
第一个CPU周期为取指令阶段,与CLA指令相同,不再讨论。假设在
取指结束后, ADD指令已被存放在指令寄存器中、而且被正确译码。
18
第二个CPU周期,送操作数地址
CPU完成一件事:
 送操作数地址到地
址寄存器MAR。
CPU做1个动作:
 把指令寄存器中地
址码部分(30)装入地
址 寄 存 器 MAR , 执
行:IRMAR操作.
19
第三个CPU周期,取操作数、两数相加
CPU完成两件事:
① 取操作数
② 加法操作。
CPU做4个动作:
① MARABUS
② DBUSMDR
③ MDRALU
④ add ,ALUAC
CPU完成指令操作
20
③ STA指令的指令周期
程序的第三条指令是“STA 40”,这是一条访问内存的存数指令。
STA指令由三个CPU周期组成。
第一个CPU周期为取指令阶段,它与CLA、ADD指令相同。第二个
CPU周期把指令寄存器中地址码部分的形式地址40装到地址寄存器,
过程跟ADD指令送操作数地址完全一样。我们讨论第三个CPU周期。
21
第三个CPU周期,数据写入内存
CPU完成两件事:
① 累加器内容传送到数
据缓冲寄存器中;
② 把该数据存入所选定
的内存单元(40)中。
CPU做4个动作:
① ACMDR
② MARABUS
③ MDRDBUS
④ write
CPU完成指令操作
22
④ NOP指令和JMP指令的指令周期
程序现在已经进行到第四条指令 “NOP”指令,这是一条空操作指令。
这里不再给出指令周期图,其中第一个CPU周期中取指令,CPU把23
号单元的“NOP”指令取出放到指令寄存器,第二个CPU周期中执行该
指令。因译码器译出是“NOP”指令,在第二个CPU周期中微操作信号
发生器不发出任何控制信号。
程序进行到第五条指令,
即“JMP 21”指令,这是
一条程序控制指令。其含
义是改变程序的执行顺序,
无条件地转移到地址21执
行指令。JMP指令周期由
两个CPU周期组成 。我们
从第二个CPU周期讨论。
23
第二个CPU周期,送转移地址
CPU完成一件事:
 把指令寄存器中的
地 址 码 部 分 21 送 到
程序计数器,用新
的内容21取代PC中
原先的内容25。
CPU做1个动作:
 IRPC
CPU完成指令操作
24
3、用方框图来表示指令周期
一个方框代表一个CPU周期,菱形符号通常用来表示某种判别或测试,
时间上依附于与它相邻的前面一个方框的CPU周期,不单独占用时间。
“~” 表示公操作,如指令执行结束后,CPU对外设中断请求的处理等。
不单独占
CPU周期
25
三、时序部件与控制方式
在日常生活中,我们学习、工作和休息遵循作息时间,以维
持正常的秩序。在计算机系统中也有一个类似“作息时间”
的东西,它叫时序部件。
由于计算机高速地进行工作,每一个动作的时间是非常严格
的,不能有任何差错。时序系统是控制器的心脏,其功能是
为指令的执行提供各种定时信号。
26
1、时序信号的作用和体制
我们曾经问过,CPU是怎么识别数据和指令的?结论如下:



从时间上来说,取指令事件发生在指令周期的第一个CPU周期,
即发生在“取指令”阶段,而取数据事件发生在指令周期的后面
几个CPU周期,即发生在“执行指令”阶段。
从空间上来说,如果取出的代码是指令,那么一定送往指令寄存
器,如果取出的代码是数据,那么一定送往运算器。
从地址的来源讲,指令地址来源于程序计数器,而数据地址来源
于地址形成部件。
时序信号的作用就是用来划分时段,对各种操作信号严格定时,
使多个控制信号在时间上相互配合,从而完成某一特定功能.
27
三级时序体制(系统)
一个指令周期分为若干机器周期(CPU周期);一个机器周期再
划分为若干相等的时间段,每个时间段用一个电位信号来表示,
称为节拍电位;在节拍中执行的微操作,需要同步定时脉冲来配
合 ,称为工作脉冲。
机器周期
CPU周期
节拍电位
工作脉冲
节拍脉冲
28
2、时序部件


下图是组合逻辑控制器的时序部件结构图,由时钟源、启停控
制逻辑、CPU周期信号发生器、节拍电位信号发生器、节拍脉
冲(工作脉冲)发生器等部分组成。
时钟源用来为整个机器提供频率稳定的方波时钟脉冲信号,通
常由石英晶体振荡器和与非门组成的正反馈电路组成。
29
节拍脉冲信号发生器

触发器C1C0构成两位循环移位寄存器。开始时由清零信号CLR将
C1C0清为00,然后在Clock上升沿和下降沿的作用下规律性地变
化:00011110,译码后输出节拍脉冲P0、P1、P2、P3。
30
节拍电位信号发生器

节拍电位信号发生器可由循环移位寄存器组成。开始由清零
信号CLR将移位寄存器清为0001,然后在脉冲信号clock作
用下,按0001001001001000 规律变化,从而输出
节拍电位T0、T1、T2、T3 。
31
CPU周期信号发生器


CPU周期信号一般设置单独的触发器表示,有几个周期就设置几
个触发器。例如,某计算机系统设有取指令、取操作数和执行三
个CPU周期,便设立三个触发器分别表示。
每个CPU周期状态的建立信号由微操作信号发生器产生,而且是
在上一个CPU周期的最后一个节拍脉冲信号的下降沿建立。
32
启停控制逻辑


计算机工作期间,要求时序信号必
须是完整的。也就是说,不能从半
个脉冲处开始工作;也不能在半个
脉冲处结束工作。启停控制逻辑用
来保证这一要求的实现。
因为T3的下降沿正是T0的上升沿,
所以用T3信号作为Cr触发器的时钟
端输入,就可以保证在T0的前沿开
启时序部件工作,而在T3的后沿关
闭时序部件。
启动、停机
信号平时为
高电平
33
CPU、设备
内部多采用
3、时序控制方式
控制不同操作序列的时序信号的方法,称为时序控制方式。常用
的控制方式有三种:同步控制、异步控制、联合控制,其实质反
映了时序信号的定时方式。

计算机系统
多采用


同步控制方式:用统一发出的时序信号对各项操作进行同步和
控制,每个CPU周期中产生相同数目的节拍电位和工作脉冲。
异步控制方式:异步控制方式中没有统一的时钟信号,各部件
按自身固有的速度工作。控制器发出某操作控制信号后,等待
执行部件发回完成操作的 “回答”信号,再开始新的操作。
联合控制方式:联合控制是同步控制和异步控制相结合的方式。
对大多数节拍数相近的指令,采用同步控制;而对于节拍数多
的少数指令或节拍数不固定的指令,采用异步控制。
34
四、微程序控制原理
 计算机解题时,总是把一个复杂的问题化成一步一步的算术运算
或逻辑运算等基本操作来做,每一个基本操作称为一条指令。
 我们在指令周期中又讲到,一条指令的执行通过分解为更小的若
干动作来实现。例如指令执行过程分解为“取指令、取操作数、
执行指令”三个阶段;就取指令来说,又被分解为“从内存取指
令、程序计数器PC+1、指令译码”三个微小的动作。
 如何产生这些微小的动作有不同的方法。目前,大多数计算机普
遍采用微程序设计技术来产生这些微动作。
35
微程序控制原理(续)



微程序设计的概念和原理最早是英国剑桥大学的Wilkes教授
在1951年提出来的。由于当时不具备制造存放微程序的控制
存储器技术,实际上并没有真正使用。
1964年,在IBM360机器上将微程序设计技术付诸于实践,
成功地用于控制器的设计。
微程序设计技术是将程序设计技术和存储技术相结合,用程
序设计的思想来组织这些微小操作的产生逻辑,即把这些操
作控制信号编制成所谓的微指令,存放在一个只读存储器里;
当机器运行时,一条一条读出这些微指令,来产生指令执行
过程中所需要的各种控制信号。
36
1、微命令和微操作



一台计算机基本上可以划分为两大部分—控制部件和执行部件。
控制器是控制部件,而运算器、存储器和外围设备相对控制器而
言,都是执行部件。
控制部件通过控制线向执行部件发出控制命令,通常把这种控制
命令叫做微命令。执行部件接受微命令后所进行的操作,叫做微
操作,它是最基本的、不可再分的操作。微操作与微命令具有一
一对应的关系。
由于数据通路的结构关系,微操作被分成相容性和相斥性两种。
所谓相容性微命令是指(同一微周期)那些可以同时产生、并行
执行的微命令。所谓互斥性微命令是指(同一微周期)那些不能
同时产生和执行的微命令。
37
相容性和互斥性微命令分析



图20示出了一个简单运算器模型。
其中,双线表示数据通路,单线表
示微操作控制命令。
+、-、M三个微命令是互斥性的微
命令,4、6、8是互斥性的微命令,
5、7、9三个微命令也互相斥性的。
它们是不能同时产生的。
微命令1、2、3可以同时进行,所
以是相容性的微命令。另外,ALU
的X输入的微命令4、6、8分别与Y
输入的微命令5、7、9任意两个也
是相容性的。
38
2、微指令和微程序


一条微指令是实现一定操作功能的若干微命令的集合,是存
储在控制存储器中的一个控制字。
存放微指令的控制存储器的单元地址称为微地址。一条微指
令应至少包含两部分信息:操作控制信息和顺序控制信息。
39
微指令和微程序(续)


操作控制字段:用来发出指挥全机工作的控制信号。这条微指令
中的前17位对应操作控制部分,每一位表示一个微命令。当某
一位为1时,表示发出微命令;当某一位为0时,表示不发出微
命令。顺序控制部分:用来产生下一条要执行的微指令的地址。
一条机器指令的功能是用许多条微指令序列来实现的,这个微指
令序列通常叫做微程序。一条机器指令对应一个微程序。
40
3、微程序控制器的组成
图22给出了一个微程序控制器原理框图,包括控制存储器、
微指令寄存器、微地址形成部件和微地址寄存器四部分。
41
微程序控制器的组成(续)

控制存储器(CM):是用来存放微程序的,它在CPU内部,用ROM
实现。(控制存储器在CPU内部,不属于存储系统)。控制存储器的
字长就是微指令字的长度。对控制存储器的要求是速度要快。
控制器一旦开始工作,从控制存储器读出一条微指令、执行一条微指
令;接着再读一条,再执行一条,……。通常从控制存储器中读出一
条微指令,并执行完相应的微操作所需的时间称为一个微指令周期,
简称微周期。



微指令寄存器(μIR):用来存放从控制存储器中读出的微指令,其
位数和微指令字长相等。
微地址形成部件:用来产生下一条微指令地址,是由机器指令操作码、
运行状态以及微指令顺序控制字段给出的信息来形成的。
微地址寄存器(μMAR):用来存放读取微指令的地址,这个地址是
控制存储器的单元地址。
42
4、微程序控制器的工作过程

微程序控制器的工作过程是在微程序控制
器的控制下执行机器指令的过程。
① 执行取指令公操作。取指令操作对所有
机器指令都一样,通常由一段取指微程序
来完成(取机器指令),属于公操作。
② 由机器指令的操作码字段通过微地址形
成部件产生该机器指令所对应的微程序入
口地址,并送入微地址寄存器。
③ 从控制存储器逐条取出对应的微指令并
执行取出的微指令。
④ 执行完一条机器指令所对应的一段微程
序后,又回到取指微程序的入口地址,准
备取下一条机器指令。
43
5、机器指令和微指令的关系





一条机器指令对应一段微程序,机器指令的执行过程就是与之对应的
微程序的执行过程,机器指令执行过程中的微命令由微指令来产生。
任何一条机器指令的取指令操作都是相同,取指令操作的微命令被统
一编制成一段微程序,作为公操作使用。
从指令和微指令、程序和微程序、地址
和微地址的对应关系来看,前者与主存
有关,后者与控制存储器有关.
机器指令的微操作序列的安排主要取决
于数据通路的结构,不同的数据通路有
不同的微操作序列。
微操作控制信号实际控制数据通路中的
指令流和数据流的流向。控制信号的本
质是按要求打开或关闭各个控制门。
6、微程序入口地址的形成
机器指令的操作码字段指出其对应的微程序的入口地址。由机器指
令操作码转换成微程序入口地址有三种方法:

一级功能转换:
如果机器指令的操作码字段的位数和位置固定,可以直接用操作码
与入口地址的部分位相对应。
例如,某机器有16条机器指令,操作码由4位二进制数就能表示,分
别为0000,0001,…,1111,假设微程序由4条微指令构成。以θ表
示操作码,则微程序的入口地址可表示为θ11B。对于这16条指令,
微程序入口地址分别为: 000011B,000111B,…111111B。
45
微程序入口地址的形成(续)

二级功能转换:
当同类机器指令的操作码字段的位数和位置固定,而不同类机器
指令的操作码的位数和位置不固定时,就要使用二级功能转换。
例如,先分类转移,把位数一样、位置固定的分为一类;
再用操作码对应微程序入口地址,第二次按操作码转移。

编程转换:
当机器指令的操作码位数和位置都不固定时,可以采用可编程逻
辑阵列(PLA)将每条机器指令的操作码翻译成对应的微程序的
入口地址.
46
7、后继微地址的形成


找到微程序的入口地址,开始执行位程序。当执行完一条位指
令后,如何找到要执行的下一条微指令?这就是后继微地址的
形成问题,有三种方式。
增量方式:增量方式又叫计数器方式,也就是用一个微程序计
数器(μPC)来产生下一条微指令的地址。在顺序执行微指令
时,后继地址由现行微地址加上一个增量来产生(通常+1);
在非顺序执行微指令时,由转移微指令实现转移。
47
后继微地址的形成(续一)


转移微指令的顺序控制字段分为两部分:转移控制字段和转
移地址字段。当转移条件满足时,把转移地址字段的内容作
为下一个微地址;当转移条件不满足时,则把微程序计数器
的内容作为下一个微地址。通常把微地址寄存器改为微程序
计数器。(能否把地址寄存器改造为程序计数器?)
增量方式的优点是简单、编制微程序容易;缺点是在微程序
中会出现大量的转移微指令(约占25%),另外又要区分普
通微指令和转移微指令,使得微程序控制电路复杂化。
48
后继微地址的形成(续二)


断定方式:断定方式又称为下址字段法,在微程序控制器中不设
置微程序计数器(μPC),而是在微指令格式中设置一个下址字
段,用于指明下一条要执行的微指令的地址。同时通过转移控制
字段进行条件测试,并根据测试结果对下地址修改,形成转移微
地址。
1个测试位能产生2个分支,2个位测试位能产生4个分支,n个测
试位能产生2n个分支。
49
后继微地址的形成(续三)

增量和断定结合方式:增量方式与断定方式的结合,既要在微
程序控制器中设置微程序计数器,又要在每条微指令中设置顺
序控制字段。顺序控制字段又分为两部分:转移控制字段和转
移地址字段。当转移条件满足时,由转移地址字段的内容形成
下一个微地址,若无转移要求,则直接根据微程序计数器的内
容取出下一条微指令。
50
五、微程序设计技术


微程序设计的关键是如何确定微指令的结构。
设计微指令结构应当追求如下目标:
 有利于缩短微指令的字长;
 有利于减小控制存储器的容量;
 有利于方便微指令的修改;
 有利于提高微程序执行的速度;
 有利于加强微程序设计的灵活性。
51
1、微指令的编码方法
微指令包含操作控制字段和顺序控制字段两大部分。微指令编码方法
就是操作码字段的编码方法。
① 直接控制法(不译码法)
直接控制法是指操作控制字段中的每一位就是一个微命令,直接对
应一种微操作。该位为1微命令有效、为0微命令无效。
这种方法结构简单,并行性强,输出直接用于控制。缺点是微指令
字太长,控制存储器容量较大。
52
微指令的编码方法(续一)
② 最短编码法
最短编码法将所有微命令统一编码,经过译码后才能得到微命令,
每条微指令只定义一个微命令。
这种方式下的操作控制字段,1位能定义2-1个微命令,2位能定
义4-1个微命令,……,N位能定义2N-1个微命令(留出1个空操
作)。这种编码方式使得并行性差,微程序变长。
以上两种编码方法处于两个极端,因此在实际中很少单独使用,
只能与其它方法配合使用。
53
微指令的编码方法(续二)
③ 字段编码法
字段编码法是将操作控制字段分为若干个小段,段内采用最短编码法,
段间采用直接控制法。分为两种:字段直接编码法和字段间接编码法。
 字段直接编码法:小字段译码后直接用作微命令。
 字段间接编码法:为进一步缩短微指令的长度,小字段译码后进行
逻辑组合 ,也就是字段间的某些译码输出联合定义微命令 。
54
微指令的编码方法(续三)
字段编码法中,操作控制码的划分需要遵循以下规则:




要把相斥的微命令分在同一字段,相容的微命令分在不同段内,
(有利于缩短微指令长度、有利于提高并行性)。
应与数据通路的结构相适应。
各小段包含的信息位不能太多。
(否则增加译码难度和译码时间)。
每个小段要留出一个状态,表示本小段不发出任何微命令。
(某小段3位,最多定义7个相斥微命令,000表示不操作)。
在实际编码时,根据需要可以把几种方法结合使用,也就是采用混
合控制法,即把直接控制法和译码控制法进行结合等。
55
2、微指令的格式
微指令的编码方式是决定微指令格式的主要因素。一般微指令的格
式大致分为两类:水平型微指令和垂直型微指令。

水平型微指令:一次能定义并执行多个微命令的微指令,叫做水平
型微指令。操作控制字段采用直接控制法、字段编码法生成的微指
令一般属于水平型微指令。
水平型微指令并行操作能力强、执行机器指令的速度快;但微程序
设计复杂。用水平型微指令编写的微程序,具有微指令字长而微程
序短的特点,面向控制逻辑描述。

垂直型微指令 :一次只能定义并执行一个微命令的微指令,叫做
垂直型微指令。操作控制字段采用最短编码法生成的微指令属于垂
直型微指令。
垂直型微指令并行操作能力差、执行机器指令的速度慢;但微程序
设计简单。用垂直型微指令编写的微程序,具有微指令字短而微程
序长的特点,面向控制算法描述。
56
3、微指令的执行方式
执行微指令的过程与执行机器指令的过程类似。第一步从控制存储
器中取出微指令,第二步执行微指令所规定的各个微操作。所以微
指令的执行方式可分为串行和并行两种方式。


串行执行方式:在这种方式下,取微指令、执行微指令完全按顺
序进行,也就是在上条微指令执行完,才取下条微指令。
并行执行方式:取微指令与执行微指令是重叠进行的,也就是在
执行一条微指令的同时,预取下一条微指令。
57
4、动态微程序设计


通常情况下,当微程序设计好之后,不允许改变也不便于改
变,这样的设计称为静态微程序设计。假如在一台微程序控
制的计算机中,能根据用户的要求改变微程序,那么这台机
器就具有动态微程序设计功能。
动态微程序设计需要可写控制存储器的支持,否则难以改变
微程序的内容。用于动态微程序设计的控制存储器称为可写
控制存储器(WCS)。
58
六、控制单元的设计


中央处理器CPU是整个计算机的核心。控制单元CU(微操作控
制信号发生器)是控制器的核心。
控制单元的输入包括:
 时序信号
 机器指令操作码
 各部件的状态反馈信号等
输出的微操作控制信号有两个去向:
 CPU内部的控制信号,用于控制寄存器之间的数据传送、以
及实现CPU功能的其它操作。
 CPU外部的控制信号,即送往主存或外设的控制信号,用于
控制CPU与主存和外设的数据交换。

控制器分三种:组合逻辑型、存储逻辑型、组合逻辑与存储逻
辑结合型。不同类型的控制器仅是控制单元的实现方法不同。
59
1、组合逻辑单元的设计
组合逻辑控制器产生操作控制信号的办法是:根据所有指令的流程图,
寻找产生同一微操作信号的所有条件,并与适当的节拍电位和节拍脉冲
进行组合,最后将所得到的布尔表达式用门电路或可编程器件来实现。
确定机器指令的微操作序列之后,按照下列步骤进行设计:
① 列出微操作命令的操作时间表
把机器指令的各个阶段的微操作按照时间顺序列表,这样可以更好
地理清楚它们之间的关系。
② 进行微操作信号的综合
微操作信号 = 机器周期 ∧ 节拍电位 ∧节拍脉冲 ∧ 操作码 ∧ 运行状态
③ 根据逻辑表达式画出逻辑图。
根据逻辑表达式,可以画出对应每一个微操作信号的逻辑电路图,
并用逻辑门电路来实现。
60
2、微程序控制单元的设计
微程序控制器的操作控制信号由微指令产生。微程序控制单元的设计,
主要任务是编写各条机器指令的微程序。
① 确定微程序的控制方式:根据设计要求,确定是采用水平微程序设
计、还是垂直微程序设计?微指令是串行执行、还是并行执行?
② 拟定微命令系统:确定控制中有哪些微命令?用什么样的格式表示
这些微命令?比如,微命令字段的划分、编码方式的选择、初始微地址
和后继微地址的形成方法等。
③ 编制微程序:对微命令系统、微指令格式进行核对、审查、修改、
优化之后,便可以编制机器指令的微程序。
④ 微程序代码化:将修改完善的微程序转换成二进制代码,叫做代真.
⑤ 写入控制存储器:最后将二进制代码按地址写入控制存储器。
61
七、设计举例(一)
例1、某计算机的CPU内部为双总线结构,所有数据传送都通过
ALU,ALU具有下列功能,CPU结构如图所示。
F=A;
F=A+1;
F=A-1;
F=B
F=B+1
F=B-1
写出转子指令(JSR)取指和执行周期的微操作。JSR指令占两
个字,第一个字是操作码,第二个字是子程序的入口地址。返回
地址保存在堆栈中,堆栈指针始终指向栈顶。在图中,Y为暂存
器,PC为程序计数器,MAR为地址寄存器,MDR为数据缓冲寄
存器,IR为指令寄存器。
62
工作之一
设计微操作序列
解:转子指令的第一个为操作码、第二个为子程序的入口地址。
① PCB,F=B,FMAR,Read
② PCB,F=B+1,FPC
③ MDRB,F=B,FIR
④ PCB,F=B,FMAR,Read
⑤ PCB,F=B+1,FPC
⑥ MDRB,F=B,FY
⑦
⑧
⑨
⑩
SPB,F=B-1,FSP,FMAR
PCB,F=B,FMDR,Write
YA,F=A,FPC
END
;读指令的第一个字
;读指令的第二个字
;修改栈指针
;子程序首地址送PC
设计举例(二)
例二、图32为一微程序流程,每
个方框代表一条微指令,分别用
字符A—P表示其执行的微操作,
根据给定的微程序流程设计微指
令的顺序控制字段,并为每条微
指令分配一个地址。
解:程序有两个分支处,第一处
(C)有4个分支,由机器指令操
作码的I1I0两位决定后继地址,分
别指向4条不同的指令;第二处
(E)有2个分支,根据运算结果Z
的值决定,分别指向2条不同指令
64
因此,微指令顺序控制部分中的测试字段应
有2位来分别对应2处测试。又因为共有16
条微指令,所以下址字段需要4位。
微地址分配的关键是带有分支的微指令。
下址字段具有一定的约束条件,一般要
选则测试条件所控制的那几位为0,目的
是简化地址的修改逻辑。
由于微指令C按机器指令码I1I0实现4路分支,
所以微指令C的下址的约束条件可选择末两
位为0。若C的下址选择为0100。后继的4条
微指令地址就分别为0100、0101、0110、
0111,末两位就是I1I0的值。Z按同样的办法
分配,后继微地址选择1010、1011。
工作之二
后继地址分配
后继地址分配举例
余下的微指令地址没有约束条
件,可以任意分配。但一般按
微程序流程从小到大,把控制
存储器中没有分配的微地址分
配给不同的微指令,就得到全
部微指令地址。
请注意区分微指令自己的微地
址和它所指向的下一条微指令
的微地址!
66
微地址(自己的)
微指令
操作控制字段
顺序控制字段
二进制
十进制
微命令
测试判断
下地址
0000
0
A
00
0001
0001
1
B
00
0010
0010
2
C
01
0100
0011
3
E
10
1010
0100
4
D
00
0011
0101
5
H
00
1000
0110
6
L
00
1001
0111
7
P
00
1001
1000
8
I
00
1011
1001
9
M
00
1110
1010
10
F
00
1100
1011
11
J
00
1101
1100
12
G
00
0000
1101
13
K
00
0000
1110
14
N
00
1111
1111
15
O
00
0000
67
设计举例(三)
例3、某机有8条微指
令I1—I8,每条微指令
所含的微命令控制信
号如下表所示。a—j
分别代表10种不同性
质的微命令信号,假
设一条微指令的操作
控制字段为8位,请安
排微命令的操作控制
字段格式,并将全部
微指令代码化。
微命令信号
微
指令
a
b
c
d
e
I1
√
√
√
√
√
I2
√
√
√
√
√
I5
√
√
√
i
j
√
√
√
√
I7
√
h
√
I4
I8
g
√
I3
I6
f
√
√
√
√
√
68
微操作命令设计
解:题中有10不同性质的微命令,
但微指令的操作控制字段只有8位,
不能采用直接控制法。又因为微指
令中有多个微命令是兼容的(a—e
等),需同时产生 ,所以也不能用
最短编码法。
选用字段编码和直接控制相结合的
方法比较合适。将互斥的微命令安
排在同一小段,b、i、j互斥,安排
在同一小段内,e、f、h也互斥,
也安排在一个小段内;其它微命令
(a、c、d、g)因为相容,作为直
接控制微命令。于是形成如下微指
令控制字段格式.
小段1
小段2
译码输出
微命令
译码输出
微命令
00
无
00
无
01
b
01
e
10
i
10
f
11
j
11
h
69
微操作命令设计(续)
将8条微指令代码化可以得到:








I1:
I2:
I3:
I4:
I5:
I6:
I7:
I8:
11100101——a
10110010——a
00000111——a
01000000——a
01011001——a
10001111——a
01100011——a
10000111——a
c
c
c
c
c
c
c
c
d
d
d
d
d
d
d
d
gbe
g×f
gbh
g××
gie
gjh
g×h
gbh
工作之三
微操作命令设计
70
八、流水CPU



计算机诞生到现在,人们追求的目标之一是高速度,因此,并行处理技术便成
为计算机发展的主流技术。并行性概括起来主要有三种形式:时间并行、空间
并行、时间并行+空间并行。
时间并行:它是指时间重叠,让多个处理过程在时间上相互错开,轮流重叠地
使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
时间并行性概念的实现方式就是采用流水处理部件。这是一种非常经济实用的
并行技术,能保证计算机具有较高的性能价格比。目前的高性能微型机几乎无
一例外地使用了流水技术。
空间并行性:它是指资源重复,以“数量取胜”为原则来大幅度提高计算机的
处理速度。大规模和超大规模集成电路的迅速发展为空间并行带来了巨大的生
机,也成为目前实现并行处理的一个主要途径。
时间并行+空间并行:它是指时间重叠和资源重复的综合应用,既采用时间并
行又采用空间并行。例如,奔腾CPU采用了超标量流水技术,在一个机器周期
中同时执行两条指令,因而既具有时间并行性,又具有空间并行性。这种并行
技术带来的高效益是最好的。
71
1、流水计算机的组成


图31给出了现代计算机的系统组
成原理示意图。其中,CPU按流
水线方式组织,通常由三大部分
组成:指令部件、指令队列、执
行部件,并组成一个三级流水线,
其中每个子部件又构成一个流水
线。
当执行部件在执行第I条指令时,
指令队列中存放着第I+1、
I+2、…、I+k条指令,与此同
时,指令部件正在取第I+k+1
条指令。
72
2、流水CPU的时空图



为了实现流水,把输入的任务分割成一系列子任务,并使各子任
务能在流水线的各个阶段并发地执行。当任务连续不断地输入流
水线时,在流水线的输出端便连续不断地吐出执行结果,从而实
现子任务的并行性。
下图表示流水CPU中一个指令周期的任务分解。
这个指令周期中包含四个子过程:取指令(IF)、指令译码(ID)、
执行运算(EX)、结果写回(WB),每个过程称为过程段(Si),
这样,一个流水线由一系列的串联的过程段组成。在统一的时钟
信号控制下,数据从一个过程段流向相邻的过程段。
73
流水线与非流水线比较
直观比较后发现,流水计算机在8个时间单位内执行了5条指令,而
非流水计算机在8个时间单位内只执行了2条指令。显然,流水技术
的应用,使计算机的速度大大提高了。
74
标量流水线和超标量流水线的概念
从数学的角度讲,标量是指单个量,而向量是指一组标量。一般计
算机只有一条指令流水线。所以称为标量流水线。具有两条以上的
指令流水线,则称为超标量流水线。
75
3、流水线的分类



指令流水线:是指令步骤的并行。将指令的处理过程划分为
取指令、译码、取操作数、执行、写回等几个并行处理的过
程段。目前,高性能计算机都采用了指令流水线。
算术流水线:指运算操作步骤的并行。如流水加法器、流水
乘法器、流水除法器等。
处理机流水线:又叫宏流水,是指程序步骤的并行。由一串
级联的处理机组成流水线的各个过程段,每台处理机负责某
一特定的任务。数据从一台处理机输入,经处理后送入与第
二台计算机相连的存储器中。第二台处理机从该存储器取出
数据进行处理,然后传送给第三台处理机,如此串联下去。
处理机流水线应用在多机系统中。
76
4、流水线中的主要问题




要使流水线具有良好的性能,必须使流水线畅通流动,不发生断流。但是,
实现流水线的不断流是困难的。因为存在以下三种相关冲突。
资源相关:指多条指令进入流水线后,在同一机器周期内争用同一个功能部
件。例如,如果指令和数据放在同一个存储器中,且只有一个端口时,正在
执行的两条指令都需要访问存储器,就会发生资源相关冲突。
数据相关:在一个程序中,后一条指令的执行,必须等待前一条指令的执行
结果,两条指令就会发生数据相关冲突。在流水计算机中,指令的执行是重
叠进行的,前一条指令还没有结束,第二、三条指令就陆续开始工作。当后
继指令需要的操作数刚好是前一条指令的运算结果,便发生数据相关冲突。
控制相关:当执行转移指令时,转移条件是由前一条指令建立的,转移的执
行可能是顺序取下条指令,也可能是转移到新的目标地址取指令,由此而引
起流水线断流。
为了解决上述冲突,应采取各种措施:比如,为了解决资源相关冲突,可以
增加一个存储器,把指令和数据分开存放;为了解决数据相关冲突,可以在
CPU内部增设若干结果缓冲寄存器,临时保留运算结果,给后继指令使用;
为了解决控制相关冲突,可以设置“转移取”和“顺序取”两路指令预取队
列。
77