There are many memory technologies to choose from but only a few are practical. The choice is influenced primarily by capacity and access speed. Generally speaking:
That is enough for the moment; this is not the place to go into all the details of why. Ask if you care or see below!
Exploration: What Every Programmer Should Know About Memory (Drepper 2007) is an excellent article although it is rather long (and, perhaps, rather detailed) for most programmers!Here are some short videos from Microchip Technology on memory technologies. They are a bit closer to ‘engineering’ than ‘architecture’ but they make some relevant points quite well. The more significant technologies are emboldened.
The bits you definitely should remember are:
Chip-chip links involve longer wires than on-chip connections and, hence are slower and more power-hungry. Shortening connections is currently of significant interest.
More exploration: Rather than the flat PCB (Printed Circuit Board) connection some vertical connection may be used. You could check out:
- PoP (Package-on-Package) e.g. as used on the Raspberry Pi.
- Hybrid Memory Cube (HMC) with chips stacked directly within a package.
DRAM has enough properties which may be visible to the hardware architect – and even the software programmer – that it forms the subject of the next page.
Next: SRAM.