(57)【要約】  任意のパターンをピクセル単位で高速に描画できるプロセッサを提供する。カラーモードを３ビット／ピクセルとする。ピクセルＮは、バイトアドレス［２９：３］及びビットアドレス［２：０］により指定される描画位置に書き込まれる。次のピクセルＮ＋１は、ピクセルＮのすぐ後から書き込まれる。次のピクセルＮ＋２は、ピクセルＮ＋１のすぐ後から、バイトに跨って書き込まれる。ピクセルデータは、バイト内及びバイト間において、隙間なく敷き詰められる。この場合のピクセルデータの書き込み、つまり、描画は、ワード単位やバイト単位ではなく、ピクセル単位で行われる。しかも、キャッシュ制御により高速な描画を実現する。
2008501126.tif 000002
【特許請求の範囲】
【請求項１】
１ピクセルの表示色をＭビット（Ｍは１以上の整数）で表したピクセルデータの書き込みを実行するデータ処理装置であって、
描画領域としてのメモリと、
プログラムに従った演算処理を実行する演算処理手段と、
前記演算処理手段が生成した、描画位置を示すアドレス情報に従って、前記演算処理手段からピクセル単位で与えられた前記ピクセルデータの書き込みを実行する描画手段と、を備え、
前記描画手段は、
前記メモリ内のブロックが動的にマッピングされ、そのブロックと同じ論理アドレス上に配置されるキャッシュと、
前記メモリの１ワードをＮビット（Ｎは２以上の整数）としたときに、Ｎ／ＭおよびＭ／Ｎが整数か否かに関係なく、ピクセル単位で前記キャッシュに前記ピクセルデータを書き込むキャッシュ制御手段と、を含む、データ処理装置。
【請求項２】
バスをさらに備え、
前記メモリ、前記演算処理手段、及び前記描画手段は、前記バスに接続され、
前記演算処理手段及び前記描画手段は、それぞれバスマスタになりうる、請求項１記載のデータ処理装置。
【請求項３】
１ピクセルの表示色をＭビット（Ｍは１以上の整数）で表したピクセルデータの書き込みを実行するデータ処理装置であって、
描画領域としてのメモリと、
プログラムに従った演算処理を実行し、描画位置を示すアドレス情報を生成する演算処理手段と、
前記演算処理手段からピクセル単位で与えられた前記ピクセルデータの書き込みを実行する描画手段と、を備え、
前記描画手段は、
前記メモリ内のブロックが動的にマッピングされ、そのブロックと同じ論理アドレス上に配置されるキャッシュと、
前記演算処理手段が生成した前記アドレス情報に従って、ピクセル単位で前記キャッシュに前記ピクセルデータを書き込むキャッシュ制御手段と、を含み、
描画位置を示す前記アドレス情報は、描画対象のピクセルデータの描画先頭ビットを含むバイトを示すバイトアドレス、及び、前記描画先頭ビットのバイト内におけるビット位置を示すビットアドレス、により構成される、データ処理装置。
【請求項４】
描画領域として使用されるメモリ内のブロックが動的にマッピングされ、そのブロックと同じ論理アドレス上に配置されるキャッシュと、
前記メモリの１ワードをＮビット（Ｎは２以上の整数）とし、１ピクセルの表示色をＭビット（Ｍは１以上の整数）のピクセルデータで表すとき、Ｎ／ＭおよびＭ／Ｎが整数か否かに関係なく、描画位置を示すアドレス情報に従って、ピクセル単位で、前記キャッシュに描画対象のピクセルデータを書き込むキャッシュ制御手段と、を備える、描画装置。
【請求項５】
描画位置を示す前記アドレス情報は、描画対象のピクセルデータの描画先頭ビットを含むバイトを示すバイトアドレス、及び、前記描画先頭ビットのバイト内におけるビット位置を示すビットアドレス、により構成され、
前記キャッシュ制御手段は、前記バイトアドレスに基づいて、ヒット／ミスヒットを判断し、ヒットした場合に、前記バイトアドレス及び前記ビットアドレス、並びに、ピクセルデータのビット数Ｍ、に基づいて、前記キャッシュから読み込んだブロックデータを描画対象のピクセルデータで更新して、前記キャッシュに書き込む、請求項４記載の描画装置。
【請求項６】
前記キャッシュは、前記メモリ内の複数のブロックが動的にマッピングされる複数のブロックを含み、前記キャッシュの前記ブロックは、前記メモリ上の対応する前記ブロックと同じ論理アドレス上に配置され、
前記キャッシュ制御手段は、前記更新の際、前記バイトアドレスが示すブロックに格納されたブロックデータのうち、前記ビットアドレスが示す描画位置を始点としたＭビットを、描画対象のピクセルデータで更新し、描画対象のピクセルデータが２つのブロックに跨る場合は、前記バイトアドレスが示すブロックに格納されたブロックデータ、及び、そのバイトアドレスを１つ進めたバイトアドレスが示すブロックに格納されたブロックデータ、について、描画位置を始点としたＭビットを、描画対象のピクセルデータで更新する、請求項５記載の描画装置。
【請求項７】
前記キャッシュ制御手段は、読出対象となるピクセルデータの読出先頭ビットを含むバイトを示すバイトアドレス（以下、読出バイトアドレス、という）に基づいて、ヒット／ミスヒットを判断し、ヒットした場合に、前記読出バイトアドレス及び前記読出先頭ビットのバイト内におけるビット位置を示すビットアドレス（以下、読出ビットアドレス、という）、並びに、ピクセルデータのビット数Ｍ、に基づいて、前記キャッシュから読み込んだブロックデータから読出対象のピクセルデータを取り出す、請求項５記載の描画装置。
【請求項８】
前記キャッシュは、前記メモリ内の複数のブロックが動的にマッピングされる複数のブロックを含み、前記キャッシュの前記ブロックは、前記メモリ上の対応する前記ブロックと同じ論理アドレス上に配置され、
前記キャッシュ制御手段は、前記キャッシュから読出対象のピクセルデータを取り出す際、前記読出先頭ビットを始点としたＭビットを、読出対象のピクセルデータとして取り出し、読出対象のピクセルデータが２つのブロックに跨る場合は、前記読出バイトアドレスが示すブロックに格納されたブロックデータ、及び、その読出バイトアドレスを１つ進めたバイトアドレスが示すブロックに格納されたブロックデータから、読出位置を始点としたＭビットを、読出対象のピクセルデータとして取り出す、請求項７記載の描画装置。
【請求項９】
前記キャッシュは、前記メモリ内の２つのブロックがマッピングされる２つのブロックを含む、請求項６記載の描画装置。
【請求項１０】
前記キャッシュの前記ブロックは、レジスタにより構成される、請求項９記載の描画装置。
【請求項１１】
前記メモリ内のブロックの前記キャッシュへのマッピングは、ダイレクトマップ方式である、請求項４記載の描画装置。
【請求項１２】
前記メモリと前記キャッシュとの間のデータのコヒーレンシの維持は、ライトバック方式により行われるとともに、前記キャッシュから前記メモリへ強制的にデータを書き戻すフラッシュ手段をさらに備える、請求項４記載の描画装置。
【請求項１３】
前記キャッシュ制御手段は、コヒーレンシを維持するためにライトデータを出力する際に、前記メモリのワード単位あるいはバイト単位でライトデータを出力する、請求項４記載の描画装置。
【請求項１４】
前記キャッシュ制御手段は、メモリ処理に係わるアドレスが、その時のキャッシングの範囲を外れたときの、このアドレスからのデータのリードは、前記メモリのワード単位あるいはバイト単位で行う、請求項４記載の描画装置。
【請求項１５】
今回の描画／読出し位置を示すアドレス情報に基づいて、次回の描画／読出し位置を示すアドレス情報を算出する描画／読出位置算出手段をさらに備える請求項４記載の描画装置。
【請求項１６】
前記描画／読出位置算出手段は、今回の描画／読出し位置に、ピクセルデータのビット数Ｍを加算して、次回の描画／読出し位置を示すアドレス情報を算出する、請求項１５記載の描画装置。
【請求項１７】
前記描画装置は、前記メモリが接続されるバスに接続され、
前記描画装置はバスマスタになりうる、請求項４記載の描画装置。
【請求項１８】
アドレス空間へのアクセスを提供するアドレスバスと、
前記アドレスバスにより前記アドレス空間のアドレスを指定してデータの転送を行うデータバスと、
前記アドレスバス及び前記データバスに接続され、前記アドレスバス及び前記データバスを介してデータの読み出しと書き込み処理を行う中央演算処理装置と、
前記アドレスバス及び前記データバスに接続され、前記アドレス空間の一部に格納されているデータのキャッシングを行うキャッシュシステムと、を備え、
前記キャッシュシステムは、前記中央演算処理装置によってデータの書き込みがなされる制御レジスタを備えると共に、前記アドレスバス及び前記データバスのバスマスタとして機能し、
前記中央演算処理装置は、前記アドレスバスと前記データバスを通じて前記キャッシュシステムを介さずに読み出しと書き込み処理を行うと共に、前記制御レジスタへの書き込みを行うことにより、前記キャッシュシステムに対して、バスマスタとして、前記アドレスバス及び前記データバスによる読み出しと書き込み処理の実行指示を行うことが可能であり、
前記中央演算処理装置は、前記キャッシュシステムに対して、前記アドレスバス及び前記データバスによる読み出し又は書き込みの指示を行った後、別の処理を行うことが可能であるデータ処理装置。
【請求項１９】
更に前記アドレスバス及び前記データバスよりも高速なデータ転送速度を持つ通信路を備え、前記中央演算処理装置による前記制御レジスタへの書き込みは、この通信路により行われる、請求項１８記載のデータ処理装置。
【請求項２０】
前記アドレスバス及び前記データバスは、前記アドレス空間に物理記憶領域を提供する外部メモリとの通信に用いられ、前記通信路は、前記中央演算処理装置を含む内部バスデバイス間の通信に用いられる、請求項１９記載のデータ処理装置。
【請求項２１】
ピクセルを描画領域にプロットする描画装置であって、
前記描画領域を含むアドレス空間へのアクセスを提供するアドレスバスと、前記アドレスバスにより前記アドレス空間のアドレスを指定してデータの転送を行うデータバスと、が接続されるバスインターフェイスと、
前記バスインターフェイスに接続したデータ格納装置であって、前記バスインターフェイスが、前記アドレス空間における画像データのアドレスを前記アドレスバスへ出力することにより、前記画像データを前記データバスから前記データ格納装置へ転送し、また、前記アドレス空間における前記画像データのアドレスを前記アドレスバスへ出力することにより、前記データ格納装置に格納されているデータを前記データバスへ出力する、データ格納装置と、
前記描画領域にプロットすべきピクセルのデータを格納するプロットカラーレジスタと、
ピクセルのビット数としてカラーモードを格納するカラーモードレジスタと、
前記画像データを指示するアドレスをバイトアドレスとして格納し、このバイトアドレスで指示されたバイト内のビット位置をビットアドレスとして格納し、前記バイトアドレスと前記ビットアドレスは、ビット単位でプロット位置を指示するものであり、ピクセルをプロットした後、前記カラーモードレジスタに格納されたカラーモードに対応するビット数だけこのプロット位置をインクリメントするプロットロケーションカウンタと、
前記プロットカラーレジスタ、前記カラーモードレジスタ、前記プロットロケーションカウンタ及び前記データ格納装置に接続し、前記データ格納装置に転送された前記画像データに対して、前記プロットカラーレジスタに格納された前記ピクセルデータのビット位置を、前記プロットロケーションカウンタで示されたプロット位置にビット単位で揃え、前記ピクセルデータを、前記カラーモードレジスタに格納されたカラーモードに対応するビット数に基づいて、前記データ格納装置に転送された前記画像データのプロット位置に書き込むピクセルパッカと、を備えた描画装置。
【請求項２２】
前記プロットロケーションカウンタ及び前記データ格納装置に接続し、前記データ格納装置に転送された前記画像データから、前記プロットロケーションカウンタで示されたビット位置に存在するピクセルデータを入力し、このピクセルデータをバイト内の先頭位置としたデータを出力するピクセルアンパッカを更に備えた請求項２１記載の描画装置。
【請求項２３】
前記ピクセルアンパッカは、更に、前記カラーモードレジスタに接続し、前記カラーモードレジスタに格納されたカラーモードに対応するビット数に基づいて、前記ピクセルデータをゼロ拡張して出力する、請求項２２記載の描画装置。
【請求項２４】
ピクセルデータビットである下位ビットと不使用の残りの上位ビットから夫々構成される複数のピクセルデータをまとめるピクセルパッカであって、
所定のビット長のデータを記憶する記憶手段と、
前記所定のビット長を持つ出力ポートを備え、逐次ピクセルデータを入力し、第１のビット位置に合わせてシフトし、前記出力ポートから出力するシフタと、
前記記憶手段と前記シフタに接続され、シフトされた前記ピクセルデータを、前記シフタから前記記憶手段へ転送するデータ転送手段とからなり、
前記第１のビット位置は、データ転送の後、前記ピクセルデータの下位ビットの長さだけシフトすることによって更新され、前記ピクセルデータの転送は、前回の前記第１のビット位置に対応し、前回のピクセルデータが格納されている前記記憶手段の記憶領域を変化させないように行われることを特徴とするピクセルパッカ。
【請求項２５】
前記第１のビット位置のシフトは、前記所定のビット長の巡回シフトである請求項２４記載のピクセルパッカ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュを用いた描画処理を実行するデータ処理装置及びその関連技術に関する。
【背景技術】
【０００２】
図１４は、特開平８−１６７０３８号公報（図１、図２、図４、図５）に開示されている従来のパターン描画装置のブロック図である。図１４に示すように、パターン描画装置において、パターン格納領域１００６には、予め複数の異なるパターンが所定の大きさで設定されている。パターンロード制御部１００３は、前回に描画したパターンデータのパターン格納領域１００６上の先頭アドレスを保持し、そのアドレスと今回描画するパターンデータのパターン格納領域１００６上の先頭アドレスとの比較を行い、不一致の場合にはパターンデータがパターンキャッシュメモリ１００２に存在しないと判断して今回描画するパターンデータをパターン格納領域１００６から読み出してパターンキャッシュメモリ１００２に書込む。描画制御部１００１はパターンキャッシュメモリ１００２からパターンデータを読み出して描画領域１００５に書込む。
【０００３】
ここで、パターンキャッシュメモリ１００２と描画領域１００５は同一系でなく分離したバス上にある。つまり、パターンキャッシュメモリ１００２のアドレス／データは描画領域１００５とは別のバスを用いる。このため、パターンデータのパターンキャッシュメモリ１００２からの読み出し及び描画領域１００５への書込みを同時に行うことができる。このこと及びパターンキャッシュメモリ１００２の利用により、描画時間の短縮を図っている。
【０００４】
また、描画制御部１００１は、パターンにビット単位でオフセットをかけて描画する場合は、書き込む１ワード分のデータを作るために、連続性のある２ワードのパターンデータをパターンキャッシュメモリ１００２から読み込み、バレルシフタ等によって１ワード分の書き込みデータを選び出し、描画領域１００５に書き込む。
【０００５】
しかしながら、上記パターン描画装置では、描画領域１００５やパターンキャッシュメモリ１００２への書き込みは、１ワード単位で行われる。しかも、パターン格納領域１００６に予め格納されたパターンデータを、描画領域１００５に書き込めるにすぎない。
【０００６】
つまり、予め定められたパターンデータのワード単位での書き込みだけが可能である。これでは、任意のパターンを、しかもピクセル単位で描画することはできない。
【発明の開示】
【０００７】
そこで、本発明の目的は、任意のパターンをピクセル単位で高速に描画できるデータ処理装置及びその関連技術を提供することである。
【０００８】
本発明の他の目的は、メモリの１ワードを構成するビット数を意識することなく、カラーモードを任意の値に設定できるデータ処理装置及びその関連技術を提供することである。
【０００９】
本発明のさらに他の目的は、ピクセル単位で描画を行う際の、バイト内でのビット位置の計算を不要として、処理の高速化及びプログラミングの簡素化を図ることができるデータ処理装置及びその関連技術を提供することである。
【００１０】
本発明の第１の形態によると、データ処理装置は、１ピクセルの表示色をＭビット（Ｍは１以上の整数）で表したピクセルデータの書き込みを実行するデータ処理装置であって、描画領域としてのメモリと、プログラムに従った演算処理を実行する演算処理手段と、前記演算処理手段が生成した、描画位置を示すアドレス情報に従って、前記演算処理手段からピクセル単位で与えられた前記ピクセルデータの書き込みを実行する描画手段と、を備え、前記描画手段は、前記メモリ内のブロックが動的にマッピングされ、そのブロックと同じ論理アドレス上に配置されるキャッシュと、前記メモリの１ワードをＮビット（Ｎは２以上の整数）としたときに、Ｎ／ＭおよびＭ／Ｎが整数か否かに関係なく、ピクセル単位で前記キャッシュに前記ピクセルデータを書き込むキャッシュ制御手段と、を含む。
【００１１】
この構成によれば、メモリの１ワードを構成するビット数を意識することなく、カラーモード（Ｍビット／ピクセル）を任意の値に設定できる。一般に、ビットマップイメージでは、Ｎ／ＭまたはＭ／Ｎが整数になるように、つまり、Ｍ≦Ｎであればピクセルデータが常にメモリの２ワードに跨らないように、またＭ＞Ｎであればピクセルデータがメモリの複数ワードに丁度収まるようにカラーモードの値が設定され、カラーモード選択の幅が狭い。ただし、本発明の適用は、ビットマップイメージの描画に限定されない。
【００１２】
また、描画手段は、演算処理手段を介したピクセルデータをキャッシュに書き込む。つまり、特開平８−１６７０３８号公報に示した従来のように、描画手段が、メモリに直接アクセスして、ピクセルデータを取得し、描画を行うのではない。演算処理手段がピクセルデータを用意するので、描画対象となるパターンデータは、予め用意された固定のパターンデータでもよいし、圧縮されたパターンデータでもよいし、ユーザが入力手段（例えば、タブレット等）を使って入力したパターンデータでもよい。加えて、キャッシュを利用しているので、高速な描画が可能である。以上の結果、任意のパターンをピクセル単位で高速に描画できる。
【００１３】
上記データ処理装置は、バスをさらに備え、前記メモリ、前記演算処理手段、及び前記描画手段は、前記バスに接続され、前記演算処理手段及び前記描画手段は、それぞれバスマスタになりうる。
【００１４】
この構成によれば、描画手段はバスマスタとして自律して動作可能であるため、描画手段による描画中であっても、演算処理手段（例えば、ＣＰＵ等）は他の処理を実行できる。従って、データ処理装置全体として効率的な処理を実現できる。また、描画処理をバスマスタとしての描画手段に任せることができるので、演算処理手段に実行させるプログラムの作成負担を軽減できる。
【００１５】
一般に、演算処理手段がメモリに描画する場合は、メモリのワード単位での描画を行うので、ピクセル単位での描画を実行しようとすると、リード・モディファイ・ライトを演算処理手段が行わなければならず、演算処理手段の負荷が大きくなり、また、プログラミングも煩雑となる。ところが、本発明では、描画手段がバスマスタになるので、リード・モディファイ・ライトは、描画手段に行わせればよく、その間、演算処理手段は他の処理を実行できるし、また、プログラミングの際にもリード・モディファイ・ライトを意識する必要がなく、プログラミングの負担を軽減できる。
【００１６】
また、描画手段はバスマスタであり、メモリを演算処理手段と共用できるので、描画専用のメモリ及びバスを設ける必要もなく、コストの削減ができる。つまり、描画手段がバスマスタでない場合は、自律的にバスにアクセスできないので、描画専用のメモリ及びバスを設けなければならず、コストが上がるが、この構成によるデータ処理装置においてはこれらが不要となる。
【００１７】
本発明の第２の形態によると、データ処理装置は、１ピクセルの表示色をＭビット（Ｍは１以上の整数）で表したピクセルデータの書き込みを実行するデータ処理装置であって、描画領域としてのメモリと、プログラムに従った演算処理を実行し、描画位置を示すアドレス情報を生成する演算処理手段と、前記演算処理手段からピクセル単位で与えられた前記ピクセルデータの書き込みを実行する描画手段と、を備え、前記描画手段は、前記メモリ内のブロックが動的にマッピングされ、そのブロックと同じ論理アドレス上に配置されるキャッシュと、前記演算処理手段が生成した前記アドレス情報に従って、ピクセル単位で前記キャッシュに前記ピクセルデータを書き込むキャッシュ制御手段と、を含み、描画位置を示す前記アドレス情報は、描画対象のピクセルデータの描画先頭ビットを含むバイトを示すバイトアドレス、及び、前記描画先頭ビットのバイト内におけるビット位置を示すビットアドレス、により構成される。
【００１８】
この構成によれば、描画手段に対して、描画位置がバイトアドレスだけでなく、ビットアドレスでも指定できるため、演算処理手段は、ピクセル単位の描画を行う際の、バイト内でのビット位置の計算が不要となり、処理の高速化及びプログラミングの簡素化を図ることができる。一般に、アドレス情報は、バイトアドレスであるため、１ピクセルのビット数がメモリの１ワードに満たず、かつピクセル単位で描画を行う場合は、バイト内でのビット位置の計算が必要となる。
【００１９】
本発明の第３の形態によると、描画装置は、描画領域として使用されるメモリ内のブロックが動的にマッピングされ、そのブロックと同じ論理アドレス上に配置されるキャッシュと、前記メモリの１ワードをＮビット（Ｎは２以上の整数）とし、１ピクセルの表示色をＭビット（Ｍは１以上の整数）のピクセルデータで表すとき、Ｎ／ＭおよびＭ／Ｎが整数か否かに関係なく、描画位置を示すアドレス情報に従って、ピクセル単位で、前記キャッシュに描画対象のピクセルデータを書き込むキャッシュ制御手段と、を備える。
【００２０】
この構成によれば、メモリの１ワードを構成するビット数を意識することなく、カラーモード（Ｍビット／ピクセル）を任意の値に設定できる。一般に、ビットマップイメージでは、Ｎ／ＭまたはＭ／Ｎが整数になるように、つまり、Ｍ≦Ｎであればピクセルデータが常にメモリの２ワードに跨らないように、またＭ＞Ｎであればピクセルデータがメモリの複数ワードに丁度収まるように、カラーモードの値Ｍが設定され、カラーモード選択の幅が狭い。ただし、本発明の適用は、ビットマップイメージの描画に限定されない。
【００２１】
また、キャッシュを利用しているので、高速な描画が可能である。
【００２２】
上記描画装置において、描画位置を示す前記アドレス情報は、描画対象のピクセルデータの描画先頭ビットを含むバイトを示すバイトアドレス、及び、前記描画先頭ビットのバイト内におけるビット位置を示すビットアドレス、により構成され、前記キャッシュ制御手段は、前記バイトアドレスに基づいて、ヒット／ミスヒットを判断し、ヒットした場合に、前記バイトアドレス及び前記ビットアドレス、並びに、ピクセルデータのビット数Ｍ、に基づいて、前記キャッシュから読み込んだブロックデータを描画対象のピクセルデータで更新して、前記キャッシュに書き込む。
【００２３】
この構成によれば、描画位置がバイトアドレスだけでなく、ビットアドレスでも指定できるため、ピクセル単位の描画を行う際の、バイト内でのビット位置の計算が不要となり、処理の高速化を図ることができる。
【００２４】
上記描画装置において、前記キャッシュは、前記メモリ内の複数のブロックが動的にマッピングされる複数のブロックを含み、前記キャッシュの前記ブロックは、前記メモリ上の対応する前記ブロックと同じ論理アドレス上に配置され、前記キャッシュ制御手段は、前記更新の際、前記バイトアドレスが示すブロックに格納されたブロックデータのうち、前記ビットアドレスが示す描画位置を始点としたＭビットを、描画対象のピクセルデータで更新し、描画対象のピクセルデータが２つのブロックに跨る場合は、前記バイトアドレスが示すブロックに格納されたブロックデータ、及び、そのバイトアドレスを１つ進めたバイトアドレスが示すブロックに格納されたブロックデータ、について、描画位置を始点としたＭビットを、描画対象のピクセルデータで更新する。
【００２５】
この構成によれば、キャッシュは複数のブロックを有しているので、描画対象のピクセルデータが、メモリのワード境界に跨るような場合でも、キャッシュ中の対応する２つのブロックに格納されたブロックデータを更新するだけで、容易に描画を実行できる。
【００２６】
上記描画装置において、前記キャッシュ制御手段は、読出対象となるピクセルデータの読出先頭ビットを含むバイトを示すバイトアドレス（以下、読出バイトアドレス、という）に基づいて、ヒット／ミスヒットを判断し、ヒットした場合に、前記読出バイトアドレス及び前記読出先頭ビットのバイト内におけるビット位置を示すビットアドレス（以下、読出ビットアドレス、という）、並びに、ピクセルデータのビット数Ｍ、に基づいて、前記キャッシュから読み込んだブロックデータから読出対象のピクセルデータを取り出す。
【００２７】
この構成によれば、読出位置がバイトアドレスだけでなく、ビットアドレスでも指定できるため、ピクセル単位の読み出しを行う際の、バイト内でのビット位置の計算が不要となり、ピクセル単位の読み出し処理の高速化を図ることができる。
【００２８】
上記描画装置において、前記キャッシュは、前記メモリ内の複数のブロックが動的にマッピングされる複数のブロックを含み、前記キャッシュの前記ブロックは、前記メモリ上の対応する前記ブロックと同じ論理アドレス上に配置され、前記キャッシュ制御手段は、前記キャッシュから読出対象のピクセルデータを取り出す際、前記読出先頭ビットを始点としたＭビットを、読出対象のピクセルデータとして取り出し、読出対象のピクセルデータが２つのブロックに跨る場合は、前記読出バイトアドレスが示すブロックに格納されたブロックデータ、及び、その読出バイトアドレスを１つ進めたバイトアドレスが示すブロックに格納されたブロックデータから、読出位置を始点としたＭビットを、読出対象のピクセルデータとして取り出す。
【００２９】
この構成によれば、キャッシュは複数のブロックを有しているので、読出対象のピクセルデータが、メモリのワード境界に跨るような場合でも、キャッシュ中の対応する２つのブロックに格納されたブロックデータから、書込対象のピクセルデータを取り出すことにより、容易に読み出しが可能となる。
【００３０】
上記描画装置において、前記キャッシュは、前記メモリ内の２つのブロックがマッピングされる２つのブロックを含む。
【００３１】
この構成によれば、最小限の構成で、ワード境界に跨るような描画／読み出しを効率的に行うことができる。
【００３２】
上記描画装置において、前記キャッシュの前記ブロックは、レジスタにより構成される。
【００３３】
この構成によれば、キャッシュをＲＡＭで構成する場合と比較して、より高速な描画／読み出しが可能となる。また、キャッシュを構成する総ビット数が比較的少ない場合には、ＲＡＭで構成されたキャッシュと比べて半導体チップ上での面積が小さくなる場合がある。
【００３４】
上記描画装置において、前記メモリ内のブロックの前記キャッシュへのマッピングは、ダイレクトマップ方式である。
【００３５】
この構成によれば、回路構成が簡単になるというダイレクトマップ方式の利点を活かしながらも、同一キャッシュブロックに割り付けられる複数のメモリブロックへのアクセスが競合する場合にヒット率が減少するというダイレクトマップ方式の欠点は、描画位置が連続している場合が多いので、ほとんど問題とならない。
【００３６】
上記描画装置において、前記メモリと前記キャッシュとの間のデータのコヒーレンシの維持は、ライトバック方式により行われるとともに、前記キャッシュから前記メモリへ強制的にデータを書き戻すフラッシュ手段をさらに備える。
【００３７】
この構成によれば、メモリアクセスを抑制できるというライトバック方式の利点を活かしながらも、コヒーレンシが常に維持されているというわけではないというライトバック方式の欠点は、他の手段（例えば、ＣＰＵ等）の指示に応じてキャッシュからメモリへと強制的にデータを書き戻すフラッシュ手段をさらに備えることにより解消できる。
【００３８】
上記描画装置において、前記キャッシュ制御手段は、コヒーレンシを維持するためにライトデータを出力する際に、前記メモリのワード単位あるいはバイト単位でライトデータを出力する。
【００３９】
この構成によれば、ピクセル単位でライトデータを出力する場合と比較して、バスアクセスの回数を抑制できる。
【００４０】
上記描画装置において、前記キャッシュ制御手段は、メモリ処理に係わるアドレスが、その時のキャッシングの範囲を外れたときの、このアドレスからのデータのリードは、前記メモリのワード単位あるいはバイト単位で行う。
【００４１】
この構成によれば、ピクセル単位でデータをリードする場合と比較して、バスアクセスの回数を抑制できる。
【００４２】
上記描画装置は、今回の描画／読出し位置を示すアドレス情報に基づいて、次回の描画／読出し位置を示すアドレス情報を算出する描画／読出位置算出手段をさらに備える。
【００４３】
この構成によれば、自動的にアドレスが更新されるので、連続したピクセルデータの描画／読出しを高速に実行できる。つまり、描画／読み出しの度に、外部（例えば、ＣＰＵ等）でアドレス情報を生成して、描画装置に与える必要はない。
【００４４】
上記描画装置において、前記描画／読出位置算出手段は、今回の描画／読出し位置に、ピクセルデータのビット数Ｍを加算して、次回の描画／読出し位置を示すアドレス情報を算出する。
【００４５】
この構成によれば、アドレスの自動更新を簡易に行うことができる。
【００４６】
上記描画装置は、前記メモリが接続されるバスに接続され、バスマスタになりうる。
【００４７】
この構成によれば、描画装置はバスマスタとして自律して動作可能であるため、描画装置による描画中であっても、他の処理手段（例えば、ＣＰＵ等）は別の処理を実行できる。
【００４８】
また、描画装置はバスマスタであり、メモリを他の処理手段（例えば、ＣＰＵ等）と共用できるので、描画専用のメモリ及びバスを設ける必要もなく、コストの削減を図ることができる。つまり、描画装置がバスマスタでない場合は、自律的にバスにアクセスできないので、描画専用のメモリ及びバスを設けなければならず、コストが上がるが、これらが不要となる。
【００４９】
本発明の第４の形態によると、データ処理装置は、アドレス空間へのアクセスを提供するアドレスバスと、前記アドレスバスにより前記アドレス空間のアドレスを指定してデータの転送を行うデータバスと、前記アドレスバス及び前記データバスに接続され、前記アドレスバス及び前記データバスを介してデータの読み出しと書き込み処理を行う中央演算処理装置と、前記アドレスバス及び前記データバスに接続され、前記アドレス空間の一部に格納されているデータのキャッシングを行うキャッシュシステムと、を備え、前記キャッシュシステムは、前記中央演算処理装置によってデータの書き込みがなされる制御レジスタを備えると共に、前記アドレスバス及び前記データバスのバスマスタとして機能し、前記中央演算処理装置は、前記アドレスバスと前記データバスを通じて前記キャッシュシステムを介さずに読み出しと書き込み処理を行うと共に、前記制御レジスタへの書き込みを行うことにより、前記キャッシュシステムに対して、バスマスタとして、前記アドレスバス及び前記データバスによる読み出しと書き込み処理の実行指示を行うことが可能であり、前記中央演算処理装置は、前記キャッシュシステムに対して、前記アドレスバス及び前記データバスによる読み出し又は書き込みの指示を行った後、別の処理を行うことが可能である。
【００５０】
この構成によれば、キャッシュシステムはバスマスタとして自律して動作可能であるため、キャッシュシステムによるメモリ処理中であっても、中央演算処理装置は別の処理を実行できる。
【００５１】
１つの好ましい実施形態では、前記データ処理装置は、更に前記アドレスバス及び前記データバスよりも高速なデータ転送速度を持つ通信路を備え、前記中央演算処理装置による前記制御レジスタへの書き込みは、この通信路により行われる。
【００５２】
この構成によれば、キャッシュシステムが前記アドレスバス及び前記データバス（ここでは、後述の第２バス３３のアドレスバスとデータバス）にてメモリ処理を行う場合、前記データ処理装置による対応するキャッシュシステムへの指示は、より高速の通信路（ここでは、後述の第１バス３１のデータバスとアドレスバス）で速やかに行うことが出来る。
【００５３】
更に、１つの好ましい実施形態では、前記アドレスバス及び前記データバスは、前記アドレス空間に物理記憶領域を提供する外部メモリとの通信に用いられ、前記通信路は、前記中央演算処理装置を含む内部デバイス間の通信に用いられる。
【００５４】
本発明の第５の形態による描画装置は、ピクセルを描画領域にプロットする描画装置であって、前記描画領域を含むアドレス空間へのアクセスを提供するアドレスバスと、前記アドレスバスにより前記アドレス空間のアドレスを指定してデータの転送を行うデータバスと、が接続されるバスインターフェイスと、前記バスインターフェイスに接続したデータ格納装置であって、前記バスインターフェイスが、前記アドレス空間における画像データのアドレスを前記アドレスバスへ出力することにより、前記画像データを前記データバスから前記データ格納装置へ転送し、また、前記アドレス空間における前記画像データのアドレスを前記アドレスバスへ出力することにより、前記データ格納装置に格納されているデータを前記データバスへ出力する、データ格納装置と、前記描画領域にプロットすべきピクセルのデータを格納するプロットカラーレジスタと、ピクセルのビット数としてカラーモードを格納するカラーモードレジスタと、前記画像データを指示するアドレスをバイトアドレスとして格納し、このバイトアドレスで指示されたバイト内のビット位置をビットアドレスとして格納し、前記バイトアドレスと前記ビットアドレスは、ビット単位でプロット位置を指示するものであり、ピクセルをプロットした後、前記カラーモードレジスタに格納されたカラーモードに対応するビット数だけこのプロット位置をインクリメントするプロットロケーションカウンタと、前記プロットカラーレジスタ、前記カラーモードレジスタ、前記プロットロケーションカウンタ及び前記データ格納装置に接続し、前記データ格納装置に転送された前記画像データに対して、前記プロットカラーレジスタに格納された前記ピクセルデータのビット位置を、前記プロットロケーションカウンタで示されたプロット位置にビット単位で揃え、前記ピクセルデータを、前記カラーモードレジスタに格納されたカラーモードに対応するビット数に基づいて、前記データ格納装置に転送された前記画像データのプロット位置に書き込むピクセルパッカと、を備えている。
【００５５】
この構成によれば、ピクセル単位で描画領域にプロットするプログラムの作成が容易となる。
【００５６】
１つの好ましい実施形態では、前記プロットロケーションカウンタ及び前記データ格納装置に接続し、前記データ格納装置に転送された前記画像データから、前記プロットロケーションカウンタで示されたビット位置に存在するピクセルデータを入力し、このピクセルデータをバイト内の先頭位置としたデータを出力するピクセルアンパッカを更に備えている。
【００５７】
更に、１つの好ましい実施形態では、前記ピクセルアンパッカは、更に、前記カラーモードレジスタに接続し、前記カラーモードレジスタに格納されたカラーモードに対応するビット数に基づいて、前記ピクセルデータをゼロ拡張して出力する。
【００５８】
本発明の第６の形態によるピクセルパッカは、ピクセルデータビットである下位ビットと不使用の残りの上位ビットから夫々構成される複数のピクセルデータをまとめるピクセルパッカであって、所定のビット長のデータを記憶する記憶手段と、前記所定のビット長を持つ出力ポートを備え、逐次ピクセルデータを入力し、第１のビット位置に合わせてシフトし、前記出力ポートから出力するシフタと、前記記憶手段と前記シフタに接続され、シフトされた前記ピクセルデータを、前記シフタから前記記憶手段へ転送するデータ転送手段とからなり、前記第１のビット位置は、データ転送の後、前記ピクセルデータの下位ビットの長さだけシフトすることによって更新され、前記ピクセルデータの転送は、前回の前記第１のビット位置に対応し、前回のピクセルデータが格納されている前記記憶手段の記憶領域を変化させないように行われる。
【００５９】
この構成によれば、ピクセルデータは、そのサイズに係わらず、不使用の上位ビットを持つバイトデータやワードデータとして用意すればよく、また、そのピクセルデータは隙間無くまとめられるので、ピクセルデータを作成するプログラムの作成が容易となり、このピクセルパッカを用いることでピクセルデータの格納に要するメモリ領域が最小となる。
【００６０】
１つの好ましい実施形態では、前記第１のビット位置のシフトは、前記所定のビット長の巡回シフトである。
【発明を実施するための最良の形態】
【００６１】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、図中、同一または相当部分については同一の参照符号を付してその説明を援用する。また、本明細書及び図面において、信号のどのビットかを示す必要があるときは、信号名の後に、［ａ：ｂ］あるいは［ａ］を付する。［ａ：ｂ］は、その信号の第ａ番目のビットから第ｂ番目のビットを意味し、［ａ］は、その信号の第ａ番目のビットを意味する。また、真理値表を使用して説明することもあるが、その場合、「１」は「真」、「０」は「偽」、「Ｘ」は「ｄｏｎ'ｔｃａｒｅ」または不定を示す。
【００６２】
図１は、本発明の実施の形態によるデータ処理装置としてのプロセッサ１００の全体構成を示すブロック図である。図１に示すように、このプロセッサ１００は、中央演算処理装置（ＣＰＵ）１、グラフィックスプロセッサ３、ピクセルプロッタ５、サウンドプロセッサ７、ＤＭＡ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）コントローラ９、第１バスアービタ１３、第２バスアービタ１４、バックアップコントロール回路１５、メインメモリ１７、タイマ回路１９、ＡＤコンバータ（ＡＤＣ）２０、入出力制御回路２１、外部メモリインタフェース回路２３、クロックドライバ２９、ＰＬＬ（ｐｈａｓｅ−ｌｏｃｋｅｄ  ｌｏｏｐ）回路２７、低電圧検出回路２５、第１バス３１、及び第２バス３３を含む。
【００６３】
ここで、本実施の形態では、メインメモリ１７及び外部メモリ４５を区別して説明する必要がないときは、「メモリＭＥＭ」と表記する。
【００６４】
ＣＰＵ１は、メモリＭＥＭに格納されたプログラムに従い、各種演算やシステム全体の制御を行う。ＣＰＵ１は、第１バス３１及び第２バス３３のバスマスタであり、それぞれのバスに接続された資源にアクセスが可能である。
【００６５】
グラフィックスプロセッサ３は、第１バス３１及び第２バス３３のバスマスタであり、メモリＭＥＭに格納されたデータをグラフィックデータに変換し、このグラフィックデータを基にテレビジョン受像機（図示せず）に合わせたビデオ信号ＶＤを生成する。
【００６６】
ここで、グラフィックデータは、バックグラウンドスクリーンとスプライトとビットマップスクリーンとから合成される。バックグラウンドスクリーンは、二次元配列からなり、テレビジョン受像機のスクリーンを全て覆う大きさを持つ。そして、各配列要素は、矩形の画素集合からなる。スプライトは、テレビジョン受像機のスクリーンのいずれの位置にでも配置可能な１つの矩形の画素集合からなる。ビットマップスクリーンは自由に大きさと位置を設定可能な二次元画素配列からなる。
【００６７】
また、グラフィックスプロセッサ３は、第１バス３１を通じて、ＣＰＵ１により制御され、また、ＣＰＵ１に対して、割込み要求信号ＩＮＲＱを発行する機能を有する。
【００６８】
本発明の特徴の１つであるピクセルプロッタ５は、第１バス３１を通じて、ＣＰＵ１により制御され、ＣＰＵ１から与えられたピクセルデータの描画を実行する。この場合、ピクセル単位での描画が可能である。ピクセルデータは、１ピクセルの表示色をＭビットで表したデータである（Ｍは１以上の整数でありＭビット／ピクセルのカラーモードに対応）。本実施の形態では、Ｍ＝１〜８の例を挙げる。なお、本実施の形態では、カラーパレットを通じて表示色が指定される間接指定方式を採用している。
【００６９】
また、ピクセルプロッタ５は、キャッシュシステムにより、高速な描画と効率的なバス（第１バス３１及び第２バス３３）の使用を実現している。さらに、ピクセルプロッタ５は、第１バス３１及び第２バス３３のバスマスタであり、後述のキャッシュ５９０からメモリＭＥＭへのライト及びメモリＭＥＭからキャッシュ５９０へのライトを自律的に行うことができる。ピクセルプロッタ５については、後で詳細に説明する。
【００７０】
サウンドプロセッサ７は、第１バス３１及び第２バス３３のバスマスタであり、メモリＭＥＭに格納されたデータをサウンドデータに変換し、このサウンドデータを基にオーディオ信号ＡＵを生成して出力する。
【００７１】
サウンドデータは、基本の音色となるＰＣＭ（パルスコードモジュレーション）データに対し、ピッチ変換及び振幅変調を行い合成される。振幅変調では、ＣＰＵ１によって指示されるボリューム制御の他に、楽器の波形を再現するための機能が用意される。
【００７２】
また、サウンドプロセッサ７は、第１バス３１を通じて、ＣＰＵ１により制御され、また、ＣＰＵ１に対して、割込み要求信号ＩＮＲＱを発行する機能を有する。
【００７３】
ＤＭＡコントローラ９は、外部バス４３に接続された外部メモリ４５から、メインメモリ１７へのデータ転送を司る。外部メモリ４５として、例えば、ＳＲＡＭ（ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＤＲＡＭ（ｄｙｎａｍｉｃ  ｒａｎｄｏｍａｃｃｅｓｓ  ｍｅｍｏｒｙ）、若しくはＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）等、任意のメモリを用いることができるし、その数も問わない。また、ＤＭＡコントローラ９は、データ転送の完了を通知するために、ＣＰＵ１に対する割込み要求信号ＩＮＲＱを発行する機能を有する。さらに、ＤＭＡコントローラ９は、第１バス３１及び第２バス３３のバスマスタであり、また、第１バス３１を通じてＣＰＵ１により制御される。
【００７４】
メインメモリ１７は、マスクＲＯＭ、ＳＲＡＭ、及び、ＤＲＡＭのうち、必要なものを備える。本実施の形態では、メインメモリ１７をＳＲＡＭで構成する例を挙げる。
【００７５】
バックアップコントロール回路１５は、後述の低電圧検出回路２５が低電圧を検知した場合に、メインメモリ１７を非活性化する。そして、メインメモリ１７には、バッテリ４１から電源電圧が供給される。従って、電源電圧Ｖｃｃ０及びＶｃｃ１の供給が停止された場合でも、ＳＲＡＭたるメインメモリ１７のデータが保持される。
【００７６】
第１バスアービタ１３は、第１バス３１の各バスマスタからの第１バス使用要求信号を受け付け、調停を行って、１つのバスマスタに対して第１バス使用許可信号を発行する。具体的には、第１バス３１の使用に関して各バスマスタに割り当てられた優先順位を定めた優先順位情報が複数用意され、第１バスアービタ１３は、その複数の優先順位情報から１つの優先順位情報を順次的かつ巡回的に選択し、選択した優先順位情報に基づいて調停を行う。
【００７７】
各バスマスタは、第１バス使用許可信号を受領することによって第１バス３１に対するアクセスが許可される。ここで、第１バス使用要求信号及び第１バス使用許可信号は、図１では、第１バス調停信号ＦＡＢとして示されている。
【００７８】
第１バス３１は、例えば、８ビットのデータバス、１５ビットのアドレスバス、及びコントロールバスを含む。
【００７９】
第２バスアービタは、第２バス３３の各バスマスタからの第２バス使用要求信号を受け付け、調停を行い、１つのバスマスタへ第２バス使用許可信号を発行する。具体的には、第２バス３３の使用に関して各バスマスタに割り当てられた優先順位を定めた優先順位情報が複数用意され、第２バスアービタ１４は、その複数の優先順位情報から１つの優先順位情報を順次的かつ巡回的に選択し、選択した優先順位情報に基づいて調停を行う。
【００８０】
各バスマスタは、第２バス使用許可信号を受領することによって第２バス３３に対するアクセスが許可される。ここで、第２バス使用要求信号及び第２バス使用許可信号は、図１では、第２バス調停信号ＳＡＢとして示されている。
【００８１】
第２バス３３は、１６ビットのデータバス、２７ビットのアドレスバス、及びコントロールバスを含む。
【００８２】
タイマ回路１９は、設定された時間間隔に基づき、ＣＰＵ１に対する割込み要求信号ＩＮＲＱを発行する機能を有する。時間間隔等の設定は、第１バス３１を介してＣＰＵ１によって行われる。
【００８３】
ＡＤＣ２０は、アナログ入力信号をデジタル信号に変換する。このデジタル信号は、第１バス３１を介してＣＰＵ１によってリードされる。また、ＡＤＣ２０は、ＣＰＵ１に対して、割込み要求信号ＩＮＲＱを発行する機能を有する。なお、外部からのアナログ信号は、例えば、６つのアナログポートＡＩＮ０〜５を介して、ＡＤＣ２０へ入力される。
【００８４】
入出力制御回路２１は、外部入出力装置や外部の半導体素子との通信を、入出力信号を介して行う。入出力信号は、第１バス３１を介して、ＣＰＵ１からリード／ライトされる。また、入出力制御回路２１は、ＣＰＵ１に対して、割込み要求信号ＩＮＲＱを発行する機能を有する。なお、入出力信号は、例えば、プログラマブルな入出力ポートＩＯ０〜ＩＯ２３を介して入出力される。
【００８５】
低電圧検出回路２５は、電源電圧Ｖｃｃ０及びＶｃｃ１を監視し、そのいずれかが、それぞれについて定められた電圧以下になったときに、ＰＬＬ回路２７のリセット信号、その他のシステム全体のリセット信号ＲＳＥＴを発行する。
【００８６】
電源電圧Ｖｃｃ０は、例えば、＋２．５Ｖであり、主にプロセッサ内のデジタル回路に供給される。また、電源電圧Ｖｃｃ１は、例えば、＋３．３Ｖであり、主にプロセッサ内のアナログ回路に供給される。
【００８７】
ＰＬＬ回路２７は、水晶振動子３７より得られる正弦波信号を逓倍した高周波クロック信号を生成する。
【００８８】
クロックドライバ２９は、ＰＬＬ回路２７より受け取った高周波クロック信号を、十分な信号強度へ増幅して、内部クロックＩＣＬＫとして、各ブロックへ供給する。
【００８９】
外部メモリインタフェース回路２３は、第２バス３３を外部バス４３に接続するための機能を有する。
【００９０】
図１のプロセッサにおけるデータの転送経路を説明する。例えば、バスマスタたるＣＰＵ１が、バススレイブとして第１バス３１に接続されている他の機能ブロック（グラフィックスプロセッサ３、ピクセルプロッタ５、サウンドプロセッサ７、ＤＭＡコントローラ９、第１バスアービタ１３、第２バスアービタ１４、等）を制御する場合は、これら機能ブロックの制御レジスタへのライトデータは、第１バスアービタ１３へ与えられ、調停後に、第１バス３１から、各機能ブロックに与えられ、一方、これら機能ブロックの制御レジスタからのリードデータは、調停後に、第１バス３１及び第１バスアービタ１３を介して、ＣＰＵ１に与えられる。但し、グラフィックスプロセッサ３、ピクセルプロッタ５、サウンドプロセッサ７、ＤＭＡコントローラ９は、第１バス３１のバスマスタとして、第１バスアービタ１３へバスアクセス要求を行う機能を備える。
【００９１】
バスマスタが、メインメモリ１７に対してアクセスする場合は、ライトデータは、第１バスアービタ１３に与えられ、調停後に、第１バス３１から、メインメモリ１７に与えられ、一方、リードデータは、調停後に、第１バス３１及び第１バスアービタ１３を介して、バスマスタに与えられる。また、バスマスタが、外部メモリ４５に対してアクセスする場合は、ライトデータは、第２バスアービタ１４に与えられ、調停後に、第２バス３３から、外部メモリインタフェース回路２３及び外部バス４３を介して、外部メモリ４５に与えられ、一方、リードデータは、調停後に、外部バス４３、外部メモリインタフェース回路２３、第２バス３３及び第２バスアービタ１４を介して、バスマスタに与えられる。
【００９２】
ここで、本実施の形態では、メモリＭＥＭが描画領域として使用される。このメモリＭＥＭが複数のバスマスタで共用され、かつ、キャッシュ５９０が１つのバスマスタに占有され、かつ、ライトバック方式を採用している場合、常にコヒーレンシが維持されているとは限らない。それ故、メモリＭＥＭとキャッシュ５９０内のデータが一致していない場合、ＣＰＵ１からの制御によってキャッシュ５９０内のデータをメモリＭＥＭに書き出すフラッシュ動作を実装し、コヒーレンシの維持を図る。
【００９３】
次に、ピクセルプロッタ５の動作を簡単に説明する。描画を行う前に、ＣＰＵ１により、カラーモード及び描画位置が、ピクセルプロッタ５の対応する制御レジスタに設定される。本実施の形態では、上記のように、カラーモードは、１ビット／ピクセル（２色モード）〜８ビット／ピクセル（２５６色）の８通りが用意される。
【００９４】
描画位置は、描画対象のピクセルのバイトアドレスとビットアドレスとにより指定される。本実施の形態では、例えば、描画位置は、３０ビットのアドレスにより指定し、上位２７ビットがバイトアドレス［２９：３］、下位３ビットがビットアドレス［２：０］である。
【００９５】
つまり、バイトアドレス［２９：３］は、描画対象のピクセルデータの先頭ビットを含むバイトを指し示すアドレスであり、ビットアドレス［２：０］は、描画対象のピクセルデータの先頭ビットのバイト内におけるビット位置を示すアドレスである。
【００９６】
ピクセルデータは、カラーモードに関係なく、小さいバイトアドレスから大きいバイトアドレスへ隙間なく敷き詰められる。この場合、ピクセルデータは、バイト内でも、カラーモードに関係なく、ＬＳＢ（ｌｅａｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）側からＭＳＢ（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ）側へ、隙間なく敷き詰められる。この点を具体例を挙げて説明する。
【００９７】
図２は、図１のピクセルプロッタ５の動作説明の例示図である。図２では、カラーモードが、３ビット／ピクセルの例を挙げている。図２に示すように、ピクセルＮは、バイトアドレス［２９：３］及びビットアドレス［２：０］により指定される描画位置に書き込まれる。次のピクセルＮ＋１は、ピクセルＮのすぐ後から書き込まれる。さらに次のピクセルＮ＋２は、ピクセルＮ＋１のすぐ後から、バイトに跨って書き込まれる。このように、ピクセルデータは、バイト内及びバイト間において、隙間なく敷き詰められる。この場合のキャッシュ５９０に対するピクセルデータの書き込み、つまり、描画は、ワード単位やバイト単位ではなく、ピクセル単位で行われる。
【００９８】
次に、ピクセルプロッタ５の詳細を説明する。
【００９９】
図３は、図１のピクセルプロッタ５に対する入出力信号の説明図である。図３に示すように、内部アドレスＩＡＤＲは、各機能ブロックの制御レジスタやメモリが配置される第１バス３１のアドレスを示す信号であり、本実施の形態では、例えば、１５ビットの信号とする。つまり、第１バス３１に含まれるアドレスバスのバス幅は１５ビットとする。この内部アドレスＩＡＤＲは、バスマスタから第１バスアービタ１３を介して第１バス３１に与えられる。ピクセルプロッタ５に対しては、ＣＰＵ１がピクセルプロッタ５の制御を行う際には、バスマスタとなったＣＰＵ１が、第１バスアービタ１３及び第１バス３１を介して与える。
【０１００】
第１バス３１領域には、ＣＰＵ１（制御レジスタ）、サウンドプロセッサ７（ローカルメモリ及び制御レジスタ）、グラフィックスプロセッサ３（制御レジスタ、パレットメモリ、スプライトメモリ）、メインメモリ１７、及びピクセルプロッタ５（制御レジスタ）等が配置される。一方、第２バス３３領域には、外部メモリ４５などが配置される。
【０１０１】
内部リード／ライト信号ＩＲＷは、ピクセルプロッタ５内に配置された制御レジスタ等に対してアクセスする際のアクセスの種類を示す信号であり、第１バスアービタ１３および第１バス３１を介してＣＰＵ１から与えられる。例えば、内部リード／ライト信号ＩＲＷが、ハイレベルのときはリードを示し、ローレベルのときはライトを示す。
【０１０２】
内部データＩＤＡＩは、ピクセルプロッタ５に対して、バスマスタとなったＣＰＵ１から、第１バスアービタ１３及び第１バス３１を経由して与えられるデータである。
【０１０３】
内部データＩＤＡＯは、バスマスタとなったＣＰＵ１に対して、ピクセルプロッタ５から、第１バス３１及び第１バスアービタ１３を経由して与えられるデータである。
【０１０４】
本実施の形態では、例えば、内部データＩＤＡＩ及びＩＤＡＯは、それぞれ８ビットのデータとする。つまり、第１バス３１に含まれるデータバスのバス幅を８ビットする。
【０１０５】
内部クロックＩＣＬＫは、例えば、約４３ＭＨｚのクロック信号であり、クロックドライバ２９から与えられる。ピクセルプロッタ５の全論理回路は、内部クロック信号ＩＣＬＫに同期して動作する。内部クロック信号ＩＣＬＫは、ピクセルプロッタ５内部の同期レジスタに入力されるが、図示を省略している。
【０１０６】
リセット信号ＲＳＥＴは、ピクセルプロッタ５の全論理回路をリセットする信号であり、リセットボタン（図示せず）が押下されたときや低電圧検出回路２５が低電圧を検出したときに与えられる信号である。ピクセルプロッタ５の初期値付き制御レジスタは、このリセット信号ＲＳＥＴによって初期値へと戻される。
【０１０７】
プロットアドレスＰＡＤＲは、ピクセルプロッタ５がメモリＭＥＭに対してアクセスを行う際のバイトアドレスであり、リード／ライトの対象であるバイトデータの格納位置を示す。プロットアドレスＰＡＤＲは、第１バスアービタ１３または第２バスアービタ１４を介して、第１バス３１または第２バス３３に一旦与えられ、それらからメモリＭＥＭへ与えられる。本実施の形態では、例えば、プロットアドレスＰＡＤＲを、２７ビットの信号とする。第１バス３１へのアクセスでは、プロットアドレスＰＡＤＲの下位１５ビットが有効となる。
【０１０８】
プロットリード／ライト信号ＰＲＷは、ピクセルプロッタ５がメモリＭＥＭに対してアクセスする際のアクセスの種類を示す信号である。例えば、プロットリード／ライト信号ＰＲＷが、ローレベルのときはリードを示し、ハイレベルのときはライトを示す。プロットリード／ライト信号ＰＲＷは、第１バスアービタ１３または第２バスアービタ１４を介して、第１バス３１または第２バス３３に一旦与えられ、それらからメモリＭＥＭへ与えられる。
【０１０９】
ライトデータＷＤＡは、ピクセルプロッタ５によるメモリＭＥＭへのライト対象のデータである。本実施の形態では、第１バス３１に含まれるデータバスのバス幅を８ビットとしているので、メインメモリ１７へのライトの際は、ライトデータＷＤＡのサイズは１バイトであり、一方、第２バス３３に含まれるデータバスのバス幅は１６ビットとしたので、外部メモリ４５へのライトの際は、ライトデータＷＤＡのサイズとして１バイトあるいは２バイトである。ライトデータＷＤＡは、第１バスアービタ１３または第２バスアービタ１４を介して、第１バス３１または第２バス３３に一旦与えられ、それらからメモリＭＥＭへ与えられる。
【０１１０】
サイズ信号ＳＩＺは、ピクセルプロッタ５が、メモリＭＥＭに対してリード／ライトするデータのサイズを示す信号である。本実施の形態では、例えば、サイズ信号ＳＩＺは、５ビットの信号とする。例えば、サイズが１バイトのときは、「００００１」とし、２バイトのときは、「０００１０」とする。サイズ信号ＳＩＺは、第１バスアービタ１３及び第２バスアービタ１４に与えられる。
【０１１１】
第１バス使用要求信号ＦＲＥＱは、第１バスアービタ１３に対して第１バス３１の使用要求を行う信号である。第１バス使用要求信号ＦＲＥＱがアサートされ、プロットリード／ライト信号ＰＲＷがリードを示しているときは、メインメモリ１７へのリード要求を示す。一方、第１バス使用要求信号ＦＲＥＱがアサートされ、プロットリード／ライト信号ＰＲＷがライトを示しているときは、メインメモリ１７へのライト要求を示す。
【０１１２】
第２バス使用要求信号ＳＲＥＱは、第２バスアービタ１４に対して第２バス３３の使用要求を行う信号である。第２バス使用要求信号ＳＲＥＱがアサートされ、プロットリード／ライト信号ＰＲＷがリードを示しているときは、外部メモリ４５へのリード要求を示す。一方、第２バス使用要求信号ＳＲＥＱがアサートされ、プロットリード／ライト信号ＰＲＷがライトを示しているときは、外部メモリ４５へのライト要求を示す。
【０１１３】
内部ライト受諾信号ＩＷＡＣは、ライトの第１バス３１使用要求が受け付けられたことを示す信号であり、第１バスアービタ１３から与えられる。
【０１１４】
外部ライト受諾信号ＥＷＡＣは、ライトの第２バス３３使用要求が受け付けられたことを示す信号であり、第２バスアービタ１４から与えられる。
【０１１５】
内部リード許可信号ＩＲＧＲは、リードの第１バス３１使用要求が許可され、メインメモリ１７からデータをリード可能であることを示す信号であり、第１バスアービタ１３から与えられる。
【０１１６】
外部下位バイトリード許可信号ＥＲＧＬは、外部メモリ４５からリード外部データＲＥＤＡの下位バイトを通じてデータをリード可能であることを示す信号であり、第２バスアービタ１４から与えられる。
【０１１７】
外部上位バイトリード許可信号ＥＲＧＵは、外部メモリ４５からリード外部データＲＥＤＡの上位バイトを通じてデータをリード可能であることを示す信号であり、第２バスアービタ１４から与えられる。
【０１１８】
なお、第１バス使用要求信号ＦＲＥＱ、内部ライト受諾信号ＩＷＡＣ、及び内部リード許可信号ＩＲＧＲは、図１の第１バス調停信号ＦＡＢに含まれる。また、第２バス使用要求信号ＳＲＥＱ、外部ライト受諾信号ＥＷＡＣ、外部下位バイトリード許可信号ＥＲＧＬ、及び外部上位バイトリード許可信号ＥＲＧＵは、図１の第２バス調停信号ＳＡＢに含まれる。
【０１１９】
リード内部データＲＩＤＡは、メインメモリ１７から第１バス３１を介して第１バスアービタ１３に与えられ、そこからピクセルプロッタ５に与えられる。但し、リード内部データＲＩＤＡには他のバスマスタのリードデータも含まれているので、ピクセルプロッタ５は内部リード許可信号ＩＲＧＲがアサートされている期間にリード内部データＲＩＤＡの値をフェッチすることにより、正しい値を取得できる。
【０１２０】
リード外部データＲＥＤＡは、外部メモリ４５から第２バス３３を介して第２バスアービタ１４に与えられ、そこからピクセルプロッタ５に与えられる。但し、リード外部データＲＥＤＡには他のバスマスタのリードデータも含まれているので、ピクセルプロッタ５は外部下位バイトリード許可信号ＥＲＧＬがアサートされている期間にリード外部データＲＥＤＡの下位バイトの値をフェッチし、外部上位バイトリード許可信号ＥＲＧＵがアサートされている期間にリード外部データＲＥＤＡの上位バイトの値をフェッチすることにより、正しい値を取得できる。
【０１２１】
図４は、図３のピクセルプロッタ５の内部構成を示すブロック図である。図４に示すように、ピクセルプロッタ５は、アドレスデコーダ５１、プロットアクティブレジスタ５２、キャッシュフラッシュレジスタ５３、プロットビットレジスタ５４、プロットロケーションカウンタ５５、プロットカラーレジスタ５６、マルチプレクサ５７、ピクセルキャッシュユニット５８、及びバスアービタインタフェース５９を含む。
【０１２２】
ピクセルキャッシュユニット５８は、ダイレクトマップ方式のキャッシュ５９０（後述の図６参照）およびその周辺回路を含む。キャッシュ５９０は、メモリＭＥＭ上の２つのブロック（以下、本実施の形態において、「メモリブロック」と呼ぶ。）が動的にマッピングされる２つのブロック（以下、本実施の形態において、「キャッシュブロック」と呼ぶ。）ＲＧ０及びＲＧ１を含み、本実施の形態では、それぞれを１６ビットとしている。つまり、１６ビット × ２エントリのキャッシュ５９０を採用している。詳細は後述する。
【０１２３】
アドレスデコーダ５１は、ＣＰＵ１が発行した内部アドレスＩＡＤＲをデコードして、各制御レジスタ５２，５３，５４，５６、マルチプレクサ５７、及びカウンタ５５の選択信号を出力する。このようにして、ＣＰＵ１は、各制御レジスタ５２，５３，５４，５６、及びカウンタ５５を制御できるとともに、マルチプレクサ５７を通じて各制御レジスタ５２，５３，５４，５６、及びカウンタ５５の現在値をリードできる。
【０１２４】
プロットアクティブレジスタ５２は、プロットアクティブビットＰＡＣＴを保持する。プロットアクティブビットＰＡＣＴは、描画処理の動作／非動作を示すビットであり、「真」であれば描画処理が動作状態であることを示し、「偽」であれば描画処理が非動作状態であることを示す。プロットアクティブビットＰＡＣＴは、ピクセルキャッシュユニット５８及びプロットロケーションカウンタ５５に与えられる。
【０１２５】
アドレスデコーダ５１におけるデコード結果として、内部アドレスＩＡＤＲがプロットカラーレジスタ５６を示し、かつ、内部リード／ライト信号ＩＲＷがライトを示しているときに、プロットアクティブビットＰＡＣＴは「真」となり、ピクセルキャッシュユニット５８からのキャッシュヒット信号ＣＨＨＴが「真」を示しているときに、プロットアクティブビットＰＡＣＴは「偽」となる。
【０１２６】
つまり、描画のために、プロットカラーレジスタ５６に描画対象データＰＣＯＬがセットされたときに、プロットアクティブビットＰＡＣＴが「真」になる。なお、ここでは、描画対象データは、キャッシュにこれから描画されるデータを意味し、後述の描画データはキャッシュにすでに描画されているデータを意味する。
【０１２７】
また、キャッシュヒット信号ＣＨＨＴが「真」になったということは、キャッシュ５９０に対する描画が終了したことを意味するから、この場合に、プロットアクティブビットＰＡＣＴを「偽」にする。
【０１２８】
キャッシュフラッシュレジスタ５３は、キャッシュフラッシュビットＣＨＦＬを保持する。キャッシュフラッシュビットＣＨＦＬが「真」のときに、キャッシュユニット５８のキャッシュ５９０に保持されている全データが、メモリＭＥＭに書き出される。キャッシュフラッシュビットＣＨＦＬは、ピクセルキャッシュユニット５８に与えられる。
【０１２９】
アドレスデコーダ５１におけるデコードの結果、内部アドレスＩＡＤＲがキャッシュフラッシュレジスタ５３を示し、かつ、内部リード／ライト信号ＩＲＷがライトを示しているときに、キャッシュフラッシュビットＣＨＦＬが「真」になる。一方、ダーティビットＤＴＹ０およびＤＴＹ１の双方が「偽」のときに、キャッシュフラッシュビットＣＨＦＬが「偽」になる。
【０１３０】
ここで、キャッシュフラッシュビットＣＨＦＬの必要性を簡単に説明する。メモリＭＥＭへの描画（書き込み）あるいはメモリＭＥＭからの読み込みが、キャッシングの範囲を外れたとき、キャッシュ５９０中の全データが、メモリＭＥＭへライトバックされる。従って、描画を停止あるいは終了した時点では、キャッシュ５９０にデータが残ったままであり、メモリＭＥＭとのコヒーレンシが維持されていない状態が発生する。このような事態を避けるために、ＣＰＵ１が、キャッシュフラッシュビットＣＨＦＬを「真」にする制御をして、キャッシュ５９０中の全データを、メモリＭＥＭに書き出すようにしている。
【０１３１】
ダーティビットＤＴＹ０は、キャッシュブロックＲＧ０中のデータと、メモリＭＥＭ上のデータと、の間でコヒーレンシが維持されているか否かを示す。コヒーレンシが維持されていない場合は、ダーティビットＤＴＹ０は、「真」になる。
【０１３２】
ダーティビットＤＴＹ１は、キャッシュブロックＲＧ１中のデータと、メモリＭＥＭ上のデータと、の間でコヒーレンシが維持されているか否かを示す。コヒーレンシが維持されていない場合は、ダーティビットＤＴＹ１は、「真」になる。
【０１３３】
プロットビットレジスタ５４は、プロットビットＰＢＴを保持する。プロットビットＰＢＴは、描画のカラーモードを設定するビットである。上記のように、カラーモードは、１ピクセルの表示色をＭビットで表す（Ｍビット／ピクセル）。例えば、「Ｍ」は、１〜８の任意の値を取ることができ、プロットビットＰＢＴを３ビットする。この場合、プロットビットＰＢＴが示す０〜７の値は、それぞれ１〜８ビット／ピクセルを示す。プロットビットＰＢＴは、ピクセルキャッシュユニット５８、プロットロケーションカウンタ５５、及び、マルチプレクサ５７に与えられる。
【０１３４】
内部アドレスＩＡＤＲがプロットビットレジスタ５４を示しており、かつ、内部リード／ライト信号ＩＲＷがライトを示しているときに、アドレスデコーダ５１は、プロットビットレジスタ５４に選択信号を出力する。プロットビットレジスタ５４は、この選択信号が入力されたときに、内部データＩＤＡＩとして与えられたカラーモードの情報を保持する。
【０１３５】
プロットロケーションカウンタ５５は、描画（書き込み）あるいは読み出しを行うピクセル位置を示すピクセルアドレスＰＬＯＣを生成する。ピクセルアドレスＰＬＯＣは、バイトアドレス２７ビット（ＰＬＯＣ［２９：３］）と、ビットアドレス３ビット（ＰＬＯＣ［２：０］）と、で構成される。さらに、バイトアドレスＰＬＯＣ［２９：３］は、その上位２５ビット（ＰＬＯＣ［２９：５］）がキャッシュ５９０に対するタグフィールドに相当する部分であり、下位２ビット（ＰＬＯＣ［４：３］）がキャッシュ５９０に対するインデックスフィールドに相当する部分である。
【０１３６】
インデックスフィールドＰＬＯＣ［４］によって、キャッシュブロックＲＧ０あるいはＲＧ１が選択される。タグフィールドＰＬＯＣ［２９：５］は、後述するタグアドレスＴＧＡＤ０及びＴＧＡＤ１と比較される部分である。これらについては、後で詳述する。
【０１３７】
以上のようなピクセルアドレスＰＬＯＣは、ピクセルキャッシュユニット５８及びマルチプレクサ５７に与えられる。プロットロケーションカウンタ５５については、後で詳述する。
【０１３８】
プロットカラーレジスタ５６は、描画対象データＰＣＯＬを設定するレジスタであり、カラーモードに応じたピクセルデータがＬＳＢ詰めで保持される。ただし、描画対象データＰＣＯＬは１ピクセル分のピクセルデータのみにより構成される。つまり、描画対象データＰＣＯＬに、２ピクセル以上のピクセルデータが含まれることはない。このように、描画対象データＰＣＯＬをピクセル単位で設定する。本実施の形態では、例えば、プロットカラーレジスタ５６を８ビットとする。この場合に、カラーモードが例えば３ビット／ピクセルとすると、描画対象データＰＣＯＬの下位３ビットがピクセルデータであり、残り５ビットは「０」に設定される。描画対象データＰＣＯＬは、ピクセルキャッシュユニット５８及びマルチプレクサ５７に与えられる。
【０１３９】
内部アドレスＩＡＤＲがプロットカラーレジスタ５６を示しており、かつ、内部リード／ライト信号ＩＲＷがライトを示しているときに、アドレスデコーダ５１は、プロットカラーレジスタ５６に選択信号を出力する。プロットカラーレジスタ５６は、この選択信号が入力されたときに、内部データＩＤＡＩとして与えられた描画対象データＰＣＯＬを保持する。
【０１４０】
マルチプレクサ５７は、アドレスデコーダ５１からの選択信号に従って、プロットビットＰＢＴ、ピクセルアドレスＰＬＯＣ、描画対象データＰＣＯＬ、及び、描画データＰＶＡＬのうちのいずれか１つを選択して、内部データＩＤＡＯとして出力する。
【０１４１】
アドレスデコーダ５１は、内部リード／ライト信号ＩＲＷがリードを示しているときに、内部アドレスＩＡＤＲのデコード結果に応じて、プロットビットＰＢＴ、ピクセルアドレスＰＬＯＣ、描画対象データＰＣＯＬ、及び、描画データＰＶＡＬのうちのいずれか１つを選択する選択信号をマルチプレクサ５７に出力する。この場合、ピクセルアドレスＰＬＯＣの３０ビットは、８ビット単位に分割されて選択される。なぜなら、第１バス３１のバス幅を８ビットとしているからである。
【０１４２】
描画データＰＶＡＬは、現在描画されているピクセルデータ（キャッシュ５９０中の現在のデータ）であり、カラーモードに応じたピクセルデータがＬＳＢ詰めで配置されている。ただし、描画データＰＶＡＬは１ピクセル分のピクセルデータのみにより構成される。つまり、描画データＰＶＡＬに、２ピクセル以上のピクセルデータが含まれることはない。従って、ＣＰＵ１は、現在描画されているピクセルデータをピクセル単位で読み出すことができる。
【０１４３】
なお、描画対象データＰＣＯＬは、プロットカラーレジスタ５６に現在保持されているデータ（次に描画されるデータ）である。
【０１４４】
バスアービタインタフェース５９は、プロットアドレスＰＡＤＲ、プロットリード／ライト信号ＰＲＷ、サイズ信号ＳＩＺ、第１バス使用要求信号ＦＲＥＱ、及び第２バス使用要求信号ＳＲＥＱを生成する。詳細には次の通りである。
【０１４５】
バスアービタインタフェース５９は、ピクセルキャッシュユニット５８から与えられたリードリクエスト信号ＲＲＥＱがアサートされているときは、ピクセルキャッシュユニット５８から与えられたリードアドレス（バイトアドレス）ＲＡＤＲを、プロットアドレスＰＡＤＲとして出力する。
【０１４６】
一方、バスアービタインタフェース５９は、ピクセルキャッシュユニット５８から与えられたライトリクエスト信号ＷＲＥＱがアサートされているときは、ピクセルキャッシュユニット５８から与えられたライトアドレス（バイトアドレス）ＷＡＤＲを、プロットアドレスＰＡＤＲとして出力する。
【０１４７】
プロットアドレスＰＡＤＲのＬＳＢは、ピクセルキャッシュユニット５８へも出力される。プロットアドレスＰＡＤＲのＬＳＢは、キャッシュブロックＲＧ０あるいはＲＧ１において、上位８ビットあるいは下位８ビットのいずれかを示す。つまり、プロットアドレスＰＡＤＲのＬＳＢが、「０」のときは、下位８ビットを示しており、「１」のときは、上位８ビットを示している。
【０１４８】
また、バスアービタインタフェース５９は、リードリクエスト信号ＲＲＥＱがアサートされているときは、リードアドレスＲＡＤＲをデコードして、第１バス３１領域あるいは第２バス３３領域のいずれへの要求かを判断して、第１バス使用要求信号ＦＲＥＱ及び第２バス使用要求信号ＳＲＥＱのアサート／ネゲートを制御する。
【０１４９】
一方、バスアービタインタフェース５９は、ライトリクエスト信号ＷＲＥＱがアサートされているときは、ライトアドレスＷＡＤＲをデコードして、第１バス３１領域あるいは第２バス３３領域のいずれへの要求かを判断して、第１バス使用要求信号ＦＲＥＱ及び第２バス使用要求信号ＳＲＥＱのアサート／ネゲートを制御する。
【０１５０】
さらに、バスアービタインタフェース５９は、サイズ信号ＳＩＺが示すサイズを２バイトとする。ただし、リードリクエストＲＲＥＱが入力されたときのＬＳＢが「１」のリードアドレスＲＡＤＲあるいはライトリクエストＷＲＥＱが入力されたときのＬＳＢが「１」のライトアドレスＷＡＤＲが示す位置からアクセスが開始されるときは、その時のサイズ信号ＳＩＺが示すサイズを１バイトとする。なぜなら、このようなアクセスのときは、下位バイトのリード／ライトは無駄だからである。
【０１５１】
図５は、図４のプロットロケーションカウンタ５５の内部構成を示すブロック図である。図５に示すように、プロットロケーションカウンタ５５は、加算器５５１，５５２、マルチプレクサ５５３、ＡＮＤ回路５５４、マルチプレクサ５５５〜５５８、及びアドレスレジスタ５５９を含む。
【０１５２】
アドレスレジスタ５５９には、３０ビットのピクセルアドレスＰＬＯＣが保持される。ＣＰＵ１は、このアドレスレジスタ５５９に、バイト単位でアクセスすることができる。具体的には次の通りである。
【０１５３】
ＣＰＵ１からの内部アドレスＩＡＤＲがピクセルアドレスＰＬＯＣ［２９：２４］を示しており、かつ、内部リード／ライト信号ＩＲＷがライトを示しているときに、アドレスデコーダ５１は、選択信号ＰＬＳＬ３をアサートする。すると、マルチプレクサ５５５は、ＣＰＵ１から内部データＩＤＡＩとして与えられたピクセルアドレスＰＬＯＣ［２９：２４］を、アドレスレジスタ５５９の該当位置へ出力する。同様に、マルチプレクサ５５６〜５５８の各々は、対応する選択信号ＰＬＳＬ２〜ＰＬＳＬ０に従って、対応するピクセルアドレスＰＬＯＣ［２３：１６］〜ＰＬＯＣ［７：０］を、アドレスレジスタ５５９の該当位置へ出力する。
【０１５４】
さて、一方、描画処理が動作状態のときは、キャッシュ５９０に対する描画（書き込み）／読み出しが行われるたびに、ピクセルアドレスＰＬＯＣに、プロットビットＰＢＴが示すカラーモード（Ｍビット／ピクセル）の値が加算されて、次の描画／読み出し位置を示すピクセルアドレスＰＬＯＣが新たに生成される。具体的には次の通りである。
【０１５５】
アドレスレジスタ５５９から出力されたピクセルアドレスＰＬＯＣは、マルチプレクサ５５３の一方入力に与えられるとともに、加算器５５１にも与えられる。この加算器５５１は、入力されたピクセルアドレスＰＬＯＣに、プロットビットレジスタ５４からのプロットビットＰＢＴを加算し、その加算結果を加算器５５２に出力する。なぜなら、ピクセル単位で描画／読み出しが行われため、次の描画／読み出し位置は、現在の描画／読み出しの対象となっているピクセルデータの先頭ビットから１ピクセルデータ分先になるからである。例えば、プロットビットＰＢＴにより表されるカラーモードが、３ビット／ピクセルのときは、次の描画／読み出し位置は、現在の描画／読み出しの対象となっているピクセルデータの先頭ビットから３ビット先である（図２参照）。
【０１５６】
次に、加算器５５２は、加算器５５１による加算結果に、「１」を加算して、その加算結果を、マルチプレクサ５５３の他方入力に与える。加算器５５２による加算結果が、次の描画／読み出し位置を示すピクセルアドレスＰＬＯＣである。つまり、プロットビットＰＢＴが「ｊ（ｊは整数）」を示すときは、カラーモードは（ｊ＋１）ビット／ピクセルとなるからである。例えば、プロットビットＰＢＴが「０」を示すときは、カラーモードは１ビット／ピクセルである。
【０１５７】
さて、マルチプレクサ５５３は、ＡＮＤ回路５５４から出力された選択信号ＳＥＬＴに従って、加算器５５２から与えられた新たなピクセルアドレスＰＬＯＣあるいはアドレスレジスタ５５９から直接与えられたピクセルアドレスＰＬＯＣのいずれかを選択して、マルチプレクサ５５５〜５５８に出力する。この場合、ピクセルアドレスＰＬＯＣ［２９：２４］〜ＰＬＯＣ［７：０］のそれぞれは、対応するマルチプレクサ５５５〜５５８に与えられる。
【０１５８】
ＡＮＤ回路５５４には、プロットアクティブビットＰＡＣＴ及びキャッシュヒット信号ＣＨＨＴが与えられる。キャッシュヒット信号ＣＨＨＴは、メモリＭＥＭに対する描画／読み出しが、キャッシュ５９０にヒットしたときにアサートされる信号である。プロットアクティブビットＰＡＣＴ及びキャッシュヒット信号ＣＨＨＴの双方がアサートされたときに、選択信号ＳＥＬＴがアサートされる。つまり、描画処理が動作状態であり、かつ、キャッシュ５９０にヒットしたときに、選択信号ＳＥＬＴがアサートされる。
【０１５９】
従って、マルチプレクサ５５３は、描画処理が動作状態であり、かつ、キャッシュ５９０にヒットしたときに、加算器５５２から与えられた新たなピクセルアドレスＰＬＯＣをマルチプレクサ５５５〜５５８に与え、それ以外のときは、アドレスレジスタ５５９から直接与えられたピクセルアドレスＰＬＯＣをマルチプレクサ５５５〜５５８に与える。
【０１６０】
そして、マルチプレクサ５５５〜５５８の各々は、与えられる選択信号ＰＬＳＬ０〜ＰＬＳＬ３がネゲートされているときに、マルチプレクサ５５３からの対応するピクセルアドレスＰＬＯＣ［２９：２４］〜ＰＬＯＣ［７：０］を、アドレスレジスタ５５９の該当位置に出力する。
【０１６１】
以上のようにして、プロットロケーションカウンタ５５は、描画処理が動作状態のときは、キャッシュ５９０に対する描画／読み出しが行われるたびに、現在のピクセルアドレスＰＬＯＣに、プロットビットＰＢＴが示すカラーモード（Ｍビット／ピクセル）の値を加算して、次の描画／読み出し位置を示すピクセルアドレスＰＬＯＣを新たに算出する。
【０１６２】
図６は、図４のピクセルキャッシュユニット５８の内部構成を示すブロック図である。図６に示すように、ピクセルキャッシュユニット５８は、ダーティコントロール回路５８１、キャッシュセレクタ５８２、アドレスカリキュレータ５８３、有効ビットコントロール回路５８４、マルチプレクサコントロール回路５８５、マルチプレクサＭＵ０Ｌ，ＭＵ０Ｕ，ＭＵ１Ｌ，ＭＵ１Ｕ、ピクセルパッカ５６０、ピクセルアンパッカ５８６、キャッシュ５９０、アドレスコンパレータＡＣ０，ＡＣ１、タグレジスタＴＧ０，ＴＧ１、有効ビットレジスタＶＲ０，ＶＲ１、ＡＮＤ回路ＡＮ０，ＡＮ１、及びリード／ライトコントロール回路５８９を含む。
【０１６３】
キャッシュ５９０は、キャッシュブロックＲＧ０及びＲＧ１を含む。キャッシュブロックＲＧ０及びＲＧ１のそれぞれは、レジスタにより構成される。
【０１６４】
上記のように、ダイレクトマップ方式により、２つのキャッシュブロックＲＧ０及びＲＧ１には、２つのメモリブロック（メモリＭＥＭ上の２つのブロック）が動的にマッピングされる。また、キャッシュ５９０とメモリＭＥＭとの間のコヒーレンシの維持（メモリＭＥＭの更新）は、ライトバック方式により行われる。なお、本実施の形態では、キャッシュブロックＲＧ０及びＲＧ１のそれぞれが１６ビット（１６ビット × ２エントリ）の例を挙げている。
【０１６５】
まず、図中の各信号について簡単に説明する。ただし、既に説明した信号については説明を省略する。ライトリクエスト信号ＷＲＱ０は、キャッシュブロックＲＧ０中のデータをメモリＭＥＭにライトバックする際に「真」に設定される信号である。ライトリクエスト信号ＷＲＱ１は、キャッシュブロックＲＧ１中のデータをメモリＭＥＭにライトバックする際に「真」に設定される信号である。
【０１６６】
リードリクエスト信号ＲＲＱ０は、ピクセルアドレスＰＬＯＣがキャッシングの範囲を外れたときに、メモリＭＥＭのデータをリードして、キャッシュブロックＲＧ０に書き込む際に「真」に設定される信号である。図示していないが、リードリクエスト信号ＲＲＱ１は、ピクセルアドレスＰＬＯＣがキャッシングの範囲を外れたときに、メモリＭＥＭのデータをリードして、キャッシュブロックＲＧ１に書き込む際に「真」に設定される信号である。
【０１６７】
イネーブルビットＥＮＡ０は、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣにより位置が示されるピクセルデータの一部のビットあるいは全部のビットが、キャッシュブロックＲＧ０中に存在する場合に、「真」に設定されるビットである。イネーブルビットＥＮＡ１は、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣにより位置が示されるピクセルデータの一部のビットあるいは全部のビットがキャッシュブロックＲＧ１中に存在する場合に、「真」に設定されるビットである。
【０１６８】
従って、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣにより位置が示されるピクセルデータが、キャッシュブロックＲＧ０及びＲＧ１に跨っているときは、イネーブルビットＥＮＡ０及びＥＮＡ１の双方が「真」に設定される。
【０１６９】
バイトアドレスＰＡＤ０［２６：２］は、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣ［２９：０］のインデックスフィールドＰＬＯＣ［４：３］がキャッシュブロックＲＧ０を示しているときのタグフィールドＰＬＯＣ［２９：５］である。バイトアドレスＰＡＤ１［２６：２］は、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣ［２９：０］のインデックスフィールドＰＬＯＣ［４：３］がキャッシュブロックＲＧ１を示しているときのタグフィールドＰＬＯＣ［２９：５］である。
【０１７０】
有効ビット制御信号ＶＣＯＮ０は、タグレジスタＴＧ０及び有効ビットレジスタＶＲ０を制御する信号である。有効ビット制御信号ＶＣＯＮ１は、タグレジスタＴＧ１及び有効ビットレジスタＶＲ１を制御する信号である。
【０１７１】
タグアドレスＴＧＡＤ０［２６：２］は、キャッシュブロックＲＧ０に現在マッピングされているメモリブロックのバイトアドレス２７ビット中の上位２５ビットである。タグアドレスＴＧＡＤ１［２６：２］は、キャッシュブロックＲＧ１に現在マッピングされているメモリブロックのバイトアドレス２７ビット中の上位２５ビットである。
【０１７２】
ヒット制御信号ＨＣＯＮ０は、バイトアドレスＰＡＤ０［２６：２］とタグアドレスＴＧＡＤ０［２６：２］とが一致したときに、「真」に設定される信号である。ヒット制御信号ＨＣＯＮ１は、バイトアドレスＰＡＤ１［２６：２］とタグアドレスＴＧＡＤ１［２６：２］とが一致したときに、「真」に設定される信号である。
【０１７３】
有効ビットＶＬＤ０は、キャッシュブロックＲＧ０中のデータの有効／無効を示す信号であり、有効な期間中「真」にされ、無効なときに「偽」にされる。有効ビットＶＬＤ１は、キャッシュブロックＲＧ１中のデータの有効／無効を示す信号であり、有効な期間中「真」にされ、無効なときに「偽」にされる。
【０１７４】
ヒット信号ＨＴ０は、メモリＭＥＭに対する描画（書き込み）／読み出しが、キャッシュブロックＲＧ０にヒットしたときに「真」に設定される信号である。ヒット信号ＨＴ１は、メモリＭＥＭに対する描画（書き込み）／読み出しが、キャッシュブロックＲＧ１にヒットしたときに「真」に設定される信号である。
【０１７５】
選択信号ＭＳＬ０Ｌ，ＭＳＬ０Ｕ，ＭＳＬ１Ｌ，ＭＳＬ１Ｕは、それぞれマルチプレクサＭＵ０Ｌ，ＭＵ０Ｕ，ＭＵ１Ｌ，ＭＵ１Ｕを制御する信号である。
【０１７６】
次に、各機能ブロックについて説明する。ダーティコントロール回路５８１は、ダーティビットＤＴＹ０及びＤＴＹ１を制御する。この点を図面を用いて詳細に説明する。
【０１７７】
図７Ａは、図６のダーティビットＤＴＹ０の真理値表を示す図、図７Ｂは、図６のダーティビットＤＴＹ１の真理値表を示す図である。図７Ａに示すように、ダーティコントロール回路５８１は、ライトリクエスト信号ＷＲＱ０が「真」、かつ、内部ライト受諾信号ＩＷＡＣが「真」、かつ、ピクセルアドレスＰＡＤＲのＬＳＢが「１」のときに、次の内部クロック信号ＩＣＬＫの「立ち下がり」で、ダーティビットＤＴＹ０を「偽」（キャッシュ５９０とメモリＭＥＭとの間でコヒーレンシが維持されている状態）にする。
【０１７８】
ここで、プロットアドレスＰＡＤＲ［２６：０］は、バイトアドレスであり、そのＬＳＢ（プロットアドレスＰＡＤＲ［０］）は、キャッシュブロックＲＧ０及びＲＧ１の各々において、上位バイトあるいは下位バイトのいずれかを示す。本実施の形態では、プロットアドレスＰＡＤＲ［０］が「０」ときは下位バイトを示し、「１」のときは上位バイトを示す。ライトバックは、キャッシュ５９０のブロック単位で行われるため、第１バス３１に接続されたメモリ１７に対するライトバックにおいては、プロットアドレスＰＡＤＲ［０］が「１」になったことを、ダーティビットＤＴＹ０を「偽」にする条件の１つとしている。
【０１７９】
また、ダーティコントロール回路５８１は、ライトリクエスト信号ＷＲＱ０が「真」、かつ、外部ライト受諾信号ＥＷＡＣが「真」のときに、次の内部クロック信号ＩＣＬＫの「立ち下がり」で、ダーティビットＤＴＹ０を「偽」（キャッシュ５９０とメモリＭＥＭとの間でコヒーレンシが維持されている状態）にする。
【０１８０】
ここで、外部バス４３及び外部メモリインタフェース回路２３を介して第２バス３３に接続されたメモリ４５に対するライトバックは、プロットアドレスＰＡＤＲ［０］が「０」のときは２バイト同時のライト要求を発行し、プロットアドレスＰＡＤＲ［０］が「１」のときは１バイトのみのライト要求を発行するので、プロットアドレスＰＡＤＲ［０］の状態は、ダーティビットＤＴＹ０を「偽」にする条件に含まれない。
【０１８１】
一方、ダーティコントロール回路５８１は、プロットアクティブビットＰＡＣＴが「真」、かつ、キャッシュヒット信号ＣＨＨＴが「真」、かつ、イネーブルビットＥＮＡ０が「真」のときに、ダーティビットＤＴＹ０を「真」（キャッシュ５９０とメモリＭＥＭとの間でコヒーレンシが維持されていない状態）にする。
【０１８２】
なぜなら、この場合は、キャッシュブロックＲＧ０への描画が発生することを意味し、従って、その時点で、キャッシュ５９０とメモリＭＥＭとの間でコヒーレンシが乱れるからである。
【０１８３】
同様に、ダーティコントロール回路５８１は、図７Ｂに示す真理値表に従って、ダーティビットＤＴＹ１を制御する。
【０１８４】
図６に戻って、キャッシュセレクタ５８２は、イネーブルビットＥＮＡ０及びＥＮＡ１を制御する。詳細には次の通りである。
【０１８５】
キャッシュセレクタ５８２は、ピクセルアドレスＰＬＯＣを基に、描画（書き込み）／読み出しの先頭ビットの位置が、キャッシュブロックＲＧ０あるいはＲＧ１のいずれかを判断し、先頭ビットが位置するキャッシュブロックＲＧ０あるいはＲＧ１に対応するイネーブルビットＥＮＡ０あるいはＥＮＡ１を「真」にする。
【０１８６】
さらに、キャッシュセレクタ５８２は、ピクセルアドレスＰＬＯＣ及びプロットビットＰＢＴを基に、描画／読み出しの最後尾のビットの位置を判断して、その最後尾のビットが位置するキャッシュブロックＲＧ０あるいはＲＧ１に対応するイネーブルビットＥＮＡ０あるいはＥＮＡ１を「真」にする。この処理は、描画／読み出しのピクセルデータが、キャッシュブロックＲＧ０及びＲＧ１の双方に跨っている場合に対処するための処理である。従って、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣにより示される位置のピクセルデータが、キャッシュブロックＲＧ０及びＲＧ１の双方に跨っている場合は、イネーブルビットＥＮＡ０及びＥＮＡ１の双方を「真」に設定する。
【０１８７】
一方、キャッシュセレクタ５８２は、描画／読み込みの先頭ビットあるいは最後尾ビットのいずれも位置しないブロックＲＧ０及び／又はＲＧ１に対応するイネーブルビットＥＮＡ０及び／又はＥＮＡ１を「偽」にする。
【０１８８】
アドレスカリキュレータ５８３は、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣを基に、バイトアドレスＰＡＤ０あるいはＰＡＤ１のいずれかを生成する。詳細には次の通りである。
【０１８９】
アドレスカリキュレータ５８３は、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣ［２９：０］のインデックスフィールドＰＬＯＣ［４：３］がキャッシュブロックＲＧ０を示しているとき、つまり、インデックスフィールドＰＬＯＣ［４］が「０」であるとき、そのときのタグフィールドＰＬＯＣ［２９：５］を、バイトアドレスＰＡＤ０［２６：２］として、リード／ライトコントロール回路５８９、アドレスコンパレータＡＣ０、及び、タグレジスタＴＧ０に出力するとともに、描画の初回位置をキャッシュブロックＲＧ０にするため、タグフィールドＰＬＯＣ［２９：５］を、バイトアドレスＰＡＤ１［２６：２］として、リード／ライトコントロール回路５８９、アドレスコンパレータＡＣ１、及び、タグレジスタＴＧ１に出力する。
【０１９０】
一方、アドレスカリキュレータ５８３は、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣ［２９：０］のインデックスフィールドＰＬＯＣ［４：３］がキャッシュのブロックＲＧ１を選択しているとき、つまり、インデックスフィールドＰＬＯＣ［４］が「１」であるとき、そのときのタグフィールドＰＬＯＣ［２９：５］を、バイトアドレスＰＡＤ１［２６：２］として、リード／ライトコントロール回路５８９、アドレスコンパレータＡＣ１、及び、タグレジスタＴＧ１に出力するとともに、描画の初回位置をキャッシュブロックＲＧ１にするため、タグフィールドＰＬＯＣ［２９：５］に「１」を加えた値を、バイトアドレスＰＡＤ０［２６：２］として、リード／ライトコントロール回路５８９、アドレスコンパレータＡＣ０、及び、タグレジスタＴＧ０に出力する。
【０１９１】
有効ビットコントロール回路５８４は、キャッシュブロックＲＧ０中のデータの有効／無効を示す有効ビットＶＬＤ０、及び、キャッシュブロックＲＧ１中のデータの有効／無効を示す有効ビットＶＬＤ１を制御する。また、有効ビットコントロール回路５８４は、タグレジスタＴＧ０及びＴＧ１の更新を制御する。この点を真理値表を用いて詳細に説明する。
【０１９２】
図８Ａは、図６の有効ビットコントロール回路５８４が出力する有効ビット制御信号ＶＣＯＮ０及びＩＶＣＮ０の真理値表を示す図、図８Ｂは、図６の有効ビットコントロール回路５８４が出力する有効ビット制御信号ＶＣＯＮ１及びＩＶＣＮ１の真理値表を示す図、である。
【０１９３】
図８Ａに示すように、有効ビットコントロール回路５８４は、キャッシュフラッシュビットＣＨＦＬが「偽」、かつ、リードリクエスト信号ＲＲＱ０が「真」、かつ、プロットアドレスＰＡＤＲのＬＳＢが「１」、かつ、内部リード許可信号ＩＲＧＡが「真」のとき、あるいは、キャッシュフラッシュビットＣＨＦＬが「偽」、かつ、リードリクエスト信号ＲＲＱ０が「真」、かつ、外部リード許可信号ＥＲＧＵが「真」のとき、有効ビット制御信号ＶＣＯＮ０を「真」にする。
【０１９４】
一方、有効ビットコントロール回路５８４は、キャッシュフラッシュビットＣＨＦＬが「真」のときに、有効ビット制御信号ＩＶＣＮ０を「真」にする。
【０１９５】
ここで、キャッシュ５９０中のデータの有効／無効の判断は、キャッシュ５９０のブロック単位で行われ、しかも、書き込みは、キャッシュブロックＲＧ０の下位バイト側から行われる。このため、有効ビット制御信号ＶＣＯＮ０を「真」にする条件の１つとして、プロットアドレスＰＡＤＲ［０］が「１」であることを挙げている。
【０１９６】
一方、リードリクエスト信号ＲＲＱ０が「真」のときに、第２バス３３の上位バイトの使用を許可する外部リード許可信号ＥＲＧＵが「真」になれば、キャッシュブロックＲＧ０への書き込みは終了しているため、この場合は、真理値表にてプロットアドレスＰＡＤＲ［０］を「Ｘ」としている。
【０１９７】
同様に、有効ビットコントロール回路５８４は、図８Ｂに示す真理値表に従って、有効ビット制御信号ＶＣＯＮ１及びＩＶＣＮ１を制御する。この場合、内部リード許可信号ＩＲＧＡあるいは外部リード許可信号ＥＲＧＵが「真」であり、しかも、リードリクエスト信号ＲＲＱ０が「偽」ということは、リードリクエスト信号ＲＲＱ１が「真」であることを意味する。
【０１９８】
有効ビットレジスタＶＲ０は、有効ビットＶＬＤ０を保持する。この有効ビットレジスタＶＲ０の値は、有効ビット制御信号ＶＣＯＮ０が「真」であるときに、次の内部クロック信号ＩＣＬＫの「立ち下り」で、「真」（キャッシュブロックＲＧ０のデータが有効）に書き換えられ、有効ビット制御信号ＩＶＣＮ０が「真」であるときに、次の内部クロック信号ＩＣＬＫの「立ち下り」で、「偽」（キャッシュブロックＲＧ０のデータが無効）に書き換えられる。
【０１９９】
同様に、有効ビットレジスタＶＲ１は、有効ビットＶＬＤ１を保持し、その値は、有効ビット制御信号ＶＣＯＮ１が「真」であるときに、次の内部クロック信号ＩＣＬＫの「立ち下り」で、「真」（キャッシュブロックＲＧ１のデータが有効）に書き換えられ、有効ビット制御信号ＩＶＣＮ１が「真」であるときに、次の内部クロック信号ＩＣＬＫの「立ち下り」で、「偽」（キャッシュブロックＲＧ１のデータが無効）に書き換えられる。
【０２００】
図６に戻って、タグレジスタＴＧ０は、タグアドレスＴＧＡＤ０を保持する。タグレジスタＴＧ０の値は、有効ビット制御信号ＶＣＯＮ０が「真」であるときに、次の内部クロック信号ＩＣＬＫの「立ち下り」で、その時入力されているバイトアドレスＰＡＤ０に書き換えられる。タグアドレスＴＧＡ０は、アドレスコンパレータＡＣ０及びリード／ライトコントロール回路５８９に出力される。
【０２０１】
タグレジスタＴＧ１は、タグアドレスＴＧＡＤ１を保持する。タグレジスタＴＧ１の値は、有効ビット制御信号ＶＣＯＮ１が「真」であるときに、次の内部クロック信号ＩＣＬＫの「立ち下り」で、その時入力されているバイトアドレスＰＡＤ１に書き換えられる。タグアドレスＴＧＡ１は、アドレスコンパレータＡＣ１及びリード／ライトコントロール回路５８９に出力される。
【０２０２】
アドレスコンパレータＡＣ０は、バイトアドレスＰＡＤ０と、タグアドレスＴＧＡＤ０と、を比較して、一致しているか否かを判定し、一致しているときに、ヒット制御信号ＨＣＯＮ０を「真」にする。つまり、両者が一致しているということは、キャッシュブロックＲＧ０に現在マッピングされているメモリブロックのバイトアドレスと、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣに含まれるバイトアドレスＰＬＯＣ［２９：５］と、が一致しているということを意味する。
【０２０３】
同様に、アドレスコンパレータＡＣ１は、バイトアドレスＰＡＤ１と、タグアドレスＴＧＡＤ１と、を比較して、一致しているか否かを判定し、一致しているときに、ヒット制御信号ＨＣＯＮ１を「真」にする。
【０２０４】
ＡＮＤ回路ＡＮ０は、ヒット制御信号ＨＣＯＮ０が「真」、及び、有効ビットＶＬＤ０が「真」のときに、ヒット信号ＨＴ０を「真」（メモリＭＥＭに対する描画（書き込み）／読み出しがキャッシュブロックＲＧ０にヒット）にする。ＡＮＤ回路ＡＮ１は、ヒット制御信号ＨＣＯＮ１が「真」、及び、有効ビットＶＬＤ１が「真」のときに、ヒット信号ＨＴ１を「真」（メモリＭＥＭに対する描画（書き込み）／読み出しがキャッシュブロックＲＧ１にヒット）にする。
【０２０５】
ピクセルパッカ５６０は、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣが指し示す位置にピクセルデータを書き込む際に、書き込み対象のピクセルデータで、キャッシュ５９０中のデータを更新して出力する。つまり、ピクセルパッカ５６０は、プロットビットＰＢＴ及びピクセルアドレスＰＬＯＣ［４：０］に従って、プロットカラーレジスタ５６に格納されたピクセルデータＰＣＯＬで、現在のキャッシュブロックＲＧ０及びＲＧ１に格納されたブロックデータＣＨＤＡ１及びＣＨＤＡ０を更新して、更新データＰＤＡ０［７：０］、ＰＤＡ０［１５：８］、ＰＤＡ１［７：０］、及びＰＤＡ１［１５：８］をそれぞれ、マルチプレクサＭＵ０Ｌ、ＭＵ０Ｕ、ＭＵ１Ｌ、及びＭＵ１Ｕに出力する。詳細は後述する。
【０２０６】
マルチプレクサＭＵ０Ｌは、マルチプレクサコントロール回路５８５からの選択信号ＭＳＬ０Ｌに従って、リード内部データＲＩＤＡ［７：０］、リード外部データＲＥＤＡ［７：０］、ブロックデータＣＨＤＡ０［７：０］、および、更新データＰＤＡ０［７：０］、のいずれかを選択して、キャッシュブロックＲＧ０の下位８ビットに出力する。マルチプレクサＭＵ０Ｕは、マルチプレクサコントロール回路５８５からの選択信号ＭＳＬ０Ｕに従って、リード内部データＲＩＤＡ［７：０］、リード外部データＲＥＤＡ［１５：８］、ブロックデータＣＨＤＡ０［１５：８］、および、更新データＰＤＡ０［１５：８］、のいずれかを選択して、キャッシュブロックＲＧ０の上位８ビットに出力する。
【０２０７】
マルチプレクサＭＵ１Ｌは、マルチプレクサコントロール回路５８５からの選択信号ＭＳＬ１Ｌに従って、リード内部データＲＩＤＡ［７：０］、リード外部データＲＥＤＡ［７：０］、ブロックデータＣＨＤＡ１［７：０］、および、更新データＰＤＡ１［７：０］、のいずれかを選択して、キャッシュブロックＲＧ１の下位８ビットに出力する。マルチプレクサＭＵ１Ｕは、マルチプレクサコントロール回路５８５からの選択信号ＭＳＬ１Ｕに従って、リード内部データＲＩＤＡ［７：０］、リード外部データＲＥＤＡ［１５：８］、ブロックデータＣＨＤＡ１［１５：８］、および、更新データＰＤＡ１［１５：８］、のいずれかを選択して、キャッシュブロックＲＧ１の上位８ビットに出力する。
【０２０８】
マルチプレクサコントロール回路５８５は、プロットアクティブビットＰＡＣＴ、キャッシュヒット信号ＣＨＨＴ、リードリクエストＲＲＱ０、プロットアドレスＰＡＤＲ［０］、内部リード許可信号ＩＲＧＲ、外部上位バイトリード許可信号ＥＲＧＵ、及び外部下位バイトリード許可信号ＥＲＧＬに基づいて、マルチプレクサＭＵ０Ｌ，ＭＵ０Ｕ，ＭＵ１Ｌ，ＭＵ１Ｕを制御する選択信号ＭＳＬ０Ｌ，ＭＳＬ０Ｕ，ＭＳＬ１Ｌ，ＭＳＬ１Ｕを生成する。真理値表を用いて詳細を説明する。
【０２０９】
図９は、図６のマルチプレクサコントロール回路５８５が生成する選択信号ＭＳＬ１Ｕ，ＭＳＬ１Ｌ，ＭＳＬ０Ｕ，ＭＳＬ０Ｌに基づいてマルチプレクサＭＵ０Ｌ，ＭＵ０Ｕ，ＭＵ１Ｌ，ＭＵ１Ｕの出力データがどのようになるかを示す真理値表である。図９に示すように、マルチプレクサコントロール回路５８５は、リードリクエスト信号ＲＲＱ０が「真」、プロットアドレスＰＡＤＲのＬＳＢが「０」、及び、内部リード許可信号ＩＲＧＲが「真」、のときに、リード内部データＲＩＤＡ［７：０］を選択する選択信号ＭＳＬ０Ｌを生成する。また、このとき、マルチプレクサコントロール回路５８５は、ブロックデータＣＨＤＡ０［１５：８］、ブロックデータＣＨＤＡ１［７：０］およびブロックデータＣＨＤＡ１［１５：８］を選択する選択信号ＭＳＬ０Ｕ、ＭＳＬ１Ｌ、及びＭＳＬ１Ｕを生成する。
【０２１０】
同様に、図９の真理値表に従って、マルチプレクサコントロール回路５８５は、リード内部データＲＩＤＡ［７：０］を選択する選択信号ＭＳＬ０Ｕ，ＭＳＬ１Ｌ，ＭＳＬ１Ｕ、リード外部データＲＥＤＡ［７：０］を選択する選択信号ＭＳＬ０Ｌ，ＭＳＬ１Ｌ、及び、リード外部データＲＥＤＡ［１５：８］を選択する選択信号ＭＳＬ０Ｕ，ＭＳＬ１Ｕ、を生成する。
【０２１１】
一方、マルチプレクサコントロール回路５８５は、プロットアクティブビットＰＡＣＴが「真」、キャッシュヒット信号ＣＨＨＴが「真」であるときは、更新データＰＤＡ０［７：０］、ＰＤＡ０［１５：８］、ＰＤＡ１［７：０］およびＰＤＡ１［１５：８］を選択する選択信号ＭＳＬ０Ｌ、ＭＳＬ０Ｕ、ＭＳＬ１Ｌ、及びＭＳＬ１Ｕを生成する。
【０２１２】
また、上述の組み合わせ以外の入力信号が与えられた場合、マルチプレクサコントロール回路５８５は、ブロックデータＣＨＤＡ０［７：０］，ＣＨＤＡ０［１５：８］、ＣＨＤＡ１［７：０］およびＣＨＤＡ１［１５：８］を選択する選択信号ＭＳＬ０Ｌ、ＭＳＬ０Ｕ、ＭＳＬ１Ｌ、及びＭＳＬ１Ｕを生成する。すなわち、キャッシュブロックＲＧ０及びＲＧ１のデータはそのまま保持される。
【０２１３】
図６に戻って、ピクセルアンパッカ５８６は、プロットロケーションカウンタ５５が現在出力しているピクセルアドレスＰＬＯＣが指し示すピクセルデータを読み出す際に、キャッシュブロックＲＧ０及びＲＧ１のデータを、ピクセル単位のデータに分解して出力する。つまり、ピクセルアンパッカ５８６は、プロットビットＰＢＴ及びピクセルアドレスＰＬＯＣ［４：０］に従って、現在のキャッシュブロックＲＧ０中のブロックデータＣＨＤＡ０及びキャッシュブロックＲＧ１中のブロックデータＣＨＤＡ１を、ピクセル単位のデータに分解して出力する。詳細は後述する。
【０２１４】
リード／ライトコントロール回路５８９は、プロットアクティブビットＰＡＣＴが「真」のときに、必要に応じて、ライトリクエスト信号ＷＲＥＱ、ライトアドレスＷＡＤＲ、リードリクエスト信号ＲＲＥＱ、リードアドレスＲＡＤＲ、キャッシュヒット信号ＣＨＨＴ、リードリクエスト信号ＲＲＱ０、ライトリクエスト信号ＷＲＱ０、及び／又は、ライトリクエスト信号ＷＲＱ１を生成する。詳細は次の通りである。
【０２１５】
リード／ライトコントロール回路５８９は、ライトリクエスト信号ＷＲＱ０あるいはライトリクエスト信号ＷＲＱ１が「真」になったときに、ライトリクエスト信号ＷＲＥＱをアサートする。
【０２１６】
図１０は、図６のライトリクエスト信号ＷＲＱ０を生成する回路の回路図である。この回路は、リード／ライトコントロール回路５８９に含まれ、ＡＮＤ回路５８９０、ＯＲ回路５８９１、及びＡＮＤ回路５８９２を含む。
【０２１７】
ＡＮＤ回路５８９０には、プロットアクティブビットＰＡＣＴ、イネーブルビットＥＮＡ０、及び、反転したヒット信号ＨＴ０が入力される。ＯＲ回路５８９１には、ＡＮＤ回路５８９０の出力信号及びキャッシュフラッシュビットＣＨＦＬが入力される。ＡＮＤ回路５８９２には、ダーティビットＤＴＹ０及びＯＲ回路５８９１の出力信号が入力される。
【０２１８】
図から明らかなように、キャッシュフラッシュビットＣＨＦＬが「真」、かつ、ダーティビットＤＴＹ０が「真」のとき、ライトリクエスト信号ＷＲＱ０がアサートされる。あるいは、プロットアクティブビットＰＡＣＴが「真」、かつ、イネーブルビットＥＮＡ０が「真」、かつ、ヒット信号ＨＴ０が「偽」、かつ、ダーティビットＤＴＹ０が「真」のとき、ライトリクエスト信号ＷＲＱ０がアサートされる。
【０２１９】
なお、ライトリクエスト信号ＷＲＱ１を生成する回路も、リード／ライトコントロール回路５８９に含まれ、その回路構成は図１０と同様である。
【０２２０】
図１１は、図６のリードリクエスト信号ＲＲＥＱを生成する回路の回路図である。この回路は、リード／ライトコントロール回路５８９に含まれ、ＡＮＤ回路５８９３，５８９４及びＯＲ回路５８９５を含む。
【０２２１】
ＡＮＤ回路５８９３には、プロットアクティブビットＰＡＣＴ、イネーブルビットＥＮＡ０、反転したヒット信号ＨＴ０、及び反転したダーティビットＤＴＹ０が入力される。そして、ＡＮＤ回路５８９３は、プロットアクティブビットＰＡＣＴが「真」、かつ、イネーブルビットＥＮＡ０が「真」、かつ、ヒット信号ＨＴ０が「偽」、かつ、ダーティビットＤＴＹ０が「偽」のときに、リードリクエスト信号ＲＲＱ０を「真」にする。
【０２２２】
ここで、ダーティビットＤＴＹ０の「偽」を条件としたのは、コヒーレンシの維持の必要から、メモリＭＥＭへのライトバックの終了後に、必要なデータをリードしてくる必要があるからである。なお、ダーティビットＤＴＹ０の「真」は、コヒーレンシが維持されていないこと、つまり、リード前にライトバックが必要であることを意味する。
【０２２３】
ＡＮＤ回路５８９４には、プロットアクティブビットＰＡＣＴ、イネーブルビットＥＮＡ１、ヒット信号ＨＴ１、及びダーティビットＤＴＹ１が入力される。そして、ＡＮＤ回路５８９４は、プロットアクティブビットＰＡＣＴが「真」、かつ、イネーブルビットＥＮＡ１が「真」、かつ、ヒット信号ＨＴ１が「偽」、かつ、ダーティビットＤＴＹ１が「偽」のときに、リードリクエスト信号ＲＲＱ１を「真」にする。
【０２２４】
ＯＲ回路５８９５は、リードリクエスト信号ＲＲＱ０あるいはＲＲＱ１が「真」のとき、リードリクエスト信号ＲＲＥＱを「真」にする。
【０２２５】
図６に戻って、リード／ライトコントロール回路５８９は、イネーブルビットＥＮＡ０のみが「真」の場合は、キャッシュブロックＲＧ０のヒット信号ＨＴ０が「真」のときに、キャッシュヒット信号ＣＨＨＴをアサートし、イネーブルビットＥＮＡ１のみが「真」の場合は、キャッシュブロックＲＧ１のヒット信号ＨＴ１が「真」のときに、キャッシュヒット信号ＣＨＨＴをアサートし、イネーブルビットＥＮＡ０及びＥＮＡ１の双方が「真」の場合は、キャッシュブロックＲＧ０のヒット信号ＨＴ０及びキャッシュブロックＲＧ１のヒット信号ＨＴ１の双方が「真」のときに、キャッシュヒット信号ＣＨＨＴをアサートする。それら以外のときは、キャッシュヒット信号ＣＨＨＴはネゲートされる。
【０２２６】
リード／ライトコントロール回路５８９は、リードリクエスト信号ＲＲＥＱがアサートされたときに、リードアドレスＲＡＤＲ［２６：０］を生成する。具体的には次の通りである。
【０２２７】
リード／ライトコントロール回路５８９は、リードリクエスト信号ＲＲＱ０が「真」のときは、バイトアドレスＰＡＤＲ［０］をリードアドレスＲＡＤＲ［０］とし、リードアドレスＲＡＤＲ［１］を「０」とし、バイトアドレスＰＡＤ０［２６：２］をリードアドレスＲＡＤＲ［２６：２］とする。
【０２２８】
一方、リード／ライトコントロール回路５８９は、リードリクエスト信号ＲＲＱ１が「真」のときは、バイトアドレスＰＡＤＲ［０］をリードアドレスＲＡＤＲ［０］とし、リードアドレスＲＡＤＲ［１］を「１」とし、バイトアドレスＰＡＤ１［２６：２］をリードアドレスＲＡＤＲ［２６：２］とする。
【０２２９】
ただし、リード／ライトコントロール回路５８９は、リードリクエスト信号ＲＲＱ０，ＲＲＱ１の双方が「真」のときは、リードリクエスト信号ＲＲＱ０を優先させて、リードアドレスＲＡＤＲ［２６：０］を生成し、その後、リードリクエスト信号ＲＲＱ１に基づく、リードアドレスＲＡＤＲ［２６：０］を生成する。
【０２３０】
リード／ライトコントロール回路５８９は、ライトリクエスト信号ＷＲＥＱがアサートされたとき、ライトアドレスＷＡＤＲ［２６：０］を生成する。具体的には次の通りである。
【０２３１】
リード／ライトコントロール回路５８９は、メインメモリ１７へライトするときは、ライトアドレスＷＡＤＲ［０］に対して、「０」と「１」とを交互に設定する。また、外部メモリ４５へライトするときは、ライトデータＷＤＡを２バイトで第２バスアービタ１４に出力するので、ライトアドレスＷＡＤＲ［０］を「０」に設定する。後のアドレスの制御は、第２バスアービタ１４が行う。
【０２３２】
また、リード／ライトコントロール回路５８９は、ライトリクエスト信号ＷＲＱ０が「真」のときは、ライトアドレスＷＡＤＲ［１］を「０」とし、タグアドレスＴＧＡＤ０［２６：２］を、ライトアドレスＷＡＤＲ［２６：２］とする。
【０２３３】
一方、リード／ライトコントロール回路５８９は、ライトリクエスト信号ＷＲＱ１が「真」のときは、ライトアドレスＷＡＤＲ［１］を「１」とし、タグアドレスＴＧＡＤ１［２６：２］を、ライトアドレスＷＡＤＲ［２６：２］とする。
【０２３４】
ただし、リード／ライトコントロール回路５８９は、ライトリクエスト信号ＷＲＱ０，ＷＲＱ１の双方が「真」のときは、ライトリクエスト信号ＷＲＱ０を優先させて、ライトアドレスＷＡＤＲ［２６：０］を生成し、その後、ライトリクエスト信号ＷＲＱ１に基づくライトアドレスＷＡＤＲ［２６：０］を生成する。
【０２３５】
ここで、リードアドレスＲＡＤＲの生成には、バイトアドレスＰＡＤ０，ＰＡＤ１を用いている。なぜなら、リードリクエスト信号ＲＲＥＱがアサートされたときは、キャッシュブロックＲＧ０，ＲＧ１にこれから書き込もうとするデータをメモリＭＥＭからリードしてくる必要があるからである。
【０２３６】
一方、ライトアドレスＷＡＤＲの生成には、タグアドレスＴＧＡＤ１を用いている。なぜなら、ライトリクエスト信号ＷＲＥＱがアサートされたときは、コヒーレンシを維持するために、キャッシュブロックＲＧ０，ＲＧ１に現在保持されているデータをメモリＭＥＭにライトする必要があるからである。
【０２３７】
リード／ライトコントロール回路５８９は、ライトリクエスト信号ＷＲＱ０がアサートされたときに、キャッシュブロックＲＧ０のデータＣＨＤＡ０［１５：０］をライトデータＷＤＡ０［１５：０］として出力する。また、リード／ライトコントロール回路５８９は、ライトリクエスト信号ＷＲＱ１がアサートされたときに、キャッシュブロックＲＧ１のデータＣＨＤＡ１［１５：０］をライトデータＷＤＡ［１５：０］として出力する。
【０２３８】
図１２は、図６のピクセルパッカ５６０の回路図である。図１２に示すように、このピクセルパッカ５６０は、シフタ５６０１、デコーダ５６０２、マルチプレクサｍ０−０〜ｍ０−１５、及びマルチプレクサｍ１−０〜ｍ１−１５を含む。シフタ５６０１は、巡回シフタであり、シフトアウトした上位ビットは、下位ビットとして戻される。
【０２３９】
シフタ５６０１からのビット信号ｂ０〜ｂ１５は、それぞれマルチプレクサｍ０−０〜ｍ０−１５の一方入力に与えられ、シフタ５６０１からのビット信号ｂ１６〜ｂ３１は、それぞれマルチプレクサｍ１−０〜ｍ１−１５の一方入力に与えられる。
【０２４０】
マルチプレクサｍ０−０〜ｍ０−１５の他方入力には、それぞれキャッシュブロックＲＧ０中のビットＣＨＤＡ０［０］〜ＣＨＤＡ０［１５］が与えられ、マルチプレクサｍ１−０〜ｍ１−１５の他方入力には、それぞれキャッシュブロックＲＧ１中のビットＣＨＤＡ１［０］〜ＣＨＤＡ１［１５］が与えられる。
【０２４１】
マルチプレクサｍ０−０〜ｍ０−７の出力Ｂ０〜Ｂ７は、マルチプレクサＭＵ０Ｌの入力に与えられる。マルチプレクサｍ０−８〜ｍ０−１５の出力Ｂ８〜Ｂ１５は、マルチプレクサＭＵ０Ｕの入力に与えられる。マルチプレクサｍ１−０〜ｍ１−７の出力Ｂ０〜Ｂ７は、マルチプレクサＭＵ１Ｌの入力に与えられる。マルチプレクサｍ１−８〜ｍ１−１５の出力Ｂ８〜Ｂ１５は、マルチプレクサＭＵ１Ｕの入力に与えられる。
【０２４２】
デコーダ５６０２は、キャッシュブロックＲＧ０及びＲＧ１を連続した３２ビットとみなし、ピクセルアドレスＰＬＯＣ［４：０］をデコードして、描画対象データＰＣＯＬに含まれるピクセルデータの先頭ビット（つまり、描画対象のピクセルデータの先頭ビット）の３２ビット内におけるビット位置を求める。さらに、デコーダ５６０２は、描画対象のピクセルデータの先頭ビットのビット位置とプロットビットＰＢＴ［２：０］とから、描画対象のピクセルデータの最後尾ビットのビット位置を求める。
【０２４３】
デコーダ５６０２は、以上の結果に基づいて、選択信号ｓ０〜ｓ３１を制御する。選択信号ｓ０〜ｓ３１は、対応するマルチプレクサｍ０−０〜ｍ１−１５に与えられ、各マルチプレクサｍ０−０〜ｍ１−１５の２つの入力のうちのいずれか１つを選択する信号である。
【０２４４】
ここで、マルチプレクサｍ０−０〜ｍ１−１５、ビット信号ｂ０〜ｂ３１、ビット信号ＣＨＤＡ０［０］〜ＣＨＤＡ１［１５］、及び選択信号ｓ０〜ｓ３１の各々を包括して表現するときは、マルチプレクサｍ、ビット信号ｂ、ビット信号ＣＨＤＡ、及び選択信号ｓと表記する。
【０２４５】
具体的には、デコーダ５６０２は、描画対象のピクセルデータの先頭ビットの位置から最後尾ビットの位置に対応するマルチプレクサｍに対しては、シフタ５６０１からのビット信号ｂを選択する選択信号ｓを、それら以外のマルチプレクサｍに対しては、キャッシュブロックＲＧ０，ＲＧ１からのビット信号ＣＨＤＡを選択する選択信号ｓを生成する。
【０２４６】
一方、シフタ５６０１は、入力された描画対象データＰＣＯＬに含まれるピクセルデータの先頭ビット（つまり、描画対象のピクセルデータの先頭ビット）が、ピクセルアドレスＰＬＯＣ［４：０］が示すビット位置に来るように、描画対象データＰＣＯＬを所定ビットシフトし、ビット信号ｂ０〜ｂ３１として、対応するマルチプレクサｍ０−０〜ｍ１−１５に与える。
【０２４７】
各マルチプレクサｍ０−０〜ｍ１−１５は、対応する選択信号ｓ０〜ｓ３１に従って、２入力のうちの１つを選択し、対応するマルチプレクサＭＵ０Ｌ，ＭＵ０Ｕ，ＭＵ１Ｌ，ＭＵ１Ｕに出力する。その結果、キャッシュブロックＲＧ０，ＲＧ１中のデータＣＨＤＡ０［０］〜ＣＨＤＡ１［１５］が、描画対象のピクセルデータで更新され、更新後のデータＰＤＡ０［０］〜ＰＤＡ１［１５］が、マルチプレクサＭＵ０Ｌ，ＭＵ０Ｕ，ＭＵ１Ｌ，ＭＵ１Ｕに与えられる。
【０２４８】
以上の点を具体例を挙げて説明する。例えば、ピクセルアドレスＰＬＯＣ［４：０］が示す描画開始のビット位置をキャッシュブロックＲＧ０の第１６番目のビットとし、プロットビット［２：０］が示すカラーモードを３ビット／ピクセルとする。従って、この場合、描画対象のピクセルデータの最後尾ビットのビット位置は、キャッシュブロックＲＧ１の第２番目のビットとなる。
【０２４９】
その結果、マルチプレクサｍ０−０〜ｍ０−１４は、ビット信号ＣＨＤＡ０［０］〜ＣＨＤＡ０［１４］を選択して出力し、マルチプレクサｍ０−１５，ｍ１−０，ｍ１−１は、ビット信号ｂ１５，ｂ１６，ｂ１７を選択して出力し、マルチプレクサｍ１−２〜ｍ１−１５は、ビット信号ＣＨＤＡ１［２］〜ＣＨＤＡ１［１５］を選択して出力する。
【０２５０】
図１３は、図６のピクセルアンパッカ５８６の回路図である。図１３に示すように、ピクセルアンパッカ５８６は、ファネルシフタ５８６１、デコーダ５８６２、及びマルチプレクサＭ１〜Ｍ７を含む。
【０２５１】
ファネルシフタ５８６１には、キャッシュブロックＲＧ０中のブロックデータＣＨＤＡ０［１５：０］及びキャッシュブロックＲＧ１中のブロックデータＣＨＤＡ１［１５：０］が与えられる。そして、ファネルシフタ５８６１は、ピクセルアドレスＰＬＯＣ［４：０］に従って、入力されるブロックデータＣＨＤＡ０［１５：０］，ＣＨＤＡ１［１５：０］から８ビットｂｔ０〜ｂｔ７を選択して出力する。この場合、ファネルシフタ５８６１は、選択した８ビットｂｔ０〜ｂｔ７のうち、ビットｂｔ１〜ｂｔ７は、対応するマルチプレクサＭ１〜Ｍ７の一方入力に出力する。
【０２５２】
具体的には、ファネルシフタ５８６１は、キャッシュブロックＲＧ０及びＲＧ１を連続した３２ビットとみなし、ピクセルアドレスＰＬＯＣ［４：０］に基づいて、読出対象のピクセルデータの先頭ビットの３２ビット内におけるビット位置を求め、そこを始点とした８ビットｂｔ０〜ｂｔ７を出力する。
【０２５３】
各マルチプレクサＭ１〜Ｍ７の他方入力には、「０」を示す信号が与えられる。各マルチプレクサＭ１〜Ｍ７は、対応する選択信号Ｓ１〜Ｓ７に従って、２入力のうちの１つを選択して、描画データＰＶＡＬ［１］〜ＰＶＡＬ［７］として出力する。ファネルシフタ５８６１が出力したビットｂｔ０は、そのまま描画データＰＶＡＬ［０］となる。なぜなら、プロットビットＰＢＴ［２：０］により、カラーモードは必ず設定されており、ピクセルデータは、ファネルシフタ５８６１の出力する８ビット中に、少なくとも１ビットは含まれているからである。
【０２５４】
ここで、マルチプレクサＭ１〜Ｍ７、選択信号Ｓ１〜Ｓ７及びビットｂｔ１〜ｂｔ７の各々を包括して表現するときは、マルチプレクサＭ、選択信号Ｓ及びビットｂｔと表記する。
【０２５５】
デコーダ５８６２は、プロットビットＰＢＴ［２：０］をデコードして、読出対象のピクセルデータの最後尾ビットのビット位置を求め、その結果に応じて、選択信号Ｓを生成する。つまり、デコーダ５８６２は、読出対象のピクセルデータの最後尾ビットのビット位置より上位のビットに対応するマルチプレクサＭに対しては、「０」を選択する選択信号Ｓを出力し、他のマルチプレクサＭに対しては、ビットｂｔを選択する選択信号Ｓを出力する。
【０２５６】
例えば、プロットビットＰＢＴ［２：０］が示すカラーモードが、３ビット／ピクセルの場合、デコーダ５８６２は、マルチプレクサＭ１，Ｍ２には、ビットｂｔ１，ｂｔ２を選択する選択信号Ｓ１，Ｓ２を与え、マルチプレクサＭ３〜Ｍ７には、「０」を選択する選択信号Ｓ３〜Ｓ７を与える。
【０２５７】
以上のようにして、１つのピクセルデータを含む描画データＰＶＡＬ［７：０］が出力される。つまり、ＣＰＵ１は、キャッシュ５９０から、ピクセル単位でデータを読み出すことができる。
【０２５８】
さて、以上のように、本実施の形態によれば、メモリＭＥＭの１ワードを構成するビット数Ｎを意識することなく、カラーモード（Ｍビット／ピクセル）を設定できる。一般に、ビットマップイメージでは、Ｎ／Ｍが整数になるように、つまり、ピクセルデータが常にメモリの２ワードに跨らないように、あるいは、Ｍ／Ｎが整数になるように、つまり、ピクセルデータが常にメモリの複数ワードに丁度収まるように、カラーモードの値Ｍが設定され、カラーモード選択の幅が狭い。ただし、本発明の適用は、ビットマップイメージの描画に限定されない。
【０２５９】
また、ピクセルプロッタ５は、ＣＰＵ１が用意したピクセルデータをキャッシュ５９０に書き込む。つまり、ピクセルプロッタ５が、メモリＭＥＭに直接アクセスして、ピクセルデータを取得し、描画を行うのではない。ＣＰＵ１がピクセルデータを用意するので、描画対象となるパターンデータは、予め用意された固定のパターンデータでもよいし、圧縮されたパターンデータでもよいし、ユーザが入力装置（例えば、タブレット等）を使って入力したパターンデータでもよい。加えて、キャッシュ５９０を利用しているので、高速な描画が可能である。以上の結果、任意のパターンをピクセル単位で高速に描画できる。
【０２６０】
さらに、ピクセルプロッタ５はバスマスタとして自律して動作可能であるため、ピクセルプロッタ５による描画中であっても、ＣＰＵ１は他の処理を実行できる。従って、プロセッサ１００全体として効率的な処理を実現できる。また、描画処理をバスマスタとしてのピクセルプロッタ５に任せることができるので、ＣＰＵ１に実行させるプログラムの作成負担を軽減できる。
【０２６１】
一般に、ＣＰＵがメモリに描画する場合は、バイト単位、またはＣＰＵの扱うワード単位での描画を行うので、ビット単位での描画を実行しようとすると、リード・モディファイ・ライトをＣＰＵが行わなければならず、ＣＰＵの負荷が大きくなり、また、プログラミングも煩雑となる。ところが、本発明では、ピクセルプロッタ５がバスマスタになるので、リード・モディファイ・ライトは、ピクセルプロッタ５に行わせればよく、その間、ＣＰＵ１は他の処理を実行できるし、また、プログラミングの際にもリード・モディファイ・ライトを意識する必要がなく、プログラミングの負担を軽減できる。
【０２６２】
さらに、ピクセルプロッタ５はバスマスタであり、メモリＭＥＭをＣＰＵ１等の他のバスマスタと共用できるので、描画専用のメモリ及びバスを設ける必要もなく、コストの削減ができる。つまり、ピクセルプロッタ５がバスマスタでない場合は、自律的にバス（第１バス３１、第２バス３３）にアクセスできないので、描画専用のメモリ及びバスを設けなければならず、コストが上がるが、本実施の形態においてはこれらが不要となる。
【０２６３】
さらに、描画位置を示すピクセルアドレスＰＬＯＣ［２９：０］は、描画対象のピクセルデータの先頭ビットを含むバイトに対してバイト単位で割り当てられたバイトアドレスＰＬＯＣ［２９：３］、及び、描画対象のピクセルデータの先頭ビットのバイト内におけるビット位置を示すビットアドレスＰＬＯＣ［２：０］、により構成される。同様に、読出し位置を示すピクセルアドレスＰＬＯＣ［２９：０］も、読出し対象のピクセルデータの先頭ビットを含むバイトに対してバイト単位で割り当てられたバイトアドレスＰＬＯＣ［２９：３］、及び、読出し対象のピクセルデータの先頭ビットのバイト内におけるビット位置を示すビットアドレスＰＬＯＣ［２：０］、により構成される。
【０２６４】
このように、ピクセルプロッタ５に対して、描画／読出し位置が、バイトアドレスだけでなく、ビットアドレスにより指定できるため、ＣＰＵ１は、ピクセル単位の描画／読出しを行う際の、バイト内でのビット位置の計算が不要となり、処理の高速化及びプログラミングの簡素化を図ることができる。一般に、使用されるアドレスは、バイトアドレスであるため、１ピクセルのビット数がメモリの１ワードに満たず、かつ、ピクセル単位で描画を行う場合は、バイト内でのビット位置の計算が必要となる。
【０２６５】
さらに、キャッシュ５９０は、メモリＭＥＭ内の２つのメモリブロックがマッピングされる２つのキャッシュブロックＲＧ０，ＲＧ１により構成される。このように、必要最小限の構成により、メモリＭＥＭのワード境界に跨るような描画／読み出しを効率的に行っている。
【０２６６】
さらに、キャッシュブロックＲＧ０及びＲＧ１は、それぞれレジスタにより構成される。従って、キャッシュ５９０をＲＡＭで構成する場合と比較して、より高速な描画／読み出しが可能となる。また、キャッシュを構成する総ビット数が比較的少ない場合には、ＲＡＭで構成されたキャッシュと比べて半導体チップ上での面積が小さくなる場合がある。
【０２６７】
さらに、メモリＭＥＭ内の２つのメモリブロックのキャッシュ５９０へのマッピングは、ダイレクトマップ方式である。本実施の形態では、回路構成が簡単になるというダイレクトマップ方式の利点を活かしながらも、同一キャッシュブロックに割り付けられる複数のメモリブロックへのアクセスが競合する場合にヒット率が減少するというダイレクトマップ方式の欠点は、描画位置が連続している場合が多いので、ほとんど問題とならない。
【０２６８】
さらに、メモリＭＥＭとキャッシュ５９０との間のデータのコヒーレンシの維持は、ライトバック方式により行われる。本実施の形態では、メモリアクセスを抑制できるというライトバック方式の利点を活かしながらも、コヒーレンシが常に維持されているというわけではないというライトバック方式の欠点は、ＣＰＵ１の指示に応じてキャッシュ５９０からメモリＭＥＭへと強制的にデータを書き戻すキャッシュフラッシュを行うことにより解消できる。
【０２６９】
さらに、ＣＰＵ１からの描画／読出しはピクセル単位で行われるが、リード／ライトコントロール回路５８９は、メモリＭＥＭのワード単位あるいはバイト単位でライトデータＷＤＡを出力する。従って、ピクセル単位でライトデータを出力する場合と比較して、バスアクセスの回数を抑制できる。
【０２７０】
同様に、キャッシングの範囲を外れたときの、メモリＭＥＭからのデータのリードは、メモリＭＥＭのワード単位あるいはバイト単位で行われる。従って、ピクセル単位でデータをリードする場合と比較して、バスアクセスの回数を抑制できる。
【０２７１】
さらに、プロットロケーションカウンタ５５は、自動的に描画／読出しアドレスを更新するので、連続したピクセルデータの描画／読出しを高速に実行できる。つまり、描画の度に、ＣＰＵ１でアドレスを生成して、ピクセルプロッタ５に与える必要はない。
【０２７２】
なお、本発明は、上記の実施の形態に限られるものではなく、その要旨を逸脱しない範囲で種々の態様において実施することが可能であり、例えば、以下のような変形も可能である。
【０２７３】
上記の実施の形態では、メモリＭＥＭ内の２つのメモリブロックのキャッシュ５９０へのマッピングは、ダイレクトマップ方式としている。しかし、メモリＭＥＭ内の２つのメモリブロックのキャッシュ５９０へのマッピングとして、よりヒット率の高いフル・アソシエイティブ方式とすることもできる。この場合、タグレジスタＴＧ０及びＴＧ１は、２６ビットのレジスタで構成し、夫々、任意のアドレスを示す２６ビットのタグアドレスＴＧＡＤ０［２６：１］及びＴＧＡＤ１［２６：１］を格納可能となる。
【０２７４】
また、キャッシュブロックＲＧ０，ＲＧ１を、単独の３２ビットレジスタとして、常にメモリＭＥＭ内の連続した３２ビットのデータを保持するものとして、キャッシュ５９０を１ラインのみのキャッシュとしてもよい。この場合、上記の実施の形態で２つのキャッシュブロックＲＧ０、ＲＧ１の夫々に設けた要素、つまりタグレジスタＴＧ０及びＴＧ１、有効ビットレジスタＶＲ０及びＶＲ１、アドレスコンパレータＡＣ０、ＡＣ１や、幾つかの１対の制御信号は、その一方を省略できる。このような構成は、要求される処理が比較的単純であるような場合に、ハードウエア量を縮小する目的で効果的である。
【０２７５】
更に、また、メモリＭＥＭ内の２つのメモリブロックのキャッシュ５９０へのマッピングとして、セット・アソシエイティブ方式とすることもできる。この場合、例えば、上記の実施の形態で設けられている２つのキャッシュブロックとタグレジスタと、同じ２つのキャッシュブロックとタグレジスタをもう１セット設けて、ヒットしたキャッシュブロックについて、上記の処理を行うようにする。当業者にとって、上記の開示に基づいて、ダイレクトマップ方式のキャッシュ５９０に代えて、セット・アソシエイティブ方式のキャッシュを用いて本発明の実施の形態を設計することは容易である。
【０２７６】
前述した実施例の説明は、例示説明の目的のために提示された。それは、説明された厳密な形式に発明を限定することを意図しておらず、上記教示を踏まえた変形が可能である。実施例は、発明の原理を最も明瞭に説明するために選択され、それによって当業者は、その現実的な適用が可能になり、意図された特定使用に向けられた様々な変形と形態で発明を最も効果的に利用することができる。
【図面の簡単な説明】
【０２７７】
付随する図面を使用した好ましい実施例の下記説明を参照することによって、本発明の前述の及び他の特徴と目的並びにそれらの達成方法は、より明らかになり、そして、その発明そのものも、最も良く理解できるであろう。
【図１】図１は、本発明の実施の形態によるプロセッサの全体構成を示すブロック図である。
【図２】図２は、図１のピクセルプロッタの動作説明の例示図である。
【図３】図３は、図１のピクセルプロッタへの入出力信号の説明図である。
【図４】図４は、図３のピクセルプロッタの内部構成を示すブロック図である。
【図５】図５は、図４のプロットロケーションカウンタの内部構成を示すブロック図である。
【図６】図６は、図４のピクセルキャッシュユニットの内部構成を示すブロック図である。
【図７】図７Ａは、図６のダーティビットＤＴＹ０の真理値表を示す図である。図７Ｂは、図６のダーティビットＤＴＹ１の真理値表を示す図である。
【図８】図８Ａは、図６の有効ビットコントロール回路が出力する有効ビット制御信号ＶＣＯＮ０及びＩＶＣＮ０の真理値表を示す図である。図８Ｂは、図６の有効ビットコントロール回路が出力する有効ビット制御信号ＶＣＯＮ１及びＩＶＣＮ１の真理値表を示す図である。
【図９】図９は、図６のマルチプレクサコントロール回路が生成する選択信号ＭＳＬ１Ｌ，ＭＳＬ１Ｕ，ＭＳＬ０Ｌ，ＭＳＬ０Ｕの説明図である。
【図１０】図１０は、図６のライトリクエスト信号ＷＲＱ０を生成する回路の回路図である。
【図１１】図１１は、図６のリードリクエスト信号ＲＲＥＱを生成する回路の回路図である。
【図１２】図１２は、図６のピクセルパッカの回路図である。
【図１３】図１３は、図６のピクセルアンパッカの回路図である。
【図１４】図１４は、従来のパターン描画装置のブロック図である。
【図１】
2008501126.tif 000003
【図２】
2008501126.tif 000004
【図３】
2008501126.tif 000005
【図４】
2008501126.tif 000006
【図５】
2008501126.tif 000007
【図６】
2008501126.tif 000008
【図７】
2008501126.tif 000009
【図８】
2008501126.tif 000010
【図９】
2008501126.tif 000011
【図１０】
2008501126.tif 000012
【図１１】
2008501126.tif 000013
【図１２】
2008501126.tif 000014
【図１３】
2008501126.tif 000015
【図１４】
2008501126.tif 000016
【国際調査報告】
2008501126.tif 000017
2008501126.tif 000018
2008501126.tif 000019