현대의 시스템 온 칩(SoC)에서는 입출력(I/O) 장치가 일반적으로 직접 메모리 접근(direct memory access, DMA)과 가상 메모리를 통상의 방식으로 활용한다. 또한 운영 체제(OS)는 대체로 물리적 I/O 메모리를 연속적으로 할당하는 경향이 있다. 페이지 테이블 워크로 인한 지연 오버헤드를 줄이기 위해, 하드웨어는 번역 조회 버퍼(translation lookaside buffer, TLB) 프리페치 기법을 종종 사용한다. 최근에는 연속된 페이지들을 하나의 TLB 항목으로 병합하는 TLB 코얼레스싱(coalescing) 방식이 보고되었다. 그러나 기존의 TLB 프리페처는 페이지 수준에서 동작하며, 연속 할당이 제공하는 이점을 효과적으로 활용하지 못한다. 본 논문에서는 I/O 장치를 위해 연속 할당과 TLB 코얼레스싱을 모두 활용하는 TLB 프리페처를 제시한다. 제시된 프리페처는 블록 수준에서 동작하고, 메모리의 연속성을 활용하며, 이력 추적(history tracking) 기법을 필요로 하지 않으면서 기존 방식에 비해 페이지 테이블 워크를 감소시킬 수 있다. 실험 결과, 제시된 방식은 TLB 및 I/O 장치 성능 모두를 향상시킬 수 있음을 보여주었다.
*본 초록은 AI를 통해 원문을 번역한 내용입니다. 정확한 내용은 하기 원문에서 확인해주세요.