Presentation is loading. Please wait.

Presentation is loading. Please wait.

大连理工大学软件学院 赖晓晨 far.away@tom.com 第六章 中央处理部件CPU 计算机有五大部件:运算器、控制器、存储器、输入装置和输出装置,其中有四个部件是功能性部件,用来完成功能性指令。如运算器完成算术运算和逻辑运算指令,存储器完成写存储器和读存储器的指令,输入装置执行输入程序和数据的指令,输出装置执行输出运算情况和结果的指令。惟独控制器是用来控制其他部件以实现有关指令的功能。各个部件什么时候完成什么操作,都是由控制器提供各种操作控制命令,控制有关部件的工作,实现指令功能。控制器另一个功能

Similar presentations


Presentation on theme: "大连理工大学软件学院 赖晓晨 far.away@tom.com 第六章 中央处理部件CPU 计算机有五大部件:运算器、控制器、存储器、输入装置和输出装置,其中有四个部件是功能性部件,用来完成功能性指令。如运算器完成算术运算和逻辑运算指令,存储器完成写存储器和读存储器的指令,输入装置执行输入程序和数据的指令,输出装置执行输出运算情况和结果的指令。惟独控制器是用来控制其他部件以实现有关指令的功能。各个部件什么时候完成什么操作,都是由控制器提供各种操作控制命令,控制有关部件的工作,实现指令功能。控制器另一个功能"— Presentation transcript:

1 大连理工大学软件学院 赖晓晨 far.away@tom.com
第六章 中央处理部件CPU 计算机有五大部件:运算器、控制器、存储器、输入装置和输出装置,其中有四个部件是功能性部件,用来完成功能性指令。如运算器完成算术运算和逻辑运算指令,存储器完成写存储器和读存储器的指令,输入装置执行输入程序和数据的指令,输出装置执行输出运算情况和结果的指令。惟独控制器是用来控制其他部件以实现有关指令的功能。各个部件什么时候完成什么操作,都是由控制器提供各种操作控制命令,控制有关部件的工作,实现指令功能。控制器另一个功能是控制指令的执行顺序。 控制器是整个计算机的指挥中心,控制机器正常运行,也处理异常情况。控制器是整个机器的司令部,占据着特殊的位置 大连理工大学软件学院 赖晓晨

2 本章内容 6.1 计算机的硬件系统 6.2 控制器的组成 6.3 微程序控制计算机的基本原理 6.4 微程序设计技术
6.1 计算机的硬件系统 6.2 控制器的组成 6.3 微程序控制计算机的基本原理 6.4 微程序设计技术 6.5 硬布线控制的计算机 6.6 控制器的控制方式 6.7 流水线工作原理 6.8 计算机的加电及控制过程   当用计算机解决某个问题时,我们首先必须为它编写程序。程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据。一旦把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。专门用来完成此项工作的计算机部件称为中央处理器,通常简称CPU。 中央处理器(CPU)是整个计算机的核心,它包括运算器和控制器。本章着重讨论CPU的功能和组成,控制器的工作原理和实现方法,微程序控制原理,基本控制单元的设计以及先进的流水线技术. 重点掌握CPU的内部结构和工作原理,

3 第一节 计算机的硬件系统 早期CPU结构的特点 计算机信息处理的步骤 计算机的初始状态 分立元件 数据/地址线复用
加载:将(部分)程序和数据输入到主存中 运行:从“程序入口”开始运行 计算机的初始状态 寄存器的初始状态 程序计数器PC ★ 指令控制   程序的顺序控制称为指令控制。由于程序是一个指令序列,这些指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序进行。 ★ 操作控制   一条指令的功能往往是由若干个操作信号的组合来实现的,因此,CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。 ★ 时间控制   对各种操作实施时间上的定时称为时间控制。在计算机中,各种指令的操作信号以及一条指令的整个执行过程都受到时间的严格定时。 ★ 数据加工   数据加工就是对数据进行算术运算和逻辑运算处理

4 第一节 计算机的硬件系统 取指令→分析指令→执行指令 计算机的工作过程 指令的执行过程 CPU的地位和作用
加电→复位信号→执行程序→停机→停电 自检、引导程序、启动OS、执行用户程序 指令的执行过程 取指令→分析指令→执行指令 取数→执行→写回 CPU的地位和作用 指令控制、 操作控制、时序控制 、数据处理 ★ 指令控制   程序的顺序控制称为指令控制。由于程序是一个指令序列,这些指令的相互顺序不能任意颠倒,必须严格按程序规定的顺序进行。 ★ 操作控制   一条指令的功能往往是由若干个操作信号的组合来实现的,因此,CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。 ★ 时间控制   对各种操作实施时间上的定时称为时间控制。在计算机中,各种指令的操作信号以及一条指令的整个执行过程都受到时间的严格定时。 ★ 数据加工   数据加工就是对数据进行算术运算和逻辑运算处理

5 80X86 1978年 确立x86地位创造商业奇迹的CPU——8086。这个处理器标志着x86王朝的开始,为什么要纪念英特尔x86架构25周年?主要原因是从8086开始,才有了目前应用最广泛的PC行业基础。 1982年,英特尔发布了80286处理器,也就是俗称的286。这是英特尔第一个可以运行所有为其撰写的处理器,在发布后的六年中,全球一共交付了一千五百万台基于286的个人电脑。 1985年 真带领我们进入32位时代的CPU——80386,让我们进入了32位元的世代。 1989年 首尝RISC性能提升4倍的CPU——80486

6 1993年 第一款Pentium 1995年 首款专为服务器设计的CPU ——Pentium Pro 1997年 将多媒体技术摆上台面的CPU ——Pentium II 1999年 赛扬/奔3/奔3至强齐聚首 2000年 空前强大经久不衰的系列CPU— Pentium 年 里程碑似的64位时代到来—— Itanium 2003年 移动、网络、节能的铁骑—— Pentium M

7 CPU的主要技术参数 1.内部工作频率 2.外部工作频率 内频=外频×倍频 又称为内频或主频,它是衡量CPU速度的重要参数。
CPU品质的高低直接决定了一个计算机系统的档次,而CPU的主要技术参数可以反映出CPU的大致性能。 1.字长 CPU的字长是指在单位时间内同时处理的二进制数据的位数。CPU按照其处理信息的字长可以分为:8位CPU、16位CPU、32位CPU以及64位CPU等。 内部工作频率又称为内频或主频,它是衡量CPU速度的重要参数。在其他性能指标相同时,CPU的主频越高,CPU的速度也就越快。内部时钟频率的倒数是时钟周期,这是CPU中最小的时间元素。每个动作至少需要一个时钟周期。 最初的8086和8088执行一条指令平均需要12个时钟周期;80286和80386的速度提高,每条指令大约要4.5个时钟周期;80486的速度进一步提高,每条指令大约2个时钟周期;Pentium具有双指令流水线,并有其他一些改进,使得每个时钟周期执行1到2条指令;而Pentium pro、Pentium Ⅱ/Ⅲ每个时钟周期可以执行3条或更多的指令 外部工作频率,也叫前端总线频率或系统总线时钟频率,它是由主板为CPU提供的基准时钟频率。由于正常情况下,CPU总线频率和主存总线频率相同,所以也是CPU与主存交换数据的频率。 在早期,CPU的内频就等于外频。目前,CPU的内频越来越高,相比之下主存的速度还很缓慢,如果外频设计得跟内频同步,则主存都将无法跟上CPU的速度。所以现在外频跟内频不再只是一比一的同步关系,从而出现了所谓的内部倍频技术,导致了“倍频”的出现。内频、外频和倍频三者之间的关系是: 内频=外频×倍频

8 决定了CPU与外部Cache、主存以及I/0设备之间进行一次数据传输的信息量。
对提高计算机的速度起着关键的作用。片内Cache的运行速度与内频相同或接近,容量可达几十KB~几百KB。 4.工作电压 5.地址总线宽度 决定了CPU可以访问的最大的物理地址空间. 6.数据总线宽度 决定了CPU与外部Cache、主存以及I/0设备之间进行一次数据传输的信息量。 7.制造工艺 线宽是指芯片上的最基本组成单元—三极管基极的宽度 线宽越小,意味着芯片上包括的晶体管数目越多。 片内Cache的容量和工作速率对提高计算机的速度起着关键的作用。过去的CPU一般没有片内Cache,而近年的CPU普遍均设有片内Cache。片内Cache的运行速度与内频相同或接近,容量可达几十KB~几百KB。 5.工作电压 工作电压指的是CPU正常工作所需的电压。早期CPU的工作电压一般为5V,以致于CPU的发热量太大,使得寿命缩短。随着CPU的制造工艺与内频的提高,近年来各种CPU的工作电压逐步下降。 地址总线宽度决定了CPU可以访问的最大的物理地址空间,简单地说就是CPU到底能够使用多大容量的主存。 7.数据总线宽度 数据总线宽度则决定了CPU与外部Cache、主存以及输入输出设备之间进行一次数据传输的信息量。 数据总线和地址总线互相独立,数据总线宽度指明了芯片的信息传递能力,而地址总线宽度说明了芯片可以处理多少主存单元。 线宽是指芯片上的最基本功能单元—门电路的宽度,因为实际上门电路之间连线的宽度与门电路的宽度相同,所以可以用线宽来描述制造工艺。线宽越小,意味着芯片上包括的晶体管数目越多。Pentium II的线宽是0.35微米,晶体管数达到7.5M个;Pentium Ⅲ的线宽是0.25微米,晶体管数达到9.5M个;Pentium 4的线宽是0.18微米,晶体管数达到42M个。386—27万

9

10

11

