I also asked something similar with O3CPU
http://www.mail-archive.com/gem5-users@gem5.org/msg01855.html


On 3/1/12, Korey Sewell <ksew...@umich.edu> wrote:
> - Have you seen any of the other load/stores complete (e.g. [sn:7])?
>
> - what code is in your createBackEndSked() function in cpu.cc? Do your
> load/store instructions have a schedule entry to complete the data
> read/write?
>
> - At what tick does it stall after 45500? If it's soon after that, then
> maybe the activity counter got set too low in the InOrderCPU constructor.
>
> - I'd suggest turning on the "InOrderCachePort" trace flag and rerunning.
> There should be some reason printed out to why [sn:8] is failing on it's
> access to the cache (is the cache port blocked?)
>
> Lastly, you'll want to look at the "execute()" function in a particular
> resource to trace the program flow. In each pipeline stage, a instruction
> will find a resource that it wants to access and request that resource.
> That requests translates into a "execute()" call into that particular
> resources code.
>
>
> On Thu, Mar 1, 2012 at 1:37 AM, Pritha Ghoshal <pritha9...@tamu.edu> wrote:
>
>> Hi,
>>
>> I am trying to Inorder 9 stage pipeline and it is stalling after the first
>> few cycles.. This is the culprit as far as I managed to dig in by turning
>> on traces..
>>
>> The following snippets of the trace are from the same tick, one after
>> another.. Initially it is trying to send a request to Dcache, it prints
>> "In
>> cache unit" and "Available slots" before allocating the slot, these two
>> statements I had added to cpu/inorder/resources/cache_unit.cc
>> getSlot(inst)
>> function and cpu/inorder/resource.cc getSlot(inst) function.
>>
>>   45500: system.cpu.stage5: [tid:0]: [sn:7]: sending request to
>> system.cpu.dcache_port.
>>   45500: system.cpu.dcache_port: Before going to getslot 9
>>   45500: system.cpu.dcache_port: In cache unit
>>   45500: system.cpu.dcache_port: Available slots:9
>>   45500: system.cpu.dcache_port: Allocating [slot:0] for [tid:0]: [sn:7]
>>
>> But the next time when getSlot is being called in resource.cc in the same
>> tick, it does not print either of the two statements.. I am not sure what
>> is the flow of the program, and why there should be a difference between
>> two requests one after another..
>>
>>   45500: system.cpu.stage5: [tid:0]: [sn:8]: sending request to
>> system.cpu.dcache_port.
>>   45500: system.cpu.dcache_port: Before going to getslot 8
>>   45500: system.cpu.dcache_port: No slot available for [tid:0]: [sn:8]
>>   45500: system.cpu.stage5: [tid:0]: [sn:8] request to
>> system.cpu.dcache_port failed.
>>
>> Because the dcache port is never got by the instruction serial number 8,
>> the flow of instruction gets stalled and the cpu goes to sleep for ever..
>>  Could anyone suggest any reason for this apparent difference in behavior?
>>
>> Pritha
>>
>>
>> _______________________________________________
>> gem5-users mailing list
>> gem5-users@gem5.org
>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>
>
>
>
> --
> - Korey
>


-- 
--
// Naderan *Mahmood;
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to