Parallelism, Power and Energy, Flynn's Taxonomy

Seungyun Lee·2026년 1월 22일

Computer Architecture

목록 보기
5/17

1. What drove performance? (성능 향상의 원동력)

무어의 법칙(Moore's Law)에 따라 트랜지스터 수가 늘어나는 동안, 아키텍처는 다음 기술들로 성능을 높여왔습니다.

A. RISC for Pipeline: 명령어를 단순화하여 파이프라인 효율을 극대화 (CPI를 낮춤).

B. Cache: CPU와 메모리 속도 차이(Memory Wall) 극복.

C. ILP (Instruction Level Parallelism): 명령어 여러 개를 동시에 실행 (Pipelining, Superscalar, OoO).

  • Power Density 문제 발생: 칩 집적도가 높아지면서 단위 면적당 발열이 감당 불가능해짐.

  • 결과: "CPU Frequency를 낮춰야 한다" → 클럭 속도 경쟁(Frequency scaling)이 끝나고 멀티코어 시대로 전환.

D. TLP (Thread Level Parallelism): 싱글 코어 성능 향상이 한계에 부딪히자, 코어 수(Core)를 늘려 스레드를 병렬 처리.

E. Domain Specific Architecture (DSA): 범용 CPU의 한계 극복.

  • Heterogeneous Design: CPU + GPU + NPU 등 서로 다른 프로세서를 섞어 쓰는 이기종 컴퓨팅. (반대말: Homogeneous - 똑같은 코어만 쓰는 것)

2. Classes of Computers (컴퓨터의 분류)

각 분야마다 최적화 목표(Design Goal)가 다릅니다.

  • PMD (Personal Mobile Device): 스마트폰 등. Energy efficiency(배터리 수명)와 Real-time(터치 반응 속도)이 중요.

  • Desktop: 가격 대비 성능(Price-performance) 중시.

  • Servers:
    - Availability: 24시간 꺼지면 안 됨 (가용성).
    - Scalability: 사용자가 늘면 서버만 추가해서 성능 확장이 가능해야 함 (확장성).
    - Throughput: 단위 시간당 얼마나 많은 요청을 처리하느냐 (처리량).

  • WSC (Warehouse Scale Computers): 구글/아마존 데이터센터. 전력 비용(Power)과 가용성(Availability)이 핵심.

  • Embedded: 최소 비용(Min price)으로 요구 성능만 딱 맞추는 것이 목표.

Parallelism

• Classes of parallelism in applications:
– Data-Level Parallelism (DLP)
– Task-Level Parallelism (TLP)

• Classes of architectural parallelism:
– Instruction-Level Parallelism (ILP)
– Vector architectures/Graphic Processor Units
(GPUs)
– Thread-Level Parallelism
– Request-Level Parallelism

3. Flynn's Taxonomy (플린의 분류법)

컴퓨터 구조를 명령어(Instruction)와 데이터(Data) 흐름의 개수에 따라 4가지로 나눈 아주 유명한 분류법입니다.

A. SISD (Single Instruction, Single Data): 전통적인 단일 코어 PC.

B. SIMD (Single Instruction, Multiple Data): GPU의 핵심 원리.

  • 명령어 ADD 하나를 던지면, 16개의 데이터(R1[0]~R1[15])가 동시에 덧셈을 수행.
ADD R1[16],R2[16],R3[16]
it's vector, you'll do same job 16 times
same opperation with different number
Vector architectures
– Graphics processor units

C. MISD: 실제로는 거의 안 쓰임 (우주선 등 특수 목적).

D. MIMD (Multiple Instruction, Multiple Data): 멀티 코어 CPU, 클러스터 컴퓨터.

  • CMP (Chip Multi-Processor): 칩 하나에 여러 코어 (우리가 쓰는 멀티코어 CPU).

  • SMT (Simultaneous Multi-Threading): 인텔의 'Hyper-Threading'. 물리적 코어는 1개인데 논리적으로 2개인 척 스레드를 동시에 돌림.

4. Computer Hierarchy & Bandwidth

Micro-RISC: 인텔 x86은 껍데기는 CISC지만, 내부 하드웨어는 복잡한 명령어를 잘게 쪼개서(u-op) RISC처럼 실행합니다.

Bandwidth vs Latency:

  • Bandwidth (대역폭): 고속도로 차선 수. 기술 발전에 따라 매우 빠르게 좋아짐.

  • Latency (지연 시간): 서울에서 부산까지 걸리는 시간. 물리적 한계로 더디게 좋아짐. (이 차이 때문에 캐시가 필수)

intel x86: cisc

  • but they changed to micro risc
    Arm: risc for mobile device

5. Power and Energy (⭐⭐⭐)

이 부분 수식이 꼬이면 시험 때 고생합니다. 정확히 정리해 드릴게요.

1) 수식 정리 (Dynamic Power)

