Download VAX MP Technical Overview

Transcript
Thus underlying host IO methods utilized by various VAX MP IO devices can be summarized, for initial
intended VAX MP public release, as follows:
Device
kind
MSCP disks
SIMH
name
RQ
MSCP tapes
TQ
Ethernet
XQ
Host IO method and use status
Asynchronous (IOP),
preferred kind of disk device to use
Asynchronous (IOP),
preferred kind of tape device to use
Either asynchronous (IOP)
or synchronous non-blocking polling
Synchronous non-blocking polling
terminal
VH, DZ
multiplexers, TTI, TTO
console port
floppy disk
RY
Synchronous blocking, but to memory buffer,
so actually no blocking for extended time
tape
TS
Synchronous, blocking,
intense use is discouraged
(at least until the handler is modified to use IOP)
disk
RL
Synchronous, blocking,
intense use is discouraged,
certainly not as system disk
printer
LPT
Synchronous, blocking,
intense use is discouraged
punch card
CR
Synchronous, blocking,
reader
intense use is discouraged
Now let’s turn to particular devices and timeout utilization by their VMS drivers.
For most system configurations and usage patterns, MSCP disks are typically by far the most important
kind of device in terms of the number and rate of IO operations performed. Luckily, their affinity does
not have to be constrained to the primary processor, and they can be accessed for IO initiation by any
virtual processor and use IOP threads without concern for risks of device timeout. 101 VMS MSCP/TMSCP
port driver (PUDRIVER) uses a variety of timeouts during initialization, but they cannot cause the early
timeout problem we are discussing here, because MSCP controller initialization on VAX MP is performed
before multiprocessing is started and do not involve actual disk IO, and thus do not involve IOP threads:
all controller initialization is performed within the context of primary CPU. VMS PUDRIVER also utilizes
CRB timeout mechanism to establish periodic 15-second polling that checks for uncorrectable errors
signaled in the controller’s CSR, however there is no harm if some of these polls cycles will get triggered
earlier (relative to device activity) than intended. VMS DUDRIVER uses timeout defined by the value of
MSCP controller timeout reported by the controller at initialization. SIMH module PDP11_RQ.C(CPP)
defines it via preprocessor symbol RQ_DCTMO with value of 120 seconds in the original uniprocessor
SIMH version. This value is generally sufficient to safeguard against false early timeout due to VCPU
101
Note that here and below we are discussing QBus and Unibus controllers, not BI controller or HSC.
86