JP2000090042A - 空バッファを指し示すポインタを含む空きポインタfifoを使用してバッファを管理するシステムおよび方法 - Google Patents

空バッファを指し示すポインタを含む空きポインタfifoを使用してバッファを管理するシステムおよび方法

Info

Publication number
JP2000090042A
JP2000090042A JP17652399A JP17652399A JP2000090042A JP 2000090042 A JP2000090042 A JP 2000090042A JP 17652399 A JP17652399 A JP 17652399A JP 17652399 A JP17652399 A JP 17652399A JP 2000090042 A JP2000090042 A JP 2000090042A
Authority
JP
Japan
Prior art keywords
buffer
data
pointer
available
list
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
JP17652399A
Other languages
English (en)
Inventor
Thomas P Webber
トーマス・ピー・ウェバー
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2000090042A publication Critical patent/JP2000090042A/ja
Pending 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
    • 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
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's

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)
  • Communication Control (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 空バッファを指し示すポインタを含むFIF
Oを使用して空バッファのプールからデジタル・データ
処理システム内のバッファを効率的に割り当てる新規の
改良されたシステムおよび方法を提供する。 【解決手段】 データを発信元プロセスから受け、宛先
プロセスへ転送するバッファ管理サブシステムは、バッ
ファ・メモリと、1つの宛先プロセスに関連するバッフ
ァ・ポインタFIFOとを含む。バッファ・ポインタF
IFOは、関連するそれぞれの宛先プロセスへ転送され
る発信元プロセスからのデータを記憶するために使用で
きるバッファを示すポインタをバッファ・メモリに記憶
する。宛先プロセスへ転送すべきデータを受けると、そ
の宛先プロセスに関連するバッファ・ポインタFIFO
からバッファ・ポインタが取り出され、バッファ・ポイ
ンタが示すバッファにデータを記憶する際にこのバッフ
ァ・ポインタが使用される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は全般的には、デジタ
ル・コンピュータ・システム、デジタル通信システムな
どのデジタル・システムの分野に関し、詳細には、デー
タを記憶するために使用されるバッファを管理する構成
に関する。このようなバッファは、たとえば、システム
のある要素から受けたデータをシステムの他の要素へ転
送する前に、一時的に記憶しておくために使用してい
る。本発明は、空バッファを指し示すポインタを含む1
つまたは複数のFIFOを使用して、データを記憶する
際に使用されるバッファを空バッファのプールから効率
的に割り当てるシステムおよび方法を提供する。
【0002】
【従来の技術】デジタル・コンピュータ・システム、デ
ジタル通信システムなどいくつかの種類のデジタル・シ
ステムでは、発信元として働いているシステムの一つの
要素から供給されたデータが、そのデータをある方法で
使用する宛先として働く他の要素へ転送する前にバッフ
ァに一時的に記憶される。たとえば、デジタル・コンピ
ュータ・システムでは、発信元は、このデジタル・コン
ピュータ・システムに対してローカルな記憶装置や他の
デジタル・コンピュータ・システムへ転送すべきデータ
を生成し、伝送できるように構成するプロセスを含み、
宛先は、発信元からのデータを取り出し、実際に転送を
実行するプロセスを含む。このような例示的なシステム
では、発信元はデータをバッファ装置を介して宛先に与
える。その際、発信元は生成したデータを発信元と宛先
の中間にあるバッファ・ストアに記憶し、宛先がこのバ
ッファ・ストアから、伝送すべきデータを取り出す。転
送すべきデータをバッファ装置に記憶することによっ
て、発信元と宛先は、他方の動作速度にかかわらず、そ
れぞれの異なる瞬間速度で動作することができる。ま
た、複数の発信元が、転送するデータを単一の宛先へ供
給する場合、これらの発信元はすべて、同じバッファ装
置を使用してこの宛先にデータを供給することができ、
同様に、単一の発信元が、転送されるデータを複数の宛
先へ供給する場合、この発信元は単一のバッファ装置を
使用してすべての宛先にデータを供給することができ
る。
【0003】従来、バッファ装置では、いくつかのバッ
ファが1つまたは複数のリンクされたリストとして構成
されている。リンクされたリストでは、たとえば、発信
元または宛先に関連するデータがバッファまたは一連の
バッファに記憶され、一連のバッファは、それぞれこれ
らのバッファのうちの次のバッファを指し示すポインタ
を含む。また、このようなバッファ装置では、空バッフ
ァを含む空きリストが用意されており、バッファすべき
データをバッファ装置が受けたときにそれぞれの発信元
または宛先用のリストにこのような空バッファを割り当
てることができる。発信元がバッファ装置にバッファす
べきデータを用意すると、空きリストから一つの空バッ
ファをリンク解除し、発信元または宛先に関連するリス
トにリンクすることによって、空きリストからの空バッ
ファがデータのために割り当てられ、その後で、新たに
割り当てられたこのバッファにデータを記憶することが
できる。宛先は、リンクされたリストからデータを取り
出すとき、それぞれのバッファからこのデータを取り出
し、その後で、バッファから取り出されたデータを空き
リストにリンクする。これらのプロセスは共に、空きリ
ストと、発信元および宛先に関連するリストとの両方の
ポインタを処理することを必要とする。
【0004】リンクされたリストを使用することは有効
であるが、特に比較的小さなバッファの場合は非効率的
になることがある。たとえば、リンクされたリストを構
成するために使用されるポインタはバッファ内の空間を
占有する。また、記憶のためにデータを受けたときに1
つのリストにバッファを割り当てる際、あるいは宛先に
よってデータが取り出されたときにバッファを空きリス
トに返す際、ポインタの処理にかなり時間がかかる可能
性がある。
【0005】
【発明が解決しようとする課題】本発明は、空バッファ
を指し示すポインタを含む1つまたは複数のFIFOを
使用して、デジタル処理システム内のバッファを空バッ
ファのプールから効率的に割り当てる新規の改良された
システムおよび方法を提供する。
【0006】
【課題を解決するための手段】簡単に言えば、本発明に
よるバッファ管理サブシステムは、データを1つまたは
複数の発信元プロセスから受け、1つまたは複数の宛先
プロセスへ転送する。バッファ管理サブシステムは、バ
ッファ・メモリと、1つの宛先プロセスに関連するバッ
ファ・ポインタFIFOとを含む。バッファ・ポインタ
FIFOは、関連するそれぞれの宛先プロセスへ転送さ
れる発信元プロセスからのデータを記憶するために使用
できるバッファを指し示すポインタをバッファ・メモリ
に記憶する。宛先プロセスへ転送されるデータを発信元
プロセスから受けると、この宛先プロセスに関連するバ
ッファ・ポインタFIFOからバッファ・ポインタが取
り出され、このバッファ・ポインタの指し示すバッファ
にデータを記憶する際にこのバッファ・ポインタが使用
される。宛先プロセスへ転送されるデータがバッファか
ら取り出されると、このバッファを指し示すバッファ・
ポインタがバッファ・ポインタFIFOへ返される。
【0007】
【発明の実施の形態】本発明は特に、添付の特許請求の
範囲で指摘されている。本発明の上記および他の利点
は、以下の説明を添付の図面と共に参照することによっ
てより良く理解することができる。
【0008】図1は、本発明によって構築されたバッフ
ァ管理サブシステムを含む例示的なコンピュータ・シス
テム10を示す。図1を参照するとわかるように、一実
施形態のコンピュータ・システム10は、プロセッサ・
モジュール11を含むと共に、キーボード12Aおよび
/またはマウス12B(包括的にオペレータ入力要素1
2として識別される)などのオペレータ入力要素と、一
体型スピーカ15を含むビデオ表示装置13などのオペ
レータ出力構成要素とを備えるオペレータ・インタフェ
ース要素を含む。例示的なコンピュータ・システム10
は従来型の内蔵プログラム・コンピュータ・アーキテク
チャのシステムである。
【0009】プロセッサ・モジュール11はたとえば、
供給されたデジタル・データに関連する処理動作および
記憶動作を実行するプロセッサ、メモリ、ディスク記憶
装置やテープ記憶装置などの大容量記憶装置(独立に図
示されてはいない)を含む。大容量記憶装置サブシステ
ムには、ディスク・サブシステムまたはテープ・サブシ
ステム、光ディスク記憶装置、CD−ROM装置などの
装置を含めることができ、これらの装置に情報を記憶
し、かつ/またはこれらの装置から情報を取り出すこと
ができる。1つまたは複数の大容量記憶装置サブシステ
ムは取外し可能記憶媒体を使用することができ、このよ
うな記憶媒体は、オペレータによって取り外し設置する
ことができ、オペレータがプログラムおよびデータをデ
ジタル・コンピュータ・システム10にロードし、処理
済みのデータをデジタル・コンピュータ・システム10
から得ることを可能にする。プロセッサから大容量記憶
装置サブシステムに供給される制御情報の制御下で、大
容量記憶装置サブシステムに記憶されている情報をメモ
リへ転送して記憶することができる。情報がメモリに記
憶された後、プロセッサはメモリからその情報を取り出
し、処理することができる。処理済みのデータが生成さ
れた後、プロセッサは、大容量記憶装置サブシステムが
処理済みのデータをメモリから取り出し、比較的長期間
にわたって記憶することを可能にする。
【0010】オペレータがデジタル・コンピュータ・シ
ステム10の処理および/または制御用の情報を入力さ
せるオペレータ入力要素12が設けられている。それぞ
れ、画面14上にビジュアル出力情報を表示し、オーデ
ィオ出力情報を出力するためにビデオ表示装置13およ
びスピーカ15が設けられる。このような情報は、プロ
セッサ・モジュール11によって生成され、オペレータ
が処理のために入力できるデータと、オペレータが処理
を制御するために入力できる情報と、処理中に生成され
る情報とを含むことができる。プロセッサ・モジュール
11は、いわゆる「グラフィカル・ユーザ・インタフェ
ース(「GUI」)を使用して、ビデオ表示装置13に
よって表示される情報を生成する。GUIでは、様々な
「ウィンドウ」を使用して、様々なアプリケーション・
プログラムに関する情報が表示される。コンピュータ・
システム10は、オペレータから入力情報を受け取るた
めのキーボード12Aやマウス12Bや、オペレータに
対して出力情報を表示するビデオ表示装置13など、特
定の構成要素を備えるシステムとして示されているが、
図1に示した構成要素の他にあるいはそれらの代わりに
様々な構成要素を含むことができることを理解された
い。
【0011】また、プロセッサ・モジュール11は1つ
または複数のネットワーク・ポートまたは通信ポートを
含むことができる。このようなポートは、全体的に参照
符号15で識別されており、コンピュータ・ネットワー
ク内のコンピュータ・システム10に接続される通信リ
ンクに接続するか、あるいはたとえば公衆電話システム
を介して他のコンピュータ・システム(図示せず)に接
続することができる。ポートは、コンピュータ・システ
ム10が、ネットワーク内の他のコンピュータ・システ
ムおよび他の装置へ情報を発信し、そのような装置から
情報を受けることができる。
【0012】本発明は、図1に示すデジタル・コンピュ
ータ・システム10において有用なバッファ管理サブシ
ステムを用意し、1つまたは複数の宛先プロセスに供給
するために1つまたは複数の発信元プロセスから受けた
データのバッファを容易にする。一実施形態では、この
バッファ管理サブシステムは、1つまたは複数の宛先プ
ロセスによって取り出されるように1つまたは複数の発
信元プロセスから受けたデータをバッファするために通
信サブシステムで使用される。発信元プロセスは、ディ
スク記憶装置など1つまたは複数の記憶装置上にローカ
ルに記憶するために転送されるデータを生成することが
でき、これらの記憶装置はデジタル・コンピュータ・シ
ステム10自体によって維持される。また、発信元プロ
セスは、リモート記憶(遠隔での記憶)のためにネット
ワーク・ポート15を介しネットワーク(図示せず)を
経て転送されるデータを生成することができる。宛先プ
ロセスは、バッファ管理サブシステムからデータを取り
出し、転送を実行する。この場合、1つの宛先プロセス
がローカル記憶のための転送を制御し、他の宛先プロセ
スがリモート記憶のための転送を制御する。
【0013】図2は、本発明によって構築されたバッフ
ァ管理サブシステム20を示す。図2を参照するとわか
るように、バッファ管理サブシステム20は、1つまた
は複数の発信元プロセス22(1)ないし22(N)
(包括的に参照符号22(n)で識別される)からデー
タを受け取り、1つまたは複数の宛先プロセス23
(1)ないし23(M)(包括的に参照符号23(m)
で示す)へ転送する入力FIFO(先入れ先出しバッフ
ァ)21を含む。入力FIFO21からのデータは、そ
れが転送される宛先プロセスによって取り出される前に
バッファ・メモリ24へ転送されバッファに記憶され
る。バッファ・メモリ24は、いくつかのバッファ(独
立に図示されてはいない)として構成された複数の記憶
位置を備える。各バッファは、基底アドレスによって識
別される記憶位置からの一連の記憶位置をバッファ・メ
モリ24内に備える。各バッファは1つの宛先プロセス
23(m)に関連付けされ、したがって、宛先プロセス
23(m)へ転送するために発信元プロセス22(n)
から受けたデータは、この宛先プロセス23(m)に関
連する1つのバッファに記憶される。
【0014】バッファ管理サブシステム20はさらに、
いくつかのFIFO25(1)ないし25(M)(包括
的に参照符号25(m)によって示す)を有し、各FI
FOは、対応するインデックスが付加された1つの宛先
プロセス23(m)に関連付けされ、関連する宛先プロ
セス用の入力FIFO21からのデータが記憶されるバ
ッファ・メモリ24内のバッファを指し示すバッファ・
ポインタを記憶する。各バッファ・ポインタは、バッフ
ァ・メモリ24内のそれぞれのバッファの基底アドレス
を指し示す。入力制御モジュール26の制御下で、デー
タを入力FIFO21からバッファ・メモリ24へ転送
し、そこに記憶する際、入力制御モジュール26は、こ
のデータを受け取る宛先プロセス23(m)を識別し、
この宛先プロセス23(m)に関連するバッファ・ポイ
ンタFIFO25(m)が、このデータ用のバッファ・
メモリ24内の記憶アドレスを生成する際に使用される
バッファ・ポインタを供給することができる。一方、出
力制御モジュール27の制御下で、バッファ・メモリ内
のバッファから宛先プロセス23(m)へデータを転送
する際、出力制御モジュール27はこのデータを取り出
し、次いで、データが取り出されたバッファを指し示す
ポインタを、データが取り出された宛先プロセス23
(m)に関連するバッファ・ポインタFIFO25
(m)にロードする。したがって、データが入力制御モ
ジュール26によってバッファに記憶されてから、出力
制御モジュール27によって取り出されるまでの間、宛
先プロセス23(m)に関連するバッファ・ポインタF
IFO25(m)は、このデータが記憶されているバッ
ファを指し示すポインタを含まず、したがって、出力制
御モジュール27によってデータが取り出されるまで、
入力制御モジュール26はこのバッファを再使用しな
い。
【0015】具体的には、入力制御モジュール26は、
データを入力FIFO21からバッファ・メモリ24へ
転送し、そこでバッファに記憶する際、まず、データが
転送される宛先プロセス23(m)を識別し、これを示
すDEST PROC SEL宛先プロセス選択信号を
生成する。DEST PROC SEL信号は、宛先プ
ロセス23(m)に関連する1つのバッファ・ポインタ
FIFO25(m)がマルチプレクサ30の1つの入力
にバッファ・ポインタを供給することを可能にする。D
EST PROC SEL信号は、マルチプレクサ30
が、宛先プロセス23(m)に関連するバッファ・ポイ
ンタFIFO25(m)から供給されるバッファ・ポイ
ンタをBUF BASEバッファ基底信号としてアドレ
ス生成装置31の一方の入力に結合することもできる。
その後で、入力制御モジュール26は、入力FIFO2
1がデータをWR DATA書込みデータ信号としてバ
ッファ・メモリへ転送することができる。同時に、入力
制御モジュール26はBUF OFFSETバッファ・
オフセット信号を生成する。この信号は、アドレス生成
装置31が、WR DATA書込みデータ信号で表され
るデータが記憶されるバッファ・メモリ24内の記憶位
置を識別するWR_ADRS書込みアドレス信号を生成
する際に、BUF BASE信号と共に使用する信号で
ある。したがって、入力制御モジュール26は、WR
DATA書込みデータ信号で表される連続データ・ワー
ドをバッファ・メモリ24内の連続位置に記憶する際、
BUFBASE信号の指し示すバッファを備えるバッフ
ァ・メモリ24内の連続記憶位置を識別するようにBU
F OFFSETバッファ・オフセット信号を生成す
る。入力制御モジュール26は、データをバッファに記
憶した後、このバッファに次のポインタが記憶されてい
る場合には、宛先プロセス23(m)に関連するFIF
O25(m)がそのポインタに進むことを可能にする。
この場合、BUFBASE信号を生成するために使用さ
れたポインタはもはやFIFO25(m)には存在しな
い。
【0016】一方、出力制御モジュール27は、宛先プ
ロセス23(m)からの要求に応答して、バッファ・メ
モリ24からデータを取り出し、宛先プロセス23
(m)へ転送する際、RD_ADRS読取りアドレス信
号を生成する。この読取りアドレス信号は、宛先プロセ
ス23(m)に関連するバッファ用のバッファ・メモリ
24内の記憶位置を識別するもので、一般に、バッファ
・メモリ24内のバッファ用の第1の位置から始まる。
バッファ・メモリ24は、これに応答して、RD_AD
RS信号で識別される記憶位置のデータを含むRD D
ATA信号を生成し、出力制御モジュール27はRD
DATA信号を宛先プロセス23(m)に供給する。バ
ッファからデータが取り出された後、出力制御モジュー
ルはPTR_RETURNポインタ・リターン信号を生
成する。この信号は、データが取り出されたバッファ用
のバッファ・ポインタを含み、出力制御モジュールは、
データが取り出された宛先プロセスに関連するFIFO
25(m)にこの信号をロードする。
【0017】本発明は、いくつかの利点を提供する。特
に、本発明は、データを記憶することのできるバッファ
用のバッファ・ポインタを、リンクされたリストなど、
より複雑な構成ではなくFIFOに記憶することによっ
て、それぞれの宛先プロセスに関連するバッファを比較
的簡単な方法で管理することのできるバッファ管理サブ
システム20を提供する。
【0018】図2に関して説明したバッファ管理サブシ
ステム20にいくつかの修正を加えられることが理解さ
れよう。たとえば、複数の発信元プロセス22(n)お
よび複数の宛先プロセス23(m)と共に使用されるシ
ステムとしてバッファ管理サブシステム20を説明した
が、単一の発信元プロセスおよび/または単一の宛先プ
ロセスと共にサブシステム20を使用できることが理解
されよう。バッファ管理サブシステム20を単一の宛先
プロセスと共に使用する場合は、単一のバッファ・ポイ
ンタFIFO25(m)が設けられ、その場合、マルチ
プレクサ30を省略できることが理解されよう。
【0019】また、出力制御モジュール27を含むシス
テムとしてバッファ管理サブシステム20を説明した
が、各読取りポートが読取りアドレスを受けて読取りデ
ータを供給する、宛先プロセス23(m)の数に対応す
る複数の読取りポートをバッファ・メモリ24が有する
場合、各宛先プロセスがバッファ・メモリに直接接続さ
れ、このバッファ・メモリからデータを取り出すことが
できることが理解されよう。この場合、各宛先プロセス
23(m)は、バッファからデータを取り出した後、そ
のバッファのバッファ・ポインタをそれに関連するバッ
ファ・ポインタFIFO25(m)内にロードする。
【0020】さらに、バッファからすべてのデータが取
り出された後に、データが取り出されるバッファ用のバ
ッファ・ポインタがバッファ・ポインタFIFO25
(m)にロードされるシステムとしてバッファ管理サブ
システム20を説明したが、このバッファ・ポインタを
バッファ・ポインタFIFO25(m)により早い時間
にロードすることができ、それによって、入力制御モジ
ュール26がバッファへのデータのロードを開始するの
と同時にロード済みのデータをバッファから取り出すこ
とができることは理解されよう。一方、それぞれのバッ
ファからデータが取り出されてからいくらか時間が経過
した後、たとえば、取り出されたデータの受け取りを示
す肯定応答が下流側プロセスから受けた後に、それぞれ
のバッファ・ポインタFIFO25(m)にバッファ・
ポインタがロードされる。
【0021】また、入力制御モジュール26は、入力F
IFO21から、特定の宛先プロセス23(m)に関連
するバッファへデータを転送する際に、宛先プロセス2
3(m)に関連するバッファ・ポインタFIFO25
(m)にバッファ・ポインタはないと判定した場合、バ
ッファ・ポインタが得られるまで停止するか、あるいは
データを破棄するか、あるいは関連するFIFO25
(m)内にバッファ・ポインタが存在する宛先プロセス
23(m)用の他のデータを処理する。
【0022】さらに、それぞれの宛先プロセス23
(m)に関連するバッファ用のバッファ・ポインタを記
憶するためにFIFO25(m)を使用するシステムと
してバッファ管理サブシステム20を説明したが、スタ
ック(後入れ先出し)機構など他の機構を使用できるこ
とが理解されよう。
【0023】また、1つの宛先プロセス23(m)に関
連するFIFO25(m)を用意しているシステムとし
てバッファ管理サブシステム20を説明したが、各FI
FOを1つの発信元プロセス22(n)またはそれぞれ
の発信元プロセス・宛先プロセス対に関連付けられるこ
とが理解されよう。
【0024】任意の部分を適切なプログラムによって制
御することのできる、専用目的ハードウェアまたは汎用
コンピュータ・システム、あるいはそれらの組合せで、
本発明によるシステムの全体または一部を構築できるこ
とが理解されよう。プログラムの全体または一部を、従
来の方法でシステムの一部とし、またはシステム上に記
憶することも、あるいはネットワークまたは従来の方法
で情報を転送するその他の機構を介してシステムに供給
することもできる。また、システムに直接接続するか、
あるいはネットワークまたは従来型の方法で情報を転送
するその他の機構を介してシステムへ情報を転送するこ
とのできるオペレータ入力要素(図示せず)を使用し
て、オペレータから供給される情報によってシステムを
操作し、かつ/またはその他の方法で制御できることが
理解されよう。
【0025】上記の説明は、本発明の特定の実施形態に
限られている。しかし、本発明に様々な変形および修正
を加えて本発明の利点のうちのいくつかまたはすべてを
達成できることが明らかであろう。添付の特許請求の範
囲の目的は、本発明の真の趣旨および範囲内のこれらお
よびこのような他の変形形態および修正形態をカバーす
ることである。
【図面の簡単な説明】
【図1】本発明によって構築されたバッファ管理サブシ
ステムを含む例示的なデジタル・コンピュータ・システ
ムを示す図である。
【図2】図1に示すデジタル・コンピュータ・システム
内のバッファ管理システムの機能ブロック図である。
【符号の説明】
20 バッファ管理サブシステム 21 入力FIFO 22 発信元プロセス 23 宛先プロセス 24 バッファ・メモリ 25 FIFO 26 入力制御モジュール 27 出力制御モジュール 30 マルチプレクサ 31 アドレス生成装置
フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 トーマス・ピー・ウェバー アメリカ合衆国・01366・マサチューセッ ツ州・ピータースハム・サウス メイン ストリート・21・ボックス 234

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 宛先に供給するために発信元から受けた
    データをバッファするバッファ管理サブシステムであっ
    て、 A.複数のバッファを含むように構成されたバッファ・
    メモリと、 B.それぞれが前記バッファのうちの利用可能な1つの
    バッファを指し示すバッファ・ポインタを受け取るよう
    に構成された、複数のエントリを含むように構成された
    利用可能バッファ・ポインタ・リストと、 C.前記発信元からデータを受けたことに応答して、前
    記利用可能バッファ・ポインタ・リストからバッファ・
    ポインタを取り出し、取り出されたバッファ・ポインタ
    の指し示すバッファに前記データを記憶するように構成
    された入力制御機構と、 D.前記それぞれのバッファからデータを取り出して前
    記宛先へ転送し、かつ前記それぞれのバッファを指し示
    すバッファ・ポインタを利用可能バッファ・ポインタ・
    リストに供給するように構成された出力制御機構とを備
    えることを特徴とするバッファ管理サブシステム。
  2. 【請求項2】 利用可能バッファ・ポインタ・リストが
    FIFOバッファの形態であることを特徴とする請求項
    1に記載のバッファ管理サブシステム。
  3. 【請求項3】 利用可能バッファ・ポインタ・リストが
    スタックの形態であることを特徴とする請求項1に記載
    のバッファ管理サブシステム。
  4. 【請求項4】 出力制御機構が、前記それぞれのバッフ
    ァからのデータの取り出しを開始した後に、利用可能バ
    ッファ・ポインタ・リストを指し示すバッファ・ポイン
    タを供給するように構成されることを特徴とする請求項
    1に記載のバッファ管理サブシステム。
  5. 【請求項5】 出力制御機構が、前記それぞれのバッフ
    ァからすべてのデータを取り出した後に、利用可能バッ
    ファ・ポインタ・リストを指し示すバッファ・ポインタ
    を供給するように構成されることを特徴とする請求項1
    に記載のバッファ管理サブシステム。
  6. 【請求項6】 複数の利用可能バッファ・ポインタ・リ
    ストを備え、各利用可能バッファ・ポインタ・リスト
    が、前記宛先のうちの1つに関連付けされ、それぞれが
    前記バッファのうちの利用可能な1つのバッファを指し
    示すバッファ・ポインタを受け取るように構成された複
    数のエントリを含むように各宛先が構成され、出力制御
    機構が、取り出されたデータを供給すべき宛先に関連す
    る1つの利用可能バッファ・ポインタ・リストに前記バ
    ッファ・ポインタを供給するように構成されることを特
    徴とする、複数の宛先に供給すべきデータをバッファす
    る請求項1に記載のバッファ管理サブシステム。
  7. 【請求項7】 入力制御機構がさらに、前記バッファの
    うちの1つに記憶すべきデータを受けたときに、前記バ
    ッファ・メモリにデータを記憶する際に使用されるデー
    タを受け取る前記宛先のうちの1つに関連する1つの利
    用可能バッファ・ポインタ・リストからバッファ・ポイ
    ンタを取り出すように構成されることを特徴とする請求
    項6に記載のバッファ管理サブシステム。
  8. 【請求項8】 各記憶位置がアドレスによって識別され
    る複数の記憶位置を前記バッファ・メモリが含み、前記
    各バッファが、一連のアドレスに関連する複数の記憶位
    置を含み、各バッファ・ポインタが前記それぞれのバッ
    ファ用の基底アドレスを含むことを特徴とする請求項1
    に記載のバッファ管理サブシステム。
  9. 【請求項9】 複数のバッファを含むように構成された
    バッファ・メモリに、宛先に送るために発信元から受け
    たデータをバッファするバッファ管理方法であって、 A.それぞれが前記バッファのうちの利用可能な1つの
    バッファを指し示すバッファ・ポインタを受け取るよう
    に構成された複数のエントリを含むように構成された利
    用可能バッファ・ポインタ・リストを用意するステップ
    と、 B.前記発信元からデータを受けたことに応答して、前
    記利用可能バッファ・ポインタ・リストからバッファ・
    ポインタを取り出し、取り出されたバッファ・ポインタ
    の指し示すバッファに前記データを記憶する入力ステッ
    プと、 C.前記それぞれのバッファからデータを取り出して前
    記宛先へ転送し、前記それぞれのバッファを指し示すバ
    ッファ・ポインタを利用可能バッファ・ポインタ・リス
    トに供給する出力ステップとを含むことを特徴とするバ
    ッファ管理方法。
  10. 【請求項10】 利用可能バッファ・ポインタ・リスト
    がFIFOバッファの形態であることを特徴とする請求
    項9に記載のバッファ管理方法。
  11. 【請求項11】 利用可能バッファ・ポインタ・リスト
    がスタックの形態であることを特徴とする請求項9に記
    載のバッファ管理方法。
  12. 【請求項12】 出力ステップが、前記それぞれのバッ
    ファからのデータの取り出しが開始された後に、利用可
    能バッファ・ポインタ・リストを指し示すバッファ・ポ
    インタを供給するステップを含むことを特徴とする請求
    項9に記載のバッファ管理方法。
  13. 【請求項13】 出力ステップが、前記それぞれのバッ
    ファからのデータの取り出しが完了した後に、利用可能
    バッファ・ポインタ・リストを指し示すバッファ・ポイ
    ンタを供給するステップを含むことを特徴とする請求項
    12に記載のバッファ管理方法。
  14. 【請求項14】 複数の利用可能バッファ・ポインタ・
    リストを用意するステップを含み、各利用可能バッファ
    ・ポインタ・リストが、前記宛先のうちの1つに関連付
    けされ、それぞれが前記バッファのうちの利用可能な1
    つのバッファを指し示すバッファ・ポインタを受け取る
    ように構成された複数のエントリを含むように各宛先が
    構成され、出力ステップが、取り出されたデータを供給
    すべき宛先に関連する1つの利用可能バッファ・ポイン
    タ・リストに前記バッファ・ポインタを供給するステッ
    プを含むことを特徴とする、複数の宛先に供給すべきデ
    ータをバッファする請求項9に記載のバッファ管理方
    法。
  15. 【請求項15】 入力ステップがさらに、前記バッファ
    のうちの1つに記憶すべきデータを受けたときに、前記
    バッファ・メモリにデータを記憶する際に使用されるデ
    ータを受け取る前記宛先のうちの1つに関連する1つの
    利用可能バッファ・ポインタ・リストからバッファ・ポ
    インタを取り出すステップを含むことを特徴とする請求
    項9に記載のバッファ管理方法。
  16. 【請求項16】 各記憶位置がアドレスによって識別さ
    れる複数の記憶位置を前記バッファ・メモリが含み、前
    記各バッファが、一連のアドレスに関連する複数の記憶
    位置を含み、各バッファ・ポインタが前記それぞれのバ
    ッファ用の基底アドレスを含むことを特徴とする請求項
    9に記載のバッファ管理方法。
JP17652399A 1998-06-30 1999-06-23 空バッファを指し示すポインタを含む空きポインタfifoを使用してバッファを管理するシステムおよび方法 Pending JP2000090042A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/108918 1998-06-30
US09/108,918 US6347348B1 (en) 1998-06-30 1998-06-30 Buffer management system having an output control configured to retrieve data in response to a retrieval request from a requesting one of a plurality of destinations

Publications (1)

Publication Number Publication Date
JP2000090042A true JP2000090042A (ja) 2000-03-31

Family

ID=22324805

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17652399A Pending JP2000090042A (ja) 1998-06-30 1999-06-23 空バッファを指し示すポインタを含む空きポインタfifoを使用してバッファを管理するシステムおよび方法

Country Status (4)

Country Link
US (1) US6347348B1 (ja)
EP (1) EP0969356A3 (ja)
JP (1) JP2000090042A (ja)
KR (1) KR20000006575A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012027718A (ja) * 2010-07-23 2012-02-09 Toshiba Corp コマンド管理装置及び同コマンド管理装置を備えた記憶装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001306532A (ja) * 2000-04-19 2001-11-02 Internatl Business Mach Corp <Ibm> データ処理装置およびマルチプロセッサ装置
US7689793B1 (en) 2003-05-05 2010-03-30 Marvell Israel (M.I.S.L.) Ltd. Buffer management architecture
US20060143334A1 (en) * 2004-12-29 2006-06-29 Naik Uday R Efficient buffer management
US7668186B1 (en) * 2006-03-07 2010-02-23 Xilinx, Inc. Token ecosystem for buffer management
US8433859B2 (en) * 2008-11-25 2013-04-30 Mediatek Inc. Apparatus and method for buffer management for a memory operating

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4715030A (en) * 1986-08-04 1987-12-22 General Electric Company Local area network bridge
DE69032498T2 (de) * 1989-10-23 1999-03-04 Mitsubishi Electric Corp Zellenvermittlungseinrichtung
JPH06276214A (ja) * 1993-03-18 1994-09-30 Hitachi Ltd Stm信号とatm信号の混在処理方法およびスイッチシステム
US5506747A (en) * 1994-12-15 1996-04-09 Northern Telecom Limited Provision of FIFO buffer in RAM
US5812775A (en) * 1995-07-12 1998-09-22 3Com Corporation Method and apparatus for internetworking buffer management
US5778180A (en) * 1995-11-06 1998-07-07 Sun Microsystems, Inc. Mechanism for reducing data copying overhead in protected memory operating systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012027718A (ja) * 2010-07-23 2012-02-09 Toshiba Corp コマンド管理装置及び同コマンド管理装置を備えた記憶装置
US8473649B2 (en) 2010-07-23 2013-06-25 Kabushiki Kaisha Toshiba Command management device configured to store and manage received commands and storage apparatus with the same

Also Published As

Publication number Publication date
EP0969356A3 (en) 2001-02-14
EP0969356A2 (en) 2000-01-05
KR20000006575A (ko) 2000-01-25
US6347348B1 (en) 2002-02-12

Similar Documents

Publication Publication Date Title
US6606698B2 (en) Apparatus and method for managing data storage
US7124194B2 (en) Audiovisual distribution system for playing an audiovisual piece among a plurality of audiovisual devices connected to a central server through a network
US5337410A (en) Data stream concentrator providing attribute data storage and graphics pipeline access
EP0694847A2 (en) Data streaming in a computer system
US20090086737A1 (en) System-on-chip communication manager
JPH08297626A (ja) ネットワーク・インタフェースおよびネットワーク・インタフェースにおけるパケット処理方法
EP0374338B1 (en) Shared intelligent memory for the interconnection of distributed micro processors
US6539439B1 (en) Method and apparatus for interfacing a bus at an independent rate with input/output devices
US20080033963A1 (en) System and Method for Efficient Replication and Distribution of Data Objects
US20060047874A1 (en) Resource management apparatus
US5890203A (en) Data transfer device for transfer of data distributed and stored by striping
CN1301467C (zh) 计算机系统内部数据存取方法与相关装置
JP2000090042A (ja) 空バッファを指し示すポインタを含む空きポインタfifoを使用してバッファを管理するシステムおよび方法
JP2978519B2 (ja) 文書データ表示方法およびシステム
JP3506130B2 (ja) バッファリング装置及びバッファリング方法
JPH09501524A (ja) 計算装置用アーキテクチャ
US6189075B1 (en) Circuit for the management of memories in a multiple-user environment with access request and priority
US5706513A (en) System and method for queuing an retrieving data objects to and from a shared storage medium
GB2389206A (en) Cache control using queues to buffer requests and data
JPH02294755A (ja) データ処理装置
JP3131925B2 (ja) 広帯域通信網のデータ転送制御システム
JPH11167468A (ja) データ転送装置
JPH0652052A (ja) 仮想共用記憶方式
JPH1040179A (ja) メッセージ変換方法およびその変換方法に使用する階層的データ構造体
JPH10293718A (ja) バッファ制御装置