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] morphing 6600 code to use power decoder
Date: Sun, 12 Apr 2020 13:32:15 +0100
Message-ID: <CAPweEDyd5+RY6khpoOVCHPBR+8s5q4oOkQVpZzpvubQeSb9W2w@mail.gmail.com> (raw)
In-Reply-To: <CAPweEDx0yR0QoE-UGHLyvgnVLnFNkRJm2zhz=tJ6ixYU6YRxKw@mail.gmail.com>
https://libre-soc.org/3d_gpu/compunit_multi_rw.png
argh. the addition of Carry (and other registers) means that the
"simple" 2-in, 1-out Computation Unit is not going to work.
additionally, there are actually 3-in 2-out operations such as the
int-mul-and-add, and FP operations will need to modify FPSCR as well.
the original 6600 CompUnits *specifically* waited until *both*
incoming operand Register Read Ports were free, choosing *one signal
pair* (Rd_Req and Go_Read) to synchronise that.
with the strong possibility of not *having* more than two read ports
per stratification of the Register File (HI-ODD32, LO-ODD32,
HI-EVEN32, LO-EVEN32) the original scheme is not going to work.
therefore where previously there was only one RD_REQ-GO_RD pair,
*multiple* (individual) RD_REQ-GO_RD pairs are needed.
this requires some additional logic. where previously, the logic was
just simply: ISSUE, GO_RD, GO_WR, where only one of those can be
active at any one time, it now has to be:
* ISSUE
* send out multiple RD-REQs
* wait for *ALL* GO_RD responses to come in
* ONLY THEN send out WR-REQs
* wait for *ALL* GO_WR responses to come in
* reset back to the start.
complicated.
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: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-08 13:26 Luke Kenneth Casson Leighton
2020-04-09 0:47 ` whygee
2020-04-09 1:21 ` Luke Kenneth Casson Leighton
2020-04-10 15:01 ` Luke Kenneth Casson Leighton
2020-04-11 11:20 ` Luke Kenneth Casson Leighton
2020-04-12 12:32 ` Luke Kenneth Casson Leighton [this message]
2020-04-13 14:16 ` Luke Kenneth Casson Leighton
2020-04-13 17:46 ` whygee
2020-04-13 18:27 ` Luke Kenneth Casson Leighton
2020-04-14 19:12 ` Luke Kenneth Casson Leighton
2020-04-16 12:19 ` Luke Kenneth Casson Leighton
2020-04-16 15:41 ` Luke Kenneth Casson Leighton
2020-04-18 11:06 ` Luke Kenneth Casson Leighton
2020-04-23 17:16 ` Luke Kenneth Casson Leighton
2020-04-24 20:11 ` 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=CAPweEDyd5+RY6khpoOVCHPBR+8s5q4oOkQVpZzpvubQeSb9W2w@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