38#ifndef __MEM_RUBY_STRUCTURES_RUBY_PREFETCHER_WRAPPER_HH__
39#define __MEM_RUBY_STRUCTURES_RUBY_PREFETCHER_WRAPPER_HH__
41#include <unordered_map>
Interface for things with names.
ProbePointArg generates a point for the class of Arg.
virtual bool inCache(const Addr &addr, const bool &is_secure)
Functions needed by CacheAccessor.
virtual bool inMissQueue(const Addr &addr, const bool &is_secure)
virtual bool hasBeenPrefetched(const Addr &addr, const bool &is_secure)
This is a proxy for prefetcher class in classic memory.
bool coalesce() const override
Determine if cache is coalescing writes.
void regProbePoints()
Registers probes.
bool hasBeenPrefetched(Addr addr, bool is_secure) const override
Determine if address has been prefetched.
void issuePrefetch()
Issue prefetch to the contoller prefetch queue.
void notifyPfEvict(Addr blkAddr, bool hwPrefetched, RequestorID requestorID)
prefetch::Base * prefetcher
Prefetcher from classic memory.
ProbePointArg< CacheAccessProbeArg > * ppMiss
To probe when a cache miss occurs.
EventFunctionWrapper pfEvent
Prefetch event.
void notifyPfMiss(const RequestPtr &req, bool is_read, const DataBlock &data_blk)
ProbePointArg< CacheAccessProbeArg > * ppFill
To probe when a cache fill occurs.
void scheduleNextPrefetch()
Schedule the next ready prefetch.
void notifyPfHit(const RequestPtr &req, bool is_read, const DataBlock &data_blk)
Notify PF probes hit/miss/fill.
void completePrefetch(Addr addr)
Notifies a completed prefetch request.
AbstractController * cacheCntrl
Ruby cache controller.
bool inCache(Addr addr, bool is_secure) const override
Accessor functions.
void deschedulePrefetch()
Deschedled the ready prefetch event.
bool inMissQueue(Addr addr, bool is_secure) const override
Determine if address is in cache miss queue.
void notifyPfFill(const RequestPtr &req, const DataBlock &data_blk, bool from_pf)
bool hasBeenPrefetched(Addr addr, bool is_secure, RequestorID requestor) const override
Determine if address has been prefetched by the requestor.
ProbePointArg< CacheAccessProbeArg > * ppHit
To probe when a cache hit occurs.
MessageBuffer * pfQueue
Prefetch queue to the cache controller.
ProbePointArg< CacheDataUpdateProbeArg > * ppDataUpdate
To probe when the contents of a block are updated.
std::unordered_map< Addr, PacketPtr > issuedPfPkts
List of issued prefetch request packets.
RubyPrefetcherProxy(AbstractController *parent, prefetch::Base *prefetcher, MessageBuffer *pf_queue)
Miss and writeback queue declarations.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::shared_ptr< Request > RequestPtr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Provides generic cache lookup functions.