중앙처리장치

중앙처리장치의 개요

중앙처리장치의 정의

중앙처리장치는 컴퓨터 시스템의 핵심 부분으로서 각종 연산을 수행하며 기억장치에 저장된 명령을 읽어 수행하는 역할을 하는 컴퓨터 핵심 구성 요소

중앙처리장치의 특징

  • CPU: Arithmetic Unit과 Control Unit으로 구성
  • 폰 노이만 컴퓨터 구조: 주기억장치, 중앙처리장치, 입출력장치
  • 하버드 구조: 폰 노이만 병목 현상에 대한 대안으로 데이터 메모리와 프로그램 메모리를 분리

중앙처리장치의 구성

중앙처리장치의 연산장치 (ALU: Arithmetic Logic Unit)

  • 산술 및 부울 논리 연산기(Arithmetic and Boolean Logic): 산술연산(덧셈, 뺄셈, 곱셈, 나눗셈)과 논리연산(AND, OR, NOT, XOR)을 수행하는 회로
  • 상태 플래그(Status Flags): 연산 중인 산술 논리 연산장치 내의 데이터 상태를 표시
  • 이동기(Shifter): 데이터 비트를 좌우로 비트별로 이동시킴
  • 보수기(Complementer): 산술 논리 연산장치 내의 데이터에 대해 보수 연산을 수행

중앙처리장치의 제어장치 (CU: Control Unit)

  • 컴퓨터 시스템을 구성하는 각종 장치 간의 동작을 제어
  • 주기억장치에 저장된 명령어를 하나씩 꺼내기 위한 레지스터와 명령코드, 주서번지 해독기, 프로그램 카운터 필요

중앙처리장치의 레지스터와 스택

  • 레지스터는 중앙처리장치 내부에 위치한 기억장치
    • 연산장치나 제어장치의 실행 도중 중간 데이터 값을 일시적으로 저장
    • 주기억장치에서 읽어 온 명령어와 데이터를 임시 보관
  • 스택은 CPU 내부의 레지스터 집합에 존재하는 저장장치
    • 데이터가 순차적으로 저장되며 요소의 개수와 스택의 길이는 가변적
    • LIFO(Last-In-First-Out) 특징을 가짐

중앙처리장치의 내부 CPU 버스

  • 중앙처리장치 내에서 데이터 전달 기능을 수행
    • 데이터 버스: 실질적인 데이터의 전달
    • 제어 버스: 제어장치에서 발생되는 신호를 전달
  • 내부 CPU 버스는 중앙처리장치 밖의 시스템 버스들과 연결되지 않음

중앙처리장치의 기능 및 동작

중앙처리장치의 기능

분류 기능 상세 설명
공통 기능 명령어 인출(Instruction Fetch) 주기억장치에 저장되어 있는 명령어를 읽어오는 기능
~ 명령어 해독(Instruction Decode) 명령어에 대한 수행 동작을 결정하기 위해 인출된 명령어를 해독하는 과정
추가 기능 데이터 인출(Data Fetch) 명령어 실행을 위해 데이터가 필요한 경우, 기억장치 또는 입출력장치에서 그 데이터를 읽어오는 과정
~ 데이터 처리(Data Process) 읽어온 데이터에 대한 산술적 또는 논리적 연산을 수행
~ 데이터 저장(Data Store) 데이터 처리 과정에서의 수행 결과를 저장하는 기능

중앙처리장치의 동작

  1. 중앙처리장치가 처리해야 할 데이터는 주기억장치의 RAM이 인출되고, 외부 시스템 버스를 통해 레지스터 A번으로 전달
  2. 제어장치는 새롭게 저장된 레지스터 A번 데이터와 이전부터 저장하고 있던 레지스터 B번 데이터를 연산하라는 제어신호를 ALU에 전달
  3. ALU에서는 제어신호에 의해 연산을 수행하고 그 결과를 누산기(Accumulator)에 저장
  4. 연산 결과는 외부 시스템 버스를 통해서 다시 주기억장치로 전달

중앙처리장치의 유형

분류 항목 상세 설명
기능 MPU 중앙처리장치에서 주기억장치를 제외한 연산장치, 제어장치 등을 단 한 개의 직접회로에 구성
~ MCU 한 개의 집 내에 중앙처리장치는 물론 일정한 용량의 메모리와 입출력 제어 인터페이스 회로까지 내장
~ DSP 디지털 신호를 하드웨어적으로 처리할 수 있는 직접회로로 구성된 프로세서
비트수 8비트 1970년대 개발된 마이크로 프로세서, 8개의 데이터 버스, 레지스터 기본 길이가 8비트
~ 16비트 1980년대 초의 마이크로 프로세서, 모토로라 68000, 인텔 8086 계열
~ 32비트 1980년대 중반 이후 개발된 마이크로 프로세서, IBM과 모토로라가 개발한 파워PC, 인텔 i486, 펜티엄 계열
~ 64비트 MIPS의 R4000, R10000, 인텔 6XX 계열
명령어 집합 CISC 복잡한 명령어를 지원하는 중앙처리장치, 386, 486 등 인텔 계열에서 사용
~ RISC 단순한 명령어 세트를 지원하는 프로세서, 빠르게 수행되는 제한된 수의 간단한 명령어만이 내재
~ EISC 국내에서 개발된 임베디드 프로세서용 RISC 기반 프로세서

CISC, RISC, EISC 비교

구분 CISC RISC EISC
CPU 명령어 명령어 개수가 많고, 길이가 다양, 실행사이클 다름 명령어 개수가 적고, 길이가 고정적, 실행사이클 동일 16비트 명령을 사용해 32비트 데이터 처리
회로 구성 복잡 단순 단순
메모리 사용 높은 밀도, 효율적 낮은 밀도, 비효율적 높은 코드 밀도 (임베디드에 유리)
프로그램 측면 명령어 적게 사용 상대적으로 많은 명령어, 파이프라인 사용 RISC보다 더 깊은 파이프라인
컴파일러 복잡 단순 국산 기술