110152Satgutier@umich.edu/*****************************************************************************
210152Satgutier@umich.edu *                                McPAT
310152Satgutier@umich.edu *                      SOFTWARE LICENSE AGREEMENT
410152Satgutier@umich.edu *            Copyright 2012 Hewlett-Packard Development Company, L.P.
510152Satgutier@umich.edu *                          All Rights Reserved
610152Satgutier@umich.edu *
710152Satgutier@umich.edu * Redistribution and use in source and binary forms, with or without
810152Satgutier@umich.edu * modification, are permitted provided that the following conditions are
910152Satgutier@umich.edu * met: redistributions of source code must retain the above copyright
1010152Satgutier@umich.edu * notice, this list of conditions and the following disclaimer;
1110152Satgutier@umich.edu * redistributions in binary form must reproduce the above copyright
1210152Satgutier@umich.edu * notice, this list of conditions and the following disclaimer in the
1310152Satgutier@umich.edu * documentation and/or other materials provided with the distribution;
1410152Satgutier@umich.edu * neither the name of the copyright holders nor the names of its
1510152Satgutier@umich.edu * contributors may be used to endorse or promote products derived from
1610152Satgutier@umich.edu * this software without specific prior written permission.
1710152Satgutier@umich.edu
1810152Satgutier@umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1910152Satgutier@umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
2010152Satgutier@umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
2110152Satgutier@umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
2210152Satgutier@umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2310152Satgutier@umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2410152Satgutier@umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2510152Satgutier@umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2610152Satgutier@umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2710152Satgutier@umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2810152Satgutier@umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.”
2910152Satgutier@umich.edu *
3010152Satgutier@umich.edu ***************************************************************************/
3110152Satgutier@umich.edu
3210152Satgutier@umich.edu#ifndef ARCH_CONST_H_
3310152Satgutier@umich.edu#define ARCH_CONST_H_
3410152Satgutier@umich.edu
3510152Satgutier@umich.edutypedef struct{
3610152Satgutier@umich.edu        unsigned int capacity;
3710152Satgutier@umich.edu        unsigned int assoc;//fully
3810152Satgutier@umich.edu        unsigned int blocksize;
3910152Satgutier@umich.edu} array_inputs;
4010152Satgutier@umich.edu
4110152Satgutier@umich.edu//Do Not change, unless you want to bypass the XML interface and do not care about the default values.
4210152Satgutier@umich.edu//Global parameters
4310152Satgutier@umich.educonst int  			number_of_cores =	8;
4410152Satgutier@umich.educonst int  			number_of_L2s 	=	1;
4510152Satgutier@umich.educonst int 			number_of_L3s	=	1;
4610152Satgutier@umich.educonst int 			number_of_NoCs	=	1;
4710152Satgutier@umich.edu
4810152Satgutier@umich.educonst double 		archi_F_sz_nm	=	90.0;
4910152Satgutier@umich.educonst unsigned int 	dev_type		=	0;
5010152Satgutier@umich.educonst double 		CLOCKRATE 		= 	1.2*1e9;
5110152Satgutier@umich.educonst double 		AF 				= 	0.5;
5210152Satgutier@umich.edu//const bool 			inorder			=	true;
5310152Satgutier@umich.educonst bool			embedded		=	false; //NEW
5410152Satgutier@umich.edu
5510152Satgutier@umich.educonst bool 			homogeneous_cores	= 	true;
5610152Satgutier@umich.educonst bool 			temperature		=	360;
5710152Satgutier@umich.educonst int			number_cache_levels	=	3;
5810152Satgutier@umich.educonst int			L1_property		=	0; //private 0; coherent 1, shared 2.
5910152Satgutier@umich.educonst int		 	L2_property		=	2;
6010152Satgutier@umich.educonst bool	    	homogeneous_L2s	=	true;
6110152Satgutier@umich.educonst bool		    L3_property		= 	2;
6210152Satgutier@umich.educonst bool 			homogeneous_L3s	=	true;
6310152Satgutier@umich.educonst double 		Max_area_deviation	=	50;
6410152Satgutier@umich.educonst double	    Max_dynamic_deviation	=50; //New
6510152Satgutier@umich.educonst int 			opt_dynamic_power	=	1;
6610152Satgutier@umich.educonst int 			opt_lakage_power	=	0;
6710152Satgutier@umich.educonst int		 	opt_area			=	0;
6810152Satgutier@umich.educonst int			interconnect_projection_type	=	0;
6910152Satgutier@umich.edu
7010152Satgutier@umich.edu//******************************Core Parameters
7110152Satgutier@umich.edu#if (inorder)
7210152Satgutier@umich.educonst int opcode_length			= 	8;//Niagara
7310152Satgutier@umich.educonst int reg_length			=	5;//Niagara
7410152Satgutier@umich.educonst int instruction_length	=	32;//Niagara
7510152Satgutier@umich.educonst int data_width			=	64;
7610152Satgutier@umich.edu#else
7710152Satgutier@umich.educonst int opcode_length			= 	8;//16;//Niagara
7810152Satgutier@umich.educonst int reg_length			=	7;//Niagara
7910152Satgutier@umich.educonst int instruction_length	=	32;//Niagara
8010152Satgutier@umich.educonst int data_width			=	64;
8110152Satgutier@umich.edu#endif
8210152Satgutier@umich.edu
8310152Satgutier@umich.edu
8410152Satgutier@umich.edu//Caches
8510152Satgutier@umich.edu//itlb
8610152Satgutier@umich.educonst int itlbsize=512;
8710152Satgutier@umich.educonst int itlbassoc=0;//fully
8810152Satgutier@umich.educonst int itlbblocksize=8;
8910152Satgutier@umich.edu//icache
9010152Satgutier@umich.educonst int icachesize=32768;
9110152Satgutier@umich.educonst int icacheassoc=4;
9210152Satgutier@umich.educonst int icacheblocksize=32;
9310152Satgutier@umich.edu//dtlb
9410152Satgutier@umich.educonst int dtlbsize=512;
9510152Satgutier@umich.educonst int dtlbassoc=0;//fully
9610152Satgutier@umich.educonst int dtlbblocksize=8;
9710152Satgutier@umich.edu//dcache
9810152Satgutier@umich.educonst int dcachesize=32768;
9910152Satgutier@umich.educonst int dcacheassoc=4;
10010152Satgutier@umich.educonst int dcacheblocksize=32;
10110152Satgutier@umich.educonst int dcache_write_buffers=8;
10210152Satgutier@umich.edu
10310152Satgutier@umich.edu//cache controllers
10410152Satgutier@umich.edu//IB,
10510152Satgutier@umich.educonst int numIBEntries			=	64;
10610152Satgutier@umich.educonst int IBsize				=	64;//2*4*instruction_length/8*2;
10710152Satgutier@umich.educonst int IBassoc				=	0;//In Niagara it is still fully associ
10810152Satgutier@umich.educonst int IBblocksize			=	4;
10910152Satgutier@umich.edu
11010152Satgutier@umich.edu//IFB and MIL should have the same parameters CAM
11110152Satgutier@umich.educonst int IFBsize=128;//
11210152Satgutier@umich.educonst int IFBassoc=0;//In Niagara it is still fully associ
11310152Satgutier@umich.educonst int IFBblocksize=4;
11410152Satgutier@umich.edu
11510152Satgutier@umich.edu
11610152Satgutier@umich.edu
11710152Satgutier@umich.edu
11810152Satgutier@umich.educonst int icache_write_buffers=8;
11910152Satgutier@umich.edu
12010152Satgutier@umich.edu//register file RAM
12110152Satgutier@umich.educonst int regfilesize=5760;
12210152Satgutier@umich.educonst int regfileassoc=1;
12310152Satgutier@umich.educonst int regfileblocksize=18;
12410152Satgutier@umich.edu//regwin  RAM
12510152Satgutier@umich.educonst int regwinsize=256;
12610152Satgutier@umich.educonst int regwinassoc=1;
12710152Satgutier@umich.educonst int regwinblocksize=8;
12810152Satgutier@umich.edu
12910152Satgutier@umich.edu
13010152Satgutier@umich.edu
13110152Satgutier@umich.edu//store buffer, lsq
13210152Satgutier@umich.educonst int lsqsize=512;
13310152Satgutier@umich.educonst int lsqassoc=0;
13410152Satgutier@umich.educonst int lsqblocksize=8;
13510152Satgutier@umich.edu
13610152Satgutier@umich.edu//data fill queue RAM
13710152Satgutier@umich.educonst int dfqsize=1024;
13810152Satgutier@umich.educonst int dfqassoc=1;
13910152Satgutier@umich.educonst int dfqblocksize=16;
14010152Satgutier@umich.edu
14110152Satgutier@umich.edu//outside the cores
14210152Satgutier@umich.edu//L2 cache bank
14310152Satgutier@umich.educonst int l2cachesize=262144;
14410152Satgutier@umich.educonst int l2cacheassoc=16;
14510152Satgutier@umich.educonst int l2cacheblocksize=64;
14610152Satgutier@umich.edu
14710152Satgutier@umich.edu//L2 directory
14810152Satgutier@umich.educonst int l2dirsize=1024;
14910152Satgutier@umich.educonst int l2dirassoc=0;
15010152Satgutier@umich.educonst int l2dirblocksize=2;
15110152Satgutier@umich.edu
15210152Satgutier@umich.edu//crossbar
15310152Satgutier@umich.edu//PCX
15410152Satgutier@umich.educonst int PCX_NUMBER_INPUT_PORTS_CROSSBAR = 8;
15510152Satgutier@umich.educonst int PCX_NUMBER_OUTPUT_PORTS_CROSSBAR = 9;
15610152Satgutier@umich.educonst int PCX_NUMBER_SIGNALS_PER_PORT_CROSSBAR =144;
15710152Satgutier@umich.edu//PCX buffer RAM
15810152Satgutier@umich.educonst int pcx_buffersize=1024;
15910152Satgutier@umich.educonst int pcx_bufferassoc=1;
16010152Satgutier@umich.educonst int pcx_bufferblocksize=32;
16110152Satgutier@umich.educonst int pcx_numbuffer=5;
16210152Satgutier@umich.edu//pcx arbiter
16310152Satgutier@umich.educonst int pcx_arbsize=128;
16410152Satgutier@umich.educonst int pcx_arbassoc=1;
16510152Satgutier@umich.educonst int pcx_arbblocksize=2;
16610152Satgutier@umich.educonst int pcx_numarb=5;
16710152Satgutier@umich.edu
16810152Satgutier@umich.edu//CPX
16910152Satgutier@umich.educonst int CPX_NUMBER_INPUT_PORTS_CROSSBAR = 5;
17010152Satgutier@umich.educonst int CPX_NUMBER_OUTPUT_PORTS_CROSSBAR = 8;
17110152Satgutier@umich.educonst int CPX_NUMBER_SIGNALS_PER_PORT_CROSSBAR =150;
17210152Satgutier@umich.edu//CPX buffer RAM
17310152Satgutier@umich.educonst int cpx_buffersize=1024;
17410152Satgutier@umich.educonst int cpx_bufferassoc=1;
17510152Satgutier@umich.educonst int cpx_bufferblocksize=32;
17610152Satgutier@umich.educonst int cpx_numbuffer=8;
17710152Satgutier@umich.edu//cpx arbiter
17810152Satgutier@umich.educonst int cpx_arbsize=128;
17910152Satgutier@umich.educonst int cpx_arbassoc=1;
18010152Satgutier@umich.educonst int cpx_arbblocksize=2;
18110152Satgutier@umich.educonst int cpx_numarb=8;
18210152Satgutier@umich.edu
18310152Satgutier@umich.edu
18410152Satgutier@umich.edu
18510152Satgutier@umich.edu
18610152Satgutier@umich.edu
18710152Satgutier@umich.educonst int numPhysFloatRegs=256;
18810152Satgutier@umich.educonst int numPhysIntRegs=32;
18910152Satgutier@umich.educonst int numROBEntries=192;
19010152Satgutier@umich.educonst int umRobs=1;
19110152Satgutier@umich.edu
19210152Satgutier@umich.educonst int BTBEntries=4096;
19310152Satgutier@umich.educonst int BTBTagSize=16;
19410152Satgutier@umich.educonst int LFSTSize=1024;
19510152Satgutier@umich.educonst int LQEntries=32;
19610152Satgutier@umich.educonst int RASSize=16;
19710152Satgutier@umich.educonst int SQEntries=32;
19810152Satgutier@umich.educonst int SSITSize=1024;
19910152Satgutier@umich.educonst int activity=0;
20010152Satgutier@umich.educonst int backComSize=5;
20110152Satgutier@umich.educonst int cachePorts=200;
20210152Satgutier@umich.educonst int choiceCtrBits=2;
20310152Satgutier@umich.educonst int choicePredictorSize=8192;
20410152Satgutier@umich.edu
20510152Satgutier@umich.edu
20610152Satgutier@umich.educonst int commitWidth=8;
20710152Satgutier@umich.educonst int decodeWidth=8;
20810152Satgutier@umich.educonst int dispatchWidth=8;
20910152Satgutier@umich.educonst int fetchWidth=8;
21010152Satgutier@umich.educonst int issueWidth=1;
21110152Satgutier@umich.educonst int renameWidth=8;
21210152Satgutier@umich.edu//what is this forwardComSize=5??
21310152Satgutier@umich.edu
21410152Satgutier@umich.educonst int globalCtrBits=2;
21510152Satgutier@umich.educonst int globalHistoryBits=13;
21610152Satgutier@umich.educonst int globalPredictorSize=8192;
21710152Satgutier@umich.edu
21810152Satgutier@umich.edu
21910152Satgutier@umich.edu
22010152Satgutier@umich.educonst int localCtrBits=2;
22110152Satgutier@umich.educonst int localHistoryBits=11;
22210152Satgutier@umich.educonst int localHistoryTableSize=2048;
22310152Satgutier@umich.educonst int localPredictorSize=2048;
22410152Satgutier@umich.edu
22510152Satgutier@umich.educonst double Woutdrvnandn	=30 *0.09;//(24.0 * LSCALE)
22610152Satgutier@umich.educonst double Woutdrvnandp	=12.5 *0.09;//(10.0 * LSCALE)
22710152Satgutier@umich.educonst double Woutdrvnorn	=7.5*0.09;//(6.0 * LSCALE)
22810152Satgutier@umich.educonst double Woutdrvnorp  =50 * 0.09;//	(40.0 * LSCALE)
22910152Satgutier@umich.educonst double Woutdrivern	=60*0.09;//(48.0 * LSCALE)
23010152Satgutier@umich.educonst double Woutdriverp	=100 * 0.09;//(80.0 * LSCALE)
23110152Satgutier@umich.edu
23210152Satgutier@umich.edu/*
23310152Satgutier@umich.edusmtCommitPolicy=RoundRobin
23410152Satgutier@umich.edusmtFetchPolicy=SingleThread
23510152Satgutier@umich.edusmtIQPolicy=Partitioned
23610152Satgutier@umich.edusmtIQThreshold=100
23710152Satgutier@umich.edusmtLSQPolicy=Partitioned
23810152Satgutier@umich.edusmtLSQThreshold=100
23910152Satgutier@umich.edusmtNumFetchingThreads=1
24010152Satgutier@umich.edusmtROBPolicy=Partitioned
24110152Satgutier@umich.edusmtROBThreshold=100
24210152Satgutier@umich.edusquashWidth=8
24310152Satgutier@umich.edu*/
24410152Satgutier@umich.edu
24510152Satgutier@umich.edu/*
24610152Satgutier@umich.eduprefetch_access=false
24710152Satgutier@umich.eduprefetch_cache_check_push=true
24810152Satgutier@umich.eduprefetch_data_accesses_only=false
24910152Satgutier@umich.eduprefetch_degree=1
25010152Satgutier@umich.eduprefetch_latency=10000
25110152Satgutier@umich.eduprefetch_miss=false
25210152Satgutier@umich.eduprefetch_past_page=false
25310152Satgutier@umich.eduprefetch_policy=none
25410152Satgutier@umich.eduprefetch_serial_squash=false
25510152Satgutier@umich.eduprefetch_use_cpu_id=true
25610152Satgutier@umich.eduprefetcher_size=100
25710152Satgutier@umich.eduprioritizeRequests=false
25810152Satgutier@umich.edurepl=Null
25910152Satgutier@umich.edu
26010152Satgutier@umich.edu
26110152Satgutier@umich.edusplit=false
26210152Satgutier@umich.edusplit_size=0
26310152Satgutier@umich.edusubblock_size=0
26410152Satgutier@umich.edutgts_per_mshr=20
26510152Satgutier@umich.edutrace_addr=0
26610152Satgutier@umich.edutwo_queue=false
26710152Satgutier@umich.edu
26810152Satgutier@umich.educpu_side=system.cpu0.dcache_port
26910152Satgutier@umich.edumem_side=system.tol2bus.port[2]
27010152Satgutier@umich.edu*/
27110152Satgutier@umich.edu
27210152Satgutier@umich.edu//[system.cpu0.dtb]
27310152Satgutier@umich.edu//type=AlphaDT
27410152Satgutier@umich.edu
27510152Satgutier@umich.edu
27610152Satgutier@umich.edu#endif /* ARCH_CONST_H_ */
277