CPU 的组成

  • 控制单元(控制器,Control)
    • 指令地址部件:程序计数器 PC
    • 指令寄存部件:指令寄存器 IR
    • 译码部件:指令译码器 ID
    • 时序部件:产生时序信号
    • 控制信号生成部件
  • 执行单元(数据通路,Datapath)
    • 运算单元:ALU
    • 寄存器单元:通用寄存器组(GPRs),标志寄存器(FR,又称程序状态字PSW),临时寄存器(TR)

CPU 性能指标

系统的速度可以用延迟吞吐量度量。

概念 :

  • 任务:经过处理后能产生输出的一组输入
  • 延迟(响应时间):任务开始到结束所需的时间
  • 吞吐量:系统单位时间内完成的任务量
  • 指令平均执行时钟周期数(CPI):
  • CPU 执行时间:
    • 从响应时间中去除因等待I/O操作所花时间和CPU执行其他程序所花时间,是CPU真正花在运行一个程序上的时间
    • 这个是衡量性能的最重要的指标。
  • 百万指令每秒(MIPS):
  • 百万浮点数操作每秒 (MFLOPS):

Warning

MIPS 和 MFLOPS 除了和机器有关,也和 ISA、所用测试程序等有关,因此需要谨慎参考。不同 ISA 比较没有价值,不同测试程序测出来也可能不一样,没有比较价值。

影响因素

  • 指令数
  • CPI
  • 时钟周期

MIPS CPU 设计

单周期

设计方案

性能分析

单周期 CPU 中,每条指令需要 1 个时钟周期,因此 CPI 为 1。

单周期 CPU 中,不同类型指令的耗时不同。而我们采取同步时序设计,时钟周期为常数,因此要足够长,满足最慢指令(lw 类指令)的耗时。

多周期

多周期 CPU 将指令执行过程分为多个较短步骤。每个步骤中,CPU 可以读写存储器或寄存器,或使用 ALU。不同指令使用的步骤数不同,即时钟周期数不同,因此简单指令比复杂指令可以更快。

因此多周期 CPU 的速度更快(虽然不总是这样),成本更低(因为复用元件)

性能分析

指令执行时间依赖于使用的周期数周期时间

  • 采取同步时序设计,时钟周期为常数,因此要足够长,满足最慢步骤(读存储器)的耗时。
  • beqj 需要的周期最少,为 3;swaddi 等 I 型运算指令,R 型指令需要 4 周期;lw 需要 5 周期。

因此 CPI 取决于使用指令的相对频度。

并行

  • 并行:
    • 空间并行:提供多个相同硬件,以便同时处理多个任务 (超标量)
    • 时间并行:把一个任务分成多个阶段,每个时间内每部分都有一个不同任务正在处理,从而重叠处理任务(流水线
  • 效果:
    • 延迟为 L 的任务,无并行则吞吐量为 1/L;
    • 若空间并行系统中有 N 个硬件,则吞吐量为 N/L;
    • 若时间并行系统中任务分步,最长延迟为 L’,则吞吐量为 L’/N。
  • 依存关系:当前任务依赖于前一个任务的结果,则只有前一个任务完成后,后一个任务才能开始。
  • 流水线 CPU 设计文档: