(57)【要約】【課題】  ハードウエアに負担を生じることなく、複数のメモリバンクからなるメモリに全データを格納して、所望の複数データの同時読み出しを行う。【解決手段】  データ格納制御部２０により、上記全データを上記メモリを構成するメモリバンクの各ワード線に対し１つのワード線上に格納可能なデータ数よりも少ないデータ数の範囲内を使い上記メモリの各メモリバンクに順次振り分けて格納して、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記メモリに対して同時アクセスできない同一メモリバンク内の異なるワード線上の同時に読み出すべきデータを特定し、特定された同時に読み出すべきデータを上記メモリバンクから読み出してデータ移動制御部４０により同一メモリバンク内の同時アクセス可能な場所に二重保存し、上記メモリ１０から所望の複数データを同時に読み出す制御を行う。【選択図】        図１４
2005196361.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリバンクからなるメモリと、
全データを上記メモリに格納する際に、上記全データを上記メモリを構成するメモリバンクの各ワード線に対し１つのワード線上に格納可能なデータ数よりも少ないデータ数の範囲内を使い上記メモリの各メモリバンクに順次振り分けて格納するデータ格納制御手段と、
同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記メモリに対して同時アクセスできない同一メモリバンク内の異なるワード線上の同時に読み出すべきデータを特定し、特定された同時に読み出すべきデータを上記メモリバンクから読み出して同一メモリバンク内の同時アクセス可能な場所に二重保存し、上記メモリから所望の複数データを同時に読み出す制御を行うデータ読み出し制御手段と
を備えることを特徴とするデータ格納装置。
【請求項２】
上記データ読み出し制御手段は、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記メモリに対して同時アクセスできない同一メモリバンク内の異なるワード線上の同時に読み出すべきデータを特定して二重保存データとする二重保存データ判定手段と、上記二重保存データ判定手段により特定された同時に読み出すべきデータを上記メモリバンクから読み出して同一メモリバンク内の同時アクセス可能な場所に二重保存する制御を行うデータ移動制御手段を備えることを特徴とする請求項１記載のデータ格納装置。
【請求項３】
上記データ移動制御手段は、上記メモリを構成するメモリバンクの特定の固定領域に上記データを二重保存する制御を行うことを特徴とする請求項１記載のデータ格納装置。
【請求項４】
上記データ移動制御手段は、二重保存したデータの元のデータがあった場所を次の二重保存のための領域とし、二重保存したデータをアクセスした後に、元のワード線上に戻す制御を行うことを特徴とする請求項１記載のデータ格納装置。
【請求項５】
全データを複数のメモリバンクからなるメモリに格納して、上記メモリから所望の複数データを同時に読み出すデータ格納制御装置であって、
全データを上記メモリに格納する際に、上記全データを上記メモリを構成するメモリバンクの各ワード線に対し１つのワード線上に格納可能なデータ数よりも少ないデータ数の範囲内を使い上記メモリの各メモリバンクに順次振り分けて格納するデータ格納制御手段と、
同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記メモリに対して同時アクセスできない同一メモリバンク内の異なるワード線上の同時に読み出すべきデータを特定し、特定された同時に読み出すべきデータを上記メモリバンクから読み出して同一メモリバンク内の同時アクセス可能な場所に二重保存し、上記メモリから所望の複数データを同時に読み出す制御を行うデータ読み出し制御手段と
を備えることを特徴とするデータ格納制御装置。
【請求項６】
上記データ読み出し制御手段は、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記メモリに対して同時アクセスできない同一メモリバンク内の異なるワード線上の同時に読み出すべきデータを特定して二重保存データとする二重保存データ判定手段と、上記二重保存データ判定手段により特定された同時に読み出すべきデータを上記メモリバンクから読み出して同一メモリバンク内の同時アクセス可能な場所に二重保存する制御を行うデータ移動制御手段を備えることを特徴とする請求項５記載のデータ格納制御装置。
【請求項７】
上記データ移動制御手段は、上記メモリを構成するメモリバンクの特定の固定領域に上記データを二重保存する制御を行うことを特徴とする請求項６記載のデータ格納制御装置。
【請求項８】
上記データ移動制御手段は、二重保存したデータの元のデータがあった場所を次の二重保存のための領域とし、二重保存したデータをアクセスした後に、元のワード線上に戻す制御を行うことを特徴とする請求項６記載のデータ格納制御装置。
【請求項９】
全データを複数のメモリバンクからなるメモリに格納して、上記メモリから所望の複数データを同時に読み出すデータ格納制御方法であって、
全データを複数のメモリバンクからなるメモリに格納する際に、上記全データを上記メモリを構成するメモリバンクの各ワード線に対し１つのワード線上に格納可能なデータ数よりも少ないデータ数の範囲内を使い上記メモリの各メモリバンクに順次振り分けて格納し、
同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記メモリに対して同時アクセスできない同一メモリバンク内の異なるワード線上の同時に読み出すべきデータを特定し、
特定された同時に読み出すべきデータを上記メモリバンクから読み出して同一メモリバンク内の同時アクセス可能な場所に二重保存し、
上記メモリから所望の複数データを同時に読み出すことを特徴とするデータ格納制御方法。
【請求項１０】
二重保存する領域を上記メモリを構成するメモリバンクの特定の固定領域とすることを特徴とする請求項９記載のデータ格納制御方法。
【請求項１１】
二重保存したデータの元のデータがあった場所を次の二重保存のための領域とし、二重保存したデータをアクセスした後に、元のワード線上に戻すことを特とする請求項９記載のデータ格納制御方法。
【請求項１２】
全データを複数のメモリバンクからなるメモリに格納して、上記メモリから所望の複数データを同時に読み出すデータ格納制御をコンピュータにより実行するためのデータ格納制御プログラムであって、
全データを複数のメモリバンクからなるメモリに格納する際に、上記全データを上記メモリを構成するメモリバンクの各ワード線に対し１つのワード線上に格納可能なデータ数よりも少ないデータ数の範囲内を使い上記メモリの各メモリバンクに順次振り分けて格納し、
同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記メモリに対して同時アクセスできない同一メモリバンク内の異なるワード線上の同時に読み出すべきデータを特定し、
特定された同時に読み出すべきデータを上記メモリバンクから読み出して同一メモリバンク内の同時アクセス可能な場所に二重保存し、
上記メモリから所望の複数データを同時に読み出すことを特徴とするデータ格納制御プログラム。
【請求項１３】
二重保存する領域を上記メモリを構成するメモリバンクの特定の固定領域とすることを特徴とする請求項１２記載のデータ格納制御プログラム。
【請求項１４】
二重保存したデータの元のデータがあった場所を次の二重保存のための領域とし、二重保存したデータをアクセスした後に、元のワード線上に戻すことを特徴とする請求項１２記載のデータ格納制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全データを複数のメモリバンクからなるメモリに格納して、上記メモリから所望の複数データを同時に読み出すデータ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラムに関する。
【背景技術】
【０００２】
半導体メモリは、図２４に示すように、ワード線ＷＬとビット線ＢＬを指定してメモリセルＭＣをアクセスする構造となっており、活性化された１ワード線とビット線の交差する位置にあるメモリセルＭＣに格納されたデータが読み出される。
【０００３】
このような構造の半導体メモリでは、同じビット線を複数のワード線のデータが共有しているので、図２５のように、複数のワード線ＷＬ１，ＷＬ２を指定するとビット線に出てきたデータが壊れてしまうため、異なるワード線のデータには同時アクセスできない。
【０００４】
また、独立したバンクからは同時にデータを読み出すことが可能であり、図２６に示すように、メモリを複数のバンクＢＫ１〜ＢＫｎに分け、それぞれのバンクに異なるアドレスを指定することで複数のワード線のデータに同時アクセスすることができるが、バンク内の異なるワード線のデータには同時アクセスできない。すなわち、同時に読み出すことが出来るのは各バンクから同一ワード線上に格納されたデータであり、同一バンクにおける異なるワード線上に格納されたデータは同時読みだし不可能である。
【０００５】
ここで、バンクとは、複数のワード線と複数のビット線からなるメモリにおいてワード・アドレスが独立に制御できるメモリ単位をいう。
【０００６】
また、従来より、入力データに含まれる特定のデータ配列を認識することにより、例えば画像データのパターン認識等の処理が行われている。
【０００７】
例えば、数ライン画像データを蓄積でき画素単位で出力できるバッファメモリと、数ビット幅データを処理可のプロセッサエレメントの複数を含み複数プロセッサエレメントで同時並行してデータ処理ができるデータ処理器と、マッチング参照データと制御データを格納する制御情報メモリとを備え、データ処理器の各プロセッサエレメントが、バッファメモリが出力した画像データの中の、自己に宛てられた注目画素中心のマトリクスの画像データ群を、閾値を用いて２値化して該プロセッサエレメントが処理可能なシリアル配列のビット幅に区切った対象データに変換し、同形式で制御情報メモリにあった参照データと合致か判定することが行われている（例えば、特許文献１参照）。
【０００８】
【特許文献１】特開平１０−３３２３７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
例えば、図２７のように，ある画像に対して、同時アクセスしたいパターンがあって、それが左上からラスタスキャンする場合を考える。同時アクセス数である５つにバンク分割して、データを図のように配置したとすると、始めの５回くらいは同時アクセスできるが、図２８の位置に同時アクセスパターンが来たときには、バンク０で複数ワード線にアクセスすることになるので同時アクセスができない。このデータを同時アクセスするためには、他のバンクに格納するか、同じワード線に格納するかのどちらかである。パターンによっては、格納する場所を上手く選べば同時アクセスできる場合があるが、どのようなパターンでも同時アクセスできるようにするためには、１ バンクが１ ワード線だけで構成されるぐらい細かくバンク分割する必要がある。しかし、細かく分割するほどバンク数は多くなり、バンク数が多くなると、次のような問題点が発生する。
【００１０】
例えば、図２９に示すように、参照領域の大きさが５画素×５画素であれば必要とするメモリバンクの数は２５になるが、バンクの数が多くなるとバンクのアドレス管理が難しくなり、アドレス線の増加やチップ面積が増加する、消費電力が増大するなどの問題があった。
【００１１】
すなわち、 それぞれのバンクに異なるアドレスを指定するのでアドレスバスが膨大になる。
【００１２】
また、 デコーダやセレクタがバンクの数だけ必要なのでチップ面積が大きくなる。
【００１３】
また、 同時に複数のバンクが動作するため消費電力が多くなる。
【００１４】
さらに、1 ワード線のデータ数を増やすと、ワード線が長くなり、1 ワード線のデータにアクセスするときに時間がかかる。
【００１５】
このように、半導体メモリでは、１バンクにつき１ワード線のみ構成するとデータの同時読み出しは可能であるが、格納すべきデータ量が膨大になるとハードウエアに負担がかかり、現実的でない。
【００１６】
そこで、従来の技術ではデータを読み出し、一時的に記憶するバッファやキャッシュを設け、所望の複数データを複数回に時間的に分割し、バッファやキャッシュに一時記憶し、読み出していた。
【００１７】
しかしながら、所望の複数データの数が増え、かつ、データの入出力が高速になると、データの読み出し処理が時間的に遅れてしまう。また、これを解決するために、一時記憶するバッファやキャッシュを増やすことがなされているが、その領域が大きくなるとハードウエアに負担が生じる。
【００１８】
そこで、本発明の目的は、上述の如き従来の問題点に鑑み、ハードウエアに負担を生じることなく、複数のメモリバンクからなるメモリに全データを格納して、所望の複数データの同時読み出しを行うことのできるデータ格納装置、データ格納制御装置、データ格納制御方法及びデータ格納制御プログラムを提供することにある。
【００１９】
本発明の更に他の目的、本発明によって得られる具体的な利点は、以下に説明される実施の形態の説明から一層明らかにされる。
【課題を解決するための手段】
【００２０】
一枚の画像に対して，ある一定のパターンで複数データに同時アクセスする際、複数のバンクに分けても、メモリの構成上、同時アクセスできないデータが存在するが、本発明では、そのデータを異なるアドレスに二重保存することで、複数データへの同時アクセスを可能にする。
【００２１】
すなわち、本発明に係るデータ格納装置は、複数のメモリバンクからなるメモリと、全データを上記メモリに格納する際に、上記全データを上記メモリを構成するメモリバンクの各ワード線に対し１つのワード線上に格納可能なデータ数よりも少ないデータ数の範囲内を使い上記メモリの各メモリバンクに順次振り分けて格納するデータ格納制御手段と、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記メモリに対して同時アクセスできない同一メモリバンク内の異なるワード線上の同時に読み出すべきデータを特定し、特定された同時に読み出すべきデータを上記メモリバンクから読み出して同一メモリバンク内の同時アクセス可能な場所に二重保存し、上記メモリから所望の複数データを同時に読み出す制御を行うデータ読み出し制御手段とを備えることを特徴とする。
【００２２】
また、本発明に係るデータ格納制御装置は、全データを複数のメモリバンクからなるメモリに格納して、上記メモリから所望の複数データを同時に読み出すデータ格納制御装置であって、全データを上記メモリに格納する際に、上記全データを上記メモリを構成するメモリバンクの各ワード線に対し１つのワード線上に格納可能なデータ数よりも少ないデータ数の範囲内を使い上記メモリの各メモリバンクに順次振り分けて格納するデータ格納制御手段と、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記メモリに対して同時アクセスできない同一メモリバンク内の異なるワード線上の同時に読み出すべきデータを特定し、特定された同時に読み出すべきデータを上記メモリバンクから読み出して同一メモリバンク内の同時アクセス可能な場所に二重保存し、上記メモリから所望の複数データを同時に読み出す制御を行うデータ読み出し制御手段とを備えることを特徴とする。
【００２３】
また、本発明に係るデータ格納制御方法は、全データを複数のメモリバンクからなるメモリに格納して、上記メモリから所望の複数データを同時に読み出すデータ格納制御方法であって、全データを複数のメモリバンクからなるメモリに格納する際に、上記全データを上記メモリを構成するメモリバンクの各ワード線に対し１つのワード線上に格納可能なデータ数よりも少ないデータ数の範囲内を使い上記メモリの各メモリバンクに順次振り分けて格納し、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記メモリに対して同時アクセスできない同一メモリバンク内の異なるワード線上の同時に読み出すべきデータを特定し、特定された同時に読み出すべきデータを上記メモリバンクから読み出して同一メモリバンク内の同時アクセス可能な場所に二重保存し、上記メモリから所望の複数データを同時に読み出すことを特徴とする。
【００２４】
さらに、本発明に係るデータ格納制御プログラムは、全データを複数のメモリバンクからなるメモリに格納して、上記メモリから所望の複数データを同時に読み出すデータ格納制御をコンピュータにより実行するためのデータ格納制御プログラムであって、全データを複数のメモリバンクからなるメモリに格納する際に、上記全データを上記メモリを構成するメモリバンクの各ワード線に対し１つのワード線上に格納可能なデータ数よりも少ないデータ数の範囲内を使い上記メモリの各メモリバンクに順次振り分けて格納し、同時に読み出そうとする所望の複数データを示すアクセスパターンに基づいて、上記メモリに対して同時アクセスできない同一メモリバンク内の異なるワード線上の同時に読み出すべきデータを特定し、特定された同時に読み出すべきデータを上記メモリバンクから読み出して同一メモリバンク内の同時アクセス可能な場所に二重保存し、上記メモリから所望の複数データを同時に読み出すことを特徴とする。
【発明の効果】
【００２５】
本発明では、一枚の画像に対して、ある一定パターンの複数データに同時アクセスが可能となる。また、同時アクセスしたいデータ数よりもバンク数を増やすことなく同時アクセスが可能になる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。なお、本発明は以下の例に限定されるものではなく、本発明の要旨を逸脱しない範囲で、任意に変更可能であることは言うまでもない。
【００２７】
本発明では、メモリの構成上、同時アクセスできないデータを異なるアドレスに二重保存することによって、複数データへの同時アクセスを可能にする。
【００２８】
まず、同時アクセスできないデータを異なるアドレスに二重保存する方法について説明する。
【００２９】
ここでは、図１に示すように、同時アクセスしたい画素１〜５に対応するパターンがあって、そのパターンで左上から水平方向にラスタスキャンする場合を考える。
【００３０】
図２に示すように、垂直ラインが１つのワード線に格納されるようにデータを格納して、同じバンクに格納される垂直ラインが周期的に現れるようにすると、水平方向にその周期だけ離れた画素同士は同一バンクの異なるワード線へのアクセスとなるため、同時アクセスできないことになる。
【００３１】
図２において、数字はバンクアドレスを表し、太枠は同時アクセスしたいパターンを示している。この例では５バンクとし、５周期で同じバンクに格納される垂直ラインが周期的に現れる。
【００３２】
アクセスしたい個所はラスタスキャンで水平方向に移動するが、パターンそのものは変化しないので、図３のように、アクセスしたい個所の水平画素間隔を計算すると、図４のように、データを格納したバンクの周期から同時アクセスしたいパターンのうち、どの画素とどの画素が同時アクセスできないのかわかる。
【００３３】
すなわち、この例では、アクセスしたい個所の水平画素間隔を計算すると、
画素１と画素２の水平画素間隔Ｄ［１−２］は「３」
画素１と画素３の水平画素間隔Ｄ［１−３］は「１」
画素１と画素４の水平画素間隔Ｄ［１−４］は「５」
画素１と画素５の水平画素間隔Ｄ［１−５］は「０」
画素２と画素３の水平画素間隔Ｄ［２−３］は「２」
画素２と画素４の水平画素間隔Ｄ［２−４］は「２」
画素２と画素５の水平画素間隔Ｄ［２−５］は「３」
画素３と画素４の水平画素間隔Ｄ［３−４］は「４」
画素３と画素５の水平画素間隔Ｄ［３−５］は「１」
画素４と画素５の水平画素間隔Ｄ［４−５］は「５」
となり、バンクの周期が「５」であるから、同時アクセスできないのは、水平画素間隔が「５」の画素１と画素４、画素４と画素５であることがわかる。
【００３４】
同時アクセスできない画素がわかったら、ラスタスキャンでアクセスしていく中で、その画素にアクセスできるときにアクセスしておき、他のアドレスへ二重保存する。
【００３５】
同時アクセスできない画素は、前もって読んでおき、他のアドレスへ書いておきたいので、図５に２重丸の付して示すように、空間的に左にある画素１と画素５を同時アクセスできない画素にする。
【００３６】
このようにすれば、二重保存したい画素を前もって読んでおき、他のアドレスへ書くことができる。すなわち、同時アクセスしたいパターンが、図６に示す位置にあるときに、二重保存したい画素を読み出して、他のアドレスへ書くことができる。
【００３７】
二重保存する画素は読めるときに読んで他のアドレスに書けばよいので、パターンの右端の画素に合わせる必要はない。
【００３８】
書き込むアドレスは、画像の垂直方向の画素数をＨとすると、その画素と読み出しが重なったワード線のＨ＋１番目にする。
【００３９】
二重保存するべき画素がＮ個ある場合は、Ｈ＋１〜Ｈ＋Ｎ番目まで二重保存するための領域が必要になる。
【００４０】
例えば、図７のように、垂直方向の画素数１０、二重保存すべき画素が２個の場合は、ワード線の１１〜１２番目に二重保存することになる。図１２の例では、バンク０のワード線１本目、１番目と４番目をバンク０のワード線２本目、１１〜１２番目に二重保存することになる。
【００４１】
このように、同時アクセスしたいパターンの中で、同時アクセスできない画素を異なるアドレスに二重保存しておけば、図８のように、二重保存先のデータにはアクセスできるので同時アクセスが可能になる。ラスタスキャンで水平方向にパターンが移動していくので、同時アクセスを行いながら、同時アクセスできない画素を二重保存していくと、図９のように、ある水平ラインの画素を二重に保存したことになる。
【００４２】
ここで、上記同時アクセスできない画素の二重保存は、図１０のフローチャートに示す手順に従って行われる。
【００４３】
すなわち、二重保存の処理では、先ず、パターンの水平画素間隔を計算する。（ステップＳ１）。
【００４４】
次に、バンク周期から同時アクセスできない画素を決定する（ステップＳ２）。
【００４５】
次に、二重保存すべき画素を決定する（ステップＳ３）。
【００４６】
次に、パターンと二重保存すべき画素を読み出す（ステップＳ４）。
【００４７】
次に、二重保存すべき画素を二重保存する（ステップＳ５）。
【００４８】
そして、全てを読み出したか否かを判定し（ステップＳ６）、その判定結果がＮＯすなわち読み出すべきデータがある場合には上記ステップＳ４に戻って上記ステップＳ４〜ステップＳ６の処理を繰り返し、上記ステップＳ６における判定結果がＹＥＳになったら処理を終了する。
【００４９】
次に，二重保存するための領域の管理について説明する。管理の仕方には２種類あり、図１１のように、二重保存するための領域を固定にする場合と、図１２のように、元のデータがあった場所を次の二重保存のための領域にする場合がある。
【００５０】
二重保存するための領域を固定にする場合は、同時アクセスできない画素が常にその領域に書き込まれ、読み出されるので、二重保存するための領域が頻繁にアクセスされることになる。二重保存したデータの元のデータがあった場所を次の二重保存のための領域にする場合は、二重保存先がローテーションしていくので、ほぼ均一なアクセスとなる。ただし、この場合は、他のデータが格納されている位置との関係を保つために、図１３のように、二重保存したデータにアクセスした後、元のワード線にデータを戻す必要がある。
【００５１】
データを格納するときのバンク周期は固定でも可変でも良い。
【００５２】
固定の場合、パターンによっては同時アクセスできない画素が多くなることもある。その場合、二重保存するための領域が多く必要になる。
【００５３】
また、可変の場合は，パターンの水平画素間隔から同時アクセスできない画素が最も少なくなる周期を求めて、その周期でバンクに格納することができる。バンク周期は固定なのか可変なのか、二重保存するための領域はどのぐらい必要か、アプリケーションに応じて考えればよい。
【００５４】
次に、複数データへの同時アクセスは、例えば図１４に示すような構成のデータ格納装置１００により実行される。
【００５５】
このデータ格納装置１００は、複数バンクのメモリ１０と、上記メモリ１０へのデータの書き込みを行うデータ格納制御部２０と、上記メモリ１０からのデータの読み出しを行う読み出し制御部３０と、上記メモリ１０上のデータの移動制御を行うデータ移動制御部４０からなり、格納するデータが上記メモリ１０及びデータ格納制御部２０に供給され、複数データの同時読み出しを示すアクセスパターンがデータ読み出し制御部３０に供給されるようになっている。
【００５６】
このデータ格納装置１００におけるデータ格納制御部２０は、図１５に示すように供給されたデータを計数するカウンタ２１と、このカウンタ２１の計数出力に応じて書き込みアドレスを生成する書き込みアドレス生成部２２からなる。
【００５７】
上記書き込みアドレス生成部２２は、図１６に示すように、上記カウンタ２１の出力によりインクリメントされるバンクアドレスカウンタ２２Ａと、このバンクアドレスカウンタ２２Ａの出力によりインクリメントされるワード線アドレスカウンタ２２Ｂと、このワード線アドレスカウンタ２２Ｂの出力によりインクリメントされるビット線アドレスカウンタ２２Ｃと、これらのカウンタ２２Ａ，２２Ｂ，２２Ｃの出力に基づいて書き込みアドレスを生成するアドレス生成部２２Ｄからなる。
【００５８】
そして、このデータ格納装置１００では、このような構成のデータ格納制御部２０により、図１７にフローチャートに示す手順に従って、全データを上記メモリ１０を構成するメモリバンクの各ワード線に対し１つのワード線上に格納可能なデータ数よりも少ないデータ数の範囲内を使い上記メモリ１０の各メモリバンクに順次振り分けて格納する。
【００５９】
すなわち、このデータ格納装置１００では、データの格納を指示する制御信号が与えられると、上記データ格納制御部２０は動作を開始して、先ず、カウンタ２１及び書き込みアドレス生成部２２を初期化し（ステップＳ１１）、データ入力を受け付けると（ステップＳ１２）、上記カウンタ２１をインクリメントして（ステップＳ１３）、上記アドレス生成部２２により与えられる書き込みアドレスにより上記メモリ１０にデータを格納し（ステップＳ１４）、さらに、上記アドレス生成部２２のバンクアドレスカウンタ２２Ａをインクリメントする（ステップＳ１５）。
【００６０】
そして、バンクアドレスカウンタ２２Ａにより得られるバンク数を一周期とするバンクアドレスが元に戻ったか否かを判定し（ステップＳ１６）、このステップＳ１６における判定結果がＮＯである場合にはステップＳ２０に移り、また、上記ステップＳ１６における判定結果がＹＥＳすなわちバンクアドレスが元にもどると、ワード線アドレスカウンタ２２Ｂをインクリメントする（ステップＳ１７）。
【００６１】
つぎに、ワード線アドレスカウンタ２２Ｂにより得られるワード線数を一周期とするワード線アドレスが元に戻ったか否かを判定し（ステップＳ１８）、このステップＳ１８における判定結果がＮＯである場合にはステップＳ２０に移り、また、このステップＳ１８における判定結果がＹＥＳすなわちワード線アドレスが元にもどると、ビット線アドレスカウンタ２２Ｃをインクリメントする（ステップＳ１９）。
【００６２】
そして、ステップＳ２０では、上記カウンタ２１のカウント値が上記メモリ１０に格納すべき全データ数になったか否かを判定し、その判定結果がＮＯである場合には、上記ステップＳ１２に戻ってステップＳ１２〜ステップＳ２０の処理を繰り返して上記メモリ１０へのデータの格納を行い、また、上記ステップＳ２０における判定結果がＹＥＳの場合にはデータの格納処理を終了する。
【００６３】
このデータ格納装置１００におけるデータ読み出し制御部３０は、図１８に示すように、同時アクセス不可位置検出部３１、二重保存データ判定部３２及び読み出しアドレス生成部３３からなり、上記アクセスパターンが上記同時アクセス不可位置検出部３１及び読み出しアドレス生成部３３に供給され、また、上記データ移動制御部４０から移動先アドレスが供給されるようになっている。
【００６４】
上記同時アクセス不可位置検出部３１は、図１９に示すように、上記アクセスパターンが供給される水平位置差分演算部３１Ａと同時アクセス不可位置抽出部３１Ｂを備え、上記水平位置差分演算部３１Ａによりアクセスパターンから水平位置差分を演算し、この水平位置差分値に基づいて上記同時アクセス不可位置抽出部３１Ｂにより上記アクセスパターンにおける同時アクセス不可位置を抽出するようになっている。
【００６５】
また、上記二重保存データ判定部３２は、図２０に示すように、上記同時アクセス不可位置検出部３１により検出された同時アクセス不可位置が供給される水平位置比較部３２Ａと二重保存データ位置判定部３２Ｂを備え、上記水平位置比較部３２Ａによる比較出力に基づいて、上記二重保存データ位置判定部３２Ｂにより空間的に左にある同時アクセス不可位置を二重保存データ位置とするようになっている。
【００６６】
さらに、上記読み出しアドレス生成部３３は、図２１に示すように、カウンタ３３Ａ、上記二重保存データ判定部３２により得られる二重保存データ位置が供給されるオフセット算出部３３Ｂ、オフセット付加部３３Ｃ及びアドレス演算部３３Ｄ、上記データ移動制御部３４から移動先アドレスが供給されるアドレスオフセット処理部３３Ｅを備え、上記アクセスパターンが上記オフセット算出部３３Ｂ及びアドレス演算部３３Ｄに供給され、上記アドレス演算部３３Ｄにより、上記カウンタ３３Ａの出力から、上記アクセスパターン、二重保存データ位置及び上記オフセット付加部３３Ｃの出力に基づいて生成される読み出しアドレスをアドレスオフセット処理部３３Ｅを介して出力するようになっている。
【００６７】
また、このデータ格納装置１００におけるデータ移動制御部４０は、図２２に示すように、移動データ選別部４１、移動先アドレス生成部４２及び移動先アドレス管理部４３を備え、上記メモリ１０から読み出されたデータが上記移動データ選別部４１に供給され、また、上記読み出しアドレス生成部３３により生成された読み出しアドレスが上記移動データ選別部４１及び移動先アドレス生成部４２に供給されるようになっている。
【００６８】
上記移動データ選別部４１は、上記メモリ１０から読み出されたデータを出力するとともに、上記データから二重保存すべきデータを移動データとして選別して上記メモリ１０に供給する。
【００６９】
また、上記移動先アドレス生成部４２は、上記読み出しアドレス生成部３３により生成された読み出しアドレスに基づいて、上記移動データを格納する移動先アドレスを生成して上記メモリに供給する。この移動先アドレス生成部４２により生成される移動先アドレスは、この移動先アドレスが供給される上記移動先アドレス管理部４３により管理される。
【００７０】
そして、このデータ格納装置１００では、このような構成のデータ読み出し制御部３０及びデータ移動制御部４０により、図２３にフローチャートに示す手順に従って上記メモリ１０からデータが読み出されるとともに、データの二重保存が行われる。
【００７１】
すなわち、このデータ格納装置１００では、データの読み出しを指示する制御信号が与えられると、上記データ読み出し制御部３０及びデータ移動制御部４０が動作を開始し、データ読み出し制御部３０は、アクセスパターンを受け付けると（ステップＳ３１）、同時アクセス不可位置検出部３１により、水平位置差分値を演算して（ステップＳ３２）、同時アクセス不可位置を検出し（ステップＳ３３）、二重保存データ判定部３２により二重保存データ位置を決定する（ステップＳ３４）。
【００７２】
そして、上記データ読み出し制御部３０は、読み出しアドレス生成部３３のカウンタ３３Ａを初期化し（ステップＳ３５）、上記カウンタ３３Ａをインクリメントして（ステップＳ３６）、データ読み出しアドレスを生成し（ステップＳ３７）、このデータ読み出しアドレスにより上記メモリ１０からデータを読み出す（ステップＳ３８）。
【００７３】
次に、上記データ移動制御部４０は、移動データを選別して（ステップＳ３９）、上記メモリ１０の移動先アドレスへ格納する（ステップＳ４０）。
【００７４】
そして、上記データ読み出し制御部３０は、全てのアクセスが終わったか否かを判定し（ステップＳ４１）、その判定結果がＮＯである場合には移動先アドレスを更新して（ステップＳ４２）、上記ステップＳ３６に戻り、上記ステップＳ３６からステップＳ４１の処理を繰り返し行い、上記ステップＳ４１における判定結果がＹＥＳになったらデータの読み出し及び二重保存の処理を終了する。
【００７５】
なお、このデータ格納装置１００において、上記データ格納制御部２０、データ読み出し読み出し制御部３０及びデータ移動制御部４０を例えばマイクロプロセッサにて構成し、図示しないプロラムメモリに格納されたデータ格納制御プログラムに従って、データの格納、同時読み出し及び二重保存を行うこともできる。
【図面の簡単な説明】
【００７６】
【図１】同時アクセスしたい画素に対応するパターンの例を模式的に示す図である。
【図２】垂直ラインが１つのワード線に格納されるようにデータを格納して、同じバンクに格納される垂直ラインが周期的に現れるように格納したデータ格納状態を模式的に示す図である。
【図３】アクセスしたい個所の水平画素間隔を模式的に示す図である。
【図４】同時アクセスできない画素を模式的に示す図である。
【図５】水平画素間隔の計算により決定された２重保存する画素を模式的に示す図である。
【図６】二重保存したい画素を読み出す状態を模式的に示す図である。
【図７】二重保存の具体例を模式的に示す図である。
【図８】二重保存により同時アクセスが可能になった画素を模式的に示す図である。
【図９】水平ラインの画素を二重に保存した状態を模式的に示す図である。
【図１０】同時アクセスできない画素を二重保存する手順を示すフローチャートである。
【図１１】二重保存するための領域を固定にした管理の仕方を模式的に示す図である。
【図１２】二重保存したデータの元のデータがあった場所を次の二重保存のための領域にする管理の仕方を模式的に示す図である。
【図１３】他のデータが格納されている位置との関係を保つために、二重保存したデータにアクセスした後、元のワード線にデータを戻した状態を模式的に示す図である。
【図１４】本発明に係るデータ格納装置の構成を示すブロック図である。
【図１５】上記データ格納装置におけるデータ格納制御部の構成を示すブロック図である。
【図１６】上記データ格納制御部における書き込みアドレス生成部の構成を示すブロック図である。
【図１７】上記データ格納制御部により実行されるデータの格納処理の手順を示すフローチャートである。
【図１８】上記データ格納装置におけるデータ読み出し制御部の構成を示すブロック図である。
【図１９】上記データ読み出し制御部における同時アクセス不可位置検出部の構成を示すブロック図である。
【図２０】上記データ読み出し制御部における二重保存データ判定部の構成を示すブロック図である。
【図２１】上記データ読み出し制御部における読み出しアドレス生成部の構成を示すブロック図である。
【図２２】上記データ格納装置におけるデータ移動制御部の構成を示すブロック図である。
【図２３】上記データ格納装置において、上記データ読み出し制御部及びデータ移動制御部により実行されるデータの読み出し及び二重保存の処理手順を示すフローチャートである。
【図２４】一般的な半導体メモリの構造を模式的に示す図である。
【図２５】上記半導体メモリにおいて、同時アクセスできない状態を模式的に示す図である。
【図２６】複数メモリバンクのメモリ構成を示す図である。
【図２７】ある画像に対して、同時アクセスしたいパターンがあって、それが左上からラスタスキャンする場合を模式的に示す図である。
【図２８】同時アクセスできなくなってしまった状態を模式的に示す図である。
【図２９】参照領域内が同時アクセスできるようにメモリバンクの数を増やして同時アクセスを可能にした状態を模式的に示す図である。
【符号の説明】
【００７７】
１０  メモリ、２０  データ格納制御部、２１  カウンタ、２２  書き込みアドレス生成部、２２Ａ  バンクアドレスカウンタ、２２Ｂ  ワード線アドレスカウンタ、２２Ｃ  ビット線アドレスカウンタ、２２Ｄ  アドレス生成部、３０  データ読み出し制御部、３１  同時アクセス不可位置検出部、３２  二重保存データ判定部、３３  読み出しアドレス生成部、３１Ａ  水平位置差分演算部、３１Ｂ  同時アクセス不可位置抽出部、３２Ａ  水平位置比較部、３２Ｂ  二重保存データ位置判定部、３３Ａ  カウンタ、３３Ｂ  オフセット算出部、３３Ｃ  オフセット付加部、３３Ｄ  アドレス演算部、３３Ｅ  アドレスオフセット処理部、４０  データ移動制御部、４１  移動データ選別部、４２  移動先アドレス生成部、４３  移動先アドレス管理部、１００  データ格納装置
【図１】
2005196361.tif 000003
【図２】
2005196361.tif 000004
【図３】
2005196361.tif 000005
【図４】
2005196361.tif 000006
【図５】
2005196361.tif 000007
【図６】
2005196361.tif 000008
【図７】
2005196361.tif 000009
【図８】
2005196361.tif 000010
【図９】
2005196361.tif 000011
【図１０】
2005196361.tif 000012
【図１１】
2005196361.tif 000013
【図１２】
2005196361.tif 000014
【図１３】
2005196361.tif 000015
【図１４】
2005196361.tif 000016
【図１５】
2005196361.tif 000017
【図１６】
2005196361.tif 000018
【図１７】
2005196361.tif 000019
【図１８】
2005196361.tif 000020
【図１９】
2005196361.tif 000021
【図２０】
2005196361.tif 000022
【図２１】
2005196361.tif 000023
【図２２】
2005196361.tif 000024
【図２３】
2005196361.tif 000025
【図２４】
2005196361.tif 000026
【図２５】
2005196361.tif 000027
【図２６】
2005196361.tif 000028
【図２７】
2005196361.tif 000029
【図２８】
2005196361.tif 000030
【図２９】
2005196361.tif 000031