[gem5-dev] Change in gem5/gem5[develop]: mem-garnet: Change flitbuffer structure to deque

2021-04-14 Thread Srikant Bharadwaj (Gerrit) via gem5-dev
Srikant Bharadwaj has submitted this change. (  
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
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/44286
Reviewed-by: Jason Lowe-Power 
Maintainer: Jason Lowe-Power 
Tested-by: kokoro 
---
M src/mem/ruby/network/garnet/flitBuffer.hh
1 file changed, 2 insertions(+), 4 deletions(-)

Approvals:
  Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



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 m_buffer;
+std::deque 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: 2
Gerrit-Owner: Srikant Bharadwaj 
Gerrit-Reviewer: Jason Lowe-Power 
Gerrit-Reviewer: Jieming Yin 
Gerrit-Reviewer: Srikant Bharadwaj 
Gerrit-Reviewer: kokoro 
Gerrit-MessageType: merged
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: mem-garnet: Change flitbuffer structure to deque

2021-04-08 Thread Srikant Bharadwaj (Gerrit) via gem5-dev
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 m_buffer;
+std::deque 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 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s