UNIT-SPECIFIC ACTIVE LESSON · 7a-1

네 번째 instruction fetch 시점

첫 jump 이후 IF/ID/EX/MEM/WB를 채우세요.

학습 목표: line 21을 첫 dynamic instruction으로 삼아 jump target을 따라간 뒤, 공식 p39의 상자 배치와 강의의 IF→ID→EX cycle trace를 구분하여 네 번째 fetch snapshot을 검산할 수 있다.
공식 근거 범위: Probeklausur.pdf 시험 p14 7a의 line 20/21 counting과 첫 snapshot, Probeklausur Musterlösung und Hinweise.pdf 공식 해설 p39 상단 Abbildung 18.

왜 이 소문제를 따로 배우는가

pipeline stage 문제는 source code의 물리적 줄 순서가 아니라 실제 control flow 순서를 사용합니다. jump를 건너뛰면 이후 모든 stage가 한꺼번에 틀립니다.

이 페이지는 Aufgabe 7의 공통 템플릿이 아니라 7a-1 네 번째 instruction fetch 시점에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 7 개념 수업을 먼저 읽으세요.

이 소문제에서 실제로 쓰는 용어

정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.

dynamic instruction
프로그램 실행 중 control flow를 따라 실제로 fetch된 instruction instance입니다.이 소문제에서: line 21을 첫 instruction으로 세고 jump target line 42부터 계속 셀 때 사용합니다.
Fetch
PC가 가리키는 instruction을 Instruction Memory에서 가져오는 pipeline stage입니다.이 소문제에서: 문제의 'vierter Befehl geladen' 시점에서 기준 stage를 정할 때 사용합니다.
flush
jump가 확정된 뒤 잘못 가져온 sequential instruction을 무효화해 nop으로 만드는 처리입니다.이 소문제에서: 공식 snapshot의 빈 MEM/WB 위치와 jump penalty를 해석할 때 사용합니다.
stage snapshot
한 시점에 IF, ID, EX, MEM, WB에 있는 instruction을 동시에 기록한 표입니다.이 소문제에서: 시험 p14의 도식과 공식 p39의 네 입력 상자를 표준 5-stage 표와 비교할 때 사용합니다.

이 소문제 전용 규칙과 종이 작업

먼저 dynamic control flow 목록을 만든다

stage 배치를 시작하기 전에 jump target을 따라 실제 fetch 순서를 확정해야 line 번호를 순차로 잘못 세지 않습니다.

종이에: line 21 → line 42 → line 43 → line 44처럼 화살표 목록을 씁니다.

문제가 정한 counting convention을 그대로 쓴다

시험은 line 20을 0번째, line 21을 1번째로 정의하므로 일반적인 첫 instruction 감각보다 문제 문구가 우선입니다.

종이에: 각 dynamic line 위에 0,1,2,3,4 번호를 직접 적습니다.

공식 상자 배치와 표준 stage 시간표를 분리한다

공식 p39의 첫 세 상자는 42→43→44 순이지만, 유효 dynamic 순서 42→43→44가 동시에 파이프라인에 있다면 가장 최근 line44가 IF, line43이 ID, 가장 오래된 line42가 EX에 있어야 합니다.

종이에: 왼쪽에는 공식 상자 순서, 오른쪽에는 IF/ID/EX/MEM/WB 표를 따로 만들고 차이를 표시합니다.

Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.

이 소문제 전용 작은 예제

code가 line 10: j 30, line 11: addi, line 30: addi, line 31: sub, line 32: j 12일 때 line 10을 첫 instruction으로 한 처음 네 dynamic instruction을 쓰세요.

주어진 것

  • j는 무조건 target으로 control flow를 바꿉니다.
  • source code의 다음 줄은 jump가 선택되면 유효 dynamic instruction이 아닙니다.
  • 첫 instruction 번호는 1입니다.
  1. 첫 instruction line 10의 target을 찾습니다.

    물리적 다음 line 11 대신 실제 다음 fetch 위치를 결정해야 합니다.

    종이 산출물: 1: line 10 j→30

  2. target block에서 순서대로 두 instruction을 적습니다.

    새 jump를 만나기 전에는 sequential control flow입니다.

    종이 산출물: 2: line 30 addi, 3: line 31 sub

  3. 네 번째 dynamic instruction을 적고 다음 target을 표시합니다.

    snapshot 기준 instruction과 이후 control flow를 함께 확인하기 위해서입니다.

    종이 산출물: 4: line 32 j→12

예제 답과 독립 검산 보기

처음 네 dynamic instruction은 line 10, line 30, line 31, line 32입니다.

