JP2008077184A - 割り込み制御回路 - Google Patents

割り込み制御回路 Download PDF

Info

Publication number
JP2008077184A
JP2008077184A JP2006252888A JP2006252888A JP2008077184A JP 2008077184 A JP2008077184 A JP 2008077184A JP 2006252888 A JP2006252888 A JP 2006252888A JP 2006252888 A JP2006252888 A JP 2006252888A JP 2008077184 A JP2008077184 A JP 2008077184A
Authority
JP
Japan
Prior art keywords
interrupt
nirq
timer
timers
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2006252888A
Other languages
English (en)
Inventor
Akihiko Nojiri
明彦 野尻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Finetech Nisca Inc
Original Assignee
Canon Finetech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Finetech Inc filed Critical Canon Finetech Inc
Priority to JP2006252888A priority Critical patent/JP2008077184A/ja
Publication of JP2008077184A publication Critical patent/JP2008077184A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】システムの処理速度および精度を低下させることなく、複数の割り込み要因に基づいて、CPUの一つの割り込み入力端子に対して入力する割り込み信号を発生する。
【解決手段】割り込み制御回路11は、複数の割り込み要因から発生される複数の割り込み入力信号の立ち上がりまたは立ち下がりのエッジによりそれぞれ起動される複数のタイマー110〜113と、これらの複数のタイマーの出力の論理和を得てCPU10の割り込み入力端子に入力する論理和ゲート106とを備える。各タイマーには、対応する割り込み要因の割り込み処理時間に対応する満了時間を設定する。各タイマーはその動作が抑止されていないときいずれかの割り込み入力信号の立ち上がりまたは立ち下がりエッジにより起動され前記論理和手段に割り込み信号を出力するとともに、当該タイマーに設定された満了時間が経過するまで他のタイマーの動作を抑止する。
【選択図】図1

Description

本発明は、CPUへの割り込み信号を発生する制御回路にあって、複数の割り込み要因をOR処理して1本の割り込み信号として出力する割り込み制御回路に関する。
このような従来の割り込み制御回路の一例を図3に示す。この例では、CPU20および制御回路21間において割り込み制御が行われている。すなわち、CPU20への割り込み信号は、制御回路21から発生している。この割り込み制御回路21は、割り込み発生要因として回路モジュール(module0〜3)200〜203の4個を持つ。それぞれの割り込み出力IRQ0〜3は、論理和ゲート206によってOR出力され、IRQ208としてCPU20へ入力される。
CPU20は、IRQ208の割り込みを受けてROM(図示無し)内のプログラムに従い制御回路21内のレジスタ209のデータを読み、割り込み発生要因がモジュール200〜203のどれかを特定する。その後、割り込み要因に応じたソフト処理を行う。
CPU20の割り込み検出がエッジ検出の場合、割り込み信号の立ち下がりエッジもしくは立ち上がりエッジでのみ割り込みが発生したと判断される。したがって、複数の割り込みが重複して発生した場合はIRQ208では複数の割り込みの発生を区別することができない。
図4に、複数のモジュールから複数の割り込み信号IRQ_0〜3が多重して発生をしている様子を示す。CPU20への割り込み信号IRQ208は、複数のモジュールからの割り込み信号IRQ_0〜3の論理和出力であるので、重複した割り込み信号IRQ_0〜3はLOWに固定されたままの単一の割り込み信号と区別がつかず、IRQのエッジ(ここでは立ち下がりエッジ)は一回のみとなってしまう。したがって、本来は4回の割り込みが発生しているのにもかかわらず、1回の割り込みしか発生していないと、CPUは間違った判断をしてしまう。
このような問題を解決するために、従来、重複した割り込みの発生数分の割り込みエッジを再発生することが提案されている(特許文献1参照)。
図5にその割り込み発生時の各信号のタイミングチャートを示す。
図の例では、割り込み信号IRQ_0〜3が多重して発生をしているが、割り込みの発生回数分IRQの出力を一旦Hiに戻すことにより、割り込み要因の個数分立ち下がりエッジが発生し、CPUは割り込み発生を正確に判断できる。
特開平5−158708号公報
しかし、上記特許文献1に記載の方式の場合、割り込み発生要因ごとの割り込み処理時間が考慮されておらず、CPU側の割り込み処理が間に合わず、割り込み発生を逃してしまうおそれがあった。
具体的には、図5の例において、IRQの立ち下がりエッジ401はIRQ_0による割り込み要因、IRQの立ち下がりエッジ402はIRQ_1による割り込み要因、IRQの立ち下がりエッジ403はIRQ_2による割り込み要因、IRQの立ち下がりエッジ404はIRQ_3による割り込み要因である。
しかし、割り込み再発生までの時間は一律にt0であった。CPUは、それぞれの割り込み要因に応じて割り込み処理を行うが、各割り込み要因の割り込み処理に要する時間はまちまちである。つまり、割り込み要因によっては割り込み再発生までの時間t0を上回ってしまうことがあり、そのような割り込み要因についてはIRQが割り込み発生要因回数分だけ立ち下がりエッジを発生してもCPU側の割り込み処理が行われないという事態が生じる。
また、割り込み再発生までの時間t0を割り込み要因に応じた最大の割り込み処理時間t0maxにすれば割り込み処理が行われないという問題は生じないが、どの割り込み要因についても最大の割り込み処理時間にすることによりシステムの処理速度および精度が低下してしまうといった課題があった。
本発明は、このような背景においてなされたものであり、その目的は、システムの処理速度および精度を低下させることなく、複数の割り込み要因に基づいて、CPUの一つの割り込み入力端子に対して入力する割り込み信号を発生することができる割り込み制御回路を提供することにある。
本発明による割り込み制御回路は、複数の割り込み要因に基づいて、CPUの一つの割り込み入力端子に対して入力する割り込み信号を発生する割り込み制御回路であって、複数の割り込み要因から発生される複数の割り込み入力信号の立ち上がりまたは立ち下がりのエッジによりそれぞれ起動される複数のタイマーと、これらの複数のタイマーの出力の論理和を得て前記CPUの割り込み入力端子に入力する論理和手段と、前記複数の割り込み要因毎に任意の満了時間を前記複数のタイマーに設定する手段とを備え、各タイマーはその動作が抑止されていないとき前記割り込み入力信号の立ち上がりまたは立ち下がりエッジにより起動され前記論理和手段に割り込み信号を出力するとともに、当該タイマーに設定された満了時間が経過するまで他のタイマーの動作を抑止することを特徴とする。
複数の割り込み要因の各々については、通常、予めその割り込み処理に要する概略の時間は実験的または経験的に既知である。そこで、複数のタイマーについてその該当する割り込み要因毎に、所定の満了時間(例えば、予想される最大の割り込み処理時間に対応する時間)を設定することができる。あるタイマーが起動された後、その満了時間が満了するまでの間、他の割り込み要因に対応する他のタイマーの動作は抑止されるので、現在の割り込みの終了後にタイマーの抑止が解除され、次の割り込み入力の受付が可能となる。したがって、割り込みが受け付けられずに割り込み処理が欠落してしまうことがなくなる。
各タイマーの出力で、対応する前記割り込み要因について割り込み入力信号を発生しているモジュールに対してその出力を解除させる。これにより、割り込みが受け付けられるまで待機していた割り込み要求を割り込み受け付けとともに解除することができる。
前記複数のタイマーの出力を所定のタイミングで格納するレジスタを有してもよい。各タイマーは割り込み要因と対応づけられているので、このレジスタの内容に基づいて割り込み発生要因を特定することができる。
本発明によれば、割り込み要因ごとの割り込み処理時間を考慮して、割り込み処理中の割り込み要因以外の他の割り込み要因の割り込みの発生を抑止することにより、CPU側の割り込み処理が間に合わず、必要な割り込み処理が欠落してしまうといった問題を回避することができる。
また、すべての割り込み要因に対してタイマー満了時間として一律に割り込み処理時間の最大値を設定するものではないので、システムの処理速度および精度を向上させることができる。
以下、本発明の好適な実施の形態について図を用いて詳細に説明する。
図1は、本発明の代表的な実施の形態である割り込み制御回路のブロック図である。この例では、CPU10および割り込み制御回路11間において割り込み制御が行われている。割り込み制御回路11は、ここでは例えばASICのようなデバイスを使用した回路を想定しているが、一般的には他のデバイスから発生されることもある。
この割り込み制御回路11は割り込み発生要因としてモジュール(module0〜3)100〜103の4個を持つ。それぞれの割り込み出力NIRQ_0i〜NIRQ_3iは、タイマー110〜113(timer0〜3)へ入力される(ここに“NIRQ”の“N”はアッパーバーを示し、アクティブLOWの信号を意味している。以下、同様。)。タイマー110〜113は、上位側の割り込み発生からの所定時間経過後、自分の割り込み信号が発生していた場合、NIRQ_0〜NIRQ_3をそれぞれ出力する。
たとえば、タイマー110(timer0)に注目した場合、タイマー110は、モジュール100からの割り込み発生要因NIRQ_0iを受け取ると、所定幅の負のパルスNIRQ_0を発生するとともに、基準クロック(図示せず)のカウントを開始する。タイマー110のカウント中は、抑止信号(disable)120が他のタイマーの動作およびNIRQの出力を抑止する。タイマー110のカウントが終了すると、抑止信号120による抑止状態が解除され、他のタイマーの動作が許可される。これにより、例えば次のタイマー111のNIRQ_1iに割り込み発生要因があればNIRQ_1が出力される。
タイマー111は、NIRQ_1を発生するとともにカウントを開始する。タイマー111のカウント中は、抑止信号121が他のタイマーの動作およびNIRQの出力を抑止する。タイマー111のカウントが終了すると他のタイマーの動作が許可され、例えば次のタイマー112のNIRQ_2iに割り込み発生要因があればNIRQ_2が出力される。
タイマー112は、NIRQ_2を発生するとともにカウントを開始する。タイマー112のカウント中は、抑止信号122が他のタイマーの動作およびNIRQの出力を抑止する。タイマー112のカウントが終了すると、他のタイマーの動作が許可される。これにより、例えば次のタイマー113のNIRQ_3iに割り込み発生要因があればNIRQ_3が出力される。
タイマー113については、図の例では以降の割り込みがないが、再度、多重割り込みが発生した場合でもCPU側の処理時間が確保できるように抑止信号123を発生し、他のタイマーの動作およびNIRQの出力を抑止するようにしている。
このようなタイマー110〜113はリング状に抑止信号が連鎖し、あるタイマーの動作中は、リング状の後続のすべてのタイマーの動作が抑止されるようになっている。
タイマー110〜113の出力NIRQ_0〜NIRQ_3は論理和ゲート106に入力される。論理和ゲート106の出力NIRQ108は、CPU10の割り込み端子に入力される。CPUには複数の割り込み端子が存在しうるが、本発明は、単一の割り込み端子を複数の割り込み要因に共用する場合を想定している。
また、各タイマー110〜113は、CPU10からレジスタ130を介して、それぞれに任意の満了時間を設定することができる。これにより、モジュール100〜103からの割り込み発生要因ごとに次に割り込みが受け付けられるまでの時間を設定可能となる。
このように、各割り込み発生要因ごとに他の割り込みを抑止する時間を任意に設定可能とすることで、CPU側の割り込み処理が間に合わず、必要な割り込み処理が欠落してしまうといった不具合が回避される。
レジスタ109にはタイマー110〜113の出力NIRQ_0〜NIRQ_3が所定のタイミングで書き込まれる。所定のタイミングとは例えばNIRQ108の出力時または所定のクロックによる周期的なタイミングである。
CPU10は、NIRQ108の割り込みを受けた時点で、ROM(図示無し)内のプログラムに従い制御回路21内のレジスタ109のデータを読み、割り込み発生要因がモジュール101〜103のどれかを特定する。
図2は、図1に示した割り込み制御回路において多重割り込みが発生した場合の動作例を示すタイミングチャートである。
図中、NIRQ_0i,NIRQ_1i,NIRQ_2i,NIRQ_3iは、それぞれ、モジュール100〜103の割り込み発生要因となる信号である。この信号は、この例では、割り込み要求時に低レベルとなる。NIRQ_0,NIRQ_1,NIRQ_2,NIRQ_3は、それぞれ、タイマー110〜113のNIRQ出力であり、この例では、所定幅の負パルスである。NIRQは、NIRQ_0,NIRQ_1,NIRQ_2,NIRQ_3の論理和信号である。各タイマー110〜113の満了時間は、CPU10からレジスタ130を介して、それぞれt0,t1,t2,t3に設定される。
図の例では、すべての割り込み発生要因の信号NIRQ_0i,NIRQ_1i,NIRQ_2i,NIRQ_3iが同時に発生している場合を示している。この例では、タイマー110が最初に応答し、NIRQ_0の負パルスを発生する。これはNIRQ108としてORゲート106を通過し、CPU10に割り込み信号として印加される。この割り込み信号の立ち下がりエッジでCPU10に割り込みが掛かる。図示しないが、NIRQ_0の負パルスはモジュール100に帰還され、その立ち上がりエッジでモジュール100の信号NIRQ_0iの割り込み要求が解除される(すなわち、NIRQ_0iが高レベルに戻る)。
NIRQ_0の負パルスの立ち下がりと同時に、タイマー110がスタートし、抑止信号120が出力される。タイマー110はその満了時間(ここではt0)の経過時に抑止信号120を解除する。これにより、後段のタイマーの動作が可能となり、NIRQ_1iがタイマー111に受け付けられ、NIRQ_1の負パルスを発生する。これはNIRQ108としてORゲート106を通過し、CPU10に割り込み信号として印加される。このとき、直前の割り込み処理は既に終了しているので、この割り込みは直ちに受け付けられる。図示しないが、NIRQ_1の負パルスはモジュール101に帰還され、その立ち上がりエッジでモジュール101の信号NIRQ_1iの割り込み要求が解除される(すなわち、NIRQ_1iが立ち上がる)。
NIRQ_1の負パルスの立ち下がりと同時に、タイマー111がスタートし、抑止信号121が出力される。タイマー111はその満了時間(ここではt1)の経過時に抑止信号121を解除する。これにより、後段のタイマーの動作が可能となり、NIRQ_2iがタイマー112に受け付けられ、NIRQ_2の負パルスを発生する。これはNIRQ108としてORゲート106を通過し、CPU10に割り込み信号として印加される。このとき、直前の割り込み処理は既に終了しているので、この割り込みは直ちに受け付けられる。図示しないが、NIRQ_2の負パルスはモジュール102に帰還され、その立ち上がりエッジでモジュール102の信号NIRQ_2iの割り込み要求が解除される(すなわち、NIRQ_2iが立ち上がる)。
NIRQ_2の負パルスの立ち下がりと同時に、タイマー112がスタートし、抑止信号122が出力される。タイマー112はその満了時間(ここではt2)の経過時に抑止信号122を解除する。これにより、後段のタイマーの動作が可能となり、NIRQ_3iがタイマー113に受け付けられ、NIRQ_3の負パルスを発生する。これはNIRQ108としてORゲート106を通過し、CPU10に割り込み信号として印加される。このとき、直前の割り込み処理は既に終了しているので、この割り込みは直ちに受け付けられる。図示しないが、NIRQ_3の負パルスはモジュール103に帰還され、その立ち上がりエッジでモジュール103の信号NIRQ_3iの割り込み要求が解除される(すなわち、NIRQ_3iが立ち上がる)。
NIRQ_3の負パルスの立ち下がりと同時に、タイマー113がスタートし、抑止信号123が出力される。タイマー113はその満了時間(ここではt3)の経過時に抑止信号123を解除する。これにより、後段のタイマーの動作が可能となる。図の例では後段のタイマーへの割り込み要因信号は発生していない。図示しないが、NIRQ_3の負パルスはモジュール103に帰還され、その立ち上がりエッジでモジュール103の信号NIRQ_3iの割り込み要求が解除される(すなわち、NIRQ_3iが立ち上がる)。
このように、多重の割り込みが発生した場合に、その発生要因ごとにCPU側での割り込み処理時間が異なっても、再度、割り込みエッジを発生させる場合には、タイマーによりあらかじめ設定された時間を確保している。その結果、割り込み処理が間に合わず、割り込み発生を逃してしまうといったことが回避される。
なお、図2の例ではすべての割り込み要因の割り込みが同時に発生した例を示したが、発生タイミングが若干ずれても、後発の割り込みが直前の割り込み処理中に発生した場合に、その割り込み処理終了後に後発の割り込みが有効に受け付けられることが明らかである。
以上、本発明の好適な実施の形態について説明したが、上記で言及した以外にも種々の変形、変更を行うことが可能である。
本発明の代表的な実施の形態である割り込み制御回路のブロック図である。 図1に示した割り込み制御回路において多重割り込みが発生した場合の動作例を示すタイミングチャートである。 従来の割り込み制御回路の一例を示すブロック図である。 複数のモジュールから複数の割り込み信号が多重して発生をしている様子を示すタイミングチャートである。 図3に示した割り込み制御回路において、図4に示すような多重割り込みが発生した場合の様子を示すタイミングチャートである。
符号の説明
11…制御回路
100〜103…モジュール
106…論理和ゲート
109…レジスタ
110〜113…タイマー
120〜123…抑止信号
130…レジスタ

