Computer Architecture 1

2021. 4. 2. 22:49Hi/Computer_Architecture

 1.3) C와 같은 상위 수준 언어로 작성된 프로그램을 컴퓨터 프로세스가 바로 수행할 수 있는 표현으로 바꾸는 과정을 설명하여라.

C와 같은 상위 수준 언어를 작성하고, 이 것을 컴파일러를 통해 어셈블리 언어로 번역한다. 이를 어셈블러가 2진수로 바꾸어주어 컴퓨터 프로세서가 프로그램을 수행할 수 있게 만들어준다.

 

1.5) 동일한 명령어 집합을 가지고 있는 3개의 다른 프로세서 P1, P2, P3의 클록석도와 CPI는 다음과 같다.

a)어느 프로세서의 성능이 가장 좋은가? 초당 명령어 수로 표현하여라.

동일한 명령어 집합을 가졌다고 하였으니 명령어 수가 같다고 볼 수 있다. 초당 명령어 수를 x라하면 각각의 CPU 실행시간은 이렇게 볼 수 있다.

P1의 실행시간 = (1.5(CPI) * x) / 3GHz = 0.5x

P2의 실행시간 = (1.9(CPI) * x) / 2.5GHz = 0.4x

P3의 실행시간 = (2.2(CPI) * x) / 4GHz = 0.55x

 

실행시간은 짧을수록 성능이 좋은 것이니 P2 프로세서의 성능이 가장 좋다.

 

b) 각 프로세서가 어느 프로그램을 수행하는 데 10초가 걸렸다고 할 때, 사이클 수와 명령어 개수를 구하여라.

 

P1프로세서를 봤을 때 10s = 사이클 수 / 3GHz이니 P1의 사이클 수는 30이다.

30(사이클 수) = 1.5(CPI) * 명령어개수 이니, 명령어 개수는 20이다.

 

P2프로세서는 10s= 사이클수 /2.5GHz 이니, P2의 사이클 수는 25이다.

25(사이클 수) = 1.0(CPI) * 명령어개수이니, P2의 명령어 개수는 25이다.

 

P3프로세서는 10s = 사이클 수 / 4GHz이니 P3의 사이클 수는 40이다.

40(사이클 수) = 2.2(CPI) *명령어 개수 이니, P3의 명령어 개수는 18.1818… 이다.

 

c) 실행시간을 30% 단축시키려고 했더니 CPI가 20% 증가하게 되었다. 이만큼의 시간 단축을 위해서는 클럭 속도를 얼마로 해야 하는가?

 

실행시간 = 사이클 수/속도 = (CPI * 명령어개수) / 속도 이다.

실행시간을 30% 단축시기코 CPI를 20% 증가한다면 식은 다음과 같다.

0.7실행시간 = (1.2CPI * 명령어 개수)/ x속도

명령어개수는 같을테니 정리하면 0.7실행시간 = 1.2CPI / x속도 이다.

x속도는 1.2/0.7 이므로 x는 1.714… 이다.

따라서 클럭 속도는 이전 속도의 약 71%를 상승시켜야 한다.

 

1.6) 동일한 명령어 집합 구조의 두 가지 구현이 있다고 하자. A, B, C, D 네 가지 종류의 명령어가 있으며, 각 구현의 클럭 속도와 CPI는 아래 표와 같다.

1.0E6개의 명령어를 실행하는 프로그램이 있다, 그중 10%가 유형 A, 20%가 B, 50%가 C, 20%가 D라고 하면, P1과 P2 중 어느 것이 더 빠른가?

 

실행시간= 사이클 수 / 클럭 속도이다. 사이클 수 = CPI * 명령어 개수이므로,

실행시간 = (CPI * 명령어 개수) / 속도이다.

1.0E6을 각각 비율로 나누면 A의 명령어 개수= 1.0* 10^5개, B의 명령어개수 = 2.0*10^5, C의 명령어 개수 = 5.0*10^5개, D의 명령어 개수 = 2.0 * 10^5개 이다.

P1의 실행시간 = ( 1(A의 CPI) * 1.0*10^5 + 2(B의 CPI) * 2.0*10^5 + 3(C의 CPI)* 5.0*10^5 + 3(D의 CPI)*2.0 * 10^5) / 2.5GHz 이므로, 26*10^5 / 2.5(GHz) 이다.

P2의 실행시간 = (2(A의 CPI)*1.0* 10^5 + 2(B의 CPI) * 2.0*10^5 + 2(C의 CPI)*5.0*10^5 + 2(D의 CPI) * 2.0 * 10^5 ) / 3GHz 이므로, 20*10^5 / 3(GHz) 이다.

26*10^5 / 2.5(GHz) 와 20*10^5 / 3(GHz)를 비교하면 P1의 실행시간이 더 큰 것을 알 수 있다.

실행시간이 적을수록 성능이 더 좋고 빠른 것이라 할 수 있다. 따라서 P2의 프로세서가 더 빠르다.

 

a)    각 구현의 전체적인 CPI는 얼마인가?

P1의 전체적인 CPI = 9이다.

P2의 전체적인 CPI = 8이다.

 

b)    각 경우 실행에 필요한 클럭 사이클 수는 얼마인가?

클럭 사이클 수는 CPI* 명령어 개수와 같다. 그러므로