12 CPU的实现方式 1.使用通用CPU 16位->32位->64位 2.自行设计CPU
技术下移(流水线、高速缓存、并行技术、虚拟存储器) CPU品质的高低直接决定了一个计算机系统的档次,而CPU的主要技术参数可以反映出CPU的大致性能。 1.字长 CPU的字长是指在单位时间内同时处理的二进制数据的位数。CPU按照其处理信息的字长可以分为:8位CPU、16位CPU、32位CPU以及64位CPU等。 内部工作频率又称为内频或主频,它是衡量CPU速度的重要参数。在其他性能指标相同时,CPU的主频越高,CPU的速度也就越快。内部时钟频率的倒数是时钟周期,这是CPU中最小的时间元素。每个动作至少需要一个时钟周期。 最初的8086和8088执行一条指令平均需要12个时钟周期;80286和80386的速度提高,每条指令大约要4.5个时钟周期;80486的速度进一步提高,每条指令大约2个时钟周期;Pentium具有双指令流水线,并有其他一些改进,使得每个时钟周期执行1到2条指令;而Pentium pro、Pentium Ⅱ/Ⅲ每个时钟周期可以执行3条或更多的指令 外部工作频率,也叫前端总线频率或系统总线时钟频率,它是由主板为CPU提供的基准时钟频率。由于正常情况下,CPU总线频率和主存总线频率相同,所以也是CPU与主存交换数据的频率。 在早期,CPU的内频就等于外频。目前,CPU的内频越来越高,相比之下主存的速度还很缓慢,如果外频设计得跟内频同步,则主存都将无法跟上CPU的速度。所以现在外频跟内频不再只是一比一的同步关系,从而出现了所谓的内部倍频技术,导致了“倍频”的出现。内频、外频和倍频三者之间的关系是: 内频=外频×倍频

13 80386微机系统 时钟发 生器 80287 或387 80386 82258DMA 控制器 总线控 制逻辑 准备好 逻辑 8259A中
断控制器 存储器 输入输 出设备 中断设备 reset 复位后PC指针为0FFFFFFF0H CLK CLK2 总线

14 80386微机系统 时钟发 生器 80287 或387 80386 82258DMA 控制器 总线控 制逻辑 准备好 逻辑 8259A中
断控制器 存储器 输入输 出设备 中断设备 reset 复位后PC指针为0FFFFFFF0H CLK CLK2 总线 时钟发生器: 1。上电时产生reset信号,整机复位 2。确定PC指针(CPU执行的第一条指令的地址) 3。一般在上述位置放置一条转移指令

15 80386微机系统 时钟发 生器 80287 或387 80386 82258DMA 控制器 总线控 制逻辑 准备好 逻辑 8259A中
断控制器 存储器 输入输 出设备 中断设备 reset 复位后PC指针为0FFFFFFF0H CLK CLK2 总线 80387: 1。负责浮点运算和高精度整数运算 2。与386并行工作

16 80386微机系统 总线控制逻辑: 386通过总线与存储器、外设进行信息交换 时钟发 生器 80287 或387 80386
82258DMA 控制器 总线控 制逻辑 准备好 逻辑 8259A中 断控制器 存储器 输入输 出设备 中断设备 reset 复位后PC指针为0FFFFFFF0H CLK CLK2 总线

17 80386微机系统 DMA控制器: 直接存储器访问,完成外设和内存之间直接信息交换 时钟发 生器 80287 或387 80386
总线控 制逻辑 准备好 逻辑 8259A中 断控制器 存储器 输入输 出设备 中断设备 reset 复位后PC指针为0FFFFFFF0H CLK CLK2 总线

18 80386微机系统 中断控制器: 完成中断请求、中断源识别等工作 时钟发 生器 80287 或387 80386 82258DMA 控制器
总线控 制逻辑 准备好 逻辑 8259A中 断控制器 存储器 输入输 出设备 中断设备 reset 复位后PC指针为0FFFFFFF0H CLK CLK2 总线

19 80386微机系统 准备好逻辑: 提供握手信号,由主存提供给cpu,表示主存的操作已经完成。 时钟发 生器 80287 或387 80386
82258DMA 控制器 总线控 制逻辑 准备好 逻辑 8259A中 断控制器 存储器 输入输 出设备 中断设备 reset 复位后PC指针为0FFFFFFF0H CLK CLK2 总线

20 80386微机系统 目前上述所有部件都已集成到CPU或芯片组内部(北桥、南桥) 时钟发 生器 80287 或387 80386
82258DMA 控制器 总线控 制逻辑 准备好 逻辑 8259A中 断控制器 存储器 输入输 出设备 中断设备 reset 复位后PC指针为0FFFFFFF0H CLK CLK2 总线

21

22 80386的结构及外部连线 指令部件 取指、译码、产生控制信号 执行部件 ALU、乘法部件、寄存器组 存储管理部件 确定存储器地址

23 80386的结构及外部连线 80386 地址总线A2-A31 BE3# BE2# BE1# BE0# W/R# D/C# M/IO#
LOCK# PEREQ BUSY# ERROR# Vcc GND CLK2 数据总线 D0-D31 ADS# NA# BS16# READY# HOLD HLDA INTR NMI RESET 线 总线 仲裁 使 周期 定义 协处 理器 信号 电源

24 80386的结构及外部连线 80386 BE0-BE3:A0、A1 在386内部译码,分 别是字节0-字节3的 选择信号 W/R#:读写
D/C# M/IO# LOCK# PEREQ BUSY# ERROR# Vcc GND CLK2 数据总线 D0-D31 ADS# NA# BS16# READY# HOLD HLDA INTR NMI RESET 线 总线 仲裁 使 周期 定义 协处 理器 信号 电源 BE0-BE3:A0、A1 在386内部译码,分 别是字节0-字节3的 选择信号 W/R#:读写 D/C#:数据周期 取指周期 M/IO#:访存、外设 LOCK#:总线锁定信 号,低电平时不允 许cpu让出 总线控制权

25 80386的结构及外部连线 80386 ADS:地址状态信号 NA#:存储器或IO送到 cpu的信号, 表示本次读写 虽未完成,但
地址总线A2-A31 BE3# BE2# BE1# BE0# W/R# D/C# M/IO# LOCK# PEREQ BUSY# ERROR# Vcc GND CLK2 数据总线 D0-D31 ADS# NA# BS16# READY# HOLD HLDA INTR NMI RESET 线 总线 仲裁 使 周期 定义 协处 理器 信号 电源 ADS:地址状态信号 NA#:存储器或IO送到 cpu的信号, 表示本次读写 虽未完成,但 已经可以进行 下一次写操作。 BS16:当前使用16 位操作 HOLD:外设申请总线 HLDA:CPU应答 其时386所有 控制引脚 均高阻

26 80386的结构及外部连线 80386 INTR:外中断 NMI:不可屏蔽中断 RESET:复位 PEREQ:协处理器 请求,协处
地址总线A2-A31 BE3# BE2# BE1# BE0# W/R# D/C# M/IO# LOCK# PEREQ BUSY# ERROR# Vcc GND CLK2 数据总线 D0-D31 ADS# NA# BS16# READY# HOLD HLDA INTR NMI RESET 线 总线 仲裁 使 周期 定义 协处 理器 信号 电源 INTR:外中断 NMI:不可屏蔽中断 RESET:复位 PEREQ:协处理器 请求,协处 理器要求cpu 传送一个字 BUSY#:协处理器忙 ERROR:协处理器 出错

27 总结 上述信号由80386的控制部件产生,从而完成CPU的一系列动作。
控制器的功能:发出满足一定时序关系的控制信号,实现指令系统所规定的各条指令的功能,并保证计算机系统正常运行。

28 第二节、控制器的组成 CPU:运算器、控制器 控制器 运算器 组成: 程序计数器(PC)、指令寄存器(IR)、指令译码
器(ID)、时序产生器和操作控制器 功能: 完成协调和指挥整个计算机系统的操作 取指/分析指令/控制数据 运算器 组成: 算术逻辑单元(ALU)、累加器(AC)、 数据缓冲器(DR)和状态条件寄存器(PSW) 功能: 执行所有的算术运算/逻辑运算 控制器   由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。它的主要功能有: (1)从内存中取出一条指令,并指出下一条指令在内存中的位置; (2)对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作; (3)指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。 运算器   由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件。相对控制器而言,运算器接受控制器的命令而进行动作 ,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。 运算器有两个主要功能: (1)执行所有的算术运算; (2)执行所有的逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。

29 1. 控制器的功能 1. 取指令 当程序已在存储器中时,首先根据程序入口取出第一条指令,为此要发出指令地址及控制信号。然后不断取出指令。 2. 指令译码 解释指令/分析指令。是对当前取得的指令进行分析,指出它要求作什么操作,并产生相应的操作控制命令,如果参与操作的数据在存储器中,还需要形成操作数地址。 3. 执行指令 根据分析指令时产生的“操作命令”和“操作数地址”形成相应的操作控制信号序列,通过CPU及I/O设备的执行,实现每条指令的功能,及对运算结果的处理和下条指令地址的形成。 计算机对信息进行处理(或计算)是通过程序的执行而实现的,程序是完成某个确定算法的指令序列,要预先存放在存储器中。

30 4. 控制程序和数据的输入与结果输出 5. 对异常情况和某些请求的处理
根据程序的安排或人的干预,在适当的时候向输入输出设备发出一些相应的命令来完成I/O功能,这实际上也是通过执行程序来完成的。 5. 对异常情况和某些请求的处理 机器可能出现异常情况,或某些部件和设备可能发出请求信号; 中断请求:CPU执行完本条指令后,转去执行中断程序,完毕后返回。 DMA请求:CPU释放总线给I/O设备,当其传送数据操作后,CPU从暂时中止的机器周期开始继续执行指令。 计算机不断重复顺序执行上述三种基本操作:取指、分析、执行;再取指、再分析、再执行……,如此循环,直到遇到停机指令或外来的干预为止。 此外,程序和数据要输入机器,运算结果要输出,机器运行过程中出现的某些异常情况或请求要进行处理,人与机器之间要进行对话,因此控制器还应该具有以下功能: 当机器出现某些异常情况,此时由这些部件或设备发出: (1) “中断请求”信号。待CPU执行完当前指令后,响应该请求,中止当前执行的程序,转去执行中断程序。当处理完毕后,再返回原程序继续运行下去。或(2)DMA请求信号。等CPU完成当前机器周期操作后,暂停工作,让出总线给I/O设备,在完成I/O设备与存储器之间的传送数据操作后,CPU从暂时中止的机器周期开始继续执行指令。DMA操作不允许改变CPU中任一寄存器状态(除DMA专用部件外),否则会影响CPU工作的正确性。

