본문 바로가기
면접 준비

CS공부 ) 컴퓨터 아키텍처

by jennyiscoding 2025. 3. 25.

컴퓨터 시스템에서 캐시(Cache)의 역할과 작동 원리에 대해 설명해 주세요.

역할:

  • 속도 향상: 자주 사용되는 데이터를 캐시에 저장하여 CPU가 직접 빠르게 접근할 수 있도록 합니다.
  • 불필요한 대기 시간 감소: 데이터를 메인 메모리에서 직접 불러오는 대신 캐시에서 빠르게 가져와 대기 시간을 줄입니다.

캐시가 저장되는 프로세스:

vs코드를 켜서 print("hi")를 입력했을 때

1. OS가 Python 인터프리터를 RAM으로 복사한다. 

2. CPU는 RAM에서 실행할 명령어(예: print("Hello, World!"))를 가져온다. 

3. CPU가 연산할 때 필요한 데이터도 L1 캐시에 저장돼.

  • 예를 들어, 우리가 x = 5 + 3 같은 연산을 실행하면, 
    • 5, 3 같은 숫자도 L1 캐시에 저장되고
    • 연산 결과인 8도 L1 캐시에 잠깐 저장됐다가 메모리에 저장됨

즉, 명령어는 CPU가 처리하고 print()를 실행하는 과정에서 CPU가 자주 사용하는 연산(예: 문자열 처리, I/O 처리 등), 함수, 데이터가 캐시는 L1/L2/L3 캐시에 저장된다

4.  파이썬 명령어인 print()를 캐시에 저장하는게 아니라 print()를 실행하기 위한 Python 런타임이 미리 로드한 C 코드 함수의 함수 주소, 명령어, 레지스터 값이 캐시에 저장된다. 즉, PyFile_WriteObject 함수가 실행되면, 해당 함수의 명령어 코드와 데이터가 CPU 캐시로 이동할

 

캐시 종류:

웹캐시 웹 브라우저는 웹 페이지에서 사용되는 이미지, CSS 파일, 자바스크립트, HTML 페이지 등을 로컬에 저장해 두고, 다시 해당 페이지를 방문하면 저장된 콘텐츠를 빠르게 불러오게 됩니다.
L1
  • 위치: CPU 내부에 내장되어 있습니다. 일반적으로 CPU 코어마다 독립적인 L1 캐시를 가집니다.
  • 속도: 가장 빠르며, CPU와 매우 가까운 위치에 있어서 데이터 접근 속도가 매우 빠릅니다.
  • 용량: 크기는 매우 작고, 보통 16KB에서 128KB 정도입니다.
  • 역할: 자주 사용되는 데이터나 명령어를 저장하여, CPU가 필요로 할 때 즉시 불러올 수 있도록 합니다.
L2
  • 위치: L2 캐시는 CPU 내부에 있거나, CPU와 메모리 사이에 위치할 수 있습니다. L2 캐시는 CPU 코어마다 하나일 수도 있고, 여러 코어가 공유할 수도 있습니다.
  • 속도: L1 캐시보다는 조금 느리지만 여전히 빠릅니다. L2 캐시는 L1 캐시와 메인 메모리 사이에서 중간 역할을 합니다.
  • 용량: L2 캐시의 용량은 보통 128KB에서 몇 MB 사이입니다.
  • 역할: L1 캐시에 없거나 더 큰 데이터는 L2 캐시에서 찾습니다. 만약 L2 캐시에도 없다면, L3 캐시나 메인 메모리에서 데이터를 찾습니다.
L3
  • 위치: L3 캐시는 여러 CPU 코어가 공유하는 캐시로, CPU 외부에 위치할 수도 있고, CPU 내부에 내장된 경우도 있습니다. 일반적으로 모든 코어가 공통으로 사용하는 캐시입니다.
  • 속도: L3 캐시는 L1, L2 캐시보다는 상대적으로 느리지만 여전히 메인 메모리보다 훨씬 빠릅니다.
  • 용량: L3 캐시는 보통 2MB에서 32MB까지 다양합니다. L1, L2보다 훨씬 더 큰 용량을 제공합니다.
  • 역할: L3 캐시는 L1, L2 캐시에 없었던 데이터를 제공하며, 여러 코어가 공통으로 데이터를 공유할 수 있게 해줍니다.
캐시미스 만약 배열이 너무 크거나, CPU 캐시 크기를 초과하는 데이터라면 L1, L2, L3 캐시에서 찾을 수 없는 캐시 미스가 발생합니다. 이때는 메인 메모리(RAM)에서 데이터를 읽어야 하므로 속도가 느려집니다
캐시히트 캐시 메모리에서 데이터를 찾을 수 있으면 이를 캐시 히트라고 합니다. 즉, 데이터를 빠르게 읽을 수 있다는 의미입니다.
작동원리
  • 데이터 요청: CPU가 데이터를 필요로 하면, 우선 L1 캐시에서 데이터를 찾습니다. L1 캐시에서 히트하면, CPU는 즉시 데이터를 처리합니다.
  • 캐시 미스 발생: L1 캐시에서 찾지 못한 데이터는 L2 캐시로 이동하고, 여기서 데이터를 검색합니다. L2에서도 못 찾으면, L3 캐시에서 데이터를 찾습니다.
  • 메인 메모리에서 데이터 찾기: 만약 L1, L2, L3 캐시 모두에서 미스가 발생하면, CPU는 데이터를 메인 메모리(RAM)에서 가져옵니다. 이때 시간이 더 걸리기 때문에 성능 저하가 발생합니다.
  • 캐시 업데이트: 데이터를 메인 메모리에서 가져오면, 해당 데이터는 캐시에 저장되어 이후에 같은 데이터가 요청될 때 더 빠르게 접근할 수 있게 됩니다. 이 과정을 **캐시로딩(Cache Loading)**이라고 합니다.

 

 

CPU와 GPU의 차이점과 각각의 장단점에 대해 설명해 주세요.

구분 CPU GPU
구조 철학 범용, 복잡한 연산 병렬, 대규모 연산
제어 장치 강력하고 복잡함 단순함
캐시 깊고 정교함 (L1~L3) 적거나 없음
명령어 처리 다양한 분기와 조건 수행 동일 연산 반복 최적화
메모리 접근 빠르지만 제한적 대역폭 크고 다량 병렬 접근 가능
코어 수 Intel i9 CPU: 16코어 / 24스레드 NVIDIA RTX 4090: 16,384개의 CUDA 코어
코어 종류
  • ALU (산술 논리 연산 장치)
  • FPU (부동소수점 연산 유닛)
  • 복잡한 제어 유닛, 브랜치 예측기
  • L1, L2, L3 캐시
  • 멀티쓰레딩 (예: 하이퍼쓰레딩) 지원
  • 단순한 ALU 같은 연산 유닛
  • 대부분 SIMD 방식: 같은 명령어로 여러 데이터 처리
  • 제어 유닛 간소화, 거의 없음
  • 공유 메모리 중심 (로컬 캐시보다 글로벌 연산 위주)
 

'면접 준비' 카테고리의 다른 글

CS공부 ) 컴파일러  (0) 2025.03.25
CS공부 ) 데이터베이스 설계  (0) 2025.03.25
CS공부 ) 네트워크  (0) 2025.03.25
CS공부 ) 운영체제  (0) 2025.03.24
CS공부 ) 데이터베이스  (0) 2025.03.24