封面
版权信息
前言
第1章 OpenRISC介绍
1.1 开源软核处理器
1.2 OpenRISC 1000架构
1.3 OR1200——OpenRISC 1000架构的一个实现
1.3.1 寻址模式
1.3.2 位和字节次序
1.3.3 寄存器集
1.3.4 指令集
1.3.5 异常模型
1.4 OR1200代码组织
1.5 本书的分析方法
第2章 实验环境的搭建
2.1 GNU开发工具链的安装
2.2 GNU开发工具链的使用
2.2.1 一个简单的汇编程序
2.2.2 编译及ELF文件介绍
2.2.3 链接
2.2.4 Makefile文件
2.2.5 使用OR1KSim模拟器运行程序
2.3 创建OR1200运行的最小系统
2.3.1 最小系统的创建
2.3.2 运行仿真
2.3.3 修改Makefile
2.3.4 观察流水线
2.3.5 流水线介绍
2.4 本书的一些说明及定义
2.4.1 一些说明
2.4.2 一些定义
第3章 QMEM剖析
3.1 QMEM的作用
3.2 Wishbone总线快速了解
3.3 QMEM的Wishbone总线接口
3.3.1 QMEM与CPU、IMMU的连接
3.3.2 QMEM与ICache的连接
3.3.3 QMEM与CPU、DMMU的连接
3.3.4 QMEM与DCache的连接
3.4 QMEM的内部RAM
3.5 复位后取第一条指令的过程分析
3.5.1 复位信号有效阶段
3.5.2 复位信号无效后的第一个时钟周期上升沿
3.5.3 复位信号无效后的第一个时钟周期的组合逻辑阶段
3.6 第二条及后续指令的读取过程分析
3.6.1 复位信号无效后的第二个时钟周期的上升沿
3.6.2 复位信号无效后的第二个时钟周期的组合逻辑阶段
第4章 数据处理类指令剖析
- APP免费
4.1 数据处理类指令说明
- APP免费
4.2 分析用例
- APP免费
4.3 流水线的简单模型
- APP免费
4.4 l.add指令分析
- APP免费
4.4.1 l.add取指阶段的组合逻辑输出
- APP免费
4.4.2 l.add取指阶段的时序逻辑输出
- APP免费
4.4.3 l.add译码阶段的组合逻辑输出
- APP免费
4.4.4 l.add译码阶段的时序逻辑输出
- APP免费
4.4.5 l.add执行阶段的组合逻辑输出
- APP免费
4.4.6 l.add执行阶段的时序逻辑输出
- APP免费
4.4.7 第一条指令分析小结
- APP免费
4.5 l.sfeqi指令分析
- APP免费
4.5.1 l.sfeqi取指阶段的组合逻辑输出
- APP免费
4.5.2 l.sfeqi取指阶段的时序逻辑输出
- APP免费
4.5.3 l.sfeqi译码阶段的组合逻辑输出
- APP免费
4.5.4 l.sfeqi译码阶段的时序逻辑输出
- APP免费
4.5.5 l.sfeqi执行阶段的组合逻辑输出
- APP免费
4.5.6 l.sfeqi执行阶段的时序逻辑输出
- APP免费
4.5.7 第二条指令分析小结
- APP免费
4.6 ALU分析
- APP免费
4.7 流水线数据相关的解决方法
- APP免费
4.8 定制属于自己的指令
- APP免费
4.9 不完整流水线数据通路图
- APP免费
第5章 特殊寄存器访问类指令剖析
- APP免费
5.1 OR1200中的特殊寄存器
- APP免费
5.2 第0组特殊寄存器
- APP免费
5.3 特殊寄存器访问类指令说明
- APP免费
5.4 分析用例
- APP免费
5.5 l.mfspr指令分析
- APP免费
5.5.1 l.mfspr取指阶段的组合逻辑输出
- APP免费
5.5.2 l.mfspr取指阶段的时序逻辑输出
- APP免费
5.5.3 l.mfspr译码阶段的组合逻辑输出
- APP免费
5.5.4 l.mfspr译码阶段的时序逻辑输出
- APP免费
5.5.5 l.mfspr执行阶段第1个时钟周期的组合逻辑输出
- APP免费
5.5.6 l.mfspr执行阶段第1个时钟周期的时序逻辑输出
- APP免费
5.5.7 l.mfspr执行阶段第2个时钟周期的组合逻辑输出
- APP免费
5.5.8 l.mfspr执行阶段第2个时钟周期的时序逻辑输出
- APP免费
5.5.9 l.mfspr指令分析小结
- APP免费
5.6 l.mtspr指令分析
- APP免费
5.6.1 l.mtspr执行阶段的组合逻辑输出
- APP免费
5.6.2 l.mtspr执行阶段的时序逻辑输出
- APP免费
5.7 SPRS分析
- APP免费
5.8 完善流水线数据通路图
- APP免费
第6章 转移类指令剖析
- APP免费
6.1 延迟槽
- APP免费
6.2 转移类指令说明
- APP免费
6.3 分析用例
- APP免费
6.4 l.bf指令分析
- APP免费
6.4.1 l.bf取指阶段的组合逻辑输出
- APP免费
6.4.2 l.bf取指阶段的时序逻辑输出
- APP免费
6.4.3 l.bf译码阶段的组合逻辑输出
- APP免费
6.4.4 l.bf译码阶段的时序逻辑输出
- APP免费
6.4.5 l.bf执行阶段第1个时钟周期的组合逻辑输出
- APP免费
6.4.6 l.bf执行阶段第2个时钟周期的组合逻辑输出
- APP免费
6.4.7 l.bf执行阶段第2个时钟周期的时序逻辑输出
- APP免费
6.4.8 l.bf指令分析小结
- APP免费
6.5 l.jalr指令分析
- APP免费
6.5.1 l.jalr取指阶段的组合逻辑输出
- APP免费
6.5.2 l.jalr取指阶段的时序逻辑输出
- APP免费
6.5.3 l.jalr译码阶段的组合逻辑输出
- APP免费
6.5.4 l.jalr译码阶段的时序逻辑输出
- APP免费
6.5.5 l.jalr执行阶段第1个时钟周期的组合逻辑输出
- APP免费
6.5.6 l.jalr执行阶段第2个时钟周期的组合逻辑输出
- APP免费
6.5.7 l.jalr执行阶段第2个时钟周期的时序逻辑输出
- APP免费
6.6 转移类指令对处理器效率的影响
- APP免费
6.7 继续完善流水线数据通路图
- APP免费
第7章 异常处理类指令剖析
- APP免费
7.1 OR1200中的异常分类
- APP免费
7.2 OR1200中的异常处理过程
- APP免费
7.3 异常处理类指令说明
- APP免费
7.4 分析用例
- APP免费
7.5 EXCEPTION模块的作用
- APP免费
7.6 l.sys指令分析
- APP免费
7.6.1 l.sys取指阶段的组合逻辑输出
- APP免费
7.6.2 l.sys取指阶段的时序逻辑输出
- APP免费
7.6.3 l.sys译码阶段的组合逻辑输出
- APP免费
7.6.4 l.sys译码阶段的时序逻辑输出
- APP免费
7.6.5 l.sys执行阶段的组合逻辑输出
- APP免费
7.6.6 l.sys执行阶段的时序逻辑输出
- APP免费
7.6.7 异常处理过程——FLU1状态
- APP免费
7.6.8 异常处理过程——FLU2状态
- APP免费
7.6.9 异常处理过程——FLU3状态
- APP免费
7.6.10 异常处理过程——FLU4状态
- APP免费
7.6.11 异常处理过程——FLU5状态
- APP免费
7.6.12 l.sys分析小结
- APP免费
7.7 l.trap指令分析
- APP免费
7.7.1 l.trap译码阶段的时序逻辑输出
- APP免费
7.7.2 l.trap执行阶段的组合逻辑输出
- APP免费
7.7.3 l.trap执行阶段的时序逻辑输出
- APP免费
7.7.4 异常处理过程——FLU1状态
- APP免费
7.7.5 异常处理过程——FLU2状态
- APP免费
7.7.6 l.trap分析小结
- APP免费
7.8 l.rfe指令分析
- APP免费
7.8.1 l.rfe取指阶段的组合逻辑输出
- APP免费
7.8.2 l.rfe取指阶段的时序逻辑输出
- APP免费
7.8.3 l.rfe译码阶段的组合逻辑输出
- APP免费
7.8.4 l.rfe译码阶段的时序逻辑输出
- APP免费
7.8.5 l.rfe执行阶段第1个时钟周期的组合逻辑输出
- APP免费
7.8.6 l.rfe执行阶段第2个时钟周期的组合逻辑输出
- APP免费
7.8.7 l.rfe执行阶段第2个时钟周期的时序逻辑输出
- APP免费
7.9 继续完善流水线数据通路图
- APP免费
第8章 乘法、除法类指令剖析
- APP免费
8.1 串行乘法与并行乘法
- APP免费
8.1.1 串行乘法
- APP免费
8.1.2 并行乘法
- APP免费
8.2 串行除法与并行除法
- APP免费
8.2.1 串行除法
- APP免费
8.2.2 并行除法
- APP免费
8.3 乘法、除法类指令说明
- APP免费
8.4 OR1200中关于乘法、除法的一些配置
- APP免费
8.5 分析用例
- APP免费
8.6 l.mul指令分析(串行乘法)
- APP免费
8.6.1 l.mul取指阶段的组合逻辑输出
- APP免费
8.6.2 l.mul取指阶段的时序逻辑输出
- APP免费
8.6.3 l.mul译码阶段的组合逻辑输出
- APP免费
8.6.4 l.mul译码阶段的时序逻辑输出
- APP免费
8.6.5 l.mul执行阶段第1个时钟周期的组合逻辑输出
- APP免费
8.6.6 l.mul执行阶段第1个时钟周期的时序逻辑输出
- APP免费
8.6.7 l.mul执行阶段第2个时钟周期的组合逻辑输出
- APP免费
8.6.8 l.mul执行阶段第2个时钟周期的时序逻辑输出
- APP免费
8.6.9 l.mul执行阶段第33个时钟周期的时序逻辑输出
- APP免费
8.6.10 l.mul执行阶段第34个时钟周期的组合逻辑输出
- APP免费
8.6.11 l.mul执行阶段第34个时钟周期的时序逻辑输出
- APP免费
8.6.12 l.mul执行阶段第35个时钟周期的时序逻辑输出
- APP免费
8.6.13 l.mul分析小结
- APP免费
8.7 l.mul指令分析(并行乘法)
- APP免费
8.7.1 l.mul执行阶段第1个时钟周期的组合逻辑输出(并行乘法)
- APP免费
8.7.2 l.mul执行阶段第1个时钟周期的时序逻辑输出(并行乘法)
- APP免费
8.7.3 l.mul执行阶段第2个时钟周期的组合逻辑输出(并行乘法)
- APP免费
8.7.4 l.mul执行阶段第2个时钟周期的时序逻辑输出(并行乘法)
- APP免费
8.7.5 l.mul执行阶段第3个时钟周期的时序逻辑输出(并行乘法)
- APP免费
8.7.6 l.mul执行阶段第4个时钟周期的组合逻辑输出(并行乘法)
- APP免费
8.7.7 l.mul执行阶段第4个时钟周期的时序逻辑输出(并行乘法)
- APP免费
8.7.8 l.mul执行阶段第5个时钟周期的时序逻辑输出(并行乘法)
- APP免费
8.7.9 l.mul分析小结(并行乘法)
- APP免费
8.8 l.mac指令分析
- APP免费
8.8.1 l.mac执行阶段第1个时钟周期的组合逻辑输出
- APP免费
8.8.2 l.mac执行阶段第1个时钟周期的时序逻辑输出
- APP免费
8.8.3 l.mac执行阶段第2个时钟周期的组合逻辑输出
- APP免费
8.8.4 l.mac执行阶段第2个时钟周期的时序逻辑输出
- APP免费
8.8.5 后l.mac执行阶段第1个时钟周期的时序逻辑输出
- APP免费
8.8.6 后l.mac执行阶段第2个时钟周期的时序逻辑输出
- APP免费
8.8.7 l.mac指令分析小结
- APP免费
8.9 l.div指令分析(串行除法)
- APP免费
8.10 继续完善流水线数据通路图
- APP免费
第9章 加载存储类指令剖析
- APP免费
9.1 加载存储类指令说明
- APP免费
9.2 分析用例
- APP免费
9.3 l.sb指令分析
- APP免费
9.3.1 l.sb取指阶段的组合逻辑输出
- APP免费
9.3.2 l.sb取指阶段的时序逻辑输出
- APP免费
9.3.3 l.sb译码阶段的组合逻辑输出
- APP免费
9.3.4 l.sb译码阶段的时序逻辑输出
- APP免费
9.3.5 l.sb执行阶段第1个时钟周期的组合逻辑输出
- APP免费
9.3.6 l.sb执行阶段第2个时钟周期的组合逻辑输出
- APP免费
9.3.7 l.sb执行阶段第2个时钟周期的时序逻辑输出
- APP免费
9.3.8 l.sb指令分析小结
- APP免费
9.4 l.lbs指令分析
- APP免费
9.4.1 l.lbs执行阶段第1个时钟周期的组合逻辑输出
- APP免费
9.4.2 l.lbs执行阶段第2个时钟周期的组合逻辑输出
- APP免费
9.4.3 l.lbs执行阶段第2个时钟周期的时序逻辑输出
- APP免费
9.4.4 l.lbs指令分析小结
- APP免费
9.5 对齐异常处理流程
- APP免费
9.6 三级流水线还是五级流水线
- APP免费
9.7 完整的流水线数据通路图
- APP免费
第10章 MMU剖析
- APP免费
10.1 MMU的作用及工作过程
- APP免费
10.2 TLB的作用及工作过程
- APP免费
10.3 IMMU分析
- APP免费
10.3.1 IMMU结构
- APP免费
10.3.2 IMMU中的特殊寄存器
- APP免费
10.3.3 OR1200中关于IMMU的一些配置
- APP免费
10.3.4 ITLB代码分析
- APP免费
10.3.5 IMMU使用情景
- APP免费
10.3.6 分析用例
- APP免费
10.3.7 IMMU使用情景之一——指令取指阶段ITLB命中且无页错误情况下IMMU工作分析
- APP免费
10.3.8 IMMU使用情景之二——指令取指阶段ITLB未命中情况下IMMU工作分析
- APP免费
10.3.9 IMMU使用情景之三——指令取指阶段ITLB命中但有页错误情况下IMMU工作分析
- APP免费
10.3.10 IMMU使用情景之四——l.mtspr执行阶段IMMU工作分析
- APP免费
10.3.11 IMMU使用情景之五——l.mfspr执行阶段IMMU工作分析
- APP免费
10.3.12 IMMU分析小结
- APP免费
10.4 DMMU分析
- APP免费
10.4.1 DTLB结构图
- APP免费
10.4.2 DMMU中的特殊寄存器
- APP免费
10.4.3 DMMU使用情景
- APP免费
第11章 基于OR1200的一个简单SOPC
- APP免费
11.1 简单SOPC的结构
- APP免费
11.2 Wishbone总线互联矩阵WB_CONMAX
- APP免费
11.3 挂接在互联矩阵WB_CONMAX下的RAM模块
- APP免费
11.4 SOPC顶层文件
- APP免费
11.5 ModelSim新建工程min_or1200_sopc
- APP免费
11.6 示例程序
- APP免费
第12章 ICache剖析
- APP免费
12.1 Cache基本知识
- APP免费
12.1.1 Cache的作用
- APP免费
12.1.2 Cache的结构与工作过程
- APP免费
12.2 OR1200中Cache简介
- APP免费
12.3 ICache结构
- APP免费
12.3.1 ICache模块与其余模块的连接关系
- APP免费
12.3.2 ICache中数据部分
- APP免费
12.3.3 ICache中控制部分
- APP免费
12.3.4 ICache数据部分与控制部分的对外接口
- APP免费
12.4 ICache中的特殊寄存器
- APP免费
12.5 ICache使用情景
- APP免费
12.6 分析用例
- APP免费
12.7 ICache使用情景之一——l.mtspr执行阶段ICache工作分析
- APP免费
12.7.1 执行阶段的组合逻辑输出
- APP免费
12.7.2 执行阶段的时序逻辑输出
- APP免费
12.8 ICache使用情景之二——指令取指阶段ICache失靶情况下ICache工作分析
- APP免费
12.8.1 第1个时钟周期的组合逻辑输出
- APP免费
12.8.2 第1个时钟周期的时序逻辑输出
- APP免费
12.8.3 第2个时钟周期的组合逻辑输出
- APP免费
12.8.4 第2个时钟周期的时序逻辑输出
- APP免费
12.8.5 第n个时钟周期的组合逻辑输出
- APP免费
12.8.6 第n个时钟周期的时序逻辑输出
- APP免费
12.8.7 第n+1个时钟周期的组合逻辑输出
- APP免费
12.8.8 第2n个时钟周期的组合逻辑输出
- APP免费
12.8.9 第2n个时钟周期的时序逻辑输出
- APP免费
12.8.10 第2n+1个时钟周期的组合逻辑输出
- APP免费
12.8.11 第3n个时钟周期的组合逻辑输出
- APP免费
12.8.12 第3n个时钟周期的时序逻辑输出
- APP免费
12.8.13 第3n+1个时钟周期的组合逻辑输出
- APP免费
12.8.14 第4n个时钟周期的组合逻辑输出
- APP免费
12.8.15 第4n个时钟周期的时序逻辑输出
- APP免费
12.8.16 第4n+1个时钟周期的组合逻辑输出
- APP免费
12.8.17 ICache失靶时工作过程小结
- APP免费
12.9 ICache 使用情景之三——指令取指阶段 ICache 命中情况下ICache工作分析
- APP免费
12.9.1 第1个时钟周期的组合逻辑输出
- APP免费
12.9.2 第1个时钟周期的时序逻辑输出
- APP免费
12.9.3 第2个时钟周期的组合逻辑输出
- APP免费
12.10 ICache使用情景之四——指令取指阶段内存页禁止缓存情况下ICache工作分析
- APP免费
12.10.1 第1个时钟周期的组合逻辑输出
- APP免费
12.10.2 第1个时钟周期的时序逻辑输出
- APP免费
12.10.3 第2个时钟周期的组合逻辑输出
- APP免费
12.10.4 第2个时钟周期的时序逻辑输出
- APP免费
12.10.5 第3个时钟周期的组合逻辑输出
- APP免费
12.10.6 第n个时钟周期的组合逻辑输出
- APP免费
12.10.7 第n个时钟周期的时序逻辑输出
- APP免费
第13章 DCache剖析
- APP免费
13.1 DCache的特别之处
- APP免费
13.2 DCache结构
- APP免费
13.2.1 DCache模块与其余模块的连接关系
- APP免费
13.2.2 DCache中数据部分
- APP免费
13.2.3 DCache中控制部分
- APP免费
13.2.4 DCache数据部分与控制部分的对外接口
- APP免费
13.3 DCache中的特殊寄存器
- APP免费
13.4 DCache使用情景
- APP免费
13.5 分析用例
- APP免费
13.5.1 修改已有的简单SOPC
- APP免费
13.5.2 分析用例
- APP免费
13.6 DMMU地址翻译
- APP免费
13.7 DCache使用情景之一——存储指令执行阶段DCache失靶
- APP免费
13.7.1 通写法下DCache工作过程分析
- APP免费
13.7.2 回写法下DCache工作过程分析
- APP免费
13.8 DCache使用情景之二——存储指令执行阶段DCache命中
- APP免费
13.8.1 通写法下DCache工作过程分析
- APP免费
13.8.2 回写法下DCache工作过程分析
- APP免费
13.9 DCache使用情景之三——l.mtspr指令写DCache中特殊寄存器
- APP免费
13.9.1 通写法策略下指令l.mtspr写DCBIR、DCBFR的过程分析
- APP免费
13.9.2 回写法策略下指令l.mtspr写DCBIR的过程分析
- APP免费
13.9.3 回写法策略下指令l.mtspr写DCBWR的过程分析
- APP免费
13.9.4 回写法策略下指令l.mtspr写DCBFR的过程分析
- APP免费
13.10 DCache分析小结
- APP免费
第14章 Store Buffer(SB)剖析
- APP免费
14.1 SB模块的作用与工作过程
- APP免费
14.2 SB模块的结构
- APP免费
14.2.1 SB模块的对外连接关系
- APP免费
14.2.2 SB模块内部结构
- APP免费
14.2.3 SB模块有关的宏定义
- APP免费
14.3 示例程序
- APP免费
14.4 SB模块代码分析
- APP免费
14.4.1 FIFO分析
- APP免费
14.4.2 SB分析
- APP免费
第15章 WB_BIU剖析
- APP免费
15.1 WB_BIU模块的对外连接关系
- APP免费
15.2 Wishbone寄存反馈总线周期
- APP免费
15.3 WB_BIU代码分析
- APP免费
15.3.1 WB_BIU中的有限状态机
- APP免费
15.3.2 总线时钟与处理器时钟不同时的处理代码
- APP免费
第16章 PM、TT、PIC剖析
- APP免费
16.1 电源管理模块PM分析
- APP免费
16.1.1 PM介绍
- APP免费
16.1.2 PM模块的对外连接关系、特殊寄存器及相关宏定义
- APP免费
16.1.3 PM代码分析
- APP免费
16.2 计时器单元TT分析
- APP免费
16.2.1 TT介绍
- APP免费
16.2.2 TT的对外连接关系及相关宏定义
- APP免费
16.2.3 TT代码分析
- APP免费
16.2.4 计时器中断响应过程
- APP免费
16.3 可编程中断控制器PIC分析
- APP免费
16.3.1 PIC介绍
- APP免费
16.3.2 PIC的对外连接关系及相关宏定义
- APP免费
16.3.3 PIC代码分析
- APP免费
参考文献
更新时间:2018-12-27 11:18:34