JP5561294B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ Download PDF

Info

Publication number
JP5561294B2
JP5561294B2 JP2012055882A JP2012055882A JP5561294B2 JP 5561294 B2 JP5561294 B2 JP 5561294B2 JP 2012055882 A JP2012055882 A JP 2012055882A JP 2012055882 A JP2012055882 A JP 2012055882A JP 5561294 B2 JP5561294 B2 JP 5561294B2
Authority
JP
Japan
Prior art keywords
interrupt
privilege level
permission state
factor
setting
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.)
Active
Application number
JP2012055882A
Other languages
English (en)
Other versions
JP2013190929A (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.)
Denso Corp
Original Assignee
Denso 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 Denso Corp filed Critical Denso Corp
Priority to JP2012055882A priority Critical patent/JP5561294B2/ja
Priority to DE102013204045.8A priority patent/DE102013204045B4/de
Publication of JP2013190929A publication Critical patent/JP2013190929A/ja
Application granted granted Critical
Publication of JP5561294B2 publication Critical patent/JP5561294B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

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

Description

本発明は、特権レベルが異なる複数のプログラムを実行可能に構成されたマイクロコンピュータに関する。
マイクロコンピュータは、一般に、CPUとメモリの他に周辺回路および割込コントローラを備えて構成されている(例えば、特許文献1を参照)。割込コントローラは、周辺回路からの割込要求を一括管理しており、複数の割込要求が同時に発生すると、割込要求毎に予め設定された優先度に基づいて、優先度が最も高い割込要求に対応した割込要求信号をCPUに出力する。そしてCPUは、割込許可状態である場合に割込要求信号が入力すると割り込みを許可する一方、割込禁止状態である場合に割込要求信号が入力すると割り込みを禁止するように構成されている。
またCPUは、割込許可命令(以下、EI命令という)を実行すると、ノンマスカブル割り込み(NMI)等の一部を除いた割り込みが許可される割込許可状態になる一方、割込禁止命令(以下、DI命令という)を実行すると、ノンマスカブル割り込み(NMI)等の一部を除いた割り込みが禁止される割込禁止状態となる。
特許第3209144号公報
ところで、マイクロコンピュータでは、CPUが実行する複数のプログラム毎に特権レベルを設定し、特権レベルが低くなるほど、プログラムで実行可能な命令と、プログラムによるメモリへのアクセスとが制限されるように構成することが可能である。
しかし、マイクロコンピュータでは、上述のように、EI命令およびDI命令を実行すると、ノンマスカブル割り込み(NMI)等の一部を除いた割り込みを一括して許可および禁止する。このため、特権レベルを設定した場合に、割込許可状態または割込禁止状態に変更することができる割り込みを、特権レベル毎に異なるように設定することができないという問題があった。
本発明は、こうした問題に鑑みてなされたものであり、許可および禁止を変更可能な割り込みを特権レベル毎に設定することができる技術を提供することを目的とする。
上記目的を達成するためになされた請求項1に記載の発明は、特権レベルが設定された複数のプログラムを実行可能なマイクロコンピュータであって、第1記憶手段が、複数の割り込み要因のそれぞれについて、特権レベル毎に、割り込みを許可するか禁止するかを設定する割込設定が可能であるか否かを示す割込設定情報が格納された割込設定テーブルを記憶しており、割込許可手段が、割り込みを許可する設定を指示するための割込許可命令が入力すると、第1記憶手段に記憶されている割込設定テーブルを参照し、現時点で実行中のプログラムの特権レベルに対応した割込設定情報に基づいて、割込設定が可能である割り込み要因を特定し、特定した割り込み要因による割り込みを許可するとともに、割込禁止手段が、割り込みを禁止する設定を指示するための割込禁止命令が入力すると、第1記憶手段に記憶されている割込設定テーブルを参照し、現時点で実行中のプログラムの特権レベルに対応した割込設定情報に基づいて、割込設定が可能である割り込み要因を特定し、特定した割り込み要因による割り込みを禁止する。そして割込処理実行手段が、プログラムの実行中に割り込み要因が発生した場合に、発生した割り込み要因による割り込みが割込許可手段により許可されたものである場合には、プログラムの実行を中断して、発生した割り込み要因に対応する割り込み処理を実行し、発生した割り込み要因による割り込みが割込禁止手段により禁止されたものである場合には、発生した割り込み要因に対応する割り込み処理を禁止する。
このように構成されたマイクロコンピュータでは、現時点で実行中のプログラムの特権レベルにおいて、割り込みを許可するか禁止するかを設定する割込設定が可能である割り込み要因を、割込設定テーブルを参照することにより特定し、割込設定が可能であると特定した割り込み要因による割り込みを、割込許可命令および割込禁止命令が入力したときにそれぞれ許可および禁止することができる。これにより、許可および禁止を変更可能な割り込みを特権レベル毎に設定することができる。
また、請求項1に記載のマイクロコンピュータにおいて、請求項2に記載のように、第2記憶手段には、現時点で実行中のプログラムについて、複数の割り込み要因毎に、割り込みを許可するか禁止するかを示す割込許可状態情報を格納する割込許可状態格納領域が設けられており、割込許可手段は、割込許可状態格納領域に格納されている割込許可状態情報のうち割り込み要因に対応する割込許可状態情報を、割り込みを許可する旨を示す内容に設定することで、特定した割り込み要因による割り込みを許可し、割込禁止手段は、割込許可状態格納領域に格納されている割込許可状態情報のうち割り込み要因に対応する割込許可状態情報を、割り込みを禁止する旨を示す内容に設定することで、特定した割り込み要因による割り込みを禁止し、割込処理実行手段は、割込許可状態格納領域に格納されている割込許可状態情報を参照することによって、発生した割り込み要因に対応する割り込み処理を実行するか禁止するかを判断し、情報移動手段は、実行するプログラムが変更されることにより、実行中のプログラムの特権レベルが高くなると、特権レベルが高くなる前の割込許可状態情報を記憶することにより割込許可状態情報を退避させるとともに、実行するプログラムが変更されることにより、実行中のプログラムの特権レベルが低くなると、記憶した割込許可状態情報のうち、実行中のプログラムの特権レベルに対応する割込許可状態情報を、第2記憶手段に設けられた割込許可状態格納領域に格納することにより割込許可状態情報を復帰させるようにしてもよい。
このように構成されたマイクロコンピュータでは、特権レベルが高くなると割込許可状態情報を退避させ、その後に特権レベルが低くなると割込許可状態情報を復帰させる。このため、実行するプログラムが変更されることにより特権レベルが高くなり、その後さらに、実行するプログラムが変更されることにより特権レベルが低くなることによって、特権レベルが元のレベルに戻った場合に、特権レベルが高いプログラムの実行中に割込許可状態情報が変更されていたとしても、割込許可状態情報を、特権レベルが高くなる前の元の状態に復帰させることができる。
また、請求項2に記載のマイクロコンピュータにおいて、請求項3に記載のように、情報移動手段は、現時点で実行中のプログラムの特権レベルに対応した割込設定情報に基づいて、割込設定が可能である割り込み要因を特定し、割込許可状態格納領域に格納された割込許可状態情報のうち、割込設定が可能であると特定した割り込み要因に対応する割込許可状態情報を記憶することにより割込許可状態情報を退避させるようにしてもよい。
このように構成されたマイクロコンピュータでは、特権レベルが高くなると、割込設定が可能である割り込み要因についての割込許可状態情報を退避させ、その後に特権レベルが低くなると、割込設定が可能である割り込み要因についての割込許可状態情報を復帰させるため、割込設定が可能でない割り込み要因に対応する割込許可状態情報については、特権レベルが元のレベルに戻った場合であっても、特権レベルが高いときの割込許可状態情報を保持することができる。これは、割込設定を行うことができない割り込み要因については、特権レベルが元のレベルに戻った時に割込許可状態情報が保持されている必要がないという考えに基づく。これにより、第2記憶手段に設けられた割込許可状態格納領域に格納されている全ての割込許可状態情報を退避および復帰させる必要がなくなるため、割込許可状態情報を退避させるための記憶領域と処理負荷を低減することができる。
第1実施形態のマイコン1の構成を示すブロック図である。 割込設定処理を示すフローチャートである。 割込要求判断処理を示すフローチャートである。 第1実施形態の割込許可状態情報の変化を説明するタイミングチャートである。 第2実施形態のマイコン1の構成を示すブロック図である。 第2実施形態の割込許可状態情報の変化を説明するタイミングチャートである。 第3実施形態の割込許可状態情報の変化を説明するタイミングチャートである。 プログラムに対する特権レベルの割り付け例を示す図である。
(第1実施形態)
以下に本発明の第1実施形態を図面とともに説明する。
マイクロコンピュータ(以下、マイコンという)1は、車両に搭載されており、図1に示すように、CPU2、ROM3、RAM4、ペリフェラル5,6,7、および割込コントローラ8と、これらを相互に接続するバス9とを備える。そしてマイコン1は、ROM3に記憶されたプログラムをCPU2が実行することにより、各種処理を実行する。
ペリフェラル5,6,7は、CPU2からみた周辺回路であり、AD変換器やI/O等である。そしてペリフェラル5,6,7は、車両の各種状態を検出するセンサ(不図示)、または、車両の乗員からの指示を入力するための操作スイッチ(不図示)に接続され、センサからの検出情報、または操作スイッチからの操作情報を出力する。
割込コントローラ8は、様々な割り込み要因の発生を示す信号を入力し、入力した信号が示す割り込み要因毎に予め設定された優先度に基づいて、優先度が最も高い割り込み要因に対応した割込要求信号をCPU2に出力する機能を有する。また割込コントローラ8は、ペリフェラル5,6,7が検出情報または操作情報を出力すると、それぞれ割り込み要因1,2,3が発生したと判断する。以下、割り込み要因1,2,3をそれぞれ、割込1,2,3と表記する。
ROM3は、不揮発性メモリであり、種々の処理プログラムがROM3に格納されている。本実施形態では、車両に搭載されたエンジン等を制御する車両制御プログラム31と、車両制御プログラムを実行するための基盤となるオペレーティングシステム(以下、OSという)を制御するOSプログラム32と、複数のOSをCPU2上で並列に実行可能とするためにOSを管理するハイパーバイザを実行するハイパーバイザプログラム33がROM3に格納されている。なお、車両制御プログラム31、OSプログラム32、およびハイパーバイザプログラム33の特権レベルはそれぞれ、「低」、「中」、および「高」であり、特権レベルが低くなるほど、プログラムで実行可能な命令と、プログラムによるRAM4へのアクセスとが制限される。
またROM3には、割込設定テーブル34が格納されている。割込設定テーブル34では、割込1,2,3のそれぞれについて、特権レベル毎に、割込許可命令(以下、EI命令という)および割込禁止命令(以下、DI命令という)を受付可能であるか否かが設定されている。なおEI命令は、ノンマスカブル割り込み(NMI)等の一部を除いた割り込みを一括して許可する命令である。またDI命令は、NMI等の一部を除いた割り込みを一括して禁止する命令である。
本実施形態では、特権レベルが「低」である場合には割込1についてEI命令およびDI命令を受け付け、特権レベルが「中」である場合には割込1,2についてEI命令およびDI命令を受け付け、特権レベルが「高」である場合には割込1,2,3についてEI命令およびDI命令を受け付けるように設定されている。
CPU2は、プログラムを実行するための演算ユニット21と、演算ユニット21が利用するデータを格納するための複数のレジスタから構成されるレジスタ群22とを備え、所定の処理プログラムに基づいて処理を実行する。そして、レジスタ群22のレジスタ内に、特権レベル格納領域SR1、割込設定格納領域SR2、および割込許可状態格納領域SR3が設けられる。
特権レベル格納領域SR1には、CPU2上において現時点で実行中のプログラムの特権レベルを示す特権レベル情報が格納される。割込設定格納領域SR2には、割込1,2,3のそれぞれについて現時点で割込設定が可能であるか否かを示す情報(以下、割込設定情報という)が格納される。割込許可状態格納領域SR3には、割込1,2,3のそれぞれについて現時点でEI命令およびDI命令が受け付けられているか否かを示す情報(以下、割込許可状態情報という)が格納される。
そしてCPU2は、割込コントローラ8から割込1,2,3に対応した割込要求信号を入力すると、割込許可状態格納領域SR3に格納された割込許可状態情報に基づいて、割込1,2,3を受け付けるか否かを決定する。
このように構成されたマイコン1のCPU2が実行する割込設定処理と割込要求判断処理の手順を図2と図3を用いて説明する。この割込設定処理および割込要求判断処理は、CPU2の動作中に繰り返し実行される処理である。
まず、割込設定処理が実行されると、CPU2は、図2に示すように、まずS10にて、CPU2上において実行中のプログラムの特権レベルが変化したか否かを判断する。ここで、特権レベルが変化していない場合には(S10:NO)、S40に移行する。一方、特権レベルが変化した場合には(S10:YES)、S20にて、実行中のプログラムの特権レベルを示す特権レベル情報を特権レベル格納領域SR1に格納するとともに、S30にて、実行中のプログラムの特権レベルに対応する割込設定情報を割込設定格納領域SR2に格納し、S40に移行する。例えば、CPU2上においてOSプログラム32を実行中である場合には、特権レベルが「中」であることを示す特権レベル情報を特権レベル格納領域SR1に格納し、さらに、割込1,2についてはEI命令およびDI命令を受け付けるとともに割込3についてはEI命令およびDI命令を受け付けないことを示す割込設定情報を割込設定格納領域SR2に格納する。
そしてS40に移行すると、EI命令がCPU2に入力したか否かを判断する。ここで、EI命令が入力していない場合には(S40:NO)、S60に移行する。一方、EI命令が入力した場合には(S40:YES)、S50にて、割込設定格納領域SR2に格納された割込設定情報を参照して、割込1,2,3のうちEI命令およびDI命令の受付が許可されている割込を特定し、特定した割込について割り込みを許可するように、割込許可状態格納領域SR3に格納された割込許可状態情報を書き換えて、S60に移行する。例えば、特権レベルが「中」である場合には、割込1,2についてEI命令およびDI命令の受付が許可されているため、割込1,2について割り込みを許可するように割込許可状態情報を書き換える。
そしてS60に移行すると、DI命令がCPU2に入力したか否かを判断する。ここで、DI命令が入力していない場合には(S60:NO)、割込設定処理を一旦終了する。一方、DI命令が入力した場合には(S60:YES)、S70にて、割込設定格納領域SR2に格納された割込設定情報を参照して、割込1,2,3のうちEI命令およびDI命令の受付が許可されている割込を特定し、特定した割込について割り込みを禁止するように、割込許可状態格納領域SR3に格納された割込許可状態情報を書き換えて、割込設定処理を一旦終了する。例えば、特権レベルが「中」である場合には、割込1,2についてEI命令およびDI命令の受付が許可されているため、割込1,2について割り込みを禁止するように割込許可状態情報を書き換える。
また、割込要求判断処理が実行されると、CPU2は、図3に示すように、まずS110にて、割込要求信号がCPU2に入力したか否かを判断する。ここで、割込要求信号が入力していない場合には(S110:NO)、割込要求判断処理を一旦終了する。一方、割込要求信号が入力した場合には(S110:YES)、S120にて、割込要求信号が示す割り込み要因(すなわち、割込1,2,3の何れか一つ)が許可されているか否かを、割込許可状態格納領域SR3に格納された割込許可状態情報を参照することにより判断する。ここで、割込要求信号が示す割り込み要因が許可されていない場合には(S120:NO)、割込要求判断処理を一旦終了する。一方、割込要求信号が示す割り込み要因が許可されている場合には(S120:YES)、S130にて、実行中のプログラム(すなわち、プログラム31,32,33の何れか一つ)を中断して、割込要求信号が示す割り込み要因に対応する割り込み処理を実行させて、割込要求判断処理を一旦終了する。
次に、割込許可状態情報の変化の一例を図4を用いて説明する。
図4に示すように、まず時刻t0において、特権レベルが「低」であり、割込許可状態情報の初期状態として、割込1,2は割り込みの「許可」に設定され、割込3は割り込みの「禁止」に設定されているとする(割込許可状態情報IP00を参照)。そして時刻t1においてEI命令がCPU2に入力すると、特権レベルが「低」である場合には割込1についてEI命令を受け付けるため、割込1,2は「許可」に設定され、割込3は「禁止」に設定される(割込許可状態情報IP01を参照)。
その後、時刻t2において特権レベルが「低」から「中」に変化し、さらに時刻t3においてDI命令がCPU2に入力すると、特権レベルが「中」である場合には割込1,2についてDI命令を受け付けるため、割込1,2,3は「禁止」に設定される(割込許可状態情報IP02を参照)。
その後、時刻t4において特権レベルが「中」から「高」に変化し、さらに時刻t5においてEI命令がCPU2に入力すると、特権レベルが「高」である場合には割込1,2,3についてEI命令を受け付けるため、割込1,2,3は「許可」に設定される(割込許可状態情報IP03を参照)。
その後、時刻t6において特権レベルが「高」から「中」に変化し、さらに時刻t7においてDI命令がCPU2に入力すると、特権レベルが「中」である場合には割込1,2についてDI命令を受け付けるため、割込1,2は「禁止」に設定され、割込3は「許可」に設定される(割込許可状態情報IP04を参照)。
その後、時刻t8において特権レベルが「中」から「低」に変化し、さらに時刻t9においてDI命令がCPU2に入力すると、特権レベルが「低」である場合には割込1についてDI命令を受け付けるため、割込1,2は「禁止」に設定され、割込3は「許可」に設定される(割込許可状態情報IP05を参照)。また時刻t10においてEI命令がCPU2に入力すると、特権レベルが「低」である場合には割込1についてEI命令を受け付けるため、割込1,3は「許可」に設定され、割込2は「禁止」に設定される(割込許可状態情報IP06を参照)。
その後、時刻t11において特権レベルが「低」から「高」に変化し、さらに時刻t12においてDI命令がCPU2に入力すると、特権レベルが「高」である場合には割込1,2,3についてDI命令を受け付けるため、割込1,2,3は「禁止」に設定される(割込許可状態情報IP07を参照)。
このように構成されたマイコン1は、それぞれ異なる特権レベルが設定された複数のプログラム31,32,33を実行可能であって、ROM3が、複数の割り込み要因1,2,3(割込1,2,3)のそれぞれについて、特権レベル毎に、割り込みを許可するか禁止するかを設定する割込設定が可能であるか否かを示す割込設定情報が格納された割込設定テーブル34を記憶しており、割込許可命令(EI命令)が入力すると、ROM3に記憶されている割込設定テーブル34を参照し、現時点で実行中のプログラムの特権レベルに対応した割込設定情報に基づいて、割込設定が可能である割り込み要因を特定し、特定した割り込み要因による割り込みを許可する(S40,S50)とともに、割込禁止命令(DI命令)が入力すると、ROM3に記憶されている割込設定テーブル34を参照し、現時点で実行中のプログラムの特権レベルに対応した割込設定情報に基づいて、割込設定が可能である割り込み要因を特定し、特定した割り込み要因による割り込みを禁止する(S60,S70)。そして、プログラムの実行中に割り込み要因が発生した場合に、発生した割り込み要因による割り込みが許可されたものである場合には(S120:YES)、プログラムの実行を中断して、発生した割り込み要因に対応する割り込み処理を実行し(S130)、発生した割り込み要因による割り込みが禁止されたものである場合には(S120:NO)、発生した割り込み要因に対応する割り込み処理を禁止する。
このように構成されたマイコン1では、現時点で実行中のプログラムの特権レベルにおいて、割り込みを許可するか禁止するかを設定する割込設定が可能である割り込み要因を、割込設定テーブル34を参照することにより特定し、割込設定が可能であると特定した割り込み要因による割り込みを、EI命令およびDI命令が入力したときにそれぞれ許可および禁止することができる。これにより、許可および禁止を変更可能な割り込みを特権レベル毎に設定することができる。
以上説明した実施形態において、ROM3は本発明における第1記憶手段、S40,S50の処理は本発明における割込許可手段、S60,S70の処理は本発明における割込禁止手段、S110〜S130の処理は本発明における割込処理実行手段である。
(第2実施形態)
以下に本発明の第2実施形態を図面とともに説明する。なお第2実施形態では、第1実施形態と異なる部分のみを説明する。
第2実施形態におけるマイコン1は、図5に示すように、情報移動ユニット23が追加された点以外は第1実施形態と同じである。
情報移動ユニット23は、割込許可状態格納領域SR3に格納された割込許可状態情報を退避させたり復帰させたりする機能を有するハードウェアである。具体的に、情報移動ユニット23は、特権レベルが高くなると、特権レベルが高くなる前に割込許可状態格納領域SR3に格納された割込許可状態情報を特権レベルと対応付けて、情報移動ユニット23内に設けられた情報記憶領域に記憶させる。その後に情報移動ユニット23は、特権レベルが低くなると、低くなった後の特権レベルと同じ特権レベルに対応付けられている割込許可状態情報を、情報移動ユニット23内に設けられた情報記憶領域から抽出して、抽出した割込許可状態情報を、割込許可状態格納領域SR3に格納する。
次に、割込許可状態情報の変化の一例を図6を用いて説明する。
図6に示すように、まず時刻t0において、特権レベルが「低」であり、割込許可状態情報の初期状態として、割込1,2は割り込みの「許可」に設定され、割込3は割り込みの「禁止」に設定されているとする(割込許可状態情報IP10を参照)。そして時刻t1においてEI命令がCPU2に入力すると、特権レベルが「低」である場合には割込1についてEI命令を受け付けるため、割込1,2は「許可」に設定され、割込3は「禁止」に設定される(割込許可状態情報IP11を参照)。
その後、時刻t2において特権レベルが「低」から「中」に変化すると、特権レベルが「中」になる前に割込許可状態格納領域SR3に格納された割込許可状態情報IP11を情報移動ユニット23に退避させる。さらに時刻t3においてDI命令がCPU2に入力すると、特権レベルが「中」である場合には割込1,2についてDI命令を受け付けるため、割込1,2,3は「禁止」に設定される(割込許可状態情報IP12を参照)。
その後、時刻t4において特権レベルが「中」から「高」に変化すると、特権レベルが「高」になる前に割込許可状態格納領域SR3に格納された割込許可状態情報IP12を情報移動ユニット23に退避させる。さらに時刻t5においてEI命令がCPU2に入力すると、特権レベルが「高」である場合には割込1,2,3についてEI命令を受け付けるため、割込1,2,3は「許可」に設定される(割込許可状態情報IP13を参照)。
その後、時刻t6において特権レベルが「高」から「中」に変化すると、情報移動ユニット23に退避させていた割込許可状態情報IP12を割込許可状態格納領域SR3に復帰させる(矢印AL11を参照)。これにより、割込1,2,3は「禁止」に設定される(割込許可状態情報IP14を参照)。さらに時刻t7においてDI命令がCPU2に入力すると、特権レベルが「中」である場合には割込1,2についてDI命令を受け付けるため、割込1,2,3は「禁止」に設定される(割込許可状態情報IP15を参照)。
その後、時刻t8において特権レベルが「中」から「低」に変化すると、情報移動ユニット23に退避させていた割込許可状態情報IP11を割込許可状態格納領域SR3に復帰させる(矢印AL12を参照)。これにより、割込1,2は「許可」に設定され、割込3は「禁止」に設定される(割込許可状態情報IP16を参照)。さらに時刻t9においてEI命令がCPU2に入力すると、特権レベルが「低」である場合には割込1についてEI命令を受け付けるため、割込1,2は「許可」に設定され、割込3は「禁止」に設定される(割込許可状態情報IP17を参照)。また時刻t10においてDI命令がCPU2に入力すると、特権レベルが「低」である場合には割込1についてDI命令を受け付けるため、割込2は「許可」に設定され、割込1,3は「禁止」に設定される(割込許可状態情報IP18を参照)。
その後、時刻t11において特権レベルが「低」から「高」に変化すると、特権レベルが「高」になる前に割込許可状態格納領域SR3に格納された割込許可状態情報IP18を情報移動ユニット23に退避させる。さらに時刻t12においてDI命令がCPU2に入力すると、特権レベルが「高」である場合には割込1,2,3についてDI命令を受け付けるため、割込1,2,3は「禁止」に設定される(割込許可状態情報IP19を参照)。
このように構成されたマイコン1では、レジスタ群22に、現時点で実行中のプログラムについて、複数の割込1,2,3毎に、割り込みを許可するか禁止するかを示す割込許可状態情報を格納する割込許可状態格納領域SR3が設けられている。そしてマイコン1では、割込許可状態格納領域SR3に格納されている割込許可状態情報のうち割り込み要因に対応する割込許可状態情報を、割り込みを許可する旨を示す内容に設定することで、特定した割り込み要因による割り込みを許可するとともに(S50)、割り込みを禁止する旨を示す内容に設定することで、特定した割り込み要因による割り込みを禁止する(S70)。またマイコン1では、割込許可状態格納領域SR3に格納されている割込許可状態情報を参照することによって、発生した割り込み要因に対応する割り込み処理を実行するか禁止するかを判断する(S120)。
そして情報移動ユニット23は、実行するプログラムが変更されることにより、実行中のプログラムの特権レベルが高くなると、特権レベルが高くなる前の割込許可状態情報を記憶することにより割込許可状態情報を退避させるとともに、実行するプログラムが変更されることにより、実行中のプログラムの特権レベルが低くなると、記憶した割込許可状態情報のうち、実行中のプログラムの特権レベルに対応する割込許可状態情報を、レジスタ群22に設けられた割込許可状態格納領域SR3に格納することにより割込許可状態情報を復帰させる。
このように構成されたマイコン1では、特権レベルが高くなると割込許可状態情報を退避させ、その後に特権レベルが低くなると割込許可状態情報を復帰させる。このため、実行するプログラムが変更されることにより特権レベルが高くなり、その後さらに、実行するプログラムが変更されることにより特権レベルが低くなることによって、特権レベルが元のレベルに戻った場合に、特権レベルが高いプログラムの実行中に割込許可状態情報が変更されていたとしても、割込許可状態情報を、特権レベルが高くなる前の元の状態に復帰させることができる。
以上説明した実施形態において、レジスタ群22は本発明における第2記憶手段、情報移動ユニット23は本発明における情報移動手段である。
(第3実施形態)
以下に本発明の第3実施形態を図面とともに説明する。なお第3実施形態では、第2実施形態と異なる部分のみを説明する。
第3実施形態におけるマイコン1は、情報移動ユニット23の機能が変更された点以外は第2実施形態と同じである。
すなわち、情報移動ユニット23は、割込設定格納領域SR2に格納されている割込設定情報に基づいて、割込1,2,3のうち、割込設定が可能である割込を特定し、その後、割込許可状態格納領域SR3に格納された割込許可状態情報のうち、特定した割込に対応する割込許可状態情報のみを退避させたり復帰させたりする機能を有する。例えば、情報移動ユニット23は、特権レベルが「低」から「中」に変化すると、割込許可状態格納領域SR3に格納された割込許可状態情報のうち、割込1に対応する割込許可状態情報のみを退避させ、特権レベルが「中」から「高」に変化すると、割込1,2に対応する割込許可状態情報のみを退避させる。また情報移動ユニット23は、例えば特権レベルが「高」から「中」に変化すると、割込1,2に対応する割込許可状態情報のみを復帰させる。
次に、割込許可状態情報の変化の一例を図7を用いて説明する。
図7に示すように、まず時刻t0において、特権レベルが「低」であり、割込許可状態情報の初期状態として、割込1,2は割り込みの「許可」に設定され、割込3は割り込みの「禁止」に設定されているとする(割込許可状態情報IP20を参照)。そして時刻t1においてEI命令がCPU2に入力すると、特権レベルが「低」である場合には割込1についてEI命令を受け付けるため、割込1,2は「許可」に設定され、割込3は「禁止」に設定される(割込許可状態情報IP21を参照)。
その後、時刻t2において特権レベルが「低」から「中」に変化すると、特権レベルが「中」になる前に割込許可状態格納領域SR3に格納された割込許可状態情報IP21のうち、割込1に対応する割込許可状態情報のみを情報移動ユニット23に退避させる。さらに時刻t3においてDI命令がCPU2に入力すると、特権レベルが「中」である場合には割込1,2についてDI命令を受け付けるため、割込1,2,3は「禁止」に設定される(割込許可状態情報IP22を参照)。
その後、時刻t4において特権レベルが「中」から「高」に変化すると、特権レベルが「高」になる前に割込許可状態格納領域SR3に格納された割込許可状態情報IP22のうち、割込1,2に対応する割込許可状態情報のみを情報移動ユニット23に退避させる。さらに時刻t5においてEI命令がCPU2に入力すると、特権レベルが「高」である場合には割込1,2,3についてEI命令を受け付けるため、割込1,2,3は「許可」に設定される(割込許可状態情報IP23を参照)。
その後、時刻t6において特権レベルが「高」から「中」に変化すると、情報移動ユニット23に退避させていた、割込1,2に対応する割込許可状態情報IP22を割込許可状態格納領域SR3に復帰させる(矢印AL21を参照)。これにより、割込1,2は「禁止」に設定され、割込3は「許可」に設定される(割込許可状態情報IP24を参照)。さらに時刻t7においてDI命令がCPU2に入力すると、特権レベルが「中」である場合には割込1,2についてDI命令を受け付けるため、割込1,2は「禁止」に設定され、割込3は「許可」に設定される(割込許可状態情報IP25を参照)。
その後、時刻t8において特権レベルが「中」から「低」に変化すると、情報移動ユニット23に退避させていた、割込1に対応する割込許可状態情報IP21を割込許可状態格納領域SR3に復帰させる(矢印AL22を参照)。これにより、割込1,3は「許可」に設定され、割込2は「禁止」に設定される(割込許可状態情報IP26を参照)。さらに時刻t9においてEI命令がCPU2に入力すると、特権レベルが「低」である場合には割込1についてEI命令を受け付けるため、割込1,3は「許可」に設定され、割込2は「禁止」に設定される(割込許可状態情報IP27を参照)。また時刻t10においてDI命令がCPU2に入力すると、特権レベルが「低」である場合には割込1についてDI命令を受け付けるため、割込3は「許可」に設定され、割込1,2は「禁止」に設定される(割込許可状態情報IP28を参照)。
その後、時刻t11において特権レベルが「低」から「高」に変化すると、特権レベルが「高」になる前に割込許可状態格納領域SR3に格納された割込許可状態情報IP28のうち、割込1に対応する割込許可状態情報のみを情報移動ユニット23に退避させる。さらに時刻t12においてDI命令がCPU2に入力すると、特権レベルが「高」である場合には割込1,2,3についてDI命令を受け付けるため、割込1,2,3は「禁止」に設定される(割込許可状態情報IP29を参照)。
このように構成されたマイコン1では、情報移動ユニット23は、現時点で実行中のプログラムの特権レベルに対応した割込設定情報に基づいて、割込設定が可能である割り込み要因を特定し、割込許可状態格納領域SR3に格納された割込許可状態情報のうち、割込設定が可能であると特定した割り込み要因に対応する割込許可状態情報を記憶することにより割込許可状態情報を退避させる。このため、割込設定が可能でない割り込み要因に対応する割込許可状態情報については、特権レベルが元のレベルに戻った場合であっても、特権レベルが高いときの割込許可状態情報を保持することができる。これは、割込設定を行うことができない割り込み要因については、特権レベルが元のレベルに戻った時に割込許可状態情報が保持されている必要がないという考えに基づく。これにより、レジスタ群22に設けられた割込許可状態格納領域SR3に格納されている全ての割込許可状態情報を退避および復帰させる必要がなくなるため、割込許可状態情報を退避させるための記憶領域と処理負荷を低減することができる。
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態では、マイクロコンピュータで一般的に実装されているEI命令またはDI命令が入力したときに、割込設定格納領域SR2に格納された割込設定情報を参照して、割込許可状態格納領域SR3に格納された割込許可状態情報を書き換えるもの(S40〜S70)を示したが、EI命令およびDI命令とは異なる割込許可命令および割込禁止命令を実装して、この割込許可命令および割込禁止命令が入力したときに割込許可状態情報を書き換えるようにしてもよい。
また上記第2実施形態においては、情報移動ユニット23が割込許可状態情報の退避および復帰を行うものを示したが、情報移動ユニット23のようにハードウェアを用いることなく、例えば演算ユニット21が各種命令を実行することにより、割込許可状態情報の退避および復帰を行うようにしてもよい。
また上記実施形態においては、レジスタ群22内に特権レベル格納領域SR1を設けたものを示したが、特権レベル格納領域SR1をRAM4内に設けるようにしてもよい。
また上記実施形態においては、車両制御プログラム31、OSプログラム32、およびハイパーバイザプログラム33の特権レベルをそれぞれ、「低」、「中」、および「高」に割り付けたものを示した。しかし、これに限定されるものではなく、例えば図8に示すように、デバイスドライバ、マイクロカーネル、OSのようにハイパーバイザ以外のプログラムの特権レベルを「高」に割り付けてもよいし、OS以外のソフトウェアのプログラムの特権レベルを「中」に割り付けてもよい。
1…マイコン、2…CPU、3…ROM、4…RAM、5,6,7…ペリフェラル、8…割込コントローラ、9…バス、21…演算ユニット、22…レジスタ群、23…情報移動ユニット、31…車両制御プログラム、32…OSプログラム、33…ハイパーバイザプログラム、34…割込設定テーブル、SR1…特権レベル格納領域、SR2…割込設定格納領域、SR3…割込許可状態格納領域

Claims (3)

  1. 特権レベルが設定された複数のプログラムを実行可能なマイクロコンピュータであって、
    複数の割り込み要因のそれぞれについて、前記特権レベル毎に、割り込みを許可するか禁止するかを設定する割込設定が可能であるか否かを示す割込設定情報が格納された割込設定テーブルを記憶する第1記憶手段と、
    割り込みを許可する設定を指示するための割込許可命令が入力すると、前記第1記憶手段に記憶されている前記割込設定テーブルを参照し、現時点で実行中の前記プログラムの前記特権レベルに対応した前記割込設定情報に基づいて、前記割込設定が可能である前記割り込み要因を特定し、特定した前記割り込み要因による割り込みを許可する割込許可手段と、
    割り込みを禁止する設定を指示するための割込禁止命令が入力すると、前記第1記憶手段に記憶されている前記割込設定テーブルを参照し、現時点で実行中の前記プログラムの前記特権レベルに対応した前記割込設定情報に基づいて、前記割込設定が可能である前記割り込み要因を特定し、特定した前記割り込み要因による割り込みを禁止する割込禁止手段と、
    前記プログラムの実行中に前記割り込み要因が発生した場合に、発生した前記割り込み要因による割り込みが前記割込許可手段により許可されたものである場合には、前記プログラムの実行を中断して、発生した前記割り込み要因に対応する割り込み処理を実行し、発生した前記割り込み要因による割り込みが前記割込禁止手段により禁止されたものである場合には、発生した前記割り込み要因に対応する割り込み処理を禁止する割込処理実行手段とを備える
    ことを特徴とするマイクロコンピュータ。
  2. 現時点で実行中の前記プログラムについて、複数の前記割り込み要因毎に、割り込みを許可するか禁止するかを示す割込許可状態情報を格納する割込許可状態格納領域が設けられた第2記憶手段を備え、
    前記割込許可手段は、前記割込許可状態格納領域に格納されている前記割込許可状態情報のうち前記割り込み要因に対応する前記割込許可状態情報を、割り込みを許可する旨を示す内容に設定することで、特定した前記割り込み要因による割り込みを許可し、
    前記割込禁止手段は、前記割込許可状態格納領域に格納されている前記割込許可状態情報のうち前記割り込み要因に対応する前記割込許可状態情報を、割り込みを禁止する旨を示す内容に設定することで、特定した前記割り込み要因による割り込みを禁止し、
    前記割込処理実行手段は、前記割込許可状態格納領域に格納されている前記割込許可状態情報を参照することによって、発生した前記割り込み要因に対応する割り込み処理を実行するか禁止するかを判断し、
    実行する前記プログラムが変更されることにより、実行中の前記プログラムの前記特権レベルが高くなると、前記特権レベルが高くなる前の前記割込許可状態情報を記憶することにより前記割込許可状態情報を退避させるとともに、実行する前記プログラムが変更されることにより、実行中の前記プログラムの前記特権レベルが低くなると、記憶した前記割込許可状態情報のうち、実行中の前記プログラムの前記特権レベルに対応する前記割込許可状態情報を、前記第2記憶手段に設けられた前記割込許可状態格納領域に格納することにより前記割込許可状態情報を復帰させる情報移動手段を備える
    ことを特徴とする請求項1に記載のマイクロコンピュータ。
  3. 前記情報移動手段は、
    現時点で実行中の前記プログラムの前記特権レベルに対応した前記割込設定情報に基づいて、前記割込設定が可能である前記割り込み要因を特定し、前記割込許可状態格納領域に格納された前記割込許可状態情報のうち、前記割込設定が可能であると特定した前記割り込み要因に対応する前記割込許可状態情報を記憶することにより前記割込許可状態情報を退避させる
    ことを特徴とする請求項2に記載のマイクロコンピュータ。
