JP2008146188A - 集積回路 - Google Patents
集積回路 Download PDFInfo
- Publication number
- JP2008146188A JP2008146188A JP2006330122A JP2006330122A JP2008146188A JP 2008146188 A JP2008146188 A JP 2008146188A JP 2006330122 A JP2006330122 A JP 2006330122A JP 2006330122 A JP2006330122 A JP 2006330122A JP 2008146188 A JP2008146188 A JP 2008146188A
- Authority
- JP
- Japan
- Prior art keywords
- error
- reset
- circuit
- cpu
- signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Retry When Errors Occur (AREA)
Abstract
【課題】簡素、かつ、訂正可能な範囲が広く、リセットによるピーク電流が少ない、リトライ制御を用いた集積回路のエラー訂正技術を提供する。
【解決手段】CPU、リトライ制御部、周辺回路など、集積回路に含まれるモジュール内の任意のフリップフロップに発生するエラーを検出する回路から出力されるエラー検出信号をデコードする、高信頼化されたエラー判定リセット回路11によって、各モジュールへのリセット信号および例外処理信号の出力方法を指定し、ピーク電流が少なく高速なリセット処理を行い、リトライ制御によってエラー発生前の命令から再実行することで、集積回路に発生したエラーを訂正する。
【選択図】図1
【解決手段】CPU、リトライ制御部、周辺回路など、集積回路に含まれるモジュール内の任意のフリップフロップに発生するエラーを検出する回路から出力されるエラー検出信号をデコードする、高信頼化されたエラー判定リセット回路11によって、各モジュールへのリセット信号および例外処理信号の出力方法を指定し、ピーク電流が少なく高速なリセット処理を行い、リトライ制御によってエラー発生前の命令から再実行することで、集積回路に発生したエラーを訂正する。
【選択図】図1
Description
本発明は、集積回路のエラー訂正技術において、命令リトライによるCPUのエラー訂正および集積回路のリセット方式に関するものである。
自動車におけるエックス・バイ・ワイヤ(X−by−Wire)技術や、より高速で安全な鉄道システムなど、電子機器による制御システムが必要不可欠な社会において、それらシステムの中核を成す集積回路に要求される事項の一つに、安全性を保障する高信頼化が挙げられる。このようなシステムに用いられる集積回路には中央演算処理装置(Central Processing Unit、以下CPUと表記)が内蔵されることが多く、このCPUはシステムの処理の中枢となるものであり、システムが正常かつ安全に動作するためには、CPUが誤動作なく確実に動作する必要がある。
しかしCPUは宇宙線等の影響で、CPUに含まれるフリップフロップ(Flip−Flop、以下FFと表記)等の記憶素子のビットデータが一時的に反転するエラーにより誤動作し、命令が正常に実行されないことがある。このエラーを訂正するために、CPUのバックアップ手段を備え、CPUにエラーが発生した時は集積回路をリセットさせ、バックアップ手段により命令をリトライして復帰させる手法が考案されている。更に、バックアップ手段に発生したエラーをも訂正する方式が検討されている。
例えば特許文献1では、CPU内レジスタファイルの値を遅らせて保持するバックアップ用レジスタファイルを設け、バックアップ用レジスタファイルにエラーが発生した場合は、別の診断プロセッサがフラグ情報を使ってエラー箇所を判定して集積回路をリセットし、CPU内レジスタファイルとバックアップ用レジスタファイルを復帰させる手法が提案されている。
また、動作中の集積回路にリセットをかけると、集積回路内に一度にピーク電流が流れることとなり電圧が不安定になって、エラーを訂正できずに誤作動に至る恐れもあるが、特許文献2では、集積回路内の各モジュールへのリセットタイミングをずらして順番にリセットさせ、ピーク電流を抑える手法が提案されている。
特開平7−219796号公報
特開2005−157883号公報
ところで、前記のようなエラー検出後のリトライによる訂正方法について、本発明者が検討した結果、以下のようなことが明らかとなった。
特許文献1に開示されている技術では、バックアップ用の回路が故障したことを判定してCPU及びバックアップ部分を訂正するための診断プロセッサが別途必要になる。そのため、自動車など設置面積、コスト、消費電力などに制約のあるシステムへ適用することが困難である。また、集積回路内のCPUとバックアップ用回路以外の故障については言及されておらず、様々な周辺回路をワンチップ上に組み込んだ集積回路全体のエラーをどのように訂正するかについては記載されていない。
また特許文献2に開示されている技術では、モジュール数の増大に比例してリセットが完了するまでの時間が延びるため、厳しいリアルタイム性が要求されるX−by−Wire技術では、エラー訂正のために長いリセット期間を設けることが困難である。更に、通常のパワーオンリセットなどによるリセット手段では、リセットされるFFとリセットされないFFの2種類が存在することがあり、パワーオンリセットでリセットされないFFにエラーが発生した場合、そのエラーを検出してもパワーオンリセットではリセットされずにエラーが残り続ける可能性が考えられる。
そこで、本発明の目的は、上記課題を解決するために、簡素、かつ、訂正可能な範囲が広く、リセットによるピーク電流が少ない、リトライ制御を用いた集積回路のエラー訂正技術を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
上記目的を達成するために、本発明では、レジスタファイルを持ちパイプライン動作を行うCPUと、周辺回路と、前記CPUおよび周辺回路内の任意のフリップフロップに発生したエラーを検出してエラー検出信号を出力するエラー検出回路を有する集積回路であって、前記エラー検出信号をデコードして前記CPUに対して第1のリセット信号と第1の例外処理信号を出力し、前記周辺回路に対して第2のリセット信号と第2の例外処理信号を出力するエラー判定リセット回路を有すること、前記エラー判定リセット回路は多重構成などにより高信頼化されていること、また、周辺回路としてCPUのエラーを検出すると命令を中止し、中止した前記命令のN(Nは整数)命令前のレジスタファイルの内容を保持する遅延レジスタファイルより前記レジスタファイルの内容を復帰させて前記CPUのリトライを行うリトライ制御部を有し、前記CPUでエラー発生時は前記エラー判定リセット回路から前記CPUに第1のリセット信号をアサートし、前記リトライ制御部に第2の例外処理信号をアサートし、前記リトライ制御部でエラー発生時は前記CPUに第1の例外処理信号をアサートし、前記リトライ制御部に第2のリセット信号をアサートすることによって、エラー訂正のためのリセット制御を行うこと、を特徴とするものである。
また更に、前記エラー判定リセット回路には、前記CPUまたは前記周辺回路でエラー発生時に前記エラー判定リセット回路が前記CPUと前記周辺回路に出力する前記第1のリセット信号、前記第2のリセット信号、前記第1の例外処理信号、前記第2の例外処理信号のアサート条件を設定する制御レジスタを有すること、前記CPUまたは前記周辺回路でエラー発生時に前記エラー検出信号をデコードしエラー情報として、集積回路の外部に出力するエラー情報ピンを有すること、を特徴とするものである。
また更に、レジスタファイルを持ちパイプライン動作を行うCPUや周辺回路などの回路モジュールと、前記回路モジュール内の任意のフリップフロップに発生したエラーを検出してエラー検出信号を出力するエラー検出回路を有する集積回路であって、前記エラー検出信号をデコードして前記回路モジュールに対してリセット信号を出力するエラー判定リセット回路と、集積回路の起動時にパワーオンリセット信号を出力するパワーオンリセット回路を有し、前記回路モジュール内の任意のフリップフロップは、パワーオンリセット時に初期化される第1のフリップフロップ群と、パワーオンリセット時に初期化されない第2のフリップフロップ群に分類され、前記回路モジュールに含まれる前記第1のフリップフロップ群には前記リセット信号と前記パワーオンリセット信号との論理和が第1のフリップフロップリセット信号として入力され、前記回路モジュールに含まれる前記第2のフリップフロップ群には前記第1のフリップフロップリセット信号と前記回路モジュールからのエラー検出信号との論理積が第2のフリップフロップリセット信号として入力されることを特徴とするものである。
特に、前記エラー判定リセット回路と、レジスタファイルを持ちパイプライン動作を行うCPUと、周辺回路と、前記CPUおよび周辺回路内の任意のフリップフロップに発生したエラーを検出するエラー検出回路と、前記エラー検出回路から出力されるエラー検出信号を、ワンチップの集積回路に収めたことを特徴とするものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
本発明によれば、リトライ制御部エラー時はその後のエラーによる復帰ができなくなる可能性を無くし、周辺回路エラー時は周辺回路を正常な状態に初期化でき、集積回路のエラーに対する稼働率を向上させることができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また以下では、特に断りの無い限り、信号値が“0”から“1”に変化することをアサート、“1”から“0”に変化することをネゲートと呼ぶ。
(実施の形態1)
図1は、本発明の実施の形態1における集積回路の一例を示したものである。
図1は、本発明の実施の形態1における集積回路の一例を示したものである。
図1に示す集積回路には、パイプライン動作するCPU(1)、周辺回路(12)、周辺回路(13)、および多重化により高信頼化されたエラー判定リセット回路(11)の各モジュールがある。CPU(1)、周辺回路(12)、周辺回路(13)からは、宇宙線等の影響で内部の記憶素子のビットデータが反転したエラーを検出するCPUエラー検出信号(3)、周辺エラー検出信号(50)、(53)が、それぞれ出力される。
エラー判定リセット回路(11)は、CPUエラー検出信号(3)、周辺エラー検出信号(50)、(53)によりどのモジュールでエラーが発生したかを判断し、エラー発生箇所に応じて、エラー訂正を行うためのCPUリセット信号(61)、周辺リセット信号(60)、(63)、およびエラー例外信号(77)、(70)を制御して出力するものである。更に、エラー判定リセット回路(11)内にエラーが発生した場合は自分自身で訂正ができるよう、三重化などによる多重化構造となっている。
図2に、この集積回路内にエラーが発生した時に、リセットと命令リトライにより集積回路の訂正を可能にする具体的な構成の例を示す。
CPU(1)は、CPUバス(9)を介して命令のリード、およびデータのリード、ライトを行い、プログラムを実行する。なお、本実施の形態におけるCPU(1)は、命令を読み込むIFステージ、命令を解読するDステージ、命令実行、およびCPUバス上にアドレス出力を行うEXステージ、CPUバスへのライトデータ出力およびCPUバスからのリードデータ入力を行うMAステージ、命令実行結果をレジスタへ書き戻すWBステージ、の5段パイプライン処理を行う。
リトライ制御部(2)は、集積回路を構成する周辺回路の一つであり、例えば、本発明者らが以前に出願した特願2006−006921号に記載されたエラー訂正方式によって実装できる。
リトライ制御部(2)は、IFステージにある命令のアドレスを示すPC(4)、IFステージにある命令の命令コード(5)、WBステージで書き戻し対象となるレジスタを指定するライト制御(6)、WBステージでレジスタに書き戻すライトデータ(7)、リトライ例外ルーチンへの分岐を要求するためのリトライ例外信号(8)、CPUバス(9)、をCPU(1)から入出力し、リトライ制御を行う。
周辺回路(13)は、CPUバス(9)を介してCPUにより制御されるモジュールである。
CPU(1)、リトライ制御部(2)、周辺回路(13)にはそれぞれ、モジュール内で発生したエラーを検出するエラー検出回路(3025)、(32)、(33)が内蔵されており、モジュール内でエラーを検出した時にそれぞれCPUエラー検出信号(3)、リトライ制御部エラー検出信号(52)、周辺エラー検出信号(53)の値を“1”にし、エラーが検出されずに正常動作している間は値を“0”にするものとする。これらのエラー検出回路は、例えば、本発明者らが以前に出願した特願2006−051477号に記載された故障検出回路生成方法によって実装できる。
図3に、図2に示したエラー判定リセット回路(11)の詳細な実装例を示す。
制御レジスタ(21)、(22)、(23)は、それぞれ5ビットのレジスタであり、CPUで実行されるプログラムからアクセスして設定値を決めることができるものである。
エラー判定リセット回路(11)に入力されたCPUエラー検出信号(3)、リトライ制御部エラー検出信号(52)、周辺エラー検出信号(53)と、制御レジスタ(21)、(22)、(23)から出力されたレジスタデータ(24)、(25)、(26)は、それぞれANDゲート(41)、(42)、(43)によって論理積がとられる。その結果、5ビットの制御信号(27)、(28)、(29)が生成される。
制御信号(27)は、CPU(1)のCPUエラー検出信号(3)とレジスタデータ(24)の論理積であるため、CPU(1)が正常動作中は5ビットとも“0”の値となり、CPU(1)にエラーが発生してCPUエラー検出信号(3)の値が“1”になるとレジスタデータ(24)の値となる。
同様に、制御信号(28)は、リトライ制御部(2)のリトライ制御部エラー検出信号(52)とレジスタデータ(25)の論理積であるため、リトライ制御部(2)が正常動作中は5ビットとも“0”の値となり、リトライ制御部(2)にエラーが発生してリトライ制御部エラー検出信号(52)の値が“1”になるとレジスタデータ(25)の値となる。更に制御信号(29)は、周辺回路(13)の周辺エラー検出信号(53)とレジスタデータ(26)の論理積であるため、周辺回路(13)が正常動作中は5ビットとも“0”の値となり、周辺回路(13)にエラーが発生して周辺エラー検出信号(53)の値が“1”になるとレジスタデータ(26)の値となる。
各制御信号(27)、(28)、(29)の最下位ビット[0]同士をORゲート(44)にて論理和をとりFF(81)に入力し、CPUエラー例外信号(72)として出力する。同様に図示したように、ビット[1]からビット[4]までをそれぞれORゲートで論理和を取りFFに入力し、リトライ制御部エラー例外信号(71)、周辺リセット信号(63)、リトライ制御部リセット信号(62)、CPUリセット信号(61)を出力する。
ORゲート(49)は、CPUエラー検出信号(3)、リトライ制御部エラー検出信号(52)、周辺エラー検出信号(53)の論理和によりエラーが起こった時に“1”の値をエラー情報信号(76)として出力し、集積回路外部の装置に知らせるものである。
図3ではエラー情報信号(76)は1ビットとして示しているが、エラー検出信号をORゲートでまとめずに別々に出力する構成としても良い。
図4の表に、図3で示した制御レジスタ(21)、(22)、(23)の設定例を示す。
この設定では、エラーが無い場合と、CPU(1)、リトライ制御部(2)、周辺回路(13)のいずれかにエラーが発生した場合について記載している。
入力信号となるCPUエラー検出信号(3)、リトライ制御部エラー検出信号(52)、周辺エラー検出信号(53)の値が全て“0”の時はエラー無しとなり、図3のANDゲート(41)、(42)、(43)によって、出力信号の値は全て“0”となる。
エラーが起こった場合に、エラー判定リセット回路からの出力信号をどのように変化させるかは、集積回路の使用者が決定する。図4では、CPU(1)にエラーが起こった場合は、CPU(1)と周辺回路(13)をリセットさせ、リトライ制御部(2)に例外処理をさせるため、5ビットの設定値“10101”を制御レジスタ(21)に設定する。リトライ制御部(2)にエラーが起こった場合は、リトライ制御部(2)をリセットさせ、CPU(1)に例外処理を起こさせるため、5ビットの設定値“01010”を制御レジスタ(22)に設定する。周辺回路(13)にエラーが起こった場合は、周辺回路(13)をリセットさせるため、5ビットの設定値“00100”を制御レジスタ(23)に設定する。
つまり、図4の表のように制御レジスタの値を変えることで、各モジュールでエラーが発生した場合のリセット制御方法を柔軟に変更することができる。
なお、この例では集積回路に含まれるモジュールに与えるリセット信号と例外信号の数から制御レジスタを5ビットとして説明したが、リセット信号と例外信号の数に応じてビット数を増減させても良い。
図5は、リトライ制御部(2)の詳細な実装例である。
エラーマスク回路(2001)は、PC(4)、命令コード(5)、ライト制御(6)、ライトデータ(7)のエラーをCPUエラー例外信号(72)を用いてマスクし、命令コード1(2010)、PC1(2011)、ライト制御1(2014)、ライトデータ1(2015)、にそれぞれ出力する。
命令キュー(2003)は、命令コード1(2010)を遅延させ命令コード2(2022)を出力する。また命令キュー(2003)は、PC1(2011)を遅延させPC2(2013)を出力する。
ライトキュー(2004)は、ライト制御1(2014)、ライトデータ1(2015)、を遅延させ、ライト制御2(2016)、ライトデータ2(2017)、にそれぞれ出力する。
遅延レジスタファイル(2007)は、CPUの汎用レジスタや制御レジスタ、フラグレジスタ等を含むレジスタファイルのレプリカであり、リトライに備え過去のレジスタファイルの内容を保持する。遅延レジスタファイル(2007)へは、ライト制御2(2016)が示すレジスタに、ライトデータ2(2017)のデータがライトされる。また、遅延レジスタファイル(2007)からは、リード制御1(2020)が示すレジスタの内容がリードデータ1(2021)に、それぞれ読み出される。リトライ制御部リセット信号(62)がアサートされると、遅延レジスタファイルは予め指定された値に初期化される。
リトライステートマシン(2002)は、リトライ制御に必要なステートを保持し、各ステート間の遷移は、CPUエラー例外信号(72)、命令コード2(2022)によって決定される。リトライ制御部リセット信号(62)がアサートされた時は予め指定された初期状態に遷移する。また、リトライステートマシンのステートに対応して、リトライ例外信号(8)がアサートされる。
命令キュー(2003)、遅延レジスタファイル(2007)は、特定のアドレスにマッピングされ、CPUバス(9)とCPUバスIF(2008)を介してCPUからアクセスできる。命令キュー(2003)からはPC2(2013)を、遅延レジスタファイル(2007)からは、任意のレジスタの内容を読み出すことができる。
エラー検出回路(32)は、図5に破線で示した、各回路ブロックからのエラー検出信号(91)、(92)、(93)、(94)、(95)、(96)を論理和により集約したものをリトライ制御部エラー検出信号(52)に出力するものである。この構成により、リトライ制御部エラー検出信号(52)は、リトライ制御部(2)内に含まれる任意の回路ブロックのうちひとつでもエラーが発生した時に値が“1”となる。
図6は、CPU(1)における、PC(4)、命令コード(5)、ライト制御(6)、ライトデータ(7)、CPUエラー検出信号(3)の出力部、およびエラーマスク回路(2001)の詳細な実装例である。
FF(3001)、FF(3002)、FF(3003)、FF(3004)、からそれぞれ出力された信号1(3011)、信号2(3012)、信号3(3013)、信号4(3014)は、それぞれ組み合わせ回路CL1(3021)、CL2(3022)、CL3(3023)、CL4(3024)を経由してそれぞれ、PC(4)、命令コード(5)、ライト制御(6)、ライトデータ(7)、となる。
エラー検出回路(3025)は、FF(3001)、FF(3002)、FF(3003)、FF(3004)、およびCPU内の任意のFF(3005)の出力である、信号1(3011)、信号2(3012)、信号3(3013)、信号4(3014)、信号n(3015)、をそれぞれ入力し、各信号のどれかひとつからでもエラーを検出したら、CPUエラー検出信号(3)の値が“1”になる。
例外処理ステートマシン(35)は、リトライ制御部リセット信号(62)とリトライ制御部エラー例外信号(71)の値によって、予め決められた例外処理を行う回路である。
FF(3031)、FF(3032)、FF(3033)、FF(3034)は、それぞれPC(4)、命令コード(5)、ライト制御(6)、ライトデータ(7)、を入力し、それぞれPC0(3041)、命令コード0(3042)、ライト制御0(3043)、ライトデータ0(3044)を出力する。PC0(3041)、命令コード0(3042)、ライト制御0(3043)、ライトデータ0(3044)はそれぞれ、マスク論理M1(3051)、M2(3052)、M3(3053)、M4(3054)を経由して、PC1(2011)、命令コード1(2010)、ライト制御1(2014)、ライトデータ1(2015)となる。マスク論理M1(3051)、M2(3052)、M3(3053)、M4(3054)は、CPUエラー例外信号(72)の値が“1”の時、PC1(2011)、命令コード1(2010)、ライト制御1(2014)、ライトデータ1(2015)をそれぞれ無効な値である“0”にする。例えば命令コード1(2010)は、CPUエラー例外信号(72)の値が“1”の時、何も処理を行わないNOP(No Operation)命令に対応するコードに変換される。以上の構成にて、CPUからリトライ制御部へのエラー伝播を抑止し、リトライ制御部の誤動作を防止できる。
図7は、リトライステートマシン(2002)のステート遷移図である。リトライステートマシン(2002)は、初期化を示すRESETステート(6000)、CPU(1)が通常の命令を実行中であること示すNORMALステート(6001)、CPU(1)がリトライ例外ルーチン処理中であることを示すRETRYステート(6002)の3ステートからなる。リトライステートマシンの出力であるリトライ例外信号(8)の値は、RESETステート(6000)とNORMALステート(6001)では“0”、RETRYステート(6002)では“1”となる。
各ステート間の遷移条件として、まず、リトライ制御部リセット信号(62)=“1”の時は全てRESETステート(6000)へ遷移する。CPUエラー例外信号(72)=“1”の時、NORMALステート(6001)からRETRYステート(6002)へ遷移し、命令コード2(2022)がRTE命令(例外ルーチンからの復帰命令)以外の時はRETRYステート(6002)に留まり、RTE命令の時はNORMALステート(6001)へ遷移する。なお、リトライステートマシン(2002)の初期ステートはRESETステート(6000)とする。
リトライステートマシン(2002)がRETRYステート(6002)の時、CPU内の状態を正常に更新するためのリトライ例外ルーチンを実行する。
図8は、例外処理ステートマシン(35)のステート遷移図である。例外処理ステートマシン(35)は、初期化を示すRESETステート(6100)、リトライ制御部エラー例外処理が起こっていない状態を示すNORMALステート(6101)、リトライ制御部のリセット終了を待つWAITステート(6102)、リトライ制御部(2)が復帰中であることを示すRECOVERステート(6103)の、4ステートからなる。
各ステート間の遷移条件として、まず、CPUリセット信号(61)=“1”の時は全てRESETステート(6100)へ遷移する。NORMALステート(6101)にて、リトライ制御部リセット信号(62)=“1”かつリトライ制御部エラー例外信号(71)=“1”の時、WAITステート(6102)へ遷移する。WAITステート(6102)にて、リトライ制御部リセット信号(62)=“1”のままである間はWAITステート(6102)に留まるが、リトライ制御部リセット信号(62)=“0”になると、RECOVERステート(6103)へ遷移し、命令コード2(2022)がRTE命令以外の時はRECOVERステート(6103)に留まり、RTE命令の時はNORMALステート(6101)へ遷移する。なお、例外処理ステートマシン(35)の初期ステートはRESETステート(6100)とする。
例外処理ステートマシン(35)がRECOVERステート(6102)の時、リトライ制御部内の状態を正常に更新するためのリトライ制御部エラー例外ルーチンを実行する。
図9は、命令キュー(2003)の詳細図である。命令コード1(2010)は1段のFIFO(7002)によって遅延され、リトライステートマシン(2002)のステート遷移用の命令コード2(2022)に出力される。また、PC1(2011)は4段のFIFO(7003)によって遅延され、PC2(2013)に出力される。FIFO(7003)はリトライ例外信号(8)のアサートによって更新が抑止され、ネゲートによって全ての内容がクリアされる。
図10は、ライトキュー(2004)の詳細図である。ライト制御1(2014)、ライトデータ1(2015)、はそれぞれ1段のFIFO(8001)、(8002)によって遅延され、ライト制御2(2016)、ライトデータ2(2017)、にそれぞれ出力される。FIFO(8001)、(8002)はリトライ例外信号(8)のアサートによって内容が無効化される。
図11は、リトライ例外ルーチンのフローチャートである。最初に、ステップ(1001)にて、PC2(2013)を読み出しスタックにプッシュする。次に、ステップ(1002)にて遅延レジスタファイルの内容をCPU内レジスタファイルに転送する。最後に、ステップ(1003)にてRTE命令にて例外処理から復帰する。ステップ(1001)にて、PC2(2013)をスタックにプッシュしていることから、RTE命令による戻り先はPC2(2013)が示すアドレスとなる。
図12は、リトライ制御部エラー例外ルーチンのフローチャートである。最初に、ステップ(1101)にて、現在のPC(4)にある命令を実行する。次に、ステップ(1102)にてリトライ制御部リセット信号(62)を監視し、ステップ(1103)にて、リトライ制御部のリセットが終了するまで待つ。リトライ制御部のリセット終了後、ステップ(1104)にて、現在実行した次の命令であるPC+4を読み出しスタックにプッシュする。次に、ステップ(1105)にてCPU内レジスタファイルの中身を遅延レジスタファイルに転送する。最後に、ステップ(1106)にてRTE命令にて例外処理から復帰する。ステップ(1104)にて、PC+4をスタックにプッシュしていることから、RTE命令による戻り先はリトライ制御部エラー例外ルーチンの実行前に最後に実行されたアドレスの次のアドレスとなる。
図13は、以上説明した本発明の実施の形態1におけるリセットとリトライ動作例の一例を示す波形図であり、上段から順にCPUのパイプライン動作、リトライ制御部状態、エラー判定リセット回路の入出力信号、ステートマシンの状態を示す。
まず、サイクル1〜6まで正常に命令が進み、命令コード、命令コード1、命令コード2、PC、PC1、PC2、ライト制御、ライト制御1、ライト制御2、ライトデータ、ライトデータ1、ライトデータ2、遅延レジスタファイル、の各内容が更新されていく。
なお、図13中のこれらの信号、および状態の表記は、命令番号に対応させている。命令コード、命令コード1、命令コード2、では、“1”は命令1の命令コードを示している。また、PC、PC1、PC2、では、“1”は命令1に対応したPC、すなわち命令1のアドレスを示している。また、ライト制御、ライト制御1、ライト制御2、では、“1”は命令1のライトバック対象のレジスタ番号を示している。また、ライトデータ、ライトデータ1、ライトデータ2、では、“1”は命令のレジスタへのライトバックデータを示す。また、遅延レジスタファイルでは、“1”は命令1の実行完了後のレジスタ内容が格納されていることを示す。
次に、サイクル7にて、CPU内に含まれるあるFFにエラーが発生し、CPUエラー検出信号がアサートされる。ここで、エラーにより誤動作の可能性があるパイプラインステージをハッチングで示している。
次に、サイクル8にて、CPUリセット信号、周辺リセット信号、CPUエラー例外信号がアサートされる。同サイクルで、CPUエラー例外信号のアサートにより、リトライステートマシンがNORMALステートからRESETステートに遷移し、リトライ例外信号がアサートされる。また同サイクルで、例外処理ステートマシンがNORMALステートからRESETステートに遷移する。また、CPUはCPUエラー例外信号のアサートを受け、命令7を中止し、リトライ例外ルーチンへと分岐する。なお、本実施の形態におけるCPUは、リトライ例外がアサートされた時にパイプラインのDステージにある命令を中止し、例外ルーチンに分岐する。さらに、リトライ例外は最優先例外とし、リトライ例外処理中は、リトライ例外を含むすべての例外を受け付けない。
次に、サイクルmからリトライ例外ルーチンが開始され、図11にて説明した処理を実行する。リトライ例外ルーチンでは、PC2から命令3のアドレスを読み出し、それをスタックにプッシュし、CPU内レジスタファイルには、遅延レジスタファイルに格納されている命令2の実行完了状態の内容が転送される。
このCPUのリセットとリトライ例外ルーチンにより、CPU内に発生したエラーが取り除かれ、エラー発生前の状態に訂正されたことになる。
次に、サイクルnにて、例外処理ルーチンから復帰する命令であるRTE命令が読み出される。サイクルn+2にて命令コード2にRTEの命令コードが出力され、リトライステートマシンがRETRYステートからNORMALステートに遷移する。
次に、RTE命令の実行を受けたことにより、サイクルoにて、命令3から命令を再実行する。
図13に説明した通り、CPUにエラーが発生したことを検出してCPUと周辺回路のみをリセットさせ、CPUレジスタの内容をエラーにより誤動作する可能性がある命令範囲より以前の命令実行完了状態に復帰させ、エラーにより誤動作した可能性がある命令範囲の先頭から命令をリトライし、集積回路のエラーを訂正することができる。
図14は、リトライ制御部にエラーが発生した場合の動作の一例を示す波形図である。
図13と同様に、まずサイクル1〜6まで正常に命令が進んでいく。
次に、サイクル7にて、リトライ制御部内に含まれるあるFFにエラーが発生し、リトライステートマシンが不正な状態となり、リトライ制御部エラー検出信号がアサートされる。ここで、エラーにより不正となったステートをハッチングで示している。
次に、サイクル8にて、リトライ制御部リセット信号、リトライ制御部エラー例外信号がアサートされる。同サイクルで、リトライ制御部リセット信号のアサートにより、リトライステートマシンがNORMALステートからRESETステートに遷移し、遅延レジスタファイルもリセットされる。また同サイクルで、例外処理ステートマシンがNORMALステートからWAITステートに遷移する。
サイクル9にて、リトライ制御部リセット信号のネゲートを受け、例外処理ステートマシンがWAITステートからRECOVERステートに遷移する。なお、本実施の形態におけるCPUは、例外処理ステートマシンがRECOVERステートに遷移したことにより、命令7の実行を待ってから、リトライ制御部エラー例外ルーチンへと分岐する。
次に、サイクルxからリトライ制御部エラー例外ルーチンが開始され、図12にて説明した処理を実行する。リトライ制御部エラー例外ルーチンでは、リトライ制御部のリセット終了後、CPU内レジスタファイルの内容が遅延レジスタファイルに転送される。ここでは、リトライ制御部エラー例外ルーチンで実行されるサイクルxからyの間のCPU内レジスタファイルの値が遅延レジスタファイルに転送されることになる。
このリトライ制御部のリセットとリトライ制御部エラー例外ルーチンにより、リトライ制御部内に発生したエラーが取り除かれ、遅延レジスタファイルに正しいCPU内レジスタファイルの値が転送され、正常な状態に更新されたことになる。
次に、サイクルyにて、例外処理ルーチンから復帰する命令であるRTE命令が読み出される。サイクルy+2にて命令コード2にRTEの命令コードが出力され、リトライステートマシンがRETRYステートからNORMALステートに遷移する。
次に、RTE命令の実行を受けたことにより、サイクルzにて、命令8から命令を実行する。
図14に説明した通り、リトライ制御部にエラーが発生したことを検出してリトライ制御部のみをリセットさせ、遅延レジスタファイルの内容を正しい状態に更新させ、集積回路のエラーを訂正することができる。
図15は、リトライ制御部以外の周辺回路にエラーが発生した場合の動作の一例を示す波形図である。
なお、この周辺回路は、内部に制御レジスタなどを特に持たず、エラー発生時にリセットを行えば正常な初期状態に戻る回路であり、エラーが発生してもCPUやリトライ制御部に影響を与えず、集積回路が致命的な状態にならない回路を想定している。
図13、図14と同様に、まずサイクル1〜6まで正常に命令が進んでいく。
次に、サイクル7にて、周辺回路内に含まれるあるFFにエラーが発生し、周辺エラー検出信号がアサートされる。
次に、サイクル8にて、周辺リセット信号がアサートされる。これにより、周辺回路は正常な初期状態となり、エラーが訂正される。
次に、サイクル10にて周辺回路のエラーが取り除かれたことを受け、周辺エラー検出信号がネゲートされ、続くサイクル11にて周辺リセット信号がネゲートされる。
この周辺回路は、CPUやリトライ制御部とは異なり、エラーが発生してもCPUやリトライ制御部に影響を与えないため、CPUは通常の命令を実行し続け、リトライ制御部のリトライステートマシンはNORMALステートのままである。
図15に説明した通り、周辺回路にエラーが発生したことを検出して周辺回路のみをリセットさせ、集積回路のエラーを訂正することができる。
これらのことにより、集積回路に含まれるCPU、リトライ制御部、周辺回路の任意のエラーを検出し、CPUエラー時は誤動作する可能性がある命令範囲より以前の命令実行完了状態に復帰させ、エラーにより誤動作した可能性がある命令範囲の先頭から命令をリトライすることが可能となる。更にリトライ制御部エラー時はその後のCPUエラーによる訂正が不可能となる可能性を無くすことができる。また更に周辺回路エラー時は周辺回路を正常な状態に訂正でき、集積回路のエラーに対する稼働率を向上させることができる。
更に、エラー判定リセット回路内の制御レジスタの値を変化させることで、エラー発生時に一度に全てのモジュールをリセットするのではなく、選択したモジュールのみリセットすることで、エラー訂正のためのリセットに要するピーク電流の削減と短いリセット期間の両立を可能とし、リトライ制御を素早く確実に行うことができる。
また更に、エラー判定リセット回路は、図示したように少数の制御レジスタ、ゲート、FFで構成され非常に回路規模が小さいため、三重化などによる多重化構成によって高信頼性を確保しても非常に低コストで済み、エラー判定リセット回路に発生するエラーはエラー判定リセット回路自身で訂正が可能となる。
また更に、エラー判定リセット回路の高信頼化については、多重化による手法ではなく、パリティや誤り訂正符号などの故障検出、故障訂正手法を用いても良い。
また更に、エラー判定リセット回路に設けたエラー情報を出力するピンにより、エラーが起こった時にその情報を外部装置で受信することができるので、例えば、集積回路で動作しているプログラムが通常ルーチンとは異なる動作をした場合に、それがどの部位のエラーの影響によるものかどうかを容易に判定でき、システムのデバッグや保守の効率を向上させることができる。
(実施の形態2)
図16は、本発明の実施の形態2における集積回路の一例を示したものである。
図16は、本発明の実施の形態2における集積回路の一例を示したものである。
図16に示す集積回路のCPU(1)には、CPU動作を制御するFF(101)、(102)、(103)、(104)があり、これらのFFに発生するエラーを検出するため、パリティ(201)、(202)、(203)、(204)がそれぞれのFFに付加されている。パリティによるエラー検出信号はORゲート(211)によって論理和がとられ、CPUエラー検出信号(3)となる。
なお、このパリティによるエラー検出は、例えば、本発明者らが以前に出願した特願2006−051477号に記載された故障検出回路生成方法によって実装できる。
また、FFのエラー検出にはパリティではなく、誤り訂正符号(Error Correcting Code、以下ECCと表記)や巡回冗長検査(Cyclic Redundancy Check、以下CRCと表記)など別の符号化手法を用いたり、FFを多重化して比較するなどの検出手法を用いたりしてもよい。
ここで、FF(101)、FF(102)は集積回路起動時のパワーオンリセットにより初期化を行うFFであり、FF(103)、FF(104)は、パワーオンリセットによる初期化が不要なFFであることが集積回路の仕様として予め決まっているものとする。
周辺回路(13)には、周辺回路の動作を制御するFF(105)、(106)があり、これらFFのエラーを検出するため、パリティ(205)、(206)がそれぞれのFFに付加されている。パリティによるエラー検出信号はORゲート(213)によって論理和がとられ、周辺エラー検出信号(53)となる。
ここで、FF(105)は集積回路起動時のパワーオンリセットにより初期化を行うFFであり、FF(106)は、パワーオンリセットによる初期化が不要なFFであることが、集積回路の仕様として予め決まっているものとする。
エラー判定リセット回路(11)は、実施の形態1で説明したように、CPUエラー検出信号(3)と周辺エラー検出信号(53)を入力とし、CPUリセット信号(61)、周辺リセット信号(63)を出力する。
パワーオンリセット回路(15)は、起動スイッチ(16)からの起動信号(303)のアサートを受けてパワーオンリセット信号(64)をアサートする回路である。
ここで、ORゲート(215)により、FFリセット信号(65)は、CPU(1)にエラーが発生したことによってアサートされるCPUリセット信号(61)またはパワーオンリセット信号(64)のいずれかがアサートされた時に値が“1”となる。更に、FFリセット信号(301)は、ANDゲート(212)により、FFリセット信号(65)とCPUエラー検出信号(3)の両方がアサートされた時に値が“1”となる。つまり、FF(101)とFF(102)は、パワーオンリセット信号(64)アサート時とCPUエラーによるCPUリセット信号(61)アサート時のいずれの時もリセットが行われる。一方、FF(103)とFF(104)は、CPUのエラーによるCPUエラー検出信号(3)アサート時かつCPUリセット信号(61)アサート時しかリセットされない。
同様にORゲート(216)により、FFリセット信号(66)は、周辺回路(13)にエラーが発生したことによってアサートされる周辺リセット信号(63)またはパワーオンリセット信号(64)のいずれかがアサートされた時に値が“1”となる。更に、FFリセット信号(302)は、ANDゲート(214)により、FFリセット信号(66)と周辺エラー検出信号(53)の両方がアサートされた時に値が“1”となる。つまり、FF(105)は、パワーオンリセット信号(64)アサート時と周辺回路エラーによる周辺リセット信号(63)アサート時のいずれの時もリセットが行われる。一方、FF(106)は、周辺回路のエラーによる周辺エラー検出信号(53)アサート時かつ周辺リセット信号(63)アサート時しかリセットされない。
すなわち、図16では、集積回路内でエラーが起こったモジュールおよび関連するモジュールをリセットする場合、各モジュールに含まれる全てのFFをリセットするのはエラーが起こったモジュールだけで良く、エラーの起こっていない他のモジュールはパワーオンリセットを流用し、設計者によって設計時に選択されたFFのみをリセットすれば良いことを示している。
これらのことにより、エラーが起こったモジュールについてはモジュール内に含まれる全てのFFをリセットし、エラーが起こっていないモジュールについては選択されたFFのみリセットすることで、エラー訂正のためのリセットに要するピーク電流の削減が可能となり、集積回路の電圧が不安定となる可能性を無くし、ピーク電流の影響による誤作動を無くすことができる。
(実施の形態3)
本発明における、低コスト、高信頼性を実現する集積回路は、様々なシステムへ組み込んで利用することが可能である。
本発明における、低コスト、高信頼性を実現する集積回路は、様々なシステムへ組み込んで利用することが可能である。
一例として、図17に、本発明における低コスト、高信頼性を実現する集積回路を自動車システムに適用する場合の事例を説明する。
図17の自動車(501)は、前輪(502)、(503)、後輪(504)、(505)、アクセルペダル(506)、ブレーキペダル(507)、ハンドル(508)、エンジン(510)などの機器と、電子制御ユニット(Electronic Control Unit、以下ECUと表記)として、エンジンECU(521)、ブレーキECU(522)、(523)、(524)、(525)、ステアECU(526)、(527)、統合ECU(528)を有しており、各ECUは車載ネットワーク(509)を介して相互に接続されている。
この自動車(501)は、アクセルペダル(506)からのアクセル制御信号(551)によってエンジンECU(521)を制御し、エンジン(510)を動作させ、前輪(502)、(503)を回転させることで走行する。このエンジンECU(521)を制御するのは、内蔵された集積回路(531)である。
また自動車(501)は、ハンドル(508)からのステア制御信号(553)によってステアECU(526)、(527)を制御し、前輪(502)、(503)の角度を変化させることで進行方向が変わる。これらステアECU(526)、(527)を制御するのは、内蔵された集積回路(536)、(537)である。
また自動車(501)は、ブレーキペダル(507)からのブレーキ制御信号(552)によってブレーキECU(522)、(523)、(524)、(525)を制御し、前輪(502)、(503)および後輪(504)、(505)の回転を止めることで、自動車(501)を停止する。これらブレーキECU(522)、(523)、(524)、(525)を制御するのは、内蔵された集積回路(532)、(533)、(534)、(535)である。
各ECUに内蔵された集積回路は、実施の形態1および実施の形態2で説明したように、集積回路内でエラーが発生しても訂正が可能なため、各ECUは高い稼働率をもって自動車(501)を正常に動作させ続けることができる。
しかし、集積回路内に一時的なエラーではなく、恒久的な故障が発生した場合は、リトライ制御を行っても訂正ができない。
そこで、統合ECU(528)は、このような恒久的な集積回路の故障時でも、自動車(501)の安全性を確保するために使用される。統合ECU(528)では、各ECUからのエラー情報信号(541)、(542)、(543)、(544)、(545)、(546)、(547)を受け取って集積回路(538)で処理し、その結果、非常ブレーキ信号を車載ネットワーク(509)に転送する。このとき、例えばステアECU(526)に故障が発生した場合は、ブレーキECU(522)、(523)、(524)、(525)に停止命令を送り、前輪(502)、(503)、後輪(504)、(505)の回転を止めて自動車(501)を緊急停止させることで、操舵不能などによる自動車事故を防ぐことができる。また別の例として、ブレーキECU(524)に故障が発生した場合は、ブレーキECU(524)に停止命令を送っても停止できない可能性があり、残り3つのブレーキECU(525)、(522)、(523)だけ停止させようとすると、かえって自動車(501)が左に旋回するなど、操舵が乱れる可能性が考えられるため、この場合は車載ネットワーク(509)を介してステアECU(526)、(527)に対し、右に旋回する命令を送ることで、自動車(501)の進行方向を保ったまま、安全に停止させることができる。
このように、本発明における集積回路を用いることで、非常に高信頼な電子制御システムを低コストに実現することが可能になる。
統合ECU自体に故障が発生するのを防ぐには、多重化などの手法を用いて統合ECUの信頼性を高めても良い。
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
本発明は、実施の形態3で説明したような自動車システムや、鉄道システム、その他産業システムなど一般に広く利用される集積回路のエラー訂正に幅広く適用可能である。
1…CPU、2…リトライ制御部、3…CPUエラー検出信号、4…PC、5…命令コード、6…ライト制御、7…ライトデータ、8…リトライ例外信号、9…CPUバス、11…エラー判定リセット回路、12、13…周辺回路、15…パワーオンリセット回路、16…起動スイッチ、21、22、23…制御レジスタ、32、33、3025…エラー検出回路、35…例外処理ステートマシン、50、53…周辺エラー検出信号、52…リトライ制御部エラー検出信号、60、63…周辺リセット信号、61…CPUリセット信号、62…リトライ制御部リセット信号、64…パワーオンリセット信号、65、66、301、302…リセット信号、70、77…エラー例外信号、71…リトライ制御部エラー例外信号、72…CPUエラー例外信号、76…エラー情報信号、303…起動信号、501…自動車、2001…エラーマスク回路、2002…リトライステートマシン、2003…命令キュー、2004…ライトキュー、2007…遅延レジスタファイル、2008…CPUバスIF。
Claims (6)
- レジスタファイルを持ちパイプライン動作を行うCPUと、周辺回路と、前記CPUおよび周辺回路内の任意のフリップフロップに発生したエラーを検出してエラー検出信号を出力するエラー検出回路を有する集積回路であって、
前記エラー検出信号をデコードして前記CPUに対して第1のリセット信号と第1の例外処理信号を出力し、前記周辺回路に対して第2のリセット信号と第2の例外処理信号を出力するエラー判定リセット回路を有することを特徴とする集積回路。 - 請求項1に記載の集積回路において、
前記エラー判定リセット回路は多重構成により高信頼化されたことを特徴とする集積回路。 - 請求項1または2に記載の集積回路において、
前記周辺回路として、前記CPUのエラーを検出すると命令を中止し、中止した前記命令のN(Nは整数)命令前のレジスタファイルの内容を保持する遅延レジスタファイルより前記レジスタファイルの内容を復帰させて前記CPUのリトライを行うリトライ制御部を有し、前記CPUでエラー発生時は前記エラー判定リセット回路から前記CPUに前記第1のリセット信号をアサートし、前記リトライ制御部に前記第2の例外処理信号をアサートし、前記リトライ制御部でエラー発生時は前記CPUに前記第1の例外処理信号をアサートし、前記リトライ制御部に前記第2のリセット信号をアサートすることを特徴とする集積回路。 - 請求項1に記載の集積回路において、
前記エラー判定リセット回路には、前記CPUまたは前記周辺回路でエラー発生時に前記エラー判定リセット回路が前記CPUと前記周辺回路に出力する前記第1のリセット信号、前記第2のリセット信号、前記第1の例外処理信号、前記第2の例外処理信号のアサート条件を設定する制御レジスタを有することを特徴とする集積回路。 - 請求項1に記載の集積回路において、
前記エラー判定リセット回路には、前記CPUまたは前記周辺回路でエラー発生時に前記エラー検出信号をデコードしたエラー情報として、前記集積回路の外部に出力するエラー情報ピンを有することを特徴とする集積回路。 - レジスタファイルを持ちパイプライン動作を行うCPUや周辺回路の回路モジュールと、前記回路モジュール内の任意のフリップフロップに発生したエラーを検出してエラー検出信号を出力するエラー検出回路を有する集積回路であって、
前記エラー検出信号をデコードして前記回路モジュールに対してリセット信号を出力するエラー判定リセット回路と、前記集積回路の起動時にパワーオンリセット信号を出力するパワーオンリセット回路を有し、前記回路モジュール内の任意のフリップフロップは、パワーオンリセット時に初期化される第1のフリップフロップ群と、パワーオンリセット時に初期化されない第2のフリップフロップ群に分類され、前記回路モジュールに含まれる前記第1のフリップフロップ群には前記リセット信号と前記パワーオンリセット信号との論理和が第1のフリップフロップリセット信号として入力され、前記回路モジュールに含まれる前記第2のフリップフロップ群には前記第1のフリップフロップリセット信号と前記回路モジュールからのエラー検出信号との論理積が第2のフリップフロップリセット信号として入力されることを特徴とする集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006330122A JP2008146188A (ja) | 2006-12-07 | 2006-12-07 | 集積回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006330122A JP2008146188A (ja) | 2006-12-07 | 2006-12-07 | 集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008146188A true JP2008146188A (ja) | 2008-06-26 |
Family
ID=39606329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006330122A Pending JP2008146188A (ja) | 2006-12-07 | 2006-12-07 | 集積回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008146188A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110298112A (zh) * | 2019-07-01 | 2019-10-01 | 成都奥卡思微电科技有限公司 | 一种断言状态机和波形图的联合同步纠错方法、存储介质和终端 |
-
2006
- 2006-12-07 JP JP2006330122A patent/JP2008146188A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110298112A (zh) * | 2019-07-01 | 2019-10-01 | 成都奥卡思微电科技有限公司 | 一种断言状态机和波形图的联合同步纠错方法、存储介质和终端 |
CN110298112B (zh) * | 2019-07-01 | 2023-05-19 | 成都奥卡思微电科技有限公司 | 一种断言状态机和波形图的联合同步纠错方法、存储介质和终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8095825B2 (en) | Error correction method with instruction level rollback | |
CN109872150B (zh) | 具有时钟同步操作的数据处理系统 | |
US10761925B2 (en) | Multi-channel network-on-a-chip | |
US20090044044A1 (en) | Device and method for correcting errors in a system having at least two execution units having registers | |
JP5014899B2 (ja) | 再構成可能デバイス | |
US10657010B2 (en) | Error detection triggering a recovery process that determines whether the error is resolvable | |
JP3229070B2 (ja) | 多数決回路及び制御ユニット及び多数決用半導体集積回路 | |
US8090983B2 (en) | Method and device for performing switchover operations in a computer system having at least two execution units | |
US20090044048A1 (en) | Method and device for generating a signal in a computer system having a plurality of components | |
US10817369B2 (en) | Apparatus and method for increasing resilience to faults | |
US20090119540A1 (en) | Device and method for performing switchover operations in a computer system having at least two execution units | |
Kempf et al. | An adaptive lockstep architecture for mixed-criticality systems | |
JP2005038420A (ja) | 特殊cpu命令による対象を定めたフォールトトレランス | |
US10901865B2 (en) | Error detection for processing elements redundantly processing a same processing workload | |
EP2159710B1 (en) | Information processing apparatus and control method | |
US20090249174A1 (en) | Fault Tolerant Self-Correcting Non-Glitching Low Power Circuit for Static and Dynamic Data Storage | |
US20070067677A1 (en) | Program-controlled unit and method | |
US20080313384A1 (en) | Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units | |
US10185635B2 (en) | Targeted recovery process | |
CN117112318A (zh) | 基于risc-v架构的双核容错系统 | |
US10289332B2 (en) | Apparatus and method for increasing resilience to faults | |
JP2008146188A (ja) | 集積回路 | |
JP2014229130A (ja) | 高信頼プロセッサおよびそれを用いた高信頼制御装置 | |
CN107168827B (zh) | 基于检查点技术的双冗余流水线及容错方法 | |
Szurman et al. | Run-Time Reconfigurable Fault Tolerant Architecture for Soft-Core Processor NEO430 |