CMOS 회로의 전력 소모 공식

Pdynamic12CV2fP_{dynamic} \propto \frac{1}{2} \cdot C \cdot V^2 \cdot f

PP: Power (전력, Watt)CC: Capacitive Load (용량성 부하)
VV: Voltage (전압)
ff: Frequency (클럭 주파수)

2)"Power를 낮추려면 v나 f를 낮춰야 함"

VV가 제곱(V2V^2)으로 비례하므로 전압을 낮추는 게 효과가 제일 큽니다.

Threshold Voltage (VthV_{th}) 한계:

설명: 전압(VV)을 낮추면 좋지만, 트랜지스터가 켜지는 최소 전압인 VthV_{th}(약 0.7V 근처) 밑으로 내리면 0과 1 구분이 안 되어 누설 전류(Leakage)가 폭발합니다. 그래서 더 이상 전압을 못 낮추고(Dennard Scaling 종료), 결과적으로 클럭(ff)도 못 올리게 된 것입니다.

"Reducing clock rate reduces power, not energy" (이 문장 매우 중요!)

  • Power (일률): 초당 쓰는 전기량. 클럭(ff)을 반으로 줄이면 Power도 반으로 줍니다. (발열이 줄어듦)
  • Energy (일의 양): E=P×tE = P \times t. 클럭을 반으로 줄이면 Power는 줄지만, 계산 끝나는 시간(tt)이 2배로 늘어납니다.
  • 결국 E=(12P)×(2t)=P×tE = (\frac{1}{2}P) \times (2t) = P \times t. 총 소모 에너지는 같습니다. (배터리 수명은 그대로)
  • 배터리를 아끼려면 ff만 줄이는 게 아니라 전압(VV)까지 같이 줄여야(DVFS) 합니다.

3) Thermal Design Power (TDP)

쿨링 시스템(팬, 방열판)을 설계할 때 기준이 되는 전력량입니다. "이 CPU는 최대 이만큼 열이 나니까 이 정도 쿨러를 달아라"라는 뜻입니다.

① Characterizes sustained power consumption (지속적인 전력 소비 특성)

의미: CPU가 1초 동안 낼 수 있는 최대 힘이 아니라, "장시간 무거운 작업을 돌렸을 때(Sustained)" 유지되는 전력 소비량입니다.

비유: 마라톤 선수가 전력 질주(Sprint)를 할 때는 심박수가 200까지 가지만, 2시간 내내 그렇게 뛸 수는 없죠? TDP는 전력 질주가 아니라, "계속 유지할 수 있는 가장 빠른 속도"에서의 열 발생량입니다.

② Used as target for power supply and cooling system (설계 목표치)

Cooling (쿨링): 만약 CPU의 TDP가 125W라면, 당신은 최소한 125W 이상의 열을 식힐 수 있는 쿨러를 장착해야 합니다. 만약 65W짜리 쿨러를 달면? CPU는 열을 식히지 못해 스스로 속도를 늦추는 스로틀링(Throttling)에 걸려 성능이 급격히 떨어집니다.

Power Supply (전원): 파워 서플라이를 고를 때도 이 TDP를 기준으로, 다른 부품들의 전력을 합산하여 용량을 결정합니다.

③ Lower than peak power, higher than average (피크보다는 낮고, 평균보다는 높다)

이 부분이 시험에 나오기 가장 좋은, 헷갈리는 개념입니다.

왜 Peak Power(최대 전력)보다 낮은가? (Turbo Boost의 비밀)

현대 CPU(인텔, AMD)는 작업을 시작하자마자 터보 부스트(Turbo Boost)를 켭니다. 이때는 TDP를 무시하고 순간적으로 Peak Power (예: 200W)까지 전력을 끌어다 씁니다.

"그럼 쿨러가 못 버티지 않나요?"

괜찮습니다. 쿨러의 금속 덩어리(히트싱크)가 달궈지는 데 시간이 걸리기 때문입니다. 약 10~50초 정도의 짧은 시간(Tau) 동안은 TDP를 초과해서 전력을 써도 쿨러가 버텨줍니다.

하지만 쿨러가 완전히 뜨거워지면, CPU는 다시 TDP 수준(예: 125W)으로 전력을 낮춥니다.

결론: TDP는 순간적인 최대치(Peak)가 아니라, 결국 돌아오게 되는 안정화된 수치이므로 Peak보다 낮습니다.

왜 Average Power(평균 전력)보다는 높은가?

우리가 웹 서핑을 하거나 문서를 작성할 때 CPU는 대부분 놀고 있습니다(Idle). 이때는 10W~20W밖에 안 씁니다.

TDP는 "가장 빡빡한 상황(Worst Case)"을 가정한 설계치이므로, 당연히 일상적인 평균 사용량보다는 훨씬 높게 잡혀 있습니다.

