50
M Microprocessor Microprocessor 정보통신컴퓨터 공학부 교수 이재흥

정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Embed Size (px)

Citation preview

Page 1: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

MicroprocessorMicroprocessor

정보통신•컴퓨터 공학부교수 이 재 흥

Page 2: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

1. 마이크로 프로세서의 개요

(1) 마이크로 프로세서

① ALU, 제어회로, 메모리, 타이밍(클럭) 회로

(2) 마이크로 컴퓨터

① 마이크로프로세서 (CPU)

② 프로그램 메모리 (ROM)

③ 데이터 메모리 (RAM)

④ 주변 인터페이스

ALU ScratchpadRAM

Control Clock

Microprocessor

[ 마이크로 프로세서 블럭다이어그램 ]

[ 일반적인 마이크로 컴퓨터 시스템 ]

ProgramMemory(ROM)

Microcomputer

DataMemory(RAM)

Input/Output

Timing(clock) Microprocessor

Data bus

Address bus

Control

Page 3: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

(3) 마이크로 프로세서의 역사

(4) 마이크로 컴퓨터의 특징① CISC 와 RISC

- CISC : Complex Instruction Set Computer

- RISC : Reduced Instruction Set Computer

② CISC 와 RISC 의 차이점

- 명령어의 개수와 어드레싱 모드의 최소화

- 고정된 명령어 형식

- 하드와이어드 방식의 명령디코딩

- 한 사이클에 명령을 수행하도록 구성

- LOAD/STORE 방식의 메모리 구조

- 다수의 레지스터군 제공

③ 예X = A + BY = A - B

연 산

X = A+B

Y = A- B

L R1, AA R1, BST R1, X

L R2, AS R2, BST R2, Y

CISC RISC

L R1, AL R2, BA R3, R1, R2ST R3, X

S R4, R1, R2ST R4, Y

4004

8008

8080

8085

8086

80186

80286

80386

80486

Z80

8088

Z8000

6502

6510

6809

68000

Z80000 68020

68030

68040 88000

6800

4bit

8bit

16bit

인텔 RISC 자일로그

모토롤라 RISC

모스텍

80860

Page 4: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

2. 마이크로 프로세서의 종류

(1) 비트 슬라이스 마이크로 프로세서

① 여러 비트 단위의 CPU 구성요소를 조합하여 새로운 비트 단위의 CPU를 구성

(2) 단일 칩형 마이크로 프로세서

② CPU와 인터페이스 및 메모리를 단일칩에 실현

- 8051 (Intel)

- 6805 (motorola)

- KS88C0016 (SAMSUNG)

(3) 명령어 셋

(4) 8080 / 8085 CPU

① 6개의 8비트 범용 레지스터 (B, C, D, E, H, L)

② 8비트 어큐뮬레이터 (A)

③ 16비트 스택 포인터 (SP)

④ 16비트 프로그램 카운터 (PC)

⑤ 8비트 명령 레지스터 (IR)

⑥ 5비트 상태 레지스터

Z80

8080

8008

8008 : 48 개의 명령 추가

8080 : 30 개의 명령 추가

Z80 : 80 개의 명령 추가

Page 5: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

① 8080 CPU 구조

② 8085 CPU 구조

Data busBuffer/latch

D7-D0 Bidirectional data bus

Instructionregister(8)

Instructiondecoder

and machinecycle

encoding

Timingand

control

WriteData buscontrol

Interruptcontrol

Holdcontrol

Waitcontrol Sync Clocks

WR DBININTE

INTACK

HOLDWAIT

READYSYNC Φ1 Φ2

Accumulator(8)

Temp. reg.(8) Flag

Flip-flops(5)

Accumulatorlatch(8) Arithmetic

logicunit

(ALU)(8)

Decimaladjust

Multiplexer

W (8)Temp. reg.

Z (8)Temp. reg.

B (8)Reg.

C (8)Reg.

D (8)Reg.

E (8)Reg.

H (8)Reg.

L (8)Reg.

Stack pointer (16)

Program counter (16)

Incrementer/decrementerAddress latch (16)

Reg

iste

r se

lect

Address buffer (16)

A15-A0Address bus

Powersupplies

+12 V+5 V-5 VGND

RESET

Internal data bus (8-bit) Internal data bus (8-bit)

••

• •

Interrupt control

Instructionregister(8)

Instructiondecoder

and machinecycle

encoding

Timing and controlClkGen control Status DMA Reset

CLK OUT READY RD WR ALE S0 S110/M HLDA

RESET IN RESET OUT

Accumulator(8)

Temp. reg.(8) Flag

Flip-flops(5)

Accumulatorlatch(8) Arithmetic

logicunit

(ALU)(8)

W (8)Temp. reg.

Z (8)Temp. reg.

B (8)Reg.

C (8)Reg.

D (8)Reg.

E (8)Reg.

H (8)Reg.

L (8)Reg.

Stack pointer (16)Program counter (16)Incrementer/decrementer

Address latch (16)

Address buffer (8)

A15-A8Address bus

Powersupplies

+5 VGND

Registerarray

Data/addressBuffer (8)

AD7-AD0Address/Data bus

HOLD

X1

X2

Serial I/O control

8-bit Internal data

INTR RTS5.5 RTS7.5INTA RTS6.5 TRAP

SID SOD

Page 6: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

(5) Z80 CPU① 특징

- 8080A 의 소프트웨어와 완전 호환성- 158종의 명령어 셋- 인덱스 레지스터- 레지스터 셋이 2개 조- 인터럽트 모드 3개- 5V 단일 전원- 단상 클럭

② 구성

③ 레지스터- 범용 레지스터

• 14개의 8비트 레지스터 (A,B,C,D,E,H,L,A’,B’,C’,D’,E’,H’,L’)- 상태 레지스터

• Carry flag (C)• Zero flag (Z)• Sign flag (S)• Parity/overflow flag (P/V)• Half carry flag (H)• Subtract flag (N)

- 특수 레지스터• Interrupt 레지스터 (I)• Refresh 레지스터 (R)• Index 레지스터 (IX, IY)• 스택 포인터 (SP)• 프로그램 카운터 (PC)

M1

MREQ

IOR

Q

RD

WR

RFSH

HALT

WAIT

INT

NM

I

BU

SR

Q

BU

SA

K

RESET

Φ+5V

GN

DCPU Control

ALU

(8)

(8)

인스트럭션레지스터

어드레스.버퍼 레지스터셋

A15~A0어드레스.버스

D7~D0데이터.버스

A F A’ F’B C B’ C’D E D’ E’H L H’ L’I RI XI YS PP C

데이터.버스

CPU내부

CPU외부

(16)

(16)

내부버스(8비트)

Page 7: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

④ ALU (Arithmetic Logical Unit)

- CPU의 내부의 논리연산 및 산술연산

- 가산(Add), 감산(Subtract)

- 논리곱(AND), 논리합(OR)

- 배타적 논리합(XOR), 비교(Compare)

- 시프트 및 회전 (Shift and Rotate)

- 증가 및 감소 (Increment and Decrement)

- 비트 세트, 리세트, 테스트 (Set, Reset, Test)

⑤ 핀배치

Page 8: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

⑥ Bus

- Address Bus• A0~A15 ⇒ 216 = 65,536 까지 번지 지정 가능

• 단방향성 버스

• CPU ⇒ memory, 입출력 기기 (번지 전송)

- Data Bus• D0~D7 ⇒ 8비트 데이터

• 양방향성 버스

• CPU ⇔ 메모리, 입출력기기 (데이터 전송)

- Control Bus

• 시스템 제어신호

?M1 (Machine Cycle One) : op_code의 fetch cycle

?MREQ (Memory Request) : memory의 칩 선택 신호

?IORQ (I/O Request) : I/O 입출력 요구 신호

?RD (Memory Read) : 데이터 읽기 신호

?WR (Memory Write) : 데이터 쓰기 신호

?RFSH (Refresh) : DRAM refresh 신호

• CPU 제어신호

?HALT (Halt State) : HALT 명령 수행시 =>NOP 반복 수행

?WAIT (Wait) : 대기신호(Memory 또는 I/O장치 대기상태)

?INT (Interrupt Request) : I/O장치가 CPU에 인터럽트 요구

?RESET (Reset) : CPU 초기화PC <= 0000H

Interrupt enable F/F reset

Interrupt Reg(I) <= 00H

Refresh Reg(R) <= 00H

Interrupt mode <= 0

?NMI (non-maskable interrupt) : INT 보다 우선순위• CPU 버스 제어 신호

?BUSRQ (BUS ReQuest)

CPU의 관리에서 벗어나 memory 또는 I/O장치끼리 Data 교환할 때

?BUSAK (BUS AcKnowledge)

CPU가 bus request를 받아서 모든 포트를 High Impedence

Page 9: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

⑦ 기본동작

- 명령 fetch

- 명령 decoding

- 오퍼랜드 fetch

- 실행

⑧ CPU의 타이밍

- 기본명령 사이클1 TO 5.75 μs

MACHINECYCLE M1

MACHINECYCLE M2

MACHINECYCLE MN

ONE TO SIX MACHINE CYCLES

ONE INSTRUCTION TIME

MACHINE CYCLE MN

TCYCLE250 ns

3 TO 6 CYCLES TYPICAL

A

P C

I R

A

P C

I R

A

P C

I R

A

P C

I R

3A

XX

10 00

3A 31

XX

10 01

3A 31 42

XX

10 02

3A 31 42

메모리데이터

10 03

HL

명령의 실행

1001H1000H 1002H 4321H제 2바이트OP code 제 3바이트

31H3AH 42H 메모리데이터

HL

HL

HL

명령의 패치

메모리.데이터

메모리.데이터

MREQ

IORQ

RD

WD

[ 명령 실행 예 ]

Page 10: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- 명령 사이클의 예

- M1 사이클 (Machine Cycle One)

OP code 패치 사이클

T1 T2 T3 T4

메모리 리드사이클 M2

T1 T2 T3

I/O 리드사이클 M3

T1 T2 Tw T3

스테이트

OP code 패치 사이클

T1 T2 T3 T4

메모리 리드사이클 M2

T1 T2 T3

메모리 리드사이클 M3

T1 T2 T3

메모리 라이트사이클 M4

T1 T2 T3

LD (nn), A 명령의 머신 사이클

32, 34, 12

(b) IN A, (n)DB, 38

OP 코드

A0~A15

MREQ

RD

WAIT

M1

D0~D7

RFSH

tDLΦ(MR)

T1 T2 T3 T4

tDLΦ(RD)

tDL(M1)

PC

“H”

ts(wT) tH tDH(M1)

tDLΦ(RD)

tDHΦ (MR)

tW(MRH) tW(MRL)

tDL(RF)

tHtSΦ(D)

tDH(RF)

tDLΦ(MR)

tF(AD)

M1 사이클

Φ

리플래시 어드레스

tD(AD) tF(AD)

Page 11: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- 메모리 읽기 사이클

- 메모리 쓰기 사이클

메모리데이터

A0~A15

MREQ

RD

D0~D7

tDLΦ(MR)

T1 T2 T3 T1

tDLΦ(RD)

메모리 데이터

WAIT “H”

ts(WT) tH

tDHΦ(RD)

tHtSΦ(D)

메모리 리드 사이클

ΦtD(AD)

tDHΦ(MR)

tF(AD)

A0~A15

MREQ

WR

D0~D7

tDLΦ(MR)

T1 T2 T3 T1

tDLΦ(WR)

메모리 데이터

WAIT

ts(WT) tH

tDHΦ(WR)

메모리 라이트 사이클

ΦtD(AD)

tDHΦ(MR)

tF(AD)

메모리 데이터

Page 12: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

3. 마이크로 프로세서의 내부 구조(1) DMA ( Direct Memory Access )

① 데이터 전송이 메모리와 입출력 기기 사이에서 직접 행함( DMA controller에 의해서 제어 펄스 발생 )

- DMA I/O

- 일반적인 I/O

(2) 버스 요구 및 인식 사이클

memoryI/O

interface

microprocessor

peripheral

memoryDMA

interface

microprocessor

peripheral

IORQ RD

MREQ

WR

RFSH

BUSAK

BUSRQ

A0~A15

D0~D7

하이. 임피이던스

하이. 임피이던스

하이. 임피이던스

머신.사이클의최후 스테이트

임의의 머신. 사이클 DMA 사이클

다음의 머신사이클

셈플

ts(BQ)

ts(BQ)

tH

tH셈플

Tdh(BA)tDL(BA)

O

Page 13: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

I Reg 벡터 번지

인터럽트 발생된 장치에서 보관

번지의 내용이 인터럽트 처리 프로그램의선두 번지를 가리킴.

35H 50H8064H

8000H

5035H

가로채기 루틴. 어드레스테이블의 베이스. 어드레스

가로채기 루틴의 선두

메모리

80H 64H

8064H 번지

5035H 번지

(4)데이지 체인 - 직렬 우선 순의 인터럽트 처리

Device1PI PO

Device2PI PO

Device3PI PO

INT

CPU

INTACK

Interrupt request

Interrupt acknowledge

Processor data bus

VAD1 VAD2 VAD3

TO next device

Page 14: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

(3) CPU의 인터럽트 응답① NMI :

- 언제라도 CPU에 감지.- IFF1의 상태 IFF2.- 0066H 번지를 Subroutine Call.

② INT :- mode 0- mode 1- mode 2

- mode 0 :• IM 0 명령에 의해 선택• 8비트 인터럽트 벡터의 해당 번지의 Sunroutine Call • PC는 Stack 에 저장

가로채기원3의 루틴

가로채기원2의 루틴

가로채기원1의 루틴

가로채기원0의 루틴

RST00H(C7H)

RST08H(CFH)

RST10H(D7H)

RST18H(DFH)

0018H

0010H

0008H

0000H

가로채기원0 가로채기원1 가로채기원2 가로채기원3

가로채기원3의 루틴

가로채기원2의 루틴

가로채기원1의 루틴

가로채기원0의 루틴

CALL0123H(CD2301)

CALL2345H(CD4523)

CALL8ABBH(CDBB8A)

CALLFF00H(CD00FF)

FF00H

8ABBH

2345H

0123H

가로채기원0 가로채기원1 가로채기원2 가로채기원3

(a) RST명령을 보낼 경우 (b) CALL명령을 보낼 경우

메모리 메모리

- mode 1 : • IM1 명령에 의한 선택

• 0038H (RST 38H) 번지의 Subroutine Call

- mode 2 : • IM2 명령에 의해 선택

Page 15: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

(5) 번지 지정 모드① 고유 번지 지정 ( Implied Addressing )

CPL COMPLEMENT ACCUMULATOR

BYTE 0 2FH - OP CODE

② 즉치 번지 지정 ( Immediate Addressing )ADD A.N ADD VALUE N TO ACCUMMULATOR

BYTE 0 C6H - OP CODE

BYTE 1 IMMEDIATE VALUE

0 0 1 0 1 1 1 1

1 1 0 0 0 1 1 0

N

③ 확장 즉치 번지 지정 ( Expanded Immediate Addressing )LD IY.NN LOAD IY WITH VALUE N

1 1 1 1 1 1 0 1

0 0 1 0 0 0 0 1

N LS BYTE

N MS BYTE

BYTE 0 FDH = OP CODE

BYTE 1 21H = OP CODE

BYTE 2

BYTE 3 16-BIT IMMEDIATE VALUE

④ 레지스터 번지 지정 ( Register Addressing )RL R ROTATE LEFT THROUGH CARRY REGISTER R

1 1 0 0 1 0 1 1BYTE 0 CBH = OP CODE

BYTE 1 R 00010 2 = OP CODER = CPU REGISTER CODE

0 0 0 1 0

⑤ 레지스터 간접 번지 지정 ( Register Indirect Addressing )LD A,(BC) LOAD ACCUMULATORWITH LOCATION POINTED TO BY CONTENTS OF B, C

BYTE 0 0 0 0 0 1 0 1 0 0AH = OP CODE

Page 16: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

⑥ 확장 번지 지정모드 ( Expanded Addressing )LD A,(NN) LOAD ACCUMULATORWITH CONTENTS OF LOCATION NN

BYTE 0 0 0 1 1 1 0 1 0 3AH = OP CODE

N LS BYTE

N MS BYTE

BYTE 1

BYTE 2 16-BIT ADDRESS}

⑦ 상대 번지 지정모드 ( Relative Addressing )- 유효번지 = PC + 번지 필드 값

JR Z,E JUMP RELATIVE IF ZERO

LOCATION 0300H 0 0 1 0 1 0 0 0 28H = OP CODE

0301H 0 0 1 0 1 0 0 0 VALUE = 10 = AH

PC 0302H

INSTRUCTION WILL JUMP TO 0302H + AH = 030CHIF ZERO FLAG SET OR WILL EXECUTE NEXTINSTRUCTION AT 0302H IF NOT SET

⑧ 인덱스 레지스터 번지지정 ( Indexed Addressing )- 유효 번지 = INDEX Reg + 번지 필드 값

LD (IY + D), N LOAD LOCATION ( IY + D) WITH VALUE N

BYTE 0 1 1 1 1 1 1 0 1 OP CODE

BYTE 1 0 0 1 1 0 1 1 0 OP CODE

BYTE 2 0 1 0 0 0 0 0 0 D= 40H

BYTE 3 N VALUE TO BE STORED

(IY) = 1003HD = 40H

EFFECTIVE ADDRESS =1043H

Page 17: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

⑨ 비트 번지 지정모드 ( Indexed Addressing )

SET B,( IX+D ) SET B OF LOCATION ( IX +D )

BYTE 0 1 1 0 1 1 1 0 1 OP CODE

BYTE 1 1 1 0 0 1 0 1 1 OP CODE

BYTE 2 D D VALUE

BYTE 3 1 1 B 1 1 0 112/1102 = OP CODEB = BIT CODE 0-7

(6) INSTRUCTION SET

① 8 BIT LOAD GROUP

- 8 Bit Data의 이동

- 특수한 경우를 제외하고는 Flag Register 와 별관계가 없다.

8 bits

CPU A REG

CPU I REG

LD A , I

8 bits

CPU A REG

CPU R REG

LD A , R

8 bits

CPU I REG

CPU A REG

LD I , A

8 bits

CPU R REG

CPU A REG

LD R , A

Page 18: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

LD R, S TYPELD B,H

8 bits

CPU B REG

CPU H REG

CPU C REG

LD C,(HL) (HL) = 1001H

MEMORY

1043H

1044H

8 BITS

LD S, R TYPE ( STORE )LD ( IX + 30H), D ( IX ) = 1014H

CPU D REG

MEMORY

1043H

1044H 8 BITS

CPU A REG

MEMORY

2004

2005

2006

8 BITS

LD (DE),A ( STORE ) ( DE ) = 2005

② 16 BIT LOAD GROUP

- 16 Bit Data의 이동(Extended Immediate Addressing에서 사용)

- Register pair의 Push or Pop의 경우- LD DD, NN : LD DD, (NN)

PUSH AF : POP AF SUBTRACT

Page 19: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

LD HL, 1025H

LD HL, 1025H 0 0 1 0 0 0 0 1

INSTRUCTION 25H

50H

CPU H REGISTER

CPU L REGISTER

8BIT8BIT

LD (NN), IX

LD (NN), IX 1 1 0 1 1 1 0 1

INSTRUCTION 0 0 1 0 0 0 1 0

20H

50H}MEMORIY ADDRESS 5020H

8BIT8BITMEMORY

5020H

5021H

HIGH ORDER

LOW ORDER

IX REGISTER

Page 20: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

LD SP, HL

HIGH ORDER

LOW ORDER

CPU H REGISTER

CPU L REGISTER

8BIT

8BIT

STACKPOINTER

REGISTER

③ Exchange, Block Transfer and Search Group- Exchange :

CPU Register pair 간의 16 Bit 또는 48 Bit Data 교환.

A

B

D

H

F

C

E

L

A’

B’

D’

H’

F’

C’

E’

L’

8 BITS( EX AF,AF’ )

8 BITS( EX AF,AF’ )

48 BITS( FX, X )

ACTIVE CPU REGISTERS

INACTIVE CPU REGISTERS

Page 21: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

(TOP OF STACK)(TOP OF STACK +1)

MEMORY

1025H

1026H

CPU H REGISTER

L

EX (SP) , HL (SP) = 1025H

8BIT

8BIT

CPU D REGISTER

E

CPU H REGISTER

L

(TOP OF STACK)(TOP OF STACK +1)

MEMORY

2043H

2044H

IX HIGH ORDER

EX (SP) , IX (SP) = 2043H

IX LOW ORDER

(TOP OF STACK)(TOP OF STACK +1)

MEMORY

128AH

128BH

EX (SP) , IY (SP) = 128AH

IY HIGH ORDER

IY LOW ORDER

Page 22: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

-Block transfer : Block Data 전송 ( 최대 64K byte)• BC Register pair : Data Block의 수, Counter로 이용.• HL Register pair : Source Block의 Starting Address.• DE Register pair : Destination block의 Starting Address.• LDI, LDD, LDIR, LDDR

“I” : Increment“D” : Decrement“R” : Repeat

• LDI 및 LDD 명령

1000H1001H1002H1003H1004H

2000H2001H2002H2003H2004H

MEMORYSOURCEBLOCK

MEMORYDESTINATION

BLOCK

8BITS

(HL) AFTER LDD

(HL) BEFORE INSTRUCTION

(HL) AFTER LDI

(DE) AFTER LDD

(DE) BEFORE INSTRUCTION

(DE) AFTER LDI

LDI , LDD 의 동작

LDI : (DE) (HL)

DE DE+1

HL HL+1

BC BC-1

LDD : (DE) (HL)

DE DE - 1

HL HL - 1

BC BC - 1

LDI ACTIONS1. TRANSFER BYTE FROM 1002H TO 2002H2. ADD 1 TO HL TO POINT TO 1003H3. ADD 1 TO DE TO POINT TO 2003H4. SUBTRACT 1 FROM BC( BYTE COUNT )5. GO ON TO NEXT INSTRUCTION

LDD ACTIONS1. TRANSFER BYTE FROM 1002H TO 2002H2. SUBTRACT 1 FROM HL TO POINT TO 1001H3. SUBTRACT 1 FROM DE TO POINT TO 2001H4. SUBTRACT 1 FROM BC( BYTE COUNT )5. GO ON TO NEXT INSTRUCTION

Page 23: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

LDIR 및 LDDR 명령LDIR 및 LDDR 의 동작

LDIR : (DE) (HL)

DE DE + 1

HL HL + 1

BC BC - 1

LDDR : (DE) (HL)

DE DE - 1

HL HL - 1

BC BC - 1

BC = 0 일때 까지 반복 BC = 0 일때 까지 반복

1000H1001H1002H1003H1004H

2014H2015H2016H2017H2018H

MEMORYSOURCEBLOCK

MEMORYDESTINATION

BLOCK

(HL) AT START (LDIR)

(DE) AT START (LDIR)

LDIR

LDDR

LDIR

LDDR

(HL) AT START (LDDR)

(HL) AT START (LDDR)

LDIR ACTIONS1. TRANSFER BYTE2. ADD 1 TO HL3. ADD 1 TO DE4. SUBTRACT 1 FROM BC5. IF (BC) = 0 GO TO STEP 16. GO ON TO NEXT INSTRUCTION

THESE ACTIONSREPEATED N TIMESWHERE N= #IN BC INITIALLY

LDDR ACTIONS1. TRANSFER BYTE2. SUBTRACT 1 FROM HL3. SUBTRACT 1 FROM DE4. SUBTRACT 1 FROM BC5. IF (BC) = 0 GO TO STEP 16. GO ON TO NEXT INSTRUCTION

THESE ACTIONSREPEATED N TIMESWHERE N= #IN BC INITIALLY

Page 24: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- Search : 하나 또는 그 이상의 Data에 대하여 같은 내용을 찾는다.

a) BC Register pair : Search block의 수, Counter로 이용.b) HL Register pair : Search block의 Starting Addressc) CPI, CPD, CPIR, CPDR

3005H

3006H

3007H

3008H

3009H

300AH

300BH300CH

HL AT START(CPI)

HL AFTER CPI

HL AFTER CPD

HL AT START(CPD)

CPI ACTIONS1. READ NEXT BYTE2. ADD 1 TO HL3. SUBTRACT 1 FROM BC4. COMPARE BYTE TO (A) AND SET FLAGS5. GO ON TO NEXT INSTRUCTION

11AAH

11ABH

11ACH

11ADH

11AEH

11AFH

11B0H11B1H

HL AT START(CPID)

HL AT END (CPID)

HL AT START (CPDD)11B2H

HL AT END (CPDD)33H

BLOCK TOBE SEARCHED

CPD ACTIONS1. READ NEXT BYTE2. SUBTRACT 1 FROM HL3. SUBTRACT 1 FROM BC4. COMPARE BYTE TO (A) AND SET FLAGS5. GO ON TO NEXT INSTRUCTION

Page 25: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

AT START(HL) = 11AAH FOR CPIR 11B2H FOR CPDR(BC) = 9(A) = 33H

CPDD ACTIONS1. READ NEXT BYTE2. SUBTRACT 1 FROM HL3. SUBTRACT 1 FROM DE4. SUBTRACT 1 FROM BC5. IF (BC) = 0 AND BYTE = A TO STEP 16. GO ON TO NEXT INSTRUCTION

THESE ACTIONSREPEATED SIX TIMES

CPID ACTIONS1. READ NEXT BYTE2. ADD 1 TO HL3. SUBTRACT 1 FROM BC4. COMPARE BYTE TO (A) AND SET FLAGS5. IF (BC) = 0 AND BYTE = A TO STEP 16. GO ON TO NEXT INSTRUCTION

THESE ACTIONSREPEATED FOUR TIMES

Page 26: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

④ 8Bit Arithmetic and Logical Group

- 가산, 감산, 논리곱(AND), 논리합(OR), XOR

- 2개의 operand중 한 쪽은 반드시 A register에 있는 8Bit이고 다른 한쪽은즉치 또는 indirect로 addressing 된다.

- 연산결과는 항상 A register에 들어간다.

- Condition Code (Flag Register)는 대부분 관련된다.

ADD A, B

ALU

(ADD)

CPU A REG CPU B REGCY

8 BITS 8 BITS

8 BIT RESULT

ADC A, (HL)

ALU

(ADD WITH CARRY)

CPU A REG CY

8 BITS 8 BITS

8 BIT RESULT

HL

MEMORY

OPERAND

SBC A, ( IX + D )

ALU

(SUBSTRACTWITH CARRY)

CPU A REG CY

8 BITS 8 BITS

8 BIT RESULT

IX + D

MEMORY

OPERAND

Page 27: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

⑤ General-Purpose Arithmetic and CPU Control Group.

- DAA, CPL, NEG, CCF, SCF

NOP, HALT, DI, EI, IMO, IMI, IM2

1 0 1 1 0 1 1 0

1 0 1 1 0 1 1 0

1 0 1 1 0 1 1 0

1 0 1 1 0 1 1 0

0s -> 1s 1s -> 0s

0s -> 1s 1s -> 0s

1 0 1 1 0 1 1 0

+ 1

(-74)

(-74)

(+73)

(+74)

CPL (A) BEFORE INSTRUCTION

(B) AFTER INSTRUCTION

NEG (A) BEFORE INSTRUCTION

(B) AFTER INSTRUCTION

⑥ 16Bit Arithmetic Group

- Register pair

[ BC, DE, HL ]

- Index Register

[ IX, IY ]

- Stack pointer

[ SP ]

- 16 bit의 연산처리

- “SS” field에 의해 pair 지정

- HL Register가 “A” 역할

1 1 0 1 1 1 0 1

0 0 1 0 1 0 0 1

ALU

(ADD)

IX

16 BITS 16 BITS

ADD IX, IX

1 1 1 0 1 1 0 1

0 1 1 1 0 0 1 0

ALU

(SUBSTRACT WITH CARRY)

HL SP CY

16 BITS 16 BITS

16 BITS

SBC HL, SP

(SECOND OPERAND)

Page 28: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

⑦ Rorate and Shift Group

- Data의 Rorate or Shift를 한다.

- 8080에서 A register만 가능하였던 것을 그 밖의 Register(B, C, D, E, H, L)및 지정된 Memory의 내용을 Rotate or Shift 시킬 수 있다.

- RLAC, RLA, RRCA, RRA 명령

RLAC : R : Rotate RRCA : R : Rotate

L : Left R : Right

C : Circular C : Circular

A : Accumulator A : Accumulator

- RLD, RRD 명령

• 4 Bit 씩 묶어서 Rotate

• Memory Operand는 (HL)으로 HL register내용 (즉, 간접 Addressing)

• BCD 연산시 편리.

RLD ACTION

CY SHIFT LEFT ONE

7 0A

CYSHIFT RIGHT ONE

7 0A

(8 bit)

(8 bit)

CY SHIFT LEFT ONE

7 0

A

CYSHIFT RIGHT ONE

7 0A

(9 bit)

(9 bit)

RLCA ACTION

RLA ACTION RRA ACTION

RRCA ACTION

UNCHANGEDAMEMORY

OPERAND

7 4 3 0 7 4 3 0

4BIT

4BIT4BIT

UNCHANGEDAMEMORY

OPERAND

7 4 3 0 7 4 3 0

4BIT

4BIT4BIT

RRD ACTION

Page 29: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- SRA, SLA, SRL

• S : Shift

• R, L : Right, Left

• A, L : Arithmetic Logic

⑧ Bit Set, Reset and Test Group

-CPU Register (A, B, C, D, E, H, L), 또는 IX, IY, HL, Register가 지정하는Memory location의 8bit중의 1bit를 Set, Reset, test

SET 7, D

CYS SHIFT RIGHT ONE

7 0SRA S

OPRAND

CY SHIFT LEFT ONE

7 00 OPERAND

SLA S

CYSHIFT RIGHT ONE

7 0

0

SRL M

0 1 0 1 1 1 1 1 D BEFORE INSTRUCTION

1 1 0 1 1 1 1 1 D AFTER INSTRUCTION

RES 5, (HL)

HL

X X 0 X X X X XMEMORY

OPERAND

THIS BIT RESETBIT 0,(IX +D)

INSTRUCTION

0 1 0 0 0 1 1 0

D

1 1 0 0 1 0 1 1

1 1 0 1 1 1 0 1

IX

X X X X X X X 0/1

Bit 0 specified

MEMORY

OPERAND

( IX + D )

Z

SET Z IF BIT = 0

RESET Z IF BIT = 1

Page 30: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

⑨ JUMP Group

- Jump : PC의 내용 No stack

a) conditional Jump : JP CC, NN

unconditional Jump : JP NN

b) Absolute Jump : JP CC, NN ; JP NN

Relative Jump : JR CC, E ; JR E ; DJNE e

-) Call : PC의 내용 Stack

a) conditional Jump : JP CC, NN

unconditional Jump : JP NN

- Return

a) RET : Call

RETI : INT

RETN : NMI

⑩ Input and Output Group

(INI, INIR, IND, INDR, OUTI, OUTIR, OUTD, OUTDR)

Page 31: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

4. 인터페이스(1) 메모리 인터페이스

① 메모리 ROM : Mask ROM

PROM

EPROM

EEPROM

RAM : SRAM

DRAM

② 디코더(Decoder)

- 74L138(3X8 Decoder)

TOP VIEW

A

B

C

G2A

G2B

G1

Y7

GND

Vcc

Y0

Y1

Y2

Y3

Y4

Y5

Y6

1

2

3

4

5

6

7

8

16

15

14

13

12

11

10

9

(a)

H H H H H H H H

H H H H H H H H

L H H H H H H H

H L H H H H H H

H H L H H H H H

H H H L H H H H

H H H H L H H H

H H H H H L H H

H H H H H H L H

H H H H H H H L

X X X

X X X

L L L

L L H

L H L

L H H

H L L

H L H

H H L

H H H

X H

L X

H L

H L

H L

H L

H L

H L

H L

H L

Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7C B AG1 G2

OUTPUTSSELECT

INPUT

ENABLE INPUT

FUNCTION TABLE

G2 = G2A + G2B (b)

(a)The pinout and

(b) functionTable of the 74LS138 3x8 line decoder

Page 32: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

•74LS139(Dual 2X4 Decoder)

The (a) pinout, (b) function table, and (c) block diagram of the 74LS139 dual 2x4 line decoder.

1G

1A

1B

1Y0

1Y1

1Y2

1Y3

GND

Vcc

2G

2A

2B

2Y0

2Y1

2Y2

2Y3

1

2

3

4

5

6

7

8

16

15

14

13

12

11

10

9

(TOP VIEW)

(a)

FUNCTION TABLE

H H H H

L H H H

H L H H

H H L H

H H H L

X X

L L

L H

H L

H H

H

L

L

L

L

Y0 Y1 Y2 Y3B A

SELECTENABLE

G

OUTPUTSINPUTS

(b)

(1)

(2)

(3)

(15)

(14)

(13)

(4)

(5)

(6)

(7)

(12)

(11)

(10)

(9)

DATA

OUTPUT

ENABLE 1G

1A

1B

SELECT

INPUT

ENABLE 2G

SELECT

INPUT

2A

2B

(C)

Page 33: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

③ 8255(PPIA)의 블록 다이어그램

-8255의 동작1. Mode 0 : 기본적이 입출력 동작2. Mode 1 : strobe 입력, 출력 동작3. Mode 2 : 양방향(Bidirection)동작

GROUPA

CONTROL

GROUPA

CONTROLPORT A(8)

GROUPA

PORT CUPPER(4)

GROUPB

PORT CLOWER(4)

GROUPB

PORT B(8)

GROUPB

CONTROL

DATA BUSBUFFER

READWRITE

CONTROLLOGIC

RD

WR

A1

A0

RESET

POWERSUPPLIES

+5V

GND

BI-DIRECTIONALDATA BUS

D7-D08-BIT

INTERNALDATA BUS

CS

I/OPA7,PA0

I/OPC7,PC0

I/OPC7,PC0

I/OPB7,PB0

Page 34: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- Z80과 8255A의 연결

‘30

Z80

8255A

D0

D7

A1

A0

D0

D7

A1

A0

IOR

IOW

RD

WR

A7

A6

A5

A4

A3

A2

CS

Page 35: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

④ 제어레지스터(Control Register)의 기능

D7 D6 D5 D4 D3 D2 D1 D0

GROUPB

PORT C (LOWER)1 = INPUT0 = OUTPUT

PORT B1 = INPUT0 = OUTPUT

MODE SELECTION1 = MODE 00 = MODE 1

GROUPBPORT C (UPPER)1 = INPUT0 = OUTPUT

PORT A1 = INPUT0 = OUTPUT

MODE SELECTION00 = MODE 001 = MODE 11X = MODE 2

MODE SET FLAG1 = ACTIVE

CONTROL WORD

D7 D6 D5 D4 D3 D2 D1 D0

CONTROL WORD

0 1 2 3 4 5 6

0

7B0

B1

B2

0 1 00

BIT SELECT

BIT SET/RESET FLAG0 = ACTIVE

BIT SET/RESET 1 = SET

0 = RESETX X X

DON’TCARE

0 00 0

0 011 1

1 1 1 11 1

1 1

00

Page 36: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

⑤ 메모리 시스템- 32K x 8 메모리시스템(8개의 4K EPROM)

- 2K x 8 SRAM, 8K x 8 EPROM

2732

A11

A0

D7

D0

’138

MEMRG

E

E

E

E

E

E

E

E

A12

A13

A14

A15

A

B

C

G2A

G2B

G1

0

1

2

5

6

7

3

4

8000-8FFF

9000-9FFF

A000-AFFF

B000-BFFF

C000-CFFF

D000-DFFF

E000-EFFF

F000-FFFF

2732

4016

‘138

A12

A13

A14

A15

+5V

A

B

C

2GA

2GB

1G

0

1

2

5

6

7

3

4

0000-0FFF

1000-1FFF

6000-6FFF

G

S

W

G

E

E

MEMR

MEMW

Page 37: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

병렬 인터페이스(8255, PIO)

병렬 인터페이스(8251, SIO)

동 기 식(Synchronous)

비동기식(Asynchronous)

② 입출력 제어방식

-Memory-mapped I/O : 입출력 기기를 메모리의 한 영역으로 간주

-Isolated I/O: I/O port에 입출력기기가 연결되어 입출력을 행함

(2) 입출력 인터페이스

① 전송 데이터의 형태

Page 38: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

③ 병렬 입출력 인터페이스(8255A : PPIA)

- 기본적인 입력포트

Simple input port that accepts TTL data at I/O port number 12H

D7

D6

D5

D4

D3

D2

D1

D0

TTLCompatibleInput data

Z80Data bus

IN12H

‘30

A7

A6

A5

A4

A3

A2

A1

A0

‘3212H

IOR

Page 39: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- Mode 0 (기본적 입출력 모드)

- Mode 1 (Strobe 입력, 출력 모드)• Strobe의 입력 동작

?STB : Strobe ?IBF : Interrupt Buffer Full

?INTE : Interrupt Enable ?INTR : Interrupt Request

1/0110 1

CONTROL WORDD7 D6 D5 D4 D3 D2 D1 D0

