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