JPH0612383A - マルチプロセッサバッファシステム - Google Patents

マルチプロセッサバッファシステム

Info

Publication number
JPH0612383A
JPH0612383A JP5002593A JP259393A JPH0612383A JP H0612383 A JPH0612383 A JP H0612383A JP 5002593 A JP5002593 A JP 5002593A JP 259393 A JP259393 A JP 259393A JP H0612383 A JPH0612383 A JP H0612383A
Authority
JP
Japan
Prior art keywords
pointer
buffer
message
memory
processor
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
JP5002593A
Other languages
English (en)
Inventor
Michael J Seaman
ジェイ シーマン マイケル
Stewart F Bryant
エフ ブライアント スチュワート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH0612383A publication Critical patent/JPH0612383A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Abstract

(57)【要約】 【目的】 マルチプロセッサコンピュータシステムのプ
ロセッサ間でメッセージを通信する機構で、メッセージ
前進プロトコルの一部分としてソースプロセッサへ空き
バッファを整然と且つ確実に返送するメッセージ通信機
構を提供する。 【構成】 第1デバイスから第2デバイスへメッセージ
を通信するバッファスワップ機構であって、第1デバイ
スが第2デバイスに意図されたメッセージを含むバッフ
ァのポインタを通すことを条件として空きバッファのポ
インタが第2デバイスによって第1デバイスへ返送され
るバッファスワップ機構。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマルチプロセッサコンピ
ュータシステムに係り、より詳細には、マルチプロセッ
サコンピュータシステムのプロセッサ間でメッセージを
通信するための機構に係る。
【0002】
【従来の技術】近代的なコンピュータシステムは、複数
のプロセッサが例えばバスによって互いに接続されたマ
ルチプロセッサシステムとして実施されることが頻繁で
ある。コンピュータシステムを動作する場合に、これら
のプロセッサが互いにメッセージを通信することがしば
しば必要となる。ある既知の機構では、各々のメッセー
ジが、そのメッセージを発生するプロセッサ(ソースプ
ロセッサ)によってバッファに記憶される。次いで、こ
のソースプロセッサは、そのバッファに対するポインタ
情報を、そのメッセージが向けられるプロセッサ(行き
先プロセッサ)へ通しそしてこの行き先プロセッサがポ
インタ情報を用いてバッファからメッセージを読み取
る。各プロセッサはメッセージのソース又は行き先のい
ずれかになり得ることを理解されたい。
【0003】バッファのポインタを通す機構は、例え
ば、各メッセージ全体が行き先プロセッサへ直接送信さ
れそして多数のソースプロセッサが同じ時間中に特定の
行き先プロセッサへメッセージを送る必要がある場合に
特定の行き先プロセッサに生じることのある一時的な入
力/出力帯域巾のクランチを防止する。ポインタを通す
ことにより、各行き先プロセッサは、適当なバッファか
ら各々の行き先プロセッサへのメッセージの移動スケジ
ュールを組むことができる。特定の行き先プロセッサ
は、ポインタを容易に読み取って記憶することができ、
その特定の行き先プロセッサの入力/出力帯域巾に適合
する時間周期にわたってその関連バッファをメッセージ
全体に対してアクセスすることができる。
【0004】メッセージを通信するのに使用されるバッ
ファは、全て、バスに接続された共有中央メモリに配置
することができる。中央メモリの使用により、バッファ
システムに対する全設計要求が簡単化されると共に、バ
ッファをプロセッサ間に割り当てる際の融通性が与えら
れる。システムを初期化する際には、各ソースプロセッ
サから予想されるメッセージトラフィックの量に適合す
るように中央メモリ内の多数のバッファが各ソースプロ
セッサに割り当てられる。それに加えて、共有メモリ
は、メッセージに対するピーク受信レートの例えば2倍
の入力/出力帯域巾で実施することができ、これによ
り、中央メモリは、システム全体に生じる全メッセージ
トラフィックについて考えられる最大量を処理すること
ができる。このようにして、各潜在的な行き先プロセッ
サにおける厳密な帯域巾要求が少なくなり、上記したよ
うに、全メッセージを記憶するバッファに対するポイン
タを受け取って、その特定の行き先プロセッサの入力/
出力帯域巾内のレートで全メッセージの転送スケジュー
ルを組むだけでよくなる。
【0005】
【発明が解決しようとする課題】マルチプロセッサ通信
に対する既知のバッファポインタ解決策は、プロセッサ
間でメッセージを効率的に通すための効果的な機構であ
るが、この機構は、行き先プロセッサにより空き(自
由)バッファを確実に返却することを通じて各ソースプ
ロセッサのための空きバッファを確実に供給するという
点で充分でない。これは、メッセージトラフィック量の
多いマルチプロセッサシステムについて特にいえること
である。
【0006】
【課題を解決するための手段】本発明は、メッセージ送
信プロトコルの一部分としてソースプロセッサへ空きバ
ッファを整然と且つ確実に返送することを確保するメッ
セージ通信機構を提供する。一般に、本発明は、行き先
プロセッサに向けられるメッセージを含むバッファのポ
インタをソースプロセッサが通すことを条件として空き
バッファのポインタを行き先プロセッサによってソース
プロセッサへ返送するようなバッファスワッピング機構
を提供する。従って、バッファの消費側である行き先プ
ロセッサは、バッファリソースの充分な供給を維持する
役目を果たさねばならない。本発明の特徴によれば、こ
のバッファスワッピング機構は、バッファポインタを交
換するためにソースプロセッサ及び行き先プロセッサを
同期する必要性も、共通の行き先プロセッサへメッセー
ジを転送するソースプロセッサを同期する必要もなくす
ように実施される。
【0007】このため、行き先プロセッサは空きバッフ
ァに対するポインタのプールを維持すると共に、ソース
プロセッサは行き先プロセッサへポインタを転送する間
に独立したシーケンスのステップを実行し、その行き先
プロセッサのメッセージを含んでいるバッファのポイン
タを転送する前に空きバッファの1つを獲得する。各行
き先プロセッサは、各潜在的なソースプロセッサに対し
て1つづつ専用に1組のバッファリングメモリを維持し
て、各潜在的な行き先プロセッサを全ての潜在的なメッ
セージソースにリンクするように構成される。特定の行
き先プロセッサに対するリングメモリは、その行き先プ
ロセッサにおけるローカルメモリとして実施することが
できる。別の態様においては、バッファポインタを交換
するために全てのソース及び行き先プロセッサによって
アクセスすることのできる中央のメモリリソースとして
全てのリングメモリを実施することができる。
【0008】各バッファリングメモリは一連の位置を含
んでおり、これらの位置は、そのバッファリングに関連
した行き先プロセッサへ向けられる各ソースからのメッ
セージを含むバッファのポインタを記憶するためのもの
である。専用のリングメモリを使用することにより、共
通の行き先プロセッサへメッセージを転送するソースプ
ロセッサを同期する必要性が除去される。以下に述べる
ように、各ソースプロセッサは、バッファポインタを記
憶するためにそのバッファリングメモリ内にある定めら
れた専用のメモリスペースを有しており、従って、他の
潜在的なソースプロセッサを除いてそのメモリスペース
に読み取り及び書き込みすることができる。特定の行き
先プロセッサへメッセージを転送する全てのソースプロ
セッサによって共有されるその特定の行き先プロセッサ
のための共通のポインタメモリスペースを使用する場合
には、ソースプロセッサの1つによるバッファ交換を確
実に完了させるために、読み取り−変更−書き込みイン
ターロックバストランザクションのようなアトミックな
即ちインターロック式のバストランザクションが必要と
される。このアトミックなバストランザクションは、現
在のバッファポインタ交換を完了する前に別のソースプ
ロセッサが共通のメモリスペースへアクセスするのを除
外するために必要とされる。
【0009】例えば、「所有権」ビットのような適当な
指示がバッファリングメモリの各位置に配置され、特定
のバッファリングメモリによりリンクされたソース及び
行き先プロセッサの各々に対してその位置が有効/非有
効としてマークされる。所有権ビットは、その位置を読
み取るプロセッサに対し、その位置に記憶されたポイン
タがそのプロセッサによって「所有」されているかどう
かに関わりなく通信するために使用される。一般に、バ
ッファリングメモリに対応するソースプロセッサによっ
て所有された位置は、ソースプロセッサへ転送して戻す
ことのできる空きバッファのポインタを含んでいる。一
方、バッファリングに対応する行き先プロセッサにより
所有された位置は、行き先プロセッサに対して意図され
た各ソースプロセッサからのメッセージを記憶するバッ
ファのポインタを含んでいる。
【0010】メッセージが記憶されるバッファのポイン
タを転送することによるメッセージの転送は、いずれか
のソースプロセッサといずれかの行き先プロセッサとの
間の2つのバストランザクションで行うことができる。
特定の行き先プロセッサへ送信すべきメッセージを有す
るソースプロセッサは最初にメッセージを中央共有メモ
リの空きバッファに記憶する。第1のバストランザクシ
ョン中に、ソースプロセッサは、意図された行き先プロ
セッサに関連したそのバッファリングメモリの次の位置
を読み取る。その位置がソースプロセッサによって所有
されている場合には、ソースプロセッサが、そこに記憶
されたポインタを、次のメッセージ転送における空きバ
ッファとして使用するために読み取る。
【0011】次いで、ソースプロセッサは、第2のバス
トランザクション中に、空きバッファのポインタを丁度
読み取ったばかりのバッファリングメモリの位置に、特
定の行き先プロセッサのためのメッセージを記憶してい
る中央メモリのバッファのポインタを書き込む。又、ソ
ースプロセッサは、その位置が現在各行き先プロセッサ
によって所有されていることを指示する所有権ビットの
状態を、その位置がその行き先のためのメッセージを含
むバッファのポインタを記憶することを指示するように
変化させる。従って、ソースプロセッサは、そのバッフ
ァリングメモリをアクセスするための独立したバストラ
ンザクションを介してメッセージ転送の一部分及び一区
分として空きバッファを獲得する。
【0012】各行き先プロセッサは、所有した位置に対
するローカルバッファリングメモリの位置、即ち各行き
先プロセッサのためのメッセージを有するバッファのポ
インタを含んでいる位置をポーリングするよう動作す
る。行き先プロセッサは、所有された位置を探索する
と、そこに記憶されたポインタ値を読み取り、その位置
に空きバッファのプールからの空きバッファのポインタ
をオーバーライトする。その後、行き先プロセッサは、
ソースプロセッサがその位置とそこに記憶された空きバ
ッファのポインタとを所有することをもう一度指示する
ように所有権ビットを変更する。従って、各行き先プロ
セッサは、各メッセージポインタを読み取るときに特定
のソースプロセッサに対し空きバッファを使用できるよ
うにしなければならない。行き先プロセッサは、中央バ
ッファメモリへ将来アクセスするためにメッセージを含
むバッファのポインタを待ち行列に入れ、その行き先プ
ロセッサの入力/出力帯域巾でメッセージを読み取るよ
うにすることができる。
【0013】従って、空きバッファは、メッセージを含
んでいるバッファのポインタが行き先プロセッサへ転送
されるたびに、行き先プロセッサによりソースプロセッ
サに使用できるようにされる。更に、ポインタの交換
は、ソース及び行き先プロセッサ各々の独立したオペレ
ーションにより、即ち各専用のリングメモリを読み取っ
たり書き込んだりするソースプロセッサの2つのバスト
ランザクションと、行き先プロセッサの個別のポーリン
グ/空きバッファ書き込み動作とによって行われる。従
って、各空きバッファポインタ/メッセージポインタの
交換に作用するようにプロセッサを同期する必要はな
く、更に、読み取り−変更−書き込み又は他のインター
ロックバストランザクションの必要なくバスの独立オペ
レーションで交換を行うことができる。
【0014】バッファスワッピング機構におけるソース
及び行き先プロセッサの独立したオペレーションは、待
ち時間要求を容易にしたり或いはバス帯域巾を更に減少
したりするのにも使用できる。ソースプロセッサは、例
えば、バッファリングメモリ内の多数の位置を「先へ先
へと読んで」、単一のバストランザクションで所定数の
空きバッファを獲得するように動作することができる。
これにより、高性能のソースプロセッサは、その獲得し
た数の空きバッファを使用してメッセージのバーストを
送信するように準備することができる。同様に、ソース
プロセッサは、多数のメッセージポインタを単一のバス
トランザクションでバッファリングメモリ内の多数の位
置に書き込むように動作して、待ち時間を更に容易にす
ると共にバス帯域巾を減少することができる。それに加
えて、潜在的なソースごとに1つづつ各々の潜在的な行
き先プロセッサに専用のバッファリングメモリを使用す
ることにより、任意の特定の行き先プロセッサは、どこ
らかメッセージが来てどのソースプロセッサへ空きバッ
ファを返送するかを自動的に知ることができる。
【0015】本発明の一実施例において、所有権ビット
に加えて、制御情報が各バッファリングメモリ位置に与
えられる。この制御情報は、「開始/継続/最終」マー
カフィールドを備えていると共に、あるポインタにおい
ては、「読み取り許可」フィールドも備えている。
【0016】「開始/継続/最終」マーカフィールド
は、1つの固定サイズバッファに記憶するには大き過ぎ
るメッセージを多数の論理的に隣接するバッファに記憶
できるようにバッファ同士をリンクするのに使用され
る。ロングメッセージの第1部分を記憶するバッファの
マーカフィールドは「開始」状態を指示するようにセッ
トされ、メッセージのその後の部分に対するその後のバ
ッファの各々のマーカフィールドは「継続」状態にセッ
トされ、そしてメッセージの最終部分を記憶するバッフ
ァはそのマーカフィールドが「最終」状態にセットされ
る。このように、各バッファに対して固定サイズを維持
しながら、異なるサイズのメッセージをプロセッサ間で
送信できるようにする。
【0017】固定サイズバッファの特徴により、メッセ
ージバッファとしてスワップされる各空きバッファが、
前記したように、メッセージバッファの書き込みの前に
バッファリングメモリ位置に効果的に記憶されるので、
本発明によるスワップ機構を容易なものにする。従っ
て、全てのバッファに対して固定サイズを使用すること
により、バッファスワッピング動作中に充分なバッファ
スペースが一貫して返送されるよう確保される。換言す
れば、メッセージバッファに等しいサイズの空きバッフ
ァがバッファ交換におけるメッセージバッファとして常
に交換される。この「開始/継続/最終」マーカフィー
ルドを使用することにより、考えられる最大のメッセー
ジサイズ以下に、例えば、ほぼ平均メッセージサイズに
サイズ固定することによって効率的なメモリ割り当てを
行うようにバッファの固定サイズを最適なものにするこ
とができる。更に、「開始/継続/最終」マーカフィー
ルドは、最大メッセージサイズまでメッセージを受け入
れるようにバッファを互いにリンクする融通性を与え
る。
【0018】「読み取り許可」フィールドは、ソースプ
ロセッサが1つのメッセージ転送動作において多数の行
き先へメッセージを転送できるようにする。ポインタに
読み取り許可フィールドを含ませたことにより、バッフ
ァリング位置がメッセージに対するポインタを含んでい
るがバッファリング位置が読み取りのみのアクセスを有
し且つバッファがソースによってまだ所有されているよ
うな各々の意図された行き先プロセッサとの通信が行わ
れる。ソースプロセッサは、特定のメッセージを転送す
べき行き先プロセッサにテーブル記憶情報を維持する。
特定のバッファリング位置を読み取る際に各々の意図さ
れた行き先プロセッサによってソースプロセッサへ「メ
ッセージ読み取り」通信が返送されることにより、ソー
スプロセッサは、「メッセージ読み取り」通信を受け取
るにつれて徐々にテーブルをクリアすることができる。
1組の意図された行き先プロセッサ全部がメッセージを
読み取ったときに、そのメッセージが全ての意図された
行き先プロセッサにより受け取られたことを示す現在ク
リアされたテーブルからの肯定指示でバッファが再び自
由に使用できるようになる。
【0019】従って、本発明は、プロセッサ間でメッセ
ージを転送する単純な機構を提供する。この機構は、各
ソースプロセッサへの空きバッファの保証された返送を
確保するバス独立転送において実施することができる。
各行き先プロセッサにおけるバッファリングメモリのサ
イズが固定されて、行き先プロセッサへのメッセージの
転送と歩調を合わせるように行き先プロセッサのポーリ
ング動作を最適にタイミング取りすることができる。こ
のように、各ソースプロセッサがその専用のバッファリ
ングメモリをめぐるように進むので、常に次の位置がソ
ースプロセッサによって所有される。かくて、各々のソ
ースプロセッサは、そのソースプロセッサによって読み
取られた次のバッファリング位置の所有権がそのソース
によって所有されないときに不良アラームを発生するよ
うに構成することもできる。従って、本発明のバッファ
スワップ機構は、効果的なアラーム機能を果たすように
便利に使用することができ、これにより、必要に応じて
システムを再構成して空きバッファスワップを確保する
ようにネットワークマネージャにより適当な処置をとる
ことができる。
【0020】
【実施例】添付図面の図1には、マルチプロセッサコン
ピュータシステムが参照番号10で一般的に示されてい
る。ここに示すシステムにおいて、複数のラインカード
12は、その各々がバックプレーンバス14に接続され
るように構成される。中央バッファメモリ16もバス1
4に接続され、ラインカード12がこの中央バッファメ
モリ16にアクセスして、ラインカード12間で通信さ
れるべきメッセージを読み取ったり書き込んだりできる
ようになっている。
【0021】ラインカード12はn個あり(0から
n)、これらはコンピュータネットワーク(図示せず)
においてマルチプロトコルルータ/ブリッジを構成す
る。各ラインカード12は、ラインインターフェイス1
8と、プロセッサ20と、バスインターフェイス22
と、リングメモリ24とを含む。
【0022】各ラインインターフェイス18は、例え
ば、長距離の電話会社によって提供されるT1即ち64
Kbpsサービスのようなデータ送信サービスや、又は
コンピュータネットワークの他のコンポーネントとデー
タパケットをやり取りするためのLANに接続されるよ
うになっている。各ラインインターフェイス18は、そ
の特定のラインインターフェイスが接続されるデータ送
信サービスにおいて実施されるネットワークプロトコル
に基づいて物理的及びデータリンクレベルの機能性を発
揮するように構成される。
【0023】各ラインカード12のプロセッサ20は、
各ラインカード12に受信されるか又はそこから送信さ
れるデータパケットに対してルート設定又はブリッジ接
続処理を実行する。受信側では、各プロセッサ20は、
例えば、受信したデータパケットのヘッダに含まれたネ
ットワークアドレスを検査して、コンピュータネットワ
ーク内の継続したルート設定又はブリッジ接続のための
データパケットを送信するのにどのラインカード12を
使用すべきかを判断する。
【0024】従って、各データパケットは、別のライン
カード12のプロセッサ20に対する潜在的な「メッセ
ージ」であり、即ち受信したデータパケットをその送信
ラインカード12のプロセッサ20へ転送して処理する
と共に、他のラインカード12のラインインターフェイ
ス18を経て最終的に送信しなければならない。従っ
て、図1に示すマルチプロセッサコンピュータシステム
10は、メッセージトラフィック量の多いシステムの一
例である。各プロセッサ20は、他のプロセッサ20か
ら受け取ったデータパケット又は他のプロセッサ20へ
通信すべきデータパケットを主として処理し、マルチプ
ロセッサコンピュータシステム10により与えられるル
ータ又はブリッジを通してのデータパケットの送信を完
了する。
【0025】このため、各プロセッサ20は、ラインカ
ード12の各バスインターフェイス22を経てバッファ
メモリ16内の空きバッファに各々の受信メッセージを
記憶する。バスインターフェイス22は、バス14にお
いて実施されるバスプロトコルに基づいて動作し、バス
14の制御権を獲得した後に、バス14を経てバッファ
メモリ16内の選択されたバッファへ書き込み動作を実
行する。本発明によれば、そのバッファのポインタがそ
の送信ラインカード12のプロセッサ20へ送信され、
該プロセッサはこのポインタを用いてバッファメモリ1
6から全データパケットを読み取り、ネットワーク処理
及び最終的な送信を行う。
【0026】各ラインカード12のリングメモリ24
は、システム10の互いに他のラインカード12の各々
と同じラインカード12のプロセッサ20とに各々専用
とされたn個のバッファリングに分割される。(例示的
なシステムにおいては、ラインカード12によって受信
されてその同じラインカード12によって最終的に送信
されるべきデータパケットが、他のデータパケットと同
じメッセージ送信機構を通してラインカードからライン
カードへ送り返される。)リングメモリ24の各々は、
ラインカード12のプロセッサ20がバス14を経て読
み取りバストランザクションを実行して中央メモリ16
から全データパケットを読み取ることができるようにな
るまで、他のラインカード12からのポインタを記憶す
るのに用いられる。
【0027】図2には、本発明によるバッファスワップ
機構が概略的に示されている。RX1及びRX2の各々
は、各ラインカードがデータパケットの受信器として働
くときのラインカード12の1つを表しており、そして
Txa及びTxbの各々は、各ラインカードがデータパ
ケットの送信器として働くときのラインカード12の1
つを表している。RXPは、各々の受信したデータパケ
ットを処理するためにラインカード12の各プロセッサ
20に設けられたデータパケット受信モジュールを表し
ており、一方、TXPは、各データパケットを処理して
送信するためにラインカード12の各プロセッサ20に
設けられたデータパケット送信モジュールを表してい
る。
【0028】上記したように、各バッファリングメモリ
24はn個のリング24Aに分割され、各リングは中央
メモリ16のバッファにポインタを記憶するための予め
選択された数のメモリ位置26を有している。更に、各
リング24Aは、ライン28によって示すように、1つ
のRXPモジュールによって専用に使用されるものであ
る。FREEバッファ待ち行列30及び送信(TXQ)
バッファ待ち行列32は、各ラインカード12のTXP
モジュールによって維持される。
【0029】あるRXPモジュールが中央メモリ16の
バッファに既に記憶されているメッセージ(データパケ
ット)を特定のTXPモジュールへ通信する必要がある
ときには、各ラインカード12の専用リング24Aの位
置26を最初に読み取る。各RXPは、例えば、各専用
のバッファリング24Aに対するリングポインタを維持
することができる。各リングポインタは、特定のトラン
ザクション中に読み取るべき対応バッファリング24A
の位置26に対するアドレスを含んでいる。RXPモジ
ュールは、各トランザクション後にアドレス値を増加
し、リングバッファ24を連続的に横切っていく。
【0030】ここで図5を参照すれば、各位置26は、
中央メモリ16のバッファに対するポインタを記憶する
ためのポインタ値フィールド34と、セット状態かクリ
ア状態かを表す1つのビットより成る所有権フィールド
36とを含んでいる。セット状態は、RXPモジュール
(ソースプロセッサ)による位置26の所有権を表すこ
とができ、一方、クリア状態は、TXPモジュール(行
き先プロセッサ)による位置26の所有権を表すことが
できる。RXPモジュールにより読み取られた位置26
がそのモジュールによって所有される場合には、ポイン
タ値34(図5参照)が中央メモリ16の空きバッファ
に対するポインタとなる。RXPモジュールはそのポイ
ンタ値を読み取り、以下で明らかとなるように、その値
をその後のメッセージ転送に使用するために記憶する。
【0031】次いで、RXPモジュールは、メッセージ
(データパケット)が中央メモリ16に記憶されるとこ
ろのバッファに対するポインタ値34を書き込み、所有
権フィールド36の状態を、ラインカード12のTXP
モジュールによる所有権を表すように変更する。
【0032】各TXPモジュールは、各ラインカード1
2に配置されたリング24Aの位置26をポーリングす
るように構成されている。位置26がTXPモジュール
によって所有されているときには、その位置26に記憶
されたポインタ値36が読み取られ、TXQ待ち行列3
2へロードされる。このとき、TXPモジュールは、F
REE待ち行列30から位置26へポインタ値を書き込
むと共に、位置26がRXPモジュールによって所有さ
れたことを再び指示するように所有権ビットを変更す
る。
【0033】TXPモジュールは、TXQ待ち行列にロ
ードされた各ポインタに例えばFIFOベースで作用
し、各完全なメッセージに対して中央メモリをアクセス
する。TXPモジュールが特定のポインタ値に関連した
完全なメッセージを読み取った後に、そのポインタ値を
将来のバッファスワップ動作で使用するためにFREE
待ち行列に転送する。
【0034】このようにして、バッファはラインカード
12間で自動的に且つ連続的にスワップされ、空きバッ
ファの保証された返送供給によりメッセージ通信を容易
にする。図3及び4は、各々ソース及び行き先メッセー
ジ処理について上記のバッファスワップ機構を詳細に示
している。図3に示すように、各々の完全なメッセージ
(データパケット)がDEVICE待ち行列100にロ
ードされる。RXPモジュールは、このDEVICE待
ち行列100から一度に1つづつメッセージを読み取
り、良く知られたように、各データパケットのヘッダを
調べてネットワークアドレスを抽出し、どのTXPモジ
ュールが送信のためにメッセージ(データパケット)を
受信すべきかを判断する。
【0035】このために、ネットワークアドレスを含む
ARE要求がアドレス確認エンジン(図示せず)へ送信
され、これは、データパケットを送信するのに使用すべ
きTXPモジュールの識別を含む関連ネットワーク情報
のためのものである。又、RXPモジュールはデータパ
ケットを中央メモリ16内のバッファへ書き込む。RX
Pの空きバッファ待ち行列102は、その前のバッファ
スワップにより得た空きバッファに対する複数のポイン
タを記憶する。RXPモジュールは、待ち行列102か
ら最も上の空きバッファポインタを読み取り、そのポイ
ンタによって指示されるバッファへ現在データパケット
を書き込む。RXPの空きバッファ待ち行列102は、
RXPモジュールがパイプラインデータパケット処理を
行えるようにし、即ちRXPモジュールは、多数の空き
バッファポインタをRXP空きバッファ待ち行列102
に記憶することにより直前のデータパケット(1つ又は
複数)に対して空きバッファを返送する前にDEVIC
E待ち行列100からのその後のデータパケットの処理
を開始することができる。
【0036】データパケットは、各ラインカード12の
バスインターフェイス22を使用してバス14のバスト
ランザクションを介してRXP空きバッファ待ち行列1
02から得たポインタによって指示された中央メモリバ
ッファに書き込まれることを理解されたい。次いで、R
XPモジュールはPre−ADDRESS待ち行列10
4へポインタ値を書き込む。
【0037】RXBAは、ARE結果を受け取りそして
その結果(データパケットを送信するのに使用すべきT
XPモジュールの識別を含む)をデータパケット中央メ
モリ位置に対するポインタ値と関連させるように構成さ
れる。関連ポインタ/TXP情報は、RXBAモジュー
ルによりRxBIN106へロードされ、最終的にはR
xBDモジュールに入力される。
【0038】RxBDモジュールは、その入力情報を使
用して、データパケットに関連したネットワーク情報を
含む記述子を発生する。この記述子は、RxBDモジュ
ールにより、データパケット自体が記憶された中央メモ
リのバッファへ書き込まれ、TXPモジュールにより送
信処理に使用される。この記述子は、RxPモジュール
によって実行される何らかのネットワーク処理情報を含
むことができ、これはTXPモジュールによって実行さ
れる送信処理にも必要とされるものである。更に、Rx
BDモジュールは、ポインタ/TXP情報の各関連対を
SOURCE待ち行列108へ通す。
【0039】SWAPモジュールは、SOURCE待ち
行列108からポインタ/TXP情報の関連対を取り出
し、そのポインタ/TXP情報における特定のポインタ
に関連したTXPモジュールの対応リング24Aの所有
位置26に対し、バス14を経て上記2つのバストラン
ザクションを実行する。第1のバストランザクションに
よって得た空きバッファは、その後のメッセージ通信に
おいてRXPモジュールによって使用するためにRXP
空きバッファ待ち行列102へロードされ、SOURC
E待ち行列108から得たポインタは、対応するリング
24Aの現在位置26に書き込まれる。又、SWAPモ
ジュールは、現在位置26のTXP所有権を指示するよ
うに所有権ビットを変更する。
【0040】図4を参照すれば、ラインカード12の各
プロセッサ20にあるリングポーリングモジュールSC
AV RINGSは、所有された位置26を探索するた
めにラインカード12に関連したn個のリング24Aの
各位置をポーリングする。このSCAV RINGSモ
ジュールは、各々の所有された位置26のポインタを読
み取り、その後、FREE待ち行列30からその位置2
6へポインタを書き込む役割を果たす。又、SCAV
RINGSモジュールは、位置26の所有権ビットをR
XP所有権状態へ戻すように変更する。
【0041】図4に示すように、TXQ待ち行列32
は、1組の行き先ビン200と、1組の行き先待ち行列
202とを備えている。各行き先ビン200はリング2
4Aの1つに専用とされ、各行き先待ち行列202は、
マルチプロトコルルータ/ブリッジのここに示す実施例
では、特定のネットワークプロトコル又はブリッジプロ
トコル、例えば、OSI及びIPネットワークプロトコ
ルや、ブリッジプロトコルを表すBRに専用とされる。
ビン/待ち行列のセット構成は、第1にソースによりそ
してプロトコルの形式によりメッセージを分離するのに
使用される。本発明のこの特徴は、以下で明らかとなる
ように、メッセージのソース及びメッセージの形式に対
してメッセージを取り扱う上で融通性を発揮するもので
ある。
【0042】図5を再び参照すれば、各位置26は「開
始/継続/最終」マーカフィールド38を含んでいる。
上記したように、中央メモリの全てのバッファは同じサ
イズのものであって、各々の空きバッファ/メッセージ
バッファ交換において同じ量のバッファスペースがスワ
ップされるよう確保する。「開始/継続/最終」マーカ
フィールド38は、単一のバッファに記憶するには大き
過ぎるメッセージを通信するためにバッファを互いにリ
ンクする機構を構成する。
【0043】RXPモジュールが、中央メモリ16の単
一バッファとしては大き過ぎるメッセージ(データパケ
ット及びそれに関連した記述子)を通信するときには、
「開始/継続/最終」マーカフィールドによりメッセー
ジを多数のバッファにおいて通信しそしてそれらバッフ
ァをリンクする。メッセージの第1の部分は第1バッフ
ァに入れられ、RXPモジュールは、ポインタの「開始
/継続/最終」マーカフィールドを第1バッファにセッ
トし、「開始」バッファを指示する。メッセージの後続
部分を含むバッファは、各ポインタの各マーカフィール
ドがそのメッセージの最終部分まで「継続」を指示する
よう各々セットされた状態で中央メモリ16に各々記憶
される。明らかなように、RXPモジュールは、メッセ
ージの最終部分を含むバッファポインタのマーカフィー
ルドを、「最終」を表すようにセットする。これらの開
始、継続及び最終バッファポインタは、行き先プロセッ
サに関連した適当なバッファリング24Aの隣接部分に
記憶される。
【0044】しかしながら、プロセッサ20のSCAV
RINGSモジュールにおいて公平なポーリング動作
を行うために、各SCAV RINGSモジュールは、
例えば、ある特定リング24Aの位置をポーリングしそ
して各々の他のリング24Aへと進んだ後に、その特定
リング24Aの次の位置へ戻るように構成することがで
きる。これにより、SCAV RINGSモジュール
は、それら各々の「開始/継続/最終」マーカフィール
ドによってリンクされたポインタを順に取り去ることは
しない。多数の行き先ビン200は、公平なポーリング
動作を受け入れそして特定のRXPモジュールにより送
信されたリンクしたバッファポインタ間の隣接関係を依
然として維持するために使用される。各SCAV RI
NGSモジュールは、特定のリング24Aから読み取っ
た各ポインタを、そのリング24Aに対応するビンへロ
ードし、全ての開始、継続及び最終バッファポインタが
その送信ラインカード12を経て移動するときに隣接し
たままであるようにする。
【0045】SCAV BINSモジュールは、バッフ
ァポインタを行き先ビン200から適当な行き先待ち行
列202へ転送するのに使用される。上記したように、
各行き先待ち行列202は特定のプロトコルに専用とさ
れる。図5に示すように、各位置26にはTYPEフィ
ールド40が設けられ、これは、ポインタ値によって指
示されたメッセージのデータパケットを送信するのに用
いられるプロトコルを指示するために使用される。RX
Pモジュールは、バッファスワップ動作の前にプロトコ
ルの形式をTYPEフィールドに挿入する。SCAV
BINSモジュールは、特定のビン200から取り出し
たポインタごとに「開始/継続/最終」マーカフィール
ドとTYPEフィールドとを調べ、特定メッセージに対
する全てのリンクされたバッファポインタを、TYPE
フィールドで指示されたプロトコルに対応する行き先待
ち行列へロードする。
【0046】又、種々の行き先待ち行列は、各プロトコ
ル形式に対して予め選択された限定サイズの待ち行列を
設けることによりシステムに公平さを導入するのにも使
用される。TxBSモジュールは、単純なラウンドロビ
ンポーリング動作で行き先待ち行列202からポインタ
を取り出して、各プロトコル形式のメッセージ送信が進
行するようにさせ、あるプロトコルがメッセージ送信を
進行させるのを他のプロトコルが妨げることはない。行
き先待ち行列202のマルチ構成は、異なる密集(conge
stion)アルゴリズムのような異なる特性をプロトコルが
もつので、非常に有用である。幾つかの密集アルゴリズ
ムは、種々のプロトコル形式によるラウンドロビンシー
ケンスが実行されなかった場合にルータ動作を左右する
ことによって他のプロトコルを阻止することがある。
【0047】TxBSモジュールは、行き先待ち行列2
02から取り出したポインタをTRANSMIT PA
CKET待ち行列204へロードする。ラインカード1
2のTXPモジュールは、このTRANSMIT PA
CKET待ち行列204からポインタを一度に1つづつ
取り出し、各ポインタを使用してバス14を経て中央メ
モリ16にアクセスし、データパケット及びそれに関連
した記述子(メッセージ)のヘッダ及び本体を送信処理
のために読み取る。中央メモリ16から得たデータパケ
ットはDEVICE待ち行列206に入れられ、ライン
カード12のラインインターフェイス18によって最終
的に送信される。更に、TXPモジュールは、メッセー
ジをアクセスするのに使用したばかりのポインタをFR
EEバッファ待ち行列30にロードし、これは、前記し
たようにSCAV RINGSモジュールにより将来の
バッファスワップ動作に使用される。
【0048】図6及び7には、多数の行き先プロセッサ
へメッセージを放送するための機構及びバッファポイン
タフォーマットが示されている。図7に示すように、放
送に使用する放送ポインタ126には、図5に示された
バッファポインタ26の場合と同様に、所有権フィール
ド134と、ポインタ値フィールド136と、「開始/
継続/最終」マーカフィールド138と、TYPEフィ
ールド140とが設けられる。更に、各放送バッファポ
インタ126は、フック142として示された読み取り
許可フィールドを含むようにフォーマットされている。
RXPモジュールは、明らかなように、放送バッファポ
インタ126を追跡するために特定の放送バッファポイ
ンタ126を識別するフック値を発生する。
【0049】図6に示すように、メッセージを放送する
RXPモジュールは、放送メッセージが中央メモリ16
に記憶されるバッファに対するバッファポインタ値と、
フック値とを含む放送ポインタ126を、その放送を受
け取るべき各行き先プロセッサへ書き込む。各々の潜在
的な放送ソースに対し各行き先プロセッサには特殊な放
送待ち行列300が設けられている。放送バッファポイ
ンタ126は、メッセージを受信しようとしている各行
き先ラインカードの対応する放送待ち行列に書き込まれ
る。
【0050】行き先ラインカードのSCAV RING
Sモジュールは、メッセージに対する放送待ち行列もポ
ーリングする。各位置の所有権ビットは、通常のメッセ
ージ進行機構の場合と同様に、ポインタがSCAV R
INGSモジュールによって読み取られるべきメッセー
ジに対するものであるかどうか指示するのに使用され
る。しかしながら、フックフィールド142は、行き先
SCAV RINGSモジュールにより、待ち行列のポ
インタ位置へのアクセスのみを読み取ったと解釈され
る。SCAV RINGSモジュールは、放送待ち行列
位置を読み取ると、ソースが将来の使用のためにその放
送待ち行列の位置をもう一度所有することを指示する所
有権ビットを送る。
【0051】各ソースのラインカードは、放送ポインタ
126に使用された各特定のフック値に対する入力30
4を含むフック値テーブル302を維持する。このテー
ブル302の各入力304は、潜在的な行き先プロセッ
サごとに1ビットづつの1組のビットを含んでいる。R
XPモジュールは、入力304のフック値を有する放送
ポインタ126を送ったところの行き先プロセッサに対
応するビットのみを特定入力304においてセットす
る。
【0052】放送メッセージを受信する各行き先プロセ
ッサのSCAV RINGSモジュールは、その放送メ
ッセージを読み取ったところの放送待ち行列に対応する
ソースへフック番号を送る。これは、本発明のポインタ
交換により放送待ち行列において実行できる。例えば、
SCAV RINGSモジュールは、特定のソースによ
り送られた既に読み取った放送メッセージからのフック
値をもつポインタを、現在放送メッセージに対する位置
を読み取った後に、そのソースに対応する放送待ち行列
の位置へ書き込む。SCAV RINGSモジュール
は、特定のソースが再びその位置を所有することを指示
するように所有権ビットを変更する。
【0053】放送待ち行列においてバッファの交換中に
各フック値を読み取ると、RXPモジュールは、そのフ
ック値によって指示されたテーブル302の入力304
において、そのフック値を送る行き先プロセッサに対応
するビットをクリアする。フック値に対する全てのビッ
トがクリアされてしまうと、ソースプロセッサは、意図
された全ての行き先プロセッサが放送メッセージを受け
取りそして放送ポインタが別のメッセージ転送に再び自
由に使えるようになったことを知る。
【0054】又、本発明のバッファスワップ機構は、あ
る条件のもとで使用できるゼロポインタも備えている。
例えば、行き先プロセッサが一時的な時間中に空きバッ
ファに対するポインタを有していないが、空きバッファ
が使用できるようになるまでバッファリングメモリをめ
ぐって進行し続けることが所望されるときに、行き先プ
ロセッサによってゼロポインタを返送することができ
る。これは、本発明の真のバッファスワップ機構に対す
る例外であるが、特定の行き先プロセッサに空きバッフ
ァポインタが一時的に不足する場合を取り扱う機構をな
すものである。更に、システムの初期化時にこのゼロポ
インタを使用し、システムの管理プロセッサとオペレー
ティングプロセッサとの間でバッファリングメモリを介
してゼロポインタに対して空きバッファポインタを交換
することにより空きバッファプールを存在させたり、或
いはソースプロセッサと行き先プロセッサとの間でバッ
ファの個数を再バランスさせたりすることができる。
【0055】上記で一般的に述べたように、SWAPモ
ジュールは、このモジュールがアクセスしたバッファリ
ングの次の位置がソースプロセッサによって所有されて
いないときにアラームを発するように構成することがで
きる。これは、各行き先プロセッサが所有された位置を
次々にアクセスしていってメッセージに対するバッファ
を読み取るように確保する便利なやり方である。もし必
要ならば、ゼロポインタを返送するか、又は対応するソ
ースによる所有権を指示するように所有権ビットを単に
元に変更する(そしてこれによりメッセージを無視す
る)ことにより、行き先プロセッサが動作を進行するこ
とができる。従って、ある位置が各ソースによって所有
されていないときには、行き先がメッセージを取り扱う
のに適切に動作していないか或いは許容された別の仕方
(即ち、ゼロポインタを返送したり所有権ビットを変更
したりすること)によってバッファリングメモリをめぐ
って進むように適切に動作していないことを通常表して
いる。
【0056】
【発明の効果】以上、ソースプロセッサから行き先プロ
セッサへメッセージを転送するための改良されたメッセ
ージ転送システムについて説明した。行き先プロセッサ
における入力/出力帯域巾のクランチを防止するために
ソースプロセッサと行き先プロセッサとの間にバッファ
が使用された。メッセージ転送用のバッファメモリを使
用してメッセージの転送を行う公知技術の場合には、ソ
ースプロセッサと行き先プロセッサを同期させることが
必要であった。これは非常に不便であり、本発明では、
バッファスワッピングシステムを使用して、ソースプロ
セッサから行き先プロセッサへのメッセージ転送が生じ
るたびにソースプロセッサに空きバッファが使用できる
ようにすることにより、上記不便さが回避される。
【0057】システム10は多数のラインカードを有
し、各ラインカード12は、ラインインターフェイス1
8と、プロセッサ20と、バスインターフェイス22
と、リングメモリ24とを備えている。読み取り/書き
込みメッセージは、ラインカード12間、即ちタイムカ
ードの一部分であるプロセッサ20間で通信することが
必要である。
【0058】本発明は、メッセージ転送を行わねばなら
ないたびに空きバッファのポインタが行き先プロセッサ
によってソースプロセッサへ返送されるようなバッファ
(16)スワッピング機構を教示するものである。従って、
自由に使用できるバッファの供給が確保される。
【0059】ソースプロセッサ20によって所有された
各位置26は、中央メモリ16内のバッファのポインタ
を記憶するためのポインタ値フィールド34を備えてい
る。TXPモジュール(行き先プロセッサ)は、中央メ
モリ内のバッファへデータパケットを送信するのに使用
される。上記システムは、ソースプロセッサと行き先プ
ロセッサを同期させる必要なく且つ行き先プロセッサに
帯域巾クランチが生じることもなく、ソースプロセッサ
から行き先プロセッサへ読み取り/書き込みメッセージ
を転送するように効率的に動作する。
【図面の簡単な説明】
【図1】本発明のバッファスワップ機構を実施する代表
的なマルチプロセッサコンピュータシステムのブロック
図である。
【図2】図1のコンピュータシステムにおいて実施され
るバッファスワップ機構の概略図である。
【図3】行き先プロセッサへ送られるべきメッセージに
ついてバッファスワップを実行するソースプロセッサの
ソフトウェアブロック図である。
【図4】ソースプロセッサによって取り扱われるメッセ
ージについてバッファスワップを実行する行き先プロセ
ッサのソフトウェアブロック図である。
【図5】ポインタ記憶位置のブロック図である。
【図6】メッセージ放送機構を示すブロック図である。
【図7】メッセージ放送に使用されるポインタ位置のブ
ロック図である。
【符号の説明】
10 マルチプロセッサコンピュータシステム 12 ラインカード 14 バックプレーンバス 16 中央バッファメモリ 18 ラインインターフェイス 20 プロセッサ 22 バスインターフェイス 24 リングメモリ 26 メモリ位置 30 FREEバッファ待ち行列 32 送信バッファ待ち行列 34 ポインタ値フィールド 36 所有権フィールド
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スチュワート エフ ブライアント イギリス サリー アールエイチ1 4エ イエス レッドヒル レッドストーン パ ーク 3

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 第1のデバイス(20)と、第2のデバイス
    (20)と、この第1のデバイスから第2のデバイスへメッ
    セージを転送するための複数のバッファを備えた共通メ
    モリ(16)とを具備し、上記第1デバイス(20)及び第2デ
    バイス(20)の各々はこの共通メモリ(16)に接続されてお
    り、更に、上記第1デバイス及び第2デバイスの各々に
    接続されたポインタメモリ(34)を具備し、このポインタ
    メモリは、上記共通メモリのバッファのポインタを記憶
    するための1組の位置(26)を有し、これらの位置のうち
    の予め選択された各位置は、メッセージを記憶するのに
    使用できる上記共通メモリのバッファに対するポインタ
    を記憶するようになっており、更に、メッセージを記憶
    するのに使用できる上記共通メモリのバッファに対する
    ポインタ(126) のプールを具備し、上記第1デバイス
    は、上記複数のバッファの少なくとも1つに対するポイ
    ンタを記憶していて、複数のバッファのその1つへメッ
    セージを書き込み、上記ポインタメモリの予め選択され
    た位置から使用することのできるバッファに対するポイ
    ンタを読み取りそして複数のバッファの上記1つに対す
    るポインタを上記ポインタメモリの上記予め選択された
    位置へ書き込むことにより、上記第2デバイスへメッセ
    ージを転送するように動作し、そして上記第2デバイス
    は、複数のバッファの上記1つに対するポインタを上記
    ポインタメモリの上記予め選択された位置から読み取っ
    た後に、使用することのできるバッファに対するポイン
    タを上記ポインタのプールから取り去りそしてその取り
    去ったポインタを上記ポインタメモリの予め選択された
    位置へ書き込むように動作することを特徴とするコンピ
    ュータシステム(10)。
  2. 【請求項2】 上記ポインタメモリの各位置は、第1状
    態及び第2状態を有する所有権フィールドを含み、この
    第1状態は、第2デバイスへのメッセージを記憶するた
    めに第1デバイスによって使用するのに有効なバッファ
    のポインタをその対応位置が記憶することを指示するも
    のであり、そして上記第2状態は、上記ポインタによっ
    て指示された共通メモリのバッファにあるメッセージを
    読み取るために上記第2デバイスによって使用するのに
    有効なバッファのポインタをその対応位置が記憶するこ
    とを指示するものである請求項1に記載のコンピュータ
    システム。
  3. 【請求項3】 上記第1デバイスは、その位置の所有権
    フィールドが上記第1状態にあるときだけその位置に対
    してポインタの読み取り及び書き込みを行うように動作
    し、上記第1デバイスは、上記位置から使用できるバッ
    ファのポインタを読み取りそして複数のバッファのうち
    の1つに対するポインタをポインタメモリの上記位置へ
    書き込んだ後に位置の状態を上記第1状態から第2状態
    へ変更する請求項2に記載のコンピュータシステム。
  4. 【請求項4】 上記第2デバイスは、その位置の所有権
    フィールドが上記第2状態にあるときだけその位置に対
    してポインタの読み取り及び書き込みを行うように動作
    し、上記第2デバイスは、複数のバッファの1つに対す
    るポインタをその位置から読み取って、使用できるバッ
    ファのポインタを上記ポインタのプールから取り去りそ
    してその取り去ったポインタをその位置へ書き込んだ後
    に、位置の状態を上記第2状態から第1状態へ変更する
    請求項2に記載のコンピュータシステム。
  5. 【請求項5】 上記共通メモリのバッファの各々はメモ
    リサイズが等しく、上記ポインタメモリの各位置は、各
    位置に記憶されたポインタによって指示された等サイズ
    バッファをリンクするための「開始/継続/最終」マー
    カフィールドを含んでいて、この「開始/継続/最終」
    マーカフィールドによりリンクされたバッファに各バッ
    ファのサイズより大きいサイズのメッセージを記憶する
    ことができ、メッセージの第1部分を記憶するバッファ
    に対するポインタを記憶する第1位置の「開始/継続/
    最終」マーカフィールドは「開始」状態にセットされ、
    メッセージのn個の後続部分を記憶するバッファに対す
    るポインタを記憶するn個の位置各々の「開始/継続/
    最終」マーカフィールドは「継続」状態にセットされ、
    そしてメッセージの最終部分を記憶するバッファに対す
    るポインタを記憶する最終位置の「開始/継続/最終」
    マーカフィールドは「最終」状態にセットされる請求項
    1に記載のコンピュータシステム。
  6. 【請求項6】 上記第2デバイスは、上記複数のバッフ
    ァの1つに対するポインタを使用して、上記第1デバイ
    スによって複数のポインタのその1つに記憶されている
    メッセージを読み取り、そしてメッセージ読み取り後
    に、そのポインタをポインタのプールに入れる請求項1
    に記載のコンピュータシステム。
  7. 【請求項7】 コンピュータシステム内の第1デバイス
    から第2デバイスへメッセージを転送するための方法に
    おいて、 上記第1デバイスから第2デバイスへメッセージを転送
    するための複数のバッファを備えた共通メモリを用意
    し、 メッセージを記憶するのに使用できる上記共通メモリの
    バッファに対するポインタのプールを用意し、 上記共通メモリの予め選択されたバッファにメッセージ
    を記憶するように上記第1デバイスを動作し、 上記予め選択されたバッファのポインタを上記第2デバ
    イスへ通すように上記第1デバイスを動作し、 上記予め選択されたバッファのポインタを使用して、そ
    の予め選択されたバッファをそこに記憶されたメッセー
    ジに対してアクセスし、そして上記予め選択されたバッ
    ファをアクセスする際に上記ポインタを上記ポインタの
    プールへ入れるように上記第2デバイスを動作するとい
    う段階を具備することを特徴とする方法。
  8. 【請求項8】 コンピュータシステム内の第1デバイス
    から第2デバイスへメッセージを転送するための方法に
    おいて、 上記第1デバイスから第2デバイスへメッセージを記憶
    するための複数のバッファを備えた共通メモリを用意
    し、 メッセージを記憶するのに使用できる上記共通メモリの
    バッファに対するポインタのプールを用意し、 上記共通メモリの予め選択されたバッファにメッセージ
    を記憶するように上記第1デバイスを動作し、 上記予め選択されたバッファのポインタを上記第2デバ
    イスへ通すように上記第1デバイスを動作し、そして上
    記予め選択されたバッファのポインタを使用して、その
    予め選択されたバッファをそこに記憶されたメッセージ
    に対してアクセスし、そして上記予め選択されたバッフ
    ァのポインタを使用するという条件で上記ポインタのプ
    ールから上記第1デバイスへポインタを転送するように
    上記第2デバイスを動作するという段階を具備すること
    を特徴とする方法。
  9. 【請求項9】 共通メモリのバッファに対するポインタ
    を記憶するための位置を有するポインタメモリを用意
    し、上記位置のあるものはメッセージを記憶するのに使
    用できるバッファのポインタを各々記憶し、そしてポイ
    ンタを通すように第1デバイスを動作する上記段階は、
    メッセージを記憶するのに使用できるバッファのポイン
    タに対して上記ある位置の1つを読み取った後にその位
    置へポインタを書き込むように上記第1デバイスを動作
    することにより行う請求項8に記載の方法。
  10. 【請求項10】 上記予め選択されたバッファのポイン
    タに対して上記ある位置の1つを読み取り、そしてその
    予め選択されたバッファのポインタを読み取る条件に基
    づいて及びそれを条件としてポインタのプールからその
    位置へポインタを書き込むように上記第2デバイスを動
    作するという段階を更に備えた請求項9に記載の方法。
