(57)【要約】  【課題】記憶手段の占有時間を抑えてシステムの応答性を向上させる。  【解決手段】ローカルメモリ１７へのアクセスにより処理を実行する命令並列プロセッサ４と、ローカルメモリ１７にアクセスする少なくとも１つの機能ブロックと、ローカルメモリ１７から命令並列プロセッサ４に対するデータを分割転送するローカルメモリインターフェース１０とを備える。【選択図】  図１
2005309229.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイリストを記憶しておく記憶手段と、
前記記憶手段から前記ディスプレイリストを読み出し、前記ディスプレイリストに応じた処理を行う処理手段と、
前記記憶手段にアクセスする少なくとも１つの機能ブロックと、
前記記憶手段から前記処理手段にデータを転送する転送手段とを備え、
前記転送手段は、前記データを転送する際に、分割転送することを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、
前記処理装置と前記機能ブロックとのアクセスを行う第１のバスと、
前記処理装置と前記記憶手段とのアクセスを行う第２のバスとを備え、
前記第１のバスと前記第２のバスとが独立して設けられたことを特徴とする情報処理装置。
【請求項３】
請求項１又は２記載の情報処理装置であって、
前記転送手段は、前記データを分割転送する際に、データ転送要求に対して予め設定した優先順位に従って前記データを転送することを特徴とする情報処理装置。
【請求項４】
第１のバスから前記第１のバスよりバス幅の大きい第２のバスへのアクセスを行うバスアクセス装置を含む情報処理装置であって、
前記第１のバスから転送されるアドレスを第２のバスにアクセスするために必要なアドレスの一部として格納する格納手段と、
前記格納手段へのアクセスによって前記第１のバスより前記第２のバスへのアクセス要求が発生したことを検知し、第２のバスにアクセスするために必要なアドレスの一部を生成するアドレス生成手段と、
前記第１のバスから転送されるアドレスと前記格納手段が格納するアドレスと、前記アドレス生成手段が生成するアドレスとを連結して前記第２のバスへ転送する連結手段とを備える情報処理装置。
【請求項５】
少なくとも１つの機能ブロックと、
前記機能ブロックへのアクセスにより前記機能ブロックを起動させるプロセッサと、
前記機能ブロックへのアクセスエラーを前記プロセッサに通知する通知手段とを備える情報処理装置。
【請求項６】
請求項５記載の情報処理装置であって、
前記機能ブロックが実行している間、前記機能ブロックへのアクセスを禁止する手段を備える情報処理装置。
【請求項７】
請求項５又は６記載の情報処理装置であって、
前記機能ブロックは、
起動設定を行うための起動レジスタと、
前記プロセッサからのアクセスにより動作に必要なパラメータを保持する第１のレジスタ、前記起動レジスタの設定時に前記１段目のレジスタからの内容を保持する第２のレジスタを有する２段構成のパラメータレジスタとを備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関するものである。
【背景技術】
【０００２】
グラフィックスプロセッサのローカルメモリで描画命令リスト、描画フレーム、テクスチャあるいはＺバッファ等の様々な情報を扱うシステムでは、ローカルメモリとのデータ転送能力が性能に大きく影響する。近年のカーナビゲーションシステムでは、地図描画の他、動画処理や音声処理でもローカルメモリとのアクセスがあり、ローカルメモリとのデータ転送量が大きくなっている。
【０００３】
従来、ローカルメモリとのアクセス効率を上げる方法として、グラフィックスプロセッサがローカルメモリへデータを書き込む際に不連続アドレスを検出し、常に連続したアドレスでローカルメモリにアクセスすることで書き込み時間を短縮する方法がある（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開平１１−１３３９４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の方法にあっては、ローカルメモリにデータを書き込む際のアクセス効率向上のための考慮がされているが、ローカルメモリからデータを読み出す際に、一度に長い期間のデータ転送があれば、他にローカルメモリを使用する処理が待たされ、処理の開始が遅れるという事情があった。
【０００６】
例えば、カーナビゲーションシステムの高度化を例に挙げると、表示画面サイズの拡大と地図の複雑化に伴い、描画命令リストが増大し、ローカルメモリから描画命令リストを読み出すデータ転送量が大きくなる。従って、描画命令リストの転送期間が長くなり、他にローカルメモリを使用する処理の開始が遅れ、システムの応答性が悪くなるという事情があった。
【０００７】
本発明は、上記従来の事情に鑑みてなされたものであって、第１の目的は、記憶手段の占有時間を抑えてシステムの応答性を向上させる情報処理装置を提供することである。また、第２の目的は、１度のアクセスで、第１のバスよりバス幅の大きい第２のバスへアクセスを行うことができる情報処理装置を提供することである。さらに、第３の目的は、高速に機能ブロックを起動できる情報処理装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、ディスプレイリストを記憶しておく記憶手段と、前記記憶手段から前記ディスプレイリストを読み出し、前記ディスプレイリストに応じた処理を行う処理手段と、前記記憶手段にアクセスする少なくとも１つの機能ブロックと、前記記憶手段から前記処理手段にデータを転送する転送手段とを備え、前記転送手段が、前記データを転送する際に、分割転送することを特徴とする。
【０００９】
上記構成によれば、記憶手段から処理手段に対するデータを分割転送することにより、アクセス１回当りの記憶手段占有時間を抑えることができる為、記憶手段を使用する他の処理の開始が長時間待たされることがなくなり、システムの応答性が向上する。また、上記構成によれば、分割転送間に機能ブロックが記憶手段にアクセスできる為、システムの応答性が向上する。
【００１０】
また、本発明の情報処理装置は、前記処理装置と前記機能ブロックとのアクセスを行う第１のバスと、前記処理装置と前記記憶手段とのアクセスを行う第２のバスとを備え、前記第１のバスと前記第２のバスとが独立して設けられたことを特徴とする。上記構成によれば、第１のバスと第２のバスとが、独立して設けられることにより、処理手段は並列処理を行うことができる為、処理効率が向上する。
【００１１】
また、本発明の情報処理装置は、前記転送手段が、前記データを分割転送する際に、データ転送要求に対して予め設定した優先順位に従って前記データを転送することを特徴とする。
【００１２】
また、本発明の情報処理装置は、第１のバスから前記第１のバスよりバス幅の大きい第２のバスへのアクセスを行うバスアクセス装置を含む情報処理装置であって、前記第１のバスから転送されるアドレスを格納する格納手段と、前記格納手段へのアクセスによって前記第１のバスより前記第２のバスへのアクセス要求が発生したことを検知し、第２のバスにアクセスするために必要なアドレスの一部を生成するアドレス生成手段と、前記第１のバスから転送されるアドレスと前記格納手段が格納するアドレスと、前記アドレス生成手段が生成するアドレスとを連結して前記第２のバスへ転送する連結手段とを備える。
【００１３】
上記構成によれば、格納したアドレスと第１のバスから転送されるアドレスと、生成されたアドレスを加算することにより、第１のバスのバス幅より大きいアドレスの生成が可能になる為、１度のアクセスで、第１のバスよりバス幅の大きい第２のバスへアクセスを行うことができる。また、上記構成によれば、格納手段に不変アドレスを格納しておけば、第１のバスから転送した可変アドレスと格納される不変アドレスと、生成されたアドレスを連結してアクセスしたいアドレスを特定できる為、１回のアクセスで第１のバスから第２のバスへアクセスでき、アクセス回数を削減できる。
【００１４】
また、本発明の情報処理装置は、少なくとも１つの機能ブロックと、前記機能ブロックへのアクセスにより前記機能ブロックを起動させるプロセッサと、前記機能ブロックへのアクセスエラーを前記プロセッサに通知する通知手段とを備える。
【００１５】
上記構成によれば、機能ブロックへのアクセスエラーをプロセッサに通知する通知手段を備えることにより、プロセッサは、自らアクセスの成否判断を行うことなく通知に基づいて機能ブロックを起動させることができる為、高速に機能ブロックを起動できる。
【００１６】
また、本発明の情報処理装置は、前記機能ブロックが実行している間、前記機能ブロックへのアクセスを禁止する手段を備える。上記構成によれば、機能ブロック実行中のアクセスを禁止することにより、内部状態を保持した状態でアクセスエラーの通知が可能になる。
【００１７】
さらに、本発明の情報処理装置は、前記機能ブロックが、起動設定を行うための起動レジスタと、前記プロセッサからのアクセスにより動作に必要なパラメータを保持する第１のレジスタ、前記起動レジスタの設定時に前記１段目のレジスタからの内容を保持する第２のレジスタを有する２段構成のパラメータレジスタとを備える。上記構成によれば、第２のレジスタに保持したパラメータに基づいて処理を実行し、処理中に第１のレジスタに新たなパラメータを設定できる為、機能ブロック実行中のパラメータ設定が可能となり、高速処理が可能になる。
【発明の効果】
【００１８】
本発明によれば、記憶手段から処理手段に対するデータを分割転送することにより、アクセス１回当りの記憶手段占有時間を抑えることができる為、記憶手段を使用する他の処理の開始が長時間待たされることがなくなり、システムの応答性が向上する。また、分割転送間に機能ブロックが記憶手段にアクセスできる為、システムの応答性が向上する。
【００１９】
また、本発明によれば、格納したアドレスと第１のバスから転送されるアドレスと、生成されたアドレスを加算することにより、第１のバスのバス幅より大きいアドレスの生成が可能になる為、１度のアクセスで、第１のバスよりバス幅の大きい第２のバスへアクセスを行うことができる。また、上記構成によれば、格納手段に不変アドレスを格納しておけば、第１のバスから転送した可変アドレスと格納される不変アドレスと、生成されたアドレスを連結してアクセスしたいアドレスを特定できる為、１回のアクセスで第１のバスから第２のバスへアクセスでき、アクセス回数を削減できる。
【００２０】
さらに、本発明によれば、機能ブロックへのアクセスエラーをプロセッサに通知する通知手段を備えることにより、プロセッサは、自らアクセスの成否判断を行うことなく通知に基づいて機能ブロックを起動させることができる為、高速に機能ブロックを起動できる。
【発明を実施するための最良の形態】
【００２１】
（第１の実施形態）
図１は、本発明の第１の実施形態を説明するためのグラフィックスプロセッサ、およびそのグラフィックスプロセッサが搭載されたグラフィックスシステムを説明するための概略構成を示す図である。図１において、グラフィックスプロセッサ１は、主として、ローカルメモリ１７へのアクセスにより処理を実行する命令並列プロセッサ４と、ローカルメモリ１７にアクセスする機能ブロック（後述）と、ローカルメモリ１７から命令並列プロセッサ４に対するデータを転送するローカルメモリインターフェース１０と、を備える。  命令並列プロセッサ４は、ローカルメモリ１７から描画命令や機能ブロックへの設定内容を含むディスプレイリスト（以下、ＤＬと言う）等を読み出し、処理を行う。ローカルメモリインターフェース１０は、複数のデータ転送要求に対して予め設定した優先順位又は転送要求順に従い順次データを転送する。
【００２２】
命令並列プロセッサ４がアクセス可能な領域は、レジスタ空間、メモリ空間、拡張レジスタ空間、ＩＯ空間の４つの領域に分けられる。
【００２３】
レジスタ空間は、内部メモリ制御ユニット５と制御バス２１、メモリバス２２等とのバス制御を行うバス調停ユニット６や、映像情報を取り込み、ローカルメモリ１７に格納するビデオ入力エンジン７、描画データをローカルメモリ１７から読み出して表示モニタ１６に出力するビデオ出力エンジン８、音声データを出力するオーディオインターフェース９、ローカルメモリ１７とのアクセス制御を行うローカルメモリインターフェース１０、システムＣＰＵ１５とのアクセス制御を行うＣＰＵインターフェース１１のレジスタ領域と座標変換処理や浮動小数点演算を行う座標変換プロセッサ１２、グラフィックス処理を行う描画エンジン１３の一部のレジスタが該当し、メモリ空間は、ローカルメモリ領域が該当する。なお、上述した機能ブロックとしては、ビデオ入力エンジン７、ビデオ出力エンジン８、オーディオインターフェース９、ローカルメモリインターフェース１０、ＣＰＵインターフェース１１、座標変換プロセッサ１２、描画エンジン１３が含まれる。
【００２４】
また、拡張レジスタ空間は、座標変換プロセッサ１２、描画エンジン１３の一部のレジスタが該当し、ＩＯ空間は内蔵メモリ制御ユニット５、命令メモリ２、データメモリ３、がそれに当たる。
【００２５】
グラフィックスプロセッサ１内に存在する内部バスとして、命令並列プロセッサ４が上記レジスタ領域に存在する機能ブロックにパラメータ設定を行う場合や、システムＣＰＵ１５がＣＰＵインターフェース１１を介してグラフィックスプロセッサ１内の領域にアクセスする場合に用いる制御バス２１と、命令並列プロセッサ４やビデオ入力エンジン７、ビデオ出力エンジン８、オーディオインターフェース９、座標変換プロセッサ１２、描画エンジン１３がローカルメモリ１７にアクセスする際にデータの受け渡しを行うために用いるメモリバス２２、命令並列プロセッサ４が座標変換プロセッサ１２や描画エンジン１３にパラメータ設定や起動処理を行うために用いる拡張機能バス２０、命令メモリ２、データメモリ３にアクセスするためのプロセッサローカルバス１８が存在する。命令並列プロセッサ４と各機能ブロックとのアクセスを行う拡張機能バス２０、制御バス２１及びメモリバス２２と、命令並列プロセッサ４とローカルメモリ１７とのアクセスを行うプロセッサローカルバス１８とは、独立して設けられる。
【００２６】
内部メモリ制御ユニット５には命令並列プロセッサ４から上記制御バス２１に接続されたブロックへのアクセスや、プロセッサローカルバス１８へのアクセスを行うレジスタ制御バス２３や、命令並列プロセッサ４からローカルメモリ１７へデータの受け渡しを行うために用いるデータメモリバス２４、命令並列プロセッサ４へローカルメモリ１７から命令コードを充填するための命令メモリバス２５を有している。
【００２７】
また、バス調停ユニット６は命令並列プロセッサ４と命令並列プロセッサ４が使用する命令メモリ２とデータメモリ３とのアクセスや、その他レジスタ領域、メモリ領域とのアクセスを制御する内部メモリ制御ユニット５や、内部メモリ制御ユニット５と制御バス２１、メモリバス２２、プロセッサローカルバス１８、プロセッサ拡張バス１９、拡張機能バス２０のアクセス制御を行う。バス調停ユニット６は、制御バス２１から制御バス２１よりバス幅の大きいプロセッサローカルバス１８へのアクセスを行うものである。
【００２８】
バス調停ユニット６と命令並列プロセッサ４は、内部メモリ制御ユニット５を介して、レジスタ制御バス２３、データメモリバス２４、命令メモリバス２５、プロセッサ拡張バス１９、プロセッサローカルバス１８によって接続されている。
【００２９】
図２は、図１に示すグラフィックスプロセッサが行う処理の概要を示すフローチャートである。システムＣＰＵ１５で作られた、描画命令や機能ブロックへの設定内容を含むＤＬをローカルメモリ１７に格納した後（ステップＳ２１）、グラフィックプロセッサ１はローカルメモリ１７から読み出したＤＬを命令並列プロセッサ４のデータメモリ３に充填し（ステップＳ２２）、命令並列プロセッサ４にてセットアップ処理を行い（ステップＳ２３）、処理結果データを描画エンジン１３等に対して与える（ステップＳ２４）。
【００３０】
処理結果データを受け取った描画エンジン１３は描画データに変換し、変換後の描画データをローカルメモリ１７に蓄え、ビデオ出力エンジン８がローカルメモリ１７から描画データを読み出し、表示モニタ１６に出力する（ステップＳ２５）。
【００３１】
（並列処理）
図３は、命令並列プロセッサの動作状況を示す説明図である。図３（１）は、図１に示す命令並列プロセッサ４の動作状況を示し、命令並列プロセッサ４を並列処理させない場合（上段）と、命令並列プロセッサ４を並列処理させる場合（下段）の処理概要を示す。
【００３２】
図３（１）に示すDL充填３１は、図２のステップＳ２２に示すローカルメモリ１７から命令並列プロセッサ４へ描画命令リスト読み出しを意味し、描画セットアップ処理３２は、図２のステップＳ２３に示す描画セットアップを意味し、描画エンジン制御３３は、図２のステップ２４に示す処理結果データを描画エンジン１３へ供給することを意味する。
【００３３】
図３（１）の下段に示すように、命令並列プロセッサ４を並列処理させることにより、ＤＬ充填３１、描画セットアップ処理３２および描画エンジン制御３３を並行して行うことができるため、図３（１）下段のＣの期間だけ、命令並列プロセッサ４の処理時間を短縮することができる。ここで、命令並列プロセッサ４が並列処理を行うためには、一回のＤＬ充填の量が常に一定であることが必要である。これにより、ある程度の決まったタイミングで描画セットアップ処理を開始できるため、並列性を保つことができる。なお、描画命令の各データサイズが全て同じである場合、ＤＬ充填量を一定にすることに加え、一定の命令数でＤＬ充填してもよいし、１つの命令毎にＤＬ充填してもよい。また、通常の描画命令は各デーサイズが同一でないため、ＤＬ充填の際に、最後に充填された描画命令が全て転送されない状況が起こりうる。この場合、プロセッサ内部に転送されずに残った描画命令を記憶しておき、次のＤＬ充填で続きの描画命令と合わせて処理すればよい。
【００３４】
（バス調停）
図７は、図１に示したバス調停ユニット６のバス使用権要求信号を説明するための内部構成図である。メモリバス２２にアクセスするマスター側のバスは命令メモリバス２５、データメモリバス２４の２本であり、これらはバス調停ユニット６内のメモリアクセス調停部２６によって調停され、メモリバス２２へのアクセスを行う。
【００３５】
同様にプロセッサローカルバス１８にはレジスタ制御バス２３、制御バス２１の２本がマスター側のバスとしてアクセスを行い、これらはバス調停ユニット６内のプロセッサローカルバスアクセス調停部３０によって調停され、プロセッサローカルバス１８へのアクセスを実施する。
【００３６】
また、制御バス２１に対してはレジスタ制御バス２３がマスター側のバスとなり、制御バス２１は拡張機能バス２０に対してマスター側のバスとなるよう接続されている。この拡張機能バス２０に対してはプロセッサ拡張バス１９もマスターとしての動作を行うが、プロセッサ拡張バス１９か制御バス２１のどちらが拡張機能バス２０にアクセスするかはレジスタ設定によって決められる。
【００３７】
この時のバス調停ユニット６の内部動作について図７を用いて説明する。図３（１）に示すＤＬ充填３１は、データメモリバス２４からのアクセス要求としてバス調停ユニット６にアクセスされる。図７におけるデータメモリアクセス要求３９がそれにあたり、図３（１）に示す描画エンジン制御３３は、プロセッサ拡張バス１９からの書き込み要求としてバス調停ユニット６にアクセスされる。図７におけるプロセッサ拡張バスアクセス要求４２がそれにあたる。これらリクエスト要求を出すバスと要求先のバスが互いに独立しており、バス調停ユニット６内でも別々に動作できる。
【００３８】
バス調停ユニット６のデータの流れについて、図７を簡略化した図８を用いて説明する。図３（１）に示すＤＬ充填命令３１、すなわちデータメモリバス２４からのアクセス要求に対しては図８のメモリバス用パス３７を用いてＤＬデータが読み出され、図３（１）に示す描画エンジン制御３３、すなわちプロセッサ拡張バス１９からのアクセス要求に対しては図８のプロセッサ拡張バス用パス３８を用いて描画エンジン１３にパラメータ設定等を行う。したがって、バス調停ユニット６内では要求信号、データ共に独立しているため、命令並列プロセッサ４を待たせることなく並列処理に対応することができる。
【００３９】
（分割処理）
次に、図３（２）は、図１に示すローカルメモリ１７に対してデータを一括転送する場合（上段）と分割転送する場合（下段）のアクセス状況を示す。図３（２）に示す機能ブロック処理３４は、図２のステップＳ２５に示す描画データを出力することを意味するが、例えば描画エンジン１３以外のビデオ出力エンジン８が表示処理のために行うローカルメモリ１７へのアクセスも含んでいる。
【００４０】
図３（２）に示すように、ローカルメモリ１７へのアクセスを分割処理（下段）することにより、機能ブロックの処理を早い時間に開始することができるため、システムとしての応答性が、一括転送時（上段）よりも向上する。
【００４１】
（バスロック検出）
図５は、長時間のロック状態を回避するためのバスエラー信号の説明図である。命令並列プロセッサ４の命令メモリバス２５もしくはデータメモリバス２４へのアクセスでは、バス調停ユニット６に対して図５（１），（３）に示すように、ＲＥＱ信号をアサートさせる。図５の信号は全てＬＯＷでアサート状態とし、また縦方向の点線は全てクロックの立ち上がりエッジを示す。
【００４２】
図３（１）に示すような従来のまとまった単位での要求方法では、一つ一つのアクセス期間が長時間になるため、他ブロックがアクセス中なのか、システム上でなんらかの不具合が発生し、メモリバス２２がロック状態になっているのかという判断をバス権取得までの待ち時間のみで決定することが困難である（図５のＢ１は、メモリＡＣＫ信号が帰ってこない状態を示す）。
【００４３】
しかしながら、本実施形態に示すように分割処理を行えば、各アクセスに要する所要時間が短いため、待ち時間をカウントすることで、システムになんらかの問題が発生し、バス、もしくはシステムのどこかがロックしていることがわかる。
【００４４】
図５（５）ではカウント１００の時点でエラー信号（図５（６）のＢＵＳ  ＥＲＲＯＲ）をアサートしている。従って例えば、一定時間を越えてもアクノリッジ信号（図５（２），（４）のメモリＡＣＫ信号）がアサートされない場合に命令並列プロセッサ４や、システムＣＰＵ１５に対してバスエラー信号をアサートするという回路をシステムに搭載することで、長時間のロック状態を回避することができる。
【００４５】
（第２の実施形態）
次に、命令並列プロセッサ４を用いて描画処理とメディア処理を並行して処理する場合の例を説明する。
【００４６】
図６は、本発明の第２の実施形態を説明するためのフローチャートであり、グラフィックプロセッサ１が描画処理とメディア処理を並行して処理する場合の概要を示す。システムＣＰＵ１５で作られたＤＬやメディア処理命令をローカルメモリ１７に格納した後（ステップＳ６１）、グラフィックプロセッサ１はローカルメモリ１７からメディア処理命令を読み出し、命令メモリ２に充填する（ステップＳ６２）。
【００４７】
次にローカルメモリ１７から命令並列プロセッサ４のデータメモリ３へＤＬを充填する（ステップＳ６３）。データメモリ３に充填したＤＬを用いて命令並列プロセッサ４がセットアップ処理を行い（ステップＳ６４）、処理結果データを描画エンジン１３等に対して与える（ステップＳ６５）。処理結果データを受け取った描画エンジン１３は描画データに変換し、変換後の描画データをローカルメモリ１７に蓄える。
【００４８】
次にメディア処理関連の元データを命令並列プロセッサ４のデータメモリ３に充填し、メディア処理のセットアップ処理を行い、ここではオーディオインターフェース９に処理結果を供給する。ローカルメモリ１７に蓄えられた描画データはビデオ出力エンジン８がローカルメモリ１７から描画データを読み出し、表示モニタ１６に出力する（ステップＳ６６，Ｓ６７）。
【００４９】
（並列処理）
図４は、命令並列プロセッサの動作状況を示す説明図である。図４（１）は、図１に示す命令並列プロセッサ４の動作状況を示し、命令並列プロセッサ４を並列処理させない場合（上段）と、命令並列プロセッサ４を並列処理させる場合（下段）の処理概要を示す。
【００５０】
図４（１）に示すＤＬ充填３１は、データメモリバス２４からのアクセス要求としてバス調停ユニット６にアクセスされる。図７におけるデータメモリアクセス要求３９がそれにあたり、図４（１）に示す描画エンジン制御３３は、プロセッサ拡張バス１９からの書き込み要求としてバス調停ユニット６にアクセスされる。図７におけるプロセッサ拡張バスアクセス要求４２がそれにあたる。
【００５１】
また、図４（１）に示すメディア処理用命令充填３５は、命令メモリバス２５からのアクセス要求としてバス調停ユニット６にアクセスされる。図７における命令メモリアクセス要求４０がそれにあたる。データメモリバス２４からの要求と、命令メモリバス２５からの要求に関する制御については後に述べる。プロセッサ拡張バス１９からのリクエスト要求については、要求先のバスが他の要求とは異なるために独立しており、バス調停ユニット６内でもデータメモリバス２４、命令メモリバス２５に関するアクセスとは別々に動作できる。
【００５２】
（メモリアクセス調停）
図９は、図７に示すメモリアクセス調停部の動作を説明するためのフローチャートである。バス調停ユニット６内のメモリアクセス調停部２６はメモリアクセスのリクエストを受ける（ステップＳ９１）と命令メモリバス２５からのリクエストとデータメモリバス２４からのリクエストが同時にアサートされている場合（ステップＳ９２）、命令メモリバス２５のアクセスを優先して受け入れ、データメモリバス２４からのリクエストは待ちうけキューに格納される（ステップＳ９３，Ｓ９４）。
【００５３】
メモリアクセスのリクエストが同時でない場合、すなわち１サイクルでもリクエスト信号がアサートされるタイミングに差がある場合、先にリクエスト信号をアサートした方の要求を受け入れ、後にリクエスト信号をアサートした方はキューに格納される（ステップＳ９５）。なお、図１に示す内部メモリ制御ユニット５によって命令並列プロセッサ４の転送要求は分割処理されるため、データメモリアクセス要求と命令メモリアクセス要求は、通常複数回発行される。
【００５４】
図８は、バス調停ユニットのデータの流れについて説明するための図であり、図７を簡略化した図である。図４（１）に示すＤＬ充填３１とメディア処理用命令充填３５、すなわちデータメモリバス２４からのアクセス要求と命令メモリバス２５からのアクセス要求に対しては図８のメモリバス用パス３７を用いてＤＬデータやメディア処理用命令コードが読み出される。また、図４（１）に示す描画エンジン制御３３、すなわちプロセッサ拡張バス１９からのアクセス要求に対しては図８のプロセッサ拡張バス用パス３８を用いて描画エンジン１３にパラメータ設定等を行う。
【００５５】
したがって、バス調停ユニット６内では要求信号、データ共に独立しているため、描画エンジン制御３３を独立して行うことができ、またデータメモリ要求と命令メモリ要求に関しては図９に示すような制御を行うため、どちらかが長時間待ち状態に陥ることなく並列処理に対応することができる。
【００５６】
前述のように、図４（１）は、図１に示す命令並列プロセッサ４の動作状況を示している。図４（１）において、ＤＬ充填３１は、図６のステップＳ６３に示すローカルメモリ１７から命令並列プロセッサ４へ描画命令リスト読み出しを示し、メディア処理用命令充填３５は図６のステップＳ６２に示すローカルメモリ１７から命令並列プロセッサ４へメディア処理命令読み出しを示す。
【００５７】
また、図４（１）に示す描画セットアップ処理３２は、図６のステップＳ６４に示す描画セットアップを意味し、図４（１）に示す描画エンジン制御３３は図６のステップＳ６５に示す処理結果データを描画エンジン１３へ供給することを意味し、図４（１）に示すメディア処理実施３６は、図６のステップＳ６７に示すメディア処理実施を意味する。
【００５８】
図４（１）に示すように、命令並列プロセッサ４を並列処理させることによって、メディア処理用命令充填３５、ＤＬ充填３１および描画セットアップ処理３２を並列実行させ、メディア処理用命令充填３５の後にメディア処理実施３６を行い、ＤＬ充填３１の後に描画エンジン制御３３を行うことによって、図４（１）下段のＣに示す期間だけ処理時間を短縮することができる。
【００５９】
図４（２）は、図１に示すローカルメモリ１７に対してデータを一括転送する場合（上段）と分割転送する場合（下段）のアクセス状況を示す。図９に示すバス調停ユニット６の制御を行うことによって、図４（２）に示すようにメディア処理用命令充填３５とＤＬ充填３１は互いの転送要求の間に命令・データ充填を行うことができる。
【００６０】
図４（２）に示す機能ブロック処理３４は、図６のステップＳ６６に示す描画データを出力すること意味するが、例えば描画エンジン１３以外のビデオ出力エンジン８が表示処理のために行うローカルメモリ１７へのアクセスも含んでいる。
【００６１】
図４（２）に示すように、ローカルメモリ１７へのアクセスを分割処理（下段）することにより、機能ブロック処理３４を早い時間に行うことができるため、システムとしての応答性が、一括転送時（上段）よりも向上する。
【００６２】
（第３の実施形態）
図１０は、制御バス領域のアドレスマップを示す図である。バス調停ユニット６は、制御バス２１から制御バス２１よりバス幅の大きいプロセッサローカルバス１７へのアクセスを行う。図１０に示すように、制御バス２１のアドレス幅は１４bitであり、制御バス２１からのアクセスに対してバス調停ユニット６はアドレスの上位２bitをデコードすることでプロセッサローカルバス１８へのアクセスであることを判断する。尚、データ幅は制御バス、プロセッサローカルバス共に同一とする。
【００６３】
図１１は、プロセッサローカルバスのアドレスマップを示す図である。プロセッサローカルバス１８のアドレス幅は２２bitであり、アドレスによって命令メモリ領域、データメモリ領域、その他の領域に分けられる。
【００６４】
図１２は、プロセッサローカルバスにおけるアクセスを説明するための図である。制御バス２１からプロセッサローカルバス１８へのアクセスが発生した場合、アドレス幅が異なることから図１２に示すように、1回目のアクセスで少なくとも１０bitのプロセッサローカルバスアドレスを格納し、2回目のアクセスで残りのアドレスを指定することによってプロセッサローカルバス１８の全アドレスが確定し、アクセスを実行することができる。
【００６５】
図１３は、プロセッサローカルバスのバスプロトコルを示すタイムチャートであり、プロセッサローカルバス１８の命令メモリ領域への書き込みアクセスを示している。図１３に示すように、プロセッサローカルバス１８は、アドレス（図１３（２））とチップセレクト信号（図１３（３），（４），（５））を使用してアクセス先を特定していることがわかる。
【００６６】
図１２に示す構成を用いた場合、制御バス２１からプロセッサローカルバス１８へのアクセスを１回行うために制御バス２１から２回のアクセスが必要となる。
【００６７】
（上位bitを再利用）
図１４は、プロセッサローカルバスにおける他のアクセスを説明するための図である。図１４に示すように、バス調停ユニット６内に、プロセッサローカルバス１８の命令メモリ領域、データメモリ領域、その他の領域に対応する３つの８bitのプロセッサローカルバスアクセスレジスタ２７，２８，２９を設ける。プロセッサローカルバスアクセスレジスタ２７，２８，２９は、制御バス２１から転送されるアドレスを格納する。また、バス調停ユニット６内に、制御バス２１から転送されるアドレスとレジスタ２７〜２９のいずれかに格納されるアドレスとを連結してプロセッサローカルバス１８へ転送する連結器５０を設ける。
【００６８】
これらのレジスタにアクセスすることによって、バス調停ユニット６が次に制御バス２１からプロセッサローカルバス１８へのアクセスを受けたときに、各レジスタに格納された８bitの値と次にアクセスされたアドレスの１２bitを連結することでプロセッサローカルバス１８のアドレスのうち２０bitを得ることができる。
【００６９】
２０bitのうち、下位１２bitが次にアクセスされたアドレスから与えられ、１３bit目から２０bit目まではプロセッサローカルバスアクセスレジスタ２７，２８，２９から与えられる。残りの上位２bitはバス調停ユニット６内の３つのプロセッサローカルバスアクセスレジスタ２７，２８，２９のうち、どれに最後に値が設定されたかによって、命令メモリ領域もしくはデータメモリ領域であれば０１を与え、その他の領域であれば１０を与える。
【００７０】
２回目以降、プロセッサローカルバスアクセスレジスタ２７，２８，２９に新たにアクセスがされないかぎり、プロセッサローカルバスアクセスレジスタ２７，２８，２９の値と上位２bitを与えることにより、プロセッサローカルバス１８の下位１２bitが変化する分のアクセスは、制御バス２１からの１回のアクセスでプロセッサローカルバス１８にアクセスすることができる。
【００７１】
チップセレクト信号としては、上記３種類のプロセッサローカルバスアクセスレジスタ２７，２８，２９のうち、どれにアクセスされたかによって、バス調停ユニット６は所望のチップセレクト信号（ＣＳ信号）を生成することができる。
【００７２】
また、制御バス２１からプロセッサローカルバス１８の別の領域、例えば命令メモリ領域へのアクセスを行った後、データメモリ領域へのアクセスを行う場合、図１０に示すバス調停ユニット６内部に割り振られた領域に存在する、プロセッサローカルバスリセットレジスタにアクセスすることによって、もう一度１回目のアクセス、すなわちプロセッサローカルバスアクセスレジスタ２７，２８，２９へアドレス８bitの設定を行うところから処理を開始できる。
【００７３】
上記構成により、格納したアドレスと制御バス２１から転送されるアドレスとを連結することにより、制御バス２１のバス幅より大きいアドレスの生成が可能になる為、１度のアクセスで、バス幅の大きいプロセッサローカルバス１８へアクセスを行うことができる。また、上記構成により、レジスタ２７〜２９に不変アドレスを格納しておけば、制御バス２１から転送した可変アドレスと格納される不変アドレスとを連結して、制御バス２１から１回のアクセスで転送したいアドレスを特定できる為、アクセス回数を削減できる。
【００７４】
（第４の実施形態）
プロセッサ拡張バス１９と拡張機能バス２０は、命令並列プロセッサ４が機能ブロックへのアクセスによりこの機能ブロックを起動させる場合に、機能ブロックへのアクセスエラーを命令並列プロセッサ４に通知するレジスタアクセスエラーフラグを含む。具体的には、命令並列プロセッサ４がバス調停ユニット６を経由して座標変換プロセッサ１２や描画エンジン１３のレジスタをアクセスする際、レジスタアクセスに失敗した場合に座標変換プロセッサ１２あるいは描画エンジン１３がレジスタアクセスエラーフラグをアサートし、命令並列プロセッサ４に通知する。
【００７５】
命令並列プロセッサ４はレジスタアクセスエラーフラグをコンディションフラグとして分岐命令等に利用する。ここで描画エンジン１３におけるレジスタアクセスエラーフラグの活用方法について以下に述べる。
【００７６】
描画エンジン１３は、頂点座標や線分の傾き等、描画に必要なパラメータレジスタ群と、描画命令と起動フラグを設定する描画起動レジスタ、描画が終了しているかどうかを示す描画終了レジスタを備えている。
【００７７】
図１５は、通常の描画命令起動までのフローである。ステップＳ１５１で描画終了レジスタをリードする。次にステップＳ１５２で描画が終了しているかどうか判定し、描画が終了していればステップＳ１５３に進み、描画が終了していなければステップＳ１５１に戻って再度描画終了レジスタをリードする。ステップＳ１５３で描画命令に必要なパラメータレジスタ群を設定し、ステップＳ１５４で描画起動レジスタを設定し、描画命令を起動する。この場合には、描画終了レジスタをリードし描画終了かどうかの比較を行った結果をコンディションフラグとして分岐することになるため、処理時間がかかる。
【００７８】
（レジスタアクセスエラーフラグ）
図１６は、レジスタアクセスエラーフラグを用いた場合の描画命令起動までのフローチャートである。描画エンジン１３を例に、レジスタアクセスエラーフラグを使用する場合について説明する。ここでは、描画エンジン１３に描画実行中の描画エンジン１３へのアクセスを禁止する手段を設け、パラメータレジスタ群に次の描画命令のパラメータの書き込みがあった場合、パラメータ内容を書き換えずにレジスタアクセスエラーフラグをアサートするよう構成する。
【００７９】
図１６に示すように、ステップＳ１６１で一つ目のパラメータをパラメータレジスタに書き込む。この時、描画実行中であればレジスタアクセスエラーフラグがアサートされ、書き込み対象になったレジスタの内容は書き換わらない。また、描画終了していればレジスタアクセスエラーフラグはアサートされず、書き込み対象になったレジスタの内容が書き換わる。
【００８０】
次にステップＳ１６２でレジスタアクセスエラーフラグがアサートされているかどうか判定し、フラグがアサートされていなければステップＳ１６３に進み、フラグがアサートされていればステップＳ１６１に戻って再度一つ目のパラメータをパラメータレジスタに書き込む。ステップＳ１６３で残りのパラメータレジスタ群を設定し、ステップＳ１６４で描画起動レジスタを設定し、描画命令を起動する。
【００８１】
この構成によると、レジスタアクセスエラーフラグによってアクセスエラーが通知される為、描画終了レジスタをリードする必要がなく、レジスタアクセスエラーフラグを分岐のためのコンディションフラグにできる。この構成により、描画終了レジスタのリード及び比較を行う時間を削減することにより、高速に描画命令の起動を行うことができる。
【００８２】
（２段構成のレジスタ）
つづいて、描画エンジン１３の別の構成について述べる。描画エンジン１３のパラメータレジスタ群の中のそれぞれのパラメータについて、２段構成のレジスタを持つ。拡張機能バス２０からは１段目のレジスタに動作に必要なパラメータが書き込まれ、描画起動レジスタが設定され描画命令を起動した時に、１段目のレジスタの内容が２段目のレジスタにコピーされる。
【００８３】
描画エンジン１３は、２段目のレジスタのパラメータを基に描画を行う。これによれば、ある描画命令を実行している間に次の描画命令のパラメータを１段目のレジスタに書き込むことができるので、描画処理とパラメータ設定を並列に行えるという利点がある。
【００８４】
図１７は、２段構成のレジスタにおける通常の描画命令起動までのフローチャートである。ステップＳ１７１で描画命令に必要なパラメータを１段目のパラメータレジスタ群を設定した後、ステップＳ１７２で描画終了レジスタをリードする。次にステップＳ１７３で描画が終了しているか判定し、描画が終了していればステップＳ１７４に進み、描画が終了していなければステップＳ１７２に戻って再度描画終了レジスタをリードする。
【００８５】
ステップＳ１７４で描画起動レジスタを設定し、描画命令を起動する。この時、１段目のレジスタの内容が２段目のレジスタにコピーされ、描画エンジンは２段目のレジスタのパラメータを基に描画を行うため、次の描画命令のパラメータを１段目のレジスタに設定できるようになる。この場合も前述したものと同様に、描画終了レジスタをリードする期間が存在し、描画終了かどうかの比較を行った結果をコンディションフラグとして分岐することになる。
【００８６】
図１８は、２段構成のレジスタにおけるレジスタアクセスエラーフラグを用いた場合の描画命令起動までのフローチャートである。ステップＳ１８１で描画命令に必要なパラメータを１段目のパラメータレジスタ群に設定した後、ステップＳ１８２で描画起動レジスタを設定する。この時、描画実行中であればレジスタアクセスエラーフラグがアサートされ、描画命令は起動されず、１段目のレジスタの内容が２段目のレジスタにコピーされることはない。
【００８７】
また、描画終了していればレジスタアクセスエラーフラグはアサートされず、描画命令が起動される。次にステップＳ１８３でレジスタアクセスエラーフラグがアサートされているかどうか判定し、フラグがアサートされていればステップＳ１８２に戻って再度描画起動レジスタを設定し、フラグがアサートされていなければ描画命令が起動されているので次の描画命令のパラメータを１段目のレジスタに設定できるようになる。
【００８８】
この構成によると、描画終了レジスタをリードする必要がなく、レジスタアクセスエラーフラグを分岐のためのコンディションフラグにできるので比較を行う必要もなく、高速に描画命令の起動を行うことができることに加え、描画処理とパラメータ設定を並列に行うことができる。
【００８９】
なお、以上、ローカルメモリからディスプレイリストを読み出す例を説明したが、ローカルメモリ以外のメモリから読み出してもよい。また、以上説明したグラフィックスプロセッサを、地図表示とＡＶ処理を同時に行うような高度カーナビゲーションシステムに搭載してもよい。
【産業上の利用可能性】
【００９０】
本発明は、ローカルメモリからプロセッサに対するデータを分割転送する転送手段を備えることにより、アクセス１回当りのローカルメモリ占有時間を抑えることができる為、ローカルメモリを使用する他の処理の開始が長時間待たされることがなくなり、システムの応答性が向上する効果を有し、情報処理装置等に有用である。
【図面の簡単な説明】
【００９１】
【図１】本発明の第１の実施形態を説明するためのグラフィックスプロセッサ、およびそのグラフィックスプロセッサが搭載されたグラフィックスシステムを説明するための概略構成を示す図
【図２】図１に示すグラフィックスプロセッサが行う処理の概要を示すフローチャート
【図３】命令並列プロセッサの動作状況を示す説明図
【図４】命令並列プロセッサの動作状況を示す説明図
【図５】長時間のロック状態を回避するためのバスエラー信号の説明図
【図６】本発明の第２の実施形態を説明するためのフローチャート
【図７】バス使用権要求信号を説明するためのバス調停ユニット６の内部構成図
【図８】バス調停ユニットのデータの流れについて説明するための図
【図９】図７に示すメモリアクセス調停部の動作を説明するためのフローチャート
【図１０】制御バス領域のアドレスマップを示す図
【図１１】プロセッサローカルバスのアドレスマップを示す図
【図１２】プロセッサローカルバスにおけるアクセスを説明するための図
【図１３】プロセッサローカルバスのバスプロトコルを示すタイムチャート
【図１４】プロセッサローカルバスにおける他のアクセスを説明するための図
【図１５】通常の描画命令起動までのフローチャート
【図１６】レジスタアクセスエラーフラグを用いた場合の描画命令起動までのフローチャート
【図１７】２段構成のレジスタにおける通常の描画命令起動までのフローチャート
【図１８】２段構成のレジスタにおけるレジスタアクセスエラーフラグを用いた場合の描画命令起動までのフローチャート
【符号の説明】
【００９２】
１  グラフィックスプロセッサ
２  命令メモリ
３  データメモリ
４  命令並列プロセッサ
５  内部メモリ制御ユニット
６  バス調停ユニット
７  ビデオ入力エンジン
８  ビデオ出力エンジン
９  オーディオインターフェース
１０  ローカルメモリインターフェース
１１  ＣＰＵインターフェース
１２  座標変換プロセッサ
１３  描画エンジン
１４  システムメモリ
１５  システムＣＰＵ
１６  表示モニタ
１７  ローカルメモリ
１８  プロセッサローカルバス
１９  プロセッサ拡張バス
２０  拡張機能バス
２１  制御バス
２２  メモリバス
２３  レジスタ制御バス
２４  データメモリバス
２５  命令メモリバス
２６  メモリアクセス調停部
２７  命令メモリ領域レジスタ
２８  データメモリ領域レジスタ
２９  その他の領域レジスタ
３０  プロセッサローカルバスアクセス調停部
３１  ＤＬ充填
３２  描画セットアップ処理
３３  描画エンジン制御
３４  機能ブロック処理
３５  メディア処理用命令充填
３６  メディア処理実施
３７  メモリバス用パス
３８  プロセッサ拡張バス用パス
３９  データメモリアクセス要求
４０  命令メモリアクセス要求
４１  レジスタ制御バスアクセス要求
４２  プロセッサ拡張バスアクセス要求
４３  制御バスアクセス要求
４４  メモリバスアクセス要求
【図１】
2005309229.tif 000003
【図２】
2005309229.tif 000004
【図３】
2005309229.tif 000005
【図４】
2005309229.tif 000006
【図５】
2005309229.tif 000007
【図６】
2005309229.tif 000008
【図７】
2005309229.tif 000009
【図８】
2005309229.tif 000010
【図９】
2005309229.tif 000011
【図１０】
2005309229.tif 000012
【図１１】
2005309229.tif 000013
【図１２】
2005309229.tif 000014
【図１３】
2005309229.tif 000015
【図１４】
2005309229.tif 000016
【図１５】
2005309229.tif 000017
【図１６】
2005309229.tif 000018
【図１７】
2005309229.tif 000019
【図１８】
2005309229.tif 000020