Monday, June 16, 2003
ARM Updates Thumb Instruction Set
Posted by Janak Parekh in "NEWS" @ 10:06 PM
"ARM is getting a new Thumb. The Cambridge, England-based chip designer unveiled on Monday a set of processor instructions designed to help cell phones run faster and consume less energy. ARM's Thumb 2 instructions update the company's original Thumb instructions, a subset of commands inside the overall ARM architecture, the basic architecture behind the chips running most cell phones on the market today."
For those of who haven't taken a Computer Engineering Architecture Design course, it won't be immediately clear what this means. ;) Here's an attempt at a brief explanation. ARM is an interesting Instruction Set Architecture (ISA), because most modern ARM cores encapsulate two different instruction sets: the full 32-bit instruction set, and a "reduced" 16-bit instruction set, called Thumb, that offers much of the same functionality, but requires less bits to represent an instruction. This is a useful feature in embedded devices, like cell phones and PDAs, since a 16-bit instruction takes about half the space of a 32-bit instruction. As the article cites, use of these shorter instructions when possible typically reduces code footprint by about 26%, and correspondingly speed (less bits to move around). That's pretty substantial when you're talking ROM sizes in the kilobytes or megabytes.
Now, what does Thumb-2 contain? This is a very good question, and one that I couldn't figure out by poking around ARM's site. It seems they don't have much Thumb-2 documentation yet (if someone finds it, let me know). If I had to guess, I'd say they're updating the Thumb instruction set (which was introduced alongside the full ARM4 set) to support new ARMv5 or ARMv6 instructions. If someone has more information, please feel free to contribute!
Last - what would this have to do with the Pocket PC? Well, as far as I can tell, Pocket PC doesn't currently use Thumb, based on Chris De Herrera's discussion about XScale optimization; if that's the case, it's highly probable that the short-term effect is "not much" for us. Moreover, I'm reasonably certain that Intel's StrongARM and XScale processors only support the "original" Thumb, not Thumb-2. On the other hand, ARM's Thumb instruction set (Oh, and was the pun intended? Most likely...) is an important tool for smaller embedded devices, and will likely continue to be so.
If you haven't totally lost your mind by this point, feel free to ask questions in the thread below. If you have more information on the subject, that's greatly appreciated too. :)
For those of who haven't taken a Computer Engineering Architecture Design course, it won't be immediately clear what this means. ;) Here's an attempt at a brief explanation. ARM is an interesting Instruction Set Architecture (ISA), because most modern ARM cores encapsulate two different instruction sets: the full 32-bit instruction set, and a "reduced" 16-bit instruction set, called Thumb, that offers much of the same functionality, but requires less bits to represent an instruction. This is a useful feature in embedded devices, like cell phones and PDAs, since a 16-bit instruction takes about half the space of a 32-bit instruction. As the article cites, use of these shorter instructions when possible typically reduces code footprint by about 26%, and correspondingly speed (less bits to move around). That's pretty substantial when you're talking ROM sizes in the kilobytes or megabytes.
Now, what does Thumb-2 contain? This is a very good question, and one that I couldn't figure out by poking around ARM's site. It seems they don't have much Thumb-2 documentation yet (if someone finds it, let me know). If I had to guess, I'd say they're updating the Thumb instruction set (which was introduced alongside the full ARM4 set) to support new ARMv5 or ARMv6 instructions. If someone has more information, please feel free to contribute!
Last - what would this have to do with the Pocket PC? Well, as far as I can tell, Pocket PC doesn't currently use Thumb, based on Chris De Herrera's discussion about XScale optimization; if that's the case, it's highly probable that the short-term effect is "not much" for us. Moreover, I'm reasonably certain that Intel's StrongARM and XScale processors only support the "original" Thumb, not Thumb-2. On the other hand, ARM's Thumb instruction set (Oh, and was the pun intended? Most likely...) is an important tool for smaller embedded devices, and will likely continue to be so.
If you haven't totally lost your mind by this point, feel free to ask questions in the thread below. If you have more information on the subject, that's greatly appreciated too. :)