THROTTLE for the PIDP8i on a Raspberry PI 4.

161 views
Skip to first unread message

Steven Mason

unread,
Aug 4, 2025, 3:54:11 PMAug 4
to PiDP-8
Whenever I try to use any of the throttle settings for the PIDP8i using any of the suggested settings (333k, 416k etc.), I get an error message and it disables throttling. Here is an example. I, "set throttle 333k". SIMH accepts the input, but when I hit "GO" to go back into the PIDP8i, I get this error message: 
"Host CPU is too slow to simulate 333,000 instructions per second Host CPU can only simulate 7,339,140 instructions per second Throttling disabled."

This happens no matter what setting I use. Any ideas?

Steve Tockey

unread,
Aug 15, 2025, 2:20:55 PMAug 15
to PiDP-8

I have seen it do that on occasion. No rhyme or reason around it that I can find. Either killing SIMH and restarting it, or completely rebooting the Pi can make it go away.


-- steve

Glenn Babecki

unread,
Aug 16, 2025, 11:39:05 AMAug 16
to Steve Tockey, PiDP-8
The error message doesn't make sense.  SIMH is trying to accommodate a request to throttle to 333 KIPS but the host CPU is "too slow" and can ONLY simulate 7.3 MIPS?!  Sounds like "word length" problem leading to truncation or a rollover issue; although it prints out the 7.3 MIPS number correctly.

Hmmm, maybe it's time to let AI take a whack at rewriting SIMH, then "all the SIMH bugs will go away." 🤭

--
You received this message because you are subscribed to the Google Groups "PiDP-8" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-8+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/pidp-8/6e0f2fca-0581-4054-ae8e-75f05dc12dccn%40googlegroups.com.

timr...@gmail.com

unread,
Aug 16, 2025, 4:21:12 PMAug 16
to PiDP-8
Something is indeed weird here.  This message comes from timer.c.  The check does an IF d_cps >= a_cps to enter this block.  d_cps is printed in the first error line at 333,000 and a_cps is the 7,339,140. No way the first is > the second value.  So how does
it get into this error code.  Did you copy/paste this full error or type it in?  Did you mis-read a . as a comma?  Just thinking of how it could get in to this code section.  I am guessing you typed part of it as the acutal error says "Host CPU did (not can) only simulate.
Do you know which simh?  I checked open simh as that's what I have here.  Maybe a different (older) version is different?  Someone else may have a better answer.

Warren Young

unread,
Aug 16, 2025, 6:21:35 PMAug 16
to PiDP-8
On Aug 16, 2025, at 14:21, timr...@gmail.com <timr...@gmail.com> wrote:
>
> Someone else may have a better answer.

It’s been several years since I looked into this, but my recollection is that it makes the check once on startup, which means the simulator is competing with the rest of the modern parallelized boot process for cycles, which can fool it into believing there aren’t enough cycles available. This is why restarting the simulator fixes it.

timr...@gmail.com

unread,
Aug 16, 2025, 9:45:36 PMAug 16
to PiDP-8
Well, from the two numbers I saw and how they are compared it should not enter this IF statement.  So unless it's somehow truncating one value something is odd.

Warren Young

unread,
Aug 17, 2025, 1:05:22 PMAug 17
to PiDP-8
On Aug 16, 2025, at 19:45, timr...@gmail.com <timr...@gmail.com> wrote:

Well, from the two numbers I saw and how they are compared it should not enter this IF statement.

The problem is, it isn’t “two” numbers. It’s three: a_cps, d_cps, and sim_throt_peak_cps. The error message references the last, which as I said earlier is assigned once in that same module, in the SIM_THROT_STATE_INIT case of sim_throt_svc().

Adding something this to the pidp8i.service file may solve the key symptom:
ExecStartPre=/bin/sleep 10
The idea is to delay the simulator startup until the system has finished booting to the point that the simulator’s initialization can take over an adequately large fraction of the whole processor that this measurement lands in the ballpark.

timr...@gmail.com

unread,
Aug 17, 2025, 1:28:09 PMAug 17
to PiDP-8
Look at the code. It compares d_dps to a_dps first which gets us into this IF.  And d-dps is definetly less than a_dps.  It should not enter the IF uness the code I looked at does not match yours or his code base.  Unless I am looking at this
wrong which very welll could be the case.  Inside this outer IF is an inner IF which checks some other things to decide which error message to display.

