본문 바로가기

CS/OS

[OS] CPU란?

반응형

소개

CPU는 중앙 처리 장치(Central Processing Unit)의 약어로, 컴퓨터 시스템에서 핵심적인 연산과 제어를 담당하는 핵심 구성 요소이다.
CPU는 컴퓨터의 "뇌"라고도 할 수 있습니다.

주요 기능

ALU

산술 논리 장치(Arithmetic Logic Unit)의 약어로,
CPU(중앙 처리 장치)의 일부로서 산술 및 논리 연산을 수행하는 핵심 구성 요소입니다.
ALU는 CPU 내에서 주로 연산을 수행하며, 다음과 같은 주요 기능을 담당한다.

  • 산술 연산: ALU는 덧셈, 뺄셈, 곱셈, 나눗셈 등과 같은 산술 연산을 수행합니다. 이러한 연산은 프로그램이나 애플리케이션에서 정의한 수학적 계산을 처리하는 데 사용됩니다.
  • 논리 연산: ALU는 AND(논리 곱), OR(논리 합), NOT(논리 부정)과 같은 논리 연산을 수행합니다. 이러한 연산은 불린 논리(Boolean Logic)에 기반하여 조건을 판단하거나 제어 흐름을 결정하는 데 사용됩니다.
  • 시프트 연산: ALU는 비트를 좌우로 이동하는 시프트(Shift) 연산을 수행할 수 있습니다. 이는 데이터의 비트를 이동시켜 곱셈 또는 나눗셈과 같은 특정 연산을 수행하는 데 사용됩니다.

레지스터

레지스터(Register)는 컴퓨터의 중앙 처리 장치(CPU) 내부에 있는 고속의 데이터 저장소로,
매우 빠른 속도로 데이터에 접근할 수 있는 특징을 가지고 있습니다.
레지스터는 CPU의 일부로서 명령어 실행, 연산, 데이터 저장 등의 다양한 역할을 수행합니다.
레지스터는 메모리로부터 데이터를 읽거나 쓸 때 사용되는 데이터를 저장합니다.

  • 속도: 레지스터는 매우 빠른 접근 시간을 가지고 있습니다. 이는 메인 메모리보다 훨씬 빠르게 데이터에 접근할 수 있어, 중앙 처리 장치에서 레지스터를 사용하여 빠른 연산을 수행할 수 있습니다.
  • 중요 레지스터:
    • 데이터 레지스터(Data Register):
      • 데이터를 저장하고 연산에 사용하는 일반적인 목적의 레지스터입니다.
      • 산술 및 논리 연산, 데이터의 임시 저장 등에 활용됩니다.
    • 주소 레지스터(Address Register):
      • 메모리 주소를 저장하거나 인덱스 레지스터로서 사용되어 배열과 같은 데이터에 접근할 때 활용됩니다.
      • 주소 계산과 관련된 작업에 사용됩니다.
    • 상태 레지스터(Status Register):
      • 연산의 결과나 CPU 상태와 관련된 여러 플래그들을 저장합니다.
      • 예를 들어, 영향을 받은 비트 수, 부호 여부 등의 정보를 저장합니다.
    • 프로그램 카운터 (Program Counter - PC):
      • 현재 실행 중인 명령어의 메모리 주소를 저장합니다.
      • 명령어를 차례대로 가져와 실행하는 데 사용됩니다.
    • 명령어 레지스터 (Instruction Register - IR):
      • 현재 실행 중인 명령어를 저장합니다.
      • 명령어의 해독과 실행에 필요한 정보를 담고 있습니다.
    • 누산기 (Accumulator - ACC):
      • 산술 연산의 중간 결과를 저장합니다.
      • 주로 산술 명령어에서 사용되며, 연산 결과를 임시로 저장합니다.
    • 스택 포인터 (Stack Pointer - SP):
      • 스택 메모리에서의 현재 위치를 가리키는 주소를 저장합니다.
      • 스택은 함수 호출과 반환, 임시 데이터 저장 등에 사용되는 메모리 구조입니다.

CU

CU는 "Control Unit"의 약자로, 중앙 처리 장치(CPU) 내에서 명령어를 해독하고 실행하기 위한 제어 장치를 가리킵니다. CU는 CPU의 핵심 부분 중 하나이며, 다음과 같은 주요 기능을 수행합니다:

  • 명령어 해독 (Instruction Decoding): 메모리로부터 읽어온 명령어를 해독하여 CPU가 이해하고 처리할 수 있는 형태로 변환합니다.
  • 명령어 실행 제어 (Execution Control): 명령어를 적절한 순서대로 실행하도록 제어합니다. 이는 산술 논리 장치(ALU) 및 다른 장치들과의 상호 작용을 조정합니다.
  • 제어 신호 생성 (Control Signal Generation): CPU의 내부와 외부 장치 사이에서 데이터의 흐름을 조절하기 위해 다양한 제어 신호를 생성합니다. 이 신호는 레지스터 전송, ALU 동작, 메모리 접근 등에 관여합니다.
  • 분기 및 제어 플로우 관리 (Branch and Control Flow Management): 조건부 및 무조건적인 분기 명령어를 처리하고, 프로그램 카운터(PC)를 업데이트하여 프로그램의 다음 명령어로 제어 흐름을 관리합니다.
  • 인터럽트 처리 (Interrupt Handling): 외부에서 발생한 인터럽트 신호를 감지하고, 인터럽트 서비스 루틴에 대한 제어를 관리하여 프로그램의 흐름을 일시적으로 변경합니다.
  • 캐시 및 메모리 관리 (Cache and Memory Management): CPU와 메모리 간의 데이터 전송을 최적화하기 위해 캐시를 관리하고, 메모리 주소를 해석하여 데이터를 로드하거나 저장합니다.
  • 파이프라인 관리 (Pipeline Management): 명령어 파이프라인을 효과적으로 관리하여 여러 단계의 명령어를 동시에 처리하고 최적의 성능을 얻습니다.

버스 인터페이스

버스 인터페이스는 컴퓨터 시스템에서 서로 다른 하드웨어 구성 요소들 간에 데이터와 제어 신호를 교환하기 위한 표준화된 통신 경로를 의미합니다. 버스는 CPU, 메모리, 그래픽 카드, 저장 장치 등 다양한 하드웨어 장치들 간에 정보를 전송하는데 사용됩니다. 이러한 정보 전송은 데이터 버스, 주소 버스, 제어 버스로 구성되어 있습니다.

  • 데이터 버스 (Data Bus): 데이터 버스는 데이터 전송에 사용되는 통로로, CPU, 메모리, 그래픽 카드 등 각 장치 간에 이동하는 데이터를 나타냅니다. 데이터 버스의 폭(비트 수)는 한 번에 전송 가능한 데이터 양을 결정합니다.
  • 주소 버스 (Address Bus): 주소 버스는 메모리나 입출력 장치에 데이터를 읽거나 쓸 때 사용되는 메모리 주소를 전송하는 데 사용됩니다. 주소 버스의 폭은 주소 공간의 크기를 결정하며, 이는 시스템이 접근할 수 있는 주소의 범위를 제한합니다.
  • 제어 버스 (Control Bus): 제어 버스는 각 장치 간의 동작을 제어하기 위한 신호를 전송하는 데 사용됩니다. 이는 읽기/쓰기 동작, 인터럽트, 클럭 신호 등과 같은 제어 신호들을 포함합니다.
반응형

'CS > OS' 카테고리의 다른 글

[OS] Memory swap  (0) 2023.11.22