교재처럼 순서대로 읽는 본문
이 글은 요약 카드가 아닙니다. 처음 보는 용어의 뜻부터 시작해, 왜 그런 규칙이 생겼는지와 문제에서 어떻게 사용하는지를 한 흐름으로 설명합니다.
이 장을 공부하는 이유
Mehrtakt processor는 한 instruction이 여러 방을 차례로 방문합니다. FSM state는 방의 이름이 아니라 그 cycle에 어떤 register가 읽히고, 어떤 조합 회로를 지나, 어디에 저장되는지를 말해야 합니다.
읽고 나면 할 수 있어야 하는 것
- Fetch·MemAdr·JAL·BEQ state의 구체적 read/compute/write를 설명한다.
- register-to-register timing path의 지연을 빠짐없이 더한다.
- 최대 지연에서 clock period와 frequency를 계산한다.
먼저 비유로 머릿속 구조 만들기
공장에서 한 제품이 접수(Fetch), 주소 계산(MemAdr), 실제 가공, 포장 단계를 이동합니다. 각 방의 작업은 한 cycle 안에 끝나야 하고, 가장 오래 걸리는 방이 공장 전체의 벨 간격을 결정합니다.
그림은 왼쪽에서 오른쪽으로 읽습니다. 각 화살표는 앞 단계의 결과가 다음 단계의 입력이 된다는 뜻입니다. 흐름도만 크게 열기
용어를 평범한 문장으로 바꾸기
독일어와 영어 용어를 소리만 외우지 말고, 아래 설명을 자신의 말로 다시 말해 보세요.
- FSM state
- 한 cycle 동안 수행할 micro-operation 묶음
- clk-to-Q
- clock edge 뒤 register 출력이 안정될 때까지의 시간
- setup time
- 다음 clock edge 전에 destination register 입력이 안정돼야 하는 시간
- critical path
- 해당 상태에서 가장 긴 register→logic→register 경로
- fmax
- 최소 허용 clock period의 역수로 정해지는 최대 clock frequency
개념을 처음부터 연결하기
1. State 설명의 세 질문
어디에서 읽는가? 무엇을 계산하는가? 어디에 쓰는가? 예를 들어 MemAdr는 rs1과 sign-extended immediate를 ALU로 더해 data memory 주소를 ALUOut에 저장합니다.
2. Timing path 경계
출발 register의 clk-to-Q에서 시작해 실제로 통과하는 mux·ALU 등의 delay를 더하고, 도착 register의 setup에서 끝냅니다. 지나지 않는 decoder나 memory delay를 무조건 더하면 안 됩니다.
3. 단위 변환
250 ps는 0.25 ns입니다. 따라서 최대 주파수는 4 GHz가 됩니다. 지수와 역수 계산은 아래 수식 블록처럼 위아래 구조로 확인하세요.
이 챕터에서 계속 사용할 손풀이 표
아래 표는 정답표가 아니라 작업 기억을 외부에 꺼내 놓는 worksheet입니다. 소문제를 풀 때마다 빈 칸을 직접 채우세요.
| 경계 | 적을 내용 | 검산 |
|---|---|---|
| 출발 | source register와 clk-to-Q | clock edge 뒤 시작 |
| 중간 | 실제 통과 MUX/ALU/Memory | 그림의 연결만 포함 |
| 도착 | destination과 setup | 다음 edge 전 안정 |
| 비교 | 모든 후보 path delay | 가장 큰 값 선택 |
| 변환 | period의 역수 | ps→ns→GHz |
수식은 위아래 구조로 읽기
평문으로 제곱과 분수를 이어 쓰면 구조를 놓치기 쉽습니다. 아래 수식은 브라우저의 MathML로 렌더되며, 지수·아래첨자·분수를 실제 수학 표기처럼 보여 줍니다.
최소 clock period
각 register-to-register 후보를 계산하고 그중 가장 큰 값을 선택합니다.
250 ps에서 최대 주파수
시간이 길수록 가능한 주파수는 낮아지는 역수 관계입니다.
작은 숫자로 한 번 직접 해보기
Register→MUX→ALU→Register 경로가 40+30+120+50=240 ps라면 fmax≈1/0.24 ns≈4.17 GHz입니다. 실제 문제에서는 그림에 그려진 연결마다 후보 path를 만들어 가장 큰 값을 고릅니다.
이 예제에서 중요한 것은 숫자 자체가 아니라, 어떤 값을 먼저 구하고 그 결과를 다음 계산에 넣는지입니다. 종이에 중간값을 생략하지 않고 적어 보세요.
초보자가 자주 멈추는 지점
State 이름을 번역하면 설명이 되나요?
‘Fetch에서 fetch한다’는 동어반복입니다. PC 주소로 memory를 읽어 IR에 쓰고 PC+4를 PC에 갱신한다는 식으로 출발·연산·저장을 써야 점수가 됩니다.
표의 delay를 전부 더하면 안전한가요?
아닙니다. 한 cycle의 실제 연결을 따라 통과하는 component만 더합니다. 사용하지 않는 memory나 decoder delay를 넣으면 존재하지 않는 path가 됩니다.
가장 짧은 path가 빠르니 clock을 정하나요?
clock은 모든 path가 끝날 때까지 기다려야 하므로 가장 긴 critical path가 정합니다. 최대 frequency는 그 최대 delay의 역수입니다.
시험지에서 손으로 쓰는 순서
- state는 read→compute→write 한 문장으로 설명합니다.
- 그림에서 모든 register-to-register 후보 path를 화살표로 표시합니다.
- 각 path에 실제 통과 component delay만 적습니다.
- 합이 가장 큰 path를 Tclk로 선택합니다.
- ps→ns→GHz 순서로 변환하고 더 느린 path가 남지 않았는지 검산합니다.
이 순서를 외우는 목적은 답을 암기하는 것이 아닙니다. 중간 과정을 답안지에 남겨 부분점수를 얻고, 어디에서 잘못됐는지 스스로 찾기 위한 체크포인트입니다.
5개 소문제로 개념 적용하기
각 소문제에는 이 장의 설명을 다시 포함한 독립 수업 페이지가 있습니다. 따라서 링크로 바로 들어가도 선행지식 없이 읽을 수 있습니다.
- 6a-1Fetch 상태독립 수업 열기 →
Fetch가 구체적으로 하는 일을 최대 3문장으로 쓰세요. · 3 micro-work
- 6a-2MemAdr 상태독립 수업 열기 →
MemAdr가 어떤 값을 계산하고 어디에 보관하는지 쓰세요. · 4 micro-work
- 6a-3JAL 상태독립 수업 열기 →
JAL의 두 결과를 모두 설명하세요. · 4 micro-work
- 6a-4BEQ 상태독립 수업 열기 →
BEQ의 비교와 PC 선택을 설명하세요. · 4 micro-work
- 6b-1Cycle별 delay 계산독립 수업 열기 →
`slli t0,t1,2`의 보이는 path만으로 T1,T2,T3를 계산하세요. · 4 micro-work
출처
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p12–13 · 공식 해설 p37–38. 공식 답의 숫자와 course-specific datapath/FSM 가정은 변경하지 않았습니다.