Jim McKibben, Director of Business Development at Mercury Computer Systems, wrote a letter in response to the multi-core article by Richard Goering in the October issue. it said:
"Just a reminder. Mercury Computer Systems, Inc. has been providing a multi-core programming framework for many years. It is rooted in Mercury's pioneering efforts in developing multi-computing platforms long before there were multi-core chips. Programming these advanced multi-computer platforms required Mercury to develop tools and libraries for customers. This framework is being supplied today as Multi-Core Framework (MCF) for the Cell BE and other multicore processors. It is distributed in the US by Terra Soft Solutions - a Linux developer - for the Playstation 3 platform as well as by Mercury for more advanced multi-core solutions like the ones pictured in the attachment."
It turns out that the attachment describes the multi-threaded version of Mentor's Calibre tool implemented on a Mercury Computer system. From the attachment, one can read that the Cell BE system consists of three components:
• The Power™ processing element (PPE) has dual hardware multi-threading and a standard VMX vector processing engine. It has separate 32 KB L1 data and instruction caches and 512 KB of L2 cache.
• In the array of eight SPEs, each has a dual-issue pipeline, a 128-bit wide vector processing engine, a large register set (128 registers, each 128 bits wide), and 256 KB of local store (LS). Each SPU accesses system memory via its memory flow controller (MFC), which is a high-performance DMA engine.
• A high-speed data ring called the element interconnect bus (EIB) consists of two pairs of counter-rotating rings with a sustained aggregate bandwidth of 205 GB/s. The MultCore Plus™ SDK (Software Development Kit) is a suite of software products specifically designed for the Cell BE processor. The SDK includes a programming framework with an API, optimized math libraries, and a graphical, integrated development environment (IDE) with both debug and analysis tools.
Richard's article did not say or imply that there are no EDA tools implemented for multi- threading or parallel processors architectures. It did point out, though, the absence of systems development tools that support the architecting, design, and development, of SoC products implemented using multicore IP.
Although a software development environment like the one offered by Mercury Computer Systems may provide a model for a multicore ESL environment, what the industry needs is two-fold, as Richard's article states. Firstly, EDA companies must put more effort in supporting the development and integration of software in a system if they expect to achieve success in the ESL market, and secondly, they must quickly develop a design infrastructure for multicore systems that can handle levels of abstraction higher than RTL. The alternative - proprietary IDE environments offered by every supplier of multicore IP - is inefficient, confusing, and costly. We can look at the present situation in the FPGA market, where device vendors offer their own IDEs, as an example of what is needed. Although some design teams are comfortable using the proprietary development environments provided by their vendor of choice, large system houses use third-party tools provided by independent EDA vendors in order to maintain vendor independence. Present market results in the FPGA sector indicate that such products can be profitable for EDA vendors.