본문 바로가기
관/핫한 컴퓨터구조 공부

컴퓨터 구조론 개정 5판 2장 기본문제 풀이.(기본문제 10번~ 13번 , 연습문제 5번~ 8번 까지).

by 4차원 박스 2020. 9. 5.

기본문제와 연습문제, 그리고 간단한 풀이를 개인적으로 해 보았습니다.

공부에 도움이 되길 바랍니다!

<기본문제> 

2.10

4-단계 명령어 파이프라인에서 첫 번째 명령어의 실행이 완료되는 데 걸리는 시간과 두 번째 명령어의 실행에 걸리는 시간을 올바로 짝지은 것은 어느 것인가?

 

: . 4사이클-1사이클. 4단계 파이프라인에서 첫 명령어는 4단계에 걸쳐 완료가 되고 두 번째 명령어는 첫 명령어의 두 번째 사이클에서 인출되기 시작하기에 결론적으로 첫 명령어가 완료되고 1사이클 후에 두 번째 명령어가 실행된다.

 

2.11

4-단계 파이프라인에서 10개의 명령어들을 실행하는 데는 모두 몇 사이클이 소요되는가?

 

: . 13사이클. 공식에 의해 T=K+(N-1)이고 간단히 이해하면 첫 명령어는 4단계를 거치고 나머지 9개는 1사이클 씩 소요되므로 위와같은 식이 나온다.

 

2.12

4-way 슈퍼스칼라 프로세서에서는 매 사이클마다 몇 개씩의 명령어들이 실행될 수 있는가?

 

: . 4. 4-way 슈퍼스칼라의 의미는 한번에 4개의 파이프라인을 작동 한다는 것 이므로 4개이다.

 

2.13

직전에 실행된 산술 명령어의 결과값이 음수이면 점프하라는 명령어가 검사할 조건비트는 어느것인가?

 

: . S플래그. S플래그는 부호를 판단하는 플래그로 0이면 양수 1이면 음수임을 판단하는 상태레지스터 중 하나이다.

 

<연습문제> 

2.5

4-단계 명렁어 파이프라인으로 1000개의 명령어들을 모두 실행하려면 몇 클록 주기가 걸리는가? 만약 이 파이프라인의 클록 주파수가 2 GHz라면, 그에 소요되는 전체시간은 몇ns 인가?

 

: 1003클록주기, 501.5ns . 사이클은 공식 T=K+(N-1)에서 K=4, N=1000으로 쉽게 구할수 있다. 다음은 소요되는 시간이다 클록 주파수가 2 GHz 이므로 1클록당 0.5ns 가 소요된다 따라서 전체 (1003클록 X 0.5)가 전체 소요시간 이다.

 

2.6

마이크로프로세서가 12-단계 명령어 파이프라인으로 구성되어 있고, 클록 주파수가 4 GHz일 때. 1000개의 명령어를 실행하는데 걸리는 시간과 속도 향상(Sp)과 효율(E=속도향상/파이프라인 단계수) 구하라

 

: 걸리는 시간 = 252.75 ns, 속도향상(Sp) = 11.86, 효율(E) = 0.98

위와 같은 방식으로 걸리는 전체 클록과 각 클록마다 걸리는 시간을 곱하여 걸리는 시간을 구할 수 있다. K=12, N=1000 이므로 총 1011 클럭이고 4GHz 이므로 각 클럭당 소요되는 시간은 0.25ns 이다 0.25*1011 = 252.75ns 이고, 속도 향상Sp 는 파이프 라인이 없을 때 전체 클록수 / 파이프라인이 있을 때 전체 클럭 이다. KN/K+N-1을 계산하면 약 11.86이다. 효율은 문제에 나온 것 토대로 계산을 하면 0.98이 나온다.

 

2.7

클록 주파수가 2GHz 5-단계 파이프라인에 대하여

 

(1) 명령어의 수 N = 10, 100, 1000, 10000개를 처리하는데 걸리는 각각의 시간구하기

 

: 7, 52, 502, 5002 ns 이다. K=5, 1클록당 걸리는시간 = 0.5ns를 이용하여 우선 전체 클록 수를 구하면 순서대로 14, 104, 1004, 10004 이다 여기에 0.5를 곱하면 답이 나온다.

 

(2) 파이프라이닝 되지 않은 경우에는 각 명령어의 실행에 걸리는 시간이 0.5*5=2.5ns 가 된다. 파이프라이닝을 이용함으로써 얻게되는 속도 향상을 각 N 값에 대하여 구하라.

 

: 순서대로 3.57, 4.80, 4.98, 4.99 이다.

위에서 주어진 조건은 사실상 속도향상 식에서 보면 다음 과 같다.

Sp=KN*(클록당시간)/(K+N-1)*(클록당시간)에서 0.5*5=2.5ns 는 결국 K*(클록당시간)을 미리 계산한것과 같다. 따라서 전체 식인 Sp=KN*(클록당시간)/(K+N-1)*(클록당시간)에서 공통인수인 (클록당시간)을 약분해도 지장이 없게 된다. Sp=KN/K+N-1 이 유지되고 이를 계산하면 된다. 결과로 순서대로 50/14, 500/104, 5000/1004, 50000/10004 가 나온다.

 

(3) 2번의 결과에 대한 그래프 그리기 x축은 명령어의수N으로 하되 log10N의 눈금을 사용하라

:

 

2.8

CPU 명령어 파이프라인이 4단계로 이루어져 있고 1GHz의 공통 클록이 사용되고 있다.

CPU가 처리할 프로그램이 1000개의 명령어 들로 이루어져 있는데, 그중 10%는 파이프라인의 두 단계만 실제 필요하고, 40%는 세 단걔만 필요하며, 나머지는 네 단계 모두가 필요할 때

 

(1) 파이프라인을 이용하지 않은 경우, 이 프로그램을 처리하는데 걸리는 시간을 구하라

 

: 1000ns. 파이프라인을 사용하지 않을 경우 1*1000

이고 1GHz의 공통 클록이므로 1개 클럭당 1ns가 걸리므로 1000ns 이다.

 

(2) 파이프라인을 이용하여 이 프로그램을 처리하는데 걸리는 시간을 구하라.

 

: 1006ns. 100개의 명령어는 2단계 파이프라인, 400개는 3단계, 나머지 500개는 4단계를 따로 구한뒤 모두 더한다 각각 101, 402, 503 개의 클록이고 1클럭당 1ns이므로 모두 더하면 답이 나온다.

 

(3) 파이프라이닝으로 얻어진 속도향상과 효율을 구하라.

 

: Sp=8.93, E=2.979 .명령어 마다 각각의 파이프라인이 필요한 수가 있으므로 각각의 속도향상을 구하고 더하는 방식으로 한다. 2,3,4개 파이프라인 순서대로 속도향상은 200/101, 1200/402, 2000/503를 모두 더한다. 효율은 앞서 구한 각각의 속도향상을 파이프라인수 만큼 나누면 각각 0.990, 0.995, 0.994 이고 모두 더하면 2.979가 된다(근사값이다.)

댓글