OS/ComputerArchitecture
[ComputerArchitecture] Performance 평가하기
SweetDev
2021. 9. 10. 11:10
Comparing Performance
같은 일에 대해서, 실행시간이 짧게 걸릴 수록 퍼포먼스는 좋아진다. 그렇다면 실행시간은 어떻게 계산할까?
Execution Time 계산하기
- Elapsed Time
- 모든 시간을 다 합친 Total Response Time
- Processing, I/O, OS Overhead, idle time 등 모두 포함!
- 비교하기에는 부정확하다
- 모든 시간을 다 합친 Total Response Time
- CPU Time
- User CPU Time, System CPU Time으로 나눠진다.
- I/O Time이나 다른 프로그램 수행 시간 전부 제외
- 주로 User CPU Time을 통해서 프로그램의 수행 시간을 계산한다.
CPU Clocking
- Clock Frequency (Clock Rate)
- 1초에 사이클 몇번??
- e.x ) 4 GHz = 4000MHz = 4 * 10^9 Hz 이면, 1초에 4기가번만큼 사이클을 돈다는 뜻이다.
- Clock Period
- 한 사이클 시간??
- e.x ) 250ps = 0.25ns = 250 * 10^-12 s 이면, 한 사이클을 도는데 250* 10^(-12)초가 걸린다는 뜻이다.
- Clock Rate = 1/(Clock Period)
CPU Performance
- 유일한 평가 기준은 Execution Time
Instruction Count
- 프로그램에서 몇번의 Instruction이 필요할까?
- 프로그램, ISA, Compiler에 의해 결정된다.
CPI ( Clock-cycles Per Instruction )
- 하나의 instruction을 실행하는데 몇개의 clock cycle이 필요한가?
- CPU Hardware에 의해서 결정된다.
- instruction마다 CPI가 다르다. add는 3번인데 assignment는 2번일 수 있다.
- 따라서 평균을 구해서 계산한다.
- Weighted Average CPI 계산하기
정리
SPEC Benchmark
- Performance를 객관적으로 측정하기 위한것
- SPEC = Standard Performance Evaluation Corp
Amdahl's Law
- Part를 업데이트 한다고 전체가 빨라지는 것은 아니다!
Low Power at Idle
- Idle하는데 에너지가 너무 많이 들어서, 이를 줄이기 위한 노력
MIPS as a Performance Metric
- ISA에서 말하는 MIPS랑은 상관 없는 개념이다!
- MIPS = Millions of Insturctions Per Second, 즉 1초에 몇십만개의 Instruction을 해냈는지 계산하는거다!
- Instruction Count가 식에 반영되지 않았으므로 성능 평가 요소로는 사용할 수 없다.