왜 이 소문제를 따로 배우는가
사람의 손계산에서는 큰 수가 더 오래 걸리는 느낌이 있지만 digital ALU는 고정 폭 bit 회로를 통과시킵니다. 값의 크기, operation 종류, implementation latency를 분리하면 성능 문제에서 잘못된 직관을 제거할 수 있습니다.
이 페이지는 Aufgabe 1의 공통 템플릿이 아니라 1g Operand 값과 ALU 시간에 필요한 내용만 담습니다. 챕터 전체 배경이 필요하면 Aufgabe 1 개념 수업을 먼저 읽으세요.
이 소문제에서 실제로 쓰는 용어
정의뿐 아니라 이 문제의 어느 판단에 쓰이는지까지 연결합니다.
- ALU
- 정수 addition, subtraction, 논리 연산 등을 수행하는 combinational datapath 블록입니다.이 소문제에서: 두 add instruction이 같은 hardware path를 사용하는지 확인합니다.
- combinational delay
- 입력 bit 변화가 회로를 지나 안정된 출력이 되기까지 걸리는 물리적 지연입니다.이 소문제에서: 실행시간을 operand의 십진수 크기 대신 회로 경로로 설명합니다.
- clock period
- 동기식 processor에서 한 cycle에 허용된 시간으로, 선택한 worst-case timing 조건을 만족해야 합니다.이 소문제에서: 같은 add가 보통 같은 cycle 수와 시간을 갖는 근거로 사용합니다.
- critical path
- clock period를 제한하는 가장 긴 combinational 경로입니다.이 소문제에서: processor가 매 operand마다 clock을 바꾸지 않고 worst-case 경로에 맞추는 이유를 설명합니다.
이 소문제 전용 규칙과 종이 작업
opcode와 path 우선 규칙
두 연산의 opcode와 선택되는 functional unit/datapath가 같다면 수치의 크기만으로 cycle 수가 달라지지 않습니다.
종이에: 비교 대상마다 `instruction 종류 → hardware path → cycle 수`를 적습니다.
값과 연산 종류 분리
addition과 multiplication이 서로 다른 latency일 수 있는 것은 회로/algorithm이 다르기 때문이지 operand가 커 보이기 때문이 아닙니다.
종이에: `data value`와 `operation/implementation` 두 열로 원인을 분류합니다.
worst-case clock 규칙
일반적인 고정 clock processor는 허용된 경로의 worst-case delay를 만족하도록 Takt를 정하므로 각 add의 실제 bit pattern에 맞춰 cycle을 줄이지 않습니다.
종이에: `Tclock ≥ critical path delay` 식을 근거로 남깁니다.
Aufgabe 전체 흐름은 챕터 흐름도에서 확인할 수 있습니다. 여기서는 현재 판단에 직접 필요한 규칙만 적용합니다.
이 소문제 전용 작은 예제
같은 RV32I core에서 `sub t0,t1,t2`를 두 번 실행한다. 첫 입력은 9와 4, 둘째 입력은 `0x7FFFFFFF`와 `0x40000000`이다. 두 instruction의 실행 cycle이 다른지 판정하세요.
주어진 것
- 두 instruction은 같은 `sub` opcode와 같은 ALU 경로를 사용합니다.
- core의 clock frequency는 실행 중 고정입니다.
- 두 instruction의 operation과 datapath를 비교합니다.
latency 차이는 먼저 다른 functional unit을 쓰는지에서 찾아야 합니다.
종이 산출물: `sub vs sub → same ALU subtract path`
- operand 차이가 bit-width를 바꾸는지 확인합니다.
둘 다 RV32의 고정된 32-bit operand이므로 큰 십진수라고 bit를 추가 처리하지 않습니다.
종이 산출물: `둘 다 32 bit input`
- 고정 clock과 cycle 수로 결론냅니다.
clock은 critical path 기준이며 각 값마다 별도 반복 횟수를 정하지 않습니다.
종이 산출물: `same path + fixed clock → same execution time`
예제 답과 독립 검산 보기
두 `sub`는 같은 ALU path와 고정 clock을 사용하므로 operand 값 크기 때문에 cycle 수가 달라지지 않습니다.
독립 검산: 둘 중 하나를 `mul`로 바꾸면 값이 아니라 operation/functional unit이 달라졌다는 이유로 다시 판단해야 합니다.
이제 실제 시험 문제를 micro-work로 풀기
공식 시험이 요구하는 것
작은 두 수의 addition이 큰 두 수보다 빠른지 판정하세요.
공식 답을 보기 전, 내 답 먼저 남기기
완성 문장이 아니어도 좋습니다. 중간값·register·cycle·cache state처럼 채점 가능한 흔적을 먼저 적으세요.
각 작업의 중간 산출물을 직접 적고 완료 조건을 만족한 뒤 체크하세요. 단계별 이유·산출물·오류가 현재 소문제에 맞게 따로 작성되어 있습니다.
비교하는 두 instruction의 opcode와 datapath가 같은지 확인합니다.
- 왜 하는가
- 다른 operation이나 memory path라면 latency 차이가 있을 수 있으므로 값 비교 전에 구조적 조건을 고정해야 합니다.
- 종이 산출물
- `add / add, same datapath`라고 표시합니다.
- 완료 조건
- 두 대상이 동일한 add instruction임을 근거로 확인했습니다.
막혔을 때 단계 힌트·대표 오류
힌트: register 안의 값이 아니라 instruction mnemonic부터 보세요.
이 단계의 대표 오류: operand의 십진수 자릿수를 먼저 비교하는 것입니다.
둘 다 같은 고정 폭 ALU add path를 쓰는지 확인합니다.
- 왜 하는가
- ALU는 작은 수에는 적은 bit만, 큰 수에는 더 많은 bit를 순차 처리하는 손계산 방식이 아닙니다.
- 종이 산출물
- `32-bit combinational adder, same width`를 적습니다.
- 완료 조건
- 두 입력 모두 같은 수의 bit가 같은 회로를 통과한다고 설명할 수 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: 값 1도 register에서는 RV32의 32-bit pattern으로 들어갑니다.
이 단계의 대표 오류: 값이 작으면 상위 bit 회로가 존재하지 않거나 cycle을 자동으로 생략한다고 가정하는 것입니다.
clock period가 operand 값이 아니라 circuit의 worst-case delay로 정해짐을 씁니다.
- 왜 하는가
- 고정 clock에서는 개별 add의 값에 따라 Takt 길이가 달라지지 않는다는 최종 근거입니다.
- 종이 산출물
- `Tclock ≥ worst-case path; operand-independent for same add`를 남깁니다.
- 완료 조건
- ‘빠르지 않다’는 결론에 clock frequency와 datapath delay 근거가 모두 있습니다.
막혔을 때 단계 힌트·대표 오류
힌트: processor는 매 instruction마다 clock frequency를 다시 설정하는지 생각하세요.
이 단계의 대표 오류: 답만 ‘같다’고 쓰고 왜 그런지 hardware timing 근거를 생략하는 것입니다.
공식 답을 열기 전 마지막 회상
왜 multiplication은 addition과 다른 latency일 수 있지만 같은 add 안의 값 크기는 보통 영향을 주지 않나요?
내 풀이 후 공식 결론·이유·대표 함정 확인
공식 결론
아니요. 같은 add instruction의 실행시간은 operand 값과 무관하며 clock frequency와 datapath delay에 의해 정해집니다.
왜 이 답이 되는가
Digital ALU는 operand의 ‘크기감’을 보고 반복 덧셈하지 않습니다. 고정된 combinational circuit가 모든 bit를 처리하며 processor clock은 worst-case path를 만족하도록 정해집니다.
대표 함정
수학적으로 숫자가 커 보인다는 이유로 CPU가 더 많은 cycle을 쓴다고 생각하지 마세요.
새 문제로 전이하기
세 문항은 앞 문장의 반복이 아닙니다. 직접 답을 입력하면 rubric의 필수 기준을 하나씩 검사하고, 첫 누락 기준을 알려 줍니다.
1. 개념 재구성
고정 clock RV32 core에서 같은 add의 실행시간을 결정하는 요소와 결정하지 않는 요소를 각각 두 개씩 분류하세요.
회로·clock과 수치의 외형을 분리하세요.
제출 후 모델 답 보기
결정 요소는 adder/datapath의 combinational delay와 processor clock/cycle 설계입니다. 같은 add 안에서 결정하지 않는 요소는 operand의 십진수 자릿수와 ‘작아 보임/커 보임’입니다.
2. 변형 문제
같은 core에서 `add x5,x6,x7`의 입력이 `(0,0)`인 경우와 `(-1,1)`인 경우를 비교하세요. 이어서 `mul x5,x6,x7`과 latency가 다를 수 있는 이유도 한 문장으로 쓰세요.
첫 비교는 값만, 둘째 비교는 operation과 hardware가 바뀝니다.
제출 후 모델 답 보기
두 add는 같은 고정 폭 adder를 사용하므로 값 때문에 latency가 달라지지 않습니다. mul은 multiplier의 회로 또는 multi-cycle 구현이 adder와 달라 latency가 다를 수 있습니다.
3. 오류 진단
학생이 ‘`1+1`은 carry가 거의 없으니 한 cycle의 절반만 쓰고, `0xFFFFFFFF+1`은 32 bit carry 때문에 두 cycle이 필요하다’고 답했습니다. 고정 clock processor 가정에서 첫 오류와 수정 설명을 쓰세요.
cycle을 부분적으로 완료했다는 것이 architectural timing에 보이는지 생각하세요.
제출 후 모델 답 보기
첫 오류는 input-dependent 내부 전파 시간을 architectural cycle 수로 바꾼 것입니다. 같은 add는 같은 32-bit adder와 고정된 clock period를 사용하며 clock은 worst-case timing을 만족하도록 잡히므로 두 경우 모두 같은 정해진 cycle 수입니다.
이 소문제를 끝냈다고 말할 수 있는 기준
이 소문제의 정확한 공식 페이지와 대조하기
왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.
Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p3–5 · 공식 해설 p3–6 · SoSe26 Probeklausur 시험 p5 Aufgabe 1g 및 공식 해설 p6의 operand 값과 ALU 실행시간 판정 범위.

