Computer Abstractions & Technology Part.2 - Computer Architecture

Computer Abstractions & Technology Part.2 - Computer Architecture

Tag
Computer Science Engineering
Computer Architecture

Performance

어떤 것을 기준으로 성능이 좋다고 말할 수 있는가?

Response Time ( 응답 시간 ) and Throughput ( 처리량 )

  • Response Time: task를 수행하는 데 걸리는 시간
  • Throughput: 단위 시간 안에 얼마나 많은 일을 하는가
 
→ 우선 응답 시간에 초점을 맞춰서 알아보자.
 

상대적인 성능

성능 = 1 / 실행시간
 
  • X가 Y보다 n배 빠르다는 것은 아래와 같다.
notion image
  • ex) A는 10초, B는 15초가 걸린다.
    • A는 B보다 1.5배 ( 15s / 10s ) 빠르다.
 

실행시간 측정

  • Elapsed Time(wall clock time, response time) ( 경과 시간 )
    • 모든 측면을 포함한 총 응답 시간
      • processing, I/O, OS overhead, idle time 포함
  • CPU time
    • 주어진 일을 처리하는데 걸리는 시간
      • I/O나 다른 작업을 하는데 사용한 시간 제외
    • user CPU time과 system CPU time이 있음
    • 프로그램이 다르면 CPU와 시스템 성능에 대해서 다르게 영향을 받을 수 있다.
 

CPU Clocking

 
notion image
 
  • Clock period (clock cycle time): 한 클럭의 싸이클 기간. rising edge 이후 다음 rising edge까지 걸리는 시간
    • e.g., 250ps = 0.25ns = 250*10^-12s
  • Clock frequency(clock rate): 초당 싸이클 수
    • e.g, 4.0GHZ = 4000MHZ = 4.0 * 10^9 Hz
    •  
📌
Clock period = 1 / Clock frequency
ex) 10ns Clock cycle = 10MHz clock rates

CPU Time

📌
CPU Time = CPU Clock Cycles X Clock Cycle Time = CPU Clock Cycles / Clock Rates
  • 성능 향상 방법 ( CPU Time을 줄이는 방법 )
    • clock cycle의 수를 줄이면
    • clock rate를 증가시키면
    • 하드웨어 디자이너는 반드시 cycle수 대비 clock rate를 조절해야 한다.
    •  

CPU Time Example

  • 컴퓨터 A: 2GHz clock, 10s CPU time
  • 컴퓨터 B 설계
    • CPU time 6s 목표
    • B clock cycles는 A의 clock cycles의 1.2배이다.
  • 컴퓨터 B의 clock은 얼마나 더 빨라야 하는가? ⇒ 4GHz
 

Instruction Count와 CPI

프로그램은 instruction들이 있기 때문에 instruction 하나 당 평균적인 클럭 개수를 알면 된다.
📌
Clock Cycles = Intstruction Count X Cycles per Instruction
📌
CPU Time = Instruction Count X CPI X Clock Cycle Time = Instruction Count X Cycles per Instruction / Clock Rate
 
  • 프로그램의 Instruction Count란?
    • 프로그램, ISA(Instruction set Architecture)와 컴파일러 등에 의해 결정 됨
  • Instruction 당 평균 cycle 수 ( Average cycles per instruction, CPI )
    • CPU 하드웨어에 의해 결정됨 ( CPU가 어떻게 구성되어지고 만들어져 있는지에 따라 )
    • 만약 instruction이 다르다면, CPI도 다름.
 

CPI Example

  • 컴퓨터 A: Cycle Time = 250ps, CPI = 2.0
  • 컴퓨터 B: Cycle Time = 500ps, CPI = 1.2
  • 동일한 ISA → instruction count가 같음
  • 어떤 컴퓨터가 얼마나 빠른가?
→ A가 1.2배 빠름
 

CPI를 더 자세히 알아보자

  • 만약 instruction의 종류가 다르다면, 필요한 cycles이 다를 것이다.
notion image
 
  • 가중 평균 CPI ( weighted average CPI )
notion image
 

CPI Example

종류
A
B
C
CPI
1
2
3
결과1에서의 instruction count
2
1
2
결과2에서의 instruction count
4
1
1
  • 결과 1
    • instruction 총 수 = 5
    • CPU clock cycles = 1 * 2 + 2 * 1 + 3 * 2 = 10
    • CPI = 10 / 5 = 2.0
  • 결과 2
    • instruction 총 수 = 6
    • CPU clock cycles = 1 * 4 + 2 * 1 + 3 * 1 = 9
    • CPI = 9 / 6 = 1.5
 

Performance Summary

notion image
  • 알고리즘: IC에 영향. CPI에 영향을 줄 수도 있음
  • 프로그래밍 언어: IC, CPI에 영향.
  • 컴파일러: IC, CPI에 영향
  • ISA: IC< CPI, Clock Cycle Time에 영향