Hi steve, In m5_2.0b4, physicalMemory.cc file includes "params/PhysicalMemory.hh". But I cannot find this head file except in the build/ALPHA_FS/params directory. So does the dram.hh file. Does that mean I also need to include "params/sdram.hh" file in my sdram.cc? If so, how to get the "params/sdram.hh" file?
Tracy > All that you have to do is create a getPort() function on your C++ > object and declare a Port attribute on the corresponding Python > object. Then your python script can connect the port on your object > to a port on any other object (using '='), and m5 takes care of the > rest. Take a look at PhysicalMemory.py and physical.cc for an > example. > > Steve > > On Nov 14, 2007 6:55 AM, <[EMAIL PROTECTED]> wrote: >> Hi steve, >> >> Thanks for replying me! >> I am using M5 b3 version now. My SDRAM model is implemented from >> scratch in SE mode. >> I have another question: If I create a Memory port in my SDRAM >> object, >> how to connect this port to the bus, or how to set the peer port? >> Maybe this question is stupid, but I am not really clear about the >> usage and implementation of port object. >> >> Rongrong >> >> >> >> > I'm a little confused... memory system timing is basically the same in >> > SE and FS modes. If you're using an old version of M5, it's true that >> > different main-memory objects got used in those two modes, but that's >> > not true anymore in b4; they both use PhysicalMemory. (Actually I >> > think that change happened in b3, or maybe even earlier.) >> > >> > It's probably easiest to derive from PhysicalMemory, though you could >> > write your own object from scratch. If you're working with b4 (which >> > you probably should), then I'd recommend the following approach: >> > >> > - derive your SDRAM object from PhysicalMemory >> > - inside your SDRAM object, create a MemoryPort class that derives >> > from PhysicalMemory::MemoryPort >> > - in SDRAM::MemoryPort, override the recvTiming() function (which is >> > currently defined in SimpleTimingPort) with a version that's the same >> > as in SimpleTimingPort except leave out the "schedSendTiming(pkt, >> > curTick + latency);" line. >> > - later when you know what tick the response will be ready, call >> > "port->schedSendTiming(pkt, doneTick);". Note that you'll either have >> > to record the port the packet came in on, or override >> > PhysicalMemory::getPort() to only allow one non-functional port to be >> > created. (I'm not sure when if ever PhysicalMemory needs multiple >> > non-functional ports...) >> > >> > I haven't actually tried this, but if I were trying to do a detailed >> > DRAM model that's how I'd go about it. >> > >> > Steve >> > >> > On 11/13/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: >> >> Hi, >> >> >> >> I have some questions about adding a new SDRAM model with >> >> out-of-order >> >> memory access scheduling into FS mode. This SDRAM model can run >> >> correctly in SE mode. >> >> In SE mode, once a memory access is scheduled, the response time >> >> will >> >> be sent out by calling the callback function - >> >> slaveInterface->respond(). >> >> In FS mode, there is no such callback function. Instead, >> >> sendTiming(pkt, latency) is called to send the latency to EventQueue. >> >> This function is called every packet and the calculated memory access >> >> latency is fixed. >> >> My questions are : >> >> 1. Should I derive my SDRAM class from physicalMemory? In SE >> mode, >> >> this SDRAM model is derived from SimObject class. >> >> 2. In our SDRAM model, memory accesses are scheduled every memory >> >> cycle, could I just call sendTiming(pkt, latency) in my code once the >> >> latency is obtained? >> >> 3. How to set the port to my SDRAM model? >> >> >> >> Thanks, >> >> Tracy >> >> _______________________________________________ >> >> m5-users mailing list >> >> m5-users@m5sim.org >> >> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users >> >> >> > _______________________________________________ >> > m5-users mailing list >> > m5-users@m5sim.org >> > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users >> > >> >> _______________________________________________ >> m5-users mailing list >> m5-users@m5sim.org >> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users >> > _______________________________________________ > m5-users mailing list > m5-users@m5sim.org > http://m5sim.org/cgi-bin/mailman/listinfo/m5-users > _______________________________________________ m5-users mailing list m5-users@m5sim.org http://m5sim.org/cgi-bin/mailman/listinfo/m5-users