Claims (3)

  1. 複数の割り込み要因に基づいて、CPUの一つの割り込み入力端子に対して入力する割り込み信号を発生する割り込み制御回路であって、
    複数の割り込み要因から発生される複数の割り込み入力信号の立ち上がりまたは立ち下がりのエッジによりそれぞれ起動される複数のタイマーと、
    これらの複数のタイマーの出力の論理和を得て前記CPUの割り込み入力端子に入力する論理和手段と、
    前記複数の割り込み要因毎に任意の満了時間を前記複数のタイマーに設定する手段とを備え、
    各タイマーはその動作が抑止されていないとき前記割り込み入力信号の立ち上がりまたは立ち下がりエッジにより起動され前記論理和手段に割り込み信号を出力するとともに、当該タイマーに設定された満了時間が経過するまで他のタイマーの動作を抑止する
    ことを特徴とする割り込み制御回路。
  2. 各タイマーの出力で、対応する前記割り込み要因について割り込み入力信号を発生しているモジュールに対してその出力を解除させる請求項1記載の割り込み制御回路。
  3. 前記複数のタイマーの出力を所定のタイミングで格納するレジスタを有し、このレジスタの内容を割り込み発生要因の特定用に供する請求項1記載の割り込み制御回路。
JP2006252888A 2006-09-19 2006-09-19 割り込み制御回路 Withdrawn JP2008077184A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006252888A JP2008077184A (ja) 2006-09-19 2006-09-19 割り込み制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006252888A JP2008077184A (ja) 2006-09-19 2006-09-19 割り込み制御回路

