head     1.4;
branch   ;
access   ;
symbols  ;
locks    ; strict;
comment  @# @;


1.4
date     94.05.15.11.15.03;  author dfk;  state Exp;
branches ;
next     1.3;

1.3
date     94.05.12.00.00.17;  author dfk;  state Exp;
branches ;
next     1.2;

1.2
date     93.02.26.00.36.33;  author dfk;  state Exp;
branches ;
next     1.1;

1.1
date     93.02.26.00.35.05;  author dfk;  state Exp;
branches ;
next     ;


desc
@setup for config
@


1.4
log
@changed EVENTS flag to WATCH_USER, for consistency with others
@
text
@files {
    "sim", "conf", "cache", "OS", "mem", "net", "ipi"
}

menu top {
    choice BUS "Bus Based" {
	set(YESCACHE),
	clear(NOCACHE),
	clear(SEND_RECEIVE),
	display(bus)},
    choice NET "Network Based" {
        set(MULT_RL),
	clear(SINGLE_RL),
	clear(NOBUSY),
        display(net)}
}

menu bus {
    choice SINGLE_RL "Single Ready List" {
	display(proc),
	display(busparam),
	display(memory),
	display(cache)},
    choice MULT_RL "Multiple Ready Lists" { 
	display(proc),
	display(busparam),
	display(memory),
	display(cache)}
}

param busparam {
    NO_OF_MODULES "Number of Memory Modules" [1, 1024],
}

menu net {
    choice N_DIRECT "Direct Network" {
	set(NO_OF_PROCESSORS, Nk ^ Ndim),
	set(NO_OF_MODULES, NO_OF_PROCESSORS),
	display(direct)},
    choice N_INDIRECT "Indirect Network" {
	clear(NET_EXACT),
	display(cache_indir)}
}

param proc {
    NO_OF_PROCESSORS "Number of Processors" [1, 1024]
}

menu direct {
    choice N_UNIDIR "Unidirectional" {
	display(cache_direct)},
    choice N_BIDIR "Bidirectional" {
	display(cache_direct)}
}

menu cache_direct {
    choice YESCACHE "Use Caches" {
	display(directparam),
	display(memory),
        display(cache)},
    choice NOCACHE "No caches" {
	display(directparam),
	display(memory)}
}

menu cache_indir {
    choice YESCACHE "Use Caches" {
	display(indirparam),
	display(memory),
        display(cache)},
    choice NOCACHE "No caches" {
	display(indirparam),
	display(memory)}
}

param directparam {
    Nk "k-ary Radix" [1, 1024]
	{ set(NO_OF_PROCESSORS, Nk ^ Ndim),
	  set(NO_OF_MODULES, NO_OF_PROCESSORS) },
    Ndim "n-cube Dimension" [1, 10]
        { set(NO_OF_PROCESSORS, Nk ^ Ndim),
	  set(NO_OF_MODULES, NO_OF_PROCESSORS) },
    watch "Number of Processors:" (NO_OF_PROCESSORS),
    MAX_PACKET_WORDS "Packet Length in Words" [3, 1024],
    SWITCH_DELAY "Switch Delay" [0, 64],
    WIRE_DELAY "Wire Delay" [0, 16],
    NET_EXACT "Exact Simulation",
    ALEWIFE "Alewife Version",
    SEND_RECEIVE "Sync. Send/Receive",
    PARAGON "Paragon-like network"
}

param indirparam {
    NO_OF_PROCESSORS "Number of Processors" [1, 1024]
	{ set(NO_OF_MODULES, NO_OF_PROCESSORS) },
    NET_STAGES "Number of Stages" [2, 8],
    MAX_PACKET_WORDS "Packet Length in Words" [3, 1024],
    SWITCH_DELAY "Switch Delay" [0, 64],
    WIRE_DELAY "Wire Delay" [0, 16]
}

menu OS {
    choice SCHED_FCFS "FCFS Scheduler" {
	display(OSsem)},
    choice SCHED_SIMPLE  "Round-robin Scheduler" {
	display(OSsem)},
    choice SCHED_PRIORITY  "Priority-flow Scheduler" {
	display(OSsem)}
}

menu OSsem {
    choice SEMA_TTSET "TTSET Semaphores" {
	display(OSspin),
	display(OSparam)},
    choice SEMA_FEBIT "F/E Semaphores" {
	display(OSparam)},
    choice SEMA_USER "User Semaphores" {
        display(OSparam)}
}

param OSspin {
    TTSET_DELAY "TTSET backoff delay" [0, 32000]
}

param OSparam {
    OS_QUANTUM "Operating System Quantum" [1000, 10000],
    USERMAIN_STACK "usermain stack blocks" [4, 256],
    OS_CALL_PRIORITY "Ihandler Priority",
    RANDOMREQ "Use Random Seed",
    FATAL "Fatal error in OS calls",
    TIMER_PERIOD "Timer Interrupt Period",
    NOBUSY "No busy waiting (for ttset)"
}

param cache {
    CACHE_BITS "Bits in Cache Size" [4, 12],
    LINE_BITS  "Bits in Line Size" [1, 6],
    SET_SIZE "Set Size" [1, 8],
    watch "Total Cache Size:" (SET_SIZE * 2^(CACHE_BITS + LINE_BITS)),
    CACHEWITHDATA "Software Coherence"
}

param memory {
    MODULE_BITS "Bits in Memory Size" [10, 16],
    watch "Memory Modules:" (NO_OF_MODULES)
}

param simulator {
    SIM_QUANTUM "Simulator Quantum" [1, 4096],
    MAX_THREADS "Thread Limit" [1024, 8192],
    STK_BLK_SIZE "Stack Block Size" [512, 8192],
    STK_THRESHOLD "Stack Overflow Threshold" [256, 2048],
    MAX_STKBLKS "Stack Block Pool Size" [2048, 16384],
    MAX_SIMREQS "Simulator Request Limit" [64, 1024],
    MAX_INTR_TYPES "Maximum Interrupt Types" [16, 1024],
    INTR_PER_PROCESSOR "Maximum Pending Interrupts" [4, 20],
    MAX_SEMAPHORES "Maximum Number of Semaphores" [16, 16384],
    MAX_PACKETS "Maximum Number of Packets" [128, 4096]
}

param statistics {
    WATCH_USER "Record Events",
    WATCH_CACHE "Watch Cache Events",
    WATCH_THREADS "Watch Thread Events",
    WATCH_IDLE "Watch Idle Events",
    WATCH_SEM "Watch Semaphore Events",
    WATCH_BUS "Watch bus contention",
    WATCH_NET "Watch net contention"
}

param latencies {
    MEM_ACCESS_LATENCY "Memory Access",
    CACHE_ACCESS_LATENCY "Cache Access",
    RESCHEDULE_LATENCY "Reschedule",
    INTR_LATENCY "Interrupt"
}
@


1.3
log
@added PARAGON flag
@
text
@d162 1
a162 1
    EVENTS "Record Events",
@


1.2
log
@added my scheduler changes
@
text
@d89 2
a90 1
    SEND_RECEIVE "Sync. Send/Receive"
d162 1
@


1.1
log
@Initial revision
@
text
@d102 9
@
