(57)【特許請求の範囲】
【請求項１】
複数のメモリバンクからなるメモリと、
データを上記メモリを構成する複数のメモリバンクに振り分けて格納する際に、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記アクセスパターンを構成するアクセス候補間のデータを同じバンクに格納することにより初期配置するデータ格納処理部と、
上記複数のメモリバンクからなるメモリ上に初期配置されたデータに対し、画素のデータを各バンクからそれぞれ読み出すデータ読み出し格納処理部とを備え、
上記データ読み出し格納処理部は、バンクから画素のデータを読み出し、上記アクセスパターンの候補の各位置に基づいて決まる範囲のうち、上記アクセスパターンの移動方向に基づいて決まる一の隣接する範囲の画素のデータが格納されているバンクに読み出した上記画素のデータを格納することを特徴とするデータ格納装置。
【請求項２】
上記データ読み出し格納処理部は、ワード線アドレスとビット線アドレスをインクリメントしながら、そのワード線アドレス、ビット線アドレス上の画素のデータをバンク数だけ読み出すことを特徴とする請求項１に記載のデータ格納装置。
【請求項３】
上記アクセスパターンの候補の各位置に基づいて決まる範囲とは、上記アクセスパターンを構成する候補のうち、上記アクセスパターンの移動する方向に一の候補からその次の候補までの間のことであることを特徴とする請求項１に記載のデータ格納装置。
【請求項４】
上記一の隣接する範囲の画素のデータは、上記アクセスパターンの移動方向と反対の方向に隣接する範囲の画素のデータであることを特徴とする請求項１に記載のデータ格納装置。
【請求項５】
上記データ格納処理部は、全データを上記メモリを構成する複数のメモリバンクに振り分けて格納する際に、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、格納しようとしているデータが上記アクセスパターンに対応する位置のデータであるか否かを判定し、
アクセスパターンと一致した場合は、その時点のビット線アドレスとワード線アドレスの値をそのバンクの書き込みビット線アドレスと書き込みワード線アドレスとして格納し、バンクアドレスをインクリメントしてそのバンクアドレスにその画素のデータを格納し、
また、アクセスパターンと一致しない場合は、現在のバンクアドレスにビット線アドレスをインクリメントした位置に格納することによって、上記全データを複数のメモリバンクからなるメモリ上に初期配置することを特徴とする請求項１記載のデータ格納装置。
【請求項６】
上記データ読み出し格納処理部は、バンクから読み出した画素のデータを当該バンクのデータが既に読み出された領域に上書きして格納することを特徴とする請求項１記載のデータ格納装置。
【請求項７】
メモリを構成する複数のメモリバンクにデータを振り分けて格納する際に、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記アクセスパターンを構成するアクセス候補間のデータを同じバンクに格納することにより初期配置するデータ格納処理部と、
上記複数のメモリバンクからなるメモリ上に初期配置されたデータに対し、画素のデータを各バンクからそれぞれ読み出すデータ読み出し格納処理部とを備え、
上記データ読み出し格納処理部は、バンクから画素のデータを読み出し、上記アクセスパターンの候補の各位置に基づいて決まる範囲のうち、上記アクセスパターンの移動方向に基づいて決まる一の隣接する範囲の画素のデータが格納されているバンクに読み出した上記画素のデータを格納することを特徴とするデータ格納制御装置。
【請求項８】
メモリを構成する複数のメモリバンクにデータを振り分けて格納する際に、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記アクセスパターンを構成するアクセス候補間のデータを同じバンクに格納することにより初期配置し、
上記複数のメモリバンクからなるメモリ上に初期配置されたデータに対し、バンクから画素のデータを読み出し、上記アクセスパターンの候補の各位置に基づいて決まる範囲のうち、上記アクセスパターンの移動方向に基づいて決まる一の隣接する範囲の画素のデータが格納されているバンクに読み出した上記画素のデータを格納することを特徴とするデータ格納制御方法。
【請求項９】
複数のメモリバンクからなるメモリに全データを格納して、所望の複数データの同時読み出しを行うデータ格納制御をコンピュータにより実行するためのデータ格納制御プログラムであって、
メモリを構成する複数のメモリバンクにデータを振り分けて格納する際に、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記アクセスパターンを構成するアクセス候補間のデータを同じバンクに格納することにより初期配置し、
上記複数のメモリバンクからなるメモリ上に初期配置されたデータに対し、バンクから画素のデータを読み出し、上記アクセスパターンの候補の各位置に基づいて決まる範囲のうち、上記アクセスパターンの移動方向に基づいて決まる一の隣接する範囲の画素のデータが格納されているバンクに読み出した上記画素のデータを格納することを特徴とするデータ格納制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリバンクからなるメモリに全データを格納して、所望の複数データの同時読み出しを行うデータ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラムに関する。
【背景技術】
【０００２】
半導体メモリは、図１９に示すように、ワード線ＷＬとビット線ＢＬを指定してメモリセルＭＣをアクセスする構造となっており、活性化された１ワード線とビット線の交差する位置にあるメモリセルＭＣに格納されたデータが読み出される。
【０００３】
このような構造の半導体メモリでは、同じビット線を複数のワード線のデータが共有しているので、図２０のように、複数のワード線ＷＬ１，ＷＬ２を指定するとビット線に出てきたデータが壊れてしまうため、異なるワード線のデータには同時アクセスできない。
【０００４】
一方、独立したメモリバンクからは同時にデータを読み出すことが可能であり、図２１に示すように、メモリをｎ個のメモリバンクＢＫ０〜ＢＫｎ−１に分け、それぞれのメモリバンクに異なるアドレスを指定することで複数のワード線のデータに同時アクセスすることができるが、メモリバンク内の異なるワード線のデータには同時アクセスできない。すなわち、同時に読み出すことが出来るのは各メモリバンクから同一ワード線上に格納されたデータであり、同一メモリバンクにおける異なるワード線上に格納されたデータは同時読み出し不可能である。
【０００５】
ここで、メモリバンクとは、複数のワード線と複数のビット線からなるメモリにおいて選択されるワード・アドレスが単一であるメモリ単位をいう。
【０００６】
また、従来より、入力データに含まれる特定のデータ配列を認識することにより、例えば画像データのパターン認識等の処理が行われている。
【０００７】
また、従来より、入力データに含まれる特定のデータ配列を認識することにより、例えば画像データのパターン認識や動き検出等の処理が行われている。
【０００８】
例えば、数ライン画像データを蓄積でき画素単位で出力できるバッファメモリと、数ビット幅データを処理可のプロセッサエレメントの複数を含み複数プロセッサエレメントで同時並行してデータ処理ができるデータ処理器と、マッチング参照データと制御データを格納する制御情報メモリとを備え、データ処理器の各プロセッサエレメントが、バッファメモリが出力した画像データの中の、自己に宛てられた注目画素中心のマトリクスの画像データ群を、閾値を用いて２値化して該プロセッサエレメントが処理可能なシリアル配列のビット幅に区切った対象データに変換し、同形式で制御情報メモリにあった参照データと合致か判定することが行われている（例えば、特許文献１参照）。
【０００９】
また、動画像の処理の分野において、動き、すなわち、時間的に異なる画像中の物体の動き方向と大きさ（または速さ）が用いられており、例えば画像の高能率符号化における動き補償フレーム間符号化や、フレーム間時間領域フィルタによるテレビジョン雑音低減装置における動きによるパラメータ制御等に動きが用いられる。動きを求める動き検出方法としては、ブロックマッチング法が知られている。
【００１０】
本件出願人は、画像信号中の動きを検出する動き検出方法において、（ａ）１画面全体または１画面を複数に分割した比較的大きなブロック毎に、マッチング法によって積算値テーブルを生成し、上記積算値テーブルを用いて、上記１画面全体または１画面を複数に分割した比較的大きなブロック毎に、１または複数の候補ベクトルを抽出するステップと、（ｂ）上記候補ベクトルのみを対象としてマッチングを行い、１画素または比較的小さいブロック毎に動きベクトルを検出するステップとからなる２ステップの動き検出方法を先に提案している。この２ステップの動き検出方法では、画像の動き検出を２ステップ方式の代表点マッチングにより行う代表点マッチング、ベクトル割り当ての２ステップの過程において、いずれも画像内における任意の複数の画素データを同時に読み出す必要がある。（例えば、特許文献２参照）
【特許文献１】特開２００３−２０３２３６号公報
【特許文献２】特開２００１−６１１５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、例えば、図２２の（Ａ）に示すように、ある画像に対して、同時アクセスしたい画素が４画素のパターンの場合、図２２の（Ｂ）に示すように所望の複数画素を別バンクに格納するための必要最低限のバンク数は４となる。ここで、縦(ｈ画素）×横（ｗ画素）のサーチエリアＳＲがあり、その中で任意のアクセスしたいｎ個の候補がある場合、その種類は、（ｈ×ｗ）Ｃ（ｎ）個ある。このひとつひとつをアクセスパターンと言っている。アクセスパターンとしては、サーチエリア内の任意のアクセス候補の数の組み合わせが可能である。図２２の例であれは１６×８Ｃ４通りの組み合わせの内の一つの例を示したものである。
【００１２】
ただし、スキャン順にアクセスしたいパターンが移動していくのに対応するためには、初期配置においてアクセス画素以外の格納方法にも工夫が必要となる。
【００１３】
例えば、図２３に示すように、アクセス候補間の画素を1 画素毎に別バンクに格納したり、図２４に示すように、アクセス候補間の画素を同じバンクに格納する必要がある。
【００１４】
アクセス候補間の画素を同じバンクに格納すると、図２４の（Ａ），（Ｂ），（Ｃ）に示すように、スキャン順にパターンが移動しても、ある一定の区間は同時にアクセスが可能となる。
【００１５】
しかし、図２６に示すように、アクセスパターンの移動がアクセス画素間を超えると、同時に同じバンクの画素にアクセスすることになってしまう。
【００１６】
このデータを同時アクセスするためには、他のバンクに格納するか、同じワード線に格納するかのどちらかである。パターンによっては、格納する場所を上手く選べば同時アクセスできる場合があるが、どのようなパターンでも同時アクセスできるようにするためには、１ バンクが１ ワード線だけで構成されるぐらい細かくバンク分割する必要がある。しかし、細かく分割するほどバンク数は多くなり、バンク数が多くなると、次のような問題点が発生する。
【００１７】
すなわち、 それぞれのバンクに異なるアドレスを指定するのでアドレスバスが膨大になる。
【００１８】
また、 デコーダやセレクタがバンクの数だけ必要なのでチップ面積が大きくなる。
【００１９】
また、 同時に複数のバンクが動作するため消費電力が多くなる。
【００２０】
さらに、1 ワード線のデータ数を増やすと、ワード線が長くなり、1 ワード線のデータにアクセスするときに時間がかかる。
【００２１】
このように、半導体メモリでは、１バンクにつき１ワード線のみ構成するとデータの同時読み出しは可能であるが、格納すべきデータ量が膨大になるとハードウエアに負担がかかり、現実的でない。
【００２２】
そこで、従来の技術ではデータを読み出し、一時的に記憶するバッファやキャッシュを設け、所望の複数データを複数回に時間的に分割し、バッファやキャッシュに一時記憶し、読み出していた。
【００２３】
しかしながら、所望の複数データの数が増え、かつ、データの入出力が高速になると、データの読み出し処理が時間的に遅れてしまう。また、これを解決するために、一時記憶するバッファやキャッシュを増やすことがなされているが、その領域が大きくなるとハードウエアに負担が生じる。
【００２４】
そこで、本発明の目的は、上述の如き従来の問題点に鑑み、ハードウエアに負担を生じることなく、複数のメモリバンクからなるメモリに全データを格納して、所望の複数データの同時読み出しを行うことのできるデータ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラムを提供することにある。
【００２５】
本発明の更に他の目的、本発明によって得られる具体的な利点は、以下に説明される実施の形態の説明から一層明らかにされる。
【課題を解決するための手段】
【００２６】
本発明に係るデータ格納装置は、複数のメモリバンクからなるメモリと、データを上記メモリを構成する複数のメモリバンクに振り分けて格納する際に、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記アクセスパターンを構成するアクセス候補間のデータを同じバンクに格納することにより初期配置するデータ格納処理部と、上記複数のメモリバンクからなるメモリ上に初期配置されたデータに対し、画素のデータを各バンクからそれぞれ読み出すデータ読み出し格納処理部とを備え、上記データ読み出し格納処理部は、バンクから画素のデータを読み出し、上記アクセスパターンの候補の各位置に基づいて決まる範囲のうち、上記アクセスパターンの移動方向に基づいて決まる一の隣接する範囲の画素のデータが格納されているバンクに読み出した上記画素のデータを格納することを特徴とする。
【００２７】
また、本発明に係るデータ格納制御装置は、メモリを構成する複数のメモリバンクにデータを振り分けて格納する際に、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記アクセスパターンを構成するアクセス候補間のデータを同じバンクに格納することにより初期配置するデータ格納処理部と、上記複数のメモリバンクからなるメモリ上に初期配置されたデータに対し、画素のデータを各バンクからそれぞれ読み出すデータ読み出し格納処理部とを備え、上記データ読み出し格納処理部は、バンクから画素のデータを読み出し、上記アクセスパターンの候補の各位置に基づいて決まる範囲のうち、上記アクセスパターンの移動方向に基づいて決まる一の隣接する範囲の画素のデータが格納されているバンクに読み出した上記画素のデータを格納することを特徴とする。
【００２８】
また、本発明に係るデータ格納制御方法は、メモリを構成する複数のメモリバンクにデータを振り分けて格納する際に、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記アクセスパターンを構成するアクセス候補間のデータを同じバンクに格納することにより初期配置し、上記複数のメモリバンクからなるメモリ上に初期配置されたデータに対し、バンクから画素のデータを読み出し、上記アクセスパターンの候補の各位置に基づいて決まる範囲のうち、上記アクセスパターンの移動方向に基づいて決まる一の隣接する範囲の画素のデータが格納されているバンクに読み出した上記画素のデータを格納することを特徴とする。
【００２９】
さらに、本発明に係るデータ格納制御プログラムは、  複数のメモリバンクからなるメモリに全データを格納して、所望の複数データの同時読み出しを行うデータ格納制御をコンピュータにより実行するためのデータ格納制御プログラムであって、メモリを構成する複数のメモリバンクにデータを振り分けて格納する際に、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記アクセスパターンを構成するアクセス候補間のデータを同じバンクに格納することにより初期配置し、上記複数のメモリバンクからなるメモリ上に初期配置されたデータに対し、バンクから画素のデータを読み出し、上記アクセスパターンの候補の各位置に基づいて決まる範囲のうち、上記アクセスパターンの移動方向に基づいて決まる一の隣接する範囲の画素のデータが格納されているバンクに読み出した上記画素のデータを格納することを特徴とする。
【発明の効果】
【００３０】
本発明によれば、必要最低限のバンク数で実現して、アドレスバス、セレクタ、デコーダ、消費電力の大きさなどを最小に抑え、全データにおいて所望の複数画素を同時アクセスすることができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、本発明は以下の例に限定されるものではなく、本発明の要旨を逸脱しない範囲で、任意に変更可能であることは言うまでもない。
【００３２】
本発明は、例えば図１に示すような構成のデータ格納装置１００により実施される。
【００３３】
このデータ格納装置１００は、複数のメモリバンクからなるメモリ１０と、上記メモリ１０への画像データ等のデータDAの書き込みを行うデータ格納制御部２０と、上記メモリ１０からのデータの読み出しを行うとともに画素の再書き込みの制御を行うデータ読み出し格納制御部３０からなる。格納する入力データが上記メモリ１０及びデータ格納制御部２０に供給され、複数データの同時読み出しを示すアクセスパターンAPが上記データ格納制御部２０供給され、動作制御用の制御信号CSが上記メモリ１０、データ格納制御部２０及びデータ読み出し格納制御部３０に供給されるようになっている。
【００３４】
上記データ格納制御部２０は、図２に示すように供給されたデータDAを計数するカウンタ２１と、このカウンタ２１の計数出力とアクセスパターンAPとの一致判定を行う一致判定部２２と、この一致判定部２２の判定出力に応じてフラグを生成するフラグ生成部２３と、上記カウンタ２１の出力をうけてインクリメントされるバンクアドレスカウンタ２４と、このバンクアドレスカウンタ２４の出力をうけてインクリメントされるビット線アドレスカウンタ２５と、このビット線アドレスカウンタ２５の出力をうけてインクリメントされるワード線アドレスカウンタ２６と、これらのカウンタ２４，２５，２６の出力に基づいて書き込みアドレスWAを生成するアドレス生成部２７、そして書き込みアドレスＷＡをうけてメモリ１０への書き込みを制御する格納制御処理部２８からなる。上記フラグ生成部２３の出力が上記バンクアドレスカウンタ２４、ビット線アドレスカウンタ２５及びワード線アドレスカウンタ２６に与えられるようになっている。そして、格納制御処理部２８によって書き込みアドレスWAが示すメモリ１０のアドレスに、図示しない遅延器によって所定の時間遅延されたデータＤＡが格納される。
【００３５】
また、データ読み出し格納制御部３０は、例えば４つのメモリバンク（BK０〜BK２）からなる場合には、図３に示すように、データ読み出し用のビット線アドレスカウンタ３１−０〜３１−３、ワード線アドレスカウンタ３２−０〜３２−３、データ格納用のビット線アドレスカウンタ３３−０〜３３−３、ワード線アドレスカウンタ３４−０〜３４−３、読み出しアドレスを生成する読み出しアドレス生成部３５−０〜３５−３、書き込みアドレスを生成する書き込みアドレス生成部３６−０〜３６−３、読み出し制御処理を行う読み出し制御処理部３７−０〜３７−３と書き込み制御処理を行う書き込み制御処理部３８−０〜３８−３とが用意されている。
例えばメモリから読み出された各メモリバンクの最終読み出しアドレスが、各ビット線アドレスカウンタ３１−０〜３１−３に入力され、各ワード線アドレスカウンタ３２−０〜３２−３は読み出しに応じて適宜インクリメントされる。読み出しアドレス生成部３５−０〜３５−３は、各バンクアドレス、ビット線アドレスカウンタ３１−０〜３１−３、ワード線アドレスカウンタ３２−０〜３２−３に基づき、それぞれ読み出しアドレスＲＡを生成し、読み出し制御処理部３７−０〜３７−３はその読み出しアドレスに対応するデータをメモリ１０から読み出す。
【００３６】
書き込み側も同様に、例えばメモリから読み出された各メモリバンクの最終書き込みアドレスが、各ビット線アドレスカウンタ３３−０〜３３−３に入力され、各ワード線アドレスカウンタ３４−０〜３４−３は書き込みに応じて適宜インクリメントされる。書き込みアドレス生成部３６−０〜３６−３は、各バンクアドレス、ビット線アドレスカウンタ３３−０〜３３−３、ワード線アドレスカウンタ３４−０〜３４−３に基づき、それぞれ書き込みアドレスWＡを生成し、書き込み制御処理部３８−０〜３８−３は他のメモリバンク（例えば１つ後ろのメモリバンク）から読み出されたデータをその書き込みアドレスが示すメモリ１０の所定の位置に書き込む。
尚、ここでは、メモリから最終読み出しアドレスおよび最終書き込みアドレスを読み出したが、これに限定されるものではなく、データ読み出し格納制御部３０内に記憶しておき、そこから読み出すようにしても良い。
【００３７】
また、ここでは読み出し用のビット線およびワード線アドレスカウンタを各メモリバンク毎に設けたが、各メモリバンクを読み出す際に、そのビット線およびワード線アドレスカウンタが示すカウント値は同じであるため、これらは適宜共有させてもよい。
【００３８】
また、ここでは、１つ後ろのメモリバンクから読み出された値を、当該メモリバンクに書き込むようにしたが、もしＢＫ０で読み出されたデータが再度必要になる場合には、ＢＫ０で読み出されたデータをＢＫ３に書き込むように設定にしても構わない。
【００３９】
このような構成のデータ格納装置１００における画像データの各バンクへの初期配置について説明する。
【００４０】
図４のように、ある一枚の画像に対して、複数同時アクセスしたい画素に対応するパターン（アクセスパターンAP）があり、それを左上からラスタスキャンする場合を例とする。ここでは、４バンク（バンクアドレスBK０〜３）のメモリ１０を用いて、４画素を同時アクセスする例について説明する。複数同時アクセスしたい画素に対応するアクセスパターンは、この図４に示す例に限定されるものではない。すなわち、上述の如く縦(ｈ画素)×横（ｗ画素）のサーチエリアＳＲがあり、その中で任意のアクセスしたいｎ個の候補がある場合、その種類は、（ｈ×ｗ）Ｃ（ｎ）個ある。このひとつひとつをアクセスパターンと言う。アクセスパターンとしては、サーチエリア内の任意のアクセス候補の数の組み合わせが可能である。図４の例であれは１６×８Ｃ４通りの組み合わせの内の一つの例を示したものである。
【００４１】
ここで、同時アクセスしたい画素数をアクセス候補数といい、アクセスパターンを構成する候補の数に等しい。この例では、４つの候補からアクセスパターンが形成されているため、アクセス候補数は４となっている。
【００４２】
そして、このデータ格納装置１００では、画像データが入力された際に、上記データ格納制御部２０により初期配置処理を行い、アクセスパターンと一致した場合は、その時点のビット線アドレスカウンタ２５の値とワード線アドレスカウンタ２６の値をそのバンクの書き込みビット線アドレスと書き込みワード線アドレスとして格納し、バンクアドレスカウンタ２４をインクリメントしてそのバンクアドレスに画素を格納する。また、アクセスパターンと一致しない場合は、現在のバンクアドレスにビット線アドレスカウンタ２５をインクリメントしたビットアドレス位置に格納し、ビット線アドレスが終了すれば、ビット線アドレスカウンタ２５を０に戻し、ワード線アドレスカウンタ２６をインクリメントすることによって、例えば図５の（Ａ），（Ｂ）に示すように、アクセス候補間の画素を同じバンクBKに格納する。上記画像の左上から１画素ずつバンクBKに格納するときに、上記データ格納制御部２０は、アクセスパターンと一致する毎にバンクアドレスをインクリメントさせて、バンク１（BK１）の次はバンク２（BK２）、その次はバンク３（BK３）とバンクを変えて、アクセス候補間の画素を同じバンクに格納する。ここでは、データの初期配置における２次元配列状態を図５の（Ａ）に示し、また、各メモリバンク０〜３（BK）における１次元配列状態を図５の（Ｂ）に示している。なお、図５の（Ａ）における数字は、格納先バンクのビット線アドレスを表している。
【００４３】
すなわち、アクセス開始位置にアクセスパターンがセットされた状況において、アクセスパターン対する画像データの一致／不一致を見ている。
【００４４】
このデータ格納装置１００において、上記データ格納制御部２０は、例えばマイクロプロセッサにて構成され、図示しないプロラムメモリに格納されたデータ格納制御プログラムに従って、図６のフローチャートに示す手順で初期配置処理を行う。
【００４５】
すなわち、上記データ格納制御部２０は、初期配置処理を開始すると、先ず、バンクアドレスカウンタ２４、ビット線アドレスカウンタ２５及びワード線アドレスカウンタ２６の値を全て「０」に初期設定する（ステップＳ１）。
【００４６】
そして、格納すべき１画素分の画像データが入力されると（ステップＳ２）、一致判定部２２によりアクセス箇所であるか否かを判定し（ステップＳ３）、その判定結果がＮＯである場合には、現在のバンクアドレスカウンタ２４、ビット線アドレスカウンタ２５及びワード線アドレスカウンタ２６の値で示される書き込みアドレスで上記メモリ１０にその画素の画像データを格納して（ステップＳ６）、全データが入力されたか否かを判定する（ステップＳ７）。
【００４７】
上記ステップＳ７における判定結果がＮＯである場合には、ビット線アドレスカウンタ２５をインクリメントして（ステップＳ８）、ビット線アドレスカウンタ２５の値がビット線長さより大きくなったか否かを判定する（ステップＳ９）。
【００４８】
上記ステップＳ９における判定結果がＮＯである場合には、上記ステップＳ２に戻って次の１画素分の画像データについて格納処理を行う。また、このステップＳ９における判定結果がＹＥＳである場合には、上記ビット線アドレスカウンタ２５の値を「０」にリセットするとともにワード線アドレスカウンタ２６をインクリメントして（ステップＳ１０）から、上記ステップＳ２に戻って次の１画素分の画像データについて格納処理を行う。
【００４９】
そして、上記ステップＳ３における判定結果がＹＥＳである場合、すなわちアクセス位置の場合には、ワード線アドレスカウンタ２６とビット線アドレスカウンタ２５の値を、そのバンクアドレスのワード線アドレスとビット線アドレスとして格納して（ステップＳ４）から、バンクアドレスカウンタ２４をインクリメントするとともに、ワード線アドレスカウンタ２６とビット線アドレスカウンタ２５の値を「０」にリセットして（ステップＳ５）、上記ステップＳ６に進んで上記バンクアドレスカウンタ２４、ワード線アドレスカウンタ２５及びビット線アドレスカウンタ２６の値を「０」の値で示される書き込みアドレスで上記メモリ１０にその画素の画像データを格納する。
【００５０】
上記ステップＳ１からステップＳ１０の処理を繰り返すことにより、全データの格納処理を行い、上記ステップＳ７における判定結果がＹＥＳになると初期配置処理を終了する。
【００５１】
次に、所望アクセスパターンの画素のアクセスの仕方とデータの再格納について説明する。
【００５２】
このデータ格納装置１００では、以上のようにしてメモリ１０上に初期配置した各画素の画像データは、アクセス候補間の画素を同じバンクに格納してあるので、スキャン順にアクセスパターンが移動しても、ある一定の区間は同時にアクセスできるのであるが図７の（Ａ）に示すように、アクセスパターンの移動がアクセス画素間を超えると、同時に同じバンクの画素にアクセスすることになってしまうので、図７の（Ｂ）に示すように、アクセスした画素の画像データの再格納位置を工夫することによって、アクセスパターンの移動に対応できるようにしている。
【００５３】
このデータ格納装置１００では、以上のようにしてメモリ１０上に初期配置した各画素の画像データをアクセスする際に、図８に示すように、あるバンクアドレスから画素の画像データを読み出し、図９に示すように、そのバンクアドレス−１のバンクアドレスの書き込みワード線アドレス、書き込みビット線アドレスに＋１した位置に格納するにより、図１０〜図１３に示すように、アクセスパターンがスキャン順に移動しても同時にアクセスできるようにしている。
【００５４】
すなわち、メモリ１０上に初期配置した各画素の画像データから、図１０の（Ａ），（Ｂ）に示すように、あるバンクアドレスから画素の画像データを読み出し、図１１の（Ａ），（Ｂ）に示すように、そのバンクアドレス−１のバンクアドレスの書き込みワード線アドレス、書き込みビット線アドレスに＋１した位置に格納する。サーチエリアが移動するにつれて、各バンクから読み出すことには変わりないが、アクセス候補最終画素が存在する次のバンクは次々と入れ替わっていくようになることにより、パターンがスキャン順に移動しても同時アクセスを実現することができる。サーチエリアを横方向に＋１移動させた場合のアクセスの仕方とデータの再格納の様子を図１２の（Ａ），（Ｂ）及び図１３の（Ａ），（Ｂ）に示してある。
【００５５】
なお、図１０〜図１３において、（Ａ）はデータの２次元配列状態を示し、また、（Ｂ）は各メモリバンク０〜３における１次元配列状態を示している。また、図１０〜図１３の（Ａ）における数字は、格納先バンクのビット線アドレスを表している。
【００５６】
このデータ格納装置１００におけるデータ読み出し格納制御部３０は、ビット線アドレスカウンタ３１−０〜３１−３、ワード線アドレスカウンタ３２−０〜３２−３をインクリメントしながら、そのワード線アドレス、ビット線アドレス上の画素をバンク数だけ読み出せば、所望の画素が読み出すことができる。用意されているワード線アドレス、ビット線アドレスが終了すれば、それぞれ０に戻す。
【００５７】
このように、バンク番号が一番最初の場合は最後のバンクに書き込む。あるいは後段の処理に必要であれば後段の処理の際に使用するメモリに書き込む。いずれにせよ、この画素はこの処理においては今後必要とされない。
【００５８】
このデータ格納装置１００において、上記データ読み出し格納制御部３０は、例えばマイクロプロセッサにて構成され、図示しないプロラムメモリに格納されたデータ格納制御プログラムに従って、図１４のフローチャートに示す手順でアクセス処理を行う。
【００５９】
すなわち、上記データ読み出し格納制御部３０は、初期設定として、アクセス処理を開始すると、先ず、読み出し用のビット線アドレスカウンタ３１−０〜３１−３（以下、読み出しビット線アドレスカウンタ３１と称する）及びワード線アドレスカウンタ３２−０〜３２−３（以下、読み出しワード線アドレスカウンタ３２と称する）の値を全て「０」に初期設定する（ステップＳ２１）。
【００６０】
そして、各メモリバンクの現在のビット線アドレスカウンタ３１及びワード線アドレスカウンタ３２の値で示される読み出しアドレスでメモリ１０からアクセスパターンAPを構成する画素分の画像データを読み出す（ステップＳ２２）。各メモリバンクのバンクアドレスの書き込みワード線アドレスと書き込みビット線アドレスを、例えばメモリ１０から、読み出す（ステップＳ２３）。各メモリバンクから読み出した画素を、それぞれ読み出されたメモリバンクの１つ前のバンクアドレスの書き込みワード線アドレスと書き込みビット線アドレスに格納するとともに、書き込みワード線アドレスと書き込みビット線アドレスを格納する（ステップＳ２４）。
【００６１】
次に、読み出された画素数に基づき１画面全てスキャンしたか否かを判定する（ステップＳ２５）。
【００６２】
このステップＳ２５における判定結果がＮＯである場合には、Ｓ２６へ進み、各メモリバンクから次に読み出す際に必要となるバンクアドレスの読み出しワード線アドレスとビット線アドレス及び各メモリバンクに書き込む際に必要となるバンクアドレスの書き込みワード線アドレスとビット線アドレスを計算し、例えばメモリ１０に格納する。そして、Ｓ２２からの処理を繰り返し、判定結果がＹＥＳである場合には、読み出し書き込み処理を終了する。
【００６３】
ここで、上記ステップＳ２６におけるワード線アドレスとビット線アドレスの計算を、図１５のフローチャートを用いて説明する。
【００６４】
Ｓ３１で、Ｓ２４で各メモリバンクの最後に書き込まれた書き込みビット線アドレスが、ビット線アドレスカウンタ３３によりインクリメントされる。
Ｓ３２で、ビット線アドレスカウンタ３３の値がビット線長さより大きくなったか否かが判定される。
【００６５】
このステップＳ３２における判定結果がＹＥＳである場合には、上記ビット線アドレスカウンタ３３の値を「０」にリセットされ、Ｓ２４で各メモリバンクの最後に書き込まれた書き込みワード線アドレスがワード線アドレスカウンタ３４によりインクリメントされる（ステップＳ３３）。Ｓ３４で、ワード線アドレスカウンタ３４の値がワード線長さより大きくなったか否かを判定される。
【００６６】
このステップＳ３４における判定結果がＹＥＳである場合には、上記ワード線アドレスカウンタ３４の値を「０」にリセットして（ステップＳ３５）、処理を終了する。
【００６７】
また、上記ステップＳ３２，Ｓ３４における判定結果がＮＯである場合には処理を終了する。
【００６８】
なお、上記ステップＳ２６における読み出し用のワード線アドレスとビット線アドレスの計算も、同様に行われる。その際、書き込み用のアドレス計算で用いられた書き込みビット線アドレスカウンタ３３（３３−０〜３３−３）、書き込みワード線アドレスカウンタ３４（３４−０〜３４−３）は、それぞれ読み出しビット線アドレスカウンタ３１、読み出しワード線アドレスカウンタ３２と読みかえるものとする。
【００６９】
また、書き込み用のアドレス計算では、Ｓ３１でＳ２４で各メモリバンクに最後に書き込まれた書き込みビット線アドレス、Ｓ３３ではＳ２３で読み出した各メモリバンクに最後に書き込まれた書き込みワード線アドレスが用いられたが、読み出し用のアドレス計算では、Ｓ３１でＳ２２で各メモリバンクから最後に読み出した読み出しビット線アドレス、Ｓ３３でＳ２２で各メモリバンクから最後に読み出した読み出しワード線アドレス用いられるものと読み替える。
【００７０】
なお、上述の実施の形態では、アクセスパターンの候補間の領域をラスタ方向にスキャンした場合に、メモリバンクＢＫ３のデータはメモリバンクＢＫ２に書込み、メモリバンクＢＫ２のデータはメモリバンクＢＫ１に書込み、メモリバンクＢＫ１のデータはメモリバンクＢＫ０に書き込むようになっているが、このメモリバンクアドレスはこれに限られるものでなく、メモリバンクＢＫ３のデータをメモリバンクＢＫ０に、メモリバンクＢＫ０のデータをメモリバンクＢＫ２に、メモリバンクＢＫ２のデータをメモリバンクＢＫ１に書き込むようなあるパターンに従って読み込み・書込みを行う構造としてもよい。またスキャンする方向もラスタ方向に限られるものではなく、ラスタ方向と逆、縦方向、斜め方向等であっても構わない。
【００７１】
また、上述の実施の形態では、データ読出し格納処理部が、ワード線アドレスとビット線アドレスをインクリメントしながら、そのワード線アドレス、ビット線アドレス上の画素のデータをバンク数だけ読み出したが、本願発明はこれに限られるものではなく、あるパターンにしたがって読み出すのであれば良い。したがって上記ワード線アドレス、上記ビット線アドレスをデクリメント、また予め決めた所定のパターンに基づきワード線アドレス、ビット線アドレスの画素を読み出しても良い。
【００７２】
ここで、上述の実施の形態では、読み出した画素データは、一つ前のバンクの既に書き込まれている領域の後ろに格納されていたが、その代わりに一つ前のバンクの既に読み出されている領域に上書きしていっても良い。つまり一つ前のバンクの先頭から上書きしていってもよい。その際は、書き込まれている領域の後ろに格納していたときと同様に、上書きしたアドレスに続くアドレスに順に上書きしていく必要がある。そして前述の通り、書き込むのは一つ前のバンクには限られない。
【００７３】
すなわち、上述の如くメモリ１０上に初期配置した各画素の画像データから、図１０の（Ａ），（Ｂ）に示すように、あるバンクアドレスから画素の画像データを読み出し、図１６の（Ａ），（Ｂ）に示すように、そのバンクアドレス−１のバンクアドレスの書き込みワード線アドレス、書き込みビット線アドレスに格納する。サーチエリアが移動するにつれて、各バンクから読み出すことには変わりないが、アクセスされた画素が書き込まれるバンクは次々と入れ替わっていくようになることにより、パターンがスキャン順に移動しても同時アクセスを実現することができる。サーチエリアを横方向に＋１移動させた場合のアクセスの仕方とデータの再格納の様子を図１７の（Ａ），（Ｂ）及び図１８の（Ａ），（Ｂ）に示す。
【００７４】
なお、図１６〜図１８において、（Ａ）はデータの２次元配列状態を示し、また、（Ｂ）は各メモリバンク１〜３における１次元配列状態を示している。また、図１６〜図１８の（Ａ）における数字は、格納先バンクのビット線アドレスを表している。
【００７５】
本発明によれば、必要最低限のバンク数で実現して、アドレスバス、セレクタ、デコーダ、消費電力の大きさなどを最小に抑え、全データにおいて所望の複数画素を同時アクセスすることができる。
【図面の簡単な説明】
【００７６】
【図１】本発明を実施するデータ格納装置の構成を示すブロック図である。
【図２】上記データ格納装置のデータ格納制御部の構成を示すブロック図である。
【図３】上記データ格納装置のデータ読み出し格納制御部の構成を示すブロック図である。
【図４】ある一枚の画像に対して、複数同時アクセスしたい画素に対応するアクセスパターンの一例を模式的に示す図である。
【図５】上記データ格納装置におけるデータの初期配置状態を模式的に示す図である。
【図６】上記データ格納制御部により実行される初期配置処理の手順を示すフローチャートである。
【図７Ａ】上記データ格納装置において、アクセスパターンの移動に対応するように再格納することにより、複数画素の画像データを同時に読み出し可能にした状態を模式的に示す図である。
【図７Ｂ】上記データ格納装置において、アクセスパターンの移動に対応するように再格納することにより、複数画素の画像データを同時に読み出し可能にした状態を模式的に示す図である。
【図８】上記データ格納装置におけるワード線及びビット線への格納とアクセスの仕方を模式的に示す図である。
【図９】上記データ格納装置においてアクセスしたデータのワード線及びビット線への再格納の仕方を模式的に示す図である。
【図１０】上記データ格納装置において複数画素の画像データを同時に読み出す動作を模式的に示す図である。
【図１１】読み出した複数画素の画像データを一つ前のバンクの既に書き込まれている領域の後ろに再格納する動作を模式的に示す図である。
【図１２】上記データ格納装置においてサーチエリアが初期位置から横方向に＋１移動した場合の複数画素の画像データを同時に読み出す動作を模式的に示す図である。
【図１３】サーチエリアが初期位置から横方向に＋１移動した場合の読み出した複数画素の画像データを再格納する動作を模式的に示す図である。
【図１４】上記データ読み出し格納制御部により実行されるアクセス処理の手順を示すフローチャートである。
【図１５】上記アクセス処理におけるワード線アドレスとビット線アドレスの計算処理の手順を示すフローチャートである。
【図１６】上記データ格納装置において読み出した複数画素の画像データを一つ前のバンクの既に読み出されている領域に上書きすることにより再格納する動作を模式的に示す図である。
【図１７】上記データ格納装置においてサーチエリアが初期位置から横方向に＋１移動した場合の複数画素の画像データを同時に読み出す動作を模式的に示す図である。
【図１８】サーチエリアが初期位置から横方向に＋１移動した場合の読み出した複数画素の画像データを再格納する動作を模式的に示す図である。
【図１９】一般的な半導体メモリの構造を模式的に示す図である。
【図２０】上記半導体メモリにおいて、同時アクセスできない状態を模式的に示す図である。
【図２１】複数メモリバンクのメモリ構成を示す図である。
【図２２Ａ】ある画像に対して、同時アクセスしたい４画素のパターン、及び、その４画素を別バンクに格納した状態を模式的に示す図である。
【図２２Ｂ】ある画像に対して、同時アクセスしたい４画素のパターン、及び、その４画素を別バンクに格納した状態を模式的に示す図である。
【図２３】アクセス候補間の画素を1 画素毎に別バンクに格納した状態を模式的に示す図である。
【図２４】アクセス候補間の画素を同じバンクに格納した状態を模式的に示す図である。
【図２５Ａ】アクセス候補間の画素を同じバンクに格納することにより、スキャン順にパターンが移動しても、ある一定の区間は同時にアクセスが可能となることを模式的に示した図である。
【図２５Ｂ】アクセス候補間の画素を同じバンクに格納することにより、スキャン順にパターンが移動しても、ある一定の区間は同時にアクセスが可能となることを模式的に示した図である。
【図２５Ｃ】アクセス候補間の画素を同じバンクに格納することにより、スキャン順にパターンが移動しても、ある一定の区間は同時にアクセスが可能となることを模式的に示した図である。
【図２６】アクセスパターンの移動がアクセス画素間を超えると、同時に同じバンクの画素にアクセスすることになってしまうことを模式的に示した図である。
【符号の説明】
【００７７】
１０  メモリ、２０  データ格納制御部、２１，３１  カウンタ、２２  一致判定部、２３  フラグ生成部、２４，３２  バンクアドレスカウンタ、２５，３３ビット線アドレスカウンタ、２６，３４ワード線アドレスカウンタ、２７，３５  アドレス生成部、３０  データ読み出し格納制御部、４０  アドレス生成部、１００  データ格納装置
【図１】
0004735008.tif 000002
【図２】
0004735008.tif 000003
【図３】
0004735008.tif 000004
【図４】
0004735008.tif 000005
【図５】
0004735008.tif 000006
【図６】
0004735008.tif 000007
【図７Ａ】
0004735008.tif 000008
【図７Ｂ】
0004735008.tif 000009
【図８】
0004735008.tif 000010
【図９】
0004735008.tif 000011
【図１０】
0004735008.tif 000012
【図１１】
0004735008.tif 000013
【図１２】
0004735008.tif 000014
【図１３】
0004735008.tif 000015
【図１４】
0004735008.tif 000016
【図１５】
0004735008.tif 000017
【図１６】
0004735008.tif 000018
【図１７】
0004735008.tif 000019
【図１８】
0004735008.tif 000020
【図１９】
0004735008.tif 000021
【図２０】
0004735008.tif 000022
【図２１】
0004735008.tif 000023
【図２２Ａ】
0004735008.tif 000024
【図２２Ｂ】
0004735008.tif 000025
【図２３】
0004735008.tif 000026
【図２４】
0004735008.tif 000027
【図２５Ａ】
0004735008.tif 000028
【図２５Ｂ】
0004735008.tif 000029
【図２５Ｃ】
0004735008.tif 000030
【図２６】
0004735008.tif 000031