JP4482996B2 - Data storage apparatus and method and image processing apparatus - Google Patents
Data storage apparatus and method and image processing apparatus 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
Description
【0001】
【発明の属する技術分野】
本発明は、複数系統のデータに対する先入れ先出し形式(以降、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エンプティ検出カウンタ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data storage device and a data storage method in a first-in first-out format (hereinafter referred to as FIFO (First In First Out) format) for data of a plurality of systems, and generation of a display image using the data storage device. The present invention relates to an image processing apparatus that can be efficiently performed.
[0002]
[Prior art]
A so-called FIFO memory that reads input data in the input order is widely used in various electronic circuits. In particular, in recent years, the processing speed has been improved in all electronic devices. As a result, there is a difference in the data processing speed between the processing units, and it is difficult to transfer the data in proper synchronization. In order to solve this problem, a FIFO memory is often provided as a buffer means between the processing units.
For example, an image processing device that generates a three-dimensional image used for a CAD device, a game machine, or the like is capable of processing many pixels such as coordinate conversion, texture mapping, special effect processing for each pixel, and high-speed display of the generated image. Various processing units that perform high-speed processing are sequentially connected. A large number of FIFO memories are used in order to transfer data between these processing units at high speed and appropriately.
[0003]
[Problems to be solved by the invention]
By the way, for example, a plurality of types of data are often transferred as necessary between the components of such an image processing apparatus. In particular, when not only image data but also control data is included, it is rare that only one specific type of data is transferred. In such a case, as shown in FIG. 7, for example, a plurality of FIFO memories are provided in parallel according to the type of data (sometimes referred to as a data system).
However, when a plurality of FIFO memories are provided in parallel as described above, a margin must be secured for each system, or a control unit is provided independently despite a lot of common signal processing. There is a problem that the circuit cannot be used efficiently, that is, the circuit scale becomes larger than necessary.
In particular, since such a circuit is often realized as a semiconductor integrated circuit, there is a demand for reducing the circuit scale, in other words, the gate scale of the circuit as much as possible.
[0004]
Accordingly, it is an object of the present invention to provide a data storage device and method thereof that can appropriately provide a FIFO function for data of a plurality of systems with a smaller circuit scale.
Another object of the present invention is to provide an image processing apparatus capable of appropriately transferring data in each processing means with a smaller circuit scale, thereby efficiently performing desired image processing.
[0005]
In order to solve the above problems, a data storage device according to the present invention manages data storage means for sequentially storing input data of a plurality of systems, and the storage order of data stored in the data storage means for each system. In response to a data output request for each system, the storage order management means that performs the storage of the requested system based on the data storage order for each system managed by the storage order management means. Output means for reading out and outputting data in the order of input, and the storage order management means is an arbitrary free area other than the area in which the data that has not yet been read is stored in the data storage means. Storage address generation means for generating the address of the input as a storage address for storing the input data, and for each of the systems, the last input and stored data Address storage means for storing the storage address, and an address space corresponding to the address space of the data storage means, and the same as the data stored at the corresponding address of the data storage means as the data of each address The address of the data storage means in which the data inputted and stored next to the data of the address is stored in the input data of the system ofTeTable and the input data of any system stored in the generated storage address of the data storage means, the generated storage at the address stored in the address storage means of the table Table updating means for storing addresses, and the storage address generating means includes a flag indicating whether or not unread data is stored in the address for each address of the data storage means. Based on the flag storage means for storing and the stored flag, the free area of the data storage means is detected, and a storage address selection for selecting the address of any one of the free areas as the storage address And the storage of newly input data and the reading of the stored data by the output means, And a flag updating means for updating the lug, said data storage means, the address generated by the memory address generating means, for storing data of any line that is the input.
[0006]
According to a second aspect of the present invention, there is provided a data storage method for a data storage device having a data storage means, a storage order management means, and an output means, wherein a plurality of input data are stored in a memory. 1 step, a second step of managing the storage order of the stored data for each system, and storage of the data for each managed system in response to an output request for data for each system A third step of reading out and outputting the stored data of the requested system in the input order based on the order, and the second step is performed at the end for each of the systems. A fourth step of storing the storage address for the data input and stored in the memory, and a region in which data not yet read out of the memory is stored when data of an arbitrary system is input A fifth step of generating an arbitrary address of a free area other than as a storage address for storing the input data,It has an address space corresponding to the address space of the data storage means, and the input data of the same system as the data stored in the corresponding address of the data storage means as the data of each address, the address The address of the data storage means in which the data input and stored next to the data is stored is stored.In the storage address of the table, the data input and stored at the end of the stored system,When the input data is stored at the generated storage address of the memory,A sixth step of storing the generated storage address, wherein the fourth step includes a flag indicating whether or not unread data is stored in each address of the memory. A seventh step to be set, an eighth step of detecting the free area of the memory based on the stored flag, and an address of any one of the free areas as the storage address A ninth step of selectingThe
[0007]
According to a third aspect of the present invention, there is provided an image processing device for generating arbitrary display image data, an image memory for storing the generated display image data, and a desired one from the stored display image data. Output data for reading out area data as display screen data, and the image memory sequentially stores data of a plurality of input systems, and stores the data stored in the data storage means. Based on the storage order of the data for each system managed by the storage order management means in response to the output request of the data for each system, the storage order management means for managing the storage order for each system Output means for reading out and outputting the stored data of the requested system in the order of the input, and the storage order management means is not stored in the data storage means. Storage address generation means for generating an arbitrary address in an empty area other than an area where unread data is stored as a storage address for storing input data, and the last input for each system. Address storage means for storing the storage address for stored data, and an address space corresponding to the address space of the data storage means, each address data being stored at a corresponding address of the data storage means A table for storing the address of the data storage means in which the data inputted and stored next to the data of the address is stored in the same system as the existing data, and an arbitrary system to be input When the data is stored at the generated storage address of the data storage means. Table updating means for storing the generated storage address at the address stored in the address storage means, and the storage address generation means is still in the address for each address of the data storage means Flag storage means for storing a flag indicating whether or not unread data is stored, and detecting the free area of the data storage means based on the stored flag, A storage address selection unit that selects an address of any one area as the storage address, and a flag update that updates the flag based on storage of newly input data and reading of the stored data by the output unit And the data storage means adds the input to the address generated by the storage address generation means. Stores any system data that is input.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
An embodiment of the present invention will be described with reference to FIGS.
In the present embodiment, a three-dimensional computer graphics system that is applied to a home game machine or the like and displays a desired three-dimensional image of an arbitrary three-dimensional object model on a display at high speed is exemplified. explain.
[0014]
First, the overall configuration and operation of the three-dimensional computer graphics system will be described with reference to FIG.
This three-dimensional computer graphics system expresses a three-dimensional model as a united figure of triangles (polygons), draws this polygon, determines the color of each pixel on the display screen, and displays the polygon on the display This is a system that performs rendering processing.
In the three-dimensional
[0015]
FIG. 1 is a block diagram showing the configuration of the three-dimensional
The three-dimensional
The three-dimensional
[0016]
First, the configuration and function of each unit will be described.
The input unit 2 inputs data of a stereoscopic model to be displayed to the three-dimensional
Specifically, the input unit 2 inputs the polygon data of the stereoscopic model to be displayed as described above to the
[0017]
The
[0018]
The
[0019]
The
[0020]
The
[0021]
The
[0022]
The
In addition, when a display area is designated from the programmable
[0023]
The
The
[0024]
The programmable
The
[0025]
In the present embodiment, display device 4 is a television receiver having a video input terminal or the like normally used at home. An analog video signal is input from the programmable
[0026]
Next, the operation of the three-dimensional
First, when a three-dimensional image to be displayed is determined in a main control device that controls the game itself of the consumer game machine, information on a three-dimensional model necessary for screen display is input to the input unit 2. Based on this information, the input unit 2 inputs polygon data of a three-dimensional model for displaying the image to the three-dimensional
Each polygon data input to the 3D
[0027]
Next, the
The generated pixel data is sequentially input to the
[0028]
The pixel data stored in the
As a result, the latest image data is always stored in the
Thereby, a desired image is displayed on the screen on the display device 4.
[0029]
Next, the peripheral circuit of the
In the three-dimensional
The actual circuit may have a configuration in which each component is independent as shown in FIG. 1, or may be integrally configured using, for example, a general-purpose signal processor, as will be described later. .
[0030]
FIG. 2 is a diagram logically showing peripheral circuits of the image memory 38 (hereinafter referred to as the memory device 50). The configuration of the
As described above, the
[0031]
The
The
[0032]
The
The
The first RAM 54 (bank A) and the second RAM 55 (bank B) are each 275 bits wide and have a total storage capacity of 16 words.
[0033]
The memory device 50 (peripheral circuit of the image memory 38) can logically show the configuration as described above. Hereinafter, the
As described above, the
[0034]
First, an outline of the configuration of the
FIG. 3 is a block diagram schematically showing the main configuration of the
As shown in FIG. 3, the
Gen) 220.
[0035]
The
The
[0036]
The output register 140 stores the data RAMout read from the
[0037]
The
[0038]
The
[0039]
The full
[0040]
The empty
A control unit (not shown) controls writing and reading of data to and from the image memory 38 (FIFO memory 100) based on these signals FULL, PFULL, PFULL, and EMPTY.
[0041]
Next, a more detailed configuration of the
FIG. 4 is a circuit diagram showing a detailed configuration of the
The
The
[0042]
As described above, the
[0043]
The
[0044]
The write enable
[0045]
Specifically, when the
[0046]
The read enable
[0047]
Specifically, the read enable
[0048]
The
[0049]
The
[0050]
Based on a full signal full generated by an
[0051]
The empty
[0052]
The
The configuration of the
FIG. 5 is a circuit diagram showing a configuration of the
The
[0053]
The RAM
The RAM
[0054]
When data is written to and read from the dual-
[0055]
The
When data is stored in the
[0056]
At this time, the
Further, the
[0057]
The bank A write
[0058]
The bank B write
[0059]
The
[0060]
The
The
As a result, each time new data is written to the
[0061]
The bank A read
[0062]
The bank A read address register 249 stores data of the
[0063]
The bank B read
[0064]
The bank B read
[0065]
The bank A
[0066]
The bank B
[0067]
Next, the operation of the
First, with reference to FIG. 4 and FIG. 5, the operation will be described in detail with a focus on the address control method in the
[0068]
First, for example, when data of the bank A (first system) is stored, the input data DATAin is applied to the
The write enable
Since the
[0069]
In the
Further, the
The bank A read
Further, based on the updated flag data of the RAM
[0070]
Next, for example, assuming that data in bank B (second system) is stored, input data DATAin is applied to
[0071]
Further, a signal ram_we_b (we_b) for writing data to the bank B is input from the write enable
Further, the
The bank B read
Further, based on the updated flag data of the RAM
[0072]
Next, assuming that the data of the bank A is stored again, the input data DATAin is applied to the
[0073]
At this time, the
Thereafter, as in the first time or when writing to the bank B, this recording address is recorded in the bank A write
Note that when storing additional data from the state in which data has already been stored, the address is not written from the
[0074]
Now, in the state where data is written in this way, when the reading of the data of the bank A is requested, the read enable signal re_a of the bank A is activated.
The read enable
[0075]
From the
In the
As a result, the first data stored in bank A is read from the
[0076]
Further, in the
Further, in the
[0077]
In this way, data reading and writing of each bank are sequentially performed thereafter.
[0078]
Finally, the overall operation of the
6A and 6B are time charts showing the overall operation of the
[0079]
First, as shown in FIG. 6B, when data is sequentially input to the
Then, the empty signal becomes negative when the data D0 is stored as shown in FIG. 6 (F), and pre-pre-play is performed when the six data up to the data D5 are stored as shown in FIG. 6 (I). The full signal PFULL becomes active, and the pre-full signal PFULL becomes active at the stage where seven data up to the data D6 are stored as shown in FIG. 6 (H), and further, as shown in FIG. 6 (G). In this way, the full signal FULL becomes active at the stage where eight data up to the data D7 are stored.
[0080]
In this state, as shown in FIG. 6 (J), by activating the read enable signal for bank B, as shown in FIG. 6 (K), data in bank B below data D4 is transferred. Read sequentially. F
As the data is read out, the full signal FULL shown in FIG. 6G, the pre-full signal PFUL shown in FIG. 6H, and the pre-pre-full signal PFULL shown in FIG. 6I become negative. To go.
The
[0081]
As described above, in the
Further, the storage capacity allocation in the two systems may be determined dynamically based on the input data, and is not fixed in advance. Therefore, as a whole, a more flexible buffer can be configured.
[0082]
Then, by applying the
[0083]
The present invention is not limited to the embodiment described above, and various modifications can be made.
For example, in the present embodiment, a FIFO that processes two types (two systems) of data is illustrated, but this is not limited to two systems, and any number of systems may be processed.
[0084]
The memory for actually storing data is not limited to the dual port RAM, and a single port RAM may be used. In that case, for example, two single-port RAMs are provided, and storage and reading of data cannot be performed simultaneously by controlling storage and reading of data so that storage and reading of one single-port RAM are not performed simultaneously. A FIFO memory that operates in the same manner as the present invention can be configured using a single-port RAM and without increasing the operating clock.
Of course, any memory other than the single port RAM may be used as the type of memory.
[0085]
In the present embodiment, the three-dimensional image generation apparatus is illustrated as an application example of the
[0086]
【The invention's effect】
As described above, according to the present invention, it is possible to provide a data storage apparatus and method that can appropriately provide a FIFO function for data of a plurality of systems with a smaller circuit scale.
In addition, it is possible to provide an image processing apparatus capable of appropriately transferring data in each processing means with a smaller circuit scale, and thereby performing desired image processing efficiently.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a three-dimensional computer graphics system to which a memory device of the present invention is applied according to an embodiment of the present invention.
2 is a diagram logically showing a configuration of a memory device including an image memory and its peripheral circuits of the three-dimensional computer graphics system shown in FIG. 1. FIG.
FIG. 3 is a block diagram schematically showing a configuration of a FIFO memory of a memory device suitable for showing a data flow in the memory device shown in FIG. 2;
FIG. 4 is a circuit diagram showing a detailed configuration of the FIFO memory shown in FIG. 3;
FIG. 5 is a circuit diagram showing a configuration of an address control unit of the FIFO memory shown in FIG. 4;
FIG. 6 is a time chart showing the overall operation of the FIFO memory shown in FIG. 3;
FIG. 7 is a diagram logically showing a configuration of a memory device including an image memory and its peripheral circuit in a conventional three-dimensional computer graphics system.
[Explanation of symbols]
DESCRIPTION OF
Claims (8)
前記データ記憶手段に記憶されたデータの記憶順序を前記系統ごとに管理する記憶順序管理手段と、
各系統ごとのデータの出力要求に応じて、前記記憶順序管理手段に管理されている前記系統ごとのデータの記憶順序に基づいて、当該要求された系統の前記記憶されているデータを前記入力された順に読み出し出力する出力手段と
を有し、
前記記憶順序管理手段は、
前記データ記憶手段の未だ読み出されていないデータが記憶されている領域以外の空き領域の任意のアドレスを、入力されるデータを記憶する記憶アドレスとして生成する記憶アドレス生成手段と、
前記各系統ごとに、最後に入力され記憶されたデータに対する前記記憶アドレスを記憶するアドレス記憶手段と、
前記データ記憶手段のアドレス空間に対応したアドレス空間を有し、各アドレスのデータとして、前記データ記憶手段の対応するアドレスに記憶されているデータと同一の系統の前記入力されるデータで、当該アドレスのデータの次に入力され記憶されたデータが記憶されている前記データ記憶手段のアドレスを記憶するテーブルと、
入力される任意の系統のデータが前記データ記憶手段の前記生成された記憶アドレスに記憶された際に、前記テーブルの前記アドレス記憶手段に記憶されているアドレスに、前記生成された記憶アドレスを記憶するテーブル更新手段と、
を有し、
前記記憶アドレス生成手段は、
前記データ記憶手段の各アドレスごとの当該アドレスに未だ読み出されていないデータが記憶されているか否かを示すフラグを記憶するフラグ記憶手段と、
前記記憶されているフラグに基づいて、前記データ記憶手段の前記空き領域を検出し、当該空き領域のいずれか1の領域のアドレスを前記記憶アドレスとして選択する記憶アドレス選択手段と、
新たに入力されるデータの記憶および前記出力手段による記憶されたデータの読み出しに基づいて、前記フラグを更新するフラグ更新手段とを有し、
前記データ記憶手段は、前記記憶アドレス生成手段により生成されたアドレスに、前記入力される任意の系統のデータを記憶する
データ記憶装置。Data storage means for sequentially storing input data of a plurality of systems;
Storage order management means for managing the storage order of the data stored in the data storage means for each of the systems;
In response to a data output request for each system, the stored data of the requested system is input based on the storage order of the data for each system managed by the storage order management means. Output means for reading out and outputting in the order of
The storage order management means includes
A storage address generating means for generating an arbitrary address of an empty area other than an area where data that has not yet been read from the data storage means is stored as a storage address for storing input data;
For each of the systems, address storage means for storing the storage address for the last input and stored data;
It has an address space corresponding to the address space of the data storage means, and the input data of the same system as the data stored in the corresponding address of the data storage means as the data of each address, the address and lutein Buru to store an address of the data memory means the data stored is input to the next is stored data,
When the data of an arbitrary system to be inputted is stored in the generated storage address of the data storage means, the generated storage address is stored in the address stored in the address storage means of the table. Table updating means to
Have
The storage address generating means
Flag storage means for storing a flag indicating whether or not data that has not yet been read is stored in the address for each address of the data storage means;
Storage address selection means for detecting the free area of the data storage means based on the stored flag and selecting the address of any one of the free areas as the storage address;
Flag update means for updating the flag based on storage of newly input data and reading of stored data by the output means;
The data storage means stores data of an arbitrary system to be inputted at an address generated by the storage address generation means.
前記各系統ごとに、前記データ記憶手段より最後にデータを読み出したアドレスの、前記テーブルに記憶されている前記記憶アドレスを、読み出しアドレスとして記憶する読み出しアドレス記憶手段と、
任意の前記系統のデータの出力要求があった場合に、前記データ記憶手段の前記読み出しアドレス記憶手段に記憶されている当該系統の前記読み出しアドレスのデータを読み出し出力するデータ読み出し手段と、
を有する請求項1に記載のデータ記憶装置。The output means includes
Read address storage means for storing, as a read address, the storage address stored in the table of the address at which data was last read from the data storage means for each of the systems,
Data read means for reading out and outputting the data of the read address of the system stored in the read address storage means of the data storage means when there is an output request of data of the arbitrary system,
The data storage device according to claim 1, comprising:
請求項1に記載のデータ記憶装置。The data storage device according to claim 1, wherein the data storage unit, the storage order management unit, and the output unit are configured as a semiconductor integrated circuit.
請求項3に記載のデータ記憶装置。The data storage device according to claim 3, wherein the data storage unit includes a dual port memory capable of storing and reading data during the same cycle.
入力される複数系統のデータをメモリに記憶する第1の工程と、
前記記憶されたデータの記憶順序を前記系統ごとに管理する第2の工程と、
各系統ごとのデータの出力要求に応じて、前記管理されている前記系統ごとのデータの記憶順序に基づいて、当該要求された系統の前記記憶されているデータを前記入力された順に読み出し出力する第3の工程と、
を有し、
前記第2の工程は、
前記各系統ごとに、最後に入力され記憶されたデータに対する前記記憶アドレスを記憶しておく第4の工程と、
任意の系統のデータが入力された場合に、前記メモリの未だ読み出されていないデータが記憶されている領域以外の空き領域の任意のアドレスを、入力されるデータを記憶する記憶アドレスとして生成する第5の工程と、
前記データ記憶手段のアドレス空間に対応したアドレス空間を有し、各アドレスのデータとして、前記データ記憶手段の対応するアドレスに記憶されているデータと同一の系統の前記入力されるデータで、当該アドレスのデータの次に入力され記憶されたデータが記憶されている前記データ記憶手段のアドレスを記憶するテーブルの、前記記憶されている当該系統の最後に入力され記憶されたデータに対する記憶アドレスに、当該入力されるデータが前記メモリの前記生成された記憶アドレスに記憶された際に、当該生成された記憶アドレスを記憶する第6の工程と、
を有し、
前記第4の工程は、
前記メモリの各アドレスに未だ読み出されていないデータが記憶されているか否かを示すフラグを設定しておく第7の工程と、
前記記憶されているフラグに基づいて前記メモリの前記空き領域を検出する第8の工程と、
当該空き領域のいずれか1の領域のアドレスを前記記憶アドレスとして選択する第9の工程と、
を有するデータ記憶方法。A data storage method of a data storage device having data storage means, storage order management means, and output means,
A first step of storing input data of a plurality of systems in a memory;
A second step of managing the storage order of the stored data for each of the systems;
In response to a data output request for each system, the stored data of the requested system is read and output in the input order based on the managed data storage order for each system. A third step;
Have
The second step includes
For each of the systems, a fourth step of storing the storage address for the last input and stored data;
When data of an arbitrary system is input, an arbitrary address in an empty area other than an area in which data that has not yet been read is stored is generated as a storage address for storing input data. A fifth step;
It has an address space corresponding to the address space of the data storage means, and the input data of the same system as the data stored in the corresponding address of the data storage means as the data of each address, the address data stored is input to the following table for storing an address of said data storage means having stored therein the data, the last entered stored address for the stored data of the lines being the storage, the A sixth step of storing the generated storage address when input data is stored in the generated storage address of the memory;
Have
The fourth step includes
A seventh step of setting a flag indicating whether data not yet read is stored in each address of the memory;
An eighth step of detecting the free area of the memory based on the stored flag;
A ninth step of selecting an address of any one of the empty areas as the storage address;
A data storage method comprising:
前記生成された表示用画像データを記憶する画像メモリと、
前記記憶された表示用画像データより所望の領域のデータを読み出し表示用画面データとして出力する出力手段と
を有し、
前記画像メモリは、
入力される複数系統のデータを順に記憶するデータ記憶手段と、
前記データ記憶手段に記憶されたデータの記憶順序を前記系統ごとに管理する記憶順序管理手段と、
各系統ごとのデータの出力要求に応じて、前記記憶順序管理手段に管理されている前記系統ごとのデータの記憶順序に基づいて、当該要求された系統の前記記憶されているデータを前記入力された順に読み出し出力する出力手段と
を有し、
前記記憶順序管理手段は、
前記データ記憶手段の未だ読み出されていないデータが記憶されている領域以外の空き領域の任意のアドレスを、入力されるデータを記憶する記憶アドレスとして生成する記憶アドレス生成手段と、
前記各系統ごとに、最後に入力され記憶されたデータに対する前記記憶アドレスを記憶するアドレス記憶手段と、
前記データ記憶手段のアドレス空間に対応したアドレス空間を有し、各アドレスのデータとして、前記データ記憶手段の対応するアドレスに記憶されているデータと同一の系統の前記入力されるデータで、当該アドレスのデータの次に入力され記憶されたデータが記憶されている前記データ記憶手段のアドレスを記憶するテーブルと、
入力される任意の系統のデータが前記データ記憶手段の前記生成された記憶アドレスに記憶された際に、前記テーブルの前記アドレス記憶手段に記憶されているアドレスに、前記生成された記憶アドレスを記憶するテーブル更新手段と、
を有し、
前記記憶アドレス生成手段は、
前記データ記憶手段の各アドレスごとの当該アドレスに未だ読み出されていないデータが記憶されているか否かを示すフラグを記憶するフラグ記憶手段と、
前記記憶されているフラグに基づいて、前記データ記憶手段の前記空き領域を検出し、当該空き領域のいずれか1の領域のアドレスを前記記憶アドレスとして選択する記憶アドレス選択手段と、
新たに入力されるデータの記憶および前記出力手段による記憶されたデータの読み出しに基づいて、前記フラグを更新するフラグ更新手段とを有し、
前記データ記憶手段は、前記記憶アドレス生成手段により生成されたアドレスに、前記入力される任意の系統のデータを記憶する
画像処理装置。Image generating means for generating arbitrary display image data;
An image memory for storing the generated display image data;
Output means for reading out data of a desired area from the stored display image data and outputting it as display screen data;
The image memory is
Data storage means for sequentially storing input data of a plurality of systems;
Storage order management means for managing the storage order of the data stored in the data storage means for each of the systems;
In response to a data output request for each system, the stored data of the requested system is input based on the storage order of the data for each system managed by the storage order management means. Output means for reading out and outputting in the order of
The storage order management means includes
A storage address generating means for generating an arbitrary address of an empty area other than an area where data that has not yet been read from the data storage means is stored as a storage address for storing input data;
For each of the systems, address storage means for storing the storage address for the last input and stored data;
It has an address space corresponding to the address space of the data storage means, and the input data of the same system as the data stored in the corresponding address of the data storage means as the data of each address, the address and lutein Buru to store an address of the data memory means the data stored is input to the next is stored data,
When the data of an arbitrary system to be inputted is stored in the generated storage address of the data storage means, the generated storage address is stored in the address stored in the address storage means of the table. Table updating means to
Have
The storage address generating means
Flag storage means for storing a flag indicating whether or not data that has not yet been read is stored in the address for each address of the data storage means;
Storage address selection means for detecting the free area of the data storage means based on the stored flag and selecting the address of any one of the free areas as the storage address;
Flag update means for updating the flag based on storage of newly input data and reading of stored data by the output means;
The image processing apparatus, wherein the data storage unit stores the input data of an arbitrary system at the address generated by the storage address generation unit.
任意の3次元立体モデルが、少なくとも3次元位置情報を有する頂点によって示される基本多角形の集合として示されている3次元画像データの、当該基本多角形の前記頂点に対して所定の座標変換を行う座標変換手段と、
前記基本多角形の頂点のデータに基づいて、当該基本多角形の画素データを生成する画素データ生成手段と、
前記生成された画素データに対して、所望のテクスチャパタンを用いてテクスチャマッピングし、表示用3次元画像データを前記表示用画像データとして生成するテクスチャマッピング手段と
を有する請求項6に記載の画像処理装置。The image generating means includes
Arbitrary three-dimensional solid model performs predetermined coordinate transformation on the vertexes of the basic polygons of the three-dimensional image data shown as a set of basic polygons indicated by the vertices having at least three-dimensional position information. Coordinate transformation means to perform,
Pixel data generating means for generating pixel data of the basic polygon based on the data of the vertices of the basic polygon;
The image processing according to claim 6, further comprising: a texture mapping unit that texture-maps the generated pixel data using a desired texture pattern and generates display three-dimensional image data as the display image data. apparatus.
前記各系統ごとに、前記データ記憶手段より最後にデータを読み出したアドレスの、前記テーブルに記憶されている前記記憶アドレスを、読み出しアドレスとして記憶する読み出しアドレス記憶手段と、
任意の前記系統のデータの出力要求があった場合に、前記データ記憶手段の前記読み出しアドレス記憶手段に記憶されている当該系統の前記読み出しアドレスのデータを読み出し出力するデータ読み出し手段と、
を有する請求項7に記載の画像処理装置。The output means includes
Read address storage means for storing, as a read address, the storage address stored in the table of the address at which data was last read from the data storage means for each of the systems,
Data read means for reading out and outputting the data of the read address of the system stored in the read address storage means of the data storage means when there is an output request of data of the arbitrary system,
The image processing apparatus according to claim 7.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000021836A JP4482996B2 (en) | 2000-01-26 | 2000-01-26 | Data storage apparatus and method and image processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000021836A JP4482996B2 (en) | 2000-01-26 | 2000-01-26 | Data storage apparatus and method and image processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001209811A JP2001209811A (en) | 2001-08-03 |
JP4482996B2 true JP4482996B2 (en) | 2010-06-16 |
Family
ID=18548197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000021836A Expired - Fee Related JP4482996B2 (en) | 2000-01-26 | 2000-01-26 | Data storage apparatus and method and image processing apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4482996B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4487959B2 (en) | 2006-03-17 | 2010-06-23 | ソニー株式会社 | Image processing apparatus, image processing method, and program |
-
2000
- 2000-01-26 JP JP2000021836A patent/JP4482996B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001209811A (en) | 2001-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3645024B2 (en) | Drawing apparatus and drawing method | |
KR100648293B1 (en) | Graphic system and graphic processing method for the same | |
JPS60239796A (en) | Circuit and apparatus for altering data in display memory | |
JPH0863608A (en) | Computer graphic system and usage method of frame buffer | |
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 (en) | Texure data reader and rendering device | |
TWI395152B (en) | A graphics processing unit and a method of processing border color information | |
TWI233573B (en) | Method and apparatus for reducing primitive storage requirements and improving memory bandwidth utilization in a tiled graphics architecture | |
JP4482996B2 (en) | Data storage apparatus and method and image processing apparatus | |
JP3903557B2 (en) | Data conversion apparatus and image generation apparatus | |
JP2003323339A (en) | Memory access device, semiconductor device, memory access control method, computer program and recording medium | |
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 | |
US7671866B2 (en) | Memory controller with graphic processing function | |
JP3548648B2 (en) | Drawing apparatus and drawing method | |
US6985153B2 (en) | Sample request mechanism for supplying a filtering engine | |
JP3741053B2 (en) | Image processing device | |
JPH06309471A (en) | Device for plotting three-dimensional graphics | |
JP3971448B2 (en) | Drawing apparatus and drawing method | |
US5946003A (en) | Method and apparatus for increasing object read-back performance in a rasterizer machine | |
JP2009048509A (en) | Multi-texture mapping device and memory storage method of multi-texture data | |
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 |