Transcript 전산일반 제 5 장
I am Computer 5장 CPU 5.1 논리연산과 논리회로 5.2 CPU의 구성과 동작 5.3 명령어의 처리방식 5.4 CPU의 종류 컴퓨터의 기본 구조 입력장치 CPU 주기억장치 저장장치 출력장치 I am Computer 저장장치 입력장치 CPU (중앙처리장치) 주기억장치 출력장치 CPU의 기본 구조 CPU (Central Processing Unit) 중앙처리장치 데이터의 처리를 담당 대수의 사칙연산 및 논리연산 메모리는 데이터 및 명령을 저장 명령 및 데이터의 이동(메모리 >> CPU) 프로그램 카운터, 명령 레지스터, 명령 디코더, 버스 명령의 수행(연산부) 레지스터 뱅크, 멀티플렉서, ALU, 쉬프터 등 모든 CPU의 부분들은 논리회로로 구성 논리연산 : 논리회로 사칙연산 : 논리연산으로 구성 >> 논리회로 이외의 모든 CPU 구성부들은 논리회로로 구성됨 I am Computer CPU의 기본 구조 주 메모리 외부버스 명령 디코더 명령 레지스터 프로그램 카운터 메모리 인터페이스 내부버스 연산부 CPU 레지스터(뱅크) 디코더 MUX-A MUX-B 연산장치(ALU) 쉬프터(shifter) I am Computer I am Computer 5장 CPU 5.1 논리연산과 논리회로 - 논리회로 -진리표, 논리식, 조합 논리회로 - 순서 논리회로 - 논리회로와 IC, 컴퓨터 논리회로 ‘0’, ‘1’의 전기적 표현 논리회로 : 논리연산을 수행하는 전기 장치 참(1), 거짓(0)이 전기적으로 표현되어야 함 전압(V) 거짓 0 없다 0 시간 전압(V) 참 1 있다 1, 3.3, 5 0 시간 I am Computer 논리연산과 논리회로 논리회로 논리회로 전기적 입력(0,1)에 대하여 논리연산의 결과를 전기(0,1) 적으로 출력 논리합 회로 : OR 회로(OR gate) 논리곱 회로 : AND 회로(AND gate) 논리부정 회로 : NOT 회로(NOT gate) 논리식과 논리회로 논리식은 피연산자와 논리연산으로 구성됨 논리회로는 피연산자(0, 1 또는 전압의 있고 없음)를 입 력으로 갖는 논리회로들의 조합으로 구성됨 논리식과 논리회로는 1:1의 대응 가능 I am Computer 논리연산과 논리회로 논리회로 X Z OR Y X Z AND Y NOT I am Computer X Y 논리연산과 논리회로 진리표, 논리식, 조합 논리회로 CPU의 구성부 레지스터, 쉬프터, 멀티플렉서, 연산장치 등 진리표로 기능이 정의 되고, 논리회로로 구현된다. 설계과정 BCD 디코더(decoder)를 이용하여 설계과정을 살펴본다. 장치의 기능 I am Computer 진리표 논리식 논리회로 논리연산과 논리회로 진리표, 논리식, 조합 논리회로 기능의 분석 LED 숫자판 : 0 ~ 9까지의 숫자 표시 1 : on a f b g e c d 0 : off I am Computer 논리연산과 논리회로 진리표, 논리식, 조합 논리회로 기능의 분석 BCD 코드 : 0~9까지의 숫자를 4 비트로 표시 (1010)b 부터는 사용하지 않는다. 4 비트 입력에 따라 7개의 LED를 on/off 입력이 4, 출력이 7인 진리표로 구성가능 a X Y BCD Z 디코더 W I am Computer a b c d e f g f g e b c d 논리연산과 논리회로 진리표, 논리식, 조합 논리회로 진리표 작성 입력 LEDs 10 진 수 X Y Z W a b c d e f g 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 0 0 2 0 0 1 0 1 1 0 1 1 0 1 3 0 0 1 1 1 1 1 1 0 0 1 4 0 1 0 0 0 1 1 0 0 1 1 5 0 1 0 1 1 0 1 1 0 1 1 6 0 1 1 0 1 0 1 1 1 1 1 7 0 1 1 1 1 1 1 0 0 0 0 8 1 0 0 0 1 1 1 1 1 1 1 9 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 기 타 I am Computer 논리연산과 논리회로 진리표, 논리식, 조합 논리회로 논리식의 생성 하나의 진리표에 에 다수개의 논리식 존재 카르노프맵(karnaugh map) 이중 가장 간단한 논리식을 찾는 방법 논리식의 축약이 가능 a = XZ + XYW + YZW + XYZ b = XY + XZW + XZW + XYZ c = XY + XW + YZW + XYZ d = XZW + XYZ + YZW + XYZ + XYZW e = XZW + YZW f = XYZ + XZW + XYW + XYZ g = XZW + XYZ + XYZ + XYZ I am Computer 논리연산과 논리회로 진리표, 논리식, 조합 논리회로 논리회로의 생성 논리식은 논리회로로 1:1 대응됨 이때 연산의 우선순위가 사용됨 : 논리부정, 논리곱, 논리합 e번 LED에 대한 논리회로 : e = XZW + YZW X Z W e Y Z W 나머지 LED에 대한 논리회로도 같은 방법으로 논리식에 해당하는 조합논리회로 생성 I am Computer 논리연산과 논리회로 순서 논리회로 D 플립플롭 1 비트 정보를 저장할 수 있다. 클록에 의해 기억되는 순간이 결정 A 기억 B C Q D C : 클럭 D 플립플롭 Q D Q C : 클럭 I am Computer Q 논리연산과 논리회로 순서 논리회로 조합논리회로 : 저장 능력이 없음(memoryless) 현재의 입력이 현재의 출력 결정 순서논리회로 : 저장 능력이 있음 현재의 입력 및 과거의 입력이 현재의 출력을 결정 플립플롭과 조합논리회로로 구성 입력 출력 조합 논리회로 (combinational circuit) 플립플롭 클록 : clock I am Computer 논리연산과 논리회로 논리회로, IC, 컴퓨터 컴퓨터 > IC > 논리회로 > 저항, 캐패시터, 트랜지스터 I am Computer 커패시터 트랜지스터 저항 논리연산과 논리회로 I am Computer 5장 CPU 5.2 CPU의 구성과 동작 - CPU의 구성 - CPU의 동작 - CPU의 동작과 프로그램 CPU의 개념적 구성 및 동작 명령 레지스터에 현재 실행할 명령을 복사 프로그램 카운터는 현재 실행될 명령의 어드레스를 지시 메모리의 해당 어드레스로부터 명령을 명령 레지스터로 이동 명령의 해석 명령을 해석하여 데이터를 메모리로부터 레지스터 이동 연산을 수행하기 위해 필요한 제어신호 생성 명령의 수행 및 저장 2)에서 얻어진 데이터 및 제어신호를 이용하여 명령을 수행 수행된 결과를 레지스터뱅크 또는 주 메모리에 기억시킨다 I am Computer CPU의 구성과 동작 CPU의 구성 주 메모리 외부버스 명령 디코더 2 명령 레지스터 1 프로그램 카운터 1 메모리 인터페이스 내부버스 레지스터(뱅크) 연산부 2 디코더 CPU MUX-A 3 MUX-B 연산장치(ALU) 쉬프터(shifter) I am Computer CPU의 구성과 동작 레지스터 및 레지스터 뱅크 CPU에서 처리될 데이터는 임시로 CPU내에 저장 N 비트 레지스터는 N 개의 플립플롭으로 구성 N 비트 저장 가능 load로 입력 조절 R0 load 입력 8 비트 8 레지스터 n 출력 8 R1 n R2 n n load 0 load 1 레지스터 뱅크 load 2 load 3 4 N 비트 레지스터 C : 클럭 C : 클럭 I am Computer R3 N 비트 입력 CPU의 구성과 동작 연산의 분석 R0 = R1 + R2 레지스터 뱅크에 있는 레지스터들 중 R1과 R2를 선택 멀티플렉서 선택된 레지스터에 보관된 값의 덧셈을 수행 연산장치 그 결과를 레지스터 뱅크의 레지스터들 중 R0에 저장 디코더 I am Computer CPU의 구성과 동작 M 비트 멀티플렉서 M 비트 입력 중 1 비트만 선택하여 출력 선택을 위해 log2M 비트의 선택 비트(A, B) 필요 R0 R1 R2 R3 N S0 N N M (N 비트) N 멀티플렉서 M Load S1 (N 비트) N 레지스터 뱅크 MN 비트 레지스터 C : 클럭 A 멀티플렉서 멀티플렉서 MUX-A MUX-B N 비트 MP N 비트 N 비트 입력 I am Computer B 출력 출력 CPU의 구성과 동작 연산장치 ALU : arithmetic logic unit 대수 및 논리연산을 수행하는 장치 덧셈기, 곱셈기, 나눗셈기, 논리합, 곱, 부정 등으로 구성 모든 연산은 논리식으로 치환되고 논리식은 앞서의 설계 방법에 따라 논리회로로 구성됨 덧셈기의 예 덧셈기는 한 비트씩 볼 때 진리표로 정의 가능 이를 논리회로로 구성 한 비트 덧셈기 N개를 사용하여 N 비트 덧셈기 구성 I am Computer CPU의 구성과 동작 한 비트 덧셈기에 대한 진리표 X Y CL S CH 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 I am Computer CPU의 구성과 동작 4비트 덧셈기 X3 C3 Y3 1 비트 덧셈기 S3 I am Computer X2 C2 Y2 1 비트 덧셈기 S2 X1 C1 Y1 1 비트 덧셈기 S1 X0 C0 Y0 1 비트 덧셈기 0 S0 CPU의 구성과 동작 연산부의 구성 나머지 연산장치도 마찬가지로 구성 가능 ALU는 여러 연산을 수행하므로 선택 비트(F) 필요 연산의 종류가 L개 일 때 log2 L 비트 필요 M (N 비트) M 레지스터 뱅크 멀티플렉서 멀티플렉서 MUX-A MUX-B Load M N 비트 레지스터 C : 클럭 A N 비트 N 비트 N 비트 출력 출력 입력 연산장치 ALU 출력 I am Computer B F N 비트 CPU의 구성과 동작 디코더(Decoder) 연산기의 출력을 특정 레지스터에만 공급 해당 레지스터의 load만 ‘0’, 나머지는 ‘0’ 선택비트(D) 필요 : log2 M (M은 레지스터의 수) D2 D1 D0 L(R0) L(R1) L(R2) L(R3) L(R4) L(R5) L(6) L(R7) 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 I am Computer CPU의 구성과 동작 디코더를 포함한 연산부의 구성 M (N 비트) Load M D 디코더 레지스터 뱅크 M N 비트 레지스터 C : 클럭 A 멀티플렉서 멀티플렉서 MUX-A MUX-B N 비트 N 비트 N 비트 입력 출력 출력 연산장치 ALU 출력 I am Computer B F N 비트 CPU의 구성과 동작 쉬프터와 카운터 쉬프터(shifter) (0010)b =2를 1 비트만큼 오른쪽으로 이동(shift) : (0001)b =1 (0010)b =2를 1 비트만큼 왼쪽으로 이동(shift) : (0100)b =4 효율적인 연산 가능 카운터(counter) 시 간 C3 C2 C1 C0 10 진수 T 0 0 1 0 2 T+1 0 0 1 1 3 T+2 0 1 0 0 4 I am Computer CPU의 구성과 동작 쉬프터를 포함한 연산부의 구성 M (N 비트) Loa d D 디코더 M 레지스터 뱅크 M N 비트 레지스터 C : 클럭 A 멀티플렉서 멀티프렉서 MUX-A MUX-B N 비트 N 비트 N 비트 입력 B 출력 출력 연산장치 F ALU 쉬프터 (shifter) S 출력 I am Computer N 비트 CPU의 구성과 동작 간단한 CPU의 예 : 하드웨어 구성 멀티플렉스 A, B 연산장치(ALU) 디코더 쉬프터 A2 A1 A0 선택 F3 F1 F0 연산 S2 S1 S0 동작 D2 D1 D0 선택 0 0 0 R0 0 0 0 + 0 0 0 NOP 0 0 0 R0 0 0 1 R1 0 0 1 - 0 0 1 R1 0 0 1 R1 0 1 0 R2 0 1 0 0 1 0 R2 0 1 0 R2 0 1 1 R3 0 1 1 0 1 1 R3 0 1 1 R3 1 0 0 R4 1 0 0 OR 1 0 0 L1 1 0 0 R4 1 0 1 R5 1 0 1 AND 1 0 1 L2 1 0 1 R5 1 1 0 R6 1 1 0 NOT 1 1 0 L3 1 1 0 R6 1 1 1 X 1 1 1 NOP 1 1 1 NOP 1 1 1 NOP NOP : No operation I am Computer CPU의 구성과 동작 간단한 CPU의 예 : 명령어 구성 연 산 A B F S D Opcode R0 = R1 + R2 001 010 001 000 000 001010001000000 R6 = (R2 – R4)2 010 100 010 001 110 010100010001110 R6 = R5 AND R4 101 100 110 000 110 101100110000110 R0 = R3 011 111 000 000 000 011111000000000 명령 또한 ‘0’, ‘1’ 형태의 선택비트로 H/W에 입력 I am Computer CPU의 구성과 동작 CPU의 동작 음성신호 정지영상 데이터 사용자의 요구사항 수치화 (샘플링) 동영상 숫자 이진수 변환 문자 이진 코드 01010011 처리방식 I am Computer 알고리즘 연산 컴퓨터 명령 ‘0’/’1’ CPU의 구성과 동작 CPU의 동작과 프로그램 알고리즘 요구사항을 연산의 형태로 바꾸는 작업 프로그래밍 연산을 컴퓨터가 이해하는 언어로 바꾸는 과정 앞장에서는 ‘0’, ‘1’의 조합 프로그램 언어로 변환된 연산의 집합 프로그램 언어 언어 그 자체 I am Computer CPU의 구성과 동작 CPU의 동작과 프로그램 프로그램 언어 기계어 연산부 제어신호의 집합 : 0, 1 로 구성 컴퓨터가 이해하는 궁극적인 언어 프로그래밍 및 해독이 어렵다 어셈블리 언어 기계어와 1:1 대응관계가 성립하는 심벌 어셈블러가 기계어로 변환 기계어에 비하여 프로그래밍 및 해독이 쉽다 고급언어 : Fortran, C/C++, Pascal R0 = R1 + R2 ADD R1 R2 R0 001010001000000 R6 = R5 AND R4 ADD R5 R4 R6 101100110000110 I am Computer CPU의 구성과 동작 I am Computer 5장 CPU 5.3 명령어의 처리방식 - 메모리와 CPU의 결합 -명령어의 처리단계 - CPU와 명령어 세트 메모리와 CPU의 결합 컴퓨터와 탁상용 계산기의 차이 “1부터 100까지의 수 중 짝수의 합을 구하라” 1. 2. 3. 4. 5. 6. 대수 대수 논리 대수 대수 논리 i=1 Sum = 0 i/2의 나머지가 0이면 4)를 수행, 아니면 5)를 수행 sum = sum + i i=i+1 i가 100이하면 3)-6) 반복, 아니면 종료 연산과정을 메모리에 저장하고 이를 순차적으로 실행 1945년 폰 노이만(Von Neuman) 보고서 프로그램 내장방식의 컴퓨터 제안 현대의 모든 컴퓨터는 프로그램 내장방식의 컴퓨터임 I am Computer 명령어의 처리방식 메모리와 CPU의 결합 폰 노이만형 프로그램 내장방식의 컴퓨터 구조 보조기억장치 입력장치 CPU (중앙처리장치) 출력장치 주기억장치 메모리 : ‘0’, ‘1’을 저장하는 전기 장치 일반적으로 8비트(1 바이트) 단위로 어드레스싱 I am Computer 명령어의 처리방식 메모리와 CPU의 결합 ADD R0 R1 R2 ADD M[ADDR1] R1 M[ADDR2] 어드레스 내 용 참 고 ADD M[ADDR1] R1 M[ADDR2] 명 령 10 11 ADDR1 데이터 ADDR2 데이터 I am Computer 명령어의 처리방식 명령어 처리의 단계 명령어 처리의 단계 1) 페치(fetch) 명령 카운터가 지시하는 어드레스로부터 명령을 명령 레지스터로 이동 2) 해석(decode) 명령으로부터 제어신호 생성 명령에 포함된 주소의 데이터를 레지스터로 이동 3) 실행 및 저장(execute/store) 제어신호와 레지스터의 데이터를 이용하여 연산을 수행 결과를 주 메모리에 저장한다 다음 명령을 위해 명령 카운터의 값이 증가 I am Computer 명령어의 처리방식 명령어 처리의 단계 CPU 명령 (1) 명령 레지스터 명령 디코더 A, B, F, S, D (2) CPU의 일부분 데이터 (2) (그림 5-27) 실행 (3) 메모리 프로그램 카운터 명령의 어드레스 (1) I am Computer 명령어의 처리방식 CPU와 명령어 세트 명령(instruction) 연산(operation)부와 피연산자(operand)로 구성 ADD M[ADDR1] R1 M[ADDR2] 연산 피연산자 피연산자 명령은 명령 레지스터에서 해석됨 Opcode 데이터 또는 데이터가 저장된 어드레스 프로그램을 위해서는 모든 명령어를 알고 있어야 함 명령어 세트 CPU설계에 대한 정보 (기계어), 또는 어셈블러 형태로 제공 명령어 세트 (instruction set) I am Computer 명령어의 처리방식 I am Computer 5장 CPU 5.4 CPU의 종류 - CPU의 성능 - CPU의 종류 CPU의 성능 CPU의 성능 MIPS (Million Instructions per Second) FLOPS (Floating-Point Operations per Second) CPU성능에 영향을 주는 요소 레지스터 비트의 수 CPU에서 사용되는 클럭의 수 CPU성능 개선 기법 파이프 라인 수퍼스칼라 캐쉬 I am Computer CPU의 종류 파이프 라인(Pipeline) 명령처리의 각 단계(페치, 해석, 실행 및 저장)는 독 립적 여러 명령을 각 단계별로 동시에 실행 각 단계에 레지스터가 관여 하므로 실행속도 개선 페치 명령 1 해석 실행 및 저장 I am Computer 명령 2 명령 3 명령 4 명령 1 명령 2 명령 3 명령 1 명령 2 CPU의 종류 수퍼스칼라(Superscalar) CPU내에 ALU가 2개 이상으로 구성됨 동시에 한 개 이상의 명령을 수행 ADD R1 R0 R3 ADD R2 R5 R4 경우에 따라 하나만 실행되기도 함 ADD R3 R0 R1 ADD R2 R1 R4 CPU내에 predictor가 내장되어 명령들을 분석 I am Computer CPU의 종류 캐쉬(cache) 메모리 CPU와 메모리간 속도차 발생 CPU 1GHz, 메모리(DRAM) 133 MHz : 펜티엄 컴퓨터의 경우 고속의 SRAM을 사용 당장 수행할 명령 및 데이터를 SRAM에 일시 저장 Cache라고 함 CPU와 주 메모리 사이에 위치 CPU CPU (그림 5-30) I am Computer 캐쉬 메모리 (SRAM) 주 메모리 (DRAM) CPU의 종류 CISC/RISC CISC(Complex Instruction Set Computer) RISC(Reduced Instruction Set Computer) 설계기법상의 차이 CPU의 발전에 따라 점점 더 복잡한 명령이 요구됨 N 1 W n 0 n Sn CISC 복잡한 명령을 한번에 처리할 수 있는 명령을 추가 기능이 강력해짐 명령어 길이가 길어짐, 해석이 복잡해짐, CPU 설계가 어려움 Intel 계열 RISC 기존 명령어를 이용하여 효율적으로 명령 수행 명령어 길이가 짧음, 해석 간단, CPU 설계 용이 SPARC, Power PC 계열 I am Computer CPU의 종류 CPU의 종류 인텔 (Intel) 모델명 연도 레지스터 비트수 성능 (MIPS) 클럭 (MHz) 추가된 주요 기술 8088 1979 16 0.5 8 - 80286 1982 16 1.5 12 파이프라인 80386 1985 32 10 33 캐쉬 80486 1989 32 70 100 - 펜티엄 1993 32 125 200 수퍼스칼라, MMX 펜티엄 II 1997 64 - 400 - 펜티엄 III 1999 64/128 - 1,000 SSE Zeon, Celeron I am Computer CPU의 종류 CPU의 종류 AMD K6, Athlon Intel CPU compatible 모토롤라 (Motorola) 68000 시리즈 및 PowerPC 계열 Mac(Apple 컴퓨터)시리즈에 사용됨 RISC계열 파이프라인, 수퍼스칼라, 캐쉬메모리 등 사용 I am Computer CPU의 종류 CPU의 종류 선 마이크로시스템즈 (Sun Microsystems) SPARC 계열 Ultra SPARC 계열 : 수퍼스칼라 기법 사용 RISC형 PC보다는 Workstation급 컴퓨터에 주로 사용됨 I am Computer CPU의 종류