基于ORBIS32指令集的五级流水线CPU设计
发布时间:2017-07-25 23:14
本文关键词:基于ORBIS32指令集的五级流水线CPU设计
更多相关文章: OpenRISC RISC 五级流水线 数据相关 CPU
【摘要】:近年来国内对CPU的研究日益增多,也有着许多开源CPU架构以及开源CPU产品。基于开源的CPU架构设计一款自主可控的CPU是本文的主要思路。这样做的好处是:一是指令集和工具链被大多人使用,二是可以根据自身需求自主地定制CPU。本次的设计从CPU指令集开始,我们研究了ORBIS32指令集规律。根据规律我们设计了CPU的译码模块,通过译码模块译码出控制信号和操作数地址。同时在译码模块中对分支跳转、ALU计算、LSU访问做了很多的前置优化。我们还重新设计了ALU模块,将ALU的功能模块划分成多个子模块便于ASIC的替换。在设计寄存器回写信号的时候,我们同时也设计了回写信号TAG,用来控制流水线暂停的处理。在LSU操作即访存操作模块,我们设计了访存流水线,使CPU在访存阶段不需要暂停。针对于CPU设计过程中的几个关键问题,我们做了具体的分析。根据实验的结果,我们很好的解决了数据相关、Load-used数据相关和分支跳转的问题。我们通过设计巧妙的汇编程序来测试这些问题。通过设计回写数据TAG,用来对乘法计算、访存阶段以及其他不能在执行阶段得到结果的运算作流水线暂停判断。最后,我们利用软件测试的方法对CPU进行了可测试性设计。我们设计了自检测的汇编程序集用来做测试激励以及参考模型。我们设计了检测器用来检测最终的结果。通过实验的检测,我们已经完成了CPU设计的测试部分,验证了CPU的功能。
【关键词】:OpenRISC RISC 五级流水线 数据相关 CPU
【学位授予单位】:吉林大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP332
【目录】:
- 摘要4-5
- Abstract5-10
- 第一章 绪论10-16
- 1.1 RISC处理器概述10-11
- 1.2 RISC处理器的发展现状11-12
- 1.3 本课题的研究意义12-14
- 1.4 本课题完成的工作14
- 1.5 本文的内容安排14-16
- 第二章 ORBIS32 CPU设计概述16-32
- 2.1 OpenRISC指令集16-20
- 2.2 ORBIS32 CPU架构20-23
- 2.3 OpenRISC 1000存储系统23-30
- 2.3.1 OpenRISC 1000的MMU分析25-28
- 2.3.2 OpenRISC 1000的Cache分析28-30
- 2.4 ORBIS32 CPU的五级流水线设计30-31
- 2.5 总结31-32
- 第三章 CPU整体设计32-45
- 3.1 取指阶段模块的设计32-35
- 3.1.1 genpc模块设计32-34
- 3.1.2 fetch模块设计34-35
- 3.2 译码模块设计35-38
- 3.2.1 aluop设计35-36
- 3.2.2 立即数36
- 3.2.3 加载存储类36-37
- 3.2.4 分支跳转类37
- 3.2.5 其他37-38
- 3.3 操作数选通器38-39
- 3.4 alu模块的设计39-41
- 3.5 lsu模块的设计41-43
- 3.6 wb_mux模块的设计43-44
- 3.7 总结44-45
- 第四章 CPU设计关键问题45-54
- 4.1 数据相关问题45-48
- 4.2 必须暂停的流水线48-51
- 4.3 分支跳转问题51-53
- 4.4 总结53-54
- 第五章 CPU可测试性设计54-60
- 5.1 本文的CPU可测试系统54-58
- 5.2 CPU的测试结果58-59
- 5.3 总结59-60
- 第六章 总结60-61
- 致谢61-62
- 参考文献62-66
- 研究成果66
【相似文献】
中国期刊全文数据库 前10条
1 洪龙;陈燕俐;朱梧i,
本文编号:573739
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/573739.html