Hello guys, I used the stream_memspeed program (available on OS4Depot) to measure memory speed with the following two configurations:
1) 2GB module fitted to DIMM1 2) 2GB module fitted to DIMM1 & 2GB module fitted to DIMM3
However the second configuration should use interlaced controllers, so I would have expected a doubling of the memory bandwidth,according to the X1000 documentation (First_contact_Nemo_v1.5.pdf). Instead I get pretty much the same speed, according to the results of stream_memspeed.
Am I doing something wrong?
Note: AmigaOS4.1, due to the 2GB limit, only sees 2GB even in the second configuration where 4GB of RAM is mounted.
At first you have to be sure you use modules with exactly the same geometry ( size, speed, latency, rows...). The best way is to buy 2x2GB kit for dual channel. If you have different geometry, interleaving / dual channel not works.
And you can look on CFE, if there is some clue ( for example show dramcfg or similar command or serial debug ).
I can check it with my X1000, but not now - I have many unfinished project with other AmigaNG But I have to say, that memory controller of PA-Semi CPU is not ideal - for example I cannot found any combination with all 4 modules.
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
I played around with memory sticks and found that my (probably all) hardware seems to be defect when it comes to bank interleaving.
Either that or CFE was never tested with either more than 4 GB in place or all banks populated with modules.
Under WB only 2 GB are visible, i know that, but having (perfectly fine and usable) 4x 4 GB sticks in all the banks, i get sudden hardware(!) shutdowns as soon as i let ragemem run under WB. It always breaks when it starts testing the L2 cache.
Other programs display that behaviour too, memory hungry stuff, like ScummVM and ResidualVM.
This is with 16 GB and 8 GB in place on interleaved banks (i.e. bank 1 and 3, bank 2 and 4).
2x 16 GB on different banks i can't test due to lack of modules, but 2x 4 GB works perfectly fine under WB (if on different banks), no more sudden shutdown, nothing, stable as a rock, as soon as i plug the other two 4 GB modules in (same developer, same brand, same module) OR i set two of those modules on interleave,i get the dropouts
There were rumours about RAM: driver utilizing memory beyond 2 GB on AmigaOS 4 for RAM Disk: storage, hence the reason I still keep 8 GB in my X1000 since summer 2020. Now almost 4 years later, still no public available driver yet.
Yes, i know that that currently I can only see 2GB even though I have 4GB = 2x2GB installed.
I wonder if the 2 GB visible are the result of 1GB + 1GB taken from two interlaced RAM modules or if they are taken entirely from just one of the two RAM modules.
drHirudo wrote:There were rumours about RAM: driver utilizing memory beyond 2 GB on AmigaOS 4 for RAM Disk: storage, hence the reason I still keep 8 GB in my X1000 since summer 2020. Now almost 4 years later, still no public available driver yet.
It means, that program have to be coded with this feature. Like Rave for example. Rave from Daniel Jedlička is only program I know that use this. Maybe there are some more...
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
I believe there is no need for CFE to pass on this information. AmigaOS4 doesn't have to know if the memory is interleaved or not. It's the memory controllers that handle everything.
@AlfredOne Interesting reading, thanks for sharing results!
It is nice, that interleaving works with PA-Semi CPU. You are using modules with more ranks, and controller always interleaves the ranks, and in case of use two channels it interleaves also channels.
I think, that rank interleaving is something like: one rank can be accessed and second is refreshed in the same time - i.e. it looks like you not need refreshing cycle. What is for me interesting, that there are no any additional increase with read operations with dualchannel ( channel interleave ), only with write operations. I thought, that channel interleaving works like: I have two 64-bit channels, which operates like one 128-bit channel...
AmigaOS3: Amiga 1200 AmigaOS4: Micro A1-C, AmigaOne XE, Pegasos II, Sam440ep, Sam440ep-flex, AmigaOne X1000 MorphOS: Efika 5200b, Pegasos I, Pegasos II, Powerbook, Mac Mini, iMac, Powermac Quad
Not sure to be honest. Memory speed is low for any AmigaOne compared to PCs with equivalent DDR technkgy. It could be related to the fact that the Pa6t has a hardware prefetcher.