[Computer Architecture] Computer Abstraction
"Computer Abstraction"
[Computing Devices]
CPU(Central Processing Unit)
· 범용 처리
· 제어 중심
GPU(Graphics Processing Unit)
· 병렬 연산 강함
· AI, Graphic, 과학 계산
FPGA(Field-Programmable Gate Arrays)
· HW를 Programming 가능
· 맞춤형 가속
ASIC(Application-Specific Integrated Circuits) or Accelerators
· 특정 작업 전용
· 매우 빠르고 전력 효율 높음
· TPU(Tensor Processing Unit) / NPU(Neural Processing Unit) / FSD(Full Self Driving)
[Memory Hierarchy]
[Translating Code]
Compiler
· 고급 언어(C/C++)로 작성된 프로그램을 Assembly Code로 변환
Assembler
· Assembly Code를 Binary Code로 변환
Operating System
· Binary Code를 실행하도록 도와줌
[Moore's Law]
· 반도체에 집적되는 Transistor 수는 약 18~24개월마다 2배씩 증가 = 늘어나는 Transistor 수 만큼 컴퓨터의 성능 향상
→ 공정 미세화 한계 / 비용 증가 / 발열 문제 등으로 인해 증가 속도가 점점 둔화
[Die Yield]
→ Die 면적이 커질수록 수율이 급격히 감소
[Performance]
· 개인 사용자는 Execution Time이 중요 / Server 운영자는 Throughput이 중요
Relative Performance
[Energy & Power]
단일 Switching EnergyPerformance, Power, Energy 관계
▼ CPU가 빨라도 메모리에서 데이터를 기다리면 대기 상태 돌입
▼ Clock 속도가 빨라져도 제어 흐름 때문에 낭비 발생
▼ 데이터가 Cache에 없으면 느린 메모리에 접근
▼ 프로그램 자체가 CPU의 모든 실행 자원을 다 활용하지 못할 가능성 존재
∴ ▼과 같은 이유로 인해 과도한 Clock Speed 상승 = 성능 상승 효과 감소
> # Threads - Throughput
△ Thread 수를 늘리면 CPU Core들이 바쁘게 일하게 되어 CPU 활용률↑ → 처리량↑
▼ Thread 수를 너무 많이 늘리면 여러 Thread가 같은 자원을 놓고 경쟁(Cache, Memory Bandwidth, Lock, 실행 Unit 등)
→ Context Switching 증가, Cache 오염, 메모리 병목, Lock 대기 증가
∴ ▼과 같은 이유로 인해 과도한 Thread 수를 통한 병렬화 = 처리량 감소
> Clock Speed - Voltage
△ Clock Speed를 높이려면 더 짧은 시간 안에 신호가 안정적으로 전달되어야 함
△ 낮은 Clock Speed에서는 굳이 높은 전압이 필요 X → 전력 낭비 방지를 위해 전압 최소화
▼ 전압이 너무 낮으면 Tr의 Switching 속도가 충분히 빠르지 않아 Timing Error 발생 가능
∴ △, ▼과 같은 이유로 Clock Speed와 전압은 비례 관계
> Voltage - Power
· P ∝ CV²f → 전력 소모는 전압의 제곱에 비례
> Voltage - Energy
△ 전압이 높은 경우 : Clock Speed가 높아져 빠른 시간 안에 수행
△ 전압이 낮은 경우 : 전력 소모↓
▼ 전압이 너무 높은 경우 : 전력 소모 자체가 너무 큼 → 빨리 끝나더라도 총 전력 소모가 커질 수 있음
▼ 전압이 너무 낮은 경우 : 실행 시간↑ → 누설 전력 또는 시스템의 기본 소비가 오래 지속되어 총 전력 소모가 커질 수 있음
∴ ▼과 같은 이유로 전압이 과도하게 높거나 낮은 경우 전력 소모가 크고, 전력 소모가 작은 최적의 전압 존재
> Time - Power Density & Thermal
· 전력 변화는 빠르지만 Chip의 온도는 열의 관성이 있기 때문에 온도 변화는 느림
[Dennard Scaling]
· Transistor가 작아질수록 전압/전류도 함께 줄어, 전력 밀도 증가 없이 성능 향상
→ Transistor Size↓ / 속도 & 집적도↑ / 전력 밀도 = Constant
· C = Constant ∵ Tr 하나의 C↓, But, Tr 개수↑ & Wire Scaling/Fanout/Switching Probability 고려
→ Effective Switching Capacitance 일정
** CMOS 회로에서의 Capacitance는 대부분 의도적으로 만든 Capacitor가 아니라 기생 Capacitor에 의한 것
[Amdahl's Law]
→ 전체 성능 향상은 개선되는 부분의 비율에 의해 제한됨
Ex. f = 0.9(90% 개선 가능), s = 100(100배 개선) → Speed Up ≒ 9.17 → 100배 빨라져도 전체는 약 9배 정도 밖에 안 빨라짐
[Reference]
· 1_computer_abstraction (Computer Architecture) - William J. Song
댓글
댓글 쓰기