JP2006012032A - Data processor - Google Patents

Data processor Download PDF

Info

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
Application number
JP2004191411A
Other languages
Japanese (ja)
Other versions
JP4635485B2 (en
Inventor
Atsushi Hayashi
篤史 林
Katsuhiko Yamanaka
克彦 山中
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2004191411A priority Critical patent/JP4635485B2/en
Publication of JP2006012032A publication Critical patent/JP2006012032A/en
Application granted granted Critical
Publication of JP4635485B2 publication Critical patent/JP4635485B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data processor suppressing an interval of a data transfer request of a bus master to that equivalent to bandwidth. <P>SOLUTION: The bus master 2 counts a timer setting value (TIM) by including waiting time of arbitration, counts up a request control value (RCV) by that arbitration waiting time becomes longer than the timer setting value (TIM) and counts down the value when it receives a grant signal (GNT). When the request control value (RCV) is "1" or above, a request generation part 15 immediately transmits a request signal (REQ) irrespective of the timer setting value (TIM). <P>COPYRIGHT: (C)2006,JPO&NCIPI

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 Patent Document 1, a technique related to a tree structure type round robin arbiter is used to prevent a decrease in processing speed even when the number of bus masters increases when arbitrating data transfer requests from a plurality of bus masters. Is disclosed.

通常、このようなツリー構造のアービタでは、そのツリーから導き出される割合にしたがって各バスマスタのバンド幅が保証される。
図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 bandwidth 10 considering the efficiency, the bandwidths of “2.5”, “2.5”, and “5” are guaranteed for each of the bus masters A to C, respectively. The The arrow in the figure indicates the direction in which the token is passed.

しかし、昨今、システムモードの多様化によって、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では、データ転送のリクエスト間隔のむらを抑制するために、ツリー構造から割り当てられたバンド幅以下で動作するバスマスタに対してタイマを設け、そのタイマによりリクエストをマスクするアービタに関する技術が開示されている。
特開2002−304367号公報 特開2003−256358号公報
As described above with reference to FIG. 8, in a system in which a certain bus master operates more than the bandwidth allocated from the tree structure and prevents data loss by the FIFO buffer, the time for which the bandwidth is guaranteed Whether or not it is time that can be compensated by the FIFO buffer is an important point, and it depends on whether or not the request interval for data transfer is uneven.
Therefore, in Patent Document 2 below, in order to suppress unevenness in data transfer request intervals, a technique is provided for an arbiter in which a timer is provided for a bus master that operates below the bandwidth allocated from the tree structure, and requests are masked by the timer. Is disclosed.
JP 2002-304367 A JP 2003-256358 A

しかし、上記特許文献2に開示されているように、タイマにより一度グラントをうけてから次のリクエストをタイマ値のサイクル数だけマスクする方法によれば、バスマスタのリクエストは、タイマによりマスクされた後、さらに調停による待ち時間(調停により順番が回ってくる時間)の後に満たされる(グラントが与えられる)ことになる。
このことは、タイマによりリクエストの制限を与えようとするバスマスタに対して、求められるバンド幅に応じて単純に導き出されるタイマ値を設定すると、調停待ち時間の分だけバンド幅が削減されることを意味する。
However, as disclosed in Patent Document 2, according to the method of masking the next request by the number of cycles of the timer value after receiving a grant once by the timer, the bus master request is masked by the timer. Furthermore, it will be satisfied (grant will be given) after the waiting time due to mediation (the time when the turn will turn around by mediation).
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 clients 1 a and 1 b are read clients, and are clients that read data from the memory 4. The clients 1 c and 1 d are write clients and write data to the memory 4.
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 arbiter 31 in response to this command.

アービタ31は、図1に図示した複数のバスマスタからのリクエストを調停した結果、1つのバスマスタに対して、メモリバスに対するアクセスを許可するためのグラント(GNT)を与える。
アービタ31の調停方式としては、たとえば、上述したツリー構造のラウンドロビンアービタを適用することができる。すなわち、複数のバスマスタ間にトークンを走らせ、あるバスマスタにリクエストがない場合には、次のバスマスタにトークンを渡していき、リクエストがあるバスマスタにトークンが回ってきた時に、そのバスマスタに対してグラント信号を与える。そして、この調停をツリー構造に構成された複数のサブアービタによって順次行う。
As a result of arbitrating requests from the plurality of bus masters shown in FIG. 1, the arbiter 31 gives a grant (GNT) for permitting access to the memory bus to one bus master.
As the arbitration method of the arbiter 31, for example, the above-described tree structure round robin arbiter can be applied. That is, when a token is run between multiple bus masters and there is no request to a certain bus master, the token is handed over to the next bus master. give. This arbitration is sequentially performed by a plurality of sub-arbiters configured in a tree structure.

図2は、リード用クライアントに対応するバスマスタ2の構成を示す回路ブロック図の一例である。
図2において、FIFOバッファ10は、データ転送のむらや調停待ち時間のむらを吸収し、各バスマスタの処理を破綻させないためのデータバッファである。アービタ31は、このFIFOバッファがオーバーフロ/アンダーフロを起こさないように各バスマスタからのリクエストを調停することが必要である。
FIG. 2 is an example of a circuit block diagram showing the configuration of the bus master 2 corresponding to the read client.
In FIG. 2, a FIFO buffer 10 is a data buffer for absorbing irregularities in data transfer and arbitration waiting time and preventing the processing of each bus master from failing. The arbiter 31 needs to arbitrate the request from each bus master so that the FIFO buffer does not cause an overflow / underflow.

クライアントからのデータ転送コマンド(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 packet dividing unit 14.
The packet dividing unit 14 divides the data transfer command (CMD) stored in the command buffer 13 into predetermined data transfer units (packets) defined by the memory controller 3 and sequentially generates request signals in packet units. The request generation unit 15 is instructed to do so. At this time, if the FIFO buffer has no free capacity for one packet, the request must be stopped as control of the FIFO buffer (that is, the request is made only when it is not FULL).
Information relating to memory access such as the address of the memory 4 is sent from the packet dividing unit 14 to the memory controller 3.
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 request generation unit 15 is not unconditionally output to the arbiter 31 in the memory controller 3, but as shown in FIG. Is controlled via the AND circuit 16 by the request output control unit (REQ_CTRL) shown in FIG.

リクエスト出力制御部(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 timer counter 11 sequentially counts the timer set value (TIM), and notifies the request control value generation unit 12 every time the count ends.
That is, the counter 111 is loaded with the timer setting value (TIM) via the determination circuit 112 and the gate circuit 116 every time counting of the timer setting value (TIM) is completed, and starts counting. Each time the timer setting value (TIM) is counted, a control signal is sent from the determination circuit 112 to the request control value generation unit 12.
Note that the timer counter 111 continues counting during the arbitration waiting time after the corresponding bus master 2 outputs the request signal (REQ).

リクエスト制御値生成部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 value generation unit 12 includes a counter 122, and the count value of the counter 122 becomes a request control value (RCV).
The counter 122 counts up in accordance with a control signal given to the gate circuit 121 every time the timer 111 finishes counting the timer set value (TIM).
The counter 122 counts down when a grant signal (GNT) is given from the arbiter 31.
At that time, when the count of the timer set value (TIM) is completed and the grant signal (GNT) is given from the arbiter 31, the count-up and count-down are canceled out. Neither counting up nor counting down is performed (+/− 0).

また、リクエスト制御値生成部12では、カウンタ122に対してカウントできる最大値を設定している。その最大値は、FIFOバッファの容量に対応していることが望ましい。すなわち、FIFOバッファ10が、クライアントが一回のデータ転送で要するデータ量の何倍に相当するかによって最大値を決定する。
図3では、最大値判定回路(MAX)124がリクエスト制御値(RCV)をモニタし、リクエスト制御値(RCV)が所定の最大値に達した場合には、出力レベルを反転させ、これにより、ゲート回路121は、カウンタ122がカウントアップしないように制御する。
Further, the request control value generation unit 12 sets a maximum value that can be counted for the counter 122. The maximum value preferably corresponds to the capacity of the FIFO buffer. That is, the FIFO buffer 10 determines the maximum value depending on how many times the amount of data required by the client for one data transfer is equivalent.
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 counter 122 not to count up.

以上、リクエスト出力制御部(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 bus master 2, when the request control value (RCV) that is the count value of the counter 122 is not “0” (! = 0), the request signal (REQ) generated by the request generation unit 15. Is immediately sent to the arbiter 31.
Conversely, when the request control value (RCV) is “0” (= 0), the timer setting value (TIM) is counted, the counter 122 is incremented, and the request control value (RCV) is “ When it is no longer 0, a request signal (REQ) is sent to the arbiter 31.

すなわち、リクエスト出力制御部(REQ_CTRL)は、バンド幅に応じて割り当てられたタイマ設定値(TIM)よりアービタ31の調停待ち時間が長い場合には、次のリクエスト信号(REQ)を抑制せずに直ちに送出する。そして、カウンタ122がカウントアップされ、リクエスト制御値(RCV)が「0」でない(!=0)間は、リクエスト信号(REQ)を直ちに送出し続けることができる。
これにより、調停待ち時間が長い場合であっても、リクエスト信号(REQ)の送出遅れ分を、その後に取り戻すことができることになる。
That is, when the arbitration waiting time of the arbiter 31 is longer than the timer setting value (TIM) assigned according to the bandwidth, the request output control unit (REQ_CTRL) does not suppress the next request signal (REQ). Send immediately. Then, while the counter 122 is incremented and the request control value (RCV) is not “0” (! = 0), the request signal (REQ) can be continuously transmitted immediately.
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 arbiter 31 is very long, the request signal (REQ) cannot be sent out indefinitely. That is, every time the grant signal (GNT) is received, the counter 122 counts down. When the request control value (RCV) reaches “0”, the request signal (REQ) is transmitted with a delay time corresponding to the timer setting value (TIM). To do.
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 arbiter 31 by the count-up and count-down operations of the counter 122. Can do. That is, even if the arbitration waiting time is temporarily increased, it can be seen that the request interval is constant for a certain period.

具体的には、ある時刻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 counter 122 is incremented when the bus master is not operating, the request interval immediately after starting the operation cannot be controlled.
(2) If the counter 122 counts up when the FIFO buffer is full, there is a possibility that subsequent request intervals cannot be controlled.

本実施形態においては、リセット条件を以下に説明するように設定する。
なお、図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 counter 122 is set according to the reset signal (tim_1set) as shown in FIG. 3 so that a request can be made immediately after the command (CMD) is given from the client. Set to “1”.

第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 counter 122 is set to “1”, but after processing the previous command, the state becomes “not in operation” for a short period of time, and the counter 122 is set to “1”. If the next command comes immediately after that, the request will be issued immediately, and the command interval cannot be guaranteed.
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 gate circuit 113, the determination circuit 114, and the AND circuit 115.

第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 counter 122 is counted up during that time, the subsequent request interval depends on the unevenness of the data transfer rate of the client. Will end up.

図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 counter 122, and FIG. 4B shows the timing of the request signal (REQ). Show. FIG. 4 shows the processing when, for example, the FIFO buffer has 8 packets and the command from the client is 16 packets.

時刻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 counter 122 is performed, so that the request control value (RCV) increases.
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 counter 122 is counted up is to recover the delay in sending the request signal (REQ) due to the arbitration waiting time later. If the request interval is prolonged, there is no need to count up.
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 gate circuit 113, the determination circuit 114, and the AND circuit 115.

次に、バスマスタ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 bus master 2 will be described with reference to the attached drawings.
FIG. 5 is an example of a timing chart showing the operation of the bus master 2. FIG. 5A shows the data amount (FIFO) of the FIFO buffer 10, FIG. 5B shows the count operation (CTR) of the counter 111, and FIG. The request control value (RCV), (d) the data transfer command (CMD) from the client, (e) the data enable (DEN) from the client, (f) the request signal (REQ), (g ) Indicates a grant signal (GNT).

図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 bus master 2 divides the command into a plurality of packets, generates a request signal (REQ) for each packet, and outputs it to the arbiter 31. .
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 bus master 2 averages the request intervals by the timer, it can be seen that the bandwidth on the memory bus is uniform.

一部の複雑なクライアントのデータ転送レートのむらがそのままリクエストに影響してしまうと、上述したようにツリー構造の変化を見積もることが困難になるうえ、必要な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 arbiter 31 according to the timer setting value (TIM) allocated from the bandwidth without depending on the arbitration waiting time, and a highly accurate bus guarantee is possible. And
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.

本発明の一実施形態であるデータ処理装置の一構成例である。It is an example of 1 structure of the data processor which is one Embodiment of this invention. 実施形態に係るバスマスタの構成を示す回路ブロック図の一例である。It is an example of the circuit block diagram which shows the structure of the bus master which concerns on embodiment. リクエスト出力制御部(REQ_CTRL)を構成するタイマカウンタ11およびリクエスト制御値生成部12の回路ブロック図の一例である。It is an example of the circuit block diagram of the timer counter 11 and the request control value generation part 12 which comprise a request output control part (REQ_CTRL). リクエスト間隔がクライアントのデータ転送レートに依存する場合について説明するための図である。It is a figure for demonstrating the case where a request interval is dependent on the data transfer rate of a client. 実施形態に係るバスマスタの動作を示すタイミングチャートの一例である。It is an example of the timing chart which shows operation | movement of the bus master which concerns on embodiment. リードクライアントにおいて、時間に応じてFIFOバッファに蓄積されるデータとの関係である。This is the relationship with the data stored in the FIFO buffer according to time in the read client. ラウンドロビンアービタのツリー構造の一例である。It is an example of a tree structure of a round robin arbiter. リクエストを同じ間隔で行う場合と、リクエストを同じ間隔で行わない場合とで、FIFOバッファに与える影響を説明するための図である。It is a figure for demonstrating the influence which acts on a FIFO buffer by the case where a request is performed at the same space | interval, and the case where a request is not performed at the same space | interval.

符号の説明Explanation of symbols

1a,1b,1c,1d…クライアント、2,2a,2b,2c,2d…バスマスタ、3…メモリコントローラ、31…アービタ、4…メモリ、10…FIFOバッファ、11…タイマカウンタ、12…リクエスト制御値生成部、13…コマンドバッファ、14…パケット分割部、15…リクエスト生成部、16…AND回路。   DESCRIPTION OF SYMBOLS 1a, 1b, 1c, 1d ... Client, 2, 2a, 2b, 2c, 2d ... Bus master, 3 ... Memory controller, 31 ... Arbiter, 4 ... Memory, 10 ... FIFO buffer, 11 ... Timer counter, 12 ... Request control value Generation unit, 13 ... command buffer, 14 ... packet division unit, 15 ... request generation unit, 16 ... AND circuit.

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.
JP2004191411A 2004-06-29 2004-06-29 Data processing device Expired - Fee Related JP4635485B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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