Skip to main content
QUICK REVIEW

[논문 리뷰] Scalable and Efficient Virtual Memory Sharing in Heterogeneous SoCs with TLB Prefetching and MMU-Aware DMA Engine

Andreas Kurth, Pirmin Vogel|arXiv (Cornell University)|2018. 08. 29.
Parallel Computing and Optimization Techniques참고 문헌 35인용 수 12
한 줄 요약

이 논문은 이질적 SoC에서 하이브리드 IOMMU 기반 가상 메모리 공유 솔루션을 제안하며, 컴파일러가 생성한 프리패칭 스레드와 수정된 DMA 엔진을 사용하여 TLB 미스 스탠드를 제거하고 버퍼 메모리를 256배 줄인다. 프리패칭을 통해 TLB 엔트리 관리를 사전에 수행하고, 추가 버퍼 없이 버스트 DMA를 가능하게 함으로써 비정규적 메모리 액세스에 대해 최대 4배의 성능 향상을, 정규적 패턴에 대해서는 60% 향상을 달성한다.

ABSTRACT

Shared virtual memory (SVM) is key in heterogeneous systems on chip (SoCs), which combine a general-purpose host processor with a many-core accelerator, both for programmability and to avoid data duplication. However, SVM can bring a significant run time overhead when translation lookaside buffer (TLB) entries are missing. Moreover, allowing DMA burst transfers to write SVM traditionally requires buffers to absorb transfers that miss in the TLB. These buffers have to be overprovisioned for the maximum burst size, wasting precious on-chip memory, and stall all SVM accesses once they are full, hampering the scalability of parallel accelerators. In this work, we present our SVM solution that avoids the majority of TLB misses with prefetching, supports parallel burst DMA transfers without additional buffers, and can be scaled with the workload and number of parallel processors. Our solution is based on three novel concepts: To minimize the rate of TLB misses, the TLB is proactively filled by compiler-generated Prefetching Helper Threads, which use run-time information to issue timely prefetches. To reduce the latency of TLB misses, misses are handled by a variable number of parallel Miss Handling Helper Threads. To support parallel burst DMA transfers to SVM without additional buffers, we add lightweight hardware to a standard DMA engine to detect and react to TLB misses. Compared to the state of the art, our work improves accelerator performance for memory-intensive kernels by up to 4x and by up to 60% for irregular and regular memory access patterns, respectively.

연구 동기 및 목표

  • 이질적 SoC에서 공유 가상 메모리(SVM) 시스템에서 발생하는 TLB 미스로 인한 높은 런타임 오버헤드를 해결한다.
  • 기존 IOMMU에서 TLB 미스 발생 시 DMA 버스트를 수용하기 위해 큰 片상 버퍼가 필요로 하는 문제를 제거하여 메모리 낭비와 모든 마스터의 스탠드를 방지한다.
  • TLB 미스 처리를 데이터 버퍼링에서 분리함으로써 SVM로의 확장 가능하고 고-throughput DMA 전송을 가능하게 한다.
  • 비정규적 및 정규적 메모리 액세스 패턴 모두에 대해 TLB 미스 지연과 빈도를 줄여, 다핵 가속기에서의 성능을 향상시킨다.

제안 방법

  • 런타임 액세스 패턴을 기반으로 TLB를 사전에 채우는 컴파일러 삽입 프리패칭 히어로 스레드(PHTs)를 도입하여 TLB 미스 비율을 감소시킨다.
  • 병렬 처리가 증가함에 따라 일관된 미스 처리 지연을 유지하기 위해, 변수 수의 병렬 미스 처리 히어로 스레드(MHTs)를 사용하여 TLB 미스를 동시에 처리한다.
  • 가벼운 하드웨어를 추가로 적용해 DMA 엔진이 TLB 미스를 감지하고 영향을 받는 전송만 스탠드하도록 수정함으로써, 큰 데이터 버퍼가 필요 없도록 한다.
  • 버스트 전송을 위한 SVM 지원을 위해 하이브리드 IOMMU와 DMA 엔진을 통합하며, 추가 버퍼 없이 TLB 프리패칭과 전송 별 미스 처리 기반으로 동작하도록 한다.
  • 워크로드 특성에 따라 컴파일 타임 또는 런타임에 PHTs와 MHTs를 구성 가능하도록 설계한다.
  • 버스트 메타데이터를 추적하기 위해 단지 64 B의 리팀 버퍼를 사용하여 기존 데이터 버퍼 대비 메모리 오버헤드를 256배 감소시킨다.

실험 결과

연구 질문

  • RQ1컴파일러가 생성한 프리패칭은 이질적 SoC의 공유 가상 메모리 시스템에서 TLB 미스 비율을 줄일 수 있는가?
  • RQ2병렬적이고 확장 가능한 TLB 미스 처리 방식은 높은 동시성과 비정규적 메모리 액세스 패턴을 가진 워크로드의 성능을 향상시킬 수 있는가?
  • RQ3DMA 엔진을 TLB 미스 인지 기능으로 수정함으로써 추가 片상 메모리 버퍼 없이 SVM로 버스트 DMA 전송을 지원할 수 있는가?
  • RQ4메모리 집약적 커널에 대해 제안된 하이브리드 IOMMU 솔루션이 기존 IOMMU보다 성능과 메모리 효율성 측면에서 얼마나 뛰어나게 성능을 발휘하는가?

주요 결과

  • 제안된 솔루션은 기존 최고 수준의 성능 대비 비정규적 메모리 액세스 패턴에서 가속기 성능을 최대 4배 향상시킨다.
  • 정규적 메모리 액세스 패턴에서는 TLB 미스 오버헤드 감소와 효율적인 버스트 DMA 덕분에 성능이 최대 60% 향상된다.
  • TLB 미스 발생 시 DMA 버스트를 버퍼링하기 위해 필요한 메모리를 256배 감소시켜 16 KiB에서 단지 64 B로 줄였다.
  • 이deal IOMMU 대비 오버헤드는 모든 운영 강도 수준에서 25% 이하로 감소하였으며, 약 4 사이클/바이트의 운영 강도에서 10% 이하로 감소하였다.
  • 여러 개의 MHTs와 PHTs를 추가하면 성능 향상이 더욱 뚜렷해지며, 두 번째 MHT를 추가했을 때 40% 향상되고, 메모리 집약적 환경에서는 PHTs로 20~40% 성능 향상을 기대할 수 있다.
  • 최적의 구성은 컴파일 타임에 선택하거나 런타임에 조정 가능하여 다양한 워크로드에 걸쳐 성능 스케일링을 가능하게 한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.