Learning
토픽 23 / 111·CPU (Central Processing Unit)

VLIW (Very Long Instruction Word)

VLIW (Very Long Instruction Word)

하나의 매우 긴 명령어 안에 여러 개의 독립적 연산을 묶어 컴파일러가 정적으로 병렬성을 스케줄링하고, 하드웨어는 단순히 동시 실행만 수행하는 프로세서 아키텍처

목적: 명령어 수준 병렬성(ILP) 활용, 하드웨어 단순화, 컴파일러 기반 최적화

특징: 긴 명령어(128~1024비트), 다중 연산 슬롯, 정적 스케줄링, 단순 하드웨어

구조

  • 명령어 패킷: 여러 연산(ALU, FPU, Load/Store, Branch)을 하나의 번들로 묶음
  • 기능 유닛: 각 슬롯에 대응하는 독립 실행 유닛
  • 컴파일러: 의존성 분석, 병렬 연산 배치, NOP 삽입(슬롯 미사용 시)

동작: ① 컴파일러가 의존성 분석 → ② 독립 연산을 하나의 명령어 번들로 패킹 → ③ 하드웨어는 번들 내 모든 연산을 동시 실행

장점: 하드웨어 단순(동적 스케줄링 불필요), 낮은 전력, 예측 가능한 성능

단점: 컴파일러 의존(최적화 어려움), 코드 호환성 없음(ISA 변경 시 재컴파일), NOP으로 인한 코드 팽창, 캐시 미스 등 동적 이벤트 대응 불가

EPIC(Explicitly Parallel Instruction Computing): VLIW 개선, Intel Itanium(IA-64), 프레디케이션/추측 로드 추가

적용사례: DSP(TI TMS320C6x), 미디어 프로세서, GPU 셰이더(일부), Intel Itanium(EPIC, 단종)

비교: VLIW(정적스케줄링/컴파일러의존/단순HW/DSP) vs 슈퍼스칼라(동적스케줄링/HW복잡/범용CPU) vs SMT(멀티스레드/자원공유)

연관: 슈퍼스칼라, 컴파일러, 파이프라인, ILP, DSP