1 / 34

Configurable, reconfigurable, and run-time reconfigurable computing

Configurable, reconfigurable, and run-time reconfigurable computing. Outline. Introduction Configurable Reconfigurable Run-time reconfigurable Motivating example Tools Software compilers for configurable/reconfigurable systems Multiprocessor complications. Introduction.

zihna
Download Presentation

Configurable, reconfigurable, and run-time reconfigurable computing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Configurable, reconfigurable, and run-time reconfigurable computing

  2. Outline • Introduction • Configurable • Reconfigurable • Run-time reconfigurable • Motivating example • Tools • Software compilers for configurable/reconfigurable systems • Multiprocessor complications Modular Design of Configurable Multiprocessor Systems

  3. Introduction Example of a one-dimensional (constraint) knapsack problem: Which boxes should be chosen to maximize the amount of money while still keeping the overall weight under 15 kg? A multi dimensional problem could consider the density or dimensions of the boxes, the latter a typical packing problem. (The solution in this case is to choose all of the boxes besides the green one.) http://en.wikipedia.org/wiki/Knapsack_problem Modular Design of Configurable Multiprocessor Systems

  4. Configuration • Configurable solution: • Investigate the best set of boxes to take • Take them • No more thinking about boxes • REconfigurable solution: • Investigate the best set of boxes to take • Take them for a long time • Stop what I’m doing and change everything in my backpack • RUN TIME reconfigurable solution: • While walking, take the boxes I need and switch for the boxes I don’t need right now. This cost me some time to reconfigure the items in my backpack while walking. Modular Design of Configurable Multiprocessor Systems

  5. What are the partition trade off’s & how do I verify them? Which CPU? Which device? Power? Area? Speed? Functionality? Cost? Project Specification How can I quickly explore the design architecture and validate it early? HW ready HW HDLs SW C/ C++ Typical system design flow  Spec

  6. What are the partition trade off’s & how do I verify them? Which CPU? Which device? Power? Area? Speed? Functionality? Cost? Project Specification How can I quickly explore the design architecture and validate it early? Codesign environment HW SystemC, Handel-C DSM DSM DSM DSM PAL DSM SW C/ C++ Specify & Verify Design & Verify Compile & Verify Software-compiled system design flow Spec

  7. What is the essential design question? • MAIN QUESTION: How do we make practical systems (large) and meet time-to-market window (small)? • ANSWER: Comprehensive co-design tools Modular Design of Configurable Multiprocessor Systems

  8. Motivating Example

  9. Motivating Example • Congratulations! You are making a cellular phone. • There are many design constraints: • Finite chip area • Finite power consumption • Finite memory (registers, cache, RAM, disk) • Real-time requirements for tasks • There are many features: • Camera • Phonebook • Encryption/decryption • DSP • … Modular Design of Configurable Multiprocessor Systems

  10. How do we do co-design for this project? • We must make software and hardware for our beloved phone. • Which software segments should be implemented in hardware? • Do we add one more processor and bus connection, or dedicate that area to a custom instruction? • We are OPTIMIZING • This is decision problem is also known as the “Knapsack problem” and sometime the “assignment algorithm”, and computers can solve this faster than humans, given a complete and formal problem specification. Modular Design of Configurable Multiprocessor Systems

  11. Tools

  12. Real Configurable System Tools Celoxica • System level co-design from specification to direct implementation • Profiling • Partitioning & trade-off analysis • Co-verification & co-simulation • Higher-level language (HLL) synthesis direct to EDIF or RTL • Software-compiled system design • Best time-to-market • Fastest simulation times … VERY FAST • HW/ SW partitioning solution • Seamless HW & SW verification • Reduces cost, risk & time of design • Best QoR & Quality of Design

  13. Real Configurable System Tools Dimond 2004 Modular Design of Configurable Multiprocessor Systems

  14. Real Configurable System Tools CoWare Processor Designer Modular Design of Configurable Multiprocessor Systems

  15. Real Configurable System Tools Tensilica Modular Design of Configurable Multiprocessor Systems

  16. Tradeoffs Tensilica Modular Design of Configurable Multiprocessor Systems

  17. Tradeoffs Modular Design of Configurable Multiprocessor Systems

  18. Configurable processors Modular Design of Configurable Multiprocessor Systems

  19. Configurable processors From register file to configurable block Modular Design of Configurable Multiprocessor Systems

  20. Configurable processors Stall for reconfiguration Or maybe stall during execution Modular Design of Configurable Multiprocessor Systems

  21. Configurable processors Not realistic Modular Design of Configurable Multiprocessor Systems

  22. Techniques • Many techniques for finding what to implement as hardware: • Atasu et al. (DAC 03, CODES 05) • Biswas et al. (DATE 05), Cong et al. (FPGA 04) • Clark et al. (MICRO 03, HOT CHIPS 04) • Goodwin and Petkov (CASES 03) • Sun et al. (ICCAD 03), Yu et al. (CASES 04) • Many more… • This is an NP-hard problem equivalent to the “largest common sub-graph identification” problem Modular Design of Configurable Multiprocessor Systems

  23. Software compilers for configurable/reconfigurable systems

  24. What do we want from our compiler? • Make it easy to: • Add instructions to my processor model • Check if my model will meet my requirements (simulation/ profiling) • Optimize the generated code for small size and fast speed • Compile code on my PC to run on my phone (retargetable) • Hide the details of anything I don’t care about: • Break the compiler into frond end, middle part, and a backend Modular Design of Configurable Multiprocessor Systems

  25. What toys do we need? • Compiler (front-middle-backend), debugger, simulator, profiler, assembler, linker, operating system, FPGA Modular Design of Configurable Multiprocessor Systems

  26. What are some common compilers? • GCC (Java, Ada, C, C++, has open-MP, popular, optimizing) • LCC (Small code size) • Trimaran • MIMOLA • RECORD • CoSy • LLVM Modular Design of Configurable Multiprocessor Systems

  27. Multiprocessor complications Modular Design of Configurable Multiprocessor Systems

  28. Configurable Interconnect Design Flow Modular Design of Configurable Multiprocessor Systems

  29. WISHBONE Datasheet • WISHBONE specification requires that each component has a datasheet Example from WISHBONE B.3 Modular Design of Configurable Multiprocessor Systems

  30. Network Specification Modular Design of Configurable Multiprocessor Systems

  31. Example Interconnect Modular Design of Configurable Multiprocessor Systems

  32. Life looks simple at first Modular Design of Configurable Multiprocessor Systems

  33. But life is complicated Modular Design of Configurable Multiprocessor Systems

  34. Questions? Thank You

More Related