19.08.2013 Views

ARM7TDMI-S(Rev 4)技术参考手册 - Read

ARM7TDMI-S(Rev 4)技术参考手册 - Read

ARM7TDMI-S(Rev 4)技术参考手册 - Read

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

广州周立功单片机发展有限公司 Tel (020)38730976 38730916 Fax 38730925 http //www.zlgmcu.com<br />

表 7-4 所示为完整操作的周期时序<br />

表 7-4 Thumb 带链接的长分支<br />

周期 地址 规格 写 数据 TRANS[1:0] Prot0<br />

1 pc+4 h 0 (pc+4) S 周期 0<br />

2 pc+6 h 0 (pc+6) N 周期 0<br />

3 pc’ h 0 (pc’) S 周期 0<br />

4 pc’+2 h 0 (pc’+2) S 周期 0<br />

pc’+4 - - - - -<br />

注<br />

PC 是操作的第一条指令的地址<br />

Thumb BL 指令在 ARM 体系结构参考手册中详细讲述<br />

7.5 分支和交换<br />

分支和交换<br />

一个分支和交换 BX 操作占用 3 个周期 它与分支相似<br />

1. 在第 1 个周期中 <strong>ARM7TDMI</strong>-S 内核在当前 PC 执行预取指时提取分支目标地址并从寄存器源提<br />

取新的内核状态 预取指在任何情况下都会完成 因为在到达决定执行分支的时间时 已经无法<br />

2.<br />

阻止预取指的执行<br />

在第 2 个周期中<br />

指<br />

<strong>ARM7TDMI</strong>-S 内核根据所选择的状态 使用新的指令宽度对分支目标执行取<br />

3. 在第 3 个周期中<br />

填充流水线<br />

<strong>ARM7TDMI</strong>-S 内核根据新的指定状态 对目标地址+2 或+4 进行取指 以重新<br />

表 7-5 分支和交换指令周期操作<br />

周期 地址 规格 写 数据 TRANS[1:0] Prot0<br />

1 pc+2i w/h 0 (pc+2i) N 周期 t<br />

2 pc’ w’/h’ 0 (pc’) S 周期 t’<br />

3 pc’+i w’/h’ 0 (pc’+i) S 周期 t’<br />

pc’+2i - - - - -<br />

注<br />

i 和 i'分别代表 BX 之前和之后的指令宽度<br />

在 ARM 状态下<br />

i'等于 2<br />

规格为 2 而在 Thumb 状态下规格为 1 当从 Thumb 状态变为 ARM 状态时 i 等于 1<br />

t 和 t’分别代表 BX 之前和之后的 T 位状态 在 ARM 状态下 T 位为 0 而在 Thumb 状态下 T 位为 1<br />

当从 ARM 状态变为 Thumb 状态时 t 等于 0 t’等于 1<br />

7.6 数据操作<br />

数据操作<br />

数据操作在单个数据路径周期内执行 但当移位由寄存器的内容决定时例外 <strong>ARM7TDMI</strong>-S 内核将第<br />

1 个寄存器读取到 A 总线 并将第 2 个寄存器或立即地址读取到 B 总线<br />

ALU 根据指令所指定的操作将 A 总线和移位的 B 总线资源结合 <strong>ARM7TDMI</strong>-S 内核将结果写入目标<br />

寄存器 比较和测试不产生结果 只影响 ALU 状态标志<br />

指令预取指与数据操作同时发生 并且 PC 增加<br />

- 69 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!