I'm looking for a way, under any configuration/OS(windows or linux)/programming language you suggest to simultaneously access memory addresses, that are under different channels, meaning the access will happen simultaneously.

As far as I know, it is not trivial, any piece of code, references to research papers or other resources would really help.

Edit: To elaborate how I see it.

Address A under channel X and Address B under channel Y. Now assume 2 cores issue a request to write, for example, using _mm_stream_pi for instance to bypass CPU cache. The requests "reach" the controller which might serial the "requests" but issue them to different channels.

Now what I need is a way to write to different addresses which are mapped into different channels.

  • \$\begingroup\$ It is not entirely clear what you mean by simultaneous and channels. The closest I can envisage is dual port ram but two devices cannot write the same address at the same time as that would create a conflict - who would win? How does dram specifically make a difference? \$\endgroup\$ – Kartman Dec 16 '20 at 8:40
  • \$\begingroup\$ @Kartman Thanks for the response. I've said, addresses, not singular. The use of "simultaneous" might confuse. I will elaborate with an example for how I see it. \$\endgroup\$ – Aviel Fedida Dec 16 '20 at 9:14
  • \$\begingroup\$ Each channel go to specific DRAM slots. Pretty sure the choice of the channel is therefore decided solely by the memory controller hardware in the CPU, probably based on which physical address is accessed, not based on which core is doing the access. As an application, you have no control on that. Even the OS most likely does not have control on that. What's the purpose anyway? \$\endgroup\$ – dim Dec 16 '20 at 11:07
  • \$\begingroup\$ Separate banks of memory, interfaced to separate memory controllers, is the way I normally do it. But that's on an FPGA. Hey, that's fair play on an electronics group. If you're stuck with CPU/OS/software I think you may need to relax the definition of "simultaneous". Precisely how "simultaneous" do you really need? \$\endgroup\$ – user_1818839 Dec 16 '20 at 15:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.