Here are some screenshots from Chronos. The backend (WCET estimation engine) has
been developed in C and the frontend (GUI plus limited flow analysis) has been
developed in Java.
Set directories for SimpleScalar GCC bin, lp\_solve,
and simplesim-3.0
After you install the simplescalar gcc,ILP_solver and simplesim-3.0 on your own machine,you need to inform
Chronos where these tools are.Choose "Simplescalar gcc bin directory" from "Option" menu. A standard directory
dialog box will appear and select bin the directory Similarly,inform Chronos the directories for
lp_solve(contains executable lp_solve and a library libxliCPLEX.so) and simplesim-3.0 by selecting
"ILP-solver directory" and "Simplesim-3.0 directory",respectively from "Option" Menu.

Open a benchmark directory
Choose the command ``Open File..." from the ``File" menu. A
standard file dialog box will appear on the screen. After
selecting the benchmark directory from the list box, Chronos will
load the source code, and it will take the following actions.
First it invokes SimpleScalar GCC to compile the benchmark. Next
it disassembles the binary executable and reconstructs the control
flow graph (CFG), which is shown in the third pane. Chronos also dumps out the assembly code on
the fourth pane with basic block annotations.

Set user constraints
Chronos provides an user interface for giving additional flow
constraints. Some of the user constraints are compulsory, like
loop bounds that cannot be automatically derived by Chronos; or
constraints that can further limit the possible program paths,
like bounds on if-then-else branches. Loop bounds can be
given in two forms. If an inner loop executes fixed number of
times when entered from its parent loop or procedure, the user can
select "Loop bound constraints" from the option menu and simply
give the loop bound per invocation. Otherwise, a bound on the
overall iterations of the inner loop should be given for better
accuracy. In this case, select "Other constraints" from the
"Option" menu and give a constraint like what is shown in
the following figure.
Set processor configuration
Choose the command "Processor configuration" from the "Run" menu and a pop-up dialog requests the user to set some processor configuration.The user
can now configure the processor model via the following interfaces. Since Chronos does not (yet) model all the features of a superscalar processor, the interface allows the user to only configure the features that have been modeled.

Estimate
After you set some constraints or reset some proecessor parameters. Choose the command "Estimate" from the "Run" menu, Chronos will invoke the backend
to estimate the WCET. The WCET, number of branch mispredictions, as well as number of cache misses are printed out in the "Estimation Result" pane.

Simulate
Choose the command "Simulate" form the "Run" menu, the Chronos will invoke sim-outorder to simulate the program with the same configuration as estimation.
The simulation cycles, number of branch mispredictions, as well as number of cache misses are printed out in the "Simulation Result" pane. Now the user can
compare the estimation and simulation result.

|