【计组】中央处理器笔记整理

CPU的功能

CPU包括运算器控制器,控制器的功能包括:取指令分析指令执行指令,运算器的功能为对数据进行处理。CPU的功能包括:指令控制(取指令、分析指令、执行指令)、操作控制(一条指令包含若干操作信号的组合,使用)、时间控制(控制指令按顺序执行)、数据加工(运算器的功能)、中断处理(对异常和特殊情况进行处理)

CPU的结构

运算器

包括ALU、寄存器(输入暂存、结果累加、通用寄存器、程序状态字)、移位器、多步乘除法的计数器

控制器

包括指令译码器、寄存器(PC、IR、MAR、MDR)、时钟分频、微操作信号发生器

指令执行周期

指令周期

定长指令周期:取指令(n个周期)、取有效地址(n个周期)、执行指令(n个周期)、(中断周期)

不定长指令周期:取指令(n个周期)、执行指令(m个周期)、(中断周期)

指令周期的数据流

取指令的周期:

读命令
控制信号
PC
MAR
地址总线
主存
CU
控制总线
数据总线
MDR
IR
PC=PC+1

间址周期:(一次间接寻址)

读命令
IR
MAR
地址总线
主存
CU
控制总线
数据总线
MDR

执行周期:无固定流向

中断周期:

控制信号
写命令
返回地址
中断服务地址
CU
SP=SP-1
控制总线
主存
PC
MDR
数据总线

指令执行方案

  1. 单指令周期:指令都在相同时间完成,(每条指令在一个时钟周期内完成)
  2. 多指令周期:指令可以在不同周期数中完成
  3. 流水线技术:指令可以并行,分别处于不同阶段

数据通路

数据通路是数据传送的路径

基本结构:单总线、多总线、专用电路

寄存器之间的数据传送: ( R 1 ) → R 2 \mathrm{(R1)\to{R2}} (R1)R2:数据从 R 1 R1 R1送到 R 2 R2 R2

主存和CPU之间数据传送: ( R 1 ) → M A R , M E M ( M A R ) → M D R , ( M D R ) → R 2 \mathrm{(R1)\to{MAR},MEM(MAR)\to{MDR},(MDR)\to{R2}} (R1)MAR,MEM(MAR)MDR,(MDR)R2:读取 [ R 1 ] [R1] [R1] R 2 R2 R2

算术逻辑运算: R 1 → 暂存器 , R 2 → A C C , A C C → R 3 \mathrm{R1\to{暂存器},R2\to{ACC},ACC\to{R3}} R1暂存器,R2ACC,ACCR3

控制器

  1. 取指令、指出下一条指令的地址
  2. 指令译码
  3. 控制CPU、主存、I/O之间的数据通路

控制器可分为硬布线控制器(主要是RISC)和微程序控制器(主要是CISC)

硬布线控制器

CU的输出是操作码译码结果、节拍发生器和其他标志的运算结果

取指令操作的微操作:

(PC)->MAR
1->R
M(MAR)->MDR
(MDR)->IR
Op(IR)->CU
(PC)+1->PC

取操作数的操作:

Add(IR)->MAR
1->R
M(MAR)->MDR

执行的操作(例:存数):

Add(IR)->MAR
1->W
(ACC)->MDR

转移指令:

Add(IR)->PC

(转移之后PC一般还会自增)

控制方式:

  1. 同步控制方式:统一时钟
  2. 异步控制方式:不存在基准时钟,通过应答方式进行联络
  3. 联合控制方式:介于同步和异步之间

设计步骤:

  1. 列出微操作命令时间表
  2. 进行微操作信号综合(考虑机器周期、操作码、机器条件状态)
  3. 画出微操作命令的逻辑图

微程序控制器

一条机器指令可以被分解为一个微操作序列,微命令是微操作的控制信号

微指令是微命令的组合,在一个微周期内执行

控制存储器是存放微指令的地方

微程序是一段微指令的程序,一条指令由一段微操作指令实现

微地址寄存器:CMAR:控制存储器的MAR

微指令寄存器:CMDR=μIR:存放指令,控制寄存器的MDR

