(57)【要約】【課題】種々のグラフィックス処理を高速に行なうことができるようにする。【解決手段】ＤＲＡＭ１１、キャッシュメモリ１２、画素処理ユニット１３、比較ユニット１４およびシリアルアクセスメモリ１５をすべて１枚の半導体基板上に形成してワンチップ化する。ＤＲＡＭ１１からキャッシュメモリ１２への２５６ビットのデータを一度に転送する。画素処理ユニット１３においては、α−ブレンド処理、ラスタオペレーションなどを行ない、比較ユニット１４においてはＺコンペア処理などを行なう。【選択図】図１
2010044786.tif 000002
【特許請求の範囲】
【請求項１】
半導体基板と、
前記半導体基板上に形成されかつ複数のデータを記憶する第１の記憶手段と、
前記半導体基板上に形成されかつ複数のデータを記憶する第２の記憶手段と、
前記半導体基板上に形成され前記第１および第２の記憶手段の間でデータを相互に転送する第１の転送手段と、
前記半導体基板上に形成されかつ前記第２の記憶手段から転送された第１のデータと外部から転送された第２のデータとを演算する画像演算手段、
前記半導体基板上に形成されかつ前記第２の記憶手段から前記画像演算手段へ前記第１のデータを転送する第２の転送手段と、
前記半導体基板上に形成されかつ外部から前記画像演算手段へ前記第２のデータを転送する第３の転送手段と、
前記半導体基板上に形成されかつ前記画像演算手段からの結果データを前記第２の記憶手段へ転送する第４の転送手段と、
前記第１のデータを前記第２のデータと比較する比較手段とを備え、
前記比較手段からの結果信号は外部に接続される半導体集積回路装置に供給する制御信号として出力され、
前記第２の記憶手段は、前記比較手段からの結果信号と前記外部に接続される半導体集積回路装置が備える制御手段の出力信号とに応答して前記第４の転送手段によって転送された前記第２のデータの書込みが可能になる、半導体集積回路装置。
【請求項２】
半導体基板と、
前記半導体基板上に形成されかつ複数のデータを記憶する第１の記憶手段と、
前記半導体基板上に形成されかつ複数のデータを記憶する第２の記憶手段と、
前記半導体基板上に形成され前記第１および第２の記憶手段の間でデータを相互に転送する第１の転送手段と、
前記半導体基板上に形成されかつ前記第２の記憶手段から転送された第１のデータと外部から転送された第２のデータとを演算する画像演算手段と、
前記半導体基板上に形成されかつ前記第２の記憶手段から前記画像演算手段へ前記第１のデータを転送する第２の転送手段と、
前記半導体基板上に形成されかつ外部から前記画像演算手段へ前記第２のデータを転送する第３の転送手段と、
前記半導体基板上に形成されかつ前記画像演算手段からの結果データを前記第２の記憶手段へ転送する第４の転送手段と、
外部に接続される半導体集積回路装置に供給する制御信号を出力する制御手段とを備え、
前記第２の記憶手段は、前記制御手段からの前記制御信号と前記外部に接続される半導体集積回路装置が備える制御手段の出力信号とに応答して前記第４の転送手段によって転送された前記第２のデータの書込みが可能になる、半導体集積回路装置。
【請求項３】
前記半導体基板上に形成され前記第１の記憶手段からデータを読出しかつその読出されたデータをシリアルに外部へ出力するシリアルアクセスメモリ手段をさらに備える、請求項１または２に記載の半導体集積回路装置。
【請求項４】
前記外部に接続される半導体集積回路装置が備える制御手段が出力する制御信号を外部から入力するための信号入力端子をさらに備える、請求項１または２に記載の半導体集積回路装置。
【請求項５】
前記比較手段からの結果信号を外部へ出力するための信号出力端子をさらに備える、請求項１に記載の半導体集積回路装置。
【請求項６】
前記制御手段からの制御信号を外部へ出力するための信号出力端子をさらに備える、請求項２に記載の半導体集積回路装置。
【請求項７】
前記第１の記憶手段の記憶容量は前記第２の記憶手段の記憶容量よりも大きく、前記第２の記憶手段のアクセス速度は前記第１の記憶手段のアクセス速度よりも速い、請求項１から６のいずれかに記載の半導体集積回路装置。
【請求項８】
前記第１の記憶手段はダイナミックランダムアクセスメモリであり、前記第２の記憶手段はスタティックランダムアクセスメモリである、請求項１から７のいずれかに記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理回路を備えた半導体集積回路装置に関し、特にワークステーション、パーソナルコンピュータ等において使用される画像処理機能付きのフレームバッファメモリに関する。
【背景技術】
【０００２】
図４０は、従来の３次元／２次元グラフィックス処理システムの全体構成を示すブロック図である。
【０００３】
図４０を参照して、このグラフィックス処理システムは、画素処理ユニット１と、画素キャッシュメモリ２と、１６個のフレームバッファメモリとを備える。
【０００４】
画素処理ユニット１は、画素キャッシュメモリ２から与えられた１画素のデータと、ワークステーションなどから座標計算などのジオメトリ処理を経て与えられた１画素のデータとに基づいて所定の演算処理を行なうもので、たとえば高速動作可能なＬＳＩなどが用いられる。
【０００５】
画素キャッシュメモリ２は、画素処理ユニット１またはフレームバッファメモリ３から与えられる画素データをストアするためのもので、たとえば記憶容量は大きくないが、高速アクセス可能なＳＲＡＭ（スタティックランダムアクセスメモリ）が用いられる。
【０００６】
１６個のフレームバッファメモリ３は、ＣＲＴ上に表示される少なくとも１画面分の画素データをストアするためのものである。一般にワークステーション等に用いられるＣＲＴは多数の画素を有するため、このフレームバッファメモリ３としては、１ビットあたりのコストが安く、かつ記憶容量の大きいＤＲＡＭ（ダイナミックランダムアクセスメモリ）が主に用いられている。
【０００７】
図４１は、このフレームバッファメモリ３として用いられたＤＲＡＭの全体構成を示すブロック図である。
【０００８】
図４１を参照して、このＤＲＡＭ３は、４つのメモリセルアレイ４と、行デコーダ５と、４つのセンスアンプ６と、列デコーダ７と、制御器８とを備える。
【０００９】
各メモリセルアレイ４は、５１２行および５１２列からなるマトリクス状に配置された（５１２×５１２）個のメモリセルを有する。各メモリセルは１ビットのデータをストアするため、１つのメモリセルアレイ４は２５６Ｋビットの記憶容量を有する。
【００１０】
行デコーダ５は、制御器８から与えられた９ビットの内部行アドレスに応答して各メモリセルアレイ４の１行を選択する。各センスアンプ６は、行デコーダ５によって選択された１行のメモリセルから読出されたデータを増幅する。列デコーダ７は制御器８から与えられた内部列アドレスに応答して、読出時には４つのセンスアンプ６によって増幅された（４×５１２）ビットのデータのうち４ビットを選択して出力データＤｏｕｔとして外部に出力するとともに、書込時には外部から入力された４ビットの入力データＤｉｎをセンスアンプ６を介してメモリセルアレイ４に書込む。なお、この列デコーダ７において、読出動作と書込動作とは外部から与えられる読出／書込信号Ｒ／Ｗに応答して切換えられる。
【００１１】
制御器８は、外部から与えられた９ビットの外部アドレス、行アドレスストローブ信号／ＲＡＳおよび列アドレスストローブ信号／ＣＡＳに応答して、９ビットの内部行アドレスおよび９ビットの内部列アドレスを生成する。
【００１２】
次に、このグラフィックス処理システムの動作について説明する。
まずフレームバッファメモリ３には、現在ＣＲＴ上に表示されている画面の画素データがストアされている。各フレームバッファメモリ３から画素キャッシュメモリ２へは１画素ずつデータが転送される。したがって、１６個のフレームバッファメモリ３から画素キャッシュメモリ２へは１６画素のデータが一度に転送される。
【００１３】
画素処理ユニット１においては、画素キャッシュメモリ２から与えられた１画素のデータと、ワークステーションなどから与えられた１画素のデータとが演算処理される。演算処理されたデータは再び画素キャッシュメモリ２に書き戻される。
【００１４】
ここで、画素キャッシュメモリ２から与えられるデータは、現在ＣＲＴ上に表示されているもので、ワークステーションなどから与えられるデータは、次にＣＲＴ上に表示されるべきものである。したがって、画素キャッシュメモリ２に書き戻されたデータは、古いデータと新しいデータとに基づいて生成されたもので、次にＣＲＴ上に表示されることになる。
【００１５】
すなわち、画素キャッシュメモリ２に書き戻されたデータは１６画素ずつ一度にフレームバッファメモリ３に書き戻される。
【００１６】
フレームバッファメモリ３から読出されたデータはアナログ信号に変換され、ＣＲＴに供給される。ＣＲＴ上には、このアナログ信号に基づいた画面が表示される。
【００１７】
ここで、フレームバッファメモリ３として１６チップのＤＲＡＭが用いられる理由を詳しく説明する。
【００１８】
近年ワークステーションなどにおいては、たとえば（１２８０×１０２４）画素を有する高解像度のＣＲＴが多用されている。そのため、フレームバッファ３には、１ビット当たりのコストが安く、かつ記憶容量の大きいＤＲＡＭが用いられている。また、このようなＣＲＴにおいては、１秒間に６０枚もの画面が表示されるため、１２．７ｎｓｅｃ｛＝１／（１２８０×１０２４×６０）｝でＤＲＡＭをアクセスする必要がある。
【００１９】
しかしながら、市販されているＤＲＡＭのアクセス時間は２００ｎｓｅｃ程度に止まるため、複数のＤＲＡＭを並列にアクセスして一度に複数のデータを読出し、その読出されたデータをマルチプレクスして１データずつ処理するインタリーズ方式が採用されているのである。これが、フレームバッファメモリ３に複数のＤＲＡＭが用いられている理由である。
【発明の概要】
【発明が解決しようとする課題】
【００２０】
上記のようなグラフィックス処理用システムにおいては、多数のフレームバッファメモリ３が使用されるため、ボード上の配線が多くなるとともに、ボードのサイズが大きくなるという問題があった。また、この問題はグラフィックス処理システムの価格が高くなる原因にもなっていた。
【００２１】
ところで、図４１に示したＤＲＡＭにおいては、行デコーダ５によって各メモリセルアレイ４の１行が選択されると、一度に４×５１２ビットのデータが読出され、または書込まれる。しかしながら、ＤＲＡＭにおいては、汎用性を高めるために多くの入出力ピンが設けられていない。そのため、列デコーダ７によって４×５１２ビットのデータの中から４ビットのデータが選択されている。
【００２２】
したがって、もしもＤＲＡＭに多数の入出力ピンを設け、４×５１２ビットのデータを一度に読出すようにすれば、図４０に示すようにＤＲＡＭを並列に設ける必要はない。
【００２３】
しかしながら、そのような場合には、ボード上に多数の長い配線を設ける必要がある。ＤＲＡＭの入出力バッファはそれら配線の寄生容量を充放電するため、消費電力が大きくなるという問題が生じ得る。また、多数の入出力バッファを設ける必要があるため、ＤＲＡＭのサイズも大きくなるという問題も生じ得る。このような問題があるため、現在まで多数の入出力ピンを備えたＤＲＡＭは製造されていない。
【００２４】
一方、画素処理ユニット１としては、たとえばＴＭＳ３２０２０（テキサスインスツルメンツ社製）と呼ばれる汎用ＤＳＰ（Digital Signal Processor）が使用されている。このような汎用ＤＳＰは多数の機能を有するが、グラフィックス処理で多用されるラスタオペレーションのような画素データ間の論理演算を効率よく実行することはできない。グラフィックス処理においては、画素を構成するＲ（赤信号），Ｇ（緑信号），Ｂ（青信号）（一般に各信号は８ビットのデータである。）を処理する必要があるが、上記ＴＭＳ３２０２０はＲ，Ｇ，Ｂからなる３つのデータ（一般に２４ビット）を一度に処理することができないため、３つのＴＭＳ３２０３０を並列に実装することによって処理時間を短縮するようにしている。
【００２５】
しかしながら、ボード上の配線を介したチップ間のデータ転送は、それらの配線が大きな寄生容量を有するため、ＬＳＩの内部配線を介したデータ転送に比べて、多くの時間を必要とする。このことは、システム全体のデータ処理スループットを向上させる障害となっている。
【００２６】
一般に、１つの画素を処理するために必要な時間ｔは次の数１で表される。
【００２７】
【数１】
2010044786.tif 000003
【００２８】
ここで、ｔprocは画素処理ユニット１として用いられるＬＳＩにおけるデータ処理時間であり、ｔac1はフレームバッファメモリ３からデータを読出すためのアクセス時間であり、ｔac2はフレームバッファメモリ３へデータを書込むためのアクセス時間であり、さらにｔtrauはボード上の配線を介してデータが転送される場合の遅延時間である。
【００２９】
近年の半導体集積回路技術の向上に伴って、ｔprocは小さくなる傾向にある。また、ｔac1、ｔac2およびｔrauも小さくなる傾向にあるが、その割合はｔprocに比べてわずかである。
【００３０】
したがって、画素処理ユニットとして用いられるＬＳＩの動作をいくら高速化しても、ボード上のデータ転送が高速化されない限り、処理時間ｔは短縮されない。すなわち、ボード上のデータ転送が処理速度を律速しているのである。
【００３１】
また、このような従来のグラフィックス処理システムは正常に動作するか否か容易にテストすることができるように設計されていないため、このシステムをテストするためには多大な時間を必要とするという問題があった。
【００３２】
この発明は上記のような問題点を解消するためになされたもので、その目的はグラフィックス処理をより高速に行なうことができる回路を備えた半導体集積回路装置を提供することである。
【００３３】
この発明の他の目的は、小さいサイズのグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
【００３４】
この発明のさらに他の目的は、消費電力の小さいグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
【００３５】
この発明のさらに他の目的は、α−ブレンド処理を行なうことができるグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
【００３６】
この発明のさらに他の目的は、新しい画面のデータを古い画面のデータに全くブレンド処理したくない場合に、その古い画面のデータをそのまま維持することができるグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
【００３７】
この発明のさらに他の目的は、ラスタオペレーションを行なうことができるグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
【００３８】
この発明のさらに他の目的は、Ｚコンペア処理を行なうことができるグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
【００３９】
この発明のさらに他の目的は、多種類のグラフィックス処理をフレキシブルに行なうことができるグラフィックス処理回路を備えた半導体集積回路装置および画像記憶処理システムを提供することである。
【００４０】
この発明のさらに他の目的は、部品点数が少なく、簡単な構成のグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
【００４１】
この発明のさらに他の目的は、グラフィックス処理回路が有する機能を容易に変更したり、あるいは拡張したりできるようにしてその設計時間を短縮することである。
【００４２】
この発明のさらに他の目的は、容易かつ的確にテストを行なうことができるグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
【課題を解決するための手段】
【００４３】
本発明のある局面に従う半導体集積回路装置は、半導体基板と、半導体基板上に形成されかつ複数のデータを記憶する第１の記憶手段と、半導体基板上に形成されかつ複数のデータを記憶する第２の記憶手段と、半導体基板上に形成され第１および第２の記憶手段の間でデータを相互に転送する第１の転送手段と、半導体基板上に形成されかつ第２の記憶手段から転送された第１のデータと外部から転送された第２のデータとを演算する画像演算手段、半導体基板上に形成されかつ第２の記憶手段から画像演算手段へ第１のデータを転送する第２の転送手段と、半導体基板上に形成されかつ外部から画像演算手段へ第２のデータを転送する第３の転送手段と、半導体基板上に形成されかつ画像演算手段からの結果データを第２の記憶手段へ転送する第４の転送手段と、第１のデータを第２のデータと比較する比較手段とを備える。比較手段からの結果信号は外部に接続される半導体集積回路装置に供給する制御信号として出力される。第２の記憶手段は、比較手段からの結果信号と外部に接続される半導体集積回路装置が備える制御手段の出力信号とに応答して第４の転送手段によって転送された第２のデータの書込みが可能になる。
【００４４】
本発明の別の局面に従う半導体集積回路装置は、半導体基板と、半導体基板上に形成されかつ複数のデータを記憶する第１の記憶手段と、半導体基板上に形成されかつ複数のデータを記憶する第２の記憶手段と、半導体基板上に形成され第１および第２の記憶手段の間でデータを相互に転送する第１の転送手段と、半導体基板上に形成されかつ第２の記憶手段から転送された第１のデータと外部から転送された第２のデータとを演算する画像演算手段と、半導体基板上に形成されかつ第２の記憶手段から画像演算手段へ第１のデータを転送する第２の転送手段と、半導体基板上に形成されかつ外部から画像演算手段へ第２のデータを転送する第３の転送手段と、半導体基板上に形成されかつ画像演算手段からの結果データを第２の記憶手段へ転送する第４の転送手段と、外部に接続される半導体集積回路装置に供給する制御信号を出力する制御手段とを備える。第２の記憶手段は、制御手段からの制御信号と外部に接続される半導体集積回路装置が備える制御手段の出力信号とに応答して第４の転送手段によって転送された第２のデータの書込みが可能になる。
【図面の簡単な説明】
【００４５】
【図１】この発明の実施例１による半導体集積回路装置の全体構成を示すブロック図である。
【図２】図１に示された半導体集積回路装置の全体構成を示すもう１つのブロック図である。
【図３】図１および図２に示された半導体集積回路装置の全体構成を示すさらにもう１つのブロック図である。
【図４】図１〜図３に示された半導体集積回路装置におけるＲＯＰ／ブレンドユニットの構成を示すブロック図である。
【図５】図４に示されたＲＯＰ／ブレンドユニットにおけるラスタオペレーション回路の構成を示す回路図である。
【図６】図１に示された半導体集積回路装置における比較ユニットの構成を示すブロック図である。
【図７】１フレームの画像データの取扱い方法を示す図である。
【図８】メインメモリのバンクがインタリーブされる場合において画像データがメインメモリに格納される様子を示す図である。
【図９】図８に示された場合のバンクインタリーブ動作を示すタイミングチャートである。
【図１０】メインメモリのバンクがインタリーブされていない場合において画像データがメインメモリに格納される様子を示す図である。
【図１１】図１０に示される場合においてバンクのノンインタリーブ動作を示すタイミングチャートである。
【図１２】図１に示された半導体集積回路装置によるＺコンペア処理を説明するための模式図である。
【図１３】図１に示された半導体集積回路装置において８ビットのカラーインデックスデータを含む３２ビットのデータを処理するためのシステム構成を示すブロック図である。
【図１４】図１に示された制御レジスタ群の構成を示す図である。
【図１５】図１〜図３に示された半導体集積回路装置のパイプライン構成を示すブロック図である。
【図１６】図１５に示されたパイプライン構成をさらに詳細に示すブロック図である。
【図１７】図１６に示されたＲＯＰ／ブレンドユニットのパイプライン構成を示すブロック図である。
【図１８】図１６に示された比較ユニットのパイプライン構成を示すブロック図である。
【図１９】図１７に示されたＲＯＰ／ブレンドユニットのパイプライン動作を示すタイミングチャートである。
【図２０】図１８に示された比較ユニットのパイプライン動作を示すタイミングチャートである。
【図２１】この発明の実施例２による半導体集積回路装置の全体構成を示すブロック図である。
【図２２】この発明の実施例３による半導体集積回路装置の全体構成を示すブロック図である。
【図２３】図２２に示された半導体集積回路装置における比較ユニットの構成を示すブロック図である。
【図２４】図２３に示された比較ユニットにおける比較回路の構成を示すブロック図である。
【図２５】図２４に示された比較回路における１ビットの比較回路の構成を示す回路図である。
【図２６】図２４に示された比較回路におけるもう１つの１ビットの比較回路の構成を示す回路図である。
【図２７】図２２に示された半導体集積回路装置におけるフラグ発生器の構成を示す回路図である。
【図２８】この発明の実施例４による半導体集積回路装置におけるＲＯＰ／ブレンドユニットの構成を示すブロック図である。
【図２９】この発明の実施例５による半導体集積回路装置におけるＲＯＰ／ブレンドユニットの構成を示すブロック図である。
【図３０】この発明の実施例６による半導体集積回路装置におけるＲＯＰ／ブレンドユニットの構成を示すブロック図である。
【図３１】この発明の実施例７による画像記憶処理システムの全体構成を示すブロック図である。
【図３２】図３１に示された画像記憶処理システムにおける具体的な配線方法を示すブロック図である。
【図３３】図３１に示されたカラーデータを処理するフレームバッファメモリのパイプライン動作を示すタイミングチャートである。
【図３４】図３１に示されたＺコンペア処理を行なうフレームバッファメモリのパイプライン動作を示すタイミングチャートである。
【図３５】図３１に示された配線方法と異なる配線方法を示すブロック図である。
【図３６】この発明の実施例８による画像記憶処理システムの全体構成を示すブロック図である。
【図３７】この発明の実施例９による半導体集積回路装置の全体構成を示すブロッ図である。
【図３８】図３７に示された半導体集積回路装置におけるデータ処理ユニットの構成を示すブロック図である。
【図３９】この発明の実施例１０による半導体集積回路装置におけるデータ処理ユニットの構成を示すブロック図である。
【図４０】従来のグラフィックス処理システムの構成を示すブロック図である。
【図４１】図４０に示されたグラフィックス処理システムにおけるフレームバッファメモリであるメインメモリの構成を示すブロック図である。
【図４２】図２２に示された半導体集積回路装置におけるフラグ発生器の構成を示す回路図である。
【発明を実施するための形態】
【００４６】
次に、この発明の実施例を図面を参照して詳しく説明する。なお、図中同一符号は同一または相当部分を示す。
【００４７】
［実施例１］
図１〜図３は、この発明の実施例１によるフレームバッファメモリの全体構成を示すブロック図である。図２は図１と異なる観点から見たブロック図であり、図３はさらに異なる観点から見たブロック図である。
【００４８】
図１を参照して、このフレームバッファメモリ１０は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）構成のメインメモリ１１と、スタティックランダムアクセスメモリ（ＳＲＡＭ）構成のキャッシュメモリ１２と、キャッシュメモリ１２から供給されるデータと外部からデータ入出力端子２７を介して供給されるデータＤＱ０〜ＤＱ３１とを演算する演算部２３とを少なくとも１つの半導体基板上に備える。
【００４９】
メインメモリ１１は、図２および図３にも示されるように、４つのバンク１１Ａ〜１１Ｄから構成される。各バンクは（５１２×６４０×８）個のメモリセル（図示せず）を備えているので、２．６メガビットのデータを記憶することができる。したがって、メインメモリ１１全体は１０．５メガビットの記憶容量を有し、ディスプレイ上の１／４フレームの画像データを記憶することができる。
【００５０】
キャッシュメモリ１２は、図３に示されるように８つのメモリブロックから構成される。各メモリブロックは、２５６ビットのデータを記憶することができる。したがって、このキャッシュメモリ１２は２キロビットのデータを記憶することができる。
【００５１】
メインメモリ１１とキャッシュメモリ１２との間には、２５６本のグローバルバス１７が設けられている。グローバルバス１７はメインメモリ１１からキャッシュ１２へデータを２５６ビットごとに転送するとともに、キャッシュメモリ１２からメインメモリ１１へデータを２５６ビットごとに転送する。メインメモリ１１から転送された２５６ビットのデータによってキャッシュメモリ１２の１つのメモリブロックが書換えられる。また、キャッシュメモリ１２からメインメモリ１１へデータが転送されるときは、キャッシュメモリ１２の１つのメモリブロック内のデータがまとめて転送される。
【００５２】
再び図１を参照して、演算部２３は画素処理ユニット１３と比較ユニット１４とを備える。画素処理ユニット１３は４つのラスタオペレーション（ＲＯＰ）／ブレンドユニット１５１〜１５４を備える。画素処理ユニット１３は、キャッシュメモリ１２からデータバス１８を介して与えられた３２ビットのデータと、外部からデータバス２１を介して与えられた３２ビットのデータＤＱ０〜ＤＱ３１とに基づいて、所定の演算処理を行なう。この画素処理ユニット１３においてはその演算処理の結果、３２ビットの結果データが生成される。この結果データはデータバス１９を介してキャッシュメモリ１２に書き戻される。ここで、各ＲＯＰ／ブレンドユニットは、キャッシュメモリ１２から与えられた３２ビットのデータのうち８ビットのデータと、外部から与えられた３２ビットのデータＤＱ０〜ＤＱ３１のうち８ビットのデータとを演算する。
【００５３】
比較ユニット１４は、キャッシュメモリ１２からデータバス１８を介して与えられた３２ビットのデータを、外部からデータバス２１を介して与えられた３２ビットのデータＤＱ０〜ＤＱ３１と比較し、その比較結果を示すフラグ信号ＰＡＳＳ−ＯＵＴを生成する。このフラグ出力信号ＰＡＳＳ−ＯＵＴは制御信号出力端子２８を介して外部へ出力されるとともに、ＡＮＤゲート２６に与えられる。このＡＮＤゲート２６にはフラグ入力信号ＰＡＳＳ−ＩＮが制御信号入力端子２９を介して与えられる。このＡＮＤゲート２６はそれら信号ＰＡＳＳ−ＩＮ，ＰＡＳＳ−ＯＵＴの論理積信号をライトイネーブル信号ＷＥとしてキャッシュメモリ１２へ供給する。このライトイネーブル信号ＷＥがＨ（ハイ）レベルのとき、画素処理ユニット１３の結果データがキャッシュメモリ１２に書込まれる。
【００５４】
このフレームバッファメモリ１０はさらに、メインメモリ１１に記憶されている画像をディスプレイ上に表示するためのビデオ出力データＶＯを生成するシリアルアクセスメモリ（ＳＡＭ）１５を備える。このシリアルアクセスメモリ１５はメインメモリ１１からデータを６４０ビットごとに読出し、その読出されたデータをビデオクロック信号ＶＣに応答して１６ビットごとにビデオ出力データＶＯとして出力する。
【００５５】
シリアルアクセスメモリ１５はさらに詳しくは図２および図３に示されるように、２つに分割されている。一方のシリアルアクセスメモリ１５Ａはメインメモリ１１Ａおよび１１Ｃのどちらか一方からデータを読出す。他方のシリアルアクセスメモリ１５Ｂは、メインメモリ１１Ｂおよび１１Ｄのどちらか一方からデータを読出す。シリアルアクセスメモリ１５Ａからのデータとシリアルアクセスメモリ１５Ｂからのデータとはマルチプレクサ４２によって交互に選択され、その選択されたデータはトライステートバッファ４３を介してビデオ出力データＶＯとして出力される。一方のシリアルアクセスメモリ１５Ａからデータが出力されている間に他方のシリアルアクセスメモリ１５Ｂへ対応するメインメモリからデータが転送されるので、ビデオ出力データＶＯは高速に出力される。
【００５６】
このフレームバッファメモリ１０はさらに、コントローラ１６を備える。コントローラ１６は、外部から供給される制御信号ＣＴおよびクロック信号ＣＬＫに応答して、メインメモリ１１、キャッシュメモリ１２、シリアルアクセスメモリ１５および演算部２３を制御するための制御信号を生成する。画素処理ユニット１３は、コントローラから供給される制御信号ＣＮＴ１に応答して動作する。比較ユニット１４は、コントローラ１６から供給される制御信号ＣＮＴ２に応答して動作する。
【００５７】
なお、データ転送バス１８はキャッシュメモリ１２から演算部２３へデータを転送するだけでなく、外部にもデータ入出力端子２７を介してデータを転送することができる。
【００５８】
また、上述したメインメモリ１１、キャッシュメモリ１２、画素処理ユニット１３、比較ユニット１４、シリアルアクセスメモリ１５、制御レジスタ群およびコントローラ１６はすべて、１枚の半導体基板上に形成されている。
【００５９】
図２において、１１Ａ−１〜１１Ａ−４，１１Ｂ−１〜１１Ｂ−４，１１Ｃ−１〜１１Ｃ−４，１１Ｄ−１〜１１Ｄ−４は大容量データメモリであって本実施例ではＤＲＡＭとしている。
【００６０】
１２Ａ〜１２Ｄはキャッシュメモリである。キャッシュメモリ１２Ａは前記ＤＲＡＭのうち対応するバンク１１Ａ−１，１１Ｂ−１，１１Ｃ−１，１１Ｄ−１と接続される。キャッシュメモリ１２Ｂは前記ＤＲＡＭのうち対応するバンク１１Ａ−２，１１Ｂ−２，１１Ｃ−２，１１Ｄ−２と接続される。キャッシュメモリ１２Ｃは前記ＤＲＡＭのうち対応するバンク１１Ａ−３，１１Ｂ−３，１１Ｃ−３，１１Ｄ−３と接続される。キャッシュメモリ１２Ｄは前記ＤＲＡＭのうち対応するバンク１１Ａ−４，１１Ｂ−４，１１Ｃ−４，１１Ｄ−４と接続される。
【００６１】
１４Ａ〜１４Ｄは比較ユニットである。比較ユニット１４Ａは、対応するキャッシュメモリ１２Ａから与えられるデータと外部ピンＤＱ１６〜３１から与えられるデータのうち所望のビット位置データとの一致／大小比較を行なう。比較ユニット１４Ｂは、対応するキャッシュメモリ１２Ｂから与えられるデータと外部ピンＤＱ１６〜３１から与えられるデータのうち所望のビット位置データとの一致／大小比較を行なう。比較ユニット１４Ｃは、対応するキャッシュメモリ１２Ｃから与えられるデータと外部ピンＤＱ０〜１５から与えられるデータのうち所望のビット位置データとの一致／大小比較を行なう。比較ユニット１４Ｄは、対応するキャッシュメモリ１２Ｄから与えられるデータと外部ピンＤＱ０〜１５から与えられるデータのうち所望のビット位置データとの一致／大小比較を行なう。
【００６２】
１５Ａ−１〜１５Ａ−４は第１のシリアルアクセスメモリ（ＳＡＭと略す）であり、１５Ｂ−１〜１５Ｂ−４は第２のＳＡＭである。
【００６３】
第１のＳＡＭの構成要素１５Ａ−１はＤＲＡＭバンク１１Ａ−１，１１Ｃ−１のどちらか一方から読出されたデータを取込むことができるように構成される。第１のＳＡＭの構成要素１５Ａ−２にはＤＲＡＭバンク１１Ａ−２，１１Ｃ−２のどちらか一方から読出されたデータを取込むことができるように構成される。第１のＳＡＭの構成要素１５Ａ−３は、ＤＲＡＭバンク１１Ａ−３，１１Ｃ−３のどちらか一方から読出されたデータを取込むことができるように構成される。第１のＳＡＭの構成要素１５Ａ−４は、ＤＲＡＭバンク１１Ａ−４，１１Ｃ−４のどちらか一方から読出されたデータを取込むことができるように構成される。第２のＳＡＭの構成要素１５Ｂ−１は、ＤＲＡＭバンク１１Ｂ−１，１１Ｄ−１のどちらか一方から読出されたデータを取込むことができるように構成される。第２のＳＡＭの構成要素１５Ｂ−２は、ＤＲＡＭバンク１１Ｂ−２，１１Ｄ−２のどちらか一方から読出されたデータを取込むことができるように構成される。第２のＳＡＭの構成要素１５Ｂ−３は、ＤＲＡＭバンク１１Ｂ−３，１１Ｄ−３のどちらか一方から読出されたデータを取込むことができるように構成される。第２のＳＡＭの構成要素１５Ｂ−４は、ＤＲＡＭバンク１１Ｂ−４，１１Ｄ−４のどちらか一方から読出されたデータを取込むことができるように構成される。
【００６４】
外部出力端子ＶＯには、第１のＳＡＭ１５Ａ−１〜１５Ａ−４出力と第２のＳＡＭ１５Ｂ−１〜１５Ｂ−４のデータが選択的に出力される。
【００６５】
１５１〜１５４は演算処理ユニットである。演算処理ユニット１５１は、キャッシュメモリ１２Ａから与えられるデータと、外部データ端子ＤＱ１６〜３１から与えられるデータのうち所望のビット位置データとを入力とし、その出力はキャッシュメモリ１２Ａに接続される。演算処理ユニット１５２は、キャッシュメモリ１２Ｂから与えられるデータと、外部データ端子ＤＱ１６〜３１から与えられるデータのうち所望のビット位置データとを入力とし、その出力はキャッシュメモリ１２Ｂに接続される。演算処理ユニット１５３は、キャッシュメモリ１２Ｃから与えられるデータと外部データ端子ＤＱ０〜１５から与えられるデータのうち所望のビット位置データとを入力とし、その出力はキャッシュメモリ１２Ｃに接続される。演算処理ユニット１５４は、キャッシュメモリ１２Ｄから与えられるデータと外部データ端子ＤＱ０〜１５から与えられるデータのうち所望のビット位置データとを入力とし、その出力はキャッシュメモリ１２Ｄに接続される。
【００６６】
９００は、４つの比較ユニット１４Ａ〜１４Ｄの出力信号からＰＡＳＳ−ＯＵＴ信号を生成するためのフラグ発生部である。９０１は、ＬＳＩ９０２内部で必要となる制御信号を生成するためのコントローラである。５１Ａ〜５１Ｄは制御ユニットである。
【００６７】
図２に示したフレームバッファメモリの動作を以下に説明する。ここでは、本構成に固有の特徴的な動作について説明する。
【００６８】
本実施例における演算処理ユニット１５１〜１５４はそれぞれ図３に示されたＲＯＰ／ブレンドユニットとする。比較ユニット１４Ａ〜１４Ｄは、図３に示された一致比較ユニット４４と大小比較ユニット４５の機能を持つとする。
【００６９】
説明のために、ＲＯＰ／ブレンドユニット１５１〜１５４，比較ユニット１４Ａ〜１４Ｄはそれぞれ８ビット幅のデータを処理する機能を有するとする。本実施例ではこれらユニット１５１〜１５４，１４Ａ〜１４Ｄは各４個を用いる構成を示しているため、合計３２ビットのデータを処理する機能を持つ。この並列数は一例であり、処理すべきデータ単位が３２ビットでない場合（８ビット×４でないとき）は各ユニットの扱うビット数およびユニットの並列数が変わり得ることはいうまでもない。
【００７０】
説明のために、ＲＯＰ／ブレンドユニット１５１，比較ユニット１４Ａは、３２ビット中の最上位バイト２４ビット目〜３１ビット目を処理し、ＲＯＰ／ブレンドユニット１５２，比較ユニット１４Ｂは、３２ビット中のその下のバイト１６〜２３ビット目を処理し、ＲＯＰ／ブレンドユニット１５３，比較ユニット１４Ｃは、３２ビット中のさらにその下のバイト８〜１５ビット目を処理し、ＲＯＰ／ブレンドユニット１５４，比較ユニット１４Ｄは、３２ビット中の最下位バイト０〜７ビット目を処理するとする。
【００７１】
各ＲＯＰ／ブレンドユニット１５１〜１５４に対応して設けられたＤＲＡＭバンク１１Ａ−１〜１１Ａ−４，１１Ｂ−１〜１１Ｂ−４，１１Ｃ−１〜１１Ｃ−４，１１Ｄ−１〜１１Ｄ−４およびキャッシュメモリ１２Ａ〜１２Ｄ，ＳＡＭ１５Ａ−１〜１５Ａ−４，１５Ｂ−１〜１５Ｂ−４もＲＯＰ／ブレンドユニット１５１〜１５４のそれぞれと同じ対応するバイトを扱う。
【００７２】
本実施例の最大の特徴は、対応バイト単位に各機能ユニットを分割配置していることである。上記３２ビットのデータは、グラフィックスのための各画素が持つ色データおよび混合率データ（各Ｒ，Ｇ，Ｂ，α，各８ビット）を表わす。
【００７３】
色要素Ｒが最上位バイトに対応し、Ｇがその１つ下位バイト、ＢはＧ成分バイトの１つ下のバイト、αが最下位バイトに与えられるとする。こうした場合には、ＲＯＰ／ブレンドユニット１５１はＲ成分を処理し、ＲＯＰ／ブレンドユニット１５２はＧ成分を処理し、ＲＯＰ／ブレンドユニット１５３はＢ成分を処理し、ＲＯＰ／ブレンドユニット１５４はα成分を処理する。
【００７４】
他のデータ形式としては、３２ビットのデータに、上記Ｒ，Ｇ，Ｂ，αのうちのある１成分のみを４画素分格納する場合もある。それ以外にも色々な場合が考えられるが、ここではＲ，Ｇ，Ｂ，α成分が格納されている場合について説明する。
【００７５】
各ＤＲＡＭバンクには、図７に示されている方法で１フレームもしくはその一部分（格納可能な画面領域は、色成分のビット数、フレームのサイズ等により決まる。）が格納される。画面上にある画素に対応してαブレンド処理を行なう場合には、外部よりＤＲＡＭアドレス（図示せず）が入力される。このアドレスによりその画素が含まれる頁およびバンク（Ａ，Ｂ，Ｃ，Ｄのいずれか）が指定されて、読出される。今、画素がＤＲＡＭバンクＡに格納されているとする。本実施例では、図のようにＤＡＲＭバンクＡは、バイト単位に４つに分割され、それぞれ対応するＲＯＰ／ブレンドユニット１５１〜１５４、キャッシュメモリ１２Ａ〜１２Ｄに隣接して配置されている。
【００７６】
上記アドレスデータにより、分割されたＤＲＡＭのバンク１１Ａ１〜１１Ａ−４から同時に同じ頁が読出される。そして、次に、画素が含まれるブロックがキャッシュメモリ１２Ａ〜１２Ｄに同時に転送され、ＣＡＤ（キャッシュメモリ用アドレスピン）で指定されるキャッシュメモリ１２Ａ〜１２Ｄ内のアドレスに格納される。
【００７７】
一般に３Ｄグラフィックス処理は、隣接した複数画素からなる領域に対して連続的に同一処理を繰返すことが多いのが特徴である。そのために、フレームバッファ（図中のＤＲＡＭを指す）から一度に隣接した複数画素領域分のデータを転送することにより、アクセス速度の遅いフレームバッファの読出／書込速度による処理性能低下を解消できる。しかし、大量データを同時にＤＲＡＭからキャッシュメモリに転送する必要が生じる。
【００７８】
ＤＲＡＭとキャッシュメモリの間に長い多ビットバスを設けた場合には、長いバス配線の持つ大きな寄生容量を充放電するために高速バス転送が困難になるとともに、消費電力が大きくなってしまうという問題が生じる。
【００７９】
本実施例では、この問題を解決するために、ＤＲＡＭを細分化して、キャッシュメモリ１２Ａ−１２Ｄに近接配置することで配線長を短くするようにして、高速転送と低消費電力化を可能としている。
【００８０】
上記のようにＤＲＡＭ，キャッシュメモリを細分化し、分散配置した場合には、ＲＯＰ／ブレンドユニット１５１〜１５４の処理は高速化できる。
【００８１】
このとき、３２ビットデータとしてＺ値を扱うときに問題が生じる。Ｚ値は３２ビットで１単位であるからである。そこで、Ｚ値を比較するための比較ユニットも８ビット単位に分割し、対応キャッシュメモリに近接配置しなければならない。そして、８ビット単位に構成された比較ユニット１４Ａ〜１４Ｄにより３２ビット分のデータの大小比較／一致比較を行なう。このように比較ユニットを分割配置することで、キャッシュメモリ１２Ａ〜１２Ｄから読出されたデータを比較ユニットに転送するためのバス配線を短くでき、高速化および低消費電力が可能である。
【００８２】
大小比較を行なうときは、上位ビット側の大小比較結果（あるいは上位ビット側では全ビットが一致しているという情報）を下位ビットを処理する回路へ伝える手段が必要である。この情報伝達のための信号線長が長くなってしまうと、結果的に比較処理時間が長くなり、処理速度の低下を招く。
【００８３】
本実施例では、その問題を解決するために、最上位バイトを処理する比較ユニット１４Ａに最も近い場所に次のバイトを処理する比較ユニット１４Ｂを配置し、その次のバイトを処理する比較ユニット１４Ｃはこの比較ユニット１４Ｂに最も近い場所に配置し、最下位バイトを処理するユニット１４Ｄはユニット１４Ｃに最も近い場所に配置する。ここで、「最も近い」という表現は、実現可能な範囲で近い位置を指すことはいうまでもない。
【００８４】
フレームバッファメモリに格納されているデータ（Ｒ，Ｇ，Ｂ）は表示のためにラスタスキャン方式に順次読出せる機能を持つことが要求される。そのために、本実施例ではＳＡＭを用いる。上記のようにＤＲＡＭを分割したことにより生ずる他の問題は、ＳＡＭ配置に関するものである。
【００８５】
ＤＡＲＭに画像データを図７の形式に格納しているとする。このとき、ラスタスキャン方式でデータを読出すためにアクセスされるバンクの順は、Ａ→Ｂ→Ａ→Ｂ→…→Ａ→Ｂ→Ｃ→Ｄ→Ｃ→Ｄ→…→Ｃ→Ｄ→Ａ→…（Ａ，Ｂ，Ｃ，Ｄはバンク）である。
【００８６】
ＤＲＡＭのバンクＡがＳＡＭ１５Ａ−１〜１５Ａ−４にデータを与えるためにアクセスされている間は、演算のためにバンクＡをアクセスすることができないために演算効率が低下する。バンクＢについても同じである。バンクＡ，Ｂは交互に読出されるためである。
【００８７】
しかし、この間Ｃ，Ｄは演算に使用可能である。そこで、ＳＡＭ１５Ａ−１〜１５Ａ−４はバンクＡとバンクＣで共有し、ＳＡＭ１５Ｂ−１〜１５Ｂ−４はバンクＢとバンクＤが共有することが回路量を減らすために効果がある。
【００８８】
第１のＳＡＭ１５Ａ−１〜１５Ａ−４からのデータを出力端子ＶＯに出力している間に、第２のＳＡＭ１５Ｂ−１〜１５Ｂ−４にはバンクＢあるいはバンクＤのいずれかのデータが転送される。第１のＳＡＭ中のデータ出力が終了すると、絶え間なく次のデータを出力するために、コントローラ１６から与えられる制御信号により第２のＳＡＭが選択され、出力される。第２のＳＡＭのデータが出力されている間に、第１のＳＡＭへバンクＡあるいはバンクＣのいずれかのデータが書込まれる。各ＳＡＭのサイズ（ワード数）の最小値は、「一方のＳＡＭ１５Ａ−１〜１５Ａ−４あるいは１５Ｂ−１〜１５Ｂ−４中のすべてのデータを出力するために要する時間」が「ＳＡＭの全リードにＤＲＡＭからデータを書込む時間」以上となるように決める必要がある。
【００８９】
図２に示したような構成を取ることによる効果は、以下のとおりである。
ＤＲＡＭの各バンクをデータ処理ユニットが扱うデータに対応付けて分割したことにより、キャッシュメモリとＤＲＡＭ各バンク間を結ぶバスの配線長を短くできるので、ＤＲＡＭとキャッシュメモリ間の転送の高速化および転送に伴なう消費電力を低減することが可能となる。
【００９０】
比較ユニットもこれに併わせて分割し、これら分割した比較ユニットを、ユニット間を伝播する信号の配線長が短くなるように配置することにより、ユニット間の伝播信号の遅延時間を短縮でき、比較処理を高速化することが可能となる。
【００９１】
このように分散配置したので、単位データに対応する構成要素を追加／削除することにより、機能変更が容易に行なえる。
【００９２】
図４は、図１〜図３に示したフレームバッファメモリ１０における画像処理ユニット１３のＲＯＰ／ブレンドユニット１５１の構成を示すブロック図である。なお、ＰＯＰ／ブレンドユニット１５２〜１５３もＰＯＰ／ブレンドユニット１５１と同様の構成である。
【００９３】
図４を参照して、このＲＯＰ／ブレンドユニット１３は、３つの入力ノード１３１〜１３３と、乗算器１３４と、加算器１３５と、クランプ回路１３６と、ラスタオペレーション回路１３７と、マルチプレクサ（ＭＵＸ）１３８と、出力ノード１３９とを備える。
【００９４】
乗算器１３４は、入力ノード１３１からの８ビットのデータと入力ノード１３２からの８ビットのデータとを乗算するためのものである。加算器１３５は、乗算器１３４からの結果データと入力ノード１３３からのデータとを加算するためのものである。クランプ回路１３６は、加算器１３５がオーバフローを起こしたときそのオーバフローフラグ信号ＯＦに応答して加算器１３５からの結果データを正の最大値に設定するとともに、加算器１３５がアンダフローを起こしたときそのアンダフローフラグ信号ＵＦに応答して加算器１３５からの結果データをゼロに設定するためのものである。ここで、乗算器１３４、加算器１３５およびクランプ回路１３６は、３つの入力ノードから供給されたデータに基づいてα−ブレンド処理を行なうためのものである。
【００９５】
一方、ラスタオペレーション回路１３７は、入力ノード１３２からの８ビットのデータと入力ノード１３３からの８ビットのデータとに基づいて、後述する所定の論理演算を行なうためのものである。
【００９６】
マルチプレクサ１３８は、選択信号ＳＬに応答してクランプ回路１３６からの出力か、またはラスタオペレーション回路１３７からの出力かを選択して出力ノード１３９を介して出力するためのものである。
【００９７】
図５は、図４に示したＲＯＰ／ブレンドユニット１５１におけるラスタオペレーション回路１３７の一部構成を示す回路図である。この図５においては、入力ノード１３２および１３３から供給される８ビットのデータＤｏｌｄおよびＤｎｅｗのうち１ビットのデータＤｏｌｄ１およびＤｎｅｗ１を処理するための回路が示されている。残りの７ビットのデータＤｏｌｄおよびＤｎｅｗを処理するための回路も同様の構成になっている。
【００９８】
図５を参照して、このラスタオペレーション回路１３７のＤｏｌｄ１およびＤｎｅｗ１を処理するための回路は、インバータ１４０および１４１と、ＮＡＮＤゲート１４２〜１４５と、ＮＡＮＤゲート１４６とを備える。
【００９９】
入力ノード１３２からの１ビットのデータＤｏｌｄ１はＮＡＮＤゲート１４３および１４５にそれぞれ入力されるとともに、インバータ１４０を介してＮＡＮＤゲート１４２および１４４にそれぞれ入力される。また、入力ノード１３３からの１ビットのデータＤｎｅｗ１はＮＡＮＤゲート１４４および１４５にそれぞれ入力されるとともに、インバータ１４１を介してＮＡＮＤゲート１４２および１４３にそれぞれ入力される。
【０１００】
動作選択信号ＯＰＳＥＬ０はＮＡＮＤゲート１４５に入力され、動作選択信号ＯＰＳＥＬ１はＮＡＮＤゲート１４４に入力され、動作選択信号ＯＰＳＥＬ２はＮＡＮＤゲート１４３に入力され、さらに動作選択信号ＯＰＳＥＬ３はＮＡＮＤゲート１４２に入力されている。ここで、これら動作選択信号ＯＰＳＥＬ０〜ＯＰＳＥＬ３は、これら１ビットのデータＤｏｌｄ１およびＤｎｅｗ１以外の他のビットデータを処理するためのＮＡＮＤゲート（図示せず）にも同様に入力されている。これらＮＡＮＤゲート１４２〜１４５の出力信号は、すべてＮＡＮＤゲート１４６に入力されている。
【０１０１】
したがって、このラスタオペレーション回路１３７は、動作選択信号ＯＰＳＥＬ０〜ＯＰＳＥＬ３に応答して１６種類の論理関数の中から１つを選択し、その選択された論理関数に従って演算処理を行なうためのものである。
【０１０２】
次の表１は、このラスタオペレーション回路１３７の真理値表を示す。
【０１０３】
【表１】
2010044786.tif 000004
【０１０４】
表１に示すように、たとえば動作選択信号ＯＰＳＥＬ０〜ＯＰＳＥＬ３がすべて「０」のとき、入力されたデータＤｏｌｄおよびＤｎｅｗに関係なく、このラスタオペレーション回路１３７の出力信号は「０」となる。
【０１０５】
また、動作選択信号ＯＰＳＥＬ０だけが「１」で、他の動作選択信号ＯＰＳＥＬ１〜ＯＰＳＥＬ３がすべて「０」のとき、このラスタオペレーション回路１３７は、入力されたデータＤｏｌｄおよびＤｎｅｗの論理積を行なう。したがって、入力されたデータＤｏｌｄおよびＤｎｅｗがともに「１」であるときだけ、ラスタオペレーション回路１３７の出力信号が「１」となる。
【０１０６】
また、動作選択信号ＯＰＳＥＬ１だけが「１」で、他の動作選択信号ＯＰＳＥＬ０，ＯＰＳＥＬ２およびＯＰＳＥＬ３が「０」のとき、このラスタオペレーション回路１３７は入力されたデータＤｎｅｗと入力されたＤｏｌｄの反転データ／Ｄｏｌｄとの論理積を行なう。したがって、データＤｎｅｗが「１」で、かつデータＤｏｌｄが「０」のときだけ、ラスタオペレーション回路１３７の出力信号は「１」となる。
【０１０７】
また、動作選択信号ＯＰＳＥＬ０およびＯＰＳＥＬ１が「１」で、他の動作選択信号ＯＰＳＥＬ２およびＯＰＳＥＬ３が「０」のとき、このラスタオペレーション回路１３７は、入力されたデータＤｎｅｗをそのまま出力信号として出力する。したがって、入力されたデータＤｏｌｄに関係なく、入力されたデータＤｎｅｗが「１」のときだけ、ラスタオペレーション回路１３７の出力信号は「１」となる。
【０１０８】
また、動作選択信号ＯＰＳＥＬ１およびＯＰＳＥＬ２が「１」で、かつ他の動作選択信号ＯＰＳＥＬ０およびＯＰＳＥＬ３が「０」のとき、このラスタオペレーション回路１３７は、入力された２つのデータＤｏｌｄおよびＤｎｅｗの排他的論理和を行なう。したがって、入力された２つのデータＤｏｌｄおよびＤｎｅｗが一致しないときだけ、このラスタオペレーション回路１３７の出力信号は「１」となる。
【０１０９】
また、動作選択信号ＯＰＳＥＬ０およびＯＰＳＥＬ２が「１」で、かつ他の動作選択信号ＯＰＳＥＬ３が「０」のとき、このラスタオペレーション回路１３７は、入力された２つのデータＤｏｌｄおよびＤｎｅｗの論理和を行なう。したがって、入力された２つのデータＤｏｌｄおよびＤｎｅｗのうち少なくとも一方が「１」のとき、このラスタオペレーション回路１３７の出力信号は「１」となる。
【０１１０】
また、動作選択信号ＯＰＳＥＬ０およびＯＰＳＥＬ３がすべて「１」のとき、このラスタオペレーション回路１３７は、入力されたデータＤｏｌｄおよびＤｎｅｗに関係なく、「１」の出力信号を出力する。
【０１１１】
なお、上記した動作選択信号ＯＰＳＥＬ０〜ＯＰＳＥＬ３の組合わせ以外は、具体的には表１に示されるようになっている。
【０１１２】
図６は、図１に示されたフレームバッファメモリにおける演算部２３の比較ユニット１４の全体構成を示すブロック図である。図６を参照して、この比較ユニット１４は、３２ビットのデータＤｎｅｗを３２ビットのデータＤｏｌｄと比較する一致比較回路４４１と、同様に３２ビットのデータＤｎｅｗを３２ビットのデータＤｏｌｄと比較する大小比較回路４５１とを備える。ここで、一致比較回路４４１は、３２個のＥＸ−ＯＲゲート４４３と、３２個のＡＮＤゲート４４４と、１個のＮＯＲゲート４４５とを備える。
【０１１３】
この比較ユニット１４はさらに、一致比較回路４４１における３２ビットのデータのうちマスクするデータを特定するためのマスクデータが設定可能な一致マスクレジスタ２５２を備える。一致マスクレジスタ２５２のいずれかのビットに「０」が設定されると、そのビットに対応する一致比較回路４４１のＡＮＤゲート４４４の出力は、対応するＥＸ−ＯＲゲート４４３の出力にかかわらずＬ（論理ロー）レベルになる。したがって、このビットに対応するＥＸ−ＯＲゲート４４３の出力信号はＮＯＲゲート４４５へ与えられない。このように、一致比較回路４４１においては一致マスクレジスタ２５２に設定されたマスクデータに応答して３２ビットのうちいずれかがマスクされる。
【０１１４】
大小比較回路４５１は、３２個のＡＮＤゲート４５３と、３２個のＡＮＤゲート４５４と、１個の大小比較器４５５とを備える。上記一致マスクレジスタ２５２と同様に、大小比較回路４５１においては、大小マスクレジスタ２５３に設定されたマスクデータに応答して３２ビットのうちいずれかがマスクされる。
【０１１５】
この比較ユニット１４はさらに、一致比較回路４４１の出力信号に応答してフラグ信号を生成する一致フラグコントローラ４４２と、大小比較回路４５１の出力信号に応答してフラグ信号を生成する大小フラグコントローラ４５２とを備える。
【０１１６】
一致フラグコントローラ４４２は、４つの動作モードを有する。第１の動作モードにおいては、データＤｎｅｗのうち有効なビットおよびＤｏｌｄのうち有効なビットが互いに一致するか否かにかかわらず常に「１」のフラグ信号が生成される。第２の動作モードにおいては、データＤｎｅｗのうち有効なビットおよびＤｏｌｄのうち有効なビットが互いに一致するか否かにかかわらず常に「０」のフラグ信号が生成される。第３の動作モードにおいては、データＤｎｅｗのうち有効なビットおよびＤｏｌｄのうち有効なビットが互いに一致する場合に「１」のフラグ信号が生成される。第４の動作モードにおいては、データＤｎｅｗのうち有効なビットおよびＤｏｌｄのうち有効なビットが互いに一致しない場合に「１」のフラグ信号が生成される。一致フラグコントローラ４４２の動作モードは、比較制御レジスタ２５５に設定されたデータによって決定される。
【０１１７】
大小比較コントローラ４５２は８つの動作モードを有する。第１の動作モードにおいては、データＤｎｅｗ″のうち有効なビットおよびＤｏｌｄ″のうち有効なビットの大小関係にかかわらず常に「１」のフラグ信号が生成される。第２の動作モードにおいては、データＤｎｅｗ″のうち有効なビットがデータＤｏｌｄ″のうち有効なビットよりも大きい場合に「１」のフラグ信号が生成される。第３の動作モードにおいては、データＤｎｅｗ″のうち有効なビットおよびＤｏｌｄ″のうち有効なビットが互いに等しい場合に「１」のフラグ信号が生成される。第４の動作モードにおいては、データＤｎｅｗ″のうち有効なビットがデータＤｏｌｄ″のうち有効なビット以上の場合に「１」のフラグ信号が生成される。第５の動作モードにおいては、データＤｎｅｗ″のうち有効なビットおよびＤｏｌｄ″のうち有効なビットの大小関係にかかわず常に「０」のフラグ信号が生成される。第６の動作モードにおいては、データＤｎｅｗ″のうち有効なビットがデータＤｏｌｄ″のうち有効なビット以下の場合に「１」のフラグ信号が生成される。第７の動作モードにおいては、データＤｎｅｗ″のうち有効なビットおよびデータＤｏｌｄ″のうち有効なビットが互いに一致しない場合に「１」のフラグ信号が生成される。第８の動作モードにおいては、データＤｎｅｗ″のうち有効なビットがデータＤｏｌｄ″のうち有効なビットよりも小さい場合に「１」のフラグ信号が生成される。この大小比較コントローラ４５２の動作モードは、比較制御レジスタ２５５に設定されたデータによって決定される。
【０１１８】
コントローラ４４２および４５２からのフラグ信号はともにＡＮＤゲート４６に与えられ、その論理積信号がフラグ出力信号ＰＡＳＳ−ＯＵＴとして出力される。
【０１１９】
この比較ユニット１４において、外部から供給されたデータＤｎｅｗ０〜Ｄｎｅｗ３１はマルチプレクサ４１を介して一致比較回路４４１および大小比較回路４５１の双方に与えられる。キャッシュメモリ１２から供給されたデータＤｏｌｄ０〜Ｄｏｌｄ３１は、一致比較回路４４１および大小比較回路４５１の双方に与えられる。
【０１２０】
また、必要に応じて、データＤｎｅｗ０〜Ｄｎｅｗ３１の代わりに一定データＫ０〜Ｋ３１がマルチプレクサ４１を介して一致比較回路４４１および大小比較回路４５１の双方に与えられる。データＤｎｅｗおよび一定データＫのいずれが供給されるかは、比較制御レジスタ２５５に設定されたデータによって決定される。この一定データＫ０〜Ｋ３１は、図３に示されたコンスタントソースレジスタ２５１から供給される。
【０１２１】
一致マスクレジスタ２５２に設定するためのマスクデータは、外部から供給されるデータＤｎｅｗと時分割されて供給される。大小マスクレジスタ２５３に設定するためのマスクデータも同様に、外部から供給されるデータＤｎｅｗと時分割されて供給される。
【０１２２】
次に、この実施例１によるフレームバッファメモリの動作を簡単に説明する。なお、このフレームバッファメモリは後述するようにパイプライン化されているが、以下ではパイプライン化されていないものとしてその動作を説明する。
【０１２３】
このフレームバッファメモリ１０においては、まずメインメモリ１１にディスプレイ上に表示するための画像データを書込む必要がある。メインメモリ１１に書込まれるべきデータは外部データＤＱ０〜ＤＱ３１として入力され、画素処理ユニット１３およびデータバス１９を介して一旦キャッシュメモリ１２にストアされる。キャッシュメモリ１２にストアされたデータはデータバス１７を介して、アドレス信号ＤＡＤによって指定されるメモリセルに書込まれる。このような動作がメインメモリ１１の全てのアドレスについて行なわれる。
【０１２４】
図７は、ディスプレイ上に表示される画面とメインメモリ１１のメモリ領域との対応関係を示す図である。図７に示されるように、１フレームは２５６個のページ群に分割される。１つのページ群はさらに４つのページに分割される。各ページ内のデータは、メインメモリ１１の対応するバンクに格納される。各ページはさらに４０個のブロックに分割される。各ブロックは８つのサブブロックに分割される。各頁を矩形としたことによりヒット率を向上させたグラフィックにおいては、隣接したデータを連続して書替えることが多い。たとえば四角形を描画する場合などである。このため、キャッシュメモリ上のデータは、ディスプレイ上の矩形ブロックに対応させるのが好ましい。１行単位でキャッシュメモリにデータをストアすると、縦方向に線を引く場合に、ＤＲＡＭおよびＳＡＭ間の転送が頻繁に行なわれなければならない。
【０１２５】
メインメモリ１１に書込まれたデータは、アドレス信号ＤＡＤに応答して２５６ビットごとにグローバルバス１７を介してキャッシュメモリ１２へ転送される。この２５６ビットのデータは、図７に示されたブロックに相当する。演算処理はサブブロック単位（１×４×８）で行なわれ、ＳＡＭへの転送は頁の１行単位（１×８０×８）で行なわれる。
【０１２６】
図８および図１０は、フレーム内の画像データとメインメモリのメモリ領域との対応関係を示す図である。図９は、図８に示されるように画像データが格納されている場合に、シリアルアクセスメモリ１５によってそのデータが読出されかつその読出されたデータがシリアルに出力される様子を示すタイミングチャートである。図１１は、図１０に示されるように画像データが格納されている場合に、シリアルアクセスメモリ１５によってそのデータが読出されかつその読出されたデータがシリアルに出力される様子を示すタイミングチャートである。１つのバンク（たとえばＡバンク）に隣接して同じバンクが配置されないように配列することによって、同じバンクを続けてアクセスしないようにされている。グラフィックスでは、ランダムにデータを書替えることは少なく、連続（隣接）したデータをアクセスする場合が多いため、上記の配列がスピード的に有効である。
【０１２７】
図９に示されるように、図８の場合は各バンクからデータがインタリーブされて出力されるので、その実行時間は、図１１に示されるようにデータがインタリーブされずに出力される場合よりも短くなる。縦に線を引くときがワーストケースとなる。
【０１２８】
この実施例１では図８に示されるようにデータが格納されているので、シリアルアクセスメモリ１５から高速にビデオ出力データＶＯが出力される。データは、Ａ：０，Ｂ：０，Ａ：１，Ｂ：１…，Ｃ：０，Ｄ：０，Ｃ：１，Ｄ：１…とマルチプレクサ４２によりインタリーブ出力される。
【０１２９】
メインメモリ１１に書込まれたデータは、アドレス信号ＤＡＤに応答して２５６ビットごと一度にデータバス１７を介してキャッシュメモリ１２へ転送される。
【０１３０】
キャッシュメモリ１２へ転送されたデータは、アドレス信号ＣＡＤに応答して３２ビットごと同時にデータバス１８を介して画素処理ユニット１３または比較ユニット１４へ転送される。
【０１３１】
一方、画素処理ユニット１３または比較ユニット１４には、新しい画像データＤＱ０〜ＤＱ３１が与えられる。画素処理ユニット１３においては、キャッシュメモリ１２から読出された古い画像データとこの新しい画像データＤＱ０〜３１とに基づいて、制御信号ＣＮＴ１によって指定された演算処理が行なわれる。また、比較ユニット１４においては、キャッシュメモリ１２から読出された古い画像データと新しい画像データＤＱ０〜ＤＱ３１とに基づいて、制御信号ＣＮＴ２によって指定された比較処理が行なわれる。
【０１３２】
ここで、画素処理ユニット１３においては、３次元グラフィックス処理の基本であるα−ブレンド処理、およびラスタオペレーションと呼ばれる画像データ間の論理演算処理が選択的に行なわれる。また、比較ユニット１４においては、ＣＲＴ上の奥行き情報を処理するＺコンペア処理が行なわれる。
【０１３３】
（１）  α−ブレンド処理
まず画素処理ユニット１３において、α−ブレンド処理が行なわれる場合について説明する。
【０１３４】
α−ブレンド処理は、３次元グラフィックスがＣＲＴ上に表示されるときにその透明感を表わすために行なわれる。α−ブレンド処理のための演算式は次の数２で表される。
【０１３５】
【数２】
2010044786.tif 000005
【０１３６】
ここで、ＯＵＴ（Ｒ）は実際にＣＲＴ上に表示されるべき画素中の赤の色信号成分の出力値を示し、ＯＵＴ（Ｇ）は実際にＣＲＴ上に表示されるべき画素中の緑の色信号成分の出力値を示し、ＯＵＴ（Ｂ）は実際にＣＲＴ上に表示されるべき画素中の青の色信号成分の出力値を示す。
【０１３７】
また、Ｄｎｅｗ（Ｒ）は新たにＣＲＴ上に表示されるべき画素中の赤の色信号成分の入力値を示し、Ｄｎｅｗ（Ｇ）は新たにＣＲＴ上に表示されるべき画素中の緑の色信号成分の入力値を示し、Ｄｎｅｗ（Ｂ）は新たにＣＲＴ上に表示されるべき画素中の青の色信号成分の入力値を示す。
【０１３８】
また、Ｄｏｌｄ（Ｒ）は既にＣＲＴ上に表示されている画素中の赤の色信号成分の入力値を示し、Ｄｏｌｄ（Ｇ）は既にＣＲＴ上に表示されている画素中の緑の色信号成分の入力値を示し、Ｄｏｌｄ（Ｂ）は既にＣＲＴ上に表示されている画素中の青の色信号成分の入力値を示す。
【０１３９】
αは既にＣＲＴ上に表示されている画面のデータＤｏｌｄと新たにＣＲＴ上に表示されるべき画面のデータＤｎｅｗとの混合率を示し、新たにＣＲＴ上に表示されるべき画面に既にＣＲＴ上に表示されている画面をどの程度混合するかを示す係数である。
【０１４０】
たとえばこの係数αが「０」のとき、ＲＧＢの各出力値ＯＵＴは新たにＣＲＴ上に表示されるべきデータＤｎｅｗに等しくなる。また、係数αが「１」のとき、ＲＧＢの各出力値ＯＵＴは既にＣＲＴ上に表示されているデータＤｏｌｄに等しくなる。ＲＧＢの各データが８ビットからなる場合は、１画素において約１６００万色（自然色）が表現され得る。
【０１４１】
次に、図４のブロック図を参照してα−ブレンド処理の動作を説明する。
画素処理ユニット１３においてα−ブレンド処理が行なわれるとき、入力ノード１３１には８ビットの係数αが与えられ、入力ノード１３２には既にＣＲＴ上に表示されている８ビットの画像データＤｏｌｄ〈Ｒ〉、Ｄｏｌｄ〈Ｇ〉またはＤｏｌｄ〈Ｂ〉が与えられる。この画像データＤｏｌｄはキャッシュメモリ１２から供給される。また、入力ノード１３３には（１−α）×Ｄｎｅｗで表されるデータが与えられる。このデータ（１−α）×Ｄｎｅｗは、外部ＩＣなどにおいて係数αおよびデータＤｎｅｗ〈Ｒ〉〈Ｇ〉〈Ｂ〉に基づいて演算処理により生成されたものである。したがって、入力ノード１３３には、Ｄｏｌｄの〈Ｒ〉，〈Ｇ〉，〈Ｂ〉のうち対応する１つが入力される。
【０１４２】
入力ノード１３１に与えられたデータαと、入力ノード１３２に与えられたデータＤｏｌｄとは、乗算器１３４によって乗算される。この乗算された結果データα×Ｄｏｌｄは（２×８）ビットからなるが、本実施例では各色成分を表わすビット数を８ビットとしているため、そのうち上位８ビットの結果データα×Ｄｏｌｄだけが加算器１３５に与えられる。下位８ビットは誤差として切り捨てるが、２進数なので、０捨１入を行なう。
【０１４３】
加算器１３５においては、乗算器１３４から与えられた結果データα×Ｄｏｌｄと、入力ノード１３３に与えられたデータ（１−α）×Ｄｎｅｗとが加算される。データの減算のため、外部から与えられる（１−α）Ｄｎｅｗは、「２」の補数をとることも可能である。
【０１４４】
加算器１３５からの結果データα×Ｄｏｌｄ＋（１−α）×Ｄｎｅｗの値がマイナスになるときは加算器１３５からクランプ回路１３６へアンダフローフラグ信号ＵＦが与えられる。また、加算器１３５からの結果データα×Ｄｏｌｄ＋（１−α）×Ｄｎｅｗの値が「２５５」を超えるときは、加算器１３５からクランプ回路１３６へオーバフローフラグ信号ＯＦが与えられる。
【０１４５】
クランプ回路１３６においては、アンダフローフラグ信号ＵＦが与えられたとき、加算器１３５からの結果データが強制的に「０」に設定され、オーバフローフラグ信号ＯＦが与えられたとき、加算器１３５からの結果データは強制的に「２５５」に設定される。すなわち、クランプ回路１３６は、加算器１３５からの結果データの範囲が「０〜２５５」以外のとき、「０」または「２５５」にクランプする。
【０１４６】
画素処理ユニット１３においてα−ブレンド処理が行なわれるとき、「１」の選択信号ＳＬがマルチプレクサ１３８に与えられるため、クランプ回路１３６からのデータが選択され、出力ノード１３９を介して出力される。
【０１４７】
（２）  ラスタオペレーション
次に、画素処理ユニット１３においてラスタオペレーションが行なわれる場合について説明する。
【０１４８】
この場合、入力ノード１３２には上記α−ブレンド処理の場合と同様に、既にＣＲＴ上に表示されているデータＤｏｌｄが与えられる。一方、入力ノード１３３には新たにＣＲＴ上に表示されるべきデータＤｎｅｗが与えられる。このデータＤｎｅｗは外部データＤＱ０〜ＤＱ３１として与えられたものである。
【０１４９】
これらのデータＤｏｌｄおよびＤｎｅｗはともにラスタオペレーション回路１３７へ与えられる。ラスタオペレーション回路１３７においては、これらのデータＤｏｌｄおよびＤｎｅｗに基づいて、動作選択信号ＯＰＳＥＬ０〜ＯＰＳＥＬ３によって指定された論理演算処理が行なわれる。動作選択信号ＯＰＳＥＬ０〜ＯＰＳＥＬ３と論理関数との関係は上記表１で既に示したとおりである。
【０１５０】
画素処理ユニット１３においてラスタオペレーションが行なわれるときは、「０」の選択信号ＳＬがマルチプレクサ１３８に与えられる。これにより、ラスタオペレーション回路１３７からの結果データが選択され、出力ノード１３９を介して外部に出力される。
【０１５１】
（３）  Ｚコンペア処理
次に、比較ユニット１４においてＺコンペア処理が行なわれる場合について説明する。
【０１５２】
一般に、３次元グラフィックスを表示する場合、各画素はＲ、Ｇ、Ｂ、α、Ｚからなる５つのデータを持っている。ここで、Ｒ、ＧおよびＢは色データを示し、αは上記α−ブレンド処理における混合率を示す。この混合率αは新しいデータＤｎｅｗにどの程度古いデータＤｏｌｄを混合するかを示すものであるから、透過率を示すものということもできる。さらに、Ｚは奥行き情報を示し、たとえばその値が大きいほど画面を見ている人から遠いことを表わし、その値が小さいほど画面を見ている人から近いことを表わす。
【０１５３】
図１２は、Ｚコンペア処理を説明するための模式図である。
図１２（Ａ）に示すようなＺデータ（以下「ＺＡ」と表わす）が予めメインメモリ１１にストアされているとし、図１２（Ｂ）に示すようなＺデータ（以下「ＺＢ」と表わすが外部データＤＱ０〜ＤＱ３１として与えられるとする。なお、Ｚデータは表示されない。
【０１５４】
メインメモリ１１にストアされているデータＺＡは、データバス１７を介してキャッシュメモリ１２へ読出される。キャッシュメモリ１２へ読出されたデータＺＡは、さらにデータバス１８を介して比較ユニット１４へ供給される。一方、外部から図１２（Ｂ）に示すようなデータＺＢが比較ユニット１４に供給される。
【０１５５】
この比較ユニット１４において、キャッシュメモリ１２から供給されたデータＺＡと、外部から供給されたデータＺＢとが画素ごとに順次比較される。
【０１５６】
キャッシュメモリ１２から供給されたデータＺＡが外部から供給されたデータＺＢよりも大きいときは、その外部から供給されたデータＺＢがキャッシュメモリ１２に書込まれる。一方、キャッシュメモリ１２から供給されたデータＺＡが外部から供給されたデータＺＢよりも小さいときは、キャッシュメモリ１２にストアされているデータＺＡはそのまま維持される。その結果はメインメモリ１１に書き戻される。
【０１５７】
以上のような処理が１画面のすべての画素について行なわれると、図１２（Ｃ）に示すように小さなＺ値を持つデータが優先的にメインメモリ１１に書込まれる。
【０１５８】
以上、Ｚ値の比較処理についてのみ説明したが、Ｒ，Ｇ，Ｂ，αなどの他のデータは、このフレームバッファメモリ１０のメインメモリ１１にストアされたり、あるいは他のフレームバッファメモリのメインメモリにストアされたりすることができる。
【０１５９】
また、これらＲ，Ｇ，Ｂ，αなどのデータもＺ値と同様にＺコンペア処理の結果に従ってメインメモリに既にストアされた古いデータと、外部から与えられる新しいデータの古いデータとの演算結果とのいずれかのデータが選択され、これによりメインメモリにおけるデータが更新される必要がある。そのため、比較ユニット１４のフラグ出力信号ＰＡＳＳ−ＯＵＴは外部に出力されている。このフラグ出力信号ＰＡＳＳ−ＯＵＴは他のフレームバッファメモリのキャッシュメモリへフラグ入力信号ＰＡＳＳ−ＩＮとして与えられる。したがって、このフレームバッファメモリ１０は他のフレームバッファメモリと連動して動作することができる。また、このように構成されたフレームバッファメモリ１０は単にＺコンペア処理を行なうＺバッファに対応できるだけでなく、ＲＯＰ／ブレンド処理を行なうカラーバッファにも対応することができるばかりでなく、表示画面のサイズに従ってメモリ領域の割付が自由にできる。ワンチップ内で色データとＺデータとを持つことも可能である。また、色データ処理はバイト単位（ＲＯＰ／ブレンドユニット単位）で設定することもできる。さらに、比較処理は色データのビットをマスクすることによって行なってもよい。
【０１６０】
したがって、このフレームバッファメモリ１０は非常に高いフレキシビリティを有するものとなる。
【０１６１】
（４）  ステンシル動作
ステンシル動作においては、たとえば、表示を書換えたいところのステンシルビットには「１」が設定され、表示を書換えたくないところには「０」が設定される。１画素を特定する３２ビットのデータのうち上位８ビットはこのようなステンシルデータを表わし、下位２４ビットは奥行き座標（Ｚデータ）を表わすものとし、上記図６に示された比較ユニット１４の動作を説明する。
【０１６２】
図６を参照して、一致比較回路４４１においては下位２４ビットがマスクされる。したがって、この一致比較回路４４１は上位８ビットのデータが互いに一致するか否かを判別する。一方、大小比較回路４５１においては上位８ビットがマスクされる。したがって、大小比較回路４５１は下位２４ビットのデータの大きさを比較する。
【０１６３】
８ビットのステンシルデータと２４ビットのＺデータとからなる３２ビットのデータＤｎｅｗおよびＤｏｌｄが、一致比較回路４４１および大小比較回路４５１に与えられる。一致比較回路４４１においては上位８ビットのステンシルデータのみが比較される。大小比較回路４５１においては下位２４ビットのＺデータのみが比較される。
【０１６４】
この場合、ステンシルデータが互いに一致すると、一致フラグコントローラ４４２から「１」のフラグ信号が出力される。一致フラグコントローラはデータＤｎｅｗがデータＤｏｌｄに等しいとき「１」のフラグ信号を出力し、大小比較フラグコントローラはデータＤｎｅｗよりもデータＤｏｌｄのほうが大きいとき「１」のフラグ信号を出力するように設定する。
【０１６５】
また、Ｄｎｅｗ内のＺデータがデータＤｏｌｄ内のＺデータよりも小さいと、大小フラグコントローラ４５２から「１」のフラグ信号が生成される。このとき、フラグ出力信号ＰＡＳＳ−ＯＵＴは「１」となり、キャッシュメモリのデータの書替えが必要なことを示す。
【０１６６】
（５）  カラーインデックス動作 
次に、１画素を表わす３２ビットのデータが、下位８ビットのカラーインデックスデータと上位２４ビットのＺデータとから構成される場合について図１を参照して説明する。ここで、８ビットのカラーインデックスデータは、予め定められた２５６色の中から１つを特定するためのものである。
【０１６７】
この場合はまず、ＲＯＰ／ブレンドユニット１５２，１５３および１５４が外部より入力されたデータＤＱ８〜ＤＱ３１を通過する状態にされる。キャッシュメモリ１２から読出されたカラーインデックスデータはＲＯＰ／ブレンドユニット１５１に与えられる。このＲＯＰ／ブレンドユニット１５１にはさらに外部からの８ビットのカラーインデックスデータＤＱ０〜ＤＱ７が与えられる。
【０１６８】
したがって、ＲＯＰ／ブレンドユニット１５１に与えられたカラーインデックスデータはたとえばラスタオペレーション処理がされるが、ＲＯＰ／ブレンドユニット１５２〜１５４に与えられた２４ビットの外部から与えられたＺデータはそのまま通過して出力される。
【０１６９】
一方、比較ユニット１４においては下位８ビットがマスクされる。したがって、上位２４ビットのＺデータのみがＺコンペア処理（一致比較および大小比較の両方を含む）される。ここで、新しいデータのほうが古いデータよりもディスプレイ上の手前にある場合は、比較ユニット１４から「１」のフラグ出力信号ＰＡＳＳ−ＯＵＴが出力される。制御信号入力端子２９は図示はされていないが電源電位にプルアップされているので、このフラグ出力信号ＰＡＳＳ−ＯＵＴは書込イネーブル信号ＷＥとしてキャッシュメモリ１２へ与えられる。したがって、α−ブレンド処理された８ビットのカラーインデックスデータと外部から供給された２４ビットのＺデータとが転送バス１９を介してキャッシュメモリに書込まれる。
【０１７０】
図１３に示されるように、この８ビットのカラーインデックスデータＣＩＸはフレームバッファメモリ１０からＲＡＭＤＡＣ（ランダム・アクセス・メモリ・デジタル・アナログ・コンバータ）５５に与えられる。ＲＡＭＤＡＣ５５においてそのカラーインデックスデータＣＩＸに応答して予めＲＡＭＤＡＣ内のルークアップテーブル中に格納された２５６種類の色の中から１つが選択される。
【０１７１】
以上のように、このフレームバッファメモリ１０はラスタオペレーションのみを行なったり、α−ブレンド処理のみを行なったり、Ｚコンペア処理のみを行なったり、あるいはその画素処理ユニット１３において色データの処理を行なうと同時に比較ユニット１４においてＺコンペア処理を行なうことができる。
【０１７２】
図１４は、このフレームバッファメモリ１０にどのような処理を行なわせるかを決定するための制御レジスタ群を示す図である。図１４を参照して、制御レジスタ群２５は、コンスタントソースレジスタ２５１と、一致マスクレジスタ２５２と、大小マスクレジスタ２５３と、ＲＯＰ／ブレンド制御レジスタ２５４と、比較制御レジスタ２５５とを含む。レジスタへの書込みは、外部から与えられるレジスタ書込オペレーションコードとアドレス信号ＲＡＤの組合わせによって指定するレジスタに書込まれる。
【０１７３】
次の表２は、制御レジスタ群２５に与えられるアドレス信号ＲＡＤとそのアドレス信号に応答して選択される制御レジスタとの対応関係を示す。たとえば、「０００００１」のアドレス信号ＲＡＤが与えられた場合は、コンスタントソースレジスタ２５１が選択される。
【０１７４】
【表２】
2010044786.tif 000006
【０１７５】
図１４を参照して、コンスタントソースレジスタ２５１がリセットされるときには、「０００００００００Ｈ」のデータが強制的に設定される。ここで、「Ｈ」はその前の数字が１６進数であることを示す。また、０〜３１ビットにはデータ入力端子２７から与えられた３２ビットのデータＤＱが設定される。３２〜３５ビットには４ビットのＤＸ端子に与えられるデータが設定される。ここで、ＤＸ端子は、第４の入力ノード（αが「１」を表わす）に対応する。ＤＱ２４〜３１は３５ビット目に対応し、ＤＱ１６〜２３は３４ビット目に対応し、ＤＱ８〜１５は３３ビット目に対応し、ＤＱ０〜７は３２ビット目に対応する。
【０１７６】
一致マスクレジスタ２５２がリセットされるときは、「００００００００Ｈ」のデータが強制的に設定される。その０〜３１ビットにはデータ入力端子２７に与えられた３２ビットのデータが設定される。ここで、各ビットの値が「０」の場合は対応するビットがマスクされ、各ビットの値が「１」のときは対応するビットがマスクされない。したがって、一致マスクレジスタ２５２がリセットされたときはすべてのビットがマスクされる。
【０１７７】
大小比較レジスタ２５３がリセットされるときは、「００００００００Ｈ」のデータが強制的に設定される。その他は、上記一致マスクレジスタ２５２と同様である。
【０１７８】
ＲＯＰ／ブレンド制御レジスタ２５４の第０〜第７ビットはＲＯＰ／ブレンドユニット１５１を制御する。第８〜第１５ビットはＲＯＰ／ブレンドユニット１５２を制御する。第１６〜第２３ビットはＲＯＰ／ブレンドユニット１５３を制御する。第２４〜第３１ビットはＲＯＰ／ブレンドユニット１５４を制御する。ＲＯＰ／ブレンド制御ユニット２４がリセットされるときには、「０３０３０３０３Ｈ」のデータが強制的に設定される。外部から入力されたデータが通過状態のモードに設定される。次の表３は各ユニットを制御する８ビットのデータの役割を示す。
【０１７９】
【表３】
2010044786.tif 000007
【０１８０】
比較制御レジスタ２５５はリセットされるときは、「００００００００Ｈ」のデータが強制的に設定される。第０〜第２ビットは大小フラグコントローラ４５２を制御する。第８および第９ビットは一致フラグコントローラ４４２を制御する。第１６ビットはデータ入力端子２７から供給されるデータＤＱかコンスタントソースレジスタ２５１にストアされている一定データＫかを選択する。次の表４は、第０〜第２，第８，第９および第１６ビットの役割を示す。
【０１８１】
【表４】
2010044786.tif 000008
【０１８２】
図１５は、パイプライン化された演算部を示す。なお、図中箱内の数字はパイプラインのステージ数を示す。図１６は、図１５のパイプライン化された演算部２３をさらに詳細に示すブロック図である。図１７は、図１６に示された４つのＲＯＰ−ブレンドユニットのみを示すブロック図である。図１８は、図１６に示された比較ユニット１４のみを示すブロック図である。
【０１８３】
図１５〜図１８から明らかなように、このフレームバッファメモリ１０は７つのパイプラインステージから構成される。各パイプラインステージの間にはパイプラインレジスタＰＲが設けられている。
【０１８４】
図１９は、図１７に示されたＲＯＰ／ブレンドユニットのパイプライン動作を示すタイミングチャートである。図１９を参照して、ＲＯＰ／ブレンドユニット１３による演算処理は第３〜第６ステージにおいて行なわれる。
【０１８５】
図２０は、図１８に示された比較ユニット１４のパイプライン動作を示すタイムチャートである。図２０を参照して、比較ユニット１４による比較動作は第３〜第６ステージにおいて行なわれる。
【０１８６】
上記のように、ＲＯＰ／ブレンドユニットにおける演算処理と比較ユニットにおける比較動作はともに４サイクルで行なわれるので、画素処理ユニット１３からの結果データは比較ユニット１４からの結果データと同時に出力される。
【０１８７】
この実施例１においては、占有面積が小さいにもかかわらず大量のデータを記憶できるメインメモリ１１が設けられているので、１フレームに相当する１０．５メガビットのデータすべてをこのメインメモリ１１にストアすることができる。このメインメモリ１１にストアされているデータは、３２ビットごとに外部から供給される３２ビットのデータと演算されるが、その演算対象となる３２ビットの８倍のデータが一旦キャッシュメモリ１２の８ユニットのうちの１ユニットにストアされる。すなわち、メインメモリ１１からキャッシュメモリ１２へ２５６ビットのデータがまとめて転送される。このキャッシュメモリ１２は記憶容量は小さいが、アクセス速度の速いＳＲＡＭで構成されているため、演算対象となる３２ビットのデータを高速で供給することができる。
【０１８８】
また、このフレームバッファメモリ１０はワンチップで構成され、その２５６ビットのデータを転送するためのデータバス１７が非常に長くなることもないため、データ転送速度が遅くなったり、あるいはデータを転送するときの消費電力が大きくなることもない。すなわち、この実施例１は、メインメモリが本来持っている「多ビットを同時にアクセスすることができる」という利点を十分に活用することができる。そのため、これら多ビットのデータをインタリーブして処理することにより、見かけ上メインメモリを高速に動作させることができる。
【０１８９】
この実施例１においては、４つのＲＯＰ／ブレンドユニット１５１〜１５４および比較ユニット１４Ａ〜１４Ｄは、８ビットデータ処理単位に分割されたユニット構造としている。また、メインメモリ１１が複数のバンクに分割されているため、ワード線およびビット線の長さを短くすることができる。ワード線およびビット線の長さが短いと、それらの持つ寄生容量が小さいため、メインメモリ１１Ａ〜１１Ｄのアクセス時間が短くなるとともに、キャッシュメモリ１２Ａ〜１２Ｄは高速に動作することができる。
【０１９０】
また、これらバンク数を増減することによってこのフレームバッファメモリ１０の機能を容易に拡張等することができる。そのため、種々のフレームバッファメモリを短時間で設計することができる。
【０１９１】
また、上記のようにキャッシュメモリ１２は１リード／１ライト／１リード・ライトの３ポート構成を取るため、演算部への読出し、演算結果の書込み、ならびにメインメモリ１１とのデータ転送を同時に実行することができる。また、キャッシュメモリ１２は、図示はされていないが、画素データを保持するブロック以外にキャッシュメモリ１２内にあるいずれのデータが新たに書込まれたものであるかを示すフラグデータをも保持するように構成されている。このフラグは、キャッシュメモリ１２に演算結果データの書込みを行なったとき、そのデータに対応するビットがセットされ、キャッシュメモリ１２からメインメモリ１１ヘデータを書き戻すとき、フラグビットがセットされているデータのみを書込み、フラグビットはリセットされているものはデータが書込まれない。これにより、不必要な書込バッファの動作を取除くことができ、消費電力を小さくすることができる。なお、このフラグによるメインメモリ１１への書込制御は外部制御信号によって指定することができる。このフラグのリセットは、データをメインメモリ１１からキャッシュメモリ１２へ転送したとき、あるいは外部からの制御信号によって行なわれる。
【０１９２】
［実施例２］
図２１は、この発明の実施例２によるフレームバッファメモリの全体構成を示すブロック図である。なお、図中同一符号で示される部分は同一または相当部分を示す。
【０１９３】
図２１を参照して、このフレームバッファメモリ３０は、メインメモリ１１と、２つのキャッシュメモリ３１Ａおよび３１Ｂと、画素処理ユニット１３と、比較ユニット１４と、シリアルアクセスメモリ（ＳＡＭ）１５と、コントローラ３２とを備える。これらはすべて１枚の半導体基板上に形成されている。
【０１９４】
このフレームバッファメモリ３０はさらに、メインメモリ１１から読出されたデータをキャッシュメモリ３１Ａおよび３１Ｂに分配して供給するデマルチプレクサ（ＤＭＵＸ）３３と、キャッシュメモリ３１Ａから読出されたデータとキャッシュメモリ３１Ｂから読出されたデータとを選択してメインメモリ１１に供給するマルチプレクサ（ＭＵＸ）３４とを備える。
【０１９５】
このフレームバッファメモリ３０はさらに、キャッシュメモリ３１Ａから読出されたデータとキャッシュメモリ３１Ｂから読出されたデータとを選択して画素処理ユニット１３に供給するマルチプレクサ３５と、画素処理ユニット１３からの結果データをレジスタファイル３１Ａおよび３１Ｂに分配して供給するデマルチプレクサ３６とを備える。マルチプレクサ３５からのデータは比較ユニット１４および外部へも供給される。
【０１９６】
キャッシュメモリ３１Ａにおいては、外部から供給されるアドレス信号ＲＦ１ＡＤに応答してデータが読出され、または書込まれる。キャッシュメモリ３１Ｂにおいては、アドレス信号ＡＦ２ＡＤに応答してデータが読出され、または書込まれる。比較ユニット１４の出力信号ＰＡＳＳ−ＯＵＴは外部に出力されるとともに、キャッシュメモリ３１Ａおよび３１Ｂに供給される。
【０１９７】
また、別のフレームバッファメモリにおける比較ユニットのフラグ出力信号はフラグ入力信号ＰＡＳＳ−ＩＮとして外部からキャッシュメモリ３１Ａおよび３１Ｂに供給される。コントローラ３２は、外部から供給される制御信号ＣＴに応答してメインメモリ１１、キャッシュレジスタ３１Ａおよび３１Ｂ、画素処理ユニット１３および比較ユニット１４など制御するための制御信号を生成するためのものである。
【０１９８】
次に、この実施例２によるフレームバッファメモリ３０の動作について説明する。
基本的な動作は上記実施例１と同様であるので、異なる動作だけを詳しく説明する。
【０１９９】
上記実施例１では、キャッシュメモリ２の機能としてリードモディファイライトが必要な場合がある。ここで、リードモディファイライトとは、同一アドレスに対してリード動作とライト動作とが同一マシンサイクル内に生じたときリード動作を行なった後ライト動作を行なうことである。同一マシンサイクル内でリード動作とライト動作とを行なうことは、キャッシュメモリ２が高速で動作する場合は非常に困難である。
【０２００】
これに対し、この実施例２においては、たとえばキャッシュメモリ３１Ａを読出動作だけに用い、キャッシュメモリ３１Ｂを書込動作だけに用いることによって、これらキャッシュメモリ３１Ａおよび３１Ｂの動作速度を低下させることなく、同一アドレス（つまりアドレス信号ＲＦ１ＡＤおよびＲＦ２ＡＤが同一）に対してリード動作とライト動作とが同一マシンサイクル内で行なわれ得る。
【０２０１】
また、キャッシュメモリ３１Ａをデータ処理に用い、キャッシュメモリ３１Ｂをメインメモリ１１とのデータ転送に用いることによって、いわゆるバンクインタリーブが可能となる。このことは、画素処理ユニット１３がさらに高速化される場合に問題となる、メインメモリ１１へのアクセス時間と画素処理ユニット１３の処理時間とのギャップを解消するためにも有効である。
【０２０２】
［実施例３］
図２２は、この発明の実施例３によるフレームバッファメモリ６０の全体構成を示すブロック図である。
【０２０３】
図２２を参照して、このフレームバッファメモリ６０は４つのマクロセルブロック６１Ａないし６１Ｄを備える。たとえばマクロセルブロック６１Ａは、メインメモリ１１Ａと、キャッシュメモリ１２Ａと、画素処理ユニット１３Ａと、比較ユニット１４Ａとを備える。他のマクロセルブロック６１Ｂないし６１Ｄも同様である。
【０２０４】
このフレームバッファメモリ６０はさらに、フラグ発生器６２を備える。フラグ発生器６２は、マクロセルブロック６１Ａないし６１Ｄにおける比較ユニットによる比較結果を示す４つのフラグ信号ＦＡないしＦＤに応答して１つのフラグ出力信号ＰＡＳＳ−ＯＵＴを生成するためのものである。
【０２０５】
図２３は、図２２に示されたマクロセルブロック６１Ａないし６１Ｄの比較ユニット１４Ａないし１４Ｄ（マクロセルブロック６１Ｂないし６１Ｄの比較ユニット１４Ｂないし１４Ｄは図２２に示されていない。）の構成をさらに詳細に示すブロック図である。
【０２０６】
図２３を参照して、各比較ユニット１４Ａないし１４Ｄは、８ビットの比較回路６４Ａ〜６４Ｄと、マルチプレクサ（ＭＵＸ）６５Ａ〜６５Ｄおよび６６Ａ〜６６Ｄと、インバータ６７Ａ〜６７Ｄおよび６８Ａ〜６８Ｄとを備える。
【０２０７】
比較回路６４Ａ〜６４Ｄは、８ビットの入力データＡ２４〜３１と８ビットの入力データＢ２４〜３１とを比較するためのものである。比較ユニット１４Ａにおけるマルチプレクサ６５Ａの出力信号は、インバータ６７Ａを介して比較ユニット１４Ｂにおけるマルチプレクサ６５Ｂおよび６６Ｂに与えられる。比較ユニット１４Ｂにおけるマルチプレクサ６５Ｂの出力信号は、インバータ６７Ｂを介して比較ユニット１４Ｃにおけるマルチプレクサ６５Ｃおよび６６Ｃに与えられる。比較ユニット１４Ｃにおけるマルチプレクサ６５Ｃの出力信号は、インバータ６７Ｃを介して比較ユニット１４Ｄにおけるマルチプレクサ６５Ｄおよび６６Ｄに与えられる。
【０２０８】
各比較ユニット１４Ａ〜１４Ｄにおけるマルチプレクサ６６Ａ〜６６Ｄの出力信号は、１つの４入力ＮＡＮＤゲート６９に与えられる。このＮＡＮＤゲート６９の出力信号ＤＦＬＡＧはフラグ発生器６２に与えられる。また、比較ユニット１４Ｄにおけるマルチプレクサ６５Ｄの出力信号は、インバータ６７Ｄを介してフラグ信号ＥＦＬＡＧとしてフラグ発生器６２に与えられる。
【０２０９】
図２４は、図２３に示された比較回路６４Ａの構成をさらに詳細に示すブロック図である。なお、他の比較回路６４Ｂないし６４Ｄもこの比較回路６４Ａと同様に構成されている。
【０２１０】
図９を参照して、この比較回路６４Ａは、４ビットの比較回路６４１Ａおよび６４１Ｂと、２入力ＮＯＲゲート６４２と、マルチプレクサ６４３と、インバータ６４４とを備える。
【０２１１】
比較回路６４１Ａは、１ビットの比較回路６４２Ａないし６４５Ａと、４入力ＮＯＲゲート６４６Ａと、４入力ＮＡＮＤゲート６４７Ａとを備える。各比較回路６４２Ａ〜６４５Ａ、１ビットの入力データＡ２８〜Ａ３１と、１ビットの入力データＢ２８〜Ｂ３１と比較して出力信号ＤＯおよびＢＯを生成する。各比較回路６４２Ａ〜６４５Ａの一方の出力信号ＤＯはＮＯＲゲート６４６Ａに入力される。各比較回路６４２Ａの他方の出力信号ＰＯはＮＡＮＤゲート６４７Ａに入力される。比較回路６４１Ｂも上記比較回路６４１Ａと同様に構成されている。
【０２１２】
各比較回路６４１ＡにおけるＮＯＲゲート６４６Ａの出力信号はマルチプレクサの一方に入力され、比較回路６４１ＢにおけるＮＯＲゲート（図示せず）の出力信号はマルチプレクサ６４３の他方に入力される。
【０２１３】
比較回路６４１ＡにおけるＮＡＮＤゲート６４７Ａの出力信号はＮＯＲゲート６４２の一方に入力され、比較回路６４１ＢにおけるＮＡＮＤゲート（図示せず）の出力信号はＮＯＲゲート６４２の他方に入力される。ＮＯＲゲート６４２の出力信号はフラグ信号ＥＦＬＧとして出力される。マルチプレクサ６４３の出力信号はインバータ６４４を介してフラグ信号ＤＦＬＧとして出力される。
【０２１４】
図２５は、図２４に示された比較回路６４３Ａまたは６４５Ａの構成をさらに詳細に示す回路図である。
【０２１５】
図２５を参照して、この比較回路６４３Ａまたは６４５Ａは、インバータ６５０および６５１と、ＮチャネルＭＯＳトランジスタ６５２と、ＮチャネルＭＯＳトランジスタおよびＰチャネルＭＯＳトランジスタからなる転送ゲート６５３ないし６５５と、インバータ６５６ないし６５９と、ＰチャネルＭＯＳトランジスタ６６０と、ＮチャネルＭＯＳトランジスタおよびＰチャネルＭＯＳトランジスタからなる転送ゲート６６１と、ＰチャネルＭＯＳトランジスタ６６２と、ＮチャネルＭＯＳトランジスタおよびＰチャネルＭＯＳトランジスタからなる転送ゲート６６３と、インバータ６６４ないし６６６とを備える。
【０２１６】
入力信号ＡＩは転送ゲート６５３および６５４に供給されるとともに、インバータ６５１を介して転送ゲート６５５に供給される。入力信号ＢＩはトランジスタ６５２のゲート電極および転送ゲート６５３を構成するＰチャネルＭＯＳトランジスタのゲート電極に供給されるとともに、転送ゲート６５４を構成するＮチャネルＭＯＳトランジスタのゲート電極および転送ゲート６５５を構成するＰチャネルＭＯＳトランジスタのゲート電極に供給される。この入力信号ＢＩはまた、インバータ６５０を介して転送ゲート６５３を構成するＮチャネルＭＯＳトランジスタのゲート電極および転送ゲート６５４を構成するＰチャネルＭＯＳトランジスタのゲート電極に供給されるとともに、転送ゲート６５５を構成するＮチャネルＭＯＳトランジスタのゲート電極に供給される。
【０２１７】
トランジスタ６５２および転送ゲート６５３の出力信号は、インバータ６５７を介して転送ゲート６６１に供給される。転送ゲート６５４および６５５の出力信号は、インバータ６５８を介して転送ゲート６６３を構成するＰチャネルＭＯＳトランジスタのゲート電極に供給される。さらに、このインバータ６５８の出力信号は、インバータ６５９を介してトランジスタ６６２のゲート電極および転送ゲート６６３を構成するＮチャネルＭＯＳトランジスタのゲート電極に供給される。このインバータ６５８の出力信号はまた、インバータ６６６を介して出力信号ＰＯとして出力される。
【０２１８】
図２４に示されている隣接する比較回路６４２Ａまたは６４４Ａからの出力信号ＥＯＢ（図２５のＦＩＢ）は、転送ゲート６６１を構成するＰチャネルＭＯＳトランジスタのゲート電極に供給されるとともに転送ゲート６６３に供給される。この信号ＥＩＢはまた、インバータ６５６を介してトランジスタ６６０のゲート電極および転送ゲート６６１を構成するＮチャネルＭＯＳトランジスタのゲート電極に供給される。トランジスタ６６０および転送ゲート６６１の出力信号はインバータ６６４を介して出力信号ＤＯとして出力される。トランジスタ６６２および転送ゲート６６３の出力信号はインバータ６６５を介して出力信号ＥＯとして出力される。
【０２１９】
次の表５は、この比較回路６４３Ａまたは６４５Ａの動作を示す真理値表である。
【０２２０】
【表５】
2010044786.tif 000009
【０２２１】
図２６は、図２４に示された比較回路６４２Ａまたは６４４Ａの構成をさらに詳細に示す回路図である。
【０２２２】
図２６を参照して、この比較回路６４２Ａまたは６４４Ａは、上記比較回路６４３Ａまたは６４５Ａと同様に、インバータ６５０および６５１と、トランジスタ６５２と、転送ゲート６５３ないし６５５と、インバータ６５７ないし６５９および６６６とを備える。この比較回路６４２Ａまたは６４４Ａは、上記比較器６４３Ａまたは６４５Ａと異なり、インバータ６６７と、ＰチャネルＭＯＳトランジスタ６６８と、転送ゲート６６９および６７０と、ＮチャネルＭＯＳトランジスタ６７１と、インバータ６７２および６７３とを備える。
【０２２３】
トランジスタ６５２および転送ゲート６５３の出力信号は、インバータ６５７を介して転送ゲート６６９に供給される。入力信号ＥＩは、トランジスタ６６８のゲート電極および転送ゲート６６９を構成するＮチャネルＭＯＳトランジスタのゲート電極に供給されるとともに、転送ゲート６７０に供給される。この入力信号ＥＩはまたは、インバータ６６７を介して転送ゲート６６９を構成するＰチャネルＭＯＳトランジスタのゲート電極に供給される。
【０２２４】
トランジスタ６６８および転送ゲート６６９の出力信号は、インバータ６７２を介して出力信号ＤＯとして出力される。インバータ６５８の出力信号は転送ゲート６７０を構成するＰチャネルＭＯＳトランジスタのゲート電極およびトランジスタ６７１のゲート電極に供給される。このインバータ６５８の出力信号はまた、インバータ６５９を介して転送ゲート６７０を構成するＮチャネルＭＯＳトランジスタのゲート電極に供給されるとともに、インバータ６６６を介して出力信号ＰＯとして出力される。転送ゲート６７０およびトランジスタ６７１の出力信号は、インバータ６７３を介して出力信号ＥＯＢとして出力される。
【０２２５】
次の表６は、この比較回路６４３Ａまたは６４５Ａの動作を示す真理値表である。
【０２２６】
【表６】
2010044786.tif 000010
【０２２７】
図２７は、図２２に示されたフラグ発生器６２の構成を示す回路図である。
図２７を参照して、このフラグ発生器６２は、インバータ６２１および６２２と、ＮＡＮＤゲート６２３および６２５と、インバータ６２４および６２６とを備える。
【０２２８】
この実施例３において、比較回路１４Ａ〜１４Ｄは、２つの３２ビットの入力データＡ０〜３１およびＢ０〜３１を比較してそれらのいずれが大きいか、またはそれが一致するか否かを判定する。また、比較回路１４Ａ〜１４Ｄは、３２ビットの入力データを８ビットずつ４つに分割してそれらを並列に処理することができるので、高速で比較処理を行なうことができる。
【０２２９】
さらに、８ビットの比較回路１４Ａ〜１４Ｄの構成はマルチプレクサの入力信号と選択信号のみ異なるだけであるため、設計時間は大幅に短縮される。
【０２３０】
さらに、８ビットの比較回路６４Ａは２つの４ビットの比較回路６４１Ａおよび６４１Ｂから構成され、これら２つの４ビットの比較回路６４１Ａおよび６４１Ｂの構成も全く同一であるため、設計時間はさらに大幅に短縮される。また、これら４ビットの比較回路６４１Ａおよび６４１Ｂも並列に処理を行なうことができるので、処理時間がさらに高速化される。
【０２３１】
次に、図２５に示された１ビットの比較回路６４３Ａまたは６４５Ａの動作について説明する。
【０２３２】
図２５において、入力データＡＩおよびＢＩは、比較されるべき入力データのうちの第ｍビット目のデータである。入力信号ＥＩＢは、上位ビットが比較された結果、第（ｍ＋１）ビット目の入力データＡＩ（ｍ＋１）が第（ｍ＋１）ビット目の入力データＢＩ（ｍ＋１）に等しければ「０」にセットされ、入力データＡＩ（ｍ＋１）が入力データＢＩ（ｍ＋１）に等しくなければ「１」にセットされる。入力信号ＢＩＢが「０」のときだけ入力データＡＩ（ｍ）およびＢＩ（ｍ）の比較結果が有効となり、入力信号ＥＩＢが「１」のときは、より上位ビットが比較されることによって入力データＡＩおよびＢＩの大小は決定されているため、下位ビットの判定結果は無効となる。すなわち、入力信号ＥＩＢが「１」のとき、入力データＡＩ（ｍ）ＢＩ（ｍ）に関係なく、出力信号ＤＯは「０」となる。
【０２３３】
また、入力データＡＩ（ｍ）が入力データＢＩ（ｍ）に等しいとき、出力信号ＤＯは「０」となり、出力信号ＥＯは「１」となる。また、入力データＡＩ（ｍ）が入力データＢＩ（ｍ）よりも大きいとき、出力信号ＤＯは「１」となり、出力信号ＥＯは「０」となる。さらに、入力データＡＩ（ｍ）が入力データＢＩ（ｍ）よりも小さいとき、出力信号ＤＯは「０」となり、出力信号ＥＯは「０」となる。
【０２３４】
入力信号ＥＩＢが「０」のとき、出力信号ＤＯおよびＥＯの値に基づいて、入力データＡＩ（ｍ）およびＢＩ（ｍ）の大小を比較した結果を知ることができる。このように、大小比較を行なう場合、上位ビットから順に比較が行なわれる。したがって、入力データＡＩが入力データＢＩに等しいことが判明するのに最も時間がかかる。そのため、入力データＡＩが入力データＢＩに等しい場合に、出力信号ＰＯを採用することによって処理時間が短縮される。
【０２３５】
この出力信号ＰＯは、入力データＡＩ（ｍ）が入力データＢＩ（ｍ）に等しいとき、「１」にセットされるが、この出力信号ＰＯは出力信号ＥＯに比べて通過するゲートの数が少ないため、その少ない分だけ早く確定する。出力信号ＰＯは入力データＡＩ（ｍ）およびＢＩ（ｍ）という２つの信号の値によってのみ決定されるため、上位側ビットの状態を知る必要がなく、すべてのビットは同時に確定される。そのため、その出力信号ＰＯが「１」にセットされているビットでは、その値が等しいという情報が得られる。
【０２３６】
図２６に示される１ビットの比較回路６４２Ａまたは６４４Ａは、図２６に示される１ビットの比較回路６４３Ａまたは６４５Ａとペアで用いられる。図２５に示される比較回路６４３Ａまたは６４５Ａは正論理の出力信号ＥＯを出力するため、この比較回路６４２Ａまたは６４４Ａには上記入力信号ＥＩＢの代わりに正論理の入力信号ＥＩが入力され、上記出力信号ＥＯの反転信号である負論理の出力信号ＥＯＢが出力される。
【０２３７】
このように、図２５に示された比較回路６４３Ａまたは６４５Ａと図２６に示された比較回路６４２Ａまたは６４４Ａとを交互に用いることによって、出力信号ＥＯの伝達経路上にインバータを挿入することを回避することができる。これは前述のように、出力信号ＥＯの伝達経路がこの比較回路６４２Ａまたは６４４Ａのクリティカル経路だからである。
【０２３８】
なお、図２６に示された比較回路６４２Ａまたは６４４Ａの動作は、図２５に示された比較回路６４３Ａまたは６４５Ａの動作と基本的には同一である。
【０２３９】
次に、図２４に示された４ビットの比較回路６４１Ａの動作について説明する。今、入力データＡ２８〜３１が入力データＢ２８〜３１に等しいとき、比較回路６４２Ａないし６４５Ａの出力信号ＰＯはすべて「１」となる。したがって、これらの出力信号ＰＯが入力されるＮＡＮＤゲート６４７Ａは「０」を出力する。
【０２４０】
このとき、入力データＡ２４〜２７が入力データＢ２４〜２７に等しければ、ＮＯＲゲート６４２の入力信号がともに「０」となるため、フラグ信号ＥＦＬＧは「１」にセットされる。そのため、図８に示されるマルチプレクサ６５Ａにおいて「１」が選択されて出力され、比較回路１４Ｂにおけるマルチプレクサ６６Ｂに与えられる。したがって、さらに下位８ビットの入力データＡ１６〜２３およびＢ１６〜２３が比較された結果であるフラグ信号ＤＦＬＡＧが、マルチプレクサ６６Ｂによって選択される。
【０２４１】
もしも入力データＤ２４〜３１が入力データＢ２４〜３１に等しくなく、フラグ信号ＥＦＬＡＧが「０」のときは、マルチプレクサ６５Ａは「０」を出力する。そのため、マルチプレクサ６６Ｂは「０」を選択して出力するので、入力データＤ１６〜２３およびＢ１６〜２３の比較結果は無効となる。このように、入力データの上位ビットで既にいずれが大きいかが判明したときは、速やかに最終的な出力信号であるフラグ信号（４入力ＮＡＮＤ６９の出力）ＤＦＬＡＧが出力される。
【０２４２】
もしも比較回路６４５Ａの出力信号ＥＯが「１」であれば、入力データＡ２８〜３１は入力データＢ２８〜３１に等しいため、マルチプレクサ６４３は下位４ビットの比較回路６４１ＢにおけるＮＯＲゲートの出力信号を選択して出力する。
【０２４３】
次に、図２７および図４２に示される３２ビットの比較回路１４Ａ〜１４Ｄの動作について説明する。
【０２４４】
いま、入力データＡ２４〜３１が入力データＢ２４〜３１に等しければ、マルチプレクサ６５Ａは「１」を選択して出力する。そのため、マルチプレクサ６６Ｂは入力データＡ１６〜２３およびＢ１６〜２３の比較結果であるフラグ信号ＤＦＬＡＧ（比較回路６４Ｂの出力）を選択して出力する。
【０２４５】
ここで、入力データＡ１６〜２３が入力データＢ１６〜２３よりも大きいとすると、マルチプレクサ６６Ｂの出力信号は「１」となり、ＮＡＮＤゲート６９の出力信号ＤＦＬＡＧは「１」となる。さらに、８ビットの比較回路６４Ｂのフラグ信号ＥＦＬＡＧは「０」となるため、マルチプレクサ６５Ｂは「０」を選択して出力する。したがって、マルチプレクサ６６Ｃおよび６６Ｄは「０」を選択して出力する。これにより、インバータ６８Ｃおよび６８Ｄの出力信号は「１」となり、またフラグ信号ＥＦＬＡＧは「０」となる。
【０２４６】
この実施例３において重要なことは、データが４ビット単位および８ビット単位で並列に処理されるという点である。これにより、３２ビットのデータの比較処理は大幅に高速化される。さらに、これら比較回路の構成は規則的であるため、回路設計および／またはレイアウト設計のための時間を大幅に短縮することができる。
【０２４７】
［実施例４］
図２８は、この発明の実施例４によるフレームバッファメモリにおける画素処理ユニット１３のＲＯＰ／ブレンドユニット１５１の構成を示すブロック図である。画素処理ユニット１３の他のＲＯＰ／ブレンドユニット１５２〜１５４もＲＯＰ／ブレンドユニット１５１と同様の構成である。
【０２４８】
図２８を参照して、このＲＯＰ／ブレンドユニット１５１は、α−ブレンド処理における定数αを入力するための入力ノード２０１と、現在画面に表示されている画像データＤｏｌｄを入力するための入力ノード２０２と、次に画面に表示されるべきデータＤｎｅｗを入力するための入力ノード２０３とを備える。
【０２４９】
このＲＯＰ／ブレンドユニット１５１はさらに、算術論理演算器（ＡＬＵ）２０４と、乗算器２０５と、算術演算器（ＡＵ）２０６と、クランプ回路２０７と、マルチプレクサ２０８とを備える。
【０２５０】
算術論理演算器２０４は、入力ノード２０２から与えられたデータＤｏｌｄから入力ノード２０３から与えられたデータＤｎｅｗを減算するか、またはこれらデータＤｏｌｄおよびＤｎｅｗに基づいてラスタオペレーションを行なう。
【０２５１】
乗算器２０５は、算術論理演算器２０４の結果データと、入力ノード２０１から与えられた係数データαとを乗算する。算術演算器２０６は、乗算器２０５の結果データα×（Ｄｏｌｄ−Ｄｎｅｗ）と、入力ノード２０３から与えられたデータＤｎｅｗとを加算する。クランプ回路２０７が算術演算器２０６がオーバフローまたはアンダフローを起こしたとき、算術演算器２０６の結果データを強制的に所定の値にクランプする。
【０２５２】
マルチプレクサ２０８は選択信号ＳＬに応答して算術論理演算器２０４の結果データか、またはクランプ回路２０７の出力データのいずれかを選択して出力ノード２０９を介して出力する。
【０２５３】
この実施例４によるＲＯＰ／ブレンドユニット１５１は、上記数２で表されるα−ブレンド処理を行なうことができる。すなわち、上記数２は、次の数３のように変形することができる。
【０２５４】
【数３】
2010044786.tif 000011
【０２５５】
この実施例４によるＲＯＰ／ブレンドユニット１５１は、上記数３に従ってα−ブレンド処理を行なうことができる。すなわち、このＲＯＰ／ブレンドユニット１５１においては、１つの乗算器２０５が設けられているだけであるが、完全なα−ブレンド処理が行なわれる。
【０２５６】
また、この実施例４によれば、上記実施例１のように外部ＩＣなどによって予め演算処理されたデータ（１−α）×Ｄｎｅｗを与えなくても、完全なα−ブレンド処理が行なわれる。実施例４の回路によれば、ＡＬＵ２０４にＲＯＰ処理に必要な論理演算機能を持たせているので、ＲＯＰ処理も行なうことが可能である。
【０２５７】
［実施例５］
図２９は、この発明の実施例５によるフレームバッファメモリにおけるＲＯＰ／ブレンドユニットの構成を示すブロック図である。
【０２５８】
図２９を参照して、このＲＯＰ／ブレンドユニット２２は、図４に示されたＲＯＰ／ブレンドユニット１５１が改良されたものである。このＲＯＰ／ブレンドユニット１５１が上記ＲＯＰ／ブレンドユニット１５１と異なるところは、入力ノード２２１にα−ブレンド処理における８ビットの係数αに１ビットのデータを加えたデータ＊αが与えられている点と、マルチプレクサ２２２を備えている点である。マルチプレクサ２２２は、係数αに追加された１ビットの２値信号ＣＮに応答して乗算器１３４の結果データおよび入力ノード１３２のデータＤｏｌｄを選択して出力する。
【０２５９】
一般に、グラフィックス処理ＬＳＩにおいて画素データは固定小数点で表される。そのため、α−ブレンド処理を行なう場合において、次の新しい画像データＤｎｅｗを全くブレンドせず、現在の古い画像データＤｏｌｄをそのまま維持したいとき、つまり係数αを「１」（１０進法）としたいとき、演算誤差が発生するという問題があった。たとえばＮビットでα＝１（１０進法）を表わすと、実際の係数αは１−１／２N となる。したがって、α＝１であっても乗算器１３４の出力データはＤｏｌｄにはならず、古い画像データＤｏｌｄをそのまま維持することができない。
【０２６０】
この実施例５による画素処理ユニット３２は、少ないハードウェアの追加によって、α＝１のときに上述のようなＤｏｌｄの変化を起こすことなく、α−ブレンド処理を行なうことができ、色の劣化を防ぐことができる。
【０２６１】
入力ノード２２１から入力される係数データ＊αは、その最上位に１ビットの維持データＣと、その下位側に８ビットの係数データαとを備える。最上位ビット（ＭＳＢ）が「１」（２進法）となるのは、係数αが「１」（１０進法）のときだけであり、このとき下位側の８ビットはすべて「０」とみなし無視される。一方、係数αが「１」（１０進法）よりも小さいときは、ＭＳＢは「０」となり、下位側の８ビットは係数αの値を表わす。
【０２６２】
この係数データ＊αのＭＳＢである維持データＣＮは、マルチプレクサ２２２へ与えられる。この維持データＣＮが「１」のとき、入力ノード１３２からの古い画像データＤｏｌｄが選択されて出力される。したがって、古い画像データＤｏｌｄがそのまま出力される。
【０２６３】
なお、維持データが「０」のときは、乗算器１３４の結果データが選択されて出力されるため、上記実施例１と同様に、通常通りα−ブレンド処理が行なわれる。
【０２６４】
［実施例６］
図３０は、この発明の実施例６によるフレームバッファメモリにおけるＲＯＰ／ブレンドユニットの構成を示すブロック図である。この実施例６によるＲＯＰ／ブレンドユニット１５１は、上記実施例４によるＲＯＰ／ブレンドユニット１５１が改良されたものである。
【０２６５】
図３０を参照して、この画素処理ユニット１５１は、上記実施例４と同様に、算術論理演算器２０４と、乗算器２０５と、算術演算器２０６と、クランプ回路２０７と、マルチプレクサ２０８とを備え、さらに上記実施例４と異なりマルチプレクサ２４２を備える。
【０２６６】
すなわち、この実施例６が上記実施例４と異なるところは、入力ノード２４１に、ブレンド処理における係数データαに１ビットの維持データＣＮが追加された係数データ＊αが入力されている点と、この維持データＣＮに応答してマルチプレクサ２４２が乗算器２０５の結果データと算術論理演算器２０４の結果データとを選択して算術演算器２０６へ供給している点である。
【０２６７】
上記実施例５と同様に、係数αが「１」（１０進法）のとき、「１」のＭＳＢを持つ係数データ＊αが入力ノード２４１に与えられる。この係数データ＊αのＭＳＢは維持データＣＮとしてマルチプレクサ２４２へ供給される。マルチプレクサ２４２は、維持データＣＮが「１」であるため、算術論理演算器２０４の結果データを選択して算術演算器２０６へ供給する。したがって、データＤｎｅｗの値によらず、加算器２０６の出力は古い画像データＤｏｌｄがそのまま出力される。
【０２６８】
なお、係数データαが「１」（１０進法）よりも小さいときは、その係数データ＊αのＭＳＢは「０」となるため、「０」の維持データＣＮがマルチプレクサ２４２へ供給される。したがってマルチプレクサ２４２は乗算器２０５の結果データを選択して算術演算器２０６へ供給するので、上記実施例４と同様に、通常通りα−ブレンド処理が行なわれる。
【０２６９】
［実施例７］
図３１は、この発明の実施例７による画像記憶処理システムの全体構成を示すブロック図である。図３１を参照して、この画像記憶処理システムは２つのフレームバッファメモリ１０，７０を備える。
【０２７０】
この画像記憶処理システムは、上記実施例１によるフレームバッファメモリを２つ用いて画素当たり６４ビットのデータを処理するものである。フレームバッファメモリ１０のデータ入力端子２７には、３２ビットのカラーデータＣＤＱ０〜ＣＤＱ３１が与えられる。このカラーデータＣＤＱは、たとえば８ビットのＲ（赤）データと８ビットのＧ（緑）データと８ビットのＢ（青）データと８ビットのα（透過係数）データとから構成される。一方、フレームバッファメモリ７０のデータ入力端子２７には、３２ビットのＺデータＺＤＱ０〜ＺＤＱ３１が与えられる。
【０２７１】
上記のように２つのフレームバッファメモリのうち一方をカラーデータの処理専用に用い、他方をＺデータの処理専用に用いる場合は、図３１および図３２に示されるように、フレームバッファメモリ７０の制御信号出力端子２８はフレームバッファメモリ１０の制御信号入力端子２９に接続され、フレームバッファメモリ１０および７０のキャッシュメモリの書込みを制御する。フレームバッファメモリ７０の制御信号入力端子２９は電源電位にプルアップされる。また、双方のメインメモリ１１には同一のアドレス信号ＤＡＤが与えられ、フレームバッファメモリ１０，７０の同じＤＲＡＭのアドレスに１つのピクセルに対応するデータが格納される。双方のコントローラ１６には同一のクロック信号ＣＬＫが与えられる。
【０２７２】
また、フレームバッファメモリ１０の制御レジスタ群２５には所定のデータが与えられ、それによりこのフレームバッファメモリ１０はカラーデータの処理専用に設定される。具体的には、比較ユニット１４からのフラグ出力信号ＰＡＳＳ−ＯＵＴが「１」に固定される。さらにＲＯＰ／ブレンドユニットの動作モードが設定される。一方、フレームバッファメモリ７０の制御レジスタ群２５にも所定データＲＡＤが与えられ、それによりこのフレームバッファメモリ７０はＺデータの処理専用に設定される。具体的には、４つのＲＯＰ／ブレンドユニット１５１〜１５４のすべてが与えられたデータを通過させるように設定される。
【０２７３】
次の表７はフラグ入力信号ＰＡＳＳ−ＩＮおよびフラグ出力信号ＰＡＳＳ−ＯＵＴの真理値表を示す。
【０２７４】
【表７】
2010044786.tif 000012
【０２７５】
上記の表７を参照して、フレームバッファメモリ１０においては「１」のフラグ出力信号ＰＡＳＳ−ＯＵＴがＡＮＤゲート２６に与えられているので、フレームバッファメモリ７０から供給されるフラグ入力信号ＰＡＳＳ−ＩＮが「１」のときキャッシュメモリ１２は書込可能になり、そのフラグ入力信号ＰＡＳＳ−ＩＮが「０」のときそのキャッシュメモリ１２は書込不能になる。
【０２７６】
一方、フレームバッファメモリ７０においては、「１」のフラグ入力信号ＰＡＳＳ−ＩＮがＡＮＤゲート２６に与えられているので、比較ユニット１４からのフラグ出力信号ＰＡＳＳ−ＯＵＴが「１」のときキャッシュメモリ１２は書込可能になり、そのフラグ出力信号ＰＡＳＳ−ＯＵＴが「０」のときそのキャッシュメモリ１２は書込不能になる。
【０２７７】
フレームバッファメモリ１０のデータ入力端子２７に与えられた３２ビットのカラーデータＣＤＱ０〜ＣＤＱ３１は、データバス２１を介してＲＯＰ／ブレンドユニット１５１〜１５４および比較ユニット１４に与えられる。一方、フレームバッファメモリ７０において、キャッシュメモリ１２から読出された３２ビットのカラーデータはデータバス１８を介して比較ユニット１４に与えられる。外部から与えられたＺデータＺＤＱ０〜ＺＤＱ３１はＲＯＰ／ブレンドユニット１５１〜１５４にも与えられるが、予め制御レジスタ群２５に設定された情報に従って何らの処理もされずに通り抜ける。
【０２７８】
フレームバッファ７０内の比較ユニット１４においてはキャッシュメモリ１２から与えられた３２ビットのＺデータと外部から与えられた３２ビットのＺデータＺＤＱ０〜ＺＤＱ３１とが比較される。ここで、現在表示されている画面のほうが次に表示される画面よりもディスプレイ上で手前にある（キャッシュメモリ１２から与えられたＺデータのほうが外部から与えられたＺデータよりも小さい）は、比較ユニット１４は「０」のフラグ出力信号ＰＡＳＳ−ＯＵＴを生成する。比較処理と並列にＲＯＰ／ブレンドユニットで処理されたデータのキャッシュメモリへの書込みを禁止する。一方、次に表示される画面のほうが現在表示されている画面よりも手前にある（外部から与えられるＺデータのほうがキャッシュメモリ１２から与えられるＺデータよりも小さい）場合は、比較ユニット１４は「１」のフラグ出力信号ＰＡＳＳ−ＯＵＴを生成する。比較処理と並列にＲＯＰ／ブレンドユニットで処理されたデータのキャッシュメモリへの書込みをイネーブルにする。
【０２７９】
図３４はＺデータ用のフレームバッファメモリ７０におけるパイプライン動作を示すタイミングチャートである。図３４に示されるように、このフレームバッファメモリ７０は７つのパイプラインステージから構成される場合を示している。ＲＯＰ／ブレンドユニット１５１〜１５４および比較ユニット１４の各動作は、第３〜第６ステージにおいて行なわれる。したがって、外部から与えられたＺデータＺＤＱ０〜ＺＤＱ３１がＲＯＰ／ブレンドユニット１５１〜１５４の中を通り抜けてそのＲＯＰ／ブレンドユニット１５１〜１５４から出力されるのと同時に、フラグ出力信号ＰＡＳＳ−ＯＵＴが比較ユニット１４から出力される。
【０２８０】
上述したように、ＲＯＰ／ブレンドユニット１５１〜１５４および比較ユニット１４はともに４つのパイプラインステージから構成されているので、フレームバッファメモリ１０に与えられたカラーデータＣＤＱ０〜ＣＤＱ３１がＲＯＰ／ブレンドユニット１５１〜１５４において第６ステージ目の処理をしているときにフレームバッファメモリ７０に与えられたＺデータＺＤＱ０〜ＺＤＱ３１がキャッシュメモリ１２から与えられたＺデータとは比較ユニット１４において比較されてその比較結果がフラグ出力信号ＰＡＳＳ−ＯＵＴとして出力される。
【０２８１】
このフラグ出力信号ＰＡＳＳ−ＯＵＴはフレームバッファメモリ１０のＰＡＳＳ−ＩＮ端子を通ってフレームバッファメモリ１０に与えられ、キャッシュメモリに対する書込許可信号が生成される。この書込許可信号の生成は第７ステージにて行なわれる。したがって、フラグ出力信号ＰＡＳＳ−ＯＵＴが「１」の場合は、フレームバッファメモリ１０のＲＯＰ／ブレンドユニット１５１〜１５４から出力された結果データはキャッシュメモリ１２に書込まれる。これと同時に、フレームバッファメモリ７０のＲＯＰ／ブレンドユニット１５１〜１５４から出力されたＺデータＺＤＱ０〜ＺＤＱ３１は対応するキャッシュメモリ１２に書込まれる。
【０２８２】
一方、フラグ出力信号ＰＡＳＳ−ＯＵＴが「０」の場合は、フレームバッファメモリ１０および７０のいずれにおいてもそれらＲＯＰ／ブレンドユニット１５１〜１５４から出力された結果データはキャッシュメモリ１２に書込まれない。
【０２８３】
上記のように次に表示されるべき画面が現在表示されている画面よりも手前にある場合はカラーデータおよびＺデータともに書換えられるが、現在表示されている画面が次に表示されるべき画面よりも手前にある場合はカラーデータおよびＺデータともに書換えられない。
【０２８４】
この実施例７によれば、フレーム当たりのデータ量が大きく、（Ｒ，Ｇ，Ｂ，α）とＺ値を１つのフレームバッファに格納できないときに、Ｚ値と（Ｒ，Ｇ，Ｂ，α）を別々のチップの入れるようにしても、同一チップ内にすべてのデータを格納していても同じ性能で処理を行なうことができる。複数チップ構成にしてもＰＡＳＳ−ＯＵＴ信号をＰＡＳＳ−ＩＮに接続することによりＺコンペアの結果を伝達できるので、負荷回路が少なくてかつ容易に複数チップ構成を取ることができる。
【０２８５】
図３１に示された画像記憶処理システムではフレームバッファメモリ１０の制御信号出力端子２８には何も接続されず、かつフレームバッファメモリ７０の制御信号入力端子２９には電源電位が与えられているが、図３５に示されるように、フレームバッファメモリ１０の制御信号出力端子２８がフレームバッファメモリ７０の制御信号入力端子２９に接続されてもよい。この場合は、フレームバッファメモリ１０の比較ユニット１４によって生成された「１」のフラグ出力信号ＰＡＳＳ−ＯＵＴがフレームバッファメモリ７０のＡＮＤゲート２６に与えられる。
【０２８６】
また、フラグ入力信号ＰＡＳＳ−ＩＮおよびフラグ出力信号ＰＡＳＳ−ＯＵＴは、高速化およびノイズ対策のためにディファレンシャル構成にしてもよい。
【０２８７】
［実施例８］
図３６は、この発明の実施例８による画像記憶処理システムの全体構成を示すブロック図である。図３６を参照して、この画像記憶処理システムは、３つのフレームバッファメモリ７１〜７３を備える。このシステム全体には９６ビットの画像データが与えられ、各フレームバッファメモリには３２ビットの画像データが与えられる。
【０２８８】
このフレームバッファメモリ７１は２つの制御信号入力端子７５，７６と、比較ユニット１４から与えられるフラグ出力信号ＰＡＳＳ−ＯＵＴ、制御信号入力端子７５に与えられるフラグ入力信号ＰＡＳＳ−ＩＮ１および制御信号入力端子７６に与えられるフラグ入力信号ＰＡＳＳ−ＩＮ２を受ける３入力ＡＮＤゲート７４とを備える。
【０２８９】
次の表８は、フラグ入力信号ＰＡＳＳ−ＩＮ１、ＰＡＳＳ−ＩＮ２およびフラグ出力信号ＰＡＳＳ−ＯＵＴの真理値表である。
【０２９０】
【表８】
2010044786.tif 000013
【０２９１】
なお、図３６に示されたフレームバッファメモリ７１には図示はされていないが、上記実施例１によるフレームバッファメモリ１０と同様に、メインメモリ１１、ＲＯＰ／ブレンドユニット１５１〜１５４、シリアルアクセスメモリ１５なども設けられている。
【０２９２】
この実施例８のように、１つのフレームバッファメモリに複数の制御入力端子が設けられていてもよい。図３６に示されるように、２つの制御信号入力端子７５，７６が設けられている場合は、他の２つのフレームバッファメモリ７２，７３のフラグ出力信号ＰＡＳＳ−ＩＮ１およびＰＡＳＳ−ＩＮ２がそれら制御信号入力端子７５および７６に与えればよい。１つのフレームバッファメモリのＰＡＳＳ−ＯＵＴ信号が他の２つのフレームバッファメモリのＰＡＳＳ−ＩＮ端子のいずれかに与えられており、１つのＰＡＳＳ−ＩＮ端子に複数の信号を与えることはない。
【０２９３】
この実施例８においては、各フラグ出力信号ＰＡＳＳ−ＯＵＴが他の２つのフレームバッファメモリにおけるキャッシュメモリの書込みを制御している。
【０２９４】
なお、制御信号入力端子７５および７６は、上記実施例７と同様に必要に応じてプルアップされてもよく、あるいはプルダウンされてもよい。
【０２９５】
［実施例９］
図３７は、この発明の実施例９によるフレームバッファメモリの全体構成を示すブロック図である。このフレームバッファメモリ８０においては、この発明によるテスト方法を実施することができる。この実施例９では、フレームバッファメモリの場合を説明したが、本発明の効果は一般的なＳＩＭＤ／ＭＩＭＤ型アーキテクチャあるいはＳＩＭＤ型処理を行なえる構成のものにも適用しても同様の効果が得られることはいうまでもない。
【０２９６】
図３７を参照して、このフレームバッファメモリ８０はテストが容易に行なえるように設計されたＳＩＭＤアーキテクチャを採用するＬＳＩであって、４つのＳＩＭＤ型データ処理ブロック８１Ａないし８１Ｄと、フラグ発生器８９とを備える。
【０２９７】
たとえばＳＩＭＤ型データ処理ブロック８１Ａは、データメモリ８２Ａと、データ処理ユニット８３Ａとを備える。データメモリ８２Ａにおけるデータはデータバス８４Ａを介してデータ処理ユニット８３Ａに転送され、データ処理ユニット８３Ａにおけるデータは、データバス８５Ａを介してデータメモリ８２Ａに転送される。また、データ処理ユニット８３Ａにおけるデータは、データバス８６Ａを介して外部に出力され、かつデータ処理ユニット８３Ａには外部からデータＤＩ０〜１５がデータバス８６Ａを介して与えられる。他のデータ処理ブロック８１Ｂないし８１Ｄも、このデータ処理ブロック８１Ａと同一構成である。
【０２９８】
また、データ処理ユニット８３Ａの処理結果は、データバス８７Ａを介してデータ処理ブロック８１Ｂにおけるデータ処理ユニット（図示せず）へ供給される。データ処理ブロック８１Ｂにおけるデータ処理ユニットの処理結果は、データバス８７Ｂを介してデータ処理ブロック８１Ｄにおけるデータ処理ユニット（図示せず）へ供給される。データ処理ブロック８１Ｄにおけるデータ処理ユニットの処理結果は、データバス８７Ｄを介してデータ処理ブロック８１Ｃにおけるデータ処理ユニット（図示せず）へ供給される。さらにデータ処理ブロック８１Ｃにおけるデータ処理ユニットの処理結果は、データバス８７Ｃを介してデータ処理ブロック８１Ａにおけるデータ処理ユニット８３Ａへ供給される。
【０２９９】
外部データＤＩ０〜１５はまた、データバス８６Ｃを介してデータ処理ブロック８１Ｃにおけるデータ処理ユニットへ供給されるとともに、そのデータ処理ユニットにおけるデータはデータバス８６Ｃを介して外部に出力される。
【０３００】
また、外部から入力されるデータＤＩ１６〜３１はデータバス８６Ｂを介してデータ処理ブロック８１Ｂにおけるデータ処理ユニットへ供給されるとともに、データバス８６Ｄを介してデータ処理ブロック８１Ｄにおけるデータ処理ユニットへ供給される。一方、データ処理ブロック８１Ｂにおけるデータ処理ユニットのデータはデータバス８６Ｂを介して外部へ出力され、またデータ処理ブロック８１Ｄにおけるデータ処理ユニットのデータはデータバス８６Ｄを介して外部に出力される。
【０３０１】
データ処理ユニット８３Ａはテスト回路（図示せず）を備え、そのテスト回路からの結果データはデータバス８８Ａを介してフラグ発生器８９に供給される。他のデータ処理ブロック８１Ｂないし８１Ｄにおいても同様に、データ処理ユニットにおけるテスト回路からの結果データはそれぞれデータバス８８Ｂないし８８Ｃを介してフラグ発生器８９に供給される。フラグ発生器８９はこれらの結果データに応答してフラグ信号ＦＬＧを生成する。
【０３０２】
図３８は、図３７に示されたデータ処理ユニット８３Ａの構成を示すブロック図である。
【０３０３】
図３８を参照して、このデータ処理ユニット８３Ａは、データ処理回路９１Ａと一致検出回路９２Ａとを備える。データ処理回路９１Ａは、たとえば図４に示されたＲＯＰ／ブレンドユニット１５１などを備える。
【０３０４】
次に、このフレームバッファメモリ８０をテストする方法について説明する。
まずテストを行なう前に、予めテストデータをデータメモリ８２Ａに外部から書込んでおく。次に、データメモリ８２Ａからテストデータを読出し、データバス８４Ａを介してデータ処理回路９１Ａに入力する。
【０３０５】
一方、外部データＤＩ０〜１５をデータバス８６Ａを介してデータ処理回路９１Ａに入力する。データ処理回路９１Ａにおいては、これら２つのデータが処理され、その処理結果はデータバス８５Ａを介してデータメモリ８２Ａに転送される。この処理結果はまた、一致検出回路９２Ａへ供給されるとともに、データバス８７Ａを介してデータ処理ブロック８１Ｂにおけるデータ処理ユニットの一致検出回路（図示せず）へも供給される。他のデータ処理ブロック８１Ｂないし８１Ｄにおいても、フレームバッファメモリ８０および外部データとしてデータ処理回路９１Ａに与えるのと同じデータを与える。したがって、データ処理ブロック８１Ａないし８１Ｄにおけるデータ処理回路の処理結果は、本来的にすべて一致するはずである。
【０３０６】
データ処理ブロック８３Ａにおいては、データ処理回路９１Ａの処理結果と、隣接するデータ処理ブロック８１Ｃにおけるデータ処理回路の処理結果とが一致検出回路９２Ａに与えられる。同様にして他のデータ処理ブロック８１Ｂないし８１Ｄにおいても、それ自身のデータ処理回路の処理結果と、隣接するデータ処理ブロックにおけるデータ処理回路の処理結果とがそれ自身の一致検出回路に与えられる。したがって、すべてのデータ処理ブロック８１Ａ〜８１Ｄにおける一致検出回路は、隣接するデータ処理ブロックとの間でその処理結果が一致するか否かを判定する。もしもそれら処理結果が一致しなければ、「１」の判定結果がフラグ発生器８９に与えられる。これら判定結果のうち少なくとも１つが「１」であれば、フラグ発生器８９は「１」のフラグ信号ＦＬＧをデータバス９０を介して出力する。これにより、このフレームバッファメモリ８０が不良であることが判明する。
【０３０７】
なお、フラグ発生器８９はラッチ機能を備えているため、フラグ信号ＦＬＧは一旦「１」にセットされると、すべてのテストが終了するまでそのまま維持される。
【０３０８】
この実施例９によるフレームバッファメモリ８０は簡単な回路構成ではあるが、それら回路に異常があるか否かを容易かつ迅速にテストすることができる。また、複数のデータ処理ブロック８１Ａないし８１Ｄを同時にテストすることができるため、テスト時間は大幅に短縮される。さらに、データメモリ８２Ａに予めテストデータを書込むため、ＬＳＩを実装状態でテストを行なうことが容易である。この実施例９では、データのビット数を指定しているが、本発明の効果はビット数に依らない。本実施例では、テスト対象となるデータ処理ユニットの数が「４」の場合を示しているが、それ以外（たとえば２以上）であっても同様の効果が得られることはいうまでもない。
【０３０９】
［実施例１０］
図３９は、この発明の実施例１０によるフレームバッファメモリにおけるデータ処理ユニットの構成を示すブロック図である。このデータ処理ユニット９３Ａは、上記実施例９におけるデータ処理ユニット８３Ａに代わるものである。
【０３１０】
図３９を参照して、このデータ処理ユニット９３Ａは、上記実施例９と同様にデータ処理回路９１Ａと、一致検出回路９２Ａとを備え、さらに上記実施例９と異なり疑似乱数データを発生するためのＬＦＳＲ（Ｌｉｎｅａｒ  Ｆｅｅｄｈａｃｋ  Ｓｈｉｆｔ  Ｒｅｇｉｓｔｅｒ）９４Ａと、２つのマルチプレクサ９５Ａおよび９６Ａとを備える。
【０３１１】
マルチプレクサ９５Ａは、データメモリ８２Ａからデータバス８４Ａを介して読出されたデータと、ＬＦＳＲ９４Ａからの乱数データのうちいずれか一方を選択してデータ処理回路９１Ａに与えるためのものである。このマルチプレクサ９５Ａにおいては、テストモード信号ＳＬ１が「１」のとき、データメモリ８２Ａから読出されたデータが選択され、テストモード信号ＳＬ１が「０」のとき、ＬＦＳＲ９４Ａからの乱数データが選択される。
【０３１２】
マルチプレクサ９６Ａは外部からデータバス８６Ａを介して入力されたデータＤＩ０〜１５と、ＬＦＳＲ９４Ａからの乱数データのうちいずれか一方を選択してデータ処理回路９１Ａに与えるためのものである。このマルチプレクサ９６Ａにおいては、テストモード信号ＳＬ２が「１」のとき、ＬＳＦＲ９４Ａからの乱数データが選択され、テストモード信号ＳＬ２が「０」のとき、外部からのデータＤＩ０〜１５が選択される。
【０３１３】
この実施例１０においては、テスト時にデータ処理回路９１Ａに与えられる２つのデータの組合わせは、次の４通りがある。
【０３１４】
すなわち、（１）データメモリ８２Ａから読出されたデータと外部から入力されたデータＤＩ０〜１５とがデータ処理回路９１Ａに与えられる場合と、（２）データメモリ８２Ａから読出されたデータとＬＦＳＲ９４Ａからの乱数データとがデータ処理回路９１Ａに与えられる場合と、（３）ＬＦＳＲ９４Ａからの乱数データと外部から入力されたデータＤＩ０〜１５とがデータ処理回路９１Ａに与えられる場合と、（４）ＬＦＳＲ９４Ａからの乱数データとＬＦＳＲ９４Ａからの乱数データとがデータ処理回路９１Ａに与えられる場合とがある。
【０３１５】
いずれの組合せに従って２つのデータがデータ処理回路９１Ａに与えられるかは、マルチプレクサ９５Ａおよび９６Ａに与えられるテストモード信号ＳＬ１およびＳＬ２によって設定することができる。
【０３１６】
上記実施例９と同様に、一致検出回路９２Ａにおいては、データ処理回路９１Ａの処理結果と、隣接するデータ処理ブロックにおけるデータ処理回路の処理結果とが比較され、それらの処理結果が一致しないときフラグ信号ＦＬＧが「１」にセットされる。
【０３１７】
この実施例１０によるフレームバッファメモリは、乱数データを発生するためのＬＦＳＲ９４Ａを備えている。したがって、データメモリ８２Ａの記憶容量が大きくてデータメモリ８２Ａに故障が発生する確率が高い場合においても、データ処理回路９１Ａに故障が発生していることを正確に判別することができる。すなわち、上記実施例９においては、データメモリ８２Ａに故障が発生している場合は、データメモリ８２Ａに故障が発生しているのか、データ処理回路９１Ａに故障が発生しているのか判別することができないが、この実施例１０においては、データメモリ８２Ａを用いることなくテストが行なわれるため、確実にデータ処理回路９１Ａに故障が発生していることを判別することができる。
【０３１８】
なお、上記実施例１０においては１つのデータ処理ユニットが１つのＬＦＳＲを備えているが、フレームバッファメモリ８０全体が１つのＬＦＳＲを備えていてもよい。この場合は、そのＬＦＳＲからの乱数データは各データ処理ブロック８１Ａないし８１Ｄにおけるデータ処理回路に供給される。
【０３１９】
また、ＬＦＳＲは、テストが行なわれていないときデータレジスタとして使用するようにしてもよい。すなわち、ＬＦＳＲと他のデータレジスタとを兼用するように構成してもよい。また、実施例８および９における一致検出回路９２Ａは、ＥＸＯＲゲートにより構成されていてもよい。さらに、上記実施例９および１０における一致検出回路９２Ａは、一致検出機能を有する比較回路により構成されていてもよい。本実施例も、実施例９と同様に、一般的なＳＩＭＤ／ＭＩＭＤ型アーキテクチャあるいはＳＩＭＤ型処理を行なえる構成のものを適用しても同様の効果が得られる。本実施例はテスト対象となるデータ処理ユニットの数が２以上であれば、ここに述べた同様の効果が得られる。
【０３２０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０３２１】
１０，３０，６０，７０〜７３，８０  フレームバッファメモリ、１１，１１Ａ〜１１Ｄ  メインメモリ（ＤＲＡＭ）、１２，１２Ａ〜１２Ｄ，３１Ａ，３１Ｂ  キャッシュメモリ（ＳＲＡＭ）、１３，１３Ａ〜１３Ｄ  画素処理ユニット、１４，１４Ａ〜１４Ｄ  比較ユニット、１５，１５Ａ，１５Ｂ  シリアルアクセスメモリ（ＳＡＭ）、１７  グローバルバス、１８，１９，２１  データバス、２３  演算部、２７  データ入力端子、２８  制御信号出力端子、２９，７５，７６  制御信号入力端子、４４  一致比較部、４５  大小比較部、１３１〜１３３，２０１〜２０３，２２１，２４１  入力ノード、１３４，２０５  乗算器、１３５  加算器、１３６，２０７  クランプ回路、１３７  ラスタオペレーション回路、２０４  算術論理演算器（ＡＬＵ）、２０６  算術演算器（ＡＵ）、８２Ａ  データメモリ。
【図１】
2010044786.tif 000014
【図２】
2010044786.tif 000015
【図３】
2010044786.tif 000016
【図４】
2010044786.tif 000017
【図５】
2010044786.tif 000018
【図６】
2010044786.tif 000019
【図７】
2010044786.tif 000020
【図８】
2010044786.tif 000021
【図９】
2010044786.tif 000022
【図１０】
2010044786.tif 000023
【図１１】
2010044786.tif 000024
【図１２】
2010044786.tif 000025
【図１３】
2010044786.tif 000026
【図１４】
2010044786.tif 000027
【図１５】
2010044786.tif 000028
【図１６】
2010044786.tif 000029
【図１７】
2010044786.tif 000030
【図１８】
2010044786.tif 000031
【図１９】
2010044786.tif 000032
【図２０】
2010044786.tif 000033
【図２１】
2010044786.tif 000034
【図２２】
2010044786.tif 000035
【図２３】
2010044786.tif 000036
【図２４】
2010044786.tif 000037
【図２５】
2010044786.tif 000038
【図２６】
2010044786.tif 000039
【図２７】
2010044786.tif 000040
【図２８】
2010044786.tif 000041
【図２９】
2010044786.tif 000042
【図３０】
2010044786.tif 000043
【図３１】
2010044786.tif 000044
【図３２】
2010044786.tif 000045
【図３３】
2010044786.tif 000046
【図３４】
2010044786.tif 000047
【図３５】
2010044786.tif 000048
【図３６】
2010044786.tif 000049
【図３７】
2010044786.tif 000050
【図３８】
2010044786.tif 000051
【図３９】
2010044786.tif 000052
【図４０】
2010044786.tif 000053
【図４１】
2010044786.tif 000054
【図４２】
2010044786.tif 000055