[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. Overview

ISIS is a class library written in C++ mainly targeted to computer simulation of parallel computers.

Various types of simulators have been implemented for various purpose of simulation. Most of simulators are developed for specific architectures parallel machines, they cannot used for difference types. Various simulation methods must be selected for the target machine. Therefore, a dedicated simulator tends to be developed when a new machine is evaluated. This causes a serious overhead for architecture designers.

To address this problem, ISIS represents hardware functions such as processors and memory modules with a class called UNIT. By connecting UNITs, a target machine can be described. Fundamental elements of a parallel computer are equipped as UNITs in ISIS library, and just with combining such UNITs, a standard parallel machine can be structured. If a special functional block which is not supported in ISIS is required, users can define themselves. Thus, most parallel machines can be easily structured using ISIS.

In ISIS, a computer is modeled with UNITs, PACKETs, and PORTs.

UNIT
UNIT represents a functional block. Each unit operates independently synchronized with a clock. Its operation is only influenced with communication between connected modules.

PACKET
PACKET represents information which exchanged between UNITs. For example, memory access signal on a bus, and flits exchanged between routers are treated as packets.

PORT
PORT represents a connection point of UNITs. Every UNIT is connected through PORTs. Sending and receiving PACKETS are also done through PORTs.

ISIS is a class library written in C++. PACKETs, PORTs and UNITs are implemented as a class and they forms class hierarchy using inheritance.

When using ISIS, source code which includes header files for required classes is compiled, and linked with ISIS library to generate execution code of a simulator. Description of the top module is done by users.

Classes supported in ISIS are classified as follows:

support classes
Support classes are general classes which can be used outside ISIS environment. They are used for implementation of other classes. See section 4. Support Classes.

packet classes
Packet classes represent information between UNITs. See section 5. Packet.

port classes
Port classes mediate connection between UNITs, and PACKETs transfer. They are composed in a UNIT, and connected with PORTs in other UNITs. When a UNIT requests to send a PACKET to the port, a UNIT connected through the port can receive the PACKET. See section 6. Port.

device classes
Device classes represent devices used in a computer. They support only functions directly supported with hardware, and do not have its clock. They are used as parts for building a UNIT. See section 7. Device.

unit classes
UNIT classes includes a state machine. Intelligent functional blocks are represented as UNITs. See section 8. Unit.

utilities
Utilities are specialized classes for ISIS, which cannot be classified into others. See section 9. Utilities.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Masaki WAKABAYASHI on September, 3 2003 using texi2html