01intro / 02 Performance

초강송·2026년 4월 10일

고급컴퓨터구조

목록 보기
1/11

01 introduction

  • Conference
    • firm deadline, short process, quality 다양
  • Journal
    • No deadline, long process, 퀄리티 높음

1940s-1950s

  • vacuum tube → 트랜지스터 등장 전, 전자 회로 기본 소자
  • ENIAC, EDVAC
  • Von Neumann architecture → instr과 data를 동일 mem에 저장

1960s-1970s

  • vacuum tube → transistor
  • general-purpose architecture → 초창기 com은 특정 목적(포탄 탄도, 암호 해석)으로 사용
  • microprocessor → CPU의 functions (ALU + control + register)를 하나의 IC에 집적
  • Moore’s law (1965)
    • IC(=CPU)의 트랜지스터 수는(=밀도는, 집적도는) 약 2년마다 두 배로 증가
    • 1970~2010, 40년간 유효

1st wall: Memory wall (1990s)

  • CPU와 메모리의 속도 격차가 너무 커져서, CPU의 성능 향상이 더 이상 시스템 성능 향상으로 이어지지 X

1980s-1990s

  • RISC (명령어는 단순하게, 파이프라인은 빠르게, CISC는 명령어 하나로 메모리+연산+분기 다 가능)
  • Pipelining: 한 cycle에 1개의 명령어 issue
  • Superscalar: 한 cycle에 여러 개의 명령어 issue
  • Branch Prediction
  • TLB
  • Cache hierarchy (L1, L2, L3) - mem wall 완화
  • Prefetching - mem wall 완화

2nd wall: Power wall (2000s)

  • 전력 소비, 발열 문제 때문에 더 이상 clock freqeuncy를 높일 수 없음
  • 한 코어가 단위 시간에 처리하는 명령어 수를 더 이상 늘릴 수 없다

2000s

  • clock을 높이는 게 아니라, clock은 그대로 둔 채 병렬성으로 성능을 끌어올리자
  • multi-core microprocessor (코어 여러 개 → 병렬 처리)
  • simultaneous Multithreading (한 코어에서 멀티스레딩)
  • GPU

3rd wall: the return of memory wall (2020s)

  • AI workload → limited memory bandwidth & latency
  • 3D stacking
  • Memory bound → non von neumann architecture (e.g. PIM, Processing In Memory)

02 Performance

Performance definition/metrics

  • Execution time = instruction count * CPI / clock rate
    • clock rate = frequency = 초당 처리할 수 있는 cycle 수
  • Power = C Voltage^2 Frequency
  • (참고) Performance per watt (전성비, 전력당 성능 비 = 성능 / 소비전력)
    • clock 속도를 마구 올리면 전력 소비는 V^2 * F에 비례하여 급증 → 성능은 이렇게 빨리 늘어나지 않음 → 성능 증가폭 < 전력 증가폭: 전성비가 안 좋다.

Improving computing performance

Increasing the number of transistors

  • die size (cpu size)를 키움
    • 하나의 웨이퍼에는 die 여러 개가 존재, 정상적으로 작동하는 die만 골라 CPU, GPU가 됨

      (+) core/cache/unit의 수나 크기도 같이 증가

      (-) core 간 거리가 멀어지면서 core간 communication latency 증가

      (-) 웨이퍼 size의 한계가 있기 때문에 무한히 die size를 키울 수 없음

      (-) 웨이퍼를 키우면 수율이 낮아짐 (전체 생산된 칩 중 실제로 잘 동작하는 칩의 비율도 낮아짐)

  • Monolithic chip (단일 칩) → Chiplets
    • cpu를 여러 block으로 분리해서 각각 별도의 die로 제작, 패키징 단계에서 모아서 하나의 cpu로

      (+) die 사이즈가 작아지다 보니 수율이 좋음

      (+) incread modularity (functions can be separated)

      (+) process mixing (CPU on 5mm, GPU on 3mm)

      (-) packaging complexity (생산 공정이 복잡해짐)

      (-) latency (die간 interconnect가 필요)

  • cpu를 수직으로 쌓는 3D stacking

