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

Reply via email to