Hello Andreas,

Please see my comments below

Thanks,
Prathap

On Wed, Nov 11, 2015 at 12:38 PM, Andreas Hansson <andreas.hans...@arm.com>
wrote:

> Hi Prathap,
>
> I don’t quite understand the statement about the second CAS being issued
> before the first one. FCFS by construction won’t do that (in any case,
> please do not use FCFS for anything besides debugging, it’s really not
> representative).
>

>>>> This could happen even in fr-fcfs, incase a hit request arrives soon
after a miss request has been selected by the scheduler.

>
> The latency you quote for access (2), is that taking the colAllowedAt and
> busBusyUntil into account? Remember that doDRAMAccess is not necessarily
> coinciding with then this access actually starts.
>

>>>> My point here is a  CAS to a bank has to be issued as soon as the bank
is available. In that case, the request 2 should be ready before request
one. However, in the current implementation, "all CAS are strictly ordered".

>
> It could very well be that there is a bug, and if there is we should get
> it sorted.
>
>>>> I believe that this could be a bug.

>
> Andreas
>
> From: gem5-users <gem5-users-boun...@gem5.org> on behalf of Prathap
> Kolakkampadath <kvprat...@gmail.com>
> Reply-To: gem5 users mailing list <gem5-users@gem5.org>
> Date: Wednesday, 11 November 2015 at 17:43
>
> To: gem5 users mailing list <gem5-users@gem5.org>
> Subject: Re: [gem5-users] Modelling command bus contention in DRAM
> controller
>
> Hello Andreas,
>
> I believe it is restrictive.
> Below is the DRAM trace under fcfs scheduler for two requests, where first
> request is a RowMiss request to Bank0
> and second request is a RowHit request to Bank1.
>
> 1) *Memory access latency of first miss request*.
>     From the trace, the Memory access latency of the first miss request is
> 52.5ns (tRP(15) + tRCD(15) + tCL(15) + tBURST(7.5)).
>     This is expected.
> 2) *Memory access latency of second request, which is a Hit to a
> different Bank.*
>    From the trace, the memory access latency for the second request is
> also 52.5ns
>    This is unexpected. CAS of this ready request should have issued before
> the CAS of the first Miss request.
>
> In doDRAMAccess() the miss request is updating the next read/write burst
> of all banks, thus the CAS of Ready request
> can now be issued only after the CAS of the Miss Request.
>
> 321190719635810: system.mem_ctrls: Timing access to addr 4291233984,
> rank/bank/row 0 0 65422
> 321190719635810: system.mem_ctrls: RowMiss:READ
> 321190719635810: system.mem_ctrls: Access to 4291233984, ready at
> 321190719688310 bus busy until 321190719688310.
> 321190719643310: system.mem_ctrls: Timing access to addr 3983119872,
> rank/bank/row 0 1 56019
> 321190719643310: system.mem_ctrls: RowHit:READ
> 321190719643310: system.mem_ctrls: Access to 3983119872, ready at
> 321190719695810 bus busy until 321190719695810.
>
> Please let me know what you think.
>
> Thanks,
> Prathap
>
>
> On Wed, Nov 11, 2015 at 3:00 AM, Andreas Hansson <andreas.hans...@arm.com>
> wrote:
>
>> Hi Prathap,
>>
>> Could you elaborate on why you think this line is causing problems. It
>> sounds like you are suggesting this line is too restrictive?
>>
>> It simply enforces a minimum col-to-col timing, there could still be
>> other constraints that are more restrictive.
>>
>> Andreas
>>
>> From: gem5-users <gem5-users-boun...@gem5.org> on behalf of Prathap
>> Kolakkampadath <kvprat...@gmail.com>
>> Reply-To: gem5 users mailing list <gem5-users@gem5.org>
>> Date: Tuesday, 10 November 2015 at 21:30
>>
>> To: gem5 users mailing list <gem5-users@gem5.org>
>> Subject: Re: [gem5-users] Modelling command bus contention in DRAM
>> controller
>>
>> Hi Andreas,
>>
>> To be more precise, I believe the below code snippet in doDRAMAccess(),
>> should be called only  for the Row Hit request. For a Row Miss request why
>> do we have to update the bank.colAllowedAt for all the Banks?
>>
>> // update the time for the next read/write burst for each
>>
>>      // bank (add a max with tCCD/tCCD_L here)
>>
>>      ranks[j]->banks[i].colAllowedAt = std::max(cmd_at + 
>> cmd_dly,ranks[j]->banks[i].colAllowedAt)
>>
>>
>> Thanks,
>>
>> Prathap
>>
>>
>>
>> On Tue, Nov 10, 2015 at 12:13 PM, Prathap Kolakkampadath <
>> kvprat...@gmail.com> wrote:
>>
>>> Hi Andreas,
>>>
>>> As you said all the act-act are taken in to account.
>>> All col-to-col is taken in to account except, if there is a open
>>> request(Hit) after a closed request(Miss).
>>> If i am using* FCFS* scheduler, and there are two requests in the queue
>>> Request1 and Request2 like below, according
>>> to the current implementation CAS of Request2 is only issued after CAS
>>> of Request1.  Is that correct?
>>> I don't see in doDramAccess(), where the CAS of second request is
>>> updated ahead of CAS of first request.
>>>
>>> *Request1@Bank1 (PRE-ACT-CAS) --> Request2@Bank2 (CAS)*
>>>
>>> Could you please clarify?
>>>
>>> I will also take a look into the util/dram_sweep_plot.py.
>>>
>>> Thanks,
>>> Prathap
>>>
>>> On Tue, Nov 10, 2015 at 9:41 AM, Andreas Hansson <
>>> andreas.hans...@arm.com> wrote:
>>>
>>>> Hi Prathap,
>>>>
>>>> All the col-to-col, act-to-act etc are taken into account, just not
>>>> command-bus contention. Have a look at util/dram_sweep_plot.py for a
>>>> graphical “test bench” for the DRAM controller. As you will see, it never
>>>> exceeds the theoretical max. This script relies on the
>>>> configs/dram/sweep.py for the actual generation of data.
>>>>
>>>> Andreas
>>>>
>>>> From: gem5-users <gem5-users-boun...@gem5.org> on behalf of Prathap
>>>> Kolakkampadath <kvprat...@gmail.com>
>>>> Reply-To: gem5 users mailing list <gem5-users@gem5.org>
>>>> Date: Monday, 9 November 2015 at 21:53
>>>> To: gem5 users mailing list <gem5-users@gem5.org>
>>>> Subject: Re: [gem5-users] Modelling command bus contention in DRAM
>>>> controller
>>>>
>>>> Hello Andreas,
>>>>
>>>> One problem could be when there is a Miss request followed by a Hit
>>>> request. Taking the below example, initially queue has only one request
>>>> R1(Miss), as soon as the this request is selected there
>>>> is another request in the queue R2(Hit). Here CAS of R2 is ready and
>>>> can be issued right away in the next clock cycle. However,  i believe in
>>>> the simulator, while it computes the ready time of R1, it also recomputes
>>>> the
>>>> next CAS that can be issued to other Banks. Thus the CAS of R2 can now
>>>> be issued only after the CAS of R1.  If i am right, this could be a
>>>> problem?
>>>>
>>>> Request1@Bank1 (PRE-ACT-CAS) --> Request2@Bank2 (CAS)
>>>>
>>>> Thanks,
>>>> Prathap
>>>>
>>>> On Mon, Nov 9, 2015 at 1:27 PM, Andreas Hansson <
>>>> andreas.hans...@arm.com> wrote:
>>>>
>>>>> Hi Prathap,
>>>>>
>>>>> Command-bus contention is intentionally not modelled. The main reason
>>>>> for this is to keep the model performant. Moreover, in real devices the
>>>>> command bus is typically designed to _not_ be a bottleneck. Admittedly 
>>>>> this
>>>>> choice could be reassessed if needed.
>>>>>
>>>>> Andreas
>>>>>
>>>>> From: gem5-users <gem5-users-boun...@gem5.org> on behalf of Prathap
>>>>> Kolakkampadath <kvprat...@gmail.com>
>>>>> Reply-To: gem5 users mailing list <gem5-users@gem5.org>
>>>>> Date: Monday, 9 November 2015 at 18:25
>>>>> To: gem5 users mailing list <gem5-users@gem5.org>
>>>>> Subject: [gem5-users] Modelling command bus contention in DRAM
>>>>> controller
>>>>>
>>>>>
>>>>> Hello Users,
>>>>>
>>>>> After closely looking at the doDRAMAccess() of dram controller
>>>>> implementation in GEM5, i suspect that the current implementation may not
>>>>> be taking in to account the command bus contention that could happen if
>>>>> DRAM timing constraints take particular values.
>>>>>
>>>>> For example in the below scenario, the queue has two closed requests
>>>>> one to Bank1 and other to Bank2.
>>>>>
>>>>> Request1@Bank1 (PRE-ACT-CAS) --> Request2@Bank2 (PRE-ACT-CAS)
>>>>>
>>>>> Lets say tRP(8cycles), tRCD(8cycles), tCL(8cycles), and tRRD(8
>>>>> cycles). In this case ACT of R2 and CAS of R1 becomes active at the same
>>>>> time.
>>>>> At this point one command needs to be delayed by one clock cycle. I
>>>>> don't see how simulator is handling this?  If the simulator is handling
>>>>> this, could someone please point me to the code snippet where this is
>>>>> handled.
>>>>>
>>>>>
>>>>> Thanks,
>>>>> Prathap
>>>>>
>>>>>
>>>>> ------------------------------
>>>>>
>>>>> -- 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.
>>>>>
>>>>> _______________________________________________
>>>>> 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.
>>>>
>>>> _______________________________________________
>>>> 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.
>>
>> _______________________________________________
>> 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.
>
> _______________________________________________
> gem5-users mailing list
> gem5-users@gem5.org
> 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