diff options
Diffstat (limited to 'ext/dsent/configs/photonic-clos.cfg')
-rw-r--r-- | ext/dsent/configs/photonic-clos.cfg | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/ext/dsent/configs/photonic-clos.cfg b/ext/dsent/configs/photonic-clos.cfg new file mode 100644 index 000000000..252b49ab0 --- /dev/null +++ b/ext/dsent/configs/photonic-clos.cfg @@ -0,0 +1,112 @@ + +# Name of model to be built and evaluated +ModelName = PhotonicClos + +# Query string to choose what to evaluate (use '\' to enable multiline config) +QueryString = \ + Energy>>PhotonicClos:AvgUnicast@1 \ + NddPower>>PhotonicClos:RingTuning@0 \ + NddPower>>PhotonicClos:Laser@0 \ + NddPower>>PhotonicClos:Leakage@0 \ + Area>>PhotonicClos:Active@0 \ + Area>>PhotonicClos:GlobalWire@0 \ + Area>>PhotonicClos:Photonic@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) * $(NumberInputSites) * $(Frequency) * $(Energy>>PhotonicClos:AvgUnicast); \ + leakage = $(NddPower>>PhotonicClos:Leakage); \ + ring_heating = $(NddPower>>PhotonicClos:RingTuning); \ + laser = $(NddPower>>PhotonicClos:Laser); \ + total = dynamic + leakage + ring_heating + laser; \ + energy_per_bit = total / ($(InjectionRate) * $(Frequency) * $(NumberInputSites) * $(NumberBitsPerFlit)); \ + active_area = $(Area>>PhotonicClos:Active); \ + global_area = $(Area>>PhotonicClos:GlobalWire); \ + photonic_area = $(Area>>PhotonicClos:Photonic); \ + print "Photonic Clos Network:"; \ + print " Dynamic power: " dynamic; \ + print " Leakage power: " leakage; \ + print " Laser power: " laser; \ + print " Ring Heater Power: " ring_heating; \ + print " Total power: " total; \ + print " Energy per bit: " energy_per_bit; \ + print " Active Area: " active_area; \ + print " Global Wire Area: " global_area; \ + print " Photonic Area: " photonic_area; \ + +# Technology file (see other models in tech/models) +ElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model +PhotonicTechModelFilename = tech/tech_models/Photonics.model + +############################################################################### +# Timing optimization +############################################################################### + +# Individual network components already optimize for timing, no need to do it +# at the top-level +# Operating frequency (Hz) +Frequency = 4e9 + +# 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 +############################################################################### + +# Clos Parameters +# Number of sites that can send +NumberInputSites = 64 +# Number of sites that can receive +NumberOutputSites = 64 +# Bits per flit +NumberBitsPerFlit = 64 +# Number of routers at each stage +NumberIngressRouters = 8 +NumberMiddleRouters = 8 +NumberEgressRouters = 8 + +# 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 + +# Photonic link-specfic parameters +# Link data rate (Hz), must be >= Frequency of the network +SWSR->LinkDataRate = 4e9 +# Optimize the laser/modulator power balance for the given utilization +SWSR->OptUtil = 0.5 +# Type of the laser. Current valid choices are: (Standard, Throttled) +# Note, if you change this to throttled, the laser gets lumped into dynamic +# power, so change the Ndd power query for laser appropriately +SWSR->LaserType = Standard +# Ring tuning method. Current valid choices are: +# (FullThermal, AthermalWithTrim, ThermalWithBitReshuffle, ElectricalAssistWithBitReshuffle) +SWSR->RingTuningMethod = ThermalWithBitReshuffle + +# Physical organization properties +# Note: This model assumes a square network layout +InputSitePitch = 1e-3 +OutputSitePitch = 1e-3 + |