Sujet : Re: Instruction Tracing
De : anton (at) *nospam* mips.complang.tuwien.ac.at (Anton Ertl)
Groupes : comp.archDate : 10. Aug 2024, 11:18:02
Autres entêtes
Organisation : Institut fuer Computersprachen, Technische Universitaet Wien
Message-ID : <2024Aug10.121802@mips.complang.tuwien.ac.at>
References : 1
User-Agent : xrn 10.11
Lawrence D'Oliveiro <
ldo@nz.invalid> writes:
One thing these instruction traces would frequently report is that integer
multiply and divide instructions were not so common, and so could be
omitted and emulated in software, with minimal impact on overall
performance. We saw this design decision taken in the early versions of
Sun’s SPARC for example, and also IBM’s ROMP as used in the RT PC.
Alpha and IA-64 have no integer division. IIRC IA-64 has no FP
division.
One interesting aspect of RISC-V is that they put multiplication and
division in the same extension (which is included in RV64G, i.e., the
General version of RISC-V).
Later, it seems, the CPU designers realized that instruction traces were
not the final word on performance measurements, and started to include
hardware integer multiply and divide instructions.
When you invest more hardware to increase performance per cycle, at
one point the best return on investment is to have multiplication and
division instructions. What is interesting is that the multipliers
have than soon been fully pipelined. Or, as Mitch Alsup reports, in
cases where that was cheaper, have two half-pipelined multipliers.
Apparently there are enough applications that require a huge number of
multiplications; my guess is that the NSA won't tell us what they are.
- anton
-- 'Anyone trying for "industrial quality" ISA should avoid undefined behavior.' Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>