JP2010039632A - Bus arbitration system - Google Patents

Bus arbitration system Download PDF

Info

Publication number
JP2010039632A
JP2010039632A JP2008199874A JP2008199874A JP2010039632A JP 2010039632 A JP2010039632 A JP 2010039632A JP 2008199874 A JP2008199874 A JP 2008199874A JP 2008199874 A JP2008199874 A JP 2008199874A JP 2010039632 A JP2010039632 A JP 2010039632A
Authority
JP
Japan
Prior art keywords
bus
arbitration
queue
determination
bus arbitration
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.)
Pending
Application number
JP2008199874A
Other languages
Japanese (ja)
Inventor
裕介 ▲高▼山
Yusuke Takayama
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2008199874A priority Critical patent/JP2010039632A/en
Publication of JP2010039632A publication Critical patent/JP2010039632A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To make it possible to perform bus arbitration depending on desired priority order even if a bus master of low priority issues a bus transfer request prior to a bus master of high priority. <P>SOLUTION: A bus arbitration system includes a plurality of bus masters, a plurality of memory controllers, and a bus arbiter for arbitrating access conflict when accessing the memory controller via a system bus, notifies the bus arbiter of a queue state storing bus transfer requests of the plurality of bus masters, compares the notified queue state with a preset condition for determination, and then decides timing for arbitrating the access conflict based on the determination result. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、少なくとも1つ以上のバスマスタとメモリコントローラとがシステムバスで接続され、バスマスタのバス転送を調停するバスアービタを備えるバス調停システムに関する。   The present invention relates to a bus arbitration system including a bus arbiter in which at least one or more bus masters and a memory controller are connected by a system bus and arbitrate bus transfer of the bus master.

従来のメモリコントローラへのアクセス競合調停手段としては、バスアービタがシステムバス上の転送のみを監視し、各バスマスタのバス転送が終了する都度、その時点におけるバス転送要求を発行しているバスマスタ間で調停を行う。そして、その時点での優先順位の高いバスマスタにメモリコントローラへのアクセス権を与える方法が一般的に知られている。   As a conventional means of arbitrating access to the memory controller, the bus arbiter monitors only the transfer on the system bus. Each time the bus transfer of each bus master ends, arbitration between the bus masters issuing the bus transfer request at that time I do. A method of giving an access right to the memory controller to a bus master having a high priority at that time is generally known.

しかしながらこの従来の調停方法では、各バスマスタが転送要求を発行するタイミングはそれぞれ異なるため、優先度を高く設定したバスマスタの転送要求が必ずしも優先度の低いバスマスタの転送要求よりも先にアクセス権を得るとは限らなかった。   However, in this conventional arbitration method, the timing at which each bus master issues a transfer request is different, so that a bus master transfer request with a higher priority necessarily obtains an access right before a bus master transfer request with a lower priority. Not always.

図8は、複数のバスマスタが各々のタイミングでバス転送要求を発行する際に従来の調停方法でバス調停を行う場合の一例を示す図である。
図8に示すように、優先度の低いバスマスタから順にバス転送要求が発行され、優先度の高いバスマスタのバス転送要求が低頻度でしか発行されないような組み込みシステムがある。この場合、バス転送が終了して次のアービトレーションを行う時点で、優先度の高い他のバスマスタがまだ転送要求を発行していない。このため、優先度の低いバスマスタが先にアクセス権を割り当てられてバス転送を行い、メモリコントローラのキューに格納されるという状況が発生する。したがって、予め各バスマスタの優先度を設定しても、各バスマスタのバス転送要求タイミングによってその優先順位とは異なる順序でメモリコントローラのキューにバス転送要求が格納されていく。これにより、所望の優先順位に応じたバス調停を行うことができない。
FIG. 8 is a diagram illustrating an example in which bus arbitration is performed by a conventional arbitration method when a plurality of bus masters issue a bus transfer request at each timing.
As shown in FIG. 8, there is an embedded system in which bus transfer requests are issued in order from a bus master with a low priority, and bus transfer requests of a bus master with a high priority are issued only infrequently. In this case, at the time when the bus transfer is completed and the next arbitration is performed, another bus master having a higher priority has not yet issued a transfer request. For this reason, a situation occurs in which a bus master having a low priority is assigned an access right first, performs bus transfer, and is stored in the queue of the memory controller. Therefore, even if the priority of each bus master is set in advance, the bus transfer requests are stored in the queue of the memory controller in an order different from the priority depending on the bus transfer request timing of each bus master. Thereby, bus arbitration according to a desired priority order cannot be performed.

そこで、この問題を解決するために、一旦メモリコントローラのキューに格納された複数のバス転送要求をキューの内部で順番を入れ替えることによって優先順位の高いバス転送要求を先に行わせるリオーダリングの技術がある。また、各バスマスタ専用のキューをメモリコントローラ内部に持たせ、優先度の高いバスマスタのキューから先にメモリアクセス処理を行わせるといった技術も知られている。   Therefore, in order to solve this problem, a reordering technique in which a plurality of bus transfer requests once stored in the queue of the memory controller are changed in order within the queue, so that a bus transfer request with a higher priority is made first. There is. There is also known a technique in which a queue dedicated to each bus master is provided in the memory controller, and the memory access processing is performed first from the queue of the bus master having a high priority.

しかしながら、キューの内部でリオーダリングを行う方法では、バス調停によってキューに格納されたバス転送要求をもう一度所望の順序に並べ替えるという比較的複雑な制御回路を必要とする。また、専用キューを持つ方法では、優先させたいバスマスタの数だけキューを用意する必要があり回路規模を大きくしてしまう。さらには、前記両方法とも、根本的な課題である所望の優先順位に応じたバス調停を行えないという問題の解決策にはなっていない。   However, the method of performing reordering inside the queue requires a relatively complicated control circuit that rearranges the bus transfer requests stored in the queue by the bus arbitration in a desired order once again. Further, in the method having the dedicated queue, it is necessary to prepare queues as many as the number of bus masters to be given priority, which increases the circuit scale. Furthermore, neither of these methods is a solution to the problem that the bus arbitration according to the desired priority, which is a fundamental problem, cannot be performed.

本発明は前述の問題点に鑑み、優先度の低いバスマスタが優先度の高いバスマスタよりも先にバス転送要求を発行するような場合であっても、所望の優先順位に応じたバス調停を行うことができるようにすることを目的とする。   In view of the above-described problems, the present invention performs bus arbitration according to a desired priority even when a low priority bus master issues a bus transfer request before a high priority bus master. The purpose is to be able to.

本発明のバス調停システムは、複数のバスマスタと、複数のメモリコントローラと、前記複数のバスマスタが前記複数のバスマスタと前記複数のメモリコントローラとを接続するシステムバスを介して前記メモリコントローラにアクセスする際にアクセスの競合を調停するバスアービタとを備えるバス調停システムであって、前記複数のバスマスタのバス転送要求を格納するキュー状態を前記バスアービタに通知するキュー状態通知手段と、前記キュー状態通知手段によって通知されたキューの状態を予め設定した条件と比較して判定する判定手段と、前記判定手段の結果に基づいてアクセスの競合を調停するタイミングを決定する調停タイミング制御手段とを備えることを特徴とする。   In the bus arbitration system of the present invention, a plurality of bus masters, a plurality of memory controllers, and the plurality of bus masters access the memory controller via a system bus connecting the plurality of bus masters and the plurality of memory controllers. A bus arbitration system including a bus arbiter for arbitrating access contention, a queue status notification means for notifying the bus arbiter of a queue status for storing bus transfer requests of the plurality of bus masters, and a notification by the queue status notification means Determining means for comparing the queue state with a preset condition, and arbitration timing control means for determining a timing for arbitrating access competition based on a result of the determination means. .

本発明によれば、従来よりもバス調停のタイミングを長く取ることができるため、所望の優先順位に応じたバス調停を行うことが可能となる。   According to the present invention, since the bus arbitration timing can be made longer than in the prior art, it is possible to perform bus arbitration according to a desired priority order.

(第1の実施形態)
以下、図1〜4を参照して本発明の実施形態について説明する。本実施形態では、バス調停のタイミングを、メモリコントローラのキューの空き数が2つ以上である場合に調停を行う構成とする。また、調停を行う競合するバスマスタの数は4つであるものとする。
(First embodiment)
Hereinafter, embodiments of the present invention will be described with reference to FIGS. In the present embodiment, the bus arbitration timing is configured to perform arbitration when the number of queues in the memory controller is two or more. It is assumed that the number of competing bus masters that perform arbitration is four.

図1は、本実施形態に係るバス調停システムの一例を示す図である。
図1において、本実施形態では、システムバス106に接続された4つのマスタデバイス101〜104が、システムバス106に接続されたメモリコントローラ105に対してバス転送を行う場合のバス転送競合をバスアービタ107で調停する。
FIG. 1 is a diagram illustrating an example of a bus arbitration system according to the present embodiment.
In FIG. 1, in this embodiment, the bus arbiter 107 detects bus transfer contention when four master devices 101 to 104 connected to the system bus 106 perform bus transfer to the memory controller 105 connected to the system bus 106. Mediate at.

さらに本実施形態のメモリコントローラ105は、内部に各バスマスタのバス転送要求を前もって複数個格納させておく。そして、このためのキューを有している。バスアービタ107は、メモリコントローラ105から通知されるキューの空き数を検知して監視することによりバス調停を行うタイミングを制御する構成となっている。   Further, the memory controller 105 of this embodiment stores therein a plurality of bus transfer requests of each bus master in advance. And it has a queue for this. The bus arbiter 107 is configured to control the timing of bus arbitration by detecting and monitoring the number of empty queues notified from the memory controller 105.

図2は、本実施形態に係るバス調停システムの詳細な構成例を示すブロック図である。
図2において、バスアービタ200は、調停判定部201、調停タイミング制御部202、調停部203、およびバス調停システムの初期設定を行う調停タイミング設定部204を有する。また、メモリコントローラ220は、キュー状態通知部221を有する。
FIG. 2 is a block diagram illustrating a detailed configuration example of the bus arbitration system according to the present embodiment.
In FIG. 2, the bus arbiter 200 includes an arbitration determination unit 201, an arbitration timing control unit 202, an arbitration unit 203, and an arbitration timing setting unit 204 that performs initial setting of the bus arbitration system. In addition, the memory controller 220 includes a queue state notification unit 221.

調停判定部201は、メモリコントローラ220からキュー状態通知信号250を受け取り、予め設定した調停条件と比較して条件を満たしているか否かを判定するブロックである。バス調停を行うための条件を満たしたかどうかを判定して、その結果を示す判定フラグを生成し、これに基づいて調停をするか否かを決定する。本実施形態の場合は、キュー状態通知信号250によって通知されるメモリコントローラ220のキューの空き数が2つ以上である場合にバス調停の条件を満たし、判定フラグを1にセットする。   The arbitration determination unit 201 is a block that receives the queue state notification signal 250 from the memory controller 220 and determines whether the condition is satisfied by comparing with a preset arbitration condition. It is determined whether a condition for performing bus arbitration is satisfied, a determination flag indicating the result is generated, and based on this, it is determined whether or not to perform arbitration. In the present embodiment, when the number of empty queues of the memory controller 220 notified by the queue state notification signal 250 is two or more, the bus arbitration condition is satisfied, and the determination flag is set to 1.

調停タイミング制御部202は、調停判定部201から判定フラグを受け取り、判定フラグ、キューの空き数およびバス転送要求を発行しているバスマスタの数に基づき各バスマスタのバス転送要求を制御するブロックである。判定フラグが0である間は各バスマスタのバス転送要求を全て0にマスクし、調停部203でのバス調停を停止させる。   The arbitration timing control unit 202 is a block that receives the determination flag from the arbitration determination unit 201 and controls the bus transfer request of each bus master based on the determination flag, the number of empty queues, and the number of bus masters that are issuing bus transfer requests. . While the determination flag is 0, all bus transfer requests of each bus master are masked to 0, and the bus arbitration in the arbitration unit 203 is stopped.

一方、判定フラグが1になり、調停判定部201においてバス調停を行うための条件を満たした場合には、その時点でのキューの空き数の数だけ各バスマスタのバス転送要求のマスクを解除して空き数分のバス転送要求を連続して調停する。この時、バス転送要求を発行しているバスマスタの数がキューの空き数に満たない場合には、バス転送要求を発行しているバスマスタの数だけ連続してマスクを解除し続け、該バスマスタのバス転送要求を調停する。   On the other hand, when the determination flag becomes 1 and the condition for performing the bus arbitration is satisfied in the arbitration determination unit 201, the bus transfer request mask of each bus master is canceled by the number of empty queues at that time. To continuously arbitrate the bus transfer requests for the number of empty. At this time, if the number of bus masters issuing bus transfer requests is less than the number of free queues, the mask is continuously released by the number of bus masters issuing bus transfer requests. Arbitrate bus transfer requests.

なお、キューの空き数分の転送、あるいはバス転送要求を発行していたバスマスタの数分のバス調停が完了するまでの間は判定フラグを考慮しない。所定の回数分のバス調停が完了し次第、再び判定フラグを監視し、次の調停タイミングを待つ。本実施形態の場合は、メモリコントローラ220のキューの空き数が1つ以下の場合は各バスマスタのバス転送要求を0にマスクし、バス調停を停止させておく。   Note that the determination flag is not taken into consideration until the transfer for the empty number of queues or the bus arbitration for the number of bus masters that have issued the bus transfer request is completed. As soon as the bus arbitration for a predetermined number of times is completed, the determination flag is monitored again and the next arbitration timing is awaited. In this embodiment, when the number of empty queues in the memory controller 220 is 1 or less, the bus transfer request of each bus master is masked to 0 and bus arbitration is stopped.

キューの空き数が2つになって判定フラグが1にセットされた時に、バス転送要求を発行しているバスマスタの数が2つ以上であった場合には2回分のバス調停が行われるまで各バスマスタのバス転送要求のマスクを解除し、バス調停を連続で行わせる。バス転送要求を発行しているバスマスタの数が1つであった場合には該バスマスタのバス調停が行われるまでバス転送要求のマスクを解除する。そして、2回ないしは1回のバス調停が完了し次第、再び判定フラグの状態を監視し、次の調停タイミングまでは各バスマスタのバス転送要求をマスクする。   When the number of vacant queues becomes two and the determination flag is set to 1, if the number of bus masters issuing bus transfer requests is two or more, until two bus arbitrations are performed The bus transfer request mask of each bus master is canceled and the bus arbitration is performed continuously. If the number of bus masters issuing a bus transfer request is 1, the bus transfer request mask is canceled until the bus master performs bus arbitration. As soon as the bus arbitration is completed twice or once, the state of the determination flag is monitored again, and the bus transfer request of each bus master is masked until the next arbitration timing.

図3は、判定フラグが1にセットされた時にバス転送要求を発行しているバスマスタの数が2つ以上あった場合の状態を示す図である。ここで、詳細は後述するが、Que_Vacの値には、本実施形態のバス調停を行う際の閾値である2を設定してあり、キュー状態通知信号250はメモリコントローラ220内のキューの空き数を示している。   FIG. 3 is a diagram illustrating a state in which there are two or more bus masters issuing bus transfer requests when the determination flag is set to 1. Here, although details will be described later, the value of Que_Vac is set to 2 which is a threshold when performing the bus arbitration of the present embodiment, and the queue status notification signal 250 is the number of free queues in the memory controller 220. Is shown.

gnt信号は、調停部203がバス調停を行って何れかのバスマスタにアクセス権を与えるための信号である。キュー状態通知信号250の値が2となり、予め設定したバス調停を行う条件を満たした時に条件フラグflgが1にセットされる。flgが1にセットされると各バスマスタのバス転送要求のマスクが解除され、バス調停が行われる。   The gnt signal is a signal for the arbitration unit 203 to perform bus arbitration and give an access right to any bus master. The condition flag flg is set to 1 when the value of the queue state notification signal 250 becomes 2 and the preset condition for bus arbitration is satisfied. When flg is set to 1, the bus transfer request mask of each bus master is canceled and bus arbitration is performed.

