Sujet : Re: OoO execution (was: The Seymour Cray Era of Supercomputers)
De : johnl (at) *nospam* taugh.com (John Levine)
Groupes : comp.archDate : 19. May 2025, 18:10:51
Autres entêtes
Organisation : Taughannock Networks
Message-ID : <100fomr$n4q$1@gal.iecc.com>
References : 1 2 3 4
User-Agent : trn 4.0-test77 (Sep 1, 2010)
It appears that Anton Ertl <
anton@mips.complang.tuwien.ac.at> said:
quadibloc <quadibloc@gmail.com> writes:
Eventually, IBM caught up with the Control
Data 6600 by perfecting pipelining in the IBM 360/91, and then combining
it with cache in the 360/195. From the Pentium II onwards, that's the
way computers are made nowadays.
>
Pipelining and caches are already used on the MIPS R2000 in 1986, and
the 486 in 1989.
>
You are probably thinking of OoO Execution, where people usually write
as if the Tomasulo algorithm of the 360/91 as implemented the modern
concept of OoO execution. But the 360/91 only did OoO for FP, did not
support branch prediction, had imprecise exceptions, and the Tomasulo
algorithm was used primarily as a workaround for the dearth of FP
registers in the S/360.
The 360/91 had primitive branch prediction in "loop mode". It had an
eight doublewprd instruction queue (which it confusingly called a stack.)
If a program did a backward branch of less than eight doublewords, it'd
stop prefetching and execute out of the queue until the program fell or
branched out. It was occasionally worth tweaking assembly code to get
a loop to start on a doubleword boundary (the CNOP assembler op) so it'd
fit and run in loop mode.
-- Regards,John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",Please consider the environment before reading this e-mail. https://jl.ly