Srikant Bharadwaj has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/44286 )

Change subject: mem-garnet: Change flitbuffer structure to deque
......................................................................

mem-garnet: Change flitbuffer structure to deque

Flitbuffers act as FIFOs for internal links and output queues
in routers. This change replaces the use of vectors with deque
for performance improvements. The older implementation of using
a vector combined with a heap sort was both incorrect and
inefficient.

Incorrect because flit buffers should act strictly
as FIFO, sorting them based on time changes the order which affects
functionality in the case of DVFS enabled NoCs.

Change-Id: Ieba40f85628b7c7255e86792d40b8ce3d7ac34b5
---
M src/mem/ruby/network/garnet/flitBuffer.hh
1 file changed, 2 insertions(+), 4 deletions(-)



diff --git a/src/mem/ruby/network/garnet/flitBuffer.hh b/src/mem/ruby/network/garnet/flitBuffer.hh
index 40af826..91a3a86 100644
--- a/src/mem/ruby/network/garnet/flitBuffer.hh
+++ b/src/mem/ruby/network/garnet/flitBuffer.hh
@@ -55,8 +55,7 @@
     getTopFlit()
     {
         flit *f = m_buffer.front();
-        std::pop_heap(m_buffer.begin(), m_buffer.end(), flit::greater);
-        m_buffer.pop_back();
+        m_buffer.pop_front();
         return f;
     }

@@ -70,13 +69,12 @@
     insert(flit *flt)
     {
         m_buffer.push_back(flt);
-        std::push_heap(m_buffer.begin(), m_buffer.end(), flit::greater);
     }

     uint32_t functionalWrite(Packet *pkt);

   private:
-    std::vector<flit *> m_buffer;
+    std::deque<flit *> m_buffer;
     int max_size;
 };


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/44286
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: Ieba40f85628b7c7255e86792d40b8ce3d7ac34b5
Gerrit-Change-Number: 44286
Gerrit-PatchSet: 1
Gerrit-Owner: Srikant Bharadwaj <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to