JP2010044786A - 半導体集積回路装置 - Google Patents

半導体集積回路装置 Download PDF

Info

Publication number
JP2010044786A
JP2010044786A JP2009244288A JP2009244288A JP2010044786A JP 2010044786 A JP2010044786 A JP 2010044786A JP 2009244288 A JP2009244288 A JP 2009244288A JP 2009244288 A JP2009244288 A JP 2009244288A JP 2010044786 A JP2010044786 A JP 2010044786A
Authority
JP
Japan
Prior art keywords
data
signal
comparison
bit
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009244288A
Other languages
English (en)
Other versions
JP5201485B2 (ja
Inventor
Hiroyuki Kawai
浩行 河合
Yoshitsugu Inoue
喜嗣 井上
Takashi Nakamura
尚 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2009244288A priority Critical patent/JP5201485B2/ja
Publication of JP2010044786A publication Critical patent/JP2010044786A/ja
Application granted granted Critical
Publication of JP5201485B2 publication Critical patent/JP5201485B2/ja
Expired - Lifetime legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Dram (AREA)
  • Image Generation (AREA)

Abstract

【課題】種々のグラフィックス処理を高速に行なうことができるようにする。
【解決手段】DRAM11、キャッシュメモリ12、画素処理ユニット13、比較ユニット14およびシリアルアクセスメモリ15をすべて1枚の半導体基板上に形成してワンチップ化する。DRAM11からキャッシュメモリ12への256ビットのデータを一度に転送する。画素処理ユニット13においては、α−ブレンド処理、ラスタオペレーションなどを行ない、比較ユニット14においてはZコンペア処理などを行なう。
【選択図】図1

Description

この発明は、画像処理回路を備えた半導体集積回路装置に関し、特にワークステーション、パーソナルコンピュータ等において使用される画像処理機能付きのフレームバッファメモリに関する。
図40は、従来の3次元/2次元グラフィックス処理システムの全体構成を示すブロック図である。
図40を参照して、このグラフィックス処理システムは、画素処理ユニット1と、画素キャッシュメモリ2と、16個のフレームバッファメモリとを備える。
画素処理ユニット1は、画素キャッシュメモリ2から与えられた1画素のデータと、ワークステーションなどから座標計算などのジオメトリ処理を経て与えられた1画素のデータとに基づいて所定の演算処理を行なうもので、たとえば高速動作可能なLSIなどが用いられる。
画素キャッシュメモリ2は、画素処理ユニット1またはフレームバッファメモリ3から与えられる画素データをストアするためのもので、たとえば記憶容量は大きくないが、高速アクセス可能なSRAM(スタティックランダムアクセスメモリ)が用いられる。
16個のフレームバッファメモリ3は、CRT上に表示される少なくとも1画面分の画素データをストアするためのものである。一般にワークステーション等に用いられるCRTは多数の画素を有するため、このフレームバッファメモリ3としては、1ビットあたりのコストが安く、かつ記憶容量の大きいDRAM(ダイナミックランダムアクセスメモリ)が主に用いられている。
図41は、このフレームバッファメモリ3として用いられたDRAMの全体構成を示すブロック図である。
図41を参照して、このDRAM3は、4つのメモリセルアレイ4と、行デコーダ5と、4つのセンスアンプ6と、列デコーダ7と、制御器8とを備える。
各メモリセルアレイ4は、512行および512列からなるマトリクス状に配置された(512×512)個のメモリセルを有する。各メモリセルは1ビットのデータをストアするため、1つのメモリセルアレイ4は256Kビットの記憶容量を有する。
行デコーダ5は、制御器8から与えられた9ビットの内部行アドレスに応答して各メモリセルアレイ4の1行を選択する。各センスアンプ6は、行デコーダ5によって選択された1行のメモリセルから読出されたデータを増幅する。列デコーダ7は制御器8から与えられた内部列アドレスに応答して、読出時には4つのセンスアンプ6によって増幅された(4×512)ビットのデータのうち4ビットを選択して出力データDoutとして外部に出力するとともに、書込時には外部から入力された4ビットの入力データDinをセンスアンプ6を介してメモリセルアレイ4に書込む。なお、この列デコーダ7において、読出動作と書込動作とは外部から与えられる読出/書込信号R/Wに応答して切換えられる。
制御器8は、外部から与えられた9ビットの外部アドレス、行アドレスストローブ信号/RASおよび列アドレスストローブ信号/CASに応答して、9ビットの内部行アドレスおよび9ビットの内部列アドレスを生成する。
次に、このグラフィックス処理システムの動作について説明する。
まずフレームバッファメモリ3には、現在CRT上に表示されている画面の画素データがストアされている。各フレームバッファメモリ3から画素キャッシュメモリ2へは1画素ずつデータが転送される。したがって、16個のフレームバッファメモリ3から画素キャッシュメモリ2へは16画素のデータが一度に転送される。
画素処理ユニット1においては、画素キャッシュメモリ2から与えられた1画素のデータと、ワークステーションなどから与えられた1画素のデータとが演算処理される。演算処理されたデータは再び画素キャッシュメモリ2に書き戻される。
ここで、画素キャッシュメモリ2から与えられるデータは、現在CRT上に表示されているもので、ワークステーションなどから与えられるデータは、次にCRT上に表示されるべきものである。したがって、画素キャッシュメモリ2に書き戻されたデータは、古いデータと新しいデータとに基づいて生成されたもので、次にCRT上に表示されることになる。
すなわち、画素キャッシュメモリ2に書き戻されたデータは16画素ずつ一度にフレームバッファメモリ3に書き戻される。
フレームバッファメモリ3から読出されたデータはアナログ信号に変換され、CRTに供給される。CRT上には、このアナログ信号に基づいた画面が表示される。
ここで、フレームバッファメモリ3として16チップのDRAMが用いられる理由を詳しく説明する。
近年ワークステーションなどにおいては、たとえば(1280×1024)画素を有する高解像度のCRTが多用されている。そのため、フレームバッファ3には、1ビット当たりのコストが安く、かつ記憶容量の大きいDRAMが用いられている。また、このようなCRTにおいては、1秒間に60枚もの画面が表示されるため、12.7nsec{=1/(1280×1024×60)}でDRAMをアクセスする必要がある。
しかしながら、市販されているDRAMのアクセス時間は200nsec程度に止まるため、複数のDRAMを並列にアクセスして一度に複数のデータを読出し、その読出されたデータをマルチプレクスして1データずつ処理するインタリーズ方式が採用されているのである。これが、フレームバッファメモリ3に複数のDRAMが用いられている理由である。
上記のようなグラフィックス処理用システムにおいては、多数のフレームバッファメモリ3が使用されるため、ボード上の配線が多くなるとともに、ボードのサイズが大きくなるという問題があった。また、この問題はグラフィックス処理システムの価格が高くなる原因にもなっていた。
ところで、図41に示したDRAMにおいては、行デコーダ5によって各メモリセルアレイ4の1行が選択されると、一度に4×512ビットのデータが読出され、または書込まれる。しかしながら、DRAMにおいては、汎用性を高めるために多くの入出力ピンが設けられていない。そのため、列デコーダ7によって4×512ビットのデータの中から4ビットのデータが選択されている。
したがって、もしもDRAMに多数の入出力ピンを設け、4×512ビットのデータを一度に読出すようにすれば、図40に示すようにDRAMを並列に設ける必要はない。
しかしながら、そのような場合には、ボード上に多数の長い配線を設ける必要がある。DRAMの入出力バッファはそれら配線の寄生容量を充放電するため、消費電力が大きくなるという問題が生じ得る。また、多数の入出力バッファを設ける必要があるため、DRAMのサイズも大きくなるという問題も生じ得る。このような問題があるため、現在まで多数の入出力ピンを備えたDRAMは製造されていない。
一方、画素処理ユニット1としては、たとえばTMS32020(テキサスインスツルメンツ社製)と呼ばれる汎用DSP(Digital Signal Processor)が使用されている。このような汎用DSPは多数の機能を有するが、グラフィックス処理で多用されるラスタオペレーションのような画素データ間の論理演算を効率よく実行することはできない。グラフィックス処理においては、画素を構成するR(赤信号),G(緑信号),B(青信号)(一般に各信号は8ビットのデータである。)を処理する必要があるが、上記TMS32020はR,G,Bからなる3つのデータ(一般に24ビット)を一度に処理することができないため、3つのTMS32030を並列に実装することによって処理時間を短縮するようにしている。
しかしながら、ボード上の配線を介したチップ間のデータ転送は、それらの配線が大きな寄生容量を有するため、LSIの内部配線を介したデータ転送に比べて、多くの時間を必要とする。このことは、システム全体のデータ処理スループットを向上させる障害となっている。
一般に、1つの画素を処理するために必要な時間tは次の数1で表される。
Figure 2010044786
ここで、tprocは画素処理ユニット1として用いられるLSIにおけるデータ処理時間であり、tac1はフレームバッファメモリ3からデータを読出すためのアクセス時間であり、tac2はフレームバッファメモリ3へデータを書込むためのアクセス時間であり、さらにttrauはボード上の配線を介してデータが転送される場合の遅延時間である。
近年の半導体集積回路技術の向上に伴って、tprocは小さくなる傾向にある。また、tac1、tac2およびtrauも小さくなる傾向にあるが、その割合はtprocに比べてわずかである。
したがって、画素処理ユニットとして用いられるLSIの動作をいくら高速化しても、ボード上のデータ転送が高速化されない限り、処理時間tは短縮されない。すなわち、ボード上のデータ転送が処理速度を律速しているのである。
また、このような従来のグラフィックス処理システムは正常に動作するか否か容易にテストすることができるように設計されていないため、このシステムをテストするためには多大な時間を必要とするという問題があった。
この発明は上記のような問題点を解消するためになされたもので、その目的はグラフィックス処理をより高速に行なうことができる回路を備えた半導体集積回路装置を提供することである。
この発明の他の目的は、小さいサイズのグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
この発明のさらに他の目的は、消費電力の小さいグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
この発明のさらに他の目的は、α−ブレンド処理を行なうことができるグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
この発明のさらに他の目的は、新しい画面のデータを古い画面のデータに全くブレンド処理したくない場合に、その古い画面のデータをそのまま維持することができるグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
この発明のさらに他の目的は、ラスタオペレーションを行なうことができるグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
この発明のさらに他の目的は、Zコンペア処理を行なうことができるグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
この発明のさらに他の目的は、多種類のグラフィックス処理をフレキシブルに行なうことができるグラフィックス処理回路を備えた半導体集積回路装置および画像記憶処理システムを提供することである。
この発明のさらに他の目的は、部品点数が少なく、簡単な構成のグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
この発明のさらに他の目的は、グラフィックス処理回路が有する機能を容易に変更したり、あるいは拡張したりできるようにしてその設計時間を短縮することである。
この発明のさらに他の目的は、容易かつ的確にテストを行なうことができるグラフィックス処理回路を備えた半導体集積回路装置を提供することである。
本発明のある局面に従う半導体集積回路装置は、半導体基板と、半導体基板上に形成されかつ複数のデータを記憶する第1の記憶手段と、半導体基板上に形成されかつ複数のデータを記憶する第2の記憶手段と、半導体基板上に形成され第1および第2の記憶手段の間でデータを相互に転送する第1の転送手段と、半導体基板上に形成されかつ第2の記憶手段から転送された第1のデータと外部から転送された第2のデータとを演算する画像演算手段、半導体基板上に形成されかつ第2の記憶手段から画像演算手段へ第1のデータを転送する第2の転送手段と、半導体基板上に形成されかつ外部から画像演算手段へ第2のデータを転送する第3の転送手段と、半導体基板上に形成されかつ画像演算手段からの結果データを第2の記憶手段へ転送する第4の転送手段と、第1のデータを第2のデータと比較する比較手段とを備える。比較手段からの結果信号は外部に接続される半導体集積回路装置に供給する制御信号として出力される。第2の記憶手段は、比較手段からの結果信号と外部に接続される半導体集積回路装置が備える制御手段の出力信号とに応答して第4の転送手段によって転送された第2のデータの書込みが可能になる。
本発明の別の局面に従う半導体集積回路装置は、半導体基板と、半導体基板上に形成されかつ複数のデータを記憶する第1の記憶手段と、半導体基板上に形成されかつ複数のデータを記憶する第2の記憶手段と、半導体基板上に形成され第1および第2の記憶手段の間でデータを相互に転送する第1の転送手段と、半導体基板上に形成されかつ第2の記憶手段から転送された第1のデータと外部から転送された第2のデータとを演算する画像演算手段と、半導体基板上に形成されかつ第2の記憶手段から画像演算手段へ第1のデータを転送する第2の転送手段と、半導体基板上に形成されかつ外部から画像演算手段へ第2のデータを転送する第3の転送手段と、半導体基板上に形成されかつ画像演算手段からの結果データを第2の記憶手段へ転送する第4の転送手段と、外部に接続される半導体集積回路装置に供給する制御信号を出力する制御手段とを備える。第2の記憶手段は、制御手段からの制御信号と外部に接続される半導体集積回路装置が備える制御手段の出力信号とに応答して第4の転送手段によって転送された第2のデータの書込みが可能になる。
この発明の実施例1による半導体集積回路装置の全体構成を示すブロック図である。 図1に示された半導体集積回路装置の全体構成を示すもう1つのブロック図である。 図1および図2に示された半導体集積回路装置の全体構成を示すさらにもう1つのブロック図である。 図1〜図3に示された半導体集積回路装置におけるROP/ブレンドユニットの構成を示すブロック図である。 図4に示されたROP/ブレンドユニットにおけるラスタオペレーション回路の構成を示す回路図である。 図1に示された半導体集積回路装置における比較ユニットの構成を示すブロック図である。 1フレームの画像データの取扱い方法を示す図である。 メインメモリのバンクがインタリーブされる場合において画像データがメインメモリに格納される様子を示す図である。 図8に示された場合のバンクインタリーブ動作を示すタイミングチャートである。 メインメモリのバンクがインタリーブされていない場合において画像データがメインメモリに格納される様子を示す図である。 図10に示される場合においてバンクのノンインタリーブ動作を示すタイミングチャートである。 図1に示された半導体集積回路装置によるZコンペア処理を説明するための模式図である。 図1に示された半導体集積回路装置において8ビットのカラーインデックスデータを含む32ビットのデータを処理するためのシステム構成を示すブロック図である。 図1に示された制御レジスタ群の構成を示す図である。 図1〜図3に示された半導体集積回路装置のパイプライン構成を示すブロック図である。 図15に示されたパイプライン構成をさらに詳細に示すブロック図である。 図16に示されたROP/ブレンドユニットのパイプライン構成を示すブロック図である。 図16に示された比較ユニットのパイプライン構成を示すブロック図である。 図17に示されたROP/ブレンドユニットのパイプライン動作を示すタイミングチャートである。 図18に示された比較ユニットのパイプライン動作を示すタイミングチャートである。 この発明の実施例2による半導体集積回路装置の全体構成を示すブロック図である。 この発明の実施例3による半導体集積回路装置の全体構成を示すブロック図である。 図22に示された半導体集積回路装置における比較ユニットの構成を示すブロック図である。 図23に示された比較ユニットにおける比較回路の構成を示すブロック図である。 図24に示された比較回路における1ビットの比較回路の構成を示す回路図である。 図24に示された比較回路におけるもう1つの1ビットの比較回路の構成を示す回路図である。 図22に示された半導体集積回路装置におけるフラグ発生器の構成を示す回路図である。 この発明の実施例4による半導体集積回路装置におけるROP/ブレンドユニットの構成を示すブロック図である。 この発明の実施例5による半導体集積回路装置におけるROP/ブレンドユニットの構成を示すブロック図である。 この発明の実施例6による半導体集積回路装置におけるROP/ブレンドユニットの構成を示すブロック図である。 この発明の実施例7による画像記憶処理システムの全体構成を示すブロック図である。 図31に示された画像記憶処理システムにおける具体的な配線方法を示すブロック図である。 図31に示されたカラーデータを処理するフレームバッファメモリのパイプライン動作を示すタイミングチャートである。 図31に示されたZコンペア処理を行なうフレームバッファメモリのパイプライン動作を示すタイミングチャートである。 図31に示された配線方法と異なる配線方法を示すブロック図である。 この発明の実施例8による画像記憶処理システムの全体構成を示すブロック図である。 この発明の実施例9による半導体集積回路装置の全体構成を示すブロッ図である。 図37に示された半導体集積回路装置におけるデータ処理ユニットの構成を示すブロック図である。 この発明の実施例10による半導体集積回路装置におけるデータ処理ユニットの構成を示すブロック図である。 従来のグラフィックス処理システムの構成を示すブロック図である。 図40に示されたグラフィックス処理システムにおけるフレームバッファメモリであるメインメモリの構成を示すブロック図である。 図22に示された半導体集積回路装置におけるフラグ発生器の構成を示す回路図である。
次に、この発明の実施例を図面を参照して詳しく説明する。なお、図中同一符号は同一または相当部分を示す。
[実施例1]
図1〜図3は、この発明の実施例1によるフレームバッファメモリの全体構成を示すブロック図である。図2は図1と異なる観点から見たブロック図であり、図3はさらに異なる観点から見たブロック図である。
図1を参照して、このフレームバッファメモリ10は、ダイナミックランダムアクセスメモリ(DRAM)構成のメインメモリ11と、スタティックランダムアクセスメモリ(SRAM)構成のキャッシュメモリ12と、キャッシュメモリ12から供給されるデータと外部からデータ入出力端子27を介して供給されるデータDQ0〜DQ31とを演算する演算部23とを少なくとも1つの半導体基板上に備える。
メインメモリ11は、図2および図3にも示されるように、4つのバンク11A〜11Dから構成される。各バンクは(512×640×8)個のメモリセル(図示せず)を備えているので、2.6メガビットのデータを記憶することができる。したがって、メインメモリ11全体は10.5メガビットの記憶容量を有し、ディスプレイ上の1/4フレームの画像データを記憶することができる。
キャッシュメモリ12は、図3に示されるように8つのメモリブロックから構成される。各メモリブロックは、256ビットのデータを記憶することができる。したがって、このキャッシュメモリ12は2キロビットのデータを記憶することができる。
メインメモリ11とキャッシュメモリ12との間には、256本のグローバルバス17が設けられている。グローバルバス17はメインメモリ11からキャッシュ12へデータを256ビットごとに転送するとともに、キャッシュメモリ12からメインメモリ11へデータを256ビットごとに転送する。メインメモリ11から転送された256ビットのデータによってキャッシュメモリ12の1つのメモリブロックが書換えられる。また、キャッシュメモリ12からメインメモリ11へデータが転送されるときは、キャッシュメモリ12の1つのメモリブロック内のデータがまとめて転送される。
再び図1を参照して、演算部23は画素処理ユニット13と比較ユニット14とを備える。画素処理ユニット13は4つのラスタオペレーション(ROP)/ブレンドユニット151〜154を備える。画素処理ユニット13は、キャッシュメモリ12からデータバス18を介して与えられた32ビットのデータと、外部からデータバス21を介して与えられた32ビットのデータDQ0〜DQ31とに基づいて、所定の演算処理を行なう。この画素処理ユニット13においてはその演算処理の結果、32ビットの結果データが生成される。この結果データはデータバス19を介してキャッシュメモリ12に書き戻される。ここで、各ROP/ブレンドユニットは、キャッシュメモリ12から与えられた32ビットのデータのうち8ビットのデータと、外部から与えられた32ビットのデータDQ0〜DQ31のうち8ビットのデータとを演算する。
比較ユニット14は、キャッシュメモリ12からデータバス18を介して与えられた32ビットのデータを、外部からデータバス21を介して与えられた32ビットのデータDQ0〜DQ31と比較し、その比較結果を示すフラグ信号PASS−OUTを生成する。このフラグ出力信号PASS−OUTは制御信号出力端子28を介して外部へ出力されるとともに、ANDゲート26に与えられる。このANDゲート26にはフラグ入力信号PASS−INが制御信号入力端子29を介して与えられる。このANDゲート26はそれら信号PASS−IN,PASS−OUTの論理積信号をライトイネーブル信号WEとしてキャッシュメモリ12へ供給する。このライトイネーブル信号WEがH(ハイ)レベルのとき、画素処理ユニット13の結果データがキャッシュメモリ12に書込まれる。
このフレームバッファメモリ10はさらに、メインメモリ11に記憶されている画像をディスプレイ上に表示するためのビデオ出力データVOを生成するシリアルアクセスメモリ(SAM)15を備える。このシリアルアクセスメモリ15はメインメモリ11からデータを640ビットごとに読出し、その読出されたデータをビデオクロック信号VCに応答して16ビットごとにビデオ出力データVOとして出力する。
シリアルアクセスメモリ15はさらに詳しくは図2および図3に示されるように、2つに分割されている。一方のシリアルアクセスメモリ15Aはメインメモリ11Aおよび11Cのどちらか一方からデータを読出す。他方のシリアルアクセスメモリ15Bは、メインメモリ11Bおよび11Dのどちらか一方からデータを読出す。シリアルアクセスメモリ15Aからのデータとシリアルアクセスメモリ15Bからのデータとはマルチプレクサ42によって交互に選択され、その選択されたデータはトライステートバッファ43を介してビデオ出力データVOとして出力される。一方のシリアルアクセスメモリ15Aからデータが出力されている間に他方のシリアルアクセスメモリ15Bへ対応するメインメモリからデータが転送されるので、ビデオ出力データVOは高速に出力される。
このフレームバッファメモリ10はさらに、コントローラ16を備える。コントローラ16は、外部から供給される制御信号CTおよびクロック信号CLKに応答して、メインメモリ11、キャッシュメモリ12、シリアルアクセスメモリ15および演算部23を制御するための制御信号を生成する。画素処理ユニット13は、コントローラから供給される制御信号CNT1に応答して動作する。比較ユニット14は、コントローラ16から供給される制御信号CNT2に応答して動作する。
なお、データ転送バス18はキャッシュメモリ12から演算部23へデータを転送するだけでなく、外部にもデータ入出力端子27を介してデータを転送することができる。
また、上述したメインメモリ11、キャッシュメモリ12、画素処理ユニット13、比較ユニット14、シリアルアクセスメモリ15、制御レジスタ群およびコントローラ16はすべて、1枚の半導体基板上に形成されている。
図2において、11A−1〜11A−4,11B−1〜11B−4,11C−1〜11C−4,11D−1〜11D−4は大容量データメモリであって本実施例ではDRAMとしている。
12A〜12Dはキャッシュメモリである。キャッシュメモリ12Aは前記DRAMのうち対応するバンク11A−1,11B−1,11C−1,11D−1と接続される。キャッシュメモリ12Bは前記DRAMのうち対応するバンク11A−2,11B−2,11C−2,11D−2と接続される。キャッシュメモリ12Cは前記DRAMのうち対応するバンク11A−3,11B−3,11C−3,11D−3と接続される。キャッシュメモリ12Dは前記DRAMのうち対応するバンク11A−4,11B−4,11C−4,11D−4と接続される。
14A〜14Dは比較ユニットである。比較ユニット14Aは、対応するキャッシュメモリ12Aから与えられるデータと外部ピンDQ16〜31から与えられるデータのうち所望のビット位置データとの一致/大小比較を行なう。比較ユニット14Bは、対応するキャッシュメモリ12Bから与えられるデータと外部ピンDQ16〜31から与えられるデータのうち所望のビット位置データとの一致/大小比較を行なう。比較ユニット14Cは、対応するキャッシュメモリ12Cから与えられるデータと外部ピンDQ0〜15から与えられるデータのうち所望のビット位置データとの一致/大小比較を行なう。比較ユニット14Dは、対応するキャッシュメモリ12Dから与えられるデータと外部ピンDQ0〜15から与えられるデータのうち所望のビット位置データとの一致/大小比較を行なう。
15A−1〜15A−4は第1のシリアルアクセスメモリ(SAMと略す)であり、15B−1〜15B−4は第2のSAMである。
第1のSAMの構成要素15A−1はDRAMバンク11A−1,11C−1のどちらか一方から読出されたデータを取込むことができるように構成される。第1のSAMの構成要素15A−2にはDRAMバンク11A−2,11C−2のどちらか一方から読出されたデータを取込むことができるように構成される。第1のSAMの構成要素15A−3は、DRAMバンク11A−3,11C−3のどちらか一方から読出されたデータを取込むことができるように構成される。第1のSAMの構成要素15A−4は、DRAMバンク11A−4,11C−4のどちらか一方から読出されたデータを取込むことができるように構成される。第2のSAMの構成要素15B−1は、DRAMバンク11B−1,11D−1のどちらか一方から読出されたデータを取込むことができるように構成される。第2のSAMの構成要素15B−2は、DRAMバンク11B−2,11D−2のどちらか一方から読出されたデータを取込むことができるように構成される。第2のSAMの構成要素15B−3は、DRAMバンク11B−3,11D−3のどちらか一方から読出されたデータを取込むことができるように構成される。第2のSAMの構成要素15B−4は、DRAMバンク11B−4,11D−4のどちらか一方から読出されたデータを取込むことができるように構成される。
外部出力端子VOには、第1のSAM15A−1〜15A−4出力と第2のSAM15B−1〜15B−4のデータが選択的に出力される。
151〜154は演算処理ユニットである。演算処理ユニット151は、キャッシュメモリ12Aから与えられるデータと、外部データ端子DQ16〜31から与えられるデータのうち所望のビット位置データとを入力とし、その出力はキャッシュメモリ12Aに接続される。演算処理ユニット152は、キャッシュメモリ12Bから与えられるデータと、外部データ端子DQ16〜31から与えられるデータのうち所望のビット位置データとを入力とし、その出力はキャッシュメモリ12Bに接続される。演算処理ユニット153は、キャッシュメモリ12Cから与えられるデータと外部データ端子DQ0〜15から与えられるデータのうち所望のビット位置データとを入力とし、その出力はキャッシュメモリ12Cに接続される。演算処理ユニット154は、キャッシュメモリ12Dから与えられるデータと外部データ端子DQ0〜15から与えられるデータのうち所望のビット位置データとを入力とし、その出力はキャッシュメモリ12Dに接続される。
900は、4つの比較ユニット14A〜14Dの出力信号からPASS−OUT信号を生成するためのフラグ発生部である。901は、LSI902内部で必要となる制御信号を生成するためのコントローラである。51A〜51Dは制御ユニットである。
図2に示したフレームバッファメモリの動作を以下に説明する。ここでは、本構成に固有の特徴的な動作について説明する。
本実施例における演算処理ユニット151〜154はそれぞれ図3に示されたROP/ブレンドユニットとする。比較ユニット14A〜14Dは、図3に示された一致比較ユニット44と大小比較ユニット45の機能を持つとする。
説明のために、ROP/ブレンドユニット151〜154,比較ユニット14A〜14Dはそれぞれ8ビット幅のデータを処理する機能を有するとする。本実施例ではこれらユニット151〜154,14A〜14Dは各4個を用いる構成を示しているため、合計32ビットのデータを処理する機能を持つ。この並列数は一例であり、処理すべきデータ単位が32ビットでない場合(8ビット×4でないとき)は各ユニットの扱うビット数およびユニットの並列数が変わり得ることはいうまでもない。
説明のために、ROP/ブレンドユニット151,比較ユニット14Aは、32ビット中の最上位バイト24ビット目〜31ビット目を処理し、ROP/ブレンドユニット152,比較ユニット14Bは、32ビット中のその下のバイト16〜23ビット目を処理し、ROP/ブレンドユニット153,比較ユニット14Cは、32ビット中のさらにその下のバイト8〜15ビット目を処理し、ROP/ブレンドユニット154,比較ユニット14Dは、32ビット中の最下位バイト0〜7ビット目を処理するとする。
各ROP/ブレンドユニット151〜154に対応して設けられたDRAMバンク11A−1〜11A−4,11B−1〜11B−4,11C−1〜11C−4,11D−1〜11D−4およびキャッシュメモリ12A〜12D,SAM15A−1〜15A−4,15B−1〜15B−4もROP/ブレンドユニット151〜154のそれぞれと同じ対応するバイトを扱う。
本実施例の最大の特徴は、対応バイト単位に各機能ユニットを分割配置していることである。上記32ビットのデータは、グラフィックスのための各画素が持つ色データおよび混合率データ(各R,G,B,α,各8ビット)を表わす。
色要素Rが最上位バイトに対応し、Gがその1つ下位バイト、BはG成分バイトの1つ下のバイト、αが最下位バイトに与えられるとする。こうした場合には、ROP/ブレンドユニット151はR成分を処理し、ROP/ブレンドユニット152はG成分を処理し、ROP/ブレンドユニット153はB成分を処理し、ROP/ブレンドユニット154はα成分を処理する。
他のデータ形式としては、32ビットのデータに、上記R,G,B,αのうちのある1成分のみを4画素分格納する場合もある。それ以外にも色々な場合が考えられるが、ここではR,G,B,α成分が格納されている場合について説明する。
各DRAMバンクには、図7に示されている方法で1フレームもしくはその一部分(格納可能な画面領域は、色成分のビット数、フレームのサイズ等により決まる。)が格納される。画面上にある画素に対応してαブレンド処理を行なう場合には、外部よりDRAMアドレス(図示せず)が入力される。このアドレスによりその画素が含まれる頁およびバンク(A,B,C,Dのいずれか)が指定されて、読出される。今、画素がDRAMバンクAに格納されているとする。本実施例では、図のようにDARMバンクAは、バイト単位に4つに分割され、それぞれ対応するROP/ブレンドユニット151〜154、キャッシュメモリ12A〜12Dに隣接して配置されている。
上記アドレスデータにより、分割されたDRAMのバンク11A1〜11A−4から同時に同じ頁が読出される。そして、次に、画素が含まれるブロックがキャッシュメモリ12A〜12Dに同時に転送され、CAD(キャッシュメモリ用アドレスピン)で指定されるキャッシュメモリ12A〜12D内のアドレスに格納される。
一般に3Dグラフィックス処理は、隣接した複数画素からなる領域に対して連続的に同一処理を繰返すことが多いのが特徴である。そのために、フレームバッファ(図中のDRAMを指す)から一度に隣接した複数画素領域分のデータを転送することにより、アクセス速度の遅いフレームバッファの読出/書込速度による処理性能低下を解消できる。しかし、大量データを同時にDRAMからキャッシュメモリに転送する必要が生じる。
DRAMとキャッシュメモリの間に長い多ビットバスを設けた場合には、長いバス配線の持つ大きな寄生容量を充放電するために高速バス転送が困難になるとともに、消費電力が大きくなってしまうという問題が生じる。
本実施例では、この問題を解決するために、DRAMを細分化して、キャッシュメモリ12A−12Dに近接配置することで配線長を短くするようにして、高速転送と低消費電力化を可能としている。
上記のようにDRAM,キャッシュメモリを細分化し、分散配置した場合には、ROP/ブレンドユニット151〜154の処理は高速化できる。
このとき、32ビットデータとしてZ値を扱うときに問題が生じる。Z値は32ビットで1単位であるからである。そこで、Z値を比較するための比較ユニットも8ビット単位に分割し、対応キャッシュメモリに近接配置しなければならない。そして、8ビット単位に構成された比較ユニット14A〜14Dにより32ビット分のデータの大小比較/一致比較を行なう。このように比較ユニットを分割配置することで、キャッシュメモリ12A〜12Dから読出されたデータを比較ユニットに転送するためのバス配線を短くでき、高速化および低消費電力が可能である。
大小比較を行なうときは、上位ビット側の大小比較結果(あるいは上位ビット側では全ビットが一致しているという情報)を下位ビットを処理する回路へ伝える手段が必要である。この情報伝達のための信号線長が長くなってしまうと、結果的に比較処理時間が長くなり、処理速度の低下を招く。
本実施例では、その問題を解決するために、最上位バイトを処理する比較ユニット14Aに最も近い場所に次のバイトを処理する比較ユニット14Bを配置し、その次のバイトを処理する比較ユニット14Cはこの比較ユニット14Bに最も近い場所に配置し、最下位バイトを処理するユニット14Dはユニット14Cに最も近い場所に配置する。ここで、「最も近い」という表現は、実現可能な範囲で近い位置を指すことはいうまでもない。
フレームバッファメモリに格納されているデータ(R,G,B)は表示のためにラスタスキャン方式に順次読出せる機能を持つことが要求される。そのために、本実施例ではSAMを用いる。上記のようにDRAMを分割したことにより生ずる他の問題は、SAM配置に関するものである。
DARMに画像データを図7の形式に格納しているとする。このとき、ラスタスキャン方式でデータを読出すためにアクセスされるバンクの順は、A→B→A→B→…→A→B→C→D→C→D→…→C→D→A→…(A,B,C,Dはバンク)である。
DRAMのバンクAがSAM15A−1〜15A−4にデータを与えるためにアクセスされている間は、演算のためにバンクAをアクセスすることができないために演算効率が低下する。バンクBについても同じである。バンクA,Bは交互に読出されるためである。
しかし、この間C,Dは演算に使用可能である。そこで、SAM15A−1〜15A−4はバンクAとバンクCで共有し、SAM15B−1〜15B−4はバンクBとバンクDが共有することが回路量を減らすために効果がある。
第1のSAM15A−1〜15A−4からのデータを出力端子VOに出力している間に、第2のSAM15B−1〜15B−4にはバンクBあるいはバンクDのいずれかのデータが転送される。第1のSAM中のデータ出力が終了すると、絶え間なく次のデータを出力するために、コントローラ16から与えられる制御信号により第2のSAMが選択され、出力される。第2のSAMのデータが出力されている間に、第1のSAMへバンクAあるいはバンクCのいずれかのデータが書込まれる。各SAMのサイズ(ワード数)の最小値は、「一方のSAM15A−1〜15A−4あるいは15B−1〜15B−4中のすべてのデータを出力するために要する時間」が「SAMの全リードにDRAMからデータを書込む時間」以上となるように決める必要がある。
図2に示したような構成を取ることによる効果は、以下のとおりである。
DRAMの各バンクをデータ処理ユニットが扱うデータに対応付けて分割したことにより、キャッシュメモリとDRAM各バンク間を結ぶバスの配線長を短くできるので、DRAMとキャッシュメモリ間の転送の高速化および転送に伴なう消費電力を低減することが可能となる。
比較ユニットもこれに併わせて分割し、これら分割した比較ユニットを、ユニット間を伝播する信号の配線長が短くなるように配置することにより、ユニット間の伝播信号の遅延時間を短縮でき、比較処理を高速化することが可能となる。
このように分散配置したので、単位データに対応する構成要素を追加/削除することにより、機能変更が容易に行なえる。
図4は、図1〜図3に示したフレームバッファメモリ10における画像処理ユニット13のROP/ブレンドユニット151の構成を示すブロック図である。なお、POP/ブレンドユニット152〜153もPOP/ブレンドユニット151と同様の構成である。
図4を参照して、このROP/ブレンドユニット13は、3つの入力ノード131〜133と、乗算器134と、加算器135と、クランプ回路136と、ラスタオペレーション回路137と、マルチプレクサ(MUX)138と、出力ノード139とを備える。
乗算器134は、入力ノード131からの8ビットのデータと入力ノード132からの8ビットのデータとを乗算するためのものである。加算器135は、乗算器134からの結果データと入力ノード133からのデータとを加算するためのものである。クランプ回路136は、加算器135がオーバフローを起こしたときそのオーバフローフラグ信号OFに応答して加算器135からの結果データを正の最大値に設定するとともに、加算器135がアンダフローを起こしたときそのアンダフローフラグ信号UFに応答して加算器135からの結果データをゼロに設定するためのものである。ここで、乗算器134、加算器135およびクランプ回路136は、3つの入力ノードから供給されたデータに基づいてα−ブレンド処理を行なうためのものである。
一方、ラスタオペレーション回路137は、入力ノード132からの8ビットのデータと入力ノード133からの8ビットのデータとに基づいて、後述する所定の論理演算を行なうためのものである。
マルチプレクサ138は、選択信号SLに応答してクランプ回路136からの出力か、またはラスタオペレーション回路137からの出力かを選択して出力ノード139を介して出力するためのものである。
図5は、図4に示したROP/ブレンドユニット151におけるラスタオペレーション回路137の一部構成を示す回路図である。この図5においては、入力ノード132および133から供給される8ビットのデータDoldおよびDnewのうち1ビットのデータDold1およびDnew1を処理するための回路が示されている。残りの7ビットのデータDoldおよびDnewを処理するための回路も同様の構成になっている。
図5を参照して、このラスタオペレーション回路137のDold1およびDnew1を処理するための回路は、インバータ140および141と、NANDゲート142〜145と、NANDゲート146とを備える。
入力ノード132からの1ビットのデータDold1はNANDゲート143および145にそれぞれ入力されるとともに、インバータ140を介してNANDゲート142および144にそれぞれ入力される。また、入力ノード133からの1ビットのデータDnew1はNANDゲート144および145にそれぞれ入力されるとともに、インバータ141を介してNANDゲート142および143にそれぞれ入力される。
動作選択信号OPSEL0はNANDゲート145に入力され、動作選択信号OPSEL1はNANDゲート144に入力され、動作選択信号OPSEL2はNANDゲート143に入力され、さらに動作選択信号OPSEL3はNANDゲート142に入力されている。ここで、これら動作選択信号OPSEL0〜OPSEL3は、これら1ビットのデータDold1およびDnew1以外の他のビットデータを処理するためのNANDゲート(図示せず)にも同様に入力されている。これらNANDゲート142〜145の出力信号は、すべてNANDゲート146に入力されている。
したがって、このラスタオペレーション回路137は、動作選択信号OPSEL0〜OPSEL3に応答して16種類の論理関数の中から1つを選択し、その選択された論理関数に従って演算処理を行なうためのものである。
次の表1は、このラスタオペレーション回路137の真理値表を示す。
Figure 2010044786
表1に示すように、たとえば動作選択信号OPSEL0〜OPSEL3がすべて「0」のとき、入力されたデータDoldおよびDnewに関係なく、このラスタオペレーション回路137の出力信号は「0」となる。
また、動作選択信号OPSEL0だけが「1」で、他の動作選択信号OPSEL1〜OPSEL3がすべて「0」のとき、このラスタオペレーション回路137は、入力されたデータDoldおよびDnewの論理積を行なう。したがって、入力されたデータDoldおよびDnewがともに「1」であるときだけ、ラスタオペレーション回路137の出力信号が「1」となる。
また、動作選択信号OPSEL1だけが「1」で、他の動作選択信号OPSEL0,OPSEL2およびOPSEL3が「0」のとき、このラスタオペレーション回路137は入力されたデータDnewと入力されたDoldの反転データ/Doldとの論理積を行なう。したがって、データDnewが「1」で、かつデータDoldが「0」のときだけ、ラスタオペレーション回路137の出力信号は「1」となる。
また、動作選択信号OPSEL0およびOPSEL1が「1」で、他の動作選択信号OPSEL2およびOPSEL3が「0」のとき、このラスタオペレーション回路137は、入力されたデータDnewをそのまま出力信号として出力する。したがって、入力されたデータDoldに関係なく、入力されたデータDnewが「1」のときだけ、ラスタオペレーション回路137の出力信号は「1」となる。
また、動作選択信号OPSEL1およびOPSEL2が「1」で、かつ他の動作選択信号OPSEL0およびOPSEL3が「0」のとき、このラスタオペレーション回路137は、入力された2つのデータDoldおよびDnewの排他的論理和を行なう。したがって、入力された2つのデータDoldおよびDnewが一致しないときだけ、このラスタオペレーション回路137の出力信号は「1」となる。
また、動作選択信号OPSEL0およびOPSEL2が「1」で、かつ他の動作選択信号OPSEL3が「0」のとき、このラスタオペレーション回路137は、入力された2つのデータDoldおよびDnewの論理和を行なう。したがって、入力された2つのデータDoldおよびDnewのうち少なくとも一方が「1」のとき、このラスタオペレーション回路137の出力信号は「1」となる。
また、動作選択信号OPSEL0およびOPSEL3がすべて「1」のとき、このラスタオペレーション回路137は、入力されたデータDoldおよびDnewに関係なく、「1」の出力信号を出力する。
なお、上記した動作選択信号OPSEL0〜OPSEL3の組合わせ以外は、具体的には表1に示されるようになっている。
図6は、図1に示されたフレームバッファメモリにおける演算部23の比較ユニット14の全体構成を示すブロック図である。図6を参照して、この比較ユニット14は、32ビットのデータDnewを32ビットのデータDoldと比較する一致比較回路441と、同様に32ビットのデータDnewを32ビットのデータDoldと比較する大小比較回路451とを備える。ここで、一致比較回路441は、32個のEX−ORゲート443と、32個のANDゲート444と、1個のNORゲート445とを備える。
この比較ユニット14はさらに、一致比較回路441における32ビットのデータのうちマスクするデータを特定するためのマスクデータが設定可能な一致マスクレジスタ252を備える。一致マスクレジスタ252のいずれかのビットに「0」が設定されると、そのビットに対応する一致比較回路441のANDゲート444の出力は、対応するEX−ORゲート443の出力にかかわらずL(論理ロー)レベルになる。したがって、このビットに対応するEX−ORゲート443の出力信号はNORゲート445へ与えられない。このように、一致比較回路441においては一致マスクレジスタ252に設定されたマスクデータに応答して32ビットのうちいずれかがマスクされる。
大小比較回路451は、32個のANDゲート453と、32個のANDゲート454と、1個の大小比較器455とを備える。上記一致マスクレジスタ252と同様に、大小比較回路451においては、大小マスクレジスタ253に設定されたマスクデータに応答して32ビットのうちいずれかがマスクされる。
この比較ユニット14はさらに、一致比較回路441の出力信号に応答してフラグ信号を生成する一致フラグコントローラ442と、大小比較回路451の出力信号に応答してフラグ信号を生成する大小フラグコントローラ452とを備える。
一致フラグコントローラ442は、4つの動作モードを有する。第1の動作モードにおいては、データDnewのうち有効なビットおよびDoldのうち有効なビットが互いに一致するか否かにかかわらず常に「1」のフラグ信号が生成される。第2の動作モードにおいては、データDnewのうち有効なビットおよびDoldのうち有効なビットが互いに一致するか否かにかかわらず常に「0」のフラグ信号が生成される。第3の動作モードにおいては、データDnewのうち有効なビットおよびDoldのうち有効なビットが互いに一致する場合に「1」のフラグ信号が生成される。第4の動作モードにおいては、データDnewのうち有効なビットおよびDoldのうち有効なビットが互いに一致しない場合に「1」のフラグ信号が生成される。一致フラグコントローラ442の動作モードは、比較制御レジスタ255に設定されたデータによって決定される。
大小比較コントローラ452は8つの動作モードを有する。第1の動作モードにおいては、データDnew″のうち有効なビットおよびDold″のうち有効なビットの大小関係にかかわらず常に「1」のフラグ信号が生成される。第2の動作モードにおいては、データDnew″のうち有効なビットがデータDold″のうち有効なビットよりも大きい場合に「1」のフラグ信号が生成される。第3の動作モードにおいては、データDnew″のうち有効なビットおよびDold″のうち有効なビットが互いに等しい場合に「1」のフラグ信号が生成される。第4の動作モードにおいては、データDnew″のうち有効なビットがデータDold″のうち有効なビット以上の場合に「1」のフラグ信号が生成される。第5の動作モードにおいては、データDnew″のうち有効なビットおよびDold″のうち有効なビットの大小関係にかかわず常に「0」のフラグ信号が生成される。第6の動作モードにおいては、データDnew″のうち有効なビットがデータDold″のうち有効なビット以下の場合に「1」のフラグ信号が生成される。第7の動作モードにおいては、データDnew″のうち有効なビットおよびデータDold″のうち有効なビットが互いに一致しない場合に「1」のフラグ信号が生成される。第8の動作モードにおいては、データDnew″のうち有効なビットがデータDold″のうち有効なビットよりも小さい場合に「1」のフラグ信号が生成される。この大小比較コントローラ452の動作モードは、比較制御レジスタ255に設定されたデータによって決定される。
コントローラ442および452からのフラグ信号はともにANDゲート46に与えられ、その論理積信号がフラグ出力信号PASS−OUTとして出力される。
この比較ユニット14において、外部から供給されたデータDnew0〜Dnew31はマルチプレクサ41を介して一致比較回路441および大小比較回路451の双方に与えられる。キャッシュメモリ12から供給されたデータDold0〜Dold31は、一致比較回路441および大小比較回路451の双方に与えられる。
また、必要に応じて、データDnew0〜Dnew31の代わりに一定データK0〜K31がマルチプレクサ41を介して一致比較回路441および大小比較回路451の双方に与えられる。データDnewおよび一定データKのいずれが供給されるかは、比較制御レジスタ255に設定されたデータによって決定される。この一定データK0〜K31は、図3に示されたコンスタントソースレジスタ251から供給される。
一致マスクレジスタ252に設定するためのマスクデータは、外部から供給されるデータDnewと時分割されて供給される。大小マスクレジスタ253に設定するためのマスクデータも同様に、外部から供給されるデータDnewと時分割されて供給される。
次に、この実施例1によるフレームバッファメモリの動作を簡単に説明する。なお、このフレームバッファメモリは後述するようにパイプライン化されているが、以下ではパイプライン化されていないものとしてその動作を説明する。
このフレームバッファメモリ10においては、まずメインメモリ11にディスプレイ上に表示するための画像データを書込む必要がある。メインメモリ11に書込まれるべきデータは外部データDQ0〜DQ31として入力され、画素処理ユニット13およびデータバス19を介して一旦キャッシュメモリ12にストアされる。キャッシュメモリ12にストアされたデータはデータバス17を介して、アドレス信号DADによって指定されるメモリセルに書込まれる。このような動作がメインメモリ11の全てのアドレスについて行なわれる。
図7は、ディスプレイ上に表示される画面とメインメモリ11のメモリ領域との対応関係を示す図である。図7に示されるように、1フレームは256個のページ群に分割される。1つのページ群はさらに4つのページに分割される。各ページ内のデータは、メインメモリ11の対応するバンクに格納される。各ページはさらに40個のブロックに分割される。各ブロックは8つのサブブロックに分割される。各頁を矩形としたことによりヒット率を向上させたグラフィックにおいては、隣接したデータを連続して書替えることが多い。たとえば四角形を描画する場合などである。このため、キャッシュメモリ上のデータは、ディスプレイ上の矩形ブロックに対応させるのが好ましい。1行単位でキャッシュメモリにデータをストアすると、縦方向に線を引く場合に、DRAMおよびSAM間の転送が頻繁に行なわれなければならない。
メインメモリ11に書込まれたデータは、アドレス信号DADに応答して256ビットごとにグローバルバス17を介してキャッシュメモリ12へ転送される。この256ビットのデータは、図7に示されたブロックに相当する。演算処理はサブブロック単位(1×4×8)で行なわれ、SAMへの転送は頁の1行単位(1×80×8)で行なわれる。
図8および図10は、フレーム内の画像データとメインメモリのメモリ領域との対応関係を示す図である。図9は、図8に示されるように画像データが格納されている場合に、シリアルアクセスメモリ15によってそのデータが読出されかつその読出されたデータがシリアルに出力される様子を示すタイミングチャートである。図11は、図10に示されるように画像データが格納されている場合に、シリアルアクセスメモリ15によってそのデータが読出されかつその読出されたデータがシリアルに出力される様子を示すタイミングチャートである。1つのバンク(たとえばAバンク)に隣接して同じバンクが配置されないように配列することによって、同じバンクを続けてアクセスしないようにされている。グラフィックスでは、ランダムにデータを書替えることは少なく、連続(隣接)したデータをアクセスする場合が多いため、上記の配列がスピード的に有効である。
図9に示されるように、図8の場合は各バンクからデータがインタリーブされて出力されるので、その実行時間は、図11に示されるようにデータがインタリーブされずに出力される場合よりも短くなる。縦に線を引くときがワーストケースとなる。
この実施例1では図8に示されるようにデータが格納されているので、シリアルアクセスメモリ15から高速にビデオ出力データVOが出力される。データは、A:0,B:0,A:1,B:1…,C:0,D:0,C:1,D:1…とマルチプレクサ42によりインタリーブ出力される。
メインメモリ11に書込まれたデータは、アドレス信号DADに応答して256ビットごと一度にデータバス17を介してキャッシュメモリ12へ転送される。
キャッシュメモリ12へ転送されたデータは、アドレス信号CADに応答して32ビットごと同時にデータバス18を介して画素処理ユニット13または比較ユニット14へ転送される。
一方、画素処理ユニット13または比較ユニット14には、新しい画像データDQ0〜DQ31が与えられる。画素処理ユニット13においては、キャッシュメモリ12から読出された古い画像データとこの新しい画像データDQ0〜31とに基づいて、制御信号CNT1によって指定された演算処理が行なわれる。また、比較ユニット14においては、キャッシュメモリ12から読出された古い画像データと新しい画像データDQ0〜DQ31とに基づいて、制御信号CNT2によって指定された比較処理が行なわれる。
ここで、画素処理ユニット13においては、3次元グラフィックス処理の基本であるα−ブレンド処理、およびラスタオペレーションと呼ばれる画像データ間の論理演算処理が選択的に行なわれる。また、比較ユニット14においては、CRT上の奥行き情報を処理するZコンペア処理が行なわれる。
(1) α−ブレンド処理
まず画素処理ユニット13において、α−ブレンド処理が行なわれる場合について説明する。
α−ブレンド処理は、3次元グラフィックスがCRT上に表示されるときにその透明感を表わすために行なわれる。α−ブレンド処理のための演算式は次の数2で表される。
Figure 2010044786
ここで、OUT(R)は実際にCRT上に表示されるべき画素中の赤の色信号成分の出力値を示し、OUT(G)は実際にCRT上に表示されるべき画素中の緑の色信号成分の出力値を示し、OUT(B)は実際にCRT上に表示されるべき画素中の青の色信号成分の出力値を示す。
また、Dnew(R)は新たにCRT上に表示されるべき画素中の赤の色信号成分の入力値を示し、Dnew(G)は新たにCRT上に表示されるべき画素中の緑の色信号成分の入力値を示し、Dnew(B)は新たにCRT上に表示されるべき画素中の青の色信号成分の入力値を示す。
また、Dold(R)は既にCRT上に表示されている画素中の赤の色信号成分の入力値を示し、Dold(G)は既にCRT上に表示されている画素中の緑の色信号成分の入力値を示し、Dold(B)は既にCRT上に表示されている画素中の青の色信号成分の入力値を示す。
αは既にCRT上に表示されている画面のデータDoldと新たにCRT上に表示されるべき画面のデータDnewとの混合率を示し、新たにCRT上に表示されるべき画面に既にCRT上に表示されている画面をどの程度混合するかを示す係数である。
たとえばこの係数αが「0」のとき、RGBの各出力値OUTは新たにCRT上に表示されるべきデータDnewに等しくなる。また、係数αが「1」のとき、RGBの各出力値OUTは既にCRT上に表示されているデータDoldに等しくなる。RGBの各データが8ビットからなる場合は、1画素において約1600万色(自然色)が表現され得る。
次に、図4のブロック図を参照してα−ブレンド処理の動作を説明する。
画素処理ユニット13においてα−ブレンド処理が行なわれるとき、入力ノード131には8ビットの係数αが与えられ、入力ノード132には既にCRT上に表示されている8ビットの画像データDold〈R〉、Dold〈G〉またはDold〈B〉が与えられる。この画像データDoldはキャッシュメモリ12から供給される。また、入力ノード133には(1−α)×Dnewで表されるデータが与えられる。このデータ(1−α)×Dnewは、外部ICなどにおいて係数αおよびデータDnew〈R〉〈G〉〈B〉に基づいて演算処理により生成されたものである。したがって、入力ノード133には、Doldの〈R〉,〈G〉,〈B〉のうち対応する1つが入力される。
入力ノード131に与えられたデータαと、入力ノード132に与えられたデータDoldとは、乗算器134によって乗算される。この乗算された結果データα×Doldは(2×8)ビットからなるが、本実施例では各色成分を表わすビット数を8ビットとしているため、そのうち上位8ビットの結果データα×Doldだけが加算器135に与えられる。下位8ビットは誤差として切り捨てるが、2進数なので、0捨1入を行なう。
加算器135においては、乗算器134から与えられた結果データα×Doldと、入力ノード133に与えられたデータ(1−α)×Dnewとが加算される。データの減算のため、外部から与えられる(1−α)Dnewは、「2」の補数をとることも可能である。
加算器135からの結果データα×Dold+(1−α)×Dnewの値がマイナスになるときは加算器135からクランプ回路136へアンダフローフラグ信号UFが与えられる。また、加算器135からの結果データα×Dold+(1−α)×Dnewの値が「255」を超えるときは、加算器135からクランプ回路136へオーバフローフラグ信号OFが与えられる。
クランプ回路136においては、アンダフローフラグ信号UFが与えられたとき、加算器135からの結果データが強制的に「0」に設定され、オーバフローフラグ信号OFが与えられたとき、加算器135からの結果データは強制的に「255」に設定される。すなわち、クランプ回路136は、加算器135からの結果データの範囲が「0〜255」以外のとき、「0」または「255」にクランプする。
画素処理ユニット13においてα−ブレンド処理が行なわれるとき、「1」の選択信号SLがマルチプレクサ138に与えられるため、クランプ回路136からのデータが選択され、出力ノード139を介して出力される。
(2) ラスタオペレーション
次に、画素処理ユニット13においてラスタオペレーションが行なわれる場合について説明する。
この場合、入力ノード132には上記α−ブレンド処理の場合と同様に、既にCRT上に表示されているデータDoldが与えられる。一方、入力ノード133には新たにCRT上に表示されるべきデータDnewが与えられる。このデータDnewは外部データDQ0〜DQ31として与えられたものである。
これらのデータDoldおよびDnewはともにラスタオペレーション回路137へ与えられる。ラスタオペレーション回路137においては、これらのデータDoldおよびDnewに基づいて、動作選択信号OPSEL0〜OPSEL3によって指定された論理演算処理が行なわれる。動作選択信号OPSEL0〜OPSEL3と論理関数との関係は上記表1で既に示したとおりである。
画素処理ユニット13においてラスタオペレーションが行なわれるときは、「0」の選択信号SLがマルチプレクサ138に与えられる。これにより、ラスタオペレーション回路137からの結果データが選択され、出力ノード139を介して外部に出力される。
(3) Zコンペア処理
次に、比較ユニット14においてZコンペア処理が行なわれる場合について説明する。
一般に、3次元グラフィックスを表示する場合、各画素はR、G、B、α、Zからなる5つのデータを持っている。ここで、R、GおよびBは色データを示し、αは上記α−ブレンド処理における混合率を示す。この混合率αは新しいデータDnewにどの程度古いデータDoldを混合するかを示すものであるから、透過率を示すものということもできる。さらに、Zは奥行き情報を示し、たとえばその値が大きいほど画面を見ている人から遠いことを表わし、その値が小さいほど画面を見ている人から近いことを表わす。
図12は、Zコンペア処理を説明するための模式図である。
図12(A)に示すようなZデータ(以下「ZA」と表わす)が予めメインメモリ11にストアされているとし、図12(B)に示すようなZデータ(以下「ZB」と表わすが外部データDQ0〜DQ31として与えられるとする。なお、Zデータは表示されない。
メインメモリ11にストアされているデータZAは、データバス17を介してキャッシュメモリ12へ読出される。キャッシュメモリ12へ読出されたデータZAは、さらにデータバス18を介して比較ユニット14へ供給される。一方、外部から図12(B)に示すようなデータZBが比較ユニット14に供給される。
この比較ユニット14において、キャッシュメモリ12から供給されたデータZAと、外部から供給されたデータZBとが画素ごとに順次比較される。
キャッシュメモリ12から供給されたデータZAが外部から供給されたデータZBよりも大きいときは、その外部から供給されたデータZBがキャッシュメモリ12に書込まれる。一方、キャッシュメモリ12から供給されたデータZAが外部から供給されたデータZBよりも小さいときは、キャッシュメモリ12にストアされているデータZAはそのまま維持される。その結果はメインメモリ11に書き戻される。
以上のような処理が1画面のすべての画素について行なわれると、図12(C)に示すように小さなZ値を持つデータが優先的にメインメモリ11に書込まれる。
以上、Z値の比較処理についてのみ説明したが、R,G,B,αなどの他のデータは、このフレームバッファメモリ10のメインメモリ11にストアされたり、あるいは他のフレームバッファメモリのメインメモリにストアされたりすることができる。
また、これらR,G,B,αなどのデータもZ値と同様にZコンペア処理の結果に従ってメインメモリに既にストアされた古いデータと、外部から与えられる新しいデータの古いデータとの演算結果とのいずれかのデータが選択され、これによりメインメモリにおけるデータが更新される必要がある。そのため、比較ユニット14のフラグ出力信号PASS−OUTは外部に出力されている。このフラグ出力信号PASS−OUTは他のフレームバッファメモリのキャッシュメモリへフラグ入力信号PASS−INとして与えられる。したがって、このフレームバッファメモリ10は他のフレームバッファメモリと連動して動作することができる。また、このように構成されたフレームバッファメモリ10は単にZコンペア処理を行なうZバッファに対応できるだけでなく、ROP/ブレンド処理を行なうカラーバッファにも対応することができるばかりでなく、表示画面のサイズに従ってメモリ領域の割付が自由にできる。ワンチップ内で色データとZデータとを持つことも可能である。また、色データ処理はバイト単位(ROP/ブレンドユニット単位)で設定することもできる。さらに、比較処理は色データのビットをマスクすることによって行なってもよい。
したがって、このフレームバッファメモリ10は非常に高いフレキシビリティを有するものとなる。
(4) ステンシル動作
ステンシル動作においては、たとえば、表示を書換えたいところのステンシルビットには「1」が設定され、表示を書換えたくないところには「0」が設定される。1画素を特定する32ビットのデータのうち上位8ビットはこのようなステンシルデータを表わし、下位24ビットは奥行き座標(Zデータ)を表わすものとし、上記図6に示された比較ユニット14の動作を説明する。
図6を参照して、一致比較回路441においては下位24ビットがマスクされる。したがって、この一致比較回路441は上位8ビットのデータが互いに一致するか否かを判別する。一方、大小比較回路451においては上位8ビットがマスクされる。したがって、大小比較回路451は下位24ビットのデータの大きさを比較する。
8ビットのステンシルデータと24ビットのZデータとからなる32ビットのデータDnewおよびDoldが、一致比較回路441および大小比較回路451に与えられる。一致比較回路441においては上位8ビットのステンシルデータのみが比較される。大小比較回路451においては下位24ビットのZデータのみが比較される。
この場合、ステンシルデータが互いに一致すると、一致フラグコントローラ442から「1」のフラグ信号が出力される。一致フラグコントローラはデータDnewがデータDoldに等しいとき「1」のフラグ信号を出力し、大小比較フラグコントローラはデータDnewよりもデータDoldのほうが大きいとき「1」のフラグ信号を出力するように設定する。
また、Dnew内のZデータがデータDold内のZデータよりも小さいと、大小フラグコントローラ452から「1」のフラグ信号が生成される。このとき、フラグ出力信号PASS−OUTは「1」となり、キャッシュメモリのデータの書替えが必要なことを示す。
(5) カラーインデックス動作
次に、1画素を表わす32ビットのデータが、下位8ビットのカラーインデックスデータと上位24ビットのZデータとから構成される場合について図1を参照して説明する。ここで、8ビットのカラーインデックスデータは、予め定められた256色の中から1つを特定するためのものである。
この場合はまず、ROP/ブレンドユニット152,153および154が外部より入力されたデータDQ8〜DQ31を通過する状態にされる。キャッシュメモリ12から読出されたカラーインデックスデータはROP/ブレンドユニット151に与えられる。このROP/ブレンドユニット151にはさらに外部からの8ビットのカラーインデックスデータDQ0〜DQ7が与えられる。
したがって、ROP/ブレンドユニット151に与えられたカラーインデックスデータはたとえばラスタオペレーション処理がされるが、ROP/ブレンドユニット152〜154に与えられた24ビットの外部から与えられたZデータはそのまま通過して出力される。
一方、比較ユニット14においては下位8ビットがマスクされる。したがって、上位24ビットのZデータのみがZコンペア処理(一致比較および大小比較の両方を含む)される。ここで、新しいデータのほうが古いデータよりもディスプレイ上の手前にある場合は、比較ユニット14から「1」のフラグ出力信号PASS−OUTが出力される。制御信号入力端子29は図示はされていないが電源電位にプルアップされているので、このフラグ出力信号PASS−OUTは書込イネーブル信号WEとしてキャッシュメモリ12へ与えられる。したがって、α−ブレンド処理された8ビットのカラーインデックスデータと外部から供給された24ビットのZデータとが転送バス19を介してキャッシュメモリに書込まれる。
図13に示されるように、この8ビットのカラーインデックスデータCIXはフレームバッファメモリ10からRAMDAC(ランダム・アクセス・メモリ・デジタル・アナログ・コンバータ)55に与えられる。RAMDAC55においてそのカラーインデックスデータCIXに応答して予めRAMDAC内のルークアップテーブル中に格納された256種類の色の中から1つが選択される。
以上のように、このフレームバッファメモリ10はラスタオペレーションのみを行なったり、α−ブレンド処理のみを行なったり、Zコンペア処理のみを行なったり、あるいはその画素処理ユニット13において色データの処理を行なうと同時に比較ユニット14においてZコンペア処理を行なうことができる。
図14は、このフレームバッファメモリ10にどのような処理を行なわせるかを決定するための制御レジスタ群を示す図である。図14を参照して、制御レジスタ群25は、コンスタントソースレジスタ251と、一致マスクレジスタ252と、大小マスクレジスタ253と、ROP/ブレンド制御レジスタ254と、比較制御レジスタ255とを含む。レジスタへの書込みは、外部から与えられるレジスタ書込オペレーションコードとアドレス信号RADの組合わせによって指定するレジスタに書込まれる。
次の表2は、制御レジスタ群25に与えられるアドレス信号RADとそのアドレス信号に応答して選択される制御レジスタとの対応関係を示す。たとえば、「000001」のアドレス信号RADが与えられた場合は、コンスタントソースレジスタ251が選択される。
Figure 2010044786
図14を参照して、コンスタントソースレジスタ251がリセットされるときには、「000000000H」のデータが強制的に設定される。ここで、「H」はその前の数字が16進数であることを示す。また、0〜31ビットにはデータ入力端子27から与えられた32ビットのデータDQが設定される。32〜35ビットには4ビットのDX端子に与えられるデータが設定される。ここで、DX端子は、第4の入力ノード(αが「1」を表わす)に対応する。DQ24〜31は35ビット目に対応し、DQ16〜23は34ビット目に対応し、DQ8〜15は33ビット目に対応し、DQ0〜7は32ビット目に対応する。
一致マスクレジスタ252がリセットされるときは、「00000000H」のデータが強制的に設定される。その0〜31ビットにはデータ入力端子27に与えられた32ビットのデータが設定される。ここで、各ビットの値が「0」の場合は対応するビットがマスクされ、各ビットの値が「1」のときは対応するビットがマスクされない。したがって、一致マスクレジスタ252がリセットされたときはすべてのビットがマスクされる。
大小比較レジスタ253がリセットされるときは、「00000000H」のデータが強制的に設定される。その他は、上記一致マスクレジスタ252と同様である。
ROP/ブレンド制御レジスタ254の第0〜第7ビットはROP/ブレンドユニット151を制御する。第8〜第15ビットはROP/ブレンドユニット152を制御する。第16〜第23ビットはROP/ブレンドユニット153を制御する。第24〜第31ビットはROP/ブレンドユニット154を制御する。ROP/ブレンド制御ユニット24がリセットされるときには、「03030303H」のデータが強制的に設定される。外部から入力されたデータが通過状態のモードに設定される。次の表3は各ユニットを制御する8ビットのデータの役割を示す。
Figure 2010044786
比較制御レジスタ255はリセットされるときは、「00000000H」のデータが強制的に設定される。第0〜第2ビットは大小フラグコントローラ452を制御する。第8および第9ビットは一致フラグコントローラ442を制御する。第16ビットはデータ入力端子27から供給されるデータDQかコンスタントソースレジスタ251にストアされている一定データKかを選択する。次の表4は、第0〜第2,第8,第9および第16ビットの役割を示す。
Figure 2010044786
図15は、パイプライン化された演算部を示す。なお、図中箱内の数字はパイプラインのステージ数を示す。図16は、図15のパイプライン化された演算部23をさらに詳細に示すブロック図である。図17は、図16に示された4つのROP−ブレンドユニットのみを示すブロック図である。図18は、図16に示された比較ユニット14のみを示すブロック図である。
図15〜図18から明らかなように、このフレームバッファメモリ10は7つのパイプラインステージから構成される。各パイプラインステージの間にはパイプラインレジスタPRが設けられている。
図19は、図17に示されたROP/ブレンドユニットのパイプライン動作を示すタイミングチャートである。図19を参照して、ROP/ブレンドユニット13による演算処理は第3〜第6ステージにおいて行なわれる。
図20は、図18に示された比較ユニット14のパイプライン動作を示すタイムチャートである。図20を参照して、比較ユニット14による比較動作は第3〜第6ステージにおいて行なわれる。
上記のように、ROP/ブレンドユニットにおける演算処理と比較ユニットにおける比較動作はともに4サイクルで行なわれるので、画素処理ユニット13からの結果データは比較ユニット14からの結果データと同時に出力される。
この実施例1においては、占有面積が小さいにもかかわらず大量のデータを記憶できるメインメモリ11が設けられているので、1フレームに相当する10.5メガビットのデータすべてをこのメインメモリ11にストアすることができる。このメインメモリ11にストアされているデータは、32ビットごとに外部から供給される32ビットのデータと演算されるが、その演算対象となる32ビットの8倍のデータが一旦キャッシュメモリ12の8ユニットのうちの1ユニットにストアされる。すなわち、メインメモリ11からキャッシュメモリ12へ256ビットのデータがまとめて転送される。このキャッシュメモリ12は記憶容量は小さいが、アクセス速度の速いSRAMで構成されているため、演算対象となる32ビットのデータを高速で供給することができる。
また、このフレームバッファメモリ10はワンチップで構成され、その256ビットのデータを転送するためのデータバス17が非常に長くなることもないため、データ転送速度が遅くなったり、あるいはデータを転送するときの消費電力が大きくなることもない。すなわち、この実施例1は、メインメモリが本来持っている「多ビットを同時にアクセスすることができる」という利点を十分に活用することができる。そのため、これら多ビットのデータをインタリーブして処理することにより、見かけ上メインメモリを高速に動作させることができる。
この実施例1においては、4つのROP/ブレンドユニット151〜154および比較ユニット14A〜14Dは、8ビットデータ処理単位に分割されたユニット構造としている。また、メインメモリ11が複数のバンクに分割されているため、ワード線およびビット線の長さを短くすることができる。ワード線およびビット線の長さが短いと、それらの持つ寄生容量が小さいため、メインメモリ11A〜11Dのアクセス時間が短くなるとともに、キャッシュメモリ12A〜12Dは高速に動作することができる。
また、これらバンク数を増減することによってこのフレームバッファメモリ10の機能を容易に拡張等することができる。そのため、種々のフレームバッファメモリを短時間で設計することができる。
また、上記のようにキャッシュメモリ12は1リード/1ライト/1リード・ライトの3ポート構成を取るため、演算部への読出し、演算結果の書込み、ならびにメインメモリ11とのデータ転送を同時に実行することができる。また、キャッシュメモリ12は、図示はされていないが、画素データを保持するブロック以外にキャッシュメモリ12内にあるいずれのデータが新たに書込まれたものであるかを示すフラグデータをも保持するように構成されている。このフラグは、キャッシュメモリ12に演算結果データの書込みを行なったとき、そのデータに対応するビットがセットされ、キャッシュメモリ12からメインメモリ11ヘデータを書き戻すとき、フラグビットがセットされているデータのみを書込み、フラグビットはリセットされているものはデータが書込まれない。これにより、不必要な書込バッファの動作を取除くことができ、消費電力を小さくすることができる。なお、このフラグによるメインメモリ11への書込制御は外部制御信号によって指定することができる。このフラグのリセットは、データをメインメモリ11からキャッシュメモリ12へ転送したとき、あるいは外部からの制御信号によって行なわれる。
[実施例2]
図21は、この発明の実施例2によるフレームバッファメモリの全体構成を示すブロック図である。なお、図中同一符号で示される部分は同一または相当部分を示す。
図21を参照して、このフレームバッファメモリ30は、メインメモリ11と、2つのキャッシュメモリ31Aおよび31Bと、画素処理ユニット13と、比較ユニット14と、シリアルアクセスメモリ(SAM)15と、コントローラ32とを備える。これらはすべて1枚の半導体基板上に形成されている。
このフレームバッファメモリ30はさらに、メインメモリ11から読出されたデータをキャッシュメモリ31Aおよび31Bに分配して供給するデマルチプレクサ(DMUX)33と、キャッシュメモリ31Aから読出されたデータとキャッシュメモリ31Bから読出されたデータとを選択してメインメモリ11に供給するマルチプレクサ(MUX)34とを備える。
このフレームバッファメモリ30はさらに、キャッシュメモリ31Aから読出されたデータとキャッシュメモリ31Bから読出されたデータとを選択して画素処理ユニット13に供給するマルチプレクサ35と、画素処理ユニット13からの結果データをレジスタファイル31Aおよび31Bに分配して供給するデマルチプレクサ36とを備える。マルチプレクサ35からのデータは比較ユニット14および外部へも供給される。
キャッシュメモリ31Aにおいては、外部から供給されるアドレス信号RF1ADに応答してデータが読出され、または書込まれる。キャッシュメモリ31Bにおいては、アドレス信号AF2ADに応答してデータが読出され、または書込まれる。比較ユニット14の出力信号PASS−OUTは外部に出力されるとともに、キャッシュメモリ31Aおよび31Bに供給される。
また、別のフレームバッファメモリにおける比較ユニットのフラグ出力信号はフラグ入力信号PASS−INとして外部からキャッシュメモリ31Aおよび31Bに供給される。コントローラ32は、外部から供給される制御信号CTに応答してメインメモリ11、キャッシュレジスタ31Aおよび31B、画素処理ユニット13および比較ユニット14など制御するための制御信号を生成するためのものである。
次に、この実施例2によるフレームバッファメモリ30の動作について説明する。
基本的な動作は上記実施例1と同様であるので、異なる動作だけを詳しく説明する。
上記実施例1では、キャッシュメモリ2の機能としてリードモディファイライトが必要な場合がある。ここで、リードモディファイライトとは、同一アドレスに対してリード動作とライト動作とが同一マシンサイクル内に生じたときリード動作を行なった後ライト動作を行なうことである。同一マシンサイクル内でリード動作とライト動作とを行なうことは、キャッシュメモリ2が高速で動作する場合は非常に困難である。
これに対し、この実施例2においては、たとえばキャッシュメモリ31Aを読出動作だけに用い、キャッシュメモリ31Bを書込動作だけに用いることによって、これらキャッシュメモリ31Aおよび31Bの動作速度を低下させることなく、同一アドレス(つまりアドレス信号RF1ADおよびRF2ADが同一)に対してリード動作とライト動作とが同一マシンサイクル内で行なわれ得る。
また、キャッシュメモリ31Aをデータ処理に用い、キャッシュメモリ31Bをメインメモリ11とのデータ転送に用いることによって、いわゆるバンクインタリーブが可能となる。このことは、画素処理ユニット13がさらに高速化される場合に問題となる、メインメモリ11へのアクセス時間と画素処理ユニット13の処理時間とのギャップを解消するためにも有効である。
[実施例3]
図22は、この発明の実施例3によるフレームバッファメモリ60の全体構成を示すブロック図である。
図22を参照して、このフレームバッファメモリ60は4つのマクロセルブロック61Aないし61Dを備える。たとえばマクロセルブロック61Aは、メインメモリ11Aと、キャッシュメモリ12Aと、画素処理ユニット13Aと、比較ユニット14Aとを備える。他のマクロセルブロック61Bないし61Dも同様である。
このフレームバッファメモリ60はさらに、フラグ発生器62を備える。フラグ発生器62は、マクロセルブロック61Aないし61Dにおける比較ユニットによる比較結果を示す4つのフラグ信号FAないしFDに応答して1つのフラグ出力信号PASS−OUTを生成するためのものである。
図23は、図22に示されたマクロセルブロック61Aないし61Dの比較ユニット14Aないし14D(マクロセルブロック61Bないし61Dの比較ユニット14Bないし14Dは図22に示されていない。)の構成をさらに詳細に示すブロック図である。
図23を参照して、各比較ユニット14Aないし14Dは、8ビットの比較回路64A〜64Dと、マルチプレクサ(MUX)65A〜65Dおよび66A〜66Dと、インバータ67A〜67Dおよび68A〜68Dとを備える。
比較回路64A〜64Dは、8ビットの入力データA24〜31と8ビットの入力データB24〜31とを比較するためのものである。比較ユニット14Aにおけるマルチプレクサ65Aの出力信号は、インバータ67Aを介して比較ユニット14Bにおけるマルチプレクサ65Bおよび66Bに与えられる。比較ユニット14Bにおけるマルチプレクサ65Bの出力信号は、インバータ67Bを介して比較ユニット14Cにおけるマルチプレクサ65Cおよび66Cに与えられる。比較ユニット14Cにおけるマルチプレクサ65Cの出力信号は、インバータ67Cを介して比較ユニット14Dにおけるマルチプレクサ65Dおよび66Dに与えられる。
各比較ユニット14A〜14Dにおけるマルチプレクサ66A〜66Dの出力信号は、1つの4入力NANDゲート69に与えられる。このNANDゲート69の出力信号DFLAGはフラグ発生器62に与えられる。また、比較ユニット14Dにおけるマルチプレクサ65Dの出力信号は、インバータ67Dを介してフラグ信号EFLAGとしてフラグ発生器62に与えられる。
図24は、図23に示された比較回路64Aの構成をさらに詳細に示すブロック図である。なお、他の比較回路64Bないし64Dもこの比較回路64Aと同様に構成されている。
図9を参照して、この比較回路64Aは、4ビットの比較回路641Aおよび641Bと、2入力NORゲート642と、マルチプレクサ643と、インバータ644とを備える。
比較回路641Aは、1ビットの比較回路642Aないし645Aと、4入力NORゲート646Aと、4入力NANDゲート647Aとを備える。各比較回路642A〜645A、1ビットの入力データA28〜A31と、1ビットの入力データB28〜B31と比較して出力信号DOおよびBOを生成する。各比較回路642A〜645Aの一方の出力信号DOはNORゲート646Aに入力される。各比較回路642Aの他方の出力信号POはNANDゲート647Aに入力される。比較回路641Bも上記比較回路641Aと同様に構成されている。
各比較回路641AにおけるNORゲート646Aの出力信号はマルチプレクサの一方に入力され、比較回路641BにおけるNORゲート(図示せず)の出力信号はマルチプレクサ643の他方に入力される。
比較回路641AにおけるNANDゲート647Aの出力信号はNORゲート642の一方に入力され、比較回路641BにおけるNANDゲート(図示せず)の出力信号はNORゲート642の他方に入力される。NORゲート642の出力信号はフラグ信号EFLGとして出力される。マルチプレクサ643の出力信号はインバータ644を介してフラグ信号DFLGとして出力される。
図25は、図24に示された比較回路643Aまたは645Aの構成をさらに詳細に示す回路図である。
図25を参照して、この比較回路643Aまたは645Aは、インバータ650および651と、NチャネルMOSトランジスタ652と、NチャネルMOSトランジスタおよびPチャネルMOSトランジスタからなる転送ゲート653ないし655と、インバータ656ないし659と、PチャネルMOSトランジスタ660と、NチャネルMOSトランジスタおよびPチャネルMOSトランジスタからなる転送ゲート661と、PチャネルMOSトランジスタ662と、NチャネルMOSトランジスタおよびPチャネルMOSトランジスタからなる転送ゲート663と、インバータ664ないし666とを備える。
入力信号AIは転送ゲート653および654に供給されるとともに、インバータ651を介して転送ゲート655に供給される。入力信号BIはトランジスタ652のゲート電極および転送ゲート653を構成するPチャネルMOSトランジスタのゲート電極に供給されるとともに、転送ゲート654を構成するNチャネルMOSトランジスタのゲート電極および転送ゲート655を構成するPチャネルMOSトランジスタのゲート電極に供給される。この入力信号BIはまた、インバータ650を介して転送ゲート653を構成するNチャネルMOSトランジスタのゲート電極および転送ゲート654を構成するPチャネルMOSトランジスタのゲート電極に供給されるとともに、転送ゲート655を構成するNチャネルMOSトランジスタのゲート電極に供給される。
トランジスタ652および転送ゲート653の出力信号は、インバータ657を介して転送ゲート661に供給される。転送ゲート654および655の出力信号は、インバータ658を介して転送ゲート663を構成するPチャネルMOSトランジスタのゲート電極に供給される。さらに、このインバータ658の出力信号は、インバータ659を介してトランジスタ662のゲート電極および転送ゲート663を構成するNチャネルMOSトランジスタのゲート電極に供給される。このインバータ658の出力信号はまた、インバータ666を介して出力信号POとして出力される。
図24に示されている隣接する比較回路642Aまたは644Aからの出力信号EOB(図25のFIB)は、転送ゲート661を構成するPチャネルMOSトランジスタのゲート電極に供給されるとともに転送ゲート663に供給される。この信号EIBはまた、インバータ656を介してトランジスタ660のゲート電極および転送ゲート661を構成するNチャネルMOSトランジスタのゲート電極に供給される。トランジスタ660および転送ゲート661の出力信号はインバータ664を介して出力信号DOとして出力される。トランジスタ662および転送ゲート663の出力信号はインバータ665を介して出力信号EOとして出力される。
次の表5は、この比較回路643Aまたは645Aの動作を示す真理値表である。
Figure 2010044786
図26は、図24に示された比較回路642Aまたは644Aの構成をさらに詳細に示す回路図である。
図26を参照して、この比較回路642Aまたは644Aは、上記比較回路643Aまたは645Aと同様に、インバータ650および651と、トランジスタ652と、転送ゲート653ないし655と、インバータ657ないし659および666とを備える。この比較回路642Aまたは644Aは、上記比較器643Aまたは645Aと異なり、インバータ667と、PチャネルMOSトランジスタ668と、転送ゲート669および670と、NチャネルMOSトランジスタ671と、インバータ672および673とを備える。
トランジスタ652および転送ゲート653の出力信号は、インバータ657を介して転送ゲート669に供給される。入力信号EIは、トランジスタ668のゲート電極および転送ゲート669を構成するNチャネルMOSトランジスタのゲート電極に供給されるとともに、転送ゲート670に供給される。この入力信号EIはまたは、インバータ667を介して転送ゲート669を構成するPチャネルMOSトランジスタのゲート電極に供給される。
トランジスタ668および転送ゲート669の出力信号は、インバータ672を介して出力信号DOとして出力される。インバータ658の出力信号は転送ゲート670を構成するPチャネルMOSトランジスタのゲート電極およびトランジスタ671のゲート電極に供給される。このインバータ658の出力信号はまた、インバータ659を介して転送ゲート670を構成するNチャネルMOSトランジスタのゲート電極に供給されるとともに、インバータ666を介して出力信号POとして出力される。転送ゲート670およびトランジスタ671の出力信号は、インバータ673を介して出力信号EOBとして出力される。
次の表6は、この比較回路643Aまたは645Aの動作を示す真理値表である。
Figure 2010044786
図27は、図22に示されたフラグ発生器62の構成を示す回路図である。
図27を参照して、このフラグ発生器62は、インバータ621および622と、NANDゲート623および625と、インバータ624および626とを備える。
この実施例3において、比較回路14A〜14Dは、2つの32ビットの入力データA0〜31およびB0〜31を比較してそれらのいずれが大きいか、またはそれが一致するか否かを判定する。また、比較回路14A〜14Dは、32ビットの入力データを8ビットずつ4つに分割してそれらを並列に処理することができるので、高速で比較処理を行なうことができる。
さらに、8ビットの比較回路14A〜14Dの構成はマルチプレクサの入力信号と選択信号のみ異なるだけであるため、設計時間は大幅に短縮される。
さらに、8ビットの比較回路64Aは2つの4ビットの比較回路641Aおよび641Bから構成され、これら2つの4ビットの比較回路641Aおよび641Bの構成も全く同一であるため、設計時間はさらに大幅に短縮される。また、これら4ビットの比較回路641Aおよび641Bも並列に処理を行なうことができるので、処理時間がさらに高速化される。
次に、図25に示された1ビットの比較回路643Aまたは645Aの動作について説明する。
図25において、入力データAIおよびBIは、比較されるべき入力データのうちの第mビット目のデータである。入力信号EIBは、上位ビットが比較された結果、第(m+1)ビット目の入力データAI(m+1)が第(m+1)ビット目の入力データBI(m+1)に等しければ「0」にセットされ、入力データAI(m+1)が入力データBI(m+1)に等しくなければ「1」にセットされる。入力信号BIBが「0」のときだけ入力データAI(m)およびBI(m)の比較結果が有効となり、入力信号EIBが「1」のときは、より上位ビットが比較されることによって入力データAIおよびBIの大小は決定されているため、下位ビットの判定結果は無効となる。すなわち、入力信号EIBが「1」のとき、入力データAI(m)BI(m)に関係なく、出力信号DOは「0」となる。
また、入力データAI(m)が入力データBI(m)に等しいとき、出力信号DOは「0」となり、出力信号EOは「1」となる。また、入力データAI(m)が入力データBI(m)よりも大きいとき、出力信号DOは「1」となり、出力信号EOは「0」となる。さらに、入力データAI(m)が入力データBI(m)よりも小さいとき、出力信号DOは「0」となり、出力信号EOは「0」となる。
入力信号EIBが「0」のとき、出力信号DOおよびEOの値に基づいて、入力データAI(m)およびBI(m)の大小を比較した結果を知ることができる。このように、大小比較を行なう場合、上位ビットから順に比較が行なわれる。したがって、入力データAIが入力データBIに等しいことが判明するのに最も時間がかかる。そのため、入力データAIが入力データBIに等しい場合に、出力信号POを採用することによって処理時間が短縮される。
この出力信号POは、入力データAI(m)が入力データBI(m)に等しいとき、「1」にセットされるが、この出力信号POは出力信号EOに比べて通過するゲートの数が少ないため、その少ない分だけ早く確定する。出力信号POは入力データAI(m)およびBI(m)という2つの信号の値によってのみ決定されるため、上位側ビットの状態を知る必要がなく、すべてのビットは同時に確定される。そのため、その出力信号POが「1」にセットされているビットでは、その値が等しいという情報が得られる。
図26に示される1ビットの比較回路642Aまたは644Aは、図26に示される1ビットの比較回路643Aまたは645Aとペアで用いられる。図25に示される比較回路643Aまたは645Aは正論理の出力信号EOを出力するため、この比較回路642Aまたは644Aには上記入力信号EIBの代わりに正論理の入力信号EIが入力され、上記出力信号EOの反転信号である負論理の出力信号EOBが出力される。
このように、図25に示された比較回路643Aまたは645Aと図26に示された比較回路642Aまたは644Aとを交互に用いることによって、出力信号EOの伝達経路上にインバータを挿入することを回避することができる。これは前述のように、出力信号EOの伝達経路がこの比較回路642Aまたは644Aのクリティカル経路だからである。
なお、図26に示された比較回路642Aまたは644Aの動作は、図25に示された比較回路643Aまたは645Aの動作と基本的には同一である。
次に、図24に示された4ビットの比較回路641Aの動作について説明する。今、入力データA28〜31が入力データB28〜31に等しいとき、比較回路642Aないし645Aの出力信号POはすべて「1」となる。したがって、これらの出力信号POが入力されるNANDゲート647Aは「0」を出力する。
このとき、入力データA24〜27が入力データB24〜27に等しければ、NORゲート642の入力信号がともに「0」となるため、フラグ信号EFLGは「1」にセットされる。そのため、図8に示されるマルチプレクサ65Aにおいて「1」が選択されて出力され、比較回路14Bにおけるマルチプレクサ66Bに与えられる。したがって、さらに下位8ビットの入力データA16〜23およびB16〜23が比較された結果であるフラグ信号DFLAGが、マルチプレクサ66Bによって選択される。
もしも入力データD24〜31が入力データB24〜31に等しくなく、フラグ信号EFLAGが「0」のときは、マルチプレクサ65Aは「0」を出力する。そのため、マルチプレクサ66Bは「0」を選択して出力するので、入力データD16〜23およびB16〜23の比較結果は無効となる。このように、入力データの上位ビットで既にいずれが大きいかが判明したときは、速やかに最終的な出力信号であるフラグ信号(4入力NAND69の出力)DFLAGが出力される。
もしも比較回路645Aの出力信号EOが「1」であれば、入力データA28〜31は入力データB28〜31に等しいため、マルチプレクサ643は下位4ビットの比較回路641BにおけるNORゲートの出力信号を選択して出力する。
次に、図27および図42に示される32ビットの比較回路14A〜14Dの動作について説明する。
いま、入力データA24〜31が入力データB24〜31に等しければ、マルチプレクサ65Aは「1」を選択して出力する。そのため、マルチプレクサ66Bは入力データA16〜23およびB16〜23の比較結果であるフラグ信号DFLAG(比較回路64Bの出力)を選択して出力する。
ここで、入力データA16〜23が入力データB16〜23よりも大きいとすると、マルチプレクサ66Bの出力信号は「1」となり、NANDゲート69の出力信号DFLAGは「1」となる。さらに、8ビットの比較回路64Bのフラグ信号EFLAGは「0」となるため、マルチプレクサ65Bは「0」を選択して出力する。したがって、マルチプレクサ66Cおよび66Dは「0」を選択して出力する。これにより、インバータ68Cおよび68Dの出力信号は「1」となり、またフラグ信号EFLAGは「0」となる。
この実施例3において重要なことは、データが4ビット単位および8ビット単位で並列に処理されるという点である。これにより、32ビットのデータの比較処理は大幅に高速化される。さらに、これら比較回路の構成は規則的であるため、回路設計および/またはレイアウト設計のための時間を大幅に短縮することができる。
[実施例4]
図28は、この発明の実施例4によるフレームバッファメモリにおける画素処理ユニット13のROP/ブレンドユニット151の構成を示すブロック図である。画素処理ユニット13の他のROP/ブレンドユニット152〜154もROP/ブレンドユニット151と同様の構成である。
図28を参照して、このROP/ブレンドユニット151は、α−ブレンド処理における定数αを入力するための入力ノード201と、現在画面に表示されている画像データDoldを入力するための入力ノード202と、次に画面に表示されるべきデータDnewを入力するための入力ノード203とを備える。
このROP/ブレンドユニット151はさらに、算術論理演算器(ALU)204と、乗算器205と、算術演算器(AU)206と、クランプ回路207と、マルチプレクサ208とを備える。
算術論理演算器204は、入力ノード202から与えられたデータDoldから入力ノード203から与えられたデータDnewを減算するか、またはこれらデータDoldおよびDnewに基づいてラスタオペレーションを行なう。
乗算器205は、算術論理演算器204の結果データと、入力ノード201から与えられた係数データαとを乗算する。算術演算器206は、乗算器205の結果データα×(Dold−Dnew)と、入力ノード203から与えられたデータDnewとを加算する。クランプ回路207が算術演算器206がオーバフローまたはアンダフローを起こしたとき、算術演算器206の結果データを強制的に所定の値にクランプする。
マルチプレクサ208は選択信号SLに応答して算術論理演算器204の結果データか、またはクランプ回路207の出力データのいずれかを選択して出力ノード209を介して出力する。
この実施例4によるROP/ブレンドユニット151は、上記数2で表されるα−ブレンド処理を行なうことができる。すなわち、上記数2は、次の数3のように変形することができる。
Figure 2010044786
この実施例4によるROP/ブレンドユニット151は、上記数3に従ってα−ブレンド処理を行なうことができる。すなわち、このROP/ブレンドユニット151においては、1つの乗算器205が設けられているだけであるが、完全なα−ブレンド処理が行なわれる。
また、この実施例4によれば、上記実施例1のように外部ICなどによって予め演算処理されたデータ(1−α)×Dnewを与えなくても、完全なα−ブレンド処理が行なわれる。実施例4の回路によれば、ALU204にROP処理に必要な論理演算機能を持たせているので、ROP処理も行なうことが可能である。
[実施例5]
図29は、この発明の実施例5によるフレームバッファメモリにおけるROP/ブレンドユニットの構成を示すブロック図である。
図29を参照して、このROP/ブレンドユニット22は、図4に示されたROP/ブレンドユニット151が改良されたものである。このROP/ブレンドユニット151が上記ROP/ブレンドユニット151と異なるところは、入力ノード221にα−ブレンド処理における8ビットの係数αに1ビットのデータを加えたデータ*αが与えられている点と、マルチプレクサ222を備えている点である。マルチプレクサ222は、係数αに追加された1ビットの2値信号CNに応答して乗算器134の結果データおよび入力ノード132のデータDoldを選択して出力する。
一般に、グラフィックス処理LSIにおいて画素データは固定小数点で表される。そのため、α−ブレンド処理を行なう場合において、次の新しい画像データDnewを全くブレンドせず、現在の古い画像データDoldをそのまま維持したいとき、つまり係数αを「1」(10進法)としたいとき、演算誤差が発生するという問題があった。たとえばNビットでα=1(10進法)を表わすと、実際の係数αは1−1/2N となる。したがって、α=1であっても乗算器134の出力データはDoldにはならず、古い画像データDoldをそのまま維持することができない。
この実施例5による画素処理ユニット32は、少ないハードウェアの追加によって、α=1のときに上述のようなDoldの変化を起こすことなく、α−ブレンド処理を行なうことができ、色の劣化を防ぐことができる。
入力ノード221から入力される係数データ*αは、その最上位に1ビットの維持データCと、その下位側に8ビットの係数データαとを備える。最上位ビット(MSB)が「1」(2進法)となるのは、係数αが「1」(10進法)のときだけであり、このとき下位側の8ビットはすべて「0」とみなし無視される。一方、係数αが「1」(10進法)よりも小さいときは、MSBは「0」となり、下位側の8ビットは係数αの値を表わす。
この係数データ*αのMSBである維持データCNは、マルチプレクサ222へ与えられる。この維持データCNが「1」のとき、入力ノード132からの古い画像データDoldが選択されて出力される。したがって、古い画像データDoldがそのまま出力される。
なお、維持データが「0」のときは、乗算器134の結果データが選択されて出力されるため、上記実施例1と同様に、通常通りα−ブレンド処理が行なわれる。
[実施例6]
図30は、この発明の実施例6によるフレームバッファメモリにおけるROP/ブレンドユニットの構成を示すブロック図である。この実施例6によるROP/ブレンドユニット151は、上記実施例4によるROP/ブレンドユニット151が改良されたものである。
図30を参照して、この画素処理ユニット151は、上記実施例4と同様に、算術論理演算器204と、乗算器205と、算術演算器206と、クランプ回路207と、マルチプレクサ208とを備え、さらに上記実施例4と異なりマルチプレクサ242を備える。
すなわち、この実施例6が上記実施例4と異なるところは、入力ノード241に、ブレンド処理における係数データαに1ビットの維持データCNが追加された係数データ*αが入力されている点と、この維持データCNに応答してマルチプレクサ242が乗算器205の結果データと算術論理演算器204の結果データとを選択して算術演算器206へ供給している点である。
上記実施例5と同様に、係数αが「1」(10進法)のとき、「1」のMSBを持つ係数データ*αが入力ノード241に与えられる。この係数データ*αのMSBは維持データCNとしてマルチプレクサ242へ供給される。マルチプレクサ242は、維持データCNが「1」であるため、算術論理演算器204の結果データを選択して算術演算器206へ供給する。したがって、データDnewの値によらず、加算器206の出力は古い画像データDoldがそのまま出力される。
なお、係数データαが「1」(10進法)よりも小さいときは、その係数データ*αのMSBは「0」となるため、「0」の維持データCNがマルチプレクサ242へ供給される。したがってマルチプレクサ242は乗算器205の結果データを選択して算術演算器206へ供給するので、上記実施例4と同様に、通常通りα−ブレンド処理が行なわれる。
[実施例7]
図31は、この発明の実施例7による画像記憶処理システムの全体構成を示すブロック図である。図31を参照して、この画像記憶処理システムは2つのフレームバッファメモリ10,70を備える。
この画像記憶処理システムは、上記実施例1によるフレームバッファメモリを2つ用いて画素当たり64ビットのデータを処理するものである。フレームバッファメモリ10のデータ入力端子27には、32ビットのカラーデータCDQ0〜CDQ31が与えられる。このカラーデータCDQは、たとえば8ビットのR(赤)データと8ビットのG(緑)データと8ビットのB(青)データと8ビットのα(透過係数)データとから構成される。一方、フレームバッファメモリ70のデータ入力端子27には、32ビットのZデータZDQ0〜ZDQ31が与えられる。
上記のように2つのフレームバッファメモリのうち一方をカラーデータの処理専用に用い、他方をZデータの処理専用に用いる場合は、図31および図32に示されるように、フレームバッファメモリ70の制御信号出力端子28はフレームバッファメモリ10の制御信号入力端子29に接続され、フレームバッファメモリ10および70のキャッシュメモリの書込みを制御する。フレームバッファメモリ70の制御信号入力端子29は電源電位にプルアップされる。また、双方のメインメモリ11には同一のアドレス信号DADが与えられ、フレームバッファメモリ10,70の同じDRAMのアドレスに1つのピクセルに対応するデータが格納される。双方のコントローラ16には同一のクロック信号CLKが与えられる。
また、フレームバッファメモリ10の制御レジスタ群25には所定のデータが与えられ、それによりこのフレームバッファメモリ10はカラーデータの処理専用に設定される。具体的には、比較ユニット14からのフラグ出力信号PASS−OUTが「1」に固定される。さらにROP/ブレンドユニットの動作モードが設定される。一方、フレームバッファメモリ70の制御レジスタ群25にも所定データRADが与えられ、それによりこのフレームバッファメモリ70はZデータの処理専用に設定される。具体的には、4つのROP/ブレンドユニット151〜154のすべてが与えられたデータを通過させるように設定される。
次の表7はフラグ入力信号PASS−INおよびフラグ出力信号PASS−OUTの真理値表を示す。
Figure 2010044786
上記の表7を参照して、フレームバッファメモリ10においては「1」のフラグ出力信号PASS−OUTがANDゲート26に与えられているので、フレームバッファメモリ70から供給されるフラグ入力信号PASS−INが「1」のときキャッシュメモリ12は書込可能になり、そのフラグ入力信号PASS−INが「0」のときそのキャッシュメモリ12は書込不能になる。
一方、フレームバッファメモリ70においては、「1」のフラグ入力信号PASS−INがANDゲート26に与えられているので、比較ユニット14からのフラグ出力信号PASS−OUTが「1」のときキャッシュメモリ12は書込可能になり、そのフラグ出力信号PASS−OUTが「0」のときそのキャッシュメモリ12は書込不能になる。
フレームバッファメモリ10のデータ入力端子27に与えられた32ビットのカラーデータCDQ0〜CDQ31は、データバス21を介してROP/ブレンドユニット151〜154および比較ユニット14に与えられる。一方、フレームバッファメモリ70において、キャッシュメモリ12から読出された32ビットのカラーデータはデータバス18を介して比較ユニット14に与えられる。外部から与えられたZデータZDQ0〜ZDQ31はROP/ブレンドユニット151〜154にも与えられるが、予め制御レジスタ群25に設定された情報に従って何らの処理もされずに通り抜ける。
フレームバッファ70内の比較ユニット14においてはキャッシュメモリ12から与えられた32ビットのZデータと外部から与えられた32ビットのZデータZDQ0〜ZDQ31とが比較される。ここで、現在表示されている画面のほうが次に表示される画面よりもディスプレイ上で手前にある(キャッシュメモリ12から与えられたZデータのほうが外部から与えられたZデータよりも小さい)は、比較ユニット14は「0」のフラグ出力信号PASS−OUTを生成する。比較処理と並列にROP/ブレンドユニットで処理されたデータのキャッシュメモリへの書込みを禁止する。一方、次に表示される画面のほうが現在表示されている画面よりも手前にある(外部から与えられるZデータのほうがキャッシュメモリ12から与えられるZデータよりも小さい)場合は、比較ユニット14は「1」のフラグ出力信号PASS−OUTを生成する。比較処理と並列にROP/ブレンドユニットで処理されたデータのキャッシュメモリへの書込みをイネーブルにする。
図34はZデータ用のフレームバッファメモリ70におけるパイプライン動作を示すタイミングチャートである。図34に示されるように、このフレームバッファメモリ70は7つのパイプラインステージから構成される場合を示している。ROP/ブレンドユニット151〜154および比較ユニット14の各動作は、第3〜第6ステージにおいて行なわれる。したがって、外部から与えられたZデータZDQ0〜ZDQ31がROP/ブレンドユニット151〜154の中を通り抜けてそのROP/ブレンドユニット151〜154から出力されるのと同時に、フラグ出力信号PASS−OUTが比較ユニット14から出力される。
上述したように、ROP/ブレンドユニット151〜154および比較ユニット14はともに4つのパイプラインステージから構成されているので、フレームバッファメモリ10に与えられたカラーデータCDQ0〜CDQ31がROP/ブレンドユニット151〜154において第6ステージ目の処理をしているときにフレームバッファメモリ70に与えられたZデータZDQ0〜ZDQ31がキャッシュメモリ12から与えられたZデータとは比較ユニット14において比較されてその比較結果がフラグ出力信号PASS−OUTとして出力される。
このフラグ出力信号PASS−OUTはフレームバッファメモリ10のPASS−IN端子を通ってフレームバッファメモリ10に与えられ、キャッシュメモリに対する書込許可信号が生成される。この書込許可信号の生成は第7ステージにて行なわれる。したがって、フラグ出力信号PASS−OUTが「1」の場合は、フレームバッファメモリ10のROP/ブレンドユニット151〜154から出力された結果データはキャッシュメモリ12に書込まれる。これと同時に、フレームバッファメモリ70のROP/ブレンドユニット151〜154から出力されたZデータZDQ0〜ZDQ31は対応するキャッシュメモリ12に書込まれる。
一方、フラグ出力信号PASS−OUTが「0」の場合は、フレームバッファメモリ10および70のいずれにおいてもそれらROP/ブレンドユニット151〜154から出力された結果データはキャッシュメモリ12に書込まれない。
上記のように次に表示されるべき画面が現在表示されている画面よりも手前にある場合はカラーデータおよびZデータともに書換えられるが、現在表示されている画面が次に表示されるべき画面よりも手前にある場合はカラーデータおよびZデータともに書換えられない。
この実施例7によれば、フレーム当たりのデータ量が大きく、(R,G,B,α)とZ値を1つのフレームバッファに格納できないときに、Z値と(R,G,B,α)を別々のチップの入れるようにしても、同一チップ内にすべてのデータを格納していても同じ性能で処理を行なうことができる。複数チップ構成にしてもPASS−OUT信号をPASS−INに接続することによりZコンペアの結果を伝達できるので、負荷回路が少なくてかつ容易に複数チップ構成を取ることができる。
図31に示された画像記憶処理システムではフレームバッファメモリ10の制御信号出力端子28には何も接続されず、かつフレームバッファメモリ70の制御信号入力端子29には電源電位が与えられているが、図35に示されるように、フレームバッファメモリ10の制御信号出力端子28がフレームバッファメモリ70の制御信号入力端子29に接続されてもよい。この場合は、フレームバッファメモリ10の比較ユニット14によって生成された「1」のフラグ出力信号PASS−OUTがフレームバッファメモリ70のANDゲート26に与えられる。
また、フラグ入力信号PASS−INおよびフラグ出力信号PASS−OUTは、高速化およびノイズ対策のためにディファレンシャル構成にしてもよい。
[実施例8]
図36は、この発明の実施例8による画像記憶処理システムの全体構成を示すブロック図である。図36を参照して、この画像記憶処理システムは、3つのフレームバッファメモリ71〜73を備える。このシステム全体には96ビットの画像データが与えられ、各フレームバッファメモリには32ビットの画像データが与えられる。
このフレームバッファメモリ71は2つの制御信号入力端子75,76と、比較ユニット14から与えられるフラグ出力信号PASS−OUT、制御信号入力端子75に与えられるフラグ入力信号PASS−IN1および制御信号入力端子76に与えられるフラグ入力信号PASS−IN2を受ける3入力ANDゲート74とを備える。
次の表8は、フラグ入力信号PASS−IN1、PASS−IN2およびフラグ出力信号PASS−OUTの真理値表である。
Figure 2010044786
なお、図36に示されたフレームバッファメモリ71には図示はされていないが、上記実施例1によるフレームバッファメモリ10と同様に、メインメモリ11、ROP/ブレンドユニット151〜154、シリアルアクセスメモリ15なども設けられている。
この実施例8のように、1つのフレームバッファメモリに複数の制御入力端子が設けられていてもよい。図36に示されるように、2つの制御信号入力端子75,76が設けられている場合は、他の2つのフレームバッファメモリ72,73のフラグ出力信号PASS−IN1およびPASS−IN2がそれら制御信号入力端子75および76に与えればよい。1つのフレームバッファメモリのPASS−OUT信号が他の2つのフレームバッファメモリのPASS−IN端子のいずれかに与えられており、1つのPASS−IN端子に複数の信号を与えることはない。
この実施例8においては、各フラグ出力信号PASS−OUTが他の2つのフレームバッファメモリにおけるキャッシュメモリの書込みを制御している。
なお、制御信号入力端子75および76は、上記実施例7と同様に必要に応じてプルアップされてもよく、あるいはプルダウンされてもよい。
[実施例9]
図37は、この発明の実施例9によるフレームバッファメモリの全体構成を示すブロック図である。このフレームバッファメモリ80においては、この発明によるテスト方法を実施することができる。この実施例9では、フレームバッファメモリの場合を説明したが、本発明の効果は一般的なSIMD/MIMD型アーキテクチャあるいはSIMD型処理を行なえる構成のものにも適用しても同様の効果が得られることはいうまでもない。
図37を参照して、このフレームバッファメモリ80はテストが容易に行なえるように設計されたSIMDアーキテクチャを採用するLSIであって、4つのSIMD型データ処理ブロック81Aないし81Dと、フラグ発生器89とを備える。
たとえばSIMD型データ処理ブロック81Aは、データメモリ82Aと、データ処理ユニット83Aとを備える。データメモリ82Aにおけるデータはデータバス84Aを介してデータ処理ユニット83Aに転送され、データ処理ユニット83Aにおけるデータは、データバス85Aを介してデータメモリ82Aに転送される。また、データ処理ユニット83Aにおけるデータは、データバス86Aを介して外部に出力され、かつデータ処理ユニット83Aには外部からデータDI0〜15がデータバス86Aを介して与えられる。他のデータ処理ブロック81Bないし81Dも、このデータ処理ブロック81Aと同一構成である。
また、データ処理ユニット83Aの処理結果は、データバス87Aを介してデータ処理ブロック81Bにおけるデータ処理ユニット(図示せず)へ供給される。データ処理ブロック81Bにおけるデータ処理ユニットの処理結果は、データバス87Bを介してデータ処理ブロック81Dにおけるデータ処理ユニット(図示せず)へ供給される。データ処理ブロック81Dにおけるデータ処理ユニットの処理結果は、データバス87Dを介してデータ処理ブロック81Cにおけるデータ処理ユニット(図示せず)へ供給される。さらにデータ処理ブロック81Cにおけるデータ処理ユニットの処理結果は、データバス87Cを介してデータ処理ブロック81Aにおけるデータ処理ユニット83Aへ供給される。
外部データDI0〜15はまた、データバス86Cを介してデータ処理ブロック81Cにおけるデータ処理ユニットへ供給されるとともに、そのデータ処理ユニットにおけるデータはデータバス86Cを介して外部に出力される。
また、外部から入力されるデータDI16〜31はデータバス86Bを介してデータ処理ブロック81Bにおけるデータ処理ユニットへ供給されるとともに、データバス86Dを介してデータ処理ブロック81Dにおけるデータ処理ユニットへ供給される。一方、データ処理ブロック81Bにおけるデータ処理ユニットのデータはデータバス86Bを介して外部へ出力され、またデータ処理ブロック81Dにおけるデータ処理ユニットのデータはデータバス86Dを介して外部に出力される。
データ処理ユニット83Aはテスト回路(図示せず)を備え、そのテスト回路からの結果データはデータバス88Aを介してフラグ発生器89に供給される。他のデータ処理ブロック81Bないし81Dにおいても同様に、データ処理ユニットにおけるテスト回路からの結果データはそれぞれデータバス88Bないし88Cを介してフラグ発生器89に供給される。フラグ発生器89はこれらの結果データに応答してフラグ信号FLGを生成する。
図38は、図37に示されたデータ処理ユニット83Aの構成を示すブロック図である。
図38を参照して、このデータ処理ユニット83Aは、データ処理回路91Aと一致検出回路92Aとを備える。データ処理回路91Aは、たとえば図4に示されたROP/ブレンドユニット151などを備える。
次に、このフレームバッファメモリ80をテストする方法について説明する。
まずテストを行なう前に、予めテストデータをデータメモリ82Aに外部から書込んでおく。次に、データメモリ82Aからテストデータを読出し、データバス84Aを介してデータ処理回路91Aに入力する。
一方、外部データDI0〜15をデータバス86Aを介してデータ処理回路91Aに入力する。データ処理回路91Aにおいては、これら2つのデータが処理され、その処理結果はデータバス85Aを介してデータメモリ82Aに転送される。この処理結果はまた、一致検出回路92Aへ供給されるとともに、データバス87Aを介してデータ処理ブロック81Bにおけるデータ処理ユニットの一致検出回路(図示せず)へも供給される。他のデータ処理ブロック81Bないし81Dにおいても、フレームバッファメモリ80および外部データとしてデータ処理回路91Aに与えるのと同じデータを与える。したがって、データ処理ブロック81Aないし81Dにおけるデータ処理回路の処理結果は、本来的にすべて一致するはずである。
データ処理ブロック83Aにおいては、データ処理回路91Aの処理結果と、隣接するデータ処理ブロック81Cにおけるデータ処理回路の処理結果とが一致検出回路92Aに与えられる。同様にして他のデータ処理ブロック81Bないし81Dにおいても、それ自身のデータ処理回路の処理結果と、隣接するデータ処理ブロックにおけるデータ処理回路の処理結果とがそれ自身の一致検出回路に与えられる。したがって、すべてのデータ処理ブロック81A〜81Dにおける一致検出回路は、隣接するデータ処理ブロックとの間でその処理結果が一致するか否かを判定する。もしもそれら処理結果が一致しなければ、「1」の判定結果がフラグ発生器89に与えられる。これら判定結果のうち少なくとも1つが「1」であれば、フラグ発生器89は「1」のフラグ信号FLGをデータバス90を介して出力する。これにより、このフレームバッファメモリ80が不良であることが判明する。
なお、フラグ発生器89はラッチ機能を備えているため、フラグ信号FLGは一旦「1」にセットされると、すべてのテストが終了するまでそのまま維持される。
この実施例9によるフレームバッファメモリ80は簡単な回路構成ではあるが、それら回路に異常があるか否かを容易かつ迅速にテストすることができる。また、複数のデータ処理ブロック81Aないし81Dを同時にテストすることができるため、テスト時間は大幅に短縮される。さらに、データメモリ82Aに予めテストデータを書込むため、LSIを実装状態でテストを行なうことが容易である。この実施例9では、データのビット数を指定しているが、本発明の効果はビット数に依らない。本実施例では、テスト対象となるデータ処理ユニットの数が「4」の場合を示しているが、それ以外(たとえば2以上)であっても同様の効果が得られることはいうまでもない。
[実施例10]
図39は、この発明の実施例10によるフレームバッファメモリにおけるデータ処理ユニットの構成を示すブロック図である。このデータ処理ユニット93Aは、上記実施例9におけるデータ処理ユニット83Aに代わるものである。
図39を参照して、このデータ処理ユニット93Aは、上記実施例9と同様にデータ処理回路91Aと、一致検出回路92Aとを備え、さらに上記実施例9と異なり疑似乱数データを発生するためのLFSR(Linear Feedhack Shift Register)94Aと、2つのマルチプレクサ95Aおよび96Aとを備える。
マルチプレクサ95Aは、データメモリ82Aからデータバス84Aを介して読出されたデータと、LFSR94Aからの乱数データのうちいずれか一方を選択してデータ処理回路91Aに与えるためのものである。このマルチプレクサ95Aにおいては、テストモード信号SL1が「1」のとき、データメモリ82Aから読出されたデータが選択され、テストモード信号SL1が「0」のとき、LFSR94Aからの乱数データが選択される。
マルチプレクサ96Aは外部からデータバス86Aを介して入力されたデータDI0〜15と、LFSR94Aからの乱数データのうちいずれか一方を選択してデータ処理回路91Aに与えるためのものである。このマルチプレクサ96Aにおいては、テストモード信号SL2が「1」のとき、LSFR94Aからの乱数データが選択され、テストモード信号SL2が「0」のとき、外部からのデータDI0〜15が選択される。
この実施例10においては、テスト時にデータ処理回路91Aに与えられる2つのデータの組合わせは、次の4通りがある。
すなわち、(1)データメモリ82Aから読出されたデータと外部から入力されたデータDI0〜15とがデータ処理回路91Aに与えられる場合と、(2)データメモリ82Aから読出されたデータとLFSR94Aからの乱数データとがデータ処理回路91Aに与えられる場合と、(3)LFSR94Aからの乱数データと外部から入力されたデータDI0〜15とがデータ処理回路91Aに与えられる場合と、(4)LFSR94Aからの乱数データとLFSR94Aからの乱数データとがデータ処理回路91Aに与えられる場合とがある。
いずれの組合せに従って2つのデータがデータ処理回路91Aに与えられるかは、マルチプレクサ95Aおよび96Aに与えられるテストモード信号SL1およびSL2によって設定することができる。
上記実施例9と同様に、一致検出回路92Aにおいては、データ処理回路91Aの処理結果と、隣接するデータ処理ブロックにおけるデータ処理回路の処理結果とが比較され、それらの処理結果が一致しないときフラグ信号FLGが「1」にセットされる。
この実施例10によるフレームバッファメモリは、乱数データを発生するためのLFSR94Aを備えている。したがって、データメモリ82Aの記憶容量が大きくてデータメモリ82Aに故障が発生する確率が高い場合においても、データ処理回路91Aに故障が発生していることを正確に判別することができる。すなわち、上記実施例9においては、データメモリ82Aに故障が発生している場合は、データメモリ82Aに故障が発生しているのか、データ処理回路91Aに故障が発生しているのか判別することができないが、この実施例10においては、データメモリ82Aを用いることなくテストが行なわれるため、確実にデータ処理回路91Aに故障が発生していることを判別することができる。
なお、上記実施例10においては1つのデータ処理ユニットが1つのLFSRを備えているが、フレームバッファメモリ80全体が1つのLFSRを備えていてもよい。この場合は、そのLFSRからの乱数データは各データ処理ブロック81Aないし81Dにおけるデータ処理回路に供給される。
また、LFSRは、テストが行なわれていないときデータレジスタとして使用するようにしてもよい。すなわち、LFSRと他のデータレジスタとを兼用するように構成してもよい。また、実施例8および9における一致検出回路92Aは、EXORゲートにより構成されていてもよい。さらに、上記実施例9および10における一致検出回路92Aは、一致検出機能を有する比較回路により構成されていてもよい。本実施例も、実施例9と同様に、一般的なSIMD/MIMD型アーキテクチャあるいはSIMD型処理を行なえる構成のものを適用しても同様の効果が得られる。本実施例はテスト対象となるデータ処理ユニットの数が2以上であれば、ここに述べた同様の効果が得られる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
10,30,60,70〜73,80 フレームバッファメモリ、11,11A〜11D メインメモリ(DRAM)、12,12A〜12D,31A,31B キャッシュメモリ(SRAM)、13,13A〜13D 画素処理ユニット、14,14A〜14D 比較ユニット、15,15A,15B シリアルアクセスメモリ(SAM)、17 グローバルバス、18,19,21 データバス、23 演算部、27 データ入力端子、28 制御信号出力端子、29,75,76 制御信号入力端子、44 一致比較部、45 大小比較部、131〜133,201〜203,221,241 入力ノード、134,205 乗算器、135 加算器、136,207 クランプ回路、137 ラスタオペレーション回路、204 算術論理演算器(ALU)、206 算術演算器(AU)、82A データメモリ。

Claims (8)

  1. 半導体基板と、
    前記半導体基板上に形成されかつ複数のデータを記憶する第1の記憶手段と、
    前記半導体基板上に形成されかつ複数のデータを記憶する第2の記憶手段と、
    前記半導体基板上に形成され前記第1および第2の記憶手段の間でデータを相互に転送する第1の転送手段と、
    前記半導体基板上に形成されかつ前記第2の記憶手段から転送された第1のデータと外部から転送された第2のデータとを演算する画像演算手段、
    前記半導体基板上に形成されかつ前記第2の記憶手段から前記画像演算手段へ前記第1のデータを転送する第2の転送手段と、
    前記半導体基板上に形成されかつ外部から前記画像演算手段へ前記第2のデータを転送する第3の転送手段と、
    前記半導体基板上に形成されかつ前記画像演算手段からの結果データを前記第2の記憶手段へ転送する第4の転送手段と、
    前記第1のデータを前記第2のデータと比較する比較手段とを備え、
    前記比較手段からの結果信号は外部に接続される半導体集積回路装置に供給する制御信号として出力され、
    前記第2の記憶手段は、前記比較手段からの結果信号と前記外部に接続される半導体集積回路装置が備える制御手段の出力信号とに応答して前記第4の転送手段によって転送された前記第2のデータの書込みが可能になる、半導体集積回路装置。
  2. 半導体基板と、
    前記半導体基板上に形成されかつ複数のデータを記憶する第1の記憶手段と、
    前記半導体基板上に形成されかつ複数のデータを記憶する第2の記憶手段と、
    前記半導体基板上に形成され前記第1および第2の記憶手段の間でデータを相互に転送する第1の転送手段と、
    前記半導体基板上に形成されかつ前記第2の記憶手段から転送された第1のデータと外部から転送された第2のデータとを演算する画像演算手段と、
    前記半導体基板上に形成されかつ前記第2の記憶手段から前記画像演算手段へ前記第1のデータを転送する第2の転送手段と、
    前記半導体基板上に形成されかつ外部から前記画像演算手段へ前記第2のデータを転送する第3の転送手段と、
    前記半導体基板上に形成されかつ前記画像演算手段からの結果データを前記第2の記憶手段へ転送する第4の転送手段と、
    外部に接続される半導体集積回路装置に供給する制御信号を出力する制御手段とを備え、
    前記第2の記憶手段は、前記制御手段からの前記制御信号と前記外部に接続される半導体集積回路装置が備える制御手段の出力信号とに応答して前記第4の転送手段によって転送された前記第2のデータの書込みが可能になる、半導体集積回路装置。
  3. 前記半導体基板上に形成され前記第1の記憶手段からデータを読出しかつその読出されたデータをシリアルに外部へ出力するシリアルアクセスメモリ手段をさらに備える、請求項1または2に記載の半導体集積回路装置。
  4. 前記外部に接続される半導体集積回路装置が備える制御手段が出力する制御信号を外部から入力するための信号入力端子をさらに備える、請求項1または2に記載の半導体集積回路装置。
  5. 前記比較手段からの結果信号を外部へ出力するための信号出力端子をさらに備える、請求項1に記載の半導体集積回路装置。
  6. 前記制御手段からの制御信号を外部へ出力するための信号出力端子をさらに備える、請求項2に記載の半導体集積回路装置。
  7. 前記第1の記憶手段の記憶容量は前記第2の記憶手段の記憶容量よりも大きく、前記第2の記憶手段のアクセス速度は前記第1の記憶手段のアクセス速度よりも速い、請求項1から6のいずれかに記載の半導体集積回路装置。
  8. 前記第1の記憶手段はダイナミックランダムアクセスメモリであり、前記第2の記憶手段はスタティックランダムアクセスメモリである、請求項1から7のいずれかに記載の半導体集積回路装置。
JP2009244288A 1994-01-21 2009-10-23 半導体集積回路装置 Expired - Lifetime JP5201485B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009244288A JP5201485B2 (ja) 1994-01-21 2009-10-23 半導体集積回路装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP527594 1994-01-21
JP1994005275 1994-01-21
JP2009244288A JP5201485B2 (ja) 1994-01-21 2009-10-23 半導体集積回路装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004316622A Division JP2005141897A (ja) 1994-01-21 2004-10-29 半導体集積回路装置および画像記憶処理システム

Publications (2)

Publication Number Publication Date
JP2010044786A true JP2010044786A (ja) 2010-02-25
JP5201485B2 JP5201485B2 (ja) 2013-06-05

Family

ID=42016066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009244288A Expired - Lifetime JP5201485B2 (ja) 1994-01-21 2009-10-23 半導体集積回路装置

Country Status (1)

Country Link
JP (1) JP5201485B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109478513A (zh) * 2016-07-19 2019-03-15 三菱电机株式会社 半导体装置及其制造方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03223978A (ja) * 1989-11-08 1991-10-02 Hitachi Ltd デジタルシグナルプロセッサ
JPH04195440A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd フレームバッファに適した半導体メモリ及びそれを用いた図形処理装置
JPH04225481A (ja) * 1990-12-27 1992-08-14 Fujitsu Ltd 記憶装置
JPH05144259A (ja) * 1991-11-19 1993-06-11 Matsushita Electric Ind Co Ltd メモリ装置
JPH07319436A (ja) * 1994-03-31 1995-12-08 Mitsubishi Electric Corp 半導体集積回路装置およびそれを用いた画像データ処理システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03223978A (ja) * 1989-11-08 1991-10-02 Hitachi Ltd デジタルシグナルプロセッサ
JPH04195440A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd フレームバッファに適した半導体メモリ及びそれを用いた図形処理装置
JPH04225481A (ja) * 1990-12-27 1992-08-14 Fujitsu Ltd 記憶装置
JPH05144259A (ja) * 1991-11-19 1993-06-11 Matsushita Electric Ind Co Ltd メモリ装置
JPH07319436A (ja) * 1994-03-31 1995-12-08 Mitsubishi Electric Corp 半導体集積回路装置およびそれを用いた画像データ処理システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109478513A (zh) * 2016-07-19 2019-03-15 三菱电机株式会社 半导体装置及其制造方法

Also Published As

Publication number Publication date
JP5201485B2 (ja) 2013-06-05

Similar Documents

Publication Publication Date Title
JP3626514B2 (ja) 画像処理回路
US5838337A (en) Graphic system including a plurality of one chip semiconductor integrated circuit devices for displaying pixel data on a graphic display
US4868781A (en) Memory circuit for graphic images
US5617360A (en) Memory device
JP5201485B2 (ja) 半導体集積回路装置
JP2005141897A (ja) 半導体集積回路装置および画像記憶処理システム
US6643189B2 (en) Memory device
US5175838A (en) Memory circuit formed on integrated circuit device and having programmable function
US6744432B1 (en) Method and apparatus for determining a representative Z values in a video graphics system
EP0189524B1 (en) Memory unit having arithmetic and logic functions, in particular for graphic processing
USRE33922E (en) Memory circuit for graphic images
JP2886855B2 (ja) 画像表示装置
JP3085299B2 (ja) 情報処理システム
US5923591A (en) Memory circuit
JP2719589B2 (ja) 1チップ半導体記憶装置
JPH0340072A (ja) アドレス制御機能を備えたメモリ装置
JP3285033B2 (ja) 情報処理システム
JPH0863385A (ja) 記憶回路
JP2000040143A (ja) 演算回路内蔵半導体記憶装置
JPH06301772A (ja) 画像処理用lsi
JPH03116254A (ja) 画像用記憶装置
JPH10262206A (ja) 解像度変換装置
JPH06215560A (ja) ビデオ表示用メモリ集積回路
JPH0863384A (ja) 1チップ半導体記憶装置およびそれを用いたデータ処理装置
JPH0540602A (ja) レジスタフアイルのスキヤン方式

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120515

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120622

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130131

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150222

Year of fee payment: 2

EXPY Cancellation because of completion of term