Memory
Memory
Outline
Semiconductor Memory Basic Concepts Read Only Memory (ROM) Random Access Memory (RAM)
SRAM DRAM
Memory Interfacing
Address size expansion Word size expansion
Timing Analysis
ACOE255
Basic Concepts
A memory device can be viewed as a single column table.
Table index (row number) refers to the address of the memory. Table entries refer to the memory contents or data. Each table entry is referred as a memory location or as a word.
Memory Address Binary Hex 00-0000-0000 000 00-0000-0001 001 00-0000-0010 002 00-0000-0011 003 Memory Contents 10011001 00111000 11001001 00111011
Both the memory address and the memory contents are binary numbers, expressed in most cases in Hex format. The size of a memory device is specified as the number of memory locations X width or word size (in bits).
For example a 1K X 8 memory device has 1024 memory locations, with a width of 8 bits.
ACOE255
Address Lines
A memory device or memory chip must have three types of lines or connections: Address, Data, and Control. Address Lines: The input lines that select a memory location within the memory device.
Decoders are used, inside the memory chip, to select a specific location The number of address pins on a memory chip specifies the number of memory locations. If a memory chip has 13 address pins (A0..A12), then it has: 213 = 23 X 210 = 8K locations. If a memory chip has 4K locations, then it should have N pins: 2N = 4K = 22 X 210 = 212 N=12 address pins (A0..A11)
A00 A01
An-2 An-1
ACOE255
Data Lines
Data Connections: All memory devices have a set of data output pins (for ROM devices), or input/output pins (for RAM devices).
Most RAM chips have common bi-directional I/O connections. Most memory devices have 1, 8 or 16 data lines.
Data Output Lines (DO0..DOn-1) (2m X n) RAM with separate I/P and O/P Data lines
Data Input/Output Lines (D 0..D n-1) (2m X n) RAM with common I/P and O/P Data lines
Data Output Lines (D0..D n-1) (2m X n) ROM with only O/P Data lines
ACOE255
Control Lines
Enable Connections:
All memory devices have at least one Chip Select (CS) or Chip Enable (CE) input, used to select or enable the memory device. If a device is not selected or enabled then no data can be read from, or written into it. The CS or CE input is usually controlled by the microprocessor through the higher address lines via an address decoding circuit. Control Connections: RAM chips have two control input signals that specify the type of memory operation: the Read (RD) and the Write (WR) signals. Some RAM chips have a common Read/ Write (R/W) signal. ROM chips can perform only memory read operations, thus there is no need for a Write (WR) signal. In most real ROM devices the Read signal is called the Output Enable (OE) signal.
ACOE255 Microprocessors I - Frederick University 6
Some of the address lines select the memory devices that owns the memory location to be read (Step 1a), while the rest point to the required memory location within the memory device.
The processor activates the Read (RD) signal (Step 2).
The selected memory device loads on the data bus the content of the memory location specified by the address bus (Step 3).
The processor reads the data from the data bus, and resets the RD signal (Step 4).
Clock Address Bus Chip Enable Read (RD) Data Bus Step 1a Step 1 Invalid Data Step 2 Valid Data Step 3 Step 4 T1 T2 Valid Address T3
ACOE255
Some of the address lines select the memory devices that owns the memory location to be written (Step 1a), while the rest point to the required memory location within the memory device.
The processor loads on the data bus the data to be written (Step 2). The processor activates the Write (WR) signal (Step 3).
The data at the data bus is stored in the memory location specified by the address bus (Step 4).
Clock Address Bus Data Bus Chip Enable Write (WR) Step 2 Step 1 Step 1a Step 3 Step 4 T1 T2 Valid Address Valid Data T3
ACOE255
Read Only Memory (ROM) A memory device that maintains its data permanently (or until the device is reprogrammed).
Non-volatile: It maintains its data even without power supply.
Random Access Memory (RAM) A memory device that can be read and written.
Volatile: It looses its data when the power supply is switched-off When the supply is switched-on it contains random data User programs that are loaded from a secondary memory (disk) Temporary data used by programs such as variables and arrays.
Used to store
Programs such as the BIOS. Data such as look tables e.g. the bit pattern of the characters in a dot matrix printer.
Used to store
ACOE255
A0 A1 A2 CS
A0 A1 A2 CS
OE
OE
D3
D2
D1
D0
D3
D2
D1
D0
Address 000 001 010 011 100 101 110 111 Data
ACOE255
A0 A1 A2 CS
OE
D3
ACOE255
D2
D1
D0
11
27010/27C010
27020/27C020 27040/27C040
ACOE255
(128Kx8)
(256Kx8) (512Kx8)
271024/27C1024 (64Kx16)
272048/27C2048 (128Kx16) 274096/27C4096 (256Kx16)
12
RAM Cells
Static RAM (SRAM): The basic element of a static RAM cell is the D-Latch. Data remains stored in the cell until it is intentionally modified. SRAM is fast (Access time: 1ns). SRAM needs more space on the semiconductor chip than DRAM.
SRAM more expensive than DRAM SRAM needs more space than DRAM
Dynamic RAM (DRAM): DRAM stores data in the form of electric charges in capacitors. Charges leak out, thus need to refresh data every few ms. DRAM is slow (Access time: 60ns). DRAM needs less space on the semiconductor chip than SRAM.
DRAM less expensive than SRAM DRAM needs less space than SRAM
SRAM consumes power only when accessed. DRAM needs to be refreshed DRAM is used as the main memory SRAM is used as a Cache
Bit Select
Bit Select
Data In
Data Out
Data In
Write
Data Out
En
RAM Cell
DRAM Cell
ACOE255
13
611024/621024 (128Kx8)
These series of SRAM devices are pin compatible with the 27XXX series of EPROMs,
with the difference that the WR signal is replaced by the programming voltage pin (Vpp) on the EPROM. This allows a single socket on the PCB hold either a SRAM, during system development, or an EPROM, after the operation of the program is verified to be the expected one. Static RAM is fast with access times much less than 100ns. SRAM chips with access times less than 10ns are often used as cache memory in computers.
ACOE255 Microprocessors I - Frederick University 14
ACOE255
15
ACOE255
16
DYNAMIC RAM
DRAM requires refreshing every 2 to 4 ms . Refreshing occurs automatically during a read or write. Internal circuitry takes care of refreshing cells that are not accessed over this interval.
For a 256K X 1 DRAM with 256 rows, a refresh must occur every 15.6us (4ms/256). For the 8086, a read or write occurs every 800ns . This allows 19 memory reads/writes per refresh or 5% of the time.
DRAM technologies
EDO DRAM SDRAM DRDRAM DDR DRAM
Soft errors occur on DRAMs which often require ERROR DETECTION and/or ERROR CORRECTION A DRAM CONTROLLER is required for using DRAM
ACOE255
17
ACOE255
18
ACOE255
19
ACOE255
20
ACOE255
21
A reasonable rule of thumb is to expect one bit error, per month, per gigabyte of memory Systems often use error detection and correction methods to identify and possibly correct soft errors
repetition schemes parity schemes (74AS280) cyclic redundancy checks Hamming distance based checks (74LS636)
ACOE255
22
Disadvantages:
Cannot correct errors, only detect them Only detects an odd number of errors
ACOE255
23
PARITY EXAMPLE
Calculate the parity bit for both even and odd parity, for the following sequence
1001 0001 1000 1000011 Assuming that the last bit is the parity bit (odd parity), determine which data transmission was successful and which unsuccessful 10001010 00111011 11011101
ACOE255
24
Majority voter
Memory 1
Memory 2
Memory 3
DATA TO MEMORY uP
ACOE255
25
EXAMPLE
Design the majority voting circuit for one memory bit
ACOE255
26
DRAM CONTROLLER
A circuit performing address multiplexing and DRAM control signal generation
ACOE255
27
ACOE255
28
Slot 1 SIMM
Slot 2 SIMM
Processor
ACOE255
29
Address Size Expansion: (32X4 RAM module using 8X4 RAM chips)
D0 D1 D2 D3 RAM1 D3
0 1 2
D0
RAM2 D3
0 1 2
D0
RAM3 D3
0 1 2
D0
RAM4 D3
0 1 2
D0
A0 3 A1 4 A2 5
6 7
A0 3 A1 4 A2 5
6 7
A0 3 A1 4 A2 5
6 7
A0 3 A1 4 A2 5
6 7
RD WR CS RD WR A0 A1 A2 A3 A4 A5 A6
Address Selection
RD WR CS
RD WR CS
RD WR CS
A B CS
Y0 Y1 Y2 Y3 2X4 DEC.
ACOE255
31
Memory Maps
Tables that show the addresses occupied by each memory device in a system.
In the previous example it is assumed that the processor has only 7 address line, thus it can address 128 memory locations. The size of the RAM memory module is 32 bytes, thus the module can be mapped to occupy one out of the four available memory blocks in the memory map. The memory block occupied by the memory module depends on the connection of the address selection circuit (AND gate) that enables the decoder.
A5 A6
00 - 07 RAM 1 08 - 0F RAM 2 10 - 17 RAM 3 18 - 1F RAM 4 20 - 27 RAM 1 20 - 3F Not Used 28 - 2F RAM 2 30 - 37 RAM 3 38 - 3F RAM 4 40 - 47 RAM 1 40 - 5F Not Used 40 - 5F Not Used 48 - 4F RAM 2 50 - 57 RAM 3 58 - 5F RAM 4 60 - 67 RAM 1 60 - 7F Not Used 60 - 7F Not Used 60 - 7F Not Used 68 - 6F RAM 2 70 - 77 RAM 3 78 - 7F RAM 4 40 - 5F Not Used 20 - 3F Not Used 20 - 3F Not Used 00 - 1F Not Used 00 - 1F Not Used 00 - 1F Not Used
A5 A6
A5 A6
A5 A6
ACOE255
32
A5 A6
A5 A6
A5 A6
A5 A6
Mem. Map A6 A5 A4 A3 A2 A1 A0 Mem. Map A6 A5 A4 A3 A2 A1 A0 Mem. Map 0 0 0 0 0 0 0 00 Not 0 0 0 0 0 0 0 00 Not 00 Not Used Used 0 1 1 1 1 1 1 3F 1 0 1 1 1 1 1 5F Used 1F 20 RAM1 27 RAM2 RAM3 RAM4 1 0 0 0 0 0 0 40 RAM1 1 0 0 0 1 1 1 47 1 0 0 1 0 0 0 48 1 0 0 1 1 1 1 4F 1 0 1 0 0 0 0 50 1 0 1 0 1 1 1 57 RAM2 RAM3 1 1 0 0 0 0 0 60 RAM1 1 1 0 0 1 1 1 67 1 1 0 1 0 0 0 68 1 1 0 1 1 1 1 6F 1 1 1 0 0 0 0 70 1 1 1 0 1 1 1 77 RAM2 RAM3
0 1 0 1 0 0 0 28 0 1 0 1 1 1 1 2F 0 1 1 0 0 0 0 30 0 1 1 0 1 1 1 37 0 1 1 1 0 0 0 38 0 1 1 1 1 1 1 3F
0 1 0 0 0 0 0 20 Not 1 1 1 1 1 1 1 7F Used
1 1 1 1 0 0 0 78 RAM4 1 1 1 1 1 1 1 7F
1 0 0 0 0 0 0 40 Not 1 1 1 1 1 1 1 7F Used
ACOE255
33
Example: (32X4 RAM module using 8X4 RAM chips - Assume an 8-address line processor)
D3
D3 A0
D0
D3 A0 A2
D0
D3 A0 A2
D0
D3 A0 A2
D0
8x4 RAM 1
8x4 RAM 2
8x4 RAM 3
8x4 RAM 4
D0 A2 RD WR CS RD WR RD WR CS RD WR CS RD WR CS
A0 A2 A3 A4 A5 A6 A7 CS 2X4 DEC. A B Y0 Y1 Y2 Y3
ACOE255
34
Not Used 1 1 1 1 1 1 1 1 FF
Not Used 1 1 1 1 1 1 1 1 FF
ACOE255
35
Design Example:
Design an 8KX8 RAM module using 2KX8 RAM chips. The module should be connected on an 8-bit processor with a 16-bit address bus, and occupy the address range starting from the address A000. Show the circuit and the memory map.
Number of memory devices needed = 8K/2K =4 Decoder needed = 2X4 Number of address lines on each 2KX8 memory chip = 11 2m = 2K = 21 x 210 = 211 (A0..A10) Decoder needed = 2X4 2 address lines are needed for the decoder. (A11..A12) Number of address lines needed for the address selection circuit = 16 - 11 - 2 = 3 (A13, A14 A15)
Starting Address = A000 = 1010-0000-0000-0000 ==> A15 = 1, A14 = 0 and A13 = 1 A13 A14 Address Selection Circuit A15
A15 0 1 1 1 1 1 1 1 1 1 1 1
A14 0 0 0 0 0 0 0 0 0 0 1 1
A13 0 0 1 1 1 1 1 1 1 1 0 1
A12 0 1 0 0 0 0 1 1 1 1 0 1
A11 0 1 0 0 1 1 0 0 1 1 0 1
A10 0 1 0 1 0 1 0 1 0 1 0 1
A0 0 1 0 1 0 1 0 1 0 1 0 1
Mem. Map 0000 Not Used 9FFF A000 A7FF A800 AFFF B000 B7FF B800 BFFF C000 FFFF RAM1 RAM2 RAM3 RAM4 Not Used
ACOE255
36
Circuit Diagram
A10 RD WR CS RD WR A0
A10 RD WR CS
A10 RD WR CS
A10 RD WR CS
ACOE255
37
Address Decoding
The physical address space, or memory map, of a microprocessor refers to the range of addresses of memory location that can accessed by the microprocessor. The size of the address space depends on the number of address lines of the microprocessor.
At least two memory devices are required in a microprocessor system: one for the ROM and one for the RAM. In an 8088/8086 the high addresses in the memory map should always be occupied by a ROM, while the low addresses in the memory map should always be occupied by a RAM.
Address decoding is required in order to enable the connection of more than one memory devices on the microprocessor. Each device will occupy a unique area in the memory map.
A memory system is not fully decoded if some of the address lines are not used by the address decoding circuit or memory. In this case a memory device will occupy more than one sections in the memory map. This is referred as memory mirroring or memory imaging.
ACOE255
38
An address decoding circuit must ensure that an address section is occupied by only one memory device. If two or more devices occupy the same addresses then bus contention will occur. Bus contention occurs if two of more devices drive the bus at the same time. Bus contention can be either static or dynamic. Static bus contention occurs when two or more devices drive a bus for a prolonged time period. This might damage some of the components of the system. Static bus contention might be caused by improper address decoding design, or by other faults in the system such as a short circuit of the CS of a device to the ground. Dynamic bus contention occurs when two or more devices drive a bus for a short period of time. This might change the logic levels on the bus and cause system malfunctions.Dynamic bus contention might be caused by improper address decoding design, or by wrong memory timing analysis.
ACOE255 Microprocessors I - Frederick University 39
MEM 2
CS
A0 0 1 0 1
40
Mem 8
CS
A0 0 1 0 1 0 1
Memory Map 40000H 47FFFH 48000H 4FFFFH 78000H 7FFFFH MEM1 MEM2
Y7
MEM8
ACOE255
41
CHIP DECODER1 PAL16L8 ;Pin Assignment ;1 2 3 4 5 6 . . . 10 A15 A16 A17 A18 A19 NC. . . Gnd ;11 12 13 14 15 . . . . 18 19 20 NC Q8 Q7 Q6 Q5 . . . Q2 Q1 Vcc EQUATIONS /Q1 = /A15 * /A16 * /A17 * A18 * /A19 /Q2 = A15 * /A16 * /A17 * A18 * /A19 /Q8 = A15 * A16 * A17 * A18 * /A19
I1 Q1 I2 Q2 I3 I4 I5 I6 Q8 I10
CS CS
12 20 10
Mem 8
CS
Vcc Gnd
ACOE255
42
A0 A15
MEM 2
CS
X=Y X1 X2 X3 X4 Y1 Y2 Y3 Y4
A0 0 1 0 1
Y1 Y2 Y3 Y4
43
Solution: 62256 SRAM chips: 256/8 =32 32KX8 Number of chips needed: 128K/32K = 4 Number of address lines: 32K = 25K = 25 * 210 = 215 15 address lines (A0 .. A14)
A0 0 1 0 1 0 1 0 1
RAM4 DFFFF
ACOE255
44
62256 A0 D0 A14 D7
62256 A0 D0 A14 D7
62256 A0 D0 A14 D7
RD WR CS
RD WR CS
RD WR CS
RD WR CS
8088 System
A19 IO/M'
ACOE255
45
62256 A0 D0 A14 D7
62256 A0 D0 A14 D7
62256 A0 D0 A14 D7
RD WR CS
RD WR CS
RD WR CS
RD WR CS
8088 System
A19 IO/M'
Y2 Y3
ACOE255
46
62256 A0 D0 D0 D7 A14 D7
62256 A0 D0 A14 D7
62256 A0 D0 A14 D7
62256 A0 D0 A14 D7
RD WR CS
RD WR CS
RD WR CS
RD WR CS
8088 System
RD WR A0
A19 IO/M'
1 2 3 4 5 6
I1 I2 I3 I4 I5 I6 I10
Q1 Q2 Q3 Q4
19 18 17 16
10
Q8 Gnd Vcc
12 20
PAL 16L8
ACOE255
47
62256 A0 D0 A14 D7
62256 A0 D0 A14 D7
62256 A0 D0 A14 D7
RD WR CS
RD WR CS
RD WR CS
RD WR CS
8088 System
X=Y Y X
X=Y Y X
X=Y Y X
X=Y Y
A19 IO/M'
ACOE255
48
Homework:
Show how a 32Kbyte ROM module can be connected on an 8088 system using 2764 EPROM chips, occupying the address range starting from the address E0000H. Use the following address decoding circuits:
1 2 3. 4. 5 Nand decoding circuits A line decoder and a Nand gate PLD decoding circuit Comparators only Line decoder and a comparator
A0
Memory Map
ACOE255
49
2764 A0 D0 D0 D7 RD WR A0 A 12
OE
2764 A0 D0 A 12
OE
2764 A0 D0 A 12
OE
2764 A0 D0 A 12
OE
D7
CS
D7
CS
D7
CS
D7
CS
8088 System
A19 IO/M'
ACOE255
50
2764 A0 D0 D0 D7 RD WR A0 A 12
OE
2764 A0 D0 A 12
OE
2764 A0 D0 A 12
OE
2764 A0 D0 A 12
OE
D7
CS
D7
CS
D7
CS
D7
CS
8088 System
A19 IO/M'
ACOE255
51
2764 A0 D0 D0 D7 RD WR A0 A 12
OE
2764 A0 D0 A 12
OE
2764 A0 D0 A 12
OE
2764 A0 D0 A 12
OE
D7
CS
D7
CS
D7
CS
D7
CS
8088 System
A19 IO/M'
ACOE255
52
2764 A0 D0 D0 D7 RD WR A0 A 12
OE
2764 A0 D0 A 12
OE
2764 A0 D0 A 12
OE
2764 A0 D0 A 12
OE
D7
CS
D7
CS
D7
CS
D7
CS
8088 System
A19 IO/M'
ACOE255
53
2764 A0 D0 D0 D7 RD WR A0 A 12
OE
2764 A0 D0 A 12
OE
2764 A0 D0 A 12
OE
2764 A0 D0 A 12
OE
D7
CS
D7
CS
D7
CS
D7
CS
8088 System
A19 IO/M'
ACOE255
54
The memory is separated into the High Bank (odd addresses) and the Low Bank (even addresses). The 8086 microprocessor can access either the low bank (D0..D7), or only the high bank (D8..D15), or both banks (D0..D15). The is a need only for separate Bank Write Strobes. When the processor reads from the memory, it always reads both banks, and selects the necessary bank internally.
(BHE') FFFFF FFFFD FFFFB FFFFE FFFFC FFFFA (BLE'/A0) BHE' BLE'(A0) 0 0 1 1 0 1 0 1 Function Example
Both banks enabled (16 bit) MOV [1000H],AX High bank enabled (8 bit) MOV [1001H],AL Low bank enabled (8 bit) MOV [1000H],AL No banks enabled ---------------
ACOE255
55
D15 D8 D7 D0 RD WR A0
A1
62256
A0 D0
A1
62256
A0 D0
A1
62256
A0 D0
A1
62256
A0 D0
A15 A14
D7
RD WR CS
A15
A14
D7
A15 A14
D7
RD WR CS
RD WR CS
A15
A14
D7
RD WR CS
8086 System
Y0 A19 A B
Y1
Y2
Y3 1E
Y0 A
Y1 B
Y2
Y3 1E
LS139
BHE' IO'/M A16 A17 A18 A19 A0 A16 A17
LS139
A18 A19
ACOE255
56
62256
A0 D0
A1
62256
A0 D0
A1
62256
A0 D0
A1
62256
A0 D0
A14
D7
RD WR CS
A15
A14
D7
RD WR CS
A15
A14
D7
RD WR CS
A15
A14
D7
RD WR CS
8086 System
LS139
ACOE255
57
62256
A0 D0
D0
A2
62256
A0 D0
D8
A2
62256
A0 D0
D16
A2
62256
A0 D0
D24
A16
A14
D7 D7
80386 Processor
RD WR CS
A16
A14
D7 D15
A16
A14
D7 D23
RD WR CS
RD WR CS
A16
A14
D7 D31
RD WR CS
Y0 A B
Y1
Y2
Y3 1E
LS139
ACOE255
58
Parameter Address to Output Delay Chip Select to Output Delay Chip Diselect to Output Float Address to Output Hold
Unit ns ns ns ns
ACOE255
59
Example
You are asked to interface 8Kx8 bit ROM chips with the following data to a 8088 microprocessor: Chip-select to output delay: 70ns(min) 120ns(typ) 180ns(max) Address to output delay: 230ns(min) 340ns(typ) 450ns(max) Chip deselect to output float: 80ns(typ) 100ns(max) Address to output hold: 80ns(typ) 100ns(max) Assume that buffers have a delay of 20 ns, and latches a delay of 35 ns. The delay of the wires is 20 ns A. Calculate the number of wait states (if needed) B. Draw the corresponding memory read operation timing diagram C. Calculate the number of chips required to create a 32Kbyte ROM D. Specify the memory map starting from address F8000H E. Draw the decoding circuit using NAND gates only F. Draw the decoding circuit using a decoder and NAND gates
ACOE255
60