购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5 本书的分析方法

关于本书的分析方法,在此给予说明。之前有学者著《CPU源代码分析与芯片设计及Linux移植》一书,作者在那本书中对OR1200的源代码进行过一个模块一个模块的分析,给出注释,本书不打算采用这种方法。笔者借鉴了软件的分析方法,在当前很多的软件设计中采用的是事件驱动的方法,按钮被点击了,就会对应一个按钮点击事件,可以查看对应的事件处理函数,这样把函数与具体的事件联系起来,阅读代码会更加容易,对于处理器分析而言这里的事件可以解读为指令,来了一条指令如何处理,通过对指令处理过程的分析,达到对处理器内部部分模块工作原理的掌握,但是分析完所有指令的处理过程,我们就实现了对处理器内部全部模块工作原理的完全掌握了。这种分析方法笔者称之为指令驱动的分析方法。

指令驱动的分析方法要求我们对每一条指令都进行分析,而对于单个指令的分析,本书将紧密结合流水线的工作过程,采用流水线驱动的分析方法。因为每一条指令都要经过流水线的各个阶段,故而通过分析指令在流水线每个阶段需要完成的工作,也就明白了指令的实现过程。

综上所述,本书的分析方法概括地讲就是:宏观上采用指令驱动的分析方法,微观上采用流水线驱动的分析方法。

基于上述思路本书完成了对OR1200处理器的分析,在第2章建立了我们的实验环境,主要是一个OR1200可以运行的最小系统及编译链接的工具。在第3章对最小系统中的QMEM模块进行了分析,并给出了理想的取指过程。

在第4~9章中我们将按照指令的类别分别进行分析,分析的步骤基本一样:首先写一段简单的测试代码,测试代码包含我们即将分析的指令类别中的全部或部分指令,然后使用OR1KSim模拟器查看执行情况,接下来对这一类指令中有代表性的若干条指令按照流水线的三个阶段进行分析,主要分析指令执行过程中在流水线各个阶段引起的信号变化,以及通过这些变化的信号是如何逐步实现指令目标的。通过对第4~9章的学习读者可以明白OR1200中全部指令的执行过程,进而理解OR1200中CPU模块的工作原理、工作过程。

在剩下的章节中本书分别介绍了OR1200中除CPU模块外的其余模块,包括:MMU、Cache、Store Buffer、Wishbone总线接口单元、可编程中断控制器(PIC)、计时器单元(TT)和电源管理(PM)等模块。这些模块有的简单有的复杂,对于简单模块本书就直接分析源代码,如:PM模块;对于复杂模块,本书采用的是情景分析法,分析使用该模块的各种情景及各种情景下模块的工作过程,从而达到了解该模块原理的目的。需要说明一点,由于调试模块(DU)涉及大量JTAG的知识,本书专注于对处理器工作原理的讲解,所以对DU模块就略过不讲。 wiDlSp9Irmpl9zDu/uKiKqaAvCQPi33kVnnQbCKzYc8BpxQNmzaiuJFLwfxdrqkZ

点击中间区域
呼出菜单
上一章
目录
下一章
×