diff options
author | Nilay Vaish <nilay@cs.wisc.edu> | 2014-10-11 15:02:23 -0500 |
---|---|---|
committer | Nilay Vaish <nilay@cs.wisc.edu> | 2014-10-11 15:02:23 -0500 |
commit | e8ed7b1d1b5bef31e9874f679a5797c2e00d06f1 (patch) | |
tree | 421c9c50377aa664958685914f5504c4c019e21f /ext/dsent/configs/electrical-mesh.cfg | |
parent | a098fad174d8559037602b248b8e6f7f46bfebbb (diff) | |
download | gem5-e8ed7b1d1b5bef31e9874f679a5797c2e00d06f1.tar.xz |
ext: add the source code for DSENT
This patch adds a tool called DSENT to the ext/ directory. DSENT
is a tool that models power and area for on-chip networks. The next
patch adds a script for using the tool.
Diffstat (limited to 'ext/dsent/configs/electrical-mesh.cfg')
-rw-r--r-- | ext/dsent/configs/electrical-mesh.cfg | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/ext/dsent/configs/electrical-mesh.cfg b/ext/dsent/configs/electrical-mesh.cfg new file mode 100644 index 000000000..929e4f19c --- /dev/null +++ b/ext/dsent/configs/electrical-mesh.cfg @@ -0,0 +1,81 @@ + +# Instance +ModelName = ElectricalMesh + +# Query string used to choose what will be output by Orion +QueryString = \ + Energy>>ElectricalMesh:AvgUnicast@0 \ + NddPower>>ElectricalMesh:Leakage@0 \ + Area>>ElectricalMesh:Active@0 \ + Area>>ElectricalMesh:GlobalWire@0 \ + +# Injection rate (# flits per cycle per site), assuming that the network is not +# saturated and uniform random traffic +InjectionRate = 0.1 +# Evaluation string +EvaluateString = \ + dynamic = $(InjectionRate) * $(NumberSites) * $(Frequency) * $(Energy>>ElectricalMesh:AvgUnicast); \ + leakage = $(NddPower>>ElectricalMesh:Leakage); \ + total = dynamic + leakage; \ + energy_per_bit = total / ($(InjectionRate) * $(Frequency) * $(NumberSites) * $(NumberBitsPerFlit)); \ + active_area = $(Area>>ElectricalMesh:Active); \ + global_area = $(Area>>ElectricalMesh:GlobalWire); \ + print "Electrical Mesh Network:"; \ + print " Dynamic power: " dynamic; \ + print " Leakage power: " leakage; \ + print " Total power: " total; \ + print " Energy per bit: " energy_per_bit; \ + print " Global Wire Area: " global_area; \ + print " Active Area: " active_area; \ + +# Technology file (see other models in tech/models) +ElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model + +############################################################################### +# Timing optimization +############################################################################### + +# Individual network components already optimize for timing, no need to do it +# at the top-level +# Operating frequency (Hz) +Frequency = 1.0e9 + +# NOTE: If you adjust Frequency, make sure you adjust SWSR->LinkDataRate +# to make sure it is >= Frequency, since the model doesn't support serialization +# ratios < 1. + +# Report timing +IsReportTiming = true +# Report timing +ReportTiming->StartNetNames = [CK] + +############################################################################### +# Model specifications +############################################################################### + +# Mesh Parameters +ClockFrequency = 1e9 +NumberSites = 64 +NumberBitsPerFlit = 64 +NumberSitesPerRouter = 1 + +# Router-specific parameters (see dsent.cfg.router for descriptions) +Router->NumberVirtualNetworks = 3 +Router->NumberVirtualChannelsPerVirtualNetwork = [1,1,1] +Router->NumberBuffersPerVirtualChannel = [4,1,1] +Router->InputPort->BufferModel = DFFRAM +Router->CrossbarModel = MultiplexerCrossbar +Router->SwitchAllocator->ArbiterModel = MatrixArbiter +Router->ClockTreeModel = BroadcastHTree +Router->ClockTree->NumberLevels = 6 +Router->ClockTree->WireLayer = Intermediate +Router->ClockTree->WireWidthMultiplier = 1.0 + +# Electrical Link-specific parameters +Link->WireLayer = Global +Link->WireWidthMultiplier = 1.0 +Link->WireSpacingMultiplier = 1.0 + +# Physical organization properties +# Note: This model assumes a square network layout +SitePitch = 1e-3 |