(57)【特許請求の範囲】
【請求項１】
高機能命令部と被演算データ部とを一語に含む命令データの処理を行うデータ処理装置であって、
処理対象となる命令データを記憶する命令データ記憶部と、
前記命令データ記憶部から転送された命令データを受け、この命令データに従って、処理を行う処理部と、
前記処理部が処理のために用いる命令コードを記憶する命令コード記憶部と、
前記処理部からアクセス可能であり、命令コードを記憶するための命令キャッシュメモリと、
前記処理部が処理を行う前に、その処理に係る命令データについて、高機能命令部のプリデコードを行うプリデコード部と、
前記プリデコード部によるプリデコード結果を基にして、前記命令キャッシュメモリに、前記命令コード記憶部から、前記処理部が処理を行うために要する命令コードを充填するキャッシュメモリ制御部と、
外部から供給される命令データおよび命令コードを受ける外部インターフェイス部とを備え、
前記プリデコード部は、
前記外部インターフェース部に設けられ、外部から供給された命令データが前記命令データ記憶部に転送される際に、当該命令データの高機能命令部をプリデコードし、かつ、
プリデコード結果を基にして、前記命令データに係る処理に必要な命令コード以外の命令コードが、前記命令コード記憶部に転送されるのを阻止するものである
ことを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高機能命令部と被演算データ部とから構成される命令データを処理するデータ処理装置における、命令キャッシュメモリの制御に関する技術に属する。
【０００２】
【従来の技術】
図１３は従来のデータ処理装置の構成の一例を示すブロック図である。図１３の構成例は、演算等の実処理や各処理の制御をともに行うプロセッサ５１と、プロセッサ５１用の命令キャッシュメモリ５２と、全命令を記憶するための主命令メモリ５３と、命令キャッシュメモリ５２への命令コードのキャッシング制御を行うキャッシュメモリ制御部５４と、主記憶５５とを備えている。
【０００３】
図１３に示すような従来のデータ処理装置では、命令メモリとして利用されるキャッシュメモリの書きこみや入れ替え等の制御は、キャッシュメモリ自体のＷＡＹ数の最適化や、コンパイラを用いて適切なアドレスマッピングを行い、実行またはフェッチされている命令のアドレスを参照し、そのアドレス以降の命令の先読みを行うことによって、行われていた。
【０００４】
【発明が解決しようとする課題】
データ処理装置が描画処理装置である場合、すなわち、処理対象となる命令データが、線描画、矩形描画といった高機能命令部と、描画する座標値の被演算データ部とからなる描画データである場合には、次のような問題が生じる。
【０００５】
すなわち、通常の描画処理装置では、描画データの高機能命令部をデコードすることによって、傾き演算や座標変換処理等の描画のための前処理が行われる。ところが、実行される処理は、線描画、文字表示といった各高機能命令の内容によって異なり、さらに同一の高機能命令であっても、座標変換処理の有無、実線表示か破線表示か、または矩形の塗りつぶしの有無等々、種々の描画モードに応じてその処理が異なってくる。
【０００６】
したがって、命令キャッシュメモリに充填されるべき命令コードは、描画データの高機能命令部に応じて異なるため、アドレスの先読みを用いた単純な制御では、最適なキャッシュメモリの制御は実現できない。
【０００７】
前記の問題に鑑み、本発明は、高機能命令部と被演算データ部とからなる命令データを扱うデータ処理装置において、命令キャッシュメモリの書きこみ、入れ替えの効率化を図ることを課題とする。
【０００８】
【課題を解決するための手段】
本発明は、命令データの高機能命令部をプリデコードし、このプリデコード結果から命令キャッシュメモリの制御を行うことによって、命令キャッシュメモリの最適な書きこみ、入れ替えを実現するものである。
【０００９】
具体的には、本発明は、高機能命令部と被演算データ部とを一語に含む命令データの処理を行うデータ処理装置として、処理対象となる命令データを記憶する命令データ記憶部と、前記命令データ記憶部から転送された命令データを受け、この命令データに従って処理を行う処理部と、前記処理部が処理のために用いる命令コードを記憶する命令コード記憶部と、前記処理部からアクセス可能であり、命令コードを記憶するための命令キャッシュメモリと、前記処理部が処理を行う前に、その処理に係る命令データについて高機能命令部のプリデコードを行うプリデコード部と、前記プリデコード部によるプリデコード結果を基にして、前記命令キャッシュメモリに前記命令コード記憶部から前記処理部が処理を行うために要する命令コードを充填するキャッシュメモリ制御部とを備えたものである。さらに、外部から供給された命令データを受ける外部インターフェイス部を備え、前記プリデコード部は、前記外部インターフェース部に設けられ、外部から供給された命令データが前記命令データ記憶部に転送される際に当該命令データの高機能命令部をプリデコードし、かつ、プリデコード結果を基にして、前記命令データに係る処理に必要な命令コード以外の命令コードが前記命令コード記憶部に転送されるのを阻止するものとする。
【００１０】
この発明によると、プリデコード部によって、処理前の命令データについて高機能命令部のプリデコードが行われる。そして、このプリデコード結果を基にして、キャッシュメモリ制御部によって、処理を行うために要する命令コードが命令キャッシュメモリに充填される。これにより、命令キャッシュメモリのヒット率を向上させることができ、命令キャッシュメモリの制御をより適切に実行することが可能になる。
【００１１】
さらに、命令データは、外部から供給されて命令データ記憶部に転送される際に、その高機能命令部がプリデコードされる。そして、プリデコード結果を基にして、命令データに係る処理に必要な命令コード以外の命令コードについて、命令コード記憶部への転送が阻止される。これにより、命令コード記憶部の容量の削減が可能になる。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００１３】
なお、ここでは説明の都合上、グラフィック処理用の描画データを処理する描画処理装置を例にとって説明するが、高機能命令部と被演算データ部とを一語に含む形式の命令データを処理するデータ処理装置であれば、本発明は同様に実施可能である。
【００１４】
（第１の実施形態）
図１は本発明の第１の実施形態に係るデータ処理装置としての描画処理装置の構成を示すブロック図である。図１に示す描画処理装置は、当該装置内の全体的な制御を行う描画制御部１と、描画制御部１が命令メモリとして直接アクセスを行う命令キャッシュメモリ２と、実際に描画を行う描画エンジン部３と、描画処理のために用いる命令コードを記憶した命令コード記憶部としてのマイクロコード記憶メモリ４と、描画を行うために処理対象となる描画データ（ＤＬ）を記憶する命令データ記憶部としてのＤＬメモリ５と、描画制御部１とＤＬメモリ５との間で描画データのやりとりを行うためのＤＬメモリインターフェイス（Ｉ／Ｆ）６と、ＤＬメモリ５から描画制御部１に送られた描画データを、描画制御部１が処理を開始する前にデコードするプリデコード部７と、プリデコード部７によるプリデコード結果を受け、描画制御部１が処理を行うために必要な命令コードをマイクロコード記憶メモリ４から命令キャッシュメモリ２に充填し、必要に応じて命令コードの入れ替え等の制御を行うキャッシュメモリ制御部（ＣＭＣ）８とを備えている。描画制御部１および描画エンジン３によって、処理部が構成されている。
【００１５】
図２（ａ）は描画データの一例であり、“Ｘ座標１０Ｙ座標１０の点描画”を表すものである。最初の１６ビットのコマンドＤＯＴが高機能命令部に相当し、次の３２ビットの座標値を表す部分が被演算データ部に相当する。また、図２（ｂ）は他の高機能命令部の例を示している。なお、被演算データ部のビット数は、描画データの処理内容や座標値の個数等に応じて変化する。
【００１６】
プリデコード部７は、図２に示すような描画データの高機能命令部のプリデコードを行い、この描画データがいかなる描画を実行するものであるか（例えば“座標変換付き、頂点数５の線描画”“基準点からの相対座標表示の塗りつぶしつき四角形描画”など）を求める。キャッシュメモリ制御部８は、プリデコード部７から送られた、処理を行うべき描画データの種類情報を受けて、命令キャッシュメモリ２の制御を行う。
【００１７】
図３は図１に示す描画処理装置における処理の流れを示すフローチャートである。図３を用いて、図１の描画処理装置の動作を説明する。
【００１８】
まずステップＳＡ１おいて、本描画処理装置を起動すると、キャッシュメモリ制御部８が、起動信号に応じて、マイクロコード記憶メモリ４から命令キャッシュメモリ２に、描画制御部１が当該装置の初期シーケンスを行うために必要な命令コードを充填する。
【００１９】
次にステップＳＡ２において、描画制御部１が命令コードを実行し、ＤＬメモリ５から必要な描画データを取りこむ。そしてステップＳＡ３において、プリデコード部７が、ステップＳＡ２で取りこまれた描画データについて、その高機能命令部をプリデコードし、種類を特定する。ステップＳＡ４において、プリデコード部７はステップＳＡ３におけるプリデコード結果を、キャッシュメモリ制御部８に転送する。
【００２０】
ステップＳＡ５において、キャッシュメモリ制御部８は、取り込まれた描画データの処理に要する命令コードが、命令キャッシュメモリ２に充填されているか否か、すなわちキャッシュがヒットしているか否かを調べる。キャッシュがヒットしておらず、命令コードの入れ替えまたは書き込みが必要と判断したとき（ＳＡ５でＹＥＳ）は、ステップＳＡ６において、マイクロコード記憶メモリ４から、必要な命令コードを命令キャッシュメモリ２に書きこむ。その後、ステップＳＡ７にすすむ。一方、キャッシュがヒットしているとき（ＳＡ５でＮＯ）は、そのままステップＳＡ７にすすむ。
【００２１】
ステップＳＡ７において、描画制御部１が、命令キャッシュメモリ２の命令コードに従い、描画データに対して前処理を行う。ステップＳＡ８において、ステップＳＡ７で前処理された描画データが、描画エンジン３に転送される。ステップＳＡ９において、描画エンジン３が転送された描画データを用いて描画処理を行う。ステップＳＡ１０において、描画制御部１が、全ての描画が終了したと判断したとき（ＹＥＳ）は処理を終了する一方、そうでなければステップＳＡ２に戻り、引き続き描画処理を実行する。
【００２２】
以上のように本実施形態によると、特殊な形式の描画データを、描画処理の実行前にプリデコードし、そのプリデコード結果を、命令キャッシュメモリの書きこみや入れ替えの制御に用いる。これにより、命令キャッシュメモリにおいて、より確実なキャッシュ管理を実現することが可能である。
【００２３】
（第２の実施形態）
図４は本発明の第２の実施形態に係る描画処理装置の構成を示すブロック図である。図４において、図１と共通の構成要素には、図１と同一の符号を付しており、ここではその詳細な説明を省略する。
【００２４】
図４の構成には、いくつかの特徴がある。まず、命令コードと、描画データとをともに記憶する共用メモリ（ＵＧＭ）９を備えている。すなわち、命令データ記憶部と命令コード記憶部とが、単一の共用メモリ９に設けられている。これにより、命令コード用と描画データ用のメモリを共通にすることができ、部品点数の削減が可能となる。
【００２５】
また、共用メモリ９と描画制御部１との間で描画データのやりとりを行うための共用メモリインターフェイス（ＵＧＭＩ／Ｆ）１０に、プリデコード部７Ａおよびキャッシュメモリ制御部（ＣＭＣ）８Ａが設けられている。加えて、プリデコード部７Ａによるプリデコード結果を記憶する命令キャッシュテーブル部１１が設けられている。
【００２６】
プリデコード部７Ａは共用メモリ９から描画制御部１に転送される描画データの高機能命令部のプリデコードを行う。命令キャッシュテーブル部１１は、プリデコード部７Ａのプリデコード結果とともに、共用メモリ９上の命令コードのアドレス対応マップを記憶する。キャッシュメモリ制御部８Ａは、命令キャッシュテーブル部１１を参照し、描画制御部１が処理を行うために必要な命令コードを、共用メモリ９から命令キャッシュメモリ２に充填し、必要に応じて命令コードの入れ替え等の制御を行う。
【００２７】
図５は命令キャッシュテーブル部１１に格納されるデータの例を示す図である。同図中、（ａ）は高機能命令部に該当するコマンドのみを格納する場合、（ｂ）は共用メモリ９とのアドレス対応まで実装した場合を示す。図５（ａ）の例では、点描画、線描画などの各コマンドについて、描画データに含まれた個数がコマンド数として示されている。図５（ｂ）の例では、コマンド数に加えて、各コマンドが格納された共用メモリ９におけるアドレスが示されている。
【００２８】
さらに、図４の構成は、共用メモリインターフェイス１０を介して描画制御部１に送られてくる描画データを保持し、かつ、描画制御部１による計算結果等の記憶装置としても用いられるワークメモリ１６と、ワークメモリ１６のアクセス領域の切替を行う選択器１７と、描画装置内ローカルバスのバスアクセス権の調停を行うバス調停器１８とを備えている。描画制御部１、描画エンジン３、ワークメモリ１６および選択器１７によって、処理部が構成されている。
【００２９】
また、ＣＰＵ１３は本描画処理装置のマスタとなり、主記憶部１４に格納された描画データを本描画処理装置に供給する。描画処理装置は、ＣＰＵ１３とのアクセスを行い、供給された描画命令を受ける外部インターフェイス部としてのＣＰＵインターフェイス（ＣＰＵＩ／Ｆ）１２を備えている。
【００３０】
図６は図４に示す描画処理装置における処理の流れを示すフローチャートである。図６を用いて、図４の描画処理装置の動作を説明する。
【００３１】
ステップＳＢ１において、ＣＰＵ１３が本描画処理装置を起動する。ステップＳＢ２において、ＣＰＵ１３が主記憶部１４から、描画データおよび命令コード群を共用メモリ９へ転送する。転送終了後、ステップＳＢ３において、描画制御部１が、ＣＰＵ１３が指定した領域の描画データをワークメモリ１６のバンク１に充填するために、共用メモリインターフェイス１０にリクエストを行う。
【００３２】
ステップＳＢ４において、共用メモリインターフェイス１０が描画開始データアドレスに応じて、描画データの転送を開始する。また描画データが共用メモリインターフェイス１０を通過する際に、プリデコード部７Ａが描画データの高機能命令部のプリデコードを行う。そして、この結果から、命令キャッシュテーブル部１１に、共用メモリ９上の命令コードのアドレスマップに加え、高機能命令の種類情報を示すテーブルを作成する。
【００３３】
ステップＳＢ５において、キャッシュメモリ制御部８Ａは、ステップＳＢ４で作成されたテーブルを元に、現在、命令キャッシュメモリ２にエントリーされている命令コード群に対して、書き込みを行う必要があるかをチェックする。書き込みが必要と判断したとき（ＳＢ５でＹＥＳ）は、ステップＳＢ６において、キャッシュメモリ制御部８がバス調停器１８に対してバス権の要求を行い、バス権を取得後、共用メモリ９から該当命令コード群を命令キャッシュメモリ２へ転送する。
【００３４】
以降のステップにおいて、ステップＳＢＡｎは描画処理のフローを、ステップＳＢＢｎはキャッシュメモリの管理処理のフローを、そしてステップＳＢＣｎは割り込み処理すなわち、キャッシュメモリのアクセスにおいてミスヒットが発生した場合における処理のフローをそれぞれ示す。
【００３５】
まず描画処理では、ステップＳＢＡ１において、描画制御部１が描画データのデコードを行い、例えば傾き演算、クリッピングまたは座標変換等の、実際に描画を行う前の処理を行う。そして、ステップＳＢＡ２において、前処理済みの描画データが描画制御部１から描画エンジン３に転送される。ステップＳＢＡ３において、描画エンジン３が、転送された描画データを用いて描画処理を行う。ステップＳＢＡ４において、描画制御部１はＣＰＵ１３から依頼された描画処理が終了したか否かをチェックし、終了したとき（ＹＥＳ）は、再びＣＰＵ１３から起動をかけられるまで待機状態に入る一方、終了していないとき（ＮＯ）はステップＳＢＡ１に戻り引き続き処理を続行する。
【００３６】
また、描画データの転送（ＳＢＡ２）を行いながら、ステップＳＢＡ５において、ワークメモリ１６について、描画制御部１がアクセスを行うバンクの切替が生じるか否かをチェックする。バンクの切替が生じるとき（ＹＥＳ）は、ステップＳＢＡ６において、切替信号が選択器１７およびキャッシュメモリ制御部８Ａに送られ、ワークメモリ１６の接続の切替、描画データ充填処理および命令キャッシュメモリ２のチェック等をスタートさせる。
【００３７】
一方、キャッシュメモリ管理処理は、初期シーケンスではステップＳＢＡ１よりも早く、それ以降は、ワークメモリ１６のバンク切替に応じて行われる。まずステップＳＢＢ１において、プリデコード部７Ａが描画データの高機能命令部のプリデコードを行い、ステップＳＢ４と同様に、命令キャッシュテーブル部１１に高機能命令の種類情報を示すテーブルを作成する。描画制御部１がワークメモリ１６の一方のバンクをアクセス中のときは、他方のバンクに対して、描画制御部１から要求のあった描画データの充填を行いながら、この他方のバンクに充填する描画データに関するテーブルを作成する。
【００３８】
そしてステップＳＢＢ２において、キャッシュメモリ制御部８Ａが、命令キャッシュテーブル部１１を参照し、ステップＳＢＢ１で作成されたテーブルを基にして、現充填対象バンクに対して描画制御部１が処理を行う際に、命令キャッシュメモリ２に現在エントリーされた命令コードについて入れ替えが必要であるか否かを判断する。入れ替えが必要であると判断したとき（ＳＢＢ２でＹＥＳ）、ワークメモリ１６のバンク切替信号が出力されると（ＳＢＡ６）、ステップＳＢＢ３において、キャッシュメモリ制御部８が、必要な命令コードを共用メモリ９から命令キャッシュメモリ２に書きこむ。
【００３９】
そして、ステップＳＢＡ４において描画終了と判断されるまで、以上の処理を繰り返す。
【００４０】
また、ミスヒット時の割り込み処理では、ステップＳＢＡ１で処理中の描画制御部１が、命令キャッシュメモリ２に必要な命令コードがないと判断した場合（ミスヒット）に、ステップＳＢＣ１において、ミスヒット割り込みが発生する。そして、ステップＳＢＣ２において、キャッシュメモリ制御部８は、バス調停器１８から強制的にバスアクセス権を獲得し、必要な命令コードを直ちに命令キャッシュメモリ２へ書きこむ。その後、割り込みにより中断していた処理が再開される。
【００４１】
図７は本実施形態に係る描画処理装置の動作を概念的に示すタイミングチャートである。図７では、対比のために、図１に示す第１の実施形態に係る描画処理装置の動作も併せて示している。なお図７では、第１の実施形態と条件を一致させるために、図４の構成において、命令メモリとして、ローカルメモリでなく、図１と同様に専用メモリが命令キャッシュメモリに接続されているものとしている。
【００４２】
図７から分かるように、第１の実施形態では、描画データ転送から描画までの処理がシリアルに実行されるのに対して、本実施形態では、プリデコード部７Ａを共用メモリインターフェイス部１０に設けたことによって、描画データの転送とプリデコードとが並列に実行可能になっている。また、ワークメモリ１６を２バンク構成にしたことによって、描画処理と、描画データの転送やキャッシュ制御が並列に実行可能になっている。すなわち、本実施形態によると、第１の実施形態よりも、処理速度の向上を図ることができる。
【００４３】
なお、本実施形態では、プリデコード部７Ａを共用メモリインターフェース部１０に設けるものとしたが、これに限られるものではなく、描画データが描画制御部に転送される際に当該描画データの高機能命令部をプリデコードすることが可能なところであれば、プリデコード部はどこに設けてもかまわない。例えば、描画データを記憶するメモリが共用メモリでなく単独のメモリである場合には、プリデコード部は、描画データがそのメモリから描画制御部に転送される経路上のどこかに設ければよい。
【００４４】
（第３の実施形態）
図８は本発明の第３の実施形態に係る描画処理装置の構成を示すブロック図である。図８において、図１または図４と共通の構成要素には、同一の符号を付しており、ここではその詳細な説明を省略する。図８の構成では、プリデコード部７Ｂおよびキャッシュメモリ制御部（ＣＭＣ）８Ｂが、共用メモリインターフェイス１０Ａではなく、外部インターフェイス部としてのＣＰＵインターフェイス１２Ａに設けられている。
【００４５】
プリデコード部７Ｂは、外部にある主記憶部１４から転送される描画データの高機能命令部のプリデコードを行い、また、その結果を用いて、共用メモリ９に送られる命令コードを最適に配置するためのアドレスマップを作成する。デコード結果と命令コードアドレスマップは、命令キャッシュテーブル部１１が記憶する。キャッシュメモリ制御部８Ｂは、命令キャッシュテ−ブル部１１を参照し、命令キャッシュメモリ２に対して命令コードの入れ替えや書きこみの制御を行う。
【００４６】
図９は図８に示す描画処理装置における処理の流れを示すフローチャートである。図９を用いて、図８の描画処理装置の動作を説明する。
【００４７】
ステップＳＣ１において、ＣＰＵ１３が本描画処理装置を起動する。すなわち制御を行う描画制御部１を起動する。ステップＳＣ２において、ＣＰＵ１３が主記憶部１４から、描画データおよび該当命令コードを共用メモリ９へ転送する。ステップＳＣ３において、描画データの転送中に、プリデコード部７Ｂが描画データの高機能命令部のプリデコードを行い、命令キャッシュテーブル部１１にその結果を記憶する。
【００４８】
そして、命令キャッシュテーブル部１１に記憶されたプリデコード結果を参照しながら、転送された描画データについて必要な命令コードのみを共用メモリ９に転送する。これと同時に、共用メモリ９上の命令コードについても、ヒット率の向上を実現するために、命令キャッシュテーブル部１１に格納された描画データのアドレスマップによって、最適にマッピングを行う。ここでいう「最適」とは、命令キャッシュメモリ２のＷＡＹ数を考慮して、共用メモリ９内のｉｎｄｅｘ部分のマッピングを最適にするのは当然のこととして、これに加えて、各高機能命令部に係るまとまった命令コード群を命令キャッシュメモリ２に連続アドレスで書きこみ可能にすることをいう。共用メモリ９上の命令コードアドレスマップも、命令キャッシュテーブル部１１に追加して記憶される。
【００４９】
ステップＳＣ４において、キャッシュメモリ制御部８Ｂが、命令キャッシュメモリ２にエントリーされている命令コード群に対して入れ替えや書きこみが必要であるか否かを判断する。必要と判断したとき（ＹＥＳ）は、ステップＳＣ５において共用メモリ９から該当命令コードを充填し、ステップＳＣ６にすすむ一方、充填の必要がないと判断したとき（ＮＯ）は、そのままステップＳＣ６にすすむ。ステップＳＣ６において、描画制御部１が描画データの転送を要求し、この要求を受けて、共用メモリインターフェイス１０Ａを介して描画データの転送が行なわれる。
【００５０】
ステップＳＣ７の処理は、描画処理と、キャッシュメモリ管理処理との２つに分かれる。描画処理では、ステップＳＣＡ１において、処理対象描画データに対する描画制御部１の処理が終了したか否かをチェックする。この間、キャッシュメモリ管理処理では、ステップＳＣＢ１において、描画制御部１が命令コードのミスヒットをモニターし、ミスヒットが生じたとき（ＹＥＳ）は、ステップＳＣＢ２において、命令キャッシュメモリ２に対して命令コードの入れ替えを行う。
【００５１】
ある描画データに対する描画制御装置１の処理が終了したとき（ＳＣＡ１でＹＥＳ）、ステップＳＣ８において、描画制御装置１は描画エンジン３へ描画データを転送する。ステップＳＣ９において、描画エンジン３が転送された描画データを用いて描画を行う。ステップＳＣ１０において、描画制御部１が全ての描画処理が終了したか否かを判断する。終了したときは、本描画処理装置を停止する一方、そうでないときは、ステップＳＣ３に戻り、引き続き描画処理を繰り返し実行する。
【００５２】
以上のように本実施形態によると、ＣＰＵインターフェイス１２Ａに描画データのプリデコード部７Ｂを設けて、本描画処理装置のマスタとなるＣＰＵ１３から描画データが送られてくる際にプリデコードを行う。そして、プリデコード結果を基にして、描画データに係る処理に必要な命令コードのみを、共用メモリ９に転送させ、それ以外の命令コードが共用メモリ９に転送されるのを阻止する。これにより、共用メモリ９上の命令コード記憶領域の削減が可能になる。
【００５３】
また、共用メモリ９のアドレスマッピングを命令キャッシュメモリ２の管理に最適に行うことによって、ヒット率の更なる向上を図ることができる。すなわち、ＣＰＵ１３から描画処理装置に転送される描画データからなる１個のマクロ単位の描画処理に対して、適切な命令キャッシュメモリ２の管理が実現できる。
【００５４】
なお、本実施形態では、命令データ記憶部と命令コード記憶部とは、単一の共用メモリ９に設けられているものとしたが、個別に設けられていてもかまわない。
【００５５】
（第４の実施形態）
図１０は本発明の第４の実施形態に係る描画処理装置の構成を示すブロック図である。図１０において、図４と共通の構成要素には図４と同一の符号を付しており、ここではその詳細な説明を省略する。図１０の構成において、図４と異なるのは、描画終了コマンド管理部１５をさらに備えている点である。描画制御部１、描画エンジン３、ワークメモリ１６、選択器１７および描画終了コマンド管理部１５によって、処理部が構成されている。
【００５６】
描画終了コマンド管理部１５は、描画制御部１から描画エンジン３に転送された描画データをデコードし、このデコード結果から、キャッシュメモリ制御部８Ａに命令キャッシュテーブル部１１の更新を依頼する。すなわち、処理が終了した描画データについて、その処理に要した命令コードを表す処理済み情報を生成し、キャッシュメモリ制御部８Ａに送信する。キャッシュメモリ制御部８Ａは、受信した処理済み情報から、すでに必要がなくなった命令コード群を知ることができ、これにより、命令キャッシュメモリ２に対する命令コードの入れ替えを適時に行う。
【００５７】
図１１は図１０に示す描画処理装置における命令キャッシュテーブルの更新処理の流れを示すフローチャートである。
【００５８】
まずステップＳＵ１において、共用メモリインターフェイス１０が描画制御部１に描画データを転送する。これと同時に、プリデコード部７Ａは描画データのプリデコードを行い、命令キャッシュテーブル部１１に描画データの種類別のコマンド数を記憶させる。次にステップＳＵ２において、キャッシュメモリ制御部８Ａは命令キャッシュテーブル部１１を参照して、共用メモリ９から命令キャッシュメモリ２に、必要となる命令コードを書き込む。
【００５９】
ステップＳＵ３において、描画制御部１は転送された描画データを、傾き計算、クリッピング等のために前処理し、描画エンジン３に転送する準備を行う。そして、ステップＳＵ４において、準備が完了した描画データを逐次描画エンジン３に転送する。そして、ステップＳＵ５において、描画終了コマンド管理部１５は、処理が終了した描画データの高機能命令部をデコードし、その処理に要した命令コードを表す処理済み情報を生成し、キャッシュメモリ制御部８Ａに送信する。
【００６０】
ステップＳＵ６において、キャッシュメモリ制御部８Ａは、描画終了コマンド管理部１５から処理済み情報が送信されると、命令キャッシュテーブル部１１のコマンド数を更新する。そして、コマンド数が０になった命令コードがあると、その命令コードを命令キャッシュメモリ２のエントリーから削除する。
【００６１】
すなわち、描画制御部１はワークメモリ１６内の各描画データに対し、次々とデータ処理を行っていくが、転送の済んだ描画データにのみ必要であった命令コードに関しては  命令キャッシュメモリ２から消去してもかまわない。そこで、本実施形態のように、描画エンジン３に転送された時点で命令キャッシュテーブル部１１を更新することによって、命令キャッシュメモリ２の入れ替えを、ワークメモリ１６のアクセスバンクの処理が済む前に、先行して行うことが可能となる。
【００６２】
図１２は本実施形態に係る描画処理装置における処理の流れを示すフローチャートである。図１２のフローは第２の実施形態で示した図６とほぼ同様であり、図６と共通の処理ステップには図６と同一の符号を付しており、ここではその詳細な説明を省略する。図１２のフローでは、図６に加えて、命令キャッシュテーブル更新処理ＳＤＤ１〜ＳＤＤ３が追加されている。
【００６３】
すなわち、ステップＳＤＤ１では、ステップＳＢＡ２において描画エンジン３に転送された描画データに対して高機能命令部をデコードし、描画制御部１で処理の済んだ描画データをチェックし、命令キャッシュテーブル部１１の更新を行う。ステップＳＤＤ２において、キャッシュメモリ制御部８が、更新された命令キャッシュテーブル部１１を参照し、入れ替えが可能かどうか判断する。そこで入れ替え可能と判断した場合（ＹＥＳ）には、ステップＳＤＤ３において、キャッシュメモリ制御部８がバス調停器１８に対してバスアクセス権の要求を出し、バス調停器１８がバスアクセス許可をキャッシュメモリ制御部８に対して行った後、命令キャッシュメモリ２内の不要命令コードの入れ替えを実施する。
【００６４】
以上のように本実施形態によると、すでに描画制御部１による処理が済んだ描画データの管理を行う描画終了コマンド管理部１５を設けることによって、命令キャッシュメモリの命令コードを先行して入れ替えることが可能になる。
【００６５】
なお、本実施形態では、命令データ記憶部と命令コード記憶部とは、単一の共用メモリに設けられているものとしたが、個別に設けられていてもかまわない。また、本実施形態では、プリデコード部７Ａを共用メモリインターフェース部１０に設けるものとしたが、これ以外のところに設けてもかまわない。
【００６６】
【発明の効果】
以上のように本発明によると、処理前の命令データについて高機能命令部のプリデコードが行われ、このプリデコード結果を基にして、処理を行うために要する命令コードが命令キャッシュメモリに充填される。これにより、命令キャッシュメモリのヒット率を向上させることができ、命令キャッシュメモリの制御をより適切に実行することが可能になる。
【図面の簡単な説明】
【図１】  本発明の第１の実施形態に係る描画処理装置の構成を示すブロック図である。
【図２】  （ａ），（ｂ）は描画データの一例である。
【図３】  図１の描画処理装置における処理の流れを示すフローチャートである。
【図４】  本発明の第２の実施形態に係る描画処理装置の構成を示す図である。
【図５】  （ａ），（ｂ）は命令キャッシュテーブルの格納データの例を示す図である。
【図６】  図４の描画処理装置における処理の流れを示すフローチャートである。
【図７】  図４の描画処理装置の動作を概念的に示すタイミングチャートである。
【図８】  本発明の第３の実施形態に係る描画処理装置の構成を示すブロック図である。
【図９】  図８の描画処理装置における処理の流れを示すフローチャートである。
【図１０】  本発明の第４の実施形態に係る描画処理装置の構成を示すブロック図である。
【図１１】  命令キャッシュテーブルの更新処理の流れを示すフローチャートである。
【図１２】  図１０の描画処理装置における処理の流れを示すフローチャートである。
【図１３】  従来のデータ処理装置の構成の一例を示す図である。
【符号の説明】
１  描画制御部
２  命令キャッシュメモリ
３  描画エンジン
４  マイクロコード記憶メモリ（命令コード記憶部）
５  ＤＬメモリ（命令データ記憶部）
７，７Ａ，７Ｂ  プリデコード部
８，８Ａ，８Ｂ  キャッシュメモリ制御部
９  共用メモリ
１２Ａ  ＣＰＵインターフェイス（外部インターフェイス部）
１５  描画終了コマンド管理部
【図１】
0003676257.tif 000002
【図２】
0003676257.tif 000003
【図３】
0003676257.tif 000004
【図４】
0003676257.tif 000005
【図５】
0003676257.tif 000006
【図６】
0003676257.tif 000007
【図７】
0003676257.tif 000008
【図８】
0003676257.tif 000009
【図９】
0003676257.tif 000010
【図１０】
0003676257.tif 000011
【図１１】
0003676257.tif 000012
【図１２】
0003676257.tif 000013
【図１３】
0003676257.tif 000014