(57)【特許請求の範囲】
【請求項１】
データを複数のブロックに分割し、各ブロックを格納した連続パケットを２つの装置間で連続的に転送するためのパケット転送制御装置であって、
前記複数のブロックを格納するためのメモリと、前記連続転送パケットに格納されたブロックを記憶するためのバッファと、前記メモリと前記バッファ間のデータの直接転送を制御する直接メモリアクセス制御手段と、を備えた転送制御装置において、
受信したパケットが連続転送パケットか前記連続パケット以外の非連続パケットかを判定し、連続転送パケットに格納されたブロックを前記バッファに格納し、前記非連続パケットのヘッダ情報をヘッダ格納手段に格納するパケット識別手段と、
前記ヘッダ格納手段のヘッダ情報に基づいて、前記非連続パケットに対する応答パケットを送信する送信手段と、を備え、
前記パケット識別手段は、直接メモリアクセスを予告するパケットを受信すると、そのパケットのヘッダ情報を連続転送ヘッダ情報格納手段に格納するとともに、該格納したヘッダ情報と前記受信したパケットのヘッダ情報とを比較することで、前記受信したパケットが連続転送パケットか否かを判定する、ことを特徴とするパケット転送制御装置。
【請求項２】
請求項１に記載のパケット転送制御装置において、
前記バッファとは別にバッファを備え、該バッファに、非連続パケットに保持されるデータを格納する、ことを特徴とするパケット転送制御装置。
【請求項３】
請求項１又は２に記載のパケット転送制御装置において、
前記パケット識別手段は、前記受信したパケットにヘッダ情報として保持されるパケットの種類に基づいてパケットが連続転送パケットか否かを判定する、ことを特徴とするパケット転送制御装置。
【請求項４】
請求項１又は２に記載のパケット転送制御装置において、
前記連続転送ヘッダ情報格納手段に格納されたヘッダ情報は、直接メモリアクセスを実施する相手のノード認識情報を含み、
前記パケット識別手段は、前記受信したパケットにヘッダ情報として保持される転送元のノード認識情報に基づいてパケットが連続転送パケットか否かを判定する、ことを特徴とするパケット転送制御装置。
【請求項５】
請求項１乃至４のいずれか一項に記載のパケット転送制御装置において、
前記直接メモリアクセス制御手段は、前記パケット識別手段が前記直接メモリアクセスを予告するパケットを受信したときに発行されるイネーブル信号に基づいて、前記メモリと前記バッファ間のデータの直接転送を準備する、ことを特徴とするパケット転送制御装置。
【請求項６】
請求項１乃至５のいずれか一項に記載のパケット転送制御装置において、
前記直接メモリアクセス制御手段は、前記複数のブロックに分割されたデータの直接転送が終了したとき割り込み信号を発生する、ことを特徴とするパケット転送制御装置。
【請求項７】
受信したパケットが直接メモリアクセス用データを保持するパケットであるか否かを判定し、
直接メモリアクセス用データの保持パケットであれば、該パケットが保持するデータをメモリに転送すべくバッファに格納させ、
直接メモリアクセス用データの非保持パケットであれば、該パケットが保持するヘッダ情報をヘッダ格納手段に格納させ、
前記保持パケットを連続受信しているときに、前記非保持パケットを受信した場合、前記ヘッダ格納手段に格納するヘッダ情報に基づいて、非保持パケットが保持するコマンドを処理し、
直接メモリアクセス転送を予告するパケットを受信したとき、そのパケットのヘッダ情報を格納し、該ヘッダ情報と、受信されたパケットのヘッダ情報とを比較することで、受信したパケットが直接メモリアクセス用データを保持するパケットであるか否かを判定するようにしたパケット転送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高速で大量のデータを転送するパケット転送制御装置及びその方法に関するものである。
【０００２】
高速で大量のデータを転送する転送制御装置としてのインタフェース装置、例えばＩＥＥＥ１３９４規格を採用したインタフェース装置は、できる限り効率よく動作させる必要がある。つまり、インタフェース装置はマイクロプロセッサユニット（以下、ＭＰＵという）等によって制御されるが、効率よくデータを転送するためには、できる限り外部装置からのアクセスを少なくして効率よく転送動作を実現する必要がある。しかしながら、実際には、１つの大きなデータの転送中に、他の装置から複数のデータの転送が行われる場合もあり、ＭＰＵ等の制御装置を効率よく利用する仕組みが必要となっている。
【０００３】
【従来技術】
ＩＥＥＥ１３９４規格等に規定されるパケット転送方式は、転送されるデータの他にヘッダ情報が追加された形式であって、パケットが受信されると、ＭＰＵがパケットのヘッダ情報を解読して、そのヘッダ情報に続くデータの取り扱いを決めている。１つのパケットに格納できるデータの大きさはプロトコルで規定される。ところが、この転送方法を採用していると、画像情報のような情報量の大きなデータを扱う場合では、１つのパケットにデータが収まらなくなり元のデータを複数のブロックに分割してデータ転送を行っている。つまり、分割したブロック（データ）毎にヘッダ情報を格納したパケットを生成し、該複数個のパケットを連続して転送することで、大きなデータの転送を行っている。勿論、受信側では、複数のパケットに分割されたデータをＭＰＵが順にメモリに格納することで元のデータを再現することになる。この様なパケットは、画像（例えば動画）表示の為などに用いられることから、短時間に連続して送られてくるため、これを処理するＭＰＵの負荷が増大する。
【０００４】
直接メモリアクセス（ＤＭＡ）転送方式は、大量のデータを取り扱うために開発された手法であり、該方式を適用することでＭＰＵを介さずに外部装置からのデータをメモリに取り込むことができる。
【０００５】
詳しくは、図２に示すように、ＤＭＡ転送方式を採用したパケット転送制御装置（ノード）３０は、インタフェース３１、バッファ３２、ＭＰＵ３３、ＤＭＡコントローラ３４、メモリ３５を含む。インタフェース３１は、ネットワークからヘッダとデータとを含むパケットを取り込む。
【０００６】
そして、インタフェース３１は、受信パケットから分離したヘッダをＭＰＵ３３へ、データをバッファ３２に出力する。ＭＰＵ３３は、ヘッダの情報に基づいて受信データがＤＭＡ転送用データであると判定するとＤＭＡコントローラ３４にイネーブル信号を出力し、ＤＭＡコントローラ３４はバッファ３２とメモリ３５との間でデータ転送を開始する。
【０００７】
パケット転送制御装置３０は、引き続きネットワークから連続して転送されてくるＤＭＡ転送用データをバッファ３２に取り込み、ＤＭＡコントローラ３４によりデータをメモリ３５に格納する。つまり、ＭＰＵ３３が自身（自ノード）宛のＤＭＡ転送を検知した後は、ＤＭＡコントローラ３４が受信データを格納するバッファ３２とメモリ３５との仲介を行い、これによってＭＰＵ３３がデータ転送処理から開放される。
【０００８】
【発明が解決しようとする課題】
ところで、上記のように、ＤＭＡ転送方式を採用することでＭＰＵ３３の負荷が低減されるため、ＭＰＵ３３はその他の処理（例えば、データプロセッシング等）を行うことができる。言い換えれば、バッファ３２及びメモリ３５の入出力はＤＭＡコントローラ３４が占有し、ＭＰＵ３３がその間それを行うことができない。
【０００９】
そのため、図３に示すように、ノード４０がノード３０にパケットを連続して転送し、ノード３０がそのデータ処理を行っているときに、ネット上の他の装置（ノード）４１がノード３０に対して、アクセス要求のためのパケットを発行しても、上記のようにＤＭＡ転送中はＭＰＵ３３の介在を受けないため、ノード３０のＭＰＵ３３は、ノード４１から発行されたパケットを受け付けることができない。従って、ノード３０は発行されたパケットに対する応答をノード４１に返すことができない。この場合、発行されたパケットは無効になるため、ノード４１はノード３０からの応答を受信するまでアクセス要求を再発行（リトライ）することになる。つまり、この方式を採用すると、ネットワークに接続された他の装置の処理効率が低下してしまう。
【００１０】
アクセス要求に対して「アクセス拒否」の応答があれば、アクセス要求を行ったノード４１は、その処理を破棄して他の処理を実行することができるため、処理効率の低下を抑えることができる。しかし、上記のようにアクセス要求の応答が戻ってこない場合、通常そのノード４１は処理が一時停止してしまって、それ以外の処理を実施できない、或いは、限られた処理しか実施できないことになる。
【００１１】
本発明は上記問題点を解決するためになされたものであって、その目的は、直接メモリアクセス転送方式を採用し、直接メモリアクセス用データを保持するパケットを連続して転送しているとき、他のパケット転送を行うことができるパケット転送制御装置及びパケット転送方法を提供することにある。
【００１２】
【課題を解決するための手段】
請求項１に記載の発明によれば、受信したパケットが、パケット識別手段によって直接メモリアクセス用データを保持した連続転送パケットか連続パケット以外の非連続パケットかが判定される。そして、直接メモリアクセス用データを保持した連続転送パケットであれば、該パケットのデータがバッファに格納され、直接メモリアクセス制御手段によりメモリに転送される。一方、受信したパケットが直接メモリアクセス用データを保持しない非連続パケットであれば、該パケットのヘッダ情報がヘッダ格納手段に格納される。そして、ヘッダ格納手段に格納されたヘッダ情報に基づいて、非連続パケットに対する応答パケットが送信される。パケット識別手段は、直接メモリアクセスを予告するパケットを受信すると、そのパケットのヘッダ情報を連続転送ヘッダ情報格納手段に格納するとともに、該格納したヘッダ情報と前記受信したパケットのヘッダ情報とを比較することで、前記受信したパケットが連続転送パケットか否かを判定する。
【００１３】
従って、直接メモリアクセス用のパケットが連続で受信されているとき、その際に他の装置からのパケットが受信された場合、ヘッダ格納手段に格納するヘッダ情報に基づいて、該受信パケットに対する応答が可能となる。具体的に、外部装置からの直接メモリアクセス用データを保持したパケットを連続して受信しているときであっても、他の装置からのアクセス要求コマンドに対し、アクセス拒否コマンドが発行される。このため、アクセス拒否コマンドを受信する他の装置は、通信のリトライ処理を中止して、別の処理を実行できるようになる。その結果、本パケット転送制御装置とネットワークを介して接続する他の装置を含めた処理効率が向上される。
【００１４】
請求項２に記載の発明によれば、直接メモリアクセス用データが格納されるバッファとは別に設けられたバッファに、非連続パケットが保持するデータが格納される。この場合、ＤＭＡ転送用データの処理中においても、ＤＭＡ転送用データとは別の非連続パケットに保持されるデータの処理が可能となる。
【００１５】
データを複数のブロックに分割し、該ブロックを格納したパケットを連続して転送処理する場合、この連続転送パケットには規則性があり、同パケットか否かを容易に判定することが可能である。
【００１６】
このため、請求項３に記載の発明によれば、受信したパケットにヘッダ情報として保持されるパケットの種類（TCODE）に基づいてパケット識別手段により連続転送パケットか否かが判定される。
【００１７】
また、請求項４に記載の発明によれば、パケットにヘッダ情報として保持される転送元のノード認識情報、即ち転送元のノードＩＤ（Physical ID）に基づいてパケット識別手段により連続転送パケットか否かが判定される。なお、このとき、連続転送ヘッダ情報格納手段に格納されたヘッダ情報には、直接メモリアクセスを実施する相手のノード認識情報が含まれる。
【００１８】
請求項５に記載の発明によれば、パケット識別手段が直接メモリアクセスを予告するパケットを受信したとき、イネーブル信号が発行される。同イネーブル信号に基づいて直接メモリアクセス制御手段により、メモリとバッファ間のデータの直接転送が準備される。
【００１９】
請求項６に記載の発明によれば、複数のブロックに分割されたデータの直接転送が終了したとき直接メモリアクセス制御手段により割り込み信号が発生される。これにより、連続転送パケットの転送の終了が判断される。
【００２０】
請求項７に記載の発明によれば、受信したパケットが直接メモリアクセス用データを保持するパケットであるか否かが判定され、直接メモリアクセス用データの保持パケットであれば、該パケットが保持するデータがバッファに格納された後、該格納データがメモリに転送される。つまり、直接メモリアクセス転送が行われる。一方、直接メモリアクセス用データを保持しないパケットであれば、該パケットが保持するヘッダ情報をヘッダ格納手段に格納させる。従って、直接メモリアクセス用のパケットを連続受信しているときに、非保持パケットを受信した場合、ヘッダ格納手段に格納したヘッダ情報に基づいて、非保持パケットが保持するコマンドが処理される。
【００２１】
また、直接メモリアクセス転送を予告するパケットを受信したとき、そのパケットのヘッダ情報が格納される。そして、該ヘッダ情報と、受信されたパケットのヘッダ情報とが比較され、受信したパケットが直接メモリアクセス用データを保持するパケットであるか否かが判定される。
【００２２】
【発明の実施の形態】
以下、本発明を具体化した一実施形態を説明する。
図１は、ネットワーク用のＩＥＥＥ１３９４バスに接続するパケット転送制御装置１のブロック回路図である。
【００２３】
パケット転送制御装置１は、インタフェース（Ｉ／Ｆ）２，３，４、物理層処理回路５，６，７、リンク層処理回路８，９，１０、パケット生成回路１１，１２、ヘッダ識別回路１３、データ格納バッファ１４，１５、ヘッダ情報格納回路１６，１７、メモリ１８、ＤＭＡコントローラ（ＤＭＡＣ）１９、ＭＰＵ２０を含んでいる。
【００２４】
本実施形態のパケット転送制御装置１では、データ量が多く連続して転送する必要がある画像データ等のデータをバッファ１４とメモリ１８間で転送するためにＤＭＡ転送方式を採用している。同データは分割された状態で複数のパケットに格納され、ＩＥＥＥ１３９４バス上において、非同期パケット（Asynchronous Packet）として連続転送される。従って、本実施形態におけるパケット転送制御装置１は、ノード間の認識、大きなデータを転送するためのネゴシエーション、コマンド、ステータスなどの判断がＭＰＵ２０を除く他の回路にて行われる。なお、同データをアイソクロノスパケット（ Isochronous Packet）として転送してもよい。
【００２５】
また、パケットは、ヘッダ情報を格納するヘッダとデータを含む。ヘッダ情報は、
（１）転送先ノードＩＤ（Physical ID）、
（２）転送元ノードＩＤ（Physical ID）、
（３）パケットの種類（Transaction code:TCODE）、
を含み、更に連続転送を行うためのヘッダ情報は、
（４）転送データの格納場所（データ格納領域のオフセット：destination offset）
が含まれる。
【００２６】
ただし、パケット転送制御装置１では、データを格納したパケット以外のパケットも転送処理される。このパケットの種類として、例えば、読み出し要求、読み出し応答、書き込み要求、書き込み応答等のコマンドを含むものがあり、同パケットにより他の外部装置から要求されたコマンドがＭＰＵ２０により判定されて、同コマンドに応じた処理が実施される。
【００２７】
本実施形態では、ＤＭＡ転送用データを保持して連続転送されるパケットを連続転送パケットといい、それ以外のパケットを非連続パケットという。
詳しくは、インタフェース２，３，４は、他の装置との間でパケットのやり取りを行うべくＩＥＥＥ１３９４バスに接続される。インタフェース２は、パケットを受信する受信ポートであり、インタフェース３，４は、パケットを送信する送信ポートである。
【００２８】
物理層処理回路５は、インタフェース２に接続され、インタフェース２から受信パケットを受け取る。また、物理層処理回路５は、リンク層処理回路８に接続され、リンク層処理回路８に受信パケットを出力する。このとき、物理層処理回路５は、電気的信号をリンク層処理回路８が扱う論理的な信号に変換する役割を果たす。
【００２９】
物理層処理回路６，７は、リンク層処理回路９，１０にそれぞれ接続され、リンク層処理回路９，１０から送信パケットを入力する。また、物理層処理回路６，７は、インタフェース３，４とそれぞれ接続され、インタフェース３，４に送信パケットを送出する。このとき、物理層処理回路６，７は、リンク層処理回路９，１０が扱う論理的な信号を電気的信号に変換する役割を果たす。
【００３０】
なお、リンク層処理回路８は、パケットのフォーマットチェック等を行い、確実なパケット転送を保証している。具体的には、リンク層処理回路８は自身宛のパケットであれば該パケットをヘッダ識別回路１３に供給する。また、自身宛のパケットでない場合、同パケットは物理層処理回路６，７及びインタフェース３，４等を介して他の外部装置に送信するように構成される。
【００３１】
パケット生成回路１１，１２は、リンク層処理回路９，１０に接続され、同パケット生成回路１１，１２にて生成した送信パケットをリンク層処理回路９，１０に出力する。つまり、パケット生成回路１１，１２は、データ格納バッファ１４及びＭＰＵ２０からの入力データに対して、送信したいパケットに適合したヘッダ情報を追加する。
【００３２】
ヘッダ識別回路１３は、リンク層処理回路８と接続されてリンク層処理回路８からの自身宛の受信パケットを受け取る。また、ヘッダ識別回路１３は、ＤＭＡ転送、即ち、連続転送のためのデータ格納バッファ１４及びヘッダ情報格納回路１６に接続される。さらに、ヘッダ識別回路１３は、ＤＭＡ転送以外のパケット転送、即ち、非連続転送のためのデータ格納バッファ１５及びヘッダ情報格納回路１７に接続される。
【００３３】
ヘッダ識別回路１３は、リンク層処理回路８から入力された受信パケットのヘッダ情報に基づいて受信パケットの識別を行う。詳述すると、ヘッダ識別回路１３は、ヘッダ情報に含まれるパケットの種類、即ちTCODE に基づいて、連続転送のためのパケットか否かを判定する。その判定結果に基づいて、ヘッダ識別回路１３は、連続転送パケットに含まれるヘッダ情報をヘッダ情報格納回路１６に、そのパケットに含まれるデータをバッファ１４に出力する。一方、受信パケットが非連続パケットの場合、ヘッダ識別回路１３は、そのパケットに含まれるヘッダ情報を１７に、そのパケットに含まれるデータをバッファ１５に出力する。
【００３４】
なお、ＤＭＡ転送を予告するコマンドを保持したパケットが受信され、同パケットがヘッダ識別回路１３により識別された場合に、ヘッダ情報格納回路１６にはそのパケットのヘッダ情報が格納される。このヘッダ情報には、転送データの最初の場所（アドレス）、連続で転送する総データ長が含まれる。
【００３５】
バッファ１４は、メモリ１８及びＤＭＡコントローラ１９と接続される。ＤＭＡ転送用データがバッファ１４に格納されたとき、ＤＭＡコントローラ１９によってバッファ１４のデータがメモリ１８へ転送制御される。バッファ１５及びヘッダ情報格納回路１７は、ＭＰＵ２０が接続され、同ＭＰＵ２０は、ＤＭＡコントローラ１９及びパケット生成回路１２と接続される。
【００３６】
ＭＰＵ２０は、ヘッダ情報格納回路１７に格納されたヘッダ情報に含まれるコマンドに応じて各処理を実行する。具体的には、ＭＰＵ２０は、バッファ１５に格納されたデータを処理したり、非連続パケットを発行するためのデータをパケット生成回路１２に出力する。或いは、ＭＰＵ２０は、ＤＭＡ転送を開始させるためのイネーブル信号ＥＮＢをＤＭＡコントローラ１９に出力する。このイネーブル信号ＥＮＢにより、ＤＭＡコントローラ１９によるバッファ１４及びメモリ１８間のデータ転送制御が開始される。そして、ＤＭＡ転送が終了したときに、ＤＭＡコントローラ１９からＭＰＵ２０に対して割り込み信号ＩＮＴが出力されて、ＭＰＵ２０は、ＤＭＡ転送の終了を判断する。
【００３７】
また、データ格納バッファ１４は、パケット生成回路１１と接続され、連続転送パケットを送信するためのデータをパケット生成回路１１に出力する。なお、連続転送パケットを連続して送信する場合、ＤＭＡコントローラ１９の制御信号に基づいてメモリ１８に記憶されたデータがデータ格納バッファ１４に転送される。この連続転送パケットの送信が終了したときも、ＤＭＡコントローラ１９からＭＰＵ２０に対して割り込み信号ＩＮＴが出力されて、ＭＰＵ２０は、ＤＭＡ転送の終了を判断する。
【００３８】
このように、本実施形態では、ＤＭＡ転送用データを保持する連続転送パケットの転送中は、ＭＰＵ２０への割り込みを報告しない構成となっている。
大きなデータを複数のブロックに分割して連続転送する場合、即ち、連続転送パケットを転送する場合では、パケットに規則性があるため、連続転送パケットか否かを容易に判定することができる。本実施形態では、この判定をヘッダ情報に含まれるTCODEに基づいて行っているがこれに限定するものではなく、例えば、ノードＩＤにより判定してもよいし、或いは、転送データの格納場所等により判定してもよい。
【００３９】
連続転送パケットに保持されるデータ量は、非連続パケットに保持されるデータ量と比べ大きく、バッファ１４のデータを格納するための容量は、バッファ１５の容量に対して大きく設計される。
【００４０】
本実施形態では、ヘッダ識別回路１３及びヘッダ情報格納回路１６がパケット識別手段に相当し、ヘッダ情報格納回路１７がヘッダ格納手段に相当する。またＭＰＵ２０、パケット生成回路１２、リンク層処理回路１０、物理層処理回路７、インタフェース４が送信手段に相当し、ＤＭＡコントローラ１９が直接メモリアクセス制御手段に相当する。
【００４１】
次に、上記のように構成したパケット転送制御装置１の作用を説明する。
先ず、連続転送パケットを連続して受信する場合を説明する。
今、ヘッダ情報としてＤＭＡ転送を予告するコマンドを備えたパケットが他の装置から送られてくる。すると、該パケットは、インタフェース２、物理層処理回路５、リンク層処理回路８を介してヘッダ識別回路１３に供給される。そして、ヘッダ識別回路１３によってＤＭＡ転送を予告するコマンドを備えたパケットであることが判断され、該パケットのコマンドがヘッダ情報格納回路１７に転送される。このとき、受信パケットに保持されている転送データの最初の場所（格納開始アドレス又はオフセットアドレス）や連続で転送する総データ長などの情報が、ヘッダ情報格納回路１６に格納される。そして、ＭＰＵ２０はヘッダ情報格納回路１７に格納されたコマンドに基づいてＤＭＡコントローラ１９にＤＭＡ転送のイネーブル信号を出力する。更に、ＭＰＵ２０は、格納開始アドレス及び総データ長をＤＭＡコントローラ１９に出力する。これにより、バッファ１４とメモリ１８間のデータの直接転送が準備される。
【００４２】
次いで、ＤＭＡ転送用データを保持した連続転送パケットが送られてくると、パケットの種類（TCODE）に基づいてヘッダ識別回路１３により受信パケットのヘッダ情報が識別され、パケットに保持されているデータがバッファ１４に格納される。その後、バッファ１４に格納されたデータは、ＤＭＡコントローラ１９によりメモリ１８に転送される。
【００４３】
引き続き、ＤＭＡ転送用データを保持した連続転送パケットが受信された場合、上記と同様の処理が実行されて、該受信パケットのデータがバッファ１４を介してメモリ１８に格納される。このように、ＭＰＵ２０が関与することなく、ＤＭＡコントローラ１９によって、バッファ１４に格納されたデータが順次、メモリ１８に転送される。
【００４４】
その後、ＤＭＡ転送用データの最終データがメモリ１８に格納されると、開始アドレスと総データ長に基づいてＤＭＡコントローラ１９によりＤＭＡ転送の終了が判断されて、ＭＰＵ２０に割り込み信号ＩＮＴが出力される。これにより、複数のブロックに分割されたデータのＤＭＡ転送が終了する。
【００４５】
上述のように、連続転送パケットを連続して受信しているときは、ＭＰＵ２０がＤＭＡ転送に関与しないことから別の処理が実施される。本実施形態では、ＤＭＡ転送用、即ち連続転送のためのデータ格納バッファ１４及びヘッダ情報格納回路１６とは別に、非連続転送のためのデータ格納バッファ１５とヘッダ情報格納回路１７を備えたので、ＤＭＡ転送を実施中に、他のパケットの転送処理が行われる。
【００４６】
ここで、上記のようにパケット転送制御装置１が連続転送パケットを連続して受信しているときに、別の装置から本装置１に対してアクセス要求コマンドが送られてきた場合を説明する。
【００４７】
具体的に、例えば、ＤＭＡ転送のためのアクセス要求を保持したパケットが送られてきた場合、ヘッダ識別回路１３によって該受信パケットのヘッダ情報がヘッダ情報格納回路１６に格納された情報と比較され、今、ＤＭＡ転送処理している連続転送パケットでないことが判定される。そして、ヘッダ識別回路１３によって受信パケットのヘッダ情報がヘッダ情報格納回路１７に格納される。すると、ヘッダ情報格納回路１７に格納されたアクセス要求コマンドに基づいてＭＰＵ２０によりアクセス拒否コマンドを保持した応答パケットが発行される。つまり、ＭＰＵ２０からのデータに基づきパケット生成回路１２によってアクセス拒否コマンドを保持したパケットが生成される。そして、同パケットは、リンク層処理回路１０、物理層処理回路７、インタフェース４を介してＩＥＥＥ１３９４バス上に転送される。
【００４８】
このようにして、本装置１からアクセス拒否コマンドを保持した応答パケットが前記アクセス要求を発行した他の装置に転送されると、アクセス拒否コマンドを受信した他の装置は、本装置１へのＤＭＡ転送処理を中止して別の処理を実施する。
【００４９】
また、連続転送パケットではなく、例えば、自身宛の書き込みデータを保持した非連続パケットが受信された場合では、ヘッダ識別回路１３によってデータがバッファ１５に格納された後に、ＭＰＵ２０によって該受信パケットのデータが処理される。
【００５０】
さらには、連続転送パケットを連続して受信しているときは、ＭＰＵ２０がＤＭＡ転送に関与しないことから、ＤＭＡ転送処理を行っている装置とは別の装置に対して送信パケットを送信することも可能である。つまり、ＭＰＵ２０によりパケット生成回路１２を用いて送信パケットが生成されて、該パケットがリンク層処理回路１０、物理層処理回路７、インタフェース４を介してＩＥＥＥ１３９４バス上に転送される。
【００５１】
次に、パケット転送制御装置１を用いて連続転送パケットを連続して送信する場合を説明する。
先ず、ＭＰＵ２０はＤＭＡコントローラ１９に対してＤＭＡ転送するためのメモリ１８の領域（データの先頭番地及びデータ長など）を指定する。すると、ＤＭＡコントローラ１９によりメモリ１８に記憶されているデータがバッファ１４に転送される。所定のデータがバッファ１４に転送されると、パケット生成回路１１にデータが伝達されて連続転送パケットが生成される。そして、該パケットがリンク層処理回路９、物理層処理回路６、インタフェース３を介して外部装置に送信される。その後、ＤＭＡコントローラ１９により指定されるメモリ１８の領域のデータが全て転送されるまで、送信パケットが生成されて連続転送される。このように、ＭＰＵ２０が関与することなく画像データのような大きなデータの送信処理が実施される。
【００５２】
本パケット転送制御装置１では、連続転送パケットを連続して送信しているときにおいても、ＭＰＵ２０により別の処理が実施される。
具体的には、ＤＭＡコントローラ１９によりパケットが連続して転送処理されているときに、例えば、今、ＤＭＡ転送している相手装置以外の他の装置に対してパケットの転送処理が実施される。この場合、ＭＰＵ２０は、パケット生成回路１２を用いて送信パケットを生成して、該パケットがリンク層処理回路１０、物理層処理回路７、インタフェース４を介して別の装置に対して発行される。
【００５３】
また、連続転送パケットを連続して送信しているときに、今、ＤＭＡ転送している相手装置以外の他の装置から受信するパケットの処理が実施される。この場合、受信パケットのヘッダ情報がヘッダ情報格納回路１７に格納されて、ＭＰＵ２０により受信処理が実施される。このとき、受信パケットにデータが保持されていれば、該データがデータ格納バッファ１５に格納されて、ＭＰＵ２０によって処理される。
【００５４】
このように、ＤＭＡ転送用データ、即ち、連続転送パケットに保持されるデータは、ＭＰＵ２０が介在することなく効率よく転送処理が実施され、それ以外の転送パケットはＭＰＵ２０により転送処理が実施される。
【００５５】
尚、図１のインタフェース３，４、物理層処理回路６，７、リンク層処理回路９，１０、パケット生成回路１１，１２は、連続転送パケットに関わる部分とそれ以外のパケット転送に関わる部分とに機能的に表している。従って、各回路３〜１２をそれぞれ１つの回路３，６，９，１１（又は４，７，１０，１２）にてパケット出力のための処理を行う構成としてもよい。
【００５６】
以上記述したように、本実施の形態によれば、以下の効果を奏する。
（１）連続転送パケットを連続して受信しているときに、別のパケットの受信処理が実施できる。具体的に、パケット転送制御装置１は、今、ＤＭＡ転送を行っている装置とは別の装置からのアクセス要求に対してアクセス拒否の応答を発行できる。このため、他の装置は、アクセス拒否コマンドを保持するパケットを受信でき、パケット転送制御装置１に対する転送処理のリトライを繰り返す必要がない。従って、本装置１とＩＥＥＥ１３９４バスを介して接続する他の装置を含むシステム全体の処理効率を向上させることができる。
【００５７】
（２）ＤＭＡ転送を予告するパケットが受信されたとき、ＭＰＵ２０によりＤＭＡコントローラ１９にイネーブル信号ＥＮＢが発行されることで、ＤＭＡ転送が開始される。ヘッダ情報格納回路１６の格納情報に基づいて、ヘッダ識別回路１３により受信パケットがＤＭＡ転送用データを保持した連続転送パケットであることが判定され、ＤＭＡ転送用データがデータ格納バッファ１４に格納された後、ＤＭＡコントローラ１９によりメモリ１８に転送される。複数に分割されたＤＭＡ転送用データが全てメモリ１８に格納されたとき、ＤＭＡコントローラ１９によりＭＰＵ２０に割り込み信号が発生され、ＤＭＡ転送が終了される。従って、ＭＰＵ２０が係わることなく、連続転送されるＤＭＡ転送用データの受信処理を実施することができる。
【００５８】
（３）ＤＭＡ転送用データのためのバッファ１４とは別に、ＤＭＡ転送用データ以外のデータを格納するバッファ１５を設け、ヘッダ識別回路１３により受信パケットが保持するデータが振り分けられる。これにより、ＤＭＡ転送用データは、それ以外のデータが割り込むことなく、バッファ１４を介してメモリ１８に格納することができる。また、連続転送されるＤＭＡ転送用データの処理中に、ＤＭＡ転送用以外のデータの処理も可能となる。
【００５９】
（４）パケットが保持するデータ量に合わせてバッファ１４はバッファ１５よりもその容量が大きく構成されている。このようにすれば、本パケット転送制御装置１を半導体チップとして具体化した場合、チップコストを向上させることができ、コスト面で有利なものとなる。
【００６０】
（５）ＤＭＡ転送用データ以外のデータを保持する非連続パケットが受信されたとき、ヘッダ識別回路１３によってヘッダ及びデータが分離され、ヘッダの情報がヘッダ情報格納回路１７に格納されるとともにデータがデータ格納バッファ１５に格納される。つまり、ＭＰＵ２０はデータを保持する受信パケットからヘッダ情報を分離する処理を行う必要がない。従って、ＭＰＵ２０の処理負荷を低減できる。
【００６１】
尚、上記各実施形態は、以下の態様で実施してもよい。
○連続転送パケットを連続して受信しているとき、その際に受信するパケットは必ずしもＤＭＡ転送用データを含むパケットに限定しない。例えば、ＤＭＡ転送の状態を返信させる要求コマンドを含むパケットであってもよいし、或いは、ＤＭＡ転送を中止させる要求コマンドを含むものであってもよい。この場合、ヘッダ識別回路１３により要求コマンドを認識し、パケット生成回路１１等を用いて送信パケットを送信する。このようにすれば、ＤＭＡ転送の状態を返信させる、或いは中止させる要求コマンドを含むパケットを受信したときにおいても、ＭＰＵ２０は、ＤＭＡ転送処理に拘わることなく他の処理を実施することができる。
【００６２】
○上記実施形態では、ヘッダ情報格納回路１７を含む構成であったがこれを省略してもよい。具体的には、バッファ１５にヘッダ情報も同時に格納して、ＭＰＵ２０によりヘッダ情報を処理させるようにする。この場合、バッファ１５がヘッダ格納手段に相当する。このようにしても、連続転送パケットを連続して受信しているとき、他の装置からの別のパケットを受信することができるので、ＩＥＥＥ１３９４バスに接続する装置を含むシステム全体の処理効率を向上させることが可能である。ただし、ＭＰＵ２０は、受信パケットのヘッダ情報を切り離した後にデータを処理する必要があり、ＭＰＵ２０の処理負荷が増加するため、上記実施形態のように、ヘッダ情報格納回路１７を含む構成とした方がより好ましい。
【００６３】
○上記実施形態では、バッファ１５を含む構成であったがこれを省略して実施してもよい。この場合、パケット転送制御装置１がＤＭＡ転送処理を実施中に、別の装置から本装置１に対して非連続パケットが転送されてきたときは、ヘッダ情報のみをヘッダ情報格納回路１７に格納して、ＭＰＵ２０によりアクセス拒否コマンドを含むパケットを発行させる。また、ＤＭＡ転送処理が行われていないときに受信した非連続パケットにデータが格納されていれば、該データをバッファ１４に格納するとともに、ヘッダ情報をヘッダ情報格納回路１７に格納する。そして、ＭＰＵ２０はヘッダ情報格納回路１７のヘッダ情報に基づいて、バッファ１４に格納したデータ処理を実施する。このようにしても、ＩＥＥＥ１３９４バスに接続する装置を含むシステム全体の処理効率を向上させることができる。
【００６４】
○上記実施形態では、ＤＭＡ転送を予告するコマンドは、ＭＰＵ２０で解析される構成となっているが、例えば、ＤＭＡ転送の予告コマンドの解析と、ＤＭＡコントローラ１９へのイネーブル信号の発行をヘッダ識別回路１３やヘッダ情報格納回路１６等が実施する構成としてもよい。このようにすれば、ＤＭＡ転送の開始時及び終了時におけるＭＰＵ２０の処理が必要なくなるので、ＭＰＵ２０の処理負荷をより低減できる。
【００６５】
○上記実施形態では、ＩＥＥＥ１３９４バスに接続するパケット転送制御装置１に具体化したがこれに限定するものではない。例えば、ＳＣＳＩバス，ＵＳＢに接続されるパケット転送制御装置に具体化してもよい。要は、画像データのような大きなデータを分割して複数のパケットに格納し、同パケットを連続転送するパケット転送制御装置に具体化するものであればよい。
【００６６】
○上記実施形態では、ＤＭＡ転送を予告するコマンドを保持したパケットを受信したときに、ヘッダ情報を、ヘッダ情報格納回路１６に格納する構成であったがこれに限定するものではない。例えば、ＤＭＡ転送する相手のＩＤやデータ長、アドレス等が決められている場合、該情報を予めヘッダ情報格納回路１６に設定しておいてもよい。つまり、ＤＭＡ転送を実施する相手のノードＩＤ、パケットの種類等、ＤＭＡ転送用データを判定できる情報をヘッダ情報格納回路１６に格納するものであればよい。
【００６７】
【発明の効果】
以上詳述したように、本発明によれば、直接メモリアクセス用データを保持するパケットを連続して転送しているとき、他のパケット転送を行うことができる。従って、本パケット転送制御装置とネットワークを介して接続する他の装置を含めた処理効率を向上させることができる。
【図面の簡単な説明】
【図１】  一実施形態のパケット転送制御装置のブロック回路図。
【図２】  従来のパケット転送制御装置のブロック回路図。
【図３】  従来のデータ転送を説明するためのブロック図。
【符号の説明】
１  パケット転送制御装置
１３  パケット識別手段を構成するヘッダ識別回路
１４，１５  バッファ
１７  ヘッダ格納手段としてのヘッダ情報格納回路
１８  メモリ
１９  直接メモリアクセス制御手段としてのＤＭＡコントローラ
【図１】
0004098910.tif 000002
【図２】
0004098910.tif 000003
【図３】
0004098910.tif 000004