From: bugzilla-daemon@libre-soc.org
To: libre-riscv-dev@lists.libre-riscv.org
Subject: [libre-riscv-dev] [Bug 305] Create Pipelined ALU similar to alu_hier.py
Date: Wed, 27 May 2020 17:56:04 +0000
Message-ID: <bug-305-13-9op7gyJV18@https.bugs.libre-soc.org/> (raw)
In-Reply-To: <bug-305-13@https.bugs.libre-soc.org/>
https://bugs.libre-soc.org/show_bug.cgi?id=305
--- Comment #85 from Luke Kenneth Casson Leighton <lkcl@lkcl.net> ---
(In reply to Jacob Lifshay from comment #84)
> (In reply to Luke Kenneth Casson Leighton from comment #83)
> > um... um... it just occurred to me: if we detect that XER sticky overflow
> > is 1 in the ALU output stage, and if it is set (and required - insn.OE etc.)
> > only then do we even request a write to the XER.so register, then because
> > it is only setting, i do not believe we even need to read the XER.so at all.
> >
> > as in: i think we can actually *remove* XER.so from ALUInputData, entirely.
> >
> > this is because we don't actually care what the former value was - at all -
> > we are merely setting it. and because that new value is *not* dependent
> > on the old value - at all - we don't need to waste that read port.
> >
> > does this sound like a reasonable analysis?
>
> sounds mostly correct to me, as long as the logic for setting CR0's 4th bit
> still reads the previous value when overflow isn't triggered.
that's the fly in the ointment. i started removing SO and found that because
it is CR0's 4th bit, and because that 4th bit takes XER.SO as input
unconditionally as far as the calculation is concerned, XER.SO cannot be
removed from the input data structure for ALU.
now, it *can* be switched off by the *instruction* - Rc=1/0 - but not by the
ALU itself.
> SO is a prime
> candidate for some extra logic to allow multiple instructions to modify it
> each cycle.
as SO is being treated like any other register (despite it being only 1 bit
wide) it should be picked up by standard WaW (write after write) and unused
values thrown away.
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
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: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-08 15:17 [libre-riscv-dev] [Bug 305] New: " bugzilla-daemon
2020-05-08 15:17 ` [libre-riscv-dev] [Bug 305] " bugzilla-daemon
2020-05-08 15:28 ` bugzilla-daemon
2020-05-08 15:28 ` bugzilla-daemon
2020-05-08 15:29 ` bugzilla-daemon
2020-05-08 15:29 ` bugzilla-daemon
2020-05-08 15:32 ` bugzilla-daemon
2020-05-08 15:35 ` bugzilla-daemon
2020-05-08 15:40 ` bugzilla-daemon
2020-05-08 16:48 ` bugzilla-daemon
2020-05-08 16:54 ` bugzilla-daemon
2020-05-08 17:04 ` bugzilla-daemon
2020-05-08 17:10 ` bugzilla-daemon
2020-05-08 18:38 ` bugzilla-daemon
2020-05-08 23:08 ` bugzilla-daemon
2020-05-09 13:13 ` bugzilla-daemon
2020-05-09 13:37 ` bugzilla-daemon
2020-05-09 13:41 ` bugzilla-daemon
2020-05-09 13:45 ` bugzilla-daemon
2020-05-09 13:48 ` bugzilla-daemon
2020-05-09 14:04 ` bugzilla-daemon
2020-05-09 14:06 ` bugzilla-daemon
2020-05-09 18:23 ` bugzilla-daemon
2020-05-09 19:08 ` bugzilla-daemon
2020-05-09 19:12 ` bugzilla-daemon
2020-05-09 21:18 ` bugzilla-daemon
2020-05-09 21:35 ` bugzilla-daemon
2020-05-09 21:42 ` bugzilla-daemon
2020-05-10 4:25 ` bugzilla-daemon
2020-05-10 4:30 ` bugzilla-daemon
2020-05-10 23:03 ` bugzilla-daemon
2020-05-10 23:06 ` bugzilla-daemon
2020-05-10 23:11 ` bugzilla-daemon
2020-05-10 23:15 ` bugzilla-daemon
2020-05-10 23:42 ` bugzilla-daemon
2020-05-11 0:04 ` bugzilla-daemon
2020-05-11 1:11 ` bugzilla-daemon
2020-05-11 10:30 ` bugzilla-daemon
2020-05-11 13:23 ` bugzilla-daemon
2020-05-11 14:31 ` bugzilla-daemon
2020-05-11 15:51 ` bugzilla-daemon
2020-05-11 16:03 ` bugzilla-daemon
2020-05-11 16:13 ` bugzilla-daemon
2020-05-11 16:13 ` bugzilla-daemon
2020-05-11 18:15 ` bugzilla-daemon
2020-05-11 18:23 ` bugzilla-daemon
2020-05-12 9:24 ` bugzilla-daemon
2020-05-12 10:03 ` bugzilla-daemon
2020-05-12 21:33 ` bugzilla-daemon
2020-05-12 22:02 ` bugzilla-daemon
2020-05-13 1:05 ` bugzilla-daemon
2020-05-13 16:46 ` bugzilla-daemon
2020-05-13 17:22 ` bugzilla-daemon
2020-05-13 17:29 ` bugzilla-daemon
2020-05-13 18:46 ` bugzilla-daemon
2020-05-13 18:48 ` bugzilla-daemon
2020-05-13 18:57 ` bugzilla-daemon
2020-05-13 21:54 ` bugzilla-daemon
2020-05-14 0:20 ` bugzilla-daemon
2020-05-14 14:37 ` bugzilla-daemon
2020-05-14 14:48 ` bugzilla-daemon
2020-05-14 15:34 ` bugzilla-daemon
2020-05-14 16:17 ` bugzilla-daemon
2020-05-14 16:21 ` bugzilla-daemon
2020-05-14 16:35 ` bugzilla-daemon
2020-05-14 16:54 ` bugzilla-daemon
2020-05-14 17:14 ` bugzilla-daemon
2020-05-14 17:29 ` bugzilla-daemon
2020-05-14 18:42 ` bugzilla-daemon
2020-05-14 19:06 ` bugzilla-daemon
2020-05-14 19:10 ` bugzilla-daemon
2020-05-14 19:21 ` bugzilla-daemon
2020-05-14 19:27 ` bugzilla-daemon
2020-05-14 19:48 ` bugzilla-daemon
2020-05-15 14:00 ` bugzilla-daemon
2020-05-15 14:13 ` bugzilla-daemon
2020-05-15 14:19 ` bugzilla-daemon
2020-05-15 14:23 ` bugzilla-daemon
2020-05-15 15:07 ` bugzilla-daemon
2020-05-15 15:29 ` bugzilla-daemon
2020-05-15 15:30 ` bugzilla-daemon
2020-05-15 15:33 ` bugzilla-daemon
2020-05-15 15:41 ` bugzilla-daemon
2020-05-18 1:40 ` bugzilla-daemon
2020-05-18 4:07 ` bugzilla-daemon
2020-05-18 5:19 ` bugzilla-daemon
2020-05-19 12:02 ` bugzilla-daemon
2020-05-19 12:04 ` bugzilla-daemon
2020-05-19 12:29 ` bugzilla-daemon
2020-05-20 6:06 ` bugzilla-daemon
2020-05-20 14:01 ` bugzilla-daemon
2020-05-20 15:19 ` bugzilla-daemon
2020-05-20 19:28 ` bugzilla-daemon
2020-05-21 10:31 ` bugzilla-daemon
2020-05-22 16:17 ` bugzilla-daemon
2020-05-22 17:27 ` bugzilla-daemon
2020-05-27 16:06 ` bugzilla-daemon
2020-05-27 17:46 ` bugzilla-daemon
2020-05-27 17:56 ` bugzilla-daemon [this message]
2020-05-27 18:24 ` bugzilla-daemon
2020-05-27 18:33 ` bugzilla-daemon
2020-05-27 18:38 ` bugzilla-daemon
2020-06-01 23:24 ` bugzilla-daemon
2020-06-08 18:37 ` bugzilla-daemon
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=bug-305-13-9op7gyJV18@https.bugs.libre-soc.org/ \
--to=bugzilla-daemon@libre-soc.org \
--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