Services & Capabilities

This page details what are Capabilities, Services, Client and Service Interface. The list of the available capabilities on the repository are presented on the available capabilities page.

Definition

Within the UNISIM environment, timing simulators are defined as a set of modules corresponding to the hardware blocks composing the simulated architecture.

But some other kind of components can also be reused across simulator, while not corresponding to some hardware component, such as the Elf Loader allowing to load the simulated benchmark in a user level-simulator, the component performing the system-call translation, the one gathering some information about power consumption, and so on...

We define as Capabilities all those functionalities beyond performance evaluation. In the figure below, the modules composing the simulator are in yellow, whereas the capabilities are in blue.

Category of services

Services can be split into different sub-categories:

Capabilities, Services, Clients & Interfaces

Let’s consider the simple simulator below, composed of a CPU module connected to a Memory module, with a Loader Capability and a Power PC System-Call Capability.

A notion of Client / Server is associated with capabilities:

The figure below summarize all those communications related to those Client / Service interactions:

A set of methods associated with a client / service interaction is called an interface. The figure above defines two different interfaces:

Services and clients are indeed related to an interface, and should only communicate if they have a matching interface. In the example above: