1. 프로세서의 응답시간, 클럭, 수율 (Latency, Clock Frequency, Yield of Processor)
응답 시간과 처리량Latency and Throughput
컴퓨터의 성능을 나타내는 대표적인 지표로 응답 시간과 처리량이 있다.
응답 시간은 컴퓨터가 한 작업을 수행하는데 걸리는 시간을 의미하고, 처리량은 단위 시간당 컴퓨터가 수행하는 작업량을 의미한다.
성능의 정의
프로세서의 성능은 실행 시간에 반비례한다.
같은 프로그램을 실행하는데 프로세서 A는 10초, B는 15초가 걸렸다면, $\frac{\text{Execution Time}_B}{\text{Execution Time}_A}=\frac{15}{10}$ 이므로 A가 B보다 1.5배 빠르다고 할 수 있다.
응답 시간과 CPU 시간
작업을 끝내는데 필요한 전체 응답 시간, 즉 경과 시간을 Elapsed Time이라 하는데, 이는 처리Processing, 입출력I/O, 운영체제 처리OS Overhead, 대기 시간Idle Time 등을 모두 합친 시간으로 매 실행마다 변화한다. 때문에 정확한 성능 측정을 위한 지표로 CPU 시간을 사용한다.
CPU 시간은 입출력 시간 등 다른 시간을 제외하고 오직 프로그램을 실행하기 위해 소비한 시간만을 의미한다.
CPU Clocking
순차 회로는 일정 속도의 클럭에 따라 동작하는데, 한 클럭에 걸리는 시간을 클럭 주기Clock Period, Clock Cycle Time라 한다. 클럭 주기는 Pico Second, ps 라는 단위로 나타낸다.
$$ 250\text{ps} = 0.25\text{ns} = 250\times 10^{-12}\text{s}$$
CPU의 초당 클럭 사이클 수를 클럭 프리퀀시, 클럭 속도Clock Frequency, Clock Rate라 한다.
$$ 4.0\text{GHz} = 4000\text{MHz} = 4\times 10^9 \text{Hz} $$
CPU 시간은 프로그램을 실행하는 데 사용된 CPU Clock 수에 Clock Period를 곱하여 구할 수 있다.
$$\begin{align*} \text{CPU Time}&=\text{CPU Clock Cycles}\times \text{Clock Period}\\
&=\frac{\text{CPU Clock Cycle}}{\text{Clock Rate}} \end{align*}$$
즉, 성능 향상을 위해선 다음과 같은 시도를 할 수 있다.
- 클럭 사이클 수의 감소
- 클럭 프리퀀시 향상 (클럭 주기와 반비례)
- 클럭 속도가 증가하면 클럭 사이클 수도 증가한다.
예시
클럭 2GHz의 컴퓨터로 10초의 CPU 시간이 소요되는 프로그램을 6초만에 수행하는 컴퓨터를 만든다고 하자.
이를 위해 클럭 속도를 향상시키면, 1.2배의 클럭 사이클이 필요하다고 놓자.
$$ \begin{align*}
\text{Clock Rate}_B &= \frac{\text{Clock Cycles}_B}{\text{CPU Time}_B} = \frac{1.2\times \text{Clock Cycles}_A}{6\text{s}}\\
\text{Clock Cycles}_A &= \text{CPU Time}_A \times \text{Clock Rate}_A\\
&= 10\text{s} \times 2\text{GHz} = 20\times 10^9\\
\text{Clock Rate}_B&=\frac{1.2\times 20\times 10^9}{6\text{s}}=\frac{24\times 10^9}{6\text{s}} = 4\text{GHz}
\end{align*} $$
명령어당 클럭 사이클
어떤 프로그램을 수행에 필요한 명령어의 수는 프로그램, ISA(명령어 집합), 컴파일러에 의해 결정된다.
명령어당 클럭 사이클Clock Cycles per Instruction:CPI는 프로그램의 특정 명령어를 수행하는데 소요되는 평균 클럭 사이클 수로, CPU에 의해 결정되며, 명령어에 따라 CPI가 다르다.
$$\begin{align*}
\text{Clock Cycles} &= \text{Instruction Count}\times \text{Cycles per Instruction}\\
\text{CPU Time} &= \text{Instruction Count}\times \text{CPI}\times \text{Clock Period}\\
&=\frac{\text{Instruction Count}\times \text{CPI}}{\text{Clock Rate}}
\end{align*}$$
정리
$$ \text{CPU Time} = \text{Instruction Count} \times \text{CPI} \times \text{Clock Period} $$
성능에 요인을 주는 영향은 다음과 같다.
- 알고리즘: 명령어 개수, CPI
- 프로그래밍 언어: 명령어 개수, CPI
- 컴파일러: 명령어 개수, CPI
- 명령어 집합 구조(ISA): 명령어 개수, CPI, 클럭 속도
집적회로 기술
전력 소모와 성능
CMOS IC(집적회로) 기술에서, 성능만큼이나 중요한 것이 전력 소모량이다. 전력 소모는 다음과 같이 증가한다.
$$ \text{Power} = \text{Capacitive Load} \times \text{Voltage}^2 \times \text{Frequency} $$
전력 소모량은 전압과 클럭 주파수에 비례한다. 이때, 전압은 2차이므로 전압을 줄이는 것이 전력 소모량을 줄이는데 크게 기여한다.
집적회로의 수율Yield
수율(결함율)은 집적회로에서 어느 정도 수준의 회로가 정상 작동하는지를 나타낸 비율이다. 반도체 공정의 특성상 정밀 공정일 수록 수율이 낮아질 수밖에 없다.
면적과 결함율은 비선형적 관계를 갖는다.
$$\begin{align*}
\text{Cost per die} &=\frac{\text{Cost per wafer}}{\text{Dies per wafer}\times \text{Yield}}\\
\text{Dies per wafer} &\approx \text{Wafer area} / \text{Die area}\\
\text{Yield} &= \frac{1}{(1+(\text{Defects per area} \times \text{Die area}/2))^2} \\
\end{align*}$$
SPEC CPU 벤치마크
CPU의 정밀한 성능 측정을 위해 SPEC(Standard Performance Evaluation Corp)이라는 프로그램이 개발되었다.
MIPS: Millions of Instructions Per Second
어떤 프로그램을 실행했을 때, 초당 몇 백만개의 명령어를 처리하는 지를 측정하는 지표.
Amdahl's Law
컴퓨터의 한 부분만 개선하고, 계선된 양에 비례해서 전체 성능의 향상을 기대하는 것.
예를들어, 100초의 CPU 시간이 걸리는 문제 중 곱셈 계산에 80초의 시간이 소요되고 있을 때, 곱셈을 아무리 개선해봐야 성능을 5배 이상 개선하지는 못한다. (곱셈이 0초만에 끝나도, 다른 작업에 20초가 소요되므로)
'학부 수업 > 컴퓨터구조' 카테고리의 다른 글
5.5 프로그램의 실행 과정 (0) | 2020.10.12 |
---|---|
5. 메모리 접근 (Addressing) (0) | 2020.10.12 |
4. MIPS의 명령어 구조와 명령어들 (0) | 2020.10.12 |
3. MIPS 아키텍처 (0) | 2020.10.12 |
2. 명령어와 CPU 아키텍처 (Instructions and CPU Architectures) (0) | 2020.10.12 |
댓글
이 글 공유하기
다른 글
-
5. 메모리 접근 (Addressing)
5. 메모리 접근 (Addressing)
2020.10.12 -
4. MIPS의 명령어 구조와 명령어들
4. MIPS의 명령어 구조와 명령어들
2020.10.12 -
3. MIPS 아키텍처
3. MIPS 아키텍처
2020.10.12 -
2. 명령어와 CPU 아키텍처 (Instructions and CPU Architectures)
2. 명령어와 CPU 아키텍처 (Instructions and CPU Architectures)
2020.10.12