IO device

An IO Device has a controller that communicates between the device and the system interconnect. The controller provides an interface for accessing the device resources / functionality.