(57)【要約】【課題】複数のリクエスト保持手段が優先度を有するリクエストを保持する場合に、最も優先度の高いリクエストをできるだけ早く出力する。【解決手段】優先度“２”のリクエストＡ，優先度“３”のリクエストＢ，優先度“３”のリクエストＣ，優先度“４”のリクエストＤをそれぞれバッファ３２，３３，３４，３１が保持しているときに、バッファ３１が新たな優先度“１”のリクエストＥを保持すると（（ａ）参照）、バッファ３１が既に保持しているリクエストのうち新たなリクエストより優先度の低いものを新たなリクエストと同じ優先度にする優先度変更処理が行われて、リクエストＤの優先度が“４”から“１”に変更される（（ｂ）参照。値が小さいほど優先度は高い）。そして、出力制御装置はバッファ３１〜３４の保持する最も優先度の高いリクエストＤ，Ｅを出力する。これにより、後から保持された優先度の高いリクエストＥをできるだけ早く出力できる。【選択図】図５
2010055246.tif 000002
【特許請求の範囲】
【請求項１】
優先度を有するリクエストを保持する複数のリクエスト保持手段から出力側デバイスへ前記リクエストを出力するにあたり、前記複数のリクエスト保持手段の調停を行うリクエスト調停装置であって、
前記複数のリクエスト保持手段が保持する全てのリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を最優先リクエスト保持手段に設定する設定手段と、
前記最優先リクエスト保持手段が保持する全てのリクエストのうち最先に保持されたリクエストが前記出力側デバイスへ出力されるよう、前記最優先リクエスト保持手段を制御する制御手段と、
を備えたリクエスト調停装置。
【請求項２】
請求項１に記載のリクエスト調停装置であって、
前記複数のリクエスト保持手段が新たな前記リクエストを保持する毎に、該保持したリクエスト保持手段が既に保持しているリクエストのうち該新たなリクエストより優先度の低いものを、該新たなリクエストと同じ優先度にする優先度変更手段、
を備え、
前記設定手段は、前記複数のリクエスト保持手段毎の最先に保持されたリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を前記最優先リクエスト保持手段に設定する手段である、
リクエスト調停装置。
【請求項３】
請求項１に記載のリクエスト調停装置であって、
前記複数のリクエスト保持手段に１対１に対応しており、該対応するリクエスト保持手段が保持するリクエストの優先度のうち最も高い優先度を保持する複数の最高優先度保持手段、
を備え、
前記設定手段は、前記複数の最高優先度保持手段のうち最も高い優先度を保持している最高優先度保持手段に対応するリクエスト保持手段を前記最優先リクエスト保持手段に設定する手段である、
リクエスト調停装置。
【請求項４】
前記出力側デバイスは、複数のバンクを有するメモリであり、
前記各リクエスト保持手段は、前記メモリの各バンクに対応しており、前記リクエストとして自身に対応するバンクへのデータの入出力要求を保持する手段である、
請求項１〜３のいずれか１項に記載のリクエスト調停装置。
【請求項５】
優先度を有するリクエストを保持する複数のリクエスト保持手段から出力側デバイスへ前記リクエストを出力するにあたり、前記複数のリクエスト保持手段の調停を行うリクエスト調停方法であって、
（ａ）前記複数のリクエスト保持手段が保持する全てのリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を最優先リクエスト保持手段に設定するステップと、
（ｂ）該最優先リクエスト保持手段が保持する全てのリクエストのうち最先に保持されたリクエストが前記出力側デバイスへ出力されるよう、前記最優先リクエスト保持手段を制御するステップと、
を含むリクエスト調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リクエスト調停装置及びリクエスト調停方法に関する。
【背景技術】
【０００２】
プロセッサなどの複数のデバイスがメモリにアクセスする場合には、メモリへのアクセスを要求するリクエストが複数のデバイスから出力されるため、複数のリクエストを調停する調停回路（アービタ）を用いることが一般に知られている（例えば、特許文献１の図１３を参照）。このアービタを用いることで、同時に複数のリクエストがデバイスから出力されても、例えばリクエスト毎の優先度によってリクエストを実行する順序を決定して、効率よくメモリにアクセスすることができる。
【特許文献１】特開２００４−２８８０２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一方、アクセスを効率的に行えるメモリとして、複数のバンクで構成されたマルチバンクメモリが知られている。このマルチバンクメモリに対するリクエストの調停を行う場合には、図８に示すように、まずアクセスするメモリ２２０のバンク別にリクエストを分けてバンク別のバッファ２０１〜２０４に保持しておき、アービタ２１０がいずれのバッファが保持するリクエストをメモリ２２０に出力するかを決定することでメモリへのアクセスの調停を行うことが考えられる。この場合、例えば同じバンクの同じアドレスに対する読み出しリクエストと書き込みリクエストとの順序が入れ替わると誤ったデータの読み出しが行われてしまうため、バッファ２０１〜２０４はリクエストをＦＩＦＯ（先入れ先出し）で保持する必要がある。このような構成において、図８に示すようにバッファ２０１が優先度の低いリクエストｐの後に優先度の高いリクエストｑを保持した場合について考えると、バッファ２０２〜２０４の保持するリクエストｒ〜ｔは優先度が中であるため、アービタ２１０はリクエストｒ〜ｔをメモリに出力した後にリクエストｐをメモリ２２０に出力し、その後でリクエストｑをメモリ２２０に出力することになる。したがって、リクエストｑがリクエストｒ〜ｔよりも優先度が高いにもかかわらず、メモリ２２０に出力されるのが遅くなってしまう。また、バッファ２０２〜２０４に優先度が中のリクエストが新たに保持され続けると、優先度が高いはずのリクエストｑがいつまでもメモリ２２０に出力されなくなってしまう。
【０００４】
本発明は、上述した課題に鑑みなされたものであり、複数のリクエスト保持手段が優先度を有するリクエストを保持する場合に、最も優先度の高いリクエストをできるだけ早く出力することを主目的とする。
【課題を解決するための手段】
【０００５】
本発明は、上述の主目的を達成するために以下の手段を採った。
【０００６】
本発明のリクエスト調停装置は、
優先度を有するリクエストを保持する複数のリクエスト保持手段から出力側デバイスへ前記リクエストを出力するにあたり、前記複数のリクエスト保持手段の調停を行うリクエスト調停装置であって、
前記複数のリクエスト保持手段が保持する全てのリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を最優先リクエスト保持手段に設定する設定手段と、
前記最優先リクエスト保持手段が保持する全てのリクエストのうち最先に保持されたリクエストが前記出力側デバイスへ出力されるよう、前記最優先リクエスト保持手段を制御する制御手段と、
を備えるものである。
【０００７】
本発明のリクエスト調停装置では、優先度を有するリクエストを保持する複数のリクエスト保持手段から出力側デバイスへリクエストを出力するにあたり、複数のリクエスト保持手段が保持する全てのリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を最優先リクエスト保持手段に設定する。そして、最優先リクエスト保持手段が保持する全てのリクエストのうち最先に保持されたリクエストが出力側デバイスへ出力されるよう、最優先リクエスト保持手段を制御する。このように、最も優先度の高いリクエストを保持するリクエスト保持手段から優先的にリクエストが出力されるため、最も優先度の高いリクエストをできるだけ早く出力することができる。
【０００８】
本発明のリクエスト調停装置において、前記複数のリクエスト保持手段が新たな前記リクエストを保持する毎に、該保持したリクエスト保持手段が既に保持しているリクエストのうち該新たなリクエストより優先度の低いものを、該新たなリクエストと同じ優先度にする優先度変更手段、を備え、前記設定手段は、前記複数のリクエスト保持手段毎の最先に保持されたリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を前記最優先リクエスト保持手段に設定する手段としてもよい。こうすることにより、各リクエスト保持手段が保持する全てのリクエストの優先度を比較する場合に比べて、より短い時間で最優先リクエスト保持手段を設定することができる。
【０００９】
本発明のリクエスト調停装置において、前記複数のリクエスト保持手段に１対１に対応しており、該対応するリクエスト保持手段が保持するリクエストの優先度のうち最も高い優先度を保持する複数の最高優先度保持手段、を備え、前記設定手段は、前記複数の最高優先度保持手段のうち最も高い優先度を保持している最高優先度保持手段に対応するリクエスト保持手段を前記最優先リクエスト保持手段に設定する手段としてもよい。こうすることにより、各リクエスト保持手段が保持する全てのリクエストの優先度を比較する場合に比べて、より短い時間で最優先リクエスト保持手段を設定することができる。
【００１０】
本発明のリクエスト調停装置において、前記出力側デバイスは、複数のバンクを有するメモリであり、前記各リクエスト保持手段は、前記メモリの各バンクに対応しており、前記リクエストとして自身に対応するバンクへのデータの入出力要求を保持する手段としてもよい。複数のバンクを有するメモリに対してリクエストとしてデータの入出力要求を行う場合は、効率よくリクエストの調停を行うために複数のリクエスト保持手段がリクエストを保持することが考えられ、本発明を適用する意義が高い。
【００１１】
本発明のリクエスト調停方法は、
優先度を有するリクエストを保持する複数のリクエスト保持手段から出力側デバイスへ前記リクエストを出力するにあたり、前記複数のリクエスト保持手段の調停を行うリクエスト調停方法であって、
（ａ）前記複数のリクエスト保持手段が保持する全てのリクエストのうち最も優先度の高いリクエストを保持しているリクエスト保持手段を最優先リクエスト保持手段に設定するステップと、
（ｂ）該最優先リクエスト保持手段が保持する全てのリクエストのうち最先に保持されたリクエストが前記出力側デバイスへ出力されるよう、前記最優先リクエスト保持手段を制御するステップと、
を含むものである。
【００１２】
本発明のリクエスト調停方法は、上述したリクエスト調停装置と同様に、最も優先度の高いリクエストを保持するリクエスト保持手段から優先的にリクエストが出力されるため、最も優先度の高いリクエストをできるだけ早く出力することができる。なお、このリクエスト調停方法において、上述したいずれかのリクエスト調停装置の機能を実現するステップを追加してもよい。
【発明を実施するための最良の形態】
【００１３】
次に、本発明の実施の形態を図面に基づいて説明する。
【００１４】
［第１実施形態］
初めに、第１実施形態について説明する。図１は、本発明の第１実施形態であるプロセッサシステム１０の構成の概略を示す構成図である。
【００１５】
プロセッサシステム１０は、図１に示すように、プロセッサ１１〜１４とリクエスト調停装置２０とがバス８０を介して接続されている。また、リクエスト調停装置２０はメモリコントローラ６０を介してメモリ７０と接続されている。
【００１６】
プロセッサ１１〜１４は、図示しないＲＯＭから読み出したプログラムにしたがって、メモリ７０に記憶された画像データの印刷処理を分担して行うプロセッサである。具体的には、プロセッサ１１がメモリ７０に記憶されたＲＧＢの画像データを読み出しＣＭＹＫの画像データに変換してメモリ７０に記憶する処理を行い、プロセッサ１２がＣＭＹＫの画像データをメモリ７０から読み出しＣＭＹＫ各２ビットの２値化データに変換してメモリ７０に記憶する処理を行い、プロセッサ１３がメモリ７０に記憶された２値化データからヘッドの１走査分の２値化データを取り出してイメージデータとしてメモリ７０に記憶する処理を行い、プロセッサ１４がイメージデータをメモリ７０から読み出しイメージデータに基づく画像を印刷するよう図示しない印刷装置を制御する処理を行う。プロセッサ１１〜１４は、これらの処理を行うにあたり、データの入出力要求であるリクエストをリクエスト調停装置２０及びメモリコントローラ６０を介してメモリ７０に出力する。このリクエストは、データの読み出し又は書き込みのいずれかを指定するコントロール情報と、データの読み出し又は書き込みを行うメモリ７０のアドレスを指定するアドレス情報とを有しており、リクエストが書き込みを要求する場合には書き込むデータも有している。また、リクエストはプロセッサ毎に予め定められた優先度を有しており、本実施例では、プロセッサ１１〜１４はそれぞれ優先度“１”〜“４”のリクエストを出力する。なお、優先度は値が小さいほど優先度が高いことを意味している。
【００１７】
リクエスト調停装置２０は、プロセッサ１１〜１４が出力したリクエストの優先度に基づいて、リクエストの調停を行う装置であり、プロセッサ１１〜１４から入力したリクエストをバッファ３１〜３４のいずれかに保持させる入力制御装置２１と、入力したリクエストを先入れ先出し（ＦＩＦＯ）の形式で保持するバッファ３１〜３４と、バッファ３１〜３４が新たなリクエストを保持する毎に後述する優先度変更処理を行う優先度変更装置４１〜４４と、リクエストの優先度に基づいてバッファ３１〜３４のいずれかが保持するリクエストをメモリコントローラ６０に出力する出力制御装置５１と、を備えている。
【００１８】
入力制御装置２１は、入力したリクエストのアドレス情報によりメモリ６０のバンク７１〜７４のいずれのバンクへのリクエストであるかを判定し、判定したバンクに対応するバッファ３１〜３４のいずれかのバッファにリクエストを出力するリクエスト入力処理を行う。
【００１９】
バッファ３１〜３４は、それぞれバンク７１〜７４に１対１で対応しており、入力制御装置２１が出力したリクエストを入力すると、それをＦＩＦＯの形式で保持する。なお、本実施形態では、バッファ３１〜３４はそれぞれリクエストを４個まで保持することができることとしているが、リクエストを２つ以上保持できればいくつ保持できるものとしてもよい。
【００２０】
優先度変更装置４１〜４４は、それぞれバッファ３１〜３４に１対１で対応しており、対応するバッファが新たにリクエストを保持する毎に、そのバッファが既に保持しているリクエストのうち新たに保持されたリクエストより優先度の低いものを、新たに保持されたリクエストと同じ優先度にする優先度変更処理を行うプロセッサである。優先度変更処理の詳細については後述する。
【００２１】
出力制御装置５１は、バッファ３１〜３４がそれぞれ保持している最先に保持されたリクエストの優先度を比較して、最も優先度の高いリクエストを保持しているバッファを最優先バッファに設定し、設定した最優先バッファが保持する最先に保持されたリクエストをメモリコントローラ６０に出力するリクエスト出力処理を行う。なお、本実施形態では、最も優先度の高いリクエストを保持しているバッファが複数ある場合には、ラウンドロビン方式により最優先バッファを設定するが、他の方式により決定してもよい。また、出力制御装置５１は、図示しない信号線を介してメモリコントローラ６０が新たなリクエストを受け付け可能な状態であるか否かの情報を入力しており、受け付け可能であるときにのみリクエスト出力処理を行う。
【００２２】
メモリコントローラ６０は、メモリ７０へのデータの書き込みや読み出しを行う装置である。このメモリコントローラ６０は、出力制御装置５１が出力したリクエストを入力し、リクエストのアドレス情報，コントロール情報及びデータに基づいてメモリ７０がデータの入出力を行うよう制御する。また、上述したように、メモリコントローラ６０は新たなリクエストを受け付け可能な状態であるか否かの情報を図示しない信号線を介して出力制御装置５１に出力している。なお、メモリコントローラ６０は、例えば、データの入出力を行うようメモリ７０を制御しているときなど、前のリクエストに関する処理を行っているときには新たなリクエストを受け付け不可の状態となる。
【００２３】
メモリ７０は、バンク７１〜７４の４つのバンクで構成されたマルチバンクメモリである。このメモリ７０は、メモリコントローラ６０によって、リクエストに基づくデータの入出力が行われる。
【００２４】
次に、こうして構成された本発明の第１実施形態のプロセッサシステム１０の動作、特に、プロセッサ１１〜１４から出力されたリクエストの調停を行うときのリクエスト調停装置２０の動作について説明する。
【００２５】
まず、優先度変更装置４１が行う優先度変更処理について説明する。図２は、優先度変更ルーチンの一例を示すフローチャートである。この優先度変更ルーチンは、優先度変更装置４１にそれぞれ対応するバッファ３１が新たにリクエストを保持する毎に行われる。この優先度変更ルーチンでは、まず、カウンタｎ（ｎは整数）の値を初期化して値１にし（ステップＳ１００）、バッファ３１が保持するｎ個前のリクエストがあるか否かを判定する（ステップＳ１１０）。ここでは、カウンタｎが値１であるため、ｎ個前のリクエストとは、１個前のリクエストすなわちバッファ３１が新たなリクエストを保持する前から既に保持していたリクエストの中で最後に保持されたリクエストのことである。そして、ステップＳ１１０でｎ個前のリクエストがないと判定された場合には、この優先度変更ルーチンを終了する。一方、ステップＳ１１０でｎ個前のリクエストがあると判定された場合には、バッファ３１が新たに保持したリクエストの優先度が、バッファ３１が保持するｎ個前のリクエストの優先度より高いか否かを判定する（ステップＳ１２０）。ここでは、カウンタｎが値１であるため、バッファ３１が新たに保持したリクエストの優先度が、バッファ３１が保持する１個前のリクエストの優先度より高いか否かを判定することになる。そして、ステップＳ１１０で新たに保持したリクエストの優先度がｎ個前のリクエストの優先度より低いと判定したときには、この優先度変更ルーチンを終了する。一方、ステップＳ１２０で新たに保持したリクエストの優先度がｎ個前のリクエストの優先度より高いと判定したときには、ｎ個前のリクエストの優先度を新たに保持したリクエストの優先度に変更する（ステップＳ１３０）。そして、カウンタｎを１インクリメントして（ステップＳ１４０）、ステップＳ１１０に進む。すなわち、カウンタｎが初期値１であったときには、ステップＳ１４０でカウンタｎが値２になり、ステップＳ１１０で２個前のリクエストがあるか否かを判定することになる。以降は、ステップＳ１１０又はステップＳ１２０で否定的な判定がなされるまで上述したＳ１１０〜Ｓ１４０の処理を繰り返すことになる。なお、ステップＳ１２０で否定的な判定をしたときに優先度変更ルーチンを終了することとしているのは、優先度変更ルーチンを行うことでｎ＋１個前のリクエストの優先度はｎ個前のリクエストの優先度と同じかそれより高い優先度となっており、ステップＳ１２０で否定的な判定がなされた後にステップＳ１１０〜Ｓ１４０の処理を繰り返してさらに前のリクエストについてステップＳ１２０の判定を行っても、肯定的な判定がなされることがないためである。
【００２６】
上述した優先度変更ルーチンによってバッファ３１が保持するリクエストの優先度を変更する優先度変更処理の様子を図３，図４を用いて説明する。図３（ａ）に示すように、バッファ３１の保持領域３１ａ〜３１ｄのいずれにもリクエストが保持されていないときに優先度“２”のリクエストａが入力されたとすると、リクエストａは保持領域３１ａに保持される。このとき、優先度変更装置４１は優先度変更ルーチンを行い、リクエストａの１個前のリクエストが存在しないため、ステップＳ１１０で否定的な判定がなされて優先度変更ルーチンを終了する。次に、図３（ｂ）に示すように、優先度“３”のリクエストｂが入力されたとすると、リクエストｂは保持領域３１ｂに保持される。このとき、優先度変更装置４１は優先度変更ルーチンを行い、今回新たに保持したリクエストｂの優先度は１個前のリクエストであるリクエストａの優先度より低いためステップＳ１２０で否定的な判定がなされて優先度変更ルーチンを終了する。さらに、図３（ｃ）に示すように、優先度“１”のリクエストｃが入力されたとすると、リクエストｃは保持領域３１ｃに保持される。このとき、優先度変更装置４１は優先度変更ルーチンを行い、今回新たに保持したリクエストｃの優先度は１個前のリクエストであるリクエストｂの優先度より高いためステップＳ１２０で肯定的な判定がなされ、ステップＳ１３０でリクエストｂの優先度を“３”から“１”に変更する。そして、２個前のリクエストがあるためカウンタｎが値２のときのステップＳ１１０で肯定的な判定がなされてステップＳ１２０に進み、今回入力したリクエストｃの優先度は２個前のリクエストであるリクエストａの優先度より高いためステップＳ１２０で肯定的な判定がなされ、ステップＳ１３０でリクエストａの優先度を“２”から“１”に変更する。ステップＳ１３０の処理を行うと、３個前のリクエストはないためカウンタｎが値３のときのステップＳ１１０で否定的な判定がなされて優先度変更ルーチンを終了する。これにより、図３（ｄ）に示すように、リクエストａ，ｂがリクエストｃと同じ優先度“１”になる。
【００２７】
また、図４（ａ）に示すように、バッファ３１の保持領域３１ａ〜３１ｃに優先度“１”のリクエストｄ，優先度“１”のリクエストｅ，優先度“３”のリクエストｆがそれぞれ保持されている時に優先度“２”のリクエストｇが入力されたとすると、リクエストｇは保持領域３１ｄに保持される。このとき、優先度変更装置４１は優先度変更ルーチンを行い、今回新たに保持したリクエストｇの優先度は１個前のリクエストであるリクエストｆの優先度より高いためステップＳ１２０で肯定的な判定がなされ、ステップＳ１３０でリクエストｆの優先度を“３”から“２”に変更する。そして、２個前のリクエストがあるためカウンタｎが値２のときのステップＳ１１０で肯定的な判定がなされてステップＳ１２０に進み、今回入力したリクエストｇの優先度は２個前のリクエストであるリクエストｅの優先度より低いためステップＳ１２０で否定的な判定がなされて優先度変更ルーチンを終了する。これにより、図４（ｂ）に示すようにリクエストｆの優先度がリクエストｇと同じ優先度“２”になる。
【００２８】
以上のように、優先度変更装置４１が図２に示した優先度変更ルーチンを行うことで、バッファ３１が既に保持しているリクエストのうち新たに保持されたリクエストより優先度の低いものを、新たに保持されたリクエストと同じ優先度にする。これにより、バッファ３１の最先に保持されたリクエストすなわち図３，４における保持領域３１ａに保持されるリクエストの優先度を、バッファ３１が保持する全てのリクエストのうち最も優先度の高いリクエストと同じにすることができる。なお、優先度変更装置４２〜４４についても、それぞれ対応するバッファがバッファ３２〜３４である点以外は同様の優先度変更ルーチンにより優先度変更処理を行うものであるため説明を省略する。
【００２９】
続いて、リクエスト調停装置２０の動作について説明する。図５（ａ）は、プロセッサ１２が出力したバンク７２へのリクエストＡ，プロセッサ１３が出力したバンク７３へのリクエストＢ，プロセッサ１３が出力したバンク７４へのリクエストＣ，プロセッサ１４が出力したバンク７１へのリクエストＤをリクエスト調停装置２０のバッファ３１〜３４が保持した状態を示している。上述したように、プロセッサ１１〜１４からリクエストが出力されると、入力制御装置２１はリクエスト入力処理を行う。すなわち、リクエストＡ，Ｂ，Ｃ，Ｄはそれぞれバンク７２，７３，７４，７１へのリクエストであるため、入力制御装置２１はリクエストＡ，Ｂ，Ｃ，Ｄを、それぞれ対応するバッファ３２，３３，３４，３１に出力する。そのため図５（ａ）に示すように、バッファ３１がリクエストＤを保持領域３１ａに保持し、バッファ３２がリクエストＡを保持領域３２ａに保持し、バッファ３３がリクエストＢを保持領域３３ａに保持し、バッファ３４がリクエストＣを保持領域３４ａに保持した状態になる。このとき、優先度設定手段４１〜４４はそれぞれ上述した優先度変更処理を行うが、バッファ３１〜３４にはいずれも前に保持したリクエストがないため、いずれも図２のステップＳ１１０で否定的な判定がなされて優先度変更処理を終了することになる。なお、この状態のときに、メモリコントローラ６０が新たなリクエストを受け付け可能な状態であれば、出力制御装置５１は上述したリクエスト出力処理を行う。すなわち、バッファ３１〜３４にそれぞれ最先に保持されたリクエストを保持する領域である保持領域３１ａ，３２ａ，３３ａ，３４ａに保持されているリクエストＡ〜Ｄの優先度を比較し、最も優先度の高いリクエストであるリクエストＡを保持するバッファ３２を最優先バッファに設定し、バッファ３２の保持領域３２ａに保持されているリクエストＡをメモリコントローラ６０に出力する。そして、メモリコントローラ６０がリクエストＡを入力し、リクエストＡのアドレス情報，コントロール情報及びデータに基づいてメモリ７０がデータの入出力を行うよう制御する。
【００３０】
一方、メモリコントローラ６０が新たなリクエストを受け付け可能な状態でなく、図５（ａ）に示すようにプロセッサ１１が出力したバンク７１へのリクエストＥを新たに入力制御装置２１が入力した場合には、リクエスト入力処理によってリクエストＥはバッファ３１の保持領域３１ｂに保持される。このとき、優先度変更装置４１は優先度変更処理を行うため、図５（ｂ）に示すようにリクエストＤの優先度が“４”から“１”に変更される。その後メモリコントローラ６０が新たなリクエストを受け付け可能な状態になったとすると、出力制御装置５１は上述したリクエスト出力処理を行う。すなわち、保持領域３１ａ，３２ａ，３３ａ，３４ａに保持されているリクエストＡ〜Ｄのうちで最も優先度の高いリクエストであるリクエストＤを保持するバッファ３１を最優先バッファに設定し、バッファ３１の保持領域３１ａに保持されているリクエストＤをメモリコントローラ６０に出力する。これにより、バッファ３１はＦＩＦＯのためリクエストＥが保持領域３１ａで保持されることになる。そして、この状態で次に出力制御装置５１が上述したリクエスト出力処理を行うと、保持領域３１ａ，３２ａ，３３ａ，３４ａに保持されているリクエストＥ，Ａ，Ｂ，Ｃのうちで最も優先度の高いリクエストであるリクエストＥを保持するバッファ３１を最優先バッファに設定し、バッファ３１の保持領域３１ａに保持されているリクエストＥをメモリコントローラ６０に出力する。これにより、後から保持された最も優先度の高いリクエストＥが、リクエストＡ〜Ｃよりも早くメモリコントローラ６０に出力されることになる。
【００３１】
ここで、第１実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。第１実施形態のバッファ３１〜３４が本発明のリクエスト保持手段に相当し、出力制御装置５１が設定手段及び制御手段に相当し、優先度変更装置４１〜４４が優先度変更手段に相当し、メモリ７０が出力側デバイスに相当する。なお、第１実施形態では、プロセッサシステム１０の動作を説明することにより本発明のリクエスト調停方法の一例も明らかにしている。
【００３２】
以上詳述した第１実施形態では、後から最も優先度の高いリクエストが入力された場合でも、そのリクエストを保持するバッファから優先的にリクエストが出力される。したがって、最も優先度の高いリクエストをできるだけ早く出力することができる。また、優先度変更装置４１〜４４が優先度変更処理を行い、出力制御装置５１がバッファ３１〜３４がそれぞれ最先に保持したリクエストのうち最も優先度の高いリクエストを保持しているバッファを最優先バッファに設定する。したがって、バッファ３１〜３４が保持している全てのリクエストの優先度を比較して最優先バッファを設定する場合に比べて、より短い時間で最優先バッファを設定することができる。
【００３３】
［第２実施形態］
次に、第２実施形態について説明する。図６は、本発明の第２実施形態であるプロセッサシステム１１０の構成の概略を示す構成図である。なお、プロセッサシステム１１０の構成要素のうち、プロセッサシステム１０と同じものについては同じ符号を用いており、動作も同じであるため説明を省略する。
【００３４】
このプロセッサシステム１１０は、リクエスト調停装置１２０以外はプロセッサシステム１０と同様である。また、リクエスト調停装置１２０についても、優先度変更装置４１〜４４の代わりに最高優先度記憶装置９１〜９４を有し、出力制御装置５１の代わりに出力制御装置１５１を有する点以外はリクエスト調停装置２０と同様である。
【００３５】
最高優先度記憶装置９１〜９４は、図示しない記憶領域を備えており、それぞれバッファ３１〜３４に１対１で対応しているプロセッサである。この最高優先度記憶装置９１〜９４は、対応するバッファが新たにリクエストを保持するか又は出力制御装置１５１によって対応するバッファのリクエストがメモリコントローラ６０に出力される毎に、そのバッファが保持する全てのリクエストの優先度のうち最も高い優先度を図示しない記憶領域に記憶する最高優先度記憶処理を行う。
【００３６】
出力制御装置１５１は、最高優先度記憶装置９１〜９４がそれぞれ記憶している優先度を比較して、最も高い優先度を記憶している最高優先度記憶装置に対応するバッファを最優先バッファに設定し、設定した最優先バッファが保持する最先に保持されたリクエストをメモリコントローラ６０に出力するリクエスト出力処理を行う。すなわち、最優先バッファの設定方法が異なるのみで、他の動作は出力制御装置５１と同様である。なお、本実施形態では、最も高い優先度を記憶している最高優先度記憶装置が複数ある場合には、ラウンドロビン方式により最優先バッファを設定するが、他の方式により決定してもよい。
【００３７】
こうして構成された本発明の第２実施形態のプロセッサシステム１１０の動作、特に、プロセッサ１１〜１４から出力されたリクエストの調停を行うときのリクエスト調停装置１２０の動作について説明する。
【００３８】
図７（ａ）は、図５（ａ）と同様に、プロセッサ１２が出力したバンク７２へのリクエストＡ，プロセッサ１３が出力したバンク７３へのリクエストＢ，プロセッサ１３が出力したバンク７４へのリクエストＣ，プロセッサ１４が出力したバンク７１へのリクエストＤをリクエスト調停装置１２０のバッファ３１〜３４が保持した状態を示している。このとき、最高優先度記憶装置９１〜９４は、それぞれ上述した最高優先度記憶処理を行う。その結果、最高優先度記憶装置９１，９２，９３，９４はそれぞれ優先度“４”，“２”，“３”，“３”を記憶することになる。なお、この状態のときに、メモリコントローラ６０が新たなリクエストを受け付け可能な状態であれば、出力制御装置１５１は上述したリクエスト出力処理を行う。すなわち、最高優先度記憶装置９１〜９４がそれぞれ記憶している優先度のうち最も高い優先度“２”を記憶しているのは最高優先度記憶装置９２であるため、最高優先度記憶装置９２に対応するバッファ３２を最優先バッファに設定し、バッファ３２の保持領域３２ａに保持されているリクエストＡをメモリコントローラ６０に出力する。
【００３９】
一方、図５（ｂ）で説明した場合と同様に、メモリコントローラ６０が新たなリクエストを受け付け可能な状態でなく、図７（ｂ）に示すようにプロセッサ１１が出力したバンク７１へのリクエストＥを新たに入力制御装置２１が入力した場合には、リクエスト入力処理によってリクエストＥはバッファ３１の保持領域３１ｂに保持される。このとき、最高優先度記憶装置９１は最高優先度記憶処理を行うため、図７（ｂ）のように最高優先度記憶装置９１が記憶する優先度が“４”から“１”に変更される。その後メモリコントローラ６０が新たなリクエストを受け付け可能な状態になったとすると、出力制御装置１５１は上述したリクエスト出力処理を行う。すなわち、最高優先度記憶装置９１〜９４のうち最も高い優先度“１”を保持している最高優先度記憶装置９１に対応するバッファ３１を最優先バッファに設定し、バッファ３１の保持領域３１ａに保持されているリクエストＤをメモリコントローラ６０に出力する。これにより、バッファ３１はＦＩＦＯのためリクエストＥが保持領域３１ａで保持されることになる。そして、バッファ３１からリクエストＤが出力されると、最高優先度記憶装置９１は最高優先度記憶処理を行い、バッファ３１が保持しているのはリクエストＥのみであるため、リクエストＥの優先度“１”を記憶する。この状態で次に出力制御装置１５１が上述したリクエスト出力処理を行うと、最高優先度記憶装置９１〜９４のうち最も高い優先度“１”を保持している最高優先度記憶装置９１に対応するバッファ３１を最優先バッファに設定し、バッファ３１の保持領域３１ａに保持されているリクエストＥをメモリコントローラ６０に出力する。これにより、後から保持された最も優先度の高いリクエストＥが、リクエストＡ〜Ｃよりも早くメモリコントローラ６０に出力されることになる。
【００４０】
ここで、第２実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。第２実施形態のバッファ３１〜３４が本発明のリクエスト保持手段に相当し、出力制御装置１５１が設定手段及び制御手段に相当し、最高優先度記憶装置９１〜９４が最高優先度保持手段に相当し、メモリ７０が出力側デバイスに相当する。なお、第２実施形態では、プロセッサシステム１１０の動作を説明することにより本発明のリクエスト調停方法の一例も明らかにしている。
【００４１】
以上詳述した第２実施形態では、後から最も優先度の高いリクエストが入力された場合でも、そのリクエストを保持するバッファから優先的にリクエストが出力される。したがって、最も優先度の高いリクエストをできるだけ早く出力することができる。また、最高優先度記憶装置９１〜９４が最高優先度記憶処理を行い、出力制御装置１５１が最高優先度記憶装置９１〜９４のうち最も高い優先度を記憶している最高優先度記憶装置に対応するバッファを最優先バッファに設定する。したがって、バッファ３１〜３４が保持している全てのリクエストの優先度を比較して最優先バッファを設定する場合に比べて、より短い時間で最優先バッファを設定することができる。
【００４２】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００４３】
例えば、上述した実施形態では、バッファ３１〜３４は、それぞれバンク７１〜７４に１対１で対応しているものとしたが、バッファとバンクとが対応してさえいれば、１対１で対応していなくともよい。例えば、バッファが２つであり、１つのバッファがバンク７１，７２に対応し、もう１つのバッファがバンク７３，７４に対応していてもよい。また、バンクが２つであり、バッファ３１，３２が１つのバンクに対応し、バッファ３３，３４がもう１つのバンクに対応していてもよい。
【００４４】
上述した実施形態では、リクエスト調停装置２０，１２０がバッファ３１〜３４を備えるものとしたが、リクエスト調停装置は優先度変更装置４１〜４４又は最高優先度記憶装置９１〜９４と出力制御装置５０又は出力制御装置５０ａとを備えていればよく、バッファ３１〜３４や入力制御装置２１はリクエスト調停装置とは独立した構成としてもよい。このような構成としても、信号線などによりリクエスト調停装置とバッファ３１〜３４とが接続されていれば、本実施形態と同様の効果が得られる。
【００４５】
上述した実施形態では、優先度変更装置４１〜４４及び最高優先度記憶装置９１〜９４はそれぞれ優先度変更処理又は最高優先度記憶処理を行うプロセッサとしたが、同様の処理を行うよう構成した論理回路であるものとしてもよい。例えば、比較器やフリップフロップなどの素子を用いて構成してもよい。
【００４６】
上述した実施形態では、リクエストはプロセッサ毎に予め定められた優先度を有するものとしたが、１つのプロセッサが複数の優先度を有するリクエストを出力するものとしてもよい。例えば、プロセッサ１１は優先度“１”又は“２”のリクエストを出力でき、プロセッサ１１が行う処理の内容に応じていずれの優先度のリクエストを出力するかを決定してもよい。また、プロセッサ１１〜１４のいずれかに異常が発生して現在の設定値を保存する必要がある場合など、緊急に処理を行うときには、異常の発生したプロセッサが最も優先度の高い優先度“０”のリクエストを出力するものとしてもよい。こうすれば、異常の発生したプロセッサが行う緊急時の処理をできるだけ早くメモリ７０に出力することができる。
【００４７】
上述した実施形態では、優先度変更装置４１〜４４又は最高優先度記憶装置９１〜９４が優先度変更処理又は最高優先度記憶処理を行い、その結果を基に出力制御装置５０又は５０ａがリクエスト出力処理を行うが、出力制御装置５０又は５０ａが優先度変更処理又は最高優先度記憶処理も行うものとしてもよい。また、優先度変更処理や最高優先度記憶処理を行わず、メモリコントローラ６０が新たなリクエストを受け付け可能であるときにバッファ３１〜３４が保持する全てのリクエストの優先度を比較して、最も優先度の高いリクエストを保持しているバッファを最優先バッファに設定するものとしてもよい。
【００４８】
上述した実施形態では、プロセッサ１１〜１４が複数のバンク７１〜７４を有するメモリ７０に対するリクエストを調停するリクエスト調停装置２０，１２０について説明したが、複数のバッファが保持するリクエストを出力するにあたってバッファの調停を行うものであれば、どのようなものでも構わない。例えば、リクエストを出力するのは印刷処理を分担して行うプロセッサ１１〜１４ではなく、スキャナ装置の制御を行うプロセッサや外部機器と信号の授受を行うインタフェースなど、どのようなデバイスであってもよい。また、リクエストの出力先は複数のバンク７１〜７４を有するメモリ７０ではなく、複数のプロセッサやインタフェースなど、どのようなデバイスであってもよい。さらに、リクエストはデータの読み出し又は書き込みの要求ではなく、印刷装置を制御する制御信号など、どのようなリクエストであってもよい。
【図面の簡単な説明】
【００４９】
【図１】第１実施形態であるプロセッサシステム１０の構成の概略を示す構成図。
【図２】優先度変更ルーチンの一例を示すフローチャート。
【図３】優先度変更処理の様子を説明する説明図。
【図４】優先度変更処理の様子を説明する説明図。
【図５】リクエスト調停装置２０の動作の様子を説明する説明図。
【図６】第２実施形態であるプロセッサシステム１１０の構成の概略を示す構成図。
【図７】リクエスト調停装置１２０の動作の様子を説明する説明図。
【図８】マルチバンクメモリへのリクエストを保持する場合のバッファの構成図。
【符号の説明】
【００５０】
１０，１１０  プロセッサシステム、１１〜１４  プロセッサ、２０，１２０  リクエスト調停装置、２１  入力制御装置、３１〜３４  バッファ、３１ａ〜３１ｄ，３２ａ〜３２ｄ，３３ａ〜３３ｄ，３４ａ〜３４ｄ  保持領域、４１〜４４  優先度変更装置、５１，１５１  出力制御装置、６０  メモリコントローラ、７０  メモリ、７１〜７４  バンク、８０  バス、９１〜９４  最高優先度記憶装置。
【図１】
2010055246.tif 000003
【図２】
2010055246.tif 000004
【図３】
2010055246.tif 000005
【図４】
2010055246.tif 000006
【図５】
2010055246.tif 000007
【図６】
2010055246.tif 000008
【図７】
2010055246.tif 000009
【図８】
2010055246.tif 000010