
ARM7TDMI-S Microprocessor Core Technical Manual
August 2001 - Rev. A
Copyright 2000 by LSI Logic Corporation. All rights reserved.
1-3
has higher code density and greater than half the performance of the 32-
bit architecture.
Thumb implements a 16-bit instruction set on a 32-bit architecture, giving
higher performance than a 16-bit architecture, with higher code density
than a 32-bit architecture.
1.2.2 The Thumb Instruction Set
The Thumb instruction set is a subset of the most commonly used 32-bit
ARM instructions. Thumb instructions are each 16 bits long, and have a
corresponding 32-bit ARM instruction that has the same effect on the
processor model. Thumb instructions operate with the standard ARM
register configuration, allowing excellent interoperability between ARM
and Thumb states.
On execution, 16-bit Thumb instructions are transparently decompressed
to full 32-bit ARM instructions in real time, without performance loss.
Thumb has all the advantages of a 32-bit core:
32-bit address space
32-bit registers
32-bit shifter and arithmetic logic unit (ALU)
32-bit memory transfer
Thumb therefore offers a long branch range, powerful arithmetic
operations, and a large address space.
Thumb code is typically 65% of the size of the ARM code; it provides
160% of the performance of ARM code when running on a processor
connected to a 16-bit memory system. Thumb, therefore, makes the
ARM7TDMI-S core ideally suited to embedded applications with
restricted memory bandwidth, where code density is important.
The availability of both 16-bit Thumb and 32-bit ARM instruction sets
gives designers the flexibility to emphasize performance or code size on
a subroutine level, according to the requirements of their applications.
For example, critical loops for applications such as fast interrupts and
DSP algorithms can be coded using the full ARM instruction set and
linked with Thumb code.