[Simh] DMA to IO space

Bob Supnik bob at supnik.org
Thu Sep 6 20:31:10 EDT 2018


It's not a quirk, it's a design feature.

The PDP11 simulator didn't start out as a generalized, all-singing, 
all-dancing emulation of all possible PDP11 models; it started as a J11 
and PDP-11/73 simulator - one processor type, one system, Qbus only. In 
the same way, the VAX didn't start out as a generalized emulation of all 
possible VAX models; it started as a CVAX and MV3900 simulator - one 
processor type, one system, Qbus only. These simulator targets were 
chosen because I managed both chip projects and had all the design 
documents, including microcode, for chips and systems.

Both the PDP11 and the VAX got extended for entirely legitimate reasons 
- to run a broader range of software. Getting to early versions of Unix 
meant supporting the PDP-11/45. Getting to early versions of VMS and BSD 
meant supporting the VAX-11/780. In both cases, the peculiarities of the 
Unibus versus the Qbus were not considered. The Unibus was treated as an 
18b version of the Qbus.

As the simulators have been generalized, detailed divergences from how 
the hardware worked - particularly model by model variances - have 
surfaced repeatedly, and the simulators have been refactored 
accordingly. For example, the discovery that the VAXstation code in 
Ultrix violated the SRM but nonetheless worked on a MicroVAX II required 
major surgery on the handling of unaligned references. Unibus DMA to the 
IO page is just another example of model-specific differences that must 
now be accommodated in order to run more code.

Except for models that have been written with complete design 
documentation in hand, simulation of a model always has limits to its 
fidelity. Within the PDP11 family, I'll vouch for the J11. Many of the 
other models are just sketches (think 11/60), really. Within the VAX 
family, I'll vouch for the CVAX/MV3900 and the 11/780. The others are 
adaptations from one of those two bases and may be incomplete or 
incorrect on details.

Mark has a good understanding of what needs to be done. In theory, the 
same modifications need to be retrofitted to the 11/780 and other Unibus 
VAX models, as well as to the KS10, although I don't think they have the 
internal register shielding problem that the PDP-11 does.

/Bob

On 9/6/2018 6:12 PM, simh-request at trailing-edge.com wrote:
> It seems like a rather unfortunate design quirk in simh.
> A real Unibus don't distinguish between the I/O page any anything else.
> In fact, from the Unibus point of view, there is no "I/O page". It's a
> flat 18-bit address space where everything works the same.


More information about the Simh mailing list