(57)【要約】【課題】従来よりも速やかに例外ハンドラと通常処理の切り替えを行うことができる情報処理装置を提供する。【解決手段】情報処理装置は、プロセッサと、前記プロセッサから処理依頼を受けて特定の処理を実行する情報処理手段と、例外制御手段と、前記情報処理手段と前記例外制御手段とを接続する専用線と、を備え、前記情報処理手段は、前記専用線を介して自らの状態を示す状態情報を、前記例外制御手段に通知し、前記例外制御手段は、前記情報処理手段から通知された状態情報に基づいて、前記プロセッサに対して割り込み要求を通知する。【選択図】図１
2010102732.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサから処理依頼を受けて特定の処理を実行する情報処理手段と、
例外制御手段と、
前記情報処理手段と前記例外制御手段とを接続する専用線と、を備え、
前記情報処理手段は、前記専用線を介して自らの状態を示す状態情報を、前記例外制御手段に通知し、
前記例外制御手段は、前記情報処理手段から通知された状態情報に基づいて、前記プロセッサに対して割り込み要求を通知する
ことを特徴とする情報処理装置。
【請求項２】
情報処理装置に用いられる例外制御回路であって、
前記情報処理装置は、
プロセッサと、前記プロセッサから処理依頼を受けて特定の処理を実行する情報処理手段と、前記情報処理手段と前記例外制御回路とを接続する専用線と、
を備え、
前記例外制御回路は、前記専用線を介して通知される、前記情報処理手段の状態を示す状態情報に基づいて前記プロセッサに対して割り込み要求を通知する
ことを特徴とする例外制御回路。
【請求項３】
プロセッサと、前記プロセッサから処理依頼を受けて特定の処理を実行する情報処理手段と、例外制御手段と、前記情報処理手段と前記例外制御手段とを接続する専用線と、を備える情報処理装置に用いられる例外制御方法であって、
前記専用線を介して通知される、前記情報処理手段の状態を示す状態情報に基づいて、前記例外制御手段が、前記プロセッサに対して割り込み要求を通知するよう制御する
ことを特徴とする例外制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサから処理依頼を受けて特定の処理を実行する情報処理回路を備えた情報処理装置に関し、特に情報処理回路で発生した例外に対する制御に関する。
【背景技術】
【０００２】
一般的に、パソコンやモバイル機器等の情報処理装置には、搭載されているプロセッサの負荷を軽減し処理性能を向上させるために、プロセッサから依頼された特定の処理を実行する情報処理回路（例えば、グラフィックアクセラレータ、コプロセッサ等）が備わっている。
そして、情報処理回路が実行する処理において、例外が発生することがある。
【０００３】
例外とは、情報処理装置の通常動作の流れに反する特殊な状況のことをいう。例えば、プログラムのスケジュール上、処理可能とされるタイミングにおいてプロセッサが処理依頼をしても、情報処理回路が処理することができない状況や、情報処理回路が処理した結果の読み出しが可能とされるタイミングにおいて、プロセッサが処理結果の読み出しを行おうとしても、未だ情報処理回路において処理結果が出ていない状況、或いは情報処理回路においてエラーが発生している状況等である。
【０００４】
このような例外発生に対して情報処理装置は、プロセッサに割り込みを発生させ、通常の処理シーケンスを変更して、予め定められた例外ハンドラの開始アドレスに制御を移し、その例外に対処するようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１４２７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、情報処理回路において例外が発生して、プロセッサが例外ハンドラを実行している間、通常の処理シーケンスは止まることになるので、プロセッサの処理性能の向上の観点から、情報処理回路において発生した例外及びその例外からの回復をプロセッサ側で早期に検出して、例外ハンドラと通常処理の切り替えを速やかに行う技術が求められている。
【０００７】
そこで、本発明は、従来よりも速やかに例外ハンドラと通常処理の切り替えを行うことができる情報処理装置、例外制御回路及び例外制御方法を提供を目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係る情報処理装置は、プロセッサと、当該プロセッサから処理依頼を受けて特定の処理を実行する情報処理回路と、当該プロセッサに対して割り込み要求を通知する割り込みコントローラと、例外制御部とを備える情報処理装置であって、前記情報処理回路と前記例外制御部は、専用線で接続されており、前記情報処理回路は、前記専用線を介して、自回路の現在の状態を示す状態情報を前記例外制御部に通知する通知部を有し、前記例外制御部は、前記プロセッサからの指示により設定される設定情報と、通知された状態情報とに基づいて、プロセッサの実行対象を対応する例外ハンドラに移行させる割り込み要求を前記割り込みコントローラに通知させるか否かの判定を行うことを特徴とすることを特徴とする。
【０００９】
また、本発明に係る例外制御回路は、プロセッサと、当該プロセッサから処理依頼を受けて特定の処理を実行する情報処理回路と、当該プロセッサに対して割り込み要求を通知する割り込みコントローラとを備えた情報処理装置に組み込まれる例外制御回路であって、自回路と前記情報処理回路とが専用線で接続され、前記情報処理回路から、専用線を介して当該情報処理回路の現在の状態を示す状態情報を受け付けて記憶する第１レジスタと、前記プロセッサからの指示により設定される設定情報を記憶する第２レジスタと、前記第１レジスタに記憶されている状態情報と、前記第２レジスタに記憶されている設定情報とに基づいて、プロセッサの実行対象を対応する例外ハンドラに移行させる割り込み要求を前記割り込みコントローラに通知させるか否かの判定を行う手段とを備えることを特徴とする。
【００１０】
また、本発明に係る例外制御方法は、プロセッサと、当該プロセッサから処理依頼を受けて特定の処理を実行する情報処理回路と、当該プロセッサに対して割り込み要求を通知する割り込みコントローラとを備える情報処理装置に用いられる例外制御方法であって、前記プロセッサからの指示により設定される設定情報と前記情報処理回路から通知される当該情報処理回路の現在の状態を示す状態情報とに基づいて、プロセッサの実行対象を対応する例外ハンドラに移行させる割り込み要求を前記割り込みコントローラに通知させるか否かの判定を行うことを特徴とする。
【発明の効果】
【００１１】
上記構成の情報処理装置では、情報処理回路の現在の状態を示す状態情報が専用線を介して例外制御部に通知され、例外制御部が、通知された状態情報と設定情報とに基づいて割り込みコントローラに割り込みを発生させるか否かの判定を行うので、従来よりも速やかに例外ハンドラと通常処理の切り替えを行うができ、通常処理の停滞を低減することができる。
【００１２】
また、一般的に情報処理回路の動作周波数の方がプロセッサの動作周波数より遅いので、上記構成の情報処理装置を用いれば、情報処理回路の例外発生によるプロセッサの通常処理の停滞低減効果が大きい。
上記構成の例外制御回路が組み込まれた情報処理装置及び上記例外制御方法についても同様の効果が得られる。
【００１３】
ここで、前記例外制御部は、前記情報処理回路に処理依頼するための命令及び当該処理の結果を読み出すための命令のいずれかを前記プロセッサが実行する際に、その命令を実行すべきサイクル内において前記判定を行うとしてもよい。
この構成により、前記情報処理回路に関する命令の実行と共に、その実行サイクル内において、所定の例外ハンドラに移行する割り込みを発生させるかどうかの判定を行うので、従来よりも速やかに例外ハンドラと通常処理の切り替えを行うができ、通常処理の停滞を低減することができる。
【００１４】
また、前記状態情報は、前記情報処理回路が処理を実行しているビジー状態及び処理を実行していないアイドル状態のいずれかの状態を示し、前記設定情報は、プロセッサの実行対象を第１例外ハンドラに移行させる第１種割り込み要求を前記割り込みコントローラに通知させるか否かの判定を行う設定を示す第１情報及びプロセッサの実行対象を第２例外ハンドラに移行させる第２種割り込み要求を前記割り込みコントローラに通知させるか否かの判定を行う設定を示す第２情報のいずれかであり、前記第２例外ハンドラは、前記プロセッサが実行する通常の処理シーケンスに復帰するための処理であり、前記例外制御部は、前記設定情報が第１情報であり、且つ前記状態情報がビジー状態を示す情報である場合、前記割り込みコントローラに第１種割り込み要求を通知させる判定を行い、前記設定情報が第１情報であり、且つ前記状態情報がアイドル状態を示す情報である場合、前記割り込みコントローラに第１種割り込み要求を通知させない判定を行い、前記設定情報が第２情報であり、且つ前記状態情報がビジー状態を示す情報からアイドル状態を示す情報に変化した場合、前記割り込みコントローラに、第２種割り込み要求を通知させる判定を行うとしてもよいし、前記状態情報は、前記情報処理回路が処理を実行しているビジー状態及び処理を実行していないアイドル状態、エラーが発生しているエラー状態のいずれかの状態を示す情報であり、前記設定情報は、プロセッサの実行対象を第１例外ハンドラに移行させる第１種割り込み要求を前記割り込みコントローラに通知させるか否かの判定を行う設定を示す第１情報及びプロセッサの実行対象を第２例外ハンドラに移行させる第２種割り込み要求を前記割り込みコントローラに通知させるか否かの判定を行う設定を示す第２情報のいずれかであり、前記第２例外ハンドラは、前記プロセッサが実行する通常の処理シーケンスに復帰するための処理であり、前記例外制御部は、前記設定情報が第１情報であり、且つ前記状態情報がビジー状態又はエラー状態を示す情報である場合、前記割り込みコントローラに第１種割り込み要求を通知させる判定を行い、前記設定情報が第１情報であり、且つ前記状態情報がアイドル状態を示す情報である場合、前記割り込みコントローラに第１種割り込み要求を通知させない判定を行い、前記設定情報が第２情報であり、且つ前記状態情報がビジー状態又はエラー状態を示す情報からアイドル状態を示す情報に変化した場合、前記割り込みコントローラに、第２種割り込み要求を通知させる判定を行うとしてもよい。
【００１５】
この構成により前記プロセッサから設定された設定情報によって、プロセッサが移行する例外ハンドラが決まり、情報処理回路から通知される状態情報（ビジー状態、エラー状態、アイドル状態等）に応じて、速やかに例外ハンドラと通常処理の切り替えを行うができ、通常処理の停滞を低減することができる。
また、前記プロセッサと前記例外制御部は、同じチップ上に形成されており、前記情報処理回路は他のチップ上に形成されているとしてもよい。
【００１６】
前記プロセッサ及び前記例外制御部は、同一のチップ上に形成されていることが望ましいが、一方、前記情報処理回路は、前記プロセッサ及び前記例外制御部が形成されているチップから分離独立したチップに形成されていても、情報処理装置は従来より速やかに例外ハンドラと通常処理の切り替えを行うができ、通常処理の停滞を低減することができる。
【００１７】
また、前記情報処理装置は、前記情報処理回路を複数備え、前記複数の情報処理回路は前記例外制御部とそれぞれ専用線で接続されており、前記例外制御部は、前記プロセッサからの指示により個々に設定される各情報処理回路用の設定情報と、各情報処理回路から通知された状態情報とに基づいて、前記判定を行うとしてもよい。
情報処理装置は複数の情報処理回路を備えることが可能であり、複数ある場合においても、各情報処理回路と例外制御部とを接続するそれぞれの専用線を介して通知された状態情報と設定情報とに基づいて、割り込みコントローラに割り込みを発生させるか否かの判定を行うので、従来より速やかに例外ハンドラと通常処理の切り替えを行うができ、通常処理の停滞を低減することができる。
【００１８】
また、前記情報処理回路は、定型処理を実行するアクセラレータであるとしてもよい。
情報処理回路において発生する例外が限定されるため、用意しなければならない例外ハンドラの記述を簡略化することができ、実装し易いという効果がある。  
【図面の簡単な説明】
【００１９】
【図１】情報処理装置１の構成を示す図である。
【図２】情報処理装置１の割り込み制御を説明するために用いるフローチャート図である。
【図３】情報処理装置１が実行するプログラムの一例である。
【図４】図３に示すプログラムの具体的な流れの一例を示す図である。
【図５】変形例である情報処理装置１Ａの構成を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明の一実施形態について、図面を用いて説明する。
＜構成＞
図１は、情報処理装置１の構成を示す図である。
情報処理装置１は、命令メモリ２、プロセッサ３、例外制御部４、割り込みコントローラ５、アクセラレータ６を備える。
【００２１】
情報処理装置１では、命令メモリ２に記憶されているプログラムをプロセッサ３が実行することにより、プロセッサ３がアクセラレータ６に対して処理の依頼を行う。
プロセッサ３とアクセラレータ６は、アドレスバス２０、データバス２１、リクエストバス２２を介して接続されており、リクエストバス２２は、例外制御部４を経由している。
【００２２】
例外制御部４とアクセラレータ６は、状態情報を伝送する専用線であるｂｕｓｙ／ｉｄｌｅ信号線２３とｅｒｒｏｒ信号線２４を介して接続されている。
プロセッサ３と例外制御部４は、同じチップ上に形成されており、アクセラレータ６は、別のチップ上に形成されている。また、プロセッサ３及び例外制御部４は、同じクロックサイクルで動作している。
【００２３】
プロセッサ３は、その内部に汎用レジスタであるｒｅｇ０、ｒｅｇ１、ｒｅｇ２、ｒｅｇ３と、プログラムカウンタ（ｐｒｏｇｒａｍ  ｃｏｕｎｔｅｒ、以下、「ｐｃ」と言う。）と、例外プログラムカウンタ（ｅｘｃｅｐｔｉｏｎ  ｐｒｏｇｒａｍ  ｃｏｕｎｔｅｒ、以下、「ｅｐｃ」と言う。）とを有する。
ｐｃは、現在実行されている命令が格納されている番地を記憶しているレジスタであり、ｅｐｃは、例外ハンドラに移行する直前に実行された命令が格納されている番地を記憶しているレジスタである。
【００２４】
例外制御部４は、その内部にレジスタであるｒｅｇ、ｉｎｔｒｅｇとを有する。
アクセラレータ６は、その内部にレジスタであるｅｘｔｒｅｇと、アクセラレータ６の現在の状態を示す状態情報を例外制御部４に通知する状態通知部７とを有する。
命令メモリ２は、複数の命令から成るプログラムを記憶している、一般的なメモリである。
【００２５】
プロセッサ３は、命令メモリ２から命令を読み出して（フェッチして）、解読（デコード）し、実行する一般的なプロセッサである。
プロセッサ３が解読した命令が、アクセラレータ６のｅｘｔｒｅｇに処理の依頼を示す命令を書き込むｗｒｉｔｅ命令、又はｅｘｔｒｅｇに書き込まれるアクセラレータ６の処理結果を読み出すｒｅａｄ命令（以下、アクセラレータ６に関する命令を、単に「アクセラレータ命令」という。）であれば、アクセラレータ６に対して、アドレスバス２０を介して書き込み先又は読み出し先のアドレスを送り、データバス２１を介してオペランド等のデータを送り、リクエストバス２２を介してコマンドを送る。
【００２６】
なお、プロセッサ３が実行するプログラムには、予め同一のアクセラレータ命令が連続して発行されないように記述されており、また、例外ベクタアドレスを設定するように記述されている。
例外ベクタアドレスとは、例外ハンドラの開始アドレスのことである。
プロセッサ３は、割り込みコントローラ５から所定の例外ベクタアドレスを指定する割り込み要求を受けると、通常の処理シーケンスから分岐して、指定された例外ベクタアドレスが示す番地の命令を読み出して、解読し実行する。
【００２７】
アクセラレータ６は、ＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）の画像符号化アクセラレータであり、プロセッサ３から処理の依頼を示す命令が、ｅｘｔｒｅｇに書き込まれることで画像符号化処理を実行する機能を有する。
アクセラレータ６は、ビットストリームのオーバーフロー又は固有のエラー等の例外を発生することが想定されるが、係る例外が発生しない限り、依頼された処理をプロセッサ３及び例外制御部４のクロックサイクルの1サイクル分の期間で実行し、実行した結果をｅｘｔｒｅｇに書き込む。
【００２８】
状態通知部７は、ｂｕｓｙ／ｉｄｌｅ信号線２３とｅｒｒｏｒ信号線２４を介して、例外制御部４に状態情報を通知する機能を有する。
具体的には、アクセラレータ７が処理の実行中である場合、ｂｕｓｙ／ｉｄｌｅ信号線２３でｂｕｓｙ信号を送り、処理を行っていない場合は、ｂｕｓｙ／ｉｄｌｅ信号線２３でｉｄｌｅ信号を送り、エラーが発生した場合は、ｅｒｒｏｒ信号線２４でｅｒｒｏｒ信号を送る。
【００２９】
なお、エラーが発生した場合、ｂｕｓｙ信号及びｉｄｌｅ信号は送信しない。
状態通知部７から通知された状態情報は、例外制御部４のｒｅｇに書き込まれ、上書き更新される。
具体的には、ｂｕｓｙ信号が通知されれば、“ｂｕｓｙ”を示す値がｒｅｇに書き込まれ、ｉｄｌｅ信号が通知されれば、“ｉｄｌｅ”を示す値がｒｅｇに書き込まれ、ｅｒｒｏｒ信号が通知されれば、“ｅｒｒｏｒ”を示す値がｒｅｇに書き込まれる。
【００３０】
例外制御部４は、ｉｎｔｒｅｇに書き込まれる設定情報とｒｅｇに書き込まれる状態情報とに基づいて、“ＢＵＳＹ”割り込み要求、又は “ＲＥＡＤＹ”割り込み要求のいずれかを割り込みコントローラ５に通知させるか否かの判定を行う機能を有する。
“ＢＵＳＹ”割り込みは、アクセラレータ６において発生した例外が回復するまでの間、プロセッサ３に通常の処理シーケンスから分岐して例外ハンドラを起動する割り込みであり、“ＲＥＡＤＹ”割り込みは、プロセッサ３が通常の処理シーケンスに戻るための処理を行う例外ハンドラ（以下、区別するために「復帰用例外ハンドラ」と言う。）を起動する割り込みである。
【００３１】
例外制御部４のｉｎｔｒｅｇは、プロセッサ３が命令メモリ２から読み出して実行した命令により“ＢＵＳＹ”又は“ＲＥＡＤＹ”のいずれかを示す設定情報が書き込まれる。
“ＢＵＳＹ”は、“ＢＵＳＹ”割り込み要求を割り込みコントローラ５に通知させるか否かの判定を行う設定を示し、“ＲＥＡＤＹ”は、“ＲＥＡＤＹ” 割り込み要求を割り込みコントローラ５に通知させるか否かの判定を行う設定を示す。
【００３２】
プロセッサ３がアクセラレータ命令を実行すると、当該命令は、リクエストバス２２を介して例外制御部４に伝達され、ｉｎｔｒｅｇに書き込まれている設定情報が“ＢＵＳＹ”で、ｒｅｇに書き込まれている状態情報が“ｂｕｓｙ”又は“ｅｒｒｏｒ”である場合、例外制御部４は、“ＢＵＳＹ”割り込みを発生させる指示を割り込みコントローラ５に通知する判定を行う。
【００３３】
反対に、ｉｎｔｒｅｇに書き込まれている設定情報が“ＢＵＳＹ”で、ｒｅｇに書き込まれている状態情報が“ｉｄｌｅ”の場合、前記指示を割り込みコントローラ５に通知しない判定を行う。
また、例外制御部４は、ｉｎｔｒｅｇに書き込まれている設定情報が“ＲＥＡＤＹ”で、ｒｅｇに書き込まれている状態情報が“ｂｕｓｙ”又は“ｅｒｒｏｒ”から“ｉｄｌｅ”に変化した場合、“ＲＥＡＤＹ”割り込みを発生させる指示を割り込みコントローラ５に通知する判定を行う。
【００３４】
割り込みコントローラ５は、例外制御部４から通知された割り込み発生指示に基づいて、“ＢＵＳＹ”割り込み要求又は“ＲＥＡＤＹ”割り込み要求のいずれかをプロセッサ３に発生させる機能を有する。
＜動作＞
続いて、情報処理装置１の動作について説明する。
【００３５】
図２は、情報処理装置１の割り込み制御を説明するために用いるフローチャート図である。
まず、プロセッサ３の動作から説明する。
プロセッサ３は、命令メモリ２から命令を読み出して解読し（ステップＳ１）、その解読された命令を実行する（ステップＳ２）。
【００３６】
プロセッサ３は、割り込みコントローラ５から“ＢＵＳＹ”割り込み要求を受けると（ステップＳ３：ＹＥＳ）、指定された例外ベクタアドレスに基づいて例外ハンドラを起動する（ステップＳ４）。“ＢＵＳＹ”割り込み要求を受けなければ（ステップＳ３：ＮＯ）、通常処理の命令の読み出し及び解読を行う。
プロセッサ３は、例外ハンドラの実行中に“ＲＥＡＤＹ”割り込み要求を受けると（ステップＳ５：ＹＥＳ）、指定された例外ベクタアドレスに基づいて復帰用例外ハンドラを起動する（ステップＳ６）。“ＲＥＡＤＹ”割り込み要求を受けなければ（ステップＳ５：ＮＯ）、例外ハンドラの実行を継続する。
【００３７】
次に、例外制御部４及び割り込みコントローラ５の動作について説明する。
プロセッサ３が解読した命令がアクセラレータ命令であれば（ステップＳ１１：ＹＥＳ）、リクエストバス２２を介して例外制御部４に伝達され、例外制御部４は、ｉｎｔｒｅｇの設定情報とｒｅｇの状態情報を確認する。
その結果、設定情報が“ＢＵＳＹ”で、状態情報が“ｂｕｓｙ”又は“ｅｒｒｏｒ”であれば（ステップＳ１２：ＹＥＳ）、例外制御部４は、アクセラレータ命令をアクセラレータ６に伝達せず、“ＢＵＳＹ”割り込み要求を割り込みコントローラ５に通知させる判定を行う。
【００３８】
割り込みコントローラ５は、前記判定によりプロセッサ３に対して“ＢＵＳＹ”割り込み要求を通知する（ステップＳ１３）。
その後、状態通知部７の通知によりｒｅｇの状態情報が“ｂｕｓｙ”から“ｉｄｌｅ”に書き換えられて変化したことを例外制御部４が検知すると（ステップＳ１４：ＹＥＳ）、例外制御部４は、“ＲＥＡＤＹ”割り込み要求を割り込みコントローラ５に通知させる判定を行う。
【００３９】
割り込みコントローラ５は、前記判定によりプロセッサ３に対して“ＲＥＡＤＹ”割り込み要求を通知する（ステップＳ１５）。
最後にアクセラレータ６の動作について説明する。
アクセラレータ６は、自身の現在の状態をｂｕｓｙ／ｉｄｌｅ信号線２３及びｅｒｒｏｒ信号線２４を介して例外制御部４に常に通知する（ステップＳ２１）。
【００４０】
ここで、情報処理装置１の具体的な動作を説明する。
図３は、情報処理装置１が実行するプログラムの一例であり、図４は、図３に示すプログラムの具体的な流れの一例を示す図である。
図４に示すサイクル１において、プロセッサ３が、図３に示すプログラム行番号１のｗｒｉｔｅ  ＢＵＳＹ，ｉｎｔｒｅｇ；を解読すると、プロセッサ３は、ｉｎｔｒｅｇに“ＢＵＳＹ”を書き込む。
【００４１】
サイクル２においてプロセッサ３が、プログラム行番号２のｗｒｉｔｅ  ＣＭＤ０，ｅｘｔｒｅｇ；を解読すると、当該命令がアクセラレータ命令であるため、リクエストバス２２を介して例外制御部４に伝達され、例外制御部４は、ｉｎｔｒｅｇに書き込まれている設定情報及びｒｅｇに書き込まれている状態情報を確認する。この時、設定情報は“ＢＵＳＹ”であり状態情報は“ｉｄｌｅ”であるため、そのまま実行させる。
【００４２】
状態情報は、状態通知部７からの通知により1つ前のサイクルにおけるアクセラレータ６の状態が書き込まれている。
サイクル３においてプロセッサ３が解読した命令は、ｎｏｐ（ｎｏ  ｏｐｅｒａｔｉｏｎ）すなわち、なにもしないことを示す命令であるため、プロセッサ３はなにもしない。
一方、サイクル３においてアクセラレータ６は、ｅｘｔｒｅｇに書き込まれたＣＭＤ０を実行しているため、“ｂｕｓｙ”状態である。
【００４３】
サイクル４においてプロセッサ３が解読した命令は、ｎｏｐであるため、プロセッサ３はなにもしない。
一方、サイクル４において、アクセラレータ６は、ビットストリームのオーバーフローが生じているため、“ｂｕｓｙ”状態である。
上述したように、アクセラレータ６は、基本的には１サイクルで処理を実行して、結果をｅｘｔｒｅｇに書き込み、直ちに“ｉｄｌｅ”状態に戻るが、ビットストリームのオーバーフローが生じれば、“ｂｕｓｙ”状態が数サイクルに亘って続く。
【００４４】
サイクル５においてプロセッサ３が、プログラム行番号５のｒｅａｄ  ｅｘｔｒｅｇ，ｒｅｇ０；を解読すると、当該命令がアクセラレータ命令であるため、リクエストバス２２を介して例外制御部４に伝達され、例外制御部４は、ｉｎｔｒｅｇに書き込まれている設定情報及びｒｅｇに書き込まれている状態情報を確認する。
この時、設定情報は“ＢＵＳＹ”であり、状態情報は“ｂｕｓｙ”であるため、例外制御部４は、アクセラレータ命令をアクセラレータ６に伝達せずに、“ＢＵＳＹ”割り込み要求を割り込みコントローラ５に通知させる判定を行う。
【００４５】
前記判定により割り込みコントローラ５は、プロセッサ３に対してプログラム行番号１１の命令格納アドレスを示す例外ベクタアドレスを指定する“ＢＵＳＹ”割り込み要求を通知する。
プロセッサ３は、その要求を受けて、サイクル６において、プログラム行番号１１のｒｅａｄ  ｅｐｃ，ｒｅｇ２；を解読し実行する。すなわち、プロセッサ３は、ｅｐｃの値（プログラム行番号５の命令格納番地）をｒｅｇ２に読み出す。
【００４６】
続いてプロセッサ３は、サイクル７において、プログラム行番号１２のｓｔｏｒｅ  ｒｅｇ２，ｍｅｍ；を解読し実行する。すなわち、プロセッサ３は、ｒｅｇ２の値をｍｅｍ（命令メモリ２を示す）に格納する。
続いてプロセッサ３は、サイクル８において、プログラム行番号１３のｗｒｉｔｅ  ＲＥＡＤＹ，ｉｎｔｒｅｇ；を解読し実行する。すなわち、プロセッサ３は、ｉｎｔｒｅｇに“ＲＥＡＤＹ”を書き込む。
【００４７】
続いてプロセッサ３は、サイクル９〜１１において、プログラム行番号１４のｇｏｔｏ  Ｌｏｏｐ；を繰り返し実行する。
サイクル１１において、例外制御部４は、状態情報通知部７からの通知によって、ｒｅｇの状態情報が“ｂｕｓｙ”から“ｉｄｌｅ”に書き換えられて変化したことを検知し、“ＲＥＡＤＹ”割り込み要求を割り込みコントローラ５に通知させる。
【００４８】
例外制御部４からの指示により割り込みコントローラ５は、プロセッサ３に対してプログラム行番号１５の命令格納アドレスを示す例外ベクタアドレスを指定する“ＲＥＡＤＹ”割り込み要求を通知する。
プロセッサ３は、その要求を受けて、サイクル１２においてプログラム行番号１５のｗｒｉｔｅ  ＢＵＳＹ，ｉｎｔｒｅｇ；を解読し実行する。すなわち、プロセッサ３は、ｉｎｔｒｅｇに“ＢＵＳＹ”を書き込む。
【００４９】
続いてプロセッサ３は、サイクル１３において、プログラム行番号１６のｌｏａｄ  ｍｅｍ，ｒｅｇ３；を解読し実行する。すなわち、プロセッサ３は、ｍｅｍに格納されたｅｐｃの値（プログラム行番号５の命令格納番地）をｒｅｇ３にロードする。
続いてプロセッサ３は、サイクル１４において、プログラム行番号１７のｒｅｔｕｒｎ    ｒｅｇ３；を解読し実行する。すなわち、プロセッサ３は、ｒｅｇ３にロードされた値が示す命令格納番地にｐｃを戻す。
【００５０】
サイクル１５において、プロセッサ３は、プログラム行番号５のｒｅａｄ  ｅｘｔｒｅｇ，ｒｅｇ０；を解読する。当該命令がアクセラレータ命令であるため、リクエストバス２２を介して例外制御部４に伝達される。例外制御部４は、ｉｎｔｒｅｇに書き込まれている設定情報及びｒｅｇに書き込まれている状態情報を確認する。
この時、設定情報は“ＢＵＳＹ”、状態情報は“ｉｄｌｅ”であるため、そのまま実行させる。
【００５１】
サイクル１６においてプロセッサ３が、プログラム行番号６のｗｒｉｔｅ  ＣＭＤ１，ｅｘｔｒｅｇ；を解読すると、当該命令がアクセラレータ命令であるため、リクエストバス２２を介して例外制御部４に伝達される。例外制御部４は、ｉｎｔｒｅｇに書き込まれている設定情報及びｒｅｇに書き込まれている状態情報を確認する。
この時、設定情報は“ＢＵＳＹ”、状態情報は“ｉｄｌｅ”であるため、そのまま実行させる。
【００５２】
サイクル１７、１８においてプロセッサ３が解読した命令は、ｎｏｐであるため、プロセッサ３はなにもしない。
一方、サイクル１９においてアクセラレータ６は、ｅｘｔｒｅｇに書き込まれたＣＭＤ０を実行しているため、“ｂｕｓｙ”状態である。そして、サイクル１８においてアクセラレータ６は、固有のエラーを発生し、“ｅｒｒｏｒ”状態である。
【００５３】
サイクル１９においてプロセッサ３が、プログラム行番号９のｒｅａｄ  ｅｘｔｒｅｇ，ｒｅｇ１；を解読すると、当該命令がアクセラレータ命令であるため、リクエストバス２２を介して例外制御部４に伝達される。そして、例外制御部４は、ｉｎｎｔｒｅｇに書き込まれている設定情報及びｒｅｇに書き込まれている状態情報を確認する。
この時、状態情報は“ｅｒｒｏｒ”であり、設定情報は“ＢＵＳＹ”であるため、例外制御部４は、アクセラレータ６にアクセラレータ命令を伝達せず、“ＢＵＳＹ”割り込み要求を割り込みコントローラ５に通知させる。
【００５４】
例外制御部４からの指示により割り込みコントローラ５は、プロセッサ３に対してプログラム行番号１１の命令格納アドレスを示す例外ベクタアドレスを指定する“ＢＵＳＹ”割り込み要求を通知する。
プロセッサ３は、その要求を受けて、サイクル６において、プログラム行番号１１のｒｅａｄ  ｅｐｃ，ｒｅｇ２；を解読し実行する。
【００５５】
以上、情報処理装置１の具体的な動作について説明したが、上記構成の情報処理装置１では、専用線を介して、アクセラレータ６の状態が例外制御部４に常に通知され、例外制御部４が、通知された状態情報と設定情報とに基づいて割り込みコントローラに割り込みを発生させるか否かの判定を行うので、従来よりも速やかに例外ハンドラと通常処理の切り替えを行うができ、通常処理の停滞を低減することができる。
【００５６】
＜変形例＞
上述の情報処理装置１は、アクセラレータが１つだけであったが、複数備わっていてもよい。
図５は、ｎ個（ｎ＞２）のアクセラレータを備えた情報処理装置１Ａの構成を示す図である。
【００５７】
情報処理装置１と異なる点は、備わっているアクセラレータが複数である点と、これらに対応する状態情報及び設定情報を記憶するレジスタを複数、例外制御部４Ａが備える点である。
第１アクセラレータ６と第ｎアクセラレータ８は、それぞれ実行する処理が異なり、発生し得る例外も異なる。
【００５８】
第１アクセラレータ６は、ＭＰＥＧの画像符号化アクセラレータであり、プロセッサ３から処理の依頼を示す命令が、ｅｘｔｒｅｇに書き込まれることで画像符号化処理を実行する機能を有し、ビットストリームのオーバーフロー又は固有のエラー等の例外を発生することが想定される。
第ｎアクセラレータ８は、ＭＰＥＧの画像復号化アクセラレータであり、プロセッサ３から処理の依頼を示す命令が、ｅｘｔｒｅｇに書き込まれることで画像復号化処理を実行する機能を有し、ビットストリームのアンダーフロー又は固有のエラー等の例外を発生することが想定される。
【００５９】
また、図示していないが、第ｎ−１アクセラレータは、固有の例外を発生せず、アドレス未実装例外のみを発生する。
例外制御部４Ａは、上述の複数のアクセラレータにそれぞれに対応して、ａｉｎｔｒｅｇｎに書き込まれる設定情報とａｒｅｇｎに書き込まれる状態情報とに基づいて、“ＢＵＳＹ”割り込み要求、又は “ＲＥＡＤＹ”割り込み要求のいずれかを割り込みコントローラ５に通知させるか否かの判定を行う。
＜補足＞
なお、本発明は上述の実施の形態に限定されるものでないことは、勿論である。以下に示す内容も本発明に含まれる。
（１）上述の実施の形態では、プロセッサとアクセラレータは同じクロックサイクルで動作しているとして説明したが、動作周波数は同じでなくてもよい。一般的に、アクセラレータの動作周波数の方がプロセッサより遅い。
（２）上述の実施の形態では、プロセッサ３と例外制御部４は、同じチップ上に形成されており、アクセラレータ６は、別のチップ上に形成されているとしたが、プロセッサ３と例外制御部４とアクセラレータ６を１つのＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）チップに形成していてもよく、また、半導体技術の進歩により、又は派生する別技術により、現在の半導体技術に置き換わる集積回路化の技術が登場すれば、その技術を用いて集積化を行ったチップに形成していてもよい。
（３）上述の実施の形態では、例外制御部４は、プロセッサ３と別の回路として説明したが、プロセッサ３に含まれる一機能部であってもよい。
（４）アクセラレータ６は、実行すべき定型処理をプログラムすることが可能な論理素子で実現されていてもよい。
【産業上の利用可能性】
【００６０】
本発明は、ハードウェアアクセラレータ等、プロセッサから処理依頼を受けて特定の処理を行う情報処理回路を備える情報処理装置、例えば、携帯電話機、デジタルテレビ、レコーダ、パソコン等に有用である。
【符号の説明】
【００６１】
１Ａ  情報処理装置
２        命令メモリ
３        プロセッサ
４        例外制御部
５        割り込みコントローラ
６        （第１）アクセラレータ
７、９    状態通知部
８        第ｎアクセラレータ
２０      アドレスバス
２１      データバス
２２      リクエストバス
２３      ｂｕｓｙ／ｉｄｌｅ信号線
２４      ｅｒｒｏｒ信号線
【図１】
2010102732.tif 000003
【図２】
2010102732.tif 000004
【図３】
2010102732.tif 000005
【図４】
2010102732.tif 000006
【図５】
2010102732.tif 000007