(57)【特許請求の範囲】
【請求項１】
第１および第２の入力と、第１の合計出力と、生成した第１の繰上りビットを第１の繰上り入力にフィードバックするように結合された第１の繰上り出力とを有する第１の加算器であって、前記第１の入力が第１の入力データを受け取るように結合され、前記第１の合計出力が前記第２の入力に第１の部分合計データをフィードバックするように結合された第１の加算器と、
第３および第４の入力と、第２の合計出力と、生成した第２の繰上りビットを第２の繰上り入力にフィードバックするように結合された第２の繰上り出力とを有する第２の加算器であって、前記第２の合計出力が前記第３の入力に第２の部分合計データをフィードバックするように結合され、前記第４の入力が第２の入力データと、前記第１の合計出力からの前記第１の部分合計データと、前記第１の繰上り出力からの生成した前記第１の繰上りビットとを選択的に受け取るように前記第１の加算器に結合された第２の加算器と
を有するチェックサム生成器。
【請求項２】
前記第１の部分合計データを一時的に格納するために前記第１の合計出力から前記第２の加算器入力に結合された第１のレジスタと、前記第２の部分合計データを一時的に格納するために前記第２の合計出力から前記第３の加算器入力に結合された第２のレジスタとを含む請求項１に記載のチェックサム生成器。
【請求項３】
前記第４の加算器入力に結合された出力を有し、前記第１の合計出力と、前記第１の繰上り出力と、前記第２の入力データを受け取るためのデータ・ソースとに結合された入力を有する多重化回路を含む請求項２に記載のチェックサム生成器。
【請求項４】
第１および第２のＮビット・データ入力上に提供されたデータからＮビットのチェックサムを生成するためのチェックサム生成器において、２つのＮビット・オペランドを合計するための第１の加算器であって、第１の加算器の出力が第１の加算器の第１の入力にＮビット合計結果をフィードバックするように結合され、第１の加算器の繰上り出力が第１の加算器の繰上り入力に繰上りビットをフィードバックするように結合され、第１の加算器の第２の入力が前記第１のＮビット・データ入力からデータを受け取るように結合されている第１の加算器と、
２つのＮビット・オペランドを合計するための第２の加算器であって、第２の加算器の出力が第２の加算器の第１の入力にＮビット合計結果をフィードバックするように結合され、第２の加算器の繰上り出力が第２の加算器の繰上り入力に繰上りビットをフィードバックするように結合され、第２の加算器の第２の入力が前記第２のＮビット・データ入力からデータを受け取るように結合されている第２の加算器とを含み、
第２の加算器の出力と第２の加算器の繰上り出力が、第１の加算器の第２の入力への前記第１のＮビット・データ入力と多重化されることを特徴とするチェックサム生成器。
【請求項５】
前記第１の加算器の前記出力と前記第１の加算器の前記第１の入力とに結合された第１の結果レジスタと、前記第２の加算器の前記出力と前記第２の加算器の前記第１の入力とに結合された第２の結果レジスタとを含むことを特徴とする、請求項４に記載のチェックサム生成器。
【請求項６】
データ値のストリームからチェックサムを生成するためのチェックサム生成器において、
第１および第２の加算器入力と、第１の合計出力と、第１の繰上り出力と、第１の繰上り入力とを有する第１の２進加算器であって、前記第１の繰上り出力が前記第１の繰上り入力に結合されている第１の２進加算器と、
第３および第４の加算器入力と、第２の合計出力と、第２の繰上り出力と、第２の繰上り入力とを有する第２の２進加算器であって、前記第２の繰上り出力が前記第２の繰上り入力に結合されている第２の２進加算器と、
前記第１の合計出力と前記第１の加算器入力に結合された第１のレジスタと、前記第２の合計出力と前記第３の加算器入力に結合された第２のレジスタと、前記第２の加算器入力に結合された出力を有し、第１のデータ入力を受け取るように結合された入力と前記第２のレジスタおよび前記第２の繰上り出力に結合された入力とを有する多重化回路とを含み、
前記第４の加算器入力が第２のデータ入力を受け取るように結合されていることを特徴とするチェックサム生成器。
【請求項７】
前記第１のレジスタに結合された出力と、前記第１の合計出力に結合された第１の入力と、前記第１のレジスタを初期設定するために初期設定データを受け取るように結合された少なくとも１つの第２の入力とを有する初期設定多重化回路をさらに含むことを特徴とする請求項６に記載のチェックサム生成器。
【請求項８】
１対の第１および第２のデータ・ストリームからチェックサムを生成するための方法において、
一連の合計サイクルで第１のおよび第２のデータ・ストリームを同時に合計するステップであって、第１および第２の繰上り出力値を有する第１および第２の合計を生成するために、それぞれの合計サイクルで、繰上り入力値として前の合計サイクルからの繰上り出力値を使用するステップと、
第３の繰上り出力値を有する第３の合計を生成するために、前記第１および第２の合計を前記第１の繰上り出力値と加算するステップと、
第４の繰上り出力値を有する第４の合計を生成するために、前記第２および第３の繰上り出力値を前記第３の合計に加算するステップと、
第１および第２のデータ・ストリームに含まれるデータ用のチェックサムを生成するために、前記第４の繰上り出力値を前記第４の合計に加算するステップとを含むことを特徴とする方法。
【請求項９】
前記第１および第２のデータ・ストリームのうちの少なくとも一方を初期部分合計と合計するステップを含むことを特徴とする、請求項８に記載の方法。
【請求項１０】
非同期転送モード（ＡＴＭ）通信ネットワークによる通信のためにホスト・コンピュータを結合するためのデータ伝送インタフェースにおいて、
前記ホスト・コンピュータから１パケット分のデータを取り出すように結合されたロード・エンジンと、
前記データ・パケットをセルにセグメント化し、データのセルを前記ＡＴＭネットワークに渡すためのセグメント化エンジンと、
前記ロード・エンジンから前記データ・パケットを取り出すように結合され、前記セグメント化エンジンにより前記ＡＴＭネットワークに渡すべき前記データパケットからチェックサム値を生成するためのチェックサム生成器であって、前記チェックサム生成器が、
第１および第２の加算器入力と、第１の合計出力と、第１の加算器の繰上り入力に生成した第１の繰上りビットをフィードバックするように結合された第１の繰上り出力とを有する第１の加算器であって、前記第１の加算器入力が前記ロード・エンジンから第１の入力データを受け取るように結合され、前記第１の合計出力が前記第２の加算器入力に第１の部分合計データをフィードバックするように結合された第１の加算器と、
第３および第４の加算器入力と、第２の合計出力と、第２の加算器の繰上り入力に生成した第２の繰上りビットをフィードバックするように結合された第２の繰上り出力とを有する第２の加算器であって、前記第２の合計出力が前記第３の加算器入力に第２の部分合計データをフィードバックするように結合され、前記第４の加算器入力が前記ロード・エンジンからの第２の入力データと、前記第１の合計出力からの前記第１の部分合計データと、前記第１の繰上り出力からの生成した前記第１の繰上りビットとを選択的に受け取るように前記第１の加算器に結合された第２の加算器とを含むチェックサム生成器とを含むことを特徴とする、データ伝送インタフェース。
【請求項１１】
前記データ・パケットをバッファするために前記ロード・エンジンと前記セグメント化エンジンに結合された送信バッファ・メモリを含み、前記送信バッファ・メモリも、前記バッファ・メモリにバッファしたデータ・パケットのヘッダ部分に前記チェックサム値を挿入するために前記第２の合計出力から前記チェックサム値を受け取るように結合されていることを特徴とする、請求項１０に記載のデータ伝送インタフェース。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル・データ・パケット用のチェックサムを決定するための回路および方法に関する。本発明の回路および方法は、伝送制御プロトコル（ＴＣＰ）下でディジタル・データ・パケット用のチェックサムを決定する際に具体的に応用することができる。
【０００２】
【従来の技術】
ディジタル通信では、「パケット」と呼ばれるデータ記号または信号のストリームに入れてデータを送ることが多い。受信したデータの検証を可能にするため、パケットは、伝送されたデータから得られるコードを含む場合がある。このようなタイプのコードの１つはチェックサムであり、これは伝送制御プロトコル（ＴＣＰ）パケットで使用される。チェックサムは、パケットの伝送が行われる前に、パケットで伝送すべきデータから計算され、ソース表示や宛先表示などの他の情報とともにパケットのヘッダに追加される。宛先側でパケットを受信すると、パケット・ヘッダからチェックサムが取り出され、受信したパケット・データから新しいチェックサムが計算される。次に、受信したチェックサムと新たに計算したチェックサムが比較され、矛盾があれば、受信したパケットが伝送されたときのパケットと正確に一致していないことを示す。
【０００３】
伝送すべきパケット用にチェックサムを生成することができる方法の１つは、データ・パケットが発生するホスト・プロセッサを使用し、通信インタフェースにデータを渡して伝送するためにチェックサムを計算することである。この場合、チェックサムは、汎用プロセッサを制御するためのソフトウェア・アルゴリズムを使用して生成される。このシステムではチェックサムの用意を実現するために追加のハードウェアを一切必要とせず、ホスト・プロセッサから出る前にデータ・パケットをアセンブルすることができるが、チェックサムを生成することはホスト・プロセッサにとって不要な負担になる可能性があり、ホストの処理資源の最適割振りにはならない。
【０００４】
データ・パケット用のチェックサム値を決定できるのは、パケットで伝送すべきすべてのデータがアセンブルされたときだけなので、チェックサムの生成は、ホスト・プロセッサを通信ネットワークに結合する通信インタフェース内で実行することができる。ソフトウェア制御下の多目的処理回路であれば、この目的に使用できるはずである。しかし、一般に、単一集積回路上にできるだけ多くの通信インタフェース機能を設けることが望ましく、その場合、必要なシリコン領域の点では専用チェックサム生成回路の方が効率がよい可能性がある。また、通信インタフェースでチェックサムを決定する場合、「大急ぎで（短時間で）」パケット用のチェックサムを生成することが必要であり、これも高速かつ小型の専用合計回路を推奨する理由である。
【０００５】
１６ビットのＴＣＰチェックサムを計算するためには、ＴＣＰパケット・データの１６ビットの１の補数の合計を求めることが必要である。基本的にこれには、１６ビットのデータをすべて合計する必要があり、１６ビットの結果からの繰上り出力が合計に加算される。このような合計を達成可能な方法の１つは、１６ビットより大きい結果を生成する加算器を使用してすべての１６ビット・データを順次合計し、所望の１６ビット合計を超える最上位ビット（すなわち、１６ビット加算用の集合繰上り）を２つの加算サイクル中に１６ビット・チェックサムに加算することである。しかし、このようにチェックサムを生成するのに必要な加算回路は、特に比較的大きいパケットを処理する予定の場合には、極端なほど複雑になる可能性がある。
【０００６】
チェックサムを短時間で生成する場合には、パケット入力データ経路が３２ビット幅のときに、１６ビットのＴＣＰチェックサムの生成の複雑さがさらに増大する。この場合、チェックサム生成器が着信データの２倍の速度で動作可能でなければ、処理サイクル当たり３２ビットのデータ入力能力が必要である。したがって、上記のチェックサム生成方式によれば、１６ビットのチェックサム合計を生成するには、３２ビットの入力経路と３２ビットを超える出力とを備えた非常に複雑な単一加算回路が必要になるか、または集合繰上り出力（すなわち、１６ビットを超える合計出力）を備えた１対の１６ビット入力加算器ならびに追加の回路と合計サイクルが必要になるはずである。
【０００７】
【発明が解決しようとする課題】
したがって、本発明の一目的は、最小数かつ最小限の複雑さの回路要素と最小の処理サイクルにより、回路内でＴＣＰチェックサムを生成できるようにすることにある。
【０００８】
本発明の他の目的は、データ・パケット用のチェックサム値を短時間で生成するために、通信インタフェース集積回路内で実現可能なチェックサム生成回路を提供することにある。
【０００９】
本発明の他の目的は、最小数の処理サイクルでチェックサムを生成するようにデータ・ストリームを順次処理する方法を提供することにある。
【００１０】
【課題を解決するための手段】
本発明によれば、第１および第２のＮビット・データ入力に与えられたデータからＮビット・チェックサムを生成するチェックサム生成器が提供される。このチェックサム生成器は、それぞれがＮビット・オペランドを２つずつ合計するための第１および第２の加算器を備えている。第１の加算器の出力は、第１の加算器の第１の入力にＮビットの合計結果をフィードバックするように結合され、第１の加算器の繰上り出力は、第１の加算器の繰上り入力に繰上りビットをフィードバックするように結合されている。第１の加算器の第２の入力は、第１のＮビット・データ入力からデータを受け取るように結合されている。第２の加算器の出力は、第２の加算器の第１の入力にＮビットの合計結果をフィードバックするように結合され、第２の加算器の繰上り出力は、第２の加算器の繰上り入力に繰上りビットをフィードバックするように結合されている。第２の加算器の第２の入力は、前記第２のＮビット・データ入力からデータを受け取るように結合されている。第１の加算器の出力ならびに第１の加算器の繰上り出力とともに多重化される。
【００１１】
それぞれの加算器の入力に加算器の出力および繰上り出力のフィードバックを戻すことにより、加算器は、着信Ｎビット・データを合計すると同時に、生成された繰上りビットを累算合計に組み入れることができる。その後、着信データがすべて合計されると、第２の加算器の入力が入力データ、もう一方の加算器の合計出力、もう一方の加算器の繰上り出力から多重化されることにより、最終チェックサムを作成するために、２つの加算器の出力を残りの繰上りビットとともにまとめて加算することができる。２つの加算器からの部分合計と繰上りを結合する際に生成される繰上りビットは、繰上り出力フィードバック接続によって最終チェックサムに組み入れられる。
【００１２】
本発明の一形態では、合計出力を一時的に格納するために、加算器の合計出力からのフィードバック接続部にレジスタが設けられている。このレジスタに多重化した入力を与え、チェックサムの生成を開始するためにレジスタをゼロに初期設定できるようにするか、または１パケット分のデータの途中などでチェックサム生成が中断された場合に事前に格納されていた部分チェックサム値をレジスタにロードすることもできる。
【００１３】
また、本発明は、１対の第１および第２のデータ・ストリームからチェックサムを生成するための方法も提供する。この方法は、一連の合計サイクルで第１および第２のデータ・ストリームを同時に合計することを含み、それぞれの合計サイクルで前の合計サイクルからの繰上り出力値を繰上り入力として使用する。この結果、第１および第２の合計が第１および第２の繰上り値を有することになる。第３の繰上り値を有する第３の合計を生成するために、第１および第２の合計が第１の繰上り値とともに加算される。第２および第３の繰上り値は第３の合計に加算され、第４の合計と第４の繰上り値を作成する。最後に、第１および第２のデータ・ストリームに含まれるデータ用のチェックサムを生成するために、第４の繰上り値が第４の合計に加算される。
【００１４】
本発明の好ましい実施態様では、生成されるチェックサムは、ＴＣＰパケットで伝送すべきデータの１６ビットの１の補数の合計になる。パケット・データは３２ビット・データ経路上で受信され、これは第１および第２のデータ・ストリーム用の最下位１６ビットのデータと最上位１６ビットのデータにそれぞれ分割される。入力パケット・データの各合計サイクルの間、繰上り出力ビット信号が次のサイクル用の繰上り入力にフィードバックされる。次に、すべての入力データの加算後、２つの１６ビット合計を加算し、すべての繰上りビットを取り入れて最終１６ビット・チェックサムを形成するためには、さらに３つの処理サイクルだけが必要である。
【００１５】
本発明のチェックサム生成器内に設けられた加算器の合計結果および繰上り出力フィードバック構造と相互接続により、ＴＣＰチェックサム回路を最小限の複雑さの回路で実現することができ、チェックサム回路が集積回路の一部として含まれる場合にはこれが特に有利になる。また、上記の概要から、本発明のチェックサム生成器と方法により、すべてのパケット・データを入力するのに必要なサイクルの数より３つのサイクルを追加するだけでＴＣＰチェックサムを生成できることは明らかである。通信インタフェース回路内に設けられたチェックサム生成器に要求されるように、短時間でチェックサムを生成する場合には最小限の処理時間が特に有用である。
【００１６】
例証としてのみ、本発明の好ましい実施形態を示す添付図面を参照し、本発明について以下に詳しく説明する。
【００１７】
【発明の実施の形態】
本発明は、データ・パケット用のチェックサムを生成するための方法および回路に関する。以下の記述の一部は、コンピュータから発生したデータ・ビットに対する操作の記号表現によって提示されている。このような記述および表現は、その機能の本質を最も効果的に他の当業者に伝達するためにデータ処理分野の当業者が使用する手段である。その操作は、物理量の物理的操作を必要とするものである。必ずではないが、通常、このような量は、格納、転送、結合、比較、その他の操作が可能な電気信号または磁気信号の形態を取る。これらの信号をビット、値、項、データなどと呼ぶことは、主に一般的な使用法の理由から、時には便利であることが分かっている。しかし、このような用語および同様の用語は、すべて適切な物理量に関連付けられるが、その量にとって便利なラベルにすぎないことに留意されたい。
【００１８】
さらに、実行される作業は、加算など、一般に人間のオペレータが実行する知的作業に関連付けられた用語で呼ばれることが多い。本明細書に記載する本発明の一部を形成する操作では、多くの場合、人間のオペレータのこのような能力は不要であるかまたは望ましくない。操作はマシンの操作である。いずれの場合も、計算装置を操作する際の操作方法と計算方法そのものとの区別を銘記する必要がある。
【００１９】
図１には、ネットワーク・インタフェース回路２０により通信ネットワークの非同期転送モード（ＡＴＭ）ノード６０に結合されたホスト・コンピュータ１０の簡易機能ブロック図が示されている。インタフェース回路２０は、ＡＴＭネットワーク・ノード６０に送信するためにホスト・コンピュータ１０からデータを受信する送信部３０と、ＡＴＭノード６０からデータを受信し、受信したデータをホスト・コンピュータ１０に渡す受信部４０とを含む。ホスト・コンピュータ１０との間でやりとりされるデータは、通常、数キロバイトの伝送制御プロトコル（ＴＣＰ）パケットの形式になっている可能性があり、ＡＴＭノード６０を通過するデータは５３バイトのＡＴＭセルの形式になっている。したがって、インタフェース２０の機能の１つは、ホスト・コンピュータ１０からのＴＣＰパケットをＡＴＭノード６０に渡すべきセルにセグメント化し、ＡＴＭノード６０から受信したセルをホスト・コンピュータ１０用のＴＣＰパケットにアセンブルし直すことである。それぞれのＴＣＰパケットにはヘッダ部が設けられ、このヘッダ部は、それが含まれているパケットのヘッダおよびテキスト内のすべての１６ビット・ワードの１の補数の合計の１の補数である１６ビットのチェックサムを含む。本発明の好ましい実施形態は、パケット・データ（ヘッダ情報を含む）からのチェックサムの生成に関する。
【００２０】
図１に示すインタフェース２０の送信部３０は、ホスト・コンピュータ１０から渡されたＴＣＰパケット全体を格納できるサイズの送信バッファ３２を含む。送信ロード・エンジン３４は、ホスト・コンピュータ１０からの１パケット分のデータを送信バッファ３２にロードするために設けられ、送信アンロード・エンジン３８は、送信バッファ３２からパケット・データを取り出し、そのパケット・データをＡＴＭノード６０に渡すことができるＡＴＭセルにセグメント化するために設けられている。また、チェックサム生成器３６は、送信ロード・エンジン３４からパケット・データを受信し、それが送信バッファ３２にロードする間にパケット・データ用のチェックサム値を生成する。次に生成されたチェックサム値は、そこに格納されたパケットのヘッダに入れて、送信バッファ３２内の適当な位置に格納される。
【００２１】
チェックサムの目的は、エラーが発生せずに１パケット分のデータの送信が達成されたかどうかを受信側で判定できるようにすることである。したがって、インタフェース２０の受信部４０もチェックサム生成器４８を含む。受信部４０では、受信ロード・エンジン４４がＡＴＭノード６０からのセル・データを受信し、受信バッファ４２内のＴＣＰパケットをアセンブルし直す。また、受信ロード・エンジン４４からのパケット・データもチェックサム生成器４８に渡され、この生成器はデータがバッファ４２に格納される間に受信したデータ用のチェックサム値を生成する。パケット・データのすべてが受信されると、受信アンロード・エンジン５４がチェックサム生成器４８からの生成済みチェックサム値とともにそのパケットをホスト・コンピュータ１０に渡す。ホスト・コンピュータは、送信のためにパケットに含まれるパッキング・データを生成されたチェックサムから減算しなければならない場合もある。その場合、ホスト・コンピュータは、受信したパケットのヘッダに含まれるチェックサム値を抽出し、それを生成されたチェックサムと比較する。受信したチェックサム値が受信したデータから生成したチェックサム値と一致しない場合、これは、受信したパケット・データが送信されたときのパケット・データと一致せず、送信中にエラーが発生したことを示している。その場合、間違って受信したパケットを再送信するために、ホスト・コンピュータからパケットのソースにメッセージが戻される可能性がある。
【００２２】
図２は、本発明の好ましい実施形態によるチェックサム生成器の基本回路構造を示している。チェックサム生成器１００は、データ入力で３２ビット・ワードのデータを受け取り、チェックサム出力１４４で１６ビット・チェックサム値を生成する。３２ビットの入力データは２つの１６ビット・ハーフ・ワードに分割され、このハーフ・ワードが入力線１０２、１０４上で搬送される。チェックサム生成器１００の基本構造は、入力線１０２、１０４からの１６ビット・データ・ハーフ・ワードをそれぞれ合計する１対の１６ビット加算回路１１０、１２０を含む。加算器１１０は、１６ビット入力１１２および１１４と、１６ビット出力１１６と、単一ビット繰上り出力とを有する。入力１１４は、多重化回路１４０により入力線１０２から上位のハーフ・ワードを受け取るように結合されている。加算器１１０の出力１１６はレジスタ１１８に結合され、このレジスタは加算器１１０の入力１１２にも結合されている。また、加算器１１０の繰上り出力は、繰上り入力にフィードバックするように結合されている。したがって、加算器回路１１０の各サイクルごとに、加算器入力１１４へのデータ入力は、加算器の繰上り入力に渡される前のサイクルからの繰上りとともに、レジスタ１１８により入力１１２に渡される加算器１１０の前のサイクルの出力と合計される。
【００２３】
加算回路１２０は加算器１１０と同様の構造になっており、入力１２４が入力線１０４から下位のハーフ・ワードを受け取るように結合されている。加算器１２０の出力１２６はレジスタ１２８に結合され、これが１６ビット入力１２２にフィードバックする。同様に、加算器１２０の繰上り出力は、その繰上り入力にフィードバックするように結合されている。また、レジスタ１３０も加算器１２０からの繰上り出力を一時的に格納するために設けられ、レジスタ１３０は多重化回路１４０への入力として結合されている。最後に、レジスタ１２８は多重化回路１４０へのもう１つの入力とされている。また、多重化回路１４０には、多重化回路１４０が、上位ハーフ・ワード入力１０２、レジスタ１２８、またはレジスタ１３０からの信号のいずれかを渡すように制御する制御入力１４２も設けられている。
【００２４】
チェックサム生成器１００の動作は次の通りである。パケット・データは、一連の３２ビット・データ・ワードとして生成器１００によって受け取られ、そのデータ・ワードが１６ビット・ハーフ・ワードに分割され、加算器１１０、１２０に渡される。パケット・データの各ワードごとに、それぞれのデータ・ハーフ・ワードを合計するように加算器１１０および１２０が循環される。これは、加算器出力１１６、１２６および繰上り出力のフィードバック構成によって可能になっている。パケット・データのすべてが合計された場合、最終チェックサムを生成するために、各加算器からの最後の剰余繰上りビットと、２つの１６ビット合計を加算したときに生成される可能性のある繰上りビットとともに、加算器１１０、１２０によって生成された２つの１６ビット合計を加算しなければならない。チェックサム生成器１００は、次のように、追加の３サイクルでこれを実行する。
【００２５】
第１のサイクルでは、レジスタ１２８に格納された下位ハーフ・ワード合計を多重化回路１４０を介して加算器１１０の入力１１４に渡すように、多重化回路１４０の制御入力１４２が制御される。したがって、第１のサイクルでは、レジスタ１２８からの下位ハーフ・ワードの合計がレジスタ１１８からの上位ハーフ・ワードの合計に加算される。このサイクル中に加算器１１０からの最後の剰余繰上りビットも取り入れられる。加算器１２０からの最後の剰余繰上りビットは、第１の追加サイクル中にレジスタ１３０に一時的に格納される。
【００２６】
第２のサイクルでは、レジスタ１３０の内容を加算器１１０の入力１１４に渡すように多重化回路１４０が制御され、加算器１２０からの最後の剰余繰上りビットを合計に加算するように加算器１１０が循環される。
【００２７】
最後に、第３の追加サイクルでは、第２の追加サイクル中に生成されたすべての繰上りビットを加算するように、入力１１４のゼロ入力によって加算器１１０が循環される。その後、出力線１４４用として、完成したＴＣＰチェックサムがレジスタ１１８内に得られる。
【００２８】
図３に示すチェックサム生成器１００は、いくつかの追加構成要素を含んでいる。チェックサム生成器１００への入力信号と出力信号は、入力線１０２、１０４および出力線１４４上にそれぞれ設けられたインバータ１０６、１０８、１４６を使用して補数が取られる。多重化回路１４０にはゼロ入力が提供され、それが前述のように加算器１００の第３の追加サイクル中に制御信号１４２の制御下で加算器入力１１４に渡される。多重化回路１１７は、加算器１１０からの出力１１６と結果レジスタ１１８との間に挿入されている。加算器１１０からの出力１１６と同様、多重化回路１１７には初期設定入力１５０、１５１、１５２が設けられ、多重化回路１１７の出力の選択は制御線１５８から制御される。初期設定入力１５０は、多重化回路１１７にゼロ入力を与え、新しい１パケット分のデータの処理を開始するためにレジスタ１１８をゼロに初期設定できるようにする。結果レジスタ１２８を初期設定するために、ゼロ初期設定入力１６２を有し、加算器１２０の出力線１２６から入力を受け取る多重化回路１６０も設けられ、制御線１５８から制御されている。
【００２９】
もう一度図１を参照すると、場合によってはチェックサム生成器に入力データを提供する送信ロード・エンジン３４がホスト・コンピュータ１０からの１パケット分のデータを分割してロードすることになる。たとえば、送信バッファ３２は、複数パケット分のデータを格納できるようになっている可能性があり、そのパケット・データが時間多重化方式で送信ロード・エンジン３４によってロードされる。インタフェース２０の受信部にも同じことが当てはまる。というのは、ＡＴＭノード６０から到着する連続セルが必ずしも同じＴＣＰパケットにレートしないからである。したがって、チェックサム生成器１００には、ＴＣＰパケットの一部から生成された部分チェックサム値を出力し、そのＴＣＰパケットの次の部分が入力として到着したときにその部分チェックサム値をチェックサム生成器にロードして戻すための手段が設けられている。このため、初期設定入力１５１、１５２が多重化回路１１７に提供され、そこから制御線１５８の制御下で部分チェックサム値をレジスタ１１８にロードすることができる。
【００３０】
図１に示すインタフェース２０が実行する機能の大部分は、ホスト・コンピュータ１０に結合するネットワーク・インタフェース・カード（ＮＩＣ）上の単一の特定用途向け集積回路（ＡＳＩＣ）によって構成することができる。したがって、好ましい実施形態のチェックサム生成器１００はそのＡＳＩＣの一部として設けられ、それはＣＭＯＳ技術などで製作可能である。この場合、ＡＳＩＣには制御回路も含まれ、入力（線１０４、１０２、および１５１、１５２）としてパケット・データと部分チェックサム値をチェックサム生成器に渡し、チェックサム生成器回路の動作を前述のように制御するために制御線１４２および１５８上などに制御信号を与える。加算器１１０、１２０、レジスタ１１８、１２８、多重化回路１１７、１４０、１６０など、チェックサム生成器の構成要素の実際の構造は当業者には周知のものなので、これらの構造についての説明はここには示さない。
【００３１】
これまで本明細書ではＡＴＭネットワーク・インタフェース回路に関連して本発明の好ましい実施形態について説明してきたが、ここで開示するチェックサム生成器および方法はより広範囲の応用が可能であると考えられる。したがって、上記の実施形態に関して本発明を説明したが、上記の説明を考慮すると当業者には数多くの代替態様、描写、変形態様、用途が明らかであることは明白である。したがって、上記の本発明の詳細な説明は例示としてのみ示したものであり、本発明の範囲およびその重要な特徴は特許請求の範囲に定義され、特許請求の範囲は好ましい実施形態に関する上記の説明を参照しても必ずしも制限されないものであることに留意されたい。
【図面の簡単な説明】
【図１】  本発明の好ましい実施形態によるチェックサム生成器の応用例を示す、通信ネットワークへのコンピュータ・インタフェースの簡易ブロック図である。
【図２】  好ましい実施形態のチェックサム生成器回路の基本構造を示す簡易回路ブロック図である。
【図３】  好ましい実施形態のチェックサム生成器回路の回路ブロック図である。
【符号の説明】
１００  チェックサム生成器
１０２  入力線
１０４  入力線
１１０  加算回路
１１２  １６ビット入力
１１４  １６ビット入力
１１６  １６ビット出力
１１８  レジスタ
１２０  加算回路
１２２  １６ビット入力
１２４  入力
１２６  出力
１２８  レジスタ
１３０  レジスタ
１４０  多重化回路
１４２  制御入力
１４４  チェックサム出力
【図１】
0003751689.tif 000002
【図２】
0003751689.tif 000003
【図３】
0003751689.tif 000004