출처: https://3months.tistory.com/307 [Deep Play]

4-1/컴퓨터아키텍쳐

Chapter 1 : Relative Performance, CPU time

코딩하는 랄뚜기 2022. 3. 10. 13:28

Relative Performance

Performance1/execution time으로 정의할 수 있다.

 

그렇다면 "X는 Y보다 n배 빠르다"를 어떻게 표현할 수 있을까?

 

 

위 표현은 x의 performance / y의 performance로 나타낼 수 있고 performance는 excution time의 역수이므로 위와 같이 나타낼 수 있다.

 

예를 들어 A의 execution time은 10s B의 execution은 15s라면 A는 B보다 15/10=1.5배 빠르다고 할 수 있다.

 

실행시간(Execution time)Elapsed timeCPU time으로 나눌 수 있다.

Elapsed time시스템이 프로그램을 처리하는데 드는 총 시간을 의미한다.( Processing, I/O, overhead 등 모든 시간을 포함 )

CPU time CPU가 일을 처리하는 데 걸리는 시간을 의미한다. user CPU timesystem CPU time으로 이루어져 있다.

 

 


 

CPU Time

 

CPU는 해야할 일을 Clock period 단위로 할당 받는다.

 

 

Clock frequency는 Clock period의 역수이다.

만약 Clock period가 250ps라면 Clock frequency = 1 / (250*10^(-12) ) = 4*10^9 = 4 MHz가 된다.

 


 

CPU Time의 정의는 다음과 같다.

 

 

따라서 CPU 성능은 Clock cycle을 줄이거나 Clock rate을 늘리면 향상된다.

 

만약 Clock Rate이 2 GHz이고 CPU time이 10s인 컴퓨터 A가 있다고 가정할 때, CPU time이 6s인 컴퓨터 B는 컴퓨터 A보다 얼마나 빨라야 할까? (단, A보다 Clock cycle이 1.2배 많다 )

 

 


 

Clock CyclesIC(Instruction Count)*CPI(Cycles per Instruction)으로 표현된다. 따라서 CPU time은 아래와 같이 정의 될 수 있다.

 

 

여기서 IC는 Static IC Dynamic IC로 나누어진다.

Static ICuser가 작성한 instruction을 세는 것이고 Dynamic IC실제 프로그램이 돌아갈 때 실행되는 instruction을 세는 것이다. 

for(int i=0;i<100;i++){ // Static IC : 3
    printf("hi\n");   // Dynamic IC : 100 + ɑ
}

 

CPU time 정의에서의 IC는 Dynamic IC를 의미한다.

IC는 ISA(Instruction Set Architecture) Compiler에 의해 결정된다.

'4-1 > 컴퓨터아키텍쳐' 카테고리의 다른 글

Chapter 2  (0) 2022.04.05
Chapter 1 : Power, Integrated Circuit  (0) 2022.03.16
Chapter 1 : CPI( Cycles Per Instruction )  (0) 2022.03.15