説明

バスアービタ、バスアービタシステム、バスアービタの処理方法

【課題】同程度の優先度の複数のバスマスタに対し、より優先度の高いバスマスタの使用効率を圧迫しないアービタを提供すること。
【解決手段】共通のバス12に接続されている複数のバスマスタ110からのバス獲得要求を、予め設定されている各バスマスタの優先度に基づき調停するバスアービタ100であって、優先度が最も高い第一のバスマスタからの第一のバス獲得要求、及び、前記第一のバスマスタと同等の優先度である第二のバスマスタからの第二のバス獲得要求を監視するバス獲得要求監視手段14と、前記バス獲得要求監視手段の監視結果を取得して、前記第一のバス獲得要求の頻度及び前記第二のバス獲得要求の頻度が予め定められた基準を満たす特定事象を検知する特定事象検知手段15と、前記特定事象検知手段から特定事象検知信号を取得して、前記第二のバス獲得要求の頻度を制限するバス獲得制御手段13と、を有することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、共通のバスに接続されている複数のバスマスタからのバス獲得要求を、予め設定されている各バスマスタの優先度に基づき調停するバスアービタに関する。
【背景技術】
【0002】
情報処理装置では複数の機器がバスを共有してメモリへのリード/ライトを行うことで処理を遂行することが多い。例えば、画像形成装置では、印刷用のデータを用紙に印刷するまでに、いくつかの画像処理手段が高速なメモリにそれぞれアクセスする。
【0003】
図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に次々とアクセスする。
【0004】
このため、複数の画像処理手段とメモリの間にメモリアクセスを調停するアービタ100が設けられることが一般的である。アービタ100は、複数の画像処理手段が同時期にメモリアクセスを要求した際に、所定の規則に従い、画像処理手段とメモリ400を結ぶバス500の使用権を与える画像処理手段を決定する。
【0005】
バス要求が同時に発生した場合にアービタ100が調停する調停方法について、予め固定的に画像処理手段に優先度を設定しておき、高い方にバス使用権を与える固定優先順位方式がある。この他、優先度が固定ではなく、順番に画像処理手段にバスの使用権を与えるラウンドロビン方式があるが、本願では主に固定優先順位方式を扱う。
【0006】
図2は、固定優先順位方式を説明する図の一例である。バスマスタ110(区別する場合、バスマスタ1〜5という)のうち、ここではバスマスタ1が最も高い優先度を有するものとする。
・バスマスタ1がアービタ100にバスの獲得を要求した場合、アービタ100はバスマスタ1にバスの使用権を与える。
・バスマスタ1のバス獲得要求がなく、優先度の低いバスマスタ2,3がアービタ100にバスの獲得を要求した場合、アービタ100はバスマスタ2、3の獲得要求をマスクすることなくバスマスタ2、3にバスの使用権を与える。
【0007】
しかし、バスマスタ1がバスの獲得要求を発生し、かつ、バスマスタ2、3がバスの獲得要求を発生した場合、バスマスタ2、3等はバスを獲得できない状況が発生する。この場合、バスマスタ1がバスの獲得要求を発生する期間が長いと、バスマスタ2、3のバスの獲得要求が継続的に無視されてしまう。
【0008】
そこで、バスマスタ1を優先しながらバスマスタ2、3等のバスの獲得要求を完全には無視しないアービタ100が提案されている(例えば、特許文献1参照。)。特許文献1には、バスマスタ1がバスを獲得している間に、バスマスタ2,3がバスの獲得を要求した場合、バスマスタ2,3のバス使用頻度を一時的に低下させる技術が開示されている。
【0009】
図3は、従来のバスマスタ1〜3のアービタへの獲得要求について説明する図の一例である。図では棒状の縦線がバスマスタ1〜3のバスの獲得要求を示す。バスマスタ1のバス獲得要求がない場合には、他のバスマスタ2、3は獲得要求をマスクされることなく、バスを獲得している。しかし、バスマスタ1がバスの獲得を要求し、かつ、バスマスタ2又は3がバスの獲得を要求した場合、バスマスタ2、3は一定期間、バス要求をマスクされる。これにより、バスマスタ2,3はバス使用頻度を制限される。係る構成によれば、アービタ100は、他のバスマスタ2,3のバス使用頻度を一時的に低下させることができ、かつ、優先度の低いバスマスタからの要求を無視することなく、バスマスタ1のデータ転送効率を保証することができる。
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、特許文献1に記載された技術は、バスマスタ1と同等の優先度が必要なバスマスタ(これをバスマスタ1´とする)がある場合、不都合が生じるという問題がある。例えば、バスマスタ1のバス獲得要求が少ない場合に、バスマスタ1´のバス獲得要求が多いと、アービタ100はバスマスタ1よりもバスマスタ1´にバスの使用権を与えるので、バスマスタ1のバス獲得率が低下する傾向が生じる。
【0011】
図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度回転するように読み出すアドレス順を調整し、読み出した生データをプリンタエンジンに出力する。
【0012】
こうすることにより、メモリ400からの読み出し時に180度回転させることができるので、LSI内の回転器が伸長された生データを180度回転する場合よりも高速化することができる。
【0013】
しかし、図4の方式を実現するには、バスマスタ1(画像出力器)とバスマスタ1´(復号装置)の動作をバンド単位で連動させなければならない。これは、アービタ100が、バスマスタ1(画像出力器)とバスマスタ1´(復号装置)の優先度を同等に扱う必要があることを意味している。レーザプリンタの場合、画像出力器は一定のスピードで画像データを出力しなければいけないため、バスマスタ1の優先度を一番高くする必要がある。よって、画像出力器=バスマスタ1である。一方、画像出力器と連動して動作する必要がある復号装置=バスマスタ1´となる。
【0014】
上記のように、バスマスタ1とバスマスタ1´の優先度が同程度のままでは以下のような不都合が生じる。概略を説明すると、バスマスタ1のリードリクエストが、バスマスタ1´のライトリクエストやライトデータに圧迫されてしまう。
【0015】
図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に対し流れている。
【0016】
図5(a)の右図のリードパスによれば、
バスマスタ1のCH1、CH2のリードデータ
バスマスタ1´のCH1、CH2のリードデータ
がアービタ100に対し流れている。
【0017】
アービタ100はリードリクエスト同士、ライトリクエスト同士を調停し、調停後はライトデータやリードデータの送信を許可する。しかし、いずれのリクエストもアービタに出力されるので、アービタは優先度が同等であれば、リクエストの多い方のバスマスタに使用権を与える傾向がある。図5(a)では、バスマスタ1のリードチャネルが2CH、バスマスタ1´のリードチャネルが2チャンネルなので、両者のシャネル数が同じであるため、バスマスタ1のリードリクエストはバスマスタ1´のライトリクエストに圧迫されない。このように、同等の優先度を有するバスマスタ1とバスマスタ1´が、同時にバス獲得を要求する場合でも、チャネル数が同じであれば不都合は少ない。
【0018】
図5(b)は、バスマスタ1がバスマスタ1´に圧迫されているケースを示す。バスマスタ1とバスマスタ1´は以下のようなチャネルを有する。
バスマスタ1のリードチャネルが1チャンネル
バスマスタ1´のリードチャネルが2チャンネル
バスマスタ1´のライトチャネルが2チャンネル、
図5(b)のようにバスマスタ1とバスマスタ1´で、同時にバス獲得を要求しているチャネル数に差がある場合、ライトパスとリードパスにおいてバスマスタ1がバスマスタ1´に圧迫される。ライトパスにおいては、バスマスタ1のリードコマンドが圧迫され、リードパスにおいてはバスマスタ1のリードデータが圧迫される。
【0019】
以下に図5(a)と比較して、バスマスタ1がバスマスタ1´に圧迫される原因について説明する。
1.アービタに対してバス獲得要求するバスマスタ1のリードリクエストコマンドが少ない分、優先度が同等のバスマスタ1´のライトリクエストコマンドがアービタに入り込んでくる。
2.アービタに対しバス獲得要求するバスマスタ1´のライトリクエストコマンドが増える分、バスマスタ1´のライトデータ量が増加する。
3.バスマスタ1´のライトデータ量が増加することで、バス獲得要求するバスマスタ1のリードリクエストコマンドがアービタに到達しにくくなる。
4.バスマスタ1のリードリクエストコマンドがアービタに到達しにくくなることで、メモリからアービタに流れるバスマスタ1のリードデータの転送効率が落ちる。
【0020】
本発明は、上記課題に鑑み、同程度の優先度の複数のバスマスタに対し、より優先度の高いバスマスタの使用効率を圧迫しないアービタを提供することを目的とする。
【課題を解決するための手段】
【0021】
本発明は、共通のバスに接続されている複数のバスマスタからのバス獲得要求を、予め設定されている各バスマスタの優先度に基づき調停するバスアービタであって、優先度が最も高い第一のバスマスタからの第一のバス獲得要求、及び、前記第一のバスマスタと同等の優先度である第二のバスマスタからの第二のバス獲得要求を監視するバス獲得要求監視手段と、前記バス獲得要求監視手段の監視結果を取得して、前記第一のバス獲得要求の頻度及び前記第二のバス獲得要求の頻度が予め定められた基準を満たす特定事象を検知する特定事象検知手段と、前記特定事象検知手段から特定事象検知信号を取得して、前記第二のバス獲得要求の頻度を制限するバス獲得制御手段と、を有することを特徴とする。
【発明の効果】
【0022】
同程度の優先度の複数のバスマスタに対し、より優先度の高いバスマスタの使用効率を圧迫しないアービタを提供すること。
【図面の簡単な説明】
【0023】
【図1】各画像処理手段によるメモリアクセスを説明する図の一例である。
【図2】固定優先順位方式を説明する図の一例である。
【図3】従来のバスマスタ1〜3の獲得要求の処理について説明する図の一例である。
【図4】バスマスタ1とバスマスタ1´についてより具体例に説明する図の一例である。
【図5】バスマスタ1とバスマスタ1´の優先度が同程度の場合の不都合を説明する図の一例である。
【図6】本実施形態のアービタの概略的な特徴を説明する図の一例である。
【図7】アービタを利用したメモリ利用システムのブロック図の一例である。
【図8】リクエストコマンドを説明する図の一例である。
【図9】特定事象の検知について説明する図の一例である。
【図10】アービタ内部におけるリクエストコマンドやデータの取得頻度を模式的に示す図の一例である。
【図11】LSIの動作手順を説明するフローチャート図の一例である。
【図12】メモリを利用するLSIのブロック図の一例である(実施例2)。
【図13】メモリを利用するLSIのブロック図の一例である(実施例3)。
【発明を実施するための形態】
【0024】
以下、本発明を実施するための形態について図面を参照しながら説明する。
【実施例1】
【0025】
図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でもよい)にダミーのリクエストコマンド(ダミーのバスの獲得要求)を発生させる。
【0026】
アービタ100にバスマスタ5のダミーのリードリクエストコマンドを挿入することで、バスマスタ1´のバスの占有率が低下し、バスマスタ1´のバスの使用頻度を一時的に低下させることができる。したがって、バスマスタ1のリードリクエストコマンドやリードデータが、バスマスタ1´のライトリクエストコマンドやライトデータに圧迫されることを防止できる。
【0027】
また、バスマスタ4,5のバスの獲得要求は、ダミーなのでアービタ100は無視することができる。よって、バスマスタ4,5のバス獲得要求は、リード側のパスには影響を与えず、バスマスタ1の転送効率が低下することはない。
【0028】
〔構成例〕
図7は、アービタを利用したメモリ利用システム600のブロック図の一例である。LSI120とメモリ400がシステムバス12を介して接続されている。メモリ400は、例えばSDRAM等の高速なメモリである。
【0029】
LSI120はバス獲得制御部13に接続されたバスマスタ1〜5、アービタ100、及び、メモリコントローラ11を有している。バスマスタ1,1´は、それぞれリクエスト監視部14(以下、区別する場合、リクエスト監視部1、1´という)に接続され、2つのリクエスト監視部1、1´はアービタ100に接続されている。また、リクエスト監視部1、1´は事象発生検知部15と接続され、事象発生検知部15はバス獲得制御部13と接続されている。
【0030】
バスマスタ1、バスマスタ1´、バスマスタ2、及び、バスマスタ3は、画像形成装置200では、例えば、バスマスタ1=画像出力器、バスマスタ1´=復号装置、バスマスタ2=符号化装置、バスマスタ3=描画装置、である。
【0031】
例えば、PC300やスキャナが印刷対象のデータを画像形成装置200に記憶させる。これによりメモリ400に印刷データが記憶される。
【0032】
CPU202はプログラムを実行し、メモリ400から印刷データを読み出し解析して、中間言語による印刷データ(描画コマンド)を生成する。CPU202は生成した描画コマンドをメモリ400に記憶する。
【0033】
描画装置203は、メモリ400から描画コマンドを読み出し、描画コマンドを解析して画像データに階調処理を施すことで2値化された画像データをメモリ400に書き込む。階調処理は、バンド単位(1ページ分を副走査方向に8〜16等分した領域)で行われることが多いため、2値化された画像データをバンドデータという場合がある。
【0034】
次に、符号化装置204は、メモリ400からバンドデータを読み出して、JBIGなどの2値画像の圧縮アルゴリズムにより符号化し、メモリ400に記憶する。
【0035】
次に、復号装置205は、メモリ400から符号化データを読み込んで復号し、メモリ400に記憶する。画像出力器は、バンド単位に、復号された画像データをアドレスの最後からメモリから読み出して、不図示のエンジンコントローラへ転送する。エンジンコントローラは、プリンタエンジンを制御してプリンタエンジンで印刷データを用紙などに印刷する。したがって、画像出力器は、プリンタエンジンが一定のスピードで印刷できるように、最優先でメモリ400にアクセスする必要がある。また、画像出力器に画像データを供給する復号装置は同等の優先度が必要となる。
【0036】
このような関係は、出力までの画像処理の種類や数、処理後のデータのメモリ400への格納の有無、バス獲得競合の有無、などにより変わりうるものである。よって、各バスマスタと画像処理手段の対応は一例に過ぎない。また、1つのLSI120に複数のバスマスタが搭載されている必要はなく、例えばCPU202はLSI120の外に配置されることも多い。
【0037】
以下では、
バスマスタ1、バスマスタ1´:優先度が最も高い
バスマスタ2、バスマスタ3 :優先度が次に高い
ものとする。
【0038】
リクエスト監視部1は、バスマスタ1の一定期間内におけるリードリクエストの数をカウントし、直接又はリクエスト監視部1´を介して事象発生検知部15に通知する。同様に、リクエスト監視部1´は、バスマスタ1´の一定期間(後述するリクエスト数計測時間)内におけるリードリクエスト及びライトリクエストの数をカウントし事象発生検知部15に通知する。なお、リクエスト監視部1は、バスマスタ1のリードリクエストをそのままアービタ100に透過的に転送し、リクエスト監視部1´は、バスマスタ1´のリードリクエスト及びライトリクエストをそのままアービタ100に透過的に転送する。
【0039】
事象発生検知部15は、バスマスタ1の一定期間内におけるリードリクエストの数、及び、バスマスタ1´の一定期間内におけるリードリクエスト及びライトリクエストの数に基づき特定事象の検知を行う。特定事象の検知については後述する。事象発生検知部15は、事象検知信号を送信することで、特定事象を検知したことをバス獲得制御部13に通知する。
【0040】
バス獲得制御部13は、事象検知信号を取得すると、マスク対象外である、バスマスタ4又はバスマスタ5の少なくとも一方に対し、ダミーのリードリクエストコマンドを発行させる。その際、リードリクエストコマンドのダミーヘッダにダミーであることを示す情報を付加する。ダミーヘッダについては後述する。
【0041】
ダミーの獲得要求は、バスマスタ1のリードリクエストコマンドの圧迫を抑制するため、リードリクエストであればよいが、バスマスタ1´のライトリクエストコマンドを制限するために、ライトリクエストでもよい。
【0042】
なお、バス獲得制御部13、リクエスト監視部1、1´、及び、事象発生検知部15はアービタ100の外に図示されているが、アービタ100による獲得要求の調停を支援する手段なので、アービタ100の一部である。
【0043】
アービタ100はコマンドを解釈するためのコマンド判断部16を有する。コマンド判断部16は、ダミーのリクエストコマンドを検出する。アービタ100は、コマンド判断部16がダミーのリクエストコマンドでないと判断した、リードリクエスト、ライトリクエストのコマンドヘッダを解析して、リード・ライトの区別をし、アクセス先のアドレスを特定する。
【0044】
アービタ100は、リードリクエストコマンド、ライトリクエストコマンドのそれぞれにおいて、リクエスト元のバスマスタの優先度を比較し、優先度の高いリクエストを優先し、メモリコントローラ11に出力する。また、優先度の高いバスマスタのリクエスを処理している間は、優先度の低いバスマスタのリクエストをマスクする。
【0045】
本実施形態の場合、リクエストコマンドのダミーヘッダに基づき、コマンド判断部16は、リードリクエスト又はライトリクエストがダミーか否かを判定し、ダミーであると判定すると、メモリコントローラ11にリクエストコマンドを発行せずに破棄する。
【0046】
これにより、バスマスタ4,5のリードリクエストをアービタ100まで到達させ、バスマスタ1´のバス使用頻度を一時的に低下させることができる。また、アービタ100のメモリコントローラ11側には、アービタ100はダミーのリードリクエストコマンドを出力しないので、メモリコントローラ11とメモリ間でのバスの混雑に影響を与えない。
【0047】
〔ダミーのリクエストコマンド〕
図8は、リクエストコマンドのフォーマットを説明する図の一例である。リクエストコマンドは、ダミーヘッダ、転送内容プロトコル、転送データ、及び、転送終了プロトコルの各フィールドを有する。
・ダミーヘッダには、"Dummy"又は"No Dummy"が格納される。
・転送内容プロトコルには、ライトリクエスト・リードリクエストの識別情報、リードリクエストの場合は転送先アドレスとデータサイズ、ライトリクエストの場合は転送先アドレス及びデータサイズ、等が格納される。
・転送データには、ライトリクエストの場合に転送データ又は転送元アドレスが格納される。
・転送終了プロトコルは、転送の終了を通知するフィールドである。
【0048】
したがって、ダミーヘッダに"Dummy"が格納されたリクエストコマンドが、ダミーのリクエストコマンドである。
【0049】
〔特定事象の検知〕
図9は、特定事象の検知について説明する図の一例である。図9は、バスマスタ1と、バスマスタ1´で、同時にバス獲得要求を発行しているチャネル数に差がある場合を図示している。
【0050】
バスマスタ1のリードリクエストのチャネル数はCH1〜4の4つであり、バスマスタ1´のリードリクエストのチャネル数はCH1、2の2つであり、ライトリクエストのチャネル数はCH3,4の2つである。このうち、バスマスタ1はCH1にのみリードリクエストコマンドを出力しているが、バスマスタ1´はCH1〜4の全てにリクエストコマンドを出力している。上述したように、このような状態では、バスマスタ1のリードリクエストコマンドやリードデータがアービタ100に到達しにくくなる。
【0051】
リクエスト監視部1は、点線で示す一定時間毎に、CH1〜CH4のリードリクエストコマンドの数をカウントする。リクエスト監視部1´も、同じ一定時間毎に、CH1〜CH4のライトリクエストコマンドの数及びリードリクエストコマンドの数をカウントする。図示する例では、リクエスト監視部1のカウント結果は3であり、リクエスト監視部1´のカウント結果は16である。
【0052】
事象発生検知部15は、これらのカウント結果を取得し、2つのカウント結果の差が所定値以上の場合、特定事象の発生を検知する。所定値は、例えば、1つのチェネルで一定時間にカウントされる最大のリクエストコマンドの数をnとした場合、n〜2n程度とすればよいが、所定値は適宜、設定できる。
【0053】
〔アービタ内部のデータの取り扱い〕
図10は、アービタ内部におけるリードリクエストコマンド、ライトリクエストコマンド、ライトデータ又はリードデータの取得頻度を模式的に示す図の一例である。図10(a)は上記の図5(a)と同じものであり、バスマスタ1のリードリクエストコマンドやリードデータの転送が圧迫されている例を示している。
【0054】
これに対し、図10(b)はダミーのリクエストコマンドにより、バスマスタ1のリードリクエストコマンドやリードデータの転送が圧迫されない例を示している。
【0055】
図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´のライトリクエストコマンドやライトデータにより圧迫されることが防止される。
【0056】
1.アービタに対しバス獲得要求するバスマスタ1のリードリクエストコマンドが少なくても、マスクされないバスマスタ5のリードリクエストコマンドがアービタ100に到達する。
2.このため、アービタに到達するバスマスタ1´のライトリクエストコマンドが増えにくくなり、バスマスタ1´からアービタに流れるライトデータ量は増加しない。
3.バスマスタ1´のライトデータ量が増加しないので、アービタに対してバス獲得要求するバスマスタ1のリードリクエストコマンドが圧迫されない。
4.バスマスタ5のリードリクエストはダミーであり、アービタ100が破棄するので、メモリがアービタ100に送信するリードデータの転送効率が落ちることもない。
【0057】
〔動作手順〕
図11は、アービタ100の動作手順を説明するフローチャート図の一例である。
【0058】
バスマスタ1はバスマスタ1´と非同期にリクエスト監視部1にリードリクエストコマンドを出力する(S1)。リクエスト監視部1は、リードリクエストコマンドをアービタ100に出力する(S2)。
【0059】
バスマスタ1´はバスマスタ1と非同期にリクエスト監視部1´にリードリクエストコマンド又はライトリクエストコマンドを出力する(S3)。リクエスト監視部1´は、リードリクエストコマンド又はライトリクエストコマンドをアービタ100に出力する(S4)。
【0060】
リクエスト監視部1は、リードリクエストコマンドを事象発生検知部15に出力する(S5)。
【0061】
リクエスト監視部1´は、リードリクエストコマンド又はライトリクエストコマンドを事象発生検知部15に出力する(S6)。
【0062】
アービタ100は、バスマスタ1とバスマスタ1´からのリードリクエストコマンドの優先度が同等なので、例えば早くリクエストを出力したバスマスタに使用権を与える。また、アービタ100は、バスマスタ1´からのライトリクエストコマンドに対し、バスマスタ1´の優先度が最も高いのでバスマスタ1´に使用権を与える。このような、バスマスタ1´のアービタ100へのリクエストが多いことやライトデータの転送が、バスマスタ1のリードリクエストを圧迫する要因になる。
【0063】
事象発生検知部15は、リクエスト数計測時間におけるバスマスタ1のリードリクエストコマンドの数と、バスマスタ1´のリードリクエストコマンドの数及びリードリクエストコマンドの合計の差が所定値以上の場合、特定事象の発生を検知する(S7)。特定事象の発生を検知した事象発生検知部15は事象検知信号をバス獲得制御部13に出力する(S8)。
【0064】
バス獲得制御部13は、事象検知信号を取得すると、バスマスタ4又は5の少なくとも一方にリードリクエストコマンドを出力させる(S9)。
【0065】
バスマスタ5は、バス獲得制御部13からの要求に対しダミーのリードリクエストコマンドをアービタ100に出力する(S10)。
【0066】
アービタ100のコマンド判断部16は、リードリクエストコマンドのダミーヘッダを参照して、ダミーであることを検出するとこれを破棄する。したがって、メモリとメモリコントローラ11の間でリードデータが流れることはない。
【0067】
以上説明したように、本実施例のアービタ100は、同等の優先度のバスマスタ1、1´が共にアービタにリクエストを出力する場合に、バスマスタ4,5のリードリクエストコマンドを挿入する。これにより、バスマスタ1´のバス使用頻度を一時的に低下させることができる。したがって、バスマスタ1のリードリクエストやリードデータが、バスマスタ1´のライトリクエストコマンドやライトデータに圧迫されることを防止できる。
【実施例2】
【0068】
本実施例では、特定事象の検知に伴う機能を停止させることができるアービタ100について説明する。
【0069】
図12は、アービタを利用したメモリ利用システム600のブロック図の一例である。図12において図7と同一部の説明は省略する。
【0070】
本実施例のLSI120は、新たにON/OFF切替部17を有する。ON/OFF切替部17は、バスマスタ1´がバスマスタ1を圧迫するユースケースがない場合、リクエスト監視部1,1´、事象発生検知部15、及び、コマンド判断部16を停止させる。例えば、ON/OFF切替部17は、リクエスト監視部1,1´、事象発生検知部15、及び、コマンド判断部16に供給されるクロックのクロック信号線を切断する。これにより、LSI120の消費電力を削減できる。
【0071】
ユースケースの有無の判断は、LSI120のメーカや使用者(以下、単に開発者という)が行う。開発者は、バスマスタ1´がバスマスタ1を圧迫するユースケースがあるか否かを判断して、初期設定用のパラメータを不図示のROMやメインのプログラムに記述しておく。メインのプログラムは、LSI120の起動時にパラメータをON/OFF切替部17のレジスタなどに設定する。ON/OFF切替部17はレジスタに記憶されたパラメータに応じて、リクエスト監視部1,1´、事象発生検知部15、及び、コマンド判断部16を停止させる。
【0072】
なお、バスマスタ1とバスマスタ1´は直接、アービタ100に接続されているため、リクエスト監視部1,1´は、動作が停止されてもリクエストコマンドをアービタ100に出力することができる。
【0073】
本実施例によれば、同等な優先度を付与すべきバスマスタ1とバスマスタ1´が存在しないような場合、または、存在しても処理に大きな影響がない場合、LSI120の消費電力を抑制できる。
【実施例3】
【0074】
本実施例では、ダミーのリクエストコマンドの発生頻度を制御可能なLSI120について説明する。
図13は、アービタを利用したメモリ利用システム600のブロック図の一例である。図13において図7と同一部の説明は省略する。
【0075】
本実施例の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のレジスタなどに設定する。
【0076】
事象発生検知部15は、特定事象の発生を検知する際、条件格納部18に格納されたビットパターンに従い、特定事象が発生したか否かを判定する。
【0077】
このように、特定事象の発生を検知するための条件を変えることができることで、ダミーのリクエストコマンドによるデータリードが発生しすぎてしまい、バスマスタ1´の転送効率が低下してしまうことを防止できる。また、想定よりもダミーリードが発生しにくいため、本実施形態の効果が期待ほど得られないような場合にも対応することができる。
【0078】
なお、図13では、ON/OFF切替部17が図示されていないが、条件格納部18と共にON/OFF切替部17を搭載することもできる。この場合、特定事象の発生を検知するための条件を可変とすることができると共に、ON/OFF切替部17により消費電力を抑制することができる。
【符号の説明】
【0079】
11 メモリコントローラ
12 システムバス
13 バス獲得制御部
14 リクエスト監視部
15 事象発生検知部
16 コマンド判断部
17 ON/OFF切替部
18 条件格納部
100 アービタ
110 バスマスタ
200 画像形成装置
600 メモリ利用システム
【先行技術文献】
【特許文献】
【0080】
【特許文献1】特開2002−269032号公報

