Introduction to memory

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:

SRAM
Static RAM has an area cost/bit which is a lot less than processor registers but higher than DRAM. It is quite fast and provides genuine random access. In our main memory hierarchy it is used in all cache levels.
SRAM chips are manufactured with the same steps as processing chips and can easily be integrated with processors and other logic.

DRAM/SDRAM
Dynamic RAM has a low area cost/bit. It is slow compared to processor cycles and the timing varies somewhat depending on access patterns. It forms the bulk of the addressable memory in most systems.
SDRAM is Synchronous DRAM: i.e. DRAM with a state machine to make access faster and more convenient.
DRAM chips use some different manufacturing steps and are typically separate from processing chips.

Flash memory
This is a permanent store. It is used in the address space of some systems, particularly embedded controllers but is probably more widely used for long-term storage – like file-systems.
[There are different ‘flavours’ of Flash memory for RAM (“NOR”) and backing store (“NAND”) applications.]
Flash memory (also extra manufacturing steps) is sometimes integrated with processing chips – usually to make single chip microcontrollers or similar..

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:

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.