JP2006012032A - Data processor - Google Patents
Data processor Download PDFInfo
- Publication number
- JP2006012032A JP2006012032A JP2004191411A JP2004191411A JP2006012032A JP 2006012032 A JP2006012032 A JP 2006012032A JP 2004191411 A JP2004191411 A JP 2004191411A JP 2004191411 A JP2004191411 A JP 2004191411A JP 2006012032 A JP2006012032 A JP 2006012032A
- 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.)
- Granted
Links
Images
Landscapes
- Memory System (AREA)
Abstract
Description
本発明は、複数のクライアント(バスマスタ)からのデータ転送要求を調停し、メモリバスへのアクセスを許可するデータ処理装置に関する。 The present invention relates to a data processing apparatus that arbitrates data transfer requests from a plurality of clients (bus masters) and permits access to a memory bus.
複数のクライアント間で1つのメモリバスを共有する際に、そのメモリバスに対する複数のクライアント(バスマスタ)からのアクセスを調停するための、データ処理装置としてのアービタに関する様々な技術が従来より提案されている。
たとえば、下記特許文献1では、複数のバスマスタからのデータ転送要求を調停する際に、バスマスタの数が増大しても、処理速度の低下を防止するために、ツリー構造型のラウンドロビンアービタに関する技術が開示されている。
Various technologies related to an arbiter as a data processing device for arbitrating access from a plurality of clients (bus masters) to the memory bus when a memory bus is shared among a plurality of clients have been proposed. Yes.
For example, in the following
通常、このようなツリー構造のアービタでは、そのツリーから導き出される割合にしたがって各バスマスタのバンド幅が保証される。
図7は、ラウンドロビンアービタのツリー構造の一例である。図では、たとえば、効率を考慮したバンド幅:10に対して、バスマスタA〜Cの各バスマスタに対し、それぞれ、「2.5」、「2.5」、「5」のバンド幅が保証される。なお、図中の矢印は、トークンが渡される向きを示す。
Normally, in such an arbiter having a tree structure, the bandwidth of each bus master is guaranteed according to the ratio derived from the tree.
FIG. 7 is an example of a tree structure of a round robin arbiter. In the figure, for example, for the
しかし、昨今、システムモードの多様化によって、1つのバスマスタが複数のモードを有し、各モード毎にバンド幅が著しく変化する場合がある。たとえば、映像表示を行うクライアントの場合、HDモード(高密度映像モード)とSDモード(標準映像モード)とでは、映像の解像度が異なるためにバンド幅が大きく異なるのが通常である。かかる場合には、1つのツリー構造に基づくバンド幅の保証のみでは対応することができない。
また、システムモードの多様化に応じた複数のツリー構造を設定することは、あるモードからその他のモードへの遷移状態をどのように扱うかという問題、モードが非常に多く存在する場合にどの程度ツリーを設定する必要があるかという問題、などがあり、現実的に困難である。
However, recently, due to diversification of system modes, one bus master may have a plurality of modes, and the bandwidth may change significantly for each mode. For example, in the case of a client that performs video display, the HD mode (high-density video mode) and the SD mode (standard video mode) usually differ greatly in bandwidth because the video resolution is different. In such a case, it is not possible to cope only with the guarantee of the bandwidth based on one tree structure.
In addition, setting multiple tree structures according to the diversification of system modes is a problem of how to handle the transition state from one mode to another, and to what extent when there are many modes There is a problem of whether it is necessary to set a tree, and it is difficult in practice.
ところで、あるバスマスタが、ツリー構造から割り当てられるバンド幅以上に動作する場合であっても、全バスマスタの合計バンド幅が効率を考えた全バンド幅を超えない限り、比較的長い時間で見ると、当該バスマスタのバンド幅も保証される。これは、ツリー構造上恵まれたバスマスタ(データ転送要求(以下、単にリクエストと称する)以上にバンド幅が割り当てられたバスマスタ)がリクエストを行わないことで、ツリー構造の一時的変化が起こり、他のバスマスタに対して、本来割り当てられたバンド幅以上のバンド幅が与えられるためである。 By the way, even if a certain bus master operates more than the bandwidth allocated from the tree structure, as long as the total bandwidth of all the bus masters does not exceed the total bandwidth considering efficiency, in a relatively long time, The bandwidth of the bus master is also guaranteed. This is because the bus structure (a bus master to which bandwidth is allocated more than the data transfer request (hereinafter simply referred to as “request”)) does not make a request, resulting in a temporary change in the tree structure. This is because the bus master is given a bandwidth that is greater than the bandwidth originally allocated.
その一方で、ツリー構造上恵まれたバスマスタがリクエストを行う際の間隔が均一でない場合には、その他のバスマスタが有するFIFOバッファが不利となる。
図8は、(a)リクエストを同じ間隔で行う場合と、(b)リクエストを同じ間隔で行わない場合とで、FIFOバッファに与える影響を説明するための図である。
図8において、時刻rt1〜rt5は、図7で示した各バスマスタA〜Cがリクエスト(REQ_A,REQ_B,REQ_C)を行うタイミングであり、時刻gt1〜gt8は、アービタからグラントを受け取るタイミングである。そして、リクエストのタイミングと、そのリクエストに対して受け取るグラントのタイミングが、対応付けて線で結ばれている。
なお、ここで、バスマスタBは、図示しないメモリからデータの読み込みを行うリード用バスマスタであり、一定レートで外部のクライアントからFIFOバッファ上のデータが引き抜かれる。
On the other hand, if the intervals at which requests are made by bus masters with a good tree structure are not uniform, the FIFO buffers of other bus masters are disadvantageous.
FIG. 8 is a diagram for explaining the influence on the FIFO buffer when (a) requests are made at the same interval and (b) when requests are not made at the same interval.
In FIG. 8, times rt1 to rt5 are timings at which the bus masters A to C shown in FIG. 7 make a request (REQ_A, REQ_B, REQ_C), and times gt1 to gt8 are timings to receive a grant from the arbiter. The timing of the request and the timing of the grant received for the request are associated with each other and connected by a line.
Here, the bus master B is a read bus master that reads data from a memory (not shown), and data on the FIFO buffer is extracted from an external client at a constant rate.
図8において、ステップ状に示される線図は、バスマスタBのFIFOバッファに蓄積されるデータ量を示す。たとえば、(a)では、時刻gt3,gt4,gt5,gt8にグラントが与えられ、これらのタイミングで、図示しないメモリコントローラを介し、順次FIFOバッファに蓄積される。
また、図における直線rate_Bは、バスマスタBのクライアントが、バスマスタBのFIFOバッファからデータを引き抜く際のレートを示す。直線rate_Bの傾きは、(a)および(b)ともに一定である。
In FIG. 8, the diagram shown in steps indicates the amount of data stored in the FIFO buffer of the bus master B. For example, in (a), grants are given at times gt3, gt4, gt5, and gt8, and are sequentially stored in the FIFO buffer at these timings via a memory controller (not shown).
A straight line rate_B in the figure indicates a rate at which the client of the bus master B pulls out data from the FIFO buffer of the bus master B. The slope of the straight line rate_B is constant in both (a) and (b).
図8(a)では、バスマスタCのリクエスト(REQ_C)は、割り当てられたバンド幅に応じた均一の間隔で行われている(時刻rt1,時刻rt4,…)。
なお、時刻rt2およびrt3におけるバスマスタBのリクエスト(REQ_B)に応じてグラントが与えられているのは、トークンの向きとしては逆(トークンが渡される順序としては最後)であるものの、他のバスマスタがリクエストを行っていないからである。
In FIG. 8A, requests (REQ_C) from the bus master C are made at uniform intervals according to the allocated bandwidth (time rt1, time rt4,...).
Note that the grant is given according to the request (REQ_B) of the bus master B at the times rt2 and rt3, although the reverse of the token direction (the last in the order in which the tokens are passed), the other bus masters This is because no request is made.
一方、図8(b)では、バスマスタCのリクエスト(REQ_C)は、一定の期間で見れば割り当てられたバンド幅に応じた平均的な間隔となっているものの、時刻rt1およびrt2において局所的にリクエストが行われた場合を示している。この時、時刻rt2においてツリー構造上優先度の高い、すなわち、トークンが先に渡されるバスマスタCが先に調停される結果、バスマスタBは、(a)と異なり、時刻gt3でグラントが与えられない。
すなわち、バスマスタBは、(a)の場合と異なり、最初の調停時刻が遅れる(時刻gt4になる)ことになるが、バスマスタBのクライアントからのデータ引き抜きレートは、(a)の場合と(b)の場合とで同一のため、たとえば時刻gt4の時点において、(a)の場合と比較して、図に示すDIFFの分だけ大きく引き抜かれることになり、FIFOバッファにとって不利となる。
On the other hand, in FIG. 8B, the request (REQ_C) of the bus master C has an average interval according to the allocated bandwidth in a certain period, but locally at times rt1 and rt2. It shows the case where a request is made. At this time, the bus master C having a higher priority in the tree structure at time rt2, that is, the bus master C to which the token is passed first is arbitrated first, so that the bus master B is not granted a grant at time gt3 unlike (a). .
That is, unlike the case of (a), the first arbitration time is delayed (time gt4) in the bus master B, but the data extraction rate from the client of the bus master B is the case of (a) and (b For example, at time gt4, as compared with the case of (a), it is extracted by the amount of DIFF shown in the drawing, which is disadvantageous for the FIFO buffer.
以上、図8を参照して説明したように、あるバスマスタが、ツリー構造から割り当てられるバンド幅以上に動作する場合にFIFOバッファによりデータ損失を防止するシステムにおいては、バンド幅が保証される時間がFIFOバッファで補うことができる時間であるか否かが重要なポイントとなり、それはデータ転送に対するリクエスト間隔にむらがあるか否かに依存するのである。
そこで、下記特許文献2では、データ転送のリクエスト間隔のむらを抑制するために、ツリー構造から割り当てられたバンド幅以下で動作するバスマスタに対してタイマを設け、そのタイマによりリクエストをマスクするアービタに関する技術が開示されている。
Therefore, in
しかし、上記特許文献2に開示されているように、タイマにより一度グラントをうけてから次のリクエストをタイマ値のサイクル数だけマスクする方法によれば、バスマスタのリクエストは、タイマによりマスクされた後、さらに調停による待ち時間(調停により順番が回ってくる時間)の後に満たされる(グラントが与えられる)ことになる。
このことは、タイマによりリクエストの制限を与えようとするバスマスタに対して、求められるバンド幅に応じて単純に導き出されるタイマ値を設定すると、調停待ち時間の分だけバンド幅が削減されることを意味する。
However, as disclosed in
This means that if a timer value that is simply derived according to the required bandwidth is set for a bus master that wants to limit requests by a timer, the bandwidth is reduced by the arbitration wait time. means.
したがって、あるバスマスタに対するタイマ値は、ワーストケースでの調停待ち時間を考慮して設定する必要があるが、その一方で、ワーストケースの調停待ち時間を考慮したタイマ値が設定された場合に、実際にはベストケースでの調停待ち時間をもってグラントが与えられると、ツリー構造以上のバンド幅をリクエストするその他のバスマスタが破綻する可能性がある。
すなわち、タイマにより単純に一度グラントをうけてから次のリクエストをタイマ値のサイクル数だけマスクするのでは、調停の待ち時間にむらがある場合に対応することができず、実際にワーストケースを見積もることが困難であるため、FIFOバッファの容量に対して過度のマージンを設定する必要が生ずる。
Therefore, the timer value for a certain bus master needs to be set in consideration of the worst-case arbitration wait time. On the other hand, if a timer value that takes into account the worst-case arbitration wait time is set, If a grant is granted with the best-case arbitration wait time, other bus masters requesting more bandwidth than the tree structure may fail.
In other words, simply granting a grant once by the timer and then masking the next request by the number of cycles of the timer value cannot deal with the case where the waiting time for arbitration is uneven, and actually estimates the worst case. This makes it difficult to set an excessive margin for the capacity of the FIFO buffer.
本発明はかかる事情に鑑みてなされたものであり、その目的は、バスマスタのデータ転送要求の間隔をバンド幅に相当する間隔に抑制するデータ処理装置を提供することにある。 The present invention has been made in view of such circumstances, and an object of the present invention is to provide a data processing apparatus that suppresses an interval between bus master data transfer requests to an interval corresponding to a bandwidth.
上記目的を達成するための本発明は、それぞれバッファを含む複数のバスマスタと、データ転送要求を調停し、前記複数のバスマスタの中からデータ転送を許可したバスマスタに対して、メモリバスへのアクセスを許可するアービタと、を有し、前記複数のバスマスタのうち少なくとも一のバスマスタは、タイマによりデータ転送要求を行うタイミングが管理され、第1のデータ転送要求に対する前記アービタの調停時間が前記タイマの設定時間より長い場合には、前記第1のデータ転送要求に続く第2のデータ転送要求を、前記タイマに関わらず直ちに行うデータ処理装置である。 In order to achieve the above object, the present invention provides access to a memory bus to a plurality of bus masters each including a buffer and a bus master that arbitrates a data transfer request and permits data transfer from the plurality of bus masters. An arbiter to be permitted, and at least one bus master among the plurality of bus masters is managed by a timer for timing of making a data transfer request, and the arbitration time of the arbiter for the first data transfer request is set by the timer When the time is longer than the time, the data processing device immediately makes a second data transfer request following the first data transfer request regardless of the timer.
好適には、前記一のバスマスタは、第1のデータ転送要求に対する前記アービタの調停が前記タイマの設定時間を経過する回数をカウントし、当該カウント値に応じて、前記第2のデータ転送要求以後の複数のデータ転送要求を、前記タイマに関わらず直ちに行う。 Preferably, the one bus master counts the number of times that the arbiter arbitration for the first data transfer request has passed the set time of the timer, and after the second data transfer request, according to the count value A plurality of data transfer requests are immediately made regardless of the timer.
好適には、前記一のバスマスタは、前記アービタからデータ転送要求に対する許可が与えられる毎に、前記カウント値を減ずる。 Preferably, the one bus master decrements the count value every time a permission for a data transfer request is given from the arbiter.
好適には、前記一のバスマスタは、データ転送要求を、所定量のデータに対応する複数のデータ転送要求に分割して行い、バッファが前記所定量のデータを格納可能な数を、前記カウント値の上限とする。 Preferably, the one bus master performs a data transfer request by dividing the data transfer request into a plurality of data transfer requests corresponding to a predetermined amount of data, and determines the number of buffers that can store the predetermined amount of data as the count value. The upper limit of.
好適には、前記一のバスマスタは、すべてのデータ転送要求に対して前記アービタより許可が与えられると、前記カウント値をリセットし、または、前記カウント値が「1」以上である場合に「1」に固定する。 Preferably, the one bus master resets the count value when permission is given from the arbiter for all data transfer requests, or “1” when the count value is “1” or more. ”.
好適には、前記一のバスマスタは、バッファがオーバーフローまたはアンダーフローするためにデータ転送要求を行うことができない間は、前記カウント値が「1」以上である場合に「1」に固定する。 Preferably, the one bus master is fixed to “1” when the count value is “1” or more while a data transfer request cannot be made because the buffer overflows or underflows.
本発明のデータ処理装置の作用は、以下の通りである。
すなわち、前記複数のバスマスタのうち少なくとも一のバスマスタは、タイマによりデータ転送要求を行うタイミングが管理されており、通常、タイマによる遅れ時間をもって、データ転送要求を行う。
そして、第1のデータ転送要求に対する前記アービタの調停時間が、前記タイマの設定時間より長くなると、その第1のデータ転送要求の次になされる第2のデータ転送要求については、タイマによる遅れを伴わずに直ちに行う。
これにより、第1のデータ転送要求におけるアービタの調停の遅れ分が、後の第2のデータ転送要求で取り戻される結果、ある一定期間では、アービタの調停時間によらず、データ転送要求のタイミングを均一と見ることができる。
The operation of the data processing apparatus of the present invention is as follows.
That is, at least one bus master among the plurality of bus masters manages the timing of making a data transfer request by a timer, and normally makes a data transfer request with a delay time by the timer.
When the arbitration time of the arbiter with respect to the first data transfer request becomes longer than the set time of the timer, the second data transfer request made after the first data transfer request is delayed by the timer. Immediately without it.
As a result, the delay in the arbitration of the arbiter in the first data transfer request is recovered in the subsequent second data transfer request. As a result, the timing of the data transfer request is set for a certain period regardless of the arbitration time of the arbiter. It can be seen as uniform.
本発明によれば、バスマスタのデータ転送要求の間隔をバンド幅に相当する間隔に抑制するので、その他のバスマスタに対する影響を少なくすることができ、バスマスタ全体のデータ転送性能を向上させることができる。さらに、バスマスタに必要なFIFOバッファの容量を正確に見積もることができるので、過度のマージンを必要とせず、小型化および低コスト化に資する。 According to the present invention, since the interval between data transfer requests of the bus master is suppressed to an interval corresponding to the bandwidth, the influence on other bus masters can be reduced, and the data transfer performance of the entire bus master can be improved. Further, since the capacity of the FIFO buffer required for the bus master can be accurately estimated, an excessive margin is not required, which contributes to miniaturization and cost reduction.
実施の形態
本実施形態に係るデータ処理装置は、ラウンドロビンアービタにおけるツリー構造によって割り当てられるバンド幅以上のバンド幅をリクエストするバスマスタのデータ転送を保証するために、ツリー構造の変化を見積もることを可能にするとともに、バスマスタのデータ転送要求(リクエスト)間隔をタイマにより制御して、そのリクエスト間隔を平均化するものである。
Embodiment The data processing apparatus according to the present embodiment can estimate a change in the tree structure in order to guarantee the data transfer of the bus master that requests a bandwidth larger than the bandwidth allocated by the tree structure in the round robin arbiter. In addition, the data transfer request (request) interval of the bus master is controlled by a timer, and the request intervals are averaged.
図1は、本発明の一実施形態であるデータ処理装置の一構成例である。
図1では、メモリ(MEM)4に対するデータ転送を行う複数のクライアント(CLT)1a〜1dに対して、FIFOバッファを含むバスマスタ(BM)2a〜2dが接続され、各バスマスタからのリクエストをメモリコントローラ(MEM_C)3内のアービタ(ARB)31が調停する。
なお、クライアント1a,1bは、リード用クライアントであり、メモリ4からデータを読み出すクライアントである。クライアント1c,1dは、ライト用クライアントであり、メモリ4に対してデータを書き込むクライアントである。
図1に示すように、各クライアントは、対応するバスマスタに対してデータ転送に係るコマンド(CMD)を与え、各バスマスタはこのコマンドに応じて、データ転送に係るリクエストをアービタ31に対して行う。
FIG. 1 is a configuration example of a data processing apparatus according to an embodiment of the present invention.
In FIG. 1, bus masters (BM) 2a to 2d including FIFO buffers are connected to a plurality of clients (CLT) 1a to 1d that perform data transfer to the memory (MEM) 4, and requests from each bus master are sent to the memory controller. Arbiter (ARB) 31 in (MEM_C) 3 arbitrates.
The
As shown in FIG. 1, each client gives a data transfer command (CMD) to the corresponding bus master, and each bus master makes a request for data transfer to the
アービタ31は、図1に図示した複数のバスマスタからのリクエストを調停した結果、1つのバスマスタに対して、メモリバスに対するアクセスを許可するためのグラント(GNT)を与える。
アービタ31の調停方式としては、たとえば、上述したツリー構造のラウンドロビンアービタを適用することができる。すなわち、複数のバスマスタ間にトークンを走らせ、あるバスマスタにリクエストがない場合には、次のバスマスタにトークンを渡していき、リクエストがあるバスマスタにトークンが回ってきた時に、そのバスマスタに対してグラント信号を与える。そして、この調停をツリー構造に構成された複数のサブアービタによって順次行う。
As a result of arbitrating requests from the plurality of bus masters shown in FIG. 1, the
As the arbitration method of the
図2は、リード用クライアントに対応するバスマスタ2の構成を示す回路ブロック図の一例である。
図2において、FIFOバッファ10は、データ転送のむらや調停待ち時間のむらを吸収し、各バスマスタの処理を破綻させないためのデータバッファである。アービタ31は、このFIFOバッファがオーバーフロ/アンダーフロを起こさないように各バスマスタからのリクエストを調停することが必要である。
FIG. 2 is an example of a circuit block diagram showing the configuration of the
In FIG. 2, a
クライアントからのデータ転送コマンド(CMD)は、順次コマンドバッファ(CMD_BUF)13に蓄積され、パケット分割部14により処理される。
パケット分割部14では、コマンドバッファ13に蓄積されたデータ転送コマンド(CMD)を、メモリコントローラ3によって規定される所定のデータ転送単位(パケット)に分割するとともに、順次、パケット単位でリクエスト信号を生成するようにリクエスト生成部15に指示する。このとき、FIFOバッファの空き容量が1パケット分ない場合は、FIFOバッファの制御として、リクエストを止めなければならない(すなわち、FULLでない場合のみリクエストを行う)。
また、メモリ4のアドレス等のメモリアクセスに関する情報は、パケット分割部14からメモリコントローラ3に対して送出される。
パケットとしては、リード用パケットおよびライト用パケットの2種類が必ず存在するが、その他として、たとえばデータ量の違い、アドレッシングの違いでパケットを設定してもよい。また、リフレッシュ等をパケットに含めてもよい。
Data transfer commands (CMD) from the client are sequentially stored in the command buffer (CMD_BUF) 13 and processed by the
The
Information relating to memory access such as the address of the memory 4 is sent from the
There are always two types of packets: a read packet and a write packet. Alternatively, for example, a packet may be set according to a difference in data amount or a difference in addressing. Further, refresh or the like may be included in the packet.
リクエスト生成部15により生成されたリクエスト信号(REQ)は、無条件にメモリコントローラ3内のアービタ31に出力されるのではなく、図に示すように、リクエスト信号(REQ)の出力有無は、図に示すリクエスト出力制御部(REQ_CTRL)により、AND回路16を介して制御される。
The request signal (REQ) generated by the
リクエスト出力制御部(REQ_CTRL)には、図示しないCPUによりタイマ設定値(TIM)が与えられる。
タイマ設定値は、バスマスタによって異なる値であり、リクエスト信号(REQ)の出力をマスクするサイクル数として、各バスマスタに与えられる。すなわち、このタイマ設定値(TIM)に応じたマスク期間では、リクエスト信号(REQ)が停止される。したがって、タイマ設定値(TIM)が小さく設定されているほど、リクエスト信号(REQ)がマスクされる期間が短くなり、優先度が上がることになる。
A timer set value (TIM) is given to the request output control unit (REQ_CTRL) by a CPU (not shown).
The timer set value differs depending on the bus master, and is given to each bus master as the number of cycles for masking the output of the request signal (REQ). That is, the request signal (REQ) is stopped in the mask period corresponding to the timer set value (TIM). Therefore, the smaller the timer set value (TIM) is set, the shorter the period during which the request signal (REQ) is masked, and the higher the priority.
これにより、タイマ設定値(TIM)に応じたバンド幅を各バスマスタに与えることができることになるが、単にタイマ設定値(TIM)に応じた制御だけでは、調停の待ち時間にむらがある場合には、その待ち時間の分だけバンド幅が削減されることと等価になってしまう。
したがって、本実施形態では、調停の待ち時間に依存せずに、バンド幅のみから導き出せるタイマ値を設定できるように、リクエスト出力制御部(REQ_CTRL)を以下に説明するように構成している。
As a result, a bandwidth corresponding to the timer set value (TIM) can be given to each bus master. However, when there is unevenness in the arbitration waiting time only by the control according to the timer set value (TIM). Is equivalent to reducing the bandwidth by the waiting time.
Therefore, in the present embodiment, the request output control unit (REQ_CTRL) is configured as described below so that a timer value that can be derived only from the bandwidth can be set without depending on the arbitration waiting time.
図3は、リクエスト出力制御部(REQ_CTRL)を構成するタイマカウンタ(CTR)11およびリクエスト制御値生成部(RCVG)12の回路ブロック図の一例である。
タイマカウンタ11は、タイマ設定値(TIM)を順次カウントし、カウントを終了する毎にリクエスト制御値生成部12へ通知する。
すなわち、カウンタ111では、タイマ設定値(TIM)のカウントが終了する毎に、判定回路112およびゲート回路116を介して、タイマ設定値(TIM)がロードされて、またカウントが始められる。そして、タイマ設定値(TIM)のカウントが終了する毎に、判定回路112よりリクエスト制御値生成部12へ制御信号が送出される。
なお、タイマカウンタ111は、対応するバスマスタ2がリクエスト信号(REQ)を出力した後の調停の待ち時間の間も、カウントを継続する。
FIG. 3 is an example of a circuit block diagram of the timer counter (CTR) 11 and the request control value generation unit (RCVG) 12 constituting the request output control unit (REQ_CTRL).
The
That is, the
Note that the
リクエスト制御値生成部12は、図に示すように、カウンタ122を含んで構成され、このカウンタ122のカウント値がリクエスト制御値(RCV)となる。
カウンタ122は、カウンタ111によりタイマ設定値(TIM)のカウントが終了する毎にゲート回路121に与えられる制御信号に応じて、カウントアップする。
また、カウンタ122は、アービタ31よりグラント信号(GNT)が与えられると、カウントダウンする。
その際、タイマ設定値(TIM)のカウントが終了し、かつ、グラント信号(GNT)がアービタ31より与えられた場合には、カウントアップとカウントダウンが相殺されるので、AND回路123を介して、カウントアップおよびカウントダウンはともに行わない(+/−0)。
As shown in the figure, the request control
The
The
At that time, when the count of the timer set value (TIM) is completed and the grant signal (GNT) is given from the
また、リクエスト制御値生成部12では、カウンタ122に対してカウントできる最大値を設定している。その最大値は、FIFOバッファの容量に対応していることが望ましい。すなわち、FIFOバッファ10が、クライアントが一回のデータ転送で要するデータ量の何倍に相当するかによって最大値を決定する。
図3では、最大値判定回路(MAX)124がリクエスト制御値(RCV)をモニタし、リクエスト制御値(RCV)が所定の最大値に達した場合には、出力レベルを反転させ、これにより、ゲート回路121は、カウンタ122がカウントアップしないように制御する。
Further, the request control
In FIG. 3, the maximum value determination circuit (MAX) 124 monitors the request control value (RCV), and when the request control value (RCV) reaches a predetermined maximum value, the output level is inverted. The gate circuit 121 controls the
以上、リクエスト出力制御部(REQ_CTRL)の構成および動作について述べた。次に、再び図2に戻って、リクエスト制御値(RCV)によるリクエスト信号(REQ)の出力制御について説明する。 The configuration and operation of the request output control unit (REQ_CTRL) have been described above. Next, returning to FIG. 2 again, output control of the request signal (REQ) by the request control value (RCV) will be described.
図2に示すように、バスマスタ2では、カウンタ122のカウント値であるリクエスト制御値(RCV)が「0」でない場合(!=0)には、リクエスト生成部15が生成したリクエスト信号(REQ)を直ちにアービタ31に対して送出する。
逆に、リクエスト制御値(RCV)が「0」である場合(=0)には、タイマ設定値(TIM)のカウントが終了し、カウンタ122がカウントアップされてリクエスト制御値(RCV)が「0」でなくなった時点で、リクエスト信号(REQ)をアービタ31に対して送出する。
As shown in FIG. 2, in the
Conversely, when the request control value (RCV) is “0” (= 0), the timer setting value (TIM) is counted, the
すなわち、リクエスト出力制御部(REQ_CTRL)は、バンド幅に応じて割り当てられたタイマ設定値(TIM)よりアービタ31の調停待ち時間が長い場合には、次のリクエスト信号(REQ)を抑制せずに直ちに送出する。そして、カウンタ122がカウントアップされ、リクエスト制御値(RCV)が「0」でない(!=0)間は、リクエスト信号(REQ)を直ちに送出し続けることができる。
これにより、調停待ち時間が長い場合であっても、リクエスト信号(REQ)の送出遅れ分を、その後に取り戻すことができることになる。
That is, when the arbitration waiting time of the
Thereby, even if the arbitration waiting time is long, the transmission delay of the request signal (REQ) can be recovered later.
一方、アービタ31の調停待ち時間が非常に長い場合であっても、リクエスト信号(REQ)をいつまでも直ちに送出できるのではない。すなわち、グラント信号(GNT)を受け取る毎にカウンタ122がカウントダウンし、リクエスト制御値(RCV)が「0」に達すると、タイマ設定値(TIM)に応じた遅延時間をもってリクエスト信号(REQ)を送出する。
以上述べたように、カウンタ122のカウントアップおよびカウントダウンの動作により、アービタ31の調停待ち時間によらず、割り当てられたバンド幅に応じたタイマ設定値(TIM)をもって、リクエスト間隔を平均化させることができる。すなわち、一時的に調停待ち時間が長くなっても、ある一定の期間ではリクエスト間隔が一定であるとして見ることができる。
On the other hand, even when the arbitration waiting time of the
As described above, the request interval is averaged with the timer setting value (TIM) corresponding to the allocated bandwidth regardless of the arbitration waiting time of the
具体的には、ある時刻tにおいて、下記(I)式を満足する場合にはそのバスマスタがリクエストしていると判断でき、最終的にはツリー構造の一時的変化を判断できるようになるので、ツリー構造によって割り当てられるバンド幅以上のバンド幅をリクエストするバスマスタのデータ転送を保証することができるようになる。
(繰り下げ(t/TIM+1) − ΣGNT)!= 0 ・・・(I)
ここで、繰り下げ(t/TIM+1)は、TIM間隔でリクエストする式である。式の中で+1をしているのは、システム全体でのリクエストのもっとも集中するとき、すなわち各バスマスタのリクエスト周期の位相が合い一斉にリクエストする時刻をt=0としている。
また、リクエスト間隔を等間隔に制御することで、他のバスマスタへの影響を小さくすることができる。
Specifically, at a certain time t, if the following equation (I) is satisfied, it can be determined that the bus master is requesting, and finally a temporary change in the tree structure can be determined. It becomes possible to guarantee the data transfer of the bus master that requests a bandwidth larger than the bandwidth allocated by the tree structure.
(Drawdown (t / TIM + 1)-ΣGNT)! = 0 (I)
Here, the carry-down (t / TIM + 1) is an expression for requesting at TIM intervals. In the equation, +1 is set when t = 0 when the requests of the entire system are most concentrated, that is, when the request cycles of the bus masters are in phase with each other.
Further, by controlling the request interval at equal intervals, the influence on other bus masters can be reduced.
次に、図3を参照して述べたリクエスト出力制御部(REQ_CTRL)において、カウンタ群(カウンタ111およびカウンタ122)のリセットについて説明する。
リクエスト出力制御部(REQ_CTRL)の各カウンタは、以下の(1)および(2)の観点を考慮してリセット機能を有している。
(1)バスマスタが動作していない場合に、カウンタ122をカウントアップしてしまうと、その後に動作を開始する直後のリクエスト間隔を制御できなくなる。
(2)FIFOバッファが一杯になった場合に、カウンタ122がカウントアップしてしまうと、その後のリクエスト間隔を制御できなくなる可能性がある。
Next, reset of the counter group (counter 111 and counter 122) in the request output control unit (REQ_CTRL) described with reference to FIG. 3 will be described.
Each counter of the request output control unit (REQ_CTRL) has a reset function in consideration of the following aspects (1) and (2).
(1) If the
(2) If the
本実施形態においては、リセット条件を以下に説明するように設定する。
なお、図3においてリセット信号をtim_1setと称している。そして、カウンタ群をリセットする際には、クライアントからコマンド(CMD)が与えられた直後は直ちにリクエストができるようにするため、図3に示すように、リセット信号(tim_1set)に応じてカウンタ122を「1」にセットする。
In the present embodiment, the reset condition is set as described below.
In FIG. 3, the reset signal is referred to as tim_1set. Then, when resetting the counter group, the
第1のリセット条件として、先ず、バスマスタが「動作中(OPG)でない」場合に、カウンタ群のリセットを行う。
すなわち、FIFOバッファ内においてデータ転送コマンド(コマンド)に対する処理が完全に終了した時、具体的には、あるコマンドに対する処理が終了し、その次のコマンドがまだ与えられていない場合に、バスマスタが「動作中(OPG)でない」と判断する。
As a first reset condition, first, when the bus master is “not operating (OPG)”, the counter group is reset.
That is, when the processing for the data transfer command (command) is completely completed in the FIFO buffer, specifically, when the processing for a certain command is completed and the next command has not yet been given, the bus master It is determined that it is not in operation (OPG).
上述したように、リセットに際し、カウンタ122を「1」にセットするが、前のコマンドの処理の後、短期間だけ「動作中でない」状態になり、カウンタ122が「1」にセットされると、その直後に次のコマンドが来た場合にすぐリクエストが出ることになり、コマンド間隔が保証できなくなる。
したがって、コマンドの処理が完全に終了した時にリクエスト制御値(RCV)が「1」以上の場合には「1」に固定する。また、リクエスト制御値(RCV)が「0」である場合には、「1」になるタイミングまで待ち、「1」に固定することが望ましい。
なお、図3では、ゲート回路113、判定回路114およびAND回路115により上述した処理がなされる。
As described above, when resetting, the
Accordingly, when the command control value (RCV) is “1” or more when the command processing is completely completed, the command control value (RCV) is fixed to “1”. When the request control value (RCV) is “0”, it is desirable to wait until the timing when the request control value (RCV) becomes “1” and to fix it to “1”.
In FIG. 3, the above-described processing is performed by the
第2のリセット条件として、FIFOバッファに空き容量がない場合(FULL)に、カウンタ群のリセットを行う。
すなわち、FIFOバッファの制御としてFIFOバッファに1パケット分の空き容量がない場合にリクエストを止めなければならないが、その間にカウンタ122をカウントアップすると、その後のリクエスト間隔がクライアントのデータ転送レートのむらに依存してしまうことになる。
As a second reset condition, the counter group is reset when there is no free space in the FIFO buffer (FULL).
That is, as a control of the FIFO buffer, the request must be stopped when there is no free space for one packet in the FIFO buffer. When the
図4は、リクエスト間隔がクライアントのデータ転送レートに依存する場合について説明するための図であり、(a)はカウンタ122のカウント動作を、(b)はリクエスト信号(REQ)のタイミングを、それぞれ示す。図4は、たとえば、FIFOバッファが8パケット分ある場合に、クライアントからのコマンドが16パケット分である時の処理を示している。
4A and 4B are diagrams for explaining a case where the request interval depends on the data transfer rate of the client. FIG. 4A shows the count operation of the
時刻t1の時点で、FIFOバッファが一杯となり、その後、クライアントがFIFOバッファのデータを引き抜かないため、時刻t1からt2の間、バスマスタは、リクエスト信号(REQ)を送出しない。また、その間は、カウンタ122のカウント動作が行われているので、リクエスト制御値(RCV)が増加している。
そして、時刻t2の時点から、クライアントがFIFOバッファのデータの引き抜きを開始すると、リクエスト制御値(RCV)が大きな値となっているので、早い転送レートでリクエスト信号(REQ)を送出し、タイマ設定値(TIM)のカウント動作によってはリクエスト信号(REQ)の送出を抑制することができない。
時刻t3になり、ある程度のデータの引き抜きがなされると、リクエスト制御値(RCV)が適切なレベルとなり、リクエスト信号(REQ)の送出タイミングがタイマ設定値(TIM)に応じたタイミングに抑制される。すなわち、タイマが効き始める。
At time t1, the FIFO buffer is full, and then the client does not pull out the data in the FIFO buffer, so the bus master does not send a request signal (REQ) from time t1 to time t2. Further, during that period, the count operation of the
When the client starts extracting the data in the FIFO buffer from time t2, the request control value (RCV) is a large value, so the request signal (REQ) is sent at a fast transfer rate, and the timer setting is made. The transmission of the request signal (REQ) cannot be suppressed depending on the count operation of the value (TIM).
When a certain amount of data is extracted at time t3, the request control value (RCV) becomes an appropriate level, and the transmission timing of the request signal (REQ) is suppressed to the timing according to the timer setting value (TIM). . That is, the timer starts to work.
以上、図4を一例として述べたように、FIFOバッファの空き領域がなく、かつ、リクエスト制御値(RCV)がある程度大きな値となっている場合には、その後にFIFOバッファからデータが一気に引き抜かれると、タイマが効かず、クライアントのデータ引き抜きレートに応じたリクエスト間隔となってしまうのである。 As described above with reference to FIG. 4 as an example, when there is no free space in the FIFO buffer and the request control value (RCV) is a large value to some extent, data is subsequently extracted from the FIFO buffer at once. Then, the timer does not work and the request interval according to the data extraction rate of the client is reached.
この不都合を防止するためには、FIFOバッファの空き容量がない間は、リクエスト制御値(RCV)を「1」以上に蓄積しなければよい。
すでに述べたように、本来的にカウンタ122をカウントアップする理由は、調停の待ち時間分に起因するリクエスト信号(REQ)の送出の遅れを後で取り戻すためであって、クライアントがFIFOバッファからデータを引き抜かないためリクエスト間隔が長引いた場合に、カウントアップする必要はない。
また、カウントアップする必要がある場合であっても、リクエスト間隔にむらが出るということは、ツリー構造の変化を見積もることができなくなる可能性があり、システム全体のデータ処理能力に影響を与えるため、個別に、より大きなバンド幅に対応できるタイマを設定したり、FIFOバッファを増やすことで対応すべきである。
したがって、FIFOバッファの空き容量がない間にリクエスト制御値(RCV)が「1」以上の場合には「1」に固定する。また、リクエスト制御値(RCV)が「0」である場合には、「1」になるタイミングまで待ち、「1」に固定することが望ましい。
なお、図3では、ゲート回路113、判定回路114およびAND回路115により上述した処理がなされる。
In order to prevent this inconvenience, the request control value (RCV) should not be accumulated to “1” or more while there is no free space in the FIFO buffer.
As described above, the reason why the
In addition, even if it is necessary to count up, if the request interval is uneven, it may be impossible to estimate changes in the tree structure, which affects the data processing capacity of the entire system. Individually, a timer that can handle a larger bandwidth should be set, or the number of FIFO buffers should be increased.
Therefore, when the request control value (RCV) is “1” or more while there is no free space in the FIFO buffer, it is fixed to “1”. When the request control value (RCV) is “0”, it is desirable to wait until the timing when the request control value (RCV) becomes “1” and to fix it to “1”.
In FIG. 3, the above-described processing is performed by the
次に、バスマスタ2の動作について、添付図面を参照して説明する。
図5は、バスマスタ2の動作を示すタイミングチャートの一例であり、(a)はFIFOバッファ10のデータ量(FIFO)を、(b)はカウンタ111のカウント動作(CTR)を、(c)はリクエスト制御値(RCV)を、(d)はクライアントからのデータ転送コマンド(CMD)を、(e)はクライアントからのデータイネーブル(DEN)を、(f)はリクエスト信号(REQ)を、(g)はグラント信号(GNT)を、それぞれ示す。
Next, the operation of the
FIG. 5 is an example of a timing chart showing the operation of the
図5では、時刻t0で、クライアントからデータ転送コマンドが送出され、バスマスタ2は、そのコマンドを複数のパケットに分割し、パケット毎にリクエスト信号(REQ)を生成してアービタ31に対して出力する。
時刻t0から時刻t1にかけて送出されたリクエスト信号(REQ)が調停され、グラント信号(GNT)が与えられると、(a)に示すように、徐々にFIFOバッファにデータが蓄積される。
In FIG. 5, at time t0, a data transfer command is sent from the client, and the
When the request signal (REQ) sent from time t0 to time t1 is arbitrated and a grant signal (GNT) is given, data is gradually accumulated in the FIFO buffer as shown in (a).
ここで、上記前者リセットは、時刻t0までの間に機能し、RCVの値が「1」に固定される。これによりコマンド(CMD)が来た直後にREQを出し、時刻t0から時刻t1にかけて、タイマにコントロールされて、REQを出すことが分かる。 Here, the former reset functions until time t0, and the value of RCV is fixed to “1”. As a result, REQ is issued immediately after the command (CMD) is received, and it is understood that the REQ is issued under the control of the timer from time t0 to time t1.
時刻t1になると、FIFOバッファに1パケット分の空き容量がなくなり、FIFOバッファの制御の必要上リクエストを止める。時刻t1から時刻t3まで、FIFOバッファに1パケット分の空き容量がなく、REQは止まり続ける。 At time t1, the FIFO buffer runs out of free space for one packet, and the request is stopped due to the necessity of FIFO buffer control. From time t1 to time t3, there is no free space for one packet in the FIFO buffer, and REQ continues to stop.
ここで、上記後者リセットが機能し、リクエスト制御値(RCV)が「1」以上の値であれば、リクエスト出力制御部(REQ_CTRL)のカウンタ群はともにリセットされる。これにより、データの引き抜きが行われる時刻t2以降、仮にデータ転送レートにむらがあり、バンド幅以上の割合でデータの引き抜きが行われても、タイマにコントロールされてREQを出すことが保証される。
仮にカウンタ群がリセットされずにRCVの値が大きくなると、FIFOバッファに空きがあればREQが出せるようになり、クライアントがバンド幅以上の割合でデータの引き抜きを行うと、そのままそのレートでREQが出ることになり、タイマによる制御が利かなくなる。したがって、カウンタ群をリセットすることで、かかる不都合を回避している。
If the latter reset functions and the request control value (RCV) is a value equal to or greater than “1”, both the counter groups of the request output control unit (REQ_CTRL) are reset. As a result, after the time t2 when the data is extracted, even if the data transfer rate is uneven and the data is extracted at a rate equal to or greater than the bandwidth, it is guaranteed that the REQ is output under the control of the timer. .
If the RCV value increases without the counter group being reset, the REQ can be output if the FIFO buffer is empty. When the client extracts data at a rate greater than the bandwidth, the REQ remains at that rate. It will come out and control by the timer will not work. Therefore, such inconvenience is avoided by resetting the counter group.
なお、図では、データ転送レートが一定の場合を示しており、時刻t3以降、FIFOバッファの空き容量がなくなるとき(full)、リクエスト制御値(RCV)は「0」となり、FIFOバッファに空き容量が発生すると、リクエスト制御値(RCV)は「1」以上となる。この結果、図中に円で示したように、FIFOバッファのデータ量が一杯となるタイミングと、リクエスト制御値(RCV)が「0」となるタイミングが一致する。 The figure shows a case where the data transfer rate is constant. When the FIFO buffer has no free space after time t3 (full), the request control value (RCV) becomes “0” and the FIFO buffer has free space. Occurs, the request control value (RCV) becomes “1” or more. As a result, as indicated by a circle in the figure, the timing when the data amount of the FIFO buffer becomes full coincides with the timing when the request control value (RCV) becomes “0”.
上述のように、データ転送レートが一定のクライアントの場合、一旦FIFOバッファが一杯(full)になると、クライアントのデータ転送レートに応じた動作となるので、本発明は、たとえば、リード用クライアントが初めてバスマスタに対してデータ転送コマンドを送出し、FIFOバッファが空の状態からデータ蓄積を開始する時からFIFOバッファが一杯になるまでの間(図5で時刻t0からt1まで)において、特に、リクエスト間隔をタイマ設定値(TIM)に応じた値に平均化させる効果が高いということが言える。 As described above, in the case of a client having a constant data transfer rate, once the FIFO buffer is full, the operation is performed in accordance with the data transfer rate of the client. In particular, a request interval is sent between the time when the data transfer command is sent to the bus master and the FIFO buffer is full from the time when the FIFO buffer is empty until the FIFO buffer is full (from time t0 to t1 in FIG. 5). It can be said that the effect of averaging the value to the value according to the timer set value (TIM) is high.
一方、クライアントによっては、比較的短い期間でデータ転送レートが一定ではない場合がある。本発明は、かかる場合にリクエスト間隔を平均化させる効果が高い。
たとえば、メモリ上のデータに基づいて画像表示を行うクライアントは、水平方向、垂直方向にブランク期間があるため、データ転送レートが実際には一定ではない。すなわち、そのブランク期間は、FIFOバッファからデータを引き抜かないので、そのブランク期間を含めると、データ転送レートは一定ではなく、メモリバスの上ではバンド幅にむらがあるように見えてしまう。
このような場合でも、バスマスタ2は、タイマによってリクエスト間隔を平均化するので、メモリバス上のバンド幅にむらがないものと見ることができる。
On the other hand, depending on the client, the data transfer rate may not be constant in a relatively short period. The present invention is highly effective in averaging request intervals in such a case.
For example, a client that displays an image based on data in a memory has a blank period in the horizontal direction and the vertical direction, so the data transfer rate is not actually constant. That is, since data is not extracted from the FIFO buffer during the blank period, when the blank period is included, the data transfer rate is not constant and the bandwidth appears to be uneven on the memory bus.
Even in such a case, since the
一部の複雑なクライアントのデータ転送レートのむらがそのままリクエストに影響してしまうと、上述したようにツリー構造の変化を見積もることが困難になるうえ、必要なFIFOバッファの容量が増大する。
したがって、データ転送レートのむらのあるクライアントのバスマスタは、個別にFIFOバッファの容量を増加させて対応することで、必要なFIFOバッファ容量を効率的に見積もることができる。図6は、この考え方を模式的に表した図である。
図6は、リードクライアントにおいて、時間に応じてFIFOバッファに蓄積されるデータとの関係を示し、(a)は、リクエストのタイミングにむらがある複雑なクライアントの場合、(b)は、タイマによりリクエスト間隔を抑制されたクライアントの場合である。また、(c)は、合計での必要なFIFOバッファ容量を示す。
If the uneven data transfer rate of some complicated clients directly affects the request, it becomes difficult to estimate the change in the tree structure as described above, and the necessary FIFO buffer capacity increases.
Therefore, the client bus master with uneven data transfer rate can respond by increasing the capacity of the FIFO buffer individually, thereby efficiently estimating the required FIFO buffer capacity. FIG. 6 is a diagram schematically showing this concept.
FIG. 6 shows the relationship between the read client and the data accumulated in the FIFO buffer according to time. (A) is a complicated client with uneven timing of requests, and (b) is determined by a timer. This is a case of a client whose request interval is suppressed. Further, (c) shows the necessary FIFO buffer capacity in total.
図6において、システム全体では、(b)に示すように、タイマによりリクエスト間隔が抑制され、タイマ設定値(TIM)に応じたTIM_rateの割合で、FIFOバッファにデータが蓄積されるが、一部の複雑なクライアントのデータレートは、TIM_rateに応じたデータの蓄積がなされない。
かかる場合には、(c)に示すように、2つのバッファ容量diff1およびdiff2の合計を必要なFIFOバッファ容量として見積もることができる。
In FIG. 6, in the entire system, as shown in (b), the request interval is suppressed by the timer, and data is accumulated in the FIFO buffer at a ratio of TIM_rate according to the timer setting value (TIM). The data rate of the complicated client is not accumulated according to TIM_rate.
In such a case, as shown in (c), the total of the two buffer capacities diff1 and diff2 can be estimated as the necessary FIFO buffer capacities.
なお、今までリードのクライアントを中心に述べてきたが、ライトのクライアントについても、本発明を適用することできる。
ライトのクライアントの場合には、始めの1パケット分のデータがFIFOバッファに書き込まれないと、リクエストをしない点だけがリードのクライアントの場合と異なる。このため、リードのクライアントと異なり、データ転送レートが一定であれば、タイマを持つ必要が無い。
しかし、データ転送レートにむらがある場合には、本発明が有効に機能する。また、理論上データ転送レートにむらがない場合でも、実際上何かの不具合で暴走し始めた場合の保険として本発明は有効に機能する。
Although the description has been focused on the lead client so far, the present invention can also be applied to the write client.
The write client is different from the read client only in that a request is not made unless the first packet of data is written into the FIFO buffer. Therefore, unlike the read client, it is not necessary to have a timer if the data transfer rate is constant.
However, the present invention functions effectively when the data transfer rate is uneven. In addition, even if the data transfer rate is not uneven in theory, the present invention effectively functions as insurance in the case of starting to run away due to some trouble in practice.
以上述べたように、本実施形態に係るデータ処理装置によれば、調停の待ち時間の間もタイマ設定値(TIM)をカウントし、調停待ち時間がタイマ設定値(TIM)より長くなった場合には、その分リクエスト制御値(RCV)をカウントアップし、グラント信号(GNT)を受け取ると、カウントダウンし、リクエスト信号(REQ)の値が「1」以上の場合には、タイマ設定値(TIM)によらず直ちにリクエスト信号(REQ)を送出する。これにより、調停待ち時間に依存せずに、バンド幅から割り当てられたタイマ設定値(TIM)通りにアービタ31に対してリクエスト信号(REQ)を送出することができ、精度の高いバス保証を可能とする。
また、各バスマスタが持つべきFIFOバッファの容量をマージンを考慮せず見積もることができるので、回路規模の小型化および低コスト化を図ることができる。
As described above, according to the data processing device according to the present embodiment, the timer set value (TIM) is counted during the arbitration waiting time, and the arbitration waiting time becomes longer than the timer setting value (TIM). In response, the request control value (RCV) is counted up, and when the grant signal (GNT) is received, the request control value (RCV) is counted down. When the value of the request signal (REQ) is “1” or more, the timer setting value (TIM The request signal (REQ) is immediately sent regardless of the above. As a result, the request signal (REQ) can be sent to the
Further, since the capacity of the FIFO buffer that each bus master should have can be estimated without considering the margin, the circuit scale can be reduced and the cost can be reduced.
本実施形態に係るデータ処理装置によれば、タイマ設定値(TIM)に基づいて、リクエスト間隔をバンド幅相当の間隔に正確に抑制することができるので、アービタとしてツリー構造のラウンドロビンアービタを適用した場合に、ツリー構造上割り当てられる以上のバンド幅を要求するバスマスタを保証することができると同時に、FIFOバッファ容量の正確な見積もりが可能となる。 According to the data processing apparatus according to the present embodiment, since the request interval can be accurately suppressed to an interval corresponding to the bandwidth based on the timer setting value (TIM), the round robin arbiter having a tree structure is applied as the arbiter. In this case, it is possible to guarantee a bus master that requires more bandwidth than can be allocated in the tree structure, and at the same time, it is possible to accurately estimate the FIFO buffer capacity.
1a,1b,1c,1d…クライアント、2,2a,2b,2c,2d…バスマスタ、3…メモリコントローラ、31…アービタ、4…メモリ、10…FIFOバッファ、11…タイマカウンタ、12…リクエスト制御値生成部、13…コマンドバッファ、14…パケット分割部、15…リクエスト生成部、16…AND回路。
DESCRIPTION OF
Claims (6)
データ転送要求を調停し、前記複数のバスマスタの中からデータ転送を許可したバスマスタに対して、メモリバスへのアクセスを許可するアービタと、を有し、
前記複数のバスマスタのうち少なくとも一のバスマスタは、タイマによりデータ転送要求を行うタイミングが管理され、
第1のデータ転送要求に対する前記アービタの調停時間が前記タイマの設定時間より長い場合には、前記第1のデータ転送要求に続く第2のデータ転送要求を、前記タイマに関わらず直ちに行う
データ処理装置。 Multiple bus masters, each containing a buffer,
An arbitrator that arbitrates a data transfer request and permits access to the memory bus for the bus master that has permitted data transfer from among the plurality of bus masters;
At least one bus master among the plurality of bus masters is managed by a timer to perform a data transfer request,
When the arbitration time of the arbiter with respect to the first data transfer request is longer than the set time of the timer, the second data transfer request immediately following the first data transfer request is performed regardless of the timer. apparatus.
第1のデータ転送要求に対する前記アービタの調停が前記タイマの設定時間を経過する回数をカウントし、当該カウント値に応じて、前記第2のデータ転送要求以後の複数のデータ転送要求を、前記タイマに関わらず直ちに行う
請求項1記載のデータ処理装置。 The one bus master is
The arbitration of the arbiter with respect to the first data transfer request counts the number of times that the set time of the timer has elapsed, and a plurality of data transfer requests after the second data transfer request are determined according to the count value. The data processing apparatus according to claim 1, wherein the data processing apparatus is performed immediately regardless of whether the data processing apparatus is used.
前記アービタからデータ転送要求に対する許可が与えられる毎に、前記カウント値を減ずる
請求項2記載のデータ処理装置。 The one bus master is
The data processing apparatus according to claim 2, wherein the count value is decreased every time permission for the data transfer request is given from the arbiter.
バッファが前記所定量のデータを格納可能な数を、前記カウント値の上限とする
請求項2記載のデータ処理装置。 The one bus master divides a data transfer request into a plurality of data transfer requests corresponding to a predetermined amount of data,
The data processing apparatus according to claim 2, wherein the upper limit of the count value is a number that the buffer can store the predetermined amount of data.
すべてのデータ転送要求に対して前記アービタより許可が与えられると、前記カウント値をリセットし、または、前記カウント値が「1」以上である場合に「1」に固定する
請求項4記載のデータ処理装置。 The one bus master is
5. The data according to claim 4, wherein when the arbiter gives permission to all data transfer requests, the count value is reset or fixed to “1” when the count value is “1” or more. Processing equipment.
バッファがオーバーフローまたはアンダーフローするためにデータ転送要求を行うことができない間は、
前記カウント値が「1」以上である場合に「1」に固定する
請求項5記載のデータ処理装置。
The one bus master is
While the data transfer request cannot be made because the buffer overflows or underflows,
The data processing apparatus according to claim 5, wherein the count value is fixed to “1” when the count value is “1” or more.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004191411A JP4635485B2 (en) | 2004-06-29 | 2004-06-29 | Data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004191411A JP4635485B2 (en) | 2004-06-29 | 2004-06-29 | Data processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006012032A true JP2006012032A (en) | 2006-01-12 |
JP4635485B2 JP4635485B2 (en) | 2011-02-23 |
Family
ID=35779202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004191411A Expired - Fee Related JP4635485B2 (en) | 2004-06-29 | 2004-06-29 | Data processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4635485B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011113119A (en) * | 2009-11-24 | 2011-06-09 | Internatl Business Mach Corp <Ibm> | Device, method, and program for memory sharing between data flow and processor |
JP2020530621A (en) * | 2017-08-09 | 2020-10-22 | ザイリンクス インコーポレイテッドXilinx Incorporated | Adaptive quality of service control circuit |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62139075A (en) * | 1985-12-13 | 1987-06-22 | Fujitsu Ltd | Access control system for channel processor |
JP2000029777A (en) * | 1998-04-01 | 2000-01-28 | Matsushita Electric Ind Co Ltd | Data transfer device |
-
2004
- 2004-06-29 JP JP2004191411A patent/JP4635485B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62139075A (en) * | 1985-12-13 | 1987-06-22 | Fujitsu Ltd | Access control system for channel processor |
JP2000029777A (en) * | 1998-04-01 | 2000-01-28 | Matsushita Electric Ind Co Ltd | Data transfer device |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011113119A (en) * | 2009-11-24 | 2011-06-09 | Internatl Business Mach Corp <Ibm> | Device, method, and program for memory sharing between data flow and processor |
US8412891B2 (en) | 2009-11-24 | 2013-04-02 | International Business Machines Corporation | Arbitrated access to memory shared by a processor and a data flow |
JP2020530621A (en) * | 2017-08-09 | 2020-10-22 | ザイリンクス インコーポレイテッドXilinx Incorporated | Adaptive quality of service control circuit |
JP7167130B2 (en) | 2017-08-09 | 2022-11-08 | ザイリンクス インコーポレイテッド | Adaptive quality of service control circuit |
Also Published As
Publication number | Publication date |
---|---|
JP4635485B2 (en) | 2011-02-23 |
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 (en) | Data transfer apparatus and data transfer method | |
JP4480427B2 (en) | Resource management device | |
JP4436367B2 (en) | Arbitration apparatus, arbitration method, and moving picture processing apparatus including the arbitration apparatus that guarantee local concentrated access with a low bandwidth | |
JP4457168B2 (en) | Resource request arbitration device, resource request arbitration method, and computer program | |
US20050240707A1 (en) | Bus arbitration apparatus and bus arbitration method | |
US6754786B2 (en) | Memory control circuit and method for arbitrating memory bus | |
JP7142741B2 (en) | Data transfer device and data transfer method | |
JP2006195714A (en) | Resource management device | |
US5872936A (en) | Apparatus for and method of arbitrating bus conflicts | |
US6415367B1 (en) | Apparatus for reducing asynchronous service latency in a time slot-based memory arbitration scheme | |
JP4635485B2 (en) | Data processing device | |
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 | |
WO2011016168A1 (en) | Memory access device and video processing system | |
EP1513069A2 (en) | Resource management apparatus | |
JP4953794B2 (en) | Bus arbitration method for bus system and bus system | |
JP4850504B2 (en) | Signal processing apparatus, imaging apparatus, and data transfer method | |
JP2001101128A (en) | Data processor | |
US7120774B2 (en) | Efficient management of memory access requests from a video data stream | |
US8195846B2 (en) | Direct memory access controller for improving data transmission efficiency in MMoIP and method therefor | |
US7747806B2 (en) | Resource use management device, resource use management system, and control method for a resource use management device | |
JP4898527B2 (en) | RESOURCE USE MANAGEMENT DEVICE, RESOURCE USE MANAGEMENT SYSTEM, AND RESOURCE USE MANAGEMENT DEVICE CONTROL METHOD | |
US7552253B2 (en) | Systems and methods for determining size of a device buffer | |
JP2007102509A (en) | Arbitration device |
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 |