8086 프로세서의 구조 및 동작 방식

40
신신신신신 신신신신신신 신신신 신신신신신 8086 8086 신신신신신 신신 신 신신 신신신신신 신신 신 신신 신신 신신 시시시 시시시시시 - Lecture #2

Upload: dorian-graves

Post on 03-Jan-2016

226 views

Category:

Documents


1 download

DESCRIPTION

8086 프로세서의 구조 및 동작 방식. 시스템 프로그래밍 - Lecture #2. 컴퓨터 구조 (1). 컴퓨터 시스템의 기본 구성 프로세서 (Processor) – CPU 기억장치 (Memory) RAM(Random Access Memory) ROM(Read Only Memory) 입출력장치 (I/O Devices) Keyboard, Mouse, Monitor, Printer 등 Hard Disk, CD-ROM 등 Network Interface Card 시스템 버스 (System Bus) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

8086 8086 프로세서의 구조 및 프로세서의 구조 및 동작 방식동작 방식

시스템 프로그래밍 - Lecture #2

Page 2: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍2

컴퓨터 구조컴퓨터 구조 (1)(1)

컴퓨터 시스템의 기본 구성 프로세서 (Processor) – CPU 기억장치 (Memory)

RAM(Random Access Memory) ROM(Read Only Memory)

입출력장치 (I/O Devices) Keyboard, Mouse, Monitor, Printer 등 Hard Disk, CD-ROM 등 Network Interface Card

시스템 버스 (System Bus) Data Bus Address Buss Control Bud

Page 3: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍3

컴퓨터 구조컴퓨터 구조 (2)(2)

기본 구성

CPUAddress Bus

MemoryController

Main Memory

I/O Controller I/O Controller

Hard Disk

Printer

Data BusControl Bus

Page 4: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍4

프로세서프로세서 (Processor) (1)(Processor) (1)

Intel x86 Microprocessors( 표 3.1 참조 )

8086

8088

80186

80286

80386

80486

Pentium-I

Pentium-II

Pentium-III 등

Page 5: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍5

프로세서프로세서 (Processor) (2)(Processor) (2)

8086 프로세서의 구조 명령어 실행 장치 (EU: Execution Unit)

산술논리 연산장치 (ALU: Arithmetic Logic Unit)

EU 제어 시스템 (EU Control System)

범용 레지스터 (General Purpose Registers)

플래그 레지스터 (Flag Register)

버스 인터페이스 장치 (Bus Interface Unit) 명령어 포인터 (Instruction Pointer)

세그먼트 레지스터 (Segment Register)

주소 계산기 (Address Adder)

명령어 큐 (Instruction Queue)

Page 6: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

프로세서프로세서 (Processor) (3) –(Processor) (3) –8086 Processor 8086 Processor 구조구조

Page 7: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍7

프로세서프로세서 (Processor) (4)(Processor) (4)

8086 프로세서 칩 구성

데이터 /어드레스버스

논리마스커블논리마스커블인터럽트인터럽트

어드레스어드레스 //세그먼트 정보세그먼트 정보

Page 8: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

프로세서프로세서 (Processor) (4) –(Processor) (4) –80868086 을 이용한 시스템구성을 이용한 시스템구성

Page 9: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍9

프로세서의 메모리 판독 사이클프로세서의 메모리 판독 사이클 (1)(1)

기억장치

주소버스

데이터버스

제어버스

시스템버스

RAM ROM 1 단계 : 판독요구신호

12

프로세서

2 단계 : 주소전송

Page 10: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍10

프로세서의 메모리 판독 사이클프로세서의 메모리 판독 사이클 (2)(2)

기억장치

주소버스

데이터버스

제어버스

시스템버스

RAM ROM 3 단계 : 데이터 전송

43

프로세서

4 단계 : 판독완료신호

Page 11: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍11

프로세서의 메모리 기록 사이클프로세서의 메모리 기록 사이클 (1)(1)

기억장치

주소버스

데이터버스

제어버스

시스템버스

RAM ROM 1 단계 : 기록요구신호

12

프로세서

2 단계 : 주소전송

Page 12: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍12

프로세서의 메모리 기록 사이클프로세서의 메모리 기록 사이클 (2)(2)

기억장치

주소버스

데이터버스

제어버스

시스템버스

RAM ROM 3 단계 : 데이터 전송

