Documentation

Models and Abstractions

Approximations in VArchC are described using the ADeLe language according to models and abstractions. These formally represent the behavioral aspects of each approximation in an architectural level. In VArchC, all models are C++ structures.

Groups

Groups are used to group similar instructions together and define some models to all instructions in the group. Thus, for example, if a large number of instructions are affected by different approximations, a group may be conveniently define containing these instructions.

See The Group Abstraction for more information and examples on how to declare groups.

Approximations

Approximations are abstractions of an approximated state in the target architecture. When an approximation is activated, all the models associated with it are used to model the behavior of instructions.

See The Approximation Abstraction for more information and examples on how to declare approximations.

Word

Words are the primary data abstraction within ADeLe. They represent a data or address word for the target architecture. All the instructions operate on words when dealing with data.

See The Word Abstraction for more information and usage examples.

Instruction Model

Instruction models define the final behavior of an approximation. They tell the simulator what should happen to an instruction execution when it is affected by an approximation. There are two types of instruction models:

  • The implementation modifiers directly affect the operation performed by an instruction, augmenting it or replacing by a different operation. These can represent, for example, underdesigned functional units at a target architecture.

  • The data modifiers affects only the data read or written by an instruction execution, with no information of what is the operation being performed. These can represent, for example, precision tuning approximations or error-prone memories.

See The Instruction Model for more information and instruction model examples.

Energy Model

Energy models define how much energy one single instruction execution uses.

See The Energy Model for more information and energy model examples.

Probability Model

Probability models define when an approximation behavior should take place or not.

See The Probability Model for more information and probability model examples.

Operating Parameters

The operating parameters are a key integration mechanism between models. They are a data structure containing information from the simulation architecture that is visible and customizable from all models. They can represent, for example, physical parameters of the target architecture.

See Operating Parameters for more information and operating parameters examples.


More documentation

  1. Introduction to VArchC
  2. Installing VArchC
  3. The ADeLe Language
    1. ADeLe Design Overview
    2. The ADeLe Description File
    3. Models and Abstractions
      1. The Group Abstraction
      2. The Approximation Abstraction
      3. The Word Abstraction
      4. The Instruction Model
      5. The Energy Model
      6. The Probability Model
      7. The Operating Parameters