JP5512383B2 - 計算機システム - Google Patents

計算機システム Download PDF

Info

Publication number
JP5512383B2
JP5512383B2 JP2010109870A JP2010109870A JP5512383B2 JP 5512383 B2 JP5512383 B2 JP 5512383B2 JP 2010109870 A JP2010109870 A JP 2010109870A JP 2010109870 A JP2010109870 A JP 2010109870A JP 5512383 B2 JP5512383 B2 JP 5512383B2
Authority
JP
Japan
Prior art keywords
interrupt
mode
cpu
cpus
request
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
JP2010109870A
Other languages
English (en)
Other versions
JP2011238082A (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 JP2010109870A priority Critical patent/JP5512383B2/ja
Priority to EP11164649.3A priority patent/EP2386960B1/en
Priority to CN201110120268.5A priority patent/CN102360311B/zh
Priority to US13/106,788 priority patent/US8589612B2/en
Publication of JP2011238082A publication Critical patent/JP2011238082A/ja
Application granted granted Critical
Publication of JP5512383B2 publication Critical patent/JP5512383B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Bus Control (AREA)

Description

本発明は、複数のCPUを備えたマイクロコントローラなどの計算機システムに係り、例えば自動車の制御システムなどに適用して有効な技術に関する。
マイクロコントローラ(以下単に「マイコン」とも称する)は、家電製品、AV機器、携帯電話、自動車、産業機械等の機器に組み込まれ、メモリに記憶されているプログラムにしたがって処理を行うことで、それぞれの機器の制御を行う半導体集積回路である。
自動車では、制御装置の故障が事故につながる可能性があるため、マイコンを含む部品に高い信頼性が求められるとともに、故障が発生した場合にはこれを検出して自動車が危険な状態にならないように安全機能を働かせるように設計されている。マイコンはセンサやアクチュエータの診断を行ってこれらの故障を検出するだけでなく、マイコン自身の故障も検出する必要がある。
マイコンの故障検出には様々な方法があるが、CPUを2重化して同一の処理を行わせ、バスの値を常時比較する方法がしばしば用いられている。非特許文献1には、マスターCPUと比較用CPUが同一の処理を同時に実行し、それぞれの結果を比較回路で比較する方法が示されている。
また、2つのCPUを並列動作と2重化(冗長)比較動作を切り替えて実行させることが可能な方式が非特許文献2で提案されている。switch命令という特殊な命令をCPUがフェッチすると、そのCPUは動作を停止し、モード切り替えのための待機状態となる。2つのCPUがswitch命令をフェッチしてモード切り替えのための待機状態になると、CPUは新しいモードで動作を開始する。性能モード(並列動作)では性能が向上し、安全モード(2重化比較動作)ではCPUの出力を比較器で照合することによりCPUの故障を検出することができ、安全性が向上する。
「IEEE MICRO December 1984」誌、「Fault Tolerance Achieved in VLSI」 論文集「International Conference on Dependable Systems and Networks 2006」、ページ45−54、論文「A Reconfigurable Generic Dual−Core Architecture」
ところで、前述した非特許文献1は、2つのCPUが常に2重化比較動作となり、安全性は高いが、性能はCPU一つ分である。
また、前述した非特許文献2は、処理に必要とされる安全性の度合いによって、並列動作と2重化比較動作を切り替えられるため、必要な安全性を確保しつつ性能を向上させることができる。しかしながら、2つのCPUがswitch命令という命令を使ってモード切り替えを行うため、先にswitch命令をフェッチしたCPUは、もう一方のCPUがswitch命令をフェッチするまでの間、待機状態となる。
安全モードでは、2つのCPUがswitch命令を同時にフェッチするが、性能モードでは異なるタイミングでフェッチする。モード切り替えを割り込みによって開始することも考えられる。一般に、マイコンでは割り込み処理の優先レベルを設定でき、割り込み要求の中で最も優先レベルの高い割り込みが選択され、それがCPUの割り込みマスクレベルを超えた場合に、CPUが受け付けるようになっている。
性能モードでは、2つのCPUの割り込みマスクレベルが異なっている場合があり、モード切り替えを行う割り込み要求を、一方のCPUは受け付け、他方のCPUは受け付けられないということが考えられる。この場合、先に割り込みを受け付けたCPUはswitch命令によるモード切り替えを実行して待機状態となり、後で割り込みを受け付けたCPUがswitch命令をフェッチするまで待機状態となり、性能モードでありながらシングルCPUの動作となりCPUの処理効率が低下する。
そこで、本発明の代表的な目的は、性能モードから安全モードに切り替える場合に、CPUの待機時間を短縮して、性能モードのCPU処理効率を向上させる計算機システムを提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
すなわち、代表的なものの概要は、少なくとも2つのCPUと、CPUへの割り込みを行うプログラミング可能な割り込みコントローラとを有する計算機システムにおいて、割り込み要因ごとに、割り込むCPUを一つまたは複数設定でき、割り込むCPUを複数設定した場合には、その割り込みを受け付け可能となったCPUから順に受け付けることと、割り込むCPUの全てが受け付け可能となってから一度に受け付けることの2通りの受け付け方法を有することを特徴とする。これにより、少なくとも2つの複数のCPUで同一の割り込み処理を行う場合に、結果を交換してソフトウエアで照合して故障を検出する目的においては、対象となる全てのCPUが割り込みを受け付け可能となってから受け付けるため、先に受け付け可能となったCPUの待機時間を短縮することができる。
また、代表的なものの別の概要は、少なくとも2つのCPUと、CPUへの割り込みを行うプログラミング可能な割り込みコントローラと、CPUの出力を比較する比較器とを有する計算機システムにおいて、CPUがそれぞれ異なる処理を実行して性能を向上させる性能モードと、CPUが同じ処理を実行して結果を比較器で照合することにより故障を検出する安全モードとを切り替えて動作でき、割り込み要因ごとに、割り込むCPUを一つまたは複数設定でき、割り込み要因ごとに性能モードで実行するか安全モードで実行するかのモードを設定できることを特徴とする。これにより、例えば、現在実行中のモードが性能モードの場合に、選択された割り込み要因のモードが安全モードの場合には、その割り込み要求をCPUに出力するのを抑止し、割り込むCPUの全てが受け付け可能となったら、CPUの処理を中断させ、動作モードを性能モードから安全モードに切り替え、割り込み要求をCPUに出力することができるため、性能モードから安全モードに切り替える場合に、CPUの待機時間を短縮することができる。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
すなわち、代表的なものによって得られる効果は、少なくとも2つの複数のCPUで同一の割り込み処理を行う場合に、対象となる全てのCPUが割り込みを受け付け可能となってから受け付けるため、先に受け付け可能となったCPUの待機時間を短縮することができる。
また、代表的なものによって得られる別の効果は、性能モードから安全モードに切り替える場合に、CPUの待機時間を短縮することができる。
本発明の計算機システムを適用した第1の実施の形態で、2つのCPUを有するデュアルコアマイコンの一例を示す図である。 第1の実施の形態において、割り込み要求レベル設定レジスタの一例を示す図である。 第1の実施の形態において、割り込みCPU設定レジスタの一例を示す図である。 第1の実施の形態において、割り込みモード設定レジスタの一例を示す図である。 第1の実施の形態において、図1の割り込みコントローラの内部構成およびCPUAとCPUBとの接続の一例を示す図である。 第1の実施の形態において、図5の割り込みコントローラの統合制御の動作の一例を詳細に示す図である。 第1の実施の形態において、個別モード割り込みの一例を示すタイミングチャートである。 第1の実施の形態において、同時モード割り込みの一例を示すタイミングチャートである。 本発明の計算機システムを適用した第2の実施の形態で、2つのCPUを有し、並列処理を行う性能モードと、2重化照合処理を行う安全モードとを動的に切り替え可能なデュアルコアマイコンの一例を示す図である。 第2の実施の形態において、図9の割り込みコントローラの内部構成およびCPUAとCPUBとの接続の一例を示す図である。 第2の実施の形態において、図10の割り込みコントローラの統合制御の動作の一例を詳細に示す図である。 第2の実施の形態において、性能モードで動作中に安全モードの割り込みがある場合の一例を示すタイミングチャートである。 第2の実施の形態において、CPUのステータスレジスタ(割り込み関係)の一例を示す図である。 第1の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第1の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第1の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第1の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第1の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第1の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第2の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第2の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第2の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第2の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第2の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第2の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第2の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。 第2の実施の形態において、マイコンに付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
<第1の実施の形態>
図1は、本発明の計算機システムを適用した第1の実施の形態で、2つのCPUを有するデュアルコアマイコンの一例を示す図である。本実施の形態のマイコン(MCU)1は、CPUA2およびCPUB6と、メモリA3およびメモリB7と、CPUAバス4およびCPUBバス8と、バスブリッジA5およびバスブリッジB9と、システムバス10と、割り込みコントローラ11と、周辺モジュールA12〜周辺モジュールL13などから構成される。
CPUA2は、命令を実行して演算やデータ転送などの処理を行うプロセッサである。メモリA3は、CPUA2が実行する命令および処理するデータを記憶する。CPUAバス4は、CPUA2がメモリA3などのモジュールをアクセスするためのバスである。バスブリッジA5は、CPUA2がシステムバス10より外に接続されているモジュールをアクセスする場合に、CPUAバス4とシステムバス10を接続制御するコントローラである。
CPUB6は、命令を実行して演算やデータ転送などの処理を行うプロセッサである。メモリB7は、CPUB6が実行する命令および処理するデータを記憶する。CPUBバス8は、CPUB6がメモリB7などのモジュールをアクセスするためのバスである。バスブリッジB9は、CPUB6がシステムバス10より外に接続されているモジュールをアクセスする場合に、CPUBバス8とシステムバス10を接続制御するコントローラである。
割り込みコントローラ11は、外部割り込み110や周辺モジュールA12〜L13からの割り込み要求がある場合に、あらかじめ設定されている要求レベルの最も大きい要求を選択して、CPUに割り込みを行うモジュールである。
割り込みコントローラ11と周辺モジュールA12のインタフェース112は、周辺モジュールA12からの割り込み要求信号と、割り込みコントローラ11からの割り込みを受け付けたことを示す応答信号が含まれる。
割り込みコントローラ11と周辺モジュールL13のインタフェース113は、周辺モジュールL13からの割り込み要求信号と、割り込みコントローラ11からの割り込みを受け付けたことを示す応答信号が含まれる。
割り込みコントローラ11とCPUA2のインタフェース114は、割り込みコントローラ11からの割り込み要求信号と、CPUA2からの割り込みマスク信号が含まれる。割り込みコントローラ11は、選択した割り込み要因の要求レベルがCPUA2からの割り込みマスク信号のレベルより上である場合に、割り込み要求を出力する。
割り込みコントローラ11とCPUB6のインタフェース115は、割り込みコントローラ11からの割り込み要求信号と、CPUB6からの割り込みマスク信号が含まれる。割り込みコントローラ11は、選択した割り込み要因の要求レベルがCPUB6からの割り込みマスク信号のレベルより上である場合に、割り込み要求を出力する。
周辺モジュールA12は、例えばアナログ入力120をデジタル信号に変換するA/D変換器である。
周辺モジュールL13は、例えば通信インタフェース130を介して通信処理を行うモジュールである。
図2は、割り込み要因の要求レベルを設定する割り込み要求レベル設定レジスタの一例を示す図である。この割り込み要求レベル設定レジスタは、例えば割り込みコントローラ11に内蔵される。ここでは、4つの外部割り込み要因と12の周辺モジュール割り込み要因がある場合について示す。割り込み要求レベル設定レジスタIPR0、IPR1、IPR2、IPR3は16ビットのレジスタで、それぞれ4つの割り込み要因の要求レベルを4ビットで設定する。IPR0はビット15〜12が外部割り込み0(E0)、ビット11〜8が外部割り込み1(E1)、ビット7〜4が外部割り込み2(E2)、ビット3〜0が外部割り込み3(E3)を設定する。設定値はB0000(Bは2進数を表す)からB1111の16通りで、数値が大きい方の要求レベルが高い。IPR1、IPR2、IPR3は周辺モジュール割り込みA(PA)〜L(PL)について要求レベルを設定する。
図3は、割り込み要因ごとに、割り込むCPUを設定する割り込みCPU設定レジスタの一例を示す図である。この割り込みCPU設定レジスタは、例えば割り込みコントローラ11に内蔵される。CPUA2への割り込みを設定する割り込みCPU設定レジスタ0(ICP0)と、CPUB6への割り込みを設定する割り込みCPU設定レジスタ1(ICP1)がある。レジスタの各ビットに割り込み要因が対応付けられており、例えばビット15は外部割り込み0の設定を行う。0を設定すると割り込み要求があっても割り込みは行わない。1を設定すると割り込み要求を行う。ICP0とICP1の設定により、割り込み要因ごとに、割り込みを行わない、CPUAに割り込む、CPUBに割り込む、CPUAとCPUBに割り込むという4通りの割り込み方法を選択できる。
図4は、CPUAとCPUBの両方に割り込む設定が行われている割り込み要因について、割り込み要求を受け付け可能となったCPUに個別に要求を出す個別モードと、CPUAとCPUBの両方が受け付け可能となってから同時に要求を出す同時モードの設定を行う、割り込みモード設定レジスタIMDの一例を示す図である。この割り込みモード設定レジスタは、例えば割り込みコントローラ11に内蔵される。レジスタの各ビットに割り込み要因が対応付けられており、例えばビット11は周辺モジュール割り込みA(PA)の設定を行う。0は個別モード、1は同時モードを意味する。
図5は、割り込みコントローラ11の内部構成およびCPUA2とCPUB6との接続の一例を示す図である。割り込みコントローラ11は、IPR0(1100)〜IPR3(1103)、ICP0(1104)およびICP1(1105)、IMD(1106)などの各レジスタと、優先順位判定A1107および優先順位判定B1110、比較器1108および比較器1111、マスク1109およびマスク1112、統合制御1113などの各回路から構成される。
IPR0(1100)、IPR1(1101)、IPR2(1102)、IPR3(1103)は割り込み要求レベル設定レジスタである。ICP0(1104)、ICP1(1105)は割り込みCPU設定レジスタである。IMD(1106)は割り込みモード設定レジスタである。
優先順位判定A1107は、レジスタ1100〜1106の設定に従い、割り込み要求E0〜PLの中からCPUA2に対する要求レベルの一番高い要求を選択し、その要求レベル11070を出力する。また、選択した要求のモード(個別モードまたは同時モード)、割り込み番号(例えば、E0は15、E1は14、…、PLは0など)を属性信号11071として出力する。
比較器1108は、CPUA2への割り込み要求レベル11070とCPUA2のステータスレジスタSRに記憶されている割り込みマスクビットI3、I2、I1、I0(200)を比較して、割り込み要求レベル11070が割り込みマスクレベル200を超えた場合に比較結果11080を1(要求あり)にする。割り込み要求レベル11070が割り込みマスクレベル200と同じか小さい場合には、比較結果11080を0(要求なし)にする。
マスク1109は、統合制御1113からのマスク信号11130に従い、比較結果11080の無効化を行う。
優先順位判定B1110は、レジスタ1100〜1106の設定に従い、割り込み要求E0〜PLの中からCPUB6に対する要求レベルの一番高い要求を選択し、その要求レベル11100を出力する。また、選択した要求のモード、割り込み番号を属性信号11101として出力する。
比較器1111は、CPUB6への割り込み要求レベル11100とCPUB6のステータスレジスタSRに記憶されている割り込みマスクビットI3、I2、I1、I0(600)を比較して、割り込み要求レベル11100が割り込みマスクレベル600を超えた場合に比較結果11110を1(要求あり)にする。割り込み要求レベル11100が割り込みマスクレベル600と同じか小さい場合には、比較結果11110を0(要求なし)にする。
マスク1112は、統合制御1113からのマスク信号11131に従い、比較結果11110の無効化を行う。
統合制御1113は、CPUA2への割り込みとCPUB6への割り込みの統合制御を行う。割り込み属性信号11071、11101、比較結果11080、11110を入力して、比較結果マスク信号11130、11131を出力する。統合制御1113の要点だけ述べると、CPUA2への割り込みとCPUB6への割り込みが個別モードのみの場合にはマスクは行わない。同時モードの割り込み要求がある場合にマスクが行われる。
図6は、統合制御1113の動作の一例を詳細に示す図である。比較器出力、要求のモード、割り込み番号(一致/不一致)の組み合わせにより10ケースが考えられる。AはCPUA2への割り込み、BはCPUB6への割り込みを意味する。
ケース1は、比較器出力がAB共に0(要求なし)の場合で、要求のモード、割り込み番号に関わらず、マスク信号は0(マスクしない)となる。
ケース2は、比較器出力Aが1(要求あり)で個別モード、Bが0の場合で、マスク信号は0となる。
ケース3は、比較器出力Bが1で個別モード、Aが0の場合で、マスク信号は0となる。
ケース4は、比較器出力Aが1で個別モード、Bが1で個別モードの場合で、マスク信号は0となる。
ケース5は、比較器出力Aが1で同時モード、Bが0の場合で、マスク信号Aが1となる。これは、割り込み要求レベルがCPUA2のマスクレベルを超えたが、CPUB6のマスクレベルを超えていないことを意味する。CPUB6のマスクレベルが下がって割り込み要求を受け付けられるようになるまで、CPUA2への割り込み要求を出さないように、マスク信号Aを1にして、要求を無効化する。
ケース6は、比較器出力Bが1で同時モード、Aが0の場合で、マスク信号Bが1となる。これは、割り込み要求レベルがCPUB6のマスクレベルを超えたが、CPUA2のマスクレベルを超えていないことを意味する。CPUA2のマスクレベルが下がって割り込み要求を受け付けられるようになるまで、CPUB6への割り込み要求を出さないように、マスク信号Bを1にして、要求を無効化する。
ケース7は、比較器出力Aが1で個別モード、比較器出力Bが1で同時モードの場合で、マスク信号Bが1となる。これは、CPUB6に選択した同時モードの割り込み要求より優先レベルの高い個別モードの割り込み要求をCPUA2に選択したことを意味する。CPUA2への割り込み要求は出力し、CPUB6への割り込み要求は無効化する。
ケース8は、比較器出力Aが1で同時モード、比較器出力Bが1で個別モードの場合で、マスク信号Aが1となる。これは、CPUA2に選択した同時モードの割り込み要求より優先レベルの高い個別モードの割り込み要求をCPUB6に選択したことを意味する。CPUB6への割り込み要求は出力し、CPUA2への割り込み要求は無効化する。
ケース9は、比較器出力ABとも1で同時モード、割り込み番号が不一致の場合で、マスク信号ABが1となる。これは、CPUA2とCPUB6に選択した同時モードの割り込み要因が異なることを意味する。しかしながら、優先レベルの設定はCPUごとに独立に行うわけではないため、このケースは起こり得ない。
ケース10は、比較器出力ABとも1で同時モード、割り込み番号が一致の場合で、マスク信号ABが0となる。同時モードの割り込みは、この条件でCPUA2とCPUB6に同時に出力される。
図7は、個別モード割り込みの一例を示すタイミングチャートである。CLKはCPUをはじめマイコンの各機能モジュールが動作するためのクロックである。
(1)周辺モジュールA12からの割り込み要求PAが入る。PAはCPUA2とCPUB6の両方に個別に割り込むものとする。
(2)割り込みコントローラ11は、CPUA2への割り込み要求モードINTMDAが0(個別)、割り込み要求レベルINTLVLA[3:0]が12でCPUA2の割り込みマスクレベルSRA_I[3:0]の11を超えているため、CPUA2への割り込み要求INTREQAを1(要求あり)にする。
(3)CPUA2はタスクT1を実行中に割り込みを受け付け、PAの割り込み処理ルーチンT10に分岐する。また、割り込み要求レベルINTLVLA[3:0]の値12をステータスレジスタのマスクビットにコピーし、SRA_I[3:0]が12に更新される。INTLVLA[3:0]とSRA_I[3:0]が同じ値になったので、割り込みコントローラ11はINTREQAを1から0にして、割り込み要求を取り下げる。
(4)CPUB6はタスクT2(割り込み処理ルーチン)を実行していたが、処理が終了したので割り込み復帰命令RTEを実行する。スタックに退避されていた値がステータスレジスタに戻されることによって割り込みマスクレベルSRB_I[3:0]が11に戻る。
(5)割り込みコントローラ11は、CPUB6への割り込み要求モードINTMDBが0(個別)、割り込み要求レベルINTLVLB[3:0]が12でCPUB6の割り込みマスクレベルSRB_I[3:0]の11を超えているため、CPUB6への割り込み要求INTREQBを1(要求あり)にする。
(6)CPUB6は割り込みを受け付け、PAの割り込み処理ルーチンT10に分岐する。また、割り込み要求レベルINTLVLB[3:0]の値12をステータスレジスタのマスクビットにコピーし、SRB_I[3:0]が12に更新される。INTLVLB[3:0]とSRB_I[3:0]が同じ値になったので、割り込みコントローラ11はINTREQBを1から0にして、割り込み要求を取り下げる。
このように、個別モードの割り込みは、CPUA2とCPUB6がそれぞれ要求を受け付け可能となったタイミングで受け付けられる。
図8は、同時モード割り込みの一例を示すタイミングチャートである。
(1)周辺モジュールA12からの割り込み要求PAが入る。PAはCPUA2とCPUB6の両方に同時に割り込むものとする。
(2)割り込みコントローラ11は、CPUA2への割り込み要求モードINTMDAが1(同時)、割り込み要求レベルINTLVLA[3:0]が12でCPUA2の割り込みマスクレベルSRA_I[3:0]の11を超えているが、CPUB6への割り込み要求レベルINTLVLB[3:0]が12でCPUB6の割り込みマスクレベルSRB_I[3:0]の12と同じであるため、CPUA2への割り込み要求INTREQAを0(要求なし)にする。
(3)CPUB6はタスクT2(割り込み処理ルーチン)を実行していたが、処理が終了したので割り込み復帰命令RTEを実行する。スタックに退避されていた値がステータスレジスタに戻されることによって割り込みマスクレベルSRB_I[3:0]が11に戻る。
(4)割り込みコントローラ11は、割り込み要求レベルINTLVLA[3:0]が12でCPUA2の割り込みマスクレベルSRA_I[3:0]の11を超え、CPUB6への割り込み要求レベルINTLVLB[3:0]が12でCPUB6の割り込みマスクレベルSRB_I[3:0]の11を超えたため、CPUA2への割り込み要求INTREQAを1(要求あり)にする。
(5)割り込みコントローラ11は(4)と同様に、CPUB6への割り込み要求INTREQBを1にする。
(6)CPUA2はタスクT1を実行中に割り込みを受け付け、PAの割り込み処理ルーチンT10に分岐する。また、割り込み要求レベルINTLVLA[3:0]の値12をステータスレジスタのマスクビットにコピーし、SRA_I[3:0]が12に更新される。INTLVLA[3:0]とSRA_I[3:0]が同じ値になったので、割り込みコントローラ11はINTREQAを1から0にして、割り込み要求を取り下げる。
(7)CPUB6は割り込みを受け付け、PAの割り込み処理ルーチンT10に分岐する。また、割り込み要求レベルINTLVLB[3:0]の値12をステータスレジスタのマスクビットにコピーし、SRB_I[3:0]が12に更新される。INTLVLB[3:0]とSRB_I[3:0]が同じ値になったので、割り込みコントローラ11はINTREQBを1から0にして、割り込み要求を取り下げる。
このように、同時モードの割り込みは、CPUA2とCPUB6がともに要求を受け付け可能となったタイミングで受け付けられる。
図14〜図19は、本実施の形態のマイコン1に付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。取扱説明書には、図14〜図19に示すような割り込みの受け付け方法に関して記載されている。
例えば、図14に示す取扱説明書には、割り込みコントローラ11の割り込みCPU設定レジスタなどに関して、割り込み要因ごとに、割り込むCPUを一つまたは複数設定でき、割り込むCPUを複数設定した場合には、その割り込みを受け付け可能となったCPUから順に受け付けることと、割り込むCPUの全てが受け付け可能となってから一度に受け付けることの2通りの受け付け方法を有することが記載されている。
また、図15および図16に示す取扱説明書には、割り込みコントローラ11の割り込みCPU設定レジスタと割り込みモード設定レジスタなどに関して記載され、その内容は図15および図16に示す通りである。
さらに、図17〜図19に示す取扱説明書には、割り込みコントローラ11の割り込みCPU設定レジスタと割り込みモード設定レジスタと割り込み要求レベル設定レジスタや、CPUA2およびCPUB6のステータスレジスタなどに関して記載され、その内容は図17〜図19に示す通りである。
以上説明した本実施の形態によれば、個別モードの割り込みはCPUA2とCPUB6がそれぞれ要求を受け付け可能となったタイミングで受け付けられ、また、同時モードの割り込みはCPUA2とCPUB6がともに要求を受け付け可能となったタイミングで受け付けられるので、2つのCPUA2とCPUB6で同一の割り込み処理を行う場合に、対象となる全てのCPUが割り込みを受け付け可能となってから受け付けるため、先に受け付けたCPUの待機時間を短縮することができる。この結果、CPUの待機時間を短縮して、CPU処理効率を向上させることが可能となる。
<第2の実施の形態>
図9は、本発明の計算機システムを適用した第2の実施の形態で、2つのCPUを有し、並列処理を行う性能モードと、2重化照合処理を行う安全モードとを動的に切り替え可能なデュアルコアマイコンの一例を示す図である。本実施の形態のマイコン(MCU)1は、図1に対して、CPUA2とCPUB6の出力を比較する比較器14と、割り込みコントローラ11と比較器14の間のインタフェース116が追加になっている。
性能モードでは、CPUA2とCPUB6はそれぞれ異なるプログラムを独立に処理する。この性能モードでは、比較器14は動作しない。安全モードでは、CPUA2とCPUB6は同じプログラムを同期して処理する。この安全モードでは、比較器14が動作し、CPUA2とCPUB6の出力が異なる場合には、エラーを出力する。割り込みコントローラ11からのインタフェース116は、性能モード(値が0)か安全モード(値が1)かを示すモード信号が含まれる。
図10は、割り込みコントローラ11の内部構成およびCPUA2とCPUB6との接続の一例を示す図である。
IPR0(1100)、IPR1(1101)、IPR2(1102)、IPR3(1103)は割り込み要求レベル設定レジスタである。ICP0(1104)、ICP1(1105)は割り込みCPU設定レジスタである。IMD(1106)は割り込みモード設定レジスタである。
優先順位判定A1107は、レジスタ1100〜1106の設定に従い、割り込み要求E0〜PLの中からCPUA2に対する要求レベルの一番高い要求を選択し、その要求レベル11070を出力する。また、選択した要求のモード(性能モードまたは安全モード)、割り込み番号(例えば、E0は15、E1は14、…、PLは0など)を属性信号11071として出力する。
比較器1108は、CPUA2への割り込み要求レベル11070とCPUA2のステータスレジスタSRに記憶されている割り込みマスクビットI3、I2、I1、I0(200)を比較して、割り込み要求レベル11070が割り込みマスクレベル200を超えた場合に比較結果11080を1(要求あり)にする。割り込み要求レベル11070が割り込みマスクレベル200と同じか小さい場合には、比較結果11080を0(要求なし)にする。
マスク1109は、統合制御1113からのマスク信号11130に従い、比較結果11080の無効化を行う。
優先順位判定B1110は、レジスタ1100〜1106の設定に従い、割り込み要求E0〜PLの中からCPUB6に対する要求レベルの一番高い要求を選択し、その要求レベル11100を出力する。また、選択した要求のモード、割り込み番号を属性信号11101として出力する。
比較器1111は、CPUB6への割り込み要求レベル11100とCPUB6のステータスレジスタSRに記憶されている割り込みマスクビットI3、I2、I1、I0(600)を比較して、割り込み要求レベル11100が割り込みマスクレベル600を超えた場合に比較結果11110を1(要求あり)にする。割り込み要求レベル11100が割り込みマスクレベル600と同じか小さい場合には、比較結果11110を0(要求なし)にする。
マスク1112は、統合制御1113からのマスク信号11131に従い、比較結果11110の無効化を行う。
統合制御1113は、CPUA2への割り込みとCPUB6への割り込みの統合制御を行う。割り込み属性信号11071、11101、比較結果11080、11110を入力して、比較結果マスク信号11130、11131を出力する。また、CPUA2とCPUB6にはモード切り替え機能201、601が追加されている。レジスタも性能モード用と安全モード用に2組持ち、モードで切り替えるように構成されている。割り込みコントローラ11の統合制御1113は、現在実行中のモードと異なるモードの割り込み要求をCPUが受け付け可能状態になったら、モード切り替え要求(11132の一部、11133の一部)を出力する。CPUは実行中の命令をキャンセルし、最後に実行した命令の次の命令アドレスをプログラムカウンタに保持し、動作を停止する。次にレジスタを現在と異なるモード用に切り替え、割り込みコントローラ11にモード切り替え応答信号(11132の一部、11133の一部)を出力する。CPUA2とCPUB6の両方からモード切り替え応答信号が返ると、統合制御1113は動作モード11134を切り替え、モード切り替え完了信号(11132の一部、11133の一部)を出力する。また、動作モードと割り込み要求のモードが同じになったので、比較結果マスク信号11130、11131が1(マスクする)から0(マスクしない)に変化し、割り込み要求信号11090、11120が出力可能となる。
図11は、統合制御1113の動作の一例を詳細に示す図である。動作中のモード、比較器出力、要求のモード、割り込み番号(一致/不一致)の組み合わせにより20ケースが考えられる。AはCPUA2への割り込み、BはCPUB6への割り込みを意味する。
ケース1〜10は現在のモードが性能モードである。
ケース1は、比較器出力がAB共に0(要求なし)の場合で、要求のモード、割り込み番号に関わらず、マスク信号は0(マスクしない)となる。
ケース2は、比較器出力Aが1(要求あり)で性能モード、Bが0の場合で、マスク信号は0となる。すなわち、CPUA2への割り込み要求が出力される。
ケース3は、比較器出力Bが1で性能モード、Aが0の場合で、マスク信号は0となる。すなわち、CPUB6への割り込み要求が出力される。
ケース4は、比較器出力Aが1で性能モード、Bが1で性能モードの場合で、マスク信号は0となる。すなわち、CPUA2とCPUB6に割り込み要求が出力される。
ケース5は、比較器出力Aが1で安全モード、Bが0の場合で、マスク信号Aが1となる。これは、割り込み要求レベルがCPUA2のマスクレベルを超えたが、CPUB6のマスクレベルを超えていないことを意味する。CPUB6のマスクレベルが下がって割り込み要求を受け付けられるようになるまで、CPUA2への割り込み要求を出さないように、マスク信号Aを1にして、要求を無効化する。
ケース6は、比較器出力Bが1で安全モード、Aが0の場合で、マスク信号Bが1となる。これは、割り込み要求レベルがCPUB6のマスクレベルを超えたが、CPUA2のマスクレベルを超えていないことを意味する。CPUA2のマスクレベルが下がって割り込み要求を受け付けられるようになるまで、CPUB6への割り込み要求を出さないように、マスク信号Bを1にして、要求を無効化する。
ケース7は、比較器出力Aが1で性能モード、比較器出力Bが1で安全モードの場合で、マスク信号Bが1となる。これは、CPUB6に選択した安全モードの割り込み要求より優先レベルの高い性能モードの割り込み要求をCPUA2に選択したことを意味する。CPUA2への割り込み要求は出力し、CPUB6への割り込み要求は無効化する。
ケース8は、比較器出力Aが1で安全モード、比較器出力Bが1で性能モードの場合で、マスク信号Aが1となる。これは、CPUA2に選択した安全モードの割り込み要求より優先レベルの高い性能モードの割り込み要求をCPUB6に選択したことを意味する。CPUB6への割り込み要求は出力し、CPUA2への割り込み要求は無効化する。
ケース9は、比較器出力ABとも1で安全モード、割り込み番号が不一致の場合で、マスク信号ABが1となる。これは、CPUA2とCPUB6に選択した安全モードの割り込み要因が異なることを意味する。しかしながら、優先レベルの設定はCPUごとに独立に行うわけではないため、このケースは起こり得ない。
ケース10は、比較器出力ABとも1で安全モード、割り込み番号が一致の場合で、マスク信号ABが1となる。安全モードの要求がCPUA2とCPUB6の両方で受け付け可能になったので、モード切り替えが1(モード切り替えを行う)となる。
ケース11〜20は現在のモードが安全モードである。
ケース11は、比較器出力がAB共に0(要求なし)の場合で、要求のモード、割り込み番号に関わらず、マスク信号は0(マスクしない)となる。
ケース12は、比較器出力Aが1(要求あり)で性能モード、Bが0の場合で、マスク信号Aが1となる。また、CPUA2が性能モードの割り込みを受け付け可能なので、モード切り替えが1となる。
ケース13は、比較器出力Bが1で性能モード、Aが0の場合で、マスク信号は0となる。また、CPUB6が性能モードの割り込みを受け付け可能なので、モード切り替えが1となる。
ケース14は、比較器出力Aが1で性能モード、Bが1で性能モードの場合で、マスク信号ABが1となる。また、CPUA2とCPUB6が割り込みを受け付け可能なので、モード切り替えが1となる。
ケース15は、比較器出力Aが1で安全モード、Bが0の場合で、マスク信号Aが1となる。これは、割り込み要求レベルがCPUA2のマスクレベルを超えたが、CPUB6のマスクレベルを超えていないことを意味する。CPUB6のマスクレベルが下がって割り込み要求を受け付けられるようになるまで、CPUA2への割り込み要求を出さないように、マスク信号Aを1にして、要求を無効化する。
ケース16は、比較器出力Bが1で安全モード、Aが0の場合で、マスク信号Bが1となる。これは、割り込み要求レベルがCPUB6のマスクレベルを超えたが、CPUA2のマスクレベルを超えていないことを意味する。CPUA2のマスクレベルが下がって割り込み要求を受け付けられるようになるまで、CPUB6への割り込み要求を出さないように、マスク信号Bを1にして、要求を無効化する。
ケース17は、比較器出力Aが1で性能モード、比較器出力Bが1で安全モードの場合で、マスク信号ABが1となる。これは、CPUB6に選択した安全モードの割り込み要求より優先レベルの高い性能モードの割り込み要求をCPUA2に選択したことを意味する。CPUA2とCPUB6への割り込み要求を無効化する。また、CPUA2が性能モードの割り込みを受け付け可能なので、モード切り替えが1となる。
ケース18は、比較器出力Aが1で安全モード、比較器出力Bが1で性能モードの場合で、マスク信号ABが1となる。これは、CPUA2に選択した安全モードの割り込み要求より優先レベルの高い性能モードの割り込み要求をCPUB6に選択したことを意味する。CPUA2とCPUB6への割り込み要求を無効化する。また、CPUB6が性能モードの割り込みを受け付け可能なので、モード切り替えが1となる。
ケース19は、比較器出力ABとも1で安全モード、割り込み番号が不一致の場合で、マスク信号ABが1となる。これは、CPUA2とCPUB6に選択した安全モードの割り込み要因が異なることを意味する。しかしながら、優先レベルの設定はCPUごとに独立に行うわけではないため、このケースは起こり得ない。
ケース20は、比較器出力ABとも1で安全モード、割り込み番号が一致の場合で、マスク信号ABが0となる。安全モードの割り込みは、この条件でCPUA2とCPUB6に同時に出力される。
図12は、性能モードで動作中に安全モードの割り込みがある場合の一例を示すタイミングチャートである。
(1)周辺モジュールA12からの割り込み要求PAが入る。
(2)割り込みコントローラ11は、CPUA2への割り込み要求モードINTMDAが1(安全)、割り込み要求レベルINTLVLA[3:0]が12でCPUA2の割り込みマスクレベルSRA_I[3:0]の11を超えているが、CPUB6への割り込み要求レベルINTLVLB[3:0]が12でCPUB6の割り込みマスクレベルSRB_I[3:0]の12と同じであるため、CPUA2への割り込み要求INTREQAを0(要求なし)にする。
(3)CPUB6はタスクTP2(割り込み処理ルーチン)を実行していたが、処理が終了したので割り込み復帰命令RTEを実行する。スタックに退避されていた値がステータスレジスタに戻されることによって割り込みマスクレベルSRB_I[3:0]が11に戻る。
(4)割り込みコントローラ11は、割り込み要求レベルINTLVLA[3:0]が12でCPUA2の割り込みマスクレベルSRA_I[3:0]の11を超え、CPUB6への割り込み要求レベルINTLVLB[3:0]が12でCPUB6の割り込みマスクレベルSRB_I[3:0]の11を超えたため、CPUA2とCPUB6にモード切り替え要求を出力する。これに従いCPUA2はモード切り替えを実行する。実行中の命令をキャンセルし、最後に実行した命令の次の命令アドレスをプログラムカウンタに保持する。
(5)CPUB6も同様にモード切り替えを実行する。
(6)CPUA2は動作を停止し、レジスタを安全モード用に切り替え、割り込みコントローラ11にモード切り替え応答信号を出力する。
(7)CPUB6も同様に停止し、レジスタを安全モード用に切り替え、割り込みコントローラ11にモード切り替え応答信号を出力する。
(8)割り込みコントローラ11が出力するモード信号CPUMDが0(性能モード)から1(安全モード)に変化する。
(9)割り込みコントローラ11は、動作モードが安全モードになったので、CPUA2への割り込み要求INTREQAを1(要求あり)にする。
(10)同様にCPUB6への割り込み要求INTREQBを1にする。
(11)CPUA2は動作を再開し、性能モードに切り替わる前に実行していたタスクTS1を継続実行する。
(12)CPUB6は動作を再開し、性能モードに切り替わる前に実行していたタスクTS1を継続実行する。
(13)CPUA2はINTREQAを受け付け、PAの割り込み処理ルーチンTS2に分岐する。また、割り込み要求レベルINTLVLA[3:0]の値12をステータスレジスタのマスクビットにコピーし、SRA_I[3:0]が12に更新される。INTLVLA[3:0]とSRA_I[3:0]が同じ値になったので、割り込みコントローラ11はINTREQAを1から0にして、割り込み要求を取り下げる。
(14)CPUB6はINTREQBを受け付け、PAの割り込み処理ルーチンTS2に分岐する。また、割り込み要求レベルINTLVLB[3:0]の値12をステータスレジスタのマスクビットにコピーし、SRB_I[3:0]が12に更新される。INTLVLB[3:0]とSRB_I[3:0]が同じ値になったので、割り込みコントローラ11はINTREQBを1から0にして、割り込み要求を取り下げる。
このように、性能モードで動作中に発生した安全モードの割り込みは、CPUA2とCPUB6がともに要求を受け付け可能となったタイミングで、性能モードから安全モードに切り替わった後に受け付けられる。
図13は、CPU(CPUA2、CPUB6)のステータスレジスタ(割り込み関係)の一例を示す図である。ビット7〜4は割り込みマスクビットI3、I2、I1、I0である。ビット8はモード切り替えビットMCである。MCは0がモード切り替えなし、1がモード切り替えありを意味する。
ステータスレジスタも性能モード用と安全モードに2組持ち、モードで切り替えるように構成されている。MCはリセットにより0に初期化される。モード切り替え後、ステータスレジスタのMCを1にする。割り込みを受け付けると、ステータスレジスタはスタックに退避される。割り込み要求レベルが割り込みマスクビットに書き込まれ、MCを0にする。割り込み処理が終わり、ステータスレジスタの値がスタックから復帰すると、MCが1となる。割り込みが入る前にモード切り替えが行われたことが分かるので、モード切り替え処理を行って、元のモードに戻すことができる。
図20〜図27は、本実施の形態のマイコン1に付属される取扱説明書の割り込みの受け付け方法に関する記載の一例を示す図である。取扱説明書には、図20〜図27に示すような割り込みの受け付け方法に関して記載されている。
例えば、図20に示す取扱説明書には、CPUがそれぞれ異なる処理を実行して性能を向上させる性能モードと、CPUが同じ処理を実行して結果を比較器で照合することにより故障を検出する安全モードとを切り替えて動作できる構成において、割り込みコントローラ11の割り込みCPU設定レジスタと割り込みモード設定レジスタと統合制御1113などに関して、割り込み要因ごとに、割り込むCPUを一つまたは複数設定でき、割り込み要因ごとに性能モードで実行するか安全モードで実行するかのモードを設定でき、現在実行中のモードが性能モードの場合に、選択された割り込み要因のモードが性能モードの場合には、その割り込み要求をCPUに出力することが記載されている。
また、図21〜図23に示す取扱説明書には、割り込みコントローラ11の割り込みCPU設定レジスタと割り込みモード設定レジスタと統合制御1113などに関して記載され、その内容は図21〜図23に示す通りである。
さらに、図24〜図27に示す取扱説明書には、割り込みコントローラ11の割り込みCPU設定レジスタと割り込みモード設定レジスタと割り込み要求レベル設定レジスタや、CPUA2およびCPUB6のステータスレジスタなどに関して記載され、その内容は図24〜図27に示す通りである。
以上説明した本実施の形態によれば、実施の形態1と同様に、2つのCPUA2とCPUB6で同一の割り込み処理を行う場合に、対象となる全てのCPUが割り込みを受け付け可能となってから受け付けるため、先に受け付けたCPUの待機時間を短縮することができる。特に、本実施の形態においては、性能モードで動作中に発生した安全モードの割り込みは、CPUA2とCPUB6がともに要求を受け付け可能となったタイミングで、性能モードから安全モードに切り替わった後に受け付けられるので、性能モードから安全モードに切り替える場合に、CPUの待機時間を短縮して、性能モードのCPU処理効率を向上させることが可能となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、前記第1および第2の実施の形態においては、2つのCPUを有するデュアルコアマイコンを例に説明したが、本発明は、2つに限らず、3つ以上など、少なくとも2つ以上のCPUを有する計算機システムに広く適用可能である。
本発明の計算機システムは、複数のCPUを備えたマイクロコントローラなどの計算機システムに係り、例えば自動車の制御システムなどに利用可能である。
1…マイコン
2…CPUA
3…メモリA
4…CPUAバス
5…バスブリッジA
6…CPUB
7…メモリB
8…CPUBバス
9…バスブリッジB
10…システムバス
11…割り込みコントローラ
12…周辺モジュールA
13…周辺モジュールL
14…比較器
1100〜1103…割り込み要求レベル設定レジスタ
1104、1105…割り込みCPU設定レジスタ
1106…割り込みモード設定レジスタ
1107…優先順位判定A
1108…比較器
1109…マスク
1110…優先順位判定B
1111…比較器
1112…マスク
1113…統合制御

Claims (10)

  1. 少なくとも2つのCPUと、
    前記CPUへの割り込みを行うプログラミング可能な割り込みコントローラとを有する計算機システムであって、
    前記割り込みコントローラは、
    割り込み要因ごとに、割り込むCPUを一つまたは複数設定可能な割り込みCPU設定レジスタを有し、
    前記割り込むCPUを複数設定した場合には、その割り込みを受け付け可能となったCPUから順に受け付けることと、割り込むCPUの全てが受け付け可能となってから一度に受け付けることの2通りの受け付け方法を有することを特徴とする計算機システム。
  2. 少なくとも2つのCPUと、
    前記CPUへの割り込みを行うプログラミング可能な割り込みコントローラとを有する計算機システムであって、
    前記割り込みコントローラは、
    割り込み要因ごとに、割り込むCPUを一つまたは複数設定可能な割り込みCPU設定レジスタと、
    前記割り込むCPUが複数ある場合にはその割り込みを受け付け可能となったCPUから順に受け付けるか、割り込むCPUの全てが受け付け可能となってから一度に受け付けるかのモードを設定可能な割り込みモード設定レジスタとを有することを特徴とする計算機システム。
  3. 少なくとも2つのCPUと、
    前記CPUへの割り込みを行うプログラミング可能な割り込みコントローラとを有する計算機システムであって、
    前記割り込みコントローラは、
    割り込み要因ごとに、割り込むCPUを一つまたは複数設定可能な割り込みCPU設定レジスタと、
    前記割り込むCPUが複数ある場合にはその割り込みを受け付け可能となったCPUから順に受け付けるか、割り込むCPUの全てが受け付け可能となってから一度に受け付けるかのモードを割り込み要因ごとに設定可能な割り込みモード設定レジスタとを有することを特徴とする計算機システム。
  4. 請求項1〜3のいずれか一項記載の計算機システムにおいて、
    前記割り込みコントローラは、前記割り込み要因ごとに優先レベルを設定可能な割り込み要求レベル設定レジスタを有し、
    前記CPUは、割り込み要求をマスクするレベルを設定可能なステータスレジスタを有し、
    前記割り込み要因の優先レベルが前記CPUの割り込み要求マスクレベルを超えた場合に、前記CPUが割り込みを受け付け可能となることを特徴とする計算機システム。
  5. 少なくとも2つのCPUと、
    前記CPUへの割り込みを行うプログラミング可能な割り込みコントローラと、
    前記CPUの出力を比較する比較器とを有する計算機システムであって、
    前記CPUがそれぞれ異なる処理を実行して性能を向上させる性能モードと、
    前記CPUが同じ処理を実行して結果を前記比較器で照合することにより故障を検出する安全モードとを切り替えて動作でき、
    前記割り込みコントローラは、
    割り込み要因ごとに、割り込むCPUを一つまたは複数設定可能な割り込みCPU設定レジスタと、
    前記割り込み要因ごとに前記性能モードで実行するか前記安全モードで実行するかのモードを設定可能な割り込みモード設定レジスタとを有し、
    現在実行中のモードが前記性能モードの場合に、選択された割り込み要因のモードが前記性能モードの場合には、その割り込み要求を前記CPUに出力することを特徴とする計算機システム。
  6. 少なくとも2つのCPUと、
    前記CPUへの割り込みを行うプログラミング可能な割り込みコントローラと、
    前記CPUの出力を比較する比較器とを有する計算機システムであって、
    前記CPUがそれぞれ異なる処理を実行して性能を向上させる性能モードと、
    前記CPUが同じ処理を実行して結果を前記比較器で照合することにより故障を検出する安全モードとを切り替えて動作でき、
    前記割り込みコントローラは、
    割り込み要因ごとに、割り込むCPUを一つまたは複数設定可能な割り込みCPU設定レジスタと、
    前記割り込み要因ごとに前記性能モードで実行するか前記安全モードで実行するかのモードを設定可能な割り込みモード設定レジスタとを有し、
    現在実行中のモードが前記性能モードの場合に、選択された割り込み要因のモードが前記安全モードの場合には、その割り込み要求を前記CPUに出力するのを抑止し、割り込むCPUの全てが受け付け可能となったら、前記CPUの処理を中断させ、動作モードを前記性能モードから前記安全モードに切り替え、前記割り込み要求を前記CPUに出力することを特徴とする計算機システム。
  7. 少なくとも2つのCPUと、
    前記CPUへの割り込みを行うプログラミング可能な割り込みコントローラと、
    前記CPUの出力を比較する比較器とを有する計算機システムであって、
    前記CPUがそれぞれ異なる処理を実行して性能を向上させる性能モードと、
    前記CPUが同じ処理を実行して結果を前記比較器で照合することにより故障を検出する安全モードとを切り替えて動作でき、
    前記割り込みコントローラは、
    割り込み要因ごとに、割り込むCPUを一つまたは複数設定可能な割り込みCPU設定レジスタと、
    前記割り込み要因ごとに前記性能モードで実行するか前記安全モードで実行するかのモードを設定可能な割り込みモード設定レジスタとを有し、
    現在実行中のモードが前記安全モードの場合に、選択された割り込み要因のモードが前記性能モードの場合には、その割り込み要求を前記CPUに出力するのを抑止し、割り込むCPUが受け付け可能となったら、前記CPUの処理を中断させ、動作モードを前記安全モードから前記性能モードに切り替え、前記割り込み要求を前記CPUに出力することを特徴とする計算機システム。
  8. 少なくとも2つのCPUと、
    前記CPUへの割り込みを行うプログラミング可能な割り込みコントローラと、
    前記CPUの出力を比較する比較器とを有する計算機システムであって、
    前記CPUがそれぞれ異なる処理を実行して性能を向上させる性能モードと、
    前記CPUが同じ処理を実行して結果を前記比較器で照合することにより故障を検出する安全モードとを切り替えて動作でき、
    前記割り込みコントローラは、
    割り込み要因ごとに、割り込むCPUを一つまたは複数設定可能な割り込みCPU設定レジスタと、
    前記割り込み要因ごとに前記性能モードで実行するか前記安全モードで実行するかのモードを設定可能な割り込みモード設定レジスタとを有し、
    現在実行中のモードが前記安全モードの場合に、選択された割り込み要因のモードが前記安全モードの場合には、割り込むCPUの全てが受け付け可能であればその割り込み要求を前記CPUに出力し、それ以外の場合には前記割り込み要求を出力しないことを特徴とする計算機システム。
  9. 請求項5〜8のいずれか一項記載の計算機システムにおいて、
    前記割り込みコントローラは、前記割り込み要因ごとに優先レベルを設定可能な割り込み要求レベル設定レジスタを有し、
    前記CPUは、割り込み要求をマスクするレベルを設定可能なステータスレジスタを有し、
    前記割り込み要因の優先レベルが前記CPUの割り込み要求マスクレベルを超えた場合に、前記CPUが割り込みを受け付け可能となることを特徴とする計算機システム。
  10. 請求項9記載の計算機システムにおいて、
    前記CPUが有する前記ステータスレジスタには、モード切り替えを行ったかどうかを示すモード切り替えビットを持ち、
    前記モード切り替えビットを、
    前記モード切り替えが行われた時に、前記モード切り替えを行ったことを示す値に設定し、
    前記割り込みを受け付けた時に、前記モード切り替えを行わなかったことを示す値に設定し、
    前記割り込みから復帰した時に、前記モード切り替えビットが、前記モード切り替えを行ったことを示す値である場合には、前記モード切り替えを実行することを特徴とする計算機システム。
JP2010109870A 2010-05-12 2010-05-12 計算機システム Active JP5512383B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010109870A JP5512383B2 (ja) 2010-05-12 2010-05-12 計算機システム
EP11164649.3A EP2386960B1 (en) 2010-05-12 2011-05-03 Computer system
CN201110120268.5A CN102360311B (zh) 2010-05-12 2011-05-09 计算机系统
US13/106,788 US8589612B2 (en) 2010-05-12 2011-05-12 Computer system including an interrupt controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010109870A JP5512383B2 (ja) 2010-05-12 2010-05-12 計算機システム

Publications (2)

Publication Number Publication Date
JP2011238082A JP2011238082A (ja) 2011-11-24
JP5512383B2 true JP5512383B2 (ja) 2014-06-04

Family

ID=44117683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010109870A Active JP5512383B2 (ja) 2010-05-12 2010-05-12 計算機システム

Country Status (4)

Country Link
US (1) US8589612B2 (ja)
EP (1) EP2386960B1 (ja)
JP (1) JP5512383B2 (ja)
CN (1) CN102360311B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101282139B1 (ko) * 2006-09-11 2013-07-04 삼성전자주식회사 별도 버튼을 이용하여 성능모드 변경이 가능한컴퓨터시스템 및 그 제어방법
JP5788022B2 (ja) * 2011-12-19 2015-09-30 株式会社キトー フェイルセーフな電子制御装置
US8954794B2 (en) 2012-06-05 2015-02-10 Infineon Technologies Ag Method and system for detection of latent faults in microcontrollers
CN103139033B (zh) * 2013-02-06 2016-04-06 浙江中控技术股份有限公司 单主通信控制总线主设备冗余切换方法
US9747184B2 (en) * 2013-12-16 2017-08-29 Artesyn Embedded Computing, Inc. Operation of I/O in a safe system
JP6326835B2 (ja) * 2014-01-31 2018-05-23 大日本印刷株式会社 情報処理装置、icカード、コマンド処理方法、及びコマンド処理プログラム
US10002056B2 (en) * 2015-09-15 2018-06-19 Texas Instruments Incorporated Integrated circuit chip with cores asymmetrically oriented with respect to each other
DE102017204691B3 (de) 2017-03-21 2018-06-28 Audi Ag Steuervorrichtung zum redundanten Ausführen einer Betriebsfunktion sowie Kraftfahrzeug
CN108415790B (zh) * 2018-01-30 2021-02-26 河南职业技术学院 计算机故障检测方法及计算机故障检测装置
JP2020160720A (ja) * 2019-03-26 2020-10-01 株式会社エヌエスアイテクス 故障検出装置
CN111752877A (zh) * 2019-03-27 2020-10-09 阿里巴巴集团控股有限公司 一种处理器及其中的中断控制器
CN110457243B (zh) * 2019-07-30 2021-04-06 西安理工大学 一种可扩展多输出中断控制器
CN112559403B (zh) * 2019-09-25 2024-05-03 阿里巴巴集团控股有限公司 一种处理器及其中的中断控制器
US11846973B1 (en) * 2022-11-08 2023-12-19 Cirrus Logic Inc. Systems and methods for context-dependent multicore interrupt facilitation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US5613126A (en) * 1994-05-31 1997-03-18 Advanced Micro Devices, Inc. Timer tick auto-chaining technique within a symmetrical multiprocessing system
US5568649A (en) * 1994-05-31 1996-10-22 Advanced Micro Devices Interrupt cascading and priority configuration for a symmetrical multiprocessing system
US5918057A (en) * 1997-03-20 1999-06-29 Industrial Technology Research Institute Method and apparatus for dispatching multiple interrupt requests simultaneously
US6032245A (en) * 1997-08-18 2000-02-29 International Business Machines Corporation Method and system for interrupt handling in a multi-processor computer system executing speculative instruction threads
JP2004127163A (ja) * 2002-10-07 2004-04-22 Renesas Technology Corp マルチプロセッサシステム
JP2006119802A (ja) * 2004-10-20 2006-05-11 Hitachi Ltd マルチプロセッサシステム
JP4168403B2 (ja) * 2004-12-21 2008-10-22 日本電気株式会社 フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム
US7610425B2 (en) * 2005-08-22 2009-10-27 Sun Microsystems, Inc. Approach for managing interrupt load distribution
JP2008065713A (ja) * 2006-09-08 2008-03-21 Canon Inc マルチプロセッサシステム及び割込み制御方法
JP2008176360A (ja) * 2007-01-16 2008-07-31 Renesas Technology Corp マルチプロセッサシステム
US20080244138A1 (en) * 2007-03-29 2008-10-02 Seiko Epson Corporation Microcomputer
US7962679B2 (en) * 2007-09-28 2011-06-14 Intel Corporation Interrupt balancing for multi-core and power
US7991933B2 (en) * 2008-06-25 2011-08-02 Dell Products L.P. Synchronizing processors when entering system management mode
JP5322567B2 (ja) * 2008-10-02 2013-10-23 ルネサスエレクトロニクス株式会社 データ処理システム及び半導体集積回路
JP4897851B2 (ja) * 2009-05-14 2012-03-14 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システム及びコンピュータ・システムの制御方法

Also Published As

Publication number Publication date
EP2386960A2 (en) 2011-11-16
JP2011238082A (ja) 2011-11-24
EP2386960B1 (en) 2013-11-27
EP2386960A3 (en) 2012-12-05
CN102360311A (zh) 2012-02-22
US8589612B2 (en) 2013-11-19
US20110283033A1 (en) 2011-11-17
CN102360311B (zh) 2015-09-23

Similar Documents

Publication Publication Date Title
JP5512383B2 (ja) 計算機システム
EP2642392B1 (en) Semiconductor integrated circuit device and system using the same
US8433955B2 (en) Multi-core microcontroller having comparator for checking processing result
US20070277023A1 (en) Method For Switching Over Between At Least Two Operating Modes Of A Processor Unit, As Well Corresponding Processor Unit
US10657039B2 (en) Control device for a motor vehicle
US8090983B2 (en) Method and device for performing switchover operations in a computer system having at least two execution units
US8639905B2 (en) Microcontroller and electronic control unit
CN102640119B (zh) 用于运行计算单元的方法
CN104346306B (zh) 高完整性dma操作的系统和方法
EP3746894B1 (en) Determination of a match between data values stored by several arrays
JP5537140B2 (ja) 安全制御装置、及びその安全制御プログラム
JP2015153282A (ja) マルチプロセッサシステム
JP4876093B2 (ja) 制御装置のタスク管理装置、及び、制御装置のタスク管理方法
WO2005091152A1 (ja) データ転送制御システム
JP5978873B2 (ja) 電子制御装置
JP6645467B2 (ja) マイクロコンピュータ
JP7092590B2 (ja) 保安装置
WO2019188172A1 (ja) 情報処理装置
US20100268923A1 (en) Method and device for controlling a computer system having at least two groups of internal states
JPH01114942A (ja) 割込み制御方式
JPS61160143A (ja) エミユレ−シヨン方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140213

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: 20140304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140326

R150 Certificate of patent or registration of utility model

Ref document number: 5512383

Country of ref document: JP

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