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