JP2008510246A - バーストリードライト動作による処理装置 - Google Patents

バーストリードライト動作による処理装置 Download PDF

Info

Publication number
JP2008510246A
JP2008510246A JP2007526676A JP2007526676A JP2008510246A JP 2008510246 A JP2008510246 A JP 2008510246A JP 2007526676 A JP2007526676 A JP 2007526676A JP 2007526676 A JP2007526676 A JP 2007526676A JP 2008510246 A JP2008510246 A JP 2008510246A
Authority
JP
Japan
Prior art keywords
burst
read
write
write operation
processing system
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.)
Granted
Application number
JP2007526676A
Other languages
English (en)
Other versions
JP4813485B2 (ja
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 NV
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 NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2008510246A publication Critical patent/JP2008510246A/ja
Application granted granted Critical
Publication of JP4813485B2 publication Critical patent/JP4813485B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Logic Circuits (AREA)

Abstract

デジタル信号処理システムは、プログラマブルプロセッサPROC、及びバースト発生装置BGを介してプログラマブルプロセッサに結合される周辺装置PD,MEMを有する。プロセッサは、シングルデータエレメントに関して、リード動作及びライト動作のそれぞれを使用して周辺装置と通信するために構成される。バースト発生装置BGは、複数のリード動作又は複数のライト動作をシングルバーストリード動作又はシングルバーストライト動作のそれぞれにグループ化する。

Description

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

Claims (15)

  1. プログラマブルプロセッサと、前記プログラマブルプロセッサに結合される周辺装置とを有するデジタル信号処理システムであって、
    前記プロセッサは、シングルデータエレメントに関するリード動作及びライト動作のそれぞれを使用して前記周辺装置と通信するために構成され、
    複数のリード動作又は複数のライト動作をシングルバーストリード動作又はシングルバーストライト動作のそれぞれにグループ化するために構成されるバースト発生手段を有する、
    ことを特徴とする処理システム。
  2. 前記プログラマブルプロセッサは、バーストリード動作又はバーストライト動作をそれぞれ使用して前記周辺装置と通信するために更に構成され、
    前記バースト発生手段は、前記シングルバーストリード動作において、前記バーストリード動作及び更なるバーストリード動作、又は少なくとも1つのリード動作をグループ化し、前記シングルバーストライト動作において、前記バーストライト動作及び前記更なるバーストライト動作、又は少なくとも1つのライト動作をグループ化するために構成される、
    ことを特徴とする請求項1記載の処理システム。
  3. 前記バースト発生手段は、前記バーストリード動作又は前記バーストライト動作を2以上のバースト動作に分割するために更に構成される、前記バーストリード動作又は前記バーストライト動作のそれぞれが前記シングルバーストリード動作又は前記シングルバーストライト動作のそれぞれの所望のサイズよりも大きなサイズを有する、
    ことを特徴とする請求項2記載の処理システム。
  4. 前記プログラマブルプロセッサは、前記バースト発生手段のための制御情報を記憶するために構成される少なくとも1つのコンフィギュレーションレジスタを有する、
    ことを特徴とする請求項1記載の処理システム。
  5. 前記コンフィギュレーションレジスタは、前記シングルバーストリード動作又は前記シングルバーストライト動作のそれぞれの所望のサイズを記憶するために構成される、
    ことを特徴とする請求項4記載の処理システム。
  6. 前記コンフィギュレーションレジスタは、2つの連続するシングルバースト動作の間の最大の時間インターバルを制御するために使用されるタイムアウト値を記憶するために更に構成される、
    ことを特徴とする請求項5記載の処理システム。
  7. 前記バースト発生手段は、
    前記プログラマブルプロセッサからの前記リード及びライト動作を受け、前記リード及びライト動作から導出される情報に基づいて専用のトークンを生成し、前記シングルバーストリード動作又は前記シングルバーストライト動作のそれぞれのリリースをトリガするために構成されるコレクタ回路と、
    専用のトークンを記憶する第一のFast-In-Fast-Out(FIFO)バッファと、
    前記リード及びライト動作のそれぞれから導出される情報を記憶する第二のFIFOバッファと、
    前記第一のFIFOバッファから受信される専用のトークンの制御下で、前記第二のFIFOバッファから、前記シングルバーストライト動作又は前記シングルバーストリード動作のそれぞれのリリースを始動するために構成されるリリース回路と、
    を有することを特徴とする請求項1記載の処理システム。
  8. 前記バースト発生手段は、前記シングルバースト動作が前記シングルバースト動作の所望のサイズに等しくないサイズを有する場合、前記シングルバーストリード動作又は前記シングルバーストライト動作のそれぞれのリリースをトリガするために更に構成される、
    ことを特徴とする請求項2記載の処理システム。
  9. 前記シングルバースト動作のリリースは、前記複数のリード動作又は前記複数のライト動作がシングルデータエレメントのステップサイズに対応するステップサイズをもつ増加する順序にある対応する複数のメモリアドレスによるかに依存する、
    ことを特徴とする請求項8記載の処理システム。
  10. 前記シングルバースト動作のリリースは、前記バースト発生手段により受けた、次のバーストライト又はリード動作のそれぞれが、前記シングルバースト動作の所望のサイズに等しいサイズを有するかに依存する、
    ことを特徴とする請求項8記載の処理システム。
  11. 前記シングルバースト動作のリリースは、前記プログラマブルプロセッサからのフラッシュコマンドの受信に依存する、
    ことを特徴とする請求項8記載の処理システム。
  12. 前記(バースト)リード又はライト動作のそれぞれは、前記(バースト)リード又はライト動作のそれぞれの有効性を示す識別子、(バースト)リード動作又は(バースト)ライト動作のそれぞれを示す識別子、(バースト)リード又は(バースト)ライト動作がそれぞれ示すメモリアドレス、(バースト)ライト動作のケースでメモリに書き込まれるデータ、(バースト)リード動作又は(バースト)ライト動作のそれぞれの開始を示す識別子、(バースト)リード動作又は(バースト)ライト動作のそれぞれのサイズを示す識別子を含むために構成される、
    ことを特徴とする請求項8記載の処理システム。
  13. 前記(バースト)リード又はライト動作のそれぞれは、(バースト)動作が示すシングルデータエレメントのビット数を示す識別子、(バースト)ライト動作のケースで、データが書き込まれる必要があるシングルデータエレメントにおけるビット位置を示すマスク識別子を含むために更に構成される、
    ことを特徴とする請求項12記載の処理システム。
  14. 前記周辺装置は物理メモリである、
    ことを特徴とする請求項1記載の処理システム。
  15. 前記周辺装置は通信装置である、
    ことを特徴とする請求項1記載の処理システム。


JP2007526676A 2004-08-17 2005-08-11 バーストリードライト動作による処理装置 Expired - Fee Related JP4813485B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP04103944 2004-08-17
EP04103944.7 2004-08-17
PCT/IB2005/052670 WO2006018802A1 (en) 2004-08-17 2005-08-11 Processing apparatus with burst read write operations

Publications (2)

Publication Number Publication Date
JP2008510246A true JP2008510246A (ja) 2008-04-03
JP4813485B2 JP4813485B2 (ja) 2011-11-09

Family

ID=35106870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007526676A Expired - Fee Related JP4813485B2 (ja) 2004-08-17 2005-08-11 バーストリードライト動作による処理装置

Country Status (8)

Country Link
US (1) US7555576B2 (ja)
EP (1) EP1782218B1 (ja)
JP (1) JP4813485B2 (ja)
KR (1) KR101121592B1 (ja)
CN (1) CN101040272A (ja)
AT (1) ATE400848T1 (ja)
DE (1) DE602005008074D1 (ja)
WO (1) WO2006018802A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012042994A (ja) * 2010-08-12 2012-03-01 Toshiba Corp キャッシュユニット及びプロセッシングシステム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7369491B1 (en) * 2003-05-14 2008-05-06 Nortel Networks Limited Regulating data-burst transfer
US20070143546A1 (en) * 2005-12-21 2007-06-21 Intel Corporation Partitioned shared cache
US7668186B1 (en) * 2006-03-07 2010-02-23 Xilinx, Inc. Token ecosystem for buffer management
DE102009044936B4 (de) * 2009-09-24 2022-10-13 Robert Bosch Gmbh Verfahren zum Austauschen von Daten
CN102207919A (zh) * 2010-03-30 2011-10-05 国际商业机器公司 加速数据传输的处理单元、芯片、计算设备和方法
CN102567241A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 存储器控制器及存储器访问控制方法
CN102541506B (zh) * 2010-12-29 2014-02-26 深圳市恒扬科技有限公司 一种fifo数据缓存器、芯片以及设备
US8799750B1 (en) * 2011-05-09 2014-08-05 Xilinx, Inc. Convolutional interleaver for bursty memory access
WO2013100928A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Reducing the number of sequential operations in an application to be performed on a shared memory cell
US9569384B2 (en) * 2013-03-14 2017-02-14 Infineon Technologies Ag Conditional links for direct memory access controllers
US10318292B2 (en) 2014-11-17 2019-06-11 Intel Corporation Hardware instruction set to replace a plurality of atomic operations with a single atomic operation
US11226741B2 (en) * 2018-10-31 2022-01-18 EMC IP Holding Company LLC I/O behavior prediction based on long-term pattern recognition

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001147854A (ja) * 1999-10-01 2001-05-29 Hitachi Ltd 処理システム、書き込みバッファユニット内の格納の最適化方法、並びに、データの格納及び分配方法
JP2001331440A (ja) * 2000-05-22 2001-11-30 Sharp Corp データ受信処理装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5016160A (en) 1988-12-15 1991-05-14 International Business Machines Corporation Computer system having efficient data transfer operations
JP3599334B2 (ja) * 1991-08-16 2004-12-08 マルティチップ テクノロジー, インコーポレイテッド 高性能ダイナミックメモリシステム
US5835972A (en) * 1996-05-28 1998-11-10 Advanced Micro Devices, Inc. Method and apparatus for optimization of data writes
US5892978A (en) * 1996-07-24 1999-04-06 Vlsi Technology, Inc. Combined consective byte update buffer
FR2778258A1 (fr) * 1998-04-29 1999-11-05 Texas Instruments France Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
JP2001035153A (ja) * 1999-07-23 2001-02-09 Fujitsu Ltd 半導体記憶装置
US6574707B2 (en) 2001-05-07 2003-06-03 Motorola, Inc. Memory interface protocol using two addressing modes and method of operation
JP2003085129A (ja) * 2001-07-03 2003-03-20 Sharp Corp データ通信コントローラ及びデータ転送装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001147854A (ja) * 1999-10-01 2001-05-29 Hitachi Ltd 処理システム、書き込みバッファユニット内の格納の最適化方法、並びに、データの格納及び分配方法
JP2001331440A (ja) * 2000-05-22 2001-11-30 Sharp Corp データ受信処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012042994A (ja) * 2010-08-12 2012-03-01 Toshiba Corp キャッシュユニット及びプロセッシングシステム

Also Published As

Publication number Publication date
US20080109572A1 (en) 2008-05-08
KR20070042207A (ko) 2007-04-20
ATE400848T1 (de) 2008-07-15
CN101040272A (zh) 2007-09-19
EP1782218B1 (en) 2008-07-09
EP1782218A1 (en) 2007-05-09
WO2006018802A1 (en) 2006-02-23
KR101121592B1 (ko) 2012-03-12
US7555576B2 (en) 2009-06-30
DE602005008074D1 (de) 2008-08-21
JP4813485B2 (ja) 2011-11-09

Similar Documents

Publication Publication Date Title
JP4813485B2 (ja) バーストリードライト動作による処理装置
US11789872B2 (en) Slot/sub-slot prefetch architecture for multiple memory requestors
US11113057B2 (en) Streaming engine with cache-like stream data storage and lifetime tracking
US11994949B2 (en) Streaming engine with error detection, correction and restart
US8725987B2 (en) Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data
US9280474B2 (en) Adaptive data prefetching
US7620749B2 (en) Descriptor prefetch mechanism for high latency and out of order DMA device
JP4106016B2 (ja) 入出力(i/o)通信のハードウェア・アクセラレーションを実現するデータ処理システム
US9886385B1 (en) Content-directed prefetch circuit with quality filtering
US11023410B2 (en) Instructions for performing multi-line memory accesses
JP5328792B2 (ja) プロセッサの非常にアソシエティビティの高いキャッシュメモリ用のセカンドチャンス置換機構
US8880847B2 (en) Multistream prefetch buffer
CN116880903A (zh) 具有提取提前滞后的流引擎
JP2001290706A (ja) Tlbキャッシュのためのプリフェッチ
WO2014138498A1 (en) Improved client spatial locality through the use of virtual request trackers
EP4020229A1 (en) System, apparatus and method for prefetching physical pages in a processor
WO2017092564A1 (en) Data streaming unit and method for operating the data streaming unit
JP4024247B2 (ja) 半導体データプロセッサ
JP2004240616A (ja) メモリコントローラ及びメモリアクセス制御方法
GB2454808A (en) Cache which prefetches data at a second address when an access matches a first address
GB2454811A (en) Cache memory which pre-fetches data when an address register is written
JPWO2012172694A1 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080717

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20110419

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110502

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110530

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110726

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110824

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140902

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees