Garnet

Garnet is a detailed interconnection network model inside Gems. It consists of a detailed "fixed pipeline" model and an approximate "flexible pipeline" model. The "fixed pipeline" model is intended for low-level interconnection network evaluations and models the detailed features of a state-of-the-art network. Researchers interested in investigating different network microarchitectures can readily modify the modeled microarchitecture and pipeline. Also, for system level evaluations that are not concerned with the detailed network characteristics, this model provides an accurate network model and should be used as the default model. The flexible pipeline model is intended to provide a reasonable abstraction of all interconnection network models, while allowing the router pipeline depth to be flexible adjusted. A router pipeline might range from a single cycle to several cycles. For evaluations that wish to easily change the router pipeline depth, the "flexible pipeline" model provides a neat abstraction that can be used.

Please goto http://www.princeton.edu/~niketa/garnet.html for a link to an extended technical report on Garnet. If your use of Garnet contributes to a published paper, please cite the technical report found at http://www.princeton.edu/~niketa/publications/garnet-tech-report.pdf

Fixed 5-stage Pipeline Model

If you are not concerned with the interconnection network details, this model should be used. It models the detailed aspects of a state-of-the-art interconnection network. Also for evaluations that are concerned with interconnection network level details, this model should be used. The default network parameters that can be used are:

The various network configuration parameters are as follows:

Features supported:

  1. Topology: The topology can be specified using the FILE_SPECIFIED format.

  2. Routing: The routing is table based. The tables are populated during the topology extraction phase. The routing is deterministic. The link_weights can be used to model dimension ordered routing. All weights in one dimension should be assigned a lower weight than the other dimension. The routing protocol chooses links with lower weights when it see more than one shortest path in its path. This ensures deadlock avoidance.

  3. VC and switch allocation: Separable VC and switch allocators are modeled. The individual arbiters are round-robin. To ensure point-to-point ordering for ordered virtual networks, queuing arbiters are also modeled.

  4. Modeling variable link bandwidth: The flit size specifies the link bandwidth as - number of bytes per cycle per network link. Links which have lower bandwidth than this (for instance some off-chip links) can be modeled by specifying a longer latency across them.

  5. Treating of multi-cast messages: The network modeled does not have hardware multi-cast support within the network. A multi-cast message gets broken into multiple uni-cast messages at the interface to the network.

Flexible Pipeline model

The flexible pipeline model is intended to provide a reasonable abstraction of all interconnection network models, while allowing the router pipeline to be flexible adjusted. The router pipeline is a parameter which can be set from 1 to several cycles. This model should be used when one desires a router pipeline different than 5 stages (the 5 stages include the link traversal stage).

The parameters are almost same as that of the fixed pipeline model. The only change is that the parameter g_DETAIL_NETWORK should be set to false and g_NUM_PIPE_STAGES specifies the number of pipeline stages inside the router.

Ouput Statistics

Additionally in the "fixed pipeline" model, the total router and link powers are also reported.

Garnet File Maker

A python script $GEMS/ruby/network/simple/Network_Files/GarnetFileMaker.py is provided to easily create network topology files required for using Garnet. The script takes as argument the number of rows and columns desired in a "tiled" topology fashion. It connects an L1 Cache node and and L2 Cache bank to an internal node. Internal nodes are then linked to each other. The links in the same row are assigned a weight = 1 and in the links in the same column are assigned a weight = 2. This ensures dimension ordered X-Y routing. The directory nodes can be manually linked to the internal nodes according to the configuration desired.

Note: Garnet does not support broadcast based protocols as they require some specific network properties which we did not model. So, the original "simple" network should be used for broadcast based protocols.

Garnet (last edited 2008-02-22 21:01:23 by Niket)