Hai RAM sẽ xuất dữ liệu cùng lúc khi VXL thực hiện lệnh đọc bộ nhớ arbiter, trong trường hợp này có thể gọi là bộ giải mã địa chỉ address decoder... Full and Partial Decoding• Full De
Trang 1BÙI QUỐC BẢO (buiquocbao@hcmut.edu.vn)
Trang 2• Address decoding
• Chip select
• Memory configurations
Trang 5AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
00000 0000 0000 0000 0000 0000
FFFFF 1111 1111 1111 1111 1111
Example: 34FD0
0011 0100 11111 1101 0000
Trang 6Interfacing a 1MB Memory to the 8088 Microprocessor
10000 10001 10002 10003 10004 10005 10006 10007 10008
45 98 27 39 42 88 07 F4 8A
: :
20020 20021 20022 20023
FFFFD FFFFE FFFFF
29 12 7D 13
19 25 36
: :
: :
: : A19
A0 :
D7 D0 :
RD
A19 A0 :
D7 D0 :
MEMR XXXX
Trang 8What are the memory locations of a
AAAA 1198
10 00
AAAA 7654
AAAA 3210
00000 0 000 0000 0000 0000 0000
7FFFF 0 111 1111 1111 1111 1111
Trang 9A18 A0 :
D7 D0 :
MEMR MEMW XXXX
00001 95
: :
20020 20021 20022 20023
7FFFD 7FFFE 7FFFF
29 12 7D 13
19 25 36
: :
: :
: :
A18 A0 :
D7 D0 :
RD WR CS
Trang 10What if you want to read physical address A0023?
A18 A0 :
D7 D0 :
MEMR MEMW XXXX
00001 95
: :
20020 20021 20022 20023
7FFFD 7FFFE 7FFFF
29 12 7D 13
19 25 36
: :
: :
: :
A18 A0 :
D7 D0 :
RD WR CS A19
Trang 11AAAA 1198
10 00
AAAA 7654
AAAA 3210
Trang 12What if you want to read physical
AAAA 1198
10 00
AAAA 7654
AAAA 3210
20023 0 010 0000 0000 0010 0011
For memory it is the same as previous one.
Trang 13A18 A0 : D7 D0 :
MEMR MEMW
00001 95
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
29 12 7D 13
19 25 36
:
:
:
A18 A0 : D7 D0 :
RD WR CS
00001 D4
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
A3 92 45 33
2C 98 12
:
:
:
A18 A0 : D7 D0 : RD WR
Trang 14Interfacing two 512KB Memory to the 8088 Microprocessor
• Problem: đụng độ bus (bus conflict) Hai RAM
sẽ xuất dữ liệu cùng lúc khi VXL thực hiện
lệnh đọc bộ nhớ
arbiter), trong trường hợp này có thể gọi là
bộ giải mã địa chỉ (address decoder).
• Khi A19 = 0, bộ nhớ thấp hơn được cho phép,
bộ nhớ cao bị cấm Tương tự khi A19 = 1.
Trang 15A18 A0 :
D7 D0 :
MEMR MEMW
00001 95
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
29 12 7D 13
19 25 36
:
:
:
A18 A0 :
D7 D0 :
RD WR CS
00001 D4
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
A3 92 45 33
2C 98 12
:
:
:
A18 A0 :
D7 D0 :
RD WR
Trang 16What are the memory locations of two
consecutive 512KB (2 19 bytes) Memory?
A19 to
A0
(HEX)
AAAA 1111 9876
AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
00000 0000 0000 0000 0000 0000
7FFFF 0111 1111 1111 1111 1111
80000 1000 0000 0000 0000 0000
FFFFF 1111 1111 1111 1111 1111
Trang 17A18 A0 : D7 D0 :
MEMR MEMW
00001 95
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
29 12 7D 13
19 25 36
:
:
:
A18 A0 : D7 D0 :
RD WR CS
00001 D4
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
A3 92 45 33
2C 98 12
:
:
:
A18 A0 : D7 D0 :
RD WR
When the P outputs
an address between
80000 to FFFFF, this memory is
selected
When the P outputs
an address between
00000 to 7FFFF, this memory is
selected
Trang 18Interfacing two 512KB Memory to the 8088 Microprocessor
A18 A0 : D7 D0 :
MEMR MEMW
00001 95
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
29 12 7D 13
19 25 36
:
:
:
A18 A0 : D7 D0 :
RD WR CS
20021 20022 20023
7FFFD 7FFFE 7FFFF
92 45 33
2C 98 12
: :
A18 A0 : D7 D0 :
Trang 19A18 A0 : D7 D0 :
MEMR MEMW
00001 95
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
29 12 7D 13
19 25 36
:
:
:
A18 A0 : D7 D0 :
RD WR CS
00001 D4
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
A3 92 45 33
2C 98 12
:
:
:
A18 A0 : D7 D0 :
RD WR
A18 A0 : D7 D0 :
RD WR A19
Trang 20A18 A0 : D7 D0 :
MEMR MEMW
00001 95
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
29 12 7D 13
19 25 36
:
:
:
A18 A0 : D7 D0 :
RD WR CS
20020 20021 20022 20023
7FFFD 7FFFE 7FFFF
A3 92 45 33
2C 98 12
: :
A18 A0 : D7 D0 :
What if we remove the lower memory?
Trang 21A18 A0 : D7 D0 :
MEMR MEMW
00001 95
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
29 12 7D 13
19 25 36
:
:
:
A18 A0 : D7 D0 :
RD WR CS
When the P outputs
an address between
80000 to FFFFF, this memory is
selected
When the P outputs
an address between
00000 to 7FFFF, no memory chip is
selected
!
Trang 22Full and Partial Decoding
• Full Decoding
– When all of the “useful” address lines are connected the
memory/device to perform selection
• Partial Decoding
– When some of the “useful” address lines are connected
the memory/device to perform selection
– Using this type of decoding results into roll-over
addresses
Trang 23A18 A0 : D7 D0 :
MEMR MEMW
00001 95
: 20020
20021 20022 20023
7FFFD 7FFFE 7FFFF
29 12 7D 13
19 25 36
:
:
:
A18 A0 : D7 D0 :
RD WR CS
Trang 24AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
80000 1000 0000 0000 0000 0000
FFFFF 1111 1111 1111 1111 1111
A19 should be a logic “1” for the memory chip to be enabled
Trang 25A19 to
A0
(HEX)
AAAA 1111 9876
AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
00000 0000 0000 0000 0000 0000
7FFFF 0111 1111 1111 1111 1111
Therefore if the microprocessor outputs an address between 00000 to 7FFFF, whose A19 is a logic “0”, the memory chip will not be selected
Trang 26Partial Decoding
A18 A0 :
D7 D0 :
MEMR MEMW XXXX
00001 95
: :
20020 20021 20022 20023
7FFFD 7FFFE 7FFFF
29 12 7D 13
19 25 36
: :
: :
: :
A18 A0 :
D7 D0 :
RD WR CS A19
Trang 27A19 to
A0
(HEX)
AAAA 1111 9876
AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
Trang 28AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
00000 0000 0000 0000 0000 0000
7FFFF 0111 1111 1111 1111 1111
80000 1000 0000 0000 0000 0000
FFFFF 1111 1111 1111 1111 1111
Trang 29A19 to
A0
(HEX)
AAAA 1111 9876
AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
Trang 30Interfacing two 512K Memory Chips to
D7 D0 :
MEMR MEMW
A19
512KB
#2
A18 A0 :
D7 D0 :
RD WR CS
512KB
#1
A18 A0 :
D7 D0 :
Trang 31Minimum
Mode
A18 A0 :
D7 D0 :
MEMR MEMW
A19
512KB
A18 A0 :
D7 D0 :
RD WR CS
Trang 32Interfacing one 512K Memory Chips to
the 8088 Microprocessor (version 2)
8088
Minimum
Mode
A18 A0 :
D7 D0 :
MEMR MEMW
A19
512KB
A18 A0 :
D7 D0 :
RD WR CS
Trang 33Minimum
Mode
A18 A0 :
D7 D0 :
MEMR MEMW
A19
512KB
A18 A0 :
D7 D0 :
RD WR CS
Trang 34Interfacing four 256K Memory
Chips to
the 8088 Microprocessor
8088 Minimum Mode
A17 A0
:
D7 D0
:
MEMR MEMW
A18
256KB
#3
A17 A0
:
D7 D0
:
RD WR CS A19
256KB
#2
A17 A0
:
D7 D0
:
RD WR CS A17
:
256KB
#4
A17 A0
:
D7 D0
:
RD WR CS
Trang 358088 Minimum Mode
A17 A0
:
D7 D0
:
MEMR MEMW
A18
256KB
#3
A17 A0
:
D7 D0
:
RD WR CS A19
256KB
#2
A17 A0
:
D7 D0
:
RD WR CS
256KB
#1
A17 A0
:
D7 D0
Trang 36Memory chip# is mapped to:
A19 to
A0
(HEX)
AAAA 1111 9876
AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
-
-
Trang 378088 Minimum Mode
A17 A0
:
D7 D0
:
MEMR MEMW
A18
256KB
#3
A17 A0
:
D7 D0
:
RD WR CS A19
256KB
#2
A17 A0
:
D7 D0
:
RD WR CS
256KB
#1
A17 A0
:
D7 D0
Trang 38Interfacing four 256K Memory
Chips to
the 8088 Microprocessor
8088 Minimum Mode
A17 A0
:
D7 D0
:
MEMR MEMW
A18
256KB
#3
A17 A0
:
D7 D0
:
RD WR CS A19
256KB
#2
A17 A0
:
D7 D0
:
RD WR CS A17 A0
:
256KB
#4
A17 A0
:
D7 D0
:
RD WR CS
Trang 398088 Minimum Mode
A17 A0
:
D7 D0
:
MEMR MEMW
A18
256KB
#3
A17 A0
:
D7 D0
:
RD WR CS A19
256KB
#2
A17 A0
:
D7 D0
:
RD WR CS
256KB
#1
A17 A0
:
D7 D0
I1 I0 O3
O2
O1
Trang 40Interfacing several
8K Memory Chips to
the 8088 P
8088 Minimum Mode
A12 A0
:
D7 D0
:
MEMR MEMW
A13 A14
8KB
#2
A12 A0
:
D7 D0
:
RD WR CS
8KB
#1
A12 A0
:
D7 D0
:
RD WR CS A15
A16 A17 A18 A19
: :
Trang 418088 Minimum Mode
A12 A0
:
D7 D0
:
MEMR MEMW
A13 A14
8KB
#2
A12 A0
:
D7 D0
:
RD WR CS
8KB
#1
A12 A0
:
D7 D0
:
RD WR
D0 RD WR CS A15
A16 A17
: :
the 8088 P
Trang 428088 Minimum Mode
A12 A0
:
D7 D0
:
MEMR MEMW
A13 A14
8KB
#2
A12 A0
:
D7 D0
:
RD WR CS
8KB
A12 A0
:
D7 D0
:
RD WR CS A15
A16 A17 A18 A19
: :
Interfacing 128
8K Memory Chips to
the 8088 P
Trang 43A19 to
A0
(HEX)
AAAA 1111 9876
AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
-
-
Trang 448088 Minimum Mode
A12 A0
:
D7 D0
:
MEMR MEMW
A13 A14
8KB
#2
A12 A0
:
D7 D0
:
RD WR CS
8KB
A12 A0
:
D7 D0
:
RD WR CS A15
A16 A17 A18 A19
: :
Interfacing 128
8K Memory Chips to
the 8088 P
Trang 45Data Memory 1
Data Memory 2
Peripherals
24
16 Address
Address Data
Data
Data Bus
Address Bus
Trang 46• Ngõ vào của address decoder là các đường địa
chỉ cẩn cho giải mã.
• Ngõ ra là các đường Chip select (CS).
• Tại một thời điểm có nhiều nhất một đường CS
tích cực.
• Mức tích cực phụ thuộc vào tính chất của bộ nhớ
hoặc ngoại vi cần giải mã.
Trang 47• Xây dựng bản đồ bộ nhớ (Memory map)
• Thiết lập các hàm cho các đường Chip Select
• Xây dựng Address Decoder bằng các cổng
hoặc bằng các vi mạch LSI như 74LS138,
PAL, GAL, CPLD…
Trang 48• Thiết kế mạch giải mã địa chỉ cho 2 RAM, có
đường chip select tích cực thấp Độ rộng
address bus của CPU là 16 Địa chỉ bắt đầu là
0000H
• RAM1: 2K
• RAM2: 4K
Trang 49A15 to
A0
(HEX)
AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
CS
0000H
07FFH
0000 0000
0000 0111
0000 1111
0000 1111
/CS0 = 0
0800H
17FFH
0000 0001
1000 0111
0000 1111
0000
1111 /CS1 = 0
Trang 50A15 to
A0
(HEX)
AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
CS
0000H
07FFH
0000 0000
0000 0111
0000 1111
0000 1111
/CS0 = 0
0000H
07FFH
Trang 51(HEX) 5432 10 00
0800H
17FFH
0000 0001
1000 0111
0000 1111
0001 0001
1000 1111
0000 0111
0000 1111
0000 1111
0000 1111
0000 1111
/CS1 = 0
0800H
17FFH
0000 0001
1xxx 0xxx
xxxx xxxx
xxxx xxxx
/CS1 = 0
Trang 52A15 to
A0
(HEX)
AAAA 1111 5432
AAAA 1198
10 00
AAAA 7654
AAAA 3210
xxxx xxxx
xxxx xxxx
/CS1 = 0
Trang 5315 14 13 12 11 15 14 13 12 11
/ CS 1 ( A A A A A )( A A A A A )
Trang 56/CS 1 Y1.Y2
/ CS 0 Y 0 Y0
15 14 13 12 11 15 14 13 12 11