(57)【要約】デジタル信号処理システムは、プログラマブルプロセッサＰＲＯＣ、及びバースト発生装置ＢＧを介してプログラマブルプロセッサに結合される周辺装置ＰＤ，ＭＥＭを有する。プロセッサは、シングルデータエレメントに関して、リード動作及びライト動作のそれぞれを使用して周辺装置と通信するために構成される。バースト発生装置ＢＧは、複数のリード動作又は複数のライト動作をシングルバーストリード動作又はシングルバーストライト動作のそれぞれにグループ化する。
2008510246.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルプロセッサと、前記プログラマブルプロセッサに結合される周辺装置とを有するデジタル信号処理システムであって、
前記プロセッサは、シングルデータエレメントに関するリード動作及びライト動作のそれぞれを使用して前記周辺装置と通信するために構成され、
複数のリード動作又は複数のライト動作をシングルバーストリード動作又はシングルバーストライト動作のそれぞれにグループ化するために構成されるバースト発生手段を有する、
ことを特徴とする処理システム。
【請求項２】
前記プログラマブルプロセッサは、バーストリード動作又はバーストライト動作をそれぞれ使用して前記周辺装置と通信するために更に構成され、
前記バースト発生手段は、前記シングルバーストリード動作において、前記バーストリード動作及び更なるバーストリード動作、又は少なくとも１つのリード動作をグループ化し、前記シングルバーストライト動作において、前記バーストライト動作及び前記更なるバーストライト動作、又は少なくとも１つのライト動作をグループ化するために構成される、
ことを特徴とする請求項１記載の処理システム。
【請求項３】
前記バースト発生手段は、前記バーストリード動作又は前記バーストライト動作を２以上のバースト動作に分割するために更に構成される、前記バーストリード動作又は前記バーストライト動作のそれぞれが前記シングルバーストリード動作又は前記シングルバーストライト動作のそれぞれの所望のサイズよりも大きなサイズを有する、
ことを特徴とする請求項２記載の処理システム。
【請求項４】
前記プログラマブルプロセッサは、前記バースト発生手段のための制御情報を記憶するために構成される少なくとも１つのコンフィギュレーションレジスタを有する、
ことを特徴とする請求項１記載の処理システム。
【請求項５】
前記コンフィギュレーションレジスタは、前記シングルバーストリード動作又は前記シングルバーストライト動作のそれぞれの所望のサイズを記憶するために構成される、
ことを特徴とする請求項４記載の処理システム。
【請求項６】
前記コンフィギュレーションレジスタは、２つの連続するシングルバースト動作の間の最大の時間インターバルを制御するために使用されるタイムアウト値を記憶するために更に構成される、
ことを特徴とする請求項５記載の処理システム。
【請求項７】
前記バースト発生手段は、
前記プログラマブルプロセッサからの前記リード及びライト動作を受け、前記リード及びライト動作から導出される情報に基づいて専用のトークンを生成し、前記シングルバーストリード動作又は前記シングルバーストライト動作のそれぞれのリリースをトリガするために構成されるコレクタ回路と、
専用のトークンを記憶する第一のFast-In-Fast-Out（FIFO）バッファと、
前記リード及びライト動作のそれぞれから導出される情報を記憶する第二のＦＩＦＯバッファと、
前記第一のＦＩＦＯバッファから受信される専用のトークンの制御下で、前記第二のＦＩＦＯバッファから、前記シングルバーストライト動作又は前記シングルバーストリード動作のそれぞれのリリースを始動するために構成されるリリース回路と、
を有することを特徴とする請求項１記載の処理システム。
【請求項８】
前記バースト発生手段は、前記シングルバースト動作が前記シングルバースト動作の所望のサイズに等しくないサイズを有する場合、前記シングルバーストリード動作又は前記シングルバーストライト動作のそれぞれのリリースをトリガするために更に構成される、
ことを特徴とする請求項２記載の処理システム。
【請求項９】
前記シングルバースト動作のリリースは、前記複数のリード動作又は前記複数のライト動作がシングルデータエレメントのステップサイズに対応するステップサイズをもつ増加する順序にある対応する複数のメモリアドレスによるかに依存する、
ことを特徴とする請求項８記載の処理システム。
【請求項１０】
前記シングルバースト動作のリリースは、前記バースト発生手段により受けた、次のバーストライト又はリード動作のそれぞれが、前記シングルバースト動作の所望のサイズに等しいサイズを有するかに依存する、
ことを特徴とする請求項８記載の処理システム。
【請求項１１】
前記シングルバースト動作のリリースは、前記プログラマブルプロセッサからのフラッシュコマンドの受信に依存する、
ことを特徴とする請求項８記載の処理システム。
【請求項１２】
前記（バースト）リード又はライト動作のそれぞれは、前記（バースト）リード又はライト動作のそれぞれの有効性を示す識別子、（バースト）リード動作又は（バースト）ライト動作のそれぞれを示す識別子、（バースト）リード又は（バースト）ライト動作がそれぞれ示すメモリアドレス、（バースト）ライト動作のケースでメモリに書き込まれるデータ、（バースト）リード動作又は（バースト）ライト動作のそれぞれの開始を示す識別子、（バースト）リード動作又は（バースト）ライト動作のそれぞれのサイズを示す識別子を含むために構成される、
ことを特徴とする請求項８記載の処理システム。
【請求項１３】
前記（バースト）リード又はライト動作のそれぞれは、（バースト）動作が示すシングルデータエレメントのビット数を示す識別子、（バースト）ライト動作のケースで、データが書き込まれる必要があるシングルデータエレメントにおけるビット位置を示すマスク識別子を含むために更に構成される、
ことを特徴とする請求項１２記載の処理システム。
【請求項１４】
前記周辺装置は物理メモリである、
ことを特徴とする請求項１記載の処理システム。
【請求項１５】
前記周辺装置は通信装置である、
ことを特徴とする請求項１記載の処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルプロセッサ及び該プログラマブルプロセッサに結合される周辺装置を有するデジタル信号処理システムに関し、プロセッサは、１つのデータエレメントでの、リード動作及びライト動作を使用して周辺装置と通信するために構成される。
【背景技術】
【０００２】
プログラマブルプロセッサの計算能力は、クロック周波数を高くするか、又はＶＬＩＷ（Very  Large  Instruction  Word）プロセッサ又はスーパスカラプロセッサのようなパラレルアーキテクチャを使用して他の動作と並列にすることで動作が高いレートで実行される点で益々増加しているが、これらのプロセッサに基づいたシステム全体のパフォーマンスは、入力／出力（Ｉ／Ｏ）装置、物理メモリ又はデータバスのような周辺装置の帯域幅における制約によって妨げられることがある。これらの制約を軽減するため、（マルチレベル）キャッシュがこれらのシステムに組み込まれ、できるだけプロセッサにとってローカルにデータを保持し、これによりＵＳ６，５７４，７０７Ｂ２に開示されるようにシステムの更に離れた部分からデータを検索するために必要とされるデータ帯域幅が減少される。さらに、たとえばキャッシュミスに関して、たとえばバス又はメモリの帯域幅が必要とされるときは何時でも、この帯域幅の効率的な使用は、多数のデータエレメントが１つのアトミック動作にパックされ、コントロールオーバヘッドを必要としない、いわゆるバースト動作を使用することで行われる。典型的に、プログラマブルプロセッサは、シングルデータエレメントで機能するリード動作及びライト動作を介してＩ／Ｏ要求を生成する。キャッシュを使用することで、これらシングルデータエレメントの動作は、バースト動作に自動的に変換される。これは、キャッシュがプロセッサへのインタフェースを提供し、これによりプロセッサは、シングルエレメントの動作を使用してサービスされ、システムの他の部分はバースト動作を使用して典型的にアクセスされるためである。後者は、リード動作について特に当てはまり、キャッシュミスのケースでは、キャッシュは、１以上のバースト動作を使用してシステムから要求された全体のキャッシュラインを取り出す。キャッシュが存在する場合におけるプロセッサの書込みは、使用されるキャッシュライトポリシーに依存して、バーストの挙動又はシングルエレメントのアクセスとなる。「ライトスルー」ポリシーを使用したキャッシュはシステムにシングルデータエレメントを書き込む間、いわゆる「ライトバック」ライトポリシーを使用したキャッシュは、バーストモードでシステムに完全なキャッシュブロックを主に書き込む。書込みがキャッシュにヒットする限り、キャッシュにおけるデータのみが更新される。かかるライトヒットのために変化している（「ダーティ」となっている）キャッシュブロックが同じキャッシュロケーションに記憶されるべき新たに取り出されたブロックの余地をつくるために、キャッシュから追い立てられる必要があるときにのみ、ダーティブロックは、システムにライトバックされる。ライトミスのケースでは、キャッシュは、失ったデータブロックを取り出して、続いてキャッシュにおける取り出されたブロックに書き込むか（「ライトアロケート」ポリシーによる「ライトバック」）、又は、キャッシュをバイパスし、システムにシングルデータエレメントを直接的に書き込む（「ライトアロケートなし」ポリシーによる「ライトバック」）。
【０００３】
特に、費用感度が高く低電力のアプリケーションのケースでは、キャッシュの使用は、エリア及び電力消費のオーバヘッドの観点で主要な問題を有する。さらに、リアルタイムシステムについて、キャッシュの動的な挙動は、保証されたリアルタイムのパフォーマンスを予測するのを困難にする。データストリームを処理する信号処理アプリケーションについて、従来のキャッシュの大部分は、殆どパフォーマンスの利益を有さない。これは、データアイテムがしばしば読み取られ、１度だけ書き込まれ、テンポラルデータの場所が利用されないためである。これらの理由のため、エンベデッドシステムは、比較的シンプルなキャッシュを使用するか、又はキャッシュを全く使用しない。比較的シンプルなキャッシュは、ライトアロケートなしのライトポリシーによるライトスルーを使用し、すなわち、データがキャッシュに存在するメモリアドレスで書き込まれるケースでは、データはキャッシュ及びメモリの両者に書き込まれ、データがキャッシュに存在しないメモリアドレスに書き込まれるケースでは、メモリからキャッシュにそれらを検索することなしに、データはメモリに書き込まれる。かかるエンベデッドシステムでは、バースト方式でシステムＩ／Ｏを実行するように、ハードワイヤドアクセラレータが設計されることがある。これらアクセラレータは特定のアプリケーションに同調されるので、アクセラレータをそれが適用されるシステム環境に同調することが通常は実施可能である。よりフレキシブルなシステムオンチップの要求は、プログラマブルアクセラレータが益々使用される状況につながる。かかるプログラマブルプロセッサは、これらのプロセッサがシングルデータエレメントで機能するリード及びライト動作を使用してシステムと通信するロード／ストアアーキテクチャに基づいており、すなわち、それぞれのリード／ライト動作は、これより（たとえば３２ビットワードといった）プロセッサのデータパスの幅に整合するシングルデータエレメントが読み取られるシングルアドレスからなるか、ソフトウェアプログラムの制御下でシングルデータエレメントが書き込まれるアドレスからなる。プログラマは、ストリーミングのやり方でシステムデータにアクセスする（信号処理）アプリケーションをマッピングするが、プロセッサがシステムデータにどのようにアクセスするかをプログラマが制御するやり方は通常はない。キャッシュがシステムに存在しない場合、シングルデータエレメントの動作は、たとえば、システムバス又はメモリに真直ぐに延びており、それぞれ個々のデータアイテムについて新たな伝送をセットアップするオーバヘッドのため、利用可能な帯域幅の非効率的な使用につながる。これは、乏しいバス／メモリの帯域幅の使用となり、全体のシステムパフォーマンスに深刻な影響を与える場合がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、キャッシュを有さないか、又は比較的シンプルを有する効率的、低コスト及び低電力のプログラマブル処理システムを提供することにある。
【課題を解決するための手段】
【０００５】
上記目的は、先に述べた種類のプロセッサにより達成され、シングルバーストリード動作（single  burst  read  operation）又はシングルバーストライト動作（single  burst  write  operation）のそれぞれにおいて、複数のリード動作又は複数のライト動作をグループ化するために構成されるバースト発生装置により特徴づけされる。シングルデータエレメントでの読み取り及び書き込み動作をシングルバーストリード及びライト動作に変換することで、周辺装置の利用可能な帯域幅は、より効率的に使用され、処理システムの全体のパフォーマンスが増加する。バースト動作を生成するためにキャッシュが必要とされないが、代わりに、専用の回路が使用され、低コスト及び低電力のソリューションが可能となる。
【０００６】
本発明の実施の形態は、プログラマブルプロセッサがバーストリード動作又はバーストライト動作のそれぞれを使用して周辺装置と通信するために更に構成され、バースト発生装置は、シングルバーストリード動作において、バーストリード動作及び更なるバーストリード動作、又は少なくとも１つのリード動作をグループ化し、シングルバーストライト動作において、バーストライト動作及び更なるバーストライト動作、又は少なくとも１つのライト動作をグループ化するために更に構成される。プログラマブルプロセッサにより発生されたバースト動作は、シングルデータエレメントの１以上の動作と結合するか、代替的に、１以上の他のバースト動作と結合して、シングルバースト動作を形成し、周辺装置の利用可能な帯域幅の更に効率的な使用を可能にする。
【０００７】
本発明の実施の形態は、バーストリード動作又はバーストライト動作のそれぞれがシングルバーストリード動作又はシングルバーストライト動作のそれぞれの所望のサイズよりも大きなサイズを有する場合に、バースト発生装置は、バーストリード動作又はバーストライト動作のそれぞれを２以上のバースト動作に分割するために更に構成される。バースト動作がシングルバースト動作の所望のサイズよりも大きなサイズを有するケースでは、バースト動作は、２以上のバースト動作に分割される。後者のサイズは、シングルバースト動作の所望のサイズに等しいか、又は小さくすることができ、後者のケースでは、結果的に得られるバースト動作は、シングルバースト動作において、更なるバースト動作と結合されるか、少なくとも１つのシングルデータエレメントの動作と結合される。
【０００８】
本発明の実施の形態は、プログラマブルプロセッサは、バースト発生装置のための制御情報を記憶するために構成される少なくとも１つのコンフィギュレーションレジスタを有することを特徴とする。プロセッサ内のコンフィギュレーションレジスタは、異なるやり方で挙動するため、バースト発生装置を制御するためにプログラムされる。これらコンフィギュレーションレジスタは、処理システムからプログラムされるか、プログラマブルプロセッサそれ自身からプログラムされる。
【０００９】
本発明の実施の形態は、コンフィギュレーションレジスタがシングルバーストリード動作又はシングルバーストライト動作のそれぞれの所望のサイズを記憶するために構成されることを特徴とする。シングルバースト動作のサイズを選択することで、アプリケーションの特性及び処理システムの特性に依存して、一方で演算の数を減少することと他方で動作の実行における余りに長い遅延を回避することとの間の最適値を発見することができる。
【００１０】
本発明の実施の形態は、コンフィギュレーションレジスタは、２つの連続するシングルバースト動作の間の最大時間のインターバルを制御するために使用される、タイムアウト値を記憶するために更に構成される。バースト発生装置により受信されたシングルデータエレメントの連続する動作の間のタイムインターバルがタイムアウト値よりも大きく、これにより動作の実行における余りに長い遅延を回避することができる場合に、シングルバースト動作は早期にリリースされる。
【００１１】
本発明の実施の形態は、バースト発生装置が、プログラマブルプロセッサからリード及びライト動作を受信し、リード及びライト動作から導出された情報に基づいて、専用のトークンを生成し、シングルバーストリード動作又はシングルバーストリード動作のそれぞれのリリースをトリガするために構成されるコレクタ回路、専用のトークンを記憶する第一のＦＩＦＯバッファ、リード及びライト動作のそれぞれから導出された情報を記憶する第二のＦＩＦＯバッファ、第一のＦＩＦＯバッファから受信された専用のトークンの制御下で、第二のＦＩＦＯバッファからの、シングルバーストライト動作又はシングルバーストリード動作のそれぞれのリリースを始動するために構成されるリリース回路を有する。このバースト発生装置の実施の形態は、２つの比較的にシンプルな回路及び２つのＦＩＦＯバッファのみを必要とし、低コスト及び低電力のソリューションを供給する。
【００１２】
本発明の実施の形態は、シングルバースト動作がシングルバースト動作の所望のサイズに等しくないサイズを有する場合、バースト発生装置がシングルバーストリード動作又はシングルバーストライト動作のそれぞれのリリースをトリガするために更に構成さることを特徴とする。所定の条件下で、全体のシステムパフォーマンスを改善するために所望のサイズを有さない場合でさえ、シングルバースト動作をリリースすることが有利な場合がある。
【００１３】
本発明の実施の形態は、シングルバースト動作のリリースが、複数のリード動作又は複数のライト動作がシングルデータエレメントのステップサイズに対応するステップサイズをもつ増加する順序にある対応する複数のメモリアドレスを示すかに依存することを特徴とする。使用される通信又は周辺装置に依存して、バーストジェネレータによるバーストリリースのルールに影響を及ぼす異なるアドレッシングスキームがサポートされる。最もシンプルなものは、増加する順序にあるアドレスによりサポートされるバーストアクセスであり、１つのデータエレメントが離れてアドレス指定される。代替的なスキームは、ラップアラウンドアドレッシング（wrap-around  addressing）を可能にする。これは、たとえば、クリティカルワードアラウンド（critical-word-first）キャッシュフェッチをサポートするバスによるケースである。このケースでは、アドレス０，４，８，１２でのデータの系列を要求するよりはむしろ、アドレス８のデータエレメントがキャッシュを使用してプロセッサにより最初に要求されたエレメントである場合、キャッシュは、代わりにアドレス８，１２，０，４でのデータ系列を要求する。他のバス又はメモリプロトコルは、多次元のバーストアクセスを可能にし、このケースでは、バーストは、メモリマップにおける多次元空間を形成するアドレスにあるデータエレメントに関して構築される。この例は、グラフィックス及びビデオ処理アプリケーションで一般に使用されるデータの二次元ブロックの効率的な読み取り及び書込みをサポートするため、２次元バーストアクセスをサポートするバスである。
【００１４】
本発明の実施の形態は、シングルバースト動作のリリースが、バースト発生装置により受信された次のバーストライト又はリード動作のそれぞれがシングルバースト動作の所望のサイズに等しいサイズを有するかに依存することを特徴とする。プログラマブルプロセッサが既に所望のサイズからなるバースト動作を発するケースでは、その瞬間でバースト発生装置によりグループ化されるシングルバースト動作がリリースされ、所望のサイズを有しない場合でさえ、プロセッサにより発せられる前記バースト動作のフラグメンテーションを回避する。
【００１５】
本発明の実施の形態は、シングルバースト動作のリリースがプログラマブルプロセッサからのフラッシュコマンドの受信に依存することを特徴とする。この実施の形態は、たとえば、全てのデータが処理の終わりで周辺装置に最終的に書き込まれるのを保証するといった、プログラマブルプロセッサの制御下でシングルバースト動作をリリースするのを可能にする。
【００１６】
本発明の実施の形態は、（バースト）リード又はライト動作のそれぞれが、以下の情報を含むために構成されることを特徴とする。（バースト）リード又はライト動作のそれぞれの有効性を示す識別子、（バースト）リード動作又は（バースト）ライト動作のそれぞれを示す識別子、（バースト）リード又は（バースト）ライト動作がそれぞれ示すメモリアドレス、（バースト）ライト動作のケースでメモリに書き込まれるデータ、（バースト）リード動作又は（バースト）ライト動作のそれぞれの開始を示す識別子、（バースト）リード動作又は（バースト）ライト動作のそれぞれのサイズを示す識別子。
【００１７】
プログラマブルプロセッサにより発せされる（バースト）動作でエンコードされる情報を使用して、バースト発生装置は、動作のタイプ、すなわちリード又はライト動作、シングルエレメント動作又はバースト動作を認識し、この情報を使用して、（バースト）動作をシングルバースト動作にグループ分けする。
【００１８】
本発明の実施の形態は、（バースト）リード又はライト動作のそれぞれが以下の情報を更に含むことを特徴とする。ビット数、すなわち（バースト）動作が示すシングルデータエレメントのデータタイプ（たとえばバイト、ハーフワード、又はワード）を示す識別子、（バースト）ライト動作のケースで、データが書き込まれる必要があるシングルデータエレメントにおけるビット位置を示すマスク識別子。この更なる情報を使用して、データは、データエレメント内の特定のビット位置から読み出されるか、特定のビット位置に書き込まれる。
【００１９】
本発明の実施の形態では、周辺装置が物理メモリであることを特徴とする。本発明の実施の形態は、周辺装置が通信装置であることを特徴とする。システムバスのような両方の通信装置、及び物理メモリは、（バースト）リード及びライト動作を使用して頻繁にアクセスされる処理システムにおける周辺装置であり、これらの装置について本発明を特に有利にする。
【発明を実施するための最良の形態】
【００２０】
図１は、プログラマブルプロセッサＰＲＯＣ、バーストジェネレータＢＧ、システムバスＳＢ、メモリＭＥＭ及び周辺装置ＰＤを有する処理システムの概念図である。メモリＭＥＭは、たとえば、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）である。周辺装置ＰＤは、たとえばディスプレイ又はネットワークである。メモリＭＥＭ及び周辺装置ＰＤの両者がシステムバスＳＢに結合される。システムバスＳＢは、個別のアドレスバス及び個別のデータバスを有するか、代替的に、結合されたアドレス及びデータバスを有する。データバスは、たとえば３２ビット幅のデータバスである。プロセッサＰＲＯＣは、ＲＩＳＣプロセッサであり、たとえばＲＩＳＣタイプの動作を実行し、典型的に、実行されるべき動作のタイプのオペレーションコード、アーギュメントデータを検索するためにロケーションを特定する１又は２のレジスタインデックス、及び結果のデータを書き込むためのロケーションを特定するレジスタインデックスを有している。リード及びライト動作は、特定の動作であり、すなわち、リード動作のアーギュメントはメモリアドレスであり、ライト動作のアーギュメントは、メモリアドレス及び記憶されるべきデータであり、これらはメモリインタフェースに送出される。リード動作の結果は、読み取られるべきデータである。代替的に、処理システムは、ストリーミングのやり方でデータを処理する１を超えるプログラマブルプロセッサを有し、データに関する連続する動作は、異なるプロセッサにより実行される。プロセッサＰＲＯＣのＩ／Ｏポートは、コネクション１０１及び１０３を介してバーストジェネレータＢＧの入力ポートに結合される。バーストジェネレータＢＧの出力ポートは、コネクション１０９を介してシステムバスＳＢに結合される。メモリＭＥＭ又は周辺装置ＰＤから読み取られたデータは、システムバスＳＢ及びコネクション１０５を介してプロセッサＰＲＯＣに転送される。プロセッサＰＲＯＣは、コネクション１０７を介して、所望のやり方で挙動するため、バースト発生器ＢＧを制御するためにプログラムされるコンフィギュレーションレジスタＣＲを有する。動作において、プロセッサＰＲＯＣは、メモリマップされたＩ／Ｏアドレスを介してシングルデータエレメントを読み取り又は書込みするため、リード動作及びライト動作を使用して、処理システムの他の部分と通信する。ソフトウェアプログラムの制御下で、プロセッサＰＲＯＣは、リード動作を実行し、リードデータを処理し、ライト動作を実行する。代替的に、プロセッサＰＲＯＣは、たとえばキャッシュが存在する場合といった、バーストリード動作又はバーストライト動作を使用して、処理システムの他の部分と通信する。
【００２１】
図２は、コレクタＣＯＬ、ＦＩＦＯ（First  In-First-Out）バッファＢＵＦ１、ＦＩＦＯバッファＢＵＦ２及びリリーサＲＥＬを有するバースト発生器ＢＧの概念図である。両方のバッファＢＵＦ１及びＢＵＦ２は、ブロッキングタイプからなり、コレクタＣＯＬがフルであるバッファＢＵＦ１及びＢＵＦ２に情報を書き込む試みを停止し、リリーサＲＥＬがエンプティであるバッファＢＵＦ１及びＢＵＦ２から情報を読み取る試みを停止することを意味する。動作において、コレクタＣＯＬは、信号の集合の形式でプロセッサＰＲＯＣからリード及びライト動作を受ける。  
“valid”信号は動作の有効性を示し、偽に等しいときにＮＯＰ動作を示し、さもなければ真に等しい。  
ライトイネーブル信号“we”は、真に等しいとき、動作がライト動作を示すことを示し、偽に等しいとき、動作がリード動作を示すことを示す。  
アドレス信号“addr”は、動作が示すメモリマップされたＩ／Ｏアドレスを示す。  
ライトデータ信号“wdata”は、ライト動作のケースで書込みされるべきデータを保持する。  
“start”信号は、真であるとき、（バースト）リード又はライト動作の開始を示す。  
“size”信号は、（バースト）リード又はライト動作から１を引いたサイズ、すなわち動作に関与したシングルデータエレメントから１を引いた数を示す。
【００２２】
以下に記載されるように、コレクタＣＯＬは、適切な場合、プロセッサＰＲＯＣからの到来する（バースト）リード及びライト動作をシングルバーストリード又はライト動作に収集する。信号の集合の形式でコレクタＣＯＬにより受信された情報は、バッファＢＵＦ２におけるコレクタＣＯＬにより書き込まれる。さらに、コレクタＣＯＬは、（バースト）リード又はライト動作がシングルバーストリード又はライト動作においてバッファＢＵＦ３からリリースされる必要があることを示して、リリーストークンをバッファＢＵＦ１に書き込む。プログラマブルプロセッサＰＲＯＣがシングルデータエレメントにリード及びライト動作をサポートするケースでは、これは、かかる動作が発せられたときに“start”信号が真であり、“size”信号がゼロに等しい、すなわち１のバーストサイズを示すことを意味している。代替的に、プロセッサＰＲＯＣがバーストリード及びライト動作をサポートするケースでは、“size”信号は１よりも大きなバーストサイズを示し、“start”信号はかかるバースト動作の開始でのみ真である。
【００２３】
図３は、図２に示されるバーストジェネレータＢＧの動作の間に入力信号及び出力信号を示すタイミングチャートである。バーストジェネレータＢＧは、コンフィギュレーションレジスタＣＲを介して、４のサイズをもつ、すなわち４つのシングルデータエレメントを含むシングルバーストリード及びライト動作を構成するためにコンフィギュアされる。３２ビットデータエレメントは、メモリＭＥＭ又は周辺装置ＰＤに書き込まれ、メモリＭＥＭ及び周辺装置ＰＤのメモリアドレスは、バイトアドレスとして、すなわちアドレス４，８，１２等として表現される。クロック信号“clock”は、図１に示されない処理システムのクロックにより発生される信号を表す。図３の上部では、バースト発生器ＢＧの入力１０１での信号が示されており、図３の下部では、バースト発生器ＢＧの出力１０９での信号が示される。
【００２４】
図３を参照して、バースト発生器ＢＧは、プロセッサＰＲＯＣからのバーストライト動作をはじめに受ける。これは、“valid”信号、ライトイネーブル信号“we”及びバースト開始信号“start”がハイであり、“size”信号は、値“１”を有し、すなわちバーストライト動作は２つのデータエレメントのバーストサイズを有する。データエレメントは、“addr”信号により示される、メモリマップされたアドレス“４”及び“８”に書込みされる必要がある。つぎに、値“０”を有するバーストサイズ信号“size”、両方のクロック信号の間にハイである“start”信号、及び同様にハイである“valid”及び“we”信号により示されるように、バースト発生器ＢＧは、メモリアドレス“１２”及び“１６”のそれぞれについて２つのシングルデータエレメントのライト動作を受信する。
【００２５】
メモリアドレス“１６”についてライト動作を受けるとき、コレクタＣＯＬは、サイズ４のシングルバーストライト動作を収集し、リリーストークンバッファＢＵＦ１に値“３”をもつトークンを配置する。トークンは、リリースのためにスケジュールされるシングルバーストライト動作でコレクタＣＯＬが収集したライト動作から１を引いた数を表す値である。３０１で参照されるクロック信号で、第一のシングルバーストライト動作は、リリースのためにスケジュールされる。リリーサＲＥＬは、値“３”をもつトークンを受け、このトークンの値を使用して、リリースされるライト動作の数を見失わないように維持するカウンタを初期化する。
【００２６】
続いて、リリーサＲＥＬは、バッファＢＵＦ２から対応する４つのライト動作を検索し、４つのライト動作のシングルバーストライト動作を構築し、“３”の“size”信号及びリリーサＲＥＬの出力ポートでの“addr”信号により示されるように、出力１０９及びシステムバスＳＢを介して、シングルバーストライト動作をメモリマップされたアドレス“４”，“８”，“１２”及び“１６”に送出する。第一のシングルバーストライト動作の構成の後、第二のシングルバーストライト動作が構成される。“１”に等しい“size”信号及び“addr”信号“２０”及び“２４”、及びハイである“valid”，“valid”，“we”信号により示されるように、コレクタＣＯＬは、メモリマップされたアドレス“２０”及び“２４”のそれぞれにある２つのデータエレメントのバーストライト動作を受ける。つぎに、コレクタＣＯＬは、メモリアドレス“３２”についてライト動作を受ける。
【００２７】
所望のバースト動作のサイズ４は、メモリマップされたアドレス“３２”についてライト動作を受ける瞬間に到達しないが、これまで構成された第二のシングルバーストライト動作は、早期にリリースされる。これは、最後に受けたライト動作のメモリマップされたアドレスが前のライト動作のメモリアドレスから離れた適切な距離ではなく、すなわちメモリマップされたアドレス“３２”がメモリアドレス２４から離れて適切な距離ではないためであり（すなわちメモリマップされたアドレス“２８”）、これまで構成されたシングルバーストライト動作がメモリマップされたアドレス“２０”及び“２４”のそれぞれでのライト動作を含むためである。
【００２８】
コレクタＣＯＬは、リリーストークンバッファＢＵＦ１に値“１”をもつトークンを配置する。３０３で参照されるクロック信号で、第二のバーストライト動作は、リリースのためにスケジュールされる。リリーサＲＥＬは、値“１”をもつトークンを受け、このトークンの値を使用して、リリースされるべきライト動作の数を見失わないように維持するカウンタを初期化する。続いて、リリーサＲＥＬは、バッファＢＵＦ２から対応する２つのライト動作を検索し、２つのライト動作のシングルバーストライト動作を構築し、“１”の“size”信号及びリリーサＲＥＬの出力部分での“addr”信号により示されるように、出力１０９及びシステムバスＳＢを介して、シングルバーストライト動作をメモリマップされたアドレス“２０”及び“２４”に送出する。
【００２９】
メモリアドレス“３２”のライト動作は、第三のシングルバーストライト動作の第一の動作を形成する。第三のシングルバーストライト動作は、クロック信号３０５で早期のリリースのためにスケジュールされる。これは、シングルデータエレメントのリード動作は、メモリアドレス“３６”について受信され、ライト及びリード動作がシングルバースト動作で結合されないためである。メモリアドレス“３６”のリード動作は、ロウである“we”信号、ハイである“valid”，“start”信号、ゼロに等しい“size”信号、及び“３６”の“addr”信号により示される。コレクタＣＯＬは、値“０”をもつトークンをリリーストークンバッファＢＵＦ１に配置する。
【００３０】
リリーサＲＥＬは、このトークンを使用し、リリースされるべきライト動作の数を見失わないように維持するカウンタを初期化する値として使用する。続いて、リリーサＲＥＬは、バッファＢＵＦ２から対応するライト動作を検索し、１つのライト動作のシングルバーストライト動作を構築し、“０”の“size”信号及びリリーサＲＥＬの出力ポートでの“addr”信号により示されるように、出力１０９及びシステムバスＳＢを介して、第三のシングルバーストライト動作をメモリアドレス“３２”に送出する。第一のシングルバーストリード動作は、クロック信号３０７での早期のリリースのためにスケジュールされる。これは、コレクタＣＯＬにより受けた次のバーストリード動作が、“３”の“size”信号及びコレクタＣＯＬの入力ポート１０１での“addr”信号“４０”，“４４”，“４８”及び“５２”により示されるように、既に４の所望のサイズからなるためである。
【００３１】
コレクタＣＯＬは、リリーストークンバッファＢＵＦ１に値“０”をもつトークンを配置する。リリーサＲＥＬは、このトークンをバッファＢＵＦ１から検索し、バッファＢＵＦ２から検索されたリード動作のシングルバーストリード動作を構築する。シングルバーストリード動作は、“０”の“size”信号及びリリーサＲＥＬの出力ポート１０９での“３６”の“addr”信号により示されるように、リリーサＲＥＬによりリリースされる。第二のシングルバーストリード動作は、最後に受信されたバーストリード動作から構成される。値“３”をもつトークンは、リリーストークンバッファＢＵＦ１に配置され、リリーサＲＥＬは、バッファＢＵＦ２から導出された情報から、第二のシングルバーストリード動作を構成する。“３”の“size”信号及びリリーサＲＥＬの出力ポートでの“４０”，“４４”，“４８”及び“５２”の“addr”信号は、第二のバーストリード動作のリリースを示す。
【００３２】
代替的な実施の形態では、処理システムは、プログラマブルプロセッサＰＲＯＣとバースト発生器ＢＧとの間に配置される、ノンライトアロケート（non-write  allocate）ライトポリシーによるライトスルー（write-through）を使用して比較的にシンプルなキャッシュを更に有する。リード動作のケースでは、キャッシュは、シングルデータエレメントのリード動作をバーストリード動作に変換する。ライト動作について、バースト発生器ＢＧは、プログラマブルプロセッサＰＲＯＣから受けた（バースト）ライト動作から、シングルバーストライト動作を構成する。バーストリード動作のケースでは、バースト発生器ＢＧにより受けた“start”信号は、かかるバーストリード動作の開始で真であり、“size”信号は、キャッシュブロックのサイズから１を引いたものに等しい値、すなわちキャッシュブロックサイズに等しいバーストサイズを示す、を典型的に保持する。シングルデータエレメントのライト動作のケースでは、“start”信号は真に等しく、“size”信号は値“０”を搬送し、バーストサイズ１を示す。
【００３３】
更なる代替的な実施の形態では、図３を参照して、バーストジェネレータＢＧは、コネクション１０３を介して、プログラマブルプロセッサＰＲＯＣからフラッシュ入力信号を受けるために構成される。フラッシュ信号がハイであるとき、構成されている現在のシングルバースト動作は、適切なサイズを有さない場合でさえ、コレクタＣＯＬによるリリースのためにスケジュールされる。このように、たとえばシングルバースト動作を終了するために不十分なエレメントが利用可能なとき処理の終わりで、動作がバッファＢＵＦ２において永続的に残らないことが保証される。
【００３４】
別の更なる代替的な実施の形態では、コレクタは、連続する到来する（バースト）リード又はライト動作の間のクロックサイクルの数をカウントするタイマを有する。カウンタ値が所定のコンフィギュア可能な値を超える場合、構成されている現在のシングルバースト動作は、適切なサイズを有しない場合でさえ、コレクタＣＯＬによるリリースのためにスケジュールされる。このように、全体のシステムパフォーマンスに影響を及ぼす長い遅延につながる、リリースされる前にバースト発生器において動作が余りに長く残らないことが保証される。コンフィギュア可能なタイムアウト値は、コンフィギュレーションレジスタＣＲを介して設定される。
【００３５】
別の更なる代替的な実施の形態では、コレクタＣＯＬは、プログラマブルプロセッサＰＲＯＣからのデータサイズ信号“dsize”及びライトマスク信号“wmask”を更に受け、これらは、動作が示すデータエレメントの正確なビット数を示すために使用される。“wmask”信号は、データを記憶するためにデータエレメントにおける特定のビット位置を示す。“dsize”及び“wmask”信号は、たとえば３２ビットデータエレメントといったシングルデータエレメントの一部のみを書込み又は読み取りするのを可能にする。
【００３６】
別の更なる代替的な実施の形態では、異なるアドレッシングスキームは、ラップアラウンドアドレッシングを許容する。これは、たとえば、クリティカルワードファーストキャッシュフェッチをサポートするバスによるケースである。このケースでは、アドレス０，４，８，１２でのデータ系列を要求するよりはむしろ、アドレス８にあるデータエレメントがキャッシュを使用してプロセッサにより初めに要求されるデータエレメントである場合に、キャッシュは、代わりにアドレス８，１２，０，４でのデータ系列を要求する。他のバス又はメモリプロトコルは、多次元のバーストアクセスを可能にし、このケースでは、バーストがメモリマップにおける多次元空間を形成するアドレスでのデータエレメントから構築される。この例は、グラフィック及びビデオ処理アプリケーションで一般に使用される２次元のデータブロックの効率的な読み取り及び書込みをサポートするために２次元のバーストアクセスをサポートするバスである。
【００３７】
上述された実施の形態は本発明を限定するよりはむしろ例示するものであり、当業者であれば、特許請求の範囲から逸脱することなしに多くの代替的な実施の形態を設計することができる。単語「有する“comprising”」は、請求項で列挙された以外のエレメント又はステップの存在を排除するものではない。幾つかの手段を列挙している装置の請求項では、これらの手段の幾つかは、同一アイテムのハードウェアにより実施することができる。所定の手段が相互に異なる従属の請求項で引用されることは、これらの手段の組み合わせが使用することができないことを示すものではない。
【図面の簡単な説明】
【００３８】
【図１】本発明に係る処理システムの概念図である。
【図２】バースト発生装置の実施の形態の概念図である。
【図３】図２に係るバースト発生装置の動作の間の入力信号と出力信号を示すタイミングチャートである。
【図１】
2008510246.tif 000003
【図２】
2008510246.tif 000004
【図３】
2008510246.tif 000005
【国際調査報告】
2008510246.tif 000006
2008510246.tif 000007