Talk:Tomasulo's algorithm

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Imprecise exceptions[edit]

The claim in the article that imprecise exceptions cannot occur except in Out-Of-Order machines is wrong: in an in-order pipelined, single or superscalar machine there may be multiple simultaneous exceptions. Not every exception is detected at the same pipeline stage, and some late exceptions like bus errors may be detected only after subsequent instructions have completed. Where certain instructions are dispatched to a coprocessor, as in 80287 or MC68881, they may signal exceptions asynchronously! — Preceding unsigned comment added by 173.48.253.79 (talk) 11:05, 28 March 2015 (UTC)[reply]

I see that after 8 years, there has been no correction to this obvious mistake. I added a Disputed Section header. A reference that establishes the (well-known) fact that Tomasulo's original algorithm did not offer precise exceptions is "Implementing Precise Interrupts in Pipelined Processors", Smith and Pleszkun, available at https://www.cs.virginia.edu/~evans/greatworks/smith.pdf, which states: "The precise interrupt problem is as old as the first pipelined computers [5]. The IBM 360/91 [3] was a well-known computer that produced imprecise interrupts under some circumstances, floating point exceptions, for example. Imprecise interrupts were a break with the IBM 360 architecture which made them even more noticeable." There are many other references. This isn't a triviality; the problem of providing precise exceptions is fundamental to the design of computers with out-of-order execution. The person who wrote this erroneous content was probably confusing Tomasulo's original work with later work that addressed this (serious) issue. Can we just remove the section? It would be better to say nothing that to say something that's totally wrong. — Preceding unsigned comment added by 2601:1C0:5401:2040:5525:CCDC:6524:B9CF (talk) 03:34, 21 December 2023 (UTC)[reply]

Floating-point?[edit]

Floating-point registers are mentioned twice, with no clear reason given.
Are they harder to schedule or dispatch in common architectures? Musaran (talk) 20:26, 14 November 2023 (UTC)[reply]

No. Floating point registers are mentioned specifically because Tomasulo's original design applied only to the floating point section of the CPU in the IBM 360/91. Tomasulo's 1967 paper described that design, so it uses "floating point register" to mean "register". If this article is to be improved, one of the questions that would have to be answered is whether the improved article is about the paper Tomasulo wrote or about the nature of algorithm (which is not specific to floating point registers). 2601:1C0:5401:2040:B043:CD70:FFCC:DE5D (talk) 23:39, 23 December 2023 (UTC)[reply]