ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
デバイスドライバの記述 Oracle Solaris 11.1 Information Library (日本語) |
パート I Oracle Solaris プラットフォーム用デバイスドライバの設計
2. Oracle Solaris カーネルとデバイスツリー
22. ドライバのコンパイル、ロード、パッケージ化、およびテスト
23. デバイスドライバのデバッグ、テスト、およびチューニング
システムのメモリーモデルは、ロードやストアなどのメモリー処理のセマンティクスを定義し、それらの処理をプロセッサが実行する順序を、それらの処理がメモリーに到達する順序に関連付ける方法を指定します。メモリーモデルは、単一プロセッサとメモリー共有型マルチプロセッサの両方に適用されます。トータルストアオーダリング (TSO) とパーシャルストアオーダリング (PSO) の 2 つのメモリーモデルがサポートされています。
TSO では、ストア、フラッシュ、および原子的ロード/ストアの各命令が指定されたプロセッサのメモリーに出現する順序が、それらの命令をプロセッサが実行する順序と同じであることが保証されます。
x86 プロセッサと SPARC プロセッサの両方が TSO をサポートしています。
PSO では、ストア、フラッシュ、および原子的ロード/ストアの各命令が指定されたプロセッサのメモリーに出現する順序が、それらの命令をプロセッサが実行する順序と同じであることが保証されません。プロセッサはストアの順序を変更することができ、その場合、メモリーのストアの順序は CPU が実行するストアの順序と同じでなくなります。
SPARC プロセッサは PSO をサポートしていますが、x86 プロセッサはサポートしていません。
SPARC プロセッサでは、実行順序とメモリー順序の合致は、STBAR 命令を使用するシステムフレームワークによって可能になります。上の命令のうち 2 つがプロセッサの実行順序内で STBAR 命令によって分離される場合、または命令が同じ位置を参照する場合、その 2 つの命令のメモリー順序は実行順序と同じになります。DDI 準拠のドライバでの強いデータ順序の実施は、ddi_regs_map_setup(9F) インタフェースによって可能になります。準拠ドライバは、STBAR 命令を直接使用することはできません。
SPARC のメモリーモデルの詳細については、『SPARC Architecture Manual, Version 9』を参照してください。