성능은 실행시간의 역수로 정의한다.
용어정리
주기 = Cycle Time = period
주파수 = frequency = rate
Clock Cycle은 보통 사이클 횟수를 표기
실행 시간은 다양한 요인을 포함한다.
가장 주된 부분을 차지하는 CPU 실행 시간에 대해 알아보자.
CPU가 일을 수행하는 데 걸리는 시간.
User CPU Time은 사용자가 명령한 대로 프로그램이 동작하면서 소모되는 시간이고, System CPU Time은 시스템 콜 등 말 그대로 시스템 단에서 소모하는 시간이다.

전자기기는 상수 단위로 작동하는 타이머로 제어받는다.
그림에 나타난 것처럼, 한 서클마다 작업을 처리한 후 작업 내용을 확인하는 일을 반복한다.
Clock의 주파수(frequency)(주로 초당)와 주기(period)는 역수 관계이다.
/
따라서,
- 사이클 횟수 줄이기
- 주파수 올리기(주기 짧게)
를 통해서 CPU 성능을 개선할 수 있음.
하지만 두 목표를 모두 달성하는 것은 쉽지 않기 때문에 (한쪽을 개선하면 다른 한쪽은 저하되는 trade off 관계) 그 사이에서 조율하여야 함
CPU보다는 프로그램에서 작동하는 개별 작업의 실행 시간에 초점을 맞춘 개념이다.
ex) 덧셈 연산은 파일 입출력보다 CPI가 낮다.
CPI 값을 구할 때는 instruction 개수 당 사이클 횟수를 이용한다.
MIPS
Throughput 을 이용하여 성능을 측정하는 방식.
GFLOPS
부동 소수점을 사용하는 동작으로 성능을 측정하는 방식.
2000년대 전에는 단일 프로세서를 둔 컴퓨터를 주로 사용하였다.
하지만 프로세서 하나로 Clock Rate를 조절해서 개선할 수 있는 컴퓨터 성능에는, 예를 들어 과도한 발열을 해결할 수 없다든지 하는 문제가 발생하기 때문에 한계가 있었다.
현재는 사이클 주기보다는 코어 개수를 늘리는 식으로 성능을 개선하고 있다.
그렇다면 코어가 많을 수록 좋은 컴퓨터라고 생각이 될 텐데, 현대의 컴퓨터들이 계속해서 프로세서를 나누지 않는 이유는 무엇일까?
일단 멀티프로세서를 사용하기 위해서는 병렬 프로그래밍이 필요하다. 하지만 대부분의 프로그램은 한 개의 코어만 사용한다. 소프트웨어와 하드웨어 사이에 괴리가 생기기 때문에 코어를 무한히 늘린다고 해도 성능 발전으로 직결되지는 않는 것이다.
다음은 멀티프로세서 운영에 한계점이다.
특정 도메인에 알맞은 연산을 구분하여 제공하는 것을 도메인 특화 컴퓨팅이라고 한다.
예를 들어 인공지능 연산에 쓰이는 NPU나 그래픽 작업에 쓰이는 GPU등이 있다. 이런 코어들은 각자의 역할 안에서만 유능하도록 설계됨으로써 필요한 만큼만 성능을 개선할 수 있었다.
다음은 도메인 특화 컴퓨팅의 장점이다.
숙제
1.8, 1.15, 1.12, 1.16