(57)【特許請求の範囲】
【請求項１】
ローカルＡＴＭネットワークにインターフェースするためのアダプタを備え、該アダプタはホストデバイスデータバスと前記ローカルＡＴＭネットワーク物理層との間にインターフェースするためのＡＴＭ集積回路を備え、該ＡＴＭ集積回路は、
バスインターフェース回路と、ＤＭＡ制御回路と、スレーブアクセス制御回路とから成り、前記バスインターフェース回路は前記ホストデバイスデータバスをインターフェースし、前記ＤＭＡ制御回路は前記ＡＴＭ集積回路と関連しているＲＡＭインターフェース／アービタ回路との間のメモリアクセスオペレーションを制御し、前記スレーブアクセス制御回路が割り込み回路と統計回路の動作を制御するホストインターフェース回路と、
前記ローカルＡＴＭネットワーク上で転送しようとする前記データの前処理のためにＡＴＭセル内に前記ホストデバイスデータバスからデータをセグメント分割するために、前記ＲＡＭインターフェース／アービタ回路に関連したセグメンテーションエンジンと、
前記ローカルＡＴＭネットワークからのＡＴＭセルを前記ホストデバイスデータバスに転送するのに適するデータに再組立するために、前記ＲＡＭインターフェース／アービタ回路に関連した再組立エンジンと、
前記ＤＭＡ制御回路にインターフェースするための前記ＲＭＡインターフェース／アービタ回路、前記スレーブアクセスコントロール回路、前記セグメンテーションエンジン、及び前記ＡＴＭ集積回路と関連したメモリ回路を持つ前記再組立エンジンと、
前記ＡＴＭ集積回路を前記ローカルＡＴＭネットワークと物理的にインターフェースするために第１のインターフェース上の前記セグメンテーションエンジン及び再組立エンジンと、第２のインターフェース上のローカルＡＴＭネットワークとに関連した物理インターフェース回路と、から成り、
ローカルＡＴＭネットワークにデスクトップユーザー局を適合させるためのＡＴＭアダプタにおいて、
前記ホストインターフェース回路と、前記物理インターフェース回路と、前記セグメンテーションエンジンと、前記再組立エンジンと、前記ＲＡＭインターフェースアービタ回路とを集積回路として形成したＡＴＭアダプタ。
【請求項２】
前記メモリアクセス制御回路、前記スレーブアクセスコントロール回路、前記セグメンテーションエンジン、及び前記再組立エンジンの間からの前記メモリへのアクセスを仲裁するためのメモリアービタ回路をさらに備える請求項１に記載のＡＴＭアダプタ。
【請求項３】
前記集積回路がプロトコルデータユニットとしてＡＴＭセルを送信する請求項１に記載のＡＴＭアダプタ。
【請求項４】
前記アダプタが、ＡＡＬ５及び非ＡＡＬ５転送モードをサポートする請求項１に記載のＡＴＭアダプタ。
【請求項５】
前記セグメンテーションエンジンが意味のない情報の転送を避けるため予め定義された記述子を使用する請求項１に記載のＡＴＭアダプタ。
【請求項６】
共通パート収束サブレイヤーにＡＡＬ５適合プロトコルをサポートするための回路をさらに備える請求項１に記載の非同期転送モードアダプタ。
【請求項７】
さらに、前記セグメンテーションエンジンにＡＡＬ５適合プロトコルを備える請求項１に記載のＡＴＭアダプタ。
【請求項８】
さらに、前記再組立エンジンにＡＡＬ５適合プロトコルを備える請求項１に記載のＡＴＭアダプタ。
【請求項９】
前記物理インターフェース回路が、ユートピアインターフェースにインターフェースするための回路からなる請求項１に記載のＡＴＭアダプタ。
【請求項１０】
さらに、前記ローカルエリアネットワークとオペレーション及びメインテナンスセルを通信するための回路を備える請求項１に記載のＡＴＭアダプタ。
【請求項１１】
さらに、前記セグメンテーションエンジン内にトラフィックフローを決定するための前記セグメンテーションエンジン内のピークセル速度回路を備える請求項１に記載のＡＴＭアダプタ。
【請求項１２】
前記セグメンテーションエンジンが、前記ローカルエリアネットワーク上の転送のために８チャンネルのデータを同時にセグメント分割する請求項１に記載のＡＴＭアダプタ。
【請求項１３】
前記再組立エンジンが、前記集積回路内の１０２４のセルを再組立するための回路からなる請求項１に記載のＡＴＭアダプタ。
【請求項１４】
前記再組立エンジンが、仮想チャンネル識別子空間の１０ビットを提供する請求項１に記載のＡＴＭアダプタ。
【請求項１５】
ＡＴＭ集積回路を持つデスクトップアプリケーションのためのＡＴＭアダプタにおいて、
前記ＡＴＭ集積回路は、
ホストデバイスをインターフェースするためのホストインターフェース回路であって、前記ホストインターフェース回路と、ホストデバイスデータバスとの間でホストデバイスデータを通信するために、前記ホストインターフェース回路を前記ホストデバイスデータバスにインターフェースするためのホストデバイスバスインターフェース回路と、前記ホストデバイスデータに関連したＤＭＡ動作を制御するように、前記バスインターフェース回路に関連したＤＭＡ制御回路と、ホストデバイスバス割込み及び統計に関係する前記ホストインターフェース回路のオペレーションを制御するために、前記バスインターフェース回路に関連したスレーブアクセス制御回路とから成るホストインターフェース回路と、
ＡＴＭフォーマット化データをローカルＡＴＭネットワークと通信するために、ＡＴＭ物理層と関連した物理インターフェース回路と、
ＡＴＭフォーマット化データを前記物理インターフェース回路に転送するために、前記物理インターフェース回路に関連したセグメンテーションエンジンであって、前記ホストデバイスデータを受信してこのホストデバイスデータをセグメント分割して出て行くＡＴＭフォーマット化データを形成するように関連したセグメンテーションエンジンと、
前記ローカルＡＴＭネットワークから入来するＡＴＭフォーマット化データを受信して、これからホストデバイスデータを生成して前記ホストインターフェース回路に転送するために、前記物理インターフェース回路に関連した再組立エンジンと、
ＲＡＭと通信するためにＲＡＭバスに関連したＲＡＭインターフェース／アービタ回路であって、前記ＤＭＡ制御回路、前記スレーブアクセス制御回路、前記セグメンテーションエンジン及び前記再組立エンジンと通信される信号の前記ＲＡＭへのアクセスをインターフェースし、アービトレートするために、前記ＤＭＡ制御回路、前記スレーブアクセス制御回路、前記セグメンテーションエンジン及び前記再組立エンジンに関連したＲＡＭインターフェース／アービタ回路と、
から成り、
さらに前記ホストインターフェース回路、前記物理インターフェース回路、前記セグメンテーションエンジン、前記再組立エンジン、及び前記ＲＡＭインターフェース／アービタ回路とを、
集積回路として形成したＡＴＭアダプタ。
【請求項１６】
前記セグメンテーションエンジンが、ＡＡＬ５トラフィックをセグメント分割し、さらに、前記物理インターフェース回路が前記ＡＡＬ５トラフィックを前記ローカルＡＴＭネットワークと通信させる請求項１５に記載のＡＴＭアダプタ。
【請求項１７】
前記セグメンテーションエンジンが、ＡＡＬ５トラフィック以外のトラフィックをセグメント分割し、さらに前記物理インターフェース回路が、ＡＡＬ５トラフィック以外のトラフィックを、前記ローカルＡＴＭネットワークに転送する請求項１５に記載のＡＴＭアダプタ。
【請求項１８】
前記セグメンテーションが、さらにセグメンテーションバッファを備え、このセグメンテーションバッファがさらにＡＴＭフォーマット化データにセグメント分割しようとするデータを受信するために、セグメンテーションバッファ記述子部分及びデータ部分を含む請求項１５に記載のＡＴＭアダプタ。
【請求項１９】
前記セグメンテーションエンジンが、さらにプリスケールパラメータ及び速度分解パラメータに応答して、トラフィック決定を実行する請求項１５に記載のＡＴＭアダプタ。
【請求項２０】
前記再組立エンジンが、さらに前記ＡＴＭフォーマット化データに完了した再組立オペレーションを記述するサービスリストを更新する請求項１５に記載のＡＴＭアダプタ。
【請求項２１】
前記セグメンテーションエンジンは、さらに以下のステップ
すなわち前記ＤＭＡ制御回路のためのプロトコルデータユニットをエンキュー（ｅｎｑｕｅｕｅｉｎｇ）するステップと、
エンキューしたプロトコルデータに応答して待ち行列を読み取るステップと、
前記プロトコルデータユニットをセグメント分割するステップと、
前記セグメント分割したプロトコルデータユニットに応答して前記ホストインターフェース回路にデータを供給するステップと、
を実行するためのサーキッティングを備えた請求項１５に記載のＡＴＭアダプタ。
【請求項２２】
前記再組立エンジンは、さらに以下のステップ
すなわち前記ホストインターフェース回路からホストデバイスデータを受信するステップと、
前記ホストデバイスデータに応答してＤＭＡ受信待ち行列をエンキューするステップと、
前記ＤＭＡ制御回路に関連したメモリマップからＤＭＡ受信待ち行列を読み取るステップと、
前記物理インターフェース回路を経てオペレーションアンドメインテナンスセルを受信するステップと、
前記ホストインターフェースからの変化信号に応答するステップと、
前記ホストインターフェースから不完全セルを受信するステップと、
を実行するための回路を備えた請求項１５に記載のＡＴＭアダプタ。
【請求項２３】
前記ローカルＡＴＭネットワークに関連したオペレーション及びメインテナンスセルをサポートするための回路を備えた請求項１５に記載のＡＴＭアダプタ。
【請求項２４】
前記ＲＡＭインターフェース／アービタ回路からの少なくとも８個のセグメンテーションチャネルのオペレーションと、前記ＡＴＭフォーマット化データ上の再組立オペレーションとを同時に許容するための回路を備えた請求項１５に記載のＡＴＭアダプタ。
【請求項２５】
仮想チャネル識別子情報及び仮想パス識別子情報を処理するための回路をさらに備えた請求項１５に記載のＡＴＭアダプタ。
【請求項２６】
ピークセル速度トラフィックを決定するための回路をさらに備えた請求項１５に記載のＡＴＭアダプタ。
【請求項２７】
前記ローカルＡＴＭネットワーク上に通信しようとする前記ＡＴＭフォーマット化データに関連してＡＴＭセルヘッダフィールドを挿入するための回路をさらに備えた請求項１５に記載のＡＴＭアダプタ。
【請求項２８】
前記再組立エンジンに関連した再組立バッファスペースを割り当てるための回路をさらに備え、前記ホストインターフェース回路が、さらに前記ローカルＡＴＭネットワークからの情報の受信を前記ホストデバイスデータバスに通信するための回路をさらに備えた請求項１５に記載のＡＴＭアダプタ。
【請求項２９】
前記ＡＴＭ集積回路の状態を報告し、前記ＡＴＭ集積回路のオペレーションに関連したエラーを報告するための回路をさらに備えた請求項１５に記載のＡＴＭアダプタ。
【請求項３０】
前記物理インターフェース回路をＵＴＯＰＩＡインターフェースに関連させるためのインターフェース回路をさらに備えた請求項１５に記載のＡＴＭアダプタ。
【請求項３１】
前記物理インターフェース回路が、さらに非パイプライン読み取りＵＴＯＰＩＡモードでオペレートするための回路をさらに備えた請求項１５に記載のＡＴＭアダプタ。
【請求項３２】
前記物理インターフェース回路が、さらに、非同期インターフェースモードでオペレートするための回路を備えた請求項１５に記載のＡＴＭアダプタ。
【請求項３３】
前記物理インターフェースの回路が、さらに前記物理インターフェース回路のオペレーショナルモードを制御するためのモード制御レジスタを備えた請求項１５に記載のＡＴＭアダプタ。
【請求項３４】
前記スレーブアクセス制御回路が、さらに、前記メモリ回路に関連したアダプタメモリと、前記ホストインターフェース回路により定められるアドレスに応答して前記ＡＴＭ集積回路内の内部レジスタに関連したメモリとアクセスするための回路を備えた請求項１５に記載のＡＴＭアダプタ。
【請求項３５】
前記集積回路が、バイトバースト、ハーフワードバースト、ワードバースト、２ワードバースト、４ワードバースト、８ワードバースト及び１６ワードバーストのタイプを持つローカルＡＴＭネットワークに応答するための回路を持つ請求項１５に記載のＡＴＭアダプタ。
【請求項３６】
前記ホストインターフェースが、完全バースト、前記ホストデバイスによりイグノアされるデータを持つ前記完全バーストの一部分を含む「ワイドメイビー」サイクルを生成するように関連する請求項１５に記載のＡＴＭアダプタ。
【請求項３７】
前記ホストインターフェース回路が、さらに破壊されたセルの複数の統計カウンタを維持するための統計回路を備えた請求項１５に記載のＡＴＭアダプタ。
【請求項３８】
前記ホストインターフェース回路がさらに、統計回路を備え、この統計回路が、オーバーフロー破壊カウンタから成る仮想チャネル識別子破壊カウンタを備えた請求項１５に記載のＡＴＭアダプタ。
【請求項３９】
前記ホストインターフェースが、さらに、割込み発生を処理するための割込み回路を備えた請求項１５に記載のＡＴＭアダプタ。
【請求項４０】
前記ホストインターフェース回路がさらに割込み回路を備え、この割込み回路が、さらに前記ＡＴＭ集積回路内のイベントから発生する割込みに応答するための回路と、前記物理インターフェース回路に関連した外部ソースから発生する割込みに応答するための回路とを備えた請求項１５に記載のＡＴＭアダプタ。
【請求項４１】
前記ＤＭＡ制御回路が、さらに前記セグメンテーションエンジンに関連した単一のセグメンテーションチャネル上のトラフィックのためのピークセル速度カウンタ回路に応答してトラフィックを決定するための回路を備えた請求項１５に記載のＡＴＭアダプタ。
【請求項４２】
前記ＤＭＡ制御回路がさらに、前記セグメンテーションエンジンに関連した複数のセグメンテーションチャネルを横断してトラフィックを決定するために、前記ＤＭＡ制御回路に関連したアービタ／マルチプレクサーを備えた請求項１５に記載のＡＴＭアダプタ。
【発明の詳細な説明】
発明の技術分野
本発明は一般的には、２点の間で電子データを転送し、かつ交換するデータ通信システム及び方法に関し、そして特に、ワークステーション又はデスクトップ環境でＡＴＭ能力を提供するための非同期転送モード（ＡＴＭ）アダプターに関する。
発明の背景
今日の電気通信及びデータ処理産業において、大量の情報の高速度、低コストの配布及び交換が非常に重要になっている。製造会社は、建物間でＣＡＤ／ＣＡＭ設計結果を配布する必要がある。出版会社は、レイアウトを電子的にデザインすることを求め、かつ異なる場所のグループの間でそれらを共有する。病院は、ほとんど実時間で、詳細な医療記録を共有することを望んでいる。最近まで、これらの活動の全てが、単一の建物、又はキャンパスに技術的に制約されていた。会社は、実時間ネットワーク技術を使うことによって制約を解除して、夜通しかけた急使の配達に取って代わる必要がある。また、データセンター整備に向かう傾向が民間及び政府の両方にある。組織は、リモートデータセンターからローカルなワークグループを管理することを望んでいる。彼らは、それをするためのネットワークを必要とし、かつ彼らはその全体の動作のための１つの故障点にはならないように彼らはこれらの新しい統一されたデータセンタをバックアップするためのネットワークを必要としている。
全てのこれらのアプリケーションが共通に有するものは、それらは、１．５４４Mbpsの通常のＴ１速度よりも高速でビットを通過させる必要があるということである。あるアプリケーションは、高速度を継続することを要求する。あるアプリケーションは、バーストを急速に配達することができるようにより帯域幅を必要とする。Ｔ１より遅い速度は、典型的にはワイドエリアネットワークに導入されているものである。これは、一般に使用される最も遅い速度が、例えばイーサネット環境における１０Mbpsであるローカルエリアとの不釣り合いを表している。しかしながら、より広い帯域幅のみの必要性は、新たな技術を正当化するには十分ではない。時分割多重（ＴＤＭ）は、１５５MbpsのＳＯＮＥＴ速度にまで効果的に増加する。ＴＤＭについての問題は、それが、要求された帯域幅を忠実に提供することができないということである。現在現れた新たなアプリケーションは、長いバースト間ギャップが続く大きなバーストビットとしてネットワークに持続される。
ＡＴＭは、適切に実施されるとき、他のユーザを中断させることなくバーストを伝送するために利用可能の帯域幅を確保することができる。また、バースト間の期間に他のユーザに利用可能の帯域幅を確保し、それによってほとんど実時間でアプリケーションを伝送する一方コスト−効率を維持することができる。
ＡＴＭ技術を使うネットワークの設計において、考慮を必要とする４つの要因がある。１）複雑性−複雑性はなくなっているように見えなければならない：ネットワークはできるだけ単純に維持されなければならない。２）経済性−繰り返し帯域幅及びオペレーションコストは包含されなければならない。３）伝送遅延−出発地から目的地に移動するためにかかる時間は短くなければならない。４）ユーザ要求−ネットワークの特性はアプリケーションにとって適切でなければならない。：それは、情報転送がほとんど実時間で生じるアプリケーションによって必要とされることがあるということを意味している。
ＡＴＭは、伝統的パケットスイッチングの長所である帯域幅効率を、回路スイッチングの長所である高処理能力、低遅延、及び透明性と組み合わせる。アプリケーショントラフィック（音声、データ、ビデオ、及び映像）は、ネットワークを横断して伝送するために５３バイトのセルに入れてカプセル化される。伝統的パケットスイッチングに対して、ＡＴＭ層ではエラー処理はなされないが、しかし付属のＤＴＥ装置における上位層プロトコルによって処理される。それ故、ＡＴＭセルは、低遅延のギガビット速度で、ハードウエアにおいてスイッチすることができる。低待ち時間及び高処理能力のために、ＡＴＭは協同ネットワーク上でこれらのアプリケーションをサポートする理想的な技術である。それは、ローカルエリアインターネットワーク接続のようなバーストデータ、及びＳＮＡ及びＸ．２５のような伝統的データと共に、音声及びビデオのような等時トラフィックをサポートすることができる。ＡＴＭのスケーラビリティは、今日の共有媒体ローカルエリアネットワーク（ＬＡＮ）に代わる魅力がある。
アクティブスピーチ又はペイロードデータのような意味ある情報のみがネットワークを横断して転送するためにＡＴＭセル内にカプセル化されるので、帯域幅リソースは効率的に使用される。アイドルフラグのための帯域幅リソース及び会話中の沈黙期間を無駄にしないことによって、ネットワークは、ワイドエリア施設をより良く利用するよう設計することができる。ＡＴＭネットワークは、多様なアプリケーションのサービス品質（ＱｏＳ）要求を維持しつつ、最小のコストで設計することができる。
継ぎ目のないネットワークの理想を達成するために克服しなければならない課題は、かなりのものである。第一に、ローカル対ワイドエリアネットワークのＡＴＭ配備を取り巻く相違がある。これらは、全体的ネットワーク解決策を提供するために相互運用しなければならないローカルエリアネットワーク及びワイドエリアネットワークプロダクトの実現に相違をもたらす。第二に、マルチベンダ相互運用性に対する要求がある。第三に、継ぎ目のないＡＴＭネットワークに移るとき考慮しなければならない経済的観点がある。
今日、ローカルエリアネットワークにおける焦点は、単にデータトラフィックに合わせられている。音声及びビデオは典型的には、ローカルエリアネットワークから完全に分離した特別の通信装置によって処理される。マルチメディアは、デスクトップへのＡＴＭのドライバの１つとして見られるけれども、現在のＡＴＭ・ＬＡＮは、ＬＡＮデータトラフィックのみのサポートに向けられている。他方、多様なトラフィックタイプは伝統的に、ワイドエリアにわたってサポートされてきた。これらのトラフィックタイプをそれらの特別の性能基準と効果的に統合するために、ＡＴＭ装置は、洗練された待ち行列、輻輳、及び経路アルゴリズムを包含しなければならない。
デスクトップツーデスクトップマルチメディアネットワーク接続を提供する継ぎ目のないネットワークは、将来の企業環境によって必要とされる高い性能及び柔軟性に合致する非常に魅力的な解決策である。しかしながら、現在まで、経済的に実用的な価格と所望レベルの性能の両方を有し、かつデスクトップ環境においてＡＴＭネットワーク能力を提供する方法、システム、或いはアーキテクチャーは存在しない。
従って、デスクトップ環境においてＡＴＭネットワーク能力を提供するシステムの必要性がある。
ローカルエリア及びワイドエリアネットワーク相互運用性、マルチベンダ相互運用性、及び製造及び実施における経済性の重要な考慮を満足的に取り組むＡＴＭ方法及びシステムの必要性がある。
ＡＴＭをデスクトップのもたらす際に価格と性能の両方の観点で要求に満足的に取り組む方法及びシステムの必要性がある。
発明の概要
従って、本発明は、ＡＴＭネットワーク環境において存在する制限を克服するか、又はかなり減少させるデスクトップアプリケーション用非同期転送モード（ＡＴＭ）アダプタを提供する。
本発明の１つの観点に従うと、ＡＴＭネットワークにインターフェースするためのアダプタを含むデスクトップアプリケーション用ＡＴＭアダプタが提供される。このアダプタは、ＡＴＭアプリケーション特定集積化回路（ＡＳＩＣ）を包含している。ＡＴＭ・ＡＳＩＣは、ホストインターフェース回路を使用するＳＢｕｓのようなデータバスとインターフェースすることができる。ホストインターフェース回路は、バスインターフェース、直接メモリアクセス即ちＤＭＡコントローラ及びスレーブアクセスコントローラを包含している。ＤＭＡコントローラは、ＡＴＭ・ＡＳＩＣ内のＤＭＡオペレーションを制御し、かつＲＡＭインターフェースアービタと関連している。スレーブアクセスコントローラは、ＳＢｕｓに進む割り込み回路及び統計回路の両方のオペレーションを制御する。ＲＡＭインターフェースアービタは、ＤＭＡコントローラ、スレーブアクセスコントロール回路、セグメンテーションエンジン、及び再組立エンジンの間の通信を仲裁する。ＲＡＭインターフェースアービタは、アダプタと関連したＲＡＭへのＲＡＭバスと通信する。セグメンテーションエンジンは、物理インターフェース回路を通して転送用のＡＴＭフォーマットにデータをセグメント分割する。物理インターフェース回路はまた、フォーマット化されたＡＴＭ情報を受け取り、かつその情報を再組立エンジンに送る。再組立エンジンは、ＡＴＭデータを再組立して、それをＲＡＭインターフェース／アービタ回路を通してＲＡＭバスに伝送する。ＲＡＭバスから、データは再び、ＲＡＭインターフェース／アービタを通してＤＭＡコントローラに、そしてホストバスインターフェースを通してＳＢｕｓに通過させることができる。
本発明は、デスクトップレベルで、ＡＴＭネットワークと経済的に、かつ高度の性能効率及びサービス品質でもって、通信する能力を含む多数の技術的利点を提供する。本発明は、ＡＴＭフォーマット及びプロトコルを使うローカルエリアネットワークでの動作と関連した多数の問題を解決する。
本発明が提供するより特別の技術的利点は、ＡＴＭ・ＡＳＩＣのＡＴＭ観点に関係している。例えば、ＡＴＭ・ＡＳＩＣは、所望のセグメンテーション及び再組立観点と共に、共通パート収束サブレイヤーのためのＡＡＬ５適合を提供する。ＡＴＭ・ＡＳＩＣは、オペレーション及び維持セルサポート、８つのセグメンテーションチャンネルの同時オペレーション、及び１０２４再組立オペレーションを提供する。仮想チャンネル識別子の１０ビット及び仮想パス識別子のゼロビットのためのサポートがまた、本発明のＡＴＭ・ＡＳＩＣによって提供される。さらに、ピークセル速度トラフィック決定サポートは、本発明の特に魅力的な技術的利点又は特徴である。本発明は、ステータス及びエラー報告能力を提供しつつ、非ＡＡＬ５トラフィックのためのサポートを提供する。本発明のこれら及び他の技術的利点及び特徴は、以下の詳細な説明を、関連した図と共に参照するときに明らかになるであろう。
【図面の簡単な説明】
本発明及びその使用モード及び利点は、以下の例示具体例の説明を、添付図面と関連して参照することにより最も良く理解される。
図１は、２端局間の通信の種々のＡＴＭプロトコル層で動作するＡＴＭ通信プロセスをプロトコルと共に概観する図である。
図２は、デスクトップにＡＴＭ通信を提供するローカルエリアネットワークの動作を概念的に示す図である。
図３は、本発明具体例のＡＴＭアダプタの一部を形成するアプリケーション特定集積化回路のブロック図である。
図４は、本発明具体例のモード制御レジスタビット位置を示すリストである。
図５〜図１８は、本発明具体例のレジスタビット、タイプ、デフォルト、名前、及び記述を詳細に示している。
図１９〜図２３は、本発明具体例のＲＡＭ、ＰＨＹ層、及びＥＥＰＲＯＭのためのタイミング図である。
図２４は、本発明具体例の絶対最小及び最大定格を詳細に示すリストである。
図２５は、本発明具体例の推奨された動作条件を提供するリストである。
図２６は、本発明具体例のアクセス、読み取り、及び書込時間範囲を示している。
図２７は、本発明具体例のレジスタの割り当てを概念的に示すメモリマップを含んでいる。
図２８は、本発明具体例のセグメンテーションエンジンのブロック図である。
図２９は、本発明具体例の８つのセグメンテーションチャンネルの概念的例示である。
図３０及び図３１は、本発明具体例において、それぞれＡＡＬ５及び非ＡＡＬ５セグメンテーションバッファのためのビット整列した内容を示している。
図３２は、本発明具体例のセグメンテーションコントロールブロックフィールド内容及び機能を記述するリストである。
図３３は、本発明具体例のためのＤＭＡ伝送待ち行列フィールドポインタを記述するリストである。
図３４は、本発明具体例のためのＤＭＡ伝送待ち行列の次の書込エリア及び現在の読み出しエリアへのＤＭＡ伝送待ち行列フィールドポインタを記述するリストである。
図３５は、本発明具体例のピークセル速度回路を形成するブロック図である。
図３６は、本発明具体例のピークセル速度値のリストを含んでいる。
図３７は、本発明具体例の可能なサイズ及びロケーションパラメータ値を示すリストを含んでいる。
図３８は、本発明具体例におけるセグメンテーション又は再組立待ち行列にアドレスするときの１９ビットアドレスの構成を例示している。
図３９は、本発明具体例が使用する再組立データ構成を概念的に例示している。
図４０は、本発明具体例のＶＣＩテーブルのフォーマットを示している。
図４１及び図４２はＡＡＬ５及び非ＡＡＬ５転送モードのための再組立バッファをそれぞれ示している。
図４３は、本発明具体例のためのサービスリストフォーマットを示している。
図４４は、本発明具体例のサービスリストへのポインタのリストを含んでいる。
図４５は、本発明具体例の再組立オペレーションのためのＤＭＡ受け取り待ち行列フォーマットを示している。
図４６は、本発明具体例のためのＤＭＡ受け取り待ち行列ポインタを記述するリストである。
図４７は、本発明具体例に適用可能のアプリケーション、ライブラリ、オペレーティングシステム、及びハードウエア機能をより一般的な用語で示している。
図４８〜図５１は、本発明具体例のためのホストインターフェースピン記述である。
発明の詳細な説明
本発明の例示具体例は、種々の要素の同一及び相当する部分に対して同じ数字が使われる図を参照することにより最も良く理解されるであろう。
図１は、通信する端局間の種々の層の通信で生じる機能と共にＡＴＭ通信プロセスの概観図を示している。ＡＴＭプロトコル層１０の枠組み内で、ＡＴＭプロトコルは、端局Ａと端局Ｂの間に通信パスを提供する。端局Ａは、例えば端局にすることができる一方、端局Ｂを、例えばワークステーション又は周辺装置、端局又はＢ−ＩＳＤＮスイッチにすることができる。それ故、プロトコル図１０は、ＡＴＭプロトコル層１４を使う端局Ｂに、端局ＡがＡＴＭプロトコル層１２を通して通信するとき存在する種々のプロトコルを表している。ファイバ又は撚り対接続１６は、端局Ａと端局Ｂの間の物理接続を表している。端局ＡのためのＡＴＭプロトコル層１２は上位層１８を含み、それを通して、ＡＴＭ適応層（ＡＡＬ）２０の間でサービスを生じる。ＡＡＬ層２０はＡＴＭ層２２にサービスし、かつそこからサービスを受け取る。ＡＴＭ層２２は物理層２４にサービスし、かつそこからサービスを受け取る。ファイバ又は撚り対接続１６は、端局Ａのための物理層２４を端局Ｂのための物理層２６と接続する。端局Ｂのために、物理層２６はＡＴＭ層２８にサービスし、かつそこからサービスを受け取る。ＡＴＭ層２８はＡＡＬ層３０にサービスし、かつそこからサービスを受け取る。上位層３２はＡＡＬ層３０にサービスし、かつそこからサービスを受け取る。
図１の層は、転送コントロールプロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）又は上位層１８における等価なサービスを含んでいる。ＡＡＬ層２０及び３０は、セグメンテーション、再組立、再組立エラー検出、及びメッセージ識別多重化のためのプロトコルを提供する。ＡＴＭ層２２及び２８は、セル多重化、セル中継、及びインターフェース識別のためのプロトコルを包含している。物理層２４及び２６は、物理媒体依存層３８及び４０と共に、転送収束層３４及び３６をそれぞれ包含している。ＡＴＭ層２２及び２８において、ヘッダエラーコントロール（ＨＥＣ）発生、ＨＥＣ照合、及びセルフレーミング回復プロトコルは、ＡＴＭ層２２及び２８で動作する。物理媒体依存サブレイヤー３８及び４０に、ビットタイミング及び物理媒体インターフェースプロトコルが現れる。
図１の端局Ａと端局Ｂの間の層のそれぞれにおいて、プロトコルはまた、ピアツーピアアドレッシングを可能にする。例えば、双方向矢印４２は、上位層１８及び３２の間に存在するピアツーピアプロトコルを示している。双方向矢印４４は、ＡＡＬ層２０とＡＡＬ層３０の間で交換される情報のために存在するプロトコルを示している。双方向矢印４６は、ＡＴＭ層２２とＡＴＭ層２８の間で交換制御される情報のために存在するピアツーピアプロトコルを示しており、かつ双方向矢印４８は、交換制御される物理層２４及び物理層２６情報のためのピアツーピアプロトコルを示している。
ＡＴＭに関して、３つのプレーンが存在する。（１）ユーザプレーン、（２）コントロールプレーン、及び（３）管理プレーンである。ユーザプレーンにおいて、エンドユーザ情報の転送が生じる。ユーザプレーンは、物理層２４及びＡＴＭ層２２から構成される。各エンドユーザアプリケーションのために、ＡＴＭプロトコルモデルはＡＡＬ層２０及び必要に応じて、高位層を包含している。コントロールプレーンは、交換サービスを提供するために必要な接続確立及びコントロール機能をサポートするために情報の転送を提供する。コントロールプレーンは、ＡＴＭ層２２及び物理層２４プロトコルを、ユーザプレーンと共有する。コントロールプレーンはまた、ＡＡＬプロトコル及び高位層シグナリングプロトコルを使用する。管理プレーンは、ユーザプレーンとコントロールプレーンの間で情報を交換するために、オペレーション及び管理（ＯＡＭ）機能及び能力を提供する。管理プレーンは、層管理及びプレーン管理のための管理機能を包含している。管理プレーンの管理機能の層は、プロトコル異常性における故障の検出を含んでいる。管理プレーン機能は、完成したシステムと関係した管理及び調整機能を包含している。
物理層２４は、端局Ａと端局Ｂの間のＡＴＭセルの伝送のためのファイバ又は撚り対１６へのアクセスを提供する。それは、物理媒体依存サブレイヤー３８及び４０内に存在する物理媒体に依存した方法と共に、転送収束サブレイヤー３４及び３６内にセルをマッピングするための方法を包含している。ＡＴＭ層２２及び２８は、エンドユーザロケーションの間でセルを伝送することを可能にする。
前述した層のそれぞれで生じるサービスをより完全に理解するために、ＩＴＵ−Ｔ勧告Ｘ．２１０、オープンシステムインターコネクション、レイヤーサービスディフォーメーション会議、ジュネーブ、スイス、１９８９；Ｔ１Ｓ１．５／９２−４１０、ブロードバンドＩＳＤＮ−ＡＴＭレイヤー機能性仕様書、１９９２年８月；ＡＴＭフォーラム、ＡＴＭユーザネットワークインターフェース仕様書、バージョン３．０、１９９３年８月；ＡＴＭフォーラム、ＡＴＭ・ＰＨＹデータパスインターフェース、レベル１−バージョン１．２２；サンマイクロシステムズ、ＳＢｕｓ仕様書Ｂ．Ｏ、１９９０；ＡＮＳＩ・Ｔ１．ＡＴＭ−１９９３、ブロードバンドＩＳＤＮ−ＡＴＭレイヤー機能性仕様書、ニューヨーク；を含む公知のＡＴＭ文書及び仕様書を参照することができる。上記文献及び標準の全ては、参照により明白にここに組み入れられる。さらに、そして、上記文献の用語の多くと一貫して、表１は、最小でも、規定されたものを含む一般的意味を有する用語を包含している。
0003673951.tif 000002
0003673951.tif 000003
0003673951.tif 000004
0003673951.tif 000005
図２は、本発明が取り組む通信ネットワークの一部を例示するためにデスクトップにＡＴＭ通信を提供するローカルエリアネットワークの動作を概念的に例示している。本発明は、ＡＴＭ接続のための情報交換及びコントロールを、その基礎として、包含する非常に効率のよいローカルエリアネットワークを可能にする。図２において、顧客サイト５０は、ＡＴＭスイッチ５４、ＡＴＭスイッチ５６、ＡＴＭスイッチ５８、及びＡＴＭスイッチ６０を有するローカルＡＴＭ基礎のネットワーク５２を包含している。
例において、ＡＴＭスイッチ５４は、インターフェース６２を通してＡＴＭスイッチ５６と、そしてインターフェース６４を通してＡＴＭスイッチ６０と接続することができる。同様に、ＡＴＭスイッチ５８は、インターフェース６６を通してＡＴＭスイッチ５６に、そしてインターフェース６８を通してＡＴＭスイッチ６０に接続することができる。ローカルＡＴＭ基礎のネットワークへの接続については、例えば、ユーザ端局７０をＡＴＭスイッチ５４に、ユーザ端局７２をＡＴＭスイッチ５６に、そしてユーザ端局７４をＡＴＭスイッチ５６に接続することができる。また、ＡＴＭスイッチ５６は、例えば、スーパーコンピュータ又はメモリ端局７８と同様に他の端局にすることのできるホスト７６に接続することができる。ＡＴＭスイッチ５８は、例えば、プリンタ又は他の端局にすることのできる周辺装置８２と同様にユーザ端局８０に接続することができる。
ローカルＡＴＭ基礎のネットワーク５２において、ＡＴＭスイッチ６０はまた、ユーザ端局８４に、（さらに非ＡＴＭワイドエリアネットワークに接続することのできるルータ８６に、そして、顧客サイト５０の外側のＡＴＭ／Ｂ−ＩＳＤＮ公衆ワイドエリアネットワーク８８に接続することができる。顧客サイト５０のローカルＡＴＭ環境が描く接続形態は、それ故、ＡＴＭスイッチ５４と端局７０の間のリンク９０のようなポイントツーポイントリンクを包含している。さらに、ローカルＡＴＭ環境５０は、ＡＴＭスイッチ５４とＡＴＭスイッチ５６の間のリンク６２のようなＡＴＭスイッチ間のインターフェースを包含している。さらに、ＡＴＭスイッチ６０とＡＴＭ／Ｂ−ＩＳＤＮ公衆ワイドエリアネットワーク８８の間のリンク９２は、ローカル環境とワイドエリアネットワーク環境の間のインターフェースを表している。この環境内で、本発明は、デスクトップツーデスクトップからＡＴＭ基礎の情報転送及び交換を可能にする。
本発明具体例は、いずれかのＳＢｕｓプラットフォームのための１５５．５２Mbpsアダプタを通してデスクトップにＡＴＭ能力を提供する。本発明具体例は、１５５．５２Mbpsのマルチモードファイバ又はカテゴリ５非シールド撚り対インターフェースのためにサンマイクロシステムズ、Ｉｎｃ．及び他のベンダによって製造されるもののようなＳＰＡＲＣ局及びＳＰＡＲＣサーバ用の１５５．５２MbpsＳＢｕｓアダプタにインターフェースする。本発明の他の具体例は、インテルＣｏｒｐ．のペンティアム及びＩＢＭのＰｏｗｅｒＰＣコンピュータで使用されるもののような周辺装置相互接続バス及びシリコングラフィックス，Ｉｎｃ．によるＧＩＯバスにＡＴＭ技術を適合させることができる。本発明具体例のアダプタはまた、カテゴリ３非シールド撚り対線上の５２Mbpsの中間範囲速度ＡＴＭをサポートすることができる。それ故、本発明は、異なるタイプのＡＴＭスイッチに適合することのできる多様な速度のアダプタのワイドアレイ、ホストバス、オペレーティングシステム及び物理層インターフェースに応用を有している。本発明具体例はまた、管理及びコール接続オペレーションのためにＡＴＭを使用するデスクトップアプリケーションを構成するためのアプリケーションプログラムインターフェースを包含している。
本発明具体例の重要な観点は、最小コストでＡＴＭ環境において性能を改善するＡＴＭアプリケーション特定集積化回路（ＡＳＩＣ）の機能性である。ＡＴＭ・ＡＳＩＣは、以下のものを含む多数の魅力的な特徴を包含している。（１）共通パート収束サブレイヤーのためのＡＡＬ５適合及びセグメンテーション及び再組立；（２）ＯＡＭセルサポート；（３）８つのセグメンテーション及び１０２４再組立の同時動作；（４）ＶＣＩアドレス空間の１０ビット、ＶＰＩの０ビット；（５）ピークセル速度トラフィック決定サポート；（６）ＡＴＭセルヘッダフィールドの挿入；（７）再組立バッファ割り当て及びホスト通知；（８）非ＡＡＬ５トラフィックのためのサポート；（９）ステータス及びエラー報告；（１０）ＵＴＯＰＩＡインターフェース；及び（１１）バスマスタＤＭＡ及びスレーブインターフェースを有するダイレクトＳＢｕｓインターフェースである。
図３は、本発明具体例がＡＴＭサービスをデスクトップに提供するために使用するＡＴＭアプリケーション特定集積化回路（ＡＴＭ・ＡＳＩＣ）１００のブロック図を示している。図３を参照すると、ＡＴＭ・ＡＳＩＣ１００は、双方向矢印１０２が示すようにＳＢｕｓとホストインターフェース１０６のバスインターフェース回路１０４の間で、ＳＢｕｓと通信する。ホストインターフェース１０６はまた、ＤＭＡコントローラ１０８及びスレーブアクセスコントロール１１０を包含している。ＤＭＡコントローラ１０８は、スレーブアクセスコントロール回路１１０と同様に、ＳＢｕｓインターフェース１０４と通信する。ホストインターフェース１０６から、ＤＭＡコントローラ１０８はＲＡＭインターフェース／アービタ１１２と通信する。スレーブアクセスコントロール回路１１０は、割り込み回路１１４と、また統計回路１１６と結合する。割り込み回路１１４はさらに、矢印１１８が示すように、ＳＢｕｓと結合する。統計ブロック１１６は、後述のように、破壊されたセルに関する統計を保存する。ＲＡＭインターフェース／アービタ回路１１２は、双方向矢印１２０が示すようにＲＡＭバスと通信する。さらに、ＲＡＭインターフェース／アービタ回路１１２は、ＤＭＡコントローラ１０８、スレーブアクセスコントロール回路１１０、セグメンテーションエンジン１２２、及び再組立エンジン１２４にインターフェースして、その間で信号を仲裁する。クロック発生器回路１２６は、矢印１２８が示すように、クロック入力を受け取る。セグメンテーションエンジン１２２から、出力は、物理（ＰＨＹ）インターフェース回路１３０に進む。ＰＨＹインターフェース回路１３０は、通信パス１３２を通して物理層との通信を提供する。
ＡＴＭ・ＡＳＩＣ１００において、バスインターフェース回路１０４を除く全ての回路は、クロック発生器回路１２６を通してアダプタボード上の外部オシレータからＡＴＭ・ＡＳＩＣ１００に供給される２５MHzのクロック速度で動作する。このクロックは、ＰＨＹインターフェース回路１３０及びＲＡＭインターフェース／アービタ回路１１２と共に、ＡＴＭ・ＡＳＩＣ１００内部の回路をクロックするために使用される。バスインターフェース回路１０４は、ＳＢｕｓインターフェース１０２からいかなる速度が供給されても動作する（例えば、１６−２５MHz、例えばサンマイクロシステムズ：”ＳＢｕｓ仕様書Ｂ．Ｏ．”、１９９０、参照）。プレシオクロナスインターフェースは、バスインターフェース回路１０４と、ＤＭＡコントローラ１０８及びスレーブアクセスコントロール回路１１０の間にある。ＡＴＭ・ＡＳＩＣの設計は、それが、全ての可能なバス速度で適切に機能し、かつメタスタビリティのようなプレシオクロナス問題によるデータの損失がないようにされる。
ＰＨＹインターフェース回路１３０は、外部物理層デバイスへの内部セルフローにインターフェースする。３つのモードのオペレーションが、本発明具体例のＰＨＹインターフェース回路１３０において行われる。それらは、以下のものを包含する。（１）ＡＴＭユニバーサルテストのためのユニバーサルテスト及びオペレーションＰｈｉインターフェース、及びＡＴＭ（ＵＴＯＰＩＡ）モードのためのオペレーション物理インターフェース（参照、ＡＴＭフォーラム：ＡＴＭ・ＰＨＹデータパスインターフェース、レベル１−−バージョン１．２２）；（２）非パイプライン読み取りＵＴＯＰＩＡモード；（３）ＰＭＣ−Ｓｉｅｒｒａ，ＳＵＮＩチップ、パートナンバＰＭ５３４５と適合可能である非同期インターフェースモード（参照、文書番号ＰＭＣ−９３０３０５Ｐ１、ブリティッシュコロンビア、バンクーバ，ＰＭＣＣＬにより発行）。
ＰＨＹインターフェース回路１３０のモードは、モードコントロールレジスタにより制御される。この動作モードは、ＰＨＹインターフェース回路１３０でハンドシェイク信号の機能を決定する。図４は、本発明具体例のモードコントロールレジスタビットフォーマットを示すリストを表している。モードコントロールレジスタは、ボードリセット中データバス上の値によってロードされる一方、リセット信号はボード内に入る。外部プルアップ及びプルダウン抵抗器が、必要な配列ステートに異なるコントロールビットを引き寄せるためにデータバス上で必要とされる。
レジスタの全てのビットが、図４のリストにおいて定義されている。８つの下位ビット上のプルアップ及びプルダウンは、もし適用可能であるならば、アダプタのためのドーターボード上に位置させることができるということに注意すべきである。これは、サポートされる異なるドーターボードインターフェースのためのＡＴＭ・ＡＳＩＣを自動的に配列するために使用することができる。本発明具体例において、実際のドーターボードはないということに注意すべきである。しかしながら、このようなドーターボードが実際に存在するかのように使用されるビットがある。そうすることがより経済的であるので、本発明具体例は、ドーターボードがあるかのように図４において若干のビットを使用する。図４のビットは、図５〜図１８に現れるレジスタ記述と関係している。これらのレジスタ記述は、本発明具体例のレジスタ内容及びレジスタの機能を列挙する。
図５は、ＰＨＹインターフェース回路１３０リセット／識別子レジスタ０ｘ００のための内容を記述する。図６は、割り込みステータスアクノリッジレジスタ０ｘ０１及び割り込みステータスレジスタ０ｘ０２のための内容を記述する。割り込みステータスレジスタ０ｘ０２及び割り込みステータスアクノリッジレジスタ０ｘ０１の間の相違は、ＳＵＮＩを読み取ることによって、かつ統計レジスタを読み取ることによってそれぞれ認知されなければならないＳＵＮＩ＿ＩＮＴ及びＳＴＡＴ＿ＯＶＦＬビットを除いて割り込みステータスアクノリッジレジスタを読み取るとき割り込みがクリアされる点にある。割り込みステータスレジスタ０ｘ０１を読み取るとき、割り込みは認知されない。図７は、割り込みイネーブルレジスタ０ｘ０３の内容を記述する。図８は、ＡＴＭ・ＡＳＩＣ１００のマスタコントロール／ステータスレジスタ０ｘ０４を詳述する。統計レジスタ０ｘ０５記述は図９に現れる一方、図１０は、サービス書込レジスタ０ｘ０６の記述を含んでいる。図１１、１２、１３、１４、及び１５において、レジスタ記述は、ＤＭＡアドレスレジスタ０ｘ０７、ＤＭＡ書込レジスタ０ｘ０８、及びＤＭＡ読み取りレジスタ０ｘ０９、ＤＭＡ書込レジスタ０ｘ０Ａ、及びＤＭＡ読み取りレジスタ０ｘ０Ｂのためにそれぞれ定義されている。図１６、１７、及び１８はそれぞれ、送信場所レジスタ（０ｘ１０＋（４＊チャンネル））、送信読み取りポインタレジスタ（０ｘ１１＋（４＊チャンネル））及び送信記述子スタートレジスタ（０ｘ１２＋（４＊チャンネル））の内容を記述する。図９〜１８において、本発明具体例のＡＴＭ・ＡＳＩＣ１００への参照として「中途」（Ｍｉｄｗａｙ）への参照がなされる。
図３に戻ると、本発明具体例において、ＰＨＹインターフェース回路１３０は、このレベルのオペレーションのために必要なコントロール及びクロックを有する８ビット幅である。セグメンテーションエンジン１２２は、各セルのＨＥＣバイトのためのプレースホルダとして余分のバイト、バイトナンバー５を発生する。ＰＨＹインターフェース回路１３０は、物理インターフェース１３２から受信するとき各セルのＨＥＣバイトを取り去る。受信方向において、ＰＨＹインターフェース回路１３０は、全速度オペレーションがＵＴＯＰＩＡモードで可能であるように１バイトＦＩＦＯを包含している。
ＲＸ−ＥＮＡＢＬＥコントロールビット（図８）がセットされないとき、ＰＨＹインターフェース回路１３０は、物理層チップからいかなる新たなバイトを読み取ることも不能にされる。ＴＸ＿ＥＮＡＢＬＥコントロールビット（図８参照）がセットされないとき、このブロックは、物理層チップにいかなる新たなバイトを書き込むことも不能にされる。
クロックソースとして外部クリスタルオシレータを接続するための１つのクロック入力ピンが備えられる。
ＲＡＭインターフェース／アービタ回路１１２は、ＡＴＭ・ＡＳＩＣ１００の外部のアダプタＳＲＡＭにインターフェースする。ＲＡＭインターフェース／アービタ回路１１２は、３２の双方向データピン、１９の出力アドレスピン、及びいくつかの出力イネーブル及びチップセレクト信号を有するＲＡＭバス１２０を包含している。これらは、図４８〜５１に詳述されている。最大アドレス可能のＲＡＭサイズは、（２メガバイトに相当する）５１２Ｋ×３２ビットである。ＲＡＭインターフェース／アービタ回路１１２は、ＲＡＭアクセスのタイプに基づいた３２ビットＲＡＭにおける個々のバイトへのアクセスを制御する。
ＲＡＭは、ＲＡＭバスインターフェース１２０を通して全速度２５MHz（即ち４０ns）でアクセスされる。本発明具体例のアクセス時間のより完全な理解のために、ＲＡＭ、空間を制御するＰＨＹ及びＥＥＰＲＯＭのためのタイミング図を提供して、これらの要素へのアクセスのために意図したタイミング関係を示す図１９〜２３を参照する。特に、ＲＡＭインターフェース／アービタ回路１１２のために、タイミング図１５０は読み取り／書込アクセス時間を示している。図２０は、ＲＡＭインターフェース回路１２２を通してＰＨＹインターフェース回路へのコントロールアクセスを示している。図２１は、コントロールアクセスタイミング図１５４を示している。タイミング図１５６は、ＥＥＰＲＯＭのためのＥＥＰＲＯＭ書込アクセス時間を示している。タイミング図１５８は、ＥＥＰＲＯＭのための読み取りアクセス時間を示している。図示のタイミング値は、最悪の条件の下で、また種々の負荷の下でも保証するということはできないけれども、本発明具体例は、これらの時間を成功的に近似する。本発明具体例の動作特性をより完全に理解するために、本発明具体例の絶対最大定格及び動作条件をそれぞれ詳述するリストを提供する図２４及び２５を今参照する。記載されたもの以上のストレスは、デバイスにダメージを与えることがある。これらは、ストレス定格のみであり、かつこれらの条件以下のこのデバイスの機能動作は意味していない。期間を延長して最大定格条件に曝すことは、端局信頼性に影響することがある。
図２６は、本発明具体例のためのアクセス、読み取り、及び書込時間範囲を提供する。さらに、このブロックは、マイクロプロセッサインターフェースチップ、ＥＥＰＲＯＭ、及びいかなるオンボード個別コントロールレジスタ等のようなＲＡＭバス上の他の外部デバイスへのインターフェースを提供する。これらのデバイスをアドレスするとき、ＲＡＭインターフェース／アービタ回路１１２は、本具体例においては、ＳＵＮＩである最低速予見デバイスに合致するためにこのサイクルを遅くするであろう。異なるデバイスへのアクセスサイクルは、上述の図１９〜２３に規定されるような異なるタイミング図を有している。
図２７は、本発明具体例におけるレジスタの割り当てを例示するメモリマップ２００である。ビット順序を例示する全ての図におけるように、図２７において、最上位ビットは左に位置し、かつ最下位ビットは右に位置している。ここで、ビット０は常に最下位ビットである。
図２７を簡単に参照すると、本発明具体例のアダプタのアダプタＲＡＭにおけるレジスタの割り当てのためのメモリマップ２００が示されている。特に、メモリマップ２００は、ホストから見たバイトアドレスを左側に示している。右側には、アダプタＲＡＭにおけるワードアドレスが現れる。左から右に３１〜０のビット順序である。このように、アドレス０ｘ００００００における始まりは、ブロック２０２が示すように、１６Ｋワード又は６４Ｋバイトを消費するＥＥＰＲＯＭ読み取りＦコードである。バイトアドレス０ｘ０１００００でブロック２０４は、ブロック２０４が示すように、１６Ｋワード又は６４Ｋバイトを消費するＥＥＰＲＯＭ読み取り／書込Ｆコードが現れる。ブロック２０２及び２０４は、ホストからＥＥＰＲＯＭにおけるアドレス可能の唯一のバイトである。次のブロック２０６及び２０８は、ＰＨＹインターフェース１３０チップレジスタを示している。このように、ブロック２０６は、最初の８ビット７〜０に対してバイトアドレス０ｘ０２００００で始まり、かつこれは、ＰＨＹチップレジスタのための有効情報を提供する。ビット８〜３１は、ブロック２０８から読み取られるとき未定義である。ブロック２０６及び２０８は、６４Ｋバイトを消費する。バイトアドレス０ｘ０３００００に、総計１６Ｋワードで外部レジスタのためのブロック２１０が現れる。ＡＴＭ・ＡＳＩＣ１００レジスタブロック２１２は、バイトアドレス０ｘ０４００００で始まり、かつ１６Ｋワードを消費する。
バイトアドレス０ｘ０４ＦＦＦＦで、アドレス空間における１．６９メガバイトギャップ２１４が始まる。その後、アダプタＲＡＭが始まる。メモリマップ２００において、アダプタＲＡＭは、ワードアドレス０ｘ０００００及び０ｘ７ＦＦＦＦによって制限されたメモリを包含している。アダプタＲＡＭは、ワードアドレス０ｘ２０００００から０ｘ３ＦＦＦＦＦまでのメモリを包含している。このアドレスで、ＶＣＩテーブルメモリの４Ｋワードが、ブロック２１６が示すように割り当てられる。バイトアドレス０ｘ２０４０００及びアダプタワードアドレス０ｘ０１０００で、ブロック２１８が示すように、ＤＭＡ受け取り待ち行列メモリの１Ｋワードが始まる。バイトアドレス０ｘ２０５０００及びアダプタワードアドレス０ｘ０１４００で始まるブロック２２０には、総計１ＫワードでＤＭＡ送信待ち行列メモリが現れる。次に、サービスリストブロック２２２は、バイトアドレス０ｘ２０２０００及びアダプタワードアドレス０ｘ０１８００で始まる１Ｋワードを割り当てる。
バイトアドレス０ｘ２０７０００及びワードアドレス０ｘ０１Ｃ００で、セグメンテーション及び再組立バッファメモリブロック２２４が始まる。セグメンテーション及び再組立バッファブロック２２４は、割り当てられないブロック２２６が始まるワードアドレス０ｘ０７ＦＦＦに対するバイトアドレス０ｘ２１ＦＦＦＦまで継続する。ブロック２２６は、バイトアドレス０ｘ２７ＦＦＦＦ（ワードアドレス０ｘ１ＦＦＦＦ）まで継続し、かつこの点で、割り当てられていないブロック２２８が始まり、かつ２メガバイトＲＡＭ最終バイトアドレスの０ｘ３ＦＦＦＦＦ及びワードアドレスの０ｘ７ＦＦＦＦまで継続する。これにより、メモリマップ２００のためのメモリの割り当てを終了する。
本発明具体例は、２度マップされるＥＥＰＲＯＭを包含している。１つのアドレス空間において、ＥＥＰＲＯＭは、読み取りのみとしてマップされ、かつ別のものにおいて、それは、読み取り／書込としてマップされる。ＥＥＰＲＯＭ上の２つの最下位アドレスピンは、指定されたＳＢｕｓライン１０２に直接接続され、ＥＥＰＲＯＭアドレスラインの残りは、ＲＡＭバス１２０アドレスラインに接続されている。
再び図３に戻ると、リセット中、ＲＡＭインターフェース／アービタ回路１１２は、ＲＡＭデータバス上のステートを内部モードコントロールレジスタにラッチするであろう。モードコントロールレジスタは、ＰＨＹインターフェース回路１３０のモードを制御し、かつ本発明具体例のＡＴＭアダプタのカード及びドーターカードのために識別子コードを提供する。ボード上で必要とされる全ては、適切なデータライン上のプルアップ及びプルダウン抵抗器である（これらのプルアップ／ダウンのいくつかは（もし適用できるならば）ドーターカード上に置かれる）。図４及び前記のその説明参照。
ＲＡＭインターフェース／アービタ回路１１２はまた、ＲＡＭへのアクセスを必要とする４つの争うＡＴＭ・ＡＳＩＣ１００回路の間のＲＡＭ仲裁を扱う。これらは、再組立エンジン１２４、セグメンテーションエンジン１２２、スレーブアクセスコントロール回路１１０、及びＤＭＡコントローラ１０８を包含している。本発明具体例において、最高の優先度が再組立エンジン１２４に与えられ、それからセグメンテーションエンジン１２２に、それからスレーブアクセスコントロール回路１１０に、そして最後にＤＭＡコントローラ１１０に与えられる。８００Mbpsのバス帯域幅は、１５５Mbpsの再組立エンジン１２４と１５５Mbpsのセグメンテーションエンジン１１２を一緒にした必要帯域幅よりもずっと大きいので、全ての回路が、混雑状況においてさえ、バス帯域幅の共有を得ることが保証されているということに注意すべきである。
本発明具体例のホストインターフェースブロック１０６は、サンマイクロシステムズ，ＩｎｃからのＳＢｕｓインターフェース標準を目標としている。しかしながら、前述したように、本発明の他の具体例は、シリコングラフィックス、ＩｎｃによるＧＩＯバス及びＥＩＳＡと共に、インテルＣｏｒｐ．のペンティアム及びＩＢＭのＰｏｗｅｒＰＣコンピュータにおいて使用されるもののような周辺装置相互接続バスに適応することができる。ＤＭＡ転送の全機能が、セグメンテーション及び再組立オペレーションと関連して以下にさらに後述する。ＡＴＭ・ＡＳＩＣ１００は、１６−２５MHzバス速度全範囲をサポートするために、いかなる外部回路もなくバス１０２を通して直接ＳＢｕｓにインターフェースされるであろう。本発明具体例によると、２つのタイプのアクセスがある。（１）スレーブアクセス、及び（２）ＤＭＡである。
ホストインターフェース回路１０６は、図２７のメモリマップに従うアドレスによってスレーブアクセスコントロール回路１１０を通して全ての内部ＡＴＭ・ＡＳＩＣ１００レジスタと共に、アダプタメモリ及びＲＡＭバス上の他のデバイスにアクセスできる。
ホストインターフェース回路１０６において、ＥＥＰＲＯＭ領域をアクセスするとき、複数バイトがサポートされる。この場合、ＡＴＭ・ＡＳＩＣ１００は、必要なとき、ホストにバスサイジングをさせるバイト認知信号を戻すであろう。ＡＴＭ・ＡＳＩＣ１００は、もしバーストデータリクエストによりアクセスされるならば、エラー認知信号を戻すであろう。他の何かをアクセスするとき、３２ビットワードアクセスのみがサポートされる。ＡＴＭ・ＡＳＩＣ１００は、もしバースト、バイト、或いはハーフワードサイズデータリクエストによりアクセスされるならば、エラー認知信号を戻すであろう。もし１ワードリクエストによりアクセスされるならば、ＡＴＭ・ＡＳＩＣ１００は、ワード認知信号を戻すであろう。このアドレス空間は、スロットアドレス空間内に包まれるであろう。
動作において、ＡＴＭ・ＡＳＩＣ１００は、再動作認知信号を戻さず、即ちＬＥＲＲｎ信号を出力する。ＡＴＭ・ＡＳＩＣ１００は、１サイクルで完了することのできない読み取り及び書込オペレーションで必要とされるとき、ウエイトステートを挿入するであろう。ＡＴＭ・ＡＳＩＣ１００は、書込時に潜在的にウエイトステートを除去する後書込を書込アクセス時にサポートする。後アドレスビットはＥＥＰＲＯＭに直接接続されるので、ＥＥＰＲＯＭに書き込むとき、後書込はサポートされない。書込の時代わりにウエイトステートが挿入されるであろう。
ＡＴＭ・ＡＳＩＣ１００は、ＤＭＡ転送が実行されるときバスマスタとして作用する。ＡＴＭ・ＡＳＩＣ１００は、バスリクエスト信号を出力し、ＢＧｎバス許可を待ち、それからＤＭＡを実行するであろう。もし再動作認知信号が受け取られるならば、ＡＴＭ・ＡＳＩＣ１００は、転送を再度指令する。もしワード認知を除くいずれかの他の認知が受け取られるならば、ＡＴＭ・ＡＳＩＣは、この同じサイクルを再動作させるであろう。もしこのＤＭＡ転送における再動作又は何らかのフューチャサイクルが再び失敗するならば、それは、マスタコントロールレジスタにおけるＤＭＡ・ＥＮＡＢＬＥビット（図８）をクリアすることによってこれ以上のＤＭＡオペレーションをロックするであろう。両方の場合に、ＤＭＡ・ＥＲＲ・ＡＣＫ割り込み指令が出される。ホストは、ＤＭＡアドレスレジスタにおけるバスエラーを生じたバーストスタートアドレスの仮想アドレスを読み取ることができる。
もしＬＥＲＲｎ信号が出されるならば、ＡＴＭ・ＡＳＩＣ１００は、前述のように、それがエラー認知であるかのように、もし可能ならばこのサイクルを再動作させるであろう。もし可能でないならば、ＡＴＭ・ＡＳＩＣ１００は、ＤＭＡ・ＥＮＡＢＬＥをクリアするが、しかし、次のサイクルを完了する後まではしない。いずれの場合においても、ＤＭＡ・ＬＥＲＲ・ＡＣＫ割り込みが発生するであろう。ＤＭＡ・ＡＤＤＲレジスタは、エラーを生じたバーストスタートアドレス、又はエラーに続くバーストのスタートアドレスのいずれかのアドレスを包含するであろう。
ＤＭＡ・ＥＮＡＢＬＥビットが、モードコントロールレジスタからの識別子（即ち、図３０の最初の４ビット）における不一致によりセグメンテーションエンジン１２２によってクリアされるならば、或いはＤＭＡ・ＥＮＡＢＬＥビットが伝送方向のＤＭＡオーバフローによりＤＭＡコントローラ１０８によってクリアされるならば、そのときホストインターフェース回路１０６は、もしあれば、現在のバス転送を終了させ、かつＤＭＡ・ＥＮＡＢＬＥビットがホストによってセットされるまでさらにＤＭＡオペレーションを一時中断する。
ＤＭＡ転送の動作は、読み取り及び書き込みＤＭＡとは異なる。ＡＴＭ・ＡＳＩＣ１００は、ＤＭＡ記述子にセットされたエンドビット（後述の図３３を参照）を有して、ＤＭＡ転送が完了する毎に方向を変化させるが、しかし、他方向にＤＭＡに何かがある場合のみである。ＡＴＭ・ＡＳＩＣ１００は、ホストにおいて次のものをアダプタ転送にサポートする：バイト、ハーフワード、ワード、２ワードバースト、４ワードバースト、８ワードバースト、及び１６ワードバーストである。ＤＭＡ記述子（図２９及び３３参照）は、転送タイプ及びソースアドレスが一致するようにセットアップされなければならない。さもなければ、転送は、バーストブロック内に包まれるであろう。特別の場合は、完全なバーストを出す「ワードメイビー」（Ｗｏｒｄｓ−Ｍａｙｂｅ）サイクルである。しかしながら、バーストの一部は、ＡＴＭ・ＡＳＩＣ１００により一方向で無視することができる。他方向において、バーストの一部は、ホストにより無視されるであろう。
転送されたデータは、バイト及びハーフワードを３２ビットワードに蓄積するバイトアライナーに書き込まれるであろう。これらは、ＤＭＡコントローラ１０８内部の１６ワードの深いＦＩＦＯに書き込まれるであろう。これとパラレルに、ＦＩＦＯは、ＲＡＭインターフェース／アービタ回路１１２を通してアダプタＲＡＭ内へ空にされるであろう。これは、時分割にＦＩＦＯを満たしかつ空にする１６ワードバーストをするときを除いて、当てはまることである。
アダプタ−ツー−ホスト転送において、ＡＴＭ・ＡＳＩＣ１００は、次の転送タイプをサポートする：ワード、２ワードバースト、４ワードバースト、８ワードバースト、及び１６ワードバーストである。ＤＭＡ記述子（図２９及び３３）は、転送タイプ及びソースアドレスが一致するようセットアップされなければならない。さもなければ、転送はバーストブロック内に包まれるであろう。特別の場合は、完全なバーストを出すが、しかしバーストの一部は無視されるデータを包含する「ワードメイビー」サイクルである。
アダプタメモリからのワードは、ＤＭＡコントローラ回路１０８内部の１６ワードの深いＦＩＦＯに満たされるであろう。これとパラレルに、ＦＩＦＯは、時分割にＦＩＦＯを満たしかつ空にする１６ワードバーストをする時を除いて、ワードが転送されるときＳＢｕｓ１０２上に、空にされるであろう。
統計回路１１６は、破壊されたセルの２つの統計カウンタ：（１）ＶＣＩ破壊カウンタ、及び（２）オーバフロー破壊カウンタ、を保持する。ＶＣＩ破壊カウンタは、受信したＶＣＩのためのＶＣＩエントリーが「破壊」にセットされたモードを有するために破壊される受信正常セル、又は受信ＶＣＩのためのＶＣＩエントリーが「破壊」にセットされたＰＴＩモードを有するために破壊されるＯＡＭセルの数をカウントするカウンタである。オーバフロー破壊カウンタは、再組立待ち行列における空間が不十分なために破壊される受信セルの数をカウントするカウンタである。このカウンタは、ＶＣＩ記述子ステートが破壊している全ての受信セルに対してインクリメントされるであろう。両方のカウンタは、１６ビット幅である。もしオーバフローが生じるならば、カウンタは、それらの可能な最大計数にある。両方のカウンタが、ホストによって読み取られるときゼロにリセットされる。もしいずれか或いは両方のカウンタが３２７６７を越えるならば（即ち、もし最上位ビットがセットされるならば）、そのときこれは、ＳＴＡＴ＿ＯＶＦＬ割り込みを発生させる。ＳＴＡＴ＿ＯＶＦＬ割り込みは、カウンタが読み取られかつそれによってホストによりリセットされるとき認知される。
割り込み回路１１４は、ホストへの割り込み発生を処理する。次のセクションにおいて、割り込みの発生とは、割り込みが割り込み回路１１４ブロックにリクエストされることを実際上意味している。それから、割り込み回路１１４は、割り込みのフィルター、及びホストへの実際の割り込みインターフェースを提供する。
２つのタイプの割り込みソースがある：（１）ＡＴＭ・ＡＳＩＣ１００におけるイベントにより生じた割り込み、及び（２）Ｓ＿ＩＮＴｎ入力ピンに結合された外部ソース（物理層チップ）からの割り込みにより生じた割り込みである。２つの割り込みステータスレジスタがスレーブアクセスコントロール回路１１０割り込みステータスレジスタ及び割り込みステータス認知信号レジスタを通しての読み取りアクセスのために利用可能である。前述の図６参照。
各割り込みソースは、割り込みイネーブルレジスタ（図７）においてイネーブル及びディスエーブルにすることができる。もしディスエーブルにされると、この割り込みソースは、ホストに割り込みを発生させないということを意味している。アクティブな割り込みソースをディスエーブルにすると、出された割り込み信号が取り除かれる。即ち、もしイネーブルにされたアクティブな割り込みが他にないならば、出された割り込み信号は取り除かれる。もし別のアクティブなイネーブルにしたソースがまだないならば、アクティブな割り込みソースをイネーブルにすると、割り込み信号が出されるであろう。ディスエーブルにされた割り込みはそれでもやはり現れるであろう。即ち、割り込みステータスレジスタ及び割り込みステータス認知信号レジスタにおいて、ビットは依然としてセットされるであろう。そして、割り込みステータス認知信号レジスタを読み取るとき割り込みは依然として認知されるであろう。
本発明具体例において、ホストが０．５msec又は約１msecの長さの間割り込みを不能にするようセットすることのできるタイマーがある。これは、次々に続いて多数のＰＤＵがあるとき、割り込みを不能にする。それから、サービスリストの読み取りは、多数の再組立オペレーションが完了したことを示している。それ故、これは、ＰＤＵ毎に割り込まれるよりもむしろ、多数のＰＤＵに対してＤＭＡをセットアップすることを可能にする。これは、本発明具体例の速度及び性能の両方を増加させる。これは、マスタコントロールレジスタにおける２つの配列ビットに書き込むことによって達成される。即ち、割り込み出力は、コントロールレジスタが書き込まれるときから始まる規定された期間不能にされるであろう。この構成は、割り込みの数及び結果をより正確に制御するためにホストによって使用することができる。
ＳＢｕｓ上には７つの可能な割り込みラインがある。マスタコントロールレジスタにおけるＩＮＴ・ＳＥＬＥＣＴビットが、割り込みピンのどれがＡＴＭ・ＡＳＩＣ１００によって使用されるかを決定する。ＩＮＴ・ＳＥＬＥＣＴは、また割り込みを全体的に不能にするために使用することができる。
図２８は、セグメンテーションエンジン１２２のブロック図を示している。セグメンテーションエンジン１２２には、アービタ回路２３２から入力を受け取るセグメンテーションコントローラ２３０がある。セグメンテーションコントローラ２３０は、サイクリック冗長チェック即ちＣＲＣ発生器２３４及びワードツーバイト回路２３６に入力を供給する。ＣＲＣ発生器２３４及びワードツーバイト回路２３６は、内部データバス２３８を通してＡＴＭ・ＡＳＩＣ１００の他の内部回路と通信する。アービタ回路２３２は、番号０〜７の８つのチャンネルを包含するＰＣＲ回路２４０と通信する。ＰＣＲ回路２４０はまた、内部データバス２３８と通信する。
図２８に示されるように、セグメンテーションエンジン１２２は、各セグメンテーションエンジンに１つの８つの同時セグメンテーションオペレーションに役立てることができる。各チャンネルは、別個のＰＣＲ速度を有することができる。チャンネル０は、残りの利用可能の帯域幅を使用するためにプログラムすることができる。このモードにおいて、チャンネル０は、利用可能のビット速度チャンネルとして参照される。ＡＴＭ・ＡＳＩＣ１００は、２つのタイプのトラフィック：ＡＡＬ５と非ＡＡＬ５にセグメント分割し、かつ送信することができる。非ＡＡＬ５トラフィックは、いかなる特殊な処理も実行されないとき、ＡＴＭ・ＡＳＩＣ１００に透明である。８つのチャンネルのいずれも、ＡＡＬ５・ＰＤＵの間でインターリーブされた非ＡＡＬ５セルを送ることができる。この方法は、同様にＯＡＭセルを送信するために使用される。非ＡＡＬ５セグメンテーションバッファは、常に１つのセルのみを包含する。送信のために、ＶＣＩアドレッシングの１０の下位ビットがサポートされる。ＧＦＣ、ＶＰＩ及びＶＣＩの６つの上位ビットがゼロに固定される。
図２９は、本発明具体例が使用するセグメンテーションデータ構造２５０を示している。ＤＭＡコントローラ１０８がオンにされて、ＤＭＡ送信待ち行列２２０からＤＭＡ記述子の読み取りを開始するとき、それはＤＭＡ記述子２５４を読み取る。これは、データがアダプタセグメンテーションバッファに移動させられるべきＤＭＡ記述子２５４からのホストアドレスを決定する。ＤＭＡ記述子２５４が包含するセグメンテーションコントロールレジスタが、ホストメモリデータがセグメンテーションバッファにＤＭＡされているポインタを含むという意味で、ＤＭＡ記述子２５４はチャンネル０〜７のコントロールを包含している。セグメンテーションコントロールレジスタは、ポインタをＤＭＡ記述子からホストアドレスに得て、かつそれは、そのアドレスが、そのチャンネルのためのセグメンテーションコントロールレジスタからアダプタ上のセグメンテーションバッファに移動されているアドレスを得る。それから、ＤＭＡプロセスが生じる。
それ故、図２９は、セグメンテーションコントロールブロックから３つのポインタを参照する。それらは、書込ポインタ、ＤＭＡポインタ、セグメンテーションバッファのトップのものであるＤＭＡ記述子ポインタ、及び読み取りポインタである。
セグメンテーションオペレーションのために、マスタコントロールレジスタにおけるＴＸ＿ＥＮＡＢＬＥビット（図８）は、リセット後クリアされるであろう。このビットがセットされないとき、ＰＨＹインターフェース回路１３０は、物理層チップに新たなデータを送ることから不能にされる。従って、セグメンテーションエンジン１２２は不能にされる。ＴＸ＿ＥＮＡＢＬＥビットは、マスタコントロールレジスタに書き込むことによってホストからセットすることができる。それは、ＡＴＭ・ＡＳＩＣ１００へのマスタリセットを実行することによってクリアすることができる。各セグメンテーションチャンネルに１つの、８つのセグメンテーション待ち行列２５２がある。各セグメンテーション待ち行列２５２は、転送のためにセグメント分割されるＰＤＵのために使用されるセグメンテーションバッファ２５６を記憶するための円形ＦＩＦＯとして使用される連続アダプタメモリのブロックである。
ホストは、セグメンテーションコントローラ回路２３０内のロケーション及びサイズフィールドを通してアダプタメモリにおけるロケーション及び各セグメンテーション待ち行列２５２のサイズを制御する。セグメンテーション待ち行列２５２のロケーションは、バッファサイズの整数倍であるアドレスと一致させなければならないということに注意すべきである。例えば、３２Ｋの待ち行列は、アドレス０、３２Ｋ、６４Ｋ、または９６Ｋ等に位置しなければならない。
図３０は、ＡＡＬ５オペレーションモードのためのセグメンテーションバッファ２５６を示している。セグメンテーションバッファ２５６は、セグメンテーションバッファ記述子部分２５８及びデータ部分２６０を包含している。セグメンテーションバッファ記述子２５８は、識別子フィールド２６２、モード又はＭビット２６４、プリスケール又はＰｒフィールド２６６及び速度分解又はＲａｔｅ・Ｒｅｓフィールド２６８を含んでいる。速度分解フィールド２６８に隣接して、未使用の８ビットフィールドがある。セルカウントフィールド２７０は次のフィールドである。ＶＣＩフィールド２７４、ＰＴＩフィールド２７６、及びＣＬＰフィールドがセグメンテーションバッファ記述子部分２５８を完成させると共に、セルヘッダは、未使用１８ビットフィールド２７３を包含する。データ部分２６０は、データセル２８０、ＰＤＵトレイラー２８２及びＣＲＣフィールド２８４を包含している。データフィールド２８０は、セルセグメント分割されるデータを包含している。ＰＤＵトレイラー２８２は、ＵＵフィールド２８６、ＣＰＩフィールド２８８、及び長さフィールド２９０を包含している。
図３１は、非ＡＡＬ５転送モードのためのセグメンテーションバッファ２５６’を包含している。セグメンテーションバッファ２５６と同様に、セグメンテーションバッファ２５６’は、バッファ記述子部分２５８及びデータ部分２６０’を包含している。セグメンテーションバッファ記述子部分２５８は、識別子フィールド２６２を含み、かつこれは、Ｍフィールド２６４、プリスケールフィールド２６６、速度分解フィールド２６８、及びセルカウントフィールド２７０が連続して続く。セグメンテーションバッファ記述子部分２５８の第二の３２ビットは、セルヘッダ２７２を形成し、かつＶＣＩフィールド２７４、ＰＴＩフィールド２７６及びＣＬＰフィールド２７８が続く未使用の１８ビットフィールド２７３を包含している。データフィールド２８０はまた、セグメンテーションバッファ２５６’に現れるが、しかしＰＤＵトレイラーもＣＲＣも非ＡＡＬ５転送モードのためには必要とされない。非ＡＡＬ５セグメンテーションバッファデータフィールドは常に４８バイトである一方、ＡＡＬ５セグメンテーションバッファは４８バイト毎に等しく分割可能であるということに注意すべきである。セグメンテーション待ち行列２５２におけるセグメンテーションバッファ２５６及び２５６’は、４ワードから、セグメンテーション待ち行列のサイズ、３２ビットに等しい１ワードまで、可変長である。セグメンテーションバッファ２５６及び２５６’は、セグメンテーション又は送信待ち行列のための限定されたメモリブロック２２０内のアダプタメモリアドレス空間内に収容することができる。
各セグメンテーションバッファ２５６における最初の２ワードは、セグメンテーションバッファ記述子部分２５８を形成し、残りのデータ部分２６０は、実際のデータを包含する。セグメンテーションバッファ２５６における最後の２つのワードは、ＰＤＵトレイラー２８２及びＣＲＣフィールド２８４である。
識別子フィールド２６２は、特別の目的を有している。それは、ホストによって書き込まれる４ビットパターンを提供する。この値は、ＡＴＭ・ＡＳＩＣ１００が新たなセグメンテーションを開始して、セグメンテーション待ち行列２５２が依然として同期しているということを確認するときはいつでもチェックされる。Ｍビット２６４は、転送のモードを特定する。もしＭビット２６４がＡＡＬ５にセットされるならば、そのときＡＴＭ・ＡＳＩＣ１００は、データフィールド２６０におけるＰＤＵ上のＡＡＬ５処理を実行するであろう。もしＭフィールド２６４ビットが非ＡＡＬ５にセットされるならば、そのときＡＴＭ・ＡＳＩＣ１００は、データフィールド２６０’を透明に、即ち、ＣＲＣフィールドの挿入もなく、セグメント分割し、そしてＰＴＩフィールド２７６のために異常なことは何も起こらない。Ｐｒフィールド２６６及びＲａｔｅ・Ｒｅｓフィールド２６８は、このＰＤＵをセグメント分割しかつ送信するとき使用されるであろうＰＣＲ速度を規定するプリスケール及び速度分解パラメータ値を保持する。セルカウントフィールド２７０は、データフィールドに包含されるセルの数を保持する。
ＶＣＩフィールド２７４は、各外出セルのヘッダにおいて使用される。ＧＦＣ、ＶＰＩ、及びＶＣＩにおける残りのビットは、外出セルのためにゼロにセットされる。ＰＴＩフィールド２７６は、各外出セルのヘッダにおいて使用される。しかしながら、Ｍフィールド２６４ビットがＡＡＬ５転送のためであり、ＰＴＩビット１であるとき、ＳＴＵビットがセグメンテーションコントローラ２３０によって制御され、かつこれは、最後のセルを除いて全てにゼロが挿入される。最後のセルで、ＣＬＰフィールド２７８が、各外出セルのヘッダにおいて使用される。
データフィールド２６０は、セルにセグメント分割されるＣＰＣＳ・ＰＤＵを包含している。データフィールド２６０は、長さにおいて、１２ワードの整数倍、或いは４８バイトである。即ち、ＣＰＣＳパディング、ＰＤＵトレイラー２８２、及びＣＲＣフィールド２８４を含んでいる。しかしながら、ＣＲＣフィールド２８４の内容はＡＴＭ・ＡＳＩＣ１００によって無視され、かつ上書きされて、その結果、ＣＲＣ計算が最後のセルとして伝送される。これらバイトは、図３０又は３１に示されるようにアダプタＲＡＭ内に記憶される。
ＵＵフィールド２８６、ＣＰＩフィールド２８８、及び長さフィールド２９０を含むＰＤＵトレイラーフィールド２８２は、データフィールド２６０における最後から２番目のワードである。ＰＤＵトレイラー２８２は、Ｍフィールド２６４ビットがＡＡＬ５モードのためにセットされるとき必要とされるのみである。ＣＲＣフィールド２８４は、データフィールド２６０の最後のワードである。ＡＴＭ・ＡＳＩＣ１００が、ＰＤＵのためにＣＲＣを計算するので、ＣＲＣフィールド２８４は、ＡＴＭ・ＡＳＩＣ１００によって無視される。ＣＲＣフィールド２８４はセグメンテーションバッファ２５６の一部であるが、しかし一般的に、セグメンテーションエンジンが正しいＣＲＣを計算しかつ送出するまで意味のないデータを包含している。各セグメンテーション待ち行列２５２（図２９参照）は、それと関連したＡＴＭ・ＡＳＩＣ１００レジスタ基礎のコントロールブロックを有している。図３２参照。マスタコントロールレジスタにおけるＴＸ＿ＬＯＣＫ＿ＭＯＤＥコントロールビット（図８参照）は、送信方向にＤＭＡがオーバフローした場合にＡＴＭ・ＡＳＩＣ１００のオペレーションを決定する。バッファにおけるデータはまだセグメント分割されていないので、ＤＭＡオーバフローは、ＤＭＡコントローラ１０８がセグメンテーションバッファ２５６にこれ以上のデータを書き込むことができないイベントとして定義される。これは、ＤＭＡ書込ポインタをセグメンテーションコントロール読み取りポインタと比較することによりＤＭＡコントローラ１０８によって検出される。この場合に、ＴＸ・ＤＭＡ・ＯＶＦＬ割り込みが発生するであろう。
ＴＸ＿ＬＯＣＫ＿ＭＯＤＥコントロールビットは、ＤＭＡオーバフローの場合にさらに何が起こるかを決定する。もしゼロにセットされるならば、ＤＭＡ転送は、セグメンテーションバッファ２５６に再び空間ができるまで中断されるであろう。これは、帯域幅よりも多くのデータを送信のために待ち行列に入れるためにホストにより使用することができる。この状態は、ホストバス上に待ち状態を生じないということに注意すべきである。それは、次のＤＭＡ転送が、空間ができるまで開始されないということを単に意味している。しかしながら、受信ＤＭＡは、このときに実行することはできない。
もしＴＸ＿ＬＯＣＫ＿ＭＯＤＥが１にセットされるならば、ＴＸ＿ＥＮＡＢＬＥ、ＲＸ＿ＥＮＡＢＬＥ、及びＤＭＡ＿ＥＮＡＢＬＥビット（図８）は、全てクリアされるであろう。これは、効果的にＡＴＭ・ＡＳＩＣ１００の動きを停止し、かつこれは、デバッグ目的のために有用である。
図３３は、ＤＭＡ送信待ち行列２２０のフォーマットを示している。ＤＭＡ送信待ち行列２２０は、６４ビットを使用するＤＭＡ記述子２５４を包含している。ＤＭＡ記述子２５４は、１６ビットを使用し、かつ未使用の７ビットフィールド３０２に隣接しているカウントフィールド３００を包含している。未使用フィールド３０２に隣接しているのは、３ビットチャンネル（Ｃｈａｎ）フィールド３０４である。エンドフィールド３０６はＣｈａｎフィールド３０４に隣接し、かつ未使用の１ビットフィールド３０８が続く。１ビットフィールド３０８に続いて、４ビットタイプフィールド３１０がある。ホストアドレスフィールド３１２が３２ビットを使用し、かつＤＭＡ記述子２５４の配列を完成させる。
ＤＭＡ送信待ち行列２２０は、５１２エンティティに相当するアダプタＲＡＭ内の１Ｋ×３２ビット円形待ち行列であり、かつアダプタメモリ内に固定ロケーションを有している。ＤＭＡ送信待ち行列２２０は、ホストからアダプタメモリにＤＭＡされるべきメモリブロックのリストを記述するＤＭＡ記述子２５４の待ち行列である。ホストは、何かが送信されるべきであるとき、待ち行列にＤＭＡ記述子２５４を入れる。ホストは、各ＰＤＵのためにいくつかのＤＭＡ記述子２５４をセットアップして、ＤＭＡ転送サイクルを最適化し、かつホストメモリ内のＰＤＵロケーションを一致させる。ＡＴＭ・ＡＳＩＣ１００のＤＭＡコントローラ１０８は、ＤＭＡ記述子２５４を待ち行列から外し、かつＤＭＡ転送をするためにセグメンテーションコントロールブロックにおける読み取りポインタ（ＲｅａｄＰｔｒ）及び記述子スタート（ＤｅｓｃｒＳｔａｒｔ）を使用する。
カウントフィールド３００は、なされるべき転送の数を包含している。もしタイプフィールド３１０が、「ワード」のための値を包含するならば、そのときカウントフィールド３１０はワードカウントを包含する。もしタイプフィールド３１０が「ハーフワード」のための値を包含するならば、そのときカウントフィールド３００は、ハーフワードカウントを包含する。もしタイプフィールド３１０が「バイト」のための値を包含するならば、そのときカウントフィールド３００は、バイトカウントを包含する。もしタイプフィールド３１０が２Ｗ、４Ｗ、８Ｗ、又は１６Ｗを包含するならば、そのときカウントフィールド３００は、２、４、８、又は１６によって分割されたワードカウントを包含する。もしタイプフィールド３１０が２ＷＭ、４ＷＭ、８ＷＭ、又は１６ＷＭの値を有するならば、そのときカウントフィールド３００は、指示されたタイプの単一バーストで実際に転送されるワードの数を表している。もしタイプフィールド３１０がＪＫ値を表す値を有しているならば、カウントフィールド３００の１５の下位ビットは、ＤＭＡ転送をする代わりにＤＭＡ書込ポインタにロードされるべき値を包含している。カウントフィールド３００値のゼロは、ＤＭＡが実行されないというということを意味している。しかしながら、ゼロに等しいカウントフィールド３００を持つＪＫは、依然としてロードされるであろう。
Ｃｈａｎフィールド３０４は、ホストメモリからＤＭＡされるべきであるセグメンテーション待ち行列２５２へのポインタを包含するセグメンテーションコントロールブロック（図３２）を識別する。
エンドフィールド３０６は、ＰＤＵの最後のＤＭＡブロックのためのＤＭＡ記述子２５４をセットアップするときホストによりセットされる。これは必要とされないが、しかし、もしこれらの転送タイプが使用されかつ異なるチャンネル又は送信及び受信方向が同じＰＤＵの中央で混合されるならばバイト又はハーフワードが失われるかもしれないので、推奨される。ブロックがアダプタメモリにＤＭＡされ、かつエンドフィールド３０６ビットがセットされるとき、これは、丁度ＤＭＡされたセグメンテーションバッファ２５６の終わりに、ＤｅｓｃｒＳｔａｒｔポインタを進める。これは、ＤＭＡ書込ポインタ内の値によってアダプタメモリをロードする。さらに、送信ＤＭＡ受信割り込みがホストを通して発生するであろう。ＤＭＡコントローラ１０８は、いずれかのＤＭＡ受信記述子がホストへのＤＭＡ転送の用意ができているかどうかを見るためにＤＭＡ受信待ち行列２１８をチェックするであろう。もしそうならば、ＤＭＡサイクルが始まるであろう。もしそうでないならば、ＤＭＡコントローラ１０８は、アイドルステートのホストに転送するであろう。さらに、ＴＸ・ＤＭＡ・ＣＯＭＰＬＥＴＥ割り込みがホストに発生するであろう。
タイプフィールド３１０は、予め定められた値に従いメモリブロック転送のために使用される転送タイプを決定する。例えば、もしタイプフィールド値がＪＫに等しいならば、これは、”単なる冗談”ＤＭＡであるということを意味している。この場合、カウントフィールド３００内の値は、メモリのブロックを効果的にスキップするためにＤＭＡ書込ポインタフィールドにロードされるであろう。もしタイプフィールド３１０が「バイト」に等しいならば、これは、８ビット転送が要求されるということを意味している。それから、カウントフィールド３００の内容は、バイト転送の数を決定する。もしタイプフィールド３１０がＨワードに等しいならば、これは、１６ビットのハーフワード転送が要求されるということを意味している。それから、カウントフィールド３００の内容は、ハーフワード転送の数を決定する。もしタイプフィールド３１０が「ワード」に等しいならば、これは、３２ビットワード転送が要求されるということを意味している。カウントフィールド３００の内容は、ワード転送の数を決定する。もしタイプフィールド３１０値が、２Ｗ、４Ｗ、８Ｗ、又は１６Ｗに等しいならば、これは、２、４、８、又は１６ワードのバーストが要求されるということを意味している。それから、カウントフィールド３００の内容は、バスとの数を決定する。
もしタイプフィールド３１０値が、２ＷＭ、４ＷＭ、８ＷＭ、又は１６ＷＭ（ＷＭは”ワードメイビー”を意味している）に等しいならば、これは、２、４、８、又は１６ワードの一つのバーストが要求されるということを意味している。カウントフィールド３００は、このバースト中に実際に転送されるべきワードの数の値を包含している。ＤＭＡされたデータは、バーストの残りのために無視されるであろう。
ホストアドレスフィールド３１２は、ＤＭＡ転送が開始するホストメモリにおけるソースアドレスを提供する。もしタイプフィールド３１０がＪＫ値を包含するならば、そのときホストアドレスフィールド３１２は無視される。
図３４は、ＡＴＭ・ＡＳＩＣ１００がＤＭＡ送信待ち行列２２０に向ける２つのポインタ、即ち、ＤＭＡＷｒ＿ＴＸ及びＤＭＡＲｄ＿ｔｘを例示するＤＭＡ送信待ち行列フィールドを説明するリストを示している。また、前述の図１４及び１５を参照。もしＤＭＡＷｒ＿ｔｘ及びＤＭＡＲｄ＿ｔｘが等しいならば、そのときＤＭＡ送信待ち行列２２０は空である。ホストは、ＤＭＡＷｒ＿ｔｘがＤＭＡＲｄ＿ｔｘに等しくなるようにＤＭＡＷｒ＿ｔｘをインクリメントしてはならない。ホストは、ＤＭＡＷＲ＿ｔｘポインタを待ち行列内の次のフリーロケーションに更新する前に全バッファのための記述子をセットアップすることが推奨されるということに注意すべきである。これは、受信ＤＭＡを実行することができる間に送信記述子のために待つアイドル時間を避けることである。ＪＫタイプＤＭＡ記述子を使う際に、カウントフィールド３００の全ての１５の下位ビットを、ロケーション及びサイズパラメータに関わらず、ＤＭＡコントローラ１０８によってＤＭＡ書込ポインタにロードされる。それ故、ホストは、使用されるべきでないカウントフィールド３００においていかなる高順位ビットもゼロにすることが要求される。
トラフィック決定は、ピークセル速度（ＰＣＲ）カウンタ回路３２２を使って各セグメンテーションチャンネル２５２上で、かつアービタ／マルチプレクサー２３２を使ってチャンネルを横断して実行される。異なるＰＣＲ速度を使う複数ＶＣＩはセグメンテーションチャンネル２４０を共有し、かつＰＤＵレベルで多重化される。セグメンテーションチャンネル２４０は、アービタ回路２３２を使ってセルレベルで一緒に多重化される。
本発明具体例において、チャンネル０は、他のチャンネルよりも低い優先度を有している。これは、利用可能のものよりも高い速度にチャンネル０がプログラムすることができるということを意味している。この場合、チャンネル０は、もし他のチャンネルがそれを使用しないならば、残りの帯域幅を得るのみであろう。それ故、チャンネル０はまた、利用可能のビット速度チャンネルとしてここでは参照される。
トラフィック決定のための２つのパラメータがある。（１）プリスケール、及び（２）速度分解である。これらパラメータは、ＰＤＵ転送の開始時にセグメンテーションコントロールブロック（図３２）にセグメンテーションバッファ記述子から送られる。プリスケールの２ビット及びＰＣＲ分解の６ビットがサポートされる。
アービタ回路２３２は全ての８つのチャンネルから値３３６を見て、最高値によってチャンネルに許可３３４を与える。チャンネル７は最高の優先度を有し、チャンネル０は最低の優先度を有している。チャンネル０は、アービタ回路２３２において、ゼロ又は１の値を有することができるのみである。もし全割り当て帯域幅がライン速度よりも高いならば、値３３６フィールドはオーバフローし、かつそれらの最大可能値となる。この場合に、ＰＣＲパラメータは保証することはできない。８つのチャンネル間の優先度は外出トラフィックの速度に影響しないということに注意すべきである。合計速度がライン速度よりも低い限り、速度はいかなるチャンネルにおいても保証される。しかしながら、外出トラフィックのバースト性に影響する。その程度に、低優先度チャンネルにおける高い帯域幅は、高い優先度チャンネルにおけるよりもバースト性があるであろう。
セグメンテーションバッファ２５６のプリスケールフィールド２６６は、プリスケーラ回路３８で使用されるプリスケール除数を、４、１６、１２８、又は２０４８のいずれかに限定する。これらの値は、高及び低ビット速度の両方で高いグラニュラリティを提供する。ＰＣＲ速度は、以下の公式を使って計算される。
ＰＣＲ［セル／秒］＝２５×１０6／プリスケール除数×（速度分解＋１）  （１）
ＰＣＲ［ビット／秒］＝２５×１０6×５３×８／プリスケール除数
×（速度分解＋１）                      （２）
図３６は、Ｐｒフィールド２６６値（即ち、プリスケール除数）及び速度分解フィールド２６８値の関数としていくつかの可能なＰＣＲ速度を示している。利用可能のビット速度チャンネル、即ちチャンネル０がある速度にプログラムされているとき、もし他の７つのチャンネルから十分な帯域幅が残されているならば、それはその速度で送信するだけである。送信される帯域幅の分配は、チャンネル１〜７のための合計割り当て帯域幅がライン速度を超えるとき未定義である。即ち、このアルゴリズムは、チャンネル０を除いて、ライン速度以上が割り当てられるとき、公正さを欠くことになる。
セグメンテーション待ち行列２５２及び再組立待ち行列（図３９〜４１）のサイズ及びロケーションは、ＶＣＩテーブル（図４０）におけるロケーション及びサイズパラメータ、及びセグメンテーションコントロールブロック（図３２）を使って制御される。これらのパラメータは、図３７が例示するプロセスに従って解釈される。
図３８は、本発明具体例がセグメンテーション待ち行列２５２又は再組立待ち行列（図３９）への１９ビットアドレスを如何に構成するかを示すコントロール図３４０を示している。コントロール図３４０において、ロケーションビット３４４及び１９ビットアドレス３４６と関連するオフセットビット３４２が現れる。このアドレスは、どんなポインタ又はカウンタであっても、データワードを指すために使用されるオフセット３４２、及びロケーション３４４から構成される。８つの下位ビットは常に、オフセットビット３４２における８つの下位ビットから引き出される。次の７ビットは、オフセットビット３４２又はロケーションビット３４４から引き出され、このライン分配は、サイズパラメータによって決定される。４つの上位ビットがロケーションビット３４４の上位ビットから引き出される。未使用ビットは、ＡＴＭ・ＡＳＩＣ１００によって無視される。
図３９は、ＡＴＭ・ＡＳＩＣ１００の再組立エンジン１２４が使用する再組立データ構造を例示している。重要な再組立データ構造は、ＶＣＩテーブル３５２である。ＶＣＩテーブル３５２は、ＤＭＡ受信待ち行列３５８からＤＭＡ記述子３５６を受信するＶＣＩ記述子３５４を包含している。さらに、ＶＣＩ記述子３５４は、サービスリスト３６２からＶＣＩ３６０を受信する。ＶＣＩテーブル３５２は、各ＶＣＩチャンネル３６４のために存在する。ＶＣＩ記述子３５４から、出力は再組立待ち行列３６６のような種々の組立待ち行列に進む。再組立待ち行列３６６は、再組立バッファ３６８を含む種々のバッファを包含している。
ＰＤＵが再組立バッファで再組立され、完了するとき、再組立エンジンは、そのＶＣＩのための再組立が完了したという情報によってサービスリストを更新するであろう。このサービスリストは、実質上ＶＣＩ番号である。ＶＣＩ番号は、ＶＣＩテーブルを指し、かつＶＣＩ番号のＶＣＩ記述子のためのオブジェクトロケーションを参照する。そのときに、ホストは、それが再組立される完了したＰＤＵを有するという情報によって割り込まれるであろう。それから、ホストはサービスリストを読み取り、かつどのＶＣＩが再組立されるかを決定する。それから、それは、ＶＣＩ記述子を読み取り、かつこれは、再組立が生じた読み取りポインタを包含している。それから、ホストは、ＶＣＩ記述子及びＤＭＡ記述子を読み取り、かつＰＤＵをホストに再組立するためにＤＭＡエンジンをオンにする。
それから、ホストは、読み取りポインタ及び記述子スタート値を包含するＶＣＩ記述子を読み取る。これらのフィールドは、ＤＭＡ記述子を構成するためにホストによって使用される。それ故、図３９の矢印は、参照を示すが、データフローを示しているのではない。
それ故、オペレーションのフローは、再組立エンジンがセルからデータを再組立するということである。いったん、この再組立がＰＤＵ上で完了すると、再組立エンジンは、ＶＣＩをサービスリストに入れる。これは、ホストに割り込みをかける。それから、ホストは、サービスリストを読み取り、ＶＣＩを探し出し、ＶＣＩ記述子を読み取り、アダプタからのＤＭＡがホストに進むまでＰＴＩモード及びサービスリストを見ることによってステータスをチェックする。読み取り記述子、読み取りポインタ、及びセルキャップはＤＭＡ記述子を構成するために使用される。
図３及び３９を参照すると、再組立エンジン１２４はＣＰＳＣ・ＰＤＵを再組立し、かつＤＭＡコントローラ１０８及びホストプロセッサと協力して作用する。再組立エンジン１２４は、１０２４までの同時再組立をサポートする。再組立される各ＶＣＩチャンネル３６４のために、再組立待ち行列３６６が、再組立プロセス用ワークスペースのために使用されるアダプタメモリに割り当てられる。ＡＴＭ・ＡＳＩＣ１００は、セル上でＡＡＬ５処理（ＣＲＣ−３２等）を受信されるとき実行する。各再組立待ち行列３６６において、再組立バッファ３６８は、各入来ＣＰＣＳ・ＰＤＵのために再組立エンジン１２４によって必要とされるとき割り当てられる。再組立待ち行列３６６は、アダプタメモリ内に実現される円形ＦＩＦＯデータ構造である。ホストは、再組立バッファ３６８がホストメモリにＤＭＡ転送をするための用意をしているとき割り込まれる。ホストは、再組立バッファ３６８の待ち行列からはずし、それをＤＭＡチェーンリストに加える。それから、ＤＭＡコントローラ１０８は、再組立バッファ３６８をホストメモリに転送し、かつホストに割り込みをかける。それから、再組立バッファ３６８は、ＤＭＡ転送が進むにつれて自由にされる。
ＡＴＭ・ＡＳＩＣ１００は、２つのタイプのトラフィック：（１）ＡＡＬ５、及び（２）非ＡＡＬ５を受信することができる。非ＡＡＬ５トラフィックは、特別な処理が実行されないので、基本的にはＡＴＭ・ＡＳＩＣ１００に透明である。各ＶＣＩ３６４は、ＡＡＬ５又は非ＡＡＬ５として配列することができる。さらに、ＡＴＭ・ＡＳＩＣ１００は、ＯＡＭフローのために使用される余分のＯＡＭ非ＡＡＬ５チャンネルを有している。この特別のＯＡＭチャンネルは、本発明具体例においては、ＶＣＩチャンネル３である。本発明具体例において、ＶＣＩチャンネル３はＵＮＩにおけるＦ５ＯＡＭフローのために既に予約されている。再組立エンジン１２４は、ＶＣＩアドレッシングの１０ビットをサポートしている。これらは、ＶＣＩフィールドの１０の下位ビットである。全ての他のＶＣＩ、ＧＦＣ及びＶＰＩビットは受信機によって無視される。このように、ＶＣＩ＝１０２５のセルは、ＶＣＩ＝１として処理されるであろう。特に図３９を参照すると、再組立プロセスのための再組立データ構造３５０が現れる。ＡＴＭ・ＡＳＩＣ１００及びホストによる再組立中に実行される手順は、詳細に後述する。ＡＴＭ・ＡＳＩＣ１００はまた、入来セルを処理するとき使用される内部ワークスペースを有している。
マスタコントロールレジスタにおけるＲＸ＿ＥＮＡＢＬＥビット（図８）は、リセット後、及びセグメンテーションエンジン１２２がソフトウエアバグを検出する場合にクリアされるであろう。このビットがクリアされるとき、ＰＨＹインターフェース回路１３０は、物理層チップから新たなデータを受信することから不能にされる。従って、再組立エンジン１２４は不能にされる。ＲＸ＿ＥＮＡＢＬＥビットは、マスタコントロールレジスタに書き込むことによりホストからセットすることができる。もしホストがこのビットをクリアしたいならば、これは、ＡＴＭ・ＡＳＩＣ１００へのマスタリセットを実行することによりなすことができる。
図４０は、ＶＣＩ記述子３５４を包含するＶＣＩテーブル３５２を詳細に示している。ＶＣＩ記述子３５４は、ＰＴＩモードフィールド３７２に隣接しているモードフィールド３７０を含む多数のフィールドを包含している。ロケーションフィールド３７４は１１ビットを含み、かつサイズフィールド３７６に隣接している。未使用１４ビットフィールド３７８はインサービスビット３８０からサイズフィールド３７６を分離する。ＶＣＩ記述子３５４内の他のフィールドは、１５ビット記述子スタートフィールド３８４に隣接している単一ビットフィールド３８２を包含している。単一ビットフィールド３８６は、読み取りポインタフィールド３８８から記述子スタートフィールド３８４を分離する。読み取りポインタ３８８の後に、単一ビット３９０があり、かつそれはそれ自身、書込ポインタ３９２に隣接している。書込ポインタフィールド３９２はステートフィールド３９４に隣接している。未使用３ビットフィールド３９６が１１ビットセルカウントフィールド３９８に隣接している。ＶＣＩ記述子３５４のさらなるフィールドは、３２ビットを含むＣＲＣ計算フィールドである。
ＶＣＩテーブル３５２は、異なるＶＣＩについての情報を記憶するために使用されるアダプタメモリにおける１０２４エントリテーブル（４Ｋ×３２ビット）であり、かつ前記の図２７のメモリマップ２００にはＶＣＩテーブルブロック２１６として現れる。ＶＣＩテーブル３５２へのオフセットは、直接に１０ビットＶＣＩである。
ＶＣＩテーブル３５２において、モードフィールド３７０は、この表におけるこのロケーションに相当するＶＣＩ番号の現在モードを識別する。例えば、もしモードフィールド３７０値が「破壊」のための値に等しいならば、そのときこのＶＣＩを持つ全ての入来セルが、１にセットされたＰＴＩビット２を持つセルを除いて破壊されるであろう。これは、ＰＴＩモードフィールド３７２によって制御される。もしモードフィールド３７０値がＡＡＬ５に等しいならば、そのときこのＶＣＩを持つ入来セルは、（ロケーション及びサイズによって識別することのできる）再組立待ち行列３６８において再組立されるであろう（或いは再組立中である）、そしてＡＡＬ５処理が実行される。さらに、もしモードフィールド３７０値が非ＡＡＬ５に等しいならば、そのときこのＶＣＩを持つ入来セルは、（ロケーション及びサイズによって識別される）再組立待ち行列に入れられるが、しかしＡＡＬ５処理は実行されない。
ＰＴＩモードフィールド３７２は、１にセットされたＰＴＩ（２）によって受信されたセルを持つのはどのＡＴＭ・ＡＳＩＣであるのかを識別する。セットされたセルヘッダ内のＰＴＩフィールドのビット２は、次の内の１つを意味している。（１）セグメントＦ５セル、（２）エンドツーエンドＦ５セル、（３）予約、又は（４）予約。もしＰＴＩフィールド３７２値が「破壊」値に等しいならば、そのとき、セットされたＰＴＩ（２）ビットを持つこのＶＣＩによって受信された全てのセルは、破壊されるであろう。もしＰＴＩフィールド３７２値が「保存」値に等しいならば、そのとき、セットされたＰＴＩ（２）ビットを持つこのＶＣＩによって受信された全てのセルは、後述するように、ＯＡＭチャンネルに向けられ、かつ処理されるであろう。
インサービスフィールド３８０は、ＶＣＩが現在サービスリスト（図４３）内に位置しているかどうかを識別する。
ステートフィールド３９４は、ＶＣＩの現在のステートを識別する。もしステートフィールド３９４値が「破壊」値に等しいならば、そのときこのＶＣＩを持つ入来セルは、ＰＤＵの最後のセルが受信されるまで破壊されるであろう。そして、この場合、ステートフィールド３９４値は「アイドル」値に変化するであろう。もしステートフィールド３９４値が、「再組立」値に等しいならば、そのとき、ＰＤＵは、このＶＣＩのためのロケーション及びサイズによって識別される再組立待ち行列においてこのＶＣＩのために再組立されている。もしステートフィールド３９４値が、「アイドル」値に等しいならば、そのとき、いかなるＰＤＵもこのＶＣＩのために現在再組立されていない。
モードフィールド３７０が「破壊」値を有するとき、ステートフィールド３９４値は、セルがこのＶＣＩのために破壊されるときはいつでも、「破壊」にセットされる。これは、ＰＴＩモードフィールド３７２が「破壊」値を有するとき、ＯＡＭセルを包含する。
ロケーションフィールド３７４は、相当する再組立待ち行列３６８アダプタメモリのアドレスロケーションの１１（までの）上位ビットである。サイズフィールド３７６は、図３８に示されるように、１９ビットアドレスを構成するためにＡＴＭ・ＡＳＩＣによって使用されるロケーションフィールド３７４におけるビット数を決定する。ロケーションフィールド３７４の７（までの）未使用下位ビットがゼロにセットされなければならない。サイズフィールド３７６はこれらのビットを決定する。
サイズフィールド３７６は、再組立待ち行列３６８のサイズを規定する。３２ビット倍の、２５６、５１２、１Ｋ、２Ｋ、４Ｋ、８Ｋ、１６Ｋ、及び３２Ｋ、即ち、１Ｋから１２８Ｋバイトまでを含む８つの異なるサイズが定義される。２５６が選択されるとき、ロケーションフィールド３７４の全てのビットが使用される。３２Ｋが選択されるとき、ロケーションフィールド３７４の４つの上位ビットのみが使用される。
書込ポインタフィールド３９２は、再組立待ち行列３６８内の次の再組立ワードによって上書きされる次のフリー３２ビットワードを指す。ＡＴＭ・ＡＳＩＣ１００は、オーバフローを避けるために各書込前に、書込ポインタフィールド３９２の値プラス１を、読み取りポインタフィールド３８８の値と比較する。このフィールドの７（までの）上位ビットが、ＡＴＭ・ＡＳＩＣ１００によって書き込まれるときゼロである。サイズフィールド３７６値は、これらのビットを決定する。読み取りポインタフィールド３８８は、再組立待ち行列３６８からホストメモリにＤＭＡされた最後の３２ビットワードを指す。読み取りポインタフィールド３８８値は、何もＤＭＡされないとき記述子スタートフィールド３８４値に等しい。このフィールドの７（までの）上位ビットは、ＡＴＭ・ＡＳＩＣ１００によって書き込まれるときゼロである。サイズフィールド３７６値は、これらのビットを決定する。
記述子スタートフィールド３８４は、現在再組立待ち行列３６６において再組立されている再組立バッファ記述子の開始点を（図４１及び４２参照）、或いはチャンネルがアイドルであるときアダプタメモリ内の次のフローロケーションを指す。ＡＴＭ・ＡＳＩＣ１００は、新たなＰＤＵ再組立を開始する前に、記述スタート＋１を読み取りポインタと比較する。記述子スタートフィールド３８４の７（までの）上位ビットは、ＡＴＭ・ＡＳＩＣ１００によって書き込まれるときゼロである。サイズフィールド３７６値は、これらのビットを決定する。
セルカウントフィールド３９８は、現在再組立されているＰＤＵのための一時的セルカウントを包含している。ＣＲＣ計算フィールド４００は、現在再組立されているＰＤＵのために計算されている一時的ＣＲＣ値を包含している。
本発明具体例において、ＶＣＩテーブルエントリ３は、それが、全てのＶＣＩからの全てのＦ５ＯＡＭセルのために使用されるという点で特別である。ＶＣＩ記述子内のＰＴＩモードフィールド３７４値が「保存」にセットされているとき、そのとき、入来ＯＡＭセルは、チャンネル３に向けられ、かつ非ＡＡＬ５セルとして処理される。このような場合に、モードフィールド３７０、ＰＴＩモードフィールド３７２、ステートフィールド３９４、セルカウントフィールド３９８、及びＶＣＩチャンネル３のためのＣＲＣ計算フィールド４００のための値は、ＡＴＭ・ＡＳＩＣ１００によっては使用されない。ＶＣＩチャンネル３値を有する入来セルは、モードフィールド３７０及びＰＴＩモードフィールド３７２の値を通して通常に制御される。また、このような場合に、モードフィールド３７０値は、「破壊」にセットされるべきであり、かつＰＴＩモードフィールド３７２値は、選択的に「破壊」にセットすることができる。或いは、ホストは、ＵＮＩ仕様書に従わないけれども、ＰＴＩモードフィールド３７２値を全てのＶＣＩのために「破壊」にセットすることによって、かつＶＣＩチャンネル３を通常チャンネルとして使用することによって全てのＯＡＭセルを無視することができる。
読み取り及び書込のためのＶＣＩ記述子へのアクセス特権はまた、本発明具体例によって制御される。例えば、再組立エンジン１２４は、ＶＣＩ記述子３５４の全てに読み取りアクセスを、かつインサービスフィールド３８０、書込ポインタフィールド３９２、記述子スタートフィールド３８４、ステートフィールド３９４、セルカウントフィールド３９８、及びＣＲＣ計算フィールド４００への書込アクセスを有している。しかしながら、再組立エンジン１２４は、読み取りポインタフィールド３８８、モードフィールド３７０、ＰＴＩモードフィールド３７２、ロケーションフィールド３７４、又はサイズフィールド３７６への書込アクセスは有していない。
ＤＭＡコントローラ１０８は、ＶＣＩ記述子３５４の全てに読み取りアクセスを有しているが、しかしロケーションフィールド３７４、サイズフィールド３７６、及び読み取りポインタフィールド３８８のみを使用するであろう。ＤＭＡコントローラ１０８は、読み取りポインタフィールド３８８へのみの書込アクセスを有している。
ホストは、ＶＣＩ記述子３５４の全てに読み取り及び書き込みアクセスを有しているが、しかし、ホストは、通常の受信手順中、インサービスフィールド３８０にのみ書き込むであろう。即ち、ホストは、モードフィールド３７０、ＰＴＩモードフィールド３７２、ロケーションフィールド３７４、及びサイズフィールド３７６の内容を、それらを変更することなく、実際上再書込するであろう。ホストが、ＶＣＩ記述子３５４を変更することを望むとき、それは、最初にモードフィールド３７０値を「破壊」値に変化させ、それから、ＡＴＭ・ＡＳＩＣ１００がこのＶＣＩのためのいかなるエントリももはや変更しないとみなす前に、ＡＴＭ・ＡＳＩＣ１００がセルを処理するためにかかる時間（２．７μｓｅｃ以下）待つ。さらに、ホストは、このＶＣＩのための全ての予定されたＤＭＡが完了するまで待つべきである。これは、ＤＭＡコントローラ１０８が平均時間で読み取りポインタを変化させるためである。ＶＣＩをオンにする前に、ホストは、ＶＣＩ記述子ステート変数をアイドルにセットし、かつＶＣＩ記述子−記述子スタート及びＶＣＩ記述子−読み取りポインタパラメータを含むパラメータを初期化する。それから、ホストは、モードフィールド値をＡＡＬ５又は非ＡＡＬ５に適切に変化させることができる。
メモリ内の３２ビット以下の部分書込オペレーションは、必要なコントロールラインをＲＡＭチップに出すことによってなされる。これは、ＲＡＭインターフェース／アービタ回路１１２によって制御されるが、しかし、これはホストにはどのようにも影響しない。ホストは、各オープンＶＣＩのための再組立待ち行列３６８を予約するであろう。各再組立待ち行列３６６は、入来セルがＰＤＵに再組立される再組立バッファ３６８を記憶するためにＦＩＦＯとして使用される隣接アダプタメモリのブロックである。ホストは、ＶＣＩ記述子３５４におけるロケーションフィールド３７４及びサイズフィールド３７６の値を通してアダプタメモリ内のロケーション及び各再組立待ち行列３６８のサイズを制御する。再組立待ち行列３６６のロケーションは、再組立バッファ３６８サイズの整数倍であるアドレスに一致するということに注意すべきである。例えば、３２Ｋ待ち行列が、アドレス０、又は３２Ｋ、又は６４Ｋ、又は９６Ｋ等に位置している。
図４１は、再組立バッファ記述子部分４０２及びデータ部分４０４を含む再組立バッファ３６８のフォーマットを示している。再組立バッファ記述子部分４０２は、セル損失優先（即ちＣＬＰ）フィールド４０８に隣接している識別子（即ちＩｄｅｎ）フィールド４０６を包含している。未使用７ビットフィールド４１０が続き、その後に、混雑履歴（即ちＣＥ）フィールド４１２が現れる。それから、未使用３ビットフィールド４１４の後に、単一ビット破壊（即ちＴ）フィールド４１６及びサイクリック冗長（即ちＣＲＣ）エラービット４１８が現れる。セルカウントフィールド４２０は、１１ビットを有し、かつ再組立バッファ記述子部分４０２を完了する。データ部分４０４は、データフィールド４２２及び受信トレイラ４２４を含んでいる。受信トレイラ４２４は、受信ＣＰＩフィールド４２８に隣接する受信ＵＵフィールド４２６を包含している。受信ＣＰＩフィールド４２８は、受信長さフィールド４３０に隣接する。受信ＣＲＣフィールド４３２は、受信トレイラ４２４の残りを形成する。
図４２は、非ＡＡＬ５モード転送のための再組立バッファ３６８’を示している。再組立バッファ３６８’は再組立バッファ部分４３４及びデータ部分４３６を含んでいる。図４１の再組立バッファ３６８の再組立バッファ記述子部分と４０２と同様に、再組立バッファ記述子部分４３４は、識別子フィールド４０６及びＴフィールド４１６を含んでいる。しかしながら、再組立バッファ記述子部分４３４は、ＣＬＰフィールド４０８、ＣＥフィールド４１２、ＣＲＣエラーフィールド４１８、又はセルカウントフィールド４２０を含まない。再組立バッファ３６８’のデータフィールド４３６において、また、３２ビットセルヘッダフィールド４３８が現れる。
再組立待ち行列３６６における再組立バッファ３６８及び３６８’は、１ワードから１組の複数ワード（１ワードは３２ビットに等しい）までの可変長である。ＡＡＬ５におけるＶＣＩのために、バッファは１２ワードのステップで書き込まれるであろう（１２ワードは、４８バイト又は１セルのペイロードに等しいということが思い起こされる）。非ＡＡＬ５モードにおけるＶＣＩのために、１３ワード（１３ワードは、５２バイト、又はＨＥＣ無しの１ＡＴＭセルに等しい）が、再組立バッファ３６８に書き込まれるであろう。再組立バッファ３６８及び３６８’は、再組立待ち行列３６６のための定義されたメモリブロック２２４（図２７）内のアダプタメモリアドレス空間に収容することができる。
再組立バッファにおける第一のワードは、再組立バッファ記述子４０２であり、残りのデータ部分４０４は実際のデータを包含する。再組立バッファ３６８において、Ｉｄｅｎフィールド４０６は一風変わった潜在的目的を有している。それはホストに、ＤＭＡされたバッファが受信ＰＤＵと同期しているということを確認する方法を提供する。ＡＴＭ・ＡＳＩＣ１００は、待ち行列における再組立を開始するときこのフィールドにユニーク値を書き込み、この値は、ホストにより選択的にチェックすることができる。ＣＬＰフィールド４０８は、セル損失優先ビットである。このビットは、ＰＤＵにおける受信セルのいずれかがセットされたＣＬＰビットを有するならば、セットされるであろう。このビットの内容は、非ＡＡＬ５モードにおけるＶＣＩに対して未定義である。ＣＥフィールド４１２は、混雑履歴ビットである。このビットは、もしＰＤＵにおける受信セルのいずれかがセットされたＰＴＩ（１）ビットを有するならば、セットされるであろう。このビットの内容は、非ＡＡＬ５モードにおけるＶＣＩに対して未定義である。Ｔフィールド４１６は、「破壊」ビットであり、かつもしセルカウントが「破壊」セルのカウントであるならば、セットされ、そしてデータフィールド４０４は空である。このような場合に、次のバッファ記述子は、この記述子のすぐ後に続くアドレスで開始する。Ｔフィールド４１６は再組立バッファ３６６におけるオーバーフローの場合にセットされるであろう。
ＣＲＣフィールド４１８は、受信ＰＤＵ・ＣＲＣ−３２がエラーを有していることを示すエラービットを包含している。このビットの内容は、非ＡＡＬ５モードにおけるＶＣＩに対して未定義である。このビットはまた、Ｔフィールド４１６ビットがセットされるとき未定義である。
セルカウントフィールド４２０は、データフィールド内に包含されるセルの数を保持している。もしＴビットがセットされるならば、そのとき、セルカウントフィールド４２０の値は、「破壊」セルのカウントである。ゼロのセルカウントフィールド４２０値は、一般的には生じない。セルカウントフィールド４２０値は、もしＶＣＩが非ＡＡＬ５モードにあるならば、或いはこれが、ＯＡＭのために使用されているＶＣＩチャンネル３であるならば、未定義である。
データフィールド４０４は、ＣＰＣＳトレイラと共にＣＰＣＳＰＤＵを包含する再組立セルペイロードを包含している。入来バイトは、図４１及び４２に示されるように、アダプタメモリ内に記憶されている。ＶＣＩが非ＡＡＬ５モードにあるとき、或いはＶＣＩチャンネルがＯＡＭセルのために使用されているチャンネル３であるならば、そのとき、データフィールドにおける最初の４バイトは、ＨＥＣフィールドを除くＡＴＭセルヘッダを包含するということに注意すべきである。
図４３は、サービス読み取りフィールド４４２及びサービス書込フィールド４４４を含むサービスリスト４４０フォーマットを示している。サービス読み取りフィールド４４２は、全てゼロから成るフィールド４４８に隣接しているＶＣＩ番号フィールド４４６を包含している。サービス書込フィールド４４９は、サービス読み取りフィールド４４２に続く。
サービスリスト４４０は、アダプタメモリにおける１Ｋエントリ円形リストであり、かつメモリマップ２００のブロック２２２を占有する（図２７）。サービスリスト４４０は、何かがＤＭＡのための待ち行列に入れる用意をしている故にホストによるサービスを待っているＶＣＩチャンネルのリストを提供する。ＡＴＭ・ＡＳＩＣ１００は、ＶＣＩが既にサービスリスト４４０に無ければ、それがＰＤＵの再組立を完了する毎に、或いは、非ＡＡＬ５モードにおいてセルを受信した後、１つのＶＣＩをリストに加える。これは、セット値を有するパラメータ、ＶＣＩ記述子．インサービス、によって示されている。ホストは、サービスリスト４４０からＶＣＩを読み取り、かつ再組立待ち行列３６６におけるＰＤＵのためのＤＭＡ受信待ち行列２１８における適切なエントリを発生する。ホストは、サービスリスト４４０からＶＣＩを取り除くときＶＣＩ記述子．インサービスパラメータビットをクリアすることが求められる。
サービスリスト４４０において、ＶＣＩ番号フィールド４４６は、０から１０２３に亘る１０ビット値である。サービスリスト４４０は、本発明具体例において、アダプタメモリにおいて１Ｋ×３２ビットとして実施される。図４４は、ＡＴＭ・ＡＳＩＣ１００ポインタをサービスリスト４４０に記述するテーブルを提供する。本発明具体例において、ホストはまた、サービスリスト４４０の初めに、サービス読み取りポインタを保持する。最大１０２４のサービスリスト４４０エントリのみを有することができるので、サービスリスト４４０におけるオーバフローのためのチェックをすることは要求されないということに注意すべきである。
ＶＣＩをサービスするときホストがしなければならない第一のことは、ＶＣＩ記述子のインサービスビットをクリアし、それからＶＣＩ記述子の記述子スタートパラメータを読み取ることであるということは、注目に値する。次に、ホストは、ＤＭＡプロセスをセットアップする。ＡＴＭ・ＡＳＩＣ１００が、インサービスクリアと記述子スタート読み取りの間に新たなＰＤＵを完了する場合に、ＡＴＭ・ＡＳＩＣ１００は、サービス書込ビットをインクリメントしながら、記述子のインサービスビットをセットし、かつサービスリスト４４０にＶＣＩを入れる。しかしながら、ホストは、新たな記述子スタートを読み取るので、ホストはＰＤＵを直ちに処理するであろう。これは、ホストが次の割り込みをサービスするために戻るとき、サービスすべき何もなくサービスリスト４４０には潜在的にエントリがあるということを意味している。ホストは、これを無視することが要求されるが、しかし依然として記述子インサービスビットをクリアする。
図４５は、ＤＭＡ受信待ち行列のためのフォーマット図４５０を示している。ＤＭＡ受信待ち行列フォーマット４５０は、カウントフィールド４５２を含むＤＭＡ記述子３５６を包含している。カウントフィールド４５２は、ＶＣＩフィールド４５４に隣接している。ＶＣＩフィールド４５４に隣接しているのは、エンドフィールド４５６である。未使用の１ビットフィールド４５８は、エンドフィールド４５６をタイプフィールド４６０から分離する。ＤＭＡ記述子３５６の残りの部分は、ホストアドレスフィールド４６２である。
ＤＭＡ受信待ち行列フォーマット４５０は、アダプタメモリにおける１Ｋ×３２ビットの円形待ち行列であり、かつこれは、本発明具体例においては、メモリマップ２００のブロック２１８を占有する（図２７）。ＤＭＡ受信待ち行列４５０は、本発明具体例のＡＴＭアダプタからホストメモリにＤＭＡされるメモリブロックのリストを記述するＤＭＡ記述子３５６の待ち行列である。ホストは、サービスリスト４４０からＶＣＩを読み出した後、ＤＭＡ受信待ち行列４５０にＤＭＡ記述子３５６を入れる。ホストは、各ＰＤＵのためにいくつかのＤＭＡ記述子３５６をセットアップして、ＤＭＡ転送サイクルを最適化し、かつホストメモリ内の予め定義されたロケーションにＰＤＵを適合させることができる。ＡＴＭ・ＡＳＩＣ１００のＤＭＡコントローラ１０８は、ＤＭＡ記述子３５６を待ち行列から外し、ＶＣＩ記述子．読み取りポインタを読み取り、そしてＤＭＡ転送をする。
ＤＭＡ受信待ち行列フォーマット４５０において、カウントフィールド４５２は、なされるべき転送の数を保持する。もしタイプフィールド４６０が「ワード」のための値を包含するならば、そのとき、カウントフィールド４５２は、「ワード」カウントを包含する。もしタイプフィールド４６０が２Ｗ、４Ｗ、８Ｗ、又は１６Ｗのための値を包含するならば、そのとき、カウントフィールド４５２は、２、４、８、又は１６によって割られたワードカウントを包含している。もしタイプフィールド４６０が２ＷＭ、４ＷＭ、８ＷＭ、又は１６ＷＭ（ＷＭはワードメイビーを意味している）のための値を包含するならば、そのとき、カウントフィールド４５２の下位ビットは、タイプが「Ｔｙｐｅ」の単一バーストで転送されるべきワード数を包含している。もしタイプフィールド４６０が値ＪＫを包含するならば、そのとき、カウントフィールド４５２における１５の下位ビットは、ＶＣＩ記述子３５４の読み取りポインタにロードされるべき値を包含する。ゼロに等しいカウントフィールド４５２値は、ＷＭサイクルを除いて、無効である。
ＶＣＩフィールド４５４は、ＤＭＡされるデータによって再組立待ち行列３６６を指すＶＣＩテーブル３５２エントリを識別する。ＶＣＩフィールド４５４は、ＤＭＡ記述子３５６以外の全てに対して無視され、かつこれには、セットされたエンドフィールド４５６ビットを持つＤＭＡ記述子が続き、或いはホストによってセットされているＤＭＡ・ＥＮＡＢＬＥが続く。エンドフィールド４５６は、ＰＤＵの最後のＤＭＡブロックのためのＤＭＡ記述子３５６をセットアップするときホストによりセットされる。本発明具体例において、ホストは、もしいくつかのＰＤＵが同じＶＣＩからＤＭＡされるならば、ＰＤＵ毎にエンドフィールド４５６ビットをセットしないように選ぶことができる。エンドフィールド４５６は、ＶＣＩのための最後のＤＭＡ記述子３５６においてセットされなければならない。それが値”真”を有するとき、このビットは、ＤＭＡコントローラ１０８にＤＭＡ送信待ち行列をチェックさせ、かつブロックがホストメモリにＤＭＡされたときホストにＲＸ・ＤＭＡ・ＣＯＭＰＬＥＴＥ（図６参照）割り込みを発生させる。
タイプフィールド４６０は、メモリブロック転送のために使用される転送タイプを決定する。もしタイプフィールド４６０における値がＪＫ値を有するならば、そのとき”単なる冗談”（Just Kidding）ＤＭＡが生じることがある。この場合カウントフィールド４５２における値は、読み取りポインタフィールド３８８にロードされるであろう。これは、ＤＭＡ転送を達成する代わりにメモリのブロックをスキップするために使用される。
もし、タイプフィールド４６０における値が「ワード」であるならば、そのとき３２ビットワード転送が行われ、カウントフィールド４５２における値がワード転送の数を決定する。もしタイプフィールド４６０における値が、２Ｗ、４Ｗ、８Ｗ、又は１６Ｗであるならば、そのとき、再組立バッファの包含する数は、カウントフィールド４５２の値がバッファの数を決定する。もしタイプフィールド４６０の値が、２ＷＭ、４ＷＭ、８ＷＭ、又は１６ＷＭ（ＷＭは、ワードメイビーを意味している）ならば、そのとき、２、４、８、又は１６ワードの単一バーストが生じることがあり、カウントフィールド４５２内の値がこのバースト中に事実上転送されるべきワード数を決定する。未定義データがこのバーストの残りのために転送されるであろう。もしタイプフィールド４６０が未定義パターンを包含するならば、そのとき、その結果は未定義である。
ホストアドレスフィールド４６２は、ＤＭＡ転送がスタートするホストメモリにおける目標アドレスである。もしタイプフィールド４６０がＪＫ値を包含するならば、そのとき、このフィールドは無視される。ＡＴＭ・ＡＳＩＣ１００は、ＤＭＡ受信待ち行列４５０への２つのポインタを有している。（１）ＤＭＡＷｒ＿ｒｘ（また図１２参照）、及び（２）ＤＭＡＲｄ＿ｒｘ（また図１３参照）である。これらは、特に図４６に記載されている。もしＤＭＡＷｒ＿ｒｘ及びＤＭＡＲｄ＿ｒｘが等しいならば、そのときＤＭＡ受信待ち行列４５０は空である。ホストは、ＤＭＡＷｒ＿ｒｘがＤＭＡＲｄ＿ｒｘに等しく成るようにＤＭＡＷｒ＿ｒｘをインクリメントしてはならない。
ホストは、待ち行列内の次の自由ロケーションにＤＭＡＷｒ＿ｒｘポインタを更新する前に全再組立３６６バッファのためのＤＭＡ記述子をセットアップすることが推奨される。これは、送信ＤＭＡが実行することができる間に受信記述子のために待つアイドル（休止）時間を避けることである。ＤＭＡ転送のバス特定情報のためのホストインターフェース回路１０６に関する図３及び関連した説明を参照のこと。
また、”ＪＫ”ＤＭＡを使うとき、カウントフィールド４５２の全ての１５の下位ビットが、ロケーションフィールド３７４及びサイズフィールド３７６値にかかわらず、ＤＭＡエンジン１２４によって読み取りポインタ３８８にロードされる。それ故、ホストは、使用されないカウントフィールド４５２におけるいかなる高順位ビットもゼロにすることが要求される。ＡＴＭ・ＡＳＩＣ１００はまた、現在処理されているＶＣＩ記述子３５４のいくつかのコピーを保持する。ＡＴＭ・ＡＳＩＣ１００は、それが必要とするものが何であっても読み取り、フィールドを更新し、そしてどんな変化があっても書き戻す。
図４７は、本発明具体例のＡＴＭネットワークインターフェースコントローラの一般的アーキテクチャを示している。アーキテクチャ５４０は、ユーティリティ及び機能アプリケーション５４２及び電気通信アプリケーション５４４のようなアプリケーションから構成される。これらのアプリケーションは、ＡＴＭ特定のＡＰＩ５４６、及びＡＴＭネットワークのための標準、又は一般的に使用されるＡＰＩ５４８と通信する。ＡＰＩは、種々のライブラリ内に保持することができる。オペレーティングシステムレベル５５０に、異なるオペレーティングモジュールが現れる。これらは、例えば、クラシックＩＰ又はＡＴＭドライバソフトウエア５５４と通信するＩＰプロトコルスタック５５２を包含する。ＡＴＭドライバ５５４上のクラシックＩＰは、ＡＴＭドライバ５５６と通信し、かつそれ自身、アダプタドライバ５５８と通信する。アダプタドライバ５５８と適切なＡＴＭアダプタハードウエア５６０の間で、情報は、オペレーティングシステム５５０から流れる。
オペレーション
次の説明は、本発明具体例によるセグメンテーション及び再組立手順中に行われることを例示している。セグメンテーション手順は、以下のイベントを包含している。（１）ホストがＤＭＡのためのＰＤＵを待ち行列に入れる。（２）ＡＴＭ・ＡＳＩＣがＤＭＡ送信待ち行列２２を読み取る。（３）ＡＴＭ・ＡＳＩＣ１００がＰＤＵをセグメント分割する。（４）ホストがエラー状態の何か或いはその存在を変更する。再組立手順は、以下のイベントを処理するための手順を包含している。ＡＴＭ・ＡＳＩＣ１００において通常のセルを受信。（２）ホストは、ＤＭＡ受信待ち行列４５０上の何かを待ち行列に入れる。（３）ＡＴＭ・ＡＳＩＣ１００は、メモリマップ２００のＤＭＡ受信待ち行列２１８を読み取る。（４）ＰＨＹインターフェース回路１３０を通してＯＡＭセルを受信。（５）ホストが何かを変更する。（６）不完全なセルを受信。イベント（１）〜（３）は、ＰＤＵが受信されかつホストメモリにＤＭＡされる前に一般的に次々と起こる。
前述のセグメンテーション手順の最初の３つは、ＰＤＵがアダプタメモリにＤＭＡされ、かつ最終的に送信される前に次々と起こる。最初のオペレーションの１つは、ホストによってＤＭＡのためのＰＤＵの待ち行列に入れることである。ホストがＰＤＵを送信することを望むとき、それは、アダプタメモリにＤＭＡされるべきセグメンテーションバッファ２５６のためのＤＭＡリストを作成する。全セグメンテーションバッファ２５６がホストメモリに記憶される必要はなく、かつ全てＤＭＡされる必要もない。
ホストは、スレーブアクセスを使ってＰＤＵトレイラ２８２を書き込むことができ、かつパッディング及びトレイラ部分は、ＪＫ記述子を使ってスキップすることができる。セグメンテーションバッファ記述子２５８は、ホストによる通常のスレーブアクセスを使って書き込むことができ、かつこの場合、ＪＫ・ＤＭＡ記述子はセットアップしなければならないであろう。原則として、セグメンテーションバッファ２５６の全体がホストにより手で書き込むことができ、かつ全ＰＤＵのためにＪＫ・ＤＭＡ記述子が必要とされるであろう。
特定のセグメンテーションチャンネルのために目標とされるＤＭＡ記述子２５４をセットアップするとき、ホストは、ＴＸ＿ＬＯＣＫ＿ＭＯＤＥ（図８参照）がセットされるか、又はクリアされるかどうかに依存して２つのオプションを有している。もしＴＸ＿ＬＯＣＫ＿ＭＯＤＥがセットされるならば、ホストは最初に、チャンネルのためのセグメンテーション待ち行列２５２内に空間があるかどうかを決定する。ホストは、存在する空間以上にＤＭＡのために待ち行列に入れないことが求められる。ホストは、ＤＭＡのために何が待ち行列に入れられたかの追跡を続けることによって、かつセグメンテーションチャンネルのためのセグメンテーションコントロールブロック（図３２）内の読み取りポインタ（図１７参照）を読み取ることによってこれをなし、セグメンテーションエンジン１２２がどこにあるのかを見ることができる。もしＤＭＡがオーバフローするならば、ＡＴＭ・ＡＳＩＣ１００は、（ＴＸ＿ＥＮＡＢＬＥ、ＲＸ＿ＥＮＡＢＬＥ、及びＤＭＡ＿ＥＮＡＢＬＥを使って）全てのものをロックし、かつデバッグ目的のためにＴＸ＿ＤＭＡ＿ＯＶＦＬ割り込みを発生する。
もし空間がないならば、ホストは、ＰＤＵがセグメンテーションを終了するときチャンネルからＴＸ＿ＣＯＭＰＬＥＴＥ割り込みを受信するまで待つことができる。他方、もし空間があるならば、かつもしＤＭＡＷｒ＿ｔｘ＋１がＤＭＡＲｄ＿ｔｘとは異なるならば、そのとき、ホストは、アドレスＤＭＡＷｒ＿ｔｘにＤＭＡ送信待ち行列２２０内のＤＭＡ記述子２５４をセットアップし、かつＤＭＡＷｒ＿ｔｘを前進させる。最後のＤＭＡ記述子２５４をセットアップするとき、ホストは、ＤＭＡ記述子２５４内のエンドビットを”真”にセットしなければならない。
もしＴＸ＿ＬＯＣＫ＿ＭＯＤＥがクリアされるならば、そのとき、もしＤＭＡＷｒ＿ｔｘ＋１がＤＭＡＲｄ＿ｔｘとは異なるならば、ホストはアドレスＤＭＡＷｒ＿ｔｘでＤＭＡ送信待ち行列２５０内のＤＭＡ記述子２５４をセットアップすることができ、かつＤＭＡＷｒ＿ｔｘを前進させる。最後のＤＭＡ記述子２５４をセットアップするとき、ホストは、記述子内のエンドフィールド３０６ビットを”真”にセットしなければならない。もしＤＭＡオーバフローが生じるならば、ＴＸ＿ＤＭＡ＿ＯＶＦＬ割り込みが発生し、かつＤＭＡ転送は、セグメンテーションバッファに再び空間ができるまで中断される。
両方の場合に、ホストは、ＤＭＡＷｒ＿ｔｘポインタを進める前に、ＤＭＡ記述子２５９を書き込むことが求められるということに注意すべきである。さもなければ、ＡＴＭ・ＡＳＩＣ１００は、ゴミのようなデータのＤＭＡを開始するかもしれない。また、ホストは、ＤＭＡＷｒ＿ｔｘポインタをセグメンテーション待ち行列２５２の次のフリーロケーションに更新する前に、全セグメンテーションバッファ２５６のために記述子をセットアップすることが推奨される。これは、受信ＤＭＡが実行中に、送信記述子を待つアイドル時間を避けることである。また、もしホストが全ＰＤＵを手でコピーすることを選択するならば、そのとき、ホストは、データをコピーする前にバッファに空間があるということを確かめることが要求される。
ＡＴＭ・ＡＳＩＣ１００が、ＤＭＡ送信待ち行列２２０を読み取るとき、ＡＴＭ・ＡＳＩＣ１００は、ＤＭＡＲｄ＿ｔｘ及びＤＭＡＷｒ＿ｔｘポインタを一致させることによりＤＭＡ送信待ち行列２２０を連続的にモニターするであろう。もしＤＭＡ送信待ち行列２２０内に何かが待ち行列として入れられ、かつもしＤＭＡコントローラ回路１０８がまだ別のＤＭＡ転送にかかわっていないならば、そのときＤＭＡ記述子２５４は待ち行列から読み取られる。
それから、ＡＴＭ・ＡＳＩＣ１００のＤＭＡコントローラ１０８は、実際のＤＭＡオペレーションをするために、読み取りＤＭＡ記述子２５４内の情報を使用する。ホストアドレスは、ホストメモリ内のソースアドレスを指すために使用され、カウントフィールド３００内の値はこのデータブロックのために必要とされる転送の数であり、チャンネルフィールド３０４値は、アダプタメモリを指すために使用されるＤＭＡ書込ポインタにロードされるセグメンテーションコントロール記述子スタートパラメータを識別する。エンドフィールド３０６値は、もし”真”にセットされるならば、ＤＭＡ転送が完了するときＴＸ＿ＤＭＡ＿ＣＯＭＰＬＥＴＥ割り込みを発生させ、かつセグメンテーションコントロール記述子スタートパラメータをＤＭＡ書込ポインタによってロードされるＤＭＡされたセグメンテーションバッファ２５６の終わりに進める。タイプフィールド３１０は、転送のタイプを識別する。例えば、もしタイプフィールド３１０値がＪＫにセットされるならば、それは、ＤＭＡ書込ポインタがカウントフィールド３００内の値によってロードされ、かつＤＭＡ転送が実際上実行されないということを意味している。ＡＴＭ・ＡＳＩＣ１００が各ＤＭＡ記述子２５４の処理を終了するとき、ＤＭＡＲｄ＿ｔｘポインタが処理されるべき次の記述子を指すためにインクリメントされる。
もしＤＭＡ転送中にバスエラーが生じるならば、そのとき、マスタコントロールレジスタにおけるＤＭＡ＿ＥＮＡＢＬＥビット（図８）がクリアされ、それによって、全てのＤＭＡオペレーションを不能にする。それから、ホストは、エラーに関連したＤＭＡ記述子２５４の内容を、例えばタイプＪＫに、変更することができ、それから、マスタコントロールレジスタに書き込むことによってＤＭＡを再イネーブルすることができる。さらに、ホストは、ＤＭＡアドレスレジスタにおける違反する仮想アドレスを読み取ることができる。
もしＤＭＡ転送中に、ＤＭＡ書込ポインタがチャンネルのための読み取りポインタにあまりに近くなるならば（”あまりに近く”とは、１ワードと３ワードの間として定義される）、そのとき、これは、ＤＭＡオーバフローであり、かつＴＸ＿ＤＭＡ＿ＯＶＦＬ割り込み（図８）が発生する。ＴＸ＿ＬＯＣＫ＿ＭＯＤＥがセットされる場合に、これは、ＴＸ＿ＥＮＡＢＬＥ、ＲＸ＿ＥＮＡＢＬＥ、及びＤＭＡ＿ＥＮＡＢＬＥビットをクリアさせる。これは、ＡＴＭ・ＡＳＩＣ１００のオペレーションを効果的に停止させる。それから、ホストは、悪くなったものをデバッグするためにスレーブ読み取りをし、かつオペレーションの開始のために、マスタリセットし、又は再イネーブルすることができる。本発明具体例において、リセットは、この点で推奨される。もしＴＸ＿ＬＯＣＫ＿ＭＯＤＥがクリアされるならば、これは、セグメンテーションバッファ２５６内に再び空間ができるまでＤＭＡ転送を中断させる。
セグメンテーションエンジン１２２が、記述子スタート及び読み取りポインタパラメータが異なる値を有するということを検出するとき、そしてもし、それがまだセグメント分割をしていなかったならば、それは、ピークセル速度回路２４０によって決定される速度でセグメンテーション待ち行列２５２においてセグメンテーションバッファ２５６のセグメント分割を開始するであろう。
この動作において、ＡＴＭ・ＡＳＩＣ１００は、セグメンテーションバッファ記述子２５８の第一ワードにおいて第一の読み取りをするであろう。もし識別子フィールド２６２が予期されたユニーク識別子とは異なるならば、ＡＴＭ・ＡＳＩＣ１００は、（ＴＸ＿ＥＮＡＢＬＥ、ＲＸ＿ＥＮＡＢＬＥ、及びＤＭＡ＿ＥＮＡＢＬＥを使って）ロックされ、かつＴＸ＿ＩＤＥＮ＿ＭＩＳＭＡＴＣＨ割り込み（図６）が発生する。もし識別子が予期したものと異ならないならば、ＶＣＩフィールド２７４、ＰＴＩフィールド２７６、ＣＬＰフィールド２７８は、Ｍフィールド２６４、Ｐｒフィールド２６６、Ｒａｔｅ・Ｒｅｓフィールド２６８、及びセルカウントフィールド２７６と共に、セグメンテーションコントロールブロック（図３２）にロードされ、かつ読み取りポインタが進められる。Ｍフィールド２６４は、次に何が起こるかを決定する。
もしＭフィールド２６４値がＡＡＬ５転送を示すならば、そのとき、ＰＤＵはＡＡＬ５ＰＤＵとしてセグメント分割される。ＣＲＣはまた、セグメンテーションコントロールブロックにおいて開始される。それから、ＰＤＵは、セグメンテーションコントロールブロックにおけるプリスケールフィールド２６６及び速度分解フィールド２６８により定義された速度で送信される。各セルが送られるとき、ＣＲＣフィールド２８４は更新され、かつセルカウントフィールド２７０はデクリメントされる。読み取りポインタは、アダプタＲＡＭ内の各読み取りワードに対してインクリメントされる。ＶＣＩフィールド２７４、ＰＴＩフィールド２７６、及びＣＬＰフィールド２７８は、各外出セルのヘッダにおいて使用される一方、ヘッダの残りは、１にセットされる。セルカウントフィールド２７０値がゼロに達するとき、最後のセルは、特別に処理される。セルヘッダ内のＰＴＩフィールド２７６ビットは、１にセットされ、かつＣＲＣの結果はセルの終わりに挿入される。
もしＭフィールドが非ＡＡＬ５値にセットされるならば、そのときセグメンテーションバッファ２５６’は、非ＡＡＬ５セルとして送ることができる。セルは、セグメンテーションコントロールブロック内のプリスケールフィールド２６６及び速度分解フィールド２６８によって定義された速度で送信される。読み取りポインタは、アダプタメモリ内の各読み取りワードのためにインクリメントされる。ＶＣＬフィールド２７４、ＰＴＩフィールド２７６、及びＣＬＰフィールド２７０は、各セルのヘッダにおいて使用される。ヘッダの残りはゼロにされる。
ホストは、送信方向に沿って完全なコントロールを固有に有している。ホストが、セグメンテーション待ち行列２５２のサイズ及び／又はロケーションを変化させたいとき、又はエラー状態が存在するとき、全ての予定されたＰＤＵが送信されるまでそれは最初待つべきである。ホストがロケーション／サイズを変化させるとき、ホストは、そのチャンネルのための第一のＤＭＡ記述子としてゼロのカウント値（即ち、アドレスゼロ）によってＪＫ・ＤＭＡサイクルを指令することが推奨される。また、ソフトウエアエラー状態が存在するとき、又はＲＡＭチップが故障するとき、例えば、ＡＴＭ・ＡＳＩＣ１００は、もしＤＭＡオーバフロー又は無効識別子フィールド２６２値が検出されるならばエラー割り込みを発生することができる。この場合、ＡＴＭ・ＡＳＩＣ１００はロックするが、依然としてソフトウエアデバッグ動作を可能にする。ＡＴＭ・ＡＳＩＣ１００は、この場合ＡＴＭ・ＡＳＩＣ１００リセットレジスタを使ってリセットされるべきである。
図３５は、ピークセル速度回路２４０の動作を例示している。ピークセル速度回路２４０は、内部レジスタバス２３８から入力を受け取り、かつその２ビットは、プリスケール回路３１４に進む一方、６ビットは速度分解回路３１６に進む。プリスケール回路３１４からの出力は、矢印３２０が示す２５MHzクロック信号と同様に、プリスケーラー３１８に進む。カウンタ３２２は、速度分解回路３１６及びプリスケーラー３１８から入力を受信する。カウンタ３２２は、ライン３２４を経てＡＮＤゲート３２６に出力する。ＡＮＤゲート３２６はまた、カウンタ回路３３０からＴＣ入力３２８を受け取る。ＡＮＤゲート３２６からの論理ＡＮＤ出力は、点３３２でカウンタ３３０にアップカウント信号として進む。カウンタ回路３３０はまた、許可信号３３４からダウン入力を受信して、アービタ回路２３２に出力値３３６を発生する。
以下の説明は、本発明具体例による再組立エンジン１２４のオペレーションに特に向けられる。ＡＴＭ・ＡＳＩＣ１００が正常セルを受信するとき、それは、受信したＶＣＩを受け取り、かつこれをアドレスとして使って、このＶＣＩについての記憶された情報を読み取るためにＶＣＩテーブル３５２のルックアップをする。第一に、それは、最初の３２ビットを読み取る。特別の例外は、受信セルＰＴＩ（２）がセットされているときである。その場合に、ＶＣＩ記述子ＰＴＩモードフィールド３７２は、セルが破壊されるべきか、又はチャンネル３に向けられるべきかを決定する。さもなければ、モードフィールド３７０は、何がセルに起こるかを決定する。例えば、もしモードフィールドが「破壊」にセットされているならば、そのとき、セルは破壊される。ＶＣＩ破壊カウンタはそれからインクリメントされる。さらに、ステートフィールド３９４は「破壊」にセットされて、セルがこのＶＣＩによって破壊されたホストを示す。
もしモードフィールド３７０値がＡＡＬ５に等しいならば、そのとき、セルはこのＶＣＩのために再組立待ち行列３６６において再組立される。ＶＣＩテーブル３５２において、記述子スタートフィールド３８４、読み取りポインタフィールド３８８、セルカウントフィールド、及びステートフィールドはＶＣＩ記述子３５４から内部ワーク空間に読み取られ、かつステートフィールド３９４のためのワーク値が、何がセルに起こるかを決定する。
もしステートフィールド３９４値が「アイドル」ならば、これは、このセルがＰＤＵの第一のセルでなければならないということを意味している。もし新たな再組立バッファ記述子４０２のための再組立待ち行列３６６内に空間があるならば、即ち、もし読み取りポインタフィールド３８８値が記述子スタートフィールド値プラス１とは異なるならば、そのとき、書込ポインタフィールド３９２のためのワーク値が記述子スタートフィールド３８４ワーク値にセットされ、ＣＲＣ計算フィールド４００ワーク値は初期化され、ワークセルカウントフィールド３９８がクリアされ、そしてステートフィールド３９４ワーク値がアイドルから再組立に変化させられる。それから、ＡＴＭ・ＡＳＩＣ１００は、Ｉｄｅｎフィールド４０６、ＣＬＰフィールド４０８、及び再組立バッファのＣＥフィールド４１２に値を書き込む。この動作において、ＣＬＰフィールド４０８及びＣＥフィールド４１２の内容は、セルヘッダから引き出される。それから、ＶＣＩテーブル３５２の書込ポインタフィールド３９２のワーク値は、インクリメントされる。それから、ＡＴＭ・ＡＳＩＣ１００は、今説明するように、正常な再組立オペレーションを実行する。
もし、再組立バッファ記述子４０２のための空間が不十分ならば、そのとき、ＡＴＭ・ＡＳＩＣはＶＣＩ記述子３５４に書き戻して、このセルがＰＤＵの唯一のセルであった場合を除いて、ステートフィールド３９４値を「破壊」にセットする。これは、セットされているＰＴＩ（０）によって決定される。もしセットされているならば、ステートフィールド３９４値は、アイドルから変化しない。さらに、オーバフロー破壊（図９参照）カウンタはインクリメントされる。
もしステートフィールド３９４値が「再組立」に等しいならば、そのとき、セルは、再組立バッファ３６８内に既に何があっても、再組立される。ＡＴＭ・ＡＳＩＣ１００は、ＶＣＩ記述子３５２の残りを内部ワーク空間に読み取り、かつ最初にセルヘッダを処理する。ＡＴＭ・ＡＳＩＣ１００は、セルヘッダ内の入来ＰＴＩ（１）ビット（混雑履歴）をチェックする。もしＰＴＩ（１）ビットがセットされているならば、ＡＴＭ・ＡＳＩＣ１００は、記述子スタートフィールド３８４の値が指す再組立バッファ記述子４０２のＣＬＰフィールド４０６及びＩｄｅｎフィールド４０６に書き戻すであろう。
それから、ＡＴＭ・ＡＳＩＣ１００は、セルヘッダ内の入来ＣＬＰフィールド４０８をチェックする。もしＣＬＰフィールド４０８ビットがセットされるならば、ＡＴＭ・ＡＳＩＣ１００は、記述子スタートフィールド３８４のワーク値によって指し示された再組立バッファ記述子４０２内のＩｄｅｎフィールド４０６及びＣＥフィールド４１２に書き戻すであろう。もしＣＥフィールド４１２及びＣＬＰフィールド４０８ビットの両方がセットされるならば、ＡＴＭ・ＡＳＩＣ１００は、この書込をパラレルに実行することができる。このステップの後、セルカウントフィールド３９８のワーク値は、１だけインクリメントされる。
セルペイロードがＰＨＹインターフェース回路１３０から受信されるとき、ＣＲＣ計算フィールド４００内の値が更新される。ＡＴＭ・ＡＳＩＣ１００は、書込ポインタフィールド３９２のワーク値プラス１を読み取りポインタフィールド３８８のワーク値と比較して、セルが再組立バッファ３６８に書き込まれているときオーバフローを避け、そして書込ポインタフィールド３９２のワーク値はインクリメントされる。もしオーバフローが書き込み動作中に生じるならば、そのとき、ステートフィールド３９４のワーク値は「破壊」に変化する。さらに、もしこれが、（セットされているＰＴＩ（０）ビットによって決定されるような）ＰＤＵの最後のセルであったならば、そのとき、ステートフィールド３９４のワーク値は、「アイドル」に変化し、かつセルの残りは破壊される。さらに、再組立バッファ記述子４０２におけるセルカウントフィールド４２０値は、セルカウントフィールド３９８のためのワーク値によって更新され、再組立バッファ記述子４０２におけるＴフィールド４１６はセットされ、かつ記述子スタートフィールド３８４のためのワーク値は、１だけインクリメントされる。もしインサービスフィールド３８０のためのワーク値がセットされないならば、そのときＶＣＩ記述子インサービスフラグは、フィールドの残りに書き込むことなくセットされ、かつＶＣＩは、サービス書込アドレス４４４でサービスリスト４４０に書き込まれる。それからサービス書込アドレス４４４はインクリメントされ、かつＡＴＭ・ＡＳＩＣ１００は、「サービス」割り込みを発生する。
もしオーバフローが生じなかったならば、そのとき、もし受信セルが（セットされているＰＴＩ（０）ビットによって決定されるような）ＰＤＵの最後だったならば、ステートフィールド３９４のワーク値は、「アイドル」に変化する。ＣＲＣ計算フィールド４００値は、受信セルのＰＤＵトレイラ内のＣＲＣフィールド値と比較され、かつ（エラーの存在又は不存在を示す）比較の結果は、再組立バッファ記述子４０２のＣＲＣエラーフィールド４１８に書き込まれる。さらに、Ｔフィールド４１６ビットがゼロにセットされ、かつ再組立バッファ記述子４０２内のセルカウントフィールド４２０は、セルカウントフィールド９８のためのワーク値にセットされる。記述子スタートフィールド３８４のためのワーク値は、書込ポインタフィールド３９２のワーク値にセットされる。もしインサービスフィールド３８０のワーク値がセットされないならば、そのときＶＣＩ記述子３５４インサービスフラグは、ワードの残りに書き込むことなく、セットされ、そしてＶＣＩは、サービス書込アドレス４４４でサービスリスト４４０に書き込まれる。それから、サービス書込アドレス４４４がインクリメントされ、かつＡＴＭ・ＡＳＩＣ１００が「サービス」割り込みを発生する。
これらのステップ後、書込ポインタフィールド３９２、ステートフィールド３９４、ＣＲＣ計算フィールド４００、及びセルカウントフィールド３９８がＶＣＩ記述子３５４に書き戻される。もし記述子スタート３８４の値が変化するならば、これはまた、書き戻されるが、しかし、読み取りポインタフィールド３８８に書き込むことはない。
本発明具体例において、割り込みに反応するホストは、更新されたデータポインタにのみアクセスが与えられるので、前述のシーケンスは重要でないということに注意すべきである。
もしステートフィールド３９４の値が、「破壊」であるならば、入来セルは破壊される。ＡＴＭ・ＡＳＩＣ１００は、このセルが、（ＰＴ（０）ビットがセットされているかどうかをテストすることによって）ＰＤＵ上の最後のセルであったかどうかを見るためにチェックする。もしそうならば、ステートフィールド３９４の値は、「アイドル」に変化させられる。さらに、ＶＣＩ−破壊（図９）カウンタがインクリメントされる。
もしモードフィールド３７０の値が非ＡＡＬ５であるならば、そのときＡＡＬ５処理は必要とされず、かつセルは、特別の１セルＰＤＵとして扱われる。それから、ＡＴＭ・ＡＳＩＣ１００は、ＶＣＩ記述子３５４の次の３２ビットを内部ワーク空間に読み取る。もし新たな再組立バッファ記述子４０２のための再組立待ち行列３６６内に空間があるならば（即ち、もし読み取りポインタフィールド３８８値が記述子スタートフィールド３８４値プラス１とは異なるならば）、そのとき、書込ポインタフィールド３９２のためのワーク値は、記述子スタートフィールド３８４のためのワーク値にセットされ、かつ書込ポインタイールド３９２値は、インクリメントされる。
もし再組立バッファ記述子４０２のための空間が不十分ならば、そのとき、ＡＴＭ・ＡＳＩＣ１００は、セルを破壊し、かつオーバフロー破壊カウンタ（図９）をインクリメントする。セルがＰＨＹインターフェース回路１３０から受信されるとき、ＡＴＭ・ＡＳＩＣ１００は、書込ポインタフィールド３９２プラス１のワーク値を、読み取りポインタフィールド３８８のワーク値と比較して、セルが再組立バッファ３９２に書き込まれているときオーバフローを避け、そして書込ポインタフィールド３９２のワーク値はインクリメントされる。非ＡＡＬ５モード転送に対して、セルヘッダは、ＨＥＣを除いて、再組立バッファ３６８のデータフィールド４０４の最初の４バイトに書き込まれる。
もしオーバフローが書き込み中に生じるならば、そのとき、セルの残りは破壊され、かつＩｄｅｎフィールド４０６が書き込まれ、再組立バッファ記述子４０２におけるＴフィールド４１６ビットがセットされ、そして、記述子フィールド３８４のワーク値が１だけインクリメントされる。もしインサービスフィールド３８０ビットのためのワーク値がセットされないならば、そのとき、ワードの残りに書き込むことなく、ＶＣＩ記述子３５４インサービスフラグがセットされ、かつＶＣＩがサービス書込アドレス４４４でサービスリスト４００に書き込まれる。それから、ＡＴＭ・ＡＳＩＣ１００は、サービス書込アドレス４４４をインクリメントし、かつ「サービス」割り込みを発生させる。
もしオーバフローが生じなかったならば、そのときＩｄｅｎフィールド４０６が書き込まれ、かつＴフィールド４１６ビットが再組立バッファ記述子４０２においてゼロにセットされる。記述子スタートフィールド３８４のワーク値は、書込ポインタフィールド３９２のワーク値にセットされる。もしインサービスフィールド３８０のためのワーク値がセットされないならば、そのとき、ワードの残りに書き込むことなく、ＶＣＩ記述子３５４インサービスフラグがセットされ、かつＶＣＩは、サービス書込アドレスでサービスリスト４４０に書き込まれる。ＡＴＭ・ＡＳＩＣ１００は、それからサービス書込アドレス４４４をインクリメントし、かつ「サービス」割り込みを発生させる。
最後に、記述子フィールド値は、読み取りポインタフィールド３８８に書き込むことなく、ＶＣＩ記述子３５４に書き戻される。再び、本発明の具体例においては、ホストが割り込みに反応するとき、それは更新されたデータポインタ及びフィールドにのみのアクセスを受信するので、上述のオペレーションのシーケンスは重要ではない。
ＡＴＭ・ＡＳＩＣ１００が、サービスリストに何かが移動したということを示す「サービス」割り込みを発生した後、この割り込みは、ホストに、サービスリストを空にさせ、必要なＤＭＡリストを作成させ、そして、ＤＭＡ受信待ち行列２１８上のＤＭＡ記述子３５６を待ち行列に入れる。次の説明は、このプロセスを述べている。
ホストは、ホストによって保持されているサービス読み取りアドレス４４２のポインタと、ＡＴＭ・ＡＳＩＣ１００によって保持されているサービス書込アドレス４４４を比較して、サービスリスト４４０が空でないということを確かめる。そのとき、ホストは、サービスリスト４４０におけるＶＣＩエントリを読み取り、かつ各エントリに対してサービス読み取りアドレス４４２のＶＣＩ番号４４６を１だけインクリメントする。この動作において、ホストは、最初にサービスされている各ＶＣＩのためのＶＣＩ記述子３５４インサービスビットをクリアする。インサービスビットのクリアは、ＶＣＩ記述子３５４の最初の３２ビットの全体を再書込することによってなされる。もしホストが、現在再組立されているＶＣＩのためのＶＣＩ記述子３５４内の最初のワードに書き込むならば、これは、インサービスビットがクリアされたと、再組立エンジン１２４にみなさせる。これは、ホストと再組立エンジン１２４の間の競争状態を避けるためである。ホストは、ＤＭＡのためにまだ予定されていなかった次の再組立バッファ記述子４０２を指す各アクティブＶＣＩチャンネルのためのポインタを再組立待ち行列３６６内に保持する。このポインタは、ホストスタート記述子と呼ばれる。ホストはまた、これらのステップのために他の同様なスキームを使用することができる。
ホストは、再組立バッファ３６８をアドレスするために、サービスリスト４４０から読み取られたＶＣＩのためのホストスタート記述子を使用する。それから、ホストは、再組立バッファ記述子４０２におけるフィールドを読み取って、再組立バッファ３６８におけるＰＤＵのステータス及び長さを決定すべきである。それから、ホストは、現在バッファの直後に続く次の再組立バッファ記述子の初めにホストスタート記述子パラメータを進めるであろう。取得された情報に基づいて、かつホストメモリ内の予約メモリエリアの構造及びセグメント分割に基づいて、ホストは再組立バッファ３６８のためのＤＭＡリストを構成する。ＤＭＡは、このＰＤＵのための合計した再組立バッファ３６８を包含しなければならないということに注意すべきである。しかしながら、これは、全バッファが常にＤＭＡされなければならないということを意味しない。もし適切ならば、”単なる冗談”ＤＭＡを使用することができる。
この再組立バッファ３６８のためのＤＭＡリストは、ＤＭＡ受信待ち行列４５０上に多数のＤＭＡ記述子３５６を待ち行列に入れることによって構成される。ホストは、ＤＭＡＷｒ＿ｒｘによって指示されたアドレスにＤＭＡ記述子３５６を書き込み、かつＤＭＡＷｒ＿ｒｘをインクリメントする。しかしながら、これは、ＤＭＡＷｒ＿ｒｘの値をＤＭＡＲｄ＿ｒｘ＋１の値と比較して、それがオーバフローしないということを確かめた後、生じる。もしこの記述子によって識別された特別のブロックがＤＭＡされないならば、ホストは、タイプフィールド４６０の値をＪＫ（単なる冗談）に、それ故、プログラムカウントフィールド４５２をセットするであろう。ＶＣＩ番号は、ＤＭＡ記述子３５６のＶＣＩフィールド４５４に書き込まれる。本発明具体例においてＤＭＡＷｒ＿ｒｘポインタを進める前に、ホストは、ＤＭＡ記述子３５６を書き込むことが要求されるということに注意すべきである。これは、ＡＴＭ・ＡＳＩＣ１００がゴミデータのＤＭＡを開始するのを防ぐ。また、ＤＭＡＷｒ＿ｒｘポインタを待ち行列内の次のフリーロケーションに更新する前に、ホストは、全再組立３６８バッファのためのＤＭＡ記述子３５４をセットアップすることが推奨される。これは、送信ＤＭＡを実行することができる間に受信記述子を待つアイドル時間を避けるためである。
最後に、ホストは、記述子スタートフィールド３８４のためのＶＣＩ記述子３５４値と、ホストスタート記述子パラメータ値を比較する。もしそれらが等しくないならば、別の再組立バッファ３６８がＤＭＡされる用意をし、かつホストはこの再組立バッファ３６８を同様にサービスしなければならない。
ＡＴＭ・ＡＳＩＣ１００は、ＤＭＡＲｄ＿ｒｘ及びＤＭＡＷｒ＿ｒｘポインタを比較することによってＤＭＡ受信待ち行列４５０を連続的にモニターする。もし何かがＤＭＡ受信待ち行列４５０に入れられ、かつもしＤＭＡコントローラ１０８が別のＤＭＡ転送にまだかかわっていないならば、そのとき、ＤＭＡ記述子はＤＭＡ受信待ち行列４５０から読み取られる。
これが生じるとき、ＤＭＡコントローラ１０８は、実際のＤＭＡオペレーションをするために、読み取ったＤＭＡ記述子３５６内の情報を使用する。ホストアドレスは、ホストメモリ内の目標アドレスを指すために使用され、そのときカウントフィールド４５２の値は、このデータブロックのために必要とされる転送の数であり、ＶＣＩフィールド４５４の値は、アダプタメモリを指すために使用される読み取りポインタフィールド３８８からＶＣＩ記述子を識別する。この値は、内部カウンタに書き込まれ、各転送のためにインクリメントされ、そして、各処理されたＤＭＡ記述子のためのＶＣＩ記述子３５４の読み取りポインタフィールド３８８に書き戻される。エンドフィールド４５６は、もし”真”値にセットされるならば、ＤＭＡ転送が完了するとき、ＲＸ・ＤＭＡ・ＣＯＭＰＬＥＴＥ割り込みを発生させる。タイプフィールド４６０は、転送のタイプを識別する。もしタイプフィールド４６０値がＪＫにセットされるならば、それは、ＶＣＩ記述子３５４読み取りポインタフィールド３８８がカウントフィールド４５２における値によってロードされ、かつＤＭＡ転送が実際上実行されないということに注意すべきである。
ＡＴＭ・ＡＳＩＣ１００が各ＤＭＡ記述子３５６の処理を完了するとき、それは、ＤＭＡＲｄ＿ｒｘポインタを処理されるべき次の記述子を指すためにインクリメントする。もしＤＭＡ転送中にエラーが生じるならば、そのとき、マスタコントロールレジスタにおけるＤＭＡ＿ＥＮＡＢＬＥビットはクリアされて、全てのＤＭＡオペレーションを不能にする。それから、ホストは、エラーに関係したＤＭＡ記述子３５４の内容を（例えば、タイプＪＫに）変化させ、かつマスタコントロールレジスタに書き込むことによりＤＭＡを再びイネーブルにする。さらに、ホストは、ＤＭＡ＿ＡＤＤＲレジスタにおける違反仮想アドレスを読み取ることができる（図１１参照）。
ヘッダ内にセットされているＰＴＩ（２）ビットによって決定されるように、ＯＡＭセルが受信されるとき、ＡＴＭ・ＡＳＩＣ１００は、ＶＣＩ記述子３５４ＰＴＩモードフィールド３７２を使用して、セルに何が起こるかを決定する。もしＰＴＩモードフィールド３７２における値が「破壊」値であるならば、そのとき、セルは破壊され、かつＶＣＩ破壊統計カウンタはインクリメントされる。もし、このＶＣＩのためのＶＣＩ記述子３５４モードフィールド３７０値がまた「破壊」にセットされるならば、そのとき、ＶＣＩ記述子３５４ステートフィールド３９４値は、「破壊」にセットされる。これは、セルがこのＶＣＩによって破壊されたということをホストに示す。この情報は、モードフィールド３７０値が「破壊」値に等しいときのみ利用可能であるということに注意すべきである。
もしＶＣＩ記述子３５４におけるＰＴＩモードフィールド３７２値が「保存」値であるならば、そのときＡＴＭ・ＡＳＩＣ１００は、このセルを特定のＯＡＭ・ＶＣＩチャンネル３に自動的に再び向ける。ＡＴＭ・ＡＳＩＣ１００は、ＶＣＩチャンネル３のためのＶＣＩ記述子を読み取り、モードフィールド３７０、ＰＴＩモードフィールド３７２、及びステートフィールド３９４の値を無視し、そして非ＡＡＬ５再組立を実行する。ＶＣＩチャンネル３と関連した再組立待ち行列３６８におけるオーバフローの場合に、異なる破壊セルのためにセルヘッダを記憶するための空間はないということに注意すべきである。これは、ホストがどのＶＣＩからＯＡＭセルが破壊されたかを知らないということを意味している。
ＯＡＭセルのためにＶＣＩチャンネル３を使うとき、このチャンネルは通常のＡＡＬ５転送モードトラフィックのために使用することはできない。しかしながら、それは、（Ｆ４ＯＡＭのような）非ＡＡＬ５トラフィックのために使用することができる。モードフィールド３７０の値は、本発明具体例においてセットすることができる。
ホストは、ＶＣＩテーブル３５２への完全な書込アクセスを有している。しかしながら、ＡＴＭ・ＡＳＩＣ１００は、セルを処理しかつ同様なオペレーションを実行するときホストとパラレルにＶＣＩテーブル３５２に書込をすることができるので、ホストは、ロケーションフィールド３７４、サイズフィールド３７６、及びモードフィールド３７０のようなフィールドにおける値を変更する前に、或いは例えば、記述子スタートフィールド３８４、読み取りポインタフィールド３８８、書込ポインタフィールド３９２、ステートフィールド、及びセルカウントフィールドをクリアするとき、ＡＴＭ・ＡＳＩＣ１００がこのＶＣＩを処理しないということを確実にすることが要求される。ホストは、モードフィールド３７０の値を「破壊」に変更することによりこれを確実にし、かつＡＴＭ・ＡＳＩＣ１００がセルを処理するにかかる時間（一般的にこれは略２．７μｓである）少なくとも待つ。
本発明具体例において、ホストは、いかなる時にもＰＴＩモードフィールド３７２の値を変更することができる。ホストがインサービスフィールド３８０ビットをクリアするとき、これは、他のフィールドのどれも変更することなくワード全体を再書込することによってなされる。ホストは、モードフィールド３７０の値を「破壊」から何か他のものに変更する前に、記述子スタートフィールド３８４、読み取りポインタフィールド３８８、書込ポインタフィールドの値をゼロに、そしてＳｔａｔｅ＿ｔｏ＿Ｉｄｌｅを初期化すべきである。これは、最初の再組立が正しく受信されるということを確実にする。さもなければ、再組立プロセスは、例えば、ロケーションフィールド３７４及びサイズフィールド３７６によって規定されるバッファ空間の外側のような、予期されないアドレス上でスタートするかもしれない。
もし５３バイトの長さでないセルのような、不完全なセルが、ＰＨＹインターフェース回路１３０から受信されるならば、再組立エンジン１２４は、抜けたバイトを総合し、或いは余分なバイトを取り去る。このイベントは、物理層チップにおいてたぶん既にカウントされたので、ＡＴＭ・ＡＳＩＣ１００内のいかなる統計カウンタにおいてもカウントされないであろう。例えば、この現象の理由は多分、セル同期化が物理層チップ内で一時的に失われたということであった。このイベントは効果的に、エラーを高位層（例えば、ＡＡＬ５トラフィックのためのＣＲＣエラー）で生じさせる。
再組立エンジン１２４が、ホストメモリに現在ＤＭＡされている同じＶＣＩからセルを再組立するときに特定のケースが生じるということに注意すべきである。この場合、再組立エンジン１２４は、書込ポインタフィールド３９２内の値と比較するためＤＭＡコントローラ１０８においてインクリメントされる読み取りポインタフィールド３８８の値を使用する。このスキームは、潜在的にメモリ空間を節約することができる。
別の具体例
本発明の範囲内で、ワークステーション又はデスクトップ環境でＡＴＭ能力を提供するための非同期転送モード（ＡＴＭ）アダプタに、当業者には容易に明らかになる多数の変更或いは変化がある。このような変更は、コスト及び性能、サイズ束縛、材質の利用可能性、独断的な設計決定などの多数の理由のために本発明具体例においては使用されないかもしれない。多数のこれらの変更については、上述した。このように、本発明は、このような明白な変更、及び好適設計からの逸脱をもカバーすることを意味している特許請求の範囲によってのみ制限されることを意図している。
【図１】
0003673951.tif 000006
【図２】
0003673951.tif 000007
【図３】
0003673951.tif 000008
【図４】
0003673951.tif 000009
【図５】
0003673951.tif 000010
0003673951.tif 000011
【図６】
0003673951.tif 000012
【図７】
0003673951.tif 000013
【図８】
0003673951.tif 000014
【図９】
0003673951.tif 000015
【図１０】
0003673951.tif 000016
【図１１】
0003673951.tif 000017
【図１２】
0003673951.tif 000018
【図１３】
0003673951.tif 000019
【図１４】
0003673951.tif 000020
【図１５】
0003673951.tif 000021
【図１６】
0003673951.tif 000022
【図１７】
0003673951.tif 000023
【図１８】
0003673951.tif 000024
【図１９】
0003673951.tif 000025
【図２０】
0003673951.tif 000026
【図２１】
0003673951.tif 000027
【図２２】
0003673951.tif 000028
【図２３】
0003673951.tif 000029
【図２４】
0003673951.tif 000030
【図２５】
0003673951.tif 000031
【図２６】
0003673951.tif 000032
【図２７】
0003673951.tif 000033
【図２８】
0003673951.tif 000034
【図３０】
0003673951.tif 000035
【図２９】
0003673951.tif 000036
【図３１】
0003673951.tif 000037
【図３３】
0003673951.tif 000038
0003673951.tif 000039
【図３２】
0003673951.tif 000040
【図３４】
0003673951.tif 000041
【図３５】
0003673951.tif 000042
【図３６】
0003673951.tif 000043
【図３７】
0003673951.tif 000044
【図３８】
0003673951.tif 000045
【図３９】
0003673951.tif 000046
【図４０】
0003673951.tif 000047
【図４１】
0003673951.tif 000048
【図４２】
0003673951.tif 000049
【図４３】
0003673951.tif 000050
【図４４】
0003673951.tif 000051
【図４５】
0003673951.tif 000052
【図４６】
0003673951.tif 000053
【図４７】
0003673951.tif 000054
【図４８】
0003673951.tif 000055
【図４９】
0003673951.tif 000056
【図５１】
0003673951.tif 000057
【図５０】
0003673951.tif 000058