Hi experts,
I want to add some functions based on original gem5-gpu codes, so please give me some help.
In gpgpusim part, there already is an interconnection between simtCoreCluster an memory. But now, I want to creat an interconnection between simtCoreClusters. But the request of simtCoreCluster is from tlb of cuda core of simtCoreCluster. (And the connection between cuda core and tlb is implemented by master port and slave port.)
I want to ask some questions, could give me some ideas?
Question 1: does there need how many wrappers in gpgpu?
In original codes for interconnection between simtCoreClusters and memory, there are 4 wrappers: coresWrapper for cycling shader core, icntWrapper for cycling interconnection of intersim, l2Wrapper for cycling l2 cache, and dramWrapper for cycling memory partition.
So, when I want to create an interconnection between simtCoreClusters, do I need to create 3 wrappers?(one wrapper for cycling simtCoreCluster to send request, one wrapper for cycling another interconnection for simtCoreClusters, one wrapper for cycling simtCoreCluster to send reply.) Or say, I just need add one wrapper to cycle interconnection for between simtCoreClusters?(and the function of simtCoreCluster sending request and reply just also add to the original coresWrapper)
The figure is the code of wrapper in original cuda_gpu.cc file.
Question 2: In shader_tlb.cc, I send request to its simtCoreCluster's miss_queue. But then, how to wait for reply?
And I just using the simple way to check whether the flag of the shader core of simtCoreCluster is true. And the checking mechanis is to using a while loop structure to check whether the flag is true.
But I think the while loop is not right. Could you give me an answer?
The first line in this figure is to send request to its simtCoreCluster's miss_queue.
Question 3: When I using while loop to wait reply for this shader core and simtCoreCluster is to inject request to interconnection, the program cannot go on and no bug just don't move at the code of sending request to simtCoreCluster's miss_queue of tlb.
Could you give me some advices or tell me the reason?
The second line in this figure is using while loop to wait reply for this shader core.
Could you give me some help?