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

割り込み制御回路 Download PDF

Info

Publication number
JP4731126B2
JP4731126B2 JP2004098328A JP2004098328A JP4731126B2 JP 4731126 B2 JP4731126 B2 JP 4731126B2 JP 2004098328 A JP2004098328 A JP 2004098328A JP 2004098328 A JP2004098328 A JP 2004098328A JP 4731126 B2 JP4731126 B2 JP 4731126B2
Authority
JP
Japan
Prior art keywords
interrupt
priority
interrupts
mask
group
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.)
Expired - Fee Related
Application number
JP2004098328A
Other languages
English (en)
Other versions
JP2005284760A (ja
Inventor
英樹 松山
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2004098328A priority Critical patent/JP4731126B2/ja
Priority to US11/087,660 priority patent/US7308518B2/en
Publication of JP2005284760A publication Critical patent/JP2005284760A/ja
Application granted granted Critical
Publication of JP4731126B2 publication Critical patent/JP4731126B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

本発明は、割り込み制御回路に関し、更に詳しくは、複数の割り込みのうちの一部をマスクする割り込み制御回路に関する。
特定用途向けの組み込みシステム(embedded system)が普及している。組み込みシステムの適用は、例えば、家電機器や、自動車等といった多岐の分野にわたっている。組み込みシステムでは、1つのプロセッサが制御する対象が増えてきており、それに伴って、プロセッサが取り扱う割り込み信号の数も増加している。例えば、プロセッサが、電子制御機器のシステム制御を行うと共に、システムの自己診断やデータのバックアップを行う場合には、そのプロセッサには、システム制御に関係する割り込みと、システムの自己診断やデータのバックアップに関係する割り込みとが入力される。
電子制御機器のシステム制御では、プロセッサは、発生した割り込みに対応して、時々刻々と変化する電子制御機器の動作状況に応じた処理を行う。このとき、システム制御に対応する割り込みが発生してから、その処理を実際に終えるまでの時間が、あらかじめ定められた所定の期間(制約時間)を超えると、システムの制御が電子制御機器の状態の変化に追いつかなくなって、システム制御に支障が出ることがある。このため、プロセッサには、システム制御の処理については、必ず、割り込みが発生してから所定の期間内に処理を終え、その結果を返すことが要求される、つまり、高いリアルタイム性が要求される。ここで、リアルタイム性とは、一般的には、システムに課せられる時間的制約を満足できることをいう。一方、自己診断やデータのバックアップについては、対応する割り込みが発生してから、実際に処理を終えるまでの時間が時によってまちまちであったとしても大きな問題は発生せず、それほど高いリアルタイム性は要求されない。
上記プロセッサでは、プロセッサに課せられる制約時間は、電子制御機器の動作状況に応じて変化し、例えば電子制御機器の動作が高速である場合には、システム制御に課せられる制約時間は短くなり、電子制御機器の動作が低速である場合には、システム制御に課せられる制約時間は長くなる。システムに課せられる制約時間が短いとき、或いは、一定時間に行う処理が増えたとき、プロセッサの処理能力の余裕が少なくなることから、プロセッサが全ての割り込みを受け付け可能とすると、割り込みが過剰に発生した場合には、その制約時間内に処理を終えることができず、処理が間に合わないといった事態が生じ得る。
通常、各割り込みは、プロセッサの動作とは非同期に、それぞれの要因に応じて発生するものであるから、割り込みの発生自体を抑制することはできないが、プロセッサが受け付け可能とする割り込みを制御することはできる。この割り込みの制御では、割り込みコントローラによって、プロセッサの処理能力に余裕がないときには、要求されるリアルタイム性が低い割り込みを一時的にマスクしてこれを保留し、要求されるリアルタイム性が高い割り込みのみがプロセッサによって受け付けられるようにする。このような、割り込みを一時的にマスクする技術としては、例えば特許文献1や特許文献2に記載された技術がある。
図6は、特許文献2に記載された、割り込みコントローラを有する半導体装置の一部を示している。割り込みコントローラ202は、割り込みマスクテーブル203を備えている。割り込みマスクテーブル203には、入力する複数の割り込み信号のそれぞれについて、その割り込み信号をマスクするか否かの情報が書き込まれる。割り込みマスクテーブル203は、CPU201の処理の状態に応じて書き換え可能に構成される。各割り込みには、その割り込みに要求されるリアルタイム性に応じて優先度が設定されており、その優先度は、要求されるリアルタイム性が高いほど、高く設定される。
割り込みコントローラ202は、割り込みマスクテーブル203を参照して、入力する複数の割り込み信号のうち、マスクする旨の情報が書き込まれている割り込み信号については、その割り込み信号をマスクしてCPU201に伝達しない。これとは逆に、マスクしない旨の情報が書き込まれている割り込み信号については、その割り込み信号をマスクせずにCPU201に伝達する。これによって、割り込みマスクテーブル203にマスクしない旨の情報が書き込まれている所望の割り込み信号のみが、CPU201によって受け付け可能にされる。
組み込みシステムでは、CPU201の処理能力に余裕があるか否かは、制御対象の機器の動作状況によって判断される。CPU201の処理能力に余裕があるときには、割り込みマスクテーブル203には、全ての割り込み信号をマスクしない旨の情報が書き込まれ、全ての割り込み信号が、CPU201によって受け付け可能にされる。これとは逆に、CPU201の処理能力に余裕がないときには、割り込みマスクテーブル203には、優先度が低い割り込み信号をマスクする旨の情報が書き込まれ、優先度が高い所望の割り込み信号のみが、CPU201に受け付け可能となる。
図7は、CPU201によって受け付け可能にされる割り込み信号を、処理の進行と共に示している。CPU201は、時間の進行に従って、フェーズ1〜フェーズ6の処理を行う。なお、この例では、割り込みコントローラ202に入力される割り込み信号は、割り込み信号INT(0)〜INT(15)までの16個であり、優先度は、PRI#0〜#3までの4段階である例について示している。優先度は、数字が小さいものほど高いものとし、優先度PRI#0>優先度PRI#1>優先度PRI#2>優先度PRI#3である。
図7の例では、割り込み信号INT(0)、INT(4)、INT(8)、INT(12)の優先度は、それぞれ優先度PRI#0に設定され、割り込み信号INT(1)、INT(5)、INT(9)、INT(13)の優先度は、それぞれ優先度PRI#1に設定されている。また、割り込み信号INT(2)、INT(6)、INT(10)、INT(14)の優先度は、それぞれ優先度PRI#2に設定され、割り込み信号INT(3)、INT(7)、INT(11)、INT(15)の優先度は、それぞれ優先度PRI#3に設定されている。
フェーズ1は、制御対象機器において、制約時間内に処理ができないほど処理が増え、CPU201の処理能力に余裕がない状態にある。この状態では、割り込みマスクテーブル203には、割り込み信号INT(0)、INT(4)、INT(8)、INT(12)についてはマスクしない旨の情報が書き込まれ、それ以外の割り込みについてはマスクする旨の情報が書き込まれる。これにより、優先度PRI#1以下に設定されている全ての割り込み信号がマスクされ、優先度PRI#0に設定されている割り込み信号のみがCPU201によって受け付け可能にされている。
フェーズ2は、制御対象機器の動作状況が変化し、制約時間が少し長くなって、CPU201の処理能力に少し余裕が出てきた状態にある。この状態では、割り込みマスクテーブル203には、フェーズ1でマスクしない旨の情報が書き込まれた割り込み信号に加え、割り込み信号INT(1)、INT(5)、INT(9)、INT(13)についてもマスクしない旨の情報が書き込まれる。これにより、優先度PRI#2以下に設定されている割り込み信号がマスクされ、優先度PRI#0及び優先度PRI#1に設定されている割り込み信号がCPU201によって受け付け可能にされている。
フェーズ3は、CPU201の処理能力の余裕がフェーズ2と同じ程度であるため、割り込みマスクテーブル203に書き込まれる情報はフェーズ2と同様であり、優先度PRI#0及びPRI#1に設定されている割り込み信号がCPU203によって受け付け可能にされている。フェーズ4は、CPU201の処理能力の余裕がフェーズ1と同じ程度であるため、割り込みマスクテーブル203に書き込まれる情報はフェーズ1と同様であり、優先度PRI#0に設定されている割り込み信号のみがCPU203によって受け付け可能にされている。
フェーズ5及びフェーズ6は、CPU201の処理能力の余裕がフェーズ2及びフェーズ3と同様であるため、割り込みマスクテーブル203に書き込まれる情報は、フェーズ2及びフェーズ3と同様である。従って、フェーズ5及びフェーズ6では、優先度PRI#0及びPRI#1に設定されている割り込み信号がCPU203によって受け付け可能にされている。
特開平5−210514号公報 特開平8−297581号公報(図1、段落0018)
ところで、従来は、プロセッサの処理能力に応じて、優先度が高い順に、受け付け可能とする割り込みを増やすように制御しているため、プロセッサの処理能力にある程度まで余裕が出てくるまでは、優先度の低い割り込みが受け付け可能にされない。優先度が低い割り込みは、要求されるリアルタイム性が低いとはいえ、長時間にわたって受け付けられなくてもよいというわけではない。しかし、処理が立て込んでいるような場合には、図7に示すように、優先度PRI#2以下の割り込みが全く受け付け可能にならないという問題がある。
例えば、フェーズ3において、優先度PRI#2に設定されている割り込みを受け付け可能としたいときには、割り込みコントローラ202は、割り込みマスクテーブル203を参照して、優先度PRI#0、PRI#1、及びPRI#2に設定された割り込みが受け付け可能となるように制御する。しかし、この場合には、割り込みが過剰に発生するような状況では、プロセッサが行う処理件数が増大し、リアルタイム性が悪化するおそれがある。
また、割り込みマスクテーブル203には、各割り込みに対応して、その割り込みをマスクする旨、或いは、マスクしない旨の情報が書き込まれ、割り込みコントローラ202は、その割り込みマスクテーブル203を参照して、割り込みをマスクする旨の情報が書き込まれた割り込みをマスクしている。このため、割り込みコントローラ202によって割り込みをマスクしようとする場合には、個々の割り込み信号がどの優先度に設定されているかを考慮しながら制御する必要があり、マスクするための制御が煩雑であった。複数の割り込みのうち、いくつかの割り込みを一括でマスクすることができれば制御を単純化できるが、従来、そのような手法は採用されていなかった。
本発明は、上記従来技術の問題点を解消し、複数の割り込みのうちの所望の割り込みのみを、簡易にマスクすることができる割り込み制御回路を提供することを目的とする。また、本発明は、プロセッサの処理能力にそれほど処理に余裕がないときでも、リアルタイム性をそれほど悪化させることなく、優先度の低い割り込みをも受け付け可能とすることができる割り込み制御回路を提供する。
上記目的を達成するために、本発明の割り込み制御回路は、プロセッサが受け付ける割り込みを制御する割り込み制御回路において、複数の割り込みのそれぞれについて、当該割り込みに設定されたグループの情報を保持するグループ設定レジスタと、各グループについて、当該グループに属する割り込みをマスクすべきか否かを指定する情報を保持するマスク情報レジスタと、複数の割り込みのそれぞれについて、前記グループ設定レジスタ及びマスク情報レジスタの情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスクする第1のマスク手段とを備えることを特徴とする。
本発明の割り込み制御回路では、第1のマスク手段は、マスク情報レジスタによってマスクすべきと指定されたグループに属する割り込みを、一括でマスクする。このため、マスク情報レジスタが保持するマスクすべきと指定する情報を、逐次書き換えることにより、プロセッサが受け付け可能とする割り込みを、簡易に変化させることができる。これにより、例えばプロセッサの処理能力に余裕がないときにも、要求されるリアルタイム性が低い割り込みを一時的に受け付け可能として、その要求されるリアルタイム性が低い割り込みが長時間にわたって受け付け可能にされない事態を回避することができる。また、マスクすべきグループを指定することで、そのグループに属する割り込みを一括でマスクできるため、割り込みごとにその割り込みをマスクする/しないの情報を書き込んで、所望の割り込みをマスクする従来の制御に比して、マスクすべき割り込みの制御を、簡易化できる。
本発明の割り込み制御回路は、複数の割り込みのそれぞれについて、当該割り込みに設定された優先度の情報を保持する優先度設定レジスタと、プロセッサが現在受け付けている割り込みの優先度を保持する優先度保持レジスタと、複数の割り込みのそれぞれについて、前記優先度設定レジスタ及び優先度保持レジスタの情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスクする第2のマスク手段とを更に備えることが好ましい。この場合には、第2のマスク手段が、現在プロセッサが受け付けている割り込みよりも低い優先度に属する割り込みが発生したとしても、これをマスクすることで、現在受け付けている割り込みよりも優先度の低い割り込みが、プロセッサによって受け付けられないようにすることができる。ここで、優先度は、例えば割り込みに対応して実行される処理に要求されるリアルタイム性に応じて設定される。
本発明の割り込み制御回路では、前記マスク情報レジスタに保持された情報は、プロセッサの処理の状況に応じて逐次書き換えられることが好ましい。例えば、プロセッサの処理が立て込み、プロセッサの処理能力に余裕がないときには、所望のグループに属する割り込みのみがプロセッサによって受け付けられるような情報を、マスク情報レジスタに書き込み、プロセッサが受け付け可能とする割り込みを制限するとよい。また、その際に、受け付け可能とするグループを逐次変化させることで、プロセッサの処理能力に余裕がない場合でも、あるグループに属する割り込みが長時間にわたって受け付け可能にされない事態を防止することができる。
本発明の別の視点の割り込み制御回路は、プロセッサが受け付ける割り込みを制御する割り込み制御回路において、複数の割り込みのそれぞれについて、当該割り込みに設定された優先度の情報を保持する優先度設定レジスタと、各グループについて、当該優先度に属する割り込みをマスクすべきか否かを指定する情報を保持するマスク情報レジスタと、複数の割り込みのそれぞれについて、前記優先度設定レジスタ及びマスク情報レジスタの情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスクする第1のマスク手段とを備えることを特徴とする。
本発明の別の視点の割り込み制御回路では、第1のマスク手段は、マスク情報レジスタによってマスクすべきと指定された優先度に属する割り込みを、一括でマスクする。このため、マスク情報レジスタが保持する、マスクすべきと指定する情報を逐次に書き換えることにより、プロセッサが受け付け可能とする割り込みを、簡易に変化させることができる。これにより、例えばプロセッサの処理能力に余裕がないときにも、優先度の低い割り込みを一時的に受け付け可能として、その優先度の低い割り込みが長時間にわたって受け付け可能にされない事態を回避することができる。また、マスクすべき優先度を指定することで、その優先度に属する割り込みを一括でマスクできるため、割り込みごとにその割り込みをマスクする/しないの情報を書き込んで、所望の割り込みをマスクする従来の制御に比して、マスクすべき割り込みの制御を、簡易化できる。
本発明の別の視点の割り込み制御回路は、プロセッサが現在受け付けている割り込みの優先度を保持する優先度保持レジスタと、複数の割り込みのそれぞれについて、前記優先度設定レジスタ及び優先度保持レジスタの情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスクする第2のマスク手段とを更に備えることが好ましい。この場合には、第2のマスク手段が、現在プロセッサが受け付けている割り込みよりも低い優先度に設定された割り込みが発生したとしても、これをマスクすることで、現在受け付けている割り込みよりも優先度の低い割り込みが、プロセッサによって受け付けられないようにすることができる。
本発明の別の視点の割り込み制御回路では、前記マスク情報レジスタに保持された情報は、プロセッサの処理の状況に応じて逐次書き換えられることが好ましい。例えば、プロセッサの処理が立て込み、プロセッサの処理能力に余裕がないときには、所望の優先度に属する割り込みのみがプロセッサによって受け付けられるような情報を、マスク情報レジスタに書き込んで、プロセッサが受け付け可能とする割り込みを制限するとよい。また、その際に、受け付け可能とする優先度を逐次変化させることで、プロセッサの処理能力に余裕がない場合でも、優先度が低い割り込みが長時間にわたって受け付け可能にされない事態を防止することができる。
本発明の割り込み制御回路では、マスクすべきグループ又は優先度を指定することで、そのグループ又は優先度に属する割り込みを一括でマスクできるため、従来に比して、マスクすべき割り込みの制御を、簡易化できる。また、マスク情報レジスタが保持する、マスクすべきと指定する情報を書き換えることにより、プロセッサが受け付け可能とする割り込みを逐次変化させることができ、その場合には、ある割り込みが長時間にわたって受け付け可能にされない事態を回避することができる。
以下、図面を参照し、本発明の実施形態例に基づいて、本発明を更に詳細に説明する。図1は、本発明の第1実施形態例の割り込み制御回路を有する半導体装置の構成を示している。半導体装置100は、プロセッサ101と、割り込み制御回路102とを備える。この半導体装置100は、例えば電子制御機器の制御を行う組み込みシステムに用いられ、プロセッサ101は、電子制御機器のシステム制御や、センサから入力された情報によるデータの演算処理、システムの自己診断、データのバックアップ等を行う。
割り込み制御回路102は、割り込みグループマスクレジスタ103、割り込みサービスレベル保持レジスタ104、出力信号生成回路106、及び、複数の割り込み要因制御モジュール105(0)〜(N)(N:自然数)を備える。本実施形態例では、複数の割り込みをいくつかのグループに分け、そのグループ単位で、割り込みをマスクし、プロセッサ101が受け付け可能とする割り込みを制限する。各割り込みは、例えば、システム制御に関係する割り込みが属するグループ、システムの自己診断に関係する割り込みが属するグループといったように、プロセッサ101が行う処理ごとにグループ分けされる。
割り込み制御回路102は、複数の割り込み信号INT(0)〜INT(N)を入力し、プロセッサ101に、割り込み要求信号と、割り込み識別信号とを送信する。各割り込み信号INTには、それぞれ、優先度とグループとが設定されている。図2は、各割り込み信号に設定される、優先度及びグループを示している。この例では、N=15であり、優先度として、PRI#0〜PRI#3までの4つの優先度が設定され、グループとして、Grp#0〜Grp#7までの8つのグループが設定されている。
ここで、優先度は、割り込みに対応する処理に要求されるリアルタイム性の高低に応じて設定され、値が小さいほど優先度が高いものとする。割り込み信号INT(0)、INT(4)、INT(8)、及びINT(12)は、最も要求されるリアルタイム性が高い割り込みであり、その優先度は、最も高いPRI#0に設定されている。割り込み信号INT(1)、INT(5)、INT(9)、及びINT(13)の優先度は、2番目に高いPRI#1に設定される。
割り込み信号INT(2)、INT(6)、INT(10)、及びINT(14)の優先度は、3番目に高いPRI#2に設定される。割り込み信号INT(3)、INT(7)、INT(11)、及びINT(15)の優先度は、最も低いPRI#3に設定される。なお、優先度が同じ割り込みが競合した場合には、プロセッサ101は、競合する割り込みのうち、割り込み番号が小さい方を受け付けるものとする。例えば、同じ優先度PRI#0に設定される割り込み信号INT(0)と割り込み信号INT(4)とが競合したときには、プロセッサ101は、割り込み信号INT(0)を受け付けるものとする。
割り込み要因制御モジュール105(0)〜(N)は、それぞれ、割り込み信号INT(0)〜(N)に対応して設けられる。割り込みグループマスクレジスタ103は、マスクすべきグループを指定するレジスタとして構成される。割り込みサービスレベル保持レジスタ104は、プロセッサ101が現在処理を行っている割り込みに対応して設定されている優先度を保持する。各割り込み要因制御モジュール105は、割り込みグループマスクレジスタ103及び割り込みサービスレベル保持レジスタ104を参照して、入力される割り込み信号INTを、出力信号生成回路106に伝達するか否かを決定する。
図3は、図1に示す、各割り込み要因制御モジュール105の構成を示している。割り込み要因制御モジュール105(0)〜(N)は、それぞれ、割り込み要因保持装置151、割り込みマスク回路152、割り込みレベル判定回路153、割り込みグループ設定レジスタ154、及び、割り込みレベル設定レジスタ155を備える。割り込み要因保持装置151は、入力する割り込み信号INTを、その割り込み信号INTがプロセッサ101によって受け付けられるまで保持し、割り込みが発生している旨を割り込みマスク回路152に入力する。
割り込みレベル設定レジスタ155は、割り込み要因制御モジュール105に入力する割り込み信号INTに設定された優先度を記憶する。例えば、各割り込みに図2に示すような優先度が設定されているときには、割り込み要因制御モジュール105(0)、105(4)、105(8)、及び105(12)の割り込みレベル設定レジスタ155には、それぞれ優先度PRI#0を示す情報を保持し、割り込み要因制御モジュール105(1)、105(5)、105(9)、及び105(13)の割り込みレベル設定レジスタ155には、それぞれ優先度PRI#1を示す情報を保持する。
割り込みグループ設定レジスタ154は、割り込み要因制御モジュール105に入力する割り込み信号INTに設定されたグループ番号を記憶する。例えば、割り込みが図2に示すようにグループ分けされているときには、割り込み要因制御モジュール105(0)及び105(4)の割り込みグループ設定レジスタ154には、それぞれグループGrp#0を示す情報としてグループ番号0を保持し、割り込み要因制御モジュール105(8)及び105(12)の割り込みグループ設定レジスタ154には、それぞれグループGrp#4を示す情報としてグループ番号4を保持する。
割り込みグループマスクレジスタ103は、例えば、割り込み信号INTに設定されるグループ数に応じたビット数を有するレジスタとして構成され、その各ビットには、それぞれのビットに対応するグループ番号に設定された割り込み信号をマスクすべき旨の情報(“1”)、又は、割り込み信号をマスクしない旨の情報(“0”)が書き込まれている。例えば、グループGrp#3に設定されている割り込み信号をマスクしたいときには、割り込みグループマスクレジスタ103の3番目のビットには“1”が書き込まれる。また、グループGrp#3及びグループGrp#7に設定されている割り込み信号をマスクしたいときには、割り込みグループマスクレジスタ103の3番目のビット、及び、7番目のビットにそれぞれ“1”が書き込まれる。
割り込みマスク回路152は、割り込みグループ設定レジスタ154が保持するグループ番号に対応する、割り込みグループマスクレジスタ103のビットに書き込まれている情報を読み取る。割り込みマスク回路152は、読み取ったビットに、割り込み信号をマスクしない旨の情報(“0”)が書き込まれているときには、割り込み要因保持装置151から入力する割り込みが発生している旨の信号を、そのまま割り込みレベル判定回路153に入力する。これとは逆に、そのビットに、割り込み信号をマスクすべき旨の情報(“1”)が書き込まれているときには、割り込み要因保持装置151から入力する割り込みが発生している旨の信号をマスクして、その旨の信号を割り込みレベル判定回路153に入力しない。
割り込みレベル判定回路153は、割り込み信号INTに設定された優先度を割り込みレベル設定レジスタ155から読み出し、その優先度と、割り込みサービスレベル保持レジスタ104が保持する、現在プロセッサ101が実行中の処理の優先度とを比較する。割り込みレベル判定回路153は、割り込みマスク回路152から割り込みが発生した旨の信号を入力するとき、プロセッサ101が現在実行中の処理の優先度が、割り込み要因制御モジュール105に入力される割り込み信号INTに設定された優先度よりも低ければ、入力する割り込みが発生した旨の信号を、出力信号生成回路106(図1)に受け渡す。
出力信号生成回路106は、割り込み要因制御モジュール105(0)〜(N)から、対応する割り込みが発生した旨の信号が入力されると、その発生した割り込みに対応する割り込み要求信号と割り込み識別信号とをプロセッサ101に入力する。出力信号生成回路106は、複数の割り込み要因制御モジュール105から割り込みが発生した旨の信号を入力するときには、割り込み番号の値が小さいものを優先し、その値が小さい方の割り込みに対応する割り込み要求信号と割り込み識別信号とをプロセッサ101に入力する。プロセッサ101は、何れかの割り込みを受け付けると、その割り込み対応した処理を開始し、割り込みサービスレベル保持レジスタ104の値を、新たに受け付けた割り込みに対応して設定されている優先度で更新する。
図4は、プロセッサ101によって受け付け可能にされる割り込み信号を処理の進行と共に示している。プロセッサ101は、時間経過と共に、フェーズ1〜フェーズ6の処理を行う。なお、各割り込み信号に設定される優先度及びグループは、図2のように設定されているものとし、図4中に網掛けで示す番号の割り込みがプロセッサ101によって受け付け可能にされるものする。この一連の処理では、グループGrp#0に設定された割り込みについては、全ての期間(フェーズ)でプロセッサ101によって受け付け可能にされ、グループGrp#1〜Grp#3、及び、グループGrp#5に設定された割り込みついては、プロセッサ101の処理の余裕に応じて、受け付け可能にされ、或いは、受付不可にされる。
ここで、図4に示す一連の処理は、以下に示す条件を満たして進行するものとする。優先度PRI#0に設定される割り込みのうち、グループGrp#0に設定された割り込み信号INT(0)及びINT(4)は、それぞれ最も重要な割り込みであり、それら割り込みが発生したときには、プロセッサ101は、直ちにその割り込みを受け付けなければならない。また、グループGrp#1に設定される割り込み信号INT(1)及びINT(5)と、グループGrp#5に設定された割り込み信号INT(9)及びINT(13)とは、長時間にわたって受け付けられない期間があってはならない。更に、優先度がPRI#2に設定される割り込みのうち、グループGrp#2に設定される割り込み信号INT(2)及びINT(6)と、優先度がPRI#3に設定される割り込みのうち、グループGrp#3に設定される信号INT(3)及びINT(7)とについても、設定される優先度は低いものの、長時間受け付けられない期間があってはならない。
グループGrp#4に設定される割り込み信号(8)及びINT(12)は、図4に示す一連の処理とは排他的に行われるべき処理に関係する割り込みである等により、ここでは、受け付ける必要がない割り込みである。このため、グループGrp#4に設定される割り込みは、その優先度は最も高いPRI#0に設定されてはいるが、この一連の処理では受け付け可能とはされない。同様に、グループGrp#6に設定される割り込み信号INT(10)及びINT(14)と、グループGrp#7に設定される割り込み信号INT(11)及びINT(15)とについても、この一連の処理では受け付ける必要がない割り込みであり、この一連の処理では、受け付け可能にされない。
フェーズ1は、例えば電子制御機器において、制約時間が短くなり、制約時間内に処理ができないほど処理が増えて、プロセッサ101の処理能力に余裕がない状態にある。フェーズ1では、割り込みグループマスクレジスタ103のグループGrp#0に対応するビットには、割り込みをマスクしない旨の情報(“0”)が書き込まれ、それ以外のグループに対応するビットには、割り込みをマスクする旨の情報(“1”)が書き込まれる。これにより、割り込み要因制御モジュール105(1)〜(N)のうち、割り込みグループ設定レジスタ154にグループ番号0以外のグループ番号が書き込まれている割り込み要因制御モジュール105では、割り込みが発生したとしても、割り込みマスク回路152によって割り込みが発生した旨の信号がマスクされる。このため、フェーズ1では、プロセッサ101が受け付け可能とする割り込みが、一連の処理において最も重要な割り込みであるグループGrp#0に設定された割り込みのみに制限される。
フェーズ2は、電子制御機器の動作状況が変化し、制約時間が少し長くなって、プロセッサ101の処理能力に少し余裕が出てきた状態にある。フェーズ2では、割り込みグループマスクレジスタ103のグループGrp#0及びGrp#1に対応するビットには、割り込みをマスクしない旨の情報(“0”)が書き込まれ、それら以外のグループに対応するビットには、割り込みをマスクする旨の情報(“1”)が書き込まれる。これにより、グループGrp#0及びグループGrp#1以外のグループに設定された割り込みがマスクされ、フェーズ2では、プロセッサ101は、グループGrp#0に設定された割り込みに加えて、グループGrp#1に設定された割り込みを受け付け可能とする。
フェーズ3は、プロセッサ101の処理能力の余裕がフェーズ2と同じ程度であるが、グループGrp#0に設定された割り込みと共に、プロセッサ101によって受け付け可能にされるグループが、フェーズ2とは異なる。フェーズ3では、割り込みグループマスクレジスタ103のグループGrp#0及びGrp#2に対応するビットには、割り込みをマスクしない旨の情報(“0”)が書き込まれ、それら以外のグループに対応するビットには、割り込みをマスクする旨の情報(“1”)が書き込まれる。これにより、フェーズ3では、グループGrp#1に代えて、グループGrp#2に設定された割り込みが、グループGrp#0と共に受け付け可能にされる。
フェーズ4は、再び制約時間が短くなり、プロセッサ101の処理能力の余裕は、フェーズ1と同様である。このため、フェーズ3では、フェーズ1と同様に、割り込みグループマスクレジスタ103のグループGrp#0に対応するビットには、割り込みをマスクしない旨の情報(“0”)が書き込まれ、それ以外のグループに対応するビットには、割り込みをマスクする旨の情報(“1”)が書き込まれる。これにより、プロセッサ101が受け付け可能とする割り込みは、再び、グループGrp#0に設定された割り込みのみに制限される。
フェーズ5は、制約時間が少し長くなって、フェーズ2と同様に、プロセッサ101の処理能力に少し余裕が出てきた状態にある。フェーズ5では、割り込みグループマスクレジスタ103のグループGrp#0及びGrp#5に対応するビットには、割り込みをマスクしない旨の情報(“0”)が書き込まれ、それら以外のグループに対応するビットには、割り込みをマスクする旨の情報(“1”)が書き込まれる。これにより、グループGrp#0及びグループGrp#5以外のグループに設定された割り込みがマスクされ、フェーズ5では、プロセッサ101は、グループGrp#0に設定された割り込みに加えて、グループGrp#5に設定された割り込みを受け付け可能とする。
フェーズ6は、プロセッサ101の処理能力の余裕がフェーズ5と同じ程度であるが、グループGrp#0に設定された割り込みと共に、プロセッサ101によって受け付け可能にされるグループが、フェーズ5とは異なる。フェーズ6では、割り込みグループマスクレジスタ103のグループGrp#0及びGrp#3に対応するビットには、割り込みをマスクしない旨の情報(“0”)が書き込まれ、それら以外のグループに対応するビットには、割り込みをマスクする旨の情報(“1”)が書き込まれる。これにより、フェーズ6では、グループGrp#5に代えて、グループGrp#3に設定された割り込みが、グループGrp#0と共に受け付け可能にされる。
本実施形態例では、プロセッサ101が受け付け可能とする割り込みを、処理の余裕に応じて、単に優先度が高いものから順に受け付け可能とするのではなく、余裕がそれほどないときでも、優先度の低い割り込みを一時的に受け付け可能としている。本実施形態例では、優先度PRI#2に設定された割り込みを受け付け可能としたいときには、図4のフェーズ3に示すように、優先度PRI#1に設定された割り込みを受け付け可能とせずに、優先度PRI#0に設定された割り込みの一部と、優先度PRI#2に設定された割り込みの一部が受け付け可能となるように制御している。このようにすることで、プロセッサ101は、その処理能力にそれほど処理に余裕がないときでも、リアルタイム性を悪化させることなく、優先度の低い割り込みに対応する処理を行うことがきる。
また、本実施形態例では、各割り込み要因制御モジュール105は、入力する割り込みに設定されたグループが、割り込みグループマスクレジスタ103によってマスクすべきと指定されているときには、割り込みが発生したとしても、その割り込みを保留し、割り込みが発生した旨を出力信号生成回路106に伝達しない。これにより、本実施形態例では、マスクすべきグループを指定するだけで、そのグループに設定される割り込みを一括でマスクできる。従って、個々の割り込みに対してマスクする/マスクしないを指定する従来に比して、所望の割り込みを、簡易にマスクすることができる。
なお、上記実施形態例では、同じ優先度に設定された割り込みを複数のグループに分ける、逆に言えば、同じグループに設定された割り込みは、全て同じ優先度に設定されている例について説明したが、各割り込みに設定するグループは任意に設定でき、同じグループに設定される割り込みが、すべて同じ優先度に設定されている必要はない。例えば、図2の例では、優先度PRI#0に設定される割り込み信号INT(0)及びINT(4)と、優先度PRI#2に設定される割り込み信号IT(2)及びINT(6)とを、グループGrp#0に設定することもできる。
また、例えば、優先度PRI#0(図2)に設定された割り込みを全てグループGrp#0に設定し、優先度PRI#1に設定された割り込みを全てグループGrp#1に設定するといったように、グループと優先度とを1対1に対応させてもよい。その場合には、図3に示す割り込みグループ設定レジスタ154と割り込みレベル設定レジスタ155とが同じ情報を保持することとなる。この場合には、図5に示すように、割り込み要因制御モジュール105aでは、割り込みグループ設定レジスタ154を省略することができる。割り込みレベルマスクレジスタ107は、割り込みグループマスクレジスタ103(図1)と同様に、各優先度について、その優先度に設定された割り込みをマスクする/しないの情報が書き込まれている。割り込みマスク回路152は、その割り込みレベルマスクレジスタ107に、割り込みレベル設定レジスタ155が保持する優先度の割り込みをマスクする旨の情報が書き込まれているか否かによって、割り込みが発生した旨をマスクするか否かを決定する。このような構成を採用する場合には、マスクすべき優先度を指定することで、その優先度に設定された割り込みを一括でマスクすることができる。
以上、本発明をその好適な実施形態例に基づいて説明したが、本発明の割り込み制御回路は、上記実施形態例にのみ限定されるものではなく、上記実施形態例の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
本発明の第1実施形態例の割り込み制御回路を有する半導体装置の構成を示すブロック図。 各割り込み信号に設定される、優先度及びグループを示すブロック図。 図1の割り込み要因制御モジュール105の構成例を示すブロック図。 プロセッサによって受け付け可能にされる割り込み信号を処理の進行と共に示すブロック図。 割り込み要因制御モジュール105の別の構成例を示すブロック図。 従来の割り込みコントローラを有する半導体装置の一部を示すブロック図。 プロセッサによって受け付け可能にされる割り込み信号を、処理の進行と共に示すブロック図。
符号の説明
100:半導体装置
101:プロセッサ
102:割り込み制御回路
103:割り込みグループマスクレジスタ
104:割り込みサービスレベル保持レジスタ
105:割り込み要因制御モジュール
106:出力信号生成回路
107:割り込みレベルマスクレジスタ
151:割り込み要因保持装置
152:割り込みマスク回路
153:割り込みレベル判定回路
154:割り込みグループ設定レジスタ
155:割り込みレベル設定レジスタ

Claims (2)

  1. プロセッサが受け付ける割り込みを制御する割り込み制御回路において、
    複数の割り込みのそれぞれについて、当該割り込みに設定されたグループの情報を保持
    するグループ設定レジスタと、
    各グループについて、当該グループに属する割り込みをマスクすべきか否かを指定する
    情報を保持するマスク情報レジスタと、
    複数の割り込みのそれぞれについて、前記グループ設定レジスタ及びマスク情報レジス
    タの情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスク
    する第1のマスク手段であって、前記マスク情報レジスタが複数のグループにわたって割
    り込みをマスクしない指定を行うことに応答して、当該複数のグループにわたって前記割
    り込みをマスクしない第1のマスク手段と、
    複数の割り込みのそれぞれについて、当該割り込みに設定された優先度の情報を保持する
    優先度設定レジスタと、
    プロセッサが現在受け付けている割り込みの優先度を保持する優先度保持レジスタと、
    複数の割り込みのそれぞれについて、前記優先度設定レジスタ及び優先度保持レジスタの
    情報に基づいてマスクすべきか否かを判定し、該判定結果に従って割り込みをマスクする
    第2のマスク手段と、
    前記第1のマスク手段によるマスクがなされない前記複数のグループに属する割り込みであり、かつ、前記第2のマスク手段によるマスクがなされない割り込みの中から優先するものを選別する出力回路
    を備えることを特徴とする割り込み制御回路。
  2. 前記マスク情報レジスタに保持された情報は、プロセッサの処理の状況に応じて逐次書
    き換えられる、請求項1に記載の割り込み制御回路。
JP2004098328A 2004-03-30 2004-03-30 割り込み制御回路 Expired - Fee Related JP4731126B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004098328A JP4731126B2 (ja) 2004-03-30 2004-03-30 割り込み制御回路
US11/087,660 US7308518B2 (en) 2004-03-30 2005-03-24 Interrupt controlling circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004098328A JP4731126B2 (ja) 2004-03-30 2004-03-30 割り込み制御回路

Publications (2)

Publication Number Publication Date
JP2005284760A JP2005284760A (ja) 2005-10-13
JP4731126B2 true JP4731126B2 (ja) 2011-07-20

Family

ID=35055706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004098328A Expired - Fee Related JP4731126B2 (ja) 2004-03-30 2004-03-30 割り込み制御回路

Country Status (2)

Country Link
US (1) US7308518B2 (ja)
JP (1) JP4731126B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4971676B2 (ja) * 2006-04-28 2012-07-11 ルネサスエレクトロニクス株式会社 割り込み制御回路及び割り込み制御方法
JP2009169790A (ja) * 2008-01-18 2009-07-30 Nec Electronics Corp タスク制御装置、及びタスク制御方法
US8244947B2 (en) * 2009-02-20 2012-08-14 Qualcomm Incorporated Methods and apparatus for resource sharing in a programmable interrupt controller
JP5540678B2 (ja) * 2009-12-09 2014-07-02 富士通株式会社 情報処理装置
JP5166590B2 (ja) * 2011-10-31 2013-03-21 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム及び割り込み制御方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3820079A (en) * 1971-11-01 1974-06-25 Hewlett Packard Co Bus oriented,modular,multiprocessing computer
US4035780A (en) * 1976-05-21 1977-07-12 Honeywell Information Systems, Inc. Priority interrupt logic circuits
JPS63238630A (ja) * 1987-03-26 1988-10-04 Toshiba Corp マイクロプロセツサの割込み制御装置
JPH01126751A (ja) * 1987-11-11 1989-05-18 Fujitsu Ltd グルーピング装置
US5218703A (en) * 1988-07-07 1993-06-08 Siemens Aktiengesellschaft Circuit configuration and method for priority selection of interrupts for a microprocessor
US5179704A (en) * 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
JPH05210514A (ja) 1992-01-28 1993-08-20 Nec Corp 論理集積回路
JPH07105175A (ja) * 1993-10-08 1995-04-21 Nec Corp マイクロコンピュータ
JP3242508B2 (ja) * 1993-11-05 2001-12-25 松下電器産業株式会社 マイクロコンピュータ
JPH08297581A (ja) 1995-02-28 1996-11-12 Nec Corp リアルタイム・オペレーティングシステムにおける割り込み管理方式
US6119188A (en) * 1997-05-27 2000-09-12 Fusion Micromedia Corp. Priority allocation in a bus interconnected discrete and/or integrated digital multi-module system
US6249881B1 (en) * 1997-07-01 2001-06-19 National Semiconductor Corporation Method for enabling and servicing critical interrupts while running an interrupt based debug monitor
US6665760B1 (en) * 2000-09-29 2003-12-16 Rockwell Automation Technologies, Inc. Group shifting and level shifting rotational arbiter system
US6622193B1 (en) * 2000-11-16 2003-09-16 Sun Microsystems, Inc. Method and apparatus for synchronizing interrupts in a message passing queue oriented bus system

Also Published As

Publication number Publication date
US20050223149A1 (en) 2005-10-06
US7308518B2 (en) 2007-12-11
JP2005284760A (ja) 2005-10-13

Similar Documents

Publication Publication Date Title
JP2867717B2 (ja) マイクロコンピュータ
US6618780B1 (en) Method and apparatus for controlling interrupt priority resolution
KR970016979A (ko) 다중 처리 시스템에서 타스크의 큐잉 시스템 및 방법
US7707343B2 (en) Interrupt control circuit and method
JP4241462B2 (ja) 制御ユニットおよびマイクロコンピュータ
CN101432691B (zh) 用于控制处理器中的时序的方法和系统
JP4731126B2 (ja) 割り込み制御回路
US5974346A (en) Method for controlling technical processes
JPS5999553A (ja) 割込制御方式
JP5108690B2 (ja) Dma装置及びdma転送方法
US6842812B1 (en) Event handling
US7870311B2 (en) Preemptive packet flow controller
WO2004114132A1 (ja) 割り込み制御方法、割り込み制御装置及び割り込み制御プログラム
US7652503B2 (en) Semiconductor device
JP2009059276A (ja) 情報処理装置およびプログラム
JP2005078450A (ja) タスク制御方法とタスク切替装置
JP3317601B2 (ja) プログラマブルコントローラ
JPH06324861A (ja) Cpu制御システム及び制御方法
JP2006236233A (ja) 割り込みレベル選択回路
JP2020135787A (ja) 転送制御装置、情報処理装置及び工作機械
JP2001075778A (ja) 演算装置および方法
CN118113211A (zh) 信息处理装置、信息处理方法、以及存储信息处理程序的存储介质
JP2010122813A (ja) 情報処理装置、集積回路装置、電子機器
JPH06187167A (ja) 割り込み制御回路及び割り込み制御方式
JPH0830566A (ja) 並列計算機のプロセッサ要素内に実装される通信制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080908

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090209

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20090209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090210

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090710

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090814

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110304

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110419

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4731126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees