This preview shows page 1. Sign up to view the full content.
Unformatted text preview: ort when the debug hardware unit is configured appropriately.
BKPT Assembler format
Equivalent ARM instrucinstruction The equivalent ARM instruction has an identical assembler syntax. The BRK tion is supported only by ARM processors that implement ARM architecture v5T. 7.9 Thumb implementation
The Thumb instruction set can be incorporated into a 3-stage pipeline ARM processor macrocell with relatively minor changes to most of the processor logic (the 5-stage pipeline implementations are trickier). The biggest addition is the Thumb instruction decompressor in the instruction pipeline; this logic translates a Thumb instruction into its equivalent ARM instruction. The organization of this logic is shown in Figure 7.8 on page 202. The addition of the decompressor logic in series with the instruction decoder might be expected to increase the decode latency, but in fact the ARM? pipeline does relatively little work in phase 1 of the decode cycle. Therefore the decompression logic can be accommodated here without compromising the cycle time or increasing the pipeline latency, and the ARM7TDMI Thumb pipeline operates in exactly the way described in 'The 3-stage pipeline' on page 75. Instruction mapping The Thumb decompressor performs a static translation from the 16-bit Thumb instruction into the equivalent 32-bit ARM instruction. This involves performing a look-up to translate the major and minor opcodes, zero-extending the 3-bit register specifiers to give 4-bit specifiers and mapping other fields across as required. As an example, the mapping of a Thumb 'ADD Rd, #imm8' instruction (see Section 7.5 on page 195) to the corresponding ARM 'ADDS Rd,Rd, #imm8' instruction (described in Section 5.7 on page 119) is shown in Figure 7.9 on page 202. Note that: 202 The Thumb Instruction Set Figure 7.8 The Thumb instruction decompressor organization. Figure 7.9 Thumb to ARM instruction mapping. Thumb applications 203 Since the only conditional Thumb instructions are branches, the condition 'always' is used in translating all other Thumb instructions. i Whether or not a Thumb data p...
View Full Document
- Spring '09