JP4635485B2 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP4635485B2 JP4635485B2 JP2004191411A JP2004191411A JP4635485B2 JP 4635485 B2 JP4635485 B2 JP 4635485B2 JP 2004191411 A JP2004191411 A JP 2004191411A JP 2004191411 A JP2004191411 A JP 2004191411A JP 4635485 B2 JP4635485 B2 JP 4635485B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- data transfer
- bus master
- data
- timer
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System (AREA)
Description
たとえば、下記特許文献1では、複数のバスマスタからのデータ転送要求を調停する際に、バスマスタの数が増大しても、処理速度の低下を防止するために、ツリー構造型のラウンドロビンアービタに関する技術が開示されている。
図7は、ラウンドロビンアービタのツリー構造の一例である。図では、たとえば、効率を考慮したバンド幅:10に対して、バスマスタA〜Cの各バスマスタに対し、それぞれ、「2.5」、「2.5」、「5」のバンド幅が保証される。なお、図中の矢印は、トークンが渡される向きを示す。
また、システムモードの多様化に応じた複数のツリー構造を設定することは、あるモードからその他のモードへの遷移状態をどのように扱うかという問題、モードが非常に多く存在する場合にどの程度ツリーを設定する必要があるかという問題、などがあり、現実的に困難である。
図8は、(a)リクエストを同じ間隔で行う場合と、(b)リクエストを同じ間隔で行わない場合とで、FIFOバッファに与える影響を説明するための図である。
図8において、時刻rt1〜rt5は、図7で示した各バスマスタA〜Cがリクエスト(REQ_A,REQ_B,REQ_C)を行うタイミングであり、時刻gt1〜gt8は、アービタからグラントを受け取るタイミングである。そして、リクエストのタイミングと、そのリクエストに対して受け取るグラントのタイミングが、対応付けて線で結ばれている。
なお、ここで、バスマスタBは、図示しないメモリからデータの読み込みを行うリード用バスマスタであり、一定レートで外部のクライアントからFIFOバッファ上のデータが引き抜かれる。
また、図における直線rate_Bは、バスマスタBのクライアントが、バスマスタBのFIFOバッファからデータを引き抜く際のレートを示す。直線rate_Bの傾きは、(a)および(b)ともに一定である。
なお、時刻rt2およびrt3におけるバスマスタBのリクエスト(REQ_B)に応じてグラントが与えられているのは、トークンの向きとしては逆(トークンが渡される順序としては最後)であるものの、他のバスマスタがリクエストを行っていないからである。
すなわち、バスマスタBは、(a)の場合と異なり、最初の調停時刻が遅れる(時刻gt4になる)ことになるが、バスマスタBのクライアントからのデータ引き抜きレートは、(a)の場合と(b)の場合とで同一のため、たとえば時刻gt4の時点において、(a)の場合と比較して、図に示すDIFFの分だけ大きく引き抜かれることになり、FIFOバッファにとって不利となる。
そこで、下記特許文献2では、データ転送のリクエスト間隔のむらを抑制するために、ツリー構造から割り当てられたバンド幅以下で動作するバスマスタに対してタイマを設け、そのタイマによりリクエストをマスクするアービタに関する技術が開示されている。
このことは、タイマによりリクエストの制限を与えようとするバスマスタに対して、求められるバンド幅に応じて単純に導き出されるタイマ値を設定すると、調停待ち時間の分だけバンド幅が削減されることを意味する。
すなわち、タイマにより単純に一度グラントをうけてから次のリクエストをタイマ値のサイクル数だけマスクするのでは、調停の待ち時間にむらがある場合に対応することができず、実際にワーストケースを見積もることが困難であるため、FIFOバッファの容量に対して過度のマージンを設定する必要が生ずる。
すなわち、前記複数のバスマスタのうち少なくとも一のバスマスタは、タイマによりデータ転送要求を行うタイミングが管理されており、通常、タイマによる遅れ時間をもって、データ転送要求を行う。
そして、第1のデータ転送要求に対する前記アービタの調停時間が、前記タイマの設定時間より長くなると、その第1のデータ転送要求の次になされる第2のデータ転送要求については、タイマによる遅れを伴わずに直ちに行う。
これにより、第1のデータ転送要求におけるアービタの調停の遅れ分が、後の第2のデータ転送要求で取り戻される結果、ある一定期間では、アービタの調停時間によらず、データ転送要求のタイミングを均一と見ることができる。
本実施形態に係るデータ処理装置は、ラウンドロビンアービタにおけるツリー構造によって割り当てられるバンド幅以上のバンド幅をリクエストするバスマスタのデータ転送を保証するために、ツリー構造の変化を見積もることを可能にするとともに、バスマスタのデータ転送要求(リクエスト)間隔をタイマにより制御して、そのリクエスト間隔を平均化するものである。
図1では、メモリ(MEM)4に対するデータ転送を行う複数のクライアント(CLT)1a〜1dに対して、FIFOバッファを含むバスマスタ(BM)2a〜2dが接続され、各バスマスタからのリクエストをメモリコントローラ(MEM_C)3内のアービタ(ARB)31が調停する。
なお、クライアント1a,1bは、リード用クライアントであり、メモリ4からデータを読み出すクライアントである。クライアント1c,1dは、ライト用クライアントであり、メモリ4に対してデータを書き込むクライアントである。
図1に示すように、各クライアントは、対応するバスマスタに対してデータ転送に係るコマンド(CMD)を与え、各バスマスタはこのコマンドに応じて、データ転送に係るリクエストをアービタ31に対して行う。
アービタ31の調停方式としては、たとえば、上述したツリー構造のラウンドロビンアービタを適用することができる。すなわち、複数のバスマスタ間にトークンを走らせ、あるバスマスタにリクエストがない場合には、次のバスマスタにトークンを渡していき、リクエストがあるバスマスタにトークンが回ってきた時に、そのバスマスタに対してグラント信号を与える。そして、この調停をツリー構造に構成された複数のサブアービタによって順次行う。
図2において、FIFOバッファ10は、データ転送のむらや調停待ち時間のむらを吸収し、各バスマスタの処理を破綻させないためのデータバッファである。アービタ31は、このFIFOバッファがオーバーフロ/アンダーフロを起こさないように各バスマスタからのリクエストを調停することが必要である。
パケット分割部14では、コマンドバッファ13に蓄積されたデータ転送コマンド(CMD)を、メモリコントローラ3によって規定される所定のデータ転送単位(パケット)に分割するとともに、順次、パケット単位でリクエスト信号を生成するようにリクエスト生成部15に指示する。このとき、FIFOバッファの空き容量が1パケット分ない場合は、FIFOバッファの制御として、リクエストを止めなければならない(すなわち、FULLでない場合のみリクエストを行う)。
また、メモリ4のアドレス等のメモリアクセスに関する情報は、パケット分割部14からメモリコントローラ3に対して送出される。
パケットとしては、リード用パケットおよびライト用パケットの2種類が必ず存在するが、その他として、たとえばデータ量の違い、アドレッシングの違いでパケットを設定してもよい。また、リフレッシュ等をパケットに含めてもよい。
タイマ設定値は、バスマスタによって異なる値であり、リクエスト信号(REQ)の出力をマスクするサイクル数として、各バスマスタに与えられる。すなわち、このタイマ設定値(TIM)に応じたマスク期間では、リクエスト信号(REQ)が停止される。したがって、タイマ設定値(TIM)が小さく設定されているほど、リクエスト信号(REQ)がマスクされる期間が短くなり、優先度が上がることになる。
したがって、本実施形態では、調停の待ち時間に依存せずに、バンド幅のみから導き出せるタイマ値を設定できるように、リクエスト出力制御部(REQ_CTRL)を以下に説明するように構成している。
タイマカウンタ11は、タイマ設定値(TIM)を順次カウントし、カウントを終了する毎にリクエスト制御値生成部12へ通知する。
すなわち、カウンタ111では、タイマ設定値(TIM)のカウントが終了する毎に、判定回路112およびゲート回路116を介して、タイマ設定値(TIM)がロードされて、またカウントが始められる。そして、タイマ設定値(TIM)のカウントが終了する毎に、判定回路112よりリクエスト制御値生成部12へ制御信号が送出される。
なお、タイマカウンタ111は、対応するバスマスタ2がリクエスト信号(REQ)を出力した後の調停の待ち時間の間も、カウントを継続する。
カウンタ122は、カウンタ111によりタイマ設定値(TIM)のカウントが終了する毎にゲート回路121に与えられる制御信号に応じて、カウントアップする。
また、カウンタ122は、アービタ31よりグラント信号(GNT)が与えられると、カウントダウンする。
その際、タイマ設定値(TIM)のカウントが終了し、かつ、グラント信号(GNT)がアービタ31より与えられた場合には、カウントアップとカウントダウンが相殺されるので、AND回路123を介して、カウントアップおよびカウントダウンはともに行わない(+/−0)。
図3では、最大値判定回路(MAX)124がリクエスト制御値(RCV)をモニタし、リクエスト制御値(RCV)が所定の最大値に達した場合には、出力レベルを反転させ、これにより、ゲート回路121は、カウンタ122がカウントアップしないように制御する。
逆に、リクエスト制御値(RCV)が「0」である場合(=0)には、タイマ設定値(TIM)のカウントが終了し、カウンタ122がカウントアップされてリクエスト制御値(RCV)が「0」でなくなった時点で、リクエスト信号(REQ)をアービタ31に対して送出する。
これにより、調停待ち時間が長い場合であっても、リクエスト信号(REQ)の送出遅れ分を、その後に取り戻すことができることになる。
以上述べたように、カウンタ122のカウントアップおよびカウントダウンの動作により、アービタ31の調停待ち時間によらず、割り当てられたバンド幅に応じたタイマ設定値(TIM)をもって、リクエスト間隔を平均化させることができる。すなわち、一時的に調停待ち時間が長くなっても、ある一定の期間ではリクエスト間隔が一定であるとして見ることができる。
(繰り下げ(t/TIM+1) − ΣGNT)!= 0 ・・・(I)
ここで、繰り下げ(t/TIM+1)は、TIM間隔でリクエストする式である。式の中で+1をしているのは、システム全体でのリクエストのもっとも集中するとき、すなわち各バスマスタのリクエスト周期の位相が合い一斉にリクエストする時刻をt=0としている。
また、リクエスト間隔を等間隔に制御することで、他のバスマスタへの影響を小さくすることができる。
リクエスト出力制御部(REQ_CTRL)の各カウンタは、以下の(1)および(2)の観点を考慮してリセット機能を有している。
(1)バスマスタが動作していない場合に、カウンタ122をカウントアップしてしまうと、その後に動作を開始する直後のリクエスト間隔を制御できなくなる。
(2)FIFOバッファが一杯になった場合に、カウンタ122がカウントアップしてしまうと、その後のリクエスト間隔を制御できなくなる可能性がある。
なお、図3においてリセット信号をtim_1setと称している。そして、カウンタ群をリセットする際には、クライアントからコマンド(CMD)が与えられた直後は直ちにリクエストができるようにするため、図3に示すように、リセット信号(tim_1set)に応じてカウンタ122を「1」にセットする。
すなわち、FIFOバッファ内においてデータ転送コマンド(コマンド)に対する処理が完全に終了した時、具体的には、あるコマンドに対する処理が終了し、その次のコマンドがまだ与えられていない場合に、バスマスタが「動作中(OPG)でない」と判断する。
したがって、コマンドの処理が完全に終了した時にリクエスト制御値(RCV)が「1」以上の場合には「1」に固定する。また、リクエスト制御値(RCV)が「0」である場合には、「1」になるタイミングまで待ち、「1」に固定することが望ましい。
なお、図3では、ゲート回路113、判定回路114およびAND回路115により上述した処理がなされる。
すなわち、FIFOバッファの制御としてFIFOバッファに1パケット分の空き容量がない場合にリクエストを止めなければならないが、その間にカウンタ122をカウントアップすると、その後のリクエスト間隔がクライアントのデータ転送レートのむらに依存してしまうことになる。
そして、時刻t2の時点から、クライアントがFIFOバッファのデータの引き抜きを開始すると、リクエスト制御値(RCV)が大きな値となっているので、早い転送レートでリクエスト信号(REQ)を送出し、タイマ設定値(TIM)のカウント動作によってはリクエスト信号(REQ)の送出を抑制することができない。
時刻t3になり、ある程度のデータの引き抜きがなされると、リクエスト制御値(RCV)が適切なレベルとなり、リクエスト信号(REQ)の送出タイミングがタイマ設定値(TIM)に応じたタイミングに抑制される。すなわち、タイマが効き始める。
すでに述べたように、本来的にカウンタ122をカウントアップする理由は、調停の待ち時間分に起因するリクエスト信号(REQ)の送出の遅れを後で取り戻すためであって、クライアントがFIFOバッファからデータを引き抜かないためリクエスト間隔が長引いた場合に、カウントアップする必要はない。
また、カウントアップする必要がある場合であっても、リクエスト間隔にむらが出るということは、ツリー構造の変化を見積もることができなくなる可能性があり、システム全体のデータ処理能力に影響を与えるため、個別に、より大きなバンド幅に対応できるタイマを設定したり、FIFOバッファを増やすことで対応すべきである。
したがって、FIFOバッファの空き容量がない間にリクエスト制御値(RCV)が「1」以上の場合には「1」に固定する。また、リクエスト制御値(RCV)が「0」である場合には、「1」になるタイミングまで待ち、「1」に固定することが望ましい。
なお、図3では、ゲート回路113、判定回路114およびAND回路115により上述した処理がなされる。
図5は、バスマスタ2の動作を示すタイミングチャートの一例であり、(a)はFIFOバッファ10のデータ量(FIFO)を、(b)はカウンタ111のカウント動作(CTR)を、(c)はリクエスト制御値(RCV)を、(d)はクライアントからのデータ転送コマンド(CMD)を、(e)はクライアントからのデータイネーブル(DEN)を、(f)はリクエスト信号(REQ)を、(g)はグラント信号(GNT)を、それぞれ示す。
時刻t0から時刻t1にかけて送出されたリクエスト信号(REQ)が調停され、グラント信号(GNT)が与えられると、(a)に示すように、徐々にFIFOバッファにデータが蓄積される。
仮にカウンタ群がリセットされずにRCVの値が大きくなると、FIFOバッファに空きがあればREQが出せるようになり、クライアントがバンド幅以上の割合でデータの引き抜きを行うと、そのままそのレートでREQが出ることになり、タイマによる制御が利かなくなる。したがって、カウンタ群をリセットすることで、かかる不都合を回避している。
たとえば、メモリ上のデータに基づいて画像表示を行うクライアントは、水平方向、垂直方向にブランク期間があるため、データ転送レートが実際には一定ではない。すなわち、そのブランク期間は、FIFOバッファからデータを引き抜かないので、そのブランク期間を含めると、データ転送レートは一定ではなく、メモリバスの上ではバンド幅にむらがあるように見えてしまう。
このような場合でも、バスマスタ2は、タイマによってリクエスト間隔を平均化するので、メモリバス上のバンド幅にむらがないものと見ることができる。
したがって、データ転送レートのむらのあるクライアントのバスマスタは、個別にFIFOバッファの容量を増加させて対応することで、必要なFIFOバッファ容量を効率的に見積もることができる。図6は、この考え方を模式的に表した図である。
図6は、リードクライアントにおいて、時間に応じてFIFOバッファに蓄積されるデータとの関係を示し、(a)は、リクエストのタイミングにむらがある複雑なクライアントの場合、(b)は、タイマによりリクエスト間隔を抑制されたクライアントの場合である。また、(c)は、合計での必要なFIFOバッファ容量を示す。
かかる場合には、(c)に示すように、2つのバッファ容量diff1およびdiff2の合計を必要なFIFOバッファ容量として見積もることができる。
ライトのクライアントの場合には、始めの1パケット分のデータがFIFOバッファに書き込まれないと、リクエストをしない点だけがリードのクライアントの場合と異なる。このため、リードのクライアントと異なり、データ転送レートが一定であれば、タイマを持つ必要が無い。
しかし、データ転送レートにむらがある場合には、本発明が有効に機能する。また、理論上データ転送レートにむらがない場合でも、実際上何かの不具合で暴走し始めた場合の保険として本発明は有効に機能する。
また、各バスマスタが持つべきFIFOバッファの容量をマージンを考慮せず見積もることができるので、回路規模の小型化および低コスト化を図ることができる。
Claims (5)
- それぞれバッファを含む複数のバスマスタと、
データ転送要求を調停し、前記複数のバスマスタの中からデータ転送を許可したバスマスタに対して、メモリバスへのアクセスを許可するアービタと、
を有し、
前記複数のバスマスタのうち少なくとも一のバスマスタは、タイマによりデータ転送要求を行うタイミングが管理され、
第1のデータ転送要求に対する前記アービタの調停が前記タイマの設定時間を経過する回数をカウントし、当該カウント値に応じて、前記第1のデータ転送要求に続く第2のデータ転送要求以後の複数のデータ転送要求を、前記タイマに関わらず直ちに行う
データ処理装置。 - 前記一のバスマスタは、
前記アービタからデータ転送要求に対する許可が与えられる毎に、前記カウント値を減ずる
請求項1記載のデータ処理装置。 - 前記一のバスマスタは、データ転送要求を、所定量のデータに対応する複数のデータ転送要求に分割して行い、
バッファが前記所定量のデータを格納可能な数を、前記カウント値の上限とする
請求項1記載のデータ処理装置。 - 前記一のバスマスタは、
すべてのデータ転送要求に対して前記アービタより許可が与えられると、前記カウント値をリセットし、または、前記カウント値が「1」以上である場合に「1」に固定する
請求項3記載のデータ処理装置。 - 前記一のバスマスタは、
バッファがオーバーフローまたはアンダーフローするためにデータ転送要求を行うことができない間は、
前記カウント値が「1」以上である場合に「1」に固定する
請求項4記載のデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004191411A JP4635485B2 (ja) | 2004-06-29 | 2004-06-29 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004191411A JP4635485B2 (ja) | 2004-06-29 | 2004-06-29 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006012032A JP2006012032A (ja) | 2006-01-12 |
JP4635485B2 true JP4635485B2 (ja) | 2011-02-23 |
Family
ID=35779202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004191411A Expired - Fee Related JP4635485B2 (ja) | 2004-06-29 | 2004-06-29 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4635485B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5068300B2 (ja) * | 2009-11-24 | 2012-11-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データフロー及びプロセッサのメモリ共有化ための装置、方法及びプログラム |
US10481944B2 (en) * | 2017-08-09 | 2019-11-19 | Xilinx, Inc. | Adaptive quality of service control circuit |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62139075A (ja) * | 1985-12-13 | 1987-06-22 | Fujitsu Ltd | チヤネルプロセツサのアクセス制御方式 |
JP2000029777A (ja) * | 1998-04-01 | 2000-01-28 | Matsushita Electric Ind Co Ltd | デ―タ転送装置 |
-
2004
- 2004-06-29 JP JP2004191411A patent/JP4635485B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62139075A (ja) * | 1985-12-13 | 1987-06-22 | Fujitsu Ltd | チヤネルプロセツサのアクセス制御方式 |
JP2000029777A (ja) * | 1998-04-01 | 2000-01-28 | Matsushita Electric Ind Co Ltd | デ―タ転送装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2006012032A (ja) | 2006-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8312229B2 (en) | Method and apparatus for scheduling real-time and non-real-time access to a shared resource | |
JP4778199B2 (ja) | データ転送装置及びデータ転送方法 | |
JP4480427B2 (ja) | リソース管理装置 | |
US7149828B2 (en) | Bus arbitration apparatus and bus arbitration method | |
US6792516B2 (en) | Memory arbiter with intelligent page gathering logic | |
JP4436367B2 (ja) | 低バンド幅で局所集中アクセスを保証する調停装置、調停方法、及び調停装置を含む動画処理装置 | |
JP7142741B2 (ja) | データ転送装置およびデータ転送方法 | |
JP2006195714A (ja) | リソース管理装置 | |
US5907688A (en) | Smart arbitration for non-symmetric data streams | |
US20040019749A1 (en) | Apparatus, method, and computer program for resource request arbitration | |
JP4635485B2 (ja) | データ処理装置 | |
EP1238342B1 (en) | Apparatus for memory resource arbitration based on dedicated time slot allocation | |
US6412049B1 (en) | Method for minimizing CPU memory latency while transferring streaming data | |
US20030126380A1 (en) | Memory arbiter with grace and ceiling periods and intelligent page gathering logic | |
JP2005316609A (ja) | バス調停装置およびバス調停方法 | |
EP1513069A2 (en) | Resource management apparatus | |
JP4850504B2 (ja) | 信号処理装置、撮像装置およびデータ転送方法 | |
WO2011016168A1 (ja) | メモリアクセス装置、及び映像処理システム | |
JP2001101128A (ja) | データ処理装置 | |
US7120774B2 (en) | Efficient management of memory access requests from a video data stream | |
JP2006040167A (ja) | バス調停回路、情報処理装置、並びに、そのプログラムおよび記録媒体 | |
JP4898527B2 (ja) | リソース使用管理装置、リソース使用管理システム及びリソース使用管理装置の制御方法 | |
CN114489541B (zh) | 一种基于fpga的vga显存带宽调控方法及相关组件 | |
US7747806B2 (en) | Resource use management device, resource use management system, and control method for a resource use management device | |
JP2007102509A (ja) | 調停装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070327 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100804 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100810 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101001 |
|
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: 20101026 |
|
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: 20101108 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131203 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131203 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |