Embedded Systems Design Europe - November 2007 - (Page 33) multiprocessing ming model, user-defined instructions (UDIs) are another method that can be effective for creating accelerated, multiprocess applications. In this approach, a traditional processor makes a direct call (perhaps using a C function interface) to a custom hardware element, with data (or addresses to data) being transferred as part of the call. THE ROLE OF C-TO-FPGA TOOLS Using standard C for application development has many advantages, not the least of which is the opportunity to use iterative, software-oriented methods of design optimization and debugging. With the Impulse C tools, for example, both hardware and software elements of the complete application can be described, partitioned, and debugged with standard C programming tools. During this process, programmers can employ familiar C-code optimizations to increase performance and throughput, without having much FPGA-specific hardware knowledge. In streaming applications, hardware and software processes communicate through buffered data streams that are implemented directly in hardware. Cto-FPGA tools make it possible to write piplined, parallel applications at a relatively high level of abstraction, without the cycle-by-cycle synchronization that would otherwise be required. Throughput optimization is critical to system performance. Computation gains can be erased by poor pipelining or C code, or by inefficient use of parallel computing resources. Hardware and software optimization is required to keep the pipelines full and data moving. Optimization is best achieved by combining automated and interactive techniques and by selecting hardware/ software communication methods that are appropriate for the target FPGA platform. Let’s now look at the pros and cons of the different multiprocessing acceleration options. Bus-based memory is used to transfer data on a shared bus where an accelerator is designed as a bus-connected peripheral. Examples of this include IBM’s PowerPC CoreConnect and Altera’s Avalon. The advantages are that it’s simpler from a system-interface perspective. Bus-based memory is good for transferring larger chunks of data, and to the processor the accelerator looks just like standard peripheral. The disadvantages are that performance may suffer due to contention if the bus is shared. Streaming data is used to transfer data in packets where the FPGA and processor are connected by multiple high-performance dedicated channels. Examples of these channels include the Xilinx FSL and APU interfaces. Advantages are high throughput rates via inherently streaming interfaces without bus contention issues. The disadvantages are that streaming interfaces requires the use of dedicated hardware for each communication channel, and that the data being processed must be accessed serially. The UDI is used to create a dedicated hardware replacement for a callable function. In this case, streaming or memory interfaces connect the accelerator to the CPU. One or more C functions are converted to hardware equivalents. UDIs replace original function call. The advantages are that less change is required to the original software application (just call the accelerated function), while providing a more natural way for programmers to think about acceleration. UDIs achieve the most impact when used for creating small accelerated functions. Multiple-process, pipelined hardware accelerators don’t recognize as large an improvement. With the advent of FPGA-embedded processors, a common design environment for both hardware and software is highly desirable. FPGA-specific development tools can help to manage most aspects of peripheral selection and system bring-up for FPGA-based embedded applications. Board support packages can also simplify this process, resulting in a working hardware/software prototype created in minutes using hardware peripheral cores. However, the creation of custom hardware accel- www.embedded.com/europe | embedded systems design europe | NOVEMBER – DECEMBER 2007 33 030-031-032-033-034-035_ESDE.ind33 33 9/11/07 11:27:31 http://www.dvsinc.com http://www.dvsinc.com http://www.embedded.com/europe
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.