調停部203にてバス調停が行われ、何れかのバスマスタにバスアクセス権が与えられる(gnt=1)とバス転送が行われる。そして、メモリコントローラ220のキューに該バス転送要求が格納されてキュー状態通知信号250で通知されるキューの空き数が1つ減る。flgが1にセットされた時点でバス転送要求を発行していたバスマスタが2つ以上あるため、調停タイミング制御部202は、連続してマスクを解除し続け、次のバス調停を行わせる。2回バス調停が終了した時点で再びflg信号を監視し、再度flg信号が1にセットされるまで全てのバスマスタのバス転送要求を0にマスクしてバス調停を停止させる。   When the arbitration unit 203 performs bus arbitration and a bus access right is given to one of the bus masters (gnt = 1), bus transfer is performed. Then, the bus transfer request is stored in the queue of the memory controller 220, and the number of empty queues notified by the queue state notification signal 250 is reduced by one. Since there are two or more bus masters that have issued a bus transfer request when flg is set to 1, the arbitration timing control unit 202 continuously cancels the mask and causes the next bus arbitration to be performed. When the bus arbitration is completed twice, the flg signal is monitored again, and the bus arbitration is stopped by masking the bus transfer requests of all the bus masters to 0 until the flg signal is set to 1 again.

調停部203は、従来の調停手段と同様のものであり、固定プライオリティ方式やラウンドロビン等の方式でバス調停を行って、何れかのバスマスタにアクセス権割り当てを連続して変化させるブロックである。調停タイミング設定部204は、本実施形態のバス調停システムの動作設定を行うレジスタ群であり、CPU等が設定する。   The arbitration unit 203 is the same as conventional arbitration means, and is a block that performs bus arbitration by a fixed priority method, a round robin method, or the like, and continuously changes access right assignment to any bus master. The arbitration timing setting unit 204 is a register group that performs operation settings of the bus arbitration system of the present embodiment, and is set by a CPU or the like.

また、210は、メモリコントローラ220のキューの空き数がいくつ以上になったらバス調停を行うかの閾値を設定するキュー空き数設定レジスタであり、その出力Que_Vacは調停判定部201に接続する。   Reference numeral 210 denotes a queue empty number setting register for setting a threshold value for determining the number of empty queues in the memory controller 220 when the bus arbitration is performed. The output Que_Vac is connected to the arbitration determination unit 201.

図4は、キュー空き数設定レジスタの仕様を示す図である。
図4において、Bitsはビット構成を示し、Nameはレジスタ名を示す。また、Accessはレジスタ属性であり、Rはリードを示し、Wはライトを示す。また、Functionはレジスタ機能を示す。なお、Que_Vacは4ビット構成としているが、ビット幅はメモリコントローラ220が持つキューの総数に応じて増減させてもよい。
FIG. 4 is a diagram showing specifications of the queue empty number setting register.
In FIG. 4, Bits indicates a bit configuration, and Name indicates a register name. Access is a register attribute, R indicates read, and W indicates write. Function indicates a register function. Note that although Que_Vac has a 4-bit configuration, the bit width may be increased or decreased according to the total number of queues that the memory controller 220 has.

キュー状態通知部221は、メモリコントローラ220の内部にあるキューの状態をキュー状態通知信号250でバスアービタ200へと通知するブロックである。本実施形態の場合は、キューの空き数をカウントして、通知する。   The queue status notification unit 221 is a block that notifies the bus arbiter 200 of the status of the queue in the memory controller 220 by a queue status notification signal 250. In the case of this embodiment, the number of empty queues is counted and notified.

次に、本実施形態の動作について、図5のフローチャートを参照しながら説明する。
まず、CPU等がキュー空き数設定レジスタ410にバス調停を行う条件であるキューの空き数0x2を設定する(ステップS1)。ここで、キューの空き数が2以上の際にはバス調停を行うという設定がなされる。
Next, the operation of this embodiment will be described with reference to the flowchart of FIG.
First, the CPU or the like sets the queue empty number 0x2, which is a condition for performing bus arbitration, in the queue empty number setting register 410 (step S1). Here, when the number of empty queues is 2 or more, a setting is made to perform bus arbitration.

初期設定がなされると、バスアービタ200はメモリコントローラ220から通知されるキュー状態通知信号250の監視を始める(ステップS2)。次に、キュー状態通知信号250の値が2以上であるか否かを判定する(ステップS3)。この判定の結果、1以下である場合は、ステップS2に戻る。一方、ステップS3の判定の結果、2以上である場合は、ステップS4に進み、バス調停を開始する。そして、バス転送要求を発行しているバスマスタの数がキューの空き数よりも多いか否かを判定する(ステップS4)。   When initialization is performed, the bus arbiter 200 starts monitoring the queue state notification signal 250 notified from the memory controller 220 (step S2). Next, it is determined whether or not the value of the queue state notification signal 250 is 2 or more (step S3). If the result of this determination is 1 or less, the process returns to step S2. On the other hand, if the result of determination in step S3 is 2 or more, the process proceeds to step S4 to start bus arbitration. Then, it is determined whether or not the number of bus masters issuing a bus transfer request is larger than the number of empty queues (step S4).

この判定の結果、キューの空き数よりも多い場合は、キューの空き数分のバス調停を行って各バスマスタにアクセス権を割り当てる(ステップS5)。一方、ステップS4の判定の結果、バス転送要求を発行しているバスマスタの数がキューの空き数以下である場合には、転送要求を発行しているバスマスタの数分のバス調停を行って各バスマスタにアクセス権を割り当てる(ステップS6)。そして、所定の回数のバス調停が完了すると、再びキュー状態通知信号の値の監視を始める(ステップS2)。   If the result of this determination is that there are more queues than available, bus arbitration is performed for the number of available queues and an access right is assigned to each bus master (step S5). On the other hand, if the number of bus masters issuing a bus transfer request is equal to or less than the number of empty queues as a result of the determination in step S4, bus arbitration is performed for the number of bus masters issuing a transfer request. An access right is assigned to the bus master (step S6). When the predetermined number of bus arbitrations are completed, monitoring of the value of the queue state notification signal is started again (step S2).

