跳到主要内容

处理器体系结构

指令集体系结构

基本术语

指令
  • 一个或多个字节序列组成的二进制序列;
  • 控制处理器行为;
指令集体系结构 (ISA)
  • 处理器支持的指令;
  • 指令的字节级编码;

可见状态

  • 程序寄存器:存储 64 位的字;
  • 条件码 CC:存储算术和逻辑信息;
  • 程序计数器 PC:当前执行指令的地址;
  • 内存:存储程序和数据;
  • 状态码 Stat:程序执行的总体状态信息;

逻辑设计和硬件空间语言 HCL

逻辑门

  • 数字电路的基本单元;
  • 根据输入位的布尔函数参数输出;
    • 与/或/非;

逻辑门

组合电路和 HCL 布尔表达式

组合电路
  • 多个逻辑门组合成一个网;

组合电路

多路复用器
  • 根据输入控制信号的值;
  • 从一组不同的数据信号中进行选择;
HCL 布尔表达式
  • 表示组合电路的布尔表达式;
(a && !a) && func(b,c)

字级的组合电路和 HCL 整数表达式

字级的组合电路
  • 对 "字" 进行操作的电路;

字级的组合电路

HCL 整数表达式
  • 表示字级的组合电路的布尔表达式;
word Out4 = [
!s1 && !sO : A; # 00
!s1 : B; # 01
!s0 : C; # 10
1 : D; # 11
];

算术/逻辑单元(ALU)

  • 进行算术运算和逻辑运算的组合电路;

算术/逻辑单元(ALU)

存储器和时钟

时序电路
  • 具有状态的组合电路;
时钟
  • 周期性信号;
  • 控制 PC,CC,内存;
  • 每个时钟周期,程序计数器便会装载新的指令;
寄存器的差异
  • 机器语言:可寻址的字,存储在寄存器文件中;
  • 硬件:组合电路的一部分,存储电路状态信息;
寄存器文件
  • 存储机器寄存器;
  • 读端口 + 写端口;
  • 使用时钟控制读写;

寄存器文件

顺序实现

处理指令

  • 取指:在内存中读取指令字节;
  • 译码:从寄存器文件读取操作数,用于指令;
  • 执行:ALU 执行指令对应操作;
  • 访存:读写内存;
  • 写回:写入结果值寄存器文件;
  • 更新:程序计数器更新地址;

时序

  • 通过时钟控制处理器处理指令的操作顺序和时间间隔;

流水线的通用原理

优劣势

  • 优势:提高系统吞吐量;
  • 劣势:增加延迟;
    • 流水线寄存器的开销;

计算流水线

延迟
  • 执行一条指令的时间;
吞吐量
  • 延迟的倒数;
非流水线化
  • 一次计算执行完所有阶段后才进行下一次计算;

非流水线

流水线化
  • 将一次计算分为若干阶段,使用寄存器存储临时变量;
  • 每经过一个时钟周期,一个指令离开阶段 A,进入阶段 B,一个新指令进入阶段 A;

流水线化

流水线的局限性

不一致的划分
  • 时钟周期取决于流水线中最慢的阶段;
  • 导致其他阶段空闲若干时间;

不一致的划分

流水线过深
  • 流水线过深;
  • 流水线增加的寄存器开销大;

流水线过深

CPU 调度

常见 CPU 调度算法

  • 先到先服务;
  • 最短作业优先:优先执行最短的进程;
  • 优先级调度:优先执行高优先级的进程;
  • 轮转法调度;
    • cpu 时间划分为若干片段;
    • 每个进程分配一个片段;
    • 类似于多路访问中的时频划分;