From: bugzilla-daemon@libre-riscv.org
To: libre-riscv-dev@lists.libre-riscv.org
Subject: [libre-riscv-dev] [Bug 257] Implement demo Load/Store queueing algorithm
Date: Sat, 21 Mar 2020 04:12:53 +0000
Message-ID: <bug-257-13-UPH9fUnhzg@http.bugs.libre-riscv.org/> (raw)
In-Reply-To: <bug-257-13@http.bugs.libre-riscv.org/>
http://bugs.libre-riscv.org/show_bug.cgi?id=257
--- Comment #11 from Luke Kenneth Casson Leighton <lkcl@lkcl.net> ---
(In reply to Jacob Lifshay from comment #10)
> I've been thinking that we would have a cache with a cache line size of 64
> bytes (or 32 if we really have to).
eek. ok. right. 64 / 4 = 16 that gives 4 stripes to 1R1W Memory inside the
cache. that way we do not need multi ported SRAM in the cache.
if we have byte enable lines the 16 bit mask can be passed to each byte.
> we want the cache line size to be the same for all our caches since it
> greatly simplifies cache to cache transfers.
ok
> So, for a 32kB L1 cache, it would have 512 lines.
ye gods.
> If we had it be 8-way set
> associative, then there would be 64 sets and each set would have 8 lines.
4 way makes more sense (a little easier) as the byte enable mask is 16 bits.
however 8 way does as well because each 16 byte enable mask is split in two.
> Having a L1 cache much smaller than 16kB would be quite detrimental due to
> the excessive cache latency and lack of bandwidth to the L2.
yes.
> I'm going to be unavailable till at least Sat night, then will work on
> publishing v0.2 of algebraics (updating transitive dependencies for
> simple-soft-float due to PyO3 v0.9 being released) then work on this.
ok.
the earlier idea of a tiny pre L1 cache may on reflection be unnecessary.
i drew out a diagram a couple days ago, it basically involved:
* a PriorityPicker to find the first entry in the AddressMatrix that is "live"
* that then says which entry is to be used to broadcast the high address bits
(14 to 48) to all other live LD/STs
* bear in mind all "live" addresses have had to calculate a comparison on bits
4 thru 13 of the address, we also include *these* (ANDed) in the comparison
* anything that succeeds on matching bits 4 to 13 from the AddressMatcher
matrix *and* gives a hit on the Priority Picked bits 14 to 48, its 16bit "mask"
is permitted to go through an ORer to the L1 cache byte-enable on the Memory.
a refinement of that is to allow up to *four* of those to be picked, one to be
routed to each "way".
that is one of the things that i wrote the MultiPriorityPicker for.
--
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: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-13 18:40 [libre-riscv-dev] [Bug 257] New: " bugzilla-daemon
2020-03-18 5:23 ` [libre-riscv-dev] [Bug 257] " bugzilla-daemon
2020-03-18 6:59 ` bugzilla-daemon
2020-03-20 11:03 ` bugzilla-daemon
2020-03-20 13:06 ` bugzilla-daemon
2020-03-20 18:34 ` bugzilla-daemon
2020-03-20 19:07 ` bugzilla-daemon
2020-03-20 19:53 ` bugzilla-daemon
2020-03-20 20:21 ` bugzilla-daemon
2020-03-21 0:48 ` bugzilla-daemon
2020-03-21 1:56 ` bugzilla-daemon
2020-03-21 4:12 ` bugzilla-daemon [this message]
2020-03-21 15:28 ` bugzilla-daemon
2020-03-21 15:36 ` bugzilla-daemon
2020-03-22 11:37 ` bugzilla-daemon
2020-03-24 11:16 ` bugzilla-daemon
2020-03-24 11:54 ` bugzilla-daemon
2020-03-25 13:07 ` bugzilla-daemon
2020-03-26 17:06 ` bugzilla-daemon
2020-03-26 20:58 ` bugzilla-daemon
2020-03-26 21:23 ` bugzilla-daemon
[not found] <bug-257-13@https.bugs.libre-soc.org/>
2020-04-22 2:58 ` bugzilla-daemon
2020-04-22 8:30 ` bugzilla-daemon
2020-04-22 8:39 ` bugzilla-daemon
2020-04-22 8:54 ` bugzilla-daemon
2020-04-22 9:48 ` bugzilla-daemon
2020-04-22 13:06 ` bugzilla-daemon
2020-04-22 13:38 ` bugzilla-daemon
2020-04-29 11:16 ` bugzilla-daemon
2020-04-29 21:39 ` bugzilla-daemon
2020-05-06 0:33 ` bugzilla-daemon
2020-05-06 0:36 ` 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-257-13-UPH9fUnhzg@http.bugs.libre-riscv.org/ \
--to=bugzilla-daemon@libre-riscv.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