中央处理器
1)CPU功能和基本结构
1. cpu功能
CPU由
运算器
和控制器
构成
运算器
: 对数据进行加工控制器
:协调控制计算机各部件执行程序的指令序列(取指令,分析指令,执行指令)CPU具体功能:
- 指令控制
- 操作控制
- 时间控制
- 数据加工
- 中断处理
2. cpu基本结构
CPU由
运算器
和控制器
构成
运算器:
算数逻辑单元(ALU)
:进行算数/逻辑运算暂存寄存器(程序员不可见)
:暂存主存读来的数据,该数据不能存放在通用寄存器中,否则会破环原有内容累加寄存器(ACC)
:通用寄存器,用来暂存ALU运算的结果信息,可作为加法运算的一个输入端通用寄存器组(AX,BX,CX,DX,SP... ...)
:存放操作数及各种地址信息程序状态字寄存器(PSW)
:溢出标志(OF)符号标志(SF)零标志(ZF)进位标志(CF)等,这些位参与并决定微操作的形成(也叫FR标志寄存器
)移位器
:进行移位操作计数器(CT)
:控制乘除运算的操作步数
… …控制器:
程序计数器(PC)
:指出下一条指令在主存的存储地址(PC有自增功能)指令寄存器(IR)
:保存当前正在执行的那条指令指令译码器
:仅对操作码字段进行译码,向控制器提供特定的操作信号储存器地址寄存器(MAR)
:存放要访问的主存单元地址储存器数据寄存器(MDR)
:用于存放向主存写入的信息或从主存读出的信息时序系统
:用于产生各种时序信号,由统一时钟分频得到位操作信号发生器
:根据IR,PSW产生控制整个计算机系统所需的各种控制信号(有组合逻辑型和储存逻辑型)
3. 注意点:
CPU内部寄存器:
用户可见
:通用寄存器组 程序状态字寄存器 程序计数器PC用户不可见
:储存器地址寄存器 储存器数据寄存器 指令寄存器 暂存寄存器
n位CPU的n是指数据总线总数
复习
:
地址总线线数
->可寻址范围->存储器最大容量
数据总线线数
->一次可取的数据位数->MDR的位数->运算器一次处理的位数->运算器寄存器位数
控制总线线数
->一次可并行传送的控制信息位数
I/O线数
->与外设通信的并行程度
存储字长
:存放在一个存储单元中二进制码位数
指令字长
:一条指令的二进制位数
机器字长(计算机位数)
:计算机一次能处理的二进制位数,一般等于寄存器位数
操作系统位数
:操作系统可寻址位数
地址码长度
:存储器地址的二进制位数
指令译码是指对指令的操作码字段进行译码
p193 23 24题
2)指令执行过程
1. 指令周期
定长机器周期
:
取指(FE=1) ----->间址(IND=1) ------>执行(EX=1)------> 中断(INT=1)
在执行周期结束后会检查有无中断请求不定长机器周期
:
机器周期数可以不相等
每个机器周期包含的节拍数可以为4个也可以为3个
下图为无条件指令JMP X的指令周期
注意
:中断周期进栈操作是SP-1,计算机的堆栈都是向低地址增加的
2. 数据流
取指周期
:
- PC->MAR->地址总线->主存
- CU发出读命令->控制总线->主存
- 主存->数据总线->MDR->IR
- CU发出控制信号->PC+1
间址周期
:
- Ad(IR)(或MDR)->MAR->地址总线->主存
Ad(IR)表示取出IR中存放的指令字的地址字段- CU发出读命令->控制总线->主存
- 主存->数据总线->MDR
执行周期
:
- 无统一的数据流向
中断周期
:
- CU将控制信号将SP-1,SP->MAR->地址总线->主存
- CU发出写命令->控制总线->主存
- PC->MDR->数据总线->主存
- CU(中断服务程序的入口地址)->PC
3. 执行方案
单指令周期
多指令周期
流水线方案
4. 总结
5. 注意点
工作脉冲
:控制器的最小时间单位,每个时钟周期有一个工作脉冲
解析指令结构
:
- 操作码译码:指令操作码译码结构
- 根据特征码判断寻址方式即:指令和数据的寻址方式
预取技术
:每个指令周期都要取指令
存取周期:
访存
读/写
一个指令周期可能只有
取指,执行
也可能只有取指,执行,中断
或取指,间址,执行
比如:
- 空指令NOP只有取指周期
- 加法指令ADD有取指周期和执行周期
- 乘法指令MUL有取指周期和执行周期(由多个ADD操作所以执行周期更长)
CPU区分指令和数据(都存在存储器中)
:
控制器
可以根据指令周期的不同阶段对内存的访问判断从存储器取出的二进制代码是指令还是数据
一条无条件指令跳转指令周期内,PC的值被修改了2次
(自增,跳转
)
间址可以一次间址,二次间址,各机器周期长度可变,间接寻址指令,他们的操作不一定相等
3)数据通路的功能和基本结构
1. 数据通路功能
数据通路由控制部件控制,控制部件根据每条指令功能的不同生成对数据通路的控制信号,正确控制指令执行的执行流程
功能
:实现CPU内部的运算器与寄存器及寄存器之间的数据交换
2. 数据通路基本结构
CPU内部单总线方式
结构简单,数据传输存在较多的冲突现象,性能较低CPU内部三总线方式
效率比单总线更高专用数据通路方式
性能较高,硬件量大
3. 流程及控制信号
1.寄存器之间数据传送
流程 | 控制信号 |
---|---|
PC->Bus | PCout有效,PC内容总线 |
Bus->MAR | MARin有效,总线内容送到MAR |
2. 主存与CPU间的数据传送
流程 | 控制信号 |
---|---|
PC->Bus->MAR | PCout MARin有效,现行地址->MAR |
1->R | CU发出读命令 |
MEM(MAR)->MDR | MDRin有效 |
MDR->Bus->IR | MDRout IRin有效,现行地址->IR |
3. 执行算术或逻辑运算
流程 | 控制信号 |
---|---|
Ad(IR)->Bus->MAR | MARin MDRout有效 |
1->R | CU发出读命令 |
MEM->数据线->MDR | 操作数从储存器->数据线->MDR |
MDR->Bus->Y | MDRout Yin有效,操作数->Y |
(ACC)+(Y)->Z | ACCout ALUin有效,CU向ALU发命令,结果->Z |
Z->ACC | ZoutACCin有效,结果->ACC |
4.注意点
数据总线是
双向
的 CPU->内存,内存->CPU
地址总线是单向
的 CPU->内存
1.
数据传送主要有三种情况
:
- 寄存器之间的数据传送。如本题MAR←(PC),由“PCout,MARin”在一个时钟周期内完成。
- 主存与CPU之间的数据传送。如本题“MAR←(PC); MDR←M(MAR); IR←(MDR)” ,由“PCout,MARin; MemR,MDRinE; MDRout,IRin" 分3个时钟周期内完成,效果是把M(MAR)送入IR。其中MDR←M(MAR)可与PC←(PC)+1放在同一时钟周期。
- 执行算术或逻辑运算。一般需要先把一个操作数送入暂存器,然后使用ALU的控制信号表示相应的运算。
2.
控制信号
- 控制某个部件的输入输出。如PCin、 PCout。
- 控制某个多功能部件的具体操作。如ALU的控制信号,一般与汇编语言的助记符一一样。
- 控制三态门。决定某条线路的通断,一般1表示通,0表示断。
- 控制多路选择器MUX。如控制信号0表示把0号输入端的内容直送到输出端。
3.
PC自增
:
- 若直接在PC旁标注“+1”或“PC+1”等,一般指PC带有自增功能,不需使用ALU完成自增。
- 若无类似标注,一般需要由ALU完成PC自增,常有多路选择器MUX参与,见207页 第9题。
- 注意观察题目的描述,每个小问的问题都有可能是提示。
4)控制器功能和工作原理
硬布线控制器对比微指令控制器
硬布线控制器 | 微指令控制器 | |
---|---|---|
工作原理 | 微操作控制信号由组合逻辑电路根据当前的指令码,状态和时序,即时产生 | 微操作控制信号以微程序的形式放在控制存储器中,执行指令时读出即可 |
执行速度 | 快 | 慢 |
应用场合 | RISC CPU | CISC CPU |
工整性 | 繁琐 较不工整 | 较工整 |
易扩充性 | 困难 | 易 |
1. 硬布线控制器
机器周期
:内存中读取一个指令字的最短时间作为机器周期,在存储字长等于指令字长时,取指周期也可视为机器周期
CPU控制方式
:
同步控制方式
优点
:控制电路简单缺点
:运行速度慢异步控制方式:
优点
:运行速度快缺点
:电路复杂联合控制方式
:
同步和异步的折中
,大部分使用同步,小部分异步
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为公共的取指微程序)
微操作控制信号的形成
与指令译码信号
和时钟信号
有关:
指令译码信号
:经指令译码产生的指令信息时钟信号
:时序系统产生的机器周期信号和节拍信号- 来自执行单元的反馈信息即标志(优化)
PC程序计数器决定指令执行顺序, uPC微程序计数器决定微指令执行顺序, 两者
不能互相取代
在微程序控制器中,控制部件向执行部件发出的某个控制信号是
微命令
直接编码方式
的效率不能确定(空间效率低,时间效率高
)
时钟周期
也叫主频周期
MM(主存储器)和 CS(控制存储器)
按地址访问
,只有相联存储器
是按内容访问
5)指令流水线
1. 五段式指令流水线
①IF取指
->②ID译码&取数
->③EX 执行
->④M访存
->⑤WB写回寄存器
注意
:只有上一条指令进入ID段后,下一条指令才能开始IF段,否则会覆盖IF段锁存器的内容
常见的5类指令
:
运算类指令:
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:取出操作数至ID段锁存器
EX:运算,将结果存入EX段锁存器
M:空段
WB:将运算结果写回指定寄存器
LOAD指令:
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm
EX:运算,得到有效地址
M:从数据Cache中取数并放入锁存器
WB:将取出的数写回寄存器
STORE指令:
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:将基址寄存器的值放到锁存器A,将偏移量的值放到Imm。将要存的数放到B
EX:运算,得到有效地址。并将锁存器B的内容放到锁存器 Store。
M:写入数据Cache
WB:空段
条件转移指令:
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:进行比较的两个数放入锁存器A、B;偏移量放入 Imm
EX:运算,比较两个数
M:将目标PC值写回PC(左图没画全)
WB:空段
无条件转移指令:
IF:根据PC从指令Cache取指令至IF段的锁存器
ID:偏移量放入 Imm
EX:将目标PC值写回PC(左图没画全)
M:空段
WB:空段
例题
:
2. 流水线分类
3. 影响流水线的因素
资源冲突/冒险(结构相关)
解决方案:
1.后一相关指令暂停一周期
2.资源重复配置:
数据存储器+指令存储器
数据相关/冒险
RAW(写后读)
WAR(读后写)
WAW(写后写)
解决方案:
1.后一相关指令暂停- -周期
2.数据旁路控制相关/冒险
解决方案:
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. 超标量流水线
超标量流水线技术
超流水线技术
超长指令字
编译程序挖掘指令潜在的并行性需要采用多个处理部件
6. 注意点
流水线
按序流动时,
在RAW. WAR和WAW中.只可能出现RAW相关
非流水线时空图
流水线时空图
空间并行
:即资源重复,多个功能部件共同执行同一任务的不同部分
时间并行
:即时间重叠,多个功能部件在时间上相互错开,轮流重叠执行不同任务的相同分
所有的RISC采用流水线技术,部分CISC也采用流水线技术
RISC-定采用流水线技术,采用流水线技术的不一定是RISC
空操作 万金油