JP3688977B2 - メモリアクセス方法及びその実施装置 - Google Patents
メモリアクセス方法及びその実施装置 Download PDFInfo
- Publication number
- JP3688977B2 JP3688977B2 JP2000171475A JP2000171475A JP3688977B2 JP 3688977 B2 JP3688977 B2 JP 3688977B2 JP 2000171475 A JP2000171475 A JP 2000171475A JP 2000171475 A JP2000171475 A JP 2000171475A JP 3688977 B2 JP3688977 B2 JP 3688977B2
- Authority
- JP
- Japan
- Prior art keywords
- line
- access
- image data
- data
- row address
- 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
- Dram (AREA)
- Digital Computer Display Output (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【発明の属する技術分野】
本発明はメモリに格納された画像データにアクセスするメモリアクセス装置に関し、特にDRAMに格納された複数のラインの画像データを読み出して表示装置に表示するメモリアクセス装置に適用して有効な技術に関するものである。
【0002】
【従来の技術】
従来のメモリアクセス方法としては、例えば特開平7-78467号公報に示す方法がある。まず、従来の画像データのDRAM(Dynamic Random Access Memory)への格納の様子を図25に示す。
【0003】
図25は従来の画像データメモリへのデータ格納の様子を示す図である。DRAM101には、1フレームの画素データが格納されている。各画素データは例えば8(bit)(256色)で構成される。1本の走査線に対応した複数の画素データは、一つのRow Addressで指定される様に格納される。
【0004】
表示リフレッシュや画像の描画や圧縮や伸張の為には、図25に示す様に、DRAM101中の全画素データの内、n画素×mラインの大きさ(m、nは正の整数)を有する矩形領域中の画素データを表示制御装置、CPU、描画エンジン、画像圧縮伸長エンジン等が高速に読み書きする必要がある。
【0005】
この為、1画素データ毎にRow Addressを供給しなければならない通常モードのアクセスではなく、1Row Address中のアクセスを行うに当り先頭画素データのRow Addressを一度供給すれば、その後に連続するデータのアクセスはColumn Addressのみを供給すれば良いページモードのアクセスが採用される。後者のページモードアクセスを採用すれば、Column Addressの連続自動生成によってDRAM101のアクセスが高速化される。
【0006】
図26は従来の画像データメモリへのアクセスのタイミングを示す図である。図26は図25のDRAM101のアクセス手順を示す図である。この例ではバス幅を色の深さの4倍(例 色の深さ8bit per pixelで32bitバス)とし、一度に4ピクセルのデータにアクセスしている。
【0007】
図26によれば、DRAM101中のm画素×nラインの大きさの矩形領域のデータにアクセスするのに要する時間T1は、数1で表せる。
【数1】
T1 = n×(tPR + tRCD + (m/4)×tCK)
【0008】
ここで、tCKはページモードにおける1画素当りのアクセス時間であり、tRCDはRAS(Row Address Strobe)をアクティブにしてからCAS(Column Address Strobe)をアクティブにするまでのディレイ時間、tPRはプリチャージ時間である。この方法によるとRASからCASまでのディレイ時間tRCD,プリチャージ時間tPRは、Row Addressを変更する毎に、すなわち1ライン毎に必要となってしまう。
【0009】
図27は従来の一般的なDRAMを32bitバスに接続した場合の1Rowを示すAddressのサイズである。従来では1ラインのデータを一つのRow Addressに格納し、1ライン以下のサイズを単位として、画像データを格納するメモリにアクセスしていた。しかし、DRAMの大容量化に伴い1Row Addressのサイズは広くなる傾向にあり、現在一般的なDRAMを32bitバスに接続した場合の1Row Addressのサイズは図27に示す通りである。例えばSDRAM(synchronous DRAM)を使用する場合1Row Addressのサイズは1024byteから4096byteとなる。
【0010】
【発明が解決しようとする課題】
従来の表示制御装置は上記の様に表示ラインに合わせてアクセスしていた為、ライン単位でプリチャージ等の時間が発生した。このプリチャージ時間やRASからCASまでのディレイ時間は読み出しや書込みが行われない。また、同期式のDRAMであるSDRAMを高速で使用する場合(CAS Latency = 3cycleの場合)、tRCD,tPRはそれぞれ3cycle計6cycleもかかり非常に大きなオーバーヘッドとなる。この様なオーバーヘッドの為、高速のページモードアクセスやバーストアクセスを採用したとしても従来の画像データメモリアクセスの際にライン単位で読み出しや書込みが行われない時間が生じている。
【0011】
また、コンピュータ・グラフィックス・ディスプレイの品質は、表示装置、特にカソードレイチューブ(CRT)或いは液晶ディスプレイ(LCD)の解像度は高く、色の深さ(Color Depth)は深く、リフレッシュ速度は早くなり表示品質は改善されてきた。今日では1280×1024pixel、16.7×106色同時表示を行う様なシステムが一般的となってきている。この様な高解像度及び多色表示、高いリフレッシュ速度での表示は、画像データを記憶するメモリに高い性能を要求する。もし、表示装置のリフレッシュの為のデータアクセスの負荷が高いと、メモリは表示装置のリフレッシュの為に占有され、メモリにアクセスする他の装置(グラフィックス・エンジン或いは主中央処理装置(CPU)によるメモリアクセス)の為の時間がなくなる。特にCPUの実行するプログラムそれにかかるデータの格納されるメモリと画像データを格納するメモリが同一のメモリとなるUMA(Unified Memory Architecture)のシステムではこの問題が顕著になる。
【0012】
他の背景として、グラフィックス・ディスプレイ・システムの設計時、電力消費量の問題が上げられる。特にバッテリーの寿命が問題となる携帯用のシステムにおいてこの問題が顕著に表れる。消費電力は消費されるメモリのバンド幅、つまり色の深さ、解像度、リフレッシュの速度に比例して増大する為、高解像度、多色表示の表示システムは、携帯用のシステムには適していない。しかし、ポータブルコンピュータ等の携帯情報機器においても高解像度、多色表示システムの要求が高く、電力消費量を増大させない高性能グラフィックス・ディスプレイ・システム及びそれを実現する方法が必要とされている。
【0013】
本発明の目的は上記問題を解決し、画像データへのアクセスサイクル数を削減することが可能な技術を提供することにある。
【0014】
【課題を解決するための手段】
本発明は、メモリに格納された複数のラインの画像データにアクセスするメモリアクセス装置において、Row Addressが等しい複数のラインの画像データのアクセスを連続して行うものである。
【0015】
上記課題を解決する為、本発明ではDRAMへのアクセス単位を表示ライン単位ではなく、Row Addressのサイズを基準として行う。これにより、ページモードアクセスやバーストモードアクセス等のスループットの高いアクセスを有効利用することが可能となり、画像データへのアクセスサイクル数を削減することが出来る。
【0016】
本発明では、複数のラインの画像データにアクセスして画像の表示や描画を行う際に、まず、あるラインの画像データが格納されているRow Addressが出力された後にColumn Addressを出力してそのラインの画像データにアクセスする。
【0017】
そして、前記アクセスしたラインの画像データが格納されているRow Addressと次にアクセスするラインの画像データが格納されているRow Addressとを比較し、前記アクセスしたラインと次にアクセスするラインのRow Addressが等しい場合に、次のラインの画像データにアクセスする為のプリチャージを抑止し、前記アクセスしたラインの画像データに続けて次のラインの画像データのアクセスを連続して行う。
【0018】
従来例では1ラインのデータを一つのRow Addressに格納し、1ライン以下のサイズを単位として、画像データを格納するメモリにアクセスしていたが、図27の様にDRAMの大容量化に伴って1Row Addressのサイズは広くなる傾向にある。
【0019】
それに対し、カラー表示として最も一般的な解像度640×480、色の深さ8bit per pixelの表示を考えた場合、1ラインのデータは640byteと一般的なSDRAMの1Row Addressより小さくなり、バス幅を32bitとし、1Row Addressが 2048 byteとなるDRAMを使用した場合、1Row Addressに3.2ラインの画像データを格納出来る。この様に複数ラインのデータを1Row Addressに格納されているデータをページモード、または、バーストモードでアクセスするとmピクセル×nラインの領域をアクセスするのに要する時間T2は、数2の様になり、プリチャージ、RASからCASまでのディレイ時間をn/3.2回の発生まで大きく削減出来る。
【数2】
T2 ≒(n/3.2)×(tPR + tRCD + (512×tCK))
【0020】
稀な場合としてプリチャージ、RASからCASまでのディレイ時間がn回発生し、従来例と同じサイクル数必要とする場合がある。例えばn=2の場合で、その2ラインのデータが異なるRow Addressに格納されている場合である。
【0021】
しかし、本発明のアクセス方法では、従来例よりアクセスサイクル数が増加することはなく、多くの場合はアクセスサイクル数を大きく削減出来る。例えば、バス幅を32bitとし、1Row Addressのサイズが2048byteとなるSDRAMをCAS Latency = 3cycleで使用し、tPR = 3cycle、tRCD = 3cycle、tCK = 1cycleで、解像度640×480、色の深さ8bit per pixelの表示を行った場合を考える。この場合1フレーム640×480pixelのデータを読み込む為にかかるサイクル数は従来例では数1より数3の様に求まり、本発明の方法によると数4の様に求まる。この数3及び数4により分かる様に、従来例では79,680cycleかかるところを本発明により77,700cycleまで削減することが出来る。
【数3】
T1 = 480×(3 + 3 + (640/4)×1) = 79,680
【数4】
T2 =(480/3.2)×(3 + 3 + (512×1)) = 77,700
【0022】
前記の様に本発明では、複数のラインのRow Addressが同一である場合にプリチャージを行うことなく連続して複数のラインにアクセスするので、同一のRow Addressに格納される可能性の高いアイコンの様な小さい領域の表示単位へのアクセスを行う場合に効率的なアクセスを行うことが出来る。
【0023】
以上の様に本発明のメモリアクセス装置によれば、Row Addressが等しい複数のラインの画像データのアクセスを連続して行うので、画像データへのアクセスサイクル数を削減することが可能である。
【0024】
【発明の実施の形態】
以下にメモリに格納された複数のラインの画像データにアクセスする一実施形態のメモリアクセス装置について説明する。
【0025】
図1は本実施形態の画像表示システムの構成を示す図である。図1に示す様に本実施形態の画像表示システムは、描画装置401と、DRAM402と、表示装置403と、表示制御装置404と、アービトレーション回路405と、ラインアクセス回路406と、ラインアクセス制御回路407とを有している。
【0026】
描画装置401は、DRAM402中の複数のラインの画像データにアクセスして画像の描画を行う装置である。DRAM402は、複数のラインから成る画像データを格納する記憶装置である。表示装置403は、DRAM402中の複数のラインの画像データを表示する装置である。
【0027】
表示制御装置404は、DRAM402中の複数のラインの画像データにアクセスして表示装置403での画像の表示を制御する装置である。アービトレーション回路405は、描画装置401または表示制御装置404からのDRAM402へのアクセスを調停する回路である。
【0028】
ラインアクセス回路406は、あるラインの画像データが格納されているRow Addressが出力された後にColumn Addressを出力して当該画像データにアクセスする回路である。ラインアクセス制御回路407は、前記アクセスしたラインの画像データが格納されているRow Addressと次にアクセスするラインの画像データが格納されているRow Addressとが等しい場合にプリチャージを抑止し、前記アクセスしたラインの画像データに続けて次のラインの画像データのアクセスを行う回路である。
【0029】
図1において描画装置401は、DRAM402に画像データを書き込む装置であり、この描画装置401は、CPU、DMA(direct memory access)コントローラ、圧縮伸長エンジン、描画エンジン等から構成される場合もある。表示装置403はカソードレイチューブ(CRT)または液晶ディスプレイ(LCD)等の装置であり、描画装置401によってDRAM402に書き込まれた画像データを表示する。この表示装置403は定期的に画素データのリフレッシュを行う必要がある。この為、表示制御装置404は、周期的にDRAM402より画像データを読み込み、表示装置403に適した画像データフォーマットに変換して、表示装置403に出力し続ける。
【0030】
以上の説明の様にDRAM402に対して描画装置401と表示制御装置404がアクセスする。アービトレーション回路405は描画装置401と表示制御装置404からのアクセスのうちどちらを有効にするかを決定し、DRAM402へのアクセスを行う。
【0031】
表示制御装置404はDRAM402の全画面分の矩形領域のデータを周期的に読み込むが1画面分の画像データを読み込む手順は図2のフローチャートに従って行う。描画装置401は矩形領域の描画、コピー、矩形領域の画像を読み込み加工したデータを矩形領域に描き込む、矩形領域のデータを読み込み画像圧縮を行う、圧縮された画像データを伸長し矩形領域に描画等矩形領域の読み書きを行うが、このアクセスの手順も図2のフローチャートに従って行う。
【0032】
図2は本実施形態の画像の矩形領域にアクセスする場合の処理手順を示すフローチャートである。図2においてaはアクセスを行おうとしている矩形領域のライン番号を表している。例えばm pixel × n lineの矩形領域にアクセスする場合aは1からnの値をとる。Aはアクセスを行ったDRAM402のアドレスを表し、NextAは次にアクセスするDRAM402のアドレスを表す。
【0033】
まずステップ501でラインアクセス制御回路407は、DRAM402に対するアクセスを矩形の1ライン目から行う為に、アクセスを行う矩形領域のライン番号であるaを1とする。次に、ステップ502においてDRAM402に対してプリチャージを行い、RASをアクティブにすると共に現在アクセスしようとしているaライン目の先頭アドレスのRow AddressをDRAM402に対して出力する。
【0034】
次にステップ503においてCASをアクティブにすると共にaライン目の先頭アドレスのColumn AddressをDRAM402に対して出力してaライン目の先頭アドレスにアクセスする。そして、今アクセスしたaライン目の先頭アドレスをAの値とする。その次のステップ504ではアドレスAがaライン目の終了アドレスかどうかを調べる。つまり、m pixel × n lineの矩形領域にアクセスしている場合、Aがaライン目のmピクセル目のデータのアドレスであるかどうかを調べる。その結果、等しければステップ508に進み、異なればステップ505に進む。
【0035】
ステップ505ではaライン目でアクセスの終了したアドレスAの次にアクセスするアドレスNextAを算出する。1ラインのデータは連続したアドレスに格納されているとNextA = A + 1となる。
【0036】
次にラインアクセス制御回路407によって、現在アクセス中の装置によるDRAM402へのアクセスを続けるか、プリチャージを行うべきか判定してDRAM402へのアクセスを行う。
【0037】
ステップ506においてラインアクセス制御回路407は、AとNextAのRow Addressが等しいかどうかを調べる。等しければアドレスNextAにアクセスする為、ステップ507に進む。異なればアクセスを行おうとしている矩形領域の中のアドレスAとRow Addressの等しい部分は全てアクセスしたことになるのでステップ510に進む。
【0038】
ステップ507でラインアクセス回路406は、NextAのCASをアクティブにすると共にColumn Addressを出力し、アドレスNextAにアクセスする。そして、NextAにアクセスしたことを表す為、A = NextAとし、ステップ504に戻る。同一ライン上のRow Addressの等しい部分にアクセスしている間は、ステップ504からステップ507を繰り返し行うことになり、プリチャージやRow Addressの出力を行うこと無く、連続してColumn Addressを出力する。この為、無駄なプリチャージ、Row Addressの出力を避けることが可能となり、システム性能を向上させることが出来る。
【0039】
ステップ504からステップ507を繰り返し、aライン目の最後までアクセスしたかどうかをステップ504で判定し、aライン目の最後までアクセスした場合にはステップ508に進む。
【0040】
ステップ508ではaライン目がアクセスを行おうとしている矩形領域の最終ラインかどうかを調べる。例えばm pixel × n lineの矩形領域のアクセスを行っていたとするとa == nであるかどうかを調べる。もし、aライン目がアクセスを行っている矩形領域の最終ラインであったとすると、既にステップ504でaライン目のアクセスは終了したことが分かっているので、矩形領域全てのアクセスが終了したことになる。aライン目がまだアクセスを行っている矩形領域の最終ラインでなかったとすると、まだアクセスする領域が残っているのでステップ509に進む。ステップ509ではaライン目の次のラインをアクセスする為、a = a + 1としNextAを次のラインの先頭アドレスとしてステップ506へ進む。
【0041】
この様にラインが変わった場合でのステップ506においてアクセスの終わったアドレスAと次にアクセスしようとしているアドレスNextAのRow Addressが等しいかどうかを判定するので、アクセスを行おうとしている矩形領域のうちRow Addressの等しい部分に対して連続してColumn Addressを出力し続けてアクセスすることが出来る。
【0042】
アクセスを行おうとしている矩形領域のRow Addressの等しい部分にアクセスしている間はステップ504からステップ509までの処理を繰り返し行う。AとNextAのRow Addressが異なるということは、アクセスを行おうとしている矩形領域のAとRow Addressの等しい部分は全てアクセスしたことを表している。これはステップ506で判定され、AとNextAのRow Addressが異なる場合にはステップ510へ進む。
【0043】
ステップ510では現在DRAM402にアクセスしている装置とは異なる装置によるアクセス要求があるかどうかを調べる。この判定はアービトレーション回路405によって行われ、例えば表示制御装置404がアクセスしている場合ならば描画装置401のアクセス要求があるかどうかを調べる。もし、描画装置401のアクセス要求が無ければ続けてアクセスを行う為、ステップ511に進む。
【0044】
描画装置401のアクセス要求があれば一旦表示制御装置404のアクセスを中断して描画装置401によるDRAM402に対するアクセスを開始させる。この場合、表示制御装置404はステップ512に進んで描画装置401のアクセスが中断または終了するまで待機し、描画装置401のアクセスが中断または終了したらステップ511に進んで表示制御装置404のアクセスを再開する。
【0045】
ステップ511ではプリチャージを行い、NextAのRow Addressを出力する。ステップ510及びステップ512の動作に関しては表示制御装置404がDRAM402にアクセスする場合について説明したが、描画装置401がDRAM402にアクセスする場合でも同様である。この様に、AとNextAのRow Addressが異なる時にアクセスを中断し、アクセス権を他の装置に渡すことによって無駄なプリチャージ等を行わずに済む様にしている。
【0046】
本実施形態のメモリアクセス方法を説明するに当り、例として図1の装置においてDRAM402にバス幅を32bitで1Row Addressのサイズが2048byteとなるSDRAMで使用し、表示装置403には解像度640×480、色の深さ8bit per pixelの表示を行った場合を考える。
【0047】
図3は本実施形態のDRAM402への画像データの格納例1を示す図である。この場合、1ラインのデータは640byteであり、1Row Addressに3.2ライン分のデータを格納することが出来るので図3に示す様に1画面のデータをDRAM402に格納する。1ライン目から3ライン目までのデータと4ライン目の先頭1/5のデータをRow Address R1に格納し、4ライン目の後部4/5のデータと5ライン目と6ライン目のデータと7ライン目の先頭2/5のデータをRow Address R2に格納し、同様に7ライン目以降のデータも1Row Addressに3.2ライン分のデータを格納し、Row Address R150には477ライン目の後部1/5のデータと478ライン目から480ライン目までのデータを格納する。
【0048】
図4は本実施形態の図3の画像データにアクセスする場合のタイミングを示す図である。表示制御装置404は表示装置403のリフレッシュの為、1ライン目の画像データから順に480ライン目の画像データまで読み込む動作を繰り返すのであるが、その時のDRAM402へのリードアクセス方法を図4は示している。この例では32bitバスに1Row Addressが2048byteとなるDRAMを接続しているので1Row Address全てのデータには512回(512=2048/(32/8))でアクセス出来る。この事を利用し、1ライン目から4ライン目の先頭1/5までのデータを連続して読み込む。
【0049】
このアクセスは図4に示す様にまず1ライン目から4ライン目の先頭1/5のデータを格納するRow Address R1を出力すると共にバンクアクティブコマンド[ACTV]を出力する(RASをアクティブにする)。次にRASからCASまでのディレイ時間を空けてリードコマンド(CASをアクティブにする)と1ライン目から4ライン目の先頭1/5までのColumn Addressを連続して出力する。そして、プリチャージを行う。この3.2ライン分のデータを読み出すのにかかる時間は数5の様になる。
【数5】
tRCD + tPR + 512 × tCK
【0050】
同様に4ライン目の後部4/5のデータから480ライン目のデータまで3.2ライン分のデータを連続して読み込む。この様なアクセス方法によって1画面のデータを読み込む為に要する時間は数6で表せる。
【数6】
150×(tRCD + tPR + 512×tCK)
【0051】
ここに、tRCDはRASからCASまでのディレイ時間、tPRはプリチャージ時間、tCKはクロックのサイクル時間である。図4のタイミング図はクロック同期式のDRAMである。SDRAMをBurst length = 1のモードで動作させた場合を例にタイミング図を書いているがEDO-DRAM(Extended Data Out DRAM),Fast page DRAM等のページモードでも同様のアクセスを行うことが出来る。EDO-DRAM,Fast page DRAMを用いた場合tCKはページモードサイクル時間(tPC)に相当する。
【0052】
従来のアクセス方法による時間と比較すると数7の所要時間が短縮される。
【数7】
(480-150)×(tRCD + tPR)
【0053】
これは3.2ライン分のデータを連続して読み込み従来の方法だと3.2回分RASからCASへのディレイ時間、プリチャージ時間を必要としていたところを1回分で済む様になりその時間が約1/3に削減できたからである。もしSDRAMをCAS Latency = 3で動作させたとするとtRCD = 3cycle, tPR = 3cycleであるので1フレームあたり数8の様に削減効果がある。
【数8】
(480-150)×(3 + 3) = 1980cycle
【0054】
図5は本実施形態のDRAM402への画像データの格納例2を示す図である。図3の例では1画面の画像データを隙間を空けず連続して格納し複数ラインのデータが1Row Addressに格納する場合のメモリマップを示したが図5の様に各ライン毎に隙間を空け、数ラインに一回ラインの境界がRow Address境界に一致する様に格納しても良い。図5の例では1ライン目から3ライン目までのデータをRow Address R1に格納し、4ライ目から6ライン目までのデータをRow Address R2に格納し、以下同様に格納してRow Address R160に478ライン目から480ライン目までのデータを格納している。この様にラインの境界をRow Addressの境界とするとアクセス制御が単純になる。
【0055】
図6は本実施形態の図5の画像データにアクセスする場合のタイミングを示す図である。表示制御装置404は表示装置403のリフレッシュの為、 1ライン目の画像データから順に480ライン目の画像データまで繰り返し読み込む時のDRAM402へのリードアクセス方法を図6は示している。図6に示している Address C1SとC1Eは1ライン目のデータの先頭と終了アドレスのColumn Addressを示し、C2SとC2Eは2ライン目のデータの先頭と終了アドレスのColumn Addressを示し、C3SとC3Eは3ライン目のデータの先頭と終了アドレスのColumn Addressを示している。
【0056】
この時のアクセスは図6に示す様にまず1ライン目から3ライン目までのデータを格納するRow Address R1を出力すると共にバンクアクティブコマンド[ACTV]を出力する(RASをアクティブにする)。
【0057】
次にRASからCASまでのディレイ時間を空けてリードコマンド(CASをアクティブにする)を出力し、まず、連続して1ライン目データの先頭から終了までのColumn Addressを連続して出力する。次に、1ライン目の終了アドレスC1Eと2ライン目の先頭アドレスは連続するアドレスではないが、更に続けて2ライン目のデータの先頭から終了までColumn Addressを連続して出力する。3ライン目の2ライン目と同様に連続してColumn Addressを出力する。同様に4から6ライン目のデータも連続しているわけではないが最初に1度Row Address R2を出力した後連続して各ラインのデータのColumn Addressを出力する。以下同様に480ライン目まで3ライン分ずつデータをまとめてアクセスする。
【0058】
図7は本実施形態のDRAM402への画像データの格納例3を示す図である。図3、図5の例では1Row Addressに複数ラインのデータを格納した場合について説明した。しかし、非常に大きな解像度の表示を行う場合1Row Addressに1ラインのデータを格納しきれない場合がある。この様な場合、図7に示す様に1ラインのデータが複数のRow Addressにまたがって格納される。
【0059】
図7の例では、mピクセル×nラインの矩形領域の1ライン目のデータをRow Address R1とR2に格納している。2ライン目のデータはRow Address R3とR4に格納し、以下同様に1ラインのデータは2Row Addressにまたがって格納され、nライン目のデータはRow Address Rn-1とRnに格納される。
【0060】
図8は本実施形態の図7の画像データにアクセスする場合のタイミングを示す図である。図8は表示制御装置404または描画装置401が図7の様に格納された画像データのmピクセル×nラインの矩形領域にアクセスする様子を示している。
【0061】
図8においてC1FSは1ライン目の先頭データのColumn Address,C1FEは1ライン目の前半Row Address R1に書き込まれた最終データのColumn Address,C1BSはRow Address R2に格納される1ライン目後半データの先頭データのColumn Address,C1BEは1ライン目後半データの最終データのColumn Addressを示している。
【0062】
まず、1ライン目のデータの前半を格納するRow Address R1を出力し、1ライン目の前半データのColumn Addressを連続して出力し、次に1ライン目のデータの後半を格納するRow Address R2を出力し、2ライン目後半のデータのColumn Addressを連続して出力する事によって2ライン目の後半のデータにアクセスする。以下2ライン目以降も同様に1ラインのデータを前半と後半に分けて同一Row Addressに含まれるデータに連続してアクセスを行い、nライン目のデータまでアクセスする。
【0063】
この様にアクセスすれば同一Row Addressに含まれるデータを全て連続してアクセスする為、無駄なプリチャージ及びRow Addressの供給は発生せず最も効率の高いアクセスとなる。
【0064】
今迄主に、表示制御装置404によるDRAM402に格納された画像データの矩形領域に対するリードアクセスについて説明を行ってきた。次に、描画装置401によるDRAM402に格納された画像データの矩形領域に対する、リード、ライトアクセスについて図9から図14を用いて説明する。
【0065】
図9は本実施形態のDRAM402に格納された画像の矩形領域を示す図である。画像データは図9に示す様にaライン目からa+2ライン目までの3ライン分のデータがRow Address Raに格納され、以下同様に3ライン分ずつのデータがRow Address Ra3,Ra6,Ra9に格納される。
【0066】
REC1,REC2は5ピクセル×4ライン矩形領域を表し、C1は矩形領域REC1の1ライン目の左3ピクセル分のデータを格納するColumn Address、C2は矩形領域REC1の1ライン目の右2ピクセル分のデータを格納するColumn Address、C3は矩形領域REC1の2ライン目の左1ピクセル分のデータを格納するColumn Address、C4は矩形領域REC1の2ライン目の右4ピクセル分のデータを格納するColumn Address、C5は矩形領域REC1の3ライン目の左4ピクセル分のデータを格納するColumn Address、C6は矩形領域REC1の3ライン目の右1ピクセル分のデータを格納するColumn Address、C7は矩形領域REC1の4ライン目の左2ピクセル分のデータを格納するColumn Address、C8は矩形領域REC1の4ライン目の右3ピクセル分のデータを格納するColumn Address、C9は矩形領域REC2の1ライン目の左1ピクセル分のデータを格納するColumn Address、C10は矩形領域REC2の1ライン目の右4ピクセル分のデータを格納するColumn Address、C11は矩形領域REC2の2ライン目の左4ピクセル分のデータを格納するColumn Address、C12は矩形領域REC2の2ライン目の右1ピクセル分のデータを格納するColumn Address、C13は矩形領域REC2の3ライン目の左2ピクセル分のデータを格納するColumn Address、C14は矩形領域REC2の3ライン目の右3ピクセル分のデータを格納するColumn Address、C15は矩形領域REC2の4ライン目の左1ピクセル分のデータを格納するColumn Address、C16は矩形領域REC2の4ライン目の右4ピクセル分のデータを格納するColumn Addressを表す。
【0067】
また、矩形領域REC1の1ライン目と2ライン目はRow Address Ra3に格納されており、矩形領域REC1の3ライン目と4ライン目と矩形領域REC2の1ライン目から3ライン目まではRow Address Ra6に格納され、矩形領域REC2の4ライン目はRow Address Ra9に格納されている。図9では複数ピクセルのデータが同一のColumnアドレスに格納されているが、これはDRAM402は32bitのバスに接続され、表示の色の深さを8bit per pixelとしている為、一つのアドレスに4pixelのデータが格納されるとしているからである。
【0068】
図10は本実施形態の図9の矩形領域REC1の画像データを読み出す場合のタイミングを示す図である。矩形領域REC1のデータの読み出しは図10に示す様に、まずREC1の1ライン目と2ライン目のデータを格納しているRow Addressを出力し、1ライン目と2ライン目のデータの格納されているC1からC4までのColumn Addressを連続して出力して1ライン目から2ライン目までのデータを読み込む。この時一つのアドレス当たり32bit4pixel分のデータが読み込まれるが矩形REC1内に入っているpixelのデータのみを処理には使用する、またはCAS、RE、DQM等の制御により必要としているピクセルのデータだけ読み込んでも良い。
【0069】
次に、矩形領域REC1の3ライン目から4ライン目のデータは1ライン目から2ライン目までのデータとは異なるRow Addressに格納されているのでプリチャージを行い、Row Address Ra6を出力してから、3ライン目から4ライン目までの格納されているC5からC8までのColumn Addressを連続して出力して3ライン目から4ライン目までのデータを読み込む。この様に、4ラインの矩形領域にアクセスする場合、従来は4回プリチャージ、とRow Addressの出力を行っていたところ2回で済む。
【0070】
図11は本実施形態の図9の矩形領域REC2に画像データを書き込む場合のタイミングを示す図である。同様にライトの場合も図11に示す様に、まず、REC2の1ライン目から3ライン目までのデータを格納しているRow Address Ra6を出力してから、C9からC14のColumn Addressを出力して1ライン目から3ライン目までのライトを行う。次に、プリチャージを行い、REC2の4ライン目のデータを格納しているRow Address Ra9を出力してから、C15,C16を連続して出力してREC2の4ライン目のライトを行う。この様にライトの場合もリードの場合と同様にプリチャージ、Row Addressの出力の回数が削減される。
【0071】
描画装置401は図10や図11の例の様に矩形領域のリードやライトを個々に行うだけではなく矩形領域のコピーや複数の矩形領域のデータを読み込み演算を行った結果の矩形領域への書込み等を行う場合がある。例として、図9の矩形領域REC1のデータを矩形領域REC2にコピーする場合を考える。この場合、図10の様に矩形領域REC1のデータを読み込んだ後図11の様にそのデータを矩形領域REC2に書き込んでも良い。しかし、図9の矩形領域REC1と矩形領域REC2の様にアクセスを行おうとしている複数の矩形領域の格納されているRow Addressに共通なアドレスがある場合、更に高速化が可能である。
【0072】
図9の例では矩形領域REC1の3ライン目と4ライン目が格納されるRow Addressと矩形領域REC2の1ライン目から3ライン目までが格納されるRow AddressはRa6で共通である。この為、矩形領域REC1の3ライン目から4ライン目のリードと矩形領域REC2の1ライン目から3ライン目までのライトを連続して行えば、そのリードとライトの間にはプリチャージ、Row Addressの出力は不要である。この様な考えに基づき矩形領域REC1のデータを矩形領域REC2にコピーする時のDRAM402にアクセスする様子を図12に示す。
【0073】
図12は本実施形態の図9の矩形領域REC1の画像データを矩形領域REC2にコピーする場合のタイミングを示す図である。図12ではREC1の3ライン目から4ライン目までのリードを行う為、C5からC8のColumn Addressを連続して出力した後、リードが完了するまでtCL(CAS Latency)を空けてその後連続して、C9からC14のColumn Addressを出力して矩形領域REC2の1ライン目から3ライン目までのライトを行っている。この為、ライトを始める時のプリチャージ、Row Addressの出力を省く事が出来、矩形領域のリード・ライトに要するサイクル数が減る。
【0074】
図12の様にリードとライトの間であってもアクセスを行おうとしている矩形領域のRow Addressの等しい部分のアクセスを連続して行う時のDRAM402へのアクセスの手順を図13、図14に示す。
【0075】
図13は本実施形態の画像の矩形領域にリードとライトを行う場合の処理手順を示すフローチャートである。図13の手順は図2のアクセス手順と一致する手順が多く図13のステップ1601からステップ1612は図2のステップ501からステップ512に対応する。図2のアクセス手順と異なるのはステップ1606でAとNextAのRow Addressが異なると判定された場合、ステップ1613へ進み、更にステップ1614を通ってからステップ1610に進む点である。
【0076】
ステップ1613でラインアクセス制御回路407は、アクセスを行おうとしている複数の矩形領域の中にAと等しいRow Addressを含む領域に格納された矩形領域があるかを調べる。Aと同一アドレスに格納された矩形領域が無ければステップ1610に進み、あればステップ1614に進む。
【0077】
ステップ1614では、アクセスを行おうとしている矩形の中でAと同一のアドレスに格納されている部分に対してアクセスを行う。この部分の処理は図12の矩形REC2の1ライン目から3ライン目までのライトを行う為、C9からC14のColumnアドレスを連続して出力する部分に相当する。この処理は図14のフローチャートに従って行われる。このステップ1614においてAと同一のRow Addressに格納されている矩形のデータ全てにアクセスしたらステップ1610に進む。
【0078】
最後に図13のフローチャートで着目している矩形のアクセスが全て終了したらステップ1615に進み、他の矩形へのアクセスでステップ1614で行われなかった分のアクセスを行う。これは図12の矩形REC2の4ライン目のライトを行う為、プリチャージを行い、REC2の4ライン目のデータを格納するRow Address Ra9を出力し、REC2の4ライン目のデータのColumnアドレスC15,C16を連続して出力する部分に相当する。
【0079】
図14は本実施形態の図13のステップ1614の処理手順を示すフローチャートである。図14の手順も図13同様に図2のアクセス手順と一致する手順が多く図14のステップ1701、ステップ1703からステップ1709は図2のステップ501、ステップ503からステップ509に対応する。図2のアクセス手順と異なるのはステップ1701の後、プリチャージ、Row Addressの出力を行わず、ステップ1703へ進む点と、ステップ1706の判定結果、AとNextAのRow Addressが異なる場合、Row Addressの異なる分へのアクセスは行わず終了する点である。
【0080】
図12の例では二つの矩形のリードとライトをそれぞれ行う場合について示したが、二つの矩形のリードを行う場合、二つの矩形のライトを行う場合、二つの矩形だけではなく複数の矩形のリード・ライトが行われる場合でも同様である。図9の様にリード・ライトを行う矩形領域のRow Addressが一致する場合はマルチウインドウ表示システム等で良く発生する。例えばウインドウを少しだけ移動させた場合、ウインドウの表示されている矩形領域のデータを少しだけずれた矩形領域にコピーする事になるが、この時、コピー元とコピー先の矩形領域の大部分は重なっており、これらの部分の画像データを格納するRow Addressは同一である。この為、Row Addressの等しいコピー元の矩形データのリードとコピー先への矩形データのライトを連続して行えばその間にプリチャージやRow Addressの出力をせずに済む。スクロールやパンニング、マウスカーソルの移動等も同様である。
【0081】
ここまでの例では矩形領域へのアクセスを矩形領域内のアドレスの小さいデータから順にアクセスを行っていたがこの順番は逆転していても良い、また、アドレスの順序とは無関係な順序でも構わない。どの様な順序でアドレスを発生しても、同一Row Addressに含まれる画像データを連続してアクセスする事によって、無駄なプリチャージやRow Addressの出力を避ける事が出来る。例えば、表示装置のリフレッシュを行うに当り、今迄と同様の表示ではなく表示データを90度回転した表示を行う場合を考える。
【0082】
図15は本実施形態の通常表示時の画像データの読み出し順と表示の概要を示す図である。通常、図15に示す様に表示制御装置404はDRAM402に格納された画像データの1ライン目の左端から右端のデータ、2ライン目の左端から右端のデータ、・・・という様な順にラインの順番に従ってデータを読み込み表示装置403に出力している。
【0083】
図16は本実施形態の回転表示時の画像データの読み出し順と表示の概要を示す図である。回転表示を行う場合は図16に示す様に列単位で画像データを読み込む。
【0084】
例えば、表示制御装置404はm pixel×n lineの画像データを表示装置403に送るに当り画像データの1列目を表示装置の1ライン目のデータとして、2列目のデータを2ライン目のデータとして、・・・n列目のデータをnライン目のデータとして送る。この様な順で、表示制御装置404が画像データをDRAM402より読み込み、表示装置403に出力する事によって、DRAM402に格納されたm pixel×n lineの画像を右90度回転したn pixel×m lineの画像が表示装置403に表示される。この様な回転を伴う表示は、横型の表示装置向けに開発された表示処理手順を、縦型の表示装置を用いた携帯端末装置に流用する場合に行われており、本実施形態のメモリアクセス方法を用いることにより、前記携帯端末装置でのアクセス効率を向上させることが出来る。
【0085】
以上、説明した様に回転表示を行う場合、列毎に表示データを読み込むのであり、1列のデータは1pixel×n lineの矩形領域のデータと考えられ、従来の様にライン単位で画像データへアクセスすると1列のデータにアクセスするのにn回プリチャージが発生する。
【0086】
しかし、図16に示す様に3ライン分のデータが同一Row Addressに格納されているとすると、本実施形態の同一Row Addressに格納されている画像データに連続アクセスを行い、そのアクセスをページモードまたはバーストモードを用いて行う方法を用いればn/3回しかプリチャージ等のオーバーヘッドは発生しない。更に表示制御装置にC(正の整数)列分のBufferを持たせればC列分のデータを一度にまとめて読み込むことが出来る。C列分のデータ中3ラインのデータが同一Row Addressに格納されているので3×C pixel 分のデータに連続アクセスすることによりn/(3×C)回までプリチャージ及びRow Addressの供給回数を削減出来る。また、例の様に右90度回転だけではなく左90度回転や、左右反転や上下反転を行う場合でも同様に可能である。
【0087】
図9から図14の例では描画装置401がDRAM402に格納画像の矩形領域にアクセスする場合のアクセス方法について説明したが、描画装置401は矩形領域へのアクセスのみではなく、直線や曲線の描画、文字の描画等、矩形とは異なる形の領域にアクセスする場合がある。本実施形態では、直線や曲線等の矩形とは異なる形の領域にアクセスする場合も同一Row Addressに格納されるデータへのアクセスを連続して行う。そして、連続するアクセスをDRAMのページモードやバーストモードを利用して行いプリチャージ等のオーバーヘッドを削減し、アクセスサイクル数を削減する。
【0088】
直線を描画する為のアルゴリズムとしてはブレゼンハムのアルゴリズム等が良く知られている。従来、直線を描く場合ブレゼンハムの直線描画のアルゴリズム等を用いて1ピクセルずつシングルアクセスを行い描画を行っていた。例えばSDRAMをCAS Latency = 3cycleで使用した場合、プリチャージ時間(tPR)は3cycle、RASからCASまでのディレイ時間(tRCD)は3cycle、アクセス時間は1cycleであり、一ピクセル当たり7cycleかかり、1cycleのアクセス時間に対して6倍もの時間がプリチャージ等のオーバーヘッドに費やされ、非常に効率が悪かった。この様に、従来の方法ではプリチャージ等のオーバーヘッドが大きく描画の為に多くのサイクルを必要としていた。
【0089】
以下に、画像上の直線領域にアクセスする場合の本実施形態のDRAMアクセス方法について図17から図19を用いて説明する。
【0090】
図17は本実施形態の直線描画を行う場合の処理手順を示すフローチャートである。図17においてPは描画を行おうとしているピクセル、NextPは次に描画を行おうとしているピクセルを表している。
【0091】
直線を描画する場合、まず、ステップ1801においてピクセルPを直線描画の始点とする。そして、始点を描画する為にステップ1802において、プリチャージを行いピクセルPのRow Addressを出力する。次にステップ1803に進みブレゼンハム等の直線描画アルゴリズムを用いピクセルPの次に描画するピクセルNextPを算出する。ブレゼンハムの直線描画アルゴリズムは描画を行う直線の始点から順に直線の傾きより順に終点に向かって描画を行うピクセルを発生するアルゴリズムである。
【0092】
ステップ1803の後、ステップ1804に進みピクセルPとピクセルNextPのRow Addressが異なっているかどうか比較する。これは、DRAMの1アドレスに複数ピクセルのデータが格納される場合があるからである。例えば32bitバスにDRAMが接続され、1ピクセルのデータ量が8bitで表現される場合、1アドレスに4ピクセル分のデータが格納される。
【0093】
もし、ステップ1804の比較の結果ピクセルPとピクセルNextPのアドレスが等しかった場合、これらのピクセルは1度のアクセスで描画出来るのでステップ1803に戻り更に次のピクセルを求める。反対にステップ1804の比較の結果、ピクセルPとピクセルNextPのアドレスが異なる場合はステップ1805に進み、ピクセルPのColumn Addressを出力し、ピクセルPと同一のアドレスに格納されるピクセルの描画を行う。
【0094】
次に、ステップ1806に進みPが終点であるかどうかを調べ終点であればもう既に終点までステップ1805で描画を行った事になるので終了する。まだ、終点まで描画を行っていない場合はステップ1807に進む。
【0095】
ステップ1807においてピクセルPとピクセルNextPのRow Addressが等しいかどうか比較する。もし、等しければピクセルNextPへのアクセスはプリチャージ等を行わずピクセルPへのアクセスに連続してアクセス出来るのでステップ1808へ進、 ピクセルPをNextPに置き換え、ステップ1803へ戻り、ステップ1804、ステップ1805と進みピクセルPの描画を行う。
【0096】
この様にステップ1803で算出した次に描画するピクセルNextPと現在描画するピクセルPが同一Row Addressに含まれるかどうかをステップ1807で比較して同一である限りステップ1803にプリチャージ等を行わず、すぐに戻るので同一Row Addressに含まれるピクセルに対して連続アクセス出来る。
【0097】
ステップ1807においてピクセルPとピクセルNextPのRow Addressが異なっていた場合、ピクセルNextPの描画を行う為にはプリチャージを行いRow Addressを出力する為のオーバーヘッドが入るのでステップ1809に進み、現在アクセスを行っている装置とは異なる装置からのアクセス要求があるかどうかを調べ、あればステップ1810に進み、処理を一旦中断して異なる装置にメモリアクセスを行わせその終了を待つ。
【0098】
他の装置のアクセスが終了してからステップ1811へ進み、NextPへのアクセスが出来る様に、プリチャージを行い、NextPのRow Addressを出力し、ステップ1811へ進む。もし、ステップ1809において異なる装置からのアクセス要求が無ければ、続けてピクセルNextPにアクセスする為、ステップ1811へ進む。
【0099】
図17の様な手順で描画を行う事によって同一Row Addressに含まれるデータをまとめて連続アクセスし、無駄なプリチャージ等を発生させず、アクセスサイクル数削減を実現する。
【0100】
図18は本実施形態の直線を示す画像データの格納例を示す図である。例えば、図18に示す様にピクセルP1からピクセルP10までの10ピクセルの斜めの直線を描く場合、従来の方法では10回のシングルアクセスを行うので数9の時間がかかっていた。
【数9】
10 × (tPR + tRCD + tCK)
【0101】
図19は本実施形態の直線描画を行う場合のアクセスのタイミングを示す図である。本実施形態の方法を用いると図19に示す様なアクセスとなり、数10の時間でアクセス出来る。
【数10】
3× (tPR + tRCD ) + (3 + 3 + 2)×tCK
【0102】
tPR+tRCDの発生回数は10回から3回に減っているが、これは直線を描画する範囲が図18に示す様に3Row Addressにしかまたがっていないからである。また、tCKの回数も10回から8回(8=3+3+2)に減っているが、これは複数ピクセルが同一アドレスに格納されている部分を1回のアクセスで済ませたからである。
【0103】
図18においてピクセルP1,P2,P3は同一Row Address Ra3に格納されそれぞれのピクセルのColumn AddressはC1,C2,C3である。ピクセルP4,P5,P6,P7も同一Row Addressに格納されておりそのRow AddressはRa6であり、ピクセルP5とP6は同一アドレスに格納されておりそのColumn AddressはC5である。
【0104】
また、ピクセルP4,P7のColumn AddressはC4,C6である。ピクセルP8,P9も同一アドレスに格納されており、そのRow AddressはRa9でありColumn AddressはC7である。終点であるピクセルP10の格納されているRow AddressはピクセルP8,P9の格納されているRow Addressと等しくRa9であり、Column AddressはC8である。この様に格納されるピクセルP1からP10を順に描画する時の様子が図19のタイミングチャートである。
【0105】
以上、画像の矩形領域、直線にアクセスする場合について本実施形態のアクセス方法について説明した。しかし、本実施形態のアクセス方法は矩形領域や直線にアクセスする場合のみではなく、垂直な直線、水平な直線、任意の方向の直線、円、曲線、複数の直線や曲線、直線や曲線で囲まれる領域でも同様に同一Row Addressに格納されるデータに連続してアクセスする事によってプリチャージ等のオーバーヘッドを削減する事が出来、アクセスサイクル数を減らす事が出来る。
【0106】
今迄、説明したDRAMへのアクセス方法はアクセスを行おうとしている範囲の内、同一Row Addressに格納されるデータへのアクセスは連続してアクセスして無駄なプリチャージ等を発生させない方法について説明した。この方法は画像を格納したDRAMに対するアクセスのスループットを最も高くする事が出来る。
【0107】
また、多くの場合、画像データは大きく、レイテンシが大きくともプリチャージ等のオーバーヘッドを減らし、スループットを高めた方が全体としての処理時間が短くなり、システム性能が上がるので本実施形態のDRAMアクセス方法は非常に有効である。しかし、リアルタイム性を必要とするシステムでは、今迄説明した一つの装置がDRAMを1Row Addressアクセスする間、他の装置を待機させてしまう様な方法を取ると、その待機時間の為、リアルタイム性が損なわれる場合がある。例えば、1Row Address当り1024Column AddressのDRAMを使用した場合、約1024cycleもの間一つの装置がDRAMを占有してしまう場合がある。
【0108】
そこで、ある程度の回数まで、連続アクセスした時、もし他の装置からのDRAMへのアクセス要求があった場合、一端アクセスを中断して他の装置にDRAMへのアクセス権を渡す事によって他の装置の待機サイクル数を削減する。この方法によりリアルタイム性とDRAMへのアクセス数の削減のバランスを取る事によって、システム全体としての性能を向上させる事が可能である。連続アクセス回数を制限した場合の画像の矩形領域、直線へのアクセス方法について図20から図23を用いて説明する。
【0109】
図20は本実施形態の画像の矩形領域にアクセスし、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。図20は画像の矩形領域へのアクセスの手順を示しているが、図2のアクセス手順と一致する手順が多く図20のステップ2101からステップ2112は図2のステップ501からステップ512に対応する。図2のアクセス手順と異なるのは連続するアクセス数を数える為、cという変数と連続するアクセス回数の上限を表す定数kを加えた点である。
【0110】
まず、ステップ2101においてこれよりアクセスを開始する為、まだアクセス回数は0回であるのでc=0とする。そして、ステップ2103においてColumn Addressを出力し最初のアクセスを行うので1回アクセスした事を表す為、c=c+1とする。そして、図2の場合とは異なりステップ2105またはステップ2109の後はステップ2113に進む。
【0111】
ステップ2113では連続するアクセス回数がその上限に達しているかどうか調べる。もし、c<kであれば、まだ上限まで達しておらず連続アクセス可能であるのでステップ2106へ進み、図2の場合と同様に連続アクセスを続け、Column Addressを出力してアクセスを行うステップ2107において連続アクセス数をカウントする。もし、c<kでなければ連続アクセス回数の上限まで達した事を表しているので、ステップ2114に進みc=0と連続アクセス回数を0に戻す。
【0112】
次にステップ2115に進み現在アクセスしている装置とは異なる装置のアクセス要求があるかどうかを調べ、もし、アクセス要求が無ければ続けて連続アクセスしても良いのでステップ2106へ進む。この様に、もし、他の装置からのアクセスが無ければ図2と同じ手順に進むので、図2と同じアクセスサイクル数でアクセス出来る。
【0113】
ステップ2115において、現在アクセスしている装置とは異なる装置からのアクセス要求があれば、ステップ2112に進み、処理を一時中断し他の装置にDRAMへのアクセス権を渡す。図2の例ではステップ2112へ進むのは必ずRow Addressの変更があってプリチャージの必要な場合であったが今回は連続アクセス数の上限に達してこのステップ2112に進んでいる場合もあり、ステップ2112の後、プリチャージを行わない為の制御が必要である。
【0114】
そこで、ステップ2112の後ステップ2116へ進みステップ2112で行われた異なる装置による最終アクセスとNextAのRow Addressを比較する。これらのRow Addressが等しければプリチャージを行う必要はないのでステップ2107に進み、プリチャージを行わず連続してNextAにアクセスし、異なればステップ2111へ進んで、プリチャージ、Row Addressの出力を行ってからステップ2107へ進んでNextAにアクセスする。この様にk回連続アクセスする度に他の装置のアクセス要求をチェックしその要求があれば他の装置アクセスを行わせるので他の装置の最悪の待機サイクルはkサイクルで済む。
【0115】
図21は本実施形態の画像の複数の矩形領域のリードとライトを行い、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。図22は本実施形態の図21のステップ2214の処理手順を示すフローチャートである。図21及び図22の場合もそれぞれ、図13と図14とほぼ同様の手順でアクセスするのであるが、図20と同様に連続するアクセス回数を数える為の変数cと連続するアクセス回数を示す定数kを加え、図20のステップ2113からステップ2116に対応するステップを追加している。
【0116】
図21のステップ2216からステップ2219は図20のステップ2113からステップ2116に対応する。図22のステップ2315からステップ2318は図20のステップ2213からステップ2216に対応し、更に、ステップ2307、ステップ2311、ステップ2312は図20のステップ2107、ステップ2111、ステップ2212に対応しており、それぞれ図20の場合と同様に働いてk回連続アクセスする度に他の装置のアクセス要求をチェックし、要求があれば他の装置にアクセスを行わせ、要求が無ければ連続アクセスを続け、無駄なプリチャージ等の発生を防ぐ。
【0117】
図23は本実施形態の直線描画を行い、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。直線描画の場合も同様であり、そのDRAMアクセスの手順は図23に示す通りである。
【0118】
この場合も図20の場合と同様に連続するアクセス回数を数える為の変数cと連続するアクセス回数を示す定数kを加え、図20のステップ2113からステップ2116に対応するステップ2412から2415を追加している。そして、ステップ2401でcの初期化、アクセスを行うステップ2405で連続アクセス回数を表すcのカウントアップを行う様にしている。これにより、k回連続アクセスする度に他の装置のアクセス要求をチェックし、要求があれば他の装置にアクセスを行わせて他の装置の動作のリアルタイム性を保証し、要求が無ければ連続アクセスを続け、無駄なプリチャージ等のオーバーヘッドの発生を防いでいる。
【0119】
図20から図23の例ではk(0以上の正の整数)回同一Row Addressのアクセス領域に連続アクセスする方法について説明した。しかし、多くのDRAMのRow Addressのサイズは1024byteや2048byte等の2の正の整数乗であり、kで1Row Addressのサイズが割り切れない場合がある。この様な場合、連続するアクセスはk回まで行う事が出来ずRow Addressの境界に至ってしまい、連続するアクセスを中断してプリチャージ等を行わなければならなくなり、プリチャージ等のオーバーヘッドの発生回数が増加してしまう。
【0120】
この様な事を避ける為にはkを2の0以上の正の整数乗とし、アクセスの先頭Column Addressを2の0以上の正の整数乗とすれば良い。この様にすれば、一般的なDRAMの1Row Addressのサイズは2の0以上の正の整数乗であるので、k回の連続アクセスの境界はRow Addressの境界となり、常にk回の連続するアクセスを行う事が出来る。
【0121】
特に2の0以上の正の整数乗回連続するアクセスを行う場合で、アドレスが連続している場合はDRAMのファーストページモードまたはバーストモードを使用する事が出来、出力するColumn Addressはその連続するアクセスの先頭アドレスのみで良く、メモリバスのアドレスの変化回数を減らす事が出来る。この様にアドレスの変化回数を減らす事によりメモリバスを駆動する為の消費電力を削減する事が出来る。
【0122】
また、DRAMの中にはSDRAMの様に複数のバンクを持つDRAMがあるが、この様なDRAMを使用する場合はバンク毎に独立してRow Addressを比較すれば良い。例えばバンク1へのアクセス、バンク2へのアクセス、バンク1へのアクセス、バンク2へのアクセスの様にバンク1へのアクセスとバンク2へのアクセスが交互に発生した場合を考える。この場合、バンク1への2回目のアクセスを行うとき、1回目のバンク2へのアクセスのRow Addressとではなく1回目のバンク1へのアクセスのRow Addressと2回目のバンク1へのアクセスのRow Addressを比較して一致していればプリチャージ等を行わない。この比較は図2、図13、図14、図17、図20、図21、図22、図23のRow Addressの比較を行っている全てのステップに当てはまる。この様にする事によって異なるバンクに対するアクセスが交互に起こった場合、無駄なプリチャージを行わずに済む。この事は、図24の様な構成のシステムにおいてDRAM402にシステムプログラムやシステムプログラムの使用するデータをUMAのシステムで有効に利用出来る。
【0123】
図24は本実施形態のUMAを用いる画像表示システムの概略構成を示す図である。UMAの場合、CPU2501によるシステムプログラムやデータに対するアクセスと描画装置401や表示制御装置404による画像データに対するアクセスは交互に発生する。この様な時、システムプログラムと画像データを格納するバンクを別のバンクにしておけば異なるバンクへのアクセスが交互に発生する事になりCPU2501によるシステムプログラムに対するアクセスと描画装置401や表示制御装置404による画像データへのアクセスの切換時に無駄なプリチャージ等を発生せずに済む。
【0124】
前記の様に本実施形態の画像データを格納するDRAMへのアクセス方法では、従来の様に画像のラインやピクセル単位でアクセスするのではなく、同一Row Addressに格納される画像データをまとめて連続アクセスし、その連続アクセスをページモードまたはバーストモードアクセスを用いて行う。この事により無駄なプリチャージ等のオーバーヘッドサイクルを無くし、画像データへのアクセスサイクル数を削減させる。これにより、表示制御装置による表示装置リフレッシュの為のDRAMアクセスのメモリバス占有率を下げる事が出来、システム性能を向上させることが出来る。また描画装置においてもその描画速度を向上させることが出来る。特に、同一のRow Addressに格納される可能性の高いアイコンの様な小さい領域の表示単位へのアクセスを行う場合に効率的なアクセスを行うことが可能である。更に、本実施形態のDRAMへのアクセス方法では、連続するアクセスの長さを制限しているので、表示制御装置、描画装置、CPUは、お互いの処理を長い間待機させる事を防ぐ事が出来る。これによりシステム全体のバランスを良くし、応答性の良いシステムを構成する事が可能である。
【0125】
この様に本実施形態のDRAMアクセス方法を用いるとDRAMへのアクセスサイクル数を削減することが出来、アクセス速度は向上し、消費電力を低減させることができる。特にUMAのシステムでは表示装置のリフレッシュに要するメモリバスのバス占有率が下がり、表示の為にシステムプログラムの実行が妨げられることが減り、システム性能を向上させることが可能である。また本実施形態の方法は、表示データを回転して表示システム、頻繁に描画を繰り返すシステムや通信、圧縮伸張、音楽、音声、映像等の再生、認識等のプログラムが平行して実行されるシステムにおいて非常に有効である。特に、表示データを90度回転して表示する場合、大きく性能が向上する。
【0126】
以上説明した様に本実施形態のメモリアクセス装置によれば、Row Addressが等しい複数のラインの画像データのアクセスを連続して行うので、画像データへのアクセスサイクル数を削減することが可能である。
【0127】
【発明の効果】
本発明によればRow Addressが等しい複数のラインの画像データのアクセスを連続して行うので、画像データへのアクセスサイクル数を削減することが可能である。
【図面の簡単な説明】
【図1】本実施形態の画像表示システムの構成を示す図である。
【図2】本実施形態の画像の矩形領域にアクセスする場合の処理手順を示すフローチャートである。
【図3】本実施形態のDRAM402への画像データの格納例1を示す図である。
【図4】本実施形態の図3の画像データにアクセスする場合のタイミングを示す図である。
【図5】本実施形態のDRAM402への画像データの格納例2を示す図である。
【図6】本実施形態の図5の画像データにアクセスする場合のタイミングを示す図である。
【図7】本実施形態のDRAM402への画像データの格納例3を示す図である。
【図8】本実施形態の図7の画像データにアクセスする場合のタイミングを示す図である。
【図9】本実施形態のDRAM402に格納された画像の矩形領域を示す図である。
【図10】本実施形態の図9の矩形領域REC1の画像データを読み出す場合のタイミングを示す図である。
【図11】本実施形態の図9の矩形領域REC2に画像データを書き込む場合のタイミングを示す図である。
【図12】本実施形態の図9の矩形領域REC1の画像データを矩形領域REC2にコピーする場合のタイミングを示す図である。
【図13】本実施形態の画像の矩形領域にリードとライトを行う場合の処理手順を示すフローチャートである。
【図14】本実施形態の図13のステップ1614の処理手順を示すフローチャートである。
【図15】本実施形態の通常表示時の画像データの読み出し順と表示の概要を示す図である。
【図16】本実施形態の回転表示時の画像データの読み出し順と表示の概要を示す図である。
【図17】本実施形態の直線描画を行う場合の処理手順を示すフローチャートである。
【図18】本実施形態の直線を示す画像データの格納例を示す図である。
【図19】本実施形態の直線描画を行う場合のアクセスのタイミングを示す図である。
【図20】本実施形態の画像の矩形領域にアクセスし、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。
【図21】本実施形態の画像の複数の矩形領域のリードとライトを行い、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。
【図22】本実施形態の図21のステップ2214の処理手順を示すフローチャートである。
【図23】本実施形態の直線描画を行い、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。
【図24】本実施形態のUMAを用いる画像表示システムの概略構成を示す図である。
【図25】従来の画像データメモリへのデータ格納の様子を示す図である。
【図26】従来の画像データメモリへのアクセスのタイミングを示す図である。
【図27】従来の一般的なDRAMを32bitバスに接続した場合の1Rowを示すAddressのサイズである。
【符号の説明】
401…描画装置、402…DRAM、403…表示装置、404…表示制御装置、405…アービトレーション回路、406…ラインアクセス回路、407…ラインアクセス制御回路、2501…CPU、101…DRAM。
Claims (5)
- メモリに格納された複数のラインの画像データにアクセスするメモリアクセス方法において、あるラインの画像データが格納されているRow Addressが出力された後にColumn Addressを出力して当該画像データにアクセスするステップと、前記アクセスしたラインの画像データが格納されているRow Addressと次にアクセスするラインの画像データが格納されているRow Addressとが等しい場合にプリチャージを抑止し、前記アクセスしたラインの画像データに続けて次のラインの画像データのアクセスを行うステップと、前記 Row Address が異なる場合に当該メモリへの他の装置によるアクセス要求を処理するステップとを有することを特徴とするメモリアクセス方法。
- 前記次にアクセスするラインの画像データが格納されているアドレスが前記アクセスしたラインの画像データが格納されているアドレスとは不連続であることを特徴とする請求項1に記載されたメモリアクセス方法。
- 前記の連続してアクセスした画像データが所定の長さに達した場合に他の装置からのアクセス要求を処理するステップを有することを特徴とする請求項1または請求項2のいずれかに記載されたメモリアクセス方法。
- メモリに格納された複数のラインの画像データにアクセスするメモリアクセス装置において、あるラインの画像データが格納されているRow Addressが出力された後にColumn Addressを出力して当該画像データにアクセスするラインアクセス手段と、前記アクセスしたラインの画像データが格納されているRow Addressと次にアクセスするラインの画像データが格納されているRow Addressとが等しい場合にプリチャージを抑止して前記アクセスしたラインの画像データに続けて次のラインの画像データのアクセスを行い、前記 Row Address が異なる場合に当該メモリへの他の装置によるアクセス要求を処理するラインアクセス制御手段とを備えることを特徴とするメモリアクセス装置。
- 前記ラインアクセス制御手段は、連続してアクセスした画像データが所定の長さに達した場合に他の装置からのアクセス要求を処理するものであることを特徴とする請求項4に記載されたメモリアクセス装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000171475A JP3688977B2 (ja) | 2000-06-08 | 2000-06-08 | メモリアクセス方法及びその実施装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000171475A JP3688977B2 (ja) | 2000-06-08 | 2000-06-08 | メモリアクセス方法及びその実施装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001350462A JP2001350462A (ja) | 2001-12-21 |
JP3688977B2 true JP3688977B2 (ja) | 2005-08-31 |
Family
ID=18674021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000171475A Expired - Fee Related JP3688977B2 (ja) | 2000-06-08 | 2000-06-08 | メモリアクセス方法及びその実施装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3688977B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9591170B2 (en) | 2014-10-31 | 2017-03-07 | Canon Kabushiki Kaisha | Image processing apparatus, and control method and program of image processing apparatus |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6142788B2 (ja) | 2013-12-04 | 2017-06-07 | 富士通株式会社 | 半導体記憶装置 |
-
2000
- 2000-06-08 JP JP2000171475A patent/JP3688977B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9591170B2 (en) | 2014-10-31 | 2017-03-07 | Canon Kabushiki Kaisha | Image processing apparatus, and control method and program of image processing apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP2001350462A (ja) | 2001-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9324174B2 (en) | Multi-chip rendering with state control | |
US5881016A (en) | Method and apparatus for optimizing power consumption and memory bandwidth in a video controller using SGRAM and SDRAM power reduction modes | |
JPH0348370A (ja) | メモリアクセス制御回路 | |
US8949554B2 (en) | Idle power control in multi-display systems | |
JPH06251166A (ja) | 画像処理装置 | |
US5512918A (en) | High speed method and apparatus for generating animation by means of a three-region frame buffer and associated region pointers | |
US20060119604A1 (en) | Method and apparatus for accelerating the display of horizontal lines | |
JPH09305373A (ja) | 表示制御装置 | |
JPH09212417A (ja) | 処理システム、データ処理システム、ディスプレイシステム、及びコントローラをメモリとインタフェースさせる方法 | |
JPH08255107A (ja) | ディスプレイコントローラ | |
US20230335049A1 (en) | Display panel fps switching | |
JP3688977B2 (ja) | メモリアクセス方法及びその実施装置 | |
JP2006209651A (ja) | グラフィクスハードウェア | |
US8305384B2 (en) | System and method for storing and accessing pixel data in a graphics display device | |
EP0843872A1 (en) | Unified system/frame buffer memories and systems and methods using the same | |
JPH08194643A (ja) | メモリ制御方式 | |
JP2007047750A (ja) | Ddrを用いたデータのスキャンシステムおよびその方法 | |
JP3683657B2 (ja) | グラフィックス表示装置およびグラフィックスプロセッサ | |
JP2000029782A (ja) | メモリ制御方法及び装置 | |
JPH07234773A (ja) | 表示制御装置 | |
JP3288327B2 (ja) | 映像メモリ回路 | |
JPH08115594A (ja) | デュアルポートdramのデータ読出転送とリフレッシュの方法 | |
JPH08180012A (ja) | コンピュータシステム | |
JP2002278919A (ja) | 表示制御方法及び装置 | |
JP5835553B2 (ja) | 画像表示装置および画像表示用半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040127 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050307 |
|
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: 20050607 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050609 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080617 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090617 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090617 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |