News and New Products
FROM EDN EUROPE: ARM restructures limbs of instruction set
By Graham Prophet -- EDN Europe, 7/10/2003
Users of the ARM7 architecture are familiar with the distinction between the original ARM (32-bit) instruction set and the Thumb 16-bit instruction set. At the simplest, you use the 32-bit instruction set when you want the highest performance and the most detailed control of program flow in critical loops, and you use the Thumb 16-bit instruction set for increased code density to optimise use of on-chip memory.
As an aside, ARM says that it has continued to improve the space efficiency of the code produced by its compilers at about 5% per year, but the gains available through this route are diminishing. With the changing mix of tasks typically implemented on its processors—more media-processing-intensive applications, for example—the pressure to find space for long-instruction code is increasing. There is also the inherent contradiction that this type of code—performance-critical segments—is exactly what you want to execute with 32-bit instructions, and it will best reside in expensive cache adjacent to the core.
To resolve this contradiction, ARM created the Thumb-2 architecture, which it will feature in cores released later this year. Thumb-2 comes close to being a unified version of the instruction set but with some exceptions; ARM says you might still want to revert to ARM code for the most mission-critical code segments. Thumb-2 is now a mixed 16- and 32-bit instruction set with Thumb forms of complex ARM instructions. It also offers a few completely new 16-bit instructions to reduce tasks that previously required multiple instructions (complex conditionals, for example) to requiring just one. Likewise, new 32-bit instructions offer better data handling. The architecture will fully support legacy ARM code. In Thumb-2, Thumb code can access coprocessors, privileged instructions, and special instructions, and it can handle interrupts and exceptions; you no longer need a separate ARM compiler. The compiler can now call instructions that get very close to ARM-instruction-set performance while retaining code density, and the OS can be written for Thumb. ARM says you will get code that is 26% smaller than 32-bit ARM for high-performance segments, and 31% smaller for high-density segments. If you can keep all your code in memory closely coupled to the core, you will get 98% of the performance of 32-bit code.
Cores for the new instruction set will appear later this year, and an instruction-set simulator is in preparation.
ARM, +44 1223 400400, www.arm.com.













