Skip to content
BetterDL

Memory expansion

Also called: memory system design, building memory from chips, memory chip arrays, chip count

Building a larger memory from smaller chips: side by side for wider words (width), stacked with a decoder for more words (depth), or both.

Memory chips come in fixed sizes, such as 8K × 8, but a system may need, say, 32K × 16. Memory expansion combines chips to get there. Compare the two numbers separately:

  • Word too narrow? Put chips side by side: width expansion. They share the address and control lines; each supplies a slice of the data bits.
  • Too few words? Stack them: depth expansion. Each chip owns a block of addresses, and a decoder on the high address bits drives the chip selects.
  • Both? Make side-by-side groups called banks, then stack the banks.

The recipe:

  1. Chips per bank = wanted word size ÷ chip word size.
  2. Banks = wanted words ÷ chip words.
  3. Total chips = chips per bank × banks. (Check: total bits wanted ÷ bits per chip.)
  4. Address bits: system = log₂(wanted words); chip = log₂(chip words).
  5. Decoder bits = system bits − chip bits = log₂(banks). They are the top bits.
  6. Each decoder output drives the CS of every chip in one bank.
  7. Write the memory map.
001000
010100
100010
110001

Worked example

Example

32K × 16 from 8K × 4 chips

Run the recipe.

  1. 1.

    Width: 16 ÷ 4 = 4 chips per bank.

  2. 2.

    Depth: 32K ÷ 8K = 4 banks.

  3. 3.

    Total: 4 × 4 = 16 chips. Check: (32K × 16) ÷ (8K × 4) = 512K ÷ 32K = 16. ✓

  4. 4.

    Address bits: 32K = 2¹⁵ → A14–A0. Each chip: 8K = 2¹³ → A12–A0, shared by all chips.

  5. 5.

    Decoder: 15 − 13 = 2 bits, A14 A13, into a 2-to-4 decoder.

  6. 6.

    Each decoder output selects all 4 chips of one bank. Bank 0: 0000₁₆–1FFF₁₆, bank 1: 2000₁₆–3FFF₁₆, bank 2: 4000₁₆–5FFF₁₆, bank 3: 6000₁₆–7FFF₁₆.

Common mistakes

  • Adding instead of multiplying in step 3. Four chips per bank and four banks is 16 chips, not 8.

  • Sizing the decoder by the number of chips instead of banks. Chips in the same bank share one select.

  • Sending the low address bits to the decoder. The high bits choose the bank; the low bits go to every chip.

Practice Memory expansion

Interactive questions with instant feedback and a worked solution for every wrong answer.

Learn it step by step

Memory expansion is taught in Memory.