1 / 36

C P U(Central Processing Unit)

C P U(Central Processing Unit). 2006081008 장필구 2006081025 나대로. Contents. 1. CPU(Central Processing Unit) 의 개요. 2. 명령어 집합. - 명령어 형식 - 명령어 종류 - 명령어 지정 방식. 3. 레지스터 (Register). 4. 마 무 리 . CPU 는 왜 필요하지 ?. 폰 노이만형 컴퓨터방식을 따라 프로그램이 필요. 작성된 프로그램을 해석 ( 컴파일러 ). 2 진수 명령어들 고속처리→ 실행.

saskia
Download Presentation

C P U(Central Processing Unit)

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. C P U(Central Processing Unit) 2006081008장필구 2006081025 나대로

  2. Contents 1. CPU(Central Processing Unit)의 개요 2. 명령어 집합 - 명령어 형식 - 명령어 종류 - 명령어 지정 방식 3. 레지스터(Register) 4. 마무 리

  3. CPU는 왜 필요하지? 폰 노이만형 컴퓨터방식을 따라 프로그램이 필요 작성된 프로그램을 해석 (컴파일러) 2진수 명령어들 고속처리→ 실행 2진수의 기계어로 이루어진 목적파일 생성 아하! 이래서 필요하구나! 2진수의 명령어들 실행

  4. CPU의 구성 요소 • 병목현상(Bottle Neck) • 전통적인 컴퓨터 설계기법에서, CPU 와 기억장치 사이의 통로에 정보가 집중됨으로써 야기되는 작업 지연 현상. 버스 통로 Control Unit (PC, IR) Registers (MAR, MBR) Main Memory BUS Interface Unit ALU

  5. *PC(Program Counter) 프로그램카운터로 CPU내의 제어장치 레지스터에 속합니다. 이 PC는 CPU에서 다음에 실행할 명령어의 번지를 기억합니다. *IR(Instruction Resister) 명령레지스터로 CPU가 현재 수행하고 있는 명령어를 기억합니다. *Decoder 해독기로 제어장치에 속해 있으며, CPU내로 들어오는 명령어를 실제로 판독가능한 신호로 해석하는 레지스터입니다. *Encoder 부호기로써디코더로부터 해독된 신호를 각 장치에 지시하기 위해 각 장치로 신호를 보내주는 장치입니다. *MAR(Memory Address Resister) 기억장치로 부터 입/출력되는 데이터의 주소를 기억하고 있는 레지스터입니다. *MBR(Memory Buffer Resiter) 기억장치로 부터 입/출력되는 데이터 자체를 기억하고 있는 레지스터입니다 CPU의 구성 요소

  6. 캐시 -이번에 나온 i7 CPU의캐시 구성도 이다. -캐시 메모리를 CPU 안에 내장 하고 있으며 -가장 빠르고 가장 빈도 높은 데이터를 가진 L1 캐시메모리가 제일 가까이 있다.

  7. CPU의 내부 구조 Memory Device MAR PC MBR Rx IR ALU IR0 IRZ c0 cn ------------- IRn Control Unit

  8. Contents 1. CPU(Central Processing Unit)의 개요 2. 명령어 집합 - 명령어 형식 - 명령어 종류 - 명령어 지정 방식 3. 레지스터(Register) 4. 마무 리

  9. 명령어 집합 주기억 장치 (프로그램) ➁ ➀ • 주기억장치에 있는 명령을 꺼내는 작업을 패치(fetch cycle) • 명령어가 CPU 내에서 실행 될 수 있도록 명령을 명령 레지스터까지 가져와 준비하는 단계 명령 레지스터 제어 계수기 명령 코드부 주소부 ➆ ➂ ➅ 명령 해독기 번지 해독기 CPU ➃ 부호기 ➄ 인출 주기(Fetch Cycle)

  10. 명령어 집합 CPU • 실행 주기(Execution Cycle) 번지해독기 전부 CPU 안에서 일어나는 일들이다. 제어장치 ➀ • 꺼내어진 명령을 해석하여 실행(execution cycle) • 명령어가 CPU 내에서 실행될 수 있도록 명령을 명령 레지스터까지 가져와 준비하는 단계 • (데이터) 주기억장치 명령 코드 주소부 명령어 레지스터 누산기 연산장치 ➃ ➄ 가산기 ➁ ➂ 기억레지스터

  11. 명령어 형식 [EX] ADDA, B MOV X, R1 명령부(Operation code) 번지부(Operand) 레지스터 (Register) 주소부 명령부

  12. 명령어 형식 • 명령어의 동작 코드

  13. 명령어 형식 OP code(Operation Code) [EX] PUSH A SP(TOP) ← A PUSH B SP(TOP) ← B ADD SP(TOP) ← (A+B) POP X M[X] ← SP(TOP) 0주소 명령어(0 Address Instruction)

  14. 명령어 형식 [EX] X = (6 + 7) * 5 LOAD 6 AC ADD 7 AC STORE X AC MUL 5 AC STORE T AC OP code 주소1 1주소 명령어(1 Address Instruction)

  15. 명령어 형식 [EX] X = (6 + 7) * 5 MOV R1, 6 ADD R1, 7 MUL R1, 5 MOV X, R1 OP code 주소1 주소2 2주소 명령어(2 Address Instruction)

  16. 명령어 형식 OP code 주소1 주소2 주소3 [EX] X = (6 + 7) * 5 ADD R1, 6, 7 MUL X, R1, 5 3주소 명령어(3 Address Instruction)

  17. 명령어 주소 지정 방식 절대 주소(absolute Address) - 주소부분의 값이 고유의 번지로 지정된 형식 - 기억공간의 효율 저하 상대주소(relative Address) - 직접 자료에 접근 할 수 없음 - 모든 주소는 어느 기본주소(base address)에 상대적으로 표시되어 유효 주소를 구하는 방법 - 명령어 주소 비트를 절약 할 수 있어절대 주소보다 기억공간의 효율 좋은반면 사용시 절대주소로 번역해야 하는 단점이 있다. 정의 - 주소 지정 방식(addressing mode)란주기억장치의 유효 주소(effective address), 즉 자료를 찾을 수 있는 주소를 계산 하는 방법을 말한다.

  18. 명령어 주소 지정 방식 OP code 동작 코드 실제 데이터 -오퍼랜드(Operand)는 실질적 명령어 내에 포함 즉, “Operand = A” -상수로 취급 -장점 : 기억장치에 접근 할 필요 없어 기억 사이클 하나를 줄 일 수 있다. -사용되는 경우 : 일정한 값으로 레지스터를 초기화 할때 유용 즉시 주소 지정 방식 (Immediate Addressing Mode)

  19. 명령어 주소 지정 방식 operand Memory OP code Address(100번지) 1st 실제데이터(500) 100 번지 • 기억장치 상의 주소와 프로그램 상의 주소가 일치 • 주소를 표현하는데 많은 비트를 필요로 하므로 합리적이지 못하다. 직접 주소 지정 방식 (Direct Addressing Mode)

  20. 명령어 주소 지정 방식 operand Memory I OP code Address(100번지) I = 0 : 직접주소 방식 I = 1 : 간접주소 방식 1st 주소번지 500 2nd 100번지 실제데이터(700) 500번지 • 직접 주소 방식의 주소 지정 공간이 제한되는 문제를 보완하기 위해 등장 • 참조 방식을 취함 • 단점 : 두 번 기억 장치를 참조 해야 하는 단점이 있다. 간접 주소 지정 방식 (Indirect Addressing Mode)

  21. 명령어 주소 지정 방식 Register OP code Address R 실제 데이터 • 직접 주소 지정 방식과 유사 즉, 해당 레지스터 안에 실제 데이터가 기억 되어있다. • 장점 : 매우 빠른 속도를 가지고 있기에 실행 시간을 단축 시킬 수 있다. 레지스터 주소 지정 방식 (Register Addressing Mode)

  22. 명령어 주소 지정 방식 OP code RR(100) Memory 500번지 주소 번지 700 100번지 Register 700 실제데이터(1500) • 간접 주소 지정 방식과 유사 즉, 피연산자를 통해 실제 데이터가 들어있는 레지스터를 찾아간다. 레지스터 간접 주소 지정 방식 (Register Indirect Addressing Mode)

  23. 명령어 주소 지정 방식 Memory OP code d 유효주소 + 실제데이터 nn + d (515) nn = 500 nn Program counter • 피연산자의 주소는 PC에 따라서 지정 • PC를베이스 레지스터로 간주하며 현재 명령어의 주소가 주소 필드의 값과 합해져서 유효 주소(Effective Address)를 얻는다. • 주소 필드의 값은 2의 보수로 다루어진다. 상대 주소 지정 방식 (Relative Addressing Mode)

  24. 명령어 주소 지정 방식 Memory OP code Base register 변위 시작 주소mm(300) 변위값nn(15) + 실제데이터(500) mm + nn (315번지) • 베이스 레지스터(시작점)라는 레지스터를 이용하여 그 내용을 기준 주소로 사용 하는 방식 • 인덱스 주소 방식과 유사하다. • 명령어 주소 부분은 베이스 주소로 부터 상대적인 변위가 된다. 베이스레지스터 주소 지정 방식 (Base Register Addressing Mode)

  25. 명령어 주소 지정 방식 operand Memory OP code Ix d 변위값d=50 유효주소 실제데이터(500) + nn nn + d (350번지) Index register nn=300 • - 베이스 레지스터 주소 지정 방식의 반대 • 인덱싱은 인덱스 레지스터가 있어서 해당 내용과 메모리 주소 레지스터(MAR)의 값을 필요할 때마다 더하여 피연산자를 참조한다. • 오퍼랜드 부분이 지정하는 인덱스 레지스터의 번호와 상수값, 즉 변위로 나뉘어 있다. 인덱스 레지스터 주소 지정 방식 (Indexed Register Addressing Mode)

  26. 명령어 주소 지정 방식 • ◇완전 주소 • -정보가 데이터 또는 주소이거나 구별하지 않고 그 기억된 장소에 직접 매핑 시킬 수 있는 완전한 주소 • -단점 : 가장 많은 비트 수를 필요 2n 워드일 때 n개의 비트 필요 • ◇ 약식 주소 • -주소의 일부분 생략 • -계산에 의한 주소는 대부분 약식 주소에 속함 • ◇ 생략 주소 • -주소를 구체적으로 나타내지 않아도 원하는 정보가 기억된 곳을 알 수 있을 때 사용 • -스택, 큐가 있다. • -장점 : 명령어의 길이 축소 • ◇ 데이터 자신 • -주소를 위해 별도의 비트가 필요 없음 • -스스로 표현 위해 상당한 수의 비트 필요 데이터주소의 표현 방식

  27. 명령어 주소 지정 방식 [EX] 2 * 3 + 4 / 2 중위표기 방법을 후위표기방식으로 변경 2 3 * 4 2 / + • 스택 포인터는 푸시나 팝이 일어 날 때마다 자동으로 증가 또는 감소 • 위의 이유로 프로세서는 주소를 명시 할 필요 없이 스택 사용 가능 Stack pointer 2 Stack pointer Stack pointer 100 100 100 3 4 4 2 2 2 6 6 6 6 8 주소 1000 주소 1000 주소 1000 4 2 3 * 2 / + 100 100 100 1001 1001 1001 22 322 22 1002 1002 1002 300 30 1003 1003 1003 10 1004 1004 1004 b) ADD(+) 연산 a) MUL(*) 연산 스택(Stack) 주소 지정 방식

  28. Contents 1. CPU(Central Processing Unit)의 개요 2. 명령어 집합 - 명령어 형식 - 명령어 종류 - 명령어 지정 방식 3. 레지스터(Register) 4. 마무 리

  29. 레지스터(Register) 레지스터 범용레지스터 (GPR) 전용레지스터 (SPR) CPU에 필요한 작은 Data의 임시저장 공간 연산 처리 및 번지지정을 도와줌 CPU 내부에는 각 용도에 맞는 다양한 레지스터가 존재

  30. 범용 레지스터(General Purpose Register) Working Register Scratch Pad Register CPU내에서 생성하는 data를 보관 범용레지스터 (GPR) Accumulator의 역할 특정 주소 지정 방식에서 주소를 지정 여러가지 연산을 할 수 있음

  31. 전용 레지스터(Special Purpose Register) 1) 명령어 레지스터 4) 상태 레지스터 2) 메모리 지정 레지스터 3) 스택 레지스터 GPR은 성능 향상을 고려하는데 비해 대부분 SPR은 반드시 필요로 하는 용도로 사용.

  32. 명령어 레지스터(IR : Instruction Register) Instruction Register는 명령어을 수행하기 위해 잠시 정보를 보관하고 있는 레지스터 OP-code 피연산자(X) 피연산자(Y) 동작코드에는 덧셈,뺄셈,분기 등의 동작코드를 가지고 있다. 피연산자(X)는 주소지정모드로 동작하며, 피연산자(Y)는 해당모드에 필요한 주소값을 가지고 있다.

  33. 메모리 지정 레지스터 메모리 지정 레지스터에는 메모리 주소 레지스터, 인덱스 레지스터, 세그먼트 레지스터, 메모리 버퍼 레지스터, 프로그램 카운터 등이 있다. MAR - CPU가 기억장치의 주소를 참조하는 데 반드시 필요한 레지스터 MBR - 실질적으로 CPU가 주기억장치주소를 참조하는 레지스터 Index Register - 데이터를 비교하거나 전송하는 명령에서 사용됨 SI(Source Index): Data의 시작지 DI(Destination Index): Data의 목적지 Segment Register - 프로그램의 크기가 주기억장치보다 클 때 프로그램을 한 묶음으로 쪼갠 영역

  34. 스택 레지스터(Stack Register) Stack Register는 스택 및 데이터 메모리를 관리 • 이전에 하던 작업의 내용과 그 상태를 보존을 위한 • 유지영역의 기능을 가진다. • (Stack Pointer) • 가장 최근에 Stack에 들어온 데이터를 가리킴 (Top) • (Base Pointer, Frame Pointer) • 현재 사용 중인 Stack의 바닥을 가리킴 (Bottom)

  35. 상태 레지스터(Status Register) Status Register는 CPU의 다음 동작의 기준을 정하기 위해 연산의 상태를 저장하고 있다. • (Carry Flag) - 8 + 7 = 15 여기서 ‘1’이 세트 • (Zero Flag) - 8 – 8 = 0 여기서 값이 ‘0’이면 ‘1’이세트 • (Sign Flag) - 5 – 8 = -3 이처럼 부호값(Sign)있을때 ‘1’이 세트 • (Overflow Flag) - 2 – 5 = -3결과 값이 범위를 벗어날때‘1’이 세트 • Status Register에는 Carry Flag , Zero Flag , Sign Flag , • Overflow Flag 등이 있다.

  36. Thank You !

More Related