- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 节拍宽度:按照微操作的要求,满 足信息沿数据通路从源寄存器传送 到目的寄存器所需的时间
IR 译码器 节 T0 拍 发 生 器 Tn CLK T0 T1 T2 T3 C0 flag CU
• 控制部件实现方式
– 组合逻辑电路 – 微程序设计
Cn
取指周期
间址周期
执行周期
指令周期
llxx@ustc.edu.cn 30
– 0->G
llxx@ustc.edu.cn 15
执行周期——访存指令
• ADD X: ACC与地址X的内容 相加,结果在ACC中
– – – – – – – – Ad(IR)->MAR 1->R M(MAR)->MDR ACC+MDR->ACC Ad(IR)->MAR 1->W ACC->MDR MDR->M(MAR) CU ACC
• 取数:MDRo、MARi 、MDRo、Yi • 计算:ACCo、ALUi • 写回:Zo、ACCi
llxx@ustc.edu.cn 27
时钟同步控制方式
• 指令执行的过程是顺序完成各个机器周期中的微操 作的过程 • 指令和微操作的执行由统一的时序信号控制
– 定长机器周期模式
• 所有机器周期的节拍数相等
IR
MAR
MDR
地址总线
数据总线 MEM R W
llxx@ustc.edu.cn
14
执行周期——非访存指令
• CLA: 清ACC
– 0->ACC
• COM: ACC取反
– /ACC->ACC
• SHR: ACC算术右移一位, 符号位不变
– L(ACC)->R(ACC), ACC0->ACC0 • CSL: ACC循环左移一位 – R(ACC)->L(ACC), ACC0->ACCn • STP:停机,标志触发器G置“0”
指令周期示意
• 遇到间接寻址的指令时,指令周期中有一段“间址周 期”用于访存取出有效地址。
llxx@ustc.edu.cn
10
多级时序系统
• 一个指令周期包含若干个机器周期,一个机器周期又包含 若干个时钟周期(节拍),每个指令周期内的机器周期数可 以不等,每个机器周期内的节拍数也可以不等。
llxx@ustc.edu.cn
– 多个机器周期 – 多个微操作
• CU的功能:产生各种控制信号(微指令) • CU的定时:按照微操作的顺序在不同的节拍发出 不同的控制信号 • 要好好研究各个指令的数据通路!!! • 作业:4(p366)、1(p387)、6,11,12
llxx@ustc.edu.cn 29
控制部件设计
• 任务:根据各个指令执行时在不 同节拍的微操作要求,生成各个 控制信号 • 指令译码 • 节拍发生器:在时钟控制下,使 CU按规定的节拍发出控制信号
CONTROLER
llxx@ustcቤተ መጻሕፍቲ ባይዱedu.cn 4
CPU组成(con’t)
• ALU:完成算术逻辑运算、移位等 • 寄存器
– 通用寄存器:运算
• X86:AX/BX/CX/DX 、CS/DS/SS/ES、SP/BP/SI/DI、
– 状态寄存器:flag (F)、PSW(工作方式、中断允 许) – 控制寄存器:PC(IP)、IR、MAR、MDR。。。 – 用户可见和不可见
– 多周期实现——将指令的执行过程划分成多个步骤,每个周期 完成一个步骤。n个CPU工作周期构成一个指令周期(本书的 模式)。
• 如取指周期、间址周期、执行周期、中断周期等 • CPU中设置标志触发器指示当前的工作周期
llxx@ustc.edu.cn
8
指令周期(con’t)
• 指令周期 vs. 机器周期 vs. CPU工作周期 vs. 总 线周期
控制部件设计
组合逻辑实现
微操作的节拍安排原则
• 顺序性:遵守微操作的先后次序
– 如先送地址,在发读写令
• 并行性:为了性能考虑,可以并行的微操 作尽量安排在一个节拍内
– 针对不同对象的微操作 – 注意总线冲突
C9 PC
C10 IR
C3
C1
C0~13 、 ALUop
• C0、C1、C2、C3、C4
llxx@ustc.edu.cn 21
ADD @X的控制-间址
C13 M D R C2 C5 M A R C12 ACC C6 C0 clk CU C4 flag C7 ALU ALUop C8 C11
C9 PC
11
指令周期的数据流与微操作
• 数据流:指令执行时数据的流动 • 微操作:各个机器周期所包含的动作
– 取指周期 – 间址周期 – 执行周期
• 各个指令不同,包括取数、计算、写结果等 • 以10条指令为例
– – – – 非访存指令:CLA, COM, SHR, CSL, STP 访存指令:ADD X, STA X, LDA X 转移指令:JMP X, BAN X 注意:采用直接寻址,并基于ACC操作
• PCo、MARi、MDRo、IRi
llxx@ustc.edu.cn 25
ADD @X的控制-间址
IRi PCi IR CU C0~13 、 ALUop PC flag clk MARi PCo MARo MDRi MAR 地址 总线 MDR 数据 总线 ACCi MDRo ACC ACCo Yi Y ALU ALUop Z ALUi Zo
– 输入
• • • • 时钟 指令寄存器(IR)的op域 标志:指示CPU的当前状态 中断、DMA等外部控制信号
控制单元的外特性
– 输出
• 微操作控制信号 • 总线控制信号(访存、I/O控制等)
llxx@ustc.edu.cn
19
ADD @X的控制-分散连接方式
C13 M D R C2 C5 M A R C12 ACC C6 C0 clk CU C4 flag C7 ALU ALUop C8 C11
– 不定长机器周期模式
• 不同机器周期的节拍数不等,如不同指令的执行周期的节拍数 可以不等
– 中央控制和局部控制模式
• 中央控制:多数指令的机器周期等长 • 局部控制:少数复杂指令的某些操作进行局部控制
– 局部时钟与全局时钟要同步(保持一定的比例关系)
llxx@ustc.edu.cn 28
小结
• CPU的结构与功能 • 指令的执行过程
– 写结果
• EA->MAR • REG ->MDR->MEM
MAR
MDR
地址总线
数据总线 MEM
• 数据通路连接方式
– 分散式 – 总线式
llxx@ustc.edu.cn
7
指令周期
• 执行一条指令所需的时间
– 通常,不同指令所需时间不同(如乘法操作的执行周期较长) – 单周期实现
• 定长单周期:一个周期一条指令,周期宽度以数据通路最长的指 令为准 • 不定长单周期:一个周期一条指令,周期宽度各个指令不同
llxx@ustc.edu.cn
CU
ACC
PC
IR
MAR
MDR
地址总线
数据总线 MEM R W
13
间址周期
• 取操作数的有效 地址
– 形式地址送往 MAR,Ad(IR)-> MAR – CU发读令,1->R – 得到有效地址, M(MAR) ->MDR – MDR->Ad(IR)
PC CU ACC
• IR、MAR、MDR等不可见
llxx@ustc.edu.cn
5
寄存器组织举例
llxx@ustc.edu.cn
6
CPU组成(con’t)
• 总线接口
– MAR、MDR – 取指
• PC->MAR • MEM->MDR->IR
CLK
CU REG PC IR
– 读操作数
• EA->MAR • MEM ->MDR->REG
计算机组成原理 第8、9、10章
中科大11系 李曦
内容
• • • • • CPU功能 CPU的结构 执行指令的过程 控制单元设计 流水线处理器技术(参见Hennessy本)
llxx@ustc.edu.cn
2
CPU功能
• 解释程序的指令,完成数据加工,产生系 统控制信号
– 取指:从内存的指令段中读取指令 – 译码:对op和地址域进行分析 – 执行:根据指令产生各种控制信号,完成数据 加工
• STA X: 将ACC存入X中
PC
IR
MAR
MDR 地址总线 数据总线 MEM R W
• LDA X: 将X中的内容读入ACC
– – – – Ad(IR)->MAR 1->R M(MAR) ->MDR MDR ->ACC
llxx@ustc.edu.cn
16
执行周期——转移指令
• JMP X: 无条件转移至X
• • • • • • 地址0送MAR,0->MAR 发写令,1->W 断点送MDR,PC->MDR 断点写入内存,MDR->M(MAR) 中断向量送PC,向量地址->PC 关中断,0->EINT
llxx@ustc.edu.cn
18
控制单元(CU)的功能($9.2)
• 在时钟控制下,产生完成各个微操作所需的控制 信号 • CU的外特性
• MDRo、 MARi 、 MDRo、 IRi
llxx@ustc.edu.cn 26
ADD @X的控制-执行
IRi PCi IR CU C0~13 、 ALUop PC flag clk MARi PCo MARo MDRi MAR 地址 总线 MDR 数据 总线 ACCi MDRo ACC ACCo Yi Y ALU ALUop Z ALUi Zo
– 机器周期( CPU工作周期 ):取指、间址、执行 – 时钟周期(T1/T2/T3/T4/Tw。。)、节拍、状态
• 机器性能:P=指令数×CPI×T
– 程序中的指令数由ISA和编译器确定 – CPI为平均值。CPI和时钟周期宽度由处理器的实现技 术确定
机器周期 /总线周期 指令周期
llxx@ustc.edu.cn 9
llxx@ustc.edu.cn
3
CPU的组成
• 按功能部件划分
– – – – 运算器(ALU) 寄存器(寄存器堆) 控制器(含中断控制) 系统总线接口等
ALU REG CTRL BUS INTERFACE
MEMORY
• 按数据流
– 数据通路(datapath) : 各种寄存器和运算器 – 控制器:组合电路控制逻 辑、微程序控制器
C0~13 、 ALUop
• 寄存器Y、Z的作用:保持ALU的操作数
llxx@ustc.edu.cn 24
ADD @X的控制-取指
IRi PCi IR CU C0~13 、 ALUop PC flag clk MARi PCo MARo MDRi MAR 地址 总线 MDR 数据 总线 ACCi MDRo ACC ACCo Yi Y ALU ALUop Z ALUi Zo
C10 IR
C3
C1
C0~13 、 ALUop
• C5、C1、C2、C3,得到EA
llxx@ustc.edu.cn 22
ADD @X的控制-执行
C13 M D R C2 C5 M A R C12 ACC C6 C0 clk CU C4 flag C7 ALU ALUop C8 C11
C9 PC
C10 IR
– 中断周期
• 保存PC至MEM中的堆栈等
• 参见8.2.2和9.1
llxx@ustc.edu.cn 12
取指周期
• 根据PC从MEM中 取指令
– PC->MAR – CU向MEM发读令, 1->R – 得到指令字, M(MAR)-> MDR – 指令字写入指令字 寄存器,MDR->IR – CU控制形成下一条 指令的地址, PC+1->PC
C9 PC
C10 IR
C3
C1
C0~13 、 ALUop
• 因为IR=MDR, 故省略了IR->MAR的路径
llxx@ustc.edu.cn 20
ADD @X的控制-取指
C13 M D R C2 C5 M A R C12 ACC C6 C0 clk CU C4 flag C7 ALU ALUop C8 C11
– Ad(IR)->PC
• BAN X: 如果前一条指令的执行结果为负 (即ACC最高位为“1”)则转移至X
– ACC0*Ad(IR)+/ACC0* (PC)->PC
llxx@ustc.edu.cn
17
中断周期
• CPU在中断周期检查是否有中断发生
– 动作:保存断点(PC)至MEM中的0地址单元, 硬件向量给出中断入口, 关中断
C3
C1
C0~13 、 ALUop
• 取数:C5、C1、C2 • 计算:C6、C7 • 写回:C8
llxx@ustc.edu.cn 23
ADD @X的控制-总线连接方式
IRi PCi IR CU PC flag clk MARi PCo MARo MDRi MAR 地址 总线 MDR 数据 总线 ACCi MDRo ACC ACCo Yi Y ALU ALUop Z ALUi Zo