CPU 성능 분석
클락
- CPU 내부 연산은 Clock이라고 하는 일정한 시간마다 이뤄짐.
- 만약 Clock이 없다면 순서가 중요한 CPU 내부 연산이 뒤죽박죽 섞일 것.
- 이 Clock이 1초에 몇 번 있는지는 ‘Hz’(헤르츠)를 이용
Clock Speed(Rate)
- 0과 1 신호가 한번씩 실행되는 주기 수 (cycles per second)
- 1Hz = 1 cycle per sec , 1KHz = 1,000 cycles per sec, 1MHz = 1,000,000 cycles per sec
1GHz = 1,000,000,000 cycles per sec
- 만약 CPU의 스펙에 3.2 GHz라고 작성되어 있다면, 해당 CPU는 1초에 32억 번의 사이클을 발생시키고 있는 것이다.
- Clock Speed가 1초에 Clock이 몇 번 뛰는지를 의미한다면
반대로 1 Clock이 몇 초마다 반복되는지는 그것의 역수일 것이다.
Clock Cycle(Time)
- Clock Cycle = Clock Speed(Rate) 의 역수
- 1GHz의 클락 속도를 가진 CPU의 클락 사이클은 10−9sec 이다.
명령어 개수
- 하나의 프로그램에 포함된 명령어 개수
- 해야할 일의 크기 ⇒ 프로그램의 크기를 의미
- 수행해야할 명령어 개수가 많으면 실행시간이 늘어남.
CPI(Cycles Per Instruction)
- 하나의 명령어를 실행할 때 소모되는 클락 사이클의 수
CPU 실행시간 정리
- 명령어마다 CPI가 주어질 경우 각 명령어와 곱한 뒤 합한다.
- 각 명령어의 CPI가 없을 경우 평균 CPI와 전체 명령어의 개수와 곱한다.
- Clock cycle은 Clock speed(rate)의 역수
CPU 실행시간에 영향을 미치는 요인
- CPU 실행시간 = 각 명령어 개수 각 명령어 당 CPI 클록 사이클
- 그렇다면 명령어의 개수 / CPI / 클록 사이클 중 하나만 줄이면 되는 것 아닌가?
- 유기적으로 연결되어 있기 때문에 그렇게 할 수 없다!
명령어 개수를 줄이는 경우
- 명령어의 개수를 줄이기 위해 하나의 명령어가 하는 일을 많게 변경하는 경우
- 알고리즘을 간결하고 효율적으로 설계할 시, 수행할 명령어의 개수 감소
평균 CPI를 줄이는 경우
- 복잡한 명령어 대신 단순한 명령어를 설계할 경우 CPI는 감소한다.
- CPU 내 연산의 병렬화 등 컴퓨터 구성의 변경 → 평균 CPI 감소
클럭 사이클을 줄이는 경우
- 복잡한 명령어들은 클럭 사이클 시간의 증가
- CPU 내 데이터 경로를 짧게 하거나 연산 병렬화를 시키는 것은 클럭 사이클 감소
- 더 빠른 회로기술이나 패키징 밀도를 높이면 클럭 사이클 감소
벤치마크
- 성능을 평가하기 위해 작업 부하로 선택된 프로그램의 모음
MIPS
- 1초에 수행한 명령어 개수를 100만으로 나눈 값
MFLOPS
- 1초에 수행한 부동소수점 연산의 수를 100만으로 나눈 값