以上のように本実施形態によれば、従来よりもバス調停のタイミングを長く取ることができるため、所望の優先順位に応じたバス調停を行うことを可能とする。   As described above, according to the present embodiment, the bus arbitration timing can be set longer than that in the prior art, so that bus arbitration according to a desired priority order can be performed.

図9は、キューの空き数が2つ以上になった場合にバス調停を行うように設定した場合を示す図である。図9は、図8で示した例と全く同じタイミング、間隔で各バスマスタがバス転送要求を発行する場合に本実施形態のバス調停システムを適用した際のバス調停動作を示している。   FIG. 9 is a diagram illustrating a case where bus arbitration is set when the number of empty queues is two or more. FIG. 9 shows a bus arbitration operation when the bus arbitration system of this embodiment is applied when each bus master issues a bus transfer request at exactly the same timing and interval as in the example shown in FIG.

図9に示すように、本実施形態のバス調停システムを用いることにより、バス調停時にバス転送要求を発行しているバスマスタの数を増やすことができる。これにより、所望の優先順位に応じた順序でメモリコントローラのキューに各バスマスタのバス転送要求を格納できる。また、従来のように一度バス調停を行ったバス転送要求を再度優先順位に応じてメモリコントローラで調整する必要がなくなるため、容易な回路構成で所望の優先順位に応じたメモリアクセスを行うことを可能とする。   As shown in FIG. 9, by using the bus arbitration system of the present embodiment, it is possible to increase the number of bus masters that issue bus transfer requests during bus arbitration. Thereby, the bus transfer request of each bus master can be stored in the queue of the memory controller in the order according to the desired priority. In addition, since it is not necessary to adjust the bus transfer request once the bus arbitration is performed by the memory controller according to the priority order as in the prior art, it is possible to perform memory access according to the desired priority order with an easy circuit configuration. Make it possible.

(第2の実施形態)
第1の実施形態では、バス調停を行う条件をキューの空き数の閾値で設定したが、この場合キューに格納されている各バス転送要求の内容に関しては全く考慮に入っていないため、必ずしも最適なバス調停タイミングを実現できるとは限らなかった。
(Second Embodiment)
In the first embodiment, the condition for performing the bus arbitration is set by the threshold value of the number of empty queues. However, in this case, the contents of each bus transfer request stored in the queue are not taken into consideration at all, and are not necessarily optimal. It was not always possible to achieve the correct bus arbitration timing.

例えば、4段のキューを有するメモリコントローラにおいて、2段以上キューが空いた時点でバス調停を開始するように設定する場合がある。この場合、まだキューに格納されている2つのバス転送要求が8ビート転送の要求2つである場合と、4ビート転送の要求2つである場合とでは、それらの転送要求のメモリアクセスが完了するまでに要するレイテンシは全く異なってくる。   For example, in a memory controller having a four-stage queue, it may be set to start bus arbitration when two or more stages of queues are available. In this case, when the two bus transfer requests that are still stored in the queue are two 8-beat transfer requests and two 4-beat transfer requests, the memory access of these transfer requests is completed. The latency required to do this is quite different.

通常、メモリコントローラは、現在行っているメモリアクセスの次のメモリアクセスの準備を行うために少なくとも1つのバス転送要求がキューに格納されていれば、余分なレイテンシを要さずに次のメモリアクセスを行うことが可能である。従って、もし4ビート転送の要求2つで合計8ビート分の転送量がキューに残っていて次のバス調停を開始させた場合に、新しいバス転送要求を格納することができるのであれば、転送要求が2つ格納されている状態でバス調停を開始させる必要はない。もう1つバス転送要求がキューから抜けてキューの空き数が3つになった後にバス調停を開始させることが可能である。そのほうがバス調停を開始させるタイミングを余分に多く取れるため、より効果的なバス調停を行うことが可能となる。   Normally, if the memory controller queues at least one bus transfer request to prepare for the next memory access after the current memory access, the memory controller does not need extra latency. Can be done. Therefore, if the transfer amount for a total of 8 beats remains in the queue with two 4-beat transfer requests and the next bus arbitration is started, a new bus transfer request can be stored. There is no need to start bus arbitration with two requests stored. It is possible to start the bus arbitration after another bus transfer request leaves the queue and the number of empty queues becomes three. In this case, an extra timing for starting bus arbitration can be obtained, so that more effective bus arbitration can be performed.

このように、いくつキューが空いた状態で次のバス調停を行うのが適切であるのかは一律の値ではなく、メモリコントローラのキューに格納されているバス転送要求の総転送量に応じて動的に変動する。そこで、上記問題に鑑み、本実施形態では、キューに格納されている各バス転送要求の総転送量の閾値を設定することにより、キューの空き数を一律で固定させずに、総転送量に応じて調停を行うタイミングを動的に変動させる。これにより、より効果的なバス調停を行うことが可能となる。   Thus, it is not a uniform value that the next bus arbitration is appropriate when the number of queues is empty, but depends on the total transfer amount of bus transfer requests stored in the memory controller queue. Fluctuates. Therefore, in view of the above problem, in this embodiment, by setting a threshold value for the total transfer amount of each bus transfer request stored in the queue, the total transfer amount can be set without fixing the number of empty queues uniformly. In response, the timing of mediation is dynamically changed. As a result, more effective bus arbitration can be performed.

