4 장 마이크로프로세서 외부 신호
Post on 30-Dec-2015
122 Views
Preview:
DESCRIPTION
TRANSCRIPT
마이크로프로세서의 외부신호에 대해 공부한다 .
이번 시간에는 ...
“ 마이크로프로세서 외부 신호”에 대해 알아보겠습니다 .
학습개요학습개요
학 습 목 표학 습 목 표
• 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)
top related