(57)【特許請求の範囲】
【請求項１】
装置内にカーネルを構築するプロセッサと、
所定の周辺ディバイスを動作可能にするためのプログラムコードをカーネル外部のメモリ領域で保持する保持手段と、
前記保持手段に保持されているプログラムコードの実行によって動作可能になる周辺ディバイスを装置内のバスに接続するためのディバイス接続手段とを備えており、
前記カーネルと前記周辺ディバイスが接続されたバスとの間にはキューが設けられており、
前記カーネルは、前記バスに接続された前記周辺ディバイスについての前記プログラムコードを前記キューを介したリモート・プロシージャ・コール（「ＲＰＣ」）により前記プロセッサを介在させることなく所定の制御手段に実行させることで当該周辺ディバイスを動作させ、この動作により生じた情報を前記プロセッサに伝えることで当該周辺ディバイスを使用したエンタテインメント処理を遂行可能にするものである、
エンタテインメント装置。
【請求項２】
前記周辺ディバイスの一つは、暗号化されたデジタル情報が入力されたときに当該デジタル情報を前記カーネル実現体が読み取り可能なデジタル情報に復号化する半導体デバイスである、
請求項１記載のエンタテインメント装置。
【請求項３】
前記カーネルは、前記ＲＰＣによるプログラムコードの読み出し及びその実行結果の転送を前記制御手段にダイレクト・メモリ・アクセス（「ＤＭＡ」）により行わせるものである、
請求項１記載のエンタテインメント装置。
【請求項４】
前記制御手段は、前記周辺ディバイスが接続されたバスと前記キューとの間では情報の受け渡しを第１ＤＭＡにより行い、前記カーネルと前記キューとの間では情報の受け渡しを第１ＤＭＡと非同期の第２ＤＭＡにより行うものである、
請求項３記載のエンタテインメント装置。
【請求項５】
第１ＤＭＡ及び第２ＤＭＡによる前記情報の受け渡しが少なくとも装置内部で共通に使用されている通信プロトコルにより行われるように構成されている、
請求項３記載のエンタテインメント装置。
【請求項６】
前記周辺ディバイスが離脱自在に装着される二次記録媒体を含むディバイスであり、
前記プログラムコードの実行に際して使用されるデータが前記二次記録媒体に記録されており、
この二次記録媒体に記録されたデータが前記プログラムコードの実行の際に前記カーネル宛にＤＭＡにより転送されるように構成されている、
請求項１記載のエンタテインメント装置。
【請求項７】
所定のプログラムコードの実行によって動作可能になる周辺ディバイスを使用したエンタテインメント処理を遂行可能にするカーネルを装置内に構築するプロセッサを備えたエンタテインメント装置における、前記周辺ディバイスを制御するためのカーネル機能実現構造であって、
前記プログラムコードがカーネル外部のメモリ領域で保持されており、
前記周辺ディバイスは、前記エンタテインメント装置内のバスに接続されるものであり、
前記カーネルと前記バスとの間にはキューが設けられており、
前記カーネルは、前記エンタテインメント装置に接続された周辺ディバイスについての前記プログラムコードを前記キューを介したリモート・プロシージャ・コールにより前記プロセッサを介在させることなく所定の制御手段に実行させることで当該周辺ディバイスを動作させ、この動作により生じた情報を前記プロセッサに伝えることで前記エンタテインメント処理を遂行可能にするものである、
カーネル機能実現構造。
【請求項８】
所定のプログラムコードの実行によって動作可能になる周辺ディバイスを使用したエンタテインメント処理を遂行可能にするカーネルを装置内に構築するプロセッサを備えたエンタテインメント装置における、周辺ディバイスの制御方法であって、
前記プログラムコードをカーネル外部のメモリ領域で保持しておき、
前記周辺ディバイスを、前記エンタテインメント装置内のバスに接続するとともに、
前記カーネルが、前記バスに接続された周辺ディバイスについての前記プログラムコードを前記カーネルと前記バスとの間に設けられたキューを介したリモート・プロシージャ・コールにより前記プロセッサを介在させることなく所定の制御手段に実行させることで当該周辺ディバイスを動作させ、この動作により生じた情報を前記プロセッサに伝えることで前記エンタテインメント処理を遂行可能にする、
カーネルによる周辺ディバイスの制御方法。
【請求項９】
所定のプログラムコードの実行によって動作可能になる周辺ディバイスが接続されるエンタテンメント装置内にカーネルを構築するプロセッサを含む半導体ディバイスであって、
前記プログラムコードはカーネル外部のメモリ領域に保持されており、
前記周辺ディバイスは、前記エンタテインメント装置内のバスに接続されるものであり、
前記カーネルと前記バスとの間にはキューが設けられており、
前記カーネルは、前記メモリ領域に保持されているプログラムコードを前記キューを介したリモート・プロシージャ・コールにより前記プロセッサを介在させることなく所定の制御手段に実行させることで当該周辺ディバイスを動作させ、この動作により生じた情報を前記プロセッサに伝えることで当該周辺ディバイスを使用したエンタテインメント処理を遂行するものである、
半導体ディバイス。
【請求項１０】
プロセッサとの協働により、コンピュータを、その内部にカーネルを構築したエンタテインメント装置として動作させるためのコンピュータプログラムであって、
前記エンタテインメント装置内のバスには所定の周辺ディバイスが接続されるものであり、
前記カーネルと前記バスとの間にはキューが設けられており、
前記コンピュータを、
前記バスに接続された周辺ディバイスを動作可能にするためのプログラムコードをカーネル外部のメモリ領域で保持する保持手段として機能させるとともに、
前記カーネルにおいて、前記周辺ディバイスについての前記プログラムコードを前記キューを介したリモート・プロシージャ・コールにより前記プロセッサを介在させることなく所定の制御手段に実行させることで当該周辺ディバイスを動作可能にし、この動作により生じた情報を前記プロセッサに伝えることで当該周辺ディバイスを使用したエンタテインメント処理を遂行可能にするためのコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＤ−ＲＯＭ又はＤＶＤ−ＲＯＭのような二次記録媒体に記録されたディジタル情報に基づいてエンタテインメント処理を実行したり、或いは所定の音楽や画像を生成したりすることのできるエンタテインメント装置に関し、より具体的には、エンタテインメント装置に接続された周辺ディバイスの制御技術に関する。
【０００２】
【従来の技術】
例えばゲームのようなエンタテインメント専用のコンピュータとして実現されるエンタテインメント装置は、それに接続されるコントローラ、外部記録媒体などの周辺ディバイスと協働して所定のエンタテイメント処理を行う。つまり、エンタテインメント装置は、エンタテインメント処理を、コントローラ、及び／又は、外部記憶手段などの周辺ディバイスからの入力に基づいて行い、その結果をテレビ受像機などの所定のディスプレイ装置、又はスピーカなどに出力するものとなっている。従って、エンタテインメント装置では、それに接続される周辺ディバイスの制御を如何に行うかという点が極めて重要なものとなっている。
【０００３】
通常、このような周辺ディバイスの制御は、カーネル（Kernal）と呼ばれる、ＯＳ（Operating System）の中心的機能の一部によって実現される。
近年では、周辺ディバイス制御用のプログラムコードであるディバイスドライバをカーネル外部に置き、周辺ディバイスへの汎用性、互換性を高めた「マイクロカーネル」と呼ばれる技術が実用化されている。このマイクロカーネルは、エンタテインメントの種類に応じて多様となる周辺ディバイスとの接続が要求されるエンタテインメント装置への応用に適した特徴を有している。
しかしながら、マイクロカーネルは、その汎用性の高さ故に、各周辺ディバイスへの高いレベルでの対応が難しい。そのため、エンタテインメント装置が、必要に応じて実時間性の高い処理が要求されるゲーム装置として用いられる場合には、その処理性能が不十分となりがちである。
【０００４】
一方、カーネル機能を構築するためのＣＰＵとは異なる周辺ディバイス制御用の専用プロセッサを設け、これにより、周辺ディバイスの制御を一括的に行う技術も実用化されている。
例えば、通常は大容量の一次記録媒体を持たないエンタテインメント装置では、ＣＤ−ＲＯＭなどの二次記録媒体からのプログラムコードの読み込みが不可欠となるが、そのための処理が重くなりがちなことに鑑みて、プログラムコードの読み込みや、その復号化、伸長などを行うＩ／Ｏ（Input／Output）プロセッサを有している場合がある。
このようなエンタテインメント装置では、Ｉ／Ｏプロセッサを上述の専用プロセッサとして機能させることにより、周辺ディバイスの制御を行うようにすることが可能である。
しかしながら、Ｉ／Ｏプロセッサを周辺ディバイス制御用のプロセッサとして用いた場合には、Ｉ／ＯプロセッサとＣＰＵとの間でプログラムコード及び必要なデータを含む情報のやり取りが必須となる。そのため、装置内部で情報の複製、転送の回数が増えがちとなり、高速な処理が求められるエンタテインメント装置には好ましくない。また、Ｉ／Ｏプロセッサを用いた場合には、ＣＰＵがＩ／Ｏプロセッサの処理待ちをする時間が長くなりがちとなり、これも高速処理の妨げとなる。
【０００５】
【発明が解決しようとする課題】
本発明は、周辺ディバイスを高速に制御できる仕組みを備えたエンタテインメント装置及びそれを実現可能とする技術の提供を主たる課題とする。
【０００６】
【課題を解決するための手段】
上記課題を解決する本発明のエンタテインメント装置は、装置内にカーネルを構築するプロセッサと、所定の周辺ディバイスを動作可能にするためのプログラムコードをカーネル外部のメモリ領域で保持する保持手段と、前記保持手段に保持されているプログラムコードの実行によって動作可能になる周辺ディバイスを装置内のバスに接続するためのディバイス接続手段とを備えており、前記カーネルと前記周辺ディバイスが接続されたバスとの間にはキューが設けられており、前記カーネルは、前記バスに接続された前記周辺ディバイスについての前記プログラムコードを前記キューを介したリモート・プロシージャ・コール（Remote Procedure Call：以下、「ＲＰＣ」と称する）により前記プロセッサを介在させることなく所定の制御手段に実行させることで当該周辺ディバイスを動作させ、この動作により生じた情報を前記プロセッサに伝えることで当該周辺ディバイスを使用したエンタテインメント処理を遂行可能にするものである。
前記周辺ディバイスの一つは、例えば、暗号化されたデジタル情報が入力されたときに当該デジタル情報を前記カーネル実現体が読み取り可能なデジタル情報に復号化する半導体デバイスである。
【０００７】
ＲＰＣは、エンタテインメント処理用のプログラム内の一部のプロシージャ（Procedure：プログラムに含まれる手順）を他の実行手段に任せ、実行結果を通常のプロシージャ呼び出しと同じように戻値として返す手法である。本発明では、カーネル外部に周辺ディバイスを制御するためのプログラムコードを保持しておき、エンタテインメント処理用のプログラムの実行中に、あるプロシージャを所定の制御手段（例えばＣＰＵとは別に設けられた周辺ディバイス制御用の専用プロセッサ）に実行させる。制御手段は、該当するプログラムコードを読み出してそれを実行することにより周辺ディバイスを動作可能にする。このようにすることで、周辺ディバイス用のプログラムコードをカーネル外部に出すだけでなく、カーネルが管理するハードウエアリソース（ＣＰＵ／メモリ）の外部に出すことが可能になり、ハードウエアリソースの使用効率の向上が図れ、装置全体の処理速度が速くなる。従って、一時的に実時間性が要求される高速処理にも柔軟に対応できるようになる。
【０００８】
前記カーネルは、ＲＰＣによるプログラムコードの読み出し及びその実行結果の転送を前記制御手段にダイレクト・メモリ・アクセス（direct memoryaccess：以下、「ＤＭＡ」と称する）により行わせる。ＤＭＡの形態としては、種々の形態を採用可能であるが、好ましくは、前記カーネルと周辺ディバイスとの間にキューを設け、前記制御手段に、前記周辺ディバイスと前記キューとの間では情報の受け渡しを第１ＤＭＡを行わせ、前記カーネルと前記キューとの間では情報の受け渡しを第１ＤＭＡと非同期の第２ＤＭＡにより行わせるようにする。このようにすれば、エンタテインメント処理中であってもキューへの情報の記録が可能になる。また、ＲＰＣをＤＭＡで行うことにより、周辺ディバイスから直接カーネル宛の情報転送が可能になり、従来、問題となっていた、情報の転送／複製、回数を減少させることができる。
【０００９】
第１ＤＭＡ及び第２ＤＭＡによる前記情報の受け渡しは、少なくとも装置内部で共通に使用されている通信プロトコルにより行う。これにより、従来の手法に比べて実時間性が向上する。通信プロトコルとしては、例えばイーサネットで使用されるような汎用のプロトコルを用いることができる。そのため、使用できる周辺ディバイスの種類によらない制御ができるようになる。また、周辺ディバイス用のプログラムコードの互換性を確保することができるようになる。
【００１０】
本発明は、また、所定のプログラムコードの実行によって動作可能になる周辺ディバイスを使用したエンタテインメント処理を遂行可能にするカーネルを装置内に構築するプロセッサを備えたエンタテインメント装置における、前記周辺ディバイスを制御するためのカーネル機能実現構造を提供する。このカーネル構造実現構造は、前記プログラムコードがカーネル外部のメモリ領域で保持されており、前記周辺ディバイスは、前記エンタテインメント装置内のバスに接続されるものであり、前記カーネルと前記バスとの間にはキューが設けられており、前記カーネルは、前記エンタテインメント装置に接続された周辺ディバイスについての前記プログラムコードを前記キューを介したリモート・プロシージャ・コールにより前記プロセッサを介在させることなく所定の制御手段に実行させることで当該周辺ディバイスを動作させ、この動作により生じた情報を前記プロセッサに伝えることで前記エンタテインメント処理を遂行可能にするものである。
【００１１】
本発明は、また、所定のプログラムコードの実行によって動作可能になる周辺ディバイスを使用したエンタテインメント処理を遂行可能にするカーネルを装置内に構築するプロセッサを備えたエンタテインメント装置における、周辺ディバイスの制御方法を提供する。この方法は、前記プログラムコードをカーネル外部のメモリ領域で保持しておき、前記周辺ディバイスを、前記エンタテインメント装置内のバスに接続するとともに、前記カーネルが、前記バスに接続された周辺ディバイスについての前記プログラムコードを前記カーネルと前記バスとの間に設けられたキューを介したリモート・プロシージャ・コールにより前記プロセッサを介在させることなく所定の制御手段に実行させることで当該周辺ディバイスを動作させ、この動作により生じた情報を前記プロセッサに伝えることで前記エンタテインメント処理を遂行可能にすることを特徴とする。
【００１２】
本発明は、また、所定のプログラムコードの実行によって動作可能になる周辺ディバイスが接続されるエンタテンメント装置内にカーネルを構築するプロセッサを含む半導体ディバイスを提供する。この半導体ディバイスにおいて、前記プログラムコードはカーネル外部のメモリ領域に保持されており、前記周辺ディバイスは、前記エンタテインメント装置内のバスに接続されるものであり、前記カーネルと前記バスとの間にはキューが設けられており、前記カーネルは、前記メモリ領域に保持されているプログラムコードを前記キューを介したリモート・プロシージャ・コールにより前記プロセッサを介在させることなく所定の制御手段に実行させることで当該周辺ディバイスを動作させ、この動作により生じた情報を前記プロセッサに伝えることで当該周辺ディバイスを使用したエンタテインメント処理を遂行するものである。
【００１３】
本発明は、さらに、プロセッサとの協働により、コンピュータを、その内部にカーネルを構築したエンタテインメント装置として動作させるためのコンピュータプログラムを提供する。前記エンタテインメント装置（コンピュータ）内のバスには所定の周辺ディバイスが接続されるものであり、前記カーネルと前記バスとの間にはキューが設けられている。本発明のコンピュータプログラムは、前記コンピュータを、前記バスに接続された周辺ディバイスを動作可能にするためのプログラムコードをカーネル外部のメモリ領域で保持する保持手段として機能させるとともに、前記カーネルにおいて、前記周辺ディバイスについての前記プログラムコードを前記キューを介したリモート・プロシージャ・コールにより前記プロセッサを介在させることなく所定の制御手段に実行させることで当該周辺ディバイスを動作可能にし、この動作により生じた情報を前記プロセッサに伝えることで当該周辺ディバイスを使用したエンタテインメント処理を遂行可能にするためのコンピュータプログラムである。
【００１４】
【発明の実施の形態】
以下、図面を参照して、本発明によるエンタテインメント装置の好ましい一実施形態を説明する。
【００１５】
《エンタテインメント装置の構成》
本実施形態によるエンタテインメント装置の構成例を図１に示す。
このエンタテインメント装置は、例えばゲーム装置として使用することができる一種のコンピュータであって、キュー１が設けられた中間バスＣＢによって接続されたメインバスＭＢ及びサブバスＳＢを備えており、このメインバスＭＢ及びサブバスＳＢに、種々の機能実現要素を接続することにより構成されている。
【００１６】
メインバスＭＢには、ＣＰＵ２、メモリ３、画像処理部４及び第２ＤＭＡＣ５が接続されている。サブバスＳＢには、ディスクドライブ６、Ｉ／Ｏプロセッサ７、音処理部８、セキュリティモジュール９、第１ＤＭＡＣ１０、コントローラ１１、メモリカード１２、ＲＯＭ１３が接続されている。
【００１７】
ＣＰＵ２は、マイクロプロセッサを含んで構成される半導体ディバイスである。マイクロプロセッサは、このエンタテインメント装置全体を統合的に制御し、エンタテインメント処理の一例となるゲーム処理と、ゲーム処理の際に必要となる種々のデータに基づく画像、音の再生処理とを遂行可能にする。また、ゲーム処理の遂行に先立って、エンタテインメント装置の起動時にサブバスＳＢに接続されたＲＯＭ１３から起動（Boot）プログラムを読み込んでその起動プログラムを実行し、カーネル機能を実現するためのＯＳを起動させるようになっている。
メモリ３は、ＣＰＵ２に作業領域を提供するもので、例えばＲＡＭにより構成されている。メモリ３には、後述の二次記録媒体Ｍから読み込まれたディジタル情報、例えばゲーム処理用のプログラムコード及びデータなどが展開されて書き込まれるようになっている。
尚、以後の説明において、ゲーム処理用のプログラムコードと周辺ディバイスを制御するために必要なプログラムコードとを区別する必要がある場合は、前者を「アプリケーション」、後者を「ディバイスドライバ」と称する。
【００１８】
画像処理部４は、ＣＰＵ２との協働により、メモリ３に展開されているディジタル情報に基づいて、図示を省略したディスプレイ装置に所望の画像を表示する上で必要となる画像データ、例えばゲームキャラクタ等を表現するためのポリゴンデータとその色情報を含むテクスチャデータとを生成する。
この画像処理部４は、具体的には、メモリ３に展開されているディジタル情報のうち、ゲーム処理の過程で読み出されたデータの座標変換などを行うジオメトリ処理ユニット、ジオメトリ処理の内容などを解読するデコーダ、ジオメトリ処理により得られたデータ（描画データ）に基づいて上記の画像データをフレーム単位で生成するレンダリング処理ユニット、生成した画像データを上記のディスプレイ装置に表示させる機構とを含んで構成される。
【００１９】
キュー１は、メインバスＭＢとサブバスＳＢとの間でやり取りされる情報、すなわち、ＲＰＣによる周辺ディバイスの制御に用いられる各種コマンド及びデータ類を一時的に記録しておくものである。この実施形態では、例えば、メモリ３とＩ／Ｏプロセッサ７相互間、メモリ３とコントローラ１１又はメモリカード１２相互間、或いは、これらのディバイスとその他のディバイスとの間でやり取りされる情報を待ち行列の形で一時的に記録する。
【００２０】
ディスクドライブ６は、例えばＣＤ−ＲＯＭ又はＤＶＤ−ＲＯＭからなる二次記録媒体Ｍを受け入れ、この二次記録媒体Ｍに記録されたアプリケーション、データその他のディジタル情報の読み取りを行うものである。アプリケーションは、例えば、ゲーム進行の制御、それに伴う画像及び音声の再生を行わせるためのプログラムコードであり、データは、上記の画像及び音声の再生に際して使用されるデータである。この実施形態では、アプリケーション及びデータが圧縮された後に、その一部が暗号化された状態で二次記録媒体に記録されているものとする。但し、暗号化は、圧縮されたアプリケーション及びデータのすべてについて行ってあっても構わない。
【００２１】
Ｉ／Ｏプロセッサ７は、ディスクドライブ６を制御して二次記録媒体Ｍから上述のアプリケーション及びデータの読み込みを行うとともに、セキュリティモジュール９と協働で、読み込んだディジタル情報の復号及び伸長を行う半導体ディバイスである。
Ｉ／Ｏプロセッサ７においてこれらの機能を実現するためのプログラム（制御プログラム）は、例えばＲＯＭ１３に記録されており、エンタテインメント装置の起動時に実行される。
【００２２】
セキュリティモジュール９は、エンタテインメント装置の安全性確保のために機能する専用のプロセッサ及びメモリを搭載した単一の半導体チップにより構成されている。このセキュリティモジュール９は、上述のＩ／Ｏプロセッサ７でディジタル情報の復号化処理を行う際に用いられる復号化鍵を保持しており、上述の復号化処理が行われる際に、Ｉ／Ｏプロセッサ７に対して必要な復号化鍵を送り出す。
尚、セキュリティモジュール９は、暗号化されたディジタル情報の復号化を単独でも行うことができるものである。
【００２３】
音処理部８は、図示せぬ所定のスピーカに接続されている。音処理部８は、Ｉ／Ｏプロセッサ７や後述の第１ＤＭＡＣ１０から送られるサウンドコマンドに対応したデータをそれが内蔵する図示せぬサウンドメモリから読み出すことによって音データを生成し、これを上述のスピーカに出力する。これにより、スピーカは、音処理部８の制御下で、ゲームの効果音や、映像に伴うＢＧＭなどの所定の音を出力することになる。
【００２４】
コントローラ１１及びメモリカード１２は、周辺ディバイスの一例となるもので、図示せぬ入力端子を介してサブバスＳＢに接続され、ディバイスドライバの実行によって動作可能になるものである。このように、本実施形態では、入力端子、サブバスＳＢ及びこのサブバスＳＢの制御機構（図示省略）により、ディバイス接続手段を構成している。
【００２５】
コントローラ１１は、エンタテインメント装置に対して遊技者の意思を入力するための入力装置として、例えば、上下左右方向へのカーソル移動の要求を入力したり、何らかの処理の実行についての要求を入力したりできるように動作する。
メモリカード１２は、フラッシュＲＯＭを所定サイズのカード媒体に内蔵したもので、ゲームが、その進行過程で、蓄積可能なゲームデータを生じさせるものである場合に、ゲームを楽しむ者が、そのゲームを途中で中断した時点又はゲームを終了した時点における上記ゲームデータを記録したりするためなどに使用される。尚、メモリカード１２に代えて、あるいはメモリカード１２と共にコントローラ１１にフラッシュＲＯＭが内蔵されている場合もある。
【００２６】
第１ＤＭＡＣ１０及び第２ＤＭＡＣ５は、協働して、上述のＩ／Ｏプロセッサ７によるＲＰＣをＤＭＡで行えるようにするものである。
第１ＤＭＡＣ１０は、少なくともコントローラ１１及び／又はメモリカード１２とキューとの間で受け渡される情報の読み出し及び書き込みを制御する。第２ＤＭＡＣ５は、少なくともメモリ３とキュー１との間で受け渡される情報の読み出し及び書き込みを制御する。
尚、この実施形態では、バスの数にあわせてＤＭＡＣを２種類設けているが、第１ＤＭＡＣ１０と第２ＤＭＡＣ５を一つの制御モジュールで実現しても良い。
【００２７】
《カーネル機能実現構造》
本実施形態では、実行中のアプリケーションからコントローラ１１への要求のすべてを、ＤＭＡによるＲＰＣで行う。そのために、コントローラ１１を所要の態様で動作させたりするためのディバイスドライバをカーネルの外部の保持手段、例えばＲＯＭ１３、二次記録媒体Ｍ、あるいはメモリカード１２のフラッシュＲＯＭに記録しておき、アプリケーションの実行中にＩ／Ｏプロセッサ７などを通じて、そのディバイスドライバを実行する。便宜上、本例では、ＲＯＭ１３にディバイスドライバが記録されているものとする。
【００２８】
以上のような機能を実現するためのカーネルは、図２に示される構造を有するものとなる。すなわち、カーネルの内部には、タスク管理を司る機能と割込制御を司る機能とが形成される。従来のこの種のエンタテインメント装置のカーネル（マイクロカーネルを除く）は、内部に周辺ディバイスのディバイスドライバも記録されるようになっているが、このエンタテインメント装置では、ディバイスドライバは、カーネル外部の保持手段に保持されるようになっている。コントローラ１１などの周辺ディバイスの制御が必要になる場合は、その周辺ディバイスのディバイスドライバをＲＰＣにより保持手段から読み出してＩ／Ｏプロセッサ７などに実行させる。これにより、当該周辺ディバイスが動作可能になる。
周辺ディバイスの制御をＲＰＣによって行う場合、ＲＰＣによる実行結果の情報は、いわゆる「戻値」としてカーネルに転送されるが、この場合の転送をＤＭＡによって行うようにすることで、周辺ディバイスの高速制御が可能になる。
【００２９】
《カーネルによる周辺ディバイスの制御方法》
次に、上記のカーネル機能実現構造を有するエンタテインメント装置における周辺ディバイスの制御方法を、図３〜図５を参照して説明する。
ここでは、カーネルが有する種々の機能のうち、周辺ディバイスの動作を制御する機能の部分について説明する。周辺ディバイスは、上述のコントローラ１１を例に挙げるが、メモリカード１２及びエンタテインメント装置と接続され得る他のディバイスについても同様となる。ＲＰＣは、それ専用の通信プロトコルではなく、装置内で共通に使用される通信プロトコルにより行われる。
【００３０】
（アプリケーション→コントローラ１１：図３、図４）
図３のように、メモリ３に展開されているプログラムコード及びデータに基づいてＣＰＵ２がアプリケーションを実行している過程で（ステップＳ１０１）、コントローラ１１に対する何らかの働きかけを行いたい場合には、そのためのＲＰＣ要求がそのアプリケーションから発せされる（ステップＳ１０２）。例えば、コントローラ１１が振動発生機構を備えており、ゲームの所定の場面でこの振動発生機構を動作させて何らかの演出効果を生じさせたい場合には、振動発生機構を動作させるために必要な情報が、アプリケーションから発せされる。
この情報は、第２ＤＭＡＣ５を通じてメモリ３からＤＭＡによってキュー１に転送され、待ち行列の形で一時記録される（ステップＳ１０３、Ｓ１０４）。
図４に移り、Ｉ／Ｏプロセッサ７は、キュー１に記録されている情報に基づいてＲＯＭ１３のディバイスドライバを探しだし、これを実行する（ステップＳ１０５、Ｓ１０６）。
このようにして、アプリケーションからの要求内容が、ＣＰＵ２を介在せずにコントローラ１１に伝わる（ステップＳ１０７）。
【００３１】
（コントローラ１１→アプリケーション：図４、図５）
図４において、コントローラ１１で生じたデータ、例えば、ゲームを楽しむ者がコントローラ１１を通じて入力した情報、あるいは、コントローラ１１がアナログ入力、ディジタル入力の双方に対応するものである場合にどちらの入力形態が採用されているかといったことについての情報は、第１ＤＭＡＣ１０を通じてキュー１に一時記録される（ステップＳ２０２）。
図５に移り、キュー１に記録されたデータは、第２ＤＭＡＣ５で適宜のタイミングで読み込まれてメモリ３に転送される（ステップＳ２０３）。メモリ３にデータが記録されたことは、第２ＤＭＡＣ５を通じてＣＰＵ２に伝わる（ステップＳ２０４，Ｓ２０５）。ＣＰＵ２は、メモリ３に記録されたデータを、アプリケーションの継続実行用のデータとして使用する（ステップＳ２０６）。例えば、コントローラ１１において右方向に対応するキー入力があった場合には、ディスプレイ装置に表示される所定のキャラクタを右向きに移動させるといった利用がなされる。
【００３２】
このようにして、アプリケーションからコントローラ１１への要求と、その結果を表すデータのアプリケーションへの受け渡しがＤＭＡによって容易に実現される。その際、必要な要求及びデータは、ＣＰＵ２による直接の処理を経ずに、メモリ３に転送されて記録される。ＲＰＣは、並行プログラミングと親和性の高い機構である。そのため、ＣＰＵ２がＩ／Ｏプロセッサ７の応答を長時間待つことがない。従って、従来、多くのＩ／Ｏプロセッサをもつシステムで問題となっていた、情報の転送／複製、回数を減少させることができ、ＣＰＵ２の実質的な稼働率を高効率に保てるようになる。
【００３３】
このように、本実施形態のエンタテインメント装置では、コントローラ１１を使用したエンタテインメント処理を遂行する際に、そのコントローラ１１についてのディバイスドライバをＲＰＣにより実行させるようにしたので、ディバイスドライバをカーネル外部に出すだけでなく、カーネルが管理するリソース（ＣＰＵ／メモリ）の外部に出すことが可能になり、エンタテインメント処理の実行効率の向上を図ることができる。
【００３４】
また、ＲＰＣをＤＭＡにより行うようにしたので、コントローラ１１から直接メモリ３へのデータ転送が可能になり、ＣＰＵ２におけるデータの転送、複製の回数を減少させることができるようになる。
【００３５】
また、コントローラ１１とキュー1との間のデータ受け渡しと、キュー１とＣＰＵ２（カーネル）との間のデータ受け渡しとを、互いに非同期のＤＭＡによって行うようにしたので、アプリケーションからの要求とコントローラ１１で生じるデータの発生タイミングが多少ずれていても、安定的なデータの受け渡しが可能になる。
また、この受け渡しを装置内で共通の通信プロトコルベースで行えるようにしたので、ディバイスドライバの種類によらない汎用的な制御形態が可能になる。
【００３６】
なお、本実施形態では、図１に示した構成のエンタテインメント装置を用いて実現した特徴的なカーネルと、このカーネルによる周辺ディバイスの制御方法の例を説明したが、本発明は、上記の実施形態のほか、ＯＳを搭載した汎用のコンピュータに事後的にコンピュータプログラム（アプリケーション、ディバイスドライバを除く）を読み込ませて実行させることによっても実施することが可能である。
また、プロセッサ及びそのプロセッサに所要の機能を形成させるためのプログラムを搭載した一又は複数の半導体ディバイスと上記のコンピュータと協働して、上記のカーネルと周辺ディバイスの制御方法を実施することも可能である。
【００３７】
【発明の効果】
以上の説明から明らかなように、本発明によれば、周辺ディバイスを高速に制御できるエンタテインメント装置及びそれを実現可能とする技術を提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態によるエンタテインメント装置のハードウエア構成を示す図。
【図２】本実施形態によるカーネルの構造説明図。
【図３】アプリケーションからコントローラに対する何らかの働きかけを行いたい場合の処理手順を示した説明図。
【図４】キューを介した情報（データ）の受け渡しの処理手順を示した説明図。
【図５】コントローラで生じたデータをアプリケーションに伝える場合の処理手順を示した説明図。
【符号の説明】
１  キュー
２  ＣＰＵ
３  メモリ
５，１０  ＤＭＡＣ
６  ディスクドライブ
７  Ｉ／Ｏプロセッサ
９  セキュリティモジュール
１１  コントローラ
１２  メモリカード
１３  ＲＯＭ
【図１】
0003696515.tif 000002
【図２】
0003696515.tif 000003
【図３】
0003696515.tif 000004
【図４】
0003696515.tif 000005
【図５】
0003696515.tif 000006