JP2001511281A - ポインタ、状態フラグ、メモリブロックカウンタおよびパリティを有する多重リンクリストを使用する共用メモリ制御 - Google Patents

ポインタ、状態フラグ、メモリブロックカウンタおよびパリティを有する多重リンクリストを使用する共用メモリ制御

Info

Publication number
JP2001511281A
JP2001511281A JP53580598A JP53580598A JP2001511281A JP 2001511281 A JP2001511281 A JP 2001511281A JP 53580598 A JP53580598 A JP 53580598A JP 53580598 A JP53580598 A JP 53580598A JP 2001511281 A JP2001511281 A JP 2001511281A
Authority
JP
Japan
Prior art keywords
block
data
pointer
list
queue
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
JP53580598A
Other languages
English (en)
Inventor
ラウ,ジョセフ・シー
ロイ,サブハシュ・シー
カレルツ,ディルク・エル・エム
ヴァンデヴェールト,イヴォ・エドモンド・ニコル
Original Assignee
トランスウィッチ・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by トランスウィッチ・コーポレーション filed Critical トランスウィッチ・コーポレーション
Publication of JP2001511281A publication Critical patent/JP2001511281A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 リンクリスト(LL)を利用して共用メモリを割付ける装置および方法であって、共用メモリ(RAM)に入る/から出るデータのフローを制御し、LLの数とRAMのフリーリンクリスト(FLL)に関連する情報を格納する管理RAMおよび使用されないRAMのロケーションを指すブロックポインタが使用される。ヘッドポインタ(HP)、末尾ポインタ(TP)、ブロックカウンタおよび空きフラグ(EF)が、各データリンクリストについて格納される。HPとTPはそれぞれブロックポインタと位置カウンタを含む。ブロックカウンタは、特定の待ち行列で使用されるブロックの数を含む。EFは、空待ち行列を表示する。FLLは、HP、ブロックカウンタ、およびEFを含む。入って来るデータを受取るRAMの各ページは、データを格納するロケーションを含む。ブロックの最後のページの最後のロケーションは、次のブロックのポインタにパリティ情報を加えたものを格納し、待ち行列の最後のブロックで、全てが1に設定される。バックグラウンドで使用される独立したエージェントがLL構造の完全性を監視する。

Description

