以下,図面にしたがって本発明の実施の形態について説明する。但し,本発明の技術的範囲はこれらの実施の形態に限定されず,特許請求の範囲に記載された事項とその均等物まで及ぶものである。
[画像メモリのメモリマッピングと問題点]
図1は,本実施の形態における画像メモリのメモリマッピングを示す図である。図1において,表示デバイス10を含む画像処理システムにおける表示画像データは,画像メモリ15内に記憶される。表示画像データは,各画素の輝度信号Yと色差信号Ca,Cbや,各画素のRGB階調信号などのデータで構成され,各信号は例えば8ビット(1バイト)のデータで構成される。
一方,画像メモリ15は,一般的にSDRAMなどの半導体基板上に集積回路が形成された大容量且つ高速の半導体メモリ装置からなる。このような画像メモリは,複数のバンクBank0〜3(図1では4つのバンク)で構成され,各バンクBank0は複数のブロックBLK−0を有し,各ブロックは複数のワード線WLとビット線BLとその交差位置のメモリセルMCとを有する。メモリセルは,図示しないがワード線にゲートが接続されたMOSトランジスタとトランジスタに接続されたキャパシタとで構成される。そして,図1の例では,4つのバンクはバンクアドレスBA0−BA3に対応付けられ,ワード線はロウアドレスRA0−RA7に対応付けられ,ビット線はコラムアドレスCA0−CA127に対応付けられる。バンクアドレスBAとロウアドレスRAの組み合わせであるバンク内のワード線が選択され,コラムアドレスCAによりビット線が選択される。バンクアドレスBA,ロウアドレスRA,コラムアドレスCAにより,4バイトBY0−3のデータがアクセスされる。1バイトは8ビットで構成されるので,一回のアクセスで4バイト,つまり4×8=32ビットのデータがメモリの入出力端子に関連付けられて,読み出しまたは書き込みが行われる。一般に,上記の1バイトのデータ(8ビットデータ)が画素の信号に対応する。一度のアクセスで4バイトデータを入出力することで,画像メモリに対する単位時間に処理できる画素数を意味する帯域幅を大きくすることができる。
表示画像データに対するメモリマッピング12によれば,バンクアドレスBAとロウアドレスRAにより特定されるページ領域14が行列に配置される。そして,1つのページ領域14は,拡大領域14Eに示されるとおり,コラムアドレスCA0−127で特定される128のメモリ単位領域を有し,各メモリ単位領域は4バイトBY0−3のデータを記憶する。この4バイトBY0−3のデータが,メモリの入出力端子DQ0−7,DQ8−15,DQ16−23,DQ24−31の,合計32の入出力端子を経由して入出力される。この各バイトの8ビットデータが画素の信号データに対応する。
上記のメモリマッピング12は,複数バンク構成のSDRAMなどの画像メモリ15を高速動作させるのに適している。SDRAMは,バンクアドレスBAとロウアドレスRAと共に与えられるアクティブコマンドに応答して,選択されたバンク内の選択されたワード線を駆動し,メモリセルのデータをビット線に読み出し,ビット線に対応付けられたセンスアンプを活性化してビット線電位を増幅するアクティブ動作を行い,その後,コラムアドレスCAと共に与えられるリードコマンドに応答して,選択されたビット線からデータを読み出すリード動作を行う。あるいは,SDRAMは,アクティブ動作後に,コラムアドレスCAと書き込みデータと共に与えられるライトコマンドに応答して,選択されたビット線に書き込みデータを書き込むライト動作を行う。リード動作またはライト動作の後にプリチャージコマンドによるプリチャージ動作が行われ,再度,アクティブ動作,リードまたはライト動作になる。このように,SDRAMでは,各バンクが独立してアクティブ動作,リード動作,ライト動作を行うことができる。
図1のメモリマッピング12によれば,上下左右に隣接するページ領域14には異なるバンクアドレスBA0−3が対応付けられる。すなわち,メモリマッピング12の奇数行にはバンクアドレスBA0,1が交互に配置され,偶数行にはバンクアドレスBA2,3が交互に配置される。さらに,メモリマッピング12のラスタ方向(行方向)に,ロウアドレスRA0−7が2つずつ繰り返しながらインクリメントされ,メモリマッピング12の各行は,4つのロウアドレスRA0−3,RA4−7で折り返されている。
このように画像上のページ領域を,メモリ上において,同一バンクのページ領域がロウ方向とコラム方向のいずれにも隣接しないように割り当てるメモリマッピングを採用すれば,画像メモリへの代表的なアクセスである水平アクセス,つまりページ領域14を行方向に移動して選択するアクセスでは,2つのバンクで同時にアクティブ動作とリード・ライト動作とを実行させながらアクセスすることができ,アクセス効率を高めることができる。また,垂直方向にアクセスする場合も同様である。
図2は,画像メモリにおける2つのアクセスを示す図である。図2(A)の水平アクセスは,映像のフレーム画像の入出力時に多く発生するアクセスであり,画像を左上から右下に向けて水平方向20にアクセスするラスタスキャンに相当する。一方,図2(B)の矩形アクセスは,MPEGなどの画像の圧縮と伸長処理で多く発生するアクセスで,任意の縦横比の矩形22内を左上から右下に向けて矢印24のようにアクセスする動作に相当する。矩形領域22は,MPEGの動きベクトル抽出対象のブロックなどに対応する。
一般に,画像メモリを使用する画像システムでは,フレームメモリである画像メモリの転送レートが画面表示動作よりも速く設定され,画像メモリの水平アクセスで読み出された画像データを画面表示している間に,矩形アクセスにより新しいフレームデータを作成し,とぎれることなくフレームデータの作成とフレームデータの出力とが行えるようになっている。このため,実際の画像システムでは水平アクセスと矩形アクセスとが混在することになる。
水平アクセスでは,水平方向20にスキャンされるので,隣接するバンクを同時にアクティブさせながら効率的にメモリアクセスを行うことができる。一方,矩形アクセスでは,アクセスされる矩形領域22の位置を,単一のバンクを越えないようにし,更にバンク内のページ領域を超えないようにすることで,バンクアドレスBAとロウアドレスRAとを指定する1回のアクティブ動作で矩形領域22内のデータをアクセスできるので,水平アクセスと同様に効率的なメモリアクセスを行うことができる。
図3は,水平アクセスの課題を示す図である。前述のメモリマップ12において水平方向20にアクセスする水平アクセスのタイミングチャート30が示されている。このタイミングチャートでは,メモリマップ12の4行目のページ領域(BA0/RA4,BA1/RA4,BA0/RA5,BA1/RA5)を水平アクセス(図中20)している時に,自動リフレッシュコマンドAREFが発生している。タイミングチャート30には,コマンドCMD,クロックCLK,バンクアドレスBA,ロウアドレスRA,コラムアドレスCA,入出力端子DQが示されている。
前提としてバーストレングスBLは4に設定されている。アクティブコマンドACT32でBA0/RA4のページ領域がアクティブ動作し,リードコマンドRD33でBA0/CA0の読み出しが指示されると,所定のレイテンシ(図中では4クロック)後に4組の32ビットデータが入出力端子DQから4クロックサイクルで連続して出力される。つまり,ページ領域BA0/RA4内のコラムアドレスCA0〜CA3における4組の32ビットデータが4回に分けて連続出力される。このバースト動作は,SDRAMが規格上要求されている動作である。図1の拡大されたページ領域14EのコラムアドレスCA0〜CA3の各4バイト(32ビット)データが4回に分けて連続出力されることを意味する。
次に,アクティブコマンドACT34とリードコマンドRD35で,ページ領域BA1/RA4の4バイトデータが出力される。同様に,アクティブコマンドACT36とリードコマンドRD37で,ページ領域BA0/RA5の4バイトデータが,アクティブコマンドACT38とリードコマンドRD39で,ページ領域BA1/RA5の4バイトデータがそれぞれ出力される。
この時点で,ロウアドレスRA6を指定する自動リフレッシュコマンドAREF40が発生すると,画像メモリを構成するSDRAMメモリは,内蔵する全てのバンク,4バンクBA0−3でリフレッシュ動作を並列に実行する。つまり,4バンク内のロウアドレスRA6のワード線が同時に駆動され,センスアンプが活性化され,再書き込みが行われ,プリチャージ動作が行われる。このリフレッシュ動作は,図3中のメモリマップ12中の4つのページ領域31に対して行われることを意味する。そのため,リフレッシュ動作期間tREFの間,水平アクセス(矢印20)は一時的に停止する。そして,リフレッシュ動作期間tREF後に,再度アクティブコマンドACT41とリードコマンドRD(図示せず)により次のページ領域BA0/RA6をアクセスすることで,水平アクセスを再開する。
自動リフレッシュコマンドAREFによるリフレッシュ動作が4バンク同時に行われるので,水平アクセス中にリフレッシュコマンドが発生すると水平アクセスが一時的に中断することになり,実効的な帯域幅が狭くなる。これが,水平アクセスにおける課題である。
図4は,矩形アクセスの第1の課題を示す図である。図4(A)に水平アクセスの例が,図4(B)に矩形アクセスの例が示される。いずれもコラムアドレスCAで選択されるメモリ単位領域(4バイト領域)45の境界を越えるアクセスである。前述したとおり,一般的なメモリマップによれば,バンクアドレスBAとロウアドレスRAで特定されるページ領域14内は,コラムアドレスCA0−127で選択される複数のメモリ単位領域45に区分され,1つのコラムアドレスCAにより4バイトBY0−3のデータが同時にアクセスされる。各バイトの8ビットデータが画素の信号に対応する。
そのため,水平アクセスでは比較的無駄なくアクセスが行われるが,矩形アクセスでは無駄なデータの入出力が発生し,実効的な帯域幅が低下する。
図4(A)の水平アクセスでは,領域22Aをアクセスする場合,ページ領域BA0/RA0を指定するアクティブコマンドACTに続いて,4つのリードコマンドRDがコラムアドレスCA0−3について発行され,コラムアドレスCA0−3それぞれの4バイトデータBY0−3が連続して入出力される。この場合,領域22Aは,コラムアドレスCA0のバイトBY2,3からコラムアドレスCA3のバイトBY0,1までを含むので,コラムアドレスCA0に対応する4バイトの入出力DQのうち,バイトBY0,1のデータは必要なく,コラムアドレスCA3に対応する4バイトの入出力DQのうち,バイトBY2,3のデータも必要ない。よって,有効出力データは,12バイト/16バイトである。
これに対して,図4(B)の矩形アクセスでは,矩形領域22Bをアクセスする場合,ページ領域BA0/RA0を指定するアクティブコマンドACTに続いて,6つのリードコマンドRDがコラムアドレスCA0,1,4,5,8,9について発行され,それらのコラムアドレスCA0,1,4,5,8,9それぞれの4バイトデータBY0−3が連続して入出力される。しかし,矩形領域22Bがコラムアドレスで選択されるメモリ単位領域(4バイト領域)45の境界と一致せず且つ4バイト領域の境界を越えているので,各4バイトデータBY0−3のうちそれぞれ半分は必要のないデータになる。つまり,有効出力データは,12バイト/24バイトである。図4(B)はワーストケースを示している。
このように,同じバイト数のデータであっても,上記の矩形アクセスは,6回のリードコマンドRDにより24バイトのデータを入出力する必要があるが,水平アクセスでは,4回のリードコマンドRDにより16バイトのデータを入出力すれば良い。よって,1つのコラムアドレスで選択される4バイト領域(メモリ単位領域)45の境界を越える矩形領域のアクセスは,実効的な帯域幅が低下する。これが,矩形アクセスの第1の課題である。
図5は,矩形アクセスの第2の課題を示す図である。矩形アクセスは,任意の矩形領域に対するアクセスであり,矩形領域が隣接するページ領域14の境界14BOUを越える場合がある。図5には,矩形領域22(A)が同じページ領域BA1/RA6内の16バイト領域の場合と,矩形領域22(B)が4つの隣接するページ領域BA3/RA2,BA2/RA3,BA1/RA6,BA0/RA7にまたがる16バイト領域の場合とが示されている。
矩形領域22(A)の場合は,タイミングチャートに示されるとおり,ページ領域BA1/RA6についての1回のアクティブコマンドACT(図中50)と,コラムアドレスCA6,7,10,11についての4回のリードコマンドRD(図中52)を発行すれば,16バイトのデータを入出力できる。
一方,矩形領域22(B)の場合は,タイミングチャートに示されるとおり,ページ領域BA3/RA2,BA2/RA3,BA1/RA6,BA0/RA7についての4回のアクティブコマンドACT(図中54)と,コラムアドレスCA127(BA3),CA124(BA2),CA3(BA1),CA0(BA0)についての4回のリードコマンドRD(図中56)を発行しなければ,16バイトのデータを入出力できない。つまり,矩形領域22が隣接するページ領域を含む場合は,異なるバンクをアクティブ動作させるために,複数回のアクティブコマンドACTを発行し,それぞれのバンク内のコラムアドレスでリードRDまたはライトコマンドWRを発行しなければならない。よって,単位時間当たりにアクセスできるデータ量が減り,実効的な帯域幅が狭くなる。
図5の矩形領域22(B)が,コラムアドレスで選択されるメモリ単位領域(4バイト領域)の途中で区画される場合は,図4で示した第1の課題も同時に有することになり,複数回のアクティブコマンドを必要とすることに加えて(第2の課題),リードコマンドに対する入出力データDQ内に不必要なデータが含まれる(第1の課題)ことになり,より一層,実効的な帯域幅の低下を招く。
以上のとおり,画像メモリにおいてSDRAMの構造上の特性を利用したメモリマッピングを採用した場合,第1に水平アクセス中のリフレッシュコマンドの発生でアクセスが中断するという課題,第2に矩形アクセス領域がコラムアドレスで選択されるメモリ単位領域(4バイト領域)の境界を越える場合に入出力データに無駄が生じるという課題,第3に矩形アクセス領域がバンクアドレスで特定されるページ領域の境界を越える場合に複数のバンクアクティブコマンドを発行する必要が生じるという課題などを有する。
[本実施の形態の概略説明]
以下は,それらの課題を解決する構成と動作について概略的に説明する。
本実施の形態では,リフレッシュ動作に起因するアクセスの中断,矩形アクセスによるアクセス効率の低下などを解決するものであり,第1に,水平アクセス時にはアクセス動作と平行してバックグランドでリフレッシュ動作を可能にし,第2に矩形アクセス時にコラムアドレスで選択されるメモリ単位領域(4バイト領域)とずれた領域またはメモリ単位領域を超える領域へのアクセスを効率的に行う機能を可能にし,さらに第3に矩形アクセス時にページ領域の境界を越えて複数のページ領域を含む矩形領域へのアクセスを効率的に行う機能を可能にする。
図6は,本実施の形態における全体の動作を示す図である。前述したとおり,画像メモリを利用する画像システムでは,画像メモリへの水平アクセスと矩形アクセスとが混在して発生する。図6の例は,メモリマップ12の1行目のバンクアドレスBA0,BA1のページ領域に対する水平アクセス20−1と,2行目のページ領域BA2/RA2に対する矩形アクセス22と,2行目のバンクアドレスBA2,BA3のページ領域に対する水平アクセス20−2とが順番に発生する例である。矩形アクセス22では,1つのページ領域BA2/RA2内のメモリ単位領域(4バイト領域)45の境界を越えた矩形領域に対してアクセスが行われている。
この場合,矩形アクセスでは,メモリの任意のバンクにアクセスが発生するが,水平アクセスでは,ある一定期間は決められたバンクにしかアクセスが発生しない。例えば,メモリマップ12内の1行目の水平アクセス中は,バンクBA0,1にしかアクセスが発生せず,2行目のバンクBA2,3にはアクセスは発生しない。逆に,2行目の水平アクセス中は,バンクBA2,3にしかアクセスが発生せず,1行目のバンクBA0,1にはアクセスは発生しない。
そこで,水平アクセス20−1において,メモリアクセスに入る前に,今後しばらくアクセスが発生しないバンクを指定するバックグランド・リフレッシュコマンドBRENを発行して,アクセスが発生しないバンク情報SA=2/3をメモリに通知する。つまり,バックグランド・リフレッシュコマンドBRENで指定されたバンクSAには,その後の自動リフレッシュ動作を許可する。よって,リフレッシュ動作を指定されたバンクSA=2,3への通常アクセスは禁止される。
図6の水平アクセス20−1では,バックグランド・リフレッシュコマンドBREN(図中60)と共にその後のリフレッシュ動作を許可するリフレッシュバンク情報SA(図中61)が発行され,その後,アクティブコマンドACTでページ領域BA0/RA0がアクティブ動作され,リードコマンドRD(BA0,CA0)でコラムアドレスCA0の4バイトデータBY0−3が入出力端子DQに出力される。同様に,アクティブコマンドACTでページ領域BA1/RA0がアクティブ動作され,リードコマンドRD(BA1,CA0)でコラムアドレスCA0の4バイトデータBY0−3が入出力端子DQに出力される。但し,図6では,BL=4に対応する4組の4バイトデータの出力は省略されている。
この水平アクセス20−1の期間内において,画像メモリ内でバックグランドリフレッシュコマンドBRENにyおり軌道される自動リフレッシュリクエスト(図示せず)が発行されると,バンクBA2,3に対するリフレッシュ動作が開始される。しかし,水平アクセスは,バンクBA0,1に対するアクセスしか発生せず,且つSDRAMでは異なるバンクは独立してアクティブ動作可能であるので,バンクBA2,3でのリフレッシュ動作により水平アクセスがディスターブされて中断することはない。
次に,図6の矩形アクセスでは,矩形領域22が同じページ領域BA2/RA2内であって,コラムアドレスCA0内の後半の2バイトBY2,3と,コラムアドレスCA1の前半の2バイトBY0,1とを含んでいる。この場合,SDRAMの一般的なリードコマンドによれば,コラムアドレスCA0,1に対して2回のリードコマンドRDを発行する必要がある。
しかし,本実施の形態では,コラムアドレスCA0(図中63)に対するリードコマンドRD(図中62)を発行し,そのアクセスでのバイト組み合わせ情報SB(図中64)を供給することで,バイト組み合わせ情報SBに対応する4バイトを自動的に入出力端子DQに対応付けることができる。上記の例では,バイト組み合わせ情報SBとして,2バイトシフトするバイトシフト情報SB=2を指定することで,コラムアドレスCA0の4バイトデータのうち2バイトシフトしたバイトBY2,3のデータと,その隣のコラムアドレスCA1の4バイトデータのうち最初の2バイトのバイトBY0,1のデータとを自動的に出力する。
図6の矩形アクセスでは,ページ領域BA2/RA2に対するアクティブコマンドACTに続いて,BA2/CA0(図中63)を指定するリードコマンドRD62がバイト組み合わせ情報SB=2(図中64)と共に発行される。このバイト組み合わせ情報SB=2は,4バイト領域内の2バイトシフトしたバイトBY2から4バイトのデータの組み合わせを意味している。あるいは,このバイト組み合わせ情報SB=2は,4バイト領域内の最初のバイト位置(スタートバイト)がBY2であることを意味している。これに応答して,画像メモリは,コラムアドレスCA0の4バイトデータのうち,2バイトシフトした(またはスタートバイトBY2からの)バイトBY2,3のデータと,コラムアドレスCA1のバイトデータBY0,1のデータとを4バイトの入出力端子DQに対応させて出力する。メモリコントローラは,コラムアドレスCA0,1に対するリードコマンドRDを2回発行する必要はない。しかも,4バイトの入出力端子DQには全て必要なデータのみが出力され,不必要なデータは出力されずアクセス効率が高くなる。
更に,画像メモリは,BA2/CA4を指定するリードコマンドRDが組み合わせ情報SB=2と共に発行されると,コラムアドレスCA4,5内それぞれ2バイトからなる4バイトデータを出力し,BA2/CA8を指定するリードコマンドRDが組み合わせ情報SB=2と共に発行されると,コラムアドレスCA8,9内それぞれ2バイトからなる4バイトデータを出力し,BA2/CA12を指定するリードコマンドRDが組み合わせ情報SB=2と共に発行されると,コラムアドレスCA12,13内それぞれ2バイトからなる4バイトデータを出力する。
その結果,矩形アクセス領域22が8つのコラムアドレスCA0,1,4,5,8,9,12,13のメモリ単位領域(4バイト領域)を含んでいても,リードコマンドRDは,コラムアドレスCA0,4,8,12に対して4回発行するだけでよく,且つ,入出力端子には不必要なデータの出力はなく,アクセス効率を2倍に高めることができる。
矩形アクセス後の水平アクセス20−2では,メモリマップ12の2行目のページ領域へのアクセスであるので,当分の間はバンクBA0,1への通常アクセスは発生しない。そこで,前述と同様に,バックグランド・リフレッシュコマンドBREN(図中65)と共にリフレッシュ動作を許可するバンク情報SA(図中66)としてSA=0/1が指定され,その後のバンクBA2,3への通常アクセスに平行して,バンクBA0,1への自動リフレッシュ動作が許可される。
以上のとおり,水平アクセス20−1,20−2では,通常アクセス中にバックグランドでの自動リフレッシュを許可し,矩形アクセスではバックグランドでの自動リフレッシュを許可しない。その結果,水平アクセス20−1では,バンクBA0,1で通常アクセス動作,バンクBA2,3でリフレッシュ動作が平行して可能になり,水平アクセス20−2では,バンクBA2,3で通常アクセス動作,バンクBA0,1でリフレッシュ動作が平行して可能になる。これにより,リフレッシュ動作による水平アクセスのディスターブを回避することができ,実効的な帯域幅の低下を抑えることができる。
また,矩形アクセスでは,バックグランドリフレッシュ動作を禁止する。これにより,任意の領域への矩形アクセスが,リフレッシュ動作によって中断されることを防止することができる。よって,トータルの実効的な帯域幅の低下を抑制できる。
そして,矩形アクセスでは,バイトの組み合わせ情報SBをリードコマンドと共に指定することで,リードコマンドのコラムアドレスCAを先頭として任意のバイトの組み合わせで,組み合わされたバイトデータを4バイトの入出力端子DQに出力することができる。バイトの組み合わせ情報SBは,アクティブコマンドに先立ってモードレジスタを設定するコマンドと共に指定することも可能である。
図7は,本実施の形態における全体の動作の別の例を示す図である。この例は,メモリマップの1行目のページ領域への水平アクセス20−1と,矩形アクセス22と,メモリマップの2行目のページ領域への水平アクセス20−2とが順に行われる例である。そして,矩形アクセス22では,矩形領域22がページ領域の境界14BOUを越えて4つのページ領域BA3/RA2,BA2/RA3,BA1/RA6。BA0/RA7を含んでいる。
水平アクセス20−1,20−2では,図6と同様に,バックグランド・リフレッシュコマンドBRENと共にリフレッシュバンク情報SAを発行することで,そのバンクへのその後の自動リフレッシュ動作を許可して,水平アクセスがリフレッシュ動作でディスターブされることを防止する。そして,複数ページ領域,すなわち複数バンクを含む矩形領域22への矩形アクセスでは,同時にアクティブ動作させるバンク情報としてマルチバンク情報SA’をアクティコマンドACTと共に発行する。これに応答して,画像メモリは,アクティブコマンドACTと共に発行されるアドレス情報BA,RAを左上として,マルチバンク情報SA’で指定された複数バンクのページ領域を同時にアクティブ動作する。その結果,1回のアクティブコマンドACTに応答して,複数バンクを同時にアクティブ動作することができ,その後は,各バンクに対するリードコマンドRDをバンクアドレスBAとコラムアドレスCAと共に発行することで,各バンク内のコラムアドレスCAで選択されたメモリ単位領域(4バンク領域)の4バンクデータを入出力端子DQに出力することができる。
図7の矩形アクセスの例では,アクティブコマンドACT(図中70)と共に左上のページ領域を特定するアドレス情報BA3,RA2(図中71)が発行され,それと同時に,マルチバンク情報SA’=0−3(図中72)も発行されている。これに応答して,画像メモリは,左上のページ領域のバンクBA3を先頭にして,マルチバンク情報SA’で指定された4バンクBA3,BA2,BA1,BA0を同時にアクティブ動作し,それに続く4つのリードコマンドRDで指定されたバンクBA/コラムアドレスCAの4バイトデータを順に出力する。ライトコマンドの場合も同様である。図中では,4つのリードコマンドRDに対して,BA3/CA127,BA2/CA124,BA1/CA3,BA0/CA0が供給され,それぞれの4バイトデータが出力されている。
マルチバンク情報SA’が「横方向の2バンク」であれば,アクティブコマンドACTで供給されるバンクアドレスBAに対応する左上バンクの右隣のバンクも同時にアクティブ動作され,「縦方向の2バンク」であれば左上バンクの下隣のバンクも同時にアクティブ動作される。同様に,マルチバンク情報SA’が「縦横4バンク」であれば,左上バンクの右隣,下隣,右下隣の4つのバンクも同時にアクティブ動作される。したがって,マルチバンクを自動的にアクティブ動作させるためには,メモリマップの各行のロウアドレスRAがどのように配置されているか,具体的にはロウアドレスRAがどの単位で各行を折り返されているかの情報(ロウアドレスステップ情報)をあらかじめレジスタなどに設定しておくことが好ましい。
図7の矩形アクセスにおいて,アクティブコマンドACT時のマルチバンク情報SA’に加えて,図6で説明したバイト組み合わせ情報SBがリードコマンドRDと共に指定されると,ページ領域14の境界14BOUを越えて,且つコラムアドレスCAで選択されるメモリ単位領域(4バンク領域)の一部のバイトの組み合わせについて,自動的に入出力端子DQに対応付けることができる。
図8は,本実施の形態における画像処理システムの構成図である。画像処理システムは,メモリコントローラに対応する画像処理チップ80と,画像処理対象の画像データを記憶する画像メモリチップ86とで構成される。画像処理チップ80とメモリチップ86は半導体チップであり,それぞれ単一の半導体基板に集積回路が形成されている。
画像処理チップ80は,例えばMPEGの画像圧縮と伸長に対応するエンコーダ,デコーダなどの画像処理を行う画像処理制御部81と,画像処理制御部81からの画像領域の指定を含むメモリアクセス要求に応答して,画像メモリチップ86へのアクセス制御を行うメモリ制御部82とを有する。メモリ制御部82は,水平アクセスでのバックグランドリフレッシュ動作を制御するバックグランドリフレッシュ制御部84と,矩形アクセスでメモリ単位領域(4バイト領域)内の任意のバイトの組み合わせのアクセスを制御するバイトバウンダリ制御部85と,矩形アクセスで複数のページ領域を含むアクセスを制御するマルチバンク活性化制御部83とを有する。これらの制御により,それぞれの動作に必要なコマンドとバンクアドレス,ロウアドレス,コラムアドレス,バイト組み合わせ情報SB,リフレッシュバンク情報SA,マルチバンク情報SA’などを,画像メモリ86に発行する。
画像メモリ86は,メモリコア92内に複数のバンクBank0−3を有し,これらのメモリコア92に対して,主にアクティブ動作の制御を行うロウ制御部87と,リードやライト動作の制御を行うコラム制御部90と,バックグランドリフレッシュ制御部89とを有する。ロウ制御部87はマルチバンク活性化制御部88を有し,コラム制御部90はバイトバウンダリ制御部91を有する。また,各バンクBank0−3内には,ロウデコーダRowDecと,コラムデコーダColDecと,メモリアレイMAと,センスアンプ群SAと,メモリアレイMAと入出力端子DQとを対応付ける入出力ユニット93などが含まれる。
図9は,本実施の形態における画像メモリの構成図である。画像メモリチップ86は,外部端子群93には,クロックCLKに加えて,RAS,CAS,WE,CSからなるコマンド端子,バンクアドレス端子BA0,BA1,リフレッシュバンク情報端子SA0,SA1,複数個のアドレス端子Add,所定ビット数のバイト組み合わせ情報端子SB,所定ビット数のデータ入出力端子DQ,そして,図示しないマルチバンク情報端子SA’などが含まれる。
なお,前述のバイトバウンダリ機能,マルチバンクアセス機能,バックグランドリフレッシュ機能に必要な端子SB,SA’,SAは,共通の特殊ピンによっても実現可能である。それらの情報は,異なるコマンドと共に供給されるので,供給コマンドに応じて特殊ピン入力データを対応するレジスタに設定すればよい。
また,これらの端子SB,SA’,SAは,使用されていない端子で実現可能である。例えば,リード動作において,ロウアドレスがアドレス端子Add0〜12で入力され,コラムアドレスがアドレス端子Add0〜9で入力されるとすると,コラムアドレスが入力されるときアドレス端子Add10〜12は使用されていない。よって,コラムアドレス入力時に使用されていないアドレス端子Add10〜12から制御データSB,SA’,SAを入力することができる。
これらの外部端子群93には,それぞれバッファ94を介して内部回路に接続される。上記のコマンド群はコマンド制御部95に入力され,コマンドに対応した制御信号が内部回路に供給される。また,モードレジスタセットコマンドに応答して,コマンド制御部95は,アドレスピンAddに供給される設定データに基づいて,モードレジスタ96に所定の設定値を設定する。モードレジスタ96に設定された設定情報は内部回路に供給される。ロウ制御部87は,マルチバンク活性化制御部88を有し,さらにマルチバンク活性化に必要なロウアドレス演算部97と有する。マルチバンク活性化制御部88からは,活性化すべきバンクにアクティブパルスが供給される。また,ロウアドレス演算部97からは,活性化すべきロウアドレスが各バンクに供給される。そして,バンクBank内にはバンク内のリフレッシュ対象のロウアドレスを指示するリフレッシュロウアドレス指示部98が設けられる。リフレッシュロウアドレス指示部98は,例えばリフレッシュカウンタを有し,自動リフレッシュコマンド発生時に必要なロウアドレスを生成する。バンク内の構成は前述の通りである。
以下,図6,7で説明したバイトバウンダリ機能と,マルチバンクアクティブ機能と,バックグランド・リフレッシュ機能とについて,順番に,画像メモリとメモリコントローラの詳細を説明する。
《バイトバウンダリ》
図10は,バイトバウンダリ機能を説明する図である。この図は,あるバンク内のロウアドレスRAとコラムアドレスCAとにより選択されるバイト群(またはビット群)を示している。前述したとおり,この例も,ロウアドレスRAとコラムアドレスCAとにより4バイトのデータ領域(メモリ単位領域)が選択され,32ビットの入出力端子DQ0−31と関連付けられる。よって,ロウアドレスRAとコラムアドレスCAの交差位置の「0123」は,それぞれバイトBY0,BY1,BY2,BY3を意味している。または,4バイトの代わりに4ビットであっても良い。その場合は,ロウアドレスRAとコラムアドレスCAとにより4ビットのデータ領域(メモリ単位領域)が選択され,4ビットの入出力端子DQ0−3と関連付けられる。以下は,簡単のために4バイトの例で説明する。
図10(A)は従来例に対応し,ロウアドレスRAとコラムアドレスCAとにより4バイトのデータ領域が一意に決定し,常に4バイト領域(メモリ単位領域)100,101の32ビットが入出力端子DQ0−31と関連付けられる。
それに対して,図10(B)は本実施の形態に対応し,ロウアドレスRAとコラムアドレスCAとで特定される4バイト領域を先頭にして,任意のバイトの組み合わせで入出力端子DQ0−31と関連付けることができる。図中,RA=0,CA=0で選択される4バイト領域100は全てそのまま入出力端子DQ0−31と関連付けている。一方,RA=2,CA=1で選択される4バイト領域内の2バイトシフトした3バイト目から連続する4バイトの領域102を入出力端子DQ0−31と関連付けている。この場合は,RA=2,CA=1で選択される4バイト領域内のどのバイトを先頭にするかの第1の情報(スタートバイト)と,その先頭バイトからアップ方向に4バイト連続かダウン方向に4バイト連続かアップ方向に1つ置きかダウン方向に1つ置きかなどの第2の情報(ビッグエンディアンまたはリトルエンディアン)とが,リードコマンドやライトコマンドと共に与えられる。
そして,上記の第1,第2の情報からなるバイト組み合わせ情報に基づいて,画像メモリの入出力ユニットは,ページ内の異なるコラムアドレスCAに対応するバイトデータのうち合計で4バイトを抽出し,入出力端子DQ0−31に関連付ける。そして,必要な4バイトのデータを32ビットの入出力端子DQから1回で入出力する。
図11は,バイトバウンダリ機能におけるタイミングチャートを示す図である。この例は,メモリマップ12内の4バイト102をアクセスする例である。まず,アクティブコマンドACT(図中110)と共にバンクアドレスBA=0とロウアドレスRA=2とが与えられ,対応するページ領域がアクティブ動作され,リードコマンドRD(図中111)と共にバンクアドレスBA=0とコラムアドレスCA=1(図中112)とが与えられ,更に,バイトの組み合わせ情報113として,バイトシフト量またはスタートバイトを示す第1の情報SB=2(図中114)と組み合わせパターンを示す第2の情報BMR=UP(図中115)とが与えられる。
画像メモリは,このバイト組み合わせ情報SB=2,BMR=UPに基づいて,コラムアドレスCA=1で選択される4バイト領域の後半の2バイトデータ(BY2,3)と,コラムアドレスCA=2で選択される4バイト領域の前半の2バイトデータ(BY0,1)とを,それぞれ入出力端子DQ16−23,DQ24−31,DQ0−7,DQ8−15に図示されるとおり対応付ける。この対応付けは,たとえば図9のバイトバウンダリ制御部91により入出力ユニット93で行われる。よって,異なるコラムアドレスのデータであるにもかかわらず,リードコマンドRDを1回与えるだけで,任意の組み合わせの4バイトデータを入出力端子DQに対応付けることができる。ライトコマンドの場合も同様である。
図11において,ロウアドレスRAとコラムアドレスCAとにより選択される4バイト領域は,4ビット領域であっても同様のバイトバウンダリ機能を適用できる。その場合は,入出力端子DQ0−3に4ビット領域の4ビットデータが対応付けられる。
図12は,異なるマッピングに対するバイトバウンダリ機能を説明する図である。図12では,簡単のためにロウアドレスRAとコラムアドレスCAとにより選択されるメモリ単位領域が4ビットで構成されている。図12の左側には画像の画素とメモリ空間との対応を示すメモリマッピング12−1,12−2が,中央にはメモリの論理空間15−1,15−2が,そして,右側にはそれらに対応するタイミングチャートが示されている。
中央のメモリ論理空間15−1,15−2内には,ロウアドレスRAとコラムアドレスCAとで選択される4ビット領域内の4ビットを示す「0−3」が示され,入出力端子DQ0−3に対応する。また,左のメモリマッピング12−1,12−2内にも,画像の画素に対応するメモリ論理空間内の4ビットを示す「0−3」が示されている。つまり,画像の各画素がメモリの入出力端子DQ0−3にどのように対応付けられるかが,メモリマッピングに示されている。
画像システムでは,画像の画素を,あるアドレスBA,RA,CAで同時にアクセスされる4ビットの入出力端子DQ0−3のどれに対応付けるかは,システム設計者の自由である。マッピング12−1は,図中左から右の4つの画素をアドレスの進行方向(左から右)と同じ方向の入出力端子DQ0−3にマッピングする例であり,ビッグエンディアンと称されている。一方,マッピング12−2は,4つの画素をアドレスの進行方向と逆方向の入出力端子DQ3−0にマッピングする例であり,リトルエンディアンと称されている。
そして,マッピング12−1,12−2においていずれも,画像の左上隅から6画素から9画素までの4画素123,127に矩形アクセスが発生している。しかし,これらのマッピングは,メモリ内の4ビットと逆方向にマッピングされているので,それぞれ異なるアクセスが必要になる。つまり,マッピング12−1の場合は,矢印120のように,画像の左から右の画素に対して,CA=1内のDQ1,CA=1内のDQ2,CA=1内のDQ3,CA=2内のDQ0の順でデータを入出力する必要がある。一方,マッピング12−2の場合は,矢印124のように,画像の左から右の画素に対して,CA=1内のDQ2,CA=1内のDQ1,CA=1内のDQ0,CA=2内のDQ3の順でデータを入出力する必要がある。
このような異なるマッピングに対応するためにビット組み合わせ情報SB,BMRが利用される。つまり,マッピング12−1の場合は,図中121のように,リードコマンドRDと共にBA=0,CA=1からなる先頭アドレスと,SB=1,BMR=UPからなるビット組み合わせ情報とが発行され,それに応答して,図中122のように,CA=1の3ビットDQ1,2,3とCA=2のDQ0とが同時に出力される。
一方,マッピング12−2の場合は,図中125のように,リードコマンドRDと共にBA=0,CA=1からなる先頭アドレスと,SB=1,BMR=DOWNからなるビット組み合わせ情報とが発行され,それに応答して,図中126のように,CA=1の3ビットDQ0,1,2とCA=2のDQ3とが同時に出力される。
このように,ビッグエンディアンとリトルエンディアンという異なるメモリマッピングに対応してビット組み合わせ情報SB,BMRを指定することで,画像メモリは,システム側のメモリマッピングに対応して4ビット同時に入出力することができる。このビット組み合わせ情報の種類を増やすことにより,様々なマッピングに対して柔軟な4ビットアクセスを実現することができる。
図13は,図12のビッグエンディアンとリトルエンディアンとを説明する図である。図13は,左右どちらも入出力ビット幅が4ビットのメモリを使っている画像処理システムであり,左がメモリの入出力端子DQのDQ0からDQ3への方向を順方向として扱うビッグエンディアンのシステム,右がメモリのDQのDQ3からDQ0への方向を順方向として扱うリトルエンディアンのシステムである。
画面上の画素位置(X0-X11)は,どちらも同じ画面上の物理位置を示している。そして,各画素位置が持っている「各画素の情報」は,両システムとも同じ"A"〜"L"であり,このことは,どちらのシステムも同じ画像を表示していることを意味している。
ビッグエンディアンのシステムでは,画素位置X0〜X3をメモリのアドレスCA0のDQ0〜DQ3に,画素位置X4〜X7をメモリのアドレスCA1のDQ0〜DQ3に,画素位置X8〜X11をメモリのアドレスCA2のDQ0〜DQ3に対応させている。
一方,リトルエンディアンのシステムでは,画素位置X0〜X3をメモリのアドレスCA0のDQ3〜DQ0に,画素位置X4〜X7をメモリのアドレスCA1のDQ3〜DQ0に,画素位置X8〜X11をメモリのアドレスCA2のDQ3〜DQ0に対応させている。
つまり,両方のシステムを比較すると,画像処理システム内の画素X0〜X3と入出力端子T0〜T3の対応関係が,ビッグエンディアンとリトルエンディアンとで逆の関係になっている。よって,画素位置X0の画素情報"A"は,ビッグエンディアンのシステムとリトルエンディアンのシステムでは各々異なるメモリセルの物理位置(CA0のDQ0とCA0のDQ3)に格納されることになる。
ここで,画像処理システムが画素位置X5-X8の画素情報"F-G-H-I"に対する矩形アクセス(図中130)を発生した場合,ビッグエンディアンのシステムとリトルエンディアンのシステムで,メモリは各々異なるメモリセルの物理位置132,134にアクセスしなくてはならない。そのため,メモリに供給される必要がある最低限の情報は,システムがビッグエンディアン(Up)かリトルエンディアン(Down)かという情報BMRと,起点となるビットが含まれるアドレスCAと,起点となるビットのアドレス内での位置情報SBの3つである。
上記のビッグエンディアンとリトルエンディアンは,アドレスRA,CAでアクセスされるメモリ単位領域が4バイト領域(バイト群)の場合も同じである。 図14は,特殊なメモリマッピングにおけるバイトバウンダリ機能を説明する図である。図14も図12と同様に,左側にメモリマッピング12を,中央にメモリ論理空間15を,そして,右側に対応するタイミングチャートを示す。
図中,左側のメモリマッピング12には,フレーム画像内の各画素にメモリのどのビットを割り当てているかの状態を示している。この例では,1画素が2ビットの情報から構成されており,例えば偶数ビットは輝度,奇数ビットは色差を表すデータを保持している。
そこで,Grouping-1は左上隅の2画素目から5画素目における輝度情報(偶数ビット)のみを集める矩形アクセスであり,Grouping-2は左上隅の2画素目から5画素目における色差情報(奇数ビット)のみを集める矩形アクセスを意味している。この場合,Grouping-1/2ともに,画像の左上隅の2画素目から5画素目にかけての矩形アクセスだが,矢印140のような輝度(偶数ビット)と矢印144のような色差(奇数ビット)の違いがあるため,タイミングチャートに示されるように,画像処理システムからメモリへのアクセスと入出力端子DQは以下の通りとなる。
Grouping-1:CA=0/SB=2で,BMR=AL(1ビット置きに4ビットを集める指定)(図中141)のアクセスに対して,入出力端子DQ0-3には,CA=1のDQ0,CA=2のDQ0,CA=0のDQ2,CA=1のDQ2が対応付けられる(図中142)。
Grouping-2:CA=0/SB=3で,BMR=AL(1ビット置きに4ビットを集める指定)(図中145)のアクセスに対して,入出力端子DQ0-3には,CA=2のDQ1,CA=1のDQ1,3,CA=0のDQ3が対応付けられる(図中146)。
このように,異なるコラムアドレスの4ビット領域内で同じDQ(例えばGrouping-1ではDQ0やDQ2)を同時にアクセスするので,そのデータを入出力端子DQに転送する入出力ユニットで,一部のデータについては端子を入れ替える処理,つまり別のDQのデータバスを使う処理が必要となる。
図15は,図14の特殊なメモリマッピングを説明する図である。図15は,入出力ビット幅が4ビットのメモリを使っている画像処理システムであり,特に,メモリの偶数DQを各画素の輝度情報に,奇数DQを各画素の色差情報に用いる画像処理システムである。そして,図15(A)は輝度情報のみアクセスする場合を示し,図15(B)は色差情報のみアクセスする場合を示す。
画面上の画素位置(X0-X5)は,左右どちらも同じ画面上の物理位置を示している。また,各画素位置は「輝度情報」として"A,C,E,G,I,K"を,「色差情報」として"B,D,F,H,J,L"を保持している。
ここで,画像処理システムが画素位置X1-X4の輝度情報"C-E-G-I"に対する矩形アクセス151を発生した場合は,図15(A)のように,メモリは偶数DQのみにアクセスし(図中153),色差情報"D-F-H-J"に対する矩形アクセス152を発生した場合は,図15(B)のように,メモリは奇数DQのみにアクセス(図中154)しなくてはならない。
このためにメモリが最低限受け取る必要がある情報は,システムが輝度情報を偶数DQに,色差情報を奇数DQに保持する方式を採用しているか(1DQ置きのアクセスが必要かどうか)を示す情報(BMR=AL)と,起点となるビットが含まれるアドレス(CA)と,そのアドレスの4ビット領域内において起点となるビットの位置情報(SB)の3つである。これらのコラムアドレスCAとビット組み合わせ情報SB,BMRについては,図14ですでに説明済みである。
また,この場合,異なるアドレスで同じDQ(例えばGrouping-1ではDQ0やDQ2)を同時にアクセスするので,そのデータを入出力端子に転送する入出力ユニットで,一部のデータについては,別のDQのデータバスを使うように端子を入れ替える処理が必要となる。そのために,メモリ内に白丸と黒丸で示した複数のスイッチが設けられ,上記の情報SB,MBRに基づいてこれらのスイッチが制御される。
図16は,矩形アクセスにおけるバイトバウンダリ機能を示すタイミングチャート図である。この矩形アクセスは,図6の矩形領域22をアクセスする例である。前述のとおり,矩形アクセスにおいて,コラムアドレスCAで選択されるメモリ単位領域(4バイト領域または4ビット領域)内の任意のバイト位置(またはビット位置)から,任意の組み合わせのバイトデータ(ビットデータ)を読み出すためには,先頭のコラムアドレスCAと,バイトの組み合わせ情報166として第1の情報SBと第2の情報BMRとが必要である。
図16(A)では,これらのバイト組み合わせ情報SB,BMRが,リードコマンドRDと共に供給される例である。アクティブコマンドACT(図中161)でバンクアドレスBA=2とロウアドレスRA=2とが供給され,続くリードコマンドRD(図中162)でバンクアドレスBA=2,コラムアドレスCA=0と共に,先頭バイト(先頭ビット)位置を示す第1の情報SB=2((図中163)と,バイト(ビット)の組み合わせを示す第2の情報BMR=V(図中165)とが供給される。これにより,図6の矩形領域22の最初の4バイト(4ビット)が入出力端子DQに出力される。矩形領域22の残りの3組の4バイト(4ビット)も同様のバンクアドレスBA,コラムアドレスCAとバイト組み合わせ情報SB,BMRとにより特定される。
図16(B)では,バイト組み合わせ情報SB,BMRのうち,第2の情報BMR(図中165)は,アクティブコマンドACTが発行される以前に,レジスタアクセスモードでモードレジスタセットコマンドEMRS(図中167)と同時に供給され,この第2の情報BMRはメモリ内のモードレジスタ内に記録される。そして,その後の矩形アクセスでは,この第2の情報BMRに基づいて,コラムアクセスが行われる。矩形アクセスでのアクティブコマンドACT(図中161)とリードコマンドRD(図中162)とは,第2の情報BMRを除いて図16(A)と同じである。
上記の第2の情報BMR=Vは,ビッグエンディアン(V=UP),リトルエンディアン(V=DOWN),輝度情報を偶数DQに色差情報を奇数DQに格納する場合(V=AL)などの様々な情報を持つことができる。
画像システムは,図16(A),(B)のいずれの方式でも,矩形アクセスにおけるバイトバウンダリ機能を実現することができる。
図17は,バイトバウンダリ機能を実現するための画像処理システムの構成図である。図8と同様に,画像メモリ86に対してそれを制御するメモリ制御部82が設けられ,メモリ制御部82からは,アドレス情報BA,RA,CAと,それにより選択される4バイト領域(または4ビット領域)内の先頭バイト(先頭ビット)を示す第1の情報SBと,バイトの組み合わせを示す第2の情報BMRとからなるバイト組み合わせ情報(ビット組み合わせ情報)166と,動作コマンドACT,RD,EMRSが,画像メモリ86に供給される。
前述のとおり,タイミングチャート(A)では,リードコマンドRD,または図示しないライトコマンドWTと同時にバイト組み合わせ情報SB,BMR(図中166)が供給される。また,タイミングチャート(B)では,モードレジスタセットコマンドEMRS(図中167)と同時に第2の情報BMRが,リードコマンドRD,または図示しないライトコマンドWTと同時に第1の情報SBが供給される。
図18は,バイトバウンダリ機能を示す図である。この図は,図6の矩形アクセスと同じである。図10以降では,コラムアドレスCAで選択されるメモリ単位領域が4ビット領域の場合を例にして説明してきた。しかし,前述のとおりメモリ単位領域が4バイト領域の場合も同様にバイトバウンダリ機能により矩形アクセスが可能である。図18はそれを改めて示している。
図18の例では,ページ領域14(BA=0,RA=0)内の矩形領域22を効率的にアクセスするために,リードコマンドRD(図中167)と共に,バンクアドレスBA,コラムアドレスCAと,第1の情報SBと第2の情報BMRとからなるバイト組み合わせ情報166とが発行される。それに応答して,矩形領域22内の4バイトのデータBY0−3が入出力端子DQに同時に出力される。ライトコマンドWTの場合も同様の動作が行われる。つまり,入出力端子DQの4組の4バイト端子BY0−3には,最初のリードコマンドRDに対応してCA1,CA1,CA0,CA0内の各バイトデータが対応付けられ,次のリードコマンドRDに対応してCA5,CA5,CA4,CA4内の各バイトデータが対応付けられる。残りのリードコマンドRDに対応するコラムアドレスと入出力端子との対応は図示されるとおりである。
このように,入出力端子DQが4ビット幅の場合も32ビット(4バイト)幅の場合も,同じようにビットバウンダリ,バイトバウンダリの機能を実現することができる。
図19は,簡素化されたバイトバウンダリ機能を実現する画像処理システムの構成図である。前述したとおり,システム設計において,ビッグエンディアンとリトルエンディアンの2種類のメモリマッピングのいずれかが選択可能である。それに対応して,前述の実施の形態では,バイト組み合わせ情報の第2の情報BMRに,ビッグエンディアン用のBMR=UPと,リトルエンディアン用のBMR=DOWNとを指定して,バイトシフトした矩形アクセスであっても,画像上の画素とメモリ空間内でのバイト位置とが対応つけられるようにした。
図19の例は,メモリマッピング12ではリトルエンディアンに対応した構成に設計される場合,メモリ空間15内ではビッグエンディアンに対応するバイトバウンダリ機能しか対応できなくても,画像メモリ86とメモリ制御部82との間に,入出力端子群の入れ替え手段190を設けることで,システム全体がリトルエンディアンに対応したバイトバウンダリ機能を実現することができる。
すなわち,システム側のメモリマッピングがリトルエンディアンの場合は,入れ替え手段190を設けて両者の入出力端子群の0から3を,3から0に入れ替えるようにする。この結果,画像メモリからみるとシステム側がビッグエンディアン対応に見なせるので,第2の情報BMR=UPのみに対応するメモリの構成であっても,リトルエンディアンのバイトバウンダリ機能を実現できる。
図20は,図19の簡素化されたバイトバウンダリ機能を実現する画像処理システムを説明する図である。図20(1)は,画像処理システム80と画像メモリ86とが互いの入出力端子T0−T3を入れ替えしないで接続する接続ユニット200で接続された例であり,図20(2)は,入れ替え接続する接続ユニット190で接続された例である。いずれの場合も,画像メモリ86は,ビッグエンディアン対応のビットバウンダリ機能のみを有し,画像処理システム80は,入出力ビット幅の4ビットのデータを,画素位置X0-X3を入出力端子T3-T1に対応付けるリトルエンディアンタイプである。
図20(1)において,アドレス単位のアクセスをしている場合(A)では,画面上の画素位置(X0-X7)とメモリ側のアドレス(CA)が1対1(X0-X3とCA=0, X4-X7とCA=1)で対応しているので問題ない。しかし,信号SBを指定してビット単位のアクセスをしようとする場合(B)は,ビッグエンディアン対応のビットバウンダリ機能(BMR=UPのみ)しか存在しないメモリでは,画素位置のシフト(X1-X4(BCDE),図中200)とメモリセルの物理位置のシフト(CBAH,図中201)の関係が一致せず,誤ったデータCBAHが転送されてしまう。この場合は,リトルエンディアン対応のビットバウンダリ機能(BMR=DOWN)があれば,メモリセル上のBCDEを出力することができる。しかし,ビッグエンディアンとリトルエンディアンの両方に対応可能なビットバウンダリ機能をメモリに持たせることはコストアップを招く。
そこで,図20(2)のように,システム側とメモリ側で入出力端子をタスキがけ接続する接続ユニット190を設けて,画像上の画素X0-X3がメモリセル上でもDQ0-DQ3に対応するようにすれば,リトルエンディアンの画像処理システム80が,みかけ上,メモリ86からはビッグエンディアンのシステムにみえるようになるため,画素位置のシフト200とメモリセルの物理位置のシフト202の関係が一致し,ビッグエンディアン対応のビットシフトしたアクセスを行っても正常なデータBCDEを転送することができる。
以上の通り,入れ替え接続するたすきがけ変換可能な接続ユニット190を利用することで,ビッグエンディアン対応のビットバウンダリ(またはバイトバウンダリ)機能しかないメモリであっても,リトルエンディアン対応の画像処理システムに対してビットバウンダリ(またはバイトバウンダリ)機能を実現することができる。また,ビッグエンディアンとリトルエンディアンの両方に対応したビットバウンダリ(またはバイトバウンダリ)機能を有するメモリの場合は,入れ替え接続しない接続ユニット200でメモリとシステムとを接続すればよい。
図21は,バイトバウンダリ機能を有するメモリ構成の概念を示す図である。このメモリは,1以上の任意数(Nb)のビットでビット群を構成し,前記任意数(Nb)のビットの2以上の倍数(N)の入出力端子(Nb x N)を持ち,前記所定の倍数(N)より多い複数のビット群(Ng)で全記憶領域(Nb x Ng)を構成し,第1の動作コードに同期して複数のビット群(Ng)の内の任意の1つを選択可能なアドレス情報を受け取り,前記アドレス情報で選択された任意の1つのビット群を起点に所定の規則に従い倍数(N)と同数のビット群を選択し,前記選択されたビット群に属する複数のビット(Nb x N)は,入出力端子(Nb x N)を通して,同時に記憶情報の受け渡しを行う。
上記の任意数のビット(Nb)とは,ビット単位とバイト単位の両方を含む概念であり,前述の実施の形態例に従えば,Nb=8(1バイト)である。また,倍数(N)とは,1つのアドレスから,任意数のビット(Nb)の何倍のデータをアクセスするかを表現したもので,Nb×Nが入出力端子数に対応する。前述の実施の形態例に従えばN=4で,4バイト分の入出力端子数を有する。つまり,より正確には,入出力端子数はNb×Nとなり,入出力端子数=32(=8x4)となる。
また,複数(Ng)のビット群のNgとは,メモリが有する全てのビットまたはバイトのかたまり(Nbビットのビット群)の数のことであり,全記憶領域の容量をNbで割った数字と等価である。通常,一度に入出力されるビット群の数である倍数(N)より遥かに大きい数字になる。例えば64Mビットのメモリにおいて,Nb=1であればNg=64M, Nb=8であればNg=8Mである。これまでの例に従い,64Mビットのメモリで考えれば,Nb=8でNg=8Mになる。 任意の1つのビット群を選択可能なアドレス情報とは,これまでの例に従えば,アドレス(BA,RA,CA)と起点となるビットを示す情報(SB)であり,アドレス(BA,RA,CA)により4バイトに絞り込んだデータを,さらに起点となるバイトを示す情報(SB)により,起点となるバイトに限定していた。
規則に従い倍数(N)と同数のビット群を選択とは,これまでの例に従えば,起点となるバイトと同時にアクセスされるバイトの組み合わせに関する情報(BMR)に従い複数バイトを選ぶことであり,N=4なので,BMR=Upとすれば,ある任意のバイトから,Up方向に連続した4バイトを同時にアクセスすることになる。
この任意の1つのビット群(これまでの例に従えば1バイト)を選択可能な情報(BA,RA,CA)と,起点となるバイトの情報(SB)と同時にアクセスされるバイトの組み合わせに関する情報(BMR)により選ばれた4バイトは,32ビット(=NbxN)の入出力端子を介して,画像処理システムにアクセスされる。
図21に示されたメモリ装置は,メモリ容量が64ビットである。よって,Nb=8ビットからなるビット群がNg=8群存在する。そして,アドレス(BA,RA,CA)とスタートバイトSBとが合計3ビットで構成され,よってNg=8のビット群から1つのビット群が選択される。さらに,同時にアクセスされるN=4群のビット群は,組み合わせ情報(BMR)により決定される。よって,図21の例では,アドレス(BA,RA,CA)とスタートバイトSBとで第2群が選択され,組み合わせ情報BMR=UPにより,第2群から連続する4群(2〜5群)が同時に入出力端子からアクセスされる。
もし,同じ64ビットのメモリ容量であって,アドレスが1ビット増えると,Nb=4ビット単位のビット群がNg=16群存在し,入出力端子がNb×N=32のままだとすると,所定の倍数N=8となり,組み合わせ情報BMRにより他の7つのビット群が選択されることになる。
[バイトバウンダリ機能を有するメモリ]
次に,バイトバウンダリ機能を有する画像メモリの構成を詳細に説明する。バイトバウンダリ機能は,コラムアドレスで選択可能なメモリ単位領域(4バイト領域)の境界を越えて4バイトのデータへのアクセスを可能にする。そのために,メモリ内では,必要な4バイトのデータを入出力する機能が付加される。以下の説明では,簡単のために,バイト組み合わせ情報として第1の情報SB(スタートバイトまたはスタートビットと称する)のみが与えられる場合を例にして説明する。第2の情報BMRはUP固定の例である。
[内部コラム制御例]
まず,メモリ内部のコラム制御の具体例を幾つか説明する。
図22は,バイトバウンダリ機能を有する画像メモリの第1の例を示す図である。また,図23は,図22の動作を説明する図である。
図22において,図9の画像メモリと同じ構成要素には同じ引用文献番号が与えられている。アドレス信号Aはマルチプル方式で入力され,ロウアドレスRAはロウアドレスバッファ94Rに,コラムアドレスCAはコラムアドレスバッファ94Cにそれぞれラッチされる。ロウ制御部87は,選択されたメモリバンク92のロウデコーダ223にロウアドレスRAを供給する。また,コラムバッファ94C内のコラムアドレスCAも,選択されたメモリバンク内のコラムデコーダ222に供給される。
メモリバンク92は,4つのメモリブロックであるバイト領域Byte0−3に分割され,各バイト領域は,メモリセルアレイ224と,第2アンプ225と,1対のデータラッチ226,227と,データバススイッチ228とを有し,1回のアクセスで1バイト(8ビット)のデータを入出力する。4つのバイト領域から合計で32ビット(4バイト)のデータが入出力バスI/Obusに入出力される。入出力バスI/Obusは32ビットの入出力端子DQ0−31にバッファを介して接続される。なお,図22には,1つのメモリバンク92のみ示され,残りの3つのメモリバンクは省略されている。
コラム制御部90は,コラムデコーダ222の動作タイミングを制御するコラムタイミングコントローラ220と,データラッチ回路226,227とデータバススイッチ228を制御するデータラッチセレクタ221とを有する。データラッチセレクタ221は,コラムアドレスCAとスタートバイトSBとに応じて,各バイト領域Byte0−3内のデータラッチ回路226,227とデータバススイッチ228とを制御する。
図23に示されるとおり,ロウアドレスRA0のページ領域内において,コラムアドレスCA0の2バイト目からコラムアドレスCA1の1バイト目までの4バイトデータをアクセスするものと仮定する。よって,スタートバイトSB=1である。
図23のメモリチップ86には,メモリ空間と入出力端子DQとの関係が示されている。図23では,コラムアドレスCAにより一度に選択されるメモリ単位領域の4バイトデータをQ00〜Q15で示している。つまり,コラムアドレスCA0により4バイトデータQ00−03が選択され,コラムアドレスCA1により4バイトデータQ04−07が選択される。
図23の右側にはタイミングチャートが示されている。まず,アクティブコマンドACTと共に,図示しないバンクアドレスと共にロウアドレスRA0が与えられ,対応するバンク内のワード線が駆動されセンスアンプが活性化される。その後,リードコマンドRDと共にコラムアドレスCA0とバンク組み合わせ情報としてスタートバイト信号SB=1が与えられる。これに応答して,選択されたメモリバンク92内のコラムデコーダ222は,コラムアドレスCA0に対応する内部デコード信号222Dと,CA0を+1インクリメントしたCA1に対応する内部でコード信号222Dとを時分割で4つのバイト領域Byte0−3に出力し,各バイト領域では,CA0とCA1に対応する2組の1バイトデータをデータラッチ回路226,227にキャッシュする。そして,データバススイッチ228は,各バイト領域でのCA0とSB1の組み合わせに応じて選択される1バイトデータをいずれかのデータラッチ回路226,227から入出力バスI/Obusに出力する。つまり,CA0のデータQ01,Q02,Q03と,CA1のデータQ04とが入出力バスI/Obusに出力される。ライト動作のときは,入出力バスからいずれかのデータラッチ回路に1バイトのデータが入力される。
すなわち,コラムデコーダは1回のアクセスで各バイト領域で1バイト分のコラム線(ビット線)を選択する。リード動作では,各バイト領域のメモリセルアレイ224から1バイト分のデータが選択され第2アンプ225で増幅されデータラッチ回路226,227にキャッシュされる。このとき、各バイト領域では,同じコラムアドレスCAにマッピングされたメモリセルにアクセスする。コラムアドレスで選択できるメモリ単位領域(4バイト領域)の境界をまたぐバイトバウンダリアクセスを実現する為、コラムデコーダ222は1回目のアクセス終了後に再度コラム線の選択を行う。このコラム線のアドレスは前回のアドレスCA0より1番地進行したCA1である。メモリセルアレイ224から読み出された1バイトのデータは第2アンプで増幅され、1回目のアクセスとは異なるデータラッチ回路227にキャッシュされる。
したがって,データラッチ回路226,227には1回のアクセスで入出力端子DQが必要とする4バイトの2倍の8バイト分のデータが存在する為,データバススイッチ228は,各バイト領域のデータラッチ回路にキャッシュされた2バイト分のデータから半分の1バイト分のデータを選択し,入出力バスI/Obusに転送する。データラッチセレクタ221は,コラムアドレスCA0とスタートバイト信号SB=1に応じて,各バイト領域内のデータラッチ回路226,227へのキャッシュ動作と,データバススイッチ228でのスイッチ動作とを制御する。これにより,各バイト領域から異なるコラムアドレスCA0,CA1に対応するバイトデータを入出力バスI/Obusに転送することができる。
その結果,図23に示されるとおり,入出力バスI/Obusを経由して,入出力端子DQには,4バイトのデータQ04,Q01,Q02,Q03がそれぞれ転送される。このように,第2アンプ225,データラッチ回路226,227,データバススイッチ228で,入出力ユニット93が構成される。
図24は,バイトバウンダリ機能を有する画像メモリの第2の例を示す図である。また,図25は,図24の動作を説明する図である。
図24において,図22と異なる構成は,メモリバンク92内の各バイト領域Byte0−3において,メモリセルアレイが2つのアレイ224−0,224−1に分割され,それぞれに第2アンプ225,データラッチ回路226,227が設けられている。1対のメモリセルアレイ224−0,224−1は,コラムアドレスCAが偶数(CA[0]=0)と,奇数(CA[0]=1)とに対応している。そして,コラムデコーダ222は,与えられたコラムアドレスCA0から,CA0とCA1のデコード信号を時分割で出力するのではなく,それら2つのデコード信号222D0,222D1を同時に分割された1対のメモリセルアレイ224−0,224−1に出力する。それに応答して,1対のメモリセルアレイは,それぞれ1バイトデータをデータラッチ回路226,227に出力する。これにより,各バイト領域は供給されたコラムアドレスCAと+1インクリメントしたコラムアドレスの2バイトのデータを同時にキャッシュすることになる。そして,データラッチセレクタ221が,コラムアドレスCAとスタートバイト信号SBとに応じて,データバススイッチ228の切り替えを制御し,必要な1バイトデータを入出力バスに転送する。4つのバイト領域がそれぞれ1バイトずつのデータを出力し,合計で4バイトのデータが入出力端子DQから出力される。
ライトコマンドの場合は,入出力端子DQに供給された4バイトのデータが,コラムアドレスCAとスタートバイト信号SBとに応じて切替制御されたデータバススイッチ228を介して,2つのデータラッチ回路226,227に格納され,2つのメモリセルアレイ224−0,224−1に書き込まれる。
図25には,スタートバイト信号SB=1,バースト長BL=4の場合の動作が示されている。リードコマンドRDと同時にコラムアドレスCA0とスタートバイト信号SB=1が供給され,バースト長BL=4がモードレジスタにセットされているとすると,コラムデコーダ222が,コラムアドレスCA0とそれを+1インクリメントしたCA1に対応するデコード信号222D0,1を同時に,各バイト領域Byte0−3に供給する。それに応答して,各バイト領域の1対のメモリセルアレイ224−0,224−1が,第2アンプ225を介して,それぞれ1バイトのデータをデータラッチ回路226,227に出力する。これにより,各バイト領域から2バイトのデータがキャッシュされる。そして,データラッチセレクタ221が,コラムデータCAとスタートバイト信号SBに基づいて,各バイト領域においていずれのデータラッチ回路のデータを選択するかの制御信号S221(4つのバイト領域に1ビットずつ合計4ビット)をデータバススイッチ228に供給し,データバススイッチ内のスイッチ動作を制御する。その結果,最初のサイクルでは,4バイトのデータQ04,Q01−03が入出力バスI/Obusに転送される。
図25では,バースト長BL=4であるため,コラムタイミングコントローラ220の制御にしたがって,コラムデコーダ222は,コラムアドレスCA2,CA3に対応するデコード信号222D0,222D1を発行し,更に8バイトのデータをデータラッチ回路22,227にキャッシュする。データラッチ回路226,227は,CA0,CA1の8バイトデータも保持する必要があるので,各データラッチ回路はそれぞれ2バイトのデータを保持できる構成になっている。その結果,新たに8バイトデータQ08−Q15がデータラッチ回路にラッチされる。そして,前クロックサイクルで保持していた8バイトデータQ00−Q15と現クロックサイクルで保持した8バイトデータQ08−A15から,4バイトデータQ05−Q08がデータバススイッチ228により入出力バスに転送される。よって,この場合のデータラッチセレクタ221のセレクト信号S221は,8ビット(各バイト領域に2ビット)で構成される。
そして,次のクロックサイクルで,コラムデコーダ222は,コラムアドレスCA4,CA5に対応するデコード信号222D0,222D1を発行し,更に8バイトのデータQ16−Q23をデータラッチ回路にキャッシュする。そして,データバススイッチ228は,4バイトのデータQ09−Q12を転送する。そして,更に次のクロックサイクルでは,データバススイッチ228が4バイトデータQ13−Q16を入出力バスに転送する。この時は,メモリセルアレイから新たに8バイトデータをキャッシュする必要はない。
ライト動作も,前述と同様であり,バースト長BL=4の場合は,4サイクルで4バイトデータが入出力端子DQに供給され,データバススイッチ228を介してデータラッチ回路226,227に格納される。そして,コラムデコーダ222からのコラムアドレスCA0,1,CA2,3,CA4,5のデコード信号に応答して,合計で16バイトデータが3サイクルでメモリセルアレイ内に書き込まれる。
図26は,バイトバウンダリ機能を有する画像メモリの第2の例の変形例(1)の動作を示す図である。図25の例では,各バイト領域Byte0−3が2バイトのデータを1対のデータラッチ回路226,227に同時にキャッシュしていた。それに対して,図26の変型例では,リードコマンドRD後の最初のコラム制御では,コラムデコーダ222がコラムアドレスCA0,CA1の内部デコード信号222D0,222D1を同時に発行して,各バイト領域で2バイトのデータを1対のデータラッチ回路に同時にキャッシュする。そして,その後のキャッシュ動作では,コラムデコーダ222が,偶数側(CA2,CA4)の内部デコード信号222D0と奇数側(CA3)の内部デコード信号222D1とを,交互に発行し,各バイト領域は1バイトデータを1対のデータラッチ回路226,227に交互にキャッシュする。
つまり,最初は8バイトデータQ00−Q07をキャッシュし,次からは4バイトデータQ08−Q11,Q12−Q15,Q16−Q19をデータラッチ回路にキャッシュする。そして,データバススイッチ228が,転送すべき4バイトデータDQ1−DQ4,Q05−Q08,Q09−Q12,Q13−Q16を入出力バスに順番に転送する。この場合も,データラッチセレクタ221のセレクト信号S221は,8ビット(各バイト領域に2ビット)で構成される。以上のように,リード動作において,コラムアドレスのデコード信号によるメモリセルアレイからのデータのデータラッチ回路へのキャッシュ動作は4サイクルで行われ,データラッチ回路から入出力バスへのデータ転送動作も4サイクルで行われる。
書き込み動作の場合も,4サイクルで4バイトデータが入出力端子DQに供給され,4サイクルでデータバススイッチ228を介してデータラッチ回路226,227に格納される。そして,コラムデコーダ222からのコラムアドレスCA0/1,CA2,CA3,CA4のデコード信号に応答して,合計で16バイトデータが4サイクルでメモリセルアレイ内に書き込まれる。
図27は,バイトバウンダリ機能を有する画像メモリの第2の例の変形例(2)の動作を示す図である。この例は,DDR(Double Data Rate)に適用される例である。DDRのSDRAMは,クロックCLKの立ち上がりエッジと立ち下がりエッジの両方でDQ端子からデータの入出力を行う。つまり,立ち上がりエッジで4バイトデータQ05−Q08,立ち下がりエッジで4バイトデータQ09−Q12がそれぞれ入出力される。
このように入出力レートが2倍になるので,メモリ内部のキャッシュするデータ量も2倍にする必要がある。図27の例では,リードコマンドRDの後の最初のキャッシュサイクルで16バイトのデータQ00−Q03,Q04−Q07,Q08−Q11,Q12−Q15が同時にデータラッチ回路にキャッシュされ,16バイトデータから4バイトデータQ05−Q08がクロックの立ち上がりエッジでI/Oバスに転送され,次の4バイトデータQ09−Q12がクロックの立ち下がりエッジでI/Oバスに転送される。
図27のような16バイトデータの一括キャッシュを可能にするために,メモリは,図24におけるバイト領域Byte0−3内で,4つのメモリセルアレイに分割され,それぞれに第2アンプ,データラッチ回路が設けられる。そして,各バイト領域で,コラムデコーダ222は,先頭コラムアドレスCA1に対応してコラムアドレスCA0−3の内部デコード信号を,4つのメモリセルアレイに供給し,4バイトデータが4つのデータラッチ回路にキャッシュされる。そして,4つのデータラッチ回路からデータラッチセレクト信号S221によりデータバススイッチ228により選択されたデータラッチ回路の1バイトデータが入出力バスに転送される。図中,コアバスCorebusは,メモリセルアレイの入出力バスに対応し,それらのデータはデータラッチ回路にキャッシュされる。
なお,図27の例では,入力コラムアドレスCAのLSB(CA[0])を無視する構成になっていて,入力コラムアドレスCA0,CA1のいずれの場合も,常にコラムアドレスCA0−3に対応するデータがアクセスされる。つまり,入力コラムアドレスが奇数,偶数に関わりなく,ペアリングされるコラムアドレスは固定的になっている。
さらに,次のクロックサイクルでは,コラムデコーダ222がコラムアドレスCA4−7の内部デコード信号を4つのメモリセルアレイに発行し,さらに4バイトデータを4つのデータラッチ回路にキャッシュする。これにより,16バイトデータQ16−Q31がデータラッチ回路にラッチされ,そのなかから選択された,4バイトデータQ13−Q16と,4バイトデータQ17−Q20とが,クロックの立ち上がりエッジと立ち下がりエッジでそれぞれ出力される。
ライト動作では,上記と逆方向に書き込みデータが入出力端子DQからデータラッチ回路を介してメモリセルアレイ内に書き込まれる。
図27の場合も,データラッチセレクト信号S221は,各バイト領域に2ビット,合計で8ビットの制御信号である。そのようなデータラッチセレクト信号は,コラム制御部90内のデータラッチセレクタ220がコラムアドレスCAとスタートバイト信号SBに応じて生成する。
図28は,バイトバウンダリ機能を有する画像メモリの第2の例の変形例(3)の動作を示す図である。これも図27と同様にDDRに対応する動作例であり,図27と異なる点は,入力コラムアドレスCAが奇数か偶数かに応じて,同時にコラムアクセスされるアドレスの組み合わせが異なる。つまり,入力コラムアドレスCAとそれに+1,+2,+3したCAに対応するデータが同時にアクセスされる。つまり,入力コラムアドレスCA1の場合は,CA1,CA2,CA3,CA4のデータがアクセスされる。つまり,コラムデコーダは,入力コラムアドレスCAのLSB(CA[0])を監視して,同時アクセスすべきコラムアドレスを決定する。
図28に示されるとおり,入力コラムアドレスCA1に対して,コラムデコーダは,CA1−CA4の内部デコード信号222D0−3を生成し,各バイト領域で4バイトデータ,合計で16バイトデータがデータラッチ回路にキャッシュされる。そして,次のクロックサイクルではCA5−CA8の内部デコード信号222D0−3を生成し,更に16バイトデータがキャッシュされる。よって,キャッシュされる16バイトデータが,図27と4バイトだけずれている。
よって,図28のリード動作及びライト動作も図27と同様のメモリ構成で実現できる。
図29は,バイトバウンダリ機能を有する画像メモリの第3の例を示す図である。また,図30は,図29の動作を説明する図である。第3の例では,バイトバウンダリ機能により入出力される4バイトデータQ01−Q04を,各バイト領域Byte0−3への1回のコラムアクセスによりアクセスし,入出力バスに転送する。つまり,前述の第1,第2の例のように隣接するコラムアドレスのメモリ単位領域に対する4バイトデータのアクセスのために,それより多い8バイトデータまたは16バイトデータを隣接コラムアドレスの複数メモリ単位領域からキャッシュをすることはしない。
図29に示されるとおり,コラム制御部90は,コラムアドレスコントローラ290を有し,メモリバンク92内の各バイト領域Byte0−3内のコラムシフタ回路291に,コラムアドレスCAを+1シフトすべきか否かのシフト制御信号S290を供給する。各バイト領域は,コラムシフタ291と,その出力をデコードするコラムデコーダ222と,内部デコード信号222Dにより1バイトデータを入出力するメモリセルアレイ224と,第2アンプと,データラッチ回路226と,データバススイッチ回路228とを有する。各バイト領域内のコラムシフタ291は,シフト制御信号S290に応答して,コラムアドレスCAを+1シフトする又はシフトしないでコラムアドレスをコラムデコーダ222に出力する。データラッチ回路226は,1バイトデータのみ保持できればよい。したがって,データバススイッチ回路228は,データラッチ回路226内の1バイトデータを常に選択して,入出力バスI/Obusに転送するだけである。
図30の動作を示す図によれば,コラムアドレスコントローラ290が,入力コラムアドレスCA0とスタートバイト信号SBとに応じて,バイト領域Byte0のコラムシフタ291にコラムアドレスCA0を+1シフトしてCA1を生成させるよう制御し,他のバイト領域Byte1−3のコラムシフタには+1シフトさせないよう制御する。その結果,バイト領域Byte0では,コラムアドレスCA1に対応する内部デコード信号222Dに基づいて1バイトデータQ04がアクセスされ,データラッチ回路226にラッチされる。また,他のバイト領域Byte1−3では,コラムアドレスCA0に対応する内部デコード信号222Dにもとづいて各1バイトデータQ01,Q02,Q03がアクセスされ,データラッチ回路226にラッチされる。
上記のとおり,図29,図30の第3の例では,メモリ内部でコラムアドレスをアクセス対象の4バイトデータに対応させて発生しているので,その分コラムデコーダ側が複雑な構成になるが,4バイトより多いバイトデータのキャッシュ動作をなくすことができるので,入出力ユニット93での構成がシンプル化され,且つメモリバンク内の消費電力を削減することができる。
リード動作では,各バイト領域でコラムデコーダ222からのコラムアドレスに対応する1バイトデータをデータラッチ回路226に出力し,データバススイッチ228を介して入出力端子DQに転送する。ライト動作では,入出力端子DQに入力された4バイトデータが,各バイト領域でデータバススイッチ228を介してデータラッチ回路226にラッチされる。そして,各バイト領域でコラムデコーダ222からのコラムアドレスに対応するメモリにラッチされたデータが書き込まれる。
上記の図22〜図31に示したバンク内の4つのバイト領域は,コラムアドレスで選択されるメモリ単位領域が4ビットで構成される場合は,4つのビット領域になり,各ビット領域からは1ビット単位のデータが複数組または単数組でアクセスされる。
[入出力端子との対応制御]
次に,画像メモリ内における入出力端子DQとメモリセルアレイ内のバスまたはデータラッチ回路との対応制御例について説明する。
図31は,バイトバウンダリ機能を有する画像メモリの入出力端子との対応手段を示す図である。図32は,図31の動作を示す図である。この入出力端子との対応手段では,図32に示されるとおり,メモリ空間内のコラムアドレスCAに対応する4バイトデータは,常に同じ入出力端子群DQ[7:0]〜DQ[31:24]に対応付けられ,動的に対応関係を入れ替えることは行わない。つまり,入出力端子DQとメモリ内のバス(メモリセルアレイ224の入出力バス)との対応関係(割付関係)は,スタートバイト信号SBの影響を受けず常に固定的である。よって,ライト時とリード時でスタートバイト信号SBが異なっていても,ライト時に入力される入出力端子DQとリード時に出力される入出力端子DQとは同じ端子である。
図31には,コラムアドレスCAで選択される4バイト領域の境界をまたぐ4バイトアクセスする場合のDQ端子との接続方法が示されている。この図ではコラムアドレスCA0内の4バイト領域のByte1(Q01)からのリード動作(SB=1)を想定している。
入出力端子DQの入れ替えを行わない場合、Byte1のデータとして記憶したデータはスタートバイト信号SBに依存せずに必ずByte1に対応するDQ端子に出力される。そのため、メモリセルアレイ224と入出力バッファ94I/Oの接続は常に固定的に割り付けられる。従って、スタートバイト信号SBの指定は,単にメモリセルアレイ224のどのコラムアドレスCAのバスを入出力バッファ94I/Oに接続すべきかの判別に利用される。
図31の例は,図22の第1の例,図24の第2の例に対応する構成例であり,各バイト領域Byte0−3が1対の領域(奇数コラムアドレス,CA[0]=0と,偶数コラムアドレス,CA[0]=1)に分割されている。つまり,図24と同様に,コラムアドレスCAが奇数と偶数の2つのメモリセル領域が存在し、その中がさらに4つのByte領域に分割されている。バイト領域Byte0 Area〜Byte3 Areaは,コラムデコーダからデータラッチ回路までを含むものとする。リード動作の場合、1回のアクセスに必要なデータの2倍のデータがByte Areaから出力され,データバススイッチ228のスイッチ群(図中8個の四角)でその半分の4バイトデータが入出力バッファ94I/Oに接続される。
このように入出力端子DQの入れ替えを行わない場合,メモリセルのByte1 Areaから出力されたデータQ01は入出力バッファ94I/OのByte1に相当する入出力端子DQ[15:8]に必ず接続される。従って,バイトスタート信号SBを用いたデータバススイッチ228の制御は,2つのコラムアドレスCAに対応する領域のいずれのデータラッチ回路を入出力バッファ94I/Oと接続するかの制御である。
図24における4つのバイト領域Byte0−3内のデータバススイッチ228が,図31のデータバススイッチ228にまとめて示されている。よって,各バイト領域のデータバススイッチ228は,図31内の同じ入出力端子DQに対応する1対のスイッチで構成される。
図33は,バイトバウンダリ機能を有する画像メモリの入出力端子との対応手段を示す図である。図34は,図33の動作を示す図である。この入出力端子との対応手段では,図34に示されるとおり,メモリ空間内のコラムアドレスCAに対応する4バイトデータは,スタートバイト信号SBに応じて先頭バイトから順番に入出力端子群DQ[7:0]〜DQ[31:24]に対応付けられ,メモリセルアレイ224と入出力端子群DQとの間で動的に対応関係が入れ替えられる。つまり,入出力端子群DQとメモリ内のバスと対応関係(割付関係)はスタートバイト信号SBの影響を受けて動的に変化する。よって,ライト時とリード時でスタートバイト信号SBが異なっていると,ライト時に入力される入出力端子群DQとリード時に出力される入出力端子群DQとは異なる端子になる。
図34から明らかなとおり,スタートバイト信号SB=1の場合は,メモリ内のデータQ01−Q04が入出力端子群DQ[7:0]〜DQ[31:24]に対応付けられる。つまり,スタートバイト信号SBに応じてメモリセルアレイ内のバス又はデータラッチ回路と入出力端子群との対応を,先頭のバイトデータは入出力端子DQ[7:0]に,残りの3バイトデータは残りの入出力端子DQに順次対応するようにする。そのために,図33のデータバススイッチ228には,入出力バス群I/Obusとメモリセルアレイ224のバスまたはデータラッチ回路との全ての交差位置にスイッチが設けられる。そして,これらのスイッチ群をデータラッチセレクタ221からのデータラッチセレクト信号S221によりオン・オフ制御することで,上記のような動的な対応付けを実現することができる。
このように,スタートバイト信号SBに応じて,メモリセルアレイ内のバスまたはデータラッチ回路に対して入出力端子DQの入れ替えを行う。具体的には,メモリセルアレイ内のバイト領域Byte1から出力されたバイトデータQ01は,SB="1"の場合には入出力バッファ94I/OのByte0に相当するDQ[7:0]に接続され,SB="0"の場合はDQ[15:8]に接続される。バイト領域Byte1のバイトデータQ05は,SB="3"の場合はDQ[23:16]に接続され,SB="2"の場合はDQ[31:24]に接続される。つまり,図33中の閉じた状態の4つのスイッチの位置が,スタートバイト信号SBに応じて右方向にずれることになる。
次に,入出力端子との対応制御において,ビッグエンディアンとリトルエンディアンへの対応制御について説明する。
図35は,バイトバウンダリ機能を有する画像メモリであってエンディアンに対応可能な画像メモリの構成図(1)である。この例は,図19,図20で説明した画像メモリと同様に,メモリコア350内の構成はビッグエンディアン(アップモード)にのみ対応している。つまり,バイトバウンダリ動作において,スタートバイト信号SBに対応するバイト位置から4バイトデータをアップモードでアクセスする機能のみである。その場合であっても,データバススイッチ228のスイッチ群を制御することで,ビッグエンディアン対応の画像システムとも,リトルエンディアン対応の画像システムとも正しいデータの入出力を実現することができる。
図中,モードレジスタ96には,アップモードかダウンモードかを示すバイト組み合わせ情報の第2の情報BMRが与えられ,いずれかのモードに設定される。ただし,図29などのコラムデコーダ,メモリセルアレイ,第2アンプを含むメモリコア350は,アップモード制御にしか対応していない。つまり,コラム制御回路にはアップモードコントローラ351のみを有し,ダウンモードコントローラは有していない。
図35(A)は,アップモードの場合のデータバススイッチ228を示している。つまり,ビッグエンディアンであるアップモードの場合は,メモリコア350はアップモードコントローラ351によりアップモードに制御される。よって,データバススイッチ228は,データラッチ回路226の4バイトのデータByte0−3をそのまま入出力バッファ94I/Oに接続する。つまり,メモリコア350のコアデータバスcdb00z〜cdb31zが,I/Oデータバスpdb00z〜pdb31zにストレートに接続される。
一方,図35(B)は,ダウンモードに設定された場合のデータバススイッチ228を示している。つまり,リトルエンディアンであるダウンモードの場合,メモリコア350はアップモードコントローラ351によりアップモードに制御されるが,データバススイッチ228は,データラッチ回路226の4バイトデータByte0,1,2,3を,たすきがけして入出力バッファ94I/Oの4バイトByte3,2,1,0に対応付ける。この場合は,バイト単位でコアバスcdbxxzとI/Oバスpdbxxzとが切り替えられる。
図35(B)のデータバススイッチ228は,図19,20に示した入出力端子群の入れ替え手段190と同じものを,画像メモリ86内に設けた例である。このように,メモリコアの構成はビッグエンディアンとリトルエンディアンのいずれかに対応可能な構成にし,上記のようなデータバススイッチ228を設けて,そのスイッチをダウンモードまたはアップモードに応じて切り替えることで,両方のエンディアンに対応することが可能になる。
図36は,バイトバウンダリ機能を有する画像メモリであってエンディアンに対応可能な画像メモリの構成図(2)である。この画像メモリは,図35と同様に,アップモード制御にのみ対応可能なメモリコア構成を有し,データバススイッチ228をモードレジスタ96に設定された第2の情報BMR=UP/DOWNに応じて切り替えることで,いずれのモードにも対応可能にしている。そして,図35と異なるところは,データバススイッチ228によるデータの入れ替えは,MSB(DQ31)とLSB(DQ00)とが入れ替えられるよう行われる。つまり,4バイトの入れ替えに加えて,各バイトの8ビットのデータも入れ替えられる。
図37は,バイトバウンダリ機能を有する画像メモリであってエンディアンに対応可能な画像メモリの構成図(3)である。この画像メモリは,図29の画像メモリに対応し,メモリコア350内の4つのバイト領域にのコラムアドレスの組み合わせを,動作モードに対応して変更制御し,スタートバイト信号SBに対応したバイトからアップ方向またはダウン方向の4バイトデータを4つのメモリアレイから入出力する。
例えば,図30に示したようにコラムアドレスCA0,スタートバイトSB=1の場合は,4つのバイト領域Byte0−3の内部コラムアドレスは,アップモードであればCA1,CA0,CA0,CA0となり,データQ04,Q01,Q02,Q03が4バイトの入出力端子DQから入出力される。一方,ダウンモードであればCA0,CA0,CA1,CA1となり,データQ00,Q01,Q06,Q07が4バイトの入出力端子DQから入出力される。
このように,コラムシフタ291により,アップモードとダウンモードとで,メモリコア内の4つのバイト領域Byte0−3に与えるコラムデータを切り替える。そして,スタートバイト信号SBとモード信号BMRとにより一意に決まるコラムアドレスの組み合わせが,コラムシフタ291を介して,メモリコア350内の各バイト領域に供給される。このコラムシフタ291は,コラムアドレス制御部90Aからの4つのコラムアドレスcaby0z-caby3zのうち切り替えが必要な2つのうちいずれかを,アップモード・ダウンモードUp/Downに応じて選択する。つまり,バイト領域Byte0では,caby0z,caby3zのいずれかが選択され,バイト領域Byte1では,caby1z,caby2zのいずれかが選択され,バイト領域Byte2では,caby1z,caby2zのいずれかが選択され,そして,バイト領域Byte3では,caby0z,caby3zのいずれかが選択される。
シングルデータレート(SDR)の場合は,1回のアクセスで4バイトデータを入出力できれば良いので,図29で説明したとおり,各バイト領域に対応するデータラッチ回路に保持された1バイトデータをそのまま入出力バスに転送すればよい。
一方,ダブルデータレート(DDR)の場合は,1回のアクセスで8バイトデータを4バイトずつ入出力する必要がある。よって,図29の構成において,各バイト領域Byte0−3内に偶数コラムアドレス(CA[0]=0)のブロックと奇数コラムアドレス(CA[0]=1)のブロックとを有し,それら1対のブロックにスタートバイト信号SBとモード信号BMRとにより一意に決まる組み合わせのコラムデータをコラムシフタ291から供給し,データバススイッチ228により必要な4バイトデータを選択して入出力バスI/Obusに転送する。その場合は,データバススイッチ228内の各スイッチは,データラッチセレクタ221からの制御信号dabyaz-dabydzに応じて,偶数ブロックか奇数ブロックのデータを選択して入出力バスI/Obusに転送する。そのため,データラッチセレクタ221には,コラムアドレス制御部90Bからデータバス用のコラムアドレスdaby0z-daby3zが供給され,データラッチセレクタ221が,アップモード・ダウンモードUp/Downに応じて,4つのバイト領域の中から切り替えが必要な2つのうちのいずれかを選択する。この切り替え候補の組み合わせは,前述のコラムシフタ291と同じである。
図37のように,コラムアドレスの組み合わせを制御することで,データバススイッチ228のスイッチ群のスイッチ数を減らすことができる。すなわち,図35,36に示したデータバススイッチでは,入出力端子DQ数がNバイトの場合,2N*8個のスイッチが必要となる。しかし,図37のようにコラムアドレスの組み合わせを制御することで,コラムシフタ291とデータバススイッチ228にそれぞれ2N個のスイッチが必要となり,合計で4N個のスイッチが必要になる。よって,図35,36よりもスイッチ数を1/4に減らすことができる。
図38,図37のDDRメモリにおけるアップモードの動作タイミングチャート図である。この例は,コラムアドレスCA1とスタートバイト信号SB=1の例であり,ビッグエンディアンでメモリ86に記憶したデータDQ05―DQ08を読み出す例である。つまり,メモリ86内のコラムアドレスに対するデータQ00-Q19と入出力端子DQとの関係は図示される通りである。
前述したとおり,DDRメモリの場合は,メモリセルアレイ内の各バイト領域が偶数コラムアドレスのブロック(CA[0]=0)と奇数コラムアドレスのブロック(CA[0]=1)とを有し,それらのブロックに制御された組み合わせのコラムアドレスcabyが供給され,データバススイッチ228に制御された組み合わせのデータバス切り替え用のコラムアドレスdabyが供給される。
すなわち,基点となるコラムアドレスCAとしてCA1を入力する。それに伴って,各バイト領域Byte0−3内の偶数ブロック(CA[0]="0")と奇数ブロック(CA[0]="1")とに供給されるコラムアドレスCAが制御され,偶数ブロック(CA[0]="0")の領域はコラムアドレスCA2のコラム線が活性化され,奇数ブロック(CA[0]="1")の領域は,バイト領域Byte 0ではコラムアドレスCA3のコラム線が活性化され,バイト領域Byte1,2,3ではコラムアドレスCA1のコラム線が活性化される。
この結果、メモリコアのコアバスにはデータQ05〜Q12が出力される。つまり,偶数ブロックのコアバスにはデータQ08-Q11が出力され,奇数ブロックのコアバスにはデータQ5-Q7,Q12が出力される。
DDRメモリでは,この8バイトのデータから入出力バスI/Obusに4バイトデータを転送する必要がある。そこで,データバススイッチが,スタートバイト信号SBとコラムアドレスCAに基づいて,バイト領域Byte0のみ偶数ブロック(CA[0]="0")のデータを選択し,その結果,データQ05〜Q08を入出力端子DQに出力することができる。
ここで、偶数,奇数(CA[0]="0"/"1")の各領域で,内部コラムアドレスcabyazはcaby0zを選択し、内部コラムアドレスcabybzはcaby1zを,cabyczはcaby2zを,cabydzはcaby3zをそれぞれ選択している。同様に,偶数,奇数(CA[0]="0"/"1")の各領域でデータバス用のコラムアドレスdabyazはdaby0zを選択し,同様に,dabybzはdaby1zを,dabyczはdaby2zを,dabydzはdaby3zをそれぞれ選択している。
図39は,図37のDDRメモリにおけるダウンモードの動作タイミングチャート図である。この例は,コラムアドレスCA1とスタートバイト信号SB=2の例であり,リトルエンディアンでメモリ86に記憶したデータDQ05―DQ08を読み出す例である。つまり,メモリ86内のコラムアドレスに対するデータQ00-Q19と入出力端子DQとの関係は図示される通りである。図38とは,4バイトのデータと入出力端子DQとの関係が逆方向になっている。
この場合は,基点となるコラムアドレスCAとしてCA1を入力する。それに伴って,各バイト領域Byte0−3内の偶数ブロック(CA[0]="0")と奇数ブロック(CA[0]="1")とに供給されるコラムアドレスCAが制御され、偶数ブロック(CA[0]="0")にはコラムアドレスCA2のコラム線が活性化され,奇数ブロック(CA[0]="1")では,バイト領域Byte 3はコラムアドレスCA3のコラム線が活性化され,バイト領域Byte2,1,0の各領域はコラムアドレスCA1のコラム線が活性化される。
この結果、メモリコアのコアバスにはデータQ05〜Q12が出力される。つまり,偶数ブロックのコアバスにはデータQ08-Q11が出力され,奇数ブロックのコアバスにはデータQ5-Q7,Q12が出力される。
DDRメモリでは,この8バイトのデータから入出力バスI/Obusに4バイトデータを転送する必要がある。そこで,データバススイッチが,スタートバイト信号SBとコラムアドレスCAとに基づいて,バイト領域Byte3のみ偶数ブロック(CA[0]="0")のデータQ08を選択し,残りは奇数ブロックからデータQ05−07を選択し,4バイトデータQ05〜Q08を入出力端子DQに出力することができる。
ここで、偶数,奇数(CA[0]="0"/"1")の各領域で,内部コラムアドレスcabyazはcaby3zを選択し、内部コラムアドレスcabybzはcaby2zを,cabyczはcaby1zを,cabydzはcaby0zをそれぞれ選択している。同様に,偶数,奇数(CA[0]="0"/"1")の各領域でデータバス用のコラムアドレスdabyazはdaby3zを選択し,同様に,dabybzはdaby2zを,dabyczはdaby1zを,dabydzはdaby0zをそれぞれ選択している。
以上のとおり、図38のアップモードと比較すると,cabyz,dabyz をバイト領域Byte0とByte3で入れ替え、さらにバイト領域Byte1とByte2で入れ替えることで,ビッグエンディアンとリトルエンディアンの2種類のバイトデータの並びに対応することができる。 図40は,バイトバウンダリ機能におけるバウンダリの指定方法について説明する図である。図中,コラムアドレスCA[7:0]が#nと#n+1の隣接する4バイト領域の境界を越えてアクセスが行われるバイトバウンダリ機能では,バウンダリの指定方法がスタートバイトSBによる場合と,シフトバリューSVによる場合とが考えられる。スタートバイトSBは,バイトNから4バイトアクセスすることを意味し,シフトバリューSVが,コラムアドレスの4バイト領域の境界からNバイトシフトした位置から4バイトアクセスすることを意味する。
その場合,エンディアンの2つのモードに対応して,アップモードとダウンモードとでは,スタートバイトSBとシフトバリューSVとの対応関係が異なってくる。つまり,アップモードなら,バイトデータの並びがByte0−3となっているので,SBとSVは等価である。しかし,ダウンモードでは,バイトデータの並びがByte3−0となっているので,SBとSVとは等価にならず,逆の関係になる。
したがって,画像メモリがスタートバイト信号SBの端子のみを有し,内部構造がシフトバリューSVに応じて制御される場合は,アップモードかダウンモードかに応じて,スタートバイト信号SBを非反転または反転して,シフトバリューSVに変換する必要がある。画像メモリがシフトバリューSV端子のみを有し,内部構造がスタートバイトSBに応じて制御される場合も同様である。
図41は,スタートバイトSBとシフトバリューSVとの変換回路を示す図である。変換回路410は,2ビット構成410[0],410[1]であり,CMOSトランスファゲート412,413とインバータ414,415で構成され,入力スタートバイトSBが,アップモードかダウンモードかを示すカウントタイプ信号に応じて,非反転または反転してシフトバリューSVに変換される。変換回路410の真理値表411に示されるとおり,アップモードではSBは非反転されてSVになるが,ダウンモードではSBは反転されてSVになる。
[矩形アクセスでのコラムアドレス制御]
図1に示したように,画像メモリのメモリ空間を画像の画素に対応付けるメモリマッピング12,14Eでは,バンクアドレスBAとロウアドレスRAで選択されるページ領域14内において,画像のマトリクス状の画素の配置に対応して,コラムアドレスCAで選択されるメモリ単位領域(4バイト領域)を所定の折り返し幅(CA Wrap)で折り返すようにマッピングされる。図1の例では,ページ領域14内はコラムアドレスCAが4単位で折り返されている。つまりコラムアドレスの折り返し幅CA Wrapは4である。このコラムアドレスの折り返し幅は,コラムアドレスのステップとも称される。
このようなコラムアドレスで選択されるメモリ単位領域を所定の折り返し幅で折り返してマッピングすることで,画像メモリで頻繁に行われる矩形アクセスのアクセス効率を高めることができる。つまり,アクティブコマンドによりページ領域をアクティブ動作させた状態で,アクセス対象の矩形領域に対応してリードコマンドとコラムアドレスを繰り返し発行することで,同じページ領域内の矩形領域へのアクセスを行うことができる。1回のアクティブ動作で同じページ領域内の矩形領域にアクセスできるので,効率的なアクセスが可能になる。
図16で示されるとおり,このような矩形アクセスでは,リードコマンドRDとバンクアドレスBAとコラムアドレスCAとスタートバイト信号SBとを繰り返し発行することが必要である。しかしながら,メモリのマッピング情報,特にページ領域のコラムアドレスCAの折り返し幅(CA Wrap)があらかじめわかっていれば,矩形領域の先頭コラムアドレスCAと,矩形幅と,矩形サイズとを与えれば,画像メモリは内部で自動的にアクセスすべきコラムアドレスを発行して矩形領域の画像データにアクセスすることができる。その場合は,リードコマンドとコラムアドレスを1回発行すればよく,図16のように複数回発行する必要はない。
図42は,バイトバウンダリ機能を利用した自動矩形アクセスを説明する図である。この例では,メモリマッピング421にアクセスされるデータ領域を矢印で示している。このメモリマッピングでは,ページ領域内でコラムアドレスCAが8で折り返されている。つまり,コラムアドレス折り返し幅CAWrapが8である。よって,ページ領域14の右端のコラムアドレスCAは#07,#0F,#17,#1F(16進数)と折り返し幅CAWrap=8になっている。そして,アクセスすべき矩形領域の先頭アドレスがCA=#0Bで,スタートバイトSB=2で,矩形領域の幅Rwidth=2クロック(4バイト×2クロック=8バイト),矩形領域のサイズがバースト長BL=8(4×8=32バイト)である。したがって,矩形領域の高さは,BL/Rwidth=4である。
図43は,自動矩形アクセスでのタイミングチャート図である。図44は,自動矩形アクセスに必要な内部コラムアドレス演算器の構成図である。図42のような矩形アクセスをするためには,供給コラムアドレスCA=#0BとSB=2に応じて,メモリ内部でコラムアドレスCA=#0B/#0C, #0C/#0D, #13/#14, #14/#15, #1B/#1C, #1C/#1D, #23/#24, #24/#25が発行されればよい。つまり,最初のアクセスではByte2,3はCA=#0B,Byte0,1はCA=#0Cにアクセスする。2度目のアクセスではコラムアドレスCAは1だけ進行してByte2、3=#0C,Byte0,1はCA=#0Dにアクセスする。そして,この例では矩形幅RWidth=2 のため,次の3度目のアクセスはコラムアドレスCAを1だけ進行した位置とはならず,折り返されたコラムアドレスCA=#13,#14になる。したがって,コラムアドレス折り返し幅CAWrapと矩形幅Rwidthから3番目のコラムアドレスを演算により求める必要がある。この3度目のアドレスをByte2,3で考えると,現在のコラムアドレスCA=#0C(=12(10進数)),CA Wrap=8,RWidth=2にもとづき,図43中の式(CA+CAWrap−Rwidth+1)により,3度目のアクセスのCAは,CA=12+8−2+1=19(10進数)=#13(16進数)と求められる。 図44にはコラム制御部90内のコラムアドレス演算器が示されている。この演算器は,外部から供給されるコラムアドレスCA,折り返したときのコラムアドレスCA(Wrap)をクロックのタイミングに同期した内部クロックpclenzに同期して+1インクリメントするコラムアドレスカウンタ440と,コラムアドレスカウンタのカウント値にCA Rwapを加算し,Rwidthを減算する演算器441と,矩形領域の折り返し時に演算器441の出力を選択するスイッチ442と,同期クロックpclenzをカウントし,アクセス中の水平方向のカウント値をカウントする矩形幅カウンタ444と,矩形幅カウンタ444の水平方向のカウント値widthzが矩形幅Rwidthと一致することを検出して,スイッチ442に切り替え信号wrapzを生成する比較器445とを有する。
図43のタイミングチャートに従って説明する。まず,矩形領域サイズがバースト長BL=8としてモードレジスタに設定され,また,ページ領域内のコラムアドレスの折り返し幅CAWrap=8もモードレジスタに設定されているものとする。そして,アクティブコマンドに続くリードコマンドと共に,先頭コラムアドレスCA=#0Bと,スタートバイトSB=2と,アクセス対象の矩形幅Rwidth=2とが供給される。これに応答して,タイミングクロックpclenzがクロックに同期して発生し,矩形幅カウンタ444がアクセス中の水平方向のカウント値widthzをカウントアップし,コラムアドレスカウンタ440が先頭コラムアドレスCA=#0Bからカウントアップする。
最初のアクセス用に発行される内部コラムアドレスcaz[7:0]は,図43に示されるとおり,CA=#0B/#0Cである。2番目のアクセスでは,コラムアドレスカウンタ440が+1インクリメントしたコラムアドレスcaz[7:0]=#0Cに対応して, #0C/#0Dが出力される。3番目のアクセスでは,矩形幅の折り返しが必要になり,演算器441の演算値がスイッチ442により選択され,コラムアドレスcaz[7:0]=#03が出力され,それに対応して折り返し後のコラムアドレスCA= #13/#14が生成される。4番目は #14/#15が生成され,5番目で矩形領域の折り返しが行われ, #1B/#1Cが生成される。その後は, #1C/#1D, #23/#24, #24/#25が同様にして生成される。
この自動矩形アクセスに対応する画像メモリの構成は,例えば,図29に示したとおりであり,4つのバイト領域Byte0-3にバイトバウンダリ機能に対応した4つのコラムアドレスの組み合わせが供給される。つまり,図43の内部コラムアドレスcazのコラムアドレスの組み合わせが,各バイト領域内のコラムデコーダに供給される。その結果,これらのコラムアドレスのデータが4つのバイト領域からそれぞれ出力される。
上記の例では,矩形アクセスの矩形幅Rwidthをリードコマンドと共に供給したが,あらかじめモードレジスタセットコマンドでモードレジスタに設定してもよい。あるいは,矩形サイズBLと矩形幅Rwidthをリードコマンドと共に供給してもよい。コラムアドレスの折り返し幅CAWrapは,画像システムがあらかじめ設定しているので,モードレジスタセットコマンドで設定するのが望ましい。
このように,矩形アクセスにおいて,起点となるコラムアドレスCAと,矩形幅Rwidthと,矩形サイズ(BL)とが与えられれば,あらかじめ設定されているコラムアドレスの折り返し幅CAWrapに基づいて,アクセスすべき内部コラムアドレスを自動的に生成することができる。よって,1回のリードコマンドの発行で,矩形アクセスを行うことができる。
[ページ領域境界のバイトバウンダリ機能]
バイトバウンダリ機能は,コラムアドレスで選択されるメモリ単位領域(4バイト領域)の境界を越えて所定バイト(4バイト)のデータを効率的にアクセスすることができる。ところが,ページ領域境界を越えて矩形アクセスをする場合は,再度別のアクティブコマンドで隣接するページ領域をアクティブ動作させることが必要になる。
図45は,バイトバウンダリ機能によるアクセスがページ領域の末尾に及んだ場合のメモリ動作の例を示す図である。この図では,ページ領域がコラムアドレスCA[7:0]=#00〜#FFで構成され,右端がCA=#FFの例である。この場合,図中矢印で示した4バイトのデータをバイトバウンダリ機能を利用してアクセスすると,アップモードにおいて,SB=0では,4バイトデータを出力することができるが,SB=1,2,3では,ページ領域の右端で折り返して左端のバイトデータをアクセスする。つまり,新たなアクティブ動作を行わずに同じページ領域内で折り返しアクセスが行われる例である。ダウンモードの場合は逆に,SB=0,1,2では左端から右端に折り返す(Wrap)する必要があるが,SB=3のみ折り返しは不要である。
上記のようなアクセスが行われると,無駄なデータが出力されるだけである。ページ領域の末尾から隣のページ領域へのアクセスを行うためには,新たなアクティブコマンドを発行して隣接ページ領域をアクティブ動作させる必要がある。
図46は,バイトバウンダリ機能によるアクセスがページ領域の末尾に及んだ場合のメモリ動作の別の例を示す図である。この例は,バースト長BLが8に設定されている例である。BL=8が設定されると,各バンク内のバーストカウンタはBL=8のカウント幅で内部コラムアドレスのカウントを繰り返す。つまり,図46の例では,バーストカウンタにより生成される内部コラムアドレスは,CA=#k8〜#kF(16ビット表記)の幅8である。このようなカウンタによりアクセス領域がバースト長BLを基準にする矩形領域に区分されるメモリの場合にも,図45と同様にバースト長領域CA=#k8〜#kFの右端でバイトバウンダリ機能を利用しようとすると,図45と同様の課題が生じる。図46の例では,アップモードでSB=1,2,3で折り返しが発生し,ダウンモードでSB=0,1,2で折り返しが発生している。これでは,無駄なデータが出力されてしまう。
図47は,バイトバウンダリ機能によるアクセスがページ領域の末尾に及んだ場合のメモリ動作の別の例を示す図である。この例では,図7で説明した矩形アクセスにおけるマルチバンクアクセス機能を利用してバイトバウンダリ動作を実現する例である。つまり,アクティブコマンドACTでロウアドレスRA=#nが指定され,リードコマンドRDで起点のコラムアドレスCAがページ領域の右端のCA=#FFの場合は,矢印のようにページ領域の境界PBを超えてアクセスが行われる。
つまり,アップモードでは,SB=1,2,3の場合,RA=#nのページ領域内のCA=#FFのバイトデータと,RA=#n+1のページ領域内のCA=#00のバイトデータとがアクセスされる。ダウンモードでは,SB=0,1,2の場合,RA=#nのページ領域内のCA=#FFのバイトデータと,RA#n+1のページ領域内のCA=#00のバイトデータとがアクセスされる。この場合,隣接するページ領域へのアクセスが必要であるので,アクティブコマンドACTと共に与えられるロウアドレスRA=#nのページ領域がアクティブ化され,リードコマンドRDと共に供給されるコラムアドレスCA=#FFとスタートバイト信号SB=2に応答して,隣接するロウアドレスRA=#n+1のページ領域がアクティブ化される。つまり,1つのアクティブコマンドACTに応答して,複数のバンク内のワード線がアクティブ化されることを意味する。
このように複数バンクが並行してアクティブ化されるように制御されれば,ページ領域の末尾でバイトバウンダリ機能が要求されても,必要な領域のデータを無駄なく入出力することができる。
[バイトバウンダリ機能のその他の用途]
バイトバウンダリ機能は,メモリに画像データを記憶し任意の画素に対応したデータにアクセスする場合に,効率的なデータの入出力を可能にする。バイトバウンダリ機能は,このような画像メモリ以外の用途においても,同様のメリットを有する。
図48〜図50は,バイトバウンダリ機能のその他の用途を説明する図である。図48,49は従来例に,図50は本実施の形態に対応する。メモリの構成として同一のコラムアドレスCAに複数のバイト領域を割り付け、一度のアクセスで同一のコラムアドレスCAに割り付けられた複数バイトのデータをアクセスすることが行われている。このような構造では,メモリへのアクセスは,同一のコラムアドレスCAに割り付けられている固定のバイトサイズ(ワード構成)のデータに対する処理については,効率良く行うことができる。
しかし、システムで処理すべきデータのサイズはメモリのワード構成未満となる場合もある。このような場合の対処方法として,ワード構成サイズ以下のデータが複数のコラムアドレスCAの領域にまたがらないようにパディングをするという方法がある。図48の例では、メモリのワード構成を4バイト(図中483参照),処理するデータサイズの単位を1バイト(図中280のフォーマットA),2バイト(同フォーマットB),4バイト(同フォーマットC)としている。そのため,4バイトサイズのデータはByte0を基点に記憶することでコラムアドレスCAをまたがないようにすることができる。2バイトサイズのデータではByte0,Byte2を基点とする位置に記憶する。1バイトサイズのデータはByte0,Byte1,Byte2,Byte3のいずれの位置を基点とすることも可能とする。
いま仮に,図中482のライトデータのように,2Byte,4Byte,1Byte,2Byte,2Byte,1Byteのサイズのデータ0〜5を連続してメモリに記憶する場合を考える。この場合,図中481のようにライト動作を行えば,図中483に示されるようにメモリ内の幾つかのバイト領域でパディングが行われ,合計で4バイトの領域は有効なデータの記憶に利用されない。これでは,メモリの容量が有効に利用されていないことになる。ただし,コラムアドレスCAにより4バイト単位で出力すれば,各データを1回のコラムアドレスアクセスで読み出せるので,読み出し速度は速くなる。
しかし、上記の記憶容量の無駄をなくすためには,パディングを行わずにメモリの各バイト領域に連続してデータを記憶すればよい。例えば,図49の図中491のように3サイクルのライトコマンドWRで書き込みを行って,図中493に示される通りにメモリ内のバイト領域にデータを記憶することができる。
図49のようにデータ書き込みを行えば,メモリの記憶容量を有効に活用することができる。しかし,データ3の2バイトのデータB03,B13のように,あるいは,データ1の4バイトのデータC01−C31のように,異なるコラムアドレスの領域にまたがってデータが記憶された場合は,従来のメモリでは1回のコラムアクセスで読み書きを実行することはできず,2回のアクセスが必要となる。図中491に示されるとおり,データ4の読み出しに2回リードコマンドRDを発行しなければならず,アクセス効率が低下する。
そこで,図50の図中500に示されるように,バイトバウンダリ機能を利用して,1回のリードコマンドRDの発行とスタートバイト信号SB=3の指定を行うことで,異なるコラムアドレスの領域にまたがるデータ3(03,B13)をアクセスすることができる。したがって、バイトバウンダリ機能を有するメモリは,アクセス性能の低下を発生させずにメモリ利用率の向上を実現することが可能である。
[バイトバウンダリ機能に対応したメモリコントローラ]
次に,バイトバウンダリ機能に対応したメモリコントローラについて説明する。図8で画像処理システムを説明したが,この画像処理システム内の画像処理チップ80内に,画像処理制御部81とメモリ制御部(メモリコントローラ)82とが含まれる。
図51は,画像処理システムの構成図である。図8と同様に,画像処理制御部81と,メモリ制御部82と,画像メモリ86とで構成される。画像処理制御部81は,一例としてMPEG復号処理を行う構成である。画像処理部81は,符号化,圧縮されたストリームデータSTMが入力されるエントロピー復号化処理部510と,DCT係数DCT−Fに基づいてデータ処理を行う逆量子化及び逆IDC処理部511と,イントラ予測部512と,動きベクトルMVとマイクロブロック分割情報MBdivに基づいてメモリ制御部82に参照画像読み出しを行うインター予測部513と,処理選択部515とを有する。メモリ制御部82は,画像処理制御部81と画像メモリ86との間でコマンドやアドレスの発行などを含むメモリ制御を行う。処理選択部515から出力される復号画像データD−IMGがメモリ制御部82により画像メモリ86に格納される。また,インター予測部513の参照画像読み出し制御部514は,メモリ制御部82を介して画像メモリ86から参照画像R−IMGのデータを取得し,処理選択部515に与える。
MPEGデコーダでは,動きベクトルに基づいてメモリから読み出される過去の画像または未来の画像内の参照画像R−IMGと,その参照画像との差分データとに基づいて,現在の画像データを復号化する。したがって,一旦画像メモリ86に格納した画像から動きベクトルの位置にある矩形の参照画像を読み出す動作が頻繁に行われる。この矩形アクセス制御において,バイトバウンダリ機能を有する画像メモリ86及びそれに対応したメモリ制御部82を利用することで,アクセス効率を高めることができる。
図52は,メモリ制御部(メモリコントローラ)の入力及び出力信号を示す図である。図53は,フレーム画像内の読み出し対象の参照画像領域を説明する図である。フレーム画像FM−IMGにおいて,左上が画素座標の原点(0,0)であり,矩形の参照画像RIMGの領域を特定するためには,矩形の左上の座標(POSX,POSY)と,縦横のサイズSIZEY,SIZEXとが必要である。したがって,画像処理部内の参照画像読み出し制御部514は,参照画像RIMGの領域を特定する上記の情報(POSX,POSY),SIZEY,SIZEXを,メモリコントローラ82に供給する。また,参照画像読み出し制御部514とメモリコントローラ82との間では,ダイレクトメモリアクセス制御信号DMA−CONが入出力される。
一方,メモリコントローラ82は,上記の参照画像領域を特定する情報(POSX,POSY),SIZEY,SIZEXに基づいて,メモリ空間内のアドレスAdd(バンクアドレス,ロウアドレス,コラムアドレス)を算出し,コマンドCMD,アドレスAdd,マルチバンクアクセス情報SA’,スタートバイト信号SB,書き込みデータDataなどをメモリ86に供給する。また,メモリ86から読み出された読み出しデータDataを受信する。
図54は,メモリ制御部の詳細な構成図である。メモリ制御部82は,前述した画像処理制御部のようにメモリへのアクセスを要求するアクセス要求元ブロック81−1〜81−Nから,アクセス対象の画像領域の情報POSX,POSY,SIZEX,SIZEY,書き込みデータDataを受信するインターフェース制御部541−1〜Nと,これらのインターフェース部を経由して上記の画像領域情報を受け取り,アドレスとコマンドを生成するアドレスコマンド生成部542−1〜Nを有する。これらのインターフェース制御部とアドレスコマンド生成部とは,調停回路540によりいずれが活性化されるべきか調停される。調停回路540により選択され活性化されているアドレスコマンド生成部542が,セレクタSELを経由して,コマンドCMD,アドレスAdd(バンクアドレス,ロウアドレス,コラムアドレス),マルチバンクアクセス情報SA’,スタートバイト信号SBなどをメモリ86に発行する。それにより,メモリ制御部82は,調停により選択されたアクセス要求元ブロックのために,メモリ86へのアクセス制御を行い,データ書き込みまたはデータ読み出しを行う。また,メモリ制御部82は,必要な頻度でメモリに対してリフレッシュ要求なども行う。
メモリ制御部82が発行するコマンドCMDには,例えば,モードレジスタセットコマンド,アクティブコマンド,リードコマンド,ライトコマンド,プリチャージコマンド,リフレッシュコマンドなど,通常のSDRAMに必要なコマンドが含まれる。また,メモリ制御部82内の設定レジスタ543には,フレーム画像FM−IMGの左上画素のアドレスや,メモリマッピング情報や,メモリ86が有する機能についての情報が設定される。メモリが有する機能とは,例えば,後述するとおり,マルチバンクアクセス機能や,エンディアンに対応するデータ配列の切り替え機能などであり,コントロール対象のメモリが有する機能の有無がこの設定レジスタ543に設定される。
図55は,参照画像読み出し制御部514でのインター予測部513の演算を説明する図である。MPEGの場合,マクロブロックMBを処理単位にしている。マクロブロックMBは16×16画素の輝度データと,8×8画素の色差(Cb,Cr)データ(Y:U:V=4:2:0の場合)で構成される。そして,このマクロブロックMBを4等分した8×8画素の輝度データを含む1/4マクロブロックQMBが,動きベクトルMV,参照画像RIMGの処理単位である。仮に,現在処理中のマクロブロックMBの左上座標が(MBaddrx,MBaddry),そのマクロブロック分割情報がMbdivx,Mbdivy,動きベクトルMV=(MVx,MVy)とすると,演算処理部515では,図示される演算式の演算により,参照画像RIMGの左上座標(POSX,POSY)と横幅SIZEXと高さSIZEYとが算出される。この横幅SIZEXは,メモリの1回のアクセスで入出力されるバイト数の倍数に設定され,高さSIZEYは垂直方向の画素数に設定される。
上記のようにして算出された参照画像特定情報(POSX,POSY),SIZEY,SIZEXが,参照画像読み出し制御部514からメモリコントローラ82に出力され,メモリコントローラ82内のコマンドアドレス生成部542が,上記参照画像特定情報と,設定レジスタ543内のメモリマッピング情報とフレーム領域の左上のアドレスなどに基づいて,矩形アクセスに必要なメモリ空間のアドレスを生成する。
図56は,参照画像読み出し制御部514でのインター予測部513の演算例を示す図である。図55の具体例である。まず,マクロブロックMBの左上座標が(MBaddrx,MBaddry)=(0,0),マクロブロック分割情報がMbdivx,Mbdivy=8,動きベクトルMV=(MVx,Mvy)=(13,4)であるので,参照画像RIMGの左上座標(POSX,POSY),横幅SIZEXと高さSIZEYは,次の通り演算で求められる。
POSX=0+8+13=21
POSY=0+8+4=12
SIZEX=8,SIZEY=8
上記の参照画像RIMGの矩形領域は,コラムアドレスで選択される4バイト領域の単位と整合しない。4バイト領域の単位と整合させるためには,図56中の拡大領域E−RIMGのように,左上座標(20,12),横幅12,高さ8の領域にアクセスすることが必要になる。しかし,バイトバウンダリ機能を利用することで,4バイト単位の境界を越えてバイト単位でアクセスが可能になる。このように,MPEGなどの参照画像データのアクセスにおいて,バイトバウンダリ機能はアクセス効率の向上に寄与する。
図57は,メモリマッピング例を示す図である。図1に示したメモリマッピング12と同様に,画像の画素とメモリ空間内のページ領域14とがメモリマッピング12のように対応付けられていて,隣接するページ領域は異なるバンクアドレスBAになるよう配置されている。ページ領域14は,バンクアドレスBAとロウアドレスRAで選択される領域であり,各ページ領域14は,コラムアドレスで選択される複数のメモリ単位領域(4バイト領域)で構成される。図57の例では,ページ領域14は,64画素×16画素の画像データを格納する単位である。
図58は,メモリマッピング12におけるページ領域14の構成を示す図である。バンクBANK0内のロウアドレスRA0で特定されるページ領域14は,コラムアドレスCA0〜CA255のメモリ単位領域を有し,各コラムアドレスにより4バイトが選択され,コラムアドレスCAの折り返し幅(ステップ幅)が16である。よって,ページ領域14は,横幅が64(=4×16)バイト,高さが16(=256/16)バイトの構成になっている。
図59は,図56の参照画像領域のメモリマップ上での配置を示す図である。図59に示されるとおり,参照画像領域RIMGは,左上座標(21,12),横幅8,高さ8であるので,コラムアドレスCA5を先頭番地とし,バイトBY1から横幅8バイト,高さ8バイトのメモリ領域に対応する。つまり,矩形アクセス領域の左端591は,コラムアドレスCAによる境界590から1バイト(図中592)だけシフトしている。よって,前述のバイトバウンダリ機能を有するメモリに対しては,アクティブコマンドACTと共にバンクアドレスBA0,ロウアドレスRA0を発行し,リードコマンドRD(又はライトコマンドWR)と共に先頭コラムアドレスCA5,CA6〜CA117,CA118とスタートバイト信号SB=1を連続して発行すれば良い。または,図42〜44で示した自動内部コラムアドレス生成機能を有するメモリに対しては,コラムアドレス折り返し幅CAWrap=16を設定しておき,リードコマンドRD(又はライトコマンドWR)と共に先頭コラムアドレスCA5と,スタートバイト信号SB=1と,矩形幅Rwidth=2と,バースト長BL=16とを発行すれば良い。
図60は,参照画像領域のメモリマップ上での別の配置例を示す図である。この図では,参照画像領域RIMGが,隣接するページ領域14−0,14−1にまたがっている。つまり,ページ領域の境界600を超えている。この場合は,図7で説明したマルチバンクアクセス機能を有するメモリであれば,マルチバンクアクセス情報SA'を発行することで,1回のアクティブコマンドによりアクセスすることができる。メモリがマルチバンクアクセス機能を有していない場合は,バンクBANK0,1に対する複数回のアクティブコマンドを発行してアクセスしなければならない。よって,メモリコントローラは,コントロール対象の画像メモリがマルチバンクアクセス機能を有するか否かをレジスタに設定しておき,その設定情報に応じて,画像メモリへのアクセス制御を変更する必要がある。
図61は,バイトバウンダリ機能を有しないメモリに対するメモリコントローラでのタイミングチャート図である。図59の参照画像RIMGのアクセス例である。従来のSDRAMにはバイトバウンダリ機能は設けられていない。その場合は,メモリコントローラは,図61に示すような制御を行わなければならない。
図61中,参照画像読み出し制御部とメモリコントローラとの間の信号610と,メモリコントローラと画像メモリとの間の信号611とが示されている。前述したとおり,参照画像読み出し制御部514は,メモリコントローラにアクセス要求REQと共に参照画像領域の左上座標POSX,POSYと横幅SIZEX,高さSIZEYの情報を送信し,メモリコントローラはそれに応答してアクノリッジ信号ACKを返信する。メモリマッピング情報とフレーム画像の左上原点のアドレスとはあらかじめ設定レジスタに設定されているものとする。
このアクセス要求REQに応答して,メモリコントローラは,画像メモリに対して,アクティブコマンドACTとバンクアドレスBA=0,ロウアドレスRA=0を発行して,メモリにアクティブ動作を行わせる。その後,メモリコントローラは,クロックCLKに同期して,リードコマンドRDとバンクアドレスBA=0,コラムアドレスCA=5,6,7〜117,118,119(24回)を発行して,4バイトデータを24回受信する。その後,メモリコントローラは,ストローブ信号STBをHレベルにしてその受信したデータを読み出し制御部に送信する。
図62は,バイトバウンダリ機能を有するメモリに対するメモリコントローラでのタイミングチャート図である。この図は,図59の参照画像RIMGのアクセス例であり,メモリがバイトバウンダリ機能を有する場合の制御である。図中,参照画像読み出し制御部とメモリコントローラとの間の信号620と,メモリコントローラと画像メモリとの間の信号621とが示されている。
この場合は,参照画像読み出し制御部からメモリコントローラに図61と同じ信号が送信される。メモリコントローラは,画像メモリに対して,アクティブコマンドACTとバンクアドレスBA=0,ロウアドレスRA=0を発行して,メモリにアクティブ動作を行わせ,その後,メモリコントローラは,リードコマンドRDと,バンクアドレスBA=0と,コラムアドレスCA=5,6〜117,118(16回)と,スタートバイト信号SB=01とを発行して,4バイトデータを16回受信する。さらに,メモリコントローラは,ストローブ信号STBをHレベルにしてその受信した64バイトのデータを読み出し制御部に送信する。メモリがバイトバウンダリ機能を有するので,リードコマンドの発行は16回でよく,アクセス効率が高くなる。
また,図示していないが,図42〜44で示した自動内部コラムアドレス生成機能を有するメモリに対しては,コラムアドレス折り返し幅CAWrap=16を設定しておき,リードコマンドRDと共に先頭コラムアドレスCA5と,スタートバイト信号SB=01と,矩形幅Rwidth=2と,バースト長BL=16とを発行すれば良い。それに応答して,画像メモリは内部でコラムアドレスを自動生成し矩形領域の4バイトデータを16サイクルで出力し,メモリコントローラは,4バイトデータを16回連続して受信する。
図63は,バイトバウンダリ機能とマルチバンクアクセス機能を有しないメモリに対するメモリコントローラでのタイミングチャート図である。この例は,図60の参照画像RIMGをアクセスする例であり,マルチバンクアクセス機能を有しない画像メモリに対する制御例である。図中,参照画像読み出し制御部とメモリコントローラとの間の信号630と,メモリコントローラと画像メモリとの間の信号631とが示されている。
マルチバンクアクセス機能を有しないメモリは,図45に示したとおり,バンク境界をまたぐ領域へのアクセスは不可能である。したがって,この場合は,メモリコントローラは,アクティブコマンドACTとBA=0,RA=0を発行してページ領域14−0をアクティブ動作させ,リードコマンドRDと共にバンクアドレスBA=0,コラムアドレスCA=15〜127を発行して,8バイトのデータを受信する。さらに,メモリコントローラは,アクティブコマンドACTとBA=1,RA=0を発行してページ領域14−1をアクティブ動作させ,リードコマンドRDと共にバンクアドレスBA=1,コラムアドレスCA=0,1〜112,113を発行して,16バイトのデータを受信する。そして,メモリコントローラは,受信した24バイトのデータを参照画像読み出し制御部に送信する。
図64は,マルチバンクアクセス機能とバイトバウンダリ機能を有するメモリに対するメモリコントローラにおけるタイミングチャート図である。これも図60の参照画像RIMGをアクセスする例である。図中,参照画像読み出し制御部とメモリコントローラとの間の信号640と,メモリコントローラと画像メモリとの間の信号641とが示されている。
メモリコントローラは,アクティブコマンドACTと共にバンクアドレスBA=0,ロウアドレスRA=0,そしてマルチバンクアクセス情報SA’=10(横方向に隣接する2バンクのアクセスを示す)を発行する。これに応答して,画像メモリは,バンクBA=0のバンクをアクティブ動作させる。そして,メモリコントローラは,リードコマンドRDと共に,スタートバイト信号SB=01とバンクアドレスBA,コラムアドレスCAを順次発行する。このコラムアドレスCA=15に応答して,画像メモリは,BA=1のバンクもアクティブ動作させる。メモリコントローラは,16回のリードコマンドRDに対応して,16バイトのデータを受信する。さらに,メモリコントローラは,受信した16バイトのデータを参照画像読み出し制御部に送信する。
このように,メモリコントローラは,マルチバンクアクセス機能を有するメモリに対しては,異なるバンク領域にまたがるデータであっても,1回のアクティブコマンドを発行すればよい。
図65は,メモリコントローラの制御動作のフローチャート図である。まず,上位のCPUによりメモリコントローラ内の設定レジスタにマルチバンクアクティブ機能のON/OFFが設定される(S1)。参照画像読み出し制御部が,動きベクトル情報,マクロブロック分割情報,対象マクロブロック情報により,参照画像ブロックの座標(POSX,POSY)とサイズ(SIZEX,SIZEY)を算出し(S2),矩形アクセスのリクエストをそれらの矩形パラメータと共にメモリコントローラに発行する(S3)。
メモリコントローラは,この矩形パラメータ(POSX,POSY)(SIZEX,SIZEY)と,設定レジスタに設定されているメモリマップ情報及びフレーム画像のアドレス情報とから,矩形アクセスで発行すべきBA,RA,CA,SB,SA’を算出する(S4)。マルチバンクアクティブ機能がONの場合は(S5のYES),メモリコントローラは,アクティブコマンドACTと共にBA,RA,SA’を発行し,更に,リードコマンドRDと共にBA,CA,SBを順次発行しながら,リードデータを受信する(S6,S7,S8)。ライト動作の場合は,リードコマンドの代わりにライトコマンドWRと共にBA,CA,SBを順次発行しながら,ライトデータを出力する。
また,マルチバンクアクティブ機能がOFFの場合は(S5のNO),メモリコントローラは,リクエストのあった矩形がページ領域,つまりバンクをまたぐか否かをチェックし(S9),またがない場合(S9のNO)は,アクティブコマンドACTと共にBA,RAを発行し,更に,リードコマンドRDと共にBA,CA,SBを順次発行しながら,リードデータを受信する(10,11,12)。ライト動作の場合は,リードコマンドの代わりにライトコマンドWRと共にBA,CA,SBを順次発行しながら,ライトデータを出力する。
さらに,バンクをまたぐ場合(S9のYES),バイトバウンダリ機能を利用できないので,メモリコントローラは,図56に示した拡大矩形領域E−RIMGの座標POSXと幅SIZEXを算出し,それに対応する左上座標のアドレスBA,RA,CAを算出する(S13)。そして,拡大矩形領域に対して,アクティブコマンドACTと共にBA,RAを発行を発行し,リードコマンドRDと共にBA,CAを順次発行しながらリードデータを受信する(S15,16,17)。そして,左上座標のバンク内のリードが完了すると(S17のYES,S14のYES),一旦プリチャージコマンドを発生したのち,次のバンクに対してアクティブコマンドを発生し,更にリードコマンドRDと共にBA,CAを順次発行しながらリードデータを受信する(S19,S16,17)。そのバンク内のデータを全て受信し(S17のYES),全てのデータ読み出しが完了したら(S18),メモリ制御を終了する。
なお,メモリコントローラの設定レジスタに,バイトバウンダリ機能をOFFにする設定がある場合は,図65の構成S13〜S18により図61のようにメモリコントローラがアクティブコマンドとリードコマンドと必要なアドレスとを発行する。
このように,メモリコントローラは,内蔵の設定レジスタにバイトバウンダリ機能のON,OFFやマルチバンクアクティブ機能のON,OFFとを設定可能であり,制御対象の画像メモリの機能に応じて,必要なコマンドとアドレス,マルチバンク情報,スタートバイト情報,アップモード,ダウンモード,オルターナティブなどのバイト組み合わせ情報などを適宜発行する。
図66は,メモリコントローラの制御動作のフローチャート図である。この例は,図35,36に示したエンディアンに対応して入出力データの入れ替え機能を制御対象の画像メモリが有するか否かをメモリコントローラに設定できるようになっている。まず,上位のCPUがメモリコントローラの設定レジスタに,画像メモリにおける出力データの並び替え機能の有無を設定する(S20)。そして,参照画像読み出し制御部が,動きベクトル情報,マクロブロック分割情報,対象マクロブロック情報により,参照画像ブロックの座標(POSX,POSY)とサイズ(SIZEX,SIZEY)を算出し(S21),矩形アクセスのリクエストをそれらの矩形パラメータと共にメモリコントローラに発行する(S22)。
次に,メモリコントローラは,この矩形パラメータ(POSX,POSY)(SIZEX,SIZEY)と,設定レジスタに設定されているメモリマップ情報及びフレーム画像のアドレス情報とから,矩形アクセスで発行すべきBA,RA,CA,SB,SA’を算出する(S23)。そして,出力データの並び替え機能がONに設定されている場合は(S24のYES),メモリコントローラは,アクティブコマンドと共にバンクアドレスBA,ロウアドレスRA,マルチバンク情報SA’を発行し,さらにリードコマンドと共にバンクアドレスBA,コラムアドレスCA,スタートバイト情報SBを発行する(S25)。その後は,全てのデータの読み出しが完了するまで,リードコマンド,BA,CA,SBを繰り返し発行する(S26,S27)。
一方,出力データの並び替え機能がOFFに設定されている場合は(S24のNO),メモリコントローラは,アクティブコマンドと共にバンクアドレスBA,ロウアドレスRA,マルチバンク情報SA’を発行し,さらにリードコマンドと共にバンクアドレスBA,コラムアドレスCA,スタートバイト情報SBを発行する(S25)。その後は,全てのデータの読み出しが完了するまで,リードコマンド,BA,CA,SBを繰り返し発行すると共に,受信したデータの並びが元の画像データの順番になるように並び替えを行う(S28,S29,S30)。
上記の図65と図66とは,設定レジスタの設定項目によって適宜組み合わせることができる。
なお,上記の実施の形態では,複数画素の画像データを二次元配置したデジタル画像データを記憶する画像メモリを例にして説明した。しかしながら,本発明は,画像データを記憶する画像メモリに限定されず,画像データ以外でも二次元配列されたデータを所定のマッピングルールに基づいて記憶するメモリ装置に適用可能である。記憶データが二次元配列されたデータであれば,その二次元配列データ内の任意の矩形領域をアクセスするときに複数のメモリ単位領域に跨ってデータにアクセスすることが求められることがある。その場合にも本発明は適用可能である。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)アドレスにより選択される複数のメモリ単位領域を有するメモリセルアレイと,
複数の入出力端子と,
前記メモリセルアレイと複数の入出力端子との間に設けられる入出力ユニットとを有し,
前記メモリ単位領域内には,前記複数の入出力端子に対応する複数のバイト又はビットのデータが記憶され,
さらに,前記メモリセルアレイと入出力ユニットは,第1の動作コードに応答して,入力アドレスと前記バイト又はビットの組み合わせ情報とに基づいて,前記入力アドレスに対応する第1のメモリ単位領域とそれに隣接する第2のメモリ単位領域内の複数のバイト又はビットにアクセスし,前記アクセスした第1及び第2のメモリ単位領域の複数のバイト又はビットから,前記組み合わせ情報に基づく組み合わせの複数のバイト又はビットを,前記複数の入出力端子に対応付けることを特徴とするメモリ装置。
(付記2)付記1において,
前記アドレスは,ロウアドレスとコラムアドレスとを有し,
前記メモリセルアレイは,前記ロウアドレスで選択される複数のページ領域を有し,当該ページ領域は,前記コラムアドレスで選択される複数の前記メモリ単位領域を有し,
アクティブコマンド,リード又はライトコマンドが供給され,前記第1の動作コードが前記リード又はライトコマンドであり,
前記アクティブコマンドに応答して,前記ロウアドレスで選択されるページ領域がアクティブ動作を行い,前記リード又はライトコマンドに応答して,前記コラムアドレスに対応する前記第1のメモリ単位領域とそれに隣接する第2のメモリ単位領域の複数のバイト又はビットから,前記組み合わせ情報に基づく組み合わせの複数のバイト又はビットが,前記複数の入出力端子に対応付けられるメモリ装置。
(付記3)付記2において,
二次元配列データが前記複数のメモリ単位領域に所定のマッピングルールにしたがって記憶され,
前記メモリセルアレイは,複数のバンクを有し,各バンクは複数の前記ページ領域を有し,各ページ領域は複数のメモリ単位領域を有し,
前記アクティブコマンドと共に,前記バンクを選択するバンクアドレスと前記ロウアドレスが供給され,前記リード又はライトコマンドと共に,前記バンクアドレス及びコラムアドレスと,前記組み合わせ情報とが供給されるメモリ装置。
(付記4)付記3において,
前記組み合わせ情報は,前記メモリ単位領域内の先頭バイト又は先頭ビットを示す第1の情報(SB)と,前記マッピングルールを示す第2の情報(BMR)とを有し,
前記第1の情報と第2の情報とが前記リード又はライトコマンドと共に供給されるメモリ装置。
(付記5)付記3において,
前記組み合わせ情報は,前記メモリ単位領域内の先頭バイト又は先頭ビットを示す第1の情報(SB)と,前記マッピングルールを示す第2の情報(BMR)とを有し,
前記第1の情報が前記リード又はライトコマンドと共に供給され,
前記第2の情報が,前記アクティブコマンドに先行するモードレジスタセットコマンドと共に供給され,
前記第2の情報がモードレジスタ内に設定されるメモリ装置。
(付記6)付記1において,
二次元配列データが前記複数のメモリ単位領域に所定のマッピングルールにしたがって記憶され,
前記組み合わせ情報は,前記メモリ単位領域内の先頭バイト又は先頭ビットを示す第1の情報(SB)と,前記マッピングルールを示す第2の情報(BMR)とを有し,
前記マッピングルールを示す第2の情報には,前記二次元配列データの配列順と前記メモリ単位領域内のデータの配列順とが同じであるビッグエンディアンと,前記二次元配列データの配列順と前記メモリ単位領域内のデータの配列順とが逆であるリトルエンディアンと,前記二次元配列データの奇数及び偶数の配列順と前記メモリ単位領域内のデータの奇数及び偶数の配列順とが異なる奇数偶数反転ルールとを含むマッピングルールグループ内のいずれかが含まれるメモリ装置。
(付記7)付記1において,
前記メモリセルアレイは,複数のバンクを有し,各バンクは複数の前記ページ領域を有し,各ページ領域は複数のメモリ単位領域を有し,
前記アドレスは,バンクアドレスとロウアドレスとコラムアドレスとを有し,
前記ページ領域が前記バンクアドレスとロウアドレスで選択され,前記メモリ単位領域が前記バンクアドレスとコラムアドレスで選択され,
動作コードとしてアクティブコマンド,リード又はライトコマンドが供給され,前記第1の動作コードが前記リード又はライトコマンドであり,
前記アクティブコマンドと共に,前記バンクを選択するバンクアドレスと前記ロウアドレスが供給され,それに応答して,前記バンクアドレス及びロウアドレスで選択されるページ領域がアクティブ動作を行い,
前記リード又はライトコマンドと共に,前記バンクアドレス及びコラムアドレスと前記組み合わせ情報とが供給され,それに応答して,前記バンクアドレス及びコラムアドレスに対応する前記第1のメモリ単位領域とそれに隣接する第2のメモリ単位領域の複数のバイト又はビットから,前記組み合わせ情報に基づく組み合わせの複数のバイト又はビットが,前記複数の入出力端子に対応付けられるメモリ装置。
(付記8)付記1において,
前記メモリセルアレイは複数のバンクに分割され,各バンク内のメモリセルアレイは複数の前記ページ領域を有し,各ページ領域は複数のメモリ単位領域を有し,
前記アドレスは,バンクアドレスとロウアドレスとコラムアドレスとを有し,
前記ページ領域が前記バンクアドレスとロウアドレスで選択され,前記メモリ単位領域が前記バンクアドレスとコラムアドレスで選択され,
前記バンクは,前記メモリセルアレイと,コラムデコーダと,ロウデコーダと,前記入出力ユニットとを有し,
前記入出力ユニットは,前記メモリセルアレイにアクセスされるデータをラッチするデータラッチ回路と,前記データラッチ回路内のデータを前記組み合わせ情報に基づいて選択するデータバススイッチ回路とを有するメモリ装置。
(付記9)付記8において,
前記リード又はライトコマンドに応答して,前記コラムデコーダは,供給コラムアドレスの第1のデコード信号と前記供給コラムアドレスに隣接するコラムアドレスの第2のデコード信号とを順次生成し,前記第1のデコード信号に対応するデータが第1のデータラッチ回路に格納され,前記第2のデコード信号に対応するデータが第2のデータラッチ回路に格納され,
前記リードコマンドの場合は,前記第1,第2のデータラッチ回路内のデータが前記データバススイッチ回路により選択されて前記入出力端子に出力され,
前記ライトコマンドの場合は,前記入出力端子に入力されたデータが前記データバススイッチ回路により選択された前記第1,第2のデータラッチ回路に格納されるメモリ装置。
(付記10)付記8において,
前記リード又はライトコマンドに応答して,前記コラムデコーダは,供給コラムアドレスの第1のデコード信号と前記供給コラムアドレスに隣接するコラムアドレスの第2のデコード信号とを同時に生成し,前記第1のデコード信号に対応するデータが第1のデータラッチ回路に格納され,前記第2のデコード信号に対応するデータが第2のデータラッチ回路に格納され,
前記リードコマンドの場合は,前記第1,第2のデータラッチ回路内のデータが前記データバススイッチ回路により選択されて前記入出力端子に出力され,
前記ライトコマンドの場合は,前記入出力端子に入力されたデータが前記データバススイッチ回路により選択された前記第1,第2のデータラッチ回路に格納されるメモリ装置。
(付記11)付記10において,
前記コラムデコーダは,前記第1,第2のデコード信号に加えて,更に隣接するコラムアドレスの第3,第4のデコード信号を同時に生成し,前記第3,第4のデコード信号に対するデータが第3,第4のデータラッチ回路に格納され,
前記リードコマンドの場合は,前記第1,第2,第3,第4のデータラッチ回路内のデータが前記データバススイッチ回路により選択されて前記入出力端子に出力され,
前記前記ライトコマンドの場合は,前記入出力端子に入力されたデータが前記データバススイッチ回路により選択された前記第1,第2のデータラッチ回路に格納されるメモリ装置。
(付記12)付記8において,
前記メモリセルアレイは,複数のバイト又はビット領域に分割され,各バイト又はビット領域は偶数コラムアドレスでアクセスされる偶数バイト又はビット領域と奇数コラムアドレスでアクセスされる奇数バイト又はビット領域とを有し,
前記データバススイッチ回路は,前記複数のバイト又はビット領域それぞれにおいて,偶数バイト又はビット領域か,あるいは奇数バイト又はビット領域かのいずれかを入出力端子群に接続するスイッチ群を有し,当該スイッチ群が前記供給コラムアドレスと組み合わせ情報とに応じて導通・非導通制御されるメモリ装置。
(付記13)付記8において,
前記メモリセルアレイは,複数のバイト又はビット領域に分割され,各バイト又はビット領域は偶数コラムアドレスでアクセスされる偶数バイト又はビット領域と奇数コラムアドレスでアクセスされる奇数バイト又はビット領域とを有し,
前記データバススイッチ回路は,前記複数のバイト又はビット領域それぞれにおいて,偶数バイト又はビット領域か,あるいは奇数バイト又はビット領域かのいずれかをいずれかの入出力端子群に接続するスイッチ群を有し,当該スイッチ群が前記供給コラムアドレスと組み合わせ情報とに応じて導通・非導通制御されるメモリ装置。
(付記14)付記13において,
二次元配列データが前記複数のメモリ単位領域に所定のマッピングルールにしたがって記憶され,
前記組み合わせ情報がアップモードかダウンモードかに応じて,前記データバススイッチ回路は,前記複数のバイト又はビット領域のバイト又はビットデータを,アップモードまたはダウンモードの組み合わせで前記入出力端子群に接続するメモリ装置。
(付記15)付記1において,
前記メモリセルアレイは複数のバンクに分割され,各バンク内のメモリセルアレイは複数の前記ページ領域を有し,各ページ領域は複数のメモリ単位領域を有し,
前記アドレスは,バンクアドレスとロウアドレスとコラムアドレスとを有し,
前記ページ領域が前記バンクアドレスとロウアドレスで選択され,前記メモリ単位領域が前記バンクアドレスとコラムアドレスで選択され,
前記バンクは,複数のバイト又はビット領域に分割され,各バイト又はビット領域が前記メモリセルアレイと,コラムデコーダと,前記入出力ユニットとを有し,
前記複数のバイト又はビット領域内のコラムデコーダは,前記供給されるコラムアドレスと組み合わせ情報に基づくコラムアドレスのデコード信号をそれぞれ出力し,前記メモリセルアレイが前記デコード信号に対応するバイト又はビットのデータの入出力を行うメモリ装置。
(付記16)付記15において,
前記供給されるコラムアドレスと組み合わせ情報とに基づいて,前記複数のバイト又はビット領域内のコラムデコーダへ供給するコラムアドレスを制御するコラムアドレス制御回路(290)を有するメモリ装置。
(付記17)付記15において,
前記入出力ユニットは,前記複数のバイト又はビット領域と前記入出力端子群とを接続するスイッチ群を有し,当該スイッチ群は,前記供給される組み合わせ情報のアップモードとダウンモードとに応じて,前記複数のバイト又はビット領域のバイト又はビットデータを,アップモードまたはダウンモードの組み合わせで前記入出力端子群に接続するメモリ装置。
(付記18)付記15において,
二次元配列データが前記複数のメモリ単位領域に所定のマッピングルールにしたがって記憶され,
前記供給されるコラムアドレスと組み合わせ情報とに加えて,前記二次元配列データのアクセスされる矩形領域の幅情報と矩形サイズ情報とを供給され,
さらに,1回のリード又はライトコマンドに応答して,前記供給コラムアドレス,組み合わせ情報,矩形領域の幅情報と矩形サイズ情報に基づき,前記複数のバイト又はビット領域のコラムデコーダに,前記矩形領域に対応するコラムアドレスの組み合わせ群を順番に供給するコラム制御部を有するメモリ装置。
(付記19)付記1に記載されたメモリ装置と,
前記第1の動作コードと共に,前記アドレスと,前記バイト又はビットの組み合わせ情報とを前記メモリ装置に供給して,前記メモリ装置内の第1及び第2のメモリ単位領域内の複数のバイト又はビットにアクセスするメモリコントローラとを有するメモリシステム。
(付記20)付記19において,
前記メモリ装置において,
前記メモリセルアレイは,複数のバンクを有し,各バンクは複数の前記ページ領域を有し,各ページ領域は複数のメモリ単位領域を有し,
前記アドレスは,バンクアドレスとロウアドレスとコラムアドレスとを有し,
前記ページ領域が前記バンクアドレスとロウアドレスで選択され,前記メモリ単位領域が前記バンクアドレスとコラムアドレスで選択され,
動作コードとしてアクティブコマンド,リード又はライトコマンドが供給され,前記第1の動作コードが前記リード又はライトコマンドであり,
前記アクティブコマンドと共に,前記バンクを選択するバンクアドレスと前記ロウアドレスが供給され,それに応答して,前記バンクアドレス及びロウアドレスで選択されるページ領域がアクティブ動作を行い,
前記リード又はライトコマンドと共に,前記バンクアドレス及びコラムアドレスと前記組み合わせ情報とが供給され,それに応答して,前記バンクアドレス及びコラムアドレスに対応する前記第1のメモリ単位領域とそれに隣接する第2のメモリ単位領域の複数のバイト又はビットから,前記組み合わせ情報に基づく組み合わせの複数のバイト又はビットが,前記複数の入出力端子に対応付けられ,
前記メモリコントローラは,前記アクティブコマンドと共に,前記バンクを選択するバンクアドレスと前記ロウアドレスとを,メモリ装置に供給し,前記リード又はライトコマンドと共に,前記バンクアドレス及びコラムアドレスと前記組み合わせ情報とを供給するメモリシステム。
(付記21)付記19において,
二次元配列データが前記複数のメモリ単位領域に所定のマッピングルールにしたがって記憶され,
前記メモリコントローラは,前記二次元配列データ内の所定の矩形領域を特定する情報に基づいて,前記アドレスと前記バイト又はビットの組み合わせ情報を算出することを特徴とするメモリシステム。
(付記22)付記1に記載されたメモリ装置を制御するメモリコントローラにおいて,
前記第1の動作コードと共に,前記アドレスと,前記バイト又はビットの組み合わせ情報とを前記メモリ装置に供給して,前記メモリ装置内の第1及び第2のメモリ単位領域内の複数のバイト又はビットにアクセスするメモリコントローラ。
(付記23)付記22において,
二次元配列データが前記複数のメモリ単位領域に所定のマッピングルールにしたがって記憶され,
前記二次元配列データ内の所定の矩形領域を特定する情報に基づいて,前記アドレスと前記バイト又はビットの組み合わせ情報を算出するメモリコントローラ。
(付記24)
半導体基板上に回路を集積した半導体集積回路装置において,
ワード線およびビット線に接続された複数のメモリセルを有するメモリ単位領域が,マトリックス状に配置されたメモリアレイと、
外部から入力されるリードコマンドに応答して、複数のメモリセルから複数のデータを読み出す入出力ユニットとを有し,
前記入出力ユニットは,組み合わせ情報に応じて、前記読み出される複数データの組み合わせを変更することを特徴とする半導体集積回路。
(付記25)
付記24において,前記組み合わせ情報は、前記半導体基板に内蔵されたレジスタに記憶される半導体集積回路。
(付記26)
付記25において,外部から入力されるモードレスジタセットコマンドに応答して,前記組み合わせ情報が前記レジスタに記憶される半導体集積回路。
(付記27)
付記24において,前記組み合わせ情報は、前記リードコマンドと関連して外部から入力される半導体集積回路。
(付記28)
付記24〜27のいずれかにおいて,前記メモリ単位領域の複数データは単一のコラムアドレスにそれぞれ割り当てられている半導体集積回路。
(付記29)
付記24〜27のいずれかにおいて,前記組み合わせられて読み出される複数データは,第1のコラムアドレスに割り当てられた第1の複数データの一部と第2のコラムアドレスに割り当てられた第2の複数データの一部とで構成される半導体集積回路。
(付記30)
付記29において,前記第1の複数データは、第1、第2、第3及び第4のデータからなり、前記第2の複数データは第5、第6、第7及び第8のデータからなり、前記組み合わせ情報が第1の情報のとき、前記読み出される複数データは前記第2、第3、第4及び第5データで構成され、前記組み合わせ情報が第2の情報のとき、前記読み出される複数データは前記第3、第4、第5及び第6データで構成される半導体集積回路。
(付記31)
付記30において,前記組み合わせ情報が第3の情報のとき、前記読み出される複数データは前記第4、第5、第6及び第7データで構成される半導体集積回路。
(付記32)
半導体メモリコントローラ装置と表示画像データを記憶する半導体メモリ装置とを有する画像処理システムにおいて、
前記半導体メモリ装置は複数のバンクを有し、各バンク内に複数のワード線を有し、前記複数バンクはお互いに異なるバンクアドレスが割り当てられ、前記各バンク内の複数のワード線はお互いに異なるロウアドレスが割り当てられ、前記バンクアドレスと前記ロウアドレスによりページ領域が特定され、前記ページ領域は異なるコラムアドレスにそれぞれ割り当てられた複数のメモリ単位領域を有し、
前記半導体メモリコントローラは,前記表示画像データを所定のメモリマッピングに基づいて前記半導体メモリ装置内の前記複数のページ領域に記憶するよう制御し,
当該メモリマッピングでは上下左右に隣接するページ領域には異なるバンクアドレスが割り当てられ,
前記半導体メモリ装置は,前記半導体メモリコントローラ装置から供給される組み合わせ情報に基づき、2つの前記メモリ単位領域内のデータを組み合わせて前記半導体コントローラ装置へ出力することを特徴とする画像処理システム。
(付記33)
付記32において,前記半導体メモリコントローラ装置から出力された前記組み合わせ情報は、前記半導体メモリ装置内のレジスタに記憶される画像処理システム。
(付記34)
付記33において,前記半導体メモリコントローラ装置は前記組み合わせ情報とモードレスジタセットコマンドを出力し、前記半導体メモリ装置は前記モードレスジタセットコマンドに応答して前記組み合わせ情報を前記レジスタに記憶する画像処理システム。
(付記35)
付記32において,前記半導体メモリコントローラ装置は前記組み合わせ情報とリードコマンドを前記半導体メモリ装置に出力する画像処理システム。
(付記36)
付記32において,前記ページ領域は第1のコラムアドレスに割り当てられた第1のメモリ単位領域と第2のコラムアドレスに割り当てられた第2のメモリ単位領域とを有し,前記半導体メモリコントローラ装置から供給される前記組み合わせ情報に基づき、前記半導体メモリ装置は前記第1および第2のメモリ単位領域のデータを前記半導体メモリコントローラ装置へ出力する画像処理システム。
(付記37)
付記36において,前記第1のメモリ単位領域は、第1、第2、第3及び第4のデータからなり、前記第2のメモリ単位領域は第5、第6、第7及び第8データからなり、前記組み合わせ情報が第1の情報のとき、前記半導体メモリ装置は前記第2、第3、第4及び第5のデータを前記半導体メモリコントロ-ラ装置に出力し、前記組み合わせ情報が第2の情報のとき、前記半導体メモリ装置は前記第3、第4、第5及び第6のデータを前記半導体メモリコントローラ装置に出力する画像処理システム。
(付記38)
付記36において,前記組み合わせ情報が第3情報のとき、前記半導体メモリ装置は前記第4、第5、第6及び第7データを前記半導体コントローラ装置に出力する画像処理システム。
(付記39)
付記24に記載された半導体集積回路装置を制御する半導体メモリコントローラにおいて、
前記リードコマンドと、前記組み合わせ情報とを前記半導体集積回路装置に供給すること
を特徴とする半導体メモリコントローラ。
(付記40)
半導体メモリコントローラにおいて、
半導体メモリ装置をアクセスするためにリードコマンド、バンクアドレス、ロウアドレス、コラムアドレスを生成するコマンド・アドレス生成部と、
スタートバイト信号を生成するスタートバイト生成部とを有し、
前記バンクアドレスと前記ロウアドレスにより前記半導体メモリ装置内のページ領域を指定し、前記コラムアドレスにより前記ページ領域内のメモリ単位領域を指定し、前記スタートバイト信号により前記メモリ単位領域内に含まれる複数のデータ群から1つのデータ群を選択することを特徴とする半導体メモリコントローラ。
(付記41)
半導体基板上に回路を集積した半導体集積回路装置において,
符号化された画像データを復号化する画像処理制御部と、
画像メモリを制御するメモリ制御部と、
前記画像メモリが有する機能を示す機能情報を設定する設定レジスタとを有し、
前記画像処理部は矩形画像の始点座標と当該矩形画像の縦及び横サイズ情報を前記メモリ制御部へ出力し、
前記メモリ制御部は、前記始点座標、縦及び横サイズ情報及び前記設定レジスタに設定された設定情報に基づいて、前記画像メモリをアクセスするためのコマンド、アドレス、スタートバイト信号を生成し、前記スタートバイト信号は前記アドレスで選択される画像メモリ内のメモリ単位領域のスタート位置を示すことを特徴とする半導体集積回路装置。
(付記42)
付記41において,前記設定レジスタには,更に,画像データと画像メモリのアドレス論理空間との対応を示すメモリマップ情報が設定されることを特徴とする半導体集積回路装置。
(付記43)
付記41において,前記アドレスはバンクアドレス、ロウアドレス、コラムアドレスを有し、バンクアドレスとロウアドレスにより前記画像メモリ内のページ領域を指定し、コラムアドレスにより前記ページ領域内の前記単位メモリ領域を指定し、前記スタートバイト信号により前記単位メモリ領域内に含まれる複数のデータ群内の1つのデータ群が選択されることを特徴とする半導体集積回路装置。