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
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to