【発明の詳細な説明】 ポインタ、状態フラグ、メモリブロックカウンタおよびパリティを有する 多重リンクリストを使用する共用メモリ制御 本出願は、ここでその全体を参照して援用する1966年5月17日に出願さ れた共有の米国特許出願番号08/650,910に関連する。 発明の背景 1.発明の分野 本発明はメモリ管理に関する。特に、本発明は、共用共通メモリのリンクリス ト(リンクされたリスト)に格納された複数のデータ待ち行列(キュー)を管理 する装置および方法に関する。本発明は、特に、ATMデータなどの通信情報を バッファリングする超大規模集積回路(VLSI)の使用に応用されるが、これ に限定されるものではない。 2.技術の状態 高速通信ネットワークでは、バッファ資源(リソース)の管理がネットワーク 性能を向上させる1つのメカニズムである。バッファ資源を管理する方法の1つ のグループは、共用(シェアリング)として知られているもので、単一のRAM が同時に複数の様々のチャネルによってバッファとして利用される。様々のシェ アリング方法が知られている(Velamuri,R.et al.,「A Mu lti−Queue Flexible Buffer Manager Ar chitecture」,IEEE,Document No.0−7803− 0917−0/93を参照されたい)。各方法は、ブロッキング(blocki ng)確率、ユーティライゼーシュン(utilization)、スループット および遅延に関して固有の欠点に結びついた固有の利点を持っている。しかし、 全てのシェアリング方法に共通なことは、データがRAMから適切に読み出され るように、所望の順序でRAMの適切な記憶位置にデータを向けるメカニズムが 必要であることである。よく知られているそのような1つの方法は、共通メモリ バッファを共用する多重待ち行列を管理するために使用されるリンクリスト(l ink list)を使用することである。一般的には、リンクリストは、バイ トデータを含み、ここで、各バイトはそれに付けられた少なくとも1つもポイン タ(正方向および/または逆方向)を有し、それによって待ち行列のデータの次 のバイトのロケーションを識別する。リンクリストは、典型的には、非実時間( リアルタイム)方式のマイクロプロセッサによって実行される広範な初期化手続 き(プロシージャ)およびセルフチェック手続きを含んでいる。従って、共通メ モリを共用する多重待ち行列を管理するために標準的な従来技術のリンクリスト 構造を使用することは、VLSIの実装に容易に適応できないし、更に、特に処 理と操作が実時間通信信号のデータ速度で命令される非常に高速な通信情報を処 理するのには適していない。 発明の概要 従って、メモリ割付け(メモリアロケーション)を制御する装置および方法を 提供することが本発明の目的である。 共用メモリの待ち行列を管理する新しいリンクリスト構造を提供することが本 発明の他の目的である。 共用メモリの高速実時間データの待ち行列を管理するリンクリスト構造を利用 する単一のVLSIを提供することが本発明のさらに他の目的である。 共用バッファに入るまたは共用バッファから出る非同期転送モード(ATM: Asynchronous Transfer Mode)の通信データのフロ ーを制御するリンクリスト装置および方法を提供することが本発明の更なる目的 である。 本発明の他の目的は、共用RAMの複数のリンクリストと関連する情報を含む 別個のRAMを使用して、共用RAMに入るまたは共用RAMから出るATMデ ータのVLSI制御の装置および方法を提供することである。 本発明の目的にしたがって、VLSIの中に含まれる管理RAMが、共用メモ リ(データRAM)に入るまたは出るデータの流れを制御するために設けられる 。管理RAMは、共用RAM内のy−2データリンクリスト、共用RAM内のフ リ ーリンクリスト、および使用されていない共用RAMロケーションを指すブロッ クポインタに関する情報を格納するxビット×yビットRAMとして構成される のが好ましい。各データリンクリストのxビットに格納される情報は、ヘッドポ インタ、末尾ポインタ、ブロックカウンタおよび空きフラグを含む。特にATM データの制御に応用できる好ましい実施形態では、ヘッドポインタと末尾ポイン タはそれぞれブロックポインタと位置カウンタから構成され、ここで、位置カウ ンタは、メモリの連続したページのセットで構成されるブロック内の特定のペー ジを表示し、ブロックポインタはブロック番号を指し示す。どのように構成され るかにかかわらず、ヘッドポインタはリンクリストの最初のメモリページの最初 のワードのアドレスを含み、末尾ポインタはリンクリストの最後のメモリページ の最初のワードのアドレスを含むことが好ましい。ブロックカウンタは、特定の 待ち行列で使用されているブロックの数を含み、少なくとも1つのページが待ち 行列で使用されている場合、ゼロでない値を有する。空きフラグは、待ち行列空 きフラグが待ち行列が空いていると表示する場合に、待ち行列が空いていてリン クリストの内容が無視されるべきであるかどうかを表示する。 フリーリンクリストの管理RAMに格納された情報は、ヘッドポインタ、ブロ ックポインタ、および空フラグを含むが、本発明の好ましい実施形態にしたがっ て解放された(フリーの)ブロックがフリーリストのトップに追加されるので、 末尾ポインタを含む必要はない。以下により詳細に述べるように、異なるチャネ ルからのデータがデータRAMのブロックに向けられるので、1つのリンクリス トは各チャネルのために維持される。データがデータRAMから読み出されると きに、ブロックは新しいデータを受取るために利用できるようになる。フリーリ ストに加えられるのは、これらの自由になった(解放された)ブロックである。 不使用ブロック(以下に述べる)が使用される前に、または後で、ブロック空間 がフリーリストから割当てられる。 過度の初期設定要件を避けるために、不使用ブロックポインタが、上記のよう に、管理RAMに与えられて、メモリの次の不使用ブロックを指すポインタとな る。最初に、フリーリストを含む全てのリンクリストが空いていて、不使用ブロ ックポインタはメモリのブロックの数に設定される。共用RAMメモリのブロッ クにデータが書込まれるときに、不使用ブロックポインタはデクリメントされる 。不使用ブロックポインタがゼロに等しいときに、全てのセルブロックがリンク リスト(フリーリンクリストを含む)に含まれている。 本発明の好ましい態様にしたがって、入って来るデータを受取る共用データR AMの各メモリページは(管理RAMによってRAMが管理されている)、Mの連 続したメモリアドレスで構成される。メモリのタイプによって、各アドレスロケ ーションはBビットのサイズであってよい。最も一般的なサイズは、8ビット( バイト)、16ビット(ワード)、32ビットおよび64ビットである。ページの 最初のM−1ロケーションはデータを格納するために使用される。ブロックの最 後のページの最後の(M番目の)ロケーションは、待ち行列に奇数パリティを加 えたものの次のブロックの最初のロケーションのアドレスを格納するために使用 されるのが好ましい。即ち、ブロックの最後のページのM番目のロケーションが 次のブロックポインタにパリティ情報を加えたものを格納する。待ち行列にもう ブロックがない場合には、最後のページのMロケーションは全てを1に設定され る。 本発明の他の態様にしたがって、独立したエージェントがリンクリストの完全 性を監視するために背景(バックグラウンド)で使用される。独立したエージェ ントは、リンクリストブロックカウンタに不使用ブロックを加えた全てのカウン トの和を監視して、それが共通RAMのメモリブロックの総数に等しいか確認す る。等しくなければ、エラーが宣言される。同様に、独立したエージェントは、 下記のエラー条件について管理RAMに格納された各リンクリストを検査する: 即ち、ヘッドポインタと末尾ポインタが等しく、且つブロックカウンタが1の値 でない;また、ヘッドポインタと末尾ポインタが違っていて、ブロックカウンタ が1である;および、ブロックカウンタがゼロである。必要であれば、独立した エージェントは、また、各ブロックの最後のページのM番目のロケーションに格 納されたブロックポインタを監視し、パリティエラーを決定し、および/または パリティまたはCRCを用いてエラーを決定することができる。 本発明の方法および装置を使用して、ATMセル管理について4つの動作が定 義される:即ち、セル書込み、セル読み出し、待ち行列クリア、およびリンクリ スト監視である。セル書込み動作においては、セルが待ち行列に格納される。特 に、待ち行列番号n(ポートwのために優先順位vのセルを格納する)で格納さ れるためにATMセルがポートwで受取られる時に、最初に待ち行列が空いてい るかどうかについて決定がされる。空いていなければ、待ち行列状態(即ち、管 理RAMに格納された末尾ポインタと位置カウンタ)が得られ、新しいブロック を待ち行列に追加する必要があるかどうかについて決定がされる。新しいブロッ クが必要でなければ、セルは末尾ポインタ位置によって示されたロケーションに 書込まれ、管理RAMのその待ち行列のための末尾ポインタ位置カウンタが更新 される。これがブロックの最後のページであれば、そのページのM番目のロケー ション(共用メモリの)は全てを1に設定される。待ち行列が空いたか、または 、前のセルがブロックの最後のページに書込まれたかいずれかの理由で、新しい ブロックが必要な場合には、ブロックが得られなければならない。それが待ち行 列の最初のブロックであれば、最初の待ち行列パラメーラが格納される。それが リンクリストの最初のブロックでなければ、ブロックがフリーリストから得られ 、フリーリストは更新される。または、ブロックは不使用ブロックから得られ、 不使用ブロックのブロックポインタが更新される。次に、セルが待ち行列に書込 まれ、末尾ポインタ、位置カウンタ、および待ち行列のブロックカウンタが管理 RAMで全て更新される。 セル読み出し動作は、セルが待ち行列から読み出される場合に利用される。セ ル読み出し動作では、その待ち行列のヘッドポインタとヘッドポインタ位置カウ ンタで表示されるセルが、待ち行列から読み出される。待ち行列からセルを読み 出した後で、そのセルがブロックの最後のセルであったか、および/または待ち 行列の最後のセルであったかについて決定がされる。どちらでもない場合には、 次に、待ち行列状態が更新され(即ち、ヘッドポインタ位置カウンタが変えられ る)、別のセル読み出し動作が待機される。セルがブロックの最後のセルであれ ば、次に、待ち行列状態は、好ましくは、ポインタのパリティを検証することに よって(パリティビットを用いて)その正当性について検査され、ヘッドポイン タおよびヘッドポインタ位置カウンタを変えることで更新される。フリーリスト は、フリーリストのヘッドに解放されたブロックを付け加えることで更新され、 フリ ーリストブロックカウンタおよびリンクリストブロックカウンタが更新される。 セルが待ち行列の最後のセルであれば、ブロックの最後のセルに対する手順が続 いて行われ、待ち行列空フラグが設定される。 待ち行列クリア動作は、待ち行列をクリアする目的のために与えられるマイク ロプロセッサ命令である。待ち行列クリア動作が表示される時に、待ち行列状態 は待ち行列フラグを設定することで更新され、待ち行列のブロックが同様に更新 されるフリーリストのヘッドに付け加えられる。 リンクリスト監視動作は、セル書込み、セル読み出し、および待ち行列クリア 動作が行われていない時にはいつでも、リンクリスト構造の完全性を監視するエ ージェントである。先のように設定されると、リンクリスト監視動作は、リンク リストブロックカウンタに不使用ブロックを加えた全てのカウントの和が共通R AMのメモリブロックの総数に等しいこと、ヘッドポインタと末尾ポインタが等 しい時にブロックカウンタが1に設定されていること、およびヘッドポインタと 末尾ポインタが違っているときにブロックカウンタが1に設定されていないこと などを検査することで、エラーについてリンクリストを監視する。 本発明の更なる目的および効果は、与えられた図面に関連して行われる詳細な 説明を参照することで当業者には明らかになるであろう。 図面の簡単な説明 図1は、本発明のリンクリストメモリ管理RAMを組み込んだ装置のブロック 図である。 図2は、図1のメモリ管理RAMの構造を示す図である。 図3aは、図1の装置の共用データメモリの1例の図表である。 図3bは、図3aに示される1つのブロックのページの詳細図である。 図3cは、図3aの共用データメモリの例を管理する図1のメモリ管理RAM に含まれる情報の1例である。 図4a〜図4dは、図1の装置のフローコントローラで実行される書込み、読 み出し、待ち行列クリア、およびリンクリスト監視動作のフローチャートである 。 図5a〜図5dは、本発明による書込み、読み出し、クリア、および監視状態 マシンの状態マシン図である。 好ましい実施形態の詳細な説明 本発明は、ここで、米国特許出願第08/650,910号に記載されている ATM宛先(デスティネーション)スイッチの物理レイヤVLSI部分を参照に して説明されるが、これに限定されるものではない。図1で理解されるように、 さらに親出願で説明されているように、ATM宛先スイッチ100の物理レイヤ 部分130は、UTOPIAインタフェース150、管理RAM162、フロー コントローラ166、マイクロプロセッサインタフェース167、チャネルイン タフェースバッファ170、およびRAMインタフェース175を含むことが好 ましい。フローコントローラ166は、UTOPIAインタフェース160、管 理RAM162、マイクロプロセッサインタフェース167、チャネルインタフ ェースバッファ170、およびRAMインタフェース175に結合される。UT OPIAインタフェースは、一般に、バイト幅フォーマットのATMデータのセ ルを受取り、それをフローコントローラ166に送る。セルの宛先(親出願に述 べられているように)とセルの優先順位に基づいて、フローコントローラ166 はそのセルを適当な出力バッファ170に書込む。出力バッファは、1つのセル を読込みながら別のセルをバッファに読み出すことが矛盾なくできるように、少 なくとも2つのATMセルを格納することができるのが好ましい。バッファ空間 が特定の時間に特定のセルに利用できなければ、フローコントローラ166は、 以下により詳細に述べるように、管理RAM162に含まれる情報に基づいてA TMセルをRAMインタフェース175を介して共用RAM180(チップに実 装されたものでも、また、実装されないものでもよい)の所望のロケーションに 転送する。出力バッファ170のメモリ空間がセルに利用できるようになった時 に、フローコントローラ166は共用RAM180からデータを読み出し、それ をバッファ170に入れる。バックグラウンドで、UTOPIAインタフェース からデータを受取らないときには、そして、共用RAM180からのデータの読 み出しまたは共用RAM180へのデータの書込み、またはバッファへのデータ の書込みをしないときには、フローコントローラ166は、以下により詳細に述 べるように、管理RAMに含まれるリンクリスト構造の完全性(integri ty)を監視する。更に、フローコントローラ166は、マイクロプロセッサイ ンタフェース167を介して受取られるマイクロプロセッサの命令に応答して様 々の機能を行うことができる。 管理RAM162は様々の機能を行うことができるが、それには、親出願に述 べられているATMセルヘッダの処理を手助けする情報を供給することが含まれ ている。しかし、本発明の目的のために、管理RAMは、または少なくともその 一部は、共用RAM180に設定されるy−2リンクリストを管理するために( y−2はv優先順位のwポート倍の積に等しい)、xビット×yワードRAMと して与えられるのが好ましい。従って、図2から理解されるように、y−2デー タ待ち行列のためのリンクリスト情報構造は、ヘッドポインタ、末尾ポインタ、 ブロックカウンタ、およびy−2データ待ち行列の各々の待ち行列空フラグ、フ リーリスト(free list)のためのフリーリストブロックポインタとブ ロックカウンタおよび待ち行列空フラグ、メモリの不使用ブロックのためのブロ ックポインタを含む。各ヘッドポインタ及び末尾ポインタは、好ましくはブロッ クポインタ及び位置カウンタを含み、ブロックポインタはメモリ内のブロックを 指定するために使用され、位置カウンタはメモリブロック内のページを追跡(ト ラック)するために使用される。従って、例えば、53バイトデータのATMセ ルが共用メモリに格納され、且つ各セルが1「ページ」に格納される場合には、 4つの連続したページを持つブロックが、ブロックのページを参照するための2 ビットカウンタである位置カウンタと共に配列される。各待ち行列のためのブロ ックカウンタが、待ち行列内に含まれるブロックの数を参照するために用いられ る。待ち行列空フラグは、設定されているときには、待ち行列が空いていること 、およびブロックカウンタと同様に待ち行列内に含まれるポインタを無視できる ことを示す。 先に提示したように、各リンクリスト待ち行列のヘッドポインタは、共用メモ リの待ち行列の最初のメモリページの最初のワードのアドレスを含んでいる。各 リンクリスト待ち行列の末尾ポインタは、待ち行列の最後のメモリページの最初 のワードアドレスを含んでいる。共用メモリの各メモリページは、Mの連続した メモリアドレスから成っている。メモリのタイプによって、各アドレスロケーシ ョンは、Bビットのサイズにできる。ここで、共通のサイズは8ビット(バイト) 、16ビット(ワード)、32ビット、または64ビットである。本発明の好まし い実施形態によって、アドレスロケーションは長さが16ビットであり、1ペー ジの最初のM−1ロケーションが格納された情報を含んでいる。ブロックの最後 のページのM番目ロケーションが次のブロックのポインタを格納するために使用 され、そのブロックポインタは次のブロックに奇数のパリティビットを加えたも のの最初のロケーションに設定される。ブロックが待ち行列の最後のブロックで ある場合には、最後のブロックの最後のページのM番目のロケーションの全てが 1に設定される。ページがブロックの最後のページでもなくまた待ち行列の最後 のブロックでもない場合には、ページのM番目のロケーションは使用されない。 ATM通信データに関連して使用される本発明の好ましい実施形態では、各ペー ジは長さが32ワード(即ち、M=32)で、各ワードは16ビットである。し たがって、53バイトのATMセルは、予備のメモリ空間を持って単一ページに 格納することができる。いくつかの用途では、ATMセルのデータペイロード部 だけ(即ち、48バイト)とオーバヘッド部でない(即ち、5バイト)が共用メ モリに格納されることを理解すべきである。経路指定(ルーティング)情報が追 加されるスイッチなどの他の用途では、53バイトよりも多いセルを格納しても よい。それにもかかわらず、32ワードのページで、システムのアドレス指定は 簡単化される。 共用メモリのメモリ構成の例が図3aに示される。図3aにおいて、フリーリ スト待ち行列および不使用ブロックと同様に、2つのアクティブリンクリストデ ータ待ち行列が表わされている。特に、第1待ち行列のために、メモリブロック 512、124、および122が一緒にリンクされているのが示されている。第 2待ち行列のためにメモリブロック511、125、および123が一緒にリン クされ、フリーリスト待ち行列のためにメモリブロック510〜125が一緒に リンクされ、そしてメモリブロック121〜1が不使用である。本発明の好まし い実施形態では、各ページは32の16ビットワードを含んでいることが理解さ れるだろう。従って、メモリブロック512(図3bにより詳細に示される)の 32番目(M番目)ワードはメモリブロック124を指し示すポインタ(最下位 ビット側の10ビット)を含み、メモリブロック124の32番目ワードはメモ リブロック122を指し示すポインタを含み、メモリブロック122の32番目 のワードは全てが1になっており、これによって、待ち行列の最後のワードであ ることを示している。同様に、メモリブロック511の32番目のワードはメモ リブロック125を指し示すポインタを含み、メモリブロック125の32番目 のワードはメモリブロック123を指し示すポインタを含み、メモリブロック1 23の32番目のワードは全てが1になっており、これによってその待ち行列最 後のワードであることを示している。 図3aのフリーリストは、ブロック510からブロック126に及んでいるの が理解される。不使用ブロックはブロック121からブロック1にわたっている 。 図3cを参照すると、図3aの状態にある共用メモリの管理に関連する管理R AMの詳細が示されている。特に、リンクリスト♯1の情報が示されており、ヘ ッドポインタは、512に等しい値を持つブロックポインタおよびブロック格納 データのメモリの第1ページを示す「00」に設定された位置カウンタを有する 。リンクリスト♯1情報の末尾ポインタは、122に等しい値を持つブロックポ インタおよびブロック122の全てのページが使用されていることを示すために 「11」に設定された位置カウンタを有している。リンクリスト♯1の情報のブ ロックカウンタは3の値に設定され、待ち行列空フラグは設定されていない(即 ち、ゼロに等しい)。リンクリスト♯2の情報は、ヘッドポインタが511に等 しい値を持つブロックポインタおよびデータの最初がブロックの第2ページで起 きる(即ち、第1ページは既にブロックから読み出された)ことを示すための「 01」に設定された位置カウンタを含んでいるのが理解される。リンクリスト♯ 2情報の末尾ポインタは、123に等しい値を持つブロックポインタおよびブロ ックの最後のページにデータがないことを示す「01」で設定された位置カウン タを含んでいる。リンクリスト♯2情報のブロックカウンタも3の値に設定され 、待ち行列空フラグは設定されていない。リンクリスト♯Nの情報については、 ヘッドポインタおよび末尾ポインタおよびブロックカウンタの値は示されていな いが、リンクリスト♯Nの待ち行列空フラグは設定されている(1に等しい)の で、 これによって、ポインタとブロックカウンタは有効なデータを格納していないこ とを示している。同様に、他のリンクリストの情報の詳細は示されていないが、 重要な唯一のデータは、これらのリンクリストの全てに関係した待ち行列空フラ グが1に等しく、これらのリンクリストに関して有効なデータが格納されていな いことを示している。フリーリスト情報のヘッドポインタは、値510に設定さ れたブロックポインタと385のブロックカウントを有する。フリーリストはデ ータを含むので、フリーリストの待ち行列空フラグは設定されていない。最後に 、不使用待ち行列に関係するブロックポインタは121の値に設定されているの が示されている。理解されることであるが、性能(パフォーマンス)を向上する ために、フリーリストヘッドポインタおよびブロックカウンタの情報は、一連の フリップフロップで実現されるのが好ましく、従って、図4a〜図4bに関連し て以下に述べられる目的に容易に利用できる。待ち行列空フラグも、また、同様 に実現されることが好ましい。 待ち行列空フラグと不使用ブロックポインタを与えることで、過度の初期設定 要件が必要でなくなる。先に言及したように、待ち行列空フラグは、リンクリス トについて有効なデータがないことおよびそのリンクリストのヘッドポインタと 末尾ポインタおよびそのリンクリストのブロックカウンタを無視できることを示 す。不使用ブロックポインタは共用メモリの次の不使用ブロックを指し示すため に与えられる。メモリページが書込まれている、即ち使用されているときには、 不使用ブロックポインタは、ゼロの値になるまでデクリメントされる。その点で 、全てのセルブロックはリンクリストに含まれる(フリーリストを含めて)。先に 述べたように、ブロックが共用メモリから読み出される時に、利用できるブロッ クがフリーリストに追加される。リンクリストに追加するための新しいブロック が必要な時に、ブロック空間をフリーリストからか、不使用ブロックからいずれ かから取り入れることができ、フリーリストからの利用できるブロックは、不使 用ブロックが使用される前か後のいずれかに取込んでよい。 次に、図4aを参照すると、図1の装置100のフローコントローラ166の 動作のフローチャートが、共用メモリへのデータ書込みに関して示されている。 動作はフローチャート形式で示されているが、本発明の好ましい実施形態によっ て、その動作はハードウェアで実現されることが理解される。フローコントロー ラ166がバッファに直接に書込むことのできないATMセルを受取っていると 決定した時に、そのセルを受取るべき待ち行列(キュー)が空いているかどうか について、フローコントローラは200で(その待ち行列に関連する管理RAM 待ち行列空フラグを検査することで)決定する。待ち行列が空いていなければ、 202で、その待ち行列に対する待ち行列状態(即ち、末尾ポインタと位置カウ ンタ)が得られ、204で、待ち行列に追加される新しいブロックが必要である かどうか(即ち、位置カウンタが「11」に等しいか)について決定がされる。 新しいブロックが必要でなければ、206で、セルは、その待ち行列の末尾ポイ ンタ位置カウンタ(管理RAMで格納される)で示される共用RAMロケーショ ンに書込まれ、208で、その待ち行列の末尾ポインタ位置カウンタが更新され る。210で、セルがブロックの最後のページに書込まれているかどうかについ て決定がなされる。もしそうであれば、212で、フローコントローラは、ペー ジのM番目のロケーション(共用メモリの)に全て1(オールワン)のワードを 書込む。 200で待ち行列が空いているので入ってくるセルを格納するために、共用R AMの新しいブロックが必要であるということが決定されると、214において フリーリストか、不使用RAMかいずれかからブロックが得られる。ブロックが フリーリストから得られた場合には、216で、フリーリスト情報はフリーリス トのヘッドポインタを変えること(即ち、得られたブロックの最後のページのM 番目のロケーションに格納されている値にヘッドポインタを設定する)によって およびフリーリストに関連するブロックカウンタをデクリメントすることによっ て更新される。ブロックが不使用RAMから得られた場合には、不使用RAMの ブロックポインタが216でデクリメントされる。それにもかかわらず、218 で、セルは待ち行列に書込まれ、220で、待ち行列の末尾ポインタとブロック カウンタが両方とも管理RAMで更新され(ブロックカウンタは1の値に設定さ れる)、待ち行列空フラグが変る。 204で、リンクリストの末尾ポインタ位置カウンタが全ての末尾ブロックが データを格納していることを示したので、入って来るセルを格納するために共用 RAMが必要であると決定された場合には、222で、ブロックがフリーリスト か不使用RAMから得られる。ブロックがフリーリストから得られる場合には、 224でフリーリストのヘッドポインタを変えること(即ち、ヘッドポインタを 得られたブロックの最後のページのM番目のロケーションに格納された値に設定 すること)およびフリーリストに関連するブロックカウンタをデクリメントする ことで、フリーリストが更新される。ブロックが取り出されてフリーリストが空 きになった場合には、フリーリストの待ち行列空フラグが設定される。ブロック が不使用RAMから得られる場合には、不使用RAMのブロックポインタは22 4でデクリメントされる。それにもかかわらず、228で、セルは待ち行列に書 込まれ、230で、待ち行列の末尾ポインタとブロックカウンタは両方とも管理 RAMで更新される。 セル読み出し動作に関するフローコントローラ動作の詳細(即ち、バッファが セルを受取るために利用できるので、セルが待ち行列から読み出される場合)が 図4bに示されている。特に、データバッファが利用できるようになる時に、2 50でフローコントローラが利用できるデータバッファのために管理RAMのヘ ッドポインタと末尾ポインタを読み出す。次に、252で、フローコントローラ はヘッドポインタによって示された共用メモリのロケーションにあるセルを共用 メモリから読み出し、セルをデータバッファに供給する。データが読み出された 後で、254でフローコントローラが(ヘッドポインタと末尾ポインタに基づい て)セルが待ち行列の最後のセルかどうかを決め、256で(ヘッドポインタ位 置カウンタに基づいて)セルがブロックの最後のセルかどうかを決める。どちら でもない場合には、次に258で、待ち行列状態が更新され(即ち、ヘッドポイ ンタ位置カウンタが変更される)、別のセル読み出し動作が待機される。254 で、セルが待ち行列の最後のセルであると決定される場合には、260で、フリ ーリストのヘッドポインタ(管理RAMから得られる)が解放されたブロックの 最後のページの最後のワードに挿入される。次に、262で、管理RAMのフリ ーリストがフリーリストのヘッドに解放されたブロックを付け加えること、即ち 、フリーリストブロックポインタとブロックカウンタを更新することで、更新さ れる。264で、待ち行列空フラグが、今はブロックを持たないリンクリストの ために 設定される。解放されたブロックを追加する前にフリーリストが空いていた場合 には、フリーリストは初期化されなければならないし(適当なヘッドポインタと ブロックカウンタで)、待ち行列空フラグは264で変更されなければならない 。更に、解放されたブロックを追加する前にフリーリストが空いていた場合には 、共用メモリの解放されたブロックの最後のワードは全てが1に設定されるべき である。 256で、共用メモリから読み出されたセルがブロックの最後であると決定さ れる場合には、次に266で、管理RAMから得られるフリーリストのヘッドポ インタが解放されたブロックの最後のページの最後のワードに挿入される。次に 、268で、ヘッドポインタのブロックポインタと位置カウンタを変える(共用 メモリから読み出されるメモリのページの最後のワードに含まれる値に)こと、 およびブロックカウンタを決めることでリンクリストの待ち行列状態が更新され る。再び、理解されることであるが、解放されたブロックを追加する前にフリー リストが空いていた場合には、フリーリストは初期化され(適当なヘッドポイン タとブロックカウンタで)、且つ待ち行列空フラグは変えられなければならず、 且つ共用メモリの解放されたブロックの最後のワードは全てが1に設定されなけ ればならない。また、理解されることであるが、270で、本発明の好ましい実 施形態にしたがって、ブロックの最後のページのM番目のロケーションのポイン タを得る際に、ポインタについてパリィティチェックが行われる。272で、計 算されたパリティ値が、ポインタと一緒に格納されているパリティビットと比較 される。比較に基づいて、274で、パリティエラー条件が宣言され、割り込み メッセージとしてマイクロプロセッサインタフェースポート167(図1)を介 してマイクロプロセッサ(図示されない)に送られる。パリティエラーが発見さ れた時に、マイクロプロセッサは状況を破局的エラーとして扱い、管理RAMと データRAMを再初期化するのが好ましい。 図4cは、待ち行列クリアマイクロプロセッサ命令(マイクロプロセッサイン タフェース167を介して受取られる)に関する動作を述べる。待ち行列クリア 動作が表され時に、270で、リンクリストの待ち行列状態が待ち行列空フラグ を設定することで更新され、272で、待ち行列のブロックが、セル読み出し動 作に関連して上に述べた(図4b)方法で更新されるフリーリストのヘッドに付 け加えられる。 図4dに示されるリンクリスト監視動作は、セル書込み、セル読み出し、およ び待ち行列クリア動作が行われていない時にはいつでもリンクリスト構造の完全 性を監視するハードウェアのエージェントである。リンクリスト監視動作は、4 つの異なるエラー条件を監視するのが好ましい。特に、280で、それらのリン クリストの待ち行列空フラグが設定されていない全てのリンクリストブロックカ ウンタ(フリーリストを含む)のカウントが不使用ブロックと一緒に加算され、 共通RAMのメモリブロックの総数と比較される。和が共通RAMのメモリブロ ックの総数に等しくない場合には、281で、マイクロプロセッサ割り込みビッ トをトリガすることでエラー条件が宣言される。282で、各リンクリストのヘ ッドブロックポインタと末尾ブロックポインタが比較される。284で、ヘッド ブロックポインタと末尾ブロックポインタが等しいと決定されれば、286で、 ブロックカウンタが検査され、1に等しくなければ、287で、エラー条件が宣 言される。284で比較されたときに、ヘッドブロックポインタと末尾ブロック ポインタが等しくなければ、288で、ブロックが検査され、ブロックカウント が1に等しければ、289で、エラー条件が宣言される。290で、待ち行列空 フラグが設定されていない各リンクリストのブロックカウンタが検査される。そ して、ブロックカウンタがゼロに等しければ、291で、エラー条件が宣言され る。 本発明の好ましい実施形態によって、フローコントローラの書込み、読み出し 、クリア、および監視の動作は、VHDLコンパイラの使用を介してハードウェ アのゲートを合成するHDLコードを使用してつくられるハードウェアで実現さ れる。図5a〜図5dは、HDLコードに対応する状態(ステート)マシン図で あり、書込み状態マシン(図5a)、読み出し状態マシン(図5b)、クリア状態マ シン(図5c)、および監視状態マシン(図5d)を含む。そのコードを使用して つくられたゲートは、スタンダードセル技術であっても、またはゲートアレイ技 術であってもよい。 本発明は、厳密にハードウェアの実施に限定されることを意図されるものでは なく、関連するファームウェア(例えば、ROM)でマイクロプロセッサを使用 するメモリ管理に応用することも意図されることは理解されるべきである。 これまで、共用メモリを管理する装置および方法が説明され図示された。本発 明の特定の実施形態を説明したが、本発明はそれに限定されることが意図される ものではなく、本発明は当技術で可能である範囲で広いものであり、明細書も同 じように読まれることが意図される。したがって、本発明は、VLSIで実施さ れるATM装置に関して説明したが、本発明はもっと広く適用できることは理解 されるであろう。また、RAMのサイズなどの具体的な詳細を開示したが、本発 明の範囲から逸脱することなく、その詳細は変えることができることは理解され るであろう。例えば、データのy−2リンクリストを管理するxビット×yワー ドのサイズのRAMの管理ついて説明されたが、違ったサイズの管理RAMを想 定することもできることは理解されるであろう。従って、例えば、不使用ブロッ クポインタのために独立したワードを使用する代わりに、不使用ブロックポイン タをフリーリストの「末尾ポインタ」のロケーション(それ自身は末尾ポインタ を使用しない)に置くことができ、それによって、y−1リンクリストのデータ を管理するためにxビット×yワードの管理RAMを提供することができる。更 に、リンクリストに関係する情報にヘッドポインタ、末尾ポインタ、ブロックカ ウンタ、および待ち行列空フラグをその順序で設けるよりもむしろ、リンクリス トアの変数を再順序付けすることができる。同様に、各ワードが16ビットの長 さで深さが32ワードのページを持つ共用メモリを設ける代わりに、違った長さ と深さのメモリを利用できることは理解されるであろう。また、前のブロックの 最後のページの最後のワードに次のブロックを指すポインタを置くよりもむしろ 、ポインタを違ったロケーションに置くことができることは理解される。更にま た、様々な動作に関連して具体的なフローチャートが開示されたが、動作の様々 な態様が違った順序で行うことができることは理解されるであろう。更に、ハー ドウェアで動作するゲートアレイをつくるための特定のコードを開示したが、ハ ードウェアをつくるために他のコードが利用できること、およびハードウェアお よび/またはファームウェアを違った方法でつくることができることは、当業者 は理解すべきである。更に、本発明は、管理RAMと共用データRAMについて 独立 した別個のRAMに関して述べたが、両方のメモリは大きな単一メモリ手段の一 部であってもよいことは理解されるであろう。従って、請求の範囲で請求される 精神と範囲から逸脱することなく、提供された発明にさらに他の変更を加えるこ とができることは当業者には理解されるであろう。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 カレルツ,ディルク・エル・エム ベルギー王国ベ―3110 ロツエラー,ヘヴ ェストラート 13 (72)発明者 ヴァンデヴェールト,イヴォ・エドモン ド・ニコル ベルギー王国ベ―3500 ハゼルト,ヴール クルイセンラーン 1

