본문 바로가기

컴퓨터 구조

자주 나오는 공식 리뷰

1. 컴퓨터 구조를 배우면 항상 등장하는 식.

cpu time (execution time) = IC * CPI * CCT

실행 시간은 instruction 개수, instruction 하나당 cycle 수, 1cycle당 걸리는 시간(sec)의 곱이라는 의미이다.

보통 CCT의 경우, clock rate (clock frequency)로 표현이 되는데, 이는 CCT의 역수이다.

즉 clock frequency는 1초당 몇 cycle인지를 의미하며, Hz 단위를 보고 이 숫자가 clock frequency임을 파악하게 된다.

CPI = ideal CPI + stall CPI

stall CPI = data hazard s.CPI + control hazard s.CPI + structural hazard s.CPI + cache miss s.CPI

cf : data hazard의 경우 다른 게시물에서 자세히 설명하였다. :)

 

2. Static vs Dynamic

① IC

-- static IC : 프로그램의 instruction 개수

-- dynamic IC : 위 식에서의 IC

② Power와 Energy

-- static Power/Energy : 실행중이 아닐 때도 소모되는.

-- dynamic Power/Energy : 실행하면서 소모되는

 

3. Power vs Energy (dynamic)

Power는 변화율. "얼마나 베터리를 빨리 소모하는가" 를 의미한다. (단위 : Joule)

Energy는 총량. "베터리가 얼마나 남았는가"를 의미한다. (단위 : Watt)

시간에 대해서 power를 적분하면 energy가 되고, 반대로 energy를 미분하면 power가 된다.

<공식>

Power .. C V^2 f

Energy .. C V^2

예를 들어 clock frequency를 2배 낮추면, power는 2배 감소한다. 이것은 더 느리게 일하는 대신 베터리를 더 느리게 소모함을 의미한다. 반면, energy는 변화가 없다. "베터리의 양"을 의미하는 energy는 일하는 속도와는 무관하기 때문이다.

이때 Execution time의 경우, 2배 증가한다. 이것은 더 느리게 일하기 때문에 더 오래 걸리는 것을 의미한다.

cf : V(Voltage)를 낮추면 frequency가 같이 감소하는 것이 일반적이다.

이것에 대한 이유는 나의 생각인데, 전류가 흐르기 위한 높낮이를 만들어주는 전압이 낮아지는 것이므로,

자연스럽게 더 느리게 일하게 되는 것이다. 

 

4. Static Power

static power = static current * voltage

static power는 누설 전류에 의해 발생한다. 즉 공식의 static current는 누설 전류의 세기를 의미한다.

 

5. 암달의 법칙

(최대로 올릴 수 있는 속도) = 1 / {(1 - 향상시킨 성능 비율) + 향상시킨 성능 비율/향상시킨 속도}

내가 60%를 차지하는 파트에 대해 10배의 성능 향상을 이루었다면, 전체 속도도 40% 증가했으면 좋겠지만,

나머지 40%가 성능 향상과 무관하기 때문에, 전체 속도 향상이 그보다 적게 이루어지는 상황을 의미한다.

0.6 + 0.4/10 = 0.64

1 / 0.64 ≒ 1.56 배로 속도가 향상된다. 

p/s : 암달의 법칙 공식이 너무 복잡하다. 예시로 기억하자!