Vi xử lý - c4

Chia sẻ: mrluanbinhminh

Ghép nối các chip nhớ EPROM và SRAM với Bus hệ thống sao cho không xảy ra xung đột: Các chip nhớ bị cấm khi vi xử lý truy cập các cổng I/O Chỉ có một chip nhớ hoạt động khi vi xử lý truy cập bộ nhớ. Thực hiện một mạch giải mã địa chỉ bộ nhớ dùng các chip giải mã hoặc các cổng logic hoặc kết hợp cả hai.

Bạn đang xem 20 trang mẫu tài liệu này, vui lòng download file gốc để xem toàn bộ.

Nội dung Text: Vi xử lý - c4

Chương 4
4.1 Phân loại bộ nhớ bán dẫn
4.2 Hoạt động của các chip EPROM
4.3 Hoạt động của các chip SRAM
4.4 Bus hệ thống của hệ vi xử lý 8088
4.5 Bài toán thiết kế bộ nhớ
Mục tiêu và biện pháp thiết kế
• Ghép nối các chip nhớ EPROM và SRAM với Bus
hệ thống sao cho không xảy ra xung đột:
Các chip nhớ bị cấm khi vi xử lý truy cập các
cổng I/O
Chỉ có một chip nhớ hoạt động khi vi xử lý truy
cập bộ nhớ
• Thực hiện một mạch giải mã địa chỉ bộ nhớ
dùng các chip giải mã hoặc các cổng logic hoặc
kết hợp cả hai
4.1 Phân loại bộ nhớ bán dẫn

Bộ nhớ bán dẫn
(Semiconductor memory)


SAM RAM
(Sequential Access Memory) (Random Access Memory)



ROM (Read Only Memory) RWM (Read Write memory)



PROM EPROM SRAM DRAM



EEPROM Flash ROM
4.2 Các chip EPROM
A0 D0
A1 D1
A2 D2
A3 D3 m chân dữ liệu
A4 D4
p chân địa chỉ A5 D5
A6 D6
A7 Dm-1
A8
EPROM
A
p-1


Điều khiển đọc OE
PGM
Chọn chip CE
Các chân điều khiển Vpp
Dung lượng của 1 chip nhớ
• Một chip nhớ được xem như một mảng gồm n ô
nhớ. Mỗi ô nhớ lưu trữ được m-bit dữ liệu
• Dung lượng của chip thường được biểu diễn:
nxm
Ví dụ: Một chip có dung lượng 2Kx8 nghĩa là chip
đó có 2048 ô nhớ và mỗi ô nhớ có thể lưu trữ
được 1 byte dữ liệu
• m chính là số chân dữ liệu của chip
• log2(n) = p là số chân địa chỉ của chip
Hoạt động ghi dữ liệu vào EPROM
• Việc ghi dữ liệu vào EPROM được gọi là lập
trình cho EPROM
• Được thực hiện bằng thiết bị chuyên dụng gọi là
Bộ nạp EPROM
• Chân Vpp được cấp điện áp tương ứng với từng
loại chip gọi là điện áp lập trình
• Dữ liệu tại các chân dữ liệu sẽ được ghi vào một
ô nhớ xác định nhờ các tín hiệu đưa vào ở các
chân địa chỉ và một xung (thường gọi là xung lập
trình) đưa vào chân PGM
Hoạt động đọc dữ liệu từ một chip EPROM

Để đọc dữ liệu từ 1 ô nhớ nào đó của 1
chip EPROM nào đó, Bộ vi xử lý cần phải:
• Chọn chip đó: 0 -----> CE
• Áp các tín hiệu địa chỉ của ô nhớ cần đọc vào các chân
địa chỉ Ap-1 – A0
• Đọc: 0 ------ > OE
• Kết quả là m bit dữ liệu cần đọc xuất hiện ở các chân
dữ liệu Dm-1 – D0
Họ EPROM thông dụng 27x
Số hiệu của chip Dung lượng
2716 2Kx8
2732 4Kx8
2764 8Kx8
27128 16Kx8
27256 32Kx8
27512 64Kx8
Bảng 4.1 Họ EPROM 27x
EPROM 2716 2732
1 24
A7 Vcc
2 23
A6 A8
• Sơ đồ chân 3 A5 A9
22
của 2716 4 A4
21 Vpp A11
và 2732 5
A3
20 __
OE
__
OE / Vpp
6 19
A2 A10
__
7 CE/PGM 18
A1
8 17
A0 D7
9 16
D0 D6
10 15
D1 D5
11 14
D2 D4
12 13
GND D3
EPROM 2764

Các chân địa chỉ




Các chân dữ liệu


Chọn chip

Điều khiển đọc
EPROM 2764
Lập trình cho 2764
• Trước hết cần phải xoá
– Xoá một chip tức là làm cho tất cả các bit = 1
• Xoá một chip EPROM bằng tia cực tím
• Lập trình bằng cách:
– VPP mắc ở mức 12.5V
– E và P đều ở mức thấp TTL
• Các bit dữ liệu đưa vào các chân dữ liệu
• Các bit địa chỉ đưa vào các chân địa chỉ
4.3 Các chip SRAM
A0 D0
A1 D1
A2 D2
A3 D3
A4 D4 m chân dữ liệu
P chân địa chỉ A5 D5
A6 D6
A7 Dm-1
A8
SRAM
A
p-1

Điều khiển đọc OE

Chọn chip CS

Điều khiển ghi
WE
Đọc dữ liệu từ một chip SRAM
Để đọc dữ liệu từ 1 ô nhớ nào đó của 1 chip SRAM
nào đó, vi xử lý cần phải:

• Chọn chip đó: 0 -----------> CS
• Áp các tín hiệu địa chỉ vào Ap-1 – A0
• Đọc: 0 ----------- > OE

Kết quả là m bit dữ liệu cần đọc xuất hiện ở các
chân dữ liệu Dm-1 – D0
Ghi dữ liệu vào một chip SRAM
Để ghi m bit dữ liệu vào 1 ô nhớ nào đó của 1 chip
SRAM nào đó, vi xử lý cần phải:
• Chọn chip đó: 0 --------> CS
• Áp các tín hiệu địa chỉ vào Ap-1 – A0
• Áp m bit dữ liệu cần ghi vào các chân dữ liệu Dm-
1 – D0

• Ghi: 0 --------- > WE
Kết quả là các bit dữ liệu ở các chân dữ liệu sẽ
được ghi vào ô nhớ đã chọn
SRAM 6264
• Dung lượng 8Kx8 A0 I/O0
A1 I/O 1
• 8 chân dữ liệu A2 I/O 2
A3 I/O 3

• 13 chân địa chỉ A4
A5
I/O
I/O
4
5

• Hai chân chọn chip
A6
A7
I/O
I/O
6
7
A8
• Chân điều khiển đọc A9 6264
A 10

• Chân điều khiển ghi A 11
A 12


OE
WE
CS1
CS2
32K x 8 Static RAM
1 28
A14 Vcc
2 __ 27
A12 WE
3 26
A7 A13
4 25
A6 A8
5 24
A5 A9
6 23
A4 A11
7 __ 22
A3 OE
8 21
A2 A10
9 __ 20
A1 CE
10 19
A0 D7
11 18
D0 D6
12 17
D1 D5
13 16
D2 D4
14 15
GND D3

51256S
Sơ đồ khối 6264
Chức năng của 6264
4.4 Bus hệ thống của 8088
• Bus địa chỉ 20-bit: gồm các đường địa chỉ được
ký hiệu từ A19 đến A0
• Bus dữ liệu 8-bit: gồm các đường dữ liệu được
ký hiệu từ D7 đến D0
• Bus điều khiển gồm các đường điều khiển riêng
lẽ phục vụ cho hoạt động truy cập bộ nhớ và các
cổng I/O, mỗi đường thường được ký hiệu bằng
tên của tín hiệu điều khiển
• Bus hệ thống không nối trực tiếp với các chân
của 8088: thông qua các mạch đệm, chốt.
80x86 Microprocessors
Product 8008 8080 8085 8086 8088 80286 80386 80486 Pent. Pent.
Pro
Year Introduced 1972 1974 1976 1978 1979 1982 1985 1989 1992 1995

Technology PMOS NMO NMO NMO NMO NMOS CMOS CMOS BICMO BICMO
S S S S S S
Clock Rate 0.5-0.8 2-3 3-8 5-10 5-8 10-16? 16-40 66 60-66+ 150

Number of Pins 18 40 40 40 40 132 168 273 387


Number of transistors 3000 4500 6500 29K 29K 130K 275K 1.2M 3M 5.5M

Number of 66 111 113 133 133
instructions
Physical Memory 16K 64K 64K 1M 1M 16M 16M4GB 4GB 4GB 64G

Virtual Memory none none none none none 1G 64T 64T 64T 64T

Internal Data Bus 8 8 8 16 16 16 32 32 64 32

External Data Bus 8 8 8 16 8 16 16,32 32 64 64

Address Bus 8 16 16 20 20 24 24,32 32 32 36

Data Types 8 8 8 8,16 8,16 8,16 8,16,32 8,16,32 8,16,32 8,16,32
8088/8086 Microprocessor
• DIP 40 pin
• Data bus
– Bus dữ liệu trong :16 bit
– Bus dữ liệu ngoài của 8088: 8 bit dùng AD0-
AD7
– Bus dữ liệu ngoài của 8086:16 bit dùng AD0-
AD15
– ALE (Address Latch Enable)
8088/8086 Microprocessor
• Bus địa chỉ
– ALE = 1
– Sử dụng 74LS373 để tách và chốt địa chỉ
• Đầu vào: AD0-AD7 (8088) hoặc AD0-AD15 (8086)
và ALE
• Đầu ra: A0-A7 (8088) hoặc A0-A15 (8086)
Sơ đồ chân của 8088
Sơ đồ chân 8088/8086
(Min Mode)
Minimum/Maximum Mode
• Ảnh hưởng đến các chân 24-31
• Minimum Mode
– Các chân 24-31 là các tín hiệu điều khiển I/O và bộ
nhớ
– Các tín hiệu điều khiển đều từ 8088/8086
– Tương tự với 8085A
• Maximum Mode
– Một số tín hiệu điều khiển được tạo ra từ ngoài
– Một số chân có thêm chức năng mới
– Khi có dùng bộ đồng xử lý toán 8087
Sơ đồ chân của 8088
MN / MX AD0
AD 1
READY AD 2
CLK AD 3
RESET AD 4
AD 5
TEST AD 6
AD 7
HLDA
A 8
HOLD A 9
NMI A 10
A 11
A 12
A 13
A 14
8088 A 15

A 16 / S3
A 17 / S4
A 18 / S5
A 19 / S6

SSO

DEN
DT / R
IO / M

RD
WR
ALE
INTR INTA
Tín hiệu ở các chân của 8088
MN / MX AD0
AD 1
READY AD 2
CLK
RESET
AD 3
AD 4
Các chân Địa chỉ/Dữ liệu
AD 5
TEST AD 6
AD 7
HLDA
A 8
HOLD A 9
NMI A 10
A 11
A 12
Các chân địa chỉ
A 13
A 14
8088 A 15

A 16 / S3
A 17 / S4
Các chân Địa chỉ/Trạng thái
A 18 / S5
A 19 / S6

SSO

DEN
DT / R
IO / M

RD
WR

INTR
ALE
INTA
Cho phép chốt Địa chỉ
Các chân Địa chỉ/Dữ liệu
• Các chân AD7 đến AD0
• Kỹ thuật Multiplexing: Tín hiệu ở các chân
này lúc này là tín hiệu địa chỉ, lúc khác là
tín hiệu dữ liệu phụ thuộc vào tín hiệu
điều khiển ALE (Address Latch Enable):
• ALE = 1: AD7 đến AD0 = A7 đến A0
• ALE = 0: AD7 đến AD0 = D7 đến D0
Các chân Địa chỉ
và Các chân Địa chỉ/Trạng thái
• Các chân địa chỉ: A15 đến A8
• Tín hiệu ở các chân này luôn là tín hiệu
địa chỉ
• Các chân địa chỉ/trạng thái: A19/S6 đến
A16/S3:
• ALE = 1: A19 đến A16
• ALE = 0: S6 đến S3
Processor Timing Diagram of 8088 (Minimum Mode)
for Memory or I/O Read (with 74245)
T1 T2 T3 T4


CLOCK
__
DT/R


ALE

D7 - D0 D7 - D0 (from memory)
from memory to 74LS245


D7 - D0 from
AD7 - AD0 A7 - A0 garbage
74LS245



A15 - A8 A15 - A8


A19/S6 - A16/S3 A19 - A16 S6 - S3


A19 - A0 A19 - A0 from 74LS373
from 74LS373 to memory
__
IO/M if I/O ACCESS this is HIGH, if MEMORY ACCESS this is LOW

____
RD
______
DEN
Mô tả chân
• BHE
• Bus High Enable
• Phân biệt byte thấp và
byte cao của một từ (chỉ
với 8086)
Mô tả chân
• NMI
• Non Maskable
Interrupt
• Đầu vào ngắt không
che được
Mô tả chân
• INTR
• Interrupt Request
• Đầu vào ngắt che
• được
• Nối với chip điều
khiển ngắt 8259
• INTA: chấp nhận ngắt
Mô tả chân
• CLK
• Clock
• Đầu vào đồng hồ
• Nối với chip 8284
Mô tả chân
• RESET
• Kết thúc hoạt động hiện thời
và huy bỏ mọi thứ
• Sau khi reset
– CS=FFFFH
– DS=0000H
– SS=0000H
– ES=0000H
– IP=0000H
– Các cờ bị xoá
– Hàng đợI lệnh rỗng
Mô tả chân
• READY
• Chèn thêm một trạng thái
đợi (wait state)
Mô tả chân
• TEST
• Đến từ 8087 (Bộ đồng xử
lý)
• Đồng bộ 8088 và 8087
Mô tả chân
• MN/MX
• Minimum mode = +5V
• Maximum mode = Gnd
Mô tả chân – Max


• QS0, QS1
• Queue status
• Trạng thái của hàng đợi
lệnh:
– 00 – No operation
– 01 – first byte of opcode
from queue
– 10 – empty the queue
– 11 – subsequent byte from
queue
Mô tả chân – Max

• S0, S1, S2
• Status Signal Pins (S2-S0)
– 000 – INTA – interrupt
acknowledge
– 001 – IORC – read I/O port
– 010 – IOWC – write I/O port
– 011 – none - halt
– 100 – MRDC – code access
– 101 – MRDC – read memory
– 110 – MWTC – write memory
– 111 – none - passive
Mô tả chân – Max
• LOCK
• Locks processor to
system bus
• Gain the lock by using
LOCK prefix on an
assembly instruction
• Used with status signals
to prevent DMA from
gaining control of the
buses
Mô tả chân – Max
• RQ/GT0, RQ/GT1
• Request/Grant
• Bi-directional
• Gain control of local bus
• RQ/GT0 normally
permanently high (disabled)
• RQ/GT1 is connected to the
8087
Mô tả chân – Min
• INTA
• Interrupt acknowledge
• Chấp nhận ngắt
Mô tả chân – Min
• ALE
• Address Latch Enable
• Tín hiệu ở các chân
Địa chỉ/Dữ liệu và các
chân Địa chỉ/Trạng
thái lúc ALE = 1 là các
tín hiệu địa chỉ
Mô tả chân
• AD0-AD7
• Các chân Địa chỉ/Dữ liệu
• Tín hiệu ở các chân này
là 8 bit địa chỉ thấp A0
đến A7 khi ALE =1, là 8
bit dữ liệu D0 đến D7 khi
ALE = 0
74LS373

