Hi chunfeng,
Are the packets in your routing algorithm moving clockwise or
counterclockwise? This type of routing algorithm can be prone to deadlock.
To prevent deadlock from occurring, consider implementing deadlock-free
algorithms such as XY routing.
Alternatively, you can use deadlock-free schemes (static Bubble, BBR) to enable
the use of custom routing algorithms that might cause deadlocks.
References:
1. A. Ramrakhyani and T. Krishna, “Static bubble: A framework
for deadlock-free irregular on-chip topologies,”
in 2017 IEEE International Symposium on High Performance Computer
Architecture (HPCA), pp. 253–264, 2017.
2. M. Parasar, A. Sinha, and T. Krishna, “Brownian bubble router:
Enabling deadlock freedom via guaranteed forward progress,”
in 2018 Twelfth IEEE/ACM International Symposium on Networks-on-Chip
(NOCS), pp. 1–8, 2018.
------------------ Original ------------------
From: "Chunfeng Li via gem5-users"<gem5-users@gem5.org>;
Date: Wed, Jun 28, 2023 02:54 PM
To: "gem5-users"<gem5-users@gem5.org>;
Cc: "Chunfeng Li"<lichunfeng....@gmail.com>;
Subject: [gem5-users] Re: garnet3.0 simulation question - How How to set
bubbles in the buffer to avoid deadlock when using Garnet 3.0 emulation.
Hi Gabriel,
Thank you so much for helping me!
I wanted to build a ring topology in Garnet 3.0, and while I was implementing
the routing algorithm I found that packets would form ring dependencies as they
were delivered, causing serious congestion problems. In the Standalone
protocol, there will be three virtual networks, and the buffers I am referring
to are the virtual networks.
To avoid the congestion problem, I grouped the transmitted data into 3 classes,
each class of data is transmitted on its own separate virtual network, but due
to the limited virtual channels in the virtual network, when the injection rate
is particularly high, all virtual channels will be filled with packets and thus
cannot be delivered forward.
My goal is to set up a bubble (empty virtual channel) to ensure that at least
one virtual channel is available in the virtual network, so that packets can
keep passing forward and solve the congestion problem. But I don't know how to
go about setting up this bubble? Do you know how is to set up a bubble?
Regards,
Chunfeng
gabriel.busnot--- via gem5-users <gem5-users@gem5.org> 于2023年6月27日周二 16:50写道:
Hi Chunfeng,
Can you be more specific about “the buffer” you are referring to?
Also, “routing creating deadlock” sounds more like a routing and/or topology
issue than a micro-architecture issue.
Introducing a bubble as a deadlock avoidance countermeasure sounds like a
slippery option. If you can assert that it is what you need, though, you should
have sufficient knowledge of Garnet to locate the offending buffer and identify
the condition that requires such a bubble to be inserted. Then you can
implement this change yourself in Garnet’s code. Do not hesitate to ask for
help if you are facing issue in the process.
Regards,
Gabriel
_______________________________________________
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