diff --git a/dram/resources/configs/memconfigs/fifo.xml b/dram/resources/configs/memconfigs/fifo.xml
index 50ee681f..eff47892 100644
--- a/dram/resources/configs/memconfigs/fifo.xml
+++ b/dram/resources/configs/memconfigs/fifo.xml
@@ -8,5 +8,4 @@
-
\ No newline at end of file
diff --git a/dram/resources/simulations/sim-batch.xml b/dram/resources/simulations/sim-batch.xml
index cd725640..dce15a11 100644
--- a/dram/resources/simulations/sim-batch.xml
+++ b/dram/resources/simulations/sim-batch.xml
@@ -5,7 +5,7 @@
fr_fcfs.xml
+ --> fifo.xml
diff --git a/dram/src/controller/scheduler/Fifo.cpp b/dram/src/controller/scheduler/Fifo.cpp
index aef1ecd9..fa9a7fe1 100644
--- a/dram/src/controller/scheduler/Fifo.cpp
+++ b/dram/src/controller/scheduler/Fifo.cpp
@@ -17,35 +17,32 @@ bool Fifo::hasPayloads()
void Fifo::schedule(gp* payload)
{
- buffer[DramExtension::getExtension(payload).getBank()].push_back(payload);
+ buffer.push_back(payload);
}
gp* Fifo::getNextPayload()
{
- for(Bank bank: controllerCore.getFreeBanks())
+ if(!buffer.empty())
{
- if(!buffer[bank].empty())
+ DramExtension& frontRequest = DramExtension::getExtension(buffer.front());
+ vector freeBanks = controllerCore.getFreeBanks();
+ if(std::find(freeBanks.begin(),freeBanks.end(),frontRequest.getBank()) != freeBanks.end())
{
- return buffer[bank].front();
+ return buffer.front();
}
}
return NULL;
}
-void Fifo::removePayload(gp* payload)
+void Fifo::removePayload(gp* /*payload*/)
{
- buffer[DramExtension::getExtension(payload).getBank()].pop_front();
+ buffer.pop_front();
}
unsigned int Fifo::getNumberOfQueuedPayloads()
{
- unsigned int numberOfQueuedPayloads = 0;
- for(auto& bufferElement : buffer)
- {
- numberOfQueuedPayloads += bufferElement.second.size();
- }
- return numberOfQueuedPayloads;
+ return buffer.size();
}
} /* namespace scheduler */
diff --git a/dram/src/controller/scheduler/Fifo.h b/dram/src/controller/scheduler/Fifo.h
index d3c34cae..51e54337 100644
--- a/dram/src/controller/scheduler/Fifo.h
+++ b/dram/src/controller/scheduler/Fifo.h
@@ -30,7 +30,7 @@ public:
virtual void removePayload(gp* payload) override;
private:
- std::map> buffer;
+ std::deque buffer;
core::ControllerCore &controllerCore;
unsigned int getNumberOfQueuedPayloads();
};