半導体集積回路は、機能モジュールと、内蔵メモリと、第1バッファメモリと、第2バッファメモリと、第1FIFOメモリと、第2FIFOメモリと、比較器とを具備して、前記半導体集積回路の検査のための多重冗長動作の第1動作の間に前記機能モジュールから出力される第1書き込みデータは前記内蔵メモリと前記第1バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第2動作の間に前記機能モジュールから出力される第2書き込みデータは前記内蔵メモリと前記第2バッファメモリに供給され、前記第1FIFOメモリは前記第1動作の間に前記第1バッファメモリから順次に出力される第1出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、前記第2FIFOメモリは前記第2動作の間に前記第2バッファメモリから順次に出力される第2出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、前記比較器は、前記第1FIFOメモリによって選択され出力される前記所定の出力回数の前記データと前記第2FIFOメモリによって選択され出力される前記所定の出力回数の前記データを比較することを特徴とする半導体集積回路。請求項1において、前記機能モジュールは、第1機能モジュールと第2機能モジュールとを少なくとも含むものであり、前記内蔵メモリは、第1内蔵メモリと第2内蔵メモリとを少なくとも含むものであり、前記第1動作の間に前記第1機能モジュールから出力される前記第1書き込みデータは、前記第1内蔵メモリと前記第1バッファメモリとに供給されるものであり、前記第2動作の間に前記第2機能モジュールから出力される前記第2書き込みデータは、前記第2内蔵メモリと前記第2バッファメモリとに供給されることを特徴とする半導体集積回路。請求項2において、前記第1機能モジュールと前記第2機能モジュールは、それぞれ第1中央処理ユニットと第2中央処理ユニットであることを特徴とする半導体集積回路。請求項2において、前記第1バッファメモリは、前記第1動作の間に順次に前記第1バッファメモリに供給される前記第1書き込みデータの前記複数のデータの第1出力回数をカウント可能とされ、前記第2バッファメモリは、前記第2動作の間に順次に前記第2バッファメモリに供給される前記第2書き込みデータの前記複数のデータの第2出力回数をカウント可能とされたことを特徴とする半導体集積回路。請求項4において、前記半導体集積回路は、前記第1バッファメモリと前記第2バッファメモリと前記第1FIFOメモリと前記第2FIFOメモリに接続された制御部を更に具備して、前記制御部は、前記所定の出力回数の情報を格納可能な第1レジスタと第2レジスタとを含み、前記第1バッファメモリによってカウントされた前記第1出力回数が前記第1レジスタに格納された前記情報と一致することに応答して、前記第1FIFOメモリが前記所定の出力回数の前記データを選択して格納するための第1FIFOライトイネーブル信号を前記制御部が前記第1FIFOメモリに供給可能とされ、前記第2バッファメモリによってカウントされた前記第2出力回数が前記第2レジスタに格納された前記情報と一致することに応答して、前記第2FIFOメモリが前記所定の出力回数の前記データを選択して格納するための第2FIFOライトイネーブル信号を前記制御部が前記第2FIFOメモリに供給可能とされたことを特徴とする半導体集積回路。請求項3において、前記多重冗長動作の前記第1動作と前記第2動作の内容は、前記第1中央処理ユニットと前記第2中央処理ユニットとのいずれか一方で以前に実行されていた通常動作の内容とされることが可能であることを特徴とする半導体集積回路。請求項6において、前記通常動作から前記多重冗長動作への移行は、前記通常動作を実行中の前記第1中央処理ユニットと前記第2中央処理ユニットとのいずれか一方から他方への割り込みによって可能とされたことを特徴とする半導体集積回路。請求項5において、前記第1バッファメモリは、前記第1FIFOメモリに出力される前記第1出力データを格納する第1フリップフロップと、一方の入力端子と他方の入力端子とに前記第1書き込みデータと前記第1フリップフロップの出力端子の第1出力データとがそれぞれ供給される第1演算回路とを含み、前記第1演算回路の出力端子から生成される出力信号は前記第1フリップフロップに格納可能とされ、前記第2バッファメモリは、前記第2FIFOメモリに出力される前記第2出力データを格納する第2フリップフロップと、一方の入力端子と他方の入力端子とに前記第2書き込みデータと前記第2フリップフロップの出力端子の第2出力データとがそれぞれ供給される第2演算回路とを含み、前記第2演算回路の出力端子から生成される出力信号は前記第2フリップフロップに格納可能とされたことを特徴とする半導体集積回路。請求項1乃至請求項8のいずれかにおいて、前記比較器による前記第1FIFOメモリによって出力される前記所定の出力回数の前記データと前記第2FIFOメモリによって出力される前記所定の出力回数の前記データとの比較結果が両方のデータの一致を示す場合には、前記半導体集積回路は正常と判断されて、比較結果が両方のデータの不一致を示す場合には、前記半導体集積回路は異常と判断されることを特徴とする半導体集積回路。請求項1乃至請求項8のいずれかにおいて、前記第1中央処理ユニットは前記第1内蔵メモリに格納された前記通常動作のための命令を実行することに並列して、前記第2中央処理ユニットは前記第12内蔵メモリに格納された前記通常動作のための命令を実行することによって、前記半導体集積回路は多重コアのマイクロコントローラとして動作可能とされたことを特徴とする半導体集積回路。半導体集積回路は、機能モジュールと、内蔵メモリと、第1バッファメモリと、第2バッファメモリと、第1FIFOメモリと、第2FIFOメモリと、比較器とを具備して、前記半導体集積回路の検査のための多重冗長動作の第1動作の間に前記機能モジュールから出力される第1書き込みデータは前記内蔵メモリと前記第1バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第2動作の間に前記機能モジュールから出力される第2書き込みデータは前記内蔵メモリと前記第2バッファメモリに供給され、前記第1FIFOメモリは前記第1動作の間に前記第1バッファメモリから順次に出力される第1出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、前記第2FIFOメモリは前記第2動作の間に前記第2バッファメモリから順次に出力される第2出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、前記比較器は、前記第1FIFOメモリによって選択され出力される前記所定の出力回数の前記データと前記第2FIFOメモリによって選択され出力される前記所定の出力回数の前記データを比較することを特徴とする半導体集積回路の動作方法。請求項11において、前記機能モジュールは、第1機能モジュールと第2機能モジュールとを少なくとも含むものであり、前記内蔵メモリは、第1内蔵メモリと第2内蔵メモリとを少なくとも含むものであり、前記第1動作の間に前記第1機能モジュールから出力される前記第1書き込みデータは、前記第1内蔵メモリと前記第1バッファメモリとに供給されるものであり、前記第2動作の間に前記第2機能モジュールから出力される前記第2書き込みデータは、前記第2内蔵メモリと前記第2バッファメモリとに供給されることを特徴とする半導体集積回路の動作方法。請求項12において、前記第1機能モジュールと前記第2機能モジュールは、それぞれ第1中央処理ユニットと第2中央処理ユニットであることを特徴とする半導体集積回路。請求項12において、前記第1バッファメモリは、前記第1動作の間に順次に前記第1バッファメモリに供給される前記第1書き込みデータの前記複数のデータの第1出力回数をカウント可能とされ、前記第2バッファメモリは、前記第2動作の間に順次に前記第2バッファメモリに供給される前記第2書き込みデータの前記複数のデータの第2出力回数をカウント可能とされたことを特徴とする半導体集積回路の動作方法。請求項14において、前記半導体集積回路は、前記第1バッファメモリと前記第2バッファメモリと前記第1FIFOメモリと前記第2FIFOメモリに接続された制御部を更に具備して、前記制御部は、前記所定の出力回数の情報を格納可能な第1レジスタと第2レジスタとを含み、前記第1バッファメモリによってカウントされた前記第1出力回数が前記第1レジスタに格納された前記情報と一致することに応答して、前記第1FIFOメモリが前記所定の出力回数の前記データを選択して格納するための第1FIFOライトイネーブル信号を前記制御部が前記第1FIFOメモリに供給可能とされ、前記第2バッファメモリによってカウントされた前記第2出力回数が前記第2レジスタに格納された前記情報と一致することに応答して、前記第2FIFOメモリが前記所定の出力回数の前記データを選択して格納するための第2FIFOライトイネーブル信号を前記制御部が前記第2FIFOメモリに供給可能とされたことを特徴とする半導体集積回路の動作方法。請求項13において、前記多重冗長動作の前記第1動作と前記第2動作の内容は、前記第1中央処理ユニットと前記第2中央処理ユニットとのいずれか一方で以前に実行されていた通常動作の内容とされることが可能であることを特徴とする半導体集積回路の動作方法。請求項16において、前記通常動作から前記多重冗長動作への移行は、前記通常動作を実行中の前記第1中央処理ユニットと前記第2中央処理ユニットとのいずれか一方から他方への割り込みによって可能とされたことを特徴とする半導体集積回路の動作方法。請求項15において、前記第1バッファメモリは、前記第1FIFOメモリに出力される前記第1出力データを格納する第1フリップフロップと、一方の入力端子と他方の入力端子とに前記第1書き込みデータと前記第1フリップフロップの出力端子の第1出力データとがそれぞれ供給される第1演算回路とを含み、前記第1演算回路の出力端子から生成される出力信号は前記第1フリップフロップに格納可能とされ、前記第2バッファメモリは、前記第2FIFOメモリに出力される前記第2出力データを格納する第2フリップフロップと、一方の入力端子と他方の入力端子とに前記第2書き込みデータと前記第2フリップフロップの出力端子の第2出力データとがそれぞれ供給される第2演算回路とを含み、前記第2演算回路の出力端子から生成される出力信号は前記第2フリップフロップに格納可能とされたことを特徴とする半導体集積回路の動作方法。請求項11乃至請求項18のいずれかにおいて、前記比較器による前記第1FIFOメモリによって出力される前記所定の出力回数の前記データと前記第2FIFOメモリによって出力される前記所定の出力回数の前記データとの比較結果が両方のデータの一致を示す場合には、前記半導体集積回路は正常と判断されて、比較結果が両方のデータの不一致を示す場合には、前記半導体集積回路は異常と判断されることを特徴とする半導体集積回路の動作方法。請求項11乃至請求項18のいずれかにおいて、前記第1中央処理ユニットは前記第1内蔵メモリに格納された前記通常動作のための命令を実行することに並列して、前記第2中央処理ユニットは前記第12内蔵メモリに格納された前記通常動作のための命令を実行することによって、前記半導体集積回路は多重コアのマイクロコントローラとして動作可能とされたことを特徴とする半導体集積回路の動作方法。本発明者等は本発明に先立って、自動車に搭載可能な高い安全性と高い精度とが必要とされるマイクロコントローラの研究開発に従事した。この本発明に先立った本発明者等による研究開発では、本発明者等は最初に、上記特許文献3に記載されたFIFOを使用して複数のCPUの出力信号の比較器による比較方式を検討した。その理由は、FIFOはデータ圧縮せずに供給されたデータを先入れ先出しの方式で格納して出力するメモリであり、高速の格納処理と高速の出力処理とが可能であるためである。それに対して、圧縮器は線型帰還シフトレジスタや巡回冗長検査等の複雑な圧縮アルゴリズムを使用するので、比較器での比較処理の以前の圧縮処理期間が長くなると言う欠点を有する。一方、マイコンのコアであるCPUは半導体製造プロセスの微細化によって高速高性能とされており、CPUの処理速度は年々向上している。このようにCPUの処理速度が向上されているのに対して、マイコンの故障診断のためのCPUの多重出力比較処理での圧縮器の圧縮処理期間が長いと言う問題は重大な欠点である。それに対して、上記特許文献3に記載されたFIFOを使用する複数のCPUの出力信号の比較器による比較方式は、回路規模や消費電力も小さく、高速の格納処理と高速の出力処理が可能であるので、極めて有益である。しかし、本発明に先立った本発明者等による研究開発によって、CPUの処理速度の向上により故障診断や故障検査の動作期間にCPUからFIFOに大量の書き込みデータが供給されるので、FIFOに空き領域が無くなりCPUの書き込みを停止させるためにウェイト要求信号をFIFOからCPUに出力しなければならないと言う問題が明らかとされた。このウェイト要求信号によってCPUがストールするかウェイトされるので、CPUのデータ処理が低下してしまう。この問題を解消するために、マイコンの故障診断や故障検査の動作期間にCPUを連続動作でなく間欠動作させることにより、CPUからFIFOへの書き込みデータ量を削減することも検討された。しかし、この方法では、CPUからメモリへの書き込みデータが連続せず非連続の離散的なデータとなってしまう。すなわち、マイコンの故障診断や故障検査の動作期間に複数のCPUによって実行されて比較器によって比較される冗長動作の内容は、複数のCPUのいずれか一方でそれ以前に実行されていた通常動作のデータ処理の内容とされる場合には、メモリから通常動作のデータ処理の連続した書き込みデータを読み出すことが不可能となると言う問題が、本発明に先立った本発明者等による検討によって明らかとされた。更にこの問題を解消するために、マイコンの故障診断や故障検査の動作期間にCPUを通常の高速動作でなく診断検査用の低速動作させることによって、CPUからFIFOへの書き込みデータ量を削減することも検討された。しかし、この方法では、CPUの処理速度が通常の高速動作より大幅に低い低速動作となるので、CPUの異常や故障の検出確率が著しく低下すると言う別の問題が本発明者等による検討によって明らかとされた。本発明は、以上のような本発明に先立った本発明者等による検討の結果、なされたものである。従って、本発明の目的とするところは、半導体集積回路の検査のための多重冗長動作の間に、内蔵メモリには連続した書き込みデータを格納可能とする一方、多重冗長動作の出力の比較器による比較のためのFIFOが書き込みデータによって容易に満杯となることを軽減することにある。本発明の他の目的とするところは、異常や故障の検出確率を向上することにある。本発明の前記目的並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。すなわち、本発明の代表的な実施の形態による半導体集積回路は、機能モジュールと、内蔵メモリと、第1バッファメモリと、第2バッファメモリと、第1FIFOメモリと、第2FIFOメモリと、比較器とを具備する。前記半導体集積回路の検査のための多重冗長動作の第1動作の間に前記機能モジュールから出力される第1書き込みデータは前記内蔵メモリと前記第1バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第2動作の間に前記機能モジュールから出力される第2書き込みデータは前記内蔵メモリと前記第2バッファメモリに供給される。前記第1FIFOメモリは前記第1動作の間に前記第1バッファメモリから順次に出力される第1出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。前記第2FIFOメモリは前記第2動作の間に前記第2バッファメモリから順次に出力される第2出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。前記比較器は、前記第1FIFOメモリによって選択され出力される前記所定の出力回数の前記データと前記第2FIFOメモリによって選択され出力される前記所定の出力回数の前記データを比較することを特徴とするものである。本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。すなわち、代表的な本発明によれば、半導体集積回路の検査のための多重冗長動作の間に内蔵メモリには連続した書き込みデータを格納可能とする一方、多重冗長動作の出力の比較器による比較のためのFIFOが書き込みデータによって容易に満杯となることを軽減することができる。1.実施の形態の概要まず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号は、それが付された構成要素の概念に含まれるものを例示するに過ぎない。1本発明の代表的な実施の形態による半導体集積回路は、機能モジュールと、内蔵メモリと、第1バッファメモリと、第2バッファメモリと、第1FIFOメモリと、第2FIFOメモリと、比較器とを具備する。前記半導体集積回路の検査のための多重冗長動作の第1動作の間に前記機能モジュールから出力される第1書き込みデータは前記内蔵メモリと前記第1バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第2動作の間に前記機能モジュールから出力される第2書き込みデータは前記内蔵メモリと前記第2バッファメモリに供給される。前記第1FIFOメモリは前記第1動作の間に前記第1バッファメモリから順次に出力される第1出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。前記第2FIFOメモリは前記第2動作の間に前記第2バッファメモリから順次に出力される第2出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。前記比較器は、前記第1FIFOメモリによって選択され出力される前記所定の出力回数の前記データと前記第2FIFOメモリによって選択され出力される前記所定の出力回数の前記データを比較することを特徴とするものである。前記実施の形態によれば、半導体集積回路の検査のための多重冗長動作の間に内蔵メモリには連続した書き込みデータを格納可能とする一方、多重冗長動作の出力の比較器による比較のためのFIFOが書き込みデータによって容易に満杯となることを軽減することができる。好適な実施の形態では、前記機能モジュールは、第1機能モジュールと第2機能モジュールとを少なくとも含むものである。前記内蔵メモリは、第1内蔵メモリと第2内蔵メモリとを少なくとも含むものである。前記第1動作の間に前記第1機能モジュールから出力される前記第1書き込みデータは、前記第1内蔵メモリと前記第1バッファメモリとに供給されるものである。前記第2動作の間に前記第2機能モジュールから出力される前記第2書き込みデータは、前記第2内蔵メモリと前記第2バッファメモリとに供給されることを特徴とするものである。他の好適な実施の形態では、前記第1機能モジュールと前記第2機能モジュールは、それぞれ第1中央処理ユニットと第2中央処理ユニットであることを特徴とするものである。更に他の好適な実施の形態では、前記第1バッファメモリは、前記第1動作の間に順次に前記第1バッファメモリに供給される前記第1書き込みデータの前記複数のデータの第1出力回数をカウント可能とされる。前記第2バッファメモリは、前記第2動作の間に順次に前記第2バッファメモリに供給される前記第2書き込みデータの前記複数のデータの第2出力回数をカウント可能とされたことを特徴とするものである。より好適な実施の形態による半導体集積回路は、前記第1バッファメモリと前記第2バッファメモリと前記第1FIFOメモリと前記第2FIFOメモリに接続された制御部を更に具備する。前記制御部は、前記所定の出力回数の情報を格納可能な第1レジスタと第2レジスタとを含む。前記第1バッファメモリによってカウントされた前記第1出力回数が前記第1レジスタに格納された前記情報と一致することに応答して、前記第1FIFOメモリが前記所定の出力回数の前記データを選択して格納するための第1FIFOライトイネーブル信号を前記制御部が前記第1FIFOメモリに供給可能とされる。前記第2バッファメモリによってカウントされた前記第2出力回数が前記第2レジスタに格納された前記情報と一致することに応答して、前記第2FIFOメモリが前記所定の出力回数の前記データを選択して格納するための第2FIFOライトイネーブル信号を前記制御部が前記第2FIFOメモリに供給可能とされたことを特徴とするものである。他のより好適な実施の形態では、前記多重冗長動作の前記第1動作と前記第2動作の内容は、前記第1中央処理ユニットと前記第2中央処理ユニットとのいずれか一方で以前に実行されていた通常動作の内容とされることが可能であることを特徴とするものである。更に他のより好適な実施の形態では、前記通常動作から前記多重冗長動作への移行は、前記通常動作を実行中の前記第1中央処理ユニットと前記第2中央処理ユニットとのいずれか一方から他方への割り込みによって可能とされたことを特徴とするものである。別のより好適な実施の形態では、前記第1バッファメモリは、前記第1FIFOメモリに出力される前記第1出力データを格納する第1フリップフロップと、一方の入力端子と他方の入力端子とに前記第1書き込みデータと前記第1フリップフロップの出力端子の第1出力データとがそれぞれ供給される第1演算回路とを含み、前記第1演算回路の出力端子から生成される出力信号は前記第1フリップフロップに格納可能とされる。前記第2バッファメモリは、前記第2FIFOメモリに出力される前記第2出力データを格納する第2フリップフロップと、一方の入力端子と他方の入力端子とに前記第2書き込みデータと前記第2フリップフロップの出力端子の第2出力データとがそれぞれ供給される第2演算回路とを含み、前記第2演算回路の出力端子から生成される出力信号は前記第2フリップフロップに格納可能とされたことを特徴とするものである。具体的な実施の形態では、前記比較器による前記第1FIFOメモリによって出力される前記所定の出力回数の前記データと前記第2FIFOメモリによって出力される前記所定の出力回数の前記データとの比較結果が両方のデータの一致を示す場合には、前記半導体集積回路は正常と判断されて、比較結果が両方のデータの不一致を示す場合には、前記半導体集積回路は異常と判断されることを特徴とするものである。最も具体的な実施の形態では、前記第1中央処理ユニットは前記第1内蔵メモリに格納された前記通常動作のための命令を実行することに並列して、前記第2中央処理ユニットは前記第12内蔵メモリに格納された前記通常動作のための命令を実行することによって、前記半導体集積回路は多重コアのマイクロコントローラとして動作可能とされたことを特徴とするものである。2本発明の別の観点の代表的な実施の形態は、機能モジュールと、内蔵メモリと、第1バッファメモリと、第2バッファメモリと、第1FIFOメモリと、第2FIFOメモリと、比較器とを具備する半導体集積回路の動作方法である。前記半導体集積回路の検査のための多重冗長動作の第1動作の間に前記機能モジュールから出力される第1書き込みデータは前記内蔵メモリと前記第1バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第2動作の間に前記機能モジュールから出力される第2書き込みデータは前記内蔵メモリと前記第2バッファメモリに供給される。前記第1FIFOメモリは前記第1動作の間に前記第1バッファメモリから順次に出力される第1出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。前記第2FIFOメモリは前記第2動作の間に前記第2バッファメモリから順次に出力される第2出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。前記比較器は、前記第1FIFOメモリによって選択され出力される前記所定の出力回数の前記データと前記第2FIFOメモリによって選択され出力される前記所定の出力回数の前記データを比較することを特徴とするものである。前記実施の形態によれば、半導体集積回路の検査のための多重冗長動作の間に内蔵メモリには連続した書き込みデータを格納可能とする一方、多重冗長動作の出力の比較器による比較のためのFIFOが書き込みデータによって容易に満杯となることを軽減することができる。2.実施の形態の詳細実施の形態について更に詳述する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。[実施の形態1]《デュアルコアマイコンの構成》図1は、本発明の実施の形態1によるデュアルコアマイコンMCU1の構成を示す図である。図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1は、2つのCPUA2、CPUB6の出力を比較できるようにしたものである。尚、図1に示すデュアルコアマイコンMCU1の内部回路は、半導体集積回路の半導体チップ内部に集積化されている。第1中央処理ユニットとしてのCPUA2は命令を実行することによって演算やデータ転送等の処理を実行するプロセッサであり、第1内蔵メモリとしてのメモリA3はCPUA2が実行する命令および処理するデータを記憶する。第1CPUバスとしてのCPUAバス4はCPUA2がメモリA3等のデバイスをアクセスするためのバスであり、第1バスブリッジとしてのブリッジA5はCPUA2がシステムバス10を経由してその他のデバイスをアクセスする場合にCPUAバス4とシステムバス10とを接続制御するコントローラである。第2中央処理ユニットとしてのCPUB6は命令を実行することによって演算やデータ転送等の処理を実行するプロセッサであり、第2内蔵メモリとしてのメモリB7はCPUB6が実行する命令および処理するデータを記憶する。第2CPUバスとしてのCPUBバス8はCPUB6がメモリB7等のデバイスをアクセスするためのバスであり、第2バスブリッジとしてのブリッジB9はCPUB6がシステムバス10を経由してその他のデバイスをアクセスする場合にCPUBバス8とシステムバス10とを接続制御するコントローラである。第1バッファメモリとしてのバッファA11は、CPUA2が特定のアドレス空間に出力する書き込みデータを保持して、その出力回数をカウントする。第2バッファメモリとしてのバッファB12も、CPUB6が特定のアドレス空間に出力する書き込みデータを保持して、その出力回数をカウントする。第1FIFOメモリとしてのFIFOA13はバッファA11の出力データ1101を保持する一方、第2FIFOメモリとしてのFIFOB14はバッファB12の出力データ1201を保持する。ここでの特定のアドレス空間と言う技術用語は、CPUA2、B6から出力される書き込みデータをメモリA3、B7とバッファA11、B12とに二重書き込みするためのアドレス空間を意味している。比較器15は、FIFOA13の出力データ1300とFIFOB14の出力データ1400とを比較する。制御部16はシステムバス10に接続されており、CPUA2およびCPUB6からレジスタ設定可能とされている。制御部16の出力信号1600はバッファA11におけるカウンタのクリア信号およびデータ保持とカウントの許可信号である一方、制御部16の出力信号1601はバッファB12におけるカウンタのクリア信号およびデータ保持とカウントの許可信号である。制御部16にはバッファA11から出力されるカウント信号1100とバッファB12から出力されるカウント信号1200が供給され、制御部16はFIFOA13、FIFOB14の制御信号1602、1603を出力する。また、制御部16には比較器15からの比較結果信号1500が供給され、その比較結果は制御部16内部のレジスタに保持される。比較結果が不一致だった場合には、制御部16は、割り込み発生回路17に割り込み要求信号1604を出力することができる。割り込み発生回路17は、システムバス10に接続されており、CPUA2およびCPUB6からレジスタ設定可能とされている。この割り込み発生回路17には、割り込み要求端子100から割り込み要求が供給可能とされている。図1には示していないが、デュアルコアマイコンMCU1にはA/D変換器、タイマ、シリアル通信等の機能モジュールが内蔵され、これら機能モジュールからの割り込み要求も割り込み発生回路17に供給可能とされている。割り込み発生回路17では複数の割り込み要求に関して優先順位が設定されており、最も優先順位の高い割り込み要求が選択されて、割り込み発生回路17からCPUA2への割り込み要求1700とCPUB6への割り込み要求1701とが出力される。《デュアルコアマイコンでの通常動作》図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1は高性能を実現するために、2個のCPUA2、B6にそれぞれ独立したデータ処理を並列に実行させる。2個のCPUA2、B6による並列処理結果は、2個のメモリA3、B7に並列に格納可能である。更に2個のメモリA3、B7のデータは、2個のブリッジA5、B9を介してシステムバス10に転送されることも可能である。《デュアルコアマイコンでの冗長動作》図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1は高信頼性を実現するために、2個のCPUA2、B6に同一のデータ処理を実行させその処理結果の不一致を検出して故障を検出するようにした冗長動作が実行される。この冗長動作のために、2個のCPUA2、B6は同一のオペランドデータに関して同一の冗長タスクプログラムを実行する。図1のデュアルコアマイコンMCU1に故障が存在せず2個のCPUA2、B6が正常に動作している場合には、2個のCPUA2、B6から特定のアドレス空間に出力されメモリA3、B7とバッファA11、B12に二重書き込みされる書き込みデータは同一となる。しかし、図1のデュアルコアマイコンMCU1に故障が発生して2個のCPUA2、B6の一方が異常動作している場合には、2個のCPUA2、B6から特定のアドレス空間に出力されメモリA3、B7とバッファA11、B12とに二重書き込みされる書き込みデータは不一致となり、故障検出が可能となる。2個のFIFOA13、B14は、2個のバッファA11、B12を経由して2個のCPUA2、B6から冗長タスク演算結果として順次に出力され供給される複数のデータから所定の出力回数のデータのみを選択して格納する一方、それ以外の出力回数のデータは非選択として破棄するものである。2個のFIFOA13、B14によって選択されて出力される所定の出力回数のデータは、比較器15によって比較される。比較器15による比較結果が一致する場合には、図1のデュアルコアマイコンMCU1に故障が存在しないと判定されて、比較器15による比較結果が不一致の場合には、図1のデュアルコアマイコンMCU1に故障が存在すると判定される。従って、高性能の2個のCPUA2、B6から順次に出力される複数のデータによって2個のFIFOA13、B14に短時間に空き領域がなくなり、2個のCPUA2、B6が容易にストールするかウェイトされると言う問題が解消されることが可能となる。《バッファメモリの構成》図2は、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれるバッファメモリとしてのバッファA11、B12の構成を示す図である。バッファA11、B12には、CPUAバス4、CPUBバス8からライトデータWDとレディ信号RDYとコマンド信号CMDとアドレス信号Aが供給され、制御部16からクロック信号CLKとカウントイネーブル信号CNEとカウンタリセット信号CNRとパワーオンリセット信号RSTとが供給される。デコーダ1110には、レディ信号RDYとコマンド信号CMDとアドレス信号Aとが供給される。コマンド信号CMDが有効であることを意味するハイレベル1のレディ信号RDYとライトコマンドであるコマンド信号CMDとバッファA11、B12をアクセスするアドレス信号Aとに応答して、デコーダ1110は、ハイレベル1のライトイネーブル信号WEを生成する。デコーダ1110から生成されるライトイネーブル信号WEは、クロックCLKの立ち上がりに応答してフリップフロップ1120に供給される。フリップフロップ1120の出力信号がハイレベル1でかつカウントイネーブル信号CNEがハイレベル1の場合には、AND回路1130の出力から生成されるバッファライトイネーブル信号BWEがハイレベル1となる。バッファライトイネーブル信号BWEがハイレベル1の場合に、ライトデータWDはクロック信号CLKの立ち上がりに応答してフリップフロップ1150に格納される。フリップフロップ1150は、バッファ出力信号BOを生成する。バッファライトイネーブル信号BWEがハイレベル1の場合には、カウンタ1160はクロック信号CLKをカウントする。カウンタ1160は、バッファカウント信号BCを生成する。制御部16からのパワーオンリセット信号RSTとカウンタリセット信号CNRとはOR回路1140で論理和され、OR回路1140の出力によってカウンタ1160がリセットされる。図1と図2に示した本発明の実施の形態1によるデュアルコアマイコンMCU1では、例えばバッファメモリとしてのバッファA11、B12のアドレスは固定されたものである。しかし、アドレス設定レジスタに、例えば開始アドレスから終了アドレスまでのアドレス範囲を、CPUA2、CPUB6によって設定可能とすることも可能である。従って、アドレス設定レジスタに設定されたアドレス範囲のアドレス信号Aのデコーダ1110でのデコードによって、任意のメモリアドレスのメモリA3、B7への書き込みデータをバッファA11、B12にバッファ記憶することが可能である。《バッファメモリの動作》図3は、本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれる図2に示したバッファメモリとしてのバッファA11、B12の動作を説明する図である。図3に示したように、ハイレベル1のレディ信号RDYはコマンド信号CMDの有効を示し、ローレベル0のレディ信号RDYはコマンド信号CMDの無効を示す。コマンド信号CMDには、Nと、Rと、Wの3種類がある。アドレス信号Aは、コマンド信号CMDと同様にクロック信号CLKによるクロックサイクルでCPUA2またはCPUB6からCPUAバス4またはCPUバス8に出力される。図3に示した例では、クロック信号CLKの1番目と2番目と7番目と9番目と14番目とで、CPUA2またはCPUB6から読み出し動作Rのコマンド信号CMDが出力されている。更に、クロック信号CLKの1番目と2番目と7番目と8番目と14番目とで、CPUA2またはCPUB6から、アドレス信号A1とアドレス信号A2とアドレス信号A5とアドレス信号A6とアドレス信号A9がそれぞれ出力されている。従って、クロック信号CLKの2番目と3番目と9番目と10番目と15番目とで、データD1とデータD2とデータD5とデータD6とデータD9との各リードデータRDが、メモリA3またはメモリB7からCPUAバス4またはCPUバス8を介してCPUA2またはCPUB6に読み出される。更に図3に示した例では、クロック信号CLKの5番目と6番目と10番目と13番目とで、CPUA2またはCPUB6から書き込み動作Wのコマンド信号CMDとが出力されている。更にクロック信号CLKの5番目と6番目と10番目と13番目とで、CPUA2またはCPUB6から、アドレス信号A3とアドレス信号A4とアドレス信号A7とアドレス信号A8とがそれぞれ出力されている。従って、クロック信号CLKの6番目と7番目と14番目とで、データD3とデータD4とデータD8との各ライトデータWDが、CPUA2またはCPUB6からCPUAバス4またはCPUバス8を介してメモリA3またはメモリB7とバッファA11またはバッファB12とに書き込まれる。尚、クロック信号CLKの10番目のアドレス信号A7は、メモリA3またはメモリB7とバッファA11またはバッファB12をアクセスするメモリアドレス以外のアドレスとなっている。例えば、クロック信号CLKの10番目のアドレス信号A7は、メモリマップドI/O等のその他のデバイスをアクセスするためのものである。従って、他のデバイスをアクセスするためのアドレス信号A7以外のアドレス信号A3とアドレス信号A4とアドレス信号A8とに応答してデコーダ1110は、クロック信号CLKの5番目と6番目との期間とクロック信号CLKの13番目の期間とに、ハイレベル1のライトイネーブル信号WEをそれぞれ生成する。フリップフロップ1120はデコーダ1110の出力から生成されたライトイネーブル信号WEをクロック信号CLKの1クロック分遅延するので、この1クロック分遅延されたハイレベル1のバッファライトイネーブル信号BWEがAND回路1130の出力から生成される。その結果、ハイレベル1のバッファライトイネーブル信号BWEに応答して、データD3とデータD4とデータD8の各ライトデータWDがフリップフロップ1150に格納されるので、フリップフロップ1150の出力からデータD3とデータD4とデータD8とのバッファ出力信号BOが生成される。またカウンタ1160はハイレベル1のバッファライトイネーブル信号BWEとクロック信号CLKに応答して、バッファ出力信号BOの出力回数としてのバッファカウント信号BCを出力する。《FIFOメモリの構成》図4は、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれるFIFOメモリとしてのFIFOA13、B14の構成を示す図である。図4に示したようにFIFOメモリとしてのFIFOA13、B14は、4段のフリップフロップ1310、1320、1330、1340と、デコーダ1350と、セレクタ1360とから構成されている。4段のフリップフロップ1310~1340のデータ入力端子には、図2に示したバッファメモリとしてのバッファA11、B12から生成されるバッファ出力信号BOが供給される。デコーダ1350に制御部16からFIFOライトイネーブル信号FWEとFIFOライト番号信号FWNとが供給され、デコーダ1350からライトイネーブル信号WE0、WE1、WE2、WE3が生成される。クロック信号CLKの立ち上がりのタイミングでデコーダ1350からの複数のライトイネーブル信号WE0、WE1、WE2、WE3のいずれかの信号がハイレベル1となることによって、4段のフリップフロップ1310、1320、1330、1340のいずれかにバッファ出力信号BOが格納されるかが選択される。制御部16からFIFOリード番号信号FRNがセレクタ1360に供給され、FIFOリード番号信号FRNが示す番号のフリップフロップ1310、1320、1330、1340の出力信号FO0、FO1、FO2、FO3のいずれかが選択されてFIFO出力信号FOとなる。《FIFOの動作》図5は、本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれる図4に示したFIFOメモリとしてのFIFOA13、B14の動作を説明する図である。図5は、バッファA11、B12からFIFOA13、B14に順次に供給される4個のバッファ出力信号BOのうち最後の1個だけが、FIFOA13、B14に格納されることを示している。すなわち、順次に供給される4個のバッファ出力信号BOとしてのデータ入力信号D1、D2、D3、D4のうち最後の1個のデータ入力信号D4だけがFIFOA13、B14に格納され、その後順次に供給される4個のバッファ出力信号BOとしてのデータ入力信号D5、D6、D7、D8のうち最後の1個のデータ入力信号D8だけがFIFOA13、B14に格納される。図5に示すように、FIFOライト番号信号FWNとFIFOリード番号信号FRNとは、最初は制御部16によって初期値0に設定されている。8番目のクロック信号CLKの立ち上がりのタイミングで制御部16によってFIFOライトイネーブル信号FWEがハイレベル1に制御されるので、4個目のデータ入力信号D4が9番目のクロック信号CLKの立ち上がりのタイミングにて1段目のフリップフロップ1310に格納される。この時には、FIFOリード番号信号FRNが初期値0に設定されているので、1段目のフリップフロップ1310の出力信号FO0がセレクタ1360によって選択されてFIFO出力信号FOには4個目のデータ入力信号D4が出力される。一方、9番目のクロック信号CLKの立ち上がりのタイミングでの1段目のフリップフロップ1310への4個目のデータ入力信号D4の格納に応答して、制御部16はFIFOライト番号信号FWNを初期値0から次の更新値1に変更する。FIFOメモリとしての2個のFIFOA13、FIFOB14に同一の4個目のデータ入力信号D4が格納されると、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1内部の比較器15によって2個のFIFOA13、FIFOB14の両方のFIFO出力信号FOの比較が実行される。この比較が実行された後には、2個のFIFOA13、FIFOB14に格納された4個目のデータ入力信号D4は不要になる。図5に示した例では、8番目のクロック信号CLKの立ち上がりのタイミングで2個のFIFOA13、FIFOB14の一方に既に4個目のデータ入力信号D4が格納され、11番目のクロック信号CLKの立ち上がりのタイミングで2個のFIFOA13、FIFOB14の他方に4個目のデータ入力信号D4が格納され、比較器15によって2個のFIFOA13、FIFOB14の両方のFIFO出力信号FOの比較が実行される。その結果、12番目のクロック信号CLKの立ち上がりのタイミング以降では、1段目のフリップフロップ1310中には有効なデータ入力信号が格納されていないので、図5の網掛けに示すようにFIFO出力信号FOは不定となる。更に、比較器15による2個のFIFOA13、FIFOB14のFIFO出力信号FOの比較実行に応答して、制御部16はFIFOリード番号信号FRNを初期値0から次の更新値1に変更する。更に、図5に示したように、13番目のクロック信号CLKの立ち上がりのタイミングで制御部16によってFIFOライトイネーブル信号FWEがハイレベル1に制御されるので、8個目のデータ入力信号D8が14番目のクロック信号CLKの立ち上がりのタイミングにて2段目のフリップフロップ1320に格納される。このように8個目のデータ入力信号D8が2段目のフリップフロップ1320に格納されるのは、制御部16によってFIFOライト番号信号FWNを初期値0から更新値1に変更されているためである。この時には、FIFOリード番号信号FRNが更新値1に設定されているので、2段目のフリップフロップ1320の出力信号FO1がセレクタ1360によって選択されてFIFO出力信号FOには8個目のデータ入力信号D8が出力される。《比較器の構成》図6は、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれる比較器15の構成を示す図である。図6に示したように、比較器15はデジタル比較器1510を含み、デジタル比較器1510の一方の入力端子と他方の入力端子にはFIFOA13のFIFO出力信号FOAとFIFOB14のFIFO出力信号FOBとがそれぞれ供給され、デジタル比較器1510の出力端子から比較出力信号COが生成される。従って、FIFOA13のFIFO出力信号FOAとFIFOB14のFIFO出力信号FOBとが一致する場合には比較出力信号COはローレベル1となる一方、FIFOA13のFIFO出力信号FOAとFIFOB14のFIFO出力信号FOBとが不一致の場合には比較出力信号COはハイレベル1となる。《比較器の動作》図7は、本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれる図6に示した比較器15の動作を説明する図である。図7に示したように、FIFOA13のFIFO出力信号FOAとして、5番目から7番目までのクロック信号CLKの期間で4個目のデータ入力信号D4が出力され、10番目から13番目までのクロック信号CLKの期間で8個目のデータ入力信号D8が出力され、それ以外の期間では不定となる。一方、FIFOB14のFIFO出力信号FOBとして、7番目のクロック信号CLKの期間で4個目のデータ入力信号D4が出力され、13番目のクロック信号CLKの期間で他の8個目のデータ入力信号D8’が出力され、それ以外の期間では不定となる。その結果、7番目のクロック信号CLKの期間でローレベル0の比較出力信号COが生成され、13番目のクロック信号CLKの期間でハイレベル1の比較出力信号COが生成され、それ以外の期間では比較出力信号COは無効である。《制御部の構成》図8は、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれる制御部16の構成を示す図である。図8に示すように、制御部16は、デコーダ1614と、比較制御レジスタ1610と、第1比較制御レジスタ1611と、第2比較制御レジスタ1612と、比較状態レジスタ1613と、3入力AND回路1615と、2入力AND回路1616と、第1制御部1626と、第2制御部1636等によって構成されている。図9は、本発明の実施の形態1によるデュアルコアマイコンMCU1の制御部16に含まれる図8に示した比較制御レジスタ1610の構成を示す図である。図9に示すように、比較制御レジスタ1610のビット7~0は比較サイクルCMPCYCであり、バッファA11、B12から順次に生成される複数個のバッファ出力信号BOが何個ごとにFIFOA13、14に保持され、何個ごとに比較器15によって比較されるかを設定する。例えば、図9のビット7~0の比較サイクルCMPCYCでは、オール0のH00は比較サイクル256を示す一方、オール0を除外した値である設定値H01~HFFが比較サイクル1~255を示すようにされる。尚、図9に示した比較制御レジスタ1610のビット7~0での比較サイクルCMPCYCの設定値は、システムバス10からのライトデータWDの値によって決定されることが可能である。図9の比較制御レジスタ1610のビット8は比較イネーブル信号CMPENであり、例えば、ローレベル0は比較禁止を示し、ハイレベル1は比較許可を示す。図9の比較制御レジスタ1610のビット9は割り込みイネーブル信号INTENであり、例えばローレベル0は割り込み禁止を示し、ハイレベル1は割り込み許可を示す。尚、図9において、比較制御レジスタ1610のビット15~10は、予約ビットRESERVEDである。図10は、本発明の実施の形態1によるデュアルコアマイコンMCU1の制御部16に含まれる図8に示した第1比較制御レジスタ1611、第2比較制御レジスタ1612の構成を示す図である。図10に示したように、ビット0はカウントイネーブル信号CNTENであり、第1比較制御レジスタ1611の場合にはCPUA2の出力データをバッファA11に保持してカウントするか否かを設定して、第2比較制御レジスタ1612の場合にはCPUB6の出力データをバッファB12に保持してカウントするか否かを設定する。例えばローレベル0で保持とカウントとを実行せず、ハイレベル1で保持とカウントとを実行するようにする。図10のビット1はカウントリセット信号CNTRSTであり、第1比較制御レジスタ1611の場合にはバッファA11のカウンタリセットを実行する一方、第2比較制御レジスタ1612の場合にはバッファB12のカウンタリセットを実行する。例えば、ローレベル0でバッファのカウンタリセットを実行せず、ハイレベル1でバッファのカウンタリセットを実行する。CNTRSTは書き込んだ値を保持せず、ハイレベル1が書き込まれることを検出してバッファA11およびバッファB12のカウンタリセットを行う。尚、図10でも、ビット15~2は、予約ビットRESERVEDである。図11は、本発明の実施の形態1によるデュアルコアマイコンMCU1の制御部16に含まれる図8に示した比較状態レジスタ1613の構成を示す図である。図11に示したように、比較状態レジスタ1613のビット0は比較エラー信号CMPERRであり、例えばローレベル0は比較エラー無しを示す一方、ハイレベル1は比較エラー有りを示すものとする。尚、このビット0の比較エラー信号CMPERRとしてハイレベル1が書き込まれると、その後の比較器15による比較結果が一致してもローレベル0がこのビット0に書き込まれることはない。尚、図11でも、ビット15~1は、予約ビットRESERVEDである。図8に戻ると、システムバス10のレディ信号RDYとコマンド信号CMDとアドレス信号Aとはデコーダ1614よってデコードされ、比較制御レジスタ1610、第1比較制御レジスタ1611、第2比較制御レジスタ1612、比較状態レジスタ1613へのライトデータWDの書き込み制御が実行される。特に制御部16の比較制御レジスタ1610と第1比較制御レジスタ1611と第2比較制御レジスタ1612と比較状態レジスタ1613とに書き込まれる種々のライトデータWDは、システムバス10を介してデュアルコアマイコンMCU1のオンチップの内蔵不揮発性メモリから供給されることが可能であり、またシステムバス10とダイレクトメモリアクセスコントローラとを介して、マザーボードに搭載されたオフチップの外部不揮発性メモリから供給されることも可能である。尚、図8には示されていないが、比較制御レジスタ1610、第1比較制御レジスタ1611、第2比較制御レジスタ1612、比較状態レジスタ1613のシステムバス10への読み出し制御を実行して、リードデータRDをシステムバス10へ出力する機能を追加することも可能である。また比較制御レジスタ1610からの割り込みイネーブル信号INTENと比較状態レジスタ1613からの比較エラー信号CMPERRとは2入力AND回路1616で論理積され、2入力AND回路1616の出力から割り込み発生回路17への比較エラー割り込み信号C_INTREQが生成される。また第1比較制御レジスタ1611は、バッファA11へ供給されるカウントイネーブル信号CNEAとカウンタリセット信号CNRAとを生成する。更に第2比較制御レジスタ1612は、バッファB12へ供給されるカウントイネーブル信号CNEBとカウンタリセット信号CNRBとを生成する。更に図8に示した制御部16では、FIFOカウンタとしてのレジスタ1620とレジスタ1621とレジスタ1622とレジスタ1623は、バッファA11から順次に生成されるデータの何個目のデータがFIFOA13のフリップフロップ1310とフリップフロップ1320とフリップフロップ1330とフリップフロップ1340とにそれぞれ格納されるかを示すデータを保持するものである。レジスタ1624は、FIFOA13のフリップフロップ1310、1320、1330、1340の出力信号FO0、FO1、FO2、FO3の状態を保持する。レジスタ1625は、次にFIFOA13に保持されるべきバッファ出力信号BOがバッファA11から何個目に生成されるかの情報を保持する。制御部1626は、上述したレジスタ1620、1621、1622、1623、1624、1625の制御を実行する。制御部1626は比較制御レジスタ1610から比較イネーブル信号CMPENと比較サイクルCMPCYCを入力して、バッファA11からバッファカウント信号BCAを入力する。まず、比較制御レジスタ1610に書き込みが実行されると、比較サイクルCMPCYCがレジスタ1625にコピーされる。制御部1626はバッファカウント信号BCAをレジスタ1625の内容と比較して、両者が一致するとFIFOカウンタとしてのレジスタ1620、1621、1622、1623の中からレジスタ1624によってデータを含まないと最初に示されたレジスタにバッファカウント信号BCAが格納される。また同時に制御部1626は、FIFOA13へのFIFOライトイネーブル信号FWEAとFIFOライト番号信号FWNAとを出力して、FIFOA13にバッファA11から供給されるバッファ出力信号BOAを書き込む。また制御部1626は、その時点でのバッファカウント信号BCAの値と比較サイクルCMPCYCの値との加算値をレジスタ1625に書き込むものである。更に図8に示した制御部16では、FIFOカウンタとしてのレジスタ1630とレジスタ1631とレジスタ1632とレジスタ1633は、バッファB12から順次に生成されるデータの何個目のデータがFIFOB14のフリップフロップ1310とフリップフロップ1320とフリップフロップ1330とフリップフロップ1340とにそれぞれ格納されるかを示すデータを保持するものである。レジスタ1634は、FIFOB14のフリップフロップ1310、1320、1330、1340の出力信号FO0、FO1、FO2、FO3の状態を保持する。レジスタ1635は、次にFIFOB14に保持されるべきバッファ出力信号BOがバッファB12から何個目に生成されるかの情報を保持する。制御部1636は、上述したレジスタ1630、1631、1632、1633、1634、1635の制御を実行する。制御部1636は比較制御レジスタ1610から比較イネーブル信号CMPENと比較サイクルCMPCYCを入力して、バッファB12からバッファカウント信号BCBを入力する。まず、比較制御レジスタ1610に書き込みが実行されると、比較サイクルCMPCYCがレジスタ1635にコピーされる。制御部1636はバッファカウント信号BCBをレジスタ1635の内容と比較して、両者が一致するとFIFOカウンタとしてのレジスタ1630、1631、1632、1633の中からレジスタ1634によってデータを含まないと最初に示されたレジスタにバッファカウント信号BCBが格納される。また同時に制御部1636は、FIFOB14へのFIFOライトイネーブル信号FWEBとFIFOライト番号信号FWNBとを出力して、FIFOB14にバッファB12から供給されるバッファ出力信号BOBを書き込む。また制御部1636は、その時点でのバッファカウント信号BCBの値と比較サイクルCMPCYCの値との加算値をレジスタ1635に書き込むものである。FIFOA13がデータで満杯になった場合には、バッファカウント信号BCAがレジスタ1625の内容と同一となったとしても、バッファA11から供給されるバッファ出力信号BOAをFIFOA13に書き込むことができない。一方、FIFOA13にデータの書き込みが実行されて、その後にFIFOB14に同一のデータ書き込みが実行されると、比較器15による比較が実行されてFIFOA13に空きができる。その時点のバッファカウント信号BCAが空いたFIFOカウンタに書き込まれ、バッファカウント信号BCAの値と比較サイクルCMPCYCの値との加算値がレジスタ1625に書き込まれる。また、その時点のバッファ出力信号BOAが、FIFOA13に書き込まれる。FIFOB14がデータで満杯になった場合も、同様に書き込みが不可能となる。このようにFIFOB14が満杯になると、レジスタ1635に事前に設定した比較サイクルCMPCYCの整数倍となるバッファB12からの所定の個数番目のバッファ出力信号BOをFIFOB14に書き込めなくなってしまう。FIFOB14がデータで満杯になる以前にFIFOB14にデータの書き込みが実行されて、その後にFIFOA13に同一のデータ書き込みが実行されると、比較器15による比較が実行されてFIFOA13、FIFOB14に空きができる。従って、ようやくこのFIFOB14の空きに、バッファB12からのバッファ出力信号BOがFIFOB14に書き込まれることが可能となる。このように、FIFOB14では比較サイクルCMPCYCの整数倍毎のバッファB12からのバッファ出力信号BOBの書き込みが中断されるので、バッファ出力信号BOBの書き込み個数のスキップが発生する。従って、このスキップが発生した場合には、FIFOB14からFIFOA13へスキップの発生を通知する必要がある。スキップの発生が通知されたFIFOA13は、スキップに従ってFIFOA13のFIFOカウンタの内容を更新する。FIFOA13でバッファ出力信号BOAの書き込み個数のスキップが発生した場合には、FIFOA13からFIFOB14へスキップの発生を通知する必要がある。スキップの発生が通知されたFIFOB14は、スキップに従ってFIFOA13のFIFOカウンタの内容を更新する。すなわち、内部信号1627はFIFOA13からFIFOB14へのスキップの発生を通知するために使用され、内部信号1637はFIFOB14からFIFOA13へのスキップの発生を通知するために使用される。制御部1626は、FIFOA13に有効なデータがない場合には比較イネーブル信号CEAをローレベル0に設定する一方、FIFOA13に有効なデータがある場合にはハイレベル1に設定する。同様に、制御部1636は、FIFOB14に有効なデータがない場合には比較イネーブル信号CEBをローレベル0に設定する一方、FIFOB14に有効なデータある場合にはハイレベル1に設定する。比較イネーブル信号CEAと比較イネーブル信号CEBとがハイレベル1になると、比較器15の比較出力信号COが3入力AND回路1615を介して比較状態レジスタ1613の比較エラー信号CMPERRに書き込まれる。比較状態レジスタ1613の比較エラー信号CMPERRは、比較状態レジスタ1613にクリア信号H0000を書き込むことによってクリア可能である。図12は、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれる図4に示したFIFOA13、B14の動作と図8に示した制御部16の動作とを、FIFOA13を中心に示した図である。図13は、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれる図4に示したFIFOA13、B14の動作と図8に示した制御部16の動作とを、FIFOB14を中心に示した図である。図12の動作と図13の動作では、制御部16の比較制御レジスタ1610のビット7~0は比較サイクルCMPCYCは、所定の初期値としてH04の値に設定されているとする。図12において、6番目のクロック信号CLKでは、バッファA11から制御部16の制御部1626に供給されるバッファカウント信号BCAの値は3で、制御部1626に接続されたレジスタ1625の内容は4で、レジスタ1624の内容はH0である。図12の9番目のクロック信号CLKで、バッファA11から供給されるバッファカウント信号BCAの値が4となってレジスタ1625の内容4と一致すると、次の10番目のクロック信号CLKのタイミングで、制御部1626に接続されたレジスタ1620の内容FC0Aとしてバッファカウント信号BCAの値4が書き込まれる。また、この10番目のクロック信号CLKのタイミングで、この時点でのバッファカウント信号BCAの値4と比較サイクルCMPCYCの値4との加算値8が、レジスタ1625に書き込まれ、レジスタ1624の内容はH0からH1に変更される。更に9番目のクロック信号CLKのタイミングで、制御部1626からFIFOA13に供給される書き込みイネーブル信号FWEAがハイレベル1となるので、FIFOA13ではバッファA11から供給されるバッファ出力信号BOAが1段目のフリップフロップ1310のデータFO0として書き込まれる。9番目のクロック信号CLKのタイミングでは制御部1626からFIFOA13に供給されるFIFOリード番号信号FRNAの値は0であるので、FIFOA13の読み出しデータFOAには1段目のフリップフロップ1310のデータFO0が選択され、10番目のクロック信号CLKのタイミングからデータD4が出力される。また、制御部1626から3入力AND回路1615に供給される比較イネーブル信号CEAの値は、ハイレベル1となる。一方、図13において、6番目のクロック信号CLKのタイミングでは、バッファB12から供給されるバッファカウント信号BCBの値が1であり、レジスタ1635の値が4であり、レジスタ1634の内容はH0となっている。9番目のクロック信号CLKのタイミングでは、バッファカウント信号BCBの値が2で、レジスタ1635の値が4であり、レジスタ1634の内容はH0である。図12に戻り、19番目のクロック信号CLKのタイミングでは、バッファA11から供給されるバッファカウント信号BCAの値が8となってレジスタ1625の内容8と一致すると、次の20番目のクロック信号CLKのタイミングで、制御部1626に接続されたレジスタ1621の内容FC1Aとしてバッファカウント信号BCAの値8が書き込まれる。また、この20番目のクロック信号CLKのタイミングで、この時点でのバッファカウント信号BCAの値8と比較サイクルCMPCYCの値4との加算値12がレジスタ1625に書き込まれ、レジスタ1624の内容はH1からH3に変更される。更に、20番目のクロック信号CLKのタイミングでは、制御部1626からFIFOA13に供給される書き込みイネーブル信号FWEAが既にハイレベル1となっているので、FIFOA13ではバッファA11から供給されるバッファ出力信号BOAが、2段目のフリップフロップ1320のデータFO1として書き込まれる。一方、図13において、19番目のクロック信号CLKのタイミングでバッファB12から供給されるバッファカウント信号BCBの値が4となってレジスタ1625の内容4と一致すると、次の20番目のクロック信号CLKのタイミングで、制御部1636に接続されたレジスタ1630の内容FC0Bとしてバッファカウント信号BCBの値4が書き込まれる。この20番目のクロック信号CLKのタイミングで、この時点でのバッファカウント信号BCBの値4と比較サイクルCMPCYCの値4との加算値8がレジスタ1635に書き込まれて、レジスタ1634の内容はH0からH1に変更される。また19番目のクロック信号CLKのタイミングでは制御部1636からFIFOB14に供給される書き込みイネーブル信号FWEBがハイレベル1となるので、FIFOB14ではバッファB12から供給されるバッファ出力信号BOBが1段目のフリップフロップ1310のデータFO0として書き込まれる。19番目のクロック信号CLKのタイミングでは、制御部1636からFIFOB14に供給されるFIFOリード番号信号FRNBの値は0であるので、FIFOB14の読み出しデータFOBには1段目のフリップフロップ1310のデータFO0が選択され、20番目のクロック信号CLKのタイミングからデータD4が出力される。また制御部1636から3入力AND回路1615に供給される比較イネーブル信号CEBの値は、ハイレベル1となる。図12に戻り、20番目のクロック信号CLKのタイミングで比較イネーブル信号CEAと比較イネーブル信号CEBとがともにハイレベル1となったので、FIFOA13のFIFO出力信号FOAとFIFOB14のFIFO出力信号FOBを比較する比較器15の比較結果信号1500を示す比較出力信号COが有効な値となる。従って、次の21番目のクロック信号CLKのタイミングで、比較器15の比較出力信号COは3入力AND回路1615を介して比較状態レジスタ1613の比較エラー信号CMPERRとして書き込まれる。また、同一のデータであるFIFO出力信号FOAとFIFO出力信号FOBとの比較器15による比較が実行されたため、FIFOA13の1段目のフリップフロップ1310は空きとなり、レジスタ1624の内容はH3からH2に変更される。また21番目のクロック信号CLKのタイミングで制御部1626からFIFOA13に供給されるFIFOリード番号信号FRNAの値が0から1に変更されたので、FIFOA13の読み出しデータFOAには2段目のフリップフロップ1320のデータFO1が選択される。一方、図13では20番目のクロック信号CLKのタイミングで同一のデータであるFIFO出力信号FOAとFIFO出力信号FOBの比較器15による比較が実行されたため、21番目のクロック信号CLKのタイミングではFIFOB14の1段目のフリップフロップ1310が空きとなって、レジスタ1634の内容はH1からH0に変更される。制御部1636からFIFOB14に供給されるFIFOリード番号信号FRNBの値は0から1に変更されているので、FIFOB14の読み出しデータFOBには2段目のフリップフロップ1320のデータFO1が選択されて、21番目のクロック信号CLKのタイミングではFIFOB14のFIFO出力信号FOBは不定となる。図12に戻り、30番目のクロック信号CLKのタイミングでバッファA11から供給されるバッファカウント信号BCAの値が12となってレジスタ1625の内容12と一致すると、次の31番目のクロック信号CLKのタイミングで、制御部1626に接続されたレジスタ1622の内容FC2Aとしてバッファカウント信号BCAの値12が書き込まれる。この30番目のクロック信号CLKのタイミングで、この時点のバッファカウント信号BCAの値12と比較サイクルCMPCYCの値4の加算値16がレジスタ1625に書き込まれて、レジスタ1624の内容はH2からH6に変更される。更に30番目のクロック信号CLKのタイミングでは、制御部1626からFIFOA13に供給される書き込みイネーブル信号FWEAが既にハイレベル1となっているので、FIFOA13ではバッファA11から供給されるバッファ出力信号BOAが2段目のフリップフロップ1330のデータFO2として書き込まれる。また32番目のクロック信号CLKのタイミングで制御部1626からFIFOA13に供給されるFIFOリード番号信号FRNAの値が1から2に変更されたので、FIFOA13の読み出しデータFOAに3段目のフリップフロップ1330のデータFO2が選択される。一方、図13において、30番目のクロック信号CLKのタイミングでバッファB12から供給されるバッファカウント信号BCBの値が8となってレジスタ1625の内容8と一致すると、次の31番目のクロック信号CLKのタイミングで、制御部1636に接続されたレジスタ1631の内容FC1Bとしてバッファカウント信号BCBの値8が書き込まれる。この30番目のクロック信号CLKのタイミングで、この時点でのバッファカウント信号BCBの値8と比較サイクルCMPCYCの値4の加算値12がレジスタ1635に書き込まれて、レジスタ1634の内容はH0からH2に変更される。また、30番目のクロック信号CLKのタイミングで制御部1636からFIFOB14に供給される書き込みイネーブル信号FWEBがハイレベル1となるので、FIFOB14ではバッファB12から供給されるバッファ出力信号BOBが2段目のフリップフロップ1320のデータFO1として書き込まれる。図12に戻り、31番目のクロック信号CLKのタイミングでは比較イネーブル信号CEAと比較イネーブル信号CEBとがともにハイレベル1となったので、FIFOA13のFIFO出力信号FOAとFIFOB14のFIFO出力信号FOBを比較する比較器15の比較結果信号1500を示す比較出力信号COが有効な値となる。従って、次の32番目のクロック信号CLKのタイミングで、比較器15の比較出力信号COは3入力AND回路1615を介して比較状態レジスタ1613の比較エラー信号CMPERRとして書き込まれる。また、同一のデータであるFIFO出力信号FOAとFIFO出力信号FOBの比較器15による比較が実行されたため、FIFOA13の2段目のフリップフロップ1320は空きとなり、レジスタ1624の内容はH6からH4に変更される。制御部1636からFIFOA13に供給されるFIFOリード番号信号FRNAの値は1から2に変更されているので、FIFOA13の読み出しデータFOAには3段目のフリップフロップ1330のデータFO2が選択され、32番目のクロック信号CLKのタイミングではFIFOA13のFIFO出力信号FOAはデータD12となる。一方、図13において、31番目のクロック信号CLKのタイミングにて同一のデータであるFIFO出力信号FOAとFIFO出力信号FOBとの比較器15による比較が実行されたため、FIFOB14の2段目のフリップフロップ1320は空きとなり、レジスタ1634の内容はH2からH0に変更される。制御部1636からFIFOB14に供給されるFIFOリード番号信号FRNBの値は1から2に変更されているので、FIFOB14の読み出しデータFOBには3段目のフリップフロップ1330のデータFO2が選択されて、32番目のクロック信号CLKのタイミングではFIFOB14のFIFO出力信号FOBは不定となる。図14は、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1の図12と図13とに示したFIFOA13、B14の動作タイミングチャートの重要なタイミングでのFIFOA13、B14の動作を示す図である。図14の部分図~部分図は、図12と図13とに示したFIFOA13、B14の動作タイミングチャートのタイミングとタイミングとタイミングとタイミングとタイミングとタイミングのタイミングにおけるFIFOA13の動作を示している。同様に、図14の部分図~部分図は、図12と図13とに示したFIFOA13、B14の動作タイミングチャートのタイミングとタイミングとタイミングとタイミングとタイミングとタイミングのタイミングにおけるFIFOB14の動作を示している。図14の部分図において、FIFOカウンタのレジスタ1620とレジスタ1621とレジスタ1622とレジスタ1623の内容と、FIFOA13の4段のフリップフロップ1310、1320、1330、1340の出力信号FO0、FO1、FO2、FO3の内容とは全て無効であり、レジスタ1624の内容はH0であり、レジスタ1625の内容は4である。従って、図14の部分図に示した状態のFIFOA13では、バッファカウント信号BCAの値が3となり、バッファA11からFIFOA13にバッファ出力信号BOAが供給されても、FIFOA13への書き込みは、行われない。この時には、FIFOライト番号信号FWNAとFIFOリード番号信号FRNAとは、最初は制御部16によって初期値0に設定されている。図14の部分図において、FIFOカウンタのレジスタ1630とレジスタ1631とレジスタ1632とレジスタ1633の内容と、FIFOB14の4段のフリップフロップ1310、1320、1330、1340の出力信号FO0、FO1、FO2、FO3の内容とは全て無効であり、レジスタ1624の内容はH0であり、レジスタ1635の内容は4である。従って、図14の部分図に示した状態のFIFOB14では、バッファカウント信号BCBの値が1となり、バッファB12からFIFOB14にバッファ出力信号BOBが供給されても、FIFOB14への書き込みは、行われない。この時には、FIFOライト番号信号FWNBとFIFOリード番号信号FRNBとは、最初は制御部16によって初期値0に設定されている。図14の部分図において、バッファカウント信号BCAの値とレジスタ1625の内容とが4となったため、FIFOカウンタのレジスタ1620の内容FC0Aとしてバッファカウント信号BCAの値4が書き込まれ、バッファA11から供給されるバッファ出力信号BOAがFIFOA13の1段目のフリップフロップ1310のデータFO0として書き込まれる。この時点でのバッファカウント信号BCAの値4と比較サイクルCMPCYCの値4との加算値8が、レジスタ1625に書き込まれ、レジスタ1624の内容はH0からH1に変更され、FIFOライト番号信号FWNA値は0から1に変更される。図14の部分図において、バッファカウント信号BCAの値が2となり、バッファB12からFIFOB14にバッファ出力信号BOBが供給されても、FIFOB14への書き込みは、行われない。図14の部分図において、バッファカウント信号BCAの値とレジスタ1625の内容とが8となったため、FIFOカウンタのレジスタ1621の内容FC1Aとしてバッファカウント信号BCAの値8が書き込まれ、バッファA11から供給されるバッファ出力信号BOAがFIFOA13の2段目のフリップフロップ1320のデータFO1として書き込まれる。この時点でのバッファカウント信号BCAの値8と比較サイクルCMPCYCの値4との加算値12がレジスタ1625に書き込まれ、レジスタ1624の内容はH1からH3に変更されて、FIFOライト番号信号FWNA値は1から2に変更される。図14の部分図において、バッファカウント信号BCBの値とレジスタ1635の内容とが4となったため、FIFOカウンタのレジスタ1630の内容FC0Bとしてバッファカウント信号BCBの値4が書き込まれ、バッファB12から供給されるバッファ出力信号BOBがFIFOB14の1段目のフリップフロップ1310のデータFO0として書き込まれる。この時点でのバッファカウント信号BCBの値4と比較サイクルCMPCYCの値4との加算値8が、レジスタ1635に書き込まれ、レジスタ1624の内容はH0からH1に変更され、FIFOライト番号信号FWNB値は0から1に変更される。図14の部分図では、FIFOA13の1段目のフリップフロップ1310のデータFO0としてバッファA11から供給されたバッファ出力信号BOAが格納済みであって、FIFOB14の1段目のフリップフロップ1310のデータFO0としてバッファB12から供給されたバッファ出力信号BOBが格納済みである。従って、同一のデータであるFIFO出力信号FOAとFIFO出力信号FOBとの比較器15による比較が実行されたため、FIFOA13の1段目のフリップフロップ1310は空きとなり、レジスタ1624の内容はH3からH2に変更される。またFIFOリード番号信号FRNAの値が0から1に変更されたので、FIFOA13の読み出しデータFOAには2段目のフリップフロップ1320のデータFO1が選択される。図14の部分図でも、同一のデータであるFIFO出力信号FOAとFIFO出力信号FOBの比較器15による比較が実行されたため、FIFOB14の1段目のフリップフロップ1310が空きとなり、レジスタ1634の内容はH1からH0に変更される。またFIFOリード番号信号FRNBの値は0から1に変更されたので、FIFOB14の読み出しデータFOBには2段目のフリップフロップ1320のデータFO1が選択される。図14の部分図では、バッファカウント信号BCAの値とレジスタ1625の内容とが12となると、レジスタ1622の内容FC2Aとしてバッファカウント信号BCAの値12が書き込まれる。この時点のバッファカウント信号BCAの値12と比較サイクルCMPCYCの値4の加算値16がレジスタ1625に書き込まれて、レジスタ1624の内容はH2からH6に変更される。書き込みイネーブル信号FWEAがハイレベル1であるので、FIFOA13ではバッファA11から供給されるバッファ出力信号BOAが3段目のフリップフロップ1330のデータFO2として書き込まれる。FIFOリード番号信号FRNAの値が0から1に変更されているので、FIFOA13の読み出しデータFOAには2段目のフリップフロップ1320のデータFO1が選択される。またFIFOライト番号信号FWNAの値は、2から3に変更される。図14の部分図では、一方、バッファカウント信号BCBの値とレジスタ1635の内容が8となると、レジスタ1631の内容FC1Bとしてバッファカウント信号BCBの値8が書き込まれる。この時点でのバッファカウント信号BCBの値8と比較サイクルCMPCYCの値4の加算値12がレジスタ1635に書き込まれて、レジスタ1634の内容はH0からH2に変更される。また、書き込みイネーブル信号FWEBがハイレベル1なので、FIFOB14ではバッファB12から供給されるバッファ出力信号BOBが2段目のフリップフロップ1320のデータFO1として書き込まれる。またFIFOライト番号信号FWNBの値は、1から2に変更される。図14の部分図では、同一のデータであるFIFO出力信号FOAとFIFO出力信号FOBとの比較器15による比較が実行されたため、FIFOA13の2段目のフリップフロップ1320は空きとなり、レジスタ1624の内容はH6からH4に変更される。FIFOリード番号信号FRNAの値が1から2に変更されたので、FIFOA13の読み出しデータFOAには3段目のフリップフロップ1330のデータFO2が選択される。図14の部分図でも、同一のデータであるFIFO出力信号FOAとFIFO出力信号FOBの比較器15による比較が実行されたため、FIFOB14の2段目のフリップフロップ1320が空きとなり、レジスタ1634の内容はH2からH0に変更される。またFIFOリード番号信号FRNBの値は1から2に変更されたので、FIFOB14の読み出しデータFOBに3段目のフリップフロップ1330のデータFO2が選択される。図15は、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれる図4に示したFIFOA13、B14の動作と図8に示した制御部16の動作とを、FIFOA13を中心に示した図である。この図15は、図12に示した動作タイミングチャートの続きの動作タイミングチャートである。図16は、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれる図4に示したFIFOA13、B14の動作と図8に示した制御部16の動作とを、FIFOB14を中心に示した図である。この図16は、図13に示した動作タイミングチャートの続きの動作タイミングチャートである。図15において、5番目のクロック信号CLKでは、バッファA11から制御部16の制御部1626に供給されるバッファカウント信号BCAの値は15で、制御部1626に接続されたレジスタ1625の内容は16で、レジスタ1624の内容はH4となっている。6番目のクロック信号CLKでは、バッファA11から供給されるバッファカウント信号BCAの値は16となってレジスタ1625の内容16と一致すると、次の7番目のクロック信号CLKでは制御部1626に接続されたレジスタ1623の内容3Aとしてバッファカウント信号BCAの値16が書き込まれる。また、この7番目のクロック信号CLKのタイミングで、この時点でのバッファカウント信号BCAの値16と比較サイクルCMPCYCの値4との加算値20がレジスタ1625に書き込まれ、レジスタ1624の内容はHCとなる。更に6番目のクロック信号CLKのタイミングで、制御部1626からFIFOA13に供給される書き込みイネーブル信号FWEAがハイレベル1となるので、FIFOA13ではバッファA11から供給されるバッファ出力信号BOAが4段目のフリップフロップ1340のデータFO3として書き込まれる。6番目のクロック信号CLKのタイミングで、制御部1626からFIFOA13に供給されるFIFOリード番号信号FRNAの値は2であるので、FIFOA13の読み出しデータFOAには3段目のフリップフロップ1330のデータFO2が選択されている。一方、図16において、5番目のクロック信号CLKでは、バッファB12から制御部16の制御部1636に供給されるバッファカウント信号BCBの値は10であり、レジスタ1635の内容は12で、レジスタ1634の内容は0となっている。次の6番目のクロック信号CLKでも更にその次の7番目のクロック信号CLKでも、状態は変化しない。図15に戻り、16番目のクロック信号CLKでは、バッファA11から供給されるバッファカウント信号BCAの値は20となってレジスタ1625の内容20と一致すると、次の17番目のクロック信号CLKのタイミングで、制御部1626に接続されたレジスタ1620の内容FC0Aとしてバッファカウント信号BCAの値20が書き込まれる。また、この17番目のクロック信号CLKのタイミングで、この時点でのバッファカウント信号BCAの値20と比較サイクルCMPCYCの値4との加算値24がレジスタ1625に書き込まれ、レジスタ1624の内容はHCからHDに変更される。更に、16番目のクロック信号CLKのタイミングでは、制御部1626からFIFOA13に供給される書き込みイネーブル信号FWEAが既にハイレベル1となっているので、FIFOA13ではバッファA11から供給されるバッファ出力信号BOAが、1段目のフリップフロップ1310のデータFO0として書き込まれる。一方、図16において、16番目のクロック信号CLKでは、バッファB12から制御部16の制御部1636に供給されるバッファカウント信号BCBの値は11であり、レジスタ1635の内容は12で、レジスタ1634の内容は0となっている。図15に戻り、22番目のクロック信号CLKでは、バッファA11から供給されるバッファカウント信号BCAの値は24となってレジスタ1625の内容24と一致すると、次の23番目のクロック信号CLKのタイミングで、制御部1626に接続されたレジスタ1621の内容FC1Aとしてバッファカウント信号BCAの値24が書き込まれる。また、この22番目のクロック信号CLKのタイミングで、この時点でのバッファカウント信号BCAの値24と比較サイクルCMPCYCの値4との加算値28がレジスタ1625に書き込まれ、レジスタ1624の内容はHDからHFに変更される。更に、21番目のクロック信号CLKのタイミングでは、制御部1626からFIFOA13に供給される書き込みイネーブル信号FWEAが既にハイレベル1となっているので、FIFOA13ではバッファA11から供給されるバッファ出力信号BOAが、2段目のフリップフロップ1320のデータFO1として書き込まれる。一方、図16において、22番目のクロック信号CLKでは、バッファB12から制御部16の制御部1636に供給されるバッファカウント信号BCBの値は11であり、レジスタ1635の内容は12で、レジスタ1634の内容は0となっている。図15に戻り、27番目のクロック信号CLKでは、バッファA11から供給されるバッファカウント信号BCAの値は28となって、レジスタ1625の内容28と一致する。しかし、FIFOA13に空きが無いため、バッファカウント信号BCAの値28およびバッファ出力信号BOAの書き込みは行われない。一方、図16において、30番目のクロック信号CLKでは、バッファB12から制御部16の制御部1636に供給されるバッファカウント信号BCBの値は12であり、レジスタ1635の内容12と一致すると、次の31番目のクロック信号CLKのタイミングで、制御部1636に接続されたレジスタ1632の内容FC2Bとしてバッファカウント信号BCBの値12が書き込まれる。また30番目のクロック信号CLKのタイミングで、この時点でのバッファカウント信号BCBの値12と比較サイクルCMPCYCの値4との加算値16がレジスタ1635に書き込まれ、レジスタ1634の内容はH0からH4に変更される。更に、29番目のクロック信号CLKのタイミングでは、制御部1626からFIFOB14に供給される書き込みイネーブル信号FWEBが既にハイレベル1となっているので、FIFOB14ではバッファB12から供給されるバッファ出力信号BOBが、3段目のフリップフロップ1330のデータFO2として書き込まれる。30番目のクロック信号CLKでは、比較イネーブル信号CEAと比較イネーブル信号CEBとがハイレベル1となったので、FIFOA13のFIFO出力信号FOAとFIFOB14のFIFO出力信号FOBを比較する比較器15の比較結果信号1500を示す比較出力信号COが有効な値となる。従って、31番目のクロック信号CLKでは、比較器15の比較出力信号COは、3入力AND回路1615を介して、比較状態レジスタ1613の比較エラー信号CMPERRとして書き込まれる。また、同一のデータであるFIFO出力信号FOAとFIFO出力信号FOBとの比較器15による比較が実行されたため、FIFOB14の3段目のフリップフロップ1330は空きとなり、レジスタ1634の内容はH4からH0に変更される。また31番目のクロック信号CLKのタイミングで制御部1636からFIFOB14に供給されるFIFOリード番号信号FRNBの値が2から3に変更されたので、FIFOB14の読み出しデータFOBには4段目のフリップフロップ1340のデータFO3が選択される。図15に戻って、30番目のクロック信号CLKで比較器15による比較が実行されたため、31番目のクロック信号CLKでは、FIFOA13では3段目のフリップフロップ1330には空きが生じる。32番目のクロック信号CLKで、バッファA11から供給されるバッファカウント信号BCAの値31が次の31番目のクロック信号CLKのタイミングで、制御部1626に接続されたレジスタ1622の内容FC2Aとしてバッファカウント信号BCAの値31が書き込まれる。また30番目のクロック信号CLKのタイミングで、この時点でのバッファカウント信号BCAの値31と比較サイクルCMPCYCの値4との加算値35がレジスタ1625に書き込まれ、レジスタ1624の内容はHFの値で維持される。32番目のクロック信号CLKのタイミングでは、制御部1636からFIFOA13に供給されるFIFOリード番号信号FRNAの値は2に設定されているので、FIFOA13の読み出しデータFOAには3段目のフリップフロップ1330のデータFO2が選択され、32番目のクロック信号CLKのタイミングではFIFOA13のFIFO出力信号FOAはデータD31となる。図17は、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1の図15と図16とに示したFIFOA13、B14の動作タイミングチャートの重要なタイミングでのFIFOA13、B14の動作を示す図である。図17の部分図~部分図は、図15と図16とに示したFIFOA13、B14の動作タイミングチャートのタイミングとタイミングとタイミングとタイミングとタイミングとタイミングのタイミングにおけるFIFOA13の動作を示している。同様に、図17の部分図~部分図は、図15と図16とに示したFIFOA13、B14の動作タイミングチャートのタイミングとタイミングとタイミングとタイミングとタイミングとタイミングのタイミングにおけるFIFOB14の動作を示している。図17の部分図において、バッファA11から制御部16の制御部1626に供給されるバッファカウント信号BCAの値が15であり、制御部1626に接続されたレジスタ1625の内容が16であり、FIFOカウンタとしてのレジスタ1622の内容12と2段目のフリップフロップ1330のデータFO2とが有効であり、その他のレジスタ1620、1621、1623とその他のフリップフロップ1310、1320、1340は無効である。この時には、レジスタ1624の内容はH4となっており、FIFOリード番号信号FRNAの値は2となっており、FIFOライト番号信号の値は3となっている。図17の部分図において、FIFOカウンタのレジスタ1630とレジスタ1631とレジスタ1632とレジスタ1633の内容と、FIFOB14の4段のフリップフロップ1310、1320、1330、1340の出力信号FO0、FO1、FO2、FO3の内容とは全て無効であり、レジスタ1624の内容はH0であり、レジスタ1635の内容は12である。従って、図17の部分図に示した状態でのFIFOB14では、バッファカウント信号BCBの値が10となり、バッファB12からFIFOB14にバッファ出力信号BOBが供給されても、FIFOB14への書き込みは行われない。この時に、FIFOライト番号信号FWNBとFIFOリード番号信号FRNBは、制御部16によって値2に設定されている。図17の部分図では、バッファカウント信号BCAの値とレジスタ1625の内容とが16となったため、バッファカウント信号BCAの値16がレジスタ1623に書き込まれて、FIFOA13ではバッファA11から供給されるバッファ出力信号BOAが4段目のフリップフロップ1340にデータFO3として書き込まれる。この時点でのバッファカウント信号BCAの値16と比較サイクルCMPCYCの値4との加算値20がレジスタ1625に書き込まれて、レジスタ1624の内容はH4からHCに更新される。またFIFOライト番号信号FWNAの値は3から0に更新され、FIFOリード番号信号FRNAの値は2に維持されている。図17の部分図において、バッファカウント信号BCBの値が10であり、バッファB12から供給されるバッファ出力信号BOBのFIFOB14への書き込みは行われない。図17の部分図において、バッファA11から供給されるバッファカウント信号BCAの値は20となりレジスタ1625の内容20と一致したため、レジスタ1620の内容FC0Aとしてバッファカウント信号BCAの値20が書き込まれ、バッファ出力信号BOAが、1段目のフリップフロップ1310のデータFO0として書き込まれる。バッファカウント信号BCAの値20と比較サイクルCMPCYCの値4との加算値24がレジスタ1625に書き込まれ、レジスタ1624の内容はHCからHDに変更される。またFIFOライト番号信号FWNAの値は、0から1に更新される。図17の部分図において、バッファB12から制御部16の制御部1636に供給されるバッファカウント信号BCBの値は11であり、レジスタ1635の内容は12で、レジスタ1634の内容は0となっており、FIFOB14へのバッファB12から供給されるバッファ出力信号BOBの書き込みは行われない。図17の部分図において、バッファA11から供給されるバッファカウント信号BCAの値は24となりジスタ1625の内容24と一致したため、レジスタ1621の内容FC1Aとしてバッファカウント信号BCAの値24が書き込まれる。また、バッファカウント信号BCAの値24と比較サイクルCMPCYCの値4との加算値28が、レジスタ1625に書き込まれ、バッファA11から供給されるバッファ出力信号BOAが、2段目のフリップフロップ1320のデータFO1として書き込まれる。またレジスタ1624の内容はHDからHFに変更され、FIFOライト番号信号FWNAの値は1から2に更新される。図17の部分図において、バッファB12から制御部16の制御部1636に供給されるバッファカウント信号BCBの値は11であり、レジスタ1635の内容は12で、レジスタ1634の内容は0となっており、FIFOB14へのバッファB12から供給されるバッファ出力信号BOBの書き込みは行われない。図17の部分図において、バッファB12から制御部16の制御部1636に供給されるバッファカウント信号BCBの値は30であり、レジスタ1625の値28を超過しているが、FIFOA13の全てのフリップフロップ1310、1320、1330、1340には空きがないので、FIFOA13へのバッファA11から供給されるバッファ出力信号BOAの書き込みは行われない。図17の部分図において、バッファB12から制御部16の制御部1636に供給されるバッファカウント信号BCBの値12とレジスタ1635の内容12と一致すると、レジスタ1632の内容FC2Bとしてバッファカウント信号BCBの値12が書き込まれる。また、この時点でのバッファカウント信号BCBの値12と比較サイクルCMPCYCの値4との加算値16がレジスタ1635に書き込まれ、レジスタ1634の内容はH0からH4に変更される。FIFOB14では、バッファB12から供給されるバッファ出力信号BOBが、3段目のフリップフロップ1330のデータFO2として書き込まれる。またFIFOライト番号信号FWNBの値とFIFOリード番号信号FRNBの値とは、2から3に更新される。図17の部分図において、FIFOA13では3段目のフリップフロップ1330には空きが生じたので、バッファA11から供給されるバッファカウント信号BCAの値31が制御部1626に接続されたレジスタ1622の内容FC2Aとして書き込まれる。またバッファA11から供給されるバッファ出力信号BOAが、3段目のフリップフロップ1330のデータFO2として書き込まれる。この時点のバッファカウント信号BCAの値31と比較サイクルCMPCYCの値4との加算値35がレジスタ1625に書き込まれ、レジスタ1624の内容はHFの値で維持される。FIFOリード番号信号FRNAの値は2に維持されて、FIFOライト番号信号FWNAの値は2から3に更新される。図17の部分図において、レジスタ1634の内容はH0に変更されているので、FIFOB14の4段のフリップフロップ1310、1320、1330、1340の出力信号FO0、FO1、FO2、FO3は全て無効であり、FIFOリード番号信号FRNBの値とFIFOライト番号信号FWNBの値とは2から3に更新される。《通常動作の並列データ処理から故障検出動作の冗長動作への移行》図18は、図1に示した本発明の実施の形態1において、デュアルコアマイコンMCU1の通常動作の2個のCPUA2、B6による並列データ処理から故障検出動作のための2個のCPUA2、B6による冗長動作に移行する様子を示す図である。図18に示すように、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1の通常動作の2個のCPUA2、B6による並列データ処理では、CPUA2は個別タスク200を実行して、CPUB6は個別タスク600を実行して、タスク200とタスク600はそれぞれ異なるタスクである。その後、CPUA2は故障検出動作のための冗長タスク203を実行するために、冗長タスク起動処理201を実行する。CPUB6の故障検出動作のための冗長タスク603の起動は、例えば、CPUA2からCPUB6への割り込み処理等を用いて実現できる。冗長タスク起動処理201の後の実行準備処理202において、CPUA2は比較制御レジスタ1611に設定値H0003を書き込み、バッファA11にカウンタリセット信号CNTRSTとカウントイネーブル信号CNTENとを供給する。すなわち、図10に示したように、カウントリセット信号CNTRSTによりバッファA11のカウンタリセットが実行されて、カウントイネーブル信号CNTENによりCPUA2の出力データがバッファA11に保持されカウントされるものとなる。その次にCPUA2は比較制御レジスタ1610に設定値H0304を書き込んで、比較器15の故障検出動作に関して割り込み許可信号INTENに設定値1を、比較許可比較イネーブル信号CMPENに設定値1を、比較周期比較サイクルCMPCYCに設定値4をそれぞれ設定する。一方、CPUB6は個別タスク600の実行中にCPUA2からの割り込み204を受け付けて、実行準備処理602を実行する。この実行準備処理602において、CPUB6は比較制御レジスタ1612に設定値H0003を書き込んで、バッファB12にカウンタリセット信号CNTRSTとカウントイネーブル信号CNTENとを供給する。すなわち、図10に示したように、カウントリセット信号CNTRSTによりバッファB12のカウンタリセットが実行されて、カウントイネーブル信号CNTENによりCPUB6の出力データがバッファB12に保持されカウントされるものとなる。実行準備処理202、602によって2個のCPUA2、B6による冗長動作の実行準備が完了すると、2個のCPUA2、B6は故障検出動作のため冗長タスク203、603をそれぞれ実行する。すなわち、2個のCPUA2、B6は、同一のオペランドデータに関して同一の冗長タスクプログラムを実行する。2個のFIFOA13、B14によって選択されて出力される所定の出力回数のデータは、比較器15によって比較される。比較器15による比較結果が一致する場合には、図1のデュアルコアマイコンMCU1に故障が存在しないと判定されて、比較器15による比較結果が不一致の場合には、図1のデュアルコアマイコンMCU1に故障が存在すると判定される。更に、比較器15による比較結果が不一致の場合には、比較器15の比較結果信号1500に応答して制御部16は割り込み発生回路17に割り込み要求信号1604を発生する。従って、図1に示す本発明の実施の形態1によるデュアルコアマイコンMCU1に故障が発生して2個のCPUA2、B6の一方が異常動作している旨を通知する例外処理が、割り込み発生回路17による割り込み要求信号1604に応答して起動される。この例外処理は、例えば、自動車の運転席のダッシュボードの表示機器によって、デュアルコアマイコンMCU1の故障発生を通知するものである。従って、自動車の所有者は、故障発生が通知されたデュアルコアマイコンMCU1を搭載する自動車の整備や修理が必要であることを知ることが可能となる。CPUA2による冗長タスク203の実行が終了するとCPUA2は次のタスクの実行に移行する一方、CPUB6による冗長タスク603の実行が終了すると、CPUB6は割り込み復帰を行って、元の個別タスク600に復帰する。また本発明において、故障検出動作のための2個のCPUA2、B6による冗長動作への移行は、上述した割り込み204の受け付けのみに限定されるものではない。それ以外に、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1の電源投入時の初期化シーケンスにおいて、故障検出動作のための2個のCPUA2、B6による冗長動作を行うものとすることが可能である。すなわち、2個のCPUA2、B6による冗長動作を行い、デュアルコアマイコンMCU1に故障が存在しないと判定されてから、初めて通常動作の2個のCPUA2、B6の並列データ処理を開始するものである。更に、通常動作の2個のCPUA2、B6の並列データ処理を開始した後に、冗長動作を開始する命令や割り込みを2個のCPUA2、B6のいずれか一方から定期的に発行することによって、故障検出動作のための2個のCPUA2、B6による冗長動作を定期的に実行することも可能である。この時に故障検出動作のために2個のCPUA2、B6により実行される冗長動作の内容を、2個のCPUA2、B6のいずれか一方でそれ以前に実行されていた通常動作のデータ処理の内容とされることが可能である。[実施の形態2]《バッファメモリの他の構成》図19は、図1に示すデュアルコアマイコンMCU1に含まれる本発明の実施の形態2によるバッファメモリとしてのバッファA11、B12の他の構成を示す図である。図19に示す本発明の実施の形態2によるバッファメモリとしてのバッファA11、B12が図2に示した本発明の実施の形態1によるバッファメモリとしてのバッファA11、B12と相違するのは、以下の点である。すなわち、図19に示す本発明の実施の形態2によるバッファメモリA11、B12に、図2に示した本発明の実施の形態1によるバッファメモリに含まれていない演算回路1170が追加されている。図19に示したように、演算回路1170の一方の入力端子と他方の入力端子とにライトデータWDとフリップフロップ1150のバッファ出力信号BOとがそれぞれ供給され、演算回路1170の出力端子はフリップフロップ1150のデータ入力端子に接続されている。更に図19に示したように、制御部16からのパワーオンリセット信号RSTとカウンタリセット信号CNRはOR回路1140で論理和され、OR回路1140の出力によってカウンタ1160とフリップフロップ1150とがリセットされる。図19に示すバッファメモリA11、B12では、演算回路1170は一方の入力端子と他方の入力端子にそれぞれ供給されるライトデータWDとバッファ出力信号BOを所定の演算アルゴリズムに従って演算処理するので、この演算処理の結果に基づく出力信号が演算回路1170の出力端子から生成される。演算回路1170の出力端子から生成される出力信号は、AND回路1130の出力から生成されるバッファライトイネーブル信号BWEがハイレベル1の期間に、フリップフロップ1150に格納される。従って、図19に示したバッファメモリA11、B12では、CPUA2、CPUB6から順次に供給される複数のライトデータWDの全ての値に依存した出力信号が演算回路1170の出力端子から生成される。その結果、CPUA2からバッファメモリA11へ順次供給される複数のライトデータWDとCPUB6からバッファメモリB12へ順次供給される複数のライトデータWDとが一部のみ相違するだけで、バッファメモリA11の演算回路1170の出力端子から生成される出力信号とバッファメモリB12の演算回路1170の出力端子から生成される出力信号とが相違する。そのため、図19に示した本発明の実施の形態2によるバッファメモリA11、B12を図1に示したデュアルコアマイコンMCU1で使用することによって、2個のCPUA2、B6の一方での異常の検出確率を著しく向上することが可能となる。尚、バッファメモリA11、B12に順次に供給される複数のライトデータWDの値がバッファ出力信号BOの値に影響を与えるための演算回路1170の演算アルゴリズムとしては、論理和ORや論理積ANDや排他的論理和EXOR等の比較的単純な論理演算が選択される。比較的単純な論理演算とすることで、演算回路1170が高速化されると言う利点がある。《演算機能付きのバッファメモリの動作》図20は、図19に示した本発明の実施の形態2による演算機能付きのバッファメモリA11、B12の動作を説明する図である。図20に示す本発明の実施の形態2による演算機能付きのバッファメモリA11、B12の動作が図3に示した本発明の実施の形態1によるバッファA11、B12の動作と相違するのは、以下の点である。すなわち、図20に示す本発明の実施の形態2による演算機能付きのバッファメモリA11、B12の動作では、クロック信号CLKの1番目から6番目までの期間でフリップフロップ1150のバッファ出力信号BOの値は初期値BO0に設定される。次にクロック信号CLKの7番目と8番目との間の期間では、フリップフロップ1150のバッファ出力信号BOの値は初期値BO0とライトデータWDのデータD3との演算処理の演算結果の値BO1となる。更に、クロック信号CLKの8番目と14番目との間の期間では、フリップフロップ1150のバッファ出力信号BOの値は以前の演算結果の値BO1とライトデータWDのデータD4との演算処理の演算結果の値BO2となる。また、クロック信号CLKの14番目と15番目との間の期間では、フリップフロップ1150のバッファ出力信号BOの値は以前の演算結果の値BO2とライトデータWDのデータD8との演算処理の演算結果の値BO3となる。以上説明したように、図19と図20に示した本発明の実施の形態2によれば、バッファメモリA11、B12では、CPUA2、CPUB6から順次に供給される複数のライトデータWDの全ての値に依存した出力信号が演算回路1170の出力端子から生成される。そのため、図19に示す本発明の実施の形態2によるバッファメモリA11、B12を図1に示したデュアルコアマイコンMCU1で使用することによって、2個のCPUA2、B6の一方での異常の検出確率を著しく向上することが可能となる。[実施の形態3]《シングルコアマイコンの構成》図21は、本発明の実施の形態3によるシングルコアマイコンMCU1の構成を示す図である。図21に示した本発明の実施の形態3によるシングルコアマイコンMCU1が、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1と相違するのは、以下の点である。すなわち、図21に示した本発明の実施の形態3によるシングルコアマイコンMCU1では、高信頼性を実現するための多重の冗長動作が図1に示したように2個のCPUA2、CPUB6による並列動作で実行されるのではなく、単一のCPUA2による2重動作で実行されることである。従って、図21に示す本発明の実施の形態3によるシングルコアマイコンMCU1では、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1に含まれていたCPUB6とメモリB7とCPUBバス8とブリッジB9とが省略されている。その代わりに、図21に示す本発明の実施の形態3によるシングルコアマイコンMCU1では、バッファB12がCPUAバス4に接続されているので、バッファB12はCPUA2から特定のアドレス空間に出力されるデータを保持してその出力回数をカウントするものである。例えば、2重動作では、単一のCPUA2は同一のオペランドデータに関して同一の冗長タスクプログラムを2回実行する。1回目の動作すなわち2重動作の一方の動作によって、CPUA2から特定のアドレス空間に出力される書き込みデータは、メモリA3とバッファA11に二重書き込みされる。2回目の動作すなわち2重動作の他方の動作によって、CPUA2から特定のアドレス空間に出力される書き込みデータは、メモリA3とバッファB12に二重書き込みされる。図21に示した本発明の実施の形態3によるシングルコアマイコンMCU1に故障が存在せずに単一のCPUA2が常に正常に動作している場合には、バッファA11、B12に格納された書き込みデータは同一となる。しかし、図21に示した本発明の実施の形態3によるシングルコアマイコンMCU1に故障が発生して単一のCPUA2が異常動作している場合には、バッファA11、B12に格納された書き込みデータは不一致となり、故障検出が可能となる。図21に示した本発明の実施の形態3によるシングルコアマイコンMCU1でも、図1に示した本発明の実施の形態1と同様に、2個のFIFOA13、B14は、2個のバッファA11、B12を経由してCPUA2から冗長タスク演算結果として順次に出力され供給される複数のデータから所定の出力回数のデータのみを選択して格納する一方、それ以外の出力回数のデータは非選択として破棄するものである。2個のFIFOA13、B14によって選択されて出力される所定の出力回数のデータは、比較器15により比較される。比較器15による比較結果が一致する場合には、図21のシングルコアマイコンMCU1に故障が存在しないと判定されて、比較器15による比較結果が不一致の場合には、図21のシングルコアマイコンMCU1に故障が存在すると判定される。更に図21に示した本発明の実施の形態3によるシングルコアマイコンMCU1では、バッファA11、B12として図19と図20に示した本発明の実施の形態2による演算機能付きのバッファメモリA11、B12を使用することで、単一のCPUA2の異常の検出確率を著しく向上することが可能となる。[実施の形態4]《トリプルコアマイコンの構成》図22は、本発明の実施の形態4によるトリプルコアマイコンMCU1の構成を示す図である。図22に示した本発明の実施の形態4によるトリプルマイコンMCU1が、図1に示した本発明の実施の形態1によるデュアルコアマイコンMCU1と相違するのは、以下の点である。すなわち、図22に示した本発明の実施の形態4によるトリプルコアマイコンMCU1には、第3中央処理ユニットとしてのCPUC18と、第3内蔵メモリとしてのメモリC19と、第3CPUバスとしてのCPUCバス20、第3バスブリッジとしてのブリッジC21と、第3バッファメモリとしてのバッファC22、第3FIFOメモリとしてのFIFOC23が追加されている第3バッファメモリとしてのバッファC22は、CPUC18とが特定のアドレス空間に出力する書き込みデータを保持して、その出力回数をカウントする。第3バッファメモリとしてのバッファC22も、CPUC18が特定のアドレス空間に出力する書き込みデータを保持して、その出力回数をカウントする。第3FIFOメモリとしてのFIFOC23はバッファC22の出力データ2201を保持する。比較器15は、FIFOA13の出力データ1300とFIFOB14の出力データ1400とFIFOメモリの出力データ2300とを比較する。《トリプルコアマイコンでの通常動作》図22に示した本発明の実施の形態4によるトリプルコアマイコンMCU1は高性能を実現するために、3個のCPUA2、B6、C18にそれぞれ独立したデータ処理を並列に実行させる。3個のCPUA2、B6、C18による並列処理結果は、3個のメモリA3、B7、C19に並列に格納可能である。更に3個のメモリA3、B7、C19のデータは、3個のブリッジA5、B9、C21を介して、システムバス10に転送されることも可能である。《トリプルコアマイコンでの冗長動作》図22に示す本発明の実施の形態4によるデュアルコアマイコンMCU1は高信頼性を実現するために、3個のCPUA2、B6、C18に同一のデータ処理を実行させその処理結果の不一致を検出して故障を検出するようにした冗長動作が実行される。この冗長動作のために、3個のCPUA2、B6、C18は、同一のオペランドデータに関して同一の冗長タスクプログラムを実行する。図22のトリプルコアマイコンMCU1に故障が存在せず3個のCPUA2、B6、C18が正常に動作している場合には、3個のCPUA2、B6、C18から特定のアドレス空間に出力されメモリA3、B7、C18とバッファA11、B12、C22に二重書き込みされる書き込みデータは同一となる。しかし、図22のトリプルコアマイコンMCU1に故障が発生して3個のCPUA2、B6、C18のいずれかが異常動作している場合には、3個のCPUA2、B6、C18から特定のアドレス空間に出力されメモリA3、B7、C18とバッファA11、B12、C22とに二重書き込みされる書き込みデータは不一致となり、故障検出が可能となる。3個のFIFOA13、B14、C23は、3個のバッファA11、B12、C22を経由して3個のCPUA2、B6、C18から冗長タスク演算結果として順次に出力されて供給される複数のデータから所定の出力回数のデータのみを選択して格納する一方、それ以外の出力回数のデータは非選択として破棄するものである。3個のFIFOA13、B14、C23によって選択されて出力される所定の出力回数のデータは、比較器15によって比較される。比較器15による比較結果が一致する場合には、図22のトリプルコアマイコンMCU1に故障が存在しないと判定されて、比較器15による比較結果が不一致の場合には、図22のトリプルマイコンMCU1に故障が存在すると判定される。従って、高性能の3個のCPUA2、B6、C18から順次に出力される複数のデータによって3個のFIFOA13、B14、C23に短時間に空き領域がなくなり、3個のCPUA2、B6、C18が容易にストールするかウェイトされると言う問題が解消されることが可能となる。更に図22に示した本発明の実施の形態4によるトリプルコアマイコンMCU1では、バッファA11、B12、C22として、図19と図20とに示した本発明の実施の形態2による演算機能付きのバッファメモリを使用することで、単一のCPUA2の異常の検出確率を著しく向上することが可能となる。[実施の形態5]《他のトリプルコアマイコンの構成》図23は、本発明の実施の形態5による他のトリプルコアマイコンMCU1の構成を示す図である。図23に示した本発明の実施の形態5によるトリプルマイコンMCU1が、図22に示す本発明の実施の形態4によるトリプルコアマイコンMCU1と相違するのは、以下の点である。すなわち、図23に示した本発明の実施の形態5によるトリプルマイコンMCU1では、3個のCPUA2、B6、C18の処理結果の一致不一致の検出を3つの機能ブロック24、25、26により実行するようにしたものである。図23に示した本発明の実施の形態5によるトリプルマイコンMCU1に含まれた3つの機能ブロック24、25、26の構成は、同一である。特に、3つの機能ブロック24、25、26の各機能ブロックは、図1乃至図18に示した本発明の実施の形態1で説明したバッファA11とバッファB12とFIFOA13とFIFOB14と比較器15と制御部16とを含むものである。従って、第1機能ブロック24は第1CPUA2の出力データと第2CPUB6の出力データとを比較して、両方の出力データが不一致となる場合には、割り込み発生回路17に割り込み要求2400を出力することが可能である。また第2機能ブロック25は第2CPUB6の出力データと第3CPUC18の出力データとを比較して、両方の出力データが不一致となる場合には、割り込み発生回路17に割り込み要求2500を出力することが可能である。最後の第3機能ブロック26は第1CPUA2の出力データと第3CPUC18の出力データとを比較して、両方の出力データが不一致となる場合には、割り込み発生回路17に割り込み要求2600を出力することが可能である。割り込み発生回路17は、3つの機能ブロック24、25、26からの3つの割り込み要求を受け付けることが可能である。従って、図23に示す本発明の実施の形態5によるトリプルコアマイコンMCU1に故障が発生して3個のCPUA2、B6、C18のいずれかが異常動作している旨を通知する例外処理が、割り込み発生回路17への割り込み要求信号2400、2500、2600のいずれかに応答して起動される。[実施の形態6]《自動車への高信頼性マイコンの搭載》図24は、図1乃至図18に示した本発明の実施の形態1によるデュアルコアマイコンMCU1または図19と図20とに示した本発明の実施の形態2による演算機能付きのバッファメモリA11、B12を使用したデュアルコアマイコンMCU1または図21に示した本発明の実施の形態3によるシングルコアマイコンMCU1または図22に示した本発明の実施の形態4によるトリプルマイコンMCU1または図23に示した本発明の実施の形態5によるトリプルマイコンMCU1を搭載した本発明の実施の形態6による自動車の構成を示す図である。上述したように本発明の種々の実施の形態によるマイコンMCU1は、高信頼性を実現するための多重の冗長動作の機能を有するように構成されたものである。特に、多重の冗長動作の機能を利用することによって、マイコンMCU1の故障検出が可能となったものである。その結果、マイコンMCU1の故障が検出されない限り、本発明の種々の実施の形態によるマイコンMCU1の演算結果は高信頼性を有するものであるので、高い安全性と高精度とが必要とされる自動車へのマイコンMCU1の搭載が可能とされたものである。図24は、一例として、上述した本発明の種々の実施の形態によるマイコンMCU1が、自動車27のエンジン28を制御する電子制御装置29の内部に搭載される様子を示したものである。従って、図24に示した本発明の実施の形態6によれば、自動車27のエンジン28の制御を、高信頼性かつ高精度とすることが可能となる。以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。例えば、本発明は、4個のCPUを有するクワッドコアマイコンMCU1にも適用可能であることは、言うもでもない。この際には、4個のバッファと4個のFIFOとが使用されて、4個のFIFOの出力信号は比較器に供給される。また更に本発明は、マイクロコントローラの内蔵CPUの故障検出のための多重冗長動作にのみに限定されるものではない。本発明は、広範囲の用途の半導体集積回路の種々の内蔵機能モジュール、例えば、不動少数点演算ユニット、暗号処理プロセッサ、MPEGデコーダ、2D画像処理プロセッサ、3D画像処理プロセッサ等の故障検出用の多重冗長動作に適用されることが可能である。更に本発明は半導体集積回路の通常動作前の電源投入時の初期化シーケンスでの故障検出動作のための多重冗長動作や通常動作の開始後の故障検出動作のための多重冗長動作にのみに限定されるものではない。本発明による半導体集積回路の検査のための多重冗長動作は、例えば工場出荷前の半導体ウェハ段階での半導体集積回路の半導体チップの良品と不良品を判別する試験であるBISTに適用することが可能である。