31 2. 控制器的组成 1. 程序计数器(PC) 2. 指令寄存器(IR) 3. 指令译码器(ID)
指令地址寄存器。存放当前正在执行的指令地址/要执行的下一条指令地址;指令预取,增加一个程序计数器. 2. 指令寄存器(IR) 用以存放当前正在执行的指令。 3. 指令译码器(ID) 操作码译码器,对指令寄存器中的操作码进行分析解释,产生相应的控制信号。

32 4. 脉冲源及启停线路  脉冲源产生时钟脉冲,机器周期和工作脉冲的基准信号;机器刚加电时,还应产生一个总清信号(reset)。  启停线路保证可靠地送出或封锁时钟脉冲,控制时序信号的发生或停止,从而启动机器工作或使之停机。 5. 时序控制信号形成部件 当机器启动后,在CLK时钟作用下,根据当前正在执行的指令的需要,产生相应的时序控制信号,并根据被控功能部件的反馈信号调整时序控制信号。 在执行指令过程中,需要形成有一定时序关系的操作控制信号序列,为此还需要下述组成部分。

33 图6.3 控制器基本组成的框图 图6.3 控制器基本组成框图
图6.3 控制器基本组成的框图 图6.3 控制器基本组成框图 控制器的基本组成包括指令部件,地址部件,时序电路及操作命令生成电路。 1. 指令部件 指令部件包括:指令计数器、指令寄存器、指令译码器。在具有指令预取功能的机器中,还应包括指令队列缓冲寄存器。 指令计数器,又叫程序计数器(Program Counter),简称PC,用于存放当前执行指令的地址。每做完一条指令,PC的内容自动加1,指出下条指令地址。PC寄存器的字长与主存容量有关。如果主存容量为64K,则 PC用16位触发器实现。 (2) 指令寄存器(Instruction Register),简称IR,指令寄存器存放本条要执行的指令,等待分析、解释,进而控制指令完成指令规定的各种操作。指令寄存器从数据总线上接收由主存读出的指令,并一直保持到本条指令执行完毕。指令中的操作码字段送给指令译码器解释翻译,地址码字段送地址加法器,进行地址计算。 (3) 指令译码器(Instruction Decoder)用于分析二进制编码的操作码功能,给出相应的操作控制电位。因此指令译码的过程就是识别机器指令表示的各种操作的过程。 例如PDP-11双操作数指令,操作码字段占4位,最高位为字节标志位,实际操作码是3位,可表示23=8种运算,000用于扩展操作码时使用,Rs 表示源操作数地址,Rd表示目的操作数地址。 2. 地址部件 计算机中为了实现基址寻址、变址寻址、相对寻址,专门设置了有关地址寄存器,以及程序指针、堆栈指针等。他们往往需要与指令寄存器中的位移量做加法,形成操作数有效地址。为了加快得到有效地址,还设置专门的地址加法器,实现寻址等要求。

34 3.指令执行过程 (1). 组成控制器的基本电路 具有记忆功能 触发器以及由它组成的寄存器、计数器和存储单元等。 没有记忆功能
特点:当输入信号消失后,原信息仍保留其中。 没有记忆功能 门电路及由它组成的加法器、ALU和各种逻辑电路等。 特点: 当输入信号改变后,输出跟着变化。

35 (2) 一条加法指令的执行过程 指令执行过程举例 运算器组成 主要操作 8个通用寄存器GR, 算术逻辑运算部件ALU,标志触发器。
① 从存储器取指令,送入指令寄存器, 并进行操作码译码。 ② 计算数据地址,将有效地址送地址寄存器。 ③ 从存储器取数。 ④ 进行加法运算,结果送寄存器,并置状态位.

36 指令功能 (rs)+( (rs1)+disp ) →rd
指令格式 OP rs, rd rs1 imm / disp 指令功能 (rs)+( (rs1)+disp ) →rd 控制信号 1 取指 译码 PC →AB, W/R=0, M/IO=1; DB →IR; PC+1 →PC 2 计算数据地址 rs1 → GR, (rs1) → ALU , disp → ALU ; + ; ALU → AR 3 主存 取数 AR → AB, W/R=0, M/IO=1; DB →DR; 4 加法 运算 rs → GR, (rs) → ALU , DR → ALU ; + ; rd→GR; ALU → rd;置各标志位

37 取指译码:PC →AB, W/R=0, M/IO=1; DB →IR; PC+1 →PC

38 计算地址:rs1 → GR, (rs1) → ALU , disp → ALU ; + ; ALU → AR

39 取数:AR → AB, W/R=0, M/IO=1; DB →DR;

40 加法:rs → GR, (rs) → ALU , DR → ALU ;+ ; rd →GR;ALU → rd

41 图6.7 加法指令时序图 取指 译码 PC →AB, W/R=0, M/IO=1; DB →IR; PC+1 →PC 计算数据地址
rs1 → GR, (rs1) → ALU , disp → ALU ; + ; ALU → AR 主存 取数 AR → AB, W/R=0, M/IO=1; DB →DR; 加法 运算 rs → GR, (rs) → ALU , DR → ALU ; + ; rd→GR; ALU → rd;置各标志位 图6.7 加法指令时序图

42 根据N/Z/V/C的状态,决定是否转换。
(3) 条件转移指令的执行过程 指令功能: 根据N/Z/V/C的状态,决定是否转换。 如转移条件成立,则转移到本条指令所指定的地址, 否则顺序执行下一条指令。 指令操作: ①从存储器取指令,送入指令寄存器,并进行操作码译码。 ②如转移条件成立,根据指令规定的寻址方式计算有效地址,常采用相对寻址方式,EA=PC + disp. PC → ALU , disp → ALU ; + ; ALU → PC 本条指令只需要两个机器周期,如转移条件成立,在第二机器周期增加一个ALU→PC信号;另外,如为相对转移,则用PC→ALU信号取代加法指令第二周期中的(rs1)→ALU信号,其他信号与加法指令的前两个机器周期中的信号相同。 某些计算机对条件转移指令的功能规定为:先进行比较运算,根据运算(比较)结果置条件码,并根据条件码决定是否转移。要完成这样的功能显然要增加周期数。

43 产生控制信号的方式 控制器 硬布线控制 / 组合逻辑控制器 微程序控制 微程序设计技术 实质是将程序设计技术和存储技术相结合:
即用程序设计的思想方法来组织操作控制逻辑, 将微操作控制信号按一定规则进行信息编码,形成控制字(微指令),再把这些微指令按时间先后排列起来构成微程序, 存放在一个只读的控制存储器中。 硬布线控制 / 组合逻辑控制器 微程序控制

44 6.3 微程序控制计算机的 基本工作原理 一.微程序设计的提出与发展 1950年 M.V.Wilkes 提出:
6.3 微程序控制计算机的 基本工作原理 一.微程序设计的提出与发展 1950年 M.V.Wilkes 提出: 一条机器指令可以分解为许多基本的微命令序列。 并且首先把这种思想用于计算机控制器的设计。 1964年,在IBM360系列机上采用了微程序设计技术,解决了指令系统的兼容问题。 20世纪70年代VLSI技术的发展,推动了微程序设计技术的发展和应用. 目前,大多数计算机都采用微程序设计技术。 微程序设计技术的实质是将程序设计技术和存储技术相结合,即用程序设计的思想方法来组织操作控制逻辑,将微操作控制信号按一定规则进行信息编码(代码化),形成控制字(微指令),再把这些微指令按时间先后排列起来构成微程序,存放在一个只读的控制存储器中。 1.微程序设计的提出与发展 微程序设计的概念和原理是由M.V.Wilkes教授提出来的:一条机器指令可以分解为许多基本的微命令序列。并且首先把这种思想用于计算机控制器的设计。但是由于当时还不具备制造专门存放微程序的控制存储器的技术,所以在十几年时间内实际上并未真正使用。直到1964年,IBM公司在IBM360系列机上成功地采用了微程序设计技术,解决了指令系统的兼容问题。20世纪70年代以来,由于VLSI技术的发展,推动了微程序设计技术的发展和应用,目前,大多数计算机都采用微程序设计技术。

45 二. 微程序控制的基本概念 微操作 一条指令是通过按照一定次序执行一系列基本操作完成的,这些基本操作称为微操作,又称为微命令。 微指令
二. 微程序控制的基本概念 微操作 一条指令是通过按照一定次序执行一系列基本操作完成的,这些基本操作称为微操作,又称为微命令。 微指令 在微程序控制计算机中,将由同时发出的控制信号所形成的一组微操作称为微指令,微指令就是把同时发出的控制信号汇集起来组成的。一条指令是由若干条微指令构成的。 微程序 计算机的程序由指令序列组成,而计算机每条指令的功能均由微指令序列解释完成,这些微指令序列的集合就是微程序。 ⑴微命令和微操作 一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的、不可再分解的操作。在微程序控制的计算机中,将控制部件向执行部件发出的各种控制命令叫做微命令,它是构成控制序列的最小单位。例如:打开或关闭某个控制门的电位信号、某个寄存器的打入脉冲等。因此,微命令是控制计算机各部件完成某个基本微操作的命令。

46 控制存储器 定义:存放微程序的存储器,内容包含 组成:
控制命令(信号) 下一条微指令地址(简称为下址) 组成: 只读存储器 ROM / PROM。一般计算机指令系统是固定的,所以实现指令系统的微程序也是固定的,所以微程序可以用只读存储器来存放。 机器内控制信号很多,决定下址的地址码也有一定宽度,所以控存的字长比机器字长要长的多。 执行一条指令是执行一段存放在控制存储器中的微程序

