이 절에서는 많은 사람들이 공통적으로 잘못 알고 있는 부분에 대해 설명한다.
함정 : 컴퓨터의 한 부분만 개선하고 그 개선된 양에 비례해서 전체 성능이 좋아지리라고 기대하는 것.
어떤 컴퓨터에서 100초 걸리는 프로그램이 있는데, 그중 80초는 곱하기 계산에 소요된다고 가정하자. 이 프로그램이 5배 빠르게 실행되게 하려면 곱셈 속도를 얼마나 개선해야 하는가?
개선 후의 프로그램 실행시간은 Amdahl의 법칙으로 알려진 다음 식으로 표현할 수 있다.
개선 후 실행시간 = (개선에 의해 영향을 받는 실행시간 / 개선의 크기) + 영향을 받지 않는 실행시간
이 문제의 경우 개선 후 실행시간 = 80/n + 20이다. 5배 성능 개선을 원하므로 개선 후 실행시간은 20초가 되어야한다.
20초 = 80/n + 20 즉, 80/n이 0이 되어야하는데 이는 불가능 하다. 즉, 5배 성능 개선은 불가능하다.
어떤 함수에 소비되는 시간을 알고 이의 잠재적인 속도 개선을 안다면, Amdahl의 법칙으로 전체 성능 개선을 예측할 수 있다. Amdahl의 법칙은 CPU 성능식과 함께 잠재적 성능 개선율을 평가하는 편리한 도구이다.
오류 : 성능식의 일부분을 성능의 척도로 사용하는 것 .
앞에서 우리는 클럭 속도나 명령어 개수, 또는 CPI하나만 가지고 성능을 예측하는 방법의 위험에 대해 경고한 바있다. 빈번하게 발생하는 또 하나의 오류는 세 가지 인자들 중에서 2개만을 사용하여 성능을 비교하는 것이다.
실행시간 대신에 쓸 수 있는 척도 중 하나로 MIPS(million instructions per second)가 있다. 특정 프로그램에 대한 MIPS값은 다음과 같이 간단히 정의된다.
MIPS = 명령어 개수/실행시간X10**6
MIPS는 명령어 실행 속도이므로 실행시간의 역수로 성능을 표시한다. 따라서 빠른 컴퓨터일수록 높은 MIPS값을 갖는다.그러나 MIPS로 컴퓨터의 성능을 비교하는 기준으로 삼기에는 3가지 문제점이 있다.
1. MIPS는 단순히 명령어를 실행하는 속도를 나타낼 뿐이지, 그 명령어 하나에 얼마나 많은 일을 수행하는지는 반영하지 못한다. 명령어 집합이 다르면 명령어 개수가 달라지기 때문에 단순히 MIPS값으로만 성능을 비교할 수는 없다.
2. 같은 컴퓨터에서도 어떤 프로그램을 실행하는냐에 따라 MIPS값은 달라진다. 그러므로 컴퓨터의 MIPS값은 하나가 아니다. 실행시간에 성능식을 대입하여 MIPS와 클럭속도, CPI관의 관계를 살펴보자.
3. 많은 명령어를 실행하지만 빠른 명령어를 사용하는 프로그램으로 바꾸는 경우, 컴퓨터 성능과 반대로 MIPS값이 작아진다.
예제)
'Computer Architecture > 컴퓨터 구조' 카테고리의 다른 글
[9] CH2 명령어:컴퓨터 언어 < Arm 버전 > (0) | 2022.01.13 |
---|---|
[7] CH1 컴퓨터 추상화 및 관련 기술 < 결론 > (0) | 2022.01.12 |
[5] CH1 컴퓨터 추상화 및 관련 기술 < Intel Core i7 벤치마킹 > (0) | 2022.01.11 |
[4] CH1 컴퓨터 추상화 및 관련 기술 < 단일프로세서에서 멀티프로세서로의 변화 > (0) | 2022.01.11 |
[3] CH1 컴퓨터 추상화 및 관련 기술 < 성능 > (0) | 2022.01.11 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!