I stumbled some time ago on a page about Hercules instruction timing, didn't bookmark it properly, and failed to find it again.
I'm fully aware of
- all the pitfalls of synthetic benchmarks
- that the concept of instruction timing is not meaningful for modern CPUs with multi-issue and out-of-order capabilities
- that instruction timing on an emulator is very different from what one might see on a real CPU
Despite all these provisos I wrote a small synthetic benchmark to
determine the 370 instruction timing. It covers most non-privileged
instructions in a total of 124 individual tests. The assembler source
and a result file are uploaded to Yahoo! Group turnkey-mvs under
perf_asm.zip
.
The job perf_asm.jcl
runs about 2 minutes on a modern x86 CPU.
I've executed the job on a
Turnkey 4- system under Linux.
So the results reflect the performance of the
Hercules
version bundles with Juergen Winkelmann's TK4- distribution.
The results files perf_asm.txt
list the test tag name 'Tnnn',
a short description of the instruction tested.
- The column
med
gives the time in ns per instruction. - The column
n-rr
gives the time normalized to "T100 : LR R,R", the fastest simple register-register instruction. - The column
n-rx
gives the time normalized to "T102 : L R,m" which is a typical fast instruction with a single memory access.
The timing is actually measured with STCK
, which is a 'time of day'
clock, The tests were done on an otherwise idle MVS system, and on an
otherwise idle host system. The job perf_asm.jcl
was executed
29 times, the value shown in column 'med' are the median values of these 29
runs to have an estimate robust against outliers.
There are many obvious and expected trends and relations, but also a few surprises (at least for me).
I consider this V0.1 of this code, it needs further refinement and cross-checking. I'd very much appreciate
- any comment on the test code itself
- any comment on the results
- any references to other similar tests
s370-perf
and is now
the central element of a a separate GitHub project
wfjm/s370-perf.