UNIT-SPECIFIC ACTIVE LESSON · 7a-2

일곱 번째 instruction fetch 시점

두 번째 jump 이후 pipeline을 채우세요.

학습 목표: line 44의 두 번째 jump target을 따라 일곱 번째 fetch snapshot의 stage 내용을 공식 diagram과 일치시킬 수 있다.
공식 근거 범위: Probeklausur.pdf 시험 p14 7a 두 번째 snapshot과 source listing, Probeklausur Musterlösung und Hinweise.pdf 공식 해설 p39 하단 Abbildung 19.

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

두 번의 jump가 연속으로 control flow를 바꾸므로 첫 snapshot만 맞춰도 충분하지 않습니다. 새 target에서 dynamic counting을 이어 가는 능력이 필요합니다.

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

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

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

second jump
첫 target block의 line 44에서 다시 line 22 방향으로 control flow를 바꾸는 j 0x16입니다.이 소문제에서: 일곱 번째 instruction을 찾는 새 기준점으로 사용합니다.
jump target mapping
hex target 표기와 source listing의 line 번호를 연결한 대응입니다.이 소문제에서: 0x16을 line 22로 해석할 때 사용합니다.
pipeline occupancy
특정 cycle에 각 stage가 보유한 instruction의 동시 배치입니다.이 소문제에서: IF/ID/EX와 nop인 MEM/WB를 함께 기록할 때 사용합니다.
wrong path
jump가 확정되기 전에 가져왔지만 실제 control flow에 속하지 않아 제거되는 instruction 흐름입니다.이 소문제에서: 두 번째 jump의 flush를 설명할 때 사용합니다.

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

첫 snapshot 뒤 counting을 중단하지 않는다

네 번째 instruction line 44 자체가 jump이므로 target line 22부터 다섯·여섯·일곱 번째를 계속 세야 합니다.

종이에: 1–4 목록 오른쪽에 5–7 target 목록을 이어 씁니다.

target 주소와 listing line을 명시적으로 대응한다

0x16이라는 주소를 source line 16이나 decimal 16으로 오해하지 않도록 문제 listing의 mapping을 사용해야 합니다.

종이에: 0x16 → line 22를 별도 박스로 적습니다.

공식 두 snapshot을 연결해 검산한다

p39 상단의 line 44 jump와 하단의 line 22–24 label이 한 control-flow 사건으로 이어져야 합니다.

종이에: 두 diagram 사이에 line44 j→line22 화살표를 그립니다.

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

이 소문제 전용 작은 예제

dynamic 4번째 instruction이 line 32의 j 12이고 target block이 line 12:addi, 13:sub, 14:sw라면 5–7번째 instruction을 쓰세요.

주어진 것

  • line 32의 jump는 무조건 target 12로 갑니다.
  • target block에는 다음 jump가 없습니다.
  • counting은 기존 4 다음부터 이어집니다.
  1. 네 번째 jump의 target을 새 목록 시작점으로 둡니다.

    물리적 다음 line 33은 유효 control flow가 아닙니다.

    종이 산출물: 4: line32 j→12

  2. target line을 다섯 번째로 기록합니다.

    jump target이 다음 dynamic fetch입니다.

    종이 산출물: 5: line12 addi

  3. sequential target block의 다음 두 line을 기록합니다.

    새 jump를 만나기 전까지 line 순서가 유지됩니다.

    종이 산출물: 6: line13 sub, 7: line14 sw

예제 답과 독립 검산 보기

5번째 line 12, 6번째 line 13, 7번째 line 14입니다.

독립 검산: line 33이 목록에 없고 번호가 5부터 이어지는지 확인합니다.

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

공식 시험이 요구하는 것

두 번째 jump 이후 pipeline을 채우세요.

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

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

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

첫 target block의 세 instruction을 배치합니다.

왜 하는가
첫 jump 뒤 실제 control flow는 line 42,43,44이며 line 44가 두 번째 jump라는 기반을 먼저 고정해야 합니다.
종이 산출물
line42 addi, line43 addi, line44 j 0x16 목록을 적습니다.
완료 조건
두 번째 jump 직전까지 dynamic 순서를 설명합니다.
막혔을 때 단계 힌트·대표 오류

