L2Cache


Q&A

  • Who calls it and what is the input?

  • Where does it go?

    • hand over the request to tagControllers
    • Calls tagController to get response
  • How is it related tagged memory?

    • The master interface memory is re-used by TagController

file: cherilibs/trunk/L2Cache.bsv

Interface L2CacheIfc

Master is memory; Slave is cache;

mkConnection(l2CacheMemory, tagController.cache); means Master is l2CacheMemory and slave is tagController.cache, that is tag controller is being called by l2Cache; and l2Cache send request and get response from tagController.

interface L2CacheIfc;
  interface Slave#(CheriMemRequest, CheriMemResponse) cache;
  interface Master#(CheriMemRequest, CheriMemResponse) memory;
  `ifdef MULTI
    `ifndef TIMEBASED
      method ActionValue#(Maybe#(InvalidateCache)) getInvalidate;
      method Action putInvalidateDone(Bool didWriteback);
    `endif
  `endif
  `ifdef STATCOUNTERS
  interface Get#(ModuleEvents) cacheEvents;
  `endif
endinterface: L2CacheIfc

Reference 1


  1. reference ↩
Created May 6, 2020 // Last Updated May 18, 2021

If you could revise
the fundmental principles of
computer system design
to improve security...

... what would you change?