微程序控制器的组成:

  1. 控制存储器
  2. 微指令寄存器
  3. 微地址形成部件
  4. 微地址寄存器

工作过程:

下地址
地址译码
控制存储器
CMDR
控制顺序的逻辑电路
CMAR
指令码
微地址形成部件
标志
CLK

控制存储器有一个取指令的微程序,是所有微指令的公共操作

微程序和机器指令:

通常一条微程序对应一个微程序,但是取指令是所有指令的公共操作,所以只需要一个微程序;也有间址、中断的微程序

微指令编码:

  1. 直接编码:一个位一个微命令
  2. 字段直接编码方式:非互斥分段、互斥译码(注意留出一个空位表示无操作)
  3. 字段间接编码方式:一个字段的微命令需要另外一个字段的微命令解释

微指令地址形成方式:

  1. 直接由微指令的下地址字段指出
  2. 根据指令的操作码形成

一般有以下几种具体的微地址形成方式:增量计数器、标志控制转移、测试网络、硬件产生微程序入口地址

微指令的格式:

水平型微指令:操作控制字段|判断测试字段|后继地址字段(以上三种微指令编码方式都是此类微指令的)

垂直型微指令:微操作码|目的地址|源地址

混合型微指令:在垂直型基础上增加不太复杂的操作

对比:

水平型微指令垂直型微指令
并行操作能力
效率
灵活性
指令执行时间
微指令字

微指令程序控制单元设计步骤:

  1. 写出微操作命令和节拍安排
  2. 确定微指令格式
  3. 编写微指令编码

动态微程序设计:可以由用户动态改变微程序

毫微程序设计:微程序的下一级微程序

硬布线和微程序控制器的对比

微程序控制器硬布线控制器
速度
规整性规整不规整
应用CISCRISC
易扩充性易扩充不易扩充

异常和中断

分类:故障、自陷、终止

中断的分类:可屏蔽中断、不可屏蔽中断

异常响应流程:

  1. 关中断
  2. 保存断点和程序状态
  3. 识别异常,转到相应的处理程序

流水线技术

将一条指令的执行过程分为几个阶段,不同阶段的指令可以同时执行

指令长度应该一致、指令格式应该规整、采用Load/Store指令、数据和指令对齐存放

流水线可以用时空图来表示

流水线的实现:各个阶段的结果存储在寄存器中

对于包含Instruction Fetch、Instruction Decode、EXcute、MEMory access、Write Back的流水线:

控制信号:

信号FROMTO
BranchEXIF
RegDstIDID
RegWriteWBID
AluSrcEXEX
AluOpEXEX
MemWriteMEMMEM
MemToRegWBWB

流水线冒险

结构冒险

多条指令使用同一个资源。解决方法:暂停时钟周期、分开指令和数据缓存

数据冒险

写后读、读后写、写后写。解决方法:暂停、数据旁路、编译器调整指令

控制冒险

跳转指令造成断流。解决方法:分支预测、同时预取、提前生成条件码

流水线的性能指标

吞吐率

单位时间完成任务数量

加速比

不使用流水线和使用流水线时间之比。 S = k n k + n − 1 S=\frac{kn}{k+n-1} S=k+n1kn

高级流水线技术

超标量流水线技术

多条不相关指令同时执行。也叫动态多发射技术

超长指令字技术

将可并行执行的操作写在一个超长指令中。也叫静态多发射技术

超流水线技术

只提升流水线段数,充满后 C P I = 1 CPI=1 CPI=1

多处理器

SISD、SIMD、MIMD

S:单/M:多、I:指令、D:数据流

向量处理器:SIMD

多核处理器:MIMD

一个控制部件:SI

硬件多线程实现方式

细粒度多线程

多个线程之间交叉执行指令

粗粒度多线程

当一个线程出现较大开销时执行指令

同时多线程

一个指令周期中,发射多个不同线程指令执行

多核处理器

多个处理单元可以放在一个CPU中,每个处理单元称为一个核

向量处理器:对多个数据进行同一种操作

共享内存多处理器

具有单一物理地址空间的多处理器。通常对共享变量加锁

统一存储访问:处理器访问内存速度大致相同,不分割主存

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值