[libre-riscv-dev] daily kan-ban update 04aug2020
Luke Kenneth Casson Leighton
lkcl at lkcl.net
Wed Aug 5 20:02:46 BST 2020
On Wed, Aug 5, 2020 at 7:55 PM Tobias Platen
<libre-soc at platen-software.de> wrote:
>
> On Wed, 5 Aug 2020 19:39:20 +0100
> Luke Kenneth Casson Leighton <lkcl at lkcl.net> wrote:
>
> > this means that instead of having a 16 bit mask to cover 128 bits of
> > data, a whopping *128* bit mask is needed and that's precisely what
> > we do not want.
> I think now understand my mistake in thinking and how to solve the problem.
cool.
basically, the mask is wishbone "sel", set to a granularity of 8 bits
(one byte) per bit of "sel".
if you read the wishbone spec, concentrating on when "sel" is not just
a single bit, you'll see clearly what is needed.
we are propagating that byte-per-bit mask RIGHT THE WAY THROUGH THE
ENTIRE DESIGN.
it starts at LD/ST - right back when a byte, half-word, word or dword
LD/ST is requested - and goes - will go - through the ENTIRE design
through PortInterface.
through LDSTSplitter.
through DataMerger.
through the L1 cache which will need to respect byte-level masks
through the L2 cache which will need to respect byte-level masks.
through the wishbone buses which will need to respect byte-level masks
through to the DDR / SDR bus which will *ALSO* need to respect byte-level masks.
eeeeverything and i *mean* everyting.
SDR (DDR1, SDRAM) does in fact accept byte-level masks.
if at any time we encounter a memory system which does *NOT* respect
byte-level masks, then we have a problem and will have to rethink.
l.
More information about the libre-riscv-dev
mailing list