diff options
author | Ali Saidi <Ali.Saidi@ARM.com> | 2012-02-12 16:07:38 -0600 |
---|---|---|
committer | Ali Saidi <Ali.Saidi@ARM.com> | 2012-02-12 16:07:38 -0600 |
commit | 8aaa39e93dfe000ad423b585e78a4c2ee7418363 (patch) | |
tree | 0f7b6d1efb630745bd6bf6af05a722a08c8640cb /src/mem/cache/prefetch/ghb.cc | |
parent | 7e104a1af235823e3d641a972ea920937f7ec67d (diff) | |
download | gem5-8aaa39e93dfe000ad423b585e78a4c2ee7418363.tar.xz |
mem: Add a master ID to each request object.
This change adds a master id to each request object which can be
used identify every device in the system that is capable of issuing a request.
This is part of the way to removing the numCpus+1 stats in the cache and
replacing them with the master ids. This is one of a series of changes
that make way for the stats output to be changed to python.
Diffstat (limited to 'src/mem/cache/prefetch/ghb.cc')
-rw-r--r-- | src/mem/cache/prefetch/ghb.cc | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/mem/cache/prefetch/ghb.cc b/src/mem/cache/prefetch/ghb.cc index b9fc8e675..8e42a4e2b 100644 --- a/src/mem/cache/prefetch/ghb.cc +++ b/src/mem/cache/prefetch/ghb.cc @@ -42,20 +42,15 @@ void GHBPrefetcher::calculatePrefetch(PacketPtr &pkt, std::list<Addr> &addresses, std::list<Tick> &delays) { - if (useContextId && !pkt->req->hasContextId()) { - DPRINTF(HWPrefetch, "ignoring request with no context ID"); - return; - } - Addr blk_addr = pkt->getAddr() & ~(Addr)(blkSize-1); - int ctx_id = useContextId ? pkt->req->contextId() : 0; - assert(ctx_id < Max_Contexts); + int master_id = useMasterId ? pkt->req->masterId() : 0; + assert(master_id < Max_Masters); - int new_stride = blk_addr - lastMissAddr[ctx_id]; - int old_stride = lastMissAddr[ctx_id] - secondLastMissAddr[ctx_id]; + int new_stride = blk_addr - lastMissAddr[master_id]; + int old_stride = lastMissAddr[master_id] - secondLastMissAddr[master_id]; - secondLastMissAddr[ctx_id] = lastMissAddr[ctx_id]; - lastMissAddr[ctx_id] = blk_addr; + secondLastMissAddr[master_id] = lastMissAddr[master_id]; + lastMissAddr[master_id] = blk_addr; if (new_stride == old_stride) { for (int d = 1; d <= degree; d++) { |