Computer Science/컴퓨터 구조

[컴퓨터 구조] Measuring Performance (성능 측정)

바보1 2022. 10. 23. 03:16

I/O 시간을 제외하고 CPU execution time만 보겠습니다.

 

개인 컴퓨터 같은 경우에는 response time를 중요시 여기고, 서버 같은 경우에는 throughput을 중요시 여깁니다.

response time은 작업이 접수되고, 시작하기까지 걸린 시간이고,

throughput은 정해진 시간 안에 몇 개의 작업을 하는지입니다.

 

만약 processor를 더 빠른 것으로 교체한다면 response time과 throughput은 모두 향상됩니다.

processor를 추가한다면 response time은 그대로인데, throughput이 향상합니다.

 

따라서 processor를 빠르게 하는 것이 성능 향상에 도움이 되는 것으로 보입니다.

 

cpu는 내부적으로 clock을 가지고 있는데, clock의 edge마다 작업이 이루어집니다.

따라서 clock period가 250 ps라면 clock rate는 그의 역수인 4 GHz가 됩니다.

 

CPU execution time은 아래와 같습니다.

 

clock cycle은 프로그램을 실행하기 위해 필요한 clock의 개수이고,

clock time은 clock cycle의 시간입니다.

 

따라서 CPU execution time을 줄이기 위해서는 clock cycle을 줄이거나, clock time을 줄여서 clock rate를 올려야 합니다.

다만 clock cycle과 clock rate는 trade-off 관계라서 쉽지 않습니다.

 

Clock cycle은 필요한 명령어의 개수와 명령어당 필요한 cycle 수의 곱입니다.

Cycles per Instruction은 CPI라고 합니다.

 

그러므로 위의 CPU execution time 식은 아래와 같습니다.

CPI는 각각의 instruction의 Cycle 평균입니다.

 

따라서 CPU time은 (프로그램의 명령어 수) * (명령어의 사이클 횟수) * (그것을 수행하는 clock rate)의 값으로 나타납니다.

 

MIPS(million instructions per second)는 컴퓨터의 성능을 측정하기 위해 사용됩니다.

MIPS는 다음을 고려하지 않습니다.

  • differences in ISAs between computers
  • differences in complexity between instructions

 

아무튼 MIPS를 올리고 싶다면 CPI를 줄이거나 Clock rate를 올려야 합니다.

어떻게 해야 성능을 끌어올릴 수 있을까요?

 

Amdahl's Law라는 것이 있습니다.

 

만약 프로그램이 100초 동안 실행하고, 80초는 곱셈을 하는 데 사용한다고 가정합시다.

그렇다면 affected는 80, unaffected는 20이 됩니다.

 

우리가 향상하고 싶은 시간이 20초라고 가정해봅시다.

아무리 곱셈을 향상해서 20초까지 줄일 수가 없네요.

 

따라서 RISC-V에서는 make the common case fast to improve the overall performance를 목적으로 합니다.