CPU结构和功能

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

指令流水线的周期时间τ,是在流水线中将一级指令推进一段所需的 时间,能表示成:
τ=max[τi]+d=τm+d i,1≤i≤k 其中: τm=最大段延迟(通过耗时最长段的延迟)
k=指令流水线段数 d=锁存延时(数据和信号送到下一段所需的锁存接收时间) 通常,延时d等于时钟脉冲的宽度并且τm>>d。 假设有n条指令在进行,无转移发生。执行所有n条指令所需的总时 间是:
含引用的方式读出。
11.2.2 Control and Status Registers
对于指令执行,有4种寄存器是至关重要的: PC IR 存储地址寄存器(MAR) 存储缓冲寄存器(MBR)
每次取指令之后,PC被CPU更改,PC总是指向将被执行的下一条指
令。取来的指令装入IR;操作码和操作数指定器被分析。与存储器的数
CP299+EP408图11.1是简化的CPU视图,CPU的主要部件是ALU和控 制器(Control Unit)及寄存器。
图11.2是更详细的CPU视图,指出了数据传送和逻辑控制的路径。 请注意:作为一个整体的计算机内部结构与CPU内部结构之间的相
似性;它们都有一个主要组件的小集合(计算机:CPU、I/O、存储 器;CPU:控制器、ALU、寄存器)通过数据路径连接在一起。
3.寄存器长度问题:①保持地址的寄存器明显地要求其长度足
以保持最长的地址;②数据寄存器应能保持大多数数据类型的值。
4.条件代码寄存器:用于保持条件代码,也称为标志(Flag);
CPU硬件设置这些条件位作为操作的结果,可被后面的条件转移指令所
测试。条件代码位构成控制寄存器的一部分,机器指令允许这些位以隐
11.4 INSTRUCTION PIPELINING
指令流水
11.4.1 Pipelining Strategy
流水线策

