- 博客(13)
- 资源 (18)
- 收藏
- 关注
原创 自己动手写CPU之第八阶段(2)——转移指令实现思路
为了尽量减少转移指令带来的损失,OpenMIPS在译码阶段进行转移条件的判断,如果满足转移条件,那么修改PC为转移目标地址。在译码阶段多了转移判断的步骤,此外,PC的取值变为三种情况。情况一:PC等于PC+4。这属于一般情况,每个时钟周期PC加4,指向下一条指令。情况二:PC保持不变。当流水线暂停的时候,就会发生这种情况,参考第7章中流水线暂停的实现。情况三:PC等于转移判断的结果。如果是转移指令,且满足转移条件,那么会将转移目标地址赋给PC。
2014-09-18 14:12:07 2899 2
原创 自己动手写CPU之第八阶段(1)——转移指令介绍
本章将为OpenMIPS处理器添加转移指令,转移指令包括跳转、分支两种,区别在于前者是绝对转移,后者是相对转移,但实现方法是相似的。转移指令涉及延迟槽,所以首先在8.1节介绍了延迟槽的概念,接着在8.2节对MIPS32指令集架构中定义的所有转移指令的格式、作用、用法进行了说明。在8.3节介绍了OpenMIPS实现转移指令的思路,以及对数据流图、系统结构的修改。8.4节通过修改代码实现了转移指令,最后通过两个测试程序,验证转移指令是否实现正确。
2014-09-15 00:08:41 10032 9
原创 福利来了,晒书评送书活动启动了
小伙伴们,福利来了,从今天开始,《自己动手写CPU》开展晒书评送书活动,在亚马逊、京东、当当三大图书网站上,发表《自己动手写CPU》书评的前十名读者,均可获赠《步步惊芯——软核处理器内部设计分析》一书,大家踊跃参与吧!
2014-09-11 23:33:30 1884 5
原创 自己动手写CPU之第七阶段(10)——除法指令实现过程1
DIV模块的主要部分是一个状态机,共有四个状态,如下,状态转换如图7-18所示。 DivFree:除法模块空闲 DivByZero:除数是0 DivOn:除法运算进行中 DivEnd:除法运算结束
2014-09-09 14:19:47 4266 4
原创 自己动手写CPU之第七阶段(9)——除法指令说明及实现思路
OpenMIPS设计采用试商法实现除法运算,对于32位的除法,需要至少32个时钟周期才能得到除法结果。本节介绍试商法的一般过程。
2014-09-05 13:23:37 5884
原创 自己动手写CPU之第七阶段(7)——乘累加指令的实现
完善补充了OpenMIPS的代码,实现了MIPS32指令集中的乘累加、乘累减指令,共有四条:madd、maddu、msub、msubu
2014-09-03 13:40:33 2991
原创 自己动手写CPU之第七阶段(6)——乘累加指令实现思路
乘累加、乘累减指令有4条,包括:madd、maddu、msub、msubu,实现思路:计划在流水线执行阶段采用两个时钟周期完成运算,第一个时钟周期进行乘法运算,第二个时钟周期将乘法结果与HI、LO寄存器进行加/减法。
2014-09-02 13:03:36 3492
Jlink-v8固件烧写AT91-ISP v1.13及V8固件
2017-02-26
OpenMIPS教学版讲解
2015-09-22
DE2上使用OC8051运行点灯程序
2013-03-23
DE2上使用OC8051运行LED点灯程序
2013-03-23
OR1200各模块之间的连接关系图,使用VISIO绘制,理解源代码必备
2013-02-26
QMIS项目文件管理系统part2
2012-04-15
QMIS项目文档管理系统part1
2012-04-15
Ext.net+swfupload实现文件上传
2011-12-03
通过Openh323开发自己的H.323协议栈.pdf
2010-01-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人