Intel MPX
提供: セキュリティ
2015年4月18日 (土) 23:57時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「Intel MPX (Intel Memory Protection Extensions, インテルメモリプロテクションエクステンションズ) とは、インテルのCPUの機能で...」)
スポンサーリンク
Intel MPX (Intel Memory Protection Extensions, インテルメモリプロテクションエクステンションズ) とは、インテルのCPUの機能でアプリケーションのメモリアクセスを保護する機能を提供します。
読み方
- Intel MPX
- いんてる えむぴーえっくす
- Intel Memory Protection Extensions
- いんてる めもり ぷろてくしょん えくすてんしょんず
- インテルメモリプロテクションエクステンションズ
- いんてる めもり ぷろてくしょん えくすてんしょんず
- Skylake
- すかい れいく
概要
Intel MPXは、インテルの Skylake と呼ばれる CPU から実装される機能です。Skylake は、 第六世代のCore i processor で、2015年に発売される予定です。2015年の4月時点では、MPXをサポートされたCPUは、出荷されていません。
Intel MPXは、配列の境界チェックをハードウェアでサポートします。命令とレジスタが追加されます。
実行環境
- IntelのSkylake 以降のCPU
- Intel Software Development Emulator
MPX
MPXのために、128bitのBNDレジスタが4つ追加されました。配列の最初と最後のアドレスをレジスタの上位(Upper Bound)と下位(Lower Bound)に格納します。
プレフィックスが 0f のため、 MPX 未対応のCPUでは nop として扱われます。
新しいレジスタ
- BND0-3 Bounds レジスタ
- 128bit長、64bitずつメモリの上限と下限を設定します。
- BNDCFGU
- Bound Paging のベース (リング3)
- BNDCFGS
- Bound Paging のベース (リング0-2)
- BNDSTATUS
- Bound Paging の操作アドレスやエラーコードが格納されます。
利用できる環境
Intel MPXに対応したプログラムとOS(カーネル)が必要です。
GCCコンパイラによるIntel MPXの利用
-f mpx オプションで有効になります。
参考資料
- google code IntelMemoryProtectionExtensions
- Intel Architecture Instruction Set Extensions Programming Reference
関連項目
- バッファオーバーラン(バッファオーバーフロー)
- インテル
ツイート
スポンサーリンク