1.流水处理
装配线通过把制作过程在一条装配线上,产品能在各个阶段同时被
加工,这种过程被称为流水处理。CP308+EP420图11.10(a)流水线有
两个独立的阶段:取指令和执行指令。
一个存储器读,得到操作数地址并送入MBR。
结论:取指和间址周期是简单的,并且是可预期的。
3.中断周期(Interrupt
Cycle)也是简单的并可预期的,
CP307+EP419图11.9。PC的当前内容必须保存,PC的内容传送到
MBR。因此一个专门的存储器位置由控制器装入MAR。最后中断子程
序的地址装入PC。
CHAPTER 11 CPU STRUCTURE AND FUNCTION
(第11章CPU结构和功能)
处理器包括用户可见的寄存器和控制/状态寄存器: ①通用寄存 器;②专用寄存器;③控制和状态寄存器用于控制CPU的操 作: 1)程序计数器;2)程序状态字(PSW) 处理器采用指令流水方式来加速指令的执行。从本质由讲,流 水是指将指令周期分解成几个连续出现的阶段,如取指令、译 码指令、确定操作数地址、取操作数、执行指令和写结果操作 数。不同的指令能同时在各个段上工作。转移和指令间相关性 的出现,使流水线的设计和使用变得复杂。 本章以处理器组织开始:①分析构成处理器内部存储器的寄存器; ②讨论指令周期; ③完整地说明指令流水线;④考察Pentium Ⅱ和PowerPC组织 的某些情况。 本章为RISC和超标量结构的讨论打好基础。
1 第一OS支持。某些类型的控制信息是专门为OS使用的。
②第二是控制信息在寄存器和存储器之间的分配。要在成本和速度
之间进行权衡考虑。
11.2.3 Example Microprocessor Register
Orginizations
(处理器寄存器组织的例子)
查看MC68000和Intel
8086,分别见CP302+EP413图11.3(a)和
活性为代价,提供了编码的紧凑性。
8086亦包括一个指令指针和一组状态和控制标志。
目前为止,关于组织CPU寄存器的最好方式还没有一个普遍接受的
原则。
80386是32位微处理器,并设计成8086的扩展,向上兼容性。
80386将原先的寄存器组织嵌入到新组织中,因此386寄存器组织设
计中只有有限的灵活度。
11.3 Instruction Cycle 指令周期
11.1 Processor Organization 处理器组织
考虑CPU必须做的事情: 取指令(fetch instructions) 解释指令(interpret instructions) 取数据(fetch data) 处理数据(process data) 写数据(write data)
CPU需要:①暂存某些数据;②记住最近执行的指令的位置;③暂 时保存指令和数据。结论:CPU需源自文库一个小的内部存储器。
比,通常流水线段数在6到9之间。 3) 增加更多的段所带来的增益:
据交换使用MAR和MBR。
上述4个寄存器用于CPU和存储器之间的数据传送。ALU可对MBR和
用户可见寄存器直接存取。在ALU的边界上有另外的缓冲寄存器,作为
ALU的输入和输出,并可与MBR和用户可见寄存器交换数据。 所有CPU设计都包括程序状态字寄存器(Program Status Word,
PSW),PSW一般含有条件代码加上其他状态信息: Sign Zero Carry Equal Overflow Interrupt enable/disable(中断允许/禁止) Supervisor(监督):指出CPU是执行在监督模式中还是在用 户模式中,某些特权指令只能在监督模式中执行,某些存储 器区域也只能在监督模式中被访问。
出于对代码效率的考虑,将寄存器分成两个功能组件,在每个寄存
器指定器上节省了1位。这是在完全通用性和代码紧凑性之间一个合理
的折衷。
Intel 8086含有4个16位数据寄存器,可按字节来使用;还含有4个16
位的指针和变址寄存器。8086还有4个段寄存器,其中三个(CS、DS、
SS)以一种专门的隐含方式来使用。专有的隐含方式的使用,以减少灵
11.2 Register Organization 寄存器组织
CPU中的寄存器服务于两类功能: User-Visible Register:允许编程人员通过优化寄存器的使用 而减少对主存的访问。
Control And Status Register:控制CPU的操作并被OS程序用 来控制程序的执行。
时间单位。
2.几点说明
1)为简化流水线硬件设计,就在假定每条指令都要求这6个阶段的
基础上来建立时序。
2)假定所有阶段都能并行完成(即假定无存储器冲突:如FI、FO、 WO能同时出现)。
3.限制性能增强的几个因素
①流水阶段涉及到某种等待:各个阶段不可能完全相等。 ②条件转移指令:能使几条取指令变为无效。 ③中断:CP310+EP423图11.12说明了条件转移的影响,假定,指令3 是一个可能转到指令15的条件转移指令。图11.11表示转移未发生,我 们得到了全面的性能增强。图11.12表示的是转移发生的情况,直到时 间单位7结束时才被确定。在时间单位8,指令15进入流水线;时间单位 8~12期间没有指令完成。这是不能预言转移是否发生所招致的性能惩 罚。
11.2.1 User-Visible Registers
用户可见寄存器 用户可见寄存器可分类如下: 通用 数据 地址 条件代码 通用寄存器可被程序员指派各种用途,能为任何操作码容纳操作
数;能用作寻址功能。 数据寄存器仅可用于保持数据。
地址寄存器自身有某些通用性,或是专用于某种具体的寻址方式。 例如:
(b)。
MC68000有8个数据寄存器和9个地址寄存器,用于数据管理,并在
寻址方式中用作变址寄存器。寄存器宽度允许8位、16位或32位数据操
作;地址寄存器容纳着32位地址:其中两个寄存器器亦用作堆栈指针:
一个用于OS,一个用于用户。它们都编号为7,因为任何时刻只能一个
在使用。MC68000包括一个32位程序计数器和一个16位状态寄存器。
除了PSW之外,可能有一个指向存储器块(如进程控制块PCB)的
指针,此块含有另外的状态信息。在使用向量式中断的机器中,可能提
供有一个中断向量寄存器。若堆栈用于实现某些功能(如子程序调
用),则需要有一个系统堆栈指针。一个页表指针用于虚拟存储器系
统。在I/O操作控制方面也可能需要有寄存器。
设计控制和状态寄存器组织有几个关键因素需考虑:
表示其数据流动:
①PC被传送到MAR并放在地址总线上;②控制器请求一次存储器
读;其结果放到数据总线上并复制到MBR;③传送到IR;④在此期
间,PC增1。
2.控制器检查IR的内容:以确定是否有一个使用间接寻址的操
作数指定器。若是,一个间址周期被完成。如CP306+EP418图11.8所
示:
①MBR最右的N位是一个地址引用,被传送到MAR。②控制器请求
4.存在的一些问题
1 CO阶段可能取决于某个寄存器的内容(数据相关); ②寄存器和存储器冲突也可能出现(资源相关、控制相关)。
从前面的讨论,可能会认为流水线中阶段数目越多,执行速度越 快。IBM S/370设计者指出,有两个因素将使这种看似简单的高性能设 计受挫:
1)流水线的每一阶段,都会有某些开销涉及到数据在缓冲器间的传 送;涉及到完成各种准备和递交功能。这些开销能明显地使单一指令总 的执行时间变长。由于转移的大量使用,或是通过存储器访问的相关 性,使顺序指令逻辑相关,这个问题变得特别重要。
若取和执行这两个阶段是相等的时间,则指令周期时间将是原来的
一半。然而,实现这种执行速度的双倍是不太可能的,理由有二:
1) 执行时间(execution time)一般要长于取时间;
2) 条件转移指令使得待取一条指令的地址是未知的。
由第二种情况造成的时间损失可通过推测来减少。简单的处理规
则:当一条转移指令由取指阶段传送到执行阶段时,取指阶段取存储器
CP305+EP416图11.5。
参见CP305+EP417图11.6,它更准确地说明了指令周期的本性,一旦
取来一条操作数指定器必须被证实;然后取每个存储器中的操作数,该
过程可能要求间接寻址。
11.3.2 Data Flow
数据流
假定一个CPU,有MAR,MBR,PC,IR。
1.Fetch Cycle:一条指令由存储器读入,CP306+EP418图11.7
段指针 变址寄存器 堆栈指针
1.寄存器用途:重要的设计出发点是使用完全通用的寄存器,还
是指定各寄存器的用途。这影响指令集的设计。对指定寄存器的使用:
①节省了位数;②又限制了程序员的灵活性。趋势是朝着指定寄存器使
用的方向发展。
2.寄存器数量:影响指令集的设计;寄存器越多,要求的操作数
指定器的位数也越多。趋势:RISC中使用上百个寄存器。
τk=[k+(n-1)]τ 使用指令流水线相对于不使用指令流水线的加速比为:
Sk= 1)CP313+EP426图11.14(a)给出加速比随指令数的变化关系,当 n→∞时,Sk→k。 2)图11.14(b)给出加速比随指令流水线段数的变化关系。这种情 况下,加速比接近
无分支情况下能进入流水线的指令数;更多的流水线段数能带来 更大的潜在加速
中此转移指令之后的指令;若转移未发生,则没有时间损失。若转移发
生,则已取的指令要作废并取新的指令。
让我们考虑指令处理的如下分解: 取指令FI 译码指令DI 计算操作数CO 取操作数FO 执行指令EI 写操作数WO
假定各个阶段需要相等的时间。CP309+EP422图11.11表示了一个6段
流水线,它能将9条指令的执行时间由54个时间单位减少到14(6+8)个
CP302+EP413图11.4是CP44+EP63图3.9的复制品。一个指令周期包 括如下子周期:
取指(Fetch) 执行(Execute) 中断(Interrupt)
下面详细描述指令周期;首先引入一个子周期:间址周期
11.3.1 The Indiret Cycle 间址周期
可把间接地址的取看成是一个额外的指令子周期,结果示于
2)优化流水线的使用和处理存储器及寄存器相关性所需的控制逻辑 总量,会随着阶段数而剧烈增长。最终导致:阶段之间的门控逻辑比这 些阶段本身的受控逻辑更复杂。
流水线是一种增强性能的强有力技术,需精心设计,以合理的复杂 性达到最优的效果。
11.4.2 Pipelining Performance 流水线的性能
相关文档
最新文档