47 三. 实现微程序控制的基本原理 1.控制信号 执行一条加法指令为例,需要四条微指令,每条微指令所需控制信号如下:
三. 实现微程序控制的基本原理 1.控制信号 执行一条加法指令为例,需要四条微指令,每条微指令所需控制信号如下: (1) 取指微指令 ① 指令地址送地址总线:PC→AB(1) ② 发访存控制命令:ADS(21),M/IO=1(22),W/R=0(23)。 从存储器取指令送数据总线。 ③ 指令送指令寄存器:DB→IR(5) ④ 程序计数器+1:PC+1(3) (2) 计算地址微指令 ① 取两个源操作数(计算地址用): rs1→GR(8),(rs1)→ALU(10),disp→ALU(4)。 ② 加法运算:“+”(13)。 ③ 有效地址送地址寄存器:ALU→AR(19)。 实现微程序控制的基本原理 1. 控制信号 将上一节讲到的运算器和控制器组合在一起,即为图6.8。本图假设ALU可以进行加(+)、减(-)、逻辑加(∨)逻辑乘(∧)四种运算,图中的控制信号用符号1,2,3,…表示,其意义见表6.1。 仍以执行一条加法指令为例,它由四条微指令解释执行,一条微指令中的所有控制信号是同时发出的。每条微指令所需的控制信号如下:

48 加法指令的控制信号 (3) 取数微指令 (4) 加法运算和送结果微指令 ① 数据地址送地址总线:AR→AB(20)。
② 发访存控制命令:ADS(21),M/IO(22),W/R(23)。 由存储器将数据送数据总线DB。 ③ 数据送数据寄存器:DB→DR(6) (4) 加法运算和送结果微指令 ① 两源操作数送ALU: rs→GR(9),(rs)→ALU(11);DR→ALU(12)。 ② 加法运算:“+”(13) ③ 送结果:ALU→GR(17)

49 微指令的形成 微指令最简单的组成形式是将每个控制信号用一个控制位来表示,当该位为1时,表示有此控制信号,为0时表示没有这个控制信号。同一条微指令的所有控制信号同时发出。 M/IO、W/R则是根据访存还是访问I/O,是读还是写相应的设置为1或者0。 每条微指令由两个字段组成 控制字段:长度为所能产生的控制信号的总数。 下址字段:长度要能寻址全部控存空间

50 1 2 … 22 23 24 35 图6.9 加法指令的微指令编码 控制字段 下地址字段 PC→AB W/R
控制字段 下地址字段 1 2 22 23 24 35 PC→AB W/R 微指令是指控制存储器中的一个单元的内容,即控制字,是若干个微命令的集合。存放控制字的控制存储器的单元地址就称为微地址。 一条微指令通常包含两部分: ①操作控制字段,又称微操作码字段,用以产生某一步操作所需的各微操作控制信号; ②顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令 图6.9 加法指令的微指令编码

51 执行时,把当前需要执行的微指令从控存中取出,放到微指令寄存器中,该寄存器的各个控制位直接连到各个控制门上。
控制字段 下地址字段 1 2 22 23 24 35 PC→AB W/R 实际微指令字的长度大于100位 执行时,把当前需要执行的微指令从控存中取出,放到微指令寄存器中,该寄存器的各个控制位直接连到各个控制门上。 微指令也可以用流程图来表示,图中每一个方框表示一条微指令,方框上方表示的是该微指令的地址,方框内为执行的操作,右下角为下址。 微指令是指控制存储器中的一个单元的内容,即控制字,是若干个微命令的集合。存放控制字的控制存储器的单元地址就称为微地址。 一条微指令通常包含两部分: ①操作控制字段,又称微操作码字段,用以产生某一步操作所需的各微操作控制信号; ②顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令

52 取指微指令的操作对所有的指令都是相同的,所以是一条公用的微指令,其下址由操作码译码产生。
微程序也可以用流程图来表示(图6.10)。图中每一方框表示一条微指令,方框上方表示的是该条微指令的地址,方框内为执行的操作,在其右下角为下一条要执行的微指令的地址,表示在微指令的下址字段中(见图6.9)。取指微指令的操作对所有的指令都是相同的。所以是一条公用的微指令,其下址由操作码译码产生。 取指微指令的操作对所有的指令都是相同的,所以是一条公用的微指令,其下址由操作码译码产生。

53 2.微程序控制器 当指令取到IR中后,对操作码进行译码,得到相应指令的第一条微指令的地址,之后,都由微指令的下址字段负责指出下一条微指令的地址。 因此,操作码实质是只读的控存的输入地址,根据此地址从控存中取得微指令,把微指令送到微指令寄存器中,各位与受控门直接相连,于是提供了各种操作的控制信号。

54 3. 时序信号及工作脉冲的形成 4.电路配合中的常见问题 5. 微程序控制计算机的工作过程简单总结。 计算机启动过程 置PC,并在微指令寄存器中设置取指微指令 停机和停电的不同:前者保持内存和寄存器内容不变 停电后自启动:大电容,保存断点和现场

55 3.微程序方案的特点 (1) 微程序控制器结构整齐,便于设计和生产。 简化设计。 (2) 方便地修改和扩充机器指令系统
更换控存ROM改善指令系统,满足不同用户的需要。 (3) 缩短研制周期 有利于实现计算机结构系列化和积木化的要求。 (4) 使用诊断微程序,方便检查排除故障。 提高机器的有效使用时间。 执行一条机器指令的时间较长 对结构简单的小型计算机不经济。 微程序方案的特点 (1) 微程序控制器比常规组合逻辑控制器结构整齐,便于设计和生产。特别是采用半导体只读存储器(ROM),对于缩小机器体积,简化设计都有不少好处。 (2) 可以方便地修改和扩充机器指微程序方案的缺点: (1) 执行一条机器指令的时间较长,因为完成一条机器指令,要执行一段微程序,要多次访问控存才行。因此对控存的速度要求较高。 (2) 对一些结构简单的小型计算机,采用控存方案可能是不经济的。令系统,甚至可以使用更换控存ROM的办法,获得指令系统完全不同的另一个机器,满足不同用户的需要。 (3) 微程序控制器可以和计算机其他部件的设计工作平行进行。缩短研制周期,有利于实现计算机结构系列化和积木化的要求。 (4) 使用诊断微程序,方便检查故障、排除故障的工作。提高机器的有效使用时间。

56 6.4 微程序设计技术 一.微指令的编译法(编码译码方法) 缩短 指令字长 减少 微程序长度 提高 执行速度 1. 直接控制法
6.4 微程序设计技术 缩短 指令字长 减少 微程序长度 提高 执行速度 一.微指令的编译法(编码译码方法) 1. 直接控制法 操作控制字段中的各位分别可以直接控制计算机,无须进行译码。每个微命令对应并控制数据通路中的一个微操作。 特点:结构简单,并行性强,操作速度快, 微指令字长。 微指令的编译法(编码译码方法) 1. 直接控制法 在微指令的控制字段中,每一位代表一个微命令,在设计微指令时,是否发出某个微命令,只要将控制字段中相应位置成“1”或“0”,这样就可打开或关闭某个控制门,这就是直接控制法,在6.3节中所讲的就是这种方法。但在某些复杂的计算机中,微命令甚至可多达三四百个,这使微指令字长达到难以接受的地步,并要求机器有大容量控制存储器,为了改进设计出现了以下各种编译法。

57 2. 字段编译法 ⑴ 字段直接编译法 微周期:一条微指令所需的执行时间。 微命令的相斥与相容性
选出互斥的微命令,并将这些微命令编成一组,称为微指令字的一个字段,用二进制编码来表示。 在微指令寄存器的输出端,为该字段增加一个译码器,该译码器的输出即为原来的微命令。 这种方法将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法。 2. 字段直接编译法 在计算机中的各个控制门,在任一微周期内,不可能同时被打开,而且大部分是关闭的(即相应的控制位为“0”)。所谓微周期,指的是一条微指令所需的执行时间。如果有若干个(一组)微命令,在每次选择使用它们的微周期内,只有一个微命令起作用,那么这若干个微命令是互斥的。选出互斥的微命令,并将这些微命令编成一组,成为微指令字的一个字段,用二进制编码来表示。而在微指令寄存器的输出端,为该字段增加一个译码器,该译码器的输出即为原来的微命令(图6.21)。

58 字段长度 微命令数 2 2~3 3 4~7 4 8~15 图6.21 字段直接编译法 每个小段留出一个编码,一般为全零,表示不发出微命令

59 2. 字段编译法 ⑵ 字段间接编译法 一个字段的某些编码需要与其他字段的编码来联合定义微命令, 称为字段间接编译法,又称为隐式编码或多重定义编码方法。 这种方法将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法。 2. 字段直接编译法 在计算机中的各个控制门,在任一微周期内,不可能同时被打开,而且大部分是关闭的(即相应的控制位为“0”)。所谓微周期,指的是一条微指令所需的执行时间。如果有若干个(一组)微命令,在每次选择使用它们的微周期内,只有一个微命令起作用,那么这若干个微命令是互斥的。选出互斥的微命令,并将这些微命令编成一组,成为微指令字的一个字段,用二进制编码来表示。而在微指令寄存器的输出端,为该字段增加一个译码器,该译码器的输出即为原来的微命令(图6.21)。

60 图6.22 字段间接编译法 3. 字段间接编译法 字段间接编译法是在字段直接编译法的基础上,进一步缩短微指令字长的一种编译法。如果在字段直接编译法中,还规定一个字段的某些微命令,要兼由另一字段中的某些微命令来解释,称为字段间接编译法。如图6.22所示。 本方法进一步减少了指令长度,但很可能会削弱微指令的并行控制能力,因此通常只作为直接编译法的一种辅助手段。 4. 常数源字段E 在微指令中,一般设有一个常数源字段E,就如指令中的直接操作数一样。E字段一般仅有几位,用来给某些部件发送常数,故有时称为发射字段。该常数有时作为操作数送入ALU运算;有时作为计算器初值,用来控制微程序的循环次数等。 5. 其他 诸如微操作码编译法

