Hi all, I didn't get a response on this so just following up - any feedback or insight would be appreciated!
Thanks, Farhad ________________________________ From: Farhad Yusufali Sent: September 8, 2020 6:13 PM To: [email protected] <[email protected]> Subject: Approximating the value of L1 misses Hi all, I'm trying to reduce the latency of L1 misses - to do so, upon an L1 miss, instead of fetching from the L2, I would like to use a predictor to predict the value of the load and return this to the core (the details of the predictor are irrelevant). This way the processor is not stalled waiting for the block to be retrieved from the L2/memory. After every N misses to an address, in addition to generating a prediction, the L1 would also retrieve the data from the L2 and use this to train the predictor (the retrieved block would also be inserted into the L1). This is effectively an implementation of Load Value Approximation by San Miguel et al. I'm using the Ruby cache system because I need access to Garnet. To implement this, I'm currently modifying the Ruby implementation of the L1 cache in gem5/src/mem/ruby/protocol/MESI_Two_Level-L1cache.sm. However, despite my technique not having to do anything with cache coherence, I'm having to essentially modify the details of the MESI protocol to get my stuff to work. For example, say I decide to need to fetch data for training after predicting a load that is not currently in the L1. If the block is in the I state, I need to take the action of sending a request to the L2 to retrieve the data. However, if I'm in the I_S state, I don't need to send a request to the L2 since the data is already on its way. This is just one of many ways I need to modify the coherence protocol. Is there an easier way to implement this without having to deal with all the intricacies and headaches of modifying/verifying coherence protocols? (I cannot switch to the classical cache system) Thanks, Farhad
_______________________________________________ gem5-users mailing list -- [email protected] To unsubscribe send an email to [email protected] %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