111

D7 D6 D5 D4 D3 D2 D1 D0

MODE 1 ( PORT A )

INTEA PC4

PC5

PC3

PA7-PA0

PC6,7

IBFA

INTRA

I/O2

8

MODE 1 ( PORT B )

INTEB

PC2

PC1

PC0

PB7-PB0

IBFB

INTRB

8CONTROL WORD

PC6,7

1=INPUT

0=OUTPUT

STBA

RD

RD

STBB

[Mode 1. strobe input operation of the 8255A](a)Internal structure

IBF

INTR

INPUT FROMPERIPHERAL

tSIB

tSITtRIB

tRIT

tPH

tPS

tSTSTB

RD

[Mode 1. strobe input operation of the 8255A](b)Timing diagram

Page 40: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

• Strobe 출력동작

?OBF : Output Buffer Full

?ACK : Acknowledge Input

1/0010 1

CONTROL WORDD7 D6 D5 D4 D3 D2 D1 D0

011

D7 D6 D5 D4 D3 D2 D1 D0

MODE 1 ( PORT A )

INTEA

PC7

PC6

PC3

PA7-PA0

PC4,5

OBFA

ACKA

INTRA

2

8

MODE 1 ( PORT B )

PC1

PC2

PC0

PB7-PB0

OBFB

ACK0

INTRB

8CONTROL WORD

WR

WR

PC4,5

1=INPUT

0=OUTPUT

INTEB

[Strobe output operation of the 8255](a)Internal structure

INTR

OUTPUT

tWOB

tAK tAIT

tWIT

tWB

tAOB

OBF

ACK

WR

[Strobe output operation of the 8255](b)Timing diagram

Page 41: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- Mode 2(양방향 모드)

PC3

PC7

PC6

PC4

PC5

PA7 - PC0

INTE1

INTE2

INTRA

IBFA

I/O3

PC20

8

OBFA

ACKA

STBA

WR

RD

[Mode 2 bidirectional operation of the 8255A](a)Internal structure

INTR

IBF

PERIPHERALBUS

DATA FROMCPU TO 8255A

tWOB

tAOB

tAK

tST

tSIB

tPS

tPH

tAD tKD

tRIB

DATA FROMPERIPHERALTO 8255A

DATA FROM8255A TOPERIPHERAL DATA FROM

8255A

OBF

ACK

STB

RD

WR

[Mode 2 bidirectional operation of the 8255A](b)Timing diagram

Page 42: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

④ 직렬 입출력 인터페이스(8251A:USART)

- 비동기 전송 형태

- 동기 전송 형태

- 8251A(USART)의 블록 다이어그램

- Z80과 8251A의 연결

1 5 - 8 1 1 - 2

Stop bit Data bit Parity Stop bit

Sync Multiple of data (5 - 8)Sync

DATA BUSBUFFER

READ/WRITECONTROL

LOGIC

MODEMCONTROL

TRANSMITBUFFER(P-S)

TRANSMITCONTROL

RECEIVEBUFFER(S-P)

RECEIVECONTROL

ㅇㅇ

INTERNALDATABUS

RESETCLKC/D

TxD

TxRDY

TxE

RxD

RxRDY

SYNDET

D7 – D0

RDWR

CS

DSRDTRCTSRTS

TxC

RxC

Z80 8251A

‘30

A0

IORQA1A2A3A4A5A6

A7

CS

RD

WR

RD

WR

C/D

Page 43: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- 모드 세트 레지스터(Mode set Register)의 기능

B1B2L1L2PENEPS1S2

0 1 0 1

0 0 1 1

SYNCMODE

(1X) (16X) (64X)

0 1 0 1

0 0 1 1

5BITS

6BITS

7BITS

8BITS

BAUD RATE FACTOR

CHARACTER LENGTH

PARITY ENABLE1=ENABLE0=DISABLEEVEN PARITY GENERATION/CHECK1=EVEN0=ODD

0 1 0 10 0 1 1IN

VALID1

BITS1 1/2BITS

2BITS

NUMBER OF STOP BITS

(Only affects Tx,Rx never requiresmore than one stopbit)

D7 D6 D5 D4 D3 D2 D1 D0

00L1L2PENEPESDSCSCHARACTER LENGTH

PARITY ENABLE1=ENABLE0=DISABLE

EVEN PARITY GENERATION/CHECK1=EVEN0=ODD

D7 D6 D5 D4 D3 D2 D1 D0

EXTERNAL SYNC DEFECT1=SYNDET IS AN INPUT0=SYNDET IS AN OUTPUT

SINGLE CHARACTER SYNC1=SINGLE SYNC CHARACTER0=DOUBLE SYNC CHARACTER

Note : in external sync mode programming doublecharacter sync will affect only the Tx

[Mode set control words. (a)Asynchronous]

0 1 0 1

0 0 1 1

SYNCMODE

(1X) (16X) (64X)

[Mode set control words. (b)Synchronous]

Page 44: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- 커맨드 레지스터(Command Register)의 기능

TXENDTRR

XESBRKERRTSIREH

D7 D6 D5 D4 D3 D2 D1 D0

TRANSMIT ENABLE1 = ENABLE0 = DISABLE

RECEIVE ENABLE1 = ENABLE0 = DISABLE

SEND BREAK CHARACTER1 = forces T

xD low

0 = DISABLE

ERROR RESET1 = reset error flags PE, OE, FE

REQUEST TO SEND“High” will force RTS output to zero

INTERNAL RESET“High” return 8251A to mode Instruction format

ENTER HUNT MODE1=enable search for sync characters

Note : Error reset must be performed wheneverRxEnable and enter hunt are programmed.

(Has no effect in async mode)

DATA TERMINAL READY“High” will force DTR output to zero

[The command register of the 8251A]

Page 45: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- 8251A에서의 프로그램 예• 비동기 동작 프로그램

; software to program the 8251A so that it functions; in the asynchronous mode.;COMMAND : EQU 81H ;declare the command port;;reset the 8251A;INIT : LD A, 0

OUT (COMMAND), AOUT (COMMAND), AOUT (COMMAND), ALD A, 40HOUT (COMMAND), A

;;program mode set register;

LD A, 01111010BOUT (COMMAND), A

;program operational command registerLD A, 00010101BOUT (COMMAND), A

