(57)【特許請求の範囲】
【請求項１】
（ａ）それぞれのパケットがパケット・ヘッダおよびパケット・データを有する複数のチャネルの複数のパケットの複数の非同期転送モード（ＡＴＭ）セルを保存する複数のリンクされた記憶バケットのための複数の制御データを保存するメモリ・ユニットと、
（ｂ）リンクされた記憶バケットへのＡＴＭセルの受信を管理し、リンクされた記憶バケットからパケット・ヘッダおよびパケット・データを、パケット・ヘッダおよびデータが共にヘッダ・バッファにバースト転送される複数の所定の例外を除き、インタフェース・バスを介して装置に接続されたホスト・コンピュータ・システム上の様々なチャネルの別個のヘッダ・バッファおよびデータ・バッファにバースト転送するためのメモリ・ユニットに接続され、パケット・ヘッダおよびデータが固定サイズ・ブロックでバースト転送され、各ブロックがインタフェース・バスと相補的であるが必ずしもセル境界とそろう必要はないブロック・サイズを有する受信ブロックであって、各バースト転送がヘッダ・バースト転送であるかまたはデータ・バースト転送であるか、バースト転送がヘッダ・バースト転送である場合は、全パケット・ヘッダが特定のバースト転送の終わりに完全に転送されているか、そしてさらにパケットが例外的に処理されるべきかどうかを考慮して、制御データを維持するための論理を含む受信ブロックとを備える装置。
【請求項２】
コンピュータ・システムにおいて、システムのネットワーク・インタフェース回路からパケットのヘッダおよびデータをシステムのバッファにバースト転送する方法において、
（ａ）  メモリ・ユニット内にチャネル・ベースでパケットの複数の非同期転送モード（ＡＴＭ）セルを保存するための複数のリンクされた記憶バケットのための複数の制御データを保存するステップと、
（ｂ）  リンクされた記憶バケットへのＡＴＭセルの受信を管理し、リンクされた記憶バケットからパケット・ヘッダおよびパケット・データを、パケット・ヘッダおよびデータが共にヘッダ・バッファにバースト転送される複数の所定の例外を除き、インタフェース・バスを介して様々なチャネルの別個のヘッダ・バッファおよびデータ・バッファにバースト転送するステップであって、パケット・ヘッダおよびデータが固定サイズ・ブロックでバースト転送され、各ブロックがインタフェース・バスと相補的であるが必ずしもセル境界とそろう必要はないブロック・サイズを有するステップと、
（ｃ）  各バースト転送がヘッダ・バースト転送であるかまたはデータ・バースト転送であるか、バースト転送がヘッダ・バースト転送である場合は、全パケット・ヘッダが特定のバースト転送の終わりに完全に転送されているか、そしてさらにパケットが例外的に処理されるべきかどうかを考慮して、制御データを維持するステップとを含む方法。
【請求項３】
（ａ）  複数のチャネルの複数のパケットの複数のヘッダおよびデータを保存する第１のメモリ・ユニットと、
（ｂ）  パケットの複数の非同期転送モード（ＡＴＭ）セルを保存する複数のリンクされた記憶バケットを保存する第２のメモリ・ユニットと、
（ｃ）  リンクされた記憶バケットのための複数の制御データを保存する第３のメモリ・ユニットと、
（ｄ）  リンクされた記憶バケットへのＡＴＭセルの受信を管理し、リンクされた記憶バケットからパケット・ヘッダおよびパケット・データを、パケット・ヘッダおよびデータが共にヘッダ・バッファにバースト転送される複数の所定の例外を除き、第１および第２のメモリ・ユニットに接続されたインタフェース・バスを介してヘッダ・バッファおよびデータ・バッファにバースト転送するためのメモリ・ユニットに接続され、パケット・ヘッダおよびデータが固定サイズ・ブロックでバースト転送され、各ブロックがインタフェース・バスと相補的であるが必ずしもセル境界とそろう必要はないブロック・サイズを有する受信ブロックであって、各バースト転送がヘッダ・バースト転送であるかまたはデータ・バースト転送であるか、バースト転送がヘッダ・バースト転送である場合は、全パケット・ヘッダが特定のバースト転送の終わりに完全に転送されているか、そしてさらにパケットが例外的に処理されるべきかどうかを考慮して、制御データを維持するための論理を含む受信ブロックとを備えるコンピュータ・システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ・ネットワーキングの分野に関する。さらに詳細にいえば、本発明は、ネットワーク・インタフェース回線（ＮＩＣ）からそのホスト・コンピュータ・システムへの非同期転送モード（ＡＴＭ）パケット・ヘッダとＡＴＭデータとの転送に関する。
【０００２】
請求の範囲に記載の主題が本願と同一の発明者により発明され、本出願と同一の譲受人に譲渡された米国特許願第０８／４７３、５１４号において、インターリーブされたＡＴＭセルの再配置のための方法および装置が開示されている。米国特許願第０８／４７３、５１４号の記載によれば、ＮＩＣによって受信された様々なチャネルのインターリーブされたＡＴＭセルは、チャネル・ベースで複数のリンク済みリストとして互いにリンクされた「バケット」にバッファされる。ＮＩＣは、チャネルの蓄積されたＡＴＭセル数が既定のしきい値に達すると、バッファに入ったチャネルのＡＴＭをホスト・コンピュータ・システムにバースト転送する。複数のデータ構造およびスケジュール・キューは、空きリソースの位置および転送のスケジューリングを含むＡＴＭセルのバッファリングを管理するために使用される。また、固定サイズ・ブロックでバッファされたＡＴＭセルを（パケット・ヘッダとデータを識別せずに）バースト転送するための方法についても開示されているが、この方法において、ブロック・サイズはＮＩＣとそのホスト・コンピュータ・システムとの間のインタフェース・バスと相補的であるが、ＡＴＭセルの境界とそろえる必要はない。開示された方法のもとでは、部分オフセットと共に部分バケット・ポインタが各チャネルに使用されて、アンロードの過程で時に応じ部分的にアンロードされたＡＴＭバケットの一時的な存在の管理を行う。部分バケット・ポインタが、部分的にアンロードされたＡＴＭバケットを識別するために使用されるのに対し、部分オフセットは部分的にアンロードされたＡＴＭバケット内の常駐データの開始位置を識別するために使用される。
【０００３】
【発明が解決しようとする課題】
上記のブロック方式によるＡＴＭセルのバースト転送時に、パケット・ヘッダとデータとをいつも識別できることがさらに望ましい。さらに具体的には、上記のブロック方式で、ショート・パケットおよび「非定形」パケットの場合を除いて、ＡＴＭパケット・ヘッダおよびＡＴＭデータをホスト・コンピュータ・システムの別々のバッファにバースト転送できることが望ましい。ショート・パケットとは、比較的長いヘッダの後に数バイトのデータを有するパケットであり、一方「非定形」パケットとは最適化のためにハードウェアをプログラムしてあるほとんどの一般的なパケット・タイプのヘッダ・サイズよりも小さいパケットである。アプリケーションは制御の目的でこれらの非定形パケットを用いる。たとえば、最も一般的なパケット・タイプは２０６バイトのヘッダ長を有するが、制御パケットは、ヘッダ長３６バイトおよびデータ長４バイトで、合計わずか４０バイトである。パフォーマンスの理由により、これらの各パケットでは、パケット・ヘッダおよびデータが共にヘッダ・バッファにバースト転送されるようになっている。以下にさらに詳細に開示されるように、本発明ではこれらおよびその他の要求をかなえるものである。
【０００４】
【課題を解決するための手段】
ＮＩＣは、セル境界にそろえないブロック方式でバッファに入れられたＡＴＭセルのホスト・コンピュータへのバースト転送を制御するための様々な制御ポインタと、少なくとも１つの制御カウンタを備えており、いくつかの所定の例外を除き、ほとんどの場合、ＡＴＭパケット・ヘッダをＡＴＭデータと区別する。さらに具体的には、ＡＴＭパケット・ヘッダおよびＡＴＭデータは、ショートパケットおよび非定形パケットの場合をのぞいて、固定サイズ・ブロックでホスト・コンピュータ・システムの別々のヘッダおよびデータ・バッファにバースト転送されるが、ここでブロック・サイズはインタフェース・バスと相補的であるが必ずしもＡＴＭセル境界にそろえる必要はない。その代わり、ショート・パケットおよび非定形パケットについては、ヘッダおよびデータ両方ともヘッダ・バッファにバースト転送される。
【０００５】
関連する制御ポインタは、部分バケット・ポインタおよび部分オフセットを含む。さらに、関連制御ポインタは、部分バケット・ポインタに続く第１のフルＡＴＭバケットを指す第１バケット・ポインタ、部分バケットがある場合には第１のＡＴＭバケットの後に続くＡＴＭバケットを指す次バケット・ポインタ、最後のリンク済みＡＴＭバケットを指す最終バケット・ポインタを含む。関連する少なくとも１つの制御カウンタは、残余ヘッダ長カウンタを含む。
【０００６】
この論理では、ヘッダ／データのヘッダ／データ・バッファへの各バースト転送後に、これらの関連する制御ポインタおよび少なくとも１つの制御カウンタへの適切な更新を判定する２段階の手法を採用する。この論理は、適切な更新を判定する際に、ＮＩＣがヘッダをバースト転送中であるかあるいはデータをバースト転送中であるか、またＮＩＣがヘッダのバースト転送からデータのバースト転送へと移行するところであるかを考慮する。さらにこの論理では、パケットが例外として処理されるか、すなわちヘッダとデータを区別しないかを考慮する。
【０００７】
第１の段階では、この論理は新規残余ヘッダ長、そしてＮＩＣがヘッダをバースト転送中の場合は新規「非正規化」部分オフセットを判定する。第２段階においては、この論理は、新規「非正規化」部分オフセットの指す位置に応じて、新規「正規化」部分オフセット、新規部分、第１および次バケット・ポインタを判定する。さらに具体的には、新規「非正規化」部分オフセットが、完了したばかりのバーストでバーストした可能性のある最も遠いフルＡＴＭセルを超えるリンクされたＡＴＭバケット（以下では「最遠のフルＡＴＭバケット」と略す）内の位置を指すか、「最遠のフルＡＴＭバケット」の最後を指すか、完了したばかりのバーストが開始したＡＴＭバケット（以下では「開始ＡＴＭバケット」と称する）を超えるが「最遠のフルＡＴＭバケット」の最後よりも前を指すか、「開始ＡＴＭバケット」の最後を指すか、または依然として「開始ＡＴＭバケット」内を指すかにより、この論理は上記の判定を行う。これらの各事例に対して、論理はさらに、ＥＯＰマーキングがバースト転送を終えたばかりのヘッダ／データ内にあるかどうかの考慮を計算に入れていく。
【０００８】
１つの実施の態様において、この論理はアンロード・ブロックのルックアヘッド状態機械に設けられるが、これはシステムの受信ブロックの一部であり、ＮＩＣのＡＴＭ層コアである。
【０００９】
【発明の実施の形態】
以下の記述において、本発明をより深く理解するために、説明の目的で特定の数、材料、および構成が示される。しかし当業者には、本発明が具体的な詳細なしに実践できることが明らかであろう。その他の例においては、本発明を不明瞭にすることのないよう、周知の特徴は省略または簡略化してある。
【００１０】
図１には、本発明のＡＴＭ  ＮＩＣを組み込むコンピュータ・システム・ネットワークの例を示す。コンピュータ・システム・ネットワーク１０は、１つまたは複数のＡＴＭ  ＮＩＣ１２を組み込むホスト・コンピュータ・システム（図示せず）を含む。ＮＩＣ１２は、ローカルＡＴＭ交換機１４を介して公衆ＡＴＭ交換機１６に接続され、ネットワーク１０に接続されたホスト・コンピュータ・システム間のデータの非同期転送を可能にしている。あるいは、ＮＩＣ１２を公衆ＡＴＭ交換機１６に直接接続することもできる。図１に示すように、コンピュータ・システム・ネットワーク１０はまた、ローカル・エリア・ネットワーク（ＬＡＮ）エミュレーション１５の使用を組み込むコンピュータ・システム含むこともあり、これはＡＴＭネットワークを支援フレームワークとして利用するＥｔｈｅｒｎｅｔまたはトークンリング・ネットワークなど他のネットワークを接続するためのゲートウェイとしての役割を果たす。
【００１１】
図２は、本発明の好ましい実施の形態よるＡＴＭ  ＮＩＣ１２のアーキテクチャを示すシステム概略図である。ＡＴＭ  ＮＩＣ１２は、システム・バス３８を介して，ＡＴＭプロトコルに従って動作するネットワークＡＴＭセル・インタフェース４０に接続されたホスト・コンピュータ・システム４８とインタフェースする。
【００１２】
図示のＡＴＭ  ＮＩＣ１２は、システム・バス・インタフェース２０、汎用入出力（ＧＩＯ）インタフェース２４、システムおよびＡＴＭ層コア２２、ローカル・スレーブ・インタフェース２６、送信（ＴＸ）ＦＩＦＯ２８、受信（ＲＸ）ＦＩＦＯ３０、セル・インタフェース・ブロック３２、外部バッファ・メモリ・インタフェース３４、およびクロック合成回路３６を含んでいる。
【００１３】
ＮＩＣ１２の構成要素２０−３６は協働して、複数の帯域幅のグループ内の動的に割り当てられた複数のチャネルを介して、ホスト・コンピュータ４８とネットワーク内の他のコンピュータとの間のデータの転送を行う。ＮＩＣ１２の構成要素は集合的に、ホスト・コンピュータ・システム４８のシステム・バス３８に接続されたマルチチャネル・インテリジェント・ダイレクト・メモリ・アクセス（ＤＭＡ）コントローラとして機能する。好ましい実施の形態において、複数の送信および受信チャネルは、全二重１５５／６２２Ｍｂｐｓ物理リンクを利用する仮想接続として機能する。外部バッファ・メモリ・インタフェース３４を介して外部バッファ・メモリ４２へのシステム・バス３８上の別のチャネルに割り当てられた複数のデータのパケットは、セル・インタフェース・ブロック３２を介しＡＴＭセル・インタフェース４０への転送のために、システムおよびＡＴＭ層コア２２によってセグメント化される。コア２２には、受信セルのパケットへの再アセンブリを容易にする再アセンブリ論理を含んでいる。
【００１４】
３つのメモリ・サブシステムが、ＮＩＣ１２の動作に関連づけられている。これらには、ホスト・コンピュータ・システム４８に位置するホスト・メモリ４９、ＮＩＣ１２の外部にある外部バッファ・メモリ４２およびコア２２内に位置する記憶ブロック４４を含んでいる。ＮＩＣ１２は、外部バッファ・メモリ４２および記憶ブロック４４の２つのメモリ領域を管理する。外部バッファ・メモリ４２は、ＮＩＣ１２にサポートされるすべての送信および受信チャネルのためのパケット・データを含んでいる。記憶ブロック４４は、送信および受信チャネルおよびＤＭＡ転送が行われるホスト・メモリ４９のデータ構造を指すポインタに関するＤＭＡ状態情報を含んでいる。記憶ブロック４４はまた、ホスト４８およびＡＴＭセル・インタフェース４０の間の移行時にパケットの複数の送受信バッファを管理するためにデータ構造特性も含んでいる。
【００１５】
ホスト・コンピュータ・システム４８は、データ・パケットおよび送受信されるパケットを指すポインタを含んでいるホスト・メモリ４９を備えている。前述のように、ＮＩＣ１２はまた、ホスト・コンピュータ・システム４８上のアプリケーションからの非同期転送のセル記述の詳細を保護する。本発明の目的のため、ホスト・コンピュータ・システム４８上で実行中のソフトウェアが、当技術分野で周知のようにパケット・インタフェースで送受信リングのラップ・アラウンドを使用して、データの送受信を行うことを想定している。
【００１６】
コア２２とセル・インタフェース・ブロック３２との間に接続されたＴＸ  ＦＩＦＯ２８およびＲＸ  ＦＩＦＯ３０は、送信パケットの送信セル・ペイロードおよび受信パケットの受信セル・ペイロードを段階的に行う。セル・インタフェース・ブロック３２は、クロック合成回路３６がもたらすクロック信号によって駆動されるネットワークのＡＴＭセル・インタフェース４０との間のセルの送信および受信を行う。ＡＴＭセル・インタフェース４０およびＡＴＭセル・インタフェース３２は、ＡＴＭフォーラム特別仕様に記載されているＵｎｉｖｅｒｓａｌ  Ｔｅｓｔ  ａｎｄ  Ｏｐｅｒａｔｉｏｎｓ  Ｐｈｙｓｉｃａｌ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  ＡＴＭ（ＵＴＯＰＩＡ）規格に準拠していることが望ましい。ＵＴＯＰＩＡ仕様に準拠するために、クロック合成回路３６は２０−２５ＭＨｚまたは４０−５０ＭＨｚのクロック信号をもたらして、セル・インタフェース・ブロック３２が、１５５Ｍｂｐｓデータ・ストリームに対し２０−２５ＭＨｚの８ビット・ストリームを、または６２２Ｍｂｐｓデータ・ストリームに対し４０−５０ＭＨｚの１６ビット・ストリームをサポートできるようにする。
【００１７】
現在好ましい実施の形態において、セル・インタフェース・ブロック３２は、コア２２の制御のもとに４バイトのグループで、ＴＸ  ＦＩＦＯ２８を介し、それぞれが４バイト・セル・ヘッダおよび４８バイト・ペイロードを有する５２バイト・データ・セルをＴＸバッファ・メモリ４６から受信する。セル・インタフェース・ブロック３２は、５３バイト・データ・セルを１５５または６２２ＭｂｐｓでＡＴＭセル・インタフェース４０に供給する前に、セル・ヘッダの第５番めのバイトとして各セルにチェックサムを挿入する。逆に、セル・インタフェース・ブロック３２は、ＡＴＭセル・インタフェース４０からセルを受信する場合、各セルの第５番目のバイトのチェックサムを調べて、チェックサムが正しいかどうかを判定する。正しい場合は、チェックサムを表すバイトはセルから外され、セルは１５５または６２２Ｍｂｐｓで一度に４バイトずつＲＸ  ＦＩＦＰ３０に転送される。正しくない場合は、セル全体が脱落する。転送されたバイトはコア２２の制御のもとに外部バッファ・メモリ・インタフェース３４を介してＲＸバッファ・メモリ４５に保存される。
【００１８】
１つの実施の形態においては、ＴＸ  ＦＩＦＯ２８およびＲＸ  ＦＩＦＯＳ３０は３３ビットの幅を有し、そのうち３２ビットがデータ転送に使用され、１ビットがタグとして使用される。タグ・ビットは４８バイト・セル・ペイロードからの４バイト・セル・ヘッダを区別するのに使用される。タグ・ビットは、コア２２内に位置するＴＸブロック５０によって生成される。１つの実施の形態においては、タグ・ビットはセル・ヘッダの開始を示すために１にセットされ、セル・ペイロードを示すために０にリセットされる。したがって、セル（ヘッダ）の最初の４バイトに対してタグ・ビットは１であり、セル（セル・ペイロード）の残りの４８バイトに対してタグ・ビットは０である。
【００１９】
ＴＸ  ＦＩＦＯ２８からのデータ・セルを受信する際、セル・インタフェース・ブロック３２内にあるＴＸ回路５３はタグ・ビットを調べる。タグ・ビットが１の場合、ＴＸ回路５３は対応する３２ビットをセルのヘッダとしてデコードする。タグ・ビットが０の場合、ＴＸ回路５３は、対応する３２ビットをデータとしてデコードする。逆に、セル・インタフェース・ブロック３２がＡＴＭセル・インタフェース４０からデータ・セルを受信する場合、セル・インタフェース・ブロック３２内のＲＸブロック５５は、４バイト・セル・ヘッダを４８バイト・セル・ペイロードと区別するためのタグ・ビットを生成する。その後、セル・インタフェース・ブロック３２は、データ・セルを４バイトのグループでＲＸ  ＦＩＦＯ３０に送る。ＲＸ  ＦＩＦＯ３０からのセル・データを受信すると、コア２２内のＲＸ回路５２は前述のようにタグ・ビットの値に従ってセル・データをデコードする。
【００２０】
２つの同期クロック信号である２０ＭＨｚ信号よび４０ＭＨｚ信号は、クロック合成回路３６を介してＡＴＭセル・インタフェース・クロックからセル・インタフェース・ブロック３２に供給される。ＵＴＯＰＩＡ仕様に従い、６２２Ｍｂｐｓ４０ＭＨｚに対し１６ビット・データ・ストリームをもたらすように４０ＭＨｚクロックが供給される。ＵＴＯＰＩＡ仕様に従い、クロック合成回路３６内で４０ＭＨｚクロック信号の２分割が行われて、１５５Ｍｂｐｓに対し２０ＭＨｚの８ビット・データ・ストリームを供給する。４０ＭＨｚクロック信号もまた、１．２Ｇｂｐｓ転送速度をもたらすために外部バッファ・メモリ・インタフェース３４に供給される。さらに、ＧＩＯ２４はデータの送受信のために４０ＭＨｚクロックを使用する。
【００２１】
ＴＸバッファ・メモリ４６は３２ビットのデータをＴＸ  ＦＩＦＯ２８に供給し、ＲＸバッファ・メモリ４５は４０ＭＨｚクロック信号の各周期ごとにＲＸ  ＦＩＦＯ３０からの３２ビット・データを読み取る。しかし、ＡＴＭセル・インタフェース４０は、６２２Ｍｂｐｓでの動作時に２クロック周期ごとにＴＸ  ＦＩＦＯ２８からの４バイトのデータを読み取り、１５５Ｍｂｐｓでの動作時に８クロック周期ごとにＴＸ  ＦＩＦＯ２８からの４バイトのデータを読み取る。同様にして、セル・インタフェース・ブロック３２は、６２２Ｍｂｐｓでの動作時に２クロック周期ごとにＴＸ  ＦＩＦＯ２８へ４バイト・データを供給し、１５５Ｍｂｐｓでの動作時に８クロック周期ごとにＴＸ  ＦＩＦＯ２８へ４バイトのデータを供給する。コア２２のセル・バースト速度は、セル・インタフェース・ブロック３２のセル・バースト速度とは異なるが、ＴＸ  ＦＩＦＯ２８およびセル・インタフェース・ブロック３２の間のデータ速度は、平均するとＴＸ  ＦＩＦＯ２８およびコア２２の間のデータ速度と等しい。同様にＲＸ  ＦＩＦＯ３０およびセル・インタフェース・ブロック３２の間のデータ速度は、平均するとＲＸ  ＦＩＦＯ２８およびコア２２の間のデータ速度と等しい。これは、ＴＸ  ＦＩＦＯ２８およびＲＸ  ＦＩＦＯ３０とコア２２との間のデータ速度が、データがそれぞれセル・インタフェース・ブロック３２によって読取りまたは書込みされる速度に依存しているためである。１つの実施の形態において、ＴＸ  ＦＩＦＯ２８の深さは１８ワードまたは１  １／２セルの長さであり、ＲＸ  ＦＩＦＯ３０の深さは７０ワードの長さである。
【００２２】
システム・バス・インタフェース２０およびＧＩＯインタフェース２４は、ＡＴＭセル・インタフェース４０への転送の詳細からホスト・コンピュータ・システム４８を遮断する。さらに、コア２２はシステム・バス３８の詳細およびホストの詳細から遮断される。現在好ましい実施の形態においては、アメリカ電気電子通信学会（ＩＥＥＥ）規格１４９６仕様に規定のとおり、システム・バスはＳ−バスである。システム・バス・インタフェース２０は、システム・バスの仕様（本実施の形態ではＳ−バスである）に従って通信するように構成される。システム・バス・インタフェース２０は、別のホスト・コンピュータ・システム・バスに適合させて構成することもできると考えられている。システム・バス・インタフェース２０はまた、ＧＩＯインタフェース２４により指定されたプロトコルに従ってデータを送信および受信するように構成されている。ＧＩＯインタフェース２４は、コア２２がホスト・コンピュータと通信する単一のインタフェースをもたらす。したがって、コア２２は異なるホスト・コンピュータ・システムおよびバスにインタフェースする様々なＮＩＣ１２の実施の形態のために変わることはない。
【００２３】
図３は、コア２２をさらに詳細に示している。コア２２は互いに図のように接続されたＴＸブロック５０、ＲＸブロック５２、アービタ５４および制御メモリ５６から構成されている。ＴＸブロック５０は、ホスト・コンピュータ・システムからＡＴＭパケットを受信し、それをＡＴＭセルにセグメント化し、そのセグメント化ＡＴＭセルをＴＸ  ＦＩＦＯ２８に供給するために使用される。現在好ましい実施の形態においては、ＴＸブロック５０には、米国特許係属出願第ｘ／ｘｘｘ、ｘｘｘ号の教示を組込み、６２２Ｍｂｐｓ以上でＡＴＭパケットをセグメント化できるようになっている。ＲＸブロック５２は、ＡＴＭセルをＲＸ  ＦＩＦＯ３０から受信し、それをＡＴＭパケットに再アセンブルし、再アセンブルされたＡＴＭパケットをホスト・コンピュータ・システムに供給するために使用される。ＲＸブロック５２は、様々なチャネルのインターリーブされたＡＴＭセルの再配列に関する前記米国特許係属出願において開示された教示を組み込んでいる。すなわち、様々なチャネルに受信されたＡＴＭセルは、外部メモリ４２内のＡＴＭバケットに保存される。ＡＴＭバケットは、チャネルごとにリンク済みリストに編成される。未使用のまたは空のＡＴＭバケットはフリー・リソースのリンク済みリストに編成される。さらに、以下にさらに詳細に記述されるように、ＲＸブロック５２は、ブロック方式でのホスト・コンピュータ・システムへのバッファされたＡＴＭセルのバースト転送に関する本発明の教示を組込んでいるが、ここで転送ブロックはＡＴＭセル境界にそろえる必要はなく、また同時に、前述のショート・パケットおよび非定形パケットのようないくつかの所定の例外を除いてはＡＴＭパケット・ヘッダとデータを区別する。
【００２４】
制御ＲＡＭ５６は、特に前述のＡＴＭバケットのリンク済みリストに、所望の方法でＡＴＭセルをアンロードするための関連する制御ポインタ、および以下にさらに詳細に記述される少なくとも１つの制御カウンタに関するリンケージ情報などを含むＴＸおよびＲＸブロック５０および５２の様々な制御情報を保存するために使用される。最後に、アービタ５４は、ＴＸおよびＲＸブロック５０および５２の間のＲＡＭ５６を制御するアクセスの調停に使用される。制御ＲＡＭ５６およびアービタ５４は、当技術分野において周知のいくつかの方法で実施することができる。
【００２５】
図４では、Ｒｘブロック５２の１つの実施の形態をさらに詳細に示している。図示の実施の形態の例示では、ＲＸブロック５２は、互いに図のように接続されたＲＸロード・ブロック５８、ＲＸアンロード・ブロック６０、スケジュール・キュー６２、フリー・リスト・マネージャ６４、外部ＲＡＭインタフェース６６、および制御ＲＡＭインタフェース６８から構成されている。ＲＸロード・ブロック５８は、ＲＸ  ＦＩＦＯ３０からインターリーブされたＡＴＭセルを受信し、それを外部メモリ３４内の空ＡＴＭバケットに保存するために使用される。フリー・リスト・マネージャ６４は、フリー・バケットのある位置をＲＸロード・ブロック５８に知らせて、フリー・リソースを管理するために使用される。ＲＸロード・ブロック５８はまた、スケジュール・キュー６２によるアンロード・サービスを必要とするチャネルのスケジュールにも使用される。１つの実施の形態において、アンロード・サービスは、チャネルに蓄積されたＡＴＭセルの数が所定のしきい値に達するとスケジュールされる。ＲＸアンロード・ブロック６０は、バッファされたＡＴＭセルをアンロードし、それを所望の方法で（すなわち、ブロック・サイズがバス・インタフェースと相補的である固定サイズ・ブロックで）ホスト・コンピュータ・システムにバースト転送し、さらに同時に、前述の所定の例外を除いてＡＴＭパケット・ヘッダとデータを区別するために使用される。ＲＸロード・ブロック５８、ＲＸアンロード・ブロック６０、スケジュール・キュー６２、およびフリー・リスト・マネージャ６４の基本的動作に関して詳しくは、米国特許係属出願第０８／４７３、５１４号を参照されたい。
【００２６】
外部および制御ＲＡＭインタフェース６６および６８は、それぞれのメモリに対してその通常のインタフェース機能を行う。外部および制御ＲＡＭインタフェース６６および６８はまた、当技術分野において周知な任意の手法で実施することができる。
【００２７】
ＲＸアンロード・ブロック６０についてさらに詳細に記述する前に、図５−図８を参照して、まず所望の転送の方法に関して説明する。図５は、ヘッダ７２、データ７４、およびＥＯＰ７６を含む「通常の」ＡＴＭパケット７０を示している。図示のとおり、ＡＴＭパケット７０は、複数のＡＴＭセル（セル・ヘッダでパッケージされている）７８で受信される。さらに様々なチャネルのＡＴＭセルはインターリーブされて到着する。すなわち、ＡＴＭパケット７０のＡＴＭセル７８は、ＲＸ  ＦＩＦＯ３０に連続して受信される必要はない。ただし、前述のように、パケットが比較的短く、ヘッダ７２が比較的長くデータ７４がわずか数バイトの長さの場合もある。さらにまた、全パケットがほとんどの一般的パケット・タイプのヘッダよりも短い非定形パケットもある。
【００２８】
図６は、パケット・ヘッダおよびパケット・データがホスト・コンピュータ・システム内に配置される所望の方法、すなわちショートおよび非定形パケットの場合を除いてパケット・ヘッダがヘッダ・バッファ８０に、パケット・データがヘッダ・バッファ８０とは別のデータ・バッファ８２に配置される方法を示している。ショートおよび非定形パケットについては、パケット・ヘッダおよびパケット・データは共にヘッダ・バッファ８０に配置される。
【００２９】
図７および図８は、ＡＴＭヘッダ７２がバッファ８０に、ＡＴＭデータ７４がバッファ８２に転送される所望の方法を示している。図示のとおり、ＡＴＭセル７８はＡＴＭバケットに保存される。ＡＴＭバケットはチャネルごとのリンク済みリストのように互いにリンクされている（リンケージ情報は図示せず）。さらに、リンク済み各リストは、複数のポインタで管理される。さらに具体的には、リンクされた各リストは、第１のフルバケット（部分バケットまたは常駐データの入ったバケットに対する）を指す第１バケット・ポインタ８４、第１のバケットの後に続く次のＡＴＭバケットを指す次バケット・ポインタ８６、および最後のＡＴＭバケットを指す最終バケット・ポインタ８８で管理される。
【００３０】
保存されたＡＴＭセルは、固定サイズ・ブロックでホスト・コンピュータ・システムに転送されるが、ここでブロック・サイズはバス・インタフェースと相補的であり、ＡＴＭセル・サイズとは等しくない。従って、部分的にアンロードされたバケットまたは常駐データを備えるバケットが時として存在することも可能である。各チャネルには一度に部分バケットが１つだけであることに留意されたい。したがって、前述のポインタ８４−８８に加えて、部分バケット・ポインタ９０はまた部分バケットを識別するために各チャネルに採用され、部分オフセット９２は部分バケット内の常駐データの開始位置を識別するために使用される。さらに、ヘッダが完全に転送されるまで、残余ヘッダ長を維持することが必要であり、残余ヘッダ長カウンタ９４がその目的のため採用される。
【００３１】
制御ポインタ８４−９２および制御カウンタ９４は、各バースト転送後に更新される。さらに具体的には、第１ポインタ８４、次ポインタ８６、部分ポインタ９０および部分オフセット９２はすべて相応して「進められ」、残りのヘッダ長９４は相応してデクリメントされる。チャネルのすべてのバッファされたＡＴＭセルがホスト・コンピュータ・システムに転送されてしまうと、最後のバケット・ポインタ８８が更新される。
【００３２】
部分オフセットは、部分ＡＴＭバケット内の常駐データの開始位置を示すために使用されるため、この部分オフセットは０からＡＴＭセル・サイズ（ＣＳ）の間の値だけを取ることができる。部分バケットがない場合は、部分オフセットは０に等しい。一方、部分オフセットは、ＡＴＭバケットの最後を指す場合にＣＳに等しい。したがって、各バースト転送後の正しい新部分オフセットを判定するためには、部分オフセットをバースト・サイズ（ＢＳ）だけ名目上インクリメントする際に、調整または正規化を行って部分オフセット値を０とＣＳの間にしなければならない。
【００３３】
さらに、ＣＳおよびＢＳは固定されているため、正規化前にインクリメントされた部分オフセットがとることのできる値は有限および事前設定可能である。たとえば、現在好ましい実施の形態においては、ＣＳは４８バイト、そしてＢＳは６４バイトである。したがって、正規化前のインクリメントされた部分オフセット値は、必然的に０から２８（ワード数の単位で）の間である。さらに説明を加えると、ＢＳが１２８バイトに変更された場合、正規化前のインクリメントされた部分オフセット値は必然的に０から４４（ワード数の単位で）の間である。
【００３４】
さらに、バケット・ポインタおよび部分オフセットの管理の目的で、正規化前インクリメント済み部分オフセット値（ｐ）は事前設定可能な有限数の事例として解析することが可能である。現在好ましい実施の形態（ＣＳ＝４８バイト、ＢＳ＝６４バイト）を再度例にあげると、ｐは必然的に０−２８（ワード数の単位で）の間であるから、完了したばかりのバースト転送の停止位置は、ｐが２４よりも大きい場合「最遠のフルＡＴＭバケット」を超え、ｐが１３−２４の間の場合「最遠のフルＡＴＭバケット」内であり、ｐが０−１２の間の場合「開始バケット」内である。この場合の「最遠のフルＡＴＭバケット」は、「開始バケット」のすぐ後のバケットである。さらに説明を加えると、ＣＳが４８バイトでＢＳが１２８バイトである場合の実施の形態では、ｐは必然的に０−４４（ワード数の単位で）の間にあるため、完了したばかりのバースト転送の停止位置は、ｐが３６よりも大きい場合「最遠のフルＡＴＭバケット」を超え、ｐが２５−３６の間の場合「最遠のフルＡＴＭバケット」内であり、ｐが１３−２４の間の場合「開始バケット」に続くバケット内であり、ｐが０−１２の間の場合「開始バケット」内である。
【００３５】
以上、所望の転送方法を記述してきたが、ここでＲＸアンロード・ブロック６０について、特に本明細書に組み込む本発明の教示について図９および図１０−図１５を参照しながら、さらに詳細に記述する。図９は、ＲＸアンロード・ブロック６０の１つの実施の形態を示している。図示のように、ＲＸアンロード・ブロック６０は、それぞれ図のように互いに接続されたデータ・エンジン状態機械９６、ルックアヘッド状態機械９８、ゲット・バッファ状態機械９８、複数のアンロード・レジスタ１０２および複数の加算器、減算器、比較器、およびマルチプレクサ１０４を含んでいる。ゲット・バッファ状態機械１００は、ホスト・コンピュータ・システム上のバッファを入手するために使用され、データ・エンジン状態機械９６は、ホスト・コンピュータ・システム上の適切なバッファにヘッダおよびデータを実際にバースト転送するために使用される。ルックアヘッド状態機械９８は、ＲＸアンロード・ブロック６０の動作を制御するために使用される。アンロード・レジスタ１０２は、様々な制御データの保存のために、様々な状態機械９６−１００、特にルックアヘッド状態機械９８によって使用される。制御データに対する変更は、アンロード・レジスタ９８から制御データを読み取り、読取りデータを選択された加算器、減算器などの１つ１０４に供給し、その後選択された加算器、減算器などの１つ１０４を使用して提供された制御データ上で操作することによって行われる。
【００３６】
ルックアヘッド状態機械９８は、前述の第１バケット・ポインタ８４、次バケット・ポインタ８６などを含む、適切な制御情報および制御信号をゲット・バッファ状態機械１００およびデータ・エンジン状態機械９６に供給する。ルックアヘッド状態機械９８は、行われているのがヘッダ・バースト転送またはデータ・バースト転送のいずれであるか、バースト転送されたばかりのヘッダ／データの中にＥＯＰが検出されたかどうか、といった実行中のアンロードを監視する。一方ルックアヘッド状態機械９８はこれに応じて、アンロード・レジスタ１０２および加算器、減算器など１０４を使用して、制御データを維持する。
【００３７】
ルックアヘッド状態機械９８によって、関連する制御ポインタ８４−９２および少なくとも１つの関連するカウンタ９４が適切に維持されて、ＡＴＭセルを所望の方法でホスト・コンピュータ・システムにバースト転送できる方法については、以下にさらに詳しく記述する。ゲット・バッファ状態機械１００、データ・エンジン状態機械９６、およびルックアヘッド状態機械９８によって実行される他の機能は、本発明の理解には直接には関与しない。したがって以下では、これらについての記述は行わない。
【００３８】
図１０−図１５は様々な関連する制御ポインタ８４−９２および残余ヘッダ長カウンタ９４を維持するためのルックアヘッド状態機械９８の動作論理の１つの実施の形態を示している。図１０に示されたように、ルックアヘッド状態機械９８はまず、バースト転送がヘッダ・バースト転送であるか、またはデータ・バースト転送であるかを判定する、ステップ２００。バースト転送がヘッダ・バースト転送であると判定すると、ルックアヘッド状態機械９８は以前の残余ヘッダ長からバースト・サイズを除算することにより新たな残余ヘッダ長を計算させる、ステップ２０２。次に、ルックアヘッド状態機械９８は、新規ヘッダ長がゼロ未満であるがどうか判定する、ステップ２０４。新規ヘッダ長がゼロ未満であると判定されると、ルックアヘッド状態機械９８は以前の部分オフセット９２に以前のヘッダ長９４を加算することにより新たな部分オフセット（未正規化）９２を計算させる、ステップ２０６。さらに、ルックアヘッド状態機械９８は、新規ヘッダ長９４をゼロに調整させる、ステップ２０８。
【００３９】
一方、ステップ２００においてバースト転送がデータ・バースト転送であると判定された場合、もしくはステップ２０４において新規ヘッダ長９４がゼロ未満ではない場合、ルックアヘッド状態機械９８は、以前の部分オフセット９２にバースト・サイズを加算することにより新規部分オフセット９２を計算させる、ステップ２１０。
【００４０】
次に、ルックアヘッド状態機械９８が、正規化前の新規部分オフセット９２が「最遠フルＡＴＭバケット」を超えた位置を指しているかどうかを判定する、ステップ２１２。判定結果が肯定である場合、ルックアヘッド状態機械９８は「最遠のフルＡＴＭバケット」の事例に従って関連ポインタ８４−９２を更新させる、ステップ２１４。一方、判定結果が否定である場合、ルックアヘッド状態機械９８はさらに、正規化前の新規部分オフセットが「最遠のフルＡＴＭバケット」の最後を正確に指しているかどうか判定する、ステップ２１６。
【００４１】
ステップ２１６における判定結果が肯定である場合、ルックアヘッド状態機械９８は、「最遠のフルＡＴＭバケットの最後」の事例に従って関連ポインタ８４−９２を更新させる、ステップ２１８。一方、ステップ２１６における判定結果が否定である場合、ルックアヘッド状態機械９８はさらに、正規化前新規部分オフセットが「開始バケット」を超えた位置を指しているかどうか判定する、ステップ２２０。
【００４２】
再び、ステップ２２０における判定結果が肯定である場合は、ルックアヘッド状態機械９８は、「開始バケットを超える」事例に従って関連ポインタ８４−９２を更新させる、ステップ２２２。一方、ステップ２２０における判定結果が否定である場合は、ルックアヘッド状態機械９８はさらに、正規化前新規部分オフセットが「開始バケット」の最後を正確に指しているかどうかを判定する、ステップ２２４。
【００４３】
同様にして、ステップ２２４における判定結果が肯定である場合は、ルックアヘッド・状態機械９８は、「開始バケットの最後」の事例に従って関連ポインタ８４−９２を更新させる、ステップ２２６。一方、ステップ２２４における判定結果が否定である場合は、ルックアヘッド状態機械９８は、「開始バケット内」の事例に従って関連ポインタ８４−９２を更新させる、ステップ２２８。
【００４４】
図１１−図１５は、関連ポインタ８４−９２が前述の事例のもとで更新される方法を示している。説明を容易にするために、ＣＳを４８バイト、ＢＳを６４バイトとする現在好ましい実施の形態に従って更新を例示する。すなわち、現在好ましい実施の形態のもとでは、前述のとおり、部分オフセット９２がとることのできる有効値（ワード数の単位で）は、０−１２である。部分オフセット９２がバースト転送前にとることのできる最大値（ワード数の単位で）は１２であり、正規化前新規部分オフセット９２がとることのできる最大値（ワード数の単位で）は２８（１２＋１６、ここで１６はワード数でのＢＳ）である。したがって、本実施の形態では、部分オフセット９２の正規化のための適切な調整値（ワード数の単位で）は、「最遠フルＡＴＭバケット」を「超える」および「最後」の場合２４（つまり２×ＣＳ）であり、「開始バケット」を「超える」および「最後」の場合１２（１×ＣＳ）である。
【００４５】
したがって、図１１に示されるように、「最遠フルＡＴＭバケットを超える」の事例に対しステップ２３０において、ルックアヘッド・状態機械９８は正規化前新規部分オフセット９２から２×ＣＳを除算することにより正規化された新規部分オフセット９２を計算させる。その後、ルックアヘッド・状態機械９８は、以前の部分バケットおよび以前の第１バケットをフリー・リソース・リストに戻させる、ステップ２３２。次に、ルックアヘッド状態機械９８は、前の第１のフルＡＴＭバケット、すなわち完了したばかりのバースト転送の前に第１バケット・ポインタによって指されたバケット内にＥＯＰが検出されたかどうかを判定する、ステップ２３４。判定結果が肯定である場合は、ルックアヘッド状態機械９８は、部分バケット・ポインタ９０を前の次バケット・ポインタ８６と等しくなるようにセットし、維持されたリンケージ情報を使用して新規第１バケット・ポインタ８４の適切なアドレス値を調べる。一方、判定結果が否定である場合、ルックアヘッド・状態機械９８は新規部分バケット・ポインタ９０をヌルに、正規化新規部分オフセット９２をゼロに、そして第１バケット・ポインタ８４を前の次バケット・ポインタ８６に等しくセットする、ステップ２３８。
【００４６】
図１２に示されるように、「最遠のフルＡＴＭバケットの最後」の事例に対しステップ２４０において、ルックアヘッド状態機械９８は正規化前新規部分オフセット・ポインタ９２から２×ＣＳを除算することにより正規化された新規部分オフセット９２を計算させる。その後、ルックアヘッド状態機械９８は、以前の部分バケットおよび第１バケットをフリー・リソース・リストに戻させる、ステップ２４２。さらに、ルックアヘッド状態機械９８は、新規部分バケット・ポインタ９０をヌルに、そして第１バケット・ポインタ８４を前の次バケット・ポインタ８６に等しくセットする、ステップ２４４。部分オフセット９２はステップ２４０において効果的にゼロにセットされていることに留意されたい。
【００４７】
図１３に示されるように、「開始ＡＴＭバケットを超える」の事例に対しステップ２４６において、ルックアヘッド状態機械９８は正規化前新規部分オフセット９２から１×ＣＳを除算することにより正規化された新規部分オフセット９２を計算させる。次に、ルックアヘッド状態機械９８は、「開始バケット」が部分バケットであるかどうかを判定する、ステップ２４８。「開始バケット」が部分バケットである場合は、ルックアヘッド状態機械９８は、「開始部分バケット」をフリー・リストに戻させる、ステップ２５０。その後、ルックアヘッド状態機械９８は、部分バケット・ポインタ９０を前の第１バケット・ポインタ８４と等しく、第１バケット・ポインタ８４を前の次バケット・ポインタ８６に等しくセットする。
【００４８】
しかし、ステップ２４８に戻り、「開始バケット」が部分バケットでないと判定された場合、ルックアヘッド状態機械９８は、「開始バケット」をフリー・リストに戻させる、ステップ２５４。次に、ルックアヘッド状態機械９８は、以前の第１バケットでＥＯＰが検出されたかどうかを判定する、ステップ２５６。判定結果が肯定である場合、ルックアヘッド状態機械９８は、部分ポインタ９０を前の次ポインタ８６に等しくセットし、維持されたリンケージ情報を使って新規第１ポインタ８４のアドレス値を調べる。一方、判定結果が否定である場合、ルックアヘッド状態機械９８は、部分オフセット９２をゼロに、第１ポインタ８４を前の次ポインタ８６と等しくセットする、ステップ２６０。
【００４９】
図１４に示されるように、「開始ＡＴＭバケットの最後」の事例に対しステップ２６２において、ルックアヘッド状態機械９８は正規化前新規部分オフセット９２から１×ＣＳを除算することにより正規化された新規部分オフセット９２を計算させる。その後、ルックアヘッド状態機械９８は、「開始バケット」が部分バケットであるかどうかを判定する、ステップ２６４。「開始バケット」が部分バケットである場合は、ルックアヘッド状態機械９８は、「開始部分バケット」をフリー・リストに戻させる、ステップ２６６。その後、ルックアヘッド状態機械９８は、部分バケット・ポインタ９０をゼロに等しく、第１バケット・ポインタ８４を前の次バケット・ポインタ８６に等しくセットする。一方、ステップ２６４に戻ると、状態機械９８が開始第１バケットを、フリー・リストに戻させるステップ２７０のように判定されている。その後、ルックアヘッド状態機械９８は、第１バケット・ポインタ８４を前の次バケット・ポインタ８６に等しくセットする。
【００５０】
最後に、図１５に示されるように、「開始バケット内」の事例に対して、ルックアヘッド状態機械９８は、「開始バケット」が部分バケットであるかどうか判定する、ステップ２７４。判定結果が肯定である場合、これ以上の動作はとられない、すなわち、あらゆるポインタおよび部分オフセットは変更されない。一方判定結果が否定である場合は、ルックアヘッド状態機械９８は、部分バケット・ポインタ９０を前の第１ポインタ８４と等しく、第１ポインタを前の次ポインタ８６と等しくセットする、ステップ２７６。
【００５１】
以上、ＡＴＭパケット・ヘッダおよびデータをホスト・コンピュータにバースト転送するための方法および装置について記述してきた。本発明の方法および装置を例示的な実施の形態に関して述べたが、記載された実施の形態に本発明を限定するものではないことを、当業者なら理解するであろう。本発明は、冒頭の請求範囲の精神および範囲から逸脱することなく変更および修正を加えて実施することができる。したがって、この説明は本発明を限定するものではなく例示的なものとして見なされる。
【図面の簡単な説明】
【図１】  本発明の教示を組込むコンピュータ・システムのネットワークの例を示す図である。
【図２】  図１のＮＩＣの１つの実施の形態を示す図である。
【図３】  図２のシステムおよびＡＴＭ層コアを示す図である。
【図４】  図３の受信ブロックを示す図である。
【図５】  ＡＴＭパケットを示す図である。
【図６】  ホスト・システム上のヘッダおよびデータ・バッファを示す図である。
【図７】  ホスト・システムへのヘッダ／データのバースト転送のための、セル境界にそろえない手法を示す図である。
【図８】  ホスト・システムへのヘッダ／データのバースト転送のための、セル境界にそろえない手法を示す図である。
【図９】  図４のアンロード・ブロックの１つの実施形態を示す図である。
【図１０】  所望の方法でＡＴＭヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図９のルックアヘッド・状態機械に組込まれた論理フローの１つの実施形態を示す図である。
【図１１】  所望の方法でＡＴＭヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図９のルックアヘッド・状態機械に組込まれた論理フローの１つの実施形態を示す図である。
【図１２】  所望の方法でＡＴＭヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図９のルックアヘッド・状態機械に組込まれた論理フローの１つの実施形態を示す図である。
【図１３】  所望の方法でＡＴＭヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図９のルックアヘッド・状態機械に組込まれた論理フローの１つの実施形態を示す図である。
【図１４】  所望の方法でＡＴＭヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図９のルックアヘッド・状態機械に組込まれた論理フローの１つの実施形態を示す図である。
【図１５】  所望の方法でＡＴＭヘッダおよびデータのバースト転送を行うための関連制御ポインタおよびカウンタを維持するための、図９のルックアヘッド・状態機械に組込まれた論理フローの１つの実施形態を示す図である。
【符号の説明】
１０  コンピュータ・システム・ネットワーク
１２  ＡＴＭ  ＮＩＣ
１４  ローカルＡＴＭ交換機
１５  ローカル・エリア・ネットワーク・エミュレーション
１６  公衆ＡＴＭ交換機
２０  システム・バス・インタフェース
２２  ＡＴＭ層コア
２４  ＧＩＯ（汎用入／出力）インタフェース
２６  ローカル・スレーブ・インタフェース
２８  ＴＸ（送信）ＦＩＦＯ
３０  ＲＸ（受信）ＦＩＦＯ
３２  セル・インタフェース・ブロック
３４  外部バッファ・メモリ・インタフェース
３６  クロック合成回路
３８  システム・バス
４０  ＡＴＭセル・インタフェース
４２  外部バッファ・メモリ
４４  記憶ブロック
４５  ＲＸバッファ・メモリ
４６  ＴＸバッファ・メモリ
４８  ホスト・コンピュータ
【図１】
0004205181.tif 000002
【図２】
0004205181.tif 000003
【図３】
0004205181.tif 000004
【図４】
0004205181.tif 000005
【図５】
0004205181.tif 000006
【図６】
0004205181.tif 000007
【図７】
0004205181.tif 000008
【図８】
0004205181.tif 000009
【図９】
0004205181.tif 000010
【図１０】
0004205181.tif 000011
【図１１】
0004205181.tif 000012
【図１２】
0004205181.tif 000013
【図１３】
0004205181.tif 000014
【図１４】
0004205181.tif 000015
【図１５】
0004205181.tif 000016