From 1776ba33171541ab7c7bf41f6eaed45adbb55895 Mon Sep 17 00:00:00 2001 From: Karlis Susters Date: Wed, 10 May 2023 23:55:05 +0100 Subject: [PATCH] Prefetcher code cleanup --- src_Core/RISCY_OOO/coherence/src/Prefetcher.bsv | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src_Core/RISCY_OOO/coherence/src/Prefetcher.bsv b/src_Core/RISCY_OOO/coherence/src/Prefetcher.bsv index 587f385..6327106 100644 --- a/src_Core/RISCY_OOO/coherence/src/Prefetcher.bsv +++ b/src_Core/RISCY_OOO/coherence/src/Prefetcher.bsv @@ -1213,17 +1213,16 @@ typedef struct { module mkBRAMStridePCPrefetcher(PCPrefetcher) provisos( NumAlias#(strideTableSize, 512), - NumAlias#(cLinesAheadToPrefetch, 2), // TODO fetch more if have repeatedly hit an entry, and if stride big + NumAlias#(cLinesAheadToPrefetch, 2), Alias#(strideTableIndexT, Bit#(TLog#(strideTableSize))) ); - //Vector#(strideTableSize, Reg#(StrideEntry)) strideTable <- replicateM(mkReg(unpack(0))); RWBramCore#(strideTableIndexT, StrideEntry) strideTable <- mkRWBramCoreForwarded; FIFOF#(Tuple3#(Addr, Bit#(16), HitOrMiss)) memAccesses <- mkSizedBypassFIFOF(8); Reg#(Tuple3#(Addr, Bit#(16), HitOrMiss)) rdRespEntry <- mkReg(?); Fifo#(8, Addr) addrToPrefetch <- mkOverflowPipelineFifo; FIFO#(Tuple3#(StrideEntry, Addr, Bit#(16))) strideEntryForPrefetch <- mkBypassFIFO(); - Reg#(Maybe#(Bit#(4))) cLinesPrefetchedLatest <- mkReg(?); + Reg#(Maybe#(Bit#(4))) cLinesPrefetchedLatest <- mkReg(Invalid); PulseWire holdReadReq <- mkPulseWire; rule sendReadReq if (!holdReadReq); @@ -1950,9 +1949,9 @@ module mkLLDPrefetcher(Prefetcher); `ifdef DATA_PREFETCHER_BLOCK let m <- mkBlockPrefetcher; `elsif DATA_PREFETCHER_STRIDE - doAssert(False, "Illegal data prefetcher type for LL cache!") - `elsif DATA_PREFETCHER_STRIDE - doAssert(False, "Illegal data prefetcher type for LL cache!") + doAssert(False, "Illegal data prefetcher type for LL cache!"); + `elsif DATA_PREFETCHER_STRIDE_ADAPTIVE + doAssert(False, "Illegal data prefetcher type for LL cache!"); `elsif DATA_PREFETCHER_MARKOV let m <- mkBRAMMarkovPrefetcher; `elsif DATA_PREFETCHER_MARKOV_ON_HIT