JP2000512445A - ロード多重命令およびメモリライトバックを有する非同期転送モードセル処理システム - Google Patents

ロード多重命令およびメモリライトバックを有する非同期転送モードセル処理システム

Info

Publication number
JP2000512445A
JP2000512445A JP09540271A JP54027197A JP2000512445A JP 2000512445 A JP2000512445 A JP 2000512445A JP 09540271 A JP09540271 A JP 09540271A JP 54027197 A JP54027197 A JP 54027197A JP 2000512445 A JP2000512445 A JP 2000512445A
Authority
JP
Japan
Prior art keywords
cell
scoreboard
processor
memory
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP09540271A
Other languages
English (en)
Inventor
バーガンティノ、ポール、ヴイ
ルシアー、ダニエル、ジェイ
Original Assignee
メイカー コミュニケーションズ インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by メイカー コミュニケーションズ インコーポレイテッド filed Critical メイカー コミュニケーションズ インコーポレイテッド
Publication of JP2000512445A publication Critical patent/JP2000512445A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/255Control mechanisms for ATM switching fabrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 非同期転送モード(ATM)通信システムにおいて、セルを処理するための方法と装置。ATMセルプロセッサ(12)は、外部制御メモリ(22)からのデータブロックのバースト転送を提供するロード多重指令を含み、ロードされた値に対するその後の操作結果が、前回その値が読み込まれた制御メモリ(22)のロケーションに自動的にライトバックされることを可能にする。この指令は検索されるべきデータブロックの、制御メモリ(12)におけるアドレスと、データブロックの第一検索ハーフワードがロードされる、CPU(50)レジスタファイル内の目的レジスタと、検索されるハーフワードの全数とを特定することが可能である。当該指令は、検索されたハーフワードを受け取るプロセッサレジスタを関連づける情報の記憶を、そのハーフワードが読み込まれる制御メモリ(22)ロケーションに向けさせるリンクフィールドオプションを含む。

Description

