RAM
Random Access Memory is the most common type.
The slots used for RAM are Dual Inline Memory Modules, or DIMM slots. These are dual because the connectors on each side of the stick are different.
The data going in and out of DIMMs goes in 64 bit data width.
SO-DIMM modules are about half the width as DIMM slots, and thus are referred to as “Small Outline” DIMM, and thus used on phones, tablets, and laptops.
The black modules on DIMM modules are the Dynamic Random Access Memory, or DRAM, modules. This is the actual memory, and the modules are constantly being refreshed. The “random” means that data can be accessed directly.
On desktops and other modern devices, the RAM modules are not just Dynamic, they are also Synchronous: thus we now have SDRAM modules. these are synced with the system clock, meaning tasks and queues can be created in an orderly fashion, instead of having data being set out of sync with the system clock.
Part of the Double Data Rate specification is that it is dual data - meaning that for every clock cycle it can send data twice - 128 bits per cycle. This is an improvement over older SDR data which had half the bandwith, since it could only do once block of data per cycle.
DDR3 was twice as fast as DDR2 and supported up to 16 GB. DDR4 supports 64GB/DIMM and is also faster than DDR3.
DDR5 also has a max of of 64GB, but it is faster than DDR4 (and can easily use ECC).
Memory types
Virtual memory is the same thing as a swap file. This is memory data written to a disk used when the RAM capacity us running out.
Another technology to speed up memory is multi-channel memory (dual, triple, or quad channel). This is a system that allows memory to be sent to various sticks for faster processing - much like a RAID 5 array, I suppose. Important that the memory combinations should match.
Memory that checks itself is often used in dataservers and other servers. One type of this memory is Parity Memory, which adds an additional parity bit to try and detect errors - but it is unable to correct them, nor is it 100% reliabile.
To correct memory, we must use Error Correcting memory.