----------------------------------------------------------- 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
