Benchmarking / throttling PDP-10 under SIMH

330 views
Skip to first unread message

Heinz-Bernd Eggenstein

unread,
Aug 15, 2023, 5:21:42 PM8/15/23
to PiDP-10
Hi, I'm currently trying to wrap my head around ITS on a KA10 (from https://github.com/PDP-10/its )  because that is what I think I will want to use with my PiDP-10 eventualy in the future. I have 1000 questions about it, but the first one is : is there a benchmark code so one can calibrate the throttling of SIMH so that the execution speed would roughly match a real PDP-10 ? I have simulated PDP-11 and VAX-11/780 which can be throttled to replicate the historic Dhrystone rating, for  which source code is available in C. Is there something similiar for the PDP-10?

Thanks in advance
HBE

Richard C

unread,
Aug 15, 2023, 8:45:27 PM8/15/23
to PiDP-10
To run real speed KA10, set throttle to 1400k this is pretty close. I checked it against instruction timing diagnostic. You can also get a hold of me on Discord or IRC if you have questions.

Rich

Lars Brinkhoff

unread,
Aug 16, 2023, 6:15:44 AM8/16/23
to PiDP-10
HBE wrote:
I have simulated PDP-11 and VAX-11/780 which can be throttled to replicate the historic Dhrystone rating, for  which source code is available in C. Is there something similiar for the PDP-10?

 There is a run of a benchmark called SPEEDY, for which the output from the ML KA10 was preserved:

1 - MOVEI TAKES 2.24 USEC.
2 - INDEXING TAKES 296 NSEC.
3 - INDEXING AND INDIRECT TAKES 958 NSEC.
4 - JSR TAKES 4.27 USEC.
5 - JRST TAKES 2.24 USEC.
6 - MOVE FROM AC TAKES 2.73 USEC.
7 - MOVE FROM MEMORY TAKES 3.86 USEC.
8 - HRR FROM MEMORY TAKES 4.02 USEC.
9 - ADD FROM MEMORY TAKES 4.21 USEC.
10 - SETOM  0 TAKES 2.75 USEC.
11 - PUSHJ TAKES 4.98 USEC.
12 - SHIFTING TAKES 153 NSEC.
13 - FSC AN INTEGER ONE TAKES 7.32 USEC.
14 - FAD (1 RIGHT SHIFT) TAKES 6.27 USEC.
15 - FAD (8 SHIFT RIGHT-3 LEFT) TAKES 8.21 USEC.
16 - MUL (18 ADD/SUB - 36 SHIFTS) TAKES 12.44 USEC.
17 - FMP (14 ADD/SUB - 27 SHIFTS) TAKES 12.23 USEC.
18 - RELOCATION TAKES 0 NSEC.
19 - REPEATED I/O INSTRUCTIONS TAKE 77.01 USEC.
20 - SHIFT AND ADD TAKES 281 NSEC.

I ran it on some random PC laptop running Richard's KA10 emulator:

1 - MOVEI TAKES 14 NSEC.
2 - INDEXING TAKES 2 NSEC.
3 - INDEXING AND INDIRECT TAKES 7 NSEC.
4 - JSR TAKES 25 NSEC.
5 - JRST TAKES 18 NSEC.
6 - MOVE FROM AC TAKES 19 NSEC.
7 - MOVE FROM MEMORY TAKES 24 NSEC.
8 - HRR FROM MEMORY TAKES 22 NSEC.
9 - ADD FROM MEMORY TAKES 23 NSEC.
10 - SETOM  0 TAKES 16 NSEC.
11 - PUSHJ TAKES 28 NSEC.
12 - SHIFTING TAKES 0 NSEC.
13 - FSC AN INTEGER ONE TAKES 83 NSEC.
14 - FAD (1 RIGHT SHIFT) TAKES 32 NSEC.
15 - FAD (8 SHIFT RIGHT-3 LEFT) TAKES 38 NSEC.
16 - MUL (18 ADD/SUB - 36 SHIFTS) TAKES 25 NSEC
17 - FMP (14 ADD/SUB - 27 SHIFTS) TAKES 34 NSEC.
18 - RELOCATION TAKES 0 NSEC.
19 - REPEATED I/O INSTRUCTIONS TAKE 1.64 USEC.
20 - SHIFT AND ADD TAKES 0 NSEC.

