Ah. I see. Thanks for pointing me to the static latencies, I missed on
that. As the controller latency is modeled as static latency, am I right in
saying that as of the latest commit MC is not attached to any clock domain
in Gem5?

Thanks,
-Rizwana

On Thursday, January 22, 2015, Andreas Hansson via gem5-users <
gem5-users@gem5.org> wrote:

> Hi Rizwana,
>
> The DRAM controller has two parameters to control the static latency in
> the controller itself, and also the PHY and actual round trip to the
> device. These parameters are called front end and back end latency, and you
> can set them to match a given controller architecture and/or PHY
> implementation. That should be enough for most cases I would think.
>
> Andreas
>
> -----
> On Jan 22, 2015 at 9:22 PM, Rizwana Begum via gem5-users <
> gem5-users@gem5.org <javascript:;>> wrote:
>
>
> Great. That was helpful. So, am I right in assuming that Gem5 DRAM
> controller model doesn't account for signal propagation delay on
> command/data bus? I am coming to this conclusion as read response event
> from MC is scheduled to upper ports after tCL+tBURST after read command is
> issued. Infact, I had a chance to use DRAMSim2 in the past, and I don't
> remember signal propagation delay being accounted there either. Is it too
> small and can safely be ignored?
>
> Thanks,
> -Rizwana
>
> On Thu, Jan 22, 2015 at 2:58 PM, Tao Zhang <tao.zhang.0...@gmail.com
> <javascript:;>> wrote:
>
> > The timing of RL (aka tCL) is dedicated to DRAM module. This is the
> > distance from DRAM module receive the CAS command to DRAM module put the
> > first data on the interface/bus. On MC/PHY side, it should account for
> the
> > signal propagation delay on the command/data bus. In fact, signal "DQS"
> is
> > also used to assist the read data sampling.
> >
> > The bus protocol is defined by JEDEC. It is completely different from
> > AMBA/AHB. The bus has only one master (MC) and may have multiple slaves
> > (DRAM ranks). So it looks like a AHB-lite. But in general, they are two
> > stories.
> >
> > -Tao
> >
> > On Thu, Jan 22, 2015 at 11:50 AM, Rizwana Begum <rizwana....@gmail.com
> <javascript:;>>
> > wrote:
> >
> >> Thanks Tao for your response. That clarifies a lot of my questions. So
> >> here is what I understand:
> >>
> >> DRAM module runs at a particular clock frequency. Bus connecting DRAM
> >> module and PHY runs in sync with this clock frequency. PHY as well runs
> >> synchronously to DRAM module clock frequency. Now, for a 64bit bus,
> burst
> >> length of 8 (64 bytes transferred per burst) my understanding of read
> >> operations is that, after the read command is issued, first bit of data
> is
> >> available after read latency. At immediate clock edge after read
> latency,
> >> 8bytes are sampled and transferred over the bus. Then every consecutive
> >> rising and falling clock edges, 8 more bytes are sampled and transferred
> >> over the bus for four consecutive clock cycles. Thereby, PHY receives
> all
> >> 64bytes worth data at the end of read latency + 4 clock cycles. Is this
> >> right?
> >>
> >> Also, any idea if this bus (connecting DRAM and PHY) same as system bus?
> >> For example, is it AMBA/AHB on latest ARM SoCs?
> >>
> >> Thanks again,
> >> -Rizwana
> >>
> >> On Thu, Jan 22, 2015 at 12:49 PM, Tao Zhang <tao.zhang.0...@gmail.com
> <javascript:;>>
> >> wrote:
> >>
> >>> Hi Rizwana,
> >>>
> >>> see my understanding inline. Thanks,
> >>>
> >>> -Tao
> >>>
> >>> On Thu, Jan 22, 2015 at 8:12 AM, Rizwana Begum via gem5-users <
> >>> gem5-users@gem5.org <javascript:;>> wrote:
> >>>
> >>>> Hello Andreas,
> >>>>
> >>>> Thanks for the reply. Sure, I will try to get the patch up on review
> >>>> board.
> >>>> I have another question: Though this is related to DDR/MC architecture
> >>>> and not directly related to Gem5 DDR model implementation, I am
> hoping you
> >>>> (or anyone else on the list) would have a good understanding to
> clarify my
> >>>> confusions:
> >>>>
> >>>> As far as I understand 'busBusyUntil' represents the data bus. This
> >>>> variable is used to keep track of data bus availability:
> >>>>
> >>>> 1. Is the data bus is the bus used to transfer data from core DRAM
> >>>> module to PHY?
> >>>>
> >>>
> >>>    Yes, you are right. In addition, this is also the bus to transfer
> >>> data from PHY to DRAM module.
> >>>
> >>>
> >>>> 2. I believe PHY is the DRAM physical interface IP. Where is it
> >>>> physically located? Is it located on core along side memory
> controller (MC)
> >>>> or on DIMMs? And what exactly does physical bus (the wires connecting
> DIMMs
> >>>> to MC) connect? DRAM and PHY or PHY and MC?
> >>>>
> >>>
> >>>     It is on the core/MC side.  The physical bus refers to DRAM and
> PHY.
> >>> Logically, you can treat PHY as a part of MC and it just incurs some
> extra
> >>> latency. In this way, the physical bus can be extended to DRAM and MC.
> >>>
> >>>
> >>>> 3. My confusion is that actual physical bus on SoC connecting the DRAM
> >>>> module and MC should be different from data bus that 'busBusyUntil' is
> >>>> representing. It takes tBURST ns (function of memory cycles) to
> transfer
> >>>> one burst on the data bus and the actual physical bus speed shouldn't
> be
> >>>> depending upon memory frequency for transferring data from DRAM to
> MC. Am I
> >>>> right?
> >>>>
> >>>
> >>>     The "busBusyUntil" is still valid. The actual physical bus speed
> >>> should be consistent with the SPEC (e.g., 800MHz, 933MHz, 1600MHz...).
> >>> Remember, the JEDEC DRAM is a Synchronous DRAM. It means both PHY and
> DRAM
> >>> module should be in sync with the same clock frequency. As one end of
> the
> >>> connection is the DRAM module, PHY should run at the same frequency as
> DRAM
> >>> module runs.
> >>>
> >>>
> >>>> I would appreciate if anyone can provide insight into these questions.
> >>>>
> >>>> Thank you,
> >>>> -Rizwana
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> On Wed, Jan 21, 2015 at 4:45 PM, Andreas Hansson <
> >>>> andreas.hans...@arm.com <javascript:;>> wrote:
> >>>>
> >>>>>  Hi Rizwana,
> >>>>>
> >>>>>  It could very well be that you’ve hit a bug. I’d suggest to post a
> >>>>> review on the reviewboard to make it more clear what changes need to
> be
> >>>>> done. If you’re not familiar with the process have a look at
> >>>>> http://www.gem5.org/Commit_Access. The easiest is to use the
> >>>>> reviewboard mercurial plugin.
> >>>>>
> >>>>>  I look forward to see the patch.
> >>>>>
> >>>>>  Thanks,
> >>>>>
> >>>>>  Andreas
> >>>>>
> >>>>>   From: Rizwana Begum via gem5-users <gem5-users@gem5.org
> <javascript:;>>
> >>>>> Reply-To: Rizwana Begum <rizwana....@gmail.com <javascript:;>>,
> gem5 users mailing
> >>>>> list <gem5-users@gem5.org <javascript:;>>
> >>>>> Date: Wednesday, 21 January 2015 16:24
> >>>>> To: gem5 users mailing list <gem5-users@gem5.org <javascript:;>>
> >>>>> Subject: [gem5-users] DRAM controller write requests merge
> >>>>>
> >>>>>  Hello Users,
> >>>>>
> >>>>>  I am trying to understanding write packets queuing in DRAM
> >>>>> controller model. I am looking at 'addToWriteQueue' function. From my
> >>>>> understanding so far, it merges write requests across burst
> boundaries.
> >>>>> Looking at following if statement:
> >>>>>
> >>>>>  if ((addr + size) >= (*w)->addr &&
> >>>>>                            ((*w)->addr + (*w)->size - addr) <=
> >>>>> burstSize) {
> >>>>>                     // the new one is just before or partially
> >>>>>                     // overlapping with the existing one, and
> together
> >>>>>                     // they fit within a burst
> >>>>> ....
> >>>>>  ....
> >>>>> ....
> >>>>> }
> >>>>>
> >>>>>  Merging here may make the write request go across burst boundary.
> >>>>> Size computation in the beginning of the for loop of this function
> suggests
> >>>>> that packets are split at burst boundaries. For example, if the
> packet addr
> >>>>> is 16, burst size is 32 bytes and packet request size is 25 bytes
> (all in
> >>>>> decimal for ease), then 2 write bursts should be added to the queue:
> 16-31,
> >>>>> 32-40. However, while merging, lets say if there existed a packet
> already
> >>>>> in write queue from 32-40, then a write from 16-40 is added to the
> queue
> >>>>> which is across burst boundary. is that physically possible?
> Shouldn't
> >>>>> there be two write requests in the queue:16-31, 32-40 instead of one
> single
> >>>>> merged request?
> >>>>>
> >>>>>  Thank you,
> >>>>> -Rizwana
> >>>>>
> >>>>>
> >>>>>
> >>>>> -- IMPORTANT NOTICE: The contents of this email and any attachments
> >>>>> are confidential and may also be privileged. If you are not the
> intended
> >>>>> recipient, please notify the sender immediately and do not disclose
> the
> >>>>> contents to any other person, use it for any purpose, or store or
> copy the
> >>>>> information in any medium. Thank you.
> >>>>>
> >>>>> ARM Limited, Registered office 110 Fulbourn Road, Cambridge CB1 9NJ,
> >>>>> Registered in England & Wales, Company No: 2557590
> >>>>> ARM Holdings plc, Registered office 110 Fulbourn Road, Cambridge CB1
> >>>>> 9NJ, Registered in England & Wales, Company No: 2548782
> >>>>>
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> gem5-users mailing list
> >>>> gem5-users@gem5.org <javascript:;>
> >>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
> >>>>
> >>>
> >>>
> >>
> >
>
> _______________________________________________
> gem5-users mailing list
> gem5-users@gem5.org <javascript:;>
> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to