计算机组成原理---中央处理器

1)CPU功能和基本结构

1. cpu功能

CPU由运算器控制器构成

  1. 运算器 对数据进行加工
  2. 控制器:协调控制计算机各部件执行程序的指令序列(取指令,分析指令,执行指令)

CPU具体功能:

  1. 指令控制
  2. 操作控制
  3. 时间控制
  4. 数据加工
  5. 中断处理

2. cpu基本结构

CPU由运算器控制器构成
运算器:

  1. 算数逻辑单元(ALU):进行算数/逻辑运算
  2. 暂存寄存器(程序员不可见):暂存主存读来的数据,该数据不能存放在通用寄存器中,否则会破环原有内容
  3. 累加寄存器(ACC):通用寄存器,用来暂存ALU运算的结果信息,可作为加法运算的一个输入端
  4. 通用寄存器组(AX,BX,CX,DX,SP... ...):存放操作数及各种地址信息
  5. 程序状态字寄存器(PSW) :溢出标志(OF)符号标志(SF)零标志(ZF)进位标志(CF)等,这些位参与并决定微操作的形成(也叫FR标志寄存器
  6. 移位器:进行移位操作
  7. 计数器(CT):控制乘除运算的操作步数
    … …

控制器:

  1. 程序计数器(PC):指出下一条指令在主存的存储地址(PC有自增功能)
  2. 指令寄存器(IR):保存当前正在执行的那条指令
  3. 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号
  4. 储存器地址寄存器(MAR):存放要访问的主存单元地址
  5. 储存器数据寄存器(MDR):用于存放向主存写入的信息或从主存读出的信息
  6. 时序系统:用于产生各种时序信号,由统一时钟分频得到
  7. 位操作信号发生器:根据IR,PSW产生控制整个计算机系统所需的各种控制信号(有组合逻辑型和储存逻辑型)

3. 注意点:

CPU内部寄存器:

  1. 用户可见:通用寄存器组 程序状态字寄存器 程序计数器PC
  2. 用户不可见:储存器地址寄存器 储存器数据寄存器 指令寄存器 暂存寄存器

n位CPU的n是指数据总线总数


复习
地址总线线数->可寻址范围->存储器最大容量
数据总线线数->一次可取的数据位数->MDR的位数->运算器一次处理的位数->运算器寄存器位数
控制总线线数->一次可并行传送的控制信息位数
I/O线数->与外设通信的并行程度


存储字长:存放在一个存储单元中二进制码位数
指令字长:一条指令的二进制位数
机器字长(计算机位数):计算机一次能处理的二进制位数,一般等于寄存器位数
操作系统位数:操作系统可寻址位数
地址码长度:存储器地址的二进制位数

指令译码是指对指令的操作码字段进行译码

p193 23 24题


2)指令执行过程

1. 指令周期

  1. 定长机器周期
    取指(FE=1) ----->间址(IND=1) ------>执行(EX=1)------> 中断(INT=1)
    在执行周期结束后会检查有无中断请求在这里插入图片描述
  2. 不定长机器周期
    机器周期数可以不相等
    每个机器周期包含的节拍数可以为4个也可以为3个
    下图为无条件指令JMP X的指令周期在这里插入图片描述

注意中断周期进栈操作是SP-1,计算机的堆栈都是向低地址增加的


2. 数据流

取指周期

  1. PC->MAR->地址总线->主存
  2. CU发出读命令->控制总线->主存
  3. 主存->数据总线->MDR->IR
  4. CU发出控制信号->PC+1

间址周期

  1. Ad(IR)(或MDR)->MAR->地址总线->主存
    Ad(IR)表示取出IR中存放的指令字的地址字段
  2. CU发出读命令->控制总线->主存
  3. 主存->数据总线->MDR

执行周期

  1. 无统一的数据流向

中断周期

  1. CU将控制信号将SP-1,SP->MAR->地址总线->主存
  2. CU发出写命令->控制总线->主存
  3. PC->MDR->数据总线->主存
  4. CU(中断服务程序的入口地址)->PC

3. 执行方案

单指令周期

多指令周期

流水线方案

4. 总结

这里是引用

5. 注意点

工作脉冲:控制器的最小时间单位,每个时钟周期有一个工作脉冲

解析指令结构

  1. 操作码译码:指令操作码译码结构
  2. 根据特征码判断寻址方式即:指令和数据的寻址方式

预取技术:每个指令周期都要取指令

存取周期:访存读/写

一个指令周期可能只有取指,执行
也可能只有取指,执行,中断
取指,间址,执行
比如:

  1. 空指令NOP只有取指周期
  2. 加法指令ADD有取指周期和执行周期
  3. 乘法指令MUL有取指周期和执行周期(由多个ADD操作所以执行周期更长)