D0 Q0
D1 Q1
D2 Q2
D3 Q3
D4 Q4
D5 74LS373 Q5
D6 Q6
D7 Q7

OE
LE
74LS373
Dùng 74LS373 để tách và chốt địa
chỉ
Mô tả chân – Min



• DEN
• Data Enable
• Dữ liệu có nghĩa
Mô tả chân – Min

• DT/R
• Điều khiển hướng của
tín hiệu dữ liệu:
• 1: Tín hiệu dữ liệu đi ra
từ 8088
• 0: Tín hiệu dữ liệu đi
vào 8088
Mô tả chân – Min



• IO/M
• Phân biệt: truy cập
I/O hay Bộ nhớ
– 1: 8088 truy cập I/O
– 0: 8088 truy cập bộ
nhớ
Mô tả chân – Min

• WR
• 0: Tín hiệu trên bus
dữ liệu được ghi vào
bộ nhớ hoặc I/O
• Ghi bộ nhớ: ?
• Xuất dữ liệu ra
cổng: ?
Mô tả chân – Min
• HLDA
• Hold Acknowledge
• 0: Chấp nhận yêu cầu
DMA ở HOLD
– Báo cho Bộ điều khiển
DMA được phép sử
dụng bus hệ thống
Mô tả chân – Min
• HOLD
• Nhận tín hiệu yêu
cầu DMA từ Bộ điều
khiển DMA (DMAC)
• DMAC muốn sử
dụng bus hệ thống
Mô tả chân – Min
• SSO
• 8088
• Dùng với IO/M và DT/
R để xác định trạng
thái của chu kỳ bus
hiện thời
Các tín hiệu điều khiển
• Có thể sử dụng các cổng logic để tạo ra
các tín hiệu điều khiển khác từ các tín
hiệu điều khiển sẵn có
– 3 Tín hiệu:
• RD, WR and IO/M RD W IO/M Signal
R
0 1 0 MEMR
1 0 0 MEMW
0 1 1 IOR
1 0 1 IOW
0 0 X Never happens
Tạo ra các tín hiêụ điều khiển
(Min Mode)
Tạo ra các tín hiêụ điều khiển
(Min Mode)
8088 Bus – Min Mode
74LS245

A0 B0

A1 B1

A2 B2

A3 B3

A4 B4

A5
74LS245 B5

A6 B6

A7 B7




E DIR
Bus hệ thống của hệ 8088 ở Mode Minimum
A7 - A0 B7 - B0 D7 - D0

DEN E Bus dữ liệu
DT / R DIR 74LS245 Bus địa chỉ

AD7 - AD0 D7 - D0 Q7 - Q0 A7 - A0
A15 - A8
GND OE A19 - A16
LE 74LS373

A15 - A8 D7 - D0 Q7 - Q0

GND OE MEMORY
8088 LE 74LS373

A19/S6 - A16/
D7 - D4 Q7 - Q4
S3
D3 - D0 Q3 - Q0

GND OE
ALE LE 74LS373
RD
RD

IO / M
MEMR
WR
WR
MEMW
Minimum Mode 8088
D7 - D0 D7 - D0




A19 - A0 A19 - A0




Bộ nhớ được chọn khi nào? MEMORY
8088 Minimum
Mode




MEMR RD



MEMW WR
Minimum Mode
8088
220 ô nhớ (1MB)
D7 - D0 D7 - D0




A19 - A0 A19 - A0




MEMORY
8088 Minimum
Mode




MEMR RD



MEMW WR
CS
Không gian địa chỉ bộ nhớ 1M

A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
00000 0000 0000 0000 0000 0000
FFFFF 1111 1111 1111 1111 1111

Ví dụ: Một địa chỉ bất kỳ 34FD0h

0011 0100 11111 1101 0000
Bộ nhớ đầy đủ 1MB

AX 3F1C FFFFF 36
BX 0023 FFFFE 25
CX 0000 FFFFD 19
DX FCA1 : :
A19 A19
: :
: :
CS XXXX 20023 13
A0 A0
SS XXXX 20022 7D
DS 2000 20021 12
ES XXXX 20020 29
: :
D7 D7
BP XXXX : :
: :
SP XXXX 10008 8A
D0 D0
10007 F4
SI XXXX 10006 07
DI XXXX 10005 88
10004 42
MEMR RD
IP XXXX 10003 39
10002 27
10001 98
10000 45
: :
MEMW WR
: :
00001 95
CS 00000 23
Nếu chỉ cần bộ nhớ có
dung lượng nhỏ hơn 1MB
thì giải quyết như thế nào?
• Phụ thuộc vào các chip nhớ sẵn có
• Phụ thuộc yêu cầu phân bố địa chỉ cho
các loại bộ nhớ vật lý khác nhau
• …
512K đầu tiên của không gian địa chỉ bộ nhớ
(Các địa chỉ có bit cao nhất A19 = 0)


A18 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
00000 0000 0000 0000 0000 0000
7FFFF 0111 1111 1111 1111 1111
512K tiếp theo của không gian địa chỉ bộ nhớ
(Các địa chỉ có bit cao nhất A19 = 1)


A18 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
80000 1000 0000 0000 0000 0000
FFFFF 1111 1111 1111 1111 1111
Bộ nhớ 512KB


AX 3F1C
BX 0023
Làm gì với A19?
CX 0000
A19
DX FCA1
A18 A18 7FFFF 36
: : 7FFFE 25
CS XXXX
A0 A0 7FFFD 19
SS XXXX
: :
DS 2000
D7 D7 : :
ES XXXX
: : 20023 13
D0 D0 20022 7D
BP XXXX
20021 12
SP XXXX
MEMR RD 20020 29
: :
SI XXXX MEMW WR
: :
DI XXXX
00001 95
CS 00000 23
IP XXXX
Điều gì xảy ra nếu 8088 đọc ô nhớ A0023h?
AX 3F1C
BX 0023
CX 0000
A19
DX FCA1
A18 A18 7FFFF 36
: : 7FFFE 25
CS XXXX
A0 A0 7FFFD 19
SS XXXX
: :
DS A000
D7 D7 : :
ES XXXX
: : 20023 13
D0 D0 20022 7D
BP XXXX
20021 12
SP XXXX
MEMR RD 20020 29
: :
SI XXXX MEMW WR
: :
DI XXXX
00001 95
CS 00000 23
IP XXXX




MOV AH, [BX]
Điều gì xảy ra nếu 8088 đọc ô nhớ A0023h?


A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
A0023 1010 0000 0000 0010 0011


A19 không được nối đến bộ nhớ nên
nếu 8088 phát logic “1” trên A19 thì
bộ nhớ cũng không nhận biết được.
Điều gì xảy ra nếu 8088 đọc ô nhớ 20023h?


A18 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
20023 0010 0000 0000 0010 0011


Với bộ nhớ tình hình không có gì khác!
Nếu Bộ nhớ gồm 2 khối 512KB như thế này?
AX 3F1C A19 7FFFF 36
BX 0023 A18 A18 7FFFE 25
CX 0000 : : 7FFFD 19
DX FCA1 A0 A0 : :
20023 13
D7 D7
CS XXXX 20022 7D
: :
SS XXXX 20021 12
D0 D0
DS 2000 20020 29
ES XXXX MEMR RD : :
MEMW WR 00001 95
BP XXXX CS 00000 23
SP XXXX


SI XXXX 7FFFF 12
DI XXXX A18 7FFFE 98
: 7FFFD 2C
IP XXXX A0 : :
20023 33
D7
20022 45
:
20021 92
D0
20020 A3
RD : :
WR 00001 D4
CS 00000 97
Có vấn đề !!!
• Vấn đề là: Xung đột Bus. Hai khối nhớ sẽ
cung cấp dữ liệu cùng một lúc khi 8088
đọc bộ nhớ
• Giải pháp: Dùng A19 làm “người phân xử”
để giải quyết xung đột trên bus. Nếu A19
ở mức logic “1” thì khối nhớ trên hoạt
động (khối nhớ dưới bị cấm) và ngược lại
Bộ nhớ gồm hai khối nhớ 512KB
AX 3F1C A19 7FFFF 36
BX 0023 A18 A18 7FFFE 25
CX 0000 : : 7FFFD 19
DX FCA1 A0 A0 : :
20023 13
D7 D7
CS XXXX 20022 7D
: :
SS XXXX 20021 12
D0 D0
DS 2000 20020 29
ES XXXX MEMR RD : :
MEMW WR 00001 95
BP XXXX CS 00000 23
SP XXXX


SI XXXX 7FFFF 12
DI XXXX A18 7FFFE 98
: 7FFFD 2C
IP XXXX A0 : :
20023 33
D7
20022 45
:
20021 92
D0
20020 A3
RD : :
WR 00001 D4
CS 00000 97
Không gian địa chỉ bộ nhớ 1M

A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
00000 0000 0000 0000 0000 0000
7FFFF 0111 1111 1111 1111 1111
80000 1000 0000 0000 0000 0000
FFFFF 1111 1111 1111 1111 1111
Bộ nhớ gồm hai khối nhớ 512KB
AX 3F1C A19 7FFFF 36
BX 0023 A18 A18 7FFFE 25
CX 0000 : : 7FFFD 19
DX FCA1 A0 A0 : :
20023 13
D7 D7
CS XXXX 20022 7D
: :
SS XXXX 20021 12
D0 D0
DS 2000 20020 29
ES XXXX MEMR RD : :

Khi µ P xuấ m t t a
Khi µP xuất tmộộđịđịa
MEMW WR 00001 95
BP XXXX CS 00000 23
SP XXXX
chỉ ttừ 80000h to ến
ỉ ừ 00000h đ
SI XXXX FFFFFh, Bộ nhớ này
7FFFFh, nhớ 7FFFF 12
DI XXXX A18 7FFFE 98
này động
hoạthoạt động : 7FFFD 2C
IP XXXX A0 : :
20023 33
D7
20022 45
:
20021 92
D0
20020 A3
RD : :
WR 00001 D4
CS 00000 97
Bộ nhớ gồm hai khối nhớ 512KB

