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] PPC on Talos and Playstation 3
Date: Mon, 30 Mar 2020 19:20:15 +0000
Message-ID: <CAPweEDwXNzMAgiA3htuqyz3a9vOTCzVHtSX2qqfW5ZCSHS3LRQ@mail.gmail.com> (raw)
In-Reply-To: <CAC2bXD5Etbih+gzJWpseB5mTMtKXLTFhgsbstPVXoPEy00jBXA@mail.gmail.com>
On Mon, Mar 30, 2020 at 8:01 PM Jacob Lifshay <programmerjake@gmail.com> wrote:
>
> On Mon, Mar 30, 2020, 11:36 Immanuel, Yehowshua U <yimmanuel3@gatech.edu>
> wrote:
>
> > Before I try my hand at an FPU,
> >
> > Some questions:
> > - Do we have any FPU attempt in nMigen, Verilog, or some other language
> > yet that I should be aware of?
> >
>
> yes, https://git.libre-riscv.org/?p=ieee754fpu.git;a=summary
sorry, missed this question. yehowshua: we have a *95% completed*
IEEE754 FPU already. we don't need another one. we _do_ however need
a formal proof of the one that we already have, plus adding POWER
rounding modes to the one that we already have.
> I was assuming we'd just implement them both as fully IEEE 754 compliant,
> unless the noncompliant mode mandates something incompatible with IEEE 754
> such as flushing denormals to zero.
have to check. i wasn't aware the mode existed until 5 minutes ago. 3.0B p126
bit 61:
Floating-Point Non-IEEE Mode (NI)
Floating-point non-IEEE mode is optional. If
floating-point non-IEEE mode is not imple-
mented, this bit is treated as reserved, and the
remainder of the definition of this bit does not
apply.
If floating-point non-IEEE mode is imple-
mented, this bit has the following meaning.
0 The processor is not in floating-point
non-IEEE mode (i.e., all floating-point
operations conform to the IEEE standard).
1 The processor is in floating-point
non-IEEE mode.
so it's optional, thank goodness.
> 4x16-bit, 2x32-bit, 64-bit. We're planning on having 2 64-bit units. The
> FPU should be designed to reuse the reconfigurable integer multiplier since
> that's most of the logic in fpmul or fma.
yes. this means:
* splitting the FPU pipeline into pre- and post- processing pipelines
* feeding the (partial) results from the FP pre-processing pipeline *back*
into (side-channel, non-Dependency-tracked) Function Units
* those request an InternalOp "MUL" (integer MUL) and mark the results
as belonging to an FP operation
* such that when the INT MUL finishes, the results get pushed back
to the Function Units again, now into the FINAL stage..
* which is to perform the FPU post-processing pipeline
so the data goes THREE TIMEs through the Function Units, going through
THREE separate pipelines.
> Also, the FP divider should also be shared with integer div/rem.
... and therefore the exact same trick as above will be needed.
interestingly this means that, hypothetically, we can do integer SQRT
and ineger RSQRT. the hardware exists: it's just that there's no
opcodes in POWER to get access to them.
l.
_______________________________________________
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: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-29 20:17 Immanuel, Yehowshua U
2020-03-29 20:20 ` Immanuel, Yehowshua U
2020-03-29 20:35 ` Jacob Lifshay
2020-03-29 21:01 ` Luke Kenneth Casson Leighton
2020-03-30 6:56 ` Lauri Kasanen
2020-03-30 7:12 ` Jacob Lifshay
2020-03-30 7:32 ` Lauri Kasanen
2020-03-30 7:52 ` Jacob Lifshay
2020-03-30 8:05 ` Lauri Kasanen
2020-03-30 18:07 ` Jacob Lifshay
2020-03-30 18:12 ` Immanuel, Yehowshua U
2020-03-30 18:16 ` Jacob Lifshay
2020-03-30 18:35 ` Immanuel, Yehowshua U
2020-03-30 18:36 ` Immanuel, Yehowshua U
2020-03-30 18:46 ` Luke Kenneth Casson Leighton
2020-03-30 18:57 ` Immanuel, Yehowshua U
2020-03-30 19:09 ` Luke Kenneth Casson Leighton
2020-03-30 19:20 ` Immanuel, Yehowshua U
2020-03-30 19:25 ` Luke Kenneth Casson Leighton
2020-03-30 19:35 ` Immanuel, Yehowshua U
2020-03-30 19:45 ` Jacob Lifshay
2020-03-30 19:46 ` Immanuel, Yehowshua U
2020-03-30 22:02 ` Luke Kenneth Casson Leighton
2020-03-30 19:01 ` Jacob Lifshay
2020-03-30 19:20 ` Luke Kenneth Casson Leighton [this message]
2020-03-31 21:57 ` Michael Nolan
2020-03-31 23:01 ` Luke Kenneth Casson Leighton
2020-04-01 0:23 ` Immanuel, Yehowshua U
2020-04-01 0:44 ` [libre-riscv-dev] additional ddr3 interfaces Jacob Lifshay
2020-04-01 0:47 ` Immanuel, Yehowshua U
2020-04-01 1:01 ` Jacob Lifshay
2020-04-01 11:10 ` Luke Kenneth Casson Leighton
2020-04-01 15:19 ` Staf Verhaegen
2020-04-01 15:42 ` Luke Kenneth Casson Leighton
2020-04-01 11:00 ` [libre-riscv-dev] PPC on Talos and Playstation 3 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=CAPweEDwXNzMAgiA3htuqyz3a9vOTCzVHtSX2qqfW5ZCSHS3LRQ@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