(57)【特許請求の範囲】
【請求項１】
ホスト装置と、該ホスト装置にバスを介して接続される描画装置とを備えるデータ転送システムであって、
前記ホスト装置は、
記憶装置と、
前記描画装置による描画処理を制御するための複数の描画コマンドからなる描画コマンドセットを、前記描画処理におけるコンテキストに係る複数のコマンドからなるコンテキスト・コマンドセットと、前記描画処理におけるオブジェクトに係る複数のコマンドからなるオブジェクト・コマンドセットとに分割し、前記記憶装置に格納するコマンド分割格納手段と、
前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットそれぞれについて、その転送サイズと、前記記憶装置における格納先アドレスとを含むコマンド読取命令を前記描画装置に送信するコマンド読取命令送信手段と、を備え、
前記描画装置は、
前記コマンド読取命令を受信し、該コマンド読取命令の内容に従って、前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットを前記記憶装置から読み取るメモリアクセス制御手段を備え、
該メモリアクセス制御手段は、
受信した前記コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、読み取った当該コンテキスト・コマンドセットとを保持するコマンド情報保持手段を有し、
前記コマンド読取命令を受信した際、該コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、前記コマンド情報保持手段に保持されている前回のコンテキスト・コマンドセットの格納先アドレスとを比較し、両者が異なる場合に、今回の受信に係る前記コンテキスト・コマンドセットの格納先アドレスに従って、前記記憶装置から当該コンテキスト・コマンドセットを読み取り、両者が一致する場合には、前記記憶装置から当該コンテキスト・コマンドセットの読み取りを行わず、前記コマンド情報保持手段に保持されているコンテキスト・コマンドセットを利用する、
ことを特徴とするデータ転送システム。
【請求項２】
前記ホスト装置は、前記コマンド分割格納手段と、前記コマンド読取命令送信手段とを有するドライバを備える、
ことを特徴とする請求項１に記載のデータ転送システム。
【請求項３】
前記ホスト装置は、前記ドライバを複数備え、
前記描画装置の前記メモリアクセス制御手段は、前記複数のドライバそれぞれに対応する複数の前記コマンド情報保持手段を有する、
ことを特徴とする請求項２に記載のデータ転送システム。
【請求項４】
バスを介して接続されるホスト装置と描画装置との間のデータ転送を制御するためのデータ転送方法であって、
前記描画装置による描画処理を制御するための複数の描画コマンドからなる描画コマンドセットを、前記描画処理におけるコンテキストに係る複数のコマンドからなるコンテキスト・コマンドセットと、前記描画処理におけるオブジェクトに係る複数のコマンドからなるオブジェクト・コマンドセットとに分割し、前記ホスト装置が備える記憶装置に格納するコマンド分割格納ステップと、
前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットそれぞれについて、その転送サイズと、前記記憶装置における格納先アドレスとを含むコマンド読取命令を前記描画装置に送信するコマンド読取命令送信ステップと、
前記コマンド読取命令を受信し、該コマンド読取命令の内容に従って、前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットを前記記憶装置から読み取るメモリアクセス制御ステップと、
受信した前記コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、読み取った当該コンテキスト・コマンドセットとを、前記描画装置が備えるコマンド情報保持手段に保存するステップと、を有し、
前記メモリアクセス制御ステップでは、
前記コマンド読取命令を受信した際、該コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、前記コマンド情報保持手段に保存されている前回のコンテキスト・コマンドセットの格納先アドレスとが比較され、両者が異なる場合に、今回の受信に係る前記コンテキスト・コマンドセットの格納先アドレスに従って、前記記憶装置から当該コンテキスト・コマンドセットが読み取られ、両者が一致する場合には、前記記憶装置から当該コンテキスト・コマンドセットの読み取りは行われず、前記コマンド情報保持手段に保存されているコンテキスト・コマンドセットが利用される、
ことを特徴とするデータ転送方法。
【請求項５】
記憶装置と、
バスを介して接続される描画装置による描画処理を制御するための複数の描画コマンドからなる描画コマンドセットを、前記描画処理におけるコンテキストに係る複数のコマンドからなるコンテキスト・コマンドセットと、前記描画処理におけるオブジェクトに係る複数のコマンドからなるオブジェクト・コマンドセットとに分割し、前記記憶装置に格納するコマンド分割格納手段と、
前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットそれぞれについて、その転送サイズと、前記記憶装置における格納先アドレスとを含むコマンド読取命令を前記描画装置に送信するコマンド読取命令送信手段と、を備え、
該コマンド読取命令送信手段が送信した前記コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスが、前回送信したコマンド読取命令に係るコンテキスト・コマンドセットの格納先アドレスと一致しない場合のみ、当該送信したコマンド読取命令に応答した前記描画装置によって、前記記憶装置に格納されている当該コンテキスト・コマンドセットの読み取りが行われる、
ことを特徴とするホスト装置。
【請求項６】
バスを介して接続されるホスト装置からのコマンド読取命令を受信し、該コマンド読取命令の内容に従って、描画コマンドセットを構成するコンテキスト・コマンドセット及びオブジェクト・コマンドセットを前記ホスト装置が備える記憶装置から読み取るメモリアクセス制御手段を備え、
前記コマンド読取命令には、前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットそれぞれについて、その転送サイズと、前記記憶装置における格納先アドレスとが含まれ、
前記メモリアクセス制御手段は、
受信した前記コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、読み取った当該コンテキスト・コマンドセットとを保持するコマンド情報保持手段を有し、
前記コマンド読取命令を受信した際、該コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、前記コマンド情報保持手段に保持されている前回のコンテキスト・コマンドセットの格納先アドレスとを比較し、両者が異なる場合に、今回の受信に係る前記コンテキスト・コマンドセットの格納先アドレスに従って、前記記憶装置から当該コンテキスト・コマンドセットを読み取り、両者が一致する場合には、前記記憶装置から当該コンテキスト・コマンドセットの読み取りを行わず、前記コマンド情報保持手段に保持されているコンテキスト・コマンドセットを利用する、
ことを特徴とする描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画処理を制御するためのコマンドセットをホスト装置から描画装置に転送するシステム及び方法に関する。
【背景技術】
【０００２】
従来より、パソコン等にバスを介して接続され、拡張した描画処理を実現する描画装置（例えば、グラフィックスカード等）はよく知られている。かかる描画装置は、パソコン等のＣＰＵ（ホストＣＰＵ）から描画処理に関するコマンド群（描画コマンドセット）の読取命令（転送サイズ及び格納先アドレスからなる）を受信すると、かかる読取命令の内容に従って、パソコン等の主記憶装置から当該描画コマンドセットを読み取る。そして、描画装置は、読み取った描画コマンドセットに従いコマンド処理（即ち、描画処理）を行う。
【０００３】
一般に、上記描画コマンドセットの各コマンド（描画コマンド）には、コンテキスト・コマンドと、オブジェクト・コマンドとが含まれる。コンテキスト（グラフィックス・コンテキストともいう）・コマンドとは、描画のために必要な動作モードの設定等に関するコマンドである。例えば、コンテキスト・コマンドには、各バッファ（描画結果を出力するためのバッファやフォント描画用のバッファ等）についてのメモリ上の先頭アドレス、ピクセルサイズやカラーフォーマット（ＲＧＢ、ＹＵＶ等）等、あるいは、色変換行列パラメータやＬＵＴ（ルックアップテーブル）値等が該当する。
【０００４】
オブジェクト・コマンドとは、描画対象を特定するための設定等に関するコマンドである。例えば、オブジェクト・コマンドには、座標データや拡大、縮小、回転等の処理を行うための座標変換行列パラメータ等が該当する。
【０００５】
ところで、上記描画装置によるパソコン等の主記憶装置からの描画コマンドセットの読み取り処理において、描画処理の特質性から、読み取った描画コマンドセットのコンテキスト・コマンド群（コンテキスト・コマンドセット）は、複数回連続して同一となるケースが多い。つまり、コンテキスト・コマンドセットは局所性を有するといえる。
【０００６】
従来、描画装置は、このような場合においてもコンテキスト・コマンドセットを含む描画コマンドセット全体を主記憶装置から逐次読み取っていた。したがって、一回の読み取りの際のデータ量（転送サイズ）が大きく、データ転送の効率性向上を阻害する要因となっていた。
【０００７】
例えば、描画コマンドセットの転送に関し、データ転送の際の負荷軽減を目的とした技術が、特許文献１に提案されている。
【０００８】
【特許文献１】特開２００３−５０７７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記特許文献１には、上述したコンテキスト・コマンドセットの局所性に基づいたデータ転送の効率性向上に関する技術については、開示も示唆もされていない。
【００１０】
本発明は、上記実状に鑑みてなされたものであり、描画装置を制御するためのコマンドセットをホスト装置から当該描画装置に効率的に転送することのできるデータ転送システム及びデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明のデータ転送システムは、
ホスト装置と、該ホスト装置にバスを介して接続される描画装置とを備えるデータ転送システムであって、
前記ホスト装置は、
記憶装置と、
前記描画装置による描画処理を制御するための複数の描画コマンドからなる描画コマンドセットを、前記描画処理におけるコンテキストに係る複数のコマンドからなるコンテキスト・コマンドセットと、前記描画処理におけるオブジェクトに係る複数のコマンドからなるオブジェクト・コマンドセットとに分割し、前記記憶装置に格納するコマンド分割格納手段と、
前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットそれぞれについて、その転送サイズと、前記記憶装置における格納先アドレスとを含むコマンド読取命令を前記描画装置に送信するコマンド読取命令送信手段と、を備え、
前記描画装置は、
前記コマンド読取命令を受信し、該コマンド読取命令の内容に従って、前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットを前記記憶装置から読み取るメモリアクセス制御手段と、を備え、
該メモリアクセス制御手段は、
受信した前記コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、読み取った当該コンテキスト・コマンドセットとを保持するコマンド情報保持手段を有し、
前記コマンド読取命令を受信した際、該コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、前記コマンド情報保持手段に保持されている前回のコンテキスト・コマンドセットの格納先アドレスとを比較し、両者が異なる場合に、今回の受信に係る前記コンテキスト・コマンドセットの格納先アドレスに従って、前記記憶装置から当該コンテキスト・コマンドセットを読み取り、両者が一致する場合には、前記記憶装置から当該コンテキスト・コマンドセットの読み取りを行わず、前記コマンド情報保持手段に保持されているコンテキスト・コマンドセットを利用する、ことを特徴とする。
【００１２】
上記構成のデータ転送システムにおいて、前記ホスト装置は、前記コマンド分割格納手段と、前記コマンド読取命令送信手段とを有するドライバを備えるようにしてもよい。
【００１３】
また、上記の場合、前記ホスト装置は、前記ドライバを複数備え、前記描画装置の前記メモリアクセス制御手段は、前記複数のドライバそれぞれに対応する複数の前記コマンド情報保持手段を有する構成にしてもよい。
【００１４】
また、本発明のデータ転送方法は、
バスを介して接続されるホスト装置と描画装置との間のデータ転送を制御するためのデータ転送制御方法であって、
前記描画装置による描画処理を制御するための複数の描画コマンドからなる描画コマンドセットを、前記描画処理におけるコンテキストに係る複数のコマンドからなるコンテキスト・コマンドセットと、前記描画処理におけるオブジェクトに係る複数のコマンドからなるオブジェクト・コマンドセットとに分割し、前記ホスト装置が備える記憶装置に格納するコマンド分割格納ステップと、
前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットそれぞれについて、その転送サイズと、前記記憶装置における格納先アドレスとを含むコマンド読取命令を前記描画装置に送信するコマンド読取命令送信ステップと、
前記コマンド読取命令を受信し、該コマンド読取命令の内容に従って、前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットを前記記憶装置から読み取るメモリアクセス制御ステップと、
受信した前記コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、読み取った当該コンテキスト・コマンドセットとを、前記描画装置が備えるコマンド情報保持手段に保存するステップと、を有し、
前記メモリアクセス制御ステップでは、
前記コマンド読取命令を受信した際、該コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、前記コマンド情報保持手段に保存されている前回のコンテキスト・コマンドセットの格納先アドレスとが比較され、両者が異なる場合に、今回の受信に係る前記コンテキスト・コマンドセットの格納先アドレスに従って、前記記憶装置から当該コンテキスト・コマンドセットが読み取られ、両者が一致する場合には、前記記憶装置から当該コンテキスト・コマンドセットの読み取りは行われず、前記コマンド情報保持手段に保存されているコンテキスト・コマンドセットが利用される、ことを特徴とする。
【００１５】
また、本発明のホスト装置は、
記憶装置と、
バスを介して接続される描画装置による描画処理を制御するための複数の描画コマンドからなる描画コマンドセットを、前記描画処理におけるコンテキストに係る複数のコマンドからなるコンテキスト・コマンドセットと、前記描画処理におけるオブジェクトに係る複数のコマンドからなるオブジェクト・コマンドセットとに分割し、前記記憶装置に格納するコマンド分割格納手段と、
前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットそれぞれについて、その転送サイズと、前記記憶装置における格納先アドレスとを含むコマンド読取命令を前記描画装置に送信するコマンド読取命令送信手段と、を備え、
該コマンド読取命令送信手段が送信した前記コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスが、前回送信したコマンド読取命令に係るコンテキスト・コマンドセットの格納先アドレスと一致しない場合のみ、当該送信したコマンド読取命令に応答した前記描画装置によって、前記記憶装置に格納されている当該コンテキスト・コマンドセットの読み取りが行われる、ことを特徴とする。
【００１６】
また、本発明の描画装置は、
バスを介して接続されるホスト装置からのコマンド読取命令を受信し、該コマンド読取命令の内容に従って、描画コマンドセットを構成するコンテキスト・コマンドセット及びオブジェクト・コマンドセットを前記ホスト装置が備える記憶装置から読み取るメモリアクセス制御手段を備え、
前記コマンド読取命令には、前記コンテキスト・コマンドセット及び前記オブジェクト・コマンドセットそれぞれについて、その転送サイズと、前記記憶装置における格納先アドレスとが含まれ、
前記メモリアクセス制御手段は、
受信した前記コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、読み取った当該コンテキスト・コマンドセットとを保持するコマンド情報保持手段を有し、
前記コマンド読取命令を受信した際、該コマンド読取命令に含まれるコンテキスト・コマンドセットの格納先アドレスと、前記コマンド情報保持手段に保持されている前回のコンテキスト・コマンドセットの格納先アドレスとを比較し、両者が異なる場合に、今回の受信に係る前記コンテキスト・コマンドセットの格納先アドレスに従って、前記記憶装置から当該コンテキスト・コマンドセットを読み取り、両者が一致する場合には、前記記憶装置から当該コンテキスト・コマンドセットの読み取りを行わず、前記コマンド情報保持手段に保持されているコンテキスト・コマンドセットを利用する、ことを特徴とする。
【発明の効果】
【００１７】
以上の如く、本発明によれば、描画装置を制御するためのコマンドセットをホスト装置から当該描画装置に効率的に転送することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明に係るデータ転送システムの実施形態について図面を参照して説明する。
【００１９】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るデータ転送システムの全体構成図である。本実施形態のデータ転送システムは、パソコン（パーソナルコンピュータ）等のホスト装置１と、ホスト装置１に外部バス３を介して接続されるグラフィックスカード等の描画装置２とから構成される。
【００２０】
ホスト装置１は、ホストＣＰＵ１０と、主記憶装置１１とを備える。主記憶装置１１は、内部バス１２を介してホストＣＰＵ１０に接続されている。描画装置２は、メモリアクセス制御部２０と、コマンド処理部２１とを備える。コマンド処理部２１は、内部バス２２を介してメモリアクセス制御部２０に接続される。
【００２１】
ホストＣＰＵ１０は、ホスト装置１の制御を行うと共に、描画装置２を制御して描画処理を実行させる。ホストＣＰＵ１０は、ドライバ１００を備え、かかるドライバ１００により描画装置２が制御される。ドライバ１００は、コマンド分割格納部１０１と、コマンド読取命令送信部１０２とを有する。
【００２２】
コマンド分割格納部１０１は、描画装置２に特定の描画処理を実行させる際、当該描画処理に対応する描画コマンドセット１１０（図２参照）をコンテキスト・コマンドセット１１１と、オブジェクト・コマンドセット１２１とに分割する。そして、コマンド分割格納部１０１は、コンテキスト・コマンドセット１１１と、オブジェクト・コマンドセット１２１とを内部バス１２を介して主記憶装置１１のそれぞれ決められた領域に格納（配置）する。このようなコマンド分割格納部１０１による描画コマンドセットの分割処理及び分割後の各コマンドセット（コンテキスト・コマンドセット１１１及びオブジェクト・コマンドセット１２１）の主記憶装置１１への格納処理を総称してコマンド分割格納処理という。
【００２３】
図２に示す描画コマンドセット１１０は、描画装置２に実行させたい描画処理に関する複数のコマンド（描画コマンド）をまとめたものである。描画コマンドは、コンテキスト・コマンドと、オブジェクト・コマンドとから構成される。コンテキスト・コマンドとは、描画のために必要な動作モードの設定等に関するコマンドである。例えば、コンテキスト・コマンドには、各バッファ（描画結果を出力するためのバッファやフォント描画用のバッファ等）についてのメモリ上の先頭アドレス、ピクセルサイズやカラーフォーマット（ＲＧＢ、ＹＵＶ等）等、あるいは、色変換行列パラメータやＬＵＴ（ルックアップテーブル）値等が該当する。オブジェクト・コマンドとは、描画対象を特定するための設定等に関するコマンドである。例えば、オブジェクト・コマンドには、座標データや拡大、縮小、回転等の処理を行うための座標変換行列パラメータ等が該当する。
【００２４】
コンテキスト・コマンドセット１１１は、複数のコンテキスト・コマンドをまとめたものであり、オブジェクト・コマンドセット１２１は、複数のオブジェクト・コマンドをまとめたものである。
【００２５】
コマンド分割格納部１０１によるコマンド分割格納処理について、図３及び図４を参照して詳細に説明する。例えば、描画装置２に実行させる初回の描画処理に対応する描画コマンドセットが、図３（ａ）に示す描画コマンドセット１１０Ａであり、次に実行させる描画処理に対応する描画コマンドセットが、図３（ｂ）に示す描画コマンドセット１１０Ｂである場合を例にして説明する。先ず、コマンド分割格納部１０１は、描画コマンドセット１１０Ａをコンテキスト・コマンドセット１１１Ａと、オブジェクト・コマンドセット１２１Ａとに分割する。そして、コマンド分割格納部１０１は、それぞれを主記憶装置１１のそれぞれ決められた領域（コンテキスト・コマンドセット格納領域、オブジェクト・コマンドセット格納領域）に格納する。
【００２６】
次に、コマンド分割格納部１０１は、描画コマンドセット１１０Ｂをコンテキスト・コマンドセット１１１Ａと、オブジェクト・コマンドセット１２１Ｂとに分割する。ここで、コンテキスト・コマンドセット１１１Ａは、既に主記憶装置１１に格納されているため、コマンド分割格納部１０１は、オブジェクト・コマンドセット１２１Ｂのみを主記憶装置１１に格納する。その結果、主記憶装置１１には、図４に示すように、コンテキスト・コマンドセット１１１Ａ、オブジェクト・コマンドセット１２１Ａ及びオブジェクト・コマンドセット１２１Ｂが格納される。
【００２７】
このように、コマンド分割格納部１０１によるコマンド分割格納処理では、同一のコンテキスト・コマンドセット１１１を連続して再格納（再配置）するといった無用な処理を回避しているため、主記憶装置１１へのコマンドセットの配置効率の向上が図れる。また、コンテキスト・コマンドセット１１１が重複格納されずに済むため、主記憶装置１１の容量（メモリサイズ）の低減も図れる。
【００２８】
次に、コマンド読取命令送信部１０２によるコマンド読取命令送信処理について説明する。コマンド分割格納部１０１により主記憶装置１１へのコマンドセットの配置が完了すると、図１に示すように、コマンド読取命令送信部１０２は、コマンド読取命令１０５を外部バス３を介して描画装置２に対して発行する。図５に示すように、コマンド読取命令１０５には、コンテキスト・コマンドセット転送サイズ１３０と、コンテキスト・コマンドセット先頭アドレス１３１と、オブジェクト・コマンドセット転送サイズ１３２と、オブジェクト・コマンドセット先頭アドレス１３３とが含まれている。
【００２９】
コンテキスト・コマンドセット転送サイズ１３０は、主記憶装置１１に格納されたコンテキスト・コマンドセット１１１のサイズ（バイト数）を示す。コンテキスト・コマンドセット先頭アドレス１３１は、コンテキスト・コマンドセット１１１を格納する主記憶装置１１のメモリ領域の先頭アドレスを示す。同様に、オブジェクト・コマンドセット転送サイズ１３２は、主記憶装置１１に格納されたオブジェクト・コマンドセット１２１のサイズを示し、オブジェクト・コマンドセット先頭アドレス１３３は、オブジェクト・コマンドセット１２１を格納する主記憶装置１１のメモリ領域の先頭アドレスを示す。
【００３０】
例えば、コマンドセットの主記憶装置１１への配置が、図４に示すような場合、ドライバ１００は、図６（ａ）に示すコマンド読取命令１０５Ａと、図６（ｂ）に示すコマンド読取命令１０５Ｂとを描画装置２に対して発行する。
【００３１】
続いて、図１に戻り、描画装置２のメモリアクセス制御部２０が実行するメモリアクセス制御処理について説明する。主記憶装置１１に格納されているコマンドセット（コンテキスト・コマンドセット１１１及びオブジェクト・コマンドセット１２１）の描画装置２への転送は、ＤＭＡ（Direct Memory Access）方式にて行われる。即ち、メモリアクセス制御部２０は、コマンド読取命令送信部１０２からのコマンド読取命令１０５を受信すると、かかるコマンド読取命令１０５の内容に従い、主記憶装置１１に直接アクセスして、コンテキスト・コマンドセット１１１及びオブジェクト・コマンドセット１２１の読み取りを行う。読み取ったコンテキスト・コマンドセット１１１及びオブジェクト・コマンドセット１２１は、内部バス２２を介して、コマンド処理部２１に送られる。そして、コマンド処理部２１にて、読み取ったコンテキスト・コマンドセット１１１及びオブジェクト・コマンドセット１２１に従ったコマンド処理（即ち、描画処理）が実行される。
【００３２】
また、メモリアクセス制御部２０によるメモリアクセス制御処理は、受信したコマンド読取命令１０５に示された読み取るべきコンテキスト・コマンドセット１１１が、前回読み取ったコンテキスト・コマンドセット１１１と同一の場合、コンテキスト・コマンドセット１１１の読み取りを行わないという本発明特有の処理を行う。以下、かかる特有の処理について説明する。
【００３３】
メモリアクセス制御部２０は、受信したコマンド読取命令１０５のコンテキスト・コマンドセット先頭アドレス１３１のアドレス値と、主記憶装置１１から読み取ったコンテキスト・コマンドセット１１１とを保持するコマンド情報保持部２００を備える。図７に示すように、コマンド情報保持部２００は、アドレス保持部２０１と、コマンドセット保持部２０２とを備える。
【００３４】
アドレス保持部２０１は、受信したコマンド読取命令１０５のコンテキスト・コマンドセット先頭アドレス１３１が示すアドレス値を保持するためのレジスタである。コマンドセット保持部２０２は、主記憶装置１１から読み取ったコンテキスト・コマンドセット１１１を保持するためのＳＲＡＭ（Static RAM）等の高速な半導体メモリである。
【００３５】
メモリアクセス制御部２０は、コマンド読取命令送信部１０２からのコマンド読取命令１０５を受信すると、先ず、当該コマンド読取命令１０５のコンテキスト・コマンドセット先頭アドレス１３１が示すアドレス値（今回のアドレス値）を取得する。そして、メモリアクセス制御部２０は、取得した今回のアドレス値と、アドレス保持部２０１が保持しているアドレス値（即ち、前回受信したコマンド読取命令１０５のコンテキスト・コマンドセット先頭アドレス１３１が示すアドレス値）との比較を行う。
【００３６】
その比較の結果、両者が不一致の場合は、メモリアクセス制御部２０は、受信したコマンド読取命令１０５のコンテキスト・コマンドセット転送サイズ１３０が示す転送サイズ（バイト数）を取得する。そして、メモリアクセス制御部２０は、主記憶装置１１にアクセスし、今回のアドレス値から取得した転送サイズ分のデータを読み取ることで、コンテキスト・コマンドセット１１１を取得する。
【００３７】
一方、両者が一致する場合は、メモリアクセス制御部２０は、コンテキスト・コマンドセット１１１の主記憶装置１１からの読み取りは不要であると判断する。この場合、メモリアクセス制御部２０は、コマンドセット保持部２０２に保持されているコンテキスト・コマンドセット１１１をコマンド処理部２１に送出する。
【００３８】
メモリアクセス制御部２０によるメモリアクセス制御処理について、さらに、具体例を挙げて説明する。例えば、コマンドセットの主記憶装置１１への配置が、図４に示すような場合であり、コマンド読取命令送信部１０２から、初回のコマンド読取命令として、図６（ａ）に示すコマンド読取命令１０５Ａが描画装置２に対して発行され、その次に、図６（ｂ）に示すコマンド読取命令１０５Ｂが発行されたケースについて説明する。
【００３９】
先ず、メモリアクセス制御部２０は、コマンド読取命令１０５Ａについての処理を行う。メモリアクセス制御部２０は、今回のアドレスとして、当該コマンド読取命令１０５Ａのコンテキスト・コマンドセット先頭アドレス１３１が示すアドレス値（即ち、コンテキスト・コマンドセット１１１Ａの先頭アドレス）を取得する。そして、メモリアクセス制御部２０は、取得した今回のアドレス値と、アドレス保持部２０１が保持しているアドレス値（前回のアドレス値）との比較を行う。この場合、コマンド読取命令１０５Ａは、初回のコマンド読取命令であるため、両者は、不一致となる（前回のアドレス値は、“ＮＵＬＬ”となっている。）。
【００４０】
したがって、メモリアクセス制御部２０は、主記憶装置１１にアクセスし、コンテキスト・コマンドセット１１１Ａを読み取る。また、メモリアクセス制御部２０は、読み取ったコンテキスト・コマンドセット１１１をコマンド情報保持部２００のコマンドセット保持部２０２に保存し、アドレス保持部２０１に今回のアドレス値を保存する。次に、メモリアクセス制御部２０は、主記憶装置１１にアクセスし、オブジェクト・コマンドセット１２１Ａを読み取る。メモリアクセス制御部２０により主記憶装置１１から読み取られたコンテキスト・コマンドセット１１１Ａ及びオブジェクト・コマンドセット１２１Ａは、コマンド処理部２１に送出される。
【００４１】
次に、メモリアクセス制御部２０は、コマンド読取命令１０５Ｂについての処理を行う。この場合も上記同様に、メモリアクセス制御部２０は、今回のアドレスとして、当該コマンド読取命令１０５Ｂのコンテキスト・コマンドセット先頭アドレス１３１が示すアドレス値（即ち、コンテキスト・コマンドセット１１１Ａの先頭アドレス）を取得する。メモリアクセス制御部２０は、取得した今回のアドレス値と、アドレス保持部２０１が保持している前回のアドレス値との比較を行う。この場合、両者は一致するため、メモリアクセス制御部２０は、コンテキスト・コマンドセット１１１Ａの読み取りは行わず、オブジェクト・コマンドセット１２１Ｂのみを主記憶装置１１から読み取る。そして、メモリアクセス制御部２０は、コマンドセット保持部２０２からコンテキスト・コマンドセット１１１Ａを取得し、このコンテキスト・コマンドセット１１１Ａと、主記憶装置１１から読み取ったオブジェクト・コマンドセット１２１Ｂとをコマンド処理部２１に送出する。
【００４２】
以上のように、メモリアクセス制御部２０によるメモリアクセス制御処理では、同一のコンテキスト・コマンドセット１１１を連続して読み取る必要がないため、主記憶装置１１からのコマンドセットの読み取り効率（即ち、データ転送効率）が向上する。
【００４３】
次に、本実施形態のデータ転送システムが実行するデータ転送制御処理（即ち、上述したコマンド分割格納処理、コマンド読取命令送信処理及びメモリアクセス制御処理からなる一連の処理）の手順を図８のフローチャートに沿って説明する。ホスト装置１の図示しない入力装置を介して、ユーザにより描画処理の条件（各種パラメータ）及び描画処理の開始指令が入力されると、ホストＣＰＵ１０による描画装置２の制御が開始される。データ転送制御処理は、ホストＣＰＵ１０による描画コマンドセットの生成後、開始される。
【００４４】
先ず、コマンド分割格納部１０１は、描画コマンドセットをコンテキスト・コマンドセット１１１と、オブジェクト・コマンドセット１２１とに分割する（ステップＳ１０１）。次に、コマンド分割格納部１０１は、コンテキスト・コマンドセット１１１と、オブジェクト・コマンドセット１２１とを内部バス１２を介して主記憶装置１１のそれぞれ決められた領域に格納（配置）する（ステップＳ１０２）。その際、コマンド分割格納部１０１は、配置しようとするコンテキスト・コマンドセット１１１が、既に主記憶装置１１に配置されているか否かをチェックし、配置済みである場合には、コンテキスト・コマンドセット１１１の配置を行わず、オブジェクト・コマンドセット１２１のみを主記憶装置１１に配置する。
【００４５】
コマンドセットの配置が完了すると、コマンド読取命令送信部１０２は、描画装置２に対して、コマンド読取命令１０５を発行する（ステップＳ１０３）。描画装置２のメモリアクセス制御部２０は、かかるコマンド読取命令１０５を受信すると（ステップＳ１０４）、当該コマンド読取命令１０５のコンテキスト・コマンドセット先頭アドレス１３１が示すアドレス値（今回のアドレス値）を取得する。また、メモリアクセス制御部２０は、コマンド情報保持部２００のアドレス保持部２０１にて保持されているアドレス値（前回のアドレス値）を取り出す。そして、メモリアクセス制御部２０は、今回のアドレス値と前回のアドレス値との比較を行う（ステップＳ１０５）。
【００４６】
その結果、両者が不一致の場合（ステップＳ１０６でＮｏ）、メモリアクセス制御部２０は、受信したコマンド読取命令１０５のコンテキスト・コマンドセット転送サイズ１３０が示す転送サイズ（バイト数）と、今回のアドレス値とを使用して主記憶装置１１からコンテキスト・コマンドセット１１１を読み取る（ステップＳ１０７）。メモリアクセス制御部２０は、読み取ったコンテキスト・コマンドセット１１１をコマンド情報保持部２００のコマンドセット保持部２０２に保存する（ステップＳ１０８）。また、メモリアクセス制御部２０は、コマンド情報保持部２００のアドレス保持部２０１に今回のアドレス値を保存する（ステップＳ１０９）。一方、両者が一致する場合（ステップＳ１０６でＹｅｓ）、コンテキスト・コマンドセット１１１の読み取りは行われず、ステップＳ１１０の処理に移行する。
【００４７】
ステップＳ１０６でＹｅｓの場合、あるいは、ステップＳ１０９の処理後、メモリアクセス制御部２０は、受信したコマンド読取命令１０５からオブジェクト・コマンドセット転送サイズ１３２が示す転送サイズ（バイト数）と、オブジェクト・コマンドセット先頭アドレス１３３が示すアドレス値を取得する。そして、メモリアクセス制御部２０は、取得した転送サイズと、アドレス値とを使用して主記憶装置１１からオブジェクト・コマンドセット１２１を読み取る（ステップＳ１１０）。
【００４８】
以上のデータ転送制御処理により、メモリアクセス制御部２０が取得したコンテキスト・コマンドセット１１１及びオブジェクト・コマンドセット１２１は、コマンド処理部２１に送出される。そして、コマンド処理部２１にて、取得したコンテキスト・コマンドセット１１１及びオブジェクト・コマンドセット１２１に従ったコマンド処理（即ち、描画処理）が実行される。
【００４９】
以上説明したように、本実施形態のデータ転送システムによれば、描画装置２を制御するためのコマンドセット（コンテキスト・コマンドセット１１１、オブジェクト・コマンドセット１２１）をホスト装置１から描画装置２に効率的に転送することができる。
【００５０】
なお、上記フローチャートにおける各処理は、その順序に限定されるものではなく、本発明の趣旨を逸脱しない範囲において任意に順序を変更することができる。
【００５１】
［第２の実施形態］
図９は、本発明の第２の実施形態に係るデータ転送システムの全体構成図である。本実施形態のデータ転送システムは、第１の実施形態のデータ転送システム（図１参照）と同様、ホスト装置１と、描画装置２とから構成される。本実施形態のデータ転送システムでは、ホスト装置１のホストＣＰＵ１０が、２つのドライバ（１００Ａ、１００Ｂ）を備え、また、描画装置２のメモリアクセス制御部２０が、これらのドライバそれぞれに対応したコマンド情報保持部（２００Ａ、２００Ｂ）を備えている。
【００５２】
ドライバ１００Ａ、ドライバ１００Ｂは、第１の実施形態のドライバ１００と同様、コマンド分割格納部１０１と、コマンド読取命令送信部１０２とを有する。ドライバ１００Ａ、ドライバ１００Ｂは、互いに独立してコマンド分割格納処理及びコマンド読取命令送信処理を実行し、描画装置２の制御を行う。
【００５３】
メモリアクセス制御部２０が備えるコマンド情報保持部２００Ａ、コマンド情報保持部２００Ｂは、第１の実施形態のコマンド情報保持部２００と同様、アドレス保持部２０１と、コマンドセット保持部２０２とを備える。コマンド情報保持部２００Ａは、ドライバ１００Ａからのコマンド読取命令１０５に基づいたデータ（即ち、コンテキスト・コマンドセット先頭アドレス１３１のアドレス値及び主記憶装置１１から読み取ったコンテキスト・コマンドセット１１１）を保持する。コマンド情報保持部２００Ｂは、ドライバ１００Ｂからのコマンド読取命令１０５に基づいたデータを保持する。
【００５４】
図１０は、本実施形態のメモリアクセス制御部２０が実行するメモリアクセス制御処理の処理状態の変遷を具体例を挙げて説明するためのタイミングチャートである。図１０において、ドライバ１００Ａ及びドライバ１００Ｂそれぞれのコマンド分割格納部１０１は、Ｔ３０１の時点からコマンドセットの主記憶装置１１への配置を開始し、Ｔ３０２の時点で配置を完了する。
【００５５】
図１１に、本具体例でのコマンドセットの配置完了時点（Ｔ３０２）における主記憶装置１１のコマンドセット配置状況を示す。図１１に示すように、ドライバ１００Ａのコマンド分割格納部１０１により、コンテキスト・コマンドセット１１１Ａ、オブジェクト・コマンドセット１２１Ａ及びオブジェクト・コマンドセット１２１Ｂが、主記憶装置１１のドライバ１００Ａ用のコマンドセット配置領域に配置されている。また、ドライバ１００Ｂのコマンド分割格納部１０１により、コンテキスト・コマンドセット１１１Ｂ、オブジェクト・コマンドセット１２１Ｃ及びオブジェクト・コマンドセット１２１Ｄが、主記憶装置１１のドライバ１００Ｂ用のコマンドセット配置領域に配置されている。
【００５６】
ドライバ１００Ａ及びドライバ１００Ｂそれぞれのコマンド読取命令送信部１０２は、Ｔ３０２の時点から描画装置２に対して、コマンド読取命令１０５の発行を開始する。図１１に示す配置状況においては、ドライバ１００Ａのコマンド読取命令送信部１０２により、図１２（ａ）に示すコマンド読取命令１０５Ａが、描画装置２に対して発行され、次に、図１２（ｂ）に示すコマンド読取命令１０５Ｂが発行される。また、これと略同時に、ドライバ１００Ｂのコマンド読取命令送信部１０２により、図１２（ｃ）に示すコマンド読取命令１０５Ｃが発行され、次に、図１２（ｄ）に示すコマンド読取命令１０５Ｄが発行される。
【００５７】
上記の如く、ドライバ１００Ａ及びドライバ１００Ｂそれぞれのコマンド読取命令送信部１０２により略同時に発行された各コマンド読取命令１０５（Ａ〜Ｄ）は、メモリアクセス制御部２０に、例えば、図１３に示すような順番で到達する。図１３に示すように、本例では、先ず、コマンド読取命令１０５Ａが到達し、続いて、コマンド読取命令１０５Ｃ、コマンド読取命令１０５Ｂ、コマンド読取命令１０５Ｄが、順次、描画装置２のメモリアクセス制御部２０に到達する。
【００５８】
メモリアクセス制御部２０は、Ｔ３０３の時点において、コマンド読取命令１０５Ａについての処理を開始する。メモリアクセス制御部２０は、先ず、今回のアドレス値として、コマンド読取命令１０５Ａのコンテキスト・コマンドセット先頭アドレス１３１が示すアドレス値（即ち、コンテキスト・コマンドセット１１１Ａの先頭アドレス）を取得する。そして、メモリアクセス制御部２０は、ドライバ１００Ａに対応するコマンド情報保持部２００Ａのアドレス保持部２０１にて保持されているアドレス値（前回のアドレス値）を取り出し、今回のアドレス値と比較する。
【００５９】
メモリアクセス制御部２０は、コマンド読取命令１０５に含まれる図示しない情報（ドライバ判別フラグ）を使用して、送信元のドライバの種別を判別する。例えば、ドライバ判別フラグが、“０”の場合にドライバ１００Ａを示し、“１”の場合にドライバ１００Ｂを示す。
【００６０】
上記比較において、コマンド読取命令１０５Ａは、ドライバ１００Ａが発行する初回のコマンド読取命令であるため、両者は、不一致となる。したがって、メモリアクセス制御部２０は、主記憶装置１１にアクセスし、コンテキスト・コマンドセット１１１Ａを読み取る。また、メモリアクセス制御部２０は、読み取ったコンテキスト・コマンドセット１１１Ａをコマンド情報保持部２００Ａのコマンドセット保持部２０２に保存し、アドレス保持部２０１に今回のアドレス値を保存する。コンテキスト・コマンドセット１１１Ａの読み取りが完了すると（Ｔ３０４の時点）、メモリアクセス制御部２０は、主記憶装置１１にアクセスし、オブジェクト・コマンドセット１２１Ａの読み取りを行う。
【００６１】
コマンド読取命令１０５Ａについての処理が完了すると（Ｔ３０５の時点）、メモリアクセス制御部２０は、コマンド読取命令１０５Ｃについての処理を開始する。メモリアクセス制御部２０は、先ず、今回のアドレス値として、コマンド読取命令１０５Ｃのコンテキスト・コマンドセット先頭アドレス１３１が示すアドレス値（即ち、コンテキスト・コマンドセット１１１Ｂの先頭アドレス）を取得する。そして、メモリアクセス制御部２０は、ドライバ１００Ｂに対応するコマンド情報保持部２００Ｂのアドレス保持部２０１にて保持されているアドレス値（前回のアドレス値）を取り出し、今回のアドレス値と比較する。
【００６２】
この場合、コマンド読取命令１０５Ｃは、ドライバ１００Ｂが発行する初回のコマンド読取命令であるため、両者は、不一致となる。したがって、メモリアクセス制御部２０は、主記憶装置１１にアクセスし、コンテキスト・コマンドセット１１１Ｂを読み取る。また、メモリアクセス制御部２０は、読み取ったコンテキスト・コマンドセット１１１Ｂをコマンド情報保持部２００Ｂのコマンドセット保持部２０２に保存し、アドレス保持部２０１に今回のアドレス値を保存する。コンテキスト・コマンドセット１１１Ｂの読み取りが完了すると（Ｔ３０６の時点）、メモリアクセス制御部２０は、主記憶装置１１にアクセスし、オブジェクト・コマンドセット１２１Ｃの読み取りを行う。
【００６３】
コマンド読取命令１０５Ｃについての処理が完了すると（Ｔ３０７の時点）、メモリアクセス制御部２０は、コマンド読取命令１０５Ｂについての処理を開始する。ここで、コマンド読取命令１０５Ｂのコンテキスト・コマンドセット先頭アドレス１３１が示すアドレス値（コンテキスト・コマンドセット１１１Ａの先頭アドレス）は、コマンド読取命令１０５Ａについての処理で読み取ったコンテキスト・コマンドセット１１１Ａの格納先アドレスと一致する。したがって、かかる処理では、メモリアクセス制御部２０は、コンテキスト・コマンドセット１１１Ａの読み取りを行わず、オブジェクト・コマンドセット１２１Ｂのみを主記憶装置１１から読み取る。
【００６４】
コマンド読取命令１０５Ｂについての処理が完了すると（Ｔ３０８の時点）、メモリアクセス制御部２０は、コマンド読取命令１０５Ｄについての処理を開始する。ここで、コマンド読取命令１０５Ｄのコンテキスト・コマンドセット先頭アドレス１３１が示すアドレス値（コンテキスト・コマンドセット１１１Ｂの先頭アドレス）は、コマンド読取命令１０５Ｃについての処理で読み取ったコンテキスト・コマンドセット１１１Ｂの格納先アドレスと一致する。したがって、メモリアクセス制御部２０は、コンテキスト・コマンドセット１１１Ｂの読み取りを行わず、オブジェクト・コマンドセット１２１Ｄのみを主記憶装置１１から読み取る。
【００６５】
以上の具体例で理解できるように、複数のドライバ（１００Ａ、１００Ｂ）を備える本実施形態のデータ転送システムにおいても、描画装置２を制御するためのコマンドセット（コンテキスト・コマンドセット１１１、オブジェクト・コマンドセット１２１）をホスト装置１から描画装置２に効率的に転送することができる。
【００６６】
なお、本発明は、上記各実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
【００６７】
例えば、メモリアクセス制御部２０によるコマンド読取命令１０５についての処理は、メモリアクセス制御部２０に到達した順に実行されるのみならず、所定の優先度に従って実行されるようにしてもよい。この場合、コマンド読取命令１０５に処理の優先度を示す情報（優先度情報）を付加し、メモリアクセス制御部２０は、かかる優先度情報に従って、コマンドセットの読取処理を行うようにすればよい。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施形態に係るデータ転送システムの全体構成を示す図である。
【図２】描画コマンドセットの構成を示す図である。
【図３】第１の実施形態において、描画コマンドセットの構成の一例を示す図である。
【図４】第１の実施形態において、主記憶装置へのコマンドセットの配置状況の一例を示す図である。
【図５】コマンド読取命令の構成を示す図である。
【図６】第１の実施形態において、コマンド読取命令の構成の一例を示す図である。
【図７】コマンド情報保持部の構成を示す図である。
【図８】データ転送制御処理の手順を示すフローチャートである。
【図９】本発明の第２の実施形態に係るデータ転送システムの全体構成を示す図である。
【図１０】第２の実施形態におけるメモリアクセス制御処理の処理状態の変遷を説明するためのタイミングチャートである。
【図１１】第２の実施形態において、主記憶装置へのコマンドセットの配置状況の一例を示す図である。
【図１２】第２の実施形態において、コマンド読取命令の構成の一例を示す図である。
【図１３】第２の実施形態において、コマンド読取命令のメモリアクセス制御部への到達順番を示す図である。
【符号の説明】
【００６９】
１  ホスト装置
２  描画装置
３  外部バス
１０  ホストＣＰＵ
１１  主記憶装置
１２、２２  内部バス
２０  メモリアクセス制御部
２１  コマンド処理部
１００  ドライバ
１０１  コマンド分割格納部
１０２  コマンド読取命令送信部
１０５  コマンド読取命令
１１０  描画コマンドセット
１１１  コンテキスト・コマンドセット
１２１  オブジェクト・コマンドセット
１３０  コンテキスト・コマンドセット転送サイズ
１３１  コンテキスト・コマンドセット先頭アドレス
１３２  オブジェクト・コマンドセット転送サイズ
１３３  オブジェクト・コマンドセット先頭アドレス
２００  コマンド情報保持部
２０１  アドレス保持部
２０２  コマンドセット保持部
【図１】
0004378572.tif 000002
【図２】
0004378572.tif 000003
【図３】
0004378572.tif 000004
【図４】
0004378572.tif 000005
【図５】
0004378572.tif 000006
【図６】
0004378572.tif 000007
【図７】
0004378572.tif 000008
【図８】
0004378572.tif 000009
【図９】
0004378572.tif 000010
【図１０】
0004378572.tif 000011
【図１１】
0004378572.tif 000012
【図１２】
0004378572.tif 000013
【図１３】
0004378572.tif 000014