(57)【特許請求の範囲】
【請求項１】
ホスト・コンピュータ・システムを非同期転送モード（ＡＴＭ）システムに接続するインタフェース・システムであって、
データをバッファするバッファ・メモリと、
バッファ・メモリとホスト・コンピュータとの間のデータ転送を制御するホスト・コンピュータ・インタフェース要素と、
ＡＴＭシステムとバッファ・メモリとの間のデータ転送を制御するＡＴＭシステム・インタフェース要素と、
コンピュータ・システム・インタフェース要素とＡＴＭシステム・インタフェース要素との間に接続され、ＡＴＭシステム・インタフェースによるバッファ・メモリとＡＴＭシステムとの間のデータ転送に応答して、ホスト・コンピュータ・システムとバッファ・メモリとの間でデータを転送する前記コンピュータ・システム・インタフェース要素を制御するためのスケジューリング要素と
を含むインタフェース・システム。
【請求項２】
ホスト・コンピュータと非同期転送モード（ＡＴＭ）システムとの間のデータ転送を制御する方法で、
データをＡＴＭシステムに伝送するために、
データ接続にとってのデータの可用性を検出する段階と、
伝送用ロード・エンジンを制御して、接続のデータを、接続に対応する伝送用外部バッファ・メモリの待ち行列にロードする段階と、
伝送用外部バッファ・メモリの待ち行列からデータを取り出す伝送用アンロード・エンジンを制御する段階と、
伝送用ロード・エンジンをさらに制御して、伝送用アンロード・エンジンによる前記待ち行列からのデータの取出しに応答して、伝送用外部バッファ・メモリの待ち行列に追加データを記憶する段階とを含み、
ＡＴＭシステムからデータを受信するために、
データ接続に対応するデータの可用性を検出する手段と、
受信用ロード・エンジンを制御して、受信用外部バッファ・メモリの待ち行列に、データ接続に対応するデータを記憶する段階と、
受信用アンロード・エンジンを制御して、待ち行列に記憶されているデータに対応して受信用外部バッファ・メモリの待ち行列から前記データを取り出す段階と
を含む方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、コンピュータのホスト・システムと非同期転送モード（ＡＴＭ）システムとのインタフェースをとるインタフェース・システム、特にこのようなインタフェース・システム内でパケットおよびセルのセグメント化およびリアセンブリとともに使用するロード機能およびアンロード機能の分割に関する。
【０００２】
【従来の技術】
広帯域統合サービス・データ・ネットワークＩＳＤＮ（Ｂ−ＩＳＤＮ）を実現するのに好ましい技術として、ＡＴＭ技術が出てきている。Ｂ−ＩＳＤＮとは、コンピュータ・システム、ローカル・エリア・ネットワーク（ＬＡＮ）、電話、ファクシミリなどを相互接続して、システム間のデータ、音声およびビデオの通信を容易にするためのシステムである。Ｂ−ＩＳＤＮは通常、通信媒体として光ファイバを使用する。ＡＴＭシステムは、１組の「データ接続」を定義することによってＢ−ＩＳＤＮ上のデータ伝送を容易にし、ここで各接続とは、特定のソースおよび目的を有する仮想回路および関連のデータ伝送部を表す。
【０００３】
コンピュータ・システム、ＬＡＮ、電話などから与えられたデータは、最初にデータのパケットに記憶される。しかし、ＡＴＭに基づくシステムはデータのセルを伝送し、処理する。したがって、パケットをセルに変換し（セグメンテーション）、セルをパケットに変換する（リアセンブリ）方法または装置を用意しなければならない。セグメント化もリアセンブリも２段階プロセスである。セグメント化の場合、パケットをホスト・システムから受け取ってメモリに記憶し（ロード）、次にセルに変換してＡＴＭシステムに出力する（アンロード）。リアセンブリの場合は、セルをＡＴＭシステムから受け取り、パケットにアセンブリしてメモリに記憶して（ロード）、次にメモりから取り出してホストのバスに出力する（アンロード）。
【０００４】
従来、上記のセグメント化およびリアセンブリのプロセスを実行する、特定用途向集積回路（ＡＳＩＣ）のセグメント化およびリアセンブリ（ＳＡＲ）チップが設けられている。しかし、従来のＳＡＲチップは機能的にも、論理的にも、あるいは物理的にもロード段階とアンロード段階とを分離していない。つまり、ロード・コンポーネントとアンロード・コンポーネントが一体化されている。
【０００５】
【発明が解決しようとする課題】
しかし、ロード・コンポーネントとアンロード・コンポーネントを一体化した結果、ある欠点が生じている。ロード・コンポーネントはホストによる制約をすべて考慮しなければならないが、ＡＴＭ特有の要件に制約される必要はない。同様に、アンロード・コンポーネントはＡＴＭによる制限に従うが、ホストのいかなる制限にも影響されない。したがって、ホストに何らかの変更が加えられたら、ロード・コンポーネントしか影響を受ける必要がなく、ＡＴＭに何らかの変更が加えられたら、ＡＴＭシステムはアンロード・コンポーネントにしか影響を及ぼす必要がない。それでも、ロード・コンポーネントとアンロード・コンポーネントが従来のＳＡＲチップのように一体化されていると、ホストまたはＡＴＭシステムのいずれが変更されても、ＳＡＲチップの完全な設計変更が必要となることがある。さらに、ロード・コンポーネントとアンロード・コンポーネントを一体化すると、ホスト専用、またはＡＴＭシステム専用に最適化した回路を活用することができない。
【０００６】
したがって、一体化したロード・コンポーネントおよびアンロード・コンポーネントを有するシステムで生じる欠点を回避するＳＡＲチップとして示された、改良型のＡＴＭシステム・インタフェースを提供することが望ましい。このような改良型のシステムに従って、本発明を例示する。特に、セグメンテーション・プロセスのロード・コンポーネントとアンロード・コンポーネントを分割し、またリアセンブリ・プロセスのロード機能とアンロード機能を分割することが、本発明の目的である。
【０００７】
しかし、ロード・コンポーネントとアンロード・コンポーネントを分割しようとするなら、分割されたコンポーネント間に適切な連絡を設け、データの効率的なスループットを許容しなければならない。このようなことは、それぞれが潜在的に異なるデータ伝送速度で作動する複数のデータ接続上のデータ伝送に対処できるよう構成されたＡＴＭシステム・インタフェース内では、特に問題となる。たとえば、外部バッファ・メモリを使用して、セルの全体的な転送を容易にする場合、分割されたロード・コンポーネントは、異なる伝送速度に対応した外部バッファ・メモリ内で繰り返し待ち行列をポーリングして、追加のセルをいつそこにロードするか決定しなければならないことがある。したがって、本発明のもう一つの目的は、分割されたロード・コンポーネントおよびアンロード・コンポーネントが互いに連絡して、データの効率的なスループットを提供しながら、外部バッファ・メモリの使用時にポーリングを必要としない、効率的な技術を提供することである。
【０００８】
【課題を解決するための手段】
本発明は、ホスト・システムをＡＴＭシステムと相互接続する際に使用するため、パケットをセルにセグメント化し、セルをパケットへリアセンブルして、ロードおよびアンロードのセグメント化コンポーネントが分割され、ロードおよびアンロードのリアセンブリ・コンポーネントが分割されているシステムを提供する。分割されたロード・コンポーネントとアンロード・コンポーネントが、別個に動作しながら連絡できるような、効率的な方法および装置も提供する。ＡＴＭシステムは、ＵＴＯＰＩＡプロトコルを使用することができる。
【０００９】
１つの実施態様によると、前記は以下のように達成される。複数の先入れ先出し（ＦＩＦＯ）待ち行列でデータをバッファするため、外部バッファ・メモリなどのバッファ手段を含む送信モード・アーキテクチャを提供する。外部バッファ・メモリは、複数のデータ接続のそれぞれに１つのＦＩＦＯ待ち行列を提供し、各データ接続は異なる伝送速度で動作することができる。伝送ロード手段または「ロード・エンジン」は、関連するバッファのＦＩＦＯ待ち行列にあるデータ接続のいずれにも対応するデータのパケットの記憶を制御する。アンロード手段または「アンロード・エンジン」は、バッファのＦＩＦＯ待ち行列からパケットを取り出し、それに含まれるデータをセルにセグメンテト化して、関連するデータ接続のＡＴＭシステムに出力する。
【００１０】
スケジューリング手段または「スケジューラ」は、ロード・エンジンとアンロード・エンジンとの間を連絡し、適切な速度の制御が維持されることを確保するため、その間を相互接続する。スケジューラは、別個のデータ接続を示す値を記憶する１つのＦＩＦＯ待ち行列を含む。使用時には、アンロード・エンジンが、ＦＩＦＯ待ち行列がほぼ空になるまで、対応するデータ接続に特定の速度で、外部バッファ・メモリのＦＩＦＯ待ち行列の１つからデータを取り出す。次に、追加のデータをほぼ空の待ち行列内に記憶するよう、ロード・エンジンに信号を送るため、アンロード・エンジンは、ほぼ空の外部バッファ・メモリの待ち行列と関連するデータ接続の代表的な値を、スケジューラの待ち行列に記憶する。ロード・エンジンは先入れ先出し法でスケジューラの待ち行列から値を読み取り、データ接続にサービスして、データのパケットを外部バッファの対応するＦＩＦＯ待ち行列に記憶させるようにする。
【００１１】
したがって、ロード・エンジンは、アンロード・エンジンが定義した順序でスケジューラからデータ接続の値を読み取り、次に、対応する接続をサービスすることによって、アンロード・エンジンのスレーブとして動作する。この方法で、アンロード・エンジンは、ロード・エンジンが様々なデータ接続を処理する順序を指定することにより、ロード・エンジンの動作を効率的に「スケジュール」する。
【００１２】
上述したように、システムは、それぞれ異なるデータ伝送速度を有する複数の接続上で、データを処理することができる。高速データ接続に対応する外部バッファ・メモリの待ち行列は、低速データ接続に対応する外部バッファ・メモリの待ち行列より、頻繁に追加データを必要とする可能性が高い。このように、高速データ接続は、低速データ接続より頻繁にスケジュールされ、ロード・エンジンは低速データ接続より高速データ接続に頻繁にサービスして、これによってより高速接続におけるより高いデータ速度に対応する。
【００１３】
受信またはリアセンブリのためのロードおよびアンロード・コンポーネントは、セグメント化または転送の場合とほぼ同じ方法で分割される。後にホストに伝送するため、ＡＴＭシステムから受信したデータをバッファする外部バッファ・メモリを含む受信モード・アーキテクチャが設けられる。受信ロード・エンジンは、ＡＴＭからデータのセルを受信し、これらのセルをアセンブルしてパケットにし、パケットを外部バッファ・メモリに記憶する。受信用アンロード・エンジンは、ホストに回送するため、外部バッファ・メモリからのデータ・パケットの取り出しを制御する。受信用スケジューラは、ＦＩＦＯ待ち行列を有し、外部バッファ・メモリの待ち行列が満たされる順序に従って、受信ロード・エンジンが受信用アンロード・エンジンの動作をスケジュールできるようにする。しかし、外部バッファ・メモリの転送は、各データ接続につきＦＩＦＯ待ち行列を１個含むが、受信用外部バッファ・メモリは動的に割り当てられるか、分割されるので、任意の時間には、１つのデータ接続に１つの待ち行列を提供することもあれば、複数のデータ接続に複数のメモリの待ち行列を提供することもある。一つの実施態様では、受信用外部バッファ・メモリを、動的リンク・リストを付けて構成し、バッファ資源の動的割当てを容易にする。リンク・リストを使用する場合は、リンクした方法でセルを外部バッファ・メモリに記憶し、単一のデータ接続に対応するセルを含む仮想または論理待ち行列を提供する。
【００１４】
したがって、本発明ではＳＡＲチップなどのインタフェース・システムがホスト・システムとＡＴＭシステムとの相互接続のために設けられ、受信および送信両用のロード・コンポーネントおよびアンロード・コンポーネントが分割される。このため、ロード・コンポーネントおよびアンロード・コンポーネントの実現に使用する回路類は、これが接続するホストまたはＡＴＭシステムのいずれかと使用するよう構成または最適化することができる。したがって、ホストまたはＡＴＭの使用に何らかの変更があっても、受信または伝送回線類全体を完全に設計変更する必要はなく、該当するロード・コンポーネントまたはアンロード・コンポーネントを設計変更するだけでよい。ロード・コンポーネントおよびアンロード・コンポーネントの分割も、代替ホストまたは代替Ｉ−ＩＳＤＮインタフェースと相互接続するための拡張機能の開発を容易にした。たとえば、ＡＴＭシステムを代替システムと交換するか、コンピュータ・システムを代替システムと交換する場合、ＡＴＭインタフェースの設計変更は、ロード・コンポーネントかアンロード・コンポーネントのいずれかのみの設計変更に制限することができる。ロード・コンポーネントおよびアンロード・コンポーネントの分割は、システム中のバグの識別および固定も容易にする。ロード・コンポーネントおよびアンロード・コンポーネントを分割する方法は、スケジューラを外部バッファ・メモリと組み合わせて使用することにより、クリーンな分割を可能にする一方、異なるデータ速度を有する複数のデータ接続を効率的に制御する。
【００１５】
したがって、上記の本発明の目的が達成される。本発明のその他の目的、特徴および利点は、添付の図面および以下の本発明の説明から明らかである。
【００１６】
【発明の実施の形態】
次に、図面を参照しながら、本発明の例示的な実施形態について説明する。最初に、多種多様な特定の実施形態に適用可能な本発明の原理を、図１ないし６を参照しながら説明し、次に、本発明の例示的なインプリメンテーション、および利用できる全体的なネットワークについて、図７および８を参照しながら説明する。
【００１７】
図１は、ホスト・コンピュータ・システム１２をＡＴＭベースのＢ−ＩＳＤＮ通信システム１４に相互接続するＡＴＭシステム・インタフェース１０を示す。ホスト・コンピュータへの接続には、システム・バス１６を使用することができる。Ｂ−ＩＳＤＮへの接続は、ＡＴＭシステム１８を通じて提供され、これはＳＡＲチップでもよい。一つの実施形態では、ホスト・コンピュータ１２はＳｕｎＣｏｍｐｕｔｅｒ  Ｗｏｒｋｓｔａｔｉｏｎでよい。ＡＴＭシステム１８は、光ファイバ・ケーブル２０またはその他の媒体でデータを伝送するため、ＵＴＯＰＩＡプロトコルを使用するＳＯＮＥＴフレーマを含むことができる。しかし、ＡＴＭインタフェース１０を、他のシステムまたは装置と組み合わせて使用することもできる。実際、本発明の原理は、非ＡＴＭシステムでも活用することができる。
【００１８】
ＡＴＭインタフェース１０は、ホスト・システム１２から受信したパケットをＡＴＭシステム１８に伝送するためセルに変換する、あるいはその逆の動作を行う。
【００１９】
パケットは、バス１６を使用してホスト・システム１２からインタフェース・システム１０に伝送することができる。他の実施形態では、直接メモリ・アクセス（ＤＭＡ）コントローラ（図示せず）を使用して、データの伝送を容易にすることができる。ホスト・システム１２からインタフェース・システム１０へデータを転送する正確な手段は、本発明には必ずしも関係がなく、したがって詳述しない。
【００２０】
パケットからセルへの変換を、セグメント化または「セル化」と言う。セルからパケットへの変換を、リアセンブリまたは「パケット化」と言う。本明細書では、パケットをセルにセグメント化し、セルを送信するプロセス全体を、「送信モード」と言う。セルを受信して、セルをパケットにリアセンブルするプロセス全体を、「受信モード」と言う。
【００２１】
ホスト・コンピュータはパケットを処理するように構成され、ＡＴＭシステムはセルを処理するように構成されているが、上述したように、ホスト・コンピュータがＡＴＭシステムにデータを伝送できるよう、ＡＴＭインタフェース１０が設けられている。パケットは様々な長さが可能である。セルは均一のサイズである。パケットとセルとの関係を、図２および３に示す。図２は、３つの別個のデータ接続またはチャネル上で伝送される１組のパケット２２が、均一サイズの１組のインタリーブされたセル２４に変換される様子を示す。図示のように、パケット２２は、様々なサイズまたは長さでよく、異なる時間に開始および停止することができる。さらに、特定のデータの通信を、接続２で伝送される図のように、１つのパケット内に含めるか、接続１および３で伝送される図のように、２つ以上のパケット内に含めることもできる。
【００２２】
しかし、セルは等サイズで、各セルが１つのパケットからのデータの塊からなる。異なる接続のパケットに対応するデータを含むセルはインタリーブされる。図２では、結果として生じるセル・ストリーム２６内の番号１、２および３は、特定のデータ・セルを取り出したデータ接続を特定する。図示のように、異なるデータ接続からのデータは、セル・ストリーム内でインタリーブされる。
【００２３】
パケットを提供するデータ接続は、物理的伝送接続または仮想接続に対応することができる。一般に、データ接続は、ネットワーク・システム全体の中の任意の２つの実体を接続する仮想回線を表す。データ接続は、異なる速度でデータを伝送するよう動作してもよい。たとえば、ある接続が１秒当たり１０メガビット（Ｍｂｐｓ）で動作し、別の接続が２０Ｍｂｐｓで動作する。これを図２で示し、ここで接続１は接続２の２倍の伝送速度で動作する。図示のように、接続２でＮ／２バイトのデータが伝送されるのと同じ期間に、接続１ではＮバイトのデータが伝送される。接続１の方が伝送速度が大きいことに対応するため、接続１から取り出したデータ・セルは、インタリーブしたセル・ストリーム２８内で、接続２から受信したセルの２倍の頻度で伝送される。この方法で、接続１の方がデータ速度が大きいことが考慮される一方、接続２からのデータの伝送も確保する。接続１および２からのセルのインタリーブが、厳密に１対２である必要はないことに留意されたい。むしろ、接続１からのセルが、接続２からのセルの平均してほぼ２倍の頻度で現れれば十分である。
【００２４】
それぞれが異なるデータ速度で動作する可能性がある複数のデータ接続を有する環境で、ＡＴＭインタフェース１０がパケットをセルにセグメント化し、セルをパケットにリアセンブルする方法について、次に説明する。まず、パケットをセルにセグメント化する送信モード・システムについて、図４および５を参照しながら説明し、次に、セルをパケットにリアセンブルする受信モード・システムについて、図６を参照しながら説明する。
【００２５】
送信モード
図４は、バス１６およびＡＴＭシステム１８と接続したＡＴＭインタフェース１０の内部コンポーネントを示す。主要コンポーネントとして、ＡＴＭインタフェース１０は、ロード・エンジン３０、アンロード・エンジン３２、外部バッファ・メモリ３４、スケジューラ３６、およびキック・エンジン３８を含む。ロード・エンジン３０は、１２８個の物理データ伝送用接続のいずれかに対応するデータ・パケットの、バス１６から、またはＤＭＡコントローラ（図示せず）を使用する場合は直接ホスト・メモリ（これも図示せず）からの伝送を制御する。外部バッファ・メモリ３４は、１２８のＦＩＦＯ待ち行列を含み、パケットからのデータを記憶するため、１２８個の物理データ接続のそれぞれに１個ある。アンロード・エンジン３２は、ＡＴＭシステム１８に伝送するため、メモリ３４のＦＩＦＯ待ち行列からデータを取り出し、データをセルにセグメント化する。データのパケットをＦＩＦＯ待ち行列に記憶し、そこからデータを取り出して、セルにセグメント化する技術は、当業者には十分理解されているので、本明細書では詳述しない。
【００２６】
いかなる時でも、ロード・エンジン３０は、１２８個の接続のうち一度に１個にしかサービスすることができない。同様に、いかなる時でも、アンロード・エンジン３２は、メモリ３４の待ち行列のうち一度に１個からしかデータを取り出すことができない。ロード・エンジンがサービスしながら、同時に様々な接続間で広範囲に変化するデータ伝送速度の可能性に対応するよう、接続の選択を容易にするため、スケジューラ３６が設けられている。１個のデータ接続に対応するデータのパケットが、外部バッファ・メモリへの転送に利用できることをアンロード・エンジンに警告するため、キック・エンジン３８が設けられている。アンロード・エンジンは、ロード・エンジンの動作をスケジュールする。
【００２７】
簡潔に言うと、ロード・エンジン３０の動作は、スケジューラ３６を介してアンロード・エンジン３２によってスケジュールされる。アンロード・エンジン３２は、スケジューラ３６内でロード・エンジン３０がサービスするデータ接続のリストを、接続にサービスする順序で記憶する。ロード・エンジン３０は、スケジューラ３６内でアンロード・エンジン３２が対応するデータ接続をスケジュールするまで、データのメモリ３４内への記憶を開始しない。最初に、それまで遊休状態であったデータ接続に沿って新しいデータのパケットが使用できるようになると、キック・エンジン３８が、新しいデータが使用できるという信号をアンロード・エンジン３２に送る。アンロード・エンジン３２は、それに応えてスケジューラ３６内でデータ接続をスケジュールする。
【００２８】
スケジューラ３６が最初は空だとすると、新しいデータを有するデータ接続が、その中でスケジュールされる最初の接続となる。次に、ロード・エンジン３０がスケジューラからデータ接続の番号を読み取り、メモリ３４の対応するＦＩＦＯ待ち行列内に、その接続で使用できるデータの記憶を開始することにより、接続へのサービスを開始する。たとえば、データ接続３でデータが使用できるとすると、データをメモり３４のＦＩＦＯ待ち行列＃３に記憶する。メモリ３４内の対応する接続のＦＩＦＯ待ち行列がほぼ満杯になるか、パケットの最後に到達するまで、パケットからのデータがメモり３４に記憶される。
【００２９】
ロード・エンジンが接続３にサービス中に、他の接続で追加のデータ・パケットが使用可能になった場合は、スケジューラ内で接続３に続く順序で、追加の接続をスケジュールする。これを図５に示す。図５は、接続３を第１エントリとし、例示的な接続２、４８および２５をその後にスケジュールして示す。キック・エンジンが新しいデータの可用性を検出して、接続番号またはそれを示す何らかの値をスケジューラ３６内に記憶するアンロード・エンジン３２に信号を送るのと同じ方法で、接続３のサービス中に追加の接続がスケジュールされる。スケジューラの待ち行列の深さは、サービスされる物理接続の数に制限されることに留意されたい。つまり、ある特定の物理接続は、スケジューラ内で１回しかスケジュールされない。スケジュールできる接続の最大数は１２８で、例示的システムで使用可能な物理接続の最大数と対応する。
【００３０】
これまでの例は、それまで活動を停止していて新しいデータ・パケットが使用可能になったデータ接続のスケジューリングについてのみ述べた。しかし、データ接続は、アンロード・エンジン３２によってメモリ３４からデータを取り出すにつれ、スケジューラ３６内でもスケジュールされる。特に、メモリ３４のＦＩＦＯ待ち行列の一つに十分な量のデータが記憶されるとすぐに、アンロード・エンジン３２は、セグメント化およびＡＴＭシステム１８への伝送のために待ち行列からデータを取り出す。上述したように、セルは、ＡＴＭシステム１８に伝送するためにインタリーブされる。このように、アンロード・エンジン３２は各ＦＩＦＯ待ち行列から一つのセルのデータ値を選択的に取り出し、出力ＡＴＭセル・ストリームに入れる。すべてのデータ接続が同じ伝送速度を共有している場合は、アンロード・エンジン３２はメモリ３４の各待ち行列から均一の頻度で同数のセルを取り出す。しかし、データ接続が異なる速度を有する場合は、アンロード・エンジン３２は、より低速の接続に対応する待ち行列より、より高速の接続に対応する待ち行列から多くのセルを取り出す。アンロード・エンジン３２がセルの取り出しのために特定のデータ接続を選択する論理、およびセルをインタリーブする方法は、当業者に十分理解されている技術に従って実行することができるので、このような技術について本明細書では説明しない。
【００３１】
いずれの場合も、ある特定のデータ接続について、メモリ３４内で対応する待ち行列は最終的に空にされ、追加のデータを必要とする。したがって、アンロード・エンジンがメモリ３４の選択待ち行列からデータを取り出すにつれ、アンロード・エンジンは、待ち行列がほぼ空であることを示す閾値に到達したか判定する。このような閾値に到達したら、アンロード・エンジンは、ほぼ空になった待ち行列に対応する接続を特定する値をスケジューラ３６に入れ、これによってロード・エンジン３０は、ほぼ空のＦＩＦＯ待ち号列に追加のデータを入れることによって、結局、対応する接続にサービスする。ほぼ空の待ち行列に対応する接続へのロード・エンジンによるサービスは、即座でなくてもよい。むしろ、接続へのサービスは、スケジューラ３６内で特定され以前にスケジュールされた接続の未決サービスを待たねばならない。
【００３２】
理解されるように、以前に遊休状態だった接続のスケジューリングと対応するＦＩＦＯ待ち行列がほぼ空になった活動状態の接続のスケジューリングとは、様々な接続でデータのパケットを受信し、メモリ３４に記憶し、その後取り出してＡＴＭシステム１８に伝送するためにセグメント化するにつれ、連続的に進行する。
【００３３】
結局、特定の接続で特定のデータ伝送の最後に対応する最後のデータが、メモリ３４に記憶される。伝送の最後は、たとえばパケットの最後の指標をメモリ３４内に記憶することによって、信号で伝えることができる。幾つかのパケットを含むデータ伝送には、他の技術を利用してもよい。いずれの場合も、アンロード・エンジン３２が伝送の最後を検出し、その伝送に対応する残りのデータをメモり３４から取り出す。対応するデータ接続は、キック・エンジン３８がアンロード・エンジン３２に再度信号を送り、その特定の接続のためにアンロード・エンジンを「覚醒させる」時に、新しい伝送が接続に沿って可能となるまで、再度スケジュールされない。次に、アンロード・エンジンがロード・エンジン３０をスケジュールし、以前に遊休状態だった接続に再度サービスする。
【００３４】
簡潔に要約するため、外部バッファ・メモリ３４は各物理データ接続ごとに１つのＦＩＦＯ待ち行列を含む。しかし、対応する入力データ接続にサービスするよう、スケジューラの待ち行列３６を介してアンロード・エンジン３２によってロード・エンジン３０がスケジュールされるまで、メモリ３４の待ち行列には何のデータも記憶されない。このように、ロード・エンジンはアンロード・エンジンのスレーブとして動作する。この方法で、アンロード・エンジンは、各物理データ接続でバス１６から受け取るデータの速度を制御する。これは、様々な接続のデータ・スループットの速度がＡＴＭシステムの要件によって命令または指定されているので、特に望ましい。つまり、ＡＴＭインタフェース１０は、ＡＴＭシステムにデータを伝送する速度に対する制御権を持たず、パケットを受け取る速度を制御できるだけである。したがって、アンロード・エンジンのスレーブであるロード・エンジンを設けることにより、特定の接続のパケット入力速度を制御して、その接続の対応するセルをＡＴＭシステムに伝送する速度の「ペースを決定」する。スケジューラ３６内で接続をスケジュールすることにより、アンロード・エンジンは、現在活動状態の各接続がロード・エンジンにサービスされることを保証し、データ速度が高速な方の接続をより頻繁にサービスすることを保証する。後者は、対応するＦＩＦＯ待ち行列が空になるにつれ接続をスケジュールすると、その当然の結果として生じる。
【００３５】
以上は、低速のデータ接続に対してデータの伝送速度を不当に妥協することなく達成される。むしろ、より低速のデータ接続に対応するセルは、より低速のデータ速度にふさわしい平均セル「頻度」で、出力ＡＴＭストリームに現れる。（たとえば図３参照。）より低速のデータ接続のデータのスループットは、スケジューラ３６のメカニズムによって効率的に「保証」される。特に、低速でも高速でも、いったんスケジューラ内でデータ接続がスケジュールされると、後続の接続の方がデータ速度がはるかに高速でも、これがその後スケジュールされるデータ接続より優先される。言うまでもなく、データ速度が非常に高速であるため、あらゆる状態で、１個または複数のデータ接続が、より低速なデータ速度の接続より優先権を有するように、代替インプリメンテーションを設計することができる。このようなことは、図４に図示したシステムに適切な変更を加えることによって、おそらくアンロード・エンジン３２がスケジューラ３６内の以前にスケジュールされたデータ接続の前にデータ接続の値を挿入できるようにすることによって、実現することができる。理解されるように、本発明の全体的な原理に適合する幅広い代替実施形態を用いることができる。さらに、幅広いハードウェアまたはソフトウェアの実施形態を用いて、図４に図示した機能を実際に実現することができる。
【００３６】
受信モード
次に、ＡＴＭインタフェース１０の受信モードについて、図６を参照しながら説明する。受信モードは送信モードとほぼ同じ方法で動作するが、幾つか異なる点がある。受信モードと送信モードとの異なる点のみを、以下で詳細に述べる。
【００３７】
図６は、ＡＴＭインタフェース１０の受信モード・アーキテクチャまたはリアセンブリ・アーキテクチャを示す。ロード・エンジン４０は、外部バッファ・メモリ４４に記憶するため、ＡＴＭシステム１８からセルを受信する。ロード・エンジンは、外部バッファ・メモリ内で仮想待ち行列にセルを記憶し、これによってアンロード・エンジンは、選択されたデータ接続からのパケットに対応するセルのみを選択的に取り出すことができる。外部バッファ・メモリ内のセルのパケットは、アンロード・エンジンの制御下でホスト・コンピュータに転送される。以前のように、ホスト・システムと外部バッファ・メモリとの間のデータ転送は、ＤＭＡで実行してもよい。
【００３８】
スケジューラ４６によって、ロード・エンジン４０はアンロード・エンジン４２の動作をスケジュールすることができる。ロード・エンジンがアンロード・エンジンのスレーブである送信モード・アーキテクチャとは反対に、受信モード・アーキテクチャでは、アンロード・エンジンがロード・エンジンのスレーブである。上述したように、ＡＴＭシステムからのセルの受信に対しては制御権がない。したがって、受信ロード・エンジンは、受信したセルに即座に応答しなければならず、そのためアンロード・エンジンのスレーブとして効率的に動作することができない。また、受信ロード・エンジンはＡＴＭシステム１８から受信したセルに即座に応答するので、（図４のキック・エンジン３８のような）キック・エンジンは不必要である。さらに、送信モードのメモリ３４は均等に分割されて、１２８個の物理接続のそれぞれにＦＩＦＯ待ち行列を与えるが、受信モードの外部バッファ・メモリ４４は、１個の仮想または論理待ち行列か、あるいはそれらの複数の待ち行列を与えることができるように動的に割り当てられたメモリである。この場合も、ＡＴＭシステムから受信したセルに即座に応答するという要件によって、違いが必要となる。１個のデータ接続に対応する多数のセルを受信すると、メモリ４４の大きな部分が必要となる。したがって、待ち行列が等サイズであるという伝送側に課せられた制限は、受信側には課せられない。バッファ４４内に動的に資源を割り当てることによって、メモリをロード・エンジン４０と相互接続するリンク・リスト・マネージャ５０が、仮想待ち行列を制御することができる。セルは、セル・ポインタが同じデータ接続に対応する他のセルを指す状態で、バッファ４４内に記憶される。リンク・リストしたセルが、前記の仮想または論理待ち行列を形成している。リンク・リスト・マネージャ５０は、様々なポインタに従ってセルの記憶とセルの取出しとを調整する。
【００３９】
動作時には、ロード・エンジン４０が受信したセルは、メモリ４０内に一度に１個ずつ記憶される。メモリ４４に、接続１個につき少なくとも３個のセルが記憶される場合は常に、接続の代表的な値がスケジューラ４６のＦＩＦＯ待ち行列内に挿入される。アンロード・エンジンは、スケジューラ４６から与えられた接続順序に従って、バッファ４４からのデータの取出しを制御する。
【００４０】
送信モードの場合と同様、接続によって異なるデータ伝送速度は、スケジューラによって効率的に管理される。高速のデータ速度を有する接続は、より低速のデータ速度を有する接続より頻繁にスケジュールされる。スケジュールされた順序で接続をサービスすることにより、受信アンロード・エンジンは受信ロード・エンジンとペースを合わせる。言うまでもなく、あまりにも多くのデータをあまりにも高速で受信し、その結果おそらく、受信アンロード・エンジンが適切な接続部をサービスできる前にメモリ４４全体が満杯になり、データを除去させるような状態が生じることがある。このような状態は、本発明の結果生じたものではなく、従来のデータ伝送システムでも生じ得るものである。生じ得るオーバーフロー状態に対処するため、従来の技術を使用することができる。また、送信モードの場合と同様、他の接続が以前にスケジュールされていても、受信アンロード・エンジンが特定のデータ接続にサービスするよう、そのデータ接続により高い優先権を与えるよう、受信モードを構成することができる。
【００４１】
受信モード・アーキテクチャと送信モード・アーキテクチャとのさらに別の違いは、データ接続の情報をキャッシュに入れるよう、キャッシュ５２を設けることができる点である。一つの実施形態では、受信モード・アーキテクチャが１２８個の物理データ接続にしか用意されていなくても、キャッシュによって、１０２４個の仮想データ接続に対応することができる。簡潔に言うと、データ接続の情報がキャッシュに入れられ、仮想接続の情報を実際の物理チャネルに関連づける。特定の仮想接続についてキャッシュ内に記憶された接続の情報を、フラッシュさせる必要がある状態もある。しかし、スケジューラ４６内で物理接続が既にスケジュールされている場合は、それに対応する仮想接続がフラッシュされないよう、受信モード・アーキテクチャは構成される。キャッシュのフラッシュを扱う他の機構を、代わりに使用してもよい。
【００４２】
例示的な実施形態
以上、本発明の例示的な実施形態の重要な態様を、高レベルで述べた。以下では、本発明の実施形態である特定のＡＳＩＣについて述べる。ＡＳＩＣを使用するネットワークについても述べる。
【００４３】
図７は、図１ないし６のＡＴＭインタフェースを組み込んだ例示的なコンピュータ・システム・ネットワーク１００を示す。コンピュータ・システム・ネットワーク１００は、１個または複数のネットワーク・インタフェース回路（ＮＩＣ）  ＳＡＲ  ＡＳＩＣを組み込んで、図１ないし６に図示したアーキテクチャを実現するコンピュータ・システム（図示せず）を含む。ＳＡＲ  ＡＳＩＣ１１２は、ローカルＡＴＭ交換機１１４を介して公衆ＡＴＭ交換機１１６に結合して、ネットワーク１１０に結合されたホスト・コンピュータ・システム間のデータの同期転送を可能にする。あるいは、ＳＡＲ  ＡＳＩＣ１１２を公衆ＡＴＭ交換機１１６に直接結合することができる。図７で示すように、コンピュータ・システム・ネットワーク１１０は、支持フレームとしてＡＴＭネットワークを利用するトークン・リング・ネットワーク１１９またはＥｔｈｅｒｎｅｔなど、他のネットワークを接続するためのゲートウェイとして働くＬＡＮエミュレータ１１５の使用を組み込んだコンピュータ・システムも含むことができる。
【００４４】
図８は、ＳＡＲ  ＡＳＩＣ１１２のアーキテクチャを示す、単純化したシステム図である。ＳＡＲ  ＡＳＩＣ１１２は、ＡＴＭプロトコルに従って動作するネットワークのメディア１４０とシステム・バス１３８を介して結合するホスト・コンピュータ・システムと、インタフェースをとる。
【００４５】
図示のＳＡＲ  ＡＳＩＣ１１２は、システム・バス・インタフェース１２０、汎用入出力（”ＧＩＯ”）インタフェース１２４、システムおよびＡＴＭレイヤ・コア１２２、ローカル・スレーブ・インタフェース１２６、転送（ＴＸ）ＦＩＦＯ１２８のアレイ、受信（ＲＸ）ＦＩＦＯ１３０のアレイ、媒体インタフェース１３２、外部バッファ・メモリ・インタフェース１３４およびクロック合成回線１３６を含む。
【００４６】
ネットワーク・インタフェース回線１１２の要素１２０ないし１３６は、まとまって共同動作し、複数帯域グループの複数の動的に割り当てられた接続を介して、ホスト・コンピュータとネットワーク中の他のコンピュータとの間で、データを非同期転送する。一括して、ＳＡＲ  ＡＳＩＣ１１２の要素は、ホスト・コンピュータ・システムのシステム・バス１３８に結合された、複数接続のインテリジェントＤＭＡコントローラとして機能する。複数の送信および受信接続は、１５５／６２２  Ｍｂｐｓの全二重物理リンクを使用する仮想接続としてサービスされる。外部バッファ・メモリ・インタフェース１３４を介してシステム・バス１３８から外部バッファ・メモリ１４２までの異なる接続に予約された複数のデータ・パケットは、システムおよびＡＴＭレイヤ・コア１２２によって、媒体インタフェース１３２を通して媒体１４０に伝送される伝送セルにセグメント化される。
【００４７】
コア１２２は、受信パケットのリアセンブルを容易にするリアセンブリ論理も含む。コア１２２と媒体インタフェース１３２との間に結合されたＴＸおよびＲＸ  ＦＩＦＯ１２８、１３０は、それぞれ送信パケットと受信パケットの伝送および受信セル・ペイロードをステージする。媒体インタフェース１３２は、ネットワークの媒体１４０との間でセルを送信、受信し、クロック合成回線１３６によって与えられたクロック信号で動く。ＡＴＭ  Ｆｏｒｕｍ  Ａｄ  Ｈｏｃの仕様で述べるように、媒体、したがって媒体インタフェース１３２は、ＵＴＯＰＩＡ規格に適合する。ＵＴＯＰＩＡ仕様に適合するため、クロック合成回線１３６は、２０ＭＨｚまたは４０ＭＨｚのクロック信号を提供し、これによって媒体インタフェース１３２は、１５５Ｍｂｐｓのデータ・ストリームでは２０ＭＨｚで１バイトのストリーム、６２２Ｍｂｐｓのデータ・ストリームでは４０ＭＨｚで１６ビットのストリームをサポートすることができる。
【００４８】
媒体インタフェース１３２は、それぞれが４バイトのセル・ヘッダとＴＸ  ＦＩＦＯ１２８からの４８バイトのペイロードを有する５２バイトのデータ・セルを受信する。媒体インタフェース１３２は、セル・ヘッダから５番目のバイトとして、各セルにチェックサムを挿入してから、５３バイトのデータ・セルを媒体１４０に与える。逆に、媒体インタフェース１３２が媒体１４０からセルを受信すると、インタフェース１３２は各セルの５番目のバイトにあるチェックサムを検査して、チェックサムが正しいか判別する。正しければ、チェックサムを表すバイトをセルから削除し、セルをＲＸ  ＦＩＦＯ１３０に回送する。正しくなければ、セル全体をドロップする。
【００４９】
システム・バス・インタフェース１２０および汎用入出力インタフェース１２４は、媒体１４０への転送の特性から媒体１４０を切り離す。さらに、コア１２２はシステム・バス１３８およびホスト・データ構造の特性から切り離される。一つの実施形態では、米国電気電子学会（”ＩＥＥＥ”）規格の１４９６仕様で指定されているように、システム・バスはＳＢｕｓである。システム・バス・インタフェース１２０は、ＳＢｕｓの仕様に従って通信するよう構成される。システム・バス・インタフェース１２０は、異なるホスト・コンピュータ・システムのバスに適合するよう構成することができる。システム・バス・インタフェース１２０は、汎用入出力インタフェース１２４によって指定されたプロトコルに従ってデータを転送、受信するよう構成することもできる。汎用入出力インタフェース１２４は、コア１２２がホスト・コンピュータと通信する単一のインタフェースとなっている。したがって、異なるホスト・コンピュータ・システムとバスとのインタフェースをとるＳＡＲ  ＡＳＩＣ１１２の異なる実施形態について、コア１２２を変更する必要はない。
【００５０】
前述したように、ＳＡＲ  ＡＳＩＣ１１２は、ホスト・コンピュータ・システム上で動くアプリケーションから、非同期転送のセル記述細目を保護する。本発明では、ホスト・コンピュータ・システム１４８上で動くソフトウェアは、当技術分野で周知のように、パケット・インタフェースとともに循環送信および受信リングを使用して、送信および受信データを管理すると仮定する。
【００５１】
以上で述べてきたのは、１台または複数のホスト・コンピュータに接続したシステム・バスを、ＡＴＭで動作するＢ−ＩＳＤＮシステムに相互接続させるのに使用するため、セルへのパケットのセグメント化およびパケットへのセルのリアセンブリを扱うための、ＡＴＭインタフェース・システムであった。しかし、本発明の原理は、他のシステムにも適用することができ、いかなるデータ変換システムでも、特に複数の接続が設けられている場合は、ユーティリティを見いだすことができる。さらに、本発明の原理は、それぞれが同じデータ速度で動作する複数の接続を有するシステムにも、同様に適用される。
【００５２】
したがって、本明細書で述べた例示的な実施形態は、本発明の一般的原理を例示したにすぎず、本発明の範囲を制限するものとは解釈されない。
【図面の簡単な説明】
【図１】  パッケージをセルに変換、およびその逆に変換するＡＴＭインタフェース・システムを示すブロック図である。
【図２】  異なるデータ通信接続に対応するデータのパケットの、インタリーブしたセルへの変換を示すブロック図である。
【図３】  別個のデータ接続上で異なるデータ速度で伝送されるデータのパケットの、インタリーブしたセルへの変換を示すブロック図である。
【図４】  データの送信に関して、図１のインタフェース・システムのコンポーネントを示し、特にロード・エンジン、アンロード・エンジン、セグメント化・ユニットおよび外部バッファ・メモリを示すブロック図である。
【図５】  例示的なデータを内部に記憶した、図４のセグメント化・ユニットを示すブロック図である。
【図６】  データの受信に関する図１のＡＴＭシステム・インタフェースを示し、特にロード・エンジン、アンロード・エンジン、セグメント化・ユニット、および動的に割り当てられた外部バッファ・メモリを示すブロック図である。
【図７】  図１ないし６のＡＴＭシステム・インタフェースを使用するネットワークを示すブロック図である。
【図８】  図７に示したネットワーク内で使用する、図１ないし６のＡＴＭシステム・インタフェースの例示的な実施形態を示すブロック図である。
【符号の説明】
１    接続
２    接続
３    接続
１０    ＡＴＭシステム・インタフェース
１２    ホスト・コンピュータ・システム
１４    Ｂ−ＩＳＤＮ通信システム
１６    バス
１８    ＡＴＭシステム
２０    光ファイバ・ケーブル
２２    パケット
２４    インタリーブしたセル
２６    セル・ストリーム
２８    セル・ストリーム
３０    ロード・エンジン
３２    アンロード・エンジン
３４    外部バッファ・メモリ
３６    スケジューラ
３８    キック・エンジン
４０    ロード・エンジン
４２    アンロード・エンジン
４４    外部バッファ・メモリ
４６    スケジューラ
５０    リンク・リスト・マネージャ
５２    キャッシュ
１００    コンピュータ・システム・ネットワーク
１１０    コンピュータ・システム・ネットワーク
１１２    ＳＡＲ  ＡＳＩＣ
１１４    ローカルＡＴＭ交換機
１１５    ＬＡＮエミュレータ
１１６    公衆ＡＴＭ交換機
１１９    トークン・リング・ネットワーク
１２０    システム・バス・インタフェース
１２２    ＡＴＭレイヤ・コア
１２４    汎用入出力（”ＧＩＯ”）インタフェース
１２６    ローカル・スレーブ・インタフェース
１２８    転送（ＴＸ）ＦＩＦＯ
１３０    受信（ＲＸ）ＦＩＦＯ
１３２    媒体インタフェース
１３４    外部バッファ・メモリ・インタフェース
１３６    クロック合成回線
１３８    システム・バス
１４０    媒体
１４２    外部バッファ・メモリ
【図１】
0003808548.tif 000002
【図２】
0003808548.tif 000003
【図３】
0003808548.tif 000004
【図４】
0003808548.tif 000005
【図５】
0003808548.tif 000006
【図６】
0003808548.tif 000007
【図７】
0003808548.tif 000008
【図８】
0003808548.tif 000009