図6は、本実施形態に係るバス調停システムの詳細な構成例を示すブロック図である。本実施形態では、キューに格納されている各バス転送要求の総転送量でバス調停を行う条件を設定する。なお、図6に示す構成は、図2で示した第1の実施形態の構成とほぼ同じであるが、本実施形態では、調停タイミング設定部604で設定する内容及びメモリコントローラ620内のキュー状態通知部621で通知する内容が異なる。   FIG. 6 is a block diagram illustrating a detailed configuration example of the bus arbitration system according to the present embodiment. In this embodiment, a condition for performing bus arbitration is set based on the total transfer amount of each bus transfer request stored in the queue. The configuration shown in FIG. 6 is almost the same as the configuration of the first embodiment shown in FIG. 2, but in this embodiment, the contents set by the arbitration timing setting unit 604 and the queue state in the memory controller 620 The content notified by the notification unit 621 is different.

610は、調停タイミング設定部604で設定するレジスタであり、メモリコントローラ620のキューに格納されているバス転送要求の総転送量が何バイト以下になったらバス調停を行うかの閾値を設定するキュー総転送量設定レジスタである。その出力Que_Amoは調停判定部601に接続する。   Reference numeral 610 denotes a register that is set by the arbitration timing setting unit 604, and is a queue that sets a threshold value for determining how many bytes or less the bus transfer request stored in the queue of the memory controller 620 is to perform bus arbitration. This is a total transfer amount setting register. The output Que_Amo is connected to the arbitration determination unit 601.

図7は、キュー総転送量設定レジスタ710の仕様を示す図である。図7において、Que_Amoは4ビット構成としているが、ビット幅は設定したい総転送量の値に応じて増減させてもよい。本実施形態では、キュー状態通知部621は、キューの空き数に加えて、キューに格納されているバス転送要求の総転送量もキュー状態通知信号650を用いてバスアービタ600へ通知する。   FIG. 7 is a diagram showing the specifications of the queue total transfer amount setting register 710. In FIG. 7, Que_Amo has a 4-bit configuration, but the bit width may be increased or decreased according to the value of the total transfer amount to be set. In the present embodiment, the queue status notification unit 621 notifies the bus arbiter 600 of the total transfer amount of bus transfer requests stored in the queue using the queue status notification signal 650 in addition to the number of empty queues.

調停判定部601は、キュー総転送量設定レジスタ610で設定された値とキュー状態通知信号650で通知された総転送量情報とを比較し、バス調停を開始するタイミングを判定する。キュー状態通知信号650は総転送量情報に加えてキューの空き数も通知することにより、バス調停時に何回連続でバス調停を行うかを制御する。   The arbitration determination unit 601 compares the value set by the queue total transfer amount setting register 610 with the total transfer amount information notified by the queue state notification signal 650, and determines the timing for starting bus arbitration. The queue status notification signal 650 notifies the number of empty queues in addition to the total transfer amount information, thereby controlling how many times the bus arbitration is performed at the time of bus arbitration.

図10は、本実施形態の動作タイミングを示す図である。本実施形態では、キューに格納されている各バス転送要求の総転送量が4バイト以下になった場合にバス調停を開始させるものとする。   FIG. 10 is a diagram showing the operation timing of the present embodiment. In this embodiment, the bus arbitration is started when the total transfer amount of each bus transfer request stored in the queue becomes 4 bytes or less.

なお、メモリコントローラ620は4段のキューを有しているものとし、そのキューには既に8バイト、1バイト、1バイト、4バイトの順でバス転送要求が格納されているものとする。この場合、Que_Amoの値にはバス調停の閾値である4を設定してあり、キューの空き数およびキューに格納されている総転送量がキュー状態通知信号650により通知されている。gnt信号は、調停部603がバス調停を行って何れかのバスマスタにアクセス権を与えるための信号である。   It is assumed that the memory controller 620 has a four-stage queue, and bus transfer requests are already stored in the queue in the order of 8 bytes, 1 byte, 1 byte, and 4 bytes. In this case, the value of Que_Amo is set to 4, which is a threshold value for bus arbitration, and the number of empty queues and the total transfer amount stored in the queue are notified by the queue state notification signal 650. The gnt signal is a signal for the arbitration unit 603 to perform bus arbitration and give an access right to any bus master.

キューには最初は計14バイトの転送量が格納されており、3つのバス転送要求がキューから抜けた時点でキューの内部の総転送量がバス調停を開始させる条件となる4バイトとなるので、flgが1にセットされ、バス調停が開始される。なお、本実施形態は、バス調停を行う条件を、キューの空き数やキューの総転送量に限定するものではない。さらに、リード/ライトの属性や、ページヒット/ミスといった状態をも考慮に入れることにより、より効果的なバス調停システムを容易に拡張可能である。   The queue initially stores a total transfer amount of 14 bytes, and when the three bus transfer requests leave the queue, the total transfer amount inside the queue becomes 4 bytes, which is the condition for starting bus arbitration. Flg is set to 1 and bus arbitration is started. In the present embodiment, the condition for performing the bus arbitration is not limited to the number of empty queues or the total transfer amount of the queue. Furthermore, a more effective bus arbitration system can be easily expanded by taking into account read / write attributes and page hit / miss conditions.

以上のように本実施形態によれば、従来よりもバス調停のタイミングを長く取ることができるため、所望の優先順位に応じたバス調停を行うことが可能となる。   As described above, according to the present embodiment, the bus arbitration timing can be set longer than in the prior art, so that the bus arbitration according to the desired priority order can be performed.

(本発明に係る他の実施形態)
前述した本発明の実施形態におけるバス調停システムを構成する各手段、並びにバス調停方法の各工程は、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
(Other embodiments according to the present invention)
Each means constituting the bus arbitration system and each step of the bus arbitration method in the embodiment of the present invention described above can be realized by operating a program stored in a RAM or ROM of a computer. This program and a computer-readable recording medium recording the program are included in the present invention.

また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。   Further, the present invention can be implemented as, for example, a system, apparatus, method, program, or recording medium. Specifically, the present invention may be applied to a system including a plurality of devices. The present invention may be applied to an apparatus composed of a single device.

なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図5に示すフローチャートに対応したプログラム)を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。   Note that the present invention includes a case where a software program for realizing the functions of the above-described embodiments (in the embodiment, a program corresponding to the flowchart shown in FIG. 5) is directly or remotely supplied to a system or apparatus. This includes the case where the system or the computer of the apparatus is also achieved by reading and executing the supplied program code.

したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。   Accordingly, since the functions of the present invention are implemented by computer, the program code installed in the computer also implements the present invention. In other words, the present invention includes a computer program itself for realizing the functional processing of the present invention.

その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。   In that case, as long as it has the function of a program, it may be in the form of object code, a program executed by an interpreter, script data supplied to the OS, and the like.

プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。   Examples of the recording medium for supplying the program include a flexible disk, a hard disk, an optical disk, and a magneto-optical disk. Further, there are MO, CD-ROM, CD-R, CD-RW, magnetic tape, nonvolatile memory card, ROM, DVD (DVD-ROM, DVD-R) and the like.

その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。   As another program supply method, there is a method of connecting to a homepage on the Internet using a browser of a client computer. The computer program itself of the present invention or a compressed file including an automatic installation function can be downloaded from the homepage by downloading it to a recording medium such as a hard disk.

また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。   It can also be realized by dividing the program code constituting the program of the present invention into a plurality of files and downloading each file from a different homepage. That is, a WWW server that allows a plurality of users to download a program file for realizing the functional processing of the present invention on a computer is also included in the present invention.

また、その他の方法として、本発明のプログラムを暗号化してCD−ROM等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。   As another method, the program of the present invention is encrypted, stored in a recording medium such as a CD-ROM, distributed to users, and encrypted from a homepage via the Internet to users who have cleared predetermined conditions. Download the key information to be solved. It is also possible to execute the encrypted program by using the key information and install the program on a computer.

また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。   Further, the functions of the above-described embodiments are realized by the computer executing the read program. Furthermore, based on the instructions of the program, an OS or the like running on the computer performs part or all of the actual processing, and the functions of the above-described embodiments can be realized by the processing.

さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。   As another method, the program read from the recording medium is first written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer. Then, based on the instructions of the program, the CPU or the like provided in the function expansion board or function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are also realized by the processing.

本発明の第1の実施形態に係るバス調停システムの一例を示す図である。It is a figure which shows an example of the bus arbitration system which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係るバス調停システムの詳細な構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the bus arbitration system which concerns on the 1st Embodiment of this invention. 判定フラグが1にセットされた時にバス転送要求を発行しているバスマスタの数が2つ以上あった場合の状態を示す図である。It is a figure which shows a state when there are two or more bus masters which have issued the bus transfer request when the determination flag is set to 1. 本発明の第1の実施形態におけるキュー空き数設定レジスタの仕様を示す図である。It is a figure which shows the specification of the queue empty number setting register | resistor in the 1st Embodiment of this invention. 本発明の第1の実施形態における動作手順の一例を示すフローチャートである。It is a flowchart which shows an example of the operation | movement procedure in the 1st Embodiment of this invention. 本発明の第2の実施形態に係るバス調停システムの詳細な構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the bus arbitration system which concerns on the 2nd Embodiment of this invention. 本発明の第2の実施形態におけるキュー総転送量設定レジスタの仕様を示す図である。It is a figure which shows the specification of the queue total transfer amount setting register | resistor in the 2nd Embodiment of this invention. 従来の調停方式における調停例を示す図である。It is a figure which shows the example of mediation in the conventional mediation system. 本発明の第1の実施形態における調停方式を用いた場合の調停例を示す図である。It is a figure which shows the example of arbitration at the time of using the arbitration system in the 1st Embodiment of this invention. 本発明の第2の実施形態の動作タイミングを示す図である。It is a figure which shows the operation | movement timing of the 2nd Embodiment of this invention.

符号の説明Explanation of symbols

200 バスアービタ
201 調停判定部
202 調停タイミング制御部
203 調停部
204 調停タイミング設定部
220 メモリコントローラ
221 キュー状態通知部
250 キュー状態通知信号
200 Bus Arbiter 201 Arbitration Determination Unit 202 Arbitration Timing Control Unit 203 Arbitration Unit 204 Arbitration Timing Setting Unit 220 Memory Controller 221 Queue State Notification Unit 250 Queue State Notification Signal

Claims (4)

