mem: Add a method to build multi-channel DRAM configurations
mem: Add a method to build multi-channel DRAM configurations

This patch adds a class method that allows easy creation of
channel-interleaved multi-channel DRAM configurations. It is enabled
by a class method to allow customisation of the class independent of
the channel configuration. For example, the user can create a MyDDR
subclass of e.g. SimpleDDR3, and then create a four-channel
configuration of the subclass by calling MyDDR.makeMultiChannel(4,
mem_start, mem_size).

markoshorro/gem5,samueldotj/TeeRISC-Simulator,yb-kim/gemV,rjschof/gem5,HwisooSo/gemV-update,rallylee/gem5,HwisooSo/gemV-update,aclifton/cpeg853-gem5,joerocklin/gem5,samueldotj/TeeRISC-Simulator,powerjg/gem5-ci-test,HwisooSo/gemV-update,TUD-OS/gem5-dtu,gedare/gem5,rallylee/gem5,qizenguf/MLC-STT,yb-kim/gemV,SanchayanMaity/gem5,powerjg/gem5-ci-test,yb-kim/gemV,zlfben/gem5,cancro7/gem5,austinharris/gem5-riscv,austinharris/gem5-riscv,austinharris/gem5-riscv,zlfben/gem5,Weil0ng/gem5,rjschof/gem5,joerocklin/gem5,sobercoder/gem5,qizenguf/MLC-STT,briancoutinho0905/2dsampling,rallylee/gem5,gem5/gem5,samueldotj/TeeRISC-Simulator,kaiyuanl/gem5,rallylee/gem5,Weil0ng/gem5,sobercoder/gem5,kaiyuanl/gem5,KuroeKurose/gem5,KuroeKurose/gem5,TUD-OS/gem5-dtu,gedare/gem5,rjschof/gem5,TUD-OS/gem5-dtu,KuroeKurose/gem5,aclifton/cpeg853-gem5,briancoutinho0905/2dsampling,HwisooSo/gemV-update,zlfben/gem5,KuroeKurose/gem5,SanchayanMaity/gem5,kaiyuanl/gem5,aclifton/cpeg853-gem5,gedare/gem5,SanchayanMaity/gem5,samueldotj/TeeRISC-Simulator,TUD-OS/gem5-dtu,powerjg/gem5-ci-test,briancoutinho0905/2dsampling,gem5/gem5,kaiyuanl/gem5,sobercoder/gem5,rjschof/gem5,joerocklin/gem5,Weil0ng/gem5,gem5/gem5,TUD-OS/gem5-dtu,SanchayanMaity/gem5,rallylee/gem5,zlfben/gem5,yb-kim/gemV,zlfben/gem5,briancoutinho0905/2dsampling,aclifton/cpeg853-gem5,joerocklin/gem5,joerocklin/gem5,rjschof/gem5,sobercoder/gem5,sobercoder/gem5,rjschof/gem5,markoshorro/gem5,rallylee/gem5,kaiyuanl/gem5,sobercoder/gem5,cancro7/gem5,TUD-OS/gem5-dtu,TUD-OS/gem5-dtu,HwisooSo/gemV-update,cancro7/gem5,cancro7/gem5,aclifton/cpeg853-gem5,gedare/gem5,KuroeKurose/gem5,briancoutinho0905/2dsampling,austinharris/gem5-riscv,gem5/gem5,joerocklin/gem5,austinharris/gem5-riscv,joerocklin/gem5,markoshorro/gem5,gem5/gem5,powerjg/gem5-ci-test,austinharris/gem5-riscv,rallylee/gem5,kaiyuanl/gem5,samueldotj/TeeRISC-Simulator,markoshorro/gem5,yb-kim/gemV,HwisooSo/gemV-update,briancoutinho0905/2dsampling,markoshorro/gem5,KuroeKurose/gem5,yb-kim/gemV,Weil0ng/gem5,powerjg/gem5-ci-test,gedare/gem5,samueldotj/TeeRISC-Simulator,yb-kim/gemV,qizenguf/MLC-STT,gem5/gem5,cancro7/gem5,qizenguf/MLC-STT,markoshorro/gem5,kaiyuanl/gem5,rjschof/gem5,KuroeKurose/gem5,gedare/gem5,qizenguf/MLC-STT,aclifton/cpeg853-gem5,cancro7/gem5,cancro7/gem5,joerocklin/gem5,HwisooSo/gemV-update,yb-kim/gemV,Weil0ng/gem5,Weil0ng/gem5,SanchayanMaity/gem5,aclifton/cpeg853-gem5,markoshorro/gem5,sobercoder/gem5,SanchayanMaity/gem5,qizenguf/MLC-STT,powerjg/gem5-ci-test,SanchayanMaity/gem5,briancoutinho0905/2dsampling,zlfben/gem5,powerjg/gem5-ci-test,qizenguf/MLC-STT,gem5/gem5,gedare/gem5,Weil0ng/gem5,zlfben/gem5,austinharris/gem5-riscv,samueldotj/TeeRISC-Simulator