클럭 속도(Frequency)를 낮추면 발열(Power)은 줄어드는데, 왜 배터리(Energy)는 못 아끼나

1. 기본 개념 잡기: 에너지(Energy) vs 전력(Power)

먼저 이 두 단어의 차이를 명확히 해야 뒤에 나오는 수식이 이해됩니다.
Energy (에너지, EE): 일을 한 총량. (단위: Joule)
비유: 자동차가 서울에서 부산까지 가는 데 쓴 총 기름의 양. (배터리 수명과 직결)
Power (전력, PP): 단위 시간당 하는 일의 양. (단위: Watt = Joule/sec)1
비유: 자동차 엔진이 순간적으로 태우는 기름의 속도. (발열과 직결)

E=P×t(에너지=전력×시간)E = P \times t \quad (\text{에너지} = \text{전력} \times \text{시간})

2. Dynamic Energy (스위칭 에너지)

트랜지스터가 0에서 1로, 혹은 1에서 0으로 딱 한 번 바뀔 때 드는 에너지입니다.
수식:

Edynamic12CV2E_{dynamic} \propto \frac{1}{2} \cdot C \cdot V^2

변수 설명:

  • CC (Capacitive Load): 전자를 담는 그릇의 크기입니다. (회로가 복잡할수록 큼)
  • VV (Voltage): 전자를 밀어주는 압력입니다.

핵심: 이 공식에는 시간(ff)이 없습니다. 즉, 스위치를 빨리 켜든 천천히 켜든, 한 번 켤 때 드는 에너지 비용은 똑같다는 뜻입니다.

3. Dynamic Power (동적 전력)

이제 스위치를 1초에 몇 번(Frequency) 껐다 켰다 하느냐를 따집니다. 이게 바로 우리가 흔히 말하는 CPU의 소비 전력(Watt)입니다.

수식:

Pdynamic12CV2fP_{dynamic} \propto \frac{1}{2} \cdot C \cdot V^2 \cdot f

핵심: 여기에 ff (Frequency)가 붙었습니다.

  • 클럭 속도(ff)를 2배로 올리면? → 전력(PP)도 2배가 됩니다. (더 뜨거워짐)
  • 클럭 속도(ff)를 반으로 줄이면? → 전력(PP)도 반으로 줍니다. (덜 뜨거워짐)

4. "Reducing clock rate reduces power, not energy" (하이라이트)

교수님이 강조하신 이 문장이 왜 성립하는지 시나리오로 증명해 보겠습니다.
[상황] 어떤 프로그램(Task)을 실행하는 데 총 100번의 클럭 사이클이 필요하다고 가정해 봅시다.

A. 원래 속도로 실행할 때 (Fast)

  • 주파수(ff) = 10 Hz (초당 10번)
  • 전력(PP) = 10 Watt라고 가정.
  • 걸린 시간(tt) = 100번 / 10 Hz = 10초
  • 총 에너지(EE) = P×tP \times t = 10W ×\times 10s = 100 Joule

B. 클럭 속도를 반으로 줄였을 때 (Slow)

  • 주파수(ff) = 5 Hz (반으로 줄임)
  • 전력(PP) = 수식(f\propto f)에 따라 5 Watt로 줄어듦. (와! 발열이 반으로 줄었다!)
  • 걸린 시간(tt) = 100번 / 5 Hz = 20초 (작업 시간이 2배로 늘어남)
  • 총 에너지(EE) = P×tP \times t = 5W ×\times 20s = 100 Joule

결론:클럭(ff)을 낮추면 순간적인 전력(PP, 발열)은 줄어들지만, 작업 시간이 길어지기 때문에 결국 배터리에서 빼 쓴 총 에너지(EE, 배터리 소모량)는 똑같습니다.

  1. 그래서 어떻게 해야 하나요? (DVFS)

배터리(Energy)를 아끼려면 ff만 줄여서는 안 되고, 수식에서 제곱(V2V^2)으로 영향을 주는 전압(VV)을 줄여야 합니다.

DVFS (Dynamic Voltage and Frequency Scaling):

  • 클럭(ff)을 낮출 때, "어차피 천천히 일할 거니까 전압(VV)도 살짝 낮추자"라고 하는 기술입니다.
  • 만약 ff를 반으로 줄이면서 VV도 낮출 수 있다면, 그때 비로소 Energy도 줄어들게 됩니다.

💡 한 줄 요약"클럭을 낮추는 건 엔진을 천천히 돌려 열을 식히는(Power 감소) 데는 도움이 되지만, 목적지까지 가는 데 드는 총 기름양(Energy)은 줄이지 못한다(시간이 더 걸리니까). 기름을 아끼려면 연비(Voltage) 자체를 개선해야 한다."

연습문제