4 3

프로세서

4 단계 : 기록완료신호

Page 13: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍13

8086 8086 프로세서의 입출력 동작프로세서의 입출력 동작

8086 프로세서의 입출력 동작 (I/O Operation) I/O 주소를 이용하여 I/O 장치를 구별 메모리 접근과 동일하게 주소 버스 및 데이터 버스를 사용 메모리 접근과 구별하기 위해 별도의 신호 (M/IO) 를 이용

High – Memory Access

Low – I/O Access

기본적으로 메모리 판독 / 기록 사이클과 동일하게 동작

Page 14: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍14

프로세서의 명령어 실행 사이클프로세서의 명령어 실행 사이클 (1)(1)

명 령 어 인 출

IP IP 주소→주소버스주소→주소버스명령어→명령어큐명령어→명령어큐

IP+2→IPIP+2→IP

명 령 어 해독

명령어→명령어→ EUEU필요한 동작 판단필요한 동작 판단

데 이 터 인 출

연산항 주소에연산항 주소에대한 데이터 인출대한 데이터 인출

→→ 레지스터레지스터

명령어 실행

명령어 실행명령어 실행실행 결과→실행 결과→

레지스터 혹은 주기억레지스터 혹은 주기억

Page 15: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍15

프로세서의 명령어 실행 사이클프로세서의 명령어 실행 사이클 (2)(2)

IP(Instruction Pointer) 레지스터에 의해 프로그램 실행 순서를 제어 명령어 인출 단계에서 현재 명령어의 길이를 더하여 다음

명령어의 주소를 저장 분기 (branch) 명령어 처리 : e.g) goto 1000

명령어 큐를 사용하여 크기가 일정하지 않은 명령어를 처리 8086 프로세서의 명령어 길이는 1~6 바이트 한 워드 (2 바이트 ) 보다 긴 명령어는 현재 인출된 명령어의

정보를 이용하여 명령어 인출을 반복

Page 16: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍16

프로세서의 명령어 실행 사이클프로세서의 명령어 실행 사이클 (3)(3)

플래그 레지스터에 명령어 실행 결과에 대한 정보를 저장 계산 결과의 부호 , zero, 올림수 등

8086 프로세서의 명령어 실행 예 그림 2.8 참조

Page 17: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍17

명령어 실행속도명령어 실행속도 (1)(1)

명령어 사이클 (Instruction Cycle) 한 명령어를 인출하여 실행하는 시간 명령어 인출 , 명령어 해독 , 데이타 호출 , 실행 시간을 모두

합친 시간 fetch time(I-time) : 명령어 호출 시간 execution time(E-time) : 명령어 해석하여 데이터 인출하고

연산 수행하는 시간 instruction cycle = I-time + E-time 명령어의 길이가 각기 다르기 때문에 명령어 사이클이

일정하지 않으며 , 보통 4~200 system clock 을 요구

Page 18: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍18

명령어 실행속도명령어 실행속도 (2)(2)

MIPS(Million Instruction Per Second) 프로세서의 명령어 실행 속도를 나타내는 단위 단위 시간 (1 초 ) 에 실행하는 명령어의 수를 백만 단위로

표현 시스템 클럭 , 레지스터 크기 , 데이터 버스 크기 , 연산장치

크기 , 명령어 크기 등에 의해 결정 Mainframe Computer : 20 ~ 1000MIPS

Microcomputer : 1 ~ 10 MIPS 8086 프로세서 : 1 ~ 10 MIPS

Page 19: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍19

8086 8086 프로세서 명령어프로세서 명령어 프로세서의 명령어 길이

명령어의 종류 , 주소지정방식 , 레지스터의 개수 등에 의해 결정 8-bit 명령어의 예 : 그림 3.2 참조

8086 프로세서의 명령어 기본적으로 1 단어 (2 바이트 ) 로 구성 2 단어 또는 최대 3 단어 (6 바이트 ) 까지 확장 가능 부록 D 참조 :

연산항 주소 모드 5 bits 범용 레지스터 8 개 레지스터 주소 3 bits 연산 데이터의 크기 지정 (8/16 bit) word bit 레지스터 접근 방향 (from/to) direction bit 연산자 종류 6 bits

Page 20: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍20

기억장치기억장치 (1)(1)

명령 및 데이터의 저장장소 기본소자 : 비트 (bit)

