Eliminating the Oz factor: How to migrate from Core 2 Duo to 2nd-Gen Core i7
Power consumption… and thermal management…. and performance… oh my. Apologies to the late The Wizard of Oz author L. Frank Baum for this flagrant misuse of his well-known iambic pentameter; but in the same way that lions … and tigers … and bears were a daunting proposition for Oz main characters, the challenge of migrating military systems and applications from Intel Core 2 Duo to Intel Gen 2 Core i7 processors can seem just as wide a forest for engineers to find their way in. However, a closer look at the three aforementioned key issues – in addition to pivotal software issues and the instruction sets – provides insight into easing Core 2 Duo to Intel Gen 2 Core i7 migration.
Processors’ power issues: A hot topic
Considering the differences in features (and therefore instruction sets) for even just a couple of Core 2 Duo versus Intel Gen 2 Core i7 processors (Table 1), certainly design adjustments surrounding power consumption and the resultant heat are needed.
Gen-2 i7’s got the power
“The [2nd generation Intel Core i7] product family draws and dissipates more power than the Core 2 Duo family. … However, it also clearly delivers highly increased performance, both in number crunching (particularly floating point) and I/O performance,” says Shaun McQuaid, Senior Product Manager at Mercury Computer Systems. “These advantages greatly outweigh the relatively modest increase in power dissipation.”
Accordingly, for UAVs, rugged naval systems, tactical aircraft, or other conduction- or air-cooled mil/aero applications, a 2nd Gen Core i7-2715QE delivers 134 GFLOPS per 45 W, while the Core 2 Duo might only render 18 GFLOPS per 25 W, details Alan Baldus, Intel SBC Product Marketing Manager at Curtiss-Wright. One avenue to mitigate Core i7 Gen 2’s increased power is to use static control tools found in the BIOS, permitting fine-tuning of the CPU clock frequency and the quantity of active cores.
Let’s just cool down here
Because increased power means more heat, a viable approach to cool things off is to use thermal simulation before migrating Core 2 Duo applications to an Intel Gen-2 i7 processor. “It may require more air than is typical [to] be flowed across the heat sink; or in the conduction case, you’ve [got] quite a bit of heat that must be moved to the rails. Taking a 45 W CPU in a conduction-cooled environment up to 85 °C, for example, may require a more exotic thermal solution,” details David Pepper, Product Manager/Technologist for the SBC Team at GE Intelligent Platforms. (In this case, “more exotic” refers to non-aluminum materials.)
Another strategy to mitigate the heat waves of Core 2 Duo to 2nd-Gen Core i7 migration is to provide interfacing with Intel on-die digital temperature sensors, facilitating temperature control and monitoring. This is a feature that might be vendor-provided in the BSP (incarnated in the form of an API), for example, he adds.
Performance is key
Herculean performance gains are not always a given, when migrating an application from Core 2 Duo to 2nd-Gen i7. And the real secret to increased performance is the operating system, explains Baldus. OSs enable one board to now house multiple applications (instead of two Core 2 Duo boards, in some cases), upping the performance per board.
Turbo Boost is another performance facilitator in 2nd-Gen Core i7, enabling frequency gains in a given individual core. For example, if headroom permits, a 2.2 GHz base frequency core can rise to deliver 2.9 GHz (for the i7-2655LE). But Turbo Boost can be challenging to implement. A primary consideration is sensitive timing loops, which could lack predictability unless the application was built to execute over a span of processor clock speeds.
“A timing loop that is counting on the CPU running at 2.1 GHz, for example, might be less predictable when Turbo Boost raises the frequency to 2.9 GHz. In these cases, application designers should leverage a predictable and stable clock that has some independence. Also, in the most deterministic applications, [an RTOS] such as VxWorks might be required to avoid overhead,” explains Pepper.
The software calls
Though some or many of the hardware-related migration concerns inevitably involve software too, the primary, full-on software issues of the Core 2 Duo to Gen 2 Core i7 migration equation include the operating system and hardware abstraction used by the legacy application, according to Chip Downing, Senior Director of Aerospace and Defense at Wind River.
First, a good question would be: Is the application to be migrated a legacy-hardware-hosted application, and if so, does that happen via an application API or proprietary scheduler? If the answer is “yes,” a labor-intensive feat is at hand. “This work will involve porting the scheduler and drivers to the new platform, modifying that software to support new capabilities like AVX [Advanced Vector Extensions] … and then performing complete testing for both the new operating environment and applications on this new proprietary platform, along with supporting a new application runtime library that specifically supports AVX,” Downing explains.
Luckily, these proprietary schedulers are usually not directly hardware hosted because most modern defense systems don’t take full advantage of memory or CPU cores available. This paradigm ushers in a tendency toward easing migration by utilizing open standards-based software-abstraction layers. “One of the most effective methods of abstraction is the use of a commercial RTOS that abstracts away both the hardware and the I/O infrastructure, enabling the rapid migration to new hardware,” Downing says. However, even if an RTOS is used to simplify migration, if software libraries or the compiler change, a recompile and relink are necessary.
If the application does not utilize the new Core i7 features, the binaries can be moved easily to the new platform. And applications suited with POSIX APIs will benefit from the APIs’ ability to facilitate immediate migration.
“The power of abstraction comes into play when using the advanced capabilities of the Core i7 processors, like utilization of full power of multiple cores, 64-bit addressing, and virtualization. Although one could try to enable these capabilities at the application level, it is simply more efficient to let the [OS] do this heavy lifting and focus the application work on rapidly enabling requirements and competitive features,” Downing asserts.
And to maximize abstraction, portability, and upgradeability and to ease multicore configuration woes on the other side, he specifically recommends using an embedded hypervisor within a virtualization scheme.
Last but not least: Instruction sets
When it comes to the Core 2 Duo versus Intel Gen 2 Core i7 processors, probably the first thing that comes to mind as far as instruction sets is AVX, a 256-bit SIMD engine providing vastly increased floating-point performance over the previous industry standard of 128 bits. Though applications need to be scaled to harness AVX’s full power, Pepper reports a “1D-FFT performance gain [of] 1.8x … when going from SSE to AVX.” Scaling might include an application recompile with an AVX-supportive compiler, or perhaps an AVX function update “if SSE functions are hard coded in the application,” he adds.
Onboard graphics capabilities of 2nd-gen Core i7 add 3D capabilities, with an integrated rather than a discrete controller, which changes the application’s paradigm once migrated. And upgraded video, USB, and SATA are also provided in the latest Core i7 and should be considered in a migration scenario.
Meanwhile, the 2nd-Gen Core i7’s aforementioned Turbo Boost gets mixed reviews when it comes to instruction sets.
“Non-deterministic behavior is frowned upon in the embedded world, so disabling Turbo Boost in the BIOS is a good practice,” recommends Baldus.
However, significant performance gains are enabled with Turbo Boost, but the application must be optimized in advance for a range of clock speeds, as described previously by Pepper.
And finally, there’s two-thread-per-core Hyper-Threading. Harnessing it in a migration scheme necessitates application-level analysis to figure out whether the application is able to support several processing threads, according to Pepper. Capable of facilitating application distribution for as many as eight cores, Hyper-Threading’s main benefit is that performance per slot processing efficiency is much improved, adds Baldus.
Already found Oz?
Much like the characters in The Wizard of Oz, many system designers might already have the knowledge they need to solve their dilemma – in this case to migrate Core 2 Duo applications and systems to 2nd-Gen Core i7 platforms. But putting mettle to the metal (and binary code) is the only way to find out.