Hello Andreas,

Thanks for your reply.


Ok. I got that the memory access latency indeed includes the queueing
latency. And for the read/write request that miss the buffer has a static
latency of  Static frontend latency + Static backend latency.


To summarize, the test i run is a latency benchmark which is a pointer
chasing test(only one request at a time) , generate reads to a specific
DRAM bank (Bank partitioned).This test is running on cpu0 of 4 cpu
arm_detailed running at 1GHZ frequency with 1MB shared L2 cache and  single
channel LPDDR3 x32 DRAM. The bank used by cpu0 is not shared between other
cpu's.

Test statistics:

system.mem_ctrls.avgQLat
               43816.35                       # Average queueing delay per
DRAM burst
system.mem_ctrls.avgBusLat                    5000.00
# Average bus latency per DRAM burst
system.mem_ctrls.avgMemAccLat                63816.35
# Average memory access latency per DRAM burst
system.mem_ctrls.avgRdQLen                       2.00
# Average read queue length when enqueuing
system.mem_ctrls.avgGap                     136814.25
# Average gap between requests
system.l2.ReadReq_avg_miss_latency::switch_cpus0.data
114767.654811                       # average ReadReq miss latency

Based on above test statistics:

avgMemAccLat is 63ns, which i presume the sum of tRP(15ns)+tRCD(15ns)
+tCL(15ns)+static latency(20ns).
Is this breakup correct?

However the l2.ReadReq_avg_miss_atency is 114ns which is ~50 ns more than
the avgMemAccLat. I couldn't figure out the components contributing to this
50ns latency. Your thoughts on this is much appreciated.

Regards,
Prathap




On Thu, Nov 6, 2014 at 3:03 AM, Andreas Hansson <andreas.hans...@arm.com>
wrote:

>  Hi Prathap,
>
>  The avgMemAccLat does indeed include any queueing latency. For the
> precise components included in the various latencies I would suggest
> checking the source code.
>
>  Note that the controller is not just accounting for the static (and
> dynamic) DRAM latency, but also the static controller pipeline latency (and
> dynamic queueing latency). The controller static latency is two parameters
> that are by default also adding a few 10’s of nanoseconds.
>
>  Let me know if you need more help breaking out the various components.
>
>  Andreas
>
>   From: Prathap Kolakkampadath via gem5-users <gem5-users@gem5.org>
> Reply-To: Prathap Kolakkampadath <kvprat...@gmail.com>, gem5 users
> mailing list <gem5-users@gem5.org>
> Date: Wednesday, 5 November 2014 05:36
> To: Tao Zhang <tao.zhang.0...@gmail.com>, gem5 users mailing list <
> gem5-users@gem5.org>, Amin Farmahini <amin...@gmail.com>
> Subject: Re: [gem5-users] DRAM memory access latency
>
>  Hi Tao,Amin,
>
>  According to gem5 source, MemAccLat is the time difference between the
> packet enters in the controller and packet leaves the controller. I presume
>  this added with BusLatency and static backend latency should match with
> system.l2.ReadReq_avg_miss_latency. However i see a difference of approx
> 50ns.
>
>
>  As mentioned above if MemAccLat is the time a packet spends in memory
> controller, then it should include the queuing latency too. In that case
> the value of  avgQLat looks suspicious. Is the avgQlat part of
> avgMemAccLat?
>
>  Thanks,
> Prathap
>
>
>
> On Tue, Nov 4, 2014 at 3:11 PM, Tao Zhang <tao.zhang.0...@gmail.com>
> wrote:
>
>>  From the stats, I'd like to use system.mem_ctrls.avgMemAccLat as the
>> overall average memory latency. It is 63.816ns, which is very close to 60ns
>> as you calculated. I guess the extra 3.816ns is due to the refresh penalty.
>>
>> -Tao
>>
>> On Tue, Nov 4, 2014 at 12:10 PM, Prathap Kolakkampadath <
>> kvprat...@gmail.com> wrote:
>>
>>>  Hi Toa, Amin,
>>>
>>>
>>>  Thanks for your reply.
>>>
>>>  To discard interbank interference and queueing delay, i have
>>> partitioned the banks so that the latency benchmark has exclusive access to
>>> a bank. Also latency benchmark is a pointer chasing benchmark, which will
>>> generate a single read request at a time.
>>>
>>>
>>>  stats.txt says this:
>>>
>>> system.mem_ctrls.avgQLat
>>> 43816.35                       # Average queueing delay per DRAM burst
>>> system.mem_ctrls.avgBusLat
>>> 5000.00                       # Average bus latency per DRAM burst
>>> system.mem_ctrls.avgMemAccLat
>>> 63816.35                       # Average memory access latency per DRAM
>>> burst
>>> system.mem_ctrls.avgRdQLen
>>> 2.00                       # Average read queue length when enqueuing
>>> system.mem_ctrls.avgGap
>>> 136814.25                       # Average gap between requests
>>> system.l2.ReadReq_avg_miss_latency::switch_cpus0.data
>>> 114767.654811                       # average ReadReq miss latency
>>>
>>>  The average Gap between requests is equal to the L2 latency + DRAM
>>> Latency for this test. Also avgRdQLen is 2 because cache line size is 64
>>> and DRAM interface is x32.
>>>
>>>  Is the final latency sum of avgQLat + avgBusLat + avgMemAccLat ?
>>> Also when avgRdQLen is 2, i am not sure what amounts to high queueing
>>> latency?
>>>
>>>  Regards,
>>>  Prathap
>>>
>>>
>>>
>>> On Tue, Nov 4, 2014 at 1:38 PM, Amin Farmahini <amin...@gmail.com>
>>> wrote:
>>>
>>>>  Prathap,
>>>>
>>>>  You are probably missing DRAM queuing latency (major reason) and other
>>>> on-chip latencies (such as bus latency) if any.
>>>>
>>>>  Thanks,
>>>> Amin
>>>>
>>>>  On Tue, Nov 4, 2014 at 1:28 PM, Prathap Kolakkampadath via gem5-users
>>>> <gem5-users@gem5.org> wrote:
>>>>
>>>>>    Hello Users,
>>>>>
>>>>>  I am measuring DRAM worst case memory access latency(tRP+tRCD
>>>>> +tCL+tBURST) using a latency benchmark on arm_detailed(1Ghz) with 1MB
>>>>> shared L2 cache and  LPDDR3 x32 DRAM.
>>>>>
>>>>>  According to DRAM timing parameters, tRP = '15ns, tRCD = '15ns', tCL
>>>>> = '15ns', tBURST = '5ns'. Latency measured by the benchmark on cache hit 
>>>>> is
>>>>> 22 ns and on cache miss is  132ns. Which means DRAM memory access latency 
>>>>> ~
>>>>> 110ns. However according to calculation it should  be
>>>>> tRP+tRCD+tCL+tBurst+static_backend_latency(10ns) = 60ns.
>>>>>
>>>>>
>>>>>  The latency what i observe is almost 50ns higher than what it is
>>>>> supposed to be. Is there anything which I am missing? Do any one know what
>>>>> else could add to the DRAM memory access latency?
>>>>>
>>>>>  Thanks,
>>>>>  Prathap
>>>>>
>>>>>
>>>>>  _______________________________________________
>>>>> gem5-users mailing list
>>>>> gem5-users@gem5.org
>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
>>>>>
>>>>
>>>>
>>>
>>
>
> -- 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
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to