JP4795808B2 - 描画装置、描画方法、描画プログラム及び描画集積回路 - Google Patents

描画装置、描画方法、描画プログラム及び描画集積回路 Download PDF

Info

Publication number
JP4795808B2
JP4795808B2 JP2006039746A JP2006039746A JP4795808B2 JP 4795808 B2 JP4795808 B2 JP 4795808B2 JP 2006039746 A JP2006039746 A JP 2006039746A JP 2006039746 A JP2006039746 A JP 2006039746A JP 4795808 B2 JP4795808 B2 JP 4795808B2
Authority
JP
Japan
Prior art keywords
memory
cache memory
frame memory
recorded
recording
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
Application number
JP2006039746A
Other languages
English (en)
Other versions
JP2006268839A5 (ja
JP2006268839A (ja
Inventor
大作 北川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2006039746A priority Critical patent/JP4795808B2/ja
Publication of JP2006268839A publication Critical patent/JP2006268839A/ja
Publication of JP2006268839A5 publication Critical patent/JP2006268839A5/ja
Application granted granted Critical
Publication of JP4795808B2 publication Critical patent/JP4795808B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Generation (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、画像処理に関し、特に画像の画素データを格納するフレームメモリとキャッシュメモリの使用方法に関する。
従来、画像処理を行う装置においては、グラフィックスエンジンの指示になる画像の画素データを一旦容量の小さいキャッシュメモリに格納し、その後にキャッシュメモリに格納されていた画素データをフレームメモリに格納するという方法がとられていた。
フレームメモリには大容量の記憶容量が要求されるが、高速かつ大容量のメモリは非常に高価なものになる。そこで描画装置においてはコストパフォーマンスの観点からフレームメモリには、低速ながらも安価なメモリ、例えばDRAM(Dynamic Random Access Memory)を用いる。フレームメモリを低速なメモリとすると描画処理の時間が長くなるので、グラフィックスエンジンとフレームメモリの間に、キャッシュメモリとして高速なメモリを介在させることでフレームメモリに書き込む時間を短縮できる。前述したように高速なメモリは高価なものであるので、キャッシュメモリについてはその記憶容量を小さくすることでコストの増大を抑える。
キャッシュメモリを使用しなくても画像をフレームメモリに納めることは可能であるがこの場合グラフィックスエンジンはフレームメモリへの画素データの書き込みに処理能力の多くを使用することになるので、どうしても次の描画データを作成したりなどの作業が困難になるために全体的に見て複数の描画データを格納する場合に格納速度が遅くなってしまう。キャッシュメモリを介在させることで、キャッシュメモリへのグラフィックスエンジンからの書き込みは高速で行えることから、一度キャッシュメモリに格納した後にその格納したデータがフレームメモリへ書き込まれるまでの間、グラフィックスエンジンは次の描画データを準備したりできるようになるので書き込みを高速化することができる。
ところで従来においては、このキャッシュメモリを利用する際においては、描画すべき描画対象の描画形状に基づいて、キャッシュメモリへのグラフィックスエンジンからの書き込みが少なくて済むように効率化して書き込んでいた。
この効率化に当たってキャッシュメモリへの書き込みの方法として、描画すべき画像の形状に基づいて描画対象が横長だった場合にキャッシュメモリの2次元配列をx軸方向に長くしたり、逆に描画対象が縦長だった場合には、y軸方向に長くすることでキャッシュメモリへの書き込み回数を少なくする技術が特許文献1にて開示されている。
特開平1−262585号公報
上述のようにグラフィックスエンジンからキャッシュメモリへの書き込み回数を従来よりも少なくすることでグラフィックスエンジンから最終的にフレームメモリへの書き込みが終わるまでの時間の短縮を行っているが画素の高品質化に伴い転送時間が増大することが予想されるので描画装置においては更なる書き込み時間の短縮が求められている。
本発明は、上記要望に鑑みてなされたものであり、画像がフレームメモリへ書き込まれるまでの時間を従来よりも短縮することができる描画装置を提供することを目的とする。
上記課題を解決するために本発明の描画装置は、画像データをフレームメモリ内に記録する描画装置であって、キャッシュメモリと、画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定手段と、フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定手段により特定された範囲と重なる2以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録手段と、キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送制御手段とを備えることを特徴とする。
ここで所定量とはキャッシュメモリからフレームメモリにデータをバースト転送する際に一度にアクセスしうるアドレス領域で定まる量である。例えば一度のバースト転送でキャッシュメモリからフレームメモリに10画素分のデータが転送できるとしたら、この所定量で定まるアドレス領域は、フレームメモリにおいて10画素分のデータを格納するアドレス領域となる。
この構成を備えることにより、所定量で定まるアドレス領域である1区分に対する書き込みは1回で済むようにキャッシュメモリに描画する対象の画素データを格納するのでキャッシュメモリからフレームメモリへの1区分に対するアクセスが2回以上発生することがなくなる。
というのも、特許文献1においてはグラフィックスエンジンからのキャッシュメモリへの書き込みにおいては書き込み回数が少なくなるように効率化されてはいるものの、キャッシュメモリからフレームメモリへの書き込みに関しては考慮されておらずこの書き込みにおいて無駄が発生してしまい、結果的に画像がフレームメモリに書き込まれるまでの時間が長くなるという問題がある。これは、キャッシュメモリからフレームメモリへの画素データの格納がバースト転送によって行われているがためにフレームメモリへの書き込みにおいて、キャッシュメモリへの書き込みの仕方によっては部分部分でアクセスが重複してしまうことがあるためである。1区分に対してのアクセスが重複する、即ち2回以上発生するということはグラフィックスエンジンからフレームメモリへの書き込み時間が長くなることを意味している。
従来のようにバースト転送でアクセスするアドレスに対して、キャッシュメモリからフレームメモリへのアクセスが2回以上発生しうるという事態がなくなるということは、キャッシュメモリからフレームメモリへのアクセス回数の低減を意味しており、当然に画像データの全てがフレームメモリに格納されるまでの時間を短縮することができる。
また、描画装置において、前記記録手段は、前記範囲特定手段により特定された範囲と重なる1以上の区分領域について、前記部分画像を前記キャッシュメモリの連続するアドレスに対応する記録領域に記録することとしてよい。
この構成により、1区分分の画素をキャッシュメモリの連続したアドレスに格納することによって、ランダムに1区分の画素を格納した場合よりも制御が容易になり、バースト転送で格納する各画素についてどのアドレスにある画素データをどこに格納するといった指定の処理を省けるようになるのでキャッシュメモリからフレームメモリへの全体的な書き込み時間の転送を短縮できる。
また、描画装置において、前記所定量は、前記キャッシュメモリと前記フレームメモリとを接続するメモリバスの本数に基づいて決定されることとしてよい。
あるいは、前記所定量は、前記バースト転送における転送可能なデータ量に基づいて決定されることとしてよい。
この構成により、1区分をバースト転送の単位、あるいはキャッシュメモリとフレームメモリとを接続するメモリバスの本数に基づいて決定することができる。バースト転送の単位によって1区分が決定されているので、フレームメモリの同じ区分への書き込み、即ちキャッシュメモリからフレームメモリへの1区分へのアクセスが2回以上発生することがなくなり、従来よりもキャッシュメモリからフレームメモリへのアクセス回数を減少させることで、フレームメモリへの全体的な書き込み時間の短縮を促す。
また、描画装置において、前記キャッシュメモリの記憶容量は、前記フレームメモリの前記1区分に該当する記憶容量の整数倍であることとしてよい。
キャッシュメモリをフレームメモリにバースト転送で書き込む1区分分の記憶容量の整数倍にすることで、転送の制御が容易になり、描画装置の複雑化を抑えるとともに、転送制御の容易化により僅かながらもフレームメモリへの書き込み時間全体の短縮を促すことができる。
また、本発明に係る記録方法は、画像データをキャッシュメモリを経由してフレームメモリ内に記録する記録方法であって、画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定ステップと、フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定ステップにおいて特定された範囲と重なる1以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録ステップと、キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送ステップとを含むことを特徴とする。
あるいは、本発明に係る記録プログラムは、画像データをキャッシュメモリを経由してフレームメモリ内に記録する描画装置のコンピュータに実行させる、画像をフレームメモリに記録する処理手順を示した記録プログラムであって、前記処理手順は、画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定ステップと、フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定ステップにおいて特定された範囲と重なる1以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録ステップと、キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送ステップとを含むことを特徴とする。
この方法を描画装置が実行、あるいは、描画装置のコンピュータがプログラムを実行することにより、描画装置は、キャッシュメモリへの画素データの書き込みに際して、1回のバースト転送で転送する画素データは必ず書き込むようにするので、キャッシュメモリが1回のバースト転送でフレームメモリにアクセスする領域には2度アクセスすることがなくなるので、その分だけフレームメモリに描画データが格納されるまでの時間を短縮できる。
また、本発明に係る描画集積回路は、画像データをキャッシュメモリを経由してフレームメモリ内に記録する描画集積回路であって、画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定手段と、フレームメモリを所定量のアドレス連続領域毎に区分した場合における各区分領域のうち、前記範囲特定手段により特定された範囲と重なる1以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を前記キャッシュメモリ内に記録する記録手段と、キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送制御手段とを備えることを特徴とする。
この集積回路を搭載することで、描画装置は、キャッシュメモリへの書き込みに際して1回のバースト転送で転送する画素データは必ず書き込むように書き込みの制御を行えるようになり、当該制御を行うことで、あるバースト転送でフレームメモリにアクセスする領域には2度アクセスすることがなくなるので、フレームメモリに描画する画素データが格納されるまでの時間を従来よりも短縮できる。
ここより本発明に係る描画装置について、図面を用いながら説明する。
<概要>
従来においてはキャッシュメモリからフレームメモリに転送する際にはバースト転送で転送していたが、キャッシュメモリへのデータの格納の仕方によっては、部分画像の切れ目がバースト転送の中間に位置することがあるため、そのバースト転送でキャッシュメモリからフレームメモリへのアクセスは転送しているデータの中身は異なるものの2回発生することがあった(図8網掛け領域801参照。詳細は後述する)。
本発明では、キャッシュメモリからフレームメモリへの書き込みに際してバースト転送の単位に着目し、一回のバースト転送でキャッシュメモリからフレームメモリにアクセスするアドレスに対しては、一つの描画命令において、二回以上のアクセスが発生しないように、キャッシュメモリへのグラフィックスエンジンからの描画命令によって形成される描画データの部分データとして少なくとも1回のバースト転送で転送すべき画素データの全てを格納する。
こうすることで、1回のバースト転送でキャッシュメモリがアクセスしたフレームメモリ内の領域には更なるアクセスが発生しなくなる。よって、大容量が求められるフレームメモリが低速で、描画データの作成作業用の小容量高速のキャッシュメモリを用いるという条件下においてはCPUから描画命令が出てフレームメモリにその描画命令に対応する画素データの全てが格納されるまでの時間を従来よりも短縮できる。
以下、具体的に説明する。
<構成>
図1は、描画装置100の機能構成を示したブロック図である。
同図に示すように描画装置100は、CPU(Central Processing Unit)101、GE(Graphics Engine)102、キャッシュメモリ103、キャッシュメモリ制御回路104、フレームメモリ105を含んで構成される。
CPU101は、GE102に対して描画命令を伝達する機能を有する。例えば、「三点A(21、3)、B(5、9)、C(29、7)を結んで形成される三角形を赤色で描画」という旨を示し、図形種別や座標値などのパラメータを含む描画命令を伝達する。色については、ここでは各画素データはRGBカラーで、各色について赤は2階調、緑は4階調、青は2階調のデータを含むとする。
GE102は、CPU101から伝達された命令を受けて、実際にどの座標にどの色をおくのかといった演算を実行し、演算によって生成されたデータを逐次キャッシュメモリへと書き込むという従来のGEとほぼ同様の機能を有する。但し、キャッシュメモリへの書き込み方法が従来とは異なるがその詳細は、後述の<データ>及び<動作>において説明する。
キャッシュメモリ103は、GE102によって書き込まれる画素データを一時的に格納する機能を有するメモリであり、記憶容量は小さいもののアクセス速度が速いという特徴を有する。また、格納された画素データをフレームメモリ105に転送する機能も有する。
本実施の形態においては、キャッシュメモリ103を、分かりやすくするために図2に示すような2次元配列で考える。図2に示したように、ここではキャッシュメモリ103は、16×8の座標系分の画素データを格納することが可能なメモリであり、合計128の画素を格納する。1マスが1の画素データに対応している。ここで示している画素を指示す数値は、各画素の座標とキャッシュメモリ103のアドレスを示している。例えば、“(0、0)、cad000”は、キャッシュメモリの座標平面上において座標(0、0)はキャッシュメモリの000番のアドレスと対応していることを示している。なおキャッシュメモリ102の座標は、基本的にはフレームメモリ105の座標と対応するものではない。
キャッシュメモリ制御回路104は、キャッシュメモリ103からフレームメモリ105への画素データの転送を制御するものであり、キャッシュメモリ103に格納されている画素データをGE102の指示に基づくフレームメモリ105への格納位置に転送させる機能を有する。例えばDMA(Direct Memory Access) コントローラなどによって実現できる。
フレームメモリ105は、最終的な描画データを格納する機能を有するメモリである。キャッシュメモリ103とは反対に、記憶容量は大きいもののアクセス速度が遅いという特徴を有する。
フレームメモリ105は、図3に示すような2次元配列型のメモリである。図3に示したように、ここではフレームメモリ105は、40×12の配列をしたメモリであり、合計480の画素データを格納する。1マスが1の画素データに対応している。ここで図中において示した黒枠301がバースト転送単位を示しており、キャッシュメモリ103からフレームメモリ105へは8画素単位で画素データが転送される。この8画素は、キャッシュメモリ103とフレームメモリ105とを接続するメモリバスの本数と、バースト転送で1画素を転送するのに必要なメモリバスの本数に基づいて決定される。
なお、図中において示している“(0、0)、fad000”に代表される数値は、その画素の座標とフレームメモリ105におけるアドレスを示している。例えば、“(0、0)、fad000”は座標(0、0)の画素はフレームメモリの000番のアドレスに対応することを意味している。図中においては代表するいくつかの画素についてのみ、座標とアドレスの対応を示している。
また、太線310、311、312、313はバースト転送によって、見かけ上できる境界を示しており、本発明においては、この境界がキャッシュメモリに書き込む範囲の両端に位置することを特徴としている。
<データ>
以下、キャッシュメモリ及びフレームメモリに格納されるデータ例について図面を用いて説明する。本発明との差異を示すためにまず、従来の場合についてを図5〜図9を用いて説明し、その後に本発明の場合のデータを図10〜図13を用いて説明する。
なお、従来の場合も本発明の場合も同様に、最終的に図4において示すように3点ABCを頂点とする三角形ABCの画素データをフレームメモリ105に格納するものとする。
では、従来の場合を説明していく。まず、従来においては、キャッシュメモリへ最初なるべく多くの描画範囲が含まれるように描画するデータの端点を検出し、この端点がキャッシュメモリにおいても端点となるようにキャッシュメモリに格納する。図5の場合においては一点鎖線で示される範囲501がその範囲になる。そしてその次に残った部分に対しても同様にキャッシュメモリに格納するがこの場合の範囲が図6の範囲601に示される。
範囲501及び601に示される範囲の画素データがキャッシュメモリに格納されている状態を示したのが図7である。図7(a)は、範囲501の画素データを格納した状態を示しており、図7(b)は、範囲601の画素データを格納した状態を示している。
このようにデータをキャッシュメモリに格納すると、図8の網掛け領域801に示すようにバースト転送の単位の中で分割されてしまっているがゆえに領域801で示される部分においてはキャッシュメモリからフレームメモリへの書き込みの際に範囲501と601の場合とでそれぞれ1回ずつアクセスするので1回分アクセスが重複することになる。この場合だと都合6回アクセスが重複していることになる。
アクセス回数で換算してみると、図9(a)に示すように、まず図7(a)の場合だと、13回のキャッシュメモリからフレームメモリへのアクセスが発生している。また、図7(b)の場合だと、図9(b)に示すように9回のアクセスが発生する。つまり、キャッシュメモリからフレームメモリへのアクセスは合計で22回発生している。
フレームメモリに格納されたデータは描画装置100に接続されたLCDなどに出力されたりする。
一方、本発明の場合については以下のようになる。
図10に示すように本発明の場合は、バースト転送の単位に留意して最初は範囲1001に示す範囲の画素データをキャッシュメモリに書き込むようにする。また、その次に残った部分については、図11に示すように、範囲1101に示す範囲の画素データをキャッシュメモリに書き込むようにする。
実際にキャッシュメモリに格納した状態を図12に示してある。図12(a)は、図10の範囲1001の画素データを格納している状態を示しており、図12(b)は、図11の範囲1101の画素データを格納している状態を示している。ここで図12(a)及び(b)において、実際には画素データが無い部分、例えば図12(a)で言えば座標(0、0)の画素、については、マスクデータ(転送はするもののフレームメモリ上には書き込まないデータ)を格納している。このマスクデータについてはキャッシュメモリ制御回路104が認識しており、キャッシュメモリ103からフレームメモリ105への転送の際にデータを書き込まないように制御する。
図10〜12に示すように、もともとキャッシュメモリにはバースト転送単位で丁度区切れるように画素データを書き込むので、キャッシュメモリからフレームメモリへの書き込みの際に重複するということがない。よってキャッシュメモリからフレームメモリへの無駄なアクセスが減る。
実際のアクセス回数を示すために図13を設けた。図13(a)は、図12(a)の場合に対応しており、図13(b)は、図12(b)に対応している。
図13(a)の場合には、キャッシュメモリ103からフレームメモリへ105のアクセス回数は、7回である。また、図13(b)の場合にはキャッシュメモリ103からフレームメモリ105へのアクセスは、9回である。つまり、三角形ABCのデータをフレームメモリ105に格納する際においてキャッシュメモリからフレームメモリに対するアクセスは合計16回発生する。つまりこの場合だと本発明の場合と従来の場合とでは22−16=6回のアクセス回数の差が発生することになる。より大きな画像をフレームメモリに格納する場合にはこの回数は更に増大するのでこのキャッシュメモリからフレームメモリへのアクセス回数を減らすことによって短縮される時間は更に長くなる。
GE102からキャッシュメモリ103への書き込みの方法については、<動作>において説明する。
<動作>
最後に本発明に係る描画装置100のCPUから命令が発せられてからフレームメモリに描画データが格納されるまでの動作について図14のフローチャートを用いて説明する。まず、本発明の一般的な動作を図14のフローチャートに基づいて述べた後、図10〜13を用いて具体的に説明する。
図14に示すようにまず、描画装置100において、CPU101からGE102に対して描画命令が伝達される(ステップS1401)。この描画命令はごくごく簡単な内容であり、例えば三角形ABCを赤色で描画せよといった命令である。
GE102は、CPU101からの命令を解析し、その解析結果に基づいて、どの座標にどの色を載せるかを算出し、フレームメモリにおいて、どのアドレスに格納するかを算出する(ステップS1403)。
次に描画命令によって形成される図形の最小x座標x1、最小y座標y1、最大x座標x2、最大y座標y2を算出する。そしてx1が8の倍数でなかった場合にはx1よりも小さくかつ8の倍数になっているx座標x3を算出する。x1が8の倍数の場合にはx1をx3とする。また最大x座標が8n−1(nは1以上の整数)でない場合には、最大x座標より大きくかつ最も近い8n−1となるx座標x4も算出する。最大x座標が8n−1(nは1以上の整数)であった場合には、x2をx4とする。そしてx3を左端、x4を右端、y1を上端、y2を下端とする矩形を算出する。そして当該矩形を左端からキャッシュメモリのx軸方向のサイズ、つまり16画素単位で区切り、またy軸方向も下端からキャッシュメモリのy軸方向のサイズ、つまり8画素単位で区切り画像ブロックに分割する(ステップS1405)。
分割して生成された1の画像ブロックのうちまだフレームメモリに格納していない部分を選択し、その画像ブロックの画素データをGE102がキャッシュメモリ103に記録する(ステップS1407)。
GE102によるキャッシュメモリ103への記録が終了すると、今度はキャッシュ制御回路104がキャッシュメモリ103にフレームメモリ105へとキャッシュメモリ103が格納している画素データをバースト転送させる(ステップS1409)。
そしてまだフレームメモリ105に格納していない画素データがあるかどうかを検出する(ステップS1411)。画素データが残っている場合(ステップS1411のYES)には、ステップS1407に戻り以降の処理を実行する。画素データが残っていない場合には、もう描画するものがないので終了する。
この流れの具体例を、図4、図10、図11を用いながら、図14のフローチャートに沿う形で説明する。
まず、CPU101からはGE102に対して、「三点A(21、3)、B(5、9)、C(29、7)を結んで形成される三角形を赤色で描画せよ」という描画命令が伝達される(ステップS1401対応)。
伝達された描画命令を解析したGE102は、どの座標にどの色を置き、フレームメモリ105のどのアドレス位置に格納するかを算出する(ステップS1403)。
次に、この三角形を囲う矩形を算出するべく、左端のx座標x1、右端のx座標x2、上端のy座標y1、下端のy座標y2を算出する。この場合においては、x1は5、x2は29、y1は3、y2は9となる。
ここでx1は、8の倍数ではない(x1を8で割った余りが0でない、つまり5%8=5≠0)ので、5よりも小さく、8の倍数であるx座標x3を求める。ここでx3は0である。またx2は8n−1(nは1以上の整数)を満たさない(x2に1足した値を8で割った余りが0でない、つまり(29+1)%8=6≠0)ので、29よりも大きく、かつ8n−1を満たすx座標x4を求める。ここでx4は31となる。
そして4点(0、9)、(0、3)、(31、9)、(31、3)を結んで形成される矩形を、キャッシュメモリのx軸方向の幅とy軸方向の幅で区切る。つまり、x軸方向だと座標で15と16の境目で区切る。y軸方向では描画したい図形、三角形ABCは、キャッシュメモリに1回でおさまりきってしまうので区切る必要はないが、y軸方向の座標で1と2の境目で区切る。ここで示した三角形ABCは、大きくないので区切りは少なくて済んだが、ここに示したものより更に大きい図形を描画する場合には、x軸方向に16加算するごとに区切り、y軸方向については8減算するごとに区切り、画像ブロックを生成する(ステップS1405対応)。
このようにして区切って生成されるのが図10に示す画像ブロック1001と図11に示す画像ブロック1101である。これら画像ブロックは当然にキャッシュメモリ102の記憶領域全体に重なるようになっている。
こうして分割してできた画像ブロックの画素データをGE102はキャッシュメモリ103に書き込む(ステップS1407対応)。書き込む画素データは、CPU101からの描画命令に基づいて、GE102が線分AB、線分BC、線分CAを、R:1、G:1、B:0で決定される線色で形成し、各線分で囲われる内側をR:1、G:1、B:0で決定される色で塗りつぶすといった演算を実行することによって決定される。ここで、格納されたデータは図12(a)のようになる。GE102によってキャッシュメモリに書き込まれた各画素データはバースト転送により8画素単位で、キャッシュメモリ制御回路104の制御によりフレームメモリ105の対応するアドレス位置に格納される(ステップS1409対応)。
格納後、GE102はまだ画像ブロックが残っているかどうかを検出する(ステップS1411対応)。この場合、まだ画像ブロック1101が残っているので(ステップS1411のYES対応)、GE102は、画像ブロック1101に含まれる画素のデータをキャッシュメモリ103に書き込む(ステップS1407対応)。画像ブロック1101の画素データが書き込まれた状態は図12(b)のようになる。
そして図12(b)のように格納された画素データは、バースト転送によりキャッシュメモリ制御回路104により、キャッシュメモリ103からフレームメモリ105に転送される。
こうしてフレームメモリ105には図4のような状態で画素データが格納される。
以上に述べてきたように、キャッシュメモリからフレームメモリへの転送は、バースト転送の単位を考慮しているのでフレームメモリの同じ区分へのバースト転送が重複して発生することがなくなり、その分だけCPUから描画命令が発せられてからフレームメモリへ全画素データが書き込まれるまでの時間を短縮することができる。
なお、従来に比してキャッシュメモリの図形的な利用効率は落ちることがある。というのも従来においては図7(a)に示されるように、最初キャッシュメモリになるべく多くの画素データを格納しようとしているのに対し、本発明においては、図12(a)に示すようにバースト転送単位を意識しているために余白が多くなることがあり、効率が落ちているといえる。これによって発生する弊害はGE102からキャッシュメモリ103への書き込み回数が多くなることにある。
しかし、前述したようにGE102からキャッシュメモリ103へのアクセスは高速に行えるため、多少の書き込み回数の増加によって増大する書き込み時間は、キャッシュメモリからフレームメモリへの書き込み回数によって減少する書き込み時間に比して微々たる物であり、実質的に全体的な書き込み時間の短縮を促すことができる。
<補足>
上記実施の形態に基づいて描画装置100説明してきたが、本発明の描画装置100の実施の形態はこれに限定されるものではないことは勿論である。以下、その変形例について説明していく。
(1)上記実施の形態では、キャッシュメモリ及びフレームメモリは、理解しやすくするために2次元配列型のメモリとしたが、これは別に2次元配列である必要はない。また、格納するデータに関しても連続アドレスに格納する必要はなく、バースト転送に必要なデータだけキャッシュメモリにあればよく、この場合、ランダムアクセスメモリであってもかまわない。ただし、座標上において連続する画素データを連続したアドレスの格納領域に格納することは転送の際においてどの画素をどこに転送するのかといった指定の手間を省くことができるので、描画装置の設計も容易になるのは確かである。
(2)上記実施の形態では、キャッシュメモリ及びフレームメモリは、それぞれ、128及び480の画素を格納することとしたが、これは別にこの数値に限る必要はなく、例えば、キャッシュメモリは12288(128×96)の画素データを格納し、フレームメモリは3225600(1920×1680)の画素データを格納することとしてもよい。なお、キャッシュメモリは、画像の転送においてバースト転送単位の画素数の整数倍の記憶容量になっていることが望ましい。こうすることで、キャッシュメモリを無駄なく使えることができるようになる。
(3)上記実施の形態では、キャッシュメモリからフレームメモリへの転送は8画素単位で行っていたが、これは8画素に限る必要はなくメモリバスの本数が多くなればより多くの画素を転送できるようになる。しかし、メモリバスの増加は同時に製作コストの増大を招く。
また、転送できる画素数はメモリバスの単位時間当たりのデータ転送量を1画素のデータ量で減算することでも求めることができる。
(4)上記実施の形態では、キャッシュメモリへの格納する際に、簡単のために、描画する対象を矩形で囲って、その矩形をキャッシュメモリに格納可能な画像ブロックに分割してキャッシュメモリに格納していったが、この手法の場合矩形の中には描画する描画対象のデータがない位置も多く含む可能性がある。
そこで、上記実施の形態において発生しうるその無駄をなるべく抑える一例として以下に示すような方法をとってもよい。なお、キャッシュメモリの容量は図2に示したものと同様とする。
まず、GE102が描画対象のx軸座標が最も小さく、y軸座標の値が最も大きい座標の画素を検出する。そして、その画素のy座標が同じで、x座標より小さく、かつ8の倍数x座標を有する座標点Aを算出する。そして点Aとx座標が同じでy座標が8少ない点Bと、y座標が同じでx座標が16多い点Cを算出する。さらに点Bとy座標が同じで点Cとx座標が同じ点Dを算出する。そして4点A、B、C、Dで構成される四角形を画像ブロックとして、その部分の必要な画素データをキャッシュメモリに格納する。キャッシュメモリに記録された画素データはフレームメモリへ格納する。
そして次に、格納した部分を除いた残りの部分を対象にして同様の処理を実行し、描画対象のデータがなくなるまでこれを繰り返す。こうすることで、キャッシュメモリへ書き込みの無駄をなるべく抑える、即ちキャッシュメモリ上において余白の部分を少なくすることができる。
(5)上記実施の形態においては、フレームメモリに何もデータが無い状態について最初に図形を書き込む、もしくはただ単に上書きするものとして説明したが、フレームメモリに格納されている図形を利用してもよい。
つまりフレームメモリに格納されている図形を修正する場合などのことであるが、この場合一旦フレームメモリからデータを読み出し、修正が必要な部分だけGE102の指示に従って修正し、修正した画素データを再度フレームメモリに格納しなおす構成にしてもよい。この場合においても抜き出す画素データは、バースト転送単位で区切るようにして読み出してキャッシュメモリに格納し、修正後キャッシュメモリの画素データをフレームメモリにバースト転送で格納しなおす。
こうすると部分部分の修正で済み、全データをGE102がキャッシュメモリ103に書き込まなくてもよくなり、その分だけフレームメモリへの書き込みを高速化できると言える。
(6)上記実施の形態においては特に記述しなかったが、本発明においても特許文献1に示すように、キャッシュメモリの形状(縦長あるいは横長)を描画する図形の形状、即ち縦長な図形だった場合には、キャッシュメモリも縦長になるようにしてキャッシュメモリの利用効率を向上させてもよい。但し、この場合においても本発明の趣旨に沿うようにキャッシュメモリにはバースト転送でアクセスするアドレスが重複しないように書き込みを行うようにする。
(7)上記実施の形態においては一つの描画命令を実行する例を示したが、これは別に複数の描画命令であってもよい。例えば、具体例では三角形ABCを描画することとしていたが、「三角形ABCを赤色で描画し、更にその上に点D(18、5)を中心とする半径4の円を紫で描画せよ」といった複数の命令であっても良い。この場合、GE102は、三角形ABCのデータを描画してフレームメモリに格納した後に、再度円を描いてフレームメモリに格納するといった手順を踏むと二度手間で描画処理の時間もより長くかかる。よって、このように複数の描画命令で描画座標系がかぶる場合においては、GE102はそれぞれの図形の重複部分については透過処理、あるいは塗りつぶし処理、あるいは合成処理などを描画命令に基づいて実行してキャッシュメモリへの書き込みもフレームメモリへの書き込みも一度で済むように構成するとよい。
(8)上記実施の形態においては、各色の階調を上述のようにしたが、RGB各色は例えば、255階調であってもよい。
(9)本発明は、上記実施の形態に示す方法であってもよい。また、当該方法を描画装置のコンピュータに実行させるための処理手順を示したコンピュータプログラムであってもよい。当該コンピュータプログラムは、フレキシブルディスク、ハードディスク装置、CD(Compact Disc)、DVD(Digital Versatile Disc)、BD(Blu-ray Disc)、MO(Magneto-Optical)ディスク、フラッシュメモリ、半導体メモリなどに代表される各種記録媒体に記録されていてもよい。
(10)本発明は、描画装置に搭載され、上記実施の形態で示したようにキャッシュメモリに画像データを格納するLSI(Large Scale Integration)あるいは、VLSI(Very Large Scale Integration)で実現してもよく、この場合一のLSIあるいは複数のLSIの組み合わせによって実現してもよい。
画像処理において、高速性が求められる描画を実行する描画装置において有益となる発明である。
本発明に係る描画装置の機能構成を示したブロック図である。 画像の一部又は全部を格納するためのキャッシュメモリの概念図である。 描画装置のフレームメモリの概念図である。 グラフィックスエンジンが、フレームメモリへの書き込む画像の一例を示した図である。 フレームメモリへ書き込まれる図形を従来の方法に従ってキャッシュへの書き込む範囲を示した図である。 フレームメモリへ書き込まれる図形を従来の方法に従ってキャッシュへの書き込む範囲を示した図である。 従来の方法に従ってキャッシュメモリに格納されている状態を示した図である。図7(a)は、図5に示した範囲の画素データを格納した状態を示し、図7(b)は、図6に示した範囲の画素データを格納した状態を示す。 従来の方法によってキャッシュメモリへの格納を行った場合に、キャッシュメモリからフレームメモリへの転送の際に重複が発生することを示す図である。 従来の場合におけるキャッシュメモリからフレームメモリへのアクセス回数を概念的に示す図である。 本発明の方法に従ってキャッシュメモリに書き込む範囲を示した図である。 本発明の方法に従ってキャッシュメモリに書き込む範囲を示した図である。 (a)は、図10に示した範囲の画素データをキャッシュメモリに格納した状態を示している。(b)は、図11に示した範囲の画素データをキャッシュメモリに格納した状態を示している。 本発明の場合におけるキャッシュメモリからフレームメモリへのアクセス回数を概念的に示す図である。 描画装置においてフレームメモリに描画データが格納されるまでの動作を示した図である。
符号の説明
100 描画装置
101 CPU
102 GE
103 キャッシュメモリ
104 キャッシュメモリ制御回路
105 フレームメモリ

Claims (8)

  1. 画像データをフレームメモリ内に記録する描画装置であって、
    キャッシュメモリと、
    描画対象となる画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定手段と、
    フレームメモリをバースト転送の転送単位になるバイト数で定まる境界により区分してなる各区分領域のうち、前記範囲特定手段により特定された範囲と重なる以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を区別可能に前記キャッシュメモリ内に記録する記録手段と、
    キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送制御手段とを備える
    ことを特徴とする描画装置。
  2. 前記記録手段は、前記範囲特定手段により特定された範囲と重なる1以上の区分領域について、前記部分画像を前記キャッシュメモリの連続するアドレスに対応する記録領域に記録する
    ことを特徴とする請求項1記載の描画装置。
  3. 前記区分領域は、前記キャッシュメモリと前記フレームメモリとを接続するメモリバスの本数に基づいて決定される
    ことを特徴とする請求項1記載の描画装置。
  4. 前記区分領域は、前記バースト転送における転送可能なデータ量に基づいて決定される
    ことを特徴とする請求項1記載の描画装置。
  5. 前記キャッシュメモリの記憶容量は、前記フレームメモリの前記区分領域に該当する記憶容量の整数倍である
    ことを特徴とする請求項1記載の描画装置。
  6. 画像データをキャッシュメモリを経由してフレームメモリ内に記録する記録方法であって、
    描画対象となる画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定ステップと、
    フレームメモリをバースト転送の転送単位になるバイト数で定まる境界により区分してなる各区分領域のうち、前記範囲特定手段により特定された範囲と重なる1以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を区別可能に前記キャッシュメモリ内に記録する記録ステップと、
    キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送ステップとを含む
    ことを特徴とする記録方法。
  7. 画像データをキャッシュメモリを経由してフレームメモリ内に記録する描画装置のコンピュータに実行させる、画像をフレームメモリに記録する処理手順を示した記録プログラムであって、前記処理手順は、
    描画対象となる画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定ステップと、
    フレームメモリをバースト転送の転送単位になるバイト数で定まる境界により区分してなる各区分領域のうち、前記範囲特定手段により特定された範囲と重なる1以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を区別可能に前記キャッシュメモリ内に記録する記録ステップと、
    キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送ステップとを含む
    ことを特徴とする記録プログラム。
  8. 画像データをキャッシュメモリを経由してフレームメモリ内に記録する描画集積回路であって、
    描画対象となる画像データが記録されるべきフレームメモリ内の範囲を特定する範囲特定手段と、
    フレームメモリをバースト転送の転送単位になるバイト数で定まる境界により区分してなる各区分領域のうち、前記範囲特定手段により特定された範囲と重なる1以上の区分領域それぞれに対して、記録されるべき前記画像データの部分である部分画像を特定し、特定した各部分画像を区別可能に前記キャッシュメモリ内に記録する記録手段と、
    キャッシュメモリ内に記録された部分画像それぞれを、対応するフレームメモリ内の区分領域へとバースト転送するメモリ間転送制御手段とを備える
    ことを特徴とする描画集積回路。
JP2006039746A 2005-02-23 2006-02-16 描画装置、描画方法、描画プログラム及び描画集積回路 Expired - Fee Related JP4795808B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006039746A JP4795808B2 (ja) 2005-02-23 2006-02-16 描画装置、描画方法、描画プログラム及び描画集積回路

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005046745 2005-02-23
JP2005046745 2005-02-23
JP2006039746A JP4795808B2 (ja) 2005-02-23 2006-02-16 描画装置、描画方法、描画プログラム及び描画集積回路

Publications (3)

Publication Number Publication Date
JP2006268839A JP2006268839A (ja) 2006-10-05
JP2006268839A5 JP2006268839A5 (ja) 2009-02-19
JP4795808B2 true JP4795808B2 (ja) 2011-10-19

Family

ID=37204665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006039746A Expired - Fee Related JP4795808B2 (ja) 2005-02-23 2006-02-16 描画装置、描画方法、描画プログラム及び描画集積回路

Country Status (1)

Country Link
JP (1) JP4795808B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5835879B2 (ja) * 2009-09-25 2015-12-24 アーム・リミテッド メモリからのデータの配列の読み込みを制御する方法および装置
US9406155B2 (en) 2009-09-25 2016-08-02 Arm Limited Graphics processing systems
GB0916924D0 (en) 2009-09-25 2009-11-11 Advanced Risc Mach Ltd Graphics processing systems
US8988443B2 (en) 2009-09-25 2015-03-24 Arm Limited Methods of and apparatus for controlling the reading of arrays of data from memory
US9349156B2 (en) 2009-09-25 2016-05-24 Arm Limited Adaptive frame buffer compression
GB201105716D0 (en) 2011-04-04 2011-05-18 Advanced Risc Mach Ltd Method of and apparatus for displaying windows on a display
US9195426B2 (en) 2013-09-20 2015-11-24 Arm Limited Method and apparatus for generating an output surface from one or more input surfaces in data processing systems
GB2524467B (en) 2014-02-07 2020-05-27 Advanced Risc Mach Ltd Method of and apparatus for generating an overdrive frame for a display
GB2528265B (en) 2014-07-15 2021-03-10 Advanced Risc Mach Ltd Method of and apparatus for generating an output frame
GB2540562B (en) 2015-07-21 2019-09-04 Advanced Risc Mach Ltd Method of and apparatus for generating a signature representative of the content of an array of data

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3519199B2 (ja) * 1996-02-06 2004-04-12 株式会社ソニー・コンピュータエンタテインメント 画像生成装置

Also Published As

Publication number Publication date
JP2006268839A (ja) 2006-10-05

Similar Documents

Publication Publication Date Title
JP4795808B2 (ja) 描画装置、描画方法、描画プログラム及び描画集積回路
US7528837B2 (en) Drawing apparatus, drawing method, drawing program and drawing integrated circuit
JP3732593B2 (ja) 画像処理装置
US6803916B2 (en) Rasterization using two-dimensional tiles and alternating bins for improved rendering utilization
US6977649B1 (en) 3D graphics rendering with selective read suspend
US8704840B2 (en) Memory system having multiple address allocation formats and method for use thereof
US7664922B2 (en) Data transfer arbitration apparatus and data transfer arbitration method
US7898551B2 (en) Systems and methods for performing a bank swizzle operation to reduce bank collisions
KR100648293B1 (ko) 그래픽 시스템 및 그것의 그래픽 처리 방법
JP2004078296A (ja) 画像生成装置
US8498500B2 (en) Image processing apparatus and image processing method
EP2495665B1 (en) Command transfer controlling apparatus and command transfer controlling method
JP6171591B2 (ja) 画像処理装置及び画像処理方法
US7995053B2 (en) Drawing device
US20020070941A1 (en) Memory system having programmable multiple and continuous memory regions and method of use thereof
US20030058244A1 (en) Over-evaluating samples during rasterization for improved datapath utilization
JP2000011190A (ja) 画像処理装置
US10140681B2 (en) Caching method of graphic processing unit
GB2585260A (en) Methods and systems for storing variable length data blocks in memory
EP3327574A1 (en) Method and apparatus for managing memory
JP4314655B2 (ja) 画像処理装置
CN115867899A (zh) 在处理的同时选择性地写回脏高速缓存行
JP2003132347A (ja) 画像処理装置
JP4081860B2 (ja) 画像処理装置
JP2010198156A (ja) 画像描画装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081225

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110222

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: 20110705

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: 20110728

R150 Certificate of patent or registration of utility model

Ref document number: 4795808

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140805

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees