Hi Srikant,

Thanks for your response.

We're prototyping an accelerator's architecture in gem5.
We are able to construct it virtually from scratch by using gem5 primitives
like SimObject or ClockedObjects and connecting them through ports.

Now, designing a NoC in the middle of this accelerator, one option is to
route everything ourselves with ports or leverage the topology syntax we
can see in Garnet.
The Garnet approach seems preferable, we are really able to define our
topology as we prefer.
It is also convenient to test different NoC topologiues without
redevelopping all different connections.

Say we take an extremely simple topology as example:

A 2x2 NoC topology so 2 directories and 2 "hosts" through a Garnet Crossbar.
Now for the directories for now it seems easy enough as we would simply use
existing Memory Controllers.
However, things get trickier if what we want to use to feed the network on
the host side is a custom component which communicates using ports after
getting some information from a CPU and enqueuing it or otherwise
transforming it.
That is something we could also do going out of the NoC to add some delay
for example or further process messages coming out.

As a simple example, think of the InspectorGadget component from gem5
bootcamp.

A full example would thus be, is it possible to connect a CPU port through
an InspectorGadget like component's port to a Garnet NoC and ending in a
Memory controller.
More succinctly put: CPU->InspectorGadget->GarnetNOC->MemCtrl
At some point, we might also need the other side (
CPU->GarnetNOC->InspectorGadget->MemCtrl ) but it is less pressing as
Garnet seems to offer enough options to extend within the NoC topology or
add latency going out of the NoC.

I hope this makes the example clear enough. The idea is we need to massage
packets before the get into the NoC for example re-address them.
Does this make sense for you ?

Regards,
Xomse


On Thu, May 22, 2025 at 10:05 AM Srikant Bharadwaj <srikan...@gmail.com>
wrote:

> Hi Xomse,
> Can you describe more about what you want to do?
> What do you mean by connecting a Garnet component to a simple port
>
> Srikant
>
> On Wed, May 21, 2025 at 6:37 AM xomse via gem5-users <gem5-users@gem5.org>
> wrote:
>
>> Hi gem5-users,
>>
>> I have been playing around with NoC models in gem5 using Garnet.
>> It is very convenient and useful to create custom topologies and run them
>> as part of existing simulation scripts from the config/topologies directory.
>>
>> I was wondering however, how can I take this further ?
>> How can I use a simple port as a primitive to connect to a custom gem5
>> component ?
>>
>> Is that possible ?
>> There are no examples of such a use case, but that would be most
>> convenient to fully leverage garnet for experiments around NoC reliant
>> designs.
>>
>> Thanks in advance,
>>
>> Regards,
>>
>> Xomse
>>
>> _______________________________________________
>> 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

Reply via email to