ARM三级流水线PC值

朽木可雕 2017-09-12 02:04:33
0 LDR R4 , [R5] ;Execute
4 MOV R0 , R1 ;Decode
8 SUB R2 , R2 , #4 ;Fetch
C LDR SP , =0x34000000
10 MOV R3 , R0


Cycle1 Cycle2 Cycle3
Fetch DECODE EXECUTE
LDR
MOV
SUB


当进入Cycle3阶段,LDR开始执行还没有执行完,PC的值是0x08还是0x0C
...全文
1559 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
vlicuichao 2017-09-26
  • 打赏
  • 举报
回复
应该是0X8
羽盛 2017-09-13
  • 打赏
  • 举报
回复
应该是0X8
本书由资深的计算机体系结构教育家Alan Clements博士编写,原书名为《计算机体系结构:原理与演变》(Computer Organization & Architecture: Themes and Variations),书中不仅覆盖单机系统的组成原理和系统结构的各个方面,还包括计算机的性能评价方法以及多发射、粗粒度并行等内容。作者希望本书能够适合电子工程(EE)、电子与计算机工程(ECE)、计算机科学(CS)等不同专业的教学需要。书中围绕基本概念、指令集体系结构、处理器组成和能效、存储与外设以及处理器级并行等五个核心问题将这些内容有条不紊地组织在一起,以便满足不同专业的教学需要。 中文版引进的时候综合考虑国内高校“计算机组成与结构”或类似课程的教学目标以及我们对本书的定位,对原书进行了适当裁剪和重新组合,分为两册:《计算机组成原理》和《计算机存储与外设》。 本书即为《计算机组成原理》,涵盖原书前三部分,共6章,主要介绍计算机系统的组成和体系结构的基本概念、指令系统以及处理器实现等涉及计算机组成原理课程的内容。 目录: 第1章 计算机系统体系结构 4 1.1 什么是计算机系统体系结构 7 1.2 体系结构和组成 11 1.2.1 计算机系统和技术 14 1.2.2 计算机体系结构在计算机科学中的地位 14 1.3 计算机的发展 16 1.3.1 机械计算机 17 1.3.2 机电式计算机 19 1.3.3 早期的电子计算机 19 1.3.4 微机和PC革命 20 1.3.5 摩尔定律和进步的历程 21 1.3.6 存储技术发展 22 1.3.7 普适计算 23 1.3.8 多媒体计算机 23 1.4 存储程序计算机 24 1.4.1 问题描述 24 1.4.2 解决方法 24 1.4.3 构造一个算法 26 1.4.4 计算机需要通过什么来解决问题 27 1.4.5 存储器 29 1.5 存储程序的概念 31 1.6 计算机系统概览 35 1.6.1 存储层次 35 1.6.2 总线 37 1.7 现代计算 39 本章小结 39 习题 40 第2章 计算机算术 42 2.1 数据是什么 43 2.1.1 位与字节 43 2.1.2 位模式 44 2.2 数字 48 2.2.1 位置记数法 48 2.3 二进制运算 49 2.4 有符号整数 52 2.4.1 符号及表示法 52 2.4.2 二进制补码运算 53 2.5 乘除法简介 55 2.5.1 移位运算 55 2.5.2 无符号二进制乘法 56 2.5.3 快速乘法 57 2.5.4 除法 59 2.6 浮点数 63 2.6.1 IEEE浮点数 64 2.7 浮点运算 68 2.8 浮点运算和程序员 70 2.8.1 浮点运算中的误差传播 71 2.8.2 生成数学函数 72 本章小结 74 习题 74 第二部分 指令集体系结构 第3章 体系结构与组成 79 3.1 存储程序计算机 79 3.1.1 扩展处理器:常量处理 84 3.1.2 扩展处理器:流控制 85 3.2 ISA的组成 93 3.2.1 寄存器 94 3.2.2 寻址方式概述 96 3.2.3 指令格式 98 3.2.4 操作码与指令 99 3.3 ARM指令集体系结构 101 3.3.1 ARM寄存器集 103 3.3.2 ARM指令集 103 3.4 ARM汇编语言 104 3.4.1 ARM程序结构 105 3.4.2 汇编器的实际考虑因素 107 3.4.3 伪指令 110 3.5 ARM数据处理指令 112 3.5.1 算术指令 113 3.5.2 位操作 116 3.5.3 移位操作 117 3.5.4 指令编码——洞察ARM体系结构 121 3.6 ARM的流控制指令 121 3.6.1 无条件分支 122 3.6.2 条件分支 122 3.6.3 测试与比较指令 123 3.6.4 分支与循环结构 124 3.6.5 条件执行 124 3.7 ARM寻址方式 126 3.7.1 立即数寻址 127 3.7.2 寄存器间接寻址 129 3.7.3 带偏移量的寄存器间接寻址 131 3.7.4 ARM的自动前索引寻址方式 134 3.7.5 ARM的自动后索引寻址方式 136 3.7.6 程序计数器相对寻址 136 3.7.7 ARM的load与store指令编码 136 3.8 子程序调用与返回 138 3.8.1 ARM对子程序的支持 139 3.8.2 条件子程序调用 141 3.9 ARM代码实例 141 3.9.1 计算绝对 141 3.9.2 字节操作与拼接 141 3.9.3 字节逆转 142 3.9.4 乘以2n-1或2n+1 142 3.9.5 多条件的使用 143 3.9.6 只用一条指令 143 3.9.7 实现多段程序 143 3.9.8 简单位级逻辑操作 144 3.9.9 十六进制字符转换 144 3.9.10 输出十六进制字符 144 3.9.11 打印横幅 145 3.10 子程序与栈 145 3.10.1 子程序调用与返回 147 3.10.2 子程序嵌套 148 3.10.3 叶子程序 150 3.11 数据的大小与排列 150 3.11.1 数据组织与端格式 150 3.11.2 数据组织和ARM 152 3.11.3 块移动指令 156 3.12 整合——将所有内容放在一起 160 本章小结 163 习题 163 第4章 指令集体系结构——广度和深度 168 4.1 数据存储和栈 170 4.1.1 存储和栈 172 4.1.2 通过栈传递参数 179 4.2 特权模式和异常 187 4.3 MIPS:另一种RISC 190 4.3.1 MIPS数据处理指令 193 4.4 数据处理与数据传送 195 4.4.1 不可见的交换指令 198 4.4.2 双精度移位 199 4.4.3 压缩和解压缩指令 200 4.4.4 边界测试 201 4.4.5 位字段数据 202 4.4.6 循环 206 4.5 存储器间接寻址 207 4.6 压缩代码、RISC、Thumb和MIPS16 213 4.6.1 Thumb指令集体系结构 214 4.6.2 MIPS16 219 4.7 变长指令 220 本章小结 224 习题 224 第5章 计算机体系结构与多媒体 229 5.1 高性能计算应用 230 5.1.1 图像处理 233 5.2 多媒体的影响——重新使用CISC 243 5.3 SIMD处理简介 246 5.3.1 SIMD技术的应用 254 5.4 流扩展和SIMD技术的发展 259 5.4.1 浮点软件扩展 261 5.4.2 Intel的第三层多媒体扩展 263 5.4.3 Intel SSE3和SSE4指令 264 5.4.4 ARM系列处理器的多媒体 指令 265 本章小结 267 习题 267 第三部分 组成和效能 第6章 处理器控制 272 6.1 通用数字处理器 274 6.1.1 微程序 277 6.1.2 生成微操作 282 6.2 RISC的组成 286 6.2.1 寄存器–寄存器数据通路 289 6.2.2 单周期直通计算机的控制 292 6.3 流水线简介 295 6.3.1 加速比 298 6.3.2 实现流水线 299 6.3.3 冒险 305 6.4 分支和分支开销 312 6.4.1 分支方向 313 6.4.2 流水线中分支的影响 314 6.4.3 分支开销 315 6.4.4 延迟分支 317 6.5 分支预测 320 6.6 动态分支预测 322 6.6.1 分支目标缓冲 325 6.6.2 两级分支预测 328 本章小结 332 习题 332 参考文献 340

1,025

社区成员

发帖
与我相关
我的任务
社区描述
Linux /Unix kernel支持不同的硬件体系,X86, ARM, MIPS, 等等
社区管理员
  • CPU和硬件区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