Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > EDA/IP

Virtual prototype for booting Linux on Cortex A15

Posted: 25 Mar 2013 ?? ?Print Version ?Bookmark and Share

Keywords:SoC? Virtual prototypes? benchmark?

Globally, SoC development teams have begun a steady move to a virtual prototype methodology for better accuracy and accelerating the design process of all kinds of applications. For those of you who aren't familiar with using a virtual prototype, let's start with a definition, then take a look at how an engineer recently used virtual prototyping to boot Linux on the ARM Cortex-A15.

Virtual prototypes are fast, functional software models of a system that can execute production code. With benefits ranging from software development to enabling architectural exploration and early functional verification using abstract models, their rising popularity is easy to understand.

Almost every virtual prototype deployment though suffers from a similar problem: The virtual prototype either runs fast while sacrificing cycle accuracy or it is cycle accurate but lacks the speed to develop software.

Some virtual prototypes attempt to solve this problem by sacrificing a bit of speed and accuracy to produce a "best of both worlds" system that claims to have the best attributes of both with none of the downsides. In practice however, this pleases no one because it's too slow for the software team and not accurate enough for use by architects and firmware engineers. Fortunately, there's a way to create a single virtual prototype that is both fast and accurate.

I recently worked with an engineer to help him boot Linux on a virtual prototype containing an ARM Cortex-A15. In this case, he was developing a mobile application processor but the same steps apply to almost all complex SoC designs.

In order to get a true measure of the performance of the SoC, the engineer needed to run benchmarks that ran on top of an operating system. Benchmarks included Dhrystone, CoreMark and tiobench, a multi-threaded I/O benchmark used to measure file system performance, on top of Linux. Running benchmarks served two primary purposes. Obviously, results of the benchmark helped determine the relative performance of the device under test (DUT) but also do an effective job of generating large amounts of representative system traffic to stress the system and identify optimisation opportunities.

Each benchmark required a significant number of simulation cycles to complete in addition to the huge number of cycles required to simply boot the OS. Because of this large number of required execution cycles, this type of use case is not typically considered with traditional cycle accurate prototypes. Instead, engineers have opted for cycle-approximate models that can lead to inaccurate and un-optimised SoC designs. Or, more often, they have skipped this optimisation step entirely during the design phase and waited to run these benchmarks in prototypes when it was too late to make changes based on the results.

Virtual prototypes in the design flow
Design teams don't need to accept inaccuracy or wait until design freeze if they use a virtual prototype. Software from Carbon Design Systems, for example, allows engineers to do performance optimisation by leveraging ARM Fast Models for speed and Carbon's Swap & Play technology for accuracy. The integration with ARM Fast Models enables an engineer to increase simulation performance in selected components during periods of time when accuracy isn't critical. Swap & Play then enables ARM Fast Model components to be swapped out in favour of their 100% accurate equivalent components when accuracy is required, such as benchmarking. Essentially, this means performance when it's wanted and accuracy when it's needed.

In figure 1, the engineer used the Cortex-A15 Linux Carbon Performance Analysis Kit (CPAK) to accelerate analysis, optimisation and verification of the SoC's performance. The CPAK contains reference hardware and software designs along with analysis and debug software for the Cortex-A15 processor, a way for him to immediately begin analysing performance and power constraints.

Figure 1: The Cortex-A15 Linux CPAK was used to accelerate analysis.

1???2?Next Page?Last Page

Article Comments - Virtual prototype for booting Linux ...
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top