[Simh] Representative Instruction Execution Timing

Dalby, Jeremy R (GE Power & Water) jeremy.dalby at ge.com
Tue Apr 5 10:47:30 EDT 2011


I am trying to figure out how to slow down the SIMH PDP-8 simulator such
that the instructions are executed with similar timing to that of a real
PDP-8.  I have found that that even with throttling set very low, the
PDP-8 simulator executes much, much faster than a real PDP-8.

>From what I have read, I believe the execution of a single PDP-8
instruction can take anywhere from 1.2 - 4.6 microseconds, depending on
the type of instruction and I/O device to which the instruction applies.

I am running the PDP-8 simulator on a Windows XP host, which I
unfortunately cannot change to a real-time environment.

Some things I have considered:

1.  Inserting a sleep() function after execution of each PDP-8
instruction, but this won't work since the minimum sleep time is 1
millisecond, and even a 1 ms sleep request is not likely to return for
at least 20 ms due to Windows non-real-time scheduling.

2. Inserting a loop that cycles for some number of times after execution
of each PDP-8 instruction, in order to kill some time. The exact number
of cycles required would depend on the host processor speed, so I would
have to come up with some sort of calibration method to determine the
number of cycles.  I don't really like this method because I would have
to disable throttling and tie up the processor 100%, and I'm really not
sure how I would go about calibrating the number of cycles.

I am kind of thinking at this point that representative instruction
timing on a Windows host is pretty much impossible, but I thought it
might be worthwhile to throw the question out there to you guys and see
what comes back.  Any thoughts or ideas would be much appreciated.

Thanks,
Jeremy Dalby




More information about the Simh mailing list