Hello, My understanding is that, for a (Garnet) router, the VC buffer size is marked by the (initial) credit value.
For example, the outport-East of Router 0 is connected to the inport-West of Router 1. The outport-East of Router 0 keeps all the credit values, corresponding to all VCs of Router 1's inport-West, in an "OutVcState" vector. In the constructor of OutVcState (src/mem/ruby/network/garnet/OutVcState.cc), the maximum credit values are initialized to buffers_per_ctrl_vc (for vnet 0 and 1) or buffers_per_data_vc (for vnet 2). If you change those two values, you will see that an outport can push at most buffers_per_ctrl_vc (or buffers_per_data_vc) flits into a VC buffer. Because the credits will then run out. The behavior is the same as setting the buffer depth. However, if you look at src/mem/ruby/network/garnet/flitBuffer.cc, the class member "max_size" seems indeed never set and the function isFull() is never called. If you want to check the number of flits in a specific VC buffer, you will have to check: - the class member virtualChannels (a vector of VirtualChannel) of InputUnit - the class member inputBuffer (type flitBuffer) of VirtualChannel - the member function getSize() of flitBuffer, which returns the size of m_buffer (type: std::deque) (Note that the size of std::deque is the number of elements in the queue.) Best regards, Chia On Mon, Aug 12, 2024 at 12:42 PM Karim Soliman via gem5-users < gem5-users@gem5.org> wrote: > Dear gem5 Community, > > I hope this email finds you well. I apologize in advance if my questions > seem basic, as I am still learning the ropes of gem5 and have encountered > some areas of confusion. > > For my research, I am interested in configuring the depth of the input > buffers per router. I understand that the default buffer size is zero, > which signifies an infinite buffer. > > I have reviewed the source code in > "src/mem/ruby/network/garnet/GarnetNetwork.py" and noticed that > buffers_per_data_vc is set to 4 by default, while buffers_per_ctrl_vc is > set to 1. If I modify the default value of buffers_per_data_vc to 8, > would this accurately configure the input buffer depth to 8? > > Additionally, I would like to inquire about accessing the current number > of flits within the buffer. I reviewed the code in > "src/mem/ruby/network/garnet/InputUnit.cc" and > "src/mem/ruby/network/garnet/RoutingUnit.cc" but was unable to locate the > relevant functionality. > > Thank you for your time and assistance. > > Best Regards, > *Eng. Karim Soliman* > Teaching Assistant > Computer Engineering Department > Pharos University in Alexandria (P.U.A) > _______________________________________________ > gem5-users mailing list -- gem5-users@gem5.org > To unsubscribe send an email to gem5-users-le...@gem5.org >
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org