왜 이 소문제를 따로 배우는가
공통 path를 바로 그리면 합집합과 교집합을 섞기 쉽습니다. 네 instruction의 개별 경로를 먼저 완성해야 최종 공통선을 안전하게 얻고 감점 위험을 줄일 수 있습니다.
이 페이지는 Aufgabe 5의 공통 템플릿이 아니라 5-1 네 instruction 개별 경로 분류에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 5 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- data path
- instruction 처리 중 값이 component와 wire를 따라 이동하는 경로입니다.이 소문제에서: 네 instruction이 실제로 사용하는 연결을 각각 추적할 때 사용합니다.
- Register File
- source register를 읽고 필요하면 destination register에 결과를 쓰는 저장 component입니다.이 소문제에서: A1/A2 읽기와 A3/WD3 writeback 사용 여부를 instruction별로 판정할 때 사용합니다.
- ALUSrc
- ALU의 둘째 입력이 register 값인지 extended immediate인지 고르는 선택입니다.이 소문제에서: slli, sw, lw와 beq가 ALU 입력을 어떻게 다르게 만드는지 구분할 때 사용합니다.
- writeback
- ALU 결과나 memory read 결과를 destination register에 기록하는 마지막 흐름입니다.이 소문제에서: slli와 lw에는 있지만 sw와 beq에는 없는 register destination 경로를 판정할 때 사용합니다.
이 소문제 전용 규칙과 종이 작업
세 질문으로 instruction 경로를 고정한다
각 instruction마다 다음 PC, 읽는 operand, 최종 destination을 먼저 정하면 필요한 component가 자연스럽게 결정됩니다.
종이에: instruction별로 PC / sources / operation / destination 네 열 표를 작성합니다.
assembly operand 위치를 역할로 다시 읽는다
첫 register가 항상 destination은 아니며 sw의 첫 register는 memory에 쓸 data, 괄호 안 register는 주소 base입니다.
종이에: 각 register 위에 rd, rs1, rs2 또는 store-data/base를 직접 적습니다.
개별 경로에서는 아직 지우지 않는다
교집합 판단은 네 개별 경로가 완성된 뒤에 해야 특정 instruction의 전용선을 실수로 공통선으로 남기지 않습니다.
종이에: 네 경로를 서로 다른 색이나 네 행의 Boolean 표로 먼저 보존합니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
addi t0,t1,4와 sw t2,8(s0)의 개별 경로를 register 읽기, ALU, memory, writeback 기준으로 비교하세요.
주어진 것
- addi는 I-type ALU instruction입니다.
- sw는 base+offset 주소에 register data를 저장합니다.
- 두 instruction 모두 정상 순차 실행이면 PC+4 후보를 사용합니다.
- 각 instruction의 source와 destination을 적습니다.
Register File의 읽기/쓰기 port 사용을 결정하기 위해서입니다.
종이 산출물: addi: rs1=t1, rd=t0; sw: rs1=s0(base), rs2=t2(data), rd 없음
- ALU 두 입력과 결과 의미를 적습니다.
둘 다 immediate를 사용하지만 addi 결과는 값이고 sw 결과는 주소입니다.
종이 산출물: addi ALU=t1+4; sw ALU=s0+8=memory address
- 최종 destination과 write enable을 표시합니다.
register writeback과 Data Memory write를 혼동하지 않기 위해서입니다.
종이 산출물: addi RegWrite=1, MemWrite=0; sw RegWrite=0, MemWrite=1
예제 답과 독립 검산 보기
addi는 A1→ALU(immediate)→WD3/rd 경로를, sw는 A1/A2→ALU 주소와 WriteData→Data Memory 경로를 사용합니다.
독립 검산: sw에 A3/WD3를 표시하지 않았는지, addi에 Data Memory write를 표시하지 않았는지 확인합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
`slli`, `sw`, `lw`, `beq`의 path를 각각 추적하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
PC가 PC+4 또는 branch target 중 무엇인지 표시합니다.
- 왜 하는가
- 모든 instruction은 fetch를 하지만 beq만 조건에 따라 branch target을 선택할 수 있어 PC 경로가 달라집니다.
- 종이 산출물
- slli/sw/lw에는 PC+4, beq에는 PC+4와 조건부 BTA 후보를 적습니다.
- 완료 조건
- 네 instruction 각각의 next-PC 후보와 조건 여부가 구분됩니다.
막혔을 때 단계 힌트·대표 오류
힌트: 먼저 jump/branch instruction인지 판정하세요.
이 단계의 대표 오류: beq가 목록에 있다는 이유로 branch target 경로를 네 instruction 모두의 개별 경로에 넣습니다.
A1/A2/A3/WD3 사용 여부를 표시합니다.
- 왜 하는가
- source 수와 register destination 유무가 Register File 주변 연결을 결정합니다.
- 종이 산출물
- slli A1/A3/WD3, sw A1/A2, lw A1/A3/WD3, beq A1/A2 표를 만듭니다.
- 완료 조건
- 각 port에 실제 operand 역할과 register 이름을 붙일 수 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: sw의 첫 operand는 rd가 아니라 저장할 data입니다.
이 단계의 대표 오류: sw t1,0(t2)의 t1을 A3 destination으로 표시합니다.
ALU의 두 입력 source를 표시합니다.
- 왜 하는가
- ALU가 register 비교를 하는지, base+offset을 하는지, shift immediate를 처리하는지에 따라 MUX 선택이 달라집니다.
- 종이 산출물
- 각 instruction에 SrcA와 SrcB가 register/immediate 중 무엇인지 적습니다.
- 완료 조건
- 네 instruction 모두의 ALU 계산식을 한 줄씩 쓸 수 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 괄호 밖 숫자나 shift amount가 있으면 immediate 경로를 먼저 의심하세요.
이 단계의 대표 오류: beq의 둘째 source를 immediate로 표시해 두 register 비교를 놓칩니다.
Data Memory read/write를 표시합니다.
- 왜 하는가
- lw만 memory read를, sw만 memory write를 수행하고 slli/beq는 Data Memory를 사용하지 않습니다.
- 종이 산출물
- lw: read, sw: write, slli/beq: none인 표와 memory address/data 방향을 적습니다.
- 완료 조건
- MemWrite와 memory read 결과 경로를 instruction별로 구분합니다.
막혔을 때 단계 힌트·대표 오류
힌트: load는 memory→CPU, store는 CPU→memory 방향입니다.
이 단계의 대표 오류: lw와 sw 모두 memory를 쓰므로 둘 다 같은 read/write 방향이라고 표시합니다.
register writeback 여부를 표시합니다.
- 왜 하는가
- slli는 ALUResult를, lw는 ReadData를 rd에 쓰지만 sw와 beq는 일반 register destination이 없습니다.
- 종이 산출물
- slli WD3=ALUResult, lw WD3=ReadData, sw/beq RegWrite=0을 적습니다.
- 완료 조건
- ResultSrc와 RegWrite가 필요한 두 instruction을 정확히 가려냅니다.
막혔을 때 단계 힌트·대표 오류
힌트: assembly 결과가 첫 register에 저장되는 instruction인지 보세요.
이 단계의 대표 오류: beq의 비교 결과를 일반 register에 writeback한다고 표시합니다.
공식 답을 열기 전 마지막 회상
lw와 sw가 공통으로 쓰지만 slli와 beq는 쓰지 않는 block은 무엇인가요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
공식 해설 p23–24의 네 개별 diagram을 먼저 완성한 뒤 p25에서 교집합을 확인합니다.
왜 이 답이 되는가
slli는 register→ALU→register, sw는 base/data register→ALU/Data Memory, lw는 base→ALU→Data Memory→register, beq는 두 register 비교와 조건부 PC 선택을 씁니다.
대표 함정
문제는 합집합이 아니라 모든 네 instruction이 공통으로 쓰는 교집합입니다.
명령어와 식을 줄 단위로 읽기
본문 속 code를 한 줄씩 분리했습니다. 각 줄에서 source, operation, destination을 표시하세요.
slli
sw
lw
beq새 문제로 전이하기
세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 rubric의 필수 기준을 하나씩 검사하고, 첫 누락 기준을 알려 줍니다.
1. 개념 재구성
instruction 하나의 Eintakt data path를 추적할 때 쓰는 다섯 확인 항목을 기억에서 재구성하세요.
PC, register, ALU, memory, 마지막 저장 순서입니다.
제출 후 모델 답 보기
next PC, Register File port, ALU 입력/연산, Data Memory read/write, register writeback을 확인합니다.
2. 변형 문제
addi a0,a1,12, sb t0,3(s1), lh t2,2(s2), bne t3,t4,L의 source 수, memory 방향, register write 여부를 표로 만드세요.
addi/lh는 rd가 있고 sb/bne는 rd가 없습니다.
제출 후 모델 답 보기
addi: source1+imm, memory 없음, register write. sb: base+data source2개, memory write, register write 없음. lh: base+imm, memory read, register write. bne: source2개 비교, memory 없음, register write 없음.
3. 오류 진단
학생이 sw t1,0(t2)를 'A1=t1, A3=t2, WD3=memory'로 그렸습니다. 첫 오류부터 고치세요.
store syntax에서 괄호 안 register와 첫 register의 역할을 다시 읽으세요.
제출 후 모델 답 보기
t2가 주소 base이므로 A1=t2이고 t1은 저장 data이므로 A2=t1입니다. sw는 일반 register destination과 WD3 writeback이 없습니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p10–11 · 공식 해설 p23–36 · Probeklausur.pdf 시험 p10의 네 instruction과 빈 Eintakt diagram, Probeklausur Musterlösung und Hinweise.pdf 공식 해설 p23–24의 개별 instruction path.


