Hi Eliot,

gem5 splits the memory system modeling into two parts: 1) the memory
controller and 2) the memory interface. The memory interface can be a
DRAMInterface or NVMInterface and provides many parameters that are
configured to achieve a specific memory device model (e.g., DDR4, GDDR5).
The available configuration parameters and their values for different
devices can be found in src/mem/DRAMInterface.py (this file provides
definitions of different timing parameters).

The memory controller usually is agnostic to the actual timing parameters
used by a memory interface and relies on a fixed interface to talk to the
device. However, we currently have three types of memory controllers in
gem5: MemCtrl (which can be used with a single memory interface of any
type), HeteroMemCtrl (which can be used with two memory interfaces at the
same time, a DRAM and an NVM interface), and HBMCtrl (which is used with
two HBM2 interfaces, where each interface is modeling a pseudo channel).

Some references that might be helpful to understand gem5's memory system
model include:

- gem5 workshop presentation should help explain the NVM model of gem5:
https://www.gem5.org/2020/05/27/memory-controller.html (Also, one of the
videos in this presentation discusses the refactorization of the original
mem controller into mem controller and memory interface).
- Minutes 37-52 of this gem5 bootcamp presentation:
https://www.youtube.com/live/hciJ9rguats?feature=share
- The original gem5 memory controller model paper:
https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6844484

-Ayaz

On Thu, Mar 9, 2023 at 2:12 PM Eliot Moss via gem5-users <
gem5-users@gem5.org> wrote:

> On 3/9/2023 3:01 PM, Eliot Moss via gem5-users wrote:
> > Dear gem5'ers - In my current simulation work it would be helpful to
> > understand better DRAM and NVM configuration.  How do I determine, and
> how do
> > I set, the number of channels, interleaving, etc.?  I'm far from being an
> > expert in memory devices / boards, so something that starts more from
> > fundamentals would be helpful (channels, ranks, banks, devices, etc.).
>
> Ok, in terms of the usual meaning of the concepts, I have found a
> number of resources on the web.  However, that still leaves a gap
> as to how to configure things in gem5 :-) ...  I'm hoping someone
> can enlighten me or points me to resources that can :-) ...
>
> Thanks - EM
> _______________________________________________
> gem5-users mailing list -- gem5-users@gem5.org
> To unsubscribe send an email to gem5-users-le...@gem5.org
>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to