520 likes | 859 Views
5 장 CPU. 5.1 논리연산과 논리회로 5.2 CPU 의 구성과 동작 5.3 명령어의 처리방식 5.4 CPU 의 종류. 컴퓨터의 기본 구조. 저장장치. 입력장치. CPU ( 중앙처리장치 ). 출력장치. 주기억장치. 입력장치 CPU 주기억장치 저장장치 출력장치. CPU 의 기본 구조. CPU (Central Processing Unit) 중앙처리장치 데이터의 처리를 담당 대수의 사칙연산 및 논리연산 메모리는 데이터 및 명령을 저장 명령 및 데이터의 이동 ( 메모리 >> CPU)
E N D
5장 CPU 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)
5장 CPU 5.1 논리연산과 논리회로 - 논리회로 진리표, 논리식, 조합 논리회로 순서 논리회로 논리회로와 IC, 컴퓨터
논리회로 • ‘0’, ‘1’의 전기적 표현 • 논리회로 : 논리연산을 수행하는 전기 장치 • 참(1), 거짓(0)이 전기적으로 표현되어야 함 전압(V) 0 없다 거짓 0 시간 전압(V) 1, 3.3, 5 1 있다 참 0 시간 논리연산과 논리회로
논리회로 • 논리회로 • 전기적 입력(0,1)에 대하여 논리연산의 결과를 전기(0,1)적으로 출력 • 논리합 회로 : OR 회로(OR gate) • 논리곱 회로 : AND 회로(AND gate) • 논리부정 회로 : NOT 회로(NOT gate) • 논리식과 논리회로 • 논리식은 피연산자와 논리연산으로 구성됨 • 논리회로는 피연산자(0, 1 또는 전압의 있고 없음)를 입력으로 갖는 논리회로들의 조합으로 구성됨 • 논리식과 논리회로는 1:1의 대응 가능 논리연산과 논리회로
논리회로 OR AND NOT 논리연산과 논리회로
진리표, 논리식, 조합 논리회로 장치의 기능 진리표 논리식 논리회로 • CPU의 구성부 • 레지스터, 쉬프터, 멀티플렉서, 연산장치 등 • 진리표로 기능이 정의 되고, 논리회로로 구현된다. • 설계과정 • BCD 디코더(decoder)를 이용하여 설계과정을 살펴본다. 논리연산과 논리회로
진리표, 논리식, 조합 논리회로 1 : on a f b g e c d 0 : off • 기능의 분석 • LED 숫자판 : 0 ~ 9까지의 숫자 표시 논리연산과 논리회로
진리표, 논리식, 조합 논리회로 a a BCD 디코더 X b c f b Y g d e Z f e c g W d • 기능의 분석 • BCD 코드 : 0~9까지의 숫자를 4 비트로 표시 • (1010)b부터는 사용하지 않는다. • 4 비트 입력에 따라 7개의 LED를 on/off • 입력이 4, 출력이 7인 진리표로 구성가능 논리연산과 논리회로
진리표, 논리식, 조합 논리회로 • 진리표 작성 논리연산과 논리회로
진리표, 논리식, 조합 논리회로 • 논리식의 생성 • 하나의 진리표에 에 다수개의 논리식 존재 • 카르노프맵(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장 CPU 5.2 CPU의 구성과 동작 - CPU의 구성 CPU의 동작 CPU의 동작과 프로그램
CPU의 개념적 구성 및 동작 • 명령 레지스터에 현재 실행할 명령을 복사 • 프로그램 카운터는 현재 실행될 명령의 어드레스를 지시 • 메모리의 해당 어드레스로부터 명령을 명령 레지스터로 이동 • 명령의 해석 • 명령을 해석하여 데이터를 메모리로부터 레지스터 이동 • 연산을 수행하기 위해 필요한 제어신호 생성 • 명령의 수행 및 저장 • 2)에서 얻어진 데이터 및 제어신호를 이용하여 명령을 수행 • 수행된 결과를 레지스터뱅크 또는 주 메모리에 기억시킨다 CPU의 구성과 동작
CPU의 구성 주 메모리 외부버스 2 1 1 명령 디코더 명령 레지스터 프로그램 카운터 메모리 인터페이스 내부버스 연 산 부 2 CPU 레지스터(뱅크) 디코더 MUX-A MUX-B 연산장치(ALU) 3 쉬프터(shifter) CPU의 구성과 동작
레지스터 및 레지스터 뱅크 R0 R1 R2 R3 load n n n n 8 비트 레지스터 load 0 입력 출력 레지스터 뱅크 4 N 비트 레지스터 load 1 C : 클럭 8 8 load 2 load 3 C : 클럭 N 비트 입력 • CPU에서 처리될 데이터는 임시로 CPU내에 저장 • N 비트 레지스터는 N 개의 플립플롭으로 구성 • N 비트 저장 가능 • load로 입력 조절 CPU의 구성과 동작
연산의 분석 • R0 = R1 + R2 • 레지스터 뱅크에 있는 레지스터들 중 R1과 R2를 선택 • 멀티플렉서 • 선택된 레지스터에 보관된 값의 덧셈을 수행 • 연산장치 • 그 결과를 레지스터 뱅크의 레지스터들 중 R0에 저장 • 디코더 CPU의 구성과 동작
M 비트 멀티플렉서 R0 R1 R2 R3 M (N 비트) N N N N 멀티플렉서 MUX-A 레지스터 뱅크 M N 비트 레지스터 멀티플렉서 MUX-B M 멀티플렉서 (N 비트) S0 C : 클럭 Load A B S1 N 비트 N 비트 N MP N 비트 출력 입력 출력 • M 비트 입력 중 1 비트만 선택하여 출력 • 선택을 위해 log2M 비트의 선택 비트(A, B) 필요 CPU의 구성과 동작
연산장치 • ALU : arithmetic logic unit • 대수 및 논리연산을 수행하는 장치 • 덧셈기, 곱셈기, 나눗셈기, 논리합, 곱, 부정 등으로 구성 • 모든 연산은 논리식으로 치환되고 • 논리식은 앞서의 설계 방법에 따라 논리회로로 구성됨 • 덧셈기의 예 • 덧셈기는 한 비트씩 볼 때 진리표로 정의 가능 • 이를 논리회로로 구성 • 한 비트 덧셈기 N개를 사용하여 N 비트 덧셈기 구성 CPU의 구성과 동작
한 비트 덧셈기에 대한 진리표 CPU의 구성과 동작
4비트 덧셈기 X3 Y3 X2 Y2 X1 Y1 X0 Y0 1 비트 덧셈기 1 비트 덧셈기 1 비트 덧셈기 1 비트 덧셈기 C3 C2 C1 C0 0 S3 S2 S1 S0 CPU의 구성과 동작
연산부의 구성 M (N 비트) 멀티플렉서 MUX-A 레지스터 뱅크 M N 비트 레지스터 멀티플렉서 MUX-B M Load C : 클럭 A B N 비트 N 비트 출력 N 비트 출력 연산장치 ALU 입력 F 출력 N 비트 • 나머지 연산장치도 마찬가지로 구성 가능 • ALU는 여러 연산을 수행하므로 선택 비트(F) 필요 • 연산의 종류가 L개 일 때 log2 L 비트 필요 CPU의 구성과 동작
디코더(Decoder) • 연산기의 출력을 특정 레지스터에만 공급 • 해당 레지스터의 load만 ‘0’, 나머지는 ‘0’ • 선택비트(D) 필요 : log2 M (M은 레지스터의 수) CPU의 구성과 동작
디코더를 포함한 연산부의 구성 M (N 비트) Load 디코더 멀티플렉서 MUX-A 레지스터 뱅크 M N 비트 레지스터 멀티플렉서 MUX-B M D C : 클럭 A B N 비트 N 비트 출력 N 비트 출력 연산장치 ALU 입력 F 출력 N 비트 CPU의 구성과 동작
쉬프터와 카운터 • 쉬프터(shifter) • (0010)b =2를 1 비트만큼 오른쪽으로 이동(shift) :(0001)b =1 • (0010)b =2를 1 비트만큼 왼쪽으로 이동(shift) :(0100)b =4 • 효율적인 연산 가능 • 카운터(counter) CPU의 구성과 동작
쉬프터를 포함한 연산부의 구성 M (N 비트) Load 디코더 멀티플렉서 MUX-A 레지스터 뱅크 M N 비트 레지스터 멀티프렉서 MUX-B M D C : 클럭 A B N 비트 N 비트 출력 N 비트 출력 연산장치 ALU 입력 F 쉬프터 (shifter) S 출력 N 비트 CPU의 구성과 동작
간단한 CPU의 예 : 하드웨어 구성 연산장치(ALU) 디코더 멀티플렉스 A, B 쉬프터 NOP : No operation CPU의 구성과 동작
간단한 CPU의 예 : 명령어 구성 • 명령 또한 ‘0’, ‘1’ 형태의 선택비트로 H/W에 입력 CPU의 구성과 동작
CPU의 동작 음성신호 수치화 (샘플링) 데이터 정지영상 동영상 숫자 이진수 변환 사용자의 요구사항 문자 이진 코드 컴퓨터 01010011 처리방식 알고리즘 연산 명령 ‘0’/’1’ CPU의 구성과 동작
CPU의 동작과 프로그램 • 알고리즘 • 요구사항을 연산의 형태로 바꾸는 작업 • 프로그래밍 • 연산을 컴퓨터가 이해하는 언어로 바꾸는 과정 • 앞장에서는 ‘0’, ‘1’의 조합 • 프로그램 • 언어로 변환된 연산의 집합 • 프로그램 언어 • 언어 그 자체 CPU의 구성과 동작
CPU의 동작과 프로그램 • 프로그램 언어 • 기계어 • 연산부 제어신호의 집합 : 0, 1 로 구성 • 컴퓨터가 이해하는 궁극적인 언어 • 프로그래밍 및 해독이 어렵다 • 어셈블리 언어 • 기계어와 1:1 대응관계가 성립하는 심벌 • 어셈블러가 기계어로 변환 • 기계어에 비하여 프로그래밍 및 해독이 쉽다 • 고급언어 : Fortran, C/C++, Pascal CPU의 구성과 동작
5장 CPU 5.3 명령어의 처리방식 - 메모리와 CPU의 결합 명령어의 처리단계 CPU와 명령어 세트
메모리와 CPU의 결합 • 컴퓨터와 탁상용 계산기의 차이 • “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의 결합 보조기억장치 입력장치 CPU (중앙처리장치) 출력장치 주기억장치 • 폰 노이만형 프로그램 내장방식의 컴퓨터 구조 • 메모리 : ‘0’, ‘1’을 저장하는 전기 장치 • 일반적으로 8비트(1 바이트) 단위로 어드레스싱 명령어의 처리방식
메모리와 CPU의 결합 • ADD R0 R1 R2 • ADD M[ADDR1] R1 M[ADDR2] 명령어의 처리방식
명령어 처리의 단계 • 명령어 처리의 단계 • 1) 페치(fetch) • 명령 카운터가 지시하는 어드레스로부터 • 명령을 명령 레지스터로 이동 • 2) 해석(decode) • 명령으로부터 제어신호 생성 • 명령에 포함된 주소의 데이터를 레지스터로 이동 • 3) 실행 및 저장(execute/store) • 제어신호와 레지스터의 데이터를 이용하여 연산을 수행 • 결과를 주 메모리에 저장한다 • 다음 명령을 위해 명령 카운터의 값이 증가 명령어의 처리방식
명령어 처리의 단계 CPU 명령 (1) 명령 레지스터 명령 디코더 A, B, F, S, D (2) CPU의 일부분 (그림 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의 성능 • 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와 메모리간 속도차 발생 • 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의 종류