1つ以上のプロセッサ命令に関連するプロセッサ命令プロキシスタブを生成するステップと、前記1つ以上のプロセッサ命令に関連する1つ以上のプロセッサの機能を使用可能にするために、前記プロセッサ命令プロキシスタブに基づいて最適化マネージドアプリケーションプログラムインタフェースを生成するステップとを備える方法。前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシスタブを生成するステップは、マネージドランタイム環境の仮想マシンに関連するレイヤにおいて前記プロセッサ命令プロキシスタブを生成するステップを備える請求項1に記載の方法。前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシスタブを生成するステップは、マネージドランタイムアプリケーションのインストール時に前記プロセッサ命令プロキシスタブを生成するステップを備える請求項1に記載の方法。前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシスタブを生成するステップは、ストリーミングSIMD拡張SSE命令、SSE2命令、およびマルチメディア拡張命令のうちの1つに関連する前記プロセッサ命令プロキシスタブを生成するステップを備える請求項1に記載の方法。前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシスタブを生成するステップは、仮想マシンのマーシャリング言語コードによって前記プロセッサ命令プロキシスタブを生成するステップを備える請求項1に記載の方法。前記プロセッサの前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシスタブを生成するステップは、前記1つ以上のプロセッサ命令に関連する前記プロセッサの識別に応じて、前記プロセッサ命令プロキシスタブを生成するステップを備える請求項1に記載の方法。前記最適化マネージドアプリケーションプログラムインタフェースに基づいて、マネージドランタイムアプリケーションの実行中に、前記1つ以上のプロセッサ命令に関連する機能を使用可能にするステップを更に備える請求項1に記載の方法。命令群を記録したマシンアクセス可能な媒体であって、前記命令群は、マシン上で実行されることにより、1つ以上のプロセッサ命令に関連するプロセッサ命令プロキシスタブを生成し、前記1つ以上のプロセッサ命令に関連する1つ以上のプロセッサの機能を使用可能にするために前記プロセッサ命令プロキシスタブに基づいて、最適化マネージドアプリケーションプログラムインタフェースを生成する媒体。前記命令は、前記マシンに、マネージドランタイム環境の仮想マシンに関連するレイヤにおいて前記プロセッサ命令プロキシスタブを生成させることによって、前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシスタブを生成させる請求項8に記載の媒体。前記マシンに前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシスタブを生成させる前記命令は、前記マシンに、マネージドランタイムアプリケーションのインストール中に前記プロセッサ命令プロキシスタブを生成させることを備える請求項8に記載の媒体。前記マシンに前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシスタブを生成させる前記命令は、前記マシンに、ストリーミングSIMD拡張SSE命令、SSE2命令、およびマルチメディア拡張命令のうちの1つに関連する前記プロセッサ命令プロキシスタブを生成させることを備える請求項8に記載の媒体。前記命令は、前記マシンに、仮想マシンのマーシャリング言語コードによって前記プロセッサ命令プロキシスタブを生成させることによって、1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシスタブを生成させる請求項8に記載の媒体。前記命令は、前記マシンに、前記1つ以上のプロセッサ命令に関連する前記プロセッサを識別したこと応じて、前記プロセッサ命令プロキシスタブを生成させることによって、前記プロセッサの前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシスタブを生成させる請求項8に記載の媒体。前記命令は、前記マシンに、前記最適化マネージドアプリケーションプログラムインタフェースに基づいてマネージドランタイムアプリケーションを実行させるために、前記1つ以上のプロセッサ命令に関連する機能を使用可能にさせる請求項8に記載の媒体。前記マシンアクセス可能な媒体は、プログラマブルゲートアレイ、特定用途向け集積回路、消去可能プログラマブルリードオンリーメモリ、リードオンリーメモリ、ランダムアクセスメモリ、磁気メディア、および光メディアのうちの1つからなる請求項8に記載の媒体。1つ以上のプロセッサ命令に関連するプロセッサ命令プロキシスタブを生成し、前記プロセッサ命令プロキシスタブに基づいて最適化マネージドアプリケーションプログラムインタフェースを生成するプロセッサ命令プロキシスタブジェネレータと、前記1つ以上のプロセッサ命令に関連するプロセッサの1つ以上の機能を使用可能にするために前記最適化マネージドアプリケーションプログラムインタフェースをコンパイルするコンパイラとを備える装置。前記プロセッサ命令プロキシスタブジェネレータは、仮想マシンおよびコンパイラのうちの1つに組み込まれている請求項16に記載の装置。前記プロセッサ命令プロキシスタブジェネレータは、前記プロセッサ命令プロキシスタブを生成するために、前記1つ以上のプロセッサ命令に関連するプロセッサを識別する請求項16に記載の装置。1つ以上のプロセッサ命令は、ストリーミングSIMD拡張SSE命令、SSE2命令、およびマルチメディア拡張命令のうちの1つを有する請求項16に記載の装置。前記コンパイラは、ジャストインタイムコンパイラを有する請求項16に記載の装置。前記プロセッサ命令プロキシスタブは、マネージドランタイム環境の仮想マシンに関連するレイヤにおいて生成される請求項16に記載の装置。前記最適化マネージドアプリケーションプログラムインタフェースは、マネージドランタイムアプリケーションの実行に対して前記1つ以上のプロセッサ命令に関連する機能を使用可能にする請求項16に記載の装置。1つ以上の最適化マネージドアプリケーションプログラムインタフェースを保存するダイナミックランダムメモリDRAMと、1つ以上のプロセッサ命令に関連するプロセッサ命令プロキシスタブを生成し、前記1つ以上のプロセッサ命令に関連する前記プロセッサの1つ以上の機能を使用可能にするために前記プロセッサ命令プロキシスタブに基づいて最適化アプリケーションプログラムインタフェースを生成する、前記DRAMに接続されたプロセッサとを備えるプロセッサシステム。1つ以上のプロセッサ命令は、ストリーミングSIMD拡張SSE命令、SSE2命令、およびマルチメディア拡張命令のうちの1つを有する請求項23に記載のプロセッサシステム。前記プロセッサ命令プロキシスタブは、マネージドランタイム環境の仮想マシンに関連するレイヤにおいて生成される請求項23に記載のプロセッサシステム。前記プロセッサ命令プロキシスタブは、マネージドランタイムアプリケーションのインストール時に生成される請求項23に記載のプロセッサシステム。前記最適化マネージドアプリケーションプログラムインタフェースは、マネージドランタイムアプリケーションの実行時に前記1つ以上のプロセッサ命令に関連する機能を使用可能にする請求項23に記載のシステム。図1を参照すると、マネージドランタイム環境MRTEシステム100のアーキテクチャ階層は、概して、マネージドランタイムアプリケーション110と、1つ以上のマネージドアプリケーションプログラムインタフェースAPIs120と、仮想マシンVM130と、コンパイラ140と、プロセッサ特有の命令群150と、プロセッサ160とを有する。本明細書で使用されるアプリケーションは、データの操作を行う1つ以上の方法、プログラム、関数、ルーチン、またはサブルーチンを指す。概して、マネージドランタイムアプリケーション110は、MRTEにおいて種々のサービスを提供するためにプログラマによって書かれる。マネージドランタイムアプリケーション110のソースコードは、例えば、C、VisualBasic.Net、および/またはその他の適用可能ないかなるオブジェクト指向プログラミング言語によって書かれてもよい。Microsoft.NetフレームワーククラスライブラリまたはJava登録商標クラスライブラリのようなマネージドAPIs120は、マネージドランタイムアプリケーション110のソースコードを、それぞれMicrosoft中間言語MSILまたはJava登録商標バイトコードに変換すなわち、コンパイルする。マネージドAPIs120は、マネージドランタイムアプリケーション110とVM130の間のインタフェースとして動作する。VM130は、ガーベッジコレクション、メモリ管理、およびコードとロールベースのセキュリティのようなサービスをマネージドAPIs120に提供することによって、マネージドランタイムアプリケーション110を管理する抽象的なプロセッサを動作させる。例えば、プロセッサに関する知識を持たないVM130は、Microsoft共通言語ランタイムまたはJava登録商標仮想マシンでもよい。マネージドAPIs120およびVM130は、MISLコードまたはJava登録商標バイトコードが特定のプロセッサをターゲットとしないために、すべての特定のプラットフォームに対して依存せずに動作する。それに従って、ジャストインタイムJITコンパイラのようなコンパイラ140は、MISLコードまたはJava登録商標バイトコードを、マネージドAPIs120からプロセッサ160によって実行されうるネイティブアセンブリコードに変換すなわち、再コンパイルする。プロセッサ160は、IntelPentium登録商標テクノロジ、IntelItaniumテクノロジ、および/またはIntelパーソナルインターネットクライアントアーキテクチャPCAテクノロジのうちの1つ以上を使用して実装されてもよい。プロセッサ160は、暗号、マルチメディア、オーディオコーデック、ビデオコーデック、画像コーディング、画像処理、信号処理、文字列処理、音声圧縮、コンピュータビジョンなどのソフトウェアライブラリ関数をMRTEシステム100に提供する、SSE命令群、SSE2命令群、MMX命令群、および/またはその他の適用可能な命令群のような、プロセッサ特有の命令群150を実行することが可能であってもよい。しかし、上述のように、アンマネージドソフトウェアライブラリ関数すなわち、プロセッサ特有の命令群150は、プロセッサ160に対して最適化されうるが、マネージドコードすなわち、マネージドAPIs120は、これまでマネージドコード関数をカスタムハンドで最適化する方法が存在しないため、アンマネージドソフトウェアと同様の方法では、ある特定のプロセッサアーキテクチャに対して最適化されない。すなわち、マネージドランタイムアプリケーション110に対応するマネージドAPIs120は、最適化に関して完全にJITコンパイラ140に依存しており、また、JITコンパイラ140は、プロセッサ特有の最適化を行うことができなかった。このように、従来のシステムでは、VM130が下層のプロセッサ160の一定のプロセッサ特有の命令群150をサポートしていなかったために、下層のプロセッサ160は、VM130によって提供されるサービスを使用することができず、また、マネージドランタイムアプリケーション110は、下層のプロセッサ160によって提供される機能を使用することができなかった。図2の例は、マネージドランタイムアプリケーション210、1つ以上のAPIs220、1つ以上の最適化マネージドAPIs225、VM230、PIPSジェネレータ235、コンパイラ240、プロセッサ特有の命令群250、およびプロセッサ260を含むプロセッサ命令プロキシスタブPIPSシステム200を有する、MRTEのアーキテクチャ階層を示す。本明細書において使用されるスタブは、プログラムの実行中に種々のタスクを実行するために提供される動的に生成されるコードの一部を指す。一般的に、PIPSジェネレータ235は、下層のプロセッサ260上におけるマネージドランタイムアプリケーション210の実行を最適化するために、PIPS例:図5のPIPS510と呼ばれるコードの一部または命令のセットを生成する。マネージドランタイムアプリケーション210がインストールされると、例えば、PIPSジェネレータ235は、プロセッサ特有の命令群250に基づいて、PIPSを生成する。更に、PIPSジェネレータ235は、マネージドランタイムアプリケーション210によって使用される最適化マネージドAPIs225を作成するために、PIPSをあるマネージドAPIs220に挿入する。下記に詳細に説明するように、マネージドランタイムアプリケーション210が実行されている間、最適化マネージドAPIs225は、アンマネージドコードすなわち、プロセッサ特有の命令群250をマネージドコードすなわち、マネージドランタイムアプリケーション210に書き換えることなく、下層のプロセッサ260の性能を最適化する。最適化マネージドAPIs225は、メモリ例:図8のメモリ1030に保存され、MRTEにおけるマネージドランタイムアプリケーション210の実行時にリコールされる。その結果、下層のプロセッサ260上におけるマネージドランタイムアプリケーション210の性能を最適化するために、下層のプロセッサ260の機能が使用可能にされうる。図2のPIPSジェネレータ235はPIPSシステム200内の独立したブロックとして図示されるが、PIPSジェネレータ235によって実行される機能は、VM230および/またはJITコンパイラ240内に組み込まれてもよい。図3を参照すると、PIPSシステム300の例は、MRTEにおいてマネージドランタイムアプリケーション310を実行するために、マネージドランタイムアプリケーション310、1つ以上の最適化マネージドAPIs325、VM330、JITコンパイラ340、ネイティブアセンブリコード350、およびプロセッサ360を有する。VM330は、マネージドランタイムアプリケーション310を実行するために、複数の異なるプロセッサに対して互換性があるプロセッサ命令群を実行してもよい。しかし、一般的に、VM330は、最適化マネージドAPIs325なしでは使用することができない機能を使用可能にするために下層のプロセッサ360の特定のプロセッサ特有の命令群を実行することはしない。これに対して、PIPSシステム300によってマネージドランタイムアプリケーション310が実行されている間、例えば、JITコンパイラ340は、ネイティブアセンブリコード350例:図5のネイティブアセンブリコード500を生成するために、最適化マネージドAPIs325をコンパイルする。特に、マネージドランタイムアプリケーション310のインストール時に、最適化マネージドAPIs325を生成するためにPIPSジェネレータ235がPIPSを挿入したため、JITコンパイラ340は、ネイティブアセンブリコード350を更に最適化することなく、ネイティブアセンブリコード350を単純にコンパイルして実行する。換言すると、PIPSは、下層のプロセッサ360上においてマネージドランタイムアプリケーション310を実行するために、マネージドランタイムアプリケーション310のマネージドAPIsを予め最適化すなわち、最適化マネージドAPIs325した。これにより、JITコンパイラ340がアンマネージドコード例:図2のプロセッサ特有の命令群250をマネージドコードすなわち、マネージドランタイムアプリケーション310に書き換えることなく、最適化マネージドAPIs325は、下層のプロセッサ360の性能を最適化する。その結果、ネイティブアセンブリコード350は、下層のプロセッサ360におけるマネージドランタイムアプリケーション310の性能を最適化するように、カスタマイズされる。図4の例では、文字列比較関数400は、アンマネージドの高級言語のコードによって実装される。概して、文字列比較関数400は、上述のIntelプロセッシングテクノロジのうちの1つ以上を使用して実装されたプロセッサにおけるSSE2命令群のようなプロセッサ特有の命令群を使用したカスタムハンドな最適化コーディングによって、C言語ルーチンとして最適化される。しかし、CまたはJava登録商標の比較関数コードのようなマネージドコードを特定のプロセッシングアーキテクチャに対してカスタムハンドに最適化する方法は存在しない。図2および図3と関連して説明されたように、下層のプロセッサ360上における文字列比較関数400の性能を最適化するPIPS510を含む、ネイティブアセンブリコード500の一部の例が、図5に示される。特に、ネイティブアセンブリコード500は、PIPSジェネレータ235によって生成されたPIPS510を有する。例えば、PIPSジェネレータ235は、文字列比較関数400のインストール時にPIPS510を生成するために、Microsoft.NETによって提供されるネイティブマーシャリング言語MLコードを使用してもよい。PIPS510に基づいて、PIPSジェネレータ235は、マネージドランタイムアプリケーション310に相当する最適化マネージドAPIs325を生成する。JITコンパイラ340は、図5に示すように、実行する下層のプロセッサ360に対するPIPS510を含む、文字列比較関数に対応するネイティブアセンブリコード500をコンパイルする。文字列比較関数400がランタイム時に開始されたとき、VM330は、ネイティブアセンブリコード500を生成するために、JITコンパイラ340に対して、最適化マネージドAPIs325を取り込む。PIPSジェネレータ235が予めPIPS510を最適化マネージドAPIs325に挿入したため、JITコンパイラ340は、最適化マネージドAPIs325を更に最適化することなく、最適化マネージドAPIs325をコンパイルして実行する。その結果、下層のプロセッサ360のプロセッサ特有の命令群250すなわち、アンマネージドコードがPIPS510によってVMレイヤにまで抽象化されたため、マネージドランタイムアプリケーション310は、VM330によって提供されるサービス例:ガーベッジコレクション、メモリ管理、および/またはコードとロールベースのセキュリティ、および、下層のプロセッサ360の機能の両方の利益を得ることができる。換言すると、最適化マネージドAPIs325は、マネージドランタイムアプリケーション310を動作させるために、下層のプロセッサ360の機能を使用可能にするプロセッサ特有の命令群を使用可能にすることができる。フロー図600および700は、図6および図7にそれぞれ図示されるマネージドAPIを最適化するためにプロセッサによって実行されうる、マシンアクセス可能な命令群を示す。通常の技術を有する当業者は、この命令群が揮発性または非揮発性のメモリまたはその他の大容量ストレージデバイス例:フロッピー登録商標ディスク、CD、およびDVDのようなコンピュータによってアクセス可能な全ての媒体に保存された全てのプログラミングコードの使用による多くの異なる方法によって実装されうることを、理解するであろう。例えば、マシンアクセス可能な命令群は、消去可能プログラマブルリードオンリーメモリEPROM、リードオンリーメモリROM、ランダムアクセスメモリRAM、磁気メディア、光メディア、および/またはその他の適用可能なタイプの媒体のような、マシンアクセス可能な媒体に組み込まれてもよい。あるいは、マシンアクセス可能な命令は、プログラマブルゲートアレイおよび/または特定用途向け集積回路ASICに組み込まれてもよい。更に、図6および図7には動作の特定の順番が図示されているが、通常の技術を有する当業者は、これらの動作が他の順番において実行されうることを理解するであろう。また、フロー図600および700は、図2および図5に関連して、マネージドAPIsを最適化する方法の一例として提供および説明されるのみである。図6の例では、フロー図600は、PIPSジェネレータ235が下層のプロセッサ260のプロセッサ特有の命令群250に関連するPIPS510を生成する、ブロック610から開始する。例えば、PIPSジェネレータ235は、マネージドランタイムアプリケーション210のインストール中に、下層のプロセッサ260に相当するプロセッサ識別子に基づいて、PIPS510を生成してもよい。上述の通り、プロセッサ特有の命令群250は、下層のプロセッサ260上におけるマネージドランタイムアプリケーション210の性能を最適化するために、プロセッサ特有の命令を使用することなくして使用できない、オーディオ処理、ビデオ処理、画像処理、音声認識、暗号などのような、下層のプロセッサ260の機能を使用可能にする。ブロック620において、PIPSジェネレータ235は、PIPS510に基づいて、最適化マネージドAPIs225を生成する。特に、PIPSジェネレータ235は、PIPS510をマネージドランタイムアプリケーション210に相当するあるマネージドAPIs220に挿入する。PIPSジェネレータ235は、下層のプロセッサ260においてマネージドランタイムアプリケーション210が実行されている間、最適化マネージドAPIs225がJITコンパイラ240から使用可能となるように、最適化マネージドAPIs225を保存する。図7の例では、フロー図700は、JITコンパイラ240がマネージドランタイムアプリケーション210に相当する最適化マネージドAPIs225をコンパイルして実行する、ブロック710から開始する。上述のように、PIPSジェネレータ235がプロセッサ特有の命令群250に関連するPIPS510を最適化マネージドAPIs225に予め挿入したため、JITコンパイラ240は、最適化マネージドAPIs225を更に最適化することなく、最適化マネージドAPIs225をコンパイルしうる。すなわち、PIPS510は、最適化マネージドAPIs225によって、下層のプロセッサ260上で実行するためにマネージドランタイムアプリケーション210をカスタムハンドで最適化する。ブロック640において、JITコンパイラ240は、プロセッサ特有の命令群250に相当する下層のプロセッサ260の機能を使用可能にする。VM230によって提供されるガーベッジコレクション、メモリ管理、およびコードとロールベースのセキュリティのようなサービスに加えて、マネージドランタイムアプリケーション210は、下層のプロセッサ260上で実行される間、暗号、マルチメディア、オーディオコーデック、ビデオコーデック、画像コーディング、画像処理、信号処理、音声圧縮、コンピュータビジョンなどの最適化マネージドAPIs225によってマネージドランタイムアプリケーション210に提供される、ソフトウェアライブラリ関数を使用しうる。その結果、最適化マネージドAPIs225は、マネージドランタイムアプリケーション210が、プロセッサ特有の命令を使用することなくして使用できない、または、他のプロセッサにおいては非効率的である下層のプロセッサ260の機能を使用可能にする、プロセッサ特有の命令群250を実行することを可能にする。更に、最適化マネージドAPIs225は、ネイティブアセンブリコード500によって、下層のプロセッサ260におけるマネージドランタイムアプリケーション210の性能をカスタムハンドに最適化する。本明細書において開示される方法および装置は、欧州コンピュータマネージメントアソシエーションECMA共通言語インフラストラクチャCLIおよびECMAC言語仕様の実装のソースコードに適する。しかし、通常の技術を有する当業者は、開示内容が他のランタイム環境におけるソースコードに対しても適用可能であることを理解するであろう。図8は、本明細書において開示される方法および装置の実装に適合するプロセッサシステム1000の一例を示すブロック図である。プロセッサシステム1000は、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、パーソナルデジタルアシスタントPDA、サーバ、インターネットアプライアンス、またはその他いかなるタイプのコンピュータデバイスでもよい。図8に示されるプロセッサシステム1000は、メモリコントローラ1012および入力/出力I/Oコントローラ1014を含む、チップセット1010を有する。よく知られているように、チップセットは、一般的に、プロセッサ1020からアクセス可能である、または、プロセッサ1020によって使用されるメモリおよびI/O管理機能を提供し、一般的な目的および/または特定の目的のレジスタ、タイマーなども提供する。プロセッサ1020は、1つ以上のプロセッサを使用して実装される。例えば、プロセッサ1020は、IntelPentium登録商標テクノロジ、IntelItaniumテクノロジ、IntelCentrino登録商標テクノロジおよび/またはIntelXScale登録商標テクノロジのうちの1つ以上を使用して実装されてもよい。あるいは、他のプロセッシング技術がプロセッサ1020を実装するために使用されてもよい。プロセッサ1020は、第1レベルユニファイドキャッシュL1、第2レベルユニファイドキャッシュL2、第3レベルユニファイドキャッシュL3、および/または通常の技術を有する当業者が認識するその他の適用しうる全ての構造を使用して実装されうる、キャッシュ1022を有する。従来技術のように、メモリコントローラ1012は、プロセッサ1020がバス1040によって揮発性メモリ1032および非揮発性メモリ1034を含むメインメモリ1030にアクセスして通信できるようにする機能を実行する。揮発性メモリ1032は、同期型ダイナミックランダムアクセスメモリSDRAM、ダイナミックランダムアクセスメモリDRAM、RAMBUSダイナミックランダムアクセスメモリRDRAM、および/またはその他全てのタイプのランダムアクセスメモリデバイスによって実装されてもよい。非揮発性メモリ1034は、フラッシュメモリ、リードオンリーメモリROM、電気的消去可能リードオンリーメモリEEPROM登録商標、および/またはその他全てのタイプのメモリデバイスを使用して実装されてもよい。プロセッサシステム1000は、バス1040に接続されたインタフェース回路1050も有する。インタフェース回路1050は、イーサネット登録商標インタフェース、ユニバーサルシリアルバスUSB、第3世代入力/出力インタフェース3GIOインタフェース、および/またはその他適用可能な全てのタイプのインタフェースのような、いかなる従来のインタフェースの標準を使用して実装されてもよい。1つ以上の入力デバイス1060は、インタフェース回路1050に接続される。1つまたは複数の入力デバイス1060は、ユーザによるプロセッサ1020に対するデータおよびコマンドの入力を可能にする。例えば、1つまたは複数の入力デバイス1060は、キーボード、マウス、タッチセンシティブディスプレイ、トラックパッド、トラックボール、isopoint、および/または音声認識システムによって実装されてもよい。1つ以上の出力デバイス1070もまた、インタフェース回路1050に接続される。例えば、1つまたは複数の出力デバイス1070は、ディスプレイデバイス例:発光ディスプレイLED、液晶ディスプレイLCD、陰極線管CRTディスプレイ、プリンタ、および/またはスピーカによって実装されてもよい。このように、インタフェース回路1050は、一般的には、他のデバイスの中でも特に、グラフィックスドライバカードを有する。プロセッサシステム1000は、ソフトウェアおよびデータを保存する1つ以上の大容量ストレージデバイス1080も有する。そのような1つまたは複数の大容量ストレージデバイス1080の例は、フロッピー登録商標ディスクとドライブ、ハードディスクドライブ、コンパクトディスクとドライブ、およびデジタル多用途ディスクDVDとドライブを含む。インタフェース回路1050は、ネットワークによる外部コンピュータとのデータの交換を促進するモデムまたはネットワークインタフェースカードのような通信デバイスも含む。プロセッサシステム1000とネットワーク間の通信リンクは、イーサネット登録商標接続、デジタル加入者回線DSL、電話線、携帯電話システム、同軸ケーブルなどのような、いかなるタイプのネットワーク接続でもよい。1つまたは複数の入力デバイス1060、1つまたは複数の出力デバイス1070、1つまたは複数の大容量ストレージデバイス1080、および/またはネットワークへのアクセスは、概して、従来技術の手法に沿ってI/Oコントローラ1014によってコントロールされる。特に、I/Oコントローラ1014は、プロセッサ1020がバス1040およびインタフェース回路1050によって1つまたは複数の入力デバイス1060、1つまたは複数の出力デバイス1070、1つまたは複数の大容量ストレージデバイス1080、および/またはネットワークにアクセスできるようにする機能を実行する。図8に示されるコンポーネントはプロセッサシステム1000内の独立したブロックとして図示されるが、これらのブロックのうちのいくつかによって実行される機能は、1つの半導体回路内に組み込まれてもよく、または、2つ以上の独立した集積回路を使用して実装されてもよい。例えば、メモリコントローラ1012およびI/Oコントローラ1014は、チップセット1010内の独立したブロックとして図示されるが、通常の技術を有する当業者は、メモリコントローラ1012およびI/Oコントローラ1014は1つの半導体回路に組み込まれうることを理解するであろう。本明細書ではある一定の方法、装置、および製品の例が説明されるが、本発明の特許請求の範囲は、これらに限定されない。本発明の範囲は、逐語的にまたは均等論によって添付の特許請求の範囲に収まる全ての方法、装置、製品に及ぶ。例えば、本明細書は、他のコンポーネントの中でもハードウェア上で実行されるソフトウェアまたはファームウェアを含むシステム例を開示するが、これらのシステムは、単に本発明を説明するためのものであって本発明を限定するものではない。特に、全ての開示されたハードウェア、ソフトウェア、および/またはファームウェアコンポーネントは、ハードウェア内に独占的に組み込まれてもよく、ソフトウェアに独占的に組み込まれてもよく、ファームウェアに独占的に組み込まれてもよく、または、ハードウェア、ソフトウェア、および/またはファームウェアの組み合わせに組み込まれてもよいことが意図されている。