JP2008515073A - データ処理システム及びメモリアービトレーションのための方法 - Google Patents
データ処理システム及びメモリアービトレーションのための方法 Download PDFInfo
- Publication number
- JP2008515073A JP2008515073A JP2007534124A JP2007534124A JP2008515073A JP 2008515073 A JP2008515073 A JP 2008515073A JP 2007534124 A JP2007534124 A JP 2007534124A JP 2007534124 A JP2007534124 A JP 2007534124A JP 2008515073 A JP2008515073 A JP 2008515073A
- Authority
- JP
- Japan
- Prior art keywords
- processing unit
- time
- access
- memory module
- access time
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本発明は、少なくとも一つの第1の処理ユニット(CPU)と、少なくとも一つの第2の処理ユニット(PU)と、少なくとも一つのメモリモジュール(MEM)と、相互接続手段とを備えるデータ処理システムに関する。メモリモジュール(MEM)は、上記少なくとも一つの第1及び第2の処理ユニット(CPU,PU)からのデータを記憶する機能を果たす。相互接続手段は、メモリモジュール(MEM)を第1及び第2の処理ユニット(CPU,PU)に対して結合する。また、第1及び第2の処理ユニット(CPU,PU)のメモリモジュール(MEM)に対するアービトレーションを行うためにアービトレーションユニット(AU)が設けられている。アービトレーションは時間窓に基づいて行われる。第2の処理ユニット(PU)がメモリモジュールにアクセスした第1のアクセス時間と、第2の処理ユニット(PU)がその処理を完了するために依然として必要とする第2のアクセス時間とが所定の時間窓中にアービトレーションユニット(AU)により監視される。第2のアクセス時間は、時間窓における残余のアクセス時間と比較され、残余のアクセス時間が第2のアクセス時間よりも多い場合、アービトレーションユニット(AU)は、上記少なくとも一つの第1の処理ユニット(CPU)が上記時間窓内においてメモリモジュールにアクセスできるようにする。残余のアクセス時間が第2のアクセス時間よりも多くない場合、アービトレーションユニット(AU)は、少なくとも一つの第1の処理ユニット(CPU)のアクセスを制限するとともに、少なくとも一つの第2の処理ユニット(PU)がメモリモジュール(MEM)にアクセスできるようにする。
Description
本発明は、データ処理システム、メモリコントローラ及びメモリアービトレーションのための方法に関する。
中央処理ユニットCPUやいくつかの専用処理ユニットPUのような複数のデータ処理ユニットを備えるデータ処理システムにおいて、通信は、通常、バス又は相互接続ネットワークを介して行われ、また、データは中央メモリに記憶される。中央処理ユニットCPUは、プログラマブル処理機能を実施し得る。そのようなデータ処理システムでは、複数の処理ユニットがメモリ資源を共有するため、どのデータ処理ユニットが共用メモリへのアクセスを許容されるのかを決定するために共用資源のアービトレーションを実施しなければならない。そのようなアービトレーションは、共用資源へのアクセスの要求をスケジュールして、メモリが一つの要求を1回で処理すれば済むようにするとともに、高い優先順位を有するデータ処理ユニットからの要求が他のデータ処理ユニットからの要求よりも頻繁に処理されるようにする。従って、利用可能なメモリバス容量は、各データ処理ユニットごとに一つの帯域幅限界へ分けられる。アービトレーションが適切に行われない場合、いくつかのデータ処理ユニットは、バスにアクセスするために長い時間に亘って待たなければならない場合がある。一方、リアルタイム処理を実施しなければならないデータ処理ユニットは、それらの要求されたリアルタイム処理を実行できなくなる場合があり、それにより、結果としてシステムの性能の低下が深刻になったり、又は、システムの性能が機能しなくなる場合さえある。アービトレーションのための標準的な方法としては、TDMA、優先順位固定アクセス、ラウンドロビン等が挙げられる。これらの標準的なアービトレーション方式の組み合わせも使用される。
一つのチップ即ち一つのシステムオンチップSoC上におけるいくつかのプログラマブル又は専用処理ユニットPUの集積化が高まることにより、異なる種類のトラフィック制約を有するオンチップトラフィックが存在する場合がある。そのようなトラフィック制約としては、ハードリアルタイムHRT、ソフトリアルタイムSRT、ベストエフォートBE、待ち時間クリティカル(レイテンシークリティカル)LC等を挙げることができる。一つのシステムオンチップに実装されるメモリの大きさは全体のコストに関する重大な要因であるため、通常、共用メモリが設けられる。そのようなメモリは、SDRAMメモリのような外部メモリであってもよい。従って、リアルタイム処理を実施する専用処理ユニットは、待ち時間クリティカル処理を実施するプログラマブル処理ユニットと相互接続部及び共用メモリを共有しなければならない。そのようなシステムにおける課題は、ハードリアルタイム処理を実行するデータ処理ユニットのためのエージェント及び待ち時間クリティカル処理を実行するデータ処理ユニットのためのエージェントに亘ってメモリ帯域幅を分配することである。アービトレーションは、少ない待ち時間を要求するエージェントに待ち時間が少ないアクセスが与えられる一方でリアルタイム処理に必要な保証が満たされるように実行されなければならない。
これらの保証を確保するための一つの方法は、ハードリアルタイムトラフィックに対して固定された時間窓(fixed windows)を与えることであり、この時間窓の間に亘って、待ち時間が少ない他のトラフィックが阻止されるとともに、ハードリアルタイム処理に関連付けられたエージェントに高い優先順位が与えられる。これにより、ハードリアルタイム保証が維持される場合があるが、ハードリアルタイム処理のための固定窓の間に亘る待ち時間の少ないトラフィックに関してかなりの待ち時間が生じる。
当該要件を解決するための更なる方法は、待ち時間が少ないトラフィックによって使用され得る帯域幅を制限して、待ち時間クリティカルトラフィック(待ち時間が重要視されるトラフィック)が帯域幅を過度に使用すると直ちに当該トラフィックが阻止されるようにすることである。しかしながら、そのようなアービトレーション方式は、メモリへのアクセスの効率が様々なトラフィックタイプにおいて異なる場合があるため、ハードリアルタイム要件の違反を引き起こす場合がある。また、そのようなアービトレーション方式は、広範囲に及ぶ細かい調整を必要とする。
従って、本発明の目的は、リアルタイム保証が依然として維持されるようにしつつ、待ち時間クリティカル処理(待ち時間が重要視される処理)のために待ち時間が少ないアクセスを行うことができるデータ処理システム、メモリコントローラ及びメモリアービトレーションのための方法を提供することである。
この目的は、請求項1に係るデータ処理システムによって、請求項4に係るメモリコントローラによって、請求項5に係るメモリアービトレーションのための方法によって解決される。
従って、少なくとも一つの第1の処理ユニットと、少なくとも一つの第2の処理ユニットと、少なくとも一つのメモリモジュールと、相互接続手段とを備えるデータ処理システムが提供される。メモリモジュールは、上記少なくとも一つの第1及び第2の処理ユニットからのデータを記憶する機能を果たす。相互接続手段は、メモリモジュールを第1及び第2の処理ユニットに対して結合する。また、第1及び第2の処理ユニットのメモリモジュールに対するアービトレーションを行うためにアービトレーションユニットが設けられている。アービトレーションは時間窓に基づいて行われる。第2の処理ユニットがメモリモジュールにアクセスした第1のアクセス時間と、第2の処理ユニットがその処理を完了するために依然として必要とする第2のアクセス時間とが所定の時間窓中にアービトレーションユニットにより監視される。監視された第2のアクセス時間は、時間窓における残余のアクセス時間と比較され、残余のアクセス時間が第2のアクセス時間よりも多い場合、アービトレーションユニットは、上記少なくとも一つの第1の処理ユニットが上記時間窓内においてメモリモジュールにアクセスできるようにする。残余のアクセス時間が第2のアクセス時間よりも多くない場合、アービトレーションユニットは、少なくとも一つの第1の処理ユニットのアクセスを制限するとともに、少なくとも一つの第2の処理ユニットがメモリモジュールにアクセスできるようにする。
従って、第2の処理ユニットの処理にとって十分な帯域幅及びアクセス時間が存在する限り、第1の処理ユニットからの処理に対して高いアクセス優先順位が与えられる一方で、第2の処理ユニットの処理に関して最小帯域幅が確実に維持される。
本発明の一態様によれば、第1の処理ユニットが待ち時間クリティカル処理を行い、第2の処理ユニットがリアルタイム処理を行う。従って、リアルタイム処理のための要件は、これらの処理のための最小帯域幅を関連付けることにより満たされ、一方、待ち時間クリティカル処理には、これらがメモリへの過度なアクセスを要求しない限り、待ち時間が少ないアクセスが与えられる。
本発明の更なる態様によれば、第2のアクセス時間は、処理ユニットのトラフィック特性に基づいてランタイム中に予め規定することができ又は決定することができる。処理ユニットがその要件に違反するに「近い」場合、相互接続手段は、特定のPUからのアクセス要求がアービトレーションユニットに見えるようにする。従って、待ち時間クリティカル処理及びリアルタイム処理の異なる要件の細かい調整を行うことができる。
また、本発明は、外部メモリへのアクセスを制御するためのメモリコントローラに関する。メモリコントローラは、少なくとも一つの第1の処理ユニット及び少なくとも一つの第2の処理ユニットから外部メモリのためのアクセス要求を受ける。メモリコントローラは、第1及び第2の処理ユニットのメモリアービトレーションを行うためのアービトレーションユニットを備えている。アービトレーションは、時間窓に基づいて行われる。処理ユニットがメモリモジュールMEMにアクセスした第1のアクセス時間と、第2の処理ユニットがその処理を完了するために必要とする第2のアクセス時間とが所定の時間窓中にアービトレーションユニットにより監視される。第2のアクセス時間は、時間窓における残余のアクセス時間と比較され、残余のアクセス時間が第2のアクセス時間よりも多い場合、アービトレーションユニットは上記少なくとも一つの第1の処理ユニットが上記時間窓内においてメモリモジュールにアクセスできるようにする。残余のアクセス時間が第2のアクセス時間よりも多くない場合には、アービトレーションユニットは、少なくとも一つの第1の処理ユニットのアクセスを制限するとともに、少なくとも一つの第2の処理ユニットがメモリモジュールにアクセスできるようにする。
また、本発明は、少なくとも一つの第1の処理ユニット及び少なくとも一つの第2の処理ユニットからメモリモジュールへのアクセスのアービトレーションを行うための方法に関する。アクセス要求は、少なくとも一つの第1の処理ユニット及び少なくとも一つの第2の処理ユニットから外部メモリに関して受けられる。第1及び第2の処理ユニットのメモリアービトレーションが行われる。アービトレーションは時間窓に基づいて行われる。第2の処理ユニットがメモリモジュールにアクセスした第1のアクセス時間と、第2の処理ユニットがその処理を完了するために必要とする第2のアクセス時間とが所定の時間窓中にアービトレーションユニットにより監視される。第2のアクセス時間は、時間窓における残余のアクセス時間と比較され、残余のアクセス時間が第2のアクセス時間よりも多い場合には、上記少なくとも一つの第1の処理ユニットが上記時間窓内においてメモリモジュールにアクセスすることができる。残余のアクセス時間が第2のアクセス時間よりも多くない場合には、少なくとも一つの第1の処理ユニットのアクセスが制限され、少なくとも一つの第2の処理ユニットがメモリモジュールにアクセスすることができる。
本発明のこれらの態様及び他の態様はここに記載された実施の形態から明らかであり、当該実施の形態を参照しながら上記態様について説明する。
図1には、本発明に係るシステムオンチップの基本的な構成が示されている。そのようなシステムオンチップは、共有メモリMEMと、いくつかのプログラマブル処理ユニットCPUと、専用の処理のためのいくつかの処理ユニットPUと、プログラマブル処理ユニット及び専用処理ユニットCPU,PUにおけるメモリアービトレーション(メモリ仲裁)を行うためのアービトレーションユニットAUとを備えている。処理ユニットPUは、対応するFIFO FFを介してレベル1アービトレーションユニットAU1に対して接続されている。レベル1アービトレーションユニットAU1は、アービトレーションユニットAUに対して結合されている。又は、処理ユニットPUは、アービトレーションユニットAUに接続されていてもよい。
アービトレーションユニットAUは時間窓(time windows)を与え、この時間窓の間に亘って、専用処理ユニットPUのうちの一つからの処理がハードリアルタイムに基づいて行われ得る。そのような時間窓は、ハードリアルタイム保証された帯域幅の半分であってもよい。しかしながら、必要とされるハードリアルタイム保証を満たすためには、専用処理ユニットPUからのプログラム可能な数のハードリアルタイムデータ転送がそのような窓の範囲内において行われなければならない。時間窓内の各サイクル中、アービタユニットAUは、ハードリアルタイム処理を行う専用処理ユニットPUからのエージェント、即ち、HRTエージェントからのデータ転送量を監視する。この特定のトラフィックタイプのためのメモリインタフェース効率概算値に基づいて、アービタユニットAUは、HRTエージェントがその残余の転送を行うためにあといくつのサイクルが必要とされているのかを計算する。その後、アービタユニットAUは、この計算された時間と現在の時間窓に残っている時間とを比較する。残余の時間が計算された概算値よりも少ない場合又は近い場合、HRTエージェントは、バス及びメモリモジュールMEMへのアクセスに最も高い優先順位が与えられる。
動作において、アービタユニットAUは、最初に、待ち時間が少ないアクセスを行うために、プログラマブル処理ユニットCPUからの待ち時間クリティカルトラフィック(待ち時間が重要視されるトラフィック)に高い優先順位を与える。アービタユニットAUは、例えば散発的なプロセッサキャッシュミスに起因して待ち時間クリティカルトラフィックが存在しない任意の空のタイムスロットにHRTトラフィックを配置することを試みる。時間窓の処理中、待ち時間クリティカルトラフィックがメモリモジュールMEMへの過度なアクセスを要求する場合、アービタはHRTトラフィックへ優先順位を切り換え、それにより、アービタユニットAUは、プログラマブルリアルタイム要件に違反しつつある(違反するに近い)ことを検出する。従って、本発明に係るアービタユニットAUは、HRT帯域幅保証を与えるようになっており、リアルタイム要件に実際に違反する虞があるときにだけ待ち時間ヒットを生成する。
ハードリアルタイムトラフィックのアービトレーションは、大きな問題を課さない。これは、この種のトラフィックが非常に明確なトラフィックタイプであり、そのため、実際のトラフィックの正確な評価により、効率低下を引き起こす場合があるエージェント間の過度な切り換えを防止することができるからである。
以下、本発明の第2の実施の形態に係るメモリコントローラについて説明する。メモリコントローラは、専用処理ユニットPUが接続され得るいくつかのダイレクトメモリアクセスDMAポートを備えている。また、メモリコントローラは、外部メモリモジュールMEMに対して接続され得るものであり、メモリモジュールへのプログラマブル処理ユニットCPU及び専用処理ユニットPUのアクセスを制御するようになっている。メモリコントローラ内には、特定の処理要件、即ち、ポートにより転送されるべきデータ要素の数、このデータ転送が行われるべきサイクル数、ポート転送のための更に悪いケースの効率概算値をアービタユニットに伝えるためのいくつかのプログラム可能な値が存在する。これらのプログラミング値は、HRT制約を有する処理ユニットPUが存在するポートのために存在することが好ましい。
第2の実施の形態に係るメモリアービトレーションを行うため、メモリコントローラ内に三つのレジスタが実装される。第1のレジスタDMA ARは、DMAポートにより、即ち、プログラマブル処理ユニット又は専用処理ユニットCPU,PUのうちの一方により必要とされるアクセス数のためのプログラムレジスタを構成する。第2のレジスタDMA QLも同様に、第1のレジスタDMA AR転送が行われるべき時間窓におけるサイクル数に関するプログラムレジスタである。第3のレジスタDMA EEも同様に、DMA転送効率、即ち、HRT制約を有するPUからのトラフィックにおけるメモリバス効率に関する概算値のためのプログラムレジスタである。その値は、0.5、即ち、50%効率として選択されてもよい。
また、メモリコントローラは二つの内部カウンタを備えている。第1のカウンタDMA ACは、量子内又は時間窓内のDMA転送数を数えるために使用される。このカウンタは、各DMAコマンドの後、又は、処理ユニットPUからの各コマンド若しくは転送の後に、バーストサイズ分だけ増加させられる。第2のカウンタDMA QCは、量子、即ち、時間窓において現在行われているサイクル数を数えるために使用される。このカウンタは、第2のレジスタDMA QL内に記憶される値が量子の限界となる各サイクルごとに1だけ増加させられる。
従って、第1のレジスタDMA ARの値−第1のカウンタDMA ACにおける値が第2のレジスタDMA QLの値−第2のカウンタDMA QCの値×第3のレジスタDMA EEの値よりも大きい場合、即ち、DMA AR−DMA AC>=(DMA QL−DMA QC)×DMA EEである場合には、DMA帯域幅のための保証が維持されない場合があり、また、プログラマブル処理ユニットCPUからの要求を受け入れるためのスペースが無い。即ち、この量子内において依然として行われる必要がある転送の数が量子内において行うことができる更なる転送量の概算値以上である場合、DMAポートからの処理に最も高い優先順位が割り当てられる。この条件が偽である場合、アービタユニットAUは、DMA帯域幅保証を維持することができ且つCPUトラフィックのための帯域幅を割り当てることができる、即ち、CPUからのトラフィックが更に高い優先順位を有していると決定する。これは、アービトレーションサイクルごとにチェックされることが好ましい。また、この計算にマージを加えるために閾値を使用することができ、これにより、DMA AR−DMA AC+DELTA>=(DMA QL−DMA QC)×DMA EEとなる。
もう一つの方法として好ましくは、窓内において行うために残されている転送数が、窓内において既に行われた転送の代わりに数えられる。従って、0から数え上げる代わりに、第1のカウンタDMA ACは、DMA ARに初期化されるとともに、それが0に達するまで、行われるアクセス数だけデクリメントされる。即ち、量子内において既に行われたサイクルの代わりに、量子内に残されているサイクル数が数えられる。また、第2のカウンタDMA QCは、時間窓の初めにDMA QLに初期化されるとともに、それが0に達するまでサイクルごとに1だけ減少させられる。インクリメントからデクリメントへの変化に起因して、上記方程式の「マイナス」がもはや必要なくなる。この計算のためにDMA ACの値を直接に使用することができる。従って、第1のレジスタDMA ACの値が第2のカウンタDMA QCの値×第3のレジスタDMA EEの値よりも大きい場合、即ち、DMA AC>=(DMA QC)×DMA EEである場合には、DMA帯域幅のための保証が維持されない場合があり、また、プログラマブル処理ユニットCPUからの要求を受け入れるためのスペースが無い。また、この計算にマージを加えるために閾値を使用することができ、これにより、DMA AC+DELTA>=(DMA QC)×DMA EEとなる。
従って、各時間窓ごとに、アービタユニットAUは、待ち時間が少ないトラフィックを可能にするために最初にメモリモジュールMEMへのCPUアクセスからのトラフィックを許可する。DMAポートからのトラフィックは、CPUポートがアイドル状態であり要求を発しないときはいつでもシフトされる。
しかしながら、CPUからのトラフィックの負荷が比較的小さい場合、そのようなプロセスは、DMA帯域幅要件を保持することができる。一方、DMA帯域幅要件に違反する危険があるメモリへの過度なアクセスをCPUからのトラフィックが要求する場合、アービタユニットAUは、DMA帯域幅要件を再び維持することができるまで、CPUトラフィックからのアクセス要求を阻止する。
レジスタのプログラミングは、非常に簡単であり、処理要件に基づいて決定することができる。CPUからの処理トラフィックは、DMA帯域幅のための保証が危険に晒されないようにCPUトラフィックがメモリモジュールMEMへの過度なアクセスを要求しない限り、待ち時間の少ないアクセスが許可される。前述したアービトレーション技術は、データ転送及びサイクルに関する帯域幅における絶対値に基づいているため、既知のアービトレーション方式と比べて精度を高めることができる。また、帯域幅、即ち、正味帯域幅に関する特定の保証を(転送の実際の数に基づいて)量子ごとに与えることができる。本発明に係るアービトレーション技術は、ダブルデータレートDDRであってもよいメモリ通信の効率の変化に寛容である。DDR通信の効率が変化させられる場合には、これにより、DMAトラフィックのための最小帯域幅要件が異なってくる。即ち、エージェントからのトラフィックに起因してDDRインタフェースの効率が変化する場合でも、特定のHRTエージェントにおける効率概算値(DMA EEとしてプログラムされる)が同じままである限り、HRT要件は必ず満たされる。
図2は、図1とは異なる処理ユニットからのトラフィックを例示するグラフを示している。ここで、P0 BWは、メモリコントローラのポート0によって費やされる帯域幅に関するものである。ポート0は、特に第1レベルアービトレーション後に総てのリアルタイム処理のために与えられるメモリコントローラのDMAポートを構成している。ポートは、ソフトリアルタイム(SRT)トラフィック及びハードリアルタイム(HRT)トラフィックの両方を含み得る。第1レベルアービトレーションは、HRTトラフィックが存在するときにSRTトラフィックが遅延させられるように、HRTトラフィックに対して更に高い優先順位が与えられるようにする。P1 BW,P2 BW,P3 BWは、ポート1,2,3のそれぞれによって費やされる帯域幅に関するものである。これらの三つのポートは、プログラマブル処理ユニットCPUのために使用される。CPUポートは、それらのトラフィックに対するHRT制約を有していないが、少ない待ち時間要件を有している。
図2は、ここで与えられた上記方式がシミュレーション環境へコード化されて実行されるときのいくつかの結果を表している。X軸は、メモリコントローラに適用される異なるトラフィック条件を表している。最も左側の場合では、CPUポート(p1,p2,p3)におけるトラフィックが少ない。場合を右側へと移すにつれて、CPUポートからのトラフィックが徐々に増大する。Y軸は、それぞれのポートによって使用されるメモリバス帯域幅のパーセンテージを表している。最も左側の場合では、CPUからのトラフィックが少ないため、帯域幅の大部分がポート0(HRT制約も伴うDMAポート)によって使用される。左から右へ向かってCPUトラフィックが増大するにつれて、CPUの帯域幅消費が増大し、その結果、DMAポートp0の帯域幅消費が減少する。これらの条件下(左から場合1,2,3)においてCPUアクセスには少ない待ち時間が与えられる。この動向は、CPUトラフィックがDMA HRT制約を脅かさない場合に一貫して見られる。
最も右側の二つの場合(場合4,5)は、前述した帯域幅保証方式がDMA HRTデッドラインに保護を与えるケースを示している。これらのケースでは、CPU帯域幅要求が非常に増大するため、DMA HRT保証が脅かされ、従って、CPU要求が阻止される。結果は、CPU帯域幅要求が増大し続ける場合にコントローラにプログラムされた値に従ってHRTエージェントが適切な帯域幅を受けることをシステムが確保することを示している。
図3は、図1に係るシステムの共有メモリへのアクセスの図解を示している。ここには、メモリアクセスの三つの例が示されている。上側の例は、少ない待ち時間で扱うことができるCPUからの少ないトラフィックTCPUを示している。CPUからのアクセスTCPUは、通常の優先順位DMA NPを有するDMAポートからのトラフィックも均一に分散させることができるように、均一に分散させられる。真ん中の例は、少ない待ち時間で処理される高いCPUトラフィックTCPUを伴う状況を示している。しかしながら、CPUトラフィックTCPUは、HRTデッドラインが脅かされるまでしか処理されない。その後、DMA高優先順位トラフィックDMA HPが処理される。下側の例は、非常に高いCPUトラフィックTCPUを伴う状況を示している。このトラフィックTCPUは、HRTデッドラインが脅かされるまで少ない待ち時間で処理される。その後、CPUトラフィックTCPUが阻止され、DMA高優先順位トラフィックDMA HPが処理される。
前述したアービトレーション技術は、リアルタイム処理を行うための専用の処理ユニットPUを備えていることがあり且つプログラマブル処理ユニットCPU上で実行するアプリケーションを備えていることがある、オーディオ−ビデオ用途におけるシステムオンチップにおいて適用されてもよい。あるいは、アービトレーション方式がモバイルソリューションにおいて実施されてもよい。上記方式は、リアルタイムでない待ち時間クリティカル処理を伴う共用資源を用いたリアルタイム処理(オーディオ−ビデオ等)において使用される。
ハードリアルタイムトラフィックHRTは、DMAエージェント、即ち、比較的短い期間内において実行されなければならないDMA処理の帯域幅要件に関するものである。この帯域幅要件の違反が機能領域をもたらす場合がある。そのようなトラフィックの例は、オーディオ及びビデオの入力及び出力である。
ソフトリアルタイムトラフィックは、ハードリアルタイムトラフィックと比べて比較的長い期間内において満たされるべきDMAエージェントの帯域幅要件に関するものである。このエージェントの例は、メモリベースの(memory based)ビデオコプロセッサであり得る。
一つのタイムスロットを見逃すと深刻な結果が生じる場合があるため、ハードリアルタイムトラフィックにおけるデッドラインは、総てのタイムスロットにおいて維持されなければならない。ソフトリアルタイムトラフィックにおけるデッドラインは、複数のタイムスロットの期間に亘って分布させられる。従って、ソフトリアルタイムトラフィックが一つのタイムスロット内において十分な帯域幅を得ない場合には、システム全体が依然として機能するようにその後のタイムスロット内において帯域幅を取得することが可能となる。
本発明は、専用処理ユニットPUからのトラフィックのための最小帯域幅要件をこの処理ユニットPUからのトラフィックが区別されないように与えるための概念に基づいている。専用処理ユニットPUからのトラフィックのための帯域幅要件の効率に基づく予測を与えないと、CPUからの待ち時間クリティカルトラフィックにおける待ち時間が増大する場合がある。専用処理ユニットPUからのHRTトラフィックがどれ位の期間に亘って遅延できるのかについての情報をアービタユニットAUが有していない場合には、リアルタイムデッドラインに違反しないようにするために、HRTトラフィックがタイムスロット又は時間窓の初めに関連付けられる。しかしながら、CPUからの待ち時間クリティカルトラフィックがタイムスロットの最初の部分の間に亘ってメモリモジュールMEMへのアクセスを要求する場合には、HRTトラフィックに対して高い優先順位が与えられるため、その要求が阻止される場合がある。
前述したアービトレーション方式は、SDRAMインタフェースを有するメモリコントローラにおいて実施されてもよい。そのようなメモリコントローラにおいて、インタフェースの効率値は、実際のトラフィックタイプに応じて30%乃至90%の間で変化する場合がある。専用処理ユニットPUは、通常は所定のトラフィックタイプを有しているため、そのようなトラフィックタイプにおける効率値は、リアルタイムデッドラインを予測し且つこのデッドラインを維持できるかどうかを予測するために使用され得る。これらの値に基づいて、アービタユニットは、専用処理ユニットPUからのリアルタイムトラフィック要求のうちのどれが、このトラフィックのリアルタイムデッドラインが脅かされる前に遅延させられてもよいのかを監視する。
即ち、上記実施の形態に係るアービトレーション方式は、CPUからの待ち時間クリティカルトラフィックに関する最大帯域幅限界を規定するのではなく、専用処理ユニットPUからのトラフィックに関する最小帯域幅限界を規定する。これは、プログラマブル処理ユニットCPUからのトラフィックが専用処理ユニットPUからのトラフィックよりも予測が難しいため、特に有利である。リアルタイム要件の提供が妨害されることがある場合においては、CPUからのトラフィックだけが阻止される。効率計算に基づいて、アービタユニットAUは、そのような妨害が可能な時期を決定することができる。
専用処理ユニットPUが例えば100サイクルに10個のデータ項目を必要とする場合には、以下のケースが起こり得る。
サイクル1乃至10は、処理ユニットのデータ転送に関係する。
サイクル11乃至190は、他のデータ転送に関係する。
サイクル191乃至290は、処理ユニットからのデータ転送に関係する。
ここで、10個のデータ項目は、最初の100サイクルにおいて専用処理ユニットPUのために転送され、次の10個のデータ項目は次の100サイクル中に転送される。しかしながら、この方式を用いると、例えばサイクル50乃至150の間においてデータ項目がこの100サイクルの期間に専用処理ユニットから転送されなかったとき、即ち、要件に違反しているときに、リアルタイム要件は維持されない。
しかしながら、5個のデータ要素が50サイクルごとに転送される場合、即ち、実際の要件の半分である場合には、例えば、
サイクル1乃至5が、処理ユニットからのデータ転送に関係し、
サイクル6乃至95が、他のデータ転送に関係し、
サイクル96乃至100が、処理ユニットからのデータ転送に関係する。
サイクル1乃至5が、処理ユニットからのデータ転送に関係し、
サイクル6乃至95が、他のデータ転送に関係し、
サイクル96乃至100が、処理ユニットからのデータ転送に関係する。
従って、100サイクルごとに、どの100サイクルが選択されるかに拘わらず、10個のデータ項目が転送される。
DMA転送の効率は、DMAトランザクションがメモリコントローラに与えられる場合には、SDRAMインタフェースの効率に関係する。専用処理ユニットPUのそれぞれは、それ自体のトラフィックタイプを備えるものである。
DRAMインタフェースは、1サイクルごとに一つのデータ項目を転送することができず、また、処理オーバーヘッドに起因して1サイクル中のデータ転送の実際の数は少ない。そのようなオーバーヘッドは、SDRAMリフレッシュ、起動信号、プリチャージコマンド等であってもよい。それぞれのデータ転送サイクルの実際のパーセンテージが効率と称される。インタフェースのそのような効率は、メモリコントローラにより処理されるトラフィックに大きく依存している。128バイトラインリニア(lined linear)転送トラフィックは、4バイトのアラインメントされていないランダムにアドレス指定されるトラフィックよりも非常に高い効率を有している。これは、そのような場合においては、コントローラが行(ロウ)を頻繁に開閉するためにオーバーヘッドを必要とするからである。
尚、上述した実施の形態は、例示であって本発明を限定するものではなく、また、当業者であれば添付の請求項の範囲から逸脱することなく多くの他の実施の形態を設計することができる。請求項中、括弧内の任意の参照符号は、請求項を限定するものと解釈されるべきではない。用語「備える、含む(comprising)」は、請求項中に記載された要素又はステップ以外の要素又はステップの存在を排除するものではない。要素に先行する用語「一つの(a,an)」は、そのような要素の複数の存在を排除するものではない。いくつかの手段を列挙する装置の請求項において、これらの手段のうちのいくつかは、ハードウェアの一つの同じ項目によって具現化することができる。特定の手段が互いに異なる従属請求項中に挙げられているという事実だけで、これらの手段の組み合わせを有利に使用することができないということを示唆するものではない。
また、請求項中の任意の参照符号は、請求項の範囲を限定するものと解釈されるべきではない。
Claims (5)
- 少なくとも一つの第1の処理ユニットと、
少なくとも一つの第2の処理ユニットと、
前記少なくとも一つの第1及び第2の処理ユニットからのデータを記憶するための少なくとも一つのメモリモジュールと、
前記メモリモジュールを前記第1及び第2の処理ユニットに対して結合するための相互接続手段と、
前記第2の処理ユニットが前記メモリモジュールにアクセスした第1のアクセス時間と、前記第2の処理ユニットがその処理を完了するために必要とする第2のアクセス時間とを所定の時間窓の間に監視するとともに、前記時間窓における残余のアクセス時間と前記第2のアクセス時間とを比較することによって、前記第1及び第2の処理ユニットに関して前記メモリモジュールへのアクセスのためのアービトレーションを前記時間窓に基づいて行うアービトレーションユニットと、
を備え、
前記アービトレーションユニットは、前記残余のアクセス時間が前記第2のアクセス時間よりも大きい場合には前記少なくとも一つの第1の処理ユニットが前記時間窓内において前記メモリモジュールにアクセスすることを許可し、前記残余のアクセス時間が前記第2のアクセス時間よりも大きくない場合には前記少なくとも一つの第2の処理ユニットが前記メモリモジュールにアクセスすることを許可することを特徴とするデータ処理システム。 - 前記第1の処理ユニットは、待ち時間クリティカル処理を行い、前記第2の処理ユニットは、リアルタイム処理を行うことを特徴とする請求項1に記載のデータ処理システム。
- 前記第2のアクセス時間は、前記少なくとも一つの第2の処理ユニットのトラフィック特性に基づいてランタイムの間に決定することができることを特徴とする請求項1又は2に記載のデータ処理システム。
- 外部メモリへのアクセスを制御するためのメモリコントローラであって、少なくとも一つの第1の処理ユニット及び少なくとも一つの第2の処理ユニットから前記外部メモリのためのアクセス要求を受けるメモリコントローラにおいて、
前記第2の処理ユニットが前記メモリモジュールにアクセスした第1のアクセス時間と、前記第2の処理ユニットがその処理を完了するために必要とする第2のアクセス時間とを所定の時間窓の間に監視するとともに、前記時間窓における残余のアクセス時間と前記第2のアクセス時間とを比較することによって、前記第1及び第2の処理ユニットのための前記メモリモジュールへのアクセスのアービトレーションを前記時間窓に基づいて行うアービトレーションユニットを備え、
前記アービトレーションユニットは、前記残余のアクセス時間が前記第2のアクセス時間よりも大きい場合には前記少なくとも一つの第1の処理ユニットが前記時間窓内において前記メモリモジュールにアクセスすることを許可し、前記残余のアクセス時間が前記第2のアクセス時間よりも大きくない場合には前記少なくとも一つの第2の処理ユニットが前記メモリモジュールにアクセスすることを許可することを特徴とするメモリコントローラ。 - 少なくとも一つの第1の処理ユニット及び少なくとも一つの第2の処理ユニットに関してメモリモジュールへのアクセスのためのアービトレーションを時間窓に基づいて行う方法であって、
前記第2の処理ユニットが前記メモリモジュールにアクセスした第1のアクセス時間を監視するステップと、
所定の時間窓の間に前記第2の処理ユニットがその処理を完了するために必要とする第2のアクセス時間を監視するステップと、
所定の時間窓の間に、前記第2のアクセス時間を、前記時間窓における残余のアクセス時間と比較するステップと、
を含み、
残余のアクセス時間が前記第2のアクセス時間よりも大きい場合には、前記少なくとも一つの第1の処理ユニットが前記時間窓内において前記メモリモジュールにアクセスすることを許可され、前記残余のアクセス時間が前記第2のアクセス時間よりも大きくない場合には、前記少なくとも一つの第2の処理ユニットが前記メモリモジュールにアクセスすることを許可されることを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04104709 | 2004-09-28 | ||
PCT/IB2005/053066 WO2006035344A1 (en) | 2004-09-28 | 2005-09-19 | Data processing system and method for memory arbitration |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008515073A true JP2008515073A (ja) | 2008-05-08 |
Family
ID=35355817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007534124A Withdrawn JP2008515073A (ja) | 2004-09-28 | 2005-09-19 | データ処理システム及びメモリアービトレーションのための方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7913014B2 (ja) |
EP (1) | EP1797503A1 (ja) |
JP (1) | JP2008515073A (ja) |
CN (1) | CN101065739A (ja) |
WO (1) | WO2006035344A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013090161A (ja) * | 2011-10-18 | 2013-05-13 | Fujitsu Ltd | 撮像装置及びアクセス制御方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101455085B1 (ko) * | 2006-09-18 | 2014-10-27 | 샌디스크 아이엘 엘티디 | 저장 오퍼레이션에 대한 완료 시간을 추정하는 방법 및 저장 디바이스 |
PT2028798E (pt) | 2007-08-22 | 2012-07-03 | Ericsson Telefon Ab L M | Métodos e dispositivos para controlo de transmissão de dados |
US20090217280A1 (en) * | 2008-02-21 | 2009-08-27 | Honeywell International Inc. | Shared-Resource Time Partitioning in a Multi-Core System |
US8270335B1 (en) * | 2008-02-28 | 2012-09-18 | Xilinx, Inc. | Arbitration for time division multiple access using delta sigma modulation |
US8595402B1 (en) * | 2010-03-02 | 2013-11-26 | Marvell International Ltd. | Dynamic arbitration schemes for multi-master memory systems |
US8848577B2 (en) | 2012-09-24 | 2014-09-30 | Apple Inc. | Bandwidth management |
CN105302745B (zh) * | 2014-06-30 | 2019-07-19 | 深圳市中兴微电子技术有限公司 | 高速缓冲存储器及其应用方法 |
CN107908577B (zh) * | 2017-11-24 | 2021-03-26 | 中国航空工业集团公司西安航空计算技术研究所 | 一种具有仲裁功能的多通路访问存储控制器的电路 |
CN109582226A (zh) * | 2018-11-14 | 2019-04-05 | 北京中电华大电子设计有限责任公司 | 一种高速存储访问逻辑结构及其控制方法 |
CN112948293A (zh) * | 2021-02-26 | 2021-06-11 | 浪潮电子信息产业股份有限公司 | 一种多用户接口的ddr仲裁器及ddr控制器芯片 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4969120A (en) * | 1989-02-13 | 1990-11-06 | International Business Machines Corporation | Data processing system for time shared access to a time slotted bus |
US5621898A (en) | 1994-11-29 | 1997-04-15 | Compaq Computer Corporation | Arbiter organization for serial bus transfers |
US5948089A (en) * | 1997-09-05 | 1999-09-07 | Sonics, Inc. | Fully-pipelined fixed-latency communications system with a real time dynamic bandwidth allocation |
US6157978A (en) * | 1998-09-16 | 2000-12-05 | Neomagic Corp. | Multimedia round-robin arbitration with phantom slots for super-priority real-time agent |
JP2000182074A (ja) * | 1998-12-16 | 2000-06-30 | Konami Co Ltd | 放射光線表示方法、画像表示装置、記録媒体 |
US6415367B1 (en) | 1999-12-16 | 2002-07-02 | Intel Corporation | Apparatus for reducing asynchronous service latency in a time slot-based memory arbitration scheme |
US6701399B1 (en) | 2000-02-29 | 2004-03-02 | Compaq Information Technologies Group | Priority mechanism for scheduling isochronous and asynchronous transactions on a shared bus |
-
2005
- 2005-09-19 CN CNA2005800407093A patent/CN101065739A/zh active Pending
- 2005-09-19 WO PCT/IB2005/053066 patent/WO2006035344A1/en active Application Filing
- 2005-09-19 JP JP2007534124A patent/JP2008515073A/ja not_active Withdrawn
- 2005-09-19 US US11/576,254 patent/US7913014B2/en not_active Expired - Fee Related
- 2005-09-19 EP EP05783687A patent/EP1797503A1/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013090161A (ja) * | 2011-10-18 | 2013-05-13 | Fujitsu Ltd | 撮像装置及びアクセス制御方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1797503A1 (en) | 2007-06-20 |
US20090119433A1 (en) | 2009-05-07 |
US7913014B2 (en) | 2011-03-22 |
WO2006035344A1 (en) | 2006-04-06 |
CN101065739A (zh) | 2007-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008515073A (ja) | データ処理システム及びメモリアービトレーションのための方法 | |
US9141568B2 (en) | Proportional memory operation throttling | |
US8209493B2 (en) | Systems and methods for scheduling memory requests during memory throttling | |
Usui et al. | DASH: Deadline-aware high-performance memory scheduler for heterogeneous systems with hardware accelerators | |
CN102282546B (zh) | 资源控制 | |
US9201816B2 (en) | Data processing apparatus and a method for setting priority levels for transactions | |
US20190042331A1 (en) | Power aware load balancing using a hardware queue manager | |
JP4910022B2 (ja) | 低バンド幅で局所集中アクセスを保証する調停装置、調停方法、調停装置を含む動画処理装置、及び集積回路 | |
CN107646104B (zh) | 管理共享资源的方法、处理系统、设备和存储介质 | |
US7739437B2 (en) | Access arbiter and arbitrable condition verification device | |
US8171187B2 (en) | System and method for arbitrating between memory access requests | |
JPH11191075A (ja) | メモリアーキテクチャーのための優先符号化及び復号化 | |
US20070239888A1 (en) | Controlling transmission of data | |
US8949845B2 (en) | Systems and methods for resource controlling | |
US9117508B2 (en) | Integrated circuit with adaptive power state management | |
CN110633232A (zh) | 半导体器件和总线生成器 | |
Tobuschat et al. | Workload-aware shaping of shared resource accesses in mixed-criticality systems | |
US20150331466A1 (en) | Method and apparatus for managing a thermal budget of at least a part of a processing system | |
US8706928B2 (en) | Integrated circuit and method for reducing violations of a timing constraint | |
JP7018834B2 (ja) | 半導体装置 | |
JP5494925B2 (ja) | 半導体集積回路、情報処理装置およびプロセッサ性能保証方法 | |
WO2014097102A2 (en) | Methods and apparatuses to improve the real-time capabilities of computing devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080626 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080917 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20091111 |