computer organization principle 计 算 机 组 成 原 理 computer organization principle 主讲教师 丁纪凯
第6章 中央处理器
第6章 — 中央处理器 本章要点 中央处理器(CPU)是电子数字计算机的心脏, 是由运算器和控制器组成的处理部件。本章重点论述 中央处理器的功能与组成、硬连线控制器和微程序控 制器两种控制器的组成与原理,介绍中断与异常处理 的作用与实现、流水线技术的基本概念。
第 6 章 中央处理器 6.1 中央处理器的功能与组成 6.2 硬连线控制器 6.3 微程序控制器 6.4 中断与异常处理 第 6 章 中央处理器 6.1 中央处理器的功能与组成 6.2 硬连线控制器 6.3 微程序控制器 6.4 中断与异常处理 6.5 中央处理器中流水线技术的基本概念
6.1 中央处理器的功能与组成 6.1.1 中央处理器的组成 中央处理器CPU原始含义是由运算器和控制器组成的处理部件。 6.1 中央处理器的功能与组成 6.1.1 中央处理器的组成 中央处理器CPU原始含义是由运算器和控制器组成的处理部件。 现代CPU内集成了越来越多的功能部件: MMU:存储管理部件 FPU: 浮点处理器 Cache:高速缓冲存储器 MMX:多媒体扩展部件等 但从原理上分析它的最基本部分还是运算器和控制器,其原理框图 如下图:
中央处理器的组成
1、 运算器 主要包括5个部件: (1)算术逻辑部件ALU 运算器的重要部件,用来执行各种数据运算操作,包括算术操作 完成对数据的运算处理,是指令的执行部件。 主要包括5个部件: (1)算术逻辑部件ALU 运算器的重要部件,用来执行各种数据运算操作,包括算术操作 (加减乘除四则运算和数据格式转换)、逻辑操作(对数据进行按位的 与、或、非、移位等运算); 一个组合逻辑电路,一般有二个输入端,可同时输入两个参加 运算的操作数; (2)累加器AC (或ACC) 一个通用寄存器,为ALU在执行算术或逻辑操作时,提供一个工作区; 暂时存放ALU运算结果信息的寄存器;
当CPU中采用多个累加器时,就变成通用寄存器组的结构,需要 在指令格式中对寄存器号加以编址; 若通用寄存器R0~Rn-1共n个, 则要用log2 n位二进制代码; 通用寄存器中任一个都可存放源操作数,也可存放结果操作数。 (3) 标志寄存器FR 又称为程序状态字PSW或状态寄存器SR ; 一个由各种状态条件标志组合而成的寄存器。 存放由算术操作和逻辑操作以及测试操作的结果所形成的各种条 件码信息,保存中断及系统工作状态的信息。包括: 进位标志(C) ;溢出标志(V或O) 零标志(Z) ;负标志或符号标志(N或S) 奇偶校验标志(P)等。
(4) 数据寄存器DR (5)地址寄存器AR 又称数据缓冲寄存器,用来存放从主存读出的一条指令或从/向主 存或外设接口读/写的一个数据字。 作 CPU同主存或外设接口之间信息的缓冲器, 起操作速度匹配作 用。 (5)地址寄存器AR 用来存放CPU正要访问的主存单元或外设地地址信息,直至读/写 操作完成。 2、 控制器 (1) 功能:向计算机的各部件提供指令执行时(计算机运行时)所需 要的控制信号。 具体要实现的功能有:
◎ 对指令进行译码、分析,产生相应的操作控制信号,控制指令执 行的步骤和数据流动的方向,使指令按规定的执行步骤运行。 ◎ 从内存中取出指令,计算下一条指令的内存 地址; ◎ 对指令进行译码、分析,产生相应的操作控制信号,控制指令执 行的步骤和数据流动的方向,使指令按规定的执行步骤运行。 (2) 控制器的主要组成部件 ① 程序计数器PC 存放下一条要取出的指令在主存中的地址; 控制器每从主存中取出一个指令字节,PC会自动加1; 若执行转移指令时,会把转移的目标地址送程序计数器PC,以使程 序计数器PC指向下一条要执行的指令地址。 有些CPU中实现PC功能的是指令指针IP。 ② 指令寄存器 IR 从主存中取出的机器码指令,先存放在数据缓冲寄存器DR中,然后 传送到指令寄存器IR中。
字段输出到指令译码器ID 译码、分析 ,ID向操作控制器发出实现该指 令的特定信号,由操作控制器据此产生该指令执行时所需要的各种操作 机器指令由操作码字段和操作数(地址码)字段组成,其中操作码 字段输出到指令译码器ID 译码、分析 ,ID向操作控制器发出实现该指 令的特定信号,由操作控制器据此产生该指令执行时所需要的各种操作 控制信号。 ④ 时序产生器 产生时序信号的逻辑部件,用以标记每条指令的各个操作步骤的相 对次序关系,使操作控制器在不同的操作步骤中提供不同的操作控制信 号,协调CPU中各功能部件的动作。 ⑤ 操作控制器 控制器的重要组成部件; 根据ID和时序产生器送来的指令信息和时序信息,产生执行该指令 所需要的全部操作控制信号,以保证该指令能有序地正确地执行。
控制器的基本组成框图:
6.1.2 中央处理器的功能 (1)指令控制: 控制程序的运行。 计算机的所有工作都可归纳为程序的运行,程序是指令的有序集 合,CPU必须对指令的执行进行控制,以保证指令序列的正确执行。 (2) 操作控制: 控制指令的操作步骤。 一条指令的执行需要几个操作步骤来完成,控制器产生完成这 些操作步骤所需要的操作控制信号,以控制这些操作步骤的实施。 (3) 时间控制: 对操作控制信号的定时。 完成一条指令运行的各种操作控制信号时间上有严格的定时关 系,这一定时关系是由CPU产生的,使一条指令在执行过程中受到 严格的定时,以保证指令的正确执行。
(4) 数据处理:对数据进行算术运算和逻辑运算。 (5) 中断处理和异常处理: 中断处理指CPU具有处理外部设备等中断源的服务请求的能 力。 异常处理指CPU具有处理指令执行过程产生非正常情况(如 运算溢出)的能力。
6.1.3 控制器的硬件实现方式 信号,控制指令执行的步骤和数据流动的方向,使指令按规定的执行步 骤运行。 指令执行流程如图: 控制器的主要功能是向计算机各部件提供指令运行时所需的操作控制 信号,控制指令执行的步骤和数据流动的方向,使指令按规定的执行步 骤运行。 1、控制信号的作用 指令执行流程如图:
指令的执行过程说明: (1)一条指令的执行过程分为若干个不同的操作步骤; (2)在数据的传送和运算过程中,必须要有相应的操作控制信号作用 于相应的部件;
(3)一组操作控制信号的作用必须严格按照一定的时序关系; 2、 控制器的硬件实现方式 操作控制器生成操作信号有不同的方法,主要有 : (1) 硬连线逻辑方式, 用一个硬件时序电路产生时间控制信号,采用组合逻辑电路实现 各种控制功能,采用这种方式的控制器称硬接线控制器或组合逻辑型 控制器。 (2)微程序方式 用一个ROM作为控制信号产生的载体,ROM中存储着一系列的 微程序,组成微程序的微指令代码产生相应的操作控制信号,采用这 种方式的控制器称微程序控制器或存储逻辑型控制器。
“阵列逻辑方式”的控制器或称为组合逻辑和存储逻辑型结合型控制器。 随着大规模集成电路的发展及应用,将上述两种方式结合,又出现 “阵列逻辑方式”的控制器或称为组合逻辑和存储逻辑型结合型控制器。
6.2 硬连线控制器 6.2.1 硬连线控制器的结构 CPU在完成一条机器指令的执行过程中要依次完成一系列微操作; 6.2 硬连线控制器 6.2.1 硬连线控制器的结构 CPU在完成一条机器指令的执行过程中要依次完成一系列微操作; 微操作由控制器要发出相应的一系列的微操作命令(操作控制命令) 完成的; 操作控制命令必须是按序产生的,具有定时的特点; 硬连线控制器的结构框图如下图所示。
(1)指令寄存器IR (2)指令译码器ID 将其中存放的指令操作码送指令译码器译码; 对指令寄存器IR送入的指令操作码进行译码产生指令信号INS1 ~INSn (设指令操作码为i位,则n=2i) (3)时钟源CLK 由石英振荡器组成产生机器主频,送节拍脉冲发生器。 (4)节拍脉冲发生器 又称环形脉冲发生器,接收来自时钟源CLK的时钟信号,循环 产生一组节拍信号序列T1,T2,… Tm 。节拍脉冲宽度等于时 钟源CLK的周期(TCLK)即时钟周期。
不定长的。如定长机器周期包括4个节拍如图所示。 一个指令周期包括若干个机器周期。 节拍脉冲T的重复周期即机器周期 ,机器周期可以是定长也可以是 不定长的。如定长机器周期包括4个节拍如图所示。 一个指令周期包括若干个机器周期。 机器周期、节拍、时钟周期组成了多级时序系统。
由编码器电路构成的操作信号发生器,接收来自指令译码器、 (5) 控制信号编码逻辑 由编码器电路构成的操作信号发生器,接收来自指令译码器、 状态寄存器和条件码等输入,根据节拍脉冲发生器的定时信号和操 作信号生成定时的操作控制信号C1~Cx。 操作控制信号的一般逻辑表达式为: C = T1·(INS1+INS2+…+INSn)+T2·(INS1+INS2+…+INSn) +…+Tm·(INS1+INS2+…+INSn) C为在执行某一指令时控制器最终对各部件的输出的操作控制信号; T1,T2,…Tm为节拍脉冲电路给出的定时信号,表示控制信号出现 的时间特征; INS1,INS2,…,INSn为指令译码器输出信号,
6.2.2 硬连线控制器的设计步骤 (1) 指令操作码的设计,确定指令是固定长指令还是可变长指令; 6.2.2 硬连线控制器的设计步骤 (1) 指令操作码的设计,确定指令是固定长指令还是可变长指令; (2) 确定机器周期、主频和节拍脉冲,确定机器周期是固定长还是可 变长; (3)按指令功能,确定每条指令所需的机器周期数,以及在每个机器 周期中所完成的微操作,列出微操作命令的操作时间表,即画出流程 图、控制时序图。 以单总线结构CPU的4条指令:ADD R3,R2,R1 、 LOAD R1,mem、STORE R1 , mem、 BR offs为例。 根据指令操作表,列出微操作时间表。
微操作时间表 √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √
(4)列出每一个微操作命令的初始逻辑表达式,并经化简整理写出微 操作命令的最简逻辑表达式。 如根据以上指令操作表和微操作时间表,可写出19个控制信号的 逻辑表达式: ① PCout = T1 + BR·T3 ② PC + 1 = T1 ③ PCin = BR·T3 ④ MARin = T1 + STORE ·T3 + LOAD ·T3 ⑤ MDRin = STORE ·T4 ⑥ MDRout = T2 + LOAD ·T4 ⑦ Read = T1 + LOAD· T3 ⑧ Write = STORE ·T4
⑨ IRin = T2 ⑩ IRout = LOAD ·T3 + STORE ·T3 + BR ·T4 ⑾ R1in = LOAD ·T4 ⑿ R1out = ADD·T3 + STORE·T4 ⒀ R2out = ADD ·T4 ⒁ R3in = ADD·T5 ⒂ Yin = ADD ·T3 + BR ·T3 ⒃ Add = ADD· T4 + BR·T4 ⒄ Zin = ADD ·T4 + BR ·T4 ⒅ Zout = ADD ·T4 + BR ·T5 ⒆ END = ( LOAD + STORE ) ·T4 + (ADD + BR) ·T5
上述控制信号在4条指令的对应机器周期的有关T节拍中起作用。举例说明: ◆ 取指令周期是所有指令公有的周期,共有4个微操作: PC→MAR 需要 PCout 、MARin PC+1 需要 PC+1 read 需要 Read MDR→IR 需要MDRout 、 IRin 前三个微操作在T1节拍进行; 后一个微操作在T2节拍进行; 在控制信号表达式①②④⑦中有T1项,表示在T1状态任何指令都 必需有该控制信号。同样在控制信号表达式⑥⑨中有T2项,表示在 T2状态任何指令都必需有该控制信号。
◆ PC+1=T1 表示任何指令在T1状态必需有PC+1信号; ◆ MARin = T1+STORE T3+ LOAD T3 表示控制信号MARin出现在 任何指令的T1状态,STORE和LOAD指令的T3状态; ◆ END =(LOAD+STORE)·T4 +(ADD+BR)·T5 END控制信号用来终止当前的时钟序列,进入下一条指令的循环周期。用于可变长机器周期数的情况。 (5) 画出对应每个微操作命令的逻辑电路图。 如以上的19个操作控制信号的逻辑表达式都可画出相应的逻辑电 路图。 IRout = LOAD·T3 + STORE·T3 + BR·T4 的逻辑电路图为:
6.3 微程序控制器 6.3.1 微程序控制器概述 和增删机器指令十分困难。 6.3 微程序控制器 6.3.1 微程序控制器概述 1. 微程序控制的基本思路 硬连线逻辑的控制器的逻辑电路较复杂。设计复杂,调试、修改 和增删机器指令十分困难。 M.V.Wilkes提出采用存储程序来形成微操作命令序列的微程序控 制设想。微程序控制的基本思想是: 操作控制信号 ┊ 微指令 1 微程序 完成 一条机器指令 10100000 微指令 n 00010010 存入 ROM
存放在控制存储器中,每一个控制字称为一条微指令,一条微指令对 应一个或几个操作控制信号(微操作命令)。 微指令中某位为1表示该控制信号有效,为0表示该控制信号无效。 微指令 :一条机器指令所需要的操作控制信号以一个个控制字的形式 存放在控制存储器中,每一个控制字称为一条微指令,一条微指令对 应一个或几个操作控制信号(微操作命令)。 微程序: 一条机器指令所需要的操作控制信号就由若干条微指令组成 的序列来实现,对应于一条机器指令的微指令序列称为微程序。 控制存储器:存放一个机器的全部机器指令所对应的微程序的专用存 储器。一般采用ROM 实现。 微操作 :执行部件接受微指令后所进行的操作。 机器运行时,依次从控制存储器读取所要运行指令的微程序中的一条 条微指令,从而产生各种操作控制信号以实现该机器指令的功能。
当执行一条指令时,由机器指令的操作码以及CPU系统状态条件 2. 微指令格式 当执行一条指令时,由机器指令的操作码以及CPU系统状态条件 码构成了机器指令对应一段微程序的微指令地址,控制器按此微指 令地址,从控制存储器ROM中读取相应的微指令,产生控制信号去 控制系统的操作。 微指令的基本格式如图: 操作控制字段 顺序控制字段 操作控制字段(操作控制码): 为一次微操作所需要的全部操作控制信号 的编码; 顺序控制字段:决定产生下一条微指令的地址。
6.3.2微程序控制器的基本结构 BAF(转移地址字段):在发生转移时,用来发生转移时指定下一 条微指令的地址; 该字段可由2部分组成: BAF(转移地址字段):在发生转移时,用来发生转移时指定下一 条微指令的地址; BCF(转移控制字段): 用于微程序中需要转移时,表示条件转移 的转移条件; 6.3.2微程序控制器的基本结构 一个微程序控制器的基本组成有5个部件,如下图 所示。
1、控制存储器 ◆ 控制器核心部件 ◆ 用来存放实现全部机器指令的全部微程序; ◆ 执行机器指令时,微程序控制器不断地依次从控制存储器中读 ◆ 用来存放实现全部机器指令的全部微程序; ◆ 执行机器指令时,微程序控制器不断地依次从控制存储器中读 取对应微程序的微指令,用微指令代码中的控制信号去控制处理 器的各个部件。 ◆ 由ROM组成,将微程序写入ROM称为微程序的固化。 ◆ 控制存储器的容量;控制存储器的字长; 2、微地址寄存器μAR 用来存放将要访问的下一条微指令的微地址;微地址是指微指令 在控制存储器中的存储位置; 只有知道微地址,才能从控制存储器中取出相关微指令。
3、微地址形成部件 是一个译码器,根据指令寄存器IR中的操作码(OP)产生实现 该机器指令的微程序的入口地址。 4、顺序控制逻辑 控制微指令序列,亦即控制形成下一条微指令(后续微指令)的 地址。在执行机器指令过程中,微指令地址形成有三种情况: ① 外界在电源加电后(机器开始运行时),直接向μAR输入取 指周期微程序的入口地址,μAR+1→μAR(在顺序执行时); ② 由机器指令操作码OP经微地址形成部件产生的对应于该机器指 令的微程序的入口地址送微地址寄存器; ③ 由上一条微指令中的下址字段给出,即μIR中的BAF(还需顾 及BCF); 顺序控制逻辑能通过测试微程序执行中的状态标志信息,修改 微地址寄存器中的内容。
6.3.3 微程序设计技术 5、 微指令寄存器μIR 用来存放从控制存储器中读出的一条微指令信息。 微指令包含产生操作控制信号的控制码字段,以及指出下条微指 令的地址字段(包括BAF——地址信息和BCF——条件信息)。 6.3.3 微程序设计技术 微程序的执行过程的关键是: 一是如何由微指令的操作控制字段形成微操作命令; 二是如何形成下一条微指令的地址(微地址);
1.微指令的编码方式 微指令的编码方式:指如何对微指令的控制字段进行编码,以形成 控制信号。 相容性微操作:在同时或同一节拍内可以并行执行的微操作; 相斥性微操作:不能同时或不能在同一个节拍内并行执行的微操作; 相容性和相容性由数据通路间的结构决定的。如在单总线结构的 CPU中,控制各部件向总线输出的操作控制信号是互斥的;内存操 作中的 Read控制信号和 Write 控制信号是互斥的;ALU功能控 制信号也是互斥的。 微指令的编码设计中应考虑到操作控制信号的相斥性的问题。 微指令的编码方法有三种:
◆ 微指令操作控制码字段中,每一位代表一个微命令,表示一个 (1)直接表示法(直接控制法) ◆ 微指令操作控制码字段中,每一位代表一个微命令,表示一个 操作控制信号,“1”表示该控制信号有效;“0”表示该控制信号无效。 ◆ 格式如图所示: ◆ 直接表示法含义清楚、简单直观,其输出可直接用于控制; ◆ 由于CPU工作时需要的操作控制信号很多,导至微指令的操 作控制码字段长达数百位,需要CM有很大的容量; 大多数微指令中,只有很少的操作控制信号是同时有效的, 因此微代码的编码效率极低。
■ 又称“字段编码法”。将微指令中的操作控制码分为若干字段, (2) 编码表示法 ■ 又称“字段编码法”。将微指令中的操作控制码分为若干字段, 将一组互斥的微命令分在一个字段中,需要并行发出的微命令可以 分在不同的字段中。 ■ 格式如图所示:
例如采用4位二进制代码,译码后可表示16种不同的互斥状态, 15个状态对应于15个互斥微命令的操作控制信号,一个状态表 示不发微命令。 例如有3个需并行发出的微命令,微指令的操作控制码可分为 三段,分别用三个译码器产生三个可并行发出的操作控制信号。 ■ 采用分段编码可缩短微指令的长度,减少CM所需存储的代 码数量; ■ 编码的指令代码需要经过译码器后才能得到操作控制信号, 会增加控制信号的延迟,影响CPU的工作速度。
(3) 混合表示法 ● 直接表示法与编码表示法结合使用,采用部分直接表示和部分 编码表示的方法。 将一些要求速度高的 或者一些相容的控制信号采用直接表示 法,其它相斥信号采用编码表示法。 ● 混合表示法格式如图:
◎ 又称增量方式,采用微程序计数器μPC加1来产生下一条指令 的微地址。 微程序的各条微指令按执行顺序按排在CM中,当顺序方式执行 2、微地址的形成方法 有3种方法: (1)计数器方法: ◎ 又称增量方式,采用微程序计数器μPC加1来产生下一条指令 的微地址。 微程序的各条微指令按执行顺序按排在CM中,当顺序方式执行 微程序时,后继微地址由现行微地址加上一个增量(μPC加1)而得。 ◎ 微程序计数器μPC在下述情况下不进行加1操作: ① 微程序结束时,μPC复位到起始微地址,由起始微地址生成 电路产生,或包含在微指令中; ② 当一条新的机器指令装入指令寄存器IR,该机器指令的操作 码生成的执行阶段的起始微地址装入μPC中;
③ 遇到转移微指令且满足转移条件时,转移微指令的顺序控制 ③ 遇到转移微指令且满足转移条件时,转移微指令的顺序控制 字段产生的转移目标 微地址装入μPC; 在微指令中可以增加一个标志位,以区分转移微指令和控制 微指令。 ◎ 计数器方式的顺序控制字段较短,微地址生成机构较简单,实 现方法较直观。但执行速度慢,转移微指令的执行需要占用时间。 ◎ 采用计数器方式的微程序控制器的结构如图:
(2) 断定方式 ★ 下一条微指令的微地址包含在当前微指令的代码中。 ★ 微指令的格式如下: ★ 微指令的格式如下: 下址字段用来指定下一条微指令的微地址。 为解决根据条件进行转移,引入两个地址字段:下址1和下址2 根据状态条件选择其中一个下址作为下一条微指令的微地址。
★ 提高了微程序的执行速度,不需要采用μPC,灵活性好,缺点 是增加了微指令代码的长度。 ★ 断定方式的微程序控制器的结构如图:
(3) 结合方式 增量方式和断定方式结合而成的一种方式,其结构如图所示。
顺序执行微指令时, 为增量方式,微程序计数器μPC的计数值 作为下址; 条件转移微指令时,为断定方式,微指令中转移控制字段BCF确 结合方式的微控制器中 , 顺序执行微指令时, 为增量方式,微程序计数器μPC的计数值 作为下址; 条件转移微指令时,为断定方式,微指令中转移控制字段BCF确 定转移的条件,转移地址字段BAF送入μPC,指定转移时下一条微 指令的微地址。 3、 微指令格式分类 有两种类型: (1)水平型微指令 指一次能定义并执行多个并行操作控制信号的微指令,是一种速 度最快的微指令格式。前面所介绍的直接表示法、编码表示法和混合 表示法三种编码方式的微指令都属于水平型微指令。
指采用类似机器指令结构的微指令,一条垂直型微指令中只有1~ (2) 垂直型微指令 指采用类似机器指令结构的微指令,一条垂直型微指令中只有1~ 2个微操作命令,控制1~2种微操作,这种微指令不强调并行控制功能。 垂直型微指令设置有微操作码字段,由微操作码规定微指令的功能。 一种16位的垂直型微指令的结构如下: ① 传送型微指令格式:
长,一条机器指令的微程序较短,因此执行一条机器指令的速度较快, 但微指令的结构同机器指令结构差别较大; ② 运算控制型微指令格式: ③ 水平型微指令与垂直型微指令的比较 水平型微指令的并行操作能力强、效率高、灵活性强,微指令较 长,一条机器指令的微程序较短,因此执行一条机器指令的速度较快, 但微指令的结构同机器指令结构差别较大; 垂直型微指令以其较长的微程序结构换取较短的微指令结构,但 微 指令的结构同机器指令结构相似。
(1)根据硬接线控制器设计一节可知,4条指令的执行共需18个控制 信号, 构成18位的控制字,格式如图6-13所示。 4、微指令格式设计举例 以单总线结构CPU的4条指令:ADD R3,R2,R1 、 LOAD R1,mem 、STORE R1 , mem 、 BR offs为例设计微程序 控制器。 设4条机器指令的操作码分别为 00 、01 、10 、和11。 (1)根据硬接线控制器设计一节可知,4条指令的执行共需18个控制 信号, 构成18位的控制字,格式如图6-13所示。
(2) 微指令设计 取指令周期由2条微指令完成,分别表示为T1,T2,这是4条 机器指令所共有的; ADD指令的执行周期有3条微指令,表示为ADDT3、ADDT4 、ADDT5; LOAD指令的执行周期有2条微指令,表示为LOADT3和 LOADT4 ; STORE指令的执行周期有2条微指令,表示为STORET3和 STORET4; BR指令的执行周期有3条微指令,表示为BRT3、BRT4、BRT5。 共12条微指令
(3) 微指令的控制码字段 根据表5-12中各节拍内的操作和控制信号,控制字设计如下:
(4) 列出微程序流程,安排微地址 12条微指令组成5个微程序的流程图
微指令设计为23位,其中操作控制码字段18位,顺序控制字段5 位,包括BCF 1位和BAF 4位。 12条微指令设计为: 4条机器指令的微程序分支中第一条微指令的微地址由机器指令操作 码 00、01、10、11和10代码拼接而成0010、0110、1010、1110 。 (5) 微指令设计 微指令设计为23位,其中操作控制码字段18位,顺序控制字段5 位,包括BCF 1位和BAF 4位。 12条微指令设计为:
用1位BCF字段控制分支地址的形成, (6) 多分支地址形成电路 当BCF=1 时,指令操作码生成下址的高2位,低2位由BAF低2位 确定,固定为10,形成4组微指令首地址; 当BCF=0 时,顺序执行微指令,下址由BAF4位确定。 微地址形成原理如图所示。
6.4 中断与异常处理 异常:指CPU在运行程序时,由于某一事件的出现,要求CPU暂时 6.4 中断与异常处理 6.4.1 中断与异常的定义 1、 中断与异常的定义 异常:指CPU在运行程序时,由于某一事件的出现,要求CPU暂时 中止(挂起)正在运行的程序,转而调用一个引起CPU暂时中止运行 的内、外部事件的服务程序(处理程序),待该服务程序处理完毕后 又返回到被中止的程序的过程。 外部中断:外部事件引起的异常,又称为“外部异常”或“硬件中断”; 中断源:能够向CPU发出中断请求的中断来源。
内部异常是与CPU时钟同步的。有的发生在程序中相关指令处,有的 发生在程序执行过程中的异常操作时, 一般的输入/输出设备,如CRT终端、行式打印机等; 数据通道,如磁带、磁盘等; 常见的中断源 实时时钟,如定时器的定时输出作为定时中断请求信号; 故障信号,如电源掉电等。 系统调用; 陷阱指令、特权指令和程序调试指令; 程序运行出错; 捏序运行中遇到异常操作——非正常操作 指令中断 常见的内部异常事件 内部中断 内部异常是与CPU时钟同步的。有的发生在程序中相关指令处,有的 发生在程序执行过程中的异常操作时,
2、可屏蔽中断与不可屏蔽中断 按CPU内部受理中断请求划分: 异常处理程序:在嵌入式操作系统中用来处理异常与中断的软件; 可屏蔽中断 中断 中断处理机构:用来处理异常与中断的硬件; 异常处理程序:在嵌入式操作系统中用来处理异常与中断的软件; 2、可屏蔽中断与不可屏蔽中断 按CPU内部受理中断请求划分: 指CPU能拒绝响应的中断请求信号,不允许打断处理器所执行的主程序。由CPU内部的中断触发器实现 可屏蔽中断 中断 不可屏蔽中断 处理器内部不能“屏蔽”的中断
6.4.2 中断处理过程 中断处理过程的流程图
1、CPU响应中断的条件 (1)设置中断请求触发器 ◆ 原因 中断请求信号是随机的; 大多数CPU都是在现行指令周期结束时检测有无中断请求信号; 必须锁存随机输入的中断请求信号并保持到CPU响应这个中断 请求后; ◆ 硬件电路 一个中断源配置一个中断请求触发器,硬件电路如中断屏蔽接 口电路图中部件A所示。
中断屏蔽接口电路图
中断屏蔽触发器的输出信号通过逻辑门电路控制该中断源的中断 请求信号是否发出; (2) 设置中断屏蔽触发器 ◆ 原因 多个中断源的情况下,控制外设的中断请求信号能否被送到 CPU,增加控制的灵活性; ◆ 硬件电路 每一个中断源的接口电路中,设置一个中断屏蔽触发器,用 中断屏蔽触发器的输出信号通过逻辑门电路控制该中断源的中断 请求信号是否发出; 中断屏蔽触发器如中断屏蔽接口电路图中部件B所示,通过与 门控制中断请求信的输出; 把8个外设的中断屏蔽触发器组成一个中断屏蔽寄存器端口, 用输出指令来控制它们的状态。
CPU内部设有一个中断允许触发器,当其状态为“1”时,中断开 放,CPU才能响应中断;若其状态为“0”时,中断关闭,禁止CPU响 (3)设置中断允许触发器的状态 针对可屏蔽中断而言。 CPU内部设有一个中断允许触发器,当其状态为“1”时,中断开 放,CPU才能响应中断;若其状态为“0”时,中断关闭,禁止CPU响 应中断; 采用允许中断和禁止中断指令来设置中断允许触发器的状态; 中断响应后,CPU就自动关闭中断,在中断服务程序结束时,必 须执行允许中断指令和中断返回指令。 (4)CPU在现行指令结束后响应中断 满足上述3个条件的情况下,CPU在执行现行指令的最后一个机 器周期(总线周期)的最后一个时钟周期(T状态)时, 采样中断 输入线INT,若发现中断请求有效,则把内部的中断锁存器置“1”,
CPU在响应中断后,发出中断响应信号,同时内部自动地关中断 即设置中断允许触发器的状态为0 ; (2)保护断点 下一总线周期进入中断周期。 2、 CPU 的中断响应过程 (1)关中断 CPU在响应中断后,发出中断响应信号,同时内部自动地关中断 即设置中断允许触发器的状态为0 ; (2)保护断点 把断点处的IP(指令指针)值和CS值(段基值)压入堆栈保留; (3)识别中断源 CPU必须要找到相应的中断服务程序(处理中断的程序)的入 口地址,对中断请求进行处理, 识别中断源采用两种方法:
① 查询中断 软件查询方法。 CPU在接收到外设的中断请求后,执行中断源查询程序,读出 ① 查询中断 软件查询方法。 CPU在接收到外设的中断请求后,执行中断源查询程序,读出 接在中断线上的每一个外设的中断状态位,通过测试该状态位来判 断对应的外设是否发出过中断请求,若是,则转到该外设的相应的 中断服务程序。 一个管理4个外设的查询测试程序的流程图及硬件示意图见下图。
外设的中断状态位为“1”表示有中断请求
每个外设都预先指定一个中断识别码,当CPU识别出某个外设 中断请求并予以响应时,硬件控制逻辑电路就将该外设的中断识 ② 向量中断 又称矢量中断,硬件实现的方法; 在具有向量中断的计算机系统实现; 每个外设都预先指定一个中断识别码,当CPU识别出某个外设 中断请求并予以响应时,硬件控制逻辑电路就将该外设的中断识 别码送入CPU,以自动地提供相应的中断服务程序的入口地址,转 入中断服务。 (4) 保护现场 为了不使中断服务程序的运行影响主程序的状态,必须把断点处 有关寄存器(指在中断服务程序中要使用的寄存器)内容以及标志寄 存器的状态,压入堆栈保护。
6.4.3 中断优先级 (5) 执行中断服务程序 (6) 恢复现场 把中断服务程序执行前压入堆栈的现场信息弹回原寄存器及标志。 (7)开中断与返回 开中断放在返回之前,目的是返回主程序后能继续响应新的中断请 求 6.4.3 中断优先级 中断优先级 :又称优先权,根据中断源的性质和要求处理的轻重缓急 ,给全部中断源安排德中断处理的优先次序。 多个中断源同时请求中断时,CPU确定首先为哪一 个中断源服务,以及服务的次序的依据。
凡是计算机系统中的中断源 数目多于CPU的中断请求线时,就 需要采取适当的方法来解决中断优先级的问题。 解决中断的优先级的方法有以下几种: 1、软件查询确定中断优先级 采用该方法的硬件接口电路如图。 当CPU响应中断后,把中断寄存器 的状态作为一个外设信息读入CPU,按 优先级的次序,逐位检测其状态,若检 测出某位有中断请求,即转入相应的中 断服务程序入口。 2、 硬件查询确定优先级
硬件查询的优先级中断链电路(链式优先级排队电路)如图:
来自CPU“中断响应”信号(低电平)从A设备开始串行地往下传 断响应”信号在门A2处被封锁,不再下传,使后级设备得不到CPU的 “中断响应”信号。同时A设备的“数据允许”线EN变为有效(高电平) ,从而允许A设备使用数据总线,将其中断类型放上数据总线进入 CPU。当A设备无“中断请求”时,“中断响应”信号可以通过A2门传给 下一设备B。
8.4 6.4.4 中断的嵌套 1、 多重中断的概念 的中断源请求中断,而挂起正在处理的中断,待优先级高的中断服务 当CPU执行优先级较低的中断服务程序时,允许响应比它优先级高 的中断源请求中断,而挂起正在处理的中断,待优先级高的中断服务 结束后,再返回到刚才被中断的较低优先的那一级,这称为多重中断 又称中断嵌套。 l k m l +1 m +1 k +1 第一次 中断 第二次 第三次 程序断点 k+1 , l+1 , m+1
(1)屏蔽本级和较低级中断请求,允许优先级比它高的中断源进行中 2、 多重中断的流程 (1)屏蔽本级和较低级中断请求,允许优先级比它高的中断源进行中 断,防止在进行中断处理时不受到来自本级和较低级中断的干扰; (2)在执行中断服务之前,要开放中断,以便允许进行中断嵌套; (3)中断服务程序结束之后,必须先执行关中断指令,将中断关闭后, 才能恢复现场。 (4)恢复现场后,应该执行开中断指令,重新开放中断,以便允许其 他等待着的中断请求有可能被CPU响应。应当指出只有在执行了紧跟 在开中断指令后面的一条指令以后,CPU才重新开放中断。 一般紧跟在开中断指令后的是返回指令RET,返回被中断的服务 程序的断点地址,然后CPU才能开放中断,响应新的中断请求。 多个中断源、单一中断请求线的中断处理过程的流程如下:
中断屏蔽:指中断源发出的中断请求信号并不一定能真正送到CPU 去,在有些情况下,通过程序方式有选择地封锁部分中断源的中断请求; 3、 中断屏蔽技术 (1)中断屏蔽和屏蔽字 中断屏蔽:指中断源发出的中断请求信号并不一定能真正送到CPU 去,在有些情况下,通过程序方式有选择地封锁部分中断源的中断请求; 中断屏蔽触发器:每个中断源都相应地配备的一个触发器电路,触 发器状态为“1”,则对应的中断请求被封锁,无法去参加排队判优;若 触发器状态为“0”,对应的中断请求送往CPU。 中断屏蔽寄存器:多个中断源的中断屏蔽触发器组合的一个寄存器。 屏蔽字: 指中断屏蔽寄存器的内容,用程序方法设置屏蔽寄存器中 的屏蔽字,屏蔽字与中断源的优先级一一对应。 16个中断源的中断优先级和屏蔽字的关系如下表:
优先级 屏 蔽 字 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 … 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 6 15 16
较低的中断源变成较高的处理级别,从而改变CPU执行程序的轨迹, 这是一种动态改变优先级的方法。 (1) 中断优先级的改变 采用中断屏蔽字可以改变CPU处理各中断源的优先级,将原级别 较低的中断源变成较高的处理级别,从而改变CPU执行程序的轨迹, 这是一种动态改变优先级的方法。 例:某计算机的中断系统有4个中断源,每个中断源对应一个屏蔽字。 中断响应的优先次序为L1→L2→L3→L4,中断的处理次序和中断的 响应次序是一致的。 中断屏蔽字设置为:
中断源 屏 蔽 字 L1 L2 L3 L4 1
各个中断源在不同时刻提出请求如图中所示,则CPU执行程序的轨迹为:
要使中断处理次序改为L1→L4→L3→L2,则只需使中断屏蔽字改为: 中断源 屏 蔽 字 L1 L2 L3 L4 1
各个中断源提出请求和上例不变,则CPU执行程序的轨迹为:
6.5 中央处理器中流水线技术的基本概念 6.5.1 并行性的概念 1、 冯·诺依曼型计算机结构 6.5 中央处理器中流水线技术的基本概念 6.5.1 并行性的概念 1、 冯·诺依曼型计算机结构 ◆ 1946年,冯·诺依曼提出存储程序的概念和一个完整的现代计算机 的雏型,该结构以运算器为中心,由运算器、控制器、存储器、输入 设备和输出设备组成,指令与数据存放在存储器中,所有的输入/输出 活动都必需经过运算器,如图所示。
◆ 改进型冯·诺依曼型计算机结构 以存储器为中心
⑾ 使程序和数据空间分开,以增加存储带宽 改进型冯·诺依曼型计算机结构的特点: ① 增加了浮点数、字符串和BCD码的表示; ② 采用虚拟存储器,便于高级语言编程; ③ 引入堆栈; ④ 采用变址寄存器并增加间接寻址方式; ⑤ 增加了CPU内通用寄存器的数量,增设Cache; ⑥ 采用存储器交叉访问技术及无冲突并行存储器; ⑦ 采用流水线技术; ⑧ 采用了多功能部件 实现并发操作; ⑨ 采用支持处理机,如协处理器 和输入/输出处理器 ; ⑩ 采用自定义的数据表示; ⑾ 使程序和数据空间分开,以增加存储带宽 非冯·诺依曼型 结构
,而CPU的速度就取决于单一指令的执行速度。 ◆ 冯·诺依曼型计算机的主要特点 计算机执行程序是按指令顺序进行的,即指令采用串行执行,由 控制器集中控制。 在一个CPU的计算机系统中,系统的速度主要由CPU的速度决定 ,而CPU的速度就取决于单一指令的执行速度。 ◆ 提高系统的速度的三种途径 (1)提髙CPU的速度,但CPU的速度提髙有一定极限值;是芯片设 计者的任务。 (2)增加CPU个数,多个CPU并行执行多条指令; (3)单CPU系统中将指令执行过程分为n个子过程,分别由CPU中n 个各自独立的子部件来处理。 对整个CPU而言,在满足一定条件下, 在某一时刻,CPU并行执行n条指令。
2、并行性定义 3、 并行性的等级 同时性 两个或多个事件在同一时刻发生 并行性 并发性 两个或多个事件在同一时间间隔内发生 同时性 两个或多个事件在同一时刻发生 并发性 两个或多个事件在同一时间间隔内发生 并行性 并行性是指在同一时刻或同一时间间隔内完成两种或两种以上性 质相同或不同的工作。 在时间上相互重叠,均存在并行性。 n位串行进位的并行加法器存在“并发性” ; 读写由8片存储芯片(如2164)组成8位存储器,存在“同时性”; 3、 并行性的等级 从程序执行的角度可划分为4个级别:
任务级或过程级 并行执行多个过程或任务(程序段) 作业级或程序级 在多个作业或程序间的并行 硬件实现 指令内部级 指令内部微操作之间的并行 指令级 并行执行两条或多条指令 任务级或过程级 并行执行多个过程或任务(程序段) 作业级或程序级 在多个作业或程序间的并行 硬件实现 单机系统 软件实现 从数据处理的角度可分为4个级别: 字串位串 同时只对一个字的一位进行逐位处理,最基本的串行 处理 字串位并 同时对一个字的所有位进行处理,但字与字之间串行 字并位串 同时对多个字的同一位进行处理 字并位并 同时对多个字的所有位或部分位进行处理
4、提高并行性的技术途径 (1)时间重叠 ● 时间重叠 :指多个处理过程在时间上相互错开,轮流重叠地 提高并行性的技术途径有三种: (1)时间重叠 ● 时间重叠 :指多个处理过程在时间上相互错开,轮流重叠地 使用同一套硬件设备的各个部件,以加快部件的周转而提高速度 ,提高多个处理过程的并发性。 ● 指令流水线 一条指令的执行过程的三个步骤:取指、译码分析、执行; 设每个操作步骤完成的时间为△t
行指令,则第K条指令、第K+1条指令和第K+2条指令的操作在时间上 产生重叠,三条指令彼此在时间上错开△t,执行过程如图所示,3条 若各3个步骤由3个相应的硬件部件来完成,即以流水线方式解释执 行指令,则第K条指令、第K+1条指令和第K+2条指令的操作在时间上 产生重叠,三条指令彼此在时间上错开△t,执行过程如图所示,3条 指令共需要时间为5△t;
指令的执行速度不变,时间重叠能加快程序的执行速度。 采用时间重叠技术,在不需要增加过多硬件设备的前提下,提高 了系统的并行性,提高了系统的性能价格比。这一技术在标量流水 线处理机、超流水线处理机和向量流水线处理机中得到广泛应用。 (2)资源重复 通过重复设置资源,特别是硬件资源,分别同时用于多个处理 过程,实现多个处理过程的同时性. 多处理器系统是典型的资源重复 ,系统中n个完全相同的处理 器PE0~PEn-1受一个控制器CU控制,控制器每执行一条指令就可以 同时让各个处理器对各自分配到的数据完成同一运算。系统如图。
资源重复 资源重复技术在超标量处理机和阵列处理机中得到很好的应用。
来轮流使用一套硬件资源,通过提高系统资源利用率来提高系统的 性能和效率。 (3)资源共享 采用软件方法使多个用户(或多个任务)按一定顺序(时间片) 来轮流使用一套硬件资源,通过提高系统资源利用率来提高系统的 性能和效率。 资源共享指共享系统的硬件资源或软件的信息资源,典型的例 子如计算机网络和分布式处理系统
6.5.2. 指令的三种解释方式 指令的解释过程(执行过程) 把要处理的指令从存储器里取出送处理机的指令寄存器,同时形成下条指令的地址 6.5.2. 指令的三种解释方式 指令的解释过程(执行过程) 取指子过程 分析子过程 执行子过程 把要处理的指令从存储器里取出送处理机的指令寄存器,同时形成下条指令的地址 把指令寄存器中存放的要处理的指令进行译码,形成操作数的实际地址,并取操作数 对操作数进行运 算或处理,并存 结果。
设执行由n条指令组成的程序段,每条指令解释过程分为取指令、分析和执行3个操作,则顺序执行时的工作方式如下图所示。 指令的解释可采用 三种方式—顺序、重叠和流水。 1、顺序解释方式 设执行由n条指令组成的程序段,每条指令解释过程分为取指令、分析和执行3个操作,则顺序执行时的工作方式如下图所示。 若取指令、分析指令和执行指令的时间分别为△t取i、△t分i和△t执i, 则顺序解释n条指令的时间为:
i=1 n T = ∑( △t取i + △t分i + △t执i ) 2、重叠解释方式 若 △t取i = △t分i = △t执i = △t 则 T = 3×n×△t = 3n△t。 2、重叠解释方式 (1)重叠解释执行方式 指在两条相邻指令的解释过程中,某些不同解释阶段在时间上存 在重叠部分。重叠解释执行方式如图所示。 T = (2n+1)△t
这种“重叠解释执行方式”需要硬件上增加一个指令缓冲寄存器,用 来存放下一条要执行的指令。 如果将相邻两条指令的重叠时间再往前提一阶段,便形成 “更高重 叠程度的解释执行方式”,如图所示: T = 3×△t +(n-1)×△t =(n+2)△t (2)重叠解释执行方式存在的问题 在第k条指令分析阶段要访问操作数,第k+1条指令的取指阶段取 指令,这两条指令在同一时间段都要访问存储器,会形成访存冲突。
① 指令和数据分别存放在指令存储器和数据存储器; ② 采用多存储体交叉方法,使第k条指令和第k+1条指令存放在 不同的存储体中; (3) 防止访存冲突的3种方法 ① 指令和数据分别存放在指令存储器和数据存储器; ② 采用多存储体交叉方法,使第k条指令和第k+1条指令存放在 不同的存储体中; ③ 设立指令缓冲寄存器组,把所需的后继指令预取到指令缓冲器 组(指令缓冲栈) 。
部件,两个部件是独立的。取指分析子过程在分析器中完成;执行 子过程在执行部件中实现,如图所示。 (4) 一次重叠工作方式 一次重叠: 在任何时刻只允许上条指令的“执行”与下条指令的 “分析”相重叠, 预取的第k+1条指令存放在指令缓冲寄存器中,由于访问寄存器速度较快,原来的取指阶段可合并到分析指令中,使指令的解释过程仅有“分析”和“执行”两个阶段,该方式如图所示。 T = (n+1)△t 上下指令的重叠时间有一定的约束,只需一套指令分析和执行 部件,两个部件是独立的。取指分析子过程在分析器中完成;执行 子过程在执行部件中实现,如图所示。
3、 流水线方式 如果把指令解释执行过程进一步细分为“取指”、“译码”、“取操 作数”和 “执行”4个子过程,分别由各自独立的子部件来处理,上一 条指令的第一子过程处理完后进入第二子过程处理时,在第一子部件 中就开始对第二条指令的第一子过程进行处理,……处理过程如图 所示。
流水线方式 … 从图中可见,在一定时间后,这种重叠操作最后可达到4个子部件 同时对4条指令的子过程进行操作。 这种工作方式称为流水线方 式。
流水线技术是指将一个重复的时序过程分解为若干个子过程,而 每一个子过程都可有效地在对应的专用功能部件上与其它子过程 同时执行。经过一定时间(n-1)△t 后,n个子部件可同时对n 条指令的子过程进行操作。
6.5.3. 流水线技术的特点 (2)实现子过程的功能段所需时间应尽可能相等,避免因不等而产生处理的瓶颈,形成流水线的“断流”。 6.5.3. 流水线技术的特点 (1)流水线可以划分为若干个互有联系的子过程(功能段)。每个功能段有专用功能部件实现。 (2)实现子过程的功能段所需时间应尽可能相等,避免因不等而产生处理的瓶颈,形成流水线的“断流”。 (3)形成流水处理需要一段准备时间,称“通过时间”。只有在此之后流水过程才能够稳定。 (4)指令流发生不能顺序执行时,会使流水过程中断,再形成流水过程,则需要经过时间,所以流水过程不应常“断流”,否则效率就不会很高。 (5)流水技术适用于大量重复的程序过程,只有在输入端连续地提供服务,流水线效率才能充分发挥。
Thank You !