UNIT-SPECIFIC ACTIVE LESSON · 1g

Operand 값과 ALU 시간

작은 두 수의 addition이 큰 두 수보다 빠른지 판정하세요.

학습 목표: 같은 ALU add instruction의 latency가 operand의 수치 크기가 아니라 combinational datapath와 clock period로 정해짐을 판별한다.
공식 근거 범위: SoSe26 Probeklausur 시험 p5 Aufgabe 1g 및 공식 해설 p6의 operand 값과 ALU 실행시간 판정 범위.

왜 이 소문제를 따로 배우는가

사람의 손계산에서는 큰 수가 더 오래 걸리는 느낌이 있지만 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는 실행 중 고정입니다.
  1. 두 instruction의 operation과 datapath를 비교합니다.

    latency 차이는 먼저 다른 functional unit을 쓰는지에서 찾아야 합니다.

    종이 산출물: `sub vs sub → same ALU subtract path`

  2. operand 차이가 bit-width를 바꾸는지 확인합니다.

    둘 다 RV32의 고정된 32-bit operand이므로 큰 십진수라고 bit를 추가 처리하지 않습니다.

    종이 산출물: `둘 다 32 bit input`

  3. 고정 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의 실행시간을 결정하는 요소와 결정하지 않는 요소를 각각 두 개씩 분류하세요.

제출 후 모델 답 보기

결정 요소는 adder/datapath의 combinational delay와 processor clock/cycle 설계입니다. 같은 add 안에서 결정하지 않는 요소는 operand의 십진수 자릿수와 ‘작아 보임/커 보임’입니다.

2. 변형 문제

같은 core에서 `add x5,x6,x7`의 입력이 `(0,0)`인 경우와 `(-1,1)`인 경우를 비교하세요. 이어서 `mul x5,x6,x7`과 latency가 다를 수 있는 이유도 한 문장으로 쓰세요.

제출 후 모델 답 보기

두 add는 같은 고정 폭 adder를 사용하므로 값 때문에 latency가 달라지지 않습니다. mul은 multiplier의 회로 또는 multi-cycle 구현이 adder와 달라 latency가 다를 수 있습니다.

3. 오류 진단

학생이 ‘`1+1`은 carry가 거의 없으니 한 cycle의 절반만 쓰고, `0xFFFFFFFF+1`은 32 bit carry 때문에 두 cycle이 필요하다’고 답했습니다. 고정 clock processor 가정에서 첫 오류와 수정 설명을 쓰세요.

제출 후 모델 답 보기

첫 오류는 input-dependent 내부 전파 시간을 architectural cycle 수로 바꾼 것입니다. 같은 add는 같은 32-bit adder와 고정된 clock period를 사용하며 clock은 worst-case timing을 만족하도록 잡히므로 두 경우 모두 같은 정해진 cycle 수입니다.

이 소문제를 끝냈다고 말할 수 있는 기준

이 소문제의 정확한 공식 페이지와 대조하기

왼쪽은 문제를 읽을 때, 오른쪽은 자신의 풀이를 끝낸 뒤에 확인하세요. 해설 이미지를 먼저 보면 중간 과정을 스스로 만드는 연습이 사라집니다.

1g 관련 공식 시험 또는 해설 페이지
exam-p05.png · 클릭해 원본 크기로 확인
1g 관련 공식 시험 또는 해설 페이지
solution-p06.png · 클릭해 원본 크기로 확인

Source: Probeklausur.pdf / Probeklausur Musterlösung und Hinweise.pdf · 시험 p3–5 · 공식 해설 p3–6 · SoSe26 Probeklausur 시험 p5 Aufgabe 1g 및 공식 해설 p6의 operand 값과 ALU 실행시간 판정 범위.