memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout pre-decode row decoder other...

61
1 Memory RWM NVRWM ROM EPROM E 2 PROM FLASH Random Access Non-Random Access SRAM DRAM Mask-Programmed Programmable (PROM) FIFO Shift Register CAM LIFO Memory Decoders Word 0 Word 1 Word 2 Word N-1 Word N-2 Input-Output S 0 S 1 S 2 S N-2 S N_1 (M bits) Storage Cell M bits N Words Word 0 Word 1 Word 2 Word N-1 Word N-2 Input-Output (M bits) Storage Cell M bits Decoder A 0 A 1 A K-1 S 0 N words => N select signals Too many select signals Decoder reduces # of select signals K = log 2 N

Upload: others

Post on 11-Mar-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

1

Memory

RWM NVRWM ROM

EPROM

E2PROM

FLASH

RandomAccess

Non-RandomAccess

SRAM

DRAM

Mask-Programmed

Programmable (PROM)

FIFO

Shift Register

CAM

LIFO

Memory Decoders

Word 0Word 1

Word 2

Word N-1

Word N-2

Input-Output

S0

S1

S2

SN-2

SN_1

(M bits)

StorageCell

M bits

N W

ords

Word 0Word 1

Word 2

Word N-1

Word N-2

Input-Output(M bits)

StorageCell

M bits

Dec

oder

A0

A1

AK-1

S0

N words => N select signalsToo many select signals

Decoder reduces # of select signalsK = log2N

Page 2: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

2

Array-Structured Memory

Input-Output(M bits)

Row

Dec

oder

AK

AK+1

AL-1

2L-K

Column Decoder

Bit Line

Word Line

A0

AK-1

Storage Cell

Sense Amplifiers / Drivers

M.2K

Problem: ASPECT RATIO or HEIGHT >> WIDTH

Amplify swing torail-to-rail amplitude

Selects appropriateword

Array Decoding

Page 3: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

3

Hierarchical Memory Arrays

Global Data Bus

RowAddress

ColumnAddress

BlockAddress

Block Selector GlobalAmplifier/Driver

I/O

ControlCircuitry

Advantages:1. Shorter wires within blocks2. Block address activates only 1 block => power savings

Memory Timing Definitions

READ

WRITE

DATA

Read Access Read Access

Read Cycle

Data Valid

Data Written

Write Access

Write Cycle

Page 4: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

4

Memory Timing Approaches

AddressBus

RAS

CAS

RAS-CAS timing

AddressBus

Address

Address transitioninitiates memory operation

DRAM Timing SRAM Timing

Row Address Column Address

MSB LSB

Multiplexed Adressing Self-timed

Example: HM6264 8kx8 SRAM

Page 5: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

5

HM6264 Interface

Function Table

Page 6: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

6

Timing

Read Cycle 1

Page 7: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

7

Read Cycle 185ns min

85ns max85ns max

85ns max10ns min

10ns min

5ns min

45ns max

10ns min

30ns min

30ns min

30ns min

Read Cycle 2

Page 8: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

8

Read Cycle 2

85ns max10ns min 10ns min

Write Timing

Page 9: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

9

Write Cycle

Write Cycle85ns min

75ns min 0ns min

75ns min

0ns min55ns min

0ns min, 30ns max40ns min

0ns min

Page 10: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

10

What Does All This MeanFor a read:

If you assert CS1, CS2, address, and OE all at the same time, it will be max 85ns before valid data are available at chip outputs

For a write: You can assert CS1, CS2, address, data, and WE all at the same time if you want toYou need to wait 55ns from WE edge, or 75ns from CS1/CS2 edge for write to have happened

R/W Memories In General• STATIC (SRAM)

• DYNAMIC (DRAM)

Data stored as long as supply is appliedLarge (6 transistors/cell)FastDifferential

Periodic refresh requiredSmall (1-3 transistors/cell)SlowerSingle Ended

Page 11: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

11

SRAM Circuits

SRAM Cell, Transistors

Page 12: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

12

SRAM, Resistive Pullups

Array-Structured Memory

Input-Output(M bits)

Row

Dec

oder

AK

AK+1

AL-1

2L-K

Column Decoder

Bit Line

Word Line

A0

AK-1

Storage Cell

Sense Amplifiers / Drivers

M.2K

