REFLECT: Rendering FPGAs to Multi-core Embedded Computing

  • João M. P. Cardoso
  • Pedro C. Diniz
  • Zlatko Petrov
  • Koen Bertels
  • Michael Hübner
  • Hans van Someren
  • Fernando Gonçalves
  • José Gabriel F. de Coutinho
  • George A. Constantinides
  • Bryan Olivier
  • Wayne Luk
  • Juergen Becker
  • Georgi Kuzmanov
  • Florian Thoma
  • Lars Braun
  • Matthias Kühnle
  • Razvan Nane
  • Vlad Mihai Sima
  • Kamil Krátký
  • José Carlos Alves
  • João Canas Ferreira
Chapter

Abstract

The relentless increase in capacity of Field-Programmable Gate-Arrays (FPGAs) has made them vehicles of choice for both prototypes and final products requiring on-chip multi-core, heterogeneous and reconfigurable systems. Multiple cores can be embedded as hard- or soft-macros, have customizable instruction sets, multiple distributed RAMs and/or configurable interconnections. Their flexibility allows them to achieve orders of magnitude better performance than conventional computing systems via customization. Programming these systems, however, is extremely cumbersome and error-prone and as a result their true potential is only achieved very often at unreasonably high design efforts. This project covers developing, implementing and evaluating a novel compilation and synthesis system approach for FPGA-based platforms. We rely on Aspect-Oriented Specifications to convey critical domain knowledge to a mapping engine while preserving the advantages of a high-level imperative programming paradigm in early software development as well as program and application portability. We leverage Aspect-Oriented specifications and a set of transformations to generate an intermediate representation suitable to hardware mapping. A programming language, LARA, will allow the exploration of alternative architectures and design patterns enabling the generation of flexible hardware cores that can be easily incorporated into larger multi-core designs. We will evaluate the effectiveness of the proposed approach using partner-provided codes from the domain of audio processing and real-time avionics. We expect the technology developed in REFLECT to be integrated by our industrial partners, in particular by ACE, a leading compilation tool supplier for embedded systems, and by Honeywell, a worldwide solution supplier of embedded high-performance systems.

