(57)【特許請求の範囲】
【請求項１】
メインプロセッシングユニットおよびグラフィックスプロセッサと、入出力用サブ・プロセッサと、可搬記録媒体から情報を読み出す情報読み出し手段と、を備え、前記メインプロセッシングユニットおよびグラフィックスプロセッサと、前記入出力用サブ・プロセッサとは、それらの動作モードとして第１のモードおよび第２のモードを有し、
前記第１のモードでは、
前記メインプロセッシングユニットが、メインＣＰＵとして機能し、前記グラフィックスプロセッサが、前記メインプロセッシングユニットの指示に従って描画プロセッサとして機能するとともに、前記入出力用サブ・プロセッサが、前記メインプロセッシングユニットと周辺装置との間のデータのやりとりを制御するＩ／Ｏプロセッサとして機能し、
前記第２のモードでは、
前記入出力用サブ・プロセッサが、メインＣＰＵとして機能するとともに、前記メインプロセッシングユニットおよびグラフィックスプロセッサが描画プロセッサとして機能し、前記メインプロセッシングユニットは、前記入出力用サブ・プロセッサから渡される描画コマンドを、前記グラフィックスプロセッサ用の描画コマンドに変換して、前記グラフィックスプロセッサに渡して、描画処理させ、
前記メインプロセッシングユニットおよびグラフィックスプロセッサと、入出力用サブ・プロセッサとは、電源オン時またはリセットスイッチオン時に前記第１のモードとなり、前記第１のモードにおいて、前記メインプロセッシングユニットが、前記可搬記録媒体の種類によって、前記第２のモードで動作するか否かを判別して、前記第２のモードで動作すべきと判別した時、前記入出力用サブ・プロセッサをリセットして、当該入出力用サブ・プロセッサをメインＣＰＵとして機能させることにより前記第２のモードとなること、
を特徴とするエンタテインメント装置。
【請求項２】
前記入出力用サブ・プロセッサには、第１および第２のクロックが供給され、
前記入出力用サブ・プロセッサは、
前記第１のモードの場合には、前記第１のクロックに同期して動作を行い、
前記第２のモードの場合には、前記第２のクロックに同期して動作を行う
ことを特徴とする請求項１に記載のエンタテインメント装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゲーム等を実行するためのエンタテインメント装置に関し、特に、旧機種との互換性を確保可能なエンタテインメント装置に関する。並びに、エンタテインメント装置に用いることができるコンピュータ装置に関する。
【０００２】
【従来の技術】
近年、半導体技術等の進歩に伴い、より高性能な家庭用ビデオゲーム機が開発・販売されてきている。このような新型のビデオゲーム機は、一般に、同一メーカから出されたものであっても、旧機種との互換性はとられていなかった。すなわち、新機種を購入したユーザは、旧機種のゲームソフトを持っていても、新機種では使うことができなかった。
【０００３】
【発明が解決しようとする課題】
しかしながら、過去のソフトウェア（タイトル）の蓄積を無駄にしないためにも、新機種でも、旧機種用のソフトウェアが実行できた方が望ましい。
【０００４】
本発明の目的は、旧機種用のソフトウェアが実行できるエンタテインメント装置を提供することにある。
また、本発明の他の目的は、前記エンタテインメント装置に用いることができるコンピュータシステムを提供することにある。
【０００５】
【課題を解決するための手段】
本発明に係るエンタテインメント装置は、第１のプロセッサ手段と、第２のプロセッサ手段とを備える。第１のプロセッサ手段および第２のプロセッサ手段は、それらの動作モードとして第１のモードおよび第２のモードを有する。そして、第１のモードでは、前記第１のプロセッサ手段がメインＣＰＵおよび描画プロセッサとして機能するとともに、前記第２のプロセッサ手段がＩ／Ｏプロセッサとして機能する。一方、第２のモードでは、前記第２のプロセッサ手段がメインＣＰＵとして機能するとともに、前記第１のプロセッサ手段が描画プロセッサとして機能する。
【０００６】
この場合において、前記第２のプロセッサ手段は、２種類のリセット方法を有し、第１のリセット方法でリセットされた場合は、Ｉ／Ｏプロセッサとしての動作を行い、第２のリセット方法でリセットされた場合は、メインＣＰＵとしての動作を行うようにしてもよい。更に、前記第２のプロセッサ手段には、第１および第２のクロックが供給され、前記第１のリセット方法でリセットされた場合は、前記第１のクロックに同期して動作を行い、前記第２のリセット方法でリセットされた場合は、前記第２のクロックに同期して動作を行うようにしてもよい。
【０００７】
また、可搬記録媒体から情報を読み出す情報読み出し手段を更に備え、前記記録媒体の種類によって、第２のモードで動作するか否かを判別するようにしてもよい。前記可搬記録媒体には、例えば、ＣＤやＤＶＤ等が該当する。
【０００８】
また、前記第１のプロセッサ手段は、例えば、マイクロプロセッサとグラフィックスプロセッサとから構成される。この場合、第２のモードでは、前記第２のプロセッサ手段から渡される描画コマンドを、前記マイクロプロセッサが、前記グラフィックスプロセッサ用の描画コマンドにソフトウェア的に変換して、前記グラフィックスプロセッサに渡すようにしてもよい。
【０００９】
本発明に係るコンピュータシステムは、少なくとも二種類の実行モードを有するコンピュータシステムである。そして、プログラムが記録された記録媒体の物理的特性に応じて、異なる周波数および実行モードでブートすることを特徴とする。また、プログラムが記録されている記録媒体の識別信号に応じて、異なる周波数および実行モードで起動することを特徴とする。例えば、プログラムが記録された記録媒体がＣＤかＤＶＤかによって、異なる周波数および実行モードでブートする。
【００１０】
本発明に係るプログラムの起動方法は、複数種類の記録媒体からプログラムを読み出して実行できるコンピュータにおけるプログラムの起動方法であって、プログラム起動時に、前記記録媒体に対応した画面を最初に表示することを特徴とする。
【００１１】
本発明に係るエミュレーション方法は、異なるシステム上のプログラムをソフトウェアエミュレーションする方法であって、プログラム固有のシリアル番号によって、動作のタイミングパラメータを変更することを特徴とする。
【００１２】
【発明の実施の形態】
以下、図面を用いて、本発明の実施の形態について詳細に説明する。
【００１３】
図１は、本発明によるエンタテインメント装置の構成を示すブロック図である。
【００１４】
同図に示すように、本エンタテインメント装置は、ＭＰＵ（メインプロセシングユニット）１００と、ＧＰ（グラフィックスプロセッサ）１１０と、ＩＯＰ（入出力用サブ・プロセッサ）１２０と、ＣＤ／ＤＶＤデコーダ１３０と、ＳＰＵ（サウンド再生処理プロセッサ）１４０と、ＯＳＲＯＭ（リードオンリーメモリ）１５０と、メインメモリ１６０と、ＩＯＰメモリ１７０とを備える。
【００１５】
そして、ＭＰＵ１００とＧＰ１１０とは、専用バス１０１によって接続されている。また、ＭＰＵ１００とＩＯＰ１２０とは、ＳＢＵＳと呼ばれるバス１０２によって接続されている。また、ＩＯＰ１２０、ＣＤ／ＤＶＤデコーダ１３０、ＳＰＵ１４０及びＯＳＲＯＭ１５０は、ＳＳＢＵＳと呼ばれるバス１０３に接続されている。
【００１６】
また、ＭＰＵ１００には、メインメモリ１６０が接続され、ＩＯＰ１２０には、ＩＯＰメモリ１７０が接続されている。更に、ＩＯＰ１２０には、コントローラ（ＰＡＤ）１８０が接続される。
【００１７】
ＭＰＵ１００は、本エンタテインメント装置のメインＣＰＵ（中央演算ユニット）である。ＭＰＵ１００は、ＯＳＲＯＭ１５０に格納されたプログラムを実行すること、また、ＣＤまたはＤＶＤからメインメモリ１６０にロードされたプログラムを実行することによって、所定の処理を行う。
【００１８】
ＧＰ１１０は、本エンタテインメント装置のレンダリングの機能を受け持つ。ＧＰ１１０は、ＭＰＵ１００からの指示に従って、描画処理を行う。
【００１９】
ＩＯＰ１２０は、ＭＰＵ１００と周辺装置（ＣＤ／ＤＶＤデコーダ１３０、ＳＰＵ１４０等）との間のデータのやり取りを制御する。
【００２０】
ＣＤ／ＤＶＤデコーダ１３０は、ＣＤやＤＶＤからデータを読み出し、メインメモリ１６０への転送を行う。
【００２１】
ＳＰＵ１４０は、サウンドバッファ（不図示）に格納された圧縮波形データを、ＭＰＵ１００等からの発音命令に基づいて、所定のサンプリング周波数で再生する。
【００２２】
ＯＳＲＯＭ１５０は、起動時等にＭＰＵ１００やＩＯＰ１２０が実行するプログラムが格納されているＲＯＭである。ＯＳＲＯＭ１５０には、ＭＰＵ１００及びＩＯＰ１２０が共用するコード並びに各プロセッサ専用のコードが分離して格納されている。ＭＰＵ１００専用のコード（プログラム）には、例えば、後述するＧＰＵエミュレータがある。
【００２３】
メインメモリ１６０は、ＭＰＵ１００の主記憶であり、ＭＰＵ１００が実行する命令やＭＰＵ１００が利用するデータ等が格納される。
【００２４】
ＩＯＰメモリ１７０は、ＩＯＰ１２０の主記憶である。このＩＯＰメモリ１７０には、ＩＯＰ１２０が実行する命令、ＩＯＰ１２０が利用するデータ等が格納される。
【００２５】
コントローラ（ＰＡＤ）１８０は、ゲーム等の実行中に、プレイヤーの意図をアプリケーション等に伝達するインタフェースである。このコントローラ１８０は、操作部を有する。そして、操作部がプレイヤーによって操作されることに伴って、信号が出力される。
【００２６】
次に、既存のエンタテインメント装置の構成について説明する。このエンタテインメント装置は、前述したような構成を有するエンタテインメント装置が互換性を確保しようとする対象である。
【００２７】
図２は、既存のエンタテインメント装置の構成を示すブロック図である。同図に示すように、既存のエンタテインメント装置は、ＣＰＵ（中央処理ユニット）２２０と、ＧＰＵ（グラフィックスプロセッサ）２１０と、ＣＤデコーダ２３０と、ＳＰＵ（サウンド再生処理プロセッサ）２４０と、ＯＳＲＯＭ（リードオンリーメモリ）２５０と、メインメモリ２７０とを備える。
【００２８】
そして、ＣＰＵ２２０には、ＧＰＵ２１０及びメインメモリ２７０がそれぞれ接続されている。また、ＣＰＵ２２０、ＣＤ−ＲＯＭデコーダ２３０、ＳＰＵ２４０及びＯＳＲＯＭ２５０は、バス２９０に接続されている。更に、ＣＰＵ２２０には、コントローラ（ＰＡＤ）２８０が接続される。
【００２９】
ＣＰＵ２２０は、ＯＳＲＯＭ２５０に格納されたプログラムや、ＣＤからメインメモリ２７０にロードされたプログラムを実行することによって、所定の処理を行う。ＣＰＵ２２０の動作周波数は、例えば、３３ＭＨｚである。
【００３０】
ＧＰＵ２１０は、ＣＰＵ２２０からの指示に従って、描画処理を行う。ＧＰＵ２１０は、画像表示のためのＣＲＴＣ機能、および、フレームバッファ（不図示）に対するポリゴンの描画機能を備えている。
【００３１】
ＣＤ−ＲＯＭデコーダ２３０は、ＣＤからデータを読み出し、メインメモリ２７０への転送を行う。
【００３２】
ＯＳＲＯＭ２５０は、起動時等にＣＰＵ２２０によって実行されるプログラムが格納されているＲＯＭである。
【００３３】
メインメモリ２７０は、ＣＰＵ２２０の主記憶であり、ＣＰＵ２２０が実行する命令やＣＰＵ２２０が利用するデータ等が格納される。
【００３４】
コントローラ（ＰＡＤ）２８０は、ゲーム等の実行中に、プレイヤーの意図をアプリケーション等に伝達するインタフェースである。
【００３５】
以上のような構成を有する既存のエンタテインメント装置との互換性を確保するため、本エンタテインメント装置は、第１のモードと第２のモードの２つの動作モードを有する。前記第１のモードは、当該装置について通常の動作を行う通常モードであり、前記第２のモードは、他機種との互換性を想定して動作する互換モードである。そして、本エンタテインメント装置は、通常は、通常モードで起動され、通常モードで動作する。しかし、本エンタテインメント装置は、既存のエンタテインメント装置用のタイトル（ソフトウェア）を実行するときは、互換モードに移行する。
【００３６】
そして、互換モードでは、ＩＯＰ１２０がＣＰＵ２２０として動作し、ＭＰＵ１００及びＧＰ１１０がＧＰＵ２１０をエミュレートすることによって、既存のエンタテインメント装置用のタイトルを実行する。
すなわち、本エンタテインメント装置では、ＭＰＵ１００及びＧＰ１１０を有する第１のプロセッサ手段と、ＩＯＰ１２０を有する第２のプロセッサ手段とが存在する。そして、通常モードでは、第１のプロセッサ手段がメインＣＰＵおよび描画プロセッサとして機能すると共に、第２のプロセッサ手段がＩ／Ｏプロセッサとして機能する。一方、互換モードでは、第２のプロセッサ手段がメインＣＰＵとして機能するとともに、前記第１のプロセッサ手段が描画プロセッサとして機能する。
【００３７】
そのため、ＩＯＰ１２０は、ＣＰＵ２２０と同一なプロセッサ・コアを備えている。すなわち、ＩＯＰ１２０は、既存のエンタテインメント装置のＣＰＵ２２０用に用意されたプログラム・コードをそのまま実行でき、同じ動作を行う。なお、ＩＯＰ１２０のプロセッサ・コアは、既存のエンタテインメント装置のＣＰＵ２２０用に用意されたプログラム・コードをそのまま実行でき、同様の動作を行うもの（例えば、バイナリ・コンパティブルなプロセッサ・コア）であればよい。本実施形態では、既存のエンタテインメント装置との下位互換性をより高くするため、同一のプロセッサ・コアを用いている。
【００３８】
更に、ＩＯＰ１２０の動作周波数は、通常モードでは、例えば、３７．５ＭＨｚであるが、互換モードでは、既存のエンタテインメント装置と同じ３３ＭＨｚに切り替わる。これにより、ゲーム・ソフトウェア側が既存のエンタテインメント装置のハードウェアに対して、１クロックのレベルで動作を最適化している場合であっても、確実に動作させることが可能になる。この動作周波数の切り替え方法については後述する。
【００３９】
また、ＭＰＵ１００及びＩＯＰ１２０は、両者間のインタフェースを動作モードに応じて切り替える。すなわち、互換モードでは、ＩＯＰ１２０は、ＭＰＵ１００に対して、ＣＰＵ２２０と同じインタフェースを提供し、ＭＰＵ１００も、ＩＯＰ１２０に対して、ＧＰＵ２１０と同じインタフェースを提供する。このインタフェースの切り替えの詳細については、後述する。
【００４０】
更に、ＳＰＵ１４０も互換モードと通常モードとで、動作を切り替える。すなわち、互換モードでは、既存のエンタテインメント装置のＳＰＵ２４０とまったく同じものとして動作する。一方、通常モードでは、ＳＰＵ２４０より高性能なサウンド処理プロセッサとして動作する。また、ＳＰＵ１４０の動作周波数は、互換モードでは、ＣＤ−ＲＯＭのサンプリング周波数に対応して、４４．１ＫＨｚとなり、通常モードでは、ＤＶＤのサンプリング周波数に対応して、４８ＫＨｚとなる。
次に、動作モードの判定方法の概要について説明する。
【００４１】
本エンタテインメント装置は、電源が投入されると、ＣＤ／ＤＶＤデコーダ１３０が通常モードで立ち上がり、ＣＤ／ＤＶＤドライブに搭載されているディスクが本エンタテインメント装置用のものか既存のエンタテインメント装置用のものかを判別する。判別の結果、ドライブに本エンタテインメント装置用のＣＤ／ＤＶＤディスクが入っている場合、または、なにも入っていない場合は、通常モードのまま立ち上がる。一方、ドライブに入っているディスクが既存のエンタテインメント装置用のＣＤであった場合は、互換モードに移行する。
【００４２】
次に、本エンタテインメント装置の各構成要素の詳細について説明する。
【００４３】
まず、ＭＰＵ１００の内部構成について説明する。
【００４４】
図３は、ＭＰＵ１００の内部構成を示す図である。同図に示すように、ＭＰＵ１００は、プロセッサ・コア３００と、ベクトル演算ユニット３１０（ＶＰＵ０）と、ベクトル演算ユニット３２０（ＶＰＵ１）と、ＧＩＦ（グラフィカル・インタフェース・ユニット）３３０と、ＤＭＡコントローラ（Direct Memory Access Controller）３４０と、ＩＰＵ（画像データプロセッサ）３５０と、メモリインタフェース部３６０と、ＩＯＰインタフェース部３７０とを備える。各部は、それぞれ、内部バス３８０に接続されている。内部バス３８０は、プロセッサ・コア３００のクロック周波数（３００ＭＨｚ）の半分（１５０ＭＨｚ）で動作する。
【００４５】
プロセッサ・コア３００は、ＭＰＵ１００のメインユニットで、他のユニットを制御して、所定の処理を行う。
【００４６】
ベクトル演算ユニット３１０、３２０は、ジオメトリ演算を高速に処理するために設けられたコプロセッサである。ベクトル演算ユニット３１０は、プロセッサ・コア３００に直結され、プロセッサ・コア３００のコプロセッサとして動作する。ベクトル演算ユニット３１０は、４個の浮動小数点積和演算ユニットと１個の浮動小数点除算ユニットを持っている。
【００４７】
ベクトル演算ユニット３２０は、ジオメトリ・エンジンとして動作する。ベクトル演算ユニット３１０と同じ演算ユニットに加えて、初等関数を計算する演算ユニット(Elementary-Function Unit)を持つ。ベクトル演算ユニット３２０は、ＧＩＦ３３０に直結されている。
【００４８】
ＧＩＦ３３０は、ＧＰ１１０とのデータをやり取りする。ベクトル演算ユニット３１０、３２０によって生成されたポリゴン・ディスプレイ・リストは、ＧＩＦ３３０によって、専用の６４ビットバス１０１上を１５０ＭＨｚで、ＧＰ１１０へ転送される。
【００４９】
ＤＭＡコントローラ３４０は、プロセッサ・コア３００からの指示により、メインメモリ１６０と、プロセッサ・コア３００やベクトル演算ユニット３１０、３２０等との間のデータ転送を行う。
【００５０】
ＩＰＵ３５０は、ＭＰＥＧ２（Moving Picture Experts Group Phase 2）ビットストリームの展開とマクロブロック復号を主な機能とする。
【００５１】
メモリインタフェース部３６０は、メインメモリ１６０に対するデータの読み書きを行うためのインタフェース部である。
【００５２】
ＩＯＰインタフェース部３７０は、ＭＰＵ１００とＩＯＰ１２０との間でデータのやり取りの行うためのインタフェース部である。ＩＯＰインタフェース部３７０の詳細については、後述する。
【００５３】
次に、ＧＰ１１０の内部構成について説明する。
【００５４】
図４は、ＧＰ１１０の内部構成を示す図である。同図に示すように、ＧＰ１１０は、ホストインタフェース部４００と、描画機能ブロック４１０と、ローカルメモリ４２０と、ＣＲＴＣ(CRT controller)部４３０とを備える。
【００５５】
ホストインタフェース部４００は、ＭＰＵ１００との間でデータのやり取りを行うためのインタフェース部である。
【００５６】
描画機能ブロック４１０は、ＭＰＵ１００からの指示に基づいて、レンダリング処理を行う論理回路部である。描画機能ブロック４１０は、ディジタル・ディファレンシャル・アナライザ（ＤＤＡ）とピクセル・エンジンをそれぞれ１６個備える。この描画機能ブロック４１０は、６４ビット（色情報３２ビット、Ｚ値３２ビット）の画素データを、最大１６個並列処理する。ＤＤＡは、ＲＧＢ値、Ｚ値、テクスチャ値などを計算する。これらのデータを基に、ピクセル・エンジンは、最終的なピクセル・データを生成する。
【００５７】
ローカルメモリ４２０は、描画機能ブロック４１０によって生成されたピクセル・データやＭＰＵ１００から転送されたテクスチャ・データ等を格納する。
【００５８】
ＣＲＴＣ部４３０は、指定された出力フォーマット（ＮＴＳＣ、ＰＡＬ、ＶＥＳＡフォーマット等）に従って、ローカルメモリ４２０のフレームバッファ領域の内容を映像信号として出力する。
【００５９】
次に、ＩＯＰ１２０の内部構成について説明する。
【００６０】
図５は、ＩＯＰ１２０の内部構成を示す図である。同図に示すように、ＩＯＰ１２０は、プロセッサ・コア５００と、ＭＰＵインタフェース部５１０と、ＳＳＢＵＳインタフェース部５２０と、メモリコントローラ５３０と、シリアル入出力部５４０と、ＤＭＡコントローラ５５０とを備える。
【００６１】
プロセッサ・コア５００は、ＩＯＰ１２０全体の動作を制御する制御部である。前述したように、プロセッサ・コア５００は、既存のエンタテインメント装置のＣＰＵ２２０のプロセッサ・コアと同一のものである。
【００６２】
ＭＰＵインタフェース部５１０は、ＭＰＵ１００とのデータのやり取りを行うためのインタフェース部である。ＭＰＵインタフェース部５１０の詳細については後述する。
【００６３】
ＳＳＢＵＳインタフェース部５２０は、ＳＳＢＵＳ１０３とのデータのやり取りを行うためのインタフェース部である。
【００６４】
シリアルＩ／Ｏ部５４０は、ＩＯＰ１２０に接続されたコントローラ１８０との間でデータのやり取りを行うためのインタフェース部である。
【００６５】
ＤＭＡコントローラ５５０は、ＩＯＰメモリ１７０とＩＯＰ１２０の構成要素との間でデータのやり取りを行う。
【００６６】
メモリコントローラ５３０は、ＩＯＰメモリ１７０に対するデータの読み書きを制御するコントローラである。
【００６７】
次に、通常モードから互換モードへの切り替え方法について説明する。
【００６８】
本エンタテインメント装置では、通常モードから互換モードへの切り替えをリセット信号（ＳＲＥＳＥＴ）を使って行う。このため、本エンタテインメント装置では、２系統のリセット信号（ＲＥＳＥＴ及びＳＲＥＳＥＴ）を設けている。
【００６９】
図６は、本エンタテインメント装置におけるリセット信号の接続形態を示す図である。
【００７０】
同図に示すように、電源コントロール／リセットＩＣ６１０から出力されたＲＥＳＥＴＩＮ信号は、リセット制御回路６３０及びＯＲ回路６４０、６５０に入力される。リセット制御回路６３０から出力された制御信号（ＣＴＬ１、ＣＴＬ２）は、ＯＲ回路６４０、６５０に入力される。ＯＲ回路６４０から出力されたＲＥＳＥＴ１信号は、ＭＰＵ１００及びＧＰ１１０に入力される。また、ＯＲ回路６５０から出力されたＲＥＳＥＴ２信号は、ＩＯＰ１２０及びＳＰＵ１４０等のＳＳＢＵＳ１０３上のデバイスに入力される。また、ＩＯＰ１２０及びＳＰＵ１４０等には、ＭＰＵ１００から出力されるＳＲＥＳＥＴ信号も入力される。
【００７１】
以上のような接続形態において、電源が投入されたり、または、リセットスイッチ６２０が押されたりすると、まず、電源コントロール／リセットＩＣ６１０が、ＲＥＳＥＴＩＮ信号をアサートする。電源コントロール／リセットＩＣ６１０は、全ての電源が立ち上がって、所定時間が経過すると、ＲＥＳＥＴＩＮ信号をネゲートする。
【００７２】
リセット制御回路６３０は、ＲＥＳＥＴＩＮ信号がアサートされると、ＯＲ回路６４０、６５０に対する制御信号（ＣＴＬ１、ＣＴＬ２）をアサートする。そして、所定時間経過後、まず、ＩＯＰ１２０、ＳＰＵ１４０に供給されているＲＥＳＥＴ信号（ＲＥＳＥＴ２）をネゲートするため、ＯＲ回路６５０に対する制御信号（ＣＴＬ２）をネゲートする。その後、ＭＰＵ１００、ＧＰ１１０に供給されているＲＥＳＥＴ信号（ＲＥＳＥＴ１）をネゲートするため、ＯＲ回路６４０に対する制御信号（ＣＴＬ１）をネゲートする。このようにＲＥＳＥＴ信号の解除のタイミングをＭＰＵ１００等とＩＯＰ１２０等とでずらしている理由は、ＩＯＰ１２０がある程度確実に動作を開始してから、ＭＰＵ１００、ＧＰ１１０が動作を開始するようにするためである。
【００７３】
ＲＥＳＥＴ信号（ＲＥＳＥＴ１、ＲＥＳＥＴ２）でリセットされた、ＭＰＵ１００、ＩＯＰ１２０、ＳＰＵ１４０等は、まず、通常モードでの動作を開始する。
【００７４】
そして、必要な初期化処理終了後、前述した動作モードの判定結果に従って、互換モードに移行する場合は、ＭＰＵ１００が、ＳＲＥＳＥＴ信号をアサートする。このＳＲＥＳＥＴ信号によりリセットされたＩＯＰ１２０及びＳＰＵ１４０等は、それぞれ互換モードでの動作を開始する。
【００７５】
前述したように、互換モードに移行する際は、ＩＯＰ１２０等の動作周波数の切り替えも行われる。次に、この動作周波数の切り替えについて説明する。
【００７６】
図７は、本エンタテインメント装置におけるクロック信号の接続形態を示す図である。
【００７７】
同図に示すように、クロック発生器７００によって発生された４００ＭＨｚのクロックは、ＭＰＵ１００に供給される。ＭＰＵ１００は、このクロックを、内部のＰＬＬ（Phase-Locked Loop）回路７１０で、３００ＭＨｚ、１５０ＭＨｚ、３７．５ＭＨｚのクロックに変換する。
【００７８】
ＭＰＵ１００は、３００ＭＨｚのクロックをプロセッサ・コア３００の動作基準クロックとして使い、１５０ＭＨｚのクロックを内部バス３８０のバスクロックとして使う。また、１５０ＭＨｚのクロックは、ＧＰ１１０へのデータ転送の基準クロックしても使われる。また、ＭＰＵ１００は、３７．５ＭＨｚのクロックを、通常モード時の動作基準クロックとしてＩＯＰ１２０に供給する。
【００７９】
一方、ＩＯＰ１２０には、クロック発生器７２０によって発生された６６ＭＨｚのクロックも供給されている。ＩＯＰ１２０は、このクロックを、内部の周波数変換回路７３０によって、３３ＭＨｚのクロックに変換し、この３３ＭＨｚのクロックを、マルチプレクサ(MUX)７４０に供給するとともに、互換モード時のＭＰＵ１００との通信のため、通信同期クロックとして、ＭＰＵ１００に供給する。ＭＰＵ１００は、この３３ＭＨｚのクロック（ＰＧＣＬＫ）を互換モード時のＩＯＰ１２０との通信に利用する。
【００８０】
マルチプレクサ７４０は、ＩＯＰ１２０の動作基準クロックを選択するためものであり、ＭＰＵ１００から供給される３７．５ＭＨｚのクロックと、周波数変換回路７３０から出力される３３ＭＨｚのクロックが入力される。そして、マルチプレクサ７４０は、ＩＯＰ１２０がＲＥＳＥＴ信号（ＲＥＳＥＴ２）によってリセットされた場合は、基準クロックとして、３７．５ＭＨｚのクロックを選択して出力する。一方、ＳＲＥＳＥＴ信号によりリセットされた場合は、基準クロックとして、３３ＭＨｚのクロックを選択して出力する。
【００８１】
ＩＯＰ１２０は、マルチプレクサ７４０から出力された基準クロックに同期して、動作を行う。また、マルチプレクサ７４０から出力された基準クロックは、ＳＳＢＵＳ上のデバイス（ＳＰＵ１４０等）にも供給される。
【００８２】
従って、ＩＯＰ１２０及びＳＰＵ１４０等の基準クロックは、ＲＥＳＥＴ信号でリセットされた場合は、３７．５ＭＨｚとなり、ＳＲＥＳＥＴ信号でリセットされた場合は、３３ＭＨｚ（既存のエンタテインメント装置と同一の周波数）になる。
【００８３】
前述したように、互換モードに移行する際は、ＭＰＵ１００とＩＯＰ１２０との間のインタフェースの切り替えも行われる。次に、このインタフェースの切り替えについて説明する。
【００８４】
図８は、ＭＰＵ１００内のＩＯＰインタフェース３７０、及び、ＩＯＰ１２０内のＭＰＵインタフェース部５１０の内部構成を示す図である。
【００８５】
同図に示すように、ＩＯＰインタフェース部３７０は、ＳＩＦ（ＳＢＵＳインタフェース）部８００と、ＰＧＰＵインタフェース（疑似ＧＰＵインタフェース）部８１０とを備える。また、ＭＰＵインタフェース部５１０は、ＳＩＦ（ＳＢＵＳインタフェース）部８２０と、ＧＰＵインタフェース部８３０とを備える。
【００８６】
ＳＩＦ部８００は、ＭＰＵ１００において、通常モード時のＳＢＵＳインタフェースを提供するためのブロックである。一方、ＰＧＰＵインタフェース部８１０は、ＭＰＵ１００において、互換モード時に、擬似的に既存のエンタテインメント装置のＧＰＵ２１０と同じインタフェースを提供するためのブロックである。ＳＩＦ部８００及びＰＧＰＵインタフェース部８１０は、それぞれ、転送データを格納するＦＩＦＯバッファ及び転送制御等に使われるレジスタ群を備える。
【００８７】
ＳＩＦ部８２０は、ＩＯＰ１２０において、通常モード時のＳＢＵＳインタフェースを提供するためのブロックである。一方、ＧＰＵインタフェース部８３０は、ＩＯＰ１２０において、互換モード時に、既存のエンタテインメント装置のＣＰＵ２２０と同様のＧＰＵインタフェースを提供するためのブロックである。
【００８８】
ＩＯＰインタフェース部３７０は、内部バス３８０のバスクロック（１５０ＭＨｚ）に同期して動作している。一方、ＭＰＵインタフェース部５１０は、ＩＯＰ１２０の動作周波数に同期して動作している。すなわち、通常モードでは、３７．５（＝１５０／４）ＭＨｚのクロックに同期して動作しており、互換モードでは、３３ＭＨｚのクロックに同期して動作している。このため、通常モードにおけるＭＰＵ１００、ＩＯＰ１２０間の通信は、同期通信になり、互換モードにおけるＭＰＵ１００、ＩＯＰ１２０間の通信は、非同期通信になる。ＰＧＰＵインタフェース部８１０は、互換モードにおける非同期通信を吸収するためのロジックを含んでおり、ＩＯＰ１２０から供給されるＰＧＣＬＫ（３３ＭＨｚ）が入力される。
【００８９】
以上のような構成の下、通常モード時は、ＭＰＵ１００においては、ＩＯＰ１２０に対するインタフェースとして、ＳＩＦ部８００が使われ、ＩＯＰ１２０においては、ＭＰＵ１００に対するインタフェースとして、ＳＩＦ部８２０が使われる。また、互換モード時は、ＭＰＵ１００においては、ＰＧＰＵインタフェース部８１０が使われ、ＩＯＰ１２０においては、ＧＰＵインタフェース部８３０が使われる。
【００９０】
ＭＰＵ１００におけるＳＩＦ部８００とＰＧＰＵインタフェース部８１０との切り替えは、ソフトウェア的に行われる。すなわち、リセット時は、ＳＩＦ部８００が選択され、その後、ＭＰＵ１００のプロセッサ・コア３００が実行するソフトウェアによって、ＭＰＵ１００内の特定の制御レジスタへの書き込みが行われると、ＰＧＰＵインタフェース部８１０に切り替えられる。
【００９１】
一方、ＩＯＰ１２０におけるＳＩＦ部８２０とＧＰＵインタフェース部８３０との切り替えは、リセット時にハードウェア的に行われる。すなわち、ＩＯＰ１２０が、ＲＥＳＥＴ信号（ＲＥＳＥＴ２）でリセットされると、ＳＩＦ部８２０が選択され、ＳＲＥＳＥＴ信号でリセットされると、ＧＰＵインタフェース部８３０が選択される。
【００９２】
次に、本エンタテインメント装置のブートシーケンスについて説明する。
【００９３】
ＲＥＳＥＴ信号（ＲＥＳＥＴ１、ＲＥＳＥＴ２）によってリセットされると、ＭＰＵ１００及びＩＯＰ１２０は、まず、同一のブートベクトルアドレスからプログラムの実行を開始する。本実施形態では、ＭＰＵ１００とＩＯＰ１２０とが、同じアーキテクチャのプロセッサであることを想定しているので、ブートベクトルアドレスも同一になっている。
【００９４】
このとき、ＩＯＰ１２０は、ＯＳＲＯＭ１５０に直接アクセスする。一方、ＭＰＵ１００は、ＩＯＰ１２０を介して、ＯＳＲＯＭ１５０にアクセスする。ＩＯＰ１２０は、自分の初期化処理を先にするため、必要な初期化処理を終えるまで、ＭＰＵ１００にバスの使用権を与えず、ＭＰＵ１００を待ち状態にさせておく。
【００９５】
リセット時にＭＰＵ１００及びＩＯＰ１２０によってアクセスされるＯＳＲＯＭ１５０の領域には、プロセッサＩＤを獲得し、自分がＭＰＵ１００かＩＯＰ１２０かを判断し、その結果に応じて、各プロセッサ用のコードにジャンプするというコードが格納されている。ＩＯＰ１２０及びＭＰＵ１００は、当該コードを実行することにより、それぞれ自分用のコードへジャンプする。
【００９６】
ＩＯＰ１２０は、自分用のコードへジャンプすると、まず、今回のリセットがＲＥＳＥＴ信号によるリセットか、ＳＲＥＳＥＴ信号によるリセットかを判別する。ＩＯＰ１２０は、特定の制御レジスタのビットを参照することにより、ＲＥＳＥＴ信号によるリセットか、ＳＲＥＳＥＴ信号によるリセットかを判別できる。
【００９７】
この場合、ＲＥＳＥＴ信号によるリセットであるので、本エンタテインメント装置としての起動を行うため、ハードウェアを本エンタテインメント装置用に初期化する。そして、ペリフェラル（コントローラ、ＣＤ／ＤＶＤドライブ等）のドライバのセットアップを行う。
【００９８】
必要な初期化処理を終了すると、ＩＯＰ１２０は、待ち状態にあったＭＰＵ１００の動作を開始させ（ＭＰＵオン）、自分は、ＭＰＵ１００からのリクエスト待ち状態になる。ＭＰＵオンは、ＩＯＰ１２０が特定の制御レジスタのビットを書き替えることで行われる。
【００９９】
ＭＰＵ１００は、自己の初期化処理を終了したＩＯＰ１２０によって、ＯＳＲＯＭ１５０へのアクセスが許可されると（ＭＰＵオンになると）、ＯＳＲＯＭ１５０のリードを行い、読み出したプログラムの実行を開始する。当該プログラムにおいて、ＭＰＵ１００は、ＩＯＰ１２０と同様に、自己のプロセッサＩＤを獲得し、自分用（すなわち、ＭＰＵ１００用）のコードへジャンプする。
【０１００】
ＭＰＵ１００は、自分用のコードへジャンプすると、まず、既存のエンタテインメント装置と本エンタテインメント装置とで共通のオープニング画面の表示を行う。
【０１０１】
次に、ＣＤ／ＤＶＤドライブに装填されているディスクの種別判定を行う。この判定は、ＣＤ／ＤＶＤデコーダ１３０内のディスク種別レジスタを参照することにより行う。
【０１０２】
ＣＤ／ＤＶＤデコーダ１３０は、ＲＥＳＥＴ信号（ＲＥＳＥＴ２）によりリセットされると、まず、ドライブに挿入されているディスクを識別し、その結果（本エンタテインメント装置用ディスクである／既存のエンタテインメント装置用ディスクである／ディスクなし等）を、ＣＤ／ＤＶＤデコーダ１３０内のディスク種別レジスタに反映して、コマンド待ち状態になっている。
【０１０３】
ディスク種別の判定の結果、本エンタテインメント装置用のディスクが装填されているか、または、なんのディスクも装填されていなかった場合は、そのまま、本エンタテインメント装置として立ち上がり、本エンタテインメント装置ロゴの表示を行う。
【０１０４】
更に、本エンタテインメント装置用のディスクがドライブに装填されている場合は、ＭＰＵ１００は、ディスクから本エンタテインメント装置用のソフトウェアをメインメモリ１６０にロードして、実行する。ソフトウェアの実行中、描画処理を行う場合は、ＧＰ１１０に対して描画を指示し、また、音声を出力する場合は、ＩＯＰ１２０を介して、ＳＰＵ１４０に対して音声出力を指示する。
【０１０５】
一方、ディスク種別の判定の結果、ドライブに既存のエンタテインメント装置用のディスクが装填されていた場合は、互換モードに切り替えて、既存のエンタテインメント装置として立ち上がる。
【０１０６】
そのため、ＭＰＵ１００は、ＧＰＵエミュレータをＯＳＲＯＭ１５０からメインメモリ１６０へロードし、実行する。
【０１０７】
ＭＰＵ１００によって実行されるＧＰＵエミュレータは、まず、ディスクからタイトル番号を取得し、タイトル番号に応じて、ＧＰＵエミュレータのパラメータをセットする。このパラメータは、タイトルに応じて、描画時間を調整するために使われる。例えば、描画プリミティブの種類により、ＷＡＩＴの数を設定するために使われる。
【０１０８】
次に、ＩＯＰ１２０に対するインタフェースを、ＳＩＦ部８００からＰＧＰＵインタフェース部８１０に切り替える。この切り替えは、前述したように、特定の制御レジスタに特定の値を書き込むことによって行われる。
【０１０９】
次に、ＩＯＰ１２０等を互換モードに移行させるため、ＳＲＥＳＥＴ信号をアサートする。ＳＲＥＳＥＴ信号のアサートは、前述したように、特定の制御レジスタへの書き込みによって行うことができる。ＳＲＥＳＥＴ信号をアサートすると、ＭＰＵ１００は、ＩＯＰ１２０からのグラフィックス命令待ち状態になる。ＭＰＵ１００＋ＧＰ１１０は、以降ＧＰＵ２１０として動作する。
【０１１０】
ＳＲＥＳＥＴ信号によってリセットされたＩＯＰ１２０は、ＲＥＳＥＴ信号でリセットされた場合と同様にして、ＩＯＰ１２０用のコードへジャンプすると、今回のリセットがＲＥＳＥＴ信号によるリセットか、ＳＲＥＳＥＴ信号によるリセットかを判別する。
【０１１１】
この場合、ＳＲＥＳＥＴ信号によるリセットであるので、既存のエンタテインメント装置としての起動を行うため、ＩＯＰ１２０は、ハードウェアを既存のエンタテインメント装置用に初期化する。また、ＩＯＰ１２０と同様に、ＳＲＥＳＥＴ信号でリセットされたＳＰＵ１４０は、互換モードで起動する。また、ＳＲＥＳＥＴ信号がアサートされると、ＣＤ／ＤＶＤデコーダ１３０に対しては、割り込みが発生し、ＣＤ／ＤＶＤデコーダ１３０は、この割り込みを検知すると、互換モードでの動作を開始して、コマンド待ち状態になる。
【０１１２】
必要な初期化処理終了後、ＩＯＰ１２０は、既存のエンタテインメント装置におけるＣＰＵ２２０と同様にメインＣＰＵとして動作を開始し、既存のエンタテインメント装置用のロゴを表示し、互換カーネルをブートする。以後、ＩＯＰ１２０は、既存のエンタテインメント装置のＣＰＵ２２０と同様にして、既存のエンタテインメント装置用のソフトウェアを実行する。ソフトウェアの実行中、グラフィックスの描画を行う場合は、ＩＯＰ１２０は、ＭＰＵ１００に対してＧＰＵコマンドを送信することによって描画を指示し、また、音声を出力する場合は、互換モードのＳＰＵ１４０に対して音声出力を指示する。
【０１１３】
次に、互換モードでのＧＰＵエミュレータの動作の詳細について説明する。ＧＰＵエミュレータは、ＩＯＰ１２０からＭＰＵ１００に送信されるＧＰＵコマンドを、ＧＰ１１０で実行可能なようにするため、ＧＰコマンドにフォーマット変換する。
【０１１４】
図９は、ＧＰＵエミュレータの処理の流れを示す図である。ＰＧＰＵインタフェース部８１０内のＦＩＦＯに、ＧＰＵフォーマットの描画パケットが書き込まれると、ＭＰＵ１００に対する割り込みが発生する。
【０１１５】
この割り込みを受けると、ＧＰＵエミュレータは、ＧＰＵフォーマットの描画パケットをＰＧＰＵインタフェース部８１０のＦＩＦＯから取り出す（Ｓ９０１）。そして、取り出したＧＰＵフォーマットの描画パケットをＧＰフォーマットの描画パケットへ変換し、メインメモリ１６０に書き出す（Ｓ９０２）。そして、ＤＭＡコントローラ３４０により、変換後のＧＰフォーマットの描画パケットを、ＧＩＦ３３０を介して、ＧＰ１１０へＤＭＡ転送する（Ｓ９０３）。
【０１１６】
次に、描画コマンドのフォーマット変換の具体例について説明する。ここでは、３角形のポリゴン描画コマンドのフォーマット変換について説明する。
【０１１７】
図１０（Ａ）及び図１０（Ｂ）は、ポリゴン描画コマンドのフォーマットを示す図である。図１０（Ａ）は、ＧＰＵコマンドのフォーマットを示し、図１０（Ｂ）は、ＧＰコマンドのフォーマットを示す。ＧＰＵコマンドは、１ワード、３２ビットであり、ＧＰコマンドは、１ワード、６４ビットである。
【０１１８】
図１０（Ａ）、図１０（Ｂ）において、「Ｃｏｄｅ」は、描画種類を識別するためのコードであり、Ｂ，Ｇ，Ｒは、色情報である。また、Ｘ，Ｙは、座標情報であり、Ｚは、奥行き情報である。ＧＰ１１０は、Ｚバッファ方式を採用しているため、描き順によらずに優先順位をコントロール可能である。一方、ＧＰＵ２１０は、Ｚバッファ方式を採用していないため、ＧＰＵコマンドには、奥行き情報は含まれない。そのため、ＧＰＵエミュレータは、ＧＰフォーマットに変換する際、Ｚには同一の所定値を入れる。
【０１１９】
ＭＰＵ１００は、ＩＯＰ１２０から図１０（Ａ）に示すようなＧＰＵパケットを受け取ると、先頭の１ワードを解釈することでコマンドの種類を決定し、つづくデータを解釈する。そして、この解釈されたデータを並び替え、ＲＧＢ，ＸＹの精度を変換して、図１０（Ｂ）に示すようなＧＰコマンドパケットを生成して、ＧＰ１１０へ転送する。
【０１２０】
最後に、本エンタテインメント装置の立ち上げの際の画面の遷移について説明する。
【０１２１】
まず、本エンタテインメント装置に電源が投入されると、ＭＰＵ１００によって、オープニング・アニメーション及びサウンドが再生される。その後、画面は、ブラックアウトし、音声はフェードアウトする。
そして、ドライブに挿入されているディスクが既存のエンタテインメント装置用のディスクの場合は、互換モードに切り替えられる。ＩＯＰ１２０が、既存のエンタテインメント装置の場合と同様に、黒バックの既存のエンタテインメント装置用のマークを画面に表示させ、既存のエンタテインメント装置用の効果音を再生させる。一方、ドライブに挿入されているディスクが本エンタテインメント装置用のディスクの場合は、通常モードのまま、ＭＰＵ１００が、黒バックの本エンタテインメント装置用のマークを表示させ、本エンタテインメント装置用の効果音を再生させる。このように、動作モードを切り替える前に、画面をブラックアウトさせることにより、黒バックの既存のエンタテインメント装置用のマークが、立ち上げのブラックアウトと滑らかにつながることになり、互換モードへの切り替えがスムーズに行える。
【０１２２】
本発明は、エンタテインメント装置に関するものであるけれども、それが有する構造および能力からは、コンピュータシステムということができる。したがって、適用範囲は、エンタテインメントに限られない。ただし、一般のコンピュータより、グラフィクス、サウンド等の処理能力が高いため、その特徴を活かした使い方が望まれる。
また、本発明は、前述した実施形態に限られない。例えば、第１のモードにおいて、第２のプロセッサ手段がメインＣＰＵおよび描画プロセッサとして機能するとともに、前記第１のプロセッサ手段がＩ／Ｏプロセッサとして機能し、第２のモードにおいて、第１のプロセッサ手段がメインＣＰＵとして機能するとともに、前記第２のプロセッサ手段が描画プロセッサとして機能する場合をも含む。
【０１２３】
【発明の効果】
以上、詳細に説明したように、本発明によれば、旧機種との互換性を有するエンタテインメント装置を提供できる。
【図面の簡単な説明】
【図１】  本発明によるエンタテインメント装置の構成を示すブロック図である。
【図２】  既存のエンタテインメント装置の構成を示すブロック図である。
【図３】  ＭＰＵ１００の内部構成を示すブロック図である。
【図４】  ＧＰ１１０の内部構成を示すブロック図である。
【図５】  ＩＯＰ１２０の内部構成を示すブロック図である。
【図６】  リセット信号の接続形態を示すブロック図である。
【図７】  クロック信号の接続形態を示すブロック図である。
【図８】  ＩＯＰインタフェース部３７０及びＭＰＵインタフェース部５１０の内部構成を示すブロック図である。
【図９】  ＧＰＵエミュレータの処理の流れを示すフローチャートである。
【図１０】  （Ａ）は、ポリゴン描画コマンドに関する、ＧＰＵコマンドのフォーマットを示す説明図、（Ｂ）は、ポリゴン描画コマンドに関する、ＧＰコマンドのフォーマットを示す説明図である。
【符号の説明】
１００  ＭＰＵ
１１０  ＧＰ
１２０  ＩＯＰ
１３０  ＣＤ／ＤＶＤデコーダ
１４０  ＳＰＵ
１５０  ＯＳＲＯＭ
１６０  メインメモリ
１７０  ＩＯＰメモリ
１８０  コントローラ
【図１】
0004001722.tif 000002
【図２】
0004001722.tif 000003
【図３】
0004001722.tif 000004
【図４】
0004001722.tif 000005
【図５】
0004001722.tif 000006
【図６】
0004001722.tif 000007
【図７】
0004001722.tif 000008
【図８】
0004001722.tif 000009
【図９】
0004001722.tif 000010
【図１０】
0004001722.tif 000011