독립 검산: jump 때문에 line 11이 목록에 들어가지 않았고 line 32의 target은 다음 단계로만 표시했는지 확인합니다.

이제 실제 시험 문제를 micro-work로 풀기

공식 시험이 요구하는 것

첫 jump 이후 IF/ID/EX/MEM/WB를 채우세요.

공식 답을 보기 전, 내 답 먼저 남기기

완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.

각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.

line 21을 첫 instruction으로 놓습니다.

왜 하는가
공식 문제는 line 20을 0번째, line 21을 첫 번째라고 명시해 counting ambiguity를 제거합니다.
종이 산출물
line 20 위에 0, line 21 위에 1을 적습니다.
완료 조건
네 번째 instruction을 일반 line 순서가 아니라 문제 convention으로 셉니다.
막혔을 때 단계 힌트·대표 오류

힌트: 시험 p14의 'Zeile 21 als den ersten Befehl' 문장을 표시하세요.

이 단계의 대표 오류: line 20을 첫 번째로 세어 모든 번호가 하나씩 밀립니다.

jump 뒤 speculative line을 표시합니다.

왜 하는가
line 21의 j 0x2A는 target line 42로 가므로 sequential line 22·23은 유효 control-flow 목록과 구분해야 합니다.
종이 산출물
line 21→42 화살표와 line 22·23에 wrong-path 표시를 적습니다.
완료 조건
첫 jump 뒤 실제 target block 42,43,44를 순서대로 찾습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 0x2A를 decimal line 번호와 연결하세요.

이 단계의 대표 오류: line 21 다음을 line 22로 계속 세어 target block을 놓칩니다.

첫 jump의 두 wrong-path instruction이 만든 flush bubble을 표시합니다.

왜 하는가
공식 processor는 jump 확정 전에 가져온 두 instruction을 유효 작업으로 남기지 않습니다.
종이 산출물
line22와 line23을 wrong path로 표시하고 표준 snapshot의 MEM/WB에 nop을 적습니다.
완료 조건
두 bubble이 line21의 jump가 EX에서 확정될 때 생긴다는 것을 설명합니다.
막혔을 때 단계 힌트·대표 오류

힌트: 강의 Teil 2 p99 및 p105의 taken jump당 두 instruction flush 규칙을 사용하세요.

이 단계의 대표 오류: 잘못 fetch한 instruction을 그대로 stage에 남겨 실행된다고 봅니다.

네 번째 유효 instruction line44의 표준 stage snapshot과 공식 p39 공간 배치를 나란히 적습니다.

왜 하는가
공식 그림은 첫 세 상자를 line42→43→44로 채우지만 이를 IF→ID→EX로 읽으면 dynamic instruction의 나이 순서가 뒤집히기 때문입니다.
종이 산출물
표준 trace: IF=line44 j, ID=line43 addi, EX=line42 addi, MEM=nop, WB=nop. 공식 상자 왼→오: line42, line43, line44, nop. 옆에 [공식 도식 모호성]을 적습니다.
완료 조건
공식 그림을 정확히 전사하면서도 표준 IF→ID→EX 시간표와의 차이를 설명할 수 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 동시에 있는 세 유효 instruction 가운데 가장 나중에 fetch된 line44가 IF에 있어야 합니다.

이 단계의 대표 오류: 공식 상자의 왼쪽부터 기계적으로 IF, ID, EX라고 이름 붙여 line42가 line43·44보다 늦게 fetch된 것처럼 만듭니다.

공식 답을 열기 전 마지막 회상

공식 p39의 첫 세 상자를 표준 IF→ID→EX로 읽으면 어떤 시간 순서 모순이 생기나요?

내 풀이 후 공식 결론·이유·대표 함정 확인

공식 결론