AX 3F1C A19 7FFFF 36
BX 0023 A18 A18 7FFFE 25
CX 0000 : : 7FFFD 19
DX FCA1 A0 A0 : :
20023 13
D7 D7
CS XXXX 20022 7D
: :
SS XXXX 20021 12
D0 D0
DS 2000 20020 29
ES XXXX MEMR RD : :
MEMW WR 00001 95
BP XXXX CS 00000 23
SP XXXX

SI XXXX 7FFFF 12
DI XXXX A18 7FFFE 98
: 7FFFD 2C
IP XXXX A0 : :
20023 33
D7
20022 45
:
20021 92
D0
20020 A3
RD : :
WR 00001 D4
CS 00000 97
Thiết kế Bộ nhớ cho Hệ vi xử lý

AX 3F1C A19 A19 7FFFF 36
BX 0023 A18 A18 A18 7FFFE 25
CX 0000 : : : 7FFFD 19
DX FCA1 A0 A0 A0 : :
20023 13
D7 D7 D7
CS XXXX 20022 7D
: : :
SS XXXX 20021 12
D0 D0 D0
DS 2000 20020 29
ES XXXX MEMR RD Ghép nối các RDchip : :

BP XXXX
MEMW WR
nhớ riêng lẽ với Bus
WR
CS
00001
00000
95
23
SP XXXX hệ thống sao cho
SI XXXX không xảy ra xung7FFFF 12
DI XXXX
đột nhờ mạch giả7FFFE
A18
:
i
7FFFD
98
2C
IP XXXX mã địa chỉ bộ nhớ :
A0 :
20023 33
D7
20022 45
:
20021 92
D0
20020 A3
RD : :
WR 00001 D4
CS 00000 97
Nếu bỏ đi khối nhớ bên dưới?
AX 3F1C A19 7FFFF 36
BX 0023 A18 A18 7FFFE 25
CX 0000 : : 7FFFD 19
DX FCA1 A0 A0 : :
20023 13
D7 D7
CS XXXX 20022 7D
: :
SS XXXX 20021 12
D0 D0
DS 2000 20020 29
ES XXXX MEMR RD : :
MEMW WR 00001 95
BP XXXX CS 00000 23
SP XXXX


SI XXXX 7FFFF 12
DI XXXX A18 7FFFE 98
: 7FFFD 2C
IP XXXX A0 : :
20023 33
D7
20022 45
:
20021 92
D0
20020 A3
RD : :
WR 00001 D4
CS 00000 97
Nếu bỏ đi khối nhớ bên dưới thì …
AX 3F1C A19 7FFFF 36
BX 0023 A18 A18 7FFFE 25
CX 0000 : : 7FFFD 19
DX FCA1 A0 A0 : :
20023 13
D7 D7
CS XXXX 20022 7D
: :
SS XXXX 20021 12
D0 D0
DS 2000 20020 29
ES XXXX MEMR RD : :

Khi µ P xuấ ra ộ ộ
MEMW Khi µP xuất tra mmt t WR 00001 95
BP XXXX CS 00000 23
dịa chỉỉtừ 80000h
SP XXXX
đ ịa ch từ 00000h
đ ến 7FFFFh, Không
SI XXXX
đến FFFFFh, Chip
có ớ nàynhớ tnàong ạt
nh chip hoạ độ ho
DI XXXX




!
IP XXXX động!
Giải mã đầy đủ và không đầy đủ

• Giải mã đầy đủ (Full Decoding)
– Tất cả các đường địa chỉ có nghĩa đều được sử dụng
vào mạch giải mã
– Mỗi ô nhớ chỉ có một địa chỉ vật lý duy nhất
• Giải mã không đầy đủ (Partial Decoding)
– Không phải tất cả các đường địa chỉ có nghĩa đều
được sử dụng vào mạch giải mã
– Một ô nhớ có hơn một địa chỉ vật lý
Giải mã đầy đủ
AX 3F1C A19 7FFFF 36
BX 0023 A18 A18 7FFFE 25
CX 0000 : : 7FFFD 19
DX FCA1 A0 A0 : :
20023 13
D7 D7
CS XXXX 20022 7D
: :
SS XXXX 20021 12
D0 D0
DS 2000 20020 29
ES XXXX MEMR RD : :
MEMW WR 00001 95
BP XXXX CS 00000 23
SP XXXX

SI XXXX
DI XXXX


IP XXXX
Giải mã đầy đủ

A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
80000 1000 0000 0000 0000 0000
FFFFF 1111 1111 1111 1111 1111

A19 phải ở mức “1” thì chip nhớ mới
hoạt động (được chọn)
Giải mã đầy đủ

A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
00000 0000 0000 0000 0000 0000
7FFFF 0111 1111 1111 1111 1111

