4 장 마이크로프로세서 외부 신호
DESCRIPTION
4 장 마이크로프로세서 외부 신호. 학습개요. 이번 시간에는 ... “ 마이크로프로세서 외부 신호 ” 에 대해 알아보겠습니다. 학 습 목 표. 마이크로프로세서의 외부신호에 대해 공부한다. 학 습 목 차. CPU 외부 신호 주소 버스 (Address Bus) 데이터 버스 (Data Bus) 시스템 제어 신호 (System Control) CPU Control signal System BUS Control. CPU 외부 신호. 1) CPU 외부신호. CPU 외부 신호. - PowerPoint PPT PresentationTRANSCRIPT
마이크로프로세서의 외부신호에 대해 공부한다 .
이번 시간에는 ...
“ 마이크로프로세서 외부 신호”에 대해 알아보겠습니다 .
학습개요학습개요
학 습 목 표학 습 목 표
• CPU 외부 신호• 주소 버스 (Address Bus)• 데이터 버스 (Data Bus) • 시스템 제어 신호 (System Control) • CPU Control signal • System BUS Control
학 습 목 차학 습 목 차
Slide 2 (of 22)
CPU 외부 신호
1) CPU 외부신호
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
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7
/M1/MREQ/IORQ/RD/WR/RFSH
/HALT/WAIT/INT/NMI/RESET
/BUSREQ/BUSACK
CLK+5VGND
Address BusA0 - A15
Data BusA0 - A15
Control Bus
(1) System control
(2) CPU control
(3) System Bus control
Slide 3 (of 22)
(1) 8 비트 마이크로프로세서의 Address Bus 는 16 비트 (A0 - A15) 로서 메모리를 0000H
번지부터 FFFFH 번지까지 총 65536( 216 = 65536) 번지를 지정할 수 있다 .
(2) Address Bus 는 Tri – state 버스이다 .
즉 버스라인들의 상태는 0 ( Low State), 1 ( High State), High Impedance (DMA 동작 시 Address Bus 는 고 임피던스가 된다 )
(3) Address Bus 는 단방향성 버스 (Unidirectional Bus) 이다 . 즉 Address Bus 는 CPU 에서 외부로만 전송된다 .
(1) 8 비트 마이크로프로세서의 Data Bus 는 8 비트 (D0 – D7) 이다 .
(2) DAta Bus 는 Tri – state 버스이다 .
즉 버스 라인들의 상태는 0 ( Low State), 1 ( High State), High Impedance (DMA 동작 시 Data Bus 는 고 임피던스가 된다 )
(3) Data Bus 는 양방향성 버스 (Bi-directional Bus) 이다 . 즉 Data Bus 는 CPU 와 메모리 및 주변 장치들과 양 방향으로 주고 받기 위한 버스이다 .
CPU 외부 신호
2) 주소 버스 (Address Bus)
3) 데이터 버스 (Data Bus)
Slide 4 (of 22)
CPU 외부 신호
4) 시스템 제어 신호 (System Control)
/M1 사이클은 CPU 가 메모리에 저장되어 있는 명령어를 인출 (Fetch) 해 올 때 Low 로 된다 . Machine Cycle One = Instruction Fetch = OP Code fetch CPU 가 명령어를 인출하는 과정은 다음과 같다
Control Bus 는 System Control, CUP Control, System Bus Control 로 구분되며 여기서 System
Control 신호는 CPU 와 메모리 , 주변 장치들의 입출력을 제어하는 /M1, /MREQ, /IORQ,
/RD, /WR, /RFSH 신호들이 있다 .
t0 : PC → MAR : 첫번째 클럭에서 PC 내용을 MAR(Memory Addrerss
Register) 로 전송한다
t1 : [M] → MBR, PC = PC+1 : 지정된 메모리 내용을 MBR(Memory Buffer Register)로
전송하고 . PC 를 자동으로 “1” 증가한다
t2 : MBR → IR : MBR 로 읽혀 나온 명령어를 명령어 레지스터 (IR) 로
전송한다 .
(1) /M1( Machine Cycle One)
/M1cycle
Slide 5 (of 22)
CPU 외부 신호
4) 시스템 제어 신호 (System Control)
t0 t1 t3 t4 t5 t6
PC → MAR [M] → MBR,
PC = PC+1MBR → IR
M1’ 신호가 Low 일 때 읽혀 오는 Data 는 OP-CODE 이다
Slide 6 (of 22)
CPU 외부 신호
4) 시스템 제어 신호 (System Control)
(2) /MREQ(Memory Request Signal)
/MREQ
① /MREQ 신호는 메모리 요구신호로서 CPU 는 메모리와 데이터를 주고 받기 위한 제어 신호이다 .
② /MREQ 신호가 Low 일 때 active
③ Low 일 때 메모리에 read 나 write 가 가능해 진다 .
(3) /RD(ReaD)
/RD
① /RD(Memory Read) 신호는 읽기 신호로서 메모리나 입출력 장치로부터 MPU 로 데이터를
읽어오기 위한 제어 신호이다 .
② 이 신호는 Low 일 때에 활성화 된다 .
Slide 7 (of 22)
CPU 외부 신호
4) 시스템 제어 신호 (System Control)
CPU Memory
/MERQ
/RD
A0-A15
/RD
/CE
D0-D7 D0-D7
메모리 영역 선택 /CE
①②
③
④
A0-AnAddress bus
Data bus
메모리 인터페이스
▣ 메모리 읽기 사이클 (memory read cycle)
메모리 읽기 사이클은 메모리에 저장되어 있는 데이터를 CPU 내부로 읽어오는 사이클을 말한다 .
아래 그림은 CPU 와 메모리 인터페이스 회로이다 . 여기서 메모리 내용을 읽어오기 위하여 Address(A0-
A15), /MREQ, /RD, Data(D0-D7) 신호들이 필요하다 . 동작 순서는 다음과 같다 .
Slide 8 (of 22)
t0 t1 t2 t3
/CLK
Address
/MREQ
/RD
Data Data In
Memory Address ①
②
③
④
① 어드레스 버스에 어드레스 데이터를 출력한다 .
② /MREQ 신호를 활성화 하여 메모리와 전송을 가능하게 한다 .
③ /RD 신호를 활성화하여 선택된 메모리에 읽기 제어 신호를 보낸다 .
④ 메모리에서 읽혀온 데이터를 MPU 로 읽어 들인다 .
CPU 외부 신호
4) 시스템 제어 신호 (System Control)
▣ 메모리 읽기 사이클 (memory read cycle)
메모리 읽기 사이클은 동작 순서는 다음과 같다 .
Slide 9 (of 22)
/WR(WRite) 신호는 쓰기 신호로서 MPU 에서 메모리나 입출력 장치로 데이터를 쓰기 위한 제어 신호이다 . 이 신호는 Low 일 때에 활성화 된다 .
CPU Memory
/MERQ
/WR
A0-A15
/WR
/CE
D0-D7 D0-D7
메모리 영역 선택 /CE
①②
③
④
A0-AnAddress bus
Data bus
CPU 외부 신호
4) 시스템 제어 신호 (System Control)
(4) /WR (Memory Write 신호 )
/WR
Slide 10 (of 22)
CPU 외부 신호
4) 시스템 제어 신호 (System Control)
▣ 메모리 쓰기 사이클 (memory write cycle)
t0 t1 t2 t3
/CLK
Address
/MREQ
/WR
Data Data Out
Memory Address ①
②
③
④
메모리로 데이터 저장
① 어드레스 버스에 어드레스 데이터를 출력한다 .
② /MREQ 신호를 활성화 하여 메모리와 전송을 가능하게 한다 .
③ MPU 에서 데이터를 데이터 버스에 실는다 .
④ /WR 신호를 활성화하여 선택된 메모리에 쓰기 제어 신호를 보내 데이터를 메모리 내부로 저장한다 .
메모리 쓰기 사이클은 동작 순서는 다음과 같다 .
Slide 11 (of 22)
① I/O 요구신호로서 CPU 와 입출력장치 간의 데이터 전송을 위한 신호이다 .② Low 일 때 active③ Low 일 때 CPU 는 입출력장치의 데이터를 read 나 write 한다 .
CPU I/O device
/IORQ
/RD
A0-A15
/RD
/CE
D0-D7 D0-D7
입출력 장치 영역 선택 /CE
①②
③
④
A0-AnAddress bus
Data bus
CPU 외부 신호
4) 시스템 제어 신호 (System Control)
/IORQ
(5) /IORQ (I/O Request Signal)
Slide 12 (of 22)
t0 t1 t2 t3
/CLK
Address
/IORQ
/RD
Data Data In
입출력 장치 Address ①
②
③
④
① 어드레스 버스에 어드레스 데이터를 출력한다 .
② /IORQ 신호를 활성화 하여 입출력장치와 전송 가능상태로 한다 .
③ /RD 신호를 활성화하여 선택된 입출력 장치에 읽기 제어 신호를 보낸다 .
④ 입출력 장치로부터 읽어온 데이터를 CPU 로 읽어 들인다 .
CPU 외부 신호
▣ 입출력 읽기 사이클 (I/O read cycle)
4) 시스템 제어 신호 (System Control)
Slide 13 (of 22)
/RD /WR /MREQ /IORQ Control
0 1 1 0 /IOR
1 0 1 0 /IOW
0 1 0 0 /MEMR
1 0 0 0 /MEMW
/MEMR
/MEMW
/IOW
/IOR
U?
Z80
303132333435363738394012345
1415128791013
27
19202221
28
18
24
1617
26
2523
6
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7
M1
MREQIORQWRRD
REFSH
HALT
WAIT
INTNMI
RESET
BUSRQBUSAK
CLK
1
23
1
23
1
23
1
23
CPU 외부 신호
(6) 메모리 및 입출력 장치 Control Bus
▣ Z80 CPU control bus
4) 시스템 제어 신호 (System Control)
Slide 14 (of 22)
/RD /WR IO/M Control
0 1 1 /IOR
1 0 1 /IOW
0 1 0 /MEMR
1 0 0 /MEMW
/IOR
/IOW
/MEMW
/MEMR
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
1 2
1 2
1 2 1 2
2
31
2
31
2
31
2
31
4) 시스템 제어 신호 (System Control)
(6) 메모리 및 입출력 장치 Control Bus
▣ 8085 Control Bus
Slide 15 (of 22)
CPU 외부 신호
5) CPU Control signal
(1) power On or RESET
program counter Reset (0000H)
Instruction register Reset (00H)
INIT flip-flop Reset (00H)
Flag register Cleared (00H)
Machine cycle flip-flop Reset
모든 상태가 초기화 된다 .
Z80 CPU Power on RESET 또는RESET Key 에 의한 RESET Signal 이 입력되면
VCC
D2
4148
U13
Z80
303132333435363738394012345
1415128791013
27
19202221
28
18
24
1617
26
2523
6
A0A1A2A3A4A5A6A7A8A9
A10A11A12A13A14A15
D0D1D2D3D4D5D6D7
M1
MREQIORQWRRD
REFSH
HALT
WAIT
INTNMI
RESET
BUSRQBUSAK
CLK
VCC
R44.7K
RESET C11uF
/RESET
Slide 16 (of 22)
CPU 외부 신호
5) CPU Control signal
(2) CPU Halt 신호
① CPU 의 모든 동작이 정지상태에 들어간다 . 이때 refresh 신호만 정상 동작한다 .
② /HALT 상태를 벗어나려면 /NMI 나 /INT 신호를 걸어서 해제 시켜 주어야 한다 .
③ /HALT 명령어에 의해 /HALT’ 신호가 LOW 로 떨어진다 .
t0 t1 t2 t3 t0 t1 t2 t3
˜˜
˜
CLK
/M1
/HALTPower down
t0 t1 t2 t3 t0 t1
˜˜
CLK
/M1
/HALT
/INT
˜ Power down release
t2 t3
/HALT
/HALT 신호에 의한 파워다운
/INT 나 리셋에 의한 파워다운 해제
Slide 17 (of 22)
CPU 외부 신호
5) CPU Control signal
(3) CPU Wait 신호
① 고속 CPU 가 저속 주변장치와 서로간의 Data 처리 시간을 Link 시키기 위한 신호이다 .
② Wait 신호가 LOW 이면 CPU 는 No peration 상태로 된다 .
MBR
MemoryCPU
PC
MA
R
① t0 : 2uSAddress bus
② t1 : 4uS
IR
Data
③ t2 : 2uS
Data bus
/ WATE
Wate 신호
t0 : PC→MAR : 2uS 소요 t1 : [M] → MBR, PC←PC+1 : 메모리 [M] 내부의 데이터를 MBR 까지 읽어내 오는데 6uS 가 소요된다 . 따라서 /WATE 신호를 삽입한다 . t2 : MBR → IR : 2uS 소요
/WAIT
Slide 18 (of 22)
CPU 외부 신호
5) CPU Control signal
/CLKt0 t1 tw tw t2 t3
Address2uS
/M1
/MREQ
/RD
/WATE
Data Data In6uS
①PC→ MAR
2uS
②[M]→ MBR ③MBR→ I R2uS
WATE WATE WATE
▣ /WATE 신호 타이밍도
Slide 19 (of 22)
CPU 외부 신호
5) CPU Control signal
(5) NMI’(Non mask able Interrupt Request Signal)
(4) Interrupt Request Signal (/INT)
/INT Interrupt( 가로체기 ) 신호는 다음 9 장에서 설명한다
/NMI /NMI( 가로체기 ) 신호는 다음 9 장에서 설명한다
Slide 20 (of 22)
CPU 외부 신호
6) System BUS Control
(1) CPU BUS Request Signal
DMA 와 주변 장치간의 고속 데이터 전송을 위한 방법으로 CPU 를 거치지 않고직접 전송하는 기능이다 . 이때 CPU 의 버스 선들은 High impedance 가 된다 .
Acc
Memory
I/O device
Address bus
Data bus
CPU
AccMemory
I/O device
Address bus
Data bus
CPU
DMA
/BUSREQ
/BUSACK
/BUSREQ/BUSACK
High inpedance
/BUSREQ
▣ DMA 가 없을 경우 데이터 전송 ▣ DMA 를 사용하였을 경우
Slide 21 (of 22)
CPU 외부 신호
6) System BUS Control
/CLK
/BUSREQ
/BUSACK
Address
Data
/MREQ,/IORQ/RD, /WR
Last Dtate
High impedance
Floating
t0txtxtxtx
① 대량 단순 데이터전송이 필요하면 CPU 에서 DAM 로 데이터 전송 명령을 내린다 . 이때 DAM 는 데이터 전송을 위한 초기치 값을 세트한다 . ② DMA 에서 CPU 로 /BUSREQ 신호를 보낸다 . ③ CPU 는 어드레스 버스 , 데이터 버스 , 제어신호 들을 고 임피던스로 전환하여 차단하고 /BUSACK 신호를 DMA 로 전송 한다 . ④ DMA 는 메모리와 주변장지들 간의 고속 데이터 전송을 실행한다 . ⑤ 전송이 종료되면 DAM 에서 /BUSREQ 신호를 “High 로 전환한다 . ⑥ CPU 는 /BUSACK 신호를 "High" 로 전환하고 어드레스 버스 , 데이터 버스 , 제어 신호들을 정상화 한다 .
Slide 22 (of 22)