The controller allows multiple devices to be connected to the adapter. As the adapter forms the primary path to and from the server, the controller provides the connectivity to the actual devices that communicate with the server. As indicated in Figure 6-6, the controller functions can be manifold but primarily control the flow of data to and from the devices. In doing so, it provides an addressing scheme for the devices, shields the server from the operational complexities of the device, and provides another temporary location for data (prior to it being written or cached) for faster access.
Like adapters, controllers consist of both hardware and software components . However, their primary functionality is driven by hardware microcode , as indicated in Figure 6-6.
By keeping track of a disks position and being the initiator of the drives read/ write electronics (see the next section for more details on magnetic head disk assemblies, referred to as HDA mechanisms), the controller provides data buffering between the disk and the host interface or adapter with its error detection, correction, retry , and recovery functions. Both of these functions are susceptible to changes in connectivity due to their communications with the operating system.
The controller also offers the systems attached disks as an acceptable storage location even though the actual physical mapping may be very different. This allows the controller to translate I/O system requests into actual physical commands that can be executed on the real disk drive. Typical in most systems, the controllers and operating system view the disk drive locations as a linear pool of logical locations. This level of abstraction translation, though having existed in I/O configurations for many years , is necessary to translate logical blocks of data into physical addresses on the storage media.
This is a key concept within the controller functionality. It demonstrates how the operating system communicates within a logical set of storage locations that are considered virtual to the controller, which translates those locations into the physical realities the controller must manage. Figure 6-7 represents an overview of how logical views are mapped into physical views.