Do đó, nếu vi xử lý phát ra một địa chỉ từ
00000h đến 7FFFFh (A19 ở mức logic “0”)
chip nhớ sẽ không được chọn.
Giải mã không đầy đủ
AX 3F1C
BX 0023
CX 0000
A19
DX FCA1
A18 A18 7FFFF 36
: : 7FFFE 25
CS XXXX
A0 A0 7FFFD 19
SS XXXX
: :
DS 2000
D7 D7 : :
ES XXXX
: : 20023 13
D0 D0 20022 7D
BP XXXX
20021 12
SP XXXX
MEMR RD 20020 29
: :
SI XXXX MEMW WR
: :
DI XXXX
00001 95
CS 00000 23
IP XXXX
Giải mã không đầy đủ
A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
00000 0000 0000 0000 0000 0000
7FFFF 0111 1111 1111 1111 1111
80000 1000 0000 0000 0000 0000
FFFFF 1111 1111 1111 1111 1111
A19 không có ý nghĩa với chip nhớ
Giải mã không đầy đủ

A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
00000 0000 0000 0000 0000 0000
7FFFF 0111 1111 1111 1111 1111
80000 1000 0000 0000 0000 0000
FFFFF 1111 1111 1111 1111 1111
Địa chỉ thực tế
Giải mã không đầy đủ

A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
00000 0000 0000 0000 0000 0000
7FFFF 0111 1111 1111 1111 1111
80000 1000 0000 0000 0000 0000
FFFFF 1111 1111 1111 1111 1111
Địa chỉ thực tế
Bộ nhớ gồm 2 chip 512Kx8

A19
A18 A18
: :
A0 A0

D7 D7 512KB
: : #2
D0 D0

MEMR RD
MEMW WR
CS
8088
Minimum
Mode
A18
:
A0

D7 512KB
: #1
D0

RD
WR
CS
Bộ nhớ chỉ có một chip 512Kx8 (Ver. 1)

A19
A18 A18
: :
A0 A0

D7 D7
: :
512KB
D0 D0

MEMR RD
MEMW WR
CS
8088
Minimum
Mode
Bộ nhớ chỉ có một chip 512Kx8 (Ver. 2)

A19
A18 A18
: :
A0 A0

D7 D7
: :
512KB
D0 D0

MEMR RD
MEMW WR
CS
8088
Minimum
Mode
Bộ nhớ chỉ có một chip 512Kx8 (Ver. 3)

A19
A18 A18
: :
A0 A0

D7 D7
: :
512KB
D0 D0

MEMR RD
MEMW WR
CS
8088
Minimum
Mode
A17
:

Bộ nhớ gồm 4 chip 256Kx8 A0
D7
256KB
:
D0 #4
RD
WR
A19
CS
A18
A17 A17
: :
A0 A0
D7 D7
: :
256KB
D0 D0 #3
MEMR RD
MEMW WR

8088 CS
Minimum
A17
Mode :
A0
D7
:
256KB
D0 #2
RD
WR
CS

A17
:
A0
D7
256KB
:
D0 #1
RD
WR
CS
A17
:

Bộ nhớ gồm 4 chip 256Kx8 A0
D7
256KB
:
D0 #4
RD
WR
A19
CS
A18
A17 A17
: :
A0 A0
D7 D7
256KB
: :
D0 D0 #3
MEMR RD
MEMW WR

8088 CS
Minimum
A17
Mode :
A0
D7
256KB
:
D0 #2
RD
WR
CS

A17
:
A0
D7
:
256KB
D0 #1
RD
WR
CS
Dải địa chỉ của chip #1
A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
00000 0000 0000 0000 0000 0000
----- ---- ---- ---- ---- ----

3ffff 0011 1111 1111 1111 1111
----- ---- ---- ---- ---- ----
Dải địa chỉ của chip #2
A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
40000 01000 0000 0000 0000 0000
----- ---- ---- ---- ---- ----

7ffff 0111 1111 1111 1111 1111
----- ---- ---- ---- ---- ----
Dải địa chỉ của chip #3
A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
80000 1000 0000 0000 0000 0000
----- ---- ---- ---- ---- ----

bffff 1011 1111 1111 1111 1111
----- ---- ---- ---- ---- ----
Dải địa chỉ của chip #4
A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
c0000 1100 0000 0000 0000 0000
----- ---- ---- ---- ---- ----

fffff 1111 1111 1111 1111 1111
----- ---- ---- ---- ---- ----
A17
Bộ nhớ gồm 4 chip 256Kx8 :
A0

dùng các cổng logic D7
:
256KB
#4
D0
RD
WR
A19
CS
A18
A17 A17
: :
A0 A0
D7 D7
256KB
: :
D0 D0 #3
MEMR RD
MEMW WR

8088 CS
Minimum
A17
Mode :
A0
D7
256KB
:
D0 #2
RD
WR
CS

A17
:
A0
D7
:
256KB
D0 #1
RD
WR
CS
A17
Bộ nhớ gồm 4 chip 256Kx8 :
A0

dùng các cổng logic D7
:
D0
256KB
#4
RD
WR
A19
CS
A18
A17 A17
: :
A0 A0
D7 D7
: :
256KB
D0 D0 #3
MEMR RD
MEMW WR

8088 CS
Minimum
A17
Mode :
A0
D7
:
256KB
D0 #2
RD
WR
CS

A17
:
A0
D7
256KB
:
D0 #1
RD
WR
CS
A17
Bộ nhớ gồm 4 chip 256Kx8 :
A0

dùng một chip giải mã 2-4 D7
:
D0
256KB
#4
RD
WR
A19 I1
O3 CS
A18 I0
A17 A17
: :
A0 A0
D7 D7
: :
256KB
D0 D0 #3
MEMR RD
MEMW WR