Michael Thompson

unread,
Aug 16, 2023, 7:55:02 AM8/16/23
to Lars Brinkhoff, PiDP-10
I have similar results from my KS10.
--
You received this message because you are subscribed to the Google Groups "PiDP-10" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-10+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-10/ba019bdb-672e-447f-b342-b8d4ffee9bc3n%40googlegroups.com.

Lars Brinkhoff

unread,
Aug 16, 2023, 8:38:01 AM8/16/23
to PiDP-10
These partial results are from a DEC-2065 (KL10 model B).

1 - MOVEI TAKES 269 NSEC.
2 - INDEXING TAKES 36 NSEC.
3 - INDEXING AND INDIRECT TAKES 336 NSEC.
4 - JSR TAKES 642 NSEC.
5 - JRST TAKES 303 NSEC.
6 - MOVE FROM AC TAKES 374 NSEC.
7 - MOVE FROM MEMORY TAKES 402 NSEC.
8 - HRR FROM MEMORY TAKES 443 NSEC.
9 - ADD FROM MEMORY TAKES 438 NSEC.
10 - SETOM  0 TAKES 571 NSEC.
11 - PUSHJ TAKES 708 NSEC.
14 - FAD (1 RIGHT SHIFT) TAKES 1.59 USEC.
15 - FAD (8 SHIFT RIGHT-3 LEFT) TAKES 1.81 USEC.

Michael Thompson

unread,
Aug 16, 2023, 9:02:21 AM8/16/23
to Lars Brinkhoff, PiDP-10
Real KS10 results

DECSYSTEM 2020 INSTRUCTION TIMING TEST (DSKFA)
VERSION 0.1, SV=0.3, CPU#=4097, MCV=117, MCO=0, HO=0, KASW=003740 000000

TTY SWITCH CONTROL ? - 0,S OR Y <CR> - 0
SWITCHES = 000000 000000

