EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

ARM Thumb ISA

Started by Christian Christmann April 5, 2006
Hi,

sorry, when this is off-topic but I didn't really know what other
newsgroup to use.
A general question on the instruction set of the ARM processor:

Many of the ARM processors provide a normal ISA (32-bit) as well
as an compressed 16-bit ISA (Thumb mode).
It's obvious that the Thumb instructions are smaller than the
32-bit instructions resulting in a smaller program code if merely
the Thumb instructions are used.
What about the runtime of a program. Is a program, in general, 
slower or faster when constructed from instructions of one ISA?
If so, why?

Thank you.
Chris
Christian Christmann wrote:

> sorry, when this is off-topic but I didn't really know what other > newsgroup to use.
This question is entirely on-topic for comp.arch.embedded.
> What about the runtime of a program. Is a program, in general, > slower or faster when constructed from instructions of one ISA?
It's impossible to generalize about this because it's system-dependent. ARM publishes metrics on speed vs. size for Thumb vs. 32-bit code. If I recall correctly, the rough number is 60% of the speed with a 25% improvement in code density. However, the situation is affected by memory bus width and speed. If you are running out of 16-bit memory (quite a few low-end ARM parts only have 16-bit external data buses) and/or slow flash memory, Thumb's speed numbers may be significantly better because the memory subsystem isn't being called upon for the same throughput.

The 2024 Embedded Online Conference