(57)【要約】      （修正有）【課題】入力／出力バスと外部ネットワークの間で転送されるデータのために、エンドツーエンドでデータ完全性を保護する。【解決手段】データ処理システムの入力／出力バスと外部ネットワークとの間で転送されるデータの完全性を保護するための方法、システム、及びコンピュータ・プログラムである。データの完全性を保護する方法が、該入力／出力バスから該ネットワークに転送されるデータについて、該入力／出力バスとアダプタとの間のインターフェースにおいてＣＲＣ値を生成するステップと、該ネットワークから該入力／出力バスに転送されるデータについて、該入力／出力バスとアダプタとの間のインターフェースにおいてＣＲＣ値を検査するステップとを含む。ＣＲＣ生成装置及びＣＲＣチェッカを、入力／出力バスとアダプタとの間のインターフェース上に付加することによって、転送されるデータについて、エンドツーエンドでデータ完全性が保護される。【選択図】図５
2006134306.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムにおいて、入力／出力バスとネットワークとの間で転送されるデータの完全性を保護する方法であって、前記方法が、
前記入力／出力バスから前記ネットワークに転送される第１のデータについて、該入力／出力バスとアダプタとの間のインターフェースにおいて第１の巡回冗長検査値を生成するステップと、
前記ネットワークから前記入力／出力バスに転送される第２のデータについて、該入力／出力バスと前記アダプタとの間のインターフェースにおいて第２の巡回冗長検査値を検査するステップと、
を含むことを特徴とする方法。
【請求項２】
前記アダプタと前記ネットワークとの間のインターフェースの前に、前記第１のデータについての前記第１の巡回冗長検査値を検査するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記第１の巡回冗長検査値を検査した後、前記アダプタと前記ネットワークとの間の前記インターフェースの前に、前記第１のデータについての第３の巡回冗長検査値を生成するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記第１の巡回冗長検査値を生成する前に、前記入力／出力バスと前記アダプタとの間の前記インターフェースにおいて前記第１のデータについての第４の巡回冗長検査値を検査するステップをさらに含む、請求項１に記載の方法。
【請求項５】
前記第２の巡回冗長検査値を検査した後に、前記入力／出力バスと前記アダプタとの間の前記インターフェースにおいて前記第２のデータについての第５の巡回冗長検査値を生成するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記第１のデータが第１のデータ・パケットからなり、前記第２のデータが第２のデータ・パケットからなる、請求項１に記載の方法。
【請求項７】
前記第１の巡回冗長検査値を前記アダプタ上の送信パケット・バッファに格納するステップと、前記第２の巡回冗長検査値を前記アダプタ上の受信パケット・バッファに格納するステップとをさらに含む、請求項６に記載の方法。
【請求項８】
前記入力／出力バスが、周辺機器相互接続入力／出力バス・アーキテクチャからなる、請求項１に記載の方法。
【請求項９】
データ処理システムであって、
入力／出力バスと、
前記入力／出力バスとネットワークとの間でデータを転送するための、該入力／出力バスに接続されたアダプタと、
前記入力／出力バスから前記ネットワークに転送される第１のデータについての第１の巡回冗長検査値を生成するための、該入力／出力バスと前記アダプタとの間におけるインターフェース上の第１の巡回冗長検査生成装置と、
前記ネットワークから前記入力／出力バスに転送される第２のデータについての第２の巡回冗長検査値を検査するための、該入力／出力バスと前記アダプタとの間における前記インターフェース上の第１の巡回冗長検査チェッカと、
を備えることを特徴とするシステム。
【請求項１０】
前記アダプタと前記ネットワークとの間のインターフェースの前に、前記第１のデータについての前記第１の巡回冗長検査値を検査するための第２の巡回冗長検査チェッカをさらに含む、請求項９に記載のシステム。
【請求項１１】
前記第１の巡回冗長検査値を検査した後、前記アダプタと前記ネットワークとの間のインターフェースの前に、前記第１のデータについての第３の巡回冗長検査値を生成するための第２の巡回冗長検査生成装置をさらに含む、請求項９に記載のシステム。
【請求項１２】
前記第１の巡回冗長検査値を生成する前に、前記入力／出力バスと前記アダプタとの間の前記インターフェースにおいて、前記第１のデータについての第４の巡回冗長検査値を検査するための第３の巡回冗長検査チェッカをさらに含む、請求項９に記載のシステム。
【請求項１３】
前記第２の巡回冗長検査値を検査した後、前記入力／出力バスと前記アダプタとの間の前記インターフェースにおいて、前記第２のデータについての第５の巡回冗長検査値を生成するための第３の巡回冗長検査生成装置をさらに含む、請求項９に記載のシステム。
【請求項１４】
前記第１のデータが第１のデータ・パケットからなり、前記第２のデータが第２のデータ・パケットからなる、請求項９に記載のシステム。
【請求項１５】
前記第１の巡回冗長検査値を前記アダプタ上の送信パケット・バッファに格納するための第１のストレージと、前記第２の巡回冗長検査値を前記アダプタ上の受信パケット・バッファに格納するための第２のストレージとをさらに含む、請求項１４に記載のシステム。
【請求項１６】
前記入力／出力バスが、周辺機器相互接続入力／出力バス・アーキテクチャからなる、請求項９に記載のシステム。
【請求項１７】
データ処理システムにおいて、入力／出力バスからネットワークに転送されるデータの完全性を保護する方法であって、前記方法が、
前記入力／出力バスから前記ネットワークに転送されるデータについて、該入力／出力バスとアダプタとの間のインターフェースにおいて巡回冗長検査値を生成するステップを含むことを特徴とする方法。
【請求項１８】
前記アダプタと前記ネットワークの間のインターフェースの前に、前記データについての前記巡回冗長検査値を検査するステップをさらに含む、請求項１７に記載の方法。
【請求項１９】
データ処理システムにおいて、ネットワークから入力／出力バスに転送されるデータの完全性を保護する方法であって、前記方法が、
前記ネットワークから前記入力／出力バスに転送されるデータについて、該入力／出力バスとアダプタとの間のインターフェースにおいて巡回冗長検査値を検査するステップを含むことを特徴とする方法。
【請求項２０】
入力／出力バスとネットワークとの間で転送されるデータの完全性を保護するためのコンピュータ可読媒体内のコンピュータ・プログラムであって、コンピュータ・システムに、
前記入力／出力バスから前記ネットワークに転送される第１のデータについて、該入力／出力バスとアダプタとの間のインターフェースにおいて第１の巡回冗長検査値を生成させ、
前記ネットワークから前記入力／出力バスに転送される第２のデータについて、該入力／出力バスと前記アダプタとの間の前記インターフェースにおいて第２の巡回冗長検査値を検査させる、
ことを備えることを特徴とするコンピュータ・プログラム。
【請求項２１】
前記コンピュータ・システムに、前記アダプタと前記ネットワークとの間のインターフェースの前に、前記第１のデータについての前記第１の巡回冗長検査値を検査させる、請求項２０に記載のコンピュータ・プログラム。
【請求項２２】
前記コンピュータ・システムに、前記第１の巡回冗長検査値を検査した後、前記アダプタと前記ネットワークとの間のインターフェースの前に、前記第１のデータについての第３の巡回冗長検査値を生成させる、請求項２０に記載のコンピュータ・プログラム。
【請求項２３】
前記コンピュータ・システムに、前記第１の巡回冗長検査値を生成する前に、前記入力／出力バスと前記アダプタとの間の前記インターフェースにおいて、前記第１のデータについての第４の巡回冗長検査値を検査させる、請求項２０に記載のコンピュータ・プログラム。
【請求項２４】
前記コンピュータ・システムに、前記第２の巡回冗長検査値を検査した後、前記入力／出力バスと前記アダプタとの間の前記インターフェースにおいて、前記第２のデータについての第５の巡回冗長検査値を生成させる、請求項２０に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データ処理の分野に関し、より具体的には、データ処理システムの入力／出力バスと外部ネットワークとの間で転送されるデータの完全性を保護するための方法、システム、及びコンピュータ・プログラムに関する。
【背景技術】
【０００２】
過去１０年の間、ＬＡＮ（ローカル・エリア・ネットワーク）技術、特にイーサネット（商標）技術の媒体速度は、３〜４年毎に１０倍改善した。対照的に、同じ期間、ＣＰＵ（中央処理ユニット）の速度は、およそ２年毎に２倍になったにすぎない。その結果、ＣＰＵは、高性能の入力／出力システムにおけるボトルネックとなってきている。
【０００３】
媒体速度の改善に起因する付加的なＣＰＵの作業負荷を緩和するために、入力／出力（Ｉ／Ｏ）アダプタにオフロードされたネイティブ・ホストの機能数が増えている。しかしながら、これらのオフロードされた機能により、データ完全性の問題が生じた。コスト上の理由により、アダプタ供給業者が、オン・チップＦＩＦＯ、外部メモリ、及び他の一時的ストレージのようなメモリ素子に関して適切なエラー検査を行うことは、一般的ではない。
【０００４】
ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ、伝送制御プロトコル／インターネット・プロトコル）規格は、「チェックサム」要求を用いて、データ完全性を強化するというものである。このチェックサムは、ホスト論理又はアダプタ論理のいずれにおいても実施することができる。ＴＣＰ／ＩＰチェックサムをアダプタ論理で実施するときには、ＴＣＰ／ＩＰチェックサムにより不良データが検出されることを保証するように注意を払わなければならない。データ経路全体に沿って全てのデータ経路がエラー保護される場合にだけ、このことを保証することができる。
【０００５】
ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ、周辺機器相互接続）−Ｅｘｐｒｅｓｓバス・アーキテクチャの場合には、Ｉ／Ｏバス・プロトコルが、ＰＣＩ−ＥｘｐｒｅｓｓベースのＩ／Ｏリンクのための巡回冗長検査（ＣＲＣ）技術を用いて、データ完全性の保護を改善した。図４は、本発明の説明を助けるために、当該技術分野において周知のＰＣＩ−Ｅｘｐｒｅｓｓバス・アーキテクチャを有するデータ処理システムに組み込まれたイーサネット・アダプタ・システムを概略的に示すブロック図である。アダプタ・システムは、全体が参照番号４００で示され、データ処理システムのメモリ４０４とネットワーク４０６との間でデータを転送するために、データ処理システムのＩ／Ｏバス４０２を外部ネットワーク４０６に接続する。
【０００６】
図４に示されるように、Ｉ／Ｏバス４０２からネットワーク４０６にデータを転送するための伝送経路において、ＣＲＣチェッカ４１２が、Ｉ／Ｏバス４０２とＰＣＩ−Ｅｘｐｒｅｓｓアーキテクチャによって指定されるＩ／Ｏリンク４１４により定められるアダプタ４３０との間のインターフェース上に設けられる。ＣＲＣチェッカ４１２は、メモリ４０４からの、Ｉ／Ｏバス４０２を横断するデータ・パケットについてのＣＲＣ値を検査する。データ・パケットは、アダプタ４３０上のＴｘパケット・バッファ４１６及びＴｘ  ＭＡＣ（媒体アクセス制御）４１８を介して、Ｉ／Ｏバス４０２からＣＲＣ生成装置４２０に、次いでネットワーク４０６に転送される。
【０００７】
アダプタ／ネットワーク間のインターフェースを横切ってネットワーク４０６に転送される前に、アダプタ４３０上のＣＲＣ生成装置４２０が、ネットワーク４０６に転送されるデータ・パケットについてのＣＲＣ値を生成する。
【０００８】
ネットワーク４０６からＩ／Ｏバス４０２にデータを転送するための受信経路においては、アダプタ４３０上のＣＲＣチェッカ４２２が、ネットワーク４０６からの、アダプタ／ネットワーク間のインターフェースを横断するデータ・パケットについてのＣＲＣ値を検査する。受信データは、アダプタ４３０上のＲｘ  ＭＡＣ４２４及びＲｘパケット・バッファ４２６を介して、該アダプタ４３０とＩ／Ｏバス４０２との間のインターフェース上のＩ／Ｏリンク４１４に転送される。Ｉ／Ｏリンク４１４上のＣＲＣ生成装置４２８は、Ｉ／Ｏリンク４１４を横切ってＩ／Ｏバス４０２に転送されるデータ・パケットについてのＣＲＣ値を生成する。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
イーサネット・アダプタ・システム４００は、物理層においてＣＲＣ値を生成し、検査するだけであり、ネットワーク内の物理的媒体上でのみデータ完全性が保護される。したがって、パリティは、ＰＣＩ−Ｅｘｐｒｅｓｓ及びアダプタの内部メモリ上で実施されるものの、パリティはダブルビット・エラー又はアドレス指定能力に関連するエラーを検出しないため、エラー検査は、エンドツーエンドのＣＲＣ実施でなされるものほど強力なものでない。
【００１０】
したがって、データ処理システムにおいて入力／出力バスと外部ネットワークの間で転送されるデータのために、エンドツーエンドでデータ完全性を保護することが望ましい。
【課題を解決するための手段】
【００１１】
本発明は、データ処理システムの入力／出力バスと外部ネットワークとの間で転送されるデータの完全性を保護するための方法、システム、及びコンピュータ・プログラムを提供する。入力／出力バスとネットワークの間で転送されるデータの完全性を保護する方法が、該入力／出力バスから該ネットワークに転送されるデータについて、該入力／出力バスとアダプタとの間のインターフェースにおいて巡回冗長検査値を生成するステップと、該ネットワークから該入力／出力バスに転送されるデータについて、該入力／出力バスとアダプタとの間のインターフェースにおいてＣＲＣ値を検査するステップとを含む。ＣＲＣ生成装置及びＣＲＣチェッカを、入力／出力バスとアダプタとの間のインターフェース上に付加することにより、該入力／出力バスとネットワークとの間で転送されるデータについて、エンドツーエンドでデータ完全性が保護される。
【発明を実施するための最良の形態】
【００１２】
本発明の特性と考えられる新規な特徴が、添付の特許請求の範囲に記載される。しかしながら、本発明自体並びに好ましい使用モード、そのさらなる目的及び利点は、以下の例示的な実施形態の詳細な説明を添付の図面と併せて読んだときに、最もよく理解されることになるであろう。
【００１３】
図面を参照すると、図１は、本発明を実装することができるデータ処理システムのネットワークの絵画表示である。ネットワーク・データ処理システム１００は、本発明を実装できるコンピュータのネットワークである。ネットワーク・データ処理システム１００は、ネットワーク・データ処理システム１００内で互いに接続された種々の装置とコンピュータとの間の通信リンクを提供するために使用される媒体であるネットワーク１０２を含む。ネットワーク１０２は、ワイヤ、無線通信リンク、又は光ファイバ・ケーブルのような接続を含むことができる。
【００１４】
図示される例において、サーバ１０４は、ストレージ・ユニット１０６と共にネットワーク１０２に接続される。さらに、クライアント１０８、１１０、及び１１２が、ネットワーク１０２に接続される。これらのクライアント１０８、１１０、及び１１２は、例えば、パーソナル・コンピュータ又はネットワーク・コンピュータとすることができる。図示される例において、サーバ１０４は、ブート・ファイル、オペレーティング・システムイメージ、及びアプリケーションのようなデータをクライアント１０８−１１２に提供する。クライアント１０８、１１０、及び１１２は、サーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、付加的なサーバ、クライアント、及び図示されていない他の装置を含むことができる。図示される例において、ネットワーク・データ処理システム１００は、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スイートのプロトコルを用いて互いに通信するネットワーク及びゲートウェイの世界的規模の集まりを表すネットワーク１０２を有するインターネットである。インターネットの中心には、データ及びメッセージを経路指定する何千もの商業用、政府機関用、教育用、その他のコンピュータ・システムからなる、主ノード又はホスト・コンピュータ間の高速データ通信回線のバックボーンがある。勿論、ネットワーク・データ処理システム１００は、例えば、イントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、又は広域エリア・ネットワーク（ＷＡＮ）のような多くの種々のタイプのネットワークとして実装することもできる。図１は、例として意図されるものであり、本発明に対する構造的な制限として意図されるものではない。
【００１５】
図２を参照すると、本発明の好ましい実施形態に係る、図１のサーバ１０４のようなサーバとして実装することができるデータ処理システムのブロック図が示される。データ処理システム２００は、システム・バス２０６に接続された複数のプロセッサ２０２及び２０４を含む対称型マルチプロセッサ（ＳＭＰ）システムとすることができる。代替的に、単一のプロセッサ・システムを用いることもできる。システム・バス２０６には、ローカル・メモリ２０９にインターフェースを与えるメモリ・コントローラ／キャッシュ２０８も接続される。Ｉ／Ｏバス・ブリッジ２１０が、システム・バス２０６に接続され、Ｉ／Ｏバス２１２にインターフェースを与える。図示されるように、メモリ・コントローラ／キャッシュ２０８及びＩ／Ｏバス・ブリッジ２１０を統合することができる。
【００１６】
Ｉ／Ｏバス２１２に接続された周辺機器相互接続（ＰＣＩ）バス・ブリッジ２１４は、ＰＣＩローカル・バス２１６にインターフェースを与える。多数のモデムをＰＣＩローカル・バス２１６に接続することができる。典型的なＰＣＩバスの実装は、４つのＰＣＩ拡張スロット又はアドイン・コネクタをサポートする。図１のクライアント１０８−１１２に対する通信リンクは、アドイン・コネクタを介してＰＣＩローカル・バス２１６に接続されたモデム２１８及びネットワーク・アダプタ２２０により与えることができる。
【００１７】
付加的なＰＣＩバス・ブリッジ２２２及び２２４は、付加的なＰＣＩローカル・バス２２６及び２２８にインターフェースを与え、そこから付加的なモデム又はネットワーク・アダプタをサポートすることができる。このようにして、データ処理システム２００は、多数のネットワーク・コンピュータに対する接続を可能にする。図示されるように、メモリ・マップされたグラフィックス・アダプタ２３０及びハードディスク２３２もまた、直接又は間接のいずれかで、Ｉ／Ｏバス２１２に接続することができる。
【００１８】
当業者であれば、図２に示されるハードウェアを変更できることを理解するであろう。例えば、光ディスク・ドライブなどといった他の周辺装置を、図示されるハードウェアに加えて、又はその代わりに用いることもできる。図示される例は、本発明に対する構造的な制限を示すことを意味するものではない。
【００１９】
図２に示されるデータ処理システムは、例えば、拡張対話式エグゼクティブ（ＡＩＸ（商標）、Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ）オペレーティング・システム又はＬＩＮＵＸ（Ｌｉｎｕｓ  Ｔｏｒｖａｌｄｓの商標）のオペレーティング・システムを稼動させる、ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシーンズ・コーポレーション社の製品であるＩＢＭ  ｅＳｅｒｖｅｒ  ｐＳｅｒｉｅｓ  ｓｙｓｔｅｍとすることができる（ＩＢＭ、ｅＳｅｒｖｅｒ、ｐＳｅｒｉｅｓはそれぞれ商標）。
【００２０】
図３を参照すると、本発明を実装することができるデータ処理システムを示すブロック図が示される。データ処理システム３００は、クライアント・コンピュータの一例である。データ処理システム３００は、周辺機器相互接続（ＰＣＩ、ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）ローカル・バス・アーキテクチャを用いる。図示される例はＰＣＩバスを用いるが、グラフィック専用高速バス（ＡＧＰ、Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）のような他のバス・アーキテクチャ及び業界標準アーキテクチャ（ＩＳＡ、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）を用いることもできる。プロセッサ３０２及びメインメモリ３０４は、ＰＣＩブリッジ３０８を介して、ＰＣＩローカル・バス３０６に接続される。ＰＣＩブリッジ３０８はまた、プロセッサ３０２のための内蔵型メモリ・コントローラ及びキャッシュ・メモリを含むこともできる。コンポーネントの直接相互接続又はアドイン・コネクタを介して、ＰＣＩローカル・バス３０６に付加的な接続を行うことができる。図示される例において、ローカル・エリア・ネットワーク（ＬＡＮ）３１０、小型コンピュータシステム・インターフェイス（ＳＣＳＩ、ｓｍａｌｌ  ｃｏｍｐｕｔｅｒ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ）ホスト・バス・アダプタ３１２、及び拡張バス・インターフェース３１４が、コンポーネントの直接接続によって、ＰＣＩローカル・バス３０６に接続される。対照的に、音声アダプタ３１６、グラフィックス・アダプタ３１８、及び音声／映像アダプタ３１９が、拡張スロットに挿入されたアドイン・ボードによって、ＰＣＩローカル・バス３０６に接続される。拡張バス・インターフェース３１４は、キーボード及びマウス・アダプタ３２０、モデム３２２、及び付加的なメモリ３２４に対する接続を提供する。ＳＣＳＩホスト・バス・アダプタ３１２は、ハードディスク・ドライブ３２６、テープ・ドライブ３２８、及びＣＤ−ＲＯＭドライブ３３０に対する接続を提供する。典型的なＰＣＩローカル・バス実装は、３つ又は４つのＰＣＩ拡張スロット又はアドイン・コネクタをサポートする。
【００２１】
オペレーティング・システムは、プロセッサ３０２上で稼動し、図３のデータ処理システム３００内の種々のコンポーネントの制御を調整し、提供するために用いられる。オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ社から入手可能なＷｉｎｄｏｗｓ(商標）ＸＰのような市販のオペレーティング・システムとすることができる。Ｊａｖａ（商標）のようなオブジェクト指向プログラミング・システムは、オペレーティング・システムと共に稼動することができ、データ処理システム３００上で実行しているＪａｖａプログラム又はアプリケーションからオペレーティング・システムへの呼び出しを行う。「Ｊａｖａ」は、オペレーティング・システム、オブジェクト指向プログラミング・システムについてのＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ社の登録商標であり、アプリケーション又はプログラムは、ハードディスク・ドライブ３２６のようなストレージ装置上に配置され、メインメモリ３０４内に読み込み、プロセッサ３０２によって実行することができる。
【００２２】
当業者であれば、実装によって、図３のハードウェアを変更できることを理解するであろう。他の内部ハードウェア、又はフラッシュ読み出し専用メモリ（ＲＯＭ）、同等の不揮発性メモリ、又は光ディスク・ドライブなどといった周辺装置は、図３に示されるハードウェアに加えて、或いはその代わりに用いることもできる。また、本発明のプロセスは、マルチプロセッサ・データ処理システムに適用することができる。
【００２３】
別の例として、データ処理システム３００は、何らかのタイプのネットワーク通信インターフェースに依存することなく、ブート可能なように構成された独立型システムとすることができる。更に別の例として、データ処理システム３００は、オペレーティング・システム・ファイル及び、又はユーザ生成データを格納するための不揮発性メモリを提供するために、ＲＯＭ及び／又はフラッシュＲＯＭを有するように構成された携帯情報端末（ＰＤＡ、ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）装置とすることができる。
【００２４】
図３に図示される例及び上述の例は、構造的な制限を示すことを意味するものではない。例えば、データ処理システム３００は、ＰＤＡの形態をとる以外に、ノートブック型コンピュータ又は手持ち式コンピュータとしてよい。データ処理システム３００はまた、キオスク又はウェブ・アプライアンスとしてもよい。
【００２５】
本発明は、図２のシステム２００のようなデータ処理システムの入力／出力バスと図１のネットワーク１０２のような外部ネットワークとの間で転送されるデータに対して、エンドツーエンドでデータ完全性を保護するものである。
【００２６】
本発明の好ましい実施形態によると、ＰＣＩ−Ｅｘｐｒｅｓｓバス・アーキテクチャを有するＩ／ＯバスとイーサネットＩ／Ｏアダプタとの間のインターフェース上にＣＲＣ生成装置及びＣＲＣチェッカを付加することによって、エンドツーエンドのデータ完全性が保護される。新しい論理は、アダプタに対してＤＭＡを行うデータ・パケットについてのＣＲＣ値を生成し、データ処理システム・メモリに対してＤＭＡを行うデータ・パケットについてのＣＲＣ値を検査する。
【００２７】
図５は、本発明の好ましい実施形態による、ＰＣＩ−Ｅｘｐｒｅｓｓバス・アーキテクチャを有するデータ処理システムに組み入れられたイーサネット・アダプタ・システムを概略的に示すブロック図である。イーサネット・アダプタ・システムは、全体が参照番号５００で示され、多くの点で図４のイーサネット・アダプタ・システム４００に類似しており、図５においては、同様の要素が対応する参照番号で示されている。
【００２８】
図５のアダプタ・システム５００は、アダプタ・システム５００がさらに、Ｉ／Ｏバス５０２からネットワーク５０６に転送されるデータのための伝送経路において、Ｉ／Ｏバス５０２とＩ／Ｏアダプタ５３０との間のインターフェース上のＰＣＩ−Ｅｘｐｒｅｓｓコア内にＣＲＣ生成装置５４０を含み、ネットワーク５０６からＩ／Ｏバス５０２に転送されるデータのための受信経路において、Ｉ／Ｏバス５０２とアダプタ５３０との間のインターフェース上のＰＣＩ−Ｅｘｐｒｅｓｓコア５１４内にＣＲＣチェッカ５４２を含むという点で、図４のアダプタ・システム４００と異なる。
【００２９】
アダプタ・システム５００において、ＣＲＣ生成装置５４０は、データ・パケットが、データ処理システムのメモリ５０４からＩ／Ｏバス５０２を横断するときに、データ・パケットについてのＣＲＣ値を生成する。次に、データがアダプタ５３０とネットワーク５０６との間のインターフェースを横断する直前に、アダプタ５３０上のＣＲＣチェッカ／生成装置５４４がＣＲＣ値を検査する。このように、ＣＲＣ生成装置５４０は、ＣＲＣチェッカ／生成装置５４４と協働して、Ｉ／Ｏバス／アダプタ間のインターフェースとアダプタ／ネットワーク間のインターフェースとの間で、Ｉ／Ｏバス５０２からネットワーク５０６に転送されるデータの完全性を保護する。
【００３０】
受信経路においては、ＣＲＣチェッカ５２２が、ネットワーク５０６からの、アダプタ／ネットワーク間のインターフェースを横断するデータ・パケットについてのＣＲＣ値を検査し、アダプタのＤＭＡエンジンが、データ・パケットを、Ｉ／Ｏバス／アダプタ間のインターフェースを横切ってデータ処理システム・メモリ５０４に送信するときに、新しいＣＲＣチェッカ５４２が再度ＣＲＣ値を検査する。したがって、ネットワーク５０６からメモリ５０４に転送されるデータの完全性が、アダプタ／ネットワーク間のインターフェースとＩ／Ｏバス／アダプタ間のインターフェースとの間で保護される。
【００３１】
同じく図５に示されるように、ＣＲＣ生成装置５４０によって生成されたＣＲＣ値は、５３４で示されるようにＴｘパケット・バッファ５１６に格納され、ネットワーク５０６からのデータ・パケットについてのＣＲＣ値は、５３６で示されるようにＲｘパケット・バッファ５２６に格納される。
【００３２】
伝送経路内のＣＲＣ生成装置と受信経路内のＣＲＣチェッカをＩ／Ｏバス５０２とアダプタ５３０との間のインターフェース上に含ませることによって、エンドツーエンドでデータ完全性が保護され、アダプタは、アダプタ上にＴＣＰ／ＩＰチェックサムをオフロードさせるのに十分なほど堅牢に作られ、チェックサムが常に良好なデータに基づいて計算されることを保証する。
【００３３】
図６は、本発明の好ましい実施形態による、データ処理システムの入力／出力バスからネットワークに転送されるデータの完全性を保護する方法を示すフローチャートである。この方法は、全体が参照番号６００で示され、データ処理システムのメモリからイーサネットＩ／ＯアダプタにＩ／Ｏバスを横断するデータ・パケットについてのＣＲＣ値を検査するステップで始まる（ステップ６０２）。次に、Ｉ／Ｏバス／アダプタ間のインターフェースにおいて、データ・パケットについてのＣＲＣ値を生成する（ステップ６０４）。次いで、アダプタ・ネットワーク間のインターフェースを横切ってネットワークに送信される直前に、ＣＲＣ値を再び検査する（ステップ６０６）。
【００３４】
図７は、本発明の好ましい実施形態による、ネットワークからデータ処理システムの入力／出力バスに転送されるデータの完全性を保護する方法を示すフローチャートである。この方法は、全体が参照番号７００で示され、ネットワークからの、ネットワーク／アダプタ間のインターフェースを横断するデータ・パケットについてのＣＲＣ値を検査するステップで始まる（ステップ７０２）。次に、アダプタのＤＭＡエンジンがデータ・パケットをデータ処理システムのメモリに送信するときに、アダプタとＩ／Ｏバスとの間のインターフェースにおいてＣＲＣ値を再び検査する（ステップ７０４）。ステップ７０４において再び検査した後、アダプタとＩ／Ｏバスとの間のインターフェースにおいてＣＲＣ値を生成する（ステップ７０６）。
【００３５】
このように、本発明は、データ処理システムの入力／出力バスと外部ネットワークとの間で転送されるデータの完全性を保護する方法、システム、及びプログラムを提供するものである。入力／出力バスとネットワークとの間で転送されるデータの完全性を保護する方法は、入力／出力バスからネットワークに転送されるデータについて、入力／出力バスとアダプタとの間のインターフェースにおいて巡回冗長検査（ＣＲＣ）値を生成するステップと、ネットワークから入力／出力バスに転送されるデータについて、入力／出力バスとアダプタとの間のインターフェースにおいてＣＲＣ値を検査するステップとを含む。入力／出力バスとアダプタとの間のインターフェース上にＣＲＣ生成装置及びＣＲＣ値チェッカを付加することにより、入力／出力バスとネットワークとの間で転送されるデータについて、エンドツーエンドでデータ完全性が保護される。
【００３６】
本発明は、十分に機能するデータ処理システムとの関連において説明されてきたが、当業者であれば、本発明のプロセスは、コンピュータ可読媒体の命令の形態、及び様々な形態で配布することができること、及び本発明は、この配布を行うために実際に用いられている特定形式の信号伝達媒体に係りなく、等しく適用可能であることを理解するであろう。コンピュータ可読媒体の例には、フロッピーディスク、ハードディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭのような書き込み可能型媒体、例えば無線周波数及び光波伝送といった伝送形態を用いるデジタル及びアナログ通信リンク、有線又は無線通信リンクのような伝送型媒体がある。コンピュータ可読媒体は、特定のデータ処理システムにおける実際の使用のためにデコードされるコード化フォーマットの形態をとることができる。
【００３７】
本発明の説明は、図示及び説明のために与えられるものであって、網羅的なものとして、又は本発明を開示された形態に限定するものとして意図されたものではない。多くの修正及び変形が当業者には明らかとなるであろう。実施形態は、本発明の原理、実用的用途を最も良く解説し、かつ当業者以外の人が本発明の種々の修正を有する種々の実施形態を、考えられる特定の用途に適するものとして理解できるように、選択され、説明されるものである。
【図面の簡単な説明】
【００３８】
【図１】本発明を実装することができるデータ処理システムのネットワークの絵画表示である。
【図２】本発明の好ましい実施形態による、サーバとして実装できるデータ処理システムのブロック図である。
【図３】本発明の好ましい実施形態による、クライアントとして実装できるデータ処理システムのブロック図である。
【図４】本発明の説明を助けるために当該分野において周知のＰＣＩ−Ｅｘｐｒｅｓｓバス・アーキテクチャを有するデータ処理システムに組み込まれたイーサネット・アダプタ・システムを概略的に示すブロック図である。
【図５】本発明の好ましい実施形態による、ＰＣＩ−Ｅｘｐｒｅｓｓバス・アーキテクチャを有するデータ処理システムに組み込まれたイーサネット・アダプタ・システムを概略的に示すブロック図である。
【図６】本発明の好ましい実施形態による、データ処理システムの入力／出力バスから外部ネットワークに転送されたデータの完全性を保護する方法を示すフローチャートである。
【図７】本発明の好ましい実施形態による、外部ネットワークからデータ処理システムの入力／出力バスに転送されるデータの完全性を保護する方法を示すフローチャートである。
【符号の説明】
【００３９】
１００、２００、３００：データ処理システム
１０２、４０６、５０６：ネットワーク
２１２、４０２、５０２：Ｉ／Ｏバス
３０４、３２４、４０４、５０４：メモリ
４００、５００：アダプタ・システム
４１２、４２２、５０８、５２２、５４２：ＣＲＣチェッカ
４２０、４２８、５２８、５４０：ＣＲＣ生成装置
４３０、５３０：アダプタ
【図１】
2006134306.tif 000003
【図２】
2006134306.tif 000004
【図３】
2006134306.tif 000005
【図４】
2006134306.tif 000006
【図５】
2006134306.tif 000007
【図６】
2006134306.tif 000008
【図７】
2006134306.tif 000009