Home COMSC-171 <- Prev Next ->

Memory

Types

static random access memory (SRAM)
composed of transistors only
volatile (retains data while powered on, loses data when powered off)
fast, very low idle power
wide variety of speed and power
commonly used for registers, caches, buffers built into devices
dynamic random access memory (DRAM)
composed of transistors and capacitors
volatile
requires frequent refresh to retain data
slower than SRAM but higher storage density, some idle power from refresh
commonly used for main memory
flash memory
composed of MOSFETs with an extra charge storage layer
can store 1 (SLC), 2 (MLC), 3 (TLC), or 4 (QLC) bits per cell
requires a higher voltage to program (write)
requires a different higher voltage to erase
can be read at random but erased only by block
non-volatile
greatly limited write endurance (typically 102 to 105 cycles)
requires a complex controller and benefits from DRAM buffers
commonly used for fast mass storage

Error Correction

error correction code (ECC)
multiple parity bits are added to each word (commonly 8 bits of parity for 64 bits of data)
parity bits are calculated using a Hamming or other code
detects and corrects single-bit errors
detects but cannot correct double-bit errors
commonly used for memory in high reliability systems
more sophisticated algorithms can be used for devices with higher error rates

Buffering

unbuffered
memory modules are connected directly to memory controller
simple, fast, inexpensive
registered
connected through a register which improves electrical properties
allows more memory and longer distances without signal degradation
adds latency (time delay) and cost
fully buffered
converts signals from parallel to serial for improved electrical properties
advantages of buffering plus more bits per cycle
adds latency, cost, and power consumption

DRAM Standards

DDR5
current
speeds 32 to 70 GB/s
latency around 14 ns
includes on-die ECC
DDR4
legacy, still available
speeds 13 to 26 GB/s
latency around 14 ns
GDDR7
graphics memory
speed 128 GB/s
higher latency than DDR
HBM3E
high bandwidth memory
stacked, directly attached to processor
speed 1.2 TB/s

DRAM Packaging

dual inline memory module (DIMM)
double-sided circuit board with chips soldered on
common for desktop and server DRAM
small outline DIMM (SODIMM)
smaller, common for laptop DRAM
ball grid array (BGA)
chip package for soldering (non-removable)
common for mobile device DRAM and other non-removable memory

UNIX considerations

amount
a lightweight, character only distro might run in 100 MB
a minimal GUI distro will need 512 MB to 1 GB
a full-featured GUI distro will need 2 to 4 GB
additional desktop requirements depend on applications
additional server requirements depend on services and load
insufficent memory results in swapping of pages to storage (very slow)
extra memory improves performance with caching
ECC
recommended for servers, routers, other situations which require extended uptime