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