JP3797498B2 - メモリ制御装置およびメモリ制御方法、並びに画像生成装置 - Google Patents
メモリ制御装置およびメモリ制御方法、並びに画像生成装置 Download PDFInfo
- Publication number
- JP3797498B2 JP3797498B2 JP14905996A JP14905996A JP3797498B2 JP 3797498 B2 JP3797498 B2 JP 3797498B2 JP 14905996 A JP14905996 A JP 14905996A JP 14905996 A JP14905996 A JP 14905996A JP 3797498 B2 JP3797498 B2 JP 3797498B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- memory
- stored
- storage means
- 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 Input (AREA)
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は、メモリ制御装置およびメモリ制御方法、並びに画像生成装置に関する。特に、例えば、3次元コンピュータグラフィックシステムにおいて、回転、移動、及び拡大/縮小等の座標変換を頻繁に行って立体モデル(3次元画像)を表示する場合に、その表示画像を生成するときなどに用いて好適なメモリ制御装置およびメモリ制御方法、並びに画像生成装置に関する。
【0002】
【従来の技術】
例えば、コンピュータグラフィックスシステムは、計算機とグラフィックス周辺装置により、画像(映像)を作成して表示するシステムであり、機械、電気、建築等における設計支援のためのCADシステムや、化学、航空、制御等における反応、応答のシュミレーション、さらには、教育、芸術、及びビデオゲーム等の多くの分野において活用されている。
【0003】
上述のようなコンピュータグラフィックスシステムとして、主として計算機の数値計算能力を活用して立体的な画像(3次元画像)を作成する3次元画像生成装置を備えたシステム(以下、3次元グラフィックシステムと言う。)がある。
【0004】
この3次元グラフィックシステムは、計算機中にある立体モデルを、回転、移動、拡大/縮小という座標変換を頻繁に行って画面表示するシステムであり、2次元グラフィックシステムに比べ、座標変換、透視変換、陰影処理、及び隠線/隠面消去処理等、高度な技術を必要とする。
【0005】
ここで、3次元グラフィックシステムでは、立体モデルを、空間中において様々な状態に変化させるために、画素毎の演算を行う画素演算処理が行われるが、この画素演算処理を行うためには、立体モデルから得られる画素データと、既に得られており、フレームバッファなどに記憶されている画素データとの合成および比較等が必要となる。そこで、3次元グラフィックシステムにおいては、フレームバッファから、そこに既に記憶されている画素データを読み出し(リードし)、その画素データと、新しく入力(生成)された画素データとを用いての演算処理を行い、その演算結果を、フレームバッファに書き戻すことが行われる(以下、適宜、このような動作(処理)を、リードモディファイライト動作と言う)。
【0006】
図7は、従来の3次元グラフィックシステムにおける3次元画像生成装置の一例の構成を示している。図7において、3次元画像生成装置は、図示せぬブロックからの画素データの書き込み要求を保持する記憶回路としてのリクエストバッファ101と、その書き込み要求に応じてメモリ制御を行うメモリ制御回路102と、画素データを記憶するメモリとしての、例えば同期型のDRAM(Dynamic Random Access Memory)(SDRAM(Syncronous DRAM))などで構成されたフレームバッファ103とを備えている。
【0007】
なお、フレームバッファ103においては、行アドレスおよび列アドレスの2つのアドレスによって特定される領域に対して、データの書き込みおよび読み出しが行われるようになされている。
【0008】
メモリ制御回路102は、リクエストバッファ101からの書き込み要求の読み出し、並びにフレームバッファ103の物理的なアドレスADRおよび制御信号CTLの発生を行うタイミング発生回路102Aと、フレームバッファ103から読み出された画素データ、および書き込み要求のあった画素データを用いての画素演算処理を行う演算処理回路102Bとからなる。
【0009】
なお、タイミング発生回路102Aは、例えば、書き込み要求としてアドレスを、リクエストバッファ101からアドレスバス104を介して受信し、また、発生したアドレスADRまたは制御信号CTLを、コントロールバス106またはアドレスバス107それぞれを介して、フレームバッファ103に供給するようになされている。演算処理回路102Bは、リクエストバッファ104からアドレスとともに出力されるデータ(画素データ)を、データバス105を介して受信し、また、フレームバッファ103との間の画素データDATAの送受信を、データバス108を介して行うようになされている。
【0010】
以上のように構成される3次元画像生成装置において、フレームバッファ103の同一行アドレス内の、例えば任意の3画素(ピクセル)に対して、リードモディファイライト動作が行われる場合、図8に示すように、まず、タイミング発生回路102Aは、クロックclk=「0」において、リクエストバッファ101からの書き込み要求に応じた行アドレスを活性化するため、フレームバッファ103に対して、ロウアクティブ動作を指示する制御信号Ractを、コントロールバス106介して供給すると共に、書き込み要求に応じた行アドレスRow0を、アドレスバス107を介して供給する。これにより、フレームバッファ103は、タイミング発生回路102AからのアドレスRow0を行アドレスとしてラッチし、その行アドレスRow0に対応する領域を活性化する。
【0011】
次に、タイミング発生回路102Aは、クロックclk=「2」において、フレームバッファ103に対して、カラムリードアクセス動作を指示する信号Rdcを、コントロールバス106介して供給すると共に、書き込み要求に応じた列アドレスCol0を、アドレスバス107を介して供給する。
【0012】
これにより、フレームバッファ103は、タイミング発生回路102AからのアドレスCol0を列アドレスとしてラッチする。そして、フレームバッファ103は、タイミング発生回路102Aからの行アドレスRow0及び列アドレスCol0により特定される領域に記憶されている画素データRpd0を読み出し、データバス108を介して演算処理回路102Bに供給する。
【0013】
次に、演算処理回路102Bは、クロックclk=「5」において、フレームバッファ103からの画素データRpd0を受信する。ここで、リクエストバッファ101は、書き込み要求(アドレス)を出力するときに、それに対応する画像データも出力しており、この画像データは、データバス105を介して、演算処理回路102Bで受信される。演算回路102Bは、フレームバッファ103からの画素データRpd0を受信すると、この画素データRpd0と、リクエストバッファ101からの画素データとを用いての演算処理を行い、これにより、フレームバッファ103に新たに書き込むべき画素データWpd0を生成する。
【0014】
そして、タイミング発生回路102Aは、クロックclk=「8」において、フレームバッファ103に対して、カラムライトアクセス動作を指示する制御信号Wrcを、コントロールバス106を介して供給すると共に、前回発生したものと同一の列アドレスCol0を、アドレスバス107を介してを供給する。これにより、フレームバッファ103の行アドレスRow0及び列アドレスCol0で特定される領域には、演算処理回路102Bにおける演算処理の結果得られた画素データWpd0が供給される。
【0015】
同一行アドレス内の、残りの2つの画素データについても、クロックclk=「9」乃至「15」または「17」乃至「23」において、上述のクロックclk=「2」乃至「8」における場合と同様の手順にしたがって、フレームバッファ103へのアクセス及び演算処理が行われることにより、行アドレスRow0及び列アドレスCol1で示される領域に画素データWpd1が、行アドレスRow0及び列アドレスCol2で示される領域に画素データWpd2が、それぞれ供給される。
【0016】
以上のようにして、同一行アドレス内の3画素についての画素データが、フレームバッファ103に供給されると、タイミング制御回路102Aは、クロックclk=「25」において、プリチャージ動作を指示する制御信号Pchrgを、コントロールバス106介してフレームバッファ103へ供給する。これにより、活性化された行アドレスCol0に供給された画素データWpd0,Wpd1,Wpd2が、フレームバッファ103の、対応する領域(メモリセル)へ書き込まれる。
【0017】
尚、図8において、クロックclkが「0」乃至「1」の期間tRCDは、タイミング発生回路102Aが行アドレスRow0及び制御信号Ractを発生してから、フレームバッファ103がRow0を行アドレスとしてラッチして、その行アドレスRow0内のデータが活性化されるまでの期間である。
【0018】
また、クロックclkが「2」乃至「4」の期間tCLは、タイミング発生回路102Aが列アドレスCol0及び制御信号Rdcを発生してから、フレームバッファ103から読み出される画素データRpd0が有効となるまでの期間である。クロックclkが「9」乃至「11」の期間および「17」乃至「19」の期間も同様である。
【0019】
さらに、クロックclkが「5」乃至「7」の期間tRMWは、読み出す画素データRpd0が有効となってから、演算処理回路102Bにおける演算が終了するまでの期間である。クロックclkが「12」乃至「14」の期間および「20」乃至「22」の期間も同様である。
【0020】
また、クロックclkが「23」乃至「24」の期間tRASは、同一行のデータのアクセスが終了し、プリチャージ動作が可能になるまでの期間である。
【0021】
さらに、クロックclkが「25」乃至「26」の期間tRPは、プリチャージ動作が行われ、新たな行アドレスを活性化することができるようになるまでの期間である。
【0022】
なお、以上の期間のうち、期間tRCD,tCL,tRAS、及びtRPは、フレームバッファ103を構成するDRAM(SDRAM)の規格により規定されるものであり、また、期間tRMWは、演算処理回路102Bにおける演算処理の内容によって変動するものである。図8においては、期間tRP,tRCD、及びtRASは2クロックを要するものと、また、期間tCLおよびtRMWは3クロックを要するものとしてある。
【0023】
【発明が解決しようとする課題】
ところで、上述したような従来の3次元画像生成装置では、リードモディファイライト動作を行う場合において、1画素単位でリード動作(フレームバッファ103からの画素データの読み出し)、演算処理、ライト動作(フレームバッファ103への演算結果の書き込み)が繰り返し行われる。このため、図8に示したように、1画素毎にデータ転送以外の余分なサイクル、即ち、期間tCLおよびtRMWが必要であり、メモリアクセス効率が良いとは言い難かった。
【0024】
具体的には、リードモディファイライト動作に要する期間は、式
tRCD+画素数×(tCL+tRMW)+tRAS+tRP+(画素数−1)
から求めることができ、この式からわかるように、余分なサイクルとしての期間tCLおよびtRMWが画素数に比例して必要となる。例えば、図8に示した場合における3画素のリードモディファイライト動作に要する期間は27クロックであり、この場合の画素演算の処理効率、即ち、1画素の処理に費やされるクロック数は9クロック(=27クロック/3画素)となる。
【0025】
本発明は、このような状況に鑑みてなされたものであり、メモリアクセスの効率化を図ることができるようにするものである。
【0026】
【課題を解決する手段】
本発明のメモリ制御装置は、メモリから、メモリに記憶されている記憶データを読み出し、記憶データと、入力された入力データとを用いての演算処理を行い、演算処理の演算結果をメモリに書き戻すリードモディファイライト動作を制御するメモリ制御装置であって、入力データのアドレスに基づいて、記憶データの領域を特定するための行アドレスおよび列アドレスを発生する発生手段と、発生手段の出力を記憶するアドレス記憶手段と、発生手段の出力、またはアドレス記憶手段の記憶値のうちのいずれか一方を選択し、メモリに与える選択手段とを備え、列アドレスがアドレス記憶手段により記憶されている列アドレスと一致しない入力データに対して、連続して入力される複数の入力データの行アドレスが同一である間、選択手段が、発生手段の出力を選択してメモリに与えることにより、メモリから記憶データを読み出させて演算処理を行わせるとともに、アドレス記憶手段が発生手段の出力を記憶し、異なる行アドレスの入力データが入力された場合、選択手段が、アドレス記憶手段の記憶値を選択してメモリに与えることにより、メモリに、記憶値に対応する演算結果を書き込ませることを特徴とする。
【0027】
本発明のメモリ制御方法は、メモリから、メモリに記憶されている記憶データを読み出し、記憶データと、入力された入力データとを用いての演算処理を行い、演算処理の演算結果をメモリに書き戻すリードモディファイライト動作を制御するメモリ制御装置のメモリ制御方法であって、入力データのアドレスに基づいて、記憶データの領域を特定するための行アドレスおよび列アドレスを発生する発生ステップと、発生ステップにおいて発生されたアドレスをアドレス記憶手段に記憶するアドレス記憶ステップと、発生ステップにおいて発生されたアドレス、またはアドレス記憶手段の記憶値のうちのいずれか一方を選択し、メモリに与える選択ステップとを含み、列アドレスがアドレス記憶手段に記憶されている列アドレスと一致しない入力データに対して、連続して入力される複数の入力データの行アドレスが同一である間、選択ステップにおいて、発生ステップにおいて発生されたアドレスを選択してメモリに与えることにより、メモリから記憶データを読み出させて演算処理を行わせるとともに、アドレス記憶ステップにおいて、発生ステップにおいて発生されたアドレスを記憶し、異なる行アドレスの入力データが入力された場合、選択ステップにおいて、アドレス記憶手段の記憶値を選択してメモリに与えることにより、メモリに、記憶値に対応する演算結果を書き込ませることを特徴とする。
【0028】
本発明の画像生成装置は、単位図形の組合せにより定義される3次元画像を生成する画像生成装置であって、単位図形の頂点に関する頂点データを生成する頂点データ生成手段と、頂点データに基づいて、単位図形の内部の画素についての画素データを生成する画素データ生成手段と、行アドレスおよび列アドレスにより特定される領域に対して、データの読み出しおよび書き込みが行われるデータ記憶手段と、画素データ生成手段により生成された画素データと、データ記憶手段に記憶されたデータとを用いて所定の演算を行う演算手段と、行アドレスおよび列アドレスを発生する発生手段と、発生手段の出力を記憶するアドレス記憶手段と、発生手段の出力、またはアドレス記憶手段の記憶値のうちのいずれか一方を選択し、データ記憶手段に与える選択手段とを備え、データ記憶手段から、データ記憶手段に記憶されている記憶データを読み出し、記憶データと、入力された入力データとを用いての演算処理を行い、演算処理の演算結果をメモリに書き戻すリードモディファイライト動作において、列アドレスがアドレス記憶手段により記憶されている列アドレスと一致しない入力データに対して、連続して入力される複数の入力データの行アドレスが同一である間、選択手段が、発生手段の出力を選択してデータ記憶手段に与えることにより、データ記憶手段から記憶データを読み出させて演算処理を行わせるとともに、アドレス記憶手段が発生手段の出力を記憶し、異なる行アドレスの入力データが入力された場合、選択手段が、アドレス記憶手段の記憶値を選択してデータ記憶手段に与えることにより、データ記憶手段に、記憶値に対応する演算結果を書き込ませることを特徴とする。
【0029】
本発明のメモリ制御装置およびメモリ制御方法においては、入力データのアドレスに基づいて、記憶データの領域を特定するための行アドレスおよび列アドレスを発生し、その発生されたアドレスをアドレス記憶手段に記憶し、発生されたアドレス、またはアドレス記憶手段の記憶値のうちのいずれか一方を選択し、行アドレスおよび列アドレスにより特定される領域に対して、データの読み出しおよび書き込みが行われるメモリであって、入力された入力データとの所定の演算が施される記憶データを記憶するメモリに与える。この場合、列アドレスがアドレス記憶手段に記憶されている列アドレスと一致しない入力データに対して、連続して入力される複数の入力データの行アドレスが同一である間、発生されたアドレスを選択してメモリに与えることにより、メモリから記憶データを読み出させて演算処理を行わせるとともに、その発生されたアドレスをアドレス記憶手段に記憶させ、異なる行アドレスの入力データが入力されたとき、アドレス記憶手段の記憶値を選択してメモリに与えることにより、メモリに、記憶値に対応する演算結果を書き込ませる。
【0030】
本発明の画像生成装置においては、単位図形の頂点に関する頂点データを生成し、頂点データに基づいて、単位図形の内部の画素についての画素データを生成し、行アドレスおよび列アドレスにより特定されるデータ記憶手段の領域に対して、データの読み出しおよび書き込みが行われ、生成された画素データと、記憶されたデータとを用いて所定の演算を行い、行アドレスおよび列アドレスを発生し、その発生されたアドレスを記憶し、発生されたアドレス、または発生されたアドレスの記憶値のうちのいずれか一方を選択し、データ記憶手段に与える。この場合、データ記憶手段から、データ記憶手段に記憶されている記憶データを読み出し、記憶データと、入力された入力データとを用いての演算処理を行い、演算処理の演算結果をメモリに書き戻すリードモディファイライト動作において、列アドレスがアドレス記憶手段に記憶されている列アドレスと一致しない入力データに対して、連続して入力される複数の入力データの行アドレスが同一である間、発生されたアドレスを選択してデータ記憶手段に与えることにより、データ記憶手段から記憶データを読み出させて演算処理を行わせるとともに、その発生されたアドレスをアドレス記憶手段に記憶させ、異なる行アドレスの入力データが入力されたとき、アドレス記憶手段の記憶値を選択してデータ記憶手段に与えることにより、データ記憶手段に、記憶値に対応する演算結果を書き込ませる。
【0031】
請求項5に記載の画像生成装置においては、画像データ生成手段は、頂点データに基づいて、単位図形の内部の画素についての画素データを生成し、データ記憶手段は、第1および第2のアドレスにより特定される領域に対して、データの読み出しおよび書き込みを行うようになされている。演算手段は、画素データ生成手段により生成された画素データと、データ記憶手段に記憶されたデータとを用いて所定の演算を行い、発生手段は、第1および第2のアドレスを発生するようになされている。アドレス記憶手段は、画素データ生成手段が連続して出力する複数の画素データとの演算が施される、データ記憶手段に記憶されたデータの第1のアドレスが同一である間に、発生手段が発生する第2のアドレスを記憶し、選択手段は、データ記憶手段からデータを読み出すとき、またはデータ記憶手段に演算手段の演算結果を書き込むとき、発生手段の出力、またはアドレス記憶手段の記憶値をそれぞれ選択して、データ記憶手段に与えるようになされている。
【0032】
【発明の実施の形態】
以下、発明の実施の形態について、図面を参照して詳細に説明する。
【0033】
本発明に係る3次元画像生成装置は、例えば、図1に示すような3次元コンピュータグラフィックシステム300の3次元画像生成装置(以下、単に画像生成装置と言う)2に適用される。
【0034】
まず、3次元コンピュータグラフィックシステム300において、画像生成装置2には、入力装置1及び表示装置3が接続されている。
【0035】
画像生成装置2は、入力装置1の出力が供給される転送回路21と、転送回路21の出力が供給されるジオメトリ演算回路22(頂点データ生成手段)と、ジオメトリ演算回路22の出力が供給されるパラメータ演算回路23と、パラメータ演算回路23の出力が供給される画素発生回路24(画像データ生成手段)と、画素発生回路24の出力が供給されるマッピング回路25と、マッピング回路25の出力が供給されるメモリ制御回路27と、メモリ制御回路27の出力が供給されるディスプレイ制御回路29とを備えており、ディスプレイ制御回路29の出力は、表示装置3に供給されるようになされている。
【0036】
また、画像生成装置2は、マッピング回路25と接続されたテクスチャメモリ26と、メモリ制御回路27と接続されたフレームバッファ28(データ記憶手段)とを備えている。
【0037】
まず、入力装置1により、画像生成装置2に対して、任意の立体モデルを構成するポリゴン(単位図形)に関するポリゴンデータが入力される。即ち、図1の3次元コンピュータグラフィックシステムでは、立体モデル(3次元画像)を、複数のポリゴンに分解し、これらのポリゴンそれぞれを描画することで、立体モデル全体を表示するようになされており(従って、立体モデルは、ポリゴンの組合せにより定義されているということができる)、入力装置1から画像生成装置2に対しては、そのようなポリゴンについてのポリゴンデータが供給されるようになされている。
【0038】
画像生成装置2では、転送回路21において、入力装置1からのポリゴンデータが、直接メモリアクセス(DMA:Direct Memory Access)転送により、ジオメトリ演算回路22に高速転送される。
【0039】
ここで、画像生成装置2は、平面を表す(x,y)座標のほかに、奥行きを表すz座標を用いて、3次元物体を表し、x,y,zの3つの座標で3次元空間内の任意の1点を表現するようになされている。
【0040】
また、ポリゴンについては、その各頂点が主要なデータとなっている。すなわち、各頂点に対して、幾何学変換を施すことにより、面の変換ができ、最終的には、ポリゴンの幾何学的変換ができる。この幾何学的変換としては、並進変換、平行変換、及び回転変換等がある。
【0041】
そこで、入力装置1により入力されたポリゴンを空間中の様々な位置へと変化させるために、ジオメトリ演算回路22は、転送回路21からのポリゴンデータの3次元空間内の各頂点(x,y,z)毎に、上述したような幾何学的変換処理(以下、ジオメトリ変換処理という)を施す。そして、ジオメトリ演算回路22は、ジオメトリ変換処理を行ったポリゴンデータを、パラメータ演算回路23に供給する。
【0042】
パラメータ演算回路23は、ジオメトリ演算回路22からのポリゴンデータに基いて、画素発生回路24においてポリゴン内部の画素データを発生するために必要なパラメータを求め、画素発生回路24に供給する。
【0043】
画素発生回路24は、パラメータ演算回路23からのパラメータによりセットアップされ、ジオメトリ演算回路22でジオメトリ変換処理が行われたポリゴンデータ内部の色データ、奥行データ等の画素データ、および表示に対応する2次元平面上でのアドレスを生成し、マッピング回路25に供給する。
【0044】
マッピング回路25は、画素発生回路24からの画素データおよびアドレスに応じ、テクテクスチャメモリ26に格納されているテクスチャデータを用いて、テクスチャマッピング処理を行う。そして、マッピング回路25は、テクスチャマッピング処理を行った画素データおよびアドレスを、メモリ制御回路27に供給する。
【0045】
メモリ制御回路27は、マッピング回路25からのアドレスに対応した画素データを、フレームバッファ28から読み出し、その画素データと、マッピング回路25からの画素データとを用いて、画素演算処理を行う。そして、メモリ制御回路27は、画素演算処理の結果得られた画素データを、フレームバッファ28へ書き込む。また、メモリ制御回路27は、ディスプレイ制御回路29から指定された表示領域の画素データを、フレームバッファ28から読み出し、ディスプレイ制御回路29に供給する。
【0046】
尚、メモリ制御回路27及びフレームバッファ28についての詳細な説明は後述する。
【0047】
ディスプレイ制御回路29は、メモリ制御回路27に対して、表示すべき表示領域の画素データを要求し、その要求に応じてメモリ制御回路27から供給される画素データを受信する。そして、ディスプレイ制御回路29は、その画素データをアナログ化して表示装置3に供給する。
【0048】
これにより、表示装置3においては、ディスプレイ制御回路29からの画素データ(画像信号)に対応する画面が表示される。
【0049】
次に、上述したメモリ制御回路27及びフレームバッファ28について詳述する。
【0050】
メモリ制御回路27とフレームバッファ28とは、例えば、前述した図7のメモリ制御回路102およびフレームバッファ103における場合と同様に接続されている。即ち、メモリ制御回路27とフレームバッファ28とは、図2に示すように、1本のコントロールバス106、1本のアドレスバス107、および1本のデータバス108で接続されている。そして、メモリ制御回路27は、制御信号CTLまたはアドレスADRを、コントロールバス106またはアドレスバス107それぞれを介して出力することで、フレームバッファ28にアクセスするようになされている。また、メモリ制御回路27とフレームバッファ28との間では、データバス108を介して、データDATAのやりとりが行われるようになされている。
【0051】
メモリ制御回路27は、タイミング発生回路271(発生手段)(指示手段)、列アドレスバッファ272(アドレス記憶手段)、セレクト回路273(選択手段)、演算処理回路274(演算手段)、ライトデータバッファ275、および双方向バッファ276で構成されている。
【0052】
タイミング発生回路271は、フレームバッファ28に対する制御信号CTLを発生し、コントロールバス106を介して、フレームバッファ28に供給するようになされている。また、タイミング発生回路271は、マッピング回路25からアドレスバス104を介して供給される画素データのアドレスに対応して、行アドレスおよび列アドレス(第1および第2のアドレス)を発生し、アドレスバス111を介して、列アドレスバッファ272およびセレクト回路273に供給するようにもなされている。さらに、タイミング発生回路271は、コントロールバス109を介して、セレクト回路273および双方向バッファ276を制御するようにもなされている。
【0053】
列アドレスバッファ272は、例えばFIFO(First In First Out)方式のメモリを含んで構成され、タイミング発生回路271が発生する列アドレスを、必要に応じて記憶するようになされている。列アドレスバッファ272において記憶された列アドレスは、アドレスバス112を介して、セレクト回路273に供給されるようになされている。
【0054】
セレクト回路273は、タイミング発生回路271の制御にしたがって、タイミング発生回路271が出力するアドレス(行アドレス、列アドレス)、または列アドレスバッファ272が出力する列アドレスのうちのいずれか一方を選択し、アドレスバス107を介して、フレームバッファ28に供給するようになされている。
【0055】
演算処理回路274は、マッピング回路25から供給される画素データと、フレームバッファ28から読み出され、双方向バッファ276を介して供給される画素データとを用いての演算処理を行い、その演算結果としての画素データを、データバス114を介して、ライトデータバッファ275に供給するようになされている。ライトデータバッファ275は、演算処理回路274から供給される画素データを一時記憶し、データバス115を介して双方向バッファ276に供給するようになされている。双方向バッファ276は、フレームバッファ28から読み出され、データバス108を介して供給される画素データを受信し、データバス113を介して、演算処理回路274に供給するとともに、ライトデータバッファ275から供給される画素データを受信し、データバス108を介して、フレームバッファ28に供給するようになされている。
【0056】
フレームバッファ28は、前述した図7のフレームバッファ103と同様に構成されている。
【0057】
以上のように構成されるメモリ制御回路27に対しては、マッピング回路25から、処理を行うべき画素データが、データバス105を介して、また、その画素データについてのアドレスが、アドレスバス104を介して入力される。
【0058】
例えば、いま、マッピング回路25から連続してフレームバッファ28の同一行アドレス内の3つの画素データPix0,Pix1,Pix2が入力され、次に異なる行アドレスの画素データPix3が入力され、これらについて、リードモディファライト動作が行われる場合、図3に示すように、まず、タイミング発生回路271は、クロックclk=「0」において、画素データPix0,Pix1,Pix2についてのアドレスに応じて、行アドレスを活性化するため、ロウアクティブ動作を指示する制御信号Ractを発生し、コントロールバス106介して、フレームバッファ28に供給する。同時に、タイミング発生回路271は、3つの画素データPix0,Pix1,Pix2に対応する同一の行アドレスRow0を発生し、アドレスバス111を介して、セレクト回路273に供給する。
【0059】
このとき、タイミング発生回路271は、セレクト回路273を、タイミング発生回路271の出力を選択するように制御しており、従って、行アドレスRow0は、セレクト回路273において選択され、アドレスバス107を介して、フレームバッファ28に供給される。
【0060】
これにより、フレームバッファ28は、タイミング発生回路271からのアドレスRow0を行アドレスとしてラッチし、制御信号Ractにしたがって、行アドレスRow0に対応する領域を活性化する。
【0061】
そして、タイミング発生回路271は、クロックclk=「2」において、カラムリードアクセス動作を指示する信号Rdcを発生し、コントロールバス106介して、フレームバッファ28へ供給する。さらに、タイミング発生回路271は、その出力を選択するように、セレクト回路273を制御するとともに、リード方向(フレームバッファ28から演算処理回路274の方向)にデータを転送するように、双方向バッファ276を制御する。その後、タイミング発生回路271は、同一行内の最初の画像データPix0に対応する列アドレスCol0を発生し、アドレスバス111を介して出力する。
【0062】
この列アドレスCol0は、列アドレスバッファ112およびセレクト回路273に供給される。列アドレスバッファ112は、タイミング発生回路271からの列アドレスCol0を受信して記憶する。また、セレクト回路273は、タイミング発生回路271からの列アドレスCol0を選択し、アドレスバス107を介して、フレームバッファ28に供給する。
【0063】
フレームバッファ28は、タイミング発生回路271が発生したアドレスCol0を、列アドレスとしてラッチする。そして、フレームバッファ28は、行アドレスRow0および列アドレスCol0で特定される領域に記憶されている画素データRpd0を読み出し、データバス108を介して、双方向バッファ276に供給する。
【0064】
双方向バッファ276は、上述したように、リード方向に、データを転送するように制御されており、従って、この場合、フレームバッファ28からの画像データRpd0は、双方向バッファ276を介して、演算処理回路274に供給される。
【0065】
次に、タイミング発生回路271は、クロックclk=「3」において、カラムリードアクセス動作を指示する信号Rdcを発生するとともに、同一行内の2番目の画像データPix1に対応する列アドレスCol1を発生し、以下、クロックclk=「2」における場合と同様の処理を行う。
【0066】
これにより、列アドレスバッファ272には列アドレスCol1が記憶され、また、フレームバッファ28の行アドレスRow0および列アドレスCol1で特定される領域から画素データRpd1が読み出されて、演算処理回路274に供給される。
【0067】
さらに、タイミング発生回路271は、クロックclk=「4」において、カラムリードアクセス動作を指示する信号Rdcを発生するとともに、同一行内の3番目の画像データPix2に対応する列アドレスCol2を発生し、以下、クロックclk=「2」における場合と同様の処理を行う。
【0068】
これにより、やはり、列アドレスバッファ272には列アドレスCol2が記憶され、また、フレームバッファ28の行アドレスRow0および列アドレスCol2で特定される領域から画素データRpd2が読み出されて、演算処理回路274に供給される。
【0069】
演算処理回路274は、例えば、パイプライン処理が可能な構造となっており、クロックclk=「5」において、画素データPix0とRpd0とを用いた演算処理を、クロックclk=「6」において、画素データPix1とRpd1とを用いた演算処理を、クロックclk=「7」において、画素データPix2とRpd2とを用いた演算処理を、それぞれ開始する。そして、演算処理回路274は、各演算処理の結果得られる画素データWpd0,Wpd1,Wpd2を、ライトデータバッファ275に順次供給する。ライトデータバッファ275は、例えば、FIFO方式のメモリで構成され、演算処理回路274から供給される画素データWpd0,Wpd1,Wpd2を順次記憶する。
【0070】
一方、タイミング発生回路271は、画素データPix3に対応するアドレスを受信すると、その行アドレスが、いままでに処理した画素データPix0乃至Pix2の行アドレスと異なることを認識し、ライトデータバッファ275に記憶された画素データWpd0乃至Wpd2の、フレームバッファ28への書き込み制御を開始するが、画素データRpd2とWpd0との、データバス108上での衝突を避けるため、クロクclk=「8」において待ち状態となる。
【0071】
その後、タイミング発生回路271は、クロックclk=「9」において、カラムライトアクセス動作を指示する制御信号Wrcを、コントロールバス106介してフレームバッファ28に供給する。さらに、タイミング発生回路271は、列アドレスバッファ272の出力を選択するように、セレクト回路273を制御するとともに、ライト方向(ライトデータバッファ275からフレームバッファ28の方向)にデータを転送するように、双方向バッファ276を制御する。
【0072】
そして、列アドレスバッファ272からは、最初に記憶した列アドレス、即ち、画像データWpd0に対応する列アドレスCol0が読み出され、セレクタ回路273に供給される。この場合、セレクタ回路273では、列アドレスバッファ272からの列アドレスCol0が選択され、アドレスバス107を介して、フレームバッファ28に供給される。同時に、ライトデータバッファ275からは、やはり最初に記憶した画素データWpd0が読み出され、双方向バッファ276に供給される。この場合、双方向バッファ276は、ライト方向に、データを転送するように制御されており、従って、ライトデータバッファ275からの画像データWpd0は、データバス108を介して、フレームバッファ28に供給される。
【0073】
これにより、フレームバッファ28の行アドレスRow0および列アドレスCol0で示される領域には、演算処理回路274で得られた画像データWpd0が供給される。
【0074】
以下、クロックclk=「10」および「11」においても、タイミング発生回路271は同様の処理を行い、これにより、フレームバッファ28には、クロックclk=「10」において、列アドレスバッファ272で2番目に記憶された列アドレスCol1、およびライトデータバッファ275で2番目に記憶された画素データWpd1が供給され、クロックclk=「11」において、列アドレスバッファ272で3番目に記憶された列アドレスCol2、およびライトデータバッファ275で3番目に記憶された画素データWpd2が供給される。
【0075】
その結果、クロックclk=「10」においては、フレームバッファ28の行アドレスRow0および列アドレスCol1で示される領域に、画像データWpd1が供給され、また、クロックclk=「11」においては、フレームバッファ28の行アドレスRow0および列アドレスCol2で示される領域に、画像データWpd2が供給される。
【0076】
そして、タイミング発生回路271は、クロックclk=「12」において、プリチャージ動作を指示する制御信号Pchrを、コントロールバス106介してフレームバッファ28へ供給する。これにより、制御信号Ractによって活性化された行アドレスRow0の領域に供給された画素データWpd0乃至Wpd2が、その行アドレスRow0および列アドレスCol0乃至Col2に対応する領域(メモリセル)に、それぞれ書き込まれる。
【0077】
なお、図3において、クロックclkが「0」乃至「1」の期間tRCDは、タイミング発生回路271が行アドレスRow0および制御信号Ractを発生してから、フレームバッファ28がRow0を行アドレスとしてラッチして、その行アドレスRow0内の画素データが活性化されるまでの期間である。
【0078】
また、クロックclkが「2」乃至「4」の期間tCL0は、タイミング発生回路271が列アドレスCol0および制御信号Rdcを発生してから、フレームバッファ28から読み出される画像データRpd0が有効となるまでの期間である。同様に、クロックclkが「3」乃至「5」の期間tCL1は、タイミング発生回路271が列アドレスCol1および制御信号Rdcを発生してから、フレームバッファ28から読み出される画像データRpd1が有効となるまでの期間であり、クロックclkが「4」乃至「6」の期間tCL2は、タイミング発生回路271が列アドレスCol2および制御信号Rdcを発生してから、フレームバッファ28から読み出される画像データRpd2が有効となるまでの期間である。
【0079】
さらに、クロックclkが「5」乃至「7」の期間tRMW0は、画素データRpd0が有効となってから、その画素データRpd0を用いての演算処理回路274での演算処理が終了するまでの期間である。同様に、クロックclkが「6」乃至「8」の期間tRMW1は、画素データRpd1が有効となってから、その画素データRpd1を用いての演算処理回路274での演算処理が終了するまでの期間であり、クロックclkが「7」乃至「9」の期間tRMW2は、画像データRpd2が有効となってから、その画像データRpd2を用いての演算処理回路274での演算処理が終了するまでの期間である。
【0080】
また、クロックclkが「11」乃至「12」の期間tRASは、同一行アドレスの画像データに対するアクセスが終了し、プリチャージ動作が可能になるまでの期間である。
【0081】
さらに、クロックclkが「13」乃至「14」の期間tRPは、プリチャージ動作が行われ、新たな行アドレスを活性化することができるまでの期間である。
【0082】
なお、後述する図6における期間tRCD,tCL,tRMWも、図3における場合と同様の期間を表す。
【0083】
また、前述したように、期間tRCD,tCL,tRAS、およびtRPは、フレームバッファを構成するDRAMの規格により規定されるものであり、期間tRMWは、演算処理回路274における演算処理の内容によって変動するものである。図3(図6においても同様)においても、前述した図8における場合と同様に、期間tRP,tRCD、およびtRASは2クロックと、期間tCLおよびtRMWは3クロックと、それぞれしてある。
【0084】
次に、メモリ制御回路27とフレームバッファ28によって行われるリードモディファイライト動作における画素演算処理の効率について説明する。
【0085】
図3に示した場合においては、リードモディファイライト動作に要する期間は、式
tRCD+tCL+tRMW+画素数+tRAS+tRP
から求めることができ、従って、3画素に対するリードモディファイライトに要する期間は15クロックとなる。この15クロックというのは、従来の場合(図8)の27クロックより、12クロック少ないが、これは、図3に示したように、期間tCL0乃至tCL2およびtRMW0乃至tRMW2がオーバラップしているからである。即ち、画素データの読み出しおよび画素演算処理が並列して行われていることにより、リードモディファイライトに要する期間が短縮されている。
【0086】
この場合における画素演算の処理効率、すなわち1画素の処理に消費されるクロック数は5クロックであり、従って、前述した従来の3次元画像生成装置における1画素当たりの処理クロック数が9クロックであるのと比較してわかるように、メモリアクセスの効率化が図られている。
【0087】
また、従来の3次元画像生成装置における1画素当たりの処理クロック数は、期間tCLおよびtRMWが、画素毎に必要とされるため、連続して処理することができる同一行アドレスの画素データの数によっては低減しないが、画像生成装置2では、期間tCLおよびtRMWが、連続して処理することのできる同一行アドレスの画素データ数に拘らず一定クロック数であるため、連続して処理することができる画素データの数が多いほど、1画素当たりの処理クロック数を低減することができる。
【0088】
そして、一般的に、3次元画像生成装置は、メモリアクセスの局所性(同一行アドレスへの連続アクセスが多い事)を有するから、これを考慮した場合、その性能を十分に向上させることができる。
【0089】
ところで、列アドレスバッファ272をオーバーフローさせないためには、同一行アドレスの画素データが連続して供給される最大数だけの列アドレスを記憶させることができるように、列アドレスバッファ272を構成する必要があるが、そのような数の列アドレスを記憶しなければならないのは稀であり、このようなレアケースを想定して、列アドレスバッファ272を構成するのは、装置の規模およびコストの面から好ましくない。
【0090】
従って、列アドレスバッファ272を、同一行アドレスの画素データが連続して供給される最大数より少ない数の列アドレスしか記憶することができないようにした場合に、そのオーバーフローを防止する必要がある。
【0091】
さらに、列アドレスバッファ272を、単に、FIFO方式のメモリだけで構成した場合、同一行アドレスの、同一列アドレスの画素データが、メモリ制御回路27に供給されたときに不都合が生じる。
【0092】
具体的には、例えば、図4に示すように、既に、フレームバッファ28の行アドレスRow0の列アドレスCol0に画素データAが記憶され、その画素データAと同一の行アドレスRow0の、異なる列アドレスCol1に画素データBが記憶されている場合において、メモリ制御回路27に対して、最初に行アドレスRow0の列アドレスCol0の画素データaが供給され、続いて行アドレスRow0の列アドレスCol1の画素データbが供給され、さらにその後に、最初と同一の行アドレスRow0の列アドレスCol0の画素データcが供給されたとき、上述したメモリ制御回路27の処理によれば、演算処理回路274において、期待している演算結果を得ることができない。
【0093】
即ち、いま、演算処理回路274において、画像データXおよびYを用いての演算が行われることにより得られる演算結果(画像データ)を、XYと表すこととすると、上述の場合、画像データa,b,cが順次供給されることにより、演算処理回路274においては、画像データaA,bB,cAなる演算結果が順次得られる。
【0094】
しかしながら、画像データcについては、本来、画像データaおよびAを用いての演算結果aAとの演算が行われるべきであり、従って、画像データcについての演算結果は、caAにならなければならない。
【0095】
そこで、列アドレスバッファ272は、例えば、図5に示すように構成することができる。この実施例においては、列アドレスバッファ272は、FIFOメモリ2721(検出手段)、比較器2722(検出手段)、および論理和演算回路2723から構成されている。
【0096】
FIFOメモリ2721は、タイミング発生回路271から供給される列アドレスを一時記憶し、セレクト回路273に供給するようになされている。なお、FIFOメモリ2721は、FIFO方式のメモリで、この実施例では、4段に構成されている(但し、FIFOメモリ2721の段数は、4段に限定されるものではない)。従って、FIFOメモリ2721は、最大で4つの列アドレスを記憶することができるようになされている。また、FIFOメモリ2721は、記憶可能な4つの列アドレスを記憶したとき、自身の空き領域がなくなったことを検出し、論理和演算回路2723に、例えば、1(Hレベル)のFULL信号を出力するようにもなされている。なお、FIFOメモリ2721は、その他の場合は、例えば、0(Lレベル)のFULL信号を、論理和演算回路2723に出力するようになされている。
【0097】
比較器2722は、タイミング発生回路271からFIFOメモリ2721に供給されるものと同一の列アドレスを受信し、その列アドレスと、FIFOメモリ2721に、既に記憶されている列アドレスとを比較し、これにより、FIFOメモリ2721に記憶されている列アドレスと同一の列アドレスが、タイミング発生回路271において発生されたことを検出するようになされている。比較器2722は、FIFOメモリ2721に記憶されている列アドレスと同一の列アドレスが、タイミング発生回路271において発生されたこと検出したとき、通常は、例えば、0となっているDT信号を、例えば、1にして論理和演算回路2723に出力するようになされている。
【0098】
論理和演算回路2723は、FIFOメモリ2721からのFULL信号と、比較器2722からのDT信号との論理和を求め、その論理和を、EQ信号として、タイミング発生回路271に出力するようになされている。従って、タイミング発生回路271には、FIFOメモリ2721の空き領域がなくなったときと、FIFOメモリ2721に記憶されている列アドレスと同一の列アドレスが、タイミング発生回路271において発生されたときに、1のEQ信号が、それ以外のときは0のEQ信号が供給されるようになされている。
【0099】
以上のように構成される列アドレスバッファ272の下で、図4で説明したような画素データa乃至cが供給され、フレームバッファ28へのリードモディファライト動作が行われる場合においては、図6に示すように、まず、タイミング発生回路271は、クロックclk=「0」において、図3に示したクロックclk=「0」における場合と同様に、制御信号Racおよび行アドレスRow0を発生して、フレームバッファ28に供給する。これにより、フレームバッファ28では、アドレスRow0が行アドレスとしてラッチされ、その行アドレスRow0に対応する領域がを活性化される。
【0100】
次に、タイミング発生回路271は、クロックclk=「2」において、カラムリードアクセス動作を指示する信号Rdcを、コントロールバス106介してフレームバッファ28へ供給する。さらに、タイミング発生回路271は、その出力を選択するように、セレクト回路273を制御するとともに、リード方向にデータを転送するように、双方向バッファ276を制御する。そして、タイミング発生回路271は、画像データaの列アドレスCol0を発生し、セレクト回路273を介して、フレームバッファ28に供給する。なお、この列アドレスCol0は、列アドレスバッファ272にも供給され、そのFIFOメモリ2721において記憶される。
【0101】
フレームバッファ28は、タイミング発生回路271からのアドレスCol0を受信すると、それを列アドレスとしてラッチし、その列アドレスCol0と、先に供給された行アドレスRow0とで特定される領域に記憶されている画素データAを読み出し、双方向バッファ276を介して、演算処理回路274に供給する。
【0102】
次に、タイミング発生回路271は、クロックclk=「3」において、クロックclk=「2」における場合と同様にして、制御信号Rdcおよび画像データbの列アドレスCol1を発生する。これにより、上述した場合と同様にして、列アドレスCol1は、FIFOメモリ2721に記憶され、また、フレームバッファ28の行アドレスRow0および列アドレスCol1で特定される領域に記憶されている画素データBが読み出されて、演算処理回路274に供給される。
【0103】
ここで、タイミング発生回路271は、次に出力すべき列アドレスも発生するようになされており、この列アドレスを、先に、比較器2722に供給するようになされている。従って、いまの場合、クロックclk=「3」において、画像データcの列アドレスCol0が、比較器2722に供給される。このとき、FIFOメモリ2721には、画像データcの列アドレスCol0と一致する、画像データaの列アドレスCol0が記憶されているから、比較器2722は、論理和演算回路2723に、1のDT信号を出力する。これにより、論理和演算回路2723からは、1のEQ信号が出力され、このEQ信号は、コントロールバス110(図2)を介して、タイミング発生回路271に供給される。
【0104】
タイミング発生回路271は、1のEQ信号を受信すると、フレームバッファ28からのリード(読み出し)を中断し、いままでに得られた演算結果のライト(書き込み)を行うため、クロックclk=「4」乃至「7」の期間、待ち状態となる。
【0105】
一方、演算処理回路274では、クロックclk=「5」、「6」において、フレームバッファ28に書き込むべきデータを求める演算が開始される。即ち、演算処理回路274は、クロックclk=「5」において、画素データaとAとを用いた演算処理を、クロックclk=「6」において、画素データbとBとを用いた演算処理を、それぞれ開始する。そして、演算処理回路274は、各演算処理の結果得られる画素データaA,bBを、ライトデータバッファ275に順次供給して記憶させる。
【0106】
そして、タイミング発生回路271は、クロックclk=「8」において、カラムライトアクセス動作を指示する制御信号Wrcを、コントロールバス106介してフレームバッファ28へ供給する。さらに、タイミング発生回路271は、列アドレスバッファ272の出力を選択するように、セレクト回路273を制御するとともに、ライト方向にデータを転送するように、双方向バッファ276を制御する。
【0107】
これにより、列アドレスバッファ272からは、画素データaAに対応する列アドレスCol0が読み出され、アドレスバス107を介して、フレームバッファ28に供給される。また、ライトデータバッファ275からは、画素データaAが読み出され、双方向バッファ276およびデータバス108を介して、フレームバッファ28に供給される。その結果、フレームバッファ28の行アドレスRow0および列アドレスCol0で示される領域には、画素データaAが書き込まれる。
【0108】
クロックclk=「9」においても、同様の処理が行われ、これにより、画像データbBが、フレームバッファ28の行アドレスRow0および列アドレスCol1で示される領域に書き込まれる。
【0109】
以上のようにして、ライトデータバッファ275に記憶されていた画素データすべての、フレームバッファ28への書き込みが終了すると、タイミング発生回路271は、再び、フレームバッファ28からのリードを行うために、クロックclk=「10」において、制御信号Rdcおよび画素データcの列アドレスCol0を発生し、クロックclk=「2」における場合と同様にして、フレームバッファ28の行アドレスRow0および列アドレスCol0により特定される領域から、画素データaAを読み出す。この画素データaAは、双方向バッファ276を介して、演算処理回路274に供給される。
【0110】
演算処理回路274では、クロックclk=「13」において、画素データcおよびaAを用いた演算が開始され、その後、その演算結果としての画素データcaAが得られると、その画素データcaAは、ライトデータバッファ275に供給されて記憶される。
【0111】
そして、タイミング発生回路271は、クロックclk=「16」において、クロックclk=「8」における場合と同様にして、制御信号Wrcおよび画素データcaAの列アドレスCol0を、フレームメモリ28に供給することで、その行アドレスRow0および列アドレスCol0で特定される領域に、画素データcaAを書き込む。
【0112】
従って、この場合、フレームバッファ28には、画像データcについての演算結果として、本来得られるべきのcaAが書き込まれる。
【0113】
以上のように、列アドレスバッファ272に記憶されている列アドレスと同一の列アドレスが、タイミング発生回路271において発生された場合には、フレームメモリ28からの読み出しを中断し、それまでに得られた演算結果を、フレームメモリ28に書き込んでから、再び読み出しを開始するようにしたので、期待される演算結果を得ることができる。
【0114】
次に、列アドレスバッファ272が図5に示すように構成される場合において、FIFOメモリ2721の空き容量がなくなった場合には、FIFOメモリ2721から論理和演算回路2723に対して、1のFULL信号が出力され、これにより、論理和演算回路2723からタイミング発生回路271に対して、1のEQ信号が供給される。従って、この場合も、フレームメモリ28からの読み出しが中断され、それまでに得られた演算結果を、フレームメモリ28に書き込んでから、再び読み出しが開始されるので、FIFOメモリ2721がオーバーフローすることを防止することができる。
【0115】
【発明の効果】
以上のように、第1の本発明によれば、列アドレスがアドレス記憶手段に記憶されている列アドレスと一致しない入力データに対して、連続して入力される複数の入力データの行アドレスが同一である間、選択手段が、発生されたアドレスを選択してメモリに与えることにより、メモリから記憶データを読み出させて演算処理を行わせるとともに、アドレス記憶手段が、その発生されたアドレスを記憶し、異なる行アドレスの入力データが入力された場合、選択手段が、アドレス記憶手段の記憶値を選択してメモリに与えることにより、メモリに、記憶値に対応する演算結果を書き込ませるので、メモリアクセスの効率化を図ることができる。
【0116】
第2の本発明によれば、単位図形の頂点に関する頂点データが生成され、生成された頂点データに基づいて、単位図形の内部の画素についての画素データが生成され、行アドレスおよび列アドレスにより特定されるデータ記憶手段の領域に対して、データの読み出しおよび書き込みが行われる場合、データ記憶手段から、データ記憶手段に記憶されている記憶データを読み出し、記憶データと、入力された入力データとを用いての演算処理を行い、演算処理の演算結果をメモリに書き戻すリードモディファイライト動作において、列アドレスがアドレス記憶手段に記憶されている列アドレスと一致しない入力データに対して、連続して入力される複数の入力データの行アドレスが同一である間、選択手段が、発生されたアドレスを選択してデータ記憶手段に与えることにより、データ記憶手段から記憶データを読み出させて演算処理を行わせるとともに、アドレス記憶手段が、その発生されたアドレスを記憶し、異なる行アドレスの入力データが入力されたとき、選択手段が、アドレス記憶手段の記憶値を選択してデータ記憶手段に与えることにより、データ記憶手段に、記憶値に対応する演算結果を書き込ませるので、単位図形の組合せにより定義される3次元画像を生成する場合において、画像演算処理の効率化を図ることができる。
【図面の簡単な説明】
【図1】本発明を適用した3次元コンピュータグラフィックシステムの一実施例の構成を示すブロック図である。
【図2】図1のメモリ制御装置27の構成例を示すブロック図である。
【図3】図2のメモリ制御装置27の処理を説明するためのタイミングチャートである。
【図4】同一行アドレスの、同一列アドレスの画素データが、メモリ制御回路27に供給された場合に生じる不都合を説明するための図である。
【図5】図2の列アドレスバッファ272の構成例を示すブロック図である。
【図6】列アドレスバッファ272が図5に示すように構成される場合のメモリ制御装置27の処理を説明するためのタイミングチャートである。
【図7】従来の3次元画像作成装置の一例の構成を示すブロック図である。
【図8】図7のメモリ制御回路102の処理を説明するためのタイミングチャートである。
【符号の説明】
22 ジオメトリ演算回路(頂点データ生成手段), 23 パラメータ演算回路, 24 画素発生回路(画素データ生成手段), 25 マッピング回路, 26 テクスチャメモリ, 27 メモリ制御回路, 28 フレームバッファ(データ記憶手段), 29 ディスプレイ制御回路, 271 タイミング発生回路(発生手段)(指示手段), 272 列アドレスバッファ(列アドレス記憶手段), 273 セレクト回路(選択手段), 274 演算処理回路(演算手段), 275 ライトデータバッファ, 276 双方向バッファ, 2721 FIFOメモリ(検出手段), 2722 比較器(検出手段), 2723 論理和演算回路
Claims (7)
- メモリから、前記メモリに記憶されている記憶データを読み出し、前記記憶データと、入力された入力データとを用いての演算処理を行い、前記演算処理の演算結果を前記メモリに書き戻すリードモディファイライト動作を制御するメモリ制御装置であって、
前記入力データのアドレスに基づいて、前記記憶データの領域を特定するための行アドレスおよび列アドレスを発生して出力する発生手段と、
前記発生手段の出力を記憶するアドレス記憶手段と、
前記発生手段の出力、または前記アドレス記憶手段の記憶値のうちのいずれか一方を選択し、前記メモリに与える選択手段と
を備え、
列アドレスが前記アドレス記憶手段により記憶されている列アドレスと一致しない入力データに対して、
連続して入力される複数の入力データの行アドレスが同一である間、前記選択手段が、前記発生手段の出力を選択して前記メモリに与えることにより、前記メモリから記憶データを読み出させて前記演算処理を行わせるとともに、前記アドレス記憶手段が前記発生手段の出力を記憶し、
異なる行アドレスの入力データが入力された場合、前記選択手段が、前記アドレス記憶手段の記憶値を選択して前記メモリに与えることにより、前記メモリに、前記記憶値に対応する前記演算結果を書き込ませる
ことを特徴とするメモリ制御装置。 - 前記行アドレスおよび列アドレスにより特定される領域に対して、データの読み出しまたは書き込みのいずれを行うのかを、前記メモリに指示する指示手段と、
前記アドレス記憶手段の空き領域がなくなったことを検出する検出手段と
をさらに備え、
前記指示手段が、前記メモリに対して、前記記憶データの読み出しを指示している場合において、前記検出手段により前記アドレス記憶手段の空き領域がなくなったことが検出されたとき、
前記指示手段は、前記演算結果の書き込みを指示し、
前記選択手段は、前記アドレス記憶手段の記憶値を選択して前記メモリに与えることにより、前記メモリに、前記記憶値に対応する前記演算結果を書き込ませる
ことを特徴とする請求項1に記載のメモリ制御装置。 - 前記行アドレスおよび列アドレスにより特定される領域に対して、データの読み出しまたは書き込みのいずれを行うのかを、前記メモリに指示する指示手段と、
前記発生手段が、前記アドレス記憶手段に記憶されている前記列アドレスと同一のものを発生したことを検出する検出手段と
をさらに備え、
前記指示手段が、前記メモリに対して、前記記憶データの読み出しを指示している場合において、前記検出手段により、前記発生手段が前記アドレス記憶手段に記憶されている前記列アドレスと同一のものを発生したことが検出されたとき、
前記指示手段は、前記演算結果の書き込みを指示し、
前記選択手段は、前記アドレス記憶手段の記憶値を選択して前記メモリに与えることにより、前記メモリに、前記記憶値に対応する前記演算結果を書き込ませる
ことを特徴とする請求項1に記載のメモリ制御装置。 - メモリから、前記メモリに記憶されている記憶データを読み出し、前記記憶データと、入力された入力データとを用いての演算処理を行い、前記演算処理の演算結果を前記メモリに書き戻すリードモディファイライト動作を制御するメモリ制御装置のメモリ制御方法であって、
前記入力データのアドレスに基づいて、前記記憶データの領域を特定するための行アドレスおよび列アドレスを発生する発生ステップと、
前記発生ステップにおいて発生されたアドレスをアドレス記憶手段に記憶するアドレス記憶ステップと、
前記発生ステップにおいて発生されたアドレス、または前記アドレス記憶手段の記憶値のうちのいずれか一方を選択し、前記メモリに与える選択ステップと
を含み、
列アドレスが前記アドレス記憶手段に記憶されている列アドレスと一致しない入力データに対して、
連続して入力される複数の入力データの行アドレスが同一である間、前記選択ステップにおいて、前記発生ステップにおいて発生されたアドレスを選択して前記メモリに与えることにより、前記メモリから記憶データを読み出させて前記演算処理を行わせるとともに、前記アドレス記憶ステップにおいて、前記発生ステップにおいて発生されたアドレスを記憶し、
異なる行アドレスの入力データが入力された場合、前記選択ステップにおいて、前記アドレス記憶手段の記憶値を選択して前記メモリに与えることにより、前記メモリに、前記記憶値に対応する前記演算結果を書き込ませる
ことを特徴とするメモリ制御方法。 - 前記行アドレスおよび列アドレスにより特定される領域に対して、データの読み出しまたは書き込みのいずれを行うのかを、前記メモリに指示する指示ステップと、
前記アドレス記憶手段の空き領域がなくなったことを検出する検出ステップと
をさらに含み、
前記指示ステップの処理により、前記メモリに対して、前記記憶データの読み出しを指示している場合において、前記検出ステップにおいて前記アドレス記憶手段の空き領域がなくなったことが検出されたとき、
前記指示ステップにおいて、前記演算結果の書き込みを指示し、
前記選択ステップにおいて、前記アドレス記憶手段の記憶値を選択して前記メモリに与えることにより、前記メモリに、前記記憶値に対応する前記演算結果を書き込ませる
ことを特徴とする請求項4に記載のメモリ制御方法。 - 前記行アドレスおよび列アドレスにより特定される領域に対して、データの読み出しまたは書き込みのいずれを行うのかを、前記メモリに指示する指示ステップと、
前記発生ステップにおいて、前記アドレス記憶手段に記憶されている前記列アドレスと同一のものが発生されたことを検出する検出ステップと
をさらに含み、
前記指示ステップの処理により、前記メモリに対して、前記記憶データの読み出しを指示している場合において、前記検出ステップにより、前記発生ステップにおいて前記アドレス記憶手段に記憶されている前記第2のアドレスと同一のものが発生されたことが検出されたとき、
前記指示ステップにおいて、前記演算結果の書き込みを指示し、
前記選択ステップにおいて、前記アドレス記憶手段の記憶値を選択して前記メモリに与えることにより、前記メモリに、前記記憶値に対応する前記演算結果を書き込ませる
ことを特徴とする請求項4に記載のメモリ制御方法。 - 単位図形の組合せにより定義される3次元画像を生成する画像生成装置であって、
前記単位図形の頂点に関する頂点データを生成する頂点データ生成手段と、
前記頂点データに基づいて、前記単位図形の内部の画素についての画素データを生成する画素データ生成手段と、
行アドレスおよび列アドレスにより特定される領域に対して、データの読み出しおよび書き込みが行われるデータ記憶手段と、
前記画素データ生成手段により生成された画素データと、前記データ記憶手段に記憶されたデータとを用いて所定の演算を行う演算手段と、
前記行アドレスおよび列アドレスを発生する発生手段と、
前記発生手段の出力を記憶するアドレス記憶手段と、
前記発生手段の出力、または前記アドレス記憶手段の記憶値のうちのいずれか一方を選択し、前記データ記憶手段に与える選択手段と
を備え、
前記データ記憶手段から、前記データ記憶手段に記憶されている記憶データを読み出し、前記記憶データと、入力された入力データとを用いての演算処理を行い、前記演算処理の演算結果を前記メモリに書き戻すリードモディファイライト動作において、
列アドレスが前記アドレス記憶手段により記憶されている列アドレスと一致しない入力データに対して、
連続して入力される複数の入力データの行アドレスが同一である間、前記選択手段が、前記発生手段の出力を選択して前記データ記憶手段に与えることにより、前記データ記憶手段から記憶データを読み出させて前記演算処理を行わせるとともに、前記アドレス記憶手段が前記発生手段の出力を記憶し、
異なる行アドレスの入力データが入力された場合、前記選択手段が、前記アドレス記憶手段の記憶値を選択して前記データ記憶手段に与えることにより、前記データ記憶手段に、前記記憶値に対応する前記演算結果を書き込ませる
ことを特徴とする画像生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14905996A JP3797498B2 (ja) | 1996-06-11 | 1996-06-11 | メモリ制御装置およびメモリ制御方法、並びに画像生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14905996A JP3797498B2 (ja) | 1996-06-11 | 1996-06-11 | メモリ制御装置およびメモリ制御方法、並びに画像生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09330267A JPH09330267A (ja) | 1997-12-22 |
JP3797498B2 true JP3797498B2 (ja) | 2006-07-19 |
Family
ID=15466778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14905996A Expired - Fee Related JP3797498B2 (ja) | 1996-06-11 | 1996-06-11 | メモリ制御装置およびメモリ制御方法、並びに画像生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3797498B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FI109633B (fi) | 2001-01-24 | 2002-09-13 | Gamecluster Ltd Oy | Menetelmä videokuvan pakkauksen nopeuttamiseksi ja/tai sen laadun parantamiseksi |
JP4622165B2 (ja) * | 2001-06-15 | 2011-02-02 | ソニー株式会社 | 画像メモリ制御装置、グラフィック演算装置およびレンダリング処理方法 |
JP4987364B2 (ja) * | 2006-06-23 | 2012-07-25 | 株式会社東芝 | ラインメモリ実装装置とテレビジョン受信装置 |
CN113297098B (zh) * | 2021-05-24 | 2023-09-01 | 北京工业大学 | 一种面向高性能的适应预取的智能缓存替换策略 |
-
1996
- 1996-06-11 JP JP14905996A patent/JP3797498B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09330267A (ja) | 1997-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101349171B1 (ko) | 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법 | |
US4679041A (en) | High speed Z-buffer with dynamic random access memory | |
EP0548586A2 (en) | An extendable multiple image-buffer for graphics systems | |
EP0240246A2 (en) | Apparatus and method for filling complex polygons | |
CN103003838A (zh) | 在多处理单元中使用片上存储器的数据处理 | |
US5745739A (en) | Virtual coordinate to linear physical memory address converter for computer graphics system | |
JPS60239796A (ja) | デイスプレイメモリ中のデータを変更する回路と方法 | |
US6088046A (en) | Host DMA through subsystem XY processing | |
JP2659557B2 (ja) | 描画システム及び描画方法 | |
US6167498A (en) | Circuits systems and methods for managing data requests between memory subsystems operating in response to multiple address formats | |
JPH11327526A (ja) | 記憶装置と画像処理装置およびその方法とリフレッシュ動作制御装置およびその方法 | |
JP3797498B2 (ja) | メモリ制御装置およびメモリ制御方法、並びに画像生成装置 | |
JPH09212678A (ja) | 3次元画像生成装置 | |
US6003098A (en) | Graphic accelerator architecture using two graphics processing units for processing aspects of pre-rasterized graphics primitives and a control circuitry for relaying pass-through information | |
JP3683657B2 (ja) | グラフィックス表示装置およびグラフィックスプロセッサ | |
US5895502A (en) | Data writing and reading method for a frame memory having a plurality of memory portions each having a plurality of banks | |
JP4137903B2 (ja) | グラフィックス表示装置およびグラフィックスプロセッサ | |
JPH1091145A (ja) | メモリ制御装置およびメモリ制御方法、並びに画像生成装置 | |
JP2899838B2 (ja) | 記憶装置 | |
JP4482996B2 (ja) | データ記憶装置とその方法および画像処理装置 | |
JP3233566B2 (ja) | 図形描画プロセッサ及び図形処理システム | |
JPH1195975A (ja) | 表示装置 | |
JPH0336676A (ja) | ピクセル描画装置 | |
JPS62123571A (ja) | 画像信号処理装置 | |
JP2806376B2 (ja) | 画像処理装置および画像処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050822 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050907 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051101 |
|
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: 20060331 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060413 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090428 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100428 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110428 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120428 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130428 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |