JP4482996B2 - データ記憶装置とその方法および画像処理装置 - Google Patents
データ記憶装置とその方法および画像処理装置 Download PDFInfo
- Publication number
- JP4482996B2 JP4482996B2 JP2000021836A JP2000021836A JP4482996B2 JP 4482996 B2 JP4482996 B2 JP 4482996B2 JP 2000021836 A JP2000021836 A JP 2000021836A JP 2000021836 A JP2000021836 A JP 2000021836A JP 4482996 B2 JP4482996 B2 JP 4482996B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- address
- storage
- stored
- input
- 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)
- Controls And Circuits For Display Device (AREA)
Description
【発明の属する技術分野】
本発明は、複数系統のデータに対する先入れ先出し形式(以降、FIFO(First In First Out)形式と言う。)のデータ記憶装置とデータ記憶方法、および、そのデータ記憶装置を用いて表示用画像の生成を効率よく行うことのできる画像処理装置に関する。
【0002】
【従来の技術】
入力したデータを入力した順に読み出すいわゆるFIFOメモリは、種々の電子回路において広く使用されている。特に近年、あらゆる電子機器において処理速度の向上が図られているため、結果的に各処理部間でのデータの処理速度に差異が生じたり、適切に同期をとってデータを転送することが難しくなるなどの問題が生じており、これを解決するために、各処理部間に緩衝手段としてFIFOメモリを設けることが多くなっている。
たとえば、CAD装置やゲーム機器などに用いられる3次元画像を生成する画像処理装置などは、座標変換やテクスチャマッピング、各画素に対する特殊効果処理、生成した画像の高速表示など、多数の画素に対して高速に処理を行う各種の処理部が順次接続されて構成されている。そして、これらの各処理部の間におけるデータ転送を高速かつ適切に行うために、FIFOメモリが多数使用されている。
【0003】
【発明が解決しようとする課題】
ところで、たとえばそのような画像処理装置の各構成部間においては、複数種類のデータが必要に応じて転送される場合が多い。特に、画像データのみならず制御データまでをも含めると、特定の1種類のデータのみが転送されるということは稀と考えられる。そのような場合に、これまでは、たとえば図7に示すように、そのデータの種類(データの系統と言う場合もある。)に応じて複数系統のFIFOメモリが並列に設けられていた。
しかし、そのように複数のFIFOメモリを並列に設けると、各系統ごとにマージンを確保しなければならなかったり、共通的な信号処理が多いにも係わらず制御部を独立して設けることになるなど、回路を効率よく利用することができない、すなわち、必要以上に回路規模が大きくなるという問題がある。
特に、このような回路は、半導体集積回路として実現する場合が多いため、回路規模、換言すれば回路のゲート規模を少しでも小さくしたいという要望もある。
【0004】
したがって本発明の目的は、より小さい回路規模で複数系統のデータに対して適切にFIFO機能を提供できるデータ記憶装置とその方法を提供することにある。
また、本発明の他の目的は、より小さい回路規模で各処理手段でのデータの転送が適切に行え、これにより所望の画像処理を効率よく行えるような画像処理装置を提供することにある。
【0005】
前記課題を解決するために、本発明のデータ記憶装置は、入力される複数系統のデータを順に記憶するデータ記憶手段と、前記データ記憶手段に記憶されたデータの記憶順序を前記系統ごとに管理する記憶順序管理手段と、各系統ごとのデータの出力要求に応じて、前記記憶順序管理手段に管理されている前記系統ごとのデータの記憶順序に基づいて、当該要求された系統の前記記憶されているデータを前記入力された順に読み出し出力する出力手段とを有し、前記記憶順序管理手段は、前記データ記憶手段の未だ読み出されていないデータが記憶されている領域以外の空き領域の任意のアドレスを、入力されるデータを記憶する記憶アドレスとして生成する記憶アドレス生成手段と、前記各系統ごとに、最後に入力され記憶されたデータに対する前記記憶アドレスを記憶するアドレス記憶手段と、前記データ記憶手段のアドレス空間に対応したアドレス空間を有し、各アドレスのデータとして、前記データ記憶手段の対応するアドレスに記憶されているデータと同一の系統の前記入力されるデータで、当該アドレスのデータの次に入力され記憶されたデータが記憶されている前記データ記憶手段のアドレスを記憶するテーブルと、入力される任意の系統のデータが前記データ記憶手段の前記生成された記憶アドレスに記憶された際に、前記テーブルの前記アドレス記憶手段に記憶されているアドレスに、前記生成された記憶アドレスを記憶するテーブル更新手段と、を有し、前記記憶アドレス生成手段は、前記データ記憶手段の各アドレスごとの当該アドレスに未だ読み出されていないデータが記憶されているか否かを示すフラグを記憶するフラグ記憶手段と、前記記憶されているフラグに基づいて、前記データ記憶手段の前記空き領域を検出し、当該空き領域のいずれか1の領域のアドレスを前記記憶アドレスとして選択する記憶アドレス選択手段と、新たに入力されるデータの記憶および前記出力手段による記憶されたデータの読み出しに基づいて、前記フラグを更新するフラグ更新手段とを有し、前記データ記憶手段は、前記記憶アドレス生成手段により生成されたアドレスに、前記入力される任意の系統のデータを記憶する。
【0006】
第2の発明のデータ記憶方法は、データ記憶手段と、記憶順序管理手段と、出力手段とを有するデータ記憶装置のデータ記憶方法であって、入力される複数系統のデータをメモリに記憶する第1の工程と、前記記憶されたデータの記憶順序を前記系統ごとに管理する第2の工程と、各系統ごとのデータの出力要求に応じて、前記管理されている前記系統ごとのデータの記憶順序に基づいて、当該要求された系統の前記記憶されているデータを前記入力された順に読み出し出力する第3の工程と、を有し、前記第2の工程は、前記各系統ごとに、最後に入力され記憶されたデータに対する前記記憶アドレスを記憶しておく第4の工程と、任意の系統のデータが入力された場合に、前記メモリの未だ読み出されていないデータが記憶されている領域以外の空き領域の任意のアドレスを、入力されるデータを記憶する記憶アドレスとして生成する第5の工程と、前記データ記憶手段のアドレス空間に対応したアドレス空間を有し、各アドレスのデータとして、前記データ記憶手段の対応するアドレスに記憶されているデータと同一の系統の前記入力されるデータで、当該アドレスのデータの次に入力され記憶されたデータが記憶されている前記データ記憶手段のアドレスを記憶するテーブルの、前記記憶されている当該系統の最後に入力され記憶されたデータに対する記憶アドレスに、当該入力されるデータが前記メモリの前記生成された記憶アドレスに記憶された際に、当該生成された記憶アドレスを記憶する第6の工程と、を有し、前記第4の工程は、前記メモリの各アドレスに未だ読み出されていないデータが記憶されているか否かを示すフラグを設定しておく第7の工程と、前記記憶されているフラグに基づいて前記メモリの前記空き領域を検出する第8の工程と、当該空き領域のいずれか1の領域のアドレスを前記記憶アドレスとして選択する第9の工程と、を有する。
【0007】
第3の発明の画像処理装置は、任意の表示用画像データを生成する画像生成手段と、前記生成された表示用画像データを記憶する画像メモリと、前記記憶された表示用画像データより所望の領域のデータを読み出し表示用画面データとして出力する出力手段とを有し、前記画像メモリは、入力される複数系統のデータを順に記憶するデータ記憶手段と、前記データ記憶手段に記憶されたデータの記憶順序を前記系統ごとに管理する記憶順序管理手段と、各系統ごとのデータの出力要求に応じて、前記記憶順序管理手段に管理されている前記系統ごとのデータの記憶順序に基づいて、当該要求された系統の前記記憶されているデータを前記入力された順に読み出し出力する出力手段とを有し、前記記憶順序管理手段は、前記データ記憶手段の未だ読み出されていないデータが記憶されている領域以外の空き領域の任意のアドレスを、入力されるデータを記憶する記憶アドレスとして生成する記憶アドレス生成手段と、前記各系統ごとに、最後に入力され記憶されたデータに対する前記記憶アドレスを記憶するアドレス記憶手段と、前記データ記憶手段のアドレス空間に対応したアドレス空間を有し、各アドレスのデータとして、前記データ記憶手段の対応するアドレスに記憶されているデータと同一の系統の前記入力されるデータで、当該アドレスのデータの次に入力され記憶されたデータが記憶されている前記データ記憶手段のアドレスを記憶するテーブルと、入力される任意の系統のデータが前記データ記憶手段の前記生成された記憶アドレスに記憶された際に、前記テーブルの前記アドレス記憶手段に記憶されているアドレスに、前記生成された記憶アドレスを記憶するテーブル更新手段と、を有し、前記記憶アドレス生成手段は、前記データ記憶手段の各アドレスごとの当該アドレスに未だ読み出されていないデータが記憶されているか否かを示すフラグを記憶するフラグ記憶手段と、前記記憶されているフラグに基づいて、前記データ記憶手段の前記空き領域を検出し、当該空き領域のいずれか1の領域のアドレスを前記記憶アドレスとして選択する記憶アドレス選択手段と、新たに入力されるデータの記憶および前記出力手段による記憶されたデータの読み出しに基づいて、前記フラグを更新するフラグ更新手段とを有し、前記データ記憶手段は、前記記憶アドレス生成手段により生成されたアドレスに、前記入力される任意の系統のデータを記憶する。
【0013】
【発明の実施の形態】
本発明の一実施の形態について図1〜図6を参照して説明する。
本実施の形態においては、家庭用ゲーム機などに適用され、任意の3次元物体モデルの所望の3次元画像をディスプレイ上に高速に表示する3次元コンピュータグラフィックスシステムを例示して、本発明を説明する。
【0014】
まず、その3次元コンピュータグラフィックスシステムの全体の構成および動作について図1を参照して説明する。
この3次元コンピュータグラフィックスシステムは、立体モデルを単位図形である三角形(ポリゴン)の張り合わせとして表現しておき、このポリゴンを描画することで表示画面の各画素の色を決定しディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、3次元コンピュータグラフィックスシステム1においては、平面を表わす(x、y)座標のほかに、奥行きを表わすz座標を用いて3次元物体を表わし、またこのx、y、zの3つの座標で3次元空間内の任意の1点を特定する。
【0015】
図1は、その3次元コンピュータグラフィックスシステム1の構成を示すブロック図である。
3次元コンピュータグラフィックスシステム1は、入力部2、3次元画像生成装置3および表示装置4を有する。
また、3次元画像生成装置3は、ジオメトリ演算部32、パラメータ演算部33、画素発生部34、テクスチャマッピング部35、テクスチャメモリ36、メモリインターフェイス(I/F)37、画像メモリ38およびプログラマブル・ディスプレイ制御部39を有する。
【0016】
まず、各部の構成・機能について説明する。
入力部2は、3次元画像生成装置3に対して、表示対象の立体モデルのデータを入力する。本実施の形態においては、3次元コンピュータグラフィックスシステム1は家庭用ゲーム機に適用されているので、入力部2は、その家庭用ゲーム機のゲーム自体を制御する主制御装置などに接続される。その主制御装置においては、ゲームの進行状況などに基づいて表示する画面を決定し、その画面表示に必要な立体モデルを選択し、その表示方法の情報を生成する。したがって入力部2は、これらの情報を、家庭用ゲーム機の主制御装置より受け取り、3次元画像生成装置3へ入力するのに適した形態に変換するなどして3次元画像生成装置3に入力する。
具体的には、入力部2は、前述したような表示する立体モデルのポリゴンデータを3次元画像生成装置3のジオメトリ演算部32に入力する。また、その入力されるポリゴンのデータは、各頂点のx,y,z座標データおよびカラー、透明度、テクスチャなどの付随データである。
【0017】
ジオメトリ演算部32は、入力部2より入力されたポリゴンを、3次元空間中の所望の位置に配置させその位置におけるポリゴンデータを生成する。具体的には、ポリゴンの各頂点(x、y、z)ごとに、並進変換、平行変換および回転変換などの幾何学的変換処理(ジオメトリ変換処理という場合もある)を行う。ジオメトリ変換処理を行ったポリゴンデータは、パラメータ演算部33に出力される。
【0018】
パラメータ演算部33は、ジオメトリ演算部32から入力されたポリゴンのデータ、すなわち、ポリゴンの各頂点のデータに基づいて、画素発生部34においてポリゴン内部の画素データを発生するために必要なパラメータを求め、画素発生部34に出力する。具体的にはたとえば、カラー、奥行きおよびテクスチャの傾きの情報などを求める。
【0019】
画素発生部34は、ジオメトリ演算部32でジオメトリ変換処理が行われたポリゴンデータ、および、パラメータ演算部33で求められたパラメータに基づいて、ポリゴンの各頂点間を線型補間してポリゴン内部およびエッジ部分の画素データを発生する。また画素発生回路34は、画素データの表示に対応した所定の2次元平面上でのアドレスの生成を行う。生成された画素データおよびアドレスは順次テクスチャマッピング部35に出力される。
【0020】
テクスチャマッピング部35は、画素発生部34で生成された画素データに対して、テクスチャメモリ36に格納されているテクスチャデータを用いて、テクスチャマッピング処理を行う。テクスチャマッピング処理を行った画素データおよびアドレスは、メモリインターフェイス37に出力する。
【0021】
テクスチャメモリ36は、テクスチャマッピング部35でテクスチャマッピングする際に用いるテクスチャパタンを記憶しておくメモリである。
【0022】
メモリインターフェイス37は、テクスチャマッピング部35から入力される画素データおよびアドレス、および、既に画像メモリ38に記憶されている対応する画素データに基づいて、新たな画素データを生成し、画像メモリ38に記憶する。すなわち、メモリインターフェイス37は、テクスチャマッピング部35から入力されるアドレスに対応した画素データを画像メモリ38から読み出し、その画素データと、テクスチャマッピング部35から入力された画素データとを用いて、所望の画素演算処理を行い、得られた画素データを画像メモリ38へ書き込む。
またメモリインターフェイス37は、プログラマブル・ディスプレイ制御部39から表示領域が指定された場合には、その表示領域の画素データを、画像メモリ38から読み出し、プログラマブル・ディスプレイ制御部39に出力する。
【0023】
画像メモリ38は、表示用の画像データを記録するメモリであり、同時にアクセスすることができる2つのメモリバッファ、フレームバッファとZバッファを有する。フレームバッファには、各画素のカラー情報であるフレームデータが格納される。また、Zバッファには、各画素の奥行き情報(Z値)であるZデータが格納される。
画像メモリ38については、後に詳細に説明する。
【0024】
プログラマブル・ディスプレイ制御部39は、メモリインターフェイス37を介して画像メモリ38より読み出した表示領域の画素データを、表示装置4により表示可能なたとえば所定のアナログ信号に変換し、表示装置4に出力する。この時の出力信号の形式およびそれに基づく変換条件などは、接続される表示装置4の信号特性などに基づいて、プログラムすることにより任意に設定可能である。
なお、プログラマブル・ディスプレイ制御部39は、メモリインターフェイス37に対して表示すべき表示領域の画素データの要求を行い、これにより画像メモリ38より所望の表示領域の画素データを読み出す。
【0025】
表示装置4は、本実施の形態においては、通常家庭などで用いられているビデオ入力端子などを有するテレビジョン受信機である。3次元画像生成装置3のプログラマブル・ディスプレイ制御部39からは、ビデオ信号入力端子を介してアナログビデオ信号が入力され、その信号に基づいて3次元映像を画面上に表示する。
【0026】
次に、この3次元コンピュータグラフィックスシステム1の動作について説明する。
まず、家庭用ゲーム機のゲーム自体を制御する主制御装置などにおいて、表示する3次元画像が決定されると、その画面表示に必要な立体モデルの情報が入力部2に入力される。入力部2はこの情報に基づいて、その画像を表示するための立体モデルのポリゴンデータを3次元画像生成装置3に入力する。
3次元画像生成装置3に入力された各ポリゴンデータは、まず、ジオメトリ演算部32において、画面表示のために3次元空間中の所望の位置に配置されるように、並進変換、平行変換および回転変換などのジオメトリ変換処理が行われる。
【0027】
次に、座標変換の行われたポリゴンデータに対して、パラメータ演算部33においてポリゴン内部の画素データを発生するために必要なパラメータが求められ、画素発生部34において、実際にポリゴンの各頂点間を線型補間してポリゴン内部およびエッジ部分の画素データが発生される。
発生された画素データは順次テクスチャマッピング部35に入力され、テクスチャマッピング部35において、テクスチャメモリ36に記録されているテクスチャパタンデータを参照して、テクスチャマッピング処理が行われ、生成された画素データがメモリインターフェイス37を介して画像メモリ38に記憶される。
【0028】
画像メモリ38に記憶された画素データは、同様の経路により入力される他の画素データや任意の制御データに基づいて適宜所望の処理が行われる。
これにより画像メモリ38には常に最新の画像データが格納され、画面表示に供される。すなわち、表示装置4に表示するための所定の領域のデータの出力の要求がプログラマブル・ディスプレイ制御部39からメモリインターフェイス37に対して行われ、その領域の画素データが適宜画像メモリ38から読み出され、プログラマブル・ディスプレイ制御部39において画面表示用の所定の信号に変換され、表示装置4に出力される。
これにより、表示装置4には、所望の画像が画面に表示される。
【0029】
次に、このような3次元コンピュータグラフィックスシステム1の、本発明に係わる画像メモリ38の周辺回路について詳細に説明する。
3次元コンピュータグラフィックスシステム1においては、テクスチャマッピング部35、メモリインターフェイス37およびプログラマブル・ディスプレイ制御部39が、実質的に画像メモリ38に対してアクセスを行なう構成部である。以下の説明においては、本発明の係わる特徴が明らかになるように、これらの処理部を画像メモリ38に対する1つの信号処理部とみなして説明を行なう。
なお、実際の回路は、図1に示したように各構成部が独立した構成でもよいし、後述するように、たとえば汎用のシグナルプロセッサなどを用いて一体的に構成したものであってもよい。
【0030】
図2は、その画像メモリ38の周辺回路(以後、これをメモリ装置50として示す)を論理的に示す図であり、図1に示したテクスチャマッピング部35〜プログラマブル・ディスプレイ制御部39の構成を、別の観点から示した図である。
なお、このメモリ装置50は、前述したように、たとえば各画素のカラー情報であるフレームデータと、各画素の奥行き情報(Z値)であるZデータの2系統のデータを順次バッファリングする機能を有するものとする。
【0031】
MTXPC51は、3次元コンピュータグラフィックスシステム1におけるメモリインターフェイス(Memory interface)37、マッピング(TeXture Mapping)部35およびプログラマブル・ディスプレイ制御部(Programmable Crt controller)39が一体化された信号処理部である。MTXPC51で生成された画像データは、FIFOメモリ100に入力される。
FIFOメモリ100は、MTXPC51より入力された画像データを、その系統(種類)は問わずに順次記憶し、バッファリングして信号処理部53に出力する。
【0032】
信号処理部53は、FIFOメモリ100より読み出した画像データに任意の処理を施し、再び画像メモリ38に記憶する。前述したように、信号処理部53では、たとえば、既に画像メモリ38に記憶されている対応する画素データと、テクスチャマッピングされた画素データとを用いて所望の画素演算処理を行う。そして、得られた画素データは再び画像メモリ38へ書き込まれる。
第1のRAM54および第2のRAM55は、各々特定の系統のデータを記憶する2バンクのFIFOメモリであり、信号処理部53より入力されるデータを各々順次記憶する。また、図示しないが、たとえばMTXPC51からの読み出し要求に応じて、記憶したデータを記憶した順に出力する。
なお、第1のRAM54(バンクA)および第2のRAM55(バンクB)は、各々275ビット幅で、合わせて16ワードの記憶容量を有する。
【0033】
メモリ装置50(画像メモリ38の周辺回路)は、論理的にはこのようにその構成を示すことができるが、以下、本発明に係わるFIFOメモリ100について、図3〜図6を参照して説明する。
前述したように、このFIFOメモリ100は、図1における画像メモリ38として描画データをバッファリングするメモリであり、275ビット×16ワードの容量を有する。また、共有データバッファにより2系統のデータに対応し、書き込みから読み出しまでのレイタンシー3、読み出しレイタンシー2のFIFOメモリである。
【0034】
まず、そのFIFOメモリ100の構成の概略について、図3を参照して、データの流れを中心にして説明する。
図3は、FIFOメモリ100におけるデータの流れを示すのに好適な、FIFOメモリ100の主要な構成を模式的に示すブロック図である。
図3に示すように、FIFOメモリ100は、デュアルポートRAM(DportRAM)120、出力レジスタ(REG)140、ライトポインタ部(Wpointer)160、リードポインタ部(Rpointer)180、フル信号生成部(FullGen)200およびエンプティ信号生成部(EMPTY
Gen)220を有する。
【0035】
デュアルポートRAM120は、275ビット×16ワード構成の同時に書き込みおよび読み出しが可能なメモリである。
デュアルポートRAM120は、データ入力端子に入力データDATAinが印加されており、ライトポインタ部160からのライト制御信号に基づいてこれを順に記憶する。また、デュアルポートRAM120に記憶されたデータは、リードポインタ部180からのリード制御信号に基づいて記憶された順番に読み出され、出力レジスタ140に出力される。
【0036】
出力レジスタ140は、リードポインタ部180より出力されるリード制御信号に基づいてデュアルポートRAM120より読み出されたデータRAMoutを記憶し、FIFOメモリ100より出力する。
【0037】
ライトポインタ部160は、FIFOメモリ100に入力されるバンクA、バンクBのそれぞれのライトイネーブル信号WE_A,WE_Bに基づいて、デュアルポートRAM120に対する記憶制御信号を生成しデュアルポートRAM120に印加することにより、デュアルポートRAM120へのデータの記憶を制御する。
【0038】
リードポインタ部180は、FIFOメモリ100に入力されるバンクA、バンクBのそれぞれのリードイネーブル信号RE_A,RE_Bに基づいて、デュアルポートRAM120に対するリード制御信号を生成しデュアルポートRAM120に印加することにより、デュアルポートRAM120からのデータの読み出しを制御する。
【0039】
フル信号生成部200は、図示せぬFIFOメモリ100内の種々の制御信号および状態信号に基づいて、デュアルポートRAM120へ格納されたデータの合計がそれぞれ16、15、14以上であることを示すフル信号FULL、プレ・フル信号PFULL、および、プレ・プレ・フル信号PPFULL、換言すれば、デュアルポートRAM120の記憶領域が満杯の状態を示すプレ信号FULL、あと1ワードで満杯となる状態を示すプレ・フル信号PFULL、および、あと1ワードでプレ・フルとなる状態を示すプレ・プレ・フル信号PPFULLを生成し、3次元コンピュータグラフィックスシステム1のメモリインターフェイス37に相当する図示せぬ制御部に出力する。
【0040】
エンプティ信号生成部220は、図示せぬFIFOメモリ100内の種々の制御信号および状態信号に基づいて、デュアルポートRAM120へ格納されたデータが無い状態、すなわちエンプティな状態を示す信号EMPTYを生成し、3次元コンピュータグラフィックスシステム1のメモリインターフェイス37に相当する図示せぬ制御部に出力する。
図示せぬ制御部は、これら信号FULL,PFULL,PPFULLおよびEMPTYに基づいて、画像メモリ38(FIFOメモリ100)へのデータの書き込みおよび読み出しを制御する。
【0041】
次に、FIFOメモリ100のより詳細な構成について、図4および図5を参照して説明する。
図4は、FIFOメモリ100の詳細の構成を示す回路図である。
FIFOメモリ100は、デュアルポートRAM120、出力レジスタ140および制御部150を有する。
また、制御部150は、ライトイネーブルデコーダ151、リードイネーブルデコーダ152、セレクタ153、レジスタ154、フル信号生成部200、エンプティ信号生成部220およびアドレス制御部240を有する。
【0042】
デュアルポートRAM120は、前述したように275ビット×16ワード構成の同時に書き込みおよび読み出しが可能なメモリである。デュアルポートRAM120は、制御部150のアドレス制御部240より入力される書き込みアドレスwp_mおよびライトイネーブルデコーダ151より入力されるライトイネーブル信号ram_weに基づいて、印加されるデータinを記憶する。また、制御部150のセレクタ153より入力される読み出しアドレスrp_mおよびリードイネーブルデコーダ152より入力されるリードイネーブル信号ram_reに基づいて、データを読み出し出力レジスタ140に出力する。
【0043】
出力レジスタ140は、制御部150のレジスタ154より入力されるイネーブル信号oreg_enに基づいて、デュアルポートRAM120より読み出されたデータを一旦記憶し、出力信号outとしてFIFOメモリ100より出力する。
【0044】
制御部150のライトイネーブルデコーダ151は、外部よりFIFOメモリ100に入力される2つのバンクA,B各々に対するライトイネーブル信号we_a,we_bおよびアドレス制御部240より入力されるデュアルポートRAM120がフルであることを示す信号ram_fullに基づいて、デュアルポートRAM120に対するライトイネーブル信号ram_we、および、各バンクのデータの書き込みを示す信号ram_we_a,ram_we_bを生成し、各々、デュアルポートRAM120おいアドレス制御部240に出力する。
【0045】
具体的には、ライトイネーブルデコーダ151は、デュアルポートRAM120がフルでない場合には、ライトイネーブル信号we_a,we_bのいずれかが入力された場合に、デュアルポートRAM120に対するライトイネーブル信号ram_weをアクティブにする。また、ライトイネーブル信号we_a,we_bに応じて、データの書き込みを示す信号ram_we_a,ram_we_bのいずれかをアクティブにする。デュアルポートRAM120がフルであることを示す信号ram_fullがアクティブの時には、ライトイネーブルデコーダ151はいずれの信号もアクティブにしない。
【0046】
リードイネーブルデコーダ152は、外部よりFIFOメモリ100に入力される2つのバンクA,B各々に対するリード信号re_a,re_bおよびアドレス制御部240より入力される各バンクの記憶データがエンプティであることを示す信号ram_empty_a,ram_empty_bに基づいて、デュアルポートRAM120に対するリードイネーブル信号ram_re、および、各バンクのデータの読み出しを示す信号ram_re_a,ram_re_bを生成し、各々、デュアルポートRAM120おいアドレス制御部240に出力する。
【0047】
具体的には、リードイネーブルデコーダ152は、バンクAまたはバンクBのいずれかに対するリード信号re_a,re_bのいずれかが入力された場合であって、そのバンクがエンプティでない場合には、デュアルポートRAM120に対するリードイネーブル信号ram_reをアクティブにし、そのバンクのデータの読み出しを示す信号ram_re_a,ram_re_bをアクティブにする。そのバンクがエンプティであることを示す信号ram_empty_aまたはram_empty_bがアクティブの時には、リードイネーブルデコーダ151はいずれの信号もアクティブにしない。
【0048】
セレクタ153は、アドレス制御部240より入力される、デュアルポートRAM120に記憶されている各バンクの先頭データのアドレスrp_a,rp_bのいずれかを、選択し、デュアルポートRAM120に印加する。本実施の形態においては、FIFOメモリ100に入力されるバンクBのリード信号re_bがアクテオィブの時にバンクBの記憶データの先頭アドレスrp_bを選択し、そうでない時にバンクAの記憶データの先頭アドレスrp_aを選択する。
【0049】
レジスタ154は、リードイネーブルデコーダ152よりデュアルポートRAM120に出力されるリードイネーブル信号ram_reを1クロックラッチし、デュアルポートRAM120より出力されるデータを出力レジスタ140が記憶するためのイネーブル信号oreg_enとして、出力レジスタ140に出力する。
【0050】
フル信号生成部200は、後述するアドレス制御部240において生成されるフル信号fullに基づいて、さらに、あと1ワードでフルとなる状態を示す信号PFULL、および、あと1ワードでPFULLとなる状態を示す信号PPFULLを各々生成し出力する。
【0051】
エンプティ信号生成部220は、後述するアドレス制御部240において生成される各バンクのデータがエンプティであることを示す信号empty_a,empty_bに基づいて、デュアルポートRAM120へ格納されたデータが無い状態、すなわちエンプティな状態を示す信号EMPTYを生成し出力する。
【0052】
アドレス制御部240は、前述したようなデュアルポートRAM120および外部に対する種々の制御信号を生成するとともに、デュアルポートRAM120に記憶したデータの順序などを管理する。
アドレス制御部240の構成について、図5を参照して詳細に説明する。
図5は、アドレス制御部240の構成を示す回路図である。
アドレス制御部240は、RAM使用領域フラグ241、フラグ更新部242、書き込みアドレスデコーダ243、バンクA書き込みアドレス記憶部244、バンクB書き込みアドレス記憶部245、セレクタ246、ネクストポインタ247、バンクAリードアドレス選択部248、バンクAリードアドレスレジスタ249、バンクBリードアドレス選択部250、バンクBリードアドレスレジスファ251、バンクAエンプティ検出カウンタ252およびバンクBエンプティ検出カウンタ253を有する。
【0053】
RAM使用領域フラグ241は、デュアルポートRAM120の各アドレスに未だ読み出されていないデータが記憶せているか否を示すフラグを記憶し、デュアルポートRAM120の使用状態を管理するための、デュアルポートRAM120の各アドレスに1ビットが対応した16ビットのレジスタである。
RAM使用領域フラグ241は、ライトイネーブルデコーダ151よりいずれかのバンクの書き込みを示す信号ram_we_a(アドレス制御部240内部ではwe_a。以下同じ),ram_we_b(we_b)が入力された場合、または、リードイネーブルデコーダ152よりいずれかのバンクの読み出しを示す信号ram_re_a(re_a),ram_re_b(re_b)が入力された場合に、フラグ更新部242から印加される新たなフラグデータにより更新される。
【0054】
フラグ更新部242は、デュアルポートRAM120に対してデータの書き込みおよび読み出しが行なわれた場合、すなわち、いずれかのバンクの書き込みを示す信号ram_we_a(we_a),ram_we_b(we_b)およびいずれかのバンクの読み出しを示す信号ram_re_a(re_a),ram_re_b(re_b)のいずれかが入力された場合に、RAM使用領域フラグ241の更新データを生成し、RAM使用領域フラグ241に印加する。
【0055】
書き込みアドレスデコーダ243は、RAM使用領域フラグ241に記憶されているデュアルポートRAM120の記憶領域の使用フラグに基づいて、次にデータを記憶するアドレスを生成し、バンクA書き込みアドレス記憶部244、バンクB書き込みアドレス記憶部245およびネクストポインタ247に出力するとともに、アドレス制御部240より出力してデュアルポートRAM120に印加する。
なお、バンクAまたはバンクBがエンプティの状態でデュアルポートRAM120にデータを記憶した場合には、このアドレスwpは、ネクストポインタ247は介さずに直接バンクAリードアドレス選択部248またはバンクBリードアドレス選択部250に入力され、データの読み出しに用いられる。
【0056】
なお、書き込みアドレスデコーダ243は、この時、デュアルポートRAM120の空き領域のうち、アドレスの大きい方から順に記憶領域を選択し、そのアドレスを出力する。
また、書き込みアドレスデコーダ243は、RAM使用領域フラグ241に記憶されているデュアルポートRAM120の使用フラグに基づいて、デュアルポートRAM120の全ての記憶領域に未だ読み出されていないデータが記憶されているか否か、すなわち、デュアルポートRAM120がフルであるか否かを検出し、フルである場合にはフル信号fullを出力する。
【0057】
バンクA書き込みアドレス記憶部244は、バンクAの最後にデータを書き込んだデュアルポートRAM120のアドレスを記憶するレジスタである。バンクA書き込みアドレス記憶部244には、バンクAへの書き込みを示す信号ram_we_a(we_a)がアクティブになった時の、書き込みアドレスデコーダ243の出力アドレスが記憶される。
【0058】
バンクB書き込みアドレス記憶部245は、バンクBの最後にデータを書き込んだデュアルポートRAM120のアドレスを記憶するレジスタである。バンクB書き込みアドレス記憶部245には、バンクBへの書き込みを示す信号ram_we_b(we_b)がアクティブになった時の、書き込みアドレスデコーダ243の出力アドレスが記憶される。
【0059】
セレクタ246は、データが書き込まれるバンクに応じて、バンクA書き込みアドレス記憶部244またはバンクB書き込みアドレス記憶部245に記憶されているアドレスを選択し、ネクストポインタ247に印加する。
【0060】
ネクストポインタ247は、各バンクごとのデータの順序を記憶するレジスタである。ネクストポインタ247は、デュアルポートRAM120と同じ16ワードのアドレス空間を有し、各ワード4ビットのレジスタファイルである。
そして、ネクストポインタ247は、新たなデータがデュアルポートRAM120に書き込まれるごとに、セレクタ246により選択され印加されるアドレスに、書き込みアドレスデコーダ243より出力されるアドレスを記憶する。
これにより、新たなデータがデュアルポートRAM120に書き込まれるごとに、ネクストポインタ247の、そのデータと同じバンクに対して書き込まれたそのデータの前のデータが記憶されているアドレスに、そのデータが記憶されたアドレスを記憶することになる。換言すれば、ネクストポインタ247の各アドレスには、そのアドレスに記憶されているデータと同じバンクのデータで、そのデータに続く次のデータが記憶されているアドレスが記憶されることになる。
【0061】
バンクAリードアドレス選択部248は、ネクストポインタ247の16ワードのデータよりバンクAのデータを順に選択し、バンクAリードアドレスレジスタ249に出力する。バンクAリードアドレス選択部248は、バンクAのデータが読み出されるごとに、自らが選択したアドレスのデータであり、後段のバンクAリードアドレスレジスタ249に記憶されているアドレスのネクストポインタ247のデータを順に選択する。
【0062】
バンクAリードアドレスレジスタ249は、バンクAリードアドレス選択部248により選択されたネクストポインタ247のデータ、すなわち、バンクAのデータとして記憶された次に読み出すデータのアドレスram_re_a(re_a)を記憶するレジスタであり、記憶したアドレスはアドレス制御部240よりリードイネーブルデコーダ152に出力される。
【0063】
バンクBリードアドレス選択部250は、ネクストポインタ247の16ワードのデータよりバンクBのデータを順に選択し、バンクBリードアドレスレジスタ251に出力する。バンクBリードアドレス選択部250は、バンクBのデータが読み出されるごとに、自らが選択したアドレスのデータであり、後段のバンクBリードアドレスレジスタ251に記憶されているアドレスのネクストポインタ247のデータを順に選択する。
【0064】
バンクBリードアドレスレジスタ251は、バンクBリードアドレス選択部250により選択されたネクストポインタ247のデータ、すなわち、バンクBのデータとして記憶された次に読み出すデータのアドレスram_re_b(re_b)を記憶するレジスタであり、記憶したアドレスはアドレス制御部240よりリードイネーブルデコーダ152に出力される。
【0065】
バンクAエンプティ検出カウンタ252は、バンクAの有効データ数をカウントするカウンタであり、バンクAへの書き込みを示す信号ram_we_a(we_a)が入力されるごとにインクリメントされ、バンクAからの読み出しを示す信号ram_re_a(re_a)が入力されるごとにデクリメントされる。そして、このカウンタ値が0の時、バンクAにはデータが記憶されていないものとして、エンプティ信号ram_empty_a(empty_a)がアクティブにされる。
【0066】
バンクBエンプティ検出カウンタ253は、バンクBの有効データ数をカウントするカウンタであり、バンクBへの書き込みを示す信号ram_we_b(we_b)が入力されるごとにインクリメントされ、バンクBからの読み出しを示す信号ram_re_b(re_b)が入力されるごとにデクリメントされる。そして、このカウンタ値が0の時、バンクBにはデータが記憶されていないものとして、エンプティ信号ram_empty_b(empty_b)がアクティブにされる。
【0067】
次に、このような構成のFIFOメモリ100の動作について、図3〜図6を参照して説明する。
まず、図4および図5を参照して、FIFOメモリ100におけるアドレスの制御方法を中心として、その動作を詳細に説明する。
【0068】
まず、たとえばバンクA(第1の系統)のデータが記憶される時には、デュアルポートRAM120に対して入力データDATAinが印加され、バンクAのライトイネーブル信号we_aがアクティブにされる。
FIFOメモリ100の制御部150のライトイネーブルデコーダ151がこのライトイネーブル信号we_aを検出し、デュアルポートRAM120に対するライトイネーブル信号ram_weをアクティブにするとともに、アドレス制御部240に対してバンクAにデータを書き込む旨の信号ram_we_a(we_a)を入力する。
アドレス制御部240からは、既に書き込みアドレスデコーダ243において空き領域のアドレスが検出され、デュアルポートRAM120に印加されているので、デュアルポートRAM120においては、このライトイネーブルデコーダ151からのライトイネーブル信号ram_weにより、書き込みアドレスデコーダ243が指示するアドレスwpにデータが記録される。
【0069】
そして、アドレス制御部240においては、ライトイネーブルデコーダ151より入力されるバンクAにデータを書き込む旨の信号ram_we_a(we_a)に基づいて、書き込みアドレスwpがバンクA書き込みアドレス記憶部244に記憶される。
また、フラグ更新部242により、RAM使用領域フラグ241に記憶されているフラグに対して、アドレスwpのフラグが使用されている状態とされた新たなフラグデータが生成され、これによりRAM使用領域フラグ241の内容が更新される。
そしてまた、バンクAリードアドレス選択部248ではこのアドレスwpが選択されて、バンクAリードアドレスレジスタ249にバンクAの先頭データのアドレスとしてセットされる。
さらに、更新されたRAM使用領域フラグ241のフラグデータに基づいて、書き込みアドレスデコーダ243が、次にデータの書き込みを行なうアドレスを生成し、新たなアドレスwpとして出力する。
【0070】
次に、たとえばバンクB(第2の系統)のデータが記憶されるとすると、デュアルポートRAM120に対して入力データDATAinが印加され、バンクBのライトイネーブル信号we_bがアクティブにされる。このライトイネーブル信号we_bを、制御部150のライトイネーブルデコーダ151が検出し、デュアルポートRAM120に対するライトイネーブル信号ram_weをアクティブにする。これにより、既にアドレス制御部240より出力されデュアルポートRAM120に印加されているアドレスram_wp(wp)に、入力されたデータが書き込まれる。
【0071】
また、ライトイネーブルデコーダ151からアドレス制御部240に対してバンクBにデータを書き込む旨の信号ram_we_b(we_b)が入力され、これにより、書き込みアドレスwpがバンクB書き込みアドレス記憶部245に記憶される。
また、フラグ更新部242により、RAM使用領域フラグ241に記憶されているフラグに対して、アドレスwpのフラグが使用されている状態とされた新たなフラグデータが生成され、これによりRAM使用領域フラグ241の内容が更新される。
そしてまた、バンクBリードアドレス選択部250ではこのアドレスwpが選択されて、バンクBリードアドレスレジスタ251にバンクBの先頭データのアドレスとしてセットされる。
さらに、更新されたRAM使用領域フラグ241のフラグデータに基づいて、書き込みアドレスデコーダ243が、次にデータの書き込みを行なうアドレスを生成し、新たなアドレスwpとして出力する。
【0072】
次に、再びバンクAのデータが記憶されるとすると、デュアルポートRAM120に対して入力データDATAinが印加され、バンクAのライトイネーブル信号we_aがアクティブにされる。このライトイネーブル信号we_aをライトイネーブルデコーダ151が検出し、デュアルポートRAM120に対するライトイネーブル信号ram_weをアクティブにすることにより、アドレス制御部240よりデュアルポートRAM120に印加されているアドレスram_wp(wp)に、入力されたデータが書き込まれる。
【0073】
そしてこの時、アドレス制御部240においては、入力されるバンクAにデータを書き込む旨の信号ram_we_a(we_a)に基づいて、セレクタ246において、バンクA書き込みアドレス記憶部244の出力である1回目にバンクAのデータを記録したアドレスが選択され、これがネクストポインタ247に印加され、今回のデータ記録アドレス、すなわち、2回目のバンクAのデータを記録したアドレスが、この1回目のデータ記録アドレスに記憶される。
その後、1回目の時あるいはバンクBに対する書き込みの時と同様に、この記録アドレスがバンクA書き込みアドレス記憶部244に記録され、フラグ更新部242ではRAM使用領域フラグ241に記憶されているフラグの内容が更新され、また、書き込みアドレスデコーダ243では更新されたRAM使用領域フラグ241のフラグデータに基づいて新たな書き込みアドレスが生成される。
なお、既にデータが蓄積されている状態からの追加のデータの記憶の際には、バンクAリードアドレスレジスタ249への書き込みアドレスデコーダ243からのアドレスの書き込みは行なわれない。
【0074】
さて、このようにデータを書き込んだ状態で、バンクAのデータの読み出しが要求された場合には、バンクAのリードイネーブル信号re_aがアクティブにされる。
FIFOメモリ100の制御部150のリードイネーブルデコーダ152がこのリードイネーブル信号we_aを検出し、デュアルポートRAM120に対するリードイネーブル信号ram_reをアクティブにするとともに、アドレス制御部240に対してバンクAのデータを読み出す旨の信号ram_re_a(re_a)を入力する。
【0075】
アドレス制御部240からは、既にバンクAリードアドレスレジスタ249およびバンクBリードアドレスレジスタ251を介して、各バンクの記憶データ先頭アドレスがセレクタ153に出力されている。
そして、セレクタ153においては、バンクBのリードイネーブル信号re_bがネガティブであることから、バンクAリードアドレスレジスタ249の出力であるバンクAの先頭アドレスが選択されて、デュアルポートRAM120に印加される。
その結果、デュアルポートRAM120からは先に記憶したバンクAの先頭データが読み出され、出力レジスタ140を介してFIFOメモリ100より出力される。
【0076】
また、アドレス制御部240においては、リードイネーブルデコーダ152より入力されるバンクAのデータを読み出す旨の信号ram_re_a(re_a)に基づいて、バンクAリードアドレス選択部248が、ネクストポインタ247より、バンクAリードアドレスレジスタ249に記憶されていた今回データを読み出したアドレスのデータを選択し、バンクAの次のデータのアドレスとしてバンクAリードアドレスレジスタ249にセットする。その結果、アドレス制御部240からは、新たなバンクAの記憶データ先頭アドレスがセレクタ153に出力される。
さらに、アドレス制御部240においては、フラグ更新部242により、RAM使用領域フラグ241に記憶されているフラグに対して、アドレスwpのフラグが未使用の状態とされた新たなフラグデータが生成され、これによりRAM使用領域フラグ241の内容が更新される。
【0077】
このようにして、以下順次各バンクのデータの読み出しおよび書き込みが行なわれる。
【0078】
最後に、FIFOメモリ100の全体の動作について図3および図6を参照して説明する。
図6は、FIFOメモリ100の全体の動作を示すタイムチャートであり、(A)FIFOメモリ100の動作クロックCLKを示す図、(B)はFIFOメモリ100への入力データDATAinを示す図、(C)はデュアルポートRAM120に印加されているデータFIFOinを示す図、(D)はバンクAに対するライトイネーブル信号WE_A、(E)はバンクBに対するライトイネーブル信号WE_B、(F)は全体のエンプティ信号EMPTY、(G)はフル信号FULL、(H)はプレ・フル信号PFULL、(I)はプレ・プレ・フル信号PPFULL、(J)はバンクBに対するリードイネーブル信号、(K)はデュアルポートRAM120からの出力データFIFOoutである。
【0079】
まず、図6(B)に示すようにデータを順次FIFOメモリ100に入力し、データD0〜D3はバンクAに記憶し、データD4〜D7はバンクBに記憶するようにしたい場合、図6(D)および図6(E)に示すようにバンクAおよびバンクBに対する各ライトイネーブル信号をアクティブにすれば、前述したようにFIFOメモリ100内で信号処理が行なわれ、所望の形態でデータが記憶される。
そして、図6(F)に示すようにデータD0を記憶した段階でエンプティ信号はネガティブになり、図6(I)に示すようにデータD5までの6個のデータを記憶した段階でプレ・プレ・フル信号PPFULLがアクティブになり、図6(H)に示すようにデータD6までの7個のデータを記憶した段階でプレ・フル信号PFULLがアクティブになり、さらに、図6(G)に示すようにデータD7までの8個のデータを記憶した段階でフル信号FULLがアクティブになる。
【0080】
そして、このような状態で、図6(J)に示すように、バンクBのリードイネーブル信号をアクティブにすることにより、図6(K)に示すように、データD4以下のバンクBのデータが順次読み出される。 F
そして、データの読み出しとともに、図6(G)に示すフル信号FULL、図6(H)に示すプレ・フル信号PFULLおよび図6(I)に示すプレ・プレ・フル信号PPFULLが各々ネガティブになっていく。
FIFOメモリ100は、このように動作する。
【0081】
このように、本実施の形態のFIFOメモリ100においては、1つのデュアルポートRAM120を用いて、2つの系統のFIFOを実現することができる。これにより、全く独立したFIFOを2系統備える場合に比べて、FIFOのマージンを全体として少なくすることができ、また、制御回路の一部を共通化することができ、その結果、回路規模を大幅に削減することができる。
また、その2つの系統における記憶容量の割り当ては、入力されるデータに基づいてダイナミックに決定すればよく予め固定されるものではない。したがって、全体として、よりフレキシブルなバッファを構成することができる。
【0082】
そして、このような構成のFIFOメモリ100を、たとえば前述したような3次元コンピュータグラフィックスシステム1の3次元画像生成装置3に適用することにより、各々が複雑で高速な処理を行なう各構成部間のデータの転送を、少ない規模の回路で、効率よく行なうことができ、その結果、効率よく所望の画像の生成ができる。
【0083】
なお、本発明は前述した実施の形態に限られるものではなく、さらに種々の改変が可能である。
たとえば、本実施の形態においては、2種類(2系統)のデータを処理するFIFOを例示したが、これは2系統に限られるものではなく、任意の数の系統を処理できるようにしてよい。
【0084】
また、実際にデータを記憶するメモリは、デュアルポートRAMに限られるものではなく、シングルポートRAMを用いてもよい。その場合には、たとえばシングルポートRAMを2つ具備し、1つのシングルポートRAMに対して記憶と読み出しを同時に行わないようにデータの記憶および読み出しを制御することにより、記憶または読み出しを同時に行えないシングルポートRAMを用いて、また動作クロックを早めることなく、本発明と同様の動作を行なうFIFOメモリを構成することができる。
もちろん、メモリの種類は、シングルポートRAM以外の任意のメモリを用いてよい。
【0085】
また、本実施の形態においては、FIFOメモリ100メモリ100の適用例として、3次元画像生成装置を例示したが、このFIFOメモリ装置は通常のFIFOメモリとして、任意好適な装置に適用可能である。
【0086】
【発明の効果】
以上説明したように、本発明によれば、より小さい回路規模で複数系統のデータに対して適切にFIFO機能を提供できるデータ記憶装置とその方法を提供することができる。
また、より小さい回路規模で各処理手段でのデータの転送が適切に行え、これにより所望の画像処理を効率よく行えるような画像処理装置を提供することがにできる。
【図面の簡単な説明】
【図1】図1は、本発明の一実施の形態であって、本発明のメモリ装置を適用する3次元コンピュータグラフィックスシステムの構成を示すブロック図である。
【図2】図2は、図1に示した3次元コンピュータグラフィックスシステムの画像メモリおよびその周辺回路を含むメモリ装置の構成を論理的に示す図である。
【図3】図3は、図2に示したメモリ装置におけるデータの流れを示すのに好適な、メモリ装置のFIFOメモリの構成を模式的に示すブロック図である。
【図4】図4は、図3に示したFIFOメモリの詳細な構成を示す回路図である。
【図5】図5は、図4に示したFIFOメモリのアドレス制御部の構成を示す回路図である。
【図6】図6は、図3に示したFIFOメモリの全体の動作を示すタイムチャートである。
【図7】図7は、従来の3次元コンピュータグラフィックスシステムの画像メモリおよびその周辺回路を含むメモリ装置の構成を論理的に示す図である。
【符号の説明】
1…3次元コンピュータグラフィックスシステム、2…入力部、3…3次元画像生成装置、4…表示装置、32…ジオメトリ演算部、33…パラメータ演算部、34…画素発生部、35…テクスチャマッピング部、36…テクスチャメモリ、37…メモリインターフェイス、38…画像メモリ、39…プログラマブル・ディスプレイ制御部、50…メモリ装置、51…MTXPC、53…信号処理部、54…第1のRAM、55…第2のRAM、100…FIFOメモリ、120…デュアルポートRAM、140…出力レジスタ、150…制御部、151…ライトイネーブルデコーダ、152…リードイネーブルデコーダ、153…セレクタ、154…レジスタ、160…ライトポインタ部、180…リードポインタ部、200…フル信号生成部、220…エンプティ信号生成部、240…アドレス制御部、241…RAM使用領域フラグ、242…フラグ更新部、243…書き込みアドレスデコーダ、244…バンクA書き込みアドレス記憶部、245…バンクB書き込みアドレス記憶部、246…セレクタ、247…ネクストポインタ、248…バンクAリードアドレス選択部、249…バンクAリードアドレスレジスタ、250…バンクBリードアドレス選択部、251…バンクBリードアドレスレジスファ、252…バンクAエンプティ検出カウンタ、253…バンクBエンプティ検出カウンタ
Claims (8)
- 入力される複数系統のデータを順に記憶するデータ記憶手段と、
前記データ記憶手段に記憶されたデータの記憶順序を前記系統ごとに管理する記憶順序管理手段と、
各系統ごとのデータの出力要求に応じて、前記記憶順序管理手段に管理されている前記系統ごとのデータの記憶順序に基づいて、当該要求された系統の前記記憶されているデータを前記入力された順に読み出し出力する出力手段と
を有し、
前記記憶順序管理手段は、
前記データ記憶手段の未だ読み出されていないデータが記憶されている領域以外の空き領域の任意のアドレスを、入力されるデータを記憶する記憶アドレスとして生成する記憶アドレス生成手段と、
前記各系統ごとに、最後に入力され記憶されたデータに対する前記記憶アドレスを記憶するアドレス記憶手段と、
前記データ記憶手段のアドレス空間に対応したアドレス空間を有し、各アドレスのデータとして、前記データ記憶手段の対応するアドレスに記憶されているデータと同一の系統の前記入力されるデータで、当該アドレスのデータの次に入力され記憶されたデータが記憶されている前記データ記憶手段のアドレスを記憶するテーブルと、
入力される任意の系統のデータが前記データ記憶手段の前記生成された記憶アドレスに記憶された際に、前記テーブルの前記アドレス記憶手段に記憶されているアドレスに、前記生成された記憶アドレスを記憶するテーブル更新手段と、
を有し、
前記記憶アドレス生成手段は、
前記データ記憶手段の各アドレスごとの当該アドレスに未だ読み出されていないデータが記憶されているか否かを示すフラグを記憶するフラグ記憶手段と、
前記記憶されているフラグに基づいて、前記データ記憶手段の前記空き領域を検出し、当該空き領域のいずれか1の領域のアドレスを前記記憶アドレスとして選択する記憶アドレス選択手段と、
新たに入力されるデータの記憶および前記出力手段による記憶されたデータの読み出しに基づいて、前記フラグを更新するフラグ更新手段とを有し、
前記データ記憶手段は、前記記憶アドレス生成手段により生成されたアドレスに、前記入力される任意の系統のデータを記憶する
データ記憶装置。 - 前記出力手段は、
前記各系統ごとに、前記データ記憶手段より最後にデータを読み出したアドレスの、前記テーブルに記憶されている前記記憶アドレスを、読み出しアドレスとして記憶する読み出しアドレス記憶手段と、
任意の前記系統のデータの出力要求があった場合に、前記データ記憶手段の前記読み出しアドレス記憶手段に記憶されている当該系統の前記読み出しアドレスのデータを読み出し出力するデータ読み出し手段と、
を有する請求項1に記載のデータ記憶装置。 - 前記データ記憶手段、前記記憶順序管理手段および前記出力手段は、半導体集積回路として構成されている
請求項1に記載のデータ記憶装置。 - 前記データ記憶手段は、データの記憶と読み出しを同サイクル中に行うことができるデュアルポートメモリを有する
請求項3に記載のデータ記憶装置。 - データ記憶手段と、記憶順序管理手段と、出力手段とを有するデータ記憶装置のデータ記憶方法であって、
入力される複数系統のデータをメモリに記憶する第1の工程と、
前記記憶されたデータの記憶順序を前記系統ごとに管理する第2の工程と、
各系統ごとのデータの出力要求に応じて、前記管理されている前記系統ごとのデータの記憶順序に基づいて、当該要求された系統の前記記憶されているデータを前記入力された順に読み出し出力する第3の工程と、
を有し、
前記第2の工程は、
前記各系統ごとに、最後に入力され記憶されたデータに対する前記記憶アドレスを記憶しておく第4の工程と、
任意の系統のデータが入力された場合に、前記メモリの未だ読み出されていないデータが記憶されている領域以外の空き領域の任意のアドレスを、入力されるデータを記憶する記憶アドレスとして生成する第5の工程と、
前記データ記憶手段のアドレス空間に対応したアドレス空間を有し、各アドレスのデータとして、前記データ記憶手段の対応するアドレスに記憶されているデータと同一の系統の前記入力されるデータで、当該アドレスのデータの次に入力され記憶されたデータが記憶されている前記データ記憶手段のアドレスを記憶するテーブルの、前記記憶されている当該系統の最後に入力され記憶されたデータに対する記憶アドレスに、当該入力されるデータが前記メモリの前記生成された記憶アドレスに記憶された際に、当該生成された記憶アドレスを記憶する第6の工程と、
を有し、
前記第4の工程は、
前記メモリの各アドレスに未だ読み出されていないデータが記憶されているか否かを示すフラグを設定しておく第7の工程と、
前記記憶されているフラグに基づいて前記メモリの前記空き領域を検出する第8の工程と、
当該空き領域のいずれか1の領域のアドレスを前記記憶アドレスとして選択する第9の工程と、
を有するデータ記憶方法。 - 任意の表示用画像データを生成する画像生成手段と、
前記生成された表示用画像データを記憶する画像メモリと、
前記記憶された表示用画像データより所望の領域のデータを読み出し表示用画面データとして出力する出力手段と
を有し、
前記画像メモリは、
入力される複数系統のデータを順に記憶するデータ記憶手段と、
前記データ記憶手段に記憶されたデータの記憶順序を前記系統ごとに管理する記憶順序管理手段と、
各系統ごとのデータの出力要求に応じて、前記記憶順序管理手段に管理されている前記系統ごとのデータの記憶順序に基づいて、当該要求された系統の前記記憶されているデータを前記入力された順に読み出し出力する出力手段と
を有し、
前記記憶順序管理手段は、
前記データ記憶手段の未だ読み出されていないデータが記憶されている領域以外の空き領域の任意のアドレスを、入力されるデータを記憶する記憶アドレスとして生成する記憶アドレス生成手段と、
前記各系統ごとに、最後に入力され記憶されたデータに対する前記記憶アドレスを記憶するアドレス記憶手段と、
前記データ記憶手段のアドレス空間に対応したアドレス空間を有し、各アドレスのデータとして、前記データ記憶手段の対応するアドレスに記憶されているデータと同一の系統の前記入力されるデータで、当該アドレスのデータの次に入力され記憶されたデータが記憶されている前記データ記憶手段のアドレスを記憶するテーブルと、
入力される任意の系統のデータが前記データ記憶手段の前記生成された記憶アドレスに記憶された際に、前記テーブルの前記アドレス記憶手段に記憶されているアドレスに、前記生成された記憶アドレスを記憶するテーブル更新手段と、
を有し、
前記記憶アドレス生成手段は、
前記データ記憶手段の各アドレスごとの当該アドレスに未だ読み出されていないデータが記憶されているか否かを示すフラグを記憶するフラグ記憶手段と、
前記記憶されているフラグに基づいて、前記データ記憶手段の前記空き領域を検出し、当該空き領域のいずれか1の領域のアドレスを前記記憶アドレスとして選択する記憶アドレス選択手段と、
新たに入力されるデータの記憶および前記出力手段による記憶されたデータの読み出しに基づいて、前記フラグを更新するフラグ更新手段とを有し、
前記データ記憶手段は、前記記憶アドレス生成手段により生成されたアドレスに、前記入力される任意の系統のデータを記憶する
画像処理装置。 - 前記画像生成手段は、
任意の3次元立体モデルが、少なくとも3次元位置情報を有する頂点によって示される基本多角形の集合として示されている3次元画像データの、当該基本多角形の前記頂点に対して所定の座標変換を行う座標変換手段と、
前記基本多角形の頂点のデータに基づいて、当該基本多角形の画素データを生成する画素データ生成手段と、
前記生成された画素データに対して、所望のテクスチャパタンを用いてテクスチャマッピングし、表示用3次元画像データを前記表示用画像データとして生成するテクスチャマッピング手段と
を有する請求項6に記載の画像処理装置。 - 前記出力手段は、
前記各系統ごとに、前記データ記憶手段より最後にデータを読み出したアドレスの、前記テーブルに記憶されている前記記憶アドレスを、読み出しアドレスとして記憶する読み出しアドレス記憶手段と、
任意の前記系統のデータの出力要求があった場合に、前記データ記憶手段の前記読み出しアドレス記憶手段に記憶されている当該系統の前記読み出しアドレスのデータを読み出し出力するデータ読み出し手段と、
を有する請求項7に記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000021836A JP4482996B2 (ja) | 2000-01-26 | 2000-01-26 | データ記憶装置とその方法および画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000021836A JP4482996B2 (ja) | 2000-01-26 | 2000-01-26 | データ記憶装置とその方法および画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001209811A JP2001209811A (ja) | 2001-08-03 |
JP4482996B2 true JP4482996B2 (ja) | 2010-06-16 |
Family
ID=18548197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000021836A Expired - Fee Related JP4482996B2 (ja) | 2000-01-26 | 2000-01-26 | データ記憶装置とその方法および画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4482996B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4487959B2 (ja) | 2006-03-17 | 2010-06-23 | ソニー株式会社 | 画像処理装置および画像処理方法、並びにプログラム |
-
2000
- 2000-01-26 JP JP2000021836A patent/JP4482996B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001209811A (ja) | 2001-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3645024B2 (ja) | 描画装置及び描画方法 | |
JPS60239796A (ja) | デイスプレイメモリ中のデータを変更する回路と方法 | |
JPH0863608A (ja) | コンピュータ・グラフィック・システム及びフレーム・バッファ使用方法 | |
US5949421A (en) | Method and system for efficient register sorting for three dimensional graphics | |
US5621866A (en) | Image processing apparatus having improved frame buffer with Z buffer and SAM port | |
JPH1079043A (ja) | テクスチャ・データ読出装置およびレンダリング装置 | |
TWI395152B (zh) | 繪圖處理單元及處理邊框顏色資訊之方法 | |
KR100648293B1 (ko) | 그래픽 시스템 및 그것의 그래픽 처리 방법 | |
TWI233573B (en) | Method and apparatus for reducing primitive storage requirements and improving memory bandwidth utilization in a tiled graphics architecture | |
JP2003323339A (ja) | メモリアクセス装置、半導体デバイス、メモリアクセス制御方法、コンピュータプログラム及び記録媒体 | |
JP4482996B2 (ja) | データ記憶装置とその方法および画像処理装置 | |
JP3903557B2 (ja) | データ変換装置および画像生成装置 | |
US6816162B2 (en) | Data management to enable video rate anti-aliasing convolution | |
US5999200A (en) | Method and apparatus for automatically controlling the destination of a graphics command in a register file | |
US5917503A (en) | Converging data pipeline device | |
US5895502A (en) | Data writing and reading method for a frame memory having a plurality of memory portions each having a plurality of banks | |
JP3548648B2 (ja) | 描画装置及び描画方法 | |
US6985153B2 (en) | Sample request mechanism for supplying a filtering engine | |
JPH06309471A (ja) | 3次元グラフィックス描画装置 | |
US7113655B2 (en) | Image processing apparatus | |
JP3971448B2 (ja) | 描画装置及び描画方法 | |
US5946003A (en) | Method and apparatus for increasing object read-back performance in a rasterizer machine | |
US7671866B2 (en) | Memory controller with graphic processing function | |
JP2009048509A (ja) | マルチテクスチャマッピング装置、およびマルチテクスチャデータのメモリ格納方法 | |
US6489967B1 (en) | Image formation apparatus and image formation method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090904 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090924 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091215 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100205 |
|
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: 20100302 |
|
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: 20100315 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130402 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |