(57)【要約】  ホスト・システムに構成されたローカル・メモリと、遠隔メモリ間の、効果的なデータ転送のための、メモリ・アラインメントシステムが、ホスト・システムから受けたフォーマット情報を基に、送信、および受信データをアラインするように、ホスト・システムに設定された、データ通信コントローラ構成されている。ローカル・メモリから、イーサネット接続などを通して、データを転送する際、通信コントロールドライバ・ソフトウエアは、まず、データに関するフォーマット情報をデータ通信コントローラに書き込むことができる。データ通信コントローラは、ドライバ・ソフトウエアが、データ通信コントローラ内の設定可能なデータ・バッファに、データを移動する際、フォーマット情報に基づいて、データをアラインすることが可能である。同様に、ドライバ・ソフトウエアは、受信データについてのフォーマット情報を、受信フォーマット設定バッファに書き込むことができる。データ通信コントローラは、ホストによって、受信データが読まれている際、受信フォーマット情報に基づいて、受信データをアラインすることができる。データ通信コントローラが、すべての必要なデータアラインメントを実行するため、ホスト・プロセッサによるデータアラインメントの必要がなくなる。
2008519373.tif 000002
【特許請求の範囲】
【請求項１】
非バスマスタのデータ通信コントローラを含むローカル・システム上に設定されたローカル・メモリと遠隔メモリ間のデータ転送の方法であって、
前記ローカル・メモリから、前記データ通信コントローラ内の一つ、あるいはそれ以上のバッファへデータを書き込むステップと、
前記データ通信コントローラへ、データに関するフォーマット情報を書き込むステップと、
前記データ通信コントローラによって、アラインされていない任意のデータ部分を、対応するフォーマット情報に基づいてアラインさせるステップと、
前記データ通信コントローラ内の、一つ、あるいはそれ以上のバッファから、それに対応する前記フォーマット情報と上記のアラインメントに従がって、前記遠隔メモリへデータを転送するステップと
を有する方法
【請求項２】
前記データに対応するフォーマット情報を書き込むステップが、前記データ通信コントローラ内の一つあるいはそれ以上のバッファのうちの一つ、あるいはそれ以上に前記フォーマット情報を書き込むことを含む請求項１記載の方法。
【請求項３】
前記ローカル・メモリから前記データ通信コントローラ内の一つ、あるいはそれ以上のバッファにデータを書き込むステップの前に、さらに、前記ローカル・メモリ上の一つ、あるいはそれ以上のバッファにデータを書き込むステップを含む請求項１記載の方法。
【請求項４】
前記ローカル・メモリに構成される一つ、あるいはそれ以上のバッファへデータを書き込むステップが、前記ローカル・システムに構成されたオペレーティング・システムによって実行される請求項３記載の方法。
【請求項５】
モートメモリが、
前記ローカル・システム以外のシステムと、
前記ローカル・システム内の周辺機器
の一つ、あるいはそれ以上で構成されている請求項１記載の方法。。
【請求項６】
前記アラインされていない任意のデータ部分をアラインさせるステップが、前記データ通信コントローラ内に構成される、ホスト・バス・インターフェースによって実行される請求項１記載の方法で。
【請求項７】
前記ローカル・システムが、中央演算処理装置とデータ通信ドライバ・ソフトウエアとを備えるコンピュータ・システムであり、
前記データ通信コントローラ内の一つ、あるいはそれ以上のバッファへデータを書き込むステップ、および、前記フォーマット情報を書き込むステップが、通信ドライバ・ソフトウエアによって実行され、
前記通信ドライバ・ソフトウエアが、中央演算処理装置によって実行される請求項１記載の方法。
【請求項８】
前記中法演算処理装置が、
埋め込みマイクロプロセッサ、
埋め込みマイクロ・コントローラ、
汎用マイクロプロセッサ、
汎用マイクロ・コントローラ
のいずれか一つである請求項７記載の方法。
【請求項９】
前記遠隔メモリへデータを転送するステップが、パケットの形態でデータを転送することを含み、前記パケットが、前記データ通信コントローラ内の一つ、あるいはそれ以上のバッファのうちの一つ、あるいはそれ以上からのデータと関連するフォーマット情報によって構成される請求項１記載の方法。
【請求項１０】
前記フォーマット情報が、
一次転送命令情報、
二次転送命令情報、
オフセットデータ、
パディングデータ
の一つあるいはそれ以上で構成される請求項９記載の方法。
【請求項１１】
前記一次転送命令情報が、
割込みイネーブル、
バッファ終了アラインメント、
データ開始オフセット、
開始パケット断片、
終了パケット断片、
バッファサイズ
の一つ、あるいはそれ以上に対応する情報で構成されている請求項１０記載の方法。
【請求項１２】
前記二次転送命令情報が、
パケット・タグ、
ＣＲＣ無効、
イーサネットフレームパディング無効、
パケット長
の一つ、あるいはそれ以上に対応する情報で構成されている請求項１０の方法。
【請求項１３】
前記遠隔メモリからのデータを受信するステップと、
前記データ通信コントローラによって受信したデータをフォーマットするステップと、
フォーマットされた受信データを、前記ローカル・システムに構成されたローカル・メモリへ配送するステップと
をさらに含む請求項１に記載された方法。。
【請求項１４】
前記受信データをフォーマットするステップが、
前記受信データをアラインするステップと、
前記受信データにオフセット・データを付加するステップと、
前記受信データにパディング・データを付加するステップ
の一つ、あるいはそれ以上で構成されている請求項１３の方法で
【請求項１５】
前記遠隔メモリからデータを受信するステップが、前記データ通信コントローラ内の、対応する受信バッファへ書き込むことを含む請求項１３記載の方法。
【請求項１６】
前記ローカル・システムと前記遠隔システムがイーサネットにより接続されている請求項１記載の方法。
【請求項１７】
前記データ通信コントローラが、
ＰＩＯコントローラ、
スレーブＤＭＡコントローラ
の一つを含む請求項１記載の方法。
【請求項１８】
ホスト・システムであって、
ローカル・システム・メモリと、
そのローカル・システム・メモリからの発信データを受信するように設定され、さらに前記ホスト・システムから前記発信データに対応するフォーマット・データを受信するように設定された、ホスト・バス・インターフェース、および、そのホスト・バス・インターフェースに結合している送信バッファによって構成される非バスマスタのデータ通信コントローラとを含み、
前記ホスト・バス・インターフェースは、フォーマット情報に基づいて、前記発信データをアラインしつつ、そのデータを、発信バッファに送ることが可能であり、
前記データ通信コントローラがアラインされた前記発信データを前記発信バッファから遠隔メモリへ転送する、前記ホスト・システム。
【請求項１９】
前記データ通信コントローラが、さらに、前記ホスト・バス・インターフェースに結合され、前記遠隔メモリから着信データを受け取るように設定され、
前記ホスト・バス・インターフェースが、さらに、前記ホスト・システムから、着信データに対応した、前記フォーマット情報を受けることが可能であり、
前記ホスト・バス・インターフェースが、さらに、前記ホスト・システムを、対応したフォーマット・データに基づいて、着信データをアラインしつつ、それを前記ローカル・システム・メモリに読み込むことを可能にさせる請求項１８記載のホスト・システム。
【請求項２０】
前記データ通信コントローラがさらに、
前記ホスト・バス・インターフェースに結合され、前記送信バッファから前記遠隔メモリへのアラインされた前記発信データの送信の状態情報を格納するように設定された送信状態バッファと、
前記ホスト・バス・インターフェースに結合され、前記遠隔メモリからの着信データの受信の状態情報を格納するように設定された受信状態バッファと
をさらに含む請求項１９記載のホスト・システム
【請求項２１】
前記データ通信コントローラが、さらに、
前記送信状態バッファに、前記送信の状態情報を提供する、
前記受信状態バッファに、前記受信の状態情報を提供する、
前記受信バッファに、前記着信データを提供する、
前記送信バッファから、アラインされた前記発信データを転送すること
を行うために、媒体アクセス・コントロール・モジュールを含む請求項２０記載のホスト・システム
【請求項２２】
前記データ通信コントローラが、さらに、媒体メディアアクセス・コントロール・モジュールと結合した物理レイヤーを含む請求項２１記載のホスト・システム。
【請求項２３】
前記物理レイヤーが、イーサネット物理レイヤーであり、前記媒体アクセス・コントロール・モジュールが、イーサネット媒体アクセス・コントロール・モジュールである請求項２２記載のホスト・システム。
【請求項２４】
前記受信の状態情報が、
アドレス認識選別不成功、
パケット長、
エラー状態、
フレームブロードキャストアドレス、
長さエラー、
フレーム早期終了、
フレームマルチキャストアドレス、
フレーム長、
フレームコリジョンの発生、
フレームタイプ、
受信監視タイムアウト、
受信エラー検出、
ドリブリングビット、
ＣＲＣエラー
の一つ、あるいはそれ以上に関する情報で構成されている請求項２０記載のホスト・システム
【請求項２５】
前記ホスト・バス・インターフェースが。
ＰＩＯコントローラ、
スレーブＤＭＡコントローラ
の一つを含む請求項１８記載のホスト・システム。
【請求項２６】
前記遠隔メモリが、
前記ホスト・システム、
前記ホスト・システムとははっきりと異なる遠隔システム
の一つで構成されている請求項１８記載のホスト・システム
【請求項２７】
前記遠隔メモリが、前記ホスト・システムの周辺機器に構成されている請求項１８記載のホスト・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は全般的にはデジタル・インターフェースの領域に関し、特に、通信インターフェースの分野に関する。
【背景技術】
【０００２】
過去２０年間で、パソコン（ＰＣ）は、テレビ、ハイファイステレオ機器、ＣＤプレイヤー等を含む、膨大なオフィス、家庭電子機器群に参入した。更に近年、電子機器業界では、広く用いられている記憶媒体に加え、半導体メモリを用いた電気製品や個人用電子機器が急増している。その中で広く使用されている機器には、ビデオカメラ、デジタルスチールカメラ、携帯端末、携帯音響機器がある。パソコンや関連周辺機器の急増に対応して、パソコン間のデータ共有に加え、個人電子機器とパソコンの間のデータ転送のための接続、ネットワークが重要視されている。
【０００３】
ＰＣＩ等の内部バスの仕様に加え、単純かつ高速接続を目的とした様々なコンピュータ、外部周辺機器間のインターフェース規格が導入されている。そのような規格の例として、ＩＥＥＥＥ  １３９４規格  （ファイアーワイアとも呼ばれる）や、ユニバーサル・シリアル・バス（ＵＳＢ）があり、双方とも高速シリアルプロトコルである。コンピュータ間のネットワーク接続のため、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）双方で最も多く使用されている規格はイーサネット（登録商標）・プロトコルである。更に正確には、イーサネットは、キャリア検知多重アクセス／衝突回避  （ＣＳＭＡ／ＣＤ）方式に基づいたＩＥＥＥ  ８０２．３系の規格であり、２台以上のコンピュータ・ステーションが同一の配線システムを共有することを可能にする。ＣＳＭ／ＣＤ方式は、１ＭＢ／ｓから１０００Ｍｂ／ｓの速度に及ぶイーサネット・システムの基礎となっている。イーサネットは一般的に、資源の効率的共用を可能にし、通常再構成、保守が容易であり、多くのメーカ、システム間の互換性を低コストで提供する。
【０００４】
ＰＩＣバス、ファイアーワイア、ＵＳＢ、あるいはイーサネットによるパソコン、周辺機器、ネットワーク間のいずれのデータ転送においても、データ処理には、通常、ホスト・メモリの１つの記憶場所から別の記憶場所へデータを移すことが必要となる。１つの記憶場所から他の記憶場所にデータを転送する際、様々なハードウエア方式が用いられる。プログラム式入出力（ＰＩＯ）、単純な、スレーブ・ダイレクト・メモリアクセス（ＤＭＡ）、ディスクリプタ・ベースのＤＭＡや，ＰＩＯとＤＭＡの併用がその例である。ホストメモリはプロセッサ内部に存在するか、プロセッサに関連づけられる。また、他の記憶場所は、ホストの別のメモリアドレスかホスト・システムに接続され、メモリにマップされた周辺ハードウエア機器である。この種の周辺機器は、メモリーマップト、あるいはＩ／Ｏマップト機器と呼ばれる。
【０００５】
ほとんどのプロセッサは、データを構成するオブジェクトや変数がシステム・メモリ上の特定のオフセットに格納されていることを要求する。一例を挙げれば、３２ビットプロセッサは通常４バイト整数データが４で割り切れるメモリアドレスに格納されていることを要求する。この必要条件は一般に「メモリ・アラインメント」と呼ばれている。従って、たとえば、４バイト整数データは０ｘ２０００や０ｘ２００４のメモリアドレスには格納できるが、０ｘ２００２には格納できない。３２ビットＲＩＳＣ  ＣＰＵシステム等の多くのシステムでは、アラインされていないデータを使用しようとすると、バスエラーを起こし、ひいては全プログラムが停止する場合がある。インテル・プロセッサ等を使用する他のシステムでは、一般的にアラインされていないデータも処理できるが、多大なパーフォーマンスの低下を招く。多くの場合、データを効果的に移動させるためには、特定のメモリ・アラインメント要件を満たすことが必要となる。これは、埋め込みプロセッサのアプリケーション領域と、それに関連するシステム構成において特に顕著である。そのようなシステムでは、データ・バッファをコンピュータ・システムのある場所から別の場所にコピーする際、ソフトウエアの処理が複雑化するため、より多くの時間を要し、結果としてシステム全体のパーフォーマンスの低下を引き起こす。
【０００６】
メモリ・アラインメントの要件が、キャッシュ・ラインあるいはアドレス・アラインメント（それに限るとは言えないが）における制限を克服することが必要な場合がある。イーサネット・データ転送を一例に挙げると、あるネットワークのデバイス・ドライバの環境では、送信パケットが、物理的かつ仮想的に連続し、うまくアラインされた個別のバッファとしてデバイス・ドライバに送信される。このような場合には、アラインメントは問題とならない。しかし、他のネットワークのデバイス・ドライバ環境では、送信パケットが任意長のバッファ断片の連結リストとして送られる場合がある。各バッファは任意のバイト境界で始まり、終わる可能性がある。各バッファ断片は、一つ、またはそれ以上の物理ページの切れ目を含む仮想的に連続したものとなるかもしれない。大きいペイロード・データを含む送信パケットは、小さなものに比べ、物理的なシステム・メモリの切れ目を含む可能性が高い。
【０００７】
多くのデータ通信制御装置は、送信データがアラインされていることを要求する。データは一般的に、アラインされていない形でドライバに送られる。そのため、ドライバは、ネットワーク・インターフェース・カードにデータを書き込む前に、ＣＰＵを使って散乱した断片を収集し、データを再び再構成する。このプロセスは図１で説明されている。そこでは、不連続メモリバッファ９０１と９０２は３２ビット境界でアラインされていない。バッファ９０１と９０２は、プロセッサ、あるいは、システムに設定されたマイクロ・コントローラ上で実行されているオペレーティング・システムによってシステム・メモリに書き込まれたかもしれない。囲み９１０ａから９１０ｄで示されるデータの一部は送信されるべきデータに含まれず、通常、データ通信制御装置にとって不必要なデータを表すであろう。その制御装置は、通常、システム上、データを遠隔メモリに転送するために設定される。そのような制御装置の一例は、システムをＬＡＮに接続するＮＩＣ上のイーサネット・コントローラである。ホストのシステム・ソフトウエアとデータ通信ドライバ・ソフトウエア（ＣＰＵソフトウエア９１０として示されている）が二次データメモリ９０３にデータ・バッファをコピーするように要求される。その二次データメモリ上で、データは通常アラインされる。その後、通常、ホストのシステム・ソフトウエアは、データ通信ドライバ・ソフトウエアを用いてデータ・バッファ９０３を、バッファ９０４に示すデータ通信制御装置のメモリにコピーする。
【０００８】
この処理は多くの場合、コンピューティング資源の浪費につながる。一般的に、通信データフローにおけるデータのコピーを減らすと、スループットが向上し、待ち時間が減少する。さらに先に述べたように、多くのプロセッサはアラインメントの制限があり、それによりＣＰＵはＣＰＵの内部レジスタの大きさおよび／またはデータバスの広さに関係なく、データを１バイトごとにアクセスすることを強いられる。プロセッサや関連記憶場所から他の記憶場所、あるいはＩ／Ｏマップされた記憶場所にデータを送る際のパーフォーマンスと柔軟性を増加させることは、通常ＰＣＩバス以外のローカルバスに接続される埋め込みシステムのメモリ・アラインメント要件を満たすための重要な課題となる。
【０００９】
ここで特記すべきことは、ＰＣＩにおいてもメモリがアラインされていないことは問題となるが、この種のバスは「バスマスタＤＭＡ」を使用することができるということである。ある種のシステムでは、バスマスタＤＭＡによりミスアラインメントの問題を解決することができる。バスマスタＤＭＡが用いられると、通常、ホストのＬＡＮドライバあるいはオペレーティング・システム・ソフトウエアは、特定のデータ・バッファを特定の開始と終了アドレスに移動するようにＤＭＡコントローラをプログラミングする。多くの場合、ＤＭＡコントローラは、ソフトウエアのデータ構造内に埋め込まれた記述子要素を用いることにより、連結リストのソフトウエア構造を通して、独立して複数のデータを移動させることができる。各記述子は全ての（たとえば、開始アドレス、終了アドレス、データ長等の）データ移動に必要なパラメータを記述する。ＤＭＡバスマスタコントローラは、通常、ある種のハードウエアバス技術を用いて、バイト、ワード、ダブル・ワードのアラインメントの問題を解決することができる。一例を挙げると、ＰＣＩバスは「Ｂｙｔｅ  Ｅｎａｂｌｅ」信号を用い、システムによるバイト、ワード、ダブル・ワードアクセスを決定する。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、バスマスタ・システムとして設定されていない現在のシステムは、通常、ソフトウエアでミスアラインメントの問題を解決し、メモリ・アラインメントの要件に対処している。ソフトウエアによる解決方法は、通常、時間がかかり、多大なシステムパーフォーマンスの低下につながる。たとえば、イーサネット・コントローラの場合、効果的に送信パケットと受信パケットを処理し、イーサネットのネットワークから、また、ネットワークへの個々のデータの転送の際、必要なＣＰＵサイクルを減らし、転送時間を短くすることが必要となるであろう。
【００１１】
本発明と、それ以前の技術を比べると、本分野に精通した者にとって、その他の、以前の技術に関連した問題は明白となるであろう。
【課題を解決するための手段】
【００１２】
本発明は、一連の実施態様で示される、プロセッサから、あるいはプロセッサへ、および、関連記憶場所から他の記憶場所あるいはＩ／Ｏマップされた記憶場所へのデータ転送のパーフォーマンスと柔軟性を著しく増加させることが可能なメモリ・アラインメント技術（ＭＡＴ）を用いた装置から成り、メモリ・アラインメントの要件を満たしつつ、アラインされていないデータの転送を可能にする。
【００１３】
一つの実施態様では、本ＭＡＴ装置がイーサネット・コントローラとしてホスト・システム上に設定され、同様にホスト・システムに設定されたローカル・システム・メモリからの発信データを受信できるＰＩＯコントローラ等のホスト・バス・インターフェース（ＨＢＩ）を含む。発信データに加え、このＨＢＩはその発信データに対応するフォーマット情報をホスト・システムから受け取る。ＨＢＩがローカル・システム・メモリから発信データを受信する際、その発信データは、ホスト・システムに設定されているマイクロプロセッサあるいはマイクロ・コントローラ上で実行しているイーサネット・コントローラのＬＡＮドライバ・ソフトウエア等の通信ドライバ・ソフトウエアによってＨＢＩに書き込まれる。そのＬＡＮドライバは、さらに、発信データを書き込む前に、それに対応したフォーマット情報を書き込むことができる。
【００１４】
一つの実施態様では、ＨＢＩが、対応したフォーマット情報を基に発信データをアラインするとともに、そのデータをＭＡＴ装置上に構成されている設定可能な発信バッファに転送する。アラインされた発信データは、その後、イーサネット物理レイヤーに結合したイーサネット媒体アクセス制御等の、物理レイヤーに結合した媒体アクセス・コントロール・モジュールを介して遠隔システムと遠隔システム・メモリに転送される。全ての必要なアラインメントがＭＡＴ装置のハードウエア処理によって行われるため、マイクロプロセッサあるいはマイクロ・コントローラ上で実行されるソフトウエアによる発信データのアラインメントは必要とされない。
【００１５】
一つの実施態様では、ＭＡＴ装置が、物理レイヤーと媒体アクセス・コントロール・モジュールを通して遠隔システム・メモリからの着信データを受けることできる受信バッファをも含む。ＬＡＮドライバ・ソフトウエアが、受信バッファが着信データを受け取る前に、着信データに対応するフォーマット情報をＨＢＩに書き込む。マイクロプロセッサ、あるいはマイクロ・コントローラは、着信データをＬＡＮドライバ・ソフトウエアによってＨＢＩに前もって書き込まれた対応するフォーマット情報に基づいてアラインしつつ、ＨＢＩを通して受信バッファからシステム・メモリに読み込む。
【００１６】
ＭＡＴ装置はまた、発信データの送信と着信データの受信のための状態バッファを含み、データをアラインする際、状態バッファから得た付加的情報を用いることもできる。
【００１７】
このようにして、本発明の多様な実施態様は、全てのデータアラインメントをＭＡＴ装置のハードウエアで行うことにより、データアラインメントが要求される時、ホスト・システムのプロセッサ、あるいはホスト・システムコントローラ上でソフトウエアを実行してデータをアラインする必要なしに、ローカル・システムの記憶場所と遠隔システムの記憶場所間の効果的なデータ転送の方法を提供することができる。
【００１８】
上記の説明  、また本発明のその  他の  対象、特長、および利点は、  ここで説明する添付の図とともに以下の詳細説明を読み、参照することにより、より良く理解されるであろう。
【００１９】
本発明は、多様な変更の、また別の形態となる余地があるが、ここでの特定の実施形態は、例として図に示されており、またここで、その詳細が説明される。ただし、ここで了解されねばならないことは、ここで加えられる図および詳細説明は、本発明を、ここで示される特定の形に限定することを意図しておらず、逆に、その意図は、添付した請求項で定義されている本発明の精神と範囲内において、全ての変更、等価な案、および代替案を含めることである。見出しは、説明の編成のためのみに用いており、説明および請求項を制限し、あるいは、解釈するために用いることを意図していないことを留意されたい。さらに、留意すべきことは、英単語「ｍａｙ」は、本申請書全体にわたって、「許される」（たとえば、可能性がある、することができる）という意味で用いられており、「強制」（たとえば、しなくてはならない）の意味では用いられていない。ここで用いられている「含める（ｉｎｃｌｕｄｅ）」という語、あるいはその派生語は、「…を含むが、それに限ることはなく」という意味である。「結合した（ｃｏｕｐｌｅｄ）」という語は、「直接、あるいは間接的に接続した」と言う意味である。
【発明を実施するための最良の形態】
【００２０】
ここで使用されているように、「Ｄワード」あるいは「ダブル・ワード」は３２ビットデータ・ワードのことであり、「ローカル・システム・メモリ」あるいは「ローカル・メモリ」は、ホスト・システム上に構成され、通常、中央演算処理装置あるいは中央制御装置に組み込まれているか、直接接続されているメモリを指す。「遠隔システム・メモリ」あるいは「遠隔メモリ」は、ホスト・システム上に構成されているが、  中央制御装置に組み込まれておらず、また直接接続されていないメモリ、あるいはホスト・システムとは異なる遠隔システムに構成されているメモリを指す。ホスト・システムに構成される時、遠隔メモリは、周辺機器に組み込まれているメモリ、および、システムの専用メモリバスに直接接続されていないメモリを意味する。
【００２１】
一連の実施形態で、本発明は、多様なサブシステムの間、特にローカル・メモリと遠隔メモリ間のデータ移動処理を効果的に行うメモリ・アラインメント技術（ＭＡＴ）を用いた装置と方法を提供する。好適な実施形態を、送信フローおよび受信フローの２つのデータ経路の流れの例を用いて説明する。更に具体的には、ここで示す送信フローと受信フローを、データ通信制御装置、ここでは、イーサネット・コントローラに設定された、ＭＡＴ装置について述べる。しかし、別の実施形態は、他のデータ転送装置および方法を含めることができ、イーサネット・コントローラを用いたイーサネット接続によるデータ転送に限るものではない。詳細には説明されないが、イーサネット以外のシステム相互接続を用いた転送方法、また、イーサネット・コントローラ以外のデータ通信制御装置を用いた代替の実施形態も考慮される。
【００２２】
図２に典型的なシステムおよびデバイス・レベルの実施形態１００を示す。図に示すように、ＭＡＴ装置１０８は共用のローカルバス（あるいはメモりバス）１２２に接続される。そのバスは、組み込みプロセッサ／マイクロ・コントローラ１０２、システム・メモリ１０４，可能なシステム周辺機器１０６をＭＡＴ装置１０８に結合する。多くの組み込みプロセッサ環境では、図３に共用バス１２２として示されているように、メモリバスと周辺機器のバスは同じである。各々のデバイスは、固有のチップ・セレクト（ＣＳ）信号を持ち、その信号によって、周辺機器やメモリデバイスをシステムあるいはＩ／Ｏメモリにマップする。システム１００における電気的タイミングとバス・タイミングはチップ・セレクトによって変化する。チップ・セレクトによるタイミングは、周辺機器とメモリデ・バイスがシステム１００内のタイミング・パラメータを共用しなくても良いという利点をもたらす。
【００２３】
一つの実施形態では、ＭＡＴ装置１０８が、内部クロック信号を取得また生成するために、水晶／外部発振子１２０に結合されている。ＭＡＴ装置１０８は、イーサネットＭＡＣアドレスやその他の構成情報を記憶するための不揮発性メモリを含むことができる。ＭＡＴ装置１０８は図２の磁気装置１１４として示される変圧器に接続される。図２では、磁気装置１１４は、イーサネットＬＡＮ  １２４に接続される。イーサネットＬＡＮ  １２４は、物理媒体としての銅線の配線、通常ＣＡＴ−５ケーブルを通して磁気装置１１４に接続される。ＭＡＴ装置１０８は、さらに、外部物理レイヤー装置１１２に結合され、ここでは、ＩＥＥＥ８０２．３標準インターフェース等のメディア独立型インタフェース（ＭＩＩ）１２６を通じて結合が達成される。
【００２４】
図３はＭＡＴ装置１０８の一つの実施形態のデバイス・レベル・ダイアグラムを示す。ここでは、ＭＡＴ装置１０８がイーサネット・コントローラとして設定されている。一つの実施形態では、ＭＡＴ装置１０８は、デジタル・シリアル・データ・ストリームを１０／１００  Ｂａｓｅ−Ｔ物理レイヤー符号化スキーム等の様々な符号化スキームに変換可能なアナログ・システムとなりうる１０／１００イーサネット物理レイヤーブロック２１８を備えている。さらに、変換後のデータ・ストリームを、物理ＬＡＮ  １２４に転送することができる。ＩＥＥＥ８０２．３レイヤー２カプセル化フォーマット・データは１０／１００イーサネット媒体アクセス制御（ＭＡＣ）ブロック２１２を用いて送信し、受信することができる。更に一般的には、イーサネットＭＡＣ  ２１２は、ＨＢＩ  ２０２と結合されたネットワークの物理レイヤーとの接点となり、ここで、ＨＢＩ  ２０２はシステム１００の論理リンクとしての役割を果たす。ＭＡＴ装置がイーサネット・コントローラとして設定されていない代替の実施形態では、選択された通信データ・チャンネルとプロトコルに従ってイーサネットＭＡＣではないＭＡＣを含むことができる。
【００２５】
１０／１００イーサネットＭＡＣ  ２１２は、データを受信する際、フレームの一つのスタート位置を解析し、それが見つかった時点で、イーサネット媒体アクセスのヘッダ情報と関連データ（ペイロードデータとも呼ばれる）を受信バッファ２１４に格納することができる。一つの実施形態群では、データのインテグリティをサイクリック・リダンダンシー（ＣＲＣ）シーケンスにより確認することができる。イーサネットＭＡＣ  ２１２  は、データを送信するとき、設定可能な送信ＦＩＦＯ  ２０４からデータ・パケットを受け取ることができ、これにより、送信バッファ２１６を通して、シリアル・オクテット・バイト（イーサネット・パッケット）のシーケンスを開始することができる。データ検証の目的で、サイクリック・リダンダンシー（ＣＲＣ）シーケンスをデータに付加してもよい。図３で示され、上に述べられたように、ＭＡＴ装置１０８は、バッファ２１４、２１６、ＦＩＦＯ  ２０４、２１０等の多くのメモリ・エレメントを含むことができ、それらは、データ処理の様々な段階において、イーサネットの受信パケットと送信パケットを格納する働きをする。それらのメモリ・エレメントは、ホストのハードウエアとソフトウエアに関連した待ち時間の問題のために、必要とされることがある。
【００２６】
一つの実施形態では、ＭＡＴ装置１０８がホスト・バス・インターフェース（ＨＢＩ）２０２をも含み、それは、多様な機能を実行するための専用の複数ブロックから構成される。この実施形態では、ＨＢＩ  ２０２が汎用タイマー２２４と割り込みコントローラー２２２を含み、また、ＭＡＴ装置１０８のデータ・アラインメント機能を導入しつつ、ＭＡＴ装置１０８が、ホスト・システム（たとえば図２のシステム・メモリ１０４）、代替システム・メモリ（図２の１０１）、さらに組み込みプロセッサ上のメモリ（図２の１０２）からのデータを効果的に移動させるのを可能にする。
【００２７】
次に、図４に示されるように、あるネットワークのデバイス・ドライバ環境では、送信パケットが、（前に図１で示したように）物理的かつ仮想的に連続しでアラインされた個別のバッファとしてではなく、送信パケットが任意長のバッファ断片の連結リストとして送られる場合がある。通常、大きいペイロード・データを含む送信パケットは、小さなものに比べ、物理的なシステム・メモリの切れ目を含む可能性が高い。そのようなパケットでは、各バッファが任意のバイト境界で始まり、終わる可能性がある。各バッファ断片は、一つ、またはそれ以上の物理ページの切れ目を含む仮想的に連続したものとなるかもしれない。図４は、３２ビット境界でアラインされていないメモリバッファ３０１、３０２、３０３を示す。バッファ３０１、３０２、３０３には、埋め込みプロセッサ１０２等で実行しているオペレーティング・システムによって、システム・メモリ１０４（図２参照）に書き込まれたデータが入っている。囲み３１０ａから３１０ｅで示されるデータの一部は送信されるべきデータに含まれず、従って、イーサネットＭＡＣ  ２１２にとって不必要なデータを表すだろう。プロセッサ１０２上で実行できるＬＡＮドライバは、バッファ３０１、３０２、３０３のデータを、バッファ３０４、３０５、３０６で示されるように、ＨＢＩ  ２０２、さらに具体的にはＰＩＣコントローラ（ＰＩＯＣ）２２０に受け渡すことができ、それらのバッファは、その時点で連続したものになっている。ＨＢＩ  ２０２は、オフセットデータ（任意長のバイトオフセット３１０ａ、３１０ｄ）とパディング・データ（任意長のバイト・パディング３１０ｂ、３１０ｃ、３１０ｅ）を除去し、イーサネットＭＡＣ  ２１２が、アラインされたデータ３０４、３０５、３０６にアクセスすることを可能にさせる。ここで示す実施形態では、ＰＩＯコントローラ（ＰＩＯＣ  ２２０）を含むが、代替の実施形態では、スレーブＤＭＡコントローラら等の、異なったデータ転送手段のコントローラを含むことができる。
【００２８】
一つの実施形態では、データ転送中、システム・メモリ１０４からＰＩＯＣ  ２２０にデータを受け渡す前に、ＬＡＮドライバ・ソフトウエアは、各バッファごとに、関連データの処理法をＰＩＯＣ  ２２０に指示するため、転送命令情報をＰＩＯＣ  ２２０に書き込む。ＰＩＯＣ  ２２０は、次に、各バッファごとに転送命令に基づいて、データをアラインすることができ、続いて、転送ＦＩＦＯ  ２０４に書き込むためにデータを転送することができる。図５は、本発明の一つの実施形態にしたがって転送バッファフォーマット４００を示す。ここに示すように、（ＴＸ命令ＡとＴＸ命令Ｂとして示されている）一次送信命令４０２と二次送信命令４０４が、送信データ４０８の前に送られる。一つの実施形態では、ＴＸ命令Ａ  ４０２とＴＸ命令Ｂ  ４０４はともに３２ビット長である。ＴＸ命令Ａ  ４０２とＴＸ命令Ｂ  ４０４は、ＰＩＯＣ  ２２０内部にある専用レジスタに書き込まれる。代替の実施形態では、ＴＸ命令Ａ  ４０２およびＴＸ命令Ｂ  ４０４は、ＰＩＯＣ２２０内の、実際のパケット・データと同じバッファ内に書き込まれてもよい。さらに図５で示すように、個々のバッファは、オプションとして、最初にオフセット４０６と最後にアラインメント・パディング４１０を含むことができる。プログラム可能なオフセットを許すことにより、断片化したアラインされていないバッファは、ＰＩＯＣ  ２２０にデータが引き渡される前のプロセッサ１０２によるアラインメントの必要なしに、改善されたバースト転送のパーフォーマンスの恩恵を受けることができる。
【００２９】
図６Ａおよび図６Ｂは、一つの実施形態について、それぞれＴＸ命令Ａ  ４０２、ＴＸ命令Ｂ  ４０４のフォーマットを示す。図６Ａに挙げられているように、ＴＸ命令４０２は、バッファ終了アラインメント、データ開始位置、開始パケット断片、終了パケット断片、バッファサイズの情報とともに、割込みイネーブルビットを含む。図６Ｂに挙げられているように、ＴＸ命令Ｂ  ４０４は、サイクリック・リダンダンシー・チェック（ＣＲＣ）無効ビット、イーサネット・フレーム・パディング無効ビット、パケット長情報に加え、１６ビットのパケット・タグを含む。イーサネット接続を介した通信のため、パケットは、イーサネット・パケットであり、データと、一つ、あるいはそれ以上のバッファに関する情報を含む。各パケット・タグは、（ＬＡＮドライバ・ソフトウエアなどの）ホスト・ソフトウエアがそのように設定されていれば、各パケットに対して固有のものとなる（インクリメント・カウント等）。関連したパケットのパケット・タグの値は、ＴＸ状態ＦＩＦＯ  ２０６（図３）に戻される。パケット・タグは、ホスト・ソフトウエアが各状態ワードを特定するために用いられ、あるいは、ホスト・システム１００に戻されるとき、他の多くの可能な統計的な値を送るために用いられる。
【００３０】
一つの実施形態では、ＴＸ命令Ａ  ４０２とＴＸ命令Ｂ  ４０４両方が一つのパケットの内の各バッファに要求されることがあり、ＴＸ命令Ｂ  ４０４が、一つのパケット内のすべてのバッファに対し、同一であることを要求されることもある。図５を見ると、前に示したように、送信データ４０８の部分は、ＴＸ命令Ａ  ４０２とＴＸ命令Ｂ  ４０４に続いて、第三の３２ビットワードから開始してもよい。有効な送信バッファの開始バイトの位置は、図６Ａで参照されているように、ＴＸ命令Ａ  ２０２のデータ開始オフセット・フィールドで指定することができる。表１は、一つの実施形態について、データ開始オフセット・フィールドの最下位ビット（ＬＳＢ）の値と、送信データ４０８の有効開始バイトの関係を示す。送信データ４０８は、任意の数の３２ビットワードの後から開始する。以下に示す実施形態では、送信データ４０８は、データ開始オフセット・フィールドにおける最上位（ＭＳＢ）３ビット［ビット４：２］が示すように、最大７個の追加の３２ビットワードの後から開始する。
【００３１】
【表１】
2008519373.tif 000003
【００３２】
送信データ４０８はバッファの終了まで、連続したものである。一つの実施形態では、ＴＸ命令Ａ  ４０２内のバッファ終了アラインメント・フィールドは、（図６Ａで参照されているように）関連するバッファについて、維持するべきアラインメントを指定することができる。ひとつの実施形態では、バッファの終了アラインメントは、４バイト、１６バイト、３２バイトとして指定することができる。代替の実施形態では、バッファの終了アラインメントは、６４バイトを超えて指定することができ、そこでは、アラインメントのバイトの大きさは、４バイトごとの増加で、無制限に拡大することが可能である。本分野に精通した者は、ここで述べたように、バッファ終了アラインメントを、システム用件に従って指定することができ、バッファ終了アラインメントの仕様にまったく制限されないことに、価値を見出すであろう。
【００３３】
送信フローと同様に、ＭＡＴ装置１０８は、各受信バッファ、あるいは、パケットについての、プログラム可能なオフセットを提供できるように設定され、ＬＡＮドライバ・ソフトウエア（あるいは、もっと一般的には、データ通信ドライバ・ソフトウエアとホスト・ソフトウエア）が、ＣＰＵの介入なしに、最適にアラインされたネットワークデータを送ることを可能にする。言葉を変えて言えば、ＭＡＴ装置１０８は、データ・パケットがシステム１００により受信された時点でのシステム・メモリ１０４の使用可能度と、割り当てを基にしたシステム・メモリ１０４（あるいは代替システム・メモリ１０１）の要件に従ってシステム・メモリ１０４に書き込まれる前に（図２参照）、受信データをアラインすることを可能にする。
【００３４】
一つの実施形態では、ＭＡＴ装置１０８が、バッファのプレフィックス、ポストフィックス部分双方について、転送データを３２ビットワード境界にアラインさせるため、イーサネット・パケットを受信した時点で、必要であれば、使用できるデータ・バッファ・パディングの量を決めるように設定されている。受信データ・パケットがＲＸデータＦＩＦＯ  ２１０から読み込まれるのと同時に、受信状態情報は、ＲＸ情報ＦＩＦＯ  ２０８（図３参照）から読むことができる。システム・メモリ１０４および、代替メモリ１０１に格納できるように、データをローカルバス１２２（図２参照）上で使用可能にする前に、受信データ・パケットを、特定の方法で構成することができる。一つの実施形態では、データサイズ、およびエラー状態を確定するため、関連した状態情報をＲＸ状態ＦＩＦＯ  ２０８から読み込んだ後、図７に示す実施形態に従って、受信データの構成がなされる。「オフセットＤワード０からオフセットＤワード」６０６として定義されている３２ビットフィールドは０から３１バイトの長さとなりうる。従って、転送バッファは「ｎ」バイトのプレフィックス・パディングで始まり、次に、実際の受信データ（言い換えれば、パケット・ペイロード）６０８が続くことになる。最後のデータ・バイト（バイト、１６ビット、あるいは３２ビット語境界でアラインされる可能性がある）の後、「パッドＤワード０から任意のパッドＤワードｎ」６１０ポストフィックス・パディングが続き、これは、４、１６、３２、あるいは６４バイトの長さとなる。前に述べたように、ここで示したパディング値は、説明のために用いられており、それに限定することは全く意図されていない。別のパディング値は可能であり、考慮されている。一つの実施形態では、ポストフィックス・パディングは３２ビットワード境界で終了し、従って、実際のポストフィックス・パッドバイトは、最後のデータ・バイトのアラインメントに応じて変化する。代替の実施形態では、バッファの終了アラインメントが６４バイトを超えることができる。この場合には、アラインメントのバイトの大きさは、４バイトごとの増加で、無制限に拡大することが可能である。
【００３５】
図８は、一つの実施形態に従い、ＲＸ状態ＦＩＦＯ  ２０８から読み込むことのできる状態情報を示している。図９は、一つの実施形態に従い、ＭＡＴ装置１０８が受信バッファを構成するために使うことのできる受信設定フォーマットを示す。終了アラインメント・フィールド（ＲＸ終了アラインメント）は、バッファの、最後のデータ転送について、維持するべきアラインメントを指定することができる。ＭＡＴ装置１０８は、図９のＲＸ終了アラインメント項に示される表で指定されたアラインメントに至るまで、余分の３２ビットワードのデータを付加する。一つの実施形態では、このメカニズムを、（図２のプロセッサ／コントローラ１０２のような）ホスト・プロセッサ上でのキャッシュ・ライン・アラインメントを維持するために用いることができる。ＲＸ  ＤＭＡカウント・フィールドは、特定の転送のために、ＲＸデータＦＩＦＯ  ２１０（図３参照）から何個の３２ビットワードが転送されるべきかを示す。値がセットされた後、このフィールドの値は、ＲＸデータＦＩＦＯ  ２１０から一つの３２ビットデータワードが読まれるごとに、減少させられる。このフィールドは、カウント値がゼロに達する前に、新しい値で上書きすることができる。「Ｆｏｒｃｅ  ＲＸ  Ｄｉｓｃａｒｄ」は、すべてのデータのＲＸデータＦＩＦＯ  ２１０およびＲＸ状態ＦＩＦＯ  ２０８をクリアするためにセットできる、セルフ・クリーニング・ビットとすることができる。最後に、ＲＸデータオフセット・フィールドは、受信データ・パケットの最初に付加されたオフセットバイトの数を表わすことができる。それは、図７に示す、任意のオフセットＤワード６０６である。有効データの開始場所は、このフィールドで指定された数のバイト分だけ移動する。一つの実施形態では、有効なオフセットバイトの数をゼロから３１まで変化するように指定することができる。一つの実施形態では、ドライバ・ソフトウエアが、受信設定情報を、ＨＢＩ  ２０２内にあるＲＸフォーマットレジスタ２０９に書き込む。
【００３６】
以上の実施形態について、かなり詳細にわたり説明したが、イーサネット以外の通信チャンネルを通した別形態のデータ転送も可能である。さらに、上記の開示を完全に理解し、評価すれば、この技術に精通した者にとっては、多数の別形態や、変更の可能性も明白となるであろう。以下の請求項は、そのようなすべての異なった形態や変更を包含することを意図している。ここで用いられている項目の見出しは、編成のためのみに用いており、個々で与えられている説明、あるいはここに添付されている請求項を制限するために用いることを意図していないことを留意されたい。
【図面の簡単な説明】
【００３７】
【図１】はデータ・バッファ断片が、以前の技術では、通常どのようにローカル・システムのメモリからデータ通信制御装置に受け渡されるかを説明している。
【図２】はＭＡＴ装置を組み込んだシステムの一つの実施形態を示している。
【図３】はＭＡＴ装置の一つの実施形態に関するデバイス・レベルのブロック・ダイヤグラムを示している。
【図４】は一つの実施形態について、メモリバッファ断片が、ローカル・システム・メモリから遠隔システム・メモリへ受け渡される際、ＭＡＴ装置によってどのようにアラインされるかを示している。
【図５】は送信バッファ構成の一つの実施形態を示している。
【図６Ａ】は送信命令Ａのフォーマットの一つの実施形態を示している。
【図６Ｂ】は送信命令Ｂのフォーマットの一つの実施形態を示している。
【図７】は  図５は受信バッファ構成の一つの実施形態を示している。
【図８】は受信状態レジスタの構成の一つの実施形態を示している。
【図９】は受信フォーマットレジスタの構成の一つの実施形態を示している。
【図１】
2008519373.tif 000004
【図２】
2008519373.tif 000005
【図３】
2008519373.tif 000006
【図４】
2008519373.tif 000007
【図５】
2008519373.tif 000008
【図６Ａ】
2008519373.tif 000009
【図６Ｂ】
2008519373.tif 000010
【図７】
2008519373.tif 000011
【図８】
2008519373.tif 000012
【図９】
2008519373.tif 000013
【手続補正書】
【提出日】平成19年7月30日(2007.7.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
非バスマスタのデータ通信コントローラを含むローカル・システム上に設定されたローカル・メモリと遠隔メモリ間のデータ転送の方法であって、
前記ローカル・メモリから、前記非バスマスタのデータ通信コントローラ内の一つ、あるいはそれ以上のバッファへデータを書き込むステップと、
前記非バスマスタのデータ通信コントローラへ、データに関するフォーマット情報を書き込むステップと、
前記非バスマスタのデータ通信コントローラによって、アラインされていない任意のデータ部分を、対応するフォーマット情報に基づいてアラインさせるステップと、
前記非バスマスタのデータ通信コントローラ内の、一つ、あるいはそれ以上のバッファから、それに対応する前記フォーマット情報と上記のアラインメントに従がって、前記遠隔メモリへデータを転送するステップと
を有する方法
【請求項２】
前記データに対応するフォーマット情報を書き込むステップが、前記非バスマスタのデータ通信コントローラ内の一つあるいはそれ以上のバッファのうちの一つ、あるいはそれ以上に前記フォーマット情報を書き込むことを含む請求項１記載の方法。
【請求項３】
前記ローカル・メモリから前記非バスマスタのデータ通信コントローラ内の一つ、あるいはそれ以上のバッファにデータを書き込むステップの前に、さらに、前記ローカル・メモリ上の一つ、あるいはそれ以上のバッファにデータを書き込むステップを含む請求項１記載の方法。
【請求項４】
前記ローカル・メモリに構成される一つ、あるいはそれ以上のバッファへデータを書き込むステップが、前記ローカル・システムに構成されたオペレーティング・システムによって実行される請求項３記載の方法。
【請求項５】
モートメモリが、
前記ローカル・システム以外のシステムと、
前記ローカル・システム内の周辺機器
の一つ、あるいはそれ以上で構成されている請求項１記載の方法。
記載の方法。
【請求項６】
前記アラインされていない任意のデータ部分をアラインさせるステップが、前記非バスマスタのデータ通信コントローラ内に構成される、ホスト・バス・インターフェースによって実行される請求項１記載の方法で。
【請求項７】
前記ローカル・システムが、中央演算処理装置とデータ通信ドライバ・ソフトウエアとを備えるコンピュータ・システムであり、
前記非バスマスタのデータ通信コントローラ内の一つ、あるいはそれ以上のバッファへデータを書き込むステップ、および、前記フォーマット情報を書き込むステップが、通信ドライバ・ソフトウエアによって実行され、
前記通信ドライバ・ソフトウエアが、中央演算処理装置によって実行される請求項１記
載の方法。
【請求項８】
前記中法演算処理装置が、
埋め込みマイクロプロセッサ、
埋め込みマイクロ・コントローラ、
のいずれか一つである請求項７記載の方法。
載の方法。
【請求項９】
前記遠隔メモリへデータを転送するステップが、パケットの形態でデータを転送することを含み、前記パケットが、前記非バスマスタのデータ通信コントローラ内の一つ、あるいはそれ以上のバッファのうちの一つ、あるいはそれ以上からのデータと関連するフォーマット情報によって構成される請求項１記載の方法。
【請求項１０】
前記フォーマット情報が、
一次転送命令情報、
二次転送命令情報、
オフセットデータ、
パディングデータ
の一つあるいはそれ以上で構成される請求項９記載の方法。
【請求項１１】
前記一次転送命令情報が、
割込みイネーブル、
バッファ終了アラインメント、
データ開始オフセット、
開始パケット断片、
終了パケット断片、
バッファサイズ
の一つ、あるいはそれ以上に対応する情報で構成されている請求項１０記載の方法。
【請求項１２】
前記二次転送命令情報が、
パケット・タグ、
ＣＲＣ無効、
イーサネット（登録商標）フレームパディング無効、
パケット長
の一つ、あるいはそれ以上に対応する情報で構成されている請求項１０の方法。
【請求項１３】
前記遠隔メモリからのデータを受信するステップと、
前記非バスマスタのデータ通信コントローラによって受信したデータをフォーマットするステップと、
フォーマットされた受信データを、前記ローカル・システムに構成されたローカル・メモリへ配送するステップと
をさらに含む請求項１に記載された方法。
【請求項１４】
前記受信データをフォーマットするステップが、
前記受信データをアラインするステップと、
前記受信データにオフセット・データを付加するステップと、
前記受信データにパディング・データを付加するステップ
の一つ、あるいはそれ以上で構成されている請求項１３の方法で
【請求項１５】
前記遠隔メモリからデータを受信するステップが、前記非バスマスタのデータ通信コントローラ内の、対応する受信バッファへ書き込むことを含む請求項１３記載の方法。
【請求項１６】
前記ローカル・システムと前記遠隔システムがイーサネットにより接続されている請求項１記載の方法。
【請求項１７】
前記非バスマスタのデータ通信コントローラが、
ＰＩＯコントローラ、
スレーブＤＭＡコントローラ
の一つを含む請求項１記載の方法。
【請求項１８】
ホスト・システムであって、
ローカル・システム・メモリと、
そのローカル・システム・メモリからの発信データを受信するように設定され、さらに前記ホスト・システムから前記発信データに対応するフォーマット・データを受信するように設定された、ホスト・バス・インターフェース、および、そのホスト・バス・インターフェースに結合している送信バッファによって構成される非バスマスタのデータ通信コントローラとを含み、
前記ホスト・バス・インターフェースは、フォーマット情報に基づいて、前記発信データをアラインしつつ、そのデータを、発信バッファに送ることが可能であり、
前記非バスマスタのデータ通信コントローラがアラインされた前記発信データを前記発信バッファから遠隔メモリへ転送する、前記ホスト・システム。
【請求項１９】
前記非バスマスタのデータ通信コントローラが、さらに、前記ホスト・バス・インターフェースに結合され、前記遠隔メモリから着信データを受け取るように設定され、
前記ホスト・バス・インターフェースが、さらに、前記ホスト・システムから、着信データに対応した、前記フォーマット情報を受けることが可能であり、
前記ホスト・バス・インターフェースが、さらに、前記ホスト・システムを、対応したフォーマット・データに基づいて、着信データをアラインしつつ、それを前記ローカル・システム・メモリに読み込むことを可能にさせる請求項１８記載のホスト・システム。
【請求項２０】
前記データ通信コントローラがさらに、
前記ホスト・バス・インターフェースに結合され、前記送信バッファから前記遠隔メモリへのアラインされた前記発信データの送信の状態情報を格納するように設定された送信状態バッファと、
前記ホスト・バス・インターフェースに結合され、前記遠隔メモリからの着信データの受信の状態情報を格納するように設定された受信状態バッファと
をさらに含む請求項１９記載のホスト・システム
【請求項２１】
前記非バスマスタのデータ通信コントローラが、さらに、
前記送信状態バッファに、前記送信の状態情報を提供する、
前記受信状態バッファに、前記受信の状態情報を提供する、
前記受信バッファに、前記着信データを提供する、
前記送信バッファから、アラインされた前記発信データを転送すること
を行うために、媒体アクセス・コントロール・モジュールを含む請求項２０記載のホスト・システム
【請求項２２】
前記非バスマスタのデータ通信コントローラが、さらに、媒体メディアアクセス・コントロール・モジュールと結合した物理レイヤーを含む請求項２１記載のホスト・システム。
【請求項２３】
前記物理レイヤーが、イーサネット物理レイヤーであり、前記媒体アクセス・コントロール・モジュールが、イーサネット媒体アクセス・コントロール・モジュールである請求項２２記載のホスト・システム。
【請求項２４】
前記受信の状態情報が、
アドレス認識選別不成功、
パケット長、
エラー状態、
フレームブロードキャストアドレス、
長さエラー、
フレーム早期終了、
フレームマルチキャストアドレス、
フレーム長、
フレームコリジョンの発生、
フレームタイプ、
受信監視タイムアウト、
受信エラー検出、
ドリブリングビット、
ＣＲＣエラー
の一つ、あるいはそれ以上に関する情報で構成されている請求項２０記載のホスト・システム
【請求項２５】
前記ホスト・バス・インターフェースが。
ＰＩＯコントローラ、
スレーブＤＭＡコントローラ
の一つを含む請求項１８記載のホスト・システム。
【請求項２６】
前記遠隔メモリが、
前記ホスト・システム、
前記ホスト・システムとははっきりと異なる遠隔システム
の一つで構成されている請求項１８記載のホスト・システム
【請求項２７】
前記遠隔メモリが、前記ホスト・システムの周辺機器に構成されている請求項１８記載のホスト・システム。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008519373.tif 000014
【図２】
2008519373.tif 000015
【図３】
2008519373.tif 000016
【図４】
2008519373.tif 000017
【図５】
2008519373.tif 000018
【図６Ａ】
2008519373.tif 000019
【図６Ｂ】
2008519373.tif 000020
【図７】
2008519373.tif 000021
【図８】
2008519373.tif 000022
【図９】
2008519373.tif 000023
【国際調査報告】
2008519373.tif 000024
2008519373.tif 000025