OoO execution (was: The Seymour Cray Era of Supercomputers)

Liste des GroupesRevenir à c arch 
Sujet : OoO execution (was: The Seymour Cray Era of Supercomputers)
De : anton (at) *nospam* mips.complang.tuwien.ac.at (Anton Ertl)
Groupes : comp.arch
Date : 19. May 2025, 07:22:42
Autres entêtes
Organisation : Institut fuer Computersprachen, Technische Universitaet Wien
Message-ID : <2025May19.082242@mips.complang.tuwien.ac.at>
References : 1 2 3 4 5 6 7
User-Agent : xrn 10.11
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 innovation that made OoO execution generally usable rather than a
publicity stunt like the 360/91 is the reorder buffer (ROB), which allows to
retire the instructions in-order, and to cancel speculatively
"executed" instructions after an exception or branch misprediction.

The Pentium Pro (introduced 1995-11-01), HP PA-8000 (introduced
1995-11-02), and MIPS R10000 (introduced 1996-01) are the first
microprocessors which have full-blown OoO execution.

But as someone pointed out to me, IBM has implemented OoO execution
between the 370/195 and the Pentium Pro: The ES/9000 models 900 and
820 (shipping from September 1991) "were the first models with
out-of-order execution since the System/370-195 of 1973. However
unlike the old S/360-91-derived systems, the models 900 and 820 had
full out-of-order execution for both integer and floating-point units,
with precise exception handling, and a fully superscalar pipeline."
<https://en.wikipedia.org/wiki/IBM_System/390#ES/9000>.  So apparently
they had a ROB, and AFAIK were the first machines to have one.  These
models also had a branch target buffer; the article does not mention
branch prediction proper, but given a ROB and a branch target buffer,
it would be surprising if they did not predict branches.

So who came up with the concept of the ROB?  I recently looked at one
of the HPS papers (Hwu, Patt, Shebanov on a High Performance Substrate
for the VAX from the mid-late 80s) again, and there was no ROB in that
paper.  I did not revisit their later papers whether they had it
there.  So apparently ROBs were not known in the mid-1980s in
academia, and in 1991 there was hardware with a ROB commercially
available, and a few years later it appeared in microprocessors.

I wonder how early and how much IBM talked about their ES/9000 OoO
implementation and features, but that may have inspired the teams at
Intel, HP and SGI; or maybe there was an ealier source that inspired
them all, but only in 1995/1996 the number of transistors on a chip
was enough to do OoO on a microprocessor.

Ironically, in the transition to CMOS (i.e., microprocessors) IBM
mainframe processors regressed back to in-order (and, I think,
single-issue) again (but with higher clock rates), and in the early
2000s they looked pretty outdated to me.  In the meantime they have
re-progressed to OoO again AFAIK.

Back to OoO: it's interesting that Tomasulo and the 360/91 are
mentioned often, but the ROB and its inventor(s?), which are at least
as important for the success of OoO execution, isn't.

- anton
--
'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
  Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>

Date Sujet#  Auteur
17 May21:00 * The Seymour Cray Era of Supercomputers45Thomas Koenig
17 May22:27 `* Re: The Seymour Cray Era of Supercomputers44MitchAlsup1
18 May06:46  +* Re: The Seymour Cray Era of Supercomputers33Thomas Koenig
18 May16:23  i`* Re: The Seymour Cray Era of Supercomputers32Michael S
18 May23:02  i +- Re: The Seymour Cray Era of Supercomputers1MitchAlsup1
19 May02:08  i `* Re: The Seymour Cray Era of Supercomputers30quadibloc
19 May02:56  i  `* Re: The Seymour Cray Era of Supercomputers29Lawrence D'Oliveiro
19 May04:12  i   +* Re: The Seymour Cray Era of Supercomputers17quadibloc
19 May07:22  i   i+* OoO execution (was: The Seymour Cray Era of Supercomputers)15Anton Ertl
19 May18:10  i   ii+* Re: OoO execution (was: The Seymour Cray Era of Supercomputers)8John Levine
19 May18:46  i   iii`* Re: OoO execution (was: The Seymour Cray Era of Supercomputers)7Anton Ertl
19 May20:09  i   iii +* Re: OoO execution3Ze
20 May01:04  i   iii i`* Re: OoO execution2Lawrence D'Oliveiro
20 May01:30  i   iii i `- Re: OoO execution1MitchAlsup1
21 May17:52  i   iii `* Re: OoO execution (was: The Seymour Cray Era of Supercomputers)3George Neuner
21 May18:14  i   iii  +- Re: OoO execution1Stefan Monnier
21 May18:47  i   iii  `- Re: OoO execution1moi
19 May20:08  i   ii+* Re: OoO execution3quadibloc
19 May21:04  i   iii`* Re: OoO execution2Terje Mathisen
19 May21:27  i   iii `- Re: OoO execution1Michael S
19 May21:41  i   ii`* Re: OoO execution (was: The Seymour Cray Era of Supercomputers)3Michael S
20 May01:01  i   ii +- Re: OoO execution (was: The Seymour Cray Era of Supercomputers)1Lawrence D'Oliveiro
20 May22:21  i   ii `- Re: OoO execution (was: The Seymour Cray Era of Supercomputers)1Anton Ertl
19 May08:50  i   i`- Re: The Seymour Cray Era of Supercomputers1Lawrence D'Oliveiro
19 May14:55  i   `* Re: The Seymour Cray Era of Supercomputers11Michael S
20 May00:58  i    `* Re: The Seymour Cray Era of Supercomputers10Lawrence D'Oliveiro
20 May11:45  i     `* Re: The Seymour Cray Era of Supercomputers9Michael S
20 May17:59  i      +- Re: The Seymour Cray Era of Supercomputers1MitchAlsup1
20 May20:59  i      `* Re: The Seymour Cray Era of Supercomputers7John Levine
20 May23:48  i       +- Re: The Seymour Cray Era of Supercomputers1MitchAlsup1
21 May09:21  i       `* Re: The Seymour Cray Era of Supercomputers5Michael S
21 May09:44  i        +- Re: The Seymour Cray Era of Supercomputers1Lawrence D'Oliveiro
21 May17:09  i        `* Re: The Seymour Cray Era of Supercomputers3John Levine
21 May18:11  i         `* Re: The Seymour Cray Era of Supercomputers2Michael S
21 May21:04  i          `- Re: The Seymour Cray Era of Supercomputers1John Levine
18 May09:33  `* Re: The Seymour Cray Era of Supercomputers10Michael S
18 May23:01   `* Re: The Seymour Cray Era of Supercomputers9MitchAlsup1
19 May14:35    `* Re: The Seymour Cray Era of Supercomputers8Michael S
19 May17:49     +- Re: The Seymour Cray Era of Supercomputers1Al Kossow
19 May19:14     `* Re: The Seymour Cray Era of Supercomputers6MitchAlsup1
19 May21:11      +* Re: The Seymour Cray Era of Supercomputers2Michael S
20 May07:36      i`- Re: The Seymour Cray Era of Supercomputers1BGB
20 May06:40      `* Re: The Seymour Cray Era of Supercomputers3Lawrence D'Oliveiro
20 May17:58       `* Re: The Seymour Cray Era of Supercomputers2MitchAlsup1
21 May01:28        `- Re: The Seymour Cray Era of Supercomputers1Lawrence D'Oliveiro

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal