Otawa
0.10
|
This module provides information about the host platform where the loaded program will run on. More...
Classes | |
class | otawa::hard::ModeTransition |
Representation of a memory bank transition. More... | |
class | otawa::hard::Mode |
A working mode for the hardware memory. More... | |
class | otawa::hard::Bus |
A bus that tie together several memory banks. More... | |
class | otawa::hard::Bank |
A bank in the memory. More... | |
class | otawa::hard::Memory |
Class to represent the whole memory of the platform. More... | |
class | otawa::hard::Processor |
Description of a processor pipeline. More... | |
class | otawa::hard::Stage |
This class represents a stage in a pipeline. More... | |
class | otawa::hard::Queue |
The instructions queues stores instruction that come from one stage to another one. More... | |
class | otawa::hard::FunctionalUnit |
A functional unit is specialized in the computation of some kinds of instructions. More... | |
class | otawa::hard::Dispatch |
A dispatch object allows to map some kinds of instructions to a functional unit. More... | |
class | otawa::hard::Register |
Objects of this class are simple machine register, more accurately unbreakable atomic registers. More... | |
class | otawa::hard::RegBank |
This class represents a bank of registers. More... | |
class | otawa::hard::PlainBank |
A plain bank is a register bank whose registers have the same size and the same type. More... | |
class | otawa::hard::MeltedBank |
A melted bank may contains registers with different sizes and kinds. More... | |
class | otawa::hard::Cache |
This class contains the configuration of a level of cache of processor. More... | |
class | otawa::hard::CacheConfiguration |
This class represents the full configuration of caches of a processor. More... | |
class | otawa::hard::Platform |
This class records information about the architecture where the processed program will run. More... | |
class | otawa::hard::Platform::Identification |
class | otawa::hard::PureCache |
This module provides information about the host platform where the loaded program will run on.
It includes descriptions for:
The ISA (Instruction Set architecture) is provided by the executable loader. It mainly includes register description and some other description (length of instructions and so on).
Other hardware items like processor, caches and memory are loaded by their own processor and configuration is passed as usual in the configuration property list passed to run a code processor. These configuration properties may be:
A code processor may get these hardware items from the workspace if it requires the corresponding feature:
We describe here the format of processor configuration expressed in XML. This file is unserialized according the elm::serial2 module and therefore supports all its features. The XML format notation is detailed in hard_format .
A processor is made of several stages linked by queues. A stage has a type that may be:
The "fus" contains the list of available functional units. The dispatching of instructions between the functional units is given in the "dispatch" element.
The "inst" allows to dispatch instruction in the FU.