61 字段编码法中操作控制字段的分段原则: ① 把互斥性的微命令分在同一段内, 兼容性的微命令分在不同段内。 提高信息的利用率,缩短微指令字长;
②每个小段中包含的信息位不能太多, 否则将增加译码线路的复杂性和译码时间。 ③每小段留出一个状态, 表本字段不发出微命令。 ④常数源E:微指令中一般有一个字段用来给某些部件发送常数,例如控制循环、作为操作数送ALU等。 字段编码法中操作控制字段的分段原则: ①把互斥性的微命令分在同一段内,兼容性的微命令分在不同段内。这样不仅有助于提高信息的利用率,缩短微指令字长,而且有助于充分利用硬件所具有的并行性,加快执行的速度。 ②应与数据通路结构相适应。 ③每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。 ④一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此当某字段的长度为三位时,最多只能表示七个互斥的微命令,通常用000表示不操作。

62 二. 微程序流的控制 微地址: 微程序流的控制 产生后继微指令地址的方法 微程序控制结构:顺序、转移、微循环、微子程序
二. 微程序流的控制 微地址: 现行微指令所在的控制存储器单元的地址称为现行微地址 下地址: 现行微指令执行完后,要执行的下一条微指令为后继微指令,其所在的控存单元地址称为后继微地址,也称为下址。 微程序流的控制 当前微指令执行后,怎样产生后继微指令的微地址。 产生后继微指令地址的方法 (1) 由指令操作码译码器产生后继微地址 (2) 由微指令的下址字段指出后继微地址 微程序控制结构:顺序、转移、微循环、微子程序

63 微程序控制器逻辑框图 微程序控制器的基本原理:当计算机执行程序时,总是按照指令计数器PC的内容作为指令地址,从主存储器中取出指令,放在指令寄存器IR中。微程序控制器根据机器指令操作码决定微程序的入口。选择控存中该机器指令微程序的第一条微指令,送入微指令寄存器μIR。微指令的操作控制字段DOCF,给出各种控制信号(微命令),控制计算机各个部件完成指定操作。同时微指令的顺序控制 字段给出后继微指令的地址,按照规定的顺序由控制存储器取出第二条微指令。取出一条微指令,执行一条微指令,直到完成机器指令的功能为止。

64 产生后继微指令地址的几种方法 1.以增量方式产生 顺序执行微指令: 后继微地址由现行微地址 加上增量( +1 )形成; 转移执行:
由下址和转移条件共同产生一个转移微地址 特点: 下地址字段短; 程序转移不灵活。 在实际应用中,存在多种变化情况。 与程序设计相似,在微程序设计中除了顺序执行微程序外还存在转移功能和微循环程序与微子程序等,这将影响下址的形成。 1. 产生后继微指令地址的几种方法 (1) 以增量方式产生后继微地址。 在顺序执行微指令时,后继微地址由现行微地址加上一个增量(通常为1)形成的;而在非顺序执行时则要产生一个转移微地址,如图6.23所示。

65 2.增量与下址字段结合产生后继微地址 微指令的下址分为两部分 微程序实现转移时,BAF→μPC; 否则顺序执行下一条微指令(μPC+1)。
可从控制存储器的任一单元取微指令; 转移灵活,但增加了微指令的长度。 ② 比μPC短: 由原来的μPC的若干位与BAF组合成转移微地址; 转移地址受到限制,但可缩短微指令长度。 转移控制字段BCF 转移地址字段BAF BAF的长度有两种情况: ① 与μPC的位数相等;可以从控制存储器的任一单元取微指令。 ② 比μPC短;考虑到转移点在μPC附近,或者在控制存储器的某区域内,所以由原来的μPC的若干位与BAF组合成转移微地址。 第一种情况,转移灵活,但增加了微指令的长度;第二种情况,转移地址受到限制,但可缩短微指令长度。

66 图6.24 “增量与下址字段”方式的原理图 顺序执行时后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

67 BCF定义的8个 微命令: BCF=0 顺序执行微命令 uPC+1为后继地址 图6.24 “增量与下址字段”方式的原理图
顺序执行时后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

68 BCF定义的8个 微命令: BCF=1 条件转移微命令 当运算结果为0时, 将BAF送uPC, 否则uPC+1送uPC
图6.24 “增量与下址字段”方式的原理图 顺序执行时后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

69 BCF定义的8个 微命令: BCF=2 条件转移微命令 当运算结果溢出时, 将BAF送uPC, 否则uPC+1送uPC
图6.24 “增量与下址字段”方式的原理图 顺序执行时后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

70 BCF定义的8个 微命令: BCF=3 无条件转移微命令 将BAF送uPC, 图6.24 “增量与下址字段”方式的原理图
顺序执行时后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

71 BCF定义的8个 微命令: BCF=4 测试循环微命令 如CT不等于0,表 示继续执行循环, 循环入口地址从 BAF送uPC; 如CT=0,
uPC+1送uPC,本 命令执行的同时CT 自减1 图6.24 “增量与下址字段”方式的原理图 顺序执行时后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

72 BCF定义的8个 微命令: BCF=5 转微子程序微命令 把微子程序入口从 BAF送uPC,从而 实现转移,同时保 存返回地址,即把
uPC+1送RR 图6.24 “增量与下址字段”方式的原理图 顺序执行时后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

73 BCF定义的8个 微命令: BCF=6 返回微命令 把RR中的返回地址 送uPC,从而 实现微子程序返回 原来的微程序
图6.24 “增量与下址字段”方式的原理图 顺序执行时后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

74 BCF定义的8个 微命令: BCF=7 操作码产生后继 微地址的微命令。 这是取指后执行的 第一条微命令。
图6.24 “增量与下址字段”方式的原理图 顺序执行时后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

75 缺点 不能实现两路以上的并行微程序转移, 不利于提高微程序的执行速度。
顺序执行时后继微地址就是现行微地址加上一个增量(通常为“1”);转移或转子时,由微指令的顺序控制字段产生转移微地址。因此,在微程序控制器中应当有一个微程序计数器(PC)。为了降低成本,一般情况下都是将微地址寄存器MAR改为具有计数功能的寄存器,以代替PC。 增量方式的优点是简单,易于掌握,编制微程序容易,每条机器指令所对应的一段微程序一般安排在CM的连续单元中;其缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

76 3. 多路转移方式 一条微指令存在多个转移分支的情况称为多路转移。
实现多路转移可减少微程序的长度,在若干个微地址中选择一个作 为后继微地址. 如根据操作码产生不同的后继微地址 指令的操作码作为地址输入,而相应的存储单元内容即为该指令的第一条微指令的入口地址。存储器容量等于或略大于机器的指令数。 有时要根据某些硬件状态来决定后继微地址 如根据NZVC各位选择下地址,决定微程序的转移。最常用的是两路和四路转移 在执行某条微指令时,可能会遇到在若干个微地址中选择一个作为后继微地址的情况,最明显的例子是根据操作码产生不同的后继微地址。实现此功能的电路通常是由PROM(可编程序只读存储器)组成的,也有把它称为MAPROM(映像只读存储器)的。该存储器的特点是以指令的操作码作为地址输入,而相应的存储单元内容即为该指令的第一条微指令的入口地址。该存储器的容量等于或略大于机器的指令数,所以容量小,速度快。 在计算机中,有时要根据某些硬件状态来决定后继微地址,属于这些状态的可以是根据运算结果所置的标志位(N,Z,V,C)、计数器状态、数据通路状态等。根据一种状态(非0即1)来决定微地址可以有两种情况,即两路转移;而根据两种状态来决定微地址可以有四种情况,即四路转移。微程序设计实践表明,实现两路转移的情况居多,其次是四路转移,向更多路方向转移的情况就比较少见。两路转移只涉及微地址的一位;四路转移涉及微地址的两位,一般就定在微地址的最后两位,也就是说当执行转移微指令时,根据条件可转移到四个微地址中的一个,这四个微地址的高位部分相等,仅是最低两位不同。 实现多路转移可减少微程序的长度,对于一般条件转移微指令(相当于两路转移)来说,需要两条微指令来完成上述四路转移的功能。

77 4.微中断 微中断与程序中断的概念相似 微中断处理程序在控制存储器的位置,入口已知,发生中断即直接转入。

78 三. 微指令格式 1. 水平型微指令 含义 一条微指令中定义并执行多个并行操作微命令。 直接控制法、字段编译法是水平型微指令。 特点
三. 微指令格式 1. 水平型微指令 含义 一条微指令中定义并执行多个并行操作微命令。 直接控制法、字段编译法是水平型微指令。 特点 操作并行度高,使用灵活,微程序短,速度快。 微指令字比较长。 微指令的编译法是决定微指令格式的主要因素,在设计计算机时考虑到速度价格等因素采用不同的编译法,即使在一台计算机中,也有几种编译法并存的局面存在。 这种微指令,操作并行度高,使用灵活,微程序短,速度快。但微指令字比较长,实现转移和立即数比较困难。为了克服这个缺点,通常把控制命令按其操作性质分成几组。每组内的微命令是互斥的且采用二进制编码来表示。用译码器译出各个互斥的微命令。这种方法又叫分段译码法。

79 2. 垂直型微指令 含义及格式 微指令中设有微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。
在微指令中设置有微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。其特点是不强调实现微指令的并行控制功能,通常一条微指令只要求能控制实现一二种操作。这种微指令格式与指令相似:每条指令有一个操作码;每条微指令有一个微操作码。垂直型微指令的特点是: (1) 微指令字比较短,控存位码利用率高; (2) 实现转移和立即数操作方便; (3) 编制微程序容易,用户容易掌握; (4) 便于采用高级微程序设计语言,容易实现微程序设计自动化。 垂直型微指令的缺点是:微操作并行度低。每条微指令只完成少数基本操作,实现一条机器指令的微程序较长,速度低。 小型计算机硬件结构简单,数据通路和操作部件并行度低。如果机器不以提高速度为主要目标,则采用垂直型微程序方案还是相宜的。

