Oh, I am very sorry for such a careless mistake! Thanks for your help.

Shuchang

2013/1/10 Tao Zhang <[email protected]>

> Yes, I have verified the function call. The recvTimingReq() has been
> called for many times. ****
>
> ** **
>
> Please make sure you type the command correctly. “--cpu-time=detailed ”
> (two dash at the beginning) rather than “-cpu-time=detailed”. ****
>
> ** **
>
> -Tao****
>
> ** **
>
> *From:* [email protected] [mailto:[email protected]] *On
> Behalf Of *单书畅
>
> *Sent:* Wednesday, January 09, 2013 11:18 PM
> *To:* gem5 users mailing list
> *Subject:* Re: [gem5-users] question about simpleDRAM****
>
> ** **
>
> Hi Tao,****
>
> ** **
>
> Thanks for your quick reply. I use the command like this:****
>
> ** **
>
> ./build/ALPHA/gem5.opt --dump-config=debug.ini --stats-file=a.txt
> configs/example/se-cmp.py --num-cpus=1 --caches --l2cache --num-dirs=1
> -cpu-type=detailed --benchmark=bzip2****
>
> ** **
>
> In my case, although simpleDRAM called  SimpleDRAM::recvAtomic(PacketPtr
> pkt), the functionality works, leaving only imprecise timing calculation.
> Could you please confirm that, your SimpleDRAM really calls the timing
> caculation functions like *SimpleDRAM::doDRAMAccess(DRAMPacket* dram_pkt)
> or SimpleDRAM::estimateLatency(DRAMPacket* dram_pkt, Tick inTime) *in
> Simple_dram.cc file?****
>
> ** **
>
> I was running in GDB mode and make breakpoints in simple_dram.cc :
> doDRAMAccess function, but after a long simulation, the simulation was not
> halted, which means that the simulation never called doDRAMAccess function.
> ****
>
> ** **
>
> Regards,****
>
> Shuchang****
>
> ** **
>
> 2013/1/10 Tao Zhang <[email protected]>****
>
> Hi Shuchang,****
>
>  ****
>
> Did you fast-forward any instructions? If so, the atomicCPU will be used
> during the fastforward. ****
>
> In my case, the SimpleDRAM works well. ****
>
>  ****
>
> -Tao****
>
>  ****
>
> *From:* [email protected] [mailto:[email protected]] *On
> Behalf Of *单书畅
> *Sent:* Wednesday, January 09, 2013 10:56 PM
> *To:* [email protected]
> *Subject:* [gem5-users] question about simpleDRAM****
>
>  ****
>
> Hi all,****
>
>  ****
>
> It seems that the simple DRAM is built upon abstract_memory to simulate
> the memory timing more accurately. I found that there are two DRAM timing
> functions namely SimpleDRAM::recvAtomic(PacketPtr pkt)
> and SimpleDRAM::recvTimingReq(PacketPtr pkt).****
>
>  ****
>
> More precisely, the recvAtomic function simply calculates the latency like
> this: ****
>
>  ****
>
> Tick****
>
> SimpleDRAM::recvAtomic(PacketPtr pkt)****
>
> {****
>
>     DPRINTF(DRAM, "recvAtomic: %s 0x%x\n", pkt->cmdString(),
> pkt->getAddr());****
>
>  ****
>
>     // do the actual memory access and turn the packet into a response****
>
>     access(pkt);****
>
>  ****
>
>     Tick latency = 0;****
>
>     if (!pkt->memInhibitAsserted() && pkt->hasData()) {****
>
>         // this value is not supposed to be accurate, just enough to****
>
>         // keep things going, mimic a closed page****
>
>         latency = tRP + tRCD + tCL;****
>
>     }****
>
>     return latency;****
>
> }****
>
>  ****
>
> It would *NOT* call *SimpleDRAM::doDRAMAccess(DRAMPacket* dram_pkt)  *which
> simulates the DRAM module functionality. (Actually* SimpleDRAM::recvTimingReq
>  *does it*)*****
>
>  ****
>
> *The problem is, when I run gem5 in detailed mode, I found that 
> *SimpleDRAM::recvAtomic
> is called rather than *SimpleDRAM::recvTimingReq.*****
>
>  ****
>
> Am I missing anything here? ****
>
>  ****
>
>  ****
>
> Regards,****
>
> shuchang****
>
>  ****
>
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users****
>
> ** **
>
> _______________________________________________
> gem5-users mailing list
> [email protected]
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to