We got a great question recently that made us remember that not everyone keeps up to date on specs and hardware design. Someone asked what ARM meant.
Firstly, that's an awesome question. I can imagine it's difficult to make sense of some of the technical talk that happens if you aren't sure of even the basics, and the only way to find out is to ask. So, we're glad you asked!
ARM is a company and ARM is a processor architecture that they develop and sell.
When you see a tech discussion and the word ARM is being used, it's describing a type of processor. The uber-technical definition of an ARM processor is a CPU built on the RISC-based architecture developed by Acorn Computers in the 1980s and is now developed by Advanced RISC Machines (thus the ARM).
That's not very helpful when you don't know what any of it means. So let's talk about what that means.
ARM, Ltd. is a company in England that develops and designs a processor architecture. The ARM abbreviation for the processor design stands for Acorn RISC Machine, and the ARM abbreviation for the company that designs and sells the license to use that architecture stands for Advanced RISC Machines. Don't get hung up on which ARM means which thing, as nowadays both are interchangeable. ARM the company designs a method to build ARM processors and companies like Qualcomm, Apple, and Samsung all license it to build their own custom processors on. A lot of other companies license the ARM design, too. Most any device that's small and battery-powered that needs a brain will be using an ARM processor.
ARM CPUs are designed to do a lot of simple tasks at once without needing much power.
RISC stands for reduced instruction set computing. The Intel or AMD processor you'll find in your laptop or desktop computer is likely a CISC (complex instruction set computing) processor. The two different types are designed for different needs. An RISC processor is designed to run a smaller amount of instructions (instructions define what orders can be sent to a processor by a program) than a CISC processor. Because they can do fewer things, they can have a higher frequency — the Gigahertz numbers you hear discussed — and perform more MIPS (millions of instructions per second) than a CISC processor.
When you reduce the number of instructions the processor can compute, you can create a simpler circuit inside the chip. An RISC processor uses fewer transistors which in turn use less power. Because the circuits are simple (they're known as optimized paths in technical language) a smaller die size can be used to build the processor. Die size is the measurement of one chip on the silicon wafer that a processor is built on. When the die size is smaller, more components with less wiring can be placed on the processor surface. This makes ARM processors small, and a lot less power-hungry.
Small, fast and simple processors are perfect for things like phones. A phone isn't asking the CPU to process things like 3D collision data (unless it's a Tango phone) or try to run hundreds of threads on its limited number of cores. Mobile software, both the operating system and applications that run on it, are coded and optimized for the reduced instruction set the ARM processor uses. But that doesn't mean ARM CPUs aren't powerful in their own right.
The current ARM specification allows for 32-bit and 64-bit design, hardware virtualization, advanced power management that can interface with user software, and a load/store architecture that is mostly single-cycle execution and orthogonal. If you're curious about what these things are, you can research computer instruction set architectures for more.
All you need to know about it is that it means ARM processors are also really good at things that aren't phones or media players. Things like super-computers.
ARM has a great performance-per-watt ratio. Properly coded software can do more per watt of electricity used on an ARM chip than it can on an x86 (a CISC processor popularized by Intel) CPU. This makes scaling for things like servers and super-computers easier when using ARM processors.
You can get the amount of raw computing power needed from 24 x86 CPU cores, or you can get it from hundreds of small, low-power ARM cores. The x86 cores will use their computing power to perform the calculations needed on just a few CPU cores and threads while the ARM cores will spread the tasks over many low-capacity and less complex cores. The ARM cores are much higher in number but don't need more power or more room than the 24 x86 cores will. This makes scaling — adding more computing power to a processor design — easier with ARM. Just add more CPU cores and make sure your software is written to work well with ARM's instruction set.
ARM processors scale very well and run on super-computers and servers as well as your Android or iPad.
In the end, a single instance of an ARM processor will never be as powerful as something like an Intel Core i7 that you would find in a gaming PC. It isn't very good at running the software written for the x86 Intel processor and a lot of coding changes are necessary, or a virtual machine, to do the same things. But that Intel Core i7 uses about 12 times the power, needs an active cooling system and will never fit into a phone body. The less complex ARM processor does well when software is written to directly support it, and because of its low-power and small design feature set, it's easy to add a few high clock speed cores to a CPU to run the advanced software we all want to use on our phones.
And if you have a data center in the mountains somewhere, you can keep scaling and add more cores until you create computers that can handle things like NVIDIA's smart cars or Google's learning machines.