Skip to main content

General-Purpose Embedded Cores

  • Chapter
  • First Online:
A Practical Introduction to Hardware/Software Codesign
  • 5362 Accesses

Abstract

The most successful programmable component on silicon is the micro-processor. Fueled by a well-balanced mix of efficient implementations, flexibility, and tool support, microprocessors have grown into a cornerstone of electronic design. This chapter reviews the major features of microprocessor architectures, and in particular of RISC (Reduced Instruction Set Computer) processors. The topic of microprocessors is a very broad one; entire books are devoted to its discussion. The objectives of this chapter are more modest. Our objective is to build insight into the relation between a C program and its execution on a micro-processor. This insight is crucial for hardware-software codesign. Indeed, the interaction between custom hardware coprocessors and software will always proceed through the microprocessor. The low-level behavior of software on a microprocessor therefore plays a fundamental role in the efficiency of a system that uses hardware as well as software components. The chapter covers four different aspects of C program execution on RISC processors: the architectural and behavioral features of RISC processors, the implementation and low-level organization of C programs, the role and use of compiler tools, and the role and the use of simulation tools. Much more can be said on micro-processors. The Further Reading section at the end of this chapter provides additional suggestions for self-study.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 79.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 99.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 129.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Aeroflex G (2009) Leon-3/grlib intellectual property cores. Technical report, http://www.gaisler.com

  2. Altera (2011) Avalon interface specifications. http://www.altera.com/literature/manual/mnl_avalon_spec.pdf

  3. Appel AW (1997) Modern compiler implementation in C: basic techniques. Cambridge University Press, New York, NY, USA

    Book  Google Scholar 

  4. Atmel (2008) AT91SAM7l128 preliminary technical information. http://www.atmel.com/dyn/products/product_card.asp?part_id=4293

  5. Berry G (2000) The foundations of esterel. In: Milner R (ed) Proof, language, and interaction. MIT, Cambridge, pp 425–454

    Google Scholar 

  6. Bogdanov A, Knudsen L, Leander G, Paar C, Poschmann A, Robshaw M, Seurin Y, Vikkelsoe C (2007) Present: an ultra-lightweight block cipher. In: Proceedings of the cryptographic hardware and embedded systems 2007, Vienna, Springer, Heidelberg, pp 450–466

    Google Scholar 

  7. Butenhof D (1997) Programming with POSIC Threads. Addison-Wesley Professional, 1997. ISBN 978-0201633924.

    Google Scholar 

  8. Claasen T (1999) High speed: not the only way to exploit the intrinsic computational power of silicon. In: Solid-state circuits conference, 1999. Digest of technical papers, ISSCC. IEEE International, Piscataway, Piscataway, NJ, USA, pp 22–25

    Google Scholar 

  9. Claasen T (2006) An industry perspective on current and future state of the art in system-on-chip (soc) technology. Proc IEEE 94(6):1121–1137

    Article  Google Scholar 

  10. Committee T (1995) Tool interface standard executable and linkable format (elf) specification, version 1.2. Technical report, http://refspecs.freestandards.org/elf/elf.pdf

  11. Cytron R, Ferrante J, Rosen BK, Wegman MN, Zadeck FK (1991) Efficiently computing static single assignment form and the control dependence graph. ACM Trans Program Lang Syst 13(4):451–490

    Article  Google Scholar 

  12. Davio M, Deschamps JP, Thayse A (1983) Digital systems with algorithm implementation. Wiley, New York

    MATH  Google Scholar 

  13. De Canniere C, Preneel B (2005) Trivium specifications. Technical report, ESAT/SCD-COSIC, K.U.Leuven, http://www.ecrypt.eu.org/stream/p3ciphers/trivium/trivium_p3.pdf

  14. Dennis J (2007) A dataflow retrospective – how it all began. http://csg.csail.mit.edu/Dataflow/talks/DennisTalk.pdf

  15. D’Errico J, Qin W (2006) Constructing portable compiled instruction-set simulators: an adl-driven approach. In: DATE ’06: proceedings of the conference on design, automation and test in Europe, Munich, pp 112–117

    Google Scholar 

  16. Dijkstra EW (2009) The E.W. Dijkstra Archive. Technical report, http://www.cs.utexas.edu/users/EWD/

  17. ECRYPT (2008) The estream project. Technical report, http://www.ecrypt.eu.org/stream/technical.html

  18. Edwards SA (2006) The challenges of synthesizing hardware from c-like languages. IEEE Des Test Comput 23(5):375–386

    Article  Google Scholar 

  19. Eker J, Janneck J, Lee E, Liu J, Liu X, Ludvig J, Neuendorffer S, Sachs S, Xiong Y (2003) Taming heterogeneity – the ptolemy approach. Proc IEEE 91(1):127–144

    Article  Google Scholar 

  20. Gaj K, Chodowiec P (2009) FPGA and ASIC implementations of AES. In: Koc C (ed) Cryptographic engineering. Springer, New York. ISBN 978-0-387-71817-0.

    Google Scholar 

  21. Gajski DD, Abdi S, Gerstlauere A, Schirner G (2009) Embedded system design: modeling, synthesis, verification. Springer, Boston

    Google Scholar 

  22. Ganesan P, Venugopalan R, Peddabachagari P, Dean A, Mueller F, Sichitiu M (2003) Analyzing and modeling encryption overhead for sensor network nodes. In: WSNA ’03: proceedings of the 2nd ACM international conference on wireless sensor networks and applications. ACM, New York, pp 151–159. doi:http://doi.acm.org/10.1145/941350. 941372

    Google Scholar 

  23. Good T, Benaissa M (2007) Hardware results for selected stream cipher candidates. Technical report, eSTREAM project, http://www.ecrypt.eu.org/stream/hw.html

  24. Gupta S, Gupta R, Dutt N, Nicolau A (2004) SPARK: a parallelizing approach to the high-level synthesis of digital circuits. Springer, Boston

    Google Scholar 

  25. Harel D (1987) Statecharts: a visual formulation for complex systems. Sci Comput Program 8(3):231–274

    Article  MathSciNet  MATH  Google Scholar 

  26. Hennessy JL, Patterson DA (2006) Computer architecture: a quantitative approach, 4th edn. Morgan Kaufmann, Boston

    MATH  Google Scholar 

  27. Hillis WD, Steele GL Jr (1986) Data parallel algorithms. Commun ACM 29(12):1170–1183

    Article  Google Scholar 

  28. Hodjat A, Verbauwhede I (2004) High-throughput programmable cryptocoprocessor. IEEE Micro 24(3):34–45

    Article  Google Scholar 

  29. Hoe JC (2000) Operation-centric hardware description and synthesis. Ph.D. thesis, MIT

    Google Scholar 

  30. IBM (2009) Coreconnect bus architecture. Technical report, https://www-01.ibm.com/chips/techlib/techlib.nsf/productfamilies/CoreConnect_Bus_Architecture

  31. Ivanov A, De Micheli G (2005) Guest editors’ introduction: The network-on-chip paradigm in practice and research. IEEE Des Test Comput 22(5):399–403

    Article  Google Scholar 

  32. Kaps JP (2008) Chai-tea, cryptographic hardware implementations of xtea. In: INDOCRYPT. Springer, New York, pp 363–375

    Google Scholar 

  33. Karlof C, Sastry N, Wagner D (2004) Tinysec: a link layer security architecture for wireless sensor networks. In: SenSys ’04: proceedings of the 2nd international conference on embedded networked sensor systems. ACM, New York, pp 162–175. doi:http: //doi.acm.org/10.1145/1031495.1031515

    Google Scholar 

  34. Kastner R, Kaplan A, Sarrafzadeh M (2003) Synthesis techniques and optimizations for reconfigurable systems. Kluwer, Boston

    Google Scholar 

  35. Keutzer K, Newton A, Rabaey J, Sangiovanni-Vincentelli A (2000) System-level design: orthogonalization of concerns and platform-based design. IEEE Trans Comput Aided Des Integr Circuit Syst 19(12):1523–1543

    Article  Google Scholar 

  36. Keppel D (1994), Tools and Techniques for building fast portable thread packages. http://www.cs.washington.edu/research/compiler/papers.d/quickthreads.html

  37. Kogge PM (1981) The architecture of pipelined computers. McGraw-Hill, New York

    MATH  Google Scholar 

  38. Leander G, Paar C, Poschmann A, Schramm K (2007) New lightweight des variants. In: Biryukov A (ed) Fast software encryption. Lecture notes on computer science, vol 4593. Springer, New York, pp 196–200

    Google Scholar 

  39. Lee EA, Messerschmitt DG (1987) Static scheduling of synchronous data flow programs for digital signal processing. IEEE Trans Comput 36(1):24–35

    Article  MATH  Google Scholar 

  40. Lee EA, Seshia SA (2011) Introduction to embedded systems, a cyber-physical systems approach. http://LeeSeshia.org, ISBN 978-0-557-70857-4.

  41. Leupers R, Ienne P (2006) Customizable embedded processors: design technologies and applications. Morgan Kaufmann, San Francisco

    Google Scholar 

  42. Ltd A (2009a) The amba system architecture. Technical report, http://www.arm.com/products/solutions/AMBAHomePage.html

  43. Ltd A (2009b) Arm infocenter. Technical report, http://infocenter.arm.com/help/index.jsp

  44. Lynch M (1993) Micro-programmed state machine design, CRC, Boca Raton

    Google Scholar 

  45. Madsen J, Steensgaard-Madsen J, Christensen L (2002) A sophomore course in codesign. Computer 35(11):108–110. doi:http://dx.doi.org/10.1109/MC.2002.1046983

    Google Scholar 

  46. Maharatna K, Valls J, Juang TB, Sridharan K, Meher P (2009) 50 years of cordic: algorithms, architectures, and applications. IEEE Trans Circuit Syst I Regul Pap 56(9):1893–1907

    Article  MathSciNet  Google Scholar 

  47. McKee S (2004) Reflections on the memory wall. In: Conference on computing frontiers. ACM, New York, pp 162–168

    Google Scholar 

  48. Meiser G, Eisenbarth T, Lemke-Rust K, Paar C (2007) Software implementation of estream profile i ciphers on embedded 8-bit avr microcontrollers. Technical report, eSTREAM project. http://www.ecrypt.eu.org/stream/sw.html

  49. Menezes A, van Oorschot P, Vanstone S (2001) Handbook of applied cryptography. CRC, Boca Raton

    Google Scholar 

  50. Micheli GD, Benini L (2006) Networks on chips: technology and tools (Systems on silicon). Morgan Kaufmann, San Francisco

    Google Scholar 

  51. Micheli GD, Wolf W, Ernst R (2001) Readings in hardware/software co-design. Morgan Kaufmann, San Francisco

    Google Scholar 

  52. Moderchai BA (2006) Principles of concurrent and distributed programming, 2nd edn. Addison Wesley, Boston

    Google Scholar 

  53. Muchnick SS (1997) Advanced compiler design and implementation. Morgan Kaufmann, San Francisco

    Google Scholar 

  54. NIST (2001) Federal information processing standards publication 197: announcing the advanced encryption standard (aes). Technical report, http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

  55. Panda PR, Catthoor F, Dutt ND, Danckaert K, Brockmeyer E, Kulkarni C, Vandecappelle A, Kjeldsberg PG (2001) Data and memory optimization techniques for embedded systems. ACM Trans Des Autom Electron Syst 6(2):149–206

    Article  Google Scholar 

  56. Parhi KK (1999) VLSI digital signal processing: design and implementation. Wiley, New York. ISBN 978-0471241867.

    Google Scholar 

  57. Parhi KK, Messerschmitt DG (1991) Static rate-optimal scheduling of iterative data-flow programs via optimum unfolding. Computers, IEEE Transactions on 40(2):178–195.

    Article  Google Scholar 

  58. Pasricha S, Dutt N (2008) On-chip communication architectures: system on chip interconnect. Morgan Kaufmann, Amsterdam

    Google Scholar 

  59. Potop-Butucaru D, Edwards SA, Berry G (2007) Compiling esterel. Springer, New York

    Google Scholar 

  60. Qin W (2004) Modeling and description of embedded processors for the development of software tools. Ph.D. thesis, Princeton University

    Google Scholar 

  61. Qin W, Malik S (2003) Flexible and formal modeling of microprocessors with application to retargetable simulation. In: DATE ’03: proceedings of the conference on design, automation and test in Europe, Munich, p 10556

    Google Scholar 

  62. Rabaey JM (2009) Low power design essentials. Springer, New York

    Book  Google Scholar 

  63. Rowen C (2004) Engineering the complex SOC: fast, flexible design with configurable processors. Prentice Hall, Upper Saddle River

    Google Scholar 

  64. Saleh R, Wilton S, Mirabbasi S, Hu A, Greenstreet M, Lemieux G, Pande P, Grecu C, Ivanov A (2006) System-on-chip: reuse and integration. Proc IEEE 94(6):1050–1069

    Article  Google Scholar 

  65. Satoh A, Morioka S (2003) Hardware-focused performance comparison for the standard block ciphers aes, camellia, and triple-des. In: ISC, no. 2851. Lecture notes on computer science. Springer, New York, pp 252–266

    Google Scholar 

  66. Schaumont P, Shukla S, Verbauwhede I (2006) Design with race-free hardware semantics. In: DATE’06: Proceedings on design, automation and test in Europe, IEEE 1, vol. 1, pp 6

    Google Scholar 

  67. Smotherman M (2009) A brief history of microprogramming. Technical report, Clemson University. http://www.cs.clemson.edu/~mark/uprog.html

  68. Stanford Graphics Lab (2003) Brook language. http://graphics.stanford.edu/projects/brookgpu/lang.html

  69. Talla D, Hung CY, Talluri R, Brill F, Smith D, Brier D, Xiong B, Huynh D (2004) Anatomy of a portable digital mediaprocessor. IEEE Micro 24(2):32–39

    Article  Google Scholar 

  70. Taubenfeld G (2006) Synchronization algorithms and concurrent programming. Pearson/Prentice Hall, Harlow

    Google Scholar 

  71. Thies W (2008) Language and compiler support for stream programs. Ph.D. thesis, MIT. http://groups.csail.mit.edu/cag/streamit/shtml/documentation.shtml

  72. Vahid F (2003) The softening of hardware. Computer 36(4):27–34

    Article  Google Scholar 

  73. Vahid F (2007a) Digital design. Wiley, Hoboken

    Google Scholar 

  74. Vahid F (2007b) It’s time to stop calling circuits “hardware”. Computer 40(9):106–108

    Article  Google Scholar 

  75. Vahid F (2009) Dalton project. Technical report, http://www.cs.ucr.edu/~dalton/

  76. Valls J, Sansaloni T, Perez-Pascual A, Torres V, Almenar V (2006) The use of cordic in software defined radios: a tutorial. IEEE Commun Mag 44(9):46–50

    Article  Google Scholar 

  77. Volder JE (1959) The cordic trigonometric computing technique. IEEE Trans Electron Comput EC-8(3):330–334

    Article  Google Scholar 

  78. Wolf W (2003) A decade of hardware/software codesign. Computer 36(4):38–43

    Article  Google Scholar 

  79. Wulf W, McKee S (1995) Hitting the memory wall: implications of the obvious. In: ACM SIGARCH computer architecture news, 23, http://www.cs.virginia.edu/papers/Hitting_Memory_Wall-wulf94.pdf

  80. Xilinx I (2009a) Xilinx embedded development toolkit. Technical report, http://www.xilinx.com/support/documentation/dt_edk.htm

  81. Yaghmour K, Masters J, Ben-Yossef G, Gerum P (2008) Building embedded Linux systems, 2nd edn. O’Reilly, Sebastopol

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer Science+Business Media New York

About this chapter

Cite this chapter

Schaumont, P.R. (2013). General-Purpose Embedded Cores. In: A Practical Introduction to Hardware/Software Codesign. Springer, Boston, MA. https://doi.org/10.1007/978-1-4614-3737-6_7

Download citation

  • DOI: https://doi.org/10.1007/978-1-4614-3737-6_7

  • Published:

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4614-3736-9

  • Online ISBN: 978-1-4614-3737-6

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics