(57)【要約】階層的メモリ・アクセス制御は、順次にアクセスされると知られているデータのブロックと、シーケンシャルにまたは非シーケンシャルにアクセスされ得る各ブロックの内容との間を区別する。もしブロックの内容がそのブロック内でシーケンシャルな仕方で与えられるが、ブロック内のシーケンス（順序）の初めの非ゼロオフセットのせいでそのシーケンスがより高いレベルのシーケンスに対応しなければ、このメモリ・アクセス制御は、ブロック内シーケンス（順序）がより高いレベルのシーケンスに対応するときを知らせることによって利用可能メモリの使用を最適化するように構成される。ブロック内シーケンスは、より高いレベルのシーケンスとは異なるが、バッファへのアクセスは、バッファのより高いレベルの区割りに制限される。ブロック内シーケンス（順序）がより高いレベルのシーケンスに対応しているときはバッファへのアクセスは、バッファのブロック内区割りで行われる。この仕方では、より高いレベルのシーケンスに対するブロック内シーケンスのオフセットの程度によって、バッファへのアクセスはしばしば、ブロック全体がバッファに与えられるより十分に前に行われ、それによってメモリがアクセスされ得る速度を最適化する。
2005501329.tif 000002
【特許請求の範囲】
【請求項１】
第１のポインタと第２のポインタとを介してアクセスされるように構成されたバッファと、
前記第１のポインタに基づいて前記第２のポインタを制限するように構成されたバッファ・マネージャと、を備え、
前記第１のポインタは、前記バッファへのシーケンシャルブロックレベル・アクセスと前記バッファへの独立のブロック内アクセスとを与えるように構成されており、
前記バッファ・マネージャは、前記第１のポインタのシーケンシャルブロックレベル・アクセスに対応する限度値に第２のポインタを制限するように構成されている、バッファ・システム。
【請求項２】
前記バッファ・マネージャは更に、前記バッファへの独立ブロック内アクセスが前記バッファへのシーケンシャルブロックレベル・アクセスに対応しているとき、前記第１のポインタに対応するように前記限度値をリセットするように構成されている、請求項１に記載のバッファ・システム。
【請求項３】
前記第１のポインタは、ブロック・アドレスとオフセット・アドレスとを含んでおり、
前記バッファ・マネージャは、
前記バッファへの独立ブロック内アクセスがシーケンシャルブロックレベル・アクセスに対応していないとき、前記ブロック・アドレスに対応するように前記限度値をセットし、
前記バッファへの独立ブロック内アクセスがシーケンシャルブロックレベル・アクセスに対応しているとき、前記ブロック・アドレスと前記オフセット・アドレスの組合せに対応するように前記限度値をセットするように構成される、請求項１に記載のバッファ・システム。
【請求項４】
前記第１のポインタと前記第２のポインタは、前記バッファにデータを書き込むための書込みポインタと、前記バッファからデータを読み取るための読取りポインタとに対応する、請求項１に記載のバッファ・システム。
【請求項５】
前記第１のポインタは、前記シーケンシャルブロックレベル・アクセスに対応するブロック・アドレスと、前記独立ブロック内アクセスに対応するオフセット・アドレスとを含んでおり、
前記バッファ・マネージャは更に、シーケンシャルブロックレベル・アクセス間でオフセット・アクセスへの変更を最小にするように構成される、請求項１に記載のバッファ・システム。
【請求項６】
前記バッファ・マネージャは更に、前記第１のポインタを介しての前記バッファのブロックレベル・アクセスの完了より前に前記限度値を進めるように構成される、請求項１に記載のバッファ・システム。
【請求項７】
前記バッファ・マネージャは更に、前記限度値の進みに対応するグレイ・コード・シーケンスを介して前記限度値を伝達するように構成される、請求項６に記載のバッファ・システム。
【請求項８】
前記バッファ・マネージャは更に、グレイ・コード・シーケンスを介して前記限度値を伝達するように構成される、請求項１に記載のバッファ・システム。
【請求項９】
バッファへのアクセスを制御するためのバッファ管理システムであって、
前記バッファへの第１のアクセスが非シーケンシャルであるときにラップ信号をアサートするように構成され、更に前記ラップ信号に依存して前記バッファへの第２のアクセスを制限するように構成されるバッファ・マネージャを備えている、バッファ管理システム。
【請求項１０】
前記バッファへの前記第１のアクセスは、ブロック・アドレスとオフセット・アドレスとに基づくアクセスを含んでおり、
前記バッファへの前記第２のアクセスは、前記ラップ信号がアサートされるときに前記ブロック・アドレスに制限され、前記ラップ信号がデアサートされるとき前記ブロック・アドレスと前記オフセット・アドレスの組合せに制限される、請求項９に記載のバッファ管理システム。
【請求項１１】
前記第２のアクセスの限度の変更は、グレイ・コード・シーケンスを介して伝達される、請求項１０に記載のバッファ管理システム。
【請求項１２】
前記バッファ・マネージャは更に、前記バッファへの前記第１のアクセスが終了したときにアイドル信号をアサートするように構成されており、
前記バッファへの前記第２のアクセスは更に、前記アイドル信号がアサートされるときに前記ブロック・アドレスに制限される、請求項１０に記載のバッファ管理システム。
【請求項１３】
前記第１のアクセスと前記第２のアクセスは、前記バッファへの書込みアクセスと前記バッファへの読取りアクセスとに対応する、請求項９に記載のバッファ管理システム。
【請求項１４】
前記バッファへの第１のアクセスに対応するブロック・アドレスとオフセット・アドレスとを決定するステップと、
前記オフセット・アドレスが前記ブロックアドレスに関して非シーケンシャルになるのは何時かを決定するステップと、
前記オフセット・アドレスが非シーケンシャルであるとき、前記バッファへの第２のアクセスを前記ブロックアドレスに制限するステップと、を含む、バッファへのアクセスを制御する方法。
【請求項１５】
前記オフセット・アドレスが前記ブロック・アドレスに関してシーケンシャルになるのは何時かを決定するステップと、
前記オフセット・アドレスがシーケンシャルであるとき、前記ブロック・アドレスと前記オフセット・アドレスの組合せに前記バッファへの前記第２のアクセスを制限するステップとを更に含む、請求項１４に記載の方法。
【請求項１６】
前記第２のアクセスを制限するステップは、前記ブロック・アドレスの変化に対応するグレイ・コード・シーケンスを決定するステップを含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理および／または通信の分野に関し、また特に一方のシステムが非シーケンシャル仕方でバッファにアクセスするように構成されている二つのシステムの間をインタフェースするためのバッファの制御に関する。
【０００２】
バッファは一般に、システム間、特にデータを非同期的に転送するシステム間をインタフェースするために使用される。このようなデータ転送バッファは一般に、第１のシステムから同期的または非同期的にデータを受信し、それを第２のシステムからの要求に応じて第２のシステムに供給するように構成されている。対応するデータ項目が第２のシステムに与えられる前にそのデータが第１のシステムから受信されることを保証するためにバッファ・マネージャが使用される。すなわちこのバッファ・マネージャは、受信器がデータを受信できる速度を、データを送信している送信器の対応する速度に整合させる。
【０００３】
図１は、送信システムからの各データ項目を書込みポインタ１１０によって指示された場所に格納するように構成された例示的バッファ１００を示す。各データ項目が格納されると、書込みポインタ１１０はインクリメントされて次のデータ項目を格納する場所を指示する。データは、書込みポインタ１１０に等しくなるように読取りポインタ１２０を初期化し、それから要求に応じて各データ項目を順次、受信システムに与えることによって受信システムに与えられる。各データ項目が受信システムに与えられると、読取りポインタ１２０は、インクリメントされて次の利用可能なデータ項目の場所を指示する。未だ書き込まれていない場所を読取りポインタ１２０が指示しないことを保証するために読取りポインタ１２０は、限度１３０を超えないように制約される。この限度は、データ項目がバッファ１００内に格納されるに伴って連続的に調整され、また一般に書込みポインタ１１０に対応している。参照と理解とを容易にするために以後、限度１３０は、それが書込みポインタ１１０と同じパラメータであっても、ある固有のパラメータとして論じられる。
【０００４】
限度１３０は、メモリ・アクセス・コントローラによるか、直接的に受信システムによって実施される。すなわち一般に限度１３０は、メモリ・アクセス・コントローラによって利用可能にされ、また読取りポインタ１２０を保守することと、このポインタが限度１３０を超えて「追跡」しないことを保証することとは、受信システムの責任である。
【０００５】
一般にバッファ１００は、サイズが有限であって、バッファ１００によって受信され得るデータ項目の総数よりも実質的に小さい。バッファの連続使用を考慮するためにバッファは、ポインタがバッファの終わりに達したときにバッファの先頭にリセットされるよう、「循環的」になるように構成される。循環バッファ内で前述の限度１３０を実施するためのアルゴリズムは、一般的に利用可能である。特定の実施形態によれば書込みポインタ１１０もまた、それが循環バッファの周りをループした後に読取りポインタ１２０に対応する限度を超えて追跡しないように制限することができる。すなわち送信システムは、前のデータが未だ受信システムによって読み取られていない場合にデータをバッファ１００内に格納しないように防止されるであろう。代替として読取りポインタ１２０は、新しいデータが到着するとき、書込みポインタより前の位置を維持するために前進できて、未読取りデータは新しく到着したデータによって上書きされる。参照と理解とを容易にするために今後、本発明は、読取りポインタの限度の実施に関して提示されるが、書き込みポインタ１１０の限度の実施も実質的に同じである。
【０００６】
バッファ１００のサイズは、バッファに対する読取り速度と書き込み速度との間の許容可能なずれを決定、かつ／または、制御されない送信器の場合にバッファ１００のサイズは送信器と受信器との間の速度のずれによる損失データの量を、決定する。制御された送信器の場合、バッファ１００は、平均の送信速度と受信速度との等化を実施するように働き、バッファ１００のサイズは、この平均データ速度を中心とした許容される変動の度合いを決定する。
【０００７】
上述のようにバッファ１００にデータを供給するシステムとバッファ１００からデータを受信するシステムとは非同期的である。したがって限度１３０の更新は、一方のシステムまたは他方のシステムとだけ同期できる。ポインタまたは限度がインクリメントされるときに誤読されないことを保証するために、ポインタは一般にグレイ・コードを使用して符号化されてインクリメントされるが、この場合、インクリメント遷移時にポインタの１ビットだけが変化する。この仕方では、限度１３０の遷移時における限度１３０の非同期読取りは、限度１３０の前の値か次の値のいずれかを与えるであろう。限度１３０の前の値の実施はなお、読取りポインタ１２０が書込みポインタ１１０を超えて追跡することを防止するので、グレイ(gray)・コード・シーケンスの使用は、限度１３０が何時読み取られるかということとは無関係に読取り処理の完全性を保証する。
【０００８】
非同期的な読取り・書き込みアクセスのためのこの従来の２ポート（データ・イン、データ・アウト）バッファ方式は、バッファ１００へのデータの書込みがシーケンシャルであることを基本的前提としている。すなわち読取りポインタ１２０と限度１３０との間の記憶場所のすべては、有効なデータを持っているということが本来的に想定されている。更に下記に論じられる幾つかのアプリケーションではデータは、幾分非シーケンシャルな仕方でのバッファへの書込みのために更に効率的に利用可能にされ得る。
【０００９】
本発明の目的は、バッファといったメモリ装置への非シーケンシャルアクセスを考慮したメモリ・アクセス方法および装置を提供することである。本発明の更なる目的は、利用可能なメモリの使用を最適化するメモリ・アクセス方法および装置を提供することである。
【発明の開示】
【課題を解決するための手段】
【００１０】
これらの目的その他は、階層的メモリ・アクセス制御方法および装置を提供することによって達成される。この階層的メモリ・アクセス制御は、順次にアクセスされると知られたデータのブロックと、シーケンシャルにまたは非シーケンシャルにアクセスされ得る各ブロックの内容との間を区別する。もしブロックの内容がそのブロック内でシーケンシャルな仕方で与えられるが、ブロック内のシーケンス（順序）の初めの非ゼロオフセットのせいでそのシーケンスがより高いレベルのシーケンスに対応していなければ、メモリ・アクセス制御は、ブロック内シーケンス（順序）がより高いレベルのシーケンスに対応するときを知らせることによって、利用可能メモリの使用を最適化するように構成される。ブロック内シーケンス（順序）はより高いレベルのシーケンスとは異なるが、バッファへのアクセスはバッファのより高いレベルの区割りに制限される。ブロック内シーケンスがより高いレベルのシーケンスに対応しているとき、バッファへのアクセスは、バッファのブロック内区割りで行われる。この仕方では、より高いレベルのシーケンスに対するブロック内シーケンスのオフセットの程度によって、バッファへのアクセスはしばしば、ブロック全体がバッファに与えられるより十分に前に行われ、それによってメモリがアクセスされ得る速度を最適化する。
【発明を実施するための最良の形態】
【００１１】
本発明は、例示を用いまた、付属の図面を参照しながら更に詳細に説明される。
【００１２】
これらの図面を通して同じ参照数字は、類似または対応する特徴あるいは機能を示す。
【００１３】
多くのアプリケーションでは明らかにシーケンシャルなデータは階層様式で格納され、この場合個々のデータ項目は論理的または物理的に複数のブロックに区分される。例えばＭＰＥＧ符号化画像は、画像を形成する一連の８×８ピクセル・ブロックとして格納され、ｎ次元データ・アレイは、一連の１次元アレイ・ブロックとして格納されるなど、以下同様である。
【００１４】
この情報のブロック区分は、バッファ管理の複雑さを低減する機会を提供する。例えば１ブロックのデータがバッファを介して一つのコンポーネントから他のコンポーネントに転送されることになっているとき、バッファ管理は、データレベルよりむしろブロックレベルで実施できる。すなわち例えば１ブロックのデータが書き込まれつつあるとき、バッファ・マネージャは単に、ブロック全体が転送されるまでそのブロックの初めに図１の限度１３０をセットすることだけを必要し、それによってブロックが転送されつつあるときに読取りポインタと書き込みポインタとを同期させる必要を避けている。
【００１５】
読取りポインタと書き込みポインタとの同期化を単純にすることに加えて、ブロックレベルのバッファ管理を行うことは、ブロック内読取り動作または書込み動作が非シーケンシャルであることを可能にする。すなわちブロックが書き込まれつつあるときにはそのブロックへの読取りアクセスは許されないので、書き込み処理は、読取り処理がブロック内の新旧データを混合して読み取るであろうという懸念なしに、ブロック内のデータを如何なる順序にでも配置することができる。同様の仕方で、もし読取り処理が、あるブロックにアクセスしていれば、書き込み処理は、そのブロック内の如何なるデータ項目も修正することを妨げられる。
【００１６】
ブロックレベルでバッファ・アクセスを管理することによって、ブロック内読取り・書込みアクセスは、図１の従来技術におけるように最適化を順次転送に制限することなく、データ転送に使用される特定の処理に関して最適化できる。
【００１７】
データ・アクセスの最適化は、高速パイプライン・データ処理またはその他の多重アクセス処理でのデータ・アクセスを含むアプリケーションにとって特に重要である。高速メモリへのデータ・アクセスは、１バンクのメモリにデータ読取りラインをプレチャージし、それから読み取られるデータの値に基づいて適当な出力装置を駆動することによって行われることが多い。プレチャージが行われているときに読取り要求が遅延を受けないように、プレチャージ処理は、読取り要求が到着する時点より前に行われることが好ましい。もしある特定のメモリのバンクが１メモリ・アクセス・サイクル内でアクセスされる場合には、次のサイクルはプレチャージのために使用されることが好ましい。
【００１８】
続けて２回の同じバンクへのアクセスを避ける一つの方法は、要求に応じて一つのバンク内に一連のアクセスの開始アドレスをオフセットすることである。例えばＭＰＥＧマクロブロックは、一つの８×８ブロックのピクセルに対応しており、ビデオ処理で使用される一般のメモリ構造は、１セット・８個のバンクであり、各バンクは８ピクセルの幅である。すなわち８ライン・セグメントのマクロブロックの各８ピクセル幅ライン・セグメント内のデータは、異なるバンクに含まれる。したがって各ライン・セグメントをアクセスすることは、前述のプレチャージ遅延を防止する。しかしながら、もしこれらのバンクへの並列多重アクセスが行われれば、これらの多重アクセスは、同じバンクへのシーケンシャルなアクセスという結果を招く可能性がある。１バンク内のライン・セグメントがアクセスされる順序に修正を考慮することによって、同じメモリ・バンクへの反復アクセスを避けることができる。すなわち例えば、もし他方の処理があるブロックへのアクセスを開始したときに一方の処理が現にバンク１をアクセス中であったとすれば、他方の処理は、プレチャージ遅延を受ける可能性のある通常の１−２−３−４−５−６−７−８の順序の代わりに７−８−１−２−３−４−５−６の順序で８個のバンクをアクセスするように構成できる。
【００１９】
図２は、本発明による非シーケンシャルブロック内アクセス・ポインタを有する例示的バッファ・システムを示す。書込みポインタ２１０から引かれる多数の矢印によって示されるように、本発明の書込みポインタ２１０は、バッファ１００内の複数のメモリ要素、あるいは１ブロックのメモリ要素（Ｂ８、Ｂ９、．．．．）のどれか一つをポイントできるように構成されている。この例は、上述の例示的ライン・セグメント・アクセスのシナリオと一致するように示されており、１ブロック・８個のライン・セグメントがアクセスされている。この例を使うと、メモリ要素Ｂ８は第１のライン・セグメントに対応する８個のピクセル値を格納するように構成され、メモリ要素Ｂ９は第２のライン・セグメントに対応する８個のピクセル値を格納するように構成され、以下同様である。上記の例では第８のライン・セグメントのデータが最初に抽出されると、書込みポインタ２１０は単に、第８のライン・セグメントに対応する８個のピクセル値を格納するように構成されたメモリ要素Ｂｆをポイントする。続いて第１のライン・セグメントのデータが抽出されると、書込みポインタ２１０は、メモリ要素Ｂ８をポイントし、以下同様なことが８個のピクセル値の８セットの各々がメモリ要素Ｂ８からＢｆ内にロードされるまで続けられる。
【００２０】
ブロックＢ８からＢｆ内へのメモリ・アクセスは非シーケンシャルであるか、ブロックへの非ゼロ・オフセットを使用してシーケンシャルであり得るが、図２の矢印２１１で示されるように第１の８×８ブロックから第２の８×８ブロックへのメモリ・アクセス、などなどといったブロックレベルでのメモリ・アクセスはシーケンシャルであることに留意すべきである。したがってシーケンシャルな限度パラメータに基づく信頼度の高い二重アクセス処理の前述の実施は、ブロック内レベルで適用できなくてもブロックレベルで実施可能である。
【００２１】
本発明の一態様によれば限度２３０は、書込みポインタ２１０がブロック内のデータを如何なる順序で与えても、ブロックを有するメモリ要素の各々が適当なデータをロードされるまで、読取りポインタ２２０がブロックＢ８からＢｆ内に到達するのを防止するためにメモリ要素Ｂ８からＢｆのブロックの先頭にセットされるように構成される。
【００２２】
このブロック転送が完了すると書込みポインタ２１０は、８個のメモリ要素からなるその次のブロックに進められ、限度２３０はブロックＢ８からＢｆの終わりにセットされる。その後、読取りポインタ２２０は、例示的符号器へのデータの転送を可能にするためにブロックＢ８からＢｆに進むことができる。このようにしてブロックレベルで限度パラメータ２３０を制御することによって信頼度の高いバッファ・アクセスを行うことができる。
【００２３】
上記の説明は、１ブロック内での非シーケンシャル書込みアクセス時にブロックレベルでの読取りアクセスを制御する手法を提示しているが、この同じ処理は、バッファ１００からの非シーケンシャル読取り時にブロックレベルでの書込みアクセスを制御するために実施できることに留意されたい。例えば読取りポインタ２２０は、上述のバッファ１００への非シーケンシャル書込みアクセスと同様に、第８のライン・セグメントの他の値を含むライン・バッファにこれらの値を格納するために第８のメモリ要素を最初に読み取るように構成できる。この例では書込みポインタ２１０は、８個のメモリ要素の各々が読み取られるまでこの特定のブロックに届かないように制限されるであろう。上述のように、参照と理解とを容易にするために本発明は、バッファへの非シーケンシャルな書込みアクセスのパラダイムを使用して提示されているが、バッファへの他の非順次アクセスへの、ここに開示された原理の適用は、この開示に基づいて当該技術分野における当業者にとって明らかであろう。
【００２４】
図３は、本発明によるバッファ管理システム３００の例示的なブロック図を示す。図示のようにバッファ管理システム３００は、送信器あるいは送信コンポーネント３１０から受信器あるいは受信コンポーネント３２０へのデータの転送を管理する。本発明によればバッファ・マネージャ３５０は、ブロックレベルのシーケンシャル書込みアクセスに基づいて読取りアクセスに関する限度２３０を決定する。読取りアクセスのために使用される特定のプロトコルに依存してバッファ・マネージャ３５０は、限度２３０を超えるメモリ要素へのアクセスを拒否することによって限度２３０を実施するか、あるいは限度２３０の自動実施のために受信器３２０に限度２３０を通知する。図２、３の円形の矢印２１２は、シーケンシャルであることもないこともあり得るブロック内メモリ・アクセスを示すことを意図しているが、円形矢印２１１は、シーケンシャルなブロック対ブロックのメモリ・アクセスを示している。本発明の第１の態様によればバッファ・マネージャ３５０は、潜在的に非シーケンシャルなブロック内アクセス２１２が処理中であるときに読取りポインタ２２０がブロックに届くのを防止するように限度２３０を決定する。
【００２５】
本発明の第２の態様によればシステム３００の性能は、メモリ・アクセスの順序付けがより高いレベルの順序付けに何時対応するかを決定することによって更に改善される。順序の方向が、はじめは昇順アドレス順序により、次いで降順アドレス順序によって各々の次のブロックアクセスで変化する例示的なメモリ・アクセスを考える。読取り処理中の昇順アドレス順序を想定すれば、バッファ・マネージャ３５０は、書込みシーケンスがより高いレベルの読取り順序付けと同じ方向にあるために、ブロックが下降アドレス順序で書き込まれているときには読取りポインタ２２０がブロック内に届くのを防止するようにし、ブロックが上昇アドレス順序で書き込まれているときには読取りポインタ２２０がブロック内に届くことを可能にするように構成されることが好ましい。このようにして読取りポインタ２２０は、ブロックアクセスの半分に関して遅延するだけであるが、ブロック内書込み処理は、より高いレベルの読取り順序付けの方向とは反対である。
【００２６】
またシーケンス（順序）７−８−１−２−３−４−５−６といった初期の非ゼロ・ブロック内オフセットを有する前述の順次アクセスを考えてみる。この例では従来のより高いレベルの順次アクセスが低いアドレスから高いアドレスに行われると仮定して、ブロック内順次アクセスは、最後の項目がアクセスされた後に最初の項目に戻る循環リセットによってブロック順序付けと同じ方向に、すなわちローからハイに行われる。書込みポインタ２１０が初めに「８」に進められるとき、第８のデータ項目より下方のメモリ位置の少なくとも一部は未だ書き込まれていないので、読取りポインタ２２０によるメモリ・アクセスは、ブロック内から除外されなくてはならない。しかしながら書込みポインタ２１０が「２」に進められると、読取りポインタは、書込みポインタが「１」にあったときに格納されたデータ項目にアクセスすることを許され得る。同様に書込みポインタ２１０が「４」に進められると、読取りポインタ２２０は、未だ書き込まれていないメモリ位置から値を読み取る恐れなしに、項目１、２、３のどれにでもアクセスすることを許され得る。
【００２７】
本発明によればバッファ・マネージャ３５０は、書き込まれたメモリ要素「より下方」の如何なる要素も未だ書き込まれていない（すなわち未だ「有効」でない）ときに限度２３０を維持するように、またより下方で他の各メモリ要素が有効であるメモリ要素に対応する値２３０′に限度２３０をリセットするように構成される。この仕方では、ブロック内書込みポインタがブロックレベルの順序付けと一致すると直ぐに、読取りアクセスが開始できる。これに関して「より下方」は、ブロックレベルの順序付けの方向の対象要素より前のメモリ要素を意味すると定義される。すなわちもしブロックレベル順序付けがローからハイであれば、「より下方の」メモリ要素は、対象要素より低いアドレスあるいはインデックスを持っており、これに対してもしブロックレベル順序付けがハイからローであれば、「より下方の」メモリ要素は、対象要素より高いアドレスあるいはインデックスを持っている。
【００２８】
より下方のメモリ要素のすべてが何時有効になるかを決定するためには、種々の手法のどれでも使用することができる。図２に示すような好適な実施形態では、書込みポインタ２１０は、ブロック・アドレス２５０に関するオフセット２６０に対応する。もしブロック内シーケンスの順序付けがブロック対ブロックのシーケンスと同じ方向（ハイからロー、またはローからハイ）であれば、一旦このオフセット２６０がゼロに等しくなると、アドレス２５０のブロック内の後続のすべての書込みポインタ２１０・アクセスは、すべての「より下方の」メモリ要素が前にアクセスされていて、したがって有効になっているであろうといったことになる。
【００２９】
上述の例では参照を容易にするために一定のブロック・サイズを使用していることに留意されたい。本技術に通常のスキルを有する人にとって明らかであるように、前述の処理を実施するために必要とされるパラメータは、ブロックの初めとブロックの終わり（等価的にはブロックのサイズ）だけである。更に、ブロックのサイズは、各トランザクションによって変わることもある。
【００３０】
図４は、本発明の好適な実施形態によるバッファ管理システムのメモリ・アクセス限度を決定するための例示的論理図を示し、図５は、図４の論理に対応するメモリ・アクセスを追跡するための例示的タイミング図を示す。この例示的実施形態では「ラップ」信号は、書込みポインタ２１０（図２）が初めにオフセットされるのは何時かを示すので、アドレス２５０のブロックを有する一つ以上の「より低い」メモリ要素はスキップされ、未だ書き込まれていない。「アイドル」信号は、非書込み条件を示す（読取りポインタがオフセットされるという代替条件では「アイドル」信号は非読取り条件を示す）。
【００３１】
ラップ信号かアイドル信号のいずれかがアサートされると、ＮＯＲゲート４１０は、セレクタ４２０を介してブロック・アドレス２５０を選択して限度２３０を形成する。ラップ信号もアイドル信号もどちらもアサートされないと、ＮＯＲゲート４１０は、ブロック・アドレス２５０とオフセット２６０との合計４３０を選択して限度２３０を形成する。すなわち現在アクティブになっている書込みポインタ２１０が、「より下方の」アドレスすべてはスキップされていないといったことであると、限度パラメータ２３０は、この書込みポインタ２１０に対応するようにセットされる（この例示的実施形態では読み取りポインタ２２０は、「より下方」の上述の定義を使用すれば限度２３０の「より下方」にあるように制限されるであろう）。
【００３２】
図５は、図４の論理に対応するメモリ・アクセスを追跡するための例示的タイミング図を示す。この例では、０から７までのアドレスを含むブロック５１０と、８からｆまで（１６進）のアドレスを含むブロック５１１の二つのブロックの動作を示している。第１のブロック５１０は、初めにアドレス「６」でアクセスされ、その後アドレス７を介して順序付けされ、それからアドレス０に、それからアドレス１から５にリセットされる。第２のブロック５１１は、初めにアドレス「ｄ」でアクセスされ、その後アドレスｅ、ｆを介して順序付けされ、それからアドレス８に、それからアドレス９、ａ、ｂ、ｃにリセットされる。便宜上、ポインタ・アドレス５１０、５１１に対応するオフセット値およびブロック値はそれぞれ、５２０、５２１および５５０、５５１で示されている。
【００３３】
この例に示すように、第２のブロック５１１をアドレス「ｄ」から始めることによって第２のブロック５１１の第１のオフセット値（５）は、第１のブロック５１０の最後のオフセット値と同じになる。もし前に論じたように各々の新しいオフセット値がライン・バッファへの１ライン・データの読込みといったメモリ・アクセス動作、あるいは他の時間のかかる動作を必要とすれば、図５に示すシーケンスは、前のオフセット値を保持することによって、このような１ブロックアクセス当り１動作を除去する。
【００３４】
第１のブロック５１０がアドレス６、７でアクセスされると、バッファ・マネージャ（図３の３５０）はラップ信号５３０をアサート(assert)し、それによって限度５６０をブロック・アドレス５５０にセットする。ブロック内順序付けがブロックレベル順序付けに対応することを示すラップ信号がデアサート(deassert)されると５３０'、限度５６０は、ブロック・アドレス５５０とオフセット５２０の組合せであるアドレス５１０に対応するようにセットされる。同様に第２のブロック５１１がアドレスｄ、ｅ、ｆでアクセスされると、限度５６０は、ブロック・アドレス５５１にセットされ、その後、ブロック・アドレス５５１とオフセット５２１の組合せにセットされる。
【００３５】
本発明の好適な実施形態では、グレイ・コード・シーケンスの従来の使用に関して前に論じたように、もし受信システムが遷移中の限度を読み取ると、限度が遷移直前または遷移直後の値になるように、限度５６０の伝達は、グレイ・コード・シーケンスを介して行われる。限度５６０を受信システムに伝達して、ブロック・アドレス５１０に対応する書込みポインタを追跡するために追跡信号５７０が備えられている。書込みポインタがアドレス「１」に進んだ後にだけ、読み取りポインタは、アドレス「０」に進むことを許され、その後に追跡信号は、アドレス１から７を逐次追跡する。追跡信号５７０に完全な順序を与えることによって実際の限度５６０に対応するギャップあるいはジャンプなしに、この追跡信号に対応するグレイ・コード・シーケンスは、受信システムに対して限度の信頼度の高い伝達を行う。すなわち例えば、時刻５０１において限度５６０は実際に８であり、受信システムが値０から７のうちのどれでもアクセスできることを示している。しかしながら時刻５０１より前では、限度は５である。５から８への限度の変化は、限度の値が変化しつつあるときに受信器がその限度を読取ろうとする可能性があるので、高い信頼度で伝達することはできない。グレイ・コード順序付けは、この信頼性を与えるが、それはシーケンスが連続している場合だけである。追跡信号５７０は、シーケンスにギャップやジャンプのないこの連続したシーケンスを与える。
【００３６】
前述の説明は単に、本発明の原理を示すものである。このようにして、当業者は、ここに明示的に説明または図示されてはいないが本発明の原理を具現していて添付の請求項の精神と保護の範囲の内に在る種々の構成を案出できるであろうということは認められるであろう。
【図面の簡単な説明】
【００３７】
【図１】シーケンシャル読取り・書き込みポインタを有する例示的従来技術のバッファ・システムを示す図。
【図２】本発明による非シーケンシャルアクセス・ポインタを有する例示的バッファ・システムを示す図。
【図３】本発明によるバッファ管理システムの例示的ブロック図。
【図４】本発明によるバッファ管理システムのメモリ・アクセス限度を決定するための例示的論理図。
【図５】本発明によるメモリ・アクセスを追跡するための例示的タイミング図。
【符号の説明】
【００３８】
１００  バッファ
１１０、２１０  書込みポインタ
１２０、２２０  読取りポインタ
２５０  ブロックアドレス
２６０  オフセット
３００  バッファ管理システム
３１０  送信器
３２０  受信器
３５０  バッファマネージャ
４１０  ＮＯＲゲート
４２０  セレクタ
５１０  第１のブロック
５１１  第２のブロック
５２０  オフセット
５３０  ラップ信号
５５０  ブロックアドレス
５６０  限度
５７０  追跡信号
【図１】
2005501329.tif 000003
【図２】
2005501329.tif 000004
【図３】
2005501329.tif 000005
【図４】
2005501329.tif 000006
【図５】
2005501329.tif 000007
【国際公開パンフレット】
2005501329.tif 000008
2005501329.tif 000009
2005501329.tif 000010
2005501329.tif 000011
2005501329.tif 000012
2005501329.tif 000013
2005501329.tif 000014
2005501329.tif 000015
2005501329.tif 000016
2005501329.tif 000017
2005501329.tif 000018
2005501329.tif 000019
2005501329.tif 000020
2005501329.tif 000021
2005501329.tif 000022
2005501329.tif 000023
2005501329.tif 000024
2005501329.tif 000025
【国際調査報告】
2005501329.tif 000026
2005501329.tif 000027