This is a processor class comprising communicating scGridPoint classes. Comprises and handles the scGridPoint modules in the grid points. This implements the gridpoint-to-gridpoint communication: The grid comprises cluster heads and members, and enjoys the advantages of the topological proximity.
The scProcessor class receives the signals from the scGridPoint modules through its input ports. The module stores the actual values of those signals in the corresponding SC_GRIDPOINT_MASK_TYPE, and receives signals TopologySignal_t through the TopologySignalPort_t array
Comprises scGridPoint modules, but no real calculational functionality
nm | The SystemC name |
Specials | some special scGridPoints (enables to handle heterogenous topologies) |
StandAlone | true if some part shall be executed here otherwise in the subclass |
* |AbstractTopology * |--/scProcessor * |----/scGateProcessor *
Public Member Functions | |
scGatesProcessor (sc_core::sc_module_name nm, vector< scGridPoint * > Specials, bool StandAlone) | |
The of processor inter-cluster bus-related signals. | |
![]() | |
bool | Alias_Add (string A, scHThread *HT) |
scGridPoint * | ByIndex_Get (const int X, const int Y) |
Get an scGridPoint by its indices. | |
scGridPoint * | ByPointer_Get (scGridPoint *GP) |
virtual scGridPoint * | ChildAllocateFor (scGridPoint *Parent, CorePreference_t Pref=cpt_AnyCore) |
Allocate a core with preference. | |
scGridPoint * | ChildFindFor (scGridPoint *Parent, CorePreference_t CPT) |
find an scGridPoint for this parent | |
scGridPoint * | ChildPreAllocateFor (scGridPoint *Parent, CorePreference_t Pref=cpt_AnyCore) |
Allocate a core with preference. | |
virtual scGridPoint * | doQCREATE (scGridPoint *TheParent, scGridPoint *TheChild, SC_GRIDPOINT_MASK_TYPE CloneMask, SC_GRIDPOINT_MASK_TYPE BackLinkMask, CorePreference_t CPT) |
scGridPoint::doQCREATE Create a new QT for TheParent, allocate a core if TheChild is NULL More... | |
void | HandleAliases (string FileName) |
HandleAliases() Handle the special case when aliases are to be read from a file. | |
void | HandleAliasesPass (string FileName, bool Pass2) |
HandleAliasesPass In the first pass, only adds the alias name to the known names. In the second pass, initializes the aliased objects. More... | |
scHThread * | HThreadFindFor (scHThread *Parent, HThreadPreference_t HPT) |
scProcessor::HThreadFindFor More... | |
void | Populate (vector< scGridPoint * > &Specials) |
virtual void | ReadTheThreeLevels (QString MyGroup) |
ReadTheThreeLevels. More... | |
string | RegisterName_Get (int Index) |
< A generic register name | |
bool | StringOfAliasName_Set (string A, scHThread *H) |
![]() | |
AbstractTopology (void) | |
AbstractTopology::AbstractTopology. More... | |
GridPoint * | ByClusterAddress_Get (ClusterAddress_t C) |
Get a GridPoint pointer given by its ClusterAddress_t C, a specialized integer (network-like address) More... | |
GridPoint * | ByClusterMember_Get (unsigned short int CN, ClusterNeighbor CM=cm_Head, ClusterNeighbor CP=cm_Head) |
GridPoint * | ByClusterPointer_Get (GridPoint *P, ClusterNeighbor CM=cm_Head) |
Return the pointer corresponding to the in-cluster member CM of cluster. More... | |
GridPoint * | ByID_Get (const int N) |
Get a gridpoint by its absolute sequence number and thread. | |
GridPoint * | ByIndex_Get (const int X, const int Y) |
Get a gridpoint defined by its indices (!NOT position) | |
GridPoint * | ByPosition_Get (int X, int Y) |
Get a gridpoint by its topological position (NOT index!) | |
void | Cluster_Create (GridPoint *P) |
Create a new cluster at GridPoint P. More... | |
void | Cluster_Create (int X, int Y) |
Create a new cluster at coordinates X,Y. More... | |
ClusterAddress_t | ClusterAddress_Get (GridPoint *P) |
Return the cluster address of the point P. | |
ClusterAddress_t | ClusterAddressFromLinear_Get (int N) |
Return the cluster address of the Nth point. | |
GridPoint * | ClusterHead_Get (unsigned int N) |
Return pointer to the cluster head of the Nth cluster. More... | |
GridPoint * | ClusterHeadOfMember_Get (GridPoint *GP) |
Return the cluster head of GridPoint GP. | |
ClusterStatus | ClusterStatus_Get (GridPoint *P, ClusterNeighbor N) |
Return status of neighbor N relative to GridPoint P. | |
void | ClusterStatus_Set (GridPoint *P, ClusterNeighbor N, ClusterStatus S) |
Set cluster status upon creation. More... | |
void | CreateClusters (void) |
Create clusters from the elements of the rectangular grid. This routine works perfectly ONLY for a 10*6 sized grid!! | |
string | StringOfClusterAddress_Get (GridPoint *GP) |
Return the string describing GridPoint GP in its ClusterAddress_t form. More... | |
Additional Inherited Members | |
![]() | |
scClusterBus * | mClusterBus |
The of processor inter-cluster bus-related signals. More... | |
scClusterBusArbiter * | mClusterBusArbiter |
Arbiter of the inter-cluster bus. | |
scClusterBusMemoryFast * | mClusterMemoryFast |
A register-like memory. | |
![]() | |
TopologyMask_t | msMask [MAX_HTHREADS] |
Stores alias names of the gridpoints. | |
![]() | |
vector< GridPoint * > | mClusters |
The clustered gridpoints are accessible through their clusters, too. | |
vector< vector< GridPoint * > > | mGrid |
The gridpoints form a 2-dim grid, addressable by their index. | |
SC_ADDRESS_TYPE | mProgramCounter |
The architecture itself has a global program counter. | |