The problem arises when the IMC, the integrated memory controller, which is the hardware component of any processor responsible for accessing memory, becomes full and this happens when there are many requests. It is like a merchant in front of a very large queue of customers that he has to serve one by one. The key is that as the list of requests grows, there is more delay in serving customers at the end of the queue. If the clients are requests for memory by the CPU, this causes complete saturation of the IMC.
Who is the solution? Well, the easiest way is not to have one, but two different IMCs, which are in charge of being able to manage the requests in memory in parallel. Usually, for each interface external to the memory there is an associated IMC providing access to the RAM allocated to the processor.
Single channel vs. dual channel
Until the advent of DDR5, where each module supported two 32-bit memory channels instead of 64-bit memory, in general we could count the number of available channels by the number of supported DIMMs. by a motherboard divided by two, from such that we can identify a Single Channel motherboard by the fact that it has only 2 DIMM slots and a Dual Channel with 4.
For ease of use, they are generally identified by colors: two red and two black locations for example. In this way, motherboards usually have color codes in the memory slots to indicate where to place the DIMMs in the correct way to place the RA; into the appropriate sockets.
The point is, if we only have one module in the computer, it means that we will only have one 64-bit transmit channel per memory clock cycle. However, if we have two modules in the corresponding sockets, the bandwidth will double. Reality? The increase in performance is far from double. Especially if we have a motherboard designed to use a single memory channel, because in this case only one IMC will be used for communication with the memory. Except of course, as we said about the recently launched DDR5 where they use two memory channels per module.
How do I know which configuration I have?
To check whether the configuration of our PC is single or dual channel, programs like CPU-Z will suffice, where in the Memory tab we can check it directly without having to open our computer. Here we have to add a detail, most laptops with DDR4 memory and Dual Channel lower support, but since they only have one module installed, they work in Single Channel.
So if you have a pre-built laptop or PC and CPU-Z results in you having a single channel setup then don’t despair, you may be able to fix this by installing another memory module on the board. motherboard of your computer and thus get an additional performance bonus.
Why is the performance not doubled?
We have to start from the idea that when we talk about bandwidth we are actually talking about a theoretical limit which is that 100% of the data transmission time is done. The reality is that RAM does not work like that and there is an access period to determine which column and row of memory the processor wants to access where data is not sent and we also have to take into account the fact that requests are made by the IMC built into the CPU instead of the cores of it.
The use of the integrated memory controller is such that the cores do not have to wait time for the RAM to respond to them, these downtimes are a loss of performance and therefore the need for the IMC. The point is that at the level of CPU processing, having Dual Channel memory will never double the performance because this is a theoretical rate, an ideal which due to various limitations will never be achieved.
So, despite doubling the theoretical bandwidth, the actual increase in performance will reach this 100%, but it won’t if we were using only one memory channel. What is clear is that always having memory in Dual Channel will always give more performance than having it in Single Channel, which means that a motherboard with a limited module configuration is not only limited in expansion capacities, but also in performance.
Dual channel iGPU performance
GPUs, unlike CPUs, are throughput processors, this means that their performance will depend on the bandwidth and therefore the amount of data they can receive. In the case of integrated graphics, they perform very poorly with PC RAM compared to their counterparts in the form of graphics cards, even with the exact same configuration. We have to take into account that in PCs, GPUs have a different address space than CPU, so they are assigned a part of memory that the CPU cannot access.
The problem comes when CPU and GPU share the BMI to access memory and one would think straight away that RAM access time is equivalent to CPU access time plus GPU access time, but it is not. not the case, the reality is different. Since a contention is created, this results in access downtime by continually changing the IMC context. This is lethal in the face of processor access time, so the processor is assured of minimal access time on each memory channel and the rest is left to the integrated GPU.
Fortunately, GPUs aren’t vulnerable to latency, but they are vulnerable to bandwidth. This means that in a Dual Channel setup, if we use an iGPU to render a game, we will get twice the performance as in Single Channel, since the graphics chip receives half of the data to work with.