힌트: 공식 p39 상단의 세 non-nop label을 읽으세요.

이 단계의 대표 오류: line 40 또는 41을 target block 첫 instruction으로 셉니다.

line44 jump resolution을 표시합니다.

왜 하는가
j 0x16은 sequential line45가 아니라 listing의 line22로 control flow를 되돌립니다.
종이 산출물
line44 j 0x16→line22 화살표를 적습니다.
완료 조건
0x16과 line22 mapping을 말로 설명할 수 있습니다.
막혔을 때 단계 힌트·대표 오류

힌트: 0x16의 decimal 값은 22입니다.

이 단계의 대표 오류: 0x16을 line16 또는 line45로 해석합니다.

두 flush bubble을 넣습니다.

왜 하는가
두 번째 jump가 확정되기 전에 들어온 wrong-path instruction은 유효 상태를 바꾸면 안 됩니다.
종이 산출물
두 slot을 nop으로 표시하고 second jump flush라고 주석을 적습니다.
완료 조건
공식 p39 하단의 MEM/WB nop을 두 번째 jump와 연결합니다.
막혔을 때 단계 힌트·대표 오류

힌트: 첫 snapshot과 같은 jump penalty 구조가 반복됩니다.

이 단계의 대표 오류: target instruction과 wrong-path instruction을 동시에 유효하다고 둡니다.

새 target의 line22부터 순서대로 IF/ID/EX에 놓습니다.

왜 하는가
공식 하단 snapshot은 target block의 세 instruction과 두 nop으로 구성됩니다.
종이 산출물
공식 기준 IF=ori x16,x14,1(line22), ID=sub x17,x15,x14(line23), EX=sw x10,8(x15)(line24), MEM/WB=nop을 적습니다.
완료 조건
다섯 stage 칸이 공식 p39 하단과 일치합니다.
막혔을 때 단계 힌트·대표 오류

힌트: instruction text뿐 아니라 line 번호도 함께 씁니다.

이 단계의 대표 오류: line22–24를 반대로 옮기거나 line25를 포함합니다.

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

두 jump 때문에 total flush penalty가 몇 cycle인지 말해 보세요.

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

공식 결론

공식 p39 하단: IF=`ori x16,x14,1`, ID=`sub x17,x15,x14`, EX=`sw x10,8(x15)`, MEM=`nop`, WB=`nop`.

왜 이 답이 되는가

line44의 jump가 다시 line22 쪽으로 control flow를 바꾸고 두 wrong-path fetch가 flush됩니다.

대표 함정

jump target 주소를 line 번호와 혼동하지 마세요. 문제에서 제공한 mapping을 따라갑니다.

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

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

ori x16,x14,1
sub x17,x15,x14
sw x10,8(x15)
nop

새 문제로 전이하기

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

1. 개념 재구성

첫 jump와 두 번째 jump를 하나의 dynamic line sequence로 재구성하세요.

제출 후 모델 답 보기

line 21의 j가 line 42로 이동하고 line 42,43,44를 거친 뒤 line 44의 j가 line 22로 이동해 line 22,23,24로 이어집니다.

2. 변형 문제

4번째 instruction line 50이 j 8이고 target block이 line 8:addi, 9:lw, 10:beq라면 7번째 instruction은 무엇입니까?

제출 후 모델 답 보기

5번째 line 8, 6번째 line 9, 7번째 line 10이므로 답은 line 10의 beq입니다.

3. 오류 진단

학생이 line44 다음을 line45로 세어 일곱 번째를 line47이라고 했습니다. 첫 오류와 수정 target을 쓰세요.

제출 후 모델 답 보기

첫 오류는 unconditional jump의 target을 적용하지 않은 것입니다. line44 다음 dynamic instruction은 line45가 아니라 0x16에 대응하는 line22입니다.

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

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

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

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

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p14–15 · 공식 해설 p39–40 · Probeklausur.pdf 시험 p14 7a 두 번째 snapshot과 source listing, Probeklausur Musterlösung und Hinweise.pdf 공식 해설 p39 하단 Abbildung 19.