[공식 도식 모호성] 공식 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`입니다.

왜 이 답이 되는가

유효 dynamic 순서는 line21→42→43→44입니다. 강의의 IF→ID→EX 진행 순서로는 네 번째 유효 instruction line44가 IF에 있을 때 line43이 ID, line42가 EX에 있어야 합니다. 공식 p39는 동일한 세 instruction을 첫 세 상자에 42→43→44 순으로 적어 stage 진행과 반대로 보이므로 공식 그림의 공간 배치와 독립 cycle trace를 구분해야 합니다.

대표 함정

공식 그림의 상자 위치를 곧바로 IF/ID/EX라는 이름과 동일시하지 마세요. 공식 공간 배치와 표준 stage 시간표를 둘 다 적고 모순을 표시해야 합니다.

7a-1에서 정확히 무엇에 답하는가

이 소문제의 답안 대상: 첫 jump 이후 IF/ID/EX/MEM/WB를 채우세요.

  1. line 21을 첫 instruction으로 놓습니다.
    판단 이유: 공식 문제는 line 20을 0번째, line 21을 첫 번째라고 명시해 counting ambiguity를 제거합니다.
    답안지에 남길 중간 결과: line 20 위에 0, line 21 위에 1을 적습니다.
  2. jump 뒤 speculative line을 표시합니다.
    판단 이유: line 21의 j 0x2A는 target line 42로 가므로 sequential line 22·23은 유효 control-flow 목록과 구분해야 합니다.
    답안지에 남길 중간 결과: line 21→42 화살표와 line 22·23에 wrong-path 표시를 적습니다.
  3. 첫 jump의 두 wrong-path instruction이 만든 flush bubble을 표시합니다.
    판단 이유: 공식 processor는 jump 확정 전에 가져온 두 instruction을 유효 작업으로 남기지 않습니다.
    답안지에 남길 중간 결과: line22와 line23을 wrong path로 표시하고 표준 snapshot의 MEM/WB에 nop을 적습니다.
  4. 네 번째 유효 instruction line44의 표준 stage snapshot과 공식 p39 공간 배치를 나란히 적습니다.
    판단 이유: 공식 그림은 첫 세 상자를 line42→43→44로 채우지만 이를 IF→ID→EX로 읽으면 dynamic instruction의 나이 순서가 뒤집히기 때문입니다.
    답안지에 남길 중간 결과: 표준 trace: IF=line44 j, ID=line43 addi, EX=line42 addi, MEM=nop, WB=nop. 공식 상자 왼→오: line42, line43, line44, nop. 옆에 [공식 도식 모호성]을 적습니다.

따라서 도출되는 공식 답: [공식 도식 모호성] 공식 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`입니다.

답이 이어지는 핵심 인과: 유효 dynamic 순서는 line21→42→43→44입니다. 강의의 IF→ID→EX 진행 순서로는 네 번째 유효 instruction line44가 IF에 있을 때 line43이 ID, line42가 EX에 있어야 합니다. 공식 p39는 동일한 세 instruction을 첫 세 상자에 42→43→44 순으로 적어 stage 진행과 반대로 보이므로 공식 그림의 공간 배치와 독립 cycle trace를 구분해야 합니다.

이 답에 붙는 주의: 공식 그림의 상자 위치를 곧바로 IF/ID/EX라는 이름과 동일시하지 마세요. 공식 공간 배치와 표준 stage 시간표를 둘 다 적고 모순을 표시해야 합니다.

명령어와 식을 줄 단위로 읽기

본문 속 code를 한 줄씩 분리했습니다. 각 줄에서 source, operation, destination을 표시하세요.

addi x23,x11,2
addi x21,x11,-7
j 0x16
nop

새 문제로 전이하기

세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 rubric의 필수 기준을 하나씩 검사하고, 첫 누락 기준을 알려 줍니다.

1. 개념 재구성

jump가 포함된 pipeline snapshot을 풀기 전 만드는 control-flow 준비표의 항목을 재구성하세요.

제출 후 모델 답 보기

문제가 정한 instruction 번호, 현재 line, jump target, 다음 유효 line, flush되는 wrong-path line을 표로 만듭니다.

2. 변형 문제

line 5: j 12, line 6: addi, line 12: sub, line 13: sw, line 14: j 7에서 line 5를 첫 instruction으로 할 때 네 번째 dynamic instruction은 무엇입니까?

제출 후 모델 답 보기

순서는 line 5, line 12, line 13, line 14이므로 네 번째 dynamic instruction은 line 14의 j 7입니다.

3. 오류 진단

학생이 line 21,22,23,24를 첫 네 instruction으로 세었습니다. 첫 오류와 수정된 control flow를 쓰세요.

제출 후 모델 답 보기

첫 오류는 unconditional jump line 21 뒤에 line 22를 유효 instruction으로 센 것입니다. 실제 control flow는 line 21에서 line 42로 가고 이어 line 43, line 44를 봅니다.

이 소문제를 끝냈다고 말할 수 있는 기준

이 소문제의 정확한 공식 페이지와 대조하기

왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.

7a-1 관련 공식 시험 또는 해설 페이지
exam-p14.png · 클릭해 원본 크기로 확인
7a-1 관련 공식 시험 또는 해설 페이지
solution-p39.png · 클릭해 원본 크기로 확인

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p14–15 · 공식 해설 p39–40 · Probeklausur.pdf 시험 p14 7a의 line 20/21 counting과 첫 snapshot, Probeklausur Musterlösung und Hinweise.pdf 공식 해설 p39 상단 Abbildung 18.