Thanks for the confirmation. I'll look into it and discuss potential solutions.
BTW, just curious, is there any particular reason for putting the code for fetch in a .hh, instead of a .cc file? Thanks! Runjie On Fri, Oct 26, 2012 at 3:42 PM, Nilay Vaish <ni...@cs.wisc.edu> wrote: > I understand now the problem that you are trying to elucidate. I just > checked the fetch_impl.hh. If you look at line 889, it is doing exactly > what you have suggested. It might be that there is some thing wrong with > this code and it is not behaving as expected. You might want to take a > deeper dive in to the fetch stage's code and figure out the reason why the > icache access was not issued a cycle earlier. > > -- > Nilay > > > On Thu, 25 Oct 2012, Runjie Zhang wrote: > > Sorry for the confusion. >> >> The numbers 60, 65 and 70 were part of the tick number each cycle >> started. I >> removed some digits in the tick count to make each line shorter... >> >> The complete trace looks like this: >> >> 33922322296000: system.switch_cpus.fetch: Running stage. >> 33922322296000: system.switch_cpus.fetch: Attempting to fetch from [tid:0] >> 33922322296000: system.switch_cpus.fetch: [tid:0]: Adding instructions to >> queue to decode. >> 33922322296000: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400ab7 >> (0) created [sn:5050]. >> 33922322296000: system.switch_cpus.fetch: [tid:0]: Instruction is: >> ADD_R_R : add ecx, ecx, esi >> 33922322296000: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400ab9 >> (0) created [sn:5051]. >> 33922322296000: system.switch_cpus.fetch: [tid:0]: Instruction is: >> ADD_R_R : add edx, edx, esi >> 33922322296000: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400abb >> (0) created [sn:5052]. >> 33922322296000: system.switch_cpus.fetch: [tid:0]: Instruction is: >> SUB_R_R : sub eax, eax, esi >> 33922322296000: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400abd >> (0) created [sn:5053]. >> 33922322296000: system.switch_cpus.fetch: [tid:0]: Instruction is: >> SUB_R_R : sub ebx, ebx, esi >> 33922322296000: system.switch_cpus.fetch: [tid:0]: Done fetching, reached >> fetch bandwidth for this cycle. >> >> 33922322296500: system.switch_cpus.BPredUnit: BranchPred: [tid:0]: >> Committing branches until [sn:5025]. >> 33922322296500: system.switch_cpus.fetch: Running stage. >> 33922322296500: system.switch_cpus.fetch: Attempting to fetch from [tid:0] >> 33922322296500: system.switch_cpus.fetch: [tid:0]: Adding instructions to >> queue to decode. >> 33922322296500: system.switch_cpus.fetch: [tid:0]: Issuing a pipelined >> I-cache access, starting at PC (0x400abf=>0x400ac7).(0=>1). >> 33922322296500: system.switch_cpus.fetch: [tid:0] Fetching cache line >> 0x400ac0 for addr 0x400ac0 >> 33922322296500: system.switch_cpus.fetch: Fetch: Doing instruction read. >> 33922322296500: system.switch_cpus.fetch: [tid:0]: Doing Icache access. >> 33922322297000: system.switch_cpus.fetch: [tid:0] Waking up from cache >> miss. >> 33922322297000: system.switch_cpus.BPredUnit: BranchPred: [tid:0]: >> Committing branches until [sn:5029]. >> 33922322297000: system.switch_cpus.fetch: Running stage. >> 33922322297000: system.switch_cpus.fetch: Attempting to fetch from [tid:0] >> 33922322297000: system.switch_cpus.fetch: [tid:0]: Icache miss is >> complete. >> 33922322297000: system.switch_cpus.fetch: [tid:0]: Adding instructions to >> queue to decode. >> 33922322297000: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400abf >> (0) created [sn:5054]. >> 33922322297000: system.switch_cpus.fetch: [tid:0]: Instruction is: >> SUB_R_R : sub ecx, ecx, esi >> 33922322297000: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400ac1 >> (0) created [sn:5055]. >> 33922322297000: system.switch_cpus.fetch: [tid:0]: Instruction is: >> SUB_R_R : sub edx, edx, esi >> 33922322297000: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400ac3 >> (0) created [sn:5056]. >> 33922322297000: system.switch_cpus.fetch: [tid:0]: Instruction is: >> ADD_R_R : add eax, eax, esi >> 33922322297000: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400ac5 >> (0) created [sn:5057]. >> 33922322297000: system.switch_cpus.fetch: [tid:0]: Instruction is: >> ADD_R_R : add ebx, ebx, esi >> 33922322297000: system.switch_cpus.fetch: [tid:0]: Done fetching, reached >> fetch bandwidth for this cycle. >> >> 33922322297500: system.switch_cpus.BPredUnit: BranchPred: [tid:0]: >> Committing branches until [sn:5033]. >> 33922322297500: system.switch_cpus.fetch: Running stage. >> 33922322297500: system.switch_cpus.fetch: Attempting to fetch from [tid:0] >> 33922322297500: system.switch_cpus.fetch: [tid:0]: Adding instructions to >> queue to decode. >> 33922322297500: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400ac7 >> (0) created [sn:5058]. >> 33922322297500: system.switch_cpus.fetch: [tid:0]: Instruction is: >> ADD_R_R : add ecx, ecx, esi >> 33922322297500: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400ac9 >> (0) created [sn:5059]. >> 33922322297500: system.switch_cpus.fetch: [tid:0]: Instruction is: >> ADD_R_R : add edx, edx, esi >> 33922322297500: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400acb >> (0) created [sn:5060]. >> 33922322297500: system.switch_cpus.fetch: [tid:0]: Instruction is: >> SUB_R_R : sub eax, eax, esi >> 33922322297500: system.switch_cpus.fetch: [tid:0]: Instruction PC 0x400acd >> (0) created [sn:5061]. >> 33922322297500: system.switch_cpus.fetch: [tid:0]: Instruction is: >> SUB_R_R : sub ebx, ebx, esi >> 33922322297500: system.switch_cpus.fetch: [tid:0]: Done fetching, reached >> fetch bandwidth for this cycle. >> >> Sorry for the confusion. >> >> Runjie >> >> >>
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users