(57)【要約】【課題】バッファ切り替えの制御装置の構成とデータ転送の通信手段を簡素化すること。【解決手段】動作速度が異なるデータ転送元装置とデータ転送先装置の間のデータ転送を行うバッファリング装置において、転送元バッファ、転送先バッファおよび一時バッファが割り当てられる３つの物理バッファと、この割り当ての状態値を保持する状態レジスタ５１と、一時バッファが保持する転送データはデータ転送先装置３０へ読み込まれるために新規なデータとして有効であるか否かの状態値を保持する有効レジスタ５２と、転送元装置２０から送られる３つの物理バッファの割り当ての切り替え要求２１および転送先装置３０から送られる３つの物理バッファの割り当ての切り替え要求３１に基づいて３つの物理バッファの割り当てを切り替えるよう制御する調停装置５３を備える。【選択図】      図１
2004272373.tif 000002
【特許請求の範囲】
【請求項１】
動作速度が異なるデータ転送元装置とデータ転送先装置の間のデータ転送を行うバッファリング装置において、
前記データ転送元装置からの転送データを書き込むための転送元バッファ、前記データ転送先装置へ転送データ読み出すための転送先バッファ、および前記転送元装置と前記転送先装置のいずれにも一時的に接続されていない一時バッファが１つずつ割り当てられその割り当て状態の変更が可能な３つの物理バッファと、
前記転送元バッファ、前記転送先バッファおよび前記一時バッファを前記３つの物理バッファのうちどの物理バッファに割り当てるかの状態値を保持する状態レジスタと、
前記状態レジスタの状態値に基づいて前記データ転送元装置からの転送データを前記物理バッファの中に書き込むため前記３つの物理バッファの中から１つの物理バッファを選択して転送元バッファとする第１の選択装置と、
前記状態レジスタの状態値に基づいて前記３つの物理バッファの１つから前記データ転送先装置へ転送データを読み込ませるため前記３つの物理バッファの中から１つの物理バッファを選択して転送先バッファとする第２の選択装置と、
前記一時バッファが保持する転送データが前記データ転送先装置へ読み込まれるために新規なデータとして有効であるか否かの状態値を保持する有効レジスタと、
転送元装置から送られる前記３つの物理バッファの割り当ての切り替えを要求する第１の要求および転送先装置から送られる前記３つの物理バッファの割り当ての切り替えを要求する第２の要求に基づいて前記状態レジスタおよび前記有効レジスタの状態値を遷移させて前記３つの物理バッファの割り当てを切り替えるよう制御する調停装置と、
を備えたことを特徴とするバッファリング装置。
【請求項２】
前記転送元装置から前記転送元バッファへ転送データを書き込む場合、書き込み後に前記転送元装置から前記調停装置へ前記第１の要求をし、
前記第１の要求がなされた後、前記転送元バッファと前記一時バッファに対応する物理バッファの割り当てを切り替えるよう前記状態レジスタの状態値を遷移させるとともに前記有効レジスタの状態値を有効とするよう遷移させ、
前記転送先バッファから前記転送先装置へ転送データを読み出す場合、転送データを読み出す直前に前記転送先装置から前記調停装置へ前記第２の要求がなされ、前記有効レジスタの状態値が有効の場合は、前記転送先バッファと前記一時バッファに対応する物理バッファの割り当てを切り替えるよう前記状態レジスタの状態値を遷移させるとともに前記有効レジスタの状態値を無効とするよう遷移させ、前記有効レジスタの状態値が無効の場合は、前記転送先バッファと前記一時バッファに対応する物理バッファの割り当て状態を保持するよう前記状態レジスタの状態値および前記有効レジスタの状態値を遷移させず、
前記第１の要求および前記第２の要求が同時に行われる場合は、前記転送元バッファと前記転送先バッファに対応する物理バッファの割り当てを切り替えるよう前記状態レジスタの状態値を遷移させ、前記転送元バッファと前記転送先バッファに対応する物理バッファの割り当てを切り替えるよう前記状態レジスタの状態値を遷移させる際に前記有効レジスタの状態値を無効とするよう遷移させることを特徴とする請求項１に記載のバッファリング装置。
【請求項３】
前記転送元装置が前記転送元バッファへ転送データの書き込みを行う際、前記転送元バッファに書き込まれた転送データが最新のものであるか否かを識別するための識別データを転送し、前記転送先装置が前記転送先バッファから転送データを読み込む際、前記識別データを識別して転送データを読み込むか否かの判断を行うことを特徴とする請求項１または２に記載のバッファリング装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は動作速度が異なる２つの装置間でデータ転送するために用いるバッファリング装置に関するものである。
【０００２】
【従来の技術】
従来、動作速度の異なる２つの装置間におけるデータ転送は動作速度の遅い装置のデータ処理に律速され、転送元装置または転送先装置が待機する時間が長かった。そこで、転送元装置のデータをいったんバッファリング装置に蓄え、このバッファリング装置から転送先装置へデータを送り出すことによって転送元装置や転送先装置が待機することなくデータ転送を行っている。
【０００３】
特許文献１に記載の従来技術によると、動作速度が異なる２つの装置間でデータ転送するために用いるバッファリング装置において、バッファリング装置は、例えば３つの物理バッファを備えており、データ転送元装置（データ提供部）がデータを書き込むためにアクセスする転送元バッファ（書き込みバッファ）と、データ転送先装置（データ参照部）がデータを読み出すためにアクセスする転送先バッファ（読み出しバッファ）と、データ転送元装置とデータ転送先装置のどちらからもアクセスしない一時バッファ（格納バッファ）で構成されている。そして、バッファ制御部によって切り替えの制御がされているバッファセレクタは、データ転送元装置とデータ転送先装置がアクセスする物理バッファを３つの物理バッファから選択している。
【０００４】
バッファ制御部は、先述した各バッファの状態値を保持するバッファ情報レジスタと、データ転送元装置が転送元バッファに転送データの書き込みを終了した後に、データ転送元装置からのバッファの切り替え要求を書き込むバッファ切り替え要求レジスタと、一時バッファに対応する物理バッファにデータ転送先装置がアクセスすべきデータが保存されているか否かを示す一時バッファ有効フラグと、データ転送先装置が転送先バッファから転送データを読み込み中に、転送先バッファが転送元バッファおよび一時バッファに切り替わることを禁止する要求を書き込むバッファ切り替え禁止レジスタと、各レジスタの状態値に基づいてバッファ切り替えを制御するバッファ制御装置から構成されている。
【０００５】
バッファ制御装置は、バッファ切り替え要求レジスタにバッファを切り替える要求が書き込まれた状態であって、かつバッファ切り替え禁止レジスタにバッファ切り替えを禁止する要求が書き込まれていない状態の場合、転送元バッファとデータ転送先装置がアクセスする転送先バッファの夫々に対応している物理バッファを切り替えるように制御している。これによってデータ転送元装置によって書き込まれた転送元バッファの転送データが転送先バッファに移り、転送データは転送先バッファからデータ転送先装置に読み込まれることとなる。
【０００６】
バッファ切り替え要求レジスタにバッファを切り替える要求が書き込まれた状態であって、かつバッファ切り替え禁止レジスタにバッファ切り替えを禁止する要求が書き込まれている状態の場合、転送元バッファと一時バッファの夫々に対応している物理バッファを切り替えるように制御している。これによってデータ転送元装置によって書き込まれた転送元バッファの転送データが一時バッファに移り、転送データが一時バッファに蓄積されることとなる。
【０００７】
一時バッファにデータ転送先装置がアクセスすべきデータが保存されていることを示す値が一時バッファ有効フラグに書き込まれている状態であって、かつバッファ切り替え禁止レジスタにバッファ切り替えを禁止する要求が書き込まれていない状態の場合、データ転送先装置がアクセスする転送先バッファと一時バッファの夫々に対応する物理バッファを切り替えるように制御している。これによって一時バッファに蓄積されていた転送データが転送先バッファに移り、転送データは転送先バッファからデータ転送先装置に読み込まれることとなる。
【０００８】
このように、転送元装置と転送先装置がアクセスするバッファを順次切り替えることにより、データ転送元装置からデータ転送先装置へのデータ転送を実現している。データ転送元装置とデータ転送先装置にはそれぞれアクセスすべき物理バッファが常に割り当てられので、データ転送元装置とデータ転送先装置が物理バッファへアクセスする時において物理バッファを割り当てるための時間を必要とせずアクセスするのを待たされることがない。また、データ転送先装置は物理バッファへアクセスを開始した時点において、物理バッファへの書き込みが完了した新規な転送データを格納する物理バッファからデータを読み込むことが可能となる。
【０００９】
【特許文献１】
特開２００１−２８２６５０号公報（第６〜８，１３頁）
【００１０】
【発明が解決しようとする課題】
しかしながら、上記特許文献１に記載の従来技術によれば、転送元装置がバッファ切り替え要求する時点で、転送先装置がアクセスするバッファの切り替えも制御している。このため、転送先装置がバッファにアクセスしているか否かによって転送先装置がアクセスするバッファの切り替えを禁止するか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのこのレジスタを操作する手順が必要であるという問題がある。
【００１１】
この発明は上記に鑑みてなされたものであって、バッファ切り替えの制御装置の構成とデータ転送の通信手段を簡素化することができるバッファリング装置を得ることを目的とする。
【００１２】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するために、この発明にかかるバッファリング装置にあっては、動作速度が異なるデータ転送元装置とデータ転送先装置の間のデータ転送を行うバッファリング装置において、前記データ転送元装置からの転送データを書き込むための転送元バッファ、前記データ転送先装置へ転送データ読み出すための転送先バッファ、および前記転送元装置と前記転送先装置のいずれにも一時的に接続されていない一時バッファが１つずつ割り当てられその割り当て状態の変更が可能な３つの物理バッファと、前記転送元バッファ、前記転送先バッファおよび前記一時バッファを前記３つの物理バッファのうちどの物理バッファに割り当てるかの状態値を保持する状態レジスタと、前記状態レジスタの状態値に基づいて前記データ転送元装置からの転送データを前記物理バッファの中に書き込むため前記３つの物理バッファの中から１つの物理バッファを選択して転送元バッファとする第１の選択装置と、前記状態レジスタの状態値に基づいて前記３つの物理バッファの１つから前記データ転送先装置へ転送データを読み込ませるため前記３つの物理バッファの中から１つの物理バッファを選択して転送先バッファとする第２の選択装置と、前記一時バッファが保持する転送データが前記データ転送先装置へ読み込まれるために新規なデータとして有効であるか否かの状態値を保持する有効レジスタと、転送元装置から送られる前記３つの物理バッファの割り当ての切り替えを要求する第１の要求および転送先装置から送られる前記３つの物理バッファの割り当ての切り替えを要求する第２の要求に基づいて前記状態レジスタおよび前記有効レジスタの状態値を遷移させて前記３つの物理バッファの割り当てを切り替えるよう制御する調停装置とを備えたことを特徴とする。
【００１３】
この発明によれば、転送先装置が転送先バッファから転送データを読み出す直前に、転送先装置がバッファ切り替え要求をしているため、最新データが保持された物理バッファを転送先バッファとなるようにすれば良い。このため、転送先装置がバッファにアクセスしているか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのレジスタを操作する手順が不要となる。
【００１４】
【発明の実施の形態】
以下、この発明にかかるバッファリング装置の実施の形態を図面を参照して詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
図１〜４に従ってこの発明の実施の形態について説明する。図１はこの発明のバッファリング装置１０および転送元装置２０、転送先装置３０の構成を示す概略図である。バッファリング装置１０はバッファ容量が同じである３つの物理バッファ１〜３を備え、各物理バッファ１〜３は、転送元装置２０から転送される転送データを書き込むための転送元バッファ、転送されてきた転送データを転送先装置３０が読み出すための転送先バッファおよび転送元装置２０と転送先装置３０のいずれにも一時的に接続されていない一時バッファとして機能する。状態レジスタ５１は例えば、物理バッファ１は転送元バッファ、物理バッファ２は転送先バッファ、物理バッファ３は一時バッファと云うように各物理バッファ１〜３に割り当てられたバッファの機能（転送元バッファ、転送先バッファ、一時バッファのどれであるか）を示す状態値を保持する。この状態値は、後述する調停装置５３からバッファ割り当ての切り替え命令が来るまで保持される。
【００１６】
選択装置４１は転送元装置２０と接続され、状態レジスタ５１の状態値に基づいてデータ転送元装置２０からの転送データを３つの物理バッファのうちの１つの物理バッファの中に書き込むため、３つの物理バッファの中から１つの物理バッファを選択する。選択装置４１によって選択された物理バッファが転送元バッファとなる。
【００１７】
選択装置４２は、転送先装置３０と接続され状態レジスタ５１の値に基づいて３つの物理バッファのうちの１つの物理バッファからデータ転送先装置３０へ転送データを読み込ませるため、３つの物理バッファの中から１つの物理バッファを選択する。選択装置４２によって選択された物理バッファが転送先バッファとなる。
【００１８】
そして、選択装置４１と選択装置４２のいずれにも選択されない物理バッファが一時バッファとなる。有効レジスタ５２は、状態レジスタ５１と接続されており、一時バッファが保持する転送データが転送先装置３０へ読み込むために新規なデータとして有効であるか否かの状態値を保持する。
【００１９】
調停装置５３には、転送元装置２０および転送先装置３０からバッファ切り替え要求が入力されている。調停装置５３は、転送元装置２０からのバッファ切り替え要求２１あるいは転送先装置３０からのバッファ切り替え要求３１に基づいて状態レジスタ５１および有効レジスタ５２の状態値を遷移させて３つの物理バッファ１〜３の割り当てを切り替えさせるよう制御する。
【００２０】
つぎに、この発明の実施の形態にかかるバッファリング装置１０の動作について図２〜図４に示すフローチャートに従って説明する。
【００２１】
図２は転送元装置２０から物理バッファの１つに転送データの書き込みが行われる場合を示したフローチャートである。転送元装置２０からの転送データはバッファリング装置１０の選択装置４１に転送され（ステップＳ１００）、物理バッファの１つである転送元バッファに転送データの書き込みが行われる（ステップＳ１１０）。ここで、３つの物理バッファの中からどの物理バッファを転送元バッファとするかは、状態レジスタ５１の状態値に基づき選択装置４１が３つの物理バッファの中から１つの物理バッファを選択することにより行われる。
【００２２】
この書き込み終了後に、転送元装置２０から調停装置５３にバッファ切り替え要求２１を送信する（ステップＳ１２０）。これにより、調停装置５３は３つの物理バッファのうち転送元バッファと一時バッファに対応する物理バッファを切り替えるよう状態レジスタ５１のバッファ割り当ての状態値を遷移させる。この割り当ての状態値の遷移によって転送元バッファと一時バッファが切り替わる（ステップＳ１３０）。すなわち、転送データの書き込みが終了した旧転送元バッファは一時バッファとなり、旧一時バッファは転送元バッファとなって新たな転送データの書き込みが可能となる。（ステップＳ１４０）、また、調停装置５３は、転送元バッファから一時バッファに切り替えられた一時バッファの有効／無効を示す有効レジスタ５２の状態値を有効とするよう遷移させる（ステップＳ１５０）。転送元装置２０からバッファ切り替え要求２１が入力される度に、上記のような転送元バッファと一時バッファとの相互切り換えが行われる。
【００２３】
図３は物理バッファの１つから転送先装置３０への転送データの読み込みが行われる場合を示したフローチャートである。転送先装置３０は、転送先バッファから転送データの読み出しを行う直前にバッファ切り替え要求３１を調停装置５３に送信する（ステップＳ２００）。調停装置５３は有効レジスタ５２の状態値が有効であるか否かすなわち一時バッファに転送先装置が読み出し可能な新規なデータが蓄積されているか否かを判断する（ステップＳ２１０）。
【００２４】
ここで、有効レジスタ５２の状態値が有効である場合、調停装置５３は３つの物理バッファのうち一時バッファに対応する物理バッファと転送先バッファに対応する物理バッファを切り替えるよう状態レジスタ５１のバッファ割り当ての状態値を遷移させる。この割り当ての状態値の遷移によって、転送先バッファと一時バッファが切り替わり（ステップＳ２２０）、旧転送先バッファは一時バッファとなり、旧一時バッファは転送先バッファとなってこの転送先バッファ中の新規な転送データが転送先装置３０に読み込まれる（ステップＳ２３０）。さらに、切り換えられた一時バッファの中には転送先装置３０に読み出すことが可能な新規なデータが入っていない状態になるので、有効レジスタ５２の状態値を無効とするよう遷移させる（ステップＳ２４０）。
【００２５】
一方、ステップ２１０の判定において有効レジスタ５２の状態値が無効である場合は、調停装置５３は、状態レジスタ５１のバッファ割り当ての状態値を保持する。すなわち、この場合は、状態レジスタ５１のバッファ割り当ての状態値が切り替えられることはない。さらに、この場合は、転送先バッファと一時バッファが切り替わらないため、有効レジスタ５２の状態値も無効のまま保持される（ステップＳ２６０）。
【００２６】
転送先装置３０からバッファ切り替え要求３１が入力される度に、上記のような転送先バッファと一時バッファとの相互切り換えが行われる。
【００２７】
図４は転送元装置２０と転送先装置３０の両方から同時にバッファ切り替えの要求がされた場合を示すフローチャートである。転送元装置２０から調停装置５３へのバッファ切り替え要求２１と転送先バッファから調停装置５３へのバッファ切り替え要求３１が同時に行われた場合（ステップＳ３００）、調停装置５３は３つの物理バッファのうち、転送元バッファと転送先バッファに対応する物理バッファを切り替えるよう状態レジスタ５１のバッファ割り当ての状態値を遷移させる（ステップＳ３１０）。すなわち、旧転送元バッファは転送先バッファに切り換え、旧転送先バッファは転送元バッファに切り換える。さらに、この場合、一時バッファに蓄積されていたデータは新規なデータではなくなるため、有効レジスタ５２の状態値を無効とするよう遷移させる。ここで、転送元装置２０から調停装置５３へバッファ切り替え要求２１がなされた場合とは、転送元装置２０からの転送データを転送元バッファに書き込んだ直後であり、転送元バッファに新規な転送データが蓄積された状態である。したがって、転送元バッファを転送先バッファに切り替えれば（ステップＳ３２０）、転送元バッファに入っていた転送データが転送先バッファに入っている状態となる。これにより転送先バッファ中の新規な転送データが転送先装置３０に読み込まれることとなる（ステップＳ３３０）。
【００２８】
このように、調停装置５３は、状態レジスタ５１の現在のバッファ割り当ての状態値、有効レジスタ５２の現在の状態値、転送元装置２０および転送先装置３０から調停装置５３に転送されるバッファ切り替え要求２１，３１の情報に基づいて、状態レジスタ５１の次のバッファ割り当ての状態値、有効レジスタ５２の次の状態値を決定している。図５はこれらの各状態値を示した図である。
【００２９】
図５において「現在の状態値」の「状態レジスタ５１の状態値」の欄において、１，２，３の数字はそれぞれ物理バッファ１、物理バッファ２、物理バッファ３を示しており、３つの数字は左の数字から転送元バッファ、一時バッファ、転送先バッファに割り当てられる物理バッファを示している。したがって例えば、転送元バッファが物理バッファ１に割り当てられ、一時バッファが物理バッファ２に割り当てられ、さらに転送先バッファが物理バッファ３に割り当てられている時、「現在の状態」の「状態レジスタ５１の状態値」は「１２３」と示される。同様に「次の状態値」における「状態レジスタ５１の状態値」の欄においても３つの数字で各物理バッファの割り当てを示している。
【００３０】
「現在の状態値」および「次の状態値」における「有効レジスタ５２の状態値」は一時バッファ中の転送先データが転送先装置３０に読み出されるために有効か否かを示しており、有効の場合は「１」を示し、無効の場合は「０」を示している。
【００３１】
「現在の状態値」における「バッファ切り替え要求」の欄は転送元装置２０および転送先装置３０から調停装置５３へのバッファの切り替え要求の有無を示している。２つの数字は左の数字が転送元装置２０からのバッファ切り替え要求２１を示し、右側の数字が転送先装置３０からのバッファ切り替え要求３１を示している。ここでは、バッファ切り替え要求がある場合を「１」で示し、バッファ切り替え要求がない場合を「０」で示している。したがって例えば、転送元装置２０からバッファ切り替え要求２１があり、転送先装置３０からバッファ切り替え要求３１がない場合は、「１０」と示している。
【００３２】
図５において例えば、「現在の状態値」の「状態レジスタ５１の状態値」が「１２３」で示され、「有効レジスタ５２の状態値」が「１」で示され、「バッファ切り替え要求」が「０１」で示されている場合について説明する。この場合、「有効レジスタ５２の状態値」が「１」であるため、一時バッファ（物理バッファ２）には転送先装置３０に転送するために新規な転送データが蓄積されている。また、「バッファ切り替え要求」が「０１」であるため、転送先装置３０のみからバッファ切り替え要求３１がなされている。したがって、状態レジスタ５１の状態値は一時バッファと転送先バッファを切り替える。すなわち、旧一時バッファである物理バッファ２が転送先バッファに切り換えられ、旧転送先バッファである物理バッファ３が一時バッファに切り換えられる。この状態を示したのが「次の状態値」における「状態レジスタ５１の状態値」であり、「１３２」で示される。これにより転送先装置３０は転送先バッファに切り換えられた物理バッファ２から転送データを読み出す。また、旧一時バッファである物理バッファ２に蓄積されていた転送データは転送先装置３０が読み出すために新規なデータではなくなる。この状態を示したのが「次の状態値」における「有効レジスタ５２の状態値」であり、「０」で示される。
【００３３】
また、「現在の状態値」の「状態レジスタ５１の状態値」が「１２３」で示され、「有効レジスタ５２の状態値」が「０」で示され、「バッファ切り替え要求」が「１０」で示されている場合は、「有効レジスタ５２の状態値」が「０」であるため、一時バッファ（物理バッファ２）には転送先装置３０に転送するために新規な転送データが蓄積されていない。また、「バッファ切り替え要求」が「１０」であるため、転送元装置２０のみからバッファ切り替え要求２１がなされている。したがって、状態レジスタ５１の状態値は一時バッファと転送元バッファを切り替える。すなわち、旧一時バッファである物理バッファ２が転送元バッファに切り換えられ、旧転送元バッファである物理バッファ１が一時バッファに切り換えられる。この状態を示したのが「次の状態値」における「状態レジスタ５１の状態値」であり、「２１３」で示される。これにより一時バッファに切り換えられた物理バッファ１に蓄積された転送データは転送先装置３０が読み出すために最新のデータとなる。この状態を示したのが「次の状態値」における「有効レジスタ５２の状態値」であり、「１」で示される。
【００３４】
このような動作を行う実施の形態にかかるバッファリング装置１０の制御サイクルの一例を示したのが図６である。図６において制御サイクル１〜７は制御サイクルを単位時間ごとに区切ったものである。バッファリング装置１０の状態遷移の制御を行う間隔を１単位時間とする。そしてバッファ切り替え要求２１，３１は各単位時間についてのみ有効なパルス信号とする。
【００３５】
図６においては、制御サイクル２と制御サイクル６で転送元装置２０からバッファ切り替え要求２１がなされている。同様に、「転送先装置３０からのバッファ切り替え要求３１」において、制御サイクル４と制御サイクル６で転送先装置３０からバッファ切り替え要求３１がなされている。「バッファ切り替え要求」における２つの数字は図５と同様に左の数字が転送元装置２０からのバッファ切り替え要求２１を示し、右側の数字が転送先装置３０からのバッファ切り替え要求３１を示している。ここでも、バッファ切り替え要求がある場合を「１」で示し、バッファ切り替え要求がない場合を「０」で示している。したがって例えば、制御サイクル２では転送元装置２０からバッファ切り替え要求２１があり、転送先装置３０からバッファ切り替え要求３１がないため、「１０」と示している。
【００３６】
バッファ割り当ての状態を示す「状態レジスタ５１の状態値」は、図５と同様に１，２，３の数字はそれぞれ物理バッファ１、物理バッファ２、物理バッファ３を示しており、３つの数字は左の数字から転送元バッファ、一時バッファ、転送先バッファに割り当てられる物理バッファを示している。したがって例えば、制御サイクル１において状態レジスタ５１の状態値は「１２３」と示されており、転送元バッファが物理バッファ１に割り当てられ、一時バッファが物理バッファ２に割り当てられ、そして転送先バッファが物理バッファ３に割り当てられている状態を示している。
【００３７】
「有効レジスタ５２の状態値」は一時バッファが有効か否かを示しており、有効の場合は「１」を示し、無効の場合は「０」を示している。したがって例えば、制御サイクル３において有効レジスタ５２の状態値は「１」と示されており、一時バッファが保持する転送データがデータ転送先装置３０へ読み込まれるために、新規なデータとして有効であることを示している。
【００３８】
つぎに、バッファの切り替えにより、転送元装置２０から転送先装置３０へ転送データが転送される過程を図６を用いて説明する。
【００３９】
制御サイクル１において「状態レジスタ５１の状態値」は「１２３」と示されており、転送元バッファが物理バッファ１に割り当てられ、一時バッファが物理バッファ２に割り当てられ、さらに転送先バッファが物理バッファ３に割り当てられている。この状態で転送元装置２０からの転送データは転送元バッファとしての物理バッファ１に蓄積されている。ここでは、「有効レジスタ５２の状態値」が「０」であり、一時バッファとしての物理バッファ２が保持する転送データはデータ転送先装置３０へ読み込むために新規なデータとして有効でない。また、「バッファ切り替え要求」が「００」であり、バッファの切り替え要求がなされていないため、各物理バッファの割り当ての状態をこのまま保持する。
【００４０】
制御サイクル２では、「バッファ切り替え要求」が「１０」となった場合、すなわち転送元装置２０からバッファ切り替え要求２１がなされている。この場合、「バッファ切り替え要求」が発生した制御サイクルの次の制御サイクルで実際にバッファの割り当ての切換えが行われる。
【００４１】
制御サイクル２において、転送元装置２０からバッファ切り替え要求２１がなされているため制御サイクル３において転送元バッファと一時バッファが切り替えられ、「状態レジスタ５１の状態値」は「１２３」から「２１３」となる。すなわち、物理バッファ１は転送元バッファから一時バッファに切り換えられ、物理バッファ２は一時バッファから転送元バッファに切り換えられる。また、この時一時バッファとしての物理バッファ１にはデータ転送先装置３０へ読み込むために新規なデータとして有効な転送データが蓄積されることとなるので「有効レジスタ５２の状態値」は「１」となる。
【００４２】
制御サイクル４では、「バッファ切り替え要求」が「０１」となった場合、すなわち転送先装置３０からバッファ切り替え要求３１がなされている。
【００４３】
制御サイクル４において、転送先装置３０からバッファ切り替え要求３１がなされているため、制御サイクル５において転送先バッファと一時バッファが切り替えられ、「状態レジスタ５１の状態値」は「２１３」から「２３１」となる。すなわち、物理バッファ３は転送先バッファから一時バッファに切り換えられ、物理バッファ１は一時バッファから転送先バッファに切り換えられる。また、この時一時バッファとしての物理バッファ３にはデータ転送先装置３０へ読み込むために新規なデータとして有効な転送データが蓄積されていないこととなるので「有効レジスタ５２の状態値」は「０」となる。また、この時一時バッファにはデータ転送先装置３０へ読み込むために新規なデータとして有効な転送データが存在しなくなるので、「有効レジスタ５２の状態値」は「０」となる。
【００４４】
制御サイクル６では、「バッファ切り替え要求」が「１１」となった場合、すなわち転送元装置２０からバッファ切り替え要求２１および転送先装置３０からバッファ切り替え要求３１がなされている。なお、バッファ切り替え要求２１は転送元装置２０から転送元バッファへ書き込みが行われた後にされるため、この状態では転送元装置２０から転送元バッファに転送データが既に書き込まれている。
【００４５】
制御サイクル６において、転送元装置２０および転送先装置３０からバッファ切り替え要求２１，３１がなされているため制御サイクル７において転送元バッファと転送先バッファが切り替えられ、「状態レジスタ５１の状態値」は「２３１」から「１３２」となる。
【００４６】
すなわち、物理バッファ１は転送先バッファから転送元に切り換えられ、物理バッファ２は転送元から転送先バッファに切り換えられる。また、この時一時バッファとしての物理バッファ１にはデータ転送先装置３０へ読み込むために新規なデータとして有効な転送データが蓄積されていないこととなるので「有効レジスタ５２の状態値」は「０」のままである。また、この時一時バッファにはデータ転送先装置３０へ読み込むために新規なデータとして有効な転送データが存在しなくなるので「有効レジスタ５２の状態値」は「０」となる。
【００４７】
なお、この実施の形態にかかるバッファリング装置１０は動作速度の異なる２つの装置間でのデータ転送に用いるものであるため、転送元装置２０の動作速度が転送先装置３０の動作速度より速い場合、転送元装置２０が転送データを転送元バッファに書き込む回数が転送先装置３０が転送データを転送先バッファから読み出す回数より多くなる。このため、転送先装置３０は転送元装置２０が最後に書き込んだ転送データのみ読み出すこととなる。同様に転送元装置２０の動作速度が転送先装置３０の動作速度より遅い場合、転送元装置２０が転送データを転送元バッファに書き込む回数が、転送先装置３０が転送データを転送先バッファから読み出す回数より少なくなる。このため、転送先装置３０は転送元装置２０が最後に書き込んだ同一の転送データを繰り返し読み出すこととなる。
【００４８】
また、この実施の形態で説明したバッファリング装置１０においては、同一の転送データであっても転送元装置２０は転送元バッファに転送データを書き込む度に調停装置５３にバッファ切り替え要求２１をすることとなり、この時すでにこの転送データが転送先装置３０に読み込まれた場合であっても有効バッファの状態値は「１」となり、転送先装置３０は同一の転送データを再度読み込む可能性がある。したがって、以下の手段によって同一の転送データが転送先装置３０に読み込まれないようにしている。転送元装置２０は転送元バッファに転送データを書き込む度に転送データに一意的な識別データを追加して転送する。そして、転送先装置３０は転送先バッファから転送データを読み出す度にこの識別データを判別し、転送データが最新のものであるか否か（すでに読み込まれた転送データであるか否か）を判断する。
【００４９】
このように実施の形態によれば、転送元装置２０からの転送データを転送先装置３０へ転送する場合、転送先装置３０が転送先バッファから転送データを読み出す直前に転送先装置３０がバッファ切り替え要求３１をしているため、最新データが保持された物理バッファを転送先バッファとして転送データを読み出せばよい。このため、転送先装置３０がバッファにアクセスしているか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのレジスタを操作する手順が不要となる。したがって、バッファ切り替えの制御装置の構成が簡単になり、データ転送の通信手段も簡素化される。
【００５０】
【発明の効果】
以上説明したとおり、この発明によれば、転送元装置からの転送データをバッファリング装置を介して転送先装置へ転送する場合、転送先装置が転送先バッファから転送データを読み出す直前に、転送先装置がバッファ切り替え要求をしているため、転送先装置がバッファにアクセスしているか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのレジスタを操作する手順が不要となる。このため、バッファ切り替えの制御装置の構成が簡単になり、データ転送の通信手段も簡素化されるという効果を奏する。
【図面の簡単な説明】
【図１】この発明の実施の形態にかかるバッファリング装置の構成を示す概略図である。
【図２】この発明の実施の形態にかかるバッファリング装置の動作の一部を示すフローチャートである。
【図３】この発明の実施の形態にかかるバッファリング装置の動作の一部を示すフローチャートである。
【図４】この発明の実施の形態にかかるバッファリング装置の動作の一部を示すフローチャートである。
【図５】この発明の実施の形態にかかるバッファリング装置の状態レジスタの状態値を示す図である。
【図６】この発明の実施の形態にかかるバッファリング装置の動作の一例を示すタイムチャートである。
【符号の説明】
１，２，３  物理バッファ、１０  バッファリング装置、２０  転送元装置、２１，３１  バッファ切り替え要求、３０  転送先装置、４１，４２  選択装置、５１  状態レジスタ、５２  有効レジスタ、５３  調停装置。
【図１】
2004272373.tif 000003
【図２】
2004272373.tif 000004
【図３】
2004272373.tif 000005
【図４】
2004272373.tif 000006
【図５】
2004272373.tif 000007
【図６】
2004272373.tif 000008