CPU 성능 분석
CPU성능분석을 위해 알아야하는 개념들은 다음과 같다.
Response time : 응답시간 | 작업을 끝내는데 걸린 시간 |
Throughput : 처리량 | 단위시간당 처리한 작업량 |
Execution time : 실행시간 | 어떠한 결과를 내놓는데 걸리는 총 시간 |
Clock(cycles) : 클럭(사이클) | 연산을 조정하는 타이밍 신호 |
Clock period : 클럭시간 | 클럭하나가 걸리는 시간 |
Clock frequency(rate) : 클럭주기 | 1초당 도는 클럭의 개수 |
CPU time : CPU 시간 | 한 컴퓨터 프로그램이 CPU를 차지하여 일을 한 시간의 양 |
Instruction count(IC) : 명령개수 | 한 프로세스의 총 명령개수 |
Cycles per instruction(CPI) | 명령 당 필요한 사이클(클럭)의 개수 |
Performance(성능) & Execution time(실행시간)
성능 = 1/실행시간
X는 Y보다 n배 만큼 성능이 좋다(빠르다).
Execution time에는 Elapsed time, CPU time 두가지가 있다.
Elapsed time (wall clock time, response time 다 같은 표현) : 모든 측면을 포함한 총 작업시간
프로세싱, I/O, OS overhead, idle time등 포함
CPU time : CPU가 주어진 작업을 실행하는데 드는 시간
I/O작업이나 다른 작업들을 포함하지 않음
Clock(클럭, 사이클)
클럭 신호(영어: clock signal)는 논리상태 H(high,논리 1)와 L(low,논리 0)이 주기적으로 나타나는 방형파(square wave) 신호를 말한다.
많은 경우 전자공학의 디지털 회로에서 클럭 신호에 맞추어 신호의 처리를 하는 동기 처리를 위해 사용한다.
-wikipedia-
Clock period : 클럭 한 주기에 걸리는 시간
예) 1ns(nano second)
Clock frequency(rate) : 1초에 도는 클럭의 개수
예) 1s/1ns = 10^9 = 1GHz
CPU time의 계산
CPU time = CPU clock cycles * Clock cycle time = CPU clock cycles / Clock rate
[clock cycles는 클럭의 개수를 의미한다]
CPU time을 줄이는 방법
클럭의 수를 줄이거나 rate를 올리면 CPU time이 줄어 성능이 향상될 수 있다.
Instruction Count(IC) & CPI
Instruction Count(IC) : 한 프로세스(프로그램)에서 실행할 명령의 개수
CPI : 명령당 필요한 클럭(사이클)의 개수
CPI는 CPU에 따라 달라지게 되고 명령마다도 값이 다를 수 있다.
따라서 CPI의 평균값을 구해 계산하게 된다.
Clock cycles = IC * CPI
CPU time = IC * CPI * Clock Cycle time = IC * CPI / Clock rate
평균 CPI 구하기