본문 바로가기
Alchitecture

컴퓨터의 성능

by 보라코끼리 2021. 12. 30.
728x90

- 본 문서는 KOCW 에 공개된 컴퓨터구조 - 영남대학교 최규상 교수님의 2015년도 2학기 강의를 보고 정리한 내용입니다.

CPU time

CPU Time = CPU Clock Cycles (클럭 수) * Clock Cycle Time (하나의 클럭 당 시간)
	
           CPU Clock Cycles
         = ----------------
              Clock Rate
  • 성능이 향상되는 시기
    • CPU time 이 감소할 때
    • 클럭 수가 감소할 때
    • 클럭 비율이 증가할 때
    • 사이클 수와 클럭 비율에 대해 민감하게 반응한다 (간혹 사이클 수가 증가하는데 클럭 비율도 증가하는 경우도 있다 -> 잘 봐야 한다)
    • Computer A : 2GHz clock, 10s CPU time / Designing Computer B(새로운 컴퓨터) : 목표 CPU time 6초, 더 빠른 클럭 사용, 1.2 배의 클럭 사이클이 걸리도록 -> Computer B 의 클럭은?
      •                 Clock Cycles B    1.2 * Clock Cycles A
        Clock Rate B = ---------------- = ---------------------
                          CPU Time B               6s
                          
        Clock Cycles A = CPU Time A * Clock Rate A
                       = 10s * 2GHz = 20 * 10^9
                       
                        1.2 * 20 * 10^9     24 * 10^9
        Clock Rate B = ----------------- = ----------- = 4GHz
                               6s               6s

 

Instruction Count and CPI

Clock Cycles = Instruction Count (명령 수) * Cycles per Instruction (CPI, 하나의 명령 당 걸린 사이클)
CPU Time = Instruction Count * CPI * Clock Cycle Time

            Instruction Count * CPI
         = -------------------------
                  Clock Rate
  • 프로그램의 Instruction Count
    • 프로그램, ISA, 컴파일러에 의해 결정
  • Cycles per instruction 의 평균
    • CPU 하드웨어에 의해 결정
    • instruction 의 종류가 다른 경우 서로 다른 CPI를 사용
      • => instruction 이 섞여있는 경우 CPI 의 평균을 사용
  • 예)
    • Computer A : Cycle Time = 250ps (4GHz), CPI = 2.0
    • Computer B : Cycle Time = 500ps (2GHz), CPI = 1.2
    • Same ISA => A 와 B 의 Instruction Count 수가 같다
    • 어떤 컴퓨터가 얼마나 빠른가?
      • CPU Time A = Instruction Count * CPI A * Cycle Time A
                   = I * 2.0 * 250ps = I * 500ps 
        CPU Time B = Instruction Count * CPI B * Cycle Time B
                   = I * 1.2 * 500ps = I * 600ps
                   
                   => A 가 더 빠르다
                   
         CPU Time B     I * 600ps
        ------------ = ----------- = 1.2
         CPU Time A     I * 500ps
         
                   => 1.2 배 더 빠르다

 

CPI 자세히 보기

  • 다른 instruction 클래스들은 다른 사이클 수를 요구한다.

  • CPI 의 가중평균(Weighted Average)

  • 예)
    • 클래스 A, B, C의 명령어를 사용하여 컴파일된 대체 코드 배열
    • Class A B C
      CPI for class 1 3
      IC in sequence 1
      (컴파일된 코드 1)
      2 1 2
      IC in sequence 2
      (컴파일된 코드 2)
      4 1 1
    • Sequence 1 : IC = 5
      • Clock Cycle = 2 * 1 + 1 * 2 + 2 * 3 = 10
      • Avg. CPI = 10/5 = 2.0
    • Sequence 2 : IC = 6
      • Clock Cycle = 4 * 1 + 1 * 2 + 1 * 3 = 9
      • Avg. CPI = 9/6 = 1.5
    • => Sequence 2 가 1보다 더 빨리 실행된다.

 

요약

            Instructions     Clock cycles       Seconds
CPU Time = -------------- * -------------- * -------------
               Program        Instruction     Clock cycle
  • 성능 의존
    • Algorithm : IC, CPI 에 영향을 준다
    • Programming 언어 : Ic, CPI 에 영향을 준다
    • 컴파일러 : IC, CPI 에 영향을 준다
    • Instruction set architecture (ISA) : IC, CPI, Clock cycle time 에 영향을 준다.
728x90