JPH10187635A - バッファ・スペース動的割り当てシステム - Google Patents

バッファ・スペース動的割り当てシステム

Info

Publication number
JPH10187635A
JPH10187635A JP30260597A JP30260597A JPH10187635A JP H10187635 A JPH10187635 A JP H10187635A JP 30260597 A JP30260597 A JP 30260597A JP 30260597 A JP30260597 A JP 30260597A JP H10187635 A JPH10187635 A JP H10187635A
Authority
JP
Japan
Prior art keywords
buffer
request
response
space
packet
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
JP30260597A
Other languages
English (en)
Other versions
JPH10187635A5 (ja
Inventor
Kenneth Chaney
ケニース・シャニー
Michael T Ruff
マイケル・ティー・ラフ
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH10187635A publication Critical patent/JPH10187635A/ja
Publication of JPH10187635A5 publication Critical patent/JPH10187635A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】空きのある待ち行列バッファ・スペースを維持
し、データ・パケットのスループットの向上を可能に
し、より効率のよいデータ・パケットの分配を行い、シ
ステム性能に好ましい影響を与えるシステムを提供する 【解決手段】単一バッファは、システムの必要に応じ
て、要求のためだけに予約されたスペース、応答のため
だけに予約されたスペース、要求と応答のいずれかに用
いることが可能なスペースに区分化される。プロセッサ
・エージェント・チップ(PAC)は、3つのカウンタ
を利用し、そのそれぞれと3つの限界を比較することに
よって、コンピュータ・システムは、動的バッファ割り
当てを実施している。1つのカウンタは要求バッファの
スペースについて常に把握し、もう1つのカウンタは応
答バッファのスペースについて常に把握し、第3のカウ
ンタは利用されているバッファ・スペースの総量を常に
把握している。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に、マルチプロセ
ッサ・コンピュータ・システムに関するものであり、と
りわけ、要求と応答の間の待ち行列スペースの割り当て
に関するものである。
【0002】
【従来の技術】従来のシステムの場合、所定の数の要求
バッファ記憶場所と所定の数の応答バッファ記憶場所が
設けられている。これらのバッファ記憶場所は、ハード
ウェアに固定されており、ソフトウェアによって変更す
ることはできない。システムによっては、要求バッファ
記憶場所と応答バッファ記憶場所は、物理的に分離され
たハードウェア装置に設けられていることもある。従っ
て、固定された特性のために、バッファ・スペースの割
り当てに固有の効率の悪さを生じることになる。基本的
に、この問題は、バッファを満杯にする多数の要求パケ
ットを受信した場合、要求パケット・バッファが空にな
るまで、要求パケットを停止しなければならないという
ことである。このバッファを満杯にし、空にするのに時
間を浪費するので、効率が悪くなる。
【0003】この問題の結果として、バッファ応答時間
が一定でなくなり、次のパケットが、直ちに送り出し、
利用することが可能なものである場合、及び、その時点
においてバッファ・スペースがない場合には、バッファ
に空きが生じるまで、パケットが遅延させられることに
なる。この問題は、システムの性能に大きく影響する。
【0004】
【発明が解決しようとする課題】従って、本発明の目的
は、利用可能なバッファ・スペースをより効率よく利用
し、データ・パケットが待ち行列バッファの渋滞によっ
て遅延する可能性を低下させるシステムを提供すること
にある。
【0005】従って、本発明の目的は、空きのある待ち
行列バッファ・スペースを維持し、これによって、デー
タ・パケットのスループットの向上を可能にすることに
よって、より効率のよいデータ・パケットの分配を行
い、システム性能に好ましい影響を与えるシステムを提
供することにある。
【0006】
【課題を解決するための手段】本発明では、単一バッフ
ァが、システムの必要に応じて、要求のためだけに予約
されたスペース、応答のためだけに予約されたスペー
ス、要求と応答のいずれかに用いることが可能なスペー
スに区分化される。この構成の場合、いつでも、予約さ
れたバッファ(要求または応答)の一方がオーバフロー
すると、デュアル・ユースのバッファを利用して、デー
タ・フローを効率のよい状態に保つことが可能である。
【0007】プロセッサ・エージェント・チップすなわ
ちPACは、バッファ・スペースの状況を常に把握して
いる3つの内部レジスタを備えている。1つのカウンタ
は、要求バッファのスペースについて常に把握し、もう
1つのカウンタは、応答バッファのスペースについて常
に把握し、第3のカウンタは、利用されているバッファ
・スペースの総量を常に把握している。3つのカウンタ
を利用し、そのそれぞれと3つの限界を比較することに
よって、コンピュータ・システムは、動的バッファ割り
当てを実施することができる。これらの限界は、ソフト
ウェアによって設定され、バッファに納めることが可能
な要求パケットの最大数、バッファに納めることが可能
な応答パケットの最大数、及び、バッファに納めること
が可能な要求パケットと応答パケットの両方の総数を規
定する。
【0008】PACは、要求パケットの送信前に、カウ
ンタにポーリングを行い、バッファが満杯でないことを
確認する。PACは、要求カウンタをチェックし、要求
限界を超えていないことを確認し、次に、合計カウンタ
をチェックして、このパケットが該バッファの総限界カ
ウントを超えていないことを確認する。
【0009】例えば、バッファ・サイズ全体の限界が、
応答タイプと要求タイプの両方に対して10パケットに
設定され、要求カウントに対する限界が、要求タイプの
8パケットに設定されるものと仮定する。これは、現
在、要求バッファに8つの要求パケットがない限り、要
求パケットを送信することができるということと、バッ
ファには、現在、要求タイプと応答タイプの両方による
10のパケット全部が存在してはいないということを表
している。これは、基本的には、要求パケットが、10
の記憶場所のうち最大8つの記憶場所に制限されること
を表している。従って、他の2つの記憶場所は、応答パ
ケットのためだけに予約される。
【0010】同様に、応答の場合、バッファ・サイズ全
体の限界が、応答タイプと要求タイプの両方に対して1
0パケットに設定され、応答カウントに対する限界が、
応答タイプの8パケットに設定されるものと仮定する。
これは、現在、応答バッファに8つの要求パケットがな
い限り、応答パケットを送信することができるというこ
とと、バッファには、現在、要求タイプと応答タイプの
両方による10のパケット全部が存在してはいないとい
うことを表している。これは、基本的には、応答パケッ
トが、10の記憶場所のうち最大8つの記憶場所に制限
されることを表している。従って、他の2つの記憶場所
は、要求パケットのためだけに予約される。
【0011】従って、8/8/10の設定の場合、要求
のために、2つの記憶場所が必ず予約され、応答のため
に、2つの記憶場所が必ず予約され、残りの6つの記憶
場所は、コンピュータ・システムの必要に応じて、応答
と要求のいずれかによって利用可能になっている。
【0012】本発明の技術的特徴は、要求バッファ・ス
ペースと応答バッファ・スペースの両方に単一バッファ
を利用することにある。
【0013】本発明のもう1つの技術的特徴は、要求の
ためだけにバッファ・スペースの一部を予約し、応答の
ためだけにバッファ・スペースの一部を予約し、コンピ
ュータ・システムの必要に応じて、バッファ・スペース
の残りを要求または応答のために利用することにある。
【0014】本発明のもう1つの技術的特徴は、カウン
タを利用して、異なるタイプのバッファ・スペース、す
なわち、要求、応答、及び、総量バッファ・スペースの
状況を常に把握することにある。
【0015】本発明のもう1つの技術的特徴は、異なる
タイプのバッファ・スペースの割り当てをソフトウェア
で調整可能にすることにある。
【0016】以上は、後続する本発明の詳細な説明をよ
り明確に理解できるようにするため、本発明の特徴及び
技術的利点についてかなり大まかな概略を述べたもので
ある。本発明の請求項の対象をなす、本発明のこれ以上
の特徴及び利点については、以下で述べることにする。
当該技術の熟練者であれば明らかなように、開示される
概念及び特定の実施例は、本発明の同じ目的を実施する
ために、修正を行うか、あるいは、他の構造を設計する
場合の基礎として、簡単に利用することが可能である。
やはり、当該技術の熟練者であれば明らかなように、こ
うした同等の構成は、付属の請求項に記載の本発明の精
神及び範囲から逸脱するものではない。
【0017】
【実施例】図1には、マルチノード、マルチプロセッサ
・コンピュータ・システムの単一ノードが示されてい
る。システム全体は、複数の、図1に示すこうしたノー
ドを備えることが可能である。
【0018】図示実施例における各ノードは、16まで
のプロセッサ110を支援することが可能である。これ
らのプロセッサは、プロセッサ・エージェント・チップ
すなわちPAC111に接続されている。各PAC11
1の機能は、クロス・バー・ルータ・チップ(RAC)
112を介して、その関連プロセッサ110からメモリ
・アクセス・チップ(MAC)113に要求を送信し、
次に、応答を要求側プロセッサに送り返すことにある。
各PAC111は、入力/出力(I/O)サブシステム
117を備えている。各MAC113は、その関連のコ
ヒーレント・メモリ114に対するアクセスを制御す
る。プロセッサ110が、アクセス・メモリ(または他
の資源)に対する要求を発生する場合、関連PAC11
1は、適正なRAC112を介してMAC113に要求
を送信する。要求がローカル・ノードのメモリ114宛
のものである場合、MAC113は、それに取り付けら
れたメモリにアクセスする。要求が別のノードのメモリ
宛のものである場合、MAC113は、要求をTAC1
15に回送する。TAC115は、ノードとSCIリン
グ116の間のインターフェイスである。TAC115
は、トロイダル・アクセス・チップまたはSCIコント
ローラとしても知られている。SCIリング116(詳
細は図示せず)は、マルチノード・システムにおいてノ
ードの相互接続を行う。
【0019】図2には、それを介して、パケットがPA
C111からMAC113に流れ、MAC113からP
AC111に流れることになる単一のRACチップ11
2が示されている。RACチップ112は、双方向に要
求と応答の経路選択を行うクロス・バーを形成してい
る。RACは、4つのPAC入力バッファ201を備え
ており、それぞれのPAC毎に1つのバッファが関連づ
けられている。RACは、4つのMAC入力バッファも
備えており、それぞれのMAC毎に1つのバッファが関
連づけられている。各PAC入力バッファ201は、応
答タイプと要求タイプの両方のパケットを10まで保持
することが可能である。
【0020】PAC111はパケットをRAC112に
送るが、ただしRACだけがそのパケットをMAC113
に送ることができなくなるまで、そのパケットはRAC
の入力バッファ201に保持される。同様に、逆方向の
場合、MACが、あるPACにパケットを送ろうとする
と、パケットは適正なRACに通され、そこで、最初
に、該RACの入力バッファに送り込まれ、その後、適
正なPACに回送される。MAC入力バッファは、本発
明の一部をなすものではない。PAC入力バッファにつ
いては、今後バッファと呼ぶことにする。
【0021】プロセッサは、データを要求し、データに
関して応答する。例えば、プロセッサ110があるライ
ン・メモリについて要求を行う時がある。その要求は、
PAC111に回送される。該要求は、PAC111に
よって、それが接続されている2つのRAC112の一
方に回送され、さらに、実際に要求されたメモリ・ライ
ン114を備えているMACチップ113に送られる。
PAC111がRAC112に要求を送る場合、要求は
バッファ201に記憶され、後で、MAC113に回送
される。要求がローカル・メモリ・ラインに対するもの
である場合、MACは、メモリからメモリ・ラインにア
クセスし、もとのPACに応答として送り返す。
【0022】プロセッサ110が、ライン・メモリを要
求し、ライン・メモリが、別のプロセッサにおいてキャ
ッシュされている時もある。その場合、要求は、PAC
111からMAC113に送られ、MAC113によっ
て、ライン・メモリが遠隔記憶場所にあることが確かめ
られ、さらに、ライン・メモリにアクセスする要求が第
2のPACに送られる。第2のPACは、適正なプロセ
ッサに対して該要求の経路選択を行い、さらに、メモリ
・ラインからのデータを応答として送り返す。従って、
このシナリオでは、PACは、RACを介してMACに
応答を送り、最終的に、その要求が発信された最初のP
ACに配信される。
【0023】図3には、PAC111内に設けられたク
ロス・バー・アウト・アービタ301の構成が示されて
いる。アービタ301は、バッファ201と連係して、
動的バッファ割り当てを実施する。各アービタ301
は、3つのカウンタ・レジスタ302、303、304
を備えている。カウンタ302は、バッファ201にお
いて現在用いられている要求総数を常に把握する要求カ
ウンタである。カウンタ303は、バッファ201にお
いて現在用いられている応答総数を常に把握する応答カ
ウンタである。カウンタ304は、バッファ201にお
いて応答と要求の両方によって用いられるように現在割
り当てられている、バッファの記憶場所総数を常に把握
する合計カウンタである。これら3つのカウンタは、全
て、クロス・バー・アウト・アービタ301に対する入
力として利用される。
【0024】アービタ301に対する他の3つの入力
は、所望であれば、ソフトウェアによって設定可能なバ
ッファ限界である。要求限界307は、要求パケットに
用いることが可能な最大バッファ・スペースを指示す
る。応答限界308は、応答パケットに用いることが可
能な最大バッファ・スペースを指示する。限界309
は、バッファの全サイズ、すなわち、バッファが保持す
ることになる応答パケットと要求パケットの両方の総量
を指示する。これら3つの限界によって、コンピュータ
・システムによる書き込みが可能なレジスタは、限界を
フレキシブルにし、ソフトウェア・コマンドによって変
更できるようにすることが可能になる。
【0025】クロス・バー・アービタ301は、限界入
力及びカウンタ入力からのデータを利用して、要求パケ
ットを送るべきか、あるいは、応答パケットを送るべき
かを決定する。PACが、要求パケットのディスパッチ
を指令する出力と、応答パケットのディスパッチを指令
するもう1つの出力を有するものと仮定する。要求限界
が要求カウンタを超え、総限界が合計カウンタを超える
場合、要求パケットを送信するのが無難である。応答限
界が応答カウンタを超え、総限界が合計カウンタを超え
る場合、応答パケットを送信するのが無難である。しか
し、これらの条件グループの1つが満たされなければ、
PACは、条件が満たされないまま、パケットを送信す
ることが可能であり、これによって、パケットのジャム
が阻止される。さらに、総限界が合計カウンタ以下の場
合、バッファが満杯であり、両方のパケットとも、RA
Cがバッファ記憶場所のいくつか空にしたことを述べる
情報を送り出すまで保持される。
【0026】要求パケットのために予約されるバッファ
・スペースは、前述の8/8/10構成の場合、総限界
から応答限界を引いた値である。この構成によれば、予
約要求スペースは2になる。応答パケットのために予約
されるバッファ・スペースは、前述の8/8/10構成
の場合、総限界から要求限界を引いた値であり、応答要
求スペースは2になる。動的スペースと呼ばれる残りの
スペースは、前述の8/8/10構成の場合、応答限界
に要求限界を加えて、総限界から引いた値に等しく、動
的スペースは6になる。
【0027】8/8/10以外の構成は可能であるが、
応答パケットのために、少なくとも1つのスペースを必
ず予約すべきである。さもなければ、バッファが要求で
満杯になったばあい、応答パケットを移動させることが
できないので、システムがデッド・ロックを生じる可能
性がある。このため、9/10/10構成、すなわち、
10パケット・バッファのうち、要求が最大9、応答が
最大10の構成が得られる。9/10/10システム
は、動的スペースが9の、最も動的なシステムである。
最も動的ではないシステムは、動的スペースが0の、5
/5/10構成であり、これは、効率的には先行技術の
構成並みである。
【0028】8/8/10構成は、少なくとも全部で4
つのスペースが予約され、6つのスペースが動的である
ことを表している。この構成は、パケットの移動性を保
つ上でうまく機能することが分かっている。7/7/1
0構成は、3つのスペースが要求のために予約され、3
つのスペースが応答のために予約されているため、動的
に割り当て可能な記憶場所が4つだけしかなく、フレキ
シビリティにおいて劣る。
【0029】PACは、要求パケットを送信する毎に、
要求カウンタと合計カウンタの両方をインクリメントす
る。RACは、MACの受信準備が整うまで、要求を記
憶しておく。要求パケットが、MACに送られると、R
ACは、MACに送られた実際の要求数のカウントを送
る。PACは、RACからこのカウント情報を受信する
と、要求カウンタと合計カウンタの両方から送り出され
たパケット数を引く。従って、RACが要求を送り出す
と、カウンタはデクリメントされる。
【0030】PACは、応答パケットを送り出す毎に、
応答カウンタと合計カウンタの両方をインクリメントす
る。RACは、MACの受信準備が整うまで、応答を記
憶しておく。応答パケットが、MACに送られると、R
ACは、MACに送られた実際の応答数のカウントを送
る。PACは、RACからこのカウント情報を受信する
と、応答カウンタと合計カウンタの両方から送り出され
たパケット数を引く。従って、RACが応答を送り出す
と、カウンタはデクリメントされる。
【0031】RACには、要求と応答の間におけるバッ
ファ・スペースの実際の割り当てに関する知識がない。
RACが知っているのは、要求及び応答パケットを受信
していることと、送り出されている各タイプのパケット
数である。RACは、この情報をPACに送り返す。バ
ッファ201は、物理的に1つのバッファであって、論
理的に、要求バッファと応答バッファに分割されるのが
理想である。しかし、コンピュータ・システムは、複数
の物理的レジスタで機能する。RACは、どのバッファ
記憶場所がどれであるかが分かっているし、どのバッフ
ァ記憶場所に、現在、応答が含まれているかが分かって
いるが、カウンタ及びPACの限界に関する情報は受信
しない。
【0032】本発明及びその利点について詳述してきた
が、もちろん、付属の請求項に記載の本発明の精神及び
範囲から逸脱することなく、さまざまな変更、置換、及
び、改変を施すことが可能である。
【0033】以上、本発明の実施例について詳述した
が、以下、本発明の各実施態様の例を示す。
【0034】(実施態様1)アクセス・メモリ114に
対する要求パケット305を生成し、コンピュータ・シ
ステムが行う質問を満たす応答パケット306を生成す
るプロセッサ110を備えたコンピュータ・システムで
あって、要求パケット305及び応答パケット306の
記憶及び経路選択を行うための動的に割り当て可能なバ
ッファ・スペース201と、プロセッサ110から要求
パケット305及び応答パケット306を受信し、バッ
ファ・スペース201に要求パケット305及び応答パ
ケット306を送信すべきか否かを判定するアービタ3
01とを有するコンピュータ・システム110。
【0035】(実施態様2)前記アービタによる判定
が、部分的に、バッファ・スペース201に現在記憶さ
れている要求パケット305の総数を表した数値を記憶
する要求カウンタ302と、バッファ・スペース201
に現在記憶されている応答パケット306の総数を表し
た数値を記憶する応答カウンタ303と、バッファ・ス
ペース201に現在記憶されている要求パケット305
と応答パケット306の両方の総数を表した数値を記憶
する合計カウンタ304と、バッファ・スペース201
に記憶することが可能な最大要求パケット数305を表
した要求限界307の値と、バッファ・スペース201
に記憶することが可能な最大応答パケット数306を表
した応答限界308の値と、バッファ・スペース201
に記憶することが可能な要求パケット305と応答パケ
ット306の両方の最大数を表した総限界309の値と
の制御下において行われることを特徴とする実施態様1
に記載のコンピュータ・システム。
【0036】(実施態様3)前記アービタ301が、要
求限界307と要求カウンタ302の比較を行い、総限
界309と合計カウンタ304の比較を行って、要求パ
ケット305をバッファ・スペース201に送信すべき
か否かを判定することと、前記要求限界307が、要求
カウンタ302を超える場合、及び、総限界309が、
合計カウンタ304を超える場合、アービタ301は、
要求パケット305を送信し、要求カウンタ302と合
計カウンタ304の両方をインクリメントすることと、
前記要求限界307が、要求カウンタ302以下の場
合、アービタ301は、応答限界308と応答カウンタ
303の比較を行い、総限界309と合計カウンタ30
4の比較を行って、応答パケット306をバッファ・ス
ペース201に送信すべきか否かを判定することと、前
記総限界309が、合計カウンタ以下の場合、アービタ
301は、総限界309が合計カウンタ304を超える
まで、要求パケット305も、応答パケット306も送
信しないこととを特徴とする実施態様2に記載のコンピ
ュータ・システム。
【0037】(実施態様4)前記バッファ・スペース2
01が、アービタ301から要求パケット305を受信
すると、システム内のある位置に要求パケット305を
送信し、その後、送信情報をアービタ301に中継する
ことと、前記アービタ301が、送信情報を受信し、要
求カウンタ302及び合計カウンタ304をデクリメン
トすることとを特徴とする、実施態様2または3に記載
のコンピュータ・システム。
【0038】(実施態様5)前記アービタ301が、応
答限界308と応答カウンタ303の比較を行い、総限
界309と合計カウンタ304の比較を行って、応答パ
ケット306をバッファ・スペース201に送信すべき
か否かを判定することと、前記応答限界308が、応答
カウンタ303を超える場合、及び、総限界309が、
合計カウンタ304を超える場合、アービタ301は、
送信パケット306を送信し、応答カウンタ303と合
計カウンタ304の両方をインクリメントすることと、
前記応答限界308が、応答カウンタ303以下の場
合、アービタ301は、要求限界307と要求カウンタ
302の比較を行い、総限界309と合計カウンタ30
4の比較を行って、要求パケット305をバッファ・ス
ペース201に送信すべきか否かを判定することと、前
記総限界309が、合計カウンタ以下の場合、アービタ
301は、総限界309が合計カウンタ304を超える
まで、要求パケット305も、応答パケット306も送
信しないこととを特徴とする実施態様2に記載のコンピ
ュータ・システム。
【0039】(実施態様6)前記バッファ・スペース2
01が、アービタ301から応答パケット306を受信
すると、システム内のある位置に応答パケット306を
送信し、その後、送信情報をアービタ301に中継する
ことと、前記アービタ301が、送信情報を受信し、応
答カウンタ303及び合計カウンタ304をデクリメン
トすることとを特徴とする実施態様2または5に記載の
コンピュータ・システム。
【0040】(実施態様7)前記要求限界307、応答
限界308、及び、総限界309が、ソフトウェアのコ
マンドによって変更可能であることを特徴とする、実施
態様2ないし6の1つに記載のコンピュータ・システ
ム。
【0041】(実施態様8)前記バッファ201の予約
要求スペースが、総限界309から応答限界308を引
いた値に等しいことと、前記バッファ201の予約応答
スペースが、総限界309から要求限界307を引いた
値に等しいことと、前記バッファ・スペース201の動
的に割り当て可能なスペースが、要求限界307に応答
限界308を加え、総限界309を引いた値に等しいこ
ととを特徴とする実施態様2ないし7のうちの1つに記
載のコンピュータ・システム。
【0042】(実施態様9)前記要求限界307が8で
あることと、前記応答限界308が8であることと、前
記総限界309が10であることと、前記予約要求スペ
ースが2であることと、前記予約応答スペースが2であ
ることと、前記動的に割り当て可能なスペースが6であ
ることとを特徴とする実施態様2ないし8のうちの1つ
に記載のコンピュータ・システム。
【0043】(実施態様10)コンピュータ・システム
におけるバッファ・スペース201の動的割り当て方法
であって、メモリにアクセスする要求パケット305を
受信するステップと、コンピュータ・システムによる問
い合わせを満足する応答パケット306を受信するステ
ップと、バッファ・スペース201に要求パケット30
5及び応答パケット306を送信すべきか否かを判定す
るステップと、要求パケット305及び応答パケット3
06の両方を最大数収容するように、バッファ・スペー
ス201に動的割り当てを施すステップと、要求パケッ
ト305及び応答パケット306をバッファ・スペース
201に記憶するステップとを有する方法。
【0044】
【発明の効果】以上のように、本発明を用いると、利用
可能なバッファ・スペースをより効率よく利用し、デー
タ・パケットが待ち行列バッファの渋滞によって遅延す
る可能性を低下させるシステムを提供することができ
る。
【0045】また、空きのある待ち行列バッファ・スペ
ースを維持し、これによって、データ・パケットのスル
ープットの向上を可能にし、より効率のよいデータ・パ
ケットの分配を行い、システム性能に好ましい影響を与
えるシステムを提供することができる。
【0046】さらに、単一バッファを、要求バッファ・
スペースと応答バッファ・スペースの両方に利用するこ
とができる。
【0047】さらに、要求のためだけにバッファ・スペ
ースの一部を予約し、応答のためだけにバッファ・スペ
ースの一部を予約し、コンピュータ・システムの必要に
応じて、バッファ・スペースの残りを要求または応答の
ために利用することにができる。
【0048】その上、異なるタイプのバッファ・スペー
スの割り当てをソフトウェアで行っているので調整可能
である。
【図面の簡単な説明】
【図1】本発明のバッファ割り当てを利用するマルチノ
ード、マルチプロセッサ・システムのノードを示すブロ
ック図である。
【図2】クロス・バー・ルータ・チップ(RAC)の構
成を示すブロック図である。
【図3】PAC内におけるクロス・バー・アービタの構
成を示すブロック図である。
【符号の説明】
110:プロセッサ 111:プロセッサ・エージェント・チップ(PAC) 112:クロス・バー・ルータ・チップ(RAC) 113:メモリ・アクセス・チップ(MAC) 115:TAC 116:SCIリング 117:入力/出力サブシステム 201:PAC入力バッファ 301:アービタ 302:要求カウンタ 303:応答カウンタ 304:合計カウンタ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】アクセス・メモリに対する要求パケットを
    生成し、コンピュータ・システムが行う質問を満たす応
    答パケットを生成するプロセッサを備えたコンピュータ
    ・システムであって、 要求パケット及び応答パケットの記憶及び経路選択を行
    うための動的に割り当て可能なバッファ・スペースと、 プロセッサから要求パケット及び応答パケットを受信
    し、バッファ・スペースに要求パケット及び応答パケッ
    トを送信すべきか否かを判定するアービタとを有するコ
    ンピュータ・システム。
JP30260597A 1996-11-12 1997-11-05 バッファ・スペース動的割り当てシステム Pending JPH10187635A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/748,226 US5881316A (en) 1996-11-12 1996-11-12 Dynamic allocation of queue space using counters
US748,226 1996-11-12

Publications (2)

Publication Number Publication Date
JPH10187635A true JPH10187635A (ja) 1998-07-21
JPH10187635A5 JPH10187635A5 (ja) 2005-06-02

Family

ID=25008540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30260597A Pending JPH10187635A (ja) 1996-11-12 1997-11-05 バッファ・スペース動的割り当てシステム

Country Status (4)

Country Link
US (1) US5881316A (ja)
EP (1) EP0841617B1 (ja)
JP (1) JPH10187635A (ja)
DE (1) DE69729046T2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6938094B1 (en) 1999-09-17 2005-08-30 Advanced Micro Devices, Inc. Virtual channels and corresponding buffer allocations for deadlock-free computer system operation
US6345345B1 (en) * 1999-01-26 2002-02-05 Advanced Micro Devices, Inc. Data communications device and associated method for arbitrating access using dynamically programmable arbitration scheme and limits on data transfers
US6888843B2 (en) 1999-09-17 2005-05-03 Advanced Micro Devices, Inc. Response virtual channel for handling all responses
US6950438B1 (en) 1999-09-17 2005-09-27 Advanced Micro Devices, Inc. System and method for implementing a separate virtual channel for posted requests in a multiprocessor computer system
US6694388B1 (en) * 2000-05-31 2004-02-17 3Com Corporation Dynamic queuing system incorporating multiple queues sharing a single memory
US6701387B1 (en) * 2000-08-31 2004-03-02 Hewlett-Packard Development Company, L.P. Adaptive data fetch prediction algorithm
US7213098B2 (en) * 2000-11-28 2007-05-01 Sun Microsystems, Inc. Computer system and method providing a memory buffer for use with native and platform-independent software code
US6721826B2 (en) * 2001-09-25 2004-04-13 Lsi Logic Corporation Buffer partitioning for managing multiple data streams
US6715055B1 (en) 2001-10-15 2004-03-30 Advanced Micro Devices, Inc. Apparatus and method for allocating buffer space
US6877048B2 (en) 2002-03-12 2005-04-05 International Business Machines Corporation Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US6934612B2 (en) * 2003-06-12 2005-08-23 Motorola, Inc. Vehicle network and communication method in a vehicle network
US7865684B2 (en) * 2005-06-27 2011-01-04 Ab Initio Technology Llc Managing message queues
US8788465B2 (en) 2010-12-01 2014-07-22 International Business Machines Corporation Notification of configuration updates in a cluster system
US8943082B2 (en) 2010-12-01 2015-01-27 International Business Machines Corporation Self-assignment of node identifier in a cluster system
US9069571B2 (en) * 2010-12-01 2015-06-30 International Business Machines Corporation Propagation of unique device names in a cluster system
US9183148B2 (en) 2013-12-12 2015-11-10 International Business Machines Corporation Efficient distributed cache consistency

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4788679A (en) * 1986-09-02 1988-11-29 Nippon Telegraph And Telephone Corporation Packet switch with variable data transfer rate links
US4922438A (en) * 1986-12-11 1990-05-01 Siemens Aktiengesellschaft Method and apparatus for reading packet-oriented data signals into and out of a buffer
JPH0237422A (ja) * 1988-07-28 1990-02-07 Oki Electric Ind Co Ltd 数値管理方式
JP2842738B2 (ja) * 1992-08-25 1999-01-06 富士通株式会社 オンライン処理システム
US5448701A (en) * 1992-12-22 1995-09-05 International Business Machines Corporation Flow controller for shared bus used by plural resources
US5541932A (en) * 1994-06-13 1996-07-30 Xerox Corporation Circuit for freezing the data in an interface buffer
US5517615A (en) * 1994-08-15 1996-05-14 Unisys Corporation Multi-channel integrity checking data transfer system for controlling different size data block transfers with on-the-fly checkout of each word and data block transferred
US5473604A (en) * 1994-11-21 1995-12-05 At&T Corp. Method for avoiding node overload in a packet switching network
GB2298109B (en) * 1995-02-14 1999-09-01 Nokia Mobile Phones Ltd Data interface

Also Published As

Publication number Publication date
EP0841617B1 (en) 2004-05-12
EP0841617A2 (en) 1998-05-13
DE69729046D1 (de) 2004-06-17
EP0841617A3 (en) 2002-01-16
US5881316A (en) 1999-03-09
DE69729046T2 (de) 2005-04-28

Similar Documents

Publication Publication Date Title
US9251108B2 (en) Managing access to shared buffer resources
US5530902A (en) Data packet switching system having DMA controller, service arbiter, buffer type managers, and buffer managers for managing data transfer to provide less processor intervention
JPH10187635A (ja) バッファ・スペース動的割り当てシステム
US5991797A (en) Method for directing I/O transactions between an I/O device and a memory
US5519701A (en) Architecture for high performance management of multiple circular FIFO storage means
US7213087B1 (en) Mechanism to control the allocation of an N-source shared buffer
US7530068B2 (en) Method of resource allocation using an access control mechanism
EP0666665B1 (en) Method and apparatus for dynamically determining and allocating shared resource access quota
US5781741A (en) Message communications system in a parallel computer
EP0568002B1 (en) Distribution of communications connections over multiple service access points in a communications network
US6519666B1 (en) Arbitration scheme for optimal performance
US6986005B2 (en) Low latency lock for multiprocessor computer system
US20070011396A1 (en) Method and apparatus for bandwidth efficient and bounded latency packet buffering
US6996647B2 (en) Token swapping for hot spot management
JPS63269247A (ja) メモリ制御サブシステム
US20010055277A1 (en) Initiate flow control mechanism of a modular multiprocessor system
JPH02158858A (ja) メツセージ転送機構
JPH10143382A (ja) 共有メモリ型マルチプロセッサシステムの資源管理方法
US7746777B2 (en) Centralized bandwidth management method and apparatus
JP2002024007A (ja) プロセッサシステム
JPH0567059A (ja) ネツトワーク計算機システム
KR100215572B1 (ko) 인터페이스 버퍼 제어 방법 및 장치
CN118133050B (zh) 一种存储单元匹配方法和装置
JPH05173923A (ja) 入出力データ転送処理装置
JP2821939B2 (ja) パケット送受信制御方式

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040720

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040806

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070206

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070209

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070619