(57)【要約】【課題】従来の半導体装置では、不揮発性メモリに格納された機能回路の動作設定値を補正する補正データのエラーをその利用タイミング毎に検出することができず、十分な信頼性を確保できない問題があった。【解決手段】一実施の形態によれば、半導体装置は、補正データＯＣを含むトリミングコードＴＣを不揮発性メモリ１４から読み出し、補正データＯＣのエラーの有無を検証して、補正データＯＣにエラーがあればそれを他の回路に通知する。【選択図】図１
2014075065.tif 000002
【特許請求の範囲】
【請求項１】
補正コードにより回路の動作を規定する動作設定値を補正した状態で予め設定された機能を実現する補正対象機能回路を少なくとも１つ含む機能回路群と、
前記補正コードを含むトリミングコードを少なくとも格納する不揮発性メモリと、
前記トリミングコードを読み出して、前記補正コードのエラーを検査し、前記エラーの重要度を示すエラー検出信号を出力するエラー検出回路と、を有し、
前記機能回路群は、予め規定された所定の処理を前記エラー検出信号により示される前記エラーの重要度に応じて実行する半導体装置。
【請求項２】
前記トリミングコードには、前記補正コードと前記補正コードの正当性の確認に利用されるエラー訂正コードとが含まれ、
前記エラー検出回路は、
前記不揮発性メモリから読み出した前記トリミングコードを格納する第１のレジスタと、
前記エラー訂正コードを用いて前記第１のレジスタに格納された前記補正コードのエラーを検出して前記エラー検出信号を出力するエラー判断回路と、
前記エラー判断回路により前記補正コードのエラーの状態を示すエラー検出値が格納される第２のレジスタと、を有する請求項１に記載の半導体装置。
【請求項３】
前記補正対象機能回路は、前記第１のレジスタに格納された前記トリミングコードに含まれる前記補正コードに基づき前記動作設定値を補正する請求項２に記載の半導体装置。
【請求項４】
前記エラー判断回路は、前記補正コードにおいて誤りビット数が１ビットであることを検出した場合、前記エラー訂正コードを用いて誤りビットを訂正して訂正済み補正コードを生成して第３のレジスタに格納する請求項２に記載の半導体装置。
【請求項５】
前記補正対象機能回路は、前記第３のレジスタに格納された前記訂正済み補正コードに基づき前記動作設定値を補正する請求項４に記載の半導体装置。
【請求項６】
前記エラー判断回路は、前記補正コードの誤りビット数が１ビットであることを検出した場合に第１のエラー検出信号を出力し、前記補正コードの誤りビット数が２ビットであることを検出した場合に第２のエラー検出信号を出力する請求項２に記載の半導体装置。
【請求項７】
前記機能回路群は、前記第２のレジスタに格納された前記エラー検出値を参照し、前記不揮発性メモリに格納されるプログラムにより規定された前記所定の処理を行う演算部を含む請求項２に記載の半導体装置。
【請求項８】
前記エラー検出回路は、
同一値を有する複数の前記補正コードを含むトリミングコードを前記不揮発性メモリから読み出して格納する第１のレジスタと、
前記第１のレジスタに格納された複数の前記補正コードの正当性を多数決により判断して前記エラー検出信号を出力する多数決回路と、
前記多数決回路が前記補正コードのエラーの状態を示すエラー検出値を格納する第２のレジスタと、
前記多数決回路において数が多いと判断された前記補正コードを格納する第３のレジスタと、を有する請求項１に記載の半導体装置。
【請求項９】
前記トリミングコードには、前記補正コードと前記補正コードの正当性の確認に利用されるエラー確認コードとが含まれ、
前記エラー検出回路は、
前記不揮発性メモリから読み出した前記トリミングコードを格納する第１のレジスタと、
前記エラー確認コードを用いて前記第１のレジスタに格納された前記補正コードのエラーを検出して前記エラー検出信号を出力するエラー判断回路と、
前記エラー判断回路が前記補正コードのエラーの状態を示すエラー検出値を格納する第２のレジスタと、を有する請求項１に記載の半導体装置。
【請求項１０】
前記機能回路群は、前記エラー検出信号に基づき他の機能回路の動作モードを切り替える状態制御回路を含む請求項１に記載の半導体装置。
【請求項１１】
前記機能回路群は、前記不揮発性メモリに格納されたプログラムを実行する演算部を有し、
前記状態制御回路は、前記エラー検出信号により前記補正コードにエラーがあることの通知を受けたことに応じて前記演算部の演算能力を低下させる内部状態制御信号を出力する請求項１０に記載の半導体装置。
【請求項１２】
前記演算部は、前記内部状態制御信号が入力されたことに応じて動作を停止させる請求項１１に記載の半導体装置。
【請求項１３】
前記演算部は、複数の演算コアを有し、前記内部状態制御信号が入力されたことに応じて動作させる演算コア数を少なくする請求項１１に記載の半導体装置。
【請求項１４】
前記補正対象機能回路は、入力されるアナログ信号の信号レベルに対応したデジタル値を有する出力信号を出力するアナログデジタル変換回路と、入力されるデジタル信号のデジタル値に対応した信号レベルを有するアナログ信号を出力するデジタルアナログ変換回路と、予め設定された電圧値を有する定電圧を出力する定電圧生成回路と、半導体基板の温度に対応した温度検出値を出力する温度検出回路と、クロック信号を生成するクロック生成回路と、の少なくとも１つを含む請求項１に記載の半導体装置。
【請求項１５】
前記不揮発性メモリは、前記補正対象機能回路の１つであって、前記トリミングコードを含む情報が格納されるメモリセル領域と、前記メモリセル領域への前記情報の書き込み及び読み出しを制御するメモリ制御回路と、を含み、
前記メモリ制御回路は、
書き込み時に前記メモリセル領域に与える電圧値を設定する前記動作設定値を前記トリミングコードに基づき補正する書き込み制御回路と、
前記機能回路群に含まれる他の機能回路から出力される書き込み制御信号に応じて前記書き込み制御回路に書き込み動作を指示する書き込みイネーブル信号を出力する指示信号制御回路と、を有し、
前記指示信号制御回路は、前記エラー検出信号により前記エラーが発生したことを通知された場合には前記書き込み制御信号によらず、前記書き込みイネーブル信号を前記書き込み制御回路による書き込み動作を停止させるディスイネーブル状態とする請求項１に記載の半導体装置。
【請求項１６】
前記エラー検出信号を外部に出力する外部端子を有する請求項１に記載の半導体装置。
【請求項１７】
補正コードにより回路の動作を規定する動作設定値を補正した状態で予め設定された機能を実現する補正対象機能回路を少なくとも１つ含む機能回路群と、前記補正コードを含むトリミングコードを少なくとも格納する不揮発性メモリと、を有する半導体装置の回路動作開始方法であって、
前記補正対象機能回路の動作開始に合わせて前記補正コードを含むトリミングコードを前記不揮発性メモリから読み出すトリミングコード読み出しステップと、
前記補正コードにおけるエラーの有無を確認するエラー検出ステップと、
前記補正コードを前記補正対象機能回路に与える動作設定ステップと、
前記補正コードにエラーが含まれている場合に前記機能回路群に予め規定された所定の処理を前記エラーの重要度に応じて実行させるエラー対応処理ステップと、
を有する半導体装置の回路動作開始方法。
【請求項１８】
前記エラー検出ステップにおいて前記エラーの重要度を示すエラー検出値を生成し、前記機能回路群に含まれる演算部において前記エラー検出値に応じた処理を実行する請求項１７に記載の半導体装置の回路動作開始方法。
【請求項１９】
前記補正コードに前記エラーが含まれていた場合、前記エラー検出ステップにおいて、前記補正コードの前記エラーを訂正して訂正済み補正コードを生成し、
前記動作設定ステップにおいて前記訂正済み補正コードを前記補正対象機能回路に与える請求項１７に記載の半導体装置の回路動作開始方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置及びその回路動作開始方法に関し、例えば予め設定された値に基づき動作状態を決定する半導体装置及びその回路動作開始方法に関する。
【背景技術】
【０００２】
近年、半導体装置では、プログラム及びデータを不揮発性メモリに格納し、当該プログラム及びデータに基づき各種処理を行うことが行われている。このような半導体装置においては、プログラム及びデータの信頼性を確保することが半導体装置の動作の信頼性を確保する上で重要になる。そこで、特許文献１、２において、不揮発性メモリの信頼性を向上させる技術が開示されている。
【０００３】
特許文献１の半導体装置では、半導体装置の動作中にプログラムを格納するフラッシュＲＯＭのチェックを行い、当該チェック結果をＥＥＰＲＯＭに格納する。そして、特許文献１の半導体装置は、装置起動直後のイニシャル処理においてＥＥＰＲＯＭから前回のチェック結果を読み出し、チェック結果に異常がないことを確認した上でプログラムを実行する。
【０００４】
特許文献２の半導体装置は、電源回路、ＣＰＵ、フラッシュＲＯＭを有する。そして、特許文献２の半導体装置では、電源投入時において、フラッシュＲＯＭに異常判定処理を行う際に、通常動作時よりも低い電源電圧をフラッシュＲＯＭに与える。これにより、特許文献２では、フラッシュＲＯＭにおける予期せぬデータ変化を予測する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１２９３２２号公報
【特許文献２】特開２００２−３２８８４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、半導体装置では、回路素子のばらつき起因する回路特性のずれを抑制するために回路特性を補正する補正データを不揮発性メモリに格納し、回路動作時に当該補正データにより回路特性を補正することがある。このような補正データにおいてエラーが発生した場合、回路特性が正しく補正されず大きな不具合を引き起こすことがある。しかしながら、特許文献１、２に記載された技術では、不揮発性メモリから読み出したデータの正当性については確認できず、上記補正データのエラーに起因する重大な不具合を回避できない問題がある。その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置及びその回路動作開始方法は、補正データを含むトリミングコードを不揮発性メモリから読み出し、補正データのエラーの有無を検証して、補正データにエラーがあればそれを他の回路に通知する。
【発明の効果】
【０００８】
一実施の形態によれば、補正データの誤りに起因する不具合に対して適切な処置が可能な半導体装置を実現できる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかる半導体装置を含む情報処理システムブロック図である。
【図２】実施の形態１にかかる不揮発性メモリの概略図である。
【図３】実施の形態１にかかるトリミングコードのデータ構造を示す図である。
【図４】実施の形態１にかかるトリミングコードエラー検出回路のブロック図である。
【図５】実施の形態１にかかる半導体装置の動作を示すタイミングチャートである。
【図６】実施の形態１にかかる半導体装置の動作を示すタイミングチャートである。
【図７】実施の形態２にかかる半導体装置を含む情報処理システムのブロック図である。
【図８】実施の形態３にかかる半導体装置を含む情報処理システムのブロック図である。
【図９】実施の形態３にかかるトリミングコードエラー検出回路のブロック図である。
【図１０】実施の形態４にかかる半導体装置を含む情報処理システムのブロック図である。
【図１１】実施の形態４にかかるトリミングコードエラー検出回路のブロック図である。
【図１２】実施の形態５にかかるトリミングコードエラー検出回路のブロック図である。
【図１３】実施の形態６にかかるトリミングコードエラー検出回路のブロック図である。
【図１４】実施の形態７にかかる半導体装置を含む情報処理システムのブロック図である。
【図１５】実施の形態８にかかる半導体装置を含む情報処理システムのブロック図である。
【図１６】実施の形態９にかかる半導体装置を含む情報処理システムのブロック図である。
【図１７】実施の形態９にかかるメモリ制御回路のブロック図である。
【図１８】実施の形態９にかかる半導体装置の動作を示すタイミングチャートである。
【図１９】実施の形態９にかかる半導体装置の動作を示すタイミングチャートである。
【発明を実施するための形態】
【００１０】
実施の形態１
以下、図面を参照して実施の形態について説明する。図１に実施の形態１にかかる半導体装置１を含む情報処理システムのブロック図を示す。図１に示すように、実施の形態１にかかる情報処理システムは、上位システム１００と半導体装置１が接続される。図１では、上位システム１００から半導体装置１に伝達される状態制御信号（例えば、リセット信号）のみを示したが、上位システム１００と半導体装置１とは、システムバス等の配線によって複数の信号、或いは、コマンドのやりとりを行う。上位システム１００は、例えば、車輌に搭載されるＥＣＵ（Engine Control Unit）、或いは、情報処理システム全体の動作を制御する統合制御部等が考えられる。
【００１１】
図１に示すように、半導体装置１は、演算部１０、クロック生成回路１１、定電圧生成回路１２、状態制御回路１３、不揮発性メモリ１４、エラー検出回路（例えば、トリミングコードエラー検出回路）１５を有する。これら各ブロックは、半導体装置１において予め設定される機能を実現する機能回路である。つまり、半導体装置１は、複数の機能回路が含まれる機能回路群を有する。また、実施の形態１では、補正コードＯＣを用いて、定電圧生成回路１２が生成する内部電源電圧ｉＶＤＤの電圧値を補正する例を説明する。つまり、実施の形態１では、定電圧生成回路１２が補正対象機能回路となる。
【００１２】
また、図１では、機能回路の間で伝達される信号を示したが、これらの信号は例えば、半導体装置１内の機能回路間を相互に接続するローカルバスを介して伝達されても良く、また、個別の配線によって伝達されても良い。
【００１３】
演算部１０は、不揮発性メモリ１４に格納されるプログラムにより規定された所定の処理を行う。なお、図１では、演算部１０は、不揮発性メモリ１４からプログラムを含むデータＤＡＴを読み出す経路のみを示したが、演算部１０は、不揮発性メモリ１４に対してデータＤＡＴの書き込みを行っても良い。
【００１４】
クロック生成回路１１は、半導体装置１内で利用されるクロック信号ＣＬＫを生成する。半導体装置１では、このクロック信号ＣＬＫに基づき論理回路を動作させる。なお、図１では、クロック生成回路１１は、１つのクロック信号ＣＬＫを生成する例を示したが、クロック生成回路１１は、周波数の異なる複数のクロック信号ＣＬＫを生成しても良く、また、クロック信号ＣＬＫの周波数を半導体装置１の動作状況に合わせて変化させても良い。
【００１５】
定電圧生成回路１２は、内蔵する動作設定値（不図示）により決定される電圧値を有する内部電源電圧ｉＶＤＤを生成する。また、定電圧生成回路１２は、補正対象機能回路であって、補正コードＯＣに基づき動作設定値を補正した状態で動作する。演算部１０は、内部電源電圧ｉＶＤＤを動作電源として動作する。図１では、内部電源電圧ｉＶＤＤは、演算部１０にのみ与える例を示したが、定電圧生成回路１２は、半導体装置１内の他の機能回路に対して内部電源電圧ｉＶＤＤを供給しても良い。また、定電圧生成回路１２は、半導体装置１の動作状況に応じて内部電源電圧ｉＶＤＤの電圧値を変化させても良い。
【００１６】
状態制御回路１３は、状態制御信号ＳＴＣ又はエラー検出信号ＥＲＲに基づき他の機能回路（例えば、演算部１０）の動作モードを切り替える。上位システム１００から与えられる状態制御信号ＳＴＣと、トリミングコードエラー検出回路１５から与えられるエラー検出信号ＥＲＲと、に応じて演算部１０の動作状況を切り替える内部状態制御信号ｉＳＴＣを出力する。例えば、状態制御信号ＳＴＣがリセット信号である場合、状態制御回路１３は、リセット信号がイネーブル状態となった後に予め設定されたクロック数のウェイト期間を経た後に、エラー検出信号ＥＲＲを参照する。そして、状態制御回路１３は、エラー検出信号ＥＲＲの論理レベルを参照した時点で、エラー検出信号ＥＲＲがエラー検出状態（例えば、ハイレベル）であれば、内部リセット信号（例えば、内部状態制御信号ｉＳＴＣ）をリセット状態（例えば、ハイレベル）として演算部１０をリセット状態（初期状態）で維持して、演算部１０を停止状態とする。また、状態制御回路１３は、エラー検出信号ＥＲＲの論理レベルを参照した時点で、エラー検出信号ＥＲＲがエラー未検出状態（例えば、ロウレベル）であれば、内部状態制御信号ｉＳＴＣをリセット解除状態（例えば、ロウレベル）として演算部１０をリセット解除状態として、演算部１０を動作状態とする。
【００１７】
なお、状態制御回路１３は、状態制御信号ＳＴＣに対応する処理と、エラー検出信号ＥＲＲに対応する処理と、を異なる処理とすることもできる。さらに、状態制御回路１３は、リセット制御のみならず、演算部１０をスタンバイ状態（停止状態、或いは、低消費電力動作状態）に制御するように構成することもできる。
【００１８】
不揮発性メモリ１４は、補正コードＯＣを含むトリミングコードＴＣを少なくとも格納する。実施の形態１では、不揮発性メモリ１４は、トリミングコードＴＣに加えて、演算部１０が利用するプログラム及び演算部１０の処理で利用されるデータが格納される。そこで、図２に不揮発性メモリ１４の概略図を示す。図２に示すように、不揮発性メモリ１４は、プログラム格納領域とトリミングコード格納領域とを有する。つまり、不揮発性メモリ１４では、トリミングコードＴＣは、予め規定された所定の領域に格納される。
【００１９】
また、ここで実施の形態１にかかるトリミングコードＴＣのデータ構造について説明する。そこで、図３にトリミングコードＴＣのデータ構造を示す図を示す。図３に示すように、実施の形態１にかかるトリミングコードＴＣは、複数のビットにより構成され、上位ビット側に補正コードＯＣが規定され、下位ビット側にエラー訂正コードＥＣＣが規定される。このエラー訂正コードＥＣＣは、補正コードＯＣの正当性の確認に利用される。つまり、実施の形態１では、トリミングコードＴＣは、補正コードＯＣとエラー訂正コードＥＣＣとが含まれる。
【００２０】
トリミングコードエラー検出回路１５は、トリミングコードＴＣを読み出して、補正コードＯＣのエラーを検査し、エラーの重要度を示すエラー検出信号ＥＲＲを出力する。より具体的には、定電圧生成回路１２は、リセット信号等の状態制御信号ＳＴＣによるリセット解除状態、或いは、電源投入等をトリガとして動作を開始する。そして、トリミングコードエラー検出回路１５は、定電圧生成回路１２が動作開始に合わせて不揮発性メモリ１４にトリミングコードＴＣを読み出す指示（この指示を伝達する信号線については不図示）を出力したことに応じて、不揮発性メモリ１４からトリミングコードＴＣを読み出す。そして、トリミングコードエラー検出回路１５は、不揮発性メモリ１４から読み出したトリミングコードＴＣのエラーを検査すると共に、トリミングコードＴＣに含まれる補正コードＯＣを定電圧生成回路１２に与える。そして、定電圧生成回路１２は、与えられた補正コードＯＣに基づき動作設定値を補正した状態で動作を開始する。このとき、トリミングコードエラー検出回路１５が行った検査において補正コードＯＣのエラーが検出された場合には、トリミングコードエラー検出回路１５はエラー検出信号ＥＲＲをエラー検出状態とする（例えば、アサートする）。
【００２１】
ここで、トリミングコードエラー検出回路１５の詳細なブロック図を図４に示し、トリミングコードエラー検出回路１５について、より詳細に説明する。図４に示すように、トリミングコードエラー検出回路１５は、第１のレジスタ（例えば、トリミングコード格納レジスタ１６）、エラー判断回路１７及び第２のレジスタ（例えば、検出結果格納レジスタ１８）を有する。
【００２２】
トリミングコード格納レジスタ１６は、不揮発性メモリ１４から読み出したトリミングコードＴＣを格納する。また、トリミングコード格納レジスタ１６は、格納したトリミングコードＴＣのうち補正コードＯＣを定電圧生成回路１２に出力する。そして、定電圧生成回路１２は、この補正コードＯＣにより動作設定値を補正する。
【００２３】
エラー判断回路１７は、トリミングコード格納レジスタ１６に格納されたトリミングコードＴＣからエラー訂正コードＥＣＣを抽出する。そして、エラー判断回路１７は、エラー訂正コードＥＣＣを用いて、トリミングコード格納レジスタ１６に格納されたトリミングコードＴＣに含まれる補正コードＯＣのエラーを検出し、エラー検出信号ＥＣＣを出力する。より具体的には、エラー判断回路１７は、補正コードＯＣにエラーが検出された場合にはエラー検出信号ＥＲＲをアサート（エラーが検出されたことを通知する状態）し、補正コードＯＣにエラーが検出されなかった場合にはエラー検出信号ＥＲＲをネゲート（エラーが検出されなかったことを通知する状態）する。また、エラー判断回路１７は、補正コードＯＣのエラーが１ビットでもあれば、それを検出する。つまり、エラー判断回路１７は、ＳＥＤ（Single Error Detection）処理を行うエラー検査回路である。
【００２４】
検出結果格納レジスタ１８は、エラー判断回路１７により補正コードＯＣのエラーの状態を示すエラー検出値を格納される。なお、検出結果格納レジスタ１８に格納されるエラー検出値は、演算部１０或いは上位システム等の他の機能回路により参照され、その後の処理で利用される。
【００２５】
なお、実施の形態１にかかる半導体装置１では、クロック生成回路１１、定電圧生成回路１２、不揮発性メモリ１４及びトリミングコードエラー検出回路１５にも状態制御信号ＳＴＣが入力される。例えば、状態制御信号ＳＴＣがリセット信号である場合、クロック生成回路１１、定電圧生成回路１２、不揮発性メモリ１４及びトリミングコードエラー検出回路１５は、リセット信号がリセット状態である期間は状態を初期状態で維持する。
【００２６】
上記構成により、実施の形態１にかかる半導体装置１では、補正コードＯＣからエラーが検出された場合には、半導体装置１の機能回路群は、予め設定された所定の処理をエラー検出信号ＥＲＲにより示されたエラーの重要度に応じて実行する。ここで、実施の形態１では、エラー検出信号ＥＲＲがエラーの有無のみを通知するものとする。そのため、実施の形態１では、エラー検出信号ＥＲＲにより通知されるエラーの重要度は、エラーありか、エラーなしの２段階のみである。また、実施の形態１では、エラー検出信号ＥＲＲがアサートされた場合には、演算部１０をリセット状態として、動作を停止させる処理を予め設定された所定の処理として行うものとする。
【００２７】
以下では、実施の形態１にかかる半導体装置１の動作を上記前提に基づき、より具体的に説明する。そこで、図５、６に実施の形態１にかかる半導体装置１の動作を示すタイミングチャートを示す。図５に示したタイミングチャートは、補正コードＯＣからエラーが検出されない場合、つまり、正常に動作可能な場合の半導体装置１の動作を示すものである。また、図６に示したタイミングチャートは、補正コードＯＣからエラーが検出された場合、つまり、異常が生じた場合の半導体装置１の動作を示すものである。
【００２８】
図５に示す例では、タイミングＴ１１以前の状態制御信号ＳＴＣがハイレベルである期間はリセット状態であって、半導体装置１は動作を停止した状態を維持する。そして、リセット状態が解除された後のタイミングＴ１１において、クロック生成回路１１がクロック信号ＣＬＫの生成を開始する。これにより、不揮発性メモリ１４は、タイミングＴ１１〜Ｔ１２のトリミングコード読み出しステップにおいて、トリミングコードＴＣをトリミングコードエラー検出回路１５に送信する。このトリミングコードＴＣは、タイミングＴ１２において、トリミングコードエラー検出回路１５のトリミングコード格納レジスタ１６に格納される。
【００２９】
そして、タイミングＴ１２からタイミングＴ１３のエラー検出ステップにおいて、トリミングコードエラー検出回路１５のエラー判断回路１７は、トリミングコードＴＣに含まれる補正コードＯＣのエラーを検査する。そして、このエラー検出ステップにおいて補正コードＯＣにエラーが検出されなかった場合、エラー判断回路１７は、検出結果格納レジスタ１８に検査結果としてエラーが存在しないことを示すエラー検出値（例えばＰａｓｓ）を格納する。また、図５に示す例では、補正コードＯＣにエラーが存在しないため、トリミングコードエラー検出回路１５はエラー検出信号ＥＲＲをロウレベル（ネゲート状態）で維持する。
【００３０】
また、タイミングＴ１２の動作設定ステップでは、トリミングコードエラー検出回路１５から定電圧生成回路１２に補正コードＯＣが送信される。これにより、定電圧生成回路１２は、補正コードＯＣにより動作設定値を補正し、電圧生成動作を開始し、内部電源電圧ｉＶＤＤが上昇する。
【００３１】
そして、タイミングＴ１４において、状態制御回路１３に与えられるクロック数が所定のクロック数に達すると、状態制御回路１３は、エラー検出信号ＥＲＲの値を参照する。図５に示す例では、エラー検出信号ＥＲＲがエラー未検出状態（例えば、ロウレベル）であるため、タイミングＴ１４で、状態制御回路１３が内部状態制御信号ｉＳＴＣをリセット解除状態（例えば、ロウレベル）に切り替える。これにより、演算部１０が動作を開始し、不揮発性メモリ１４からプログラムを含むデータＤＡＴを読み出す。そして、半導体装置１は、演算部１０によってプログラムに基づく情報処理を開始する。また、図５に示す例では、タイミングＴ１４の時点で内部電源電圧ｉＶＤＤが目標電圧Ｖｔｒｇに達している。
【００３２】
続いて、図６に示す例について説明する。図６に示す例ではタイミングＴ１２までの半導体装置１の動作は図５に示す例と同じであるため、タイミングＴ１２以前の期間の動作の説明は省略する。
【００３３】
図６に示す例では、タイミングＴ１２からタイミングＴ１３のエラー検出ステップにおいて補正コードＯＣからエラーが検出される。そのため、タイミングＴ１３において、エラー判断回路１７が検出結果格納レジスタ１８にエラーが検出されたことを示すエラー検出値（例えば、ＮＧ）を格納する。また、タイミングＴ１３において、エラー判断回路１７は、エラー検出信号ＥＲＲをハイレベルとして、補正コードＯＣにエラーが存在していることを通知するエラー検出状態とする。これにより、図６に示す例では、状態制御回路１３に与えられるクロック数が所定のクロック数に達するタイミングＴ１４においても、内部状態制御信号ｉＳＴＣは、リセット状態を維持する。半導体装置１では、補正コードにエラーが含まれている場合に機能回路群に予め規定された所定の処理をエラーの重要度に応じて実行させるエラー対応処理ステップを行う。この状態制御回路１３による内部状態制御信号ｉＳＴＣの論理レベルの切り替えを行わない処理が実施の形態１におけるエラー対応処理ステップに対応する動作である。
【００３４】
また、図６に示す例では、タイミングＴ１４になっても、定電圧生成回路１２が内部電源電圧ｉＶＤＤが目標電圧Ｖｔｒｇに達することなく、電圧値が安定した状態となる。そのため、図６に示す例では、十分な電源電圧が供給されない不安定な状態で演算部１０が動作することが防止される。
【００３５】
上記説明より、実施の形態１にかかる半導体装置１では、補正対象機能回路である定電圧生成回路１２の動作の開始に合わせて、不揮発性メモリ１４からトリミングコードＴＣを読み出す。そして、半導体装置１は、トリミングコードエラー検出回路１５がエラー訂正コードＥＣＣを用いて、トリミングコードＴＣに含まれる補正コードＯＣのエラーの有無を確認する。そして、半導体装置１は、補正コードＯＣにエラーが発見された場合、エラー検出信号ＥＲＲにより状態制御回路１３に当該エラーの存在を通知し、状態制御回路１３により、演算部１０をリセット状態とする。これにより、定電圧生成回路１２が誤った補正コードＯＣに基づいた動作により、目標電圧Ｖｔｒｇとは異なる電圧値の内部電源電圧ｉＶＤＤを生成した場合には、演算部１０が不安定な状態で動作することを防止することができる。
【００３６】
補正コードＯＣに誤りが含まれていた場合、不揮発性メモリ１４に格納されるプログラムが正しいものであっても、供給される内部電源電圧ｉＶＤＤが不十分であるために、演算部１０の動作が不安定になり、半導体装置１が誤動作するおそれがある。しかしながら、実施の形態１にかかる半導体装置１では、誤った値の補正コードＯＣに基づいて定電圧生成回路１２が動作しても、演算部１０の動作を停止させることができるため、このような誤動作を未然に防ぐことができる。
【００３７】
また、車輌等に搭載される半導体装置１は、温度・振動・ノイズ等の影響が大きく、不揮発性メモリ１４に格納されたデータが後天的に変化する、或いは、格納されたデータが正しくてもデータ転送時に変化することがある。このようなデータ変化が生じた場合、単に不揮発性メモリ１４の信頼性を確保するだけでは誤動作防止を防止することはできない。しかしながら、実施の形態１にかかる半導体装置１では、補正コードＯＣデータを利用する時点でエラー検査するため、上記のようなデータ変化が生じた場合の半導体装置１の誤動作を防止することができる。
【００３８】
また、不揮発性メモリ１４には、プログラムも格納されるが、プログラムに関してはコードにエラーが存在していることに起因してプログラムが正しく実行されていないことをウォッチドックタイマ等を用いて検出することができる。しかしながら、補正データＯＣ等のデータは、エラーが存在していても、ウォッチドックタイマ等を用いて検出することができない。しかしながら、実施の形態１にかかる半導体装置１では、不具合対策が難しいデータを利用するシステムの信頼性を向上させることができる。
【００３９】
このようなフェールセーフの機構は、特に車輌等の信頼性が重視されるシステムにおいては非常に重要である。
【００４０】
実施の形態２
実施の形態２にかかる半導体装置２のブロック図を図７に示す。図７に示すように、実施の形態２にかかる半導体装置２は、実施の形態１にかかる半導体装置１にエラー検出信号ＥＲＲを外部に出力する外部端子Ｔｅｏを追加したものである。
【００４１】
このように、エラー検出信号ＥＲＲを外部に伝達する外部端子Ｔｅｏを有することで、実施の形態２では、エラー検出信号ＥＲＲによって、上位システム１００が補正コードＯＣのエラーの有無を知ることができる。そして、実施の形態２では、補正コードＯＣのエラーを検知した上位システムによって、情報処理システム全体を安全に維持するための処理を行うことができる。例えば、補正コードＯＣのエラーを検知した上位システム１００によって、半導体装置２に不具合が生じたことを情報処理システムの利用者に知らせることができる。
【００４２】
実施の形態３
実施の形態３では、トリミングコードエラー検出回路１５の変形例となるトリミングエラー検出回路３０について説明する。図８に実施の形態３にかかる半導体装置３を含む情報処理システムのブロック図を示す。なお、実施の形態３の説明においては、実施の形態１と同じ構成要素については、実施の形態１と同じ符号を付して説明を省略する。
【００４３】
図８に示すように、実施の形態３にかかる半導体装置３は、実施の形態１にかかる半導体装置１のトリミングコードエラー検出回路１５をトリミングエラー検出回路３０に置き換えたものである。トリミングエラー検出回路３０は、トリミングコードＴＣに含まれる補正コードのエラーが１ビットであれば、当該エラーを訂正して訂正済み補正コードを生成する。そして、トリミングエラー検出回路３０は、訂正済み補正コードを生成した場合には訂正済み補正コードを補正コードＯＣとして定電圧生成回路１２に与える。また、トリミングエラー検出回路３０は、トリミングコードＴＣに含まれる補正コードにエラーが含まれていない場合にはトリミングコードＴＣに含まれる補正コードをそのまま補正コードＯＣとして定電圧生成回路１２に与える。
【００４４】
ここで、トリミングエラー検出回路３０について、より詳細に説明する。図９にトリミングエラー検出回路３０の詳細なブロック図を示す。図９に示すように、トリミングエラー検出回路３０は、トリミングコード格納レジスタ３１、エラー判断回路３２、補正コード格納レジスタ３３及び検出結果格納レジスタ３４を有する。
【００４５】
トリミングコード格納レジスタ３１は、不揮発性メモリ１４から読み出したトリミングコードＴＣを格納する。エラー判断回路３２は、トリミングコード格納レジスタ３１に格納されたトリミングコードＴＣに含まれる補正コードにおいて、誤りビット数が１ビットであることを検出した場合、エラー訂正コードＥＣＣを用いて誤りビットを訂正して訂正済み補正コードを生成して第３のレジスタ（例えば、補正コード格納レジスタ３３）に格納する。また、エラー判断回路３２は、トリミングコード格納レジスタ３１に格納されたトリミングコードＴＣに含まれる補正コードにおいて誤りビットがないと判断した場合、トリミングコードＴＣに含まれる補正コードを、そのまま補正コード格納レジスタ３３に格納する。さらに、エラー判断回路３２は、トリミングコードＴＣに含まれる補正コードのエラーの有無を示すエラー検出値を、検出結果格納レジスタ３４に格納する。そして、実施の形態３では、定電圧生成回路１２は、補正コード格納レジスタ３３に格納された補正コードＯＣに基づき動作設定値を補正する。なお、補正コード格納レジスタ３３を用いることなくエラー判断回路３２が直接補正コードＯＣを出力する構成とすることもできる。
【００４６】
実施の形態３にかかる半導体装置３では、さらに、トリミングコードＴＣの補正コードに１ビットのエラーがあった場合であっても、正しい補正コードＯＣを定電圧生成回路１２に与えることができるため、エラーがあったことに応じて即座に演算部１０をリセットさせる必要がない。そこで、実施の形態３にかかる半導体装置３では、検出結果格納レジスタ３４に格納されたエラー検出値を演算部１０が参照し、演算部１０が実行するプログラムに従ってその後の処理を行う。
【００４７】
例えば、実施の形態３では、演算部１０は、動作開始後に検出結果格納レジスタ３４のエラー検出値を確認し、エラーがあることを示すエラー検出値であった場合、外部通知指示信号をエラー判断回路３２に与える。そして、エラー判断回路３２は、外部通知指示信号に応じてエラー検出信号ＥＲＲを出力する。また、演算部１０は、エラーがあることを示すエラー検出値であった場合、プログラムに従ってエラー処理を行った後、スタンバイ状態に移行する等の処理を行う。
【００４８】
上記説明より、実施の形態３にかかる半導体装置３は、トリミングコードＴＣに含まれている補正コードに誤りビットがあっても、当該誤りビットの数が１ビットであれば、誤りを訂正して正しい補正コードＯＣを生成することができる。これにより、実施の形態３にかかる半導体装置３は、トリミングコードＴＣに含まれる補正コードにエラーがあっても、訂正後の補正コードＯＣに基づき動作を継続することができる。
【００４９】
また、実施の形態３にかかる半導体装置３では、訂正後の補正コードＯＣに基づき動作を継続できるため、例えば、プログラムに基づくエラー処理を行うことができるなど、エラー処理を任意に選択することができる。このようなプログラムに基づくエラー処理を行うことで、半導体装置３を状況に応じた適切な状態で停止させることができる。
【００５０】
実施の形態４
実施の形態４では、トリミングコードエラー検出回路３０の変形例となるトリミングエラー検出回路４０について説明する。図１０に実施の形態４にかかる半導体装置４を含む情報処理システムのブロック図を示す。なお、実施の形態４の説明においては、実施の形態１、３と同じ構成要素については、実施の形態１、３と同じ符号を付して説明を省略する。
【００５１】
図１０に示すように、実施の形態４にかかる半導体装置４は、実施の形態３にかかる半導体装置３のトリミングコードエラー検出回路３０を、トリミングエラー検出回路４０に置き換えたものである。トリミングエラー検出回路４０は、トリミングエラー検出回路３０と同様、トリミングコードＴＣに含まれる補正コードのエラーが１ビットであれば、当該エラーを訂正して訂正済み補正コードを生成する。そして、トリミングエラー検出回路４０は、訂正済み補正コードを生成した場合には、訂正済み補正コードを補正コードＯＣとして定電圧生成回路１２に与える。また、トリミングエラー検出回路４０は、トリミングコードＴＣに含まれる補正コードにエラーが含まれていない場合には、トリミングコードＴＣに含まれる補正コードを、そのまま補正コードＯＣとして定電圧生成回路１２に与える。
【００５２】
ここで、トリミングコードエラー検出回路４０は、トリミングエラー検出回路３０よりも検出できる誤りビットの数が多い。より具体的には、トリミングエラー検出回路３０は検出可能な誤りビットの数が１であるのに対し、トリミングコードエラー検出回路４０は２ビットの誤りを検出できる。そして、トリミングコードエラー検出回路４０は、１ビットの誤りを検出した場合は第１のエラー検出信号ＥＲＲａを出力し、２ビットの誤りを検出した場合は第２のエラー検出信号ＥＲＲｂを出力する。
【００５３】
そこで、トリミングコードエラー検出回路４０の詳細について説明する。図１１に実施の形態４にかかるトリミングコードエラー検出回路４０のブロック図を示す。図１１に示すように、トリミングコードエラー検出回路４０は、トリミングエラー検出回路３０のエラー判断回路３２をエラー判断回路４１に置き換えたものである。エラー判断回路４１は、トリミングコードＴＣに含まれる補正コードの誤りビット数が１ビットであることを検出した場合に第１のエラー検出信号を出力し、トリミングコードＴＣに含まれる補正コードの誤りビット数が２ビットであることを検出した場合に第２のエラー検出信号を出力する。また、エラー判断回路４１は、トリミングコードＴＣに含まれる補正コードの誤りビット数が１ビットであった場合は、当該補正コードを訂正して訂正済み補正コードを補正コードＯＣとして補正コード格納レジスタ３３に格納する。エラー判断回路４１は、トリミングコードＴＣに含まれる補正コードの誤りビット数が２ビットであった場合は、当該補正コードを訂正せずにそのまま補正コード格納レジスタ３３に格納する。また、エラー判断回路４１は、検出したエラーの数の情報を含むエラー検出値を検出結果格納レジスタ３４に格納する。そして、実施の形態３では、定電圧生成回路１２は、補正コード格納レジスタ３３に格納された補正コードＯＣに基づき動作設定値を補正する。なお、トリミングコードエラー検出回路４０においても、補正コード格納レジスタ３３を用いることなくエラー判断回路３２が直接補正コードＯＣを出力する構成とすることは可能である。
【００５４】
ここで、実施の形態４にかかる半導体装置４では、トリミングコードＴＣの補正コードに含まれるエラーの数によって処理を分けることができる。具体的には、誤りビット数が１ビットであった場合、正しい補正コードＯＣを定電圧生成回路１２に与えることができるため、エラーがあったことに応じて即座に演算部１０をリセットさせる必要がない。一方、誤りビット数が２ビットであった場合は、エラーを訂正できないため、即座に演算部１０をリセット状態とする。
【００５５】
そこで、実施の形態４にかかる半導体装置４では、誤りビット数が１ビットであった場合は、状態制御回路１３が内部状態制御信号ｉＳＴＣをリセット解除状態で維持し、検出結果格納レジスタ３４に格納されたエラー検出値を演算部１０が参照し、演算部１０が実行するプログラムに従って、その後の処理を行う。一方、誤りビット数が１ビットであった場合、実施の形態４にかかる半導体装置４は、状態制御回路１３により内部状態制御信号ｉＳＴＣをリセット状態とし、演算部１０の動作をリセット状態で維持させる。
【００５６】
上記説明より、実施の形態４にかかる半導体装置４では、実施の形態３にかかる半導体装置３よりも多くエラーを検出できる。そのため、半導体装置４は、エラーの数が多い場合はより重要度が高いエラーが発生したとして、エラーの数が少ない場合よりも早く演算部１０の処理を停止させることができる。つまり、実施の形態４にかかる半導体装置４は、実施の形態３にかかる半導体装置３よりも多くのエラー処理の形態をとることが可能になることにより、信頼性を高めることができる。
【００５７】
実施の形態５
実施の形態５では、トリミングコードエラー検出回路１５の変形例となるトリミングコードエラー検出回路１５ａについて説明する。なお、実施の形態５にかかるトリミングコードエラー検出回路１５ａは、実施の形態１にかかる半導体装置１のトリミングコードエラー検出回路１５を単純に置き換えるものであるため、ここでは半導体装置を含む情報処理システムについてのブロック図の説明は省略する。
【００５８】
図１２に実施の形態５にかかるトリミングコードエラー検出回路１５ａのブロック図を示す。図１２に示すように、トリミングコードエラー検出回路１５ａは、第１のレジスタ（例えば、トリミングコード格納レジスタ５１）、多数決回路５２、第３のレジスタ（例えば、補正コード格納レジスタ５３）、第２のレジスタ（例えば、検出結果格納レジスタ１８）を有する。
【００５９】
トリミングコード格納レジスタ５１は、不揮発性メモリ１４から読み出したトリミングコードＴＣを格納する。ここで、実施の形態５では、トリミングコードＴＣは、補正コードＯＣａ〜ＯＣｃを含み、エラー訂正コードＥＣＣは含まない。また、補正コードＯＣａ〜ＯＣｃは、エラーがない状態において同一値を有するものとする。なお、図１２に示す例では、トリミングコードＴＣは３つの補正コードを含む例を示したが、トリミングコードＴＣに含まれる補正コードの数は３つに限られるものではない。
【００６０】
多数決回路５２は、トリミングコード格納レジスタ５１に格納された複数の補正コードＯＣａ〜ＯＣｃの正当性を多数決により判断し、エラー検出信号ＥＲＲを出力する。また、多数決回路５２は、判断の対象となった補正コードのエラーの状態を示すエラー検出値を、検出結果格納レジスタ１８に格納する。さらに、多数決回路５２は、多数決判断において数が多いと判断された補正コードを補正コード格納レジスタ５３に格納する。例えば、多数決判断において１つの補正コードが他の２つの補正コードとは異なる値を有していた場合、同一値となる２つの補正コードを正しいコードと判断し、当該補正コードを定電圧生成回路１２に与える補正コードＯＣとして補正コード格納レジスタ５３に格納する。なお、補正コード格納レジスタ５３を用いることなく多数決回路５２が直接補正コードＯＣを出力する構成とすることもできる。
【００６１】
このように多数決回路５２を用いても、多数決回路５２に対応したトリミングコードＴＣを用いることで、実施の形態１と同様に、補正コードＯＣを読み出す度に当該補正コードＯＣのエラーを検出することができる。そして、このような補正コードＯＣに対するエラー検出検査を行うことで、実施の形態５にかかるトリミングコードエラー検出回路１５ａを含む半導体装置は、実施の形態１にかかる半導体装置１と同様に信頼性を向上させることができる。
【００６２】
実施の形態６
実施の形態６では、トリミングコードエラー検出回路１５の変形例となるトリミングコードエラー検出回路１５ｂについて説明する。なお、実施の形態６にかかるトリミングコードエラー検出回路１５ｂは、実施の形態１にかかる半導体装置１のトリミングコードエラー検出回路１５を単純に置き換えるものであるため、ここでは半導体装置を含む情報処理システムについてのブロック図の説明は省略する。
【００６３】
図１３に実施の形態６にかかるトリミングコードエラー検出回路１５ｂのブロック図を示す。図１３に示すように、トリミングコードエラー検出回路１５ｂは、第１のレジスタ（例えば、トリミングコード格納レジスタ１６）、エラー判断回路６１、第２のレジスタ（例えば、検出結果格納レジスタ１８）を有する。なお、トリミングコード格納レジスタ１６及び検出結果格納レジスタ１８は、実施の形態１にかかるトリミングコードエラー検出回路１５のトリミングコード格納レジスタ１６及び検出結果格納レジスタ１８と同じものである。
【００６４】
実施の形態６では、エラー判断回路６１がエラー確認コード（例えば、ＣＲＣ（Check Redundancy Code））を用いて補正コードＯＣのエラーを検出する。そのため、トリミングコードＴＣには、エラー訂正コードＥＣＣに代えてエラー確認コードが含まれる。また、エラー判断回路６１は、エラー判断回路１７と同様にエラーの検出結果を示すエラー検出値を、検出結果格納レジスタ１８に格納する。
【００６５】
このようにエラー確認コードを用いても、エラー判断回路６１に対応してトリミングコードＴＣにエラー確認コードを含めることで、実施の形態１と同様に、補正コードＯＣを読み出す度に当該補正コードＯＣのエラーを検出することができる。そして、このような補正コードＯＣに対するエラー検出検査を行うことで、実施の形態６にかかるトリミングコードエラー検出回路１５ｂを含む半導体装置は、実施の形態１にかかる半導体装置１と同様に信頼性を向上させることができる。
【００６６】
実施の形態７
上記実施の形態では、補正コードＯＣを１つの補正対象機能回路に与える実施の形態について説明した。実施の形態７では、複数の補正対象機能回路に対して補正コードＯＣを与える例について説明する。そのため、実施の形態７にかかる半導体装置７においては、複数のトリミングコードＴＣが不揮発生メモリに格納されるものとする。
【００６７】
図１４に実施の形態７にかかる半導体装置７を含む情報処理システムのブロック図を示す。図１４に示すように、実施の形態７にかかる半導体装置７は、演算部７０、クロック生成回路７１、トリミングコードエラー検出回路７２、アナログデジタル変換回路７３、デジタルアナログ変換回路７４、インタフェース回路７５、温度検出回路７６、不揮発性メモリ７７、揮発性メモリ７８及び定電圧生成回路７９を有する。そして、半導体装置７では、これら機能回路がローカルバスＬＢによって互いに接続される。
【００６８】
演算部７０は、例えば不揮発性メモリ７７に格納されたプログラムに基づき各種処理を行う。クロック生成回路７１は、半導体装置７に内蔵される複数の機能回路にクロック信号ＣＬＫを与える。トリミングコードエラー検出回路７２は、上記実施の形態で説明したトリミングコードエラー検出回路であって、不揮発性メモリ７７から読み出したトリミングコードＴＣに含まれる補正コードＯＣのエラーを検査し、検査結果を示すエラー検出信号ＥＲＲを、ローカルバスＬＢを介して他の機能回路に出力する。
【００６９】
アナログデジタル変換回路７３は、入力されるアナログ信号の信号レベルに対応したデジタル値を有する出力信号を出力する。デジタルアナログ変換回路７４は、入力されるデジタル信号のデジタル値に対応した信号レベルを有するアナログ信号を出力する。インタフェース回路７５は、ローカルバスＬＢを、介して他の機能回路から伝達されたデータを上位システム１００に伝達する。また、インタフェース回路７５は、上位システム１００から伝達されたデータを、ローカルバスＬＢを介して他の機能回路に伝達する。温度検出回路７６は、半導体基板の温度に対応した温度検出値を出力する。不揮発性メモリ７７は、プログラム、データ及びトリミングコードＴＣを格納する。揮発性メモリ７８は、演算部７０等の他の機能回路で行われる処理で利用されるデータ等が格納される。定電圧生成回路７９は、予め設定された電圧値を有する定電圧を出力する。半導体装置７では、定電圧生成回路７９が生成した定電圧を内部電源電圧ｉＶＤＤとして利用する。
【００７０】
また、図１４に示すように、半導体装置７では、トリミングコードエラー検出回路７２が不揮発性メモリ７７からトリミングコードＴＣを読み出して、トリミングコードＴＣに含まれる補正コードＯＣをクロック生成回路７１、アナログデジタル変換回路７３、デジタルアナログ変換回路７４、温度検出回路７６及び定電圧生成回路７９に出力する。ここで、実施の形態７では、対応する機能回路に応じて複数の補正コードＯＣが予め設定される。
【００７１】
例えば、クロック生成回路７１に対応する補正コードＯＣには、発振周波数を補正するための情報が設定される。アナログデジタル変換回路７３に対応する補正コードＯＣには、変換に利用する比較器のオフセット情報が設定される。デジタルアナログ変換回路７４に対応する補正コードＯＣには、抵抗のばらつきを補正する値が設定される。温度検出回路７６に対応する補正コードＯＣには、温度検出素子のばらつきを補正する値が設定される。定電圧生成回路７９に対応する補正コードＯＣには、出力する定電圧の大きさを定める基準電圧或いは抵抗値の補正情報が設定される。
【００７２】
このように、補正コードＯＣは、対応する機能回路に応じて様々な情報を設定することができるが、いずれの補正コードも機能回路の動作開始時に正しい値を与えなければならないものである。従って、上記実施の形態で説明したトリミングコードエラー検出回路を用いて、機能回路の動作開始時に補正コードのエラーを確認することで、半導体装置７の信頼性を向上させることができる。
【００７３】
実施の形態８
実施の形態８では、補正コードＯＣにエラーが検出された際の所定の処理の別の形態について説明する。そこで、実施の形態８にかかる半導体装置８を含む情報処理システムのブロック図を図１５に示す。図１５に示すように、半導体装置８は、実施の形態１にかかる半導体装置１の演算部１０及び状態制御回路１３を演算部８０及び状態制御回路８１に置き換えたものである。なお、実施の形態８の説明においては、実施の形態１と同じ構成要素については、実施の形態１と同じ符号を付して説明を省略する。
【００７４】
演算部８０は、複数の演算コアを有する。図１５に示す例では、演算部８０は、主演算コアと、サブ演算コアを有する。なお、主演算コアとサブ演算コアは同一の処理能力或いは消費電力を有するものであっても良いが、実施の形態８では、サブ演算コアは主演算コアよりも演算能力及び消費電力が低いものとする。
【００７５】
状態制御回路８１は、状態制御信号ＳＴＣとしてリセット状態の解除を指示する信号が入力された場合に、内部制御信号ｉＳＴＣ１をリセット解除状態として演算部８０に動作開始を指示する。また、状態制御回路８１は、エラー検出信号ＥＲＲが補正コードＯＣにエラーが含まれていたことを検出したことを示す場合、内部状態制御信号ｉＳＴＣ２を、リセット状態を指示する状態とする。演算部８０は、通常状態においては、主演算コアとサブ演算コアの両方を利用してプログラムを実行する。一方、演算部８０は、内部状態制御信号ｉＳＴＣ２がリセット状態を指示する状態である場合、主演算コアのみをリセット状態とし、サブ演算コアのみによってプログラムを実行する状態となる。
【００７６】
つまり、実施の形態８にかかる半導体装置８では、状態制御回路８１が、エラー検出信号ＥＲＲにより補正コードＯＣにエラーがあることの通知を受けたことに応じて、演算部８０の演算能力を低下させる内部状態制御信号ｉＳＴＣを出力する。そして、演算部８０は、内部状態制御信号ｉＳＴＣ２が入力されたことに応じて、動作させる演算コア数を少なくする。
【００７７】
上記説明より、実施の形態８にかかる半導体装置８では、補正コードＯＣにエラーが存在した場合、演算部８０の演算能力を低下させることで消費電力を低減すると共に、内部電源電圧ｉＶＤＤの電圧低下を抑制しながら、最低限のエラー処理のみをサブ演算コアにより実行することができる。これにより実施の形態８にかかる半導体装置８では、エラー訂正を行うことなく、最低限のエラー処理のみを行うエラー処理モードを設定することができる。つまり、実施の形態８にかかる半導体装置８は、エラー訂正を行うことなく、実施の形態３、４に相当する信頼性を確保することができる。
【００７８】
実施の形態９
実施の形態９では、不揮発性メモリを補正対象機能回路とした場合の実施の形態について説明する。なお、実施の形態４の説明においては、実施の形態１、３と同じ構成要素については、実施の形態１、３と同じ符号を付して説明を省略する。
【００７９】
図１６に実施の形態９にかかる半導体装置９を含む情報処理システムのブロック図を示す。図１６に示すように、実施の形態９にかかる半導体装置９は、実施の形態１にかかる半導体装置１の不揮発性メモリ１４に代えて、補正コードＯＣによって動作設定値の補正を可能にした不揮発性メモリ９０を有する。また、図１６に示す例では、不揮発性メモリ９０の内部回路としてメモリ制御回路とメモリセル領域とを示した。実施の形態９にかかる半導体装置９では、トリミングコードエラー検出回路１５に与えられるトリミングコードＴＣは、不揮発性メモリ９０からの読み出しデータＲＤの一部として読み出される。一方、実施の形態９にかかる半導体装置９では、補正データＯＣは、不揮発生メモリ９０への書き込みデータＷＤとは別の経路で与えられる。
【００８０】
そこで、不揮発性メモリ９０のより詳細なブロック図を図１７に示す。図１７に示すように、不揮発性メモリ９０は、メモリセル領域９１とメモリ制御回路９２とを有する。さらに、メモリ制御回路９２は、読み出し制御回路９３、書き込み制御回路９４及び指示信号制御回路９５を有する。
【００８１】
メモリセル領域９１は、プログラム及びデータを格納する領域であって、記憶セルが格子状に配置される。メモリ制御回路９２は、演算部１０等から与えられた指示に基づき、メモリセル領域９１への情報の書き込みと情報の読み出しとを制御する。
【００８２】
また、読み出し制御回路９３は、演算部１０からメモリ制御信号ＭＣＳとして読み出し制御信号が与えられた場合にメモリセル領域９１から情報を読み出し、読み出しデータＲＤとして出力する。不揮発生メモリ９０では、読み出し動作においては、外部から与えられる電源電圧に基づき読み出し動作を行う。
【００８３】
書き込み制御回路９４は、演算部１０からメモリ制御信号ＭＣＳとして書き込み制御信号が与えられた場合、メモリセル領域９１に対して受信した書き込みデータＷＤに応じた書き込み信号を生成し、当該書き込み信号により情報をメモリセル領域９１に書き込む。書き込み制御回路９４は、書き込み時にメモリセル領域９１に与える書き込み信号の電圧値を設定する動作設定値をトリミングコードＴＣに含まれている補正コードＯＣに基づき補正する。より具体的には、書き込み制御回路９４は、書き込み時に電源電圧よりも高い電圧値を有する書き込み信号を生成する。書き込み制御回路９４は、この書き込み信号の電圧値を動作設定値に基づき決定する。
【００８４】
指示信号制御回路９５は、演算部１０から出力される書き込み制御信号に応じて、書き込み制御回路９４に書き込み動作を指示する書き込みイネーブル信号ＥＮを出力する。このとき、指示信号制御回路９５は、エラー検出信号ＥＲＲによりエラーが発生したことを通知された場合には、書き込み制御信号によらず、書き込みイネーブル信号ＥＮを書き込み制御回路９４による書き込み動作を停止させるディスイネーブル状態とする。
【００８５】
続いて、実施の形態９にかかる半導体装置９の動作について説明する。そこで、図１８、１９に実施の形態９にかかる半導体装置９の動作を示すタイミングチャートを示す。なお、図１８は、補正データＯＣにエラーがない正常状態のときの半導体装置９の動作を示すものであり、図１９は、補正データＯＣにエラーがある異常状態のときの半導体装置９の動作を示すものである。
【００８６】
図１８に示す例では、タイミングＴ２１以前の書き込み制御信号がロウレベルである期間は、書き込み動作が指示されていない期間である。そして、タイミングＴ２１以前ではトリミングコードエラー検出回路１５によるエラー検出処理が行われていないため、エラー検出信号ＥＲＲはロウレベル（つまり、エラー未検出状態）である。これにより、書き込み制御信号により書き込み動作が指示されたことに応じて、書き込みイネーブル信号ＥＮがロウレベル（例えば、ディスイネーブル状態）からハイレベル（例えば、イネーブル状態）となる。
【００８７】
そして、タイミングＴ２１において、半導体装置９は、書き込み制御信号に応じて書き込み制御回路９４が動作を開始させる。この動作開始に合わせて、不揮発生メモリ９０は、タイミングＴ２１〜Ｔ２２のトリミングコード読み出しステップにおいて、トリミングコードＴＣをトリミングコードエラー検出回路１５に送信する。このトリミングコードＴＣは、タイミングＴ２２においてトリミングコードエラー検出回路１５のトリミングコード格納レジスタ１６に格納される。
【００８８】
そして、タイミングＴ２２からタイミングＴ２３のエラー検出ステップにおいて、トリミングコードエラー検出回路１５のエラー判断回路１７は、トリミングコードＴＣに含まれる補正コードＯＣのエラーを検査する。そして、このエラー検出ステップにおいて補正コードＯＣにエラーが検出されなかった場合、エラー判断回路１７は、検査結果としてエラーが存在しないことを示すエラー検出値（例えばＰａｓｓ）を、検出結果格納レジスタ１８に格納する。また、図１８に示す例では、補正コードＯＣにエラーが存在しないため、トリミングコードエラー検出回路１５はエラー検出信号ＥＲＲをロウレベル（ネゲート状態）で維持する。
【００８９】
また、タイミングＴ２２の動作設定ステップでは、トリミングコードエラー検出回路１５から書き込み制御回路９４に補正コードＯＣが送信される。これにより、書き込み制御回路９４は、補正コードＯＣにより動作設定値を補正し、電圧生成動作を開始する。
【００９０】
そして、タイミングＴ２４において、書き込みデータＷＤを受信すると、書き込み制御回路９４は当該書き込みデータＷＤに応じた書き込み信号を生成して、書き込み動作を開始する。
【００９１】
続いて、図１９に示す例について説明する。図１９に示す例ではタイミングＴ２２までの半導体装置９の動作は図１８に示す例と同じであるため、タイミングＴ２２以前の期間の動作の説明は省略する。
【００９２】
図１９に示す例では、タイミングＴ２２からタイミングＴ２３のエラー検出ステップにおいて補正コードＯＣからエラーが検出される。そのため、タイミングＴ２３において、エラー判断回路１７が、エラーが検出されたことを示すエラー検出値（例えば、ＮＧ）を検出結果格納レジスタ１８に格納する。また、タイミングＴ２３において、エラー判断回路１７は、エラー検出信号ＥＲＲをハイレベルとして補正コードＯＣにエラーが存在していることを通知する状態とする。これにより、指示信号制御回路９５は、書き込みイネーブル信号ＥＮをロウレベル（例えば、ディスイネーブル状態）とする。従って、タイミングＴ２４において、演算部１０から書き込みデータＷＤが送信されても、書き込み制御回路９４は書き込み動作を実施しない。このとき、図示はしていないが、書き込み制御回路９４は、書き込みができなかったことを示すエラー信号を、演算部１０に返信する。そして、半導体装置９では、エラー信号に基づき演算部１０が検出結果格納レジスタ１８のエラー検出値を参照することで、その後のエラー処理を実施することができる。
【００９３】
上記説明より、実施の形態９にかかる半導体装置９では、不揮発性メモリ９０を補正対象機能回路とした。このように、不揮発性メモリ９０を補正対象回路とし、補正コードＯＣに対するエラー検出信号ＥＲＲを出力することで、不十分な書き込み電圧により不安定なデータがメモリセル領域９１に書き込まれることを防止することができる。
【００９４】
また、図示はしていないが、不揮発性メモリ９０では、書き込みの正否を確認するベリファイ処理を行うベリファイ回路を有する。不十分な書き込み電圧で書き込み処理が行われた場合、ベリファイ回路で書き込みが成功したと判断された場合であっても、その後にデータが壊れてしまうことが発生する。そのため、不十分な書き込み電圧による書き込み動作を防止することは、半導体装置９の信頼性の向上に特に有効である。
【００９５】
また、演算部１０の動作に関する不具合は、ウォッチドックタイマ等により検出することが可能であるが、書き込み制御回路９４のような動作を監視することができない回路については不具合を検出することが難しい。しかしながら、実施の形態９にかかる半導体装置９では、書き込み制御回路９４で利用される補正コードＯＣのエラーを検出することで、書き込み制御回路９４で生じる不具合を検出することができる。
【００９６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００９７】
１〜４、７〜９  半導体装置
１０、７０、８０  演算部
１１、７１  クロック生成回路
１２  定電圧生成回路
１３、７９、８１  状態制御回路
１４、７７、９０  不揮発性メモリ
１５、３０、４０、７０  トリミングコードエラー検出回路
１６、３１、４１、５１  トリミングコード格納レジスタ
１７、３２、６１  エラー判断回路
１８、３４  検出結果格納レジスタ
３３、５３  補正コード格納レジスタ
５２  多数決回路
７３  アナログデジタル変換回路
７４  デジタルアナログ変換回路
７５  インタフェース回路
７６  温度検出回路
７８  揮発性メモリ
９１  メモリセル領域
９２  メモリ制御回路
９３  読み出し制御回路
９４  書き込み制御回路
９５  指示信号制御回路
１００  上位システム
ＥＲＲ  エラー検出信号
Ｔｒｓｔ  外部端子
Ｔｅｏ  外部端子
ＴＣ  トリミングコード
ＯＣ  補正コード
ＥＣＣ  エラー訂正コード
ＤＡＴ  データ
ＳＴＣ  状態制御信号
ｉＳＴＣ  内部状態制御信号
ＥＮ  書き込みイネーブル信号
ＭＣＳ  メモリ制御信号
ＷＤ  書き込みデータ
ＲＤ  読み出しデータ
【図１】
2014075065.tif 000003
【図２】
2014075065.tif 000004
【図３】
2014075065.tif 000005
【図４】
2014075065.tif 000006
【図５】
2014075065.tif 000007
【図６】
2014075065.tif 000008
【図７】
2014075065.tif 000009
【図８】
2014075065.tif 000010
【図９】
2014075065.tif 000011
【図１０】
2014075065.tif 000012
【図１１】
2014075065.tif 000013
【図１２】
2014075065.tif 000014
【図１３】
2014075065.tif 000015
【図１４】
2014075065.tif 000016
【図１５】
2014075065.tif 000017
【図１６】
2014075065.tif 000018
【図１７】
2014075065.tif 000019
【図１８】
2014075065.tif 000020
【図１９】
2014075065.tif 000021