80 3. 水平型微指令与垂直型微指令的比较 水平型微指令 垂直型微指令 并行能力强,效率高 并行能力差 灵活性差 灵活性强 执行一条指令的时间短
微指令执行时间长 微指令字比较长 微指令字比较短 微程序短 微程序长 难以掌握 容易掌握

81 四、微程序控制单元设计 ⑴确定微程序控制方式 ⑵拟定微命令系统 ⑶编制微程序
根据计算机系统的性能指标(主要是速度)确定。 ⑵拟定微命令系统 设计微指令格式:微指令字段的划分、编码方式的选择、具体后继微地址的形成等。 ⑶编制微程序 修改审查微命令系统、微指令格式;合并和精简微指令,直至编制出全部机器指令的微程序为止。 ⑷微程序代码化 将修改完善的微程序转换成二进制代码 ⑸写入控制存储器 微程序设计控制单元的主要任务是编写对应各条机器指令的微程序,具体步骤是首先写出对应机器指令的全部微操作节拍安排,然后确定微指令格式,最后编写出每条微指令的二进制代码

82 6.5 硬布线控制的计算机 1。主要特点 操作控 控制 制部件 信号 硬布线控制器 / 组合逻辑控制器 硬布线方式主要应用在RISC机器中。
操作控制部件中操作控制命令是基本逻辑电路生成的 操作控制部件根据指令的要求和指令执行流程,按照一定顺序发出各种操作控制信号,控制有关部件,完成指定的操作。 硬布线方式主要应用在RISC机器中。 操作码译码信号 时序信号 运算结果的标志 状态和其他条件 由上所述,这是一项非常细致,非常复杂的工作,工作量很大,很容易出错。其主要特点是形成命令的时间短,在一些要求速度的场合采用这种方案。 操作控 制部件 控制 信号

83 ARM Ltd 成立于1990年11月 主要设计ARM系列RISC处理器内核 授权ARM内核给生产和销售半导体的合作伙伴
前身为 Acorn计算机公司 Advance RISC Machine(ARM) 主要设计ARM系列RISC处理器内核 授权ARM内核给生产和销售半导体的合作伙伴 ARM 公司不生产芯片 IP(Intelligence Property) 另外也提供基于ARM架构的开发设计技术 软件工具, 评估板, 调试工具,应用软件,外围设备单元,等等

84 ARM Offices Worldwide 800+ 雇员 全球 England US
Cambridge, Maidenhead, Sheffield, Blackburn Germany Munich France Paris, Sophia Antipolis Korea Seoul US Seattle, Los Gatos, Walnut Creek, Austin, Boston, San Diego China Taiwan and Shanghai Japan Shin-Yokohama (Tokyo) 800+ 雇员 全球

85 ARM Partnership Model

86

87

88 操作控制信号形成逻辑 操作码 地址码 译码器 组合逻辑 加法指令的第二个执行阶段 控 制 信 号 计算数 据地址
…… cy1 cy2 cy3 cy4 控 制 信 号 计算数 据地址 rs1 → GR, (rs1) → ALU , disp → ALU ; + ; ALU → AR rs1 → GR = 加法指令×cy2 由上所述,这是一项非常细致,非常复杂的工作,工作量很大,很容易出错。其主要特点是形成命令的时间短,在一些要求速度的场合采用这种方案。 (rs1) → ALU=加法指令×cy2 。。。。。。

89 计数逻辑 3-8 计数器 译码器 B A cy1 cy2 cy3 cy4 0 0 1 0 0 0 0 1 0 1 0 0 1 0

90 操作控制信号形成逻辑 以加法指令为例,加法指令的23个微操作需要在4个步骤中依次发出,所以可以采用一个2位计数器,对其输出进行译码,产生四个周期的控制信号,用以确定当前周期可以发出的控制信号。 A指令 B指令 cyA cyB cyA‘ cyB’ 1 由上所述,这是一项非常细致,非常复杂的工作,工作量很大,很容易出错。其主要特点是形成命令的时间短,在一些要求速度的场合采用这种方案。 现态 次态

91 操作控制信号形成逻辑 A指令 B指令 cyA cyB cyA‘ cyB’ 0 0 0 1 0 0 1 0 0 1 1 1 1 A指令:
1 A指令: cyA’ = cyA cyB + cyA cyB; cyB’ = cyA cyB + cyA cyB = cyB; B指令: cyA’ = cyA cyB + cyA cyB = cyB cyB’ = cyA cyB; 由上所述,这是一项非常细致,非常复杂的工作,工作量很大,很容易出错。其主要特点是形成命令的时间短,在一些要求速度的场合采用这种方案。

92 cyA’ cyB’ 2 - 4 译 码 cy1 cy2 cy3 cy4 由上所述,这是一项非常细致,非常复杂的工作,工作量很大,很容易出错。其主要特点是形成命令的时间短,在一些要求速度的场合采用这种方案。

93 2 - 4 译 码 cyA’ cyB’ 思考:四个周期触发信号不可控 cy1 cy2 cy3 cy4
2 - 4 译 码 cy1 cy2 cy3 cy4 由上所述,这是一项非常细致,非常复杂的工作,工作量很大,很容易出错。其主要特点是形成命令的时间短,在一些要求速度的场合采用这种方案。 思考:四个周期触发信号不可控

94 cyA’ cyB’ 2 - 4 译 码 cy1 cy2 cy3 cy4 由上所述,这是一项非常细致,非常复杂的工作,工作量很大,很容易出错。其主要特点是形成命令的时间短,在一些要求速度的场合采用这种方案。

95 2。 控制器总框图

96 3。设计操作控制器步骤 ⑴列出微操作命令的操作时间表 ⑵进行微操作信号综合 ⑶画出微操作命令的逻辑图
写出每条指令、每个周期、每个节拍的全部操作命令信号 ⑵进行微操作信号综合 写出各微操作控制信号的逻辑表达式。 ⑶画出微操作命令的逻辑图 根据逻辑表达式可画出对应每一个微操作信号的逻辑电路图,并用逻辑门电路实现之。 4. 硬布线逻辑的实现途径 PLA,PAL和GAL电路以及半定制电路门阵列 设计操作控制器时,第一步必须写出每条指令、每个周期、每个节拍所需的全部操作命令信号,我们称为操作时间表,写出每个命令的逻辑表达式。第二步把相同的操作命令综合到一起,合并同类命令,写出各个操作命令的与或逻辑表达式。第三步利用有关工具进行逻辑化简。第四步用基本逻辑电路实现每一个操作控制命令。要求生成每个命令时用的门数最少,通过门的级数最少。 由上所述,这是一项非常细致,非常复杂的工作,工作量很大,很容易出错。其主要特点是形成命令的时间短,在一些要求速度的场合采用这种方案。 在第2章中介绍的PLA,PAL和GAL电路基本上是两级门电路,与所写出的逻辑表达式基本一致;当实际逻辑更为复杂时,可将若干个电路串、并联组合使用以实现复杂的逻辑关系。这些电路可在市场上买到,买来后利用专用的设备写入内容(相当于连线)即可。另外也可采用半定制电路门阵列实现。在VLSI的CPU中,硬布线逻辑电路直接集成在CPU芯片中,这种全定制电路集成度高、速度高,并可缩小机器体积。唯一的缺点是芯片投产后,不允许对逻辑进行任何修改,因此要求设计绝对正确,否则返工的工作量很大。

97 5。 硬布线控制与微程序控制的比较 1. 实现 2. 性能 微程序控制器的控制功能 – CM&uIR控制实现,
5。 硬布线控制与微程序控制的比较 1. 实现 微程序控制器的控制功能 – CM&uIR控制实现, 电路规整, 增改指令只要增改控存内容或更换芯片。 硬布线控制则由逻辑门组合实现。 电路乱杂,修改指令或增加指令难。 2. 性能 微程序控制的速度比硬布线控制的速度低, 微程序控制执行每条微指令都要从控存中读取一次, 硬布线逻辑主要取决于电路延迟。 硬布线控制与微程序控制的比较 硬布线控制与微程序控制之间的最显著差异可归结为两点: 1. 实现 微程序控制器的控制功能是在存放微程序的控制存储器和存放当前正在执行的微指令的寄存器直接控制下实现的,而硬布线控制则由逻辑门组合实现。前者电路比较规整,各条指令控制信号的差别反映在控制存储器的内容上,因此无论是增加或修改指令只要增加或修改控存内容即可,若控存是ROM,则要更换芯片。 硬布线控制器的控制信号先用逻辑式列出,经化简后用电路实现,因而显得零乱且复杂,当需修改指令或增加指令时是很麻烦的,有时甚至没有可能,因此微程序控制得到广泛应用,尤其是指令系统复杂的计算机,一般都采用微程序来实现控制功能。 2. 性能 在同样的半导体工艺条件下,微程序控制的速度比硬布线控制的速度低,那是因为执行每条微指令都要从控存中读取一次,影响了速度,而硬布线逻辑主要取决于电路延迟,因而在超高速机器中,对影响速度的关键部分例如CPU,往往采用硬布线逻辑。