References

  1. 1.
    K. Paulsson, M. Hübner, and J. Becker, “Strategies to On- Line Failure Recovery in Self- Adaptive Systems based on Dynamic and Partial Reconfiguration,” in First NASA/ESA Conf. on Adaptive Hardware and Systems (AHS’2006), 15–18 June 2006, pp. 288–291.Google Scholar
  2. 2.
    G. Kiczales, “Aspect-Oriented Programming,” in ACM Computing Surveys (CSUR), special issue: position statements on strategic directions in computing research, 1996. 28(4es).Google Scholar
  3. 3.
    T. Elrad, R. Filman, A. Bader, “Aspect-Oriented Programming,” in Communications of the ACM, Vol. 44, Issue 10, Oct. 2001, pp. 29–32.CrossRefGoogle Scholar
  4. 4.
    G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin, “Aspect Oriented Programming,” in Proc. of the European Conference on Object-Oriented Programming (ECOOP’97), Finland. Springer-Verlag LNCS 1241. June 1997.Google Scholar
  5. 5.
    J. Irwin, J.-M. Loingtier, J. Gilbert, G. Kiczales, J. Lamping, A. Mendhekar, and T. Shpeisman, “Aspect-Oriented Programming of Sparse Matrix Code,” in Proc. Int’l Scientific Computing in Object-Oriented Parallel Environments (ISCOPE’97), Springer-Verlag, LNCS 1343, 1997, pp. 249–256.Google Scholar
  6. 6.
    S. Vassiliadis, S. Wong, G. Gaydadjiev, K. Bertels, G. Kuzmanov, and E. Panainte, “The Molen Polymorphic Processor,” in IEEE Trans. on Computers, Nov. 2004, 53(11):1363–1375.CrossRefGoogle Scholar
  7. 7.
    D. Boland, and G. Constantinides, “Automated Precision Analysis: A Polynomial Algebraic Approach” in Proc. IEEE Int’l Symp. on Field-Programmable Custom Computing Machines (FCCM’10), 2–4 May, 2010, pp. 157–164.Google Scholar
  8. 8.
    J. Clark, G. Constantinides, and P. Cheung, “Word-length selection for power minimization via nonlinear optimization,” in ACM Trans. Design Autom. Electron. Syst. (TODAES), 14(3), May 2009.Google Scholar
  9. 9.
    D. Lee, J. Villasenor, “A Bit-Width Optimization Methodology for Polynomial-Based Function Evaluation,” in IEEE Trans. on Computers, April, 2007, pp. 567–571.Google Scholar
  10. 10.
    W. Osborne, R. Cheung, J. Coutinho, W. Luk, and O. Mencer, “Automatic Accuracy-Guaranteed Bit-Width Optimization for Fixed and Floating-Point Systems,” in Proc. IEEE Int’l Conf. on Field Programmable Logic and Applications (FPL’07), 27–29 Aug. 2007, pp. 617–620.Google Scholar
  11. 11.
    A. DeHon, J. Adams, M. DeLorimier, N. Kapre, Y. Matsuda, H. Naeimi, M. Vanier, and M. Wrighton, “Design Patterns for Reconfigurable Computing,” in Proc. IEEE Symp. on Field-Programmable Custom Computing Machines (FCCM’04), April 20–23, 2004, pp. 13–23.Google Scholar
  12. 12.
    Z. Li, and T. Bui, “Robot Path Planning Using Fluid Model,” in Journal of Intelligent and Robotic Systems, v. 21, 1998, pp. 29–50.CrossRefGoogle Scholar
  13. 13.
    K. Valavanis, T. Hebert, R. Kolluru, and N. Tsourveloudis, “Mobile Robot Navigation in 2-D Dynamic Environments Using an Electrostatic Potential Field,” in IEEE Trans. Sys. and Cybernetics, 30(2), March 2000, pp. 187–196.CrossRefGoogle Scholar
  14. 14.
    ISO/IEC 11172–3 “Information technology – Coding of moving pictures and associated audio for digital storage media at up to about 1.5 Mbit/s – Part 3: Audio”.Google Scholar
  15. 15.
    ISO/IEC 13818–3 “Information technology – Generic coding of moving pictures and ­associated audio information – Part 3: Audio”.Google Scholar
  16. 16.
    R. Lämmel, E. Visser, and J. Visser, “Strategic programming meets adaptive programming,” In Proc. 2nd Int’l Conf. on Aspect-Oriented Software Development (AOSD’03), Boston, Mass., March 17–21, 2003. ACM, New York, NY, USA, pp. 168–177.Google Scholar
  17. 17.
    J. Gradecki, and N. Lesiecki, Mastering AspectJ: Aspect-Oriented Programming in Java, Wiley, 2003.Google Scholar
  18. 18.
    W. Luk, J. Coutinho, T. Todman, Y. Lam, W. Osborne, K. Susanto, Q. Liu, and W. Wong, “A High-Level Compilation Toolchain for Heterogeneous Systems,” in Proc. IEEE Int’l SOC Conference (SOCC‘09), Sept. 2009, pp. 9–18.Google Scholar
  19. 19.
    ACE CoSy compiler development system, http://www.ace.nl/compiler/cosy.html.
  20. 20.
    ACE – Associated Compiler Experts bv., “CoSy CCMIR Definition”, Ref. CoSy-8002-ccmir, 2008.Google Scholar
  21. 21.
    Y. Yankova, K. Bertels, S. Vassiliadis, R. Meeuws, and A. Virginia, “Automated HDL Generation: Comparative Evaluation,” In Proc. Int’l Symp. on Circuits and Systems (ISCAS’07), May 2007, pp. 2750–2753.Google Scholar
  22. 22.
    J. Cardoso, P. Diniz, M. Monteiro, J. Fernandes, and J. Saraiva, “A Domain-Specific Aspect Language for Transforming MATLAB Programs,” in Domain-Specific Aspect Language Workshop (DSAL’2010), part of AOSD’2010, Rennes & Saint Malo, France, March 15–19, 2010.Google Scholar
  23. 23.
    J. Cardoso, and P. Diniz, Compilation Techniques for Reconfigurable Architectures, Springer, Oct. 2008.Google Scholar
  24. 24.
    J. Cardoso, P. Diniz, and M. Weinhardt, “Compiling for Reconfigurable Computing: A Survey,” in ACM Computing Surveys (CSUR), Vol. 42, No. 4, Article 13, June 2010, pp. 1–65.CrossRefGoogle Scholar
  25. 25.
    P. Diniz, M. Hall, J. Park, B. So and H. Ziegler, “Automatic Mapping of C to FPGAs with the DEFACTO Compilation and Synthesis Systems,” in Elsevier Journal on Microprocessors and Microsystems, Vol. 29, Issues 2–3, 1 April 2005, pp. 51–62.CrossRefGoogle Scholar
  26. 26.
    J. Cardoso, and H. Neto, “Compilation for FPGA-Based Reconfigurable Hardware,” in IEEE Design & Test of Computers Magazine, March/April, 2003, vol. 20, no.2, pp. 65–75.CrossRefGoogle Scholar
  27. 27.
    M. Weinhardt, W. Luk, “Pipeline vectorization,” in IEEE Trans. on CAD of Integrated Circuits and Systems, 20(2), 2001, pp. 234–248.CrossRefGoogle Scholar
  28. 28.
    Q. Liu, G. Constantinides, K. Masselos, and P. Cheung, “Combining Data Reuse with Data-Level Parallelization for FPGA Targeted Hardware Compilation: A Geometric Programming Framework”, in IEEE Trans. on Computer-Aided Design, Vol. 28, Issue 3, March 2009, pp. 305–315CrossRefGoogle Scholar
  29. 29.
    D. Lee, A. Abdul Gaffar, O. Mencer, and W. Luk, “Optimizing hardware function evaluation,” in IEEE Transactions on Computers, vol. 54, no. 12, Dec. 2005, pp. 1520–1531.CrossRefGoogle Scholar
  30. 30.
    Y. Yankova, K. Bertels, S. Vassiliadis, R. Meeuws, and A. Virginia, “Automated HDL Generation: Comparative Evaluation,” In Proc. Int’l Symp. on Circuits and Systems (ISCAS2007), May 2007.Google Scholar
  31. 31.
    E. Panainte, K. Bertels, and S. Vassiliadis, “The Molen Compiler for Reconfigurable Processors,” in ACM Trans. in Embedded Computing Systems (TECS), 6(1), Article 6, Feb. 2007.Google Scholar
  32. 32.
    E. Panainte, K. Bertels, and S. Vassiliadis, “Interprocedural Compiler Optimization for Partial Run-Time Reconfiguration,” in Journal of VLSI Signal Processing, 43(2), June 2006, pp. 161–172.MATHCrossRefGoogle Scholar
  33. 33.
    J. Cardoso, “On Combining Temporal Partitioning and Sharing of Functional Units in Compilation for Reconfigurable Architectures,” in IEEE Trans. on Computers, Vol. 52, No. 10, Oct. 2003, pp. 1362–1375.MathSciNetCrossRefGoogle Scholar
  34. 34.
    Q. Liu, T. Todman, J. Coutinho, W. Luk, and G. Constantinides, “Optimising designs by combining model-based and pattern-based transformations”, in Proc. 19th Int’l Conf. on Field Programmable Logic and Applications (FPL’09), Aug. 31-Sept. 2, 2009, pp. 308–313.Google Scholar
  35. 35.
    J. Coutinho, J. Jiang, and W. Luk, “Interleaving behavioral and cycle-accurate descriptions for reconfigurable hardware compilation,” in Proc. IEEE Symp. on Field Programmable Custom Computing Machines (FCCM’05), 18–20 April, 2005, pp. 245–254.Google Scholar
  36. 36.
    K. Bertels, V. Sima, Y. Yankova, G. Kuzmanov, W. Luk, J. Coutinho, F. Ferrandi, C. Pilato, M. Lattuada, D. Sciuto, A. Michelotti, “HArtes: Hardware-Software Codesign for Heterogeneous Multicore Platforms,” in IEEE Micro, 30(5): 2010, pp. 88–97.CrossRefGoogle Scholar
  37. 37.
    M. Bowen, Handel-C Language Ref. Manual, Embedded Solutions Ltd., 2.1 ed., 1998.Google Scholar
  38. 38.
    Mitrionics AB Inc., The Mitrion Processor, Product Overview, Sweden, 2005. http://www.mitrion.com (accessed on Dec. 2010).
  39. 39.
    Nallatech, http://www.nallatech.com (accessed on Dec. 2010).
  40. 40.
    J. Tripp, M. Gokhale, K. Peterson, “Trident: From High-Level Language to Hardware Circuitry,” in IEEE Computer, March 2007, vol. 40, no 3, pp. 28–37.Google Scholar
  41. 41.
    M. Gokhale, J. Stone, J. Arnold, and M. Kalinowski, “Stream-Oriented FPGA Computing in the Streams-C High Level Language,” in Proc. IEEE Symp. on FPGAs for Custom Computing Machines (FCCM’00), April 2000, pp. 126–135.Google Scholar
  42. 42.
    Z. Guo, W. Najjar, and A. Buyukkurt, “Efficient Hardware Code Generation for FPGAs,” in ACM Trans. on Architecture and Compiler Optimizations (TACO) Vol. 5, No. 1, Article 6, May 2008.Google Scholar
  43. 43.
    Impulse Accelerated Technologies, Inc., http://www.impulseaccelerated.com/ (Dec. 2010).
  44. 44.
    Catapult C Synthesis Overview, http://www.mentor.com/esl/catapult/ (Dec. 2010).
  45. 45.
    C. Huang, S. Ravi, A. Raghunathan, and N. Jha, “Synthesis of heterogeneous distributed ­architectures for memory-intensive applications,” in Proc. Int’l Conf. Computer-Aided Design (ICCAD’03), Nov. 2003, pp. 46–53.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  • João M. P. Cardoso
    • 1
  • Pedro C. Diniz
    • 2
  • Zlatko Petrov
    • 3
  • Koen Bertels
    • 4
  • Michael Hübner
    • 5
  • Hans van Someren
    • 6
  • Fernando Gonçalves
    • 7
  • José Gabriel F. de Coutinho
    • 8
  • George A. Constantinides
    • 9
  • Bryan Olivier
    • 6
  • Wayne Luk
    • 8
  • Juergen Becker
    • 10
  • Georgi Kuzmanov
    • 4
  • Florian Thoma
    • 5
  • Lars Braun
    • 5
  • Matthias Kühnle
    • 5
  • Razvan Nane
    • 4
  • Vlad Mihai Sima
    • 4
  • Kamil Krátký
    • 3
  • José Carlos Alves
    • 11
  • João Canas Ferreira
    • 11
  1. 1.Departamento de Engenharia Informática, Faculdade de Engenharia (FEUP)Universidade do PortoPortoPortugal
  2. 2.Electronic Systems Design and Automation Research Group, INESC-IDLisboaPortugal
  3. 3.Advanced Technology EuropeHoneywell InternationalBrnoCzech Republic
  4. 4.Computer Engineering Lab, Faculty Electrical Engineering, Mathematics and Computer ScienceTechnische Universiteit Delft, TUDDelftThe Netherlands
  5. 5.Institut für Technik der Informationsverarbeitung, Fakultät für Elektrotechnik und Informationstechnik, Karlsruher Institut für Technologie (KIT)KarlsruheGermany
  6. 6.ACE Associated Compiler Experts b.v.AmsterdamThe Netherlands
  7. 7.Coreworks – Projectos de Circuitos e Sistemas Electrónicos S.A., CWPorto, LisboaPortugal
  8. 8.Department of ComputingImperial College LondonLondonUK
  9. 9.Department of Electrical & Electronic EngineeringImperial College LondonLondonUK
  10. 10.Institut fur Technik der Informationsverarbeitung, Fakultat fur Elektrotechnik und Informationstechnik, Karlsruhe Institute für TechnologyKarlsruheGermany
  11. 11.Departamento de Engenharia Electrótecnica, Faculdade de Engenharia (FEUP)Universidade do PortoPortoPortugal

Personalised recommendations