1-2) Performance

서진·2023년 4월 15일
0

컴퓨터구조

목록 보기
2/8

Performance = 1 / execution time

수행시간이 길면 퍼포먼스가 나쁜 것임

execution time은 어떻게 정의하는가?

  1. elapsed time
    : 전체 응답 시간을 말함. processing, 입출력, os 오버헤드 다 더한 것

  2. cpu time ✅
    : 주어진 특정 job을 수행하는데 걸린 시간. 다른 일은 무시하고 딱 'cpu'에 걸리는 시간만 측정

우리는 CPU time === execution time


Clock Cycle

  1. clock cycle : 특정 타임에서 위로 갔다가 내려가는 것을 반복. cycle동안 instruction을 가져오거나 메모리에 접근하는 등의 일을 함

  2. clock period : 컴퓨터 cpu안 clock의 하나의 cycle을 마무리하는 시간 (rising - rising)
    2-1) rising clock (rising edge) : state가 업데이트 됨
    2-2) falling clock (falling edge) :

  1. ✅ clock rate = 1 / clock period
    ✅ clock cycle time = clock period = 1 / clock rate

CPU Performance

cpu execution time = clock cycle / clock rate
 		 		   = clock cycle * clock period (= clock cycle time)

실행시간 = 한 주기 X 한 주기 당 시간

CPI (Clock cycles Per Instruction)

특정 프로그램을 위해 Instruction 당 clock cycle 수
(명령어 하나 실행하는데 clock cycle 평균 몇 번? )

CPU clock cycles = instruction 수 X instruction당 평균적으로 필요한 clock cycles (CPI)

cpu 전체 clock 수 = 명령어 수 X 평균 clock cycle 수

-> cpu clock 수 : 결정되어서 나옴
-> instruction 수 : 코딩에 의해 결정
-> average cycles : 하드웨어가 결정

code sequence 구하기 문제

code sequence : 같은 function 하는데 누가 더 코딩을 잘했는지 따지는 것

instruction 수 만으로 성능을 평가하면 안됨!

1. cpu excution time 계산을 위해 clock cycle 계산하기

✅ cpu execution time = clock cycle X clock cycle time
✅ clock cycle = instruction 수 X CPI

sequence 1 clock cycle = 21 + 12 + 23 = 10
sequence 2 clock cycle = 4
1 + 12 + 13 = 9

=> clock cycle이 더 짧은 sequence 2가 더 빠르다

2. 각 코드의 CPI 구하기

✅ CPI = clock cycle / instruction 수

sequence 1 CPI = 10 / (2+1+2) = 2.0
sequence 2 CPI = 9 / (4+1+1) = 1.5


perfromance, execution time 결정하는 4가지

  1. 알고리즘
    : instruction 수, CPI가 달라짐에 따라 시간이 달라짐
  2. programing 언어
    : 언어에 따라 instruction 수가 달라짐 -> CPI가 달라짐
  3. compiler
    : 성능이 얼마나 좋은지에 따라 assembly어의 길이가 달라짐
  4. ISA
    : clock rate는 ISA를 보고 미리 결정되어 나옴. clock rate가 높을수록 좋으므로 ISA의 영향 받음

🚨 결론

  1. performance 는 execution time의 역수
  2. execution time은 cpu time으로 정함 (cpu execution time)
  3. cpu time = (instruction count X CPI) / clock rate
  4. cpu time의 역수는 Performance

수식 정리

cpu execution time = clock cycle X clock cycle time
		 		   = (instrunction 수 X instruction당 평균적으로 필요한 clock cycle) X clock clycle time
         		   = (instruction 수 X CPI) X clock cycle time
                   = {instruction 수 X (clock cycle / instruction 수)} X clock cycle time
                   = clock cycle X clock cycle time
                   
CPU Execution time = clock cycle X clock cycle time

보기 편하게

실행시간 = 전체 clock cycle X cycle 도는 시간
	   = (명령어 수 X 명령어 당 필요한 cycle 평균) X cycle 도는 시간
	   = (명령어 수 X (전체 clock cycle / 명령어 수)) X cycle 도는 시간
	   = 전체 clock cycle X cycle 도는 시간
       = 전체 clock cycle / clock rate

profile
🫧 ☁️ 🌙 👩🏻•💻 🌿 🐱 🖱 🍟 🚀 ⭐️ 🧸 🍀 💗

0개의 댓글