|
OpenASIP 2.2
|
#include <TransportPipeline.hh>


Public Member Functions | |
| TransportPipeline (GCUState &parent) | |
| virtual | ~TransportPipeline () |
| virtual int | latency () const |
| virtual void | startOperation (Operation &op) |
| virtual void | advanceClock () |
| virtual OperationExecutor * | copy () |
| virtual void | setContext (OperationContext &context) |
| bool | hasPendingOperations () const |
Public Member Functions inherited from OperationExecutor | |
| OperationExecutor () | |
| OperationExecutor (FUState &parent) | |
| virtual | ~OperationExecutor () |
| FUState & | parent () const |
| void | setParent (FUState &parent) |
| void | addBinding (int io, PortState &port) |
| PortState & | binding (int io) const |
| bool | hasPendingOperations () const |
| virtual void | reset () |
Private Member Functions | |
| TransportPipeline & | operator= (const TransportPipeline &) |
| Assignment not allowed. | |
Private Attributes | |
| Operation * | operation_ |
| Operation to be triggered next. | |
| OperationContext * | context_ |
| Operation context used to fetch the values for PC and RA. | |
| OperationContext | tempContext_ |
| Operation context seen by the operation. | |
| InstructionAddress | PC_ |
| Storage for PC value in the context. | |
| InstructionAddress | IBS_ |
| Storage for IRF block start in the context. | |
| SimValue | RA_ |
| Storage for RA value in the context. | |
| int | branchDelayCycles_ |
| Branch delay cycles. | |
| GCUState & | parent_ |
| The owner GCUState. | |
Additional Inherited Members | |
Protected Attributes inherited from OperationExecutor | |
| std::vector< PortState * > | bindings_ |
| PortStates that are bound to a certain input or output operand. | |
| bool | hasPendingOperations_ |
| This is set to true if the OperationExecutor is not in 'idle' mode. | |
Models the transport pipeline of global control unit.
Definition at line 49 of file TransportPipeline.hh.
|
explicit |
Constructor.
| parent | Parent of the pipeline. |
Definition at line 57 of file TransportPipeline.cc.
References FUState::context(), OperationExecutor::parent(), OperationContext::setStateRegistry(), OperationContext::stateRegistry(), and tempContext_.

|
virtual |
Destructor.
Definition at line 71 of file TransportPipeline.cc.
References tempContext_, and OperationContext::unsetStateRegistry().

|
virtual |
Nothing is done when clock cycle changes.
Implements OperationExecutor.
Definition at line 130 of file TransportPipeline.cc.
|
virtual |
Copies OperationExecutor.
Implements OperationExecutor.
Definition at line 139 of file TransportPipeline.cc.
|
inline |
Definition at line 59 of file TransportPipeline.hh.
|
virtual |
Returns the latency of the pipeline.
Definition at line 81 of file TransportPipeline.cc.
|
private |
Assignment not allowed.
|
virtual |
Sets the OperationContext of the pipeline.
| context | The OperationContext. |
Implements OperationExecutor.
Definition at line 149 of file TransportPipeline.cc.
References context_.
|
virtual |
Start the execution of the operation.
First inputs and outputs of the operation are collected in a vector. Then a new operation context is created. After triggering the operation the registers which values are changed are updated in parent GCU state.
| op | Operation to be triggered. |
Implements OperationExecutor.
Definition at line 96 of file TransportPipeline.cc.
References assert, OperationExecutor::binding(), context_, Operation::isBranch(), Operation::isCall(), Operation::numberOfInputs(), Operation::numberOfOutputs(), operation_, parent_, OperationContext::programCounter(), OperationContext::returnAddress(), OperationContext::saveReturnAddress(), GCUState::setProgramCounter(), GCUState::setReturnAddress(), OperationContext::setSaveReturnAddress(), OperationContext::setUpdateProgramCounter(), Operation::simulateTrigger(), tempContext_, and OperationContext::updateProgramCounter().

|
private |
Branch delay cycles.
Definition at line 80 of file TransportPipeline.hh.
|
private |
Operation context used to fetch the values for PC and RA.
Definition at line 70 of file TransportPipeline.hh.
Referenced by setContext(), and startOperation().
|
private |
Storage for IRF block start in the context.
Definition at line 76 of file TransportPipeline.hh.
|
private |
Operation to be triggered next.
Definition at line 68 of file TransportPipeline.hh.
Referenced by startOperation().
|
private |
The owner GCUState.
Definition at line 82 of file TransportPipeline.hh.
Referenced by startOperation().
|
private |
Storage for PC value in the context.
Definition at line 74 of file TransportPipeline.hh.
|
private |
Storage for RA value in the context.
Definition at line 78 of file TransportPipeline.hh.
|
private |
Operation context seen by the operation.
Definition at line 72 of file TransportPipeline.hh.
Referenced by startOperation(), TransportPipeline(), and ~TransportPipeline().