CPU区分指令和数据(都存在存储器中)
控制器可以根据指令周期的不同阶段对内存的访问判断从存储器取出的二进制代码是指令还是数据

一条无条件指令跳转指令周期内,PC的值被修改了2次 (自增,跳转)

间址可以一次间址,二次间址,各机器周期长度可变,间接寻址指令,他们的操作不一定相等


3)数据通路的功能和基本结构

1. 数据通路功能

数据通路由控制部件控制,控制部件根据每条指令功能的不同生成对数据通路的控制信号,正确控制指令执行的执行流程
功能:实现CPU内部的运算器与寄存器及寄存器之间的数据交换

2. 数据通路基本结构

  1. CPU内部单总线方式
    结构简单,数据传输存在较多的冲突现象,性能较低
  2. CPU内部三总线方式
    效率比单总线更高
  3. 专用数据通路方式
    性能较高,硬件量大

在这里插入图片描述

3. 流程及控制信号

1.寄存器之间数据传送

流程控制信号
PC->BusPCout有效,PC内容总线
Bus->MARMARin有效,总线内容送到MAR

2. 主存与CPU间的数据传送

流程控制信号
PC->Bus->MARPCout MARin有效,现行地址->MAR
1->RCU发出读命令
MEM(MAR)->MDRMDRin有效
MDR->Bus->IRMDRout IRin有效,现行地址->IR

3. 执行算术或逻辑运算

流程控制信号
Ad(IR)->Bus->MARMARin MDRout有效
1->RCU发出读命令
MEM->数据线->MDR操作数从储存器->数据线->MDR
MDR->Bus->YMDRout Yin有效,操作数->Y
(ACC)+(Y)->ZACCout ALUin有效,CU向ALU发命令,结果->Z
Z->ACCZoutACCin有效,结果->ACC

4.注意点

数据总线是双向的 CPU->内存,内存->CPU
地址总线是单向的 CPU->内存

1.数据传送主要有三种情况:

  1. 寄存器之间的数据传送。如本题MAR←(PC),由“PCout,MARin”在一个时钟周期内完成。
  2. 主存与CPU之间的数据传送。如本题“MAR←(PC); MDR←M(MAR); IR←(MDR)” ,由“PCout,MARin; MemR,MDRinE; MDRout,IRin" 分3个时钟周期内完成,效果是把M(MAR)送入IR。其中MDR←M(MAR)可与PC←(PC)+1放在同一时钟周期。
  3. 执行算术或逻辑运算。一般需要先把一个操作数送入暂存器,然后使用ALU的控制信号表示相应的运算。

2.控制信号

  1. 控制某个部件的输入输出。如PCin、 PCout。
  2. 控制某个多功能部件的具体操作。如ALU的控制信号,一般与汇编语言的助记符一一样。
  3. 控制三态门。决定某条线路的通断,一般1表示通,0表示断。
  4. 控制多路选择器MUX。如控制信号0表示把0号输入端的内容直送到输出端。

3.PC自增:

  1. 若直接在PC旁标注“+1”或“PC+1”等,一般指PC带有自增功能,不需使用ALU完成自增。
  2. 若无类似标注,一般需要由ALU完成PC自增,常有多路选择器MUX参与,见207页 第9题。
  3. 注意观察题目的描述,每个小问的问题都有可能是提示。

4)控制器功能和工作原理

硬布线控制器对比微指令控制器

硬布线控制器微指令控制器
工作原理微操作控制信号由组合逻辑电路根据当前的指令码,状态和时序,即时产生微操作控制信号以微程序的形式放在控制存储器中,执行指令时读出即可
执行速度
应用场合RISC CPUCISC CPU
工整性繁琐 较不工整较工整
易扩充性困难

1. 硬布线控制器

机器周期:内存中读取一个指令字的最短时间作为机器周期,在存储字长等于指令字长时,取指周期也可视为机器周期


CPU控制方式

  1. 同步控制方式
    优点:控制电路简单 缺点:运行速度慢
  2. 异步控制方式:
    优点:运行速度快 缺点:电路复杂
  3. 联合控制方式
    同步和异步的折中大部分使用同步,小部分异步

2. 微程序控制器

这里是引用

在这里插入图片描述
在这里插入图片描述

存放数据位置组成材料
主存程序数据CPU外部RAM
控制存储器微指令CPU内部ROM
水平型指令垂直型指令
指令长度
程序长度
执行速度
工整性较不工整较工整
并行性

相容性微命令:可以同时产生的共同完成某些微操作的微命令
互斥性微命令:不允许同时出现的微命令

3. 注意点

