Introduction to Hardware/Software Codesign

  • Soonhoi Ha
  • Jürgen Teich
  • Christian Haubelt
  • Michael Glaß
  • Tulika Mitra
  • Rainer Dömer
  • Petru Eles
  • Aviral Shrivastava
  • Andreas Gerstlauer
  • Shuvra S. Bhattacharyya
Living reference work entry

Abstract

Hardware/Software Codesign (HSCD) is an integral part of modern Electronic System Level (ESL) design flows. This chapter will review important aspects of hardware/software codesign flows, summarize the historical evolution of codesign techniques, and subsequently summarize each of its major branches of research and achievements that later will be presented in detail by different parts of this Handbook of Hardware/Software Codesign.

Keywords

Quartz Plague 

References

  1. 1.
    Aho AV, Lam MS, Sethi R, Ullman JD (2006) Compilers: principles, techniques, and tools, 2nd edn. Addison-Wesley Longman Publishing Co., Inc., BostonMATHGoogle Scholar
  2. 2.
    Alur R, Dill DL (1994) A theory of timed automata. Theor Comput Sci 126(2):183–235MathSciNetCrossRefMATHGoogle Scholar
  3. 3.
    Antoniazzi S, Balboni A, Fornaciari W, Sciuto D (1994) A methodology for control-dominated systems codesign. In: Proceedings of the international workshop on hardware/software codesign, pp 2–9Google Scholar
  4. 4.
    Balarin F, Chiodo M, Giusto P, Hsieh H, Jurecska A, Lavagno L, Passerone C, Sangiovanni-Vincentelli A, Sentovich E, Suzuki K, Tabbara B (1997) Hardware-Software co-design of embedded systems: the POLIS approach. Kluwer Academic Publishers, BostonCrossRefMATHGoogle Scholar
  5. 5.
    Banakar R, Steinke S, Lee BS, Balakrishnan M, Marwedel P (2002) Scratchpad memory: a design alternative for cache on-chip memory in embedded systems. In: Proceedings of CODESCrossRefGoogle Scholar
  6. 6.
    Bengtsson J, Larsen K, Larsson F, Pettersson P, Yi W (1996) UPPAAL—a tool suite for automatic verification of real-time systems. Springer, Berlin, pp 232–243. DOI 10.1007/BFb0020949Google Scholar
  7. 7.
    Benveniste A, Caspi P, Edwards S, Halbwachs N, Le Guernic P, de Simone R (2003) The synchronous languages twelve years later. Proc IEEE 91(1):64–83CrossRefGoogle Scholar
  8. 8.
    Buttazzo GC (2011) Hard real-time computing systems: predictable scheduling algorithms and applications, vol 24. Springer, New YorkMATHGoogle Scholar
  9. 9.
    Cassandras C, Lafortune S (2008) Introduction to discrete event systems, 2nd edn. Springer, New YorkCrossRefMATHGoogle Scholar
  10. 10.
    Chattopadhyay S, Roychoudhury A, Rosén J, Eles P, Peng Z (2014) Time-predictable embedded software on multi-core platforms: analysis and optimization. Found TrendsⓇElectron Des Autom 8(3–4):199–356. DOI 10.1561/1000000037CrossRefGoogle Scholar
  11. 11.
    Clarke EM, Emerson EA, Sistla AP (1986) Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans Program Lang Syst 8(2):244–263CrossRefMATHGoogle Scholar
  12. 12.
    Clarke EM, Grumberg O, Peled DA (1999) Model checking. MIT Press, CambridgeGoogle Scholar
  13. 13.
    Coussy P, Morawiec A (2008) High-level synthesis: from algorithm to digital circuit, 1st edn. Springer, DordrechtCrossRefGoogle Scholar
  14. 14.
    Densmore D, Passerone R, Sangiovanni-Vincentelli A (2006) A platform-based taxonomy for ESL design. IEEE Des Test Comput 23:359–374CrossRefGoogle Scholar
  15. 15.
    Edwards S, Lavagno L, Lee EA, Sangiovanni-Vincentelli A (1997) Design of embedded systems: formal models, validation, and synthesis. Proc IEEE 85(3):366–390CrossRefGoogle Scholar
  16. 16.
    Eichenberger AE, O’Brien JK, O’Brien KM, Wu P, Chen T, Oden PH, Prener DA, Shepherd JC, So B, Sura Z, Wang A, Zhang T, Zhao P, Gschwind MK, Archambault R, Gao Y, Koo R (2006) Using advanced compiler technology to exploit the performance of the cell broadband engineTM architecture. IBM Syst J 45:59–84CrossRefGoogle Scholar
  17. 17.
    Gajski DD, Dutt N, Wu A, Lin S (1992) High level synthesis: introduction to chip and system design. Springer, New YorkCrossRefGoogle Scholar
  18. 18.
    Gerstlauer A, Haubelt C, Pimentel A, Stefanov T, Gajski D, Teich J (2009) Electronic system-level synthesis methodologies. IEEE Trans Comput Aided Des Integr Circuits Syst 28(10):1517–1530CrossRefGoogle Scholar
  19. 19.
    Girault A, Lee B, Lee EA (1999) Hierarchical finite state machines with multiple concurrency models. IEEE Trans Comput Aided Des Integr Circuits Syst 18(6):742–760CrossRefGoogle Scholar
  20. 20.
    Harel D (1987) Statecharts: a visual formalism for complex systems. Sci Comput Program 8(3):231–274MathSciNetCrossRefMATHGoogle Scholar
  21. 21.
    Hoare C (1985) Communicating sequential processes. Prentice Hall, Englewood CliffsMATHGoogle Scholar
  22. 22.
    Kahn G (1974) The semantics of a simple language for parallel programming. In: Proceedings of IFIP congress 74. North-Holland Publishing CoGoogle Scholar
  23. 23.
    Kalavade A, Lee, EA (1993) A hardware/software codesign methodology for DSP applications. IEEE Des Test Comput 10(3):16–28CrossRefGoogle Scholar
  24. 24.
    Lattner C, Adve V (2004) LLVM: a compilation framework for lifelong program analysis & transformation. In: Proceedings of the 2004 international symposium on code generation and optimization (CGO’04), Palo AltoGoogle Scholar
  25. 25.
    Lee EA, Parks TM (1995) Dataflow process networks. Proc IEEE 83:773–799CrossRefGoogle Scholar
  26. 26.
    Lee EA, Sangiovanni-Vincentelli A (1998) A framework for comparing models of computation. IEEE Trans Comput Aided Des Integr Circuits Syst 17(12):1217–1229CrossRefGoogle Scholar
  27. 27.
    Prakash S, Parker AC (1992) SOS: synthesis of application-specific heterogeneous multiprocessor systems. J Parallel Distrib Comput 16(4):338–351CrossRefMATHGoogle Scholar
  28. 28.
    Redd B, Kellis S, Gaskin N, Brown R (2014) The impact of process scaling on scratchpad memory energy savings. J Low Power Electron Appl 4(3):231. http://www.mdpi.com/2079-9268/4/3/231 CrossRefGoogle Scholar
  29. 29.
    Saleh R, Wilton S, Mirabbasi S, Hu A, Greenstreet M, Lemieux G, Pande PP, Grecu C, Ivanov A (2006) System-on-chip: reuse and integration. Proc IEEE 94(6):1050–1069. DOI 10.1109/JPROC.2006.873611CrossRefGoogle Scholar
  30. 30.
    Stallman RM, DeveloperCommunity G (2009) Using the GNU compiler collection: a GNU manual for GCC version 4.3.3. CreateSpace, ParamountGoogle Scholar
  31. 31.
    Teich J (2012) Hardware/Software codesign: the past, the present, and predicting the future. Proc IEEE 100(Special Centennial Issue):1411–1430. DOI 10.1109/JPROC.2011.2182009Google Scholar
  32. 32.
    Teich J, Blickle T, Thiele L (1997) An evolutionary approach to system-level synthesis. In: Proceedings of the international workshop on hardware/software codesign (CODES/CASHE), pp 167–171Google Scholar
  33. 33.
    Wilhelm R, Engblom J, Ermedahl A, Holsti N, Thesing S, Whalley D, Bernat G, Ferdinand C, Heckmann R, Mitra T, Mueller F, Puaut I, Puschner P, Staschulat J, Stenstrom P (2008) The worst-case execution time problem–overview of methods and survey of tools. ACM Trans Embed Comput Syst 7(3):Art. 36Google Scholar

Copyright information

© Springer Science+Business Media Dordrecht 2017

Authors and Affiliations

  • Soonhoi Ha
    • 1
  • Jürgen Teich
    • 2
  • Christian Haubelt
    • 3
  • Michael Glaß
    • 4
  • Tulika Mitra
    • 5
  • Rainer Dömer
    • 6
  • Petru Eles
    • 7
  • Aviral Shrivastava
    • 8
  • Andreas Gerstlauer
    • 9
  • Shuvra S. Bhattacharyya
    • 10
    • 11
  1. 1.Seoul National UniversityGwanak-guKorea
  2. 2.Friedrich-Alexander-Universität Erlangen-NürnbergErlangenGermany
  3. 3.Universität RostockRostockGermany
  4. 4.Ulm UniversityUlmGermany
  5. 5.National University of SingaporeSingaporeSingapore
  6. 6.University of California, IrvineIrvineUSA
  7. 7.Linköping UniversityLinköpingSweden
  8. 8.Arizona State UniversityTempeUSA
  9. 9.The University of Texas at AustinAustinUSA
  10. 10.University of MarylandCollege ParkUSA
  11. 11.Tampere University of TechnologyTampereFinland

Personalised recommendations