Problem: ASPECT RATIO or HEIGHT >> WIDTH

Amplify swing torail-to-rail amplitude

Selects appropriateword

Page 13: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

13

Memory Column Each column hasall the supportcircuits

Reading the Bit

Single-ended read using an inverter Dynamic pre-charge on the bit lines

P-types pull bit lines high

Page 14: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

14

Reading the Bit 2

Single-ended read using an inverter Dynamic pre-charge on the bit lines

Note the N-types used as pull-ups

Reading the Bit 3

Differential read using sense ampStatic N-type pullup on the bit lines

Page 15: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

15

Read Waveforms

Sense Amp

Page 16: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

16

Sense Amp Transistors

Column Organization

Page 17: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

17

Write Circuits

Write Circuit Simulation

0

Page 18: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

18

Analog Sim, Circuit

VDD

QQ

M1 M3

M4M2

M5

BL

WL

BL

M6

Analog Analysis, Write

VDD

Q = 1Q = 0

M1

M4

M5

BL = 1

WL

BL = 0

M6

VDD

kn M6, VDD VTn–( )VDD

2----------- VDD

2

8-----------–

⎝ ⎠⎛ ⎞ kp M4, VDD VTp–( )

VDD2

----------- VDD2

8-----------–

⎝ ⎠⎛ ⎞=

kn M5,2

------------- VDD2

----------- VTnVDD

2-----------

⎝ ⎠⎛ ⎞–

⎝ ⎠⎛ ⎞

2kn M1, VDD VTn–( )

V DD2

----------- VDD2

8-----------–

⎝ ⎠⎛ ⎞= (W/L)n,M5 ≥ 10 (W/L)n,M1

(W/L)n,M6 ≥ 0.33 (W/L)p,M4

Page 19: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

19

Analog Analysis, ReadVDD

Q = 1Q = 0

M1

M4

M5

BL

WL

BL

M6

VDDVDDVDD

CbitCbit

kn M5,2

---------------VDD

2------------ VTn

VDD2

------------⎝ ⎠⎛ ⎞–⎝ ⎠

⎛ ⎞2

kn M1, VDD VTn–( )VDD

2------------

VDD2

8------------–⎝ ⎠

⎛ ⎞=

(W/L)n,M5 ≤ 10 (W/L)n,M1 (supercedes read constraint)

6T SRAM Layout

Page 20: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

20

Another 6T SRAM Layout

SRAM bit from makemem (v1)

Page 21: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

21

SRAM bit from makemem (v2)

Array-Structured Memory

Input-Output(M bits)

Row

Dec

oder

AK

AK+1

AL-1

2L-K

Column Decoder

Bit Line

Word Line

A0

AK-1

Storage Cell

Sense Amplifiers / Drivers

M.2K

Problem: ASPECT RATIO or HEIGHT >> WIDTH

Amplify swing torail-to-rail amplitude

Selects appropriateword

Page 22: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

22

Row Decoders

Select exactly one of the memory rowsSimple versions are just gates

Row Decoder Gates

Standard gatesOr, pseudo-nmos gates with static pull up

Easier to make large fan-in NOR

Page 23: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

23

Pre-decode Row DecoderMultiple levels of decoding can be more efficient layout

Pre-decode Row Decoder

Other circuit tricks for building row decoders…

Page 24: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

24

Array-Structured Memory

Input-Output(M bits)

Row

Dec

oder

AK

AK+1

AL-1

2L-K

Column Decoder

Bit Line

Word Line

A0

AK-1

Storage Cell

Sense Amplifiers / Drivers

M.2K

Problem: ASPECT RATIO or HEIGHT >> WIDTH

Amplify swing torail-to-rail amplitude

Selects appropriateword

Array-Structured Memory

Page 25: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

25

Sharing Sense Amps

Sense Amp Mux

Page 26: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

26

Sense Amp Mux

Decoded Column Decode

Page 27: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

27

Improving Speed, Power

Multi-Port Memory

Very common to require multiple read ports

Think about a register file, for example

Page 28: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

28

Multi-Port Register

Re1

Re0

Slightly larger cell, but with single-ended read – makes a great register file

Register File

Slightly larger cell, but with single-ended read – makes a great register file

Page 29: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

29

Dynamic RAM

Get rid of the pull-ups! Store info on capacitors Means that stored information leaks away

Dynamic RAM…

Once you agree to use a capacitor for charge storage there are other ways to build this…

Page 30: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

30

3T DRAM Circuit

M2M1

BL1

WWL

BL2

M3

RWL

CS

X

WWL

RWL

X

BL1

BL2

VDD-VT

ΔV

VDD

VDD-VT

No constraints on device ratiosReads are non-destructiveValue stored at node X when writing a “1” = VWWL-VTn

3T DRAM Layout

BL2 BL1

WWL

RWL

M1

M2

M3

GND

Page 31: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

31

1 T DRAM Circuit

2-T (1-T) DRAM layout

Note the increased gate size of the storage transistor

Increases the capacitance

Page 32: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

32

1T DRAM Observations1T DRAM requires a sense amplifier for each bit line, due to

charge redistribution read-out.

DRAM memory cells are single ended in contrast to SRAM cells.

The read-out of the 1T DRAM cell is destructive; read and refresh operations are necessary for correct operation.

Unlike 3T cell, 1T cell requires presence of an extra capacitance that must be explicitly included in the design.

When writing a “1” into a DRAM cell, a threshold voltage is lost. This charge loss can be circumvented by bootstrapping the word lines to a higher value than VDD.

1T DRAM Read/Write

CSM1

BL

WL

CBL

WL

X

BL

VDD−VT

VDD/2

VDD

GND

Write "1" Read "1"

sensingVDD/2

ΔV VBL VPRE– VBIT VPRE–( )CS

CS CBL+------------------------= =

Write: CS is charged or discharged by asserting WL and BL.Read: Charge redistribution takes places between bit line and storage capacitance

Voltage swing is small; typically around 250 mV.

Page 33: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

33

1T DRAM Cell

“Folded bit line”

Array of DRAM Cells

“Folded Bit

Line”

Page 34: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

34

Reading a 1T DRAM Cell

Charge Sharing

DRAM Sense Amp

Page 35: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

35

Photo of 1T DRAM

Advanced DRAM Cells

Trench Capacitor

Try to get more capacitance per unit area…

Page 36: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

36

Examples of Advanced DRAMs

Cell Plate Si

Capacitor Insulator

Storage Node Poly

2nd Field Oxide

Refilling Poly

Si Substrate

Trench Cell Stacked-capacitor Cell

Capacitor dielectric layerCell plateWord line

Insulating Layer

IsolationTransfer gateStorage electrode

Memory Timing Approaches

AddressBus

RAS

CAS

RAS-CAS timing

AddressBus

Address

Address transitioninitiates memory operation

DRAM Timing SRAM Timing

Row Address Column Address

MSB LSB

Multiplexed Adressing Self-timed

Page 37: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

37

DRAM Interface

Extended Data Out Page Mode

Page 38: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

38

Comments on Timing

Architectural Issues

Page 39: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

39

SDRAM - Use CAS for Bursts

DDR SDRAM

Double Data Rate

Page 40: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

40

DRAM Timing

RAMBUS DRAM (RDRAM)

Page 41: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

41

RDRAM Bandwidth

Maximum Bandwidth

Page 42: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

42

Normal Bus for DRAM DIMMs

RDRAM Bus

Page 43: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

43

Deep Pipelining - High Latency

RDRAM Addressing

Page 44: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

44

Row Activate Command

RDRAM System Arch

Page 45: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

45

RDRAM Internal Arch

Regular DRAM

Page 46: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

46

Single Bank DRAM

Multi-Bank DRAM

Page 47: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

47

Peak Bandwidth

ROM

Page 48: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

48

ROM

WL[0]

WL[1]

WL[2]

WL[3]

BL[0] BL[1] BL[2] BL[3]

GND

GND

VDD

Pull-up devices

ROM

Page 49: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

49

ROM

ROM LayoutMetal1 on top of diffusion

Basic cell10 λ x 7 λ

2 λ

WL[0]

WL[1]

WL[2]

WL[3]

GND (diffusion)

Metal1

Polysilicon

Only 1 layer (contact mask) is used to program memory arrayProgramming of the memory can be delayed to one of

last process steps

Page 50: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

50

ROM Layout

Precharged ROM

WL[0]

WL[1]

WL[2]

WL[3]

BL[0] BL[1] BL[2] BL[3]

