----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://reviews.gem5.org/r/3331/ -----------------------------------------------------------
Review request for Default. Repository: gem5 Description ------- Changeset 11332:1b834b01d375 --------------------------- ruby: [DRAFT] Finite dir <-> mem buffering and flow-control Ruby directory controllers used unbounded Queued*Ports to communicate with memory controllers. This causes buffer bloat in memory intensive applications, resulting in unreasonably high memory access latencies. To fix this issue, adjust the directory <-> memory interface to implement flow control, including retries, and add the capability to set finite buffer sizes. Diffs ----- src/mem/protocol/RubySlicc_MemControl.sm 10647f5d0f7f src/mem/ruby/slicc_interface/AbstractController.hh 10647f5d0f7f src/mem/ruby/slicc_interface/AbstractController.cc 10647f5d0f7f src/mem/slicc/symbols/StateMachine.py 10647f5d0f7f src/mem/protocol/RubySlicc_Defines.sm 10647f5d0f7f Diff: http://reviews.gem5.org/r/3331/diff/ Testing ------- Changed MOESI_hammer directory to use the new memory interface as an example: http://reviews.gem5.org/r/3332/ Tested MOESI_hammer with finite buffering using patch here: http://pages.cs.wisc.edu/~hestness/links/MOESI_hammer_test_finite_queues Ran this microbenchmark: http://pages.cs.wisc.edu/~hestness/links/cpu_memory_demand As an example, this was a command line: outdir=MOESI_hammer_dramctrl_ruby_finite_buffering; mkdir -p $outdir; ../build/X86_MOESI_hammer/gem5.opt --debug-flag=DRAM --outdir=$outdir ../configs/example/se.py --ruby --cpu-type=detailed --l1d_size=4kB --l2_size=4kB -c gem5_fusion_cpu_memory_demand -o "-a 4096 -i 10 -s 16" --output=$outdir/system.out --errout=$outdir/system.out >& $outdir/gem5.out Thanks, Joel Hestness _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