Publications (1)

Publication Number Publication Date
JP2008077184A true JP2008077184A (ja) 2008-04-03

Family

ID=39349202

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006252888A Withdrawn JP2008077184A (ja) 2006-09-19 2006-09-19 割り込み制御回路

Country Status (1)

Country Link
JP (1) JP2008077184A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016224520A (ja) * 2015-05-27 2016-12-28 ルネサスエレクトロニクス株式会社 半導体装置
WO2023032496A1 (ja) * 2021-09-03 2023-03-09 株式会社村田製作所 インターフェース回路、デジタル回路、通信モジュール及び通信装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016224520A (ja) * 2015-05-27 2016-12-28 ルネサスエレクトロニクス株式会社 半導体装置
WO2023032496A1 (ja) * 2021-09-03 2023-03-09 株式会社村田製作所 インターフェース回路、デジタル回路、通信モジュール及び通信装置

Similar Documents

Publication Publication Date Title
JPH05274259A (ja) シリアル入力インタフェース回路
JP2010277303A (ja) 半導体装置及び異常検出方法
TW528944B (en) A processing system and method of resetting a plurality of processing modules
JP2008077184A (ja) 割り込み制御回路
US7181559B2 (en) Message based transport mechanism for level sensitive interrupts
US8151131B2 (en) Signal synchronization method and signal synchronization circuit
JP2008225807A (ja) 制御装置およびそのプログラム暴走監視方法
JP2008131260A (ja) ノイズ除去回路
JP5884788B2 (ja) マイクロコンピュータ
CN111052690B (zh) 数据获取方法及数据获取装置
JP2015141717A (ja) 推測的割込みシグナリング
WO2018003560A1 (ja) 電子制御装置
JP2011107939A (ja) 冗長系情報処理装置
JP2006318237A (ja) イベント駆動型制御装置
JP4044536B2 (ja) 表示制御用回路
US20220415405A1 (en) Memory-control circuit and method for controlling erasing operation of flash memory
JP5331451B2 (ja) マイクロコントローラ
JP2006018661A (ja) メモリ制御装置およびメモリ制御方法
JP2019074823A (ja) 割り込み制御装置
JP2010073037A (ja) 画像処理装置
JPS63234328A (ja) コンピユ−タの割込み処理方法
JP2004171040A (ja) タイマ回路
JPH0540725A (ja) 入出力制御装置
JPS5935250A (ja) プログラム制御装置
JP2001202264A (ja) マルチプロセッサシステム及び各プロセッサの診断方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20091201