Computer Science 기본 지식/컴퓨터 구조

[컴퓨터 구조] 5. CPU 성능 측정

로파이 2021. 4. 18. 15:06

컴퓨터 성능을 의미하는 단어

실행시간(응답시간): 컴퓨터가 작업을 완료하기까지 걸린 시간을 의미, 디스크, 메모리, 접근, 입출력 작업, 운영체제 오버헤드 및 CPU 시간 등을 모두 포함

처리량(대역폭): 일정시간 동안 처리하는 작업량

 

CPU 성능

CPU 실행시간: 특장 작업의 실행을 위해 CPU가 소비한 시간

 

클럭주기

CPU의 클럭이 한 사이클에 걸리는 시간을 의미한다. 클럭 속도는 1초당 클럭 사이클 수를 뜻하며 클럭 주기의 역수이다.

ex) 4GHz 클럭속도의 주기는 250ps

 

CPU 성능 측정

 

프로그램의 CPU 실행 시간 = 프로그램(을 실행하는 데 걸린 CPU) 클럭 사이클 수  X 클럭 주기

 

명령어 성능

실제 프로그램을 실행하는 절차는 명령어의 처리와 관련이 있다. 어떤 프로그램의 실행에 필요한 클럭 사이클 수는 다음과 같다.

 

프로그램 CPU 클럭 사이클 수 = 명령어 수 X 명령어당 평균 클럭 사이클 수

 

명령어당 클럭 사이클 수(clock cycles per instruction)는 CPI라고도 한다. 평균적으로 명령어를 하나 처리하는데 필요한 클럭 사이클 수를 의미한다.

 

고전적인 CPU 성능식

위 CPU와 명령어 관계를 이용하여 CPU 성능을 구할 수 있다.

 

CPU 시간 = 명령어 개수 X CPI X 클럭 사이클 시간

 

단순 명령어 개수나 CPU로만으로 CPU 성능을 측정하기에는 알고리즘, 프로그래밍 언어, 컴파일러, 명령어 집합 구조에 따라 영향을 미치기가 쉽다. 온전히 명령어 개수, CPI 그리고 클럭 사이클 시간을 모두 고려한 CPU 시간만 성능을 측정하는데 객관적인 지표가 될 수 있다.

 

하드웨어/소프트웨어 요소 영향 인자 How?
알고리즘 명령어 개수, CPI 알고리즘이 나눗셈과 같이 느린 명령어를 많이 포함한다면 CPI가 높아진다.
프로그래밍 언어 명령어 개수, CPI 자바와 같이 추상화를 많이 사용하는 언어는 함수의 간접 호출(indirect call)를 사용하는데 이는 CPI가 높은 명령어를 사용하게 된다.
컴파일러 명렁어 개수, CPI 컴파일러에 따라 동일한 알고리즘을 최적화된 명령어로 어셈블 할수 있으며 명령어 개수가 달라진다.
명령어 집합 구조 명령어 개수, 클럭 속도, CPI 명령어 집합 구조는 설계에 따라 명령어 수, 명령어당 클럭 수 그리고 클럭 속도에 영향을 미친다.

 

MIPS(Million Instructions Per Second)

실행시간 대신에 쓸 수 있는 척도 중 하나로 MIPS가 있다.

명령어 실행 속도를 의미하며 빠른 컴퓨터일 수록 높은 MIPS를 가진다. 직관적으로 이해할 수 있어 많이 사용된다.

 

MIPS와 CPI와의 관계

 

참고 : Computer Organization and Design RISC-V