JP2004272373A - バッファリング装置 - Google Patents
バッファリング装置 Download PDFInfo
- Publication number
- JP2004272373A JP2004272373A JP2003058886A JP2003058886A JP2004272373A JP 2004272373 A JP2004272373 A JP 2004272373A JP 2003058886 A JP2003058886 A JP 2003058886A JP 2003058886 A JP2003058886 A JP 2003058886A JP 2004272373 A JP2004272373 A JP 2004272373A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- transfer
- data
- physical
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Transfer Systems (AREA)
Abstract
【課題】バッファ切り替えの制御装置の構成とデータ転送の通信手段を簡素化すること。
【解決手段】動作速度が異なるデータ転送元装置とデータ転送先装置の間のデータ転送を行うバッファリング装置において、転送元バッファ、転送先バッファおよび一時バッファが割り当てられる3つの物理バッファと、この割り当ての状態値を保持する状態レジスタ51と、一時バッファが保持する転送データはデータ転送先装置30へ読み込まれるために新規なデータとして有効であるか否かの状態値を保持する有効レジスタ52と、転送元装置20から送られる3つの物理バッファの割り当ての切り替え要求21および転送先装置30から送られる3つの物理バッファの割り当ての切り替え要求31に基づいて3つの物理バッファの割り当てを切り替えるよう制御する調停装置53を備える。
【選択図】 図1
【解決手段】動作速度が異なるデータ転送元装置とデータ転送先装置の間のデータ転送を行うバッファリング装置において、転送元バッファ、転送先バッファおよび一時バッファが割り当てられる3つの物理バッファと、この割り当ての状態値を保持する状態レジスタ51と、一時バッファが保持する転送データはデータ転送先装置30へ読み込まれるために新規なデータとして有効であるか否かの状態値を保持する有効レジスタ52と、転送元装置20から送られる3つの物理バッファの割り当ての切り替え要求21および転送先装置30から送られる3つの物理バッファの割り当ての切り替え要求31に基づいて3つの物理バッファの割り当てを切り替えるよう制御する調停装置53を備える。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は動作速度が異なる2つの装置間でデータ転送するために用いるバッファリング装置に関するものである。
【0002】
【従来の技術】
従来、動作速度の異なる2つの装置間におけるデータ転送は動作速度の遅い装置のデータ処理に律速され、転送元装置または転送先装置が待機する時間が長かった。そこで、転送元装置のデータをいったんバッファリング装置に蓄え、このバッファリング装置から転送先装置へデータを送り出すことによって転送元装置や転送先装置が待機することなくデータ転送を行っている。
【0003】
特許文献1に記載の従来技術によると、動作速度が異なる2つの装置間でデータ転送するために用いるバッファリング装置において、バッファリング装置は、例えば3つの物理バッファを備えており、データ転送元装置(データ提供部)がデータを書き込むためにアクセスする転送元バッファ(書き込みバッファ)と、データ転送先装置(データ参照部)がデータを読み出すためにアクセスする転送先バッファ(読み出しバッファ)と、データ転送元装置とデータ転送先装置のどちらからもアクセスしない一時バッファ(格納バッファ)で構成されている。そして、バッファ制御部によって切り替えの制御がされているバッファセレクタは、データ転送元装置とデータ転送先装置がアクセスする物理バッファを3つの物理バッファから選択している。
【0004】
バッファ制御部は、先述した各バッファの状態値を保持するバッファ情報レジスタと、データ転送元装置が転送元バッファに転送データの書き込みを終了した後に、データ転送元装置からのバッファの切り替え要求を書き込むバッファ切り替え要求レジスタと、一時バッファに対応する物理バッファにデータ転送先装置がアクセスすべきデータが保存されているか否かを示す一時バッファ有効フラグと、データ転送先装置が転送先バッファから転送データを読み込み中に、転送先バッファが転送元バッファおよび一時バッファに切り替わることを禁止する要求を書き込むバッファ切り替え禁止レジスタと、各レジスタの状態値に基づいてバッファ切り替えを制御するバッファ制御装置から構成されている。
【0005】
バッファ制御装置は、バッファ切り替え要求レジスタにバッファを切り替える要求が書き込まれた状態であって、かつバッファ切り替え禁止レジスタにバッファ切り替えを禁止する要求が書き込まれていない状態の場合、転送元バッファとデータ転送先装置がアクセスする転送先バッファの夫々に対応している物理バッファを切り替えるように制御している。これによってデータ転送元装置によって書き込まれた転送元バッファの転送データが転送先バッファに移り、転送データは転送先バッファからデータ転送先装置に読み込まれることとなる。
【0006】
バッファ切り替え要求レジスタにバッファを切り替える要求が書き込まれた状態であって、かつバッファ切り替え禁止レジスタにバッファ切り替えを禁止する要求が書き込まれている状態の場合、転送元バッファと一時バッファの夫々に対応している物理バッファを切り替えるように制御している。これによってデータ転送元装置によって書き込まれた転送元バッファの転送データが一時バッファに移り、転送データが一時バッファに蓄積されることとなる。
【0007】
一時バッファにデータ転送先装置がアクセスすべきデータが保存されていることを示す値が一時バッファ有効フラグに書き込まれている状態であって、かつバッファ切り替え禁止レジスタにバッファ切り替えを禁止する要求が書き込まれていない状態の場合、データ転送先装置がアクセスする転送先バッファと一時バッファの夫々に対応する物理バッファを切り替えるように制御している。これによって一時バッファに蓄積されていた転送データが転送先バッファに移り、転送データは転送先バッファからデータ転送先装置に読み込まれることとなる。
【0008】
このように、転送元装置と転送先装置がアクセスするバッファを順次切り替えることにより、データ転送元装置からデータ転送先装置へのデータ転送を実現している。データ転送元装置とデータ転送先装置にはそれぞれアクセスすべき物理バッファが常に割り当てられので、データ転送元装置とデータ転送先装置が物理バッファへアクセスする時において物理バッファを割り当てるための時間を必要とせずアクセスするのを待たされることがない。また、データ転送先装置は物理バッファへアクセスを開始した時点において、物理バッファへの書き込みが完了した新規な転送データを格納する物理バッファからデータを読み込むことが可能となる。
【0009】
【特許文献1】
特開2001−282650号公報(第6〜8,13頁)
【0010】
【発明が解決しようとする課題】
しかしながら、上記特許文献1に記載の従来技術によれば、転送元装置がバッファ切り替え要求する時点で、転送先装置がアクセスするバッファの切り替えも制御している。このため、転送先装置がバッファにアクセスしているか否かによって転送先装置がアクセスするバッファの切り替えを禁止するか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのこのレジスタを操作する手順が必要であるという問題がある。
【0011】
この発明は上記に鑑みてなされたものであって、バッファ切り替えの制御装置の構成とデータ転送の通信手段を簡素化することができるバッファリング装置を得ることを目的とする。
【0012】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するために、この発明にかかるバッファリング装置にあっては、動作速度が異なるデータ転送元装置とデータ転送先装置の間のデータ転送を行うバッファリング装置において、前記データ転送元装置からの転送データを書き込むための転送元バッファ、前記データ転送先装置へ転送データ読み出すための転送先バッファ、および前記転送元装置と前記転送先装置のいずれにも一時的に接続されていない一時バッファが1つずつ割り当てられその割り当て状態の変更が可能な3つの物理バッファと、前記転送元バッファ、前記転送先バッファおよび前記一時バッファを前記3つの物理バッファのうちどの物理バッファに割り当てるかの状態値を保持する状態レジスタと、前記状態レジスタの状態値に基づいて前記データ転送元装置からの転送データを前記物理バッファの中に書き込むため前記3つの物理バッファの中から1つの物理バッファを選択して転送元バッファとする第1の選択装置と、前記状態レジスタの状態値に基づいて前記3つの物理バッファの1つから前記データ転送先装置へ転送データを読み込ませるため前記3つの物理バッファの中から1つの物理バッファを選択して転送先バッファとする第2の選択装置と、前記一時バッファが保持する転送データが前記データ転送先装置へ読み込まれるために新規なデータとして有効であるか否かの状態値を保持する有効レジスタと、転送元装置から送られる前記3つの物理バッファの割り当ての切り替えを要求する第1の要求および転送先装置から送られる前記3つの物理バッファの割り当ての切り替えを要求する第2の要求に基づいて前記状態レジスタおよび前記有効レジスタの状態値を遷移させて前記3つの物理バッファの割り当てを切り替えるよう制御する調停装置とを備えたことを特徴とする。
【0013】
この発明によれば、転送先装置が転送先バッファから転送データを読み出す直前に、転送先装置がバッファ切り替え要求をしているため、最新データが保持された物理バッファを転送先バッファとなるようにすれば良い。このため、転送先装置がバッファにアクセスしているか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのレジスタを操作する手順が不要となる。
【0014】
【発明の実施の形態】
以下、この発明にかかるバッファリング装置の実施の形態を図面を参照して詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0015】
図1〜4に従ってこの発明の実施の形態について説明する。図1はこの発明のバッファリング装置10および転送元装置20、転送先装置30の構成を示す概略図である。バッファリング装置10はバッファ容量が同じである3つの物理バッファ1〜3を備え、各物理バッファ1〜3は、転送元装置20から転送される転送データを書き込むための転送元バッファ、転送されてきた転送データを転送先装置30が読み出すための転送先バッファおよび転送元装置20と転送先装置30のいずれにも一時的に接続されていない一時バッファとして機能する。状態レジスタ51は例えば、物理バッファ1は転送元バッファ、物理バッファ2は転送先バッファ、物理バッファ3は一時バッファと云うように各物理バッファ1〜3に割り当てられたバッファの機能(転送元バッファ、転送先バッファ、一時バッファのどれであるか)を示す状態値を保持する。この状態値は、後述する調停装置53からバッファ割り当ての切り替え命令が来るまで保持される。
【0016】
選択装置41は転送元装置20と接続され、状態レジスタ51の状態値に基づいてデータ転送元装置20からの転送データを3つの物理バッファのうちの1つの物理バッファの中に書き込むため、3つの物理バッファの中から1つの物理バッファを選択する。選択装置41によって選択された物理バッファが転送元バッファとなる。
【0017】
選択装置42は、転送先装置30と接続され状態レジスタ51の値に基づいて3つの物理バッファのうちの1つの物理バッファからデータ転送先装置30へ転送データを読み込ませるため、3つの物理バッファの中から1つの物理バッファを選択する。選択装置42によって選択された物理バッファが転送先バッファとなる。
【0018】
そして、選択装置41と選択装置42のいずれにも選択されない物理バッファが一時バッファとなる。有効レジスタ52は、状態レジスタ51と接続されており、一時バッファが保持する転送データが転送先装置30へ読み込むために新規なデータとして有効であるか否かの状態値を保持する。
【0019】
調停装置53には、転送元装置20および転送先装置30からバッファ切り替え要求が入力されている。調停装置53は、転送元装置20からのバッファ切り替え要求21あるいは転送先装置30からのバッファ切り替え要求31に基づいて状態レジスタ51および有効レジスタ52の状態値を遷移させて3つの物理バッファ1〜3の割り当てを切り替えさせるよう制御する。
【0020】
つぎに、この発明の実施の形態にかかるバッファリング装置10の動作について図2〜図4に示すフローチャートに従って説明する。
【0021】
図2は転送元装置20から物理バッファの1つに転送データの書き込みが行われる場合を示したフローチャートである。転送元装置20からの転送データはバッファリング装置10の選択装置41に転送され(ステップS100)、物理バッファの1つである転送元バッファに転送データの書き込みが行われる(ステップS110)。ここで、3つの物理バッファの中からどの物理バッファを転送元バッファとするかは、状態レジスタ51の状態値に基づき選択装置41が3つの物理バッファの中から1つの物理バッファを選択することにより行われる。
【0022】
この書き込み終了後に、転送元装置20から調停装置53にバッファ切り替え要求21を送信する(ステップS120)。これにより、調停装置53は3つの物理バッファのうち転送元バッファと一時バッファに対応する物理バッファを切り替えるよう状態レジスタ51のバッファ割り当ての状態値を遷移させる。この割り当ての状態値の遷移によって転送元バッファと一時バッファが切り替わる(ステップS130)。すなわち、転送データの書き込みが終了した旧転送元バッファは一時バッファとなり、旧一時バッファは転送元バッファとなって新たな転送データの書き込みが可能となる。(ステップS140)、また、調停装置53は、転送元バッファから一時バッファに切り替えられた一時バッファの有効/無効を示す有効レジスタ52の状態値を有効とするよう遷移させる(ステップS150)。転送元装置20からバッファ切り替え要求21が入力される度に、上記のような転送元バッファと一時バッファとの相互切り換えが行われる。
【0023】
図3は物理バッファの1つから転送先装置30への転送データの読み込みが行われる場合を示したフローチャートである。転送先装置30は、転送先バッファから転送データの読み出しを行う直前にバッファ切り替え要求31を調停装置53に送信する(ステップS200)。調停装置53は有効レジスタ52の状態値が有効であるか否かすなわち一時バッファに転送先装置が読み出し可能な新規なデータが蓄積されているか否かを判断する(ステップS210)。
【0024】
ここで、有効レジスタ52の状態値が有効である場合、調停装置53は3つの物理バッファのうち一時バッファに対応する物理バッファと転送先バッファに対応する物理バッファを切り替えるよう状態レジスタ51のバッファ割り当ての状態値を遷移させる。この割り当ての状態値の遷移によって、転送先バッファと一時バッファが切り替わり(ステップS220)、旧転送先バッファは一時バッファとなり、旧一時バッファは転送先バッファとなってこの転送先バッファ中の新規な転送データが転送先装置30に読み込まれる(ステップS230)。さらに、切り換えられた一時バッファの中には転送先装置30に読み出すことが可能な新規なデータが入っていない状態になるので、有効レジスタ52の状態値を無効とするよう遷移させる(ステップS240)。
【0025】
一方、ステップ210の判定において有効レジスタ52の状態値が無効である場合は、調停装置53は、状態レジスタ51のバッファ割り当ての状態値を保持する。すなわち、この場合は、状態レジスタ51のバッファ割り当ての状態値が切り替えられることはない。さらに、この場合は、転送先バッファと一時バッファが切り替わらないため、有効レジスタ52の状態値も無効のまま保持される(ステップS260)。
【0026】
転送先装置30からバッファ切り替え要求31が入力される度に、上記のような転送先バッファと一時バッファとの相互切り換えが行われる。
【0027】
図4は転送元装置20と転送先装置30の両方から同時にバッファ切り替えの要求がされた場合を示すフローチャートである。転送元装置20から調停装置53へのバッファ切り替え要求21と転送先バッファから調停装置53へのバッファ切り替え要求31が同時に行われた場合(ステップS300)、調停装置53は3つの物理バッファのうち、転送元バッファと転送先バッファに対応する物理バッファを切り替えるよう状態レジスタ51のバッファ割り当ての状態値を遷移させる(ステップS310)。すなわち、旧転送元バッファは転送先バッファに切り換え、旧転送先バッファは転送元バッファに切り換える。さらに、この場合、一時バッファに蓄積されていたデータは新規なデータではなくなるため、有効レジスタ52の状態値を無効とするよう遷移させる。ここで、転送元装置20から調停装置53へバッファ切り替え要求21がなされた場合とは、転送元装置20からの転送データを転送元バッファに書き込んだ直後であり、転送元バッファに新規な転送データが蓄積された状態である。したがって、転送元バッファを転送先バッファに切り替えれば(ステップS320)、転送元バッファに入っていた転送データが転送先バッファに入っている状態となる。これにより転送先バッファ中の新規な転送データが転送先装置30に読み込まれることとなる(ステップS330)。
【0028】
このように、調停装置53は、状態レジスタ51の現在のバッファ割り当ての状態値、有効レジスタ52の現在の状態値、転送元装置20および転送先装置30から調停装置53に転送されるバッファ切り替え要求21,31の情報に基づいて、状態レジスタ51の次のバッファ割り当ての状態値、有効レジスタ52の次の状態値を決定している。図5はこれらの各状態値を示した図である。
【0029】
図5において「現在の状態値」の「状態レジスタ51の状態値」の欄において、1,2,3の数字はそれぞれ物理バッファ1、物理バッファ2、物理バッファ3を示しており、3つの数字は左の数字から転送元バッファ、一時バッファ、転送先バッファに割り当てられる物理バッファを示している。したがって例えば、転送元バッファが物理バッファ1に割り当てられ、一時バッファが物理バッファ2に割り当てられ、さらに転送先バッファが物理バッファ3に割り当てられている時、「現在の状態」の「状態レジスタ51の状態値」は「123」と示される。同様に「次の状態値」における「状態レジスタ51の状態値」の欄においても3つの数字で各物理バッファの割り当てを示している。
【0030】
「現在の状態値」および「次の状態値」における「有効レジスタ52の状態値」は一時バッファ中の転送先データが転送先装置30に読み出されるために有効か否かを示しており、有効の場合は「1」を示し、無効の場合は「0」を示している。
【0031】
「現在の状態値」における「バッファ切り替え要求」の欄は転送元装置20および転送先装置30から調停装置53へのバッファの切り替え要求の有無を示している。2つの数字は左の数字が転送元装置20からのバッファ切り替え要求21を示し、右側の数字が転送先装置30からのバッファ切り替え要求31を示している。ここでは、バッファ切り替え要求がある場合を「1」で示し、バッファ切り替え要求がない場合を「0」で示している。したがって例えば、転送元装置20からバッファ切り替え要求21があり、転送先装置30からバッファ切り替え要求31がない場合は、「10」と示している。
【0032】
図5において例えば、「現在の状態値」の「状態レジスタ51の状態値」が「123」で示され、「有効レジスタ52の状態値」が「1」で示され、「バッファ切り替え要求」が「01」で示されている場合について説明する。この場合、「有効レジスタ52の状態値」が「1」であるため、一時バッファ(物理バッファ2)には転送先装置30に転送するために新規な転送データが蓄積されている。また、「バッファ切り替え要求」が「01」であるため、転送先装置30のみからバッファ切り替え要求31がなされている。したがって、状態レジスタ51の状態値は一時バッファと転送先バッファを切り替える。すなわち、旧一時バッファである物理バッファ2が転送先バッファに切り換えられ、旧転送先バッファである物理バッファ3が一時バッファに切り換えられる。この状態を示したのが「次の状態値」における「状態レジスタ51の状態値」であり、「132」で示される。これにより転送先装置30は転送先バッファに切り換えられた物理バッファ2から転送データを読み出す。また、旧一時バッファである物理バッファ2に蓄積されていた転送データは転送先装置30が読み出すために新規なデータではなくなる。この状態を示したのが「次の状態値」における「有効レジスタ52の状態値」であり、「0」で示される。
【0033】
また、「現在の状態値」の「状態レジスタ51の状態値」が「123」で示され、「有効レジスタ52の状態値」が「0」で示され、「バッファ切り替え要求」が「10」で示されている場合は、「有効レジスタ52の状態値」が「0」であるため、一時バッファ(物理バッファ2)には転送先装置30に転送するために新規な転送データが蓄積されていない。また、「バッファ切り替え要求」が「10」であるため、転送元装置20のみからバッファ切り替え要求21がなされている。したがって、状態レジスタ51の状態値は一時バッファと転送元バッファを切り替える。すなわち、旧一時バッファである物理バッファ2が転送元バッファに切り換えられ、旧転送元バッファである物理バッファ1が一時バッファに切り換えられる。この状態を示したのが「次の状態値」における「状態レジスタ51の状態値」であり、「213」で示される。これにより一時バッファに切り換えられた物理バッファ1に蓄積された転送データは転送先装置30が読み出すために最新のデータとなる。この状態を示したのが「次の状態値」における「有効レジスタ52の状態値」であり、「1」で示される。
【0034】
このような動作を行う実施の形態にかかるバッファリング装置10の制御サイクルの一例を示したのが図6である。図6において制御サイクル1〜7は制御サイクルを単位時間ごとに区切ったものである。バッファリング装置10の状態遷移の制御を行う間隔を1単位時間とする。そしてバッファ切り替え要求21,31は各単位時間についてのみ有効なパルス信号とする。
【0035】
図6においては、制御サイクル2と制御サイクル6で転送元装置20からバッファ切り替え要求21がなされている。同様に、「転送先装置30からのバッファ切り替え要求31」において、制御サイクル4と制御サイクル6で転送先装置30からバッファ切り替え要求31がなされている。「バッファ切り替え要求」における2つの数字は図5と同様に左の数字が転送元装置20からのバッファ切り替え要求21を示し、右側の数字が転送先装置30からのバッファ切り替え要求31を示している。ここでも、バッファ切り替え要求がある場合を「1」で示し、バッファ切り替え要求がない場合を「0」で示している。したがって例えば、制御サイクル2では転送元装置20からバッファ切り替え要求21があり、転送先装置30からバッファ切り替え要求31がないため、「10」と示している。
【0036】
バッファ割り当ての状態を示す「状態レジスタ51の状態値」は、図5と同様に1,2,3の数字はそれぞれ物理バッファ1、物理バッファ2、物理バッファ3を示しており、3つの数字は左の数字から転送元バッファ、一時バッファ、転送先バッファに割り当てられる物理バッファを示している。したがって例えば、制御サイクル1において状態レジスタ51の状態値は「123」と示されており、転送元バッファが物理バッファ1に割り当てられ、一時バッファが物理バッファ2に割り当てられ、そして転送先バッファが物理バッファ3に割り当てられている状態を示している。
【0037】
「有効レジスタ52の状態値」は一時バッファが有効か否かを示しており、有効の場合は「1」を示し、無効の場合は「0」を示している。したがって例えば、制御サイクル3において有効レジスタ52の状態値は「1」と示されており、一時バッファが保持する転送データがデータ転送先装置30へ読み込まれるために、新規なデータとして有効であることを示している。
【0038】
つぎに、バッファの切り替えにより、転送元装置20から転送先装置30へ転送データが転送される過程を図6を用いて説明する。
【0039】
制御サイクル1において「状態レジスタ51の状態値」は「123」と示されており、転送元バッファが物理バッファ1に割り当てられ、一時バッファが物理バッファ2に割り当てられ、さらに転送先バッファが物理バッファ3に割り当てられている。この状態で転送元装置20からの転送データは転送元バッファとしての物理バッファ1に蓄積されている。ここでは、「有効レジスタ52の状態値」が「0」であり、一時バッファとしての物理バッファ2が保持する転送データはデータ転送先装置30へ読み込むために新規なデータとして有効でない。また、「バッファ切り替え要求」が「00」であり、バッファの切り替え要求がなされていないため、各物理バッファの割り当ての状態をこのまま保持する。
【0040】
制御サイクル2では、「バッファ切り替え要求」が「10」となった場合、すなわち転送元装置20からバッファ切り替え要求21がなされている。この場合、「バッファ切り替え要求」が発生した制御サイクルの次の制御サイクルで実際にバッファの割り当ての切換えが行われる。
【0041】
制御サイクル2において、転送元装置20からバッファ切り替え要求21がなされているため制御サイクル3において転送元バッファと一時バッファが切り替えられ、「状態レジスタ51の状態値」は「123」から「213」となる。すなわち、物理バッファ1は転送元バッファから一時バッファに切り換えられ、物理バッファ2は一時バッファから転送元バッファに切り換えられる。また、この時一時バッファとしての物理バッファ1にはデータ転送先装置30へ読み込むために新規なデータとして有効な転送データが蓄積されることとなるので「有効レジスタ52の状態値」は「1」となる。
【0042】
制御サイクル4では、「バッファ切り替え要求」が「01」となった場合、すなわち転送先装置30からバッファ切り替え要求31がなされている。
【0043】
制御サイクル4において、転送先装置30からバッファ切り替え要求31がなされているため、制御サイクル5において転送先バッファと一時バッファが切り替えられ、「状態レジスタ51の状態値」は「213」から「231」となる。すなわち、物理バッファ3は転送先バッファから一時バッファに切り換えられ、物理バッファ1は一時バッファから転送先バッファに切り換えられる。また、この時一時バッファとしての物理バッファ3にはデータ転送先装置30へ読み込むために新規なデータとして有効な転送データが蓄積されていないこととなるので「有効レジスタ52の状態値」は「0」となる。また、この時一時バッファにはデータ転送先装置30へ読み込むために新規なデータとして有効な転送データが存在しなくなるので、「有効レジスタ52の状態値」は「0」となる。
【0044】
制御サイクル6では、「バッファ切り替え要求」が「11」となった場合、すなわち転送元装置20からバッファ切り替え要求21および転送先装置30からバッファ切り替え要求31がなされている。なお、バッファ切り替え要求21は転送元装置20から転送元バッファへ書き込みが行われた後にされるため、この状態では転送元装置20から転送元バッファに転送データが既に書き込まれている。
【0045】
制御サイクル6において、転送元装置20および転送先装置30からバッファ切り替え要求21,31がなされているため制御サイクル7において転送元バッファと転送先バッファが切り替えられ、「状態レジスタ51の状態値」は「231」から「132」となる。
【0046】
すなわち、物理バッファ1は転送先バッファから転送元に切り換えられ、物理バッファ2は転送元から転送先バッファに切り換えられる。また、この時一時バッファとしての物理バッファ1にはデータ転送先装置30へ読み込むために新規なデータとして有効な転送データが蓄積されていないこととなるので「有効レジスタ52の状態値」は「0」のままである。また、この時一時バッファにはデータ転送先装置30へ読み込むために新規なデータとして有効な転送データが存在しなくなるので「有効レジスタ52の状態値」は「0」となる。
【0047】
なお、この実施の形態にかかるバッファリング装置10は動作速度の異なる2つの装置間でのデータ転送に用いるものであるため、転送元装置20の動作速度が転送先装置30の動作速度より速い場合、転送元装置20が転送データを転送元バッファに書き込む回数が転送先装置30が転送データを転送先バッファから読み出す回数より多くなる。このため、転送先装置30は転送元装置20が最後に書き込んだ転送データのみ読み出すこととなる。同様に転送元装置20の動作速度が転送先装置30の動作速度より遅い場合、転送元装置20が転送データを転送元バッファに書き込む回数が、転送先装置30が転送データを転送先バッファから読み出す回数より少なくなる。このため、転送先装置30は転送元装置20が最後に書き込んだ同一の転送データを繰り返し読み出すこととなる。
【0048】
また、この実施の形態で説明したバッファリング装置10においては、同一の転送データであっても転送元装置20は転送元バッファに転送データを書き込む度に調停装置53にバッファ切り替え要求21をすることとなり、この時すでにこの転送データが転送先装置30に読み込まれた場合であっても有効バッファの状態値は「1」となり、転送先装置30は同一の転送データを再度読み込む可能性がある。したがって、以下の手段によって同一の転送データが転送先装置30に読み込まれないようにしている。転送元装置20は転送元バッファに転送データを書き込む度に転送データに一意的な識別データを追加して転送する。そして、転送先装置30は転送先バッファから転送データを読み出す度にこの識別データを判別し、転送データが最新のものであるか否か(すでに読み込まれた転送データであるか否か)を判断する。
【0049】
このように実施の形態によれば、転送元装置20からの転送データを転送先装置30へ転送する場合、転送先装置30が転送先バッファから転送データを読み出す直前に転送先装置30がバッファ切り替え要求31をしているため、最新データが保持された物理バッファを転送先バッファとして転送データを読み出せばよい。このため、転送先装置30がバッファにアクセスしているか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのレジスタを操作する手順が不要となる。したがって、バッファ切り替えの制御装置の構成が簡単になり、データ転送の通信手段も簡素化される。
【0050】
【発明の効果】
以上説明したとおり、この発明によれば、転送元装置からの転送データをバッファリング装置を介して転送先装置へ転送する場合、転送先装置が転送先バッファから転送データを読み出す直前に、転送先装置がバッファ切り替え要求をしているため、転送先装置がバッファにアクセスしているか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのレジスタを操作する手順が不要となる。このため、バッファ切り替えの制御装置の構成が簡単になり、データ転送の通信手段も簡素化されるという効果を奏する。
【図面の簡単な説明】
【図1】この発明の実施の形態にかかるバッファリング装置の構成を示す概略図である。
【図2】この発明の実施の形態にかかるバッファリング装置の動作の一部を示すフローチャートである。
【図3】この発明の実施の形態にかかるバッファリング装置の動作の一部を示すフローチャートである。
【図4】この発明の実施の形態にかかるバッファリング装置の動作の一部を示すフローチャートである。
【図5】この発明の実施の形態にかかるバッファリング装置の状態レジスタの状態値を示す図である。
【図6】この発明の実施の形態にかかるバッファリング装置の動作の一例を示すタイムチャートである。
【符号の説明】
1,2,3 物理バッファ、10 バッファリング装置、20 転送元装置、21,31 バッファ切り替え要求、30 転送先装置、41,42 選択装置、51 状態レジスタ、52 有効レジスタ、53 調停装置。
【発明の属する技術分野】
この発明は動作速度が異なる2つの装置間でデータ転送するために用いるバッファリング装置に関するものである。
【0002】
【従来の技術】
従来、動作速度の異なる2つの装置間におけるデータ転送は動作速度の遅い装置のデータ処理に律速され、転送元装置または転送先装置が待機する時間が長かった。そこで、転送元装置のデータをいったんバッファリング装置に蓄え、このバッファリング装置から転送先装置へデータを送り出すことによって転送元装置や転送先装置が待機することなくデータ転送を行っている。
【0003】
特許文献1に記載の従来技術によると、動作速度が異なる2つの装置間でデータ転送するために用いるバッファリング装置において、バッファリング装置は、例えば3つの物理バッファを備えており、データ転送元装置(データ提供部)がデータを書き込むためにアクセスする転送元バッファ(書き込みバッファ)と、データ転送先装置(データ参照部)がデータを読み出すためにアクセスする転送先バッファ(読み出しバッファ)と、データ転送元装置とデータ転送先装置のどちらからもアクセスしない一時バッファ(格納バッファ)で構成されている。そして、バッファ制御部によって切り替えの制御がされているバッファセレクタは、データ転送元装置とデータ転送先装置がアクセスする物理バッファを3つの物理バッファから選択している。
【0004】
バッファ制御部は、先述した各バッファの状態値を保持するバッファ情報レジスタと、データ転送元装置が転送元バッファに転送データの書き込みを終了した後に、データ転送元装置からのバッファの切り替え要求を書き込むバッファ切り替え要求レジスタと、一時バッファに対応する物理バッファにデータ転送先装置がアクセスすべきデータが保存されているか否かを示す一時バッファ有効フラグと、データ転送先装置が転送先バッファから転送データを読み込み中に、転送先バッファが転送元バッファおよび一時バッファに切り替わることを禁止する要求を書き込むバッファ切り替え禁止レジスタと、各レジスタの状態値に基づいてバッファ切り替えを制御するバッファ制御装置から構成されている。
【0005】
バッファ制御装置は、バッファ切り替え要求レジスタにバッファを切り替える要求が書き込まれた状態であって、かつバッファ切り替え禁止レジスタにバッファ切り替えを禁止する要求が書き込まれていない状態の場合、転送元バッファとデータ転送先装置がアクセスする転送先バッファの夫々に対応している物理バッファを切り替えるように制御している。これによってデータ転送元装置によって書き込まれた転送元バッファの転送データが転送先バッファに移り、転送データは転送先バッファからデータ転送先装置に読み込まれることとなる。
【0006】
バッファ切り替え要求レジスタにバッファを切り替える要求が書き込まれた状態であって、かつバッファ切り替え禁止レジスタにバッファ切り替えを禁止する要求が書き込まれている状態の場合、転送元バッファと一時バッファの夫々に対応している物理バッファを切り替えるように制御している。これによってデータ転送元装置によって書き込まれた転送元バッファの転送データが一時バッファに移り、転送データが一時バッファに蓄積されることとなる。
【0007】
一時バッファにデータ転送先装置がアクセスすべきデータが保存されていることを示す値が一時バッファ有効フラグに書き込まれている状態であって、かつバッファ切り替え禁止レジスタにバッファ切り替えを禁止する要求が書き込まれていない状態の場合、データ転送先装置がアクセスする転送先バッファと一時バッファの夫々に対応する物理バッファを切り替えるように制御している。これによって一時バッファに蓄積されていた転送データが転送先バッファに移り、転送データは転送先バッファからデータ転送先装置に読み込まれることとなる。
【0008】
このように、転送元装置と転送先装置がアクセスするバッファを順次切り替えることにより、データ転送元装置からデータ転送先装置へのデータ転送を実現している。データ転送元装置とデータ転送先装置にはそれぞれアクセスすべき物理バッファが常に割り当てられので、データ転送元装置とデータ転送先装置が物理バッファへアクセスする時において物理バッファを割り当てるための時間を必要とせずアクセスするのを待たされることがない。また、データ転送先装置は物理バッファへアクセスを開始した時点において、物理バッファへの書き込みが完了した新規な転送データを格納する物理バッファからデータを読み込むことが可能となる。
【0009】
【特許文献1】
特開2001−282650号公報(第6〜8,13頁)
【0010】
【発明が解決しようとする課題】
しかしながら、上記特許文献1に記載の従来技術によれば、転送元装置がバッファ切り替え要求する時点で、転送先装置がアクセスするバッファの切り替えも制御している。このため、転送先装置がバッファにアクセスしているか否かによって転送先装置がアクセスするバッファの切り替えを禁止するか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのこのレジスタを操作する手順が必要であるという問題がある。
【0011】
この発明は上記に鑑みてなされたものであって、バッファ切り替えの制御装置の構成とデータ転送の通信手段を簡素化することができるバッファリング装置を得ることを目的とする。
【0012】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するために、この発明にかかるバッファリング装置にあっては、動作速度が異なるデータ転送元装置とデータ転送先装置の間のデータ転送を行うバッファリング装置において、前記データ転送元装置からの転送データを書き込むための転送元バッファ、前記データ転送先装置へ転送データ読み出すための転送先バッファ、および前記転送元装置と前記転送先装置のいずれにも一時的に接続されていない一時バッファが1つずつ割り当てられその割り当て状態の変更が可能な3つの物理バッファと、前記転送元バッファ、前記転送先バッファおよび前記一時バッファを前記3つの物理バッファのうちどの物理バッファに割り当てるかの状態値を保持する状態レジスタと、前記状態レジスタの状態値に基づいて前記データ転送元装置からの転送データを前記物理バッファの中に書き込むため前記3つの物理バッファの中から1つの物理バッファを選択して転送元バッファとする第1の選択装置と、前記状態レジスタの状態値に基づいて前記3つの物理バッファの1つから前記データ転送先装置へ転送データを読み込ませるため前記3つの物理バッファの中から1つの物理バッファを選択して転送先バッファとする第2の選択装置と、前記一時バッファが保持する転送データが前記データ転送先装置へ読み込まれるために新規なデータとして有効であるか否かの状態値を保持する有効レジスタと、転送元装置から送られる前記3つの物理バッファの割り当ての切り替えを要求する第1の要求および転送先装置から送られる前記3つの物理バッファの割り当ての切り替えを要求する第2の要求に基づいて前記状態レジスタおよび前記有効レジスタの状態値を遷移させて前記3つの物理バッファの割り当てを切り替えるよう制御する調停装置とを備えたことを特徴とする。
【0013】
この発明によれば、転送先装置が転送先バッファから転送データを読み出す直前に、転送先装置がバッファ切り替え要求をしているため、最新データが保持された物理バッファを転送先バッファとなるようにすれば良い。このため、転送先装置がバッファにアクセスしているか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのレジスタを操作する手順が不要となる。
【0014】
【発明の実施の形態】
以下、この発明にかかるバッファリング装置の実施の形態を図面を参照して詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0015】
図1〜4に従ってこの発明の実施の形態について説明する。図1はこの発明のバッファリング装置10および転送元装置20、転送先装置30の構成を示す概略図である。バッファリング装置10はバッファ容量が同じである3つの物理バッファ1〜3を備え、各物理バッファ1〜3は、転送元装置20から転送される転送データを書き込むための転送元バッファ、転送されてきた転送データを転送先装置30が読み出すための転送先バッファおよび転送元装置20と転送先装置30のいずれにも一時的に接続されていない一時バッファとして機能する。状態レジスタ51は例えば、物理バッファ1は転送元バッファ、物理バッファ2は転送先バッファ、物理バッファ3は一時バッファと云うように各物理バッファ1〜3に割り当てられたバッファの機能(転送元バッファ、転送先バッファ、一時バッファのどれであるか)を示す状態値を保持する。この状態値は、後述する調停装置53からバッファ割り当ての切り替え命令が来るまで保持される。
【0016】
選択装置41は転送元装置20と接続され、状態レジスタ51の状態値に基づいてデータ転送元装置20からの転送データを3つの物理バッファのうちの1つの物理バッファの中に書き込むため、3つの物理バッファの中から1つの物理バッファを選択する。選択装置41によって選択された物理バッファが転送元バッファとなる。
【0017】
選択装置42は、転送先装置30と接続され状態レジスタ51の値に基づいて3つの物理バッファのうちの1つの物理バッファからデータ転送先装置30へ転送データを読み込ませるため、3つの物理バッファの中から1つの物理バッファを選択する。選択装置42によって選択された物理バッファが転送先バッファとなる。
【0018】
そして、選択装置41と選択装置42のいずれにも選択されない物理バッファが一時バッファとなる。有効レジスタ52は、状態レジスタ51と接続されており、一時バッファが保持する転送データが転送先装置30へ読み込むために新規なデータとして有効であるか否かの状態値を保持する。
【0019】
調停装置53には、転送元装置20および転送先装置30からバッファ切り替え要求が入力されている。調停装置53は、転送元装置20からのバッファ切り替え要求21あるいは転送先装置30からのバッファ切り替え要求31に基づいて状態レジスタ51および有効レジスタ52の状態値を遷移させて3つの物理バッファ1〜3の割り当てを切り替えさせるよう制御する。
【0020】
つぎに、この発明の実施の形態にかかるバッファリング装置10の動作について図2〜図4に示すフローチャートに従って説明する。
【0021】
図2は転送元装置20から物理バッファの1つに転送データの書き込みが行われる場合を示したフローチャートである。転送元装置20からの転送データはバッファリング装置10の選択装置41に転送され(ステップS100)、物理バッファの1つである転送元バッファに転送データの書き込みが行われる(ステップS110)。ここで、3つの物理バッファの中からどの物理バッファを転送元バッファとするかは、状態レジスタ51の状態値に基づき選択装置41が3つの物理バッファの中から1つの物理バッファを選択することにより行われる。
【0022】
この書き込み終了後に、転送元装置20から調停装置53にバッファ切り替え要求21を送信する(ステップS120)。これにより、調停装置53は3つの物理バッファのうち転送元バッファと一時バッファに対応する物理バッファを切り替えるよう状態レジスタ51のバッファ割り当ての状態値を遷移させる。この割り当ての状態値の遷移によって転送元バッファと一時バッファが切り替わる(ステップS130)。すなわち、転送データの書き込みが終了した旧転送元バッファは一時バッファとなり、旧一時バッファは転送元バッファとなって新たな転送データの書き込みが可能となる。(ステップS140)、また、調停装置53は、転送元バッファから一時バッファに切り替えられた一時バッファの有効/無効を示す有効レジスタ52の状態値を有効とするよう遷移させる(ステップS150)。転送元装置20からバッファ切り替え要求21が入力される度に、上記のような転送元バッファと一時バッファとの相互切り換えが行われる。
【0023】
図3は物理バッファの1つから転送先装置30への転送データの読み込みが行われる場合を示したフローチャートである。転送先装置30は、転送先バッファから転送データの読み出しを行う直前にバッファ切り替え要求31を調停装置53に送信する(ステップS200)。調停装置53は有効レジスタ52の状態値が有効であるか否かすなわち一時バッファに転送先装置が読み出し可能な新規なデータが蓄積されているか否かを判断する(ステップS210)。
【0024】
ここで、有効レジスタ52の状態値が有効である場合、調停装置53は3つの物理バッファのうち一時バッファに対応する物理バッファと転送先バッファに対応する物理バッファを切り替えるよう状態レジスタ51のバッファ割り当ての状態値を遷移させる。この割り当ての状態値の遷移によって、転送先バッファと一時バッファが切り替わり(ステップS220)、旧転送先バッファは一時バッファとなり、旧一時バッファは転送先バッファとなってこの転送先バッファ中の新規な転送データが転送先装置30に読み込まれる(ステップS230)。さらに、切り換えられた一時バッファの中には転送先装置30に読み出すことが可能な新規なデータが入っていない状態になるので、有効レジスタ52の状態値を無効とするよう遷移させる(ステップS240)。
【0025】
一方、ステップ210の判定において有効レジスタ52の状態値が無効である場合は、調停装置53は、状態レジスタ51のバッファ割り当ての状態値を保持する。すなわち、この場合は、状態レジスタ51のバッファ割り当ての状態値が切り替えられることはない。さらに、この場合は、転送先バッファと一時バッファが切り替わらないため、有効レジスタ52の状態値も無効のまま保持される(ステップS260)。
【0026】
転送先装置30からバッファ切り替え要求31が入力される度に、上記のような転送先バッファと一時バッファとの相互切り換えが行われる。
【0027】
図4は転送元装置20と転送先装置30の両方から同時にバッファ切り替えの要求がされた場合を示すフローチャートである。転送元装置20から調停装置53へのバッファ切り替え要求21と転送先バッファから調停装置53へのバッファ切り替え要求31が同時に行われた場合(ステップS300)、調停装置53は3つの物理バッファのうち、転送元バッファと転送先バッファに対応する物理バッファを切り替えるよう状態レジスタ51のバッファ割り当ての状態値を遷移させる(ステップS310)。すなわち、旧転送元バッファは転送先バッファに切り換え、旧転送先バッファは転送元バッファに切り換える。さらに、この場合、一時バッファに蓄積されていたデータは新規なデータではなくなるため、有効レジスタ52の状態値を無効とするよう遷移させる。ここで、転送元装置20から調停装置53へバッファ切り替え要求21がなされた場合とは、転送元装置20からの転送データを転送元バッファに書き込んだ直後であり、転送元バッファに新規な転送データが蓄積された状態である。したがって、転送元バッファを転送先バッファに切り替えれば(ステップS320)、転送元バッファに入っていた転送データが転送先バッファに入っている状態となる。これにより転送先バッファ中の新規な転送データが転送先装置30に読み込まれることとなる(ステップS330)。
【0028】
このように、調停装置53は、状態レジスタ51の現在のバッファ割り当ての状態値、有効レジスタ52の現在の状態値、転送元装置20および転送先装置30から調停装置53に転送されるバッファ切り替え要求21,31の情報に基づいて、状態レジスタ51の次のバッファ割り当ての状態値、有効レジスタ52の次の状態値を決定している。図5はこれらの各状態値を示した図である。
【0029】
図5において「現在の状態値」の「状態レジスタ51の状態値」の欄において、1,2,3の数字はそれぞれ物理バッファ1、物理バッファ2、物理バッファ3を示しており、3つの数字は左の数字から転送元バッファ、一時バッファ、転送先バッファに割り当てられる物理バッファを示している。したがって例えば、転送元バッファが物理バッファ1に割り当てられ、一時バッファが物理バッファ2に割り当てられ、さらに転送先バッファが物理バッファ3に割り当てられている時、「現在の状態」の「状態レジスタ51の状態値」は「123」と示される。同様に「次の状態値」における「状態レジスタ51の状態値」の欄においても3つの数字で各物理バッファの割り当てを示している。
【0030】
「現在の状態値」および「次の状態値」における「有効レジスタ52の状態値」は一時バッファ中の転送先データが転送先装置30に読み出されるために有効か否かを示しており、有効の場合は「1」を示し、無効の場合は「0」を示している。
【0031】
「現在の状態値」における「バッファ切り替え要求」の欄は転送元装置20および転送先装置30から調停装置53へのバッファの切り替え要求の有無を示している。2つの数字は左の数字が転送元装置20からのバッファ切り替え要求21を示し、右側の数字が転送先装置30からのバッファ切り替え要求31を示している。ここでは、バッファ切り替え要求がある場合を「1」で示し、バッファ切り替え要求がない場合を「0」で示している。したがって例えば、転送元装置20からバッファ切り替え要求21があり、転送先装置30からバッファ切り替え要求31がない場合は、「10」と示している。
【0032】
図5において例えば、「現在の状態値」の「状態レジスタ51の状態値」が「123」で示され、「有効レジスタ52の状態値」が「1」で示され、「バッファ切り替え要求」が「01」で示されている場合について説明する。この場合、「有効レジスタ52の状態値」が「1」であるため、一時バッファ(物理バッファ2)には転送先装置30に転送するために新規な転送データが蓄積されている。また、「バッファ切り替え要求」が「01」であるため、転送先装置30のみからバッファ切り替え要求31がなされている。したがって、状態レジスタ51の状態値は一時バッファと転送先バッファを切り替える。すなわち、旧一時バッファである物理バッファ2が転送先バッファに切り換えられ、旧転送先バッファである物理バッファ3が一時バッファに切り換えられる。この状態を示したのが「次の状態値」における「状態レジスタ51の状態値」であり、「132」で示される。これにより転送先装置30は転送先バッファに切り換えられた物理バッファ2から転送データを読み出す。また、旧一時バッファである物理バッファ2に蓄積されていた転送データは転送先装置30が読み出すために新規なデータではなくなる。この状態を示したのが「次の状態値」における「有効レジスタ52の状態値」であり、「0」で示される。
【0033】
また、「現在の状態値」の「状態レジスタ51の状態値」が「123」で示され、「有効レジスタ52の状態値」が「0」で示され、「バッファ切り替え要求」が「10」で示されている場合は、「有効レジスタ52の状態値」が「0」であるため、一時バッファ(物理バッファ2)には転送先装置30に転送するために新規な転送データが蓄積されていない。また、「バッファ切り替え要求」が「10」であるため、転送元装置20のみからバッファ切り替え要求21がなされている。したがって、状態レジスタ51の状態値は一時バッファと転送元バッファを切り替える。すなわち、旧一時バッファである物理バッファ2が転送元バッファに切り換えられ、旧転送元バッファである物理バッファ1が一時バッファに切り換えられる。この状態を示したのが「次の状態値」における「状態レジスタ51の状態値」であり、「213」で示される。これにより一時バッファに切り換えられた物理バッファ1に蓄積された転送データは転送先装置30が読み出すために最新のデータとなる。この状態を示したのが「次の状態値」における「有効レジスタ52の状態値」であり、「1」で示される。
【0034】
このような動作を行う実施の形態にかかるバッファリング装置10の制御サイクルの一例を示したのが図6である。図6において制御サイクル1〜7は制御サイクルを単位時間ごとに区切ったものである。バッファリング装置10の状態遷移の制御を行う間隔を1単位時間とする。そしてバッファ切り替え要求21,31は各単位時間についてのみ有効なパルス信号とする。
【0035】
図6においては、制御サイクル2と制御サイクル6で転送元装置20からバッファ切り替え要求21がなされている。同様に、「転送先装置30からのバッファ切り替え要求31」において、制御サイクル4と制御サイクル6で転送先装置30からバッファ切り替え要求31がなされている。「バッファ切り替え要求」における2つの数字は図5と同様に左の数字が転送元装置20からのバッファ切り替え要求21を示し、右側の数字が転送先装置30からのバッファ切り替え要求31を示している。ここでも、バッファ切り替え要求がある場合を「1」で示し、バッファ切り替え要求がない場合を「0」で示している。したがって例えば、制御サイクル2では転送元装置20からバッファ切り替え要求21があり、転送先装置30からバッファ切り替え要求31がないため、「10」と示している。
【0036】
バッファ割り当ての状態を示す「状態レジスタ51の状態値」は、図5と同様に1,2,3の数字はそれぞれ物理バッファ1、物理バッファ2、物理バッファ3を示しており、3つの数字は左の数字から転送元バッファ、一時バッファ、転送先バッファに割り当てられる物理バッファを示している。したがって例えば、制御サイクル1において状態レジスタ51の状態値は「123」と示されており、転送元バッファが物理バッファ1に割り当てられ、一時バッファが物理バッファ2に割り当てられ、そして転送先バッファが物理バッファ3に割り当てられている状態を示している。
【0037】
「有効レジスタ52の状態値」は一時バッファが有効か否かを示しており、有効の場合は「1」を示し、無効の場合は「0」を示している。したがって例えば、制御サイクル3において有効レジスタ52の状態値は「1」と示されており、一時バッファが保持する転送データがデータ転送先装置30へ読み込まれるために、新規なデータとして有効であることを示している。
【0038】
つぎに、バッファの切り替えにより、転送元装置20から転送先装置30へ転送データが転送される過程を図6を用いて説明する。
【0039】
制御サイクル1において「状態レジスタ51の状態値」は「123」と示されており、転送元バッファが物理バッファ1に割り当てられ、一時バッファが物理バッファ2に割り当てられ、さらに転送先バッファが物理バッファ3に割り当てられている。この状態で転送元装置20からの転送データは転送元バッファとしての物理バッファ1に蓄積されている。ここでは、「有効レジスタ52の状態値」が「0」であり、一時バッファとしての物理バッファ2が保持する転送データはデータ転送先装置30へ読み込むために新規なデータとして有効でない。また、「バッファ切り替え要求」が「00」であり、バッファの切り替え要求がなされていないため、各物理バッファの割り当ての状態をこのまま保持する。
【0040】
制御サイクル2では、「バッファ切り替え要求」が「10」となった場合、すなわち転送元装置20からバッファ切り替え要求21がなされている。この場合、「バッファ切り替え要求」が発生した制御サイクルの次の制御サイクルで実際にバッファの割り当ての切換えが行われる。
【0041】
制御サイクル2において、転送元装置20からバッファ切り替え要求21がなされているため制御サイクル3において転送元バッファと一時バッファが切り替えられ、「状態レジスタ51の状態値」は「123」から「213」となる。すなわち、物理バッファ1は転送元バッファから一時バッファに切り換えられ、物理バッファ2は一時バッファから転送元バッファに切り換えられる。また、この時一時バッファとしての物理バッファ1にはデータ転送先装置30へ読み込むために新規なデータとして有効な転送データが蓄積されることとなるので「有効レジスタ52の状態値」は「1」となる。
【0042】
制御サイクル4では、「バッファ切り替え要求」が「01」となった場合、すなわち転送先装置30からバッファ切り替え要求31がなされている。
【0043】
制御サイクル4において、転送先装置30からバッファ切り替え要求31がなされているため、制御サイクル5において転送先バッファと一時バッファが切り替えられ、「状態レジスタ51の状態値」は「213」から「231」となる。すなわち、物理バッファ3は転送先バッファから一時バッファに切り換えられ、物理バッファ1は一時バッファから転送先バッファに切り換えられる。また、この時一時バッファとしての物理バッファ3にはデータ転送先装置30へ読み込むために新規なデータとして有効な転送データが蓄積されていないこととなるので「有効レジスタ52の状態値」は「0」となる。また、この時一時バッファにはデータ転送先装置30へ読み込むために新規なデータとして有効な転送データが存在しなくなるので、「有効レジスタ52の状態値」は「0」となる。
【0044】
制御サイクル6では、「バッファ切り替え要求」が「11」となった場合、すなわち転送元装置20からバッファ切り替え要求21および転送先装置30からバッファ切り替え要求31がなされている。なお、バッファ切り替え要求21は転送元装置20から転送元バッファへ書き込みが行われた後にされるため、この状態では転送元装置20から転送元バッファに転送データが既に書き込まれている。
【0045】
制御サイクル6において、転送元装置20および転送先装置30からバッファ切り替え要求21,31がなされているため制御サイクル7において転送元バッファと転送先バッファが切り替えられ、「状態レジスタ51の状態値」は「231」から「132」となる。
【0046】
すなわち、物理バッファ1は転送先バッファから転送元に切り換えられ、物理バッファ2は転送元から転送先バッファに切り換えられる。また、この時一時バッファとしての物理バッファ1にはデータ転送先装置30へ読み込むために新規なデータとして有効な転送データが蓄積されていないこととなるので「有効レジスタ52の状態値」は「0」のままである。また、この時一時バッファにはデータ転送先装置30へ読み込むために新規なデータとして有効な転送データが存在しなくなるので「有効レジスタ52の状態値」は「0」となる。
【0047】
なお、この実施の形態にかかるバッファリング装置10は動作速度の異なる2つの装置間でのデータ転送に用いるものであるため、転送元装置20の動作速度が転送先装置30の動作速度より速い場合、転送元装置20が転送データを転送元バッファに書き込む回数が転送先装置30が転送データを転送先バッファから読み出す回数より多くなる。このため、転送先装置30は転送元装置20が最後に書き込んだ転送データのみ読み出すこととなる。同様に転送元装置20の動作速度が転送先装置30の動作速度より遅い場合、転送元装置20が転送データを転送元バッファに書き込む回数が、転送先装置30が転送データを転送先バッファから読み出す回数より少なくなる。このため、転送先装置30は転送元装置20が最後に書き込んだ同一の転送データを繰り返し読み出すこととなる。
【0048】
また、この実施の形態で説明したバッファリング装置10においては、同一の転送データであっても転送元装置20は転送元バッファに転送データを書き込む度に調停装置53にバッファ切り替え要求21をすることとなり、この時すでにこの転送データが転送先装置30に読み込まれた場合であっても有効バッファの状態値は「1」となり、転送先装置30は同一の転送データを再度読み込む可能性がある。したがって、以下の手段によって同一の転送データが転送先装置30に読み込まれないようにしている。転送元装置20は転送元バッファに転送データを書き込む度に転送データに一意的な識別データを追加して転送する。そして、転送先装置30は転送先バッファから転送データを読み出す度にこの識別データを判別し、転送データが最新のものであるか否か(すでに読み込まれた転送データであるか否か)を判断する。
【0049】
このように実施の形態によれば、転送元装置20からの転送データを転送先装置30へ転送する場合、転送先装置30が転送先バッファから転送データを読み出す直前に転送先装置30がバッファ切り替え要求31をしているため、最新データが保持された物理バッファを転送先バッファとして転送データを読み出せばよい。このため、転送先装置30がバッファにアクセスしているか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのレジスタを操作する手順が不要となる。したがって、バッファ切り替えの制御装置の構成が簡単になり、データ転送の通信手段も簡素化される。
【0050】
【発明の効果】
以上説明したとおり、この発明によれば、転送元装置からの転送データをバッファリング装置を介して転送先装置へ転送する場合、転送先装置が転送先バッファから転送データを読み出す直前に、転送先装置がバッファ切り替え要求をしているため、転送先装置がバッファにアクセスしているか否かの情報を保持するレジスタと、バッファ切り替えの制御のためのレジスタを操作する手順が不要となる。このため、バッファ切り替えの制御装置の構成が簡単になり、データ転送の通信手段も簡素化されるという効果を奏する。
【図面の簡単な説明】
【図1】この発明の実施の形態にかかるバッファリング装置の構成を示す概略図である。
【図2】この発明の実施の形態にかかるバッファリング装置の動作の一部を示すフローチャートである。
【図3】この発明の実施の形態にかかるバッファリング装置の動作の一部を示すフローチャートである。
【図4】この発明の実施の形態にかかるバッファリング装置の動作の一部を示すフローチャートである。
【図5】この発明の実施の形態にかかるバッファリング装置の状態レジスタの状態値を示す図である。
【図6】この発明の実施の形態にかかるバッファリング装置の動作の一例を示すタイムチャートである。
【符号の説明】
1,2,3 物理バッファ、10 バッファリング装置、20 転送元装置、21,31 バッファ切り替え要求、30 転送先装置、41,42 選択装置、51 状態レジスタ、52 有効レジスタ、53 調停装置。
Claims (3)
- 動作速度が異なるデータ転送元装置とデータ転送先装置の間のデータ転送を行うバッファリング装置において、
前記データ転送元装置からの転送データを書き込むための転送元バッファ、前記データ転送先装置へ転送データ読み出すための転送先バッファ、および前記転送元装置と前記転送先装置のいずれにも一時的に接続されていない一時バッファが1つずつ割り当てられその割り当て状態の変更が可能な3つの物理バッファと、
前記転送元バッファ、前記転送先バッファおよび前記一時バッファを前記3つの物理バッファのうちどの物理バッファに割り当てるかの状態値を保持する状態レジスタと、
前記状態レジスタの状態値に基づいて前記データ転送元装置からの転送データを前記物理バッファの中に書き込むため前記3つの物理バッファの中から1つの物理バッファを選択して転送元バッファとする第1の選択装置と、
前記状態レジスタの状態値に基づいて前記3つの物理バッファの1つから前記データ転送先装置へ転送データを読み込ませるため前記3つの物理バッファの中から1つの物理バッファを選択して転送先バッファとする第2の選択装置と、
前記一時バッファが保持する転送データが前記データ転送先装置へ読み込まれるために新規なデータとして有効であるか否かの状態値を保持する有効レジスタと、
転送元装置から送られる前記3つの物理バッファの割り当ての切り替えを要求する第1の要求および転送先装置から送られる前記3つの物理バッファの割り当ての切り替えを要求する第2の要求に基づいて前記状態レジスタおよび前記有効レジスタの状態値を遷移させて前記3つの物理バッファの割り当てを切り替えるよう制御する調停装置と、
を備えたことを特徴とするバッファリング装置。 - 前記転送元装置から前記転送元バッファへ転送データを書き込む場合、書き込み後に前記転送元装置から前記調停装置へ前記第1の要求をし、
前記第1の要求がなされた後、前記転送元バッファと前記一時バッファに対応する物理バッファの割り当てを切り替えるよう前記状態レジスタの状態値を遷移させるとともに前記有効レジスタの状態値を有効とするよう遷移させ、
前記転送先バッファから前記転送先装置へ転送データを読み出す場合、転送データを読み出す直前に前記転送先装置から前記調停装置へ前記第2の要求がなされ、前記有効レジスタの状態値が有効の場合は、前記転送先バッファと前記一時バッファに対応する物理バッファの割り当てを切り替えるよう前記状態レジスタの状態値を遷移させるとともに前記有効レジスタの状態値を無効とするよう遷移させ、前記有効レジスタの状態値が無効の場合は、前記転送先バッファと前記一時バッファに対応する物理バッファの割り当て状態を保持するよう前記状態レジスタの状態値および前記有効レジスタの状態値を遷移させず、
前記第1の要求および前記第2の要求が同時に行われる場合は、前記転送元バッファと前記転送先バッファに対応する物理バッファの割り当てを切り替えるよう前記状態レジスタの状態値を遷移させ、前記転送元バッファと前記転送先バッファに対応する物理バッファの割り当てを切り替えるよう前記状態レジスタの状態値を遷移させる際に前記有効レジスタの状態値を無効とするよう遷移させることを特徴とする請求項1に記載のバッファリング装置。 - 前記転送元装置が前記転送元バッファへ転送データの書き込みを行う際、前記転送元バッファに書き込まれた転送データが最新のものであるか否かを識別するための識別データを転送し、前記転送先装置が前記転送先バッファから転送データを読み込む際、前記識別データを識別して転送データを読み込むか否かの判断を行うことを特徴とする請求項1または2に記載のバッファリング装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003058886A JP2004272373A (ja) | 2003-03-05 | 2003-03-05 | バッファリング装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003058886A JP2004272373A (ja) | 2003-03-05 | 2003-03-05 | バッファリング装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004272373A true JP2004272373A (ja) | 2004-09-30 |
Family
ID=33121891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003058886A Pending JP2004272373A (ja) | 2003-03-05 | 2003-03-05 | バッファリング装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004272373A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009289269A (ja) * | 2008-05-28 | 2009-12-10 | Siemens Ag | バッファメモリにおけるメモリの割り当て方法 |
JP2015505409A (ja) * | 2012-01-06 | 2015-02-19 | インテル コーポレイション | データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング |
-
2003
- 2003-03-05 JP JP2003058886A patent/JP2004272373A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009289269A (ja) * | 2008-05-28 | 2009-12-10 | Siemens Ag | バッファメモリにおけるメモリの割り当て方法 |
JP2015505409A (ja) * | 2012-01-06 | 2015-02-19 | インテル コーポレイション | データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH11120156A (ja) | マルチプロセッサシステムにおけるデータ通信方式 | |
JPH06236343A (ja) | メモリに対し非同期でデータの読出し/書込みを行う方法及びそのためのダイレクトメモリアクセス・コントローラ | |
US5978879A (en) | Bus bridge apparatus | |
KR101459200B1 (ko) | 전송 제어장치, 메모리 제어장치, 및 상기 전송 제어장치를 구비한 plc | |
KR20070122228A (ko) | 외부 디바이스 액세스 장치 | |
JP2007172112A (ja) | メモリコントローラ | |
JP3532318B2 (ja) | プログラム可能な裁定装置 | |
KR20070053310A (ko) | 버스 액세스 취소 기능을 갖는 데이터 처리 시스템 | |
JP2004272373A (ja) | バッファリング装置 | |
JPH10334037A (ja) | 通信dma装置 | |
JP4536189B2 (ja) | Dma転送装置及びdma転送システム | |
JP2001282650A (ja) | データバッファリング装置およびこのデータバッファリング装置を用いた分散制御システム | |
JP2007241922A (ja) | 共有資源利用のための調停方法及びその調停装置 | |
KR100950356B1 (ko) | 다중 코히런시 단위들을 지원하는 데이터 전송 유닛 | |
JP4472402B2 (ja) | バス装置 | |
JP3784932B2 (ja) | チャネル装置制御方法 | |
JP2005062946A (ja) | メモリ制御装置 | |
JP2000099391A (ja) | プリンタ装置およびプリンタ制御方法、並びに記録媒体 | |
JP3698483B2 (ja) | シリアルi/o | |
JP2005063358A (ja) | 命令供給制御装置および半導体装置 | |
JP2826780B2 (ja) | データ転送方法 | |
JPH05204822A (ja) | データバスの多重化方式 | |
KR20020096650A (ko) | 영상 처리기의 메모리 액세스 중재 장치 및 방법 | |
JPH11194994A (ja) | 情報処理装置 | |
JP3678537B2 (ja) | データ転送方法及び装置 |