When trn says that I/O is handled by the FNP, he actually means terminal I/O and communications I/O. Actual disk, tape, and other peripheral I/O is performed by the Input Output Multiplexer (IOM) — yet another hardware component in the DPS8 hardware suite. The CPUs. IOMs, SCUs, and FNPs are emulated by the DPS8M simulator. And yes, the DPS8M simulator supports multiple of these components for a single Multics system.
This is a hardware emulator you can run the real Multics software on. However the hardware in question was built specifically for Multics, so in that sense it's emulating Multics hardware.
This SO answer has a great take on the difference between simulation and emulation. I'd say a Virtual Machine emulates hardware:
> What's the difference between a simulator and a virtual machine?
An exercise in frustration due entirely to our field sticking one name on two very different technologies.
A simulator (more often called an emulator but one battle at a time) is a piece of software that takes compiled binaries and runs them by implementing every opcode in software. A "Multics simulator" (really, an emulator for the DPS8 hardware running a Multics disk image) is, therefore, a pure software emulation of a mainframe computer, not relying on any special hardware features of the host.
A virtual machine is one of two things:
- A piece of software like the JVM, executing bytecode in a manner similar to (but, hopefully, less complicated than) a machine emulator of the type I outlined above.
- A hypervisor, software that leverages special hardware features of the host system to run a guest on the hardware in a privilege level that allows, for example, multiple operating systems to run on the same machine at the same time.
The fact VM can also mean "virtual memory" is also Very Mirthmaking and doesn't make me Violently Mumble not one little bit.
It should be noted that not all of the hardware is strictly "emulated" (or simulated, if you prefer that term) in the traditional sense of interpreting each hardware instruction. The DPS in the name means "distributed processing system", and this is not merely a marketing term.
The DPS series, like many other mainframes, have multiple independent systems working together. For example, IO is handled by a FNP (frontend network processor) which was a (physically) separate minicomputer, with its own CPU, OS, etc. There were various FNP models (16-bit and 18-bit systems) produced. The DPS8M software implements the FNP at a high level, rather than running its original software (though there is both an FNP software simulator and a FPGA FNP project underway).
We did have some internal debate on if the system is a "simulator" or an "emulator", but really, it can be both, depending on how pedantic you want to be.
The biggest reason for the name being what it is, however, is that since the beginning, the software was called the "DPS8M Simulator", and even if emulator might be (arguably) a better name, it's not worth changing it at this point.
> We did have some internal debate on if the system is a "simulator" or an "emulator", but really, it can be both, depending on how pedantic you want to be.
> The biggest reason for the name being what it is, however, is that since the beginning, the software was called the "DPS8M Simulator", and even if emulator might be (arguably) a better name, it's not worth changing it at this point.
Honestly, "simulator" vs "emulator" is just a matter of what I'm used to now, as opposed to anything I find needlessly confusing: It seems like everyone else talks about this kind of software in terms of it being emulators and emulation, and reserves the word simulation for things like circuit simulators. Kind of an interesting linguistic quirk to observe, but it does make your use of the word simulator in this context a bit unusual.
The VAX had byte addressable memory, the DPS8/M word 36 bit word addressable, so I suspect that byte oriented instructions might have an edge on the VAX. Contrawise, the DPS8/M memory bus width was 72 bits, so it might have had an edge in double wide operations. I suspect the dominate factor would be that the DPS8/M was core memory at 1 us access time; I don't know the memory bandwidth of the VAX but I would assume it was faster.
According to wikipedia, the 6000s ran about 1 MIP and the DPS8/Ms topped out about 1.7 MIPS. Talking with people that worked on Multics, they generally say the 6000s were about 1 MIP.