1 / 54

Lecture #3

Lecture #3. 인텔 프로세서의 내부구조 및 동작 방식. 컴퓨터 구조 (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

evania
Download Presentation

Lecture #3

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. Lecture #3 인텔 프로세서의 내부구조 및 동작 방식 시스템프로그래밍

  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) • 그외의 범용 프로세서 • Motorola 68000 Series • Power-PC Processor • SUN SPARC CPU • ALPHA CPU • Arm-core CPU 등 시스템프로그래밍

  6. 펜티엄 프로세서 • 내부적으로는 32비트 데이터 버스 • 외부적으로는 64비트 데이터 버스 • 수퍼스칼라(Sper-Sclar) 구조 시스템프로그래밍

  7. 주소 공간 기본 프로그램 실행 레지스터 232-1 8개의 32비트 레지스터 범용 레지스터 세그먼트 레지스터 6개의 16비트 레지스터 EFLAGS 레지스터 32 비트 EIP (명령어 포인터 레지스터) 32 비트 FPU 레지스터 8개의 80비트 레지스터 실수 포인터 데이터 레지스터 0 제어 레지스터 16 비트 16 비트 상태 레지스터 16 비트 태그 레지스터 연산 부호 레지스터 11 비트 48 비트 FPU 데이터 연산 포인터 레지스터 48 비트 FPU 명령어 포인터 레지스터 SSE 와 SSE2 레지스터 MMX 레지스터 MXSCR 레지스터 32 비트 8개의 64비트 레지스터 8개의 128비트 레지스터 MMX 레지스터 XMM 레지스터 32비트 프로세서의 기본 실행 환경 시스템프로그래밍

  8. Single-Instruction Multiple-Data(SIMD) • Beginning with the Pentium II and Pentium with Intel MMX technology processor families, four extensions have been introduced into the IA-32 architecture to permit IA-32 processors to perform single-instruction multiple-data (SIMD) operations • These extensions include the MMX technology, SSE extensions, SSE2 extensions, and SSE3 extensions • Each of these extensions provides a group of instructions that perform SIMD operations on packed integer and/or packed floating-point data elements contained in the 64-bit MMX or the 128-bit XMM registers. 시스템프로그래밍

  9. Single-Instruction Multiple-Data(SIMD) Pentium II Pentium with MMX Pentium III Pentium 4 Intel Xeon 시스템프로그래밍

  10. 기본 프로그램 실행 레지스터(16개) • 범용 레지스터(8개) : 연산항, 포인터 저장 • 세그먼트 레지스터 : 메모리 세그먼트 식별 • EFLAGS 레지스터 : 실행 되고 있는 프로그램 상태보고 및 응용 레벨로 제한된 프로세서를 제어 • EIP: 다음에 실행될 명령어를 주소를 저장 시스템프로그래밍

  11. 범용 레지스터의 특별한 사용 • EAX : 연산항과 결과에 대한 누산기 • EBX : DS 세그먼트의 데이터에 대한 포인터 • ECX : 문자열과 반복문에 대한 계수기 • EDX : 입출력에 대한 포인터 • ESI : 문자열 연산에 대한 출발항 또는 DS 레지스터가 가리키고 있는 세그먼트의 데이터에 대한 포인터 • EDI : 문자열 연산에 대한 목적항 또는 ES 레지스터가 가리키고 있는 세그먼트의 데이터에 대한 포인터 • ESP : 스택 포인터 • EBP : 스택에 있는 데이터에 대한 포인터 시스템프로그래밍

  12. 범용 레지스터 이름 31 7 8 0 16-bit 16 15 32-bit AH AL AX EAX BH BL EBX BX CH CL CX ECX DH DL DX EDX BP EBP SI ESI DI EDI SP ESP 시스템프로그래밍

  13. 코드 세그먼트 데이터 세그먼트 스택 세그먼트 CS DS SS ES FS GS 데이터 세그먼트 데이터 세그먼트 데이터 세그먼트 세그먼트 레지스터 시스템프로그래밍

  14. 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 ID VIP VIF AC VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 C F X ID FLAG (ID) X Virtual Interrupt Pending (VIP) X Virtual Interrupt Flag (VIF) X Alignment Check (AC) X Virtual-8085 Mode (VM) X Resume Flag (RF) X Nested Task (NT) X I/O Privilege Level (IOPL) X Overflow Flag (OF) C Direction Flag (IF) X Interrupt Enable Flag (IF) X Trap Flag (TF) S Sign Flag (SF) S Zero Flag (SF) S Auxiliary Carry Flag (AF) S Parity Flag (PF) S Carry Flag (CF) S 상태 (Status) Flag C 제어 (Control) Flag X 시스템 (System) Flag 예약 비트 현재 사용하지는 않는다. EFLAGS 레지스터 시스템프로그래밍

  15. 8086 프로세서 • 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) 시스템프로그래밍

  16. 8086 프로세서 구조 (1) 시스템프로그래밍

  17. 8086 프로세서 구조 (2) • 8086 프로세서 칩 구성 어드레스/ 세그먼트 정보 데이터/ 어드레스버스 논리마스커블 인터럽트 시스템프로그래밍

  18. 8086 프로세서를 이용한 시스템구성 시스템프로그래밍

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

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

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

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

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

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

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

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

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

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

  29. 8086 프로세서 명령어 (1) • 프로세서의 명령어 길이 • 명령어의 종류, 주소지정방식, 레지스터의 개수 등에 의해 결정 • 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 시스템프로그래밍

  30. 8086 프로세서 명령어 (2) • 8086 명령어 형태 명령어 코드 오퍼랜드 } 주소지정방식 레지스터 시스템프로그래밍

  31. 1 1 0 1 0 1 1 0 8086 프로세서 명령어 (3) • 8086 명령어 구성 예 7 0 명령어 코드(25=32) 4가지의 주소지정 방식 2개의 레지스터 명령어의 길이는 레지스터의 개수, 주소지정 방식의 종류,명령어의 종류에 따라 결정 시스템프로그래밍

  32. 1 1 0 1 0 1 1 0 8086 프로세서 명령어 (4) • 8086 명령어 구성 예 7 0 명령어 코드(25=32) 4주소지정방식 00=직접 01=베이스 10=인덱스 11=베이스+인덱스 } 시스템프로그래밍

  33. 1 1 0 1 0 1 1 0 8086 프로세서 명령어 (5) • 8086 명령어 구성 예 7 0 명령어 코드(25=32) 4주소지정방식 00=직접 01=베이스 10=인덱스 11=베이스+인덱스 } } 1=레지스터 A 0=레지스터 B 시스템프로그래밍

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

  35. 기억장치(2) • 64KB의 기억장치 주소 예 기억장치 바이트 0 0 기억된 내용 1 1 1 0 0 1 1 0 1 주기억장치 주 소 . . . . . . 바이트 N N . . . . . . 바이트65535 65535 시스템프로그래밍

  36. 기억장치(3) • 기억장치의 물리적 관리 방법 • 선형 기억장치 관리 • 주소를 선형으로 배열 • 논리주소 = 물리주소 • 세그먼트 기억장치 관리 • 기억장소를 세그먼트로 구분 • 논리주소≠물리주소 • 페이징,페이징/세그먼트 혼합방법 시스템프로그래밍

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

  38. 기억장치(5) • 선형 기억장치 관리(2) 시스템 관리자 프로그램 시스템 관리자 프로그램 시스템 관리자 데이터 시스템 관리자 데이터 . . . 프로그램1 프로그램1 프로그램2 프로그램2 기억장치 관리자 기억장치 시스템프로그래밍

  39. 기억장치(6) • 세그먼트 기억장치 관리 기계적 주소 논리적 주소 데이터 3 세그먼트 프로그램 세그먼트 주소 프로그램 1 세그먼트 프로 그램1 + 프로그램 2 세그먼트 데이터 1 세그먼트 데 이 터 2 데이터 세그먼트 주소 데이터 2 세그먼트 + 기억장치 시스템프로그래밍

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

  41. 8086 프로세서의 기억장치 모델(2) 시스템프로그래밍

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

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

  44. 레지스터 • 레지스터의 종류와 형태 • 세그먼트레지스터와 물리주소 • 논리주소와 물리주소 • 명령어 포인터의 동작 • 데이터의 표현 시스템프로그래밍

  45. 레지스터의 종류 • 16 bit 레지스터 14개 지원 • 그림 3.7 참조 • 데이터 레지스터 : 4개 • 인덱스 레지스터 : 2개 • 포인터 레지스터 : 2개 • 명령어 포인터 레지스터 : 1개 • 플래그 레지스터 : 1개 • 세그먼트 레지스터 : 4개 시스템프로그래밍

  46. 데이터 레지스터 32비트 16비트 8비트 8비트 EAX AX AH AL EBX BX BH BL ECX CH CL CX EDX DH DL DX 시스템프로그래밍

  47. 포인터와 인덱스 레지스터 32비트 16비트 ESP SP Stack Pointer BP EBP Base Pointer SI ESI Source Index EDI DI Destination Index 시스템프로그래밍

  48. 세그먼트 레지스터 Code Segment : CS Data Segment : DS Stack Segment : SS Extra Segment : ES 시스템프로그래밍

  49. 플래그 레지스터의 구성 상위 하위 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 × × × × × × × 오 버 플 로 우 트 랩 보 조 캐 리 패 리 티 디 렉 션 제 로 인 터 럽 트 인 에 이 블 사 인 캐 리 시스템프로그래밍

  50. 세그먼트레지스터와 물리주소 16비트 4비트 세그먼트 레지스터값 오프셋(offset)값 CPU로부터 출력되는 실제주소값 시스템프로그래밍

More Related