JP2013054699A - Bus arbiter, bus arbiter system and processing method of bus arbiter - Google Patents
Bus arbiter, bus arbiter system and processing method of bus arbiter Download PDFInfo
- Publication number
- JP2013054699A JP2013054699A JP2011194289A JP2011194289A JP2013054699A JP 2013054699 A JP2013054699 A JP 2013054699A JP 2011194289 A JP2011194289 A JP 2011194289A JP 2011194289 A JP2011194289 A JP 2011194289A JP 2013054699 A JP2013054699 A JP 2013054699A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- acquisition request
- bus master
- arbiter
- master
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
Description
本発明は、共通のバスに接続されている複数のバスマスタからのバス獲得要求を、予め設定されている各バスマスタの優先度に基づき調停するバスアービタに関する。 The present invention relates to a bus arbiter that arbitrates bus acquisition requests from a plurality of bus masters connected to a common bus based on preset priority of each bus master.
情報処理装置では複数の機器がバスを共有してメモリへのリード/ライトを行うことで処理を遂行することが多い。例えば、画像形成装置では、印刷用のデータを用紙に印刷するまでに、いくつかの画像処理手段が高速なメモリにそれぞれアクセスする。 In an information processing apparatus, a plurality of devices often perform processing by sharing a bus and performing read / write to a memory. For example, in an image forming apparatus, several image processing units each access a high-speed memory before printing data for printing on paper.
図1は、各画像処理手段によるメモリアクセスを説明する図の一例である。PC(Personal Computer)300上のアプリケーションがOSやプリンタドライバを利用してPDLデータ(ページ記述言語)を画像形成装置200に送信すると、通信コントローラ201がPDLデータをメモリに記憶する。次に、CPU(ソフトウェア)202がPDLデータをメモリから読み出して描画コマンドを生成してメモリ400に書き戻す。次に、描画装置203がメモリ400から描画コマンドを解析し階調処理した画像データをメモリ400に書き込む。次に、符号化装置204が、階調処理された画像データを圧縮アルゴリズム(JBIGなど)により符号化された画像データをメモリ400に書き込む。次に、復号装置205が、メモリ400から符号化された画像データを読み込み復号し、C,M,Y,Kの各版に対応するラスタデータをプリンタエンジン206に転送する。このように、複数の画像処理手段が1つのメモリ400に次々とアクセスする。
FIG. 1 is an example of a diagram for explaining memory access by each image processing means. When an application on a PC (Personal Computer) 300 transmits PDL data (page description language) to the
このため、複数の画像処理手段とメモリの間にメモリアクセスを調停するアービタ100が設けられることが一般的である。アービタ100は、複数の画像処理手段が同時期にメモリアクセスを要求した際に、所定の規則に従い、画像処理手段とメモリ400を結ぶバス500の使用権を与える画像処理手段を決定する。
For this reason, an
バス要求が同時に発生した場合にアービタ100が調停する調停方法について、予め固定的に画像処理手段に優先度を設定しておき、高い方にバス使用権を与える固定優先順位方式がある。この他、優先度が固定ではなく、順番に画像処理手段にバスの使用権を与えるラウンドロビン方式があるが、本願では主に固定優先順位方式を扱う。
As an arbitration method in which the
図2は、固定優先順位方式を説明する図の一例である。バスマスタ110(区別する場合、バスマスタ1〜5という)のうち、ここではバスマスタ1が最も高い優先度を有するものとする。
・バスマスタ1がアービタ100にバスの獲得を要求した場合、アービタ100はバスマスタ1にバスの使用権を与える。
・バスマスタ1のバス獲得要求がなく、優先度の低いバスマスタ2,3がアービタ100にバスの獲得を要求した場合、アービタ100はバスマスタ2、3の獲得要求をマスクすることなくバスマスタ2、3にバスの使用権を与える。
FIG. 2 is an example for explaining the fixed priority order method. Of the bus masters 110 (referred to as
When the
If there is no bus acquisition request from the
しかし、バスマスタ1がバスの獲得要求を発生し、かつ、バスマスタ2、3がバスの獲得要求を発生した場合、バスマスタ2、3等はバスを獲得できない状況が発生する。この場合、バスマスタ1がバスの獲得要求を発生する期間が長いと、バスマスタ2、3のバスの獲得要求が継続的に無視されてしまう。
However, when the
そこで、バスマスタ1を優先しながらバスマスタ2、3等のバスの獲得要求を完全には無視しないアービタ100が提案されている(例えば、特許文献1参照。)。特許文献1には、バスマスタ1がバスを獲得している間に、バスマスタ2,3がバスの獲得を要求した場合、バスマスタ2,3のバス使用頻度を一時的に低下させる技術が開示されている。
Therefore, an
図3は、従来のバスマスタ1〜3のアービタへの獲得要求について説明する図の一例である。図では棒状の縦線がバスマスタ1〜3のバスの獲得要求を示す。バスマスタ1のバス獲得要求がない場合には、他のバスマスタ2、3は獲得要求をマスクされることなく、バスを獲得している。しかし、バスマスタ1がバスの獲得を要求し、かつ、バスマスタ2又は3がバスの獲得を要求した場合、バスマスタ2、3は一定期間、バス要求をマスクされる。これにより、バスマスタ2,3はバス使用頻度を制限される。係る構成によれば、アービタ100は、他のバスマスタ2,3のバス使用頻度を一時的に低下させることができ、かつ、優先度の低いバスマスタからの要求を無視することなく、バスマスタ1のデータ転送効率を保証することができる。
FIG. 3 is an example of a diagram for explaining acquisition requests to the arbiters of the
しかしながら、特許文献1に記載された技術は、バスマスタ1と同等の優先度が必要なバスマスタ(これをバスマスタ1´とする)がある場合、不都合が生じるという問題がある。例えば、バスマスタ1のバス獲得要求が少ない場合に、バスマスタ1´のバス獲得要求が多いと、アービタ100はバスマスタ1よりもバスマスタ1´にバスの使用権を与えるので、バスマスタ1のバス獲得率が低下する傾向が生じる。
However, the technique described in
図4は、バスマスタ1とバスマスタ1´についてより具体例に説明する図の一例である。従来から、回転器と呼ばれる画像処理手段が、メモリ400に書き込まれた画像データを180度回転させる処理が行われることがある。図4ではこの回転処理を、バスマスタ1が読み出すアドレスを調整することで、メモリ400からの読み出し時に行っている。このため、図4では図1に加え、LSI120が画像出力器を有している。
(i) 不図示の画像処理手段がHDD130から符号化された画像データを読み出し、メモリ400上に展開する。
(ii) バスマスタ1´(復号装置)がメモリ400から符号化された画像データを読み出す。
(iii) バスマスタ1´は符号化された画像データを伸長して生データを生成し、バンド(1ページを副走査方向にいくつかに分割した領域)単位に分割してメモリ400上に展開する。
(iv) バスマスタ1(画像出力器)は、バンド単位に分割されたメモリ400上の生データを、180度回転するように読み出すアドレス順を調整し、読み出した生データをプリンタエンジンに出力する。
FIG. 4 is an example of a diagram illustrating the
(i) Image processing means (not shown) reads the encoded image data from the
(ii) The
(iii) The
(iv) The bus master 1 (image output device) adjusts the order of addresses for reading the raw data on the
こうすることにより、メモリ400からの読み出し時に180度回転させることができるので、LSI内の回転器が伸長された生データを180度回転する場合よりも高速化することができる。
By doing so, it is possible to rotate 180 degrees at the time of reading from the
しかし、図4の方式を実現するには、バスマスタ1(画像出力器)とバスマスタ1´(復号装置)の動作をバンド単位で連動させなければならない。これは、アービタ100が、バスマスタ1(画像出力器)とバスマスタ1´(復号装置)の優先度を同等に扱う必要があることを意味している。レーザプリンタの場合、画像出力器は一定のスピードで画像データを出力しなければいけないため、バスマスタ1の優先度を一番高くする必要がある。よって、画像出力器=バスマスタ1である。一方、画像出力器と連動して動作する必要がある復号装置=バスマスタ1´となる。
However, in order to realize the method of FIG. 4, the operations of the bus master 1 (image output device) and the
上記のように、バスマスタ1とバスマスタ1´の優先度が同程度のままでは以下のような不都合が生じる。概略を説明すると、バスマスタ1のリードリクエストが、バスマスタ1´のライトリクエストやライトデータに圧迫されてしまう。
As described above, if the priority levels of the
図5は、バスマスタ1とバスマスタ1´の優先度が同程度の場合の不都合を説明する図の一例である。図5(a)は、説明のため、バスマスタ1がバスマスタ1´に圧迫されていないケースを示す。バスマスタ1はリードしか行わないが、バスマスタ1´はリードとライトを行う。このため、バスマスタ1とバスマスタ1´は以下のような数のリードチャネルとライトチャネルを有する。
バスマスタ1はリードチャネルを2チャンネル(リードのDMACを2個)、
バスマスタ1´はリードチェネルを2チャンネル(リードのDMACを2個)
バスマスタ1´はライトチャネルを2チャンネル(ライトのDMACを2個)
図5(a)の左図では、バスマスタ1、バスマスタ1´がアービタ100に対し書き込み要求する際のコマンドが円形で、書き込み要求する際のデータが矩形で、それぞれ表されている。図5(a)の右図では、メモリ400がアービタ100に対し転送要求するリードデータが矩形で表されている。図5(a)の左側のコマンド及びデータが流れるパスを総称してライトパスといい、図5(a)の右側のデータが流れるパスを総称してリードパスという。それぞれ次の情報が流れる。
ライトパス:ライトリクエストコマンド、リードリクエストコマンド、ライトデータ
リードパス:リードデータ
図5(a)の左図のライトパスによれば、
バスマスタ1のCH1、CH2のリードリクエストコマンド、
バスマスタ1´のCH1、CH2のリードリクエストコマンド
バスマスタ1´のCH1、CH2のライトリクエストコマンド、
バスマスタ1´のCH1、CH2のライトデータ
がアービタ100に対し流れている。
FIG. 5 is an example of a diagram for explaining inconveniences when the priorities of the
Bus master 1 'has 2 channels of read channel (2 DMACs for read)
Bus master 1 'has 2 write channels (2 write DMACs)
In the left diagram of FIG. 5A, a command when the
Write path: Write request command, Read request command, Write data Read path: Read data According to the write path in the left diagram of FIG.
Read request command for CH1, CH2 of
Bus master 1 'CH1, CH2 read request command Bus master 1' CH1, CH2 write request command,
The write data of
図5(a)の右図のリードパスによれば、
バスマスタ1のCH1、CH2のリードデータ
バスマスタ1´のCH1、CH2のリードデータ
がアービタ100に対し流れている。
According to the lead path on the right side of FIG.
Read data of CH1 and CH2 of the
アービタ100はリードリクエスト同士、ライトリクエスト同士を調停し、調停後はライトデータやリードデータの送信を許可する。しかし、いずれのリクエストもアービタに出力されるので、アービタは優先度が同等であれば、リクエストの多い方のバスマスタに使用権を与える傾向がある。図5(a)では、バスマスタ1のリードチャネルが2CH、バスマスタ1´のリードチャネルが2チャンネルなので、両者のシャネル数が同じであるため、バスマスタ1のリードリクエストはバスマスタ1´のライトリクエストに圧迫されない。このように、同等の優先度を有するバスマスタ1とバスマスタ1´が、同時にバス獲得を要求する場合でも、チャネル数が同じであれば不都合は少ない。
The
図5(b)は、バスマスタ1がバスマスタ1´に圧迫されているケースを示す。バスマスタ1とバスマスタ1´は以下のようなチャネルを有する。
バスマスタ1のリードチャネルが1チャンネル
バスマスタ1´のリードチャネルが2チャンネル
バスマスタ1´のライトチャネルが2チャンネル、
図5(b)のようにバスマスタ1とバスマスタ1´で、同時にバス獲得を要求しているチャネル数に差がある場合、ライトパスとリードパスにおいてバスマスタ1がバスマスタ1´に圧迫される。ライトパスにおいては、バスマスタ1のリードコマンドが圧迫され、リードパスにおいてはバスマスタ1のリードデータが圧迫される。
FIG. 5B shows a case where the
The read channel of the
As shown in FIG. 5B, when there is a difference in the number of channels simultaneously requesting bus acquisition between the
以下に図5(a)と比較して、バスマスタ1がバスマスタ1´に圧迫される原因について説明する。
1.アービタに対してバス獲得要求するバスマスタ1のリードリクエストコマンドが少ない分、優先度が同等のバスマスタ1´のライトリクエストコマンドがアービタに入り込んでくる。
2.アービタに対しバス獲得要求するバスマスタ1´のライトリクエストコマンドが増える分、バスマスタ1´のライトデータ量が増加する。
3.バスマスタ1´のライトデータ量が増加することで、バス獲得要求するバスマスタ1のリードリクエストコマンドがアービタに到達しにくくなる。
4.バスマスタ1のリードリクエストコマンドがアービタに到達しにくくなることで、メモリからアービタに流れるバスマスタ1のリードデータの転送効率が落ちる。
Hereinafter, the reason why the
1. Since the read request command of the
2. The amount of write data of the bus master 1 'increases as the write request command of the bus master 1' requesting the bus acquisition to the arbiter increases.
3. As the amount of write data of the bus master 1 'increases, it becomes difficult for the read request command of the
4). Since it becomes difficult for the read request command of the
本発明は、上記課題に鑑み、同程度の優先度の複数のバスマスタに対し、より優先度の高いバスマスタの使用効率を圧迫しないアービタを提供することを目的とする。 In view of the above problems, an object of the present invention is to provide an arbiter that does not impose the use efficiency of a bus master having a higher priority on a plurality of bus masters having the same priority.
本発明は、共通のバスに接続されている複数のバスマスタからのバス獲得要求を、予め設定されている各バスマスタの優先度に基づき調停するバスアービタであって、優先度が最も高い第一のバスマスタからの第一のバス獲得要求、及び、前記第一のバスマスタと同等の優先度である第二のバスマスタからの第二のバス獲得要求を監視するバス獲得要求監視手段と、前記バス獲得要求監視手段の監視結果を取得して、前記第一のバス獲得要求の頻度及び前記第二のバス獲得要求の頻度が予め定められた基準を満たす特定事象を検知する特定事象検知手段と、前記特定事象検知手段から特定事象検知信号を取得して、前記第二のバス獲得要求の頻度を制限するバス獲得制御手段と、を有することを特徴とする。 The present invention provides a bus arbiter that arbitrates bus acquisition requests from a plurality of bus masters connected to a common bus based on a preset priority of each bus master, the first bus master having the highest priority. Bus acquisition request monitoring means for monitoring the first bus acquisition request from the second bus acquisition request from the second bus master having the same priority as the first bus master, and the bus acquisition request monitoring Specific event detection means for acquiring a monitoring result of the means and detecting a specific event in which the frequency of the first bus acquisition request and the frequency of the second bus acquisition request satisfy a predetermined criterion; and the specific event Bus acquisition control means for acquiring a specific event detection signal from the detection means and limiting the frequency of the second bus acquisition request.
同程度の優先度の複数のバスマスタに対し、より優先度の高いバスマスタの使用効率を圧迫しないアービタを提供すること。 To provide an arbiter that does not impair the usage efficiency of higher priority bus masters for multiple bus masters of similar priority.
以下、本発明を実施するための形態について図面を参照しながら説明する。 Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings.
図6は、本実施形態のアービタ100の概略的な特徴を説明する図の一例である。バスマスタ1とバスマスタ1´の優先度は同程度であり、バスマスタ2,3よりも高い。バスマスタ4,5はアービタ100によるバス獲得要求の対象外のバスマスタである。したがって、アービタ100はバスマスタ1又はバスマスタ1´がバスの獲得を要求した場合、バスマスタ2,3のバスの獲得要求をマスクする。しかし、バスマスタ4,5はアービタ100にとってマスクの対象外であるので、バスマスタ1又はバスマスタ1´がバスの獲得を要求しても、バスマスタ4,5のバスの獲得要求をマスクしない。
I 事象発生検知部15は、バスマスタ1とバスマスタ1´が同時にバスの獲得要求を発生したため、バスマスタ1のリードリクエストやリードデータを圧迫するおそれがあること(特定事象)を検知する。
II バス獲得制御部13は、特定事象の検知の通知を受け、マスク対象外のバスマスタ5(又は4でもよい)にダミーのリクエストコマンド(ダミーのバスの獲得要求)を発生させる。
FIG. 6 is an example of a diagram illustrating a schematic feature of the
The I event
The II bus
アービタ100にバスマスタ5のダミーのリードリクエストコマンドを挿入することで、バスマスタ1´のバスの占有率が低下し、バスマスタ1´のバスの使用頻度を一時的に低下させることができる。したがって、バスマスタ1のリードリクエストコマンドやリードデータが、バスマスタ1´のライトリクエストコマンドやライトデータに圧迫されることを防止できる。
By inserting a dummy read request command of the
また、バスマスタ4,5のバスの獲得要求は、ダミーなのでアービタ100は無視することができる。よって、バスマスタ4,5のバス獲得要求は、リード側のパスには影響を与えず、バスマスタ1の転送効率が低下することはない。
Since the bus acquisition requests of the
〔構成例〕
図7は、アービタを利用したメモリ利用システム600のブロック図の一例である。LSI120とメモリ400がシステムバス12を介して接続されている。メモリ400は、例えばSDRAM等の高速なメモリである。
[Configuration example]
FIG. 7 is an example of a block diagram of a
LSI120はバス獲得制御部13に接続されたバスマスタ1〜5、アービタ100、及び、メモリコントローラ11を有している。バスマスタ1,1´は、それぞれリクエスト監視部14(以下、区別する場合、リクエスト監視部1、1´という)に接続され、2つのリクエスト監視部1、1´はアービタ100に接続されている。また、リクエスト監視部1、1´は事象発生検知部15と接続され、事象発生検知部15はバス獲得制御部13と接続されている。
The
バスマスタ1、バスマスタ1´、バスマスタ2、及び、バスマスタ3は、画像形成装置200では、例えば、バスマスタ1=画像出力器、バスマスタ1´=復号装置、バスマスタ2=符号化装置、バスマスタ3=描画装置、である。
In the
例えば、PC300やスキャナが印刷対象のデータを画像形成装置200に記憶させる。これによりメモリ400に印刷データが記憶される。
For example, the
CPU202はプログラムを実行し、メモリ400から印刷データを読み出し解析して、中間言語による印刷データ(描画コマンド)を生成する。CPU202は生成した描画コマンドをメモリ400に記憶する。
The
描画装置203は、メモリ400から描画コマンドを読み出し、描画コマンドを解析して画像データに階調処理を施すことで2値化された画像データをメモリ400に書き込む。階調処理は、バンド単位(1ページ分を副走査方向に8〜16等分した領域)で行われることが多いため、2値化された画像データをバンドデータという場合がある。
The
次に、符号化装置204は、メモリ400からバンドデータを読み出して、JBIGなどの2値画像の圧縮アルゴリズムにより符号化し、メモリ400に記憶する。
Next, the
次に、復号装置205は、メモリ400から符号化データを読み込んで復号し、メモリ400に記憶する。画像出力器は、バンド単位に、復号された画像データをアドレスの最後からメモリから読み出して、不図示のエンジンコントローラへ転送する。エンジンコントローラは、プリンタエンジンを制御してプリンタエンジンで印刷データを用紙などに印刷する。したがって、画像出力器は、プリンタエンジンが一定のスピードで印刷できるように、最優先でメモリ400にアクセスする必要がある。また、画像出力器に画像データを供給する復号装置は同等の優先度が必要となる。
Next, the
このような関係は、出力までの画像処理の種類や数、処理後のデータのメモリ400への格納の有無、バス獲得競合の有無、などにより変わりうるものである。よって、各バスマスタと画像処理手段の対応は一例に過ぎない。また、1つのLSI120に複数のバスマスタが搭載されている必要はなく、例えばCPU202はLSI120の外に配置されることも多い。
Such a relationship can vary depending on the type and number of image processing until output, whether or not the processed data is stored in the
以下では、
バスマスタ1、バスマスタ1´:優先度が最も高い
バスマスタ2、バスマスタ3 :優先度が次に高い
ものとする。
Below,
リクエスト監視部1は、バスマスタ1の一定期間内におけるリードリクエストの数をカウントし、直接又はリクエスト監視部1´を介して事象発生検知部15に通知する。同様に、リクエスト監視部1´は、バスマスタ1´の一定期間(後述するリクエスト数計測時間)内におけるリードリクエスト及びライトリクエストの数をカウントし事象発生検知部15に通知する。なお、リクエスト監視部1は、バスマスタ1のリードリクエストをそのままアービタ100に透過的に転送し、リクエスト監視部1´は、バスマスタ1´のリードリクエスト及びライトリクエストをそのままアービタ100に透過的に転送する。
The
事象発生検知部15は、バスマスタ1の一定期間内におけるリードリクエストの数、及び、バスマスタ1´の一定期間内におけるリードリクエスト及びライトリクエストの数に基づき特定事象の検知を行う。特定事象の検知については後述する。事象発生検知部15は、事象検知信号を送信することで、特定事象を検知したことをバス獲得制御部13に通知する。
The event
バス獲得制御部13は、事象検知信号を取得すると、マスク対象外である、バスマスタ4又はバスマスタ5の少なくとも一方に対し、ダミーのリードリクエストコマンドを発行させる。その際、リードリクエストコマンドのダミーヘッダにダミーであることを示す情報を付加する。ダミーヘッダについては後述する。
When acquiring the event detection signal, the bus
ダミーの獲得要求は、バスマスタ1のリードリクエストコマンドの圧迫を抑制するため、リードリクエストであればよいが、バスマスタ1´のライトリクエストコマンドを制限するために、ライトリクエストでもよい。
The dummy acquisition request may be a read request in order to suppress the compression of the read request command of the
なお、バス獲得制御部13、リクエスト監視部1、1´、及び、事象発生検知部15はアービタ100の外に図示されているが、アービタ100による獲得要求の調停を支援する手段なので、アービタ100の一部である。
Although the bus
アービタ100はコマンドを解釈するためのコマンド判断部16を有する。コマンド判断部16は、ダミーのリクエストコマンドを検出する。アービタ100は、コマンド判断部16がダミーのリクエストコマンドでないと判断した、リードリクエスト、ライトリクエストのコマンドヘッダを解析して、リード・ライトの区別をし、アクセス先のアドレスを特定する。
The
アービタ100は、リードリクエストコマンド、ライトリクエストコマンドのそれぞれにおいて、リクエスト元のバスマスタの優先度を比較し、優先度の高いリクエストを優先し、メモリコントローラ11に出力する。また、優先度の高いバスマスタのリクエスを処理している間は、優先度の低いバスマスタのリクエストをマスクする。
The
本実施形態の場合、リクエストコマンドのダミーヘッダに基づき、コマンド判断部16は、リードリクエスト又はライトリクエストがダミーか否かを判定し、ダミーであると判定すると、メモリコントローラ11にリクエストコマンドを発行せずに破棄する。
In the case of this embodiment, based on the dummy header of the request command, the
これにより、バスマスタ4,5のリードリクエストをアービタ100まで到達させ、バスマスタ1´のバス使用頻度を一時的に低下させることができる。また、アービタ100のメモリコントローラ11側には、アービタ100はダミーのリードリクエストコマンドを出力しないので、メモリコントローラ11とメモリ間でのバスの混雑に影響を与えない。
Thereby, the read request of the
〔ダミーのリクエストコマンド〕
図8は、リクエストコマンドのフォーマットを説明する図の一例である。リクエストコマンドは、ダミーヘッダ、転送内容プロトコル、転送データ、及び、転送終了プロトコルの各フィールドを有する。
・ダミーヘッダには、"Dummy"又は"No Dummy"が格納される。
・転送内容プロトコルには、ライトリクエスト・リードリクエストの識別情報、リードリクエストの場合は転送先アドレスとデータサイズ、ライトリクエストの場合は転送先アドレス及びデータサイズ、等が格納される。
・転送データには、ライトリクエストの場合に転送データ又は転送元アドレスが格納される。
・転送終了プロトコルは、転送の終了を通知するフィールドである。
[Dummy request command]
FIG. 8 is an example of a diagram illustrating the format of the request command. The request command has fields of a dummy header, a transfer content protocol, transfer data, and a transfer end protocol.
-"Dummy" or "No Dummy" is stored in the dummy header.
In the transfer content protocol, write request / read request identification information, a transfer destination address and data size in the case of a read request, a transfer destination address and data size in the case of a write request, and the like are stored.
In the case of a write request, the transfer data or transfer source address is stored in the transfer data.
The transfer end protocol is a field for notifying the end of transfer.
したがって、ダミーヘッダに"Dummy"が格納されたリクエストコマンドが、ダミーのリクエストコマンドである。 Therefore, a request command in which “Dummy” is stored in the dummy header is a dummy request command.
〔特定事象の検知〕
図9は、特定事象の検知について説明する図の一例である。図9は、バスマスタ1と、バスマスタ1´で、同時にバス獲得要求を発行しているチャネル数に差がある場合を図示している。
[Detection of specific events]
FIG. 9 is an example of a diagram illustrating detection of a specific event. FIG. 9 illustrates a case where there is a difference in the number of channels that are simultaneously issuing bus acquisition requests between the
バスマスタ1のリードリクエストのチャネル数はCH1〜4の4つであり、バスマスタ1´のリードリクエストのチャネル数はCH1、2の2つであり、ライトリクエストのチャネル数はCH3,4の2つである。このうち、バスマスタ1はCH1にのみリードリクエストコマンドを出力しているが、バスマスタ1´はCH1〜4の全てにリクエストコマンドを出力している。上述したように、このような状態では、バスマスタ1のリードリクエストコマンドやリードデータがアービタ100に到達しにくくなる。
The number of read request channels of the
リクエスト監視部1は、点線で示す一定時間毎に、CH1〜CH4のリードリクエストコマンドの数をカウントする。リクエスト監視部1´も、同じ一定時間毎に、CH1〜CH4のライトリクエストコマンドの数及びリードリクエストコマンドの数をカウントする。図示する例では、リクエスト監視部1のカウント結果は3であり、リクエスト監視部1´のカウント結果は16である。
The
事象発生検知部15は、これらのカウント結果を取得し、2つのカウント結果の差が所定値以上の場合、特定事象の発生を検知する。所定値は、例えば、1つのチェネルで一定時間にカウントされる最大のリクエストコマンドの数をnとした場合、n〜2n程度とすればよいが、所定値は適宜、設定できる。
The event
〔アービタ内部のデータの取り扱い〕
図10は、アービタ内部におけるリードリクエストコマンド、ライトリクエストコマンド、ライトデータ又はリードデータの取得頻度を模式的に示す図の一例である。図10(a)は上記の図5(a)と同じものであり、バスマスタ1のリードリクエストコマンドやリードデータの転送が圧迫されている例を示している。
[Handling of data inside the arbiter]
FIG. 10 is an example of a diagram schematically showing the frequency of acquisition of a read request command, a write request command, write data, or read data inside the arbiter. FIG. 10A is the same as FIG. 5A described above, and shows an example in which the transfer of the read request command and read data of the
これに対し、図10(b)はダミーのリクエストコマンドにより、バスマスタ1のリードリクエストコマンドやリードデータの転送が圧迫されない例を示している。
On the other hand, FIG. 10B shows an example in which the transfer of the read request command and read data of the
図10(b)の左図は、バスマスタ1、バスマスタ1´、バスマスタ5のアービタ100に対するリクエストコマンドが円形で、ライトデータが矩形で、それぞれ表されている。図10(b)の右図は、メモリ400がアービタ100に転送要求するリードデータが矩形で表されている。図10(b)の左図に示すように、各バスマスタは以下のチャネルを有する。
バスマスタ1のリードリクエストコマンドが1CH、
バスマスタ1´のリードリクエストコマンドが2CH、
バスマスタ1´のライトリクエストコマンドが2CH、
バスマスタ5のリードリクエストコマンドが1CH、
すなわち、特定事象が検知された場合、バスマスタ5がダミーのリードリクエストコマンドを発生させるので、図10(b)の左図に示すように、バスマスタ5のリードリクエストコマンドが1CH、確保される。このような構成によれば、以下のような作用により、バスマスタ1のリードリクエストコマンドやリードデータが、バスマスタ1´のライトリクエストコマンドやライトデータにより圧迫されることが防止される。
In the left diagram of FIG. 10B, the request command for the
The read request command of
The read request command of the bus master 1 'is 2CH,
The bus master 1 'write request command is 2CH,
The read request command of the
That is, when a specific event is detected, the
1.アービタに対しバス獲得要求するバスマスタ1のリードリクエストコマンドが少なくても、マスクされないバスマスタ5のリードリクエストコマンドがアービタ100に到達する。
2.このため、アービタに到達するバスマスタ1´のライトリクエストコマンドが増えにくくなり、バスマスタ1´からアービタに流れるライトデータ量は増加しない。
3.バスマスタ1´のライトデータ量が増加しないので、アービタに対してバス獲得要求するバスマスタ1のリードリクエストコマンドが圧迫されない。
4.バスマスタ5のリードリクエストはダミーであり、アービタ100が破棄するので、メモリがアービタ100に送信するリードデータの転送効率が落ちることもない。
1. Even if the number of read request commands of the
2. For this reason, the number of write request commands of the
3. Since the amount of write data of the bus master 1 'does not increase, the read request command of the
4). Since the read request of the
〔動作手順〕
図11は、アービタ100の動作手順を説明するフローチャート図の一例である。
[Operation procedure]
FIG. 11 is an example of a flowchart for explaining the operation procedure of the
バスマスタ1はバスマスタ1´と非同期にリクエスト監視部1にリードリクエストコマンドを出力する(S1)。リクエスト監視部1は、リードリクエストコマンドをアービタ100に出力する(S2)。
The
バスマスタ1´はバスマスタ1と非同期にリクエスト監視部1´にリードリクエストコマンド又はライトリクエストコマンドを出力する(S3)。リクエスト監視部1´は、リードリクエストコマンド又はライトリクエストコマンドをアービタ100に出力する(S4)。
The
リクエスト監視部1は、リードリクエストコマンドを事象発生検知部15に出力する(S5)。
The
リクエスト監視部1´は、リードリクエストコマンド又はライトリクエストコマンドを事象発生検知部15に出力する(S6)。
The
アービタ100は、バスマスタ1とバスマスタ1´からのリードリクエストコマンドの優先度が同等なので、例えば早くリクエストを出力したバスマスタに使用権を与える。また、アービタ100は、バスマスタ1´からのライトリクエストコマンドに対し、バスマスタ1´の優先度が最も高いのでバスマスタ1´に使用権を与える。このような、バスマスタ1´のアービタ100へのリクエストが多いことやライトデータの転送が、バスマスタ1のリードリクエストを圧迫する要因になる。
Since the priority of the read request commands from the
事象発生検知部15は、リクエスト数計測時間におけるバスマスタ1のリードリクエストコマンドの数と、バスマスタ1´のリードリクエストコマンドの数及びリードリクエストコマンドの合計の差が所定値以上の場合、特定事象の発生を検知する(S7)。特定事象の発生を検知した事象発生検知部15は事象検知信号をバス獲得制御部13に出力する(S8)。
The event
バス獲得制御部13は、事象検知信号を取得すると、バスマスタ4又は5の少なくとも一方にリードリクエストコマンドを出力させる(S9)。
When acquiring the event detection signal, the bus
バスマスタ5は、バス獲得制御部13からの要求に対しダミーのリードリクエストコマンドをアービタ100に出力する(S10)。
In response to the request from the bus
アービタ100のコマンド判断部16は、リードリクエストコマンドのダミーヘッダを参照して、ダミーであることを検出するとこれを破棄する。したがって、メモリとメモリコントローラ11の間でリードデータが流れることはない。
The
以上説明したように、本実施例のアービタ100は、同等の優先度のバスマスタ1、1´が共にアービタにリクエストを出力する場合に、バスマスタ4,5のリードリクエストコマンドを挿入する。これにより、バスマスタ1´のバス使用頻度を一時的に低下させることができる。したがって、バスマスタ1のリードリクエストやリードデータが、バスマスタ1´のライトリクエストコマンドやライトデータに圧迫されることを防止できる。
As described above, the
本実施例では、特定事象の検知に伴う機能を停止させることができるアービタ100について説明する。
In this embodiment, an
図12は、アービタを利用したメモリ利用システム600のブロック図の一例である。図12において図7と同一部の説明は省略する。
FIG. 12 is an example of a block diagram of a
本実施例のLSI120は、新たにON/OFF切替部17を有する。ON/OFF切替部17は、バスマスタ1´がバスマスタ1を圧迫するユースケースがない場合、リクエスト監視部1,1´、事象発生検知部15、及び、コマンド判断部16を停止させる。例えば、ON/OFF切替部17は、リクエスト監視部1,1´、事象発生検知部15、及び、コマンド判断部16に供給されるクロックのクロック信号線を切断する。これにより、LSI120の消費電力を削減できる。
The
ユースケースの有無の判断は、LSI120のメーカや使用者(以下、単に開発者という)が行う。開発者は、バスマスタ1´がバスマスタ1を圧迫するユースケースがあるか否かを判断して、初期設定用のパラメータを不図示のROMやメインのプログラムに記述しておく。メインのプログラムは、LSI120の起動時にパラメータをON/OFF切替部17のレジスタなどに設定する。ON/OFF切替部17はレジスタに記憶されたパラメータに応じて、リクエスト監視部1,1´、事象発生検知部15、及び、コマンド判断部16を停止させる。
Whether or not there is a use case is determined by the manufacturer or user of the LSI 120 (hereinafter simply referred to as a developer). The developer determines whether or not there is a use case in which the
なお、バスマスタ1とバスマスタ1´は直接、アービタ100に接続されているため、リクエスト監視部1,1´は、動作が停止されてもリクエストコマンドをアービタ100に出力することができる。
Since the
本実施例によれば、同等な優先度を付与すべきバスマスタ1とバスマスタ1´が存在しないような場合、または、存在しても処理に大きな影響がない場合、LSI120の消費電力を抑制できる。
According to the present embodiment, the power consumption of the
本実施例では、ダミーのリクエストコマンドの発生頻度を制御可能なLSI120について説明する。
図13は、アービタを利用したメモリ利用システム600のブロック図の一例である。図13において図7と同一部の説明は省略する。
In the present embodiment, an
FIG. 13 is an example of a block diagram of a
本実施例のLSI120は、新たに条件格納部18を有する。条件格納部18には、事象発生検知部15が特定事象の発生を検知するための条件が格納される。条件格納部18は、ROMやレジスタなどの記憶媒体である。事象発生検知部15は、条件格納部18に記憶されたビットパターンにより、特定事象の発生を検知するための条件を切り換える。例えば、以下のビットパターンでは、特定事象の発生を検知するための条件は次のようになる。なお、"X"は不定とする。
XX01:バスマスタ1のリードリクエストコマンドの数と、バスマスタ1´のライトリクエストコマンド及びリードリクエストコマンドの合計の差が、所定数以上の場合に特定事象を検知する。
XX10:バスマスタ1のリードリクエストコマンドの数と、バスマスタ1´のリードリクエストコマンドの数の差が、所定数以上の場合に特定事象を検知する。
0011:バスマスタ1のリードリクエストコマンドの数と、バスマスタ1´のライトリクエストコマンドの数の差が、所定数以上の場合に特定事象を検知する。
01XX:所定数を3
10XX:所定数を6
11XX:所定数を9
特定事象の発生を検知するための条件の設定の仕方は、実施例2と同様である。すなわち、開発者は、特定事象の発生を検知するための条件(ビットパターン)を不図示のROMやメインのプログラムに記述しておく。メインのプログラムは、LSI120の起動時にビットパターンを条件格納部18のレジスタなどに設定する。
The
XX01: A specific event is detected when the difference between the number of read request commands of the
XX10: A specific event is detected when the difference between the number of read request commands of the
0011: A specific event is detected when the difference between the number of read request commands of the
01XX: The predetermined number is 3
10XX: The predetermined number is 6
11XX: Predetermined number is 9
The method of setting conditions for detecting the occurrence of a specific event is the same as in the second embodiment. That is, the developer describes a condition (bit pattern) for detecting the occurrence of a specific event in a ROM or main program (not shown). The main program sets the bit pattern in the register of the
事象発生検知部15は、特定事象の発生を検知する際、条件格納部18に格納されたビットパターンに従い、特定事象が発生したか否かを判定する。
When detecting the occurrence of a specific event, the event
このように、特定事象の発生を検知するための条件を変えることができることで、ダミーのリクエストコマンドによるデータリードが発生しすぎてしまい、バスマスタ1´の転送効率が低下してしまうことを防止できる。また、想定よりもダミーリードが発生しにくいため、本実施形態の効果が期待ほど得られないような場合にも対応することができる。 As described above, by changing the conditions for detecting the occurrence of the specific event, it is possible to prevent the data read by the dummy request command from being excessively generated and the transfer efficiency of the bus master 1 'from being lowered. . Further, since dummy leads are less likely to occur than expected, it is possible to cope with a case where the effect of the present embodiment cannot be obtained as expected.
なお、図13では、ON/OFF切替部17が図示されていないが、条件格納部18と共にON/OFF切替部17を搭載することもできる。この場合、特定事象の発生を検知するための条件を可変とすることができると共に、ON/OFF切替部17により消費電力を抑制することができる。
In FIG. 13, the ON / OFF switching unit 17 is not illustrated, but the ON / OFF switching unit 17 may be mounted together with the
11 メモリコントローラ
12 システムバス
13 バス獲得制御部
14 リクエスト監視部
15 事象発生検知部
16 コマンド判断部
17 ON/OFF切替部
18 条件格納部
100 アービタ
110 バスマスタ
200 画像形成装置
600 メモリ利用システム
DESCRIPTION OF
Claims (9)
優先度が最も高い第一のバスマスタからの第一のバス獲得要求、及び、前記第一のバスマスタと同等の優先度である第二のバスマスタからの第二のバス獲得要求を監視するバス獲得要求監視手段と、
前記バス獲得要求監視手段の監視結果を取得して、前記第一のバス獲得要求の頻度及び前記第二のバス獲得要求の頻度が予め定められた基準を満たす特定事象を検知する特定事象検知手段と、
前記特定事象検知手段から特定事象検知信号を取得して、前記第二のバス獲得要求の頻度を制限するバス獲得制御手段と、
を有するバスアービタ。 A bus arbiter that arbitrates bus acquisition requests from a plurality of bus masters connected to a common bus based on a preset priority of each bus master,
A bus acquisition request for monitoring a first bus acquisition request from the first bus master having the highest priority and a second bus acquisition request from the second bus master having the same priority as the first bus master. Monitoring means;
A specific event detection unit that acquires a monitoring result of the bus acquisition request monitoring unit and detects a specific event in which the frequency of the first bus acquisition request and the frequency of the second bus acquisition request satisfy a predetermined criterion. When,
Bus acquisition control means for acquiring a specific event detection signal from the specific event detection means and limiting the frequency of the second bus acquisition request;
Having a bus arbiter.
ことを特徴とする請求項1記載のバスアービタ。 The specific event detection means counts the number of the first bus acquisition requests and the number of the second bus acquisition requests within a predetermined time, thereby determining the frequency of the first bus acquisition requests and the second bus acquisition requests. Find the frequency of bus acquisition requests
The bus arbiter according to claim 1.
ことを特徴とする請求項1又は2記載のバスアービタ。 When the specific event detection signal is acquired, the bus acquisition control unit generates a third bus acquisition request from a third bus master whose bus acquisition request is not masked by the second bus acquisition request of the second bus master. ,
The bus arbiter according to claim 1 or 2, characterized by the above.
ことを特徴とする、請求項3記載のバスアービタ。 When the bus acquisition control unit causes the third bus master to generate the third bus acquisition request, the bus acquisition control unit indicates to the third bus master that the third bus acquisition request is a dummy. Add a dummy header,
The bus arbiter according to claim 3, wherein
ことを特徴とする、請求項4記載のバスアービタ。 If the dummy header is detected, discard the third bus acquisition request without arbitrating the bus acquisition request based on the third bus acquisition request;
The bus arbiter according to claim 4, wherein
ことを特徴とする、請求項1〜5いずれか1項記載のバスアービタ。 A function stop unit capable of stopping at least one of the bus acquisition request monitoring unit or the specific event detection unit;
The bus arbiter according to any one of claims 1 to 5, wherein
前記特定事象検知手段は、前記判定条件記憶手段に記憶された判定条件に基づき特定事象を検知する、
ことを特徴とする、請求項1〜6いずれか1項記載のバスアービタ。 A determination condition storage means for storing a determination condition of an arbitrary reference,
The specific event detection means detects a specific event based on the determination condition stored in the determination condition storage means;
The bus arbiter according to any one of claims 1 to 6, wherein
複数のバスマスタと、
バスを介して接続されたメモリと、
バス獲得要求を調停した前記バスアービタからの指示により、前記メモリにアクセスするメモリコントローラと、
を有するバスアービタシステム。 The bus arbiter according to any one of claims 1 to 7,
Multiple bus masters,
A memory connected via a bus;
A memory controller that accesses the memory according to an instruction from the bus arbiter that arbitrated a bus acquisition request;
A bus arbiter system.
バス獲得要求監視手段が、優先度が最も高い第一のバスマスタからの第一のバス獲得要求、及び、前記第一のバスマスタと同等の優先度である第二のバスマスタからの第二のバス獲得要求を監視するステップと、
特定事象検知手段が、前記バス獲得要求監視手段の監視結果を取得して、前記第一のバス獲得要求の頻度及び前記第二のバス獲得要求の頻度が予め定められた基準を満たす特定事象を検知するステップと、
バス獲得制御手段が、前記特定事象検知手段から特定事象検知信号を取得して、前記第二のバス獲得要求の頻度を制限するステップと、
を有するバスアービタの処理方法。 A bus arbiter processing method for arbitrating bus acquisition requests from a plurality of bus masters connected to a common bus based on a preset priority of each bus master,
The bus acquisition request monitoring means obtains the first bus acquisition request from the first bus master having the highest priority and the second bus acquisition from the second bus master having the same priority as the first bus master. Monitoring the request;
The specific event detection means acquires a monitoring result of the bus acquisition request monitoring means, and detects a specific event in which the frequency of the first bus acquisition request and the frequency of the second bus acquisition request satisfy a predetermined standard. Detecting step;
A bus acquisition control means for acquiring a specific event detection signal from the specific event detection means and limiting the frequency of the second bus acquisition request;
A method for processing a bus arbiter having
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011194289A JP2013054699A (en) | 2011-09-06 | 2011-09-06 | Bus arbiter, bus arbiter system and processing method of bus arbiter |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011194289A JP2013054699A (en) | 2011-09-06 | 2011-09-06 | Bus arbiter, bus arbiter system and processing method of bus arbiter |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013054699A true JP2013054699A (en) | 2013-03-21 |
Family
ID=48131599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011194289A Withdrawn JP2013054699A (en) | 2011-09-06 | 2011-09-06 | Bus arbiter, bus arbiter system and processing method of bus arbiter |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013054699A (en) |
-
2011
- 2011-09-06 JP JP2011194289A patent/JP2013054699A/en not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7398335B2 (en) | Method and system for DMA optimization in host bus adapters | |
JP5546635B2 (en) | Data transfer apparatus and control method thereof | |
US20120042105A1 (en) | Bus arbitration apparatus | |
US11163711B2 (en) | Memory access system, method for controlling the same, computer-readable storage medium, and image forming apparatus | |
US20060053236A1 (en) | Method and system for optimizing DMA channel selection | |
US9600426B2 (en) | Bus control device, image processing apparatus, and bus control method | |
US20130254444A1 (en) | Image processing apparatus | |
JP3895610B2 (en) | Image forming apparatus and image forming method | |
JP5293283B2 (en) | Semiconductor integrated circuit and memory access control method | |
JP6175794B2 (en) | Data processing apparatus and data processing method | |
CN114328350B (en) | AXI bus-based communication method, device and medium | |
US10558237B2 (en) | Information processing apparatus | |
US10996904B2 (en) | Network control device, image forming apparatus, control method of network control device, and non-transitory recording medium | |
US8468282B2 (en) | Arbitration device, arbitration method, image processing device, and image forming system | |
JP2015128207A (en) | Image reading device, image reading method, and program | |
JP2013054699A (en) | Bus arbiter, bus arbiter system and processing method of bus arbiter | |
JP2008027245A (en) | Memory access controller and memory access control method | |
JP2009043089A (en) | Bus control device and bus control method | |
US9146776B1 (en) | Systems and methods for controlling flow of message signaled interrupts | |
JP2005004563A (en) | Dma transfer controller | |
US8713205B2 (en) | Data transfer device and data transfer method | |
EP2141606B1 (en) | Apparatus and method for processing high speed data using hybrid DMA | |
JP2004355435A (en) | Access arbitration device | |
US20230273890A1 (en) | Host controller and bus-attached peripheral device power consumption reduction | |
JP2023135315A (en) | Controller, image forming apparatus, and access arbitration method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20141202 |