[컴퓨터구조론] 성능과 실행시간

티라노·2025년 3월 9일

컴퓨터구조론

목록 보기
1/18

컴퓨터의 성능 측정

성능과 실행시간 사이의 관계

성능은 실행시간의 역수로 정의한다.

Perfomanceex/Performanceey=Executiontimey/Executiontimex=nPerfomance\,\,e_{x}/Performance\,\,e_{y} = Execution\,\,time_{y}/Execution\,\,time_{x}=n


용어정리

주기 = Cycle Time = period
주파수 = frequency = rate
Clock Cycle은 보통 사이클 횟수를 표기

실행 시간의 구성 요소

실행 시간은 다양한 요인을 포함한다.

  • CPU 실행 시간, I/O 연결 시간, OS 오버헤드, 쉬는 시간 등

가장 주된 부분을 차지하는 CPU 실행 시간에 대해 알아보자.

CPU Time

CPU가 일을 수행하는 데 걸리는 시간.

  • User CPU Time
  • System CPU Time

User CPU Time은 사용자가 명령한 대로 프로그램이 동작하면서 소모되는 시간이고, System CPU Time은 시스템 콜 등 말 그대로 시스템 단에서 소모하는 시간이다.

CPU Clocking

전자기기는 상수 단위로 작동하는 타이머로 제어받는다.
그림에 나타난 것처럼, 한 서클마다 작업을 처리한 후 작업 내용을 확인하는 일을 반복한다.

Clock의 주파수(frequency)(주로 초당)와 주기(period)는 역수 관계이다.

계산 방법

CPUTime=CPUClockCycles×ClockCycleTime(주기)=CPUClockCyclesClockRateCPU\,Time=CPU\,Clock\,Cycles×Clock\,Cycle\,Time(주기)=\frac{CPU\, Clock\,Cycles}{Clock\,Rate}
/
실행시간=사이클횟수×사이클시간(period)=사이클횟수주파수(frequency)실행시간=사이클\,횟수×사이클\,시간(period)=\frac{사이클 횟수}{주파수(frequency)}

결론?

Time=Cycles횟수RateTime = \frac{Cycles횟수}{Rate}


따라서,

  • 사이클 횟수 줄이기
  • 주파수 올리기(주기 짧게)
    를 통해서 CPU 성능을 개선할 수 있음.
    하지만 두 목표를 모두 달성하는 것은 쉽지 않기 때문에 (한쪽을 개선하면 다른 한쪽은 저하되는 trade off 관계) 그 사이에서 조율하여야 함

CPI

CPU보다는 프로그램에서 작동하는 개별 작업의 실행 시간에 초점을 맞춘 개념이다.
ex) 덧셈 연산은 파일 입출력보다 CPI가 낮다.

CPI 값을 구할 때는 instruction 개수 당 사이클 횟수를 이용한다.

CPI=Cycle횟수instructionCPI = \frac{Cycle횟수}{instruction수}

처리율을 이용한 성능 측정

MIPS
Throughput 을 이용하여 성능을 측정하는 방식.
GFLOPS
부동 소수점을 사용하는 동작으로 성능을 측정하는 방식.


성능 개선을 위한 노력

멀티프로세서

2000년대 전에는 단일 프로세서를 둔 컴퓨터를 주로 사용하였다.
하지만 프로세서 하나로 Clock Rate를 조절해서 개선할 수 있는 컴퓨터 성능에는, 예를 들어 과도한 발열을 해결할 수 없다든지 하는 문제가 발생하기 때문에 한계가 있었다.
현재는 사이클 주기보다는 코어 개수를 늘리는 식으로 성능을 개선하고 있다.

멀티프로세서의 한계

그렇다면 코어가 많을 수록 좋은 컴퓨터라고 생각이 될 텐데, 현대의 컴퓨터들이 계속해서 프로세서를 나누지 않는 이유는 무엇일까?

일단 멀티프로세서를 사용하기 위해서는 병렬 프로그래밍이 필요하다. 하지만 대부분의 프로그램은 한 개의 코어만 사용한다. 소프트웨어와 하드웨어 사이에 괴리가 생기기 때문에 코어를 무한히 늘린다고 해도 성능 발전으로 직결되지는 않는 것이다.

다음은 멀티프로세서 운영에 한계점이다.

  • 병렬 프로그래밍으로 구현하기 어렵다.
  • 로드 밸런싱이 완벽하지 못하다. 즉, 코어를 각 프로세스에 균일하게 분배할 수 없기 때문에 코어 개수와 성능이 비례하지 않는다.
  • 여러 개의 프로세서가 각각 동작하므로 동기화해야 하는데, 이 작업에 어려움이 있다.

domain specific computing

특정 도메인에 알맞은 연산을 구분하여 제공하는 것을 도메인 특화 컴퓨팅이라고 한다.
예를 들어 인공지능 연산에 쓰이는 NPU나 그래픽 작업에 쓰이는 GPU등이 있다. 이런 코어들은 각자의 역할 안에서만 유능하도록 설계됨으로써 필요한 만큼만 성능을 개선할 수 있었다.

다음은 도메인 특화 컴퓨팅의 장점이다.

  • 도메인에 필요한 만큼만 데이터를 할당하여 효율적으로 운영한다.
  • 메모리나 데이터 운반 작업 또한 특화된 연산에 알맞은 방식으로 설계되어있다.

숙제
1.8, 1.15, 1.12, 1.16

0개의 댓글