(57)【特許請求の範囲】
【請求項１】
メモリに格納された複数のラインの画像データにアクセスするメモリアクセス方法において、あるラインの画像データが格納されているRow Addressが出力された後にColumn Addressを出力して当該画像データにアクセスするステップと、前記アクセスしたラインの画像データが格納されているRow Addressと次にアクセスするラインの画像データが格納されているRow Addressとが等しい場合にプリチャージを抑止し、前記アクセスしたラインの画像データに続けて次のラインの画像データのアクセスを行うステップと、前記Row Addressが異なる場合に当該メモリへの他の装置によるアクセス要求を処理するステップとを有することを特徴とするメモリアクセス方法。
【請求項２】
前記次にアクセスするラインの画像データが格納されているアドレスが前記アクセスしたラインの画像データが格納されているアドレスとは不連続であることを特徴とする請求項１に記載されたメモリアクセス方法。
【請求項３】
前記の連続してアクセスした画像データが所定の長さに達した場合に他の装置からのアクセス要求を処理するステップを有することを特徴とする請求項１または請求項２のいずれかに記載されたメモリアクセス方法。
【請求項４】
メモリに格納された複数のラインの画像データにアクセスするメモリアクセス装置において、あるラインの画像データが格納されているRow Addressが出力された後にColumn Addressを出力して当該画像データにアクセスするラインアクセス手段と、前記アクセスしたラインの画像データが格納されているRow Addressと次にアクセスするラインの画像データが格納されているRow Addressとが等しい場合にプリチャージを抑止して前記アクセスしたラインの画像データに続けて次のラインの画像データのアクセスを行い、前記Row Addressが異なる場合に当該メモリへの他の装置によるアクセス要求を処理するラインアクセス制御手段とを備えることを特徴とするメモリアクセス装置。
【請求項５】
前記ラインアクセス制御手段は、連続してアクセスした画像データが所定の長さに達した場合に他の装置からのアクセス要求を処理するものであることを特徴とする請求項４に記載されたメモリアクセス装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はメモリに格納された画像データにアクセスするメモリアクセス装置に関し、特にDRAMに格納された複数のラインの画像データを読み出して表示装置に表示するメモリアクセス装置に適用して有効な技術に関するものである。
【０００２】
【従来の技術】
従来のメモリアクセス方法としては、例えば特開平７-７８４６７号公報に示す方法がある。まず、従来の画像データのDRAM(Dynamic Random Access Memory)への格納の様子を図２５に示す。
【０００３】
図２５は従来の画像データメモリへのデータ格納の様子を示す図である。ＤＲＡＭ１０１には、１フレームの画素データが格納されている。各画素データは例えば8(bit)（256色）で構成される。１本の走査線に対応した複数の画素データは、一つのRow Addressで指定される様に格納される。
【０００４】
表示リフレッシュや画像の描画や圧縮や伸張の為には、図２５に示す様に、ＤＲＡＭ１０１中の全画素データの内、ｎ画素×ｍラインの大きさ（ｍ、ｎは正の整数）を有する矩形領域中の画素データを表示制御装置、CPU、描画エンジン、画像圧縮伸長エンジン等が高速に読み書きする必要がある。
【０００５】
この為、１画素データ毎にRow Addressを供給しなければならない通常モードのアクセスではなく、１Row Address中のアクセスを行うに当り先頭画素データのRow Addressを一度供給すれば、その後に連続するデータのアクセスはColumn Addressのみを供給すれば良いページモードのアクセスが採用される。後者のページモードアクセスを採用すれば、Column Addressの連続自動生成によってＤＲＡＭ１０１のアクセスが高速化される。
【０００６】
図２６は従来の画像データメモリへのアクセスのタイミングを示す図である。図２６は図２５のＤＲＡＭ１０１のアクセス手順を示す図である。この例ではバス幅を色の深さの4倍(例 色の深さ8bit per pixelで32bitバス)とし、一度に4ピクセルのデータにアクセスしている。
【０００７】
図２６によれば、ＤＲＡＭ１０１中のｍ画素×ｎラインの大きさの矩形領域のデータにアクセスするのに要する時間Ｔ1は、数１で表せる。
【数１】
T1 = n×(tPR + tRCD + (m/4)×tCK)
【０００８】
ここで、ｔCKはページモードにおける１画素当りのアクセス時間であり、tRCDはRAS(Row Address Strobe)をアクティブにしてからCAS(Column Address Strobe)をアクティブにするまでのディレイ時間、ｔPRはプリチャージ時間である。この方法によるとRASからCASまでのディレイ時間tRCD,プリチャージ時間ｔPRは、Row Addressを変更する毎に、すなわち１ライン毎に必要となってしまう。
【０００９】
図２７は従来の一般的なDRAMを32bitバスに接続した場合の1Rowを示すAddressのサイズである。従来では1ラインのデータを一つのRow Addressに格納し、1ライン以下のサイズを単位として、画像データを格納するメモリにアクセスしていた。しかし、DRAMの大容量化に伴い1Row Addressのサイズは広くなる傾向にあり、現在一般的なDRAMを32bitバスに接続した場合の1Row Addressのサイズは図２７に示す通りである。例えばSDRAM(synchronous DRAM)を使用する場合1Row Addressのサイズは1024byteから4096byteとなる。
【００１０】
【発明が解決しようとする課題】
従来の表示制御装置は上記の様に表示ラインに合わせてアクセスしていた為、ライン単位でプリチャージ等の時間が発生した。このプリチャージ時間やRASからCASまでのディレイ時間は読み出しや書込みが行われない。また、同期式のDRAMであるSDRAMを高速で使用する場合(CAS Latency = 3cycleの場合)、tRCD,tPRはそれぞれ3cycle計6cycleもかかり非常に大きなオーバーヘッドとなる。この様なオーバーヘッドの為、高速のページモードアクセスやバーストアクセスを採用したとしても従来の画像データメモリアクセスの際にライン単位で読み出しや書込みが行われない時間が生じている。
【００１１】
また、コンピュータ・グラフィックス・ディスプレイの品質は、表示装置、特にカソードレイチューブ(CRT)或いは液晶ディスプレイ(LCD)の解像度は高く、色の深さ(Color Depth)は深く、リフレッシュ速度は早くなり表示品質は改善されてきた。今日では1280×1024pixel、16.7×106色同時表示を行う様なシステムが一般的となってきている。この様な高解像度及び多色表示、高いリフレッシュ速度での表示は、画像データを記憶するメモリに高い性能を要求する。もし、表示装置のリフレッシュの為のデータアクセスの負荷が高いと、メモリは表示装置のリフレッシュの為に占有され、メモリにアクセスする他の装置(グラフィックス・エンジン或いは主中央処理装置(CPU)によるメモリアクセス)の為の時間がなくなる。特にCPUの実行するプログラムそれにかかるデータの格納されるメモリと画像データを格納するメモリが同一のメモリとなるUMA(Unified Memory Architecture)のシステムではこの問題が顕著になる。
【００１２】
他の背景として、グラフィックス・ディスプレイ・システムの設計時、電力消費量の問題が上げられる。特にバッテリーの寿命が問題となる携帯用のシステムにおいてこの問題が顕著に表れる。消費電力は消費されるメモリのバンド幅、つまり色の深さ、解像度、リフレッシュの速度に比例して増大する為、高解像度、多色表示の表示システムは、携帯用のシステムには適していない。しかし、ポータブルコンピュータ等の携帯情報機器においても高解像度、多色表示システムの要求が高く、電力消費量を増大させない高性能グラフィックス・ディスプレイ・システム及びそれを実現する方法が必要とされている。
【００１３】
本発明の目的は上記問題を解決し、画像データへのアクセスサイクル数を削減することが可能な技術を提供することにある。
【００１４】
【課題を解決するための手段】
本発明は、メモリに格納された複数のラインの画像データにアクセスするメモリアクセス装置において、Row Addressが等しい複数のラインの画像データのアクセスを連続して行うものである。
【００１５】
上記課題を解決する為、本発明ではDRAMへのアクセス単位を表示ライン単位ではなく、Row Addressのサイズを基準として行う。これにより、ページモードアクセスやバーストモードアクセス等のスループットの高いアクセスを有効利用することが可能となり、画像データへのアクセスサイクル数を削減することが出来る。
【００１６】
本発明では、複数のラインの画像データにアクセスして画像の表示や描画を行う際に、まず、あるラインの画像データが格納されているRow Addressが出力された後にColumn Addressを出力してそのラインの画像データにアクセスする。
【００１７】
そして、前記アクセスしたラインの画像データが格納されているRow Addressと次にアクセスするラインの画像データが格納されているRow Addressとを比較し、前記アクセスしたラインと次にアクセスするラインのRow Addressが等しい場合に、次のラインの画像データにアクセスする為のプリチャージを抑止し、前記アクセスしたラインの画像データに続けて次のラインの画像データのアクセスを連続して行う。
【００１８】
従来例では1ラインのデータを一つのRow Addressに格納し、1ライン以下のサイズを単位として、画像データを格納するメモリにアクセスしていたが、図２７の様にDRAMの大容量化に伴って1Row Addressのサイズは広くなる傾向にある。
【００１９】
それに対し、カラー表示として最も一般的な解像度640×480、色の深さ8bit per pixelの表示を考えた場合、1ラインのデータは640byteと一般的なSDRAMの1Row Addressより小さくなり、バス幅を32bitとし、1Row Addressが 2048 byteとなるDRAMを使用した場合、1Row Addressに3.2ラインの画像データを格納出来る。この様に複数ラインのデータを1Row Addressに格納されているデータをページモード、または、バーストモードでアクセスするとｍピクセル×ｎラインの領域をアクセスするのに要する時間T2は、数２の様になり、プリチャージ、RASからCASまでのディレイ時間をｎ/3.2回の発生まで大きく削減出来る。
【数２】
T2 ≒(n/3.2)×(tPR + tRCD + (512×tCK))
【００２０】
稀な場合としてプリチャージ、RASからCASまでのディレイ時間がｎ回発生し、従来例と同じサイクル数必要とする場合がある。例えばｎ=2の場合で、その2ラインのデータが異なるRow Addressに格納されている場合である。
【００２１】
しかし、本発明のアクセス方法では、従来例よりアクセスサイクル数が増加することはなく、多くの場合はアクセスサイクル数を大きく削減出来る。例えば、バス幅を32bitとし、1Row Addressのサイズが2048byteとなるSDRAMをCAS Latency = 3cycleで使用し、tPR = 3cycle、tRCD = 3cycle、tCK = 1cycleで、解像度640×480、色の深さ8bit per pixelの表示を行った場合を考える。この場合1フレーム640×480pixelのデータを読み込む為にかかるサイクル数は従来例では数１より数３の様に求まり、本発明の方法によると数４の様に求まる。この数３及び数４により分かる様に、従来例では79,680cycleかかるところを本発明により77,700cycleまで削減することが出来る。
【数３】
T1 = 480×(3 + 3 + (640/4)×1) = 79,680
【数４】
T2 =(480/3.2)×(3 + 3 + (512×1)) = 77,700
【００２２】
前記の様に本発明では、複数のラインのRow Addressが同一である場合にプリチャージを行うことなく連続して複数のラインにアクセスするので、同一のRow Addressに格納される可能性の高いアイコンの様な小さい領域の表示単位へのアクセスを行う場合に効率的なアクセスを行うことが出来る。
【００２３】
以上の様に本発明のメモリアクセス装置によれば、Row Addressが等しい複数のラインの画像データのアクセスを連続して行うので、画像データへのアクセスサイクル数を削減することが可能である。
【００２４】
【発明の実施の形態】
以下にメモリに格納された複数のラインの画像データにアクセスする一実施形態のメモリアクセス装置について説明する。
【００２５】
図１は本実施形態の画像表示システムの構成を示す図である。図１に示す様に本実施形態の画像表示システムは、描画装置４０１と、ＤＲＡＭ４０２と、表示装置４０３と、表示制御装置４０４と、アービトレーション回路４０５と、ラインアクセス回路４０６と、ラインアクセス制御回路４０７とを有している。
【００２６】
描画装置４０１は、ＤＲＡＭ４０２中の複数のラインの画像データにアクセスして画像の描画を行う装置である。ＤＲＡＭ４０２は、複数のラインから成る画像データを格納する記憶装置である。表示装置４０３は、ＤＲＡＭ４０２中の複数のラインの画像データを表示する装置である。
【００２７】
表示制御装置４０４は、ＤＲＡＭ４０２中の複数のラインの画像データにアクセスして表示装置４０３での画像の表示を制御する装置である。アービトレーション回路４０５は、描画装置４０１または表示制御装置４０４からのＤＲＡＭ４０２へのアクセスを調停する回路である。
【００２８】
ラインアクセス回路４０６は、あるラインの画像データが格納されているRow Addressが出力された後にColumn Addressを出力して当該画像データにアクセスする回路である。ラインアクセス制御回路４０７は、前記アクセスしたラインの画像データが格納されているRow Addressと次にアクセスするラインの画像データが格納されているRow Addressとが等しい場合にプリチャージを抑止し、前記アクセスしたラインの画像データに続けて次のラインの画像データのアクセスを行う回路である。
【００２９】
図１において描画装置４０１は、ＤＲＡＭ４０２に画像データを書き込む装置であり、この描画装置４０１は、CPU、DMA(direct memory access)コントローラ、圧縮伸長エンジン、描画エンジン等から構成される場合もある。表示装置４０３はカソードレイチューブ(CRT)または液晶ディスプレイ(LCD)等の装置であり、描画装置４０１によってＤＲＡＭ４０２に書き込まれた画像データを表示する。この表示装置４０３は定期的に画素データのリフレッシュを行う必要がある。この為、表示制御装置４０４は、周期的にＤＲＡＭ４０２より画像データを読み込み、表示装置４０３に適した画像データフォーマットに変換して、表示装置４０３に出力し続ける。
【００３０】
以上の説明の様にＤＲＡＭ４０２に対して描画装置４０１と表示制御装置４０４がアクセスする。アービトレーション回路４０５は描画装置４０１と表示制御装置４０４からのアクセスのうちどちらを有効にするかを決定し、ＤＲＡＭ４０２へのアクセスを行う。
【００３１】
表示制御装置４０４はＤＲＡＭ４０２の全画面分の矩形領域のデータを周期的に読み込むが1画面分の画像データを読み込む手順は図２のフローチャートに従って行う。描画装置４０１は矩形領域の描画、コピー、矩形領域の画像を読み込み加工したデータを矩形領域に描き込む、矩形領域のデータを読み込み画像圧縮を行う、圧縮された画像データを伸長し矩形領域に描画等矩形領域の読み書きを行うが、このアクセスの手順も図２のフローチャートに従って行う。
【００３２】
図２は本実施形態の画像の矩形領域にアクセスする場合の処理手順を示すフローチャートである。図２においてaはアクセスを行おうとしている矩形領域のライン番号を表している。例えばm pixel × n lineの矩形領域にアクセスする場合aは1からnの値をとる。Aはアクセスを行ったＤＲＡＭ４０２のアドレスを表し、NextAは次にアクセスするＤＲＡＭ４０２のアドレスを表す。
【００３３】
まずステップ501でラインアクセス制御回路４０７は、ＤＲＡＭ４０２に対するアクセスを矩形の1ライン目から行う為に、アクセスを行う矩形領域のライン番号であるaを1とする。次に、ステップ502においてＤＲＡＭ４０２に対してプリチャージを行い、RASをアクティブにすると共に現在アクセスしようとしているaライン目の先頭アドレスのRow AddressをＤＲＡＭ４０２に対して出力する。
【００３４】
次にステップ503においてCASをアクティブにすると共にaライン目の先頭アドレスのColumn AddressをＤＲＡＭ４０２に対して出力してaライン目の先頭アドレスにアクセスする。そして、今アクセスしたaライン目の先頭アドレスをAの値とする。その次のステップ504ではアドレスAがaライン目の終了アドレスかどうかを調べる。つまり、m pixel × n lineの矩形領域にアクセスしている場合、Aがaライン目のmピクセル目のデータのアドレスであるかどうかを調べる。その結果、等しければステップ508に進み、異なればステップ505に進む。
【００３５】
ステップ505ではaライン目でアクセスの終了したアドレスAの次にアクセスするアドレスNextAを算出する。1ラインのデータは連続したアドレスに格納されているとNextA = A + 1となる。
【００３６】
次にラインアクセス制御回路４０７によって、現在アクセス中の装置によるＤＲＡＭ４０２へのアクセスを続けるか、プリチャージを行うべきか判定してＤＲＡＭ４０２へのアクセスを行う。
【００３７】
ステップ506においてラインアクセス制御回路４０７は、AとNextAのRow Addressが等しいかどうかを調べる。等しければアドレスNextAにアクセスする為、ステップ507に進む。異なればアクセスを行おうとしている矩形領域の中のアドレスAとRow Addressの等しい部分は全てアクセスしたことになるのでステップ510に進む。
【００３８】
ステップ507でラインアクセス回路４０６は、NextAのCASをアクティブにすると共にColumn Addressを出力し、アドレスNextAにアクセスする。そして、NextAにアクセスしたことを表す為、A = NextAとし、ステップ504に戻る。同一ライン上のRow Addressの等しい部分にアクセスしている間は、ステップ504からステップ507を繰り返し行うことになり、プリチャージやRow Addressの出力を行うこと無く、連続してColumn Addressを出力する。この為、無駄なプリチャージ、Row Addressの出力を避けることが可能となり、システム性能を向上させることが出来る。
【００３９】
ステップ504からステップ507を繰り返し、aライン目の最後までアクセスしたかどうかをステップ504で判定し、aライン目の最後までアクセスした場合にはステップ508に進む。
【００４０】
ステップ508ではaライン目がアクセスを行おうとしている矩形領域の最終ラインかどうかを調べる。例えばm pixel × n lineの矩形領域のアクセスを行っていたとするとa == nであるかどうかを調べる。もし、aライン目がアクセスを行っている矩形領域の最終ラインであったとすると、既にステップ504でaライン目のアクセスは終了したことが分かっているので、矩形領域全てのアクセスが終了したことになる。aライン目がまだアクセスを行っている矩形領域の最終ラインでなかったとすると、まだアクセスする領域が残っているのでステップ509に進む。ステップ509ではaライン目の次のラインをアクセスする為、a = a + 1としNextAを次のラインの先頭アドレスとしてステップ506へ進む。
【００４１】
この様にラインが変わった場合でのステップ506においてアクセスの終わったアドレスAと次にアクセスしようとしているアドレスNextAのRow Addressが等しいかどうかを判定するので、アクセスを行おうとしている矩形領域のうちRow Addressの等しい部分に対して連続してColumn Addressを出力し続けてアクセスすることが出来る。
【００４２】
アクセスを行おうとしている矩形領域のRow Addressの等しい部分にアクセスしている間はステップ504からステップ509までの処理を繰り返し行う。AとNextAのRow Addressが異なるということは、アクセスを行おうとしている矩形領域のAとRow Addressの等しい部分は全てアクセスしたことを表している。これはステップ506で判定され、AとNextAのRow Addressが異なる場合にはステップ510へ進む。
【００４３】
ステップ510では現在ＤＲＡＭ４０２にアクセスしている装置とは異なる装置によるアクセス要求があるかどうかを調べる。この判定はアービトレーション回路４０５によって行われ、例えば表示制御装置４０４がアクセスしている場合ならば描画装置４０１のアクセス要求があるかどうかを調べる。もし、描画装置４０１のアクセス要求が無ければ続けてアクセスを行う為、ステップ511に進む。
【００４４】
描画装置４０１のアクセス要求があれば一旦表示制御装置４０４のアクセスを中断して描画装置４０１によるＤＲＡＭ４０２に対するアクセスを開始させる。この場合、表示制御装置４０４はステップ512に進んで描画装置４０１のアクセスが中断または終了するまで待機し、描画装置４０１のアクセスが中断または終了したらステップ511に進んで表示制御装置４０４のアクセスを再開する。
【００４５】
ステップ511ではプリチャージを行い、NextAのRow Addressを出力する。ステップ510及びステップ512の動作に関しては表示制御装置４０４がＤＲＡＭ４０２にアクセスする場合について説明したが、描画装置４０１がＤＲＡＭ４０２にアクセスする場合でも同様である。この様に、AとNextAのRow Addressが異なる時にアクセスを中断し、アクセス権を他の装置に渡すことによって無駄なプリチャージ等を行わずに済む様にしている。
【００４６】
本実施形態のメモリアクセス方法を説明するに当り、例として図１の装置においてＤＲＡＭ４０２にバス幅を32bitで1Row Addressのサイズが2048byteとなるSDRAMで使用し、表示装置４０３には解像度640×480、色の深さ8bit per pixelの表示を行った場合を考える。
【００４７】
図３は本実施形態のＤＲＡＭ４０２への画像データの格納例１を示す図である。この場合、1ラインのデータは640byteであり、1Row Addressに3.2ライン分のデータを格納することが出来るので図３に示す様に1画面のデータをＤＲＡＭ４０２に格納する。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ライン目までのデータを格納する。
【００４８】
図４は本実施形態の図３の画像データにアクセスする場合のタイミングを示す図である。表示制御装置４０４は表示装置４０３のリフレッシュの為、1ライン目の画像データから順に480ライン目の画像データまで読み込む動作を繰り返すのであるが、その時のＤＲＡＭ４０２へのリードアクセス方法を図４は示している。この例では32bitバスに1Row Addressが2048byteとなるDRAMを接続しているので1Row Address全てのデータには512回(512=2048/(32/8))でアクセス出来る。この事を利用し、1ライン目から4ライン目の先頭1/5までのデータを連続して読み込む。
【００４９】
このアクセスは図４に示す様にまず1ライン目から4ライン目の先頭1/5のデータを格納するRow Address R1を出力すると共にバンクアクティブコマンド[ACTV]を出力する(RASをアクティブにする)。次にRASからCASまでのディレイ時間を空けてリードコマンド(CASをアクティブにする)と1ライン目から4ライン目の先頭1/5までのColumn Addressを連続して出力する。そして、プリチャージを行う。この3.2ライン分のデータを読み出すのにかかる時間は数５の様になる。
【数５】
tRCD + tPR + 512 × tCK
【００５０】
同様に4ライン目の後部4/5のデータから480ライン目のデータまで3.2ライン分のデータを連続して読み込む。この様なアクセス方法によって1画面のデータを読み込む為に要する時間は数６で表せる。
【数６】
150×(tRCD + tPR + 512×tCK)
【００５１】
ここに、tRCDはRASからCASまでのディレイ時間、tPRはプリチャージ時間、tCKはクロックのサイクル時間である。図４のタイミング図はクロック同期式のDRAMである。SDRAMをBurst length = 1のモードで動作させた場合を例にタイミング図を書いているがEDO-DRAM(Extended Data Out DRAM),Fast page DRAM等のページモードでも同様のアクセスを行うことが出来る。EDO-DRAM,Fast page DRAMを用いた場合tCKはページモードサイクル時間(tPC)に相当する。
【００５２】
従来のアクセス方法による時間と比較すると数７の所要時間が短縮される。
【数７】
(480-150)×(tRCD + tPR)
【００５３】
これは3.2ライン分のデータを連続して読み込み従来の方法だと3.2回分RASからCASへのディレイ時間、プリチャージ時間を必要としていたところを1回分で済む様になりその時間が約1/3に削減できたからである。もしSDRAMをCAS Latency = 3で動作させたとするとtRCD = 3cycle, tPR = 3cycleであるので1フレームあたり数８の様に削減効果がある。
【数８】
(480-150)×(3 + 3) = 1980cycle
【００５４】
図５は本実施形態のＤＲＡＭ４０２への画像データの格納例２を示す図である。図３の例では1画面の画像データを隙間を空けず連続して格納し複数ラインのデータが1Row Addressに格納する場合のメモリマップを示したが図５の様に各ライン毎に隙間を空け、数ラインに一回ラインの境界がRow Address境界に一致する様に格納しても良い。図５の例では1ライン目から3ライン目までのデータをRow Address R1に格納し、4ライ目から6ライン目までのデータをRow Address R2に格納し、以下同様に格納してRow Address R160に478ライン目から480ライン目までのデータを格納している。この様にラインの境界をRow Addressの境界とするとアクセス制御が単純になる。
【００５５】
図６は本実施形態の図５の画像データにアクセスする場合のタイミングを示す図である。表示制御装置４０４は表示装置４０３のリフレッシュの為、 1ライン目の画像データから順に480ライン目の画像データまで繰り返し読み込む時のＤＲＡＭ４０２へのリードアクセス方法を図６は示している。図６に示している Address C1SとC1Eは1ライン目のデータの先頭と終了アドレスのColumn Addressを示し、C2SとC2Eは2ライン目のデータの先頭と終了アドレスのColumn Addressを示し、C3SとC3Eは3ライン目のデータの先頭と終了アドレスのColumn Addressを示している。
【００５６】
この時のアクセスは図６に示す様にまず1ライン目から3ライン目までのデータを格納するRow Address R1を出力すると共にバンクアクティブコマンド[ACTV]を出力する(RASをアクティブにする)。
【００５７】
次に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ライン分ずつデータをまとめてアクセスする。
【００５８】
図７は本実施形態のＤＲＡＭ４０２への画像データの格納例３を示す図である。図３、図５の例では1Row Addressに複数ラインのデータを格納した場合について説明した。しかし、非常に大きな解像度の表示を行う場合1Row Addressに1ラインのデータを格納しきれない場合がある。この様な場合、図７に示す様に1ラインのデータが複数のRow Addressにまたがって格納される。
【００５９】
図７の例では、ｍピクセル×ｎラインの矩形領域の1ライン目のデータをRow Address R1とR2に格納している。2ライン目のデータはRow Address R3とR4に格納し、以下同様に1ラインのデータは2Row Addressにまたがって格納され、nライン目のデータはRow Address Rn-1とRnに格納される。
【００６０】
図８は本実施形態の図７の画像データにアクセスする場合のタイミングを示す図である。図８は表示制御装置４０４または描画装置４０１が図７の様に格納された画像データのｍピクセル×nラインの矩形領域にアクセスする様子を示している。
【００６１】
図８においてC1FSは1ライン目の先頭データのColumn Address,C1FEは1ライン目の前半Row Address R1に書き込まれた最終データのColumn Address,C1BSはRow Address R2に格納される1ライン目後半データの先頭データのColumn Address,C1BEは1ライン目後半データの最終データのColumn Addressを示している。
【００６２】
まず、1ライン目のデータの前半を格納するRow Address R1を出力し、1ライン目の前半データのColumn Addressを連続して出力し、次に1ライン目のデータの後半を格納するRow Address R2を出力し、2ライン目後半のデータのColumn Addressを連続して出力する事によって2ライン目の後半のデータにアクセスする。以下2ライン目以降も同様に1ラインのデータを前半と後半に分けて同一Row Addressに含まれるデータに連続してアクセスを行い、ｎライン目のデータまでアクセスする。
【００６３】
この様にアクセスすれば同一Row Addressに含まれるデータを全て連続してアクセスする為、無駄なプリチャージ及びRow Addressの供給は発生せず最も効率の高いアクセスとなる。
【００６４】
今迄主に、表示制御装置４０４によるＤＲＡＭ４０２に格納された画像データの矩形領域に対するリードアクセスについて説明を行ってきた。次に、描画装置４０１によるＤＲＡＭ４０２に格納された画像データの矩形領域に対する、リード、ライトアクセスについて図９から図１４を用いて説明する。
【００６５】
図９は本実施形態のＤＲＡＭ４０２に格納された画像の矩形領域を示す図である。画像データは図９に示す様にaライン目からa+2ライン目までの3ライン分のデータがRow Address Raに格納され、以下同様に3ライン分ずつのデータがRow Address Ra3,Ra6,Ra9に格納される。
【００６６】
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を表す。
【００６７】
また、矩形領域REC1の1ライン目と2ライン目はRow Address Ra3に格納されており、矩形領域REC1の3ライン目と4ライン目と矩形領域REC2の1ライン目から3ライン目まではRow Address Ra6に格納され、矩形領域REC2の4ライン目はRow Address Ra9に格納されている。図９では複数ピクセルのデータが同一のColumnアドレスに格納されているが、これはＤＲＡＭ４０２は32bitのバスに接続され、表示の色の深さを8bit per pixelとしている為、一つのアドレスに4pixelのデータが格納されるとしているからである。
【００６８】
図１０は本実施形態の図９の矩形領域REC1の画像データを読み出す場合のタイミングを示す図である。矩形領域REC1のデータの読み出しは図１０に示す様に、まずREC1の1ライン目と2ライン目のデータを格納しているRow Addressを出力し、1ライン目と2ライン目のデータの格納されているC1からC4までのColumn Addressを連続して出力して1ライン目から2ライン目までのデータを読み込む。この時一つのアドレス当たり32bit4pixel分のデータが読み込まれるが矩形REC1内に入っているpixelのデータのみを処理には使用する、またはCAS、RE、DQM等の制御により必要としているピクセルのデータだけ読み込んでも良い。
【００６９】
次に、矩形領域REC1の3ライン目から4ライン目のデータは1ライン目から2ライン目までのデータとは異なるRow Addressに格納されているのでプリチャージを行い、Row Address Ra6を出力してから、3ライン目から4ライン目までの格納されているC5からC8までのColumn Addressを連続して出力して3ライン目から4ライン目までのデータを読み込む。この様に、4ラインの矩形領域にアクセスする場合、従来は4回プリチャージ、とRow Addressの出力を行っていたところ2回で済む。
【００７０】
図１１は本実施形態の図９の矩形領域REC2に画像データを書き込む場合のタイミングを示す図である。同様にライトの場合も図１１に示す様に、まず、REC2の1ライン目から3ライン目までのデータを格納しているRow Address Ra6を出力してから、C9からC14のColumn Addressを出力して1ライン目から3ライン目までのライトを行う。次に、プリチャージを行い、REC2の4ライン目のデータを格納しているRow Address Ra9を出力してから、C15,C16を連続して出力してREC2の4ライン目のライトを行う。この様にライトの場合もリードの場合と同様にプリチャージ、Row Addressの出力の回数が削減される。
【００７１】
描画装置４０１は図１０や図１１の例の様に矩形領域のリードやライトを個々に行うだけではなく矩形領域のコピーや複数の矩形領域のデータを読み込み演算を行った結果の矩形領域への書込み等を行う場合がある。例として、図９の矩形領域REC1のデータを矩形領域REC2にコピーする場合を考える。この場合、図１０の様に矩形領域REC1のデータを読み込んだ後図１１の様にそのデータを矩形領域REC2に書き込んでも良い。しかし、図９の矩形領域REC1と矩形領域REC2の様にアクセスを行おうとしている複数の矩形領域の格納されているRow Addressに共通なアドレスがある場合、更に高速化が可能である。
【００７２】
図９の例では矩形領域REC1の3ライン目と4ライン目が格納されるRow Addressと矩形領域REC2の1ライン目から3ライン目までが格納されるRow AddressはRa6で共通である。この為、矩形領域REC1の3ライン目から4ライン目のリードと矩形領域REC2の1ライン目から3ライン目までのライトを連続して行えば、そのリードとライトの間にはプリチャージ、Row Addressの出力は不要である。この様な考えに基づき矩形領域REC1のデータを矩形領域REC2にコピーする時のＤＲＡＭ４０２にアクセスする様子を図１２に示す。
【００７３】
図１２は本実施形態の図９の矩形領域REC1の画像データを矩形領域REC2にコピーする場合のタイミングを示す図である。図１２ではREC1の3ライン目から4ライン目までのリードを行う為、C5からC8のColumn Addressを連続して出力した後、リードが完了するまでtCL(CAS Latency)を空けてその後連続して、C9からC14のColumn Addressを出力して矩形領域REC2の1ライン目から3ライン目までのライトを行っている。この為、ライトを始める時のプリチャージ、Row Addressの出力を省く事が出来、矩形領域のリード・ライトに要するサイクル数が減る。
【００７４】
図１２の様にリードとライトの間であってもアクセスを行おうとしている矩形領域のRow Addressの等しい部分のアクセスを連続して行う時のＤＲＡＭ４０２へのアクセスの手順を図１３、図１４に示す。
【００７５】
図１３は本実施形態の画像の矩形領域にリードとライトを行う場合の処理手順を示すフローチャートである。図１３の手順は図２のアクセス手順と一致する手順が多く図１３のステップ1601からステップ1612は図２のステップ501からステップ512に対応する。図２のアクセス手順と異なるのはステップ1606でAとNextAのRow Addressが異なると判定された場合、ステップ1613へ進み、更にステップ1614を通ってからステップ1610に進む点である。
【００７６】
ステップ1613でラインアクセス制御回路４０７は、アクセスを行おうとしている複数の矩形領域の中にAと等しいRow Addressを含む領域に格納された矩形領域があるかを調べる。Aと同一アドレスに格納された矩形領域が無ければステップ1610に進み、あればステップ1614に進む。
【００７７】
ステップ1614では、アクセスを行おうとしている矩形の中でAと同一のアドレスに格納されている部分に対してアクセスを行う。この部分の処理は図１２の矩形REC2の1ライン目から3ライン目までのライトを行う為、C9からC14のColumnアドレスを連続して出力する部分に相当する。この処理は図１４のフローチャートに従って行われる。このステップ1614においてAと同一のRow Addressに格納されている矩形のデータ全てにアクセスしたらステップ1610に進む。
【００７８】
最後に図１３のフローチャートで着目している矩形のアクセスが全て終了したらステップ1615に進み、他の矩形へのアクセスでステップ1614で行われなかった分のアクセスを行う。これは図１２の矩形REC2の4ライン目のライトを行う為、プリチャージを行い、REC2の4ライン目のデータを格納するRow Address Ra9を出力し、REC2の4ライン目のデータのColumnアドレスC15,C16を連続して出力する部分に相当する。
【００７９】
図１４は本実施形態の図１３のステップ1614の処理手順を示すフローチャートである。図１４の手順も図１３同様に図２のアクセス手順と一致する手順が多く図１４のステップ1701、ステップ1703からステップ1709は図２のステップ501、ステップ503からステップ509に対応する。図２のアクセス手順と異なるのはステップ1701の後、プリチャージ、Row Addressの出力を行わず、ステップ1703へ進む点と、ステップ1706の判定結果、AとNextAのRow Addressが異なる場合、Row Addressの異なる分へのアクセスは行わず終了する点である。
【００８０】
図１２の例では二つの矩形のリードとライトをそれぞれ行う場合について示したが、二つの矩形のリードを行う場合、二つの矩形のライトを行う場合、二つの矩形だけではなく複数の矩形のリード・ライトが行われる場合でも同様である。図９の様にリード・ライトを行う矩形領域のRow Addressが一致する場合はマルチウインドウ表示システム等で良く発生する。例えばウインドウを少しだけ移動させた場合、ウインドウの表示されている矩形領域のデータを少しだけずれた矩形領域にコピーする事になるが、この時、コピー元とコピー先の矩形領域の大部分は重なっており、これらの部分の画像データを格納するRow Addressは同一である。この為、Row Addressの等しいコピー元の矩形データのリードとコピー先への矩形データのライトを連続して行えばその間にプリチャージやRow Addressの出力をせずに済む。スクロールやパンニング、マウスカーソルの移動等も同様である。
【００８１】
ここまでの例では矩形領域へのアクセスを矩形領域内のアドレスの小さいデータから順にアクセスを行っていたがこの順番は逆転していても良い、また、アドレスの順序とは無関係な順序でも構わない。どの様な順序でアドレスを発生しても、同一Row Addressに含まれる画像データを連続してアクセスする事によって、無駄なプリチャージやRow Addressの出力を避ける事が出来る。例えば、表示装置のリフレッシュを行うに当り、今迄と同様の表示ではなく表示データを90度回転した表示を行う場合を考える。
【００８２】
図１５は本実施形態の通常表示時の画像データの読み出し順と表示の概要を示す図である。通常、図１５に示す様に表示制御装置４０４はＤＲＡＭ４０２に格納された画像データの1ライン目の左端から右端のデータ、2ライン目の左端から右端のデータ、・・・という様な順にラインの順番に従ってデータを読み込み表示装置４０３に出力している。
【００８３】
図１６は本実施形態の回転表示時の画像データの読み出し順と表示の概要を示す図である。回転表示を行う場合は図１６に示す様に列単位で画像データを読み込む。
【００８４】
例えば、表示制御装置４０４はm pixel×n lineの画像データを表示装置４０３に送るに当り画像データの1列目を表示装置の1ライン目のデータとして、2列目のデータを2ライン目のデータとして、・・・ｎ列目のデータをｎライン目のデータとして送る。この様な順で、表示制御装置４０４が画像データをＤＲＡＭ４０２より読み込み、表示装置４０３に出力する事によって、ＤＲＡＭ４０２に格納されたm pixel×n lineの画像を右90度回転したn pixel×m lineの画像が表示装置４０３に表示される。この様な回転を伴う表示は、横型の表示装置向けに開発された表示処理手順を、縦型の表示装置を用いた携帯端末装置に流用する場合に行われており、本実施形態のメモリアクセス方法を用いることにより、前記携帯端末装置でのアクセス効率を向上させることが出来る。
【００８５】
以上、説明した様に回転表示を行う場合、列毎に表示データを読み込むのであり、1列のデータは1pixel×n lineの矩形領域のデータと考えられ、従来の様にライン単位で画像データへアクセスすると1列のデータにアクセスするのにｎ回プリチャージが発生する。
【００８６】
しかし、図１６に示す様に3ライン分のデータが同一Row Addressに格納されているとすると、本実施形態の同一Row Addressに格納されている画像データに連続アクセスを行い、そのアクセスをページモードまたはバーストモードを用いて行う方法を用いればn/3回しかプリチャージ等のオーバーヘッドは発生しない。更に表示制御装置にC（正の整数）列分のBufferを持たせればC列分のデータを一度にまとめて読み込むことが出来る。C列分のデータ中３ラインのデータが同一Row Addressに格納されているので3×C pixel 分のデータに連続アクセスすることによりn/(3×C)回までプリチャージ及びRow Addressの供給回数を削減出来る。また、例の様に右90度回転だけではなく左90度回転や、左右反転や上下反転を行う場合でも同様に可能である。
【００８７】
図９から図１４の例では描画装置４０１がＤＲＡＭ４０２に格納画像の矩形領域にアクセスする場合のアクセス方法について説明したが、描画装置４０１は矩形領域へのアクセスのみではなく、直線や曲線の描画、文字の描画等、矩形とは異なる形の領域にアクセスする場合がある。本実施形態では、直線や曲線等の矩形とは異なる形の領域にアクセスする場合も同一Row Addressに格納されるデータへのアクセスを連続して行う。そして、連続するアクセスをDRAMのページモードやバーストモードを利用して行いプリチャージ等のオーバーヘッドを削減し、アクセスサイクル数を削減する。
【００８８】
直線を描画する為のアルゴリズムとしてはブレゼンハムのアルゴリズム等が良く知られている。従来、直線を描く場合ブレゼンハムの直線描画のアルゴリズム等を用いて1ピクセルずつシングルアクセスを行い描画を行っていた。例えばSDRAMをCAS Latency = 3cycleで使用した場合、プリチャージ時間(tPR)は3cycle、RASからCASまでのディレイ時間(tRCD)は3cycle、アクセス時間は1cycleであり、一ピクセル当たり7cycleかかり、1cycleのアクセス時間に対して6倍もの時間がプリチャージ等のオーバーヘッドに費やされ、非常に効率が悪かった。この様に、従来の方法ではプリチャージ等のオーバーヘッドが大きく描画の為に多くのサイクルを必要としていた。
【００８９】
以下に、画像上の直線領域にアクセスする場合の本実施形態のDRAMアクセス方法について図１７から図１９を用いて説明する。
【００９０】
図１７は本実施形態の直線描画を行う場合の処理手順を示すフローチャートである。図１７においてPは描画を行おうとしているピクセル、NextPは次に描画を行おうとしているピクセルを表している。
【００９１】
直線を描画する場合、まず、ステップ1801においてピクセルPを直線描画の始点とする。そして、始点を描画する為にステップ1802において、プリチャージを行いピクセルPのRow Addressを出力する。次にステップ1803に進みブレゼンハム等の直線描画アルゴリズムを用いピクセルPの次に描画するピクセルNextPを算出する。ブレゼンハムの直線描画アルゴリズムは描画を行う直線の始点から順に直線の傾きより順に終点に向かって描画を行うピクセルを発生するアルゴリズムである。
【００９２】
ステップ1803の後、ステップ1804に進みピクセルPとピクセルNextPのRow Addressが異なっているかどうか比較する。これは、DRAMの1アドレスに複数ピクセルのデータが格納される場合があるからである。例えば32bitバスにDRAMが接続され、1ピクセルのデータ量が8bitで表現される場合、1アドレスに4ピクセル分のデータが格納される。
【００９３】
もし、ステップ1804の比較の結果ピクセルPとピクセルNextPのアドレスが等しかった場合、これらのピクセルは1度のアクセスで描画出来るのでステップ1803に戻り更に次のピクセルを求める。反対にステップ1804の比較の結果、ピクセルPとピクセルNextPのアドレスが異なる場合はステップ1805に進み、ピクセルPのColumn Addressを出力し、ピクセルPと同一のアドレスに格納されるピクセルの描画を行う。
【００９４】
次に、ステップ1806に進みPが終点であるかどうかを調べ終点であればもう既に終点までステップ1805で描画を行った事になるので終了する。まだ、終点まで描画を行っていない場合はステップ1807に進む。
【００９５】
ステップ1807においてピクセルPとピクセルNextPのRow Addressが等しいかどうか比較する。もし、等しければピクセルNextPへのアクセスはプリチャージ等を行わずピクセルPへのアクセスに連続してアクセス出来るのでステップ1808へ進、 ピクセルPをNextPに置き換え、ステップ1803へ戻り、ステップ1804、ステップ1805と進みピクセルPの描画を行う。
【００９６】
この様にステップ1803で算出した次に描画するピクセルNextPと現在描画するピクセルPが同一Row Addressに含まれるかどうかをステップ1807で比較して同一である限りステップ1803にプリチャージ等を行わず、すぐに戻るので同一Row Addressに含まれるピクセルに対して連続アクセス出来る。
【００９７】
ステップ1807においてピクセルPとピクセルNextPのRow Addressが異なっていた場合、ピクセルNextPの描画を行う為にはプリチャージを行いRow Addressを出力する為のオーバーヘッドが入るのでステップ1809に進み、現在アクセスを行っている装置とは異なる装置からのアクセス要求があるかどうかを調べ、あればステップ1810に進み、処理を一旦中断して異なる装置にメモリアクセスを行わせその終了を待つ。
【００９８】
他の装置のアクセスが終了してからステップ1811へ進み、NextPへのアクセスが出来る様に、プリチャージを行い、NextPのRow Addressを出力し、ステップ1811へ進む。もし、ステップ1809において異なる装置からのアクセス要求が無ければ、続けてピクセルNextPにアクセスする為、ステップ1811へ進む。
【００９９】
図１７の様な手順で描画を行う事によって同一Row Addressに含まれるデータをまとめて連続アクセスし、無駄なプリチャージ等を発生させず、アクセスサイクル数削減を実現する。
【０１００】
図１８は本実施形態の直線を示す画像データの格納例を示す図である。例えば、図１８に示す様にピクセルP1からピクセルP10までの10ピクセルの斜めの直線を描く場合、従来の方法では10回のシングルアクセスを行うので数９の時間がかかっていた。
【数９】
10 × (tPR + tRCD + tCK)
【０１０１】
図１９は本実施形態の直線描画を行う場合のアクセスのタイミングを示す図である。本実施形態の方法を用いると図１９に示す様なアクセスとなり、数１０の時間でアクセス出来る。
【数１０】
3× (tPR + tRCD ) + (3 + 3 + 2)×tCK
【０１０２】
tPR+tRCDの発生回数は10回から3回に減っているが、これは直線を描画する範囲が図１８に示す様に3Row Addressにしかまたがっていないからである。また、tCKの回数も10回から8回(8=3+3+2)に減っているが、これは複数ピクセルが同一アドレスに格納されている部分を1回のアクセスで済ませたからである。
【０１０３】
図１８においてピクセル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である。
【０１０４】
また、ピクセル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を順に描画する時の様子が図１９のタイミングチャートである。
【０１０５】
以上、画像の矩形領域、直線にアクセスする場合について本実施形態のアクセス方法について説明した。しかし、本実施形態のアクセス方法は矩形領域や直線にアクセスする場合のみではなく、垂直な直線、水平な直線、任意の方向の直線、円、曲線、複数の直線や曲線、直線や曲線で囲まれる領域でも同様に同一Row Addressに格納されるデータに連続してアクセスする事によってプリチャージ等のオーバーヘッドを削減する事が出来、アクセスサイクル数を減らす事が出来る。
【０１０６】
今迄、説明したDRAMへのアクセス方法はアクセスを行おうとしている範囲の内、同一Row Addressに格納されるデータへのアクセスは連続してアクセスして無駄なプリチャージ等を発生させない方法について説明した。この方法は画像を格納したDRAMに対するアクセスのスループットを最も高くする事が出来る。
【０１０７】
また、多くの場合、画像データは大きく、レイテンシが大きくともプリチャージ等のオーバーヘッドを減らし、スループットを高めた方が全体としての処理時間が短くなり、システム性能が上がるので本実施形態のDRAMアクセス方法は非常に有効である。しかし、リアルタイム性を必要とするシステムでは、今迄説明した一つの装置がDRAMを1Row Addressアクセスする間、他の装置を待機させてしまう様な方法を取ると、その待機時間の為、リアルタイム性が損なわれる場合がある。例えば、1Row Address当り1024Column AddressのDRAMを使用した場合、約1024cycleもの間一つの装置がDRAMを占有してしまう場合がある。
【０１０８】
そこで、ある程度の回数まで、連続アクセスした時、もし他の装置からのDRAMへのアクセス要求があった場合、一端アクセスを中断して他の装置にDRAMへのアクセス権を渡す事によって他の装置の待機サイクル数を削減する。この方法によりリアルタイム性とDRAMへのアクセス数の削減のバランスを取る事によって、システム全体としての性能を向上させる事が可能である。連続アクセス回数を制限した場合の画像の矩形領域、直線へのアクセス方法について図２０から図２３を用いて説明する。
【０１０９】
図２０は本実施形態の画像の矩形領域にアクセスし、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。図２０は画像の矩形領域へのアクセスの手順を示しているが、図２のアクセス手順と一致する手順が多く図２０のステップ2101からステップ2112は図２のステップ501からステップ512に対応する。図２のアクセス手順と異なるのは連続するアクセス数を数える為、cという変数と連続するアクセス回数の上限を表す定数kを加えた点である。
【０１１０】
まず、ステップ2101においてこれよりアクセスを開始する為、まだアクセス回数は0回であるのでc=0とする。そして、ステップ2103においてColumn Addressを出力し最初のアクセスを行うので1回アクセスした事を表す為、c=c+1とする。そして、図２の場合とは異なりステップ2105またはステップ2109の後はステップ2113に進む。
【０１１１】
ステップ2113では連続するアクセス回数がその上限に達しているかどうか調べる。もし、c＜kであれば、まだ上限まで達しておらず連続アクセス可能であるのでステップ2106へ進み、図２の場合と同様に連続アクセスを続け、Column Addressを出力してアクセスを行うステップ2107において連続アクセス数をカウントする。もし、c＜kでなければ連続アクセス回数の上限まで達した事を表しているので、ステップ2114に進みc=0と連続アクセス回数を0に戻す。
【０１１２】
次にステップ2115に進み現在アクセスしている装置とは異なる装置のアクセス要求があるかどうかを調べ、もし、アクセス要求が無ければ続けて連続アクセスしても良いのでステップ2106へ進む。この様に、もし、他の装置からのアクセスが無ければ図２と同じ手順に進むので、図２と同じアクセスサイクル数でアクセス出来る。
【０１１３】
ステップ2115において、現在アクセスしている装置とは異なる装置からのアクセス要求があれば、ステップ2112に進み、処理を一時中断し他の装置にDRAMへのアクセス権を渡す。図２の例ではステップ2112へ進むのは必ずRow Addressの変更があってプリチャージの必要な場合であったが今回は連続アクセス数の上限に達してこのステップ2112に進んでいる場合もあり、ステップ2112の後、プリチャージを行わない為の制御が必要である。
【０１１４】
そこで、ステップ2112の後ステップ2116へ進みステップ2112で行われた異なる装置による最終アクセスとNextAのRow Addressを比較する。これらのRow Addressが等しければプリチャージを行う必要はないのでステップ2107に進み、プリチャージを行わず連続してNextAにアクセスし、異なればステップ2111へ進んで、プリチャージ、Row Addressの出力を行ってからステップ2107へ進んでNextAにアクセスする。この様にk回連続アクセスする度に他の装置のアクセス要求をチェックしその要求があれば他の装置アクセスを行わせるので他の装置の最悪の待機サイクルはkサイクルで済む。
【０１１５】
図２１は本実施形態の画像の複数の矩形領域のリードとライトを行い、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。図２２は本実施形態の図２１のステップ2214の処理手順を示すフローチャートである。図２１及び図２２の場合もそれぞれ、図１３と図１４とほぼ同様の手順でアクセスするのであるが、図２０と同様に連続するアクセス回数を数える為の変数cと連続するアクセス回数を示す定数kを加え、図２０のステップ2113からステップ2116に対応するステップを追加している。
【０１１６】
図２１のステップ2216からステップ2219は図２０のステップ2113からステップ2116に対応する。図２２のステップ2315からステップ2318は図２０のステップ2213からステップ2216に対応し、更に、ステップ2307、ステップ2311、ステップ2312は図２０のステップ2107、ステップ2111、ステップ2212に対応しており、それぞれ図２０の場合と同様に働いてk回連続アクセスする度に他の装置のアクセス要求をチェックし、要求があれば他の装置にアクセスを行わせ、要求が無ければ連続アクセスを続け、無駄なプリチャージ等の発生を防ぐ。
【０１１７】
図２３は本実施形態の直線描画を行い、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。直線描画の場合も同様であり、そのDRAMアクセスの手順は図２３に示す通りである。
【０１１８】
この場合も図２０の場合と同様に連続するアクセス回数を数える為の変数cと連続するアクセス回数を示す定数kを加え、図２０のステップ2113からステップ2116に対応するステップ2412から2415を追加している。そして、ステップ2401でcの初期化、アクセスを行うステップ2405で連続アクセス回数を表すcのカウントアップを行う様にしている。これにより、k回連続アクセスする度に他の装置のアクセス要求をチェックし、要求があれば他の装置にアクセスを行わせて他の装置の動作のリアルタイム性を保証し、要求が無ければ連続アクセスを続け、無駄なプリチャージ等のオーバーヘッドの発生を防いでいる。
【０１１９】
図２０から図２３の例ではk(0以上の正の整数)回同一Row Addressのアクセス領域に連続アクセスする方法について説明した。しかし、多くのDRAMのRow Addressのサイズは1024byteや2048byte等の2の正の整数乗であり、kで1Row Addressのサイズが割り切れない場合がある。この様な場合、連続するアクセスはk回まで行う事が出来ずRow Addressの境界に至ってしまい、連続するアクセスを中断してプリチャージ等を行わなければならなくなり、プリチャージ等のオーバーヘッドの発生回数が増加してしまう。
【０１２０】
この様な事を避ける為にはkを2の0以上の正の整数乗とし、アクセスの先頭Column Addressを2の0以上の正の整数乗とすれば良い。この様にすれば、一般的なDRAMの1Row Addressのサイズは2の0以上の正の整数乗であるので、k回の連続アクセスの境界はRow Addressの境界となり、常にk回の連続するアクセスを行う事が出来る。
【０１２１】
特に2の0以上の正の整数乗回連続するアクセスを行う場合で、アドレスが連続している場合はDRAMのファーストページモードまたはバーストモードを使用する事が出来、出力するColumn Addressはその連続するアクセスの先頭アドレスのみで良く、メモリバスのアドレスの変化回数を減らす事が出来る。この様にアドレスの変化回数を減らす事によりメモリバスを駆動する為の消費電力を削減する事が出来る。
【０１２２】
また、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を比較して一致していればプリチャージ等を行わない。この比較は図２、図１３、図１４、図１７、図２０、図２１、図２２、図２３のRow Addressの比較を行っている全てのステップに当てはまる。この様にする事によって異なるバンクに対するアクセスが交互に起こった場合、無駄なプリチャージを行わずに済む。この事は、図２４の様な構成のシステムにおいてＤＲＡＭ４０２にシステムプログラムやシステムプログラムの使用するデータをUMAのシステムで有効に利用出来る。
【０１２３】
図２４は本実施形態のUMAを用いる画像表示システムの概略構成を示す図である。UMAの場合、ＣＰＵ2501によるシステムプログラムやデータに対するアクセスと描画装置４０１や表示制御装置４０４による画像データに対するアクセスは交互に発生する。この様な時、システムプログラムと画像データを格納するバンクを別のバンクにしておけば異なるバンクへのアクセスが交互に発生する事になりCPU2501によるシステムプログラムに対するアクセスと描画装置４０１や表示制御装置４０４による画像データへのアクセスの切換時に無駄なプリチャージ等を発生せずに済む。
【０１２４】
前記の様に本実施形態の画像データを格納するDRAMへのアクセス方法では、従来の様に画像のラインやピクセル単位でアクセスするのではなく、同一Row Addressに格納される画像データをまとめて連続アクセスし、その連続アクセスをページモードまたはバーストモードアクセスを用いて行う。この事により無駄なプリチャージ等のオーバーヘッドサイクルを無くし、画像データへのアクセスサイクル数を削減させる。これにより、表示制御装置による表示装置リフレッシュの為のDRAMアクセスのメモリバス占有率を下げる事が出来、システム性能を向上させることが出来る。また描画装置においてもその描画速度を向上させることが出来る。特に、同一のRow Addressに格納される可能性の高いアイコンの様な小さい領域の表示単位へのアクセスを行う場合に効率的なアクセスを行うことが可能である。更に、本実施形態のDRAMへのアクセス方法では、連続するアクセスの長さを制限しているので、表示制御装置、描画装置、CPUは、お互いの処理を長い間待機させる事を防ぐ事が出来る。これによりシステム全体のバランスを良くし、応答性の良いシステムを構成する事が可能である。
【０１２５】
この様に本実施形態のDRAMアクセス方法を用いるとDRAMへのアクセスサイクル数を削減することが出来、アクセス速度は向上し、消費電力を低減させることができる。特にUMAのシステムでは表示装置のリフレッシュに要するメモリバスのバス占有率が下がり、表示の為にシステムプログラムの実行が妨げられることが減り、システム性能を向上させることが可能である。また本実施形態の方法は、表示データを回転して表示システム、頻繁に描画を繰り返すシステムや通信、圧縮伸張、音楽、音声、映像等の再生、認識等のプログラムが平行して実行されるシステムにおいて非常に有効である。特に、表示データを９０度回転して表示する場合、大きく性能が向上する。
【０１２６】
以上説明した様に本実施形態のメモリアクセス装置によれば、Row Addressが等しい複数のラインの画像データのアクセスを連続して行うので、画像データへのアクセスサイクル数を削減することが可能である。
【０１２７】
【発明の効果】
本発明によればRow Addressが等しい複数のラインの画像データのアクセスを連続して行うので、画像データへのアクセスサイクル数を削減することが可能である。
【図面の簡単な説明】
【図１】本実施形態の画像表示システムの構成を示す図である。
【図２】本実施形態の画像の矩形領域にアクセスする場合の処理手順を示すフローチャートである。
【図３】本実施形態のＤＲＡＭ４０２への画像データの格納例１を示す図である。
【図４】本実施形態の図３の画像データにアクセスする場合のタイミングを示す図である。
【図５】本実施形態のＤＲＡＭ４０２への画像データの格納例２を示す図である。
【図６】本実施形態の図５の画像データにアクセスする場合のタイミングを示す図である。
【図７】本実施形態のＤＲＡＭ４０２への画像データの格納例３を示す図である。
【図８】本実施形態の図７の画像データにアクセスする場合のタイミングを示す図である。
【図９】本実施形態のＤＲＡＭ４０２に格納された画像の矩形領域を示す図である。
【図１０】本実施形態の図９の矩形領域REC1の画像データを読み出す場合のタイミングを示す図である。
【図１１】本実施形態の図９の矩形領域REC2に画像データを書き込む場合のタイミングを示す図である。
【図１２】本実施形態の図９の矩形領域REC1の画像データを矩形領域REC2にコピーする場合のタイミングを示す図である。
【図１３】本実施形態の画像の矩形領域にリードとライトを行う場合の処理手順を示すフローチャートである。
【図１４】本実施形態の図１３のステップ1614の処理手順を示すフローチャートである。
【図１５】本実施形態の通常表示時の画像データの読み出し順と表示の概要を示す図である。
【図１６】本実施形態の回転表示時の画像データの読み出し順と表示の概要を示す図である。
【図１７】本実施形態の直線描画を行う場合の処理手順を示すフローチャートである。
【図１８】本実施形態の直線を示す画像データの格納例を示す図である。
【図１９】本実施形態の直線描画を行う場合のアクセスのタイミングを示す図である。
【図２０】本実施形態の画像の矩形領域にアクセスし、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。
【図２１】本実施形態の画像の複数の矩形領域のリードとライトを行い、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。
【図２２】本実施形態の図２１のステップ2214の処理手順を示すフローチャートである。
【図２３】本実施形態の直線描画を行い、他の装置にアクセス権を渡す場合の処理手順を示すフローチャートである。
【図２４】本実施形態のUMAを用いる画像表示システムの概略構成を示す図である。
【図２５】従来の画像データメモリへのデータ格納の様子を示す図である。
【図２６】従来の画像データメモリへのアクセスのタイミングを示す図である。
【図２７】従来の一般的なDRAMを32bitバスに接続した場合の1Rowを示すAddressのサイズである。
【符号の説明】
４０１…描画装置、４０２…ＤＲＡＭ、４０３…表示装置、４０４…表示制御装置、４０５…アービトレーション回路、４０６…ラインアクセス回路、４０７…ラインアクセス制御回路、２５０１…ＣＰＵ、１０１…ＤＲＡＭ。
【図１】
0003688977.tif 000002
【図２】
0003688977.tif 000003
【図３】
0003688977.tif 000004
【図４】
0003688977.tif 000005
【図５】
0003688977.tif 000006
【図６】
0003688977.tif 000007
【図７】
0003688977.tif 000008
【図８】
0003688977.tif 000009
【図９】
0003688977.tif 000010
【図１０】
0003688977.tif 000011
【図１１】
0003688977.tif 000012
【図１２】
0003688977.tif 000013
【図１３】
0003688977.tif 000014
【図１４】
0003688977.tif 000015
【図１５】
0003688977.tif 000016
【図１６】
0003688977.tif 000017
【図１７】
0003688977.tif 000018
【図１８】
0003688977.tif 000019
【図１９】
0003688977.tif 000020
【図２０】
0003688977.tif 000021
【図２１】
0003688977.tif 000022
【図２２】
0003688977.tif 000023
【図２３】
0003688977.tif 000024
【図２４】
0003688977.tif 000025
【図２５】
0003688977.tif 000026
【図２６】
0003688977.tif 000027
【図２７】
0003688977.tif 000028