피드로 돌아가기
V.E.L.O.C.I.T.Y.-OS: Reclaiming Ring 0 – UEFI Bootloader & GDT/IDT (Part 8)
Dev.toDev.to
Infrastructure

Ring 0 진입을 통한 GEMV 성능 5배 향상 및 L3 캐시 상주 커널 구현

V.E.L.O.C.I.T.Y.-OS: Reclaiming Ring 0 – UEFI Bootloader & GDT/IDT (Part 8)

UnitBuilds2026년 6월 28일6advanced

Context

Windows OS 위에서 동작하는 JIT 컴파일러의 한계로 인해 하드웨어 페이지 테이블과 CPU 레지스터에 대한 직접 제어권 부재. 마이크로초 단위의 실행 속도와 Zero-allocation 환경 구축을 위해 UEFI 기반의 Bare-metal OS 전환이 필요함.

Technical Solution

  • UEFI Boot Services 종료 후 프로세서 제어권을 완전히 회수하는 Ring 0 전환 구조 설계
  • BIOS 서비스 종료 후에도 동적 힙 연산을 유지하기 위해 16MB의 연속된 RAM 블록을 사전 할당한 LockedHeap 구현
  • Flat 64-bit 커널 세그먼트 설정 및 Double-fault 발생 시 CPU 리셋을 방지하는 IST 기반의 Task State Segment(TSS) 구축
  • 8259 PIC 인터럽트를 0x20, 0x28 오프셋으로 리매핑하고 타이머, 키보드, 시리얼 포트를 위한 커스텀 ISR 구현
  • 커널 전체 크기를 6MB 미만으로 최적화하여 OS 전체가 CPU L3 캐시 내에서 상주하며 동작하는 구조 채택

Impact

  • Fibonacci 실행 사이클: 53M → 25M (2.1x 속도 향상)
  • Neural Net Layer GEMV 실행 사이클: 55M → 11M (5.0x 속도 향상)

Key Takeaway

OS 스케줄링 트랩과 BIOS 폴링 오버헤드를 제거한 Bare-metal 환경 구축을 통해 하드웨어 성능을 극한으로 활용 가능하며, 커널 크기를 L3 캐시 사이즈 이하로 유지함으로써 메모리 레이턴시를 최소화하는 설계 전략이 유효함.


- 극단적인 성능 최적화 필요 시 OS 커널의 메모리 풋프린트를 L3 캐시 크기 이하로 제한하는 방안 검토 - 커널 패닉 및 시스템 리셋 방지를 위해 Double-fault 전용 스택(IST)을 분리하여 설계 - 외부 런타임 의존성을 제거한 #![no_std] 환경에서 메모리 관리자를 최우선으로 구현하여 시스템 안정성 확보

원문 읽기