-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviews.gem5.org/r/3354/#review8195
-----------------------------------------------------------


If I'm reading this patch correctly, I'm afraid I feel similarly about it as 
the Ruby memory queuing patch: It doesn't really address the core problem that 
we want end-to-end finite buffering in DRAMCtrl. Instead, it introduces the 
heavy duty flow control structure, and jumps straight to using token flow 
control as the only solution with finite buffering.

I've now seen sims that show heavy retries (up to 74% of write memory accesses 
in extreme cases) with ACK/NACK flow control and finite DRAMCtrl buffering 
(i.e. my patches). I'm convinced that token flow control to the memory 
controller is important in a real system, sure. I'm not clear, however, that 
(1) users other than AMD want token flow control as the only finite queuing 
option to DRAMCtrl, and (2) the ACK/NACK structure is insufficient for modeling 
purposes.

- Joel Hestness


On Feb. 29, 2016, 6:50 p.m., Matthew Poremba wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviews.gem5.org/r/3354/
> -----------------------------------------------------------
> 
> (Updated Feb. 29, 2016, 6:50 p.m.)
> 
> 
> Review request for Default.
> 
> 
> Repository: gem5
> 
> 
> Description
> -------
> 
> Changeset 11354:81cb93c4a16c
> ---------------------------
> mem: Add unified queue to DRAMCtrl
> 
> Add optional unified queue to the DRAMCtrl to serve as a front end queue for
> flow control. This prevents needing individual flow control for both read and
> write queues by exposing only one queue at the slave side. This makes flow
> control more generic and simplistic.
> 
> Requests are placed in the unified queue and remain there until a response
> is sent back to the requestor. A logical unified queue is represented by
> the union of unifiedQueue and unifiedPending. unifiedPending is used for
> requests that have already been issued to the memory core and is useful for
> reducing the complexity of searching for unissued requests in unifiedQueue.
> The size of the unified queue as well as the number of requests that can be
> searched in a given cycle can be configured in DRAMCtrl parameters. It can be
> disabled altogether (and is by default) by setting use_unified_buffer False
> to default to normal behavior in gem5.
> 
> 
> Diffs
> -----
> 
>   src/mem/DRAMCtrl.py 31c5786945b447b372c3b7d346aea8fa6208577c 
>   src/mem/dram_ctrl.hh 31c5786945b447b372c3b7d346aea8fa6208577c 
>   src/mem/dram_ctrl.cc 31c5786945b447b372c3b7d346aea8fa6208577c 
> 
> Diff: http://reviews.gem5.org/r/3354/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Matthew Poremba
> 
>

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to