[컴퓨터 구조] Ch1 - Computer abstractions and Technology part 2

으닝·2023년 4월 18일
0

Defining Performance

성능이 무엇이 좋냐? → 어떻게 정의하냐에 따라 다르다.

  • 성능에 대한 정의 - 성능을 비교하는 것은 상황에 따라 다를 수 있음
  • 예시 ) 비행기에 대한 예시. 승객 수 기준으로 보냐, 속도로 보냐에 따라 성능이 좋은 비행기가 달라질 수 있음.

Measuring performance

성능 측정→ cpu의 속도 향상 측면에서의 관점.

컴퓨터가 데이터를 처리하는 속도를 비교하기 위해, performance 성능을 측정해야 한다.

성능 측정의 기준이 되는 것들

  • Clock speed
  • CPI(Clock Cycle per Instruction) instruction 당 clock cycle
  • MIPS(Millions of Instructions per Second) 1초당 처리 가능한 instruction

Performance by Time 시간 개념에서의 성능 측정

  • 시간은 컴퓨터의 성능 측정 기준이 됨.
  • Response time=Execution time : Seconds/프로그램
  • 실행 시간이 길어질수록 성능은 줄어든다. 역수관계
  • X가 Y보다 성능 n배라면 Y의 실행시간이 X의 n배

*예시: 프로그램이 돌아가는데 걸리는 시간

ㆍA는 10초, B는 15초

ㆍExecution Time B / Execution Time A = 15s/10s = 1.5

ㆍ즉, A는 B보다 1.5배 더 빠르다.

Performance of CPU

by execution time

  • CPU 실행시간 (1) CPU clock cycles (2) clock cycle time과 연관
  • Clock : on/off 형태를 반복하는 전류의 흐름을 이용하여 pc를 구성하는 부품을 작동시키는 신호
  • Clock period: 한 클럭 싸이클 기간. rising edge 후 다음 rising edge까지(동일한 행동) 걸리는 시간.

ㆍ e.g., 250ps = 0.25ns = 250*10^-12 s

  • Clock frequency(rate): 초당 싸이클 수

ㆍ e.g., 4.0GHz = 4000MHz = 4.0*10^9 Hz

Clock rate(clock cycles per second in MHz or GHz)는 Clock period(Clock cycle time)의 역수관계이다.

CC = 1/CR

ㆍ10ns CC → 100MHz CR

ㆍ5ns CC → 200MHz CR

ㆍ2ns CC → 500MHz CR

ㆍ1ns CC → 1GHz CR

ㆍ500ps(0.5ns) CC → 2GHz CR

ㆍ250ps CC → 4GHz CR

ㆍ200ps CC → 5GHz CR

  • Cpu clock cycle : CPU에 가해지는 전기적 진동의 속도를 나타내는 단위. cpu가 어떤일을 수행하는데 몇 개의 clock을 사용하는지(Hz). clock 개수라고 보면됨.
  • Clock Cycle Time=Clock Period : 한 clock당 걸리는 시간. (ps)
  • CPU execution time = CPU clock cycles x Clock cycle time


(참고 - cpu 시간은 오직 프로그램을 실행하기 위해 소비한 시간만을 따짐 주어진 일을 처리하는데 순수하게 cpu에서 걸리는 시간. I/O 나 다른 작업 하는데 사용된 시간은 제외)

  • clock cycle수 작을수록, Cycle 수 대비 lock rate 클수록, Clock cycle time 작을수록(clock frequency 클수록) cpu 성능향상
  • 클럭 속도가 증가하면 클럭 사이클 수 증가’

예시

클럭 2GHz의 컴퓨터로 10초의 CPU 시간이 소요되는 프로그램을 6초만에 수행하는 컴퓨터를 만든다고 하자. 그 컴퓨터의 clock rate는?

이를 위해 클럭 속도를 향상시키면, 1.2배의 클럭 사이클이 필요하다.

by CPI

  • 프로그램의 instruction 수(instruction count) : 프로그램, ISA, 컴파일러 등에 의해 결정
  • CPI(Clock cycles per Instruction) : 각 instruction 당 수행하기 위해 필요한 평균 clock cycle 개수
  • CPU에 의존하여 결정되는 값이다. 명령어에 따라 CPI가 다르다.
  • 어떤 프로그램을 수행할 때 필요한 명령어의 수는 프로그램, ISA, 컴파일러 등에 의해 결정된다.
  • CPU 총 clock cycle = CPI (명령어당 평균 clock cycle 개수)X 프로그램의 instruction 개수

  • CPU clock cycle 작을수록, 실행속도 올라가고 성능 향상

+) 만약 intruction 종류가 다르면, 다른 cycle 수를 요구함.

ㆍ가중 평균 CPI (weighted average CPI)

  • 최종 CPU 성능 방정식

Clock cycle time하고 clock rate는 역수관계.


