Fresh from ECN we have an article by Paul Evans on Real-time apps using multi-threads describing how hardware multithreading proves to be a more effective solution to traditional CPUs by delivering real time response while taking into account the three key elements for consumer electronics: low power, low cost and small silicon area.
Having a processor that can perform multi-threading with a smart scheduling and prioritization algorithm becomes the key point in avoiding using a classical super-scalar approach, where you have to deal with fine-grained parallelism. By using Meta CPUs developed by Imagination, the programmer will not waste time on re-writing code to adjust it for instruction level parallelism; Meta already has a built-in inter-thread communication protocol that allows processors to talk to each other.
Imagination’s Meta also addresses the main problems that single core CPUs haven’t been able to overcome: eliminating system latency by managing active cycles efficiently and achieving higher overall performance at low frequencies. And we haven’t even revealed the best part: it manages all this while also reducing power consumption.
Two driving concepts are behind Meta: simultaneous multi-threading (SMT) and automatic MIPS allocation (AMA).
The main advantage in a multi-threaded CPU is its ability to use idle time due to cache misses to schedule other tasks. SMT takes that to another level by allowing multiple threads to truly execute in parallel rather than simply utilizing only the cache miss time as pictured below.
This means the Meta HTP’s scheduler will attempt to run up to 4 separate programs in parallel thus achieving the same amount of work at 200MHz as a conventional single core CPU could achieve at 800MHz.
On top of this, Imagination has taken SMT to new heights with the Automatic MPS Allocation, a technology that adds real-time and determinism capabilities to multi-threading. By implementing resource management in hardware, each thread of execution gets the MIPS it needs and has the required response time.
We can see the AMA doing its magic in the graph below, where threads 0 and 1 have elevated priorities for real-time response while thread 2 is kept at about 40% instructions/clock.
The programmer can dynamically allocate priorities to threads to keep real-time applications such as audio or video encoding on schedule and still manage to run a non-real time OS like Android or Linux at full performance.
For more information, complete with a real example on how this works on Pure’s DAB radios, please have a look over the original article published by ECN magazine on May 9th and follow us on @ImaginationPR for more announcements.