500 likes | 630 Views
第五章 中央处理单元. 运算控制器的组成一般有两种方式,其中之一为 微程序控制方式 ;另一种是 硬布线控制方式 ,由于这些信号是通过逻辑电路直接连线而产生的,所以又称为组合逻辑控制方式。至于控制器的其他组成部分诸如时钟、启停电路、程序汁数器指令寄存器以及电路配合问题等等,则不因控制方式而异。但要注意,不同计算机之间控制器的具体组成及控制信号的时序等差别是很大的,,然而它们的基本原理是相同的。.
E N D
运算控制器的组成一般有两种方式,其中之一为微程序控制方式;另一种是硬布线控制方式,由于这些信号是通过逻辑电路直接连线而产生的,所以又称为组合逻辑控制方式。至于控制器的其他组成部分诸如时钟、启停电路、程序汁数器指令寄存器以及电路配合问题等等,则不因控制方式而异。但要注意,不同计算机之间控制器的具体组成及控制信号的时序等差别是很大的,,然而它们的基本原理是相同的。运算控制器的组成一般有两种方式,其中之一为微程序控制方式;另一种是硬布线控制方式,由于这些信号是通过逻辑电路直接连线而产生的,所以又称为组合逻辑控制方式。至于控制器的其他组成部分诸如时钟、启停电路、程序汁数器指令寄存器以及电路配合问题等等,则不因控制方式而异。但要注意,不同计算机之间控制器的具体组成及控制信号的时序等差别是很大的,,然而它们的基本原理是相同的。
由于人们追求计算机运算速度产生了流水线控制、并行处理等方法,使得控制器变得更为复杂。在这里还是从控制器的基本功能出发来讨论控制器的组成,重点放在硬布线控制与微程序控制的差别上,相同部分不再重复。流水线技术现已广泛应用于各种规模的计算机中。由于人们追求计算机运算速度产生了流水线控制、并行处理等方法,使得控制器变得更为复杂。在这里还是从控制器的基本功能出发来讨论控制器的组成,重点放在硬布线控制与微程序控制的差别上,相同部分不再重复。流水线技术现已广泛应用于各种规模的计算机中。
cy1 cy2 cy3 cy4 译码器 cyA cyB 计数器 5.5.1 时序与节拍 假设用cy1,cy2,cy3,cy4表示一条指令的4个机器周期。 标识指令机器周期的方法:计数器译码器或4位触发器。
设A指令需要4个机器周期,则计数器的变化规律是:设A指令需要4个机器周期,则计数器的变化规律是: 00 →01 →10 →11。 设B指令需要3个机器周期,则计数器的变化规律是: 00 →10 →11。
计数器状态变化 A指令 B指令 , , , , cyA cyB cyA cyB cyA cyB cyA cyB , cyA = cyA cyB+ cyA cyB A指令 , cyB = cyA cyB+ cyA cyB= cyB , cyA = cyA cyB+ cyA cyB= cyB B指令 , cyB = cyA cyB 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 0 0
指令寄存器IR 操作码 地址码 译码器 0 1 … 127 cy1 组合逻辑电路 cy2 cy3 cy4 … 操作控制信号 5.5.2 操作控制信号的产生 1 操作码译码器
PC→AB=cy1 ADS=cy1·T1 M/IO=ADD.cy1 W/R=ADD.cy1 M/IO=cy1 W/R=cy1 DB→IR=cy1 PC+1=cy1 2 操作控制信号的产生 ADD加法指令: 指令的执行需要4个机器周期:cy1、cy2、cy3、cy4 取指周期中的微命令用逻辑式表示: PC→AB=ADD.cy1 ADS=ADD.cy1·T1 DB→IR=ADD.cy1 PC+1=ADD.cy1
ADD cy2 rs1→GR … (rs1)→ ALU SUB … cy2 指令 计算操作数地址周期中的微命令用逻辑式表示: rs1→GR=ADD.cy2 (rs1)→ ALU=ADD.cy2 disp→ALU=ADD.cy2 … ALU→ AR=ADD.cy2
ADD=OP0 · OP1 · OP2 · OP3 · OP4 · OP5 · OP6 (1) 取指周期所产生的信号,对所有指令都是相同的。 (2) 同一个控制信号在若干条指令的某些周期内都需要, 为了达到简化逻辑的需要,将它们组合在一起。 “+”=ADD.(cy2+ cy4)+SUB.cy2+BRAN. Cy2+··· =ADD.cy2+ ADD. cy4+SUB.cy2+BRAN. Cy2+··· 0001100是“+”的操作码 (3) 同种类型的指令所需的控制信号大部分是相同的,仅有少量区别。 例如:“+” 与 “-”指令,除了给ALU的运算符不一样外,其余的控制信号全部相同。
=OP0 · OP1 . OP2 Cy2 (4) 对于同一类型的指令,可用OP码中的几位来表示,以简化逻辑。 例如:在7位OP中用OP0 OP1 OP2 =001表示算术逻辑运算类指令,用OP3OP4OP5OP6 表示16种不同的算术逻辑运算指令。 A=ADD.cy2+SUB.cy2+SHIFT. Cy2+··· =(ADD+ SUB+ SHIFT+··· ).Cy2 原来的16项化成1项,1个与门电路就可以实现。 举例:SUN work station CPU instruction set’s operation code。
指令寄存器IR cy1 cy2 cy3 cy4 地址码 操作码 程序计数器PC +1 reset … 机器周期状态 转移地址 T1 CP T2 译码器 节拍及工作 时钟脉冲 中断控制逻辑 … … CLK 硬布线逻辑 起停电路 中断信号 … CLK2 脉冲源 操作控制信号 1、程序计数器和中断控制逻辑
指令寄存器IR cy1 cy2 cy3 cy4 地址码 操作码 程序计数器PC +1 reset … 机器周期状态 转移地址 T1 CP T2 译码器 节拍及工作 时钟脉冲 中断控制逻辑 … … CLK 硬布线逻辑 起停电路 中断信号 … CLK2 脉冲源 操作控制信号 2、译码器
3、硬布线逻辑的实现途径 基本门电路、PAL、GAL等电路。在Very Large Scale Integrated CPU中,逻辑是固定的,无法修改。
5.5.4 硬布线控制逻辑设计中的若干问题 1、指令操作码的代码分配 减少控制电路的复杂性、延迟时间为原则。 2、确定机器周期、节拍与主频 机器周期根据存储器的速度及执行周期的基本时确定的。然后确定机器的主频、机器周期的节拍及基准时钟信号。
3、根据指令的功能确定其所需的机器周期数及每一周期内要完成的操作3、根据指令的功能确定其所需的机器周期数及每一周期内要完成的操作 延长指令的执行周期或循环基本的执行周期。 4、综合所有指令的每一个操作命令 根据优化的逻辑表达式简化硬件电路。
5.5.5 硬布线控制与微程序控制的比较 硬布线控制器与微程序控制器,除了操作控制信号的形成方法和原理有差别外。其余的组成部分没有本质上的差别。但是各个控制器之间具体实现的方法与手段差别很大,这不仅是由于采用硬布线控制或微程序控制引起的,而且因为实现一条指令功能的办法不是唯一的,并且还不能证明哪种办法最佳,因此就有多种逻辑设计方案出现。硬布线控制与微程序控制之间的最显著差异可归结为两点:
1、实现方法上 • 微程序控制器的控制功能是在存放微程序的控制存储器和微指令寄存器直接控制下实现的,而硬布线控制则由逻辑门组合实现。控制存储器的内容反映了每条指令控制信号的差别,因此无论是增加或修改指令,只要增加或修改控存内容即可。硬布线控制器的控制信号先用逻辑式列出,经化简后用电路实现,因而显得零乱且复杂,当需修改指令或增加指令时是很麻烦的。因此微程序控制得到广泛应用,尤其是指令系统复杂的计算机一般都采用微程序来实现控制功能。
2、在性能上 微程序控制的速度比硬布线控制的速度低,而硬布线逻辑主要取决于电路延迟,因而在超高速机器中,对影响速度的关键部分例如CPU,往往采用硬布线逻辑。近年来在一些新型计算机结构中,例如在RISC中,一般选用硬布线逻辑。
由于不同指令所对应的微操作数及其繁简程度很不一样,因此每条指令和每个微操作所需的执行时间也不相同,如何形成控制不同微操作序列的时序控制信号就有多种方法,称为控制器的控制方式常用的有同步控制方式、异步控制方式和联合控制方式。 1. 同步控制方式 已定的指令在执行时所需的机器周期和时钟周期都是固定不变的,称为同步控制方式。
在程序运行时任何指令的执行或指令中每个微操作的执行都受事先确定的时序信号所控制,每个时序信号的结束就意味着一个微操作或一条指令已经完成,随即开始执行后续的微操作或自动转向下条指令的运行。这里所讲的微操作不仅适合于微程序控制器,同样适合于硬布线逻辑控制器。
2. 异步控制方式 每条指令,每个微操作需要多少时间就占用多少时间,其特点:是当控制器发出进行某一微操作控制信号后,等待执行部件完成该操作后发回的‘回答’信号或结束信号,再开始新的微操作,称为异步控制方式。用这种方式所形成的微操作序列没有固定的周期节拍和严格的时钟同步。
3. 联合控制方式 同步控制和异步控制相结合的方式。对不同指令的各个微操作实行大部分统一,小部分区别对待的方式。即大部分微操作安排在一个固定机器周期中,并在同步时序信号控制下进行;而对那些时间难以确定的微操作则以执行部件送回的‘回答’信号作为本次做操作的结束。
4. 人工控制 为了调试机器和软件开发的需要,在计算机面板或内部往往设置一些开关或按键以进行人工控制。最常见的有: ①reset按键 ②连续执行或单条指令执行的转换开关 ③符合停机开关等。
1、流水线基本工作原理 依序逐条执行程序指令,每条指令的各个操作也按顺序串行执行。例如,加法指令依序分成: 取指令/计算操作数地址/取操作数/运算和保存结果4个步骤。执行过程如下: 取指1 计算地址1 取数1 运算存数1 取指2 计算地址2 取数2 运算存数2 • 特点:控制简单 ,速度低,机器各部件利用率低。 例如,在取指令时译码器和运算器等都空闲,而在存结果时其它部件也在空闲。
? • 若能把程序中的多条指令在时间上重叠起来,执行会否显著提高机器速度呢?
… I1 E1 I2 E2 T 2T I1 E1 I1 E1 I1 E1 … 两条指令重叠执行 如果将CPU分成指令部件I和执行部件E,则指令顺序执行时,其过程如下: 假设每个部件完成操作所需的时间为T,则每条指令的执行时间为2T。 结果:处理速度提高了1倍。
I1 取指 取指 取指 取指 计算地址 计算地址 计算地址 计算地址 取操作数 取操作数 取操作数 取操作数 计算结果 计算结果 计算结果 计算结果 I2 I3 I4 4条指令重叠执行 处理结果:处理速度平均提高了4倍。
运算操作流水线: 对阶功能部件 锁存器 尾数加部件 锁存器 规格化部件 锁存器 操作数输入 结果输出 第一段 第二段 第一段
2、流水线中的一些问题解决 流水线把取指与执行分开,使取指与执行同时进行,减 少了取指等待时间,大大提高了CPU的利用率。同时降低 了对与之匹配的存储器的存取速度要求。但流水线处理 方式也存在一些困难:
取指 计算地址 取操作数 计算结果 取指 计算地址 取操作数 计算结果 取指 计算地址 取操作数 计算结果 (1)数据相关:如果第二条指令的操作数是前一条指令保存的结果,那么就出现数据相关。两级流水线不存在数据相关现象。
(2)条件转移分支指令的处理:猜测法 (3)流水线机器对中断或故障的处理响应: 不精确断点法: 处理完流水线中的指令再响应 精确断点法: 立即响应,精确返回
5.8.1 8086微处理器 • Intel公司1978年研制成功 • 时钟频率:4.7MHz-10MHz • 2.9万个晶体管、91种指令 • 由EU执行单元和BIU总线接口单元组成 • 20位地址总线,寻址能力 220 = 1048576 = 1( MB ) • 16位数据总线 • 4个16位通用寄存器:AX,BX,CX,DX, • 5个16位地址指针寄存器:IP,BP,SP,SI,DI • 4个16位段界寄存器:CS,DS,SS,ES
20位地址总线可管理实际物理内存1MB,但8086的寄存器都是16位的,因而只能计算16位的逻辑地址。这在计算机中采用硬件方法自动处理。方法如下图所示: 取指令时用CS移位相加; 取数据时用DS或ES移位相加; 堆栈操作时SS与SP相加。 堆栈是一个特殊存储区域, 栈中每元素一字节,先存高址, 其中数据先进后出或后进先出, 数据进栈时SP-2,出栈时SP+2, 栈段最长64KB。 寻址方法与堆栈的概念 逻辑地址 15 0 指针寄存器 15 0 段寄存器 0000 19 0 物理地址 物理地址形成过程
2. 8086/8088的 总线周期 • CPU完成一次对存储器或I/O端口访问所需要的时间 • 8086/8088一个基本总线周期由4个时钟周期组成,习惯上称4个T状态.分别为T1,T2,T3,T4状态. • T1状态,CPU往多路复用总线上发地址信息 • T2状态,CPU从总线上撤销地址,总线的高4位输出本总线周期的状态信息,低16位高阻态.
T3状态,多路总线的高4位继续提供状态信息,低16位传输数据.T3状态,多路总线的高4位继续提供状态信息,低16位传输数据. • TW状态,等待状态,总线上信息与T3状态信息相同.此状态为配合CPU和外设数据传输,外设通过READY线发“数据未准备好”,CPU则在T3状态后插入TW状态,外设通过READY线发“准备好”,CPU则脱离TW状态,进入T4状态. • T4状态,总线周期结束.
5.8.2 80286微处理器 • Intel公司1982年推出 • 13.4万个晶体管,时钟频率6MHz~20MHz • 向下兼容8086,具有8086的基本结构,但增强了存储管理和保护虚地址结构,可支持多用户系统 • 具有8086的全部指令,并新增加25种指令 • 16位数据线,24根地址线,寻址能力达到16MB • 有实地址和16MB保护虚地址两种工作模式,通过指 令实现转换。实地址模式下完全兼容 8086 CPU并能 运行8086软件,兼容目标代码;保护虚地址模式下, 可管理内存达16MB,并且对使用者来说存储器的分 配方式与寻址方式没有改变。
5.8.3 80386微处理器 Intel公司1985年推出32位寄存器,32位数据总线,32位地址总线,27.5万晶体管,主频16MHz ― 66MHZ,向前兼容8086和80286CPU
5.8.4 80486微处理器 Intel公司1989年推出32位寄存器,32位数据总线,32位地址总线120万晶体管,主频 25MHz ― 100MHZ内含8KB高速缓冲存储器和80387协处理器486DX具有倍速功能,内部比外部快几倍,向前兼容8086、80286和80386CPU
1.Pentium体系结构特点 • 内含RISC型超标量U、V两条流水线整数处理单元 • 拥有超级流水浮点处理单元(FPU) • 内部Cache(L1)增加到8K+8K(80486仅有8K) • 外部数据总线宽度增加到64位,地址总线36条,物理空间使用32条。
增加智能动态分支预测电路,支持乱序执行功能,具有分支预测算法。增加智能动态分支预测电路,支持乱序执行功能,具有分支预测算法。 • 增加了MMX多媒体技术,解决视频、音频、图像和多媒体应用中的处理速度。 • 具有非固定长度的指令格式,9种寻址方式,191条指令。同时具有CISC和RISC两者的特性。
2、Pentium II 的基本特性 • PentiumⅡ在增加MMX指令的基础上L1 Cache增加了一倍(各为16KB)。CPU与L2 Cache 之间的通讯速率为时钟频率的一半。 • PⅡ具有从CPU到L2和主存双重独立总线体系结构、动态执行技术和MMX技术三大特征,主频达233/266/300MHz或更高。
PⅡ的L2在CPU外,与CPU一起安装在小电路板上,采用单边连接SEC(Single Edge Contact)盒式封装技术,用塑料及金属外壳保护,整个成为 Pentium Ⅱ。
3. Pentiu III处理器 1999年2月面世,CPU主频从400M到1.13GHz不等。其集成度最高为2800万个管子/片。内含有: • 32K一级Cache,512K速度为主频一半的二级Cache • 内置序列号作为微处理器的系统标识符 • 在保留MMX指令的基础上增加许多新的多媒体指令. • 采用数据流单指令多数据扩展技术(SSE:Streaming SIMD Extension) • 配合新指令增加了8个128位的单精度寄存器.
4. Pentium 4处理器 • 于2000年6月面世,主频为1.4GHz和1.5GHz,集成度高达4200万个管子/片 • 20级的超级流水线 • 高效的乱序执行功能 • 2倍速的ALU 整数运算单元以双倍主频的速度工作,新型片上跟踪缓存, 能存储x86指令解码后的微操作指令。 • SSE2指令扩展 能处理128位SIMD(单指令流多数据流)的整数和浮点双精度数 • 400MHz前端总线FSB 使用100MHz外频X4倍频方式实现CPU和内存的配合。