Thanks Andreas.

On Sun, Jul 12, 2015 at 5:55 AM, Andreas Hansson <andreas.hans...@arm.com>
wrote:

>  Hi Prathap,
>
>  Indeed, that’s the one.
>
>  The controller is quite well tested, but if you’ve found a bug the
> easiest is to post a patch on the reviewboard.
>
>  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: Friday, 10 July 2015 18:41
>
> To: gem5 users mailing list <gem5-users@gem5.org>
> Subject: Re: [gem5-users] Suspecting bubbles in the DRAM controller
> command bus
>
>    Hello Andreas,
>
>  Ok. So below code make sure that the next scheduling decision happens
> early enough. Is that correct?
>      // Update the minimum timing between the requests, this is a
>     // conservative estimate of when we have to schedule the next
>     // request to not introduce any unecessary bubbles. In most cases
>     // we will wake up sooner than we have to.
>     nextReqTime = busBusyUntil - (tRP + tRCD + tCL);
>
>  Thanks,
>  Prathap
>
> On Fri, Jul 10, 2015 at 11:51 AM, Andreas Hansson <andreas.hans...@arm.com
> > wrote:
>
>>  Hi Prathap,
>>
>>  If we have no row hits left in the queue, the open-adaptive (and
>> close-adaptive) policy will auto precharge. The next scheduling decision
>> will happen early enough that we can hide any preparation needed to not
>> introduce bubbles on the bus. Thus, the activate will happen early enough
>> to get 100% utilisation if this is possible.
>>
>>  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: Friday, 10 July 2015 17:11
>> To: gem5 users mailing list <gem5-users@gem5.org>
>> Subject: Re: [gem5-users] Suspecting bubbles in the DRAM controller
>> command bus
>>
>>   Hello Andreas,
>>
>>  I am still not very clear.
>> >> If we have not already precharged, we need to take the hit and do it
>> now.
>>  What If we don't have any row hits left in the queue? I agree that with
>> open-adaptive policy, the Bank1 will be auto precharged. According to the
>> code snippet below, it still has to issue an activate now. Shouldn't this
>> have done back in time(Bank level parallelism)?
>>
>>  Thanks,
>>  Prathap
>>
>>
>>
>>
>>
>>
>> On Fri, Jul 10, 2015 at 2:16 AM, Andreas Hansson <andreas.hans...@arm.com
>> > wrote:
>>
>>>  Hi Prathap,
>>>
>>>  The expression ensures that we do not “go back in time” when deciding
>>> to precharge the bank. If we have not already precharged, we need to take
>>> the hit and do it now. For the access pattern you describe, with an
>>> closed-adaptive or open-adaptive page policy we will issue the last column
>>> access with an auto-precharge. In any case, if R0-9 are to bank 0 and R10
>>> to bank 1 then we can prepare R10 without the need to precharge bank 0.
>>>
>>>  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: Thursday, 9 July 2015 18:26
>>> To: gem5 users mailing list <gem5-users@gem5.org>
>>> Subject: [gem5-users] Suspecting bubbles in the DRAM controller command
>>> bus
>>>
>>>   Hello Users,
>>>
>>>  I suspect the DRAM controller code is adding unwanted bubbles in the
>>> command bus.
>>>
>>>  Consider there are 10 row hit read requests- R0 and R9- in the queue,
>>> all targeting Bank0 and a Row miss request- R10 -to Bank1 of same rank and
>>> numbered in the arrival order.  According to FR-FCFS in open-page policy,
>>> the DRAM controller process all row-hit requests to Bank0 and then choose
>>> the row-miss request to Bank1. I suspect the problem lies here in the
>>> controller code, when it updates the access latency of the row miss
>>> request- R10 - to bank1.
>>>
>>> According to JEDEC timing constraints, the controller can issue
>>> Precharge  to another bank after a clock cycle(tCK) delay and Activate
>>> after tRRD cycles delay(ACT-ACT delay between two banks). This means, by
>>> the time DRAM controller process the 10 row hit requests, the Bank1 should
>>> be precharged and activated.
>>>
>>>
>>>  However, I am not sure if this is taken care of in the below snippet
>>> of code.
>>>
>>> if (bank.openRow == dram_pkt->row) {
>>>         // nothing to do
>>>     } else {
>>>         row_hit = false;
>>>
>>>         // If there is a page open, precharge it.
>>>         if (bank.openRow != Bank::NO_ROW) {
>>>             *prechargeBank(bank, std::max(bank.preAllowedAt,
>>> curTick()))*;
>>>         }
>>>
>>>         // next we need to account for the delay in activating the
>>>         // page
>>>         Tick act_tick = std::max(bank.actAllowedAt, curTick());
>>>
>>>         // Record the activation and deal with all the global timing
>>>         // constraints caused be a new activation (tRRD and tXAW)
>>>         activateBank(bank, act_tick, dram_pkt->row);
>>>
>>>         // issue the command as early as possible
>>>         cmd_at = bank.colAllowedAt;
>>>     }
>>>
>>>  shouldn't this be
>>>
>>> *prechargeBank(bank, std::max(bank.preAllowedAt, dram_pkt->entrytime)*;
>>>
>>>  I am not sure if my understanding is correct. Please clarify.
>>>
>>>  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.
>>>
>>> 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
>>>
>>
>>
>> -- 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
>>
>
>
> -- 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
>
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to