Go to the documentation of this file.
   26  class scClusterBusArbiter;
 
   30         sc_in< sc_dt::sc_uint<MAX_GRIDPOINTS> >
 
   36 } TopologySignalPort_t, *TopologySignalPort_Ptr;
 
   39         sc_signal<sc_dt::sc_uint<MAX_GRIDPOINTS>>
 
   45 } TopologySignal_t, *TopologySignal_Ptr;
 
   49         SC_GRIDPOINT_MASK_TYPE
 
   55     ,PreAllocatedForTopology 
 
   57 } TopologyMask_t, *TopologyMask_Ptr;
 
   75 typedef pair<string,scGridPoint*> GridModuleItem;
 
  134     msSignalPort[MAX_HTHREADS];
 
  136     msSignal[MAX_HTHREADS];
 
  148     ClusterBus_Get(
void){   
return mClusterBus;}
 
  149     scProcessor(sc_core::sc_module_name nm, vector<scGridPoint*> Specials, 
bool StandAlone);
 
  158     ClusterHead_Get(
int i)
 
  165     scGridPoint* ByPosition_Get(
const int X, 
const int Y)
 
  175      scGridPoint* ByIDMask_Get(SC_GRIDPOINT_MASK_TYPE Mask)
 
  176      { 
return ByID_Get(MaskToID(Mask));}
 
  181     ByName_Get(
string N);
 
  194     void Populate(vector<scGridPoint*>& Specials);
 
  195     void ConnectIGPCBs(
void);
 
  196     void ConnectClusterHeadsToBus(scClusterBus* Bus);
 
  197         SC_GRIDPOINT_MASK_TYPE
 
  198     DeniedMask_Get(SC_HTHREAD_ID_TYPE H=0) {  
return msSignalMask[H].Denied;}
 
  201          SC_GRIDPOINT_MASK_TYPE
 
  202     AllocatedMask_Get(SC_HTHREAD_ID_TYPE H=0) {  
return msSignalMask[H].Allocated;}
 
  204     AllocatedMask_Set(SC_GRIDPOINT_MASK_TYPE M, SC_HTHREAD_ID_TYPE H=0) {msSignalMask[H].Allocated = M;}
 
  206     AllocatedMaskBit_Set(
scGridPoint* GP, 
bool P=
true);
 
  207           SC_GRIDPOINT_MASK_TYPE
 
  208     PreAllocatedMask_Get(SC_HTHREAD_ID_TYPE H=0) {  
return msSignalMask[H].PreAllocated;}
 
  210     PreAllocatedMask_Set(SC_GRIDPOINT_MASK_TYPE M, SC_HTHREAD_ID_TYPE H=0) { msSignalMask[H].PreAllocated = M;}
 
  212     PreAllocatedMaskBit_Set(
scGridPoint* GP, 
bool P=
true);
 
  213         SC_GRIDPOINT_MASK_TYPE
 
  214     AvailableMask_Get(SC_HTHREAD_ID_TYPE H=0)
 
  215        {  
return ~UnavailableMask_Get(H);}
 
  216         SC_GRIDPOINT_MASK_TYPE
 
  217     UnavailableMask_Get(SC_HTHREAD_ID_TYPE H=0);
 
  235     StringOfTime_Get(
void){ 
return sc_time_to_nsec_Get();}
 
  237     RegisterName_Get(
int Index);
 
  252     ChildCount_Get(
void){
return mChildren.size();}
 
  288                 SC_GRIDPOINT_MASK_TYPE CloneMask,
 
  289                 SC_GRIDPOINT_MASK_TYPE BackLinkMask,
 
  292     doReboot(SC_ADDRESS_TYPE A){ 
return (
scHThread*)NULL;}
 
  313      msSignalMask[MAX_HTHREADS];
 
  315     PrologString_Get(
void);
 
  318          SC_GRIDPOINT_MASK_TYPE
 
  319     PreAllocatedForProcMask_Get(SC_HTHREAD_ID_TYPE H=0){ 
return msMask[H].PreAllocatedForTopology;}
 
  322     PreAllocatedForProcMaskBit_Set(
scGridPoint* C, 
bool V);
 
  324     IsSuspended(
void){ 
return msSuspended;}
 
  326     SuspendedBit_Set(
bool b){msSuspended = b;}
 
  328     Halted_Get(
void) { 
return msHalted;}
 
  330     Halted_Set(
bool B){ msHalted = B;}
 
  335     Initialize_method(
void);
 
  339     InstanceCount_Get(
void) {
return mInstanceCount % 50;}
 
  344         { 
return ByClusterAddress_Get(CA)->HThread_Get(CA.
HThread);}
 
  352     StringOfAliasName_Set(
string A, 
scHThread *H);
 
  358        HandleAliases(
string FileName);
 
  366        ReadTheThreeLevels(QString MyGroup);
 
  376        HandleAliasesPass(
string FileName, 
bool Pass2);
 
  377            void AliasesClear(
void)
 
  381     SignalMaskBit_Set(SC_GRIDPOINT_MASK_TYPE &Signal, SC_GRIDPOINT_MASK_TYPE GPMask,
 
  382                       bool State, 
string S);
 
  388     SUSPEND_thread(
void);
 
  392     SetMasks_method(
void);
 
  395          std::map<string,scHThread*>
 
  398     msMask[MAX_HTHREADS];
 
  411 #endif // SCPROCESSOR_H 
  
 