【特許請求の範囲】
【請求項1】
共通のバスに接続されている複数のバスマスタからのバス獲得要求を、予め設定されている各バスマスタの優先度に基づき調停するバスアービタであって、
優先度が最も高い第一のバスマスタからの第一のバス獲得要求、及び、前記第一のバスマスタと同等の優先度である第二のバスマスタからの第二のバス獲得要求を監視するバス獲得要求監視手段と、
前記バス獲得要求監視手段の監視結果を取得して、前記第一のバス獲得要求の頻度及び前記第二のバス獲得要求の頻度が予め定められた基準を満たす特定事象を検知する特定事象検知手段と、
前記特定事象検知手段から特定事象検知信号を取得して、前記第二のバス獲得要求の頻度を制限するバス獲得制御手段と、
を有するバスアービタ。
【請求項2】
前記特定事象検知手段は、一定時間内の、前記第一のバス獲得要求の数及び前記第二のバス獲得要求の数をカウントすることで、前記第一のバス獲得要求の頻度及び前記第二のバス獲得要求の頻度を求める、
ことを特徴とする請求項1記載のバスアービタ。
【請求項3】
前記バス獲得制御手段は、前記特定事象検知信号を取得すると、前記第二のバスマスタの前記第二のバス獲得要求によりバス獲得要求がマスクされない第三のバスマスタに第三のバス獲得要求を発生させる、
ことを特徴とする請求項1又は2記載のバスアービタ。
【請求項4】
前記バス獲得制御部が前記第三のバスマスタに前記第三のバス獲得要求を発生させる際、前記バス獲得制御部は前記第三のバスマスタに、前記第三のバス獲得要求にダミーであること示すダミーヘッダを付加させる、
ことを特徴とする、請求項3記載のバスアービタ。
【請求項5】
前記ダミーヘッダを検出した場合、前記第三のバス獲得要求に基づくバスの獲得要求を調停することなく前記第三のバス獲得要求を破棄する、
ことを特徴とする、請求項4記載のバスアービタ。
【請求項6】
前記バス獲得要求監視手段、又は、前記特定事象検知手段のうち、少なくとも1つを停止させることができる機能停止手段を有する、
ことを特徴とする、請求項1〜5いずれか1項記載のバスアービタ。
【請求項7】
任意の前記基準の判定条件を記憶する判定条件記憶手段を有し、
前記特定事象検知手段は、前記判定条件記憶手段に記憶された判定条件に基づき特定事象を検知する、
ことを特徴とする、請求項1〜6いずれか1項記載のバスアービタ。
【請求項8】
請求項1〜7いずれか1項記載のバスアービタと、
複数のバスマスタと、
バスを介して接続されたメモリと、
バス獲得要求を調停した前記バスアービタからの指示により、前記メモリにアクセスするメモリコントローラと、
を有するバスアービタシステム。
【請求項9】
共通のバスに接続されている複数のバスマスタからのバス獲得要求を、予め設定されている各バスマスタの優先度に基づき調停するバスアービタの処理方法であって、
バス獲得要求監視手段が、優先度が最も高い第一のバスマスタからの第一のバス獲得要求、及び、前記第一のバスマスタと同等の優先度である第二のバスマスタからの第二のバス獲得要求を監視するステップと、
特定事象検知手段が、前記バス獲得要求監視手段の監視結果を取得して、前記第一のバス獲得要求の頻度及び前記第二のバス獲得要求の頻度が予め定められた基準を満たす特定事象を検知するステップと、
バス獲得制御手段が、前記特定事象検知手段から特定事象検知信号を取得して、前記第二のバス獲得要求の頻度を制限するステップと、
を有するバスアービタの処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−54699(P2013−54699A)
【公開日】平成25年3月21日(2013.3.21)
【国際特許分類】
【出願番号】特願2011−194289(P2011−194289)
【出願日】平成23年9月6日(2011.9.6)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】