Dual channel is the ability that some memory controllers have to expand the width of their data busses from 64 to 128 bits. Considering that everything remains the same (clock speeds, for example), the memory maximum theoretical transfer rate is doubled by the use of this technique.
The maximum theoretical transfer rate (MTTR) is calculated using this formula:
MTTR = real clock rate x data transferred per cycle x bits transferred per cycle / 8
Or
MTTR = DDR clock rate x bits transferred per cycle / 8
Memories based on DDR (Double Data Rate) technology such as DDR-SDRAM, DDR2-SDRAM and DDR3-SDRAM transfer two data per clock cycle. Because of that they achieve double the transfer rate compared to traditional memories (such as the original SDRAM) running at the same clock rate. Because of that DDR-based memories are usually labeled with double their real clock rate. For example, DDR2-800 memories in reality work at 400 MHz transferring two data per clock cycle, and thus are labeled as being an “800 MHz” device, even though the clock signal doesn’t really work at 800 MHz.
So in the above formulas you to multiply the real clock rate by two, i.e. use the DDR clock rate.
So a DDR2-800 memory module – which is a 64-bit device, as mentioned before – has a maximum theoretical transfer rate of 6,400 MB/s (800 MHz x 64 / 8). This is why memory modules using DDR2-800 memory chips are also called PC2-6400. This number refers to the memory’s maximum theoretical transfer rate in MB/s (megabytes per second).
If we enable dual channel technique with DDR2-800 modules, the memory subsystem maximum theoretical transfer rate is doubled, jumping from 6,400 MB/s to 12,800 MB/s (800 MHz x 128 / 8), as we will be transferring double the amount of data (128 bits vs. 64 bits) each clock cycle.
It is very important to notice that these transfer rates are “theoretical”. When we calculate them we are assuming that a data transfer will occur at each clock cycle (i.e. that on a DDR2-800 memory 800,000,000 transfers per second will occur), which in fact never happens, because no CPU or memory controller is transferring data 100% of the time. That is why when you measure the actual memory transfer from your system using a program such as Sandra you always get a value lower than the maximum theoretical transfer rate.
It is also important to notice that the performance increase is achieved only on the memory subsystem; a 100% theoretical performance increase does not translate into a 100% performance increase in your whole computer. Only a small percentage of this memory performance increase will be reflected on the overall system performance.
At this moment we want to explain in details what physically happens with the memory data bus, because we’ve seen a lot of wrong information being posted on our forums about how dual channel technique works.
Let’s first assume a system that doesn’t support dual channel feature (i.e. a single channel system).
When we say that the memory data bus is 64-bit wide, this means that there 64 wires (yes, physical wires on the motherboard) connecting the memory controller and the memory sockets. These wires are labeled D0 thru D63. The memory data bus is shared among all memory sockets. The address and control busses will activate the proper memory socket depending on the address where data must be stored or read from. We illustrate this on Figure 2.

click to enlarge
Figure 2: How single channel works.
On systems supporting dual-channel technology, the memory data bus is expanded to 128 bits. This means that on such systems there are 128 wires connecting the memory controller and the memory sockets. These wires are labeled D0 thru D127. Since each memory module can only accept 64 bits per cycle, two memory modules are used to fill the 128-bit data bus. So for dual-channel technology to work you need to have an even number of memory modules on your system (assuming that your AMD CPU or Intel chipset support this technology, of course). If you install just one module this technique won’t work because memory will still be accessed 64 bits per cycle. In other words, dual channel works by accessing two memory modules in parallel, i.e. at the same time.

click to enlarge
Figure 3: How dual channel works.
Because the two modules are accessed at the same time, they must be identical (same capacity, same timings and same clock rate).