## Reservation Table Analyzer

This software is used to analyze pipeline reservation tables. If you already know what the reservation table is and how to analyze it, you can just click the Start button below to start the Reservation Table Analyzer in JavaScript. Otherwise you can read through the following documents about the reservation table and its analysis method first then start the Reservation Table Analyzer in JavaScript. Enjoy it!

### The Concept of a Reservation Table

A reservation table is a way of representing the task flow pattern of a pipelined sytem. A reservation table has several rows and columns. Each row of the reservation table represents one resource of the pipeline and each column represents one time-slice of the pipeline. For example, if in a pipelined system, there are four resources and five time-slices, then, the reservation table will have four rows and five columns. All the elements of the table are either 0 or 1. If one resource (say, resource i) is used in a time-slice (say time-slice j), then the (i,j)-th element of the table will have the entry 1. On the other hand, if a resource is not used in a particular time-slice, then that entry of the table will have the value 0.

### An Analysis Example of Reservation Table

Suppose that we have 4 resources and 6 time-slices and the usage of resources is as follows :

1. resource 1 is used in time-slices 1, 3, 6.
2. resource 2 is used in time-slice 2.
3. resource 3 is used in time-slices 2, 4.
4. resource 4 is used in time-slice 5.

The corresponding reservation table will be as follows :

 index time-1 time-2 time-3 time-4 time-5 time-6 resource 1 1 0 1 0 0 1 resource 2 0 1 0 0 0 0 resource 3 0 1 0 1 0 0 resource 4 0 0 0 0 1 0

Often to make the table look simpler, the 0 entries are represented by blank and 1 entries are represented by a 'X'. We have followed this second approach when we display the reservation table. The above table will look now like

 index time-1 time-2 time-3 time-4 time-5 time-6 resource 1 X X X resource 2 X resource 3 X X resource 4 X

### How to use this Software

Now, if you try to analyze this reservation table, you will get different options. try to explore those one by one.

You will get the following outputs:

1. Forbidden Latencies are : 0, 2, 3, 5
2. Pipeline collision Vector is : (101101)
3. Greedy Cycle is : (1, 6)*
4. Minimal Average Latency is : 3.5
5. Throughput is 0.28
6. State Diagram is

There are 3 states in the State Diagram
State [1] represents 101101
State [2] represents 111111
State [3] represents 111101

State 1 (101101)
Reaches state 2 (111111) after 1 cycle
Reaches state 3 (111101) after 4 cycles
Reaches state 1 (101101) after 6 or more cycles

State 2 (111111)
Reaches state 1 (101101) after 6 or more cycles

State 3 (111101)
Reaches state 3 (111101) after 4 cycles
Reaches state 1 (101101) after 6 or more cycles

You may explore the software by clicking the following Start button now!