본문 바로가기

Study/Architecture

Performance

728x90

우리가 기계를 고를 때 어떤 부분을 고려하는지 알아보자

먼저 성능이 가장 좋은지를 고려해 볼 수 있고

다음으로는 적절한 비용이 드는지 고려해볼 수 있다.

 

그렇다면 디자인에서는 어떤 부분을 고려하는가?

향상된 수행능력을 뽐낼 수 있는지 아니면 적은 비용이 드는지를 고려해 볼 수 있다.

 

두 부분 모두 비교에 근거하여 요구하고 각각의 평가의 기준이 존재한다.

이는 컴퓨터 구조에서도 똑같이 일어난다.

 

Plane DC to Paris Speed Passengers Throughput
Boeing 747 6.5 hours 6101 mph 470 286,700
BAD/Sud
Concorde
3 hours 1350 mph 132 178,200

예를 들어 두가지의 비행기들 중 더 높은 성능을 내는 비행기가 무엇인지 비교하여 보자

먼저 반응 시간(일 처리 시간)은 Concorde가 2.2배(1350 mph / 610 mph)더 빠르다고 볼 수 있다.

다음으로 단위시간 당 일 처리량은 Concorde가 (178,200 pmph / 286,700 pmph)0.62배 만큼 더 빠르고

Boeing은 (286,700 pmph / 178,200 pmph)1.60배 만큼 더 빠르다

 

따라서 Boeing은 단위시간 처리량이 1.6배(60%)더 빠르고

Concorde는 2.2배만큼 더 반응속도(일 처리 시간)가 빠르다고 볼 수 있다.

 

평가 방법

평가기준 장점 단점
실제 환경 대표적인 평가 방법 매우 복잡하다
실행하거나 측정하기 어렵다
원인을 특정하기 어렵다
특정 프로그램 벤치마크 유용하다
널리 퍼진 방법이다
현실에서 유용한 결과를 얻을 수 있다
대표성이 떨어진다
핵심만 벤치마크 실행하기 쉽다
사이클을 디자인하기 쉽다
결과가 조작될 수 있다.

성과 측정 기준

종류 기준
Application
Programming language
Compiler
프로그램 당 실행시간
초당 작업 수
ISA 초당 몇백만개의 명령어를 실행하였는가?(MIPS)
Datapath Control
Functin Units
Transistors Wires Pins
초당 메가바이트
초당 사이클(clock rate)

CPI

CPI란? Average cycles per instruction(기계 명령어 하나 당 사이클을 얼마나 쓰는가?)를 뜻한다.

 

CPI = (CPU Time * Clock Rate) / Instruction Count

       = Clock Cycles / Instruction Count

 

CPU Clocking

만약 Clock period가 4GHz일 때 Clock cycle time은

4GHz = 4 * 10^9 * ? = 1초

?에 들어갈 숫자는 Clock cycle time = 1 / Clock Rate이다.

그러므로 Clock cycle time은 Clock Rate의 역수이다.

 

CPU Time = CPU Clock Cycles * Clock Cycle TIme

                 = CPU Clock Cycles / Clock Rate

 

** 성능의 향상은

1. Clock Cycles의 갯수를 줄이기

2. Clock Rate 늘리기

3. 하드웨어 디자이너는 Clock Count에 반대하여 Clock Rate를 주고받아야 한다. **


예를 들어 2GHz clock, 10s CPU time의 컴퓨터 A가 있을 때

6s CPU time, 더 빠른 clock을 가지지만 1.2 * clock cycles(A)를 가지는 컴퓨터 B를 디자인하려할 때 컴퓨터 B는 얼마나 빨라야 하는가?

 

Clock Rate(B) = Clock Cycles(B) / CPU Time(B) = 1.2 * Clock Cycles(A) / 6s

Clock Cycles(A) = CPU Time(A) * Clock Rate(A)

                           = 10s * 2GHz = 20 * 10^9

 

Clock Rate(B) = 1.2 * 20 * 10^9 / 6s = 24 * 10^9 / 6s = 4GHz


Count and CPI

Clock Cycles = Instruction Count * Cycles per Instruction

CPU Time = Instruction Count * CPI * Clock Cycle Time = Instruction Count * CPI / Clock Rate

 


Computer A: Cycle Time = 250ps, CPI = 2.0

Computer B: Cycle Time = 500ps, CPI = 1.2 인 컴퓨터가 있을 때 어느 컴퓨터가 더 빠른가?

 

CPU Time(A) = Instruction Count * CPI(A) * CycleTime(A)

                      = I * 2.0 * 250ps = I * 500ps

 

CPU Time(B) = Instruction Count * CPI(B) * CycleTIme(B)

                      = I * 1.2 * 500ps = I * 600ps

이므로 CPU Time(B) / CPU Time(A) = I * 600ps / I * 500ps = 1.2

A컴퓨터가 B컴퓨터보다 1.2배 더 빠르다.


Class A B C
CPI for class 1 2 3
IC in sequence 1 2 1 2
IC in sequence 2 4 1 1

Sequence 1: IC = 2 + 1 + 2 = 5

Clock Cycles = 2 * 1 +  1 * 2 + 2 * 3 = 10

CPI Avg = 10 / 5 = 2.0

 

Sequence 2: IC = 4 + 1 + 1 = 6

Clock Cycles = 4 * 1 + 1 * 2 +  1 * 3 = 9

CPI Avg = 9 / 6 = 1.5

RISC processor Example

 

1. 만일 Load Time이 2 Cycle로 바뀐다면 데이터 캐시를 얼마나 줄일 수 있는 가?

Load의 Cycles가 2로 바뀌면 CPI는 0.4가 된다. 원래의 CPI는 2.2이고 바뀐 CPI는 1.6이 되므로 2.2/1.6배가 된다.

 

2. Branch time을 주기적으로 줄이면 어떻게 변화하는가?

Branch Cycle을 1로 줄이면 CPI는 0.2가 된다. 그러므로 원래의 CPI와 비교하여 2.0 / 2.2배가 된다.

 

3. 만약 두 개의 ALU가 한번에 실행이 된다면 어떻게 변화하는가?

먼저 ALU의 Frequence를 25%로 줄인다면 전체 퍼센트는 75%가 되므로 CPI를 다시 계산해 주어야 한다.

ALU = 25/75  Load = 20/75  Store 10/75 Branch = 20/75 이므로

CPI = 25/75 * 1 + 20/75 * 5 + 10/75 * 3 + 20/75 * 2 = 2.6

728x90

'Study > Architecture' 카테고리의 다른 글

컴퓨터 구조 분야의 8가지 위대한 아이디어  (0) 2023.03.10
ISA, CISC, RISC  (0) 2023.03.07