(57)【特許請求の範囲】
【請求項１】
外部から入力されるバスリトライ信号の有無を判定するバスリトライ判定部と、
前記バスリトライ判定部により検出された前記バスリトライ信号に応答して実行中のバスサイクルを中断した後に再実行するバスサイクル制御部と、
前記バスサイクルが中断した後に他の処理要求の有無を判定するインタラプト判定部と、
前記インタラプト判定部により検出された前記他の処理要求を前記バスサイクルの再実行前に実行するインタラプト制御部と
を有するマイクロプロセッサ。
【請求項２】
バスリトライ信号を出力するバスリトライ出力装置と、
前記バスリトライ出力装置から出力される前記バスリトライ信号の有無を判定するバスリトライ判定部と、前記バスリトライ判定部により検出された前記バスリトライ信号に応答して実行中のバスサイクルを中断した後に再実行するバスサイクル制御部と、前記バスサイクルが中断した後に他の処理要求の有無を判定するインタラプト判定部と、前記インタラプト判定部により検出された前記他の処理要求を前記バスサイクルの再実行前に実行するインタラプト制御部とを含むマイクロプロセッサと
を有するシステム。
【請求項３】
前記バスリトライ出力装置が、前記バスリトライ信号を出力するバスリトライ出力部と、前記マイクロプロセッサに送られる他の処理要求を監視するインタラプト監視部と、前記インタラプト監視部が前記他の処理要求を検出したことに応答して前記バスリトライ出力部に前記バスリトライ信号を出力させるバスリトライ制御部とを含む請求項２に記載のシステム。
【請求項４】
前記バスリトライ出力装置が、前記マイクロプロセッサへ要求された他の処理の優先度と前記実行中のバスサイクルの優先度を比較する優先度判定部を含み、前記バスリトライ制御部が、前記優先度判定部が前記他の処理要求の方が優先度が高いと判定した場合に前記バスリトライ信号を出力させる請求項３に記載のシステム。
【請求項５】
マイクロプロセッサにバスリトライ信号を出力するバスリトライ出力ステップと、
前記バスリトライ信号の出力に応答して前記マイクロプロセッサが実行中のバスサイクルを中断し、中断した後に前記マイクロプロセッサに対する他の処理要求の有無を判定するインタラプト判定ステップと、
前記バスサイクルが中断した後に検出した他の処理要求を前記マイクロプロセッサが実行する実行ステップと、
前記他の処理を実行した後に前記中断したバスサイクルを前記マイクロプロセッサが再実行する再実行ステップと
を有するバスサイクル制御方法。
【請求項６】
前記バスリトライ出力ステップが、前記マイクロプロセッサへ要求された他の処理の優先度と実行中のバスサイクルの優先度の比較を行い、前記他の処理が前記実行中のバスサイクルよりも優先度が高い場合に前記バスリトライ信号を出力するステップを含む請求項５に記載のバスサイクル制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサとマイクロプロセッサを含むシステム及びマイクロプロセッサのバスサイクル制御方法に関し、より詳しくは、マイクロプロセッサがバスサイクルを実行している状態で、他の処理要求が発生した場合のバスサイクル及び要求された他の処理の制御に関する。
【０００２】
【従来の技術】
マイクロプロセッサを含むシステムの一例を図７に示す。図７は、パーソナル・コンピュータを例にしたＭＰＵ（マイクロプロセッサ・ユニット）８０と他のデバイス８４，８６，８８との接続形態の一例を示すブロック図である。ＭＰＵ８０はローカル・バスを介してブリッジ・チップ８２に接続されている。ローカル・バスは、図８に示すＭＰＵ８０内部のＢＩＵ（バス・インターフェイス・ユニット）９０に接続されている。ブリッジ・チップ８２は、ＭＰＵ８０が接続されるバスと他のデバイス８４，８６，８８が接続されるバスの相互変換を行う。ブリッジ・チップ８２には、ＡＧＰ（Accelerated   graphics  port）バスを介してビデオ・チップ８４が接続されている。ビデオ・チップ８４は画像処理を行うデバイスである。またメモリ・バスを介してメモリ（記憶素子）８８が接続されている。さらにＰＣＩ（Peripheral  component   interconnect）バスを介してオーディオ・チップ８６が接続されている。オーディオ・チップ８６は音声処理を行うデバイスである。
【０００３】
次に、ビデオ・チップ８４へのバスサイクル実行中に、オーディオ・チップ８６から他の処理要求（以下、インタラプト要求ともいう）が発生した場合を例にして、バスサイクル及びインタラプトの処理を説明する。図８はこのときの信号（バスサイクル，ＲＥＡＤＹ（レディ）信号，インタラプト信号，インタラプト処理のバスサイクル）の流れを示す図であり、図９はこのときのバスサイクル及びインタラプトの処理の流れを示すフロー・チャート図であり、図１０はこのときの信号（バスサイクル，ＲＥＡＤＹ信号，インタラプト信号）及びインタラプト処理の動作状態を示すタイミング図である。ここで、ＲＥＡＤＹ信号は、バスサイクルを受け取った側が、要求された命令を理解する或いは要求された処理を完了し、ＭＰＵへバスサイクルを終了してもよいことを知らせる信号である。そのため、ＲＥＡＤＹ信号が返ってくると、ＭＰＵは次の処理を要求するバスサイクルを発生させる。また、ビデオ８４の処理よりもオーディオ８６の処理の方が優先度が高いものとする。
【０００４】
まず、ＭＰＵ８０は、ビデオ・チップ８４へバスサイクルを発生する（Ｓ１０２）。ここで、ビデオ・チップ８４の画像処理に長時間かかるものとする。そうすると、ＭＰＵ８０は、ビデオ・チップ８４からＲＥＡＤＹ信号が返ってくるまでこのバスサイクルを実行し続ける（Ｓ１０４）。このとき、ローカル・バスは、ビデオ・チップ８４の処理に占有されている。そのため、図１０に示すように、ビデオ・チップ８４へのバスサイクルを実行中に、オーディオ・チップ８６からインタラプト要求を受けた場合、ＭＰＵ８０はオーディオ８６への処理を行うことができない。そして、ビデオ・チップ８４が実行可能状態になってＲＥＡＤＹ信号が返ってくると、ビデオ・チップ８４へのバスサイクルは完了となり（Ｓ１０６）、ローカル・バスは開放される。その後、オーディオ・チップ８６からインタラプト要求が発生しているので（Ｓ１１２）、オーディオ・チップ８６へのバスサイクルを発生してインタラプト処理を行うことができる（Ｓ１１４）。
【０００５】
このように画像処理に長時間かかった場合は、オーディオ・チップ８６からの処理要求は、ビデオ・チップ８４からＲＥＡＤＹ信号が返ってくるまで待たされることになる。そしてこの遅れにより、音を出すべきタイミングにオーディオ８６の処理が間に合わなくなり、リズムが狂ったり音が途切れる等の不都合が生じる。つまり、従来のマイクロプロセッサ８０では、ＲＥＡＤＹ信号を待っている状態で緊急度の高い他の処理要求を受け取った場合でも、実行中のバスサイクルが完了するまで、その処理は待たされることになる。
【０００６】
このようなバスサイクルを送った相手側の処理時間が長くかかり、ＲＥＡＤＹ信号が長時間返ってこない場合の処理方法として、強制終了する方法や少しずつ目的の処理を行う方法等が用いられている。強制終了する方法は、ハードウェアによるタイマを用い、一定時間待ってもＲＥＡＤＹ信号が返ってこない場合は強制終了し、バス・タイムアウト・エラーをマイクロプロセッサへ送り、システム・プログラムによるエラー処理を行う。しかしこの方法では、実行中の処理を停止する必要があり、さらにはエラー処理のためのソフトウェアの負担が大きい。また、少しずつ目的の処理を行う方法は、ソフトウェア処理により、待ち時間が長いハードウェアへのアクセスは一気に行わずに、ＲＥＡＤＹ状態かどうかを確認しながら少しずつ処理を行う。しかしこの方法も、ソフトウェアの負担が大きく、さらには少しずつ目的の処理を行うため実行速度が低下してしまう。
【０００７】
【発明が解決しようとする課題】
本発明の目的は、マイクロプロセッサがバスサイクルを発行したがＲＥＡＤＹ信号が長時間返ってこない状況下において、他の処理要求があった場合に、実行中のバスサイクルを中断して、この他の処理を先に実行させることである。
【０００８】
【課題を解決するための手段】
本発明のマイクロプロセッサの要旨とするところは、外部から入力されるバスリトライ信号の有無を判定するバスリトライ判定部と、前記バスリトライ判定部がバスリトライ信号の入力を検出すると実行中のバスサイクルを一旦中断させた後に再実行させるバスサイクル制御部とを含むことにある。
【０００９】
また、本発明のマイクロプロセッサを含むシステムの要旨とするところは、バスリトライ信号を出力するバスリトライ出力装置と、前記バスリトライ出力装置から入力されるバスリトライ信号の有無を判定するバスリトライ判定部と、このバスリトライ判定部がバスリトライ信号の入力を検出すると実行中のバスサイクルを一旦中断させた後に再実行させるバスサイクル制御部とを含むマイクロプロセッサとを含むことにある。
【００１０】
また、本発明のマイクロプロセッサのバスサイクル制御方法の要旨とするところは、マイクロプロセッサへバスリトライ信号を出力するバスリトライ出力ステップと、バスリトライ信号がマイクロプロセッサに入力されるとマイクロプロセッサが実行中のバスサイクルを一旦中断させた後に再実行させる再実行ステップとを含むことにある。
【００１１】
【発明の実施の形態】
次に、本発明に係るマイクロプロセッサを含むシステム及びバスサイクル制御方法の実施の形態について、図面に基づいて詳しく説明する。本実施形態では、図７と同様なパーソナル・コンピュータを例にして説明を行う。図１は、本発明に係るマイクロプロセッサを含むシステムであり、ブリッジ・チップ１２から出力されるＢＲＴＹ（バスリトライ）信号がＭＰＵ（マイクロプロセッサ・ユニット）１０へ入力される。すなわち、ローカル・バスにＢＲＴＹ信号線が追加されている。
【００１２】
図２は、ＭＰＵ１０内部のＢＩＵ（バス・インターフェイス・ユニット）２０の本発明に係る部分の構成の概要を示すブロック図であり、ＭＰＵ１０外部から入力されるＢＲＴＹ信号の有無を判定するＢＲＴＹ判定部３０が含まれている。また、インタラプト信号の有無を判定するインタラプト判定部３２と、ＲＥＡＤＹ信号の有無を判定するＲＥＡＤＹ判定部３４と、バスサイクルを発生させるバスサイクル発生部３６とを含む。これらＢＲＴＹ判定部３０，インタラプト判定部３２，ＲＥＡＤＹ判定部３４，バスサイクル発生部３６は制御部３８に接続されている。また、バスサイクル発生部３６とＲＥＡＤＹ判定部３４及びインタラプト判定部３２は従来と同様のものを用いることができる。
【００１３】
ＢＲＴＹ判定部３０，インタラプト判定部３２，ＲＥＡＤＹ判定部３４，バスサイクル発生部３６は制御部３８で制御され、ＢＲＴＹ信号が入力されると、現在実行しているバスサイクルを一旦中断させる。また、このバスサイクルの中断時に、インタラプト信号の有無を調べる。インタラプト要求が検出されると、このインタラプトの処理をバスサイクルの再実行よりも先に行わせる。インタラプト要求がなくなれば、中断していたバスサイクルを再実行させる。
【００１４】
図３は、ブリッジ・チップ１２の本発明に係る部分の構成の概要を示すブロック図であり、ＢＲＴＹ信号を出力するＢＲＴＹ出力部４０を含む。また、インタラプト要求の有無を監視するインタラプト監視部４４と、インタラプトと実行中のバスサイクルとの優先度を比較する優先度判定部４６とを含む。また、図示していないが、インタラプトとの優先度を比較する現在実行中のバスサイクルを監視するバスサイクル監視部も含む。ＢＲＴＹ出力部４０，インタラプト監視部４４，優先度判定部４６は制御部４８で制御され、インタラプト要求が発生すると、このインタラプト要求と実行中のバスサイクルとの優先度の比較を行い、インタラプト要求の方が優先度が高ければ、ＢＲＴＹ信号を出力させる。
【００１５】
次に、このようなＭＰＵ（マイクロプロセッサ・ユニット）１０のバスサイクル及びインタラプトの処理について説明する。本実施形態では、ビデオ・チップ８４へバスサイクルを発生してＲＥＤＹ信号が返ってくるのを待っている状態で、より優先度の高いオーディオ・チップ８６からのインタラプト要求が発生した場合を例にして説明する。図５はこのときのバスサイクル及びインタラプトの処理の流れを示すフロー・チャート図であり、図６はこのときの信号（インタラプト信号，バスサイクル，ＲＥＡＤＹ信号，ＢＲＴＹ信号）とインタラプト処理の状態を示すタイミング図である。
【００１６】
まず、ビデオ・チップ８４へバスサイクルを発生する（Ｓ１０２）。ビデオ・チップ８４からＲＥＡＤＹ信号が返ってこず、さらにＢＲＴＹ信号も入力されていない状態では、ＭＰＵ１０はＲＥＡＤＹ信号が返ってくるのを待ち続ける（Ｓ１０４，Ｓ１２２）。このとき、ローカル・バスはビデオ８４の処理に占有されている。
【００１７】
この状態でオーディオ・チップ８６からインタラプト要求があると、ブリッジ・チップ１２では、このオーディオ８６からのインタラプトとビデオ８４へのバスサイクルとの優先度を比較する。本実施形態の設定では、オーディオ８６からのインタラプトの方が優先度が高いため、ブリッジ・チップ１２はＢＲＴＹ信号を出力する。
【００１８】
ＢＲＴＹ信号が入力されると、ＭＰＵ１０は実行中のバスサイクルを中断する（Ｓ１２４）。これにより、ローカル・バスは開放される。バスサイクルを中断した後、ＭＰＵ１０はインタラプト要求の有無を調べる（Ｓ１１２）。インタラプト要求が検出されると、インタラプト処理をバスサイクルの再実行よりも先に行う（Ｓ１１４）。本実施形態では、オーディオ・チップ８６からインタラプト要求が発生しているので、オーディオ８６の処理を先に行う。インタラプト処理が完了すれば、中断していたビデオ８４へのバスサイクルを再実行する（Ｓ１０２）。その後、ＲＥＡＤＹ信号がビデオ・チップ８４から返ってくると、バスサイクルは完了となる（Ｓ１０６）。
【００１９】
このように本発明のＭＰＵ１０は、ビデオ８４からのＲＥＡＤＹ信号を待っている状態で、オーディオ８６から緊急度の高いインタラプト要求が発生した場合でも、ビデオ８４へのバスサイクルを一旦中断させて、オーディオ８６へのインタラプト処理を優先的に行うことができる。そのため、ビデオ８４の処理時間の影響によって音声処理が遅れることはなくなり、従来の音飛びやリズムの狂い等を防止することができる。しかも、これらの処理は、ハードウェアのみで実行しているので、高速かつ確実に処理することができる。
【００２０】
ここで、図３に示すように、ブリッジ・チップ１２は、ＭＰＵ１０がオーディオ８６のインタラプト処理を行っている間もビデオ・チップ８４へバスサイクルを発生し続けるバスサイクル継続発生部４２を含む。そのため、図４（ａ）に示すビデオ・チップ８４へのバスサイクルが中断されて、ＭＰＵ１０が図４（ｂ）に示すオーディオ・チップ８６へのバスサイクルを発生させた場合でも、バスサイクル継続発生部４２により、ビデオ・チップ８４へのバスサイクルは継続される。このようなバスサイクル継続発生部４２を用いることにより、図４（ａ）に示す従来と同様のバスサイクルをビデオ・チップ８４へ発生し続けることができるので、ビデオ・チップの変更等を避けることができる。
【００２１】
このように、マイクロプロセッサに、外部からＢＲＴＹ信号が入力されるとバスサイクルを一旦中断した後に再実行させる機能を持たせることにより、実行中のバスサイクルを途中で中断して他の処理を先に行わせることができる。また、実行中のバスサイクルよりも優先度が高い処理要求が発生した場合にＢＲＴＹ信号を出力させることにより、実行中のバスサイクルを中断して、優先度の高い処理を先に実行させることが可能となる。
【００２２】
以上、本発明の一実施形態について説明したが、本発明に係るマイクロプロセッサ及びマイクロプロセッサのバスサイクル制御方法はその他の態様でも実施し得るものである。例えば、本発明のマイクロプロセッサ及びマイクロプロセッサのバスサイクル制御方法は、パーソナル・コンピュータに限定はされず、マイクロプロセッサを含む任意のシステムに用いることができる。また、本発明のマイクロプロセッサ及びマイクロプロセッサのバスサイクル制御方法は、実行中のバスサイクルをＢＲＴＹ信号で中断し、他の処理を行った後、バスサイクルを再実行するので、例えば、上述したオーディオ処理の代わりに、マウスやキーボードからの入力処理を先に行わせること等もできる。
【００２３】
また、ＢＲＴＹ信号は、ブリッジ・チップに限定はされず、マイクロプロセッサ外部の任意の装置から送ることができる。ただし、実行中のバスサイクルとインタラプト要求とを比較して、実行中のバスサイクルを中断する必要があるのか或いは中断してもよいのかを判断する必要があるので、マイクロプロセッサのバスを監視できる装置を用いる。
【００２４】
以上、本発明に係るマイクロプロセッサ及びマイクロプロセッサのバスサイクル制御方法の実施例について、図面に基づいて種々説明したが、本発明は図示したマイクロプロセッサ及びマイクロプロセッサのバスサイクル制御方法に限定されるものではない。例えば、電源が入っていない機器へアクセスした場合のインタラプト処理を行うこともできる。本発明を用いると、電源が入っておらずＲＥＡＤＹ信号が返ってこない場合に、他の処理を行ったり、電源をオンにするインタラプトを発生させること等ができる。また、ＣＳ（通信衛星）放送受信装置のデータ取り込み要求の制御に用いることもできる。ＣＳ放送では一方的にデータが送られてくるので、データの取りこぼしは致命的なエラーとなる。しかし、本発明を用いると、データの取り込み要求を最優先で実行させることができる。その他、本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良，修正，変形を加えた態様で実施できるものである。
【図面の簡単な説明】
【図１】本発明に係るマイクロプロセッサ（ＭＰＵ）を含むシステムのバスサイクル及びインタラプトの処理に関係する信号の流れを示すブロック図である。
【図２】図１に示すマイクロプロセッサのＢＩＵの本発明に係る部分の構成概要を示すブロック図である。
【図３】図１に示すマイクロプロセッサを含むシステムのブリッジ・チップの本発明に係る部分の構成概要を示すブロック図である。
【図４】図３に示すブリッジ・チップのバスサイクル継続発生部によるバスサイクルの流れを示すブロック図である。
【図５】図１に示すマイクロプロセッサを含むシステムのバスサイクル及びインタラプトの処理の流れの一例を示すフロー・チャート図である。
【図６】図１に示すマイクロプロセッサを含むシステムのバスサイクル及びインタラプトの処理に関係する信号とインタラプト処理の状態を示すタイミング図である。
【図７】従来のマイクロプロセッサ（ＭＰＵ）と他のデバイスとの接続形態の一例を示すブロック図である。
【図８】図７に示すマイクロプロセッサを含むシステムのバスサイクル及びインタラプトの処理に関係する信号の流れを示すブロック図である。
【図９】図８に示すマイクロプロセッサを含むシステムのバスサイクル及びインタラプトの処理の流れの一例を示すフロー・チャート図である。
【図１０】図８に示すマイクロプロセッサを含むシステムのバスサイクル及びインタラプトの処理に関係する信号とインタラプト処理の状態を示すタイミング図である。
【符号の説明】
１０：ＭＰＵ（マイクロプロセッサ・ユニット）
１２：ブリッジ・チップ
２０：ＢＩＵ（バス・インターフェイス・ユニット）
３０：ＢＲＴＹ判定部
３２：インタラプト判定部
３４：ＲＥＡＤＹ判定部
３６：バスサイクル発生部
３８：制御部（バスサイクル制御部，インタラプト制御部）
４０：ＢＲＴＹ出力部
４２：バスサイクル継続発生部
４４：インタラプト監視部
４６：優先度判定部
４８：制御部（バスリトライ制御部）
８０：従来のマイクロプロセッサ
８２：従来のブリッジ・チップ
８４：ビデオ・チップ
８６：オーディオ・チップ
８８：メモリ
９０：従来のＢＩＵ
【図１】
0004030216.tif 000002
【図２】
0004030216.tif 000003
【図３】
0004030216.tif 000004
【図４】
0004030216.tif 000005
【図５】
0004030216.tif 000006
【図６】
0004030216.tif 000007
【図７】
0004030216.tif 000008
【図８】
0004030216.tif 000009
【図９】
0004030216.tif 000010
【図１０】
0004030216.tif 000011