(57)【要約】【課題】  複数バスを有するバスシステムにおけるデータ転送においてデータ転送終了割り込みを好適なタイミングで行う。【解決手段】  複数バス４，８，１１を有するバスシステムにおいて、バスマスタ２，３，６，９とメモリ１２の間で行われるＤＭＡ転送を通信パケット２０を用いて行い，通信パケット２０送信元のバスマスタ２，３，６，９が通信パケット２０内に設定した数２２をバスマスタ２，３，６，９、ブリッジ７，１０、及びメモリ１２において通信パケット２０が通過する際等にデクリメントし、上記の数２２が０になった時点において通信パケット２０送信元のバスマスタ２，３，６，９に対して転送終了通知を行う。これによりバスマスタ２，３，６，９はＣＰＵ５に対して転送終了割り込みを発生する。【選択図】    図４
2005135109.tif 000002
【特許請求の範囲】
【請求項１】
バス接続装置により接続され複数のバスを介して主転送装置及び従転送装置間でデータを転送するデータ転送システムであって、
前記複数のバスの１つには中央処理装置が接続され、
前記主転送装置は
前記主転送装置から前記従転送装置に対して転送が行われる場合の経路において前記中央処理装置が接続されたバスに接続された前記バス接続装置のうち前記従転送装置側のバス接続装置と前記主転送装置との間に位置する前記バス接続装置の数に基づくバス接続数情報を前記従転送装置に対して送信する送信手段を備え、
前記バス接続装置は
前記バス接続数情報を受信した場合に前記バス接続数情報が当該バス接続装置を通過したことに基づいてバス接続数情報を変更する変更手段と、
当該バス接続装置が前記従転送装置側のバス接続装置であることを示す予め決定された値と前記バス接続数情報が一致する場合には前記データの転送が終了した旨の通知を前記主転送装置に対して送信する通知手段とを備えることを特徴とするデータ転送システム。
【請求項２】
前記変更手段は前記バス接続数情報を受信したときに前記バス接続数情報を１繰り下げることを特徴とする請求項１に記載のデータ転送システム。
【請求項３】
前記変更手段は前記バス接続数情報の送信に係るバスの使用権を獲得したときに前記バス接続数情報を１繰り下げることを特徴とする請求項１又は２に記載のデータ転送システム。
【請求項４】
前記主転送装置は前記通知を前記バス接続装置から受信した場合に前記中央処理装置に割り込みを発生する割り込み手段を更に備えることを特徴とする請求項１〜３に記載のデータ転送システム。
【請求項５】
前記複数のバスに接続される全ての前記バス接続装置及び前記主転送装置に接続された終了通知仲介装置を更に備え、
前記送信手段は前記主送信装置を特定するための識別情報を送信し、
前記終了通知仲介装置は
前記通知手段から前記通知と共に前記識別情報を受信する通知受信手段と、
前記識別情報に示される前記主転送装置に対して前記通知を送信する通知送信手段とを備えることを特徴とする請求項１〜４に記載のデータ転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスを有するバスシステムにおいて、バスに接続されたデバイス間でデータを転送するデータ転送システムに関する。
【背景技術】
【０００２】
従来、複数のバスを有するバスシステムにおいて、バスマスタからメモリ等へデータ転送が行われる場合、バスマスタが直接接続されるバスにデータが受け付けられたときにＣＰＵに対してデータ転送終了割り込みが発せられるか、あるいは最終的なデータ転送先であるメモリ等がデータを受け付けたときに、前記メモリ等から前記バスマスタに対してデータ転送の終了が通知され前記バスマスタからＣＰＵにデータ転送終了割り込みが発せられていた。
【０００３】
また、例えば下記特許文献１には、バースト転送終了割り込み信号発生回路から誤ってバースト転送終了の割り込み信号をプロセッサに与えることを防止するために、データ一時記憶用のＦＩＦＯ（First In First Out）メモリのメモリ空信号がオンであり、ＤＭＡ（Direct Memory Access）制御回路がバースト転送終了を示すデータ転送終了信号がオンであり、かつＤＭＡ制御回路がＦＩＦＯメモリへ与える書き込み信号がタイマの遅延によって一定時間存在しないことを示すタイマ出力信号がオンになるという３つの条件を満足したときに、アンド回路から割り込み信号をプロセッサへ出力するバースト転送終了割り込み信号発生回路について記述されている。
【特許文献１】特開平５−２８０９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記前者の背景技術では、データ転送先に実際にデータが転送される前に、割り込みを発生してしまい、他のバスマスタが同じ領域にアクセスした場合に、まだ所望のデータが書き込まれていないということが起こりえる。上記後者の背景技術では、データ転送に対してレーシングが起きないような段階に至ってもまだ割り込みを通知しないので、他のバスマスタからのデータ転送の開始を必要以上に遅らせてしまうこととなる。また、上記特許文献においては、複数バスにまたがるデータ転送の場合については記述されていない。
【０００５】
本発明は上記の問題に鑑みてなされたもので、データ転送終了の割り込みを好適なタイミングで行うことにより効率的にデータ転送を行えるデータ転送システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に係るデータ転送システムは、バス接続装置により接続され複数のバスを介して主転送装置及び従転送装置間でデータを転送するデータ転送システムであって、前記複数のバスの１つには中央処理装置が接続され、前記主転送装置は前記主転送装置から前記従転送装置に対して転送が行われる場合の経路において前記中央処理装置が接続されたバスに接続された前記バス接続装置のうち前記従転送装置側のバス接続装置と前記主転送装置との間に位置する前記バス接続装置の数に基づくバス接続数情報を前記従転送装置に対して送信する送信手段を備え、前記バス接続装置は前記バス接続数情報を受信した場合に前記バス接続数情報が当該バス接続装置を通過したことに基づいてバス接続数情報を変更する変更手段と、当該バス接続装置が前記従転送装置側のバス接続装置であることを示す予め決定された値と前記バス接続数情報が一致する場合には前記データの転送が終了した旨の通知を前記主転送装置に対して送信する通知手段とを備えることを特徴とする。
【０００７】
請求項２に係るデータ転送システムは、請求項１に記載のデータ転送システムであって、前記変更手段は前記バス接続数情報を受信したときに前記バス接続数情報を１繰り下げることを特徴とする。
【０００８】
請求項３に係るデータ転送システムは、請求項１又は２に記載のデータ転送システムであって、前記変更手段は前記バス接続数情報の送信に係るバスの使用権を獲得したときに前記バス接続数情報を１繰り下げることを特徴とする。
【０００９】
請求項４に係るデータ転送システムは、請求項１〜３に記載のデータ転送システムであって、前記主転送装置は前記通知を前記バス接続装置から受信した場合に前記中央処理装置に割り込みを発生する割り込み手段を更に備えることを特徴とする。
【００１０】
請求項５に係るデータ転送システムは、請求項１〜４に記載のデータ転送システムであって、前記複数のバスに接続される全ての前記バス接続装置及び前記主転送装置に接続された終了通知仲介装置を更に備え、前記送信手段は前記主送信装置を特定するための識別情報を送信し、前記終了通知仲介装置は前記通知手段から前記通知と共に前記識別情報を受信する通知受信手段と、前記識別情報に示される前記主転送装置に対して前記通知を送信する通知送信手段とを備えることを特徴とする。
【発明の効果】
【００１１】
請求項１に記載の発明によれば、主転送装置においては、当該主転送装置と従転送装置との間でデータ転送を行う場合に中央処理装置と従転送装置との間で行うデータ転送との競合が起こらなくなる位置にあるバス接続装置まで主転送装置からの送信が到着したことをバス接続装置が認識するための情報として、そのバス接続装置と主転送装置との間に位置するバス接続装置の数に基づくバス接続数情報が送信手段により従転送装置に対して送信され、バス接続装置においては、バス接続数情報が変更手段により当該バス接続装置を通過したことに基づいて変更され、当該バス接続装置が前記競合が起こらなくなる位置にあるバス接続装置であることを示す予め決定された値とバス接続数情報が一致する場合には通知手段によりデータ転送が終了した旨の通知を主転送装置に対して送信するので、バス接続装置がバス接続数情報を受信した時点において、主転送装置と従転送装置との間で行われるデータ転送が既に中央処理装置と従転送装置との間で行われるデータ転送との間で競合が起こらない場合には転送終了通知を行うことができ、まだ競合が起き得る時点において転送終了通知が行われてしまうことを防ぐことができると共に、データ転送の競合が起こらないにもかかわらずデータ転送が終了するまで転送終了通知が行われないということを防ぐことができる。これにより転送終了通知が主転送装置に対して好適なタイミングで送られ、その結果、中央処理装置に対するデータ転送終了の割り込みを好適なタイミングで行うことができデータ転送の効率化が図れる。
【００１２】
請求項２に記載の発明によれば、前記バス接続数情報は受信されたときに変更手段により１繰り下げられるので、前記競合が起こらなくなる位置にあるバス接続装置において例えば０等の予め定められた値になるように主転送装置においてバス接続数情報を設定することによりバス接続装置において前記予め定められた値との一致を比較することで当該バス接続装置が前記競合が起こらなくなる位置にあるバス接続装置か否かを判定することができる。
【００１３】
請求項３に記載の発明によれば、前記バス接続数情報はこの情報の送信に係るバスの使用権を獲得したときに変更手段により１繰り下げられるので、前記競合が起こらなくなる位置にあるバス接続装置において例えば０等の予め定められた値になるように主転送装置においてバス接続数情報を設定することによりバス接続装置において前記予め定められた値との一致を比較することで当該バス接続装置が前記競合が起こらなくなる位置にあるバス接続装置か否かを判定することができる。
【００１４】
請求項４に記載の発明によれば、主転送装置においてデータの転送が終了した旨の通知をバス接続装置から受信した場合に割り込み手段により中央処理装置に割り込みを発生させるので、中央処理装置に対するデータ転送終了の割り込みを好適なタイミングで行うことができ、中央処理装置は必要以上のデータ転送終了待ちを軽減することができデータ転送の効率化が図れる。
【００１５】
請求項５に記載の発明によれば、主転送装置において送信手段により当該主転送装置を識別するための識別情報が送信され、従転送装置において通知手段によりこの識別情報が終了通知仲介装置に送信され、終了通知仲介装置において通知受信手段により識別情報が受信され、通知送信手段により識別情報に示される主転送装置に対して通知が送信されるので、バスを使用せず従転送装置から主転送装置に前記通知を行うことができ、前記通知が迅速に行える。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施形態による複数バスを有するバスシステムにおけるデータ転送システムについて図面を参照しながら説明する。
【００１７】
図１は、本発明の一実施形態によるバスシステムの構成の概略を示すブロック図である。バス４，８，１１はこのシステムにおける３つのバスである。各バスにおける信号線の構成は同じである必要はない。バスマスタ２及びバスマスタ３はメモリ１２へのＤＭＡ（Direct Memory Access）機能を有し、バス４に接続される。バスマスタ６はメモリ１２へのＤＭＡ機能を有し、バス８に接続される。バスマスタ９はメモリ１２へのＤＭＡ機能を有し、バス１１に接続される。ブリッジ７はバス４とバス８とを接続する回路で両バス間でバス上の信号を変換・転送する。ブリッジ１０はバス８とバス１１とを接続する回路である。
【００１８】
ＣＰＵ（Central Processing Unit：中央処理装置）５はバス８に接続されシステム全体の動作を制御する。また、メモリ１２へのアクセスも行う。メモリ１２は、バス１１に接続される例えばＲＡＭ（Random Access Memory）である。デコーダ１はＣＰＵ５以外の全てのデバイス（バスマスタ２，３，６，９、ブリッジ７，１０、メモリ１２）に接続されブリッジ７，１０又はメモリ１２から受信したＤＭＡにおけるデータ転送終了の通知（以下、転送終了通知という。）としてのバスマスタの識別情報（例えばバスマスタに割り振られた番号）をデコードして当該ＤＭＡを行っているバスマスタに通知するものである。バスマスタはバスの使用権を得ることができるデバイスで、例えば複写機等の画像形成装置においてはデータ圧縮伸張装置等がバスマスタとなる。バスマスタがバスの使用権を得てターゲットとなるデバイス（例えばメモリ１２）を指定してデータ転送が行われる。バスマスタからターゲットデバイス（メモリ）にデータを転送することをライトといい、ターゲットデバイス（メモリ）からバスマスタにデータを転送することをリードという。
【００１９】
図２は、バスマスタによるＤＭＡ転送に使用されるデータ転送用のパケットを示す図である。図２（ａ）は基本フォーマットを示す図である。図２（ａ）においてＩＤ領域２１は送信元のバスマスタを識別するための情報を格納するための領域で、例えば各バスマスタに割り当てられた数字を格納する。カウント情報領域２２は本パケットを転送するデバイスがバスの使用権を獲得したとき、及び、デバイスが本パケットを受信したときをカウントするためのカウント情報でこれにより送信元バスマスタに転送終了を通知する時期を得る。Ｒ／Ｗ情報領域２３は本パケットがバスマスタからメモリ等へデータを転送するため（以下、ライトという。）に使用されるものか、メモリ等からバスマスタへデータを転送するため（以下、リードという。）に使用されるものかの種別を表す情報を格納する領域である。この種別は例えばＲ（リード）又はＷ（ライト）で表される。アドレス領域２４は当該パケットにより転送するデータの書込先／読込先アドレスを格納する領域である。データ領域２５は転送するデータ又は送信元バスマスタのアドレス等を格納する領域である。本実施形態においてはデータ領域２５のサイズは所定のサイズで固定長とする。
【００２０】
図２（ｂ）はライトの場合のパケットに格納する情報の内容を示す図である。ＩＤ領域２１には上述の送信元バスマスタの識別情報を格納する。カウント情報領域２２には上述のカウント情報を格納する。ただし、転送データを複数回に分割して送信する場合の最後のパケット以外ではパケットがメモリ等に到着してもカウント情報が０にならない十分大きな数をカウント情報として格納する。Ｒ／Ｗ情報領域２３には「Ｗ」を格納する。アドレス領域２４にはデータ領域２５に格納するデータを書き込むメモリ領域の先頭アドレスを格納する。データ領域２５には転送するデータ（メモリ等に書き込むデータ）を格納する。ライトの場合はパケットをバスマスタからメモリに送信するのみで、メモリからバスマスタへのパケットの返信は行わない。
【００２１】
図２（ｃ）はリードの場合の送信（バスマスタからメモリに送信する場合）パケット（リード要求パケット）に格納する情報の内容を示す図である。ＩＤ領域２１には上述の送信元バスマスタの識別情報を格納する。カウント情報領域２２には上述のカウント情報を格納する。Ｒ／Ｗ情報領域２３には「Ｒ」を格納する。アドレス領域２４にはリードするメモリ領域の先頭アドレスを格納する。データ領域２５の前半部分２５ａには当該パケットの送信元であるバスマスタのアドレスを格納する。データ領域２５の後半部分２５ｂにはリードするデータのサイズを格納する。
【００２２】
図２（ｄ）はリードの場合の返信（メモリからバスマスタに送信する場合）パケット（リードパケット）に格納する情報の内容を示す図である。ＩＤ領域２１にはリード要求パケットのＩＤ領域２１に格納された送信元バスマスタの識別情報を格納する。カウント情報領域２２にはパケットがバスマスタに到着してもカウント情報が０にならない十分大きな数をカウント情報として格納する。Ｒ／Ｗ情報領域２３には「Ｒ」を格納する。アドレス領域２４にはデータ領域２５に格納するデータを読み出すメモリ領域の先頭アドレスを格納する。データ領域２５には転送するデータ（メモリから読み出すデータ）を格納する。
【００２３】
図３は、バスマスタ２，３，６，９が備える機能の構成を示したブロック図である。バスマスタ２，３，６，９はデータ転送制御部３１、パケット作成部３２、パケット送信部３３、カウンタ繰り下げ部３４、パケット受信部３５、データ受信部３６、転送終了通知受信部３７、及び割り込み送信部３８を備える。
【００２４】
データ転送制御部３１は当該バスマスタがデータ転送を行うか否かを決定する。また、転送データを複数パケットに分けて送信する場合にその制御を行う。パケット作成部３２はデータ転送の種別（ライト又はリード）に従って図２（ｂ）に示すライトパケット又は図２（ｃ）に示すリード要求パケットを作成するものである。ＩＤ領域２１には当該バスマスタに割り当てられた例えば番号を格納する。カウント情報領域２２には予め当該バスマスタが保持している、ターゲットデバイス毎に決定されたカウント値（数）をカウント情報として格納する。このカウント値はバスシステムの構成（例えば当該バスマスタからターゲットデバイスまでに通過すべきブリッジの数及びＣＰＵの接続位置等）により決定されるもので、バスシステムの構成時にバスマスタに各メモリ等に対応させて格納される。Ｒ／Ｗ情報領域２３にはデータ転送がリードであるかライトであるかによりＲまたはＷを設定する。アドレス領域２４にはライトの場合にはデータ領域２５に格納するデータをライトするメモリアドレス、リードの場合にはリードするデータが格納されているメモリアドレスを格納する。データ領域２５にはライトの場合には転送データ、リードの場合には当該バスマスタのアドレス及びリードするデータのサイズを格納する。
【００２５】
パケット送信部３３はパケット作成部３２が作成したパケットを送信するものである。パケット送信部３３は、パケットを送信する場合にはまず当該バスマスタが接続されたバスの使用権を取得し、バスの使用権を取得したらカウンタ繰り下げ部３４に対してパケットに記述されたカウント情報を１繰り下げることを指示し、これが行われた後、当該バスマスタが認識するターゲットデバイス（メモリ等）のアドレスをアドレスバスに出力しデータバスにパケットを複数回に分けて出力することによりパケットの送信を行う。
【００２６】
カウンタ繰り下げ部３４はパケット送信部３３からの指示によりパケットのカウント情報を１繰り下げる処理を行う。パケット受信部３５は当該バスマスタが接続されたバスを介してパケットを構成するデータを受信しこれを蓄積してパケットを構築することによりパケットを受信する。データ受信部３６は受信したパケットのデータ領域から転送データを取り出し、このデータを使用する機能部（図示なし）に渡す。
【００２７】
転送終了通知受信部３７はメモリ１２が送信した転送終了通知をデコーダ１を介して受け取るものである。転送終了通知受信部３７は転送終了通知を受け取った場合にはその旨を割り込み送信部３８に通知する。割り込み送信部３８は転送終了通知受信部３７から転送終了通知を受け取った旨を通知されたことを契機にＣＰＵ５に対して割り込みを送信する。
【００２８】
図４は、ブリッジ７，１０が備える機能の構成を示したブロック図である。ブリッジ７，１０はパケット受信部４１、カウンタ繰り下げ部４２、転送終了通知部４３、及びパケット送信部４４を備える。
【００２９】
パケット受信部４１はバスマスタ等から送信されたパケットをパケット受信部３５と同様に受信する。パケット受信部４１はカウンタ繰り下げ部４２に対して受信したパケットのカウント情報を１繰り下げることを指示する。カウンタ繰り下げ部４２はパケット受信部４１又はパケット送信部４４からの指示によりパケットのカウント情報を１繰り下げる処理を行う。転送終了通知部４３はパケットのカウント情報２２をチェックしてカウント情報２２が０であるならばデコーダ１に対して転送終了通知としてパケットに記述されたＩＤ情報２１を送信する。
【００３０】
パケット送信部４４は受信したパケットを転送するものである。パケット送信部４４は、パケットを送信する場合にはまず当該ブリッジが接続されたバスのうちパケットを受信した側でない方のバスの使用権を取得し、バスの使用権を取得したらカウンタ繰り下げ部４２に対してパケットに記述されたカウント情報２２を１繰り下げることを指示し、これが行われた後、パケット受信側のアドレスバスの情報を送信側のアドレスバスに出力しデータバスにパケットを複数回に分けて出力することによりパケットを送信する。
【００３１】
図５は、メモリ１２が備える機能の構成を示したブロック図である。メモリ１２はパケット受信部５１、カウンタ繰り下げ部５２、転送終了通知部５３、データ読み書き部５４、パケット作成部５５、パケット送信部５６、データ転送制御部５７、及びデータ記憶部５８を備える。
【００３２】
パケット受信部５１はバスマスタ等から送信されたパケットをパケット受信部３５，４１と同様に受信する。パケット受信部５１はカウンタ繰り下げ部５２に対して受信したパケットのカウント情報２２を１繰り下げることを指示する。カウンタ繰り下げ部５２はパケット受信部５１又はパケット送信部５６からの指示によりパケットのカウント情報を１繰り下げる処理を行う。転送終了通知部５３はパケットのカウント情報２２をチェックしてカウント情報が０であるならばデコーダ１に対して転送終了通知としてパケットに記述されたＩＤ情報２１を送信する。
【００３３】
データ読み書き部５４はライトパケット（図２（ｂ））を受信した場合にはパケットのデータ領域２５から転送データ、アドレス領域２４からライトアドレスを取り出し、データ記憶部５８の上記ライトアドレスに上記転送データを格納する。リード要求パケット（図２（ｃ））を受信した場合にはアドレス領域２４からリードアドレス、データ領域２５ｂからサイズを取り出し、データ記憶部５８の上記アドレスから上記サイズ分のデータをデータ転送制御部５７の指示に従い１つのパケットに格納するデータ量分ずつ読み出し、パケット作成部５５に渡す。
【００３４】
パケット作成部５５はリード要求パケットを受信した場合にリードパケット（図２（ｄ））を作成する。ＩＤ領域２１には受信したパケットの内容をコピーする。カウント情報領域２２にはバスマスタにパケットが到着しても０にならない十分大きな数を入れる（これはバスマスタがパケット到着時に転送終了通知を出す必要がないため）。Ｒ／Ｗ領域２３にはＲを入れる。アドレス領域２４にはデータ領域に格納するデータの先頭アドレスを入れる。データ領域２５にはデータ読み書き部５４から渡された、データ記憶部５８から読み出したデータを格納する。
【００３５】
パケット送信部５６はパケット作成部５５が作成したパケットを送信するものである。パケット送信部５６は受信したパケットのデータ領域２５ａから返信アドレスを取得する。パケット送信部５６はパケットを送信する場合にはまず当該バスマスタが接続されたバスの使用権を取得し、バスの使用権を取得したらカウンタ繰り下げ部５２に対してパケットに記述されたカウント情報２２を１繰り下げることを指示し、これが行われた後、上記取得したアドレスをアドレスバスに出力しデータバスにパケットを複数回に分けて出力することによりパケットの送信を行う。
【００３６】
データ転送制御部５７はリードデータを複数パケットに分けて送信する場合の制御を行う。データ記憶部５８はメモリとしてデータを記憶するものである。
【００３７】
図６は、デコーダ１が備える機能の構成を示したブロック図である。デコーダ１は転送終了通知先解析部６１及び転送終了通知送信部６２を備える。転送終了通知先解析部６１はメモリから受信したＩＤ情報２１によりそのＩＤ情報２１に対応したバスマスタを選択する。転送終了通知送信部６２は転送終了通知先解析部６１が選択したバスマスタに対して転送終了通知を送信する。
【００３８】
図７はバスマスタ２，３，６，９のデータ転送に係る処理の流れを示すフローチャートである。以下にバスマスタのデータ転送に係る処理の流れを説明する。
【００３９】
ステップＳ１では、データ転送制御部３１はデータ転送を行うか否かを決定する。データ転送を行う場合には（ステップＳ１でＹＥＳ）ステップＳ３へ進む。ステップＳ３では、パケット作成部３２はＲ／Ｗ等の目的に合わせて送信するパケットを作成する。ステップＳ５では、パケット送信部３３は当該バスマスタが接続されたバスの使用権を得るまで使用権獲得を繰り返す（ステップＳ５でＮＯ）。バスの使用権を獲得したら（ステップＳ５でＹＥＳ）、ステップＳ７へ進む。ステップＳ７では、パケット送信部３３はカウンタ繰り下げ部３４に対しパケットのカウント情報を１繰り下げるよう指示し、カウンタ繰り下げ部３４はこれを実行する。ステップＳ９では、パケット送信部３３はターゲットデバイス（例えばメモリ１２）のアドレスをアドレスバスに出力してパケットを複数回に分けてデータバスに出力する。
【００４０】
ステップＳ１１では、データ転送制御部３１は全転送データが送信し終わったか否かを判定し、送信する転送データがまだある場合には（ステップＳ１１でＹＥＳ）ステップＳ３へ戻り、残りの転送データの送信を行う。全転送データが送信し終わった場合には（ステップＳ１１でＮＯ）ステップＳ１３へ進む。ステップＳ１３では、データ送信部３３はバスを解放する。ステップＳ１の分岐においてデータ転送を行わないと判断した場合（ステップＳ１でＮＯ）及びステップＳ１３の処理が終了した場合にはステップＳ１５へ進む。
【００４１】
ステップＳ１５では、パケット受信部３５はパケットを受信したか否かをチェックし、パケットを受信した場合には（ステップＳ１５でＹＥＳ）ステップＳ１７へ進む。ステップＳ１７では、データ受信部３６はパケットのアドレス領域２４に格納されたアドレスとデータ領域２５に格納されたデータを取り出し、このデータを前記アドレスからのリードデータとして使用する。ステップＳ１５の分岐においてパケットを受信しなかった場合（ステップＳ１５でＮＯ）及びステップＳ１７の処理が終了した場合にはステップＳ１９へ進む。
【００４２】
ステップＳ１９では、転送終了通知受信部３７は転送終了通知をデコーダ１から受信したか否かをチェックし、転送終了通知を受信した場合には（ステップＳ１９でＹＥＳ）ステップＳ２１へ進む。ステップＳ２１では、割り込み送信部３８はＣＰＵ５に対して転送終了割り込みを行う。ステップＳ１９の分岐において転送終了通知を受信しなかった場合（ステップＳ１９でＮＯ）及びステップＳ２１の処理が終了した場合にはステップＳ１へ戻りステップＳ１からの処理を繰り返す。
【００４３】
図８はブリッジ７，１０の処理の流れを示すフローチャートである。以下にブリッジの処理の流れを説明する。
【００４４】
ステップＳ３１では、パケット受信部４１はパケットを受信するまでパケットを受信したか否かをチェックする（ステップＳ３１でＮＯ）。パケットを受信した場合には（ステップＳ３１でＹＥＳ）ステップＳ３３へ進む。ステップＳ３３では、パケット受信部４１はカウンタ繰り下げ部４２に対しパケットのカウント情報２２を１繰り下げるよう指示しカウンタ繰り下げ部４２はこれを実行する。ステップＳ３５では、転送終了通知部４３はパケットのカウント情報２２が０であるか否をチェックする。カウント情報２２が０であるならば（ステップＳ３５でＹＥＳ）ステップＳ３７へ進む。ステップＳ３７では、転送終了通知部４３は転送終了通知としてパケットのＩＤ情報２１をデコーダ１に送信する。
【００４５】
ステップＳ３５の分岐においてカウント情報２２が０でない場合（ステップＳ３５でＮＯ）及びステップＳ３７の処理が終了した場合にはステップＳ３９へ進む。ステップＳ３９では、パケット送信部４４はパケットを受信した側と反対側のバスの使用権を獲得するまで使用権獲得を試みる（ステップＳ３９でＮＯ）。バスの使用権を獲得したら（ステップＳ３９でＹＥＳ）、ステップＳ４１へ進む。ステップＳ４１では、パケット送信部４４はカウンタ繰り下げ部４２に対しパケットのカウント情報２２を１繰り下げるよう指示しカウンタ繰り下げ部４２はこれを実行する。ステップＳ４３では、パケット送信部４４はターゲットデバイス（例えばメモリ１２）のアドレスをアドレスバスに出力してパケットを複数回に分けてデータバスに出力する。ステップＳ４５では、パケット送信部４４はバスを解放する。
【００４６】
図９はメモリ１２のデータ転送に係る処理の流れを示すフローチャートである。以下にメモリ１２のデータ転送に係る処理の流れを説明する。
【００４７】
ステップＳ５１では、パケット受信部５１はパケットを受信したか否かをパケットを受信するまでチェックする（ステップＳ５１でＮＯ）。パケットを受信した場合には（ステップＳ５１でＹＥＳ）ステップＳ５３へ進む。ステップＳ５３では、パケット受信部５１はカウンタ繰り下げ部５２に対しパケットのカウント情報２２を１繰り下げるよう指示し、カウンタ繰り下げ部５２はこれを実行する。ステップＳ５５では、転送終了通知部５３はパケットのカウント情報２２が０であるか否かをチェックする。カウント情報２２が０であるならば（ステップＳ５５でＹＥＳ）、ステップＳ５７へ進む。ステップ５７では、転送終了通知部５３は転送終了通知としてパケットのＩＤ情報２１をデコーダ１に送信する。
【００４８】
ステップＳ５５の分岐においてカウント情報２２が０でなかった場合（ステップＳ５５でＮＯ）及びステップＳ５７の処理が終了した場合にはステップＳ５９へ進む。ステップＳ５９では、データ読み書き部５４はパケットのＲ／Ｗ情報２３をチェックし、Ｗである場合には（ステップＳ５９でＹＥＳ）ステップＳ６１へ進む。ステップＳ６１では、データ読み書き部５４はパケットのアドレス領域２４からアドレス、データ領域２５から転送データを取り出し、データ記憶部５８の上記アドレスに上記転送データを書き込む。
【００４９】
ステップＳ５９の分岐においてＲ／Ｗ情報がＲであった場合には（ステップＳ５９でＮＯ）ステップＳ６３へ進む。ステップＳ６３では、パケット送信部５６はパケットのデータ領域２５ａからパケットの返信アドレス（当該パケットを送信したバスマスタのアドレス）を取り出す。ステップＳ６５では、データ読み書き部５４はパケットのアドレス領域２４からメモリのリードアドレス、データ領域のパケット返信アドレスの後２５ｂからリードするデータのサイズ情報を取り出す。ステップＳ６７では、データ読み書き部５４はデータ転送制御部５７の指示に従い上記リードアドレスから上記サイズ分又は当該パケットで転送する分のデータを読み出しパケット作成部５５に渡す。
【００５０】
ステップＳ６９では、パケット作成部５５は返信用パケット（図２（ｄ））を作成する。ステップＳ７１では、パケット送信部５６はバスの使用権を獲得するまで使用権獲得を試みる（ステップＳ７１でＮＯ）。バスの使用権を獲得したら（ステップＳ７１でＹＥＳ）ステップＳ７３へ進む。ステップＳ７３では、パケット送信部５６はカウンタ繰り下げ部５２に対しパケットのカウント情報２２を１繰り下げるよう指示し、カウンタ繰り下げ部５２はこれを実行する。ステップＳ７５では、パケット送信部５６は受信パケットから取り出した返信先アドレス２５ａをアドレスバスに出力してパケットを複数回に分けてデータバスに出力する。
【００５１】
ステップＳ７７では、データ転送制御部５７は全転送データが送信し終わったか否かを判定し、送信する転送データがまだある場合には（ステップＳ７７でＹＥＳ）ステップＳ６７へ戻り、残りの転送データを送信を行う。全転送データが送信し終わった場合には（ステップＳ７７でＮＯ）ステップＳ７９へ進む。ステップＳ７９では、データ送信部３３はバスを解放する。
【００５２】
図１０はデコーダ１の処理の流れを示すフローチャートである。以下にデコーダ１の処理の流れを説明する。
【００５３】
ステップＳ８１では、転送終了通知先解析部６１は転送終了通知としてバスマスタを識別するためのＩＤ情報２１、例えば識別番号を受信するまで待つ（ステップＳ８１でＮＯ）。ＩＤ情報を受信したら（ステップＳ８１でＹＥＳ）、ステップＳ８３へ進む。ステップＳ８３では、転送終了通知先解析部６１は受信したＩＤ情報をデコードして対応するバスマスタへの信号線を選出する。ステップＳ８５では、転送終了通知送信部６２は選出された信号線をオンにすることにより対応するバスマスタに対して転送終了通知を送信する。
【００５４】
図１１はバスマスタ３からメモリ１２に対してライトを行う際の処理の流れを示す図である。本フローチャートにおいては縦の列に同じデバイスの処理が並べられている。以下にこの流れを説明する。
【００５５】
ステップＳ９１では、バスマスタ３はＩＤ情報２１に３、カウント情報２２に４が格納されたパケットを作成し、バス４の使用権を獲得する。ステップＳ９３では、バスマスタ３はカウント情報２２を１繰り下げ３にする。ステップＳ９５では、バスマスタ３はパケットをバス４に出力しメモリ１２に対して送信する。ステップＳ９７では、ブリッジ７がパケットを受信する。ステップＳ９９では、ブリッジ７はカウント情報２２を１繰り下げ２にする。ステップＳ１０１では、ブリッジ７はバス８の使用権を獲得する。ステップＳ１０３では、ブリッジ７はカウント情報２２を１繰り下げ１にする。ステップＳ１０５では、ブリッジ７はパケットをバス８に出力しメモリ１２に対して送信する。
【００５６】
ステップＳ１０７では、ブリッジ１０がパケットを受信する。ステップＳ１０９では、ブリッジ１０はカウント情報２２を１繰り下げて０にする。ステップＳ１１１では、ブリッジ１０はデコーダ１に転送終了通知としてＩＤ情報２１に格納された数「３」を送信する。ステップＳ１１３では、ブリッジ１０はバス１１の使用権を獲得する。ステップＳ１１５では、ブリッジ１０はカウント情報２２を１繰り下げて「−１」とする。ステップＳ１１７では、ブリッジ１０はパケットをバス１１に出力しメモリ１２に対して送信する。ステップＳ１１９では、メモリ１２はパケットを受信してパケット内の転送データを指定されたアドレスに書き込む。
【００５７】
一方、ステップＳ１２１では、デコーダ１が転送終了通知として数「３」をブリッジ１０から受信する。ステップＳ１２３では、デコーダ１は「３」をデコードしバスマスタ３への信号線をオンにすることにより転送終了通知を行う。ステップＳ１２５では、バスマスタ３は転送終了通知を受け取る。ステップＳ１２７では、バスマスタ３はＣＰＵ５に転送終了割り込みを発生する。
【００５８】
図１２はバスマスタ９からメモリ１２に対してライトを行う際の処理の流れを示す図である。以下にこの流れを説明する。
【００５９】
ステップＳ１３１では、バスマスタ９はＩＤ情報２１に９、カウント情報２２に２が格納されたパケットを作成し、バス１１の使用権を獲得する。ステップＳ１３３では、バスマスタ９はカウント情報２２を１繰り下げ１にする。ステップＳ１３５では、バスマスタ９はパケットをバス１１に出力しメモリ１２に対して送信する。ステップＳ１３７では、メモリ１２がパケットを受信する。ステップＳ１３９では、メモリ１２はカウント情報２２を１繰り下げ０にする。ステップＳ１４１では、メモリ１２はデコーダ１に転送終了通知としてＩＤ情報２１に格納された数「９」を送信する。一方、ステップＳ１４３では、デコーダ１が転送終了通知として数「９」をメモリ１２から受信する。ステップＳ１４５では、デコーダ１は「９」をデコードしバスマスタ９への信号線をオンにすることにより転送終了通知を行う。ステップＳ１４７では、バスマスタ９は転送終了通知を受け取る。ステップＳ１４９では、バスマスタ９はＣＰＵ５に転送終了割り込みを発生する。
【００６０】
このように本実施形態によれば、例えばバスマスタ３がメモリ１２に対して行うＤＭＡ転送（例えばライト）においてはバスマスタ３から送信されたパケットがブリッジ１０に到着した時点において転送終了通知がデコーダを介してバスマスタ３に送信され、これを受けたバスマスタ３はＣＰＵ５に割り込みを行う。また、例えばバスマスタ９がメモリ１２に対して行うＤＭＡ転送（例えばライト）においてはバスマスタ９から送信されたパケットがメモリ１２に到着した時点において転送終了通知がデコーダを介してバスマスタ９に送信され、これを受けたバスマスタ９はＣＰＵ５に割り込みを行う。このようにデータ転送に係るバスマスタに対する転送終了通知は当該データ転送に対する競合が起こらなくなった時点（ＣＰＵからのデータ転送に当該パケットが追い越されなくなるタイミングまで到達したとき）において送信されることとなり、まだ競合が起き得る時点において転送終了通知が行われてしまうことを防ぐことができると共に、データ転送の競合が起こらないにもかかわらずデータ転送が終了するまで転送終了通知が行われないということを防ぐことができる。これによりデータ転送終了の割り込みを好適なタイミングで行うことができデータ転送の効率化が図れる。
【００６１】
なお、リードの場合の転送終了通知を送信する時期はライトの場合と同じタイミングとなる。これは、リード要求パケットが他のパケットに追い越されなければ、その後同じ領域へのライトパケットが 来ても、ライトされる以前のデータを読んだライトパケットを返せるためである。また、ＤＭＡ転送に係るデータを複数のパケットに分けて送信する場合には最終のパケット（転送データの末尾が格納されたパケット）以外のパケットのカウント情報２２には当該パケットが送信先デバイスに到着しても０にならない十分大きな数を格納する。最終パケット以外のパケットが送信先デバイスに到着しても転送終了通知を行わないようにするためである。
【００６２】
本実施形態においては、パケットを送信するデバイスがバスの使用権を獲得した場合、及びデバイスがパケットを受信した場合にカウント情報２２を１繰り下げたが、必ずしもこのようにする必要はなく例えばデバイスがパケットを受信した場合のみにカウント情報２２を１繰り下げるようにしてもよい。
【００６３】
また、本実施形態においては、データ領域２５を固定長としたが可変長にしてもよい。この場合にはデータ領域の前にデータサイズ領域を設けデータ領域に格納されたデータの大きさを格納するようにすればよい。
【図面の簡単な説明】
【００６４】
【図１】本発明の一実施形態におけるバスシステムの構成を示すブロック図である。
【図２】本発明の一実施形態におけるパケットの例を示す図で、（ａ）は基本フォーマット、（ｂ）はライトパケット、（ｃ）はリード要求パケット、（ｄ）はリードパケットである。
【図３】本発明の一実施形態におけるバスマスタの機能構成を示すブロック図である。
【図４】本発明の一実施形態におけるブリッジの機能構成を示すブロック図である。
【図５】本発明の一実施形態におけるメモリの機能構成を示すブロック図である。
【図６】本発明の一実施形態におけるデコーダの機能構成を示すブロック図である。
【図７】バスマスタのデータ転送に係る処理の流れを示すフローチャートである。
【図８】ブリッジの処理の流れを示すフローチャートである。
【図９】メモリのデータ転送に係る処理の流れを示すフローチャートである。
【図１０】デコーダの処理の流れを示すフローチャートである。
【図１１】バスマスタ３からメモリ１２にライトする場合の処理の流れを示すフローチャートである。
【図１２】バスマスタ９からメモリ１２にライトする場合の処理の流れを示すフローチャートである。
【符号の説明】
【００６５】
１  デコーダ（終了通知仲介装置）
２，３，６，９  バスマスタ（主転送装置）
４，８，１１  バス
５  ＣＰＵ（中央処理装置）
７，１０  ブリッジ（バス接続装置）
１２  メモリ（従転送装置）
３２  パケット作成部
３３  パケット送信部（送信手段）
３５  パケット受信部
３８  割り込み送信部（割り込み手段）
４２  カウンタ繰り下げ部（変更手段）
４３  転送終了通知部（通知手段）
６１  転送終了通知先解析部（通知受信手段）
６２  転送終了通知送信部（通知送信手段）
【図１】
2005135109.tif 000003
【図２】
2005135109.tif 000004
【図３】
2005135109.tif 000005
【図４】
2005135109.tif 000006
【図５】
2005135109.tif 000007
【図６】
2005135109.tif 000008
【図７】
2005135109.tif 000009
【図８】
2005135109.tif 000010
【図９】
2005135109.tif 000011
【図１０】
2005135109.tif 000012
【図１１】
2005135109.tif 000013
【図１２】
2005135109.tif 000014