By George T Hilliard
Multicore processors have been around for quite some time, dating back about 15 years for the mainstream-type devices that are fairly common today. They started as dual cores then went to quad cores. Now, you can find microprocessors containing hundreds or even thousands of “processors cores” in the same piece of silicon.
In theory, a dual-core processor should offer double the performance of a single core, and a quad-core 4X. But in reality, that’s not the case. Not even close. There are many other factors at play here, including memory and instruction buses, physical memory, and power, just to name a few. It also comes down to how well the developer understands the inner-workings of the multicore processor and how he/she matches up the operating system to the available resources.
According to Tomas Evensen, Chief Technology Officer at Xilinx, “To really take advantage of multicore, you need tools, software, and support that are all optimized for multicore.”
In the multicore processor, each core is capable of reading and executing a sequence of instruction code or ‘thread.’ Within each thread, a core can also work in parallel to increase performance, a concept called instruction level parallelism (ILP). Generally, the more resources available to a core, such as memory and register files, the better it executes applications with a high ILP. And the more cores that are available to a processor, the better it performs what’s called thread-level parallelism (TLP).
TLP occurs when multiple cores are executing multiple threads at once (that’s a very good thing). But keep in mind that we’re back to one of the limitations of the multicore processor. In this case, it’s the power, which can add up quickly with lots of things executing simultaneously.
Let’s look at an example using audio processing. The operating system (OS) would divide the tasks to enhance, filter, or manipulate the audio data in some way. The board-level system then relies on the processor and OS to recombine/reconfigure the audio data to allow for playback. While real-time operations occur on one core, a second (or more) core(s) can be placed into a low-power mode to reduce overall power consumption (see the graphic below). When the real-time operations are complete, Core 1 alerts Core 2 using a wake-up signal.
From a software perspective, the OS must be able to run in both symmetric multiprocessing (SMP) and asymmetric multiprocessing (AMP) modes. This is because the SMP OS may not deliver the required level of safety, security, performance, or scalability. For example, some applications require a real-time OS (RTOS) to be paired with Linux. In a perfect world, the two OSs will talk, share resources, etc. The closer you can come to “perfection” the better performance you’ll get from your system.
As one of the experts in multicore processor system design, WINSYSTEMS recently unveiled its rugged ITX-F-3800 industrial single-board computer (SBC). The platform is based on Intel’s multicore Atom E3800 processor family. The board measures just 4.1 by 2.17 in., yet incorporates an abundance of embedded computing performance and I/O, including Ethernet, USB channels, a serial port, video, and more.
From the multicore processor perspective, the Atom E3800 system-on-chip (SoC) can handle high-performance compute, graphical, and multimedia applications while operating in an extended temperature range. Other features of the SoC include an integrated memory controller, virtualization, Error Correcting Code (ECC), and built-in security capabilities, all operating in a 3- to 10-W power range.