1 / 40

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

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)

Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍

  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) • Data Bus • Address Buss • Control Bud 신라대학교 컴퓨터공학과 시스템 프로그래밍

  3. 컴퓨터 구조(2) • 기본 구성 신라대학교 컴퓨터공학과 시스템 프로그래밍

  4. 프로세서(Processor) (1) • Intel x86 Microprocessors(표 3.1 참조) • 8086 • 8088 • 80186 • 80286 • 80386 • 80486 • Pentium-I • Pentium-II • Pentium-III 등 신라대학교 컴퓨터공학과 시스템 프로그래밍

  5. 프로세서(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) 신라대학교 컴퓨터공학과 시스템 프로그래밍

  6. 프로세서(Processor) (3) – 8086 Processor 구조 신라대학교 컴퓨터공학과 시스템 프로그래밍

  7. 프로세서(Processor) (4) • 8086 프로세서 칩 구성 어드레스/ 세그먼트 정보 데이터/ 어드레스버스 논리마스커블 인터럽트 신라대학교 컴퓨터공학과 시스템 프로그래밍

  8. 프로세서(Processor) (4) – 8086을 이용한 시스템구성 신라대학교 컴퓨터공학과 시스템 프로그래밍

  9. 프로세서의 메모리 판독 사이클(1) 주소버스 시 스 템 버 스 데이터버스 제어버스 1 2 기억장치 프로세서 RAM ROM 1단계: 판독요구신호 2단계: 주소전송 신라대학교 컴퓨터공학과 시스템 프로그래밍

  10. 프로세서의 메모리 판독 사이클(2) 주소버스 시 스 템 버 스 데이터버스 제어버스 4 3 기억장치 프로세서 RAM ROM 3단계: 데이터 전송 4단계: 판독완료신호 신라대학교 컴퓨터공학과 시스템 프로그래밍

  11. 프로세서의 메모리 기록 사이클(1) 주소버스 시 스 템 버 스 데이터버스 제어버스 1 2 기억장치 프로세서 RAM ROM 1단계: 기록요구신호 2단계: 주소전송 신라대학교 컴퓨터공학과 시스템 프로그래밍

  12. 프로세서의 메모리 기록 사이클(2) 주소버스 시 스 템 버 스 데이터버스 제어버스 4 3 기억장치 프로세서 RAM ROM 3단계: 데이터 전송 4단계: 기록완료신호 신라대학교 컴퓨터공학과 시스템 프로그래밍

  13. 8086 프로세서의 입출력 동작 • 8086 프로세서의 입출력 동작(I/O Operation) • I/O 주소를 이용하여 I/O 장치를 구별 • 메모리 접근과 동일하게 주소 버스 및 데이터 버스를 사용 • 메모리 접근과 구별하기 위해 별도의 신호(M/IO)를 이용 • High – Memory Access • Low – I/O Access • 기본적으로 메모리 판독/기록 사이클과 동일하게 동작 신라대학교 컴퓨터공학과 시스템 프로그래밍

  14. 프로세서의 명령어 실행 사이클(1) 명 령 어 인 출 명 령 어 해독 IP 주소→주소버스 명령어→명령어큐 IP+2→IP 명령어→EU 필요한 동작 판단 데 이 터 인 출 명령어 실행 연산항 주소에 대한 데이터 인출 →레지스터 명령어 실행 실행 결과→ 레지스터 혹은 주기억 신라대학교 컴퓨터공학과 시스템 프로그래밍

  15. 프로세서의 명령어 실행 사이클(2) • IP(Instruction Pointer) 레지스터에 의해 프로그램 실행 순서를 제어 • 명령어 인출 단계에서 현재 명령어의 길이를 더하여 다음 명령어의 주소를 저장 • 분기(branch) 명령어 처리: e.g) goto 1000 • 명령어 큐를 사용하여 크기가 일정하지 않은 명령어를 처리 • 8086 프로세서의 명령어 길이는 1~6 바이트 • 한 워드(2 바이트)보다 긴 명령어는 현재 인출된 명령어의 정보를 이용하여 명령어 인출을 반복 신라대학교 컴퓨터공학과 시스템 프로그래밍

  16. 프로세서의 명령어 실행 사이클(3) • 플래그 레지스터에 명령어 실행 결과에 대한 정보를 저장 • 계산 결과의 부호, zero, 올림수 등 • 8086 프로세서의 명령어 실행 예 • 그림 2.8 참조 신라대학교 컴퓨터공학과 시스템 프로그래밍

  17. 명령어 실행속도(1) • 명령어 사이클(Instruction Cycle) • 한 명령어를 인출하여 실행하는 시간 • 명령어 인출, 명령어 해독, 데이타 호출, 실행 시간을 모두 합친 시간 • fetch time(I-time) : 명령어 호출 시간 • execution time(E-time) : 명령어 해석하여 데이터 인출하고 연산 수행하는 시간 • instruction cycle = I-time + E-time • 명령어의 길이가 각기 다르기 때문에 명령어 사이클이 일정하지 않으며, 보통 4~200 system clock을 요구 신라대학교 컴퓨터공학과 시스템 프로그래밍

  18. 명령어 실행속도(2) • MIPS(Million Instruction Per Second) • 프로세서의 명령어 실행 속도를 나타내는 단위 • 단위 시간(1초)에 실행하는 명령어의 수를 백만 단위로 표현 • 시스템 클럭, 레지스터 크기, 데이터 버스 크기, 연산장치 크기, 명령어 크기 등에 의해 결정 • Mainframe Computer : 20 ~ 1000MIPS Microcomputer : 1 ~ 10 MIPS • 8086 프로세서 : 1 ~ 10 MIPS 신라대학교 컴퓨터공학과 시스템 프로그래밍

  19. 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 신라대학교 컴퓨터공학과 시스템 프로그래밍

  20. 기억장치(1) • 명령 및 데이터의 저장장소 • 기본소자: 비트(bit) • 기본 주소지정 단위: 바이트(byte) • 기본 정보 단위: 워드(word) • 주소(address), 위치(location), 내용값(contents) • 주소공간(Address Space) • 프로그램이 지정할 수 있는 단위 정보의 수 • 주소를 나타내기 위한 주소 비트의 수에 의해 결정 • 예: 주소 버스가 16 비트이면 216 = 64 KB 신라대학교 컴퓨터공학과 시스템 프로그래밍

  21. 기억장치(2) • 64KB의 기억장치 주소 예 기억장치 바이트 0 0 기억된 내용 1 1 1 0 0 1 1 0 1 주기억장치 주 소 . . . . . . 바이트 N N . . . . . . 바이트65535 65535 신라대학교 컴퓨터공학과 시스템 프로그래밍

  22. 기억장치(3) • 기억장치의 물리적 관리 방법 • 선형 기억장치 관리 • 주소를 선형으로 배열 • 논리주소 = 물리주소 • 세그먼트 기억장치 관리 • 기억장소를 세그먼트로 구분 • 논리주소≠물리주소 • 페이징,페이징/세그먼트 혼합방법 신라대학교 컴퓨터공학과 시스템 프로그래밍

  23. 기억장치(4) • 선형 기억장치 관리(1) 기억장치 논리적인 주소 0 1 2 . . . N . . . N 20 비트 cf) 모토롤라 M68000 프로세서 등에서 적용 신라대학교 컴퓨터공학과 시스템 프로그래밍

  24. 기억장치(5) • 선형 기억장치 관리(2) 시스템 관리자 프로그램 시스템 관리자 프로그램 시스템 관리자 데이터 시스템 관리자 데이터 . . . 프로그램1 프로그램1 프로그램2 프로그램2 기억장치 관리자 기억장치 신라대학교 컴퓨터공학과 시스템 프로그래밍

  25. 기억장치(6) • 세그먼트 기억장치 관리 기계적 주소 논리적 주소 데이터 3 세그먼트 프로그램 세그먼트 주소 프로그램 1 세그먼트 프로 그램1 + 프로그램 2 세그먼트 데이터 1 세그먼트 데 이 터 2 데이터 세그먼트 주소 데이터 2 세그먼트 + 기억장치 신라대학교 컴퓨터공학과 시스템 프로그래밍

  26. 8086 프로세서의 기억장치 모델(1) • 1 MB의 주소 공간을 지원 • 바이트 단위의 메모리 접근 • 20 bit 메모리 주소 버스를 사용  220 = 1 MB • 워드 또는 바이트 단위의 메모리 입출력 가능 • 16 bit 데이터 버스를 지원 • 하나의 메모리 접근 사이클에 워드 단위의 입출력을 수행하나 바이트 단위 접근을 위해 주소 뱅크 구조를 사용 • 그림 3.4 참조 • 기억장치의 워드 구성은 little-endian form 신라대학교 컴퓨터공학과 시스템 프로그래밍

  27. 8086 프로세서의 기억장치 모델(2) 신라대학교 컴퓨터공학과 시스템 프로그래밍

  28. 8086 프로세서의 기억장치 모델(3) • 세그먼트 기억장치 관리 기법을 사용 • 하나의 세그먼트는 64 KB 크기 • 명령어 주소 또는 데이터 주소를 나타내는 논리적 주소는 하나의 세그먼트 내에서의 오프셋(offset) 주소 • 16 bit로 표현 • 실제 기억장소 접근 시에 물리적 주소 계산 • 물리적 주소 = 세그먼트 시작 주소 + 논리적 주소 신라대학교 컴퓨터공학과 시스템 프로그래밍

  29. 8086 프로세서의 기억장치 모델(4) • 데이터 Read/Write 규칙 • 기억장치 주소:바이트단위, 홀/짝의 값 • 단어주소는 2씩 증가하며 짝수값 가짐 • N 번지 접근 시 1 단어에 접근하면 자동적으로 N, N+1 바이트에 접근 • N 번지의 긴 단어 접근 시에 4개의 바이트에 접근 • 기억장치에서의 단어 배열 • little-endian format의 단어 구성을 지원 • 레지스터에서 기억장치로 데이터를 입출력할 때에는 하위 바이트를 먼저 입출력하고 상위 바이트를 입출력한다 • 그림 3.6 참조 신라대학교 컴퓨터공학과 시스템 프로그래밍

  30. 레지스터 • 레지스터의 종류와 형태 • 세그먼트레지스터와 물리주소 • 논리주소와 물리주소 • 명령어 포인터의 동작 • 데이터의 표현 신라대학교 컴퓨터공학과 시스템 프로그래밍

  31. 레지스터의 종류 • 16 bit 레지스터 14개 지원 • 그림 3.7 참조 • 데이터 레지스터 : 4개 • 인덱스 레지스터 : 2개 • 포인터 레지스터 : 2개 • 명령어 포인터 레지스터 : 1개 • 플래그 레지스터 : 1개 • 세그먼트 레지스터 : 4개 신라대학교 컴퓨터공학과 시스템 프로그래밍

  32. 데이터 레지스터 32비트 16비트 8비트 8비트 EAX AX AH AL EBX BX BH BL ECX CH CL CX EDX DH DL DX 신라대학교 컴퓨터공학과 시스템 프로그래밍

  33. 포인터와 인덱스 레지스터 32비트 16비트 ESP SP Stack Pointer BP EBP Base Pointer SI ESI Source Index EDI DI Destination Index 신라대학교 컴퓨터공학과 시스템 프로그래밍

  34. 세그먼트 레지스터 Code Segment : CS Data Segment : DS Stack Segment : SS Extra Segment : ES 신라대학교 컴퓨터공학과 시스템 프로그래밍

  35. 플래그 레지스터의 구성 상위 하위 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 O D S Z A P C I T × × × × × × × 오 버 플 로 우 트 랩 보 조 캐 리 패 리 티 디 렉 션 제 로 인 터 럽 트 인 에 이 블 사 인 캐 리 신라대학교 컴퓨터공학과 시스템 프로그래밍

  36. 세그먼트레지스터와 물리주소 16비트 4비트 세그먼트 레지스터값 오프셋(offset)값 CPU로부터 출력되는 실제주소값 신라대학교 컴퓨터공학과 시스템 프로그래밍

  37. 메모리 공간에서 세그먼트 영역 FFFFFH DS ×16 EFFFFH E000 데이터 세그먼트 E0000H CS C3FEFH ×16 코드 세그먼트 B3FF B3FF0H SS 7D260H 스텍 세그먼트 ×16 6D26 6D260H 6288FH ES 엑스트라 세그먼트 ×16 52B90H 52B9 00000H 신라대학교 컴퓨터공학과 시스템 프로그래밍

  38. 논리주소와 물리주소의 관계 1F2A5 물리주소 세그먼트값 세그먼트 베이스주소 1F000 1F00 세그먼트 레지스터값×16 =세그먼트 물리번지 02A5 + 02A5 1 F 0 0 0 2 0 A 5 + 1 F 2 A 5 신라대학교 컴퓨터공학과 시스템 프로그래밍

  39. 명령어 포인터의 동작 8086 CPU 기억장치 코드 세그먼트 EU : F0201 주소의 명령 실행 F0000 ×16 F0001 CS F0202 F0203 F0204 F0205 F000 . . . 명 령 큐 F0204 F0205 IP F0206 F0206 F0207 BIU 신라대학교 컴퓨터공학과 시스템 프로그래밍

  40. 레지스터의 특성 • 직접 엑세스 가능한 레지스터 • AX, BX, CX, DX • AH, BH, CH, DH • AL, BL, CL, DL • SI, DI • BP, SP • DS, ES, SS • 직접 수정이 가능한 플래그 • CF, DF, IF 신라대학교 컴퓨터공학과 시스템 프로그래밍

More Related