Coprocessor Control Shell Design



This chapter discusses the design practice of attaching a custom hardware module to a hardware/software interface, an activity referred to as control shell design. It involves the encapsulation of a custom hardware module on a standard hardware/software interface, and the development of a software driver to control the custom hardware module through this hardware/software interface. There are two orthogonal aspects to control shell design. The first, data design, defines how to transfer data from software to custom hardware and back. The second, control design, defines how to implement a software control strategy for the custom hardware. The outcome of data design and control design define the programmer’s model, the abstract software view of the hardware module. This chapter will address each of these aspects, and discuss an example based on a control shell for an encryption coprocessor for the Advanced Encryption Standard (AES).


Data Item Clock Cycle Advance Encryption Standard Pipeline Stage Pipeline Architecture 


  1. Hodjat A, Verbauwhede I (2004) High-throughput programmable cryptocoprocessor. IEEE Micro 24(3):34–45CrossRefGoogle Scholar
  2. Kogge PM (1981) The Architecture of Pipelined Computers. McGraw-KillGoogle Scholar
  3. NIST (2001) Federal information processing standards publication 197: Announcing the advanced encryption standard (aes). Tech. rep.,

Copyright information

© Springer Science+Business Media, LLC 2010

Authors and Affiliations

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

Personalised recommendations