Skip to main content
QUICK REVIEW

[論文レビュー] Buddy-RAM: Improving the Performance and Efficiency of Bulk Bitwise Operations Using DRAM

Vivek Seshadri, Donghyuk Lee|arXiv (Cornell University)|Nov 30, 2016
Parallel Computing and Optimization Techniques参考文献 36被引用数 54
ひとこと要約

Buddy-RAM は、センスアンプのアナログ動作とトリプル・ロウ・アクティベーションを活用することで、DRAM 内部で関数的に完全な一括ビット単位論理演算(AND、OR、NOT)を直接実行する新しいメカニズムを提案する。従来手法と比較して、スループットが 10.9X–25.6X 向上し、エネルギー消費は 25.1X–59.5X 減少する。データ集約的ワークロードにおいて、データベースクエリ や集合演算など実世界のワークロードで最大 7.0X の性能向上を達成する。

ABSTRACT

Bitwise operations are an important component of modern day programming. Many widely-used data structures (e.g., bitmap indices in databases) rely on fast bitwise operations on large bit vectors to achieve high performance. Unfortunately, in existing systems, regardless of the underlying architecture (e.g., CPU, GPU, FPGA), the throughput of such bulk bitwise operations is limited by the available memory bandwidth. We propose Buddy, a new mechanism that exploits the analog operation of DRAM to perform bulk bitwise operations completely inside the DRAM chip. Buddy consists of two components. First, simultaneous activation of three DRAM rows that are connected to the same set of sense amplifiers enables us to perform bitwise AND and OR operations. Second, the inverters present in each sense amplifier enables us to perform bitwise NOT operations, with modest changes to the DRAM array. These two components make Buddy functionally complete. Our implementation of Buddy largely exploits the existing DRAM structure and interface, and incurs low overhead (1% of DRAM chip area). Our evaluations based on SPICE simulations show that, across seven commonly-used bitwise operations, Buddy provides between 10.9X---25.6X improvement in raw throughput and 25.1X---59.5X reduction in energy consumption. We evaluate three real-world data-intensive applications that exploit bitwise operations: 1) bitmap indices, 2) BitWeaving, and 3) bitvector-based implementation of sets. Our evaluations show that Buddy significantly outperforms the state-of-the-art.

研究の動機と目的

  • 現代のシステムにおけるメモリ帯域幅制限が引き起こす一括ビット単位論理演算の性能ボトルネックを解消すること。
  • プロセッサとメインメモリ間で大規模なビットベクトルを転送することで生じる非効率性を克服すること。
  • 既存のハードウェアコンponentを活用して、DRAM 内部で高スループットかつ低消費電力の論理演算を実現すること。
  • 標準的な DRAM アーキテクチャおよびインターフェースとシームレスに統合できる低コストで実用的なソリューションを設計すること。
  • 提案手法の適用可能性と性能向上効果を、多様なデータ集約的ワークロードにわたり実証すること。

提案手法

  • 同じセンスアンプアレイを共有する 3 つの DRAM ロウを同時にアクティベートすることで、ビット単位の多数決関数を実装し、ロウの初期状態を制御することで AND および OR 演算を実現する。
  • 各センスアンプに内蔵されたインバータを活用し、デュアルコントロール 2T-1C メモリセルを両方のインバータ入力に接続することで、ビット単位の NOT 演算を実行する。
  • RowClone と統合することで、Buddy-AND/OR および Buddy-NOT 機能を組み合わせ、すべてのビット単位論理演算を関数的に完全に実現する。
  • エリアと制御の複雑さを最小限に抑えるために、サブアレイごとに事前に定義された 3 つのロウに限定してトリプル・ロウ・アクティベーションを実施し、アドレスバスおよびデコーダの完全な複製を回避する。
  • プロセス変動に耐性を確保するため、SPICE シミュレーションを用いて複数のプロセスコーナーで正しく動作することを検証する。
  • 従来のメモリコントローラおよびシステムソフトウェアへの影響を最小限に抑えるために、標準的な DRAM コマンドとインターフェースを採用し、後方互換性を維持する。

実験結果

リサーチクエスチョン

  • RQ1既存のアナログ回路を活用して、顕著な面積や電力のオーバーヘッドを伴わずに、DRAM 内部で効率的な論理演算を実行できるか?
  • RQ2センスアンプの内在的アナログ動作をどのように活用し、ロウレベルで AND、OR、NOT などの論理演算を実装できるか?
  • RQ3オフチップ実行と比較して、DRAM 内部で一括ビット単位論理演算を実行した場合の性能およびエネルギー効率の向上はどの程度か?
  • RQ4本手法は、データベースクエリ、集合演算、DNA シーケンス解析など多様なワークロードにどのようにスケーリングするか?
  • RQ5最小限の変更で、既存の DRAM アーキテクチャにどの程度統合可能か?

主な発見

  • Buddy-RAM は、最先端の SIMD ベースラインと比較して、7 つの一般的なビット単位論理演算で最大 10.9X~25.6X のスループット向上を達成した。
  • ビット単位論理演算のエネルギー消費は、従来手法と比較して 25.1X~59.5X 減少した。
  • ビットマップインデックスを用いたデータベースクエリでは、Buddy-RAM の加速により 6.0X の性能向上が得られた。
  • Buddy-RAM を使用することで、高速なデータベーススキャン手法である BitWeaving は、さまざまなスキャンパラメータで平均 7.0X の高速化を達成した。
  • 集合演算(積集合、和集合、差集合)では、従来実装と比較して 3.0X の性能向上が確認された。
  • DRAM チップにおける面積オーバーヘッドはわずか 1% にとどまり、低コストかつ実用的実装の可能性を示した。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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