GND

GND

VDD

Precharge devicesφpre

PMOS precharge device can be made as large as necessary,but clock driver becomes harder to design.

Page 51: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

51

Precharged ROM

Other Memory Cells

Page 52: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

52

Non-Volatile ROMEPROM

Erasable Programmable ROMEEPROM

Electrically Erasable Programmable ROMFlash EEPROM

Electrically Erasable Programmable ROM that is erased in large chunks

All these devices rely on trapping charge on a floating gate

EPROM

Source Drain

GateFloating gate

tox

tox

Substraten+n+ p

(a) Device cross-section

S

D

G

(b) Schematic symbol

Page 53: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

53

Programming EPROM

Higher Vth (around 7v) means that 5v Vgs no longer turns on the transistorSiO2 is an excellent insulator

Trapped charge can stay for years

DS

20 V

20 V

DS

0 V

0 V10 V→ 5 V −5 V

DS

5 V

5 V−2.5 V

Avalanche injection. Removing programming voltageleaves charge trapped.

Programming results inhigher VT.

Erasing an EPROMErase by shining UV light through window in the package

UV radiation makes oxide slightly conductive Erasure is slow - from seconds to minutes depending on UV intensity Also the erase/program cycles are limited (around 1000), mainly as a result of the UV erasing

But, EPROMs are simple and dense

Page 54: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

54

EEPROM

Thin oxide allows erasing in-systemFowler-Nordheim Tunneling

Source DrainGateFloating gate

Substrate n+n+

10 nm

20-30 nm

(a) Flotox transistor

VGD

I

(b) Fowler-Nordheim I-V characteristic

10 V−10 V

p

BL

WL

VDD

(c) EEPROM cell during a read operation

Floating GateTunneling Oxide

transistor

EEPROMTwo transistors instead of one

The second keeps you from removing too much charge during erasure

Bigger and not as dense as EPROMBut, more erase/program cycles

On the order of 105

Eventually you get permanently trapped charge in the SiO2

Page 55: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

55

Flash EEPROM

Essentially the same as EEPROMBut, large regions erased at onceMeans you can monitor the voltages and don’t need the extra access transistor

n+ drainn+ source

p-substrate

Control gate

Floating gate

programming

erasure Thin tunneling oxide

Flash EEPROM

Page 56: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

56

Realistic PROM Devices

Content Addressable Mem

Asks the question: Are there are any locations that hold this value?

Used for tag memories in associative cachesOr translation lookaside buffersOr other pattern matching applications

Page 57: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

57

Content Addressable Mem

Add the Match lineEssentially a distributed NOR gate

Content Addressable Mem

Page 58: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

58

Programmable Logic Array

x0 x1 x2

f0 f1

ANDPLANE

ORPLANE

x0x1x2

Product Terms

PLAStill useful for random combinational logic

Standard cell ASIC tools may be replacing them

They can generate dense AND-OR circuits

Page 59: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

59

Pseudo-Static PLA Circuit

f0 f1

GND

GND

VDD

GND

x0 x0 x1 x1 x2 x2

GND GND GND GND

VDD

AND-PLANE OR-PLANE

Dynamic PLA

f0 f1 GND

VDD

φOR

x0 x0 x1 x1 x2 x2

GND

VDD

AND-PLANE OR-PLANE

φANDφOR

φAND

Page 60: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

60

PLA LayoutVDD GNDφ

And-Plane Or-Plane

f0 f1x0 x0 x1 x1 x2 x2Pull-up devices Pull-up devices

PLA vs. ROMProgrammable Logic Array

structured approach to random logic“two level logic implementation”

NOR-NOR (product of sums)NAND-NAND (sum of products)

IDENTICAL TO ROM!

Main differenceROM: fully populatedPLA: one element per minterm

Note: Importance of PLA’s has drastically reduced1. slow2. better software techniques (mutli-level logic

synthesis)

Page 61: memorycs6710/slides/memoryx2.pdfdecoding can be more efficient layout Pre-decode Row Decoder Other circuit tricks for building row decoders… 24 Array-Structured Memory Input-Output

61

FPGAsField Programmable Gate Arrays

Array of P-type and N-type transistorsSources and drains connected to

Power and groundMetal

Map gate structures to sea of gatesLess expensive – only modify metal masks