JP2005501329A - シーケンシャルおよび非シーケンシャルブロックアクセスを有するバッファ・システム - Google Patents

シーケンシャルおよび非シーケンシャルブロックアクセスを有するバッファ・システム Download PDF

Info

Publication number
JP2005501329A
JP2005501329A JP2003523347A JP2003523347A JP2005501329A JP 2005501329 A JP2005501329 A JP 2005501329A JP 2003523347 A JP2003523347 A JP 2003523347A JP 2003523347 A JP2003523347 A JP 2003523347A JP 2005501329 A JP2005501329 A JP 2005501329A
Authority
JP
Japan
Prior art keywords
buffer
block
access
pointer
sequential
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.)
Withdrawn
Application number
JP2003523347A
Other languages
English (en)
Inventor
ジェンズ、エイ.ローバー
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of JP2005501329A publication Critical patent/JP2005501329A/ja
Withdrawn legal-status Critical Current

Links

Images

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/10Methods 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 having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • 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/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/108Reading or writing the data blockwise, e.g. using an extra end-of-block pointer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

階層的メモリ・アクセス制御は、順次にアクセスされると知られているデータのブロックと、シーケンシャルにまたは非シーケンシャルにアクセスされ得る各ブロックの内容との間を区別する。もしブロックの内容がそのブロック内でシーケンシャルな仕方で与えられるが、ブロック内のシーケンス(順序)の初めの非ゼロオフセットのせいでそのシーケンスがより高いレベルのシーケンスに対応しなければ、このメモリ・アクセス制御は、ブロック内シーケンス(順序)がより高いレベルのシーケンスに対応するときを知らせることによって利用可能メモリの使用を最適化するように構成される。ブロック内シーケンスは、より高いレベルのシーケンスとは異なるが、バッファへのアクセスは、バッファのより高いレベルの区割りに制限される。ブロック内シーケンス(順序)がより高いレベルのシーケンスに対応しているときはバッファへのアクセスは、バッファのブロック内区割りで行われる。この仕方では、より高いレベルのシーケンスに対するブロック内シーケンスのオフセットの程度によって、バッファへのアクセスはしばしば、ブロック全体がバッファに与えられるより十分に前に行われ、それによってメモリがアクセスされ得る速度を最適化する。

Description

【技術分野】
【0001】
本発明は、処理および/または通信の分野に関し、また特に一方のシステムが非シーケンシャル仕方でバッファにアクセスするように構成されている二つのシステムの間をインタフェースするためのバッファの制御に関する。
【0002】
バッファは一般に、システム間、特にデータを非同期的に転送するシステム間をインタフェースするために使用される。このようなデータ転送バッファは一般に、第1のシステムから同期的または非同期的にデータを受信し、それを第2のシステムからの要求に応じて第2のシステムに供給するように構成されている。対応するデータ項目が第2のシステムに与えられる前にそのデータが第1のシステムから受信されることを保証するためにバッファ・マネージャが使用される。すなわちこのバッファ・マネージャは、受信器がデータを受信できる速度を、データを送信している送信器の対応する速度に整合させる。
【0003】
図1は、送信システムからの各データ項目を書込みポインタ110によって指示された場所に格納するように構成された例示的バッファ100を示す。各データ項目が格納されると、書込みポインタ110はインクリメントされて次のデータ項目を格納する場所を指示する。データは、書込みポインタ110に等しくなるように読取りポインタ120を初期化し、それから要求に応じて各データ項目を順次、受信システムに与えることによって受信システムに与えられる。各データ項目が受信システムに与えられると、読取りポインタ120は、インクリメントされて次の利用可能なデータ項目の場所を指示する。未だ書き込まれていない場所を読取りポインタ120が指示しないことを保証するために読取りポインタ120は、限度130を超えないように制約される。この限度は、データ項目がバッファ100内に格納されるに伴って連続的に調整され、また一般に書込みポインタ110に対応している。参照と理解とを容易にするために以後、限度130は、それが書込みポインタ110と同じパラメータであっても、ある固有のパラメータとして論じられる。
【0004】
限度130は、メモリ・アクセス・コントローラによるか、直接的に受信システムによって実施される。すなわち一般に限度130は、メモリ・アクセス・コントローラによって利用可能にされ、また読取りポインタ120を保守することと、このポインタが限度130を超えて「追跡」しないことを保証することとは、受信システムの責任である。
【0005】
一般にバッファ100は、サイズが有限であって、バッファ100によって受信され得るデータ項目の総数よりも実質的に小さい。バッファの連続使用を考慮するためにバッファは、ポインタがバッファの終わりに達したときにバッファの先頭にリセットされるよう、「循環的」になるように構成される。循環バッファ内で前述の限度130を実施するためのアルゴリズムは、一般的に利用可能である。特定の実施形態によれば書込みポインタ110もまた、それが循環バッファの周りをループした後に読取りポインタ120に対応する限度を超えて追跡しないように制限することができる。すなわち送信システムは、前のデータが未だ受信システムによって読み取られていない場合にデータをバッファ100内に格納しないように防止されるであろう。代替として読取りポインタ120は、新しいデータが到着するとき、書込みポインタより前の位置を維持するために前進できて、未読取りデータは新しく到着したデータによって上書きされる。参照と理解とを容易にするために今後、本発明は、読取りポインタの限度の実施に関して提示されるが、書き込みポインタ110の限度の実施も実質的に同じである。
【0006】
バッファ100のサイズは、バッファに対する読取り速度と書き込み速度との間の許容可能なずれを決定、かつ/または、制御されない送信器の場合にバッファ100のサイズは送信器と受信器との間の速度のずれによる損失データの量を、決定する。制御された送信器の場合、バッファ100は、平均の送信速度と受信速度との等化を実施するように働き、バッファ100のサイズは、この平均データ速度を中心とした許容される変動の度合いを決定する。
【0007】
上述のようにバッファ100にデータを供給するシステムとバッファ100からデータを受信するシステムとは非同期的である。したがって限度130の更新は、一方のシステムまたは他方のシステムとだけ同期できる。ポインタまたは限度がインクリメントされるときに誤読されないことを保証するために、ポインタは一般にグレイ・コードを使用して符号化されてインクリメントされるが、この場合、インクリメント遷移時にポインタの1ビットだけが変化する。この仕方では、限度130の遷移時における限度130の非同期読取りは、限度130の前の値か次の値のいずれかを与えるであろう。限度130の前の値の実施はなお、読取りポインタ120が書込みポインタ110を超えて追跡することを防止するので、グレイ(gray)・コード・シーケンスの使用は、限度130が何時読み取られるかということとは無関係に読取り処理の完全性を保証する。
【0008】
非同期的な読取り・書き込みアクセスのためのこの従来の2ポート(データ・イン、データ・アウト)バッファ方式は、バッファ100へのデータの書込みがシーケンシャルであることを基本的前提としている。すなわち読取りポインタ120と限度130との間の記憶場所のすべては、有効なデータを持っているということが本来的に想定されている。更に下記に論じられる幾つかのアプリケーションではデータは、幾分非シーケンシャルな仕方でのバッファへの書込みのために更に効率的に利用可能にされ得る。
【0009】
本発明の目的は、バッファといったメモリ装置への非シーケンシャルアクセスを考慮したメモリ・アクセス方法および装置を提供することである。本発明の更なる目的は、利用可能なメモリの使用を最適化するメモリ・アクセス方法および装置を提供することである。
【発明の開示】
【課題を解決するための手段】
【0010】
これらの目的その他は、階層的メモリ・アクセス制御方法および装置を提供することによって達成される。この階層的メモリ・アクセス制御は、順次にアクセスされると知られたデータのブロックと、シーケンシャルにまたは非シーケンシャルにアクセスされ得る各ブロックの内容との間を区別する。もしブロックの内容がそのブロック内でシーケンシャルな仕方で与えられるが、ブロック内のシーケンス(順序)の初めの非ゼロオフセットのせいでそのシーケンスがより高いレベルのシーケンスに対応していなければ、メモリ・アクセス制御は、ブロック内シーケンス(順序)がより高いレベルのシーケンスに対応するときを知らせることによって、利用可能メモリの使用を最適化するように構成される。ブロック内シーケンス(順序)はより高いレベルのシーケンスとは異なるが、バッファへのアクセスはバッファのより高いレベルの区割りに制限される。ブロック内シーケンスがより高いレベルのシーケンスに対応しているとき、バッファへのアクセスは、バッファのブロック内区割りで行われる。この仕方では、より高いレベルのシーケンスに対するブロック内シーケンスのオフセットの程度によって、バッファへのアクセスはしばしば、ブロック全体がバッファに与えられるより十分に前に行われ、それによってメモリがアクセスされ得る速度を最適化する。
【発明を実施するための最良の形態】
【0011】
本発明は、例示を用いまた、付属の図面を参照しながら更に詳細に説明される。
【0012】
これらの図面を通して同じ参照数字は、類似または対応する特徴あるいは機能を示す。
【0013】
多くのアプリケーションでは明らかにシーケンシャルなデータは階層様式で格納され、この場合個々のデータ項目は論理的または物理的に複数のブロックに区分される。例えばMPEG符号化画像は、画像を形成する一連の8×8ピクセル・ブロックとして格納され、n次元データ・アレイは、一連の1次元アレイ・ブロックとして格納されるなど、以下同様である。
【0014】
この情報のブロック区分は、バッファ管理の複雑さを低減する機会を提供する。例えば1ブロックのデータがバッファを介して一つのコンポーネントから他のコンポーネントに転送されることになっているとき、バッファ管理は、データレベルよりむしろブロックレベルで実施できる。すなわち例えば1ブロックのデータが書き込まれつつあるとき、バッファ・マネージャは単に、ブロック全体が転送されるまでそのブロックの初めに図1の限度130をセットすることだけを必要し、それによってブロックが転送されつつあるときに読取りポインタと書き込みポインタとを同期させる必要を避けている。
【0015】
読取りポインタと書き込みポインタとの同期化を単純にすることに加えて、ブロックレベルのバッファ管理を行うことは、ブロック内読取り動作または書込み動作が非シーケンシャルであることを可能にする。すなわちブロックが書き込まれつつあるときにはそのブロックへの読取りアクセスは許されないので、書き込み処理は、読取り処理がブロック内の新旧データを混合して読み取るであろうという懸念なしに、ブロック内のデータを如何なる順序にでも配置することができる。同様の仕方で、もし読取り処理が、あるブロックにアクセスしていれば、書き込み処理は、そのブロック内の如何なるデータ項目も修正することを妨げられる。
【0016】
ブロックレベルでバッファ・アクセスを管理することによって、ブロック内読取り・書込みアクセスは、図1の従来技術におけるように最適化を順次転送に制限することなく、データ転送に使用される特定の処理に関して最適化できる。
【0017】
データ・アクセスの最適化は、高速パイプライン・データ処理またはその他の多重アクセス処理でのデータ・アクセスを含むアプリケーションにとって特に重要である。高速メモリへのデータ・アクセスは、1バンクのメモリにデータ読取りラインをプレチャージし、それから読み取られるデータの値に基づいて適当な出力装置を駆動することによって行われることが多い。プレチャージが行われているときに読取り要求が遅延を受けないように、プレチャージ処理は、読取り要求が到着する時点より前に行われることが好ましい。もしある特定のメモリのバンクが1メモリ・アクセス・サイクル内でアクセスされる場合には、次のサイクルはプレチャージのために使用されることが好ましい。
【0018】
続けて2回の同じバンクへのアクセスを避ける一つの方法は、要求に応じて一つのバンク内に一連のアクセスの開始アドレスをオフセットすることである。例えばMPEGマクロブロックは、一つの8×8ブロックのピクセルに対応しており、ビデオ処理で使用される一般のメモリ構造は、1セット・8個のバンクであり、各バンクは8ピクセルの幅である。すなわち8ライン・セグメントのマクロブロックの各8ピクセル幅ライン・セグメント内のデータは、異なるバンクに含まれる。したがって各ライン・セグメントをアクセスすることは、前述のプレチャージ遅延を防止する。しかしながら、もしこれらのバンクへの並列多重アクセスが行われれば、これらの多重アクセスは、同じバンクへのシーケンシャルなアクセスという結果を招く可能性がある。1バンク内のライン・セグメントがアクセスされる順序に修正を考慮することによって、同じメモリ・バンクへの反復アクセスを避けることができる。すなわち例えば、もし他方の処理があるブロックへのアクセスを開始したときに一方の処理が現にバンク1をアクセス中であったとすれば、他方の処理は、プレチャージ遅延を受ける可能性のある通常の1−2−3−4−5−6−7−8の順序の代わりに7−8−1−2−3−4−5−6の順序で8個のバンクをアクセスするように構成できる。
【0019】
図2は、本発明による非シーケンシャルブロック内アクセス・ポインタを有する例示的バッファ・システムを示す。書込みポインタ210から引かれる多数の矢印によって示されるように、本発明の書込みポインタ210は、バッファ100内の複数のメモリ要素、あるいは1ブロックのメモリ要素(B8、B9、....)のどれか一つをポイントできるように構成されている。この例は、上述の例示的ライン・セグメント・アクセスのシナリオと一致するように示されており、1ブロック・8個のライン・セグメントがアクセスされている。この例を使うと、メモリ要素B8は第1のライン・セグメントに対応する8個のピクセル値を格納するように構成され、メモリ要素B9は第2のライン・セグメントに対応する8個のピクセル値を格納するように構成され、以下同様である。上記の例では第8のライン・セグメントのデータが最初に抽出されると、書込みポインタ210は単に、第8のライン・セグメントに対応する8個のピクセル値を格納するように構成されたメモリ要素Bfをポイントする。続いて第1のライン・セグメントのデータが抽出されると、書込みポインタ210は、メモリ要素B8をポイントし、以下同様なことが8個のピクセル値の8セットの各々がメモリ要素B8からBf内にロードされるまで続けられる。
【0020】
ブロックB8からBf内へのメモリ・アクセスは非シーケンシャルであるか、ブロックへの非ゼロ・オフセットを使用してシーケンシャルであり得るが、図2の矢印211で示されるように第1の8×8ブロックから第2の8×8ブロックへのメモリ・アクセス、などなどといったブロックレベルでのメモリ・アクセスはシーケンシャルであることに留意すべきである。したがってシーケンシャルな限度パラメータに基づく信頼度の高い二重アクセス処理の前述の実施は、ブロック内レベルで適用できなくてもブロックレベルで実施可能である。
【0021】
本発明の一態様によれば限度230は、書込みポインタ210がブロック内のデータを如何なる順序で与えても、ブロックを有するメモリ要素の各々が適当なデータをロードされるまで、読取りポインタ220がブロックB8からBf内に到達するのを防止するためにメモリ要素B8からBfのブロックの先頭にセットされるように構成される。
【0022】
このブロック転送が完了すると書込みポインタ210は、8個のメモリ要素からなるその次のブロックに進められ、限度230はブロックB8からBfの終わりにセットされる。その後、読取りポインタ220は、例示的符号器へのデータの転送を可能にするためにブロックB8からBfに進むことができる。このようにしてブロックレベルで限度パラメータ230を制御することによって信頼度の高いバッファ・アクセスを行うことができる。
【0023】
上記の説明は、1ブロック内での非シーケンシャル書込みアクセス時にブロックレベルでの読取りアクセスを制御する手法を提示しているが、この同じ処理は、バッファ100からの非シーケンシャル読取り時にブロックレベルでの書込みアクセスを制御するために実施できることに留意されたい。例えば読取りポインタ220は、上述のバッファ100への非シーケンシャル書込みアクセスと同様に、第8のライン・セグメントの他の値を含むライン・バッファにこれらの値を格納するために第8のメモリ要素を最初に読み取るように構成できる。この例では書込みポインタ210は、8個のメモリ要素の各々が読み取られるまでこの特定のブロックに届かないように制限されるであろう。上述のように、参照と理解とを容易にするために本発明は、バッファへの非シーケンシャルな書込みアクセスのパラダイムを使用して提示されているが、バッファへの他の非順次アクセスへの、ここに開示された原理の適用は、この開示に基づいて当該技術分野における当業者にとって明らかであろう。
【0024】
図3は、本発明によるバッファ管理システム300の例示的なブロック図を示す。図示のようにバッファ管理システム300は、送信器あるいは送信コンポーネント310から受信器あるいは受信コンポーネント320へのデータの転送を管理する。本発明によればバッファ・マネージャ350は、ブロックレベルのシーケンシャル書込みアクセスに基づいて読取りアクセスに関する限度230を決定する。読取りアクセスのために使用される特定のプロトコルに依存してバッファ・マネージャ350は、限度230を超えるメモリ要素へのアクセスを拒否することによって限度230を実施するか、あるいは限度230の自動実施のために受信器320に限度230を通知する。図2、3の円形の矢印212は、シーケンシャルであることもないこともあり得るブロック内メモリ・アクセスを示すことを意図しているが、円形矢印211は、シーケンシャルなブロック対ブロックのメモリ・アクセスを示している。本発明の第1の態様によればバッファ・マネージャ350は、潜在的に非シーケンシャルなブロック内アクセス212が処理中であるときに読取りポインタ220がブロックに届くのを防止するように限度230を決定する。
【0025】
本発明の第2の態様によればシステム300の性能は、メモリ・アクセスの順序付けがより高いレベルの順序付けに何時対応するかを決定することによって更に改善される。順序の方向が、はじめは昇順アドレス順序により、次いで降順アドレス順序によって各々の次のブロックアクセスで変化する例示的なメモリ・アクセスを考える。読取り処理中の昇順アドレス順序を想定すれば、バッファ・マネージャ350は、書込みシーケンスがより高いレベルの読取り順序付けと同じ方向にあるために、ブロックが下降アドレス順序で書き込まれているときには読取りポインタ220がブロック内に届くのを防止するようにし、ブロックが上昇アドレス順序で書き込まれているときには読取りポインタ220がブロック内に届くことを可能にするように構成されることが好ましい。このようにして読取りポインタ220は、ブロックアクセスの半分に関して遅延するだけであるが、ブロック内書込み処理は、より高いレベルの読取り順序付けの方向とは反対である。
【0026】
またシーケンス(順序)7−8−1−2−3−4−5−6といった初期の非ゼロ・ブロック内オフセットを有する前述の順次アクセスを考えてみる。この例では従来のより高いレベルの順次アクセスが低いアドレスから高いアドレスに行われると仮定して、ブロック内順次アクセスは、最後の項目がアクセスされた後に最初の項目に戻る循環リセットによってブロック順序付けと同じ方向に、すなわちローからハイに行われる。書込みポインタ210が初めに「8」に進められるとき、第8のデータ項目より下方のメモリ位置の少なくとも一部は未だ書き込まれていないので、読取りポインタ220によるメモリ・アクセスは、ブロック内から除外されなくてはならない。しかしながら書込みポインタ210が「2」に進められると、読取りポインタは、書込みポインタが「1」にあったときに格納されたデータ項目にアクセスすることを許され得る。同様に書込みポインタ210が「4」に進められると、読取りポインタ220は、未だ書き込まれていないメモリ位置から値を読み取る恐れなしに、項目1、2、3のどれにでもアクセスすることを許され得る。
【0027】
本発明によればバッファ・マネージャ350は、書き込まれたメモリ要素「より下方」の如何なる要素も未だ書き込まれていない(すなわち未だ「有効」でない)ときに限度230を維持するように、またより下方で他の各メモリ要素が有効であるメモリ要素に対応する値230′に限度230をリセットするように構成される。この仕方では、ブロック内書込みポインタがブロックレベルの順序付けと一致すると直ぐに、読取りアクセスが開始できる。これに関して「より下方」は、ブロックレベルの順序付けの方向の対象要素より前のメモリ要素を意味すると定義される。すなわちもしブロックレベル順序付けがローからハイであれば、「より下方の」メモリ要素は、対象要素より低いアドレスあるいはインデックスを持っており、これに対してもしブロックレベル順序付けがハイからローであれば、「より下方の」メモリ要素は、対象要素より高いアドレスあるいはインデックスを持っている。
【0028】
より下方のメモリ要素のすべてが何時有効になるかを決定するためには、種々の手法のどれでも使用することができる。図2に示すような好適な実施形態では、書込みポインタ210は、ブロック・アドレス250に関するオフセット260に対応する。もしブロック内シーケンスの順序付けがブロック対ブロックのシーケンスと同じ方向(ハイからロー、またはローからハイ)であれば、一旦このオフセット260がゼロに等しくなると、アドレス250のブロック内の後続のすべての書込みポインタ210・アクセスは、すべての「より下方の」メモリ要素が前にアクセスされていて、したがって有効になっているであろうといったことになる。
【0029】
上述の例では参照を容易にするために一定のブロック・サイズを使用していることに留意されたい。本技術に通常のスキルを有する人にとって明らかであるように、前述の処理を実施するために必要とされるパラメータは、ブロックの初めとブロックの終わり(等価的にはブロックのサイズ)だけである。更に、ブロックのサイズは、各トランザクションによって変わることもある。
【0030】
図4は、本発明の好適な実施形態によるバッファ管理システムのメモリ・アクセス限度を決定するための例示的論理図を示し、図5は、図4の論理に対応するメモリ・アクセスを追跡するための例示的タイミング図を示す。この例示的実施形態では「ラップ」信号は、書込みポインタ210(図2)が初めにオフセットされるのは何時かを示すので、アドレス250のブロックを有する一つ以上の「より低い」メモリ要素はスキップされ、未だ書き込まれていない。「アイドル」信号は、非書込み条件を示す(読取りポインタがオフセットされるという代替条件では「アイドル」信号は非読取り条件を示す)。
【0031】
ラップ信号かアイドル信号のいずれかがアサートされると、NORゲート410は、セレクタ420を介してブロック・アドレス250を選択して限度230を形成する。ラップ信号もアイドル信号もどちらもアサートされないと、NORゲート410は、ブロック・アドレス250とオフセット260との合計430を選択して限度230を形成する。すなわち現在アクティブになっている書込みポインタ210が、「より下方の」アドレスすべてはスキップされていないといったことであると、限度パラメータ230は、この書込みポインタ210に対応するようにセットされる(この例示的実施形態では読み取りポインタ220は、「より下方」の上述の定義を使用すれば限度230の「より下方」にあるように制限されるであろう)。
【0032】
図5は、図4の論理に対応するメモリ・アクセスを追跡するための例示的タイミング図を示す。この例では、0から7までのアドレスを含むブロック510と、8からfまで(16進)のアドレスを含むブロック511の二つのブロックの動作を示している。第1のブロック510は、初めにアドレス「6」でアクセスされ、その後アドレス7を介して順序付けされ、それからアドレス0に、それからアドレス1から5にリセットされる。第2のブロック511は、初めにアドレス「d」でアクセスされ、その後アドレスe、fを介して順序付けされ、それからアドレス8に、それからアドレス9、a、b、cにリセットされる。便宜上、ポインタ・アドレス510、511に対応するオフセット値およびブロック値はそれぞれ、520、521および550、551で示されている。
【0033】
この例に示すように、第2のブロック511をアドレス「d」から始めることによって第2のブロック511の第1のオフセット値(5)は、第1のブロック510の最後のオフセット値と同じになる。もし前に論じたように各々の新しいオフセット値がライン・バッファへの1ライン・データの読込みといったメモリ・アクセス動作、あるいは他の時間のかかる動作を必要とすれば、図5に示すシーケンスは、前のオフセット値を保持することによって、このような1ブロックアクセス当り1動作を除去する。
【0034】
第1のブロック510がアドレス6、7でアクセスされると、バッファ・マネージャ(図3の350)はラップ信号530をアサート(assert)し、それによって限度560をブロック・アドレス550にセットする。ブロック内順序付けがブロックレベル順序付けに対応することを示すラップ信号がデアサート(deassert)されると530'、限度560は、ブロック・アドレス550とオフセット520の組合せであるアドレス510に対応するようにセットされる。同様に第2のブロック511がアドレスd、e、fでアクセスされると、限度560は、ブロック・アドレス551にセットされ、その後、ブロック・アドレス551とオフセット521の組合せにセットされる。
【0035】
本発明の好適な実施形態では、グレイ・コード・シーケンスの従来の使用に関して前に論じたように、もし受信システムが遷移中の限度を読み取ると、限度が遷移直前または遷移直後の値になるように、限度560の伝達は、グレイ・コード・シーケンスを介して行われる。限度560を受信システムに伝達して、ブロック・アドレス510に対応する書込みポインタを追跡するために追跡信号570が備えられている。書込みポインタがアドレス「1」に進んだ後にだけ、読み取りポインタは、アドレス「0」に進むことを許され、その後に追跡信号は、アドレス1から7を逐次追跡する。追跡信号570に完全な順序を与えることによって実際の限度560に対応するギャップあるいはジャンプなしに、この追跡信号に対応するグレイ・コード・シーケンスは、受信システムに対して限度の信頼度の高い伝達を行う。すなわち例えば、時刻501において限度560は実際に8であり、受信システムが値0から7のうちのどれでもアクセスできることを示している。しかしながら時刻501より前では、限度は5である。5から8への限度の変化は、限度の値が変化しつつあるときに受信器がその限度を読取ろうとする可能性があるので、高い信頼度で伝達することはできない。グレイ・コード順序付けは、この信頼性を与えるが、それはシーケンスが連続している場合だけである。追跡信号570は、シーケンスにギャップやジャンプのないこの連続したシーケンスを与える。
【0036】
前述の説明は単に、本発明の原理を示すものである。このようにして、当業者は、ここに明示的に説明または図示されてはいないが本発明の原理を具現していて添付の請求項の精神と保護の範囲の内に在る種々の構成を案出できるであろうということは認められるであろう。
【図面の簡単な説明】
【0037】
【図1】シーケンシャル読取り・書き込みポインタを有する例示的従来技術のバッファ・システムを示す図。
【図2】本発明による非シーケンシャルアクセス・ポインタを有する例示的バッファ・システムを示す図。
【図3】本発明によるバッファ管理システムの例示的ブロック図。
【図4】本発明によるバッファ管理システムのメモリ・アクセス限度を決定するための例示的論理図。
【図5】本発明によるメモリ・アクセスを追跡するための例示的タイミング図。
【符号の説明】
【0038】
100 バッファ
110、210 書込みポインタ
120、220 読取りポインタ
250 ブロックアドレス
260 オフセット
300 バッファ管理システム
310 送信器
320 受信器
350 バッファマネージャ
410 NORゲート
420 セレクタ
510 第1のブロック
511 第2のブロック
520 オフセット
530 ラップ信号
550 ブロックアドレス
560 限度
570 追跡信号

Claims (16)

  1. 第1のポインタと第2のポインタとを介してアクセスされるように構成されたバッファと、
    前記第1のポインタに基づいて前記第2のポインタを制限するように構成されたバッファ・マネージャと、を備え、
    前記第1のポインタは、前記バッファへのシーケンシャルブロックレベル・アクセスと前記バッファへの独立のブロック内アクセスとを与えるように構成されており、
    前記バッファ・マネージャは、前記第1のポインタのシーケンシャルブロックレベル・アクセスに対応する限度値に第2のポインタを制限するように構成されている、バッファ・システム。
  2. 前記バッファ・マネージャは更に、前記バッファへの独立ブロック内アクセスが前記バッファへのシーケンシャルブロックレベル・アクセスに対応しているとき、前記第1のポインタに対応するように前記限度値をリセットするように構成されている、請求項1に記載のバッファ・システム。
  3. 前記第1のポインタは、ブロック・アドレスとオフセット・アドレスとを含んでおり、
    前記バッファ・マネージャは、
    前記バッファへの独立ブロック内アクセスがシーケンシャルブロックレベル・アクセスに対応していないとき、前記ブロック・アドレスに対応するように前記限度値をセットし、
    前記バッファへの独立ブロック内アクセスがシーケンシャルブロックレベル・アクセスに対応しているとき、前記ブロック・アドレスと前記オフセット・アドレスの組合せに対応するように前記限度値をセットするように構成される、請求項1に記載のバッファ・システム。
  4. 前記第1のポインタと前記第2のポインタは、前記バッファにデータを書き込むための書込みポインタと、前記バッファからデータを読み取るための読取りポインタとに対応する、請求項1に記載のバッファ・システム。
  5. 前記第1のポインタは、前記シーケンシャルブロックレベル・アクセスに対応するブロック・アドレスと、前記独立ブロック内アクセスに対応するオフセット・アドレスとを含んでおり、
    前記バッファ・マネージャは更に、シーケンシャルブロックレベル・アクセス間でオフセット・アクセスへの変更を最小にするように構成される、請求項1に記載のバッファ・システム。
  6. 前記バッファ・マネージャは更に、前記第1のポインタを介しての前記バッファのブロックレベル・アクセスの完了より前に前記限度値を進めるように構成される、請求項1に記載のバッファ・システム。
  7. 前記バッファ・マネージャは更に、前記限度値の進みに対応するグレイ・コード・シーケンスを介して前記限度値を伝達するように構成される、請求項6に記載のバッファ・システム。
  8. 前記バッファ・マネージャは更に、グレイ・コード・シーケンスを介して前記限度値を伝達するように構成される、請求項1に記載のバッファ・システム。
  9. バッファへのアクセスを制御するためのバッファ管理システムであって、
    前記バッファへの第1のアクセスが非シーケンシャルであるときにラップ信号をアサートするように構成され、更に前記ラップ信号に依存して前記バッファへの第2のアクセスを制限するように構成されるバッファ・マネージャを備えている、バッファ管理システム。
  10. 前記バッファへの前記第1のアクセスは、ブロック・アドレスとオフセット・アドレスとに基づくアクセスを含んでおり、
    前記バッファへの前記第2のアクセスは、前記ラップ信号がアサートされるときに前記ブロック・アドレスに制限され、前記ラップ信号がデアサートされるとき前記ブロック・アドレスと前記オフセット・アドレスの組合せに制限される、請求項9に記載のバッファ管理システム。
  11. 前記第2のアクセスの限度の変更は、グレイ・コード・シーケンスを介して伝達される、請求項10に記載のバッファ管理システム。
  12. 前記バッファ・マネージャは更に、前記バッファへの前記第1のアクセスが終了したときにアイドル信号をアサートするように構成されており、
    前記バッファへの前記第2のアクセスは更に、前記アイドル信号がアサートされるときに前記ブロック・アドレスに制限される、請求項10に記載のバッファ管理システム。
  13. 前記第1のアクセスと前記第2のアクセスは、前記バッファへの書込みアクセスと前記バッファへの読取りアクセスとに対応する、請求項9に記載のバッファ管理システム。
  14. 前記バッファへの第1のアクセスに対応するブロック・アドレスとオフセット・アドレスとを決定するステップと、
    前記オフセット・アドレスが前記ブロックアドレスに関して非シーケンシャルになるのは何時かを決定するステップと、
    前記オフセット・アドレスが非シーケンシャルであるとき、前記バッファへの第2のアクセスを前記ブロックアドレスに制限するステップと、を含む、バッファへのアクセスを制御する方法。
  15. 前記オフセット・アドレスが前記ブロック・アドレスに関してシーケンシャルになるのは何時かを決定するステップと、
    前記オフセット・アドレスがシーケンシャルであるとき、前記ブロック・アドレスと前記オフセット・アドレスの組合せに前記バッファへの前記第2のアクセスを制限するステップとを更に含む、請求項14に記載の方法。
  16. 前記第2のアクセスを制限するステップは、前記ブロック・アドレスの変化に対応するグレイ・コード・シーケンスを決定するステップを含む、請求項14に記載の方法。
JP2003523347A 2001-08-29 2002-08-21 シーケンシャルおよび非シーケンシャルブロックアクセスを有するバッファ・システム Withdrawn JP2005501329A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/941,478 US7457894B2 (en) 2001-08-29 2001-08-29 Synchronization of non-sequential moving pointers
PCT/IB2002/003416 WO2003019350A1 (en) 2001-08-29 2002-08-21 Buffer system with sequential and non-sequential block access

Publications (1)

Publication Number Publication Date
JP2005501329A true JP2005501329A (ja) 2005-01-13

Family

ID=25476541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003523347A Withdrawn JP2005501329A (ja) 2001-08-29 2002-08-21 シーケンシャルおよび非シーケンシャルブロックアクセスを有するバッファ・システム

Country Status (6)

Country Link
US (1) US7457894B2 (ja)
EP (1) EP1425656A1 (ja)
JP (1) JP2005501329A (ja)
KR (1) KR20040039315A (ja)
CN (1) CN1549963A (ja)
WO (1) WO2003019350A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7395208B2 (en) * 2002-09-27 2008-07-01 Microsoft Corporation Integrating external voices
JP3926374B2 (ja) * 2005-08-15 2007-06-06 株式会社ソニー・コンピュータエンタテインメント バッファ管理方法およびバッファ管理装置
US7620787B2 (en) 2006-01-26 2009-11-17 Intel Corporation Optimizing memory accesses for network applications using indexed register files
JP2010160653A (ja) * 2009-01-07 2010-07-22 Renesas Electronics Corp リングバッファ回路及びその制御回路
FR2948473A1 (fr) * 2009-07-21 2011-01-28 St Ericsson Sa St Ericsson Ltd Circuit d'interface comportant une memoire de type fifo
US9093133B2 (en) 2013-01-03 2015-07-28 Stmicroelectronics S.R.L. Buffer for ordering out-of-order data, and corresponding integrated circuit and method for managing a buffer
US9710415B2 (en) 2014-11-03 2017-07-18 Nxp Usa, Inc. Asynchronous FIFO buffer with Johnson code write pointer
CN107409101B (zh) * 2015-03-30 2021-06-22 瑞典爱立信有限公司 下行链路物理层的天线缓冲管理
CN105933240A (zh) * 2016-04-27 2016-09-07 长沙丰灼通讯科技有限公司 一种有线和无线结合的数据高效传输方法
CN114089946B (zh) * 2022-01-20 2022-04-19 深圳云豹智能有限公司 一种fifo装置和数据处理系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2187006B (en) * 1986-02-25 1990-01-10 Sony Corp Random access memory apparatus
AU609646B2 (en) * 1988-10-14 1991-05-02 Digital Equipment Corporation Method and apparatus for detecting impending overflow and/or underrun of elasticity buffer
US5016221A (en) * 1989-12-01 1991-05-14 National Semiconductor Corporation First-in, first-out (FIFO) memory with variable commit point
US5864713A (en) * 1996-02-12 1999-01-26 Hewlett-Packard Company Method for determining if data should be written at the beginning of a buffer depending on space available after unread data in the buffer
GB2312058B (en) * 1996-04-12 2000-08-09 Sony Uk Ltd Data buffer
US5974516A (en) * 1996-10-18 1999-10-26 Samsung Electronics Co., Ltd. Byte-writable two-dimensional FIFO buffer having storage locations with fields indicating storage location availability and data ordering
US6145061A (en) * 1998-01-07 2000-11-07 Tandem Computers Incorporated Method of management of a circular queue for asynchronous access
DE19850650C2 (de) 1998-11-03 2000-09-07 Texas Instruments Deutschland Verfahren zum Übertragen von Daten
WO2000079378A1 (fr) * 1999-06-22 2000-12-28 Seiko Epson Corporation Dispositif de memoire en liste directe (fifo)
US6625440B1 (en) * 2000-01-31 2003-09-23 Trw Inc. Drum memory controller
US6587112B1 (en) * 2000-07-10 2003-07-01 Hewlett-Packard Development Company, L.P. Window copy-swap using multi-buffer hardware support
US6553448B1 (en) * 2001-03-01 2003-04-22 3Com Corporation Method for unit distance encoding of asynchronous pointers for non-power-of-two sized buffers
US6977948B1 (en) * 2001-08-13 2005-12-20 Utstarcom, Inc. Jitter buffer state management system for data transmitted between synchronous and asynchronous data networks

Also Published As

Publication number Publication date
CN1549963A (zh) 2004-11-24
US20030046498A1 (en) 2003-03-06
EP1425656A1 (en) 2004-06-09
KR20040039315A (ko) 2004-05-10
US7457894B2 (en) 2008-11-25
WO2003019350A1 (en) 2003-03-06

Similar Documents

Publication Publication Date Title
US5854911A (en) Data buffer prefetch apparatus and method
US7436728B2 (en) Fast random access DRAM management method including a method of comparing the address and suspending and storing requests
US7490185B2 (en) Data processing system, access control method, and access control device
EP1068734B1 (en) Method and apparatus for controlling data flow between devices connected by a memory
US5526508A (en) Cache line replacing system for simultaneously storing data into read and write buffers having multiplexer which controls by counter value for bypassing read buffer
US5594927A (en) Apparatus and method for aligning data transferred via DMA using a barrel shifter and a buffer comprising of byte-wide, individually addressabe FIFO circuits
US6131151A (en) Processing high-speed digital datastreams with reduced memory
US20080228991A1 (en) Ring buffer management
KR20070114714A (ko) 통신 시스템의 통신 링크를 통해 메시지에 데이터를전송하기 위한 전송 방법, 통신 모듈, 통신 시스템의서브스크라이버 및 상기 전송 방법을 구현하기 위한 통신시스템
US6473838B1 (en) Data transfer system for multiple network processors using dual DRAM storage
US7111289B2 (en) Method for implementing dual link list structure to enable fast link-list pointer updates
JP2005501329A (ja) シーケンシャルおよび非シーケンシャルブロックアクセスを有するバッファ・システム
US6122717A (en) Methods and apparatus for a memory that supports a variable number of bytes per logical cell and a variable number of cells
CN101303685B (zh) 可提升通用序列总线储存设备的读写数据速率的方法
KR100676981B1 (ko) 데이터 처리 장치 및 방법과 컴퓨터 판독가능한 기록 매체
US8261023B2 (en) Data processor
CN105354153B (zh) 一种紧耦合异构多处理器数据交换缓存的实现方法
US8145852B2 (en) Device having shared memory and method for providing access status information by shared memory
KR100676982B1 (ko) 데이터 처리 장치 및 방법과 컴퓨터 판독 가능 저장 매체
US8484411B1 (en) System and method for improving access efficiency to a dynamic random access memory
US6119202A (en) Method and apparatus to interleave level 1 data cache line fill data between system bus and level 2 data cache for improved processor performance
US6876664B1 (en) Asynchronous data buffer and a method of use thereof
US6961801B1 (en) Method and apparatus for accessing video data in memory across flow-controlled interconnects
US20030217232A1 (en) Data transfer unit with support for multiple coherency granules
US6651114B1 (en) DMA controller which optimizes transfer rate of data and method therefor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050819

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20061221