1、计算机组成原理,沈阳理工大学 马玉峰,第一章 计算机系统概论 第二章 运算方法和运算器 第三章 内部存储器 第四章 指令系统 第五章 中央处理机 第六章 总线系统 第七章 外围设备 第八章 输入输出系统 第九章 操作系统支持,目录,计算机组成原理,第5章 中央处理机,5.1 CPU的功能和组成 5.7 流水CPU 5.2 指令周期 5.8 RISC CPU 5.3 时序产生器和控制方式 5.9 多媒体CPU 5.4 微程序控制器 5.5硬连线控制器 5.6 传统CPU,5.1 CPU的功能和组成,当代主流计算机所遵循的仍然是冯.诺依曼的“存储程序、程序控制”思想。程序告诉计算机:应该逐步执行什
2、么操作;在什么地方找到用来操作的数据,结果存到何处等。中央处理器是控制计算机自动完成取出指令和执行指令任务的部件。它是计算机的核心部件,通常简称为CPU(Central Processing Unit)。,5.1.1 CPU的功能, 指令控制 保证机器按程序规定的顺序取出执行, 操作控制 CPU产生每条指令所对应的操作信号,并把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作, 时间控制 对各种操作的实施时间进行定时, 数据加工 对数据进行算术运算和逻辑运算处理,5.1.2 CPU的基本组成,CPU包括运算器、cache、控制器三大部分。 控制器 组成:程序计数器、指令寄存器、
3、指令译码器、时序产生器和操作控制器。 作用:完成对整个计算机系统操作的协调与指挥。 (1) 控制机器从内存中取出一条指令,并指出下一条指令在指令cache中的位置; (2) 对指令进行译码或测试,并产生相应的操作控制信号,送往相应的部件,启动规定的动作;(3) 指挥并控制CPU、数据cache和输入/输出(I/O)设备之间数据流动的方向。,5.1.2 CPU的基本组成,运算器 组成:算术逻辑单元(ALU)、通用寄存器、数据缓冲寄存器(DR)和状态条件寄存器(PSW)。 作用:是数据加工处理部件,所进行的全部操作由控制器发出的控制信号指挥 。(1)执行所有的算术运算; (2)执行所有的逻辑运算,
4、并进行逻辑测试,5.1.3 CPU中的主要寄存器,(1)数据缓冲寄存器(DR) 暂时存放ALU的运算结果,或由数据存储器读出的一个数据字,或来自外部接口的一个数据字。 作用: 作为ALU运算结果和通用寄存器之间信息传送中时间上的缓冲; 补偿CPU和内存、外围设备之间在操作速度上的差别。,5.1.3 CPU中的主要寄存器,(2)指令寄存器(IR) 保存当前正在执行的一条指令 指令寄存器用来存放从存储器中取出的待执行的指令。 在执行该指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能。指令译码器ID(Instruction Decoder) 暂存在指令寄存器中的指令只有在其操作
5、码部分经译码后才能识别出是一条什么样的指令。 译码器经过对指令进行分析和解释,产生相应的控制信号提供给时序控制信号形成部件。,5.1.3 CPU中的主要寄存器,(3)程序(指令)计数器(PC) 用来存放正在执行的指令的地址或接着将要执行的下一条指令的地址。 顺序执行时,每执行一条指令,PC的值应加1 要改变程序执行顺序的情况时,一般由转移类指令将转移目标地址送往PC ,可实现程序的转移。,5.1.3 CPU中的主要寄存器,(4)数据地址寄存器(AR) 用来保存当前CPU所访问的数据cache存储器中(简称数存)单元的地址。 使用单纯的寄存器结构 信息存入一般采用电位-脉冲方式 即电位输入端对应
6、数据信息位脉冲输入端对应控制信号 在控制信号作用下,瞬时地将信息打入寄存器。,5.1.3 CPU中的主要寄存器,(5)通用寄存器(R0R3) 累加寄存器AC通常简称为累加器,它是一个通用寄存器。 其功能是:当运算器的算术逻辑单元(ALU)执行算术或逻辑运算时,为ALU提供一个工作区。累加寄存器暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。 目前CPU中的通用寄存器,多达64个,甚至更多。当使用多个累加器时,就变成通用寄存器堆结构,其中任何一个可存放源操作数,也可存放结果操作数。在这种情况下,需要在指令格式中对寄存器号加以编址。 通用寄存器还用于作地址指示器、变址寄存器、堆
7、栈指示器等。,16位通用寄存器,8086有14个16位寄存器:8个通用寄存器、1个指令指针寄存器、1个标志寄存器和4个段寄存器。它们都有名称,编程时使用其名称代表其保存的内容。,16位通用寄存器,AH在乘除等指令中指定用来存放操作数。另外,所有的I/O指令都使用这一寄存器与外界设备传送数据. BH&BLBX:基址寄存器,常用于地址索引; CH&CLCX:计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器。 DH&DLDX:数据寄存器,常用于数据传递。 这2组8位寄存器可以分别寻址,并单独使用。 另一组是指针寄存器和变址寄存器,包括: SP:堆
8、栈指针,与SS配合使用,可指向目前的堆栈位置; BP:基址指针寄存器,可用作SS的一个相对基址位置; SI: 源变址寄存器可用来存放相对于DS段的源变址指针; DI:目的变址寄存器,可用来存放相对于 ES 段的目的变址指针。,段寄存器,代码段寄存器CS:指向当前的代码段,指令由此段取出。 堆栈段寄存器SS:指向当前的堆栈段,堆栈操作就是对该段存储单元的内容进行读写。 数据段寄存器DS:指向当前的数据段,通常用来存放程序变量、数据。 附加段寄存器ES:指向当前的附加段,通常用来存储数据。,32位通用寄存器,A、通用寄存器 EAX:通用寄存器。相对其他寄存器,在进行运算方面比较常用。在保护模式中,
9、也可以作为内存偏移指针(此时,DS作为段 寄存器或选择器) EBX:通用寄存器。通常作为内存偏移指针使用(相对于EAX、ECX、EDX),DS是默认的段寄存器或选择器。ECX:通用寄存器。通常用于特定指令的计数。在保护模式中,也可以作为内存偏移指针(此时,DS作为 寄存器或段选择器)。 EDX:通用寄存器。在某些运算中作为EAX的溢出寄存器(例如乘、除)。在保护模式中,也可以作为内存偏移指针(此时,DS作为段 寄存器或选择器)。 同AX分为AH&AL一样,上述寄存器包括对应的16-bit分组和8-bit分组。 B、用作内存指针的特殊寄存器 ESI:通常在内存操作指令中作为“源地址指针”使用。当
10、然,ESI可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS是默认段寄存器或选择器。 EDI:通常在内存操作指令中作为“目的地址指针”使用。当然, EDI也可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS是默认段寄存器或选择器。 EBP:这也是一个作为指针的寄存器。通常,它被高级语言编译器用以建造堆栈帧来保存函数或过程的局部变量,不过,还是那句话,你可以在其中保存你希望的任何数据。SS是它的默认段寄存器或选择器。 注意,这三个寄存器没有对应的8-bit分组。换言之,你可以通过SI、DI、BP作为别名访问他们的低16位,却没有办法直接访问他们的低8位。,5.1.3 CP
11、U中的主要寄存器,(6)状态条件寄存器 (PSW) 保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容。 如运算结果进位标志(C),运算结果溢出标志(V),运算结果为零标志(Z),运算结果为负标志(N)等等。这些标志位通常分别由 1位触发器保存。 除此之外,状态条件寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。 因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器。,5.1.4 操作控制器与时序产生器,数据通路: 是许多寄存器之间传送信息的通路。 操作控制器:在各寄存器之间建立数据通路(传送信息的通路)。 操作控制器的功能: 就
12、是根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。 硬布线控制器时序逻辑 微程序控制器存储逻辑 时序产生器产生并发出计算机所需要的时序控制信号。,5.2 指令周期,读取指令 指令地址送入主存地址寄存器 读主存,读出内容送入指定的寄存器 分析指令 按指令规定内容执行指令 不同指令的操作步骤数 和具体操作内容差异很大 检查有无中断请求 若无,则转入下一条指令的执行过程,形成下一条指令地址,指令的执行过程,5.2.1 指令周期的基本概念,指令周期 : CPU从内存取出一条指令并执行完这条指令的时间总和,CPU周期 : 又称机器周期(总线周期),
13、CPU访问内存所花的时间较长,因此用CPU从内存读取一条指令字的所需的最短时间来定义CPU周期。,时钟周期 : 通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期T。(最基本单位),相互关系: 1个指令周期 = 若干个CPU周期 1个CPU周期 = 若干T周期,取指时间执行指令时间,指令周期 CPU周期 时钟周期,5.2.2 MOV指令的指令周期,1.MOV取指周期,2.MOV执行指令,5.2.3LAD指令的指令周期,LAD取指执行周期,5.2.4 ADD指令的指令周期,5.2.4 ADD指令的指令周期,5.2.5 STO指令的指令周期,5.2.5 STO指令的指令周期,5.2.6 J
14、MP指令的指令周期,5.2.6 JMP指令的指令周期,5.2.7用方框图语言表示的指令周期,引入目的主要是为了教学目的(控制器设计) 方法: 指令系统设计(模型机的五指令系统) 方框按CPU周期 方框内内容数据通路操作或控制操作 菱形符号判别或测试 公操作 前边所讲述的5种操作的框图描述,5.2.7方框图表示指令周期,5.2.7方框图表示指令周期,P139例1双总线结构机器的数据通路图,5.3 时序产生器和控制方式,用二进制码表示的指令和数据都放在内存里,那么CPU是怎样识别出它们是数据还是指令呢?,从时间上来说: 取指令事件发生在指令周期的第一个CPU周期中,即发生在“取指令”阶段,而取数据
15、事件发生在指令周期的后面几个CPU周期中,即发生在“执行指令”阶段。,从空间上来说: 如果取出的代码是指令,那么一定经DR送往指令寄存器IR,如果取出的代码是数据,那么一定送往运算器。,时间控制对计算机来说是非常重要的!,思考,5.3.1 时序信号的作用和体制,计算机的协调动作需要时间标志,而且需要采用多级时序体制。而时间标志则用时序信号来体现。 组成计算机硬件的器件特性决定了时序信号的基本体制是电位脉冲制(以触发器为例) 即电位输入端对应数据信息位脉冲输入端对应控制信号 电位的高低表示数据是1还是0,打入数据的控制信号到来之前,点位信号必须已经稳定。,数据准备好后,以电位的方式送触发器 控制
16、信号来到后,用一个脉冲信号把数据装入触发器,数据:电位,控制信号:脉冲,节拍电位-节拍脉冲,电位脉冲制,硬布线控制器中,时序信号往往采用主状态周期-节拍电位-节拍脉冲三级体制。 主状态周期(指令周期):包含若干个节拍周期,可以用一个触发器的状态持续时间来表示。 节拍电位(机器周期):表示一个CPU 周期的时间,包含若干个节拍脉冲。 节拍脉冲(时钟周期):表示较小的时间单位。 微程序控制器中,时序信号则一般采用节拍电位-节拍脉冲二级体制。 只有一个节拍电位 节拍电位包含若干个节拍脉冲(时钟周期):,节拍脉冲,节拍电位1,主状态周期,节拍电位2,主状态周期-节拍电位-节拍脉冲,5.3.2 时序信号
17、产生器,一、功能:用逻辑电路实现时序 各型计算机产生时序电路不相同 大、中型计算机的时序电路复杂,微型计算机的时序电路简单。 硬连线的时序电路复杂,微程序控制器的时序电路比较简单。 二、构成: 时钟源 环形脉冲发生器 节拍脉冲和读写时序译码逻辑 启停控制逻辑,5.3.2 时序信号产生器,产生一组有序的间隔相等或不等的脉冲序列,提供频率稳定且电平匹配的方波时钟脉冲信号,由石英晶体振荡器组成,一、时钟脉冲源,电路左边是振荡电路,右边是整形电路 左边的电路产生接近正弦波的波形 右边非门则将其整形为一个理想的方波,二、环形脉冲发生器,作用:产生一组有序间隔相等或不等的脉冲序列 毛刺产生原因:电路内部原
18、因以及寄存器参数的影响,避免方法:采用循环移位寄存器 电路分析:S为置位端,R为复位端,三、节拍脉冲和存储器读/写时序,节拍脉冲的译码逻辑(一个CPU周期包含4个等间隔的节拍脉冲,每个200ns),四、启停控制逻辑,启动、停机是随机的,对读/写时序信号也需要由启停逻辑加以控制。当运行触发器为“1”时,打开时序电路。当计算机启动时,一定要从第1个节拍脉冲前沿开始工作。当运行触发器“0”时,关闭时序产生器。停机时一定要在第4个节拍脉冲结束后关闭时序产生器。,5.3.3 控制方式,机器指令所包含的CPU周期数反映了指令的复杂程度,不同CPU周期的操作信号的数目和出现的先后次序也不相同。 控制方式:控
19、制不同操作序列时序信号的方法。 分为以下几种: 同步控制方式 异步控制方式 联合控制方式,一、同步控制方式 1、含义:又称为固定时序控制方式或无应答控制方式。任何指令的执行或指令中每个微操作的执行都受事先安排好的时序信号的控制。 2、三种实现方案 完全统一的机器周期执行各种不同的指令 采用不定长机器周期 中央控制与局部控制的结合 3、优点:设计简单,操作控制容易实现。缺点:效率低。,5.3.3 控制方式,二、异步控制方式1、 含义:可变时序控制方式或应答控制方式。执行一条指令需要多少节拍,不作统一的规定,而是根据每条指令的具体情况而定,需要多少,控制器就产生多少时标信号。2、特点:每一条指令执
20、行完毕后都必须向控制时序部件发回一个回答信号,控制器收到回答信号后,才开始下一条指令的执行。3、优点:指令的运行效率高;缺点:控制线路比较复杂。4、异步工作方式一般采用两条定时控制线来实现。我们把这两条线称为“请求”线和“回答”线。当系统中两个部件A和B进行数据交换时,若A发出“请求”信号,则必须有B的“回答”信号进行应答,这次操作才是有效的,否则无效。,5.3.3 控制方式,三、同步,异步联合控制方式1、含义:同步控制和异步控制相结合的方式即联合控制方式,区别对待不同指令。2、一般的设计思想是,在功能部件内部采用同步式,而在功能部件之间采用异步式,并且在硬件实现允许的情况下,尽可能多地采用异
21、步控制。,5.3.3 控制方式,5.4 微程序控制器,微程序控制器同硬布线控制器相比较,具有规整性、灵活性、可维护性等一系列优点 它利用软件方法(微程序设计技术)来设计硬件 微程序控制的基本思想 就是把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里(控制存储器CM)。 当机器运行时,一条又一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,是相应部件执行所规定的操作。,1.微命令和微操作,处理器内部可以分为:控制部件和执行部件 控制部件控制器 执行部件运算器、存储器、外围设备 微命令:控制部件向执行部件发出的控制命令,它是构成控制序列的最小单位。 例如:打开或关闭某个控制门的
22、电位信号、某个寄存器的打入脉冲等。 微操作:执行部件接受微命令后所进行的操作。 微命令和微操作是一一对应的。 微命令是微操作的控制信号,微操作是微命令的操作过程。 微操作是执行部件中最基本的操作 状态测试:执行部件通过反馈线向控制部件反映操作情况,以便下达新的微命令。,相容性和互斥性,由于数据通路的结构关系,微操作可分为相容的和互斥的两种: 相容性的微操作,是指同时或同一个CPU周期内可以并行执行的微操作。 相斥性的微操作,是指不能同时或不能在同一个CPU周期内并行执行的微操作。,简单运算器数据通路图,2、微指令和微程序,微指令:实现一定操作功能的一组微命令。 微程序:实现一条机器指令功能的微
23、指令序列。 一段微程序对应一条机器指令。 微地址 :存放微指令的控制存储器的单元地址。,指令系统所有指令,指令微程序 微程序若干微指令,微指令一组微命令 微命令微操作,机器指令与微指令,微指令基本格式,一条微指令通常至少包含两大部分信息: 操作控制字段,又称微操作码字段,用以产生某一步操作所需的各个微操作控制信号。 某位为1,表明发微指令。 微指令发出的控制信号都是节拍电位信号,持续时间为一个CPU周期。 顺序控制字段,又称微地址码字段,用以控制产生下一条要执行的微指令地址。,简单运算器数据通路图,(R1)+(R2)R3 4 -7-10-3 或 9-6-10-3,时间控制,同节拍脉冲T4相与而
24、得到LDR1一LDR3信号。 在这种情况下,控制器最后发给运算器的12个控制信号中, 3个是节拍脉冲信号(LDR1、LDR2、LDR3),其他9个都是节拍电位信号,从而保证运算器在前 600ns时间内进行运算。 600ns后运算完毕,公共总线上输出稳定的运算结果,由 LDR1(或LDR2,LDR3)信号打入到相应的寄存器,其时间关系如图524左面所示。,3、微程序控制器原理框图,由控制存储器、微指令寄存器和地址转移逻辑三部分构成。,微程序控制器,1、控制存储器(CM) 这是微程序控制器的核心部件,用来存放全部指令系统的所有微程序。 读出一条微指令并执行微指令的时间总和称为一个微指令周期。 在串
25、行方式的微程序控制器中 微指令周期就是只读存储器的工作周期 . 控制存储器的字长就是微指令字的长度, 其存储容量视机器指令系统而定,即取决于微程序的数量。,微程序控制器,2、微指令寄存器(IR) 用来存放从CM取出的正在执行的微指令,它的位数同微指令字长相等。 微命令字段 (微操作控制字段) :保存一条微指令的操作控制字段和判别测试字段的信息。 微地址字段 (顺序控制字段) :决定将要访问的下一条微指令的地址。,3、微程序控制器原理框图,由控制存储器、微指令寄存器和地址转移逻辑三部分构成。,微程序控制器,3、地址转移逻辑 微地址:在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址
26、。 微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。 微程序出现分支,意味着微程序出现条件转移。 在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器的内容,并按改好的内容去读下一条微指令。 地址转移逻辑就承担自动完成修改微地址的任务 。,4、微程序举例,“十进制加法”指令,十进制加法,指令的功能是用BCD码来完成十进制数的加法运算。 和9时,产生进位,加6修正 和9时,无进位,不需修正 我们假定: 数a和 b已存放在R1和R2两寄存器中 数6存放在R3寄存器中 算法要求先进行a+b+6运算,然后判断结果有无进位: 当进位标志 Cy=1时,不减
27、6; 当Cy=0时,减去6,从而可以获得正确的运算结果。,十进制加法微程序步骤,十进制加法微程序流程图只有四条微指令组成,每一条微指令用一个长方框表示 。 取指令 求和: R1+R2R2 先统一+6修正,再判。 +6修正: R2+R3R2 若“和”无进位,说明 -6恢复: R2-R3R2 结果不需修正,则-6恢复。 测试字段 P=00: 顺序控制字段内容uAR为后继微指令地址; P=01: 按Cy修改后继微指令地址。 P=10: 后继微指令地址即机器指令的操作码。 按指令操作码,微指令控制过程,第一条微指令是“取措”微指令,它是一条专门用来取机器指令的微指令,任务有三个: 一是从内存取出一条机
28、器指令,并将指令放到指令寄存器。在我们的例子中,取出的是“十进制加法”指令; 二是对程序计数器加 1,做好取下一条指令的准备; 三是对机器指令的操作码用P1进行判别测试,然后修改微地址寄存器内容,给出了一条微指令的地址。,微指令控制过程,第二条微指令完成 ab运算。 第三条微指令完成ab6运算,同时又进行判别测试。 P2用来测试进位标志Cy根据测试结果,微程序或者转向公操作,或者转向第四条微指令。 当微程序转向公操作时,如果没有外围设备请求服务,那么又转向取下一条机器指令。 与此相对应,第三条微指令和第四条微指令的下一个微地址就又指向第一条微指令,即“取指”微指令。,3、微程序控制器原理框图,
29、由控制存储器、微指令寄存器和地址转移逻辑三部分构成。,微指令基本格式,微指令控制过程(取指令),(MR16) LDAR; (PC) AR (MR13) DR; 读内存 (MR14) LDDR; 指令DR (MR15) LDIR ; (DR) IR (MR17) PC+1; (PC)+1 PC (MR18) P1; 允许OP作为下地址,1010,第一条微指令的二进制编码是,(0000),微指令控制过程(执行指令),发出微命令:R1X,R2Y, + ,LDR2 完成(R1)+(R2)R2操作。 微指令顺序地址字段为1001,P字段为00,第二条微指令的二进制编码是,(1010),微指令控制过程(执
30、行指令),发出微命令:R2X,R3Y, + ,LDR2 完成(R2)+(R3)R2操作。 指令顺序地址字段为0000,P字段为01,测试Cy值,按Cy修改下条微指令地址。 Cy=0:0001为下一条微指令 Cy=1:0000 为下一条微指令,本条指令执行完,取下一条机器指令。,第三条微指令的二进制编码是,(1001),微指令控制过程(执行指令),发出微命令:R2X,R3Y,LDR2 完成(R2) (R3)R2操作。 微指令顺序地址字段为0000,P字段为00,本条指令执行完,取下一条机器指令。,第四条微指令的二进制编码是,(0001),5.CPU周期和微指令周期的关系,微指令周期:等于读出微指
31、令的时间加上执行该条指令的时间。 为保证同步,可将微指令周期设计的恰好和CPU周期相等。,P,微程序时序安排,微指令周期,微指令 打入 IR,二级时序:,控制数 据通路 操作,结果打 入目的 地,,读取后续 微指令,后续微 地址打 入 AR,时钟周期,5.4.2 微程序设计技术,设计微指令应当追求的目标 有利于缩短微指令的长度 有利于缩小CM的容量 有利于提高微程序的执行速度 有利于对微指令的修改 有利于提高微程序设计的灵活性,1、微命令编码,编码有三种方法:直接表示法、编码表示法、混合表示法 (1)直接表示法:操作控制字段中的各位分别可以直接控制计算机,不需要进行译码。 优点:简单直观 缺点
32、:指令字较长,控制存储器容量较大。,(2)编码表示法:将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法。 优点:可以避免互斥,使指令字大大缩短。 缺点:增加了译码电路,使微程序的执行速度减慢。,(3)混合表示法:将前两种结合在一起,兼顾两者特点。,2、微地址的形成方法,微指令执行的顺序控制问题,即如何确定下一条微指令的地址。方法由两种: (1)计数器方式-这种方式同用程序计数器来产生机器指令地址的方法相类似。 优点:微指令的顺序控制字段较短,微地址产生机构简单; 缺点:多路并行转移功能较弱,速度较慢,灵活性较差。 (2)多路转移方式- 一条微指令具有多个转移分支的能
33、力称为多路转移,也称断定方式。 顺序执行时- 后继微地址直接由微指令的顺序控制字段给出; 转移分支时- 按微指令判别字段Pi和“状态条件”来形成后继微地址。 优点:能以较短的顺序控制字段,实现多路并行转移,灵活性好,速度较快。 缺点:转移地址逻辑较为复杂。,【例2】微地址寄存器有6位(A5-A0),当需要修改其内容时,可通过某一位触发器的强置端S将其置“1”。现有三种情况: (1)执行“取指”微指令后,微程序按IR的OP字段(IR3-IR0)进行16路分支; (2)执行条件转移指令微程序时,按进位标志C的状态进行2路分支; (3)执行控制台指令微程序时,按IR4,IR5的状态进行4路分支。 请
34、按多路转移方法设计微地址转移逻辑。,解:按所给设计条件,微程序有三种判别测试,分别为P1,P2,P3。 由于修改A5-A0内容具有很大灵活性,现分配如下: (1)用P1和IR3-IR0修改A3-A0; (2)用P2和C修改A0; (3)用P3和IR5,IR4修改A5,A4。 另外还要考虑时间因素T4(假设CPU周期最后一个节拍脉冲),故转移逻辑表达式如下:A5=P3IR5T4 A4=P3IR4T4 A3=P1IR3T4 A2=P1IR2T4 A1=P1IR1T4 A0=P1IR0T4+P2CT4 由于从触发器强置端修改,故前5个表达式可用“与非”门实现,最后一个用“与或非”门实现。,3.微指令
35、格式,分为两类:水平型微指令和垂直型微指令 ( 1)水平型微指令- 一次能定义并执行多个并行操作微命令的微指令。,水平型微指令又分为三种: 第一种是全水平型(不译法)微指令, 第二种是字段译码法水平型微指令, 第三种是直接和译码相混合的水平型微指令。,3.微指令格式,(2)垂直型微指令- 类似与机器指令的结构,由微操作码决定该条微指令的功能,通常一条微指令中只有1-2个微操作命令,功能简单。 垂直型微指令字短,但解释执行一条机器指令所需的微指令条数多。 下面举4条垂直型微指令的微指令格式加以说明。设微指令字长为16位,微操作码3位。 寄存器-寄存器传送型微指令,其功能是把源寄存器数据送目标寄存
36、器。1315位为微操作码(下同),源寄存器和目标寄存器编址各5位,可指定31个寄存器。,运算控制型微指令,其功能是选择ALU的左、右两输入源信息,按ALU字段所指定的运算功能(8种操作)进行处理,并将结果送入暂存器中。左、右输入源编址可指定31种信息源之一。,其功能是将主存中一个单元的信息送入寄存器或者将寄存器的数据送往主存。存储器编址是指按规定的寻址方式进行编址。第1,2位指定读操作或写操作(取其之一)。,访问主存微指令,其功能是:根据测试对象的状态决定是转移到D所指定的微地址单元,还是顺序执行下一条微指令。 9位D字段不足以表示一个完整的微地址,但可以用来替代现行PC的低位地址。 测试条件
37、字段有4位,可规定16种测试条件。,条件转移微指令,两种微指令方式的比较:,4.动态微程序设计,微程序设计技术有静态微程序设计和动态微程序设计之分。 1.静态微程序设计 一台计算机的机器指令只有一组微程序。 微程序设计好之后,一般无须改变而且也不好改变。 2.动态微程序设计 当采用EPROM作为控制存储器时,还可以通过改变微指令和微程序来改变机器的指令系统。 仿真其他机器指令系统:一台机器上,根据需要加以改变,实现不同类型的指令系统。,5.5 硬布线控制器,硬布线控制器把控制部件看作为产生专门固定时序控制信号的逻辑电路(以使用最少元件和取得最高操作速度为设计目标) 硬布线控制 优点:速度较快;
38、 缺点:不容易修改添加新功能 微程序控制 优点:具有规整性、灵活性、可维护性等; 缺点:采用存储程序原理,需要执行多条微指令,速度较慢,硬连接控制器结构方块图,图5.29 硬布线控制器的指令周期流程图,5.6传统CPU,5.6.1 Intel 8088CPU Intel 8088是一种通用的准16位微处理器,其内部结构为16位,与外部交换的数据为8位。它可以处理16位数据(具有16位运算指令,包括乘除法指令),也可处理8位数据。它有20条地址线,直接寻址能力达到1M字节。 CPU从功能上来说分成总线接口单元BIU和执行单元EU两大部分。 BIU负责与存储器和外围设备接口,即8088 CPU与存
39、储器和外围设备之间的信息传送,都是由BIU进行的。 EU部分负责指令的执行。取指部分与执行指令部分是独立并行工作的,在一条指令的执行过程中,可取出下一条(或多条)指令,在指令流队列寄存器中排队。在一条指令执行完以后就可以立即执行下一条指令,减少了CPU为取指令而等待的时间,提高了系统的运行速度。,传统CPU举例,5.6.2 IBM 370CPU 32位CPU ALU部件按功能不同分为如下三个子部件: (1)定点运算,包括整数计算和有效地址的计算; (2)浮点运算; (3)可变长运算,包括十进制算术运算和字符串操作。 为了存放地址和数据,使用了两组独立的可编址寄存器,16个通用寄存器用来存放操作
40、数和运算结果,且可用作变址寄存器。4个浮点寄存器用于浮点运算。数据寄存器DR、地址寄存器AR、指令寄存器IR是标准化的。,传统CPU举例,Intel 80486CPU 32位CPU 通过采用流水技术,以及微程序控制和硬布线逻辑控制相结合的方式,进一步缩短可变长指令的译码时间,达到基本指令可以在一个时钟周期内完成。 486芯片内部包含一个8KB的数据和指令混合性cache,为频繁访问的指令和数据提供快速的内部存储,从而使系统总线有更多的时间用于其他控制。 486芯片内部包含了增强性80387协处理器,称为浮点运算部件(FPU)。由于FPU功能扩充,且放在CPU内部,使引线缩短,故速度比80387
41、提高了35倍。 486 CPU的内部数据总线宽度为64位,这也是它缩短指令周期的一个原因。而外部数据总线的宽度也可以自动转换。 地址信号线扩充到32位,可以处理4GB(232字节)的物理存储空间。如果利用虚拟存储器,其存储空间达64TB(246字节)。,5.7 流水CPU,洗衣房的流水作业 三个阶段: 1. 水洗(30) 2. 烘干(40) 3. 熨烫(20),演示,5.7.1 并行处理技术,并行性(Parrelism)概念 同时性-两个以上事件在同一时刻发生。如多机系统中,同一时刻多个进程在运行。 并发性-两个以上事件在同一间隔内发生。如并发程序,某一时刻CPU中只有一个进程在运行,而在一个
42、时间段内,多个进程同时运行。 (广义)含义 只要在同一时刻(同时性)或在同一时间间隔内(并发性)完成两种或两种以上性质相同或不同的工作,他们在时间上相互重叠,都体现了并行性。,5.7.1 并行处理技术,三种形式 时间并行(时间重叠): 让多个处理过程在时间上相互错开,轮流使用同一套硬件设备的各个部件,以加快硬件周转而赢得速度。 实现方式:流水处理部件 空间并行(资源重复):以数量取胜 它能真正的体现同时性 LSI和VLSI为其提供了技术保证 体现在多处理系统和多计算机系统 时间+空间并行 Pentium中采用了超标量流水线技术,5.7.2 流水CPU的结构,1.流水计算机的系统组成 存储器体系
43、:主存采用多体交叉存储器+Cache 流水方式CPU:指令部件、指令队列、执行部件 指令部件:指令流水线 取指令、指令译码、计算操作数地址、取操作数等 指令队列:存放指令和操作数流水操作,先进先出(FIFO) 执行部件:多个运算部件构成流水线 。,流水CPU,并行操作 执行第I条指令 指令队列中存放I+1,I+2,I+k条指令; 取I+K+1条指令 速度匹配问题的解决 存储器存取时间与其他段的配合-采用多体交叉存储器; 执行段的速度配合- 定点运算指令和浮点运算指令并行执行; 浮点加法和浮点乘除并行执行; 浮点运算部件以流水线方式工作。,2.流水CPU的时空图,流水线技术:把一个重复的过程分解
44、为若干个子过程,每个子程序可以与其他子过程同时进行。描述流水线的工作,最常用的方法是时间-空间图(时空图) 横坐标:表示时间,即各个任务在流水线中所经过的时间 纵坐标:表示空间,即流水线的各个子过程,也称为级、段、流水线深度(Stage),5.7.2 流水CPU的结构,指令流水线 IF(Instruction Fetch) 取指令阶段 ID(Instruction Decode) 指令译码阶段 EX(Execute) 执行运算阶段 WB(Write Back) 写回结果阶段,非流水计算机的时空图,每4个机器周期才有一个输出结果,标量流水计算机的时空图,每个机器周期可以输出一个结果,演示,超标量
45、流水线时空图,3.流水线(Pipelining)的分类,按级别分为 指令流水线 指指令步骤的并行。将指令流的处理过程划分为取指、译码、取操作数、执行、写回等几个并行处理的过程段。 目前,几乎所有的高性能计算机都采用了指令流水线。 算术流水线 指运算操作步骤的并行。如流水加法器、流水乘法器、流水除法器等。 现代计算机中己广泛采用了流水的算术运算器。 处理机流水线(宏流水线) 指程序步骤的并行。由一串级联的处理机构成流水线的各个过程段,每台处理机负责某一特定的任务,5.7.3 流水线中的主要问题,流水线中存在一些相关(冲突、冒险Hazard,相关、依赖Dependence,竞争Competitio
46、n)的情况,它使得下一条指令无法在设计的时钟周期内执行。这些相关将降低流水线性能 主要有三种类型的相关(冲突) 资源相关(资源冲突):当指令重叠执行过程中,硬件资源满足不了指令重叠执行的要求。 数据相关(数据冲突) :在同时执行的多条指令中,一条指令依赖前一条指令的执行结果(数据)却无法得到。 控制相关(控制冲突):流水线遇到分支指令或其他改变PC值的指令。,1. 资源相关,资源相关是指多条指令进入流水线后,在同一机器时钟周期内争用同一个功能部件所发生的冲突。 例:假定一条指令流水线由五段组成,且仅有取指令(IF)过程和访存取数(MEM)过程需要访问存储器。 解决方法: 延迟等待,使指令推迟执
47、行; 设置重复资源,将指令和数据分别存放在两个存储器中,2. 数据相关,在一个程序中,如果必须等前一条指令执行完,才能执行后一条指令,这两条指令即为数据相关。 当多条指令重叠处理时,可能发生冲突。解决方法: 采用定向传送技术; 编译优化。,2. 数据相关,ADD R1, R2, R3 ; R2R3R1 SUB R4, R1, R5 ; R1R5R4 AND R6, R1, R7 ; R1R7R0,指令发生数据相关冲突,3. 控制相关,控制相关冲突由转移指令(分支指令)引起 执行转移指令时,依据转移条件的产生结果可能为顺序取下条指令,也可能转移到新的目标地址取指令 转移指令主要有: 无条件转移指
48、令:跳转、过程调用和返回 条件分支指令 解决办法: 延迟转移法,由编译程序重排指令序列“先执行再转移” 转移预测法:由硬件方法来实现,依据指令过去的行为来预测将来的行为,通常设置转移和顺序两个指令预取队列。,【例4】流水线中有三类数据相关冲突:写后读(RAW)相关;读后写(WAR)相关;写后写(WAW)相关 I1: ADD R1, R2, R3 ;R2R3R1 I2: SUB R4, R1, R5 ;R1R5R4 I3: STA M(x), R3 ;R3M(x)I4: ADD R3, R4, R5 ;R4R5R3 I5: MUL R3, R1, R2 ;R1R2R3 I6: ADD R3, R4, R5 ;R4R5R3,RAW,WAR,WAW,解: 第(1)组指令中,I1指令运算结果应先写入R1,然后在I2指令中读出R1内容。由于I2指令进入流水线,变成I2指令在I1指令写入R1前就读出R1内容,发生RAW相关。第(2)组指令中,I3指令应先读出R3内容并存入存储单元M(x),然后在I4指令中将运算结果写入R3。但由于I4指令进入流水线,变成I4指令在I3指令读出R3内容前就写入R3,发生WAR相关。第(3)组指令中,如果I6指令的加法运算完成时间早于I5指令的乘法运算时间,变成指令I6在指令I5写入R3前就写入R3,导致R3的内容错误,发生WAW相关。,