Some microprocessor today are designed to
have adjustable voltage, so that a 15% reduction
in voltage may result in a 15% reduction in
frequency. What would be the impact on dynamic
power and dynamic energy?

이 문제는 컴퓨터 구조 중간고사나 퀴즈에 정말 자주 나오는 DVFS (Dynamic Voltage and Frequency Scaling) 응용 계산 문제입니다.

방금 전 배운 "클럭만 낮추면 에너지는 그대로"라는 개념과 달리, 이번엔 "전압(Voltage)도 같이 낮췄을 때" 어떤 마법이 일어나는지 수식으로 증명하는 과정입니다.

1. 문제 분석 및 공식 세팅

조건: 전압(VV) 15% 감소, 주파수(ff) 15% 감소.
Vnew=0.85×VoldV_{new} = 0.85 \times V_{old}
fnew=0.85×foldf_{new} = 0.85 \times f_{old}

구해야 할 것:
Dynamic Power (PP): 얼마나 시원해지는가?
Dynamic Energy (EE): 배터리를 얼마나 아끼는가?

2. Dynamic Power (동적 전력)의 변화

전력 공식:
PV2×fP \propto V^2 \times f
여기에 변화된 값을 대입해 봅시다.

Pnew(0.85V)2×(0.85f)=0.852V2×0.85f=0.852×0.85×(V2f)=0.853×Pold\begin{aligned} P_{new} &\propto (0.85 \cdot V)^2 \times (0.85 \cdot f) \\ &= 0.85^2 \cdot V^2 \times 0.85 \cdot f \\ &= 0.85^2 \times 0.85 \times (V^2 \cdot f) \\ &= 0.85^3 \times P_{old} \end{aligned}

계산기를 두드려보면:0.85×0.85×0.850.6140.85 \times 0.85 \times 0.85 \approx 0.614결론 1:전력(Power)은 기존의 약 61.4% 수준으로 떨어집니다.즉, 약 38.6%나 감소합니다. (발열이 엄청나게 줄어듭니다!)

3. Dynamic Energy (동적 에너지)의 변화

에너지 공식:
E=P×tE = P \times t
(전력 × 시간)

여기서 중요한 점은 시간(tt)이 늘어난다는 것입니다. 주파수(ff)가 15% 느려졌으므로, 작업 시간은 반대로 1÷0.851 \div 0.85배 만큼 길어집니다.

tnew=10.85×toldt_{new} = \frac{1}{0.85} \times t_{old}

이제 에너지 변화를 계산해 봅시다.

Enew=Pnew×tnew=(0.853Pold)×(10.85told)=0.8530.85×(Poldtold)=0.852×Eold\begin{aligned} E_{new} &= P_{new} \times t_{new} \\ &= (0.85^3 \cdot P_{old}) \times (\frac{1}{0.85} \cdot t_{old}) \\ &= \frac{0.85^3}{0.85} \times (P_{old} \cdot t_{old}) \\ &= 0.85^2 \times E_{old} \end{aligned}

수학적으로 보면, 시간 늘어난 것(1/f1/f)과 전력에서 주파수 줄어든 것(ff)이 서로 약분되어 사라집니다. 결국 에너지는 전압의 제곱(V2V^2)에만 비례하게 됩니다.
계산기를 두드려보면:0.85×0.85=0.72250.85 \times 0.85 = 0.7225

결론 2:에너지(Energy)는 기존의 약 72.3% 수준이 됩니다.즉, 배터리 소모량이 약 27.7% 감소합니다.

Dynamic Power: 전압의 제곱과 주파수에 비례하므로 (0.8530.85^3), 약 39% 감소한다. (발열 대폭 감소)
Dynamic Energy: 실행 시간이 늘어나 주파수 효과는 상쇄되고 전압의 제곱에만 비례하므로 (0.8520.85^2), 약 28% 감소한다. (배터리 절약 성공)

핵심 인사이트:
아까 "클럭(ff)만 낮추면 에너지는 못 아낀다"고 했죠? 하지만 전압(VV)을 같이 낮추니까(DVFS) 드디어 에너지가 줄어드는 것을 확인할 수 있습니다. 이것이 현대 모바일 프로세서의 핵심 생존 전략입니다.

power problem

배터리 아끼는 핵심 기술

Do nothing well(아무것도 안 할 거면, 확실하게 꺼라): 찰나의 순간에 클럭 끊기 (Clock Gating)

DVFS: 일감에 맞춰 전압/속도 조절하기

Low power state: 시스템 전체 재우기 (Sleep Mode)

Turning off cores: 안 쓰는 코어 전원 차단 (Power Gating)

Race to Halt: (오버클럭 맥락) 빨리 끝내고 빨리 자는 게 이득일 때가 있다.

profile
RTL, FPGA Engineer

0개의 댓글