Embedded Systems Design: A Unified Hardware/Software Introduction
Embedded Systems Design: A Unified Hardware/Software Introduction
Embedded Systems Design: A Unified Hardware/Software Introduction
Hardware/Software Introduction
Chapter 5 Memory
1
Outline
…
– m x n: m words of n bits each
– k = Log2(m) address input signals m words …
– or m = 2^k words
– e.g., 4,096 x 8 memory:
n bits per word
• 32,768 bits
simultaneously
Qn-1 Q0
permanence
Storage
– ROM Mask-programmed ROM Ideal memory
• read only, bits stored without power
OTP ROM
– RAM Life of
product
• read and write, lose stored bits without
power Tens of EPROM EEPROM FLASH
years
• Traditional distinctions blurred Battery Nonvolatile NVRAM
life (10
– Advanced ROMs can be written to years)
• e.g., EEPROM
In-system
SRAM/DRAM
– Advanced RAMs can hold bits without programmable
Near
power zero Write
• e.g., NVRAM ability
During External External External External
• Write ability fabrication programmer, programmer, programmer programmer
In-system, fast
writes,
only one time only 1,000s OR in-system, OR in-system,
– Manner and speed a memory can be of cycles 1,000s block-oriented
unlimited
cycles
written of cycles writes, 1,000s
of cycles
• Storage permanence
– ability of memory to hold stored bits Write ability and storage permanence of memories,
after they are written showing relative degrees along each axis (not to scale).
…
• Uses Ak-1
…
programmable
• Word 2 is not connected with data connection wired-OR
lines Q2 and Q0 Q3 Q2 Q1 Q0
• Output is 1010
Truth table
Inputs (address) Outputs
a b c y z 8×2 ROM
0 0 word 0
0 0 0 0 0
0 0 1 0 1 0 1 word 1
0 1 0 0 1 0 1
0 1 1 1 0 enable 1 0
1 0 0 1 0 1 0
1 0 1 1 1 c 1 1
1 1 0 1 1 b 1 1
1 1 1 1 1 1 1 word 7
a
y z
• Extension of EEPROM
– Same floating gate principle
– Same write ability and storage permanence
• Fast erase
– Large blocks of memory erased at once, rather than one word at a time
– Blocks typically several thousand bytes large
• Writes to single words may be slower
– Entire block must be read, word updated, then entire block written back
• Used with embedded systems storing large data items in
nonvolatile memory
– e.g., digital cameras, TV set-top boxes, cell phones
external view
• Typically volatile memory r/w 2k × n read and write
– bits are not held without power supply enable memory
A0
• Read and written to easily by embedded system …
A0
– when row is enabled by decoder, each cell has logic A1
that stores input data bit when rd/wr indicates write Memory
cell
or outputs stored bit when rd/wr indicates read rd/wr To every cell
Q3 Q2 Q1 Q0
addr<10...0>
burst SRAM memory device characteristics
/CS1
device /CS2 A single read operation
• Designed to be CS3
CLK
interfaced with 32-bit /WE
/ADSP
processors /OE
/ADSC
• Capable of fast
MODE
/ADV
/ADSP
sequential reads and /ADSC
addr <15…0>
/WE
writes as well as /ADV /OE
TC55V2325F CS3
F-100
data<31…0>
block diagram
timing diagram
memory
– Can be multiple levels of
cache
Embedded Systems Design: A Unified 22
Hardware/Software Introduction, (c) 2000 Vahid/Givargis
Cache
• Usually designed with SRAM
– faster but more expensive than DRAM
• Usually on same chip as processor
– space limited, so much smaller than off-chip main memory
– faster access ( 1 cycle vs. several cycles for main memory)
• Cache operation:
– Request for main memory access (read or write)
– First, check cache for copy
• cache hit
– copy is in cache, quick access
• cache miss
– copy not in cache, read address and possibly its neighbors into cache
• Several cache design choices
– cache mapping, replacement policies, and write techniques
indicated by index V T D
• if tags match, check valid bit
• Valid bit Data
from memory
• Offset
– used to find particular word in cache line
Tag Offset
Data
V T D V T D V T D
…
Valid
= =
=
0.16
0.14
0.12
% cache miss
0.1 1 way
2 way
0.08
4 way
0.06 8 way
0.04
0.02
0
cache size
1 Kb 2 Kb 4 Kb 8 Kb 16 Kb 32 Kb 64 Kb 128 Kb
Row Decoder
Row Addr. Buffer
address periodically causing
memory content to be refreshed
ras
– Refresh circuitry disabled during address
Bit storage array
read or write operation
ras
cas
ras
cas
clock
ras
cas
address
row col
data
data data data
• Duties of MMU
– Handles DRAM refresh, bus interface and arbitration
– Takes care of memory sharing among multiple
processors
– Translates logic memory addresses from processor to
physical memory addresses of DRAM
• Modern CPUs often come with MMU built-in
• Single-purpose processors can be used