Smartphones and tablet don’t just use “processors”, they use Systems-on-a-Chip (or SoC). But what the heck is an SoC? The one-liner would be that it is the equivalent of a computer motherboard, including main processor, graphics processor and memory — on a single chip. I’m writing this partly because I want to refer to it later on, but also because most of us read plenty of generic comments such as “the smartphone X is powered by the ARM Y”. This is supposed to give us a clue as for how fast a smartphone/tablet is, but it really does not. Here’s why.
SoC from 10,000ft
A System-on-a-Chip is composed of many sub-components such as one or more central processors (or CPU), often using a design from ARM, a company that specializes in designing low-power processors and systems).
Modern SoCs also come with advanced (DirectX-9 equivalent) graphics capabilities that can surpass game consoles like the Nintendo Wii. Imagination Technologies, which was once known in the PC world with its “PowerVR” graphics cards, licenses its graphics processors designs to many SoC makers, including Samsung, Apple and many more. Others like Qualcomm or NVIDIA design their own graphics architecture.
Finally, SoCs come with a myriad of smaller co-processors that usually don’t get any of the glory. They are nonetheless critical to overall system performance. The video encoding and decoding hardware powers the “camcorder” functionality of smartphones. The image processor ensures that photos are processed properly and saved quickly and the audio processor frees the CPU(s) from having to work on audio signals. Together, all those components -and their associated drivers/software- define the overall performance of a system.
Now, you understand why having such or such “ARM processor”, is interesting, but hardly “defining”.
Processors / CPU
While the main processor might not perform all the heavy lifting, the CPU is nonetheless a must-have component of the SoC. Modern SoCs have two, and soon four, processors cores as it has been proven that “multi-core “can help speed things up in some case, while keeping the power envelope within an acceptable limit. Note that system performance does *not* scale linearly with more processors, but specific app performance might.
As I said earlier, the large majority of SoC designs are based on an ARM architecture because ARM has been traditionally so power-efficient. Although Intel has vowed to enter that space for some time, the company is probably still years away from being a direct threat to ARM. But Intel is not to be underestimated. Years ago, people laughed at their attempt to get into the server market, but look at who’s laughing now…
Also, the mere words “ARM version X” don’t mean much. You should know that there are basically two ways of using ARM’s intellectual property. A chip maker can license the whole CPU design and use it “as is”, or license the instruction set and redo everything themselves (hopefully, for the better). A number of leading semiconductor companies did opt for the latter.
Keep in mind that besides the design of the processor itself, the memory subsystem (bus, caches) can, and will, greatly impact overall performance.
Graphics Processor / GPU
For even the simplest graphics tasks, like drawing a rectangle, a graphics processor will outperform a CPU -by far-, and they do so at a lower “performance-per-Watt” ratio. That is why every single modern smartphone and tablet comes with a graphics processor. GPUs are generally used for the 2D (user interface) and polygonal 3D (games) functions.
Video encoder / decoder and image processor
While processing videos and photos could be done with the CPU or the GPU, dedicated hardware will get the job done with less power than either of those. That is why video encoding/decoding and photo processing often have their own hardware.
Don’t underestimate the importance of software!
It’s quick and easy to read specifications and jump to conclusions, but don’t be fooled: great software is critical to real-world performance. Many of the specifications that we read about are “maximum theoretical numbers” (when they are not “made-up” numbers), and only a perfect execution of the software in the most favorable conditions can lead to such performance. In the business, those theoretical numbers are called “speed of light” and the question is always “how close can we get?”
When we talk about smartphones, we all use the term “processors” from time to time, and it’s OK, but it’s important to realize that they are really SoCs, and that they are *very* different from their CPU cousins from the PC World. There are a great deal of things that could vastly impact end-user performance, so if you truly care about performance, I have two advices:
1/ If you really want to know how fast it performs, you have to choose a few applications and measure the execution speed.
2/ While benchmarking is important -especially for bragging rights-, the performance difference only matters if you can perceive it.