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/ruby | |
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/ruby')
-rw-r--r-- | src/mem/ruby/recorder/CacheRecorder.cc | 9 | ||||
-rw-r--r-- | src/mem/ruby/system/RubyPort.cc | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/mem/ruby/recorder/CacheRecorder.cc b/src/mem/ruby/recorder/CacheRecorder.cc index 8b724859e..a886f3238 100644 --- a/src/mem/ruby/recorder/CacheRecorder.cc +++ b/src/mem/ruby/recorder/CacheRecorder.cc @@ -74,7 +74,8 @@ CacheRecorder::enqueueNextFlushRequest() TraceRecord* rec = m_records[m_records_flushed]; m_records_flushed++; Request* req = new Request(rec->m_data_address, - RubySystem::getBlockSizeBytes(),0); + RubySystem::getBlockSizeBytes(),0, + Request::funcMasterId); MemCmd::Command requestType = MemCmd::FlushReq; Packet *pkt = new Packet(req, requestType, -1); @@ -100,16 +101,16 @@ CacheRecorder::enqueueNextFetchRequest() if (traceRecord->m_type == RubyRequestType_LD) { requestType = MemCmd::ReadReq; req->setPhys(traceRecord->m_data_address, - RubySystem::getBlockSizeBytes(),0); + RubySystem::getBlockSizeBytes(),0, Request::funcMasterId); } else if (traceRecord->m_type == RubyRequestType_IFETCH) { requestType = MemCmd::ReadReq; req->setPhys(traceRecord->m_data_address, RubySystem::getBlockSizeBytes(), - Request::INST_FETCH); + Request::INST_FETCH, Request::funcMasterId); } else { requestType = MemCmd::WriteReq; req->setPhys(traceRecord->m_data_address, - RubySystem::getBlockSizeBytes(),0); + RubySystem::getBlockSizeBytes(),0, Request::funcMasterId); } Packet *pkt = new Packet(req, requestType, -1); diff --git a/src/mem/ruby/system/RubyPort.cc b/src/mem/ruby/system/RubyPort.cc index af414f17a..ab3e6e3b7 100644 --- a/src/mem/ruby/system/RubyPort.cc +++ b/src/mem/ruby/system/RubyPort.cc @@ -687,7 +687,7 @@ void RubyPort::ruby_eviction_callback(const Address& address) { DPRINTF(RubyPort, "Sending invalidations.\n"); - Request req(address.getAddress(), 0, 0); + Request req(address.getAddress(), 0, 0, Request::funcMasterId); for (CpuPortIter it = cpu_ports.begin(); it != cpu_ports.end(); it++) { Packet *pkt = new Packet(&req, MemCmd::InvalidationReq, -1); (*it)->sendTiming(pkt); |