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).
KeywordsData Item Clock Cycle Advance Encryption Standard Pipeline Stage Pipeline Architecture
- Kogge PM (1981) The Architecture of Pipelined Computers. McGraw-KillGoogle Scholar
- NIST (2001) Federal information processing standards publication 197: Announcing the advanced encryption standard (aes). Tech. rep., http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf