JPH06195256A - 記憶システム及びそのアクセス管理方法 - Google Patents

記憶システム及びそのアクセス管理方法

Info

Publication number
JPH06195256A
JPH06195256A JP4119576A JP11957692A JPH06195256A JP H06195256 A JPH06195256 A JP H06195256A JP 4119576 A JP4119576 A JP 4119576A JP 11957692 A JP11957692 A JP 11957692A JP H06195256 A JPH06195256 A JP H06195256A
Authority
JP
Japan
Prior art keywords
buffer
buffers
bcr
manager
free
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.)
Granted
Application number
JP4119576A
Other languages
English (en)
Other versions
JPH0812634B2 (ja
Inventor
Ronald Luijten
ルーイージテン・ロナルド
Marco Heddes
ヘデス・マルコ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06195256A publication Critical patent/JPH06195256A/ja
Publication of JPH0812634B2 publication Critical patent/JPH0812634B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/064Linked list, i.e. structure using pointers, e.g. allowing non-contiguous address segments in one logical buffer or dynamic buffer space allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 不要情報の収集動作を必要とせず、高速に異
なる要求に簡単に適応しうる非常に普遍的なバッファ管
理を実現する記憶システム及びバッファ管理方法を提供
すること。 【構成】 複数のバッファに副分割された共用メモリー
(10)と、バッファ制御レコード(BCR)のためバ
ッファと同数のセクションに副分割されたバッファ制御
メモリー(11)と、バッファ制御メモリー(11)と
共に使用するバッファ・マネジャ(12)とを含み、バ
ッファ・マネジャ(12)はバッファの割振りを許可し
又は許可しない要求マネジャ(20)と、スタック(2
3.1)にBCRを保持することによって自由バッファ
を制御するスタック・マネジャ(21)と、FIFO連
係リスト(23.2−23.n)に割振り済みバッファ
のBCRを保持するFIFOマネジャ(22)とを含
み、連係リストに対応するBCRを保持することによっ
てバッファを組織し制御するようにしたことを特徴とす
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は複数の使用者がアクセス
しうる大容量且つ高速メモリーの管理に関する。
【0002】
【従来の技術】かかるメモリーはバッファと称する複数
の小部分に論理的に副分割される。バッファの存在と同
等に多数のバッファ制御レコード(BCR)用セクショ
ンを有するバッファ制御メモリーが使用され、バッファ
・マネジャは連係リストに対応するBCRを保持するこ
とによってこれらバッファを組織し、制御する。自由バ
ッファのBCRは自由バッファ連係リスト及び使用者に
従い、連係リストに割振り済みバッファのBCRに保持
される。
【0003】バッファ・マネジャは使用者が要求するバ
ッファの割振りの許可又は不許可を決定し、使用者に対
してバッファのアドレスを供給し、上記のバッファ制御
メモリーに異なる連係リストを保持する。本発明の高速
バッファ管理は通信網の広帯域切替装置のプロトコル・
アダプタに使用することができ、又は他の高速プロトコ
ル施設に使用することができる。その上、バッファ管理
のみではなく、如何なる種類の高速資源管理が要求され
る他の分野にも使用することもできる。
【0004】如何なる通信網においても、処理すべき情
報量及び送信するべきデータ量の増加に伴い、情報の高
速切替が重要なタスクとなってきた。そのため、回線又
は伝送リンクが相互接続されて情報交換しうるようなネ
ットワーク・ノードは屡々ネットワーク内で遅延を発生
する。従って、高速であり、実際に遮断しない切替ノー
ドの使用が望まれている。しかし、かかる切替ノードの
プロトコル・アダプタのためには大容量且つ高速なメモ
リーを必要とする。その上、これらメモリーの管理は異
なる負荷状態に対してシステムが適応しうるよう非常に
効率良く、高速且つ柔軟性がなければならない。
【0005】本発明に対し最も近い先行技術はエー・ピ
ー・エングバーセンの論文“単一共用ランダム・アクセ
ス・メモリーからの多重先入先出待ち行列管理用アルゴ
リズム”(IBM技術公開ブリテン、Vol.32,N
o.3B,488−492頁,1989年8月)に開示
されている。そこには、単一の共用ランダム・アクセス
・メモリー(RAM)内の複数の待ち行列用管理方式が
開示されており、それは公知技術が要求する断片化され
たメモリーを再組織化することによる“不要情報収集”
動作を避けようとするものである。
【0006】この開示論文では、待ち行列要素はデータ
RAMと称するRAMに記憶され、n-partRAMと称す
る第2のRAMは出力待ち行列におけるデータの配分を
示すポインタの記憶に使用される。このシステムは出力
ポートごとにレジスタを持つことにより、そこから次の
データを読むデータRAMのアドレスを示して作業す
る。このレジスタはデータRAMにデータが記憶されて
いたアドレスと同じアドレスにおけるn-partRAMか
ら、出力待ち行列の次のデータが記憶されているアドレ
スを読出すことによってデータが送信されている間に更
新される。
【0007】
【発明が解決しようとする課題】この方式におけるハー
ドウェアの実現は複雑であり、クロック周期が少いこと
が必要であるため、現在の高速管理設備程高速ではな
い。本発明は上記の問題に鑑みてなされたもので、組織
化に対する“不要情報収集”動作を必要としないバッフ
ァ管理方式を提供することを目的とする。本発明の他の
目的は、高速で実現しうるバッファ管理方式を提供する
ことである。本発明の他の目的は、高速通信網のプロト
コル・アダプタの一部として使用するよう設計された高
速バッファ管理を提供することである。本発明の更に他
の目的は異なる要求に簡単に適応しうる非常に普遍的な
バッファ管理方式を提供することである。
【0008】
【課題を解決するための手段】本発明は、上記の課題を
解決するため、本発明による高速バッファ管理を実現す
るハードウェア設備を含む切替サブシステムを有する通
信網を提供する。後述する本発明の実施例はギガビット
構内情報通信網用広帯域切替装置の一部として使用する
ことができる。
【0009】本発明は上記の目的を達成するため、残り
の問題を解決し、公知のソフトウェア及びハードウェア
における問題解決の欠点を除去するものである。本発明
による高速バッファ管理方式においては、共用大容量高
速メモリーが、連係リストとの組合わせにおいて、バッ
ファ管理により組織化され制御される複数のバッファに
論理的に副分割される。この連係リストの使用による間
接アドレス指定は簡単な計画を可能にするため、高速用
に設定可能である。このバッファは使用者の要求によ
り、データを記憶し読出すことができるよう割振り可
能、且つアクセス可能である。バッファに対するアクセ
スはバッファ・マネジャで設定しうる規則によって制御
される。
【0010】本発明は下記のような利点を有する。 ・バッファ要求を許可する各種戦略を実現することがで
きるように、複数のバッファ管理計画を設定することが
できる。 ・バッファの大きさを変更可能にすることができる(1
仮想チャンネル・ベース当り)。 ・各命令:“バッファ要求”(request buffer)、“バ
ッファをFIFOにプット”(put buffer into FIF
O)、“バッファをFIFOからゲット”(get buffer
from FIFO)、及び“バッファを解放”(release buffe
r)は4周期で実行することができる(上記のIBM技
術公開ブリテンにおけるユー・ピー・エングバーセンの
論文に記述されている設定の5周期と対比する)。これ
らの命令は同時に実行することができる。
【0011】・多重FIFO待ち行列を設定することが
できるのみでなく、FIFOマネジャを(他の)スタッ
ク・マネジャと交換することによって、多重LIFO
(後入/先出)待ち行列を設定することも可能である。 ・本実施例におけるバッファ管理は設計時、初期設定
中、及び実行時間中に変数を設定可能である。 ・可変長のメッセージを支持することができる(メッセ
ージのパケット数で規定する)。
【0012】
【実施例】以下、添付図面に基づき本発明の実施例を詳
細に説明する。次の説明は主にネットワークの切替又は
スイッチング・サブシステムの一部であるプロトコル・
アダプタに関するものである。アダプタは大容量高速共
用メモリーを有し、切替装置側でパケットを送受信し、
使用者側で操作するトランシーバである。大容量高速メ
モリーは論理的に小単位に副分割され(以下、バッファ
と呼ぶ)、複数使用者に同時に割振り可能であり、アク
セスすることができる。メモリーがこれら使用者に共用
される場合、問題発生を避けるため、使用者に対するバ
ッファの割り当てのため、及び与えられた記憶容量を非
常に効率よく使用するための規則を設定しなければなら
ない。
【0013】第1実施例は本発明による高速バッファ管
理のハードウェアに対する実施であり、ネットワークの
プロトコル・アダプタの一部である。第1実施例は図1
に示す3つの主な部分、大容量データ・メモリー10
と、バッファ制御レコード・メモリー(BCR メモリー)
11と、バッファ・マネジャ12とから成る、両メモリ
ー10,11はランダム・アクセス・メモリー(RA
M)である。BCRメモリー11は、各バッファが対応
するバッファ制御レコード(BCR)を持ちうるよう
に、データ・メモリー10におけるバッファの存在数と
同等に多数のバッファ制御レコード(BCR)に副分割
される。BCRはバッファ・マネジャ12によって組織
され制御され、BCRメモリー11の異なる連係リスト
に保持される。
【0014】多重使用者(仮想チャネル)がバス14を
介してレシーバ/送信装置13に接続される。使用者か
らデータを受信すると、データのために必要なスペース
の大きさに従って1又はそれ以上のバッファを要求す
る。自由バッファが十分使用可能であると、バッファ・
マネジャ12で設定する規則が満足され、マネジャ12
により要求が許可される。要求されている自由バッファ
をBCRに維持されている自由バッファ連係リストから
飛出させ(POP)、そのバッファのアドレスがバッフ
ァ・マネジャ12及びレシーバ13に使用可能となる。
以下、使用者データ(UserData)と呼ばれるこれらアド
レスにより、バッファはランダム・アクセス・データ・
メモリー10及びレシーバ13に割り振られ、それによ
り使用者自身がデータ・メモリー10にアクセスする。
【0015】第1実施例のバッファ・マネジャ12は要
求マネジャ20と、スタック(バッファ)マネジャ21
と、先入/先出マネジャ(FIFOマネジャ)22との
3つの構成ブロックから成る(図2に示す)。後述する
一定の規則に基づき、要求マネジャ20はバッファの要
求を許可し又は許可しない。要求マネジャ20がバッフ
ァの要求を許可すると、要求されている自由バッファに
対応するBCRはスタック・マネジャ21によって制御
され維持されているBCRメモリー11の自由バッファ
連係リストから飛出す(POP)。自由バッファのBC
Rはスタック23.1に維持される。スタック23.1
から飛出した(POP)バッファの使用者データ(User
Data)は使用可能となり、対応するバッファはアクセス
可能となる。割振り済みバッファはFIFO連係リスト
23.1−23.nに対しそのBCRを加えることによ
って、各使用者に対して1つの異なる論理的待ち行列に
保持される。FIFOマネジャ22はこれらFIFO2
3.2−23.nを制御し処理するために使用される。
バッファはFIFO23.2−23.n及びスタック2
3.1を使用してそれらを処理することにより再周期す
る。
【0016】図3はBCRメモリー11とデータ・メモ
リー10のバッファとの異なる連係リストの組織化を示
す。この例では、2つの使用者(仮想チャネルVC0及
びVC1)がデータ・メモリー10に対してアクセスす
る。第1の仮想チャネルのデータは英大文字(図3のバ
ッファ30.3及び30.5に示すような)として示さ
れ、第2の仮想チャネルのデータは英小文字(図3のバ
ッファ30.1及び30.8で示すような)として示さ
れる。図3のバッファ30.3,30.5,30.1
3,及び30.10は仮想チャネルVC0のデータを含
み、バッファ30.8及び30.1はVC1のデータを
含み、残りのバッファは自由である。BCRメモリー1
1に記憶されている対応するBCRは2つのフィールド
を有する。
【0017】第1のフィールドは、本実施例では、デー
タ・メモリー10の対応するバッファのアドレスを含む
使用者データ(UserData)フィールドであり、第2のフ
ィールドは他のBCRに対する次(next)と呼ばれるポ
インタである。自由バッファ30.2,30.4,3
0.6,30.7,30.9,30.11,30.1
2,及び30.14のBCRはBCRメモリー11の自
由バッファ連係リストに保持される。この連係リストは
BCR31.2から始まり、次に続くBCRに対するポ
インタによって連係される。そのポインタ・フィールド
は一方のBCRから他方のBCRへ矢印で概略示すよう
次のBCRのアドレスを含む。自由バッファ連係リスト
は図2に示すスタック23.1のように行動し、スタッ
クの第1のフィールド(使用者データ:UserData)を印
すポインタ先頭(top)を有する。スタックの終端におい
て、スタックなしポインタが必要なため、スタック終端
の最後のBCR31.14に無(nil )フィールドを有
する。
【0018】VC0及びVC1によって割り振られたバ
ッファのBCRは2つのFIFO連係リストに保持され
る。最初のBCRはフロント( front)(0)ポインタ
(BCR31.3を見よ)から開始し、バック( back)
(0)ポインタを有するBCR31.10で終了する。
第2の連係リストの開始はフロント(1)により指定さ
れ、その最後のBCR31.1がバック(1)によって
指定される。割振り済みバッファに対するBCRの次
(next)フィールドは、VC0及びVC1のリストがF
IFOリストのように行動するよう、次に続くBCRの
アドレスを含む。これらFIFO内で連続する順序は矢
印で示す。
【0019】バッファ・マネジャ12の3つの構成要素
20−22の使用方法を次に示す例によって明らかにす
る。本例に示す本発明によるシステムは高速スイッチ
(切替装置)又は高速LANアダプタの一部である。本
実施例では、プロトコル装置はレシーバ/送信部13
(図1)で構成されるものとする。
【0020】レシーバはデータ・ブロックの受信に従
い、下述する動作を実行する。ここで使用するブロック
の語はフレーム,パケット,又はセルのように文献で公
知のデータ単位を示すものとして使用される。それは仮
想チャネル識別名(virtual channel identifier;VCID
)と称する接続識別名(ID)を確認して、バッファ
を要求する。要求マネジャ20は要求が許可されるかど
うかを決定し(図2では“要求許可”の記号で示す)、
スタック・マネジャ21がスタック23.1から自由バ
ッファが飛出すことを可能にする。ここで、スタック・
マネジャ21により、この自由バッファに対するポイン
タと同様対応するBCRに対するポインタが戻される。
【0021】自由バッファに対するポインタは受信した
データをこのバッファに記憶することができるようにす
るそのアドレスである。従って、レシーバは仮想チャネ
ルに対応するFIFOにこのバッファ及びそのBCRを
プット(PUT)する。この動作はパラメータとしてV
CID及びBCRポインタを有するFIFOマネジャ2
2において、プット(PUT)命令を実行することによ
って行うことができる。そこで、自由バッファ連係リス
トから除去されたバッファは仮想チャネルのFIFO連
係リストに加えられる。大きなデータ・パケットを受信
しなければならない場合、バッファを要求する処理等は
反覆的に行われる。この機能を効率よく実行するため
に、特別な規則を設定することができる。
【0022】送信装置は次の動作を実行する。仮想チャ
ネル(VC0)の十分なデータを受信した場合(例え
ば、数個のデータ・ブロックから成るメッセージを完成
する場合)、送信装置は対応するFIFOを読出す。フ
ロント(0)によって指定されたこのFIFOの最初の
BCR31.3及び対応するバッファ30.3の使用者
データはFIFOマネジャ22によって戻される。バッ
ファ30.3のアドレスは使用者データによって与えら
れ、このバッファに記憶されているデータは読出され、
たぶん送信装置が作成し、初頭に付されたヘッダを伴っ
て送信される。データの読出しの完了後、該バッファは
自由と印されねばならない。これは要求マネジャ20に
よる解放(RELEASE )命令の実行により、及びスタック
23.1のバッファ(使用者データで識別される)を押
込む(PUSH)ことによって実行することができる。
送信装置は記憶されている全バイトを送信するまでその
読出しを続行することができる。自由バッファの数は解
放されたバッファの数により増加する。
【0023】ここで必要な同期機構は全システムのもの
に従うものであり、本発明によるバッファ管理によって
影響されないので、詳細な説明は要しない。次に、第1
実施例による要求マネジャ20及びそれを実施すること
ができる規則を以下で説明する。
【0024】1) 要求マネジャ 仮想チャネル[i] によって割り振りうる最大バッファ数
は、バッファの最大数(locMax[i])によって限定される
ように各仮想チャネル[i] に割り当てられる。これは少
数の使用者(VCS )がすべて使用可能な自由バッファ
を消費することを防止することである。その上、多数の
特約バッファ(privMin[i])が対応する使用者のために
予約されるというように、それらバッファが各使用者に
割り当てられる。これらバッファは他の使用者に対して
割振り可能ではない。その使用者がそのすべての特約バ
ッファを消費しない限り、使用者のバッファ要求は常に
許可されるであろう。
【0025】これらの規則及び上記で規定した変数に基
づき、下記のバッファ管理方式が可能である。 ・固定方式:1VCに対する各特約の固定部分に分割さ
れる。 例えば、privMin[i]=locMax[i] 、又はprivMin[i]は使
用されず、SUMlocMax[i]=“使用可能なバッファの合計
数”である。 ・共用方式:データ・メモリー10は全チャネル間で完
全に共用される。要求マネジャは不要であり、スタック
の自由バッファのみを要す。
【0026】・最大と共用方式:共用されるがVC当り
未決バッファの数に制限がある(例えば、privMin[i]は
使用されない)。 ・特約と共用方式:共用されるがVC当り特約バッファ
の予約数を有する(例えば、locMax[i] は使用されな
い)。 ・組合せ方式:上記最後の2方式を組合わせた方式。 組合せ方式は最も一般的且つ複雑なものであり、第1実
施例で設定される。
【0027】要求マネジャ20のハードウェアの実施は
図4に示す。要求マネジャ20は前述のように設定した
規則を使用し、及び局所的及び全体的変数(仮想チャネ
ルに対しては局所)を使用することにより、バッファの
要求及び解放を管理する。要求マネジャ20がバッファ
の要求を許可した場合、自由バッファのスタック23.
1から自由バッファが飛出す(POP)ことによって実
際にバッファを得る(GET)ことは使用者自身のタス
クである。バッファの使用後、それは解放しなければな
らない。これは、要求マネジャ20に対し解放(RELEAS
E )命令を要求すると共に、バッファをスタック23.
1に押込む(PUSH)命令を要求する。
【0028】下記において、前述の組合せ方式の設定を
説明する。他の計画の場合、ハードウェアは簡単にする
ことができる。下記の状態変数はバッファ管理規則の設
定のために使用される。 ・used[i] :このパラメータ(VC(i)に対して局
所)はVC(i)が現在使用しているバッファの数を示
す。許可された要求がこのパラメータを増分し、解放が
それを減分する。 ・locMax[i] :VC(i)が使用しうるバッファの最大
数。それは要求マネジャに対しては定数であるが、例え
ば制御処理装置によって変更することができる。
【0029】・privMin[i]:VC(i)による特約の使
用のために予約されるバッファの数。要求マネジャ20
に対して定数であるが、locMax[i] と同様変更すること
ができる。 ・NotReserved : FreeBuffers が自由バッファの合計数
を示す場合、ResBuffersは予約されるバッファの合計数
(すなわち、まだ特約バッファとして要求されていな
い)を示す。従って、NotReserved は下記の方程式で与
えられるように、予約されていない自由バッファの数を
示すよう規定される。 NotReserved = FreeBuffers - ResBuffers ・・・・(1)
【0030】更に詳細は下記リスティングにより与えら
れる。これら変数に従い実行されるべき要求マネジャ2
0の動作を下記の“Pseudo Pascal ”(疑似パスカル)
構文を使用して書いたリスティングに示す。
【0031】 初期設定 全iに対して行う 開始 used[i] := 0 ; privMin[i] := "適合するよう"; locMax[i] := "適合するよう"; 終了; NotReserved := "バッファの合計数" −SUM (privMin[i]);
【0032】 機能要求 {iは仮想チャネルID} if ( used[i] < privMin[i] ) then 開始 used[i] := used[i]+1; Request := "許可" 終了
【0033】 else if ( NotReserved > 0 ) 及び ( used[i] < locMax[i] ) then 開始 used[i] := used[i]+1; NotReserved := NotReserved-1; Request := "許可"; 終了 else Request := "不許可";
【0034】 機能解放 {iは仮想チャネルID} if ( used[i]≦ privMin[i] ) then used[i] := used[i]-1 else 開始 used[i] := used[i]-1; NotReserved := NotReserved+1; 終了;
【0035】上記の規則及び与えられたリスティングに
基づく要求マネジャ20は図4に示すブロック図に従い
効率的に設定することができる。該ブロック図は書戻し
レジスタ(WriteBackReg)40と、変数41と、作業レ
ジスタ42と、サーバ43とから成る。局所変数used
[i] ,locMax[i] ,及びprivMin[i](仮想チャネルに対
して局所)はRAM44に記憶される。VC0の局所変
数はこのRAM44の上の行に記憶され、それに続く使
用者i>0を有するVC(i)の変数は下の行に記憶さ
れる。全体的な変数NotReserved は変数ブロック41の
一部であるレジスタ45に記憶される。3つのレジスタ
46.1−46.3はこのVCの要求に従いRAM44
から読出されたVCの局所変数を記憶するために使用さ
れる。
【0036】サーバ43は作業レジスタ42に記憶され
ている変数を使用することにより要求が許可されうるか
どうかを検査する。その検査は実施する規則に基づいて
行われる。機能要求及び機能解放があったときに、リス
ティングに異なる検査が与えられる。局所変数及び全体
的変数はリスティングに示す単一工程を実行する要求/
解放サーバ47に送られる。変数は必要な場合、加算機
構48及び減算機構49を使用して増加又は減少され
る。これら加算機構及び減算機構は要求/解放サーバ4
7に接続され、制御される。書戻しレジスタ40は変更
された変数used[i] をRAM41に書戻す前にそれを記
憶するレジスタ50を構成し、使用する。その他の一定
の状態機構(図に示していない)が後の4部分40−4
3の動作を制御する。
【0037】次に、図4に示す要求マネジャ20の動作
の説明に進む。仮想チャネル、例えばVC0の要求に従
い、RAM44の局所変数のアドレスとして仮想チャネ
ル識別名(VCID)が使用される。このアドレスを使
用することにより、仮想チャネルの局所変数はRAM4
4からレジスタ46.1−46.3に読出される。サー
バ43は要求が許可されうるかどうかを確認し、それに
従い、リスティングに示すアルゴリズムを使用して局所
及び全体的変数を変更する。要求が許可されると、変数
used[i] は下式に示すように、加算機構/減算機構48
を使用して増加する。
【0038】 used[i] := used[i]+1 ・・・・(2) バッファが予約されずに使用可能であり、used[i] ≧pr
ivMin[i]、及びused[i] < locMax[i] であると、方程式
(3)で与えられるように、変数NotReservedは減少す
る。 NotReserved := NotReserved−1 ・・・・(3)
【0039】割振り済みバッファの解放は類似方法で動
作し、局所変数used[i] は下式で与えられるように、解
放されている仮想チャネルの各バッファと共に減少す
る。 used[i] := used[i]−1 ・・・・(4)
【0040】全体的変数NotReserved はリスティングに
見られるように必要に応じ、下式で与えられるよう増加
する。 NotReserved := NotReserved+1 ・・・・(5)
【0041】制御処理装置は、少くともそれらを初期設
定しうるよう、変数に対するアクセスを必要とする。そ
の上、変数はこの処理装置によって動的に変更すること
ができる(例えば、予想した通信量の要求に基づく)。
しかし、変更は単純ではなく、注意深く実行されるべき
である。変数を変更することにより、例えば、バッファ
がもはやこのチャネルで使用されなくなるという問題が
発生したため、ある使用者を締め出し他の使用者に使用
可能にするような場合、大容量高速データ・メモリーの
再編成を可能にする。
【0042】RAM44に追加の変数を記憶することに
よってサーバの実行速度を速くすることができる。これ
らの変数は比較命令演算(例えば、used[i] <locMax
[i] )の結果、再提供される。従って、サーバは変数の
適当な増分/減分を直ちに実行することができると共
に、次の要求に対する比較はその増分/減分と平行に行
われる。そこで、比較の結果は次の要求のために使用可
能となるようRAMに記憶される。
【0043】2) スタック・マネジャ スタック・マネジャ21のハードウェアはこのセクショ
ンで実現される。図5はそのブロック図を示し、図5に
示す21はスタック・マネジャ、51及び52は夫々変
数ブロック及びサーバ・ブロックであって、スタック・
マネジャ21を構成する。レジスタ30,先頭(top )
54.1,使用者データ複写(userDataCopy)54.
2,及び次(next)54.3は変数ブロック51の一部
である。サーバ・ブロック52はBCRメモリー11及
び変数ブロック51の各レジスタに接続されているスタ
ック・サーバ53を含む。BCRメモリー11に記憶さ
れ、スタック・マネジャ21によって組織化され制御さ
れる自由バッファ連係リストはスタック(図2のスタッ
ク23.1)のように行動する。スタック23.1の各
BCRは使用者データ(UserData)(すなわち、対応す
るバッファの物理的アドレス)と、該リストの次の要素
(BCR)に対するBCRメモリー11のアドレスであ
る追加のポインタ(ここでは、次(next)と称する)と
を含む。
【0044】要求が許可されると、自由バッファはスタ
ック23.1から飛出さ(POP)なければならない。
要求マネジャ20はPOP活動可能線55を介してリス
トから自由バッファの除去を開始可能にする。POP指
令は自由バッファ連係リストから最初の要素を除去し、
この要素(後にプット(PUT),ゲット(GET),
及び押込み(PUSH)に対して使用される)にポイン
タを戻し、又対応するバッファの使用者データ(UserDa
ta)をデータ・メモリー10に戻す。それは、PUSH
指令を使用してバッファの解放のためにスタック23.
1の前に挿入されるべきである。使用者データは定数で
あると仮定する。それらの値は制御処理装置により初期
設定中に与えられる。
【0045】効率よいリストの管理を行うため、下記3
つの状態変数が使用される。この状態変数は、すべての
スタックの動作はBCRメモリー11に対する1アクセ
スのみを要求するというように選択される。 ・先頭(top):これはスタック23.1の先頭(top )
に対するポインタである(図3)。そのポインタはレジ
スタ54.1に記憶される。 ・使用者データ複写(UserDataCopy) :先頭スタック要
素の使用者データ(UserData)の複写である。この複写
はレジスタ54.2に保持される。 ・次(next):スタック23.1の次(next)の要素に対す
るポインタであって、レジスタ54.3に記憶される。
【0046】単一のスタック23.1は図5に示すよう
に実現することができる。その実施はセクション1)の
要求マネジャに基づき説明した要求マネジャの実施と同
一の概念に従って行われる。スタック・マネジャ21
は、要求マネジャ20のRAM、作業レジスタ(WorkRe
sister)、及び要求マネジャ20の再書込レジスタ(Wr
iteBackReg)が省略されうるような全体的変数のみを必
要とする。スタック・サーバ53は主にリスト管理に対
して使用される。それは状態機構(図に示していない)
によって設定され、その作用の説明は下記リスティング
によって与えられる。
【0047】 初期設定 制御メモリーを初期化する BCRの連係リストを設定し、 各BCRの使用者データ・フィールドを初期化する 状態変数を初期化; 先頭 :="最初のBCRに対するポインタをリストに"; 次 :="第2のBCRに対するポインタをリストに";
【0048】
【0049】 処理手順PUSH(theBCRPtr) theBCRPtr ↑次 := 先頭; 次 := 先頭; 先頭:= theBCRPtr; 使用者テータ複写 := theBCRPtr ↑使用者テータ複写; {上記ステートメントはBCRメモリーの 1(同時)読出/書込を要求する }
【0050】バッファの大きさはシステムの初期設定
時、すなわちBCRメモリー11の初期設定時に決定さ
れるということに注目するべきである。これは自由バッ
ファ連係リストだけでなく、ほとんどの場合、バッファ
の物理的アドレスのみから成る使用者データ(UserDat
a)の最初の設定を含む。
【0051】3) FIFOマネジャ 本項は第1実施例の一部であるFIFOマネジャ22の
実施に関するものである。FIFOマネジャ22のブロ
ック図は図6に示す。この実施例はスタック・マネジャ
21の1つとほとんど同一である。すべてのFIFO要
素(BCR)はBCRメモリー11の連係リストに記憶
される。FIFOマネジャ22の変数ブロック60は2
つのレジスタ、すなわち以下フロント(front )レジス
タ63.1と称する第1のレジスタと、以下バック(ba
ck)レジスタ63.2と称する第2のレジスタとを含
む。サーバ61は効率よいリスト管理を実行するFIF
Oサーバ62から成る。下記の状態変数は本実施例に使
用される。
【0052】・フロント(i):これは使用者(i)(u
ser(i)) の連係リストの第1のFIFO要素(BCR)
に対するポインタである。フロント・レジスタ63.1
はオペレーション中その記憶のために使用される。 ・バック(i):これは連係リストの最後に挿入される
要素に対するポインタである。バック・レジスタ63.
2はこのポインタのためのレジスタとして使用される。
【0053】要求が許可され、自由バッファ23.1の
スタックから自由バッファが飛出した場合、それは使用
者のリストの終端に挿入されなければならない。その挿
入のため、PUT指令が使用される。PUT処理手順
は、FIFOサーバ62で実施したように、下記のリス
ティングで与えられる。データ・メモリー10からデー
タを除去するため、GET指令がリストから最初の要素
を除去し、この要素にポインタを戻し、又使用者データ
を戻す。その詳細は下記にリストされているGET処理
手順から明らかである。
【0054】
【0055】
【0056】
【0057】バッファ・マネジャ12の3構成成分の説
明の後、それらの動作について説明する。要求は図7に
示すように下記の4周期から成る。 1. 第1の周期70.1中に、RAM44に記憶され
ている局所変数used[i],locMax[i],及びprivMin[i]が読
出される。要求している使用者のVCID(図7のVC
0のVCID)はRAM44に供給され、変数は作業レ
ジスタ(WorkResister)42にクロックアウトされる。
【0058】2. 要求/解放サーバ47は第2の周期
70.2において要求が許可されるか否かを確認し、変
数(vars)を変更する。第2の周期70.2の終りでそ
れが判明し、要求に対する許可の可否が要求マネジャ2
0のPOP活動可能(POPenabled)出力において表示さ
れる。 3. 第3の周期70.3中、変更した変数(vars′)
が書戻しレジスタ(WriteBackReg)40にクロックイン
される。 4. 書戻しレジスタ40の内容は第4の周期70.4
中に、RAM44の原アドレスに書戻される。
【0059】解放演算も同様な方法に従って行われ、4
周期70.3−70.6を使用する。図7に示す命令
“読出し”及び“書込み”はRAM44からの又はRA
M44に対する変数の読出し及び書込みのために使用さ
れる。データの読出し及び書込みは同図に示していな
い。要求及び解放は4周期中に要求及び解放両方(又は
2要求又は2解放でも)を行うべき能力となるようイン
ターリーブすることができる。
【0060】FIFOマネジャ22が、図6に示す要求
マネジャ20と同一方法で実施することができるので、
ゲット(GET)及びプット(PUT)の両演算とも同
様に4周期で行うことができる。ゲット及びプット両演
算のBCRメモリー11(RAM44)に対するアクセ
スの要求は夫々1アクセスのみである。スタック・マネ
ジャ21に対しても同様な原理が適用される。飛出し
(POP)及び押込み(PUSH)両演算は2周期で行
うことができ、飛出し及び押込みは夫々1BCRメモリ
ー・アクセスのみを必要とする。
【0061】増分又は減分の前に比較が行われなければ
ならないので、要求マネジャ20の要求/解放サーバ4
7に狭隘通路が発生するかもしれない。最高速実行を達
成するため、比較演算が次の要求/解放に対するその結
果を計算する場合、比較及び増分/減分の両演算は並列
に行うことができる。この結果は、勿論、前述の如く、
比較の結果を含むブール式を伴う状態変数の延長を要求
すると共に記憶されなければならない。
【0062】次の実施例は第1実施例について記述した
ものと異なる計画を設定することによって明らかにする
ことができる。ハードウェアは設定されるべき計画に従
い減少することができる。共用する計画のハードウェア
設定のため、又は要求に対する規則が要求されない場
合、要求マネジャは省略することができる。マックス
(Max)との共用計画の実施のため、変数privMin[i]
が使用されない場合、図4に示すような要求マネジャ2
0のRAM40のprivMin[i]欄は省略することができ
る。
【0063】更に、リスティングに与えられた他の機能
及び処理手順も設定することができる。自由バッファに
対するスタック及びスタック・マネジャを使用する代り
に、これらバッファも又、勿論FIFOを要求して自由
バッファを管理するFIFOに組織化することができ
る。第1実施例において記述したように、BCRは2つ
のフィールド、すなわち使用者データ・フィールド及び
次フィールドから成る。ある場合、例えばBCRに対す
るポインタが対応するバッファの物理的アドレスに対し
て直接マップすることができるときには、使用者データ
・フィールドを省略することができる。
【0064】本発明の第2実施例は、スタック(バッフ
ァ)・マネジャ83及び異なる大きさのバッファに副分
割されたデータ・メモリーから成るシステムに関するも
のである。従って、スタック・マネジャ及び自由バッフ
ァ連係リストは変更しなければならない。夫々の大きさ
のバッファに対し、異なる大きさのバッファの支持が比
較的容易となるよう対応するスタックが使用される。多
重n−スタック(nはスタックの数)の設定は、上記の
1)スタック・マネジャで記述した単一スタックの設定
を基本とするものである。現に、nスタックがあると、
原理的に必要なパラメータ(図5に見られるように、先
頭、使用者データ複写、及び次がある)を含むn個のレ
ジスタがあるべきである。nレジスタの代りに必要なパ
ラメータは図8に示すようにRAM80に記憶しておく
こともできる。
【0065】変数ブロック85の一部であるこのRAM
80はパラメータ先頭、使用者データ複写、及び次に対
する3つのフィールドを持つn行を有する。図4に示す
要求マネジャ20と同様、追加の2ブロック、すなわち
書戻しレジスタ(WriteBackReg)81及び作業レジスタ
(WorkReg )82が使用されて、RAM80からパラメ
ータを読出し、書戻す。スタック・サーバ84は単一ス
タックの実施であるスタック・サーバ53に対比しうる
ものである。RAM80に供給されたアドレスはそれに
よりnスタックの飛出し又は押込み演算が行われること
を決定する。n個のスタックのどの大きさのバッファを
飛出させるかは使用者によって与えられねばならない。
【0066】その上、単一FIFOは、単一スタックを
延長したと同様な方法で多重n−FIFOにも適用さ
れ、延長することができる。図9は多重FIFOマネジ
ャ90のブロック図を示す。パラメータ「フロント
(i)及びバック(i)」を記憶するため、RAM91
が使用される。作業レジスタ(WorkReg )ブロック92
及び書戻しレジスタ(WriteBackReg)ブロック93は処
理されるべきパラメータのために使用される。これらブ
ロックは夫々2つのレジスタ94.1及び94.2,9
4.3及び94.4を含む。FIFOサーバ95は単一
FIFOの設定におけるサーバ62と対比されるもので
ある。第1実施例において記述したものと異なる規則及
び計画をこの実施例に使用することもできる。以上説明
した実施例に基づき、与えられた環境に適応する異なる
ハードウェアの設定を実現することができる。
【0067】
【発明の効果】本発明は、上記のように構成したことに
より、不要情報の収集動作を必要とせず、高速に異なる
要求に簡単に適応しうる非常に普遍的なバッファ管理方
式を提供することができた。
【図面の簡単な説明】
【図1】本発明の第1実施例によって構成されたハード
ウェアから成るシステムの全体的ブロック図
【図2】BCRメモリーに記憶されているスタック及び
FIFO連係リストを有するバッファ・マネジャのブロ
ック図
【図3】バッファ制御記憶(BCR)を持つBCRメモ
リー及びバッファを持つデータ・メモリーを示すブロッ
ク図
【図4】本発明のバッファ・マネジャの一部である要求
マネジャのブロック図
【図5】本発明のバッファ・マネジャの一部であるスタ
ック・マネジャのブロック図
【図6】本発明のバッファ・マネジャの一部であるFI
FOマネジャのブロック図
【図7】本発明の実施例によるハードウェアの要求及び
解放演算に対するタイミング図
【図8】多重スタック・マネジャのブロック図
【図9】多重FIFOマネジャのブロック図
【符号の説明】
10 データ・メモリー 11 BCRメモリー 12 バッファ・マネジャ 13 レシーバ/送信装置 20 要求マネジャ 21 スタック・マネジャ 22 FIFOマネジャ 40,81 書戻しレジスタ 41,51,60,85 変数 42,82 作業レジスタ 43,52,61,84 サーバ 47 要求/解放サーバ 53 スタック・サーバ 62 FIFOサーバ
フロントページの続き (72)発明者 ヘデス・マルコ スイス国、キルヒベルグ、シーエイチ− 8802、ホーンハルデンストラッセ、1番地

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 複数のバッファに副分割された共用メモ
    リー(10)と、バッファと同等に多数のバッファ制御
    レコード(BCR)用セクションに副分割されたバッフ
    ァ制御メモリー(11)と、バッファ・マネジャ(1
    2)とを含むプロトコル・アダプタの記憶システムであ
    って、前記バッファ・マネジャ(12)は、 少くとも1つの自由バッファ連係リスト(23.1)に
    対応するBCRを保持することによって自由バッファの
    すべてを組織し制御する自由バッファ・マネジャ(2
    1;83)と、 各使用者に対し割振り済みバッファの連係リスト(2
    3.2−23.n)を使用して、対応するBCRを前記
    割振り済みバッファの連係リスト(23.2−23.
    n)に保持することによって既に割振り済み前記バッフ
    ァのすべてを組織し制御する割振り済みバッファ・マネ
    ジャ(22;90)とを含み、 異なる使用者が前記共用メモリー(10)のバッファか
    ら又はバッファに対しデータをゲット又はプットするこ
    とができ、前記連係リスト(23.1,23.2−2
    3.n)は前記バッファ制御メモリー(11)における
    BCRの組合わせリストに集中する如く配置されたこと
    を特徴とする記憶システム。
  2. 【請求項2】 前記バッファ・マネジャ(12)は更
    に、使用者規定の変数とシステム状態変数とを含み、前
    記要求マネジャ(20)において設定された規則に基づ
    き、使用者の要求を許可し、又は不許可とする要求マネ
    ジャ(20)を含むことを特徴とする請求項1記載の記
    憶システム。
  3. 【請求項3】 前記自由バッファ連係リスト(23.
    1)は、自由バッファがスタックに記憶されうるよう組
    織されたことを特徴とする請求項1記載の記憶システ
    ム。
  4. 【請求項4】 前記自由バッファ・マネジャ(21;8
    3)及び前記割振り済みバッファ・マネジャ(22;9
    0)はサーバ(52,61;84,96)と記憶装置
    (51,60;85,91)とから成ることを特徴とす
    る請求項1記載の記憶システム。
  5. 【請求項5】 前記共用メモリー(10)は異なる大き
    さの複数のバッファに副分割され、前記自由バッファ・
    マネジャ(83)は与えられた異なる大きさのバッファ
    と同等に多数の自由バッファ連係リストを組織し、制御
    することを特徴とする請求項1記載の記憶システム。
  6. 【請求項6】 前記BCR(31.2)は対応するバッ
    ファ(30.2)の物理的アドレスに対する使用者デー
    タ・フィールドと、他のBCR(31.4)に対するポ
    インタのための次フィールドか又は連係リストの終端を
    印すフラグのためのフィールドとを含むことを特徴とす
    る請求項1又は2記載の記憶システム。
  7. 【請求項7】 前記BCRは他のBCRに対するポイン
    タのための次フィールドか、連係リストの終端を印すフ
    ラグのための無フィールドかのいずれかから成り、前記
    BCRはバッファ・アドレス用のフィールドの追加を要
    求しないよう対応するバッファに対し直接マップされる
    ようにしたことを特徴とする請求項1又は2記載の記憶
    システム。
  8. 【請求項8】 バッファの存在と同等に多数のバッファ
    制御レコード(BCR)用セクションに副分割されたバ
    ッファ制御メモリー(11)と、バッファ・マネジャ
    (12)とから成る記憶システムの一部を構成する複数
    のバッファに副分割された共用メモリー(10)に対す
    る異なる使用者のアクセスを管理する方法であって、前
    記共用メモリー(10)の全自由バッファは対応するB
    CRを少くとも1つの自由バッファ連係リスト(23.
    1)に保持することによって、自由バッファの少くとも
    1つの連鎖待ち行列として組織され、 前記共用メモリー(10)の割振り済み全バッファは、
    待ち行列の存在と同等に多数の割振り済みバッファの連
    係リストに対応するBCRを保持することによって、前
    記使用者の各々に対し1待ち行列の如く割振り済みバッ
    ファの連鎖待ち行列として組織され、 バッファは使用者に割り振られるべき各ときに、いまだ
    存在する場合、前記自由バッファの連鎖待ち行列から除
    去され、前記使用者の待ち行列に連係され、然らざる場
    合、前記自由バッファ連係リスト(23.1)からその
    BCRを取り、それを前記待ち行列の割振り済みバッフ
    ァの連係リスト(23.2−23.n)に加えることに
    よって新待ち行列に連係されるようになし、 バッファは使用者の待ち行列から解放された各ときに、
    BCRを前記使用者の割振り済みバッファの連係リスト
    (23.2−23.n)から取出して前記自由バッファ
    連係リスト(23.1)に加えることによって前記自由
    バッファの連鎖待ち行列に加えられるようにした各工程
    から成ることを特徴とする異なる使用者によるアクセス
    管理方法。
  9. 【請求項9】 バッファの割振りに対する使用者の要求
    は使用者規定変数及びシステム状態変数を含むバッファ
    ・マネジャ(12)において設定する規則に従い前記要
    求を許可し又は不許可にする前記バッファ・マネジャ
    (12)によって処理されることを特徴とする請求項8
    記載のアクセス管理方法。
  10. 【請求項10】 BCR(31.2)は対応するバッフ
    ァ(30.2)の物理的アドレスのための第1のフィー
    ルド(使用者データ)と、他のBCR(31.4)に対
    するポインタか又は連係リストの終端を印すフラグ
    (無)のための第2のフィールド(次)とから成ること
    を特徴とする請求項8又は9記載のアクセス管理方法。
JP4119576A 1991-07-10 1992-04-14 記憶システム及びそのアクセス管理方法 Expired - Lifetime JPH0812634B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CH91810548.7 1991-07-10
EP91810548A EP0522224B1 (en) 1991-07-10 1991-07-10 High speed buffer management

Publications (2)

Publication Number Publication Date
JPH06195256A true JPH06195256A (ja) 1994-07-15
JPH0812634B2 JPH0812634B2 (ja) 1996-02-07

Family

ID=8208862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4119576A Expired - Lifetime JPH0812634B2 (ja) 1991-07-10 1992-04-14 記憶システム及びそのアクセス管理方法

Country Status (4)

Country Link
US (1) US5432908A (ja)
EP (1) EP0522224B1 (ja)
JP (1) JPH0812634B2 (ja)
DE (1) DE69130392T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006513493A (ja) * 2003-01-09 2006-04-20 エミュレックス・デザイン・アンド・マニュファクチュアリング・コーポレーション フリーバッファプールを使用することによるメモリの管理

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2267588B (en) * 1992-06-06 1996-03-20 Motorola Inc FIFO memory system
JPH0784807A (ja) * 1993-09-14 1995-03-31 Fujitsu Ltd バッファ管理装置および方法
SE502576C2 (sv) * 1993-11-26 1995-11-13 Ellemtel Utvecklings Ab Feltolerant kösystem
US5600820A (en) * 1993-12-01 1997-02-04 Bell Communications Research, Inc. Method for partitioning memory in a high speed network based on the type of service
US6049802A (en) * 1994-06-27 2000-04-11 Lockheed Martin Corporation System and method for generating a linked list in a computer memory
US5528588A (en) * 1994-09-14 1996-06-18 Fore Systems, Inc. Multicast shared memory
US5652864A (en) * 1994-09-23 1997-07-29 Ibm Concurrent storage allocations or returns without need to lock free storage chain
US5774745A (en) * 1995-03-31 1998-06-30 Cirrus Logic, Inc. Method and apparatus for writing and reading entries in an event status queue of a host memory
US5682553A (en) * 1995-04-14 1997-10-28 Mitsubishi Electric Information Technology Center America, Inc. Host computer and network interface using a two-dimensional per-application list of application level free buffers
US5838915A (en) * 1995-06-21 1998-11-17 Cisco Technology, Inc. System for buffering data in the network having a linked list for each of said plurality of queues
US5799314A (en) * 1995-06-30 1998-08-25 Sun Microsystems, Inc. System and method of controlling mapping of data buffers for heterogenous programs in digital computer system
AU6501496A (en) 1995-07-19 1997-02-18 Ascom Nexion Inc. Point-to-multipoint transmission using subqueues
AU6761896A (en) * 1995-07-19 1997-02-18 Ascom Nexion Inc. Linked-list structures for multiple levels of control in an atm switch
JPH11512583A (ja) 1995-09-14 1999-10-26 フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド 広域atm網内のバッファ割付用送信側制御式フロー制御
US5838994A (en) * 1996-01-11 1998-11-17 Cisco Technology, Inc. Method and apparatus for the dynamic allocation of buffers in a digital communications network
US5991298A (en) 1996-01-16 1999-11-23 Fujitsu Network Communications, Inc. Reliable and flexible multicast mechanism for ATM networks
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
US6134601A (en) * 1996-06-17 2000-10-17 Networks Associates, Inc. Computer resource management system
US5805158A (en) * 1996-08-22 1998-09-08 International Business Machines Corporation Copying predicted input between computer systems
US5748905A (en) 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US5905889A (en) * 1997-03-20 1999-05-18 International Business Machines Corporation Resource management system using next available integer from an integer pool and returning the integer thereto as the next available integer upon completion of use
US6487202B1 (en) 1997-06-30 2002-11-26 Cisco Technology, Inc. Method and apparatus for maximizing memory throughput
US6012109A (en) * 1997-09-09 2000-01-04 National Instruments Corporation Video capture device with adjustable frame rate based on available bus bandwidth
US5978889A (en) * 1997-11-05 1999-11-02 Timeplex, Inc. Multiple device data transfer utilizing a multiport memory with opposite oriented memory page rotation for transmission and reception
US6526060B1 (en) 1997-12-05 2003-02-25 Cisco Technology, Inc. Dynamic rate-based, weighted fair scheduler with explicit rate feedback option
US6363075B1 (en) 1998-01-23 2002-03-26 Industrial Technology Research Institute Shared buffer management mechanism and method using multiple linked lists in a high speed packet switching system
US6243770B1 (en) * 1998-07-21 2001-06-05 Micron Technology, Inc. Method for determining status of multiple interlocking FIFO buffer structures based on the position of at least one pointer of each of the multiple FIFO buffers
US6226685B1 (en) 1998-07-24 2001-05-01 Industrial Technology Research Institute Traffic control circuits and method for multicast packet transmission
FI981917A (fi) 1998-09-08 2000-03-09 Nokia Networks Oy Menetelmä FIFO-jonon toteuttamiseksi muistissa ja muistijärjestely
US6381659B2 (en) * 1999-01-19 2002-04-30 Maxtor Corporation Method and circuit for controlling a first-in-first-out (FIFO) buffer using a bank of FIFO address registers capturing and saving beginning and ending write-pointer addresses
US6421756B1 (en) * 1999-05-06 2002-07-16 International Business Machines Corporation Buffer assignment for bridges
US6574231B1 (en) * 1999-05-21 2003-06-03 Advanced Micro Devices, Inc. Method and apparatus for queuing data frames in a network switch port
US6618390B1 (en) * 1999-05-21 2003-09-09 Advanced Micro Devices, Inc. Method and apparatus for maintaining randomly accessible free buffer information for a network switch
US6529945B1 (en) 1999-07-26 2003-03-04 International Business Machines Corporation Data buffer management between two different systems
US6823472B1 (en) 2000-05-11 2004-11-23 Lsi Logic Corporation Shared resource manager for multiprocessor computer system
US6629114B2 (en) 2001-06-22 2003-09-30 Riverstone Networks, Inc. Method, system, and computer program product for managing a re-usable resource
US6976021B2 (en) * 2001-07-19 2005-12-13 Riverstone Networks, Inc. Method, system, and computer program product for managing a re-usable resource with linked list groups
US7362751B2 (en) * 2001-10-03 2008-04-22 Topside Research, Llc Variable length switch fabric
US7233598B2 (en) * 2002-03-05 2007-06-19 Hewlett-Packard Development Company, L.P. System and method for speculatively issuing memory requests while maintaining a specified packet order
TW580619B (en) * 2002-04-03 2004-03-21 Via Tech Inc Buffer control device and the management method
US20040151170A1 (en) * 2003-01-31 2004-08-05 Manu Gulati Management of received data within host device using linked lists
US20040249997A1 (en) * 2003-02-26 2004-12-09 Umberhocker Richard B. System and method for communicating data
US7162551B2 (en) * 2003-10-31 2007-01-09 Lucent Technologies Inc. Memory management system having a linked list processor
KR100548214B1 (ko) * 2003-12-10 2006-02-02 삼성전자주식회사 복수의 인터페이스를 통해 패킷을 전송하기 위한 정보 독출을 미리 수행하여 패킷 전송을 빠르게 수행하는 패킷 포워딩 시스템 및 그 방법
US20050144415A1 (en) * 2003-12-30 2005-06-30 Intel Corporation Resource management apparatus, systems, and methods
US7742486B2 (en) * 2004-07-26 2010-06-22 Forestay Research, Llc Network interconnect crosspoint switching architecture and method
US7523284B1 (en) * 2004-08-10 2009-04-21 American Megatrends, Inc. Method and apparatus for providing memory management within a system management mode
US8559443B2 (en) 2005-07-22 2013-10-15 Marvell International Ltd. Efficient message switching in a switching apparatus
US7694041B2 (en) * 2006-05-19 2010-04-06 Arabella Software Ltd. Method for managing buffers pool and a system using the method
US7730239B2 (en) * 2006-06-23 2010-06-01 Intel Corporation Data buffer management in a resource limited environment
US8079077B2 (en) 2006-08-08 2011-12-13 A10 Networks, Inc. System and method for distributed multi-processing security gateway
US8332925B2 (en) 2006-08-08 2012-12-11 A10 Networks, Inc. System and method for distributed multi-processing security gateway
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
CN101551736B (zh) * 2009-05-20 2010-11-03 杭州华三通信技术有限公司 基于地址指针链表的缓存管理装置和方法
US8239701B2 (en) * 2009-07-28 2012-08-07 Lsi Corporation Methods and apparatus for power allocation in a storage system
US8271811B2 (en) * 2009-11-05 2012-09-18 Lsi Corporation Methods and apparatus for load-based power management of PHY logic circuits of a SAS device based upon a current workload
US9118618B2 (en) 2012-03-29 2015-08-25 A10 Networks, Inc. Hardware-based packet editor
US9596286B2 (en) 2012-05-25 2017-03-14 A10 Networks, Inc. Method to process HTTP header with hardware assistance
US9137173B2 (en) * 2012-06-19 2015-09-15 Advanced Micro Devices, Inc. Devices and methods for interconnecting server nodes
CN108027805B (zh) 2012-09-25 2021-12-21 A10网络股份有限公司 数据网络中的负载分发
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
WO2014144837A1 (en) 2013-03-15 2014-09-18 A10 Networks, Inc. Processing data packets using a policy based network path
WO2014179753A2 (en) 2013-05-03 2014-11-06 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
US10020979B1 (en) 2014-03-25 2018-07-10 A10 Networks, Inc. Allocating resources in multi-core computing environments
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9806943B2 (en) 2014-04-24 2017-10-31 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions
US10268467B2 (en) 2014-11-11 2019-04-23 A10 Networks, Inc. Policy-driven management of application traffic for providing services to cloud-based applications
KR102469811B1 (ko) * 2017-12-20 2022-11-24 에스케이하이닉스 주식회사 서비스품질 제어를 위한 선입선출 버퍼 시스템
US11150817B2 (en) * 2019-02-08 2021-10-19 International Business Machines Corporation Integrating kernel-bypass user-level file systems into legacy applications
CN112822126B (zh) * 2020-12-30 2022-08-26 苏州盛科通信股份有限公司 报文存储方法、报文出入队列方法及存储调度装置
US12019908B2 (en) * 2021-07-29 2024-06-25 Xilinx, Inc. Dynamically allocated buffer pooling

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61101851A (ja) * 1984-10-24 1986-05-20 Nec Corp バツフア記憶域の動的資源管理方式
JPH01244558A (ja) * 1988-03-25 1989-09-28 Nec Software Ltd メモリ割付・解放管理方式
JPH0227452A (ja) * 1988-07-15 1990-01-30 Fujitsu Ltd 回線制御用領域の動的領域管理処理方式
JPH0279138A (ja) * 1988-09-16 1990-03-19 Nec Corp 記憶域管理方式

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2684362B2 (ja) * 1986-06-18 1997-12-03 株式会社日立製作所 可変長データの記憶方式
JPS6336348A (ja) * 1986-07-30 1988-02-17 Toshiba Corp バツフアメモリ管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61101851A (ja) * 1984-10-24 1986-05-20 Nec Corp バツフア記憶域の動的資源管理方式
JPH01244558A (ja) * 1988-03-25 1989-09-28 Nec Software Ltd メモリ割付・解放管理方式
JPH0227452A (ja) * 1988-07-15 1990-01-30 Fujitsu Ltd 回線制御用領域の動的領域管理処理方式
JPH0279138A (ja) * 1988-09-16 1990-03-19 Nec Corp 記憶域管理方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006513493A (ja) * 2003-01-09 2006-04-20 エミュレックス・デザイン・アンド・マニュファクチュアリング・コーポレーション フリーバッファプールを使用することによるメモリの管理

Also Published As

Publication number Publication date
DE69130392D1 (de) 1998-11-26
DE69130392T2 (de) 1999-06-02
JPH0812634B2 (ja) 1996-02-07
EP0522224B1 (en) 1998-10-21
US5432908A (en) 1995-07-11
EP0522224A1 (en) 1993-01-13

Similar Documents

Publication Publication Date Title
JPH06195256A (ja) 記憶システム及びそのアクセス管理方法
US5502833A (en) System and method for management of a predictive split cache for supporting FIFO queues
EP0993635B1 (en) Method and apparatus for dynamic queue sizing
US7111092B1 (en) Buffer management technique for a hypertransport data path protocol
US5561807A (en) Method and device of multicasting data in a communications system
US5787466A (en) Multi-tier cache and method for implementing such a system
JP2983167B2 (ja) ネットワーク・インタフェース装置およびネットワーク・インタフェースにおけるパケット処理方法
US6021132A (en) Shared memory management in a switched network element
US7366865B2 (en) Enqueueing entries in a packet queue referencing packets
EP1741023B1 (en) Communicating protected data within locking messages
US7117308B1 (en) Hypertransport data path protocol
US6385658B2 (en) Method and apparatus for synchronized message passing using shared resources
EP0840202B1 (en) Dynamic peripheral control of I/O buffers in peripherals with modular I/O
GB2323744A (en) A method and apparatus for supporting unknown addresses in an emulated local area network using an asynchronous transfer mode interface
JPH07202946A (ja) 通信バッファを管理するためのシステム及び方法
EP1604493A2 (en) Free list and ring data structure management
JP4500457B2 (ja) プログラム可能メモリアクセススロット割当のための装置および方法
US20030056073A1 (en) Queue management method and system for a shared memory switch
US6163541A (en) Method for selecting virtual channels based on address priority in an asynchronous transfer mode device
US8661223B1 (en) Buffer management architecture
US5475680A (en) Asynchronous time division multiplex switching system
US5386514A (en) Queue apparatus and mechanics for a communications interface architecture
JP3735396B2 (ja) Atmセルをマルチキャストする方法と装置
US5657471A (en) Dual addressing arrangement for a communications interface architecture
US5983279A (en) Buffer management mechanism for distributed multimedia applications