• 동기 동작 프로그램; software to program the 8251A for synchronous; operation;COMMAND : EQU 81H ;declare the command port;;reset the 8251A;SETUP : LD A, 0

OUT (COMMAND), AOUT (COMMAND), AOUT (COMMAND), ALD A, 40HOUT (COMMAND), A

;;program mode set register;

LD A, 10111000BOUT (COMMAND), A

;program sync charactersLD A, 7EHOUT (COMMAND), ALD A, 7FHOUT (COMMAND), A

;;program command register

LD A, 00010101BOUT (COMMAND), A

Page 46: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- 상태 레지스터(Status Register)의 기능

; 데이터 송수신 때 발생되는 상태 보관

TXRDYRXRDYTXEMPTYPEOEFESYNDETBRKDET

DSR

PARITY ERRORThe PE flag is set when a parityError is detected. It is reset by The ER bit of the commandInstruction. PE does not inhibitOperation of the 8251A

OVERRUN ERRORThe OE flag is set when the CPUdoes not read a character beforethe next one becomes available.It is reset by the ER bit of the command instruction. OE does not inhibit operation of the 8251A; however,the previously overrun character is lost.

FRAMING ERROR(Async only)The FE flag is set when a valid stopbit is not detected at the end of everycharacter. It is reset by the ER bit of thecommand instruction.FE does not inhibit the operation of the 8251A

DATA SET READYIndicates that the DSR is at azero level.

Note1

Same defintions as I/O pins

Note 1 : TxRDY status bit has different meanings from theTxRDY output pin. The former is not conditiondeby CTS and TxEN; the latter is conditioned byboth CTS and TxENi.e. TxRDY status bit = DB buffer empty

TxRDY pin out. DB buffer empty = (CTS 0) = (TxEN 1)

[Status register of the 8251A]

Page 47: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

- 데이터 송수신 프로그램 예• 전송프로그램

; subroutine to transmit the contents of the; B register;COMMAND : EQU 81H ;declare command port,DATA : EQU 80H ;declare data port;;test status of transmitter;SEND : IN A,(COMMAND) ;get status

RRCA ;move TxRDY to carryJR NC, SEND ;if not ready

;; send data;

LD A, B ;get dataOUT (DATA), ARET

• 수신프로그램;; subroutine to receive data via the 8251A; The received data are returned in the B register;COMMAND : EQU 81H ;declare command port,DATA : EQU 80H ;declare data port;;test RxRDY;RECV : IN A,(COMMAND) ;get status

RRCA ;RxRDY to carryRRCAJR NC, RECV ;if not ready

;; get data;

IN A, (DATA)LD B, A

;; test for errors;

IN A, (COMMAND) ;get dataAND 38H ;test error bits JR Z, NEXT ;if no errorsLD B, ‘?’ ;get ASCII ?LD A, 15H ;reset errorsOUT (COMMAND), A

NEXT : RET

Page 48: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

⑤ 타이머 (8254A)- 8254 타이머의 블록 다이어그램

⑥ 제어 레지스터(Control Register)의 기능

DATA BUSBUFFER

READ/WRITELOGIC

CONTROLWORD

REGISTER

COUNTER0

COUNTER1

COUNTER2

8

INTERNALBUS

A0A1

CLK 0

CLK 1GATE 1OUT 1

CLK 2

D7 – D0

GATE 0OUT 0

GATE 2

OUT 2

RDWR

CS

D7 D6 D5 D4 D3 D2 D1 D0

SC1 SC0 RW1 RW0 M2 M1 M0 BCD

SC – Select counter :

Read-back command(see read operations)

11

Select counter 201

Select counter 110

Select counter 000

SC1 SC0

M – Mode :

Mode 5101

Mode 4001

Mode 311X

Mode 201X

Mode 1100

Mode 0000

M2 M1 M0

RW – Read/write :

Read/write least significant byte first, than most significant byte

11

Read/write most significant byte only

01

Read/write least significant byte only

10

Counter latch command(see read operations)

00

RW1RW0BCD :

Binary coded decimal (BCD)Counter (4 decades)

1

Binary counter 16-bits0

Note : Don’t care bits(X) should be 0 to insurecompatibility with future Intel products.

Page 49: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

⑦ 8254의 6개 모드

CLK

OUT Count loaded(3)

N 1 2 3

CLK

N 1 2 3

Mode 0

Mode 1

GATE

OUTTrigger

(Count =3)

CLK

N 2 3 11 2 3 1 2 3

Mode 2

OUTCount loaded

(3)

CLK

N 2 31

Mode 4

OUT

Trigger(3)

CLKN 2 31

CLK

N 2 3 11 2 3 1 2 3

Mode 3

OUT

Count loaded(3)

GATE

OUT

Trigger(3) Mode 5

Page 50: 정보통신 컴퓨터공학부 교수 이재흥artoa.hanbat.ac.kr/lecture_data/microprocessor/...Microprocessor Hanbat National University prof.Lee Jae-heung (5) Z80 CPU ①특징-8080A

Microprocessor

Hanbat National University prof. Lee Jae-heung

⑧ 8254를 이용한 FSK 생성 프로그램 예

- Using the 8254 to generate FSK

;; subroutine to transmit a logic 0 (2025 Hz tone);SENDO : PUSH AF ; save A

LD A, 00110110B ; program controlOUT (63H), A LD A, 0DDH ; program count LSBOUT (60H), ALD A, 03H ; program count MSBOUT (60H), ACALL DELAY ; wait 3.33 msPOP AF ; restore ARET

;; subroutine to transmit a logic 1 (2225 Hz tone);SEND 1 : PUSH AF ; save A

LD A, 00110110B ; program controlOUT (63H), ALD A, 83H ; program count LSBOUT (60H), ALD A, 03H ; program count MSBOUT (60H), ACALL DELAY ; wait 3.33 msecPOP AFRET

;; transmit a byte from the accumulator;TRANS : LD B, 8 ; load counter

CALL SENDO ; send start bitLOOP : PRCA ; get data bit

CALL NC, SENDO ; if 0CALL C, SEND 1 ; if 1DJNZ LOOP ; repeat for 8 bitsCALL SEND 1 ; send stop bitRET

8254

‘30

D0

D7

A0

A1

A7

A6A5

A3A2

A4

A0

A1

GATE 0

OUT 0

CLK 0

2 MHz

FSK

+5V

WR

RD

WR

RD

IORQ

1kD0

D7