"CPU设计实例"
本资源涉及MIPSI指令集32位CPU设计实例,赵继业老师讲述。该设计实例具有全32位操作,32个32位通用寄存器,所有指令和地址全为32位。该CPU还具有静态流水线(3~5级)、Forwarding技术、片内L1 Cache、指令和数据各4KByte的硬件初始化。
MIPS指令格式介绍:
* R类型指令(寄存器):OP rs rt rd shamt funct
* I类型指令(立即数):OP rs rt Imm
* J类型指令(跳转):OP target
所支持的指令包括:
* 算术逻辑类指令:ADD、ADDI、SUB、AND、OR、NOR、SLL、SRL、SRA
* 访存类指令:LW、SW、MTC0、MFC0、CACHE(0、1)
* 跳转类指令:J、JR、BEQ、BGTZ、GLEZ
* 其他指令:ERET、TEQ
流水线结构单条指令运行步骤:
1. Fetch & Decode(取指并译码)
2. Issue(发射)
3. Execute & Writeback(执行并写回)
MIPS存储系统体系和管理:
* 操作方式:用户态、核心态
* 功能模块结构:
+ 取指模块(Fetch)
+ 译码模块(Decode)
+ 发射模块(Issue)
+ 执行模块(Execute)
+ 写回模块(Writeback)
取指模块(Fetch):
* PC-> 指令Cache -> 指令-> 译码
* PC的来源:PC+4(通常)、跳转指令(目标地址)、例外处理(例外处理向量入口地址、EPC内容)
* 停止取指的情况:发射堵塞、特殊指令
译码模块(Decode):
* 由MIPS指令转化为CPU内部操作码
* 内部操作码的定义:应当分组(ALU、MEM、Branch)
发射模块(Issue):
* 静态流水线– 遇到相关情况就停止发射,直到相关解决
* 相关情况分析:ALU和跳转指令一拍完成
Forwarding技术:
* 什么是Forwarding?– 发射时
该设计实例具有很强的指令级并行性和流水线技术,可以提高CPU的性能和效率。