[Libre-soc-dev] Instruction Fetch was: daily kan-ban update 08dec2021
luke.leighton at gmail.com
Wed Dec 8 18:14:04 GMT 2021
On December 8, 2021 5:26:07 PM UTC, Tobias Platen <libre-soc at platen-software.de> wrote:
>today: having a look at FetchFSM and LoadStore1
FetchFSM helps clarify how pipeline stages would be done.
today i added instr_failed support into LoadStore1's FSM, which has the side-effect of locking out the MMU from being used at the same time by LD/STs.
next is adding OP_FETCH_FAILED to the MMU Function Unit, which cannot entirely be tested until OP_FETCH_FAILED (like OP_TRAP) support is added to PowerDecoder2, noting when instr_failed is HI
in theeeoory OP_TRAP could perform double-duty here, by noting the instr_failed flag and an exception *not* being requested, but OP_TRAP would in those circumstances have to have the FU set to FunctionUnit.MMU instead of FunctionUnit.TRAP and then when debugging you have to keep an eye out for that.
also, minor complication: again this cannot be tested until, just like with LDSTExceptions, the condition flag that the fetch failed from I-Cache is hooked into TestIssuer, TestIssuer notes it, blats it into PowerDecoder2 and waits for the MMU to run the resultant OP_FETCH_FAILED "instruction".
More information about the Libre-soc-dev