JP5002593A 1992-01-10 1993-01-11 マルチプロセッサバッファシステム Pending JPH0612383A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/818,608 US5315707A (en) 1992-01-10 1992-01-10 Multiprocessor buffer system
US07/818608 1992-01-10

Publications (1)

Publication Number Publication Date
JPH0612383A true JPH0612383A (ja) 1994-01-21

Family

ID=25225934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5002593A Pending JPH0612383A (ja) 1992-01-10 1993-01-11 マルチプロセッサバッファシステム

Country Status (4)

Country Link
US (1) US5315707A (ja)
EP (1) EP0551242B1 (ja)
JP (1) JPH0612383A (ja)
DE (1) DE69328841T2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408613A (en) * 1991-12-24 1995-04-18 Matsushita Electric Industrial Co., Ltd. Data transfer apparatus
US6026452A (en) * 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
AU4219693A (en) * 1992-09-30 1994-04-14 Apple Computer, Inc. Inter-task buffer and connections
EP0689138A3 (en) * 1994-06-22 1998-02-04 International Business Machines Corporation Temporary data method and apparatus for a microkernel data processing system
SE515265C2 (sv) * 1994-10-17 2001-07-09 Ericsson Telefon Ab L M System och förfarande för behandling av signaldata samt kommunikationssystem omfattande ett signaldatabehandlingssystem
US5748634A (en) * 1995-09-14 1998-05-05 Level One Communications, Inc. Method and apparatus for implementing a two-port ethernet bridge using a semaphoring technique
US5907717A (en) * 1996-02-23 1999-05-25 Lsi Logic Corporation Cross-connected memory system for allocating pool buffers in each frame buffer and providing addresses thereof
US5819060A (en) * 1996-10-08 1998-10-06 Lsi Logic Corporation Instruction swapping in dual pipeline microprocessor
US6341301B1 (en) 1997-01-10 2002-01-22 Lsi Logic Corporation Exclusive multiple queue handling using a common processing algorithm
US5922057A (en) * 1997-01-10 1999-07-13 Lsi Logic Corporation Method for multiprocessor system of controlling a dynamically expandable shared queue in which ownership of a queue entry by a processor is indicated by a semaphore
US6385658B2 (en) * 1997-06-27 2002-05-07 Compaq Information Technologies Group, L.P. Method and apparatus for synchronized message passing using shared resources
US6487202B1 (en) 1997-06-30 2002-11-26 Cisco Technology, Inc. Method and apparatus for maximizing memory throughput
US6526060B1 (en) 1997-12-05 2003-02-25 Cisco Technology, Inc. Dynamic rate-based, weighted fair scheduler with explicit rate feedback option
SE511849C2 (sv) * 1998-03-31 1999-12-06 Ericsson Telefon Ab L M Anordning och metod för buffertskydd
AU5929700A (en) * 1999-07-13 2001-01-30 Alteon Web Systems, Inc. Method and architecture for optimizing data throughput in a multi-processor environment using a ram-based shared index fifo linked list
WO2001013229A2 (en) * 1999-08-19 2001-02-22 Venturcom, Inc. System and method for data exchange
WO2001016750A2 (en) * 1999-08-31 2001-03-08 Times N Systems, Inc. High-availability, shared-memory cluster
US6910082B1 (en) * 1999-11-18 2005-06-21 International Business Machines Corporation Method, system and program products for reducing data movement within a computing environment by bypassing copying data between file system and non-file system buffers in a server
US8271316B2 (en) * 1999-12-17 2012-09-18 Buzzmetrics Ltd Consumer to business data capturing system
US6931643B2 (en) 2000-04-03 2005-08-16 Texas Instruments Incorporated Interrupt throttling for inter-processor communications
EP1249757B1 (en) * 2001-04-11 2009-08-19 Texas Instruments Incorporated Interrupt throttling for inter-processor communications
DE10148767A1 (de) * 2001-10-02 2003-04-17 Thomson Brandt Gmbh Verfahren und Vorrichtung zur Zwischenspeicherung von über eine eingerichtete Verbindung zu übertragenden Datenpaketen
US20040107240A1 (en) * 2002-12-02 2004-06-03 Globespan Virata Incorporated Method and system for intertask messaging between multiple processors
DE10360637B4 (de) * 2003-12-19 2010-10-07 Infineon Technologies Ag Programmgesteuerte Einheit
US20060153185A1 (en) * 2004-12-28 2006-07-13 Intel Corporation Method and apparatus for dynamically changing ring size in network processing
US8880746B2 (en) * 2006-01-31 2014-11-04 Cisco Technology, Inc. Method using virtual ASIC pins to reconfigure hardware
US7581163B1 (en) * 2006-06-01 2009-08-25 Juniper Networks, Inc. Detection of corrupted memory pointers within a packet-processing device
US9069489B1 (en) 2010-03-29 2015-06-30 Marvell Israel (M.I.S.L) Ltd. Dynamic random access memory front end
US20110228674A1 (en) * 2010-03-18 2011-09-22 Alon Pais Packet processing optimization
IL211490A (en) * 2010-03-02 2016-09-29 Marvell Israel(M I S L ) Ltd Early next packets of information
US8327047B2 (en) * 2010-03-18 2012-12-04 Marvell World Trade Ltd. Buffer manager and methods for managing memory
US9098203B1 (en) 2011-03-01 2015-08-04 Marvell Israel (M.I.S.L) Ltd. Multi-input memory command prioritization
US8566537B2 (en) * 2011-03-29 2013-10-22 Intel Corporation Method and apparatus to facilitate shared pointers in a heterogeneous platform
US9069602B2 (en) * 2013-09-25 2015-06-30 Netronome Systems, Incorporated Transactional memory that supports put and get ring commands
US8972630B1 (en) * 2013-09-25 2015-03-03 Netronome Systems, Incorporated Transactional memory that supports a put with low priority ring command
US11288193B2 (en) * 2019-05-06 2022-03-29 Cirrus Logic, Inc. Flexible, non-blocking asynchronous transfer of time-variant atomic data

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5833972B2 (ja) * 1979-11-12 1983-07-23 富士通株式会社 計算機システム間通信方式
JPS57153359A (en) * 1981-03-18 1982-09-21 Ibm Data processing system with common memory
US4543627A (en) * 1981-12-14 1985-09-24 At&T Bell Laboratories Internal communication arrangement for a multiprocessor system
NL8501143A (nl) * 1985-04-19 1986-11-17 Philips Nv Kommunikatiesysteem voorzien van een eerst-in-eerst-uit-buffer.
US4744023A (en) * 1985-12-16 1988-05-10 American Telephone And Telegraph Company, At&T Information Systems Processor access control arrangement in a multiprocessor system
US4956771A (en) * 1988-05-24 1990-09-11 Prime Computer, Inc. Method for inter-processor data transfer
JPH03138751A (ja) * 1989-10-23 1991-06-13 Internatl Business Mach Corp <Ibm> 資源管理方法
EP0444376B1 (en) * 1990-02-27 1996-11-06 International Business Machines Corporation Mechanism for passing messages between several processors coupled through a shared intelligent memory