複数のバスマスタと、複数のメモリコントローラと、前記複数のバスマスタが前記複数のバスマスタと前記複数のメモリコントローラとを接続するシステムバスを介して前記メモリコントローラにアクセスする際にアクセスの競合を調停するバスアービタとを備えるバス調停システムであって、
前記複数のバスマスタのバス転送要求を格納するキュー状態を前記バスアービタに通知するキュー状態通知手段と、
前記キュー状態通知手段によって通知されたキューの状態を予め設定した条件と比較して判定する判定手段と、
前記判定手段の結果に基づいてアクセスの競合を調停するタイミングを決定する調停タイミング制御手段とを備えることを特徴とするバス調停システム。
A plurality of bus masters, a plurality of memory controllers, and a bus arbiter that arbitrates access contention when the plurality of bus masters accesses the memory controller via a system bus connecting the plurality of bus masters and the plurality of memory controllers. A bus arbitration system comprising:
A queue status notification means for notifying the bus arbiter of a queue status for storing bus transfer requests of the plurality of bus masters;
A determination unit that determines the state of the queue notified by the queue state notification unit by comparing with a preset condition;
A bus arbitration system comprising: an arbitration timing control unit that determines a timing for arbitrating access competition based on a result of the determination unit.
前記判定手段は、キューの空き数が予め設定した値になったかどうかを判定し、
前記調停タイミング制御手段は、前記判定手段による前記キューの空き数の判定の結果に応じてバス調停を行うかどうかを決定することを特徴とする請求項1記載のバス調停システム。
The determination means determines whether the number of empty queues has reached a preset value,
2. The bus arbitration system according to claim 1, wherein the arbitration timing control means determines whether to perform bus arbitration according to a result of determination of the number of empty queues by the determination means.
前記判定手段は、キューに格納されている全てのバス転送要求の属性の組み合わせを予め設定した条件と比較して判定し、
前記調停タイミング制御手段は、前記判定手段による前記属性の組み合わせの判定の結果に応じてバス調停を行うタイミングを動的に変化させることを特徴とする請求項1記載のバス調停システム。
The determination means determines the combination of attributes of all bus transfer requests stored in the queue by comparing with a preset condition,
2. The bus arbitration system according to claim 1, wherein the arbitration timing control means dynamically changes a timing for performing bus arbitration according to a result of determination of the attribute combination by the determination means.
前記調停タイミング制御手段は、キューの空き数を検知してバス調停を行う際に、キューの空き数分のバスアクセス権の割り当てを連続して行うことを特徴とする請求項1〜3のいずれか1項に記載のバス調停システム。   4. The arbitration timing control means, when detecting the number of empty queues and performing bus arbitration, continuously assigns bus access rights for the number of empty queues. The bus arbitration system according to claim 1.
JP2008199874A 2008-08-01 2008-08-01 Bus arbitration system Pending JP2010039632A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008199874A JP2010039632A (en) 2008-08-01 2008-08-01 Bus arbitration system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008199874A JP2010039632A (en) 2008-08-01 2008-08-01 Bus arbitration system

Publications (1)

Publication Number Publication Date
JP2010039632A true JP2010039632A (en) 2010-02-18

Family

ID=42012137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008199874A Pending JP2010039632A (en) 2008-08-01 2008-08-01 Bus arbitration system

Country Status (1)

Country Link
JP (1) JP2010039632A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016018222A (en) * 2014-07-04 2016-02-01 株式会社日立製作所 Queue server
CN106773862A (en) * 2016-12-30 2017-05-31 深圳市英威腾电气股份有限公司 A kind of rectifier combining system and its control method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007172112A (en) * 2005-12-20 2007-07-05 Victor Co Of Japan Ltd Memory controller

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007172112A (en) * 2005-12-20 2007-07-05 Victor Co Of Japan Ltd Memory controller

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016018222A (en) * 2014-07-04 2016-02-01 株式会社日立製作所 Queue server
CN106773862A (en) * 2016-12-30 2017-05-31 深圳市英威腾电气股份有限公司 A kind of rectifier combining system and its control method

Similar Documents

Publication Publication Date Title
JP4974508B2 (en) Bus master device, bus arbitration device, and bus arbitration method
US20060155903A1 (en) Resource management device
EP3361388B1 (en) Distribution of master device tasks among bus queues
JP2008276391A (en) Memory access control device
US7606957B2 (en) Bus system including a bus arbiter for arbitrating access requests
JP2010039632A (en) Bus arbitration system
JP2007280253A (en) Information processor and information processing method
JP4843554B2 (en) Interface board, simulator, synchronization method, synchronization program
JP2008040905A (en) Semiconductor device and access method to storage device
JP7018833B2 (en) Semiconductor device
WO2013014841A1 (en) Data processing device and data processing method
JP5668858B2 (en) Information processing apparatus and scheduling method
JP5383159B2 (en) Bus relay apparatus and control method
JP4953794B2 (en) Bus arbitration method for bus system and bus system
JP2005165508A (en) Direct memory access controller
JP4610961B2 (en) Access control device
JP5703505B2 (en) Computer with bus partition structure
JP2007219925A (en) Bus controller, bus control program and recording medium
JP2008097462A (en) Information processing device and information processing method
WO2019038834A1 (en) Information processing device and resource use coordination method
JP6119997B2 (en) Data processing apparatus and data processing apparatus control method
JP6392556B2 (en) Access request issuing device, access request issuing system, access request issuing method, and access request issuing program
JP6536441B2 (en) Control device
JP6940283B2 (en) DMA transfer control device, DMA transfer control method, and DMA transfer control program
JP4535663B2 (en) State machine control method and state machine

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120713

A131 Notification of reasons for refusal

Effective date: 20120731

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120926

A02 Decision of refusal

Effective date: 20130205

Free format text: JAPANESE INTERMEDIATE CODE: A02