Hi Hassan,

I think I wasn’t clear. I am using either DDR or HBM at a time (not both at the 
same time), but the  channel interleaving isn’t working for any of them.

Regards
Yasir

From: gem5-users [mailto:gem5-users-boun...@gem5.org] On Behalf Of hassan yamin
Sent: 20 March 2019 15:06
To: gem5 users mailing list <gem5-users@gem5.org>
Subject: Re: [gem5-users] Problem with Multiple Channels and Channel 
Interleaving

I think you can only use one type of memory. Memory hash interleaving is mostly 
for channel selection.

Hassan

On Wed, 20 Mar 2019, 13:41 Qureshi Yasir Mahmood, 
<yasir.qure...@epfl.ch<mailto:yasir.qure...@epfl.ch>> wrote:
Hi,

I am trying to use multiple channels in an ARM FS simulation with both DDR4 and 
HBM memory models. I use --mem-channels=8 and --mem-size=4GB   options to 
configure the memory size and number of channels.

In config.ini I do see 8 memory controllers being initialized (0 to 7), but the 
memory traffic always goes to just one memory controller, i.e. mem_ctrls7.

I enabled the AddrRanges debug flag, and it shows that the ranges were 
allocated correctly

      0: system.membus: Adding range [0x80000000 : 0x17fffffff], [9 : 7] XOR 
[22 : 19] = 0 for id 6
      0: system.membus: Received range change from slave port 
system.mem_ctrls1.port
      0: system.membus: Adding range [0x80000000 : 0x17fffffff], [9 : 7] XOR 
[21 : 19] = 1 for id 7
      0: system.membus: Received range change from slave port 
system.mem_ctrls2.port
      0: system.membus: Adding range [0x80000000 : 0x17fffffff], [9 : 7] XOR 
[21 : 19] = 2 for id 8
      0: system.membus: Received range change from slave port 
system.mem_ctrls3.port
      0: system.membus: Adding range [0x80000000 : 0x17fffffff], [9 : 7] XOR 
[21 : 19] = 3 for id 9
      0: system.membus: Received range change from slave port 
system.mem_ctrls4.port
      0: system.membus: Adding range [0x80000000 : 0x17fffffff], [9 : 7] XOR 
[21 : 19] = 4 for id 10
      0: system.membus: Received range change from slave port 
system.mem_ctrls5.port
      0: system.membus: Adding range [0x80000000 : 0x17fffffff], [9 : 7] XOR 
[21 : 19] = 5 for id 11
      0: system.membus: Received range change from slave port 
system.mem_ctrls6.port
      0: system.membus: Adding range [0x80000000 : 0x17fffffff], [9 : 7] XOR 
[21 : 19] = 6 for id 12
      0: system.membus: Received range change from slave port 
system.mem_ctrls7.port
      0: system.membus: Adding range [0x80000000 : 0x17fffffff], [9 : 7] XOR 
[21 : 19] = 7 for id 13
      .
      .
     .
      0: system.membus: -- Merging range from 8 ranges
      0: system.membus: -- Adding merged range [0x80000000 : 0x17fffffff]

I have tried to turn off the XOR hashed interleaving, but it did not help 
either. I have used both STREAM and also mmap on /dev/mem to allocate memory on 
selected physical addresses, to be sure what address I am accessing, but the 
accesses always end up in mem_ctrls7.

Can anyone help identify where the problem is ? Is it a problem in the coherent 
Xbar, which is the being used as the system bus ?

Regards
Yasir


_______________________________________________
gem5-users mailing list
gem5-users@gem5.org<mailto:gem5-users@gem5.org>
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to