 
#
# default sim-outorder / tomasulo configuration
#

# random number generator seed (0 for timer seed)
-seed                             1 

# instruction fetch queue size (in insts)
-fetch:ifqsize                    4 

# extra branch mis-prediction latency
-fetch:mplat                      3 

# branch predictor type {nottaken|taken|perfect|bimod|2lev}
-bpred                        bimod 

# bimodal predictor BTB size
-bpred:bimod                   2048 

# 2-level predictor config (<l1size> <l2size> <hist_size>)
-bpred:2lev            1 1024 8 

# instruction decode B/W (insts/cycle)
-decode:width                     4 

# instruction issue B/W (insts/cycle)
-issue:width                      4 

# run pipeline with in-order issue
-issue:inorder                false 

# issue instructions down wrong execution paths
-issue:wrongpath               true 

# register update unit (RUU) size
-ruu:size                        16 

# load/store queue (LSQ) size
-lsq:size                         8 

# l1 data cache config, i.e., {<config>|none}
-cache:dl1             dl1:128:32:4:l 

# l1 data cache hit latency (in cycles)
-cache:dl1lat                     1 

# l2 data cache config, i.e., {<config>|none}
-cache:dl2             ul2:1024:64:4:l 

# l2 data cache hit latency (in cycles)
-cache:dl2lat                     6 

# l1 inst cache config, i.e., {<config>|dl1|dl2|none}
-cache:il1             il1:512:32:1:l 

# l1 instruction cache hit latency (in cycles)
-cache:il1lat                     1 

# l2 instruction cache config, i.e., {<config>|dl2|none}
-cache:il2                      dl2 

# l2 instruction cache hit latency (in cycles)
-cache:il2lat                     6 

# flush caches on system calls
-cache:flush                  false 

# convert 64-bit inst addresses to 32-bit inst equivalents
-cache:icompress              false 

# memory access latency (<first_chunk> <inter_chunk>)
-mem:lat               18 2 

# memory access bus width (in bytes)
-mem:width                        8 

# instruction TLB config, i.e., {<config>|none}
-tlb:itlb              itlb:16:4096:4:l 

# data TLB config, i.e., {<config>|none}
-tlb:dtlb              dtlb:32:4096:4:l 

# inst/data TLB miss latency (in cycles)
-tlb:lat                         30 

# total number of integer ALU's available
-res:ialu                         4 

# total number of integer multiplier/dividers available
-res:imult                        1 

# total number of memory system ports available (to CPU)
-res:memport                      2 

# total number of floating point ALU's available
-res:fpalu                        4 

# total number of floating point multiplier/dividers available
-res:fpmult                       1 

# operate in backward-compatible bugs mode (for testing only)
-bugcompat                    false 


#Algoritomo di Tomasulo ----Parametri-----

#Numero di Functional Units
-n_fu_NA		1		#Numero di functional units per le operazioni senza FU (Syscall)
-n_fu_IntALU		2		#Numero di functional units per le ALU intere
-n_fu_IntMULT		1		#Numero di functional units per i moltiplicatori interi
-n_fu_IntDIV		1		#Numero di function units per i divisori interi
-n_fu_FloatADD		1		#Numero di function units per gli addizionatori floating point
-n_fu_FloatCMP		1		#Numero di function units per i comparatori floating point
-n_fu_FloatCVT		1		#Numero di function units per le conversioni da float a intere e viceversa
-n_fu_FloatMULT		1		#Numero di function units per le moltiplicazioni floating point
-n_fu_FloatDIV		1		#Numero di function units per le divisioni floating point
-n_fu_FloatSQRT		1		#Numero di function units per le floating sqrt
-n_fu_RdPort		1		#Numero di function units per le Read Port
-n_fu_WrPort		1		#Numero di function units per le Write Port

#Numero di Reservation Station per TIPO di FU
-n_rs_NA		1		#Numero di reservation station per le operazioni senza FU (Syscall)
-n_rs_IntALU		4		#Numero di reservation station per le ALU intere
-n_rs_IntMULT		1		#Numero di reservation station per i moltiplicatori interi
-n_rs_IntDIV		1		#Numero di reservation station per i divisori interi
-n_rs_FloatADD		1		#Numero di reservation station per gli addizionatori floating point
-n_rs_FloatCMP		1		#Numero di reservation station per i comparatori floating point
-n_rs_FloatCVT		1		#Numero di reservation station per le conversioni da float a intere e viceversa
-n_rs_FloatMULT		1		#Numero di reservation station per le moltiplicazioni floating point
-n_rs_FloatDIV		1		#Numero di reservation station per le divisioni floating point
-n_rs_FloatSQRT		1		#Numero di reservation station per le floating sqrt
-n_rs_RdPort		1		#Numero di reservation station per le Read Port
-n_rs_WrPort		1		#Numero di reservation station per le Write Port

#Numeri di cicli necessari per il completamento delle istruzioni del TIPO di FU
-Num_Cicli_NA		1		#Numero di cicli per fare le operazioni senza FU (Syscall)
-Num_Cicli_IntALU	1		#Numero di cicli per fare IntALU
-Num_Cicli_IntMULT	1		#Numero di cicli per fare IntMULT
-Num_Cicli_IntDIV	1		#Numero di cicli per fare IntDIV
-Num_Cicli_FloatADD	1		#Numero di cicli per fare FloatADD
-Num_Cicli_FloatCMP	1		#Numero di cicli per fare FloatCMP
-Num_Cicli_FloatCVT	1		#Numero di cicli per fare FloatCVT
-Num_Cicli_FloatMULT	1		#Numero di cicli per fare FloatMULT
-Num_Cicli_FloatDIV	1		#Numero di cicli per fare FloatDIV
-Num_Cicli_FloatSQRT	1		#Numero di cicli per fare FloatSQRT
-Num_Cicli_RdPort	1		#Numero di cicli per fare RdPort
-Num_Cicli_WrPort 	1		#Numero di cicli per fare WrPort