Claims (1)

  1. 【特許請求の範囲】 1. a)複数のデータ記憶ロケーションを有する共用メモリ手段と、 b)前記データを受取り、前記共用メモリ手段の前記複数のデータ記憶ロケー ションの所望のロケーションに前記データを送る制御手段であって、前記データ が複数のリンクリストの形で前記複数のデータ記憶ロケーションに格納され、各 リンクリストがヘッドを有している制御手段と、 c)前記複数のリンクリストの各々に関する情報を格納する管理メモリ手段で あって、前記情報が各リンクリストのヘッドポインタと待ち行列空フラグを含み 、特定のそれぞれのリンクリストの各々の前記ヘッドポインタがその特定のリン クリストのそれぞれの前記ヘッドのロケーションを指し示し、さらにリンクリス トの前記待ち行列空フラグがそのリンクリストはその中には有効なデータを含ま ないことを示す管理メモリ手段と、 を備えたメモリにおけるデータの記憶を管理する装置。 2. 前記制御手段が前記共用メモリ手段からデータを読み出し、 前記データ記憶ロケーションの少なくとも複数がフリーリンクリストの形であ り、前記フリーリンクリストがデータが前記制御手段によって読み出されたデ− タ記憶ロケーションと関連があり、 前記管理メモリ手段が前記フリーリンクリストのポインタと待ち行列空フラグ を含む請求項1に記載の装置。 3. a)複数のデータ記憶ロケーションを有する共用メモリ手段と、 b)前記データを受取り、前記共用メモリ手段の前記複数のデータ記憶ロケー ションの所望のロケーションに前記データを送るとともに、前記共用メモリ手段 からデータを読み出す制御手段であって、前記データが複数のリンクリストの形 で前記複数のデータ記憶ロケーションに格納され、各リンクリストがヘッドを有 している制御手段と、 c)前記複数のリンクリストの各々に関する情報を格納する管理メモリ手段で あって、前記情報が各リンクリスト待ち行列のヘッドポインタを含み、特定のそ れぞれのリンクリストの各々の前記ヘッドポインタがその特定のリンクリストの それぞれの前記ヘッドのロケーションを指し示す管理メモリ手段と、 を備え、 初期化に際して、前記共用メモリ手段の前記データ記憶ロケーションの少なく とも複数が使用されておらず、ユーティライゼーションの後に、前記データ記憶 ロケーションの少なくとも複数がフリーリンクリストの形であり、前記フリーリ ンクリストが前記制御手段によって読み出されたデータ記憶ロケーションと関連 し、 前記管理メモリ手段が前記使用されていないデータ記憶ロケーションの少なく とも1つを指すポインタを含み、前記管理メモリ手段が前記フリーリンクリスト のポインタを含む、メモリにおけるデータの記憶を管理する装置。 4. 少なくとも初期化に際して、前記共用メモリ手段の前記データ記憶ロケー ションの少なくとも複数が使用されておらず、 前記管理メモリ手段が前記使用されていないデータ記憶ロケーションの少なく とも1つを指すポインタを含む前出の請求項のいずれかに記載の装置。 5. 前記共用メモリ手段が複数のブロックに配列され、各ブロックが複数の前 記データ記憶ロケーションを有し、 前記複数のリンクリスト待ち行列の各々と関連する前記管理メモリ手段に格納 された前記情報が前記複数のリンクリスト待ち行列の各々のためのブロックカウ ンタを含み、各ブロックカウンタがそのリンクリスト待ち行列に含まれるブロッ クの数をカウントする前出の請求項のいずれかに記載の装置。 6. 前記複数のブロックの各々が複数の連続したページとして配列され、各ペ ージが複数の前記データ記憶ロケーションを有し、 前記ヘッドポインタの各々が、ブロックを指し示すブロックポインタと前記ブ ロックのページを指し示すページカウンタを含む請求項5に記載の装置。 7. データを格納する各ブロックが、(i)リンクリストの次ぎのブロックを 指すポインタと(ii)ブロックがリンクリストの最後のブロックであることを表 示する標識と、の1つを含む少なくとも1つのロケーション含む請求項5に記載 の装置。 8. リンクリストの次のブロックを指す前記ポインタが、前記ポインタのパリ ティビットを含む請求項7に記載の装置。 9. データを格納する各ブロックが、(i)リンクリストの次ぎのブロックを 指すポインタと(ii)ブロックがリンクリストの最後のブロックであることを表 示する標識と、の1つを含むそのブロックの最後のページの少なくとも1つのロ ケーション含む請求項6に記載の装置。 10. 前記情報が前記データを含む各リンクリストの末尾ポインタを含む前出 の請求項のいずれかに記載の装置。 11. 前記情報が、前記データを含む各リンクリストの末尾ポインタを含み、 前記複数のブロックの各々が複数の連続したページとして配列され、各ページ が複数の前記デ−タ記憶ロケーションを有し、 前記ヘッドポインタの各々が、ブロックを指し示す第1ブロックポインタと前 記ブロック内のページを指し示すページカウンタとを含み、 前記末尾ポインタの各々が、末尾ブロックを指し示す第2ブロックポインタと 前記末尾ブロック内のページを指し示すページカウンタとを含む請求項6に記載 の装置。 12. 前記データがセルフォーマットで受取られるATMデータを含み、前記 ページの各々がATMセルに含まれるデータの全てを格納するのに十分な前記デ ータ記憶ロケーションを含む請求項6に記載の装置。 13. 各ページが32の16ビットワードロケーションを含む請求項12に記 載の装置。 14. 前記制御手段が前記共用メモリ手段からデータを読み出し、 少なくとも複数の前記データ記憶ロケーションがフリーリンクリストの形であ り、前記フリーリンクリストはデータが前記制御手段によって読み出されたデー タ記憶ロケーションと関連し、 前記管理メモリ手段が、ポインタ、ブロックカウンタ、および前記フリーリン クリストのための待ち行列空フラグを含み、 前記共用メモリ手段の少なくとも複数の前記データ記憶ロケーションが使用さ れていないで、 前記管理メモリ手段が、前記少なくとも1つの前記使用されていないデータ記 憶ロケーションを指すポインタを含み、 前記制御手段が、データ含む各リンクリストの前記ブロックカウンタ、前記フ リーリンクリスト、および前記使用されていないポインタのカウントの和を前記 共用メモリ手段のブロックの数と比較する手段を含む請求項5に記載の装置。 15.前記制御手段が、さらに、カウントの前記和が前記共用メモリ手段のブロ ックの数に等しくない場合に、エラー信号を生成する手段を含む請求項14に記 載の装置。 16. 前記制御手段が、データを含む各リンクリストについて、前記末尾ポイ ンタを前記ヘッドポインタと比較する手段を含む請求項10に記載の装置。 17. 前記制御手段が、さらに、データを含むリンクリストの前記末尾ポイン タと前記ヘッドポインタが同一ブロックを指し示し、且つ前記リンクリストの前 記ブロックカウンタが1に等しくない場合に、エラー信号を生成する手段を含む 請求項16に記載の装置。 18. 前記制御手段が、さらに、データを含むリンクリストの前記末尾ポイン タと前記ヘッドポインタが違ったブロックを指し示し、且つ前記リンクリストの 前記ブロックカウンタが1に等しい場合に、エラー信号を生成する手段を含む請 求項16に記載の装置。 19. 前記制御手段が、さらに、待ち行列空フラグが設定されていないリンク リストの各ブロックカウンタのカウントを検査し、且つカウントがゼロで待ち行 列空フラグが設定されていない場合に、エラー信号を生成する手段を含む請求項 5に記載の装置。 20. 前記制御手段と前記管理メモリ手段が単一集積回路に含まれる前出の請 求項のいずれかに記載の装置。 21. 前記管理メモリ手段が、前記ポインタ、ブロックカウンタ、および前記 フリーリンクリストのための待ち行列空フラグを含み、 前記制御手段が、データを含む各リンクリストの前記ブロックカウンタ、前記 フリーリンクリスト、および前記使用されていないポインタのカウントの和を前 記共用メモリ手段のブロックの数と比較する手段、およびカウントの前記和が前 記共用メモリ手段のブロックの前記の数に等しくない場合にエラー信号を生成す る手段を含む請求項5に記載の装置。 22. 前記制御手段が、データを含む各リンクリストについて前記末尾ポイン タを前記ヘッドポインタと比較する手段、および (i)データを含むリンクリストの前記末尾ポインタと前記ヘッドポインタが 同一ブロックを指し示し、且つ、前記リンクリストの前記ブロックカウンタが1 に等しくないか、または、 (ii)データを含むリンクリストの前記末尾ポインタと前記ヘッドポインタが 違ったブロックを指し示し、且つ前記リンクリストの前記ブロックカウンタが1 に等しいか、 のいずれかの場合にエラー信号を生成する手段を含む請求項10に記載の装置。 23. コントローラ、複数のデータ記憶ロケーションを有する共用メモリ、お よび管理メモリを利用してデータの記憶を管理する方法であって、前記方法が、 a)共用メモリの複数のデータ記憶ロケーションの所望のロケーションに受信 データを送るために前記コントローラを使用するステップであって、前記データ が複数のデータ記憶ロケーションに複数のリンクリストの形で格納され、各リン クリストがヘッドを有しているステップと、 b)管理メモリの複数のリンクリストの各々と関連する情報を格納するステッ プとを含み、前記情報が各リンクリストのためのヘッドポインタと待ち行列空フ ラグを含み、特定のそれぞれのリンクリストの各々の前記ヘッドポインタがその 特定のリンクリストのそれぞれの前記ヘッドのロケーションを指し示し、リンク リストの前記待ち行列空フラグがそのリンクリストがその中に有効なデータを含 まないことを表示するステップと、 を含む方法。
