코딩스토리

Chapter 9. 파이프라이닝 연습문제 본문

컴퓨터구조

Chapter 9. 파이프라이닝 연습문제

kimtaehyun98 2020. 12. 17. 19:19

# 컴퓨터 아키텍처 (저자 우종정) 7장 연습문제입니다. 제가 공부하고 이해한 방식대로 풀었기 때문에 정확하진 않습니다. 제가 배운 부분만 풀었기 때문에 모든 문제를 풀진 않았습니다.

# 구글링을 통해 나오는 다른 답들과 다를 수 있습니다.. 저도 구글링 했다가 이해가 안 돼서 직접 풀었습니다..

 

 

풀이

 

1. 답) 1번

파이프라이닝의 정의 : 2개 이상의 명령어를 동시에 수행할 수 있는 구조

 

 

2. 답) 3번

5단계 파이프라이닝이므로 10개의 명령어를 실행하려면 5 + 9, 즉 14us 만큼 걸림

(그림 그려서 이해하면 빨라요!)

 

 

3. 답) 4번

파이프라인 클록 사이클 시간은 최대 지연시간을 따른다. (그래야지 모든 단계를 수행 가능)

따라서 12 + 래치의 지연시간 1 = 13 us

 

 

4. 답) 3번

하나의 데이터를 처리하는 시간이 순차 모델보다 더 느리다. (래치 등 추가적 HW의 지연시간)

 

 

5. 답) 3번

구조적 해저드 : 파이프라인에서 실행 중인 2개 이상의 명령어가 동일한 하드웨어 자원을 동시에 필요로 하여 발생하는 상황  (key point는 동일한 HW 자원!!)

 

 

6. 답) 1번

전방 전달 -> 데이터 해저드 해결 방법 -> 데이터 해저드는 주로 RAW 해저드로 인해 발생

 

 

7. 답) 1번

명령어 해저드를 해결하는 방법 : 지연 분기, 분기 예측, 분기 역사 이용

 

 

8. 답) 1번

IPC를 본문에 언급하지 않았는데 그냥 CPI의 역수, Instruction per Cycle이라고 생각하면 된다.

IPC를 1보다 크게 한다 -> CPI를 1보다 작게 한다 -> 슈퍼스칼라, 슈퍼파이프라이닝, VLIW

 

 

9. 답) 4번

VLIW의 정의 : 명령어 수준의 병렬성을 하드웨어 대신에 컴파일러가 찾아주는 방식

(key point : 컴파일러!!)

 

 

10. Precise interrupt (정확한 인터럽트)

인터럽트 부분은 패스했는데 교재 보면 정확히 나와있네요..

 

 

11. 답) WAW 해저드

두 명령어를 보면 둘다 r1에 적재하는 연산이다. 이때 문제에서 힌트를 준 게 "곱셈 연산이 더 오래 걸려요"이다.

즉 곱셈 연산을 끝내고 r1에 r2*r3를 적재하기 전에 r4+r5를 적재하게 된다.

이는 후행 명령어가 먼저 Write 하고 선행 명령어가 그 이후에 Write 하므로 WAW 해저드이다.

(key point : 후행 명령어가 한 일이 앞에, 선행 명령어가 한 일이 뒤에!!)

 

 

12. 답) 1.06

사실 이 문제 때문에 이번 연습문제들을 푼 거다..

 

명령어의 개수를 n이라 가정하자.

 

기존 방식

CPI = 1 + (0.05 * 3) + (0.1 *5) = 1.65  (무조건 분기와 조건 분기의 퍼센트와 페널티에 맞게 더해줌)

실행 시간 = 명령어 개수(n) * CPI(1.65) * 클록 사이클(max(각 단계의 사이클 시간) = 10 ) = 16.5n

 

 

HW 추가 후

CPI = 1 + (0.1 * 3) = 1.3

실행 시간 = 명령어 개수(n) * CPI(1.3) * 클록 사이클(max(각 단계의 사이클 : 이때 HW 추가로 인한 지연시간 발생 = 12) = 15.6n

 

따라서 성능은 16.5n/15.6n = 1.057 = 1.06 배 향상했다.

 

'컴퓨터구조' 카테고리의 다른 글

Chapter 11. 캐시 메모리  (1) 2020.12.18
Chapter 9. 파이프라이닝  (0) 2020.12.17
Chapter 7. 데이터 경로 연습문제  (0) 2020.12.07
Chapter 7. 데이터 경로  (2) 2020.12.06
Chapter 6. 연산장치  (0) 2020.12.05
Comments