Title: Computer Architecture: Development Tools for Multiprocessor FPGA Designs
1Computer ArchitectureDevelopment Tools for
Multiprocessor FPGA Designs
Daniel Raible David Avanesian Dragos
Dinca EEC-581 Final Project Presentation
2Field Programmable Gate Array (FPGA)
- Xilinx Spartan-3
- ISE development software
- 5 million gates
- 104 hardware multiplier modules
- 30 x 30 ball grid array (BGA)
- Up to 400MHz clock speeds
3Uniprocessor Limitations
- Growing embedded processing requirements are
turning system architects toward multiprocessor
designs, or Chip Multiprocessing (CMP) FPGA
Solutions - High logic density
- Parallel computing capacity
- Dedicated hardware accelerators
- Customizable
4Multiprocessor FPGA Benefits
- Multiple Independent Functions various process
modules - Control Plane Offload real-time tasks
- Data Plane Offload intense calculations
- Interface Processing bridging
- Stream Processing pipelining for throughput
- Symmetric Processing partitioning for
scalability - Reliability and Redundancy distribution
5Available FPGA Hard Soft Cores
- Xilinx
- MicroBlaze 32-bit Harvard RISC soft-core
- PicoBlaze 8-bit RISC soft-core
- PowerPC 405 32-bit Harvard RISC hard/soft-core
- Altera
- Nios 16-bit RISC soft-core
- Nios-2 32-bit RISC hard/soft-core
- OpenCores.org, etc.
- Plasma 32-bit RISC soft-core
- OpenRISC1000 64-bit RISC soft-core
6Overall Multiprocessing Topology
7Design Flow
8Communication and Synchronozation(Xilinx
proprietary)
9Development Problems
- VHDL requires levels of abstraction to accomplish
complex tasks - Implementing and debugging just a single-core
processor can be a daunting task - Synchronization and coherency between
heterogeneous cores/chips is complicated - Compatibility between different IP cores
- Complete optimization takes a long time, and
reduces flexibility
10Development Tools
- Automatic microarchitecture customization
- Configuration using TDM-MPI
- Dynamic reconfiguration
11Automatic Microarchitecture Customization
- Treats the problem as a multi-objective
constrained integer nonlinear optimization
problem. - Architecture is an array of cost functions
- Runtime
- Power consumption
- Energy dissipation
- Cache misses
- Branch mispredictions
- Correlates application runtime to MA features
- Provides a search space for the developer
12Automatic Microarchitecture Customization
13Configuration Using TDM-MPI
- Uses an application compiler to optimize the
architecture in the FPGA - Efficient programming model
- Flexible design flow
- Can homogenize a system for the developer
- Selects the best hardware engines
- Selects the communications between them
- Transparent to the programmer
14Configuration Using TDM-MPI
15Dynamic Reconfiguration
- Exploits the reconfigurable nature of the FPGA
- Partial reconfiguration during run-time (DPR)
- Reduces optimization time
- Adds generality / flexibility
- Supported by Xilinx Virtex4
16Dynamic Reconfiguration
17Future Tools
- Decreasing placement time / compilation
- Increase abstraction / usability
- Developing OTS multi-core modules
- Complete GUI development interface, drag drop
- Pre-determined application optimizations /
compromises - Implement architecture standards (IEEE?)
- Encourage 3rd party development
- Cores, multi-cores
- Compilers
18Thank-You Friends!