JP4232234B2 - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP4232234B2 JP4232234B2 JP29872898A JP29872898A JP4232234B2 JP 4232234 B2 JP4232234 B2 JP 4232234B2 JP 29872898 A JP29872898 A JP 29872898A JP 29872898 A JP29872898 A JP 29872898A JP 4232234 B2 JP4232234 B2 JP 4232234B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- circuit
- read
- memory
- texture
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Processing (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【発明の属する技術分野】
本発明は、画像処理装置に関する。
【0002】
【従来の技術】
種々のCAD(Computer Aided Design) システムや、アミューズメント装置などにおいて、コンピュータグラフィックスがしばしば用いられている。特に、近年の画像処理技術の進展に伴い、3次元コンピュータグラフィックスを用いたシステムが急速に普及している。
このような3次元コンピュータグラフィックスでは、各画素(ピクセル)に対応する色を決定するときに、各画素の色の値を計算し、この計算した色の値を、当該画素に対応するディスプレイバッファ(フレームバッファ)のアドレスに書き込むレンダリング(Rendering) 処理を行う。
【0003】
レンダリング処理の手法の一つに、ポリゴン(Polygon)レンダリングがある。この手法では、立体モデルを三角形の単位図形(ポリゴン)の組み合わせとして表現しておき、このポリゴンを単位として描画を行うことで、表示画面の色を決定する。
【0004】
ポリゴンレンダリングでは、物理座標系における三角形の各頂点についての、座標(x,y,z)と、色データ(R,G,B)と、張り合わせのイメージパターンを示すテクスチャデータの同次座標(s,t)および同次項qの値とを入力とし、これらの値を三角形の内部で補間する処理が行われる。
ここで、同次項qは、簡単にいうと、拡大縮小率のようなもので、実際のテクスチャバッファのUV座標系における座標、すなわち、テクスチャ座標データ(u,v)は、同次座標(s,t)を同次項qで除算した「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じたものとなる。
【0005】
図13は、3次元コンピュータグラフィックスシステムの基本的な概念を示すシステム構成図である。
【0006】
この3次元コンピュータグラフィックスシステムにおいては、グラフィックス描画等のデータは、メインプロセッサ1のメインメモリ2、あるいは外部からのグラフィックスデータを受けるI/Oインタフェース回路3からメインバス4を介してレンダリングプロセッサ5a、フレームバッファメモリ5bを有するレンダリング回路5に与えられる。
【0007】
レンダリングプロセッサ5aには、表示するためのデータを保持することを目的とするフレームバッファ5bと、描画する図形要素(たとえば三角形)の表面に張り付けるテクスチャデータを保持しているテクスチャメモリ6が結合されている。
そして、レンダリングプロセッサ5aによって、図形要素毎に表面にテクスチャを張り付けた図形要素を、フレームバッファ5bに描画するという処理が行われる。
【0008】
フレームバッファ5bとテクスチャメモリ6は、一般的にDRAM(Dynamic Random Access Memory)を用いて構成されている。
ところで、従来、このようなDRAMは、例えば、図14に示すように、バンク500A,500Bを有し、書き込みデータを入力する書き込み用FIFO回路501と読み出しデータを出力する読み出し用FIFO回路502とがそれぞれ1個ずつ設けられている。
【0009】
【発明が解決しようとする課題】
しかしながら、上述した3次元コンピュータグラフィックスシステムにおいて、DRAMを複数のバンク構成にした場合に、書き込み用FIFO回路501および読み出し用FIFO回路502をそれぞれ1個しか設けていないと、以下に示すような場合には、DRAMのセルがアクセス状態であるにも係わらず、アクセスを行うことができない事態が発生する。
【0010】
例えば、図15に示す時系列なデータS510が、図14に示す書き込み用FIFO回路501に入力された場合について説明する。
ここで、図15に示されるデータA1 (0),A2 (0),はバンク201Aの0番目のデータ線(ライン)を介して書き込まれるデータであり、データB3 (1),B4 (1),B7 (1),B8 (1)はバンク201Bの1番目のデータ線を介して書き込まれるデータであり、データA5 (1),A6 (1)はバンク201Aの1番目のデータ線を介して書き込まれるデータである。
【0011】
図15に示すデータS510が、図14に示す書き込み用FIFO回路501に入力され、FIFO方式で、バンク500A,500Bに書き込まれる。
先ず、図16(A)に示すように、先ず、タイミングt1 で、バンク500Aにおいて、0番目のデータ線のプリチャージ動作が開始される。
次に、所定時間後に、タイミングt3 ,t4 で、バンク500Aにおいて、バンク500Aの0番目のデータ線を介して、データA1 (0),A2 (0)が連続して2回書き込まれる。
このとき、タイミングt3 で、バンク500AにおけるデータA1 (0)の書き込み動作と並行して、バンク500Bにおいて、1番目のデータ線のプリチャージ動作が開始される。
そして、バンク500AにおけるデータA2 (0)の書き込み動作が終了したタイミングt5 とタイミングt6 とで、バンク500Bにおいて、1番目のデータ線を介して、データB3 (1),B4 (1)が連続して書き込まれる。
このとき、タイミングt6 で、バンク500BにおけるデータB4 (1)の書き込み動作と並行して、バンク500Aにおいて、1番目のデータ線のプリチャージ動作が開始される。
【0012】
次に、所定時間後に、タイミングt8 ,t9 で、バンク500Aにおいて、バンク500Aの1番目のデータ線を介して、データA5 (1),A6 (1)が連続して2回書き込まれる。
その後、バンク500AにおけるデータA6 (1)の書き込み動作が終了したタイミングt10とタイミングt11とで、バンク500Bにおいて、1番目のデータ線を介して、データB7 (1),B8 (1)が連続して書き込まれる。
【0013】
この場合に、図16(B)に示すタイミングt7 〜t8 では、バンク500BはデータB7 (1)を1番目のデータ線を介して書き込み可能な状態になっているが、書き込み用FIFO回路501において、データB7 (1)はデータA5 (1),A6 (1)を追い越すことができないため、当該データB7 (1)の書き込みを行うことができない。
すなわち、従来の図14に示す構成のDRAMでは、上述したようなデータの追い越しができないことが、DRAMへのアクセス速度をさらに向上させる上でのボトルネックとなっていた。
【0014】
本発明は、かかる事情に鑑みてなされたものであり、画像データを記憶している複数バンクからなるメモリへのアクセス速度を向上できる画像処理装置を提供することを目的とする。
【0015】
【課題を解決するための手段】
前記目的を達成するため、本発明の第1の観点の画像処理装置は、画像データを処理する画像処理回路と、前記画像データを記憶する第1の記憶回路と、前記第1の記憶回路にデータを書き込む書き込み系回路と、読み出し要求を受けて前記第1の記憶回路に記憶されたデータを前記書き込み系回路と異なる経路で読み出す読み出し系回路と、を有し、前記第1の記憶回路は、同一機能を有する複数のメモリモジュールに分割され、前記各メモリモジュールは、複数のバンクと、前記書き込み系回路から入力した時系列な画像データを入力順でアドレスに応じて対応する前記バンクに出力する書き込み用の第2の記憶回路と、を含み、前記書き込み系回路および読み出し系回路は、前記各メモリモジュールに対応して設けられ、それぞれ対応するメモリモジュールと書き込み系配線群、並びに読み出し系配線群を介して接続され、書き込み時および読み出し時に各メモリモジュールに対しての並列アクセスを制御する複数のメモリコントローラを共用し、前記各メモリコントローラは、自身のステートマシンがアイドル状態にあるときに、アイドル信号をアクティブで出力し、前記書き込み系回路は、書き込み時に、複数画素分のデータおよび書き込みアドレスを入力し、当該データを所定画素分のデータからなる前記メモリモジュールの分割数に相当する複数の画像データに分割し、当該分割した画像データおよび書き込みアドレスを出力し、かつ、当該画像データを、前記第1の記憶回路の各メモリモジュールに、画像データの表示アドレス空間において、隣接するアドレスにおける表示要素が、異なるメモリモジュールとなる配置となるように処理するディストリビュータと、書き込み時に、前記ディストリビュータから入力した画像データおよびアドレスを、それぞれ前記各メモリモジュール内のアドレスに変換し、それぞれ変換したアドレスと分割された画像データを前記複数のメモリコントローラに出力するアドレスコンバータと、を含み、前記読み出し系回路は、所定の連続する画素からなるブロック単位で読み出しを行う読み出しコントローラを有し、前記読み出しコントローラは、読み出しアドレスを受けた場合、前記各メモリコントローラからのアイドル信号をすべてアクティブで受けると、このアイドル信号に応答して、複数画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号を前記各メモリコントローラに出力するアドレスコンバータと、読み出しアドレスおよび読み出し要求信号に応答して前記各メモリコントローラで読み出された複数画素単位のデータを読み出し用配線群を介して入力し、所定の演算処理を行って、要求先に出力するデータ演算部と、を含み、前記各メモリコントローラは、自身のステートマシンがアイドル状態にあるときに、前記アイドル信号を前記読み出しコントローラにアクティブで出力し、当該アイドル信号に応答した前記読み出しコントローラによる読み出しアドレスおよび読み出し要求信号を受けて、前記読み出し系配線群を介して前記メモリモジュールからデータの読み出しを行い、前記読み出し用配線群を介して前記読み出しコントローラに出力する。
【0016】
このように、第1の観点の画像処理装置では、バンク毎に第2の記憶回路を設けたことで、第1の記憶回路へのデータの入出力順序と、第2の記憶回路へのデータのアクセス順序とを入れ替えることが可能になる。これにより、複数のバンクのうち、アクセス可能なバンクに優先的にアクセスを行うことができ、アクセス速度を短縮できる。
【0017】
また、好ましくは、前記各メモリモジュールは、前記複数のバンクのそれぞれに対応して設けられ、前記書き込み系回路から入力した画像データを入力順でアドレスに応じて対応する前記バンクに出力する書き込み用の複数の第2の記憶回路と、時系列な画像データをアドレスに対応した前記バンクに対応する前記第2の記憶回路に分配する分配部と、を含む。
【0018】
また、好ましくは、前記各メモリモジュールは、前記複数のバンクのそれぞれに対応して設けられ、対応する前記バンクから読み出された画像データを入力順に出力する読み出し用の複数の第3の記憶回路と、前記複数の第3の記憶回路から読み出された画像データを対応する前記読み出し用配線群に出力する集配部と、をさらに含む。
【0019】
また、好ましくは、前記各メモリモジュールの前記第2の記憶回路は、1個の入力ポートと少なくとも2個以上の出力ポートとを有し、各出力ポートにおいて、前記入力ポートを介して入力した画像データを入力順でアドレスに応じて対応する前記バンクに出力する。
【0020】
また、好ましくは、前記各メモリモジュールは、少なくとも2個の入力ポートと1個以上の出力ポートとを有し、前記入力ポートの位置に応じた順序で、前記複数のバンクから前記入力ポートを介して入力した画像データを、前記出力ポートから対応する読み出し用配線群に出力する第3の記憶回路を有する。
【0021】
また、好ましくは、単位図形の頂点について、3次元座標(x,y,z)、R(赤),G(緑),B(青)データ、テクスチャ同次座標(s,t)および同次項qを含むポリゴンレンダリングデータを用いてレンダリング処理を行うために、前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、前記補間データに含まれるテクスチャ同次座標(s,t)を同次項qで除算して「s/q」および「t/q」を生成し、当該「s/q」および「t/q」に応じたテクスチャアドレスを用いて前記第1の記憶回路から読み出されたテクスチャデータを、図形要素の表面への張り付け処理を行って表示データを生成し、当該表示データを前記第2の記憶回路を介して前記第1の記憶回路に書き込むテクスチャ処理回路と、を有する。
【0022】
また、好ましくは、単位図形の頂点について、3次元座標(x,y,z)、R(赤),G(緑),B(青)データ、テクスチャ同次座標(s,t)および同次項qを含むポリゴンレンダリングデータを用いてレンダリング処理を行うために、前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、前記補間データに含まれるテクスチャ同次座標(s,t)を同次項qで除算して「s/q」および「t/q」を生成し、当該「s/q」および「t/q」に応じたテクスチャアドレスを用いて前記第3の記憶回路を介して前記第1の記憶回路から読み出されたテクスチャデータを、図形要素の表面への張り付け処理を行って表示データを生成し、当該表示データを前記第2の記憶回路を介して前記第1の記憶回路に書き込むテクスチャ処理回路と、を有する。
【0024】
【発明の実施の形態】
以下、本実施形態においては、パーソナルコンピュータなどに適用される、任意の3次元物体モデルに対する所望の3次元画像をCRT(Cathode Ray Tube)などのディスプレイ上に高速に表示する3次元コンピュータグラフィックスシステムについて説明する。
【0025】
図1は、本発明に係る画像処理装置としての3次元コンピュータグラフィックスシステム10のシステム構成図である。
【0026】
3次元コンピュータグラフィックスシステム10は、立体モデルを単位図形である三角形(ポリゴン)の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、3次元コンピュータグラフィックスシステム10では、平面上の位置を表現する(x,y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x,y,z)の3つの座標で3次元空間の任意の一点を特定する。
【0027】
図1に示すように、3次元コンピュータグラフィックスシステム10は、メインプロセッサ11、メインメモリ12、I/Oインタフェース回路13、およびレンダリング回路14が、メインバス15を介して接続されている。
以下、各構成要素の機能について説明する。
【0028】
メインプロセッサ11は、例えば、アプリケーションの進行状況などに応じて、メインメモリ12から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理などのジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ11は、ポリゴンレンダリングデータS11を、メインバス15を介してレンダリング回路14に出力する。
【0029】
I/Oインタフェース回路13は、必要に応じて、外部から動きの制御情報またはポリゴンレンダリングデータなどを入力し、これをメインバス15を介してレンダリング回路14に出力する。
【0030】
ここで、ポリゴンレンダリングデータは、ポリゴンの各3頂点の(x,y,z,R,G,B,s,t,q)のデータを含んでいる。
ここで、(x,y,z)データは、ポリンゴの頂点の3次元座標を示し、(R,G,B)データは、それぞれ当該3次元座標における赤、緑、青の輝度値を示している。
(s,t,q)データのうち、(s,t)は、対応するテクスチャの同次座標を示しており、qは同次項を示している。ここで、「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じてテクスチャ座標データ(u,v)が得られる。テクスチャバッファ147aに記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ(u,v)を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクスチャデータである。
【0031】
以下、レンダリング回路14について詳細に説明する。
図1に示すように、レンダリング回路14は、DDA(Digital Differential Analyzer) セットアップ回路141、トライアングルDDA回路142、テクスチャエンジン回路143、メモリインタフェース(I/F)回路144、CRTコントロール回路145、RAMDAC回路146、DRAM147およびSRAM(Static RAM)148を有する。
本実施形態におけるレンダリング回路14は、一つの半導体チップ内にロジック回路と少なくとも表示データとテクスチャデータとを記憶するDRAM147とが混載されている。
【0032】
DRAM147
DRAM147は、テクスチャバッファ147a、ディスプレイバッファ147b、zバッファ147cおよびテクスチャCLUT(Color Look Up Table) バッファ147dとして機能する。
また、DRAM147は、後述するように、同一機能を有する複数(本実施形態では4個)のモジュールに分割されている。
【0033】
また、DRAM147には、より多くのテクスチャデ−タを格納するために、インデックスカラ−におけるインデックスと、そのためのカラ−ルックアップテ−ブル値が、テクスチャCLUTバッファ147dに格納されている。
インデックスおよびカラ−ルックアップテ−ブル値は、テクスチャ処理に使われる。すなわち、通常はR,G,Bそれぞれ8ビットの合計24ビットでテクスチャ要素を表現するが、それではデ−タ量が膨らむため、あらかじめ選んでおいた例えば256色等の中から一つの色を選んで、そのデ−タをテクスチャ処理に使う。このことで256色であればそれぞれのテクスチャ要素は8ビットで表現できることになる。インデックスから実際のカラ−への変換テ−ブルは必要になるが、テクスチャの解像度が高くなるほど、よりコンパクトなテクスチャデ−タとすることが可能となる。
これにより、テクスチャデ−タの圧縮が可能となり、内蔵DRAMの効率良い利用が可能となる。
【0034】
さらにDRAM147には、描画と同時並行的に隠れ面処理を行うため、描画しようとしている物体の奥行き情報が格納されている。
なお、表示データと奥行きデータおよびテクスチャデータの格納方法としては、メモリブロックの先頭から連続して表示データが格納され、次に奥行きデータが格納され、残りの空いた領域に、テクスチャの種類毎に連続したアドレス空間でテクスチャデータが格納される。これにより、テクスチャデータを効率よく格納できることになる。
【0035】
図2は、DRAM147、SRAM148、並びに、DRAM147およびSRAM148へアクセスするメモリI/F回路144の具体的な構成例を示すブロック図である。
【0036】
図2に示すように、図1に示すDRAM147およびSRAM148は、前述したように4個のメモリモジュール200,210,220,230に分割されている。
【0037】
メモリモジュール200は、メモリ201,202を有する。
メモリ201は、DRAM147の一部を構成するバンク201A,201Bと、SRAM148の一部を構成するバンク201C,201Dとを有する。
また、メモリ202は、DRAM147の一部を構成するバンク202A,202Bと、SRAM148の一部を構成するバンク202C,202Dとを有する。
なお、SRAM148を構成するバンク201C,201D,202C,202Dに対しては同時アクセスが可能である。
【0038】
メモリモジュール210は、メモリ211,212を有する。
メモリ211は、DRAM147の一部を構成するバンク211A,211Bと、SRAM148の一部を構成するバンク211C,211Dとを有する。
また、メモリ212は、DRAM147の一部を構成するバンク212A,212Bと、SRAM148の一部を構成するバンク212C,212Dとを有する。
なお、SRAM148を構成するバンク211C,211D,212C,212Dに対しては同時アクセスが可能である。
【0039】
メモリモジュール220は、メモリ221,222を有する。
メモリ221は、DRAM147の一部を構成するバンク221A,221Bと、SRAM148の一部を構成するバンク221C,221Dとを有する。
また、メモリ222は、DRAM147の一部を構成するバンク222A,222Bと、SRAM148の一部を構成するバンク222C,222Dとを有する。
なお、SRAM148を構成するバンク221C,221D,222C,222Dに対しては同時アクセスが可能である。
【0040】
メモリモジュール230は、メモリ231,232を有する。
メモリ231は、DRAM147の一部を構成するバンク231A,231Bと、SRAM148の一部を構成するバンク231C,231Dとを有する。
また、メモリ232は、DRAM147の一部を構成するバンク232A,232Bと、SRAM148の一部を構成するバンク232C,232Dとを有する。
なお、SRAM148を構成するバンク231C,231D,232C,232Dに対しては同時アクセスが可能である。
【0041】
ここで、メモリモジュール200,210,220,230の各々は、図1に示すテクスチャバッファ147a、ディスプレイバッファ147b、Zバッファ147cおよびテクスチャCLUTバッファ147dの全ての機能を持つ。
すなわち、メモリモジュール200,210,220,230の各々は、対応する画素のテクスチャデータ、描画データ((R,G,B)データ)、zデータおよびテクスチャカラールックアップテーブルデータの全てを記憶する。
ただし、メモリモジュール200,210,220,230は、相互で異なる画素についてのデータを記憶する。
ここで、同時に処理される16画素についてのテクスチャデータ、描画データ、zデータおよびテクスチャカラールックアップテーブルデータが、相互に異なるバンク201A,201B,202A,202B,211A,211B,212A,212B,221A,221B,222A,222B,231A,231B,232A,232Bに記憶される。
これにより、メモリI/F回路144は、DRAM147に対して、例えば8(X方向)×2画素(Y方向)の16画素についてのデータが同時に書き込むことが可能になる。
なお、読み出しは、例えば、8(X方向)×1画素(Y方向)の8画素についてデータが同時に読み出すことが可能になる。
なお、メモリI/F回路144は、後述するように、いわゆる所定のインターリーブ方式のアドレッシングに基づいてDRAM147へのアクセス(書き込み)を行う。
【0042】
図3は、DRAM147のバッファ(例えばテクスチャバッファ)としての構成例を示す概略図である。
図3に示すように、2×8画素(ピクセル)の領域でメモリアクセスされたデータは、ページ(ロウ)やブロック(カラム)と呼ばれる領域に格納される。
各ロウROW0〜ROWn+1 は、図3(a)に示すように、それぞれ4個のカラム(ブロック)M0A,M0B,M1A,M1Bに区分けされている。
そして、書き込み時には、X方向およびY方向について偶数のバウンダリ、読み出し時には、X方向について8の倍数のバウンダリ、Y方向については任意バウンダリの領域でアクセスが行われる。
【0043】
なお、バンク201C,201D,202C,202D,211C,211D,212C,212D,221C,221D,222C,222D,231C,231D,232C,232Dには、それぞれバンク201A,201B,202A,202B,211A,211B,212A,212B,221A,221B,222A,222B,231A,231B,232A,232Bに記憶されているテクスチャデータが記憶される。
【0044】
次に、インターリーブ方式のアドレッシングに基づくテクスチャバッファ147aにおけるテクスチャデータの記憶パターンについて、図4〜図6に関連付けてさらに詳細に説明する。
図4はテクスチャデータに含まれる同時にアクセスが行われるカラーデータ(画素データ)を説明するための図、図5はテクスチャデータを構成する単位ブロックを説明するための図、図6はテクスチャバッファのアドレス空間を説明するための図である。
【0045】
本実施形態の場合、図4に示すように、テクスチャデータに含まれる、2×8のマトリクス状に配置された画素の色データを示すカラーデータpix0 〜pix15が、同時にアクセスされる。
【0046】
カラーデータpix0 〜pix15は、テクスチャバッファ147aを構成するSRAM148の異なるバンクに記憶される必要がある。
本実施形態では、カラーデータpix0 ,pix1 ,pix8 ,pix9 が、それぞれ図2に示すメモリ201のバンク201C,201Dおよびメモリ202のバンク202C,202Dに記憶される。また、カラーデータpix2 ,pix3 ,pix10,pix11が、それぞれ図2に示すメモリ211のバンク211C,211Dおよびメモリ212のバンク212C,212Dに記憶される。また、カラーデータpix4 ,pix5 ,pix12,pix13が、それぞれ図2に示すメモリ221のバンク221C,221Dおよびメモリ222のバンク222C,222Dに記憶される。さらに、カラーデータpix6 ,pix7 ,pix14,pix15が、それぞれ図2に示すメモリ231のバンク231C,231Dおよびメモリ232のバンク232C,232Dに記憶される。
【0047】
本実施形態では、同時に処理される矩形領域内に位置する画素のカラーデータpix0 〜pix15の組を単位ブロックRi と呼び、例えば、1枚のイメージを示すテクスチャデータは、図5に示すように、B×Aのマトリクス状に配置された単位ブロックR0 〜RBA-1からなる。
単位ブロックR0 〜RBA-1は、図6に示すように、1次元のアドレス空間で連続したアドレスを持つように、テクスチャバッファ147aを構成するDRAM147に記憶されている。また、各単位ブロックR0 〜RBA-1内のカラーデータpix0 〜pix15は、1次元のアドレス空間内で連続したアドレスを持つように、SRAM148の相互に異なるバンクに記憶される。
すなわち、テクスチャバッファ147aには、同時にアクセスが行われるカラーデータからなる単位ブロックが、一次元のアドレス空間で連続したアドレスを持つように記憶される。
【0048】
以下、図2に示すメモリモジュール200,210,220,230内に、それぞれメモリコントローラ350,360,370,380との間のインタフェース部に設けられたFIFO回路について説明する。
当該FIFO回路の構成は、メモリモジュール200,210,220,230において共通であるため、以下、メモリモジュール200に設けられたFIFO回路について説明する。
【0049】
図7に示すように、メモリモジュール200は、バンク201A,201B,201C,201D、バンク202A,202B,202C,202D、読み出し用FIFO回路401A,401B,403A,403B、書き込み用FIFO回路400A,400B,402A,402B、分配・集配部410,411およびFIFOコントローラ420を有する。
【0050】
FIFOコントローラ420は、書き込み用FIFO回路400A,400B,402A,402B、分配・集配部410,411の入出力を統括して制御する。
分配・集配部410は、DRAM147のバンク201A,201Bのデータ書き込み時に、図2に示す書き込み用配線群401R,402Rを介して入力したデータのうち、バンク201Aに書き込まれるデータを書き込み用FIFO回路400Aに出力し、バンク201Bに書き込まれるデータを書き込み用FIFO回路400Bに出力する。
また、分配・集配部410は、DRAM147のバンク201A,201Bのデータ読み出し時に、読み出し用FIFO回路401A,401Bから入力したデータを、読み出し用配線群401W,402Wに出力する。このとき、必要に応じてデータの並べ替えが行われる。
【0051】
書き込み用FIFO回路400Aは、FIFOコントローラ420からの制御信号に基づいて、バンク201Aの書き込み時に、分配・集配部410から入力したデータをFIFO方式でバンク201Aに書き込む。
また、読み出し用FIFO回路401Aは、FIFOコントローラ420からの制御信号に基づいて、バンク201Aの読み出し時に、バンク201Aから読み出したデータを、FIFO方式で分配・集配部410に出力する。
また、書き込み用FIFO回路400Bは、FIFOコントローラ420からの制御信号に基づいて、バンク201Bの書き込み時に、分配・集配部410から入力したデータをFIFO方式でバンク201Bに書き込む。
また、読み出し用FIFO回路401Bは、FIFOコントローラ420からの制御信号に基づいて、バンク201Bの読み出し時に、バンク201Bから読み出したデータを、FIFO方式で分配・集配部410に出力する。
【0052】
バンク201A,201Bは、DRAM147のバンクであり、通常のDRAMと同様に、データ線を所定の電圧(プリチャージ電圧)に初期設定するプリチャージ動作に続いて、書き込み動作および読み出し動作が選択的に行われる。また、定期的にリフレッシュ動作が行われる。
このとき、バンク201A,201Bは、他のバンクがアクセスされているときでも、プリチャージ動作およびリフレッシュ動作を行うことができる。
【0053】
以下、バンク201A,201Bの書き込み動作について説明する。
ここでは、図8に示す時系列なデータS390が、書き込み用配線群401R,402Rを介してメモリコントローラ350から図7に示す分配・集配部410に入力された場合の動作を説明する。
ここで、図8に示されるデータA1 (0),A2 (0),はバンク201Aの0番目のデータ線(ライン)を介して書き込まれるデータであり、データB3 (1),B4 (1),B7 (1),B8 (1)はバンク201Bの1番目のデータ線を介して書き込まれるデータであり、データA5 (1),A6 (1)はバンク201Aの1番目のデータ線を介して書き込まれるデータである。
【0054】
分配・集配部410に入力された図8に示すデータは、バンク201Aに書き込まれるデータとバンク201Bに書き込まれるデータとに分配され、図9(A)に示すデータS401Aが書き込み用FIFO回路400Aに出力され、図9(B)に示すデータS401Bが書き込み用FIFO回路400Bに出力される。
【0055】
そして、書き込み用FIFO回路400AからデータS410AがFIFO方式でバンク201Aに出力される。
また、書き込み用FIFO回路400BからデータS410BがFIFO方式でバンク201Bに出力される。
【0056】
これにより、図10(A),(B)に示すように、先ず、タイミングt1 で、バンク201Aにおいて、0番目のデータ線のプリチャージ動作が開始される。次に、所定時間後に、タイミングt3 ,t4 で、バンク201Aにおいて、バンク201の0番目のデータ線を介して、データA1 (0),A2 (0)が連続して2回書き込まれる。
このとき、タイミングt3 で、バンク201AにおけるデータA1 (0)の書き込み動作と並行して、バンク201Bにおいて、1番目のデータ線のプリチャージ動作が開始される。
そして、バンク201AにおけるデータA2 (0)の書き込み動作が終了したタイミングt5 で、バンク201Bにおいて、1番目のデータ線を介して、データB3 (1),B4 (1),B7 (1),B8 (1)が連続して書き込まれる。このとき、タイミングt6 で、バンク201BにおけるデータB4 (1)の書き込み動作と並行して、バンク201Aにおいて、1番目のデータ線のプリチャージ動作が開始される。
【0057】
そして、バンク201BにおけるデータB8 (1)の書き込み動作が終了したタイミングt9 で、バンク201Aにおいて、1番目のデータ線を介して、データA5 (1),A6 (1)が連続して書き込まれる。
【0058】
また、DRAM147のバンク201A,201Bの読み出し動作は、図2に示すメモリコントローラ350から入力したデータを分配・集配部410においてデータの並べ替え等(集配)を行う点と、図7に示す読み出し用FIFO回路401A,401Bを用いる点とを除いて、前述した書き込み動作と同じである。
【0059】
なお、バンク202A,202B,202C,202D、読み出し用FIFO回路403A,403B、書き込み用FIFO回路402A,402Bおよび分配・集配部411は、基本的に、それぞれ前述したバンク201A,201B,201C,201D、読み出し用FIFO回路401A,401B、書き込み用FIFO回路400A,400Bおよび分配・集配部410と同じである。
【0060】
以上説明したように、図7に示すように、DRAM147の各バンク毎に書き込み用FIFO回路および読み出し用FIFO回路を1個ずつ設けたことで、前述した従来のDRAMのように複数のバンクで1つのFIFO回路を設けた場合に比べて、データの書き込み時間および読み出し時間を短縮できる。
【0061】
また、メモリモジュール200,210,220,230は、例えば、図7に示す読み出し用FIFO回路403A,403B、書き込み用FIFO回路402A,402Bおよび分配・集配部411の代わりに、1個の入力ポートと2個の出力ポートとを有する書き込み用FIFO回路600,602および2個の入力ポートと2個の出力ポートとを有する読み出し用FIFO回路601,603を用いて構成することも可能である。
この場合にも、書き込み用FIFO回路600,602および読み出し用FIFO回路601,603においてデータの追い越しが可能になることから、例えば、図10に示すパターンでDRAM147のバンクにアクセスを行うことが可能になる。
【0062】
DDAセットアップ回路141
DDAセットアップ回路141は、後段のトライアングルDDA回路142において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータS11が示す(z,R,G,B,s,t,q)データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
DDAセットアップ回路141は、算出した変分データS141をトライアングルDDA回路142に出力する。
【0063】
トライアングルDDA回路142
トライアングルDDA回路142は、DDAセットアップ回路141から入力した変分データS141を用いて、三角形内部の各画素における線形補間された(z,R,G,B,s,t,q)データを算出する。
トライアングルDDA回路11は、各画素の(x,y)データと、当該(x,y)座標における(z,R,G,B,s,t,q)データとを、DDAデータ(補間データ)S142としてテクスチャエンジン回路143に出力する。
例えば、トライアングルDDA回路142は、並行して処理を行う矩形内に位置する8(=2×4)画素分のDDAデータS142をテクスチャエンジン回路143に出力する。
【0064】
テクスチャエンジン回路143
テクスチャエンジン回路143は、「s/q」および「t/q」の算出処理、テクスチャ座標データ(u,v)の算出処理、テクスチャバッファ147aからの(R,G,B)データの読み出し処理等をパイプライン方式で行う。
なお、テクスチャエンジン回路143は、例えば所定の矩形内に位置する8画素についての処理を同時に並行して行う。
【0065】
テクスチャエンジン回路143は、DDAデータS142が示す(s,t,q)データについて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とを行う。
テクスチャエンジン回路143には、例えば図示しない除算回路が8個設けられており、8画素についての除算「s/q」および「t/q」が同時に行われる。
【0066】
また、テクスチャエンジン回路143は、除算結果である「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データ(u,v)を生成する。
また、テクスチャエンジン回路143は、メモリI/F回路144を介して、SRAM148あるいはDRAM147に、生成したテクスチャ座標データ(u,v)を含む読み出し要求を出力し、メモリI/F回路144を介して、SRAM148あるいはテクスチャバッファ147aに記憶されているテクスチャデータを読み出すことで、(s,t)データに対応したテクスチャアドレスに記憶された(R,G,B)データS148を得る。
ここで、SRAM148には、前述したようにテクスチャバッファ147aに格納されているテクスチャデータが記憶される。
テクスチャエンジン回路143は、読み出した(R,G,B)データS148の(R,G,B)データと、前段のトライアングルDDA回路142からのDDAデータS142に含まれる(R,G,B)データとを、それぞれ掛け合わせるなどして、カラーデータS143を生成する。
テクスチャエンジン回路143は、このカラーデータS143をメモリI/F回路144に出力する。
【0067】
なお、テクスチャバッファ147aには、MIPMAP(複数解像度テクスチャ)などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
【0068】
テクスチャエンジン回路143は、フルカラー方式の場合には、テクスチャバッファ147aから読み出した(R,G,B)データを直接用いる。
一方、テクスチャエンジン回路143は、インデックスカラー方式の場合には、あらかじめ作成したカラールックアップテーブル(CLUT)をテクスチャCLUTバッファ147dから読み出して、内蔵するSRAMに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ147aから読み出したカラーインデックスに対応する(R,G,B)データを得る。
【0069】
メモリI/F回路144
メモリI/F回路144は、テクスチャエンジン回路143から入力したカラーデータS143に対応するzデータと、zバッファ147cに記憶されているzデータとの比較を行い、入力したカラーデータS143によって描画される画像が、前回、ディスプレイバッファ147bに書き込まれた画像より、手前(視点側)に位置するか否かを判断し、手前に位置する場合には、画像データS143に対応するzデータでzバッファ147cに記憶されたzデータを更新する。また、メモリI/F回路144は、(R,G,B)データをディスプレイバッファ147bに書き込む。
さらに、メモリI/F回路144は、テクスチャエンジン回路143からのSRAM148に、生成されたテクスチャ座標データ(u,v)を含む読み出し要求を受けた場合には、SRAM148に記憶された(R,G,B)データS148を読み出す。
また、メモリI/F回路144は、CRTコントロール回路145から表示データを読み出す要求を受けた場合には、この要求に応じて、ディスプレイバッファ147bから一定の固まり、例えば8画素あるいは16画素単位で表示データを読み出す。
【0070】
このように、メモリI/F回路144は、DRAM147およびSRAM148へのアクセス(書き込みまたは読み出し)を行うが、書き込み経路と読み出し経路とが別経路として構成されている。
すなわち、書き込みの場合には書き込みアドレスADRWとカラーデータDTWが書き込み系回路で処理されてDRAM147に書き込み、読み出しの場合には読み出し系回路で処理されてDRAM147またはSRAM148から読み出す。
そして、メモリI/F回路144は、所定のインターリーブ方式のアドレッシングに基づいてDRAM147へのアクセスを、書き込みを16画素単位、読み出しを8画素単位で行う。
【0071】
以下に、メモリI/F回路144の具体的な構成例について、図2を参照しながら説明する。
【0072】
メモリI/F回路144は、図2に示すように、ディストリビュータ300、アドレスコンバータ310,320,330,340、メモリコントローラ350,360,370,380および読み出しコントローラ390を有する。
【0073】
〔ディストリビュータ300〕
ディストリビュータ300は、書き込み時に、8画素分のカラーデータDTWおよび書き込みアドレスADRWを入力し、これらから16画素分のカラーデータを生成した後に、各々4画素分のデータからなる4つの画像データS301,S302,S303,S304に分割し、その画像データおよび書き込みアドレスをそれぞれアドレスコンバータ310,320,330,340に出力する。ここで、1画素分の(R,G,B)データは各々32ビット、zデータは32ビットからなる。
【0074】
〔アドレスコンバータ310,320,330,340〕
アドレスコンバータ310,320,330,340は、書き込み時に、ディストリビュータ300から入力した(R,G,B)データおよびzデータに対応したアドレスを、それぞれメモリモジュール200,210,220,230内のアドレスに変換し、それぞれ変換したアドレスS310,S320,S330,S340と分割された画像データをメモリコントローラ350,360,370,380に出力する。
【0075】
図12は、このディストリビュータ300の画像データ処理(ピクセル処理)を模式的に示す図である。
この図は、前述した図3〜図6に対応するものであり、ディストリビュータ300は、DRAM147に対して、例えば2×8画素の16画素についてのデータが同時にアクセス可能になるように画像データ処理を行う。
そして、読み出し動作では、X方向について8の倍数のバウンダリ、かつY方向について任意のバウンダリでの領域でアクセスを行い、書き込み動作では、X方向およびY方向について偶数のバウンダリの領域でアクセスを行うようなアドレッシングとなるように画像データの処理を行う。
これによりDRAM147は、アクセスの先頭がメモリセル番号MCN「1」,「2」,「3」にはならず、必ずメモリセル番号MCN「0」となり、ページ違反の発生等が防止される。
また、ディストリビュータ300は、各DRAMモジュール200〜230に対して、カラーデータを、表示領域において隣接した部分は、異なるDRAMモジュールとなる配置するとなるように画像データの処理を行う。
これにより、三角形のような平面を描画する場合には面で同時に処理できることになるため、それぞれのDRAMモジュールの動作確率は非常に高くなっている。
【0076】
〔メモリコントローラ350,360,370,380〕
メモリコントローラ350,360,370,380は、それぞれ書き込み系配線群401W,402W,411W,412W,421W,422W,431W,432W、並びに読み出し系配線群401R,402R,411R,412R,421R,422R,431R,432Rを介してメモリモジュール200,210,220,230に接続されており、書き込み時および読み出し時にメモリモジュール200,210,220,230に対してのアクセスを制御する。
【0077】
具体的には、書き込み時には、メモリコントローラ350,360,370,380は、ディストリビュータ300から出力され、アドレスコンバータ350,360,370,380から入力した4画素分の(R,G,B)データおよびzデータを、書き込み系配線群401W,402W,411W,412W,421W,422W,431W,432Wを介してメモリモジュール200,210,220,230に同時に書き込む。
このとき、例えば、メモリモジュール200では、前述したように、バンク201A,201B,202A,202Bの各々に、1画素分の(R,G,B)データおよびzデータが記憶される。メモリモジュール210,220,230についても同じである。
【0078】
また、各メモリコントローラ350,360,370,380は、自身のステートマシンがいわゆるアイドル(IDLE)状態にあるときに、アイドル信号S350,S360,S370,S380を読み出しコントローラ390にアクティブで出力し、このアイドル信号S350,S360,S370,S380に応答した読み出しコントローラ390による読み出しアドレスおよび読み出し要求信号S391を受けて、読み出し系配線群401R,402R,411R,412R,421R,422R,431R,432Rを介してデータの読み出しを行い、読み出し系配線群351,361,371,381、並びに配線群440を介して読み出しコントローラ390に出力する。
【0079】
なお、本実施形態では、書き込み系配線群401W,402W,411W,412W,421W,422W,431W,432W、並びに読み出し系配線群401R,402R,411R,412R,421R,422R,431R,432Rの配線本数は128本(128ビット)、読み出し系配線群351,361,371,381の配線本数は256本(256ビット)、ならびに読み出し系配線群440の配線本数は1024本(1024ビット)である。
【0080】
〔読み出しコントローラ390〕
読み出しコントローラ390は、アドレスコンバータ391およびデータ演算処理部392により構成されている。
アドレスコンバータ391は、読み出しアドレスADRRを受けた場合、メモリコントローラ350,360,370,380からのアイドル信号S350,S360,S370,S380をすべてアクティブで受けると、このアイドル信号S350,S360,S370,S380に応答して、8画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号S391を各メモリコントローラ350,360,370,380に出力する。
データ演算部392は、読み出しアドレスおよび読み出し要求信号S391に応答して各メモリコントローラ350,360,370,380で読み出された8画素あるいは16画素単位の、テクスチャデータ、(R,G,B)データ、zデータおよびテクスチャカラールックアップテーブルデータを配線群440を介して入力し、所定の演算処理を行って、データ並べ替え部400でデータ並べ替えを行った後に、要求先、例えばテクスチャエンジン回路143またはCRTコントロール回路145に出力する。
また、DRAM147の記憶領域内において一の矩形領域からデータを読み出して他の矩形領域に書き込む場合にも、読み出しコントローラ390、データ並べ替え部400およびディストリビュータ300を介してデータ転送が行われる。
【0081】
読み出しコントローラ390は、上述したように、メモリコントローラ350,360,370,380のすべてがアイドル状態にあるときに、読み出しアドレスおよび読み出し要求信号S391をメモリコントローラ350,360,370,380に出力して読み出しデータを受けることから、読み出すデータの同期をとることができる。
したがって、読み出しコントローラ390は、データを一時的に保持するFIFO(First In First Out)回路等の保持回路を設ける必要がなく、回路規模の縮小化が図られている。
【0082】
CRTコントロール回路145
CRTコントロール回路145は、与えられた水平および垂直同期信号に同期して、図示しないCRTに表示するアドレスを発生し、ディスプレイバッファ147bから表示データを読み出す要求をメモリI/F回路144に出力する。この要求に応じて、メモリI/F回路144は、ディスプレイバッファ147bから一定の固まりで表示データを読み出す。CRTコントローラ回路145は、ディスプレイバッファ147bから読み出した表示データを記憶するFIFO回路を内蔵し、一定の時間間隔で、RAMDAC回路146に、RGBのインデックス値を出力する。
【0083】
RAMDAC回路146
RAMDAC回路146は、各インデックス値に対応するR,G,Bデータを記憶しており、CRTコントローラ回路145から入力したRGBのインデックス値に対応するデジタル形式のR,G,Bデータを、図示しないD/Aコンバータ(Digital/Analog Converter)に転送し、アナログ形式のR,G,Bデータを生成する。RAMDAC回路146は、この生成されたR,G,BデータをCRTに出力する。
【0084】
以下、上述した3次元コンピュータグラフィックスシステム10の全体動作を説明する。
3次元コンピュータグラフィックスシステム10においては、グラフィックス描画等のデータは、メインプロセッサ11のメインメモリ12、あるいは外部からのグラフィックスデータを受けるI/Oインタフェース回路13からメインバス15を介してレンダリング回路14に与えられる。
なお、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ11等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
ジオメトリ処理が終わったグラフィックスデータは、三角形の各3頂点の頂点座標x,y,z、輝度値R,G,B、描画しようとしている画素と対応するテクスチャ座標s,t,qとからなるポリゴンレンダリングデータS11となる。
【0085】
このポリゴンレンダリングデータS11は、レンダリング回路14のDDAセットアップ回路141に入力される。
DDAセットアップ回路141においては、ポリゴンレンダリングデータS11に基づいて、三角形の辺と水平方向の差分などを示す変分データS141が生成される。具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データS141としてトライアングルDDA回路142に出力される。
【0086】
トライアングルDDA回路142においては、変分データS141を用いて、三角形内部の各画素における線形補間された(z,R,G,B,s,t,q)データが算出される。
そして、この算出された(z,R,G,B,s,t,q)データと、三角形の各頂点の(x,y)データとが、DDAデータS142として、トライアングルDDA回路142からテクスチャエンジン回路143に出力される。
【0087】
テクスチャエンジン回路143においては、DDAデータS142が示す(s,t,q)データについて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とが行われる。そして、除算結果「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEが乗算され、テクスチャ座標データ(u,v)が生成される。
【0088】
次に、テクスチャエンジン回路143からメモリI/F回路144に対して生成されたテクスチャ座標データ(u,v)を含む読み出し要求が出力され、メモリI/F回路144を介して、SRAM148に記憶された(R,G,B)データS148が読み出される。
次に、テクスチャエンジン回路143において、読み出した(R,G,B)データS148の(R,G,B)データと、前段のトライアングルDDA回路142からのDDAデータS142に含まれる(R,G,B)データとが掛け合わされ、画素データS143として生成される。
この画素データS143は、テクスチャエンジン回路143からメモリI/F回路144に出力される。
【0089】
フルカラーの場合には、テクスチャバッファ147aからのデータ(R,G,B)を直接用いればよいが、インデックスカラーの場合には、あらかじめ作成しておいたカラーインデックステーブル(Color Index Table )のデータが、テクスチャCLUT(Color Look Up Table)バッファ147dより、SRAM等で構成される一時保管バッファへ転送され、この一時保管バッファのCLUTを用いてカラーインデックスから実際のR,G,Bカラーが得られる。
なお、CULTがSRAMで構成された場合は、カラーインデックスをSRAMのアドレスに入力すると、その出力には実際のR,G,Bカラーが出てくるといった使い方となる。
【0090】
そして、メモリI/F回路144において、テクスチャエンジン回路143から入力した画素データS143に対応するzデータと、zバッファ147cに記憶されているzデータとの比較が行われ、入力した画素データS12によって描画される画像が、前回、ディスプレイバッファ21に書き込まれた画像より、手前(視点側)に位置するか否かが判断される。
判断の結果、手前に位置する場合には、画像データS143に対応するzデータでzバッファ147cに記憶されたzデータが更新される。
【0091】
次に、メモリI/F回路144において、(R,G,B)データがディスプレイバッファ147bに書き込まれる。
これら書き込む(更新も含む)べきデータは、書き込み系回路である、ディストリビュータ300、アドレスデコーダ310,320,330,340を介してメモリコントローラ350,360,370,380に供給され、メモリコントローラ350,360,370,380によって、それぞれ書き込み系配線群401W,402W,411W,412W,421W,422W,431W,432Wを介し所定のメモリに対して並列的に書き込まれる。
【0092】
このとき、前述したように、図2に示すメモリモジュール200,210,220,230の各々において、図7に示す分配・集配部410,411および書き込み用FIFO回路400A,400B,402A,402Bを介して、バンク201A,201B,202A,202B,211A,211B,212A,212B,221A,221B,222A,222B,231A,231B,232A,232Bに略同時にデータが書き込まれる。
【0093】
メモリI/F回路144においては、今から描画しようとしている画素におけるテクスチャアドレスに対応したテクスチャを格納しているメモリブロックがそのテクスチャアドレスにより算出され、そのメモリブロックにのみ読みだし要求が出され、テクスチャデータが読み出される。
この場合、該当するテクスチャデータを保持していないメモリブロックにおいては、テクスチャ読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
【0094】
描画においても同様に、今から描画しようとしている画素アドレスに対応する画素データを格納しているメモリブロックに対して、該当アドレスから画素データがモディファイ書き込み(Modify Write)を行うために読み出され、モディファイ後、同じアドレスへ書き戻される。
【0095】
隠れ面処理を行う場合には、やはり同じように今から描画しようとしている画素アドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータがモディファイ書き込み(Modify Write)を行うために読み出され、必要ならばモディファイ後、同じアドレスへ書き戻される。
【0096】
このようなメモリI/F回路144に基づくDRAM147とのデータのやり取りにおいては、それまでの処理を複数並行処理することで、描画性能を向上させることができる。
特に、トライアングルDDA回路142とテクスチャエンジン143の部分を並列実行形式で、同じ回路に設ける(空間並列)か、または、パイプラインを細かく挿入する(時間並列)ことで、部分的に動作周波数を増加させるという手段により、複数画素の同時算出が行われる。
【0097】
また、画素データは、メモリI/F回路144の制御のもと、表示領域において隣接した部分は、異なるDRAMモジュールとなるように配置される。
これにより、三角形のような平面を描画する場合には面で同時に処理される。このため、それぞれのDRAMモジュールの動作確率は非常に高い。
【0098】
そして、図示しないCRTに画像を表示する場合には、CRTコントロール回路145において、与えられた水平垂直同期周波数に同期して、表示アドレスが発生され、メモリI/F回路144へ表示データ転送の要求が出される。
メモリI/F回路144では、その要求に従い、一定のまとまった固まりで、表示データがCRTコントロール回路145に転送される。
CRTコントロール回路145では、図示しないディスプレイ用FIFO(First In First Out)等にその表示データが貯えられ、一定の間隔でRAMDAC146へRGBのインデックス値が転送される。
【0099】
なお、上述したようにメモリI/F回路144に対してDRAM147あるいはSRAM148に格納されているデータの読み出し要求があった場合、読み出しコントローラ390のアドレスコンバータ391に読み出しアドレスADRRが入力される。
このとき、アドレスコンバータ391ではメモリコントローラ350,360,370,380からのアイドル信号S350,S360,S370,S380をすべてアクティブで入力された否かのチェックが行われる。そして、アイドル信号S350,S360,S370,S380がすべてアクティブで入力されると、アイドル信号S350,S360,S370,S380に応答して、8画素あるいは16画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号S391が各メモリコントローラ350,360,370,380に出力される。
【0100】
読み出しアドレスおよび読み出し要求信号S391を受けて、各メモリコントローラ350,360,370,380で8画素あるいは16画素単位の、テクスチャデータ、(R,G,B)データ、zデータおよびテクスチャカラールックアップテーブルデータが読み出し系配線群401R,402R,411R,412R,421R,422R,431R,432Rを介して並列的に読み出され、さらに読み出し系配線群351,361,371,381,配線群440を介してデータ演算部392に入力される。
そして、データ演算部392で所定の演算処理が行われて、要求先、たとえばテクスチャエンジン回路143またはCRTコントロール回路145に出力される。
【0101】
このとき、前述したように、図2に示すメモリモジュール200,210,220,230の各々において、図7に示す読み出し用FIFO回路401A,401B,403A,403Bおよび分配・集配部410,411を介して、バンク201A,201B,202A,202B,211A,211B,212A,212B,221A,221B,222A,222B,231A,231B,232A,232Bから略同時にデータ読み出される。
【0102】
RAMDAC146においては、RAM内部にRGBのインデックスに対するRGB値が記憶されていて、インデックス値に対するRGB値が図示しないD/Aコンバータへ転送される。
そして、D/Aコンバータでアナログ信号に変換されたRGB信号がCRTへ転送される。
【0103】
以上説明したように、3次元コンピュータグラフィックシステム10によれば、図7に示すように、DRAM147の各バンク毎に書き込み用FIFO回路および読み出し用FIFO回路を1個ずつ設けたことで、前述した従来のDRAMのように複数のバンクで1つのFIFO回路を設けた場合に比べて、データの書き込み時間および読み出し時間を短縮できる。
【0104】
また、本実施形態によれば、DRAM147およびSRAM148へのアクセス(書き込みまたは読み出し)を行うメモリI/F回路144において、書き込み経路と読み出し経路とを別経路として構成し、書き込みの場合には書き込みアドレスADRWとカラーデータDTWを書き込み系回路であるデータ並べ替え部400、ディストリビュータ300、アドレスコンバータ310,320,330,340およびメモリコントローラ350,360,370,380で処理してDRAM147に書き込み、読み出しの場合には読み出し系回路であるデータ並べ替え部400、読み出しコントローラ390、メモリコントローラ350,360,370,380で処理してDRAM147またはSRAM148から読み出すことから、例えば読み出しの割り込みが入った時等に早いタイミングで切り替えることができ、読み出しの際の性能向上を図れる利点がある。
【0105】
また、メモリI/F回路144は、所定のインターリーブ方式のアドレッシングに基づいてDRAM147へのアクセスを、例えば16画素単位あるいは8画素単位で行い、アクセスを行う領域に制限を加えていることから、ペ−ジ違反を起こさない画像処理装置を実現できる。
【0106】
さらに、本実施形態によれば、半導体チップ内部に内蔵されたDRAM147に、表示デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶させた構成を有することから、表示領域以外の部分にテクスチャデ−タを格納できることになり、内蔵DRAMの有効利用が可能となり、高速処理動作、並びに低消費電力化を並立させるようにした画像処理装置が実現可能となる。
そして、単一メモリシステムを実現でき、すべてが内蔵された中だけで処理ができる。その結果、ア−キテクチャとしても大きなパラダイムシフトとなる。
また、メモリの有効利用ができることで、内部に持っているDRAMのみでの処理が可能となり、内部にあるがゆえのメモリと描画システムの間の大きなバンド幅が、十分に活用可能となる。また、DRAMにおいても特殊な処理を組み込むことが可能となる。
【0107】
さらに、表示アドレス空間において、隣接するアドレスにおける表示要素が、それぞれ異なるDRAMのブロックになるように配置するので、さらにビット線の有効利用が可能となり、グラフィックス描画におけるような、比較的固まった表示領域へのアクセスが多い場合には、それぞれのモジュ−ルが同時に処理できる確率が増加し、描画性能の向上が可能となる。
【0108】
また、チップ内部にDRAMを内蔵することで、その高速なインタ−フェ−ス部分がチップの内部だけで完結することになるため、大きな付加容量のI/Oバッファであるとか、チップ間配線容量をドライブする必要がなくなり、消費電力は内蔵しない場合に比較して小さくなる。
よって、さまざまな技術を使って、一つのチップの中だけですべてができるような仕組みは、今後の携帯情報端末等の身近なデジタル機器のためには、必要不可欠な技術要素となっている。
【0109】
本発明は上述した実施形態には限定されない。
例えば、上述した実施形態では、図7に示すように、メモリモジュール200,210,220,230において、各バンク毎に、書き込み用FIFO回路と読み出し用FIFO回路の双方を設けた場合を例示したが、書き込み動作と読み出し動作とは同時には行われないため、各バンク毎に、書き込み動作および読み出し動作の双方で共用される1個のFIFO回路を設けてもよい。
また、図7に示す分配・集配部410,411の機能を、メモリコントローラ350,360,370,380に持たせてもよい。
また、図7に示すSRAM148のバンク201C,201D,202C,202D,バンク211C,211D,212C,212D,221C,221D,222C,222D,バンク231C,231D,232C,232Dの各々に、読み出し用FIFO回路をそれぞれ設けてもよい。
【0110】
また、上述した図1に示す3次元コンピュータグラフィックスシステム10では、SRAM148を用いる構成を例示したが、SRAM148を設けない構成にしてもよい。
【0111】
さらに、図1に示す3次元コンピュータグラフィックスシステム10では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ11で行う場合を例示したが、レンダリング回路14で行う構成にしてもよい。
【0112】
【発明の効果】
以上説明したように、本発明の画像処理装置によれば、複数のバンクを有する第1の記憶回路へのアクセス速度を向上できる。
【図面の簡単な説明】
【図1】 本発明に係る3次元コンピュータグラフィックスシステムの構成を示すブロック図である。
【図2】 本発明に係るレンダリング回路におけるDRAM、SRAM、並びに、DRAMおよびSRAMへアクセスするメモリI/F回路の具体的な構成例を示すブロック図である。
【図3】 本発明に係るDRAMバッファの構成例を示す概略図である。
【図4】 テクスチャデータに含まれる同時にアクセスが行われるカラーデータを説明するための図である。
【図5】 テクスチャデータを構成する単位ブロックを説明するための図である。
【図6】 テクスチャバッファのアドレス空間を説明するための図である。
【図7】 図7は、図2に示すメモリモジュールの構成図である。
【図8】 図8は、図7に示すメモリモジュールに入力されるデータの一例である。
【図9】 図9は、図7に示す書き込み用FIFO回路に入力されるデータを説明するための図である。
【図10】 図10は、図7に示す各バンクへの図9に示すデータの書き込み動作を説明するための図である。
【図11】 図11は、図2に示すメモリモジュールのその他の構成図である。
【図12】 本発明に係るメモリI/F回路におけるディストリビュータの画像データ処理を説明するための図である。
【図13】 3次元コンピュータグラフィックスシステムの基本的な概念を示すシステム構成図である。
【図14】 図13は、図12に示すメモリとしてDRAMを用いた場合のバンク付近の構成図である。
【図15】 図15は、図14に示す書き込み用FIFO回路に入力されるデータを説明するための図である。
【図16】 図16は、図14に示す各バンクへの図15に示すデータの書き込み動作を説明するための図である。
【符号の説明】
10…3次元コンピュータグラフィックスシステム、11…メインプロセッサ、12…メインメモリ、13…I/Oインタフェース回路、14…レンダリング回路、141…DDAセットアップ回路、142…トライアングルDDA回路、143…テクスチャエンジン回路、144…メモリI/F回路、145…CRTコントローラ回路、146…RAMDAC回路、147…DRAM、147a…テクスチャバッファ、147b…ディスプレイバッファ、147c…zバッファ、147d…テクスチャCLUTバッファ、148…SRAM、200,210,220,230…メモリモジュール、201A,201B,202A,202B,211A,211B,212A,212B,221A,221B,222A,222B,231A,231B,232A,232B…バンク、300…ディストリビュータ、310,320,330,340…アドレスデコーダ、350,360,370,380…メモリコントローラ、390…読み出しコントローラ、391…アドレスデコーダ、392…データ演算処理部、410,411…分配・集配部、400A,400B,402A,402B,600,602…書き込み用FIFO回路、401A,401B,403A,403B,601,603…読み出し用FIFO回路、420…FIFOコントローラ
Claims (7)
- 画像データを処理する画像処理回路と、
前記画像データを記憶する第1の記憶回路と、
前記第1の記憶回路にデータを書き込む書き込み系回路と、
読み出し要求を受けて前記第1の記憶回路に記憶されたデータを前記書き込み系回路と異なる経路で読み出す読み出し系回路と、を有し、
前記第1の記憶回路は、同一機能を有する複数のメモリモジュールに分割され、
前記各メモリモジュールは、
複数のバンクと、
前記書き込み系回路から入力した時系列な画像データを入力順でアドレスに応じて対応する前記バンクに出力する書き込み用の第2の記憶回路と、を含み、
前記書き込み系回路および読み出し系回路は、
前記各メモリモジュールに対応して設けられ、それぞれ対応するメモリモジュールと書き込み系配線群、並びに読み出し系配線群を介して接続され、書き込み時および読み出し時に各メモリモジュールに対しての並列アクセスを制御する複数のメモリコントローラを共用し、
前記各メモリコントローラは、
自身のステートマシンがアイドル状態にあるときに、アイドル信号をアクティブで出力し、
前記書き込み系回路は、
書き込み時に、複数画素分のデータおよび書き込みアドレスを入力し、当該データを所定画素分のデータからなる前記メモリモジュールの分割数に相当する複数の画像データに分割し、当該分割した画像データおよび書き込みアドレスを出力し、かつ、当該画像データを、前記第1の記憶回路の各メモリモジュールに、画像データの表示アドレス空間において、隣接するアドレスにおける表示要素が、異なるメモリモジュールとなる配置となるように処理するディストリビュータと、
書き込み時に、前記ディストリビュータから入力した画像データおよびアドレスを、それぞれ前記各メモリモジュール内のアドレスに変換し、それぞれ変換したアドレスと分割された画像データを前記複数のメモリコントローラに出力するアドレスコンバータと、を含み、
前記読み出し系回路は、
所定の連続する画素からなるブロック単位で読み出しを行う読み出しコントローラを有し、
前記読み出しコントローラは、
読み出しアドレスを受けた場合、前記各メモリコントローラからのアイドル信号をすべてアクティブで受けると、このアイドル信号に応答して、複数画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号を前記各メモリコントローラに出力するアドレスコンバータと、
読み出しアドレスおよび読み出し要求信号に応答して前記各メモリコントローラで読み出された複数画素単位のデータを読み出し用配線群を介して入力し、所定の演算処理を行って、要求先に出力するデータ演算部と、を含み、
前記各メモリコントローラは、
自身のステートマシンがアイドル状態にあるときに、前記アイドル信号を前記読み出しコントローラにアクティブで出力し、当該アイドル信号に応答した前記読み出しコントローラによる読み出しアドレスおよび読み出し要求信号を受けて、前記読み出し系配線群を介して前記メモリモジュールからデータの読み出しを行い、前記読み出し用配線群を介して前記読み出しコントローラに出力する
画像処理装置。 - 前記各メモリモジュールは、
前記複数のバンクのそれぞれに対応して設けられ、前記書き込み系回路から入力した画像データを入力順でアドレスに応じて対応する前記バンクに出力する書き込み用の複数の第2の記憶回路と、
時系列な画像データをアドレスに対応した前記バンクに対応する前記第2の記憶回路に分配する分配部と、を含む
請求項1記載の画像処理装置。 - 前記各メモリモジュールは、
前記複数のバンクのそれぞれに対応して設けられ、対応する前記バンクから読み出された画像データを入力順に出力する読み出し用の複数の第3の記憶回路と、
前記複数の第3の記憶回路から読み出された画像データを対応する前記読み出し用配線群に出力する集配部と、をさらに含む
請求項2記載の画像処理装置。 - 前記各メモリモジュールの前記第2の記憶回路は、
1個の入力ポートと少なくとも2個以上の出力ポートとを有し、各出力ポートにおいて、前記入力ポートを介して入力した画像データを入力順でアドレスに応じて対応する前記バンクに出力する
請求項1記載の画像処理装置。 - 前記各メモリモジュールは、
少なくとも2個の入力ポートと1個以上の出力ポートとを有し、前記入力ポートの位置に応じた順序で、前記複数のバンクから前記入力ポートを介して入力した画像データを、前記出力ポートから対応する読み出し用配線群に出力する第3の記憶回路を有する
請求項4記載の画像処理装置。 - 単位図形の頂点について、3次元座標(x,y,z)、R(赤),G(緑),B(青)データ、テクスチャ同次座標(s,t)および同次項qを含むポリゴンレンダリングデータを用いてレンダリング処理を行うために、
前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、
前記補間データに含まれるテクスチャ同次座標(s,t)を同次項qで除算して「s/q」および「t/q」を生成し、当該「s/q」および「t/q」に応じたテクスチャアドレスを用いて前記第1の記憶回路から読み出されたテクスチャデータを、図形要素の表面への張り付け処理を行って表示データを生成し、当該表示データを前記第2の記憶回路を介して前記第1の記憶回路に書き込むテクスチャ処理回路と、を有する
請求項1、2、または4に記載の画像処理装置。 - 単位図形の頂点について、3次元座標(x,y,z)、R(赤),G(緑),B(青)データ、テクスチャ同次座標(s,t)および同次項qを含むポリゴンレンダリングデータを用いてレンダリング処理を行うために、
前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、
前記補間データに含まれるテクスチャ同次座標(s,t)を同次項qで除算して「s/q」および「t/q」を生成し、当該「s/q」および「t/q」に応じたテクスチャアドレスを用いて前記第3の記憶回路を介して前記第1の記憶回路から読み出されたテクスチャデータを、図形要素の表面への張り付け処理を行って表示データを生成し、当該表示データを前記第2の記憶回路を介して前記第1の記憶回路に書き込むテクスチャ処理回路と、を有する
請求項3または5に記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29872898A JP4232234B2 (ja) | 1998-10-20 | 1998-10-20 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29872898A JP4232234B2 (ja) | 1998-10-20 | 1998-10-20 | 画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000123157A JP2000123157A (ja) | 2000-04-28 |
JP4232234B2 true JP4232234B2 (ja) | 2009-03-04 |
Family
ID=17863512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29872898A Expired - Fee Related JP4232234B2 (ja) | 1998-10-20 | 1998-10-20 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4232234B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003263650A (ja) | 2002-03-12 | 2003-09-19 | Sony Corp | 画像処理装置およびその方法 |
-
1998
- 1998-10-20 JP JP29872898A patent/JP4232234B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000123157A (ja) | 2000-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH08278779A (ja) | グラフィックス用フレームメモリ装置 | |
JP4568950B2 (ja) | グラフィックス描画装置 | |
JP4182575B2 (ja) | 記憶装置および画像データ処理装置 | |
US6480199B1 (en) | Image processing apparatus | |
JP4232234B2 (ja) | 画像処理装置 | |
JP4314655B2 (ja) | 画像処理装置 | |
JP4828006B2 (ja) | 画像処理装置 | |
JP4665268B2 (ja) | 画像処理装置 | |
JP4081860B2 (ja) | 画像処理装置 | |
US7245303B2 (en) | Image processing apparatus | |
JP4069486B2 (ja) | 記憶回路制御装置およびグラフィック演算装置 | |
US7583270B2 (en) | Image processing apparatus | |
JP3741053B2 (ja) | 画像処理装置 | |
JP4670887B2 (ja) | 画像処理装置 | |
JP4580475B2 (ja) | 演算処理装置およびグラフィック演算装置 | |
JPH11272548A (ja) | 記憶回路制御装置およびグラフィック演算装置 | |
JP2002366944A (ja) | 画像処理装置 | |
JP2003085038A (ja) | 画像処理装置 | |
JP4271270B2 (ja) | データ記憶装置、データ記憶装置の制御装置とその方法および画像生成装置 | |
JP3617867B2 (ja) | 画像生成装置 | |
JPH11288467A (ja) | データ転送装置およびグラフィック演算装置 | |
JP2003022696A (ja) | テスト回路および画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050620 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080818 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080826 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081023 |
|
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: 20081118 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081201 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 3 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081023 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121219 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121219 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131219 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |