Post

2026-06-11 TIL (74일차)

2026-06-11 TIL (74일차)

CPU 성능 향상을 위한 설계

1. 클럭(Clock) 속도 향상

가장 기초적이고 단순한 CPU 성능 향상 방법은 클럭 속도를 높이는 것입니다.

  • 클럭의 정의: 컴퓨터 부품들이 일사불란하게 움직일 수 있도록 동기화하는 시간 단위 신호(똑딱거리는 주기)를 의미합니다.
  • 단위 측정: 보통 헤르츠(Hz) 단위를 사용하며, 1초에 클럭이 몇 번 반복되는지를 나타냅니다. 오늘날에는 성능이 높아져 메가(MHz)나 기가(GHz) 단위를 주로 사용합니다.
  • 물리적 한계: 클럭 속도를 무한정 높이면 컴퓨터의 발열 문제가 심각해지기 때문에, 이 방법만으로는 성능을 향상시키는 데 뚜렷한 한계가 존재합니다.
  • 동적 가변성: 실제 컴퓨터의 클럭 주기는 항상 일정한 것이 아니며, 컴퓨터의 작업량(부하)에 따라 동적으로 빠르거나 느리게 변합니다.

2. 멀티코어 (Multi-core) 설계

클럭 속도 증가의 발열 한계를 극복하기 위해 등장한 하드웨어적인 설계 기법입니다.

  • 코어(Core)의 정의: CPU 내에서 ‘명령어를 읽어 들이고, 해석하고, 실행하는 부품’입니다. 전통적인 관점에서는 CPU 1개당 코어가 1개였으나, 현대에는 기술 발전으로 코어를 여러 개 탑재할 수 있게 되었습니다.
  • 멀티코어 CPU: 이처럼 여러 개의 코어를 갖춘 CPU를 의미하며, 코어 개수에 따라 듀얼 코어(2개), 트리플/쿼드 코어 등 다양한 명칭으로 불립니다.

3. 멀티스레드 (Multi-thread) 설계

스레드의 개념은 관점(하드웨어 vs 소프트웨어)에 따라 의미가 다르므로 이를 구분하는 것이 매우 중요합니다.

① 하드웨어적 스레드 (논리 프로세서)

  • 정의: 하나의 물리 코어가 동시에 처리할 수 있는 명령어의 단위입니다.
  • 원리: 코어 내에 여러 개의 레지스터 세트(프로그램 카운터, 스택 포인터 등)를 두어, 하나의 코어가 동시에 2개 이상의 명령어를 처리할 수 있도록 만듭니다.
  • 특징: 운영체제 시스템상에서는 물리적 코어의 개수보다 이 하드웨어 스레드의 개수(논리 프로세서)만큼 CPU가 있는 것처럼 인식됩니다.

② 소프트웨어적 스레드

  • 정의: 프로그래밍 언어나 운영체제 관점에서 하나의 프로그램 내에서 독립적으로 실행되는 작업 흐름의 단위를 의미합니다.

** 핵심 인사이트 (1코어 1스레드의 다중 작업)** 코어가 하나이고 하드웨어 스레드가 1개인 CPU라도 여러 개의 소프트웨어 스레드를 실행할 수 있습니다. CPU가 각각의 소프트웨어 스레드 작업을 아주 빠르게 번갈아 가며 처리하기 때문입니다. —

4. 병렬성(Parallelism) vs 동시성(Concurrency)

앞서 배운 개념들은 개발자 입장에서 병렬성과 동시성이라는 두 가지 중요한 키워드로 연결됩니다. (기술 면접 단골 질문)

  • 병렬성 (Parallelism): 작업이 물리적으로 정말 같은 시간에 동시에 처리되는 성질을 말합니다. (예: 멀티코어, 하드웨어적 멀티스레드)
  • 동시성 (Concurrency): 물리적으로 완전히 동시에 처리되는 것은 아니지만, 작업들을 아주 빠르게 번갈아 가며 실행하여 사용자 입장에서 마치 동시에 처리되는 것처럼 보이게 만드는 성질을 말합니다. (예: 1코어 1스레드 환경에서 여러 개의 소프트웨어 스레드가 실행되는 양상)
This post is licensed under CC BY 4.0 by the author.