본문 바로가기

카테고리 없음

컴퓨터 구조 - CPU 성능 향상을 위한 설계 기법 총정리

💠 클럭 속도와 오버클럭

  • 클럭(Clock)
    CPU가 명령어를 처리하는 속도를 나타내며, Hz(헤르츠) 단위로 측정됩니다.
    예: 1GHz = 1초에 10억 번의 클럭 사이클
  • 클럭 속도는 항상 일정하지 않음
    부하나 온도 등에 따라 자동 조절되기도 함.
  • 오버클럭(Overclocking)
    제조사가 지정한 최대 클럭을 넘어 더 빠르게 작동하도록 설정하는 기법.
    ⛔ 단점: 발열 증가, 안정성 저하

💠 코어와 멀티코어

  • 코어(Core)
    명령어를 처리하는 최소 실행 유닛.
    예전에는 1개였지만 지금은 2, 4, 8, 16개 등으로 증가.
  • 멀티코어(Multi-Core)
    하나의 CPU에 여러 개의 코어가 존재 → 병렬 처리 가능.
    단, 코어 수가 늘어난다고 무조건 성능이 1:1로 비례하진 않음.

📌 핵심: 각 코어에 적절하게 명령어를 분배하는 것이 중요


💠 스레드와 멀티스레딩

🔹 스레드(Thread)의 두 가지 관점

  • 하드웨어적 스레드
    → 하나의 코어가 동시에 처리할 수 있는 명령어 흐름.
    → 예: 1코어 2스레드 → 한 코어가 두 개의 명령어 처리 가능.
  • 소프트웨어적 스레드
    → 하나의 프로그램 내에서 독립적으로 실행되는 흐름 단위.
    → 실제 코어 수보다 많은 스레드 실행 가능.

🔹 멀티스레드(Multithread)

  • 하나의 코어가 여러 스레드를 처리하는 구조
  • 인텔에서는 이를 하이퍼스레딩(Hyper-Threading) 이라고 부름.

🔹 논리 프로세서(Logical Processor)

  • 예: 2코어 4스레드 → 4개의 논리 프로세서
    → 프로그램 입장에선 CPU 4개처럼 보임
    (즉, 논리 프로세서 = 하드웨어 스레드)

💠 명령어 병렬 처리 기법

🔹 명령어 파이프라이닝 (Instruction Pipeline)

  • 명령어 실행 단계를 나눠서 동시에 겹쳐 실행하는 구조
    예:
  • 복사편집
    명령어 인출 → 명령어 해석 → 실행 → 결과 저장
  • 이를 공장 생산 라인처럼 만들어 병렬로 처리

⚠️ 파이프라인의 위험 (Pipeline Hazard)

  1. 데이터 위험 (Data Hazard)
    → 명령어 간 데이터 의존 관계로 인한 충돌
  2. 제어 위험 (Control Hazard)
    → 분기, 점프 명령어로 인한 흐름 변화
    → 해결: 분기 예측(Branch Prediction)
  3. 구조적 위험 (Structural Hazard)
    → ALU, 레지스터 등 하드웨어 자원을 동시에 요구할 때 충돌

💠 슈퍼스칼라와 비순차 실행

🔹 슈퍼스칼라 (Superscalar)

  • 여러 개의 파이프라인을 동시에 운영하는 구조
    → 공장에서 생산 라인을 여러 줄로 만드는 개념

🔹 비순차 실행 (OoOE, Out-of-Order Execution)

  • 명령어들을 순서에 관계없이 실행
    단, 의존성이 없는 명령어에 한해서만 가능
text
복사편집
1 → 2 → 3 → 4 → 5 → 1,2,4,5 실행 후 3 실행 (3은 1,2에 의존)

💠 CISC vs RISC

🔹 ISA (Instruction Set Architecture)

  • CPU가 이해할 수 있는 명령어 집합
  • ISA가 다르면 어셈블리어도 다르고, 바이너리도 다름

🔹 CISC (Complex Instruction Set Computer)

  • 복잡하고 강력한 기능을 가진 가변 길이 명령어
  • 장점: 명령어 수가 적고 메모리 효율적
  • 단점: 파이프라인 처리에 불리

🔹 RISC (Reduced Instruction Set Computer)

  • 단순하고 빠른 고정 길이 명령어 중심
  • 장점:
    • 파이프라인 처리에 유리
    • 실행 시간이 예측 가능
  • 단점: 더 많은 명령어 조합 필요 (메모리 사용 증가 가능성)

🧠 정리 요약

항목설명
클럭 속도 명령어 처리 속도 (Hz)
오버클럭 최대 클럭 이상으로 동작시키는 기법
멀티코어 코어 수 증가로 병렬 처리
멀티스레드 한 코어가 여러 명령어 흐름 처리
파이프라인 명령어 단계를 겹쳐서 처리
슈퍼스칼라 파이프라인을 여러 개 둠
비순차 실행 순서를 바꿔 명령어 처리 (의존성 고려)
CISC 복잡하지만 적은 명령어 수
RISC 단순하고 빠르지만 명령어 수 많음
 

📌 오늘 배운 핵심:

CPU는 더 빠르게, 더 많이, 더 효율적으로 명령어를 처리하기 위해 파이프라이닝, 병렬 구조, 명령어 최적화 등 다양한 설계 기법을 사용한다.