Notes on General Memory Device Interface, Memory Timing: Reads | EECS 373, Study notes of Electrical and Electronics Engineering

Material Type: Notes; Class: Des Microproc Syst; Subject: Electrical Engineering And Computer Science; University: University of Michigan - Ann Arbor; Term: Unknown 1998;

Typology: Study notes

Pre 2010

Uploaded on 09/02/2009

koofers-user-ibg
koofers-user-ibg 🇺🇸

10 documents

1 / 8

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
EECS 373 F99 Notes 8-1 © 1998, 1999 Steven K. Reinhardt
Memory
Memory is the third key component of a microprocessor-based
system (besides the CPU and I/O devices). More specifically,
the primary storage directly addressed by the CPU is referred to
as main memory to distinguish it from other “memory”
structures such as CPU registers, caches, and disk drives. Main
memory is typically built from several discrete semiconductor
memory devices.
Most systems contain two or more types of main memory. All
memory types can be categorized as ROM or RAM, and as
volatile or non-volatile:
Read-Only Memory (ROM) cannot be modified (written),
as the name implies. A ROM chip’s contents are set before
the chip is placed in the system.
Read-Write Memory is referred to as RAM (for Random-
Access Memory). This distinction is inaccurate, since
ROMs are also random access, but we are stuck with it for
historical reasons.
Volatile memories lose their contents when their power is
turned off.
Non-volatile memories do not.
The memory types currently in common usage are:
Every system requires some non-volatile memory to store the
instructions that get executed when the system is powered up
(the boot code) as well as some (typically volatile) RAM to
store program state while the system is running.
For a very low-cost system, you can buy microprocessors that
include both volatile and non-volatile memory integrated on the
same chip (along with some I/O devices as on the MPC823).
All you need to add are power and maybe a clock crystal. These
“systems-on-a-chip” are called microcontrollers. The Xilinx
download process on the lab expansion boards is run by an 8-bit
microcontroller containing 256 bytes of SRAM and 2K bytes of
Flash memory.
ROM RAM
Volatile (nothing) Static RAM (SRAM)
Dynamic RAM (DRAM)
Non-volatile Mask ROM
PROM
EPROM
EEPROM
Flash memory
BBSRAM
pf3
pf4
pf5
pf8

Partial preview of the text

Download Notes on General Memory Device Interface, Memory Timing: Reads | EECS 373 and more Study notes Electrical and Electronics Engineering in PDF only on Docsity!

Memory

Memory is the third key component of a microprocessor-based system (besides the CPU and I/O devices). More specifically, the primary storage directly addressed by the CPU is referred to as main memory to distinguish it from other “memory” structures such as CPU registers, caches, and disk drives. Main memory is typically built from several discrete semiconductor memory devices.

Most systems contain two or more types of main memory. All memory types can be categorized as ROM or RAM, and as volatile or non-volatile:

  • Read-Only Memory ( ROM ) cannot be modified (written), as the name implies. A ROM chip’s contents are set before the chip is placed in the system.
  • Read-Write Memory is referred to as RAM (for Random- Access Memory). This distinction is inaccurate, since ROMs are also random access, but we are stuck with it for historical reasons.
  • Volatile memories lose their contents when their power is turned off.
  • Non-volatile memories do not.

The memory types currently in common usage are:

Every system requires some non-volatile memory to store the instructions that get executed when the system is powered up (the boot code) as well as some (typically volatile) RAM to store program state while the system is running.

For a very low-cost system, you can buy microprocessors that include both volatile and non-volatile memory integrated on the same chip (along with some I/O devices as on the MPC823). All you need to add are power and maybe a clock crystal. These “systems-on-a-chip” are called microcontrollers. The Xilinx download process on the lab expansion boards is run by an 8-bit microcontroller containing 256 bytes of SRAM and 2K bytes of Flash memory.

ROM RAM

Volatile (nothing) Static RAM (SRAM) Dynamic RAM (DRAM)

Non-volatile Mask ROM PROM EPROM

EEPROM

Flash memory BBSRAM

Inside a Memory Device: the Memory Array

The heart of a memory device is the memory array , which is where the bit values are actually stored. Each row of memory cells is controlled by a word line. When a specific row is activated via its word line, the data values of that row’s cells can be read or written via the bit lines.

This diagram shows a 16-bit memory organized as a 4x4 array:

The different types of memory are basically distinguished by how each memory cell stores its bit value.

Inside a Memory Device: Support Circuitry

Support circuitry around the memory array provides the external device interface. The following (simplified) diagram shows how our 4x4 16-bit memory array might be packaged.

