(57)【要約】【課題】ハードウエア割り込みを高品質で低工数短期間で設計可能あなＣＰＵの提供を目的とする。【解決手段】本ＣＰＵ１０は、命令コードを読み出してフェッチレジスタ４０にフェッチするフェッチ回路１００と、フェッチレジスタ４０にフェッチされている命令コードを受け取り、デコードして実行する命令デコード実行回路２００とを含み、フェッチ回路１００は、所定のハードウエア割り込みに対応した所定のソフトウエア割り込み命令の命令コードを保持するソフトウエア割り込み命令コード保持部７０と、ソフトウエア割り込み命令コード７２と、命令コード６０のなかからハードエアウエア割り込み３０の発生に応じていずれかを選択してフェッチレジスタに出力する選択回路８０と、を含み、命令デコード実行回路２００は、前記所定のソフトウエア割り込み命令の命令コードをデコードして実行するソフトウエア割り込み処理部２１０を含む。【選択図】図１
2007193572.tif 000002
【特許請求の範囲】
【請求項１】
所定のハードウエア割り込みを受け付けるＣＰＵであって、
命令コードを読み出してフェッチレジスタにフェッチするフェッチ回路と、
前記フェッチレジスタにフェッチされている命令コードを受け取り、デコードして実行する命令デコード実行回路とを含み、
前記フェッチ回路は、
前記所定のハードウエア割り込みに対応した所定のソフトウエア割り込み命令の命令コードを保持するソフトウエア割り込み命令コード保持部と、
ソフトウエア割り込み命令コード保持部に保持されたソフトウエア割り込み命令コードと、プログラムカウンタ値に基づいて読み出される命令コードのなかからハードエアウエア割り込みの発生に応じていずれかを選択してフェッチレジスタに出力する選択回路と、を含み、
前記命令デコード実行回路は、
前記所定のソフトウエア割り込み命令の命令コードをデコードして実行するソフトウエア割り込み処理部を含むことを特徴とするＣＰＵ。
【請求項２】
請求項１において、
前記フェッチ回路は、
ハードウエア割り込みが発生した場合には、プログラムカウンタ値が次の命令のアドレスにインクリメントされないように制御するプログラムカウンタ制御回路を含むことを特徴とするＣＰＵ。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記フェッチ回路は、
命令の読み出しがウエイト状態にあるか否かを示すウエイト信号を受け取り、ウエイト信号に基づきフェッチ動作を許可するか否かを指示するフェッチライトイネーブル信号を生成するフェッチ制御部を含み、
前記フェッチレジスタは、
前記フェッチライトイネーブル信号がイネーブル状態のときに書き込みが許可され、
前記プログラムカウンタ制御回路は、
フェッチライトイネーブル信号がディセーブルである場合にはプログラムカウンタ値のインクリメントを行わないように制御することを特徴とするＣＰＵ。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記フェッチ回路のソフトウエア割り込み命令コード保持部は、
複数の異なるハードウエア割り込みに対応した複数の異なるソフトウエア割り込み命令の命令コードを保持し、
前記フェッチ回路の選択回路は、
ソフトウエア割り込み命令コード保持部に保持された複数の異なるソフトウエア割り込み命令コードと、プログラムカウンタ値に基づいて読み出される命令コードのなかからハードエアウエア割り込みの種類に応じていずれかを選択してフェッチレジスタに出力し、
前記命令デコード実行回路のソフトウエア割り込み処理部は、
前記複数の異なるソフトウエア割り込み命令の命令コードをデコードして実行することを特徴とするＣＰＵ。
【請求項５】
請求項１乃至４のいずれかに記載のＣＰＵを含むことを特徴とする集積回路装置。
【請求項６】
請求項１乃至４のいずれかに記載のＣＰＵを含むことを特徴とするマイクロコンピュータ。
【請求項７】
請求項６に記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ、集積回路装置、マイクロコンピュータ及び電子機器に関する。
【背景技術】
【０００２】
従来のＣＰＵやマイクロコンピュータでは、周辺機能部からの割込み要求信号および外部割込み要求端子からの割込み要求信号となどの、ハードウエア割り込み信号を直接処理するハードウエアを持たせていた。
【特許文献１】特開平７−１０５１７５号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしハードウエア割り込みは非同期ではいるため、命令との組み合わせ、ウエイト状態も含めた組み合わせ等の品質を保証するため、割り込み処理のハードウエアのテストとデバッグに多くの工数と期間がかかっていた。
【０００４】
本発明は以上のような問題点に鑑みてなされたものであり、ハードウエア割り込みを高品質で低工数短期間で設計可能あなＣＰＵの提供を目的とする。
【課題を解決するための手段】
【０００５】
（１）本発明は、
所定のハードウエア割り込みを受け付けるＣＰＵであって、
命令コードを読み出してフェッチレジスタにフェッチするフェッチ回路と、
前記フェッチレジスタにフェッチされている命令コードを受け取り、デコードして実行する命令デコード実行回路とを含み、
前記フェッチ回路は、
前記所定のハードウエア割り込みに対応した所定のソフトウエア割り込み命令の命令コードを保持するソフトウエア割り込み命令コード保持部と、
ソフトウエア割り込み命令コード保持部に保持されたソフトウエア割り込み命令コードと、プログラムカウンタ値に基づいて読み出される命令コードのなかからハードエアウエア割り込みの発生に応じていずれかを選択してフェッチレジスタに出力する選択回路と、を含み、
前記命令デコード実行回路は、
所定のソフトウエア割り込み命令の命令コードをデコードして実行するソフトウエア割り込み処理部を含むことを特徴とする。
【０００６】
所定のハードウエア割り込みに対応した所定のソフトウエア割り込み命令とは、所定のハードウエア割り込みと等価な処理が行われるソフトウエア割り込み命令のことである。すなわち所定のハードウエア割り込みの処理を行うかわりに所定のソフトウエア割り込み命令を行うことができる命令のことである。
【０００７】
本発明によれば、ハードウエア割り込みが発生した場合に、対応するソフトウエア割り込みにおきかえて処理を行うことができる。したがってハードウエア割り込みとソフトウエア割り込みの処理の仕組みを共有することができるため、複雑な組み合わせテストは不要となり、ＣＰＵへの割り込み機能の組み込みが低工数、短納期でおこなえるようになる。
【０００８】
（２）本発明のＣＰＵは、
前記フェッチ回路は、
ハードウエア割り込みが発生した場合には、プログラムカウンタ値が次の命令のアドレスにインクリメントされないように制御するプログラムカウンタ制御回路を含むことを特徴とする。
【０００９】
割り込みが発生した場合には現在の処理を中断して割り込み処理にはいるため、割り込み後にまた現在の処理を続行するために、現在の処理の次の処理に対応するプログラムカウンタの値をスタックレジスタに保持しておく処理を行う。
【００１０】
例えばメモリ上にある命令Ａ，Ｂを順次実行する場合Ａがフェッチされた時点でＡのアドレスを示していたプログラムカウンタは、Ａがデコード実行される時（このときは命令Ｂがフェッチされる）にはプログラムカウンタはインクリメントして次の命令Ｂのアドレスを有している。従ってＡが通常のソフトウエア割り込み命令である場合には、割り込み後に復帰する場所は次の命令Ｂなので、インクリメントされたアドレスでよい。
【００１１】
しかし本発明のハードウエア割り込みが発生した場合には現在の処理を行う予定の命令コード（Ａとする）の代わりに、ハードウエア割り込みに対応したソフトウエア割り込み命令の実行される。したがって割り込み後に復帰する場所は命令Ａなので、スタックポインタに命令Ａのアドレスが待避されなければならない。本発明によれば、ハードウエア割り込みに対応したソフトウエア割り込み命令の実行時にプログラムカウンタがインクリメントされないように制御するため、スタックポインタに正しい値を待避させることができる。
【００１２】
（３）本発明のＣＰＵは、
前記フェッチ回路は、
命令の読み出しがウエイト状態にあるか否かを示すウエイト信号を受け取り、ウエイト信号に基づきフェッチ動作を許可するか否かを指示するフェッチライトイネーブル信号を生成するフェッチ制御部を含み、
前記フェッチレジスタは、
前記フェッチライトイネーブル信号がイネーブル状態のときに書き込みが許可され、
前記プログラムカウンタ制御回路は、
フェッチライトイネーブル信号がディセーブルである場合にはプログラムカウンタ値のインクリメントを行わないように制御することを特徴とする。
【００１３】
このようにすると、フェッチするタイミングでハードウエア割り込みの発生を受け付けることができる。またフェッチレジスタへの書き込みと、プログラムカウンタの更新の同期をとることができる。
【００１４】
（４）本発明のＣＰＵは、
前記フェッチ回路のソフトウエア割り込み命令コード保持部は、
複数の異なるハードウエア割り込みに対応した複数の異なるソフトウエア割り込み命令の命令コードを保持し、
前記フェッチ回路の選択回路は、
ソフトウエア割り込み命令コード保持部に保持された複数の異なるソフトウエア割り込み命令コードと、プログラムカウンタ値に基づいて読み出される命令コードのなかからハードエアウエア割り込みの種類に応じていずれかを選択してフェッチレジスタに出力し、
前記命令デコード実行回路のソフトウエア割り込み処理部は、
前記複数の異なるソフトウエア割り込み命令の命令コードをデコードして実行することを特徴とする。
【００１５】
本発明によれば複数の異なるハードウエア割り込みが発生した場合に、対応するソフトウエア割り込みにおきかえて処理を行うことができる。したがって複数の異なるハードウエア割り込みと各ハードウエア割り込みに対応したソフトウエア割り込みの処理の仕組みを共有することができるため、複雑な組み合わせテストは不要となり、ＣＰＵへの割り込み機能の組み込みが低工数、短納期でおこなえるようになる。
【００１６】
（５）本発明は、
上記のいずれかに記載のＣＰＵを含むことを特徴とする集積回路装置である。
【００１７】
（６）本発明は、
上記のいずれかに記載のＣＰＵを含むことを特徴とするマイクロコンピュータである。
【００１８】
（７）本発明は、
上記に記載のマイクロコンピュータと、
入力情報を受け付ける手段と、
入力情報に基づき前記情報処理装置により処理された結果を出力するため手段と、
を含むことを特徴とする電子機器である。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
【００２０】
１．ＣＰＵ
以下、本発明の好適な実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００２１】
図１は、本実施の形態のＣＰＵの構成について説明するための機能ブロック図である。
【００２２】
本実施の形態のＣＰＵ１０は、所定のハードウエア割り込み３０を受け付けるＣＰＵであって、命令コードを読み出してフェッチレジスタ４０にフェッチするフェッチ回路１００と、フェッチレジスタ４０にフェッチされている命令コードを受け取りデコードして実行する命令デコード実行部２００とを含む。
【００２３】
フェッチ回路１００は、ソフトウエア割り込み命令コード保持部７０を含む。ソフトウエア割り込み命令コード保持部７０は、所定のハードウエア割り込み３０に対応した所定のソフトウエア割り込み命令の命令コードを保持する。所定のハードウエア割り込み３０に対応した所定のソフトウエア割り込み命令とは、所定のハードウエア割り込みと等価な処理が行われるソフトウエア割り込み命令のことである。すなわち所定のハードウエア割り込みの処理を行うかわりに所定のソフトウエア割り込み命令を行うことができる命令のことである。
【００２４】
命令の具体例については図４で説明する。
【００２５】
またフェッチ回路１００は、ソフトウエア割り込み命令コード保持部７０に保持されたソフトウエア割り込み命令コード７２と、プログラムカウンタ値に基づいて読み出される命令コード６０のなかからハードエアウエア割り込み３０の発生に応じていずれかを選択してフェッチレジスタ４０に出力する選択回路８０と、を含む。
【００２６】
命令デコード実行部２００は、所定のソフトウエア割り込み命令の命令コード７２をデコードして実行するソフトウエア割り込み処理部２１０を含む。
【００２７】
フェッチ回路１００は、プログラムカウンタ制御回路１１０、フェッチ制御部を含む。
【００２８】
プログラムカウンタ制御回路１１０は、ハードウエア割り込み３０が発生した場合には、プログラムカウンタ５０の値が次の命令のアドレスにインクリメントされないように制御する。
【００２９】
フェッチ制御部は、命令の読み出しがウエイト状態にあるか否かを示すウエイト信号１３２を受け取り、ウエイト信号１３２に基づきフェッチ動作を許可するか否かを指示するフェッチライトイネーブル信号１３４を生成する。
【００３０】
ここにおいてウエイト信号１３２は図示しない命令バスからうけとるようにしてもよい。ウエイト信号がウエイト状態であることを示している場合には、フェッチライトイネーブル信号１３４をディセーブルにするようにしてもよい。
【００３１】
また前記フェッチレジスタ４０は、フェッチライトイネーブル信号１３４がイネーブル状態のときに書き込みが許可されるようにしてもよい。
【００３２】
そしてプログラムカウンタ制御回路１１０は、フェッチライトイネーブル信号１３４がディセーブルである場合にはプログラムカウンタ５０の値のインクリメントを行わないように制御してもよい。
【００３３】
このようにすると、フェッチするタイミングでハードウエア割り込みの発生を受け付けることができる。またフェッチレジスタへの書き込みと、プログラムカウンタの更新の同期をとることができる。
【００３４】
フェッチ回路１００は例えば、アンド回路９０、選択回路８０、ソフトウエア割り込み命令コード保持部７０、フェッチレジスタ４０、フェッチ制御部１３０、プログラムカウンタ制御回路１１０を含んで構成することができる。
【００３５】
アンド回路９０は、ハードウエア割り込み３０と割り込みマスク２０の反転値を入力し、フェッチデータ選択信号１０を出力する。割り込みマスク２０は命令デコード実行回路から出力される信号であり、図２に示すようにハードウエア割り込み３０の値を1クロックずらして生成される信号である。
【００３６】
このようにすると、割り込みが実行されると割り込み実行中となり割り込みマスク２０により、以降のハードウエア割り込みが入らないようにすることができる。
【００３７】
選択回路８０の入力は、図示しない命令バスとソフトウエア割り込み命令コード保持部の出力に接続され、フェッチデータ選択信号１０を選択信号として入力を選択し出力する。選択回路８０の出力８２フェッチレジスタ４０の入力に接続される。このようにすることでハードウエア割り込みが入ると選択回路はソフトウエア割り込み命令コード保持部に保持されているソフトウエア割り込み命令コードを選択して出力するように構成することができる。
【００３８】
フェッチレジスタ４０は例えば１６ビットのＦＦで構成され、選択回路８０の出力８２が入力に接続され、フェッチライトイネーブル信号１３４がイネーブル入力に接続され、出力信号４２は命令デコード実行部２００の入力となるように構成することができる。
【００３９】
プログラムカウンタ制御回路１１０は、フェッチライトイネーブル信号１３４がディセーブルである場合にはプログラムカウンタ５０の値のインクリメントを行わないように制御するようにしてもよい。
【００４０】
プログラムカウンタ制御回路１１０は、プログラムカウンタ５０、加算機（ＡＤＤＲ）１６０、選択回路（ＭＵＸ）１２０、アンド回路１４０、割り込み用ＰＣ更新マスク回路を含むように構成することができる。
【００４１】
アンド回路１４０は、例えばフェッチライトイネーブル信号１３４と選択信号１０の反転値を入力とし、その出力（ＰＣライトイネーブル信号１１２）がプログラムカウンタ５０のイネーブル入力に接続されるようにすることで、フェッチライトイネーブル信号１３４がディセーブルである場合にはプログラムカウンタ５０の値のインクリメントを行わないように制御することができる。
【００４２】
このように構成することで、プログラムカウンタには命令がフェッチされると同時に次の命令のアドレスがライトされ、ハードウエア割り込みが入り対応するソフトウエア割り込み命令がフェッチされるときは、プログラムカウンタはインクリメントされないように制御することができる。
【００４３】
プログラムカウンタ５０は、例えば１６ビットのＦＦで構成され、割り込み用ＰＣ更新マスク回路１５０の出力１５２が入力に接続され、ＰＣライトイネーブル信号１１４がイネーブル入力に接続され、出力信号４２は加算機（ＡＤＤＲ）１６０の一方の入力に接続するようにしてもよい。
【００４４】
加算機（ＡＤＤＲ）１６０の他方の入力は選択回路（ＭＵＸ）１２０の出力１２２に接続され、加算機（ＡＤＤＲ）１６０の出力１６２は割り込み用ＰＣ更新マスク回路１５０の入力に接続される。
【００４５】
割り込み用ＰＣ更新マスク回路はアンド回路で構成され、加算機（ＡＤＤＲ）１６０の出力１６２と命令デコード実行部２００のソフトウエア割り込み処理部２１０が出力する０マスク信号２１２を入力し、その出力はプログラムカウンタの入力に接続される。ソフトウエア割り込み処理部２１０はソフトウエア割り込み命令を検出すると、０番地に分岐（割り込み発生時に０番地に分岐する仕様の場合）させるため、all０の０マスク信号が出力される。なお通常（ソフトウエア割り込み発生時以外）はall１の信号となっている。
【００４６】
割り込み用ＰＣ更新マスク回路１５０はall０の０マスク信号を入力するとその出力は信号はall０となり、プログラムカウンタ５０に０番地がセットされる。
【００４７】
選択回路（ＭＵＸ）１２０の入力はインクリメント値（例えば＋２）と命令デコード実行部２００が出力する分岐用オフセット値２０４に接続され、命令デコード実行部２００が出力する分岐セレクト信２０６を選択信号とする。命令デコード実行部２００は分岐命令を検出すると分岐命令に指定されている分岐用のオフセット値を出力するとともに、分岐セレクト信２０６をオン（所定のレベル）にする。
【００４８】
従って選択回路１２０は分岐命令発生時には分岐用のオフセット値を出力し、プログラムカウンタには、現アドレスに分岐用オフセット値が加算された分岐先アドレスが設定される事となる。このように構成することでプログラムカウンタ５０には次の命令もしくは分岐先のアドレスが格納される。
【００４９】
図２（Ａ）はメモリに記憶されている命令コード列であり、図２（Ｂ）はハードウエア割り込みが入った場合のタイミングチャート図である
デコード実行動作３２０は、図２（Ａ）に示すように００１２番地の「ｓｕｂ」命令が実行されているときに、ハードウエア割り込みが入った場合（３１０参照）の命令デコード実行部及びフェッチ回路の動作を示している。
【００５０】
ハードウエア割り込み３０は、ハードウエア割り込みが入るとＬレベルからＨレベルに変化する信号である。ここでは「ｓｕｂ」実行中にハードウエア割り込みが入り、ＬレベルからＨレベルに変化している。
【００５１】
割り込みマスク２０は命令デコード実行回路が所定のハードウエア割り込みに対応した所定のソフトウエア割り込みを受け取るとＬレベルからＨレベルに変化する信号である。ここではｓｕｂの次に所定のソフトウエア割り込みを受け取りＬレベルからＨレベルに変化している。
【００５２】
フェッチデータ選択信号１０はアンド回路（図１の１０）の出力であり、選択回路（図１の８０）の選択信号となる。フェッチデータ選択信号１０はハードウエア割り込みが入ったタイミングで1パルスのＨレベル信号を出力する（３４０参照）。選択回路（図１の８０）はフェッチデータ選択信号１０がＨレベルの時はソフトウエア割り込み命令保持部の値を選択する。
【００５３】
従ってフェッチレジスタ４０の値は「ｓｕｂ」の次は「ｉｎｔ」（ソフトウエア割り込み命令）となる。（３５０参照）。
【００５４】
ＰＣライトイネーブル信号１１２は、フェッチデータ選択信号１０の反転値とフェッチライトイネーブル信号１３４を入力とするアンド回路（図１の１４０）の出力であり、アンドプログラムカウンタ（図１の５０）のイネーブル入力となる信号である。ＰＣライトイネーブル信号１１２は、イネーブルのときＨレベルとなりディセーブルのときＬレベルとなる信号である。
【００５５】
フェッチライトイネーブル信号１３４はフェッチ制御部１３０から出力される信号であり、イネーブル状態でＨレベル、ディセーブル状態でＬレベルとなる信号である。ここではウエイト状態がないので、フェッチライトイネーブル信号１３４はＨレベルとなっている。
【００５６】
ＰＣライトイネーブル信号１１２はプログラムカウンタの値が’００１４’の時にＬレベルとなり（３６０参照）次のクロックでプログラムカウンタがインクリメントされるのを防止する。
【００５７】
従ってデコード実行回路でソフトウエア割り込み命令「ｉｎｔ」の処理が行われる際に（３７０参照）、プログラムカウンタ５０の値は更新されず前クロックと同じ値’００１４’を保持している。このため、デコード実行回路でソフトウエア割り込み命令「ｉｎｔ」の処理が行われる際に、既に実行済みの命令「ｓｕｂ」（メモリ上のアドレス００１２にある命令）の次の命令「ｏｒ」（メモリ上のアドレス００１４にある命令）のアドレスをスタックポインタに待避する。このため、割り込みから復帰した際に、既に実行済みの命令「ｓｕｂ」（メモリ上のアドレス００１２にある命令）の次の命令「ｏｒ」（メモリ上のアドレス００１４にある命令）から実行を開始することができる。
【００５８】
図３は、本実施の形態のＣＰＵが処理するソフトウエア割り込み命令について説明するための図である。
【００５９】
本実施の形態のＣＰＵは４００に示すような１６ビットの命令コードをデコードして実行している。命令コード４００の上位６ビット（０〜５）はオペコード４１０であり、上位６ビットがオール１の場合が割り込み命令であることを示している。
【００６０】
命令コードの６〜７目ビットは割り込み種別４２０であり、’００’はソフトウエア割り込み、’０１’はハードウエア割り込み、’１０’はソフトウエアブレイク、’１１’はハードウエアブレイクを示している。
【００６１】
命令コードの６〜７ビット目は割り込み種別４２０であり、’００’はソフトウエア割り込み、’０１’はハードウエア割り込み、’１０’はソフトウエアブレイク、’１１’はハードウエアブレイクを示している。
【００６２】
命令コードの８〜１１ビット目は割り込み番号４３０であり、飛び先を特定するための値が格納されている。
【００６３】
命令コードの１２ビット目は割り込みマスク４４０であり、’１’はマスク、’０’は変化無しを示している。
【００６４】
命令コードの１３ビット目は割り込みレベルのセットの有無４５０であり、’１’はセット有り、’０’はセット無しを示している。
【００６５】
命令コードの１４〜１５ビット目は割り込みレベル４６０であり、優先順位に応じて設定された値（例えば優先順位が高いほど小さな値）が格納されている。
【００６６】
図４は本実施の形態の種類の異なる割り込みに対応したソフトウエア割り込みの命令コードについて示した図である。
【００６７】
ハードウエア割り込みとしては、通常のハードウエア割り込みの他にも、ＮＭＩ（ノンマスカブル割り込み）、命令例外、ハードウエアブレイク等がある。
【００６８】
これらの各ハードウエア割り込みをソフトウエア割り込みとして処理できるように、これらの各ハードウエア割り込みに対応した割り込み処理をソフトウエア割り込みで実現するために、図４にしめすようにＮＭＩ（ノンマスカブル割り込み）、命令例外、通常のハードウエア割り込み、ハードウエアブレイクに対応して、異なる命令コードを持つソフトウエア割り込み命令を用意してもよい。
【００６９】
すなわちＮＭＩ（ノンマスカブル割り込み）、命令例外、通常のハードウエア割り込み、ハードウエアブレイクに対応して、それそれ’ＦＤ１８’（４９０参照）、’ＦＤ２８’（４９２参照）、’ＦＤ〜’（４９４参照）、’ＦＤ０８’（４９６参照）という命令コードを有している。
【００７０】
ソフトウエア割り込み命令保持部には、「ハードウエア割り込み」４８４に対応した所定のハードウエア割り込みとしてソフトウエア割り込み命令の命令コード’ＦＤ〜’を格納してもよい。
【００７１】
またソフトウエア割り込み命令保持部に、図４に示すような複数の異なるハードウエア割り込みに対応したソフトウエア割り込み命令の命令コード’ＦＤ１８’（４９０参照）、’ＦＤ２８’（４９２参照）、’ＦＤ〜’（４９４参照）、’ＦＤ０８’（４９６参照）を保持して、ソフトウエア割り込みとして実現する構成でもよい。
【００７２】
図５は複数の異なるハードウエア割り込みに対応したソフトウエア割り込みを実現する場合のＣＰＵの構成例である。図１と同じ構成については図及び説明を省略する。
【００７３】
フェッチ回路１００’のソフトウエア割り込み命令コード保持部７０’，７２’，７４’、７６’は、複数の異なるハードウエア割り込みに対応した複数の異なるソフトウエア割り込み命令の命令コードを保持する。
【００７４】
例えば第１の命令コード保持部７０’にはＮＭＩコード’0xFD18’を保持し、第２の命令コード保持部７２’には命令例外コード’0xFD28’を保持し、第３の命令コード保持部７４’にはハードウエアブレイクコード’0xFF08’を保持し、第４の命令コード保持部７６’にはハードウエア割り込みコード’0xFD〜’を保持するようにしてもよい。
【００７５】
フェッチ回路１００’の選択回路は、ソフトウエア割り込み命令コード保持部７０’，７２’，７４’、７６’に保持された複数の異なるソフトウエア割り込み命令コード７１’，７３’，７５’、７７’と、プログラムカウンタ値に基づいて読み出される命令コード６０のなかからハードエアウエア割り込みの種類に応じていずれかを選択してフェッチレジスタ４に出力する。
【００７６】
ここで選択回路８０’の入力は、図示しない命令バスの出力６０、第１のソフトウエア割り込み命令コード保持部の出力７１’、第２のソフトウエア割り込み命令コード保持部の出力７３’、第３のソフトウエア割り込み命令コード保持部の出力７５’、第４のソフトウエア割り込み命令コード保持部の出力７７’に接続され、フェッチデータ選択信号１９２を選択信号として入力を選択し出力する。選択回路８０’の出力８２’はフェッチレジスタ４０の入力に接続される。
【００７７】
このようにすることで種類の異なるいずれかのハードウエア割り込みが入ると選択回路は対応するソフトウエア割り込み命令の命令コードが保持されているソフトウエア割り込み命令コード保持部に保持されているソフトウエア割り込み命令コードを選択して出力するように構成することができる。
【００７８】
フェッチデータ選択信号１９２は、ソフトウエア割り込み選択信号生成部１８０とアンド回路１９０とによって生成するようにしてもよい。
【００７９】
ソフト割り込み選択信号生成部１８０は、ハードウエアブレイク３４、ＭＮＩ３２、ハードウエア割り込み３０、命令例外２０８等の割り込みを受け付け、設定されている優先順位に従って選択する割り込みを特定するソフト割り込み選択信号１８２を生成する。ここで命令例外２０８は、命令デコード実行部が命令実行時に検出して出力する信号である。
【００８０】
例えばハードウエアブレイク＞命令例外＞ＮＭＩ＞ハードウエア割り込みという優先順位が設定されていたとする。入ってきた割り込みのタイミングが競合しない場合には、受け付けた割り込みに対応したソフトウエア割り込みの命令コードを選択するためのソフトウエア割り込み選択信号１８２を生成する。また競合するタイミングで複数の割り込みが入ってきた場合には設定された優先順位にしたがって優先順位の高い割り込みを選択して、選択された割り込みの命令コードを選択するためのソフトウエア割り込み選択信号１８２を生成する。
【００８１】
アンド回路１９０の入力は、ソフトウエア割り込み選択信号１８２と割り込みマスク信号２１３に接続され、出力がフェッチデータ選択信号１９２として選択回路８０’の選択信号となる。
【００８２】
したがって割り込みマス２１３が’１’（割り込みマスク有りの場合）にはソフトウエア割り込み選択信号１８２にしたがった選択を行うための選択信号１９２となり、割り込みマスク２１３が’０’（変化なしの場合）には命令コード６０の選択を行うため選択信号１９２となる。
【００８３】
割り込みマスク２１３は命令デコード実行部２００’のソフトウエア割り込み処理部２１０’の割り込みマスクレジスタ２１２の値が出力されたものである。ソフトウエア割り込み処理部２１０’はソフトウエア割り込みの命令を検出すると命令コードの割り込みマスク（図３の４４０参照）に格納されている値を割り込みマスクレジスタ２１２に設定する。
【００８４】
２．マイクロコンピュータ
図６は、本実施の形態のマイクロコンピュータのハードウエアブロック図の一例である。
【００８５】
本マイクロコンピュータ７００は、ＣＰＵ５１０、キャッシュメモリ５２０、ＬＣＤコントローラ５３０、リセット回路５４０、プログラマブルタイマ５５０、リアルタイムクロック（ＲＴＣ）５６０、ＤＲＡＭコントローラ兼バスＩ／Ｆ５７０、割り込みコントローラ５８０、シリアルインターフェース５９０、バスコントローラ６００、Ａ／Ｄ変換器６１０、Ｄ／Ａ変換器６２０、入力ポート６３０、出力ポート６４０、Ｉ／Ｏポート６５０、クロック発生装置５６０、プリスケーラ５７０及びそれらを接続する汎用バス６８０、専用バス７３０等、各種ピン６９０等を含む。
【００８６】
ＣＰＵ５１０は、例えば図１〜図５で説明した構成を有する。
【００８７】
３．電子機器
図７に、本実施の形態の電子機器のブロック図の一例を示す。本電子機器８００は、マイクロコンピュータ（またはＡＳＩＣ）８１０、入力部８２０、メモリ８３０、電源生成部８４０、ＬＣＤ８５０、音出力部８６０を含む。
【００８８】
ここで、入力部８２０は、種々のデータを入力するためのものである。マイクロコンピュータ８１０は、この入力部８２０により入力されたデータに基づいて種々の処理を行うことになる。メモリ８３０は、マイクロコンピュータ８１０などの作業領域となるものである。電源生成部８４０は、電子機器８００で使用される各種電源を生成するためのものである。ＬＣＤ８５０は、電子機器が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものである。
【００８９】
音出力部８６０は、電子機器８００が出力する各種の音（音声、ゲーム音等）を出力するためのものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００９０】
図８（Ａ）に、電子機器の１つである携帯電話９５０の外観図の例を示す。この携帯電話９５０は、入力部として機能するダイヤルボタン９５２や、電話番号や名前やアイコンなどを表示するＬＣＤ９５４や、音出力部として機能し音声を出力するスピーカ９５６を備える。
【００９１】
図８（Ｂ）に、電子機器の１つである携帯型ゲーム装置９６０の外観図の例を示す。この携帯型ゲーム装置９６０は、入力部として機能する操作ボタン９６２、十字キー９６４や、ゲーム画像を表示するＬＣＤ９６６や、音出力部として機能しゲーム音を出力するスピーカ９６８を備える。
【００９２】
図８（Ｃ）に、電子機器の１つであるパーソナルコンピュータ９７０の外観図の例を示す。このパーソナルコンピュータ９７０は、入力部として機能するキーボード９７２や、文字、数字、グラフィックなどを表示するＬＣＤ９７４、音出力部９７６を備える。
【００９３】
本実施の形態のマイクロコンピュータを図８（Ａ）〜図８（Ｃ）の電子機器に組みむことにより、低消費電力でコストパフォーマンスの高い電子機器を提供することができる。
【００９４】
なお、本実施形態を利用できる電子機器としては、図８（Ａ）、（Ｂ）、（Ｃ）に示すもの以外にも、携帯型情報端末、ページャー、電子卓上計算機、タッチパネルを備えた装置、プロジェクタ、ワードプロセッサ、ビューファインダ型又はモニタ直視型のビデオテープレコーダ、カーナビゲーション装置等のＬＣＤを使用する種々の電子機器を考えることができる。
【００９５】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【図面の簡単な説明】
【００９６】
【図１】本実施の形態のＣＰＵの機能ブロック図。
【図２】図２（Ａ）はメモリに記憶されている命令コード列であり、図２（Ｂ）はハードウエア割り込みが入った場合のタイミングチャート図である
【図３】本実施の形態のＣＰＵが処理するソフトウエア割り込み命令について説明するための図である。
【図４】本実施の形態の種類の異なる割り込みに対応したソフトウエア割り込みの命令コードについて示した図である。
【図５】複数の異なるハードウエア割り込みに対応したソフトウエア割り込みを実現する場合のＣＰＵの構成例である。
【図６】本実施の形態のマイクロコンピュータのハードウエアブロック図。
【図７】マイクロコンピュータを含む電子機器のブロック図の一例を示す。
【図８】図８（Ａ）（Ｂ）（Ｃ）は、種々の電子機器の外観図の例である。
【符号の説明】
【００９７】
１  ＣＰＵ、１０  フェッチデータ選択信号、２０  割り込みマスク、３０  ハードウエア割り込み、４０  フェッチレジスタ、５０  プログラムカウンタ、６０  命令コード、７０  ソフトウエア割り込み命令コード保持部、８０  選択回路、９０  アンド回路、１００  フェッチ回路、１１０  プログラムカウンタ制御回路、１１２  ＰＣライトイネーブル信号、１２０  選択回路、１３０  フェッチ制御部、１３２  ウエイト信号、１３４  フェッチライトイネーブル信号、１４０  アンド回路、１５０割り込み用ＰＣ更新マスク回路、１６０  加算機２００  命令デコード実行部、２１０  ソフトウエア割り込み処理部、５１０  ＣＰＵ、５３０  ＬＣＤコントローラ、５４０  リセット回路、５５０  プログラマブルタイマ、５６０  リアルタイムクロック（ＲＴＣ）、５７０  ＤＲＡＭコントローラ兼バスＩ／Ｆ、５８０  割り込みコントローラ、５９０  シリアルインターフェース、６００  バスコントローラ、６１０  Ａ／Ｄ変換器、６２０  Ｄ／Ａ変換器、６３０  入力ポート、６４０  出力ポート、６５０  Ｉ／Ｏポート、６６０  クロック発生装置（ＰＬＬ）、６７０  プリスケーラ、６８０  汎用バス、６９０  各種ピン、７００  マイクロコンピュータ、７１０  ＲＯＭ、７２０  ＲＡＭ、７３０  ＭＭＵ、７４０  クロック供給制御回路、８００  電子機器、８５０  ＬＣＤ
【図１】
2007193572.tif 000003
【図２】
2007193572.tif 000004
【図３】
2007193572.tif 000005
【図４】
2007193572.tif 000006
【図５】
2007193572.tif 000007
【図６】
2007193572.tif 000008
【図７】
2007193572.tif 000009
【図８】
2007193572.tif 000010