[Simh] VAX emulation issues on Raspberry Pi
Timothe Litt
litt at ieee.org
Tue Jul 31 08:48:00 EDT 2018
On 31-Jul-18 01:31, Jeremy Begg wrote:
>
> The license wouldn't be an issue if the SET CPU MODEL command worked.
It looks as though it works - but not as you (or I) expect. It defines
the SimH model - which is mostly I/O devices.
Your issue is with the SYS_TYPE register, which lives at location
0x40004 in I/O space of MicroVAX systems.
This is the ROM - SimH just uses what is loaded. It's included in the
ROM checksum.
SET CPU MODEL should probably update the register, which has the format:
<31:24>SYS_TYPE <23:16>REV <15:8>SYSDEP <7:0>LicenseID
SYS_TYPE qualifies the SID - the codes are re-used.
I don't have the complete list of SYS_TYPE codes, but a few are:
UVAX:
1 UV2, 4 Uv2000/vs2000, 5 VAXterm, 6 9000 console
CVAX:
1: uvax(35/36/33/34/38/3900), Vaxserver(35/26/33/34/38/3900),
Vaxstation(32/3500)
2: VAX 62x0, 63x0
3: Vaxstation( 3520/40)
4: vaxstation 3100
7: FT5200
Rev is 1-based.
<0> is set for a timesharing system.
<1> is set for a single user system.
It would have to recompute the ROM checksum.
You should probably examine the register on your physical system - I
would expect that NVAX either added codes to the CVAX set, or started
over with a new enum. I don't remember which.
> I recall some of that discussion. I think the SSH server is having to do a
> whole lot of math to come up with sufficient entropy and no doubt that's a
> lot of floating point.
It would be odd if it was FP - crypto is generally multi-precision integer.
Entropy doesn't come from math. It comes from I/O, timers, or these
days, from a hardware noise source.
There is some math involved in whitening - but it's mostly shifts &
xors. Not FP.
SimH is more predictable than real hardware.
You can probably settle this by enabling CPU history, and randomly
pausing emulation and dumping the buffer while you are waiting.
> It occurred to me that the emulation I'm running is a -3900 series machine
> which if memory serves, did not have an FPU. Meaning all those VAX floating
> point operations are being emulated twice -- once by the VAX and once by
> SIMH. Is that correct? If so I wonder if the emaulation could be tweaked
> to behave as if the emulated machine has an FPU.
The only VAX without an FPU was the early 780, which was ECOd.
There are some emulation options:
H-float is optional, and emulated when absent.
packed-decimal[movp,cmpp3,cmpp4,addp4,addp6,subp4,subp6,cvtlp/pl,cvtpt/tp/ps/sp,sashp,mulp,divp)
is optional, and emulated (mostly by microvaxes).
Later processors (after 86) could (and did) omit 2 groups of instructions:
MATCHC,MOVTC,MOVTUC,CRC and EDITPC
ACB[FDGH}, emod[FDGH] and POLY[FDGH]
And, of course the entire vector instruction set (I was responsible for
that emulator).
Although in theory these were included or emulated as a group, some
implementations were selective. VMS does not rely on model-specific
knowledge: it checks each opocode and loads the emulator if any
instruction is emulated. Those that are implemented never reach it.
Last I knew, SimH implements all instructions on all models (except
vectors :-().
SimH's design goal is correctness, not particularly speed. Except for
the -10, all run on a 32-bit platform.
FWIW: there's room for optimization by promoting some internal
representations to 64-bits where available. But this is a big job, and
would require a lot of validation. Feel free to volunteer...
I'm not sure where SimH stands on compiler optimizations - you can
always try compiling with the highest optimization level your compiler
supports. But you may have to report some bugs...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.trailing-edge.com/pipermail/simh/attachments/20180731/309aee70/attachment-0001.html>
More information about the Simh
mailing list