Hi Andreas,

As you said it shouldn't have to switch to another bank which doesn't has a
row hit. However if there is request in queue which is not row hit when it
enters the queue, has to become row hit after time tRP+tRCD. Then this
request will be scheduled according to FR-FCFS ahead of subsequent requests
in the queue which are also row hits to another bank. However in the
current code, activate and precharge is issued to a request in queue only
if there are no more row hits in the queue. Does this makes sense?

Thanks,
Prathap

On Fri, Nov 14, 2014 at 4:54 PM, Andreas Hansson <andreas.hans...@arm.com>
wrote:

>  Hi Prathap,
>
>  I am not sure I understand what you think is wrong here. If there are
> row hits, why should the controller switch to another bank (except to avoid
> starvation etc)?
>
>  It will switch once there are no row hits or the limit on in-row-hits is
> reached, and at that point it will switch to the request that is first
> ready, or FCFS if there is more than one that would be ready at the same
> time. Note that there are also constraints like tRRD etc that have to be
> respected.
>
>  If you want to study the behaviour on a larger scale, you can have a
> look at util/dram_sweep_plot.py (you need to run config/dram/sweep.py first
> for a given memory config), and look at the efficiency of the controller
> across a range of in-row-hits and bank parallelism. For the entire 3D
> surface the controller achieves a throughput in the order of 95% of what an
> oracle scheduler would.
>
>  Andreas
>
>   From: Prathap Kolakkampadath <kvprat...@gmail.com>
> Date: Friday, November 14, 2014 at 10:37 PM
> To: Andreas Hansson <andreas.hans...@arm.com>
> Cc: gem5 users mailing list <gem5-users@gem5.org>
> Subject: Re: [gem5-users] DRAMCTRL:Seeing an unusual behaviuor with
> FR-FCFS scheduler
>
>    Hello Andreas,
>
>  The above patch doesn't affect my scenario on a single rank. However, i
> suspect there is a bug in the FR-FCFS implementation in gem5.
>  Looks like, the requests are not overlapping. Precharge and/or activate
> has to be issued once a memory request entered the queue. So  in a queue,
> if there are few ahead read requests and few following
>  read requests all targeting to a same row in Bank0 to a read request
> which targets Bank1 and not a row hit. Worst case delay for Bank1 request
> should be tRP+rRCD. After this delay Bank1 request should also become a row
> hit (after the precharge and activate). However according to current
> implementation the request to Bank1 is served only after all the ahead and
> following row hits are done, as these timing parameters are set in
> doDRAMAccess(), which is called after reordering the queue.
>
>  Is this observation looks correct?
>
>  Thanks,
> Prathap
>
> On Fri, Nov 14, 2014 at 8:45 AM, Andreas Hansson <andreas.hans...@arm.com>
> wrote:
>
>>  Hi Prathap,
>>
>>  It would very well be a bug. We have got a small fix for the FRFCFS
>> about to go out (but it should not affect your scenario assuming It is a
>> single rank):
>>
>>  diff --git a/src/mem/dram_ctrl.cc b/src/mem/dram_ctrl.cc
>> --- a/src/mem/dram_ctrl.cc
>> +++ b/src/mem/dram_ctrl.cc
>> @@ -1483,8 +1489,8 @@
>>      // 1) Commands that access the same rank as previous burst
>>      //    and can prep the bank seamlessly.
>>      // 2) Commands (any rank) with earliest bank prep
>> -    if (!switched_cmd_type && same_rank_match &&
>> -        min_act_at_same_rank <= min_cmd_at) {
>> +    if ((bank_mask == 0) || (!switched_cmd_type && same_rank_match &&
>> +        min_act_at_same_rank <= min_cmd_at)) {
>>          bank_mask = bank_mask_same_rank;
>>      }
>>
>>  Could you give that a spin?
>>
>>  Thanks,
>>
>>  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: Friday, 14 November 2014 00:11
>> To: gem5 users mailing list <gem5-users@gem5.org>
>> Subject: [gem5-users] DRAMCTRL:Seeing an unusual behaviuor with FR-FCFS
>> scheduler
>>
>>   Hi Users,
>>
>>  For the following scenario:
>>
>>
>>  Read0 Read1 Read2 Read3 Read4 Read5 Read6 Read7 Read8 Read9 Read10
>> Read11
>>
>>  There are 12 reads in the read queue numbered in the order of arrival.
>>  Read 0 to Read3 access same row  of Bank1, Read4 access Bank0, Read5 to
>> Read8 access same row of Bank2 and Read9 to Read11 access same row of Bank3.
>>
>>  According to FR-FCFS scheduler, even there is only a single request
>> Read4 to Bank0, it should be scheduled after the Read0 to Read3 are
>> scheduled. Because within the window of Read0-Read3, the Read4 would have
>> done with precharge and activate and ready to schedule. Though Read5 and
>> Read9 are also ready, Read4 needs to be scheduled as the next row hit,
>> according to FCFS.
>>
>>  However i see a different behaviour where Read4 is scheduled only after
>> all other row hits to Bank2 and Bank3 is scheduled. Also i noticed  from
>> the debug prints that Read4 is not becoming a row_hit.
>>
>>  Are we missing to mark the read as row hit after precharge and
>> activate. I am trying to figure this out. Is my understanding correct?
>>
>>  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
>>
>
>
> -- 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