Nameless Site

But one day, you will stand before its decrepit gate,without really knowing why.

0%

中央处理器

CPU组成与功能

CPU概述

image-20191225231349628

CPU基本组成

  • 运算器 数据加工
  • 控制器 程序执行/执行执行
    • 取指令 Mem[PC++] -> IR
    • 执行指令
      • 指令字 -> 控制信号序列
      • 信号序列 -> 数据通路

image-20191225231525021

CPU主要功能

取指令并执行指令的部件———CPU

  • 数据加工: 算术/逻辑运算 运算器
  • 程序控制: 程序中指令执行顺序控制
  • 操作控制: 将机器指令翻译成执行部件所需的操作控制信号
  • 时序控制: 控制操作信号的产生时间、持续时间
  • 异常控制: 异常处理,外设交互
    后4个为控制器功能

主要寄存器

  • PC (Program Counter)———程序计数器 X86:EIP MIPS:PC
  • IR (Instruction Register)———指令寄存器 [可选]
  • AR (Address Register)———地址寄存器 MAR [可选]
  • DR (Data Register)———数据缓冲寄存器 MDR [可选]
  • AC (Accumulate Count)———累加寄存器 [可选]
  • PSW (Program Status Word)———程序状态字 [可选]
    • X86 EFLAGS MIPS:无

操作控制器

取指令,将机器指令译码并生成执行部件控制信号序列 ,建立正确的数据 通路,从而完成指令的正确执行。

  • 硬布线控制器 (时序逻辑型) (硬件实现)
  • 微程序控制器 (存储程序型) (软件实现)

数据通路

数据通路———执行部件间传送信息的路径。

  • 通路的建立由控制信号控制,受时钟驱动;
  • 不同指令、同一指令在执行的不同阶段的数据通路不同;
  • 数据通路分类:共享通路(总线)、专用通路
    • 指令执行流程、执行效率
    • 微操作控制信号的时序安排

数据通路与总线结构

数据通路分类:

  • 共享通路(总线型)
    • 主要部件都连接在公共总线上,各部件间通过总线进行数据传输
    • 结构简单,实现容易,但并发性较差,需分时使用总线,效率低
  • 专用通路
    • 并发度高,性能佳,设计复杂,成本高
    • 可以看做多总线结构

单总线数据通路:
image-20191225233819137

双总线数据通路:
image-20191225233848478

三总线数据通路:
image-20191225233919390

数据通路实例

单总线CPU:
image-20191225235209491

多总线CPU:
image-20191225235241019

专用通路 单周期MIPS:
image-20191225235310044

指令周期

指令执行一般流程:
image-20191226001010996

指令周期基本概念:
image-20191226001033946

指令控制同步:
不同指令功能不同,复杂度不同,如何进行时间控制?

  • 定长指令周期:早期三级时序系统
    • 机器周期数固定,节拍数固定,按机器周期同步,mips单周期
  • 变长指令周期:现代时序系统
    • 机器周期数可变,节拍数可变,按时钟周期同步,mips多周期

早期三级时序系统
image-20191226001138799

时序产生与控制器:
image-20191226001211781

现代时序系统:
image-20191226001239185

总线结构与CPU指令周期

image-20191226002209956

取指令数据通路

image-20191226002222707

LOAD指令执行数据通路

image-20191226002311808

MOVE指令执行数据通路

image-20191226003023840

ADD指令执行数据通路

image-20191226003041973

STORE指令执行数据通路

image-20191226003103363

JMP指令执行数据通路

image-20191226003124517

硬布线控制器设计I

基本原理

  • 将控制器看成产生固定时序控制信号的逻辑电路
  • 输入信号:指令译码,时钟信号,反馈信号
  • 输出信号:功能部件控制信号序列
  • 设计目标:最少元件,最快速度
  • 理论基础:布尔代数
  • 组成器件:门电路,触发器

image-20191226004240269

单总线结构CPU指令周期

image-20191226004314609

image-20191226004328026

时序产生器状态机与控制器基本架构

image-20191226004422271

image-20191226004440469

image-20191226004449528

固定指令周期硬布线控制器设计过程

  1. 设计三级时序产生器: 所有指令固定机器周期数,节拍数,
  2. 列出所有机器指令的指令周期流程图,明确每个节拍的控制信号;
  3. 找出产生同一微操作控制信号的条件;
  4. 写出各微操作控制信号的布尔表达式;
  5. 化简各表达式;
  6. 利用组合逻辑电路实现。

硬布线控制器设计II

多周期

image-20191226005355693

image-20191226005414350

有限状态机真值表:
image-20191226005443176

可变周期硬布线控制器设计步骤

  1. 列出所有机器指令的指令周 期流程图,明确每个节拍的 控制信号;
  2. 绘制指令执行状态转换图
  3. 根据状态转换图构建状态机 真值表,实现有限状态机组 合逻辑
  4. 实现控制器组合逻辑电路

微程序控制器

image-20191226141854193

工作原理:

  • 微程序是利用软件方法来设计硬件的技术
  • 将完成指令所需的控制信号按格式编写成微指令,存放到控制存储器
    • 一条机器指令对应一段微程序(多条微指令)
    • 指令取指执行 -> 微程序的执行 -> 执行多条微指令 -> 依次生成控制信号
  • 存储技术和程序设计相结合,回避复杂的同步时序逻辑设计

单总线CPU微指令构造

  • 操作控制字段: 存储操作控制信号
    • 每一位对应一个控制信号,也称微命令,可同时给出多个操作信号
  • 顺序控制字段: 用于控制微程序的执行顺序
    • 判别逻辑为零,下一条微指令地址从下址字段获取,否则按约定规则生成

image-20191226142125377

image-20191226142140226

优劣:

  • 速度慢 访存频繁、成本低廉
  • 设计规整,设计简单,易于修改、扩展指令系统功能
    • 适合CISC等功能较复杂的系列机 X86、IBM S/360、 DEC VAX
    • 可写控存方便修复出厂故障 Intel Core 2 、Intel Xeon
  • 硬布线控制器执行速度快,但设计复杂,代价昂贵,不便于修改
    • 适合RISC计算机,如MIPS,ARM

微程序设计

  • 一条微指令对应一个时钟周期
  • 微指令操作控制字段的信号在该时钟周期内有效
  • 指令需要多少时钟周期就包括多少微指令

image-20191226143130682

微指令格式

设计原则:

  • 有利于缩短微指令字长度
  • 有利于减少控制存储器容量
  • 有利于提高微程序执行速度
  • 有利于对微指令进行修改
  • 有利于提高微程序设计的灵活性

直接表示简单直观,便于输出控制,微指令长度太长,控存容量大,如何压缩微指令长度?

  • 改直接表示为编码表示 (压缩互斥性微指令)
  • 去掉下址字段,采用 μPC = μPC +1 的方式生成微指令地址
  • 改水平型微指令为垂直型微指令 (牺牲并行性)

image-20191226144718065

如果互斥的输出控制信号8个,编码后长度多少?
至少为4,预留一个状态表示所有状态输出为0

image-20191226145046465

垂直型微指令:
image-20191226145128307

  • 水平型微指令
    • 并行操作能力强,效率高,灵活性强,
    • 微指令字较长,微程序短,控存容量大,性能佳
  • 垂直型微指令
    • 字长短,微程序长,控存容量小,性能差
    • 垂直型与指令相似,易于掌握
    • 基本被淘汰

单周期MIPS CPU

MIPS CPU控制器设计:

  • 定长指令周期:单周期实现
    • 所有指令均在一个时钟周期内完成, CPI=1
    • 性能取决于最慢的指令,时钟周期过长
  • 变长指令周期:多周期实现
    • 缩短时钟周期,复用器件或数据通路
    • 可支持流水操作,提升性能

R型指令格式
image-20191226151355789

I型指令格式
image-20191226151416087

数据通路:
image-20191226151503460

R型指令数据通路建立过程
image-20191226151635760

LW指令数据通路建立过程
image-20191226151658900

SW指令数据通路建立过程
image-20191226151719963

BEQ指令数据通路建立过程
image-20191226151736211

MIPS控制器设计:

  • 单周期控制器无时序逻辑,纯组合逻辑电路
  • 输入信号
    • 指令字Opcode,Func字段(12位)
  • 输出信号
    • 多路选择器选择信号
    • 内存访问控制信号
    • 寄存器写使能信号

image-20191226151829362

多周期MIPS CPU

多周期MIPS数据通路特点

  • 不再区分指令存储器和数据存储器,分时使用部分功能部件
  • 主要功能单元输出端增加寄存器锁存数据
  • 传输通路延迟变小,时钟周期变短

多周期MIPS CPU数据通路:
image-20191226153829403

多周期MIPS取指令阶段T1
image-20191226153856881

多周期MIPS取指令阶段T2
image-20191226153913682

R型指令执行状态周期T3~T4
image-20191226154005989

LW指令执行状态周期T3~T5
image-20191226154026467

Beq指令执行状态周期T3
image-20191226154040788

多周期状态转换图
image-20191226154127994

习题

冯•诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU依据(指令和数据的访问时间不同 )来区分它们

虽然指令和数据都是以二进制形式存放在存储器中,但 CPU 可以根据指令周期的不同阶段来区分是指令还是数据,通常在取指阶段取出的是指令,在执行阶段取出的是数据。本题容易误选 A ,需要清楚的是, CPU 只有在确定取出的是指令之后,才会将其操作码送去译码,因此,不可能依据译码的结果来区分指令和数据。


某计算机指令集中包含有RR型运算指令、访存指令Load、Store、分支指令Branch和跳转指令Jump。若采用单周期数据通路实现该指令系统,若指令存储器和数据存储器的时延都是3ns;ALU时延为2ns;寄存器文件读写时延都是1ns。在不考虑多路复用器、控制单元、PC、符号扩展单元和传输线路等延迟的情况下,该计算机时钟周期至少为10ns

单周期取指令3ns,访问寄存器文件1ns,计算需要ALU2ns,然后写入数据存储器3ns,然后在写回寄存器1ns


下列有关指令周期的叙述中,正确的是(ACD)。(多选)
A.单周期CPU中的指令周期就是一个时钟周期
B.乘法指令和加法指令的指令周期总是一样长
C.指令周期的第一个阶段一定是取指令阶段
D.一个指令周期可由若干个机器周期或时钟周期组成


下列寄存器中,对汇编语言程序员不透明的是(C)(单选)
A.程序计数器(PC)
B.存储器地址寄存器(MAR)
C.条件状态寄存器
D.存储器数据寄存器(MDR)