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)|Aug 29, 2018
Parallel Computing and Optimization Techniques参考文献 35被引用数 12
ひとこと要約

本稿では、コンパイラが生成するプリフェッチングスレッドと変更されたDMAエンジンを用いて、TLBミスのスターブを排除し、バッファメモリを256倍削減する、ハイブリッドIOMMUベースの仮想メモリ共有ソリューションを提案する。不規則なメモリアクセスに対して最大4倍のスループット向上を達成し、規則的なパターンでは60%の向上を実現する。これは、TLBエントリを事前管理し、追加のバッファが不要なバーストDMAを可能にすることで実現される。

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へのスケーラブルで高スループットなDMA転送を可能にすること。
  • 不規則なアクセスパターンと規則的なアクセスパターンの両方のワークロードにおいて、TLBミスの遅延と頻度を低減することで、マルチコアアクセラレータの性能を向上させること。

提案手法

  • 実行時アクセスパターンを活用してTLBを事前にポップレートするコンパイラ挿入型プリフェッチングヘルパー スレッド(PHT)を導入し、TLBミス率を低減する。
  • 並列に処理可能なミス処理ヘルパー スレッド(MHT)を可変数個使用し、並列処理が増加しても一定のミス処理遅延を保証する。
  • 軽量なハードウェアを追加してDMAエンジンを変更し、TLBミスを検出すると、影響を受ける転送のみをスタップさせ、大容量のデータバッファを必要としなくなるようにする。
  • バースト転送をSVMに可能にするために、TLBプリフェッチと個々の転送ごとのミス処理に依存する、ハイブリッドIOMMUとDMAエンジンを統合する。
  • ワークロードの特性に応じて、PHTおよびMHTのコンパイル時または実行時設定を可能にする。
  • バーストメタデータを追跡するためのリタイアバッファを64 Bに制限することで、従来のデータバッファと比較してメモリオーバーヘッドを256倍削減する。

実験結果

リサーチクエスチョン

  • RQ1コンパイラ生成のプリフェッチングは、異種SoC上の共有仮想メモリシステムにおけるTLBミス率を低減できるか?
  • RQ2並列でスケーラブルなTLBミス処理は、高い並列性と不規則なメモリアクセスパターンを示すワークロードの性能を向上させられるか?
  • RQ3DMAエンジンをTLBミス認識可能に変更することで、追加のオンチップメモリバッファが不要な状態でSVMへのバーストDMAを実現できるか?
  • RQ4提案されたハイブリッドIOMMUソリューションは、メモリ集約的カーネルにおいて、従来のIOMMUと比較してどの程度性能とメモリ効率が優れているか?

主な発見

  • 提案手法は、最新の最先端技術と比較して、不規則なメモリアクセスパターンのアクセラレータ性能を最大4倍向上した。
  • 規則的なメモリアクセスパターンでは、TLBミスのオーバーヘッドが低減され、効率的なバーストDMAが可能になったことで、性能が最大60%向上した。
  • TLBミスに起因するDMAバーストをバッファリングするためのメモリを、16 KiBからわずか64 Bにまで256倍削減した。
  • 理想のIOMMUと比較した場合、あらゆる運用強度においてオーバーヘッドが25%未満に抑えられ、約4サイクル/バイトの運用強度では10%未満にまで低下した。
  • 複数のMHTとPHTを追加することで性能がさらに向上し、2番目のMHTを追加すると40%の向上が得られ、メモリバウンドなシナリオではPHTにより20~40%の向上が得られた。
  • 最適な構成はコンパイル時または実行時で選択可能であり、多様なワークロードに応じた性能スケーリングを実現できる。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。