Libre RISC-V Mailing list Archives (accessible via public-inbox)
 help / color / Atom feed
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

  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