P1 실행에 필요한 클럭 사이클 수는  1(A의 CPI) * 1.0*10^5 + 2(B의 CPI) * 2.0*10^5 + 3(C의 CPI)* 5.0*10^5 + 3(D의 CPI)*2.0 * 10^5 이므로,     26*10^5 이다.

P2 실행에 필요한 클럭 사이클 수는 2(A의 CPI)*1.0* 10^5 + 2(B의 CPI) * 2.0*10^5 + 2(C의 CPI)*5.0*10^5 + 2(D의 CPI) * 2.0 * 10^5 이므로,       20*10^5 이다.

 

1.8) 2004년도에 출하된 Pentium 4 Prescott 프로세서는 3.6GHz의 클럭 속도에 전압이 1.25V이다. 이 프로세서는 평균적으로 10W의 정전력과 50W의 동전력을 소모한다고 가정한다. 2012년도에 출하된 Core i5 Ivy Bridge는 3.4GHz의 클럭 속도에 전압이 0.9V이며 평균적으로 30W의 정전력과 40W의 동전력을 소모한다고 가정한다.

 

1.8.1) 각 프로세서에 대하여 평균 용량성 부하를 구하라.

펜티엄의 전력은 10W의 정전력과 50W의 동전력을 더한 60W라 한다.

60W = { 용량성 부하 * (1.25V(전압))^2 * 3.6(GHz)}/2 이므로,

평균 용량성 부하는 120/5.625 = 21.33이다.

 

i5의 전력은 정전력 30W와 동전력 40W를 더해 70W라 한다.

70W = {용량성 부하 * (0.9(V))^2 * 3.4(GHz)} / 2 이므로,

평균 용량성 부하는 50.8351… 이다.

 

1.8.2) 전체 소모 전력에서 정전력이 차지하는 비율을 구하고 정전력과 동전력의 비를 각각에 대하여 구하라.

펜티엄 전체 소비 전력은 60W이므로, 정전력 비율은 10W / 60W, 동전력 비율은 50W / 60W 이다. 따라서 정전력 : 동전력 비율은 1:5 이다.

 

i5 전체 소비전력은 70W이므로, 정전력 비율은 30W/70W, 동전력 비율은 40W/70W 이다.

따라서 정전력:동전력 비율은 3:4 이다.

 

 

 

1.8.3) 전체 소모 전력이 10% 감소한다면 동일한 누설 전류를 가지도록 하려면 전압은 얼마나 감소해야 하는가? (전력은 전압과 전류의 곱이다.)

W = V * A 이므로,W(전력)이 10%가 감소되어도 A(전류)가 동일하려면 V또한 10%가 감소되어야 한다.

따라서 펜티엄의 전압은 1.125V 가 되고, i5의 전압은 0.81V가 된다.

 

1.10) 지름이 15cm인 웨이퍼의 단가가 12이고 84개의 다이를 가지며 단위면적당 결함은 0.02개/cm^2 이다. 지름이 20cm인 웨이퍼의 단가가 15이고 100개의 다이를 가지며 단위면적당 결함은 0.031개/cm^2 이다.

 

1.10.1) 두 웨이퍼의 수율을 구하라.

수율은 결함 다이를 제외한 다이 수 / 전체 다이 수 이므로 A 웨이퍼의의 수율은 98%이다.

같은 방법으로 B웨이퍼의 수율은 96.9%이다.

 

 

1.10.2) 두 웨이퍼에 대하여 다이당 단가를 구하라.

다이원가 = 웨이퍼당 가격 / (웨이퍼당 다이의 수 * 수율) 이므로,

A의 다이단가 = 12 / (84*0.98) = 0.014577… 이다.

B의 다이단가 = 15 / (18 * 0.969) = 0.8599931200550396 이다.

 

1.10.3) 웨이퍼당 다이의 수가 10% 증가하고 단위면적당 결함이 15% 증가한다고 할 때, 다이 면적과 수율을 구하라.

다이의 수가 10%증가하면 A 웨이퍼의 다이수는 92.4, B웨이퍼의 다이수는 110이 된다.

단위면적당 결함도 15%증가하니, A웨이퍼의 결함은 0.023(cm^2), B웨이퍼의 결함은 0.03565(cm^2) 이 된다.

A웨이퍼의 다이면적 = 15cm(지름) / 92.4(다이수) = 0.1623… 이 되고,

B웨이퍼의 다이면적 = 20cm(지름) / 110(다이수) = 0.1818… 이 된다.

A의 수율은  97.7 % 이고,

B의 수율은 96.435 % 이다.

 

 

1.10.4) 전자소자의 공정기술이 발전해서 수율이 0.92에서 0.95로 증가하였다. 다이 면적이 200mm^2인 경우 각 공정기술에서 단위면적당 결함을 구하라.

수율이 3% 증가했으므로 결함률은 3% 줄어든 것이다.

200mm^2은 2cm^2 이다. 다이면적이 2cm^2인 경우에도 단위면적당 결함(cm^2)은 3% 줄어든 값이다. 웨이퍼 A의 단위면적당 결함은 0.02개에서 3%줄어들었으니 0.0194개이고,

B웨이퍼의 단위면적당 결함은 0.031에서 3%줄어들어 0.03007이다.

728x90

'Hi > Computer_Architecture' 카테고리의 다른 글

Computer Architecture 4  (3) 2021.04.02
Computer Architecture 3  (0) 2021.04.02
Computer Architecture 2  (0) 2021.04.02