Skip to content

06 中央处理器 (7~8)

精简指令系统计算机

精简指令系统计算机(RISC)是 80 年代提出的一种新的设计思想,目前运行中的许多计算机都采用了 RISC 体系结构或采用了 RISC 设计思想。

RISC 的特点和优势

RISC 的主要特点

  1. 指令总数较少(一般不超过 100 条);
  2. 基本寻址方式种类少(一般限制在 2 ~ 3 种);
  3. 指令格式少(一般限制在 2 ~ 3 种),而且长度一致;
  4. 除取数和存数指令(Load/Store)外,大部分指令在单周期内完成;
  5. 只有取数和存数指令能够访问存储器,其余指令的操作只限于在寄存器之间进行;
  6. CPU 中通用寄存器的数目应相当多(32 个以上,有的可达上千个);
  7. 为提高指令执行速度,绝大多数采用硬联线控制实现,不用或少用微程序控制实现;
  8. 采用优化的编译技术,力求以简单的方式支持高级语言。

RISC 的优势

计算机执行一个程序所用的时间 t 可用下式表示:

式中:I 是高级语言编译后在机器上执行的机器指令总数,C 是执行每条机器指令所需的平均周期数,T 是每个周期的执行时间。

由于 RISC 机器的指令比较简单,故完成同样的任务要比 CISC 机器使用更多的指令,因此 RISC 的 I 要比 CISC 多 20%~ 40%。但是因为 RISC 的大多数指令只需单周期实现,所以 C 值要比 CISC 小得多。同时因为 RISC 结构简单,所以完成一个操作所经过的数据通路较短,使 T 值有所减少,根据上述统计折算下来,RISC 的处理速度要比相同规模的 CISC 提高 3 ~ 5 倍。

RISC 基本技术

RISC 寄存器管理技术

计算机中最慢的操作是访问存储器的操作,因此在 RISC 中,为了减少访存的频度,通常在 CPU 芯片上设置大量寄存器,把常用的数据保存在这些寄存器中。

在 RISCⅡ 中使用了重叠寄存器窗口技术,即设置一个数量比较大的寄存器堆,并把它划分成很多窗口。每个过程使用其中相邻的 3 个窗口和一个公共的窗口,而在这相邻的 3 个窗口中有一个窗口与前一个过程公用,还有一个窗口是与下一个过程公用的。

流水线技术

一条指令通常可分为取指、译码、执行、写回等多个阶段,要想在一个周期内串行完成这些操作是不可能的,因此,采用流水线技术势在必行。

当出现数据相关和程序转移情况时,流水线结构就可能发生断流的问题,这将会影响流水线的效率。

延时转移技术

在流水线中,取下一条指令是同上一条指令的执行并行进行的,当遇到转移指令时,流水线就可能断流。RISC 机器中,当遇到转移指令时,可以采用延迟转移方法或优化延迟转移方法。在采取延迟转移方法时,编译程序自动在转移指令之后,插入一条(或几条,根据流水线情况而定)空指令,以延迟后继指令进入流水线的时间。所谓优化延迟转移方法,是将转移指令与前条指令对换位置,提前执行转移指令,可以节省一个机器周期。

微处理器中的新技术

下面介绍微处理器中的几种新技术。

超标量和超流水线技术

超标量技术是通过重复设置多个功能部件,并让这些功能部件同时工作来提高指令的执行速度,实际上是以增加硬件资源为代价来换取处理器性能的。使用超标量技术的处理器在一个时钟周期内可以同时发射多条指令。

超流水线仍然是一种流水线技术,可以认为它是将标量流水线的子过程(段)再进一步细分,使得子过程数(段数)大于或等于 8 的情况。也就是说只需要增加少量硬件,通过各部分硬件的充分重叠工作来提高处理器性能。采用超流水线技术的处理器在一个时钟周期内可以分时发射多条指令。

EPIC 的指令级并行处理

EPIC 架构是 Itanium 挑战 RISC 架构的基础,它的设计思想就是用智能化的软件来指挥硬件,以实现指令级并行计算。采用 EPIC 架构的处理器在运行中,首先由编译器分析指令之间的依赖关系,将没有依赖关系的 3 条指令组合成一个 128 位的指令束。在低端 CPU 中,每个时钟周期调度 1 个指令束,CPU 等待所有的指令都执行完后再调度下一个指令束。在高端的 CPU 中,每个时钟周期可以调用多个指令束,类似于现在的超标量设计。

超线程技术

超线程(简称“HT”)是 Intel 公司提出的一种提高 CPU 性能的技术,简单地说就是将一个物理 CPU 当作两个逻辑 CPU 使用,使 CPU 可以同时执行多重线程,从而发挥更大的效率。超线程技术利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和应用软件,减少了 CPU 的闲置时间,提高 CPU 的运行效率。

双核与多核技术

  1. 双核处理器

    双核处理器是指在一个处理器上集成两个运算核心,从而提高计算能力。

  2. 超线程技术与双核心技术的区别

    可以简单地把双核心技术理解为两个“物理”处理器,是一种“硬”的方式;而超线程技术只是两个“逻辑”处理器,是一种“软”的方式。

Released under the GPL-3 License. (??? views totally)