본문 바로가기

전공/컴퓨터구조

컴퓨터 구조 및 설계 1장 연습문제 풀이

컴퓨터 구조 및 설계 1장 연습 문제 풀이

* 개인적으로 문제를 푼 것이며, 풀이 및 계산 과정에 오류가 있을 수도 있습니다.

* 연습문제는 컴퓨터 구조 및 설계 5판 기준입니다.

[1.5]

a)

초당 명령어의 수로 표현해야하므로, MIPS 식을 이용하여 계산한다.

성능은 보통 실행시간의 역수이고, MIPS는 명령어 실행속도이므로 MIPS값의 역수로 성능을 표시한다고 하면,

높은 MPIS값을 가질수록 성능이 좋은 컴퓨터이므로 제일 높은 값이 나온 프로세서를 찾는다.

MIPS = 클럭속도 /(CPI*10^6) 식을 이용하여 계산하면,

P1의 MIPS값 = 3GHz/(1.5*10^6) = 2000 cycle/sec

P2의 MIPS값 = 2.5GHz/(1.0*10^6) = 2500 cycle/sec

P3의 MIPS값 = 4GHz/(2.2*10^6) = 1800 cycle/sec

값은 P2가 제일 크므로, P2의 성능이 가장 좋다.

b)

CPU 실행시간 = 명령어 실행시간 = 프로그램 명령어수(IC)*CPI*클럭사이클시간(=/클럭속도) ,

CPI = CPU클럭사이클수 / 명령어 수 의 공식을 응용하여 계산할 수 있다.

식을 변형하여 IC = CPU 실행시간 * 클럭속도 / CPI를 사용해 계산하면,

P1의 IC = 10*3GHz/1.5 = 20

P2의 IC = 10*2.5GHz/1.0 = 25

P3의 IC = 10*4GHz./2.2 = 200/11 = 18.1818...

사이클 수는 2번째 식을 변형하여, CPU클럭사이클수 = CPI * 명령어수(IC)를 사용해 계산한다.

P1의 사이클 수 = 1.5*20 = 30

P2의 사이클 수 = 1.0*25 = 25

P3의 사이클 수 = 2.2*200/11 = 40

c)

CPU 실행시간이 10-> 7초로 감소했고, 각 프로세서의 CPI20%씩 증가했을 때 클럭속도 값을 구해야한다.

클럭속도 = CPI * 명령어 수(IC) / CPU 실행시간이므로, 각 프로세서의 시간단축을 위한 클럭 속도는 각각

P1의 클럭속도 = (1.5*1.2)*20/7 = 약 5.14.. GHz

P2의 클럭속도 = (1.0*1.2)*25/7 = 약 4.28.. GHz

P3의 클럭속도 = (2.2*1.2)*(200/11)/7 = 약 6.85.. GHz

에 근접한 수치로 변경해야 한다.

 
[1.6]

a)

유형A가 전체 10%, B20%, C50% D20%이므로, CPI를 퍼센트에 곱한 뒤 더하면 전체 CPI값이 나온다.

P1의 전체 CPI = 1*0.1 + 2*0.2 + 3*0.5 + 3*0.2 = 2.6

P2의 전체 CPI = 2*0.1 + 2*0.2 + 2*0.5 + 2*0.2 = 2

b)
1.0E6 = 1메가 = 10^6이므로

위에 사용했던 사이클 수 = CPI * 명령어 수(IC)를 사용하고, a)에서 구했던 전체 CPI값을 대입하면 답이다. 따라서

P1 실행에 필요한 사이클 수 = 2.6*10^6
P2 실행에 필요한 사이클 수 = 2.0*10^6

 
[1.7]

a)

1.0E9 = 1기가 = 10^9 이고, ns = 10^-9이다.

위에서 사용했던 식을 변형하면 CPI = CPU실행시간 / (명령어 수(IC) * 클럭사이클시간) 이다.

따라서 값을 대입하면

컴파일러A의 CPI = 1.1/(1.0*10^9*1*10^-9) = 1.1

컴파일러B의 CPI = 1.5/(1.2*10^9*1*10^-9)= 1.25

b)

cpu실행시간 = IC*CPI/클럭속도 식 사용.

1.0*10^9*1.1/클럭속도A = 1.2*10^9*1.25/클럭속도B

클럭속도A = (1.1)/(1.2*1.25)클럭속도B = (0.73)클럭속도B

클럭A가 B보다 27% 더 느리다.

c)

새 컴파일러의 CPU실행시간 = CPI*명령어 수(IC)*클럭사이클시간

값을 대입하면

= 1.1*6.0*10^8*1*10^-9 = 0.66

A 컴파일러에 비교하면 0.44초 즉 1.66배, B컴파일러에 비교하면 0.84초. 2.27배 빨라졌다.

 
[1.13]

a)

Amdahl의 법칙을 적용한다.

개선 후 실행시간 = 개선에 의해 영향을 받는 실행시간/개선의 크기 + 영향을 받지 않는 실행시간

FP명령어는 250초 중 70, 28%를 차지하고 전체 수행시간이 20% 감소하여 70초에서 56초로 바뀌므로

개선 후 전체 실행시간 = 56+ 180= 236

14초가 감소했으며, 전체 실행시간 중 5.6%가 감소했다.

 

b)

전체 명령어 수행시간은 250초고, 여기서 20%가 줄면 200초가 되어야한다.

INT명령어는 250초 중 55초를 차지하므로, INT를 제외한 다른 명령어의 시간은 195초가 된다.

INT명령어 실행시간만 줄여서 200초가 되려면 5초까지 줄여야한다.

즉, INT명령어는 50초를 줄여야하며 퍼센트로는 약 91%가량 줄여야한다.

c)

전체의 20%면 총합 50초가 줄어야 한다.

하지만, 분기 명령어는 250초 중 40초를 차지하므로, 분기 명령어를 아무리 줄여도 전체 수행시간을 20%로 줄일 수 없다.