(57)【特許請求の範囲】
【請求項１】
割り込み要求信号が入力され、前記割り込み要求信号に応答して、割り込み要求があることを示す第１のデータを保持し、保持した前記第１のデータを割り込み要求出力回路へ出力する複数のデータ保持回路と、
論理の異なる第２および第３のデータを含む複数のビットデータが与えられるバスラインと、
前記データ保持回路から出力される前記第１のデータと、前記バスラインに与えられた前記第２、若しくは、前記第３のデータとが入力される複数の論理回路とを有し、
前記論理回路は、前記第１のデータと前記第２のデータとに応答して前記データ保持回路が保持する前記第１のデータを維持するデータを前記データ保持回路に出力し、
また、前記第１のデータと前記第３のデータとに応答して前記データ保持回路が保持する前記第１のデータをクリアするデータを前記データ保持回路に出力することを特徴とする割り込み要求回路。
【請求項２】
前記第１及び第２のデータの論理レベルは１であり、前記第３のデータの論理レベルは０であることを特徴とする請求項１記載の割り込み要求回路。
【請求項３】
前記論理回路は、アンドゲートであることを特徴とする請求項１または２のいずれかに記載の割り込み要求回路。
【請求項４】
割り込み要求信号が入力され、前記割り込み要求信号に応答して、割り込み要求があることを示す第１のデータを保持し、保持した前記第１のデータを割り込み要求出力回路へ出力する複数のデータ保持回路と、
論理の異なる第２および第３のデータを含む複数のビットデータが与えられるバスラインと、
前記データ保持回路から出力される前記第１のデータと、前記バスラインに与えられた前記第２、若しくは、前記第３のデータとが入力される複数の論理回路とを有する割り込み要求回路を用いた割り込み要求の処理方法において、
所定の前記データ保持回路に割り込み要求信号を与え当該データ保持回路に前記第１のデータを記憶させる第１のステップと、
前記論理回路により、前記第１のデータと前記第２のデータとに応答して前記データ保持回路が保持する前記第１のデータを維持するデータを前記データ保持回路に出力し、また、前記第１のデータと前記第３のデータとに応答して前記データ保持回路が保持する前記第１のデータをクリアするデータを前記データ保持回路に出力する第２のステップとを有することを特徴とする割り込み要求の処理方法。
【請求項５】
割り込み要求信号に応答して、割り込み要求が発生していることを示す第１のデータを保持し、かつ、中央処理演算装置に前記データを出力する複数のデータ保持回路を備えた割り込み要求回路において、
前記中央処理演算装置から出力される論理の異なる第２及び第３のデータを含む複数のビットデータが与えられるバスラインと、
前記データ保持回路から出力される前記第１のデータと、前記バスラインに与えられた第２、若しくは、第３のデータとが入力される複数の論理回路とを有し、
前記中央演算処理装置は、保持された前記第１のデータに関する割り込み処理が終了した前記データ保持回路に対応する前記論理回路には、第３のデータを、また、当該データ保持回路を除く全ての前記データ保持回路に対応する前記論理回路には、第２データを与えるようなビットデータを出力するとともに、
該論理回路は、前記第１のデータと前記第２のデータとに応答して前記データ保持回路が保持する前記第１のデータを維持するデータを前記データ保持回路に出力し、前記第１のデータと前記第３のデータとに応答して前記データ保持回路が保持する前記第１のデータをクリアするデータを前記データ保持回路に出力することを特徴とする割り込み要求回路。
【請求項６】
中央処理演算装置から出力される書込み信号が与えられたときに、前記論理回路の出力に応じて前記データ保持回路に保持された前記第１のデータがクリアされることを特徴とする請求項５記載の割り込み要求回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、マイコン等に使用される割り込み要求回路およびこの割り込み要求回路が示す割り込み要求の処理方法に関するものである。
【０００２】
【従来の技術】
マイコン等に使用される割り込み要求回路は、所定の機能を有する周辺回路（たとえばカウンタ、Ａ／Ｄ変換回路等）からの割り込み要求信号を受信し、受信したこの割り込み要求信号に対応する割り込み要求出力信号を中央演算処理装置（以下ＣＰＵとする。）に出力するものである。この割り込み要求回路は、対応する周辺回路から出力された割り込み要求信号に応答してセットされる複数のフリップフロップを有する。ＣＰＵは、フリップフロップの状態がリセット状態からセット状態に変化した時、セット状態に変化したこのフリップフロップの出力を割り込み要求出力信号として受信する。そしてＣＰＵは、セット状態に変化したこのフリップフロップに対応する周辺回路に関する割り込み処理を行う。その後ＣＰＵは、セット状態にあるフリップフロップをリセット状態に戻すクリア動作を行う。このクリア動作により、割り込み要求回路は、割り込み処理が終了したことを示す。従ってＣＰＵは、この割り込み要求回路の状態を検出することにより、周辺回路に割り込み要求が存在するかどうかを判断できる。そしてもし割り込み要求が存在する場合は、ＣＰＵは対応する割り込み処理を実行した後、上述のクリア動作を行う。
【０００３】
【発明が解決しようとする課題】
しかしながら、割り込み要求はＣＰＵの動作とは非同期にしかも複数発生する可能性がある。従って、ＣＰＵが最初の割り込み要求に対する処理を実行している間に、次の割り込み要求が発生した場合、最初の割り込み要求に対するクリア動作により次の割り込み要求も同時にクリアされてしまう可能性がある。すなわち、上述の割り込み要求回路では、ＣＰＵに対する割り込み要求が無視されてしまう可能性がある。
【０００４】
【課題を解決するための手段】
本発明の割り込み要求回路は、上述の問題点を解決するために、割り込み要求信号に応答して割り込み要求が発生していることを示す第１のデータを保持するデータ保持回路と、第２及び第３のデータが与えられるバスラインと、このバスラインとデータ保持回路との間に接続され、第１のデータと第２のデータとに応答してデータ保持回路が保持する第１のデータを維持するデータを出力し、第１のデータと第３のデータとに応答してデータ保持回路が保持する第１のデータをクリアするデータを出力する論理回路とを設けたものである。
【０００５】
また本発明の割り込み要求の処理方法は、所定のデータ保持回路に割り込み要求信号を与えこのデータ保持回路に第１のデータを記憶させるステップと、この第１のデータを記憶したデータ保持回路に第２のデータを与えると同時にこのデータ保持回路を除く全てのデータ保持回路に第１のデータを与えるステップとを施したものである。
【０００６】
【作用】
本発明によれば、割り込み要求があることを示すデータを記憶しているデータ保持回路のうち、割り込み要求が受け付けられたデータ保持回路にのみ第１のデータを与え、その他のデータ保持回路に第２のデータを与えることにより、結果として割り込み要求が受け付けられていないデータ保持回路のデータはクリアされずに維持される。
【０００７】
【実施例】
図１は、本発明の割り込み要求回路の一実施例を示す図である。
【０００８】
以下、本発明の割り込み要求回路の一実施例の構成を説明する。
【０００９】
本発明の割り込み要求回路は、割り込み要求入力端子１３７，１３９，１４１，１４３及び１４５の各々に対応したフリップフロップ１０１，１０３，１０５，１０７及び１０９と、アンドゲート１１１，１１３，１１５，１１７及び１１９とを有している。
【００１０】
割り込み要求入力端子１３７〜１４５は、割り込みの要因を有する回路からの割り込み要求信号を受信する端子である。例えば、割り込み要求入力端子１３７は、アナログディジタル変換回路（以下、Ａ／Ｄ変換回路とする。）に接続されており、Ａ／Ｄ変換回路からの割り込み要求信号を受信する。割り込み要求入力端子１３９は、入出力回路（以下、Ｉ／Ｏ回路とする。）に接続されており、Ｉ／Ｏ回路からの割り込み要求信号を受信する。このように、各割り込み要求入力端子は、各割り込み要求入力端子に対応した専用の回路からの割り込み要求信号を受信する。
【００１１】
データ入力端子１４７，１４９，１５１及び１５３は、フリップフロップ１０１，１０３，１０５，１０７及び１０９の各々に対応している。また、これらデータ入力端子１４７〜１５３は、データ出力端子１５７，１５９，１６１，１６３及び１６５の各々に対応している。そして、これらデータ入力端子１４７〜１５３は、対応したデータ出力端子１５７〜１６５とともに双方向データ線に接続されている。例えば、データ入力端子１４７は、データ出力端子１５７とともに図示しない１本目の双方向データ線に接続されている。データ入力端子１４９は、データ出力端子１５９とともに図示しない２本目の双方向データ線に接続されている。本実施例では、データバスが８本のデータ線で構成されているものとして説明する。従って、本実施例では、フリップフロップが８個、データ入力端子及びデータ出力端子が各々８個として説明する。また、フリップフロップに対応する各構成、例えばアンドゲート１１１〜１１９も８個として説明する。（説明を容易にするため、図面においては、フリップフロップ及びこのフリップフロップに対応する各構成は、５個のみを図示する。）
フリップフロップ１０１は、割り込み要求入力端子１３７に接続されたセット端子と、アンドゲート１１１の出力端子に接続されたデータ入力端子Ｄと、アンドゲート１１１の一方の入力端子に接続されたデータ出力端子Ｑと、リセット端子１６７に接続されたリセット端子Ｒと、アンドゲート１２１の出力端子に接続されたゲート端子Ｇとを有する。フリップフロップ１０１のデータ出力端子Ｑは、さらにゲート回路１２５及び割り込み要求信号出力回路１３５に接続されている。その他のフリップフロップ１０３〜１０９の各々も、フリップフロップ１０１と同様に、対応した割り込み要求入力端子１３９〜１４５、アンドゲート１１３〜１１９、リセット端子１６７、アンドゲート１２１、ゲート回路１２７〜１３３及び割り込み要求信号出力回路１３５に接続されている。これらのフリップフロップは、データ入力端子Ｄに与えられたデータを保持する機能を有する。従って、これらフリップフロップは８ビットのレジスタもしくはラッチ回路として機能する。（以下、これら８個のフリップフロップを１単位で考えるときは、８個のフリップフロップを割り込み要求レジスタと称す。）
ゲート回路１２５〜１３３は、対応した各フリップフロップのデータ出力端子Ｑに接続された入力端子と、対応した各割り込み要求出力端子１５７〜１６５に接続された出力端子と、アンドゲート１２３の出力端子に接続された制御端子とを有する。
【００１２】
アンドゲート１２１は、アドレスデコーダから出力された書き込みアドレス信号と中央演算装置（以下、ＣＰＵとする。）から出力された書き込み許可信号ＷＲを入力し、各フリップフロップに書き込み信号を出力する。
【００１３】
アンドゲート１２３は、アドレスデコーダから出力された読み出しアドレス信号とＣＰＵから出力された読み出し許可信号ＲＤを入力し、各ゲート回路１２５〜１３３に読み出し信号を出力する。
【００１４】
割り込み要求信号出力回路１３５は、各フリップフロップのデータ出力端子Ｑに現れるデータの変化を検出して、割り込み要求出力信号をＣＰＵに出力する。
【００１５】
以上説明した図１に示す回路は、図２に示すシステムの一部である。
【００１６】
以下、本発明の割り込み要求回路の図２に示すシステムにおける位置付け及びシステムの構成について説明する。
【００１７】
図１に示した本発明の割り込み要求回路は、図２において符号２０１または２０３を付与した部分である。なお、図１と同一の構成には、図１で付与した符号と同一の符号を付与している。
【００１８】
割り込み要求回路２０１は、８ビットの双方向データバス２２１を介して８ビットのデータバス２１７に接続されている。この双方向データバス２２１を構成している８本のデータ線は、図１におけるデータ入力端子１４７〜１５５に各々接続されている。さらにこの８本のデータ線は、データ出力端子１５７〜１６５にも各々接続されている。
【００１９】
Ａ／Ｄ変換回路２０９は、内部に割り込み要因が発生したとき割り込み要求信号を割り込み要求回路２０１に出力する。Ａ／Ｄ変換回路２０９から出力されたこの割り込み要求信号は、図１における割り込み要求入力端子１３７に与えられる。
【００２０】
Ｉ／Ｏ回路２１１は、内部に割り込み要因が発生したとき割り込み要求信号を割り込み要求回路２０１に出力する。Ｉ／Ｏ回路２１１から出力されたこの割り込み要求信号は、図１における割り込み要求入力端子１３９に与えられる。
【００２１】
Ｉ／Ｏ回路２１３は、内部に割り込み要因が発生したとき割り込み要求信号を割り込み要求回路２０１に出力する。Ｉ／Ｏ回路２１３から出力されたこの割り込み要求信号は、図１における割り込み要求入力端子１４１に与えられる。
【００２２】
ランダムアクセスメモリ回路２１５（以下、ＲＡＭとする。）は、内部に割り込み要因が発生したとき割り込み要求信号を割り込み要求回路２０３に出力する。この割り込み要求回路２０３は、割り込み要求回路２０１と同様の構成である。従って、ＲＡＭ２１５から出力された割り込み要求信号は、図示しない割り込み要求回路２０３中の割り込み要求入力端子のうちの１つに与えられる。
【００２３】
ＣＰＵ２０５は、書き込み許可信号ＷＲ及び読み出し許可信号ＲＤを出力する。またＣＰＵ２０５は、割り込み要求回路２０１および２０３のいずれかを選択するためのアドレス信号をアドレスバス２１９に出力する。さらにＣＰＵ２０５は、割り込み要求回路２０１及び２０３から出力された割り込み要求出力信号を、割り込み要求出力線２２４を介して受信する。さらにＣＰＵ２０５は、割り込み要求回路２０１及び２０３が示す割り込み要求をクリアするためのデータを生成し、このデータをデータバス２１７を介して割り込み要求回路２０１及び２０３へ与える。
【００２４】
アドレスデコーダ２０７は、ＣＰＵ２０５が出力したアドレス信号をデコードして、割り込み要求回路２０１を選択する選択信号をアンドゲート１２３と１２１へ、もしくは割り込み要求回路２０３を選択する選択信号をアンドゲート２２３と２２５へ出力する。
【００２５】
アンドゲート１２３は、ＣＰＵ２０５から出力された読み出し許可信号ＲＤと、アドレスデコーダ２０７から出力された割り込み要求回路２０１を選択するための選択信号とを入力し、割り込み要求回路２０１へ読み出し信号を出力する。
【００２６】
アンドゲート１２１は、書き込み許可信号ＷＲと、アドレスデコーダ２０７から出力された割り込み要求回路２０１を選択するための選択信号とを入力し、割り込み要求回路２０１へ書き込み信号を出力する。
【００２７】
割り込み要求回路２０３への書き込み及び読み出し信号の出力は、アンドゲート２２３及び２２５を介して行われる。割り込み要求回路２０３への書き込み及び読み出し信号の出力の動作は、割り込み要求回路２０１に関する動作と同様である。
【００２８】
次に、図１及び図２に示す本発明の割り込み要求回路の動作を図３のタイムチャートを用いて説明する。図３のタイムチャートは、紙面の左から右に向かって時間が経過しているものである。図３の上部には割り込み要求レジスタ（前述した８個のフリップフロップ）が保持しているデータの内容を示す図が配置され、下部にはＣＰＵ内のレジスタが保持している内容を示す図が配置されている。
【００２９】
（割り込み要因Ａ発生）
まず各フリップフロップで構成された割り込み要求レジスタが、リセット端子１６７に与えられたリセット信号によって初期設定されているとする。すなわち、各フリップフロップは、各データ出力端子Ｑからデータ０を出力する。（データ０は例えば０Ｖであり、データ１は例えば５Ｖである。）
次にＡ／Ｄ変換回路２０９が例えば外部から与えられたアナログデータをディジタルデータに変換するという割り込み要因Ａを発生する。この割り込み要因Ａは、割り込み要求信号として割り込み要求回路２０１内の割り込み要求入力端子１３７に与えられる。割り込み要求入力端子１３７に与えられた割り込み要求信号は、フリップフロップ１０１のセット端子Ｓに与えられるので、フリップフロップ１０１のデータ出力端子Ｑから出力されるデータは０から１に変化する。今その他の周辺回路には、割り込み要因が存在していないので、フリップフロップ１０３〜１０９はセットされない。従って、フリップフロップ１０３〜１０９のデータ出力端子Ｑから出力されるデータは０である。図３の上部に示すように、割り込み要求レジスタの内容は、結果として（１０００００００）となる。
【００３０】
（割り込み要求出力信号発生）
フリップフロップ１０１のデータ出力端子Ｑが０から１に変化すると、割り込み要求信号出力回路１３５はこの変化を検出し、ＣＰＵ２０５へ割り込み要求出力信号を出力する。ＣＰＵ２０５は、この割り込み要求出力信号を受信することによって、何れかの回路に割り込み要因が発生したことを認識する。次にＣＰＵ２０５は、割り込み要因が発生している回路を特定し、その割り込み要因を受け付けるべきか、受け付けるとしたらいつ受け付けるのか等を判断する。
【００３１】
（割り込み要求レジスタのデータ読み出し）
まずＣＰＵ２０５は、割り込み要求回路２０１内の割り込み要求レジスタの内容を読み出すために、読み出し許可信号ＲＤを出力するとともに、割り込み要求回路２０１を選択するアドレス信号をアドレスバス２１９へ出力する。アドレスデコーダ２０７は、ＣＰＵから出力されたアドレス信号をデコードし割り込み要求回路２０１を選択する選択信号を出力する。アンドゲート１２３は、この選択信号と読み出し許可信号ＲＤに応答して読み出し信号を出力する。一方アンドゲート１２１は書き込み許可信号ＷＲが出力されていないので、書き込み信号を出力しない。また、ＣＰＵ２０５は割り込み要求回路２０３を選択していないので、アンドゲート２２３及び２２５はディスエーブル状態である。
【００３２】
ゲート回路１２５〜１３３は、アンドゲート１２３から出力された読み出し信号に応答してオン状態になり、各フリップフロップ１０１〜１０９のデータ出力端子Ｑと、各フリップフロップ１０１〜１０９の各々に対応するデータ出力端子１５７〜１６５との間を電気的に導通させる。フリップフロップ１０１のデータ出力端子Ｑはデータ１を出力しているのでデータ出力端子１５７にデータ１が与えられ、その他のフリップフロップ１０３〜１０９のデータ出力端子Ｑはデータ０を出力しているのでデータ出力端子１５９〜１６５にはデータ０が与えられる。データ出力端子１５７〜１６５に与えられた各データは、双方向データバス２２１を介してデータバス２１７に与えられる。そしてＣＰＵ２０５は、データバス２１７に与えられたこの８ビットのデータをＣＰＵ２０５内のレジスタに読み込む。今データバス２１７は、（１０００００００）になっているので、ＣＰＵ２０５は割り込み要求回路２０１内の割り込み要求レジスタの内容が（１０００００００）であることを認識する。すなわちＣＰＵ２０５は、割り込み要因Ａが、Ａ／Ｄ変換回路２０９で発生したことを認識する。
【００３３】
ＣＰＵ２０５は、この割り込み要因Ａが、ＣＰＵ２０５が現在実行しているメインの処理に優先するかどうか判断する。もしこの割り込み要因Ａが、現在実行している処理よりも優先度が高いものであれば、ＣＰＵ２０５は直ちにあるいは、現在の処理を終了させた後直ちにアナログデータをディジタルデータに変換する処理フローに入る。すなわちＣＰＵ２０５は、メインの処理フロー中にＡ／Ｄ変換処理を割り込ませる。ここで、割り込み処理を実行するタイミングは、プログラムによって異なるため、割り込みの要求があった後の他の処理を行った後でも良い。ここでは、ＣＰＵ２０５は、現在の処理を終了させた後直ちにＡ／Ｄ変換処理を行うフローに入る。Ａ／Ｄ変換回路２０９は、ＣＰＵ２０５が制御するＡ／Ｄ変換フローにしたがって、図示しない周辺回路から与えられたアナログデータをディジタルデータに変換する。変換されたディジタルデータは、ＣＰＵ２０５の命令によって、データバス２１７を介して例えばＲＡＭ２１５へ転送される。
【００３４】
（割り込み要求レジスタのクリア（割り込み要因Ｂが発生していない場合））
ＣＰＵ２０５は、割り込み処理を終了させた後、割り込み要因Ａに対応するフリップフロップ１０１の出力をクリアする動作を開始する。まず、ＣＰＵ２０５は（０１１１１１１１）というデータを生成し、ＣＰＵ内の８ビットのレジスタにデータ（０１１１１１１１）を書き込む。すなわちＣＰＵ２０５は、割り込み要因Ａに対応するビットのみがデータ０、その他のビットがデータ１であるようなクリアデータを作成し、そのクリアデータをＣＰＵ２０５内のレジスタに記憶させる。続いてＣＰＵ２０５は、このクリアデータをデータバス２１７へ出力する。データバス２１７に与えられたクリアデータは、双方向データバス２２１を介して割り込み要求回路２０１のデータ入力端子１４７〜１５５に与えられる。今、フリップフロップ１０１はデータ１を、フリップフロップ１０３〜１０９はデータ０を出力しているので、アンドゲート１１１のみが開いている。従って、データ入力端子１４７に与えられたデータ０は、アンドゲート１１１を通過してフリップフロップ１０１のデータ入力端子Ｄに与えられる。アンドゲート１１３〜１１９は、全て閉じているので、各フリップフロップ１０３〜１０９のデータ入力端子Ｄは、データ入力端子１４９〜１５５に与えられたデータに関わらずデータ０が与えられる。なお、割り込み要求回路２０３についても、同様にクリアデータが与えられる。しかし後述するように、ＣＰＵ２０５は割り込み要求回路２０３を選択しないので、このクリアデータは割り込み要求回路２０３の動作には何ら影響しない。
【００３５】
続いてＣＰＵ２０５は、割り込み要求レジスタの割り込み要因Ａに対応するデータをクリアするために、書き込み許可信号ＷＲを出力するとともに、割り込み要求回路２０１を選択するアドレス信号をアドレスバス２１９へ出力する。アドレスデコーダ２０７は、ＣＰＵから出力されたアドレス信号をデコードし割り込み要求回路２０１を選択する選択信号を出力する。アンドゲート１２１は、この選択信号と書き込み許可信号ＷＲに応答して書き込み信号を出力する。一方アンドゲート１２３は読み出し許可信号ＲＤが出力されていないので、読み出し信号を出力しない。また、ＣＰＵ２０５は割り込み要求回路２０３を選択していないので、アンドゲート２２３及び２２５はディスエーブル状態である。
【００３６】
書き込み信号が各フリップフロップ１０１〜１０９のゲート端子Ｇに与えられると、各フリップフロップ１０１〜１０９はデータ入力端子Ｄに与えられたデータを取り込み、取り込んだデータをデータ出力端子Ｑに出力する。ここで、フリップフロップ１０１のデータ入力端子Ｄにはデータ０が与えられているので、フリップフロップ１０１は、ゲート端子Ｇに与えられた書き込み信号に応答してデータ０を出力する。他のフリップフロップ１０３〜１０９も同様に、各ゲート端子Ｇに与えられた書き込み信号に応答してデータ０を出力する。以上のように割り込み要求回路２０１内の割り込み要求レジスタの出力は、（１０００００００）から（００００００００）へ変化する。すなわち、割り込み要求レジスタの割り込み要因Ａに対応するデータがクリアされたことになる。以上は、割り込みレジスタをクリアする前に他の割り込み要因が発生しなかった場合の動作について説明したが、以下他の割り込み要因が発生した場合の動作について説明する。
【００３７】
（割り込み要因Ｂ発生）
割り込み要因Ａが発生した後、この割り込み要因Ａに対応する割り込み要求レジスタのデータをクリアする前に、Ｉ／Ｏ回路２１３が内部に異常があることを示す割り込み要因Ｂを発生したとする。この割り込み要因Ｂは、割り込み要求信号として割り込み要求回路２０１内の割り込み要求入力端子１４１に与えられる。割り込み要求入力端子１４１に与えられた割り込み要求信号は、フリップフロップ１０５のセット端子Ｓに与えられるので、フリップフロップ１０５のデータ出力端子Ｑから出力されるデータは０から１に変化する。今Ａ／Ｄ変換回路２０９で発生した割り込み要因Ａによって、フリップフロップ１０１のみデータ１を出力しているので、割り込み要求レジスタの内容は結果として（１０１０００００）となる。
【００３８】
（割り込み要求出力信号発生）
フリップフロップ１０５のデータ出力端子Ｑが０から１に変化すると、割り込み要求信号出力回路１３５はこの変化を検出し、ＣＰＵ２０５へ割り込み要求出力信号を出力する。ＣＰＵ２０５は、この割り込み要求出力信号を受信することによって、何れかの回路に割り込み要因が発生したことを認識する。次にＣＰＵ２０５は、割り込み要因が発生している回路を特定し、その割り込み要因を受け付けるべきか、受け付けるとしたらいつ受け付けるのか等を判断する。今ＣＰＵ２０５は、割り込み要因Ａに対応する割り込み要求レジスタのデータをクリアする動作を行おうとしているので、この判断は割り込み要求レジスタのデータをクリアした後に行われる。
【００３９】
（割り込み要求レジスタのクリア）
ＣＰＵ２０５は、割り込み要因Ａに関する割り込み処理を終了させた後、割り込み要因Ａに対応するフリップフロップ１０１の出力をクリアする動作を開始する。まず、ＣＰＵ２０５は（０１１１１１１１）というデータを生成し、ＣＰＵ内の８ビットのレジスタにデータ（０１１１１１１１）を書き込む。すなわちＣＰＵ２０５は、割り込み要因Ａに対応するビットのみがデータ０、その他のビットがデータ１であるようなクリアデータを作成し、そのクリアデータをＣＰＵ２０５内のレジスタに記憶させる。続いてＣＰＵ２０５は、このクリアデータをデータバス２１７へ出力する。データバス２１７に与えられたクリアデータは、双方向データバス２２１を介して割り込み要求回路２０１のデータ入力端子１４７〜１５５に与えられる。今、フリップフロップ１０１及び１０５はデータ１を、フリップフロップ１０３及び１０７〜１０９はデータ０を出力しているので、アンドゲート１１１及び１１５のみが開いている。従って、データ入力端子１４７に与えられたデータ０は、アンドゲート１１１を通過してフリップフロップ１０１のデータ入力端子Ｄに与えられる。また、データ入力端子１５１に与えられたデータ１は、アンドゲート１１５を通過してフリップフロップ１０５のデータ入力端子Ｄに与えられる。アンドゲート１１３及び１１７〜１１９は閉じているので、フリップフロップ１０３及び１０７〜１０９のデータ入力端子Ｄは、データ入力端子１４９及び１５３〜１５５に与えられたデータに関わらずデータ０が与えられる。なお、割り込み要求回路２０３についても、同様にクリアデータが与えられる。しかし後述するように、ＣＰＵ２０５は割り込み要求回路２０３を選択しないので、このクリアデータは割り込み要求回路２０３の動作には何ら影響しない。
【００４０】
続いてＣＰＵ２０５は、割り込み要求レジスタの割り込み要因Ａに対応するデータをクリアするために、書き込み許可信号ＷＲを出力するとともに、割り込み要求回路２０１を選択するアドレス信号をアドレスバス２１９へ出力する。アドレスデコーダ２０７は、ＣＰＵから出力されたアドレス信号をデコードし割り込み要求回路２０１を選択する選択信号を出力する。アンドゲート１２１は、この選択信号と書き込み許可信号ＷＲに応答して書き込み信号を出力する。一方アンドゲート１２３は読み出し許可信号ＲＤが出力されていないので、読み出し信号を出力しない。また、ＣＰＵ２０５は割り込み要求回路２０３を選択していないので、アンドゲート２２３及び２２５はディスエーブル状態である。
【００４１】
書き込み信号が各フリップフロップ１０１〜１０９のゲート端子Ｇに与えられると、各フリップフロップ１０１〜１０９はデータ入力端子Ｄに与えられたデータを取り込み、取り込んだデータをデータ出力端子Ｑに出力する。ここで、フリップフロップ１０１のデータ入力端子Ｄにはデータ０が与えられているので、フリップフロップ１０１は、ゲート端子Ｇに与えられた書き込み信号に応答してデータ０を出力する。またフリップフロップ１０５のデータ入力端子Ｄにはデータ１が与えられているので、フリップフロップ１０５は、ゲート端子Ｇに与えられた書き込み信号に応答してデータ１を出力する。フリップフロップ１０３及び１０７〜１０９は、各ゲート端子Ｇに与えられた書き込み信号に応答してデータ０を出力する。以上のように割り込み要求回路２０１内の割り込み要求レジスタの出力は、（１０１０００００）から（００１０００００）へ変化する。すなわち、割り込み要求レジスタの割り込み要因Ｂに対応するデータがクリアされずに、割り込み要因Ａに対応するデータのみクリアされる。
【００４２】
（割り込み要求レジスタのデータ読み出し）
次にＣＰＵ２０５は、先に割り込み要求回路２０１から出力された割り込み要求出力信号に基づき、割り込み要因が発生している回路を特定するために、割り込み要求回路２０１へアクセスする。そしてＣＰＵ２０５は、その割り込み要因を受け付けるべきか、受け付けるとしたらいつ受け付けるのか等を判断する。
【００４３】
まずＣＰＵ２０５は、割り込み要求回路２０１内の割り込み要求レジスタの内容を読み出すために、読み出し許可信号ＲＤを出力するとともに、割り込み要求回路２０１を選択するアドレス信号をアドレスバス２１９へ出力する。アドレスデコーダ２０７は、ＣＰＵから出力されたアドレス信号をデコードし割り込み要求回路２０１を選択する選択信号を出力する。アンドゲート１２３は、この選択信号と読み出し許可信号ＲＤに応答して読み出し信号を出力する。一方アンドゲート１２１は書き込み許可信号ＷＲが出力されていないので、書き込み信号を出力しない。また、ＣＰＵ２０５は割り込み要求回路２０３を選択していないので、アンドゲート２２３及び２２５はディスエーブル状態である。
【００４４】
ゲート回路１２５〜１３３は、アンドゲート１２３から出力された読み出し信号に応答してオン状態になり、各フリップフロップ１０１〜１０９のデータ出力端子Ｑと、各フリップフロップ１０１〜１０９の各々に対応するデータ出力端子１５７〜１６５との間を電気的に導通させる。フリップフロップ１０５のデータ出力端子Ｑはデータ１を出力しているので、データ出力端子１６１にデータ１が与えられ、フリップフロップ１０１，１０３及び１０７〜１０９のデータ出力端子Ｑはデータ０を出力しているのでデータ出力端子１５７，１５９及び１６３〜１６５にはデータ０が与えられる。
【００４５】
データ出力端子１５７〜１６５に与えられた各データは、双方向データバス２２１を介してデータバス２１７に与えられる。そしてＣＰＵ２０５は、データバス２１７に与えられたこの８ビットのデータをＣＰＵ２０５内のレジスタに読み込む。今データバス２１７は、（００１０００００）になっているので、ＣＰＵ２０５は割り込み要求回路２０１内の割り込み要求レジスタの内容が（００１０００００）であることを認識する。すなわちＣＰＵ２０５は、新たに割り込み要因Ｂが、Ｉ／Ｏ回路２１３で発生したことを認識する。ＣＰＵ２０５は、この割り込み要因Ｂが、ＣＰＵ２０５が現在実行している処理に優先するかどうか判断する。もしこの割り込み要因Ｂが、現在実行している処理よりも優先度が高いものであれば、ＣＰＵ２０５は直ちに割り込み要因Ｂに関する処理フローに入る。すなわちＣＰＵ２０５は、メインの処理フロー中に割り込み要因Ｂに関する処理を割り込ませる。ここでは、割り込み要因Ｂに関する処理は直ちに実行することとする。
【００４６】
ＣＰＵ２０５は、割り込み要因ＢによりＩ／Ｏ回路２１３が異常によって使用できなくなったものと判断する。そしてＣＰＵ２０５は、以後Ｉ／Ｏ回路２１１を使用する命令が与えられたときは、Ｉ／Ｏ回路２１１が使用されるように処理フローの変更の処理を行う。
【００４７】
（割り込み要求レジスタのクリア）
続いて、ＣＰＵ２０５は割り込み要因Ｂに対応するフリップフロップ１０５の出力をクリアする動作を開始する。まず、ＣＰＵ２０５は（１１０１１１１１）というデータを生成し、ＣＰＵ内の８ビットのレジスタにデータ（１１０１１１１１）を書き込む。すなわちＣＰＵ２０５は、割り込み要因Ｂに対応するビットのみがデータ０、その他のビットがデータ１であるようなクリアデータを作成し、そのクリアデータをＣＰＵ２０５内のレジスタに記憶させる。続いてＣＰＵ２０５は、このクリアデータをデータバス２１７へ出力する。データバス２１７に与えられたクリアデータは、双方向データバス２２１を介して割り込み要求回路２０１のデータ入力端子１４７〜１５５に与えられる。今、フリップフロップ１０５はデータ１を、フリップフロップ１０１，１０３及び１０７〜１０９はデータ０を出力しているので、アンドゲート１１５のみが開いている。しかしデータ入力端子１５１に与えられたデータは０であるので、フリップフロップ１０５のデータ入力端子Ｄにはデータ０が与えられる。またアンドゲート１１１，１１３及び１１７〜１１９は閉じているので、フリップフロップ１０１，１０３及び１０７〜１０９のデータ入力端子Ｄは、データ入力端子１４７，１４９及び１５３〜１５５に与えられたデータに関わらずデータ０が与えられる。なお、割り込み要求回路２０３についても、同様にクリアデータが与えられる。しかし、ＣＰＵ２０５は割り込み要求回路２０３を選択しないので、このクリアデータは割り込み要求回路２０３の動作には何ら影響しない。
【００４８】
続いてＣＰＵ２０５は、割り込み要求レジスタの割り込み要因Ｂに対応するデータをクリアするために、書き込み許可信号ＷＲを出力するとともに、割り込み要求回路２０１を選択するアドレス信号をアドレスバス２１９へ出力する。アドレスデコーダ２０７は、ＣＰＵから出力されたアドレス信号をデコードし割り込み要求回路２０１を選択する選択信号を出力する。アンドゲート１２１は、この選択信号と書き込み許可信号ＷＲに応答して書き込み信号を出力する。一方アンドゲート１２３は読み出し許可信号ＲＤが出力されていないので、読み出し信号を出力しない。また、ＣＰＵ２０５は割り込み要求回路２０３を選択していないので、アンドゲート２２３及び２２５はディスエーブル状態である。
【００４９】
書き込み信号が各フリップフロップ１０１〜１０９のゲート端子Ｇに与えられると、各フリップフロップ１０１〜１０９はデータ入力端子Ｄに与えられたデータを取り込み、取り込んだデータをデータ出力端子Ｑに出力する。ここで、全てのフリップフロップ１０１〜１０９のデータ入力端子Ｄにはデータ０が与えられているので、各フリップフロップ１０１〜１０９は各ゲート端子Ｇに与えられた書き込み信号に応答してデータ０を出力する。
【００５０】
以上のように割り込み要求回路２０１内の割り込み要求レジスタの出力は、（００１０００００）から（００００００００）へ変化する。すなわち、割り込み要求レジスタの割り込み要因Ｂに対応するデータがクリアされる。
【００５１】
この時点で割り込み要求レジスタの出力は全て０になるので、ＣＰＵ２０５は、周辺回路からの割り込み要求が存在しないと判断する。従ってＣＰＵ２０５は、中断していたメインの処理フローへ復帰する。
【００５２】
以上説明した本発明の一実施例によれば、以下のような利点がある。
【００５３】
ＣＰＵへの割り込み要求は、ＣＰＵの動作とは非同期にしかも複数発生する。しかし本発明によれば、上述のようにＣＰＵが割り込み要因Ａに関する割り込み処理を行っている間に、新たに他の周辺回路からの割り込み要因Ｂが発生した場合であっても、割り込み要因Ｂに対応するフリップフロップの出力はクリアされない。従って、ＣＰＵは割り込み要因Ａに関するクリア動作の終了後も、割り込み要因Ｂが発生していることを認識できる。したがって、割り込み要因Ｂに関する割り込み処理は無視されずに実行される。
【００５４】
また本発明におけるクリアデータの構成は、クリアしたい割り込み要因に対応するフリップフロップに与えられた第１のデータと、他のフリップフロップすなわち他の割り込み要因に対応するフリップフロップおよび割り込み要因が発生していないフリップフロップに一律に与えられた第２のデータとによって構成されている。従ってＣＰＵが生成するクリアデータは、第２のデータで構成された複数のビットのうちの１ビットのみを第１のデータに変更するだけで生成できる。よって、クリアデータの生成に必要な時間はわずかであり、クリアデータの生成によってＣＰＵの動作速度を低下させることはない。
【００５５】
また、本発明によれば、割り込み要求回路が示す割り込み要求（割り込み要求レジスタの出力）のクリア動作は、データバスに転送されるデータによって実行される。つまり、本発明によれば、発生した割り込み要因に対応するフリップフロップのみを選択的にクリアするための割り込みクリアセレクタ等といった専用の回路を必要としない。従って、システム全体としての回路規模を増大することなく、確実に割り込みの処理を実行できる。
【００５６】
次に、本発明の割り込み要求回路の他の実施例の構成を説明する。
【００５７】
図４は、本発明の割り込み要求回路の他の実施例の構成を示す図である。なお図４において、図１と同一の構成には同一符号を付与している。
【００５８】
図４に示す割り込み要求回路と図１に示す割り込み要求回路との違いは、各割り込み要求入力端子１３７〜１４５が各フリップフロップ１０１〜１０９のリセット端子Ｒに各々接続されている点、リセット端子１６７がフリップフロップ１０１〜１０９のセット端子Ｓに接続されている点、オアゲート４０１〜４０９が各フリップフロップ１０１〜１０９のデータ端子Ｄに各々接続されている点である。その他の構成は図１と同様である。また、図２のシステムにおける図４の割り込み要求回路の位置づけについても、図１と図２との関係と同様であるので特に説明しない。
【００５９】
次に、図４に示す本発明の割り込み要求回路の動作を図５のタイムチャートを用いて説明する。図４に示す割り込み要求回路の動作と図１に示す割り込み要求回路の動作との違いは、周辺回路に割り込み要因が発生したときフリップフロップのデータ出力端子Ｑがデータ０を出力するという点である。
【００６０】
（割り込み要因Ａ発生）
まず各フリップフロップで構成された割り込み要求レジスタが、リセット端子１６７に与えられたリセット信号によって初期設定されているとする。すなわち、各フリップフロップは、各データ出力端子Ｑからデータ１を出力する。（データ０は例えば０Ｖであり、データ１は例えば５Ｖである。）
次にＡ／Ｄ変換回路２０９が例えば外部から与えられたアナログデータをディジタルデータに変換するという割り込み要因Ａを発生する。この割り込み要因Ａは、割り込み要求信号として割り込み要求回路２０１内の割り込み要求入力端子１３７に与えられる。割り込み要求入力端子１３７に与えられた割り込み要求信号は、フリップフロップ１０１のリセット端子Ｒに与えられるので、フリップフロップ１０１のデータ出力端子Ｑから出力されるデータは１から０に変化する。今その他の周辺回路には、割り込み要因が存在していないので、フリップフロップ１０３〜１０９はリセットされない。従って、フリップフロップ１０３〜１０９のデータ出力端子Ｑから出力されるデータは１のままである。図５の上部に示すように、割り込み要求レジスタの内容は、結果として（０１１１１１１１）となる。
【００６１】
（割り込み要求出力信号発生）
フリップフロップ１０１のデータ出力端子Ｑが１から０に変化すると、割り込み要求信号出力回路１３５はこの変化を検出し、ＣＰＵ２０５へ割り込み要求出力信号を出力する。ＣＰＵ２０５は、この割り込み要求出力信号を受信することによって、何れかの回路に割り込み要因が発生したことを認識する。次にＣＰＵ２０５は、割り込み要因が発生している回路を特定し、その割り込み要因を受け付けるべきか、受け付けるとしたらいつ受け付けるのか等を判断する。
【００６２】
（割り込み要求レジスタのデータ読み出し）
まずＣＰＵ２０５は、割り込み要求回路２０１内の割り込み要求レジスタの内容を読み出すために、読み出し許可信号ＲＤを出力するとともに、割り込み要求回路２０１を選択するアドレス信号をアドレスバス２１９へ出力する。アドレスデコーダ２０７は、ＣＰＵから出力されたアドレス信号をデコードし割り込み要求回路２０１を選択する選択信号を出力する。アンドゲート１２３は、この選択信号と読み出し許可信号ＲＤに応答して読み出し信号を出力する。一方アンドゲート１２１は書き込み許可信号ＷＲが出力されていないので、書き込み信号を出力しない。また、ＣＰＵ２０５は割り込み要求回路２０３を選択していないので、アンドゲート２２３及び２２５はディスエーブル状態である。
【００６３】
ゲート回路１２５〜１３３は、アンドゲート１２３から出力された読み出し信号に応答してオン状態になり、各フリップフロップ１０１〜１０９のデータ出力端子Ｑと、各フリップフロップ１０１〜１０９の各々に対応するデータ出力端子１５７〜１６５との間を電気的に導通させる。フリップフロップ１０１のデータ出力端子Ｑはデータ０を出力しているのでデータ出力端子１５７にデータ０が与えられ、その他のフリップフロップ１０３〜１０９のデータ出力端子Ｑはデータ１を出力しているのでデータ出力端子１５９〜１６５にはデータ１が与えられる。データ出力端子１５７〜１６５に与えられた各データは、双方向データバス２２１を介してデータバス２１７に与えられる。そしてＣＰＵ２０５は、データバス２１７に与えられたこの８ビットのデータをＣＰＵ２０５内のレジスタに読み込む。今データバス２１７は、（０１１１１１１１）になっているので、ＣＰＵ２０５は割り込み要求回路２０１内の割り込み要求レジスタの内容が（０１１１１１１１）であることを認識する。すなわちＣＰＵ２０５は、割り込み要因Ａが、Ａ／Ｄ変換回路２０９で発生したことを認識する。
【００６４】
ＣＰＵ２０５は、この割り込み要因Ａが、ＣＰＵ２０５が現在実行しているメインの処理に優先するかどうか判断する。もしこの割り込み要因Ａが、現在実行している処理よりも優先度が高いものであれば、ＣＰＵ２０５は直ちにあるいは、現在の処理を終了させた後直ちにアナログデータをディジタルデータに変換する処理フローに入る。すなわちＣＰＵ２０５は、メインの処理フロー中にＡ／Ｄ変換処理を割り込ませる。ここで、割り込み処理を実行するタイミングは、プログラムによって異なるため、割り込みの要求があった後の他の処理を行った後でも良い。ここでは、ＣＰＵ２０５は、現在の処理を終了させた後直ちにＡ／Ｄ変換処理を行うフローに入る。Ａ／Ｄ変換回路２０９は、ＣＰＵ２０５が制御するＡ／Ｄ変換フローにしたがって、図示しない周辺回路から与えられたアナログデータをディジタルデータに変換する。変換されたディジタルデータは、ＣＰＵ２０５の命令によって、データバス２１７を介して例えばＲＡＭ２１５へ転送される。
【００６５】
（割り込み要求レジスタのクリア（割り込み要因Ｂが発生していない場合））
ＣＰＵ２０５は、割り込み処理を終了させた後、割り込み要因Ａに対応するフリップフロップ１０１の出力をクリアする動作を開始する。まず、ＣＰＵ２０５は（１０００００００）というデータを生成し、ＣＰＵ内の８ビットのレジスタにデータ（１０００００００）を書き込む。すなわちＣＰＵ２０５は、割り込み要因Ａに対応するビットのみがデータ１、その他のビットがデータ０であるようなクリアデータを作成し、そのクリアデータをＣＰＵ２０５内のレジスタに記憶させる。続いてＣＰＵ２０５は、このクリアデータをデータバス２１７へ出力する。データバス２１７に与えられたクリアデータは、双方向データバス２２１を介して割り込み要求回路２０１のデータ入力端子１４７〜１５５に与えられる。今、フリップフロップ１０１はデータ０を出力しているので、データ入力端子１４７に与えられたデータ１は、オアゲート４０１を通過してフリップフロップ１０１のデータ入力端子Ｄに与えられる。フリップフロップ１０３〜１０９はデータ１を出力しているので、データ入力端子１４９〜１５５に与えられたデータ０は、オアゲート４０３〜４０９を通過して各フリップフロップ１０３〜１０９のデータ入力端子Ｄに与えられる。なお、割り込み要求回路２０３についても、同様にクリアデータが与えられる。しかし後述するように、ＣＰＵ２０５は割り込み要求回路２０３を選択しないので、このクリアデータは割り込み要求回路２０３の動作には何ら影響しない。
【００６６】
続いてＣＰＵ２０５は、割り込み要求レジスタの割り込み要因Ａに対応するデータをクリアするために、書き込み許可信号ＷＲを出力するとともに、割り込み要求回路２０１を選択するアドレス信号をアドレスバス２１９へ出力する。アドレスデコーダ２０７は、ＣＰＵから出力されたアドレス信号をデコードし割り込み要求回路２０１を選択する選択信号を出力する。アンドゲート１２１は、この選択信号と書き込み許可信号ＷＲに応答して書き込み信号を出力する。一方アンドゲート１２３は読み出し許可信号ＲＤが出力されていないので、読み出し信号を出力しない。また、ＣＰＵ２０５は割り込み要求回路２０３を選択していないので、アンドゲート２２３及び２２５はディスエーブル状態である。
【００６７】
書き込み信号が各フリップフロップ１０１〜１０９のゲート端子Ｇに与えられると、各フリップフロップ１０１〜１０９はデータ入力端子Ｄに与えられたデータを取り込み、取り込んだデータをデータ出力端子Ｑに出力する。ここで、フリップフロップ１０１のデータ入力端子Ｄにはデータ１が与えられているので、フリップフロップ１０１は、ゲート端子Ｇに与えられた書き込み信号に応答してデータ１を出力する。他のフリップフロップ１０３〜１０９も同様に、各ゲート端子Ｇに与えられた書き込み信号に応答してデータ１を出力する。以上のように割り込み要求回路２０１内の割り込み要求レジスタの出力は、（０１１１１１１１）から（１１１１１１１１）へ変化する。すなわち、割り込み要求レジスタの割り込み要因Ａに対応するデータがクリアされたことになる。以上は、割り込みレジスタをクリアする前に他の割り込み要因が発生しなかった場合の動作について説明したが、以下他の割り込み要因が発生した場合の動作について説明する。
【００６８】
（割り込み要因Ｂ発生）
割り込み要因Ａが発生した後、この割り込み要因Ａに対応する割り込み要求レジスタのデータをクリアする前に、Ｉ／Ｏ回路２１３が内部に異常があることを示す割り込み要因Ｂを発生したとする。この割り込み要因Ｂは、割り込み要求信号として割り込み要求回路２０１内の割り込み要求入力端子１４１に与えられる。割り込み要求入力端子１４１に与えられた割り込み要求信号は、フリップフロップ１０５のリセット端子Ｒに与えられるので、フリップフロップ１０５のデータ出力端子Ｑから出力されるデータは１から０に変化する。今Ａ／Ｄ変換回路２０９で発生した割り込み要因Ａによって、フリップフロップ１０１のみデータ０を出力しているので、割り込み要求レジスタの内容は結果として（０１０１１１１１）となる。
【００６９】
（割り込み要求出力信号発生）
フリップフロップ１０５のデータ出力端子Ｑが１から０に変化すると、割り込み要求信号出力回路１３５はこの変化を検出し、ＣＰＵ２０５へ割り込み要求出力信号を出力する。ＣＰＵ２０５は、この割り込み要求出力信号を受信することによって、何れかの回路に割り込み要因が発生したことを認識する。次にＣＰＵ２０５は、割り込み要因が発生している回路を特定し、その割り込み要因を受け付けるべきか、受け付けるとしたらいつ受け付けるのか等を判断する。今ＣＰＵ２０５は、割り込み要因Ａに対応する割り込み要求レジスタのデータをクリアする動作を行おうとしているので、この判断は割り込み要求レジスタのデータをクリアした後に行われる。
【００７０】
（割り込み要求レジスタのクリア）
ＣＰＵ２０５は、割り込み要因Ａに関する割り込み処理を終了させた後、割り込み要因Ａに対応するフリップフロップ１０１の出力をクリアする動作を開始する。まず、ＣＰＵ２０５は（１０００００００）というデータを生成し、ＣＰＵ内の８ビットのレジスタにデータ（１０００００００）を書き込む。すなわちＣＰＵ２０５は、割り込み要因Ａに対応するビットのみがデータ１、その他のビットがデータ０であるようなクリアデータを作成し、そのクリアデータをＣＰＵ２０５内のレジスタに記憶させる。続いてＣＰＵ２０５は、このクリアデータをデータバス２１７へ出力する。データバス２１７に与えられたクリアデータは、双方向データバス２２１を介して割り込み要求回路２０１のデータ入力端子１４７〜１５５に与えられる。今、フリップフロップ１０１はデータ０を出力しているので、フリップフロップ１０１のデータ入力端子Ｄにはデータ１が与えられる。フリップフロップ１０５も同様にデータ０を出力しているが、データ入力端子１５１にはデータ０が与えられているので、フリップフロップ１０５のデータ入力端子Ｄにはデータ０が与えられる。フリップフロップ１０３及び１０７〜１０９はデータ１を出力しているので、フリップフロップ１０３及び１０７〜１０９のデータ入力端子Ｄにはデータ入力端子１４９及び１５３〜１５５に与えられたデータに関わらずデータ１が与えられる。なお、割り込み要求回路２０３についても、同様にクリアデータが与えられる。しかし後述するように、ＣＰＵ２０５は割り込み要求回路２０３を選択しないので、このクリアデータは割り込み要求回路２０３の動作には何ら影響しない。
【００７１】
続いてＣＰＵ２０５は、割り込み要求レジスタの割り込み要因Ａに対応するデータをクリアするために、書き込み許可信号ＷＲを出力するとともに、割り込み要求回路２０１を選択するアドレス信号をアドレスバス２１９へ出力する。アドレスデコーダ２０７は、ＣＰＵから出力されたアドレス信号をデコードし割り込み要求回路２０１を選択する選択信号を出力する。アンドゲート１２１は、この選択信号と書き込み許可信号ＷＲに応答して書き込み信号を出力する。一方アンドゲート１２３は読み出し許可信号ＲＤが出力されていないので、読み出し信号を出力しない。また、ＣＰＵ２０５は割り込み要求回路２０３を選択していないので、アンドゲート２２３及び２２５はディスエーブル状態である。
【００７２】
書き込み信号が各フリップフロップ１０１〜１０９のゲート端子Ｇに与えられると、各フリップフロップ１０１〜１０９はデータ入力端子Ｄに与えられたデータを取り込み、取り込んだデータをデータ出力端子Ｑに出力する。ここで、フリップフロップ１０１のデータ入力端子Ｄにはデータ１が与えられているので、フリップフロップ１０１は、ゲート端子Ｇに与えられた書き込み信号に応答してデータ１を出力する。またフリップフロップ１０５のデータ入力端子Ｄにはデータ０が与えられているので、フリップフロップ１０５は、ゲート端子Ｇに与えられた書き込み信号に応答してデータ０を出力する。フリップフロップ１０３及び１０７〜１０９は、各ゲート端子Ｇに与えられた書き込み信号に応答してデータ１を出力する。以上のように割り込み要求回路２０１内の割り込み要求レジスタの出力は、（０１０１１１１１）から（１１０１１１１１）へ変化する。すなわち、割り込み要求レジスタの割り込み要因Ｂに対応するデータがクリアされずに、割り込み要因Ａに対応するデータのみクリアされる。
【００７３】
（割り込み要求レジスタのデータ読み出し）
次にＣＰＵ２０５は、先に割り込み要求回路２０１から出力された割り込み要求出力信号に基づき、割り込み要因が発生している回路を特定するために、割り込み要求回路２０１へアクセスする。そしてＣＰＵ２０５は、その割り込み要因を受け付けるべきか、受け付けるとしたらいつ受け付けるのか等を判断する。
【００７４】
まずＣＰＵ２０５は、割り込み要求回路２０１内の割り込み要求レジスタの内容を読み出すために、読み出し許可信号ＲＤを出力するとともに、割り込み要求回路２０１を選択するアドレス信号をアドレスバス２１９へ出力する。アドレスデコーダ２０７は、ＣＰＵから出力されたアドレス信号をデコードし割り込み要求回路２０１を選択する選択信号を出力する。アンドゲート１２３は、この選択信号と読み出し許可信号ＲＤに応答して読み出し信号を出力する。一方アンドゲート１２１は書き込み許可信号ＷＲが出力されていないので、書き込み信号を出力しない。また、ＣＰＵ２０５は割り込み要求回路２０３を選択していないので、アンドゲート２２３及び２２５はディスエーブル状態である。
【００７５】
ゲート回路１２５〜１３３は、アンドゲート１２３から出力された読み出し信号に応答してオン状態になり、各フリップフロップ１０１〜１０９のデータ出力端子Ｑと、各フリップフロップ１０１〜１０９の各々に対応するデータ出力端子１５７〜１６５との間を電気的に導通させる。フリップフロップ１０５のデータ出力端子Ｑはデータ０を出力しているので、データ出力端子１６１にデータ０が与えられ、フリップフロップ１０１，１０３及び１０７〜１０９のデータ出力端子Ｑはデータ１を出力しているのでデータ出力端子１５７，１５９及び１６３〜１６５にはデータ１が与えられる。
【００７６】
データ出力端子１５７〜１６５に与えられた各データは、双方向データバス２２１を介してデータバス２１７に与えられる。そしてＣＰＵ２０５は、データバス２１７に与えられたこの８ビットのデータをＣＰＵ２０５内のレジスタに読み込む。今データバス２１７は、（１１０１１１１１）になっているので、ＣＰＵ２０５は割り込み要求回路２０１内の割り込み要求レジスタの内容が（１１０１１１１１）であることを認識する。すなわちＣＰＵ２０５は、新たに割り込み要因Ｂが、Ｉ／Ｏ回路２１３で発生したことを認識する。ＣＰＵ２０５は、この割り込み要因Ｂが、ＣＰＵ２０５が現在実行している処理に優先するかどうか判断する。もしこの割り込み要因Ｂが、現在実行している処理よりも優先度が高いものであれば、ＣＰＵ２０５は直ちに割り込み要因Ｂに関する処理フローに入る。すなわちＣＰＵ２０５は、メインの処理フロー中に割り込み要因Ｂに関する処理を割り込ませる。ここでは、割り込み要因Ｂに関する処理は直ちに実行することとする。
【００７７】
ＣＰＵ２０５は、割り込み要因ＢによりＩ／Ｏ回路２１３が異常によって使用できなくなったものと判断する。そしてＣＰＵ２０５は、以後Ｉ／Ｏ回路２１１を使用する命令が与えられたときは、Ｉ／Ｏ回路２１１が使用されるように処理フローの変更の処理を行う。
【００７８】
（割り込み要求レジスタのクリア）
続いて、ＣＰＵ２０５は割り込み要因Ｂに対応するフリップフロップ１０５の出力をクリアする動作を開始する。まず、ＣＰＵ２０５は（００１０００００）というデータを生成し、ＣＰＵ内の８ビットのレジスタにデータ（００１０００００）を書き込む。すなわちＣＰＵ２０５は、割り込み要因Ｂに対応するビットのみがデータ１、その他のビットがデータ０であるようなクリアデータを作成し、そのクリアデータをＣＰＵ２０５内のレジスタに記憶させる。続いてＣＰＵ２０５は、このクリアデータをデータバス２１７へ出力する。データバス２１７に与えられたクリアデータは、双方向データバス２２１を介して割り込み要求回路２０１のデータ入力端子１４７〜１５５に与えられる。今、フリップフロップ１０５はデータ０を出力しているので、フリップフロップ１０１のデータ入力端子Ｄにはオアゲート４０５を介してデータ１が与えられる。フリップフロップ１０１，１０３及び１０７〜１０９はデータ１を出力しているので、フリップフロップ１０１，１０３及び１０７〜１０９のデータ入力端子Ｄにはデータ入力端子１４７，１４９及び１５３〜１５５に与えられたデータに関わらずデータ１が与えられる。なお、割り込み要求回路２０３についても、同様にクリアデータが与えられる。しかし後述するように、ＣＰＵ２０５は割り込み要求回路２０３を選択しないので、このクリアデータは割り込み要求回路２０３の動作には何ら影響しない。
【００７９】
続いてＣＰＵ２０５は、割り込み要求レジスタの割り込み要因Ｂに対応するデータをクリアするために、書き込み許可信号ＷＲを出力するとともに、割り込み要求回路２０１を選択するアドレス信号をアドレスバス２１９へ出力する。アドレスデコーダ２０７は、ＣＰＵから出力されたアドレス信号をデコードし割り込み要求回路２０１を選択する選択信号を出力する。アンドゲート１２１は、この選択信号と書き込み許可信号ＷＲに応答して書き込み信号を出力する。一方アンドゲート１２３は読み出し許可信号ＲＤが出力されていないので、読み出し信号を出力しない。また、ＣＰＵ２０５は割り込み要求回路２０３を選択していないので、アンドゲート２２３及び２２５はディスエーブル状態である。
【００８０】
書き込み信号が各フリップフロップ１０１〜１０９のゲート端子Ｇに与えられると、各フリップフロップ１０１〜１０９はデータ入力端子Ｄに与えられたデータを取り込み、取り込んだデータをデータ出力端子Ｑに出力する。ここで、全てのフリップフロップ１０１〜１０９のデータ入力端子Ｄにはデータ１が与えられているので、各フリップフロップ１０１〜１０９は各ゲート端子Ｇに与えられた書き込み信号に応答してデータ１を出力する。
【００８１】
以上のように割り込み要求回路２０１内の割り込み要求レジスタの出力は、（１１０１１１１１）から（１１１１１１１１）へ変化する。すなわち、割り込み要求レジスタの割り込み要因Ｂに対応するデータがクリアされる。
【００８２】
この時点で割り込み要求レジスタの出力は全て１になるので、ＣＰＵ２０５は、周辺回路からの割り込み要求が存在しないと判断する。従ってＣＰＵ２０５は、中断していたメインの処理フローへ復帰する。
【００８３】
以上のように図４に示したオアゲートを用いた割り込み要求回路は、各フリップフロップのデータ出力端子Ｑから出力されたデータが０の場合に割り込み要求が発生したことを示す回路である。一方図１に示したアンドゲートを用いた割り込み要求回路は、各フリップフロップのデータ出力端子Ｑから出力されたデータが１の場合に割り込み要求が発生したことを示す回路である。これら２つの割り込み要求回路の動作は基本的には同じであるため、設計者はマイコン等のシステム（プログラム）開発の際に、両者のいずれか有利な方を選択することができる。すなわち、２種の割り込み要求回路を提供することによりマイコン等のシステム全体の特性を考慮した設計が可能になる。
【００８４】
次に、図１に示した割り込み要求回路の変形例を図６を用いて説明する。
【００８５】
図６に示す回路は、アンドゲートを内部に取り込んだフリップフロップである。すなわち図６に示すフリップフロップは、図１に示した各フリップフロップの前段に接続されたアンドゲートを省略した回路である。
【００８６】
但し、図１で示した書き込み信号Ｇは、図６においては相補信号を使用し（例えばインバータで、書き込み信号Ｇを反転させて書き込み信号反転Ｇを生成している。）、データ出力端子Ｑに出力される信号も相補信号を使用している。
【００８７】
また、図６においては、図１で示した各フリップフロップのリセット端子Ｒに相当するリセット端子反転Ｒを使用している。
【００８８】
図６のフリップフロップ回路は、トランジスタＭ１，Ｍ２で構成され書き込み信号Ｇ（書き込み信号反転Ｇ）に応答してデータ入力端子Ｄに与えられたデータを転送するトランスファーゲート６０１と、トランジスタＭ３，Ｍ４で構成され書き込み信号Ｇ（書き込み信号反転Ｇ）に応答してデータ出力端子Ｑに与えられたデータを転送するトランスファーゲート６０３と、リセット端子反転Ｒに与えられるリセット信号が与えられるトランジスタＭ１０，Ｍ１２と、セット端子Ｓに与えられるセット信号が与えられるトランジスタＭ５，Ｍ１１とを有している。さらにフリップフロップ回路は、トランジスタＭ１３，Ｍ１４で構成され、入力端子がデータ出力端子反転Ｑに接続され、出力端子がデータ出力端子Ｑに接続されたインバータ６０５と、データ出力端子Ｑに与えられたデータが与えられるトランジスタＭ７，Ｍ８とトランスファーゲート６０１及びトランスファーゲート６０３の出力が与えられるトランジスタＭ６，Ｍ９とを有している。
【００８９】
次に図６に示すフリップフロップ回路の動作を説明する。
【００９０】
（リセット動作）
リセット端子反転Ｒに“Ｌ”レベルのリセット信号が与えられると、トランジスタＭ１０がオンするので電源電位（“Ｈ”レベル）がデータ出力端子反転Ｑに与えられる。データ出力端子反転Ｑが“Ｈ”レベルになるとインバータ６０５の出力は“Ｌ”レベルになる。一方、トランジスタＭ１２はオフするので接地電位（“Ｌ”レベル）とデータ出力端子反転Ｑとの間の経路が電気的に遮断される。このようにデータ出力端子Ｑが“Ｌ”レベルになりフリップフロップ回路がリセットされる。
【００９１】
（割り込み要求を受ける動作）
次に割り込み要求を受ける動作、すなわちセット動作について説明する。
【００９２】
セット端子Ｓに“Ｈ”レベルの割り込み要求信号が与えられると、トランジスタＭ１１がオンするのでトランジスタＭ１２のドレイン電位がデータ出力端子反転Ｑに与えられる。このときリセット端子反転Ｒが“Ｈ”レベルである、すなわちリセット動作中ではないとするとトランジスタＭ１２はオンしているので、トランジスタＭ１２のドレイン電位は“Ｌ”レベルになっている。従って、データ出力端子反転Ｑは“Ｌ”レベルになる。インバータ６０５は、データ出力端子反転Ｑに与えられた“Ｌ”レベルを反転し、データ出力端子Ｑを“Ｈ”レベルにする。
【００９３】
一方、トランジスタＭ５はオフするので電源電位とデータ出力端子反転Ｑとの間の経路が電気的に遮断される。なおリセット動作中でないならばトランジスタＭ１０はオフしているので、電源電位とデータ出力端子反転Ｑとの間のいかなる経路も電気的に遮断されることになる。
【００９４】
このようにデータ出力端子Ｑが“Ｈ”レベルになりフリップフロップ回路がセットされる。よってこのフリップフロップ回路は、このフリップフロップ回路に接続された周辺回路に割り込み要求が発生していることを示す。
【００９５】
（割り込み要求をクリアする動作）
次に割り込み要求をクリアする動作（データ書き込み動作）、つまりデータ端子Ｄに与えられたデータをデータ出力端子Ｑ、反転Ｑに伝達する動作もしくはデータ出力端子Ｑ、反転Ｑに与えられたデータを保持する動作について説明する。
【００９６】
まずデータ出力端子Ｑ及びデータ出力端子反転Ｑの状態がそれぞれ“Ｌ”レベル、“Ｈ”レベルである場合、すなわちこのフリップフロップ回路に接続された周辺回路に割り込み要求が発生していない場合のデータ書き込み動作について説明する。
【００９７】
データ出力端子Ｑが“Ｌ”レベルであるとトランジスタＭ７はオンし、トランジスタＭ８はオフする。このときセット端子Ｓは“Ｌ”レベルであり（セット動作中ではない）、リセット端子反転Ｒは“Ｈ”レベルである（リセット動作中ではない）とすると、トランジスタＭ５がオンするのでデータ出力端子反転Ｑは“Ｈ”レベルになる。なおトランジスタＭ１０，Ｍ１１はオフしており、トランジスタＭ１２はオンしている。従って、トランジスタＭ１０を通して“Ｈ”レベルは伝達されない。また、トランジスタＭ８，Ｍ１１がオフしているので、接地電位とデータ出力端子反転Ｑとの間の経路は遮断されており、データ出力端子反転Ｑには“Ｌ”レベルは伝達されない。
【００９８】
ここで、書き込み信号Ｇが“Ｌ”レベル（書き込み信号反転Ｇは“Ｈ”レベルである。）であると、トランスファーゲート６０１がオフし、トランスファーゲート６０３がオンするので、データ出力端子Ｑの“Ｌ”レベルがトランジスタＭ６，Ｍ９のゲートに転送される。すると先にオンしているトランジスタＭ７に加えてトランジスタＭ６もオンし、電源電位がトランジスタＭ６を通してデータ出力端子反転Ｑに与えられる。
【００９９】
次に書き込み信号Ｇが“Ｈ”レベル（書き込み信号反転Ｇは“Ｌ”レベルである。）に変化すると、トランスファーゲート６０１がオンし、トランスファーゲート６０３がオフするので、今度はデータ入力端子Ｄに与えられたデータがトランジスタＭ６，Ｍ９のゲートに転送される。ここでデータ入力端子Ｄに与えられたデータが“Ｌ”レベルであるとするとトランジスタＭ６，Ｍ９の状態は以前の状態、すなわち書き込み信号Ｇが“Ｌ”レベル（書き込み信号反転Ｇは“Ｈ”レベルである。）であった時の状態と変わらない。従って、データ出力端子Ｑ、反転Ｑの状態は変化しない。（もともとリセット状態にあったフリップフロップは、データ０が書き込まれても状態は変化しない。）
一方、データ入力端子Ｄに与えられたデータが“Ｈ”レベルであるとするとトランジスタＭ６がオフし、トランジスタＭ９がオンする。しかしながら、トランジスタＭ８がオフしているため、トランジスタＭ９のドレインに接地電位が伝達されてもデータ出力端子反転Ｑには“Ｌ”レベルが伝達されない。従って、データ出力端子Ｑ、反転Ｑの状態は変化しない。
【０１００】
以上のようにこのフリップフロップ回路は、データ出力端子Ｑに与えられたデータが０、データ出力端子反転Ｑに与えられたデータが１である場合には、データ出力端子Ｑ及びデータ出力端子反転Ｑに与えられたデータがデータ入力端子Ｄに与えられたデータによって変化しない回路である。すなわちこのフリップフロップ回路は、外部から与えられたデータ１が書き込まれない回路である。
【０１０１】
次にデータ出力端子Ｑ及びデータ出力端子反転Ｑの状態がそれぞれ“Ｈ”レベル、“Ｌ”レベルである場合、すなわちこのフリップフロップ回路に接続された周辺回路に割り込み要求が発生している場合のデータ書き込み動作について説明する。
【０１０２】
データ出力端子Ｑが“Ｈ”レベルであるとトランジスタＭ７はオフし、トランジスタＭ８はオンする。ここで、書き込み信号Ｇが“Ｌ”レベル（書き込み信号反転Ｇは“Ｈ”レベルである。）であると、トランスファーゲート６０１がオフし、トランスファーゲート６０３がオンするので、データ出力端子Ｑの“Ｈ”レベルがトランジスタＭ６，Ｍ９のゲートに転送される。するとトランジスタＭ６がオフし、トランジスタＭ９がオンする。このときセット端子Ｓは“Ｌ”レベルであり（セット動作中ではない）、リセット端子反転Ｒは“Ｈ”レベルである（リセット動作中ではない）とすると、トランジスタＭ５及びＭ１２がオンし、トランジスタＭ１０，Ｍ１１はオフする。従って、データ出力端子反転ＱにはトランジスタＭ８，Ｍ９，Ｍ１２を通して“Ｌ”レベルが伝達される。データ出力端子反転Ｑに与えられたこの“Ｌ”レベルは、インバータ６０５で反転されてデータ出力端子Ｑに与えられる。つまりフリップフロップ回路は、データ１を保持する。
【０１０３】
次に書き込み信号Ｇが“Ｈ”レベル（書き込み信号反転Ｇは“Ｌ”レベルである。）に変化すると、トランスファーゲート６０１がオンし、トランスファーゲート６０３がオフするので、今度はデータ入力端子Ｄに与えられたデータがトランジスタＭ６，Ｍ９のゲートに転送される。ここでデータ入力端子Ｄに与えられたデータが“Ｌ”レベルであるとするとトランジスタＭ６がオフからオンに変化し、トランジスタＭ９がオンからオフに変化する。従って、電源電位がトランジスタＭ５，Ｍ６を通してデータ出力端子反転Ｑに伝達される。そしてインバータ６０５はデータ出力端子反転Ｑのレベルを反転し、データ出力端子Ｑを“Ｌ”レベルにする。なおトランジスタＭ９がオフするので、接地電位とデータ出力端子反転Ｑとの間の経路は電気的に遮断される。
【０１０４】
一方、データ入力端子Ｄに与えられたデータが“Ｈ”レベルであるとすると、トランジスタＭ６がオフし、トランジスタＭ９がオンする。すなわちトランジスタＭ６，Ｍ９の状態は、書き込み信号Ｇが“Ｌ”レベル（書き込み信号反転Ｇは“Ｈ”レベルである。）であった時の状態と変わらない。従って、データ出力端子Ｑ、反転Ｑの状態は変化しない。（もともとセット状態にあったフリップフロップは、データ１が書き込まれても状態は変化しない。）
このようにこのフリップフロップ回路は、データ出力端子Ｑに与えられたデータが１、データ出力端子反転Ｑに与えられたデータが０である場合には、データ入力端子Ｄに０を与えることによってのみそのデータ出力端子Ｑの状態を変化させることができる回路である。
【０１０５】
以上の書き込み動作に基づき、クリア対象であるフリップフロップ回路にのみデータ０を書き込み、クリア対象ではないフリップフロップ回路にはデータ１を書き込むことによって、クリア対象であるフリップフロップ回路のみに対する割り込み要求のクリア動作が実行できる。
【０１０６】
図６に示したフリップフロップ回路は、トランジスタＭ７，Ｍ８を追加することによって、図１に示したフリップフロップとアンドゲートとからなる回路と同様の動作を実現できる。具体的には図６に示したフリップフロップ回路は、図１の回路と同様の動作を実現するために、図１の回路よりもＭＯＳトランジスタを４つ削減できる。従って、ＩＣ化する際、回路面積が小さい割り込み要求回路を提供することができる。
【０１０７】
次に、図４に示した割り込み要求回路の変形例を図７を用いて説明する。
【０１０８】
図７に示す回路は、オアゲートを内部に取り込んだフリップフロップである。すなわち図７に示すフリップフロップは、図４に示した各フリップフロップの前段に接続されたオアゲートを省略した回路である。
【０１０９】
但し、図４で示した書き込み信号Ｇは、図７においては相補信号を使用し（例えばインバータで、書き込み信号Ｇを反転させて書き込み信号反転Ｇを生成している。）、データ出力端子Ｑに出力される信号も相補信号を使用している。
【０１１０】
また、図７においては、図４で示した各フリップフロップのリセット端子Ｒに相当するリセット端子反転Ｒを使用している。
【０１１１】
図７に示すフリップフロップ回路と図６に示すフリップフロップ回路との構成の差異は、トランジスタＭ７，Ｍ８の接続関係のみである。図６に示すフリップフロップ回路では、トランジスタＭ６とトランジスタＭ７が並列に接続されているのに対し、図７に示すフリップフロップ回路では、直列に接続されている。また図６に示すフリップフロップ回路では、トランジスタＭ８とトランジスタＭ９が直列に接続されているのに対し、図７に示すフリップフロップ回路では、並列に接続されている。
【０１１２】
次に図７に示すフリップフロップ回路の動作を説明する。
【０１１３】
このフリップフロップ回路のリセット動作及びセット動作は、図６に示すフリップフロップ回路と同じであるので省略する。
【０１１４】
（割り込み要求をクリアする動作）
次に割り込み要求をクリアする動作（データ書き込み動作）、つまりデータ端子Ｄに与えられたデータをデータ出力端子Ｑ、反転Ｑに伝達する動作もしくはデータ出力端子Ｑ、反転Ｑに与えられたデータを保持する動作について説明する。
【０１１５】
まずデータ出力端子Ｑ及びデータ出力端子反転Ｑの状態がそれぞれ“Ｌ”レベル、“Ｈ”レベルである場合、すなわちこのフリップフロップ回路に接続された周辺回路に割り込み要求が発生している場合のデータ書き込み動作について説明する。
【０１１６】
データ出力端子Ｑが“Ｌ”レベルであるとトランジスタＭ７はオンし、トランジスタＭ８はオフする。ここで、書き込み信号Ｇが“Ｌ”レベル（書き込み信号反転Ｇは“Ｈ”レベルである。）であると、トランスファーゲート６０１がオフし、トランスファーゲート６０３がオンするので、データ出力端子Ｑの“Ｌ”レベルがトランジスタＭ６，Ｍ９のゲートに転送され、トランジスタＭ６がオンし、トランジスタＭ９がオフする。このときセット端子Ｓは“Ｌ”レベルであり（セット動作中ではない）、リセット端子反転Ｒは“Ｈ”レベルである（リセット動作中ではない）とすると、トランジスタＭ５がオンする。従って、データ出力端子反転Ｑは、トランジスタＭ５，Ｍ６，Ｍ７を通して“Ｈ”レベルになる。データ出力端子反転Ｑに与えられたこの“Ｈ”レベルは、インバータ６０５で反転されてデータ出力端子Ｑに与えられる。なおトランジスタＭ１０，Ｍ１１はオフしており、トランジスタＭ１２はオンしている。従って、データ出力端子反転ＱにはトランジスタＭ１０を通して“Ｈ”レベルは伝達されない。また、トランジスタＭ８，Ｍ１１がオフしているので、接地電位とデータ出力端子反転Ｑとの間の経路は遮断されており、データ出力端子反転Ｑには“Ｌ”レベルは伝達されない。
【０１１７】
次に書き込み信号Ｇが“Ｈ”レベル（書き込み信号反転Ｇは“Ｌ”レベルである。）に変化すると、トランスファーゲート６０１がオンし、トランスファーゲート６０３がオフするので、今度はデータ入力端子Ｄに与えられたデータがトランジスタＭ６，Ｍ９のゲートに転送される。ここでデータ入力端子Ｄに与えられたデータが“Ｌ”レベルであるとするとトランジスタＭ６，Ｍ９の状態は以前の状態、すなわち書き込み信号Ｇが“Ｌ”レベル（書き込み信号反転Ｇは“Ｈ”レベルである。）であった時の状態と変わらない。従って、データ出力端子Ｑ、反転Ｑの状態は変化しない。
【０１１８】
一方、データ入力端子Ｄに与えられたデータが“Ｈ”レベルであるとすると、トランジスタＭ６がオフし、トランジスタＭ９がオンする。従って、“Ｌ”レベルがトランジスタＭ９，Ｍ１２を通してデータ出力端子反転Ｑに伝達される。インバータ６０５は、データ出力端子反転Ｑに与えられたこの“Ｌ”レベルを反転し、データ出力端子Ｑを“Ｈ”レベルにする。
【０１１９】
次にデータ出力端子Ｑ及びデータ出力端子反転Ｑの状態がそれぞれ“Ｈ”レベル、“Ｌ”レベルである場合、すなわちこのフリップフロップ回路に接続された周辺回路に割り込み要求が発生していない場合のデータ書き込み動作について説明する。
【０１２０】
データ出力端子Ｑが“Ｈ”レベルであるとトランジスタＭ７はオフし、トランジスタＭ８はオンする。ここで、書き込み信号Ｇが“Ｌ”レベル（書き込み信号反転Ｇは“Ｈ”レベルである。）であると、トランスファーゲート６０１がオフし、トランスファーゲート６０３がオンするので、データ出力端子Ｑの“Ｈ”レベルがトランジスタＭ６，Ｍ９のゲートに転送され、トランジスタＭ６がオフし、トランジスタＭ９がオンする。このときセット端子Ｓは“Ｌ”レベルであり（セット動作中ではない）、リセット端子反転Ｒは“Ｈ”レベルである（リセット動作中ではない）とすると、トランジスタＭ１２がオンする。従って、データ出力端子反転Ｑは、トランジスタＭ８，Ｍ９及びＭ１２を通して“Ｌ”レベルになる。インバータ６０５は、データ出力端子反転Ｑに与えられたこの“Ｌ”レベルを反転し、データ出力端子Ｑを“Ｈ”レベルにする。なおトランジスタＭ１０，Ｍ１１はオフしている。従って、データ出力端子反転ＱにはトランジスタＭ１０を通して“Ｈ”レベルは伝達されない。
【０１２１】
次に書き込み信号Ｇが“Ｈ”レベル（書き込み信号反転Ｇは“Ｌ”レベルである。）に変化すると、トランスファーゲート６０１がオンし、トランスファーゲート６０３がオフするので、今度はデータ入力端子Ｄに与えられたデータがトランジスタＭ６，Ｍ９のゲートに転送される。ここでデータ入力端子Ｄに与えられたデータが“Ｌ”レベルであるとすると、トランジスタＭ６がオフからオンに変化し、トランジスタＭ９がオンからオフへ変化する。しかしながら、トランジスタＭ７がオフしているので、データ出力端子反転Ｑには“Ｈ”レベルが伝達されない。
【０１２２】
一方、データ入力端子Ｄに与えられたデータが“Ｈ”レベルであるとすると、トランジスタＭ６，Ｍ９の状態は以前の状態、すなわち書き込み信号Ｇが“Ｌ”レベル（書き込み信号反転Ｇは“Ｈ”レベルである。）であった時の状態と変わらない。従って、データ出力端子Ｑ、反転Ｑの状態は変化しない。
【０１２３】
このようにこのフリップフロップ回路は、データ出力端子Ｑに与えられたデータが０、データ出力端子反転Ｑに与えられたデータが１である場合には、データ入力端子Ｄに１を与えることによってのみそのデータ出力端子Ｑの状態を変化させることができる回路である。
【０１２４】
以上の書き込み動作に基づき、クリア対象であるフリップフロップ回路にのみデータ１を書き込み、クリア対象ではないフリップフロップ回路にはデータ０を書き込むことによって、クリア対象であるフリップフロップ回路のみに対する割り込み要求のクリア動作が実行できる。
【０１２５】
図７に示したフリップフロップ回路は、トランジスタＭ７，Ｍ８を追加することによって、図４に示したフリップフロップとオアゲートとからなる回路と同様の動作を実現できる。具体的には図７に示したフリップフロップ回路は、図４の回路と同様の動作を実現するために、図４の回路よりもＭＯＳトランジスタを４つ削減できる。従って、ＩＣ化する際、回路面積が小さい割り込み要求回路を提供することができる。
【０１２６】
【発明の効果】
以上詳細に説明したように、本発明による割り込み要求処理方法は、第１の入力端子に第１のデータを与えてこの第１の入力端子に対応した出力端子に与えられた割り込み要求出力を維持させ、第１の入力端子に第２のデータを与えて第１の入力端子に対応した出力端子に与えられた割り込み要求出力をクリアするようにしたので、ＣＰＵへの割り込み要求がＣＰＵの動作とは非同期にしかも複数発生しても、後から発生した割り込み要求に関する処理を確実に実行できる。
【０１２７】
また、本発明による割り込み要求回路は、データを転送するための複数本のバスラインの各々に対応しこのバスラインに転送されるデータを受信する複数の第１の入力端子と、この複数本のバスラインの各々に対応し割り込み要求信号が与えられる複数の第２の入力端子と、この第２の入力端子の各々に対応した複数の出力端子とを有するので、割り込み要求回路が示す割り込み要求のクリア動作は、データバスに転送されるデータによって実行できる。すなわち本発明によれば、割り込みクリアセレクタ等といった専用の回路を必要としないので、システム全体としての回路規模を増大することなく、確実に割り込みの処理を実行できる。
【図面の簡単な説明】
【図１】本発明の割り込み要求回路の一実施例を示す図である。
【図２】本発明の割り込み要求回路を取り込んだシステムの一実施例を示す図である。
【図３】図１及び図２に示す本発明の割り込み要求回路の動作を説明するタイムチャートである。
【図４】本発明の割り込み要求回路の他の実施例を示す図である。
【図５】図２及び図４に示す本発明の割り込み要求回路の動作を説明するタイムチャートである。
【図６】本発明の割り込み要求回路のフリップフロップの変形例を示す図である。
【図７】本発明の割り込み要求回路のフリップフロップの変形例を示す図である。
【符号の説明】
１０１，１０３，１０５，１０７，１０９    フリップフロップ
１１１，１１３，１１５，１１７，１１９    アンドゲート
１３７，１３９，１４１，１４３，１４５    割り込み要求入力端子
１４７，１４９，１５１，１５３，１５５    データ入力端子
１５７，１５９，１６１，１６３，１６５    データ出力端子
【図１】
0003737144.tif 000002
【図２】
0003737144.tif 000003
【図３】
0003737144.tif 000004
【図４】
0003737144.tif 000005
【図５】
0003737144.tif 000006
【図６】
0003737144.tif 000007
【図７】
0003737144.tif 000008