From: Luke Kenneth Casson Leighton <lkcl@lkcl.net>
To: Libre-RISCV General Development <libre-riscv-dev@lists.libre-riscv.org>
Subject: Re: [libre-riscv-dev] Introduction and Questions
Date: Sat, 16 May 2020 13:30:57 +0100
Message-ID: <CAPweEDy8ZVzwnC2amB97EHWf_aneDRZJaiC+WTE9JRfkE4mSQg@mail.gmail.com> (raw)
In-Reply-To: <7c84f530-fc12-0f4e-8a1c-7e58a1b498c3@fibraservi.eu>
(appreciate the compiler analysis, Staf.)
On Saturday, May 16, 2020, Staf Verhaegen <staf@fibraservi.eu> wrote:
>
> Assume a write to a scratch register is still pending when doing a
> procedure. With real register renaming the register stack push does not
> need to block until write to register is complete, if it doesn't the
> register push will block.
fortunately if there are enough Function Units (their operand and result
latches being "storers of in-flight registers without any names"), the
pipelines can continue to produce results, and if there is an operand
forwarding bus the scratch register result can be passed on to other FUs to
continue further work - none of which hits the Register File... yet - all
without stalling.
it has been a year so the details are a little hazy, however i seem to
recall that a WaW with enough FunctionUnits plus operand forwarding will
just have a small one clock cycle penalty of the extra regfile write that
could be optimised out.
not, "total catastrophic performance drop".
the optimisation if i recall correctly involved detecting, at the
Dependency Matrices, that there was not only no reader of a given register
waiting for the result, but that there was an outstanding write as well.
i.e. WaW can only be optimised away if there is no reader *in between* the
two writes.
i.e. if there is W R W you cannot throw away the 1st W until the R has
happened.
this requires tracking of multiple Ws per register actually at the
Dependency Matrices, and that means literally doubling or tripling the size
of the matrices which are already going to be enormous.
hence why the decision was taken to shelve that one for later as it is the
kind of thing that matters for high performance.
l.
--
---
crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68
_______________________________________________
libre-riscv-dev mailing list
libre-riscv-dev@lists.libre-riscv.org
http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev
next prev parent reply index
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-15 18:24 Jeremy Singher
2020-05-15 18:45 ` Yehowshua
2020-05-15 19:15 ` Jeremy Singher
2020-05-15 19:20 ` Yehowshua
2020-05-15 19:24 ` Yehowshua
2020-05-15 19:33 ` Yehowshua
2020-05-15 20:11 ` Luke Kenneth Casson Leighton
2020-05-15 20:50 ` Jeremy Singher
2020-05-15 21:03 ` Yehowshua
2020-05-15 21:19 ` Jacob Lifshay
2020-05-15 21:55 ` Luke Kenneth Casson Leighton
2020-05-15 21:53 ` Luke Kenneth Casson Leighton
2020-05-15 22:15 ` Jeremy Singher
2020-05-15 22:29 ` Yehowshua
2020-05-15 22:51 ` Luke Kenneth Casson Leighton
2020-05-15 22:47 ` Luke Kenneth Casson Leighton
2020-05-15 23:49 ` Jeremy Singher
2020-05-16 0:40 ` Luke Kenneth Casson Leighton
2020-05-16 9:47 ` Staf Verhaegen
2020-05-16 11:30 ` Staf Verhaegen
2020-05-16 12:30 ` Luke Kenneth Casson Leighton [this message]
2020-05-16 20:34 ` Jeremy Singher
2020-05-16 21:42 ` Luke Kenneth Casson Leighton
2020-05-16 9:43 ` Staf Verhaegen
2020-05-16 12:14 ` Luke Kenneth Casson Leighton
2020-05-15 18:47 ` Yehowshua
2020-05-16 12:11 ` Luke Kenneth Casson Leighton
-- strict thread matches above, loose matches on Subject: below --
2020-05-15 6:50 Jeremy Singher
2020-06-06 22:47 ` Yehowshua
2020-06-06 22:48 ` Luke Kenneth Casson Leighton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAPweEDy8ZVzwnC2amB97EHWf_aneDRZJaiC+WTE9JRfkE4mSQg@mail.gmail.com \
--to=lkcl@lkcl.net \
--cc=libre-riscv-dev@lists.libre-riscv.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Libre RISC-V Mailing list Archives (accessible via public-inbox)
Archives are clonable: git clone --mirror https://inbox.libre-soc.org/libre-riscv-dev
Example config snippet for mirrors
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git