Various embedded systems, mobile phones, system-on-module or single-board computers have one thing in common – the “brain” of these systems is the SoC. The SoC acronym means system-on-a-chip and the type of a SoC used in a given system is an important factor that determines its overall performance.
Getting most “bang for the buck” – general approach
Although the system’s performance is defined by different constraints, namely RAM, storage size and type, I/O speed, etc, most buyers generally want to get the most “bang for the buck” and, unless one of these factors is already known to be a bottleneck due to specific requirements of a system, a general way to increase the system’s overall performance is to employ faster SoC that happens to fall within buyer’s finite budget. Despite the SoCs are often displayed with complex schema (as shown on picture 1) and despite the fact that different processors are integrated within the single SoC, such as image signal processor, which is important for i.e. processing real-world photos taken via one’s phone, two quick indicators for overall system performance are rather CPU and GPU.
Picture 1. Mictrocontroller-based SoC (source: Wikipedia).
CPU and GPU – or just CPU?
Sometimes, the GPU component is of lower importance as well – unless the system usage will involve GUI and will see some resource-intensive graphics-processing. Since the GPU often happens to be the bottleneck of common, resource-demanding real-time systems, it is important to overview its limitations unless the system’s specifications will definitely not benefit from a faster GPU.
A rule of thumb
If one reviews the performance limitations of a smart device such as cell phone, GPU is rather going to be the main limitation when it comes to more complex stuff. In the world of single-board computers such as raspberry pi and others pi clones, it gets much more complex and GPU often has much smaller relevance unless it involves previously mentioned graphics processing and a rich GUI. i.e. If a single-board computer has limited use of GPU while its main usage should involve heavy writing operations to solid state storage, then a main factor will rather be the storage itself and developers will be more focused to employ eMMC or SSD as a storage than finding a SoC with more capable GPU. This is where tests, also known as benchmarks, enter the picture.
Advantages and flaws of benchmarks
Benchmarks are common in the world of computer hardware, in order to have real-time performance tests of hardware’s or system’s potential. Raw potential may not be utilized due to lack of drivers and optimizations or simply due to long-term performance throttling in case of overheating. This approach is definitely advantageous because it measures real-time performance instead of theoretical one, but it has serious flaws, because, generally speaking:
- Users need to own the piece of hardware already, in order to test it
- Users need to make fair and balanced tests in order to test each specific feature.
The same issues apply to any hardware component, including SoC. Although benchmarks should theoretically be much better due to real-time factors such as performance throttling and lack of software optimization, benchmarking is sometimes much more misleading due to different companies “affecting” the results of various benchmarking systems for the purpose of marketing, or by making their own benchmarks, especially during first month or two after the new piece of hardware is released. Companies have a goal for users to buy their hardware and if users depend on third-parties to create and run these benchmarks – companies will logically “invest” their efforts to affect users’ opinions.
Quick solutions for third-party reviews and benchmarks
Users can do very little if some third-party benchmarks happen to create misleading outcome. In order to circumvent such outcomes, users need to order each piece of hardware they want to test and then they need to create somewhat balanced tests of their own, a procedure which needs both time and expertise. A quick alternative is to focus on system’s raw capabilities and then to eventually review the extent of support that a given company offers, to circumvent the worst-case scenarios if raw performance’s promises migth prove to be a huge disappointment. Companies cannot lie about the third-party cores or architecture (i.e. using ARMv7 architecture and Cortex-A7 core). These data, coupled with core clock’s range, are a good way to determine the scope of a given SoC. This is why companies will sometimes withhold such information for an extended amount of time, while launching large hype and rigging the benchmarks instead.
When one wants to quickly determine whether some piece of hardware is faster than other, the best method thus falls down to determining the raw potential performance and reviewing the opinion of its users on potential pitfalls. This has its own issue as well, regarding certain hardware fans, but it is a quick way to determine the scope of a specific hardware without testing it and without relying on third-party opinion.
Knowledge is power
Just knowing small pieces on what to look for can save you large amounts of money and time because the SoCs within the system are the components that affect the price the system’s price the most, while they also generally have the biggest overall impact on performance. Differences in price among SBCs or cell phones with similar performance are staggering and are often largely the result of a great marketing, rather than the performance itself. Although there are other factors to observe as well when considering the system’s general perofrmance, SoC definitely makes the biggest change for the average user, especially the CPU and GPU performance withing the system-on-a-chip.
While this article is originally created with the emphasis on introduction of SoCs and quick ways to do a personal estimate on performance of specific SBCs, it is reasonable to believe that much of the random viewers will be more interested in how to scope their cell phone’s potential or how to scope raw potential of a phone they want to buy, thus the article often mentions the cell phones.
Follow-up articles will discuss the details to determine quick ways to get the reliable raw performance scope on different SoCs (emphasis is on ARM architecture, for obvious reasons), which is what most hardware enthusiasts either know or care to learn the most. Learning how to scope SoC’s raw capabilities is very important, given that a plus or minus 5-15% real-time performance difference may not be as bad, unlike various “comprehensive benchmarks” that happen to give much wider range of results and often mysteriously elevate SoCs that will heavily unedrperform or downgrade known powerhouse SoCs. Knowledge is power, indeed.