피드로 돌아가기
Dev.toInfrastructure
원문 읽기
20년 legacy를 통합한 i915 드라이버의 Golden Triangle 구조 분석
The i915 Kernel Driver (Part 1): The Linux Graphics Stack Panorama and i915 Overview
AI 요약
Context
Intel GPU의 하위 호환성 유지를 위해 2004년부터 단일 커널 드라이버인 i915를 확장 운용함. UMA 기반 내장 그래픽에서 Discrete GPU의 LMEM 지원까지 요구사항이 확장됨에 따라 메모리 모델의 구조적 한계 직면.
Technical Solution
- GEM(Graphics Execution Manager)을 통한 drm_i915_gem_object 중심의 메모리 할당 및 CPU-GPU 캐시 일관성 관리
- Discrete GPU 지원을 위한 TTM(Translation Table Manager) 도입으로 VRAM 관리 체계 고도화
- GT(Graphics Technology) 레이어의 intel_engine_cs 추상화를 통한 Render, Video, Blitter 등 하드웨어 엔진 제어
- GuC 마이크로컨트롤러 기반의 Hardware Scheduling 도입으로 CPU 오버헤드 감소 및 태스크 피딩 최적화
- KMS(Kernel Mode Setting) 모델 기반의 CRTC, Plane, Connector 설계를 통한 물리 디스플레이 인터페이스 제어
- struct drm_i915_private라는 God Object를 중심으로 GEM, GT, Display 서브시스템 간의 상태 공유 및 결합도 관리
실천 포인트
1. 대규모 레거시 시스템 확장 시 핵심 도메인별로 책임 영역(Memory, Compute, Output)을 명확히 분리했는지 검토
2. 하드웨어 추상화 계층(Abstraction Layer)을 통해 개별 칩셋의 특수성을 격리하고 공통 인터페이스를 유지하는지 확인
3. 복잡한 상태 관리가 필요한 시스템에서 중앙 집중형 상태 객체(God Object)의 의존성 전파 범위를 분석