110447Snilay@cs.wisc.edu 210447Snilay@cs.wisc.edu# Name of model to be built and evaluated 310447Snilay@cs.wisc.eduModelName = PhotonicClos 410447Snilay@cs.wisc.edu 510447Snilay@cs.wisc.edu# Query string to choose what to evaluate (use '\' to enable multiline config) 610447Snilay@cs.wisc.eduQueryString = \ 710447Snilay@cs.wisc.edu Energy>>PhotonicClos:AvgUnicast@1 \ 810447Snilay@cs.wisc.edu NddPower>>PhotonicClos:RingTuning@0 \ 910447Snilay@cs.wisc.edu NddPower>>PhotonicClos:Laser@0 \ 1010447Snilay@cs.wisc.edu NddPower>>PhotonicClos:Leakage@0 \ 1110447Snilay@cs.wisc.edu Area>>PhotonicClos:Active@0 \ 1210447Snilay@cs.wisc.edu Area>>PhotonicClos:GlobalWire@0 \ 1310447Snilay@cs.wisc.edu Area>>PhotonicClos:Photonic@0 \ 1410447Snilay@cs.wisc.edu 1510447Snilay@cs.wisc.edu# Injection rate (# flits per cycle per site), assuming that the network is not 1610447Snilay@cs.wisc.edu# saturated and uniform random traffic 1710447Snilay@cs.wisc.eduInjectionRate = 0.1 1810447Snilay@cs.wisc.edu# Evaluation string 1910447Snilay@cs.wisc.eduEvaluateString = \ 2010447Snilay@cs.wisc.edu dynamic = $(InjectionRate) * $(NumberInputSites) * $(Frequency) * $(Energy>>PhotonicClos:AvgUnicast); \ 2110447Snilay@cs.wisc.edu leakage = $(NddPower>>PhotonicClos:Leakage); \ 2210447Snilay@cs.wisc.edu ring_heating = $(NddPower>>PhotonicClos:RingTuning); \ 2310447Snilay@cs.wisc.edu laser = $(NddPower>>PhotonicClos:Laser); \ 2410447Snilay@cs.wisc.edu total = dynamic + leakage + ring_heating + laser; \ 2510447Snilay@cs.wisc.edu energy_per_bit = total / ($(InjectionRate) * $(Frequency) * $(NumberInputSites) * $(NumberBitsPerFlit)); \ 2610447Snilay@cs.wisc.edu active_area = $(Area>>PhotonicClos:Active); \ 2710447Snilay@cs.wisc.edu global_area = $(Area>>PhotonicClos:GlobalWire); \ 2810447Snilay@cs.wisc.edu photonic_area = $(Area>>PhotonicClos:Photonic); \ 2910447Snilay@cs.wisc.edu print "Photonic Clos Network:"; \ 3010447Snilay@cs.wisc.edu print " Dynamic power: " dynamic; \ 3110447Snilay@cs.wisc.edu print " Leakage power: " leakage; \ 3210447Snilay@cs.wisc.edu print " Laser power: " laser; \ 3310447Snilay@cs.wisc.edu print " Ring Heater Power: " ring_heating; \ 3410447Snilay@cs.wisc.edu print " Total power: " total; \ 3510447Snilay@cs.wisc.edu print " Energy per bit: " energy_per_bit; \ 3610447Snilay@cs.wisc.edu print " Active Area: " active_area; \ 3710447Snilay@cs.wisc.edu print " Global Wire Area: " global_area; \ 3810447Snilay@cs.wisc.edu print " Photonic Area: " photonic_area; \ 3910447Snilay@cs.wisc.edu 4010447Snilay@cs.wisc.edu# Technology file (see other models in tech/models) 4110447Snilay@cs.wisc.eduElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model 4210447Snilay@cs.wisc.eduPhotonicTechModelFilename = tech/tech_models/Photonics.model 4310447Snilay@cs.wisc.edu 4410447Snilay@cs.wisc.edu############################################################################### 4510447Snilay@cs.wisc.edu# Timing optimization 4610447Snilay@cs.wisc.edu############################################################################### 4710447Snilay@cs.wisc.edu 4810447Snilay@cs.wisc.edu# Individual network components already optimize for timing, no need to do it 4910447Snilay@cs.wisc.edu# at the top-level 5010447Snilay@cs.wisc.edu# Operating frequency (Hz) 5110447Snilay@cs.wisc.eduFrequency = 4e9 5210447Snilay@cs.wisc.edu 5310447Snilay@cs.wisc.edu# NOTE: If you adjust Frequency, make sure you adjust SWSR->LinkDataRate 5410447Snilay@cs.wisc.edu# to make sure it is >= Frequency, since the model doesn't support serialization 5510447Snilay@cs.wisc.edu# ratios < 1. 5610447Snilay@cs.wisc.edu 5710447Snilay@cs.wisc.edu# Report timing 5810447Snilay@cs.wisc.eduIsReportTiming = true 5910447Snilay@cs.wisc.edu# Report timing 6010447Snilay@cs.wisc.eduReportTiming->StartNetNames = [CK] 6110447Snilay@cs.wisc.edu 6210447Snilay@cs.wisc.edu############################################################################### 6310447Snilay@cs.wisc.edu# Model specifications 6410447Snilay@cs.wisc.edu############################################################################### 6510447Snilay@cs.wisc.edu 6610447Snilay@cs.wisc.edu# Clos Parameters 6710447Snilay@cs.wisc.edu# Number of sites that can send 6810447Snilay@cs.wisc.eduNumberInputSites = 64 6910447Snilay@cs.wisc.edu# Number of sites that can receive 7010447Snilay@cs.wisc.eduNumberOutputSites = 64 7110447Snilay@cs.wisc.edu# Bits per flit 7210447Snilay@cs.wisc.eduNumberBitsPerFlit = 64 7310447Snilay@cs.wisc.edu# Number of routers at each stage 7410447Snilay@cs.wisc.eduNumberIngressRouters = 8 7510447Snilay@cs.wisc.eduNumberMiddleRouters = 8 7610447Snilay@cs.wisc.eduNumberEgressRouters = 8 7710447Snilay@cs.wisc.edu 7810447Snilay@cs.wisc.edu# Router-specific parameters (see dsent.cfg.router for descriptions) 7910447Snilay@cs.wisc.eduRouter->NumberVirtualNetworks = 3 8010447Snilay@cs.wisc.eduRouter->NumberVirtualChannelsPerVirtualNetwork = [1,1,1] 8110447Snilay@cs.wisc.eduRouter->NumberBuffersPerVirtualChannel = [4,1,1] 8210447Snilay@cs.wisc.eduRouter->InputPort->BufferModel = DFFRAM 8310447Snilay@cs.wisc.eduRouter->CrossbarModel = MultiplexerCrossbar 8410447Snilay@cs.wisc.eduRouter->SwitchAllocator->ArbiterModel = MatrixArbiter 8510447Snilay@cs.wisc.eduRouter->ClockTreeModel = BroadcastHTree 8610447Snilay@cs.wisc.eduRouter->ClockTree->NumberLevels = 6 8710447Snilay@cs.wisc.eduRouter->ClockTree->WireLayer = Intermediate 8810447Snilay@cs.wisc.eduRouter->ClockTree->WireWidthMultiplier = 1.0 8910447Snilay@cs.wisc.edu 9010447Snilay@cs.wisc.edu# Electrical Link-specific parameters 9110447Snilay@cs.wisc.eduLink->WireLayer = Global 9210447Snilay@cs.wisc.eduLink->WireWidthMultiplier = 1.0 9310447Snilay@cs.wisc.eduLink->WireSpacingMultiplier = 1.0 9410447Snilay@cs.wisc.edu 9510447Snilay@cs.wisc.edu# Photonic link-specfic parameters 9610447Snilay@cs.wisc.edu# Link data rate (Hz), must be >= Frequency of the network 9710447Snilay@cs.wisc.eduSWSR->LinkDataRate = 4e9 9810447Snilay@cs.wisc.edu# Optimize the laser/modulator power balance for the given utilization 9910447Snilay@cs.wisc.eduSWSR->OptUtil = 0.5 10010447Snilay@cs.wisc.edu# Type of the laser. Current valid choices are: (Standard, Throttled) 10110447Snilay@cs.wisc.edu# Note, if you change this to throttled, the laser gets lumped into dynamic 10210447Snilay@cs.wisc.edu# power, so change the Ndd power query for laser appropriately 10310447Snilay@cs.wisc.eduSWSR->LaserType = Standard 10410447Snilay@cs.wisc.edu# Ring tuning method. Current valid choices are: 10510447Snilay@cs.wisc.edu# (FullThermal, AthermalWithTrim, ThermalWithBitReshuffle, ElectricalAssistWithBitReshuffle) 10610447Snilay@cs.wisc.eduSWSR->RingTuningMethod = ThermalWithBitReshuffle 10710447Snilay@cs.wisc.edu 10810447Snilay@cs.wisc.edu# Physical organization properties 10910447Snilay@cs.wisc.edu# Note: This model assumes a square network layout 11010447Snilay@cs.wisc.eduInputSitePitch = 1e-3 11110447Snilay@cs.wisc.eduOutputSitePitch = 1e-3 11210447Snilay@cs.wisc.edu 113