티스토리 뷰

ALU ‧ 제어장치(CU) ‧ 레지스터 ― “CPU 속 3대 핵심 블록” 심화 노트

회로 세부·최신 마이크로아키텍처 관점을 덧붙여 정리했습니다.


1. ALU (Arithmetic Logic Unit)

포인트 상세 설명

역할 정수 덧셈·뺄셈·증가/감소, 논리 AND/OR/XOR/NOT, 시프트·회전, 비교, 비트 카운트 등
하드웨어 핵심 • 가산기: Carry-Lookahead Adder(CLA)로 리플-캐리 지연을 O(log n)로 단축 ([PDF] Lecture 8:, [Carry Look-Ahead Adder
입력 ⓐ 두(또는 그 이상) 오퍼랜드 → 레지스터 파일에서 읽음 ⓑ 연산 선택 코드 → 제어장치가 ALU Control 라인으로 전송
출력 ⓐ 결과 → 레지스터 파일로 Write-back ⓑ 플래그 비트 → 플래그 레지스터로 전달 (분기·예외 결정) 
모던 확장 SIMD/Vector ALU (AVX-512, SVE2) : 128-2048 bit 병렬 • FMA ( a × b + c ) 유닛: FP*·AI 가속 핵심 • 암호/비트 조작 확장 : RISC-V B·AES-NI

2. 제어장치 (CU, Control Unit)

구분 Hard-wired CU Micro-programmed CU

원리 상태 머신 + PLA로 고정 로직 명령어 → 마이크로코드 ROM → 제어신호
장점 속도↑, 전력↓ 명령어 세트 수정·확장 용이
단점 ISA 변경 시 재설계 필요 ROM 지연, 패치 필요
현대 사용처 RISC 코어·DSP x86 디코더, 복잡 ISA 백엔드 (Difference between Hardwired and Micro-programmed Control Unit, Hardwired v/s Micro-programmed Control Unit - GeeksforGeeks)

입·출력 신호

  • 입력: IR(명령어), 플래그, 클럭, 외부 인터럽트·DMA 요청
  • 출력: ALU Op, 레지스터 읽기/쓰기, 버스 RD/WR, 분기 PC mux 선택 등
  • 파이프라인 제어: Hazard 스톨, 분기 Flush, Reorder Buffer Commit( OoO )

3. 레지스터(Registers) – “CPU 한가운데 캐시”

범주 대표 비고

프로그램 제어 PC/RIP, IR, CSR (status & control) 흐름·권한·예외 관리
데이터 GPR (x86 EAX… / ARM X0-X30) 산술·주소·임시 저장
메모리 연동 MAR, MDR/MBR 버스 인터페이스
스택·프레임 SP, BP/FP 함수 호출 규약
플래그 EFLAGS/APS-R/NZCV ALU 상태 비트
특수·대형 SIMD(XMM/YMM/Z), Vector(V0..), System(TTBR, TPIDR) 128-2048 bit, MMU·스레드 ID
마이크로-아키텍처 물리 레지스터 + Rename Map OoO 코어당 150-300개

대부분 현대 코어는 다중 포트 레지스터 파일(읽기 6-10, 쓰기 4-6)과 포워딩 네트워크를 갖춰 1 사이클 내 데이터 의존을 해결한다. (ARM Data Types and Registers (Part 2) - Azeria Labs, General Purpose Registers | GeeksforGeeks)


4. 세 블록이 협업하는 한 사이클 예 (RISC-V ADD x5,x1,x2)

  1. Fetch — IR ⇠ I-Cache, PC + 4
  2. Decode / CU — opcode=ADD → ALU_OP=ADD, src= x1/x2, dst=x5
  3. Register Read — x1, x2 값 ALU 입력으로 포워딩
  4. ALU Execute — 합산, 플래그 생성(ZF 등)
  5. Write-back — 결과 → x5, CU가 분기 여부 판단(플래그 활용)

파이프라인 상태에 따라 위 단계들이 컨베이어처럼 엇갈려 흐르며, CU가 Hazard를 감시하고 ALU는 매 싸이클 다른 연산을 수행할 수 있다.


5. 학습 팁 & 실습 아이디어

무엇을 해보나 얻는 인사이트

가산기 RTL(Verilog) 시뮬레이션 + CLA 변환 리플-캐리 ↔ CLA 지연·게이트 수 비교
gdb / lldb 로 레지스터 덤프 함수 콜 전후 PC, SP, FP 변화 추적
Intel® VTune / perf 로 µop & stall 분석 ALU 포트 사용률·레지스터 재네임 관찰
RISC-V 툴체인으로 objdump 레지스터-중심 3-Address 명령 형식 체험

한 줄 정리

ALU는 “계산+플래그”, CU는 “시퀀서+신호”, 레지스터는 “초고속 기억”이다.
세 블록이 파이프라인·OoO·SIMD 같은 현대 기법과 엮이면서, 10⁹ 회/초 이상의 명령 처리가 가능해진다.

Comments
최근에 올라온 글