기본 주소지정 단위 : 바이트 (byte)

기본 정보 단위 : 워드 (word)

주소 (address), 위치 (location), 내용값 (contents)

주소공간 (Address Space) 프로그램이 지정할 수 있는 단위 정보의 수 주소를 나타내기 위한 주소 비트의 수에 의해 결정 예 : 주소 버스가 16 비트이면 216 = 64 KB

Page 21: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍21

기억장치기억장치 (2)(2)

64KB 의 기억장치 주소 예

기억장치기억장치기억장치기억장치

기억된기억된내용내용

주기억장치주기억장치주 소주 소

11 00 11 11 0000 1111

바이트 바이트 00바이트 바이트 00

......

......

바이트 바이트 NN바이트 바이트 NN

바이트바이트 6553565535바이트바이트 6553565535

......

......

NNNN

0000

1111

65535655356553565535

......

......

......

......

Page 22: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍22

기억장치기억장치 (3)(3)

기억장치의 물리적 관리 방법 선형 기억장치 관리

주소를 선형으로 배열 논리주소 = 물리주소

세그먼트 기억장치 관리 기억장소를 세그먼트로 구분 논리주소≠물리주소

페이징 , 페이징 / 세그먼트 혼합방법

Page 23: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍23

기억장치기억장치 (4)(4)

선형 기억장치 관리 (1)

논리적인 주소논리적인 주소

NNNN

20 20 비트비트

기억장치기억장치001122......NN......

cf) 모토롤라 M68000 프로세서 등에서 적용

Page 24: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍24

기억장치기억장치 (5)(5) 선형 기억장치 관리 (2)

기억장치기억장치

시스템 관리자 프로그램

시스템 관리자 데이터

...

프로그램 1

프로그램 2

시스템 관리자 프로그램

시스템 관리자 데이터

프로그램 1

프로그램 2

기억장치 관리자기억장치 관리자

Page 25: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍25

기억장치기억장치 (6)(6) 세그먼트 기억장치 관리

기억장치

데이터 3 세그먼트

프로그램 1 세그먼트

논리적주소

프로그램 1

데이터2

프로그램 세그먼트주소 프로그램 2 세그먼트

데이터 1 세그먼트

데이터 2 세그먼트데이터세그먼트주소

++

++

기계적주소

Page 26: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍26

8086 8086 프로세서의 기억장치 모델프로세서의 기억장치 모델 (1)(1)

1 MB 의 주소 공간을 지원 바이트 단위의 메모리 접근 20 bit 메모리 주소 버스를 사용 220 = 1 MB

워드 또는 바이트 단위의 메모리 입출력 가능 16 bit 데이터 버스를 지원 하나의 메모리 접근 사이클에 워드 단위의 입출력을

수행하나 바이트 단위 접근을 위해 주소 뱅크 구조를 사용 그림 3.4 참조

기억장치의 워드 구성은 little-endian form

Page 27: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

8086 8086 프로세서의 기억장치 모델프로세서의 기억장치 모델 (2)(2)

Page 28: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍28

8086 8086 프로세서의 기억장치 모델프로세서의 기억장치 모델 (3)(3)

세그먼트 기억장치 관리 기법을 사용 하나의 세그먼트는 64 KB 크기 명령어 주소 또는 데이터 주소를 나타내는 논리적 주소는 하나의

세그먼트 내에서의 오프셋 (offset) 주소 16 bit 로 표현

실제 기억장소 접근 시에 물리적 주소 계산 물리적 주소 = 세그먼트 시작 주소 + 논리적 주소

Page 29: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

8086 8086 프로세서의 기억장치 모델프로세서의 기억장치 모델 (4)(4)

데이터 Read/Write 규칙 기억장치 주소 : 바이트단위 , 홀 / 짝의 값 단어주소는 2 씩 증가하며 짝수값 가짐 N 번지 접근 시 1 단어에 접근하면 자동적으로 N, N+1

바이트에 접근 N 번지의 긴 단어 접근 시에 4 개의 바이트에 접근

기억장치에서의 단어 배열 little-endian format 의 단어 구성을 지원 레지스터에서 기억장치로 데이터를 입출력할 때에는 하위

바이트를 먼저 입출력하고 상위 바이트를 입출력한다 그림 3.6 참조

Page 30: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

