(57)【要約】      （修正有）【課題】所定のバスマスタの所定の処理に対して高い優先度を付与し、前記バスマスタの他の処理および他のバスマスタには平等にバスを割り当てることのできるバス調停回路を単純な構成で実現する。【解決手段】複数のバスマスタからバス取得要求を受ける要求受領部と、前記バス取得要求に優先する緊急取得要求を所定のバスマスタから受ける緊急取得要求受領部と、前回のバス調停でバス使用権を取得したバスマスタを示す第１識別情報を次回のバス調停時に供給すべく保持する優先状態保持部と、第１識別情報を取得し、それに基づき回転優先順位方式で各バスマスタからの前記バス取得要求の有無を判定し、バス使用権を与えるバスマスタを決定し得る要求判定部と、緊急取得要求を受けたとき、その緊急取得要求に対応する第２識別情報を第１識別情報に代えてバス要求判定部へ供給する切替部とを備える。【選択図】図１
2008191987.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタの少なくとも一つからバス使用権取得の要求を受けたとき、所定の優先順位で各バスマスタからの要求の有無を判定し、要求をしたバスマスタの一つにバス使用権を与えるバス調停用の回路であって、
各バスマスタからバス取得要求を受ける要求受領部と、
前記バス取得要求に優先する緊急取得要求を所定のバスマスタから受ける緊急取得要求受領部と、
前回のバス調停でバス使用権を取得したバスマスタを示す第１識別情報を次回のバス調停時に供給すべく保持する優先状態保持部と、
第１識別情報を取得し、それに基づき回転優先順位方式で各バスマスタからの前記バス取得要求の有無を判定し、バス使用権を与えるバスマスタを決定し得る要求判定部と、
緊急取得要求を受けたとき、その緊急取得要求に対応する第２識別情報を第１識別情報に代えてバス要求判定部へ供給する切替部とを備え、
前記要求判定部は、供給された第１または第２識別情報が示すバスマスタを最低順位とする回転優先順位方式で各バスマスタからのバス取得要求および緊急取得要求の有無を判定し、
第２識別情報は、その緊急取得要求を発したバスマスタが最高優先順位になるように予め設定されてなることを特徴とするバス調停回路。
【請求項２】
前記切替部は、緊急取得要求を発したバスマスタにバス使用権が与えられた後、第１識別情報をバス要求判定部へ供給し
優先状態保持部は、第２識別情報がバス要求判定部に供給されている間、第１識別情報を保持する請求項１記載のバス調停回路。
【請求項３】
前記バスマスタは、メモリから読み出されたデータを転送し、および／または、メモリへ格納するデータを転送するためのものである請求項１記載のバス調停回路。
【請求項４】
転送されるデータは、ページ単位の画像のデータであり、緊急取得要求は、各ページのデータ転送に対応して発せられる請求項３記載のバス調停回路。
【請求項５】
請求項１記載のバス調停回路を含んでなる半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のバスマスタからバス使用権の取得要求を受け、それらのうち１つのバスマスタにバス使用権を与えるバス調停回路に関する。
【背景技術】
【０００２】
ＣＰＵを用いた装置では、ＣＰＵとその周辺との間、あるいは、周辺と周辺との間でデータをやり取りするためにバスが用いられる。バスを用いて、主体的にデータをやり取りし得るものは、バスマスタと呼ばれる。単純な構成の装置では、ＣＰＵのみがバスマスタである。しかし、周辺から周辺へデータを高速で転送する場合にダイレクト・メモリ・アクセス・コントローラ（ＤＭＡ）がバスマスタとなる装置が多用されている。例えば、デジタル複合機やプリンタなどの画像形成装置では、通例、画像データを高速で転送するためにＤＭＡコントローラが使用される。
【０００３】
複数のバスマスタを有する装置では、ある瞬間において一つのバスマスタのみがバスの使用権を獲得し得る。バスの使用権を獲得したものが、狭義のバスマスタである。以下、この明細書において特に断りのない場合、バスマスタの語は、バスの使用権を獲得し得るもの（広義のバスマスタ）の意味で用いる。
【０００４】
複数のバスマスタから同時にバス使用権の取得要求があった場合、優先順位の高いものから順にバスを使用してデータを転送させるようなバス調停（バス・アービトレーション）がなされる。バス調停を実現するため、各バスマスタからのバス使用権の取得要求を受けてそれらのうち１つのバスマスタにバス使用権を与えるバス調停回路が用いられる。
【０００５】
ここで、各バスマスタに対して前記優先順位をどのように付与するかが問題になる。単純な手法は固定の優先順位を各バスマスタに割り当てるもの（固定優先順位方式）であるが、優先順位の高いバスマスタが頻繁にバス使用権の取得要求を発すると、そのバスマスタに大半の時間が割り当てられ、優先順位の低いバスマスタに処理が回らないことが起こる。固定優先順位方式の短所を克服するため、各バスマスタに割り当てる優先順位を循環式に変える回転優先順位方式（ラウンド・ロビン方式）が多用されている。回転優先順位方式では、各バスマスタに対して予め定められた循環的な優先順位に従って取得要求を判定する。このとき、前回のバス調停でバス使用権を獲得したバスマスタが最も低い優先順位、即ち順位の末尾になるように各バスマスタの優先順位が割当てられる。複数回のバス調停を通してみると、各バスマスタの平均的な優先順位は等しい。従って、特定のバスマスタに大半の時間が割り当てられるといった不公平は生じない。その反面、バス使用権を緊急に取得する必要が生じた場合であっても、例えば、そのバスマスタが直近のバス調停でバス使用権を獲得していたときは、次回に最下位の優先順位が割り当てられてしまう。その結果、同時に取得要求をしている他のバスマスタがあれば、他のバスマスタが優先され、それらの処理が終わるまでバス使用権取得待ちの状態におかれてしまう。
【０００６】
このように、固定優先順位方式と回転優先順位方式には、それぞれの長所と短所がある。固定優先順位方式と回転優先順位方式のいずれか一方の手法だけでは適当でない用途が存在する。例えば、特定のバスマスタは、バス使用権の取得要求を行った後速やかにバスを使用する必要があり、他のバスマスタは平等にバスを使用したいといったような用途がある。このような用途に対しては、固定優先順位方式と回転優先順位方式の長所を併せ持った柔軟なバス調停回路が求められる。
【０００７】
これに対し、例えば、上位の優先順位を保持すべきデータ転送路と、残りのデータ転送回路とにデータ転送路とに分割し、前者に対して固定優先順位として上位の優先順位を設定し、後者に対して回転優先順位を適用するものが知られている（例えば、特許文献１参照）。また、優先順位の異なる複数のグループのいずれかに属するように複数のバスマスタを分割し、バス調停回路はいずれかのグループに対して使用許可を与え、かつ、その場合にグループに属するバスマスタからのバス要求の数だけ連続して使用許可を与えるようにし、バスマスタの切替えに要する時間の低減を図りながら公平なバス調停を実現しようとするものが知られている（例えば、特許文献２参照）。さらに、回転優先順位判定回路の外部にバス使用要求信号をマスクするマスク信号生成回路を設け、優先順位の低い装置にもバスを使用する機会を与えるようにしたものが知られている（例えば、特許文献３参照）。
【特許文献１】特開２００５−７１０４９号公報
【特許文献２】特開２００１−１７５５８９号公報
【特許文献３】特開平５−５３９７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
同一のバスマスタにおいて、特定の処理だけを速やかに処理し、他の処理はバスを平等に割り当てたい場合がある。例えば、画像形成装置において、原稿の画像は、原稿を走査してＣＣＤなどのイメージセンサで読み取り、イメージセンサでサンプリングされた画像の信号をＡ／Ｄ変換器を通してデジタル化し、デジタル化された画像（画像データ）を画像メモリに格納する。画像データを画像メモリに格納するとき、画像データのＤＭＡ転送が行われる。一旦画像メモリに格納された画像データは、通常複数段階の画像処理が施された後、画像形成部へ出力される。各段階の画像処理においては、画像メモリから画像メモリへのＤＭＡ転送が行われる。画像形成部への出力時には、画像メモリから画像形成部へのＤＭＡ転送が行われる。イメージセンサから出力された原稿の画像データを画像メモリに格納する処理は、高い優先順位で、要求後直ちに画像データの転送を開始することが求められる。一旦原稿の走査が始まると、所定量の処理を完了するまでは機械的、電気的に一時停止させることができない。イメージセンサと画像メモリとの間の転送路には、有限容量の入力バッファが配置されており、イメージセンサと画像メモリの転送速度の差をある程度吸収する。入力バッファが満杯にならないように画像データを転送しなければならない。
【０００９】
画像メモリから画像形成部へのデータ転送についても、同様のことがいえる。一旦画像形成部が画像形成を開始すると、所定量の処理を完了するまでは画像形成を機械的、電気的に一時停止させることができない。画像メモリと画像形成部との間の転送路には、有限容量の出力バッファが配置されており、画像メモリと画像形成部の転送速度の差をある程度吸収する。出力バッファが空にならないように画像データを転送しなければならない。それに比べて、画像メモリから画像メモリへの転送は、所定期間内の処理を保証する必要はなく、優先順位を低くしてもよい。ただし、処理がずっと待たされていたのでは、いつまでたっても出力すべきデータの準備ができないので、平等にバス使用権を配分することが好ましい。
【００１０】
しかし、イメージセンサからのデータ転送であっても、例えば、原稿を読み取る速度が異なる複数の動作モードを有する画像形成装置がある。また、バス、ＤＭＡおよび画像メモリを含む構成部がユニット化されてなり、高速で原稿を読み取る画像形成装置と低速で原稿を読み取る画像形成装置とに同一種類のユニットが使用されることがある。このようなケースで、高速で原稿を読み取るモード（高速モード）と低速で原稿を読み取るモード（読取モード）の各モードに対して画像デ―タの転送処理が最適化できることが好ましい。即ち、高速モード時は、画像データの転送を高い優先順位で処理することが好ましい。一方、低速モード時は、画像データの転送を高い優先順位で処理する必要は必ずしも存在しない。むしろ画像形成部への出力を優先するために、優先順位を下げるほうが好ましい場合もある。
このような用途では、特定のバスマスタに高い優先順位を固定的に割り当てることは好ましくない。
【００１１】
この発明は、前述のような事情を考慮してなされたものであって、所定のバスマスタの所定の処理に対して高い優先度を付与し、前記バスマスタの他の処理および他のバスマスタには平等にバスを割り当てることのできるバス調停回路を、単純な構成で実現するものである。
【課題を解決するための手段】
【００１２】
この発明は、複数のバスマスタの少なくとも一つからバス使用権取得の要求を受けたとき、所定の優先順位で各バスマスタからの要求の有無を判定し、要求をしたバスマスタの一つにバス使用権を与えるバス調停用の回路であって、各バスマスタからバス取得要求を受ける要求受領部と、前記バス取得要求に優先する緊急取得要求を所定のバスマスタから受ける緊急取得要求受領部と、前回のバス調停でバス使用権を取得したバスマスタを示す第１識別情報を次回のバス調停時に供給すべく保持する優先状態保持部と、第１識別情報を取得し、それに基づき回転優先順位方式で各バスマスタからの前記バス取得要求の有無を判定し、バス使用権を与えるバスマスタを決定し得る要求判定部と、緊急取得要求を受けたとき、その緊急取得要求に対応する第２識別情報を第１識別情報に代えてバス要求判定部へ供給する切替部とを備え、前記要求判定部は、供給された第１または第２識別情報が示すバスマスタを最低順位とする回転優先順位方式で各バスマスタからのバス取得要求および緊急取得要求の有無を判定し、第２識別情報は、その緊急取得要求を発したバスマスタが最高優先順位になるように予め設定されてなることを特徴とするバス調停回路を提供する。
また、この発明は、前記バス調停回路を含んでなる半導体装置を提供する。
【発明の効果】
【００１３】
この発明のバス調停回路は、緊急取得要求を受けたとき、その緊急取得要求に対応する第２識別情報を第１識別情報に代えてバス要求判定部へ供給する切替部を備え、第２識別情報が、その緊急取得要求を発したバスマスタが最高優先順位になるように予め設定されてなるので、緊急取得要求を受けたとき、その要求を発したバスマスタを最初に判定することができる。また、前記要求判定部が、供給された第１または第２識別情報が示すバスマスタを最低順位とする回転優先順位方式で各バスマスタからのバス取得要求および緊急取得要求の有無を判定するので、前記バスマスタから取得要求を受けたときや他のバスマスタから取得要求を受けたときは回転優先順位方式でバス要求を判定する。
【００１４】
また、この発明のバス調停回路は、主として緊急取得要求受領部、優先状態保持部および切替部によって緊急取得要求に対する優先順位の切替えが処理される。それらの付加部分とバス取得要求を処理する部分、即ち、従来の回転優先順位方式のバス調停部分との機能分担が明確である。従って、従来の回転優先順位方式のバス調停回路に緊急取得要求受領部、優先状態保持部および切替部を付加する単純な構成で緊急取得要求に対応することができる。
【００１５】
前記切替部は、緊急取得要求を発したバスマスタにバス使用権が与えられた後、第１識別情報をバス要求判定部へ供給し優先状態保持部は、第２識別情報がバス要求判定部に供給されている間、第１識別情報を保持してもよい。このようにすれば、緊急取得要求を発したバスマスタにバス使用権が与えられた後のバス調停は、第１識別情報、即ち、バス取得要求の処理に基づく優先順位で判定される。即ち、バス取得要求は回転優先順位方式で処理され、緊急取得要求が割り込んで処理されても、その後の優先順位は緊急取得要求の処理によって影響を受けない。
【００１６】
また、前記バスマスタは、メモリから読み出されたデータを転送し、および／または、メモリへ格納するデータを転送するためのものであってもよい。メモリを転送元および／または転送先としたデータ転送を行うＤＭＡコントローラは、この発明に係るバスマスタの典型例である。
【００１７】
されにまた、転送されるデータは、ページ単位の画像のデータであり、緊急取得要求は、各ページのデータ転送に対応して発せられてもよい。画像データは、この発明に係るバスを用いて転送されるデータの典型例である。
好ましい態様は、組み合わせることができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を用いてこの発明をさらに詳述する。なお、以下の説明は、すべての点で例示であって、この発明を限定するものと解されるべきではない。
装置の全体構成
図２は、この発明のバス調停回路が用いられる装置のバスとその周辺の構成例を示すブロック図である。
【００１９】
図２で、バス・インターフェース部１３は、装置１が有する複数の処理ブロック（周辺２９）が、メモリ２３、ＣＰＵ２１および他の周辺との間でバスを介してデータやコマンドをやり取りするためのブロックである。やり取りされるコマンドは、予めその形式と内容が定められている。各ブロックは、周辺Ａ、周辺Ｂ、周辺Ｃ、…周辺ｎとして示している。例えば、画像形成装置において、周辺Ａは原稿の画像を読み取り画像データとして提供するブロック、周辺Ｂは画像データをページ単位で格納するハードディスク装置、周辺Ｃは画像データに基づいて画像を形成して印刷を行う画像形成部、他の周辺（周辺ｎを含む）は、画像データに対して画像フィルタ処理、色補正処理、中間調の特性補正等の各種画像処理をそれぞれ行う画像処理部である。各周辺２９は、それぞれが請求項にいうバスマスタであり、ＤＭＡによるデータ転送が可能である。各周辺２９とバスとの間には、データ転送時の転送元と転送先の処理速度の差を吸収するためのバッファ１５が設けられている。即ち、周辺Ａとバスとの間にバッファＡが設けられ、周辺Ｂとバスとの間にバッファＢが設けられ、周辺Ｃとバスとの間にバッファＣが設けられている。他の周辺についても同様である。
【００２０】
バス・インターフェース部１３には、優先順位判定回路１１が接続されている。優先順位判定回路１１は、請求項にいうバス調停回路に相当する。各周辺２９は、コマンドの一つとして、データ転送要求を出力する。バス・インターフェース部１３は、データ転送要求を認識してバス使用権の取得要求信号Req*あるいは緊急取得要求信号EmReq*を優先順位判定回路１１へ出力する。優先順位判定回路１１は、それらの要求信号に応じてどの周辺にバス使用権を付与するかを決定し、決定した周辺に対してバス使用権付与信号Ack*を出力する。
【００２１】
図２で、取得要求信号Req*は、各周辺に対応したｎ本の信号がある。緊急取得要求信号EmReq*は、周辺Ａだけに割り当てられている。即ち、EmReq*Aの１本のみの信号である。周辺Ａから送られるデータ転送要求のコマンドには、周辺Ａが転送しようとするデータの種類についての情報（例えば、通常の取得要求信号か緊急取得要求信号かを示すフラグ）が付加されている。バス・インターフェース部１３は、付加された情報に基づいてReq*Aを出力すべきかEmReq*Aを出力すべきかを判断し、その結果に応じた信号を出力する。なお、この実施の形態において、緊急取得要求信号EmReq*Aを出力するときは必ずReq*Aも同時に出力する。ただし、これは、後述する優先順位判定回路１１の具体的な構成に依存するものであって、この発明を限定するものではない。例えば、原稿画像を読み取った画像データを高速モードで転送するときはEmReq*Aを出力する。一方、低速モードで画像を読み取る場合はReq*Aを出力する。
【００２２】
なお、この実施の形態では、緊急取得要求信号を発するのは周辺Ａの一つだけであるが、この発明は、これに限定されるものではなく、複数の周辺が緊急取得要求信号を発し得るように構成してもよい。
【００２３】
バスが開放されているとき、優先順位判定回路１１は、先にバス使用権の取得要求を受け付けた周辺にバス使用権を付与する。バス使用権を獲得した周辺は、データ転送を行う。例えば、バスが開放されているときに周辺Ｃのみがバス使用権を要求すると、優先順位判定回路１１は、周辺Ｃにバス使用権を付与することを決定し、Ack*C信号を出力する。周辺Ｃは、Ack*C信号が出力されたことを認識すると、メモリ２３から周辺Ｃへ所定量のデータ転送を行う。その間、他の周辺は、バスを使用することができない。例えば、周辺Ｃのデータ転送中に周辺Ｂがバス使用権の取得要求を行うと、Req*C信号が出力されるが、周辺Ｃのデータ転送が終了するまで要求は保留される。周辺Ｃの転送が終了し、バスが開放されると、優先順位判定回路１１は、そのときアサートされているReq*信号およびEmReq*信号のいずれか一つにバス使用権を付与すべく、判定を行う。各Req*信号については、回転優先順位方式を用いてバス使用権を付与する。EmReq*Aがアサートされている場合は、いずれのReq*よりも優先して周辺Ａにバス使用権を付与する。これについては、後に詳述する。
【００２４】
バスは、バス変換部２７を介してシステムバスに接続される。システムバスには、ＣＰＵ２１、メモリ２３が接続されている。システムバス・インターフェース部２５は、ＣＰＵ２１およびメモリ２３がシステムバスを介してデータをやり取りできるようにするブロックである。メモリの一例は、ＳＤＲＡＭである。バス変換部２７は、互いに構成の異なるバスとシステムバスとの間でデータのやり取りをできるようにするためのブロックである。一例では、バスはＰＣＩバスである。システムバスは、メモリ２３の種類に応じて決定される。
【００２５】
ＣＰＵ２１は、装置１を制御する制御部として機能するものである。メモリ２３は、バスを介して転送されるデータを格納するほか、ＣＰＵ２１が実行するプログラムを格納する。さらに、メモリ２３には、緊急取得要求信号の出力を許可するか否かを設定するフラグ領域として、緊急取得要求許可／禁止フラグ２４が設けられている。前記フラグは、ＣＰＵ２１によって設定／変更可能である。そして、バス・インターフェース部１３は、前記フラグの状態を直接参照することができるように構成されている。ＣＰＵ２１は、電源オン後の初期化処理で、前記フラグをオンあるいはオフに設定する。周辺ＡからEmReq*によるデータ転送を行うようコマンドが送られてきたとき、バス・インターフェース部１３は、緊急取得要求許可／禁止フラグ２４を参照する。前記フラグが「許可」状態のとき、EmReq*AをReq*Aと共に出力する。一方、前記フラグが「禁止」状態のときReq*Aのみを出力し、EmReq*Aを出力しないように構成されている。即ち、装置１は、ＣＰＵの実行するプログラムの内容に応じて、EmReq*Aを使用するか否かを変更きるように構成されている。ＣＰＵ２１が前記フラグの設定を変更すると、変更後の優先順位判定に変更された内容が反映される。
【００２６】
優先順位の判定
次に、優先順位判定回路１１の機能について説明する。複数の周辺から同時にバス使用権の取得要求がされている場合、回転優先順位判定回路１１は、それらの一つの周辺にバス使用権を付与する。その判断に際して、各周辺に割り当てた優先順位に基づいて最も優先順位の高い周辺にバス使用権を付与する。
【００２７】
図３は、この発明の優先順位判定回路が最優先の周辺を判定する際のルールを示す説明図である。周辺が、Ａ，Ｂ，Ｃ，Ｄの４つの場合である。この発明の優先順位判定回路は、通常の取得要求信号に対しては回転優先順位方式に基づいて各周辺に優先順位を割り当てる。従って、判定時の優先順位は、前回判定時の優先順位によって異なる。図３で、鎖線の矢印は、通常の取得要求信号に基づいて判定を行う都度優先順位が切り替わることを示している。たとえば、前回最優先のものが周辺Ｄであった場合、今回の判定では周辺Ａが最優先である。優先順位判定回路１１は、周辺Ａ（１）→周辺Ｂ→周辺Ｃ→周辺Ｄの順にReq*の有無を判断していき、最初にReq*がアサートされているものにバス使用権を付与する。次回の判定においては、周辺Ｂが最優先であり、周辺Ｂ→周辺Ｃ→周辺Ｄ→周辺Ａ（１）の順にReq*の有無を判断する。以下、同様である。これを、まとめたものが表１である。
【００２８】
【表１】
2008191987.tif 000003
【００２９】
EmReq*Aがアサートされた場合、優先順位判定回路１１は、前回判定時の優先順位にかかわらず周辺Ａを最優先で処理する。実線の矢印は、この場合の経路を示している。次回の判定においては、EmReq*Aがなかった場合と同様の優先順位で判定する。たとえば、前回最優先のものが周辺Ｄであった場合にEmReq*Aがアサートされると、優先順位判定回路１１は、最初に周辺Ａにバス使用権を付与する（周辺Ａ（５））。次回の優先順位判定において、優先順位判定回路１１は、周辺Ａ（１）→周辺Ｂ→周辺Ｃ→周辺Ｄの順にReq*の有無を判断する。ここで、次回の優先順位判定でも、EmReq*Aがアサートされていると、優先順位判定回路１１は再び周辺Ａにバス使用権を付与するように構成されている。これが続くと他の周辺にバス使用権が付与されない。これは、周辺Ａ側で、緊急取得要求を連続して発しないようにすることで回避できる。
【００３０】
EmReq*Aのネゲートからアサートまでの間隔が所定期間以上になるような回路を構成することは、当業者に容易である。この問題は、装置の制御に用いる事象をどのように選択するかという設計思想の問題といえる。合理的な設計により、EmReq*Aの連続発生が回避できる。
【００３１】
優先順位判定回路の構成
図１は、この発明の優先順位判定回路１１の構成例を示すブロック図である。周辺が、Ａ，Ｂ，Ｃ，Ｄの４つの場合を示している。図１で、回転優先判定回路３１は、公知のラウンドロビン方式の優先順位判定回路である。回転優先判定回路３１は、前回の優先順位（前優先状態）に基づいて、今回の判定の優先順を決定し、「現優先状態」として出力する。現優先状態は、Ａ，Ｂ，Ｃ，Ｄ４つの周辺に対応する４ビットのデータであるが、図面の表記を簡略化するために「４」と信号線上の「／」とで４ビットの２値信号を示している。図１の他の信号も同様の表記方法を採用している。そのような明記のない信号は、１ビットの２値信号である。周辺の数が４以外の場合の構成は、図１から容易に類推できる。
【００３２】
また、回転優先判定回路３１は、いずれの周辺にバス使用権を付与するかを示す「バス使用権付与」信号を出力する。Ａｃｋ生成回路３９は、前記信号を受けて、信号をアサートするタイミングを整え、Ack*信号を出力する。また、Ａｃｋ生成回路３９には、Abt_end信号が入力される。Abt_end信号は、バス使用権を獲得した周辺がデータ転送を終了したことを知らせる信号である。回転優先判定回路３１は、請求項にいう要求判定部に相当する。
【００３３】
Ｒｅｑ受付許可回路４１は、Abt_end信号がアサートされている間、回転優先判定回路３１へReq*信号をゲートする回路である。即ち、Abt_end信号がネゲートされている間、回転優先判定回路３１へのReq*信号は、すべてネゲートされる。Req*信号が全てネゲートされている間、回転優先判定回路３１は、「現優先状態」を保持する。換言すれば、「現優先状態」が変化するのは、Abt_end信号がアサートされている間に限られる。Ｒｅｑ受付回路４１は、請求項にいう要求受領部に相当する。
【００３４】
回転優先判定回路３１から出力される「現優先状態」は、イネーブル入力付きＤフリップフロップ３３のＤ入力と接続されている。フリップフロップ３３には、一定周期のクロックが供給され、クロックに同期して内部の状態が更新される。イネーブル入力Ｅへの信号がアサートされているとき、出力Ｑからは、前記クロックに同期して入力Ｄの状態と一致する信号（「状態ラッチ」信号）が出力される。イネーブル入力Ｅへの信号がネゲートされた状態では、Ｑの状態が更新されず、直前の「現優先状態」を保持する。イネーブル入力Ｅへは、EmReq*Aの状態に等しい信号em_onが反転された信号が入力される。従って、em_on信号(即ち、EmReq*A)がアサートされている間、Ｄフリップフロップ３３からは、直前の「現優先状態」が保持された信号Ｑが出力される。em_on信号がネゲートされている間、Ｄフリップフロップ３３からは、現優先状態に追従した信号Ｑが出力される。Ｄフリップフロップ３３は、請求項にいう優先状態保持部に相当する。
【００３５】
Ｄフリップフロップ３３の出力Ｑは、セレクタ３５の一方の入力（０で選択される入力）に接続されている。他方の入力には、EmReq*Aがアサートされたときに、周辺Ａに最高優先順位を与えるため、「前優先状態」を周辺Ｄにする信号pre_portが入力される。この信号は、レジスタ３７に保持されている。セレクタ３５は、EmReq*Aの状態に等しい信号em_on応じて切り替わる。em_onがアサートされると、セレクタ３５は、pre_port信号を選択する。em_onがネゲートされているとき、セレクタ３５は、「状態ラッチ」信号を選択する。セレクタ３５は、請求項にいう切替部に相当する。また、「状態ラッチ」信号、pre_port信号は、請求項にいう第１識別信号、第２識別信号にそれぞれ相当する。
【００３６】
優先順位判定回路の動作
図４は、図３の優先順位判定回路１１の信号の状態を時系列的に示す説明図である。図４の横軸は時間の経過であり、縦方向には各信号を示す。各信号がアサートされた状態をハイレベルで示している。以下、図４に沿って、優先順位判定回路１１の動作を説明する。
【００３７】
１．第１回目のバス調停（時刻t0〜t2）
まず、優先順位判定回路１１は、時刻t0で図中第１回目のバス調停を行う。このとき、Req*A、Req*B、Req*Dがアサートされており、EmReq*Aはネゲートされている。「前優先状態」は0b1000、即ち、周辺Ｄが前回判定時に最優先であったとする。なお、ここでは４ビットの信号の状態を表記するために前記したような二進表記を用いる。ビット０〜３の順に、周辺Ａ，Ｂ，Ｃ，Ｄに対応しているものとする。
【００３８】
このとき、回転優先順位判定回路３１は、「前優先状態」の状態から、周辺Ａに最高優先順位を与える（図３および表１参照）。即ち、「現優先状態」として、0b0001、が出力される。その優先順位に従って、Req*Aが最初に判定される。Req*Aがアサートされているので、時刻t1において回転優先順位判定回路３１は、バス使用権付与0b0001を出力する。それに応じて、Ａｃｋ生成回路３９からAck*Aが出力される。さらに、em_onがネゲートされているので、「状態ラッチ」として「現優先状態」と同じ信号0b0001が出力され、さらに、それが「前優先状態」としてセレクタ３５から出力される。Ack*Aの出力に応答して、周辺Ａは時刻t2でReq*Aをネゲートする。また、獲得したバスを介してデータの転送を開始する。
【００３９】
２．第２回目のバス調停（時刻t3〜t5）
時刻t3で周辺Ａのデータの転送が終了すると、バス使用権を獲得していた周辺Ａは、Abt_endをアサートする。Ａｃｋ生成回路３９は、Abt_end信号がアサートされると、それに応答してAck*A信号をネゲートする。また、Abt_end信号がアサートされると、Ｒｅｑ受付許可回路４１のゲートが開き、回転優先順位判定回路３１に各Req*信号の状態が入力される。いずれかのReq*信号がアサートされていると、回転優先順位判定回路３１は、バス調停の動作を行う。
【００４０】
図４では、Req*BとReq*Dがアサートされている。そこで、優先順位判定回路１１は、第２回目のバス調停を行う。このとき、前優先状態が0b0001即ち周辺Ａであるので、周辺Ｂに最高優先順位を与える。即ち、「現優先状態」として0b0010が出力される。その優先順位に従って、Req*Bが最初に判定される。Req*Bがアサートされているので、バス使用権付与として0b0010が出力され、Ａｃｋ生成回路３９からAck*Bが出力される。さらに、em_onがネゲートされているので、「現優先状態」と同じ信号0b0010が「状態ラッチ」として出力され、さらに、それが「前優先状態」としてセレクタ３５から出力される。Ack*Bの出力に応答して、周辺Ｂは時刻t5でReq*BとAbt_end信号をネゲートする。また、獲得したバスを介してデータの転送を開始する。
【００４１】
３．第３回目のバス調停（時刻t7〜t9）
時刻t7で周辺Ｂのデータの転送が終了すると、バス使用権を獲得していた周辺Ｂは、Abt_endをアサートする。Ａｃｋ生成回路３９は、Abt_end信号がアサートされると、それに応答してAck*B信号をネゲートする。また、Abt_end信号がアサートされると、Ｒｅｑ受付許可回路４１のゲートが開き、回転優先順位判定回路３１に各Req*信号の状態が入力される。いずれかのReq*信号がアサートされていると、回転優先順位判定回路３１は、バス調停の動作を行う。このとき、EmReq*A、Req*AおよびReq*Dがアサートされている。Req*Aは、EmReq*Aと同時に、時刻t6でアサートされたものである。
【００４２】
ここで時間を遡り、時刻t6でEmReq*Aがアサートされたときの事象を説明する。特に、Ｄフリップフロップ３３とセレクタ３５の動作を説明する。EmReq*Aがアサートされると、em_on信号がアサートされる。すると、Ｄフリップフロップ３３のイネーブル入力Ｅへの信号がネゲートされる。その結果、出力Ｑ（「状態ラッチ」信号）は、入力Ｅがネゲートされた時点の「現優先状態」、00b0010を保持する。イネーブル入力Ｅが再びアサートされるまで出力Ｑが保持される。また、em_on信号がアサートされると、セレクタ３５は、pre_port信号を選択するように切替わる。その結果、セレクタ３５からの出力、即ち「前優先状態」は、pre_port信号に等しくなる。ここで、pre_port信号は、周辺Ｄに対応する値0b1000としてレジスタ３７に保持されている。EmReq*Aがネゲートされるまで、Ｄフリップフロップ３３とセレクタ３５の状態は変わらない。
【００４３】
再び、時刻t7に戻る。時刻t7では前優先状態が0b1000即ち周辺Ｄであるので、優先順位判定回路１１は、周辺Ａに最高優先順位を与える。その優先順位に従って、Req*Aが最初に判定される。Req*Aがアサートされているので、時刻t8においてバス使用権付与として0b0001が出力される。また、Ａｃｋ生成回路３９からAck*Aが出力される。さらに、「現優先状態」として0b0001が出力される。em_onがアサートされているので、「状態ラッチ」として以前の状態0b0010が保持され、セレクタ３５からは、「前優先状態」として、pre_portの値、0b1000が出力される。
【００４４】
時刻t9で、周辺ＡはAck*Aの出力に応答して、EmReq*AとReq*AとAbt_end信号とをネゲートする。また、獲得したバスを介してデータの転送を開始する。EmReq*Aがネゲートされると、em_onがネゲートされ、Ｄフリップフロップ３３の出力Ｑ（「状態ラッチ」信号）は、そのときの「現優先状態」に等しい0b0010になるが、これは結局前の状態と同じである。また、セレクタ３５は、「状態ラッチ」を選択するように切り替わる。従って、「前優先状態」は0b0010になる。
【００４５】
４．第４回目のバス調停（時刻t10〜t12）
時刻t10で周辺Ａのデータの転送が終了すると、バス使用権を獲得していた周辺Ａは、Abt_endをアサートする。Ａｃｋ生成回路３９は、Abt_end信号がアサートされると、それに応答してAck*A信号をネゲートする。また、Abt_end信号がアサートされると、Ｒｅｑ受付許可回路４１のゲートが開き、回転優先順位判定回路３１に各Req*信号の状態が入力される。いずれかのReq*信号がアサートされていると、回転優先順位判定回路３１は、バス調停の動作を行う。
【００４６】
時刻t10では、Req*Dがアサートされている。そこで、優先順位判定回路１１は、第４回目のバス調停を行う。このとき、前優先状態が0b0010即ち周辺Ｂであるので、周辺Ｃに最高優先順位を与え、周辺Ｃ→周辺Ｄ→周辺Ａ→周辺Ｂの優先順位に従って、Req*信号の有無を調べる。その結果、Req*Dをアサートしている周辺Ｄにバス使用権与えられる。時刻t11で、優先順位判定回路１１は、バス使用権付与として0b1000を出力する。それに応じて、Ａｃｋ生成回路３９からAck*Dが出力される。また、「現優先状態」として0b1000を出力する。さらに、em_onがネゲートされているので、「状態ラッチ」として「現優先状態」と同じ信号0b1000が出力される。さらに、それが「前優先状態」としてセレクタ３５から出力される。周辺Ｄは、Ack*Dの出力に応答し、時刻t11でReq*DとAbt_end信号をネゲートする。また、獲得したバスを介してデータの転送を開始する。
【００４７】
５．第５回目のバス調停（時刻t13〜t15）
時刻t13で周辺Ｄのデータの転送が終了すると、バス使用権を獲得していた周辺Ｄは、Abt_endをアサートする。Ａｃｋ生成回路３９は、Abt_end信号がアサートされると、それに応答してAck*D信号をネゲートする。また、Abt_end信号がアサートされると、Ｒｅｑ受付許可回路４１のゲートが開き、回転優先順位判定回路３１に各Req*信号の状態が入力される。いずれかのReq*信号がアサートされていると、回転優先順位判定回路３１は、バス調停の動作を行う。
【００４８】
前述した手順と同様にして、優先順位判定回路１１は、バス調停を行う。このとき、前優先状態が0b1000即ち周辺Ｄであるので、周辺Ａに最高優先順位を与え、周辺Ａ→周辺Ｂ→周辺Ｃ→周辺Ｄの優先順位に従って、Req*信号の有無を調べる。その結果、Req*Cをアサートしている周辺Ｃにバス使用権与えられる。時刻t14で、優先順位判定回路１１は、バス使用権付与として0b1000を出力する。それに応じて、Ａｃｋ生成回路３９からAck*Cが出力される。また、「現優先状態」として0b1000を出力する。周辺Ｃは、Ack*Cの出力に応答し、時刻t15でReq*CとAbt_end信号をネゲートする。また、獲得したバスを介してデータの転送を開始する。
【００４９】
優先順位判定回路の詳細
図５は、図１の優先順位判定回路１１のより詳細な回路構成を示す説明図である。図５中で、図１の各ブロックに対応する部分には、対応する符号を付している。図１のブロックが複数の素子で構成されるものには、それらを破線で囲み符号を付している。図５の回路図を参照すれば、優先順位判定回路の動作がより明確に理解できるであろう。
図５の回路は、半導体装置上に集積される回路の一部であってもよい。
【００５０】
なお、図５に図示していないが、Ｄフリップフロップ等のクロック入力端子には、システムクロックが供給されて動作する。また、図５で、信号線状の「／」とその付近の数（４または１）は、信号のビット数を示している。
【００５１】
図５に示すように、回転優先順位判定回路３１は、複数のセレクタから構成される。そのうち、４入力のセレクタ３１ａは、その出力が「現優先状態」である。「前優先状態」は、セレクタ３１ａの選択信号である。例えば、「前優先状態」が、0b1000（周辺Ｄに対応）の場合、セレクタ３１ａは、Req*A優先回路からの入力を選択する。Req*A優先回路は、Req*A→Req*B→Req*C→Req*Dの優先順位で、最初にアサートされている信号がのビットが1、他のビットが0の信号を出力する回路である。また、いずれのReq*信号もアサートされていなければ、そのときのAck*信号を出力する。
【００５２】
回転優先順位判定回路３１に入力されるReq*信号は、Ｒｅｑ受付許可回路４１でAbt_end信号によってゲートされている。いずれかのReq*信号がアサートされるのは、Abt_end信号がアサートされたときに限られる。従って、Abt_end信号がネゲートされている間、セレクタ３１ａへの４つの入力は、いずれもそのときのAck*信号である。即ち、Abt_endがネゲートされている間、「現優先状態」は、Ack*信号の状態を保持する。
【００５３】
前述した実施の形態の他にも、この発明について種々の変形例があり得る。それらの変形例は、この発明の範囲に属さないと解されるべきものではない。この発明には、請求の範囲と均等の意味および前記範囲内でのすべての変形とが含まれるべきである。
【図面の簡単な説明】
【００５４】
【図１】この発明の優先順位判定回路の構成例を示すブロック図である。
【図２】この発明のバス調停回路が用いられる装置のバスとその周辺の構成例を示すブロック図である。
【図３】この発明の優先順位判定回路が最優先の周辺を判定する際のルールを示す説明図である。
【図４】この発明の優先順位判定回路の信号の状態を時系列的に示す説明図である。
【図５】図１の優先順位判定回路のより詳細な回路構成を示す説明図である。
【符号の説明】
【００５５】
１    装置
１１    優先順位判定回路
１３    バス・インターフェース部
１５Ａ、１５Ｂ、１５Ｃ、…１５ｎ  バッファ
２１    ＣＰＵ
２３    メモリ
２４    緊急取得要求許可／禁止フラグ
２５    システムバス・インターフェース部
２７    バス変換部
２９    周辺
３１    回転優先順位判定回路
３３    イネーブル入力付きＤフリップフロップ
３５    セレクタ
３７    レジスタ
３９    Ａｃｋ生成回路
４１    Ｒｅｑ受付許可回路
【図１】
2008191987.tif 000004
【図２】
2008191987.tif 000005
【図３】
2008191987.tif 000006
【図４】
2008191987.tif 000007
【図５】
2008191987.tif 000008