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] Minerva L1 Cache
Date: Mon, 15 Jun 2020 21:10:53 +0100
Message-ID: <CAPweEDwVL4Ac+soRavWw5u8a21-+Tj055bBBoruW4-0oCP7v2Q@mail.gmail.com> (raw)
In-Reply-To: <077FCA11-14A9-4607-9833-BF7D50A93747@gatech.edu>

On Mon, Jun 15, 2020 at 8:54 PM Yehowshua <yimmanuel3@gatech.edu> wrote:
>
> >
> > with the current resources the scoreboard is not an immediate
> > incremental priority: getting a functional core that executes
> > instructions is a top priority... *and then* the scoreboard can be
> > incrementally added to it if there is time to do so.
>
> OK. So right now, it sounds like instructions execute in order with
> scoreboard?

no scoreboard at all.  no dependency checking at all.


> Are we simply stalling with instructional dependencies?

correct.  it's why it's nicknamed the brain-dead core

https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/simple/core.py;hb=HEAD
https://git.libre-soc.org/?p=soc.git;a=blob;f=src/soc/simple/test/test_core.py;hb=HEAD

at the moment it has three major top-level components:
* Function Unit block
* Register Files
* TSTL0CacheBuffer which contains a single memory port to a single
nmigen Memory with 64 8-words.

the unit test feeds instructions directly into one (and only one) of
the pipelines, and waits for the busy flag to go LOW.

> I’m assuming that right now there is no multi-issue or anything of that
> nature at the moment?

correct.  incremental development.  each step - each new piece of
functionality - confirmed by a unit test.

* when the core's executing instructions, we can start writing more
comprehensive unit tests.
* when the scoreboard is added, we re-run those unit tests.  if they
work, chances are scoreboard is functional.
* when that's added, we add multi-issue.  exactly the same same thing
again: run the unit tests.

i am absolutely shocked to find that there is not a single other
"open" processor that takes this approach.  they all - all of them -
rely heavily on "high level" integration tests.  test suites written
by other people.  or just a series of binaries which test the *whole*
system.

one error and the only way to find it is to compile up one massive
core.  if that takes several minutes to do (minerva takes a *minute*
to compile to verilog), tough luck.

we can run the *local* unit tests for the *local* module that is
believed to be the problem and rapidly track the problem down.


btw my brother dan pointed out that this type of approach - which is
not carried out *AT ALL* by *ANY* commercial team (especially Intel
right now) let alone an "open source" one, is a critically important
"Unique Selling Point" to investors.

by having a combination of low-level unit tests (and formal
correctness proofs) that test components individually prior to use in
a higher level that then *ALSO* has a unit test, this type of approach
is *EXACTLY* the kind of thing that will give investors a high degree
of confidence that we will be a safe bet.

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: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-15  2:41 Yehowshua
2020-06-15  3:02 ` Yehowshua
2020-06-15  4:32   ` Luke Kenneth Casson Leighton
2020-06-15 16:46     ` Yehowshua
2020-06-15 19:32       ` Luke Kenneth Casson Leighton
2020-06-15 19:54         ` Yehowshua
2020-06-15 20:10           ` Luke Kenneth Casson Leighton [this message]
2020-06-15 20:23             ` Yehowshua
2020-06-15 20:24               ` Yehowshua
2020-06-15 20:30               ` Yehowshua
2020-06-15 20:53                 ` Luke Kenneth Casson Leighton
2020-06-15 21:08                   ` Yehowshua
2020-06-15 21:54                     ` Luke Kenneth Casson Leighton
2020-06-16  1:39                       ` Cole Poirier
2020-06-16  1:53                         ` Luke Kenneth Casson Leighton
2020-06-16  1:58                           ` Cole Poirier
2020-06-15 22:19               ` Yehowshua
2020-06-16  0:03                 ` Luke Kenneth Casson Leighton
2020-06-15 16:57     ` Yehowshua
2020-06-15  3:09 ` Yehowshua
2020-06-15  4:30   ` Luke Kenneth Casson Leighton
2020-06-15  3:24 ` Yehowshua
2020-06-15  4:04 ` Luke Kenneth Casson Leighton
2020-06-16  0:20   ` [libre-riscv-dev] L1 cache and GPU workloads Jacob Lifshay

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=CAPweEDwVL4Ac+soRavWw5u8a21-+Tj055bBBoruW4-0oCP7v2Q@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