1 6장 장장장장장장장장 장장장 장 장장장장장 장장장장장
Jan 15, 2016
1
6 장
마이크로프로세서 메모리 및 입출력장치 인터페이스
2
이장에서는 마이크로프로세서 메모리 맵에 대해 공부하고 .
메모리와 입출력 장치를 설계하는 방법을 익힌다 .
이번 시간에는 ...
“Microprocessor 메모리 및 입출력장치 인터페이스” 에 대해 알아보겠습니다 .
학습개요학습개요
학 습 목 표학 습 목 표
• ROM, RAM 영역설계• Decoder 를 이용한 Memory 영역설계• Gate 를 이용한 Memory 영역설계• 8085 microprocessor
• Input Output Device interface
학 습 목 차학 습 목 차
3
ROM, RAM 영역설계
메모리 인터페이스 설계
(1) Memory 영역 분석 (2) Memory device 결정 (3) Memory Map 구성 (4) Address table 구성 (5) 회로설계
ex1) EPROM 2716 을 4000H - 47FFH 번지에 설계하여라
(1) Address 영역 4000-47FF
(2) EPROM 2716 address( A0 - A10)
(3) Memory map
1) 설계 순서
ROM 영역
FFFFH
47FFH
4000H
0000H
4
ROM, RAM 영역설계
메모리 인터페이스 설계
(4) Address table
(5) 회로설계U?
Z80-CPU
303132333435363738394012345
1415128791013
27
19202221
28
18
24
1617
26
2523
6
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7
M1
MREQIORQWRRD
REFSH
HALT
WAIT
INTNMI
RESET
BUSRQBUSAK
CLK
U?
2716
87654321
232219
182021
910111314151617
A0A1A2A3A4A5A6A7A8A9A10
CEOEVPP
O0O1O2O3O4O5O6O7
U1A
1 2
3 4
5 6
7404
9 8
U?A
7432
1
23
U?
74AHCT30
1234
56
1112
8
A0-A10
D0-D7
D0D1D2D3D4D5D6D7
A15
A14
A13
A12
A11
A10
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 영 역
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4000H ROM47FFH0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1
Chip select ROM address 고유 영역 (A0-A10)
5
ex2) EPROM 2716(2Kbyte) 을 이용하여 0000H - 0FFFH 번지에 설계하여라
(1) Address 영역 0000-0FFF(2) EPROM 2716 address( A0 - A10) 2Kbyte 메모리(3) Memory map
(4) Address table
FFFFH
0FFFH
0800H
07FFH
0000H
ROM 2 영역
ROM 1 영역
ROM, RAM 영역설계
메모리 인터페이스 설계
A15
A14
A13
A12
A11
A10
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 영 역
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H ROM_107FFH0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0800H ROM_20FFFH
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
Chip select ROM address 고유 영역 (A0-A10)
6
(5) 회로설계U?
Z80-CPU
303132333435363738394012345
1415128791013
27
19202221
28
18
24
1617
26
2523
6
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7
M1
MREQIORQWRRD
REFSH
HALT
WAIT
INTNMI
RESET
BUSRQBUSAK
CLK
U?
2716
87654321
232219
182021
910111314151617
A0A1A2A3A4A5A6A7A8A9A10
CEOEVPP
O0O1O2O3O4O5O6O7
U1A
1 2
U?
2716
87654321
232219
182021
910111314151617
A0A1A2A3A4A5A6A7A8A9A10
CEOEVPP
O0O1O2O3O4O5O6O7
U?
74AHCT30
1234
56
1112
8U?A
7432
1
23
U?A
7432
1
23
U?A
7432
1
23
D1
D5
A0-A10
D7
D0
D0-D7
D4
D2
D6
D3
ROM, RAM 영역설계
메모리 인터페이스 설계
7
ex3) SRAM MC6116 을 2000H – 0FFFH 번지에 설계하여라
(1) Address 영역 2000H – 0FFFH(2) SRAM MC6116 address( A0 – A10)(3) Memory map
ROM, RAM 영역설계
메모리 인터페이스 설계
FFFFH
2FFFH
2800H
27FFH
2000H
0000H
RAM 2 영역
RAM 1 영역
(4) Address table
A15
A14
A13
A12
A11
A10
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 영 역
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000H RAM_127FFH0 0 1 0 0 1 1 1 1 1 1 1 1 1 1
0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 2800H RAM_22FFFH
0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1
Chip select RAM address 고유 영역 (A0-A10)
8
(5) 회로설계
RAM1(6116)
Address bus(A0 – A10 )
/RD/WR
A0 – A10
D0 - D7
/OE
CE’
0
0
1
0
0
A0 – A10
D0 - D7
CE’
2000H 2800H
Data bus (D0- D7)
A15
A14
A13
A12
A11
D0 - D7
/MREQ/IORQ
A0-A10
Z80 CPU
/WE/OE/WE RAM1
(6116)
ROM, RAM 영역설계
메모리 인터페이스 설계
9
ex4) 아래 Memory map 에 의해 ROM 과 RAM 을 설계하시오
(4) Address table
FFFFH
27FFH
2000H
07FFH
0000H
RAM
ROM
ROM, RAM 영역설계
메모리 인터페이스 설계
A15
A14
A13
A12
A11
A10
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 영 역
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H ROM07FFH0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000H RAM27FFH0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1
Chip select Memory address 고유 영역 (A0-A10)
(1) Address 영역 ROM : 0000H – 07FFH RAM : 2000H- 27FFH(2) ROM 2716 SRAM MC6116 address( A0 – A10)(3) Memory map
10
(5) 회로설계
0
0
0
0
0
0000H 2000H
A15A14A13A12A11
D0 - D7
0
0
1
0
0
A15
A14
A13
A12
A11
ROM(2716)
Address bus(A0 – A10 )
/RD/WR
A0 – A10
D0 - D7
/OE
CE’
A0 – A10
D0 - D7
CE’
Data bus (D0- D7)D0 - D7
/MREQ/IORQ
A0-A10
Z80 CPU/OE/WE RAM
(6116)
ROM, RAM 영역설계
메모리 인터페이스 설계
11
74138 3*8 Decoder
A D0
B D1
C D2
D3
D4
G1 D5
G2 D6
G3 D7
U?
74LS138
123
645
15141312111097
ABC
G1G2AG2B
Y0Y1Y2Y3Y4Y5Y6Y7
Decoder 를 이용한 Memory 영역설계 Decoder
A B CD0
D1
D2
D3
D4
D5
D6
D7
0 0 0 0 1 1 1 1 1 1 1
0 0 1 1 0 1 1 1 1 1 1
0 1 0 1 1 0 1 1 1 1 1
0 1 1 1 1 1 0 1 1 1 1
1 0 0 1 1 1 1 0 1 1 1
1 0 1 1 1 1 1 1 0 1 1
1 1 0 1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 1 1 0
74138 3*8 Decoder truth table
G1=1,G2=0,G3=0 일때 74138이Active 가 된다
12
+5V
A13A12A11
A15A14
¿µ¿ª1¿µ¿ª2¿µ¿ª3¿µ¿ª4¿µ¿ª5¿µ¿ª6¿µ¿ª7¿µ¿ª8
U?
74LS138
123
645
15141312111097
ABC
G1G2AG2B
Y0Y1Y2Y3Y4Y5Y6Y7
0000 - 07FF0800 - 0FFF1000 - 17FF1800 - 1FFF2000 - 27FF2800 - 2FFF3000 - 37FF3800 - 3FFF
Map 영역 분할
Decoder 를 이용한 Memory 영역설계 Decoder 를 이용한 Map 설정
Address table
A15
A14
A13
A12
A11
A10
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 영 역
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H 07FFH0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0800H0FFFH0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
74138 Decoder 입력Chip En
Memory address 고유 영역 (A0-A10)
13
ex) 아래 Memory map 에 의해 ROM 을 설계하시오
Decoder 를 이용한 Memory 영역설계 Decoder 를 이용한 Map 설정 FFFFH
17FFH
1000H
0FFFH
0800H
07FFH
0000H
ROM_3
ROM_2
ROM_1
Address table
A15
A14
A13
A12
A11
A10
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 영 역
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H 07FFH0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0800H0FFFH0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1000H17FFH0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1
74138 Decoder 입력Chip En
Memory address 고유 영역 (A0-A10)
(1) Address 영역 ROM : 0000H – 07FFH ROM : 0800H – 0FFFH ROM : 1000H – 17FFH(2) ROM 2716 address( A0 – A10)(3) Memory map
14
+5V
U?
Z80-CPU
303132333435363738394012345
1415128791013
27
19202221
28
18
24
1617
26
2523
6
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7
M1
MREQIORQWRRD
REFSH
HALT
WAIT
INTNMI
RESET
BUSRQBUSAK
CLK
U?
2716
87654321
232219
182021
910111314151617
A0A1A2A3A4A5A6A7A8A9A10
CEOEVPP
O0O1O2O3O4O5O6O7
U?
2716
87654321
232219
182021
910111314151617
A0A1A2A3A4A5A6A7A8A9A10
CEOEVPP
O0O1O2O3O4O5O6O7
U?
2716
87654321
232219
182021
910111314151617
A0A1A2A3A4A5A6A7A8A9A10
CEOEVPP
O0O1O2O3O4O5O6O7
U?
74LS138
123
645
15141312111097
ABC
G1G2AG2B
Y0Y1Y2Y3Y4Y5Y6Y7
U?A
7432
1
23
U?A
7432
1
23
U?A
7432
1
23
A0-A10
Decoder 를 이용한 Memory 영역설계 Decoder 를 이용한 Map 설정
(5) 회로설계
FFFFH
8000H
7FFFH
0000H
15
Decoder 를 이용한 Memory 영역설계 Map 설정
ex) 아래 Memory map 에 의해 ROM 을 설계하시오
RAM
ROM
(1) Address 영역 ROM : 0000H – 7FFFH RAM : 8000H – FFFFH(2) ROM 27256 address( A0 – A14) :32Kbyte RAM 62256 address( A0 – A14) :32Kbyte(3) Memory map
(4) Address table
A15
A14
A13
A12
A11
A10
A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 영 역
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000H ROM7FFFH0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 8000H RAMFFFFH
1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Chip En
Memory address 고유 영역 (A0-A14)
16
U?
Z80-CPU
303132333435363738394012345
1415128791013
27
19202221
28
18
24
1617
26
2523
6
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7
M1
MREQIORQWRRD
REFSH
HALT
WAIT
INTNMI
RESET
BUSRQBUSAK
CLK
U?
27256
109876543
25242123
22627
2022
1
1112131516171819
A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14
CEOEVPP
O0O1O2O3O4O5O6O7
U?
62256
109876543
25242123
226
1
202214
111213151617181927
28
A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14
CEOEVss
I/O0I/O1I/O2I/O3I/O4I/O5I/O6I/O7/WE
Vdd
U?A
7432
1
23
U?A
7404
1 2U?A
7432
1
23
(5) 회로설계
Gate 를 이용한 Memory 영역설계
Map 설정
17
INTEL80858bit
microprocessor
address busA8-A15
X1 X2
RESET OUT SOD SID TRAP RST7.5 RST6.5 RST5.5 INTR /INTA HOLD HLDA RESET IN READY
IO/M S1 /RD /WR ALE
U?
8085
36
1
2
56
987
10
11
29
33
39
35
12131415161718192122232425262728
30313234337438
RST-IN
X1
X2
SIDTRAP
RST 5.5RST 6.5RST 7.5
INTR
INTA
S0
S1
HOLD
READY
AD0AD1AD2AD3AD4AD5AD6AD7
A8A9
A10A11A12A13A14A15
ALEWRRD
IO/MRST-OT
CLKOSOD
HLDA
그림 2-12. 8085 CPU
Address data busAD0 -AD7
8085 microprocessor
8085 microprocessor 외부 핀
AD0-AD7
A8-A15
18
8085 microprocessor
Demultiplexed address interface
Intel 계열 CPU 는 하위 주소버스는 데이터 버스와 동일한 버스를 사용하도록 설계되어 있다 . 따라서 외부에서 주소와 데이터버스를 분리 시켜주는 회로가 필요하다 . 이 방법을 demultiplexed address interface가고 한다 .
CPU 에서 먼저 address 신호를 출력한 다음 ALE( Address Latch Enable) 에 의하여 address 를 래치 한다 .이때 address bus 는 A0-A7 을 구성하고 A8-A15 을 합성하면 A0-A15 까 된다 .데이터 신호는 address 신호다음에 ALE 가 “ Low” 일 때에 출력된다 .
Address busINTEL80858bit
microprocessor
AD0-AD7
A8-A15
Latch
ALE
A0-A7
A8-A15
A0-A15
D0-D7 Data bus
19
8085 microprocessor
Demultiplexed address interface
address data address dataAD0-AD7
ALE
D0-D7
Address A0-A7A0-A7 Address A0-A7
Address A8-A15 Address A8-A15A8-A15A0-A15{
data data
① AD0-AD7( 하위 8 비트 버스 ) 에 주소 신호 (A0-A7) 를 출력한다② ALE 신호가 “ high” 로 되면서 래치회로에서 A0-A7 을 래치한다 .③ ALE 신호를 “ low” 로 전환하고 D0-D7 를 출력한다 .
20
U?
8085
36
1
2
56
987
10
11
29
33
39
35
12131415161718192122232425262728
30313234337438
RST-IN
X1
X2
SIDTRAP
RST 5.5RST 6.5RST 7.5
INTR
INTA
S0
S1
HOLD
READY
AD0AD1AD2AD3AD4AD5AD6AD7
A8A9
A10A11A12A13A14A15
ALEWRRD
IO/MRST-OT
CLKOSOD
HLDA
U?
74LS374
3478
13141718
111
256912151619
D0D1D2D3D4D5D6D7
OCCLK
Q0Q1Q2Q3Q4Q5Q6Q7
A0-A7
A8-A15
D0-D7
Demultiplexed address bus 방식 회로
8085 microprocessor
Demultiplexed address interface
21
Micro-computer system
CPUInterface
회로I/O
device
Input Output Device interface
Input Output Device 종류
Bus
Buffer, 기타Interface 회로
Bus
• Input Device : Key Board, Mouse,Tablet, AD converter 등
• Output Device : CRT display, 7segment, LCD, Printer, Plotter,
DA converter 등
• I/O device : Memory, Magnetic tape, HDD,FDD
22
Input Output Device interface
Input Output Device 의 Address interface 방식
Input Output 의 주소를 구분하는 방식
(1)Memory Mapped I/O 방식 (2) I/O Mapped I/O(Isolated Mapped I/O 방식
Main memory
I/O address
0000
FFFF
Main memory
00
FF
Main memory 내부에 I/O address 영역을 두는 방식 회로가 간단하다 Main memory 영역 감소
Main memory 영역과 I/O address 영역을 분리 시켜서 설계된 방식회로가 복잡하다main memory 영역을 모두 사용 가능
0000
FFFF
I/O address
I/O memory
23
Input Output Device interface
Parallel I/O Interface device
CPU PORTI/O
deviceData
Parallel I/O device
반드시 Port 를 통하여 Data 전송
각 Port 들은 8bit 로 구성 , Handshake 신호들을 포함하고 있다
Chip select
R/W’Interrupt 요구Interrupt 확인
Port A Data Register
Port B Data Register
Port C Data Register
Control Register
00
01
10
11
Bus Bus
BusPort A
Port B
Port C
Port address A0 A1
24
Input Output Device interface
Parallel I/O Interface 연결
PIO : Zilog Z8420, Intel 8255, Motorola MC6820
ex) 8255 PIO 를 (30,31,32,33)(34,35,36,37) 번지에 연결하시오
PIO address Map
PIO 고유 addressA0-A1
Decoder입력
Decoderselect
FFH
37H
34H
33H
30H
00H
PIO_2
PIO_1
(4) Address table
A7 A6 A5 A4 A3 A2 A1 A0 영 역
0 0 1 1 0 0 0 0 30H PIO_133H0 0 1 1 0 0 1 1
0 0 1 1 0 1 0 0 34H PIO_237H0 0 1 1 0 1 1 1
25
Input Output Device interface
U?
74LS138
123
645
15141312111097
ABC
G1G2AG2B
Y0Y1Y2Y3Y4Y5Y6Y7
A4A3
¿µ¿ª8
¿µ¿ª2A2
¿µ¿ª7¿µ¿ª6
¿µ¿ª3
¿µ¿ª5¿µ¿ª4
¿µ¿ª1
A7A6A5
30 - 332C- 2F
24 - 27
38 - 3B
20 - 23
3C - 3F
34 - 37
28 - 2B
U?
8255
3433323130292827
536
98
356
432140393837
1819202122232425
1415161713121110
D0D1D2D3D4D5D6D7
RDWRA0A1RESETCS
PA0PA1PA2PA3PA4PA5PA6PA7
PB0PB1PB2PB3PB4PB5PB6PB7
PC0PC1PC2PC3PC4PC5PC6PC7
U?
8255
3433323130292827
536
98
356
432140393837
1819202122232425
1415161713121110
D0D1D2D3D4D5D6D7
RDWRA0A1RESETCS
PA0PA1PA2PA3PA4PA5PA6PA7
PB0PB1PB2PB3PB4PB5PB6PB7
PC0PC1PC2PC3PC4PC5PC6PC7
U?
Z80-CPU
303132333435363738394012345
1415128791013
27
19202221
28
18
24
1617
26
2523
6
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7
M1
MREQIORQWRRD
REFSH
HALT
WAIT
INTNMI
RESET
BUSRQBUSAK
CLK
U?
74LS138
123
645
15141312111097
ABC
G1G2AG2B
Y0Y1Y2Y3Y4Y5Y6Y7
U?A
7432
1
23
U?A
7432
1
23
30-33 34-37