레지스터레지스터 레지스터의 종류와 형태 세그먼트레지스터와 물리주소 논리주소와 물리주소 명령어 포인터의 동작 데이터의 표현

Page 31: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍31

레지스터의 종류레지스터의 종류

16 bit 레지스터 14 개 지원 그림 3.7 참조 데이터 레지스터 : 4 개 인덱스 레지스터 : 2 개 포인터 레지스터 : 2 개 명령어 포인터 레지스터 : 1 개 플래그 레지스터 : 1 개 세그먼트 레지스터 : 4 개

Page 32: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

데이터 레지스터데이터 레지스터

AHAH

1616 비트비트

88 비트비트 88 비트비트

BHBH

CHCH

DHDH

ALAL

BLBL

CLCL

DLDL

AXAX

BXBX

CXCX

DXDX

3232 비트비트

EAXEAX

EBXEBX

ECXECX

EDXEDX

Page 33: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

포인터와 인덱스 레지스터포인터와 인덱스 레지스터포인터와 인덱스 레지스터포인터와 인덱스 레지스터

SISI

DIDI

ESPESP

EBPEBP

ESIESI

EDIEDI

SPSP

BPBP

Stack PointerStack Pointer

Base PointerBase Pointer

Source IndexSource Index

Destination IndexDestination Index

1616 비트비트

3232 비트비트

Page 34: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

세그먼트 레지스터세그먼트 레지스터

Code Segment : CSCode Segment : CS

Data Segment : DSData Segment : DS

Stack Segment : SSStack Segment : SS

Extra Segment : ESExtra Segment : ES

Page 35: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

플래그 레지스터의 구성플래그 레지스터의 구성

상위

오버플로우

하위

× × × × O D I T S Z × A P C× ×

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

인터럽트인에이블

디렉션

트랩

사인

제로

보조캐리

패리티

캐리

Page 36: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

세그먼트레지스터와 물리주소세그먼트레지스터와 물리주소1616 비트비트 44 비트비트

세그먼트 레지스터값 세그먼트 레지스터값

오프셋오프셋 (offset)(offset) 값 값

CPUCPU 로부터 출력되는 실제주소값 로부터 출력되는 실제주소값

Page 37: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

메모리 공간에서 세그먼트 영역메모리 공간에서 세그먼트 영역FFFFFHFFFFFH

데이터 세그먼트데이터 세그먼트

코드 세그먼트코드 세그먼트

스텍 세그먼트스텍 세그먼트

엑스트라 세그먼트엑스트라 세그먼트

EFFFFHEFFFFH

E0000HE0000H

C3FEFHC3FEFH

B3FF0HB3FF0H

7D260H7D260H

6D260H6D260H

6288FH6288FH

52B90H52B90H

00000H00000H

E000E000

DSDS

B3FFB3FF

CSCS

6D266D26

SSSS

52B952B9

ESES

×16×16

×16×16

×16×16

×16×16

Page 38: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

논리주소와 물리주소의 관계논리주소와 물리주소의 관계

1F001F00

세그먼트값세그먼트값 1F2A51F2A5물리주소물리주소

세그먼트 레지스터값세그먼트 레지스터값 ×16×16 == 세그먼트 물리번지세그먼트 물리번지

++++02A502A5

02A502A5

세그먼트세그먼트베이스주소베이스주소 1F0001F000

11 FF 00 00 00

00 22 AA 55++

11 FF 22 AA 55

Page 39: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍

명령어 포인터의 동작명령어 포인터의 동작

F0000F0000

기억장치기억장치코드 세그먼트코드 세그먼트

F0001F0001

8086 CPU8086 CPUEU : F0201 EU : F0201 주소의 주소의 명령 실행명령 실행

×16×16

......F0204F0204

F0205F0205

F0206F0206

F0207F0207

CSCS

F000F000F0202F0202F0203F0203F0204F0204F0205F0205

BIUBIU

명명령령큐큐

F0206F0206IPIP

Page 40: 8086  프로세서의 구조 및 동작 방식

신라대학교 컴퓨터공학과 시스템 프로그래밍40

레지스터의 특성레지스터의 특성 직접 엑세스 가능한 레지스터

AX, BX, CX, DX AH, BH, CH, DH AL, BL, CL, DL SI, DI BP, SP DS, ES, SS

직접 수정이 가능한 플래그 CF, DF, IF