Renaming of payload IDs in arbiter.

This commit is contained in:
Lukas Steiner
2020-10-27 09:57:48 +01:00
parent 2c7f555172
commit 5d6042a16a
2 changed files with 7 additions and 14 deletions

View File

@@ -53,7 +53,7 @@ Arbiter::Arbiter(sc_module_name name, std::string pathToAddressMapping) :
{
channelIsBusy.push_back(false);
pendingRequests.push_back(std::queue<tlm_generic_payload *>());
nextChannelPayloadID.push_back(0);
nextChannelPayloadIDToAppend.push_back(0);
}
// One or more devices can accesss all the memory units through the arbiter.
@@ -101,12 +101,9 @@ tlm_sync_enum Arbiter::nb_transport_fw(int id, tlm_generic_payload &payload,
// Initiated by dram side
// This function is called when an arbiter's initiator socket receives a transaction from a memory controller
tlm_sync_enum Arbiter::nb_transport_bw(int channelId, tlm_generic_payload &payload,
tlm_sync_enum Arbiter::nb_transport_bw(int, tlm_generic_payload &payload,
tlm_phase &phase, sc_time &bwDelay)
{
// Check channel ID
assert(static_cast<unsigned>(channelId) == DramExtension::getExtension(payload).getChannel().ID());
PRINTDEBUGMESSAGE(name(), "[bw] " + getPhaseName(phase) + " notification in " +
bwDelay.to_string());
payloadEventQueue.notify(payload, phase, bwDelay);
@@ -128,10 +125,6 @@ void Arbiter::peqCallback(tlm_generic_payload &payload, const tlm_phase &phase)
unsigned int threadId = DramExtension::getExtension(payload).getThread().ID();
unsigned int channelId = DramExtension::getExtension(payload).getChannel().ID();
// Check the valid range of thread ID and channel Id
// TODO: thread ID not checked
assert(channelId < Configuration::getInstance().memSpec->numberOfChannels);
// Phases initiated by the intiator side from arbiter's point of view (devices performing memory requests to the arbiter)
if (phase == BEGIN_REQ)
{
@@ -235,6 +228,6 @@ void Arbiter::appendDramExtension(int socketId, tlm_generic_payload &payload, sc
Channel(decodedAddress.channel), Rank(decodedAddress.rank),
BankGroup(decodedAddress.bankgroup), Bank(decodedAddress.bank),
Row(decodedAddress.row), Column(decodedAddress.column),
burstlength, nextThreadPayloadID[static_cast<unsigned int>(socketId)]++,
nextChannelPayloadID[decodedAddress.channel]++);
burstlength, nextThreadPayloadIDToAppend[static_cast<unsigned int>(socketId)]++,
nextChannelPayloadIDToAppend[decodedAddress.channel]++);
}

View File

@@ -81,7 +81,7 @@ private:
// Initiated by dram side
// This function is called when an arbiter's initiator socket receives a transaction from a memory controller
tlm::tlm_sync_enum nb_transport_bw(int channelId, tlm::tlm_generic_payload &payload,
tlm::tlm_sync_enum nb_transport_bw(int, tlm::tlm_generic_payload &payload,
tlm::tlm_phase &phase, sc_time &bwDelay);
unsigned int transport_dbg(int /*id*/, tlm::tlm_generic_payload &trans);
@@ -89,8 +89,8 @@ private:
void peqCallback(tlm::tlm_generic_payload &payload, const tlm::tlm_phase &phase);
void appendDramExtension(int socketId, tlm::tlm_generic_payload &payload, sc_time delay);
std::vector<uint64_t> nextChannelPayloadID;
std::unordered_map<unsigned int, uint64_t> nextThreadPayloadID;
std::vector<uint64_t> nextChannelPayloadIDToAppend;
std::unordered_map<unsigned int, uint64_t> nextThreadPayloadIDToAppend;
};
#endif // ARBITER_H