4장 마이크로프로세서 외부 신호 Slide 1 (of 22)
“마이크로프로세서 외부 신호”에 대해 알아보겠습니다. 학습개요 이번 시간에는... “마이크로프로세서 외부 신호”에 대해 알아보겠습니다. 학 습 목 표 마이크로프로세서의 외부신호에 대해 공부한다. 학 습 목 차 CPU 외부 신호 주소 버스(Address Bus) 데이터 버스(Data Bus) 시스템 제어 신호(System Control) CPU Control signal System BUS Control Slide 2 (of 22)
CPU 외부 신호 1) CPU 외부신호 Slide 3 (of 22)
CPU 외부 신호 2) 주소 버스(Address Bus) (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에서 외부로만 전송된다. 3) 데이터 버스(Data Bus) (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와 메모리 및 주변 장치들과 양 방향으로 주고 받기 위한 버스이다. Slide 4 (of 22)
CPU 외부 신호 4) 시스템 제어 신호(System Control) Control Bus는 System Control, CUP Control, System Bus Control로 구분되며 여기서 System Control 신호는 CPU와 메모리, 주변 장치들의 입출력을 제어하는 /M1, /MREQ, /IORQ, /RD, /WR, /RFSH 신호들이 있다. (1) /M1( Machine Cycle One) /M1cycle /M1 사이클은 CPU가 메모리에 저장되어 있는 명령어를 인출(Fetch)해 올 때 Low로 된다. Machine Cycle One = Instruction Fetch = OP Code fetch CPU가 명령어를 인출하는 과정은 다음과 같다 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)로 전송한다. Slide 5 (of 22)
CPU 외부 신호 4) 시스템 제어 신호(System Control) t0 t1 t3 t4 t5 t6 PC → MAR [M] → MBR, PC = PC+1 MBR → 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) ▣ 메모리 읽기 사이클(memory read cycle) 아래 그림은 CPU와 메모리 인터페이스 회로이다. 여기서 메모리 내용을 읽어오기 위하여 Address(A0- A15), /MREQ, /RD, Data(D0-D7) 신호들이 필요하다. 동작 순서는 다음과 같다. 메모리 인터페이스 Slide 8 (of 22)
CPU 외부 신호 4) 시스템 제어 신호(System Control) ▣ 메모리 읽기 사이클(memory read cycle) 메모리 읽기 사이클은 동작 순서는 다음과 같다. ① 어드레스 버스에 어드레스 데이터를 출력한다. ② /MREQ 신호를 활성화 하여 메모리와 전송을 가능하게 한다. ③ /RD 신호를 활성화하여 선택된 메모리에 읽기 제어 신호를 보낸다. ④ 메모리에서 읽혀온 데이터를 MPU로 읽어 들인다. Slide 9 (of 22)
CPU 외부 신호 4) 시스템 제어 신호(System Control) (4) /WR (Memory Write 신호) /WR /WR(WRite)신호는 쓰기 신호로서 MPU에서 메모리나 입출력 장치로 데이터를 쓰기 위한 제어 신호이다. 이 신호는 Low 일 때에 활성화 된다. Slide 10 (of 22)
CPU 외부 신호 4) 시스템 제어 신호(System Control) ▣ 메모리 쓰기 사이클(memory write cycle) 메모리 쓰기 사이클은 동작 순서는 다음과 같다. ① 어드레스 버스에 어드레스 데이터를 출력한다. ② /MREQ 신호를 활성화 하여 메모리와 전송을 가능하게 한다. ③ MPU에서 데이터를 데이터 버스에 실는다. ④ /WR 신호를 활성화하여 선택된 메모리에 쓰기 제어 신호를 보내 데이터를 메모리 내부로 저장한다. Slide 11 (of 22)
CPU 외부 신호 4) 시스템 제어 신호(System Control) (5) /IORQ (I/O Request Signal) ① I/O 요구신호로서 CPU와 입출력장치 간의 데이터 전송을 위한 신호이다. ② Low일 때 active ③ Low 일 때 CPU는 입출력장치의 데이터를 read나 write 한다. Slide 12 (of 22)
CPU 외부 신호 4) 시스템 제어 신호(System Control) ▣ 입출력 읽기 사이클(I/O read cycle) ① 어드레스 버스에 어드레스 데이터를 출력한다. ② /IORQ 신호를 활성화 하여 입출력장치와 전송 가능상태로 한다. ③ /RD 신호를 활성화하여 선택된 입출력 장치에 읽기 제어 신호를 보낸다. ④ 입출력 장치로부터 읽어온 데이터를 CPU로 읽어 들인다. Slide 13 (of 22)
CPU 외부 신호 4) 시스템 제어 신호(System Control) (6) 메모리 및 입출력 장치 Control Bus /RD /WR /MREQ /IORQ Control 1 /IOR /IOW /MEMR /MEMW ▣ Z80 CPU control bus Slide 14 (of 22)
4) 시스템 제어 신호(System Control) (6) 메모리 및 입출력 장치 Control Bus ▣ 8085 Control Bus /RD /WR IO/M Control 1 /IOR /IOW /MEMR /MEMW Slide 15 (of 22)
CPU 외부 신호 5) CPU Control signal (1) power On or RESET /RESET Z80 CPU Power on RESET 또는 RESET Key에 의한 RESET Signal이 입력되면 program counter Reset (0000H) Instruction register Reset (00H) INIT flip-flop Reset (00H) Flag register Cleared (00H) Machine cycle flip-flop Reset 모든 상태가 초기화 된다. Slide 16 (of 22)
CPU 외부 신호 5) CPU Control signal (2) CPU Halt 신호 /HALT ① CPU의 모든 동작이 정지상태에 들어간다. 이때 refresh 신호만 정상 동작한다. ② /HALT상태를 벗어나려면 /NMI나 /INT신호를 걸어서 해제 시켜 주어야 한다. ③ /HALT명령어에 의해 /HALT’신호가 LOW로 떨어진다. /HALT 신호에 의한 파워다운 /INT나 리셋에 의한 파워다운 해제 Slide 17 (of 22)
CPU 외부 신호 5) CPU Control signal (3) CPU Wait 신호 고속 CPU가 저속 주변장치와 서로간의 Data처리 시간을 Link시키기 위한 신호이다. ② Wait신호가 LOW이면 CPU는 No peration상태로 된다. /WAIT t0 : PC→MAR : 2uS 소요 t1 : [M] → MBR, PC←PC+1 : 메모리[M] 내부의 데이터를 MBR 까지 읽어내 오는데 6uS가 소요된다. 따라서 /WATE 신호를 삽입한다. t2 : MBR → IR : 2uS 소요 Slide 18 (of 22)
CPU 외부 신호 5) CPU Control signal ▣ /WATE 신호 타이밍도 Slide 19 (of 22)
CPU 외부 신호 5) CPU Control signal (4) Interrupt Request Signal (/INT) (5) NMI’(Non mask able Interrupt Request Signal) /NMI /NMI(가로체기)신호는 다음 9장에서 설명한다 Slide 20 (of 22)
CPU 외부 신호 6) System BUS Control (1) CPU BUS Request Signal /BUSREQ DMA와 주변 장치간의 고속 데이터 전송을 위한 방법으로 CPU를 거치지 않고 직접 전송하는 기능이다. 이때 CPU의 버스 선들은 High impedance가 된다. ▣ DMA가 없을 경우 데이터 전송 ▣ DMA를 사용하였을 경우 Slide 21 (of 22)
CPU 외부 신호 6) System BUS Control ① 대량 단순 데이터전송이 필요하면 CPU에서 DAM로 데이터 전송 명령을 내린다. 이때 DAM는 데이터 전송을 위한 초기치 값을 세트한다. ② DMA에서 CPU로 /BUSREQ 신호를 보낸다. ③ CPU는 어드레스 버스, 데이터 버스, 제어신호 들을 고 임피던스로 전환하여 차단하고 /BUSACK 신호를 DMA로 전송 한다. ④ DMA는 메모리와 주변장지들 간의 고속 데이터 전송을 실행한다. ⑤ 전송이 종료되면 DAM에서 /BUSREQ 신호를 “High로 전환한다. ⑥ CPU는 /BUSACK 신호를 "High"로 전환하고 어드레스 버스, 데이터 버스, 제어 신호들을 정상화 한다. Slide 22 (of 22)