From 917d8dacc484c890326cfaffaa9a4ee3210bfab6 Mon Sep 17 00:00:00 2001 From: Lukas Steiner Date: Wed, 6 Apr 2022 11:31:42 +0200 Subject: [PATCH] Pointer to reference. --- .../src/common/configuration/TraceSetup.cpp | 4 +-- .../src/common/configuration/TraceSetup.h | 2 +- DRAMSys/simulator/MemoryManager.cpp | 10 +++--- DRAMSys/simulator/MemoryManager.h | 6 ++-- DRAMSys/simulator/StlPlayer.cpp | 26 +++++++------- DRAMSys/simulator/StlPlayer.h | 6 ++-- DRAMSys/simulator/TraceSetup.cpp | 12 +++---- DRAMSys/simulator/TraceSetup.h | 4 +-- DRAMSys/simulator/TrafficGenerator.cpp | 36 +++++++++---------- DRAMSys/simulator/TrafficGenerator.h | 6 ++-- DRAMSys/simulator/TrafficInitiator.cpp | 6 ++-- DRAMSys/simulator/TrafficInitiator.h | 4 +-- 12 files changed, 61 insertions(+), 61 deletions(-) diff --git a/DRAMSys/library/src/common/configuration/TraceSetup.cpp b/DRAMSys/library/src/common/configuration/TraceSetup.cpp index 1a96029f..454977c2 100644 --- a/DRAMSys/library/src/common/configuration/TraceSetup.cpp +++ b/DRAMSys/library/src/common/configuration/TraceSetup.cpp @@ -144,7 +144,7 @@ void to_json(json &j, const TraceSetup &c) json transition_j; transition_j["from"] = transition.first; transition_j["to"] = transition.second.to; - transition_j["propability"] = transition.second.propability; + transition_j["probability"] = transition.second.probability; remove_null_values(transition_j); transitions_j.insert(transitions_j.end(), transition_j); } @@ -247,7 +247,7 @@ void from_json(const json &j, TraceSetup &c) TraceGeneratorStateTransition transition; unsigned int from = transition_j.at("from"); transition.to = transition_j.at("to"); - transition.propability = transition_j.at("propability"); + transition.probability = transition_j.at("probability"); generator.transitions.emplace(from, transition); } } diff --git a/DRAMSys/library/src/common/configuration/TraceSetup.h b/DRAMSys/library/src/common/configuration/TraceSetup.h index 17c68370..c3c04ef6 100644 --- a/DRAMSys/library/src/common/configuration/TraceSetup.h +++ b/DRAMSys/library/src/common/configuration/TraceSetup.h @@ -110,7 +110,7 @@ struct TraceGeneratorIdleState : public TraceGeneratorState struct TraceGeneratorStateTransition { unsigned int to; - float propability; + float probability; }; struct TraceGenerator : public TrafficInitiator diff --git a/DRAMSys/simulator/MemoryManager.cpp b/DRAMSys/simulator/MemoryManager.cpp index d9f029ee..5866caf6 100644 --- a/DRAMSys/simulator/MemoryManager.cpp +++ b/DRAMSys/simulator/MemoryManager.cpp @@ -70,7 +70,7 @@ MemoryManager::~MemoryManager() //PRINTDEBUGMESSAGE("MemoryManager","Number of freed payloads: " + to_string(numberOfFrees)); } -tlm_generic_payload *MemoryManager::allocate(unsigned dataLength) +tlm_generic_payload& MemoryManager::allocate(unsigned dataLength) { if (freePayloads[dataLength].empty()) { @@ -85,17 +85,17 @@ tlm_generic_payload *MemoryManager::allocate(unsigned dataLength) payload->set_data_ptr(data); } - return payload; + return *payload; } else { - tlm_generic_payload *result = freePayloads[dataLength].top(); + tlm_generic_payload* result = freePayloads[dataLength].top(); freePayloads[dataLength].pop(); - return result; + return *result; } } -void MemoryManager::free(tlm_generic_payload *payload) +void MemoryManager::free(tlm_generic_payload* payload) { unsigned dataLength = payload->get_data_length(); freePayloads[dataLength].push(payload); diff --git a/DRAMSys/simulator/MemoryManager.h b/DRAMSys/simulator/MemoryManager.h index 6a5dd1ad..8eb334c7 100644 --- a/DRAMSys/simulator/MemoryManager.h +++ b/DRAMSys/simulator/MemoryManager.h @@ -47,13 +47,13 @@ class MemoryManager : public tlm::tlm_mm_interface public: MemoryManager(); ~MemoryManager() override; - tlm::tlm_generic_payload *allocate(unsigned dataLength); - void free(tlm::tlm_generic_payload *payload) override; + tlm::tlm_generic_payload& allocate(unsigned dataLength); + void free(tlm::tlm_generic_payload* payload) override; private: uint64_t numberOfAllocations; uint64_t numberOfFrees; - std::unordered_map> freePayloads; + std::unordered_map> freePayloads; bool storageEnabled = false; }; diff --git a/DRAMSys/simulator/StlPlayer.cpp b/DRAMSys/simulator/StlPlayer.cpp index 281edca0..f947f46c 100644 --- a/DRAMSys/simulator/StlPlayer.cpp +++ b/DRAMSys/simulator/StlPlayer.cpp @@ -49,7 +49,7 @@ StlPlayer::StlPlayer(const sc_module_name &name, unsigned int maxPendingReadRequests, unsigned int maxPendingWriteRequests, bool addLengthConverter, - TraceSetup *setup, + TraceSetup& setup, bool relative) : TrafficInitiator(name, setup, maxPendingReadRequests, maxPendingWriteRequests, Configuration::getInstance().memSpec->defaultBytesPerBurst, addLengthConverter), @@ -102,17 +102,17 @@ void StlPlayer::sendNextPayload() } // Allocate a generic payload for this request. - tlm_generic_payload *payload = setup->allocatePayload(lineIterator->dataLength); - payload->acquire(); + tlm_generic_payload& payload = setup.allocatePayload(lineIterator->dataLength); + payload.acquire(); // Fill up the payload. - payload->set_address(lineIterator->address); - payload->set_response_status(TLM_INCOMPLETE_RESPONSE); - payload->set_dmi_allowed(false); - payload->set_byte_enable_length(0); - payload->set_data_length(lineIterator->dataLength); - payload->set_command(lineIterator->command); - std::copy(lineIterator->data.begin(), lineIterator->data.end(), payload->get_data_ptr()); + payload.set_address(lineIterator->address); + payload.set_response_status(TLM_INCOMPLETE_RESPONSE); + payload.set_dmi_allowed(false); + payload.set_byte_enable_length(0); + payload.set_data_length(lineIterator->dataLength); + payload.set_command(lineIterator->command); + std::copy(lineIterator->data.begin(), lineIterator->data.end(), payload.get_data_ptr()); sc_time sendingTime; sc_time sendingOffset; @@ -127,13 +127,13 @@ void StlPlayer::sendNextPayload() else sendingTime = sc_time_stamp() + sendingOffset + lineIterator->sendingTime; - sendToTarget(*payload, BEGIN_REQ, sendingTime - sc_time_stamp()); + sendToTarget(payload, BEGIN_REQ, sendingTime - sc_time_stamp()); transactionsSent++; - if (payload->get_command() == tlm::TLM_READ_COMMAND) + if (payload.get_command() == tlm::TLM_READ_COMMAND) pendingReadRequests++; - else if (payload->get_command() == tlm::TLM_WRITE_COMMAND) + else if (payload.get_command() == tlm::TLM_WRITE_COMMAND) pendingWriteRequests++; PRINTDEBUGMESSAGE(name(), "Performing request #" + std::to_string(transactionsSent)); diff --git a/DRAMSys/simulator/StlPlayer.h b/DRAMSys/simulator/StlPlayer.h index 049c2034..52059ca9 100644 --- a/DRAMSys/simulator/StlPlayer.h +++ b/DRAMSys/simulator/StlPlayer.h @@ -70,7 +70,7 @@ public: unsigned int maxPendingReadRequests, unsigned int maxPendingWriteRequests, bool addLengthConverter, - TraceSetup *setup, + TraceSetup& setup, bool relative); ~StlPlayer() override; @@ -89,8 +89,8 @@ private: static constexpr unsigned lineBufferSize = 10000; - std::vector *currentBuffer; - std::vector *parseBuffer; + std::vector* currentBuffer; + std::vector* parseBuffer; std::array, 2> lineContents; std::vector::const_iterator lineIterator; diff --git a/DRAMSys/simulator/TraceSetup.cpp b/DRAMSys/simulator/TraceSetup.cpp index fd6d8e54..cb111078 100644 --- a/DRAMSys/simulator/TraceSetup.cpp +++ b/DRAMSys/simulator/TraceSetup.cpp @@ -106,10 +106,10 @@ TraceSetup::TraceSetup(const DRAMSysConfiguration::TraceSetup &traceSetup, const StlPlayer *player; if (ext == "stl") player = new StlPlayer(moduleName.c_str(), stlFile, playerClk, maxPendingReadRequests, - maxPendingWriteRequests, addLengthConverter, this, false); + maxPendingWriteRequests, addLengthConverter, *this, false); else if (ext == "rstl") player = new StlPlayer(moduleName.c_str(), stlFile, playerClk, maxPendingReadRequests, - maxPendingWriteRequests, addLengthConverter, this, true); + maxPendingWriteRequests, addLengthConverter, *this, true); else throw std::runtime_error("Unsupported file extension in " + name); @@ -118,7 +118,7 @@ TraceSetup::TraceSetup(const DRAMSysConfiguration::TraceSetup &traceSetup, const } else if constexpr (std::is_same_v) { - TrafficGenerator *trafficGenerator = new TrafficGenerator(name.c_str(), initiator, this); + TrafficGenerator *trafficGenerator = new TrafficGenerator(name.c_str(), initiator, *this); players.push_back(std::unique_ptr(trafficGenerator)); totalTransactions += trafficGenerator->getTotalTransactions(); @@ -129,7 +129,7 @@ TraceSetup::TraceSetup(const DRAMSysConfiguration::TraceSetup &traceSetup, const uint64_t rowIncrement = initiator.rowIncrement; players.push_back( - std::unique_ptr(new TrafficGeneratorHammer(name.c_str(), initiator, this))); + std::unique_ptr(new TrafficGeneratorHammer(name.c_str(), initiator, *this))); totalTransactions += numRequests; } }, @@ -195,12 +195,12 @@ void TraceSetup::transactionFinished() std::cout << std::endl; } -tlm_generic_payload *TraceSetup::allocatePayload(unsigned dataLength) +tlm_generic_payload& TraceSetup::allocatePayload(unsigned dataLength) { return memoryManager.allocate(dataLength); } -tlm_generic_payload *TraceSetup::allocatePayload() +tlm_generic_payload& TraceSetup::allocatePayload() { return allocatePayload(defaultDataLength); } diff --git a/DRAMSys/simulator/TraceSetup.h b/DRAMSys/simulator/TraceSetup.h index 6dd60e91..7f46cd6c 100644 --- a/DRAMSys/simulator/TraceSetup.h +++ b/DRAMSys/simulator/TraceSetup.h @@ -56,8 +56,8 @@ public: void trafficInitiatorTerminates(); void transactionFinished(); - tlm::tlm_generic_payload *allocatePayload(unsigned dataLength); - tlm::tlm_generic_payload *allocatePayload(); + tlm::tlm_generic_payload& allocatePayload(unsigned dataLength); + tlm::tlm_generic_payload& allocatePayload(); private: unsigned int numberOfTrafficInitiators; diff --git a/DRAMSys/simulator/TrafficGenerator.cpp b/DRAMSys/simulator/TrafficGenerator.cpp index ef7dd08f..86ce1859 100644 --- a/DRAMSys/simulator/TrafficGenerator.cpp +++ b/DRAMSys/simulator/TrafficGenerator.cpp @@ -44,7 +44,7 @@ using namespace sc_core; using namespace tlm; -TrafficGeneratorIf::TrafficGeneratorIf(const sc_core::sc_module_name &name, TraceSetup *setup, +TrafficGeneratorIf::TrafficGeneratorIf(const sc_core::sc_module_name& name, TraceSetup& setup, unsigned int maxPendingReadRequests, unsigned int maxPendingWriteRequests, unsigned int dataLength, bool addLengthConverter) : TrafficInitiator(name, setup, maxPendingReadRequests, maxPendingWriteRequests, dataLength, addLengthConverter) @@ -69,14 +69,14 @@ void TrafficGeneratorIf::sendNextPayload() else if (command == tlm::TLM_WRITE_COMMAND) pendingWriteRequests++; - tlm_generic_payload *payload = setup->allocatePayload(); - payload->acquire(); - payload->set_address(address); - payload->set_response_status(tlm::TLM_INCOMPLETE_RESPONSE); - payload->set_dmi_allowed(false); - payload->set_byte_enable_length(0); - payload->set_data_length(defaultDataLength); - payload->set_command(command); + tlm_generic_payload& payload = setup.allocatePayload(); + payload.acquire(); + payload.set_address(address); + payload.set_response_status(tlm::TLM_INCOMPLETE_RESPONSE); + payload.set_dmi_allowed(false); + payload.set_byte_enable_length(0); + payload.set_data_length(defaultDataLength); + payload.set_command(command); sc_time generatorClk = getGeneratorClk(); sc_time sendingOffset; @@ -86,7 +86,7 @@ void TrafficGeneratorIf::sendNextPayload() sendingOffset = (generatorClk * clksPerRequest()) - (sc_time_stamp() % generatorClk) + generatorClk * clksToIdle(); // TODO: do not send two requests in the same cycle - sendToTarget(*payload, tlm::BEGIN_REQ, sendingOffset); + sendToTarget(payload, tlm::BEGIN_REQ, sendingOffset); transactionsSent++; PRINTDEBUGMESSAGE(name(), "Performing request #" + std::to_string(transactionsSent)); @@ -94,7 +94,7 @@ void TrafficGeneratorIf::sendNextPayload() } TrafficGenerator::TrafficGenerator(const sc_module_name &name, const DRAMSysConfiguration::TraceGenerator &conf, - TraceSetup *setup) + TraceSetup& setup) : TrafficGeneratorIf(name, setup, conf.maxPendingReadRequests.value_or(defaultMaxPendingReadRequests), conf.maxPendingWriteRequests.value_or(defaultMaxPendingWriteRequests), conf.dataLength.value_or(Configuration::getInstance().memSpec->defaultBytesPerBurst), @@ -153,19 +153,19 @@ void TrafficGenerator::calculateTransitions() while (true) { auto transitionsIt = conf.transitions.equal_range(state); - float propabilityAccumulated = 0.0f; + float probabilityAccumulated = 0.0f; std::map> transitionsDistribution; for (auto it = transitionsIt.first; it != transitionsIt.second; ++it) { - float lowerLimit = propabilityAccumulated; - propabilityAccumulated += it->second.propability; - float upperLimit = propabilityAccumulated; + float lowerLimit = probabilityAccumulated; + probabilityAccumulated += it->second.probability; + float upperLimit = probabilityAccumulated; transitionsDistribution[it->second.to] = {lowerLimit, upperLimit}; } - if (propabilityAccumulated > 1.001f) - SC_REPORT_WARNING("TrafficGenerator", "Sum of transition propabilities greater than 1."); + if (probabilityAccumulated > 1.001f) + SC_REPORT_WARNING("TrafficGenerator", "Sum of transition probabilities greater than 1."); float random = randomDistribution(randomGenerator); bool transitionFound = false; @@ -376,7 +376,7 @@ uint64_t TrafficGenerator::evaluateMaxAddress(const DRAMSysConfiguration::TraceG } TrafficGeneratorHammer::TrafficGeneratorHammer(const sc_core::sc_module_name &name, - const DRAMSysConfiguration::TraceHammer &conf, TraceSetup *setup) + const DRAMSysConfiguration::TraceHammer &conf, TraceSetup& setup) : TrafficGeneratorIf(name, setup, 1, 1, Configuration::getInstance().memSpec->defaultBytesPerBurst, false), generatorClk(evaluateGeneratorClk(conf)), rowIncrement(conf.rowIncrement), numRequests(conf.numRequests) { diff --git a/DRAMSys/simulator/TrafficGenerator.h b/DRAMSys/simulator/TrafficGenerator.h index ecaee1db..519e8b7b 100644 --- a/DRAMSys/simulator/TrafficGenerator.h +++ b/DRAMSys/simulator/TrafficGenerator.h @@ -49,7 +49,7 @@ class TrafficGeneratorIf : public TrafficInitiator { public: - TrafficGeneratorIf(const sc_core::sc_module_name &name, TraceSetup *setup, + TrafficGeneratorIf(const sc_core::sc_module_name &name, TraceSetup& setup, unsigned int maxPendingReadRequests, unsigned int maxPendingWriteRequests, unsigned int dataLength, bool addLengthConverter); @@ -68,7 +68,7 @@ class TrafficGenerator : public TrafficGeneratorIf { public: TrafficGenerator(const sc_core::sc_module_name &name, const DRAMSysConfiguration::TraceGenerator &conf, - TraceSetup *setup); + TraceSetup& setup); uint64_t getTotalTransactions() const; void waitUntil(const sc_core::sc_event *ev); @@ -131,7 +131,7 @@ class TrafficGeneratorHammer final : public TrafficGeneratorIf { public: TrafficGeneratorHammer(const sc_core::sc_module_name &name, const DRAMSysConfiguration::TraceHammer &conf, - TraceSetup *setup); + TraceSetup& setup); private: void prepareNextPayload() override; diff --git a/DRAMSys/simulator/TrafficInitiator.cpp b/DRAMSys/simulator/TrafficInitiator.cpp index f450a51a..b9299c87 100644 --- a/DRAMSys/simulator/TrafficInitiator.cpp +++ b/DRAMSys/simulator/TrafficInitiator.cpp @@ -43,7 +43,7 @@ using namespace sc_core; using namespace tlm; -TrafficInitiator::TrafficInitiator(const sc_module_name &name, TraceSetup *setup, +TrafficInitiator::TrafficInitiator(const sc_module_name &name, TraceSetup& setup, unsigned int maxPendingReadRequests, unsigned int maxPendingWriteRequests, unsigned int defaultDataLength, bool addLengthConverter) : sc_module(name), @@ -62,7 +62,7 @@ TrafficInitiator::TrafficInitiator(const sc_module_name &name, TraceSetup *setup void TrafficInitiator::terminate() { std::cout << sc_time_stamp() << " " << this->name() << " terminated " << std::endl; - setup->trafficInitiatorTerminates(); + setup.trafficInitiatorTerminates(); } tlm_sync_enum TrafficInitiator::nb_transport_bw(tlm_generic_payload &payload, @@ -87,7 +87,7 @@ void TrafficInitiator::peqCallback(tlm_generic_payload &payload, payload.release(); sendToTarget(payload, END_RESP, SC_ZERO_TIME); if (Configuration::getInstance().simulationProgressBar) - setup->transactionFinished(); + setup.transactionFinished(); transactionsReceived++; diff --git a/DRAMSys/simulator/TrafficInitiator.h b/DRAMSys/simulator/TrafficInitiator.h index 5795f2a0..d1ddd162 100644 --- a/DRAMSys/simulator/TrafficInitiator.h +++ b/DRAMSys/simulator/TrafficInitiator.h @@ -56,7 +56,7 @@ class TrafficInitiator : public sc_core::sc_module { public: tlm_utils::simple_initiator_socket iSocket; - TrafficInitiator(const sc_core::sc_module_name &name, TraceSetup *setup, + TrafficInitiator(const sc_core::sc_module_name &name, TraceSetup& setup, unsigned int maxPendingReadRequests, unsigned int maxPendingWriteRequests, unsigned int defaultDataLength, bool addLengthConverter); SC_HAS_PROCESS(TrafficInitiator); @@ -68,7 +68,7 @@ protected: tlm_utils::peq_with_cb_and_phase payloadEventQueue; void terminate(); - TraceSetup *setup; + TraceSetup& setup; void sendToTarget(tlm::tlm_generic_payload &payload, const tlm::tlm_phase &phase, const sc_core::sc_time &delay);