(57)【要約】【課題】  より高い機能安全機構を有する集積回路装置を提供しようとするものである。【解決手段】  第１処理部は、第１クロックを受け取り、第１入力ノード上のデータに対する第１処理により得られるデータを第１出力ノード上で出力する。第２処理部は、第１クロックを受け取り、第２入力ノード上のデータに対する第１処理により得られるデータを第２出力ノード上で出力する。第３処理部は、第２クロックを受け取り、第３および第４入力ノードにおいて第１入力ノードと接続されており、第３および第４入力ノード上のデータに対する第１処理により得られるデータを第３および第４出力ノードから出力する。判断部は、第１、第２、第３、第４出力ノードと接続された第５、第６、第７、第８入力ノードを有し、第５、第６、第７、第８入力ノードでそれぞれ受け取ったデータに基づいて、第１信号を出力する。【選択図】      図２
2020145356.tif 000002
【特許請求の範囲】
【請求項１】
第１クロックを受け取り、第１入力ノードおよび第１出力ノードを有し、第１入力ノード上のデータに対する第１処理により得られるデータを前記第１出力ノード上で出力する第１処理部と、
前記第１クロックを受け取り、第２入力ノードおよび第２出力ノードを有し、前記第２入力ノードにおいて前記第１入力ノードと接続されており、前記第２入力ノード上のデータに対する前記第１処理により得られるデータを前記第２出力ノード上で出力する第２処理部と、
前記第１クロックの周期より短い周期の第２クロックを受け取り、第３入力ノード、第４入力ノード、第３出力ノード、第４出力ノードを有し、前記第３入力ノードおよび前記第４入力ノードにおいて前記第１入力ノードと接続されており、前記第３入力ノード上のデータに対する前記第１処理により得られるデータを前記第３出力ノードから出力し、前記第４入力ノード上のデータに対する前記第１処理により得られるデータを前記第４出力ノード上で出力する第３処理部と、
前記第１出力ノードと接続された第５入力ノードと、前記第２出力ノードと接続された第６入力ノードと、前記第３出力ノードと接続された第７入力ノードと、前記第４出力ノードと接続された第８入力ノードとを有し、
前記第５入力ノード上のデータと、前記第６入力ノード上のデータと、前記第７入力ノード上のデータと、前記第８入力ノード上のデータに基づいて、第１信号を出力する、
判断部と、
を備える集積回路装置。
【請求項２】
前記第３処理部は、前記第３入力ノード上のデータと前記第４入力ノード上のデータを相違する時間において処理する、
請求項１に記載の集積回路装置。
【請求項３】
前記判断部は、前記第１入力ノードへの第１データの入力に対して、前記第５入力ノードと前記第６入力ノードで同じデータを受け取り、かつ前記第７入力ノードと前記第８入力ノードで相違するデータを受け取り、かつ前記第５入力ノードと前記第７入力ノードまたは前記第５入力ノードと前記第８入力ノードとで相違するデータを受け取ると、前記第１信号を出力する、
請求項１に記載の集積回路装置。
【請求項４】
前記判断部は、前記第１入力ノードへの第２データの入力に対して、前記第５入力ノードと前記第６入力ノードで同じデータを受け取り、かつ前記第７入力ノードと前記第８入力ノードで同じデータを受け取り、かつ前記第５入力ノードと前記第７入力ノードとで相違するデータを受け取ると、前記第１信号を出力する、
請求項１に記載の集積回路装置。
【請求項５】
前記判断部は、前記第１入力ノードへの第３データの入力に対して、前記第５入力ノード、前記第６入力ノード、前記第７入力ノード、前記第８入力ノードで同じデータを受け取ると、前記第１信号を出力することなく前記第５入力ノード、前記第６入力ノード、前記第７入力ノード、前記第８入力ノードのいずれかの上でのデータを出力する、
請求項１に記載の集積回路装置。
【請求項６】
前記第１処理部は、前記第１入力ノード上のデータに対して前記第１処理を実行し、
前記第２処理部は、前記第２入力ノード上のデータに対して前記第１処理を実行し、
前記第３処理部は、前記第３入力ノード上のデータに対して前記第１処理を実行し、前記第４入力ノード上のデータに対して前記第１処理を実行する、
請求項１に記載の集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、概して集積回路装置に関する。
【背景技術】
【０００２】
自動車や工場の産業機械などでの用途で、機能安全機構を有する集積回路装置が知られている。そのような集積回路装置は、故障したことなどをより詳しく検出されることができることが求められる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−２７８８９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
より高い機能安全機構を有する集積回路装置を提供しようとするものである。
【課題を解決するための手段】
【０００５】
一実施形態による集積回路装置は、第１処理部と、第２処理部と、第３処理部と、判断部と、を含む。第１処理部は、第１クロックを受け取り、第１入力ノードおよび第１出力ノードを有し、第１入力ノード上のデータに対する第１処理により得られるデータを上記第１出力ノード上で出力する。第２処理部は、上記第１クロックを受け取り、第２入力ノードおよび第２出力ノードを有し、上記第２入力ノードにおいて上記第１入力ノードと接続されており、上記第２入力ノード上のデータに対する上記第１処理により得られるデータを上記第２出力ノード上で出力する。第３処理部は、上記第１クロックの周期より短い周期の第２クロックを受け取り、第３入力ノード、第４入力ノード、第３出力ノード、第４出力ノードを有し、上記第３入力ノードおよび上記第４入力ノードにおいて上記第１入力ノードと接続されており、上記第３入力ノード上のデータに対する上記第１処理により得られるデータを上記第３出力ノードから出力し、上記第４入力ノード上のデータに対する上記第１処理により得られるデータを上記第４出力ノード上で出力する。判断部は、上記第１出力ノードと接続された第５入力ノードと、上記第２出力ノードと接続された第６入力ノードと、上記第３出力ノードと接続された第７入力ノードと、上記第４出力ノードと接続された第８入力ノードとを有し、上記第５入力ノード上のデータと、上記第６入力ノード上のデータと、上記第７入力ノード上のデータと、上記第８入力ノード上のデータに基づいて、第１信号を出力する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態の集積回路装置１の機能ブロックを示す。
【図２】図２は、第１実施形態のデータ処理部の機能ブロックを示す。
【図３】図３は、第１実施形態の時間多重処理ブロックの詳細の例を示す。
【図４】図４は、第１実施形態の時間多重処理ブロックのいくつかのノード上の信号および関連する信号を時間に沿って示す。
【図５】図５は、第１実施形態の判定ブロックおよび制御部の動作のフローを示す。
【図６】図６は、第１実施形態のデータＯＤ１〜ＯＤ４の状態の一例を示す。
【図７】図７は、第１実施形態のデータＯＤ１〜ＯＤ４の状態の別の例を示す。
【図８】図８は、参考用のデータ処理部の機能ブロックを示す。
【発明を実施するための形態】
【０００７】
以下に実施形態が図面を参照して記述される。以下の記述において、略同一の機能および構成を有する構成要素は同一符号を付され、繰り返しの説明は省略される場合がある。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、各機能ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から記述される。また、各機能ブロックが、以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
【０００８】
また、実施形態の方法のフローにおけるいずれのステップも、例示の順序に限定されず、そうでないと示されない限り、例示の順序とは異なる順序でおよび（または）別のステップと並行して起こることが可能である。
【０００９】
本明細書および特許請求の範囲において、ある第１要素が別の第２要素に「接続されている」とは、第１要素が直接的または常時あるいは選択的に導電性となる要素を介して第２要素に接続されていることを含む。
【００１０】
（第１実施形態）
＜１．１．構成（構造）＞
図１は、第１実施形態の集積回路装置１の機能ブロックを示す。集積回路装置１は、例えば半導体チップとして実現されることができる。図１に示されるように、集積回路装置１は、第１回路部１１、データ処理部１２、第２回路部１３、および制御部１４を含む。
【００１１】
第１回路部１１および第２回路部１３は、任意の組み合わせであることが可能である。すなわち、第１回路部１１および第２回路部１３は、第１回路部１１から出力されたデータＩＤがデータ処理部１２により処理され、データ処理部から出力されたデータＯＤが第２回路部１３で受信される限り、任意の機能を有することができる。一例として、第１回路部１１は集積回路装置１の外部のデータ入力装置（例えばカメラ）１００から画像データを受け取り、これを出力し、データ処理部１２は画像データを受け取って画像データに或る処理を施し、第２回路部１３は処理されたデータを受け取ることができる。第１回路部１１が画像データを出力する例に基づくと、第１回路部１１は、例えばエッジ抽出を行う回路であることが可能である。
【００１２】
データ処理部１２は、第１回路部１１からデータＩＤを受け取り、受け取ったデータＩＤに或る処理を施し、処理によって得られたデータＯＤを第２回路部１３に送信する。処理は、第１回路部１１および第２回路部１３の機能に基づいて定まる任意の処理であることが可能である。例えば、上記の第１回路部１１が画像データを出力する例に基づくと、データ処理部１２により処理は、受け取られた画像データを白黒画像に変換する処理（２値化処理）であることが可能である。
【００１３】
データ処理部１２は、下で詳述されるように、機能に対する安全性を保つ機構を有する。データ処理部１２は、データ処理の間に自身の状態、特に故障等の異常の有無を判断し、異常が検出されると、制御部１４に検出信号ＤＳを送信する。
【００１４】
制御部１４は、検出信号ＤＳを受け取ると、受け取ったことに基づいて、第２回路部１３を制御する。第１回路部１１が画像データを出力するとともにデータ処理部１２が白黒変換を行う例に基づくと、第２回路部１３は、例えば物体検出処理を行う回路であることが可能である。さらに、このような例の場合、第２回路部１３は、集積回路装置１の外部のアクチュエータ１１０にアクチュエータを制御するための信号を供給し、制御部１４は集積回路装置１の外部の表示装置（例えば、ＬＥＤ（light emitting diode）および（または）ディスプレイ）１２０に制御に基づく状態を示すための信号を送信することができる。
【００１５】
＜１．１．１．データ処理部＞
図２は、第１実施形態のデータ処理部の機能ブロックを示す。データ処理部１２は、データ処理ブロック２１、データ処理ブロック２２、時間多重処理ブロック２３、および判定ブロック２４を含む。
【００１６】
データ（入力データ）ＩＤは、データ処理ブロック２１のノードＡにおいて受け取られる。データ処理ブロック２１は、入力データＩＤに対して処理ｐを実行することによって得られるデータをノードＣ上で出力する。例えば、データ処理ブロック２１は、処理ｐを実行できるように構成されており、入力データＩＤに対して処理ｐを実行し、処理ｐの結果得られるデータをノードＣ上で出力する。データ処理ブロック２１は、外部から、例えば制御部１４からクロックＣＬＫ１を受け取り、クロックＣＬＫ１に同期して動作する。データ処理ブロック２１から出力されるデータは、以下、出力データＯＤ１と称される。ノードＣは、判定ブロック２４の第１入力Ｉ１に接続されている。
【００１７】
入力データＩＤはまた、データ処理ブロック２２のノードＢにおいて受け取られる。データ処理ブロック２２は、データ処理ブロック２１と同じく、入力データＩＤに対して処理ｐを実行することによって得られるデータをノードＤ上で出力する。例えば、データ処理ブロック２２は、処理ｐを実行できるように構成されており、入力データＩＤに対して処理ｐを実行し、処理ｐの結果得られるデータをノードＤ上で出力する。データ処理ブロック２２は、外部から、例えば制御部１４からクロックＣＬＫ１を受け取り、クロックＣＬＫ１に同期して動作する。データ処理ブロック２２から出力されるデータは、以下、出力データＯＤ２と称される。ノードＤは、判定ブロック２４の第２入力Ｉ２に接続されている。
【００１８】
時間多重処理ブロック２３は、入力データＩＤを２つのノードＥおよびＦにおいて並行して受け取り、時間多重化の原理に基づいて、２つの入力データＩＤの一方に対して処理ｐを実行することによって得られるデータと、他方のに対して処理ｐを実行することによって得られるデータと、をそれぞれノードＬおよびノードＭ上で出力する。
【００１９】
具体的な例として、時間多重処理ブロック２３は、パラレル・シリアル（ＰＳ）変換ブロック３１、データ処理ブロック３２、およびシリアル・パラレル（ＳＰ）変換ブロック３３を含む。
【００２０】
ＰＳ変換ブロック３１は、第１入力Ｉ１１および第２入力Ｉ１２を有し、第１入力Ｉ１１および第２入力Ｉ１２において入力データＩＤを並行して受け取る。ＰＳ変換ブロック３１は、制御信号Ｓを外部から、例えば制御部１４から受け取り、制御信号Ｓに基づいて、第１入力Ｉ１１で受け取られた入力データＩＤと第２入力Ｉ１２で受け取られた入力データＩＤをシリアルにノードＧ上で出力する。具体的には、ＰＳ変換ブロック３１は、第１入力Ｉ１１および第２入力Ｉ１２で同じ入力データＩＤを受け取り、第１入力Ｉ１１で受け取られた入力データＩＤ（ＩＤ１）をノードＧから出力し、次いで、第２入力Ｉ１２で受け取られた入力データＩＤ（ＩＤ２）をノードＧ上で出力する。
【００２１】
データ処理ブロック３２は、入力においてノードＧと接続されている。データ処理ブロック３２は、データ処理ブロック２１および２２と同じく、入力データＩＤに対して処理ｐを実行することによって得られるデータをノードＪ上で出力する。例えば、データ処理ブロック３２は、データ処理ブロック２１および２２と同じく、処理ｐを実行できるように構成されており、入力データＩＤに対して処理ｐを実行し、処理ｐの結果得られるデータをノードＪ上で出力する。データ処理ブロック２１および２２と同じ処理ｐを行うように構成されている。データ処理ブロック３２は、外部から、例えば制御部１４からクロックＣＬＫ２を受け取り、クロックＣＬＫ２に同期して動作する。クロックＣＬＫ２は、クロックＣＬＫ１より短い周期で立ち上がり、例えば、クロックＣＬＫ１の立ち上がりの半分の周期で立ち上がる。よって、データ処理ブロック３２は、データ処理ブロック２１および２２と同じ処理ｐをデータ処理ブロック２１および２２より高速に、例えば２倍の速度で実行することができる。データ処理ブロック３２は、処理ｐの結果得られるデータをノードＪ上で出力する。
【００２２】
データ処理ブロック３２は、例えば、第１入力Ｉ１１で受け取られた入力データＩＤ（ＩＤ１）および入力データＩＤ（ＩＤ２）をノードＧでシリアルに受け取ると、データＩＤ１に対して処理ｐが行われた結果得られるデータＯＤ３を出力し、次いで、データＩＤ２に対して処理ｐが行われた結果得られるデータＯＤ４を出力する。
【００２３】
ＳＰ変換ブロック３３は、入力においてノードＪと接続されており、ノードＪで受け取られたデータをパラレルに変換して第１出力ノードＬおよび第２出力ノードＭから並行して出力する。ＳＰ変換ブロック３３は、クロックＣＬＫ１およびＣＬＫ２を受け取り、クロックＣＬＫ１およびＣＬＫ２に基づいて動作する。具体的には、ＳＰ変換ブロック３３は、データＯＤ３およびＯＤ４を受け取って保持し、次いで、データＯＤ３とＯＤ４をそれぞれノードＬおよびＭから並行に出力する。
【００２４】
ノードＬは、判定ブロック２４の第３入力Ｉ３に接続されており、ノードＭは判定ブロック２４の第４入力Ｉ４に接続されている。判定ブロック２４は、第１入力Ｉ１で受け取られたデータ、第２入力Ｉ２で受け取られたデータ、第３入力Ｉ３で受け取られたデータ、および第４入力Ｉ４で受け取られたデータを比較して、受け取られたデータの一致および不一致を判定する。後に詳述されるように、データ処理ブロック２１および２２、ならびに時間多重処理ブロック２３（特にデータ処理ブロック３２）が正常な状態であれば、データＯＤ１、ＯＤ２、ＯＤ３、およびＯＤ４は一致するはずである。判定ブロック２４は、データＯＤ１、ＯＤ２、ＯＤ３、およびＯＤ４の特定の２つが一致していない場合、故障の旨を示す検出信号ＤＳ（以下、故障検出信号と称される場合がある）を制御部１４に送信する。判定ブロック２４は、一致および不一致の詳細に基づいて定まる１または複数ビットの値を内部のレジスタ２４Ａにおいて保持する。また、判定ブロック２４は、データＯＤ１、ＯＤ２、ＯＤ３、およびＯＤ４のうちの判定の結果に基づいて選択される１つを出力データＯＤとして、第２回路部１３に送信する。
【００２５】
制御部１４は、故障検出信号を受け取ると、レジスタ２４Ａの内容を読み出し、レジスタ２４Ａの内容に基づいて第２回路部１３を制御する。
【００２６】
または、検出信号ＤＳが、不一致の検出に加えて、一致および不一致の詳細を示す情報を含んでいてもよい。この場合、制御部１４は、レジスタ２４Ａへのアクセスなく、判定の結果の詳細を知ることができるため、判定ブロック２４はレジスタ２４Ａを有する必要はない。
【００２７】
＜１．１．１．時間多重処理ブロック＞
図３は、第１実施形態の時間多重処理ブロック２３の詳細の例を示す。図３は、処理ｐが入力値の４乗の計算の例に基づき、データ処理ブロック３２が４乗計算のための構成を有する例を示す。データ処理ブロック３２の詳細は、図３の例に限られず、処理ｐの内容に基づいて定まる要素および接続を有する。
【００２８】
図３に示されるように、ＰＳ変換ブロック３１は、セレクタ３１１を含む。セレクタ３１１は、第１入力および第２入力を有し、第１入力においてノードＥと接続され、第２入力においてノードＦと接続されている。セレクタ３１１は、制御信号Ｓに基づいて、ノードＥまたはノードＦを選択し、選択された方を自身の出力ノードに、すなわち、ノードＧに接続する。例として、セレクタ３１１は、制御信号Ｓが“１”データ（ハイレベル）の間、ノードＥを選択し、制御信号Ｓが“０”データ（ローレベル）の間、ノードＦを選択する。
【００２９】
データ処理ブロック３２は、乗算回路３２１および３２２、ならびにフリップフロップ回路３２３を含む。ノードＧは、乗算回路３２１の第１入力および第２入力に接続されている。乗算回路３２１は、第１入力で受け取られたデータと第２入力で受け取られたデータを乗算し、乗算の結果をノードＨ上で出力する。
【００３０】
ノードＨは、フリップフロップ回路３２３の入力に接続されている。フリップフロップ回路３２３は、クロックＣＬＫ２を受け取り、入力で受け取られたデータを、受け取られた順に、クロックＣＬＫ２に同期してノードＩ上で出力する。
【００３１】
ノードＩは、乗算回路３２２の第１入力および第２入力に接続されている。乗算回路３２２は、第１入力で受け取られたデータと第２入力で受け取られたデータを乗算し、乗算の結果をノードＪ上で出力する。
【００３２】
ＳＰ変換ブロック３３は、フリップフロップ回路３３１、３３２、および３３３を含む。フリップフロップ回路３３１は、入力においてノードＪと接続されている。フリップフロップ回路３３１は、クロックＣＬＫ２を受け取り、入力で受け取られたデータを、受け取られた順に、クロックＣＬＫ２に同期してノードＫ上で出力する。
【００３３】
フリップフロップ回路３３２は、入力においてノードＫと接続されている。フリップフロップ回路３３２は、クロックＣＬＫ１を受け取り、入力で受け取られたデータを、受け取られた順に、クロックＣＬＫ１に同期してノードＬ上で出力する。
【００３４】
フリップフロップ回路３３３は、入力においてノードＪと接続されている。フリップフロップ回路３３３は、クロックＣＬＫ１を受け取り、入力で受け取られたデータを、受け取られた順に、クロックＣＬＫ１に同期してノードＭ上で出力する。
【００３５】
＜１．２．動作＞
＜１．２．１．時間多重処理ブロックの動作＞
図４は、第１実施形態の時間多重処理ブロック２３のいくつかのノード上の信号および関連する信号を時間に沿って示す。
【００３６】
図４に示されるように、クロックＣＬＫ１は、１周期の最初の４分の１の期間にわたってハイレベルを維持し、残りの４分の３の期間にわたってローレベルを維持する。図４の例では、クロックＣＬＫ１の１周期は、時刻ｔ１から時刻ｔ４にわたり、クロックＣＬＫ１は、時刻ｔ１から時刻ｔ２までハイレベルを維持し、時刻ｔ２から時刻ｔ４までローレベルを維持する。時刻ｔ１から時刻ｔ２までの期間、および時刻ｔ２から時刻ｔ３までの期間は、時刻ｔ１からｔ３までの期間の半分である。時刻ｔ３から時刻ｔ４の期間は、時刻ｔ１から時刻ｔ３の期間と同じ長さである。
【００３７】
クロックＣＬＫ２は、クロックＣＬＫ１の半分の周期を有し、最初の半分の周期にわたってハイレベルを維持し、残りの周期にわたってローレベルを維持する。図４の例では、クロックＣＬＫ２の周期は、時刻ｔ１から時刻ｔ３にわたり、クロックＣＬＫ２は、時刻ｔ２で反転する論理を有する。クロックＣＬＫ２はクロックＣＬＫ１の立ち上がりと同じタイミングで立ち上がる。
【００３８】
制御信号Ｓは、クロックＣＬＫ１と同じ周期を有し、最初の半分の周期にわたってハイレベルを維持し、残りの周期にわたってローレベルを維持する。すなわち、制御信号Ｓは、時刻ｔ１から時刻ｔ３までハイレベルを維持し、時刻ｔ３から時刻４までローレベルを維持する。制御信号ＳはクロックＣＬＫ１およびＣＬＫ２のそれぞれの立ち上がりと同じタイミングで立ち上がる。
【００３９】
例として、入力データＩＤは、連続するデータａ１およびデータａ２を含む。第１入力Ｉ１１で受け取られる入力データＩＤ（ＩＤ１）は、データａ１およびデータａ２として引用され、第２入力Ｉ１２で受け取られる入力データＩＤ（ＩＤ２）は、データｂ１およびデータｂ２として引用される。データａ１はデータｂ１と同一であり、データａ２はデータｂ２と同一である。
【００４０】
時刻ｔ１からｔ４までにわたって、ノードＥ上をデータａ１が流れ、また、ノードＦ上をデータｂ１が流れる。制御信号Ｓは時刻ｔ１においてハイレベルとなり、よって、時刻ｔ１からはデータａ１がセレクタ３１１によって選択され、時刻ｔ１からはノードＧ上でデータａ１が出力される。時刻ｔ１から、データａ１は乗算回路３２１により受け取られ、ノードＨ上でデータａ１の２乗の値のデータａ１２が出力される。データａ１２はフリップフロップ回路３２３によりラッチされる。
【００４１】
時刻ｔ３において、制御信号Ｓはローベルに移行する。これにより、時刻ｔ３から、ノードＧ上でデータｂ１が出力され、ノードＨ上でデータｂ１の２乗の値のデータｂ１２が出力される。データｂ１２はフリップフロップ回路３２３によりラッチされる。
【００４２】
時刻ｔ３において、クロックＣＬＫ２がハイレベルに移行する。これに応答して、フリップフロップ回路３２３は時刻ｔ２の時点で保持されているデータ、すなわちデータａ１２をノードＩ上で出力する。乗算回路３２２は、ノードＩ上のデータａ１２を受け取り、ノードＪ上でデータａ１２の２乗の値のデータａ１４を出力する。データａ１４はフリップフロップ回路３３１および３３３の両方によりラッチされる。
【００４３】
時刻ｔ４から時刻ｔ６にわたって、ノードＥ上をデータａ２が流れ、また、ノードＦ上をデータｂ２が流れる。制御信号Ｓは時刻ｔ４においてハイレベルに移行し、よって、時刻ｔ４からはデータａ２がセレクタ３１１によって選択され、時刻ｔ４からはノードＧ上でデータａ２が出力される。時刻ｔ４から、データａ２は乗算回路３２１により受け取られ、ノードＨ上でデータａ２の２乗の値のデータａ２２が出力される。データａ２２はフリップフロップ回路３２３によりラッチされる。
【００４４】
時刻ｔ４において、クロックＣＬＫ２がハイレベルに移行する。これに応答して、フリップフロップ回路３２３は時刻ｔ４の時点で保持されているデータ、すなわちデータｂ１２をノードＩ上で出力する。乗算回路３２２は、ノードＩ上のデータｂ１２を受け取り、ノードＪからデータｂ１２の２乗の値のデータｂ１４を出力する。データｂ１４はフリップフロップ回路３３１および３３３の両方によりラッチされる。
【００４５】
時刻ｔ４においてクロックＣＬＫ２がハイレベルに移行することに応答して、フリップフロップ回路３３１は、時刻ｔ４の時点で保持されているデータ、すなわちデータａ１４をノードＫ上で出力する。データａ１４はフリップフロップ回路３３２によりラッチされる。
【００４６】
時刻ｔ５において、制御信号Ｓはローベルに移行する。これにより、時刻ｔ５から、ノードＧ上でデータｂ２が出力され、ノードＨ上でデータｂ２の２乗の値のデータｂ２２が出力される。データｂ２２はフリップフロップ回路３２３によりラッチされる。
【００４７】
時刻ｔ５において、クロックＣＬＫ２がハイレベルに移行する。これに応答して、フリップフロップ回路３２３は、時刻ｔ５の時点で保持されているデータ、すなわちデータａ２２をノードＩ上で出力する。乗算回路３２２は、ノードＩ上のデータａ２２を受け取り、ノードＪ上でデータａ２２の２乗の値のデータａ２４を出力する。データａ２４はフリップフロップ回路３３１および３３３の両方によりラッチされる。
【００４８】
時刻ｔ５においてクロックＣＬＫ２がハイレベルに移行することに応答して、フリップフロップ回路３３１は、時刻ｔ５の時点で保持されているデータ、すなわちデータｂ１４をノードＫ上で出力する。データｂ１４はフリップフロップ回路３３２によりラッチされる。
【００４９】
時刻ｔ６において、クロックＣＬＫ２がハイレベルに移行する。これに応答して、フリップフロップ回路３２３は、時刻ｔ６の時点で保持されているデータ、すなわちデータｂ２２をノードＩ上で出力する。乗算回路３２２は、ノードＩ上のデータｂ２２を受け取り、ノードＪ上でデータｂ２２の２乗の値のデータｂ２４を出力する。データｂ２４はフリップフロップ回路３３１および３３３の両方によりラッチされる。
【００５０】
時刻ｔ６においてクロックＣＬＫ２がハイレベルに移行することに応答して、フリップフロップ回路３３１は、時刻ｔ６の時点で保持されているデータ、すなわちデータａ２４をノードＫ上で出力する。データａ２４はフリップフロップ回路３３２によりラッチされる。
【００５１】
時刻ｔ６において、クロックＣＬＫ１がハイレベルに移行する。これに応答して、フリップフロップ回路３３２は、時刻ｔ６の時点で保持されているデータ、すなわち、データａ１４をノードＬ上で出力する。また、時刻ｔ６においてクロックＣＬＫ１がハイレベルに移行することに応答して、フリップフロップ回路３３３は、時刻ｔ６の時点で保持されているデータ、すなわち、データｂ１４をノードＭ上で出力する。
【００５２】
時刻ｔ７において、クロックＣＬＫ２がハイレベルに移行することに応答して、フリップフロップ回路３３１は、時刻ｔ７の時点で保持されているデータ、すなわちデータｂ２４をノードＫ上で出力する。データｂ２４はフリップフロップ回路３３２によりラッチされる。
【００５３】
時刻ｔ８において、クロックＣＬＫ１がハイレベルに移行する。これに応答して、フリップフロップ回路３３２は、時刻ｔ８の時点で保持されているデータ、すなわち、データａ２４をノードＬ上で出力する。また、時刻ｔ８においてクロックＣＬＫ１がハイレベルに移行することに応答して、フリップフロップ回路３３３は、時刻ｔ８の時点で保持されているデータ、すなわち、データｂ２４をノードＭ上で出力する。
【００５４】
こうして、時刻ｔ１から時刻ｔ３までの間にデータａ１およびデータｂ１が供給されると、時刻ｔ６から時刻ｔ８までの間にデータａ１４およびデータｂ１４が並行して出力され、時刻ｔ４から時刻ｔ６にわたってデータａ２およびデータｂ２が供給されると、時刻ｔ８から時刻ｔ１０までの間にデータａ２４およびデータｂ２４が並行して出力される。
【００５５】
データ処理ブロック３２が正常に動作している限り、データａ１４とデータｂ１４は同じデータであり、データａ２４とデータｂ２４は同じデータである。
【００５６】
＜１．２．２．判定ブロックおよび制御ブロックの動作＞
図５は、第１実施形態の判定ブロック２４および制御部１４の動作のフローを示す。
【００５７】
ステップＳ１において、判定ブロック２４は、データＯＤ１とデータＯＤ２が同じであるかを判断する。データＯＤ１とデータＯＤ２が異なる場合（Ｎｏ分岐）、判定ブロック２４は、ステップＳ２において、故障の旨を示す検出信号ＤＳを出力する。ステップＳ１でのＮｏの判断の場合、データＯＤ１およびデータＯＤ２のいずれが正しいか、すなわち、データＯＤ１およびデータＯＤ２のいずれが、入力データＩＤが処理ｐによって得られるデータであるのかが判断されることはできない。よって、例えば、判定ブロック２４は、出力データを出力しない。
【００５８】
判定ブロック２４は、ステップＳ２において、レジスタ２４Ａ中の値を、データＯＤ１とデータＯＤ２が不一致の旨を示す値で更新する。その後、処理は終了する。
【００５９】
ステップＳ１での判断がＹｅｓの場合、判定ブロック２４は、ステップＳ４において、データＯＤ３とデータＯＤ４が同じであるかを判断する。データＯＤ３とデータＯＤ４が同じである場合（Ｙｅｓ分岐）、判定ブロック２４は、ステップＳ６において、データＯＤ１がデータＯＤ３と同じであるかを判断する。ステップＳ６において、データＯＤ１の代わりにＯＤ２が用いられ、および（または）データＯＤ３の代わりにデータＯＤ４が用いられてもよい。ステップＳ６では、データＯＤ１はデータＯＤ２と同じであり、データＯＤ３はデータＯＤ４と同じだからである。判定ブロック２４は、ステップＳ７において、データＯＤ１、データＯＤ２、データＯＤ３、およびデータＯＤ４の任意の１つをデータＯＤとして出力し、処理は終了する。
【００６０】
ステップＳ４において、データＯＤ３がデータＯＤ４と不一致の場合（Ｎｏ分岐）、処理はステップＳ１１に移行する。ステップＳ１１において、データＯＤ１がデータＯＤ３と一致するか、あるいはデータＯＤ１がデータＯＤ４と一致するかのいずれかが満たされるかを判断する。ステップＳ１１での判断がＮｏ場合、これは異常状態を示す。この異常状態は、判定ブロック２４の故障を含む。ステップＳ１１のＮｏ分岐は、ステップＳ１２に継続する。ステップＳ１２において、判定ブロック２４は、故障検出信号を出力するとともに、異常状態を示す値をレジスタ２４Ａにセットする。その後、処理は終了する。ステップＳ１１において、データＯＤ１に代えてデータＯＤ２が使用されてもよい。
【００６１】
ステップＳ１１において、データＯＤ１がデータＯＤ３またはＯＤ４と一致する場合（Ｙｅｓ分岐）、処理はステップＳ１４に移行する。ステップＳ１４において、判定ブロック２４は、データＯＤ１およびデータＯＤ２の任意の方を出力する。判定ブロック２４は、ステップＳ１５において、レジスタ２４Ａに一時故障を示す値をセットするとともに、故障検出信号を出力する。その後、処理は終了する。ステップＳ１４とステップＳ１５の順番は逆であってもよい。
【００６２】
ステップＳ６においてデータＯＤ１がデータＯＤ３と相違する場合（Ｎｏ分岐）、処理はステップＳ１８に移行する。ステップＳ１８において、判定ブロック２４は、データＯＤ１およびデータＯＤ２の任意の方を出力する。判定ブロック２４は、ステップＳ１９において、レジスタ２４Ａに経年劣化を示す値をセットするとともに、故障検出信号を出力する。その後、処理は終了する。ステップＳ１８とステップＳ１９の順番は逆であってもよい。
【００６３】
図６は、図５のステップＳ６でのＮｏの判断の場合の入力データＩＤ、およびデータＯＤ１、データＯＤ２、データＯＤ３、ならびにデータＯＤ４を示す。入力データＩＤはデータＤＴであり、入力データＤＴに処理ｐが施されることによって得られるデータはデータＰＤＴである。
【００６４】
図６のケースでは、データＯＤ１およびデータＯＤ２は、データＰＤＴである。一方、データＯＤ３およびデータＯＤ４の両方がデータＰＤＴと異なるデータＥＤＴである。このケースでは、データＯＤ３を生成するための処理も、データＯＤ４を生成するための処理も、ともに、誤ったデータＥＤＴを生成している。このことは、データ処理ブロック３２が常に誤った処理を行っていることを示す。このような現象は、データ処理ブロック３２が経年劣化した時に生じ得る。入力データＩＤがデータ処理ブロック３２によって２回処理されて、それぞれの処理において同一の誤ったデータＥＤＴが生成されているからである。
【００６５】
データ処理ブロック２１、２２、および３２は同じ構造を有し、並列に動作しているため、同様に経年劣化すると考えられる。経年劣化は、データ処理ブロック２１、２２、３２の各々での信号の遅延として現れることが多い。データ処理ブロック３２は、データ処理ブロック２１および２２より高速に動作しているため、動作のタイミングのマージンが、データ処理ブロック２１および２２より小さい。よって、データ処理ブロック２１、２２、および３２が経年劣化すると、データ処理ブロック２１および２２の経路では正しいデータＰＤＴが得られても、データ処理ブロック３２の経路では正しいデータＰＤＴが得られない場合がある。通常の速度（すなわちクロックＣＬＫ１の使用）に基づいて、データ処理ブロック２１および２２によって正しいデータＰＤＴは得られるものの、データ処理ブロック２１、２２、および３２は、経年劣化しており、近い将来に、通常速度でのデータ処理ブロック２１および２２によっても正しいデータが得られなくなる可能性がある。その前に、データ処理ブロック３２を介するデータを使用したデータ処理ブロック３２の経年劣化の検出によって、データ処理部１２が誤動作を起こす前にデータ処理ブロック２１、２２、および３２の経年劣化に対する対策が取られることができる。
【００６６】
図７は、図５のステップＳ１１でのＮｏの判断の場合の入力データＩＤ、およびデータＯＤ１、データＯＤ２、データＯＤ３、ならびにデータＯＤ４を示す。図７のケースでは、データＯＤ１およびデータＯＤ２は、データＰＤＴである。一方、データＯＤ３およびＯＤ４の一方はデータＰＤＴであるが、他方はデータＰＤＴと異なるデータＥＤＴである。図７は、例として、データＯＤ３がデータＥＤＴである。以下の記述は、この例に基づく。このケースでは、データＯＤ３とデータＯＤ４は異なるものの、一方（データＯＤ４）はデータＯＤ１およびデータＯＤ２と同じである。これは、データ処理ブロック３２が、ひいてはデータ処理ブロック２１、２２、および３２が経年劣化を起こしているではなく、ノイズなどの一時的な影響で、正しいデータＯＤ３が得られなかったと考えられることができる。このことに基づいて、図７のケースは、一時的故障であると判断されることができる。
【００６７】
図７のケースの場合、制御部１４は、故障検出信号を受け取った後、レジスタ２４Ａの値から一時的故障であることを知り、必ずしもその後何かしらの対策を取る必要を有しない。
【００６８】
図６と図７のケースではない状態で、故障検出信号が発せられる場合、これは、データ処理ブロック２１、２２、および３２の経年劣化でも一時的故障でもない何かしらの異常をデータ処理部１２が有していることを示す。この状態は、制御部１４によって、レジスタ２４Ａの値の読み出しを通じて認識され、認識に基づいて、制御部１４はさらなる処理を行うことができる．そのような処理は，例えば、集積回路装置１のシステム全体を制御するブロック、データ処理部１２の後段のブロック、例えば第２回路部１３の動作の停止などを含み得る。
【００６９】
＜１．３．効果＞
第１実施形態によれば、故障の状態をより詳しく検出されることができる集積回路装置が提供されることができる。詳細は以下の通りである。
【００７０】
機能安全の機構を有する図８のようなデータ処理回路が知られている。このデータ処理回路は、ある処理ｐを行う３つのデータ処理ブロック１２１、１２２、および１２３を含み、データ処理ブロック１２１、１２２、および１２３のそれぞれから出力されたデータＯＤ１１、ＯＤ１２、およびＯＤ１３が判定ブロック１２５に供給される。判定ブロック１２５は、出力データＯＤ１１、ＯＤ１２、ＯＤ１３を比較し、いずれか１つが（例えばデータＯＤ１３）残りの２つ（例えばデータＯＤ１１およびＯＤ１２）と一致していない場合、一致する２つのデータの一方を出力データＯＤとして出力する。データ処理ブロック１２３が故障している場合でも、残りのデータ処理ブロック１２１および１２２で、なされるべき処理ｐが実行されることができ、多数決によって、正しいと考えられるデータが選択されることができる。
【００７１】
しかしながら、判定ブロック１２５は、データ処理ブロック１２１、１２２、および１２３のいずれか１つに異常が起きている事実を検出できるにとどまり、異常の要因を特定することができない。また、データ処理ブロック１２１、１２２、および１２３が経年劣化した場合、データＯＤ１１、ＯＤ１２、およびＯＤ１３は、誤っているものの互いに一致するため、判定ブロック１２５は、データ処理ブロック１２１、１２２、および１２３が、正常に動作していると判断する。これは、データ処理回路の機能安全を十分に実現できておらず、機能安全機構を有するデータ処理回路に改善の余地がある。
【００７２】
第１実施形態によれば、データ処理部１２は、共通のデータＩＤを受け取るとともに処理ｐを行う２つのデータ処理ブロック２１および２２と、データＩＤを受け取るとともに処理ｐを行うデータ処理ブロック３２を含んだ時間多重処理ブロック２３を含む。時間多重処理ブロック２３は、データ処理ブロック３２をデータ処理ブロック２１および２２より高速に動作させて、データＩＤとその複製のそれぞれに対して処理ｐを行う。そして、データ処理部１２は、データ処理ブロック２１の出力データＯＤ１、データ処理ブロック２２の出力データＯＤ２、時間多重処理ブロック２３の２つの出力データＯＤ３およびＯＤ４を比較する。この比較により、判定ブロック２４は、データ処理部１２の経年劣化と一時的故障を区別して検出することができる。よって、より高い性能の機能安全機構を有するデータ処理部１２を含んだ集積回路装置１が提供されることができる。
【００７３】
＜１．４．変形例＞
ここまでの記述は、時間多重処理ブロック２３がデータＩＤの計２つの複製を受け取り、かつクロックＣＬＫ２がクロックＣＬＫ１の周期の２倍の周期を有し、かつ時間多重処理ブロック２３が計２つの出力データを出力する例に基づく。第１実施形態は、この例に限られない。時間多重処理ブロック２３が計Ｎ（Ｎは３以上の自然数）個のデータＩＤの複製を受け取るように構成され、かつクロックＣＬＫ２がクロックＣＬＫ１の周期のＸ倍の周期を有し、かつ時間多重処理ブロック２３が計Ｘ個の出力データを出力するように構成されることができる。
【００７４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００７５】
１…集積回路装置、１１…第１回路部、１２…データ処理部、１３…第２回路部、１４…制御部、２１…データ処理ブロック、２２…データ処理ブロック、２３…時間多重処理ブロック、２４…判定ブロック、３１…パラレル・シリアル（ＰＳ）変換ブロック、３２…データ処理ブロック、３３…シリアル・パラレル（ＳＰ）変換ブロック。
【図１】
2020145356.tif 000003
【図２】
2020145356.tif 000004
【図３】
2020145356.tif 000005
【図４】
2020145356.tif 000006
【図５】
2020145356.tif 000007
【図６】
2020145356.tif 000008
【図７】
2020145356.tif 000009
【図８】
2020145356.tif 000010