(57)【要約】【課題】装置の故障の予知保全のための、より有益な解析が可能となるデータを得る。【解決手段】半導体装置１は、所定の機能を有するモジュール２と、前記モジュール２で発生したエラーについてのエラー情報を取得するエラー情報取得部３と、前記半導体装置１にかかるストレスの累積値であるストレス累積値を取得するストレス取得部４と、前記半導体装置１の状態を解析するためのデータとして、前記エラー情報と、前記エラーが発生した時点の前記ストレス累積値とを関連づけたデータである解析用データを保存する解析用データ保存部５とを有する。【選択図】図１
2020042398.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置であって、
所定の機能を有するモジュールと、
前記モジュールで発生したエラーについてのエラー情報を取得するエラー情報取得部と、
前記半導体装置にかかるストレスの累積値であるストレス累積値を取得するストレス取得部と、
前記半導体装置の状態を解析するためのデータとして、前記エラー情報と、前記エラーが発生した時点の前記ストレス累積値とを関連づけたデータである解析用データを保存する解析用データ保存部と
を有する半導体装置。
【請求項２】
前記半導体装置が動作した時間の累積値である累積動作時間を取得する動作時間取得部をさらに有し、
前記解析用データ保存部は、前記エラー情報と前記エラーが発生した時点の前記ストレス累積値と前記エラーが発生した時点の前記累積動作時間とを関連づけたデータであるエラー時点データを前記解析用データとして保存する
請求項１に記載の半導体装置。
【請求項３】
前記解析用データ保存部は、さらに、予め定められた保存タイミングで、当該保存タイミングの時点における前記ストレス累積値及び前記累積動作時間を関連づけたデータである所定時点データを前記解析用データとして保存し、
保存される前記解析用データは、少なくとも、前記エラー時点データと、当該エラー時点データに対応する前記エラーが発生した時点の直前の前記所定時点データである
請求項２に記載の半導体装置。
【請求項４】
前記エラー時点データと、当該エラー時点データに対応する前記エラーが発生した時点の直前の前記所定時点データとに基づいて、当該エラー時点データに対応する前記エラーが発生した時点の直前のストレスの増加量を評価することにより、前記半導体装置の状態を解析する解析部を
さらに有する請求項３に記載の半導体装置。
【請求項５】
前記解析部は、さらに、当該エラー時点データに対応する前記エラーが発生した時点の前記ストレス累積値、又は、当該エラー時点データに対応する前記エラーが発生した時点の直前の前記ストレス累積値を評価することにより、前記半導体装置の状態を解析する
請求項４に記載の半導体装置。
【請求項６】
リングオシレータと、
所定の計測期間の前記リングオシレータの発振数を計数するカウンタ回路と、
前記カウンタ回路のカウント値をｐ乗（ｐは自然数）した値であるｐ乗値を算出するｐ乗値算出回路とを、
さらに有し、
前記ストレス累積値が、前記ｐ乗値の累積値であり、
前記解析用データ保存部は、前記エラー情報と、前記エラーが発生した時点の前記ストレス累積値と、前記エラーが発生した時点の前記累積動作時間と、前記エラーが発生した時点の前記カウント値又は前記ｐ乗値とを、関連づけて、前記解析用データとして保存する
請求項２に記載の半導体装置。
【請求項７】
前記解析用データ保存部は、前記モジュールで発生したエラーがメモリのデータ誤りについてのエラーである場合、当該エラーがハードエラーか否かを示す情報と、前記エラー情報と、前記エラーが発生した時点の前記ストレス累積値と、を関連づけたデータを前記解析用データとして保存する
請求項１に記載の半導体装置。
【請求項８】
前記エラー情報は、機能安全機構により前記半導体装置の故障に至らないエラーについての情報を含む
請求項１に記載の半導体装置。
【請求項９】
半導体装置と、サーバとを備え、
前記半導体装置は、
所定の機能を有するモジュールと、
前記モジュールで発生したエラーについてのエラー情報を取得するエラー情報取得部と、
前記半導体装置にかかるストレスの累積値であるストレス累積値を取得するストレス取得部と、
前記半導体装置の状態を解析するためのデータとして、前記エラー情報と、前記エラーが発生した時点の前記ストレス累積値とを関連づけたデータである解析用データを前記サーバに保存する解析用データ保存部と
を有し、
前記サーバは、
前記解析用データに基づいて前記半導体装置の状態を解析する
解析システム。
【請求項１０】
前記半導体装置は、
前記半導体装置が動作した時間の累積値である累積動作時間を取得する動作時間取得部をさらに有し、
前記解析用データ保存部は、予め定められた保存タイミングで、当該保存タイミングの時点における前記ストレス累積値及び前記累積動作時間を関連づけたデータである所定時点データを前記解析用データとして保存し、エラーが発生した場合、前記エラー情報と前記エラーが発生した時点の前記ストレス累積値と前記累積動作時間とを関連づけたデータであるエラー時点データを前記解析用データとして保存し、
前記サーバは、前記エラー時点データと、当該エラー時点データに対応する前記エラーが発生した時点の直前の前記所定時点データとに基づいて、当該エラー時点データに対応する前記エラーが発生した時点の直前のストレスの増加量を評価することにより、前記半導体装置の状態を解析する
請求項９に記載の解析システム。
【請求項１１】
前記半導体装置は、
前記半導体装置が動作した時間の累積値である累積動作時間を取得する動作時間取得部をさらに有し、
前記解析用データ保存部は、エラーが発生した場合、前記エラー情報と前記エラーが発生した時点の前記ストレス累積値と前記累積動作時間とを関連づけたデータであるエラー時点データを前記解析用データとして保存し、
前記サーバは、前記エラー時点データを含む訓練データを用いて機械学習によりモデルを生成する
請求項９に記載の解析システム。
【請求項１２】
前記解析用データ保存部は、予め定められた保存タイミングで、当該保存タイミングの時点における前記ストレス累積値及び前記累積動作時間を関連づけたデータである所定時点データを前記解析用データとして保存し、エラーが発生した場合、前記エラー情報と前記エラーが発生した時点の前記ストレス累積値と前記累積動作時間とを関連づけたデータであるエラー時点データを前記解析用データとして保存し、
前記サーバは、前記解析用データの集合を１組の訓練データとして機械学習によりモデルを生成し、前記集合は、前記エラー時点データを含む集合であって、当該エラー時点データに対応する前記エラーが発生した時点の直近のｎセット（ｎは１以上の整数）の前記解析用データの集合である
請求項１１に記載の解析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置及び解析システムに関し、例えばエラー解析のための技術に関する。
【背景技術】
【０００２】
装置の劣化について解析する技術が知られている。例えば、特許文献１では、装置にかかるストレスに基づいて、装置の寿命を解析する技術について開示している。この技術では、アレニウスの法則又はアイリングモデルを用いて、寿命を計算している。また、特許文献２及び非特許文献１は、リングオシレータを用いてストレスを計測する技術について開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−９２４０５号公報
【特許文献２】特開２０１７−１１８４１４号公報
【非特許文献】
【０００４】
【非特許文献１】Kan Takeuchi et. al., “Wear-out stress monitor utilizing temperature and voltage sensitive ring oscillators”, IET Circuits, Devices & Systems, 2018, Vol. 12, Iss. 2, pp.182-188
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、装置の故障についての解析を累積ストレスに着目して行う場合、最終的に故障につながったエラーの種別は一つに限られないため、十分に有益な解析結果を得られない恐れがある。また、高信頼が求められる装置では、装置に発生した前記エラーが装置の故障として発現しないように、機能安全機構と呼ばれる手段が設けられる。そこで、装置の故障の予知保全のための、より有益な解析が可能となるデータを得ることが求められる。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置は、前記半導体装置の状態を解析するためのデータとして、エラー情報と、エラーが発生した時点のストレス累積値とを関連づけたデータである解析用データを保存する解析用データ保存部を有する。
【発明の効果】
【０００８】
前記一実施の形態によれば、装置の故障の予知保全のための、より有益な解析が可能となるデータを得ることができる。
【図面の簡単な説明】
【０００９】
【図１】半導体装置の構成の一例を示すブロック図である。
【図２】解析システムの構成の一例を示すブロック図である。
【図３】ＭＣＵの構成の一例を示すブロック図である。
【図４】ＭＣＵが更に備える構成の一例を示すブロック図である。
【図５】サーバのハードウェア構成の一例を示すブロック図である。
【図６】サーバの機能構成の一例を示すブロック図である。
【図７】ＭＣＵにおける解析用データの保存についての動作の一例を示すフローチャートである。
【図８】ＭＣＵがサーバから診断結果を受信した場合の動作の一例を示すフローチャートである。
【図９】シャットダウン時（正常終了時）のＭＣＵの動作の一例を示すフローチャートである。
【図１０】エラーの検出がエラー検出部からＥＣＭに通知された場合のＭＣＵの動作の一例を示すフローチャートである。
【図１１】リセット完了時のＭＣＵの動作の一例を示すフローチャートである。
【図１２】エラー発生時の解析用データとそれより１つ前の解析用データによる解析処理の一例を示すフローチャートである。
【図１３】ストレスデータとエラーとの関係を判定するための手順の一例を示すフローチャートである。
【図１４】解析処理をＭＣＵが行なう場合のＭＣＵの機能構成の一例を示すブロック図である。
【図１５】不揮発性メモリの記憶内容の一例を示す模式図である。
【図１６】リセット完了時のＭＣＵの動作の一例を示すフローチャートである。
【図１７】エラーの発生を予測できるモデルを構築するための手法を模式的に示す図である。
【図１８】学習フェーズにおけるモデルの入出力の一例を示す模式図である。
【図１９】推測フェーズにおけるモデルの入出力の一例を示す模式図である。
【図２０】ストレスモニタの構成の一例を示すブロック図である。
【図２１】ストレスモニタの各構成要素の動作波形を示すグラフである。
【図２２】ＥＣＣエラーがハードエラーであるか否かの判定方法の一例を示すフローチャートである。
【図２３】解析用データの保存過程の一例を示す模式図である。
【発明を実施するための形態】
【００１０】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１１】
＜実施の形態の概要＞
まず、実施の形態の詳細な説明に先立って、実施の形態の概要について説明する。図１は、実施の形態の概要にかかる半導体装置１の構成の一例を示すブロック図である。半導体装置１は、モジュール２と、エラー情報取得部３と、ストレス取得部４と、解析用データ保存部５とを有する。なお、半導体装置１は、例えば、ＭＣＵ（Micro Control Unit：マイクロコントロールユニット）であるが、これに限られない。
【００１２】
モジュール２は、所定の機能を提供するモジュールである。モジュール２は、例えば所定の機能を提供するための処理を実行するハードウェア回路であるが、ハードウェア回路に限らず、ソフトウェアであってもよい。半導体装置１は、モジュール２を複数有してもよい。エラー情報取得部３は、モジュール２で発生したエラーについてのエラー情報を取得する。また、ストレス取得部４は、半導体装置１にかかるストレスの累積値であるストレス累積値を取得する。
【００１３】
解析用データ保存部５は、半導体装置１の状態を解析するためのデータとして、エラー情報取得部３が取得したエラー情報と、ストレス取得部４が取得した、当該エラーが発生した時点のストレス累積値とを関連づけたデータである解析用データを保存する。解析用データ保存部５は、半導体装置１に設けられたメモリ（例えば、不揮発性メモリ）に解析用データを保存してもよいし、他の装置（例えば、解析用データを用いて所定の解析処理を行なうサーバ）に解析用データを保存してもよい。
【００１４】
以上説明した通り、半導体装置１は、ストレスについての情報のみを解析用データとして保存するのではなく、エラー情報と、当該エラーが発生した時点のストレス累積値とを関連づけたデータを、解析用データとして保存する。したがって、このような解析用データによれば、エラーとストレスとの関連性に着目した解析が可能となる。このように、半導体装置１によれば、装置の故障の予知保全のための、より有益な解析が可能となるデータを得ることができる。
【００１５】
＜実施の形態の詳細＞
以下、実施の形態の詳細について説明する。
＜実施の形態１＞
図２は、実施の形態にかかる解析システム１０の構成の一例を示すブロック図である。解析システム１０は、Ｍ台（Ｍは１以上の整数）のＭＣＵ１００とサーバ２００とを有する。ＭＣＵ１００は、例えば、自動車などの車両に搭載されるＭＣＵであるが、これに限られない。また、サーバ２００は、例えば、クラウド上に存在するサーバであるが、これに限られない。ＭＣＵ１００は、例えば無線接続により、サーバ２００と通信可能に接続している。
【００１６】
図３は実施の形態にかかるＭＣＵ１００の構成の一例を示すブロック図である。図３に示すように、ＭＣＵ１００は、プロセッサ１０１と、メモリ１０２と、モジュール１０３と、エラー検出部１０４と、ストレスモニタ１０５と、ＥＣＭ（Error Control Module）１０６とを有する。ここで、ＭＣＵ１００は、図１の半導体装置１に相当し、プロセッサ１０１、メモリ１０２、及びモジュール１０３は、図１のモジュール２に相当する。
【００１７】
メモリ１０２は、例えば、揮発性メモリであってもよいし、不揮発性メモリであってもよく、これら両方を含んでもよい。メモリ１０２は、プロセッサ１０１により実行される、１以上の命令を含むソフトウェア（コンピュータプログラム）などを格納するために使用される。また、メモリ１０２は、ソフトウェアに限らず、様々なデータを格納することができる。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１８】
プロセッサ１０１は、メモリ１０２からソフトウェア（コンピュータプログラム）を読み出して実行することで、後述するエラー情報取得部１５０、ストレス取得部１５１、累積動作時間取得部１５２、及び解析用データ保存部１５３の処理を含む様々な処理を行う。プロセッサ１０１は、例えば、ＣＰＵ(Central Processing Unit)であるが、ＧＰＵ（Graphics Processing Unit）などであってもよい。プロセッサ１０１は、複数のプロセッサを含んでもよい。
【００１９】
モジュール１０３は、所定の機能を提供するハードウェア回路によって構成される周辺モジュールである。例えば、モジュール１０３は、ＡＤＣ（Analog-To-Digital Converter）であってもよいし、ＤＡＣ（Digital-To-Analog Converter）であってもよいし、タイマなどであってもよい。
【００２０】
エラー検出部１０４は、図１に示したモジュール２に相当する構成要素の異常を検出する。すなわち、エラー検出部１０４は、プロセッサ１０１、メモリ１０２、及びモジュール１０３の異常を検出する。なお、エラー検出部１０４は、モジュール２に相当する構成要素毎に存在してもよいし、モジュール２に相当する複数の構成要素に対し１つ存在してもよい。エラー検出部１０４は、例えば、ハードウェア回路により構成されているが、ソフトウェアにより実現されてもよい。エラー検出部１０４は、例えば、メモリ１０２のエラーを検出するためのＥＣＣ（Error Checking and Correction）回路、プロセッサ１０１のエラーを検出するためのＤＣＬＳ（Dual Core Lock Step）方式のエラー検出機能などである。また、エラー検出部１０４は、半導体装置（ＭＣＵ１００）が制御する、半導体装置外のモジュールの状態異常を検知して当該モジュールで発生するエラーを検出してもよい。エラー検出部１０４は、エラーを検出すると、エラーを検出したことを示す信号をＥＣＭ１０６に出力する。なお、エラー検出部１０４は、検出したエラーの種別などのエラー内容を示す信号をＥＣＭ１０６に出力してもよい。
【００２１】
本実施の形態では、エラー検出部１０４が検出するエラーは、半導体装置の故障に至らないエラーを含む。すなわち、ＭＣＵ１００などが備える機能安全機構によって適切な処理結果へと対応可能なエラーを含む。例えば、メモリの１ビットエラーは、ＥＣＣ回路により訂正可能であるため対応可能なエラーである。
【００２２】
ＥＣＭ１０６は、エラー検出部１０４から通知された信号に基づいて、所定の制御を行なうコントローラである。例えば、ＥＣＭ１０６は、エラーの種別毎の制御内容を定義した設定情報を格納したレジスタを有し、エラー検出部１０４から通知された信号に対応するレジスタに格納された設定情報を参照して、設定情報に応じた制御を実行するハードウェア回路である。ＥＣＭ１０６は、例えば、エラー検出部１０４からの通知があると、所定のプログラムをプロセッサ１０１に実行させる割り込みを発生させてもよいし、ＭＣＵ１００のリセットを行なってもよいし、他の装置又はＭＣＵ１００内の他の構成要素にエラーの通知をしてもよい。
【００２３】
ストレスモニタ１０５は、ＭＣＵ１００にかかるストレスをＭＣＵ１００の動作中に継続的に測定し、測定したストレスの累積値であるストレス累積値を保持する。ストレスモニタ１０５は例えばソフトウェアにより構成される。この場合、例えば、ＭＣＵ１００が備える温度センサ又は電圧センサの計測値を入力として、プロセッサ１０１がストレス算出用のプログラムを実行することによりストレスの測定が行なわれる。すなわち、ストレスモニタ１０５は、温度センサにより計測されたＭＣＵ１００の温度とアレニウスモデルを用いて、ストレスを算出してもよいし、電圧センサにより計測されたＭＣＵ１００の電源電圧とアイリングモデルを用いて、ストレスを算出してもよい。
なお、ストレスモニタ１０５は、ソフトウェアに限らず、ハードウェア回路により構成されてもよい。この場合、例えば、ストレスモニタ１０５は、ストレスに対し所定の依存性を有するリングオシレータとカウンタ回路とを備え、リングオシレータの発振周波数をカウンタ回路によりカウントすることによりストレスを計測する。
【００２４】
また、ストレスモニタ１０５は、ＭＣＵ１００が動作した時間の累積値である累積動作時間を計測して保持する。このように、ストレスモニタ１０５は、ＭＣＵ１００のある時点におけるストレス累積値と累積動作時間とを保持する。なお、以降の説明では、ストレス累積値及び累積動作時間をまとめて、ストレスデータと称す。
【００２５】
図４は、ＭＣＵ１００が更に備える構成の一例を示すブロック図である。図４に示した構成は、例えば、ＥＣＭ１０６の制御により発生する割り込み処理についてのプログラムをプロセッサ１０１が実行することにより実現される。
【００２６】
エラー情報取得部１５０は、図１のエラー情報取得部３に相当し、本実施の形態では、エラー検出部１０４により検出されたエラーについてのエラー情報を取得する。このエラー情報は、エラーの種別を示す情報を含む。エラーの種別を示す情報は、いずれの構成要素において発生したエラーであるかを示す情報を含む。エラーの種別を示す情報は、エラー内容を示す情報を含んでもよい。なお、エラー情報は、エラー検出部１０４が生成してもよいし、エラー検出部１０４から通知された信号に基づいてＥＣＭ１０６が生成してもよい。
【００２７】
ストレス取得部１５１は、図１のストレス取得部４に相当し、本実施の形態では、ストレスモニタ１０５が保持するストレス累積値を取得する。
累積動作時間取得部１５２は、累積動作時間を取得する。本実施の形態では、累積動作時間取得部１５２は、ストレスモニタ１０５が保持する累積動作時間を取得する。
このように、ストレス取得部１５１及び累積動作時間取得部１５２はストレスデータを取得するストレスデータ取得部として機能する。
【００２８】
解析用データ保存部１５３は、図１の解析用データ保存部５に相当し、ＭＣＵ１００の状態を解析するためのデータとして、エラー情報と、このエラー情報で示されるエラーが発生した時点のストレスデータとを関連づけたデータである解析用データを生成し、サーバ２００に保存する。すなわち、解析用データ保存部１５３は、エラー情報とこのエラー情報で示されるエラーが発生した時点のストレス累積値と当該エラーが発生した時点の累積動作時間とを関連づけたデータを解析用データとして保存する。なお、これらを関連づけたデータをエラー時点データと称すことがある。
解析用データ保存部１５３は、例えば、ＭＣＵ１００が備える送受信回路（不図示）を用いてサーバ２００に解析用データを送信することにより、解析用データをサーバ２００のストレージ２０２（図５参照）に保存する。
【００２９】
上述した通り、本実施の形態では、検出されるエラーは、機能安全機構により半導体装置（ＭＣＵ１００）の故障に至らないエラーを含む。このため、エラー情報取得部１５０が取得するエラー情報は、機能安全機構により半導体装置の故障として発現しないエラーについての情報を含む。したがって、解析用データ保存部１５３は、半導体装置の故障として発現するエラーについてのエラー情報に関連づけられたストレスデータのみならず、故障として発現しないエラーについてのエラー情報に関連づけられたストレスデータも解析用データとして保存する。このため、故障として発現するエラーについての解析用データだけを保存する場合に比べ、より多くの解析用データを取得することができる。解析処理のためのデータをより多く確保することができる。
【００３０】
また、解析用データ保存部１５３は、エラー検出部１０４がエラーを検出したか否かに関わらず、所定の保存タイミングに、ストレスデータを解析用データとしてサーバ２００のストレージ２０２に保存する。なお、本実施の形態では、この保存タイミングはシャットダウン時（正常終了時）であるが、動作中の定期的なタイミングであってもよい。
【００３１】
また、解析用データ保存部１５３は、サーバ２００のストレージ２０２への解析用データの保存に加え、ＭＣＵ１００のメモリ１０２などへの解析用データの保存を行なってもよい。
【００３２】
次に、サーバ２００について説明する。図５は、サーバ２００のハードウェア構成の一例を示すブロック図である。図５に示すように、サーバ２００は、例えば、ネットワークインタフェース２０１と、ストレージ２０２と、メモリ２０３と、プロセッサ２０４とを有する。
【００３３】
ネットワークインタフェース２０１は、ＭＣＵ１００との通信を行うために使用される。ネットワークインタフェース２０１は、例えば、ネットワークインタフェースカード（ＮＩＣ）を含んでもよい。
【００３４】
ストレージ２０２は、ＨＤＤ（Hard Disk Drive）、磁気テープ、光ディスク、又はＳＳＤ（Solid State Drive）などにより構成される。ストレージ２０２は、Ｍ台のＭＣＵ１００から送信された解析用データを含む種々の情報を記憶する。ストレージ２０２は、解析用データを用いた機械学習により生成された学習済みモデルを記憶してもよい。
【００３５】
メモリ２０３は、例えば揮発性メモリ又は不揮発性メモリによって構成される。メモリ２０３は、プロセッサ２０４により実行される、１以上の命令を含むプログラムなどを格納するため等に使用される。
【００３６】
プロセッサ２０４は、例えば、ＣＰＵであるが、ＧＰＵなどであってもよい。プロセッサ２０４は、複数のプロセッサを含んでもよい。プロセッサ２０４は、メモリ２０３からコンピュータプログラムを読み出して実行することで、図６に示すサーバ２００の各構成要素の処理を行う。
【００３７】
上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。
【００３８】
図６は、サーバ２００の機能構成の一例を示すブロック図である。図６に示すように、サーバ２００は、解析部２１０と、状態通知部２１１とを有する。
【００３９】
解析部２１０は、ストレージ２０２に格納された解析用データに基づいてＭＣＵ１００の状態を解析する。解析部２１０は、エラーについての情報（例えば、エラーの発生箇所、エラー内容、エラーの発生頻度、エラーの発生間隔など）と、ストレスデータとの関係性を解析する。解析部２１０は、解析用データとＡＩ（Artificial Intelligence）技術を用いた機械学習を伴う解析処理を行なってもよい。すなわち、解析部２１０は、解析用データを訓練データとして機械学習によりモデルを生成してもよい。なお、機械学習としては、ニューラルネットワークが挙げられるが、これに限られない。
【００４０】
状態通知部２１１は、解析部２１０による解析処理に基づいて判定されるＭＣＵ１００の状態（診断結果）を、ネットワークインタフェース２０１を用いてＭＣＵ１００に通知する。
【００４１】
図７は、ＭＣＵ１００における解析用データの保存についての動作の一例を示すフローチャートである。以下、図７に沿って、解析用データの保存についての動作の流れを説明する。
ステップＳ１０１において、エラー検出部１０４がエラーの発生の有無を監視する。エラー検出部１０４がエラーを検出しない場合（ステップＳ１０１でＮｏ）、ステップＳ１０４において、ＭＣＵ１００は通常処理を実施する。これに対し、エラー検出部１０４がいずれかの構成要素におけるエラーを検出した場合（ステップＳ１０１でＹｅｓ）、処理はステップＳ１０２へ移行する。
【００４２】
ステップＳ１０２において、解析用データ保存部１５３は、エラー検出部１０４が検出したエラーについてのエラー情報と、このエラー情報で示されるエラーが発生した時点のストレスデータとを関連づけたデータである解析用データを生成し、サーバ２００に保存する。なお、ＭＣＵ１００の動作中は、ストレスモニタ１０５は、ストレスデータのカウントを継続している。
その後、ステップＳ１０３において、ＥＣＭ１０６の制御に基づき、リセットなどといったエラーに対応する所定の処理（エラー処理）が行なわれる。
ステップＳ１０３の後、ＭＣＵ１００は通常処理に移行する（ステップＳ１０４）。
【００４３】
以上説明したフローは、ＭＣＵ１００のシャットダウンの指示があるまで繰り返される。シャットダウンの指示をＭＣＵ１００が受信すると（ステップＳ１０５でＹｅｓ）、ステップＳ１０６において、解析用データ保存部１５３は、現在のストレスデータをサーバ２００に保存する。
次に、ステップＳ１０７において、ＭＣＵ１００は、サーバ２００に対し、ステップＳ１０３及びステップＳ１０６で保存された解析用データを用いた解析（例えば、この解析用データとＡＩ技術を用いた機械学習）の実施を指示する。その後、ステップＳ１０８において、ＭＣＵ１００はシャットダウンする。
【００４４】
図８は、ＭＣＵ１００がサーバ２００から診断結果を受信した場合の動作の一例を示すフローチャートである。以下、図８に沿って、診断結果を受信した場合のＭＣＵ１００の動作の流れを説明する。
ステップＳ２００において、ＭＣＵ１００が、サーバ２００から、当該ＭＣＵ１００についての状態の診断結果を受信する。ＭＣＵ１００は、例えば、起動時にスタートアップ処理における処理の一つとして、サーバ２００から当該ＭＣＵ１００の診断結果を受信する。
故障の兆候があるとの診断結果が受信された場合（ステップＳ２０１でＹｅｓ）、ＭＣＵ１００はアラームを出力し（ステップＳ２０２）、その後、通常処理を実施する（ステップＳ２０３）。故障の兆候があるとの診断結果を受信しなかった場合（ステップＳ２０１でＮｏ）、ＭＣＵ１００はアラームを出力せずに、通常処理を実施する（ステップＳ２０３）。
【００４５】
以上、実施の形態１について説明した。本実施の形態によれば、上述した通り、解析用データ保存部１５３は、エラー情報とストレスデータとを関連づけた解析用データを保存する。したがって、このような解析用データによれば、エラーとエラー発生時のストレス累積値とエラー発生時の累積動作時間の関連性に着目した解析が可能となる。したがって、装置の故障の予知保全のための、より有益な解析が可能となる。
【００４６】
＜実施の形態２＞
次に、実施の形態２について説明する。エラーの発生は、ストレスがどれだけ累積したかに関係している場合もあるが、それ以外の指標に関係している場合もある。すなわち、エラーの発生は、ストレスが単位時間に急激に増加したことに関係している場合もある。このため、本実施の形態では、単位時間あたりのストレスの増加量に着目して解析用データの解析を行なう構成について示す。
【００４７】
以下、実施の形態２にかかる解析システム１０について説明する。実施の形態２にかかる解析システム１０の構成は、実施の形態１にかかる解析システム１０と同様の構成を備えている。すなわち、実施の形態２にかかる解析システム１０は、図２から図６で示した構成を備えている。ただし、実施の形態２では、メモリ１０２は、少なくともフラッシュメモリなどの不揮発性メモリを含む。以下の説明では、この不揮発性メモリについて、不揮発性メモリ１０２と称す。
実施の形態２は、解析用データの保存手順が実施の形態１と異なっている。また、実施の形態２では、上述の通り、単位時間あたりのストレスの増加量に着目した解析が行なわれる。以下の説明では、実施の形態１と異なる点について、フローチャートを参照しつつ説明する。
【００４８】
図９は、シャットダウン時（正常終了時）のＭＣＵ１００の動作の一例を示すフローチャートである。
ステップＳ３００において、ＭＣＵ１００が、シャットダウンを指示する信号を受信する。
次に、ステップＳ３０１において、解析用データ保存部１５３は、現在のストレスデータ（ストレス累積値及び累積動作時間）を解析用データとして、不揮発性メモリ１０２に保存する。
その後、ステップＳ３０２において、ＭＣＵ１００はシャットダウンする。
したがって、エラーが検出されたか否かに関わらず、シャットダウンの度に解析用データが１セットずつ不揮発性メモリ１０２に保存される。
【００４９】
なお、本実施の形態では、一例として、シャットダウンの度にストレスデータの保存処理を実施する動作例を説明したが、ＭＣＵ１００の動作中の所定の定期的なタイミングにストレスデータの保存処理が行なわれてもよい。すなわち、解析用データ保存部１５３は、予め定められた保存タイミングで、当該保存タイミングの時点におけるストレス累積値及び累積動作時間を関連づけた解析用データを保存してもよい。なお、このような、エラー発生時以外の保存タイミングにより保存される解析用データを所定時点データと称することがある。
【００５０】
図１０は、エラーの検出がエラー検出部１０４からＥＣＭ１０６に通知された場合のＭＣＵ１００の動作の一例を示すフローチャートである。
ステップＳ４００において、エラー検出部１０４が、エラーを検出し、エラーを検出したことを示す信号をＥＣＭ１０６に出力する。ステップＳ４００で検出されたエラーについてのエラー情報を、エラー情報ＥＲ１と称すこととする。
【００５１】
次に、ステップＳ４０１において、解析用データ保存部１５３は、エラー情報ＥＲ１と、現在のストレスデータ（すなわち、エラー発生時のストレスデータ）とを関連づけて、解析用データとして、不揮発性メモリ１０２に保存する。なお、このとき、解析用データ保存部１５３は、ステップＳ４０１における保存の前に既に不揮発性メモリ１０２に保存されている解析用データのうち最新のものについて上書き又は消去することなく、エラー情報ＥＲ１の解析用データを保存する。このように、不揮発性メモリ１０２には、エラーが発生した時点のストレスデータと、その１つ前の保存タイミングにて保存されたストレスデータとが格納される。
【００５２】
ステップＳ４０１の直前の時点で既に保存されていた中での最新の解析用データ、言い換えると、ステップＳ４０１における保存タイミングの一つ前の保存タイミング（すなわち、シャットダウン時又はエラー検出時）で保存された解析用データにおけるストレス累積値をストレス累積値ＣＴ０と称すこととする。同様に、既に保存されていた最新の解析用データにおける累積動作時間を累積動作時間ＴＭ０と称すこととする。
また、解析用データにおいてエラー情報ＥＲ１と関連づけられるストレス累積値をストレス累積値ＣＴ１と称すこととする。同様に、エラー情報ＥＲ１と関連づけられる累積動作時間を累積動作時間ＴＭ１と称すこととする。
【００５３】
次に、ステップＳ４０２において、ＥＣＭ１０６の制御に基づき、リセットなどといったエラーに対応する所定の処理（エラー処理）が行なわれる。
【００５４】
図１１は、リセット完了時のＭＣＵ１００の動作の一例を示すフローチャートである。
ステップＳ５００において、ＭＣＵ１００のリセット処理が完了する。なお、本ステップで完了するリセットは、パワーオンリセットなどの通常動作時のリセットであってもよいし、エラー発生時の強制リセットであってもよい。
【００５５】
ステップＳ５０１において、解析用データ保存部１５３は、不揮発性メモリ１０２に保存されている最新の解析用データを読み出す。
【００５６】
次に、ステップＳ５０２において、解析用データ保存部１５３は、ステップＳ５０１で読み出した解析用データがエラー発生時に保存されたデータであるか否かを判定する。具体的には、解析用データ保存部１５３は、この判定を、この解析用データに含まれるストレスデータがエラー情報と関連づけられているか否かに基づいて行なう。
ステップＳ５０１で読み出した解析用データがエラー発生時に保存されたデータである場合、処理はステップＳ５０３へ移行し、そうでない場合、処理はステップＳ５０４へ移行する。
【００５７】
ステップＳ５０３において、解析用データ保存部１５３は、一つ前の保存タイミングで保存された解析用データ、すなわちステップＳ５０３の時点で保存されている中での２番目に新しい解析用データを不揮発性メモリ１０２から読み出して、ステップＳ５０１で読み出した解析用データとともに、サーバ２００に送信する。すなわち、解析用データ保存部１５３は、解析用データの２つのセットをサーバ２００に保存する。これにより、ステップＳ５０３において、例えば、ストレス累積値ＣＴ０、累積動作時間ＴＭ０、エラー情報ＥＲ１、ストレス累積値ＣＴ１、累積動作時間ＴＭ１がサーバ２００に送信される。ステップＳ５０３の後、処理はステップＳ５０４へ移行する。
【００５８】
ステップＳ５０４において、ストレスモニタ１０５が起動し、不揮発性メモリ１０２に保存されている最新のストレスモニタの値からカウントを再開する。すなわち、ストレスモニタ１０５は、不揮発性メモリ１０２から読み出された最新のストレス累積値へのストレス値の加算を開始するとともに、不揮発性メモリ１０２から読み出された最新の累積動作時間への動作時間の加算を開始する。
【００５９】
次に、上記ステップＳ５０３で送信された２つのセットの解析用データを用いた解析処理について説明する。以下で説明するとおり、この解析処理は、単位時間あたりのストレスの増加量に着目した解析を含む。
図１２は、エラー発生時の解析用データとそれより１つ前の解析用データによる解析処理の一例を示すフローチャートである。なお、ここでは、一例としてサーバ２００が解析処理を行うものとして説明を行なう。
【００６０】
ステップＳ６００において、解析部２１０は、ＭＣＵ１００におけるエラー発生時の解析用データとそれより１つ前の解析用データを取得する。すなわち、解析部２１０は、ストレス累積値ＣＴ０、累積動作時間ＴＭ０、エラー情報ＥＲ１、ストレス累積値ＣＴ１、及び累積動作時間ＴＭ１を取得する。
【００６１】
次に、ステップＳ６０１において、解析部２１０は、エラーの発生の直前の単位時間当たりのストレスの増加量ＤRECENTを算出する。解析部２１０は、例えば、以下の式（１）を演算することにより、増加量ＤRECENTを算出する。
ＤRECENT＝（ＣＴ１−ＣＴ０）／（ＴＭ１−ＴＭ０）  ・・・（１）
【００６２】
次に、ステップＳ６０２において、解析部２１０は、ストレスの単位時間当たりの平均的な増加量ＤMEANを算出する。具体的には、エラー発生時のストレスデータの一つ前のストレスデータに基づいて、単位時間当たりの増加量の平均値を算出する。すなわち、解析部２１０は、例えば、以下の式（２）を演算することにより、増加量ＤMEANを算出する。
ＤMEAN＝ＣＴ０／ＴＭ０  ・・・（２）
【００６３】
次に、ステップＳ６０３において、解析部２１０は、エラーの発生原因を推測する。すなわち、解析部２１０は、エラー情報ＥＲ１で示されるエラーの発生原因を推測する。この具体的な処理手順を図１３に示す。
【００６４】
図１３は、ストレスデータとエラーとの関係を判定するための手順の一例を示すフローチャートである。すなわち、図１３は、図１２のステップＳ６０３の具体的なフローを示すフローチャートである。
ステップＳ７００において、解析部２１０は、ステップＳ６０１で算出したストレスの増加量ＤRECENTが所定の基準範囲内であるか否かを判定する。具体的には、解析部２１０は、増加量ＤRECENTと増加量ＤMEANとの差が所定の閾値以下であるか否かに基づいて、これを判定する。この閾値は、単位時間当たりのストレスの増加量として予め想定されるばらつきを考慮して事前に設定された閾値である。
増加量ＤRECENTが所定の基準範囲内でない場合（ステップＳ７００でＮｏ）、すなわち、増加量ＤRECENTと増加量ＤMEANとの差が所定の閾値を超える場合、解析部２１０は、エラー情報ＥＲ１で示されるエラーと、このエラーの発生の直近のストレスとが関係していると判定する（ステップＳ７０１）。つまり、この場合、エラー発生の直前において、ＭＣＵ１００へのストレス増加につながる環境変化があったと推測され、この環境変化によるストレスがエラーの発生を引き起こしたと推測できる。
【００６５】
増加量ＤRECENTが所定の基準範囲内である場合（ステップＳ７００でＹｅｓ）、ステップＳ７０３の判定が行なわれる。ステップＳ７０２において、解析部２１０は、ストレス累積値が予め定められた基準値以下であるか否かを判定する。すなわち、解析部２１０は、ストレス累積値が経時劣化を懸念すべきレベルに到達したか否かを判定する。具体的には、解析部２１０は、ストレス累積値ＣＴ０が予め定められた基準値以下であるか否かを判定する。
ストレス累積値ＣＴ０が上記基準値を超える場合（ステップＳ７０２でＮｏ）、すなわち、ストレス累積値ＣＴ０が経時劣化を懸念すべきレベルに到達した場合、解析部２１０は、エラー情報ＥＲ１で示されるエラーと、累積されたストレスとが関係していると判定する（ステップＳ７０３）。つまり、この場合、累積されたストレスがエラーの発生を引き起こしたと推測できる。
【００６６】
これに対し、ストレス累積値ＣＴ０が上記基準値以下である場合（ステップＳ７０２でＹｅｓ）、解析部２１０は、エラー情報ＥＲ１で示されるエラーはストレスと無関係であると判定する（ステップＳ７０４）。
【００６７】
なお、ステップＳ７０２において、ストレス累積値ＣＴ０と基準値とを比較したが、ストレス累積値ＣＴ１と基準値とを比較してもよい。また、上記説明では、サーバ２００が図１２及び図１３に示す解析処理を行なう例について示したが、その一部又は全部がＭＣＵ１００により行なわれてもよい。
図１４は、解析処理をＭＣＵ１００が行なう場合のＭＣＵ１００の機能構成の一例を示すブロック図である。図１４に示すように、この場合のＭＣＵ１００は、解析部１５４が追加されている点で図４に示した構成と異なっている。解析部１５４は、例えばプロセッサ１０１がプログラムを実行することにより、図１２及び図１３で示した処理を実行する。
【００６８】
以上、実施の形態２について説明した。上述のように、解析用データ保存部１５３は、実施の形態１と同様、エラー発生時にエラー情報と関連付けられたストレスデータを解析用データとして保存するだけでなく、予め定められた保存タイミングで、間欠的に、エラー情報とは関連づけられていないストレスデータを解析用データとして保存する。つまり、保存される解析用データ群は、エラーの発生時の解析用データのみならず、このエラーが発生した時点の直前の解析用データを含む。そして、本実施の形態では、両方の解析用データを解析のために提供することができる。したがって、エラーが発生した時点のストレスデータのみに着目した解析に比べてより多彩な解析が可能となる。
特に、図１２及び図１３で示したように、解析部２１０又は解析部１５４は、エラーが発生した時点の解析用データと、このエラーが発生した時点の直前の解析用データとに基づいて、当該エラーが発生した時点の直前のストレスの増加量を評価することにより、ＭＣＵ１００の状態を解析している。このため、直前のストレスの増加量とエラー発生の因果関係について解析することができる。
また、図１３のステップＳ７０２で示したように、解析部２１０又は解析部１５４は、さらに、当該エラーが発生した時点のストレス累積値、又は、当該エラーが発生した時点の直前のストレス累積値を評価することにより、ＭＣＵ１００の状態を解析する。このため、累積されたストレス量とエラー発生の因果関係について解析することができる。
【００６９】
＜実施の形態３＞
次に、実施の形態３について説明する。実施の形態２では、エラーが発生した時点のストレスデータと、その１つ前の保存タイミングにて保存されたストレスデータとを用いて、図１２及び図１３で示される解析を行なう実施の形態について示した。実施の形態３では、機械学習による解析をするためのシステムについて説明する。以下、実施の形態２と同様な構成及び動作については説明を省略し、異なる点を説明する。なお、以下に述べる実施の形態３における特徴を実施の形態２と組み合わせて新たな実施の形態とすることも可能である。
【００７０】
図１５は、実施の形態３における不揮発性メモリ１０２の記憶内容の一例を示す模式図である。図１５に示した例では、不揮発性メモリ１０２は例えばフラッシュメモリであり、消去ブロック５０１及び消去ブロック５０２を有する。消去ブロックとは、不揮発性メモリ１０２のデータを消去する最小単位のメモリ領域であり、書き込み単位の領域の複数から構成される。
図１５において、書き込みフラグとは、書き込み単位の領域毎に設けられるフラグであり、当該領域の消去後に書き込み処理が行われたかを示すフラグである。また、ＣＴは、ストレス累積値を示し、ＴＭは、累積動作時間を示す。エラー記録情報は、ＣＴ及びＴＭがエラー情報と関連づけられているか否かを示す情報である。また、エラー記録情報は、ＣＴ及びＴＭがエラー情報と関連づけられている場合には、当該エラー情報を含む。よって、ＣＴ及びＴＭがエラー情報と関連づけられている場合には、エラー記録情報はエラー情報に相当する。すなわち、エラー記録情報は、不揮発性メモリ１０２に保存されている解析用データがエラー発生時のものである場合、当該解析用データに含まれるＣＴ及びＴＭと関連づけられているエラー情報であり、不揮発性メモリ１０２に保存されている解析用データがエラー発生時のものではない場合、当該解析用データに含まれるＣＴ及びＴＭにエラー情報が関連づけられていないことを示す情報である。
【００７１】
消去ブロック５０１、５０２には最大ｓ−２セット（ただし、ｓは４以上の整数）のデータを書き込むことができる。解析用データ保存部１５３は、不揮発性メモリ１０２に保存したデータのセット数の合計がｓに達したら、ｓ−２セットのデータが格納され満杯状態の消去ブロックのデータをサーバに送信し、当該消去ブロックのデータを消去する。図１５に示した例では、消去ブロック５０２には、書き込みフラグ、エラー記録情報、ＣＴ、ＴＭのセットが２つ書き込まれている。また、消去ブロック５０１には、ｓ−２セットのデータが格納されており、満杯状態となっている。なお、消去ブロック５０２に保存されている２つのデータのセットは、直近の２つの解析用データであり、消去ブロック５０１に保存されているｓ−２個のデータのセットは、それらよりも以前に保存された解析用データである。図１５に示した例では、解析用データ保存部１５３は、消去ブロック５０１に保存されているｓ−２個のデータのセットをサーバ２００に送信し、消去ブロック５０１を消去する。その結果、不揮発性メモリ１０２には直近の２セットの解析用データが残され、サーバ２００にはそれよりも以前のｓ−２セットの解析用データはサーバ２００に保存される。
【００７２】
このように、不揮発性メモリ１０２に２セット以上のデータが残るよう制御される。このため、最新のデータがエラー発生と関連付けられている場合、例えば、図１２及び図１３に示した方法を用いて、ＭＣＵ１００の解析部１５４は、エラー発生原因を推測できる。また、サーバ２００には、多数のセットの解析用データが送信されるので、後述するように、これらの解析用データを用いて、エラー発生予測のための学習済みモデルを構築することができるとともに、この学習済みモデルを用いた予測を行なうことができる。また、上述の通り、複数セットをまとめてサーバ２００へ送信するので、通信回数を削減できる。
【００７３】
実施の形態３では、リセット完了時のＭＣＵ１００の動作が、図１１に示したフローに代えて図１６に示すフローとなる。図１６は、実施の形態３において、リセット完了時のＭＣＵ１００の動作の一例を示すフローチャートである。図１１に示したフローチャートとの違いは、ステップＳ８０２及びＳ８０３に示すように、不揮発性メモリ１０２に格納されたデータ（エラー記録情報、ＣＴ、ＴＭからなるデータのセット）が所定のセット数ｓに達した場合、ｓ−２個のセットをサーバ２００に送信することである。以下、図１６に沿って、説明する。
【００７４】
ステップＳ８００において、ＭＣＵ１００のリセット処理が完了する。次に、ステップＳ８０１において、解析用データ保存部１５３は、不揮発性メモリ１０２に保存されている最新の解析用データを読み出す。
次に、ステップＳ８０２において、解析用データ保存部１５３は、不揮発性メモリ１０２に格納されたエラー記録情報、ＣＴ、ＴＭからなるセットの総数が所定のセット数sに達したか否かを判定する。不揮発性メモリ１０２に格納されたセット数がsに達している場合（ステップＳ８０２でＹｅｓ）、処理はステップＳ８０３へ移行し、そうでない場合（ステップＳ８０２でＮｏ）、処理はステップＳ８０３をスキップしてステップＳ８０４へ移行する。
ステップＳ８０３では、解析用データ保存部１５３は、不揮発性メモリ１０２に格納されているｓ−２個の解析用データ（すなわち、エラー記録情報、ＣＴ、ＴＭ）をサーバ２００に送信する。ステップＳ８０３の後、処理はステップＳ８０４へ移行する。
ステップＳ８０４において、ストレスモニタ１０５が起動し、不揮発性メモリ１０２に保存されている最新のストレスモニタの値からカウントを再開する。
【００７５】
次に、サーバ２００に送信されたデータに基づくモデルの構築について説明する。図１７は、エラーの発生を予測できるモデルを構築するための手法を模式的に示す図である。サーバ２００に送信された解析用データは、上述の通り、エラー記録情報とストレスデータ（すなわち、ＣＴ、ＴＭ）を含む。また、エラー記録情報がエラー情報を含む場合、このエラー情報によりエラー種別が特定可能である。したがって、エラー発生時の解析用データは、エラー種別とストレスデータとが関連づけられている。サーバ２００の解析部２１０は、エラー種別と関連づけられているこれらのストレスデータを含む訓練データと、公知のＡＩ(Artificial Intelligence)とを用いて、エラーを予測するためのモデルを構築する。例えば、訓練データは、次のようなデータセットである。すなわち、１組の訓練データは、あるエラーの発生時点の解析用データを含む集合であって、当該エラーが発生した時点の直近のｎセット（ｎは１以上の整数）の解析用データの集合である。様々なＭＣＵ１００から送信された解析用データから様々な訓練データが作成される。このため、サーバ２００には多数の訓練データが集積されている。訓練データを構成するストレスデータが、機械学習における入力データとして用いられ、エラー種別が教師データとして用いられる。
【００７６】
モデルの構築のために用いられるＡＩ、すなわちモデルの構築のために用いられる機械学習が、ニューラルネットワークである場合を例に、解析部２１０の解析処理について説明する。なお、ニューラルネットワークは一例であり、解析部２１０は、他の機械学習手法と上記訓練データとを用いたモデルの構築及び利用を行なってもよい。図１８は、学習フェーズにおけるモデルの入出力の一例を示す模式図である。また、図１９は、推測フェーズにおけるモデルの入出力の一例を示す模式図である。
【００７７】
ニューラルネットワークの出力層を構成する出力ニューロンは、エラー種別ｅ１の発生を示唆するニューロンＮ１＿ＥＲや、エラー種別ｅ１と異なるエラー種別ｅ２の発生を示唆するニューロンＮ２＿ＥＲなどから構成される。学習(training)フェーズにおいては、例えば、ある訓練データにおいてストレスデータのセットがエラー種別ｅ２に関連付けられている場合、ニューラルネットワークの入力層に対する当該ストレスデータのセットの入力に対して、ニューロンＮ２＿ＥＲが発火するように解析部２１０において学習が実施される。１組の訓練データに含まれるストレスデータのセットは、図１８において入力データとして示す通り、エラー発生時点までのストレス累積値ＣＴと累積動作時間ＴＭのｎ個の組である。解析部２１０は、図１８に示すような学習処理を、サーバ２００が収集した解析用データから得られる多数の訓練データに対して繰り返す。このような学習の結果、エラーの発生を予測できる学習済みモデルが構築される。
【００７８】
図１９に示すように、推測(inference)フェーズにおいては、解析部２１０は、学習済みモデルであるニューラルネットワークの入力層に、いずれのエラー種別にも関連付けられていないストレスデータのセットを入力する。この入力されるストレスデータのセットは、ＭＣＵ１００から送信されたｎ組の時系列の解析用データである。この入力に対し、もし出力層のニューロンＮｍ−１＿ＥＲが有意に選択的に発火した場合、近い将来、エラー種別ｅｍ−１のエラーの当該ＭＣＵ１００における発生が示唆される。すなわち、エラー種別ｅｍ−１が発生するとの予測結果がニューラルネットワークの出力層から得られる。図１９に示した例では、ニューロンＮｍ−１＿ＥＲの発火度は０．６であり、他の出力ニューロンに比べて有意に発火度が大きい。この場合、解析部２１０は、当該ＭＣＵ１００におけるエラー種別ｅｍ−１のエラーの発生を予測する。つまり、解析部２１０は、ＭＣＵ１００から送信されたｎ組の時系列の解析用データと学習済みモデルとを用いて、当該ＭＣＵ１００におけるエラーの発生及びそのエラー種別を予測する。
なお、上記説明では、入力データとして、ｎ組のＣＴ及びＴＭが用いられたが、これらに限らず他のデータが用いられてもよい。例えば、ＴＭの代わりに、上述の増加量ＤRECENT及び増加量ＤMEANが用いられてもよい。また、解析部２１０は、上述した機械学習の解析に加え、図１２及び図１３に示した方法による解析を行なってもよい。
【００７９】
状態通知部２１１は、推測フェーズにおいて学習済みモデルに入力された入力データを提供したＭＣＵ１００に対して、予測結果を通知する。例えば、上述の例によれば、状態通知部２１１は、エラー種別ｅｍ−１のエラーの発生が予測されることをＭＣＵ１００に通知する。
なお、上述した説明では、サーバ２００の解析部２１０が機械学習による解析を行なったが、機械学習による解析の一部又は全部が、例えば、ＭＣＵ１００の解析部１５４により行なわれてもよい。
【００８０】
以上、実施の形態３について説明した。実施の形態３にかかる解析システム１０では、解析部２１０は、エラーが発生した時点の解析用データを含む訓練データを用いて機械学習によりモデルを生成する。したがって、エラーとストレスデータとの関係性を学習したモデルによる、エラーの予測が可能となる。そして、エラー要因を区別して学習を行うので、学習精度が向上する。特に、解析部２１０は、解析用データの集合を１組の訓練データとして機械学習によりモデルを生成する。そして、この集合は、エラーが発生した時点の解析用データを含む集合であって、当該エラーが発生した時点の直近のｎセット（ｎは１以上の整数）の解析用データの集合である。したがって、例えば、ｎが２以上である場合には、エラーの発生に至るまでのｎ−１個の解析用データも訓練データとして利用される。このため、ストレスデータの時系列的な推移とエラーとの関係性を学習したモデルによる、エラーの予測が可能となる。また、実施の形態３にかかる解析システム１０では、学習済みモデルを用いた予測が可能である。したがって、ＭＣＵ１００が機能不全まで至る危険性を予め回避することができる。また、エラー情報は、機能安全機構により半導体装置の故障に至らないエラーの情報を含むので、故障として発現するエラーについての解析用データだけを使用する場合に比べ、より多くの解析用データで学習できる。すなわち、学習の精度が向上する。
【００８１】
＜実施の形態４＞
次に、実施の形態４について説明する。実施の形態２では、エラーが発生した時点のエラー情報（エラー記録情報）とストレスデータ（ストレス累積値及び累積動作時間）とを関連づけて保存する構成を示した。本実施の形態では、所定期間のカウント値をｐ乗した値をストレス値とし、これの累積値をストレス累積値とする構成において、ストレス累積値及び累積動作時間だけでなく、エラーが発生した時点の前記所定期間のカウント値も一時的に保存する。なお、前記構成は、例えば、非特許文献１に示されており、実施の形態４では、この非特許文献１に記載のAcc_Cnt_T2, Acc_Cnt_TMだけでなく直近のCnt1[i]も一時的に保存することに対応する。
【００８２】
図２０は、実施の形態４にかかるストレスモニタ１０５の構成の一例を示すブロック図である。また、図２１は、実施の形態４にかかるストレスモニタ１０５の各構成要素の動作波形を示すグラフである。以下、図２０及び図２１を参照しつつ、実施の形態４について説明する。ただし、実施の形態２と同様な構成及び動作については説明を省略し、異なる点を説明する。なお、以下に述べる実施の形態４における特徴を他の実施の形態と組み合わせて新たな実施の形態とすることも可能である。
【００８３】
図２０に示すように、本実施の形態にかかるストレスモニタ１０５は、ＶＴリングオシレータ１８０と、カウンタ回路１８１と、ｐ乗値計算回路１８２と、ｐ乗値累積回路１８３と、累乗カウント制御回路１８４と、累積カウント時間保持回路１８５とを有する。このような構成により、ストレスモニタ１０５は、所定のモニタ周期Ｔｍ（例えば、１秒）で、ストレスデータのカウントを実施する。
【００８４】
ＶＴリングオシレータ１８０は、ＭＣＵ１００の電源電圧Ｖ及びＭＣＵ１００の温度Ｔの両方に基づいて大きく変化する摩耗故障因子のストレス強度に相関して、その発振周波数が大きく変化するリングオシレータである。すなわち、ＶＴリングオシレータ１８０は、所定の温度依存性及び所定の電圧依存性を有するリングオシレータである。また、ＶＴリングオシレータ１８０は、発振周波数のｐ乗が摩耗故障因子の寿命の逆数に比例するような周波数特性を有する。このため、ＶＴリングオシレータ１８０の発振数のｐ乗を算出して、これをストレスの指標とすることで、容易にＭＣＵ１００の当該摩耗故障因子に起因した寿命を評価することができる。なお、ＶＴリングオシレータ１８０のようなオシレータは、前記論文において、VT-sensitive ROとして示されている。
【００８５】
カウンタ回路１８１は、モニタ周期毎に、所定の計測期間のＶＴリングオシレータ１８０の発振数を計数する回路である。つまり、ＶＴリングオシレータ１８０の発振出力Ｆｏｕｔはカウンタ回路１８１でカウントされる。このようにカウンタ回路１８１は、発振数のカウントについて、間欠動作を行なう。
【００８６】
ｐ乗値計算回路１８２は、カウンタ回路１８１のカウント値であるＣｎｔＶＴをｐ乗した値であるｐ乗値を算出する回路である。つまり、ｐ乗値計算回路１８２は、所定の計測期間のＶＴリングオシレータ１８０の発振数をｐ乗する。なお、ｐは自然数であり、ｐの値は摩耗故障因子に応じて予め設定されている。具体的には、ｐの値は例えば、１から４のいずれかである。
【００８７】
ｐ乗値累積回路１８３は、ｐ乗値計算回路１８２により計算されたｐ乗値の累積値を計算する回路である。この累積値である累積ストレスカウントＡｃｃ＿Ｃｎｔ＿ＶＴが、ストレス累積値に相当する。
【００８８】
累積カウント時間保持回路１８５は、モニタ周期Ｔｍの繰り返し回数をカウントし、そのカウント値を保持する回路である。このカウント値である累積カウント時間Ａｃｃ＿Ｃｎｔ＿ＴＭが、累積動作時間に相当する。
【００８９】
累乗カウント制御回路１８４は、ストレスモニタ１０５におけるストレスデータのカウントを制御する回路である。累乗カウント制御回路１８４は、モニタ周期Ｔｍ毎に、ｐ乗値計算回路１８２で計算されたｐ乗値をｐ乗値累積回路１８３が保持する累積値に加算するよう制御するとともに、カウンタ回路１８１のカウント値をリセットする。また、累乗カウント制御回路１８４は、累積カウント時間保持回路１８５が、モニタ周期Ｔｍ毎にカウント値をインクリメントするよう制御する。
【００９０】
図２１に示す動作波形を参照しつつ、ストレスモニタ１０５の動作について説明する。カウンタ回路１８１がカウントアップすると、ｐ乗値計算回路１８２で計算されたカウンタ回路１８１のカウント値のｐ乗値が、累乗カウント制御回路１８４の制御により定期的にｐ乗値累積回路が保持する累積ストレスカウントＡｃｃ＿Ｃｎｔ＿ＶＴに加算される。その時、累積カウント時間Ａｃｃ＿Ｃｎｔ＿ＴＭはＮ−１からＮへと、１だけインクリメントされる。カウンタ回路１８１の値は次のカウントアップが開始されるまで保持される。次の間欠動作では、累乗カウント制御回路１８４がカウンタ回路１８１をリセットし、カウンタ回路１８１は、再び所定の計測期間、ＶＴリングオシレータ１８０の発振回数をカウントする。そして所定の計測期間後、カウンタ回路１８１のカウント値のｐ乗値が再びｐ乗値累積回路１８３が保持する累積ストレスカウントＡｃｃ＿Ｃｎｔ＿ＶＴに加算される。この時、累積カウント時間Ａｃｃ＿Ｃｎｔ＿ＴＭはＮからＮ＋１へと、１だけインクリメントされる。ＭＣＵ１００の動作中、ストレスモニタ１０５では、このような動作が繰り返される。
【００９１】
ここで、累積カウント時間Ａｃｃ＿Ｃｎｔ＿ＴＭがＮ＋２となった後、ＥＣＭ１０６にエラーの通知があったとする。この場合、本実施の形態では、累積ストレスカウントＡｃｃ＿Ｃｎｔ＿ＶＴ及び累積カウント時間Ａｃｃ＿Ｃｎｔ＿ＴＭだけでなく、エラーが発生した時点のカウンタ回路１８１のカウント値ＣｎｔＶＴも、当該エラーに関連づけて不揮発性メモリ１０２に保存される。なお、エラーが発生した時点のカウンタ回路１８１のカウント値ＣｎｔＶＴとは、カウンタ回路１８１による所定の計測期間のカウント動作の終了後のカウント値であって、エラー発生直後（ＭＣＵ１００がエラーの通知を受信した直後）のカウント値である。したがって、例えば、カウンタ回路１８１がカウント完了後のカウント値を保持している期間ではなく、カウンタ回路１８１がカウントアップ中にエラーが発生した場合、カウンタ回路１８１のカウントアップ及びｐ乗値の加算が完了した後に、エラー情報、累積ストレスカウントＡｃｃ＿Ｃｎｔ＿ＶＴ、累積カウント時間Ａｃｃ＿Ｃｎｔ＿ＴＭ、及びカウント値ＣｎｔＶＴが不揮発性メモリ１０２に保存される。なお、これは、ストレスが過小評価されないようにするためである。カウント時間が所定の計測期間に達していない段階でカウント値ＣｎｔＶＴを保存すると、所定の計測期間に達するまで待った場合と比較してカウント値が小さくなってしまうため、このモニタ周期におけるストレスが小さかったと過小評価されてしまう。これを防ぐために上述の動作となっている。
【００９２】
以上、実施の形態４におけるストレスモニタ１０５の構成及び動作について説明した。本実施の形態では、上述の通り、解析用データ保存部１５３は、エラー情報（エラー記録情報）と、エラーが発生した時点のストレス累積値（Ａｃｃ＿Ｃｎｔ＿ＶＴ）、累積動作時間（Ａｃｃ＿Ｃｎｔ＿ＴＭ）、及びカウント値（ＣｎｔＶＴ）とを関連づけたデータを解析用データとして保存する。なお、上記説明では、カウント値ＣｎｔＶＴを保存したが、カウント値ＣｎｔＶＴの代わりに、そのｐ乗値が保存されてもよい。保存されたカウント値（もしくは、そのｐ乗値）は、エラーの発生の直前のストレスに相当している。このため、本実施の形態によれば、カウント値ＣｎｔＶＴを保存することにより、エラーの発生前の極めて直近（たとえば１秒以内）のストレス量を保存することができる。したがって、極めて直近に発生したストレス異常がエラーの原因だった場合、カウント値ＣｎｔＶＴを検証することにより、そのことを、実施の形態２で述べた単位時間あたりのストレスの増加量を用いた検証よりも明確に把握することが可能となる。つまり、故障予測などに向けたより効果的な解析が可能となる。また、エラーの原因が極めて直近の電圧降下だった場合、カウント値ＣｎｔＶＴを検証することにより、そのことを知ることができる。なぜならば、上述したＶＴリングオシレータ１８０の特性により、カウント値ＣｎｔＶＴは、電源電圧が低下すると、その値も低下するからである。
さらに、図２１の電源電圧波形に示す通り、下限異常検出レベルまでは電圧降下が達していない場合でも、カウント値ＣｎｔＶＴから直近の電圧異常を知ることができる。ここで、下限異常検出レベルとは、電圧センサにより電源電圧の異常（電源電圧が正常範囲の下限を下回ったという異常）が検出される電圧レベルである。すなわち、下限異常検出レベルを用いた異常判定では検出されない電源電圧の異常についても、カウント値ＣｎｔＶＴから把握することができる。このため、故障予測などに向けたより効果的な解析が可能となる。
【００９３】
＜実施の形態５＞
次に、実施の形態５について説明する。実施の形態５では、発生したエラーがメモリＥＣＣエラーである場合、ハードエラーであるのか否かについての情報も解析用データとして保存される点で、上述の実施の形態と異なる。以下、図を参照しつつ、実施の形態５について説明する。ただし、実施の形態２と同様な構成及び動作については説明を省略し、異なる点を説明する。なお、以下に述べる実施の形態５における特徴を他の実施の形態と組み合わせて新たな実施の形態とすることも可能である。
【００９４】
本実施の形態における解析用データ保存部１５３は、モジュール１０３で発生したエラーがメモリのデータ誤りについてのエラー（すなわち、メモリＥＣＣエラー）である場合、当該エラーがハードエラーか否かを示す情報と、エラー情報（エラー記録情報）と、エラーが発生した時点のストレスデータと、を関連づけたデータを解析用データとして保存する。具体的には、解析用データ保存部１５３は、ＭＣＵ１００が有する任意のメモリにおいてＥＣＣエラーが発生したら、一旦当該エラーと関連付けてストレスデータを不揮発性メモリ１０２もしくはサーバ２００に保存する処理を実施し、その後、当該エラーがハードエラーであると確定したら、その旨を示す情報を前記ＥＣＣエラーとストレスデータとからなるデータセットに付加する。
【００９５】
図２２は、ＥＣＣエラーがハードエラーであるか否かの判定方法の一例を示すフローチャートである。以下、図２２に示すフローチャートに沿って判定方法を説明する。
【００９６】
ＥＣＣエラーが発生すると、ステップＳ９００（Ｓ９００）において、解析用データ保存部１５３は、今回発生したＥＣＣエラーと同じメモリブロック内で、以前にもＥＣＣエラー発生したか否かを確認する。エラー情報（エラー記録情報）には、ＥＣＣエラーが発生したメモリアドレスが含まれている。このため、解析用データ保存部１５３は、以前に発生したＥＣＣエラーのエラー情報に含まれるメモリアドレスと、今回発生したＥＣＣエラーのエラー情報に含まれるメモリアドレスとを参照し、両者がメモリブロック内であるか否かを確認する。今回発生したＥＣＣエラーと同じメモリブロック内で、以前にＥＣＣエラー発生していない場合（ステップＳ９００でＮｏ）、ステップＳ９０３において、解析用データ保存部１５３は、ＥＣＣエラーがハードエラーであるかは不明であると判定する。
【００９７】
今回発生したＥＣＣエラーと同じメモリブロック内で、以前にもＥＣＣエラー発生している場合（ステップＳ９００でＹｅｓ）、ステップＳ９０１において、解析用データ保存部１５３は、メモリアドレスの比較により、今回発生したＥＣＣエラーの発生箇所と以前発生したＥＣＣエラーの発生箇所が、異なるビット線上のメモリセルであるか否かを確認する。同一ビット線上のメモリセルでＥＣＣエラーが発生している場合（ステップＳ９０１でＮｏ）、当該ビット線に関わるハードエラーの可能性が大きい。このため、この場合、解析用データ保存部１５３は、これらのＥＣＣエラーがハードエラーであると判定する（ステップＳ９０４）。
【００９８】
異なるビット線上のメモリセルでＥＣＣエラーが発生している場合（ステップＳ９０１でＹｅｓ）、ステップＳ９０２において、解析用データ保存部１５３は、メモリアドレスの比較により、今回発生したＥＣＣエラーの発生箇所と以前発生したＥＣＣエラーの発生箇所が、異なるワード線上のメモリセルであるか否かを確認する。同一ワード線上のメモリセルでＥＣＣエラーが発生している場合（ステップＳ９０２でＮｏ）、当該ワード線に関わるハードエラーの可能性が大きい。このため、この場合、解析用データ保存部１５３は、これらのＥＣＣエラーがハードエラーであると判定する（ステップＳ９０４）。同一ワード線上のメモリセルでＥＣＣエラーが発生していない場合（ステップＳ９０２でＹｅｓ）、ステップＳ９０３において、解析用データ保存部１５３は、ＥＣＣエラーがハードエラーであるかは不明であると判定する。
ＥＣＣエラーがハードエラーであると判定すると、解析用データ保存部１５３は、ハードエラーであるとことを示す情報を、解析用データに付加する。すなわち、ハードエラーであるとことを示す情報を、エラー情報及びストレスデータに関連づける。
【００９９】
図２３を参照しつつ、上記動作について具体的に説明する。図２３は、解析用データの保存過程の一例を示す模式図である。
図２３において、保存状態（１）は、ＥＣＣエラーが発生し、当該エラーの発生を示すエラー記録情報とストレスデータが保存された状態を示す。これらデータセットをセット（ｉ）と称すこととする。
保存状態（２）は、保存状態（１）の後、ＥＣＣエラーが発生し、当該エラーの発生を示すエラー記録情報とストレスデータが保存された状態を示す。これらデータセットをセット（ｉｉ）と称すこととする。
保存状態（３）は、保存状態（２）の後、予め定められた保存タイミングが到来し、エラー記録情報とストレスデータが保存された状態を示す。これらデータセットをセット（ｉｉｉ）と称すこととする。
保存状態（４）は、保存状態（３）の後、再び、予め定められた保存タイミングが到来し、エラー記録情報とストレスデータが保存された状態を示す。これらデータセットをセット（ｉｖ）と称すこととする。
保存状態（５）は、保存状態（４）の後、ＥＣＣエラーが発生し、当該エラーの発生を示すエラー記録情報とストレスデータが保存された状態を示す。これらデータセットをセット（ｖ）と称すこととする。
【０１００】
図２３において示した例では、セット（ｖ）のストレスデータが得られた段階で、セット（ｖ）のエラー記録情報で示されるＥＣＣエラーと、セット（ｉ）のエラー記録情報で示されるＥＣＣエラーが、同じワード線上のアドレスで発生したことが判明している。このため、セット（ｖ）のエラー記録情報で示されるＥＣＣエラーが発生した時点で、セット（ｉ）とセット（ｖ）に、ＥＣＣエラーがハードエラーであることを示す情報が関連付けられる。
【０１０１】
なお、セット(ｉｉ)がこの後十分な時間経過（たとえば１か月）を経てもハードエラーと判定されなければ、解析用データ保存部１５３は、セット（ｉｉ）をソフトエラーと判定してもよい。この場合、例えば、解析部２１０は、あるＭＣＵ１００のソフトエラーの発生率が他のＭＣＵ１００に比べて有意に高ければ、放射線以外の当該ＭＣＵ１００固有の要因が無いかを、ストレスデータとの関連から分析してもよい。これより、例えば、ＭＣＵ１００の電源電圧の一時的な低下が起きやすくなっているなどの事象が発見される。
【０１０２】
以上、実施の形態５について説明した。本実施の形態によれば、ＥＣＣエラーをハードエラー起因によるものとソフトエラー起因によるものとに分類することができる。このため、エラー発生の予測などのための解析用データ群に、放射線起因のソフトエラーなどストレスと無関係のノイズ情報が混入するのを回避することができる。このため、より高い精度で、エラー原因の同定やエラー予測といった各種の分析を行うことを可能にすることができる。したがって、メモリエラーの再発を抑えるための対策が容易となる。
【０１０３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１０４】
１    半導体装置
２    モジュール
３    エラー情報取得部
４    ストレス取得部
５    解析用データ保存部
１０    解析システム
１０１    プロセッサ
１０２    メモリ
１０３    モジュール
１０４    エラー検出部
１０５    ストレスモニタ
１５０    エラー情報取得部
１５１    ストレス取得部
１５２    累積動作時間取得部
１５３    解析用データ保存部
１５４    解析部
１８０    リングオシレータ
１８１    カウンタ回路
１８２    乗値計算回路
１８３    乗値累積回路
１８４    累乗カウント制御回路
１８５    累積カウント時間保持回路
２００    サーバ
２０１    ネットワークインタフェース
２０２    ストレージ
２０３    メモリ
２０４    プロセッサ
２１０    解析部
２１１    状態通知部
【図１】
2020042398.tif 000003
【図２】
2020042398.tif 000004
【図３】
2020042398.tif 000005
【図４】
2020042398.tif 000006
【図５】
2020042398.tif 000007
【図６】
2020042398.tif 000008
【図７】
2020042398.tif 000009
【図８】
2020042398.tif 000010
【図９】
2020042398.tif 000011
【図１０】
2020042398.tif 000012
【図１１】
2020042398.tif 000013
【図１２】
2020042398.tif 000014
【図１３】
2020042398.tif 000015
【図１４】
2020042398.tif 000016
【図１５】
2020042398.tif 000017
【図１６】
2020042398.tif 000018
【図１７】
2020042398.tif 000019
【図１８】
2020042398.tif 000020
【図１９】
2020042398.tif 000021
【図２０】
2020042398.tif 000022
【図２１】
2020042398.tif 000023
【図２２】
2020042398.tif 000024
【図２３】
2020042398.tif 000025