Sujet : Re: Computer architects leaving Intel...
De : paaronclayton (at) *nospam* gmail.com (Paul A. Clayton)
Groupes : comp.archDate : 01. Sep 2024, 22:02:16
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vb7stc$3fn7b$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.0
On 8/31/24 4:56 PM, BGB wrote:
[snip]
I was mostly doing dual-issue with a 4R2W design.
Initially, 6R3W won out mostly because 4R2W disallows an indexed store to be run in parallel with another op; but 6R3W did allow this.
Stores and MADD allow one register read to be delayed by at least
one cycle. If the following cycle had a free read port, that could
be stolen to complete the store/MADD. This could be viewed as
cracking a three-source operation into a two-source operation and
a one-source operation that reads source operands in a following
cycle except that this operation never uses a result from the
previous cycle.
In a VLIW, one could even imagine the register name for the
delayed read being in the next instruction word if the available
read port was always from using an immediate or having fewer
source operands. This would add complexity for exceptions,
branches, and even instruction cache misses. With a small
buffer, a VLIW could also borrow from a previous cycle; an
operation with one register source could include a "load into
buffer" operation. (I do not recall ever reading about cross-
cycle/-instruction-word register fields in any VLIW. While it
seems to fit the VLIW model of static resource management, it
breaks the "atomic" view of an instruction word and of the
operation components — even borrowing within an instruction
word seems not to have been considered.)
Relying on forwarding or stealing from a future surplus would
result in variable performance unless the opportunities were
guaranteed (at least for enough cases that performance glitches
would not be significant).