diff --git a/DRAMSys/library/src/controller/scheduler/Fifo.cpp b/DRAMSys/library/src/controller/scheduler/Fifo.cpp index 71e098b6..cc2ddb11 100644 --- a/DRAMSys/library/src/controller/scheduler/Fifo.cpp +++ b/DRAMSys/library/src/controller/scheduler/Fifo.cpp @@ -47,7 +47,7 @@ std::pair Fifo::getNextRequest(Bank bank) if (!buffer[bank].empty()) { gp *payload = buffer[bank].front(); - Command command = IScheduler::getNextCommand(*payload); + Command command = IScheduler::getNextCommand(payload); if (command == Command::Read || command == Command::ReadA || command == Command::Write || command == Command::WriteA) { diff --git a/DRAMSys/library/src/controller/scheduler/FifoStrict.cpp b/DRAMSys/library/src/controller/scheduler/FifoStrict.cpp index 00701ce0..4b890433 100644 --- a/DRAMSys/library/src/controller/scheduler/FifoStrict.cpp +++ b/DRAMSys/library/src/controller/scheduler/FifoStrict.cpp @@ -75,7 +75,7 @@ std::pair FifoStrict::getNextRequest( // case of an already open row (due to a previous request) the // command itself could be directly issued. // - Command command = IScheduler::getNextCommand(*payload); + Command command = IScheduler::getNextCommand(payload); if (commandIsIn(command, {Command::Read, Command::Write, Command::ReadA, Command::WriteA})) { buffer.pop_front(); @@ -84,7 +84,7 @@ std::pair FifoStrict::getNextRequest( if (!buffer.empty()) { tlm::tlm_generic_payload *p = buffer.front().second; - Command cmd = IScheduler::getNextCommand(*p); + Command cmd = IScheduler::getNextCommand(p); if (commandIsIn(cmd, {Command::Read, Command::Write, Command::ReadA, Command::WriteA})) { Bank b = DramExtension::getBank(p); controller.blockedRequests.push(b); @@ -110,7 +110,7 @@ std::pair FifoStrict::getNextRequest( // Reads and writes will not be issued since this // scheduler executes all read and writes in a strict // order. - Command command = getNextCommand(*payload); + Command command = getNextCommand(payload); if (commandIsIn(command, {Command::Read, Command::Write, Command::ReadA, Command::WriteA})) { // Reads and writes must be executed in order. Then if // the next command for this request is read or write diff --git a/DRAMSys/library/src/controller/scheduler/Fr_Fcfs.cpp b/DRAMSys/library/src/controller/scheduler/Fr_Fcfs.cpp index 05a4e745..7fe82b7c 100644 --- a/DRAMSys/library/src/controller/scheduler/Fr_Fcfs.cpp +++ b/DRAMSys/library/src/controller/scheduler/Fr_Fcfs.cpp @@ -81,7 +81,7 @@ std::pair FR_FCFS::getNextRequest(Bank bank) if (it != buffer[bank].end()) { gp *payload = *it; buffer[bank].erase(it); - return pair(getReadWriteCommand(*payload), payload); + return pair(getReadWriteCommand(payload), payload); } // If there is no row hit, the FR_FCFS takes always the oldest transaction diff --git a/DRAMSys/library/src/controller/scheduler/Fr_Fcfs_grouper.cpp b/DRAMSys/library/src/controller/scheduler/Fr_Fcfs_grouper.cpp index 40a8258e..9fa2030f 100644 --- a/DRAMSys/library/src/controller/scheduler/Fr_Fcfs_grouper.cpp +++ b/DRAMSys/library/src/controller/scheduler/Fr_Fcfs_grouper.cpp @@ -74,7 +74,7 @@ std::pair FR_FCFS_GRP::getNextRequest(Bank bank) if (hazardDetection(bank, it) == false) { buffer[bank].erase(it); printDebugMessage("Read Hit found"); - return pair(getReadWriteCommand(*read), + return pair(getReadWriteCommand(read), read); } else { // If there was a hazard, switch the mode and try again: @@ -112,7 +112,7 @@ std::pair FR_FCFS_GRP::getNextRequest(Bank bank) .getRowInRowBuffer(bank)) { buffer[bank].erase(it); printDebugMessage("Write Hit found"); - return pair(getReadWriteCommand(*write), + return pair(getReadWriteCommand(write), write); } } diff --git a/DRAMSys/library/src/controller/scheduler/Fr_Fcfs_read_priority.cpp b/DRAMSys/library/src/controller/scheduler/Fr_Fcfs_read_priority.cpp index 57c2f60f..117583c6 100644 --- a/DRAMSys/library/src/controller/scheduler/Fr_Fcfs_read_priority.cpp +++ b/DRAMSys/library/src/controller/scheduler/Fr_Fcfs_read_priority.cpp @@ -62,7 +62,7 @@ std::pair FR_FCFS_RP::getNextRequest(Bank bank) if (hazardDetection(bank, it) == false) { buffer[bank].erase(it); printDebugMessage("Read Hit found"); - return pair(getReadWriteCommand(*read), read); + return pair(getReadWriteCommand(read), read); } } } @@ -78,7 +78,7 @@ std::pair FR_FCFS_RP::getNextRequest(Bank bank) == controllerCore.getRowBufferStates().getRowInRowBuffer(bank)) { buffer[bank].erase(it); printDebugMessage("Write Hit found"); - return pair(getReadWriteCommand(*write), write); + return pair(getReadWriteCommand(write), write); } } } diff --git a/DRAMSys/library/src/controller/scheduler/SMS.cpp b/DRAMSys/library/src/controller/scheduler/SMS.cpp index 0f407775..42530571 100644 --- a/DRAMSys/library/src/controller/scheduler/SMS.cpp +++ b/DRAMSys/library/src/controller/scheduler/SMS.cpp @@ -30,7 +30,7 @@ std::pair SMS::getNextRequest(Bank bank) return pair(Command::NOP, NULL); } else { gp *payload = bankBuffers[bank].front(); - Command command = IScheduler::getNextCommand(*payload); + Command command = IScheduler::getNextCommand(payload); if (command == Command::Read || command == Command::ReadA || command == Command::Write || command == Command::WriteA) { diff --git a/DRAMSys/library/src/controller/scheduler/grp.cpp b/DRAMSys/library/src/controller/scheduler/grp.cpp index 652405aa..afb06fac 100644 --- a/DRAMSys/library/src/controller/scheduler/grp.cpp +++ b/DRAMSys/library/src/controller/scheduler/grp.cpp @@ -74,7 +74,7 @@ std::pair GRP::getNextRequest(Bank bank) if (hazardDetection(bank, it) == false) { buffer[bank].erase(it); printDebugMessage("Read Hit found"); - return pair(getReadWriteCommand(*read), + return pair(getReadWriteCommand(read), read); } else { // If there was a hazard, switch the mode and try again: @@ -106,7 +106,7 @@ std::pair GRP::getNextRequest(Bank bank) .getRowInRowBuffer(bank)) { buffer[bank].erase(it); printDebugMessage("Write Hit found"); - return pair(getReadWriteCommand(*write), + return pair(getReadWriteCommand(write), write); } else { printDebugMessage("Write miss found");