JP2012055882A 2012-03-13 2012-03-13 マイクロコンピュータ Active JP5561294B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012055882A JP5561294B2 (ja) 2012-03-13 2012-03-13 マイクロコンピュータ
DE102013204045.8A DE102013204045B4 (de) 2012-03-13 2013-03-08 Mikrocomputer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012055882A JP5561294B2 (ja) 2012-03-13 2012-03-13 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JP2013190929A JP2013190929A (ja) 2013-09-26
JP5561294B2 true JP5561294B2 (ja) 2014-07-30

Family

ID=49044173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012055882A Active JP5561294B2 (ja) 2012-03-13 2012-03-13 マイクロコンピュータ

Country Status (2)

Country Link
JP (1) JP5561294B2 (ja)
DE (1) DE102013204045B4 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9779043B2 (en) * 2015-11-16 2017-10-03 International Business Machines Corporation Techniques for handling queued interrupts in a data processing system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108383A (ja) * 1991-10-18 1993-04-30 Fujitsu Ltd 仮想計算機システムの割込みマスク方式
JPH05113887A (ja) * 1991-10-22 1993-05-07 Nec Corp コンピユータシステム
JPH05233319A (ja) * 1992-02-24 1993-09-10 Shikoku Nippon Denki Software Kk レジスタ退避方式
JPH06259251A (ja) * 1993-03-10 1994-09-16 Matsushita Electric Ind Co Ltd 間引きレジスタ制御回路
JP3209144B2 (ja) 1997-06-06 2001-09-17 日本電気株式会社 マイクロプロセッサ
JP2001216172A (ja) * 1997-09-12 2001-08-10 Hitachi Ltd マルチos構成方法
JP2003241979A (ja) * 2002-02-15 2003-08-29 Fujitsu Ltd 割込マスク制御方法および割込マスク制御プログラム
US7209994B1 (en) * 2004-05-11 2007-04-24 Advanced Micro Devices, Inc. Processor that maintains virtual interrupt state and injects virtual interrupts into virtual machine guests
JP2009093344A (ja) * 2007-10-05 2009-04-30 Denso Corp マイクロコンピュータ、その使用方法、及び電子制御装置

