Renaming of payload IDs in arbiter.
This commit is contained in:
@@ -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]++);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user