ARM Raises its Thumb and Goes Mobile
Predictably, Acorn failed to make an impression in the North American market in the face of the overpowering domination of Microsoft operating systems running on x86-based IBM compatible systems. But ARM-based PC’s gained a loyal and enthusiastic following in Britain, and to a lessor extent, continental Europe, and shipped more than 150k units by 1991. After the ARM2 came the ARM3, which shrunk the CPU core to a 1.6 um process and added a 4 KB, 64-way set associated unified cache.
In 1990 Acorn Computer, VLSI Technology, and Apple computer formed Advanced RISC Machines Ltd. (the new meaning of the acronym ARM). Apple’s involvement with ARM was due to its interest in non-PC type computing applications, which led to the Newton personal digital assistant (PDA). The new joint venture rolled out the ARM3 architecture but renamed it to ARM6. The ARM 610 was a standard MPU part based on the ARM6 core and integrated a 4 KB cache, write buffer, and memory management unit (MMU), and was available from Sharp and Plessey, as well as VLSI Technology. By 1994 TI, Cirrus Logic, Samsung, and AKM were added as ARM licensees.
The ARM family grew to include the ARM7 which extended the architecture to full 32-bit addressing (early ARMs were limited to 26 bit addressing), increased maximum clock rate to 40 MHz, and expanded the cache to 8 KB. An optional feature in the ARM7 architecture was ‘Thumb’, a combination of a new instruction set with a 16 bit long instruction format, and a hardware logic unit that sat in the instruction fetch path and translated Thumb instructions to regular, full 32-bit length ARM instructions. The Thumb hardware scheme is shown in Figure 2.
Figure 2. Thumb Compact Instruction Set Translation System
Thumb is a rather clever feature that adds very little complexity to an ARM7 MPU, only about 3000 transistors . Yet Thumb improves ARM instruction density (already quite good, roughly comparable to 32-bit x86 code) by about 25 to 35%. Not only that, but in systems with 16-bit wide memory (not uncommon in cost sensitive embedded applications) an ARM7 would run an application compiled into Thumb faster than if it had been compiled for 32-bit ARM code.
Discuss (2 comments)