Also Published As

Publication number Publication date
JP2013190929A (ja) 2013-09-26
DE102013204045B4 (de) 2023-04-20
DE102013204045A1 (de) 2013-09-19

Similar Documents

Publication Publication Date Title
KR102204501B1 (ko) 인터럽트 핸들링 방법 및 장치
EP2839374B1 (en) Information processing device, information processing method, and storage medium storing program for executing information processing method
JPWO2013088519A1 (ja) マルチコア・プロセッサ
JP2012150583A5 (ja)
JP2008108075A (ja) タスク切替え制御方法及びコンピュータシステム
JP2015067107A (ja) 車両用制御装置
JP6427575B2 (ja) 時間のかかる命令の取り扱い
US20120260058A1 (en) Memory management apparatus, memory management method, and control program
JP5561294B2 (ja) マイクロコンピュータ
US10269194B2 (en) Multiprocessor system and vehicle control system
JP5561295B2 (ja) マイクロコンピュータ
JP2007207074A (ja) オペレーションシステム、スレッド制御機構、及び情報処理装置
JP2017016219A (ja) 電子機器および給電制御プログラム
JP5783348B2 (ja) 制御装置、制御プログラム、画像形成装置
JP3893136B2 (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
JP2017204083A (ja) メモリ保護システム
JP2009258984A (ja) 情報処理装置およびロード制御方法
JP5087884B2 (ja) データ処理ユニット、およびこれを使用したデータ処理装置
JP2008225710A (ja) コンピュータシステム及び該システムで用いられるプロセス切替え方法
JP2017204286A (ja) 車両用制御装置
JP2008176646A (ja) マルチプロセッサシステム
JPH10312296A (ja) プロセス切替え制御方式
JP2023032307A (ja) 仮想化制御装置および割り込み制御方法
JPH0954697A (ja) マイクロプロセッサ
JP4911842B2 (ja) 割り込み制御回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140513

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140526

R151 Written notification of patent or utility model registration

Ref document number: 5561294

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250