■ 1. 背景: DRAMのリフレッシュ問題
- DRAMはキャパシタに蓄えられた電荷の有無で「0」と「1」を判別する仕組み
- キャパシタ内の電荷は時間と共に失われるため「リフレッシュ」作業が定期的に必要
- リフレッシュ中はメモリへのアクセスが不可となる
- CPUがリフレッシュ中にメモリアクセスを試みると数百ナノ秒〜数マイクロ秒の待機時間が発生
- この問題は1966年のDRAM考案時から60年以上にわたり存在
- CPUのクロック数換算で数千クロック分に相当し金融などリアルタイム性重視の分野で問題視
■ 2. Tailslayerの概要と開発者
- Google研究員のローリー・ワイアード氏がDRAMのリフレッシュ問題を克服するライブラリ「Tailslayer」を公開
- 書き込み時に複数の独立したDRAMチャネルへデータを複製する仕組み
- 読み込み時は全複製先アドレスへ同時に読み取り命令を送り最初に応答したデータを採用
- いずれかのチャネルがリフレッシュ中でも他チャネルから応答を得ることで待機時間を回避
■ 3. 技術的実装
- 実装方法:
- メモリコントローラーが物理アドレスを扱う方式を統計的なタイミング測定によって特定
- チャネルスクランブリングオフセットを用いてデータが異なるチャネルに配置されるよう書き込みを実施
■ 4. 性能評価
- AMD EPYC 9255での検証結果:
- 複製数に応じて2〜6段階でレイテンシー分布を測定
- 6箇所複製の設定では最悪ケースでもレイテンシーを250ナノ秒程度に抑制
- 複数プラットフォームでの検証:
- AMD・Intel・GravitonなどさまざまなCPUとメモリの組み合わせで効果を確認
- いずれの環境においても6複製時にレイテンシースパイクを回避
- 99.99パーセンタイル点でのレイテンシーを最大15分の1まで削減
■ 5. 活用用途
- 高頻度取引(HFT)など極めてわずかな遅延が大きな影響を与える分野への活用が見込まれる