성능 측정 기준

1) 응답시간, 경과시간(elapsed time)
- 한 작업을 끝내는 데 필요한 전체 시간을 뜻하는 것으로 디스크 접근, 메모리 접근, 입출력 작업, 운영체제 오버헤드 등 모든 시간을 다 더한 것이다.(사용자가 느끼는 응답시간)

2) CPU 실행시간(CPU execution time), CPU 시간(CPU time)
- 입출력에 걸린 시간이나 다른 프로그램을 실행하는 데 걸린 시간은 여기 포함되지 않는다. 이 시간은 또 사용자 CPU 시간(User CPU time)과 시스템 CPU 시간(System CPU time)으로 나눌 수 있다.(즉, CPU 시간 = 사용자 CPU 시간 + 시스템 CPU 시간)

* 시스템 성능: 다른 부하가 없는 시스템에서의 경과시간(elapsed time)을 기준으로 측정한 것.
* CPU 성능: 사용자 CPU 시간(User CPU time)을 기준으로 측정한 성능.


클럭(Clock)

CPU를 비롯한 컴퓨터의 모든 부품들은 특정한 신호에 맞추어 동작을 하는데, 이 특정한 신호를 가리키는 말이 바로 '클럭'이라는 단어이다.
보통 한 신호 뒤에 다음 신호가 올 때까지의 간격을 한 단위로 잡으며, 클럭 스피드는 보통 Hz로 표시한다. Hz는 초당 몇 번의 신호가 있는지를 나타내는 단위이다. 즉 1초에 1번 작동하는 것을 1Hz라고 한다. 예를 들어 75MHz라고 하면 초당 7천 5백만 번의 사이클로 0과 1의 디지털 신호를 발생한다는 것을 의미한다. 그러나 동일 코어일때 클럭 스피드가 높다고 무조건 좋은 성능을 내는것이 아니다. 코어 세대 버전에 따라 한 클럭에 처리될 수 있는 명령 횟수(IPC)가 틀리기 때문이다.(3Ghz에 IPC가 7이면 21Ghz. 즉, 초당 21억회의 명령을 처리할 수 있다는 뜻) 


사용자 CPU 시간(Uer CPU time)

프로그램의 CPU 시간은 프로그램의 클럭 사이클 수 * 클럭 사이클 시간 또는 프로그램의 클럭 사이클 수 / 클럭 속도이다.(클럭 사이클 시간과 클럭속도는 역수관계이기 때문)


CPI(clock Cycles per instruction) 

명령어당 클럭 사이클 수이다. 즉 어떤 프로그램의 실행이 1억개의 명령어로 이루어져 있고 1억개 명령어의 평균 CPI가 2.0이면 2Ghz의 클럭이 만들어지는 것이다. 

ex) 같은 명령어 집합 구조(명령어를 정의하는 구조, 명령어의 갯수가 같다고 보면 된다.)를 가지는 동일한 A, B 컴퓨터가 있다. A의 클럭 사이클 시간은 250ps, 어떤 실행에 대한 CPI는 2.0이고, B의 클럭 사이클 시간은 500ps, CPI는 1.2이다. 해당 실행에 대해 어떤 컴퓨터가 얼마나 빠른가?
- 두 컴퓨터가 실행해야 하는 명령어의 개수는 서로 같다.(같은 명령어 집합구조를 가지기 때문에) 명령어 개수를 I라고 하면,
A의 클럭사이클 수 = I * 2.0 - > A의 CPU 시간 = I * 2.0 * 250ps = 500ps
B의 클럭사이클 수 = I * 1.2 - > B의 CPU 시간 = I * 1.2 * 500ps  = 600ps
이므로, A가 B보다 1.2배 빠르다고 할 수 있다.

 

Posted by 홍성곤
,