교재처럼 순서대로 읽는 본문
이 글은 요약 카드가 아닙니다. 처음 보는 용어의 뜻부터 시작해, 왜 그런 규칙이 생겼는지와 문제에서 어떻게 사용하는지를 한 흐름으로 설명합니다.
이 장을 공부하는 이유
그림에 아는 선을 모두 긋는 문제가 아닙니다. 네 instruction 각각의 경로를 투명 종이에 그린 뒤 겹치는 선만 남기는 교집합 문제입니다.
읽고 나면 할 수 있어야 하는 것
- instruction을 PC update·register·memory·writeback 행동으로 분해한다.
- 네 경로의 union이 아니라 intersection을 구한다.
- 조건부로 선택되는 PC 경로를 문제 지시에 맞게 포함한다.
먼저 비유로 머릿속 구조 만들기
네 사람이 지하철을 타고 서로 다른 목적지로 갑니다. 모두가 이용하는 구간은 집 앞 역에서 공통 환승역까지뿐입니다. 한 사람만 타는 지선까지 그리면 감점입니다.
그림은 왼쪽에서 오른쪽으로 읽습니다. 각 화살표는 앞 단계의 결과가 다음 단계의 입력이 된다는 뜻입니다. 흐름도만 크게 열기
용어를 평범한 문장으로 바꾸기
독일어와 영어 용어를 소리만 외우지 말고, 아래 설명을 자신의 말로 다시 말해 보세요.
- Datapath
- 값이 component와 wire를 따라 이동하는 전체 길
- Control signal
- mux 선택, write enable처럼 길을 선택하는 신호
- intersection / 교집합
- 모든 instruction이 실제로 사용하는 경로
- writeback
- ALU/memory 결과를 register file의 rd에 쓰는 단계
- PCSrc
- 다음 PC 후보 중 실제 값을 선택하는 mux 제어
개념을 처음부터 연결하기
1. 먼저 행동 표 만들기
slli는 register read→ALU→register write, sw는 register read→address ALU→memory write, lw는 address ALU→memory read→register write, beq는 두 register 비교→조건부 PC update입니다.
2. 공통 시작
모두 PC로 instruction address를 내고 instruction memory에서 instruction을 읽습니다. 다음 PC 후보를 만들기 위한 PC+4 경로도 모든 instruction에 필요합니다.
3. 빨리 제외할 전용 경로
Data memory는 lw/sw만, register writeback은 slli/lw만, branch comparator/target은 beq만 사용합니다. 이런 선은 교집합에서 제외합니다.
이 챕터에서 계속 사용할 손풀이 표
아래 표는 정답표가 아니라 작업 기억을 외부에 꺼내 놓는 worksheet입니다. 소문제를 풀 때마다 빈 칸을 직접 채우세요.
| Instruction | 읽기/계산 | 최종 destination |
|---|---|---|
| slli | rs1 + immediate shift | rd |
| sw | base + offset, store data | Data Memory |
| lw | base + offset, memory read | rd |
| beq | rs1과 rs2 비교 | 조건부 PC |
수식은 위아래 구조로 읽기
평문으로 제곱과 분수를 이어 쓰면 구조를 놓치기 쉽습니다. 아래 수식은 브라우저의 MathML로 렌더되며, 지수·아래첨자·분수를 실제 수학 표기처럼 보여 줍니다.
문제가 요구하는 공통 경로
한 명령에서만 쓰는 선을 하나라도 포함하면 교집합이 아닙니다.
기본 next PC
branch가 실제로 선택되지 않는 경우의 기본 다음 instruction 주소입니다.
작은 숫자로 한 번 직접 해보기
두 instruction만 비교해도 원리가 보입니다. `add`와 `sw`는 instruction fetch와 register read, ALU 입력 일부는 공유하지만, add의 rd writeback과 sw의 memory write는 서로 공통이 아닙니다.
이 예제에서 중요한 것은 숫자 자체가 아니라, 어떤 값을 먼저 구하고 그 결과를 다음 계산에 넣는지입니다. 종이에 중간값을 생략하지 않고 적어 보세요.
초보자가 자주 멈추는 지점
ALU를 모두 쓰니 ALU의 모든 선이 공통인가요?
아닙니다. ALU를 쓰더라도 입력 mux 선택과 결과의 목적지가 다를 수 있습니다. component 이름이 아니라 실제 wire segment 단위로 교집합을 구합니다.
PC+4와 branch target 중 무엇을 그리나요?
모든 instruction이 기본 next PC 후보로 PC+4를 사용합니다. branch target 전용 계산은 beq에만 필요하므로 네 명령 공통 교집합에서는 분리해 판단합니다.
Register File 경로는 전부 공통인가요?
네 instruction 모두 decode 과정은 거치지만 필요한 read port 수와 write port 사용은 다릅니다. writeback은 sw와 beq에는 없으므로 공통이 아닙니다.
시험지에서 손으로 쓰는 순서
- 각 instruction마다 PC next, 읽는 register 수, ALU 입력, memory, destination을 표로 씁니다.
- 그림에서 한 instruction씩 다른 색으로 경로를 trace합니다.
- 네 색이 모두 겹치는 segment만 표시합니다.
- 조건부 path 포함 지시를 다시 읽습니다.
- 선 하나마다 ‘네 instruction 이름을 모두 말할 수 있는가?’로 검산합니다.
이 순서를 외우는 목적은 답을 암기하는 것이 아닙니다. 중간 과정을 답안지에 남겨 부분점수를 얻고, 어디에서 잘못됐는지 스스로 찾기 위한 체크포인트입니다.
3개 소문제로 개념 적용하기
각 소문제에는 이 장의 설명을 다시 포함한 독립 수업 페이지가 있습니다. 따라서 링크로 바로 들어가도 선행지식 없이 읽을 수 있습니다.
- 5-1네 instruction 개별 경로 분류독립 수업 열기 →
`slli`, `sw`, `lw`, `beq`의 path를 각각 추적하세요. · 5 micro-work
- 5-2공통 path 교집합독립 수업 열기 →
네 instruction 모두가 쓰는 선만 남기세요. · 5 micro-work
- 5-3Register File 연결 규칙독립 수업 열기 →
A1/A2/A3/WD3가 어떤 instruction에서 쓰이는지 정리하세요. · 4 micro-work
출처
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p10–11 · 공식 해설 p23–36. 공식 답의 숫자와 course-specific datapath/FSM 가정은 변경하지 않았습니다.