(57)【要約】【課題】ＦＰＧＡを有する半導体装置の消費電力を抑制する。【解決手段】半導体装置１のＦＰＧＡ２−１〜２−ｎは、回路情報を記憶するコンフィグレーションメモリ２ｂを備え、コンフィグレーションメモリ２ｂにおけるソフトエラーの有無を検出してエラー検出結果を出力する。電圧制御部３は、ＦＰＧＡ２−１〜２−ｎに供給する電源電圧を固定とせずに、所定時間あたりのＦＰＧＡ２−１〜２−ｎでのソフトエラー発生数に応じて変更する。これにより、たとえば、少ないソフトエラー発生数のときには電源電圧を小さくでき、半導体装置１の消費電力を抑制できる。【選択図】図１
2013123181.tif 000002
【特許請求の範囲】
【請求項１】
回路情報を記憶する記憶部を備え、前記記憶部におけるソフトエラーの有無を検出し、エラー検出結果を出力するＦＰＧＡと、
所定時間あたりの前記ＦＰＧＡでのソフトエラー発生数に応じて前記ＦＰＧＡに供給する電源電圧を変更する電圧制御部と、
を有することを特徴とする半導体装置。
【請求項２】
前記電圧制御部は、前記所定時間あたりの前記ソフトエラー発生数と前記ＦＰＧＡの数に基づいて前記ＦＰＧＡにおける故障率を算出し、算出された前記故障率と要求される故障率の値との比較結果に基づいて、前記電源電圧を変更することを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記電圧制御部は、前記故障率が前記要求される故障率の値よりも小さいときに、前記故障率が前記要求される故障率の値以上のときよりも、前記電源電圧を小さくすることを特徴とする請求項２に記載の半導体装置。
【請求項４】
前記ソフトエラー発生数及び前記ＦＰＧＡの数を送信するとともに、他の半導体装置が有する他のＦＰＧＡの数及び前記他のＦＰＧＡでの前記所定時間あたりのソフトエラー発生数を受信する送受信部を更に有し、
前記電圧制御部は、前記故障率を、前記所定時間あたりの前記ＦＰＧＡ及び前記他のＦＰＧＡでの前記ソフトエラー発生数の総数と、前記ＦＰＧＡ及び前記他のＦＰＧＡの総数に基づいて算出することを特徴とする請求項２または３に記載の半導体装置。
【請求項５】
ＦＰＧＡに備えられている回路情報を記憶する記憶部にて所定時間あたりに発生するソフトエラーの発生数に応じ、前記ＦＰＧＡに供給する電源電圧を変更する、ことを特徴とする電源電圧制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及び電源電圧制御方法に関する。
【背景技術】
【０００２】
ＦＰＧＡ（Field-Programmable Gate Array）は、半導体集積回路の微細化に伴い、）回路規模が大きくなってきた。回路規模が大きくなるとＦＰＧＡの回路情報を保持するコンフィグレーションメモリの容量も大きくなる。
【０００３】
また微細化が進むと中性子線によるソフトエラーによる故障率も大きくなる。現状のＦＰＧＡは、ＣＲＣ（Cyclic Redundancy Check）エラー検出機能を有するが、誤り訂正符号などを用いてエラー訂正可能なメモリと異なり、コンフィグレーションメモリのエラーを訂正する場合、再コンフィグレーションが行われる。すなわち、ＦＰＧＡは、コンフィグレーションメモリの回路情報を上書きすることで正常な状態に戻すことができる。
【０００４】
ただし、再コンフィグレーションを行うとＦＰＧＡが一旦使用不可能になり、ＦＰＧＡを含むシステムの再起動が行われることになるため、故障率を抑えることが望まれている。故障率を抑えるために同じ回路情報を実現するＦＰＧＡを複数設け、ソフトエラーが生じた場合に、正常なものに切り替える技術が知られているが、消費電力が大きくなるため好ましくない。
【０００５】
なお、従来、電子回路への放射線の攻撃に起因する故障率を制御するために、センサ内での故障率に対応した出力を電圧制御部に供給し、電圧制御部が電圧を変動させ、センサの感度を変えるような技術があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１１８８５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、同じ中性子線量のもとでのコンフィグレーションメモリのソフトエラー発生数（または故障率）は、ＦＰＧＡの電源電圧が低いほど多く、電源電圧が高いほど下がる傾向にある。そのため、たとえば、ＦＰＧＡに対して、要求される故障率を満たすような比較的高い電源電圧を印加し続けることで、信頼性を保てる。
【０００８】
しかしながら、所定時間あたりのソフトエラー発生数は固定ではなく、たとえば、環境に応じて中性子線量が変動した場合には変更する。そのためソフトエラー発生数が少ないときにも、要求される故障率に応じた電源電圧を印加し続けることは、消費電力の増大につながってしまうという問題がある。
【課題を解決するための手段】
【０００９】
発明の一観点によれば、回路情報を記憶する記憶部を備え、前記記憶部におけるソフトエラーの有無を検出し、エラー検出結果を出力するＦＰＧＡと、所定時間あたりの前記ＦＰＧＡでのソフトエラー発生数に応じて前記ＦＰＧＡに供給する電源電圧を変更する電圧制御部と、を備えた半導体装置が提供される。
【００１０】
また、発明の一観点によれば、ＦＰＧＡに備えられている回路情報を記憶する記憶部にて所定時間あたりに発生するソフトエラーの発生数に応じ、前記ＦＰＧＡに供給する電源電圧を変更する、電源電圧制御方法が提供される。
【発明の効果】
【００１１】
開示の半導体装置及び電源電圧制御方法によれば、ＦＰＧＡを有する半導体装置の消費電力を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の半導体装置の一例を示す図である。
【図２】ソフトエラー発生数と電源電圧の関係の一例を示す図である。
【図３】第１の実施の形態の半導体装置の動作の一例を示すフローチャートである。
【図４】第２の実施の形態の半導体装置の一例を示す図である。
【図５】ＦＰＧＡの一例を示す図である。
【図６】送受信部の一例を示す図である。
【図７】送信部が送信するソフトエラー発生情報の一例を示す図である。
【図８】ＣＰＵの機能ブロックの一例を示す図である。
【図９】受信情報記憶部に記憶されるデータ例を示す図である。
【図１０】半導体装置の一例の動作を示すフローチャートである。
【図１１】ＦＰＧＡに供給される電源電圧の制御例を示す図である。
【図１２】故障率、電源電圧及び消費電力の関係の一例を示す図である。
【図１３】複数のボードを有する半導体装置の例を示す図である。
【図１４】データ処理装置の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の半導体装置の一例を示す図である。
【００１４】
半導体装置１は、ＦＰＧＡ２−１，２−２，…，２−ｎと、電圧制御部３を有している。
ＦＰＧＡ２−１は、ユーザ回路２ａ、記憶部（以下コンフィグレーションメモリと呼ぶ）２ｂ、エラー検出部２ｃを有している。コンフィグレーションメモリ２ｂは、ユーザ回路２ａの回路情報を記憶している。ユーザは、コンフィグレーションメモリ２ｂに記憶された回路情報を書き換える（再コンフィグレーションする）ことで、ユーザ回路２ａを変更することができる。エラー検出部２ｃは、たとえば、ＣＲＣエラー検出機能により、コンフィグレーションメモリ２ｂにおけるソフトエラーの有無を検出し、エラー検出結果を出力する。ＦＰＧＡ２−２〜２−ｎについてもＦＰＧＡ２−１と同様の要素を有している。なお、半導体装置１において、ＦＰＧＡ数は１つであってもよい。
【００１５】
電圧制御部３は、所定時間（たとえば、１時間、６時間、２４時間など）あたりのソフトエラー発生数に応じてＦＰＧＡ２−１〜２−ｎに供給する電源電圧を変更する。ソフトエラー発生数は、ＦＰＧＡ２−１〜２−ｎから出力されるエラー検出結果に基づいて、たとえば、電圧制御部３内または電圧制御部３外の図示しない計数部（カウンタ）により計数される。同じ中性子線量のもとでのコンフィグレーションメモリのソフトエラー発生数は、ＦＰＧＡの電源電圧が低いほど多く、電源電圧が高いほど少なくなる傾向にある。
【００１６】
図２は、ソフトエラー発生数と電源電圧の関係の一例を示す図である。
図２では、６つのサンプルのＦＰＧＡ（９０ｎｍの製造プロセスにより製造されたチップ１〜チップ６）に印加する電源電圧と、ＦＰＧＡのコンフィグレーションメモリに発生するチップごとのＦＩＴ（Failures in time）数と、その平均値及び近似直線の一例が示されている。縦軸がチップごとのＦＩＴ数、横軸が電源電圧（ＶＤＤ［Ｖ］）である。なお、ＦＩＴ数は、１０の９乗時間におけるチップあたりのソフトエラー発生数を示しており、以下では、この値を故障率と呼ぶ場合もある。
【００１７】
図２に示されているように、電源電圧が上がるにつれてソフトエラー発生数は少なくなる。そのため、電圧制御部３は、所定時間あたりのソフトエラー発生数が多い場合には、電源電圧を上げることによりソフトエラー発生数を抑制することができる。また、たとえば、環境の変化により中性子線量が下がり、所定時間あたりのソフトエラー発生数が少なくなった場合には、電圧制御部３は電源電圧を下げることにより、半導体装置１の消費電力を抑えることができる。
【００１８】
たとえば、図１に示すように、電圧制御部３は、所定時間あたりのソフトエラー発生数に応じて、電源電圧を複数段階（図１では、ＶＤＤ＿ｍａｘ，ＶＤＤ＿ｔｙｐ，ＶＤＤ＿ｍｉｎの３段階）で変える。
【００１９】
なお、電圧制御部３は、所定時間あたりのソフトエラー発生数とＦＰＧＡ数に基づいて故障率を算出し、算出された故障率と故障率の要求値との比較結果に基づいて電源電圧を変更することで、ＦＰＧＡの信頼性を保ったまま消費電力を抑制できる。故障率の算出方法についての詳細は、後述する。
【００２０】
図３は、第１の実施の形態の半導体装置の動作の一例を示すフローチャートである。
ＦＰＧＡ２−１〜２−ｎのエラー検出部２ｃは、たとえば、ＣＲＣエラー検出機能により、コンフィグレーションメモリ２ｂにおけるソフトエラーの有無を検出し、エラー検出結果を出力する（ステップＳ１）。そして、たとえば、電圧制御部３内または電圧制御部３外の図示しない計数部は、エラー検出結果に基づいて、ソフトエラー発生数を所定時間計数する（ステップＳ２）。ソフトエラー発生数が所定時間計数されると、電圧制御部３は、所定時間あたりのソフトエラー発生数に応じてＦＰＧＡ２−１〜２−ｎに供給する電源電圧を変更する（ステップＳ３）。
【００２１】
このように、第１の実施の形態の半導体装置１は、ＦＰＧＡ２−１〜２−ｎに供給する電源電圧を、たとえば、要求される故障率に基づいた固定値とするのではなく、所定時間あたりのソフトエラー発生数に応じて変更する。これにより、中性子線量が少ない環境で所定時間のソフトエラー発生数が少ないときにも、要求される故障率に基づいた比較的高い電源電圧を印加し続けなくてもよくなり、電源電圧を下げることができ、半導体装置１の消費電力を抑えることができる。
【００２２】
（第２の実施の形態）
図４は、第２の実施の形態の半導体装置の一例を示す図である。
図４では、複数の半導体装置１０−１，１０−２，…，１０−Ｎがデータ処理装置２０に接続されている例が示されている。半導体装置１０−１〜１０−Ｎは、たとえば、複数の半導体集積回路が搭載された回路基板（ボード）である。
【００２３】
半導体装置１０−１は、ＦＰＧＡ１１−１，１１−２，…，１１−ｍ、電圧制御部１２、送受信部１３を有している。
ＦＰＧＡ１１−１〜１１−ｍは、図１に示したＦＰＧＡ２−１と同様の機能を有している。電圧制御部１２は、ＣＰＵ１２ａ、ＤＣ／ＤＣコントローラ１２ｂを有しており、図１に示した電圧制御部３と同様の機能を有する。
【００２４】
送受信部１３は、ＦＰＧＡ１１−１〜１１−ｍから出力されるエラー検出結果を取得し、半導体装置１０−１のＦＰＧＡ１１−１〜１１−ｍにおける所定時間あたりのソフトエラー発生数を計数する。そして、送受信部１３は、計数されたソフトエラー発生数をデータ処理装置２０に送信する。また、送受信部１３は、データ処理装置２０で算出された、全半導体装置１０−１〜１０−ＮのＦＰＧＡ１１−１〜１１−ｍにおけるソフトエラー発生数を受信し、電圧制御部１２のＣＰＵ１２ａに通知する機能を有する。
【００２５】
他の半導体装置１０−２〜１０−Ｎについても、半導体装置１０−１と同様の要素を有している。
データ処理装置２０は、たとえば、コンピュータであり、半導体装置１０−１〜１０−Ｎの送受信部１３との間で、有線または無線によりデータの送受信を行う。またデータ処理装置２０は、半導体装置１０−１〜１０−Ｎから所定時間あたりのソフトエラー発生数を受信すると、それらを各半導体装置１０−１〜１０−Ｎに送信する。
【００２６】
以下、半導体装置１０−１の各部の詳細を説明する。
（ＦＰＧＡ）
図５は、ＦＰＧＡの一例を示す図である。
【００２７】
ＦＰＧＡ１１−１は、ユーザ回路１１１、コンフィグレーションメモリ１１２、読み出し制御部１１３，１１４、ＣＲＣ計算部１１５、比較部１１６、レジスタｒ１，ｒ２，…，ｒｎを有している。
【００２８】
ユーザ回路１１１は、図示を省略しているが、ルックアップテーブルやフリップフロップを含む複数のロジックセルや内部配線、複数のスイッチ、メモリなどを有している。コンフィグレーションメモリ１１２に格納されている回路情報に応じてユーザ回路１１１のスイッチがオンまたはオフされることで、回路が構築される。また、ユーザ回路１１１には、ユーザからの所望の信号の入力や、ユーザ回路１１１で得られた値を出力するための入出力端子Ｐ１，Ｐ２，…，Ｐｍが接続されている。
【００２９】
コンフィグレーションメモリ１１２は、複数のデータフレームＤ１，Ｄ２，…，Ｄｎを有しており、ユーザ回路１１１の回路構成についての回路情報を記憶している。回路情報は、たとえば、半導体装置１０−１が有する図示しない記憶装置（不揮発性メモリ）から、ロードされる。
【００３０】
読み出し制御部１１３は、コンフィグレーションメモリ１１２のデータフレームＤ１〜Ｄｎの何れかを選択して、選択されたデータフレームに記憶された値を読み出す。
レジスタｒ１〜ｒｎには、コンフィグレーションメモリ１１２に回路情報がロードされる際に、それぞれのデータフレームＤ１〜Ｄｎに対応したＣＲＣデータ（たとえば、３２ビットデータ）が格納される。ＣＲＣデータは、たとえば、回路情報の作成時に設計ツールなどで事前に計算される。
【００３１】
読み出し制御部１１４は、レジスタｒ１〜ｒｎの何れかを選択して、選択されたレジスタに格納されたＣＲＣデータを読み出す。
ＣＲＣ計算部１１５は、読み出し制御部１１３で読み出されたデータフレームの値を取得して、ＣＲＣデータを計算する。
【００３２】
比較部１１６は、読み出し制御部１１３で選択されたデータフレームに記憶されている値に基づいて計算されたＣＲＣデータと、読み出し制御部１１３で選択されたデータフレームに対応したレジスタに予め格納されているＣＲＣデータとを比較する。そして、比較部１１６は、両者のＣＲＣデータが一致すれば、たとえば、“０”を、不一致のときには、ソフトエラーが発生していると判定して“１”をエラー検出端子Ｅｒｒから出力する。
【００３３】
他のＦＰＧＡ１１−２〜１１−ｍについてもＦＰＧＡ１１−１と同様の要素を備えている。
（送受信部）
図６は、送受信部の一例を示す図である。
【００３４】
送受信部１３は、ＯＲ回路１３１、カウンタ１３２、タイマ１３３、送信部１３４、受信部１３５を有している。
ＯＲ回路１３１は、たとえば、ＦＰＧＡ１１−１〜１１−ｍの各エラー検出端子Ｅｒｒ（図５参照）に接続するｍ個の入力端子を有している。ＦＰＧＡ１１−１〜１１−ｍのエラー検出端子Ｅｒｒから１つでも“１”が出力されると、ＯＲ回路１３１の出力は“１”となる。
【００３５】
カウンタ１３２は、ＯＲ回路１３１から“１”が出力される回数をカウントすることで、ＦＰＧＡ１１−１〜１１−ｍのコンフィグレーションメモリ１１２で発生するソフトエラーの発生数をカウントする。
【００３６】
なお、図６の送受信部１３の例では同じタイミングで、複数のＦＰＧＡ１１−１〜１１−ｍからソフトエラーが検出されないことを前提としている。同じタイミングで複数のＦＰＧＡ１１−１〜１１−ｍからソフトエラーが検出される確率は極めて少ないが、そのような場合を考慮して、各ＦＰＧＡ１１−１〜１１−ｍに対してカウンタを設けてその計数結果を合計する加算器を設けるようにしてもよい。これにより、より精度のよいソフトエラー発生数が得られる。
【００３７】
タイマ１３３は、カウンタ１３２がソフトエラーの発生数をカウントする時間を決めている。たとえば、タイマ１３３は、所定時間（たとえば、１時間、６時間、２４時間など）経過したら、トリガ信号を送信部１３４に送り、その時のカウント値をソフトエラー発生数として送信させる。また、タイマ１３３は、カウンタ１３２にカウント値をクリアさせる。
【００３８】
送信部１３４は、タイマ１３３からのトリガ信号を受けると、そのときのカウンタ１３２のカウント値をソフトエラー発生数としてデータ処理装置２０に送信する。
図７は、送信部が送信するソフトエラー発生情報の一例を示す図である。
【００３９】
ソフトエラー発生数を送信する際、送信部１３４は、たとえば、図７のように、自身の半導体装置１０−１の装置番号と、部品個数（ＦＰＧＡ１１−１〜１１−ｍの数）、所定時間あたりのソフトエラー発生数をソフトエラー発生情報として送信する。図７に示されている例では、たとえば、半導体装置１０−１は、装置番号が３、部品個数が２、ソフトエラー発生数が１であったことが示されている。
【００４０】
受信部１３５は、データ処理装置２０から、図７に示したような各半導体装置１０−１〜１０−Ｎのそれぞれにおける装置番号、部品個数、所定時間あたりのソフトエラー発生数を受信し、ＣＰＵ１２ａに通知する。
【００４１】
（ＣＰＵの機能ブロック）
図８は、ＣＰＵの機能ブロックの一例を示す図である。
ＣＰＵ１２ａは、受信情報記憶部１２１、故障率計算部１２２、要求値記憶部１２３、比較判定部１２４、制御値生成部１２５を有している。
【００４２】
受信情報記憶部１２１は、送受信部１３で受信された、各半導体装置１０−１〜１０−Ｎのそれぞれにおける装置番号、部品個数、所定時間あたりのソフトエラー発生数を、ＣＰＵ１２ａの汎用入出力インタフェース（図示せず）を介して取得し、記憶する。
【００４３】
図９は、受信情報記憶部に記憶されるデータ例を示す図である。
図９に示されているテーブルのように、受信情報記憶部１２１は、各半導体装置１０−１〜１０−Ｎの装置番号（たとえば、図９のように１からＮまでの番号）、部品個数（ＦＰＧＡ数）、ソフトエラー発生数を記憶する。
【００４４】
故障率計算部１２２は、以下の式（１）に基づいて故障率を算出する。
【００４５】
【数１】
2013123181.tif 000003
【００４６】
式（１）で、Ｎは、半導体装置１０−１〜１０−Ｎの数、Ｔはタイマ１３３に設定される時間、すなわちカウンタ１３２がソフトエラー発生数を計数する一定時間である。
故障率は、半導体装置１０−１〜１０−Ｎで時間Ｔの間に発生したソフトエラー発生数の合計を、全ＦＰＧＡ数と時間Ｔの積で割ったものであり、１つのＦＰＧＡで単位時間当たりに発生するソフトエラー発生数を示す。
【００４７】
多くのＦＰＧＡで発生したソフトエラー発生数に基づいて故障率を求めることで、算出される故障率の精度が向上する。
要求値記憶部１２３には、たとえば、半導体装置１０−１の図示しない入出力端子から入力される、ユーザにより指定された故障率の要求値が記憶されている。
【００４８】
比較判定部１２４は、故障率計算部１２２で計算された故障率と、要求値記憶部１２３に記憶されている故障率の要求値とを比較し、比較結果を出力する。比較結果には、たとえば、計算された故障率が要求値に対してどれだけ小さいのかを示す情報も含まれる。
【００４９】
制御値生成部１２５は、比較判定部１２４での比較結果に基づき、ＤＣ／ＤＣコントローラ１２ｂに、ＦＰＧＡ１１−１〜１１−ｍへ供給する電源電圧を変更させるための制御値を送出する。
【００５０】
たとえば、ＤＣ／ＤＣコントローラ１２ｂが、ＶＤＤ＿ｍａｘ、ＶＤＤ＿ｔｙｐ、ＶＤＤ＿ｍｉｎ（大小関係はＶＤＤ＿ｍａｘ＞ＶＤＤ＿ｔｙｐ＞ＶＤＤ＿ｍｉｎ）の３段階で電源電圧を変更できるとする。この場合、制御値生成部１２５は、たとえば、計算された故障率が要求値より大きい場合には、最大の電源電圧ＶＤＤ＿ｍａｘがＦＰＧＡ１１−１〜１１−ｍに供給されるように、ＤＣ／ＤＣコントローラ１２ｂに２ビットの制御値“１１”を送出する。また、制御値生成部１２５は、たとえば、計算された故障率が要求値に対して１５％未満小さい場合には、電源電圧ＶＤＤ＿ｔｙｐがＦＰＧＡ１１−１〜１１−ｍに供給されるように、ＤＣ／ＤＣコントローラ１２ｂに制御値“１０”を送出する。また、制御値生成部１２５は、たとえば、計算された故障率が要求値に対して１５％以上小さい場合には、電源電圧ＶＤＤ＿ｍｉｎがＦＰＧＡ１１−１〜１１−ｍに供給されるように、ＤＣ／ＤＣコントローラ１２ｂに制御値“０１”を送出する。
【００５１】
なお、最大の電源電圧ＶＤＤ＿ｍａｘは、たとえば、故障率が要求値となるときの電源電圧に基づいて設定される。たとえば、図２に示したような特性を有するＦＰＧＡにおいて、ユーザにより１１５０［ＦＩＴ］が要求値と指定された場合、ＤＣ／ＤＣコントローラ１２ｂでは、ＶＤＤ＝１．２６ＶがＶＤＤ＿ｍａｘと設定される。
【００５２】
ＣＰＵ１２ａからＤＣ／ＤＣコントローラ１２ｂへの制御値の送出は、汎用インタフェース（たとえば、Ｉ２Ｃバスなど）を介して行われる。
（ＤＣ／ＤＣコントローラ）
ＤＣ／ＤＣコントローラ１２ｂは、ＣＰＵ１２ａから送出される制御値に応じて、プログラマブルにＦＰＧＡ１１−１〜１１−ｍに供給する電源電圧を変更する。図示を省略するが、ＤＣ／ＤＣコントローラ１２ｂは、電源電圧制御用のレジスタを有しており、そのレジスタにＣＰＵ１２ａからの制御値が書き込まれることにより、出力される電源電圧が設定される。
【００５３】
以上、半導体装置１０−１の各部の例を説明したが、半導体装置１０−２〜１０−Ｎについても同様の要素を有している。
次に、半導体装置１０−１の動作例を説明する。なお、以下に示す動作例でも、ＤＣ／ＤＣコントローラ１２ｂが、ＶＤＤ＿ｍａｘ、ＶＤＤ＿ｔｙｐ、ＶＤＤ＿ｍｉｎの３段階で電源電圧を変更する場合を説明する。
【００５４】
図１０は、半導体装置の一例の動作を示すフローチャートである。
半導体装置１０−１の電源がオンになると（ステップＳ１０）、ＣＰＵ１２ａの制御のもと、ＤＣ／ＤＣコントローラ１２ｂは電源電圧としてＶＤＤ＿ｍａｘをＦＰＧＡ１１−１〜１１−ｍに供給する（ステップＳ１１）。これは、電源電圧が印加されていない状態では、故障率が要求値より大きいと仮定しているためである。図２に示したように電源電圧が高い方がソフトエラー発生数を抑制できるため、ＤＣ／ＤＣコントローラ１２ｂは、３段階の電源電圧のうち、まずは最大のＶＤＤ＿ｍａｘをＦＰＧＡ１１−１〜１１−ｍに供給する。
【００５５】
そして、送受信部１３のカウンタ１３２はＦＰＧＡ１１−１〜１１−ｍから出力されるエラー検出結果をもとに、ソフトエラー発生数のカウントを開始する（ステップＳ１２）。なお、たとえば、カウント中に電源がオフになると半導体装置１０−１の動作が終了する（ステップＳ１３）。電源がオンの状態が継続している間、送受信部１３のタイマ１３３は、カウンタ１３２でのカウント時間が時間Ｔに達したか否か判定する（ステップＳ１４）。時間Ｔは、カウンタ１３２がソフトエラー発生数を計数する時間（たとえば、１時間、６時間、２４時間）であり、式（１）に示したように、故障率を算出する際に用いられる。
【００５６】
カウント時間が時間Ｔに達していない場合には、電源がオン状態であれば、カウンタ１３２でのカウントが継続される。カウント時間が時間Ｔに達すると、送受信部１３は、ソフトエラー発生情報の送受信を行う（ステップＳ１５）。ステップＳ１５の処理では、送受信部１３のタイマ１３３は、トリガ信号を送信部１３４に送り、その時のカウント値（ソフトエラー発生数）を含む、図７に示したようなソフトエラー発生情報を送信させる。なお、タイマ１３３は、カウンタ１３２にカウント値をクリアさせる。また、受信部１３５はデータ処理装置２０から、他の半導体装置１０−２〜１０−Ｎについてのソフトエラー発生情報を受信する。
【００５７】
ＣＰＵ１２ａは、受信したソフトエラー発生情報から、式（１）に基づいて故障率を計算し（ステップＳ１６）、故障率の要求値との比較判定処理を行う（ステップＳ１７）。
計算した故障率が要求値に対して１５％以上小さいときには、ＣＰＵ１２ａは、ＤＣ／ＤＣコントローラ１２ｂに設定する制御値を“０１”とする（ステップＳ１８）。これにより、ＤＣ／ＤＣコントローラ１２ｂは、ＦＰＧＡ１１−１〜１１−ｍに供給する電源電圧（ＶＤＤ）をＶＤＤ＿ｍｉｎとする（ステップＳ１９）。
【００５８】
計算した故障率が要求値に対して１５％未満小さいときには、ＣＰＵ１２ａは、ＤＣ／ＤＣコントローラ１２ｂに設定する制御値を“１０”とする（ステップＳ２０）。これにより、ＤＣ／ＤＣコントローラ１２ｂは、ＦＰＧＡ１１−１〜１１−ｍに供給する電源電圧をＶＤＤ＿ｔｙｐとする（ステップＳ２１）。
【００５９】
計算した故障率が要求値以上のときには、ＣＰＵ１２ａは、ＤＣ／ＤＣコントローラ１２ｂに設定する制御値を“１１”とする（ステップＳ２２）。これにより、ＤＣ／ＤＣコントローラ１２ｂは、ＦＰＧＡ１１−１〜１１−ｍに供給する電源電圧をＶＤＤ＿ｍａｘとする（ステップＳ２３）。
【００６０】
ステップＳ１９、ステップＳ２１、またはステップＳ２３の処理が終わると、ステップＳ１３からの処理が繰り返される。
なお、図１０における各ステップの順序は特に上記に限定されるものではない。
【００６１】
図１１は、ＦＰＧＡに供給される電源電圧の制御例を示す図である。横軸が時間、縦軸が電源電圧を示している。
図１１に示されているように、ＦＰＧＡ１１−１〜１１−ｍに供給される電源電圧は、半導体装置１０−１の電源立ち上げ時には、ＶＤＤ＿ｍａｘに設定される。そして、その後時間Ｔごとに定期的に、前の時間Ｔの間におけるソフトエラー発生数から算出される故障率と要求値との比較結果に応じて、ＶＤＤ＿ｍａｘ、ＶＤＤ＿ｔｙｐ、ＶＤＤ＿ｍｉｎの三段階の何れかの電源電圧が設定される。
【００６２】
図１２は、故障率、電源電圧及び消費電力の関係の一例を示す図である。
横軸は電源電圧の大きさを示し、左の縦軸は故障率（ＦＩＴ数）、右の縦軸は消費電力を示している。また、図１２には、図２に示したような、故障率と電源電圧の関係が直線で示されている。故障率の要求値を満たす電源電圧がＶＤＤ＿ｍａｘとなっている。電源電圧がＶＤＤ＿ｍａｘのときには消費電力Ｗ＿ｍａｘとなる。故障率の要求値を満たすために常に電源電圧をＶＤＤ＿ｍａｘに固定していると消費電力が増大する。
【００６３】
これに対して、本実施の形態の半導体装置１０−１〜１０−Ｎにおける電源電圧の制御方法によれば、算出された故障率に応じて、ＦＰＧＡ１１−１〜１１−ｍに供給される電源電圧が変更されるので、消費電力を抑制できる。
【００６４】
たとえば、故障率の要求値に対して１５％以上小さい算出値Ａが得られたときには、電源電圧はＶＤＤ＿ｍｉｎとなる。たとえば、故障率の要求値が１１５０［ＦＩＴ］であるとした場合には、算出された故障率が９７７［ＦＩＴ］以下のときに、電源電圧がＶＤＤ＿ｍｉｎとなる。
【００６５】
また、故障率の要求値に対して１５％未満の範囲で小さい算出値Ｂが得られたときには、電源電圧はＶＤＤ＿ｔｙｐとなる。たとえば、故障率の要求値が１１５０［ＦＩＴ］であるとした場合には、算出された故障率が９７８〜１１４９［ＦＩＴ］のときに、電源電圧がＶＤＤ＿ｔｙｐとなる。
【００６６】
故障率の要求値よりも大きい算出値Ｃが得られたときには、電源電圧はＶＤＤ＿ｍａｘとなる。
このように、算出された故障率が要求値よりも低いときには電源電圧がＶＤＤ＿ｍａｘよりも低い値（ＶＤＤ＿ｔｙｐまたはＶＤＤ＿ｍｉｎ）となり、消費電力もＷ＿ｍａｘよりも低い値（Ｗ＿ｔｙｐまたはＷ＿ｍｉｎ）とすることができる。
【００６７】
なお、ＦＰＧＡの消費電力ＰＤは以下の式で表せる。
【００６８】
【数２】
2013123181.tif 000004
【００６９】
上式において、ＩＣＣＳはスタティック電源電流、Ｃは負荷容量、ｆは動作周波数である。また、（Ａ）の項は静的消費電力、（Ｂ）の項は動的消費電力である。
たとえば、ＶＤＤ＿ｍａｘ＝１．２６Ｖ、ＶＤＤ＿ｔｙｐ＝１．２０Ｖ、ＶＤＤ＿ｍｉｎ＝１．１４Ｖである場合、電源電圧が１．２６Ｖから１．１４Ｖに変更されると、消費電力は、（Ａ）の部分で１０％、（Ｂ）の部分で２０％低減できる。全体の消費電力に占める（Ａ）と（Ｂ）の割合を１：１とすると、全体的には１５％消費電力を削減できる。
【００７０】
このように、故障率の要求値を考慮した電源電圧制御が行われるため、信頼性を維持したまま半導体装置１０−１〜１０−Ｎの消費電力の抑制が可能となる。
なお、上記では３段階で電源電圧を変更する例について示したが、これに限定されず、２段階または４段階以上で電源電圧を変更するようにしてもよい。また、上記では算出された故障率が要求値に対して１５％未満の範囲で小さいものか１５％以上小さいかで、電源電圧を変えているが、この値（１５％）に限定されるものではないことは言うまでもない。
【００７１】
（変形例）
図４に示した半導体装置１０−１の例では、半導体装置１０−１内に所定期間のソフトエラー発生数をカウントする送受信部を設けた場合について説明したが、これに限定されない。
【００７２】
たとえば、所定期間のソフトエラー発生数をカウントする送受信部を半導体装置１０−１とは別のボードに設けるようにしてもよい。
図１３は、複数のボードを有する半導体装置の例を示す図である。
【００７３】
図１３に示されている例では、バックボードＢＫに対して、複数のボードＢ１，Ｂ２，Ｂ３が搭載されている。ボードＢ１，Ｂ２は、図４に示した半導体装置１０−１と同様に、ＦＰＧＡ１１−１〜１１−ｍと電圧制御部１２を有しているが、送受信部１３ａは、別のボードＢ３に備えられている。
【００７４】
この送受信部１３ａは、図６に示した送受信部１３と同様の要素を備えており、ボードＢ１，Ｂ２のＦＰＧＡ１１−１〜１１−ｍから出力されるエラー検出結果に基づいて、ソフトエラー発生数をカウントする。そして、送受信部１３ａは、所定時間でのソフトエラー発生数と、装置番号と、ボードＢ１，Ｂ２のＦＰＧＡ数の合計値などを、ソフトエラー発生情報としてデータ処理装置２０に送信する。また、送受信部１３ａは、データ処理装置２０から、図示しない他の半導体装置のソフトエラー発生情報を受信して、各ボードＢ１，Ｂ２のＣＰＵ１２ａに通知する。
【００７５】
このような変形例においても、前述の実施の形態と同様の効果が得られる。
ところで、上記の説明では、ＣＰＵ１２ａが式（１）に基づき故障率を算出する、として説明したが、データ処理装置２０が故障率を算出し、算出した故障率を電圧制御部１２に対して送受信部１３，１３ａを介して通知するようにしてもよい。
【００７６】
なお、データ処理装置２０は、たとえば、以下のようなハードウェアにて実現可能である。
図１４は、データ処理装置の一例を示す図である。
【００７７】
データ処理装置２０は、ＣＰＵ（Central Processing Unit）２１１によって装置全体が制御されている。ＣＰＵ２１１には、バス２１８を介してＲＡＭ（Random Access Memory）２１２と複数の周辺機器が接続されている。
【００７８】
ＲＡＭ２１２は、データ処理装置２０の主記憶装置として使用される。ＲＡＭ２１２には、ＣＰＵ２１１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２１２には、ＣＰＵ２１１による処理に用いる各種データが格納される。
【００７９】
バス２１８に接続されている周辺機器としては、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）２１３、グラフィック処理装置２１４、入力インタフェース２１５、光学ドライブ装置２１６、及び通信インタフェース２１７がある。
【００８０】
ＨＤＤ２１３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２１３は、データ処理装置２０の二次記憶装置として使用される。ＨＤＤ２１３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００８１】
グラフィック処理装置２１４には、モニタ２１４ａが接続されている。グラフィック処理装置２１４は、ＣＰＵ２１１からの命令にしたがって、画像をモニタ２１４ａの画面に表示させる。モニタ２１４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００８２】
入力インタフェース２１５には、キーボード２１５ａとマウス２１５ｂとが接続されている。入力インタフェース２１５は、キーボード２１５ａやマウス２１５ｂから送られてくる信号をＣＰＵ２１１に送信する。なお、マウス２１５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００８３】
光学ドライブ装置２１６は、レーザ光などを利用して、光ディスク２１６ａに記録されたデータの読み取りを行う。光ディスク２１６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２１６ａには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００８４】
通信インタフェース２１７は、たとえば、ネットワーク２１７ａを介して、図４に示したような半導体装置１０−１〜１０−Ｎ（または図１３に示したようなボードＢ３の送受信部１３ａ）に接続されている。そして、通信インタフェース２１７は、ネットワーク２１７ａを介して、半導体装置１０−１〜１０−Ｎからソフトエラー発生情報を受信する。また、通信インタフェース２１７は、受信した全ての半導体装置１０−１〜１０−Ｎのソフトエラー発生情報を、ネットワーク２１７ａを介して、各半導体装置１０−１〜１０−Ｎに送信する。また、データ処理装置２０が故障率を算出する場合には、通信インタフェース２１７は、ＣＰＵ２１１により算出された故障率を各半導体装置１０−１〜１０−Ｎに送信する。
【００８５】
以上のようなハードウェア構成によって、データ処理装置２０を実現することができる。
以上、実施の形態に基づき、本発明の半導体装置及び電源電圧制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【００８６】
以上説明した複数の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  回路情報を記憶する記憶部を備え、前記記憶部におけるソフトエラーの有無を検出し、エラー検出結果を出力するＦＰＧＡと、
所定時間あたりの前記ＦＰＧＡでのソフトエラー発生数に応じて前記ＦＰＧＡに供給する電源電圧を変更する電圧制御部と、
を有することを特徴とする半導体装置。
【００８７】
（付記２）  前記電圧制御部は、前記所定時間あたりの前記ソフトエラー発生数と前記ＦＰＧＡの数に基づいて前記ＦＰＧＡにおける故障率を算出し、算出された前記故障率と要求される故障率の値との比較結果に基づいて、前記電源電圧を変更することを特徴とする付記１に記載の半導体装置。
【００８８】
（付記３）  前記電圧制御部は、前記故障率が前記要求される故障率の値よりも小さいときに、前記故障率が前記要求される故障率の値以上のときよりも、前記電源電圧を小さくすることを特徴とする付記２に記載の半導体装置。
【００８９】
（付記４）  前記ソフトエラー発生数及び前記ＦＰＧＡの数を送信するとともに、他の半導体装置が有する他のＦＰＧＡの数及び前記他のＦＰＧＡでの前記所定時間あたりのソフトエラー発生数を受信する送受信部を更に有し、
前記電圧制御部は、前記故障率を、前記所定時間あたりの前記ＦＰＧＡ及び前記他のＦＰＧＡでの前記ソフトエラー発生数の総数と、前記ＦＰＧＡ及び前記他のＦＰＧＡの総数に基づいて算出することを特徴とする付記２または３に記載の半導体装置。
【００９０】
（付記５）  前記電圧制御部が、前記所定時間あたりの前記エラー検出結果から前記ソフトエラー発生数を算出することを特徴とする付記１乃至４の何れか１つに記載の半導体装置。
【００９１】
（付記６）  前記エラー検出結果に応じて、前記ソフトエラー発生数を計数するカウンタを有することを特徴とする付記１乃至４の何れか１つに記載の半導体装置。
（付記７）  前記電圧制御部は、前記所定時間ごとに前記電源電圧を定期的に変更することを特徴とする付記１乃至６の何れか１つに記載の半導体装置。
【００９２】
（付記８）  ＦＰＧＡに備えられている回路情報を記憶する記憶部にて所定時間あたりに発生するソフトエラーの発生数に応じ、前記ＦＰＧＡに供給する電源電圧を変更する、ことを特徴とする電源電圧制御方法。
【００９３】
（付記９）  前記所定時間あたりの前記ソフトエラー発生数と前記ＦＰＧＡの数に基づいて前記ＦＰＧＡにおける故障率を算出し、算出された前記故障率と要求される故障率の値との比較結果に基づいて、前記電源電圧を変更することを特徴とする付記８に記載の電源電圧制御方法。
【００９４】
（付記１０）  前記故障率が前記要求される故障率の値よりも小さいときに、前記故障率が前記要求される故障率の値以上のときよりも、前記電源電圧を小さくすることを特徴とする付記９に記載の電源電圧制御方法。
【００９５】
（付記１１）  前記所定時間ごとに前記電源電圧を定期的に変更することを特徴とする付記８乃至１０の何れか１つに記載の電源電圧制御方法。
【符号の説明】
【００９６】
１  半導体装置
２−１〜２−ｎ  ＦＰＧＡ
２ａ  ユーザ回路
２ｂ  記憶部（コンフィグレーションメモリ）
２ｃ  エラー検出部
３  電圧制御部
【図１】
2013123181.tif 000005
【図２】
2013123181.tif 000006
【図３】
2013123181.tif 000007
【図４】
2013123181.tif 000008
【図５】
2013123181.tif 000009
【図６】
2013123181.tif 000010
【図７】
2013123181.tif 000011
【図８】
2013123181.tif 000012
【図９】
2013123181.tif 000013
【図１０】
2013123181.tif 000014
【図１１】
2013123181.tif 000015
【図１２】
2013123181.tif 000016
【図１３】
2013123181.tif 000017
【図１４】
2013123181.tif 000018