instruction 수가 작다고 무조건 속도가 빠른거 아니다. instruction당 필요한 clock cycle에 따라, clock cycle time따라 전체 CPU 성능은 다를 수 있다.

요약하면 CPU 성능의 요소는

  • 프로그램 당 CPU 실행 시간 - 프로그램을 위한 Seconds
  • Instruction count - 프로그램당 수행되는 명령어
  • CPI - 명령어 당 평균 clock cycle 수
  • Clock cycle time - clock cycle 당 시간

Understanding Program Performance

성능에 영향을 주는 요인들

  • 알고리즘 : Instruction 개수 줄어들수록, CPI 줄어들수록 알고리즘 성능 향상
    • source program과 프로세서 instruction 개수, CPI에도 영향
    • 엥 알고리즘이 Instruction count랑 CPI에 영향 주는게 아니고 반대여..?
    • ex) 알고리즘이 나눗셈을 많이 하면 CPI 높아짐.
  • 프로그래밍 언어 : instruction 개수랑 CPI에 영향 줌.
    • 프로그래밍 언어가 processor instruction으로 번역 → instruction 개수를 결정
    • CPI에도 영향 : 자바와 같이 데이터 추상화를 지원하는 언어는 간접 호출이 많아서 CPI가 더 높다
    • Elapsed time=한 작업을 끝내는 데 필요한 전체 시간 → CPU Time이랑 똑같은겨..?
  • 컴파일러 : instruction 개수랑 CPI 영향줌.
    • source language 명령어를 컴퓨터 명령어로 번역하므로 명령어 개수 결정
  • ISA(Instuction set architecture) : 명령어 개수, clock 속도, CPI에 영향.
  • 명령어 집합 구조로서 cpu마다 정해둔 일종의 규약이다.
  • 각 명령어당 필요한 cycle, 함수의 instruction 개수, 프로세서의 전체적인 clock rate에 영향을 준다.

The power wall

  • clock rate와 power의 상관관계. 소비 전력이 올라가면 클럭 속도가 올라가는 듯하지만 일정 이상의 전력을 높이면 열이 발생해 성능이 저하되고, 그렇다고 전력을 낮추면 클럭속도가 느려지는 trade off관계를 일컬음.
  • → 전력을 올린다고 무조건 성능이 증가하는 것이 아니라 전력에 따른 냉각도 고려해야 함.

*새로운 CPU가 있다고 가정

ㆍ기존 CPU보다 85%의 capacitive load

ㆍ15%의 voltage 감소와 15%의 frequency 감소 (기존 CPU의 85% voltage, frequency)


cpu와 clock rate는 상관관계가 있지만 마이크로프로세서 제품 냉각을 위한 전력 제한에 도달하면서 최근에 추세가 꺾였다.

cpu의 clock rate와 전력은 매년 10년 단위로 빠르게 증가. 최근에는 꺾인 추세

Growth in processor performance

1980년대 중반 이후 single-core 프로세서 성능 지속적으로 성장

성능 증가율은 감소→ 전력소모, 메모리 지연등의 제한 때문

MIPS(Million Instruction Per Second)

  • 초당 몇백만개의 instruction을 수행하는가 MIPS가 클수록 성능 좋음.
  • 명령어의 실행횟수(백만 단위)를 기반으로 프로그램 실행 속도를 측정
  • 실행속도가 빠르면 MIPS가 크다.
  • ISA, instruction마다 복잡도가 다름. instruction마다 CPI가 다름.

  • 함정 ? 결과적으로instruction count는 약분이 되니까 clock rate, CPI 주어져 있으면 계산에 필요없다

MIPS에서 제기되는 문제점

(1) 다른 컴퓨터의 서로 다른 Instruction set을 비교할 수 없다.(Instruction count가 완전히 다를때)

MIPS는 전체 명령어 전체 속도를 의미하고 명령어 하나가 얼마나 많은 일을 수행하는지는 알 수 없다.

명령어별 컴퓨터에서의 실행속도를 알 수 없다.

(2) 같은 컴퓨터(같은 CPU)에서도 어떤 프로그램을 시행하느냐에 따라 MIPS 값이 다르다.

Clock rate은 동일하지만 CPI는 프로그램마다 다르다.

(3) 한 프로그램이 비교되는 프로그램보다 명령어 개수가 많더라도 더 빠를 수 있다. 이 때 MIPS는 성능과 독립적일 수 있다.

CPI→ CPU, 프로그램에 따라 달라짐

Summary

MIPS는 적절한 하드웨어 성능 측정 단위라고 하기 어렵다.

Execution time이 성능 측정에 신뢰할 수 있는 도구이다.

성능은 (1) 프로그램당 Instruction 개수 (2) CPI(instruction당 평균 clock cycle 개수) (3) CPI성능 (CPU가 처리할 수 있는 Clock cycle 개수)의 영향을 받는다.

profile
아이쿠

0개의 댓글