(57)【要約】【課題】優先度の高いモジュールと通信バスとの接続状態を高頻度でチェックすることにより、優先度の高いモジュールの誤動作を速やかに検出することが可能な半導体装置を提供すること。【解決手段】一実施の形態によれば、ホストコントローラ１１は、外部に設けられた複数のモジュール１２＿１〜１２＿ｎと通信バスＢ１を介してデータ通信を行うモジュール制御回路１１２と、通信バスＢ１に接続され、チェックリストＬ１の情報に基づいてモジュール１２＿１〜１２＿ｎから選択されたモジュール１２＿１，１２＿４，１２＿７，１２＿８からの応答の有無をチェックする接続状態チェック回路１１３と、モジュール制御回路１１２と接続状態チェック回路１１３とを選択的に動作させる制御回路１１１と、を備える。【選択図】図１
2017004254.tif 000002
【特許請求の範囲】
【請求項１】
外部に設けられた複数のモジュールとバスを介してデータ通信を行う通信回路と、
前記バスに接続され、第１チェックリストの情報に基づいて前記複数のモジュールから選択された一又は複数の第１モジュールからの応答内容をチェックするチェック回路と、
前記通信回路と前記チェック回路とを選択的に動作させる制御回路と、
を備えた、半導体装置。
【請求項２】
前記制御回路は、制御周期毎に、前記チェック回路を動作させた後、前記通信回路を動作させ、
前記チェック回路は、前記制御周期毎に、前記一又は複数の第１モジュールのうち順番に選択される所定数の第１モジュールからの応答内容をチェックする、
請求項１に記載の半導体装置。
【請求項３】
前記第１チェックリストを格納するチェックリスト格納部をさらに備えた請求項１に記載の半導体装置。
【請求項４】
前記制御回路は、前記制御周期毎に、前記チェック回路及び前記通信回路を順番に動作させた後、前記制御周期の満了までに空き時間が有る場合には、再び前記チェック回路を動作させ、
前記チェック回路は、
前記制御周期の開始時に、所定数の前記第１モジュールからの応答内容をチェックし、
さらに前記制御周期満了までの空き時間に、第２チェックリストの情報に基づいて前記複数のモジュールから選択された一又は複数の第２モジュールのうち、前記空き時間に応じた数の第２モジュールからの応答内容をチェックする、
請求項２に記載の半導体装置。
【請求項５】
前記第１及び前記第２チェックリストを格納するチェックリスト格納部をさらに備えた請求項４に記載の半導体装置。
【請求項６】
前記チェック回路は、前記制御周期の開始時に、所定数の前記第１モジュールからの応答内容をチェックするとともに、前記バスに接続されるモジュールを指定する複数のアドレスのうち第３チェックリストの情報に基づいて順番に選択される何れかのアドレスからの応答内容をさらにチェックする、
請求項４に記載の半導体装置。
【請求項７】
前記第１乃至前記第３チェックリストを格納するチェックリスト格納部をさらに備えた請求項６に記載の半導体装置。
【請求項８】
請求項１に記載の半導体装置と、
前記複数のモジュールと、
前記半導体装置と前記複数のモジュールのそれぞれとを接続するバスと、
を備えた半導体システム。
【請求項９】
通信回路を用いて、外部に設けられた複数のモジュールとバスを介してデータ通信を行い、
チェック回路を用いて、前記バスに接続され、第１チェックリストの情報に基づいて前記複数のモジュールから選択された一又は複数の第１モジュールからの応答内容をチェックし、
前記通信回路と前記チェック回路とを選択的に動作させる、
半導体装置の制御方法。
【請求項１０】
制御周期毎に、前記チェック回路を動作させた後、前記通信回路を動作させ、
前記チェック回路の動作では、前記制御周期毎に、前記一又は複数の第１モジュールのうち順番に選択される所定数の第１モジュールからの応答内容をチェックする、
請求項９に記載の半導体装置の制御方法。
【請求項１１】
前記制御周期毎に、前記チェック回路及び前記通信回路を順番に動作させた後、前記制御周期の満了までに空き時間が有る場合には、再び前記チェック回路を動作させ、
前記チェック回路の動作では、
前記制御周期の開始時に、所定数の前記第１モジュールからの応答内容をチェックし、
さらに前記制御周期満了までの空き時間に、第２チェックリストの情報に基づいて前記複数のモジュールから選択された一又は複数の第２モジュールのうち、前記空き時間に応じた数の第２モジュールからの応答内容をチェックする、
請求項１０に記載の半導体装置の制御方法。
【請求項１２】
前記チェック回路の動作では、前記制御周期の開始時に、所定数の前記第１モジュールからの応答内容をチェックするとともに、前記バスに接続されるモジュールを指定する複数のアドレスのうち第３チェックリストの情報に基づいて順番に選択される何れかのアドレスからの応答内容をさらにチェックする、
請求項１１に記載の半導体装置の制御方法。
【請求項１３】
バスに接続された複数のモジュールを検出する処理と、
前記複数のモジュールのうち高い優先度が設定された一又は複数の第１モジュールの情報を含む第１チェックリストを生成する処理と、
をコンピュータに実行させるチェックリスト生成プログラム。
【請求項１４】
前記複数のモジュールのうち低い優先度が設定された一又は複数の第２モジュールの情報を含む第２チェックリストを生成する処理を、さらにコンピュータに実行させる請求項１３に記載のチェックリスト生成プログラム。
【請求項１５】
前記バスの複数のアドレスの情報と、前記複数のモジュールのそれぞれが前記複数のアドレスの何れに接続されているかの情報と、を含む第３チェックリストを生成する処理を、さらにコンピュータに実行させる請求項１４に記載のチェックリスト生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置及びそれを備えた半導体システム、半導体装置の制御方法、並びに、チェックリスト生成プログラムに関し、例えば、優先度の高いモジュールの誤動作を速やかに検出するのに適した半導体装置及びそれを備えた半導体システム、半導体装置の制御方法、並びに、チェックリスト生成プログラムに関する。
【背景技術】
【０００２】
ホストコントローラとモジュールとの間のデータ通信には、通信方式としてＩ２Ｃ（Inter-Integrated Circuit）方式が広く用いられている。Ｉ２Ｃ通信では、ホストコントローラと複数のモジュールとが通信バスを介して接続できるため、信号配線数の低減が可能である。
【０００３】
ここで、システムの振動や信号線の引っ掛かり等により、あるモジュールが通信バスから切断された場合（見かけは切断されていないが接触不良等により電気的に切断された場合を含む）、ホストコントローラはそのモジュールとデータ通信することができなくなってしまう。つまり、そのモジュールは制御不能となってしまう。その結果、システムが誤動作してしまう可能性がある。
【０００４】
このような問題に対する解決策が、特許文献１に開示されている。特許文献１に開示された分散型異常表示装置は、中央処理装置と、複数の入出力ユニットと、中央処理装置と複数の入出力装置とを接続するバスと、異常検出のためのデータを各入出力ユニットの異常検出手段に周期的に送り異常をチェックする巡回チェック手段と、を備える。それにより、分散型異常表示装置は、各入出力ユニットがバスから切断されたことを検出することができるため、システムの誤動作を抑制することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−７４１６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示された構成は、複数の入出力ユニットのそれぞれについて周期的に異常のチェックを行っている。つまり、複数の入出力ユニット（モジュール）のそれぞれについて一つずつ順番にバスとの接続状態のチェックを行っている。
【０００７】
そのため、モータ等のように誤動作に対して速やかな対策が必要なモジュール（以降の説明では、優先度の高いモジュールと称す）と、センサ等のように誤動作に対して速やかな対策が不要なモジュール（以降の説明では、優先度の低いモジュールと称す）と、が混在する場合、優先度の高いモジュールと通信バスとの接続状態のチェックの頻度が低くなってしまう。その結果、優先度の高いモジュールの誤動作を速やかに検出することができなくなるという問題があった。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、半導体装置は、外部に設けられた複数のモジュールとバスを介してデータ通信を行う通信回路と、前記バスに接続され、第１チェックリストの情報に基づいて前記複数のモジュールから選択された一又は複数の第１モジュールからの応答内容をチェックするチェック回路と、前記通信回路と前記チェック回路とを選択的に動作させる制御回路と、を備える。
【０００９】
また、一実施の形態によれば、半導体装置の制御方法は、通信回路を用いて、外部に設けられた複数のモジュールとバスを介してデータ通信を行い、チェック回路を用いて、前記バスに接続され、第１チェックリストの情報に基づいて前記複数のモジュールから選択された一又は複数の第１モジュールからの応答内容をチェックし、前記通信回路と前記チェック回路とを選択的に動作させる。
【００１０】
また、一実施の形態によれば、チェックリスト生成プログラムは、バスに接続された複数のモジュールを検出する処理と、前記複数のモジュールのうち高い優先度が設定された一又は複数の第１モジュールの情報を含む第１チェックリストを生成する処理と、をコンピュータに実行させる。
【発明の効果】
【００１１】
前記一実施の形態によれば、優先度の高いモジュールからの応答の有無を高頻度でチェックすることにより、優先度の高いモジュールの誤動作を速やかに検出することが可能な半導体装置及びそれを備えた半導体システム、半導体装置の制御方法、並びに、チェックリスト生成プログラムを提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかる半導体システムの構成例を示すブロック図である。
【図２】図１に示す半導体システムの第１の適用事例及びそれに用いられるチェックリストの内容を示す図である。
【図３】図２に示すチェックリストを用いた半導体システムの動作を示すタイミングチャートである。
【図４】図１に示す半導体システムの第２の適用事例及びそれに用いられるチェックリストの内容を示す図である。
【図５】図４に示すチェックリストを用いた半導体システムの動作を示すタイミングチャートである。
【図６】図１に示す半導体システムの第３の適用事例及びそれに用いられるチェックリストの内容を示す図である。
【図７】図６に示すチェックリストを用いた半導体システムの動作を示すタイミングチャートである。
【図８】実施の形態１にかかる半導体システムの動作を示すフローチャートである。
【図９】実施の形態１にかかる半導体システムによる巡回チェック動作の詳細を示すフローチャートである。
【図１０】図１に示す半導体システム及びそれに用いられるチェックリストを生成するチェックリスト生成装置を示すブロック図である。
【図１１】チェックリスト生成装置のハードウエア構成の一例を示すブロック図である。
【図１２】図１０に示すチェックリスト生成装置のインターフェース部、及び、チェックリスト生成装置により生成されたチェックリストの内容を示す図である。
【図１３】図１０に示すチェックリスト生成装置の動作を示すフローチャートである。
【図１４】実施の形態３に係る半導体システムの構成例を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しつつ、実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として実施の形態の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略する。
【００１４】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１５】
さらに、以下の実施の形態において、その構成要素（動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１６】
＜実施の形態１＞
図１は、実施の形態１にかかる半導体システム１の構成例を示すブロック図である。本実施の形態にかかる半導体システム１では、ホストコントローラ１１が、チェックリストＬ１の情報に基づいてモジュール１２＿１〜１２＿ｎから選択したモジュールと、通信バスＢ１と、の接続状態を優先的にチェックする。それにより、モータ等のように優先度の高いモジュールを高頻度でチェックすることができるため、これら優先度の高いモジュールの誤動作を速やかに検出することができる。以下、具体的に説明する。
【００１７】
図１に示すように、半導体システム１は、ホストコントローラ（半導体装置）１１と、モジュール１２＿１〜１２＿ｎ（ｎは２以上の整数）と、ホストコントローラ１１とモジュール１２＿１〜１２＿ｎとを接続する通信バスＢ１と、を備える。ホストコントローラ１１とモジュール１２＿１〜１２＿ｎとの間では、通信バスＢ１を介してデータ通信が行われる。
【００１８】
通信バスＢ１は、少なくともクロックの信号線ＳＣＬ及びデータの信号線ＳＤＡにより構成されている。本実施の形態では、ホストコントローラ１１とモジュール１２＿１〜１２＿ｎとのデータ通信方式として、Ｉ２Ｃ方式が採用されている場合を例に説明する。ただし、ホストコントローラ１１とモジュール１２＿１〜１２＿ｎとのデータ通信方式には、Ｉ２Ｃ方式に限られず、一つの通信バスを介して半二重通信が行われる他の通信方式が採用されてもよい。
【００１９】
ホストコントローラ１１は、一つ又は複数のチップからなり、制御回路１１１と、モジュール制御回路（通信回路）１１２と、接続状態チェック回路１１３と、チェックリスト格納部１１４と、を備える。
【００２０】
モジュール制御回路１１２は、通信バスＢ１を介して、モジュール１２＿１〜１２＿ｎとデータ通信を行う回路である。
【００２１】
接続状態チェック回路１１３は、モジュール１２＿１〜１２＿ｎが通信バスＢ１に接続されているか否か（モジュール１２＿１〜１２＿ｎと通信バスＢ１との接続状態）をチェックする回路である。例えば、接続状態チェック回路１１３は、アドレス信号の送信に対する応答の有無により、当該アドレス信号により指定されたモジュールが通信バスＢ１に接続されているか否かを判断する。
【００２２】
ここで、接続状態チェック回路１１３は、チェックリスト格納部１１４に格納されたチェックリストＬ１〜Ｌｍ（ｍは１以上の整数）の情報に基づいてモジュール１２＿１〜１２＿ｎと通信バスＢ１との接続状態のチェックの優先度を決定したうえで、これらの接続状態をチェックする。モジュール１２＿１〜１２＿ｎと通信バスＢ１の接続状態のチェックの詳細については、後述する。
【００２３】
制御回路１１１は、モジュール制御回路１１２と接続状態チェック回路１１３とを選択的に動作させる回路である。ホストコントローラ１１とモジュール１２＿１〜１２＿ｎとでは一つの通信バスＢ１を介して通信が行われる。つまり、制御回路１１１は、モジュール制御回路１１２と接続状態チェック回路１１３とを同時に動作させることができない。そのため、制御回路１１１は、モジュール制御回路１１２と接続状態チェック回路１１３とを排他的に動作させている。
【００２４】
例えば、制御回路１１１は、モジュール制御回路１１２を用いてデータ通信を行っているときには、接続状態チェック回路１１３による接続状態のチェックを停止させ、接続状態チェック回路１１３を用いて接続状態のチェックを行っているときには、モジュール制御回路１１２によるデータ通信を停止させる。
【００２５】
また、制御回路１１１は、例えば、接続状態チェック回路１１３により何れかのモジュールの接続不良を検出した場合に、モジュール制御回路１１２によるその後のデータ通信を停止させる等の所定の処理を行う。
【００２６】
（半導体システム１の第１の適用事例）
続いて、半導体システム１の第１の適用事例について図２を用いて説明する。図２の例では、モータ等のように優先度の高いモジュールと、通信バスＢ１と、の接続状態のみを高頻度でチェックしている。
【００２７】
図２は半導体システム１の第１の適用事例及びそれに用いられるチェックリストの内容を示す図である。なお、図２の例では、チェックリスト格納部１１４にチェックリストＬ１のみが格納されている。
【００２８】
図２に示すように、半導体システム１は例えば車両１０に搭載される。車両１０に搭載された半導体システム１は、モジュール１２＿１〜１２＿１０を備えている。図２の例では、モジュール１２＿１，１２＿４，１２＿７，１２＿８が優先度の高いモジュールとしてのモータ、モジュール１２＿２，１２＿３，１２＿５，１２＿６，１２＿９，１２＿１０が優先度の低いモジュールとしてのセンサである場合について説明する。
【００２９】
チェックリストＬ１には、ａ）アドレスリスト、ｂ）ポインタ、ｃ）チェック数、ｄ）必須フラグ、の情報が少なくとも含まれている。
【００３０】
ａ）アドレスリスト
アドレスリストには、通し番号、アドレス、及び、期待値の情報が含まれる。
【００３１】
ここで、アドレスとは、通信バスＢ１に接続されているか否かのチェックが行われるモジュールを指定するアドレス、を表している。以下、アドレスリストにリスト化されたアドレスを、単にチェック対象のアドレスとも称す。通し番号は、チェック対象のアドレスのチェックの順番を表している。期待値は、チェック対象のアドレスにモジュールが接続されているか否かの期待値を表している。例えば、チェック対象のアドレスにモジュールが接続されていることを期待する場合には１が設定され、チェック対象のアドレスにモジュールが接続されていないことを期待する場合には０が設定される。
【００３２】
図２の例では、アドレスリストに、アドレス“１，４，７，８”が設定されるとともに、それら全てに対して期待値“１”が設定されている。ここで、図２の例では、モジュール１２＿１〜１２＿１０のそれぞれのアドレスを１〜１０番地とする。したがって、図２の例では、アドレス“１，４，７，８”により指定されたモータモジュール１２＿１，１２＿４，１２＿７，１２＿８がチェックの対象となっており、センサモジュール１２＿２，１２＿３，１２＿５，１２＿６，１２＿９，１２＿１０がチェックの対象外となっている。
【００３３】
ｂ）ポインタ
ポインタは、アドレスリストにリスト化された複数のアドレスのうち、どのアドレスまでチェックが行われ、次にどのアドレスからチェックが行われるか、の位置を表している。図２の例では、ポインタの値は省略されている。
【００３４】
ｃ）チェック数
チェック数は、該当アドレスリストに含まれるアドレスをチェックする際、連続してチェックされるアドレスの数を表している。チェック数の分だけ連続してアドレスをチェックした後は、他のアドレスリストを用いた処理が行われたり、モジュール制御処理の状態確認が行われたりする等、次の処理へ進む。
【００３５】
図２の例では、チェック数が“４”に設定されており、アドレスリストにリスト化された４つ全てのアドレス“１，４，７，８”に対して連続してチェックが行われることになる。
【００３６】
ｄ）必須フラグ
必須フラグは、アドレスリストにリスト化されたアドレスの中から選択されたチェック数分のアドレスについて、１制御周期毎にモジュール制御処理よりも優先してチェックを行うか否かを表している。例えば、必須フラグが“１”に設定された場合、モジュール制御処理よりもアドレスのチェックのほうが優先度が高いことを意味するため、制御周期が開始するとモジュール制御処理よりも先にチェック数分のアドレスに対するチェックが行われる。他方、必須フラグが“０”に設定された場合、モジュール制御処理よりもアドレスのチェックのほうが優先度が低いことを意味するため、チェック数分のアドレスに対するチェックは、モジュール制御処理の実行されない空き時間ができた場合にのみ行われる。
【００３７】
図２の例では、必須フラグが“１”に設定されており、チェック数分（４つ）のアドレスに対してのチェックは、制御周期が開始するとモジュール制御処理よりも先に行われることになる。
【００３８】
（タイミングチャート）
図３は、図２に示すチェックリストＬ１を用いた半導体システム１の動作を示すタイミングチャートである。図３に示すように、制御周期Ｔ１は、例えばタイマから一定周期で出力されるパルス信号の立ち上がりの間隔によって規定される。
【００３９】
まず、制御回路１１１は、制御周期Ｔ１の開始とともに接続状態チェック回路１１３を動作させる（時刻ｔ１０）。
【００４０】
接続状態チェック回路１１３は、制御周期Ｔ１の初期（開始時）において、チェックリスト格納部１１４に格納されたチェックリストＬ１〜Ｌｍのうち必須フラグが“１”に設定されたチェックリストを参照して、チェック対象のアドレスからの応答の有無をチェックする（時刻ｔ１０〜ｔ１１）。
【００４１】
図３の例では、チェックリストＬ１の必須フラグが“１”に設定されている。そのため、接続状態チェック回路１１３は、チェックリストＬ１にリスト化されたアドレスからの応答の有無をチェックする（時刻ｔ１０〜ｔ１１）。それにより、チェックリストＬ１にリスト化されたアドレスにより指定されたモジュールと、通信バスＢ１と、の接続状態がチェックされる。
【００４２】
ここで、チェックリストＬ１では、アドレスリストにアドレス“１，４，７，８”がリスト化され、かつ、チェック数が“４”に設定されている。そのため、アドレスリストにリスト化された４つのアドレス“１，４，７，８”により指定されたモジュール１２＿１，１２＿４，１２＿７，１２＿８と、通信バスＢ１と、の接続状態がチェックされる（時刻ｔ１０〜ｔ１１）。
【００４３】
接続状態チェック回路１１３によるチェックが完了すると（時刻ｔ１１）、その旨が制御回路１１１に通知される。それにより、制御回路１１１は、接続状態チェック回路１１３のチェック動作を停止させ、モジュール制御回路１１２を動作させる（時刻ｔ１１）。それにより、ホストコントローラ１１とモジュール１２＿１〜１２＿１０との間でデータ通信が行われる（時刻ｔ１１〜ｔ１２）。なお、モジュール制御回路１１２は、データ通信が完了すると（時刻ｔ１２）、次の制御周期Ｔ１の開始（時刻ｔ１３）まで停止状態となる。
【００４４】
その後、制御回路１１１は、次の制御周期Ｔ１の開始とともに、モジュール制御回路１１２によるデータ通信を停止させ、接続状態チェック回路１１３を動作させる（時刻ｔ１３）。それ以降の制御周期Ｔ１でも同様の動作が繰り返される。
【００４５】
このように、図２の例では、ホストコントローラ１１が、チェックリストＬ１の情報に基づいて選択された優先度の高いモジュールと通信バスＢ１との接続状態を制御周期ごとにチェックする。それにより、ホストコントローラ１１は、モータ等のように誤動作に対して速やかな対策が必要な優先度の高いモジュールを高頻度でチェックすることができるため、これら優先度の高いモジュールの誤動作を速やかに検出することができる。
【００４６】
（半導体システム１の第２の適用事例）
続いて、半導体システム１の第２の適用事例について図４を用いて説明する。図４の例では、優先度の高いモジュールと通信バスＢ１との接続状態を高頻度でチェックしつつ、優先度の低いモジュールと通信バスＢ１との接続状態についてもチェックしている。
【００４７】
図４は半導体システム１の第２の適用事例及びそれに用いられるチェックリストの内容を示す図である。なお、図４の例では、チェックリスト格納部１１４にチェックリストＬ１，Ｌ２が格納されている。
【００４８】
図４に示す半導体システム１に用いられるチェックリストＬ１の内容については、図２に示すチェックリストＬ１の内容と同様であるため、その説明を省略する。以下では、主にチェックリストＬ２の内容について説明する。
【００４９】
チェックリストＬ２の基本構造はチェックリストＬ１と同じである。
図４の例では、アドレスリストに、アドレス“２，３，５，６，９，１０”が設定されるとともに、それらの全てに対して期待値“１”が設定されている。したがって、図４の例では、アドレス“２，３，５，６，９，１０”により指定されたセンサモジュール１２＿２，１２＿３，１２＿５，１２＿６，１２＿９，１２＿１０がチェック対象となっており、モータモジュール１２＿１，１２＿４，１２＿７，１２＿８がチェック対象外となっている。
【００５０】
図４の例では、必須フラグが“０”に設定されており、アドレスに対してのチェックは、モジュール制御処理の実行されない空き時間ができた場合にのみ行われることになる。
【００５１】
また、図４の例では、チェック数が“１”に設定されているため、アドレスリストにリスト化された６つのアドレス“２，３，５，６，９，１０”のうち１つのアドレスに対してチェックが行われることになる。ここで、１つのアドレスに対するチェックが行われる毎にモジュール制御処理の状況が確認され、まだ空き時間が残っている場合に、次の１つのアドレスに対するチェックが行われる。
【００５２】
（タイミングチャート）
図５は、図４に示すチェックリストＬ１，Ｌ２を用いた半導体システム１の動作を示すタイミングチャートである。図５に示すように、制御周期Ｔ１は、例えばタイマから一定周期で出力されるパルス信号の立ち上がりの間隔によって規定される。
【００５３】
まず、制御回路１１１は、制御周期Ｔ１の開始とともに接続状態チェック回路１１３を動作させる（時刻ｔ２０）。
【００５４】
接続状態チェック回路１１３は、制御周期Ｔ１の初期において、チェックリスト格納部１１４に格納されたチェックリストＬ１〜Ｌｍのうち必須フラグが“１”に設定されたチェックリストを参照して、チェック対象のアドレスからの応答の有無をチェックする（時刻ｔ２０〜ｔ２１）。
【００５５】
図５の例では、チェックリストＬ１の必須フラグが“１”に設定されている。そのため、接続状態チェック回路１１３は、チェックリストＬ１にリスト化されたアドレスからの応答の有無をチェックする（時刻ｔ２０〜ｔ２１）。それにより、チェックリストＬ１にリスト化されたアドレスにより指定されたモジュールと、通信バスＢ１と、の接続状態がチェックされる。
【００５６】
ここで、チェックリストＬ１では、アドレスリストにアドレス“１，４，７，８”がリスト化され、かつ、チェック数が“４”に設定されている。そのため、アドレスリストにリスト化された４つのアドレス“１，４，７，８”により指定されたモジュール１２＿１，１２＿４，１２＿７，１２＿８と、通信バスＢ１と、の接続状態がチェックされる（時刻ｔ２０〜ｔ２１）。
【００５７】
接続状態チェック回路１１３によるチェックが完了すると（時刻ｔ２１）、その旨が制御回路１１１に通知される。それにより、制御回路１１１は、接続状態チェック回路１１３のチェック動作を停止させ、モジュール制御回路１１２を動作させる（時刻ｔ２１）。それにより、ホストコントローラ１１とモジュール１２＿１〜１２＿１０との間でデータ通信が行われる（時刻ｔ２１〜ｔ２２）。
【００５８】
ここで、制御周期Ｔ１の終了（満了）前にデータ通信が完了すると（時刻ｔ２２）、その旨が制御回路１１１に通知される。それにより、制御回路１１１は、モジュール制御回路１１２の通信動作を停止させ、接続状態チェック回路１１３を再び動作させる（時刻ｔ２２）。
【００５９】
接続状態チェック回路１１３は、データ通信の完了から制御周期Ｔ１の終了までの空き時間において、チェックリスト格納部１１４に格納されたチェックリストＬ１〜Ｌｍのうち必須フラグが“０”に設定されたチェックリストを参照して、チェック対象のアドレスからの応答の有無をチェックする（時刻ｔ２２〜ｔ２３）。
【００６０】
図５の例では、チェックリストＬ２の必須フラグが“０”に設定されている。そのため、接続状態チェック回路１１３は、チェックリストＬ２にリスト化されたアドレスからの応答の有無をチェックする（時刻ｔ２２〜ｔ２３）。それにより、チェックリストＬ２にリスト化されたアドレスにより指定されたモジュールと、通信バスＢ１と、の接続状態がチェックされる。
【００６１】
ここで、チェックリストＬ２では、アドレスリストにアドレス“２，３，５，６，９，１０”がリスト化され、かつ、チェック数が“１”に設定されている。そのため、アドレスリストにリスト化された６つのアドレス“２，３，５，６，９，１０”のうち最初に選択されたアドレス“２”により指定されたモジュール１２＿２と、通信バスＢ１と、の接続状態がチェックされる（時刻ｔ２２〜ｔ２２ａ）。
【００６２】
接続状態チェック回路１１３によるアドレス“２”に対するチェックが完了しても、制御周期Ｔ１の空き時間が残っている場合、接続状態チェック回路１１３は、残りの空き時間において、次のアドレス“３”により指定されたモジュール１２＿３と、通信バスＢ１と、の接続状態をチェックする（時刻ｔ２２ａ〜ｔ２３）。
【００６３】
接続状態チェック回路１１３によるチェックが完了し、制御周期Ｔ１の空き時間が終了すると、制御回路１１１は、次の制御周期Ｔ１の開始とともに引き続き接続状態チェック回路１１３を動作させる（時刻ｔ２３）。
【００６４】
接続状態チェック回路１１３は、チェックリストＬ１にリスト化された４つのアドレス“１，４，７，８”により指定されたモジュール１２＿１，１２＿４，１２＿７，１２＿８と、通信バスＢ１と、の接続状態をチェックする（時刻ｔ２３〜ｔ２４）。
【００６５】
接続状態チェック回路１１３によるチェックが完了すると（時刻ｔ２４）、その旨が制御回路１１１に通知される。それにより、制御回路１１１は、接続状態チェック回路１１３のチェック動作を停止させ、モジュール制御回路１１２を動作させる（時刻ｔ２４）。それにより、ホストコントローラ１１とモジュール１２＿１〜１２＿１０との間でデータ通信が行われる（時刻ｔ２４〜ｔ２５）。
【００６６】
制御周期Ｔ１の終了前にデータ通信が完了すると（時刻ｔ２５）、その旨が制御回路１１１に通知される。それにより、制御回路１１１は、モジュール制御回路１１２の通信動作を停止させ、接続状態チェック回路１１３を再び動作させる（時刻ｔ２５）。
【００６７】
接続状態チェック回路１１３は、データ通信の完了から制御周期Ｔ１の終了までの空き時間において、チェックリストＬ２にリスト化された６つのアドレス“２，３，５，６，９，１０”のうち次に選択されたアドレス“５”により指定されたモジュール１２＿５と、通信バスＢ１と、の接続状態をチェックする（時刻ｔ２５〜ｔ２５ａ）。
【００６８】
接続状態チェック回路１１３によるアドレス“５”に対するチェックが完了しても、制御周期Ｔ１の空き時間が残っている場合、接続状態チェック回路１１３は、残りの空き時間において、次のアドレス“６”により指定されたモジュール１２＿６と、通信バスＢ１と、の接続状態をチェックする（時刻ｔ２５ａ〜ｔ２５ｂ）。
【００６９】
接続状態チェック回路１１３によるアドレス“６”に対するチェックが完了しても、制御周期Ｔ１の空き時間が残っている場合、接続状態チェック回路１１３は、残りの空き時間において、次のアドレス“９”により指定されたモジュール１２＿９と、通信バスＢ１と、の接続状態をチェックする（時刻ｔ２５ｂ〜ｔ２５ｃ）。
【００７０】
接続状態チェック回路１１３によるアドレス“９”に対するチェックが完了しても、制御周期Ｔ１の空き時間が残っている場合、接続状態チェック回路１１３は、残りの空き時間において、次のアドレス“１０”により指定されたモジュール１２＿１０と、通信バスＢ１と、の接続状態をチェックする（時刻ｔ２５ｃ〜ｔ２６）。
【００７１】
接続状態チェック回路１１３によるアドレス“１０”に対するチェックが完了し、制御周期Ｔ１の空き時間が終了すると、制御回路１１１は、次の制御周期Ｔ１の開始とともに引き続き接続状態チェック回路１１３を動作させる（時刻ｔ２６）。それ以降の制御周期Ｔ１でも同様の動作が繰り返される。
【００７２】
このように、図４の例では、ホストコントローラ１１が、チェックリストＬ１の情報に基づいて選択された優先度の高いモジュールと通信バスＢ１との接続状態を制御周期ごとにチェックするだけでなく、チェックリストＬ２の情報に基づいて選択された優先度の低いモジュールと通信バスＢ１との接続状態を空き時間にチェックする。それにより、ホストコントローラ１１は、優先度の高いモジュールを高頻度でチェックしつつ、優先度の低いモジュールについてもチェックすることができる。
【００７３】
（半導体システム１の第３の適用事例）
続いて、半導体システム１の第３の適用事例について図６を用いて説明する。図６の例では、優先度の高いモジュールと通信バスＢ１との接続状態を高頻度でチェックしつつ、優先度の低いモジュールと通信バスＢ１との接続状態についてもチェックし、さらに、新たなモジュールが通信バスＢ１に接続されたか否かについてもチェックしている。
【００７４】
図６は半導体システム１の第３の適用事例及びそれに用いられるチェックリストの内容を示す図である。なお、図６の例では、チェックリスト格納部１１４にチェックリストＬ１〜Ｌ３が格納されている。
【００７５】
図６に示す半導体システム１に用いられるチェックリストＬ１，Ｌ２の内容については、図４に示すチェックリストＬ１，Ｌ２の内容と同様であるため、その説明を省略する。以下では、主にチェックリストＬ３の内容について説明する。
【００７６】
チェックリストＬ３の基本構造はチェックリストＬ１，Ｌ２と同じである。
図６の例では、アドレスリストに、Ｉ２Ｃのバス規格で取り得る全てのアドレス“１〜１２８”が設定されている。また、モジュール１２＿１〜１２＿１０が既に接続されているアドレス“１〜１０”に対して期待値“１”が設定され、それ以外のアドレス“１１〜１２８”に対して期待値“０”が設定されている。つまり、チェックリストＬ３では、アドレス“１〜１０”に既にモジュールが接続されることが期待され、アドレス“１１〜１２８”にモジュールが接続されていないことが期待されている。
【００７７】
また、図６の例では、チェック数が“１”に設定されており、アドレスリストにリスト化された１２８個のアドレス“１〜１２８”から選択される１つのアドレスに対してチェックが行われることになる。なお、ポインタの値は省略されている。
【００７８】
さらに、図６の例では、必須フラグが“１”に設定されており、チェック数分（１つ）のアドレスに対するチェックは、制御周期が開始するとモジュール制御処理よりも先に行われることになる。
【００７９】
なお、モジュールの追加を検出する場合は、取り得る全てのアドレスの数に応じて、チェック数及び必須フラグの値を注意深く設定する必要がある。
【００８０】
例えば、必須フラグが“０”に設定された場合、上述の空き時間にアドレスのチェックが行われることになる。そのため、モジュール制御処理が長い場合には、空き時間の無い状態が続いてしまい、いつまでもモジュールの追加を検出できなくなってしまう。この場合、ユーザは、追加されたモジュールが壊れているために検出できないのか、単に空き時間が無いため検出できないのか、を判断することができない。
【００８１】
また、必須フラグが“１”に設定された場合でも、アドレスのチェック数が“１００”のような大きな値に設定されると、１制御周期のほとんどをアドレスチェックの時間が占めてしまい、本来の目的であるモジュール制御処理を実行することができなくなってしまう。
【００８２】
さらに、必須フラグが“１”に設定され、かつ、アドレスのチェック数が“１”のような小さな値に設定された場合でも、取り得る全てのアドレスの数が例えば１００００であると、全てのアドレスについてチェックを行うために１００００回分の制御周期の時間が必要になる。この場合、必須フラグが“０”に設定された場合と同様にいつまでもモジュールの追加を検出できなくなってしまう。
【００８３】
ここで、本実施の形態では、バス規格がＩ２Ｃである場合を例に説明しているため、取り得る全てのアドレスの数は１２７程度である。そのため、必須フラグを“１”、アドレスのチェック数を“１”にそれぞれ設定することにより、実用的な時間の範囲内で１２７個の全てのアドレスについてのチェックをすることができる。例えば、制御周期１０ｍｓであれば約１ｓで１２７個の全てのアドレスのチェックをすることができる。これはＵＳＢメモリ等がパソコンに挿入されてから認識されるまでの時間と同等程度であるため、実用的な時間の範囲内であると言える。このように、チェック数及び必須フラグの値は、取り得る全てのアドレスの数に応じて適切な値を設定する必要がある。
【００８４】
（タイミングチャート）
図７は、図６に示すチェックリストＬ１〜Ｌ３を用いた半導体システム１の動作を示すタイミングチャートである。図７に示すように、制御周期Ｔ１は、例えばタイマから一定周期で出力されるパルス信号の立ち上がりの間隔によって規定される。
【００８５】
まず、制御回路１１１は、制御周期Ｔ１の開始とともに接続状態チェック回路１１３を動作させる（時刻ｔ３０）。
【００８６】
接続状態チェック回路１１３は、制御周期Ｔ１の初期において、チェックリスト格納部１１４に格納されたチェックリストＬ１〜Ｌｍのうち必須フラグが“１”に設定されたチェックリストを参照して、チェック対象のアドレスからの応答の有無をチェックする（時刻ｔ３０〜ｔ３２）。
【００８７】
図７の例では、チェックリストＬ１，Ｌ３の必須フラグが“１”に設定されている。そのため、接続状態チェック回路１１３は、チェックリストＬ１，Ｌ３にリスト化されたアドレスからの応答の有無をチェックする（時刻ｔ３０〜ｔ３２）。それにより、チェックリストＬ１，Ｌ３にリスト化されたアドレスにより指定されたモジュールと、通信バスＢ１と、の接続状態がチェックされる。
【００８８】
ここで、チェックリストＬ１では、アドレスリストにアドレス“１，４，７，８”がリスト化され、かつ、チェック数が“４”に設定されている。そのため、アドレスリストにリスト化された４つのアドレス“１，４，７，８”により指定されたモジュール１２＿１，１２＿４，１２＿７，１２＿８と、通信バスＢ１と、の接続状態がチェックされる（時刻ｔ３０〜ｔ３１）。
【００８９】
また、チェックリストＬ３では、アドレスリストにアドレス“１〜１２８”がリスト化され、かつ、チェック数が“１”に設定されている。そのため、アドレスリストにリスト化された１２８個のアドレス“１〜１２８”のうち最初に選択されたアドレス“１”に新たなモジュールが追加されたか否かがチェックされる（時刻ｔ３１〜ｔ３２）。なお、図７の例ではアドレス“１”には既にモジュール１２＿１が接続されているため、新たなモジュールが追加されたことは検出されない。
【００９０】
接続状態チェック回路１１３によるチェックが完了すると（時刻ｔ３２）、その旨が制御回路１１１に通知される。それにより、制御回路１１１は、接続状態チェック回路１１３のチェック動作を停止させ、モジュール制御回路１１２を動作させる（時刻ｔ３２）。それにより、ホストコントローラ１１とモジュール１２＿１〜１２＿１０との間でデータ通信が行われる（時刻ｔ３２〜ｔ３３）。
【００９１】
ここで、制御周期Ｔ１の終了前にデータ通信が完了すると（時刻ｔ３３）、その旨が制御回路１１１に通知される。それにより、制御回路１１１は、モジュール制御回路１１２の通信動作を停止させ、接続状態チェック回路１１３を再び動作させる（時刻ｔ３３）。
【００９２】
接続状態チェック回路１１３は、データ通信の完了から制御周期Ｔ１の終了までの空き時間において、チェックリスト格納部１１４に格納されたチェックリストＬ１〜Ｌｍのうち必須フラグが“０”に設定されたチェックリストを参照して、チェック対象のアドレスからの応答の有無をチェックする（時刻ｔ３３〜ｔ３４）。
【００９３】
図７の例では、チェックリストＬ２の必須フラグが“０”に設定されている。そのため、接続状態チェック回路１１３は、チェックリストＬ２にリスト化されたアドレスからの応答の有無をチェックする（時刻ｔ３３〜ｔ３４）。それにより、チェックリストＬ２にリスト化されたアドレスにより指定されたモジュールと、通信バスＢ１と、の接続状態がチェックされる。
【００９４】
ここで、チェックリストＬ２では、アドレスリストにアドレス“２，３，５，６，９，１０”がリスト化され、かつ、チェック数が“１”に設定されている。そのため、アドレスリストにリスト化された６つのアドレス“２，３，５，６，９，１０”のうち最初に選択されたアドレス“２”により指定されたモジュール１２＿２と、通信バスＢ１と、の接続状態がチェックされる（時刻ｔ３３〜ｔ３４）。
【００９５】
接続状態チェック回路１１３によるチェックが完了し、制御周期Ｔ１の空き時間が終了すると、制御回路１１１は、次の制御周期Ｔ１の開始とともに引き続き接続状態チェック回路１１３を動作させる（時刻ｔ３４）。
【００９６】
接続状態チェック回路１１３は、チェックリストＬ１にリスト化された４つのアドレス“１，４，７，８”により指定されたモジュール１２＿１，１２＿４，１２＿７，１２＿８と、通信バスＢ１と、の接続状態をチェックする（時刻ｔ３４〜ｔ３５）。
【００９７】
また、接続状態チェック回路１１３は、チェックリストＬ３にリスト化された１２８個のアドレス“１〜１２８”のうち次に選択されたアドレス“２”に新たにモジュールが追加されたか否かをチェックする（時刻ｔ３５〜ｔ３６）。なお、図７の例ではアドレス“２”には既にモジュール１２＿２が接続されているため、新たなモジュールが追加されたことは検出されない。
【００９８】
接続状態チェック回路１１３によるチェックが完了すると（時刻ｔ３６）、その旨が制御回路１１１に通知される。それにより、制御回路１１１は、接続状態チェック回路１１３のチェック動作を停止させ、モジュール制御回路１１２を動作させる（時刻ｔ３６）。それにより、ホストコントローラ１１とモジュール１２＿１〜１２＿１０との間でデータ通信が行われる（時刻ｔ３６〜ｔ３７）。
【００９９】
ここで、制御周期Ｔ１の終了前にデータ通信が完了すると（時刻ｔ３７）、その旨が制御回路１１１に通知される。それにより、制御回路１１１は、モジュール制御回路１１２の通信動作を停止させ、接続状態チェック回路１１３を再び動作させる（時刻ｔ３７）。
【０１００】
制御周期Ｔ１の空き時間におけるチェックリストＬ２を用いた接続状態チェック回路１１３のチェック動作については、上述の通りであるため、その説明を省略する。それ以降の制御周期Ｔ１でも同様の動作が繰り返される。
【０１０１】
このように、図６の例では、ホストコントローラ１１が、優先度の高いモジュールを高頻度でチェックしつつ、優先度の低いモジュールについてもチェックし、さらに、新たなモジュールが追加されたか否かをチェックすることができる。
【０１０２】
続いて、半導体システム１の動作及び巡回チェック動作の詳細を、フローチャートを用いて説明する。
【０１０３】
（半導体システム１の動作を示すフローチャート）
図８は、半導体システム１の動作を示すフローチャートである。
【０１０４】
まず、チェックリストＬ１〜Ｌｍのポインタの値が何れも“１”に初期化される（ステップＳ１０１）。
【０１０５】
その後、制御周期が開始すると（ステップＳ１０２のＹＥＳ）、ループ処理Ａに移る。なお、ループ処理Ａは、制御周期の初期における接続状態チェック回路１１３によるチェック処理に相当する。
【０１０６】
ループ処理Ａでは、接続状態チェック回路１１３によりチェックリストＬ１〜Ｌｍの読み込みが行われる（ステップＳ１０３）。そして、チェックリストＬ１〜Ｌｍのうち必須フラグが“１”に設定されたチェックリストの情報を基に、チェック数分のアドレスに対するチェックが行われる（ステップＳ１０４のＹＥＳ→ステップＳ１０５）。ここで、ループ処理Ｘによりチェック数分だけポインタの値は増加する。つまり、ポインタは次回のチェック対象のアドレスを示す値に更新される（ステップＳ１０６）。
【０１０７】
ループ処理Ａが完了すると、例えばモジュール制御回路１１２によるデータ通信（モジュール制御処理）が行われる。
【０１０８】
その後、半導体システム１の動作が完了していれば（ステップＳ１１１のＹＥＳ）、半導体システム１の動作が停止する（ステップＳ１１２）。他方、半導体システム１の動作が完了していなければ（ステップＳ１１１のＮＯ）、制御周期の開始時間であるか否かの判定に戻る（ステップＳ１０２）。
【０１０９】
例えば、データ通信の完了から制御周期の終了までに空き時間がない場合、次の制御周期の開始時間であるため（ステップＳ１０２のＹＥＳ）、ループ処理Ａに移る。
【０１１０】
他方、空き時間がある場合、次の制御周期の開始時間ではないため（ステップＳ１０２のＮＯ）、ループ処理Ｂに移る。なお、ループ処理Ｂは、データ通信の完了から制御周期の終了までの空き時間における接続状態チェック回路１１３によるチェック処理に相当する。
【０１１１】
ループ処理Ｂでは、接続状態チェック回路１１３によりチェックリストＬ１〜Ｌｍの読み込みが行われる（ステップＳ１０７）。そして、チェックリストＬ１〜Ｌｍのうち必須フラグが“０”に設定されたチェックリストの情報を基に、チェック数分のアドレスに対するチェックが行われる（ステップＳ１０８のＮＯ→ステップＳ１０９）。ここで、ループ処理Ｙによりチェック数分だけポインタの値は増加する。つまり、ポインタは次回のチェック体調のアドレスを示す値に更新される（ステップＳ１１０）。
【０１１２】
ループ処理Ｂの完了後、半導体システム１の動作が完了していれば（ステップＳ１１１のＹＥＳ）、半導体システム１の動作が停止する（ステップＳ１１２）。他方、半導体システム１の動作が完了していなければ（ステップＳ１１１のＮＯ）、制御周期の開始時間であるか否かの判定に戻る（ステップＳ１０２）。
【０１１３】
例えば、空き時間が残っていなければ、次の制御周期の開始時間であるため（ステップＳ１０２のＹＥＳ）、ループ処理Ａに移る。他方、空き時間が残っていれば、次の制御周期の開始時間でないため（ステップＳ１０２のＮＯ）、ループ処理Ｂに移る。それ以降の制御周期でも同様の動作が繰り返される。
【０１１４】
（半導体システム１による巡回チェック動作の詳細を示すフローチャート）
図９は、半導体システム１による巡回チェック動作の詳細を示すフローチャートである。
【０１１５】
図９に示すように、ポインタにより指定されたアドレスからの応答の有無がチェックされる（ステップＳ２０２）。例えば、ポインタにより指定されたアドレスから応答が無い場合、値“０”が返信され、ポインタにより指定されたアドレスから応答が有る場合、値“１”が返信される。
【０１１６】
応答結果と期待値とが一致する場合（ステップＳ２０３のＹＥＳ）、ポインタにより指定されたアドレスにおけるモジュールの接続状態に変化はないため、当該アドレスに対するチェックは終了する。その後、例えば、次のアドレスのチェックに移る。
【０１１７】
他方、応答結果と期待値とが一致しない場合（ステップＳ２０３のＮＯ）、応答結果に応じた情報が出力される。例えば、応答結果が“０”を示す場合（即ち、ポインタにより指定されたアドレスから応答が無い場合）（ステップＳ２０４のＮＯ）、通信バスＢ１に接続されているはずのモジュールが切断された旨の情報が出力される（ステップＳ２０５）。他方、応答結果が“１”を示す場合（即ち、ポインタにより指定されたアドレスから応答が有る場合）（ステップＳ２０４のＹＥＳ）、通信バスＢ１に新たなモジュールが接続された旨の情報が出力される（ステップＳ２０６）。
【０１１８】
応答結果に応じた情報が出力されると、当該アドレスに対するチェックは終了する。その後、例えば、次のアドレスのチェックに移る。
【０１１９】
本実施の形態では、接続状態チェック回路１１３が、チェック対象のアドレスからの応答の有無により、当該アドレスにより指定されたモジュールの通信バスＢ１への接続状態をチェックする場合を例に説明したが、これに限られない。例えば、接続状態チェック回路１１３は、チェック対象のアドレスからの応答内容（応答の有無、応答レベル、応答速度等）により、当該アドレスにより指定されたモジュールの温度や故障等をチェックする構成とすることもできる。
【０１２０】
また、本実施の形態では、最大で３つのチェックリストＬ１〜Ｌ３が用いられた場合について説明したが、これに限られず、任意の数のチェックリストＬ１〜Ｌｍが用いられてよい。また、各チェックリストＬ１〜Ｌｍの設定内容については、趣旨を逸脱しない範囲で適宜変更可能である。
【０１２１】
＜実施の形態２＞
本実施の形態では、チェックリストＬ１〜Ｌｍを生成する方法について説明する。
図１０は、半導体システム１及びそれに用いられるチェックリストＬ１〜Ｌｍを生成するチェックリスト生成装置１３を示すブロック図である。
【０１２２】
図１０に示すように、チェックリスト生成装置１３は、例えば、半導体システム１を構成するホストコントローラ１１に設けられた制御回路１１１とデータの送受信を行う。
【０１２３】
具体的には、チェックリスト生成装置１３は、通信バスＢ１に既に接続されているモジュール１２＿１〜１２＿ｎのアドレス情報を制御回路１１１から取得する。そして、チェックリスト生成装置１３は、制御回路１１１から取得したアドレス（以下、検出アドレスと称す）の情報及びユーザによって入力された情報に基づいてチェックリストＬ１〜Ｌｍを生成し、制御回路１１１に対して出力する。そして、チェックリストＬ１〜Ｌｍはチェックリスト格納部１１４に格納される。
【０１２４】
（チェックリスト生成装置１３のハードウエア構成）
なお、チェックリスト生成装置１３は、汎用的なコンピュータシステムにより実現可能である。以下、図１１を用いて簡単に説明する。
【０１２５】
図１１は、チェックリスト生成装置１３のハードウエア構成の一例を示すブロック図である。コンピュータ１００は、例えば、制御装置であるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３と、外部とのインターフェースであるインターフェース部１０４と、不揮発性記憶装置の一例であるＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０５と、を備える。さらに、コンピュータ１００は、その他図示しない構成として、キーボードやマウス等の入力装置やディスプレイ等の表示装置を備えていても良い。
【０１２６】
ＨＤＤ１０５には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）（不図示）と、チェックリスト生成プログラム１０６と、が記憶されている。チェックリスト生成プログラム１０６は、本実施の形態に係るチェックリスト生成処理が実装されたコンピュータプログラムである。
【０１２７】
ＣＰＵ１０１は、コンピュータ１００における各種処理、ＲＡＭ１０２，ＲＯＭ１０３，ＩＦ１０４及びＨＤＤ１０５へのアクセス等を制御する。コンピュータ１００は、ＣＰＵ１０１がＨＤＤ１０５に記憶されたＯＳ及びチェックリスト生成プログラム１０６を読み込み、実行する。これにより、コンピュータ１００は、本実施の形態にかかるチェックリスト生成装置１３を実現する。
【０１２８】
（インターフェース部１０４の概略図）
図１２は、チェックリスト生成装置１３に設けられたインターフェース部１０４、及び、チェックリスト生成装置１３により生成されたチェックリストの内容を示す図である。なお、図１２の例では、チェックリスト生成装置１３によりチェックリストＬ１〜Ｌ３が生成される場合について説明する。また、図１２の例では、図６の例等と同様に、通信バスＢ１にモジュール１２＿１〜１２＿１０が接続されている場合について説明する。
【０１２９】
図１２に示すように、インターフェース部１０４は、例えば、表示装置に表示された内容をユーザがマウス等の入力装置を用いて編集することで、ユーザからの情報をコンピュータシステム内部に伝える。図１２の例では、表示装置に、検出アドレスの欄１０４１、検出アドレスに対する優先チェックの欄１０４２、追加モジュール検出の欄１０４３、及び、チェックリスト生成開始ボタン１０４４が表示されている。ユーザは、例えばマウスを操作することで、検出アドレス“１〜１０”のうちアドレス“１，４，７，８”に対する優先チェックの欄１０４２にチェックを入れる（優先チェックを要に設定する）とともに、追加モジュール検出の欄１０４３にチェックを入れる（追加モジュールの検出を要に設定する）。その後、ユーザは、チェックリスト生成開始ボタン１０４４をクリックする。
【０１３０】
その結果、優先チェックが要に設定されたアドレス“１，４，７，８”がリスト化され、かつ、必須フラグが”１”に設定されたチェックリストＬ１が生成される。また、それ以外のアドレス“２，３，５，６，９，１０”がリスト化され、かつ、必須フラグが“０”に設定されたチェックリストＬ２が生成される。さらに、追加モジュールの検出が要に設定されたため、追加モジュールの検出対象であるアドレス（ここでは、アドレス１〜１２８）がリスト化され、かつ、必須フラグが“１”に設定されたチェックリストＬ３が生成される。
【０１３１】
（チェックリスト生成装置１３の動作を示すフローチャート）
図１３は、チェックリスト生成装置１３の動作を示すフローチャートである。
【０１３２】
まず、チェックリストＬ１〜Ｌ３が初期化される（ステップＳ３０１）。具体的には、各チェックリストＬ１〜Ｌ３のアドレスリストを空にして、それ以外のパラメータを“０”にする。
【０１３３】
その後、追加モジュールの検出が要に設定されているか否かの判定が行われる（ステップＳ３０２）。
【０１３４】
例えば、追加モジュールの検出が要に設定されている場合（ステップＳ３０２のＹＥＳ）、チェックリストＬ３の初期設定が行われる（ステップＳ３０３）。具体的には、アドレス“１〜１２８”がアドレスリストに追加され、これらアドレス“１〜１２８”の期待値が全て“０”に設定される。また、ポインタの値が“０”に設定される。また、アドレスのチェック数が“１”に設定される。さらに、必須フラグが“１”に設定される。
【０１３５】
追加モジュールの検出が要に設定されていない場合（ステップＳ３０２のＮＯ）、又は、チェックリストＬ３の初期設定が完了した場合（ステップＳ３０３）、チェックリストＬ１の初期設定が行われる（ステップＳ３０４）。具体的には、ポインタの値が“０”に設定される。また、アドレスのチェック数が“０”に設定される。さらに、必須フラグが“１”に設定される。
【０１３６】
その後、チェックリストＬ２の初期設定が行われる（ステップＳ３０５）。具体的には、ポインタの値が“０”に設定される。また、アドレスのチェック数が“０”に設定される。さらに、必須フラグが“０”に設定される。
【０１３７】
その後、ループ処理Ｃに移行する。
ループ処理Ｃでは、まず、アドレス“ｉ”（ｉの初期値は１）にモジュールが接続されているか否かがチェックされる（ステップＳ３０６）。
【０１３８】
アドレス“ｉ”にモジュールが接続されている場合（ステップＳ３０６のＹＥＳ）、チェックリストＬ３の更新が行われる（ステップＳ３０７）。具体的には、アドレス“ｉ”（ここではｉ＝１）の期待値が“１”に更新される。
【０１３９】
なお、アドレス“ｉ”にモジュールが接続されていない場合（ステップＳ３０６のＮＯ）、チェックリストＬ１，Ｌ２の更新が行われることなく、ｉの値が１つカウントアップされて、次のアドレス“ｉ”（ここではｉ＝２）にモジュールが接続されているか否かのチェックに戻る（ステップＳ３０６）。
【０１４０】
アドレス“ｉ”にモジュールが接続されている場合（ステップＳ３０６のＹＥＳ）において、チェックリストＬ３の更新が完了すると（ステップＳ３０７）、その後、アドレス“ｉ”に対する優先チェックが要に設定されているか否かの判定が行われる（ステップＳ３０８）。
【０１４１】
例えば、優先チェックが要に設定されている場合（ステップＳ３０８のＹＥＳ）、チェックリストＬ１の更新が行われる（ステップＳ３０９）。具体的には、アドレス“ｉ”がアドレスリストに追加され、そのアドレス“ｉ”の期待値が“１”に設定される。また、アドレスのチェック数が１つ増加する（ここでは、チェック数が“０”から“１”に増加する）。
【０１４２】
他方、優先チェックが要に設定されていない場合（ステップＳ３０８のＮＯ）、チェックリストＬ２の更新が行われる（ステップＳ３１０）。具体的には、アドレス“ｉ”がアドレスリストに追加され、そのアドレス“ｉ”の期待値が“１”に設定される。また、アドレスのチェック数が“１”に更新される。
【０１４３】
チェックリストＬ１又はチェックリストＬ２の更新が完了すると、ｉの値が１つカウントアップされて、次のアドレス“ｉ”（ここではｉ＝２）にモジュールが接続されているか否かのチェックに戻る（ステップＳ３０６）。
【０１４４】
以降、ｉがアドレスの最大値（ここでは１２８）に達するまで、ループ処理Ｃの動作が繰り返される。
【０１４５】
最後に、チェックリストＬ１〜Ｌ３が生成される（ステップＳ３１１）。
【０１４６】
このように、チェックリスト生成装置１３は、ユーザによる簡単な入力操作のみでチェックリストＬ１〜Ｌｍを容易に生成することができる。なお、チェックリスト生成装置１３は、検出モジュールの種類に応じて自動的に優先チェックの欄、及び、追加モジュールの検出の欄を更新する構成にすることも可能である。それにより、ユーザによる簡単な入力操作を省略することができる。
【０１４７】
＜実施の形態３＞
図１４は、実施の形態３にかかる半導体システム２の構成例を示すブロック図である。本実施の形態にかかる半導体システム２では、複数の通信バスＢ２，Ｂ３が設けられている場合に、ホストコントローラ２１が複数の通信バスＢ２，Ｂ３のそれぞれに対して独立して動作する巡回チェック機能を備える。それにより、半導体システム２は、複数の通信バスＢ２，Ｂ３を設けることで通信対象のモジュール数を増やした場合でも、巡回チェックの頻度の低下を防ぐことができる。以下、具体的に説明する。
【０１４８】
図１４に示すように、半導体システム２は、ホストコントローラ（半導体装置）２１と、モジュール２２＿１〜２２＿ｐ（ｐは２以上の整数）と、モジュール３２＿１〜３２＿ｑ（ｑは２以上の整数）と、ホストコントローラ２１とモジュール２２＿１〜２２＿ｐとを接続する通信バスＢ２と、ホストコントローラ２１とモジュール３２＿１〜３２＿ｑとを接続する通信バスＢ３と、を備える。
【０１４９】
ホストコントローラ２１は、制御回路２１１と、モジュール制御回路２１２，３１２と、接続状態チェック回路２１３，３１３と、チェックリスト格納部２１４，３１４と、を備える。なお、ホストコントローラ２１は、ホストコントローラ１１に対応する。
【０１５０】
モジュール制御回路２１２は、通信バスＢ２を介して、モジュール２２＿１〜２２＿ｐとデータ通信を行う回路である。モジュール制御回路３１２は、通信バスＢ３を介して、モジュール３２＿１〜３２＿ｑとデータ通信を行う回路である。なお、モジュール制御回路２１２，３１２は、何れもモジュール制御回路１１２に対応する。
【０１５１】
接続状態チェック回路２１３は、チェックリスト格納部２１４に格納されたチェックリストＬ１〜Ｌｍの情報に基づいてモジュール２２＿１〜２２＿ｐと通信バスＢ２との接続状態のチェックの優先度を決定したうえで、これらの接続状態をチェックする。なお、接続状態チェック回路２１３は、接続状態チェック回路１１３に対応する。
【０１５２】
接続状態チェック回路３１３は、チェックリスト格納部３１４に格納されたチェックリストＬ１〜Ｌｍの情報に基づいてモジュール３２＿１〜３２＿ｑと通信バスＢ３との接続状態のチェックの優先度を決定したうえで、これらの接続状態をチェックする。なお、接続状態チェック回路３１３は、接続状態チェック回路１１３に対応する。
【０１５３】
制御回路２１１は、モジュール制御回路２１２と接続状態チェック回路２１３とを選択的に動作させるとともに、モジュール制御回路３１２と接続状態チェック回路３１３とを選択的に動作させる回路である。なお、制御回路２１１は、制御回路１１１に対応する。
【０１５４】
このように、半導体システム２では、複数の通信バスＢ２，Ｂ３が設けられている場合に、ホストコントローラ２１が複数の通信バスＢ２，Ｂ３のそれぞれに対して独立して動作する巡回チェック機能を備える。それにより、半導体システム２は、複数の通信バスＢ２，Ｂ３を設けることで通信対象のモジュール数を増やした場合でも、巡回チェックの頻度の低下を防ぐことができる。
【０１５５】
本実施の形態では、接続状態チェック回路２１３，３１３が、チェック対象のアドレスからの応答の有無により、当該アドレスにより指定されたモジュールの通信バスＢ２，Ｂ３への接続状態をチェックする場合を例に説明したが、これに限られない。例えば、接続状態チェック回路２１３，３１３は、チェック対象のアドレスからの応答内容（応答レベル、応答速度等）により、当該アドレスにより指定されたモジュールの温度や故障等をチェックする構成とすることもできる。
【０１５６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【０１５７】
例えば、上記の実施の形態に係る半導体装置では、半導体基板、半導体層、拡散層（拡散領域）などの導電型（ｐ型もしくはｎ型）を反転させた構成であってもよい。そのため、ｎ型、及びｐ型の一方の導電型を第１の導電型とし、他方の導電型を第２の導電型とした場合、第１の導電型をｐ型、第２の導電型をｎ型とすることもできるし、反対に第１の導電型をｎ型、第２の導電型をｐ型とすることもできる。
【符号の説明】
【０１５８】
１，２  半導体システム
１１  ホストコントローラ
１２＿１〜１２＿ｎ  モジュール
１３  チェックリスト生成装置
２１  ホストコントローラ
２２＿１〜２２＿ｐ  モジュール
３２＿１〜３２＿ｑ  モジュール
１００  コンピュータ
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  インターフェース部
１０５  ＨＤＤ
１０６  チェックリスト生成プログラム
１１１  制御回路
１１２  モジュール制御回路
１１３  接続状態チェック回路
１１４  チェックリスト格納部
２１１  制御回路
２１２  モジュール制御回路
２１３  接続状態チェック回路
２１４  チェックリスト格納部
３１２  モジュール制御回路
３１３  接続状態チェック回路
３１４  チェックリスト格納部
１０４１  検出アドレスの欄
１０４２  優先チェックの欄
１０４３  追加モジュール検出の欄
１０４４  チェックリスト生成開始ボタン
Ｌ１〜Ｌｍ  チェックリスト
【図１】
2017004254.tif 000003
【図２】
2017004254.tif 000004
【図３】
2017004254.tif 000005
【図４】
2017004254.tif 000006
【図５】
2017004254.tif 000007
【図６】
2017004254.tif 000008
【図７】
2017004254.tif 000009
【図８】
2017004254.tif 000010
【図９】
2017004254.tif 000011
【図１０】
2017004254.tif 000012
【図１１】
2017004254.tif 000013
【図１２】
2017004254.tif 000014
【図１３】
2017004254.tif 000015
【図１４】
2017004254.tif 000016