8088 O2 CS
Minimum
A17
Mode :
A0
D7
:
256KB
D0 #2
RD
WR
O1 CS

A17
:
A0
D7
256KB
:
D0 #1
RD
WR
O0 CS
A12
:

Ghép nối các chip A19
A0
D7
8KB
nhớ 8Kx8 với µP A18
A17
A16
:
D0
RD
#?

8088 A15
A14
WR
CS
A13
A12


:
:
A0
D7
:



:
D0
MEMR
MEMW
8088
Minimum
Mode
A12
:
A0
D7
8KB
:
D0 #2
RD
WR
CS

A12
:
A0
D7
8KB
:
D0 #1
RD
WR
CS
A12
:
A0

Bộ nhớ gồm 128 A19
A18
D7
:
8KB
#128
A17 D0
chip 8Kx8 A16
A15
RD
WR
A14
CS
A13
A12


:
:
A0
D7
:



:
D0
MEMR
MEMW
8088
Minimum
Mode
A12
:
A0
D7
8KB
:
D0 #2
RD
WR
CS

A12
:
A0
D7
8KB
:
D0 #1
RD
WR
CS
A12
:
A0

Bộ nhớ gồm 128 A19
A18
D7
:
8KB
#128
chip 8Kx8
A17 D0
A16 RD
A15 WR
A14
CS
A13
A12


:
:
A0
D7
:



:
D0
MEMR
MEMW
8088
Minimum
Mode
A12
:
A0
D7
:
8KB
D0 #2
RD
WR
CS

A12
:
A0
D7
8KB
:
D0 #1
RD
WR
CS
Dải địa chỉ của Chip #__
A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)

----- ---- ---- ---- ---- ----



----- ---- ---- ---- ---- ----
A12
:
A0

Bộ nhớ gồm 128 A19
A18
D7
:
8KB
#128
chip 8Kx8
A17 D0
A16 RD
A15 WR
A14
CS
A13
A12


:
:
A0
D7
:



:
D0
MEMR
MEMW
8088
Minimum
Mode
A12
:
A0
D7
:
8KB
D0 #2
RD
WR
CS

A12
:
A0
D7
8KB
:
D0 #1
RD
WR
CS
Phát biểu bài toán
• Thiết kế bộ nhớ cho hệ vi xử lý 8088 thoả mãn
các yêu cầu:
• ROM có dung lượng 2Kx8 chiếm dụng các địa
chỉ từ FFFFFh trở xuống
• RWM có dung lượng 2Kx8 chiếm dụng các địa
chỉ tiếp theo ngay sau ROM
• Chỉ được phép sử dụng:
EPROM 2716 2Kx8, SRAM 4016 2Kx8
Chip giải mã 74LS138 và các cổng logic
Bước 1: Vẽ bản đồ bộ nhớ cần thiết kế
FFFFFh



ROM 2K



FF800h
FF7FFh
Các Địa
chỉ biên
RWM 2K



FF000h


Chưa sử dụng


00000h
Bước 2: Chuyển các địa chỉ biên từ H sang B

A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
FF800 1111 1111 1000 0000 0000

FFFFF 1111 1111 1111 1111 1111
Bước 2: Chuyển các địa chỉ biên từ H sang B

A19 AAAA AAAA AAAA AAAA AAAA
đến 1111 1111 1198 7654 3210
A0 9876 5432 1000
(HEX)
FF000 1111 1111 0000 0000 0000

FF7FF 1111 1111 0111 1111 1111
Nhận xét
• Khi các địa chỉ dành cho ROM được phát
lên A-Bus: A19 – A12 = 1 và A11 = 1
• Khi các địa chỉ dành cho RWM được phát
lên A-Bus: A19 – A12 = 1 và A11 = 0
Bước 3: Vẽ mạch giải mã địa chỉ bộ 
nhớ
• Ghép các chân dữ liệu của các chip nhớ
với D-Bus
• Ghép các chân địa chỉ và các chân điều
khiển:
Khi vi xử lý truy cập các cổng I/O thì các
chip nhớ bị cấm (Khi IO/M = 1)
Khi vi xử lý truy cập bộ nhớ (IO/M = 0) thì
chỉ có một chip nhớ làm việc
• Có thể có nhiều lời giải khác nhau
74LS138: Một chip giải mã 3-8


C Y0
U1
B Y1 74LS138
74LS138
A Y2
A2 Q7
Y3 A1
A0
Q6
Q5
74LS138 Q4
Y4 Q3
E3 Q2
G1 Y5 E2
E1
Q1
Q0
G2A Y6
G2B Y7
Đề thi vào lớp 10 môn Toán |  Đáp án đề thi tốt nghiệp |  Đề thi Đại học |  Đề thi thử đại học môn Hóa |  Mẫu đơn xin việc |  Bài tiểu luận mẫu |  Ôn thi cao học 2014 |  Nghiên cứu khoa học |  Lập kế hoạch kinh doanh |  Bảng cân đối kế toán |  Đề thi chứng chỉ Tin học |  Tư tưởng Hồ Chí Minh |  Đề thi chứng chỉ Tiếng anh
Theo dõi chúng tôi
Đồng bộ tài khoản