【発明の詳細な説明】 ロード多重命令およびメモリライトバックを有する 非同期転送モードセル処理システム発明の分野 本発明は、一般に非同期転送モード(ATM)通信システム、より詳細にはA TM通信システムにおけるATMセル処理動作に関するものである。関連出願 本出願は、各々がこれとともに同時に出願され、本譲受人に譲渡された下記の 米国特許出願に関連している。すなわち、“スコアボードスケジューリングを有 する非同期転送モードセル処理システム(Asynchronous Transfer Mode Cell Pr ocessing System With Scoreboard Scheduling)”,出願第08/647,374号;“多 重セル発生源多重化を有する非同期転送モードセル処理システム(Asynchronous Transfer Mode Cell Processing System With Load Multiple Instruction an d Memory Write-Back)”,出願第08/647,373号;“セルバッファスペースギャ ザリングを有する非同期転送モードセル処理システム(Asynchronous Transfer Mode Cell Processing System With Cell Buffer Space Gathering)”,出願第 08/647,371号;および“モジュロベース命令分岐を有する非同期転送モードセル 処理システム(Asynchronous Transfer Mode Cell Processing System With Mod ulo‐Based Instruction Branching)”,出願第08/647,375号。発明の背景 非同期転送モード(ATM)通信システムは、音声、データ、ビデオ、 および他の種類のユーザ情報トラフィックの高速、低遅延多重化および交換を支 援するように設計ざれている。ATMシステムはユーザトラフィックを固定長の 53バイトセルにセグメント化する。各セルの5バイトヘッダは、一般的には対 応するセルに関連する仮想チャネル識別子(VCI)および仮想パス識別子(V PI)を含んでいる。VCIフィールドおよびVPIフィールドは一緒に、ユー ザがATMシステムのネットワーク接続をリクエストする場合、確立される仮想 接続(VC)を識別する。ATMシステムのこれらのアスペクトおよび他のアス ペクトに関する付加的詳細は、その両方が参照してここに組み込まれる、ATM フォーラム、“ATMユーザネットワークインタフェース仕様(ATM User‐Netw ork Interface Specification)”(1994年9月、バージョン3.1)およ び1993年、ニューヨーク市のエリスハーウッド社発行のMartin de Prycker 著の文献“非同期転送モード(Asynchronous Transfer Mode:広帯域ISDNの ための解決策(Solution for Broadband ISDN)”に見出すことができる。ユー ザトラフィックセルへの使用可能な伝送機会あるいはスロットの割り当ては、一 般にセルスケジューリングと呼ばれる。 1つの可能なATMセルスケジューリング技術は、所与のVCに関してセルを このVCに割り当ててVCをサービスすべき理想の時間を計算することを必要と する。したがって、ATMスケジューリングシステムは、スケジュールの記憶テ ーブル、リストもしくは他の種類のスケジュールにおいて、所与のVC Xは時 間Yでスケジューリングの準備ができている事実を示すことができる。1つある いはそれ以上の他のアクティブVCは時間Yでサービスすることを予めリクエス トできたために、このようなセルスケジューリングシステムは、一般的には一方 の次元が時間であり、他方の次元が所与の時間にサービスされるようにスケジュ ールされるVCのリストであるスケジュールリクエストの2次元リストを必要と する。 このような2次元セルスケジュールに関する重要な問題は、時間だけにもはや 基づいて計算ができないという事実のために特定のVCを何時サ ービスするようスケジュールすべきかをスケジューリングシステムが決定するの が困難なことである。これは、任意の所与のスケジューリング時間において任意 の深さのバックアップがある可能性があるためである。結果として、サービスプ ロセッサは、連続するスケジュール時間に遅れて到達することがある。スケジュ ーリングシステムがサービスプロセッサに生じる遅延を認識していたならば、時 間外にスケジュールされているVCは、時間的により早くスケジュールすること ができたはずである。例えば、スケジューリングシステムは、遅延を明らかにで きれば、連続セル伝送事象間に必要な経過時間を保持している一方、所定のVCを 時間的により早くスケジュールできたであろう。この2次元スケジューリング技 術は、効率の悪いスケジューリングおよびその結果としてシステムスループット の減少を生じさせる。 従来技術のATMセルプロセッサは、多数の他の欠点ももつ。例えば、ほとん どの使用可能なセルプロセッサは、一般的には、増加されたスループット速度を もたらすハードワイヤード方式あるいは高度の汎用性をもたらすがスループット 速度の減少の犠牲を払っているプログラム可能な方式のいずれかを利用する。他 の問題は、従来技術のセルプロセッサ方式では、いろいろな異なるATM方式の 製品で使用することに適している、共通の、再プログラム可能なアーキテクチャ をシステム設計者が提供できないことである。従来技術のセル処理に関する他の 重大な問題は、静的ランダムアクセスメモリ(SRAM)あるいは他の種類の制 御メモリあるいはシステムメモリからの制御情報にアクセスする際の待ち時間、 可変ビット伝送速度(VBR)トラフィックがある場合の一定ビット伝送速度( CBR)トラフィックのスケジューリング、そして、仮想パス(VP)トンネリ ングのためにサポートを提供することができる従来技術装置の故障(fallure)と を含んでいる。 上記から明らかなように、上記の従来技術の問題を避けるよう改良されたAT Mセルスケジューリング技術、サービス技術および他の処理技術 が必要とされている。発明の概要 本発明は、ATM通信システムにおいて非同期転送モード(ATM)セルを処 理する装置および方法を提供する。本発明は、改良されたATMセルプロセッサ アーキテクチャのみならず改良されたセルスケジューリング技術およびサービス 技術を提供する。本発明によるATMセルプロセッサは、特に高速ATMセル処 理用途で使用するのに最適であり、一般的には全ハードワイヤード装置でのみ実 現できる速度でセルスループットを提供できると同時にプログラム可能な装置に 、より向上した汎用性を提供する。本発明によるセルプロセッサに基づく通信シ ステムは、異なる動作パラメータを生じるように容易に構成できるので、ATM 規格の変更による影響を比較的受けない。多数のこのような変更は、比較的簡単 なソフトウェアおよび/またはファームウェア変更によって本発明のセルプロセ ッサで実現できる。 本発明の1つの態様はATM通信システムにおいてセルを割り当てる方法を含 む。この方法は、一次スコアボードの形で第1のビット群を発生するステップを 含んでいる。一次スコアボードの各ビットは、通信システムの伝送リンクのセル タイムスロットを示し、所与の一次スコアボードビットの値は、対応するセルタ イムスロットが伝送のために使用可能であるか否かを示している。ATMシステ ムの所与の仮想接続のセルスケジューリングリクエストに応答して、プロセッサ は、目的タイムスロットに対応するビットで開始し、使用可能なタイムスロット に対応するビットが識別されるまでスコアボード上を進む、一次スコアボードの 検索を命令する。使用可能なタイムスロッ1へは、そのとき、識別された一次ス コアボードビットをセットし、識別された一次スコアボードビットに対応するロ ケーションの接続IDテーブルに、仮想接続のための接続識別子(ID)を記憶 することによってスケジュールされる。一次スコアボードおよび接続ID テーブルは、両方共、ATMセルプロセッサが高速メモリポートを通してアクセ スする外部制御メモリに保持することができる。それとは別に、一次スコアボー ドおよび/または接続IDテーブルは、スケジューリング時間をさらに減らすよ うにATMセルプロセッサの内部のメモリロケーションのセットに保持でき、そ れによって通信リンクのより高い速度およびより複雑なスケジューリングアルゴ リズムを効率的に実現することが可能になる。 スケジュールされたタイムスロットは、接続IDテーブルでアドレスを指定す る処理命令(servicing instruction)に応じて処理される(serviced)。このロ ケーションの接続IDは、このロケーションに対応する一次スコアボードビット として引き出される。この一次スコアボードビットはプロセッサの割り当てられ たセルフラグレジスタ(ACFR)にコピーされ、それから次のスケジューリン グリクエストのためにそのタイムスロットを解放するよう、このスコアボートは クリアされる。次に、プロセッサは、処理命令に応じて引き出された接続IDに よって識別される仮想接続のために、セルの構築あるいは引き出しを指示し、ス ケジュールされたタイムスロットでATMリンクを介して伝送するためのセルを 待ち行列に入れる。 本発明の他の態様は、一次スコアボード検索時間を受容できる範囲に制限する 方法を含む。二次スコアボードは記憶ビット群の形で生成され、その結果各二次 スコアボードビットが、一次スコアボードビットの対応するブロックが使用可能 なセルタイムスロットを示すビットを含んでいるかどうかを示している。スケジ ュール命令に応じて一次スコアボードを検索する場合、ATMセルプロセッサは 、まずスケジュール命令において指定された目的スロットを含む一次スコアボー ドビットのブロックの引き出しおよび検索を命令する。引き出されたブロックに 使用可能なスロットが全くない場合、ATMセルプロセッサは、使用可能なスロ ットを含む一次スコアボードブロックのロケーションを決定するために二次スコ アボ ードを使用する。ATMセルプロセッサは、一次スコアボードビットの現ブロッ クへのアクセスと平行して二次スコアボードにアクセスできるので、現ブロック が使用可能なビットを含んでいない場合、ATMセルプロセッサは使用可能なビ ットを含んでいる一次スコアボードブロックを識別する二次スコアボード情報を 既に有することになる。この並列アクセス機能は検索処理速度を高める。使用可 能なスロットが引き出された一次スコアボードブロックで示される場合、ブロッ クの残りは、このブロックに残っている任意の他の使用可能なスロットがあるか どうかを決定するために検索される。使用可能なスロットが全く残っていない場 合、一次スコアボードブロックに対応する二次スコアボードビットは、ブロック の全てのスロットが使用不可能であることを示すようにセットされる。このよう に、プロセッサは、使用可能なタイムスロットを示すビットを含まない一次スコ アボードの部分すべてを検索するという時間浪費をしない。検索時間は、各二次 スコアボードビットによって示された一次スコアボードの数を適切に選択するこ とによって所望のメモリ読み出しサイクル数に制限される。二次スコアボードは 、セルプロセッサダイサイズを過度に増加させないで、ATMセルプロセッサの 内部のメモリロケーションのセット内に保持できる。 本発明の他の態様は、トンネリング操作を処理する技術を含む。1つあるいは それ以上の仮想パス接続の各々は、仮想チャネル接続のトンネリングのために一 次スコアボードに1つあるいはそれ以上のセルタイムスロットを確保する。この 一次スコアボードはマスタスコアボードと呼ばれる。仮想パス接続のために確保 されたスロットに対応するマスタスコアボードビットは適切なスケジュール命令 を使用してセットされる。トンネル制御スコアボードと呼ばれる別個の一次スコ アボードは、マスタスコアボード上にロケーションを確保する仮想パス接続の各 々に対して生成される。マスタスコアボード上の予約されていないセルタイムス ロットに対応するビットは、使用不可能性を示すようにセットされるのに対して 、所与 の仮想パス接続のために一次スコアボード上に確保されたセルタイムスロットに 対応するビットはクリアされて使用可能性を示すように、各トンネル制御ボード のビットは構成される。この接続が適切に確保されたビットロケーションに向け られるように、トンネル制御ボードを利用して、対応する仮想パストンネルを使 用する仮想チャネル接続をスケジュールする。 スケジュールされたセルタイムスロットは処理命令を発行ことによって処理さ れる。ATMセルプロセッサは、所与の仮想接続のためにまさに処理されようと するタイムスロットがトンネル機能を利用する仮想パス接続のために確保された タイムスロットであるかどうかを示すためにローカル制御メモリに駐在するマス タスコアボードのブロックあるいは他の部分をチェックできる。ATMセルプロ セッサがタイムスロットが仮想パス接続のために確保されたと判定した場合、こ のプロセッサは、対応するトンネル制御スコアボードの対応するタイムスロット をチェックすることによって処理するのはどの仮想チャネル接続であるかを決定 する。接続を処理した後、プロセッサは、予め予約されたバンド幅が伝送リンク 上で使用可能なままであるように、仮想パス接続用セル時間を再予約するために マスタスコアボードの現セル時間を再スケジュールする。仮想チャネル接続がさ らに処理を必要とする場合、プロセッサは対応するトンネル制御スコアボードで この接続を再スケジュールする。仮想パス接続のためのマスタ一次スコアボード および別個のトンネル制御スコアボードの両方を使用することによって、ユーザ は、所与の仮想パス接続のための伝送リンク上で、例えば、多数のマスタスコア ボードビットによって表される一定ビット伝送速度(CBR)セルストリームを 予約できると同時に、トンネル制御スコアボードを使用して所与の仮想パス接続 の個別の仮想チャネルのための使用可能なビット伝送速度(ABR)接続をスケ ジュールすることができる。 本発明の他の態様は、ソフトウェアテーブルへの高速アクセス(FAS T)制御メモリからのデータブロックのバースト転送をもたらし、ロードされた 値についての次の操作から生じた結果を、この値が予め読み出された制御メモリ ロケーションに自動的にライトバックできるロード多重命令を含む。この命令は 、引き出されるデータブロックのFAST制御メモリのアドレス、データブロッ クの第1の検索ハーフワードがロードされるCPUレジスタファイルのデスティ ネーションレジスタ、および引き出される全ハーフワード数を特定する、FAS Tメモリからのロード多重(LMFM)命令として実行できる。LMFM命令は 、引き出されたハーフワードを受け取るプロセッサレジスタを関連づける情報の 記憶を、そのハーフワードが読み出された制御メモリロケーションに向けさせる リンクフィールドオプションも含む。したがって、自動メモリ更新機能は、例え ば、LMFM命令によって引き出されたハーフワードを受け取る1つあるいはそ れ以上のプロセッサレジスタ上で動作する算術論理演算装置(ALU)命令に備 えることができる。この機能は1つあるいはそれ以上のオペランドを供給した制 御メモリロケーションに、対応するALU演算の結果がライトバックされるこど を示す更新メモリ(UM)フィールドをALU命令に含むことによってもたらす ことができる。 本発明の他の態様は、算術演算の結果のモジュロ部分の分岐を可能とするモジ ュロ算術機能である。典型的な実施例では、ALU命令は、右側から左側へのビ ット数を指定するモジュロフィールドを含むように修正され、その後の対応する ALU演算の結果は切り捨てられる。ゼロ結果の場合の分岐(branch on zero re sult)、非ゼロ結果の場合の分岐(branch on zero no-result)、負の結果の場合 の分岐(branch on negative result)、桁上げの場合の分岐(branch on carry)お よびオーバーフローの場合の分岐(brancho no verflow)のような条件付分岐命令 は、ALU命令結果のモジュロ部分だけで演算するように構成される。他の実施 例では、条件付分岐は、全部あるいは一部において、例えば、モジュロ部分の最 上位ビット(MSB)桁からの桁上げによることができる。 本発明の他の態様は、多数のセルバッファの朱使用部分が隣接する仮想メモリ 空間としてアドレス指定できるセルバッファRAM(CBR)メモリ空間収集プ ロトコルである。空間収集プロトコルは、仮想CBRアドレスに付加された収集 ビットをセットするためにCPUあるいはATMセルプロセッサの直接メモリア クセス(DMA)コントローラを使用できる。CBRのアドレス発生器は、収集 ビットを検出し、物理アドレスのセット収集ビットを含むこれらの仮想アドレス をCBRメモリ空間に変換する。この変換は、例えば、未使用の8バイトを任意 の所与の64バイトセルバッファの最下部に到達するように物理アドレスの任意 のビットを所定の状態にセットし、仮想アドレスの任意のビットを物理アドレス の他の桁にシフトさせて、隣接仮想空間においてセルバッファからセルバッファ に移動させる。多重収集空間は、異なる収集ビット数を使用することによって他 の実施例においてもサポートされる。所与の仮想アドレスのセット収集ビットの 位置はCBRメモリサイズに応じて変わり得る。 本発明の他の態様は、スケジューリングリクエストの多重レイヤおよび/また は外部セルソースに有効的に適合する“バブル”カウント技術を含む。スケジュ ーリングリクエストの多重レイヤの場合、第1および第2の一次スコアボードは 、例えば、上位および下位の優先順位トラフィック、高速および低速のセル速度 トラフィック、あるいは外部発生および内部発生のトラフィックのそれぞれのス ケジューリング/処理のために備えられている。バブルカウントは第2のスコア ボードのために保持され、カウントは、第1のスコアボードが処理される度に増 分され、アイドルスロットが第2のスコアボードで見られるが伝送のために待ち 行列に入れられていない度に減少される。したがって、第2のスコアボードのた めのスケジューリングリクエストは、バブルカウントに加えて目的時間に行われ る。外部セルソースおよび内部セルソースを多重化する場合、バブルカウントは 、所与の伝送リンクで送られているが一次スコアボードでスケジュールされてな いセル数を示すことができ、一次スコアボードが処理される度に 増分し、一次スコアボードのアイドルスロットが見られるが伝送のために待ち行 列に入れられていない度に減少することができる。バブルカウント応用のセル処 理は、一次スコアボードの目的アドレスを指定し、セットビットが目的アドレス から目的アドレスおよびバブルカウントの和の範囲にあるかどうかを決定するポ ップレンジ(POPR)処理命令の使用によって容易にすることができる。 本発明の他の態様は、異なる仮想接続の間における完全な速度の独立性を提供 する能力と、所与の仮想接続がアクティブとみなされる任意の所与の時間に、単 一のスケジュールリクエストのみが一次スコアボートに存在することを必要とす る、本質的にフェアなバンド幅割り当てを提供する能力と、トラフィック優先順 位あるいはセル速度に基づいて多重スコアボードを使用してスケジューリングリ クエストの多重レイヤをサポートする能力と、セルプロセッザによって内部的に 構成され、あるいは検索されるセルと、外部ソースからのセルとの多重化をサポ ートする能力とを含んでいる。 本発明による典型的なセルプロセッサは、目的スロットが占有されている場合 、実際に第2の次元を取り除き、処理リクエストを時間外に押しやることによっ て、2次元セルスケジューリングに関連する前述の問題を解決する。結果として 、各タイムスロットは、通常、単一のリクエストペンディングだけを有し、引き 続くスケジューリング動作は、かなり正確な時間表示を有する。本発明による1 次元スケジューリング方式は、一般的にセルスケジュールを示す一次スコアボー ドの検索を利用するが、全システムスループット性能が改善されるような効率的 な方法でこのスコアボード検索を実行する技術が本発明によって提供される。例 えば、本発明による典型的なセルスケジューリングシステムは、前述された二次 スコアボードを使用することによって、受容できる制限時間間隔内で、所与の可 能なロケーション範囲内において使用可能なセルロケーションを見出すことがで きる。 本発明の他の長所は、セルプロセッサ内でCPUとともにATM固有タスクを 処理するためにいろいろな専用回路を使用できることである。これらの専用回路 は、セルプロセッサCPUからの多数のタイムクリティカル機能を取り除くこと ができ、それによって性能および機能性のレベルがかなり向上する。このような 専用回路の例は、ここではセルスケジューリングシステム(CSS)と呼ばれる ハードウェアベースのトラフィック・シェイピング機構である。CSSは通常セ ルプロセッサCPUによって、要求されたトラフィックパターンに関する指令を 行うが、CSSはATMセル処理動作の全てのトラフィック・シェイピング機能 を管理するように構成することができる。これにより、全体のプロセッサスルー プット性能を著しく落とすことなく、アルゴリズムトラフィック・シェイピング の利点をユーザが享受するこどができる。 本発明の前述の機能および長所は、所与の実施例において、例えば、(1)6 00Mb/sあるいはそれ以上までの速度で、動作し、(2)使用可能なビット 伝送速度(ABR)処理のためのATMフォーラムトラフィック管理仕様に従っ て動作し、(3)並行定ビット伝送速度(CBR)、可変ビット速度(VBR) およびABRの接続を管理する内蔵装置として作動し、それにより他のタスクの ためにホスト処理リソースをフリーにする、(4)トラフィック・シェイピング のアルゴリズム処理に伴う速度ベースおよびカンタム・フロー制御ベースのAB R処理をサポートし、(5)ATMレイヤ処理アプリケーションで実行し、(6 )仮想パストンネリングを実行し、それによって一連のVBR、ABRあるいは 未指定ビット伝送速度の接続がCBR仮想パス接続の中に割り当てできる(tunn eled across)、および/またはの複数のスコアボードを使用して多重伝送リン クを同時に管理し、スケジュールし、トラフィック・シェイピングできる、セル プロセッサに帰する。本発明のこれらおよび多数の他の機能および長所は、シス テム設計者にそのATM製品のための共通の、再プログラム可能なセルプロセッ サアーキテクチャを提供する。したがって、本発 明は、より低いATM製品開発コスト、より短い開発サイクルおよびサポート装 置のコストをかなり削減することができる。図面の簡単な説明 図1Aは、非同期転送モード(ATM)セル処理システムのブロック図である 。 図1Bは、図1Aのセル処理システムで使用するのに適している典型的な制御 メモリ構成を示している。 図2は、本発明によるATMセルプロセッサの詳細なブロック図である。 図3Aは、図2のセルプロセッサで使用するのに適している典型的なセルバッ ファRAM(CBR)構成を示している。 図3Bおよび図3Cは、本発明による典型的なCBRメモリ空間収集プロトコ ルの動作を示している。 図4は、本発明によるセルスケジューリング動作で使用するのに適している典 型的な一次スコアボードおよび接続IDテーブルを示している。 図5は、本発明による典型的なセルススケジューリング操作の動作を示すフロ ー図である。 図6は、本発明による典型的なセル処理操作の動作を示すフロー図である。 図7は、本発明によるセルスケジューリング・処理動作の例を示す図である。 図8は、本発明による二次スコアボードを使用する限定検索を示すフロー図で ある。 図9は、本発明による図2のATMセルプロセッサで実行できるトンネリング 動作を示す。発明の詳細な説明 本発明は、下記の簡単な輪郭で詳述されるような多数の異なる部分で説明され る。 1. ATMセル処理システム 1.1処理メモリ 22 2. ATMセルプロセッサアーキテクチャ 2.1 総論 2.2 中央処理装置(CPU)50 2.3 自動メモリ更新を有するロード多重命令 2.4 結果のモジュロ部分の分岐に関するモジュロ演算 2.5 セルバッファRAM(CBR)52 2.6 CBRメモリ空間収集プロトコル 3. 一次スコアボード/接続IDテーブルを使用するCSS56の動作 4. スケジューリング命令 4.1 PUSHC命令 4.2 PUSHF命令 5. 処理命令 5.1 POPC命令 5.2 POPF命令 6. セルスケジューリング処理の付加的細部 6.1 制限された一次スコアボード検索時間 6.2 CSS命令バッファ 6.3 一次スコアボードおよび接続IDテーブルのアドレス指定 6.4 一次スコアボードの初期設定 6.5 一次スコアボードサイズの選択 6.6 多重スケジュールの使用 7. CSS動作の例 8. 二次スコアボードを使用する制限された一次スコアボード検索 9. CBS接続のためのバンド幅の予めの予約 10. トンネリング 11.完全独立速度 12.本来公正なバンド幅割り当て 13.スケジュールリクエストの多重レイヤ 14.外部ATMセル多重化 1つあるいはそれ以上の伝送リンク上の同期転送モード(ATM)セルのスケ ジューリングとどもにここに示されているけれども、本発明は、任意のバンド幅 割り当て資源上へのセルのスケジューリングに対してより一般的に適用可能であ る。例えば、ファーストイン・ファーストアウト(FIFO)キューは、所与の 実施例においてATMセルプロセッサと物理的伝送リンクとの間に配置でき、セ ルがリンク上に直接スケジュールされるよりもむしろキューの中にスケジュール される。さらに、セルは、リンク上に直接スケジュールされるよりもむしろAT M交換機構、バックプレーンあるいは他の適当な装置を通して本発明によりスケ ジューリングできる。したがって、ここに使用されるような用語“伝送リンク” は任意のバンド幅割り当て資源を含み、キュー、交換機構、バックプレーンある いは他の装置がセルプロセッサと物理的伝送リンクとの間に置かれているこれら を含むように広義に解釈されるべきである。本発明はセルストリームをシェイピ ングするためにATM交換システムで利用できることにも注目すべきである。例 えば、本発明によるセルスケジュールシステムは、セルが所与のパケットから構 成されるべき時よりもむしろ何時セルが送られるべきかを示すために使用できる 。セルスケジューリングシステムおよび他の関連セル処理要素はATMセル処理 交換システムの入力あるいは出力のいずれかに置くことができる。 1. ATMセル処理システム 図1Aは、本発明による典型的な非同期転送モード(ATM)セル処理システ ム10を示している。このシステム10は、この実施例では、ホストコンピュー タのホス1へ中央処理装置(CPU)14と対話するように 構成されているATMセルプロセッサ12を含んでいる。セルプロセッサ12は 、ネットワークインタフェース16を介してATM通信ネットワークを介してA TMセルを送受信する。セルプロセッサ12は、下記により詳細に記載されてい るUTOPIAポートインタフェースを介してネットワークインタフェース16 と通信できる。ネットワークインタフェース16は、同期光ネットワーク(SO NET)インタフェース装置のような物理レイヤ制御装置を示すことができる。 セルプロセッサ12は、後述されるようにATMセルを処理するためにシステム メモリ18、内容参照可能メモリ(CAM)20および制御メモリ22をアクセ スする。制御メモリ22は、ここでは高速アクセスソフトウェアテーブル(FA ST)制御メモリ、すなわち単にFASTメモリとも呼ばれ、制御メモリを使っ てソフトウエアテーブルあるいはセルを処理するためにおよび接続サービスする ために使用される他のデータ構造を保持する。セルプロセッサ12は、高速AT Mセル処理応用で使用するために設計され、一般的には全ハードワイヤード方式 とのみ関連する速度でセルスループットをもたらすように構成されると同時にプ ログラム可能な装置の汎用性長所をもたらす。例えば、セルプロセッサ12は、 600Mb/sあるいはそれ以上までの速度で作動するように容易に構成される と同時にセルスケジューリングおよびトンネリングのような多数の動作パラメー タの全プログラム可能性をもたらす。セルプロセッサ12とシステム10の他の 要素との相互接続は単なる例示であり、多数の代替の構成は所与の応用で利用す ることができることを理解すべきである。 1.1 制御メモリ22 図IBは、FAST制御メモリ22の可能な実現をより詳細に示している。こ の典型的な制御メモリは、上部32k×32構成部分および下部32k×32構 成部分を含んでいる64k×32の静的RAM(SRAM)のように構成されて いる。ATMセルプロセッサ12は、後述される FASTメモリコントローラを介して制御メモリ22の内容に低呼び出し時間の アクセスができる。制御メモリ22の内容は、下記により詳細に記載されている 一次スコアボードおよび接続IDテーブルのようなルックアップテーブルのみな らず仮想接続記述子(CD)、プログラムコード、トラフィック・シェイピング メモリを含んでもよい。上部32k×32構成部分は、8kバイト受信機リダク ションマップと、8kバイトの種々雑多な部分と、3.5kバイトの受信CDと を含んでいる。受信CDの各々は、対応する接続のための受信セルを処理するた めにセルプロセッサ12によって利用される情報を含んでいる。8kバイトの種 々雑多な部分は、256×16の一次スコアボードと、32の使用可能なビット 伝送速度(ABR)プロフィールセット、32の定ビット伝送速度(CBR)プ ロフィールセットと、セル間放出間隔(ICI)変換テーブルへの送信使用可能 なセル伝送速度(ACR)と、ATM適合レイヤ5(AAL5)セグメンテーシ ョンおよびリアセンブリ(SAR)エグゼクティブとを含んでいる。下部32k ×32構成部分は、8kバイト送信ポインタテーブルと、8kバイトの種々雑多 な部分と、3.5kバイトの送信CDとを含んでいる。送信CDの各々は、対応 する接続ための送信セルを生成するためにセルプロセッサ12によって利用され る情報を含んでいる。図IBの典型的な制御メモリ22は、一次スコアボードの ための空間を含むように示されているけれども、外部メモリよりもむしろセルプ ロセッサ12のオンチップメモリに一次スコアボードを記憶することは多数の用 途では好ましいこともある。 2.ATMセルプロセッサアーキテクチャ 2.1 総論 図2は、本発明による典型的なATMセルプロセッサ12のブロック図である 。セルプロセッサ12は、ATMネットワークプロトコルプロセッサの役をする CPU50を含んでいる。CPU50は、512×16の セルバッファランダムアクセスメモリ(RAM)52と、システム10のFAS T制御メモリ22をアクセスするFASTメモリコントローラ54と、セルスケ ジューリングシステム56と、外部バス接続部60を介してシステム状態を供給 するチップ間信号(ICS)システムと、プロセッサ命令キャッシュ62と通信 する。セルプロセッサ12は、SONETインタフェース装置のような物理レイ ヤ(PHY)装置を介してATMネットワークに接続するためのUTOPIAポ ート64を含んでいる。用語UTOPIAは、ATMセルプロセッサ12のよう なATMレイヤ装置とSONETインタフェースのような物理レイヤ装置との間 の通信のためのATMフォーラムによって規定された標準ハンドシェーク/デー タ転送プロトコルを示す。他のプロトコルは、プロセッサ12とATMネットワ ークとをインタフェースするためにも使用できる。セルプロセッサ12は、高性 能の32ビットの直接メモリアクセス(DMA)インタフェースであってもよい ポート1バスインタフェース68と、汎用16ビットDMAインタフェースであ ってもよいポート2バスインタフェース72とをさらに含んでいる。ポート1イ ンタフェース68は、バス接続部70を介してシステム10のホストCPUに接 続でき、ポート2インタフェース72は、システム10のシステムメモリ18お よび/またはCAM20にバス接続部74を介して相互接続できる。CPU50 は、本発明の譲受人のマサチューセッツ州Walthomのメーカー・コミュニケーシ ョンズIncによって開発されたソフトワイヤードATMネットワークプロトコ ル(SWAN(登録商標))プロセッサであってもよい。セルプロセッサ12は 、用途指向集積回路(ASIC)あるいは他の適当なディジタルデータプロセッ サとして実現できる。典型的な単一パッケージセルプロセッサは、メーカー・コ ミュニケーションズによって開発された部品番号MX3010である。 2.2 中央処理装置(CPU)50 次に、CPU50はより詳細に記載される。CPU50は、簡略命令セット計 算(RISC)技術による限られた命令セットを使用するように構成されてもよ い。使用された特定な命令は、従来の複合命令セット計算(CISC)技術も組 み込んでもよく、それによって付加的汎用性をもたらす。RISCプロセッサの パイプライン速度とCISCプロセッサの命令セットパワーとを組合せることに よって、CPU50は、約600Mb/sあるいはそれ以上程度の処理速度で全 ハードワイヤード装置のスループット性能に匹敵するスループット性能を達成す ることができる。CPU50は、ATM用途に特に最適な命令およびデータアク セス方法を利用する。例えば、後述されるセルスケジューリング命令プッシュセ ル(PUSHC)およびセルサービス命令ポップセル(POPC)は、単一プロ セッサ命令サイクルで複合タスクを始動できるATM指向命令である。これらの 専用命令および他の専用命令は、従来技術のATM処理システムに対して著しい 性能利得をもたらす。 CPU50は、16ビットの算術論理演算装置(ALU)を含み、ハーフワー ドインクリメントの32ビットの命令ワードを使用する16ビットのプロセッサ であっでもよい。ここで使用されるような用語“ハーフワード”は、一般に16 ビットの構造、すなわち32ビットワードの半分を示しているけれども、ハーフ ワードに関して述べられている本発明のいろいろな態様は、もちろん他のサイズ のデータ構造を利用できる。16ビットのプロセッサとしてのCPU50の構成 は、ATMセル処理応用で処理される大部分のデータ構造はサイズが16ビット あるいはそれ以下であり、16ビットよりも大きいこれらのATMデータ構造は 、その各々が16ビットあるいはそれ以下である2つあるいは以上の別個のフィ ールドでしばしば構成されているという事実を利用する。16ビットプロセッサ は、一般にこれらのATMデータ構造のより有効な圧縮および処理を可能にし、 高いパイプライン周波数をもたらすと同時に対費用効果を保持する。例えば、C PU50のための全ての非ディスパッチ命令は単一クロッ クサイクルで実行するように設計されてもよい。CPU50は、入力クロック信 号の周波数を2倍にするか、あるいは他の方法で増加させるオンチップ位相ロッ クループ(PLL)あるいは他の周波数乗算機構を含んでもよく、それによって CPU50は入力クロック周波数の倍数で作動できる。CPU50は、分岐命令 がサイクル当たり1命令の有効なサイクル速度で作動することを保証する遅延分 岐技術も利用できる。下記により詳細に説明されているPUSHC命令およびP OPC命令のようなディスパッチ命令は、完了するのに1サイクル以上を一般に 必要とするが、その実行はCPU50以外で生じるので、プロセッサ50はディ スパッチ命令が実行している間機能停止されない。ALUは、所与のレジスタを 修正する命令の直後に多くの場合にはこの同じレジスタをアクセスする命令があ り得るという点でフィードバックを使用できる。 典型的な実施例のCPU50は64の16ビットレジスタを含んでいる。これ らのレジスタの32は汎用レジスタファイルを構成しているのに対して、残りの 32は専用レジスタあるいはハードウェアレジスタとみなされる。ALU命令は 、2つのソースレジスタの内容で作動するか、あるいはソースレジスタの内容お よび即値あるいは使用可能値で作動する。 CPU50のある種のレジスタによって、ATMセルプロセッサ12は、ホス トCPU14との両方向通信チャネルを実現できる。これらのレジスタは、ホス トCPU14がコマンド、状態、アドレスおよび他の情報をプロセッサ12に書 き込むことができる2つの16ビットCOMMINレジスタと、ホストCPU1 4がコマンド、状態、アドレスおよびその他の情報をプロセッサ12から読み出 すことができる2つの16ビットCOMMOUTレジスタとを含んでいる。プロ セッサ12のCOMMINレジスタおよびCOMMOUTレジスタはホストCP U14によってポート1バスインタフェース58を介してアクセスされる。 CSS構成レジスタはCPU50に含められる。CSS構成レジスタは、一般 的にはCSS56が使用される前にATMセルプロセッサ12を 操作させるソフトウェアによって初期設定される。CSS構成レジスタは、接続 識別子(ID)テーブルおよび一次スコアボードの制御メモリ22のベースアド レスを示している。その両方ともセルスケジューリング動作で使用され、下記に より詳細に記載されている。このレジスタは、所与のスケジューリング動作で使 用されるスコアボードのサイズも示している。 割り当てられたセルフラグレジスタ(ACFR)は、CPU50に含められ、 セルスケジューリング動作およびサービス動作で使用される。例えば、ACFR は、POPC動作の完了でCSS56によってアクセスされる。CSS56は、 POPC動作によって対象にされたスコアボードビットをACFRにコピーし、 それから、CPU50は、ACFRを調べリクエストセルが正確にスケジューリ ングされたかどうかを決定できる。 チップ間通信のための機構はCPU50によって提供される。外部状態ステー タス装置76は、ICS58およびUTOPIAポート64を介して、CPU5 0がプロセッサ12の外部要素、サブシステム等の状態を検出し、この状態情報 に基づく処理決定を行うことができる信号にアクセスできる。プロセッサ50は 、ICS58を介して外部要素およびサブシステムに内部状態情報も供給できる 。 多数の条件分岐命令および無条件分岐命令はCPU50に備えることができる 。条件分岐命令は、その分岐決定の根拠を外部状態ステータス装置76を介して CPU50の入力として供給される多数の外部状態信号(ESS)の中の1つの 論理状態に置くことができる。ESSは、適当なセル処理決定を行うためにCP U50によって読み出される内部状態信号に接続されている。例えば、分岐命令 は、特定されたESSが適当な論理状態にセットされている場合に分岐する目的 アドレスを指定できる。ソースファイルの対応する命令ワードの命令フィールド オプションが除外される場合、無条件分岐命令の形式が選択できる。 CPU50は、余分のCPUクロックサイクルが付随するスループットの減少 なしに分岐命令を実行するために供給される遅延分岐と呼ばれ る技術を実行するように構成できる。分岐命令に遭遇すると、コミットスロット 命令(CSI)と呼ばれる分岐直後の命令は、取り出され、実行パイプラインに 入力されると同時に分岐命令が処理される。分岐条件が真として評価される場合 あるいは無条件分岐が使用される場合、ネバーエグゼキュート(NE)演算子が 指定されない限り、目的命令の実行がCSIの実行に続く。NE演算子は、一般 的に無条件分岐、すなわちIFOが存在しない無条件分岐のみで指定される。分 岐条件が偽と評価される場合、CSIは、ユーザが分岐を有する条件付実行(C )演算子を指定したかどうかに応じて実行されてもよいし、実行されなくてもよ い。存在するならば、C演算子によって、分岐が行われていない場合、ユーザは CSIを実行しないと指定できる。どの命令がコミットされた分岐のスロットに 入れることができるかに関するある種の制限を適用できる。例えば、コミットさ れた分岐のスロットは、無条件分岐の形式がNE演算子と併用されない場合、A LU条件分岐命令あるいは他の分岐命令を含まないように制限することができる 。 CPUは、ALU演算の結果に基づいた分岐決定が結果を使用できる前に行わ れる予測分岐技術を利用するように構成されてもよい。CPU50は、最初に分 岐条件の結果を予測しようと試み、それから予測が真であるならば実行されるサ ブルーチンを実行することによって予測分岐を実行する。CPUが後で、約2C PUサイクル〜3CPUサイクル内に通常行うことができるその予測が正しくな いと決定するならば、CPUは、望ましくないサブルーチンの実行を終了し、正 しいサブルーチンのプログラム実行を再指令する。本発明の典型的な実施例にお いて、ALU条件付分岐機能はALU命令の中に取り込まれる。この装置は分岐 オフセットを指定するのに十分な命令ワードのスペースを残すことができないた めに、約4命令ワードの固定分岐オフセットを使用してもよい。例えば、CPU が所与の分岐を行うように決定するならば、CPUは、分岐命令から離れた所の 約4命令の位置に分岐する。分岐が行われない場合、CPUは逐次命 令実行を続ける。前述のように、分岐命令に関連したコミットスロット命令(C SI)は、分岐が行われるか否かにかかわらず実行できる。 CPU50は、ロード命令およびストア命令を使用し、CPUレジスタとセル バッファRAM(CBR)52との間にデータを転送する。典型的なロード命令 は、一般的にCBR52からデータの1つあるいは2つのハーフワードを取り出 し、データを適当なCPUレジスタに書き込む。適当なストア命令は、一般的に 1つあるいは2つのCPUレジスタの内容をCBR52に書き込む。CPU50 は、このように単一命令を使用してCBR52から16ビットおよび32ビット のデータ構造の読み出しおよび書き込みを可能にするように構成することができ る。ロードスケジューリングは、CPU50がプログラム実行を続けることがで きるように使用されると同時にCBR52からのデータを待つ。ストア命令は、 CPU50がプログラム実行を続けることができるように書き込みバッファとと もに作動すると同時にデータがCBR52に書き込まれる。 前述されたように、CPU50は、特に伝送するためのスケジューリングおよ びサービスのATMセルのために多数の命令を実行する。これらの命令は、プッ シュセル(PUSHC)命令およびポップセル(POPC)命令を含んでいる。 PUSHC命令は、CPU50によって実行されてセルの伝送のためのタイムスロ ットを探し、予約しようとして制御メモリ22に記憶された一次スコアボードを CSS56に検索させる。POPC命令は、CPU50によって実行され、CS S56に指令して制御メモリ22から指定されたタイムスロットに関連する接続 IDを引き出し、スコアボードビットがセットされていることが検出された場合 、前述の割り当てられたセルフラグレジスタ(ACFR)をセットし、対応する 一次スコアボードビットをクリアし、それによってタイムスロットロケーション を解放する。これらのセルスケジューリング動作およびサービス動作は図4〜図 7とともにより詳細に記載される。 2.3 自動メモリ更新を有するロード多重命令 CPU50は、ロード多重高速メモリ(LMFM)命令を実行することによっ てFAST制御メモリ22から直接その内部レジスタファイルへのデータのバー スト転送を開始できる。典型的なLMFM命令は下記のフォーマットを利用でき る。 LMFM rd @rsa/rab ♯HW{LNK} 上記のものにおいて、rdは、CPU50の初期デスティネーションレジスタを 示し、rsaおよびrsbは、FAST制御メモリ22から転送されるデータブ ロックのアドレスビット(18:16)および(15:0)のそれぞれを含むC PUレジスタであり、#HWは、32ビットメモリワードがLMFM命令によっ てロードされると仮定すると、16ビットのハーフワードの全計数を示し、{L NK}は、存在する場合、リンク機能が呼び出されるべきであることを示す命令 フィールドオプション(IFO)を示している。リンク機能は、レジスタ内容が 読み出される制御メモリ22のロケーションにLMFM命令に応じてロードされ るCPUレジスタを結合するようにFASTメモリコントローラ54に命令する 。このリンクは、FASTメモリコントローラ54にあるいは他の場合にプロセ ッサ12に所与の検索データブロックの制御メモリ22のベースアドレスを記憶 することによって実行できる。本発明の自動メモリ更新機能によれば、ALUあ るいはこれらのCPUレジスタを修正する他の命令は、更新メモリ(UM)IF Oを指定でき、それによって変更が制御メモリ22にライトバックされる。予め 記憶された検索データブロックのベースアドレスは、変更がライトバックされる 特定の制御記憶ロケーションを識別するためにCPUレジスタ番号とどもに使用 される。さらに、制御メモリ22から読み出される第1のハーフワードのコピー は、リンクIFOが存在するならば、コントローラ54のFASTメモリの第1 のワードシャドウレジスタにメモリコントローラ54によって書き込むことがで きる。したがって、CPU50によって実行されるソフトウェアプログラムは、 チャネル記述 子の第1のハーフワードにサービスルーチンアドレスを配置し、BF(分岐FA STメモリの第1のワードシャドウレジスタ)命令を使用し、第1のワードシャ ドウレジスタのアドレスに分岐できる。 LMFM命令によって、CPU50は、制御メモリ22から引き出されるよう に多数のハーフワードを選択できる。FASTメモリコントローラ54は、要求 される数のハーフワードを制御メモリ22から引き出し、これらのハーフワード をレジスタrdに開始するCPUレジスタファイルに直接書き込む。一実施例の LMFM命令は、制御メモリ22から32バイトまでのデータのバースト転送を 開始できる。FASTメモリコントローラ54は、制御メモリ22から戻され、 レジスタrdで開始し、レジスタrd+1、rd+2等で続くハーフワードをC PUレジスタファイルに1回1ハーフワード書き込む。コントローラ54は、ハ ーフワードの量#HWが引き出されてしまうまで、制御メモリ22からデータを 転送し続ける。転送が進行中である間、CPU50はプログラム実行を自由にし 続けるが、一般的に、バースト転送動作によるペンディング変更にあるレジスタ にアクセスしようと試みるべきでない。ハーフワードは、制御メモリ22から戻 されるのでCPU50に利用される。 CPU50は、戻されるハーフワードをアクセスする前に全転送が完了される よう待つ必要がない。データ構造のフィールドが処理されるのと同じ順序でデー タ構造のフィールドを配列することによって、CPU50は、単一命令を使用し て32バイトのデータ構造を引き出すことができ、制御メモリ22から受け取る ので引き出されたデータを処理し続けることができる。CPU50がアクティブ LMFM命令によるペンディング変更にあるレジスタにアクセスしようと試みる ならば、このレジスタのための新しい値が制御メモリ22から戻されるまで機能 停止する。メモリコントローラ54が使用可能である、すなわち書き込みバッフ ァアクセス、セルスケジューリング機能あるいはサービス機能あるいは他の動作 でビジーでないと仮定すると、所与のLMFM命令に応じて読み出される第1の ハーフワードは、一般にLMFM命令が実行された後約5CPUクロックサイク ルを後続処理するのに役立つ。したがって、連続ハーフワードは、その後バース ト転送が完了されるまでCPUサイクル毎に一般に利用される。したがって、C PU機能停止を避けるために、所与のLMFM命令のデスティネーションレジス タにアクセスする命令は約5CPUサイクルだけLMFM命令から分離されるべ きであると同時に命令アクセスrd+1は約6CPUサイクル等だけLMFM命 令から分離されるべきである。FASTメモリコントローラ54が書き込みバッ ファアクセス、セルスケジューリング機能あるいはサービス機能、あるいは他の 動作でビジーであるならば、遅延はわずかに増加する可能性がある。このような 遅延の増加は処理命令の適当な選択および配置によって多数の用途に適合できる 。 前述のように、自動メモリ更新機能によって、CPU50は、例えば、演算の 結果がレジスタ内容を供給した制御メモリ22のロケーションにライトバックさ れるべきである所与のCPUレジスタの内容で操作されるALU命令内に指定す ることができる。これによって、CPU50は、別個のストア命令を実行しない で引き出されたデータ構造を更新できる。自動メモリ更新機能は、典型的な実施 例において、制御メモリ22の参照データブロックがLMFMデスティネーショ ンレジスタに結合されるようにLMFM命令の前述のLNKIFOを指定し、そ れからALU命令の更新命令(UM)IFOを含むことによって実行される。例 えば、指定されたrd=R16およびLNK IFOを有するLMFM命令の実 行によって、レジスタR16〜R31は、CPUレジスタraeおよびrsbに よってアドレスされる16のハーフワードの制御メモリブロックに逐次結合され る。前述のように、このリンクは、引き出されたデータブロックの制御メモリ2 2のベースアドレスをメモリコントローラ54にあるいは他の場合にプロセッサ 12に記憶することによって実行できる。CPUレジスタ番号は、ベースアドレ スおよびレジスタ番号の各組合わせが特定 の制御メモリロケーションを指定するように、引き出されたデータブロックを供 給した制御メモリロケーションへのインデックスとして使用することができる。 例えば、リンクが32の汎用の16ビットのCPUレジスタを有する実施例のア ドレス指定されたN個のハーフワードブロックのハーフワード0で開始すると仮 定すると、Nは、rdがR16であるならば、N=16であり、rdがR24で あるならば、N=8であり、rdが28であるならば、N=4であり、かつrd が30であるならば、N=2であるようにレジスタrdの選択によって固有に決 定することができる。この例において、レジスタR16、R24、R28あるい はR30は、LNK IFOを指定するLMFM命令でrdのために選択できる 。したがって、レジスタ番号とともに引き出されたN個のハーフワードの記憶さ れているベースアドレスはメモリ更新を実行するために使用される。 自動メモリ更新機能とともに前述のLMFM命令は、最大32CPUサイクル だけ典型的なセル処理ルーチンの長さを減少できる。これは、SRAMあるいは 他の種類の制御メモリからのアクセス制御情報に一般的に関連する呼び出し時間 を減少することによって従来技術のセルプロセッサに対して著しい長所をもたら す。自動メモリ更新機能は特にALU命令と併用するのに最適であるけれども、 この機能は他の種類のCPU命令とも併用できることに注目すべきである。 2.4 結果のモジュロ部分の分岐を有するモジュロ演算 CPU50のALUは、モジュロ算術演算をサポートするように構成できる。 ALU命令のMOD IFOは、その後にALU演算の結果が切り捨てられるビ ット桁の数を右側から左側に指定するために使用することができる。例えば、 ADD R0,04xh,R5 MOD16 のようなALU命令は、04xhをレジスタR0の内容に加え、この結果をレジ スタR5に記憶し、加算演算モジュロ16を実行するようにALU に命令する。モジュロ16加算あるいは減算演算は、RO(3)ビットからの桁 上げあるいはボローがあるか否かにかかわらず、R0(15:4)に影響を及ぼ さない。R5(15:4)に書き込まれた結果はR0(15:4)にある値であ るが、R5(3:0)は、加算演算あるいは減算演算の(3:0)ビットを受け 取る。所与のユーザは、典型的な実施例において2〜64Kの任意の値としてM OF IFOを選択できる。64Kの値は、ソフトウェアコンパイラによって選 択されたデフォルト値として使用して、MOF IFOがALU命令に全然ない 場合、全16ビット演算を生じることができる。 本発明によれば、MOF IFOがALU命令内で指定される場合、ある種の 条件分岐命令は、16ビットの結果のモジュロ部分だけにおよび/またはモジュ ロ部分の最上位ビット(MSB)桁からの桁上げに基づいて評価できる。これら の条件分岐命令は、例えば、Branch on Zero(BZ)、Branch on Non-Zero(BNZ) 、Branch on Less than Zero(BLZ)、Branch on Overflow(BNO)、Branch on No Overflow(BNO)、Branch on Carry(BC)およびBranch on No Carry(BNC)を含 んでいる。結果のモジュロ部分だけに基づいたBZおよびBNZの条件分岐命令 を使うと、ユーザは、例えば、非ゼロベースアドレスを有するメモリポインタに おいて交差するページあるいはブロックの境界の発生のためにテストすることが できる。 2.5 セルバッファRAM(CBR)52 図3Aは、ATMセルプロセッサ12のセルバッファRAM(CBR)52を 示している。CBR52は、送受信方向の両方にセルをバッファリングするため に使用され、本実施例においてセルバッファと呼ばれる16の64バイトブロッ クに構成される。ATMセルは、UTOPIAポート64を介してSONETイ ンタフェース16のようなPHYレイヤ装置から受信されたときCBR52のR X CELLブロックに書き込むことができる。ATMセルは、物理レイヤに伝 送される前にCBR52のTX CELLブロックに構成できる。この典型的な実施例において、セルは、セルの バイト0がセルバッファのバイト4に存在するようにセルバッファに書き込まれ るかあるいは組み立てられる。これは、図3Aに示されるような所与のセルバッ ファの前部端に4つの未使用バイトを残す。CPU50は、交換応用において使 用するのに適しているユーザ指向経路選択タグのような専用情報をセルバッファ の前部端のこれらの未使用バイトに書き込みができる。システム初期設定で、C BR52は、図3Aに示されるような受信セル記憶、送信セル構造およびバッフ ァプールキャッシュイングのためのセクションにセグメント化される。この実施 例の所与のセルは、所与の64バイトのセルバッファの上部56バイト以下しか 一般に占有しない。これは、RAMの約8バイトを各セルバッファの下部に残す 。これらの未使用セルバッファ部は、下記により詳細に記載されているメモリ空 間収集プロトコルを使用して効率的にアクセスできる。図3Aの典型的な実施例 において、記憶セルは、53バイトよりもむしろ52バイトを占有するように示 されていることに注目すべきである。これは、この実施例において、所与のセル に関連するヘッダエラー制御(HEC)バイトがチェックされ、このセルの記憶 以前に廃棄されると限定することなく仮定しているからである。 2.6 CBRメモリ空間収集プロトコル 図3Bおよび図3Cは、本発明による典型的なメモリ空間収集プロトコルの動 作を示している。このプロトコルによって、図3Aのセルバッファの未使用メモ リ空間は、“仮想”隣接空間としてアクセスできる。前述のように、図3Aの典 型的なCBR52は、各々が64バイトの16個のセルバッファ、すなわち10 24バイトを含んでいる。10ビットの全部は、1024バイトの各々をアクセ スするのに必要である。1つの典型的な実施例の空間収集プロトコルは、最初の 7ビットが64バイトのセルバッファの各々の下部の8バイトの未使用部分で構 成されている仮想隣接 空間のバイトの中の1バイトを識別する、図3に示される11ビットの仮想アド レスを使用する。仮想アドレスの第11番目のビットは、収集ビットと呼ばれ、 セットされる場合、対応するアドレスを仮想アドレスとして、したがって仮想隣 接空間のバイトを示すアドレスとして識別する。空間収集プロトコルは、セット 収集ビットを有するアドレスを物理アドレスに変換する。物理アドレスは、CB R52の16個のセルバッファの未使用部分を含んでいる仮想隣接空間の特定の バイトを識別する。 図3Cは、空間収集プロトコルを実行するアドレスを処理する典型的なステッ プのセットを示すフロー図を示している。ステップ90において、この収集ビッ トは、64バイトのセルバッファの下部の未使用の8バイト部分の中に含まれる CBRバイトを識別する仮想アドレスのためにセットされる。収集ビットは、C PU50、バスインタフェース68あるいは72に関連するDMAコントローラ 、あるいは他の適当なアドレス調整機構によってセットできる。次に、セット収 集ビットを有する仮想アドレスはCBR52に供給される。ステップ92におい て、CBR52内のアドレス発生器は、セット収集ビットを有する仮想アドレス を物理アドレスに変換する。図3Bは、仮想アドレスから図3Aの典型的なCB R52と併用するのに適している物理アドレスへの変換を示している。10ビッ トの物理アドレスの最初の3ビットは、11ビットの仮想アドレスの最初の3ビ ットから直接マッピングされる。これらのビットは、CBR52の特定セルバッ ファの下部の8バイトの中の1バイトを識別する。物理アドレスの次の3ビット は、物理アドレスが所与のセルバッファの下部8バイト部分に常にスキップする ように仮想アドレスに関係なく論理‘1’にセットされる。物理アドレスの最後 の4ビットは、図3Bに示されるような仮想アドレスの第3、第4、第5および 第6番目のビットからマッピングされる。収集ビットは、所与の仮想アドレスか ら物理アドレスへの前述の変換を生じるようにCBR52のアドレス発生器に命 令した後に廃棄される。ステップ94において、CBR52の仮想隣接メモリ空 間は物理アドレス を使用してアクセスされる。 前述の変換によって、64バイトのセルバッファの未使用部分は、隣接メモリ 空間としてアクセスできる。したがって、本発明は、CPU50あるいはDMA コントローラをトリガして未使用バイトの実際のアドレスを適当に変更すること によって隣接メモリ空間を形成するように特定のアドレスを指定するデータアク セスを可能にする。仮想アドレスから物理アドレスへの特定の変換は、もちろん セルバッファの寸法および収集される未使用メモリ空間の相対ロケーションに応 じて変わる。他の実施例は、仮想アドレスに使用される収集ビットの数を調整す ることによっていくつかの別個の収集空間を提供する。さらに、所与のアドレス 内の収集ビットの位置はメモリサイズに応じて変わることに注意すべきである。 3. 一次スコアボード/接続IDテーブルを使用するCSS56の動作 次に、CSS56の動作はより詳細に説明される。ATMセルプロセッサ12 のセルスケジューリング動作およびサービス動作は、この実施例では、アルゴリ ズム機能およびハードウェア支援機能の両方の組合わせとして実行される。セル スケジューリング機能のアルゴリズム部はCPU50によって実行される。ハー ドウェア支援部はCSS56によって実行される。セルスケジューリング処理は 、ATM伝送リンクあるいは資源をセルの繰り返しコンテナとして割り当てる他 のバンド幅を管理するものとみなすことができる。セルタイム毎に、一次スコア ボードによって示されるセルスケジューリングの次のロケーションがチェックさ れる。このロケーションが予約されているならば、セルが構成され、このロケー ションを予約した仮想接続(VC)のために送信される。このロケーションが予 約されていないならば、アイドルセルは、逆圧を保持する、すなわちセルプロセ ッサがあまりにも急速にスケジュール中を処理することを防止するように伝送で きる。 図4は、ATMセルプロセッサ12が制御メモリ22に作成できる典型的な 一次スコアボード100および接続識別子(ID)テーブル110を示している 。一次スコアボード100および接続IDテーブル110は、一般的にCSS5 8とともに作動するCPU50によって保持される。CSS56は、CPU50 によって出されたセルスケジューリングリクエストおよびサービスリクエストに 応じて制御メモリ22に記憶されている一次スコアボードおよび接続IDテーブ ルを変更する。一次スコアボード100は、セルスケジューリングを示し、多数 の16ビットラインに配置されたビット群を含んでいる。この実施例において、 一次スコアボード100は、これらの16ビットラインの中の128〜1024 を含み、他のラインの数およびサイズは他の実施例で使用できる。接続IDテー ブル110は、一次スコアボード100のビットの各々に対する16ビットのエ ントリを含み、したがってスコアボード100の正確なライン数に応じて204 8〜16384のエントリを含んでいる。各16ビットのエントリは、他の実施 例の32ビットあるいは他の適当なビット数を含むように拡張できる。接続ID テーブル110の各エントリは、所与のATM伝送リンクのセルタイムスロット を示し、所与のスケジューリングVCのための接続IDを含むかあるいは対応す るセルタイムスロットがスケジューリングされなくて、したがって使用可能であ る場合接続IDを全然含まないかのいずれかである。 本発明によるスコアボードは、セルスケジューリング動作を示す任意のビット 群あるいは他の情報要素であってもよい。ここではビットを使用して示されてい るけれども、所与のスコアボードは、セルスケジューリングおよびサービス状態 を示すために多ビット情報要素を含む他の情報要素の構成を使用できる。例えば 、ビット対あるいは他の適当な多ビット構造は、具体的な実施例におけるような 各タイムスロットのための単一ビットよりもむしろ各セルタイムスロットを示す ために使用できる。ここに使用されるような用語“スコアボード”は、これらの および他の代替の情報 要素のグルーピングを含むように理解されるべきである。本発明によるスコアボ ードは、メモリワードのアレイ、ルックアップテーブル、あるいは任意の他の適 当なメモリロケーションの構成に記憶できる。 前述のように、本発明のセルスケジューリング動作は、所与のシステム伝送リ ンクのATMセル機能をセルの周期的コンテナに分割するものとみなすことがで きる。伝送集中フレーム構造に対して周期的コンテナの境界は一般に任意である 。図4の典型的な実施例の周期的なコンテナ内の各ロケーションあるいはセルタ イムスロットは、一次スコアボード100の単一ビット、したがって接続IDテ ーブル110の単一エントリに対応する。一次スコアボード100のビット数は 、接続IDテーブル110のエントリ数に対応し、周期的なコンテナのセルタイ ムスロットの数にも等しい。一次スコアボード100の連続ビットおよび接続I Dテーブル110の連続ロケーションは、ATM伝送リンクの連続セルタイムス ロットを示している。ユーザは、この典型的な実施例の周期的なコンテナサイズ を2048〜16384の任意のセル数にセットできる。他のセルの数も所与の 応用で必要に応じて使用できる。 ATM伝送リンクのセルタイムスロットは、対応する一次スコアボードビット が論理‘1’にセットされるならば、特定の接続のためにスケジューリングされ たものとして示される。セルタイムスロットは、未スケジューリングとみなされ 、したがって、対応する一次スコアボードビットが論理‘0’であるならば使用 可能である。一次スコアボードビットは、CPU50によって実行されるPUS HC命令およびPOPC命令に応じてCSS56によってセットされ、クリアさ れる。 CPU50は、ユーザによって出されたPUSHC命令を実行することによっ てスケジューリング動作を開始する。PUSHC命令は、接続IDテーブル11 0内の16ビットの接続IDおよび目的ロケーションを指定する。CSS56は 、目的ロケーションに対応するビットのあるいはこのビット後の使用可能なセル タイムスロットを示す最初のビットを探 す一次スコアボード100を検索することによってPUSHC命令に応答する。 使用可能なセルタイムスロットが一次スコアボードの最後のビットによって検出 されない場合、CSS56は、スコアボードの始点から検索を続ける。CSS5 6が使用可能なセルタイムスロットを見い出すと、CSS56は、一次スコアボ ードの対応するビットをセットし、16ビット接続IDを接続IDテーブル11 0の対応するエントリに書き込む。ユーザは、接続IDとして任意の16ビット 値を供給する。一般に、接続IDは対応するVCに対する接続記述子(CD)の 制御メモリ22のベースアドレスの役をする。 PUSHC命令はディスパッチ命令として実行できる。このように、CPU5 0は、他の命令を実行できると同時にPUSHC動作はCSS56によって実行 される。CPU50は、前述のような外部状態信号の状態(ESS)をチェック することによって何時PUSHC動作が完了されるかを決定する。例えば、適当 なESSは、セルスケジューリング動作が進行中である間、セットすることがで きる。スケジューリング動作の完了で、CPU50は、内部スケジューリングア ドレスレジスタから生じるスケジューリングアドレスを読み出すことができる。 スケジューリングアドレスは、目的アドレスが予め予約されたことが検出された 場合、目的アドレスと異なってもよい。 CPU50は、いろいろなセルタイムスロットを予約したVCもサービスする 。CPU50は接続IDテーブル110の対応するエントリーを調べることによ ってどのVCがタイムスロットを予約したかを決定する。CPU50は、所与の ユーザプログラムによって出されたPOPC命令を実行することによって接続I Dテーブルエントリを読み出す。POPC命令の実行によって、CSS56は、 アドレス指定接続IDテーブルエントリを戻し、エントリに対応する一次スコア ボードビットの値をCPU50の割り当てセルフラグレジスタ(ACFR)にコ ピーし、それから一次スコアボードビットをクリアする。 CPU50は、ポインタを保持し、現セルタイムスロットを示す接続IDテー ブル110に入れる。CPU50は、POPC命令が実行される度にこのポイン タを増分できる。一次スコアボードおよび接続IDテーブルが周期的なコンテナ を示しているために、CPU50は、コンテナサイズを法としたその接続IDテ ーブルポインタを操作する責任を負っている。 POPC命令は、ディスパッチ命令としても実行できる。このように、CPU 50は、他の命令を実行できると同時にPOPC動作はCSS56によって実行 される。CPU50は、適当なESSの状態をチェックするかあるいは内部接続 IDデスティネーションレジスタをアクセスすることによって何時POPC動作 が完了されるかを決定する。CPU50がCSS56によって書き込まれる前に 接続IDデスティネーションレジスタにアクセスしようと試みるならばPOPC 動作の完了を待つことを保証する適当な機構が装備されている。 前述されるようなCSS56は、外部クロックが全然必要でない自己ペースシ ステムとして実行できる。UTOPIAポート64を通るPHYレイヤ伝送リン クからの逆圧は、CPU50が送信のためのセルを待ち行列に入れることができ る速度を制限するために使用できる。逆圧の有益の効果を保持するために、割り 当てられていない(アイドル)セルは、割り当てられないタイムスロットがPO PC命令によって接続IDから取り除かれる場合、送信のための待ち行列に入れ られる。CPU50は、タイムスロットがACFRの状態をテストすることによ って割り当てられるかあるいは割り当てられないかを決定できる。ACFRがゼ ロであるならば、タイムスロットは割り当てられておらず、アイドルセルは必要 な逆圧を保持するために待ち行列に入れられる。アイドルセルの待ち行列は、伝 送リンクのセル間放出間隔(ICI)は、プログラム化され、スケジューリング の中に入れられる間隔にほぼ等しいことを保証する。 4.スケジューリング命令 4.1 PUSHC命令 図5は、セルスケジューリング命令PUSHCの動作をより詳細に示すフロー チャートである。典型的な用途では、CPU50は、新しい接続を追加する場合 あるいは現在のVCをサービスする場合、VCをスケジューリングする。可変ビ ット伝送速度(VBR)および使用可能なビット伝送速度(ABR)VCのよう な動的に割り当てられたタイムスロットを有するVCに関して、スケジューリン グは、各VCに対する1つあるいはそれ以上のタイムスロットリクエストを含む ことができる。スケジューリングは、バンド幅の永久予約を利用する一定ビット 伝送速度(CBR)VCのための単一あるいは複数のスケジューリングタイムス ロットも含むことができる。 CPU50は、2つの実値パラメータ増分(I)および限界(L)および中間 変数のセットを使用する総称セル速度アルゴリズム(GCRA)を実行すること によって目的セルスロットタイムを決定する。アルゴリズムはGCRA(I,L )と呼ばれ、M.de Pryckerによる上記に引用された参考文献により詳細に記載さ れている。この実施例のパラメータIは、対応するVCに対するセル間放出間隔 (ICI)であり、パラメータLは許容範囲の値を示している。ICIは、伝送 リンクの所与のVCの連続セル間の最少間隔を示している。CBR接続およびV BR接続に関しては、ICIは、一般に時変でなく、一般的には約1/PCRで あり、ここでPCRは所与のVCのためのピークセル速度を示す。ABR接続に 関しては、ICIは、一般的にはネットワークからのフィードバックに基づいて 変わり、約1/ACRであり、ここでACRは所与のVCに対する使用可能なセ ル速度を示している。CPU50は、ここで参照として組み込まれるABRサー ビス仕様に基づくATMフォーラムレートによるABR接続のためのICIを計 算する。ICIを計算するために利用される情報は、制御メモリ22に記憶する ことができ、得られるICIは、高い接続速度を 利用可能にするために端数整数として制御メモリ22に記憶することができる。 例えば、所与の接続伝送速度、16セルタイム毎に5個のセルまで下げて決定で きる。このような場合、ICIは、残りを有する端数整数として記憶でき、セル は、GCRA結果の整数部だけを使用してスケジューリングできる。残りがセー ブされ、次のスケジューリング事象でGCRAに加えられる。 CPU50は、限界Lより小さい計算された理論的到着時間(TAT)に接続 をスケジューリングすることによってセルスケジューリング衝突に起因するバン ド幅損失を制限できる。スケジューリングされた時間のコピーは、一般に前述の GCRA機能の適切な動作を可能にするためにこのようにスケジューリングされ た各VCに対するチャネル記述子に記憶されている。GCRA機能は対応するV Cに対する目的セルタイムスロットを発生する。 図5のステップ120に示されるように、PUSHC命令は、ユーザによって 発され、CPU50で受け取られる。PUSHC命令は、一般にセルタイムスロ ットを要求するVCを識別する固有な16ビットの接続IDを指定する。接続I Dテーブルの目的アドレスは、前述のようにCPU50によって計算されるかあ るいはPUSHC命令に付属することができる。CPU50は、接続IDおよび 目的アドレスをCSS56に供給する。CSS56は、接続IDテーブルの目的 アドレスをステップ122に示されるように一次スコアボードの対応する目的ロ ケーションに変換することによってPUSHC命令に応答する。次に、CSS5 6は、ステップ124に示されるように、引き出し、目的セルタイムスロットに 対応する目的ロケーションのあるいは目的ロケーション後の最初の使用可能なセ ルタイムスロットを探す一次スコアボードの一部中を探索し始める。前述のよう に、CSS56は、使用可能なロケーションが目的ロケーションと一次スコアボ ードの終わりとの間に検出されないならば、一次スコアボードの始めから検索し 続けることができる。ステップ126において、 スロットが一次スコアボードの引き出された部分に使用可能であるか否かに関す る決定が行われる。セルが全然使用可能でない場合、他の一次スコアボードの部 分は、図示されるようなステップ124を繰り返すことによって引き出し、検索 できる。一旦使用可能なセルタイムスロットが検出されると、CSS56は、ス テップ128に示されるように、対応するスコアボードビットを論理‘1’にセ ットすることによって所与のVCに対してスケジューリングされるようなスロッ トを予約する。次に、PUSHC命令に指定された16ビットの接続IDは、ス テップ130でスケジューリングされた一次スコアボードビットに対応する接続 IDテーブルのロケーションに書き込まれる。ステップ120〜130は、AT Mセルプロセッサ12に受け取られた各PUSHC命令に対して繰り返される。 PUSHC命令の実行中、一次スコアボードの全ビットが、使用可能なセルタ イムスロットが全然ないことを示す1にセットされるならば、CSS56は、前 述のCSS構成レジスタに1ビットをセットすることによってエラーを戻すこと ができる。このようなエラービットに対して頻繁にチェックすることはセルプロ セッサの有効な動作速度を著しく落とす可能性がある。この潜在的な問題は、タ イムスロットが一次スコアボードで使用可能であることを保証するステップを行 うことによってアドレス指定できる。例えば、CSS56は、次のPUSHC命 令を実行する前に一次スコアボードの現セルスロットを常に解放するように命令 されることができ、それによって少なくともこのタイムスロットが次のリクエス トをサービスするのに使用可能であることを確実にする。それとは別に、CSS 56は、新しい接続を付加するか、あるいは割り当てられていないスロットに遭 遇する場合のみ非アクティブ接続を起動するように構成することができ、新しい 接続が一次スコアボードの容量を超える場合、新しい接続が許可されないように する。一般に、各接続は、一次スコアボードの1ビット位置を消費する。制御ソ フトウェアには、一次スコアボードのアクティブVC数の正確なカウントを備え ていて、新しい接続がスコアボード 容量を超える場合、新しい接続の確立を拒否するように構成されている。所与の 接続は、予め割り当てられたCBR接続の場合のように一次スコアボードの2つ 以上のスロットを消費でき、したがって、この事象において、使用可能なスロッ ト決定は調整される。 典型的なPUSHC命令は下記のフォーマットであってもよい。 PUSHC rsa @rab これにおいて、rsaおよびrsbはCPU50のレジスタである。レジスタr saは要求された接続に対する16ビット接続IDを含み、レジスタrsbは、 接続IDテーブルのアドレスの形式の目的セルタイムスロットを含んでいる。接 続IDテーブルのベースアドレスはCSS構成レジスタから読み出すことができ る。CSS56は、レジスタrsbからの接続IDテーブルアドレスおよびCS S構成レジスタから読み出されたベースアドレスを使用して対応する一次スコア ボードビットロケーションを計算する。次に、CSS56は、指定アドレスのあ るいは指定アドレスの後の使用可能なセルタイムスロットを探す一次スコアボー ドを検索する。レジスタrsaからの16ビット接続IDは、CSS56によっ てrsbに含まれた目的アドレスによって指定されたロケーションのあるいはロ ケーション後の接続IDテーブルの最初の使用可能なロケーションに書き込まれ る。スコアボード検索は、最初の使用可能なスコアボードビットロケーションを 決定し、それによって接続IDテーブルの最初の使用可能なスロットを決定する 。 4.2 PUSHF命令 前述のPUSHC命令の可能な他の実行は、PUSHC、高速モード(PUS HF)命令である。PUSHF命令によって、CPU50およびCSS56は、 所与のVCに対する一次スコアボードビットを突き止め、予約するために前述の 機能を実行する。しかしながら、PUSHF命令は、PUSHF命令が接続ID テーブルを更新しない点で前述のPUSHC 命令と異なる。したがって、PUSHF命令は、現ロケーションの接続IDがP USHF命令が実行される時点で一般に既知であるために、例えば、静的にスケ ジューリングされたCBR接続を再予約する際に役立つ。 5. サービス命令 5.1 POPC命令 図6は、セルサービス命令POPCの動作をより詳細に示すフロー図である。 接続IDテーブルの各ロケーションはATM伝送リンクのセルスロットを示して いるので、CPU50はテーブルから接続IDを逐次読み出すことができる。C PU50は、接続IDによって識別された接続をサービスする。接続サービスは 、例えば、従来のATMセグメンテーション・リアッセンブリ(SAR)動作に おいて伝送するためにセルを形成し、それを待ち行列に入れるかあるいはメモリ から現在のセルを読み出し、伝送するためにこのセルを待ち行列に入れることを 含んでいる。UTOPIAポート64の送信器待ち行列からの逆圧は、プロセッ サが接続IDテーブル110中を進行する速度を整調するスロットル機構を備え ている。逆圧ベース速度制御の効率を保持するために、CPU50は、割り当て られないロケーションが接続IDテーブルから取り除かれる場合、UTOPIA ポート送信器待ち行列の割り当てられないセルあるいはアイドルセルを待ち行列 に入れる。 図6のステップ150において、所与のユーザプログラムからのPOPC命令 は、CPU50で受け取られる。POPC命令は、VCに対する接続IDを識別 する接続IDテーブルのアドレスおよび対応する一次スコアボードビット指定す る。ステップ152において、CSS56は、接続IDテーブルの指定ロケーシ ョンに記憶された接続IDを制御メモリ22から引き出す。ステップ154にお いて、CSS56は、特定接続IDテーブルエントリに関連した一次スコアボー ドビットを引き出し、それをACFRにコピーする。ACFRの出力は、CPU 50が、指定ロケー ションがスケジューリングされたか(ACFR=‘1’)あるいは割り当てられ なかった(ACFR=‘0’)かどうかを決定し終わったことをPOPC命令が 一度チェックできる指定ESSに接続することができる。ステップ156におい て、CSS56は、将来のスケジューリングリクエストに役立つようなセルタイ ムスロットをマークするために対応する一次スコアボードビットをクリアする。 ステップ158において、CPU50は、接続IDテーブルで指定されるVCに 対するセルを構成し、ATM伝送リンクを介して伝送するために構成されたセル を待ち行列に入れる。あるいはCPU50ha以前に構成されたセルを引き出し それを伝送のために待ち行列にいれる。ステップ150〜158は、CPU50 で受け取られた各POPC命令に対して繰り返される。 典型的なPOPC命令は下記のフォーマットであってもよい。 POPC rd @rsb これにおいて、rdおよびrsbはCPU50のレジスタである。レジスタr sbは、関心のある接続IDテーブルエントリのアドレスを含んでいる。さらに 、接続IDテーブルのベースアドレスはCSS構成レジスタから読み出すことが できる。CSS56は、アドレス指定接続IDを読み出し、それをCPU50の レジスタrdに書き込む。CSS56は、接続IDテーブルアドレスからの対応 する一次スコアボードアドレスおよびCSS構成レジスタから読み出されたベー スアドレスを計算し、接続IDテーブルエントリに関連したスコアボードビット を読み出し、その値をACFRにコピーし、それからスコアボードビットをクリ アする。 CPU50は、前述の典型的なPOPC命令以外の命令を利用して一次スコア ボードおよび接続IDテーブルエントリを読み出し、書き込みもできることに注 目すべきである。 5.2 POPF命令 前述のPOPCの可能な他の実行はPOPC、高速モード(POPF) 命令である。POPF命令によって、CPU60およびCSS56は、所与のV Cに対する一次スコアボードビットを戻し、クリアするために前述の機能を実行 する。しかしながら、POPF命令は、POPF命令が接続IDを戻さない点で 前述のPOPC命令と異なる。したがって、POPF命令は、例えば、CPU5 0がスコアボードビット群を高速にチェックできるということで役立つ。グルー プの所与のスコアボードビットがセットされるならば、CPUは接続IDテーブ ルの対応するエントリの読み出しに移る。 6. セルスケジューリング処理の付加的詳細 6.1 制限された一次スコアボード検索時間 CSS56は、使用可能なセルタイムスロットが所定のメモリ読み出しサイク ル数内で一次スコアボード内の任意の開始位置から識別できることを保証する本 発明による一次スコアボード検索技術を利用できる。この望ましい特性をもたら すように二次スコアボードを使用する典型的な検索技術が下記に詳細に記載され る。 6.2 CSS命令バッファ CSS56は、PUSHC/POPC命令バッファを含むように構成すること ができる。この命令バッファが2命令バッファとして選択されるならば、CPU 50は、機能停止状態に入らないで2つのセルスケジューリング命令あるいはサ ービス命令まで出すことができる。PUSHC/POPC命令バッファが満杯で ある間、バッファセルスケジューリング命令あるいはサービス命令の実行は、第 1の命令によって指定される演算が完了されるまでプロセッサ機能停止状態を生 じる可能性がある。 6.3 一次スコアボードおよび接続IDテーブルのアドレス指定 接続IDテーブルおよび一次スコアボードのアドレス指定は、下記の ように提供できる。前述のように、制御メモリ22のテーブルのベースアドレス を示す接続IDテーブルアドレスのビット15〜18はCSS構成レジスタで指 定することができる。接続IDテーブルアドレスのビット1〜14は、前述のP USHC命令およびPOPC命令によって指定されるようなrsbレジスタのビ ット0〜13としてソフトウェアによって供給されることがある。1024ライ ン、したがって16384エントリを有する典型的な一次スコアボードに関して は、指定された接続IDテーブルエントリに対応するスコアボードアドレスは下 記のように発生することができる。 スコアボードアドレスビット(18:11)CSS構成レジスタから読み出す: ベースアドレス スコアボードアドレスビット(10:1) rsb(13:4)から 読み出す:接続IDテーブルADR(13:4) スコアボードアドレスビット(0) 0xbとして固定 目的ビットアドレス rsb(3:0)から読 み出す: 接続IDテーブルADR(3:0) 6.4 一次スコアボードの初期設定 CPU50は、システム初期設定ルーチン中、一次スコアボードマトリックス を初期設定をする責任を負うことができる。CPU50は、一次スコアボードを 備える制御メモリ22のロケーションに全てゼロを書き込むことによって一次ス コアボードを初期設定できる。一旦一次スコアボードが初期設定されると、CP U50は、自由にセルスケジューリング命令を実行できる。このことから、全て のスケジューリング変更は、セルプロセッサ12の内部機構が所与のスケジュー リングに対して首尾一貫のままとなることを確実にするようにPUSHC命令お よびPOPC命令 によって実行されるべきである。しかしながら、CPU50は、内部機構に影響 を及ぼさないで他の適当な命令を使用していつでも一次スコアボードエントリあ るいは接続IDテーブルエントリを読み出すことができる。 6.5 一次スコアボードサイズの選択 所望の一次スコアボードのサイズ、すなわち最寄りの2の冪乗に切り上げられ た数はCSS構成レジスタで指定することができる。2の冪乗以外の一次スコア ボードサイズは、CPU50があるスコアボードロケーションを使用不可能とマ ークを付けることによって使用可能にすることができる。例えば、所望のスケジ ューリングサイズは2304ビットであるならば、ユーザは、これらのロケーシ ョンの一連のPUSHC動作を実行することによって4096ビットスケジュー リングを選択でき、ビット2304〜4095を使用不可能とマークを付ける。 このことから、CSS56は、CPU50によって出されたセルスケジューリン グリクエストに応じてこれらのロケーションを予備として残しておくように試み ない。しかしながら、POPC命令を使用して一次スコアボードを詳しく点検す るユーザは、ロケーション2303に到着する際にスコアボードの始めに注意深 く戻るべきである。換言すると、一旦不必要なロケーションが予約されてしまう と、このロケーションは、POPC命令の目的アドレスとして指定されるべきで ない。さらに、CPU50は、モジュロ4096の代わりにPUSHCの目的ア ドレスモジュロ2304を計算すべきである。 6.6 多重スケジューリングの使用 ATMセルプロセッサ12は、多重スコアボードおよび接続IDテーブルを使 用して多重セル処理スケジューリングをサポートするように構成することができ る。例えば、所与の実施例において、システム10は、8つの2K接続IDテー ブル、4つの4K接続IDテーブル、2つの8K 接続IDテーブルあるいは1つの16K接続IDテーブルまでサポートするのに 十分な制御メモリ22を含むように構成できる。前述のように、CSS構成レジ スタのビットはスコアボードサイズを選択するために使用することができる。8 つのスケジューリングが使用される場合、PUSHCおよびPOPCrsbアド レスビット12〜14は、8つのブロック内で1つのスケジューリングを選択す るために使用できる。4つのスケジューリングが使用される場合、rsbアドレ スビット13〜14は4つのブロック内で1つのスケジューリングを選択するた めに使用できる。他の多重スケジューリングの数は同様に構成および選択できる 。 7. CSS動作の例 図7は、本発明によるセルスケジューリングおよびサービスの動作例を示して いる。接続IDテーブル210は、制御メモリ22にあるいはATMセルプロセ ッサ12あるいはシステム10の他の適当なロケーションに保持されている。こ の実施例の接続IDテーブル210は、多数のポインタPTRi,i=1、2、.. .Nの形式のエントリを含むものとして示されている。各ポインタは、一次スコ アボード200のビットロケーションB[i]に対応する。CPU50は、R7 と示される典型的なレジスタに、接続IDテーブル210の目的ロケーションを 識別するハーフワードアドレスを示す値、したがって現伝送時間のための目的タ イムスロットを保持する。この例において、レジスタR7は、ハーフワードアド レス02に対応するので、接続IDテーブル210の第3のロケーションを識別 するバイトアドレス04を含んでいる。テーブル210の第3のロケーションは 、スコアボード200の第1のラインの右側から第3番目のビットである第3の 一次スコアボードビットB[2]を示している。ビットB[2]はスコアボード 200の論理‘1’である。UTOPIAポート64の送信待ち行列が満杯でな いと仮定すると、CPU50は、下記のようにPOPC命令を実行することによ って接続IDテーブル210からエ ントリPTR2を読み出す。 POPC R10 @R7 CSS56は、PTR2にある接続IDをCPUレジスタR10に書き込み、 この接続IDテーブルエントリに関連した一次スコアボードビットB[2]をA CFRにコピーし、それからスコアボードビットB[2]をクリアすることによ ってこのPOPC命令に応答する。スコアボード200のビット[2]は、PO PC命令が実行された時点で‘1’であるために、ACFRは1にセットされる 。スコアボード200’は、上記のPOPC命令の実行後スコアボード状態を示 し、ビットB[2]がゼロにクリアされたことが分かる。次に、CPU50は、 ACFRに接続された外部状態信号(ESS)ラインをアクセスするために条件 分岐命令を使用してACFRをチェックする。ビットB[2]に対応する指定さ れたタイムスロットが割り当てられたために、CPU50は、制御メモリ22を アドレス指定し、タイムスロットを予約したVCのためのチャネル記述子をそこ から引き出すためにレジスタR10に戻された接続IDを使用する。それから、 CPU50は、SAR応用のこのVCのためのセルを形成するか、トラフィック ・シェイピング応用のこのVCのための予め記憶されたセルを引き出すために引 き出されたチャネル記述子の情報を使用する。ダイナミックスケジューリングに 関するSAR応用において、CPU50は、チャネル記述子に記憶されたパラメ ータを使用する前述のGCRA(I,L)アルゴリズムを実行することによって 次に接続がサービスされるべき時を決定できる。チャネル記述子は、一般的には 、目的スケジューリング時間と、ICIと、限界と、ICIが端数整数の場合、 余りの端数とを含んでいる。この情報から、CPU50は、所与のVCのために スケジューリングされるべきである接続IDテーブル内で次のロケーションを決 定し、この結果をレジスタR22のような典型的なレジスタに入れる。 次に、CPU50は、下記のPUSHC命令を実行することによってアクティ ブとして接続をスケジューリングする。 PUSHC R10 @R19 この命令に応じて、CSS56は、レジスタR19によって示された接続IDテ ーブルアドレスに対応するスコアボードビットB[22]で始まるスコアボード 200’を検索する。この例では、CSSは、ビットB[22]がスコアボード 200’で‘1’にセットされるという事実によって示されるように、目的ロケ ーションが前の接続によって既に予約されたことを探す。したがって、CSSは 、使用可能なロケーションを探すまで、スコアボード200’を検索し続ける。 使用可能なロケーションには、スコアボードビットB[24]が論理‘0’にセ ットされるという事実によって示されるように、B[22]目的ロケーションか ら離れて2つのセルスロットがある。次に、CSS56は、ビットB[24]を ‘1’にセットし、レジスタR10においてCPU50によって供給された接続 IDをPTR24と示されたロケーションの接続IDテーブル210に書き込む ことによって現接続のためのロケーションを予約する。スコアボード200’’ は、上記のPUSHC命令の実行後のスコアボード状態を示している。CPU5 0は、次の送信タイムスロット上に移すために、レジスタR7にあるサービスア ドレスすなわちこの例では4096であるスコアボードサイズを法とした数を増 分することによって接続サービスおよび再スケジューリング処理を完了する。 8. 二次スコアボードを使用する制限一次スコアボード検索 CSS56は、適当に制限された時間内に一次スコアボードの任意の開始ロケ ーションから単一の使用可能なセルタイムスロットを突き止める能力を備えるこ とができる。例えば、16384セルタイムスロットを有する実施例の全一次ス コアボードは、約8つの32ビットの制御メモリ読み出しサイクル内にスコアボ ードの任意の開始位置から検索できる。本発明は、ここで二次スコアボードと呼 ばれる第2のビットマトリックスを発生し、保持することによってこの制限検索 時間機能を備えている。二次 スコアボードは、一般に前述の一次スコアボードよりも小さいので、通常外部制 御メモリ22においてよりもむしろセルプロセッサ12の内部のメモリロケーシ ョンに保持されている。二次スコアボードは、CSS56に一次スコアボードの 全密度に関する情報を供給する。より詳細には、二次スコアボードは、使用可能 なタイムスロットに対応するビットを含むことが既知である一次スコアボードの 領域の一次スコアボードの検索をCSS56が命令するために使用する。したが って、一次スコアボード検索は直線的に進行する必要がなく、その代わりに、検 索は、二次スコアボード情報によって識別された領域に最初に命令され、次に、 使用可能なタイムスロットが探し出されるまで、識別領域中を直線的に進行する 。指定領域のサイズが十分小さく形成されるならば、このような領域の線形検索 は速く実行でき、しっかりと制限された検索時間になる。二次スコアボードは、 ビット群あるいは他の情報要素を記憶するのに適しているメモリロケーションの マトリックス、アレイあるいは他のメモリロケーションセットとしてセルプロセ ッサ12の適当なメモリロケーションに記憶されている。前述のように、一次ス コアボードおよび/または接続IDテーブルは、セルプロセッサ12の内部のメ モリロケーションにも記憶することができる。 所与の二次スコアボードビットは、一次スコアボードの8つの16ビットライ ンあるいは128の一次スコアボードビットの合計状態を示すように構成できる 。論理‘0’レベルの二次スコアボードビットは、128の一次スコアボードビ ットの少なくとも一つが一つの利用可能なタイムスロットを示していることをC SS56に示している。論理‘1’レベルの二次スコアボードビットは、128 の一次スコアボードビットのすべてが使用不可能タイムスロットを示しているの でこの一次スコアボードの領域を検索する必要が全然ないことをCSS56に示 している。もちろん、多数の他の二次スコアボード構成が可能である。 前述の典型的な二次スコアボードは、部分的にはダイサイズとスケジ ューリング時間との間のトレードオフを示している。前述のように、各二次スコ アボードビットは128の一次スコアボードビットの状態を示している。したが って、この領域が使用不可能である場合、二次スコアボードは一次スコアボード の特定の領域を避けるようにCSSに命令することができる。しかしながら、所 与の領域に使用可能なタイムスロットがある場合、二次スコアボードは、8つの 16ビットラインの中のどれが使用可能なスロットに対応するビットを含むかを CSSに示すことができない。したがって、CSSは、使用可能ビットを検出す るために全て8つのラインの読み出しをしなければならないこともある。しかし 、1024あるいはそれ以上の16ビットラインもの中から8つの16ビットラ インに一次スコアボード検索を命令することによって、二次スコアボードは、こ の例では検索時間を本質的には4つの32ビットの読み出しサイクルに制限した 。したがって、CSS56は、使用可能なセルタイムスロットを検索するときに 多数のライン中を走査する必要がない。二次スコアボードによって伝達される情 報は、セルスケジューリング時間をさらに減少させるように増加することができ るが、付加的メモリ、したがって増加されたダイサイズという犠牲を払っている 。それとは別に、二次スコアボードをアクセスするのに必要な付加的メモリ読み 出しサイクルは処理速度に影響を及ぼすけれども、二次スコアボードは外部メモ リに保持することができる。 上記の例において、二次スコアボードは、128の一次スコアボードビットの 状態を示すために単一ビットを使用する。1024ライン、すなわち16384 ビットまでの任意のサイズにプログラム化できる一次スコアボードを示すために 使用される場合、二次スコアボードのサイズは16384/128ビットあるい は256ビットであるべきである。検索時間は、二次スコアボードをより大きく することによってさらに減少することができる。例えば、ビットの数は、512 まで増加することができ、それによって各二次スコアボードビットは2つの一次 スコアボードライン の合計状態を示すことができる。これは、一次スコアボード検索を2読み出しサ イクルだけ減少させるが、付加的内部メモリ空間、したがってダイ領域という犠 牲を払っている。 この典型的な実施例の二次スコアボードは一次スコアボードで実行されるPU SHC動作およびPOPC動作毎に監視すべきである。さらに、この実施例の一 次スコアボードで実行される毎PUSHC動作は、二次スコアボードがブロック の使用可能性を監視できるように128ビットブロックの全て8つの16ビット ラインを検索すべきである。ユーザがPUSHC命令を出す場合、ユーザは、セ ルをスケジューリングするために使用することができる一次スコアボード内の最 初のビット位置を示すCSS56にアドレスを生じる。次に、CSS56は、こ の時間のあるいはこの時間後の第1のロケーションを探し、それを予約済みとマ ークを付ける責任を負う。CSS56は、第1の使用可能なビットのオフセット がブロックの中でより深いかどうかにかかわらず128ビットブロックの第1の ラインに対するその検索を開始する。これは、使用可能なビットが検出され、セ ットされるならば、使用可能なビットが、全て128ビットを調べずにはできな い128ビットブロックの最後のビットであったかどうかを決定する必要がある ためである。したがって、CSS56は、開始オフセットとは無関係に全て8つ の16ビットラインを読み出す。CSS56は、使用可能なビットが検出され、 セットされ、このビットが128ビットブロックの最後のビットであることがわ かると、二次スコアボードの対応するビットをセットする。したがって、128 ビットブロックは、全体を使用不可能とマークを付けられているので、将来のス ケジューリングリクエストはこの使用不可能ブロックおよび他の使用不可能ブロ ックの周りに向けることができる。CSS56が対応する128ビットブロック 内のロケーションにアドレス指定するPOPC命令を受け取るや否やCSS56 は二次スコアボードビットをクリアする。これは、使用可能なロケーションが対 応するブロックで保証されるように、POPC命令は一次 スコアボードの目的ビットをクリアするためである。 図8は、二次スコアボードを使用する典型的な検索処理を示すフロー図である 。PUSHC命令は、ステップ250で受け取られ、前述のように一般的には接 続IDおよび目的セルタイムスロットを指定する。目的ロケーションに対応する ビットを含む一次スコアボードビットの128ビットブロックが引き出され、検 索される場合、一次スコアボード検索処理はステップ252で開始する。CSS 56の一次スコアボードコントローラは、目的ロケーションのあるいは目的ロケ ーションの後の使用可能なセルタイムスロットのために引き出された128ビッ トの一次スコアボードブロックの全て8つの16ビットワードを走査することに よって検索を実行できる。CSS56の二次スコアボードコントローラは、ある ロケーションが128ビットブロックで使用可能であるかどうかを知っているが 、このロケーションが目的時間あるいは目的時間後にあるかどうかは知らない。 したがって、一次スコアボードコントローラは、ブロックの第1のワードで始ま る一次スコアボードの全て8つの16ビットラインを検索する。このコントロー ラは、目的ロケーションに対応するビット位置に到達するまで使用可能なビット を無視するが、目的ビットがブロックの最後の使用可能なビットであると分かる 場合、目的ロケーションまでその密度に注目する。ステップ254は使用可能な スロットが検索されている一次スコアボードブロックで突き止められたかどうか を決定する決定動作である。使用可能なセルタイムスロットが引き出された一次 スコアボードブロックで全然検出されない場合、ステップ256は、二次スコア ボードを利用して使用可能なタイムスロットを含むものと知られている次の一次 スコアボードブロックのアドレスを決定するために使用される。次に、この次の 一次スコアボードブロックはステップ258に示されるように引き出され、検索 される。第1あるいは次の一次スコアボードブロックが使用可能なセルタイムス ロットを示すビットを含むことが検出された場合、対応する一次スコアボードビ ットはスロットを予約すようにセットさ れ、VCのための接続IDは、ステップ260に示されるように接続IDテーブ ルの適当なロケーションに記憶される。次に、ブロックに示される任意の他の使 用可能なセルタイムスロットがあるかどうかに関する決定がステップ262で行 われる。一次スコアボードブロックのビットに対応するセルタイムスロットが完 全に利用されない場合、この処理は二次スコアボードビットを変更しないで終了 する。セルタイムスロットが現スケジューリングリクエストの結果として完全に 利用される場合、ステップ264の二次スコアボードコントローラは、一次スコ アボードの現在完全に予約されたブロックに対応する二次スコアボードビットを セットする。したがって、目的ビットよりも前に検出された使用可能ビットが全 然ないと仮定すると、一次スコアボードコントローラは所与の一次スコアボード ブロックの全て8つの16ビットのラインの読み出しを終了しなければならない ので、一次スコアボードコントローラが第2の使用可能なビットを検出しない場 合、128ビットのブロックが現在完全に利用されていることを二次スコアボー ドコントローラに知らせることができる。 一次スコアボードコントローラが、第1の一次スコアボードブロックのビット が全然使用可能でないことを検出するならば、図8のステップ256および25 8に示されるように次のブロックの使用可能なビットを検索し続ける。したがっ て、二次スコアボードは、一次スコアボードコントローラが完全に使用不可能で ある任意の次のブロックを検索することを防止するために使用される。一次スコ アボードコントローラは一次スコアボードの最初の検索を行うが、二次スコアボ ードコントローラは二次スコアボード中を走査する。一次スコアボード検索が使 用可能なビットを検出できない場合、二次スコアボードコントローラは、満杯で ない一次スコアボードの次のブロックのアドレスに関して待機する。次のブロッ クが目的ロケーションの後に位置するため、かつ二次スコアボードがこのブロッ クのビットが使用可能であると示しているために、一次スコアボードコントロー ラによる次の検索が使用可能なビットを検出することを保証する。 したがって、二次スコアボードの使用は、検索時間を8つの32ビットの一次ス コアボード読み出しサイクル、すなわち、2×4の32ビットワード、すなわち 2×8の16ビットワードに制限される。第二の一次スコアボードブロックの検 索が必要である場合、この検索は、第2のブロックが唯一の残りの使用可能なビ ットを有する場合、128ビットのブロックの全て8つの16ビットラインを読 み出すことができることが明らかであるはずである。次のブロックの最後の残り の使用可能なビットが検索の結果としてスケジューリングされる場合、一次スコ アボードコントローラは、二次スコアボードコントローラに、二次スコアボード の対応するビットをセットするように命令する。VCが再スケジューリングされ る場合、現タイムスロットは、POPCサービス命令に応じて丁度クリアされる ために一般に使用可能であることに注目すべきである。したがって、再スケジュ ーリングPUSHC命令は、現タイムスロットがスコアボードの唯一の使用可能 なスロットである場合、最悪の最大検索時間を受ける。現タイムスロットは、ビ ットがスコアボードサイズに等しい多数のPOPC命令が実行されるまで、一般 に再びサービスされない。 9. CBR接続のためのバンド幅の予めの予約 ATMセルプロセッサ12は、ユーザがCPU50によって実行されるアルゴ リズム機能およびCSS56によって実行されるハードウェア支援機能の組合わ せによる多数の異なるスケジューリング方法論を実行することができる点で非常 に汎用性がある。例えば、ATMセルプロセッサ12は、一定のビット伝送速度 (CBR)が必要である接続のためのバンド幅の予めの予約をサポートできると 同時に可変ビット伝送速度(VBR)を必要とする接続がCBR接続のために予 め予約されないセルタイムスロットでスケジューリングできる。セルプロセッサ 12によって、所与のユーザが一次スコアボードにおいて所望の数のロケーショ ンを予め予約できる。ユーザは、いくつかの異なる方法でこれを行うことができ る。 セルプロセッサ12の初期設定で、ユーザは、一連のPUSHC命令を出すこと によって目的ロケーションを予約できる。POPC命令を使用して予め予約され たロケーションのサービスをリクエストした後、ユーザは、この同じロケーショ ンを指定する接続を直ちに再スケジューリングする。これは、同じVCのための ロケーションを再スケジューリングし、実際はPOPC命令のクリア動作を抑え る。ユーザは、接続が半永久的に予約されるべきかどうかを決定することもでき る。所与の接続がCBR接続としてマークを付けられ、対応するロケーションが 適当なPUSHC命令を出すことによってPOPC命令直後に再予約されるファ ームウェア機能が実行できる。 10. トンネリング ATMセルプロセッサ12はトンネリング応用を支援できる。典型的なトンネ リング応用では、ユーザは、CBR仮想パス(VP)接続を確立し、それからそ れの上部の一連の仮想チャネル接続をトンネルするリクエストを出すことができ た。ユーザは、一次スコアボードによって示されたセルスケジューリングの多数 のエントリを予約するバンド幅機構の前述の予めの予約を使用できた。ユーザは 、接続が所望のバンド幅量を有することを保証するのに十分なエントリを予約す る。実際は、ユーザはVPベースのトンネルのためのバンド幅を予約する。それ から、ユーザは、VPを介して移動する一連の仮想チャネル接続を構成する。こ れを行うために、ユーザは、VPのバンド幅をVPを介して移動する仮想チャネ ル接続の間に分ける。この処理は、仮想チャネル接続がビット伝送速度が時間に わたって変化できる使用可能なビット伝送速度(ABR)接続であり得るという 事実によって複雑になる可能性がある。 図9は、本発明によるトンネリング動作を管理する典型的な技術を示している 。ATMセルプロセッサ12は、2つの異なる種類の一次スコアボードを使用す るトンネリング動作を管理する。この例で使用される第1の 種類の一次スコアボードは、マスタスコアボードと呼ばれ、スコアボード300 として図9に示される。それの3つがスコアボード310、320および330 として図9に示された第2の種類の一次スコアボードは、トンネル制御スコアボ ードと呼ばれる。4つのスコアボード300、310、320および330の各 々は、前述の一次スコアボードと同様に制御メモリ22に構成できる。マスタス コアボード300は、実際の伝送リンクのためのセルスケジューリングを管理す るために使用される。マスタスコアボード300は、VP1、VP2およびVP 3と示された3つのVPトンネルのために永久に予約された多数のセルタイムス ロットを有し、スロットの残りは、前述のようにアクセスするための非トンネル 接続に使用可能である。 所与のユーザがトンネルVP1、VP2あるいはVP3のためのマスタスコ アボード300のロケーションを予め予約する場合、対応するトンネル制御ボー ド310、320および330は制御メモリ22のユーザによってセットアップ される。各トンネル制御ボードは、対応するトンネルを使用する接続をスケジュ ーリングするために使用される。トンネル制御ボードは一般的にはマスタースコ アボードと同じサイズである。ユーザは、マスタスコアボードの対応するトンネ ルのために選択されたロケーションには対応しないトンネル制御ボードの全ての ロケーションを使用不可能としてマークを付ける。ユーザは、マークスコアボー ドのこのトンネルのために予約されたロケーションに対応しない所与のトンネル 制御ボードの各ロケーションに一連のPUSHC命令を出すことによってこのマ ーキング動作を実行できる。一連のPUSHC命令を完了した後、ユーザはスケ ジューリング動作を開始できる。ユーザは、スケジューリングリクエストが適当 な予約ビットロケーションに向けられるように対応するトンネル制御ボードの所 与のトンネルのためのトンネル接続をスケジューリングする。 次に、スケジューリングリクエストは下記のようにサービスできる。 ユーザは、前述のようにPOPC命令を出す。POPC命令がトンネルのために 予約されるマスタスコアボードのロケーションを示す場合、トンネル制御ボード の対応するロケーションは、スケジューリングリクエストがこのロケーションの ために入力されたかどうかを決定するために自動的にチェックされる。リクエス トが入力された場合、CSS56は、リクエストをサービスし、それからPUS HC命令をトンネル制御ボードの目的ロケーションに出すことによって接続を再 スケジューリングする。この目的ロケーションは、前述された方法でGCRAを 使用して決定できる。次に、ユーザはマスタスコアボードのこのロケーションを 再予約する。マスタスコアボードおよびトンネル制御ボードの両方を使用するこ とによって、ユーザはマスタスコアボードを使用することによってVPのための 伝送リンク上のCBRセルストリームを予約できると同時に個別のVCのための スケジューリングVBRあるいはABRはトンネル制御ボードを使用する。 11. 完全独立速度 本発明のATMセルプロセッサ12は、異なるVC中に全速度独立性を可能に する。これは、一般的にはサービス間隔を形成するためにタイマのタイムアウト によるので、利用可能にできる異なる速度数に制限される従来のセルプロセッサ とは著しく違っている。セルプロセッサ12において、各VCは、他のVCの速 度から独立して処理される固有な速度を有することができる。この速度は、CP U50およびCSS56が前述のようにVCのための目的スケジューリング時間 を決定するために使用できる。所与の接続の速度が、しばしばABR VCに関 する場合のように、ATMネットワークからのフィードバックに基づいて変更さ れる場合、代わりにCSS56は、スケジューリング機構を変える必要がない。 CSS56は、速度および対応する間隔を再計算し、次のスケジューリングリク エストで再計算間隔を与える。 12. 本来公正なバンド幅割り当て セルプロセッサ12は、例えばいずれかの1回に所与のVCのための一次スコ アボード上に存在する単一のスケジューリングリクエストだけを必要とするよう に構成できる点で本来公正なセルスケジューリングを実行する。他の接続がアク ティブになる場合、この接続は、使用可能なリンクバンド幅に等しいアクセスを 直ちにできる。これは、アクティブ状態を保持するために単一VCのための複数 のスケジューリングリクエストを必要とする場合がある従来技術のセルスケジュ ーリングシステムのかなりの改良を示している。このような従来技術システムで 得られるスケジューリングは、現在のユーザのトラフィックで輻轢になる可能性 があり、それによって新しいユーザがバンド幅の公正な割り当てをするのを困難 にする。 13. スケジューリングリクエストの多重レイヤ 本発明の他の実施例は、単一伝送リンクのための複数の一次スコアボードを備 え、POPC命令はこれらの複数のスコアボードを走査できる。例えば、高い優 先順位トラフィックは、一方の一次スコアボードでスケジューリングできるのに 対して、低い優先順位トラフィックは第2の一次スコアボードでスケジューリン グされる。これは、低い優先権スケジューリングリクエストは高い優先順位リク エストと干渉しないことを確実にする。それから、POPC命令は、高い優先順 位のスコアボードを最初にチエックするために実行でき、ロケーションが検出さ れなかった場合、より低い優先順位スコアボードをチェックできる。ATMセル プロセッサは、より低い優先順位のための“バブル”カウントを保持できた。バ ブルカウントは、より高い優先順位がサービスされる度に、増分され、割り当て られていないスロットがより低い優先順位スコアボードから廃棄される度に、減 分される。より低い優先順位スコアボードためのスケジューリング リクエストは、(目的時間+バブルカウント)で行われる。したがって、より高 い優先順位ボードは、より低い優先順位スコアボードに対する外部セル発生源を 示している。ここで使用されるような用語“バブルカウント”は、ソフトウェア 、ハードウェア、ファームウェアで実行されようとも、所望の計数機能をもたら すそれの組合わせで実行されようとも任意の種類のカウンタによって供給される カウントを含むことを意図されている。 本発明の他の代替実施例は異なるセル速度に対する異なる一次スコアボードを 提供できる。高いセル速度での接続は、一方のスコアボードでスケジューリング でき、より低い速度での接続は、他方のスコアボードでスケジューリングできる 。これは、多数の低いバンド幅VCが一緒にグループ化され、延長された時間高 速度接続を妨げることを防止する。 14. 外部ATMセル多重化 本発明のセルスケジューリング技術は、所与のATM伝送リンクへのアクセス をリクエストする外部セル発生源に適合するために利用できる。この外部セル発 生源は、多数のセルタイムスロットを消費し、CSS56が伝送リンクへのアク セスすることを阻む。このような実施例では、CSS56は、外部セル発生源か らのセルと内部発生セルと混ぜる責任を負うことができる。外部セルは内部発生 セルよりも高い優先順位のものであると仮定すると、セルプロセッサ12は、そ のスケジューリングを通して一時的に続けることができないこともある。セルプ ロセッサが再びスケジューリングを通して続けることができる場合、さらに時間 を引き延ばして存在するスケジューリングリクエストは必要よりも長く待つ。し たがって、セルプロセッサは、予めスケジューリングされたロケーションと現サ ービスアドレスとの間に存在するいかなるスケジューリングされていないロケー ションにもスキップし、次のスケジューリングされたロケーションに直接進むよ うに構成できた。このことによって、時間的にさらに引き延ば してスケジューリングされた接続があまりにも早くサービスされることになるが 、高い優先順位の外部セルがセルストリームに多重化されている間のスケジュー ルサービスの中断によって、未使用スロットは、未使用スロットに従うピークセ ル速度の接続を妨害することなしになくなることができる。 前述の多重レイヤスケジュールにおけるように、ATMセルプロセッサは、外 部セル発生源がある場合、バンド幅の有効な利用を生じるようにバブルカウント も利用できる。このような実施例のバブルカウントは、一次スコアボードでスケ ジュールされなかったATM伝送リンク上に送られたセル数を示すことができる 。したがって、バブルカウントは、いかなるトラフィック・シェイピング違反も 生じなくて一次スコアボード上で割り当てられていないスロットに遭遇する場合 、廃棄することができる割り当てられていないスロット数も示している。行われ る全スケジューリングリクエストは、(目的時間+バブルカウント)に対応する 時間にスケジューリングされるべきである。このようにバブルカウントを目的時 間に加えることは一般にサービス時間を増加させない。これは、他のリクエスト が目的時間あるいは目的時間後に存在するならば、リクエストはとにかく次から 次へと出され、他のリクエストが目的時間あるいは目的時間後に存在しないなら ば、生じるアイドルスロットは結局は廃棄されるためである。割り当てられてい ないスロットに一次スコアボードで遭遇する場合、バブルカウントはゼロでなけ れば、割り当てられていないスロットは、伝送するために待ち行列に入れられた アイドルセルの代わりに廃棄される。セルプロセッサは、一次スコアボードの次 のロケーションに直ぐに進む。バブルカウントは、そのとき1だけ減少される。 セルプロセッサが一次スコアボードで割り当てられていないスロットに遭遇し、 バブルカウントがゼロである場合、スロットは廃棄されなくて、セルプロセッサ は、その代わりに伝送リンク上でアイドルセルを待ち行列に入れる。 CPU50は、目的アドレスを指定し、現バブルカウントに等しい範 囲を利用するpopレンジ(POPR)命令を含むように構成できた。POPR 命令は、目的アドレスと(目的アドレス+バブルカウント)との間のセットビッ トのために一次スコアボードを走査するようにCSS56に命令する。セットビ ットが範囲内でセットされているのが全然検出されない場合、CSS56はAC FRをクリアし、バブルカウントはゼロにリセットされる。セットビットが範囲 内で検出される場合、CSS56はACFRをセットし、接続IDテーブルの対 応するエントリを戻し、バブルカウントは、セットビットの目的ロケーションと 実際のロケーションとの間のロケーションの数だけ減少される。前述されるよう に、このバブルカウント機構はセルプロセッサ12のCPU50を使用してソフ トウェアで実行できる。それとは別に、バブルカウント機構は、セルプロセッサ 12のCSS56あるいは他のどこか内部で実行される別個のハードウェアおよ び/またはファームウェア機能であってもよい。 前述の記載は本発明の単なる例示であることを理解すべきである。添付クレー ムの範囲内の多数の他の実施例は当業者に明らかである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(GH,KE,LS,MW,S D,SZ,UG),EA(AM,AZ,BY,KG,KZ ,MD,RU,TJ,TM),AL,AM,AU,BA ,BB,BG,BR,CA,CN,CU,CZ,EE, FI,GE,HU,IL,IS,JP,KG,KP,K R,LC,LK,LR,LT,LU,LV,MD,MG ,MK,MN,MX,NO,NZ,PL,RO,SG, SI,SK,TR,TT,UA,UG,UZ,VN (72)発明者 ルシアー、ダニエル、ジェイ アメリカ合衆国、マサチューセッツ州 02019、ベリンガム、ビーチウッド ロー ド 6

Claims (1)

  1. 【特許請求の範囲】 1. 非同期転送モード(ATM)セル処理システムにおいて、複数のメモリロ ケーションを含むメモリにアクセスする方法であって、 該複数のメモリロケーションのサブセットの内容を、プロセッサのレジ スタファイルにロードする第一の指令を実行し、 該レジスタファイル内の所与のプロセッサレジスタと、第一の指令に応 じてその内容が該所与のレジスタにロードされている、対応するメモリロケーシ ョンとの間のリンクを格納し、 該所与のレジスタの内容について操作を行う第二の指令を実行し、該第 二の指令は該操作の結果を、格納されたリンクによって示される対応するメモリ ロケーションに自動的にライトバックするよう指令するインジケータを含むこと 、 を特徴とする、非同期転送モード(ATM)通信システムにおいて、複数のメモ リロケーションを含むメモリにアクセスする方法。 2. 該メモリは、メモリコントローラを通じて該プロセッサによってアクセ スされる制御メモリであることを特徴とする、請求項1記載の方法。 3. 第一の指令は、メモリロケーションのサブセットのアドレスと、プロセ ッサレジスタファイルにロードされるロケーションの全数と、プロセッサレジス タファイル内の目的レジスタとを特定するロード多重指令セであることを特徴と する、請求項1記載の方法。 4. 第二の指令は、該所与のレジスタと、該所与のレジスタにおいて実行さ れるALU操作と、ALU操作の結果が対応するメモリロケーションに自動的に ライトバックされるというインジケータを特定する、算術論理演算装置(ALU )指令であることを特徴とする、請求項1記載の方法。 5. 該所与のレジスタと対応するメモリロケーションとの間のリンクを格納 するステップはさらに、指定されたプロセッサレジスタ内の対応するメモリロケ ーションのアドレスを格納するステップを含むことを特徴とする、請求項1記載 の方法。 6. プロセッサレジスタファイル内の該所与のレジスタにアクセスする第三 の指令を実行する前に、所定のプロセッササイクル数、待機するステップをさら に含むことを特徴とする、請求項1記載の方法。 7. 非同期転送モード(ATM)セル処理システムにおいて使用する装置で あって、 複数のメモリロケーションを含むメモリと、 該メモリに接続され、複数のレジスタを有するレジスタファイルを含む プロセッサとを備え、 該プロセッサは、複数のメモリロケーションのサブセットの内容をレジ スタファイル内にロードするための第一の指令を実行し、該レジスタファイル内 の所与のプロセッサレジスタと、第一の指令の応じて、その内容が該所与のレジ スタにロードされた対応するメモリロケーションとの間のリンクを格納すること を指示し、該所与のレジスタの内容について操作を行う第二の指令を実行し、該 第二の指令は該操作の結果が、該格納されたリンクによって示される対応するメ モリロケーションに自動的にライトバックされるよう指示する、ことを特徴とす る、非同期転送モード(ATM)セル処理システムにおいて使用する装置。 8. 該メモリは、メモリコントローラを通じて該プロセッサによってアクセ スされる制御メモリであることを特徴とする、請求項7記載の装置。 9.第一の指令はメモリロケーションの該サブセットのアドレスと、該プ ロセッサレジスタにロードされるロケーションの全数と、該プロセッサレジスタ ファイル内の目的レジスタとを特定することを特徴とする請求項7記載の装置。 10.第二の指令は、該所与のレジスタと、該所与のレジスタにおいて実行され るALU操作と、ALU操作の結果が対応するメモリロケーションに自動的にラ イトバックされるというインジケータを特定する、算術論理演算装置(ALU) 指令であることを特徴とする、請求項7記載の装置。 11.指定されたプロセッサレジスタ内に対応するメモリロケーションの該アド レスを格納することによって、該プロセッサが、該所与のレジスタと対応するメ モリロケーションとの間のリンクの格納を指示することを特徴とする、請求項7 記載の装置。 12.該プロセッサは、さらに所定数のプロセッササイクルの後に、プロセッサ レジスタファイル内の所与のレジスタにアクセスする第三の指令を実行する動作 が可能であることを特徴とする、請求項7記載の装置。
JP09540271A 1996-05-09 1997-05-08 ロード多重命令およびメモリライトバックを有する非同期転送モードセル処理システム Pending JP2000512445A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/647,372 US5748630A (en) 1996-05-09 1996-05-09 Asynchronous transfer mode cell processing system with load multiple instruction and memory write-back
US08/647,372 1996-05-09
PCT/US1997/008387 WO1997042736A1 (en) 1996-05-09 1997-05-08 Asynchronous transfer mode cell processing system with load multiple instruction and memory write-back

Publications (1)

Publication Number Publication Date
JP2000512445A true JP2000512445A (ja) 2000-09-19

Family

ID=24596735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09540271A Pending JP2000512445A (ja) 1996-05-09 1997-05-08 ロード多重命令およびメモリライトバックを有する非同期転送モードセル処理システム

Country Status (5)

Country Link
US (1) US5748630A (ja)
JP (1) JP2000512445A (ja)
AU (1) AU3130497A (ja)
IL (1) IL126863A0 (ja)
WO (1) WO1997042736A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08293834A (ja) * 1995-04-24 1996-11-05 Fujitsu Ltd 光パラレル伝送方式および光伝送装置
JPH10124447A (ja) * 1996-10-18 1998-05-15 Fujitsu Ltd データ転送制御方法及び装置
US6075788A (en) * 1997-06-02 2000-06-13 Lsi Logic Corporation Sonet physical layer device having ATM and PPP interfaces
US6604136B1 (en) 1998-06-27 2003-08-05 Intel Corporation Application programming interfaces and methods enabling a host to interface with a network processor
US6735773B1 (en) 1998-06-27 2004-05-11 Intel Corporation Method and apparatus for issuing commands to a network processor configured to provide a plurality of APIs
US6724767B1 (en) 1998-06-27 2004-04-20 Intel Corporation Two-dimensional queuing/de-queuing methods and systems for implementing the same
US6728249B2 (en) 1998-06-27 2004-04-27 Intel Corporation System and method for performing cut-through forwarding in an ATM network supporting LAN emulation
US6657959B1 (en) 1998-06-27 2003-12-02 Intel Corporation Systems and methods for implementing ABR with guaranteed MCR
US6625650B2 (en) * 1998-06-27 2003-09-23 Intel Corporation System for multi-layer broadband provisioning in computer networks
US6603768B1 (en) 1998-06-27 2003-08-05 Intel Corporation Multi-protocol conversion assistance method and system for a network accelerator
GB9821791D0 (en) * 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
US7046686B1 (en) 1999-08-17 2006-05-16 Mindspeed Technologies, Inc. Integrated circuit that processes communication packets with a buffer management engine having a pointer cache
EP1450536A1 (en) * 2003-02-24 2004-08-25 STMicroelectronics Limited Routing of data streams
US7411949B2 (en) * 2003-12-31 2008-08-12 Jaroslaw Kogut System, method and apparatus for preparing a table for a cell scheduler
US7433904B1 (en) 2004-02-24 2008-10-07 Mindspeed Technologies, Inc. Buffer memory management
US7711928B2 (en) * 2004-03-31 2010-05-04 Oracle America, Inc. Method and structure for explicit software control using scoreboard status information
US7656891B1 (en) * 2004-08-04 2010-02-02 Intel Corporation Method and apparatus enabling concurrent processing of contiguously and virtually concatenated payloads
JP4685682B2 (ja) * 2006-03-31 2011-05-18 富士通株式会社 半導体装置
CN112416824B (zh) * 2020-12-03 2024-02-09 上海集成电路研发中心有限公司 efuse读写控制器、芯片、电子设备及控制方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589087A (en) * 1983-06-30 1986-05-13 International Business Machines Corporation Condition register architecture for a primitive instruction set machine
US5008807A (en) * 1984-07-05 1991-04-16 Texas Instruments Incorporated Data processing apparatus with abbreviated jump field
JP2880271B2 (ja) * 1990-08-17 1999-04-05 株式会社日立製作所 帯域制御方法および回路
US5365519A (en) * 1991-03-05 1994-11-15 Hitachi, Ltd. ATM switch1ng system connectable to I/O links having different transmission rates
US5247627A (en) * 1987-06-05 1993-09-21 Mitsubishi Denki Kabushiki Kaisha Digital signal processor with conditional branch decision unit and storage of conditional branch decision results
US4926374A (en) * 1988-11-23 1990-05-15 International Business Machines Corporation Residue checking apparatus for detecting errors in add, subtract, multiply, divide and square root operations
JP2803262B2 (ja) * 1989-12-15 1998-09-24 日本電気株式会社 パケット・スイッチ
WO1991013505A1 (de) * 1990-03-02 1991-09-05 Ascom Tech Ag Steuereinheit für den zentralspeicher eines atm-knotens
US5379295A (en) * 1990-07-31 1995-01-03 Nec Corporation Cross-connect system for asynchronous transfer mode
JP2834293B2 (ja) * 1990-08-17 1998-12-09 株式会社日立製作所 バーチャルパス容量の変更方法
CA2049428C (en) * 1990-08-20 1996-06-18 Yasuro Shobatake Atm communication system
JPH04100342A (ja) * 1990-08-20 1992-04-02 Toshiba Corp トラヒック制御方式
EP0498967B1 (en) * 1991-02-13 1996-01-24 BELL TELEPHONE MANUFACTURING COMPANY Naamloze Vennootschap Bandwidth allocation for permanent virtual connections
US5241536A (en) * 1991-10-03 1993-08-31 Northern Telecom Limited Broadband input buffered atm switch
JP3064650B2 (ja) * 1992-03-27 2000-07-12 株式会社日立製作所 同報通信装置
US5381407A (en) * 1992-06-04 1995-01-10 Bell Communications Research, Inc. Method and system for controlling user traffic to a fast packet switching system
FR2701180B1 (fr) * 1993-01-29 1995-03-10 Cit Alcatel Dispositif de cellulisation et dispositif de décellulisation de voies numériques synchromes, centre de commutation de voies numériques synchrones, et centre de commutation de voies numériques asynchrones.
MX9308193A (es) * 1993-01-29 1995-01-31 Ericsson Telefon Ab L M Conmutador atm de acceso controlado.
US5440549A (en) * 1993-04-22 1995-08-08 Washington University Broadband multi-channel switch with multicasting capability
ES2164061T3 (es) * 1993-04-29 2002-02-16 Cit Alcatel Generador de trafico.
US5448567A (en) * 1993-07-27 1995-09-05 Nec Research Institute, Inc. Control architecture for ATM networks
JPH0774749A (ja) * 1993-09-01 1995-03-17 Hitachi Ltd スイッチングシステム
US5446726A (en) * 1993-10-20 1995-08-29 Lsi Logic Corporation Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device
GB2288096B (en) * 1994-03-23 1999-04-28 Roke Manor Research Apparatus and method of processing bandwidth requirements in an ATM switch
JPH07321815A (ja) * 1994-05-24 1995-12-08 Nec Corp 共有バッファ型atmスイッチおよびその同報制御方法
US5455826A (en) * 1994-06-28 1995-10-03 Oezveren; Cueneyt M. Method and apparatus for rate based flow control
US5598541A (en) * 1994-10-24 1997-01-28 Lsi Logic Corporation Node loop port communication interface super core for fibre channel
US5533020A (en) * 1994-10-31 1996-07-02 International Business Machines Corporation ATM cell scheduler
US5530806A (en) * 1994-12-15 1996-06-25 At&T Corp. Method and apparatus for storing and retrieving routing information in a network node
US5598410A (en) * 1994-12-29 1997-01-28 Storage Technology Corporation Method and apparatus for accelerated packet processing
US5548588A (en) * 1995-01-31 1996-08-20 Fore Systems, Inc. Method and apparatus for switching, multicasting multiplexing and demultiplexing an ATM cell
US5541918A (en) * 1995-01-31 1996-07-30 Fore Systems, Inc. Method and apparatus for manipulating an ATM cell
US5535201A (en) * 1995-05-10 1996-07-09 Mitsubishi Electric Research Laboratories, Inc. Traffic shaping system using two dimensional timing chains

Also Published As

Publication number Publication date
US5748630A (en) 1998-05-05
AU3130497A (en) 1997-11-26
WO1997042736A1 (en) 1997-11-13
IL126863A0 (en) 1999-09-22

Similar Documents

Publication Publication Date Title
JP2000512815A (ja) スコアボードスケジューリングを有する非同期転送モードセル処理システム
US5748631A (en) Asynchronous transfer mode cell processing system with multiple cell source multiplexing
JP2000512445A (ja) ロード多重命令およびメモリライトバックを有する非同期転送モードセル処理システム
US5664116A (en) Buffering of data for transmission in a computer communication system interface
EP0473777B1 (en) High-speed packet switching apparatus and method
US5751951A (en) Network interface
US5963543A (en) Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device
US5640399A (en) Single chip network router
US7099328B2 (en) Method for automatic resource reservation and communication that facilitates using multiple processing events for a single processing task
US5838904A (en) Random number generating apparatus for an interface unit of a carrier sense with multiple access and collision detect (CSMA/CD) ethernet data network
US6097734A (en) Programmable reassembly of data received in an ATM network
JP4090510B2 (ja) アプリケーションデータのダイレクトマッピングのためのコンピュータインターフェース
EP0752651A2 (en) Index value reference for shared data structures
US6996639B2 (en) Configurably prefetching head-of-queue from ring buffers
US5696940A (en) Apparatus and method for sharing first-in first-out memory space between two streams of data
EP0772131A2 (en) Method and apparatus for support of virtual channels for the transfer of data
US7113985B2 (en) Allocating singles and bursts from a freelist
US20020057708A1 (en) Enhancing performance by pre-fetching and caching data directly in a communication processor's register set
EP1062780B1 (en) Apparatus and method for providing different quality of service connections in a tunnel mode
US20080013535A1 (en) Data Switch and Switch Fabric
EP1045558A2 (en) Very wide memory TDM switching system
JPH09149050A (ja) データ受信装置
US6327271B1 (en) Programmable reassembly of data received in an ATM network
US7039054B2 (en) Method and apparatus for header splitting/splicing and automating recovery of transmit resources on a per-transmit granularity
US5794025A (en) Method and device for performing modulo-based arithmetic operations in an asynchronous transfer mode cell processing system