Multicore Systems on Chips (SoCs) have been available for many years, but only recently have embedded systems providers started to develop multicore software, software that takes advantage of the multiple processor cores by parallelizing some of the tasks. This has significant performance benefits in terms of performance per watt over completely separated and serialized applications running on an SoC. These benefits come at the cost of additional complexity in the software, leading to problems with bugs, schedules, support, optimization and management of the development process.
The Imperas Multiprocessor/Multicore/Multithread Software Development Kit (M*SDK™) technology addresses these issues, providing an integrated suite of tools for embedded software development. M*SDK utilizes the Open Virtual Platforms modeling and simulation APIs. Once the virtual platform is built, the final hardware executables are run (simulated), without modification, on the virtual platform. The Verification, Analysis and Profiling (M*VAP™) tools utilize the Imperas SlipStreamer™ patent pending binary interception technology, and include key tools for software development on virtual platforms such as OS and CPU-aware tracing (instruction, function, task, event), hot spot profiling, code coverage and memory and cache analysis. SlipStreamer enables these analytical tools to operate without any modification or instrumentation of the software source code, i.e., the tools are completely non-intrusive. With the SlipStreamer technology, users can develop their own tools, such as adding assertions to the software test environment. M*SDK also includes M*DBG, providing full co-debug of software and hardware models, and complete platform introspection by using the unique 3-dimensional debug™ capability.