



本章将对数据处理类指令的处理过程进行分析,通过分析了解流水线、寄存器文件RF模块、算术逻辑单元ALU模块等CPU内部模块的基本作用与实现等。数据处理类指令包含算术、逻辑、移位、比较、数据传送等指令,都可以在一个时钟周期内执行完成,通过分析我们发现其执行过程也很清晰明了。
本章首先对数据处理类指令进行罗列,说明各个指令的作用,然后会给出一个示例程序,其中使用到部分数据处理类指令,分析其执行效果,利用我们在第2章中建立的实验环境,可以编译示例程序,查看OR1KSim模拟器的执行效果,与之前分析的执行效果进行对比,同时得到可以在ModelSim中使用的存储器初始化文件,利用后者可以进行ModelSim仿真。在4.3节介绍了流水线的一般模型,从4.4节开始,将对数据处理类指令中有代表性的两条指令l.add、l.sfeqi进行分析,并且是按照流水线驱动的方式进行,分析结束后会指出其余数据处理类指令的处理过程与上面两条指令的不同之处。指令之间最大的不同的就是送往ALU的操作码不同,ALU要依据不同的操作码进行不同的运算,所以在4.6节对ALU模块进行了深入分析。在4.7节对流水线中存在的数据相关进行介绍,同时给出OR1200中的解决方法。有了这些基础,我们可以定制自己的指令,在4.8节介绍OR1200中的自定义指令,并定制一个计算32位数据奇偶校验位的指令。本章最后给出了OR1200中流水线数据通路图,由于我们只分析了数据处理类指令,所以本章给出的流水线数据通路图并不完整,在后续章节的分析中将逐步完善。