(57)【特許請求の範囲】
【請求項１】
書き込み側の制御回路が、バッファメモリの記憶データ量を検知しながら記憶状態が空であることを示す状態信号に応じてバッファメモリにデータを書き込み、読み出し側の制御回路が、バッファメモリの記憶データ量を検知しながら記憶状態が満杯であることを示す状態信号に応じてバッファメモリからデータ読み出し、それを繰り返してブロックデータを伝送するバッファ制御において、
二つのバッファメモリで構成される一時記憶用のダブルバッファメモリのそれぞれが満杯であるか空であるかの記憶状態に対応して、前記書き込み側の制御回路に接続するバッファメモリと前記読み出し側の制御回路に接続するバッファメモリとを入れ替える接続切換手段と、
前記書き込み側の制御回路に対して記憶状態が満杯であるか空であるかを通知する状態信号と、前記読み出し側の制御回路に対して記憶状態が満杯であるか空であるかを通知する状態信号とを、前記接続切換手段の切り替え動作に合わせて、一方のバッファメモリの状態信号から他方のバッファメモリの状態信号に互いに切り替える情報選択手段とを備え、
前記書き込み側の制御回路および前記読み出し側の制御回路に対して、どちらか一方のバッファメモリの記憶状態が満杯であるか空であるかを示す状態信号を通知し、かつ前記どちらか一方のバッファメモリだけをアクセスできるように接続することにより、
前記書き込み側の制御回路および前記読み出し側の制御回路は、バッファメモリの記憶状態が満杯であるか空であるかを示す状態信号に応じて、空になると書き込み側が書き込み、満杯になると読み出し側が読み出すという単一バッファメモリの場合と全く同じ伝送規則によって、ダブルバッファメモリに対しても書き込みあるいは読み出しが可能なバッファ制御装置。
【請求項２】
２つのメモリで構成されるダブルバッファメモリであって、前記接続切換手段は一方のメモリに既にデータが満たされた状態でかつ他方のメモリが空になった時点で接続先を入れ替えるか、あるいは一方のメモリが既に空の状態で他方のメモリにデータが満たされた時点で接続先を入れ替えるか、あるいは一方のメモリにデータが満たされると同時に、他方のメモリが空になった時点で接続先を入れ替える請求項１記載のバッファ制御装置。
【請求項３】
２つのメモリで構成されるダブルバッファメモリであって、前記接続切換手段は書き込み時においては接続しているメモリが満杯になった時点で他方のメモリに切り換えをおこない、読み出し時においては接続しているメモリが空になった時点で他方のメモリに切り換えをおこなう請求項１記載のバッファ制御装置。
【請求項４】
前記情報選択手段は、残留転送量がメモリ容量を超える転送状態では接続されているメモリの状態信号を選択し、残留転送量がメモリ容量以下である転送状態では、読み出しメモリの状態信号を選択可能な請求項１記載のバッファ制御装置。
【請求項５】
前記接続切換手段にて接続を入れ替えたタイミングで外部制御回路に割り込み要求信号などのイベント信号を発生する請求項１記載のバッファ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイコンと周辺回路とのデータ転送速度の速度差を吸収するためのバッファ回路に対して、特にダブルバッファ構成の場合に適用して好適なバッファ制御装置に関する。
【０００２】
【従来の技術】
フラッシュメモリカード等を用いる機器では、カードとマイコンとの間でデータ転送を行うインターフェース回路が必要になる。一般にバス幅も小さく転送速度の遅いメモリカードに対して、アプリケーションも実行するマイコンは高速な場合が多い。低速なメモリカードとのデータ転送によって機器全体の能力低下を招いてしまわないように、インターフェース回路では転送速度差を吸収するためのバッファが設けられているのが普通である。
【０００３】
まず、従来のシングルバッファ構成のインターフェース回路について説明する。図５はシングルバッファ構成のバッファ制御部を示すブロック図である。図５において、システムバス（system bus）１はアドレス、データ、リード・ライト信号、割り込み信号等からなるホストマイコンの外部バスであり、ホストインターフェース（Host I/F）２はシステムバス１のアドレスデコード、リードライトタイミング調整などを行って第１の制御回路であるホストマイコン（図示せず）の書き込みや読み出しに従ってメモリ４にアクセスする論理回路であり、周辺回路インターフェース３はメモリカードなどと送受信するデータをメモリ４に読み書きする第２の制御回路であり、メモリ４は転送速度吸収用のバッファであり、監視部５は第１の制御回路であるホストマイコン側のアクセスと第２の制御回路である周辺回路インターフェース３経由のアクセスをモニタし、メモリ４に一時記憶されているデータ量を監視し、フル（Full）／エンプティ(Empty)信号を出力する論理回路である。
【０００４】
以上のような構成でデータ転送を行う場合のバッファの状態遷移を図６に示す。まずホストマイコンは、バッファの初期化をハードウェアに指示し、バッファを空の状態（１）にした後、周辺回路インターフェース３にデータ転送を指示する。これにより周辺回路インターフェース３は状態（２）に示すようにバッファにデータを書き込みはじめ、状態（３）のようにバッファが一杯になった時点で書き込みを中断する。このとき監視部５はメモリの満杯を検知しＦｕｌｌ信号を出力し、割り込み信号ＩＲＱが発生する。これによりホストマイコンはバッファが満杯であることを確認し、状態（４）のようにホストマイコンがホストインターフェース２を介してデータ読み出しを開始し、状態（５）のようにバッファが空になるまで読み出し続ける。メモリ４が空になると周辺回路インターフェース３は次のデータ書き込みを再開する。
【０００５】
以上の動作を繰り返すことで周辺回路からのデータはホストマイコン側に順次転送される。つまり、メモリへの書き込みと読み出しを時間的に区分して、周辺回路がゆっくりと書き込んだ後に、ホストマイコンが素早く連続的に読み出すことで速度差を吸収するものである。ホストマイコン側からデータを順次周辺回路側に送る場合は逆の動作となり、ホストマイコンが素早く連続的に書き込んだ後に、ゆっくりと周辺回路が読み出せばよい。このような状態遷移は外部の制御回路であるホストマイコンと周辺回路がバッファメモリの記憶データ量を検知することで容易に実現できる。周辺回路からホストマイコンへの転送の場合は、メモリ４が空になると周辺回路が書き込み、ホストマイコンは一杯になると読み出しを行う。ホストマイコンから周辺回路への転送の場合は、ホストマイコンはメモリ４が空になると書き込みを行い、一杯になると周辺回路が読み出しを行うという具合である。
【０００６】
以上のようなシングルバッファ構成に対して転送効率をさらに向上させる目的でバッファメモリを２重化したダブルバッファ構成のインターフェース回路も存在する。図７にダブルバッファ構造のインターフェース回路のブロック図を示す。図７においてシステムバス１、ホストインターフェース２、周辺回路３は前記シングルバッファ構成の場合と同一であり、メモリ４１、４２が転送速度吸収用の２面構成のバッファ、監視部５１、５２は第１の制御回路であるホストマイコン側のアクセスと第２の制御回路である周辺回路のアクセスをモニタし、メモリ４１、４２にそれぞれ一時記憶されているデータ量を監視する論理回路である。
切換器６、７はホストマイコン側のアクセスと周辺回路側のアクセスをそれぞれメモリ４１、４２に接続切り換えする切換器である。
【０００７】
以上のような構成でデータ転送を行う場合のバッファの切り換えについて説明する。まずホストマイコンは２つのバッファメモリが空の状態を確認した後に、周辺回路３にデータ転送を指示する。周辺回路３は書き込みモードの場合には２つのメモリの記憶量を検知して空のメモリがあれば切換器７を制御して空のメモリに接続して一杯になるまでデータを書き込む。一方、ホストインターフェース２は２つのメモリの記憶量を検知してどちらかのメモリが満杯になればシングルバッファ構成と同様に割り込み信号を生成する。ホストマイコンはこの割り込みをきっかけに切換器６を制御して満杯のメモリに接続するとともに、そのメモリのデータを読み出す。
【０００８】
以上の動作を繰り返すことで周辺回路からのデータはホストマイコン側に順次転送される。つまり、ダブルバッファ化により、ホストの読み出し動作と周辺回路３の書き込み動作が同時に行われておりシングルバッファ構成に比べてより転送効率が向上するものである。このような状態遷移はホストマイコンおよび周辺回路が２つのバッファメモリの記憶データ量を検知することで実現されている。
周辺回路からホストマイコンへの転送の場合は、２つメモリのどちらかが空になると周辺回路３が書き込み、ホストマイコンはどちらかが一杯になると読み出しを行う。ホストマイコンから周辺回路への転送の場合は、ホストマイコンはメモリのどちらかが空になると書き込みを行い、どちらかが一杯になると周辺回路３が読み出すという具合である。
【０００９】
【発明が解決しようとする課題】
しかしながら前記のダブルバッファ構成においては、メモリの切り替え制御に代表されるようにホストマイコンはシングルバッファ構成と明らかに異なるメモリ制御を行わなければならないという課題を有している。周辺回路においても同様にダブルバッファ構成専用の回路構成が必要である。つまり、バッファメモリへのアクセスを行う外部の制御回路（ホストマイコンも含む）はシングルバッファ用とダブルバッファ用と別々に用意する必要が生じてしまうという課題を有している。
【００１０】
シングルバッファ構成とダブルバッファ構成は性能とコストのトレードオフ関係にある。性能を重視してダブルバッファ化すればコストも上がるため、機器の使用目的によってどのような構成とするかを選択すべきである。バッファ以外の回路やソフトウェアも別途用意するのではさらにコスト高の要因となってしまうため、ホストマイコンのソフトウェアも含めた外部制御回路は全く共通のまま、機器の使用目的に合わせてバッファ部分のみを変更するだけで最適なシステム構成を構築できることが望ましい。
【００１１】
本発明は前記課題に鑑み、バッファにアクセスする外部制御回路にとってはシングルバッファ構成もダブルバッファ構成も全く区別する必要がないバッファ制御回路を提供することを目的とする。
【００１２】
【課題を解決するための手段】
この課題を解決するために本発明のバッファ制御装置は、一方のメモリに既にデータが満たされた状態でかつ他方のメモリが空になった時点で接続先を入れ替えるか、あるいは一方のメモリが既に空の状態で他方のメモリにデータが満たされた時点で接続先を入れ替えるか、あるいは一方のメモリにデータが満たされると同時に、他方のメモリは空になった時点で接続先を入れ替える接続切換手段と、満杯や空などの記憶状態を示す信号のうち、一つのメモリの状態信号を選択する情報選択手段とを備えたものである。
【００１３】
【発明の実施の形態】
本発明の第１の発明は、書き込み側の制御回路が、バッファメモリの記憶データ量を検知しながら記憶状態が空であることを示す状態信号に応じてバッファメモリにデータを書き込み、読み出し側の制御回路が、バッファメモリの記憶データ量を検知しながら記憶状態が満杯であることを示す状態信号に応じてバッファメモリからデータ読み出し、それを繰り返してブロックデータを伝送するバッファ制御において、二つのバッファメモリで構成される一時記憶用のダブルバッファメモリのそれぞれが満杯であるか空であるかの記憶状態に対応して、前記書き込み側の制御回路に接続するバッファメモリと前記読み出し側の制御回路に接続するバッファメモリとを入れ替える接続切換手段と、前記書き込み側の制御回路に対して記憶状態が満杯であるか空であるかを通知する状態信号と、前記読み出し側の制御回路に対して記憶状態が満杯であるか空であるかを通知する状態信号とを、前記接続切換手段の切り替え動作に合わせて、一方のバッファメモリの状態信号から他方のバッファメモリの状態信号に互いに切り替える情報選択手段とを備え、前記書き込み側の制御回路および前記読み出し側の制御回路に対して、どちらか一方のバッファメモリの記憶状態が満杯であるか空であるかを示す状態信号を通知し、かつ前記どちらか一方のバッファメモリだけをアクセスできるように接続することにより、前記書き込み側の制御回路および前記読み出し側の制御回路は、バッファメモリの記憶状態が満杯であるか空であるかを示す状態信号に応じて、空になると書き込み側が書き込み、満杯になると読み出し側が読み出すという単一バッファメモリの場合と全く同じ伝送規則によって、ダブルバッファメモリに対しても書き込みあるいは読み出しが可能なものである。
【００１４】
また、本発明の第２の発明は、第１の発明に加え、２つのメモリで構成されるダブルバッファメモリであって、前記接続切換手段は一方のメモリに既にデータが満たされた状態でかつ他方のメモリが空になった時点で接続先を入れ替えるか、あるいは一方のメモリが既に空の状態で他方のメモリにデータが満たされた時点で接続先を入れ替えるか、あるいは一方のメモリにデータが満たされると同時に、他方のメモリが空になった時点で接続先を入れ替えるものである。
【００１５】
また、本発明の第３の発明は、第１の発明に加え、２つのメモリで構成されるダブルバッファメモリであって、前記接続切換手段は書き込み時においては接続しているメモリが満杯になった時点で他方のメモリに切り換えをおこない、読み出し時においては接続しているメモリが空になった時点で他方のメモリに切り換えを行うものである。
【００１６】
また、本発明の第４の発明は、第１の発明に加え、前記情報選択手段は、残留転送量がメモリ容量を越える転送状態では接続されているメモリの状態信号を選択し、残留転送量がメモリ容量以下である転送状態では、読み出しメモリの状態信号を選択可能なものである。
【００１７】
また、本発明の第５の発明は、第１の発明に加え、前記接続切換手段にて接続を入れ替えたタイミングで外部制御回路に割り込み要求信号などのイベント信号を発生するものである。
【００１９】
以下、本発明の実施の形態について、図面を用いて説明する。
【００２０】
（実施の形態１）
図１は本発明の実施の形態１によるバッファ制御装置の構成を示すブロック図である。従来例と構成が同じものには同一符号を付け説明を省略する。
【００２１】
図１において、切換検出器８は２つのバッファメモリの記憶状態からバッファメモリの切り換え信号を生成する回路、切換器９、１０は２つのバッファメモリの記憶状態信号から一つを選択して外部の制御回路であるホストマイコン側と周辺回路側に受け渡すスイッチ回路である。
【００２２】
以上のような構成でのバッファメモリの切り換え制御について、図２のバッファメモリの状態遷移を使って説明する。まずホストマイコンはバッファの初期化をハードウェアに指示し、両方のバッファを空の状態（１）にする。この初期化にてメモリ接続は例えば図２状態（１）に示すように周辺回路側のアクセスがメモリ４１に、ホストマイコン側のアクセスがメモリ４２に接続される。
【００２３】
次にホストマイコンは周辺回路３にデータ転送を指示し、状態（２）に示すように周辺回路３がメモリにデータを書き込みはじめ、状態（３）のようにバッファが一杯になった時点で周辺回路３は書き込みを中断する。このとき、切換検出器８はメモリ４２が空の状態の時にメモリ４１が満杯になったことを検出してメモリの接続関係を反対にする。つまり、図２状態（３）から状態（４）への遷移に示すように、周辺回路側の接続はメモリ４１からメモリ４２に切り替わり、その状態信号も切換器１０によってメモリ４１の満杯状態からメモリ４２の空状態に切り替わる。よって周辺回路３はメモリが空であると認識しデータの書き込みを再開し、状態（５）のようにメモリ４２にデータを書き込んでいく。
【００２４】
一方、状態（３）から状態（４）への遷移においてホストマイコン側に接続されるメモリもメモリ４２からメモリ４１に切り換わり、メモリの記憶状態を示す信号も切換器９によってメモリ４２の空状態からメモリ４１の満杯状態に切り換わる。この満杯状態への変化により割り込み信号ＩＲＱが発生する。なお、切換信号により直接割り込み信号を生成してもよい。
【００２５】
この割り込みをきっかけにホストマイコンはバッファが満杯であることを確認し、これにより状態（５）のようにホストマイコンがホストインターフェース２を介してデータ読み出しを開始する。このように状態（５）では周辺回路からの書き込みとホストマイコンからの読み出しが同時に実行できる。
【００２６】
次の状態（６）は周辺回路３からの書き込みの方が先に終了してメモリ４２が満杯になった場合を示している。この場合はまだメモリ４１が空でないのでメモリ接続の入れ替えは起こらず、周辺回路３は書き込みを中断した状態となり、状態（７）から状態（８）の遷移に示すようにメモリ４１が空になった時点でメモリ接続の入れ替えが発生する。この入れ替えにより、前記の入れ替えと同様に周辺回路はメモリが空になったと判断し、ホストマイコンは一杯になったと判断することでデータ転送を続けることになる。
【００２７】
以上の動作を繰り返すことで周辺回路からのデータはホストマイコン側に順次転送される。ホストマイコン側からデータを順次周辺回路側に送る場合は逆の動作となるだけである。
【００２８】
このような状態遷移は外部の制御回路であるホストマイコンと周辺回路が前記のシングルバッファ構成と全く同じにバッファメモリの記憶データ量を検知しながら、空になると書き込み、一杯になると読み出すというものであり、ダブルバッファとして特別な判断は全くない。
【００２９】
以上のように本実施の形態によれば、バッファメモリの接続切り替えを適切な条件で行うと同時に、切り替えに合わせてバッファアクセス制御に必要なメモリ記憶状態を示す信号も切り換えて外部制御回路にインターフェースすることにより、シングルバッファ構成と全く同じ外部制御回路でダブルバッファ構成を実現できる。
【００３０】
なお、本実施の形態では、ホストマイコン側と周辺回路側の２つの切換器を同時かつ互いに切り換える方法で説明したが、それぞれが独立に一杯になったらあるいは空になったら接続を切り換えることでも同様の効果が得られる。
【００３１】
また本実施の形態では、ホストマイコンなどの外部制御回路のデータ転送終了時の動作について特に触れてはいないが、ホストマイコンや周辺回路の構成によっては、転送が終了した事を認識する必要があることも想定される。例えば、バッファメモリに書き込んだ最後のデータを受け取り先が読み出したことを検出することにより転送終了とし、次の動作に移行するきっかけとする事などが考えられる。外部の制御回路がこのような構成でもシングルバッファ構成の場合は、接続されるメモリが固定されているので、書き込み側で空の状態を検出すれば全てのデータが転送されたことに等しくなる。しかし、ダブルバッファ構成の時は本実施例の構成のままシングルバッファと同じ判断をしてしまうと、バッファメモリの接続が切り替わってしまうので、読み出し側が最後のデータを読み出したかどうかは書き込み側の接続メモリの残量を見ても判断できない。そこで、図３に示すように最終転送時には記憶状態信号を選択するスイッチ回路９、１０が反転しないように制御する最終制御部１１を設けることで解決される。なお、他の構成は、図１に示したものと同様である。
【００３２】
これにより、図４（７）から（８）に示す状態遷移においてメモリの接続先は入れ替えるものの記憶状態信号は図中の点線で示すように読み出し動作側が接続しているメモリの状態信号が選択される。これにより最後に書き込んだデータが読み出されて２つのバッファメモリが全て空になった図４状態（１０）を外部制御回路であるホストマイコンも周辺回路も認知することができる。
【００３３】
【発明の効果】
以上のように本発明によれば、バッファメモリの接続切り替えを適切な条件で行うと同時に、切り替えに合わせてバッファアクセス制御に必要なメモリ記憶状態を示す信号も切り換えて外部制御回路にインターフェースすることにより、シングルバッファ構成であるかダブルバッファ構成であるかを意識することなく正しいメモリアクセス制御を行うことができ、システム全体の要求仕様に好適なバッファ構成をメモリ部のみの変更で簡単に実現でき、その効果は大きい。
【図面の簡単な説明】
【図１】本発明の実施の形態によるバッファ制御装置の構成を示すブロック図
【図２】同バッファ制御装置のバッファ状態の遷移を示す模式図
【図３】転送終了判断を考慮したバッファ制御装置の構成を示すブロック図
【図４】転送終了判断を行う場合のバッファ状態の遷移を示す模式図
【図５】従来のシングルバッファ構成のバッファ制御装置を示すブロック図
【図６】従来のシングルバッファ構成のバッファ状態の遷移を示す模式図
【図７】従来のダブルバッファ構成のバッファ制御装置を示すブロック図
【符号の説明】
１  システムバス
２  ホストインターフェース
３  周辺回路インターフェース
４、４１、４２  バッファメモリ
５、５１、５２  監視部
６、７  切換器
８  切換検出器
９、１０  スイッチ回路
１１  最終転送制御部
【図１】
0003700561.tif 000002
【図２】
0003700561.tif 000003
【図３】
0003700561.tif 000004
【図４】
0003700561.tif 000005
【図５】
0003700561.tif 000006
【図６】
0003700561.tif 000007
【図７】
0003700561.tif 000008