With its first processor as an independent company well received by both parent companies, ARM Limited incrementally improved the processor core, and added more esoteric features as the wider market requested them. ARM7, the 1994 follow-up processor core to the ARM6, was in its basic form functionally equivalent to its antecedent, but due to fabrication alterations had improved in two important factors: it used less power, and was able to be clocked higher.
The performance gains, however, were not just down to a higher clock rate in the processor cell. For the ARM710 chip, ARM also doubled the size of the cache to 8KB, while increasing its power effiency by redesigning its hardware implementation. The translation look-aside buffer in the memory management unit was also doubled in size, as was the write-back buffer. These three changes increased the performance of the ARM710 over the ARM610 by more than 40%.
More important in the wider marketplace were ARM's optional additions to the ARM7 series of processors. Four optional letters after the product code of the processor denote one or more of Thumb support, debug support, enhanced multiplication, and in-circuit emulation (T, D, M, and I).
While the ARM architecture is well known for having extremely high code density for a RISC processor, it doesn't quite compare with low-end 8-bit and 16-bit CISC competitors. Especially in the embedded domain, where memory costs are prohibitive, size of object code is extremely important. The Thumb extensions are designed to solve the code size problem by adding a second, 16-bit instruction set to the 32-bit ARM core. Code written using these instructions can be as low as half the size of that using standard ARM instructions, and in the general case code density for most software can be increased by a third.
There are drawbacks to Thumb: it is only able to operate on eight general purpose registers and 8-bit constants, and due to lack of conditional execution support, more short branches lead to more frequent pipeline bubbles and the associated loss of throughput. However, since 16-bit Thumb and 32-bit ARM instructions are able to be executed side by side, the programmer is able to trade off performance for code size a sub-routine at a time. Similarly, and possibly more usefully, Thumb allows the product designer to be able to trade off performance for cost. For example, the Game Boy Advance uses a cheap and slow 16-bit ROM in its cartridges, from which performance-critical ARM routines are copied to RAM. Code which runs from ROM is often faster when coded in Thumb than ARM, as the fetch time for 32-bit instructions is double that for 16-bit ones.
Debug and In-Circuit-Emulation
In response to the growing use of the ARM processor in embedded systems, enhanced on-chip debug support was added as an option to the ARM7. This was complemented by the ICEbreaker in-circuit emulation hardware, which allows a developer to debug the product with the ARM core in-place. The target system can be run as normal, but with external hardware and software, the developer is able to set break points, step through code, and examine registers and memory. This is a step forward from ARM's previous solution to the debugging problem, the software-only ARMulator: with the D and I options to the ARM7 core, third party product designers are able to test the processor's interaction with their peripherals.
The ARM7M core had its multiplication hardware enhanced to include multiplication for both 32-bit and 64-bit quantities: it was able to multiply and multiply/accumulate for both unsigned and signed long quantities. This allowed the ARM to be used in work more traditionally suited to DSPs, and was so successful in the marketplace that it was merged into the standard version four architecture for the ARM8, ARM9, and StrongARM processor cores.
First released in 1994, the ARM7 is available in the standard cell, MMU, cache, and write-back buffer form of the ARM710, and in the system on a chip form of the ARM7500, which also had the VIDC20 video controller (as used in the RiscPC) and the IOMD input/output controller. Later, ARM released the ARM7100, aimed squarely at PDA and mobile phone manufacturers: it extended the ARM710 with such peripheral features as an LCD driver, IrDA and serial ports, and an on-chip Real Time Clock. Each of these processors can be extended with several of the four TDMI options, allowing manufacturers to make the tradeoff between feature set, cost, and power efficiency. Known available products with these options include the ARM7D, ARM7DM, ARM7DMI, ARM7TDMI, ARM70DM, ARM710T, ARM7100T, and ARM7500TDMI.
Products Using the ARM7
In 1994, Acorn's RiscPC was upgraded to the ARM710 processor, along with a few minor tweaks to the motherboard and operating system. Shortly afterwards, Acorn released an A5000 replacement based around the ARM7500, the Acorn A7000; this was eventually replaced by the A7000+, which used the hardware FPU enabled ARM7500FE.
Other products to use the ARM7 core include the Psion 5 and 5MX: these used 18MHz and 36MHz ARM7100T processors, respectively. Apple released their quirky education-targetted rugged sub-notebook, the Apple Newton eMate, with an ARM710T processor at its heart. More recently, the Nintendo GameBoy Advance was powered by the ARM7TDMI, making it the most powerful handheld console to date.
The ARM7 is also perpetually popular in the embedded market, as a low-cost high-performance part which uses very little power. While it has been somewhat surpassed by the StrongARM in terms of raw power, in devices which require only moderate computational speed, its lower price point and power usage make it more suitable. A perfect example of this is the ARM7's widespread use in mobile phones from companies such as Nokia, Sony-Ericsson, and Motorola. These same qualities make it ideal for university projects, for which it has also gained much popularity.
- Used in: Acorn RiscPC (second generation), Acorn A7000/A7000+, Psion 5/5MX, Gameboy Advance, Apple Newton eMate, many cell phones, multitude of embedded systems
- Processors available:
- ARM7TDMI (cell with Thumb, fast multiply, debug and in-circuit emulation support)
- ARM710T (cell with Thumb support, MMU, 8KB cache, write-back buffer)
- ARM720T (ARM710T with Windows CE-specific alterations to the MMU)
- ARM740T (ARM710T with Memory Protection Unit instead of MMU)
- ARM7100 (ARM710 with PDA-targetted peripheral support)
- ARM7500 (cell, MMU, 8KB cache, write-back buffer, video controller, I/O controller)
- ARM7500FE (ARM7500 with FPA11 floating-point hardware)
- Processor options: suffixes to the model include D (debug support), T (Thumb instruction set support), M (enhanced multiply), I (in-circuit-emulation support)
- Fabrication: 0.8µm, 0.6µm
- Clock: 0--60MHz
- Cache: unified
- Addressing: 26-bit, 32-bit
- Architecture: ARMv3, ARMv4T
- Notable features: improved multiplication, improved cache and MMU, introduction of Thumb instruction set
"The ARM RISC Chip", Atack/van Someren, Addison-Wesley, 1993
"ARM System Architecture", Furber, Addison-Wesley, 2000
"ARM7 Data Sheet", Advanced RISC Machines Ltd, www.arm.com
"ARM Chips List", Banks