CS

[CS] CPU와 GPU

programmer-faust 2025. 8. 26. 17:00
  • 순서
    1. CPU
    2. GPU
    3. CPU와 GPU의 차이
  • CPU
    1. CPU란?
      • Central Processing Unit으로 중앙처리장치라고 부르며 컴퓨터에서 기억, 해석, 연산, 제어라는 4대 주요 기능을 관할하는 장치임.
      • 강력한 연산 처리능력으로 개별적인 작업을 신속하게 처리하는데 특화되어 복잡한 연산을 순차적으로 빠르게 처리할 수 있음
    2. CPU의 주요 구성요소
      • 제어장치(CU): 메모리와 입출력 장치, ALU가 서로 데이터를 주고받을 수 있도록 제어 신호를 내보내며 어떤 명령을 언제 실행할지 순서를 관리함
      • 산술/논리단위(ALU): 덧셈, 뺄셈 같은 산술 연산과 AND, OR같은 논리 연산을 담당함
      • 레지스터(Register): CPU 내부에 있는 초고속 임시 저장 공간으로 아래의 대표적인 세가지가 있음.
        1. PC(Program Counter): 다음 실행할 명령어의 주소 저장
        2. IR(Instruction Register): 현재 실행 중인 명령어 저장
        3. ACC(Accumulator): 연산 결과 저장
    3. 세부 구성 요소로는 캐시, 레지스터, 클럭, 명령어 레지스터 및 포인터, 버스로 이루어져 있음
    4. 정기적으로 메인 메모리와 연동하여 데이터에 액세스함.
    5. 표준 운영 메모리는 단기기억과 유사하게 RAM 데이터를 컴퓨터의 캐시 메모리에서 주기적으로 제거하기 전에 순간 저장함.
    6. CPU의 동작과정
      • 인출(Fetch): 메모리에서 명령어를 가져옴 (PC > 메모리 > IR)
      • 해독(Decode): 제어장치가 명령어를 해석함
      • 실행(Execute): ALU 등이 동작하여 연산을 수행함
      • 저장(Store): 결과를 레지스터나 메모리에 기록함
      • 위 4가지 과정을 GHz 단위속도로 반복함
    7. CPU의 성능 지표
      • 클록 속도: 초당 명령을 실행할 수 있는 속도
      • 코어 수: 동시에 처리할 수 있는 작업 단위
      • 캐시 메모리: CPU안에 있는 초고속 메모리, 메모리 접근 지연을 줄여줌
      • 명령어 집합(ISA): CPU가 이해할 수 있는 명령어 체계
  •  
  • GPU
    1. GPU란?
      • Graphics Processing Unit으로 그래픽 연산(특히 3D 렌더링)을 빠르게 처리하기 위해 만들어진 프로세서
      • 그래픽 처리, 출력을 빠르게 렌더링하는 목적으로 구성되어 작은 캐시와 다수의 연산장치가 있는것이 특징. > 이와 같은 구조로 데이터를 병렬로 대량 처리하는데 특화됨.
    2. GPU의 주요 특징
      • 코어 구조
        1. GPU는 수천 개의 작고 단순한 연산 코어를 가지고 있음
        2. 동시에 많은 데이터를 병렬 처리하는 데 유리함.
      • 메모리 구조
        1. VRAM(Video RAM)을 사용하여 대량의 그래픽 데이터(텍스처, 행렬 등)를 빠르게 처리함.
        2. VRAM이란?
          • GPU의 전용 메모리로 그래픽 데이터(텍스쳐, 색상, 버퍼, 쉐이더 데이터 등)를저장하는 고속 메모리임
          • 프레임 버퍼를 저장하여 최종 화면 픽셀 데이터를 보관함.
          • 텍스처와 모델 데이터를 저장하여 3D 객체에 색상/질감을 입히는데 사용함
          • 쉐이더 코드와 중간 연산 데이터를 저장하여 GPU 연산에 활용함
        3. VRAM의 특징
          • 대역폭이 중요함 > 초당 얼마나 많은 데이터를 GPU와 VRAM간 주고 받을 수 있는가
          • VRAM 용량이 크면 고해상도 텍스처와 고품질 그래픽 처리가 가능함.
      • GPU의 그래픽 파이프라인 : GPU가 화면에 최종 이미지를 출력하기까지 거치는 단계
        1. 응용 단계: 게임/프로그램이 렌더링할 오브젝트를 결정하고 CPU가 GPU에 데이터를 전송함
        2. 기하 단계
          • 버텍스 셰이더: 모델의 정점 위치를 변환함.
          • 테셀레이션: 다각형을 잘게 쪼개 정밀한 모델 생성
          • 지오메트리 셰이더: 정점 단위 데이터 보정
        3. 래스터화 단계: 3D 정점 데이터를 2D 픽셀로 변환함 > 즉, 화면 좌표로 찍는 과정
        4. 픽셀/프래그먼트 단계
          • 프래그먼트 셰이더: 각 픽셀의 색상, 텍스처, 조명 계산
          • 그림자, 반사, 특수효과 적용
        5. 출력 단계: 여러 버퍼를 합쳐 최종 프레임을 생성함 > 이 프레임이 VRAM의 프레임 버퍼에 저장되어 모니터에 출력됨
      •  역할
        1. 이미지, 비디오 렌더링
        2. 대규모 행렬/벡터 연산 > 딥러닝 학습, 시뮬레이션, 암호학 등
  • CPU와 GPU의 차이
구분 CPU GPU
주요 역할 범용 연산(운영체제, 로직, 제어) 대규모 병렬 연산(그래픽, 행렬, 계산)
구조 대량의 캐시 메모리
제어장치와 연산장치로 구성
고속 데이터로 처리
소량의 캐시 메모리
다량의 연산 장치로 구성
코어 수 소수(보통 4~16개) > 강력하지만 개수 적음 수천개의 작은 코어
연산 방식 순차적인 연산, 직렬 처리 최적화 동시다발적으로 처리, 병렬 처리 최적화
메모리 캐시 중심(L1~L3) VRAM 사용(대용량, 대역폭 큼)
적합한 작업 복잡한 분기문, 다양한 연산 대량의 반복 계산, 동일 연산 처리
예시 프로그램 실행, 게임로직, OS 관리 게임 그래픽렌더링, 딥러닝 학습, 데이터병렬처리

'CS' 카테고리의 다른 글

[CS] 프로세스와 스레드  (2) 2025.08.28
[CS]메모리 단편화  (1) 2025.08.28
[CS]프로세스의 메모리  (1) 2025.08.27
[CS]빌드 프로세스  (0) 2025.08.27
[CS] 컴퓨터의 메모리 구조  (4) 2025.08.22