Otawa
0.10
|
Représentation of a processor (to be used to build a ParExeGraph). More...
#include <otawa/parexegraph/ParExeProc.h>
Classes | |
class | QueueIterator |
Iterator for the instruction queues. More... | |
Public Types | |
enum | instruction_category_t { IALU = 0, FALU = 1, MEMORY = 2, CONTROL = 3, MUL = 4, DIV = 5, INST_CATEGORY_NUMBER } |
typedef enum otawa::ParExeProc::instruction_category_t | instruction_category_t |
Public Member Functions | |
ParExeProc (const hard::Processor *proc) | |
Constructor. More... | |
void | addQueue (elm::String name, int size) |
Add an instruction queue to the processor. More... | |
ParExeQueue * | queue (int index) |
Returns a pointer to the queue specified by index. More... | |
void | setFetchStage (ParExeStage *stage) |
Declares a stage as the fetch stage (it will undergo a special processing when building a ParExeGraph). More... | |
ParExeStage * | fetchStage (void) |
void | setExecStage (ParExeStage *stage) |
Declares a stage as the execution stage (it will undergo a special processing when building a ParExeGraph). More... | |
ParExeStage * | execStage (void) |
ParExeStage * | lastStage (void) |
bool | isLastStage (ParExeStage *stage) |
ParExePipeline * | pipeline () |
elm::genstruct::SLList < ParExeStage * > * | listOfInorderStages () |
Private Attributes | |
elm::genstruct::Vector < ParExeQueue * > | _queues |
ParExePipeline | _pipeline |
elm::genstruct::SLList < ParExeStage * > | _inorder_stages |
ParExeStage * | _fetch_stage |
ParExeStage * | _exec_stage |
Représentation of a processor (to be used to build a ParExeGraph).
A processor is a pipeline, with a number of stages, among which a fetch stage and an execution stage, and a set of instruction queues.
otawa::ParExeProc::ParExeProc | ( | const hard::Processor * | proc | ) |
Constructor.
Description | of the processor. |
References _inorder_stages, _pipeline, otawa::ParExeStage::addBinding(), otawa::ParExeStage::addFunctionalUnit(), addQueue(), otawa::ParExePipeline::addStage(), otawa::ParExeStage::COMMIT, otawa::hard::Stage::COMMIT, otawa::ParExeStage::DECODE, otawa::hard::Stage::EXEC, otawa::ParExeStage::EXECUTE, otawa::ParExeStage::FETCH, otawa::hard::Stage::FETCH, otawa::ParExePipeline::firstStage(), otawa::ParExeStage::fu(), otawa::hard::Stage::getDispatch(), otawa::hard::Stage::getFUs(), otawa::hard::PipelineUnit::getLatency(), otawa::hard::PipelineUnit::getName(), otawa::hard::Processor::getQueues(), otawa::hard::Processor::getStages(), otawa::hard::Stage::getType(), otawa::hard::PipelineUnit::getWidth(), otawa::ParExeStage::hasNodes(), otawa::ParExeStage::IN_ORDER, otawa::hard::FunctionalUnit::isPipelined(), otawa::hard::Stage::LAZY, otawa::ParExeStage::numFus(), otawa::ParExePipeline::numStages(), otawa::ParExeStage::OUT_OF_ORDER, queue(), setExecStage(), and setFetchStage().
|
inline |
Add an instruction queue to the processor.
name | Name of the queue. |
size | Size (capacity) of the queue. |
Referenced by ParExeProc().
|
inline |
Referenced by otawa::ParExeGraph::addEdgesForDataDependencies(), and otawa::ParExeGraph::addEdgesForMemoryOrder().
|
inline |
Referenced by otawa::ParExeGraph::addEdgesForFetch().
|
inline |
stage | Pointer to a stage. |
|
inline |
|
inline |
Referenced by otawa::ParExeGraph::addEdgesForProgramOrder().
|
inline |
Referenced by otawa::ParExeGraph::addEdgesForQueues(), otawa::ParExeGraph::createNodes(), otawa::ParExeGraph::delta(), otawa::ParExeGraph::findContendingNodes(), otawa::ResourceList::ResourceList(), and otawa::ParExeGraph::~ParExeGraph().
|
inline |
Returns a pointer to the queue specified by index.
Queues are numbered when they are added to the processor.
index | Index of the queue. |
Referenced by ParExeProc().
|
inline |
Declares a stage as the execution stage (it will undergo a special processing when building a ParExeGraph).
stage | Pointer to the stage. |
Referenced by ParExeProc().
|
inline |
Declares a stage as the fetch stage (it will undergo a special processing when building a ParExeGraph).
stage | Pointer to the stage. |
Referenced by ParExeProc().
|
private |
|
private |
|
private |
Referenced by ParExeProc().
|
private |
Referenced by ParExeProc().
|
private |