98 (2) 机器周期 (3) 节拍/时钟周期 (1) 指令周期 指执行一条指令所需的全部时间。 各类指令因功能的复杂程度不同,指令周期不全相同。
一条指令执行过程可以分为若干功能阶段,每一阶段为相应的机器周期.也称CPU周期. (3) 节拍/时钟周期 在一个机器周期内,要完成若干个微操作。 时钟周期是完成一个基本微操作的最长时间。 3. 时序系统 计算机实现指令的过程是计算机内各部件的数据,按照严格的顺序,随时间先后传送和加工的过程。这种时间顺序的控制是由时序系统(Timing System)提供的定时信号完成的。时序系统是计算机控制器的心脏。 (1) 指令周期 指令周期是指一条指令由取指令、分析指令到执行完指令所需的全部时间。由于各类指令功能的复杂程度不同,因此各种指令的指令周期不全相同。 2) 机器周期 机器周期又叫CPU周期。一条指令执行过程可以分为若干功能阶段,每一阶段完成一定的操作,称作一个机器周期,如取指令周期,分析指令周期、取数周期、执行周期、还有寻址周期、中断周期、DMA周期等。不同指令包含的机器周期数目不同,但最短的指令必须有二个周期,即取指周期和执行周期。机器周期的时间宽度,取各周期中时间较长者,通常与访存周期(存取周期)一致。

99 6.6 控制器的控制方式 指令的执行或指令中每个微操作的执行都受事先确定的时序信号所控制。 形成控制不同微操作序列的时序控制信号的方法为控制器的控制方式。 1. 同步控制方式 含义:在任何情况下,一条已定的指令在执行时所需的机 器周期数和节拍数都是固定不变的,则称为同步控 制方式。 同步控制方式包括 (1) 采用完全统一的机器周期(或节拍)执行各种不同的指令。 (2) 采用不同节拍的机器周期,复杂的微操作延长机器周期 (3) 采用中央控制和局部控制相结合的方法 控制器的控制方式 1. 同步控制方式 在程序运行时任何指令的执行或指令中每个微操作的执行都受事先确定的时序信号所控制,每个时序信号的结束就意味着一个微操作或一条指令已经完成,随即开始执行后续的微操作或自动转向下条指令的运行。这里所讲的微操作不仅适合于微程序控制器,同样适合于硬布线逻辑控制器。 一条机器指令由确定的机器周期组成,每个机器周期又分成两个节拍,在频率固定的脉冲作用下形成上述节拍和机器周期,假如在任何情况下,一条已定的指令在执行时所需的机器周期数和节拍数都是固定不变的,则称为同步控制方式。 根据不同情况,同步控制方式可以选取如下方案: (1) 采用完全统一的机器周期(或节拍)执行各种不同的指令,即不管微操作的繁简,以最繁的微操作为标准,采取统一的,具有相同时间间隔和相同数目的节拍作为机器周期。对于那些比较简单的微操作,将造成时间浪费。 (2) 采用不同节拍的机器周期,以解决微操作执行所需时间不统一的问题。通常把大多数微操作安排在一个较短时间的机器周期内完成,而对某些较繁的微操作,则采取延长机器周期或增加节拍的办法解决。 (3) 采用中央控制和局部控制相结合的方法。将机器的大部分指令安排在一个统一的较短的机器周期内完成,称为中央控制,而将少数操作复杂的指令中的某些微操作另行处理称为局部控制,例如乘法操作、除法操作或浮点运算等。

100 2. 异步控制方式 当控制器发出进行某一微操作控制信号后,等待执行部件完成该操作后发回的“回答”信号或“结束”信号,再开始新的微操作,称为异步控制方式。 微操作序列没有固定的周期节拍和严格的时钟同步。 3. 联合控制方式 同步控制和异步控制相结合的方式。 对不同指令的各个微操作实行大部分统一、小部分区别对待的方式。 4. 人工控制方式 Reset键、连续或单条转换开关、符合停机(地址、数据)

101 6.7 流水处理技术 并行性的含义 并行处理技术三种形式 同时性 -- 两个以上事件在同一时刻发生;
并发性 -- 两个以上事件在同一时间间隔内发生。 并行处理技术三种形式 1.时间并行   时间重叠,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件速度。  实现方式就是采用流水处理部件。 2.空间并行 资源重复,以“数量取胜” 为原则来提高计算机的处理速度。 主要体现 在多处理器系统和多计算机系统。 3.时间并行+空间并行 并行性的两种含义: 同时性 指两个以上事件在同一时刻发生; 并发性 指两个以上事件在同一时间间隔内发生。 计算机的并行处理技术概括起来主要有以下三种形式: 1.时间并行   时间并行指时间重叠,在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。   时间并行性概念的实现方式就是采用流水处理部件。这是一种非常经济而实用的并行技术,能保证计算机系统具有较高的性能价格比。目前的高性能微型机几乎无一例外地使用了流水技术。 2.空间并行   空间并行指资源重复,在并行性概念中引入空间因素,以“数量取胜” 为原则来大幅度提高计算机的处理速度。大规模和超大规模集成电路的迅速发展为空间并行 技术带来了巨大生机,因而成为目前实现并行处理的一个主要途径。空间并行技术主要体现 在多处理器系统和多计算机系统。但是在单处理器系统中也得到了广泛应用。 3.时间并行+空间并行   指时间重叠和资源重复的综合应用 ,既采用时间并行性又采用空间并行性。显然,第三种并行技术带来的高速效益是最好的。

102 一. 流水线工作原理 顺序方式 ADD [BX+1] , AX 即程序中各条机器指令是按顺序串行执行的 CPU各个功能部件顺序作用。
一. 流水线工作原理 顺序方式 即程序中各条机器指令是按顺序串行执行的 CPU各个功能部件顺序作用。 硬件控制简单,但速度慢,各功能操作部件利用效率低。 取指 计算地址 取数 计算写回 执行 计算机执行程序是按顺序的方式进行的,即程序中各条机器指令是按顺序串行执行的。如按四个周期完成一条指令来考虑,其执行过程如下 在某些计算机中,CPU分成指令部件I和执行部件E,指令部件完成取指和指令译码等操作,执行部件完成运算和保存结果等操作。在现代计算机中,指令译码很快,尤其是RISC机更是这样,因此在前面讨论指令执行过程时,将指令译码的时间忽略了。如按指令部件和执行部件顺序操作来考虑可将程序的执行过程表示成: 可以看出,程序是按指令的顺序执行完一条再执行下一条的。顺序执行的优点是控制简单,但是机器各部分的利用率不高。例如,指令部件(I)工作时,执行部件(E)基本空闲;而执行部件工作时,指令部件基本空闲。假如我们把两条指令或若干条指令在时间上重叠起来进行如图6.37所示,将大幅度提高程序的执行速度。 ADD [BX+1] , AX

103 流水线方式 流水线是将一个较复杂的处理过程分成m个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m个部件同时进行不同的操作,完成对不同子过程的处理。 类比:汽车装配流水线 流水线是将一个较复杂的处理过程分成m个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m个部件同时进行不同的操作,完成对不同子过程的处理。

104 流水线方式 流水线是将一个较复杂的处理过程分成m个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m个部件同时进行不同的操作,完成对不同子过程的处理。 计算写回 取数 计算地址 取指 流水线是将一个较复杂的处理过程分成m个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m个部件同时进行不同的操作,完成对不同子过程的处理。

105 流水线方式 流水线是将一个较复杂的处理过程分成m个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m个部件同时进行不同的操作,完成对不同子过程的处理。 装入时间 排空时间 计算写回 取数 计算地址 取指 流水线是将一个较复杂的处理过程分成m个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m个部件同时进行不同的操作,完成对不同子过程的处理。

106 如流水线各段执行时间不等怎么办? 流水线方式
流水线是将一个较复杂的处理过程分成m个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m个部件同时进行不同的操作,完成对不同子过程的处理。 计算写回 取数 计算地址 取指 流水线是将一个较复杂的处理过程分成m个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m个部件同时进行不同的操作,完成对不同子过程的处理。

107 流水线每段时间取时间最长段的时间 把时间较短的几段合并为一段 把时间较长的段分解为若干段 采用空间重叠的方法 计算写回 取数 计算地址 取指
流水线是将一个较复杂的处理过程分成m个复杂程度相当、处理时间大致相等的子过程,每个子过程由一个独立的功能部件来完成,处理对象在各子过程连成的线路上连续流动。在同一时间,m个部件同时进行不同的操作,完成对不同子过程的处理。

108 流水线分类 1.指令流水线 指令步骤的并行。将指令流的处理过程划分为取指令、译码、执行、写回等几个并行处理的过程段。 2.算术流水线
运算操作步骤的并行。如流水加法器、流水乘法器、流水除法等。 3. 处理机流水线 由一串级联的处理机构成流水线的各个过程段,每台处理机负责某一特定的任务。处理机流水线应用在多机系统中。 流水线分类 指令流水线 指指令步骤的并行。将指令流的处理过程划分为取指令、译码、执行、写回等几个并行处理的过程段。目前,几乎所有的高性能计算机都采用了指令流水线。 算术流水线 指运算操作步骤的并行。如流水加法器、流水乘法器、流水除法等。 现代计算机中已广泛采用了流水的算术运算器。 处理机流水线 又称为宏流水线,是指程序步骤的并行。由一串级联的处理机构成流水线的各个过程段,每台处理机负责某一特定的任务。数据流从第一台处理机输入,经处理后被送入与第二台处理机相联的缓冲存储器中。第二台处理机从该存储器中取出数据进行处理,然后传送给第三台处理机,如此串联下去。随着高档微处理器芯片的出现, 构造处理机流水线将变得容易了。处理机流水线应用在多机系统中。

109 理想流水线应该满足以下条件: (1) 流水线中处理的指令必须是连续不断的。 (2) 各个功能部件工作必须是独立的,且其执行 时间相等。 (3) 各功能部件间,必须用缓冲寄存器隔离,避 免各个部件互相影响。 (4) 流水线开始工作时,必须有装入时间,结束 时必须有排空时间,只有当流水线完全充满 时,流水线的作用才能充分发挥。

110 二.流水线中的主要问题 1. 结构相关 流水过程中常会出现三种相关冲突,使流水线断流/流水阻塞。
二.流水线中的主要问题    流水过程中常会出现三种相关冲突,使流水线断流/流水阻塞。 1. 结构相关 指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。 解决办法: 1. 资源相关   资源相关是指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。假定一条指令流水线由五段组成。由下表可以看出,在时钟4时,I1与I4两条指令发生争用存储器资源的相关冲突 解决资源相关冲突的办法: 一是第I4条指令停顿一拍后再启动;二是增设一个存储器,将指令和数据分别放在两个存储器中。 2. 数据相关   在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的。   在流水计算机中,指令的处理是重叠进行的,前一条指令还没有结束,第二、三条指令就陆续地开始工作。由于多条指令的重叠处理,当后继指令所需的操作数,刚好是前一指令的运算结果时,便发生数据相关冲突。如下表所示,ADD指令与SUB指令发生了数据相关冲突。 解决数据相关冲突的办法: 在流水CPU的运算器中设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使用,这称为“向前”或定向传送技术。 计算写回 取数 计算地址 取指

111 二.流水线中的主要问题 思考:解决方法 1. 结构相关 流水过程中常会出现三种相关冲突,使流水线断流/流水阻塞。
二.流水线中的主要问题    流水过程中常会出现三种相关冲突,使流水线断流/流水阻塞。 1. 结构相关 指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。 解决办法: 1. 资源相关   资源相关是指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。假定一条指令流水线由五段组成。由下表可以看出,在时钟4时,I1与I4两条指令发生争用存储器资源的相关冲突 解决资源相关冲突的办法: 一是第I4条指令停顿一拍后再启动;二是增设一个存储器,将指令和数据分别放在两个存储器中。 2. 数据相关   在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的。   在流水计算机中,指令的处理是重叠进行的,前一条指令还没有结束,第二、三条指令就陆续地开始工作。由于多条指令的重叠处理,当后继指令所需的操作数,刚好是前一指令的运算结果时,便发生数据相关冲突。如下表所示,ADD指令与SUB指令发生了数据相关冲突。 解决数据相关冲突的办法: 在流水CPU的运算器中设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使用,这称为“向前”或定向传送技术。 计算写回 取数 计算地址 取指 思考:解决方法

112 二.流水线中的主要问题 1. 结构相关 流水过程中常会出现三种相关冲突,使流水线断流/流水阻塞。
二.流水线中的主要问题    流水过程中常会出现三种相关冲突,使流水线断流/流水阻塞。 1. 结构相关 指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。 解决办法: 使指令停顿一拍后再启动; 增设一个功能部件。 1. 资源相关   资源相关是指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。假定一条指令流水线由五段组成。由下表可以看出,在时钟4时,I1与I4两条指令发生争用存储器资源的相关冲突 解决资源相关冲突的办法: 一是第I4条指令停顿一拍后再启动;二是增设一个存储器,将指令和数据分别放在两个存储器中。 2. 数据相关   在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的。   在流水计算机中,指令的处理是重叠进行的,前一条指令还没有结束,第二、三条指令就陆续地开始工作。由于多条指令的重叠处理,当后继指令所需的操作数,刚好是前一指令的运算结果时,便发生数据相关冲突。如下表所示,ADD指令与SUB指令发生了数据相关冲突。 解决数据相关冲突的办法: 在流水CPU的运算器中设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使用,这称为“向前”或定向传送技术。

113 二.流水线中的主要问题 2. 数据相关 流水过程中常会出现三种相关冲突,使流水线断流/流水阻塞。
二.流水线中的主要问题    流水过程中常会出现三种相关冲突,使流水线断流/流水阻塞。 2. 数据相关 在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的。 1. 资源相关   资源相关是指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。假定一条指令流水线由五段组成。由下表可以看出,在时钟4时,I1与I4两条指令发生争用存储器资源的相关冲突 解决资源相关冲突的办法: 一是第I4条指令停顿一拍后再启动;二是增设一个存储器,将指令和数据分别放在两个存储器中。 2. 数据相关   在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的。   在流水计算机中,指令的处理是重叠进行的,前一条指令还没有结束,第二、三条指令就陆续地开始工作。由于多条指令的重叠处理,当后继指令所需的操作数,刚好是前一指令的运算结果时,便发生数据相关冲突。如下表所示,ADD指令与SUB指令发生了数据相关冲突。 解决数据相关冲突的办法: 在流水CPU的运算器中设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使用,这称为“向前”或定向传送技术。

114 图6.39 流水线阻塞情况 ADD R0, R1, R2 ADD R4, R5, R0 第一条指令即将“写回” 第二条指令即将“执行”

115 解决方法:建立直接数据通道 ADD R0, R1, R2 ADD R4, R5, R0 第一条指令的和已经计算出 从加法器直接取数

116 解决方法:建立直接数据通道 ADD R0, R1, R2 ADD R4, R5, R0 第一条指令的和已经计算出 从加法器直接取数

117 3.控制相关 控制相关冲突是由转移指令引起的。
当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线 发生断流。 转移处理技术: 控制相关   控制相关冲突是由转移指令引起的。当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线 发生断流。 为了减小转移指令对流水线性能的影响,常用以下两种转移处理技术: 延迟转移法 由编译程序重排指令序列来实现。基本思想是“先执行再转移”,即发生转移取时并不排空指令流水线,而是让紧跟在转移指令Ib之后已进入流水线 的少数几条指令继续完成。如果这些指令是与Ib结果无关的有用指令,那么延迟损失时间片正好得到了有效的利用。 转移预测法 用硬件方法来实现,依据指令过去的行为来预测将来的行为。通过使用转移取和顺序取两路指令预取队列器以及目标指令cache,可将转移预测提前到取指阶段进行,以获得良好的效果。

118 3.控制相关 思考:解决方法 控制相关冲突是由转移指令引起的。
当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线 发生断流。 转移处理技术: 控制相关   控制相关冲突是由转移指令引起的。当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线 发生断流。 为了减小转移指令对流水线性能的影响,常用以下两种转移处理技术: 延迟转移法 由编译程序重排指令序列来实现。基本思想是“先执行再转移”,即发生转移取时并不排空指令流水线,而是让紧跟在转移指令Ib之后已进入流水线 的少数几条指令继续完成。如果这些指令是与Ib结果无关的有用指令,那么延迟损失时间片正好得到了有效的利用。 转移预测法 用硬件方法来实现,依据指令过去的行为来预测将来的行为。通过使用转移取和顺序取两路指令预取队列器以及目标指令cache,可将转移预测提前到取指阶段进行,以获得良好的效果。 思考:解决方法

119 3.控制相关 控制相关冲突是由转移指令引起的。
当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线 发生断流。 转移处理技术: 延迟转移法 由编译程序重排指令序列来 “先执行再转移”实现。 转移预测法 用硬件实现,依据指令过去的行为来预测将来的行为。 控制相关   控制相关冲突是由转移指令引起的。当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线 发生断流。 为了减小转移指令对流水线性能的影响,常用以下两种转移处理技术: 延迟转移法 由编译程序重排指令序列来实现。基本思想是“先执行再转移”,即发生转移取时并不排空指令流水线,而是让紧跟在转移指令Ib之后已进入流水线 的少数几条指令继续完成。如果这些指令是与Ib结果无关的有用指令,那么延迟损失时间片正好得到了有效的利用。 转移预测法 用硬件方法来实现,依据指令过去的行为来预测将来的行为。通过使用转移取和顺序取两路指令预取队列器以及目标指令cache,可将转移预测提前到取指阶段进行,以获得良好的效果。

120 3.控制相关 思考:预测转移的可行性 控制相关冲突是由转移指令引起的。
当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线 发生断流。 转移处理技术: 延迟转移法 由编译程序重排指令序列来 “先执行再转移”实现。 转移预测法 用硬件实现,依据指令过去的行为来预测将来的行为。 思考:预测转移的可行性 控制相关   控制相关冲突是由转移指令引起的。当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线 发生断流。 为了减小转移指令对流水线性能的影响,常用以下两种转移处理技术: 延迟转移法 由编译程序重排指令序列来实现。基本思想是“先执行再转移”,即发生转移取时并不排空指令流水线,而是让紧跟在转移指令Ib之后已进入流水线 的少数几条指令继续完成。如果这些指令是与Ib结果无关的有用指令,那么延迟损失时间片正好得到了有效的利用。 转移预测法 用硬件方法来实现,依据指令过去的行为来预测将来的行为。通过使用转移取和顺序取两路指令预取队列器以及目标指令cache,可将转移预测提前到取指阶段进行,以获得良好的效果。

121 3.控制相关 不精确断点 对中断时还未进入流水线的后续指令不允许其再进入,但已进入流水线的指令仍执行完毕。
但是某些情况下会导致错误,例如地址错、存储器错、运算错等中断发生时,后续指令不应该执行。 精确断点 仅执行完当前指令,不执行流水线中的后续指令。 控制相关   控制相关冲突是由转移指令引起的。当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线 发生断流。 为了减小转移指令对流水线性能的影响,常用以下两种转移处理技术: 延迟转移法 由编译程序重排指令序列来实现。基本思想是“先执行再转移”,即发生转移取时并不排空指令流水线,而是让紧跟在转移指令Ib之后已进入流水线 的少数几条指令继续完成。如果这些指令是与Ib结果无关的有用指令,那么延迟损失时间片正好得到了有效的利用。 转移预测法 用硬件方法来实现,依据指令过去的行为来预测将来的行为。通过使用转移取和顺序取两路指令预取队列器以及目标指令cache,可将转移预测提前到取指阶段进行,以获得良好的效果。


Download ppt "大连理工大学软件学院 赖晓晨 far.away@tom.com 第六章 中央处理部件CPU 计算机有五大部件:运算器、控制器、存储器、输入装置和输出装置,其中有四个部件是功能性部件,用来完成功能性指令。如运算器完成算术运算和逻辑运算指令,存储器完成写存储器和读存储器的指令,输入装置执行输入程序和数据的指令,输出装置执行输出运算情况和结果的指令。惟独控制器是用来控制其他部件以实现有关指令的功能。各个部件什么时候完成什么操作,都是由控制器提供各种操作控制命令,控制有关部件的工作,实现指令功能。控制器另一个功能"

Similar presentations


Ads by Google