单周期处理器设计
参考资料
- 跟我一步一步实现简单的五级流水MIPS:https://github.com/hitwh-nscscc/simple-5stage-pipeline-MIPS-imple
- Build Your PC:https://zanpu.spencerwoo.com
专业名词
第一章
- Microarchitecture 微架构
- Superscalar 超标量
- IPC(Instructions Per Cycle) 一个周期可执行的指令
- 普通流水线≤1
- superscalar>1
- CPI(Cycles Per Instruction) 每条指令所需要的周期数,
- CPI = 1/IPC
- mis-prediction 预测失败
- penalty 惩罚
- n-way superscalar 每个周期从I-Cache取n条指令
- VLIW(Very Long Instructin Word) 超长指令字
- tradeoff 折中
- issue quenue 发射队列
- select 仲裁
- Unpipelined
- N stage Pipeline
- RAW(Read After Write) , true dependence 写后读
- WAR(Write After Read) , anti-dependence 读后写
- WAW(Write After Write), output- dependence 邂逅写
- control dependence 控制相关性
- bypass 旁路
- in-order 顺序
- out-of-order 乱序
- 超标量处理器的stages
- Frontend = Fetch + Decode
- Issue 发射,将指令送入到对应的功能单元
- IQ(Issue Quence)发射队列
- Function Unit
- ScoreBoard用来记录流水线中每个指令的执行情况
- WriteBack
- Register Renaming 寄存器重命名
- ARF(Architecture Register File) 逻辑寄存器
- PRF(Physical Register File) 物理寄存器 也叫 Future File因为分支预测和意外等原因,不一定会写回的寄存器
- Commit 一条指令被允许更改处理器的状态
- Architecture state(例如D-Cache)
- ROB 重排序缓冲
- PRF搬运到ARF
- retire 指令退休,一旦指令退休就无法回到之前状态
ScoreBoard
- Pending:表示指令结果还么有协会到逻辑寄存器
- F:一条指令在那个FU执行
- Result Position:一条指令到达FU的哪个阶段
Store Buffer (SB)
- 阶段总结
- Fetch
- Decode
- Register Renaming
- Dispath分发
- Issue发射
- Register File Read读寄存器
- Execute 执行
- Write back 写回
- Commit 提交
第二章 Cache
- temporal locality 时间相关性
- spatial locality 空间相关性
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!