JP53580598A 1997-02-05 1998-02-05 ポインタ、状態フラグ、メモリブロックカウンタおよびパリティを有する多重リンクリストを使用する共用メモリ制御 Pending JP2001511281A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/796,085 1997-02-05
US08/796,085 US5893162A (en) 1997-02-05 1997-02-05 Method and apparatus for allocation and management of shared memory with data in memory stored as multiple linked lists
PCT/US1998/002131 WO1998036357A1 (en) 1997-02-05 1998-02-05 Shared memory control using multiple linked lists with pointers, status flags, memory block counters and parity

Publications (1)

Publication Number Publication Date
JP2001511281A true JP2001511281A (ja) 2001-08-07

Family

ID=25167251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP53580598A Pending JP2001511281A (ja) 1997-02-05 1998-02-05 ポインタ、状態フラグ、メモリブロックカウンタおよびパリティを有する多重リンクリストを使用する共用メモリ制御

Country Status (6)

Country Link
US (1) US5893162A (ja)
EP (1) EP1036360A1 (ja)
JP (1) JP2001511281A (ja)
CA (1) CA2277981A1 (ja)
IL (1) IL130834A (ja)
WO (1) WO1998036357A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009077453A (ja) * 2003-04-22 2009-04-09 Agere Systems Inc 共用マルチバンク・メモリのための方法および装置
JP2009104497A (ja) * 2007-10-25 2009-05-14 Nec Access Technica Ltd メモリ管理方式およびメモリ管理方法

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK0786121T3 (da) 1994-10-12 2000-07-03 Touchtunes Music Corp System til digital, intelligent audiovisuel gengivelse
US7188352B2 (en) 1995-07-11 2007-03-06 Touchtunes Music Corporation Intelligent digital audiovisual playback system
JP3222083B2 (ja) * 1997-03-21 2001-10-22 沖電気工業株式会社 共有メモリ制御装置
US6065104A (en) * 1997-07-23 2000-05-16 S3 Incorporated Method of embedding page address translation entries within a sequentially accessed digital audio data stream
FR2769165B1 (fr) 1997-09-26 2002-11-29 Technical Maintenance Corp Systeme sans fil a transmission numerique pour haut-parleurs
US6341342B1 (en) * 1997-11-04 2002-01-22 Compaq Information Technologies Group, L.P. Method and apparatus for zeroing a transfer buffer memory as a background task
US5941972A (en) * 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
USRE42761E1 (en) 1997-12-31 2011-09-27 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US6253237B1 (en) * 1998-05-20 2001-06-26 Audible, Inc. Personalized time-shifted programming
US6445680B1 (en) * 1998-05-27 2002-09-03 3Com Corporation Linked list based least recently used arbiter
FR2781591B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Systeme de reproduction audiovisuelle
US8028318B2 (en) 1999-07-21 2011-09-27 Touchtunes Music Corporation Remote control unit for activating and deactivating means for payment and for displaying payment status
FR2781580B1 (fr) 1998-07-22 2000-09-22 Technical Maintenance Corp Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent
FR2787600B1 (fr) 1998-12-17 2001-11-16 St Microelectronics Sa Memoire tampon associee a plusieurs canaux de communication de donnees
US6529519B1 (en) * 1998-12-22 2003-03-04 Koninklijke Philips Electronics N.V. Prioritized-buffer management for fixed sized packets in multimedia application
US6240498B1 (en) * 1999-01-06 2001-05-29 International Business Machines Corporation Object oriented storage pool apparatus and method
US6246682B1 (en) 1999-03-05 2001-06-12 Transwitch Corp. Method and apparatus for managing multiple ATM cell queues
US6570877B1 (en) 1999-04-07 2003-05-27 Cisco Technology, Inc. Search engine for forwarding table content addressable memory
FR2796482B1 (fr) 1999-07-16 2002-09-06 Touchtunes Music Corp Systeme de gestion a distance d'au moins un dispositif de reproduction d'informations audiovisuelles
US6615302B1 (en) * 1999-09-15 2003-09-02 Koninklijke Philips Electronics N.V. Use of buffer-size mask in conjunction with address pointer to detect buffer-full and buffer-rollover conditions in a CAN device that employs reconfigurable message buffers
US6493287B1 (en) 1999-09-15 2002-12-10 Koninklijke Philips Electronics N.V. Can microcontroller that utilizes a dedicated RAM memory space to store message-object configuration information
FR2805377B1 (fr) 2000-02-23 2003-09-12 Touchtunes Music Corp Procede de commande anticipee d'une selection, systeme numerique et juke-box permettant la mise en oeuvre du procede
FR2805072B1 (fr) 2000-02-16 2002-04-05 Touchtunes Music Corp Procede d'ajustement du volume sonore d'un enregistrement sonore numerique
FR2805060B1 (fr) * 2000-02-16 2005-04-08 Touchtunes Music Corp Procede de reception de fichiers lors d'un telechargement
US6611906B1 (en) * 2000-04-30 2003-08-26 Hewlett-Packard Development Company, L.P. Self-organizing hardware processing entities that cooperate to execute requests
US6598140B1 (en) * 2000-04-30 2003-07-22 Hewlett-Packard Development Company, L.P. Memory controller having separate agents that process memory transactions in parallel
FR2808906B1 (fr) 2000-05-10 2005-02-11 Touchtunes Music Corp Dispositif et procede de gestion a distance d'un reseau de systemes de reproduction d'informations audiovisuelles
US20020031133A1 (en) * 2000-05-25 2002-03-14 Mcwilliams Patrick Embedded communication protocol using a UTOPIA-LVDS bridge
US20020031132A1 (en) * 2000-05-25 2002-03-14 Mcwilliams Patrick UTOPIA-LVDS bridge
US20020031141A1 (en) * 2000-05-25 2002-03-14 Mcwilliams Patrick Method of detecting back pressure in a communication system using an utopia-LVDS bridge
JP3593954B2 (ja) * 2000-05-31 2004-11-24 株式会社島津製作所 電子天びん
US6829647B1 (en) * 2000-06-09 2004-12-07 International Business Machines Corporation Scaleable hardware arbiter
US6735207B1 (en) 2000-06-13 2004-05-11 Cisco Technology, Inc. Apparatus and method for reducing queuing memory access cycles using a distributed queue structure
FR2811175B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Procede de distribution d'informations audiovisuelles et systeme de distribution d'informations audiovisuelles
FR2811114B1 (fr) 2000-06-29 2002-12-27 Touchtunes Music Corp Dispositif et procede de communication entre un systeme de reproduction d'informations audiovisuelles et d'une machine electronique de divertissement
US7406547B2 (en) 2000-08-09 2008-07-29 Seagate Technology Llc Sequential vectored buffer management
FR2814085B1 (fr) 2000-09-15 2005-02-11 Touchtunes Music Corp Procede de divertissement base sur les jeux concours a choix multiples
US6851000B2 (en) * 2000-10-03 2005-02-01 Broadcom Corporation Switch having flow control management
US6977941B2 (en) * 2000-11-08 2005-12-20 Hitachi, Ltd. Shared buffer type variable length packet switch
US7113516B1 (en) 2000-11-28 2006-09-26 Texas Instruments Incorporated Transmit buffer with dynamic size queues
US20020108094A1 (en) * 2001-02-06 2002-08-08 Michael Scurry System and method for designing integrated circuits
US7215672B2 (en) * 2001-03-13 2007-05-08 Koby Reshef ATM linked list buffer system
US7062702B2 (en) * 2001-03-14 2006-06-13 Hewlett-Packard Development Company, L.P. Efficient parity operations
US6766480B2 (en) * 2001-03-14 2004-07-20 Hewlett-Packard Development Company, L.P. Using task description blocks to maintain information regarding operations
US6728857B1 (en) * 2001-06-20 2004-04-27 Cisco Technology, Inc. Method and system for storing and retrieving data using linked lists
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7158964B2 (en) 2001-12-12 2007-01-02 Intel Corporation Queue management
US7107413B2 (en) * 2001-12-17 2006-09-12 Intel Corporation Write queue descriptor count instruction for high speed queuing
US7269179B2 (en) * 2001-12-18 2007-09-11 Intel Corporation Control mechanisms for enqueue and dequeue operations in a pipelined network processor
US20030120966A1 (en) * 2001-12-21 2003-06-26 Moller Hanan Z. Method for encoding/decoding a binary signal state in a fault tolerant environment
US7895239B2 (en) * 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US7181573B2 (en) * 2002-01-07 2007-02-20 Intel Corporation Queue array caching in network devices
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7149226B2 (en) * 2002-02-01 2006-12-12 Intel Corporation Processing data packets
US7239651B2 (en) * 2002-03-11 2007-07-03 Transwitch Corporation Desynchronizer having ram based shared digital phase locked loops and sonet high density demapper incorporating same
US6765867B2 (en) 2002-04-30 2004-07-20 Transwitch Corporation Method and apparatus for avoiding head of line blocking in an ATM (asynchronous transfer mode) device
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US9646339B2 (en) 2002-09-16 2017-05-09 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US8103589B2 (en) 2002-09-16 2012-01-24 Touchtunes Music Corporation Digital downloading jukebox system with central and local music servers
US8584175B2 (en) 2002-09-16 2013-11-12 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US10373420B2 (en) 2002-09-16 2019-08-06 Touchtunes Music Corporation Digital downloading jukebox with enhanced communication features
US11029823B2 (en) 2002-09-16 2021-06-08 Touchtunes Music Corporation Jukebox with customizable avatar
US7822687B2 (en) 2002-09-16 2010-10-26 Francois Brillon Jukebox with customizable avatar
US8332895B2 (en) 2002-09-16 2012-12-11 Touchtunes Music Corporation Digital downloading jukebox system with user-tailored music management, communications, and other tools
US7028023B2 (en) * 2002-09-26 2006-04-11 Lsi Logic Corporation Linked list
US20040151170A1 (en) * 2003-01-31 2004-08-05 Manu Gulati Management of received data within host device using linked lists
CA2426619A1 (en) * 2003-04-25 2004-10-25 Ibm Canada Limited - Ibm Canada Limitee Defensive heap memory management
US7827375B2 (en) * 2003-04-30 2010-11-02 International Business Machines Corporation Defensive heap memory management
JP2005078481A (ja) * 2003-09-02 2005-03-24 Toshiba Corp 半導体システム
US7093065B2 (en) * 2003-12-15 2006-08-15 International Business Machines Corporation Random access memory initialization
US7213099B2 (en) * 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
US7752355B2 (en) * 2004-04-27 2010-07-06 International Business Machines Corporation Asynchronous packet based dual port link list header and data credit management structure
US7613213B2 (en) * 2004-08-23 2009-11-03 Transwitch Corporation Time multiplexed SONET line processing
US7899557B2 (en) * 2005-03-01 2011-03-01 Asm Japan K.K. Input signal analyzing system and control apparatus using same
US7251552B2 (en) * 2005-04-22 2007-07-31 Snap-On Incorporated Diagnostic display unit including replaceable display protector
US9171419B2 (en) 2007-01-17 2015-10-27 Touchtunes Music Corporation Coin operated entertainment system
US10290006B2 (en) 2008-08-15 2019-05-14 Touchtunes Music Corporation Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations
US8332887B2 (en) 2008-01-10 2012-12-11 Touchtunes Music Corporation System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server
WO2009083027A1 (en) * 2007-12-27 2009-07-09 Nokia Corporation Method and system for managing data in a memory
GB2460217B (en) * 2008-04-03 2012-05-09 Broadcom Corp Controlling a read order of asynchronously written data segments in the same queue
US8849435B2 (en) 2008-07-09 2014-09-30 Touchtunes Music Corporation Digital downloading jukebox with revenue-enhancing features
US10564804B2 (en) 2009-03-18 2020-02-18 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US10719149B2 (en) 2009-03-18 2020-07-21 Touchtunes Music Corporation Digital jukebox device with improved user interfaces, and associated methods
US9292166B2 (en) 2009-03-18 2016-03-22 Touchtunes Music Corporation Digital jukebox device with improved karaoke-related user interfaces, and associated methods
JP5567653B2 (ja) 2009-03-18 2014-08-06 タッチチューンズ ミュージック コーポレイション エンターテイメントサーバおよび関連するソーシャルネットワーキングサービス
KR101446403B1 (ko) 2010-01-26 2014-11-04 터치튠즈 뮤직 코포레이션 개선된 사용자 인터페이스를 갖는 디지털 쥬크박스 장치, 및 관련된 방법
CA2971002A1 (en) 2011-09-18 2013-03-21 Touchtunes Music Corporation Digital jukebox device with karaoke and/or photo booth features, and associated methods
EP2792109A1 (en) * 2011-12-14 2014-10-22 Optis Cellular Technology, LLC Buffer resource management method and telecommunication equipment
US11151224B2 (en) 2012-01-09 2021-10-19 Touchtunes Music Corporation Systems and/or methods for monitoring audio inputs to jukebox devices
US20140250252A1 (en) * 2013-03-04 2014-09-04 Silicon Graphics International Corp. First-in First-Out (FIFO) Modular Memory Structure
US9436634B2 (en) * 2013-03-14 2016-09-06 Seagate Technology Llc Enhanced queue management
WO2015070070A1 (en) 2013-11-07 2015-05-14 Touchtunes Music Corporation Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices
US10193831B2 (en) * 2014-01-30 2019-01-29 Marvell Israel (M.I.S.L) Ltd. Device and method for packet processing with memories having different latencies
JP6777545B2 (ja) 2014-03-25 2020-10-28 タッチチューンズ ミュージック コーポレイションTouchtunes Music Corporation 改善されたユーザインターフェースを備えたデジタルジュークボックス装置および関連する方法
CN108846045B (zh) * 2018-05-30 2022-10-18 杭州吉吉知识产权运营有限公司 一种智能水杯饮水数据的存储方法及系统
CN112134805B (zh) * 2020-09-23 2022-07-08 中国人民解放军陆军工程大学 基于硬件实现的快速路由更新电路结构及更新方法
KR20220139199A (ko) * 2021-04-07 2022-10-14 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
CN114817091B (zh) * 2022-06-28 2022-09-27 井芯微电子技术(天津)有限公司 基于链表的fwft fifo系统、实现方法及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5123101A (en) * 1986-11-12 1992-06-16 Xerox Corporation Multiple address space mapping technique for shared memory wherein a processor operates a fault handling routine upon a translator miss
US5446726A (en) * 1993-10-20 1995-08-29 Lsi Logic Corporation Error detection and correction apparatus for an asynchronous transfer mode (ATM) network device
US5390175A (en) * 1993-12-20 1995-02-14 At&T Corp Inter-cell switching unit for narrow band ATM networks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009077453A (ja) * 2003-04-22 2009-04-09 Agere Systems Inc 共用マルチバンク・メモリのための方法および装置
JP2009104497A (ja) * 2007-10-25 2009-05-14 Nec Access Technica Ltd メモリ管理方式およびメモリ管理方法

