Solaris 10 の概要

システムパフォーマンスの機能拡張

Solaris 10 5/08 リリースでは、次のシステムパフォーマンス機能と拡張機能が追加されました。

64 ビット SPARC: sun4v プラットフォーム向けのメモリー配置最適化サポート

メモリー配置最適化 (MPO) により、オペレーティングシステムは、スレッドまたはプロセッサが実行されているコアに対してローカルなメモリーを割り当てることができます。sun4v アーキテクチャーは仮想化されたハードウェア環境で実行されます。sun4v プラットフォーム向けの MPO 機能は、汎用 MPO フレームワークの局所性情報を提供できるように、sun4v 層で必要となる標準アクセサを提供します。この機能は、メモリーアクセス待ち時間が異なる複数のソケットを含むプラットフォームで効果的です。MPO 機能は、OS がノードに対してローカルなメモリーを割り当てられるようにすることで、各種アプリケーションのパフォーマンスを向上させます。

SPARC: 共有コンテキストのサポート

メモリー管理ユニット (MMU) ハードウェアは、異なるプロセスアドレス空間にある同じ仮想アドレスの使用を区別するためにコンテキストメカニズムを使用しますが、共有メモリー使用時にはこれによってある程度の非効率性が発生します。この共有メモリーの非効率性は、特定の共有メモリー位置にあるデータと異なるプロセス内のアドレスが実際には同一である可能性があるにもかかわらず、それぞれのプロセスに関連付けられたコンテキスト番号が異なることによるものです。このため、MMU ハードウェアは一致を認識できません。このように一致を認識できないことから、MMU 変換キャッシュと変換索引バッファー (TLB) からマッピングが不必要に削除されることになり、結局それが別のコンテキスト番号を持つ同一のマッピングで置き換えられます。

Niagara 2 システムに含まれる追加の共有コンテキストは、共有メモリー処理の非効率性の発生を防ぐために使用可能なハードウェア機能です。TLB を検索し、非公開コンテキスト上または共有コンテキスト上のいずれかで一致をマッピングすると、TLB がヒットします。共有コンテキストに対する現在のソフトウェアサポートは、Dynamic Intimate Shared Memory (DISM) を使用するプロセスでこの機能をアクティブにします。この場合、プロセステキストセグメントと、各プロセスで同じアクセス権で同じ仮想アドレスにマップされた DISM セグメントが、共有コンテキストを使用します。

x86: CPUID ベースのキャッシュ階層認識

最近の Intel プロセッサには、プロセッサのキャッシュ階層に関する情報を CPUID 命令経由で発見するためのインタフェースが用意されています。