[2024. 중등임용 정보ㆍ컴퓨터B] RISC 파이프라인 컴퓨터 명령어 세그먼트

RISC 파이프라인 컴퓨터 명령어 세그먼트

정답

명령어 순서: ① → ② → ⑤ → ⑥ → ④ → ⑧, 총 클럭 사이클 수: 8

출제 의도

3단계 파이프라인에서 LOAD-사용(ADD) 데이터 해저드를 NOP 삽입 대신 독립 명령어 재배치로 숨겨, 전체 실행 사이클을 최소화할 수 있는지를 평가한다.

풀이 과정

표(다)에서 NOP가 들어간 이유는 LOAD로 적재된 레지스터 값이 ADD에서 필요할 때, 값이 아직 준비되지 않아(LOAD의 결과가 E 단계에서 확정됨) ADD의 A 단계에서 바로 사용할 수 없기 때문이다. 따라서 “LOAD 직후 한 사이클”을 독립 명령어로 채우면 NOP 없이 해저드를 피할 수 있다.

①과 ②의 결과(R1, R2)는 ④에서만 사용되므로, ② 뒤에 ④를 바로 두는 대신 ⑤(또는 ⑥)처럼 ④와 무관한 LOAD를 끼워 넣어 지연을 해소한다. 마찬가지로 ⑥의 결과(R5)는 ⑧에서만 사용되므로 ⑥ 뒤에도 다른 독립 명령어를 끼워 ⑧의 A 단계가 ⑥의 E 단계 다음 사이클 이후가 되게 만든다.

이를 만족하는 한 가지 최소 사이클 재배치 예는 다음과 같다.

$$ ① \rightarrow ② \rightarrow ⑤ \rightarrow ⑥ \rightarrow ④ \rightarrow ⑧ $$

이때 6개의 명령어가 3단계 파이프라인(I-A-E)에서 이상적으로 흐르면 총 소요 사이클은 \(6+2=8\)이므로, 총 클럭 사이클 수의 최솟값은 8이다.

<풀이가 부정확할 수 있으니 반드시 교차검증 확인 바랍니다.>