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
