(57)【特許請求の範囲】
【請求項１】
先頭にヘッダ情報を有する入力データを、転送先の情報処理装置が有する記憶装置へ転送するデータ転送装置において、
前記ヘッダ情報の最も大きいフレームのヘッダサイズに対応したサイズを有する第１の記憶手段と、
前記第１の記憶手段とは別個に設けられた第２の記憶手段と、
前記入力データのうち前記ヘッダ情報とそれに続くデータとを第１のデータとして前記第１の記憶手段に格納し、前記入力データのフレームサイズが前記第１の記憶手段のサイズよりも大きければ、前記第１の記憶手段に入りきれないデータを第２のデータとして前記第２の記憶手段に格納する第１の切替手段と、
前記第１の記憶手段に格納された前記第１のデータに含まれる前記ヘッダ情報の解析を行って、前記転送先の情報処理装置が必要とするデータを認識する解析手段と、
前記解析手段による解析結果に基づいて、前記第１の記憶手段に格納された前記第１のデータにおける転送位置を指示する指示手段と、
前記指示手段によって指示された前記転送位置に従い、前記第１の記憶手段に格納された前記第１のデータのうち、前記転送先の情報処理装置が必要とするデータを出力し、それに続く、前記第２の記憶手段に格納された前記第２のデータがあれば、該第２のデータをも出力する第２の切替手段と、
を備えることを特徴とするデータ転送装置。
【請求項２】
前記第２の切替手段は、前記解析手段によるヘッダ情報の解析終了後に、前記第１の記憶手段及び前記第２の記憶手段に記憶されたユーザデータを出力することを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記第２の記憶手段は、前記解析手段によるヘッダ情報の解析中に、前記第１の切替手段から供給される前記第２のデータを格納することを特徴とする請求項１に記載のデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送装置に関し、特に、ネットワークなどの伝送データの通信を行うシステムにおいて、受信バッファメモリとホストシステムメモリとの間のダイレクトメモリアクセス（ＤＭＡ）転送を行う場合などに適用して好適なものである。
【０００２】
【従来の技術】
ネットワークなどにおいてデータ通信を行う場合、送受信されるデータフレームのフォーマットは、図５に示すような形式になっていた。例えば、プロトコル１における制御フレームには、図５（ａ）に示すように、フレーム種別、通信宛先アドレス、送信元アドレス、ステータス、フラグ情報及びフレームチェックシーケンスが格納される。
【０００３】
また、プロトコル１におけるデータフレームには、図５（ｂ）に示すように、フレーム種別、通信宛先アドレス、送信元アドレス、データ種別、データサイズ、ユーザＩＤ、ファイルＩＤ、ステータス、ユーザデータ及びフレームチェックシーケンスが格納される。 また、プロトコル２における制御フレームには、図５（ｃ）に示すように、フレーム種別、通信宛先アドレス、送信元アドレス、送信元ホスト稼働情報、ネットワーク管理情報及びフレームチェックシーケンスが格納される。
【０００４】
また、プロトコル２におけるデータフレームには、図５（ｄ）に示すように、フレーム種別、通信宛先アドレス、送信元アドレス、データ種別、データサイズ、ステータス、制御コード、ユーザデータ及びフレームチェックシーケンスが格納される。
【０００５】
このように、ヘッダ部には、フレーム種別、通信の宛先、送信元、データ種別、データサイズ及び様々のフラグなどが格納され、データ部には、ホスト側へ渡されるユーザデータが格納されている。
【０００６】
単一プロトコル（通信手順）の場合、伝送データのフレームは一定である。しかし、マルチプロトコル伝送、すなわち、同一の物理層を用いて複数のプロトコルによる伝送を行う場合、フレームフォーマットはそのフレームの種別により、ヘッダ部の内容やサイズ、フレーム全体のサイズなど異なる点が多く存在する。そのため、図６に示すように、ディスクリプタ３３（フレーム記述子）と呼ばれるステータス３１やフレームサイズ３２などから構成される付帯情報を各フレーム３４に付加して受信バッファ３５内にリング状に格納していた。
【０００７】
ＣＰＵや伝送データＤＭＡ転送装置は、ディスクリプタ３３に基づいて、各フレーム３４を受信バッファ３５から取り出し、各フレーム３４に含まれるホストシステムに渡すべきデータをホスト側に転送する。
【０００８】
ここで、ホストシステムに渡すべきデータは、データフレーム内のユーザデータのみであり、制御フレーム内の制御データやデータフレーム内のヘッダ情報部分は、通信装置内のＣＰＵが通信に使用する制御ステータスやフラグ情報などである。
【０００９】
従って、ホスト側メモリにユーザデータ部分のみをＤＭＡ転送する場合、ＤＭＡ転送を行う前に、各々のフレームについて、ヘッダ部に格納されているヘッダ情報、すなわち、フレーム種別、ステータス、転送すべきユーザデータの有無、転送すべきユーザデータサイズなどを解析し、ホストに不要な情報を取り除く必要があった。
【００１０】
ホストに不要なヘッダ情報などを取り除くため、以下に述べるような方法が用いられていた。
第１の方法は、ＣＰＵが受信バッファを直接アクセスしてヘッダの情報を読み出し、送信元アドレスの先頭をヘッダの分だけずらしてＤＭＡ転送装置に転送を指示する。
【００１１】
第２の方法は、ヘッダ抽出方式と呼ばれるもので、受信したフレームのヘッダ部のみを認識及び抽出してＣＰＵのローカルメモリに転送し、残りのユーザデータ部をホスト側メモリに分配して転送する。
【００１２】
第３の方法は、受信データフレーム全体を無条件でホスト側メモリに転送する。
【００１３】
【発明が解決しようとする課題】
しかしながら、上述した第１の方法は、ＣＰＵが受信バッファを直接アクセスするため、受信バッファからのデータ読み出し速度がＣＰＵの処理能力に依存する。このため、データ読み出しの効率が良くないという問題がある。また、受信バッファへのアクセスに競合が生じ、スループットが低下するという問題もある。
【００１４】
また、第２の方法は、ユーザデータ部に誤りがある場合、ホスト側メモリに誤りを含むデータが転送される可能性がある。また、マルチプロトコル伝送を行う場合、ヘッダ内にあるフレーム情報を解析しないと、そのフレームから抽出した部分がホストに不要なデータフレームのヘッダであるのか、ホストに必要な制御フレームのステータスなどの情報であるのかを認識することができない。すなわち、ヘッダ部とデータ部との境界がフレーム毎に異なる場合やホストに転送すべき情報をヘッダ部に含むフレーム構成を有する複数のプロトコルを扱う場合、第２の方法におけるヘッダ抽出方式は有効ではない。
【００１５】
また、第３の方法は、転送速度は最も速いが、受信したフレームの正常や異常、フレーム種別、データの必要性などに関係なく、全てのデータがホスト側に転送されるという問題がある。
【００１６】
そこで、本発明の目的は、ホスト側が必要とするデータのみを高速に転送することができるデータ転送装置を提供することである。
【００１７】
【課題を解決するための手段】
上述した課題を解決するために、請求項１の発明によれば、先頭にヘッダ情報を有する入力データを、転送先の情報処理装置が有する記憶装置へ転送するデータ転送装置において、前記ヘッダ情報の最も大きいフレームのヘッダサイズに対応したサイズを有する第１の記憶手段と、前記第１の記憶手段とは別個に設けられた第２の記憶手段と、前記入力データのうち前記ヘッダ情報とそれに続くデータとを第１のデータとして前記第１の記憶手段に格納し、前記入力データのフレームサイズが前記第１の記憶手段のサイズよりも大きければ、前記第１の記憶手段に入りきれないデータを第２のデータとして前記第２の記憶手段に格納する第１の切替手段と、前記第１の記憶手段に格納された前記第１のデータに含まれる前記ヘッダ情報の解析を行って、前記転送先の情報処理装置が必要とするデータを認識する解析手段と、前記解析手段による解析結果に基づいて、前記第１の記憶手段に格納された前記第１のデータにおける転送位置を指示する指示手段と、前記指示手段によって指示された前記転送位置に従い、前記第１の記憶手段に格納された前記第１のデータのうち、前記転送先の情報処理装置が必要とするデータを出力し、それに続く、前記第２の記憶手段に格納された前記第２のデータがあれば、該第２のデータをも出力する第２の切替手段と、を備えることを特徴とするものである。
【００１８】
また、請求項２の発明によれば、前記第２の切替手段は、前記解析手段によるヘッダ情報の解析終了後に、前記第１の記憶手段及び前記第２の記憶手段に記憶されたユーザデータを出力する。
また、請求項３の発明によれば、前記第２の記憶手段は、前記解析手段によるヘッダ情報の解析中に、前記第１の切替手段から供給される前記第２のデータを格納する。
【００１９】
請求項１の発明によれば、ヘッダ情報を含む第１のデータとヘッダ情報を含まない第２のデータとを別々に記憶し、ヘッダ情報を含む第１のデータのみを解析手段により解析し、ヘッダ情報を含まない第２のデータを解析手段により解析しないようにすることにより、ホスト側が必要とするデータのみを取り出すことができる。また、ヘッダ情報を含まない第２のデータを解析手段により解析しないので、第２のデータを解析する時間を削減することができ、データの転送を高速化することができる。
【００２０】
また、請求項２の発明によれば、解析手段によるヘッダ情報の解析終了後にデータを出力することにより、ホスト側が必要とするデータのみ転送することができる。
【００２１】
また、請求項３の発明によれば、解析手段によりヘッダ情報を解析している間に、第２のデータを第２の記憶手段に格納することにより、データの転送時間を短縮することができる。
【００２２】
【発明の実施の形態】
以下、本発明の一実施例によるデータ転送装置を図面を参照しながら説明する。図１は、本発明の第１実施例によるデータ転送装置の機能的な構成を示すブロック図である。
【００２３】
図１において、入力データを第１の切替手段１に入力し、ヘッダ情報を含む第１のデータとヘッダ情報を含まない第２のデータに分割する。ヘッダ情報を含む第１のデータを第１の記憶手段２に格納し、ヘッダ情報を含まない第２のデータを第２の記憶手段５に格納する。この第１の記憶手段２のサイズは、マルチプロトコル伝送の場合、ヘッダ情報が最も大きいフレームのヘッダサイズに合わせる。そして、第１の記憶手段２に格納された第１のデータに含まれるヘッダ情報を解析手段３により解析する。この解析手段３による解析結果に基づいて、第１の記憶手段２及び第２の記憶手段５に記憶されたデータのうち、ホスト側が必要とするデータのみを第２の切替手段６を介して出力する。また、第１の記憶手段に格納された第１のデータのヘッダ情報が格納されている位置を指示手段４により指示する。
【００２４】
次に、本発明の一実施例による伝送データＤＭＡ転送装置を図面を参照しながら説明する。図２は、本発明の一実施例による伝送データＤＭＡ転送装置の概略構成を示すブロック図である。
【００２５】
図２において、データ送受信装置１２は、回線１１から受信したシリアルデータフレームをパラレルデータに変換し、ディスクリプタを付加して受信バッファ１３に格納する。この時、受信バッファ１３には、各種のプロトコルのフレームが順次格納される。ＤＭＡ転送装置１４は、受信したフレームのうち、ホスト側プロセッサ２６に必要なデータを受信バッファ１３からシステムメモリ２５に転送する。
【００２６】
ここで、ＤＭＡ転送装置１４は、切替スイッチ１５、１９、フレームサイズ認識回路１６、２次ＦＩＦＯ１７、１次バッファ１８、オフセットポインタ２０、メモリインターフェイス２１、２３、ＤＭＡコマンドインターフェイス２２を備えている。
【００２７】
切替スイッチ１５は、メモリインターフェイス２１により制御され、受信したフレームを分割して、１次バッファ１８又は２次ＦＩＦＯ１７に供給するものである。
【００２８】
フレームサイズ認識回路１６は、受信バッファ１３からディスクリプタを読み込んで、フレームサイズを認識するものである。
１次バッファ１８は、切替スイッチ１５で分割されたフレームのうち、最初の部分を格納するものである。ここで、分割されたフレームのうちの最初の部分には、ヘッダ情報が含まれるようにする。また、１次バッファ１８のサイズは、図５に示すような各種のプロトコルフレームのうち、ＣＰＵ２４により解析するヘッダ情報の最も大きいフレームのヘッダサイズに合わせる。
【００２９】
２次ＦＩＦＯ１７は、切替スイッチ１５で分割されたフレームのうち、１次バッファ１８に格納されなかった残りの部分を格納するものである。
切替スイッチ１９は、メモリインターフェイス２３により制御され、１次バッファ１８又は２次ＦＩＦＯ１７に格納されたデータをホスト側プロセッサ２６に供給するものである。
【００３０】
ＣＰＵ２４は１次バッファ１８に接続され、ＤＭＡコマンドインターフェイス２２からのヘッダ解析要求により、ヘッダ情報の解析を行う。また、１次バッファ１８におけるオフセットポインタ２０の設定を行う。
【００３１】
以上説明したように、本発明の一実施例による伝送データＤＭＡ転送装置によれば、１次バッファ１８のサイズをＣＰＵ２４により解析するヘッダ情報の最も大きいフレームのヘッダサイズに合わせる。このことにより、ヘッダ抽出、ＣＰＵ２４のヘッダ解析、及びそれに続くユーザデータの転送などの一連の伝送データＤＭＡ転送動作を、プロトコルやフレームの形式に関係なく行うことができ、マルチプロトコル伝送に有効に対応することができる。
【００３２】
次に、本発明の第１実施例による伝送データＤＭＡ転送方式を図面を参照しながら説明する。この第１実施例による伝送データＤＭＡ転送方式は、図２の伝送データＤＭＡ転送装置１４において、ＣＰＵ２４によるヘッダ情報の解析終了後に、１次バッファ１８及び２次ＦＩＦＯ１７に格納されたデータを出力するようにしたものである。
【００３３】
図３において、受信したフレームサイズが１次バッファ１８のサイズより大きい場合、ＤＭＡ転送装置１４は、切替スイッチ１５を１次バッファ１８側に切り替えて、フレームの先頭部分を１次バッファ１８に格納する。例えば、１次バッファ１８には、図３に示すように、フレーム種別、宛先アドレス、送信元アドレス、データ種別、データサイズ、ユーザＩＤ、ファイルＩＤ、ステータス、データ０、データ１が格納される。
【００３４】
そして、１次バッファ１８がフルになったら、ＤＭＡ転送を中断して、ＤＭＡコマンドインターフェイス２２からＣＰＵ２４にヘッダ解析要求通知を出力する。ＣＰＵ２４は、ヘッダ解析要求に基づいて、１次バッファ１８の内容を解析し、ホスト側プロセッサ２６に渡すべきデータ（ユーザデータ）がある場合、ユーザデータの格納先を示すシステムメモリ２５のアドレス、データ数及び１次バッファ１８のオフセット値を１次バッファ１８のオフセットポインタ２０に設定し、ＤＭＡを起動する。この時、オフセットポインタ２０は、ホスト側プロセッサ２６に渡すべきデータの部分を指示する。
【００３５】
その後、ＤＭＡ転送装置１４は、オフセットポインタ２０で指示される部分からホスト側プロセッサ２６へのデータ転送を再開する。ＤＭＡ転送装置１４は、１次バッファ１８に格納されていたユーザデータをホスト側プロセッサ２６へ転送した後、切替スイッチ１５、１９を切り替えて、２次ＦＩＦＯ１７による転送に移行する。設定されたデータ数のユーザデータをホスト側プロセッサ２６へ転送することにより、１回のＤＭＡ転送が完了する。
【００３６】
なお、受信したフレームサイズが１次バッファ１８のサイズに満たない場合、ＤＭＡ転送装置１４は、切替スイッチ１５を１次バッファ１８側に切り替えて、フレーム全体を１次バッファ１８に格納する。
【００３７】
そして、ＤＭＡ転送を中断して、ＤＭＡコマンドインターフェイス２２からＣＰＵ２４にヘッダ解析要求通知を出力する。ＣＰＵ２４は、ヘッダ解析要求に基づいて、１次バッファ１８の内容を解析し、ホスト側プロセッサ２６に渡すべきデータがある場合、ユーザデータの格納先を示すシステムメモリ２５のアドレス、データ数及び１次バッファ１８のオフセット値を１次バッファ１８のオフセットポインタ２０に設定し、ＤＭＡを起動する。この時、オフセットポインタ２０は、ホスト側プロセッサ２６に渡すべきデータの部分を指示する。
【００３８】
その後、ＤＭＡ転送装置１４は、オフセットポインタ２０で指示される部分からホスト側プロセッサ２６へのデータ転送を再開する。１次バッファ１８に格納されたデータがステータス通知フレームなどで、ホスト側プロセッサ２６に渡すべきデータがない場合、ＣＰＵ２４はＤＭＡ転送装置１４に終了コマンドを発行し、ＤＭＡを終了させる。
【００３９】
以上説明したように、本発明の第１実施例による伝送データＤＭＡ転送方式によれば、受信データフレームの先頭にあるヘッダ部を、ＣＰＵ２４により読み出し可能な１次バッファ１８に格納した後、ＤＭＡ転送を一旦中断し、ＣＰＵ２４によりヘッダ情報の解析を行い、ヘッダ部に続く残りのデータを２次ＦＩＦＯ１７へ転送する。このことにより、受信バッファ１３からホスト側プロセッサ２６に受信データフレームをＤＭＡ転送する際に必要なＣＰＵ２４によるヘッダ情報の解析動作をスムーズに行うことができ、転送スループットを向上することができる。また、ヘッダ部とデータ部との境界がフレーム毎に異なる場合やホスト側プロセッサ２６に必要な情報をヘッダ部に有する場合などの複数のプロトコルによる通信においても、ホスト側プロセッサ２６に必要なデータのみを転送することができる。
【００４０】
次に、本発明の第２実施例による伝送データＤＭＡ転送方式を図面を参照しながら説明する。この第２実施例による伝送データＤＭＡ転送方式は、図２の伝送データＤＭＡ転送装置１４において、ＣＰＵ２４によるヘッダ情報の解析中に、２次ＦＩＦＯ１７へデータを格納するようにしたものである。
【００４１】
図４において、受信したフレームサイズが１次バッファ１８のサイズより大きい場合、ＤＭＡ転送装置１４は、切替スイッチ１５を１次バッファ１８側に切り替えて、フレームの先頭部分を１次バッファ１８に格納する。例えば、１次バッファ１８には、図４に示すように、フレーム種別、宛先アドレス、送信元アドレス、データ種別、データサイズ、ユーザＩＤ、ファイルＩＤ、ステータス、データ０、データ１が格納される。
【００４２】
そして、１次バッファ１８がフルになったら、ＤＭＡ転送を中断して、ＤＭＡコマンドインターフェイス２２からＣＰＵ２４にヘッダ解析要求通知を出力する。さらに、切替スイッチ１５を２次ＦＩＦＯ１７側に切り替えて、受信バッファ１３に格納されたデータを２次ＦＩＦＯ１７に格納する。ＣＰＵ２４は、ヘッダ解析要求に基づいて、１次バッファ１８の内容を解析し、ホスト側プロセッサ２６に渡すべきデータ（ユーザデータ）がある場合、ユーザデータの格納先を示すシステムメモリ２５のアドレス、データ数及び１次バッファ１８のオフセット値を１次バッファ１８のオフセットポインタ２０に設定し、ＤＭＡを起動する。この時、オフセットポインタ２０は、ホスト側プロセッサ２６に渡すべきデータの部分を指示する。
【００４３】
ここで、ＣＰＵ２４によりヘッダ情報の解析を行っている間に、２次ＦＩＦＯ１７はフルになり、例えば、図４に示すように、データ２〜データｍが格納される。
【００４４】
その後、ＤＭＡ転送装置１４は、オフセットポインタ２０で指示される部分からホスト側プロセッサ２６へのデータ転送を再開する。ＤＭＡ転送装置１４は、１次バッファ１８に格納されていたユーザデータ（ヘッダ情報を含む第１のデータ）をホスト側プロセッサ２６へ転送した後、切替スイッチ１９を２次ＦＩＦＯ１７側に切り替えて、２次ＦＩＦＯ１７によるユーザデータ（ヘッダ情報を含まない第２のデータ）の転送に移行する。これにより、第１のデータと第２のデータが再び結合される。設定されたデータ数のユーザデータをホスト側プロセッサ２６へ転送することにより、１回のＤＭＡ転送が完了する。
【００４５】
以上説明したように、本発明の第２実施例による伝送データＤＭＡ転送方式によれば、１次バッファ１８にヘッダ部を格納した後、ＣＰＵ２４がヘッダ情報の解析を行っている間にヘッダ部に続くデータを２次ＦＩＦＯ１７に並行して格納する。そして、ＣＰＵ２４によるヘッダ情報の解析に費やす処理時間（オーバヘッド時間）と受信バッファ１３からから引き出されるデータにより２次ＦＩＦＯ１７がフルになる時間とが等しくなるように、２次ＦＩＦＯ１７のサイズを調整することにより、ＣＰＵ２４によるヘッダ情報の解析に費やす処理時間を見かけ上相殺することができ、高速に通信を行うことができる。
【００４６】
【発明の効果】
以上説明したように、請求項１の発明によれば、ヘッダ情報を含む第１のデータとヘッダ情報を含まない第２のデータとを別々に記憶することにより、ヘッダ情報を含まない第２のデータを解析しないようにして、第２のデータを解析する時間を削減することができ、ホスト側が必要とするデータのみを高速に転送することができる。
【００４７】
また、請求項２の発明によれば、ヘッダ情報の解析終了後にデータを出力することにより、ホスト側が必要とするデータのみ転送することができる。
また、請求項３の発明によれば、ヘッダ情報の解析中に、ヘッダ情報を含まない第２のデータを格納することにより、データの転送時間を短縮することができる。
【図面の簡単な説明】
【図１】本発明の一実施例によるデータ転送装置の構成を示すブロック図である。
【図２】本発明の一実施例による伝送データＤＭＡ転送装置の概略構成を示すブロック図である。
【図３】本発明の第１実施例による伝送データＤＭＡ転送方式を示すブロック図である。
【図４】本発明の第２実施例による伝送データＤＭＡ転送方式を示すブロック図である。
【図５】プロトコルの伝送データフレームのフォーマット例を示す図である。
【図６】ディスクリプタ及びフレームの格納状態を示す図である。
【符号の説明】
１  第１の切替手段
２  第１の記憶手段
３  解析手段
４  指示手段
５  第２の記憶手段
６  第２の切替手段
１１  回線
１２  データ送受信装置
１３  受信バッファ
１４  ＤＭＡ転送装置
１５、１９  切替スイッチ
１６  フレームサイズ認識回路
１７  ２次ＦＩＦＯ
１８  １次バッファ
２０  オフセットポインタ
２１、２３  メモリインターフェイス
２２  ＤＭＡコマンドインターフェイス
２４  ＣＰＵ
２５  システムメモリ
２６  ホスト側プロセッサ
【図１】
0003670372.tif 000002
【図２】
0003670372.tif 000003
【図３】
0003670372.tif 000004
【図４】
0003670372.tif 000005
【図５】
0003670372.tif 000006
【図６】
0003670372.tif 000007