1 - BASIC CLOCK CYCLE IS 151 NSEC.
2 - INDEXING TAKES 303 NSEC.
3 - INDIRECT TAKES 910 NSEC.
4 - INDEXING AND INDIRECT TAKES 910 NSEC.
5 - MOVEI TAKES 1.22 USEC.
6 - MOVSI TAKES 1.52 USEC.
7 - MOVE FROM AC TAKES 1.52 USEC.
8 - MOVE FROM MEMORY TAKES 1.52 USEC.
9 - MOVE TO MEMORY TAKES 2.28 USEC.
10 - HRR FROM MEMORY TAKES 1.82 USEC.
11 - HRRZ FROM MEMORY TAKES 1.82 USEC.
12 - HLRZ FROM MEMORY TAKES 2.13 USEC.
13 - SETZ TAKES 1.52 USEC.
14 - SETZM TAKES 1.97 USEC.
15 - SETZB TAKES 2.28 USEC.
16 - SETO TAKES 1.52 USEC.
17 - SETOM TAKES 1.97 USEC.
18 - SETOB TAKES 2.28 USEC.
19 - JRST TAKES 914 NSEC.
20 - JRSTF @MEM TAKES 4.25 USEC.
21 - JUMPA TAKES 1.22 USEC.
22 - JUMP THAT DOESN'T TAKES 1.97 USEC.
23 - JUMP THAT DOES TAKES 1.97 USEC.
24 - JSR TAKES 2.74 USEC.
25 - JSP TAKES 1.82 USEC.
26 - AOBJN TAKES 1.97 USEC.
27 - SOJ TAKES 1.82 USEC.
28 - SOS TAKES 3.34 USEC.
29 - AOJ TAKES 1.82 USEC.
30 - AOS TAKES 3.34 USEC.
31 - JFFO (1B0) TAKES 3.95 USEC.
32 - JFFO (1B35) TAKES 14.55 USEC.
33 - PUSH TAKES 2.73 USEC.
34 - POP TAKES 3.79 USEC.
35 - MUUO TAKES 15.34 USEC.
36 - LUUO TAKES 4.07 USEC.
37 - PUSHJ TAKES 2.73 USEC.
38 - ADD IMMEDIATE TAKES 1.67 USEC.
39 - ADD FROM MEMORY TAKES 1.97 USEC.
40 - ADD TO MEMORY TAKES 4.15 USEC.
41 - MUL (9 ADD/SUB - 18 SHIFTS) TAKES 15.76 USEC.
42 - IMULI TAKES 14.70 USEC.
43 - DIV TAKES 22.81 USEC.
44 - IDIVI TAKES 19.40 USEC.
45 - FIX A FLOATING POINT ONE TAKES 13.04 USEC.
46 - FLTR AN INTERGER ONE TAKES 17.74 USEC.
47 - FAD (1 RIGHT SHIFT) TAKES 6.83 USEC.
48 - FAD (8 SHIFT RIGHT - 3 LEFT) TAKES 11.07 USEC.
49 - FMP (7 ADD/SUB - 14 SHIFTS) TAKES 18.34 USEC.
50 - FDV TAKES 22.74 USEC.
51 - DMOVE FROM MEMORY TAKES 2.73 USEC.
52 - DMOVEM TO MEMORY TAKES 3.50 USEC.
53 - DFAD (1 RIGHT SHIFT) TAKES 12.73 USEC.
54 - DFAD (8 SHIFT RIGHT - 1 LEFT) TAKES 14.86 USEC.
55 - DFMP (7 ADD/SUB - 32 SHIFTS) TAKES 63.35 USEC.
56 - DFDV TAKES 52.74 USEC.
57 - CONO PI TAKES 7.28 USEC.
58 - CONI PI TAKES 2.88 USEC.
59 - CONO PAG TAKES 109.13 USEC.
60 - DATAO PAG LOAD UBR TAKES 109.94 USEC.
61 - DATAO PAG LOAD AC BLK TAKES 3.65 USEC.
62 - WRIO TAKES 14.25 USEC.
63 - RDIO TAKES 15.46 USEC.
64 - LOGICAL SHIFT (35 PLACES LEFT) TAKES 7.43 USEC.
65 - LOGICAL SHIFT (35 PLACES RIGHT) TAKES 7.43 USEC.
66 - LOGICAL SHIFT COMBINED (71 PLACES LEFT) TAKES 25.46 USEC.
67 - LOGICAL SHIFT COMBINED (71 PLACES RIGHT) TAKES 25.76 USEC.
68 - INCREMENT BYTE POINTER TAKES 3.04 USEC.
69 - ILDB (7 BITS) TAKES 5.92 USEC.
70 - IDPB (7 BITS) TAKES 6.98 USEC.
71 - ILDB (6 BITS) TAKES 9.86 USEC.
72 - IDPB (6 BITS) TAKES 15.01 USEC.
73 - LDB (7 BITS - POS 6) TAKES 4.70 USEC.
74 - LDB (7 BITS - POS 13) TAKES 4.70 USEC.
75 - LDB (7 BITS - POS 20) TAKES 4.70 USEC.
76 - LDB (7 BITS - POS 27) TAKES 4.70 USEC.
77 - LDB (7 BITS - POS 34) TAKES 4.70 USEC.
78 - DPB (7 BITS - POS 6) TAKES 5.76 USEC.
79 - DPB (7 BITS - POS 13) TAKES 5.76 USEC.
80 - DPB (7 BITS - POS 20) TAKES 5.76 USEC.
81 - DPB (7 BITS - POS 27) TAKES 5.76 USEC.
82 - DPB (7 BITS - POS 34) TAKES 5.76 USEC.
83 - LDB (6 BITS - POS 5) TAKES 9.70 USEC.
84 - LDB (6 BITS - POS 11) TAKES 8.79 USEC.
85 - LDB (6 BITS - POS 17) TAKES 7.88 USEC.
86 - LDB (6 BITS - POS 23) TAKES 9.40 USEC.
87 - LDB (6 BITS - POS 29) TAKES 8.49 USEC.
88 - LDB (6 BITS - POS 35) TAKES 7.58 USEC.
89 - DPB (6 BITS - POS 5) TAKES 14.86 USEC.
90 - DPB (6 BITS - POS 11) TAKES 13.95 USEC.
91 - DPB (6 BITS - POS 17) TAKES 13.04 USEC.
92 - DPB (6 BITS - POS 23) TAKES 12.13 USEC.
93 - DPB (6 BITS - POS 29) TAKES 11.22 USEC.
94 - DPB (6 BITS - POS 35) TAKES 10.31 USEC.
95 - JFCL TAKES 1.67 USEC.
96 - CAI NO-OP TAKES 1.22 USEC.
97 - CAI THAT DOESN'T SKIP TAKES 2.13 USEC.
98 - CAI THAT SKIPS TAKES 2.13 USEC.
99 - CAM NO-OP TO AC TAKES 1.97 USEC.
100 - CAM TO AC THAT DOESN'T SKIP TAKES 2.43 USEC.
101 - CAM TO AC THAT SKIPS TAKES 2.43 USEC.
102 - CAM NO-OP TO MEMORY TAKES 1.97 USEC.
103 - CAM TO MEMORY THAT DOESN'T SKIP TAKES 2.43 USEC.
104 - CAM TO MEMORY THAT SKIPS TAKES 2.43 USEC.
105 - TLN NO SKIP TAKES 2.28 USEC.
106 - TLN SKIP TAKES 2.28 USEC.
107 - TRN NO SKIP TAKES 1.97 USEC.
108 - TRN SKIP TAKES 1.98 USEC.
109 - TDN NO SKIP TAKES 2.28 USEC.
110 - TDN SKIP TAKES 2.28 USEC.
111 - TSN NO SKIP TAKES 2.58 USEC.
112 - TSN SKIP TAKES 2.59 USEC.
113 - SKIP TO AC THAT DOESN'T TAKES 2.58 USEC.
114 - SKIP TO AC THAT DOES TAKES 2.59 USEC.
115 - SKIP TO MEMORY THAT DOESN'T TAKES 2.58 USEC.
116 - SKIP TO MEMORY THAT DOES TAKES 2.59 USEC.
117 - EQV AC TO AC TAKES 1.82 USEC.
118 - EQV MEMORY TO AC TAKES 1.82 USEC.
119 - EXCHANGE AN AC WITH AN AC TAKES 2.58 USEC.
120 - EXCHANGE AN AC WITH MEMORY TAKES 2.58 USEC.
121 - EXECUTE TAKES 2.12 USEC.
122 - BLT MEMORY TO MEMORY TAKES 7.43 USEC.
123 - BLT AC TO MEMORY TAKES 7.43 USEC.

TEST COMPLETED
 SMMAG CMD - 

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


--
Michael Thompson

Heinz-Bernd Eggenstein

unread,
Aug 18, 2023, 5:10:04 AM8/18/23
to PiDP-10
Nice! Exactly what I was looking for, thanks folks!

Michael Cheponis

unread,
Aug 28, 2024, 5:19:34 PM8/28/24
to PiDP-10
Fantastic info on KS10 (instruction timings), thank you.   Do you happen to know the "Dhrystone MIPS" performance?  The one where the VAX-11/780 is considered "1 MIPS"?

So buying them and measuring is I guess an option for the deep-pocketed  (although the initial bids are low).

I think Dhrystone was written after pdp-10s were gone from the scene, mostly.   But it would be interesting to have "Dhrystone MIPS" numbers for the entire PDP-10 / DECSYSTEM 20 line.

Thanks
Mike

Reply all
Reply to author
Forward
0 new messages