NonStop S-Series Server Description Manual (G06.27+)

Input/Output Operations
HP NonStop S-Series Server Description Manual520331-004
10-6
Layers of I/O Components
Layers of I/O Components
Figure 10-3 illustrates the various software and hardware levels of I/O control that
accomplish input/output transfers, with storage I/O illustrated on the left and
communications I/O illustrated on the right. The most significant difference between
these two types of I/O is the location of the request queues. For storage I/O, the
queues are located on the ServerNet adapter board or the multifunction I/O board
(MFIOB); note the boxes labeled “Global Request Queues” and, in controller memory,
“Request Queues.” For communications I/O, the queues are instead located in
processor memory; note the box labeled “NIOC Queues.”
Despite the difference in location of request queues, the actual transfer of data is
always under control of the controller, whether for storage I/O or communications I/O.
The reason for assigning data transfer responsibility to the controller is to unburden the
processors from the routine of transferring data to and from the I/O devices, which
have the potential to be numerous.
The top layer in the I/O system is identified as the “Managing Process.” For storage I/O
this is the I/O process; for communications I/O it is a monitor process. Under the
standard I/O model (see next topic), there is one I/O process (or process pair) for each
logical device that can be addressed. As for monitor processes, however, there is one
process (or process pair) for each generic type of communications (LAN, ATM, and so
on). All processes at this level are initially started and configured by an interface
monitor process (one process pair in a processor), which is an agent of the
subsystem manager process (one process pair in the system). In addition, the
interface monitor initializes and configures all XIO module drivers in its processor.
The next layer down consists of the “Extensible I/O (XIO) Procedures,” which include
the XIO kernel and all the XIO module drivers. The XIO kernel routes requests and
interrupts between the various module drivers and the I/O processes and monitors. It is
also responsible for setting up workspaces for the module drivers. A module driver is
a specialized set of procedures that deals directly with ServerNet services (in the case
of storage I/O) or with queue services (in the case of communications I/O). It is the
module driver that converts generalized I/O requests to specific commands for driving
the particular hardware devices under its control.
The “Request Queue Services” layer consists of the queue services set of
procedures, which manages the request queues for communications I/O. These
queues are identified as native I/O controller (NIOC) queues for the NIOC protocol
used by the communications controllers.
The “ServerNet Transfer Logic” comprises both software (ServerNet services) and
hardware (BTE and AVT), which together perform all processor transfers across the
ServerNet hardware.
The “Protocol Conversion” layer converts ServerNet traffic to and from the form of
protocol required by the particular bus to which a given controller is attached.