Heinz-Bernd Eggenstein

unread,
Aug 17, 2025, 3:01:06 PMAug 17
to PiDP-8
(hmmm Itried to reply via email but that didn't come thru apparently...now via the web UI):

The error message mentioned in the thread starter


"Host CPU is too slow to simulate 333,000 instructions per second Host CPU can only simulate 7,339,140 instructions per second Throttling disabled."

is from an outdated SIMH code base.

When it decides to completely disable the throttling, the recent code would output something like this

"Host CPU is too slow to simulate xxx instructions per second"
"Host CPU did only simulate yyy instructions per second"
"Peak rate: zzz instructions per second";
"Throttling disabled."

And the values would actually make more sense :-)

Between the old and the recent version, there was this change to SIMH that addressed the problem of inconsistent sounding error messages: 


back in the times before open-simh

From the commit message:

"in case the initial throttling calibration measures a slower cps rate than
the desired cps rate, check whether the measured rate is well below the
measured peak rate. If so, distrust the measured rate and instead use
half the peak rate as measured cps rate.

Otherwise (so measured cps is in the same ballpark as measured peak rate)
disable throttling
"

Cheers
HB

P.S.: And yes, this change in SIMH , and now open-simh, was merged into the pidp8i codebase some time ago. 

Tim Radde

unread,
Aug 17, 2025, 3:25:06 PMAug 17
to Heinz-Bernd Eggenstein, PiDP-8
I was wondering that as I noticed the slight difference in the error messages. But I chalked it up to the user typing the error in instead of copy and paste.

Sent from my iPhone

On Aug 17, 2025, at 1:42 PM, Heinz-Bernd Eggenstein <hbep...@googlemail.com> wrote:


--
You received this message because you are subscribed to the Google Groups "PiDP-8" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-8+un...@googlegroups.com.
Message has been deleted

Heinz-Bernd Eggenstein

unread,
Aug 18, 2025, 9:46:20 AMAug 18
to timr...@gmail.com, PiDP-8
The error message mentioned in the thread starter

"Host CPU is too slow to simulate 333,000 instructions per second Host CPU can only simulate 7,339,140 instructions per second Throttling disabled."

is from an outdated SIMH code base.

When it decides to completely disable the throttling, the recent code would output something like this

"Host CPU is too slow to simulate xxx instructions per second"
"Host CPU did only simulate yyy instructions per second"
"Peak rate: zzz instructions per second";
"Throttling disabled."

And the values would actually make more sense :-)

Between the old and the recent version, there was this change to SIMH that addressed the problem of inconsistent sounding error messages: 


back in the times before open-simh

From the commit message:

"in case the initial throttling calibration measures a slower cps rate than
the desired cps rate, check whether the measured rate is well below the
measured peak rate. If so, distrust the measured rate and instead use
half the peak rate as measured cps rate.

Otherwise (so measured cps is in the same ballpark as measured peak rate)
disable throttling
"

Cheers
HB


On Sun, Aug 17, 2025 at 7:28 PM timr...@gmail.com <timr...@gmail.com> wrote:
--
You received this message because you are subscribed to the Google Groups "PiDP-8" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-8+un...@googlegroups.com.

Steven Mason

unread,
Aug 18, 2025, 9:46:24 AMAug 18
to PiDP-8
So I initially installed SIMH and all the PIDP8I items from the documentation on tangentsoft about two months ago. Does it not have the updated SIMH? How do I install a newer version?

Thanks to all for the help!

Warren Young

unread,
Aug 18, 2025, 10:30:40 AMAug 18
to PiDP-8
On Aug 17, 2025, at 13:41, Steven Mason <sjmas...@gmail.com> wrote:

So I initially installed SIMH and all the PIDP8I items from the documentation on tangentsoft about two months ago. Does it not have the updated SIMH? How do I install a newer version?

OpenSIMH was last merged into trunk 1.25 years ago.

You can try running tools/simh-update and rebuilding, but it’s iffy whether we’d be able to give you any kind of support with the result.

A better path is to convince one of the current contributors that it’s time for another update. They then run that same script locally, then test it to the point that they’re confident it’s okay to commit it to trunk. That gets everybody a new, tested version.

We accept applications for new contributors, but we’d need to be confident in the applicant's judgement before handing them a commit bit.

Heinz-Bernd Eggenstein

unread,
Aug 19, 2025, 1:55:51 PMAug 19
to PiDP-8
Short version: I think trunk is fine, but the old release branch is sufficiently behind to have the old SIMH code 

Long version: As far as I can see, the situation is as follows: if you install the software following instructions here: https://tangentsoft.com/pidp8i/wiki?name=Home

and you stop at downloading the 2021 release (either from the tar ball or the complete  disk image), you will run a version that shows the occasional problem discussed here.

If however you then update the pidp8i software (e.g. using the 2021 disk image first and then follow the instructions under "Updating the Binary OS Release" on that very same wiki page), you will get a version with the improved SIMH code.

Correct?

HB

Steven Mason

unread,
Aug 20, 2025, 11:45:41 AMAug 20
to Heinz-Bernd Eggenstein, PiDP-8
I will give that a try. It can't hurt. I tried stopping SIMH and restarting it but that didn't work. I'm not confident enough to try building anything from source so let's see what happens.

Steve Mason


--
You received this message because you are subscribed to the Google Groups "PiDP-8" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-8+un...@googlegroups.com.

timr...@gmail.com

unread,
Aug 20, 2025, 4:50:29 PMAug 20
to PiDP-8
You could always copy (move) the current directory to something else and then create a new empty one to build in.  If it doesn't work you just remove the new and put
the old one back.  That's what I often do to check something or build somethng to test it.

Steven Mason

unread,
Aug 20, 2025, 6:45:43 PMAug 20
to PiDP-8
So just to close the loop on an earlier questions, here is the exact screen capture from my PIPD8 when I try and set the throttle command (cut and pasted).

sim> set throttle 333k
sim> GO
PiDP-8/I initial throttle = 333000 IPS
*********** WARNING ***********

Host CPU is too slow to simulate 333,000 instructions per second
Host CPU can only simulate 7,036,560 instructions per second
Throttling disabled.

Also, I tried stopping and starting SIMH
I also did the update of the software as described on TagentSoft. 
I tried both the Stable and Trunk versions but neither worked. 

I have tried each of the Throttle options listed in the SIMH documents and here are the results:
  • Worked -  set throttle xM: Sets the execution rate to x Million Instructions Per Second (MIPS).
  • Didn't Work - set throttle xK: Sets the execution rate to x Thousand Instructions Per Second (KIPS).
  • Works - set throttle x%: Limits the simulator to x% of the host machine's time.
  • Works - set throttle X/Y: This format sets the simulator to run X instructions and then sleep for Y milliseconds. This is useful for very slow throttling (under 1000 instructions per second) and disables the incandescent lamp simulator (ILS).
  • Didn't Work - set throttle human - unrecognized command
  • Didn't Work -  set throttle pdp8i  - unrecognized command
  • Didn't Work -  set throttle nothrottle
Anyway I can use the ones that work. 
Thanks everyone!

.
 

Warren Young

unread,
Aug 20, 2025, 7:20:55 PMAug 20
to PiDP-8
On Aug 20, 2025, at 16:45, Steven Mason <sjmas...@gmail.com> wrote:

  • Didn't Work - set throttle human - unrecognized command
  • Didn't Work -  set throttle pdp8i  - unrecognized command
You’ve misinterpreted the syntax documented here. Those strings are special PiDP-8/I specific things you can give to the software configuration script, which it then uses when setting up the SIMH init scripts it installs. They are not SIMH commands themselves.

The only mystery you’ve presented is why the NNNk syntax fails.

Steven Mason

unread,
Aug 20, 2025, 8:32:25 PMAug 20
to PiDP-8
Well that certainly explains things. I will go back in a look much closer. Still trying to learn so much since I did not have exposure to the PDP8 other than seeing one at my fathers workplace when I was  Kid and actually I think that was a PDP11. I really want to learn how to mount tapes and other disks. The documentation is a bit overwhelming so I am sure it will be a slow process. 
Reply all
Reply to author
Forward
0 new messages