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
specifies that data cross 4096-byte boundaries is revised to include an
IDA flag that points to an indirect data address list (IDAL) and a pair
of words for each 4096-byte page, in which each word handles a data
transfer of 2048 bytes (or less). The real CCI is flagged as having a
CP-generated IDA. DMKPTRAN is called (via the TRANS macro) to lock each 4096-byte page.
If the real CCI string does not fit in the allocated free storage
block, a new block is obtained. The old block is transferred and
adjusted before being released. _ The translation continues with the new
block. The process is repeated, as needed, to contain the real CCW string. Virtual CCWs having an IDA flag set are converted to user translated
addresses for each IDAi (indirect data address word) in the virtual
IDAL. DMKPTRAN is called for each IDAW is. The CCW is flagged as having a user (but not CP) generated IDA. The TIC-scan phase scans the real CCW list for flagged (untranslated)
TIC commands and creates a new virtual CCi list for the untranslated
coamands. _ Scan-translate phase processing is then repeated. When all
virtual CCWs are translated, the virtual CAW in the IOBLOK task block is
replaced by the real CAW (that is, a pointer to the real CCW list
created by DMKCCWTR), and DMKCCWTR returns control to DMKVIOEX. The
user protection key is saved.
Because many of the OS PCP, MFT, and MVT ISAM channel prograas are
self-aodifying, special handling is required by the VM/370 control
program to allow virtual machines to use this access method. The
particular CCWs that require special handling have the following general
foraat: 0 2 4 6 8
11
RE1DD1Tl Cf-7 10 hv+oC! A "'.1. --...,. I B TIC to E I C I I D I I E SEEK: SEEK head on D I I F SEARCB on Dt-2 The cei at ! reads 10 bytes of data. The tenth byte foras the coamand code of the CCi at E. In addition, the data read in aakes up
the seek and search arguaents for the CCWs at E and F. After the CCW string is translated by the VM/370 control prograa, it usually is in the
following foraat:
CP Introduction 1-87
Previous Page Next Page