The support circuitry has two functions:

  • Maps the internal physical memory array to the external configuration (4x4 to 16x1, in this example).
  • Provides control signals for reading and writing the array.

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

Mem Cell

bit line

word line 2-to- decoder

4:1 mux/demux

Memory Array

A

D

OE CS WE

A A A

System-level Read Timing

To determine the total access time from the CPU’s perspective, delays through all of the glue logic must be considered:

If the CPU starts driving the address and RD/WR at the same time, what is the effective memory access time?

Memory Timing: Writes

Write timing is a little more complicated:

  • The write happens on the rising edge of WE. As with reads, a separate “access time” is specified for address valid, CS asserted, and WE asserted: tAW, tCW, and tWP. (tWP is the “write pulse” width.)
  • Typically tAS is 0, meaning only that WE may not be asserted before the address is valid.
  • Note the required data setup and hold times.
  • The write cycle time tWC is typically not much larger than tAW.

Addr buffers

Data buffers

Addr decode

CPU

CS

OE

A

D

Memory RD/WR

A

D

tABUF tADEC

tDBUF

tINV

ADDR

CS

WE

DATA

tAW

tAS tWP

tCW

tDS (^) t DH

tWC

Memory Types

The key distinction between the various types of memory is the means by which each memory cell stores a bit value.

  • By far the simplest technique uses the presence or absence of a diode at each cell to store a value, as shown here:
    • What value is stored by the presence of a diode?
    • Why is a diode required rather than a straight connection (i.e. a wire)?
  • This type of memory is known as a mask ROM , since the pattern of diodes is defined by a mask used in the semiconductor fabrication process. Thus the memory contents are fixed when the chip is made and cannot be changed.

ROM Types

  • Mask ROM characteristics:
    • Large setup charge to get initial mask designed
    • Small marginal cost per part
    • Ready to go off production line
    • Only used in high-volume applications (many thousands or millions of units) where upgrading the contents is not an issue (e.g., consumer electronics). (Used to be common for PC boot code, but obsoleted due to cost & density improvements in flash memories.)

Programmable ROM (PROM)

  • Replace diode with diode + fuse, put one at every cell (a.k.a. “fusible-link” PROM)
  • Initial contents all 1s; users program by blowing fuses to create 0s
  • Plug chip into PROM programmer (“burner”) device, download data file
  • One-time programmable (OTP), bug → throw it away

bit lines

word lines

Flash Memory

  • Again, floating-gate technology like EPROM, EEPROM
  • Electrically erasable like EEPROM, but only in large 8K- 128K blocks (not a byte at a time)
    • Moves erase circuitry out of cells to periphery of memory array
    • Back to one transistor/cell → excellent density
  • Reads just like memory
  • Writes like memory for locations in erased blocks
    • typ. write cycle time is a few microseconds
    • slower than volatile RAM, but faster than EEPROM
  • To rewrite a location, software must explicitly erase entire block
    • initiated via control registers on flash memory device
    • erase can take several seconds
    • erased blocks can be written (programmed) a byte at a time
  • Still have erase/reprogram cycle limit (10K-100K cycles per block)

Flash Applications

  • Flash technology has made rapid advances in last few years
    • cell density rivals DRAM; better than EPROM, much better than EEPROM
    • multiple gate voltage levels can encode 2 bits per cell
    • 64 Mbit devices available
  • ROMs & EPROMs rapidly becoming obsolete
    • as cheap or cheaper, allows field upgrades
  • Replacing hard disks in some applications
    • smaller, lighter, faster
    • more reliable (no moving parts)
    • cost-effective up to tens of megabytes
    • block erase good match for file-system type interface

Battery-backed Static RAM (BBSRAM)

  • Take volatile static RAM device and add battery backup
  • Key advantage: write performance
    • write cycle time same as read cycle time
  • Need circuitry to switch to battery on power-off
  • Have to worry about battery running out
  • Effective for small amount of storage when you need battery anyway (e.g. PC built-in clock)

Volatile RAM Types

Two basic types: static and dynamic

Static RAM (SRAM)

  • Each cell is basically a flip-flop
  • Four or six transistors (4T/6T) → relatively poor density
  • Very simple interfacing; writes & reads at same speed
  • Very fast (access times under 10 ns available)

Dynamic RAM (DRAM)

  • One transistor per cell (drain acts as capacitor)
  • Highest density memory available
  • Very small charges involved
    • bit lines must be precharged to detect bit values: cycle time > access time
    • reads are destructive ; internally does writeback on read
    • values must be refreshed (rewritten) periodically by touching each row of array or charge will leak away
  • External row/column addressing saves pins, $
  • Row/column addressing + refresh → complex interfacing