このエントリーをはてなブックマークに追加

Windows Display Driver Model (WDDM)

対象プロダクト:Windows Vista 7
カテゴリー:アーキテクチャ

Windows Display Driver Model (WDDM) とは

Windows 7 / Vista と Windows XP を比較した場合、一見して感じる、最も大きな違いは言うまでもなく UI (ユーザーインターフェース)です。
Windows 7 / Vista では UI 表示にウインドウを半透明で表示する Windows Aero 技術が使用されていますが、この実現には Windows Display Driver Model (WDDM) および Desktop Window Manager (DWM) が使用されています。

技術的には Windows Vista はディスプレイドライバの処理を Windows XP 以前の OS とは異なり、その殆どをユーザーモード側で実行するようになりました。

これはハードウェアの性能が向上したために実現したことですが、それによりディスプレイドライバの処理のためにカーネルモード側で動作していたモジュールが不正な処理を行うことによる OS 自体のクラッシュの可能性が大幅に低減されました。

このカーネルモードについては、i386 以降のプロセッサではリング0からリング3までが用意されており、Windows ではリング0を最高特権モードであるカーネルモードに、リング3をユーザーモードとして割り当てています。
※リング1と2はいまだに使われていません。

カーネルモード側で動作するモジュールとしては、システムサービスやデバイスドライバが挙げられます。

カーネルモードでの動作を許可された(最高レベルの特権モードで動作する)モジュールは直接 OS のコアコンポーネントにアクセスすることが可能であり、故意であるないにかかわらず、OS のシステムが使用しているメモリ領域を上書きしたり破壊する事で OS をクラッシュさせる事ができます。

このような不正行為(殆どがバグによる)が少なくとも Windows Vista ではディスプレイドライバは実行できなくなります。
ディスプレイドライバがクラッシュしたとしても、OS を再起動することなく、回復させる事さえできます。

この点だけでも、ディスプレイドライバのせいで度々クラッシュに見舞われていたゲームユーザーは大変助かりますね。

WDDM の利点

主な WDDM の利点としては、以下の3点が挙げられます。

安定性の向上

Windows XP 以前の OS では、ディスプレイドライバはシステムを不安定にさせる主な原因となっていました。
これらの OS 上ではディスプレイドライバは上述したように完全にカーネルモード側で実行されているために、ドライバのたった1つの問題(メモリの不正処理など)によって、OS はしばしば再起動させられていました。

Microsoft 社の Windows XP のクラッシュに関する分析データによれば、ディスプレイドライバはすべてのブルースクリーン(OSのクラッシュ)の原因の20%を占めています。
WDDM アーキテクチャはそのようなシステム全体のクラッシュを大きく低減させます。

パフォーマンスの向上

Windows XP 以前の OS では、GPU を必要とするアプリケーションが実行された場合、 複数のアプリケーションが GPU を同時に共有する能力がない為に、現在 GPU を使用しているアプリケーションから制御を奪っていました。

Windows Vista では、GPU は基本的なウィンドウ管理およびビデオレンダリングのように多くの共通の処理のために利用され、多数のアプリケーションが、WDDM 機能によって同時に GPU を利用することができます。

セキュリティの向上

安全な OS は、1つのアプリケーションにより利用されるリソースを、他から分離する事を保証する必要がありますが、WDDM は、GPU のメモリマネージャおよびスケジューラに組み込まれたセキュリティモデルによって、この必要とされるリソースの分離を提供します。
Windows XP のディスプレイドライバはそのような機能を有していませんでした。

まとめ

以上の点から、現在 Windows XP 以前の OS を利用している、複数のグラフィックの描画処理を同時に行う方や、重いゲームをよくプレイする方などは、Windows Vista に移行する価値は大いにあると言えます。

Windows 7 と WDDM1.1 について

なお、Windows 7 では WDDM がバージョン 1.1 にアップデートされ、GDI (GDI/GDI+ API) が Direct2D として、Direct3D 上に実装されました。
これにより再び GDI がハードウェア (GPU) 上で処理されることになり、Aero Glass の描画の処理速度の向上、メモリ使用量の削減を実現しています。
つまり、今だにマイクロソフトは Windows のユーザーモードとカーネルモードの狭間で、安定性とパフォーマンスとのトレードオフに苦悩しているようです。

公開日時: 2011年11月13日  10:23:28

このエントリーをはてなブックマークに追加
デスクトップ ウィンドウ マネージャー(dwm.exe)とは

Windows技術情報の一覧に戻る

「アーキテクチャ」に関する他の技術情報
技術情報のカテゴリ

このページのトップに戻る