(57)【要約】【課題】マイクロコンピュータの機能を有効に活用することが可能となる制御プログラム、及び制御システムを提供すること。【解決手段】  割込み処理の実行中に、より高い優先順位レベルの割込み処理を割り込ませて実行可能なマイクロコンピュータ１００であって、優先順位制御処理にて、第１割込み処理の実行中には、第１割込み処理と同優先順位レベル及びよりも低い優先順位レベルの割込み処理を割りこませず、第２割込み処理の実行中には、第２割込み処理よりも低い優先順位レベルの割込み処理を割りこませず、且つ、同優先順位レベルの割込み処理を割り込ませて実行可能となるように制御されるマイクロコンピュータ１００を制御する制御プログラムであって、マイクロコンピュータ１００を、第２割込み処理実行中に、第２割込み処理と同優先順位レベルの割込み処理を割り込ませない制御手段、として機能させる。【選択図】図１
2019179282.tif 000002
【特許請求の範囲】
【請求項１】
割込み処理の実行中に、より高い優先順位レベルの割込み処理を割り込ませて実行可能なコンピュータであって、優先順位制御処理にて、最高優先順位レベルよりも低い優先順位レベルの第１割込み処理の実行中には、前記第１割込み処理と同優先順位レベル及び当該同優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、最高優先順位レベルの第２割込み処理の実行中には、前記第２割込み処理の優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、且つ、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませて実行可能となるように制御される前記コンピュータを制御する制御プログラムであって、
前記コンピュータを、
前記第２割込み処理実行中に、前記優先順位制御処理に関わらず、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませない制御手段、
として機能させる制御プログラム。
【請求項２】
前記制御手段は、優先順位レベルに関わらず割込み処理を割り込ませることを禁止する割込み禁止状態にて、前記第２割込み処理を実行する、
請求項１に記載の制御プログラム。
【請求項３】
前記制御手段は、前記第２割込み処理実行中に、前記第２割込み処理と同優先順位レベルの割込み処理をマスクする、
請求項１又は２に記載の制御プログラム。
【請求項４】
割込み処理の実行中に、より高い優先順位レベルの割込み処理を割り込ませて実行可能な制御システムであって、優先順位制御処理にて、最高優先順位レベルよりも低い優先順位レベルの第１割込み処理の実行中には、前記第１割込み処理と同優先順位レベル及び当該同優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、最高優先順位レベルの第２割込み処理の実行中には、前記第２割込み処理の優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、且つ、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませて実行可能となるように制御される前記制御システムであって、
前記第２割込み処理実行中に、前記優先順位制御処理に関わらず、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませない制御手段、
を備える制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御プログラム、及び制御システムに関する。
【背景技術】
【０００２】
従来、組み込みシステムとして用いられるマイクロコンピュータが知られていた（例えば、特許文献１）。この特許文献１のマイクロコンピュータを含めて、一般的なマイクロコンピュータについては、予め定められた仕様に基づいて動作するように構成されているが、例えば、割込みハンドラに優先順位レベルを設けて、当該優先順位レベルに基づいて割込みハンドラを割り込ませるように構成されることがあった。
【０００３】
そして、このような優先順位レベルに基づいて割込みハンドラを割り込ませる仕様についても様々考えられ、例えば、４段階の優先順位レベル（例えば、レベル０〜レベル３で、数値が小さいもの程優先度が高いこととする）を設けて、最高優先順位レベルよりも低いレベル１〜レベル３の割込みハンドラの実行中には、実行中の割込みハンドラよりも高いレベルの割込みハンドラの割り込みのみを許容し、また、最高優先順位レベルであるレベル０の割込みハンドラの実行中には、実行中の割込みと同レベルの割込みハンドラの割込みのみを許容する（つまり、最高優先順位レベルのみでは、同レベルの割込みハンドラの割込みが許容されてしまう）ように構成されたマイクロコンピュータが存在していた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２１９２９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、マイクロコンピュータを利用する場合、当該マイクロコンピュータを、所定の規格（任意であり、例えば、ＡＵＴＯＳＡＲ：ＡＵＴｏｍｏｔｉｖｅ  Ｏｐｅｎ  Ｓｙｓｔｅｍ  ＡＲｃｈｉｔｅｃｔｕｒｅ等）が規定する動作に従って動作させる必要があり、例えば、当該動作が「より高い優先順位レベルのＩＳＲのみを割込み可能とする」という内容である場合、当該動作に従ってマイクロコンピュータを動作させる必要性があった。
【０００６】
しかしながら、前述のように、最高優先順位レベルでは同レベルの割込みハンドラの割込みが許容されてしまうように構成されたマイクロコンピュータにおいては、４段階の優先順位レベルのうちの、最高優先順位レベルでは、前述の所定の規格が求める動作に合致した動作を行わせることができずに、実際には、４段階の優先順位レベルが設定されているにも関わらず、最優先順位レベルであるレベル０を利用できずに、すなわち、３段階の優先順位レベルであるレベル１〜レベル３のみしか利用することができなくなり、マイクロコンピュータの機能を十分に活用すること困難となる可能性があった。
【０００７】
本発明は、上記に鑑みてなされたものであって、マイクロコンピュータの機能を有効に活用することが可能となる制御プログラム、及び制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、請求項１に記載の制御プログラムは、割込み処理の実行中に、より高い優先順位レベルの割込み処理を割り込ませて実行可能なコンピュータであって、優先順位制御処理にて、最高優先順位レベルよりも低い優先順位レベルの第１割込み処理の実行中には、前記第１割込み処理と同優先順位レベル及び当該同優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、最高優先順位レベルの第２割込み処理の実行中には、前記第２割込み処理の優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、且つ、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませて実行可能となるように制御される前記コンピュータを制御する制御プログラムであって、前記コンピュータを、前記第２割込み処理実行中に、前記優先順位制御処理に関わらず、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませない制御手段、として機能させる。
【０００９】
請求項２に記載の制御プログラムは、請求項１に記載の制御プログラムにおいて、前記制御手段は、優先順位レベルに関わらず割込み処理を割り込ませることを禁止する割込み禁止状態にて、前記第２割込み処理を実行する。
【００１０】
請求項３に記載の制御プログラムは、請求項１又は２に記載の制御プログラムにおいて、前記制御手段は、前記第２割込み処理実行中に、前記第２割込み処理と同優先順位レベルの割込み処理をマスクする。
【００１１】
請求項４に記載の制御システムは、割込み処理の実行中に、より高い優先順位レベルの割込み処理を割り込ませて実行可能な制御システムであって、優先順位制御処理にて、最高優先順位レベルよりも低い優先順位レベルの第１割込み処理の実行中には、前記第１割込み処理と同優先順位レベル及び当該同優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、最高優先順位レベルの第２割込み処理の実行中には、前記第２割込み処理の優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、且つ、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませて実行可能となるように制御される前記制御システムであって、前記第２割込み処理実行中に、前記優先順位制御処理に関わらず、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませない制御手段、を備える。
【発明の効果】
【００１２】
請求項１に記載の制御プログラムによれば、最高優先順位レベルの第２割込み処理実行中に、優先順位制御処理に関わらず、第２割込み処理と同優先順位レベルの割込み処理を割り込ませないことにより、例えば、最優先順位レベルでも同レベルの割込みを禁止することができるので、前述の所定の規格（任意であり、例えば、ＡＵＴＯＳＡＲ等）に沿って最優先順位レベルも利用することができるので、マイクロコンピュータの機能を有効に活用することが可能となる。特に、例えば、優先順位レベルが４段階設けられている場合には、従来のように３段階のみではなく、４段階全てを利用することができるので、マイクロコンピュータの機能を有効に活用することが可能となる。
【００１３】
請求項２に記載の制御プログラムによれば、優先順位レベルに関わらず割込み処理を割り込ませることを禁止する割込み禁止状態にて第２割込み処理を実行することにより、例えば、マイクロコンピュータの１つの状態である割込み禁止状態を利用して、最高優先順位レベルの割込み処理による割り込みを禁止することができるので、比較的単純な制御で確実に割込みを禁止することが可能となる。
【００１４】
請求項３に記載の制御プログラムによれば、最高優先順位レベルの割込み処理をマスクすることにより、例えば、マスクレジスタの情報を変更する等により、最高優先順位レベルの割込み処理による割り込みを禁止することができるので、比較的単純な制御で確実に割込みを禁止することが可能となる。
【００１５】
請求項４に記載の制御システムによれば、最高優先順位レベルの第２割込み処理実行中に、優先順位制御処理に関わらず、第２割込み処理と同優先順位レベルの割込み処理を割り込ませないことにより、例えば、最優先順位レベルでも同レベルの割込みを禁止することができるので、前述の所定の規格（任意であり、例えば、ＡＵＴＯＳＡＲ等）に沿って最優先順位レベルも利用することができるので、マイクロコンピュータの機能を有効に活用することが可能となる。特に、例えば、優先順位レベルが４段階設けられている場合には、従来のように３段階のみではなく、４段階全てを利用することができるので、マイクロコンピュータの機能を有効に活用することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に係るマイクロコンピュータを例示するブロック図である。
【図２】タスク及びＩＳＲを示すタイミングチャートである。
【図３】非最高レベル割込み処理のフローチャートである。
【図４】最高レベル割込み処理のフローチャートである。
【図５】非最高レベル割込み禁止要求処理のフローチャートである。
【図６】非最高レベル割込み許可要求処理のフローチャートである。
【図７】最高レベル割込み禁止要求処理のフローチャートである。
【図８】最高レベル割込み許可要求処理のフローチャートである。
【図９】非最高レベル割込み実行要求処理のフローチャートである。
【図１０】最高レベル割込み実行要求処理のフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明に係る制御プログラム、及び制御システムの実施の形態について図面を参照しつつ詳細に説明する。ただし、実施の形態によって本発明が限定されるものではない。
【００１８】
本発明に係る制御プログラムは、コンピュータを制御するプログラムであり、例えば、コンピュータを制御するための専用プログラム、あるいは、汎用的に用いられるプログラム（一例としては、汎用コンピュータ等で用いられる基本ソフトであるオペレーティングシステム（ＯＳ）、あるいは、マイクロコンピュータの如き組み込みシステムで用いられるリアルタイムオペレーティングシステム（リアルタイムＯＳ））の一部として実現されるプログラム等を含む概念である。また、この制御プログラムは、コンピュータを、制御手段として機能させるものである。
【００１９】
また、「制御システム」とは、割込み処理の実行中により高い優先順位レベルの割込み処理を割り込ませて実行可能なシステムであって、優先順位制御処理にて、最高優先順位レベルよりも低い優先順位レベルの第１割込み処理の実行中には、第１割込み処理と同優先順位レベル及び当該同優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、最高優先順位レベルの第２割込み処理の実行中には、第２割込み処理の優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、且つ、第２割込み処理と同優先順位レベルの割込み処理を割り込ませて実行可能となるように制御されるシステムであり、例えば、前述のコンピュータ等を含む概念である。すなわち、この制御システムを、前述のコンピュータに対応するものと解釈してもよい。
【００２０】
また、「制御システム」（つまり、「コンピュータ」）は、例えば、マイクロコンピュータの如き組み込みシステム、あるいは、当該組み込みシステムの一部の要素（一例としては、中央演算処理装置であるＣＰＵ、あるいは、割込み制御回路等）等に対応する概念であり、例えば、制御手段を備えるものである。
【００２１】
また、「割込み処理」とは、割り込む処理であり、例えば、リアルタイムＯＳにおける割込みハンドラであるＩＳＲ（Ｉｎｔｅｒｒｕｐｔ  Ｓｅｒｖｉｃｅ  Ｒｏｕｔｉｎｅ）に対応する概念であり、例えば、タスクに対するＩＳＲ、あるいは、ＩＳＲに対する他のＩＳＲ（つまり、多重割込みを行うＩＳＲ）に対応する概念であり、一例としては、優先順位レベルが設定されているものである。「優先順位レベル」とは、ＩＳＲを実行する場合の優先の度合いである優先度を特定する概念であり、具体的には、複数のレベルが存在する概念である。この「優先順位レベル」のレベルの個数は任意であるが、ここでは、例えば、当該レベルが４段階であり、最も優先度が高いものが「レベル０」であり、次に優先度が高いものが「レベル１」であり、次に優先度が高いものが「レベル２」であり、最も優先度が低いものが「レベル３」であることとして説明する。
【００２２】
「優先順位制御処理」とは、制御システムで行われる処理であって、優先順位レベルに基づいてＩＳＲの割込みを制御する処理であり、例えば、制御システムであるマイクロコンピュータの仕様に基づいて行われる処理であり、一例としては、マイクロコンピュータのプログラムステータスワードレジスタの所定ビットを基準に行われる処理である。そして、この「優先順位制御処理」の具体的な内容は任意であるが、例えば、最高優先順位レベルよりも低い優先順位レベルの第１割込み処理の実行中には、第１割込み処理と同優先順位レベル及び当該同優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、最高優先順位レベルの第２割込み処理の実行中には、第２割込み処理の優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、且つ、第２割込み処理と同優先順位レベルの割込み処理を割り込ませる処理であることとして、以下説明する。
【００２３】
つまり、以下では、「優先順位制御処理」が、レベル０〜レベル３のＩＳＲにおいては、最高優先順位レベルであるレベル０よりも低い優先順位レベルであるレベル１〜レベル３のＩＳＲの実行中には、当該ＩＳＲと同優先順位レベル及び当該同優先順位レベルよりも低い優先順位レベルのＩＳＲを割りこませず、また、最高優先順位レベルであるレベル０のＩＳＲの実行中には、当該ＩＳＲの優先順位レベルよりも低い優先順位レベルのＩＳＲを割りこませず、且つ、当該ＩＳＲと同優先順位レベルであるレベル０のＩＳＲを割り込ませる処理であることとして、説明する。
【００２４】
また、「第１割込み処理」とは、最高優先順位レベルよりも低い優先順位レベルの割込み処理であり、例えば、レベル１〜レベル３のＩＳＲであり、また、「第２割込み処理」とは、最高優先順位レベルの割込み処理であり、例えば、レベル０のＩＳＲである。
【００２５】
また、「制御手段」とは、第２割込み処理実行中に、優先順位制御処理に関わらず、第２割込み処理と同優先順位レベルの割込み処理を割り込ませない手段であり、例えば、優先順位レベルに関わらず割込み処理を割り込ませることを禁止する割込み禁止状態にて、第２割込み処理を実行する手段（以下、第１の手段）、及び、第２割込み処理実行中に、第２割込み処理と同優先順位レベルの割込み処理をマスクする手段（以下、第２の手段）等を含む概念である。なお、「優先順位制御処理に関わらず」とは、優先順位制御処理とは異なる他の処理又は機能を用いることを特定する概念であり、例えば、優先順位制御処理による制御対象と制御手段による制御対象とが相互に重複する場合には、制御手段による制御が優先させることを特定する概念であり、一例としては、優先順位制御処理ではレベル０のＩＳＲに対する割込みが許容され、制御手段による制御ではレベル０のＩＳＲに対する割込みが禁止される場合には、制御手段による制御である、レベル０のＩＳＲに対する割込みが禁止される制御が適用されることを特定する概念である。
【００２６】
そして、以下に示す実施の形態では、「制御システム」又は「コンピュータ」が、マイクロコンピュータであり、「制御プログラム」が、マイクロコンピュータのリアルタイムＯＳである場合を例示して説明する。また、当該実施の形態では、「制御手段」が、前述の第１の手段として機能する場合について説明し、「制御手段」が、前述の第２の手段として機能する場合については、変形例において説明する。
【００２７】
また、当該実施の形態では、前述の優先順位制御にて、レベル３のＩＳＲが実行されている場合には、レベル０〜レベル２のＩＳＲのみが割り込可能となり、また、レベル２のＩＳＲが実行されている場合には、レベル０及びレベル１のＩＳＲのみが割り込み可能となり、また、レベル１のＩＳＲが実行されている場合には、レベル０のＩＳＲのみが割り込み可能となり、また、レベル０のＩＳＲが実行されている場合には、同レベルであるレベル０のＩＳＲのみが割込み可能となるように制御されることを前提とし、本願の特徴の少なくとも一部を適用することにより、レベル０のＩＳＲが実行されている場合に、同レベルであるレベル０のＩＳＲの割込みを禁止する場合を例示して説明する。
【００２８】
（構成）
まず、本実施の形態に係るマイクロコンピュータについて説明する。図１は、本発明の実施の形態に係るマイクロコンピュータを例示するブロック図である。なお、実際には、マイクロコンピュータ１００には、図示されている要素以外にも、クロック発振器、タイマー、ＡＤ変換器、ＤＡ変換器等の公知の要素も含まれ得るが、ここでは、主な要素のみ図示し、図示した要素以外の要素については、必要に応じて適宜説明する。また、図示されている各要素については、本願に特徴的な内容以外については、公知の内容を適用することができるので、本願に特徴的な内容のみについて説明する。
【００２９】
マイクロコンピュータ１００は、制御システム又はコンピュータであり、例えば、ＲＯＭ１、ＲＡＭ２、ＣＰＵ３、及び割込み制御部４を備える。
【００３０】
（構成−ＲＯＭ）
ＲＯＭ１は、マイクロコンピュータ１００の動作に必要なプログラム及び各種のデータを記録する記録手段であり、例えば、外部記録装置としてのフラッシュメモリ（図示省略）等を用いて構成されている。
【００３１】
（構成−ＲＡＭ）
ＲＡＭ２は、マイクロコンピュータ１００の動作に必要なプログラム及び各種のデータを一時的に記録する記録手段であり、例えば、外部記録装置としてのＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を用いて構成されている。
【００３２】
（構成−ＣＰＵ）
ＣＰＵ３は、ＲＯＭ１又はＲＡＭ２に適宜アクセスして、マイクロコンピュータ１００を制御する制御手段である。
【００３３】
（構成−割込み制御部）
割込み制御部４は、第２割込み処理実行中に、前述の優先順位制御処理に関わらず、第２割込み処理と同優先順位レベルの割込み処理を割り込ませない制御手段であり、例えば、ＣＰＵ３で実行されるＩＳＲの割り込みを禁止又は許可する手段であり、例えば、割込み制御回路等を用いて構成されている。
【００３４】
（処理）
次に、このように構成されるマイクロコンピュータ１００によって実行される非最高レベル割込み処理、最高レベル割込み処理、非最高レベル割込み禁止要求処理、非最高レベル割込み許可要求処理、最高レベル割込み禁止要求処理、最高レベル割込み許可要求処理、非最高レベル割込み実行要求処理、及び最高レベル割込み実行要求処理について説明する。図２は、タスク及びＩＳＲを示すタイミングチャートである。なお、図２においては、時刻Ｔ１においてタスクに対して優先順位レベルがレベル２の第１のＩＳＲの割込みが発生し、時刻Ｔ２において第１のＩＳＲに対して優先順位レベルがレベル０の第２のＩＳＲの割込みが発生し、時刻Ｔ３において第２のＩＳＲの処理が終了し、時刻Ｔ４において第１のＩＳＲの処理が終了した場合の各処理の実行状態が図示されている。以下では、この図２のタイミングチャートを適宜参照して、各処理について説明する。
【００３５】
（処理−非最高レベル割込み処理）
まず、非最高レベル割込み処理について説明する。「非最高レベル割込み処理」とは、優先順位レベルが最高レベルでないＩＳＲの割込みが発生した場合に実行される処理であり、具体的には、レベル１〜レベル３のＩＳＲの割り込みが発生した場合に実行される処理であり、例えば、「優先順位制御処理」に対応する処理である。図３は、非最高レベル割込み処理のフローチャートである（以下の各処理の説明ではステップを「Ｓ」と略記する）。
【００３６】
この非最高レベル割込み処理を実行するタイミングは任意であるが、例えば、タスク又は自己よりも優先順位レベルが低いＩＳＲの実行中に、レベル１〜レベル３のＩＳＲの割込みが発生した場合に、実行を開始することとし、実行が開始されたところから説明する。ここでは、例えば、図２の時刻Ｔ１において第１のＩＳＲの割込みが発生した場合に、当該処理の実行が開始される。
【００３７】
なお、このようなＩＳＲの割込みが発生した場合、実際には、復帰するために必要なコンテキスト情報の保存等を行うために、不図示であるが、非最高レベル割込み処理が起動された場合に、割込み制御部４が、ＣＰＵ３の不図示のレジスタの割込み許可フラグに対応するビット（以下、「ＩＥフラグ」と称する）に、優先順位レベルに関わらず全てのＩＳＲの割込みを禁止することを特定する「０」を格納することにより、優先順位レベルに関わらず（つまり、前述の「優先順位制御処理」に関わらず）全てのＩＳＲを割り込ませることを禁止する状態である割込み禁止状態とすることとして、説明する。また、コンテキスト情報の保存及び復帰等については、公知の手法を適用することができるので、これらの処理については説明を省略する（後述する最高レベル割込み処理でも同様とする）。
【００３８】
図３のＳＡ１において割込み制御部４は、「ＩＥフラグ」に、ＩＳＲの割込みを許可することを特定する「１」を格納することにより、「非最高レベル割込み処理」に従ってＩＳＲを割り込ませることを許可する状態である割込み許可状態とする。
【００３９】
図３のＳＡ２においてＣＰＵ３は、割込み処理を実行する。なお、ここでは、例えば、図２のレベル２の第１のＩＳＲを実行することになるが、ＳＡ１にて割込み許可状態とされたので、レベル２及びレベル３のＩＳＲの割込みが発生した場合、当該ＩＳＲは割り込ませず、一方、レベル０及びレベル１のＩＳＲの割込みが発生した場合、当該ＩＳＲを割り込ませることになる。
【００４０】
図３のＳＡ３において割込み制御部４は、ＳＡ２の処理が終了した後に、「ＩＥフラグ」に「０」を格納して、割込み禁止状態とする。これにて、非最高レベル割込み処理が終了するが、不図示であるが、この終了時に、復帰処理が行われた後に、「ＩＥフラグ」に「１」を格納して、割込み許可状態とする。
【００４１】
（処理−最高レベル割込み処理）
次に、最高レベル割込み処理について説明する。「最高レベル割込み処理」とは、優先順位レベルが最高レベルであるＩＳＲの割込みが発生した場合に実行される処理であり、具体的には、レベル０のＩＳＲの割り込みが発生した場合に実行される処理であり、例えば、「優先順位制御処理」に関わらず実行される（つまり、優先順位制御処理とは別に、当該処理よりも優先的に実行される）処理である。図４は、最高レベル割込み処理のフローチャートである。
【００４２】
この最高レベル割込み処理を実行するタイミングは任意であるが、例えば、タスク又は自己よりも優先順位レベルが低いＩＳＲの実行中に、レベル０のＩＳＲの割込みが発生した場合に、実行を開始することとし、実行が開始されたところから説明する。ここでは、例えば、図２の時刻Ｔ２において第２のＩＳＲの割込みが発生した場合に、当該処理の実行が開始される。
【００４３】
なお、このようなＩＳＲの割込みが発生した場合、非最高レベル割込み処理の場合と同様にして、実際には、復帰するために必要なコンテキスト情報の保存等を行うために、不図示であるが、最高レベル割込み処理が起動された場合に、割込み制御部４が、「ＩＥフラグ」に「０」を格納することにより、割込み禁止状態とすることとして、説明する。
【００４４】
図３のＳＢ１においてＣＰＵ３は、割込み処理を実行する。なお、ここでは、例えば、非最高レベル割込み処理の場合とは異なり、割込み禁止状態のままで割込み処理を実行することになるので、優先順位レベルに関わらず（つまり、前述の「優先順位制御処理」に関わらず）全てのＩＳＲの割込みが禁止され、つまり、他のレベル０のＩＳＲの割り込みが発生したとしても、この他のレベル０のＩＳＲについては、割り込ませないことになる。
【００４５】
このＳＢ１の処理が終了した後に、最高レベル割込み処理が終了するが、不図示であるが、この終了時に、復帰処理が行われた後に、「ＩＥフラグ」に「１」を格納して、割込み許可状態とする。
【００４６】
（処理−非最高レベル割込み禁止要求処理）
次に、非最高レベル割込み禁止要求処理について説明する。「非最高レベル割込み禁止要求処理」とは、優先順位レベルが最高レベルでないＩＳＲの実行中に実行されるサービスコールであり、例えば、割込み禁止状態にすることを要求する処理である。図５は、非最高レベル割込み禁止要求処理のフローチャートである。
【００４７】
この非最高レベル割込み禁止要求処理を実行するタイミングは任意であるが、例えば、レベル１〜レベル３のＩＳＲ（例えば、図２の第１のＩＳＲ）の実行中に、割込み禁止状態にするサービスコールが実行された場合に起動することとし、実行が開始されたところから説明する。
【００４８】
図５のＳＣ１において割込み制御部４は、図３のＳＡ３と同様にして、「ＩＥフラグ」に「０」を格納して、割込み禁止状態とする。
【００４９】
図５のＳＣ２においてＣＰＵ３は、いわゆるネスト処理を行うが、例えば、処理が実行された回数を記録する。具体的には任意であるが、例えば、ＲＡＭ２の変数「ｃｏｕｎｔｅｒ」（初期値は「０」）をインクリメント（つまり、「１」を加算）する。これにて、非最高レベル割込み禁止要求処理を終了する。
【００５０】
（処理−非最高レベル割込み許可要求処理）
次に、非最高レベル割込み許可要求処理について説明する。「非最高レベル割込み許可要求処理」とは、優先順位レベルが最高レベルでないＩＳＲの実行中に実行されるサービスコールであり、例えば、割込み許可状態にすることを要求する処理である。図６は、非最高レベル割込み許可要求処理のフローチャートである。
【００５１】
この非最高レベル割込み許可要求処理を実行するタイミングは任意であるが、例えば、レベル１〜レベル３のＩＳＲ（例えば、図２の第１のＩＳＲ）の実行中に、割込み許可状態にするサービスコールが実行された場合に起動することとし、実行が開始されたところから説明する。
【００５２】
図６のＳＤ１においてＣＰＵ３は、いわゆるネスト処理を行うが、例えば、処理が実行された回数を記録する。具体的には任意であるが、ＲＡＭ２の前述の変数「ｃｏｕｎｔｅｒ」をデクリメント（つまり、「１」を減算）する。
【００５３】
図６のＳＤ２において割込み制御部４は、図３のＳＡ３と同様にして、「ＩＥフラグ」に「１」を格納して、割込み許可状態とする。これにて、非最高レベル割込み許可要求処理を終了する。
【００５４】
（処理−最高レベル割込み禁止要求処理）
次に、最高レベル割込み禁止要求処理について説明する。「最高レベル割込み禁止要求処理」とは、優先順位レベルが最高レベルであるＩＳＲの実行中に実行されるサービスコールであり、例えば、割込み禁止状態にすることを要求する処理である。図７は、最高レベル割込み禁止要求処理のフローチャートである。
【００５５】
この最高レベル割込み禁止要求処理を実行するタイミングは任意であるが、例えば、レベル０のＩＳＲ（例えば、図２の第２のＩＳＲ）の実行中に、割込み禁止状態にするサービスコールが実行された場合に起動することとし、実行が開始されたところから説明する。
【００５６】
図７のＳＥ１においてＣＰＵ３は、いわゆるネスト処理を行うが、例えば、ＳＣ２の場合と同様にして、ＲＡＭ２の変数「ｃｏｕｎｔｅｒ」をインクリメントする。これにて、最高レベル割込み禁止要求処理を終了する。つまり、最高レベル割込み禁止要求処理では、「ＩＥフラグ」の情報についての制御を行わないことになる（最高レベル割込み許可要求処理も同様である）。
【００５７】
（処理−最高レベル割込み許可要求処理）
次に、最高レベル割込み許可要求処理について説明する。「最高レベル割込み許可要求処理」とは、優先順位レベルが最高レベルであるＩＳＲの実行中に実行されるサービスコールであり、例えば、割込み許可状態にすることを要求する処理である。図８は、最高レベル割込み許可要求処理のフローチャートである。
【００５８】
この最高レベル割込み許可要求処理を実行するタイミングは任意であるが、例えば、レベル０のＩＳＲ（例えば、図２の第２のＩＳＲ）の実行中に、割込み許可状態にするサービスコールが実行された場合に起動することとし、実行が開始されたところから説明する。
【００５９】
図８のＳＦ１においてＣＰＵ３は、いわゆるネスト処理を行うが、例えば、ＳＤ１の場合と同様にして、ＲＡＭ２の変数「ｃｏｕｎｔｅｒ」をデクリメントする。これにて、最高レベル割込み許可要求処理を終了する。
【００６０】
（処理−非最高レベル割込み実行要求処理）
次に、非最高レベル割込み実行要求処理について説明する。「非最高レベル割込み実行要求処理」とは、優先順位レベルが最高レベルでないＩＳＲの実行中に実行されるサービスコールであり、例えば、前述の非最高レベル割込み禁止要求処理又は非最高レベル割込み許可要求処理とは異なる任意の処理であり、例えば、メッセージボックスにメッセージを送信する等の処理である。図９は、非最高レベル割込み実行要求処理のフローチャートである。
【００６１】
図９のＳＧ１においてＣＰＵ３は、割込み禁止であるか否かを判定する。具体的には任意であるが、例えば、「ＩＥフラグ」の値に基づいて判定する。そして、「ＩＥフラグ」＝「０」の場合、割込み禁止であるものと判定した上で（ＳＧ１のＹＥＳ）、ＳＧ２において任意のエラー処理を行って、処理を終了する。また、「ＩＥフラグ」＝「１」の場合、割込み禁止でないものと判定した上で（ＳＧ１のＮＯ）、ＳＧ３においてサービスコールの処理を実行して、処理を終了する。これにて、非最高レベル割込み実行要求処理を終了する。
【００６２】
（処理−最高レベル割込み実行要求処理）
次に、最高レベル割込み実行要求処理について説明する。「最高レベル割込み実行要求処理」とは、優先順位レベルが最高レベルであるＩＳＲの実行中に実行されるサービスコールであり、例えば、前述の最高レベル割込み禁止要求処理又は最高レベル割込み許可要求処理とは異なる任意の処理であり、例えば、メッセージボックスにメッセージを送信する等の処理である。図１０は、最高レベル割込み実行要求処理のフローチャートである。
【００６３】
図１０のＳＨ１においてＣＰＵ３は、割込み禁止であるか否かを判定する。具体的には任意であるが、例えば、ＲＡＭ２の変数「ｃｏｕｎｔｅｒ」の値に基づいて判定する。そして、「ｃｏｕｎｔｅｒ」の値が「０」よりも大きい場合、割込み禁止であるものと判定した上で（ＳＨ１のＹＥＳ）、ＳＨ２において任意のエラー処理を行って、処理を終了する。「ｃｏｕｎｔｅｒ」の値が「０」よりも大きくない場合（つまり、「０」以下の場合）、割込み禁止でないものと判定した上で（ＳＨ１のＮＯ）、ＳＨ３においてサービスコールの処理を実行して、処理を終了する。これにて、最高レベル割込み実行要求処理を終了する。
【００６４】
（動作）
次に、マイクロコンピュータ１００の動作について説明する。ここでは、例えば、図２のタイミングチャートを参照して、ＩＳＲが発生した場合の動作について説明する。
【００６５】
まず、例えば、図２のレベル２の第１のＩＳＲの割込みが発生した場合、図３の非最高レベル割込み処理が実行されることになり、つまり、割込み許可状態でＳＡ２の割込み処理が行われることになる。従って、この割込み処理中では、「優先順位制御処理」に従って多重割込みが行われることになるので、レベル２及びレベル３のＩＳＲの割込みが発生した場合、割込みが禁止され、一方、レベル０及びレベル１のＩＳＲの割込みが発生した場合、割込みが行われることになる。
【００６６】
また、例えば、図２のレベル０の第２のＩＳＲの割込みが発生した場合、図４の最高レベル割込み処理が実行されることになり、つまり、割込み禁止状態でＳＢ１の割込み処理が行われることになる。従って、この割込み処理中では、優先順位レベルに関わらず（つまり、前述の「優先順位制御処理」に関わらず）全てのＩＳＲの割込みが禁止されることになり、従って、レベル１〜レベル３のＩＳＲの割込みに加えて、同レベルであるレベル０のＩＳＲの割込みも禁止されることになる。
【００６７】
このように動作することにより、マイクロコンピュータ１００を、所定の規格（任意であり、例えば、ＡＵＴＯＳＡＲ等）が規定する動作（例えば、より高い優先順位レベルのＩＳＲのみを割込み可能とし、同レベルのＩＳＲの割込みを禁止する動作等）に従って、動作させることが可能となり、つまり、「優先順位制御処理」に従って当該動作を行うレベル１〜レベル３に加えて、レベル０についても当該動作に対応させることができるので、所定の規格に従って動作させるためには、「優先順位制御処理」のみでは３段階の優先順位レベルのみしか利用できなかったが、本願の技術を適用することにより、４段階の優先順位レベルを利用することが可能となる。
【００６８】
また、このように、図３の非最高レベル割込み処理、及び図４の最高レベル割込み処理に分けて実行することに対応して、サービスコールについて、図５〜図１０の処理を行うことにより、サービスコールについても適切に実行することが可能となる。
【００６９】
（実施の形態の効果）
このように本実施の形態によれば、最高優先順位レベルのＩＳＲ実行中に、優先順位制御処理に関わらず、当該ＩＳＲと同優先順位レベルのＩＳＲを割り込ませないことにより、例えば、最優先順位レベルでも同レベルの割込みを禁止することができるので、前述の所定の規格（任意であり、例えば、ＡＵＴＯＳＡＲ等）に沿って最優先順位レベルも利用することができるので、マイクロコンピュータ１００の機能を有効に活用することが可能となる。特に、例えば、優先順位レベルが４段階設けられている場合には、従来のように３段階のみではなく、４段階全てを利用することができるので、マイクロコンピュータ１００の機能を有効に活用することが可能となる。
【００７０】
また、優先順位レベルに関わらずＩＳＲを割り込ませることを禁止する割込み禁止状態にて最高優先順位レベルのＩＳＲを実行することにより、例えば、マイクロコンピュータ１００の１つの状態である割込み禁止状態を利用して、最高優先順位レベルのＩＳＲによる割り込みを禁止することができるので、比較的単純な制御で確実に割込みを禁止することが可能となる。
【００７１】
また、最高優先順位レベルのＩＳＲをマスクすることにより、例えば、マスクレジスタの情報を変更する等により、最高優先順位レベルのＩＳＲＲによる割り込みを禁止することができるので、比較的単純な制御で確実に割込みを禁止することが可能となる。
【００７２】
〔実施の形態に対する変形例〕
以上、本発明に係る実施の形態について説明したが、本発明の具体的な構成及び手段は、特許請求の範囲に記載した本発明の技術的思想の範囲内において、任意に改変及び改良することができる。以下、このような変形例について説明する。
【００７３】
（解決しようとする課題や発明の効果について）
まず、発明が解決しようとする課題や発明の効果は、上述の内容に限定されるものではなく、発明の実施環境や構成の細部に応じて異なる可能性があり、上述した課題の一部のみを解決したり、上述した効果の一部のみを奏したりすることがある。
【００７４】
（分散や統合について）
また、上述した各電気的構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散や統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散又は統合して構成できる。また、本出願における「装置」とは、単一の装置によって構成されたものに限定されず、複数の装置によって構成されたものを含む。
【００７５】
（形状、数値、構造、時系列について）
実施の形態や図面において例示した構成要素に関して、形状、数値、又は複数の構成要素の構造若しくは時系列の相互関係については、本発明の技術的思想の範囲内において、任意に改変及び改良することができる。
【００７６】
（割込み制御部について）
また、上記実施の形態の割込み制御部４について、前述の「第２の手段」として機能させてもよい。具体的には任意であるが、例えば、ＩＳＲの割込みが発生した場合に、割込み制御部４が、当該発生したＩＳＲの優先順位レベルを判定して、判定結果に基づいて、他のＩＳＲの割込みをマスクしてもよい。詳細には、割込み制御部４が、発生したＩＳＲの優先順位レベルが最高優先順位レベルであることを判定した場合、最高優先順位レベルの他のＩＳＲを全てマスクすることにより、最高優先順位レベルのＩＳＲの割込みを禁止し、一方、発生したＩＳＲの優先順位レベルが最高優先順位レベルであることを判定した場合、マスクは行わないこととする。なお、この場合のマスクの具体的な手法は任意であり、例えば、マスク用のレジスタ（マスクレジスタ）に情報を格納することによりマスクを行ってもよく、このようなマスクについては、前述の「優先順位制御処理」よりも優先されることになり、つまり、実施の形態で説明した場合と同様に、マイクロコンピュータ１００を、所定の規格（任意であり、例えば、ＡＵＴＯＳＡＲ等）が規定する動作（例えば、より高い優先順位レベルのＩＳＲのみを割込み可能とする動作等）に従って、動作させることが可能となる。なお、マスクを行う場合については、最高優先順位レベルのＩＳＲのみでなく、優先順位レベルに関わらず、全ての他のＩＳＲをマスクしてもよい。
【００７７】
（ソースコードの生成について）
また、上記実施の形態で説明した、図３〜図１０、あるいは、変形例の「（割込み制御部について）」で記載した機能を実現するためのプログラムのソースコードを、優先順位レベルに応じて、任意のツール（ソースコードを生成するいわゆるジェネレータツール）を用いて、自動的に生成してもよい。
【００７８】
（初期値について）
また、上記実施の形態の「ＩＥフラグ」の初期値については任意でり、例えば、初期値を「０」としてもよく、あるいは、「１」としてもよいが、一例としては、マイクロコンピュータ１００のイニシャライズにて「１」を格納して、割込み許可としてもよい。
【００７９】
（適用について）
また、上記実施の形態の技術を、任意の分野に適用してもよく、例えば、マイクロコンピュータ１００を車載装置の分野、あるいは、当該車載装置の分野以外の任意の分野に適用してもよい。
【００８０】
（付記）
付記１の制御プログラムは、割込み処理の実行中に、より高い優先順位レベルの割込み処理を割り込ませて実行可能なコンピュータであって、優先順位制御処理にて、最高優先順位レベルよりも低い優先順位レベルの第１割込み処理の実行中には、前記第１割込み処理と同優先順位レベル及び当該同優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、最高優先順位レベルの第２割込み処理の実行中には、前記第２割込み処理の優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、且つ、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませて実行可能となるように制御される前記コンピュータを制御する制御プログラムであって、前記コンピュータを、前記第２割込み処理実行中に、前記優先順位制御処理に関わらず、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませない制御手段、として機能させる。
【００８１】
付記２の制御プログラムは、付記１に記載の制御プログラムにおいて、前記制御手段は、優先順位レベルに関わらず割込み処理を割り込ませることを禁止する割込み禁止状態にて、前記第２割込み処理を実行する。
【００８２】
付記３の制御プログラムは、付記１又は２に記載の制御プログラムにおいて、前記制御手段は、前記第２割込み処理実行中に、前記第２割込み処理と同優先順位レベルの割込み処理をマスクする。
【００８３】
付記４に記載の制御システムは、割込み処理の実行中に、より高い優先順位レベルの割込み処理を割り込ませて実行可能な制御システムであって、優先順位制御処理にて、最高優先順位レベルよりも低い優先順位レベルの第１割込み処理の実行中には、前記第１割込み処理と同優先順位レベル及び当該同優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、最高優先順位レベルの第２割込み処理の実行中には、前記第２割込み処理の優先順位レベルよりも低い優先順位レベルの割込み処理を割りこませず、且つ、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませて実行可能となるように制御される前記制御システムであって、前記第２割込み処理実行中に、前記優先順位制御処理に関わらず、前記第２割込み処理と同優先順位レベルの割込み処理を割り込ませない制御手段、を備える。
【００８４】
（付記の効果）
付記１に記載の制御プログラムによれば、最高優先順位レベルの第２割込み処理実行中に、優先順位制御処理に関わらず、第２割込み処理と同優先順位レベルの割込み処理を割り込ませないことにより、例えば、最優先順位レベルでも同レベルの割込みを禁止することができるので、前述の所定の規格（任意であり、例えば、ＡＵＴＯＳＡＲ等）に沿って最優先順位レベルも利用することができるので、マイクロコンピュータの機能を有効に活用することが可能となる。特に、例えば、優先順位レベルが４段階設けられている場合には、従来のように３段階のみではなく、４段階全てを利用することができるので、マイクロコンピュータの機能を有効に活用することが可能となる。
【００８５】
付記２に記載の制御プログラムによれば、優先順位レベルに関わらず割込み処理を割り込ませることを禁止する割込み禁止状態にて第２割込み処理を実行することにより、例えば、マイクロコンピュータの１つの状態である割込み禁止状態を利用して、最高優先順位レベルの割込み処理による割り込みを禁止することができるので、比較的単純な制御で確実に割込みを禁止することが可能となる。
【００８６】
付記３に記載の制御プログラムによれば、最高優先順位レベルの割込み処理をマスクすることにより、例えば、マスクレジスタの情報を変更する等により、最高優先順位レベルの割込み処理による割り込みを禁止することができるので、比較的単純な制御で確実に割込みを禁止することが可能となる。
【００８７】
付記４に記載の制御システムによれば、最高優先順位レベルの第２割込み処理実行中に、優先順位制御処理に関わらず、第２割込み処理と同優先順位レベルの割込み処理を割り込ませないことにより、例えば、最優先順位レベルでも同レベルの割込みを禁止することができるので、前述の所定の規格（任意であり、例えば、ＡＵＴＯＳＡＲ等）に沿って最優先順位レベルも利用することができるので、マイクロコンピュータの機能を有効に活用することが可能となる。特に、例えば、優先順位レベルが４段階設けられている場合には、従来のように３段階のみではなく、４段階全てを利用することができるので、マイクロコンピュータの機能を有効に活用することが可能となる。
【符号の説明】
【００８８】
１  ＲＯＭ
２  ＲＡＭ
３  ＣＰＵ
４  割込み制御部
１００  マイクロコンピュータ
Ｔ１  時刻
Ｔ２  時刻
Ｔ３  時刻
Ｔ４  時刻
【図１】
2019179282.tif 000003
【図２】
2019179282.tif 000004
【図３】
2019179282.tif 000005
【図４】
2019179282.tif 000006
【図５】
2019179282.tif 000007
【図６】
2019179282.tif 000008
【図７】
2019179282.tif 000009
【図８】
2019179282.tif 000010
【図９】
2019179282.tif 000011
【図１０】
2019179282.tif 000012