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!

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.

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

- resource 1 is used in time-slices 1, 3, 6.
- resource 2 is used in time-slice 2.
- resource 3 is used in time-slices 2, 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 |

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:

- Forbidden Latencies are : 0, 2, 3, 5
- Pipeline collision Vector is : (101101)
- Greedy Cycle is : (1, 6)*
- Minimal Average Latency is : 3.5
- Throughput is 0.28
- 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!