(57)【特許請求の範囲】
【請求項１】
割込マスク不能化回路であって、
割込要求および組合わされたイネーブル信号を受信し、割込要求が活性であり組合わされたイネーブル信号が不能化される時は割込信号を与え、割込要求が活性であるか不活性であるかに関わらず組合わされたイネーブル信号が可能化されるときは非割込信号を与えるよう、動作可能に結合される第１の論理回路と、
マスク活性化信号およびマスク無効信号を受信し、組合わされたイネーブル信号を生成するよう、動作可能に結合される第２の論理回路とを含み、組合わされたイネーブル信号は、マスク活性化信号が活性でありマスク無効信号が可能化されない時に可能化され、マスク活性化信号が可能化されるか不能化されるかに関わらずマスク無効信号が活性である時に不能化される、割込マスク不能化回路。
【請求項２】
マスク活性化信号は、ソフトウェア状況に基づいて可能化される、請求項１に記載の割込マスク不能化回路。
【請求項３】
マスク活性化信号を出力するプログラマブルレジスタをさらに含む、請求項１に記載の割込マスク不能化回路。
【請求項４】
マスク無効信号は、ハードウェア状況に基づいて可能化される、請求項１に記載の割込マスク不能化回路。
【請求項５】
さらに、プロセッサ内に組み込まれ、前記プロセッサが特定の状態にある時にハードウェア状況が起きる、請求項４に記載の割込マスク不能化回路。
【請求項６】
前記特定の状態は、アイドルモードを含む、請求項５に記載の割込マスク不能化回路。
【請求項７】
ハードウェア状況は、前記プロセッサの外部で発生される外部可能化信号に応答して起きる、請求項５に記載の割込マスク不能化回路。
【請求項８】
第２の論理回路は、ＯＲゲートを含む、請求項１に記載の割込マスク不能化回路。
【請求項９】
第１の論理回路は、ＡＮＤゲートを含む、請求項１に記載の割込マスク不能化回路。
【請求項１０】
プロセッサであって、
マイクロコントローラと、
マイクロコントローラに動作可能に結合されるメモリと、
割込制御回路とを含み、前記割込制御回路は、
割込要求および組合わされたイネーブル信号を受信し、割込要求が活性であり組合わされたイネーブル信号が不能化される時はマイクロコントローラに割込信号を与え、割込要求が活性であるか不活性であるかに関わらず組合わされたイネーブル信号が可能化されるときは非割込信号を与えるよう、動作可能に結合される第１の論理回路と、
マスク活性化信号およびマスク無効信号を受信し、組合わされたイネーブル信号を生成するよう、動作可能に結合される第２の論理回路とを含み、組合わされたイネーブル信号は、マスク活性化信号が活性でありマスク無効信号が可能化されない時に可能化され、
組合わされたイネーブル信号は、マスク活性化信号が可能化されるか不能化されるかに関わらずマスク無効信号が活性である時に不能化される、プロセッサ。
【請求項１１】
割込をマスクするための方法であって、
ａ）割込信号と、ソフトウェアによって可能化されたマスク信号と、マスク無効信号とを受信するステップと、
ｂ）マスク無効信号が可能化される時、または、ソフトウェアによって可能化されたマスク信号とマスク無効信号とが不能化される時、プロセッサに割込信号を与えるステップと、
ｃ）ソフトウェアによって可能化されたマスク信号が可能化されマスク無効信号が不能化される時、割込信号をマスクするステップとを含む、割込をマスクするための方法。
【発明の詳細な説明】
【０００１】
【発明の背景】
【０００２】
【発明の分野】
この発明はプロセッサで実現される割込コントローラに関し、より特定的に、ソフトウエアによってマスクされ得る割込を有する割込コントローラに関する。
【０００３】
【先行技術の歴史】
プロセッサにおいて、割込はソフトウエアルーチン間の制御の転送を可能にする。割込はある内部または外部装置（たとえばタイマ、Ｉ／Ｏ周辺装置）によってアサートされ、中央処理装置（ＣＰＵ）によって受信される割込要求信号によって要求され得る。ＣＰＵはそのときそれが実行しているどんなルーチンでもその実行を一時的に中断し、割込サービスルーチンを実行することによって割込要求に典型的に応答する。割込サービスルーチンが実行された後、ＣＰＵは割込の間際の先のソフトウエアルーチンの実行を再開する。
【０００４】
前述から、割込の使用によってＣＰＵがタイムポーリング装置を無駄にする必要性を排除するような方法で、ＣＰＵがその作業を他の装置の作業と統合できることが理解される。また、割込はあるルーチンの処理が外部事象に対して正確に時間決めされなければならない多くのアプリケーションにおいて有用である。
【０００５】
プロセッサは一般にソフトウエアによる割込を不能化する能力を備える。割込は「マスキング」技術によってＣＰＵによって選択的に不能化され得る。これは各割込要求ラインを有する割込イネーブルフリップフロップを使用することによって通常達成される。フリップフロップがソフトウエアによって１に設定されている場合、フリップフロップは関連のある割込要求ラインの後続のアサーションがＣＰＵによって認識されることを許容する。フリップフロップがソフトウエアによってクリアされた場合、割込要求は「マスク」され、後続のアサーションはＣＰＵによって認識されない。
【０００６】
アドバンスト・マイクロ・ディバイシズ（Advanced Micro Devices）８０５１マイクロコントローラファミリィに属するもののようないくつかのプロセッサは、いつでも任意の数のその割込をマスクする能力を備える。すべての割込をマスクする能力は、たとえばクリティカルなソフトウエアルーチンの割込を回避する、またはＣＰＵがそれをサービスする用意ができるまで装置からの要求を無視することをＣＰＵに許容する際に有用であるかもしれない。しかしながら、マスクすることができない割込が必要とされるときがあるかもしれない。１つのそのようなときは８０５１マイクロコントローラがそのアイドルモードにある場合である。
【０００７】
８０５１マイクロコントローラのアイドルモードは内部クロック信号をそのＣＰＵにゲートオフすることによって消費電力を低減する手段を提供する。その標準的な構成において、８０５１マイクロコントローラはそのアイドルモードの終結をハードウエアリセットによって、または任意の可能化された割込の起動のいずれかによって可能にする。しかしながら、８０５１マイクロコントローラのいくつかの構成において、ハードウエアリセット機構は利用可能ではない。ハードウエアリセット機構が利用可能であるとしても、それはアイドルモードを残す手段としてはしばしば望ましくない、なぜならそれはコンピュータを再び初期化し、それによってその時点までに行なわれた作業の多くを失うからである。したがって、８０５１マイクロコントローラがアイドルモードになったときに少なくとも１つの割込をマスクされないままにしておくことは、必要でないとしても、しばしば望ましく、それによってマイクロコントローラは割込要求のアサーションによってアイドルモードから退出することが可能である。
【０００８】
当業者はこれまで８０５１マイクロコントローラのアイドルモードのような状態に入ったときにマスクされていない割込を与える際に問題に遭遇してきた。ソフトウエアはそのようなマスクされない割込を与える確実な方法ではないことは既知である。現在のソフトウエアの複雑さのために、プログラマーにとってそれによってコンピュータがアイドルモードのような状態に入るかもしれないすべての可能な経路を説明することは困難である。また、マイクロプロセッサはソフトウエアエラーまたは外部ノイズによって生じるソフトウエアの誤実行によって不注意にそのような状態になり得る。一方、永久にマスクすることができない割込を与えることは、上に論じられたように、あるときにすべての割込をマスクする必要性があるために望ましい方法ではない。
【０００９】
前述に基づいて、すべての割込をマスクさせる能力を備えることはプロセッサにとって利益となり得ることが理解されるはずである。しかしながら、プロセッサは割込によってのみ退出することが可能なある状態になり得る。もしすべての割込がそのような状態に入るとマスクされてしまえば、コンピュータは「致命的な包囲」に捕われる、つまり、コンピュータはその状態から退出する方法を持たなくなるであろう。今まで多くのステップがこの問題に対処するために取られてきたが、それに対処する際に非常に効果的な割込コントローラのための装置または方法はまだ開発されていない。したがって、そのような装置または方法がまだ開発されていないことが先行技術の欠点および欠陥であることが理解されるはずである。
【００１０】
【発明の概要】
この発明は先行技術の欠点および欠陥を克服するものであり、それはそのとき割込がマスクできなくなる、ハードウエアによって命令される、ある状況下を除く任意のときに、ソフトウエアによって割込が可能化および不能化されることを許容することができる割込イネーブル回路を提供することである。割込イネーブル回路はソフトウエア状況を示すための構造と、ハードウエア状況を示すための構造と、両方の前述の構造に応答して、割込要求信号のアサーションがあると割込を発生するための構造とを含む。ある実施例において、割込はハードウエア状況が示されたときに、ソフトウエア状況にかかわりなくアサートされる。割込を発生するための構造は、ソフトウエア状況およびハードウエア状況に応答して割込を可能化するための構造と、割込要求がアサートされ、かつ割込が可能化された場合にのみ割込をアサートするための構造とを含み得る。
【００１１】
ソフトウエア状況を示すための構造はソフトウエアイネーブル信号を出力するプログラマブルレジスタを含み得る。ハードウエア状況を示すための構造は、プロセッサが８０５１マイクロコントローラのアイドルモードのような特定の状態にある場合に、ハードウエアイネーブル信号を出力するハードウエア回路であってもよい。他の実施例において、ハードウエア回路は外部信号がアサートされた場合にハードウエアイネーブル信号を出力し得る。さらに他の実施例において、ハードウエア状況を示すための構造は前述のハードウエア回路タイプの双方を含み得る。
【００１２】
割込を可能化するための構造はハードウエアイネーブル信号とソフトウエアイネーブル信号との双方を受信し、組合わされたイネーブル信号を出力するＯＲゲートを含み得る。
【００１３】
割込をアサートするための構造は組合わされたイネーブル信号と割込要求信号とを受信し、割込信号を出力するＡＮＤゲートを含み得る。
【００１４】
さらに、この発明はソフトウエアによって不能化された割込を発生するための方法を提供する。この発明によって提供された方法は特定のハードウエア状況を示すステップと、特定のソフトウエア状況を示すステップと、もしハードウエア状況が示されれば、ソフトウエア状況に関係なく割込要求信号のアサーションに応答して割込を発生するステップとを含む。
【００１５】
したがって、この発明の目的は、マスクすることが可能な割込があるハードウエア状況下でマスクすることができないようになることを許容する割込イネーブル回路を提供することである。
【００１６】
この発明の他の目的は、あるプロセッサ状態から退出する手段としてハードウエアリセットの代替物を与えることによって不必要な情報の損失から保護することである。
【００１７】
この発明の他の目的は、すべての割込がある状態へのエントリのときにソフトウエアによってマスクされたためにプロセッサがある状態にロックされる可能性を妨げることである。
【００１８】
この発明の他の目的、利点および新規の特徴は添付の図面とともに考慮される発明の以下の詳細な説明から明らかになるであろう。
【００１９】
【好ましい実施例の詳細な説明】
ここで図面を参照して、図１に示されるのは、マイクロコントローラのアドバンスト・マイクロ・ディバイシス８０５１ファミリィに属する装置に組込まれた割込イネーブル回路２である。図１に示される割込イネーブル回路２は、反転されてライン４上で導通される割込要求信号ＩＮＴ０になる外部割込要求ＩＮＴ０／を受信する。割込要求信号ＩＮＴ０はそれからＡＮＤゲート６に進められ、それもまたライン８上のSOFTWARE ENABLE 信号を受信する。ＡＮＤゲート６の出力はラッチ１０の入力に導通される。このラッチ１０は割込フラグＩＥＯとして機能する。ラッチはライン１２を経てマシンサイクルごとに１回プロセッサによってサンプリングされる。フラグがサンプリングされたときにセット状況であれば、プロセッサの割込システムは一時的に制御をプロセッサを介して適切な割込サービスルーチンに転送してもよい。
【００２０】
割込イネーブル回路２は外部割込要求信号ＩＮＴ０／のアサーションに応答して、もしその割込が可能化されていたら割込を発生するように動作する。割込の可能化および不能化はソフトウエアによって制御され、割込イネーブルレジスタがビット０をセットまたはクリアすることによってもたらされる。
【００２１】
割込イネーブルレジスタはビットアドレス指定可能であり、以下のように記載される。
【００２２】
【表１】
0003678759.tif 000002
【００２３】
もしビットがクリアされれば、対応する割込は不能化される。もしビットがセットされれば、対応する割込は可能化される。また、イネーブル割込レジスタの記載からわかるように、８０５１マイクロコントローラによって与えられるすべての割込は、割込イネーブルレジスタのビット７をクリアすることによって不能化され得る。
【００２４】
割込イネーブルレジスタのビット０かビット７のいずれかをクリアすることによって、ライン８上のSOFTWARE ENABLE 信号はアサートされる。図１から、イネーブル信号はライン４上の割込要求信号とＡＮＤ処理されることがわかる。このように、ライン８上のSOFTWARE ENABLE 信号がハイである場合、ライン４上のＩＮＴ０のアサーションはラッチ１０をセットし、それによって割込を発生する。もしライン８上のSOFTWARE ENABLE 信号がローであれば、割込はマスクされる。ＩＮＴ０のアサーションはラッチ１０に影響を及ぼさず、かつゆえに割込を発生しない。
【００２５】
当該技術分野で既知の多くの他の装置と同様８０５１ファミリィのマイクロコントローラは、マイクロコントローラによって与えられたすべての割込をマスクする能力を有する。以前に論じられたように、この能力はたとえばクリティカルなソフトウエアルーチンの間の所望されない割込を防ぐ際に有用であると当業者によって考えられる。しかしながら、プロセッサが可能化された割込が要求され得るある状態に入るときに問題を引起こすのもまさにこの能力である。そのような状態の一例は発明の背景のセクションで前に論じられたアイドルモードである。もしすべての割込がプロセッサがアイドルモードに入ったときに不能化されれば、アイドルモードを終結させる唯一の手段はハードウエアリセットによるものである。ハードウエアリセットはプロセッサを再び初期化し、それによってその時点までに蓄積されたすべてのデータを失わせるので、望ましくない。ハードウエアリセットが利用可能なオプションではないアプリケーションにおいて、プロセッサは致命的な包囲状態にされる。このように、プロセッサがアイドルモードのような、割込が可能化されたままであるある状態にあるときを除いて、すべてのときにマスクされることができる割込を与えることは有益であろう。
【００２６】
図２はこの発明の教示に従う割込イネーブル回路であり、それはソフトウエアによってマスクされ得るが、プロセッサがアイドルモードにある間はマスクすることができない割込になる割込を与える。図１に示される割込イネーブル回路２に対して、IDLE INDICATOR CIRCUIT２２が付加され、それはプロセッサがアイドルモードにある間にライン２４上のＩＤＬＥ信号をアサートする。ライン２４上のＩＤＬＥ信号はＯＲゲート２８によってライン２６上のSOFTWARE ENABLE 信号とともに受信される。ＯＲゲート２８の出力はそれから割込要求信号ＩＮＴ０とＡＮＤ処理される。前と同様に、ＡＮＤゲート６の出力は割込フラグＩＥＯとして機能するラッチ１０に進められる。
【００２７】
プロセッサがアイドルモードに入ると、IDLE INDICATOR CIRCUIT２２はライン２４上のＩＤＬＥ信号をアサートし、ひいてはＯＲゲート２８の出力をライン２６上のSOFTWARE ENABLE 信号の状態にかかわりなくハイにする。ＯＲゲート出力２８がハイレベルのままである限り、ライン４上の割込要求信号ＩＮＴ０のアサーションはラッチ１０をセットし、かつゆえに割込を発生する。ＩＤＬＥ信号、かつゆえにＯＲゲート２８の出力はプロセッサがＩＤＬＥ状態のままである限りハイのままである。したがって、プロセッサがＩＤＬＥモードである間、割込要求信号ＩＮＴ０のアサーションは割込フラグＩＥＯをセットし、割込がたとえソフトウエアによってマスクされたとしてもプロセッサによって認識され得る。プロセッサがアイドルモードにない場合、ライン２４上のＩＤＬＥ信号はローのままであり、割込の可能化および不能化はライン２６上のSOFTWARE ENABLE 信号によって決定される。
【００２８】
前述に基づいて、この発明がソフトウエア制御によって不能化および可能化され得る割込がそれを介してあるハードウエア状況下でマスクできなくなる割込イネーブル回路を提供することがここで理解されるかもしれない。この発明の教示に従う割込イネーブル回路の実施例は、ソフトウエア状況を示すための構造と、ハードウエア状況を示すための構造と、両方の前述の構造に応答して、割込要求信号のアサーションがあると割込を発生するための構造とを含み得る。いくつかの実施例において、ソフトウエア状況を示すための構造はソフトウエアイネーブル信号を出力するプログラマブルレジスタと、プロセッサがアイドルモードにある場合、ＩＤＬＥ信号のようなハードウエアイネーブル信号を出力するハードウエア回路をハードウエア状況が含み得ることを示すための構造とを含む。割込を発生するための構造はソフトウエアイネーブル信号とハードウエアイネーブル信号とを受信し、かつ組合わされたイネーブル信号を出力するＯＲゲートと、組合わされたイネーブル信号と割込要求信号とを受信し、かつ割込フラグをセットする信号を出力するＡＮＤゲートとを含み得る。
【００２９】
この発明の他の可能な実施例は図３および図４に示され得る。図３において、図２に示されたIDLE INDICATOR CIRCUIT２２およびライン２４上のその関連ＩＤＬＥ信号はプロセッサの外部で発生され、ライン３２上で受信されるEXTERNAL SIGNAL によって取って代わられる。このような実施例において、割込はライン３２上のEXTERNAL SIGNAL がアサートされない限りソフトウエアによってマスクすることができるままである。EXTERNAL SIGNAL がアサートされたままである間、割込は割込を不能化しようとするソフトウエアにかかわらず、可能化されたままである。
【００３０】
図４の割込イネーブル回路は図２および図３に示される回路を組合わせるこの発明の実施例を示す。ＯＲゲート２８はここでライン２６上のSOFTWARE ENABLE 信号とともに、ライン３２上のEXTERNAL SIGNAL およびIDLE INDICATOR CIRCUIT２２から受信されたライン２４上のＩＤＬＥ信号を受信する。EXTERNAL SIGNAL およびＩＤＬＥ信号がともにローのままである間、割込の可能化および不能化はソフトウエア制御下のままである。しかしながら、ＩＤＬＥ信号がアサートされた場合か、またはEXTERNAL SIGNAL がアサートされた場合のいずれかの場合に、割込はソフトウエアによって可能化されマスクすることができなくなる。
【００３１】
前述の説明はこの発明のある特定の実施例を示したにすぎない。しかしながら、当業者は多くの修正および変形がこの発明の精神および範囲から実質的に逸脱することなく行なわれ得ることを認識するであろう。したがって、ここに説明される発明の形は例証のみであり、この発明の範囲に対する制限として意図されないことははっきりと理解されなければならない。
【００３２】
さらに、この発明の割込イネーブル回路は様々なシステムにおいて実現され得ることが理解されなければならない。たとえば、図５および図６は図２に示された割込イネーブル回路を有する８０５１マイクロコントローラを含む集積回路のブロック図を示す。この発明の割込イネーブル回路は、すべての割込が不能化された状態で遮断モードにＩＣが入ることに対するセーフガードのようなアプリケーションで有益である。ＩＣの遮断モード能力に関する詳細は「遮断モードが可能なクロック発生器およびクロック発生方法（CLOCK GENERATOR CAPABLE OF SHUT-DOWN MODE AND CLOCK GENERATION METHOD ）」と題された関連事件で詳細に記載される。８０５１マイクロコントローラはＩＣが遮断モードにプログラムされた場合典型的にアイドルモードにプログラムされる。もしＩＣが遮断モードであり、マイクロコントローラがアイドルモードであれば、マイクロコントローラの割込マスクビットの状態（割込イネーブルレジスタビット７、２および０）は無視され、ＩＮＴ０／およびＩＮＴ１／割込を可能化する。遮断モードはリセット、キーパッドスキャナからの任意のキーダウン表示または任意のマスクされていない割込によって終結され得る。これらの状況のすべては割込要求が発生されることを引起こす。一旦ＩＣが遮断モードから退出すれば、割込要求は外部割込ＩＮＴ０／かＩＮＴ１／のいずれかとしてマイクロコントローラに発生される。マイクロコントローラはこの発明の割込イネーブル回路を実現するので、割込要求は、たとえそれらがマイクロコントローラがアイドルモードに入ったときにソフトウエアによってマスクされたとしても、マイクロコントローラによって認識されるであろう。このように、マイクロコントローラは割込要求の結果としてアイドル状態のままでいることを許容される。
【００３３】
さらに、図５および図６のＩＣはコードレス電話で動作し得る。図７および図８はコードレス電話の送受話器および本体にそれぞれ組込まれ得る。これらの実現化例は様々な関連事件、特に「集積回路および集積回路を使用するコードレス電話（INTEGRATED CIRCUIT AND CORDLESS TELEPHONE USING THE INTEGRATED CIRCUIT）」と題された事件で詳細に記載される。
【００３４】
明らかに、数多くの修正および変形が上の教示に鑑みて可能である。したがって、前掲の特許請求の範囲内で、この発明は上に特定的に記載されたのとは違う態様で実行され得る。
【図面の簡単な説明】
【図１】先行技術に従う割込イネーブル回路を示す図である。
【図２】この発明の教示に従う、アイドル状態表示に応答する割込イネーブル回路の実施例を示す図である。
【図３】この発明の教示に従う、外部信号に応答する割込イネーブル回路の実施例の図である。
【図４】この発明の教示に従う、アイドル状態表示および外部信号に応答する割込イネーブル回路の実施例の図である。
【図５】この発明の教示に従う割込イネーブル回路を採用する８０５１マイクロコントローラを含む集積回路のブロック図である。
【図６】この発明の教示に従う割込イネーブル回路を採用する８０５１マイクロコントローラを含む集積回路のブロック図である。
【図７】図５および図６の集積回路を採用するコードレス電話の送受話器のブロック図である。
【図８】図５および図６の集積回路を採用するコードレス電話の本体のブロック図である。
【符号の説明】
６  ＡＮＤゲート
１０  ラッチ
２２  ＩＤＬＥ  ＩＮＤＩＣＡＴＯＲ  ＣＩＲＣＵＩＴ
２８  ＯＲゲート
４０  割込イネーブル回路
【図１】
0003678759.tif 000003
【図２】
0003678759.tif 000004
【図３】
0003678759.tif 000005
【図４】
0003678759.tif 000006
【図５】
0003678759.tif 000007
【図６】
0003678759.tif 000008
【図７】
0003678759.tif 000009
【図８】
0003678759.tif 000010