(计算机体系结构)第5章 CPU设计与实现
5.3 多级时序系统(X86)
指令周期
- 指令周期:取出并执行一条指令所需的全部时间
- 指令周期数据流
取值周期数据流
PC->MAR
1->R
M(MAR) ->MDR
PC + 1 -> PC
MDR -> IR
OP(IR) ->ID - 机器周期:所有指令执行过程中的一个基准时间
- 一个指令周期包含若干个机器周期;
一个机器周期包含若干个时钟周期。
控制方式
- 同步控制方式
任一微操作均由 统一基准时标 的时序信号控制.
(1) 采用定长的机器周期
以最长的微操作序列和最繁的微操作作为标准机器周期内节拍数相同
(2) 采用不定长的机器周期
机器周期内 节拍数不等
(3) 采用*控制和局部控制相结合的方法 - 异步控制方式
无基准时标信号
无固定的周期节拍和严格的时钟同步
采用 应答方式 - 联合控制方式
同步与异步相结合 - 人工控制方式
(1) Reset
(2) 连续 和 单条 指令执行转换开关
(3) 符合停机开关
多级时序系统实例分析
- 8085
小结:
以一条输出指令(I/O 写)为例
机器周期 M1 取指令操作码
机器周期 M2 取设备地址
机器周期 M3 执行ACC的内容写入设备
5.4 MIPS CPU的简单实现
处理器的指令字长
32位,包含
- 32个32位通用寄存器R0~R31(R0值为0);
- 1个32位的指令寄存器IR;
- 1个32位的程序计数器PC
处理器功能及指令系统定义
指令执行
将指令执行划分为5个阶段
- 取指令周期
- 指令译码/读寄存器周期
- 执行/有效地址计算周期
- 存储器访问/分支完成周期
-
写回周期
- 取指令周期(IF)
- 指令译码/读寄存器周期(ID)
- 执行/有效地址计算周期(EX)
操作为:
存储器访问: ALUoutput←A+Imm
寄存器-寄存器ALU: ALUoutput←A op B
寄存器-立即值ALU: ALUoutput←A op Imm
分支操作: ALUoutput←NPC+Imm
Cond←(A op 0) - 访存/分支操作完成周期(MEM)
- 访存操作:
Load: LMD←Mem[ALUoutput]
Store: Mem[ALUoutput]←B - 分支操作:
if (Cond) PC←ALUoutput
else PC←NPC
- 写回周期(WB)
操作为:
• 寄存器-寄存器型ALU指令:
Reg[IR16…20]←ALUoutput
• 寄存器-立即值型ALU指令:
Reg[IR11…15]←ALUoutput
• Load指令:
Reg[IR11…15]←LMD
性能分析
- 在该数据通路上,
分支指令需要4个时钟周期
其它指令需要5个时钟周期
假设分支指令占总指令数的12%,问CPI=?
CPI=4×12%+5×(1-12%)=4.88
结论:就性能和硬件开销而言,上述实现不是一种优化实现 - 改进方法
(1)在Mem周期完成ALU指令
假设ALU指令数占指令总数的44%,则在时钟周
期时间不变的同时, CPI可以降低至4.44
(2)如要进一步降低CPI,可能需要延长时钟周期时间,使每个时钟周期中能够完成更多的工作
(3)采用单周期实现,可以将CPI降低为1,但时钟周期时间却会增加为原来的5倍(一般不采用这种方法)
◆ 流水技术