UNIT-SPECIFIC ACTIVE LESSON · 7a-2

일곱 번째 instruction fetch 시점

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

학습 목표: line 44의 두 번째 jump target을 따라 일곱 번째 fetch snapshot을 만들고, 공식 p39 상자 배치와 표준 IF→ID→EX 시간표의 차이를 검산할 수 있다.
공식 근거 범위: 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/MEM/WB 표와 공식 p39의 네 입력 상자를 따로 기록할 때 사용합니다.
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를 별도 박스로 적습니다.

공식 공간 배치와 표준 stage 순서를 모두 검산한다

p39 하단은 line22→23→24를 왼쪽부터 적지만 표준 시간표에서는 가장 최근 line24가 IF, line23이 ID, 가장 오래된 line22가 EX입니다.

종이에: 두 diagram 사이에 line44 j→line22 화살표를 그리고, 공식 상자 순서와 IF/ID/EX 표를 나란히 적습니다.

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로 해석합니다.

두 번째 jump의 두 flush bubble을 넣습니다.

왜 하는가
두 번째 jump가 확정되기 전에 들어온 wrong-path instruction은 유효 상태를 바꾸면 안 됩니다.
종이 산출물
line45 이후 두 wrong-path slot을 무효화하고 표준 snapshot의 MEM/WB에 nop을 적습니다.
완료 조건
두 bubble을 line44의 second jump가 EX에서 확정되는 사건과 연결합니다.
막혔을 때 단계 힌트·대표 오류

힌트: 첫 jump와 같은 2-flush 구조가 반복됩니다.

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

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

왜 하는가
공식 하단의 첫 세 상자는 line22→23→24이지만, 표준 pipeline에서 가장 최근 line24는 IF이고 가장 오래된 line22는 EX여야 합니다.
종이 산출물
표준 trace: IF=line24 sw, ID=line23 sub, EX=line22 ori, MEM=nop, WB=nop. 공식 상자 왼→오: line22, line23, line24, nop. 옆에 [공식 도식 모호성]을 적습니다.
완료 조건
공식 그림과 독립 cycle trace를 혼합하지 않고 각각 정확히 제시합니다.
막혔을 때 단계 힌트·대표 오류

힌트: instruction age는 line22가 가장 오래되고 line24가 가장 최근입니다.

이 단계의 대표 오류: 공식 상자의 왼쪽부터 IF/ID/EX로 단정해 유효 instruction 순서를 거꾸로 만듭니다.

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

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

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

공식 결론

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

왜 이 답이 되는가

두 번째 jump 이후 유효 dynamic 순서는 line22→23→24입니다. 표준 IF→ID→EX 진행에서는 일곱 번째 유효 instruction line24가 IF, line23이 ID, line22가 EX입니다. 공식 p39 하단도 같은 세 instruction을 사용하지만 첫 세 상자에는 22→23→24 순으로 적어 stage 진행과 반대로 보입니다.

대표 함정

jump target 주소를 line 번호와 혼동하지 말고, 공식 상자의 공간 순서와 표준 stage 이름도 혼동하지 마세요.

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

이 소문제의 답안 대상: 두 번째 jump 이후 pipeline을 채우세요.

  1. 첫 target block의 세 instruction을 배치합니다.
    판단 이유: 첫 jump 뒤 실제 control flow는 line 42,43,44이며 line 44가 두 번째 jump라는 기반을 먼저 고정해야 합니다.
    답안지에 남길 중간 결과: line42 addi, line43 addi, line44 j 0x16 목록을 적습니다.
  2. line44 jump resolution을 표시합니다.
    판단 이유: j 0x16은 sequential line45가 아니라 listing의 line22로 control flow를 되돌립니다.
    답안지에 남길 중간 결과: line44 j 0x16→line22 화살표를 적습니다.
  3. 두 번째 jump의 두 flush bubble을 넣습니다.
    판단 이유: 두 번째 jump가 확정되기 전에 들어온 wrong-path instruction은 유효 상태를 바꾸면 안 됩니다.
    답안지에 남길 중간 결과: line45 이후 두 wrong-path slot을 무효화하고 표준 snapshot의 MEM/WB에 nop을 적습니다.
  4. 일곱 번째 유효 instruction line24의 표준 stage snapshot과 공식 p39 공간 배치를 나란히 적습니다.
    판단 이유: 공식 하단의 첫 세 상자는 line22→23→24이지만, 표준 pipeline에서 가장 최근 line24는 IF이고 가장 오래된 line22는 EX여야 합니다.
    답안지에 남길 중간 결과: 표준 trace: IF=line24 sw, ID=line23 sub, EX=line22 ori, MEM=nop, WB=nop. 공식 상자 왼→오: line22, line23, line24, nop. 옆에 [공식 도식 모호성]을 적습니다.

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

답이 이어지는 핵심 인과: 두 번째 jump 이후 유효 dynamic 순서는 line22→23→24입니다. 표준 IF→ID→EX 진행에서는 일곱 번째 유효 instruction line24가 IF, line23이 ID, line22가 EX입니다. 공식 p39 하단도 같은 세 instruction을 사용하지만 첫 세 상자에는 22→23→24 순으로 적어 stage 진행과 반대로 보입니다.

이 답에 붙는 주의: jump target 주소를 line 번호와 혼동하지 말고, 공식 상자의 공간 순서와 표준 stage 이름도 혼동하지 마세요.

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

본문 속 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.