Thank you for taking the time to provide such a detailed and informative answer. I appreciate your kind attention to my inquiry. Your response has been very helpful and will undoubtedly inform my next steps.
*Karim Soliman* Teaching Assistant Computer Engineering Department Pharos University in Alexandria (P.U.A) On Fri, Aug 30, 2024 at 1:25 AM C.-Y. Wu via gem5-users <gem5-users@gem5.org> wrote: > 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 >
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org