or busy. If either is found, condition code 1 is placed in the virtual PSW and the proper CSW status is stored in the virtual aachine's page
zero. If all components in the subchannel path are free, DeKVSIEX proceeds to simulate the SIO by locating and loading the contents of the
virtual machine's CAW from virtual location X'48' and testing the device
type of the unit addressed.
The device type is in the VDEVBLOK. If the device class code
indicates a terminal or console, control is passed to the aodule DMKVCNEX with a GOTO. DeKVCREX interprets and simulates the entire
channel program, moving the necessary data to or froa virtual storage
and reflecting the proper interruptions and status bytes. When DeKVCIEX has finished, it passes control directly to the dispatcher, DftKDSPCH. If the referenced device is a spooled unit record device, DeKVSIEX passes control to DMKVSPEX for additional processing. When control returns to DBKVSIEX, it passes control to DftKDSPCH. If the device is not a terminal or a spooling device, the SIO is
translated and executed directly on the real systea's I/O device. DMKVSIEX calls DMKFREE to obtain free storage and then it constructs an IOBLOK in the storage obtained. The IOBLOK serves as an identifier of
the I/O task to be performed. It contains a pointer to the channel
program to be executed and the address of the routine that is to handle
any interruptions associated with the operation. DMKVSIEX stores the contents of the user's CAW in IOBC1W and sets the
interruption return address (IOBIRA) to be the same as the virtual
interruption return address (DHKVIOIN) in DftKVIO. The CCW translation
routine (DMKCCWTR) is then called to locate and bring into real main storage all user pages associated with the channel prograa, including
those containing data and CCWs. The following occurs: The CCWs are translated. A corresponding real channel program is constructed. The data pages are locked into real storage. DftKCCWTR returns control to DftKVSIEX. DftKVSIEX places the user in a
pseudo wait state, IOWAIT, and calls the real I/O scheduler DftKIOSQV to schedule the I/O on the real configuration. DMKIOSQV queues the request for operation on the real channel,
control unit, and device corresponding to the address used by the
virtual machine. When the real SIO is issued, DftKIOS takes the user out
of IOWAIT and reflects the condition code for the SIO if it is zero. If
it is not zero, the operation is further analyzed by DftKVIOII. In any
case, DftKIOSQV returns control to DftKVSIEX, which passes control to DMKDSPCH. Privileged I/O Instructions Other privileged I/O instructions are handled directly by DftKVSIEX. scans the virtual channel, control unit, and device blocks in
the same manner as for a SIO and reflects the proper status and
condition to the virtual machine. In soae cases (TIO), the status of
the addressed devices is altered after the status is presented.
CP Introduction 1-85
If the operation active on the virtual device is
in the real equipment, the simulation of a HIO or
involved, since it requires the actual execution of
this case, the active operation is halted and the
code/status is returned to the user.
actually in progress HDV is somewhat more
the instruction. In
resultant condition
The virtual channe1-to-channe1 adapter (CTCA) simulates data transfer
and control communication between two selector channels, either on two distinct processors or two channels on a single processor. Data
transfer is accomplished via synchronized complementary I/O commands
(for example, read/write, write/read) issued to both parts of the CTCA.
Each part of the CTCA is identical and the operation of the unit is
completely sy •• etrica1. The CTCA occupies an entire control unit slot
on each of the two channels attached. The rightmost four bits of the
unit address (device address) are ignored completely and are not for use.
The V8/310 control program support for virtual CTCA includes all
status, sense data, and interruption logic necessary to simulate the
operation of the real CTCA. Data transfer, command byte exchange, sense
data, and status data presentation for the virtual CTCA is accomplished
via storage-to-storage operations (8VCL,etc.). No real I/O operations
(excluding paging I/O) nor I/O interruptions are involved. Unit errors
or control errors cannot occur.
The CCW translator, D8KCCWTR, is called by the virtual machine I/O executive program (D8KYSIEX) when an I/O task block has been created and
a list of virtual CCls associated with a user's 510 request .ust be
translated into real CCls. When the I/O operation from a self-modifying channel program is
completed, D8KUNTIS is called by DKKIOS. When retrans1ation of OS ISA8 CCWs is required, the self-modifying channel program checking portion of D8KCCWTR calls D8KIS8TR. D8KCCWTR operates in two phases: A scan and a trans1a te phase. A TIC-scan phase. 1 self-modifying channel program checking function is also included.
The scan and translate phase analyzes the virtua1 CCW list. So.e channel co •• ands require additional doub1ewords fo.r control information
(for example, seek addresses). Additional ·contro1 words are also
allocated (in pairs) if the data area specified by a virtual CCW crosses 4096-byte page boundaries, or if the virtual CCW includes an IDA
(indirect data address) flag. Space is obtained from D8KFREE for the real CCI list, and the
translation phase then translates the virtual CCW list into a real CCW list. TIC commands that cannot be i.mediate1y translated are flagged for
later processing by the TIC-scan phase. A READ or WRITE com.and that
1-86 IBK VK/310 System Logic and Problem Determination--Vo1u.e 1
Previous Page Next Page