在硬布线中,取指的通式:(注:ID是操作码译码电路)
T0: PC->MAR, 1->R
T1: M(MAR)->MDR,(PC)+1->PC
T2: MDR->IR,
T3: OP(IR)->ID

取指是控制器固有功能,不受指令控制但在微程序控制方式下取指操作是由某段微程序控制

如果指令系统中有n种机器指令 ,则控制存储器中的微程序数至少是n+1(1为公共的取指微程序)

微操作控制信号的形成指令译码信号时钟信号有关:

  1. 指令译码信号:经指令译码产生的指令信息
  2. 时钟信号:时序系统产生的机器周期信号和节拍信号
  3. 来自执行单元的反馈信息即标志(优化)

PC程序计数器决定指令执行顺序, uPC微程序计数器决定微指令执行顺序, 两者不能互相取代

在微程序控制器中,控制部件向执行部件发出的某个控制信号是微命令

直接编码方式的效率不能确定(空间效率低,时间效率高)

时钟周期也叫主频周期

MM(主存储器)和 CS(控制存储器)按地址访问,只有相联存储器是按内容访问


5)指令流水线

1. 五段式指令流水线

这里是引用
IF取指->②ID译码&取数->③EX 执行->④M访存->⑤WB写回寄存器
注意只有上一条指令进入ID段后,下一条指令才能开始IF段,否则会覆盖IF段锁存器的内容


常见的5类指令

  1. 运算类指令:
    IF:根据PC从指令Cache取指令至IF段的锁存器
    ID:取出操作数至ID段锁存器
    EX:运算,将结果存入EX段锁存器
    M:空段
    WB:将运算结果写回指定寄存器

  1. LOAD指令:
    IF:根据PC从指令Cache取指令至IF段的锁存器
    ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm
    EX:运算,得到有效地址
    M:从数据Cache中取数并放入锁存器
    WB:将取出的数写回寄存器

  1. STORE指令:
    IF:根据PC从指令Cache取指令至IF段的锁存器
    ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm。将要存的数放到B
    EX:运算,得到有效地址。并将锁存器B的内容放到锁存器 Store。
    M:写入数据Cache
    WB:空段

  1. 条件转移指令:
    IF:根据PC从指令Cache取指令至IF段的锁存器
    ID:进行比较的两个数放入锁存器A、B;偏移量放入 Imm
    EX:运算,比较两个数
    M:将目标PC值写回PC(左图没画全)
    WB:空段

  1. 无条件转移指令:
    IF:根据PC从指令Cache取指令至IF段的锁存器
    ID:偏移量放入 Imm
    EX:将目标PC值写回PC(左图没画全)
    M:空段
    WB:空段

例题在这里插入图片描述

2. 流水线分类

这里是引用

3. 影响流水线的因素

这里是引用

  1. 资源冲突/冒险(结构相关)
    解决方案:
    1.后一相关指令暂停一周期
    2.资源重复配置:
    数据存储器+指令存储器
    在这里插入图片描述
  2. 数据相关/冒险
    RAW(写后读)
    WAR(读后写)
    WAW(写后写)
    解决方案:
    1.后一相关指令暂停- -周期
    2.数据旁路在这里插入图片描述
  3. 控制相关/冒险
    解决方案:
    1.尽早判别转移是否发生,尽早生成转移目标地址
    2.预取转移成功和不成功两个控制流方向上的目标指令
    3.加快和提前形成条件码
    4.提高转移方向的猜准率在这里插入图片描述

4. 性能指标

流水线吞吐率:
TP=n/Tk(n:任务数 Tk是处理完n个任务所用的时间)
Tk=(k+n-1)*Δt(k是流水线段数 Δt=每个时钟周期需要的秒数)
主频:每秒钟时钟周期数


流水线加速比:
S=T0/Tk(T0表示不用流水线时间 Tk表示用流水线的时间)
S=kn/k+n-1


流水线效率:
E=T0/kTk(有效面积比总面积)


5. 超标量流水线

  1. 超标量流水线技术
    在这里插入图片描述
  2. 超流水线技术
    在这里插入图片描述
  3. 超长指令字
    编译程序挖掘指令潜在的并行性需要采用多个处理部件

6. 注意点

流水线按序流动时,在RAW. WAR和WAW中.只可能出现RAW相关

非流水线时空图
在这里插入图片描述
流水线时空图
在这里插入图片描述

空间并行:即资源重复,多个功能部件共同执行同一任务的不同部分
时间并行:即时间重叠,多个功能部件在时间上相互错开,轮流重叠执行不同任务的相同分
所有的RISC采用流水线技术,部分CISC也采用流水线技术
RISC-定采用流水线技术,采用流水线技术的不一定是RISC

空操作 万金油

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值