Also Published As

Publication number Publication date
EP0551242A2 (en) 1993-07-14
DE69328841T2 (de) 2001-01-11
EP0551242A3 (ja) 1995-04-12
US5315707A (en) 1994-05-24
EP0551242B1 (en) 2000-06-14
DE69328841D1 (de) 2000-07-20

Similar Documents

Publication Publication Date Title
JPH0612383A (ja) マルチプロセッサバッファシステム
US5195181A (en) Message processing system having separate message receiving and transmitting processors with message processing being distributed between the separate processors
US5884040A (en) Per-packet jamming in a multi-port bridge for a local area network
US5016248A (en) Buffer memory device for packet data and method of controlling the device
US8913618B2 (en) Reordering packets
JP4090510B2 (ja) アプリケーションデータのダイレクトマッピングのためのコンピュータインターフェース
US4982400A (en) Ring bus hub for a star local area network
US7249206B2 (en) Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US5923660A (en) Switching ethernet controller
US5577211A (en) System and method using chained structure queues for ordering of message delivery between connected nodes wherein unsuccessful message portion is skipped and retried
EP0674276B1 (en) A computer system
EP2668753B1 (en) An apparatus and a method for receiving and forwarding data packets
JPH0675262B2 (ja) メツセージ転送機構
US5557266A (en) System for cascading data switches in a communication node
US5928326A (en) Programmable, multi-buffer device and method for exchanging messages between peer-to-peer network nodes
US9665514B2 (en) Integrated circuit having a bus network, and method for the integrated circuit
US6442168B1 (en) High speed bus structure in a multi-port bridge for a local area network
US6529945B1 (en) Data buffer management between two different systems
US7113516B1 (en) Transmit buffer with dynamic size queues
JP4391819B2 (ja) コンピュータ・システムの入出力ノード
US5408468A (en) Queueing system for switches having fast circuit properties
EP1481317B1 (en) Shared queue for multiple input-streams
JP2003521156A (ja) 単一のリングデータバス接続構成を用いてメモリを共有する装置および方法
US11444886B1 (en) Out of order packet buffer selection
US7020149B1 (en) Method for operating a switching system for data packets