Also Published As

Publication number Publication date
WO1998036357A1 (en) 1998-08-20
EP1036360A1 (en) 2000-09-20
CA2277981A1 (en) 1998-08-20
IL130834A (en) 2003-10-31
US5893162A (en) 1999-04-06
IL130834A0 (en) 2001-01-28

Similar Documents

Publication Publication Date Title
JP2001511281A (ja) ポインタ、状態フラグ、メモリブロックカウンタおよびパリティを有する多重リンクリストを使用する共用メモリ制御
US6487202B1 (en) Method and apparatus for maximizing memory throughput
AU642830B2 (en) Multiple virtual fifo arrangement
US20040073739A1 (en) Method of operating a crossbar switch
EP0486145A2 (en) Direct memory access controller
WO2000052858A1 (en) Method and apparatus for managing multiple atm cell queues
US20030227933A1 (en) Prefetching techniques for network interfaces
US6594270B1 (en) Ageing of data packets using queue pointers
US5347514A (en) Processor-based smart packet memory interface
US5572697A (en) Apparatus for recovering lost buffer contents in a data processing system
JPH1023037A (ja) トラヒックシェーピング方式
WO2003102792A1 (en) Direct memory access circuit with atm support
WO1999029071A1 (en) Resource sharing
US6789176B2 (en) Address release method, and common buffering device for ATM switching system which employs the same method
JP3144386B2 (ja) バックプレッシャ制御方法およびその装置
JP2865314B2 (ja) パケット通信装置
US7009981B1 (en) Asynchronous transfer mode system for, and method of, writing a cell payload between a control queue on one side of a system bus and a status queue on the other side of the system bus
JP2933904B2 (ja) 共通バッファ形非同期転送モードスイッチ
JPH07111507A (ja) データ受信方式及び通信制御装置
JP3435244B2 (ja) 通信制御装置
JP3186707B2 (ja) Atm通信制御装置
JP3044653B2 (ja) ゲートウェイ装置
US6098104A (en) Source and destination initiated interrupts for message arrival notification, and related data structures
KR0170506B1 (ko) 멀티프로세서 인터럽트 처리기 및 인터럽트 처리 및 구동방법
JPH0833869B2 (ja) データ処理装置