Aufgabe 7 · 15 Punkte · pipeline trace
Pipelined Prozessor
한 cycle의 stage는 IF→ID→EX→MEM→WB 순서입니다. Jump가 확인되기 전에 뒤의 instruction이 이미 들어오므로 wrong-path instruction이 flush되어 nop이 됩니다. x0에 대한 write는 버려져 dependency를 만들지 않습니다.
공식 시험지와 공식 Musterlösung을 기준으로 작성했습니다. 그림 문제는 렌더된 원본 페이지도 함께 대조합니다.
BEGINNER CONCEPT LESSON
문제 풀이 전에 개념부터 배우기
용어를 모르는 상태에서 답을 외우지 않도록, 비유·그림·작은 예제·시험용 풀이 알고리즘을 별도 수업으로 만들었습니다.
원본 그림과 공식 해설 그림
diagram 문제는 text만으로 대체하지 말고 아래 원본을 확대해 선·stage·field를 직접 확인하세요.
MICRO WORK UNITS
5개 작업 단위로 학습
각 카드는 요구사항 → zero-base 개념 → 손풀이 단계 → 공식 결론 → 함정 → active recall 순서입니다.
7a-1네 번째 instruction fetch 시점
문제가 요구하는 것
첫 jump 이후 IF/ID/EX/MEM/WB를 채우세요.
이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.
0. 이 소문제에 필요한 핵심 개념
유효 dynamic 순서는 line21→42→43→44입니다. 강의의 IF→ID→EX 진행 순서로는 네 번째 유효 instruction line44가 IF에 있을 때 line43이 ID, line42가 EX에 있어야 합니다. 공식 p39는 동일한 세 instruction을 첫 세 상자에 42→43→44 순으로 적어 stage 진행과 반대로 보이므로 공식 그림의 공간 배치와 독립 cycle trace를 구분해야 합니다.
cycle 표를 그리고 instruction을 매 cycle 오른쪽 stage로 한 칸씩 옮기세요.
마지막 WB 위치와 N+4+penalty 계산값을 서로 비교하세요.
1. 이번 시험 문제에서 실제로 밟는 단계
- line 21을 첫 instruction으로 놓습니다.
- jump target을 따라 유효 dynamic instruction 1–4를 적습니다.
- 첫 jump 때문에 생긴 두 flush bubble을 표시합니다.
- 표준 IF→ID→EX 순서와 공식 p39 상자 배치를 각각 대조합니다.
2. 단계가 도착해야 하는 공식 답지 기준 결론
[공식 도식 모호성] 공식 p39 상단 네 상자의 왼쪽→오른쪽 표기는 `addi x23,x11,2`(line42), `addi x21,x11,-7`(line43), `j 0x16`(line44), `nop`입니다. 그러나 강의의 5-stage 시간 순서로 독립 추적하면 네 번째 유효 instruction인 line44가 Fetch일 때 IF=`j 0x16`(line44), ID=`addi x21,x11,-7`(line43), EX=`addi x23,x11,2`(line42), MEM=`nop`, WB=`nop`입니다.
3. 초보자가 자주 빠지는 오답과 이유
공식 그림의 상자 위치를 곧바로 IF/ID/EX라는 이름과 동일시하지 마세요. 공식 공간 배치와 표준 stage 시간표를 둘 다 적고 모순을 표시해야 합니다.
4. 정답을 닫고 스스로 설명하기
공식 p39의 첫 세 상자를 표준 IF→ID→EX로 읽으면 어떤 시간 순서 모순이 생기나요?
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p14–15 · 공식 해설 p39–40
7a-2일곱 번째 instruction fetch 시점
문제가 요구하는 것
두 번째 jump 이후 pipeline을 채우세요.
이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.
0. 이 소문제에 필요한 핵심 개념
두 번째 jump 이후 유효 dynamic 순서는 line22→23→24입니다. 표준 IF→ID→EX 진행에서는 일곱 번째 유효 instruction line24가 IF, line23이 ID, line22가 EX입니다. 공식 p39 하단도 같은 세 instruction을 사용하지만 첫 세 상자에는 22→23→24 순으로 적어 stage 진행과 반대로 보입니다.
cycle 표를 그리고 instruction을 매 cycle 오른쪽 stage로 한 칸씩 옮기세요.
마지막 WB 위치와 N+4+penalty 계산값을 서로 비교하세요.
1. 이번 시험 문제에서 실제로 밟는 단계
- line44의 second jump target line22를 표시합니다.
- 유효 dynamic instruction 5–7을 line22,23,24로 적습니다.
- 두 번째 jump의 두 flush bubble을 표시합니다.
- 표준 IF→ID→EX 순서와 공식 p39 상자 배치를 각각 대조합니다.
2. 단계가 도착해야 하는 공식 답지 기준 결론
[공식 도식 모호성] 공식 p39 하단 네 상자의 왼쪽→오른쪽 표기는 `ori x16,x14,1`(line22), `sub x17,x15,x14`(line23), `sw x10,8(x15)`(line24), `nop`입니다. 그러나 강의의 5-stage 시간 순서로 독립 추적하면 일곱 번째 유효 instruction인 line24가 Fetch일 때 IF=`sw x10,8(x15)`(line24), ID=`sub x17,x15,x14`(line23), EX=`ori x16,x14,1`(line22), MEM=`nop`, WB=`nop`입니다.
3. 초보자가 자주 빠지는 오답과 이유
jump target 주소를 line 번호와 혼동하지 말고, 공식 상자의 공간 순서와 표준 stage 이름도 혼동하지 마세요.
4. 정답을 닫고 스스로 설명하기
공식 p39의 첫 세 상자를 표준 IF→ID→EX로 읽으면 어떤 시간 순서 모순이 생기나요?
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p14–15 · 공식 해설 p39–40
7b세 processor의 총 cycle
문제가 요구하는 것
line20부터 line26까지 실제 control-flow path의 cycle을 계산하세요.
이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.
0. 이 소문제에 필요한 핵심 개념
실제 dynamic 순서는 20→21→42→43→44→22→23→24→25→26으로 총 10 instruction이며 jump는 두 번입니다. Pipeline은 fill/drain 4 cycle과 jump당 2 flush를 더합니다.
cycle 표를 그리고 instruction을 매 cycle 오른쪽 stage로 한 칸씩 옮기세요.
마지막 WB 위치와 N+4+penalty 계산값을 서로 비교하세요.
1. 이번 시험 문제에서 실제로 밟는 단계
- jump target을 따라 20→21→42→43→44→22→23→24→25→26을 적어 N=10과 jump=2를 확인합니다.
- Eintakt: 10×1.
- Mehrtakt: 이 path의 각 instruction이 4 cycle이라는 주어진 FSM 가정으로 10×4.
- Pipeline: N+(5-1)+2 jumps×2 flush.
2. 단계가 도착해야 하는 공식 답지 기준 결론
실행 순서: 20→21→42→43→44→22→23→24→25→26. 따라서 Eintakt 10 Takte, Mehrtakt 40 Takte, Pipeline 10+4+2×2=18 Takte입니다.
3. 초보자가 자주 빠지는 오답과 이유
원문 line20–26이 7줄이라고 해서 7 instruction만 세면 jump target으로 실행되는 line42–44를 놓칩니다.
4. 정답을 닫고 스스로 설명하기
Pipeline의 ideal 14 cycle이 18 cycle로 늘어난 정확한 원인은 무엇인가요?
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p14–15 · 공식 해설 p39–40
7c-1가짜 dependency 제거: x0
문제가 요구하는 것
`addi x0,...` 두 줄이 hazard를 만드는지 판단하세요.
이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.
0. 이 소문제에 필요한 핵심 개념
RISC-V x0 write는 버려집니다. 다음 instruction이 x0를 읽어도 값은 항상 0이므로 앞의 addi 결과를 기다릴 이유가 없습니다.
cycle 표를 그리고 instruction을 매 cycle 오른쪽 stage로 한 칸씩 옮기세요.
마지막 WB 위치와 N+4+penalty 계산값을 서로 비교하세요.
1. 이번 시험 문제에서 실제로 밟는 단계
- 각 instruction의 실제 destination을 표시합니다.
- destination=x0이면 architectural write가 없다고 표시합니다.
- 후속 instruction의 source와 대조합니다.
2. 단계가 도착해야 하는 공식 답지 기준 결론
`addi x0,a0,5`와 `addi x0,x0,10`은 x0 값을 바꾸지 않으므로 이 write 때문에 Data Hazard가 생기지 않습니다.
3. 초보자가 자주 빠지는 오답과 이유
text상 register 이름이 같다는 이유만으로 dependency를 선언하지 마세요.
4. 정답을 닫고 스스로 설명하기
`add x0,t1,t2` 뒤 `sub t3,x0,t4`는 왜 RAW hazard가 아닌가요?
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p14–15 · 공식 해설 p39–40
7c-2첫 실제 hazard: t2→bne
문제가 요구하는 것
`sub t2,t1,x0`와 `bne t2,zero,odd` 사이의 첫 hazard와 그 순간의 pipeline 배치를 찾으세요.
이 카드는 빠른 복습용입니다. 처음 학습한다면 아래 독립 페이지에서 용어·비유·수식·작은 예제부터 읽으세요.
0. 이 소문제에 필요한 핵심 개념
첫 실제 dependency는 `sub`가 만드는 t2를 바로 다음 `bne`가 읽는 RAW입니다. 공식 p40의 네 상자는 pipeline register 기준 IF/ID→MEM/WB 순서이며, 각각 bne, sub, li, addi x0,x0,10을 담습니다. 따라서 stage 의미로는 ID=bne, EX=sub, MEM=li, WB=addi이고, 동시에 다음 `slli`가 IF에 있을 수 있습니다.
cycle 표를 그리고 instruction을 매 cycle 오른쪽 stage로 한 칸씩 옮기세요.
마지막 WB 위치와 N+4+penalty 계산값을 서로 비교하세요.
1. 이번 시험 문제에서 실제로 밟는 단계
- producer의 rd=t2와 consumer의 rs1=t2를 표시합니다.
- 공식 p40 네 상자를 IF/ID, ID/EX, EX/MEM, MEM/WB에 대응시킵니다.
- 표준 stage 이름으로 ID/EX/MEM/WB와 현재 IF를 따로 적습니다.
- 강의의 EX-stage branch 비교에서는 다음 cycle의 M→E forwarding으로 data stall 0임을 표시합니다.
- branch의 Control Hazard와 RAW Data Hazard를 분리합니다.
2. 단계가 도착해야 하는 공식 답지 기준 결론
공식 p40 상자(IF/ID→MEM/WB)는 `bne t2,zero,odd` | `sub t2,t1,x0` | `li t4,42` | `addi x0,x0,10`입니다. Stage 의미로는 IF=`slli t3,a0,2`(공식 네 상자 밖), ID=`bne`, EX=`sub`, MEM=`li`, WB=`addi x0,x0,10`입니다. `sub→bne`는 t2에 대한 RAW Data Hazard이고, 강의의 branch-in-EX/forwarding model에서는 다음 cycle에 sub의 ALU 결과를 M→E로 전달하므로 data stall은 0 cycle입니다. 분기가 taken이면 별도로 강의 회로의 두 younger slot을 flush합니다(이 code에서는 `slli`가 실제 wrong-path이며 target instruction은 flush 후 다시 fetch될 수 있습니다).
3. 초보자가 자주 빠지는 오답과 이유
공식 도식의 첫 상자를 Fetch라고 부르면 hazard 발생 시점이 한 cycle 어긋납니다. 상자는 IF/ID register의 내용, 즉 Decode에 들어가는 bne를 표시합니다. Data Hazard와 branch의 Control Hazard도 분리하세요.
4. 정답을 닫고 스스로 설명하기
producer와 consumer 사이에 독립 instruction 하나가 끼면 forwarding/stall 조건이 어떻게 달라지는지 설명해 보세요.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p14–15 · 공식 해설 p39–40



