In Use at Leading Platform Companies, Prism Enables the Analysis, Exploration, and Verification of Embedded Software to Fully Leverage Multicore Processor Architectures.
San Jose, CA – March 17, 2009
CriticalBlue, the pioneer in embedded multicore software and platform design systems, has unveiled Prism, an embedded multicore programming system which allows software engineers to easily realize the full potential of multicore processors without significant change to their development flow. Prism allows engineers to take their existing sequential code and, without changing it, explore and analyze opportunities for concurrency, implement parallel structures, and verify efficient and safe operation.
Prism is a rich, graphical and environmental plug-in that augments existing tool flows and is portable across various multicore processor platforms. The system is in use today at leading multicore companies including Freescale, NEC Electronics, Renesas and Toshiba, and is supported by processor designers ARM and MIPS, Inc., as well as Virtutech®, Inc., provider of the Simics® virtualized system development (VSD) platform.
“Prism is the result of more than three years close cooperation with our customers and partners to drive a practical solution to facilitate optimized, multicore-ready applications for the most advanced processor architectures,” commented David Stewart, CEO, CriticalBlue. “It’s a great way for software teams adopting multicore platforms to quickly ramp up on parallel programming and for experts to realize the full performance potential of these architectures.”
Prism Technology and Use Models
The starting input of the Prism based design flow can be existing sequential software or code that already includes threading constructs. Since no code changes are required to commence analysis, it is an ideal design system for software developers to learn about their existing software at the same time as understanding the nuances of programming in the multicore world. The flexibility of the tool permits an iterative development strategy where concurrency may be gradually added, thus accelerating an engineer’s progress optimally through the many possible implementation options.
Prism allows the exploration of various operating scenarios for the code in a multicore environment. The tool’s unique what-if analysis capabilities may be utilized to rapidly explore the impact of different threading strategies, numbers of cores, dependency removal, and scheduling policies. In real customer environments, this what-if approach has produced an order of magnitude development timescale improvement over the alternative, laborious process of experimental code refactoring.
“CriticalBlue’s Prism solution is a mature and highly effective addition to our standard tool suite, providing critical multicore programming functionality that dramatically accelerates and simplifies a developer’s ability to leverage our Venezia platform’s advanced architecture,” noted Dr. Tohru Furuyama, general manager, Center for Semiconductor Research & Development, Semiconductor Company, Toshiba Corporation. “Our partnership with CriticalBlue has led to a system that meets the exact needs of our designers, a practical, powerful solution to multicore software analysis and we now ship Prism with our standard Venezia SDK.”
Prism augments existing compilers and integrated development environments (IDEs) with all the capability required for engineers to target their code effectively in a multicore environment. Once the user has decided upon the necessary code changes that deliver the required performance on the multicore architecture, Prism can be used to verify that the changes produce safe, efficient code. By including up-front verification, potential latent bugs due to data races and other common issues are eliminated early in the design process. Prism identifies dependencies between disparate code modules with obtuse, indirect communication paths, measuring their impact and checking for hard-to-debug race conditions.
“Migrating existing sequential software efficiently and effectively into multithreaded software is an essential part of unlocking the benefits of advanced multicore architectures such as Freescale’s QorIQ™ platforms,” commented Stephen Turnbull, high-performance processor portfolio manager for Freescale Semiconductor’s Networking Systems Division. “Prism has proven to be an elegant and useful solution, driving highly optimized results in a short space of time.”
Cooperation with Leading Processor Providers
The Prism technology is based on dynamic tracing of the users’ software execution, requiring an underlying simulation engine, or model, provided by the platform or a third party vendor. Various integrations have already been completed, including the ARM and MIPS Technologies, Inc. multicore capable devices, with Power Architecture and SH4 in development and others to follow.
Additionally, Prism has been architected to allow new platforms, simulators, and models to be integrated with ease. The currently available version runs in user mode, while an initial OS capable version supporting Symmetric Multi-Processing (SMP) Linux is demonstrable today.
“The ARM Cortex™-A9 processor represents ARM’s second generation multicore solution and builds on our experiences with the many ARM11™ MPCore™ designs already in mass production,” commented John Goodacre, director, Program Management, ARM. “The Prism technology enables our Partners to realize the full benefits of the MPCore architecture, while minimizing changes to their existing software.”
Prism is available today. The Prism environment comes with a user selected Platform Support Package (PSP) chosen from a range of PSPs supporting different processor types and delivering different levels of analysis capabilities and access to detailed platform models.
Prism is accompanied with a complete range of services including the creation of a best set of programming practices for specific environments, converting sequential code to parallel implementations, and other packages.
CriticalBlue guides software developers through the task of migrating to and optimizing code on multicore platforms through the delivery of innovative and multicore software focused tools, training, and services. The increasing use of complex, multicore processor architectures has accelerated demand for CriticalBlue’s technology and expertise throughout all electronic industry sectors.