"リセット信号が活性化レベルにされた場合にリセットされる半導体装置であって、同じ構成の第1および第2の内部回路と、それぞれ前記第1および第2の内部回路に対応する第1および第2の論理レベルのうちのいずれかの論理レベルのデータ信号が書き込まれた記憶回路と、前記リセット信号が非活性化レベルにされて前記半導体装置のリセットが解除された場合、前記第1および第2の内部回路のうちの前記データ信号の論理レベルに対応する内部回路のみに電源電圧を供給するとともに、前記記憶回路のデータ信号を現在の論理レベルと異なる論理レベルのデータ信号に書き換える制御回路とを備える、半導体装置。前記制御回路は、さらに、低電力モードが指示された場合は、前記第1および第2の内部回路への電源電圧の供給を停止し、前記低電力モードが解除された場合は、前記記憶回路のデータ信号の論理レベルに対応する内部回路に電源電圧を供給するとともに、前記記憶回路のデータ信号を現在の論理レベルと異なる論理レベルのデータ信号に書き換える、請求項1に記載の半導体装置。さらに、前記第1および第2の内部回路のうちの所望の内部回路を選択する選択回路を備え、前記制御回路は、前記記憶回路のデータ信号の論理レベルに関係なく、前記選択回路によって選択された内部回路に電源電圧を供給する、請求項1または請求項2に記載の半導体装置。さらに、前記第1および第2の内部回路の各々が故障したか否かを検出する故障検出回路を備え、前記制御回路は、前記故障検出回路によって前記第1および第2の内部回路のうちのいずれか1つの内部回路が故障したことが検出された場合、前記記憶回路のデータ信号の論理レベルに関係なく、故障していない方の内部回路に電源電圧を供給する、請求項1または請求項2に記載の半導体装置。前記記憶回路は、前記データ信号を不揮発的に記憶する不揮発性メモリを含む、請求項1から請求項4までのいずれかに記載の半導体装置。しかし、特許文献1では、2つのCPUの両方を常時動作させていたので、CPUの寿命を延ばす効果は期待できない。また、特許文献2では、処理装置が故障したことを検知する必要があり、そのためには処理装置に通電する必要があった。そのため、処理装置の寿命を延ばす効果は小さい。また、特許文献3では、2つのランプが交互に点灯されていることを人の目では認識できないことが利用されている。しかし、2つのCPUを交互に使用するためには、切換タイミングを厳密に制御して、回路の誤動作を防止する必要がある。このため、2つのCPUを交互に使用することは容易でない。それゆえに、この発明の主たる目的は、寿命が長い半導体装置を提供することである。この発明に係る半導体装置は、リセット信号が活性化レベルにされた場合にリセットされる半導体装置であって、同じ構成の第1および第2の内部回路と、それぞれ第1および第2の内部回路に対応する第1および第2の論理レベルのうちのいずれかの論理レベルのデータ信号が書き込まれた記憶回路と、リセット信号が非活性化レベルにされて半導体装置のリセットが解除された場合、第1および第2の内部回路のうちのデータ信号の論理レベルに対応する内部回路のみに電源電圧を供給するとともに、記憶回路のデータ信号を現在の論理レベルと異なる論理レベルのデータ信号に書き換える制御回路とを備えたものである。この発明に係る半導体装置では、内部回路を二重化し、半導体装置のリセットが解除される度に、動作させる内部回路を切換える。したがって、故障の検知や、厳密なタイミング制御を必要とせずに、内部回路の長寿命化、ひいては半導体装置の長寿命化を図ることができる。[実施の形態1]本願発明の実施の形態1によるLSIは、図1に示すように、2つのCPU1,2、切換制御回路3、システム電源制御回路5、入出力切換回路6、周辺回路7を備える。このLSIでは、CPUが二重化されており、2つのCPU1,2が設けられている。CPU1,2は、それぞれ電源領域A1,A2に設けられている。電源領域A1とA2では、電源電圧が別々に供給される。CPU1,2は、それぞれ電源領域A1,A2に供給された電源電圧によって駆動される。切換制御回路3は、リセット信号REに基いて動作する。LSIをリセットする場合はリセット信号REが活性化レベルのLレベルにされ、LSIのリセットを解除する場合はリセット信号REは非活性化レベルのHレベルにされる。切換制御回路3は、LSIのリセットが解除されたときに記憶回路4の記憶データを参照し、記憶データに基づいてCPU1,2のうちのどちらのCPUを使用するかを決定し、使用すべきCPUを示す信号φCをシステム電源制御回路5および入出力切換回路6に与える。記憶回路4に記憶されたデータ信号が0である場合は、信号φCがLレベルにされてCPU1が使用される。また、データ信号が1である場合は、信号φCがHレベルにされてCPU2が使用される。また図2に示すように、切換制御回路3は、リセット信号REに応答して記憶回路4の記憶データを書き換える。すなわち、切換制御回路3は、使用すべきCPUを示す信号φCを出力した後、次回の起動時に備えて記憶回路4の記憶データを書き換える。具体的には、今回のリセット解除時のデータ信号が0である場合はデータ信号を1に書き換え、今回のリセット解除時のデータ信号が1である場合はデータ信号を0に書き換える。これにより、LSIのリセットが解除される度に、使用するCPUが切換えられる。システム電源制御回路5は、切換制御回路3からの信号φCがLレベルである場合は、電源領域A1,A2のうちの電源領域A1のみに電源電圧を供給し、CPU1,2のうちのCPU1のみを活性化させる。また、システム電源制御回路5は、切換制御回路3からの信号φCがHレベルである場合は、電源領域A1,A2のうちの電源領域A2のみに電源電圧を供給し、CPU1,2のうちのCPU2のみを活性化させる。入出力切換回路6は、CPU1,2に結合されるとともにバスを介して周辺回路7に結合される。入出力切換回路6は、切換制御回路3からの信号φCがLレベルである場合はCPU1と周辺回路7を結合し、信号φCがHレベルである場合はCPU2と周辺回路7を結合する。活性化されたCPU1または2は、所定のプログラムに従って動作し、周辺回路7から入出力切換回路6を介して与えられたデータに演算加工を施す。CPU1または2で演算加工されたデータは、入出力切換回路6を介して周辺回路7に与えられる。次に、このLSIの動作について説明する。リセット信号REがLレベルからHレベルに立ち上げられると、LSIのリセットが解除される。リセット解除時に記憶回路4の記憶データが0であるものとする。この場合は、切換制御回路3によって信号φCがLレベルにされるとともに、記憶データが1に書き換えられる。信号φCがLレベルにされると、システム電源制御回路5によって電源領域A1,A2のうちの電源領域A1のみに電源電圧が供給され、CPU1,2のうちのCPU1のみが活性化される。また、入出力切換回路6によってCPU1と周辺回路7が結合され、CPU1によってデータの演算加工が行なわれる。リセット信号REがHレベルからLレベルに立ち下げられると、LSIがリセットされる。次いでリセット信号REがLレベルからHレベルに立ち上げられると、LSIのリセットが解除される。前回のリセット解除時に記憶回路4の記憶データが1に書き換えられているので、切換制御回路3によって信号φCがHレベルにされるとともに、記憶データが0に書き換えられる。信号φCがHレベルにされると、システム電源制御回路5によって電源領域A1,A2のうちの電源領域A2のみに電源電圧が供給され、CPU1,2のうちのCPU2のみが活性化される。また、入出力切換回路6によってCPU2と周辺回路7が結合され、CPU2によってデータの演算加工が行なわれる。以下、同様にして、リセットが解除される度に、使用するCPUが切換えられる。この実施の形態1では、CPUを二重化し、LSIのリセットが解除される度に、使用するCPUを切換え、使用しない方のCPUの電源電圧を遮断する。したがって、各CPUの稼働率が低下して各CPUの寿命が延びる。CPUを多重化しない場合にLSI内で最も早く寿命を迎える回路がCPUであれば、LSI全体の寿命を延ばすことができる。また、故障検出回路が必要ないので、故障を検出するためにCPUを使用する必要がなく、使用していない側のCPUを完全に休止電源遮断させることができる。この場合、通電したまま停止させた場合に比べ、CPUの寿命が長くなる。また、故障を予知する回路も必要ない。故障を予知する回路は、電圧や電流、遅延などプロセスに依存した物理特性を測定することで実現するのが一般的だが、これも必要ないため、プロセス物理特性が異なるデバイスへ回路を移植することも容易になる。なお、この実施の形態1では、LSI内のCPUを二重化したが、これに限るものではなく、LSI内のCPU以外の回路を二重化してもよいことは言うまでもない。[実施の形態2]図3は、この発明の実施の形態2によるLSIの構成を示すブロック図であって、図1と対比される図である。図3を参照して、このLSIが図1のLSIと異なる点は、CPU1,2および入出力切換回路6がCPU10で置換されている点である。CPU10は、2つの演算器11,12および入出力切換回路13を含む。このCPU10では、演算器が二重化されている。CPU10のうちの演算器11,12以外の回路は、電源領域A10に設けられている。演算器11,12は、それぞれ電源領域A11,A12に設けられている。電源領域A10とA11とA12では、電源電圧が別々に供給される。演算器11,12は、それぞれ電源領域A11,A12に供給された電源電圧によって駆動される。入出力切換回路13は、電源領域A10に供給された電源電圧によって駆動される。切換制御回路3は、リセット信号REに基いて動作する。LSIをリセットする場合はリセット信号REが活性化レベルのLレベルにされ、LSIのリセットを解除する場合はリセット信号REは非活性化レベルのHレベルにされる。切換制御回路3は、LSIのリセットが解除されたときに記憶回路4の記憶データを参照し、記憶データに基づいて演算器11,12のうちのどちらの演算器を使用するかを決定し、使用すべき演算器を示す信号φCをシステム電源制御回路5および入出力切換回路13に与える。記憶回路4に書き込まれたデータ信号が0である場合は、信号φCがLレベルにされて演算器11が使用される。また、データ信号が1である場合は、信号φCがHレベルにされて演算器12が使用される。また、切換制御回路3は、リセット信号REに応答して記憶回路4の記憶データを書き換える。すなわち、切換制御回路3は、使用すべき演算器を示す信号φCを出力した後、次回の起動時に備えて記憶回路4のデータ信号を書き換える。具体的には、今回のリセット解除時のデータ信号が0である場合はデータ信号を1に書き換え、今回のリセット解除時のデータ信号が1である場合はデータ信号を0に書き換える。これにより、LSIのリセットが解除される度に、使用する演算器が切換えられる。システム電源制御回路5は、切換制御回路3からの信号φCがLレベルである場合は、電源領域A10~A12のうちの電源領域A10,A11のみに電源電圧を供給し、入出力切換回路13を活性化させるとともに、演算器11,12のうちの演算器11のみを活性化させる。また、システム電源制御回路5は、切換制御回路3からの信号φCがHレベルである場合は、電源領域A10~A12のうちの電源領域A10,A12のみに電源電圧を供給し、入出力切換回路13を活性化させるとともに、演算器11,12のうちの演算器12のみを活性化させる。入出力切換回路13は、演算器11,12に結合されるとともにバスを介して周辺回路7に結合される。入出力切換回路13は、切換制御回路3からの信号φCがLレベルである場合は演算器11と周辺回路7を結合し、信号φCがHレベルである場合は演算器12と周辺回路7を結合する。活性化された演算器11または12は、所定のプログラムに従って動作し、周辺回路7から入出力切換回路13を介して与えられたデータに演算加工を施す。演算器11または12で演算加工されたデータは、入出力切換回路13を介して周辺回路7に与えられる。次に、このLSIの動作について説明する。リセット信号REがLレベルからHレベルに立ち上げられると、LSIのリセットが解除される。リセット解除時に記憶回路4の記憶データが0であるものとする。この場合は、切換制御回路3によって信号φCがLレベルにされるとともに、記憶データが1に書き換えられる。信号φCがLレベルにされると、システム電源制御回路5によって電源領域A10~A12のうちの電源領域A10,A11のみに電源電圧が供給され、入出力切換回路13が活性化されるとともに、演算器11,12のうちの演算器11のみが活性化される。また、入出力切換回路13によって演算器11と周辺回路7が結合され、演算器11によってデータの演算加工が行なわれる。リセット信号REがHレベルからLレベルに立ち下げられると、LSIがリセットされる。次いでリセット信号REがLレベルからHレベルに立ち上げられると、LSIのリセットが解除される。前回のリセット解除時に記憶回路4の記憶データが1に書き換えられているので、切換制御回路3によって信号φCがHレベルにされるとともに、記憶データが0に書き換えられる。信号φCがHレベルにされると、システム電源制御回路5によって電源領域A10~A12のうちの電源領域A10,A12のみに電源電圧が供給され、入出力切換回路13が活性化されるとともに、演算器11,12のうちの演算器12のみが活性化される。また、入出力切換回路13によって演算器12と周辺回路7が結合され、演算器12によってデータの演算加工が行なわれる。以下、同様にしてリセットが解除される度に、使用する演算器が切換えられる。この実施の形態2では、CPU10内の演算器を二重化し、LSIのリセットが解除される度に、使用する演算器を切換え、使用しない方の演算器の電源電圧を遮断する。したがって、各演算器の稼働率が低下して各演算器の寿命が延びる。演算器を多重化しない場合にLSI内で最も早く寿命を迎える回路が演算器あれば、LSI全体の寿命を延ばすことができる。また、故障検出回路が必要ないので、故障を検出するために演算器を使用する必要がなく、使用していない側の演算器を完全に休止電源遮断させることができる。この場合、通電したまま停止させた場合に比べ、演算器の寿命が長くなる。また、故障を予知する回路も必要ない。故障を予知する回路は、電圧や電流、遅延などプロセスに依存した物理特性を測定することで実現するのが一般的だが、これも必要ないため、プロセス物理特性が異なるデバイスへ回路を移植することも容易になる。なお、この実施の形態2では、CPU10内の演算器を二重化したが、これに限るものではなく、CPU10内の演算器以外の回路を二重化してもよいことは言うまでもない。たとえば、図4に示すように、CPU10内のレジスタファイルを二重化してもよい。レジスタファイルは、データを一時的に記憶する回路である。図4では、図3の演算器11,12がそれぞれレジスタファイル15,16で置換されている。信号φCがLレベルの場合は、電源領域A10~A12のうちの電源領域A10,A11のみに電源電圧が供給されてレジスタファイル15,16のうちのレジスタファイル15のみが活性化され、入出力切換回路13によってレジスタファイル15と周辺回路7が結合される。また、信号φCがLレベルの場合は、電源領域A10~A12のうちの電源領域A10,A12のみに電源電圧が供給されてレジスタファイル15,16のうちのレジスタファイル16のみが活性化され、入出力切換回路13によってレジスタファイル16と周辺回路7が結合される。この変更例では、レジスタファイルの寿命を長くしてLSIの長寿命化を図ることができる。また、実施の形態1,2では、記憶回路4としてフラッシュメモリのような不揮発性メモリを使用することが好ましい。記憶回路4として揮発性メモリを使用すると、LSI自体への電源電圧の供給が断たれた場合、次の電源投入時の記憶回路4の記憶データの論理は不定になるので、CPU1,2演算器11,12、またはレジスタファイル15,16の切換を完全には交互に行なえない場合がある。しかし、記憶回路4として不揮発性メモリを使用すると、LSI自体への電源電圧の供給が断たれた場合でも、リセット解除の度にCPU1,2演算器11,12、またはレジスタファイル15,16の切換を完全に交互に行うことができる。この場合は、LSI自体への電源電圧の供給が頻繁に断たれる使用条件においても、二重化した回路の切換えを交互に行ない、回路の寿命を延ばすことができる。[実施の形態3]図5は、この発明の実施の形態3によるLSIの構成を示すブロック図であって、図1と対比される図である。図5を参照して、このLSIが図1のLSIと異なる点は、切換制御回路3が切換制御回路20で置換され、システム電源制御回路5から切換制御回路20に信号φPが出力される点である。実施の形態3のLSIは、CPU1,2の両方を非活性化させて低消費電力化を図るスリープモードを有する。システム電源制御回路5は、通常モード時において信号φCがLレベルである場合は、電源領域A1,A2のうちの電源領域A1のみに電源電圧を供給してCPU1,2のうちのCPU1のみを活性化させるとともに、信号φPをHレベルにする。また、システム電源制御回路5は、通常モード時において信号φCがHレベルである場合は、電源領域A1,A2のうちの電源領域A2のみに電源電圧を供給してCPU1,2のうちのCPU2のみを活性化させるとともに、信号φPをHレベルにする。また、システム電源制御回路5は、スリープモード時は、電源領域A1,A2への電源電圧の供給を遮断してCPU1,2を非活性化させるとともに、信号φPをLレベルにする。つまり、電源領域A1またはA2に電源電圧が供給されている場合は信号φPはHレベルにされ、電源領域A1,A2に電源電圧が供給されていない場合は信号φPはLレベルにされる。切換制御回路20は、実施の形態1と同様に、リセット信号REがLレベルからHレベルに立ち上げられたときにすなわち、LSIのリセットが解除されたときに、記憶回路4の記憶データに基づいて、使用すべきCPUを示す信号φCをシステム電源制御回路5および入出力切換回路6に与えるとともに、記憶回路4の記憶データを書き換える。また、切換制御回路20は、信号φPがLレベルからHレベルに立ち上げられたときにすなわち、電源領域A1,A2への電源電圧の供給が再開されたときに、記憶回路4の記憶データに基づいて、使用すべきCPUを示す信号φCをシステム電源制御回路5および入出力切換回路6に与えるとともに、記憶回路4の記憶データを書き換える。図6に示すように切換制御回路20は、図2の切換制御回路3にANDゲート21を追加したものである。ANDゲート21は、リセット信号REと信号φPの論理積信号φ21を出力する。切換制御回路20は、信号φ21がLレベルからHレベルに立ち上げられた場合に、使用すべきCPUを示す信号φCを出力した後、次回の起動時に備えて記憶回路4の記憶データを書き換える。具体的には、今回のリセット解除時の記憶データが0である場合は記憶データを1に書き換え、今回のリセット解除時の記憶データが1である場合は記憶データを0に書き換える。これにより、LSIのリセットが解除される度に使用するCPUが切換えられるとともに、スリープモードから通常モードに移行する度に使用するCPUが切換えられる。他の構成および動作は、実施の形態1と同じであるので、その説明は繰り返さない。この実施の形態3では、リセットされる頻度に比べ、スリープモードなどによってCPU1,2への電源電圧の供給が遮断される頻度が高い用途のLSIにおいて、CPU1,2の使用頻度の偏りを小さくし、CPU1,2の各々の寿命を延ばすことができる。また、切換制御回路20における記憶回路4の回路面積を最小にすることができる。なお、図3および図4のLSIにおいても、信号φPを生成するとともに切換制御回路3を切換制御回路20で置換してもよい。図7は、実施の形態3の変更例を示すブロック図であって、図6と対比される図である。図6を参照して、この変更例では、切換制御回路20が切換制御回路25で置換される。切換制御回路25は、記憶回路4,26および判断回路27を含む。切換制御回路25は、実施の形態1と同様に、リセット信号REがLレベルからHレベルに立ち上げられたときにすなわち、LSIのリセットが解除されたときに、記憶回路4の記憶データに基づいて、使用すべきCPUを示す信号φC1を判断回路27に与えるとともに、記憶回路4の記憶データを書き換える。また、切換制御回路25は、信号φPがLレベルからHレベルに立ち上げられたときにすなわち、電源領域A1,A2への電源電圧の供給が再開されたときに、記憶回路26の記憶データに基づいて、使用すべきCPUを示す信号φC2を判断回路27に与えるとともに、記憶回路26の記憶データを書き換える。判断回路27は、信号φC1,φC2のうちのいずれか一方の信号を選択し、選択した信号を信号φCとしてシステム電源回路5および入出力切換回路6に与える。その際、判断回路27は、CPUの切換の頻度などの状況に応じて信号φC1,φC2のうちの1つの信号を選択する。また、判断回路27は、2つの信号φC1,φC2を加味した信号たとえば、排他的論理和信号を信号φCとして出力してもよい。また、2つの記憶回路4,26のうちの一方の記憶回路を揮発性メモリで構成し、他方の記憶回路を不揮発性メモリで構成してもよい。この変更例では、リセットの情報信号REと電源電圧の供給/遮断情報信号φPとを切り分けて制御することができる。[実施の形態4]図8は、この発明の実施の形態4によるLSIの要部を示すブロック図である。このLSIが実施の形態1のLSIと異なる点は、切換制御回路3が切換制御回路30で置換されている点である。切換制御回路30は、記憶回路4、制御レジスタ31、および判断回路32を含む。切換制御回路30は、実施の形態1と同様に、リセット信号REがLレベルからHレベルに立ち上げられたときにすなわち、LSIのリセットが解除されたときに、記憶回路4の記憶データに基づいて、使用すべきCPUを示す信号φC1を判断回路32に与えるとともに、記憶回路4の記憶データを書き換える。制御レジスタ31には、2ビットのデータ信号D1,D2が格納される。制御レジスタ31は、不揮発性メモリであっても、揮発性メモリであっても構わない。切換制御回路30に図2の切換制御回路3と同じ動作をさせる場合は、データ信号D1,D2の論理は00または01にされる。記憶回路4の記憶データに関係なくCPU1を活性化させる場合は、データ信号D1,D2の論理は10にされる。記憶回路4の記憶データに関係なくCPU2を選択する場合は、データ信号D1,D2の論理は11にされる。制御レジスタ31は、データ信号D1,D2を保持するとともに判断回路32に与える。判断回路32は、データ信号D1,D2の倫理が00または01である場合は、記憶回路4の記憶データに基づいて生成された信号φC1を信号φCとしてシステム電源制御回路5および入出力切換回路6に与える。また、判断回路32は、データ信号D1,D2の論理が10である場合は、記憶回路4の記憶データに関係なく、信号φCをLレベルにしてCPU1を活性化させる。また、判断回路32は、データ信号D1,D2の論理が11である場合は、記憶回路4の記憶データに関係なく、信号φCをHレベルにしてCPU2を活性化させる。他の構成および動作については、実施の形態1と同じであるので、その説明は繰り返さない。この実施の形態4では、CPU1,2のうちのいずれかに故障があると疑われる場合に、CPUの切換を一時的に無効にすることにより、LSIのデバッグを容易に行なうことができる。[実施の形態5]図9は、この発明の実施の形態5によるLSIの構成を示すブロック図であって、図1と対比される図である。図9を参照して、このLSIが図1のLSIと異なる点は、切換制御回路3が切換制御回路40で置換され、BISTBuiltInSelfTest回路42が追加されている点である。BIST回路42は、故障検出回路であり、CPU1,2の各々が故障しているか否かをテストし、テスト結果を示す信号φEを切換制御回路40に出力する。信号φEは、たとえば2ビットのデータ信号を含むデータコードである。切換制御回路40は、図10に示すように、記憶回路4および判断回路41を含む。切換制御回路40は、実施の形態1と同様に、リセット信号REがLレベルからHレベルに立ち上げられたときにすなわち、LSIのリセットが解除されたときに、記憶回路4の記憶データに基づいて、使用すべきCPUを示す信号φC1を判断回路41に与えるとともに、記憶回路4の記憶データを書き換える。判断回路41は、信号φEに基づいてCPU1,2が両方とも故障していないと判断した場合は、記憶回路4の記憶データに基づいて生成された信号φC1を信号φCとしてシステム電源制御回路5および入出力切換回路6に与える。また、判断回路41は、信号φEに基づいてCPU1,2のうちのCPU2が故障していると判断した場合は、記憶回路4の記憶データに関係なく、信号φCをLレベルにしてCPU1を活性化させる。また、判断回路41は、信号φEに基づいてCPU1,2のうちのCPU1が故障していると判断した場合は、記憶回路4の記憶データに関係なく、信号φCをHレベルにしてCPU2を活性化させる。他の構成および動作については、実施の形態1と同じであるので、その説明は繰り返さない。この実施の形態5では、CPU1,2のうちのいずれか1つのCPUが故障している場合でも、故障していない方のCPUを使用し続けることにより、LSIの寿命を延ばすことができる。なお、上記実施の形態1~5および変更例を適宜組み合わせてもよいことは言うまでもない。今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。"