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 > _______________________________________________ m5-users mailing list m5-users@m5sim.org http://m5sim.org/cgi-bin/mailman/listinfo/m5-users