实现MIPS32指令集中的转移指令,并验证实现效果。...
分类:
其他好文 时间:
2014-09-29 03:04:37
阅读次数:
224
通过进一步完善OpenMIPS的代码实现转移指令。...
分类:
其他好文 时间:
2014-09-22 01:33:23
阅读次数:
649
为了尽量减少转移指令带来的损失,OpenMIPS在译码阶段进行转移条件的判断,如果满足转移条件,那么修改PC为转移目标地址。
在译码阶段多了转移判断的步骤,此外,PC的取值变为三种情况。
情况一:PC等于PC+4。这属于一般情况,每个时钟周期PC加4,指向下一条指令。
情况二:PC保持不变。当流水线暂停的时候,就会发生这种情况,参考第7章中流水线暂停的实现。
情况三:PC等于转移判断的结果。如果是转移指令,且满足转移条件,那么会将转移目标地址赋给PC。...
分类:
其他好文 时间:
2014-09-18 14:52:28
阅读次数:
219
本章将为OpenMIPS处理器添加转移指令,转移指令包括跳转、分支两种,区别在于前者是绝对转移,后者是相对转移,但实现方法是相似的。转移指令涉及延迟槽,所以首先在8.1节介绍了延迟槽的概念,接着在8.2节对MIPS32指令集架构中定义的所有转移指令的格式、作用、用法进行了说明。在8.3节介绍了OpenMIPS实现转移指令的思路,以及对数据流图、系统结构的修改。8.4节通过修改代码实现了转移指令,最后通过两个测试程序,验证转移指令是否实现正确。...
分类:
其他好文 时间:
2014-09-15 01:07:38
阅读次数:
1780
通过一个测试程序验证为OpenMIPS添加的除法指令是否实现正确...
分类:
其他好文 时间:
2014-09-12 13:31:08
阅读次数:
187
小伙伴们,福利来了,从今天开始,《自己动手写CPU》开展晒书评送书活动,在亚马逊、京东、当当三大图书网站上,发表《自己动手写CPU》书评的前十名读者,均可获赠《步步惊芯——软核处理器内部设计分析》一书,大家踊跃参与吧!...
分类:
其他好文 时间:
2014-09-11 23:52:01
阅读次数:
277
通过修改OpenMIPS译码阶段、执行阶段的代码,实行了除法指令...
分类:
其他好文 时间:
2014-09-10 14:18:10
阅读次数:
243
DIV模块的主要部分是一个状态机,共有四个状态,如下,状态转换如图7-18所示。
? DivFree:除法模块空闲
? DivByZero:除数是0
? DivOn:除法运算进行中
? DivEnd:除法运算结束...
分类:
其他好文 时间:
2014-09-09 16:12:59
阅读次数:
241
OpenMIPS设计采用试商法实现除法运算,对于32位的除法,需要至少32个时钟周期才能得到除法结果。本节介绍试商法的一般过程。...
分类:
其他好文 时间:
2014-09-05 14:26:51
阅读次数:
253
本节将通过一个测试程序验证为OpenMIPS添加的乘累加、乘累减指令是否实现正确...
分类:
其他好文 时间:
2014-09-04 14:58:29
阅读次数:
236