[Libre-soc-bugs] [Bug 397] design and discuss user-tag flags in wishbone to provide phase 1 / 2 "speculative" memory accesses

bugzilla-daemon at libre-soc.org bugzilla-daemon at libre-soc.org
Sun Jun 21 22:05:58 BST 2020


https://bugs.libre-soc.org/show_bug.cgi?id=397

--- Comment #3 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Yehowshua from comment #1)
> This makes sense.
> I went through the LDST docs on the wiki yesterday too and learned as much.

i put the bit about contracts here:
https://libre-soc.org/3d_gpu/architecture/6600scoreboard/discussion/

> Wishbone would have to be the very bottom of the stack after we have some
> LDST operation that we know **must be executed.

*deep breath* - i thought so, too.  unfortunately, the discrepancy between
the two types of contracts "here's my offer, take it or leave it" and
"here's an offer, please take all the time you need to think about it"
are so fundamentally and diametrically incompatible that we can't even
use wishbone - as-is at the lowest level!

or.. we can... as long as that usage is absolutely guaranteed one hundred
percent NEVER to fail or raise any kind of error.

in other words, you may *only* use "take-it-or-leave-it" contracts (buses
such as Wishbone) for the **TAKE-IT** part, because the actual Contract
of Sale clearly states that things have moved *into* the "TAKE IT" phase.


> Clearly, wishbone is inappropriate for L0.

well... an *augmented* version of wishbone is appropriate (one that
obeys the standard "Contract of Sale" outlined above)

or, we can use standard-Wishbone for "take it" (i.e. if is guaranteed
that there will be no errors.

we will still actually need to keep that error capability, however if
such an error does occur (at the low levels) its status is raised to
"catastrophic contract violation" and we halt the processor or fire
a "severe NMI hard-fault" trap condition.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the libre-soc-bugs mailing list