/***************************************************************************** * McPAT * SOFTWARE LICENSE AGREEMENT * Copyright 2012 Hewlett-Packard Development Company, L.P. * All Rights Reserved * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer; * redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution; * neither the name of the copyright holders nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.” * ***************************************************************************/ #ifndef ARCH_CONST_H_ #define ARCH_CONST_H_ typedef struct{ unsigned int capacity; unsigned int assoc;//fully unsigned int blocksize; } array_inputs; //Do Not change, unless you want to bypass the XML interface and do not care about the default values. //Global parameters const int number_of_cores = 8; const int number_of_L2s = 1; const int number_of_L3s = 1; const int number_of_NoCs = 1; const double archi_F_sz_nm = 90.0; const unsigned int dev_type = 0; const double CLOCKRATE = 1.2*1e9; const double AF = 0.5; //const bool inorder = true; const bool embedded = false; //NEW const bool homogeneous_cores = true; const bool temperature = 360; const int number_cache_levels = 3; const int L1_property = 0; //private 0; coherent 1, shared 2. const int L2_property = 2; const bool homogeneous_L2s = true; const bool L3_property = 2; const bool homogeneous_L3s = true; const double Max_area_deviation = 50; const double Max_dynamic_deviation =50; //New const int opt_dynamic_power = 1; const int opt_lakage_power = 0; const int opt_area = 0; const int interconnect_projection_type = 0; //******************************Core Parameters #if (inorder) const int opcode_length = 8;//Niagara const int reg_length = 5;//Niagara const int instruction_length = 32;//Niagara const int data_width = 64; #else const int opcode_length = 8;//16;//Niagara const int reg_length = 7;//Niagara const int instruction_length = 32;//Niagara const int data_width = 64; #endif //Caches //itlb const int itlbsize=512; const int itlbassoc=0;//fully const int itlbblocksize=8; //icache const int icachesize=32768; const int icacheassoc=4; const int icacheblocksize=32; //dtlb const int dtlbsize=512; const int dtlbassoc=0;//fully const int dtlbblocksize=8; //dcache const int dcachesize=32768; const int dcacheassoc=4; const int dcacheblocksize=32; const int dcache_write_buffers=8; //cache controllers //IB, const int numIBEntries = 64; const int IBsize = 64;//2*4*instruction_length/8*2; const int IBassoc = 0;//In Niagara it is still fully associ const int IBblocksize = 4; //IFB and MIL should have the same parameters CAM const int IFBsize=128;// const int IFBassoc=0;//In Niagara it is still fully associ const int IFBblocksize=4; const int icache_write_buffers=8; //register file RAM const int regfilesize=5760; const int regfileassoc=1; const int regfileblocksize=18; //regwin RAM const int regwinsize=256; const int regwinassoc=1; const int regwinblocksize=8; //store buffer, lsq const int lsqsize=512; const int lsqassoc=0; const int lsqblocksize=8; //data fill queue RAM const int dfqsize=1024; const int dfqassoc=1; const int dfqblocksize=16; //outside the cores //L2 cache bank const int l2cachesize=262144; const int l2cacheassoc=16; const int l2cacheblocksize=64; //L2 directory const int l2dirsize=1024; const int l2dirassoc=0; const int l2dirblocksize=2; //crossbar //PCX const int PCX_NUMBER_INPUT_PORTS_CROSSBAR = 8; const int PCX_NUMBER_OUTPUT_PORTS_CROSSBAR = 9; const int PCX_NUMBER_SIGNALS_PER_PORT_CROSSBAR =144; //PCX buffer RAM const int pcx_buffersize=1024; const int pcx_bufferassoc=1; const int pcx_bufferblocksize=32; const int pcx_numbuffer=5; //pcx arbiter const int pcx_arbsize=128; const int pcx_arbassoc=1; const int pcx_arbblocksize=2; const int pcx_numarb=5; //CPX const int CPX_NUMBER_INPUT_PORTS_CROSSBAR = 5; const int CPX_NUMBER_OUTPUT_PORTS_CROSSBAR = 8; const int CPX_NUMBER_SIGNALS_PER_PORT_CROSSBAR =150; //CPX buffer RAM const int cpx_buffersize=1024; const int cpx_bufferassoc=1; const int cpx_bufferblocksize=32; const int cpx_numbuffer=8; //cpx arbiter const int cpx_arbsize=128; const int cpx_arbassoc=1; const int cpx_arbblocksize=2; const int cpx_numarb=8; const int numPhysFloatRegs=256; const int numPhysIntRegs=32; const int numROBEntries=192; const int umRobs=1; const int BTBEntries=4096; const int BTBTagSize=16; const int LFSTSize=1024; const int LQEntries=32; const int RASSize=16; const int SQEntries=32; const int SSITSize=1024; const int activity=0; const int backComSize=5; const int cachePorts=200; const int choiceCtrBits=2; const int choicePredictorSize=8192; const int commitWidth=8; const int decodeWidth=8; const int dispatchWidth=8; const int fetchWidth=8; const int issueWidth=1; const int renameWidth=8; //what is this forwardComSize=5?? const int globalCtrBits=2; const int globalHistoryBits=13; const int globalPredictorSize=8192; const int localCtrBits=2; const int localHistoryBits=11; const int localHistoryTableSize=2048; const int localPredictorSize=2048; const double Woutdrvnandn =30 *0.09;//(24.0 * LSCALE) const double Woutdrvnandp =12.5 *0.09;//(10.0 * LSCALE) const double Woutdrvnorn =7.5*0.09;//(6.0 * LSCALE) const double Woutdrvnorp =50 * 0.09;// (40.0 * LSCALE) const double Woutdrivern =60*0.09;//(48.0 * LSCALE) const double Woutdriverp =100 * 0.09;//(80.0 * LSCALE) /* smtCommitPolicy=RoundRobin smtFetchPolicy=SingleThread smtIQPolicy=Partitioned smtIQThreshold=100 smtLSQPolicy=Partitioned smtLSQThreshold=100 smtNumFetchingThreads=1 smtROBPolicy=Partitioned smtROBThreshold=100 squashWidth=8 */ /* prefetch_access=false prefetch_cache_check_push=true prefetch_data_accesses_only=false prefetch_degree=1 prefetch_latency=10000 prefetch_miss=false prefetch_past_page=false prefetch_policy=none prefetch_serial_squash=false prefetch_use_cpu_id=true prefetcher_size=100 prioritizeRequests=false repl=Null split=false split_size=0 subblock_size=0 tgts_per_mshr=20 trace_addr=0 two_queue=false cpu_side=system.cpu0.dcache_port mem_side=system.tol2bus.port[2] */ //[system.cpu0.dtb] //type=AlphaDT #endif /* ARCH_CONST_H_ */