scClusterBus * mClusterBus
The of processor inter-cluster bus-related signals.
Definition: scProcessor.h:142
GridPoint * ByID_Get(const int N)
Get a gridpoint by its absolute sequence number and thread.
scClusterBusMemoryFast * mClusterMemoryFast
A register-like memory.
Definition: scProcessor.h:144
Definition: AbstractTopology.h:52
GridPoint * ByPosition_Get(int X, int Y)
Get a gridpoint by its topological position (NOT index!)
GridPoint * ByClusterPointer_Get(GridPoint *P, ClusterNeighbor CM=cm_Head)
Return the pointer corresponding to the in-cluster member CM of cluster.
Function prototypes for the topology of electronic module, placed on a die. It is just math,...
The scIGPMessage class.
Definition: scIGPMessage.h:97
@ tpt_Preallocated
In a core preallocated for the owner of the HThread.
Definition: scProcessor.h:69
The header of the bus arbiter.
The scHThread class.
Definition: scHThread.h:138
Implements a module-name alias facility (i.e., user-provided names. Given that the basic units is scH...
Definition: scProcessor.h:130
The 'far' memory of the processor.
Definition: scClusterBusMemorySlow.h:125
A register-type memory area per .
Definition: scClusterBusMemoryFast.h:34
GridPoint * ByClusterAddress_Get(ClusterAddress_t C)
Get a GridPoint pointer given by its ClusterAddress_t C, a specialized integer (network-like address)
HThreadPreference_t
Definition: scHThread.h:28
GridPoint * ClusterHead_Get(unsigned int N)
Return pointer to the cluster head of the Nth cluster.
Definition: AbstractTopology.h:186
ClusterNeighbor
The neighborship in the cluster: the members are referred to with their geographic direction.
Definition: Clustering.h:34
@ tpt_Another
Surely in another core.
Definition: scProcessor.h:72
This class implements the autonomous grid point functionality: it is a communicating GridPoint....
Definition: scGridPoint.h:127
ThreadPreference_t
Definition: scProcessor.h:67
scGridPoint * ByIndex_Get(const int X, const int Y)
Get an scGridPoint by its indices.
Definition: scProcessor.h:163
A GridPoint can be addressed also by its cluster address of type ClusterAddress_t....
Definition: Clustering.h:58
@ tpt_Allocated
In a core allocated for the owner of the HThread.
Definition: scProcessor.h:68
string StringOfClusterAddress_Get(void)
scClusterBusArbiter * mClusterBusArbiter
Arbiter of the inter-cluster bus.
Definition: scProcessor.h:146
GridPoint * ByClusterMember_Get(unsigned short int CN, ClusterNeighbor CM=cm_Head, ClusterNeighbor CP=cm_Head)
GridPoint * ByIndex_Get(const int X, const int Y)
Get a gridpoint defined by its indices (!NOT position)
@ tpt_Neighbor
In a direct accessible core.
Definition: scProcessor.h:71
scGridPoint * ByPointer_Get(scGridPoint *GP)
Definition: scProcessor.h:160
@ cm_Head
The central gridpoint.
Definition: Clustering.h:35
@ tpt_Core
In the same core as the owner of the HThread.
Definition: scProcessor.h:70
uint32_t HThread
The 'hardware thread' the module handles.
Definition: Clustering.h:59
CorePreference_t
Definition: scProcessor.h:62
GridPoint * ClusterHeadOfMember_Get(GridPoint *GP)
Return the cluster head of GridPoint GP.
bool Alias_Add(string A, scHThread *HT)
Definition: scProcessor.h:347