Hardware/Software Interfaces



The objective of a hardware/software interface is to enable communication between software and custom hardware. The software runs on a microprocessor, while the custom hardware is attached to that microprocessor. We will consider how to implement stable data transfers by synchronizing software and hardware. Next, we will discuss the various implementations of hardware/software interfaces, including memory-mapped interfaces, coprocessor interfaces, and custom-instruction interfaces.


Clock Cycle Custom Instruction Assembly Code Synchronization Point Execution Flow 


  1. Atmel (2008) At91sam7l128 preliminary. Tech. rep., http://www.atmel.com/dyn/products/product\_card.asp?part\_id=4293Google Scholar
  2. Dijkstra EW (2009) The E.W. Dijkstra Archive. Tech. rep., http://www.cs.utexas.edu/users/EWD/
  3. Leupers R, Ienne P (2006) Customizable Embedded Processors: Design Technologies and Applications. Morgan Kaufmann Publishers Inc.Google Scholar
  4. Micheli GD, Wolf W, Ernst R (2001) Readings in Hardware/Software Co-Design. Morgan Kaufmann Publishers Inc.Google Scholar
  5. Moderchai BA (2006) Principles of Concurrent and Distributed Programming, 2nd Edition. Addison WesleyGoogle Scholar
  6. Rowen C (2004) Engineering the Complex SOC:Fast, Flexible Design with Configurable Processors. Prentice HallGoogle Scholar
  7. Taubenfeld G (2006) Synchronization Algorithms and Concurrent Programming. Pearson/Prentice HallGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2010

Authors and Affiliations

  1. 1.Bradley Dept. Electrical & Computer EngineeringVirginia TechBlacksburgUSA

Personalised recommendations