Node scaling

  • Dennard Scaling
    • 트랜지스터를 작게 만들면 트랜지스터당 전력 소모는 줄지만 (C, V 감소), 같은 면적에 더 많은 트랜지스터를 넣을 수 있으니 면적당 전력은 유지되고 성능은 증가됨 → 즉, 같은 전력, 같은 발열 조건에서 더 많은 일을 시킬 수 있음
    • 2000년대까지는 트랜지스터 집적도는 무어의 법칙에 따라 증가하고, 전력 밀도는 Dennard Scaling 덕에 유지됨 → 2000년 Power Wall 때문에 깨짐 → 트랜지스터가 너무 작아지다 보니, cpu를 사용하지 않는데도 전력 소모가 발생함

Increasing frequency

  • 높은 frequency를 사용하려면 더 높은 voltage가 필요함 → 근데 두 개의 관계가 voltage는 exponential 하게 증가하는 관계임 → 발열이 엄청나
  • cpu는 불순 반도체 → 온도와 저항이 딱 반비례 혹은 비례 X, 다만 상온에선 온도 증가 → 저항 증가

Enhancing IPC

  • 한 clock cycle에 평균 몇 개의 instruction을 수행할 수 있는지
  • 캐시를 키워서 memory access 횟수를 줄이면 IPC 좋아짐 → 캐시 hit은 좋아지나, 한 번 access 할 때 latency나 전력 소모가 증가함
  • instruction/data/thread level parallelism

Improving DRAM performance

Increasing capacity

  • DRAM은 1개의 cell (1 Transistor (수문) + 1 Capacitor (전하가 저장돼 있음))로 1 bit 저장
    • capacitor에 전하가 저장돼 있으면 1, 저장돼 있지 않으면 0
  • capacitor는 시간이 지나면 자연스럽게 전하가 새어나가는 구조라 주기적으로 모든 셀을 읽고 다시 써주는 refresh가 필요
  • volatile memory
  • 반도체 공정을 미세하게 해서 cell을 더 많이 넣자 → transistor 작게 하면 leakage current 문제 발생함

Increasing bandwidth

  • 한 번 memory access 할 때 cell을 많이 읽어 오자

Reducing latency

  • 물리적으로 어려운 것이, DRAM을 읽고, 쓰는 과정 자체가 capacity 충전/방전 속도에 제한됨 → 이 속도 제한 때문에 latency를 낮추는 데 한계가 있음
  • 애초에 DRAM은 CPU 밖에 있기 때문에 processor-memory distance가 adds delay
  • Processing In Memory, 연산 장치를 mem 근처에 두는 PIM 같은 게 나옴

How to analyze/measure performance

  • PMU (Performance Monitoring Unit)
    • cpu 내부 hardware unit
    • architectural events(cpy cyle 수, cache hit/miss, branch 잘못 예측, instr 실행)등 기록
    • perf, ftrace, perfetto 같은 성능 분석 tool이 바로 이 PMU counter를 읽어서 데이터 수집
  • perf
    • kernel의 성능 counter를 이용해서 cpu, cache, memory 등 시스템 성능 프로파일링
  • tp, htop
    • 실시간으로 cpu 메모리 사용량, 프로세스 상태 모니터링하는 터미널 기반 모니터
  • ftrace
    • kernel 함수의 call stack 기록
  • perfetto
    • 안드로이드에서 시스템, 앱의 성능 이벤트를 추적
  • ODPM (On-Device Power Monitor)
    • 하드웨어의 전력 소비를 측정하는 온디바이스 전력 모니터링 도구
  • sysfs
    • 커널 내부 상태(디바이스, 드라이버 등)을 파일 시스템 형태로 노출하는 인터페이스

0개의 댓글