(57)【要約】  機能モジュール(２)から出力される第１書き込みデータは内蔵メモリ(３)と第１バッファメモリ(１１)に供給され、機能モジュール(２)から出力される第２書き込みデータは内蔵メモリ(３)と第２バッファメモリ(１２)に供給される。第１と第２のＦＩＦＯメモリ(１３、１４)は、第１と第２のバッファメモリ(１１、１２)から順次に出力される第１と第２の出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、他のデータを非選択とする。比較器(１５)は、第１と第２のＦＩＦＯメモリ(１３、１４)によって選択され出力される所定の出力回数のデータを比較する。
2012144043.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路は、機能モジュールと、内蔵メモリと、第１バッファメモリと、第２バッファメモリと、第１ＦＩＦＯメモリと、第２ＦＩＦＯメモリと、比較器とを具備して、
前記半導体集積回路の検査のための多重冗長動作の第１動作の間に前記機能モジュールから出力される第１書き込みデータは前記内蔵メモリと前記第１バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第２動作の間に前記機能モジュールから出力される第２書き込みデータは前記内蔵メモリと前記第２バッファメモリに供給され、
前記第１ＦＩＦＯメモリは前記第１動作の間に前記第１バッファメモリから順次に出力される第１出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、
前記第２ＦＩＦＯメモリは前記第２動作の間に前記第２バッファメモリから順次に出力される第２出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、
前記比較器は、前記第１ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データを比較する
ことを特徴とする半導体集積回路。
【請求項２】
請求項１において、
前記機能モジュールは、第１機能モジュールと第２機能モジュールとを少なくとも含むものであり、
前記内蔵メモリは、第１内蔵メモリと第２内蔵メモリとを少なくとも含むものであり、
前記第１動作の間に前記第１機能モジュールから出力される前記第１書き込みデータは、前記第１内蔵メモリと前記第１バッファメモリとに供給されるものであり、
前記第２動作の間に前記第２機能モジュールから出力される前記第２書き込みデータは、前記第２内蔵メモリと前記第２バッファメモリとに供給される
ことを特徴とする半導体集積回路。
【請求項３】
請求項２において、
前記第１機能モジュールと前記第２機能モジュールは、それぞれ第１中央処理ユニットと第２中央処理ユニットである
ことを特徴とする半導体集積回路。
【請求項４】
請求項２において、
前記第１バッファメモリは、前記第１動作の間に順次に前記第１バッファメモリに供給される前記第１書き込みデータの前記複数のデータの第１出力回数をカウント可能とされ、
前記第２バッファメモリは、前記第２動作の間に順次に前記第２バッファメモリに供給される前記第２書き込みデータの前記複数のデータの第２出力回数をカウント可能とされた
ことを特徴とする半導体集積回路。
【請求項５】
請求項４において、
前記半導体集積回路は、前記第１バッファメモリと前記第２バッファメモリと前記第１ＦＩＦＯメモリと前記第２ＦＩＦＯメモリに接続された制御部を更に具備して、
前記制御部は、前記所定の出力回数の情報を格納可能な第１レジスタと第２レジスタとを含み、
前記第１バッファメモリによってカウントされた前記第１出力回数が前記第１レジスタに格納された前記情報と一致することに応答して、前記第１ＦＩＦＯメモリが前記所定の出力回数の前記データを選択して格納するための第１ＦＩＦＯライトイネーブル信号を前記制御部が前記第１ＦＩＦＯメモリに供給可能とされ、
前記第２バッファメモリによってカウントされた前記第２出力回数が前記第２レジスタに格納された前記情報と一致することに応答して、前記第２ＦＩＦＯメモリが前記所定の出力回数の前記データを選択して格納するための第２ＦＩＦＯライトイネーブル信号を前記制御部が前記第２ＦＩＦＯメモリに供給可能とされた
ことを特徴とする半導体集積回路。
【請求項６】
請求項３において、
前記多重冗長動作の前記第１動作と前記第２動作の内容は、前記第１中央処理ユニットと前記第２中央処理ユニットとのいずれか一方で以前に実行されていた通常動作の内容とされることが可能である
ことを特徴とする半導体集積回路。
【請求項７】
請求項６において、
前記通常動作から前記多重冗長動作への移行は、前記通常動作を実行中の前記第１中央処理ユニットと前記第２中央処理ユニットとのいずれか一方から他方への割り込みによって可能とされた
ことを特徴とする半導体集積回路。
【請求項８】
請求項５において、
前記第１バッファメモリは、前記第１ＦＩＦＯメモリに出力される前記第１出力データを格納する第１フリップフロップと、一方の入力端子と他方の入力端子とに前記第１書き込みデータと前記第１フリップフロップの出力端子の第１出力データとがそれぞれ供給される第１演算回路とを含み、前記第１演算回路の出力端子から生成される出力信号は前記第１フリップフロップに格納可能とされ、
前記第２バッファメモリは、前記第２ＦＩＦＯメモリに出力される前記第２出力データを格納する第２フリップフロップと、一方の入力端子と他方の入力端子とに前記第２書き込みデータと前記第２フリップフロップの出力端子の第２出力データとがそれぞれ供給される第２演算回路とを含み、前記第２演算回路の出力端子から生成される出力信号は前記第２フリップフロップに格納可能とされた
ことを特徴とする半導体集積回路。
【請求項９】
請求項１乃至請求項８のいずれかにおいて、
前記比較器による前記第１ＦＩＦＯメモリによって出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって出力される前記所定の出力回数の前記データとの比較結果が両方のデータの一致を示す場合には、前記半導体集積回路は正常と判断されて、比較結果が両方のデータの不一致を示す場合には、前記半導体集積回路は異常と判断される
ことを特徴とする半導体集積回路。
【請求項１０】
請求項１乃至請求項８のいずれかにおいて、
前記第１中央処理ユニットは前記第１内蔵メモリに格納された前記通常動作のための命令を実行することに並列して、前記第２中央処理ユニットは前記第１２内蔵メモリに格納された前記通常動作のための命令を実行することによって、前記半導体集積回路は多重コアのマイクロコントローラとして動作可能とされた
ことを特徴とする半導体集積回路。
【請求項１１】
半導体集積回路は、機能モジュールと、内蔵メモリと、第１バッファメモリと、第２バッファメモリと、第１ＦＩＦＯメモリと、第２ＦＩＦＯメモリと、比較器とを具備して、
前記半導体集積回路の検査のための多重冗長動作の第１動作の間に前記機能モジュールから出力される第１書き込みデータは前記内蔵メモリと前記第１バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第２動作の間に前記機能モジュールから出力される第２書き込みデータは前記内蔵メモリと前記第２バッファメモリに供給され、
前記第１ＦＩＦＯメモリは前記第１動作の間に前記第１バッファメモリから順次に出力される第１出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、
前記第２ＦＩＦＯメモリは前記第２動作の間に前記第２バッファメモリから順次に出力される第２出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、
前記比較器は、前記第１ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データを比較する
ことを特徴とする半導体集積回路の動作方法。
【請求項１２】
請求項１１において、
前記機能モジュールは、第１機能モジュールと第２機能モジュールとを少なくとも含むものであり、
前記内蔵メモリは、第１内蔵メモリと第２内蔵メモリとを少なくとも含むものであり、
前記第１動作の間に前記第１機能モジュールから出力される前記第１書き込みデータは、前記第１内蔵メモリと前記第１バッファメモリとに供給されるものであり、
前記第２動作の間に前記第２機能モジュールから出力される前記第２書き込みデータは、前記第２内蔵メモリと前記第２バッファメモリとに供給される
ことを特徴とする半導体集積回路の動作方法。
【請求項１３】
請求項１２において、
前記第１機能モジュールと前記第２機能モジュールは、それぞれ第１中央処理ユニットと第２中央処理ユニットである
ことを特徴とする半導体集積回路。
【請求項１４】
請求項１２において、
前記第１バッファメモリは、前記第１動作の間に順次に前記第１バッファメモリに供給される前記第１書き込みデータの前記複数のデータの第１出力回数をカウント可能とされ、
前記第２バッファメモリは、前記第２動作の間に順次に前記第２バッファメモリに供給される前記第２書き込みデータの前記複数のデータの第２出力回数をカウント可能とされた
ことを特徴とする半導体集積回路の動作方法。
【請求項１５】
請求項１４において、
前記半導体集積回路は、前記第１バッファメモリと前記第２バッファメモリと前記第１ＦＩＦＯメモリと前記第２ＦＩＦＯメモリに接続された制御部を更に具備して、
前記制御部は、前記所定の出力回数の情報を格納可能な第１レジスタと第２レジスタとを含み、
前記第１バッファメモリによってカウントされた前記第１出力回数が前記第１レジスタに格納された前記情報と一致することに応答して、前記第１ＦＩＦＯメモリが前記所定の出力回数の前記データを選択して格納するための第１ＦＩＦＯライトイネーブル信号を前記制御部が前記第１ＦＩＦＯメモリに供給可能とされ、
前記第２バッファメモリによってカウントされた前記第２出力回数が前記第２レジスタに格納された前記情報と一致することに応答して、前記第２ＦＩＦＯメモリが前記所定の出力回数の前記データを選択して格納するための第２ＦＩＦＯライトイネーブル信号を前記制御部が前記第２ＦＩＦＯメモリに供給可能とされた
ことを特徴とする半導体集積回路の動作方法。
【請求項１６】
請求項１３において、
前記多重冗長動作の前記第１動作と前記第２動作の内容は、前記第１中央処理ユニットと前記第２中央処理ユニットとのいずれか一方で以前に実行されていた通常動作の内容とされることが可能である
ことを特徴とする半導体集積回路の動作方法。
【請求項１７】
請求項１６において、
前記通常動作から前記多重冗長動作への移行は、前記通常動作を実行中の前記第１中央処理ユニットと前記第２中央処理ユニットとのいずれか一方から他方への割り込みによって可能とされた
ことを特徴とする半導体集積回路の動作方法。
【請求項１８】
請求項１５において、
前記第１バッファメモリは、前記第１ＦＩＦＯメモリに出力される前記第１出力データを格納する第１フリップフロップと、一方の入力端子と他方の入力端子とに前記第１書き込みデータと前記第１フリップフロップの出力端子の第１出力データとがそれぞれ供給される第１演算回路とを含み、前記第１演算回路の出力端子から生成される出力信号は前記第１フリップフロップに格納可能とされ、
前記第２バッファメモリは、前記第２ＦＩＦＯメモリに出力される前記第２出力データを格納する第２フリップフロップと、一方の入力端子と他方の入力端子とに前記第２書き込みデータと前記第２フリップフロップの出力端子の第２出力データとがそれぞれ供給される第２演算回路とを含み、前記第２演算回路の出力端子から生成される出力信号は前記第２フリップフロップに格納可能とされた
ことを特徴とする半導体集積回路の動作方法。
【請求項１９】
請求項１１乃至請求項１８のいずれかにおいて、
前記比較器による前記第１ＦＩＦＯメモリによって出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって出力される前記所定の出力回数の前記データとの比較結果が両方のデータの一致を示す場合には、前記半導体集積回路は正常と判断されて、比較結果が両方のデータの不一致を示す場合には、前記半導体集積回路は異常と判断される
ことを特徴とする半導体集積回路の動作方法。
【請求項２０】
請求項１１乃至請求項１８のいずれかにおいて、
前記第１中央処理ユニットは前記第１内蔵メモリに格納された前記通常動作のための命令を実行することに並列して、前記第２中央処理ユニットは前記第１２内蔵メモリに格納された前記通常動作のための命令を実行することによって、前記半導体集積回路は多重コアのマイクロコントローラとして動作可能とされた
ことを特徴とする半導体集積回路の動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路とその動作方法に関し、特に半導体集積回路の検査のための多重冗長動作の間に、内蔵メモリに連続した書き込みデータを格納可能とする一方、多重冗長動作の出力の比較器による比較のためのＦＩＦＯが書き込みデータによって容易に満杯となることを軽減するに有効な技術に関するものである。
【背景技術】
【０００２】
マイクロコントローラ(以下、単に「マイコン」と称する)は、家電製品、ＡＶ機器、携帯電話、自動車、産業機械等の機器に組み込まれ、メモリに格納されたプログラムに従ってデータ処理を実行することで、種々の機器を制御する半導体集積回路である。【０００３】
特に、自動車の分野では、制御装置の故障が事故の原因となる可能性があるため、マイコンを含む部品に高い信頼性が求められ、故障が発生した場合には故障を検出して自動車が危険な状態にならないように安全機能を作動させるように設計されている。さらに車載マイコンは、自動車に搭載された種々のセンサやアクチュエータの診断を行ってこれらの故障を検出するだけではなく、車載マイコン自身の故障も検出する必要がある。【０００４】
マイコンの故障検出には様々な方法があるが、ＣＰＵを２重化して同一の処理を実行して、バスの値を比較する方法が採用される。【０００５】
下記非特許文献１には、マスターモジュールと比較用のチェッカーモジュールとが同一の処理を同時に実行して、それぞれの処理結果を比較回路によって比較してエラーを検出することが記載されている。【０００６】
下記特許文献１には、２個のＣＰＵと２個のメモリとバス比較器を使用して、２個のＣＰＵの出力信号をバス比較器によって比較することが記載されている。【０００７】
また下記特許文献２には、３個のＣＰＵと３個のメモリと３個のＦＩＦＯと３個の比較回路を使用して、３個のＣＰＵの出力信号を３個のＦＩＦＯを介して３個の比較回路の入力に供給して、３個のＣＰＵの出力信号を３個の比較回路によって比較することが記載されている。【０００８】
更に下記特許文献３には、複数のＣＰＵの複数の出力信号を複数の圧縮器により圧縮して、複数の圧縮器の複数の圧縮結果を比較器により比較することが記載され、また複数のＣＰＵの複数の出力信号を複数のＦＩＦＯを介して比較器の複数の入力に供給して複数のＣＰＵの出力信号を比較器により比較することが記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平１０−２６１７６２号  公報
【特許文献２】特開平６−３２４９００号  公報
【特許文献３】特開２０１０−１１３３８８号  公報
【非特許文献】
【００１０】
【非特許文献１】Ｒｉｃｈａｒｄ  Ｅｍｍｅｒｓｏｎ  ｅｔ  ａｌ，  “Ｆａｕｌｔ  Ｔｏｌｅｒａｎｃｅ  Ａｃｈｉｅｖｅｄ  ｉｎ  ＶＬＳＩ”，  １９８４  ＩＥＥＥ  ＭＩＣＲＯ，  ＰＰ．３４−４３．
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明者等は本発明に先立って、自動車に搭載可能な高い安全性と高い精度とが必要とされるマイクロコントローラ(マイコン)の研究・開発に従事した。【００１２】
この本発明に先立った本発明者等による研究・開発では、本発明者等は最初に、上記特許文献３に記載されたＦＩＦＯを使用して複数のＣＰＵの出力信号の比較器による比較方式を検討した。その理由は、ＦＩＦＯはデータ圧縮せずに供給されたデータを先入れ先出し(First-In／First-Out)の方式で格納して出力するメモリであり、高速の格納処理と高速の出力処理とが可能であるためである。それに対して、圧縮器は線型帰還シフトレジスタ(ＬＦＳＲ：Leaner Feedback Shift Register)や巡回冗長検査(ＣＲＣ：Cyclic Redundancy Check)等の複雑な圧縮アルゴリズムを使用するので、比較器での比較処理の以前の圧縮処理期間が長くなると言う欠点を有する。【００１３】
一方、マイコンのコアであるＣＰＵは半導体製造プロセスの微細化によって高速・高性能とされており、ＣＰＵの処理速度は年々向上している。このようにＣＰＵの処理速度が向上されているのに対して、マイコンの故障診断のためのＣＰＵの多重出力比較処理での圧縮器の圧縮処理期間が長いと言う問題は重大な欠点である。それに対して、上記特許文献３に記載されたＦＩＦＯを使用する複数のＣＰＵの出力信号の比較器による比較方式は、回路規模や消費電力も小さく、高速の格納処理と高速の出力処理が可能であるので、極めて有益である。【００１４】
しかし、本発明に先立った本発明者等による研究・開発によって、ＣＰＵの処理速度の向上により故障診断や故障検査の動作期間にＣＰＵからＦＩＦＯに大量の書き込みデータが供給されるので、ＦＩＦＯに空き領域が無くなりＣＰＵの書き込みを停止させるためにウェイト要求信号をＦＩＦＯからＣＰＵに出力しなければならないと言う問題が明らかとされた。このウェイト要求信号によってＣＰＵがストールするかウェイトされるので、ＣＰＵのデータ処理が低下してしまう。【００１５】
この問題を解消するために、マイコンの故障診断や故障検査の動作期間にＣＰＵを連続動作でなく間欠動作させることにより、ＣＰＵからＦＩＦＯへの書き込みデータ量を削減することも検討された。しかし、この方法では、ＣＰＵからメモリへの書き込みデータが連続せず非連続の離散的なデータとなってしまう。すなわち、マイコンの故障診断や故障検査の動作期間に複数のＣＰＵによって実行されて比較器によって比較される冗長動作の内容は、複数のＣＰＵのいずれか一方でそれ以前に実行されていた通常動作のデータ処理の内容とされる場合には、メモリから通常動作のデータ処理の連続した書き込みデータを読み出すことが不可能となると言う問題が、本発明に先立った本発明者等による検討によって明らかとされた。【００１６】
更にこの問題を解消するために、マイコンの故障診断や故障検査の動作期間にＣＰＵを通常の高速動作でなく診断検査用の低速動作させることによって、ＣＰＵからＦＩＦＯへの書き込みデータ量を削減することも検討された。しかし、この方法では、ＣＰＵの処理速度が通常の高速動作より大幅に低い低速動作となるので、ＣＰＵの異常や故障の検出確率が著しく低下すると言う別の問題が本発明者等による検討によって明らかとされた。【００１７】
本発明は、以上のような本発明に先立った本発明者等による検討の結果、なされたものである。【００１８】
従って、本発明の目的とするところは、半導体集積回路の検査のための多重冗長動作の間に、内蔵メモリには連続した書き込みデータを格納可能とする一方、多重冗長動作の出力の比較器による比較のためのＦＩＦＯが書き込みデータによって容易に満杯となることを軽減することにある。【００１９】
本発明の他の目的とするところは、異常や故障の検出確率を向上することにある。【００２０】
本発明の前記目的並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２１】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。【００２２】
すなわち、本発明の代表的な実施の形態による半導体集積回路(１)は、機能モジュール(２)と、内蔵メモリ(３)と、第１バッファメモリ(１１)と、第２バッファメモリ(１２)と、第１ＦＩＦＯメモリ(１３)と、第２ＦＩＦＯメモリ(１４)と、比較器(１５)とを具備する。【００２３】
前記半導体集積回路の検査のための多重冗長動作の第１動作の間に前記機能モジュールから出力される第１書き込みデータは前記内蔵メモリと前記第１バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第２動作の間に前記機能モジュールから出力される第２書き込みデータは前記内蔵メモリと前記第２バッファメモリに供給される。【００２４】
前記第１ＦＩＦＯメモリは前記第１動作の間に前記第１バッファメモリから順次に出力される第１出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。【００２５】
前記第２ＦＩＦＯメモリは前記第２動作の間に前記第２バッファメモリから順次に出力される第２出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。【００２６】
前記比較器は、前記第１ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データを比較することを特徴とするものである(図２１参照)。
【発明の効果】
【００２７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。【００２８】
すなわち、代表的な本発明によれば、半導体集積回路の検査のための多重冗長動作の間に内蔵メモリには連続した書き込みデータを格納可能とする一方、多重冗長動作の出力の比較器による比較のためのＦＩＦＯが書き込みデータによって容易に満杯となることを軽減することができる。
【図面の簡単な説明】
【００２９】
【図１】図１は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の構成を示す図である。
【図２】図２は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれるバッファメモリとしてのバッファＡ１１、Ｂ１２の構成を示す図である。
【図３】図３は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図２に示したバッファメモリとしてのバッファＡ１１、Ｂ１２の動作を説明する図である。
【図４】図４は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれるＦＩＦＯメモリとしてのＦＩＦＯＡ１３、Ｂ１４の構成を示す図である。
【図５】図５は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図４に示したＦＩＦＯメモリとしてのＦＩＦＯＡ１３、Ｂ１４の動作を説明する図である。
【図６】図６は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる比較器１５の構成を示す図である。
【図７】図７は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図６に示した比較器１５の動作を説明する図である。
【図８】図８は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる制御部１６の構成を示す図である。
【図９】図９は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の制御部１６に含まれる図８に示した比較制御レジスタ(ＣＣＲ０)１６１０の構成を示す図である。
【図１０】図１０は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の制御部１６に含まれる図８に示した第１比較制御レジスタ(ＣＣＲ１)１６１１、第２比較制御レジスタ(ＣＣＲ２)１６１２の構成を示す図である。
【図１１】図１１は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の制御部１６に含まれる図８に示した比較状態レジスタ(ＣＳＲ)１６１３の構成を示す図である。
【図１２】図１２は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図４に示したＦＩＦＯＡ１３、Ｂ１４の動作と図８に示した制御部１６の動作とを、ＦＩＦＯＡ１３を中心に示した図である。
【図１３】図１３は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図４に示したＦＩＦＯＡ１３、Ｂ１４の動作と図８に示した制御部１６の動作とを、ＦＩＦＯＢ１４を中心に示した図である。
【図１４】図１４は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の図１２と図１３とに示したＦＩＦＯＡ１３、Ｂ１４の動作タイミングチャートの重要なタイミングでのＦＩＦＯＡ１３、Ｂ１４の動作を示す図である。
【図１５】図１５は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図４に示したＦＩＦＯＡ１３、Ｂ１４の動作と図８に示した制御部１６の動作とを、ＦＩＦＯＡ１３を中心に示した図である。
【図１６】図１６は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図４に示したＦＩＦＯＡ１３、Ｂ１４の動作と図８に示した制御部１６の動作とを、ＦＩＦＯＢ１４を中心に示した図である。
【図１７】図１７は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の図１５と図１６とに示したＦＩＦＯＡ１３、Ｂ１４の動作タイミングチャートの重要なタイミングでのＦＩＦＯＡ１３、Ｂ１４の動作を示す図である。
【図１８】図１８は、図１に示した本発明の実施の形態１において、デュアルコアマイコンＭＣＵ１の通常動作の２個のＣＰＵＡ２、Ｂ６による並列データ処理から故障検出動作のための２個のＣＰＵＡ２、Ｂ６による冗長動作に移行する様子を示す図である。
【図１９】図１９は、図１に示すデュアルコアマイコンＭＣＵ１に含まれる本発明の実施の形態２によるバッファメモリとしてのバッファＡ１１、Ｂ１２の他の構成を示す図である。
【図２０】図２０は、図１９に示した本発明の実施の形態２による演算機能付きのバッファメモリＡ１１、Ｂ１２の動作を説明する図である。
【図２１】図２１は、本発明の実施の形態３によるシングルコアマイコンＭＣＵ１の構成を示す図である。
【図２２】図２２は、本発明の実施の形態４によるトリプルコアマイコンＭＣＵ１の構成を示す図である。
【図２３】図２３は、本発明の実施の形態５による他のトリプルコアマイコンＭＣＵ１の構成を示す図である。
【図２４】図２４は、図１乃至図１８に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１または図１９と図２０とに示した本発明の実施の形態２による演算機能付きのバッファメモリＡ１１、Ｂ１２を使用したデュアルコアマイコンＭＣＵ１または図２１に示した本発明の実施の形態３によるシングルコアマイコンＭＣＵ１または図２２に示した本発明の実施の形態４によるトリプルマイコンＭＣＵ１または図２３に示した本発明の実施の形態５によるトリプルマイコンＭＣＵ１を搭載した本発明の実施の形態６による自動車の構成を示す図である。
【発明を実施するための形態】
【００３０】
１．実施の形態の概要
まず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号は、それが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００３１】
〔１〕本発明の代表的な実施の形態による半導体集積回路(１)は、機能モジュール(２)と、内蔵メモリ(３)と、第１バッファメモリ(１１)と、第２バッファメモリ(１２)と、第１ＦＩＦＯメモリ(１３)と、第２ＦＩＦＯメモリ(１４)と、比較器(１５)とを具備する。
【００３２】
前記半導体集積回路の検査のための多重冗長動作の第１動作の間に前記機能モジュールから出力される第１書き込みデータは前記内蔵メモリと前記第１バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第２動作の間に前記機能モジュールから出力される第２書き込みデータは前記内蔵メモリと前記第２バッファメモリに供給される。
【００３３】
前記第１ＦＩＦＯメモリは前記第１動作の間に前記第１バッファメモリから順次に出力される第１出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。
【００３４】
前記第２ＦＩＦＯメモリは前記第２動作の間に前記第２バッファメモリから順次に出力される第２出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。
【００３５】
前記比較器は、前記第１ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データを比較することを特徴とするものである(図２１参照)。
【００３６】
前記実施の形態によれば、半導体集積回路の検査のための多重冗長動作の間に内蔵メモリには連続した書き込みデータを格納可能とする一方、多重冗長動作の出力の比較器による比較のためのＦＩＦＯが書き込みデータによって容易に満杯となることを軽減することができる。
【００３７】
好適な実施の形態では、前記機能モジュールは、第１機能モジュール(２)と第２機能モジュール(６)とを少なくとも含むものである。
【００３８】
前記内蔵メモリは、第１内蔵メモリ(３)と第２内蔵メモリ(７)とを少なくとも含むものである。
【００３９】
前記第１動作の間に前記第１機能モジュールから出力される前記第１書き込みデータは、前記第１内蔵メモリと前記第１バッファメモリとに供給されるものである。
【００４０】
前記第２動作の間に前記第２機能モジュールから出力される前記第２書き込みデータは、前記第２内蔵メモリと前記第２バッファメモリとに供給されることを特徴とするものである(図１参照)。
【００４１】
他の好適な実施の形態では、前記第１機能モジュールと前記第２機能モジュールは、それぞれ第１中央処理ユニット(２)と第２中央処理ユニット(６)であることを特徴とするものである(図１参照)。
【００４２】
更に他の好適な実施の形態では、前記第１バッファメモリは、前記第１動作の間に順次に前記第１バッファメモリに供給される前記第１書き込みデータの前記複数のデータの第１出力回数(ＢＣＡ)をカウント可能とされる。
【００４３】
前記第２バッファメモリは、前記第２動作の間に順次に前記第２バッファメモリに供給される前記第２書き込みデータの前記複数のデータの第２出力回数(ＢＣＢ)をカウント可能とされたことを特徴とするものである(図２、図３参照)。
【００４４】
より好適な実施の形態による半導体集積回路は、前記第１バッファメモリと前記第２バッファメモリと前記第１ＦＩＦＯメモリと前記第２ＦＩＦＯメモリに接続された制御部(１６)を更に具備する(図１参照)。
【００４５】
前記制御部は、前記所定の出力回数の情報(４、８、１２…)を格納可能な第１レジスタ(１６２５)と第２レジスタ(１６３５)とを含む。
【００４６】
前記第１バッファメモリによってカウントされた前記第１出力回数(ＢＣＡ)が前記第１レジスタに格納された前記情報(ＦＣＮＡ)と一致することに応答して、前記第１ＦＩＦＯメモリが前記所定の出力回数の前記データを選択して格納するための第１ＦＩＦＯライトイネーブル信号(ＦＷＥＡ)を前記制御部が前記第１ＦＩＦＯメモリに供給可能とされる。
【００４７】
前記第２バッファメモリによってカウントされた前記第２出力回数(ＢＣＢ)が前記第２レジスタに格納された前記情報(ＦＣＮＢ)と一致することに応答して、前記第２ＦＩＦＯメモリが前記所定の出力回数の前記データを選択して格納するための第２ＦＩＦＯライトイネーブル信号(ＦＷＥＢ)を前記制御部が前記第２ＦＩＦＯメモリに供給可能とされたことを特徴とするものである(図８参照)。
【００４８】
他のより好適な実施の形態では、前記多重冗長動作の前記第１動作と前記第２動作の内容は、前記第１中央処理ユニットと前記第２中央処理ユニットとのいずれか一方で以前に実行されていた通常動作の内容とされることが可能であることを特徴とするものである(図１８参照)。
【００４９】
更に他のより好適な実施の形態では、前記通常動作から前記多重冗長動作への移行は、前記通常動作を実行中の前記第１中央処理ユニットと前記第２中央処理ユニットとのいずれか一方から他方への割り込み(２０４)によって可能とされたことを特徴とするものである(図１８参照)。
【００５０】
別のより好適な実施の形態では、前記第１バッファメモリは、前記第１ＦＩＦＯメモリに出力される前記第１出力データを格納する第１フリップフロップ(１１５０)と、一方の入力端子と他方の入力端子とに前記第１書き込みデータと前記第１フリップフロップの出力端子の第１出力データ(１１０１)とがそれぞれ供給される第１演算回路(１１７０)とを含み、前記第１演算回路の出力端子から生成される出力信号は前記第１フリップフロップに格納可能とされる。
【００５１】
前記第２バッファメモリは、前記第２ＦＩＦＯメモリに出力される前記第２出力データを格納する第２フリップフロップと、一方の入力端子と他方の入力端子とに前記第２書き込みデータと前記第２フリップフロップの出力端子の第２出力データとがそれぞれ供給される第２演算回路とを含み、前記第２演算回路の出力端子から生成される出力信号は前記第２フリップフロップに格納可能とされたことを特徴とするものである(図１９参照)。
【００５２】
具体的な実施の形態では、前記比較器による前記第１ＦＩＦＯメモリによって出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって出力される前記所定の出力回数の前記データとの比較結果が両方のデータの一致を示す場合には、前記半導体集積回路は正常と判断されて、比較結果が両方のデータの不一致を示す場合には、前記半導体集積回路は異常と判断されることを特徴とするものである(図２１参照)。
【００５３】
最も具体的な実施の形態では、前記第１中央処理ユニットは前記第１内蔵メモリに格納された前記通常動作のための命令を実行することに並列して、前記第２中央処理ユニットは前記第１２内蔵メモリに格納された前記通常動作のための命令を実行することによって、前記半導体集積回路は多重コアのマイクロコントローラとして動作可能とされたことを特徴とするものである(図１参照)。
【００５４】
〔２〕本発明の別の観点の代表的な実施の形態は、機能モジュール(２)と、内蔵メモリ(３)と、第１バッファメモリ(１１)と、第２バッファメモリ(１２)と、第１ＦＩＦＯメモリ(１３)と、第２ＦＩＦＯメモリ(１４)と、比較器(１５)とを具備する半導体集積回路(１)の動作方法である。
【００５５】
前記半導体集積回路の検査のための多重冗長動作の第１動作の間に前記機能モジュールから出力される第１書き込みデータは前記内蔵メモリと前記第１バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第２動作の間に前記機能モジュールから出力される第２書き込みデータは前記内蔵メモリと前記第２バッファメモリに供給される。
【００５６】
前記第１ＦＩＦＯメモリは前記第１動作の間に前記第１バッファメモリから順次に出力される第１出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。
【００５７】
前記第２ＦＩＦＯメモリは前記第２動作の間に前記第２バッファメモリから順次に出力される第２出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択とする。
【００５８】
前記比較器は、前記第１ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データを比較することを特徴とするものである(図２１参照)。
【００５９】
前記実施の形態によれば、半導体集積回路の検査のための多重冗長動作の間に内蔵メモリには連続した書き込みデータを格納可能とする一方、多重冗長動作の出力の比較器による比較のためのＦＩＦＯが書き込みデータによって容易に満杯となることを軽減することができる。
【００６０】
２．実施の形態の詳細
実施の形態について更に詳述する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
【００６１】
［実施の形態１］
《デュアルコアマイコンの構成》
図１は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の構成を示す図である。
【００６２】
図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１は、２つのＣＰＵＡ２、ＣＰＵＢ６の出力を比較できるようにしたものである。尚、図１に示すデュアルコアマイコンＭＣＵ１の内部回路は、半導体集積回路の半導体チップ内部に集積化されている。
【００６３】
第１中央処理ユニットとしてのＣＰＵＡ２は命令を実行することによって演算やデータ転送等の処理を実行するプロセッサであり、第１内蔵メモリとしてのメモリＡ３はＣＰＵＡ２が実行する命令および処理するデータを記憶する。第１ＣＰＵバスとしてのＣＰＵＡバス４はＣＰＵＡ２がメモリＡ３等のデバイスをアクセスするためのバスであり、第１バスブリッジとしてのブリッジＡ５はＣＰＵＡ２がシステムバス１０を経由してその他のデバイスをアクセスする場合にＣＰＵＡバス４とシステムバス１０とを接続制御するコントローラである。
【００６４】
第２中央処理ユニットとしてのＣＰＵＢ６は命令を実行することによって演算やデータ転送等の処理を実行するプロセッサであり、第２内蔵メモリとしてのメモリＢ７はＣＰＵＢ６が実行する命令および処理するデータを記憶する。第２ＣＰＵバスとしてのＣＰＵＢバス８はＣＰＵＢ６がメモリＢ７等のデバイスをアクセスするためのバスであり、第２バスブリッジとしてのブリッジＢ９はＣＰＵＢ６がシステムバス１０を経由してその他のデバイスをアクセスする場合にＣＰＵＢバス８とシステムバス１０とを接続制御するコントローラである。
【００６５】
第１バッファメモリとしてのバッファＡ１１は、ＣＰＵＡ２が特定のアドレス空間に出力する書き込みデータを保持して、その出力回数をカウントする。第２バッファメモリとしてのバッファＢ１２も、ＣＰＵＢ６が特定のアドレス空間に出力する書き込みデータを保持して、その出力回数をカウントする。第１ＦＩＦＯメモリとしてのＦＩＦＯＡ１３はバッファＡ１１の出力データ１１０１を保持する一方、第２ＦＩＦＯメモリとしてのＦＩＦＯＢ１４はバッファＢ１２の出力データ１２０１を保持する。ここでの特定のアドレス空間と言う技術用語は、ＣＰＵＡ２、Ｂ６から出力される書き込みデータをメモリＡ３、Ｂ７とバッファＡ１１、Ｂ１２とに二重書き込みするためのアドレス空間を意味している。
【００６６】
比較器１５は、ＦＩＦＯＡ１３の出力データ１３００とＦＩＦＯＢ１４の出力データ１４００とを比較する。制御部１６はシステムバス１０に接続されており、ＣＰＵＡ２およびＣＰＵＢ６からレジスタ設定可能とされている。制御部１６の出力信号１６００はバッファＡ１１におけるカウンタのクリア信号およびデータ保持とカウントの許可信号である一方、制御部１６の出力信号１６０１はバッファＢ１２におけるカウンタのクリア信号およびデータ保持とカウントの許可信号である。制御部１６にはバッファＡ１１から出力されるカウント信号１１００とバッファＢ１２から出力されるカウント信号１２００が供給され、制御部１６はＦＩＦＯＡ１３、ＦＩＦＯＢ１４の制御信号１６０２、１６０３を出力する。また、制御部１６には比較器１５からの比較結果信号１５００が供給され、その比較結果は制御部１６内部のレジスタに保持される。比較結果が不一致だった場合には、制御部１６は、割り込み発生回路１７に割り込み要求信号１６０４(Ｃ＿ＩＮＴＲＥＱ)を出力することができる。
【００６７】
割り込み発生回路１７は、システムバス１０に接続されており、ＣＰＵＡ２およびＣＰＵＢ６からレジスタ設定可能とされている。この割り込み発生回路１７には、割り込み要求端子１００から割り込み要求が供給可能とされている。
【００６８】
図１には示していないが、デュアルコアマイコンＭＣＵ１にはＡ／Ｄ変換器、タイマ、シリアル通信等の機能モジュールが内蔵され、これら機能モジュールからの割り込み要求も割り込み発生回路１７に供給可能とされている。割り込み発生回路１７では複数の割り込み要求に関して優先順位が設定されており、最も優先順位の高い割り込み要求が選択されて、割り込み発生回路１７からＣＰＵＡ２への割り込み要求１７００とＣＰＵＢ６への割り込み要求１７０１とが出力される。
【００６９】
《デュアルコアマイコンでの通常動作》
図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１は高性能を実現するために、２個のＣＰＵＡ２、Ｂ６にそれぞれ独立したデータ処理を並列に実行させる。２個のＣＰＵＡ２、Ｂ６による並列処理結果は、２個のメモリＡ３、Ｂ７に並列に格納可能である。更に２個のメモリＡ３、Ｂ７のデータは、２個のブリッジＡ５、Ｂ９を介してシステムバス１０に転送されることも可能である。
【００７０】
《デュアルコアマイコンでの冗長動作》
図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１は高信頼性を実現するために、２個のＣＰＵＡ２、Ｂ６に同一のデータ処理を実行させその処理結果の不一致を検出して故障を検出するようにした冗長動作が実行される。
【００７１】
この冗長動作のために、２個のＣＰＵＡ２、Ｂ６は同一のオペランドデータに関して同一の冗長タスクプログラムを実行する。図１のデュアルコアマイコンＭＣＵ１に故障が存在せず２個のＣＰＵＡ２、Ｂ６が正常に動作している場合には、２個のＣＰＵＡ２、Ｂ６から特定のアドレス空間に出力されメモリＡ３、Ｂ７とバッファＡ１１、Ｂ１２に二重書き込みされる書き込みデータは同一となる。しかし、図１のデュアルコアマイコンＭＣＵ１に故障が発生して２個のＣＰＵＡ２、Ｂ６の一方が異常動作している場合には、２個のＣＰＵＡ２、Ｂ６から特定のアドレス空間に出力されメモリＡ３、Ｂ７とバッファＡ１１、Ｂ１２とに二重書き込みされる書き込みデータは不一致となり、故障検出が可能となる。
【００７２】
２個のＦＩＦＯＡ１３、Ｂ１４は、２個のバッファＡ１１、Ｂ１２を経由して２個のＣＰＵＡ２、Ｂ６から冗長タスク演算結果として順次に出力され供給される複数のデータから所定の出力回数のデータのみを選択して格納する一方、それ以外の出力回数のデータは非選択として破棄するものである。２個のＦＩＦＯＡ１３、Ｂ１４によって選択されて出力される所定の出力回数のデータは、比較器１５によって比較される。比較器１５による比較結果が一致する場合には、図１のデュアルコアマイコンＭＣＵ１に故障が存在しないと判定されて、比較器１５による比較結果が不一致の場合には、図１のデュアルコアマイコンＭＣＵ１に故障が存在すると判定される。従って、高性能の２個のＣＰＵＡ２、Ｂ６から順次に出力される複数のデータによって２個のＦＩＦＯＡ１３、Ｂ１４に短時間に空き領域がなくなり、２個のＣＰＵＡ２、Ｂ６が容易にストールするかウェイトされると言う問題が解消されることが可能となる。
【００７３】
《バッファメモリの構成》
図２は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれるバッファメモリとしてのバッファＡ１１、Ｂ１２の構成を示す図である。
【００７４】
バッファＡ１１、Ｂ１２には、ＣＰＵＡバス４、ＣＰＵＢバス８からライトデータＷＤとレディ信号ＲＤＹとコマンド信号ＣＭＤとアドレス信号Ａが供給され、制御部１６からクロック信号ＣＬＫとカウントイネーブル信号ＣＮＥとカウンタリセット信号ＣＮＲとパワーオンリセット信号ＲＳＴとが供給される。
【００７５】
デコーダ(ＤＥＣ)１１１０には、レディ信号ＲＤＹとコマンド信号ＣＭＤとアドレス信号Ａとが供給される。コマンド信号ＣＭＤが有効であることを意味するハイレベル“１”のレディ信号ＲＤＹとライトコマンドであるコマンド信号ＣＭＤとバッファＡ１１、Ｂ１２をアクセスするアドレス信号Ａとに応答して、デコーダ(ＤＥＣ)１１１０は、ハイレベル“１”のライトイネーブル信号ＷＥを生成する。
【００７６】
デコーダ(ＤＥＣ)１１１０から生成されるライトイネーブル信号ＷＥは、クロックＣＬＫの立ち上がりに応答してフリップフロップ(ＦＦ)１１２０に供給される。フリップフロップ(ＦＦ)１１２０の出力信号がハイレベル“１”でかつカウントイネーブル信号ＣＮＥがハイレベル“１”の場合には、ＡＮＤ回路１１３０の出力から生成されるバッファライトイネーブル信号ＢＷＥがハイレベル“１”となる。
【００７７】
バッファライトイネーブル信号ＢＷＥがハイレベル“１”の場合に、ライトデータＷＤはクロック信号ＣＬＫの立ち上がりに応答してフリップフロップ(ＦＦ)１１５０に格納される。フリップフロップ(ＦＦ)１１５０は、バッファ出力信号ＢＯを生成する。
【００７８】
バッファライトイネーブル信号ＢＷＥがハイレベル“１”の場合には、カウンタ(ＣＮＴ)１１６０はクロック信号ＣＬＫをカウントする。カウンタ(ＣＮＴ)１１６０は、バッファカウント信号ＢＣを生成する。
【００７９】
制御部１６からのパワーオンリセット信号ＲＳＴとカウンタリセット信号ＣＮＲとはＯＲ回路１１４０で論理和され、ＯＲ回路１１４０の出力によってカウンタ(ＣＮＴ)１１６０がリセットされる。
【００８０】
図１と図２に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１では、例えばバッファメモリとしてのバッファＡ１１、Ｂ１２のアドレスは固定されたものである。しかし、アドレス設定レジスタに、例えば開始アドレスから終了アドレスまでのアドレス範囲を、ＣＰＵＡ２、ＣＰＵＢ６によって設定可能とすることも可能である。従って、アドレス設定レジスタに設定されたアドレス範囲のアドレス信号Ａのデコーダ(ＤＥＣ)１１１０でのデコードによって、任意のメモリアドレスのメモリＡ３、Ｂ７への書き込みデータをバッファＡ１１、Ｂ１２にバッファ記憶することが可能である。
【００８１】
《バッファメモリの動作》
図３は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図２に示したバッファメモリとしてのバッファＡ１１、Ｂ１２の動作を説明する図である。
【００８２】
図３に示したように、ハイレベル“１”のレディ信号ＲＤＹはコマンド信号ＣＭＤの有効を示し、ローレベル“０”のレディ信号ＲＤＹはコマンド信号ＣＭＤの無効を示す。コマンド信号ＣＭＤには、Ｎ(No Operation、非動作)と、Ｒ(Read、読み出し動作)と、Ｗ(Write、書き込み動作)の３種類がある。アドレス信号Ａは、コマンド信号ＣＭＤと同様にクロック信号ＣＬＫによるクロックサイクルでＣＰＵＡ２またはＣＰＵＢ６からＣＰＵＡバス４またはＣＰＵバス８に出力される。
【００８３】
図３に示した例では、クロック信号ＣＬＫの１番目と２番目と７番目と９番目と１４番目とで、ＣＰＵＡ２またはＣＰＵＢ６から読み出し動作Ｒのコマンド信号ＣＭＤが出力されている。更に、クロック信号ＣＬＫの１番目と２番目と７番目と８番目と１４番目とで、ＣＰＵＡ２またはＣＰＵＢ６から、アドレス信号Ａ１とアドレス信号Ａ２とアドレス信号Ａ５とアドレス信号Ａ６とアドレス信号Ａ９がそれぞれ出力されている。従って、クロック信号ＣＬＫの２番目と３番目と９番目と１０番目と１５番目とで、データＤ１とデータＤ２とデータＤ５とデータＤ６とデータＤ９との各リードデータＲＤが、メモリＡ３またはメモリＢ７からＣＰＵＡバス４またはＣＰＵバス８を介してＣＰＵＡ２またはＣＰＵＢ６に読み出される。
【００８４】
更に図３に示した例では、クロック信号ＣＬＫの５番目と６番目と１０番目と１３番目とで、ＣＰＵＡ２またはＣＰＵＢ６から書き込み動作Ｗのコマンド信号ＣＭＤとが出力されている。更にクロック信号ＣＬＫの５番目と６番目と１０番目と１３番目とで、ＣＰＵＡ２またはＣＰＵＢ６から、アドレス信号Ａ３とアドレス信号Ａ４とアドレス信号Ａ７とアドレス信号Ａ８とがそれぞれ出力されている。従って、クロック信号ＣＬＫの６番目と７番目と１４番目とで、データＤ３とデータＤ４とデータＤ８との各ライトデータＷＤが、ＣＰＵＡ２またはＣＰＵＢ６からＣＰＵＡバス４またはＣＰＵバス８を介してメモリＡ３またはメモリＢ７とバッファＡ１１またはバッファＢ１２とに書き込まれる。尚、クロック信号ＣＬＫの１０番目のアドレス信号Ａ７は、メモリＡ３またはメモリＢ７とバッファＡ１１またはバッファＢ１２をアクセスするメモリアドレス以外のアドレスとなっている。例えば、クロック信号ＣＬＫの１０番目のアドレス信号Ａ７は、メモリマップドＩ／Ｏ等のその他のデバイスをアクセスするためのものである。
【００８５】
従って、他のデバイスをアクセスするためのアドレス信号Ａ７以外のアドレス信号Ａ３とアドレス信号Ａ４とアドレス信号Ａ８とに応答してデコーダ(ＤＥＣ)１１１０は、クロック信号ＣＬＫの５番目と６番目との期間とクロック信号ＣＬＫの１３番目の期間とに、ハイレベル“１”のライトイネーブル信号ＷＥをそれぞれ生成する。
【００８６】
フリップフロップ(ＦＦ)１１２０はデコーダ(ＤＥＣ)１１１０の出力から生成されたライトイネーブル信号ＷＥをクロック信号ＣＬＫの１クロック分遅延するので、この１クロック分遅延されたハイレベル“１”のバッファライトイネーブル信号ＢＷＥがＡＮＤ回路１１３０の出力から生成される。
【００８７】
その結果、ハイレベル“１”のバッファライトイネーブル信号ＢＷＥに応答して、データＤ３とデータＤ４とデータＤ８の各ライトデータＷＤがフリップフロップ(ＦＦ)１１５０に格納されるので、フリップフロップ(ＦＦ)１１５０の出力からデータＤ３とデータＤ４とデータＤ８とのバッファ出力信号ＢＯが生成される。またカウンタ(ＣＮＴ)１１６０はハイレベル“１”のバッファライトイネーブル信号ＢＷＥとクロック信号ＣＬＫに応答して、バッファ出力信号ＢＯの出力回数としてのバッファカウント信号ＢＣを出力する。
【００８８】
《ＦＩＦＯメモリの構成》
図４は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれるＦＩＦＯメモリとしてのＦＩＦＯＡ１３、Ｂ１４の構成を示す図である。
【００８９】
図４に示したようにＦＩＦＯメモリとしてのＦＩＦＯＡ１３、Ｂ１４は、４段のフリップフロップ(ＦＦ)１３１０、１３２０、１３３０、１３４０と、デコーダ(ＤＥＣ)１３５０と、セレクタ(ＳＥＬ)１３６０とから構成されている。
【００９０】
４段のフリップフロップ(ＦＦ)１３１０〜１３４０のデータ入力端子には、図２に示したバッファメモリとしてのバッファＡ１１、Ｂ１２から生成されるバッファ出力信号ＢＯが供給される。デコーダ(ＤＥＣ)１３５０に制御部１６からＦＩＦＯライトイネーブル信号ＦＷＥとＦＩＦＯライト番号信号ＦＷＮとが供給され、デコーダ(ＤＥＣ)１３５０からライトイネーブル信号ＷＥ０、ＷＥ１、ＷＥ２、ＷＥ３が生成される。クロック信号ＣＬＫの立ち上がりのタイミングでデコーダ(ＤＥＣ)１３５０からの複数のライトイネーブル信号ＷＥ０、ＷＥ１、ＷＥ２、ＷＥ３のいずれかの信号がハイレベル“１”となることによって、４段のフリップフロップ(ＦＦ)１３１０、１３２０、１３３０、１３４０のいずれかにバッファ出力信号ＢＯが格納されるかが選択される。
【００９１】
制御部１６からＦＩＦＯリード番号信号ＦＲＮがセレクタ(ＳＥＬ)１３６０に供給され、ＦＩＦＯリード番号信号ＦＲＮが示す番号のフリップフロップ(ＦＦ)１３１０、１３２０、１３３０、１３４０の出力信号ＦＯ０、ＦＯ１、ＦＯ２、ＦＯ３のいずれかが選択されてＦＩＦＯ出力信号ＦＯとなる。
【００９２】
《ＦＩＦＯの動作》
図５は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図４に示したＦＩＦＯメモリとしてのＦＩＦＯＡ１３、Ｂ１４の動作を説明する図である。
【００９３】
図５は、バッファＡ１１、Ｂ１２からＦＩＦＯＡ１３、Ｂ１４に順次に供給される４個のバッファ出力信号ＢＯのうち最後の１個だけが、ＦＩＦＯＡ１３、Ｂ１４に格納されることを示している。すなわち、順次に供給される４個のバッファ出力信号ＢＯとしてのデータ入力信号Ｄ１、Ｄ２、Ｄ３、Ｄ４のうち最後の１個のデータ入力信号Ｄ４だけがＦＩＦＯＡ１３、Ｂ１４に格納され、その後順次に供給される４個のバッファ出力信号ＢＯとしてのデータ入力信号Ｄ５、Ｄ６、Ｄ７、Ｄ８のうち最後の１個のデータ入力信号Ｄ８だけがＦＩＦＯＡ１３、Ｂ１４に格納される。
【００９４】
図５に示すように、ＦＩＦＯライト番号信号ＦＷＮとＦＩＦＯリード番号信号ＦＲＮとは、最初は制御部１６によって初期値“０”に設定されている。８番目のクロック信号ＣＬＫの立ち上がりのタイミングで制御部１６によってＦＩＦＯライトイネーブル信号ＦＷＥがハイレベル“１”に制御されるので、４個目のデータ入力信号Ｄ４が９番目のクロック信号ＣＬＫの立ち上がりのタイミングにて１段目のフリップフロップ(ＦＦ)１３１０に格納される。この時には、ＦＩＦＯリード番号信号ＦＲＮが初期値“０”に設定されているので、１段目のフリップフロップ(ＦＦ)１３１０の出力信号ＦＯ０がセレクタ(ＳＥＬ)１３６０によって選択されてＦＩＦＯ出力信号ＦＯには４個目のデータ入力信号Ｄ４が出力される。一方、９番目のクロック信号ＣＬＫの立ち上がりのタイミングでの１段目のフリップフロップ(ＦＦ)１３１０への４個目のデータ入力信号Ｄ４の格納に応答して、制御部１６はＦＩＦＯライト番号信号ＦＷＮを初期値“０”から次の更新値“１”に変更する。
【００９５】
ＦＩＦＯメモリとしての２個のＦＩＦＯＡ１３、ＦＩＦＯＢ１４に同一の４個目のデータ入力信号Ｄ４が格納されると、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１内部の比較器１５によって２個のＦＩＦＯＡ１３、ＦＩＦＯＢ１４の両方のＦＩＦＯ出力信号ＦＯの比較が実行される。この比較が実行された後には、２個のＦＩＦＯＡ１３、ＦＩＦＯＢ１４に格納された４個目のデータ入力信号Ｄ４は不要になる。図５に示した例では、８番目のクロック信号ＣＬＫの立ち上がりのタイミングで２個のＦＩＦＯＡ１３、ＦＩＦＯＢ１４の一方に既に４個目のデータ入力信号Ｄ４が格納され、１１番目のクロック信号ＣＬＫの立ち上がりのタイミングで２個のＦＩＦＯＡ１３、ＦＩＦＯＢ１４の他方に４個目のデータ入力信号Ｄ４が格納され、比較器１５によって２個のＦＩＦＯＡ１３、ＦＩＦＯＢ１４の両方のＦＩＦＯ出力信号ＦＯの比較が実行される。その結果、１２番目のクロック信号ＣＬＫの立ち上がりのタイミング以降では、１段目のフリップフロップ(ＦＦ)１３１０中には有効なデータ入力信号が格納されていないので、図５の網掛けに示すようにＦＩＦＯ出力信号ＦＯは不定となる。更に、比較器１５による２個のＦＩＦＯＡ１３、ＦＩＦＯＢ１４のＦＩＦＯ出力信号ＦＯの比較実行に応答して、制御部１６はＦＩＦＯリード番号信号ＦＲＮを初期値“０”から次の更新値“１”に変更する。
【００９６】
更に、図５に示したように、１３番目のクロック信号ＣＬＫの立ち上がりのタイミングで制御部１６によってＦＩＦＯライトイネーブル信号ＦＷＥがハイレベル“１”に制御されるので、８個目のデータ入力信号Ｄ８が１４番目のクロック信号ＣＬＫの立ち上がりのタイミングにて２段目のフリップフロップ(ＦＦ)１３２０に格納される。このように８個目のデータ入力信号Ｄ８が２段目のフリップフロップ(ＦＦ)１３２０に格納されるのは、制御部１６によってＦＩＦＯライト番号信号ＦＷＮを初期値“０”から更新値“１”に変更されているためである。この時には、ＦＩＦＯリード番号信号ＦＲＮが更新値“１”に設定されているので、２段目のフリップフロップ(ＦＦ)１３２０の出力信号ＦＯ１がセレクタ(ＳＥＬ)１３６０によって選択されてＦＩＦＯ出力信号ＦＯには８個目のデータ入力信号Ｄ８が出力される。
【００９７】
《比較器の構成》
図６は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる比較器１５の構成を示す図である。
【００９８】
図６に示したように、比較器１５はデジタル比較器１５１０を含み、デジタル比較器１５１０の一方の入力端子と他方の入力端子にはＦＩＦＯＡ１３のＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯＢ１４のＦＩＦＯ出力信号ＦＯＢ(１４００)とがそれぞれ供給され、デジタル比較器１５１０の出力端子から比較出力信号ＣＯが生成される。従って、ＦＩＦＯＡ１３のＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯＢ１４のＦＩＦＯ出力信号ＦＯＢ(１４００)とが一致する場合には比較出力信号ＣＯはローレベル“１”となる一方、ＦＩＦＯＡ１３のＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯＢ１４のＦＩＦＯ出力信号ＦＯＢ(１４００)とが不一致の場合には比較出力信号ＣＯはハイレベル“１”となる。
【００９９】
《比較器の動作》
図７は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図６に示した比較器１５の動作を説明する図である。
【０１００】
図７に示したように、ＦＩＦＯＡ１３のＦＩＦＯ出力信号ＦＯＡ(１３００)として、５番目から７番目までのクロック信号ＣＬＫの期間で４個目のデータ入力信号Ｄ４が出力され、１０番目から１３番目までのクロック信号ＣＬＫの期間で８個目のデータ入力信号Ｄ８が出力され、それ以外の期間では不定となる。一方、ＦＩＦＯＢ１４のＦＩＦＯ出力信号ＦＯＢ(１４００)として、７番目のクロック信号ＣＬＫの期間で４個目のデータ入力信号Ｄ４が出力され、１３番目のクロック信号ＣＬＫの期間で他の８個目のデータ入力信号Ｄ８’(８個目のデータ入力信号Ｄ８と異なる値)が出力され、それ以外の期間では不定となる。
【０１０１】
その結果、７番目のクロック信号ＣＬＫの期間でローレベル“０”(両方の入力が一致)の比較出力信号ＣＯが生成され、１３番目のクロック信号ＣＬＫの期間でハイレベル“１”(両方の入力が不一致)の比較出力信号ＣＯが生成され、それ以外の期間では比較出力信号ＣＯは無効である。
【０１０２】
《制御部の構成》
図８は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる制御部１６の構成を示す図である。
【０１０３】
図８に示すように、制御部１６は、デコーダ(ＤＥＣ)１６１４と、比較制御レジスタ(ＣＣＲ０)１６１０と、第１比較制御レジスタ(ＣＣＲ１)１６１１と、第２比較制御レジスタ(ＣＣＲ２)１６１２と、比較状態レジスタ(ＣＳＲ)１６１３と、３入力ＡＮＤ回路１６１５と、２入力ＡＮＤ回路１６１６と、第１制御部(ＣＴＡ)１６２６と、第２制御部(ＣＴＢ)１６３６等によって構成されている。
【０１０４】
図９は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の制御部１６に含まれる図８に示した比較制御レジスタ(ＣＣＲ０)１６１０の構成を示す図である。
【０１０５】
図９に示すように、比較制御レジスタ(ＣＣＲ０)１６１０のビット７〜０は比較サイクルＣＭＰＣＹＣであり、バッファＡ１１、Ｂ１２から順次に生成される複数個のバッファ出力信号ＢＯが何個ごとにＦＩＦＯＡ１３、１４に保持され、何個ごとに比較器１５によって比較されるかを設定する。例えば、図９のビット７〜０の比較サイクルＣＭＰＣＹＣでは、オール“０”のＨ００は比較サイクル２５６を示す一方、オール“０”を除外した値である設定値Ｈ０１〜ＨＦＦが比較サイクル１〜２５５を示すようにされる。尚、図９に示した比較制御レジスタ(ＣＣＲ０)１６１０のビット７〜０での比較サイクルＣＭＰＣＹＣの設定値は、システムバス１０からのライトデータＷＤの値によって決定されることが可能である。
【０１０６】
図９の比較制御レジスタ(ＣＣＲ０)１６１０のビット８は比較イネーブル信号ＣＭＰＥＮであり、例えば、ローレベル“０”は比較禁止を示し、ハイレベル“１”は比較許可を示す。図９の比較制御レジスタ(ＣＣＲ０)１６１０のビット９は割り込みイネーブル信号ＩＮＴＥＮであり、例えばローレベル“０”は割り込み禁止を示し、ハイレベル“１”は割り込み許可を示す。尚、図９において、比較制御レジスタ(ＣＣＲ０)１６１０のビット１５〜１０は、予約ビットＲＥＳＥＲＶＥＤである。
【０１０７】
図１０は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の制御部１６に含まれる図８に示した第１比較制御レジスタ(ＣＣＲ１)１６１１、第２比較制御レジスタ(ＣＣＲ２)１６１２の構成を示す図である。
【０１０８】
図１０に示したように、ビット０はカウントイネーブル信号ＣＮＴＥＮであり、第１比較制御レジスタ(ＣＣＲ１)１６１１の場合にはＣＰＵＡ２の出力データをバッファＡ１１に保持してカウントするか否かを設定して、第２比較制御レジスタ(ＣＣＲ２)１６１２の場合にはＣＰＵＢ６の出力データをバッファＢ１２に保持してカウントするか否かを設定する。例えばローレベル“０”で保持とカウントとを実行せず、ハイレベル“１”で保持とカウントとを実行するようにする。図１０のビット１はカウントリセット信号ＣＮＴＲＳＴであり、第１比較制御レジスタ(ＣＣＲ１)１６１１の場合にはバッファＡ１１のカウンタリセットを実行する一方、第２比較制御レジスタ(ＣＣＲ２)１６１２の場合にはバッファＢ１２のカウンタリセットを実行する。例えば、ローレベル“０”でバッファのカウンタリセットを実行せず、ハイレベル“１”でバッファのカウンタリセットを実行する。ＣＮＴＲＳＴは書き込んだ値を保持せず、ハイレベル“１”が書き込まれることを検出してバッファＡ１１およびバッファＢ１２のカウンタリセットを行う。尚、図１０でも、ビット１５〜２は、予約ビットＲＥＳＥＲＶＥＤである。
【０１０９】
図１１は、本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の制御部１６に含まれる図８に示した比較状態レジスタ(ＣＳＲ)１６１３の構成を示す図である。
【０１１０】
図１１に示したように、比較状態レジスタ(ＣＳＲ)１６１３のビット０は比較エラー信号ＣＭＰＥＲＲであり、例えばローレベル“０”は比較エラー無し(比較結果一致)を示す一方、ハイレベル“１”は比較エラー有り(比較結果不一致)を示すものとする。尚、このビット０の比較エラー信号ＣＭＰＥＲＲとしてハイレベル“１”(比較結果不一致)が書き込まれると、その後の比較器１５による比較結果が一致してもローレベル“０”(比較結果一致)がこのビット０に書き込まれることはない。尚、図１１でも、ビット１５〜１は、予約ビットＲＥＳＥＲＶＥＤである。
【０１１１】
図８に戻ると、システムバス１０のレディ信号ＲＤＹとコマンド信号ＣＭＤとアドレス信号Ａとはデコーダ(ＤＥＣ)１６１４よってデコードされ、比較制御レジスタ(ＣＣＲ０)１６１０、第１比較制御レジスタ(ＣＣＲ１)１６１１、第２比較制御レジスタ(ＣＣＲ２)１６１２、比較状態レジスタ(ＣＳＲ)１６１３へのライトデータＷＤの書き込み制御が実行される。特に制御部１６の比較制御レジスタ(ＣＣＲ０)１６１０と第１比較制御レジスタ(ＣＣＲ１)１６１１と第２比較制御レジスタ(ＣＣＲ２)１６１２と比較状態レジスタ(ＣＳＲ)１６１３とに書き込まれる種々のライトデータＷＤは、システムバス１０を介してデュアルコアマイコンＭＣＵ１のオンチップの内蔵不揮発性メモリ(図示せず)から供給されることが可能であり、またシステムバス１０とダイレクトメモリアクセスコントローラ(ＤＭＡＣ)とを介して、マザーボードに搭載されたオフチップの外部不揮発性メモリ(図示せず)から供給されることも可能である。
【０１１２】
尚、図８には示されていないが、比較制御レジスタ(ＣＣＲ０)１６１０、第１比較制御レジスタ(ＣＣＲ１)１６１１、第２比較制御レジスタ(ＣＣＲ２)１６１２、比較状態レジスタ(ＣＳＲ)１６１３のシステムバス１０への読み出し制御を実行して、リードデータＲＤをシステムバス１０へ出力する機能を追加することも可能である。
【０１１３】
また比較制御レジスタ(ＣＣＲ０)１６１０からの割り込みイネーブル信号ＩＮＴＥＮと比較状態レジスタ(ＣＳＲ)１６１３からの比較エラー信号ＣＭＰＥＲＲとは２入力ＡＮＤ回路１６１６で論理積され、２入力ＡＮＤ回路１６１６の出力から割り込み発生回路１７への比較エラー割り込み信号Ｃ＿ＩＮＴＲＥＱが生成される。また第１比較制御レジスタ(ＣＣＲ１)１６１１は、バッファＡ１１へ供給されるカウントイネーブル信号ＣＮＥＡとカウンタリセット信号ＣＮＲＡとを生成する。更に第２比較制御レジスタ(ＣＣＲ２)１６１２は、バッファＢ１２へ供給されるカウントイネーブル信号ＣＮＥＢとカウンタリセット信号ＣＮＲＢとを生成する。
【０１１４】
更に図８に示した制御部１６では、ＦＩＦＯカウンタとしてのレジスタ(ＦＣ０Ａ)１６２０とレジスタ(ＦＣ１Ａ)１６２１とレジスタ(ＦＣ２Ａ)１６２２とレジスタ(ＦＣ３Ａ)１６２３は、バッファＡ１１から順次に生成されるデータの何個目のデータがＦＩＦＯＡ１３のフリップフロップ(ＦＦ)１３１０とフリップフロップ(ＦＦ)１３２０とフリップフロップ(ＦＦ)１３３０とフリップフロップ(ＦＦ)１３４０とにそれぞれ格納されるかを示すデータを保持するものである。
【０１１５】
レジスタ(ＦＳＴＡ)１６２４は、ＦＩＦＯＡ１３のフリップフロップ(ＦＦ)１３１０、１３２０、１３３０、１３４０の出力信号ＦＯ０、ＦＯ１、ＦＯ２、ＦＯ３の状態(データの有無)を保持する。レジスタ(ＦＣＮＡ)１６２５は、次にＦＩＦＯＡ１３に保持されるべきバッファ出力信号ＢＯがバッファＡ１１から何個目に生成されるかの情報を保持する。制御部(ＣＴＡ)１６２６は、上述したレジスタ１６２０、１６２１、１６２２、１６２３、１６２４、１６２５の制御を実行する。制御部(ＣＴＡ)１６２６は比較制御レジスタ(ＣＣＲ０)１６１０から比較イネーブル信号ＣＭＰＥＮと比較サイクルＣＭＰＣＹＣを入力して、バッファＡ１１からバッファカウント信号ＢＣＡを入力する。まず、比較制御レジスタ(ＣＣＲ０)１６１０に書き込みが実行されると、比較サイクルＣＭＰＣＹＣがレジスタ(ＦＣＮＡ)１６２５にコピーされる。
【０１１６】
制御部(ＣＴＡ)１６２６はバッファカウント信号ＢＣＡをレジスタ(ＦＣＮＡ)１６２５の内容と比較して、両者が一致するとＦＩＦＯカウンタとしてのレジスタ１６２０、１６２１、１６２２、１６２３の中からレジスタ(ＦＳＴＡ)１６２４によってデータを含まないと最初に示されたレジスタにバッファカウント信号ＢＣＡが格納される。また同時に制御部(ＣＴＡ)１６２６は、ＦＩＦＯＡ１３へのＦＩＦＯライトイネーブル信号ＦＷＥＡとＦＩＦＯライト番号信号ＦＷＮＡとを出力して、ＦＩＦＯＡ１３にバッファＡ１１から供給されるバッファ出力信号ＢＯＡを書き込む。また制御部(ＣＴＡ)１６２６は、その時点でのバッファカウント信号ＢＣＡの値と比較サイクルＣＭＰＣＹＣの値との加算値をレジスタ(ＦＣＮＡ)１６２５に書き込むものである。
【０１１７】
更に図８に示した制御部１６では、ＦＩＦＯカウンタとしてのレジスタ(ＦＣ０Ｂ)１６３０とレジスタ(ＦＣ１Ｂ)１６３１とレジスタ(ＦＣ２Ｂ)１６３２とレジスタ(ＦＣ３Ｂ)１６３３は、バッファＢ１２から順次に生成されるデータの何個目のデータがＦＩＦＯＢ１４のフリップフロップ(ＦＦ)１３１０とフリップフロップ(ＦＦ)１３２０とフリップフロップ(ＦＦ)１３３０とフリップフロップ(ＦＦ)１３４０とにそれぞれ格納されるかを示すデータを保持するものである。
【０１１８】
レジスタ(ＦＳＴＢ)１６３４は、ＦＩＦＯＢ１４のフリップフロップ(ＦＦ)１３１０、１３２０、１３３０、１３４０の出力信号ＦＯ０、ＦＯ１、ＦＯ２、ＦＯ３の状態(データの有無)を保持する。レジスタ(ＦＣＮＢ)１６３５は、次にＦＩＦＯＢ１４に保持されるべきバッファ出力信号ＢＯがバッファＢ１２から何個目に生成されるかの情報を保持する。制御部(ＣＴＢ)１６３６は、上述したレジスタ１６３０、１６３１、１６３２、１６３３、１６３４、１６３５の制御を実行する。制御部(ＣＴＢ)１６３６は比較制御レジスタ(ＣＣＲ０)１６１０から比較イネーブル信号ＣＭＰＥＮと比較サイクルＣＭＰＣＹＣを入力して、バッファＢ１２からバッファカウント信号ＢＣＢを入力する。まず、比較制御レジスタ(ＣＣＲ０)１６１０に書き込みが実行されると、比較サイクルＣＭＰＣＹＣがレジスタ(ＦＣＮＢ)１６３５にコピーされる。
【０１１９】
制御部(ＣＴＢ)１６３６はバッファカウント信号ＢＣＢをレジスタ(ＦＣＮＢ)１６３５の内容と比較して、両者が一致するとＦＩＦＯカウンタとしてのレジスタ１６３０、１６３１、１６３２、１６３３の中からレジスタ(ＦＳＴＢ)１６３４によってデータを含まないと最初に示されたレジスタにバッファカウント信号ＢＣＢが格納される。また同時に制御部(ＣＴＢ)１６３６は、ＦＩＦＯＢ１４へのＦＩＦＯライトイネーブル信号ＦＷＥＢとＦＩＦＯライト番号信号ＦＷＮＢとを出力して、ＦＩＦＯＢ１４にバッファＢ１２から供給されるバッファ出力信号ＢＯＢを書き込む。また制御部(ＣＴＢ)１６３６は、その時点でのバッファカウント信号ＢＣＢの値と比較サイクルＣＭＰＣＹＣの値との加算値をレジスタ(ＦＣＮＢ)１６３５に書き込むものである。
【０１２０】
ＦＩＦＯＡ１３がデータで満杯になった場合には、バッファカウント信号ＢＣＡがレジスタ(ＦＣＮＡ)１６２５の内容と同一となったとしても、バッファＡ１１から供給されるバッファ出力信号ＢＯＡをＦＩＦＯＡ１３に書き込むことができない。一方、ＦＩＦＯＡ１３にデータの書き込みが実行されて、その後にＦＩＦＯＢ１４に同一のデータ書き込みが実行されると、比較器１５による比較が実行されてＦＩＦＯＡ１３に空きができる。その時点のバッファカウント信号ＢＣＡが空いたＦＩＦＯカウンタに書き込まれ、バッファカウント信号ＢＣＡの値と比較サイクルＣＭＰＣＹＣの値との加算値がレジスタ(ＦＣＮＡ)１６２５に書き込まれる。また、その時点のバッファ出力信号ＢＯＡが、ＦＩＦＯＡ１３に書き込まれる。
【０１２１】
ＦＩＦＯＢ１４がデータで満杯になった場合も、同様に書き込みが不可能となる。このようにＦＩＦＯＢ１４が満杯になると、レジスタ(ＦＣＮＢ)１６３５に事前に設定した比較サイクルＣＭＰＣＹＣの整数倍となるバッファＢ１２からの所定の個数番目のバッファ出力信号ＢＯをＦＩＦＯＢ１４に書き込めなくなってしまう。ＦＩＦＯＢ１４がデータで満杯になる以前にＦＩＦＯＢ１４にデータの書き込みが実行されて、その後にＦＩＦＯＡ１３に同一のデータ書き込みが実行されると、比較器１５による比較が実行されてＦＩＦＯＡ１３、ＦＩＦＯＢ１４に空きができる。従って、ようやくこのＦＩＦＯＢ１４の空きに、バッファＢ１２からのバッファ出力信号ＢＯがＦＩＦＯＢ１４に書き込まれることが可能となる。このように、ＦＩＦＯＢ１４では比較サイクルＣＭＰＣＹＣの整数倍毎のバッファＢ１２からのバッファ出力信号ＢＯＢの書き込みが中断されるので、バッファ出力信号ＢＯＢの書き込み個数のスキップが発生する。従って、このスキップが発生した場合には、ＦＩＦＯＢ１４からＦＩＦＯＡ１３へスキップの発生を通知する必要がある。スキップの発生が通知されたＦＩＦＯＡ１３は、スキップに従ってＦＩＦＯＡ１３のＦＩＦＯカウンタの内容を更新する。ＦＩＦＯＡ１３でバッファ出力信号ＢＯＡの書き込み個数のスキップが発生した場合には、ＦＩＦＯＡ１３からＦＩＦＯＢ１４へスキップの発生を通知する必要がある。スキップの発生が通知されたＦＩＦＯＢ１４は、スキップに従ってＦＩＦＯＡ１３のＦＩＦＯカウンタの内容を更新する。すなわち、内部信号１６２７はＦＩＦＯＡ１３からＦＩＦＯＢ１４へのスキップの発生を通知するために使用され、内部信号１６３７はＦＩＦＯＢ１４からＦＩＦＯＡ１３へのスキップの発生を通知するために使用される。
【０１２２】
制御部(ＣＴＡ)１６２６は、ＦＩＦＯＡ１３に有効なデータがない場合には比較イネーブル信号ＣＥＡをローレベル“０”に設定する一方、ＦＩＦＯＡ１３に有効なデータがある場合にはハイレベル“１”に設定する。同様に、制御部(ＣＴＢ)１６３６は、ＦＩＦＯＢ１４に有効なデータがない場合には比較イネーブル信号ＣＥＢをローレベル“０”に設定する一方、ＦＩＦＯＢ１４に有効なデータある場合にはハイレベル“１”に設定する。比較イネーブル信号ＣＥＡと比較イネーブル信号ＣＥＢとがハイレベル“１”になると、比較器１５の比較出力信号ＣＯが３入力ＡＮＤ回路１６１５を介して比較状態レジスタ(ＣＳＲ)１６１３の比較エラー信号ＣＭＰＥＲＲに書き込まれる。比較状態レジスタ(ＣＳＲ)１６１３の比較エラー信号ＣＭＰＥＲＲは、比較状態レジスタ(ＣＳＲ)１６１３にクリア信号Ｈ００００を書き込むことによってクリア可能である。
【０１２３】
図１２は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図４に示したＦＩＦＯＡ１３、Ｂ１４の動作と図８に示した制御部１６の動作とを、ＦＩＦＯＡ１３を中心に示した図である。
【０１２４】
図１３は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図４に示したＦＩＦＯＡ１３、Ｂ１４の動作と図８に示した制御部１６の動作とを、ＦＩＦＯＢ１４を中心に示した図である。
【０１２５】
図１２の動作と図１３の動作では、制御部１６の比較制御レジスタ(ＣＣＲ０)１６１０のビット７〜０は比較サイクルＣＭＰＣＹＣは、所定の初期値として“Ｈ０４”の値に設定されているとする。
【０１２６】
図１２において、６番目のクロック信号ＣＬＫでは、バッファＡ１１から制御部１６の制御部(ＣＴＡ)１６２６に供給されるバッファカウント信号ＢＣＡの値は“３”で、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣＮＡ)１６２５の内容は“４”で、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ０(データ無し)”である。
【０１２７】
図１２の９番目のクロック信号ＣＬＫで、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値が“４”となってレジスタ(ＦＣＮＡ)１６２５の内容“４”と一致すると、次の１０番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ０Ａ)１６２０の内容ＦＣ０Ａとしてバッファカウント信号ＢＣＡの値“４”が書き込まれる。また、この１０番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＡの値“４”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“８”が、レジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ０(データ無し)”から“Ｈ１(ＦＯ０にデータ有り)”に変更される。更に９番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給される書き込みイネーブル信号ＦＷＥＡがハイレベル“１”となるので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ４)が１段目のフリップフロップ(ＦＦ)１３１０のデータＦＯ０として書き込まれる。９番目のクロック信号ＣＬＫのタイミングでは制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給されるＦＩＦＯリード番号信号ＦＲＮＡの値は“０”であるので、ＦＩＦＯＡ１３の読み出しデータＦＯＡには１段目のフリップフロップ(ＦＦ)１３１０のデータＦＯ０が選択され、１０番目のクロック信号ＣＬＫのタイミングからデータＤ４が出力される。また、制御部(ＣＴＡ)１６２６から３入力ＡＮＤ回路１６１５に供給される比較イネーブル信号ＣＥＡの値は、ハイレベル“１”となる。
【０１２８】
一方、図１３において、６番目のクロック信号ＣＬＫのタイミングでは、バッファＢ１２から供給されるバッファカウント信号ＢＣＢの値が“１”であり、レジスタ(ＦＣＮＢ)１６３５の値が“４”であり、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ０(データ無し)”となっている。９番目のクロック信号ＣＬＫのタイミングでは、バッファカウント信号ＢＣＢの値が“２”で、レジスタ(ＦＣＮＢ)１６３５の値が“４”であり、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ０(データ無し)”である。
【０１２９】
図１２に戻り、１９番目のクロック信号ＣＬＫのタイミングでは、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値が“８”となってレジスタ(ＦＣＮＡ)１６２５の内容“８”と一致すると、次の２０番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ０Ａ)１６２１の内容ＦＣ１Ａとしてバッファカウント信号ＢＣＡの値“８”が書き込まれる。また、この２０番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＡの値“８”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“１２”がレジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ１(ＦＯ０にデータ有り)”から“Ｈ３(ＦＯ０とＦＯ１にデータ有り)”に変更される。更に、２０番目のクロック信号ＣＬＫのタイミングでは、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給される書き込みイネーブル信号ＦＷＥＡが既にハイレベル“１”となっているので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ８)が、２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１として書き込まれる。
【０１３０】
一方、図１３において、１９番目のクロック信号ＣＬＫのタイミングでバッファＢ１２から供給されるバッファカウント信号ＢＣＢの値が“４”となってレジスタ(ＦＣＮＢ)１６２５の内容“４”と一致すると、次の２０番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＢ)１６３６に接続されたレジスタ(ＦＣ０Ｂ)１６３０の内容ＦＣ０Ｂとしてバッファカウント信号ＢＣＢの値“４”が書き込まれる。この２０番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＢの値“４”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“８”がレジスタ(ＦＣＮＢ)１６３５に書き込まれて、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ０(データ無し)”から“Ｈ１(ＦＯ０にデータ有り)”に変更される。また１９番目のクロック信号ＣＬＫのタイミングでは制御部(ＣＴＢ)１６３６からＦＩＦＯＢ１４に供給される書き込みイネーブル信号ＦＷＥＢがハイレベル“１”となるので、ＦＩＦＯＢ１４ではバッファＢ１２から供給されるバッファ出力信号ＢＯＢ(＝Ｄ４)が１段目のフリップフロップ(ＦＦ)１３１０のデータＦＯ０として書き込まれる。１９番目のクロック信号ＣＬＫのタイミングでは、制御部(ＣＴＢ)１６３６からＦＩＦＯＢ１４に供給されるＦＩＦＯリード番号信号ＦＲＮＢの値は“０”であるので、ＦＩＦＯＢ１４の読み出しデータＦＯＢには１段目のフリップフロップ(ＦＦ)１３１０のデータＦＯ０が選択され、２０番目のクロック信号ＣＬＫのタイミングからデータＤ４が出力される。また制御部(ＣＴＢ)１６３６から３入力ＡＮＤ回路１６１５に供給される比較イネーブル信号ＣＥＢの値は、ハイレベル“１”となる。
【０１３１】
図１２に戻り、２０番目のクロック信号ＣＬＫのタイミングで比較イネーブル信号ＣＥＡと比較イネーブル信号ＣＥＢとがともにハイレベル“１”となったので、ＦＩＦＯＡ１３のＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯＢ１４のＦＩＦＯ出力信号ＦＯＢ(１４００)を比較する比較器１５の比較結果信号１５００を示す比較出力信号ＣＯ(＝Ｃ４)が有効な値となる。従って、次の２１番目のクロック信号ＣＬＫのタイミングで、比較器１５の比較出力信号ＣＯ(＝Ｃ４)は３入力ＡＮＤ回路１６１５を介して比較状態レジスタ(ＣＳＲ)１６１３の比較エラー信号ＣＭＰＥＲＲとして書き込まれる。また、同一のデータであるＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯ出力信号ＦＯＢ(１４００)との比較器１５による比較が実行されたため、ＦＩＦＯＡ１３の１段目のフリップフロップ(ＦＦ)１３１０は空きとなり、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ３(ＦＯ０とＦＯ１にデータ有り)”から“Ｈ２(ＦＯ１にデータ有り)”に変更される。また２１番目のクロック信号ＣＬＫのタイミングで制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給されるＦＩＦＯリード番号信号ＦＲＮＡの値が“０”から“１”に変更されたので、ＦＩＦＯＡ１３の読み出しデータＦＯＡには２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１(＝Ｄ８)が選択される。
【０１３２】
一方、図１３では２０番目のクロック信号ＣＬＫのタイミングで同一のデータであるＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯ出力信号ＦＯＢ(１４００)の比較器１５による比較が実行されたため、２１番目のクロック信号ＣＬＫのタイミングではＦＩＦＯＢ１４の１段目のフリップフロップ(ＦＦ)１３１０(ＦＯ０)が空きとなって、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ１(ＦＯ０にデータ有り)”から“Ｈ０(データ無し)”に変更される。制御部(ＣＴＢ)１６３６からＦＩＦＯＢ１４に供給されるＦＩＦＯリード番号信号ＦＲＮＢの値は“０”から“１”に変更されているので、ＦＩＦＯＢ１４の読み出しデータＦＯＢには２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１(不定)が選択されて、２１番目のクロック信号ＣＬＫのタイミングではＦＩＦＯＢ１４のＦＩＦＯ出力信号ＦＯＢ(１４００)は不定となる。
【０１３３】
図１２に戻り、３０番目のクロック信号ＣＬＫのタイミングでバッファＡ１１から供給されるバッファカウント信号ＢＣＡの値が“１２”となってレジスタ(ＦＣＮＡ)１６２５の内容“１２”と一致すると、次の３１番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ０Ａ)１６２２の内容ＦＣ２Ａとしてバッファカウント信号ＢＣＡの値“１２”が書き込まれる。この３０番目のクロック信号ＣＬＫのタイミングで、この時点のバッファカウント信号ＢＣＡの値“１２”と比較サイクルＣＭＰＣＹＣの値“４”の加算値“１６”がレジスタ(ＦＣＮＡ)１６２５に書き込まれて、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ２(ＦＯ１にデータ有り)”から“Ｈ６(ＦＯ１とＦＯ２にデータ有り)”に変更される。更に３０番目のクロック信号ＣＬＫのタイミングでは、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給される書き込みイネーブル信号ＦＷＥＡが既にハイレベル“１”となっているので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ１２)が２段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２として書き込まれる。また３２番目のクロック信号ＣＬＫのタイミングで制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給されるＦＩＦＯリード番号信号ＦＲＮＡの値が“１”から“２”に変更されたので、ＦＩＦＯＡ１３の読み出しデータＦＯＡに３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２(＝Ｄ１２)が選択される。
【０１３４】
一方、図１３において、３０番目のクロック信号ＣＬＫのタイミングでバッファＢ１２から供給されるバッファカウント信号ＢＣＢの値が“８”となってレジスタ(ＦＣＮＢ)１６２５の内容“８”と一致すると、次の３１番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＢ)１６３６に接続されたレジスタ(ＦＣ０Ｂ)１６３１の内容ＦＣ１Ｂとしてバッファカウント信号ＢＣＢの値“８”が書き込まれる。この３０番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＢの値“８”と比較サイクルＣＭＰＣＹＣの値“４”の加算値“１２”がレジスタ(ＦＣＮＢ)１６３５に書き込まれて、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ０(データ無し)”から“Ｈ２(ＦＯ１にデータ有り)”に変更される。また、３０番目のクロック信号ＣＬＫのタイミングで制御部(ＣＴＢ)１６３６からＦＩＦＯＢ１４に供給される書き込みイネーブル信号ＦＷＥＢがハイレベル“１”となるので、ＦＩＦＯＢ１４ではバッファＢ１２から供給されるバッファ出力信号ＢＯＢ(＝Ｄ８)が２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１として書き込まれる。
【０１３５】
図１２に戻り、３１番目のクロック信号ＣＬＫのタイミングでは比較イネーブル信号ＣＥＡと比較イネーブル信号ＣＥＢとがともにハイレベル“１”となったので、ＦＩＦＯＡ１３のＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯＢ１４のＦＩＦＯ出力信号ＦＯＢ(１４００)を比較する比較器１５の比較結果信号１５００を示す比較出力信号ＣＯ(＝Ｃ８)が有効な値となる。従って、次の３２番目のクロック信号ＣＬＫのタイミングで、比較器１５の比較出力信号ＣＯ(＝Ｃ８)は３入力ＡＮＤ回路１６１５を介して比較状態レジスタ(ＣＳＲ)１６１３の比較エラー信号ＣＭＰＥＲＲとして書き込まれる。また、同一のデータであるＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯ出力信号ＦＯＢ(１４００)の比較器１５による比較が実行されたため、ＦＩＦＯＡ１３の２段目のフリップフロップ(ＦＦ)１３２０は空きとなり、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ６(ＦＯ１とＦＯ２にデータ有り)”から“Ｈ４(ＦＯ２にデータ有り)”に変更される。制御部(ＣＴＢ)１６３６からＦＩＦＯＡ１３に供給されるＦＩＦＯリード番号信号ＦＲＮＡの値は“１”から“２”に変更されているので、ＦＩＦＯＡ１３の読み出しデータＦＯＡには３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２(＝Ｄ１２)が選択され、３２番目のクロック信号ＣＬＫのタイミングではＦＩＦＯＡ１３のＦＩＦＯ出力信号ＦＯＡ(１３００)はデータＤ１２となる。
【０１３６】
一方、図１３において、３１番目のクロック信号ＣＬＫのタイミングにて同一のデータであるＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯ出力信号ＦＯＢ(１４００)との比較器１５による比較が実行されたため、ＦＩＦＯＢ１４の２段目のフリップフロップ(ＦＦ)１３２０は空きとなり、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ２(ＦＯ１にデータ有り)”から“Ｈ０(データ無し)”に変更される。制御部(ＣＴＢ)１６３６からＦＩＦＯＢ１４に供給されるＦＩＦＯリード番号信号ＦＲＮＢの値は“１”から“２”に変更されているので、ＦＩＦＯＢ１４の読み出しデータＦＯＢには３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２(不定)が選択されて、３２番目のクロック信号ＣＬＫのタイミングではＦＩＦＯＢ１４のＦＩＦＯ出力信号ＦＯＢ(１４００)は不定となる。
【０１３７】
図１４は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の図１２と図１３とに示したＦＩＦＯＡ１３、Ｂ１４の動作タイミングチャートの重要なタイミングでのＦＩＦＯＡ１３、Ｂ１４の動作を示す図である。
【０１３８】
図１４の部分図(１−Ａ)〜部分図(６−Ａ)は、図１２と図１３とに示したＦＩＦＯＡ１３、Ｂ１４の動作タイミングチャートのタイミング(１)とタイミング(２)とタイミング(３)とタイミング(４)とタイミング(５)とタイミング(６)のタイミングにおけるＦＩＦＯＡ１３の動作を示している。同様に、図１４の部分図(１−Ｂ)〜部分図(６−Ｂ)は、図１２と図１３とに示したＦＩＦＯＡ１３、Ｂ１４の動作タイミングチャートのタイミング(１)とタイミング(２)とタイミング(３)とタイミング(４)とタイミング(５)とタイミング(６)のタイミングにおけるＦＩＦＯＢ１４の動作を示している。
【０１３９】
図１４の部分図(１−Ａ)において、ＦＩＦＯカウンタのレジスタ(ＦＣ０Ａ)１６２０とレジスタ(ＦＣ１Ａ)１６２１とレジスタ(ＦＣ２Ａ)１６２２とレジスタ(ＦＣ３Ａ)１６２３の内容と、ＦＩＦＯＡ１３の４段のフリップフロップ(ＦＦ)１３１０、１３２０、１３３０、１３４０の出力信号ＦＯ０、ＦＯ１、ＦＯ２、ＦＯ３の内容とは全て無効であり、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ０(データ無し)”であり、レジスタ(ＦＣＮＡ)１６２５の内容は“４”である。従って、図１４の部分図(１−Ａ)に示した状態のＦＩＦＯＡ１３では、バッファカウント信号ＢＣＡの値が“３”となり、バッファＡ１１からＦＩＦＯＡ１３にバッファ出力信号ＢＯＡ(＝Ｄ３)が供給されても、ＦＩＦＯＡ１３への書き込みは、行われない。この時には、ＦＩＦＯライト番号信号ＦＷＮＡとＦＩＦＯリード番号信号ＦＲＮＡとは、最初は制御部１６によって初期値“０”に設定されている。
【０１４０】
図１４の部分図(１−Ｂ)において、ＦＩＦＯカウンタのレジスタ(ＦＣ０Ｂ)１６３０とレジスタ(ＦＣ１Ｂ)１６３１とレジスタ(ＦＣ２Ｂ)１６３２とレジスタ(ＦＣ３Ｂ)１６３３の内容と、ＦＩＦＯＢ１４の４段のフリップフロップ(ＦＦ)１３１０、１３２０、１３３０、１３４０の出力信号ＦＯ０、ＦＯ１、ＦＯ２、ＦＯ３の内容とは全て無効であり、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ０(データ無し)”であり、レジスタ(ＦＣＮＢ)１６３５の内容は“４”である。従って、図１４の部分図(１−Ｂ)に示した状態のＦＩＦＯＢ１４では、バッファカウント信号ＢＣＢの値が“１”となり、バッファＢ１２からＦＩＦＯＢ１４にバッファ出力信号ＢＯＢ(＝Ｄ１)が供給されても、ＦＩＦＯＢ１４への書き込みは、行われない。この時には、ＦＩＦＯライト番号信号ＦＷＮＢとＦＩＦＯリード番号信号ＦＲＮＢとは、最初は制御部１６によって初期値“０”に設定されている。
【０１４１】
図１４の部分図(２−Ａ)において、バッファカウント信号ＢＣＡの値とレジスタ(ＦＣＮＡ)１６２５の内容とが“４”となったため、ＦＩＦＯカウンタのレジスタ(ＦＣ０Ａ)１６２０の内容ＦＣ０Ａとしてバッファカウント信号ＢＣＡの値“４”が書き込まれ、バッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ４)がＦＩＦＯＡ１３の１段目のフリップフロップ(ＦＦ)１３１０のデータＦＯ０として書き込まれる。この時点でのバッファカウント信号ＢＣＡの値“４”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“８”が、レジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ０(データ無し)”から“Ｈ１(ＦＯ０にデータ有り)”に変更され、ＦＩＦＯライト番号信号ＦＷＮＡ値は“０”から“１”に変更される。
【０１４２】
図１４の部分図(２−Ｂ)において、バッファカウント信号ＢＣＡの値が“２”となり、バッファＢ１２からＦＩＦＯＢ１４にバッファ出力信号ＢＯＢ(＝Ｄ２)が供給されても、ＦＩＦＯＢ１４への書き込みは、行われない。
【０１４３】
図１４の部分図(３−Ａ)において、バッファカウント信号ＢＣＡの値とレジスタ(ＦＣＮＡ)１６２５の内容とが“８”となったため、ＦＩＦＯカウンタのレジスタ(ＦＣ１Ａ)１６２１の内容ＦＣ１Ａとしてバッファカウント信号ＢＣＡの値“８”が書き込まれ、バッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ８)がＦＩＦＯＡ１３の２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１として書き込まれる。この時点でのバッファカウント信号ＢＣＡの値“８”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“１２”がレジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ１(ＦＯ０にデータ有り)”から“Ｈ３(ＦＯ０とＦＯ１にデータ有り)”に変更されて、ＦＩＦＯライト番号信号ＦＷＮＡ値は“１”から“２”に変更される。
【０１４４】
図１４の部分図(３−Ｂ)において、バッファカウント信号ＢＣＢの値とレジスタ(ＦＣＮＢ)１６３５の内容とが“４”となったため、ＦＩＦＯカウンタのレジスタ(ＦＣ０Ｂ)１６３０の内容ＦＣ０Ｂとしてバッファカウント信号ＢＣＢの値“４”が書き込まれ、バッファＢ１２から供給されるバッファ出力信号ＢＯＢ(＝Ｄ４)がＦＩＦＯＢ１４の１段目のフリップフロップ(ＦＦ)１３１０のデータＦＯ０として書き込まれる。この時点でのバッファカウント信号ＢＣＢの値“４”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“８”が、レジスタ(ＦＣＮＢ)１６３５に書き込まれ、レジスタ(ＦＳＴＢ)１６２４の内容は“Ｈ０(データ無し)”から“Ｈ１(ＦＯ０にデータ有り)”に変更され、ＦＩＦＯライト番号信号ＦＷＮＢ値は“０”から“１”に変更される。
【０１４５】
図１４の部分図(４−Ａ)では、ＦＩＦＯＡ１３の１段目のフリップフロップ(ＦＦ)１３１０のデータＦＯ０としてバッファＡ１１から供給されたバッファ出力信号ＢＯＡ(＝Ｄ４)が格納済みであって、ＦＩＦＯＢ１４の１段目のフリップフロップ(ＦＦ)１３１０のデータＦＯ０としてバッファＢ１２から供給されたバッファ出力信号ＢＯＢ(＝Ｄ４)が格納済みである。従って、同一のデータ(＝Ｄ４)であるＦＩＦＯ出力信号ＦＯＡとＦＩＦＯ出力信号ＦＯＢとの比較器１５による比較が実行されたため、ＦＩＦＯＡ１３の１段目のフリップフロップ(ＦＦ)１３１０は空き(無効)となり、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ３(ＦＯ０とＦＯ１にデータ有り)”から“Ｈ２(ＦＯ１にデータ有り)”に変更される。またＦＩＦＯリード番号信号ＦＲＮＡの値が“０”から“１”に変更されたので、ＦＩＦＯＡ１３の読み出しデータＦＯＡには２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１(＝Ｄ８)が選択される。
【０１４６】
図１４の部分図(４−Ｂ)でも、同一のデータ(＝Ｄ４)であるＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯ出力信号ＦＯＢ(１４００)の比較器１５による比較が実行されたため、ＦＩＦＯＢ１４の１段目のフリップフロップ(ＦＦ)１３１０(ＦＯ０)が空き(無効)となり、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ１(ＦＯ０にデータ有り)”から“Ｈ０(データ無し)”に変更される。またＦＩＦＯリード番号信号ＦＲＮＢの値は“０”から“１”に変更されたので、ＦＩＦＯＢ１４の読み出しデータＦＯＢには２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１(不定)が選択される。
【０１４７】
図１４の部分図(５−Ａ)では、バッファカウント信号ＢＣＡの値とレジスタ(ＦＣＮＡ)１６２５の内容とが“１２”となると、レジスタ(ＦＣ０Ａ)１６２２の内容ＦＣ２Ａとしてバッファカウント信号ＢＣＡの値“１２”が書き込まれる。この時点のバッファカウント信号ＢＣＡの値“１２”と比較サイクルＣＭＰＣＹＣの値“４”の加算値“１６”がレジスタ(ＦＣＮＡ)１６２５に書き込まれて、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ２(ＦＯ１にデータ有り)”から“Ｈ６(ＦＯ１とＦＯ２にデータ有り)”に変更される。書き込みイネーブル信号ＦＷＥＡがハイレベル“１”であるので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ１２)が３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２として書き込まれる。ＦＩＦＯリード番号信号ＦＲＮＡの値が“０”から“１”に変更されているので、ＦＩＦＯＡ１３の読み出しデータＦＯＡには２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１(＝Ｄ８)が選択される。またＦＩＦＯライト番号信号ＦＷＮＡの値は、“２”から“３”に変更される。
【０１４８】
図１４の部分図(５−Ｂ)では、一方、バッファカウント信号ＢＣＢの値とレジスタ(ＦＣＮＢ)１６３５の内容が“８”となると、レジスタ(ＦＣ１Ｂ)１６３１の内容ＦＣ１Ｂとしてバッファカウント信号ＢＣＢの値“８”が書き込まれる。この時点でのバッファカウント信号ＢＣＢの値“８”と比較サイクルＣＭＰＣＹＣの値“４”の加算値“１２”がレジスタ(ＦＣＮＢ)１６３５に書き込まれて、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ０(データ無し)”から“Ｈ２(ＦＯ１にデータ有り)”に変更される。また、書き込みイネーブル信号ＦＷＥＢがハイレベル“１”なので、ＦＩＦＯＢ１４ではバッファＢ１２から供給されるバッファ出力信号ＢＯＢ(＝Ｄ８)が２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１として書き込まれる。またＦＩＦＯライト番号信号ＦＷＮＢの値は、“１”から“２”に変更される。
【０１４９】
図１４の部分図(６−Ａ)では、同一のデータ(＝Ｄ８)であるＦＩＦＯ出力信号ＦＯＡとＦＩＦＯ出力信号ＦＯＢとの比較器１５による比較が実行されたため、ＦＩＦＯＡ１３の２段目のフリップフロップ(ＦＦ)１３２０は空き(無効)となり、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ６(ＦＯ１とＦＯ２にデータ有り)”から“Ｈ４(ＦＯ２にデータ有り)”に変更される。ＦＩＦＯリード番号信号ＦＲＮＡの値が“１”から“２”に変更されたので、ＦＩＦＯＡ１３の読み出しデータＦＯＡには３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２(＝Ｄ１２)が選択される。
【０１５０】
図１４の部分図(６−Ｂ)でも、同一のデータ(＝Ｄ８)であるＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯ出力信号ＦＯＢ(１４００)の比較器１５による比較が実行されたため、ＦＩＦＯＢ１４の２段目のフリップフロップ(ＦＦ)１３２０(ＦＯ１)が空き(無効)となり、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ２(ＦＯ１にデータ有り)”から“Ｈ０(データ無し)”に変更される。またＦＩＦＯリード番号信号ＦＲＮＢの値は“１”から“２”に変更されたので、ＦＩＦＯＢ１４の読み出しデータＦＯＢに３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２(不定)が選択される。
【０１５１】
図１５は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図４に示したＦＩＦＯＡ１３、Ｂ１４の動作と図８に示した制御部１６の動作とを、ＦＩＦＯＡ１３を中心に示した図である。この図１５は、図１２に示した動作タイミングチャートの続きの動作タイミングチャートである。
【０１５２】
図１６は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれる図４に示したＦＩＦＯＡ１３、Ｂ１４の動作と図８に示した制御部１６の動作とを、ＦＩＦＯＢ１４を中心に示した図である。この図１６は、図１３に示した動作タイミングチャートの続きの動作タイミングチャートである。
【０１５３】
図１５において、５番目のクロック信号ＣＬＫでは、バッファＡ１１から制御部１６の制御部(ＣＴＡ)１６２６に供給されるバッファカウント信号ＢＣＡの値は“１５”で、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣＮＡ)１６２５の内容は“１６”で、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ４(ＦＣ２にデータ有り)”となっている。
【０１５４】
６番目のクロック信号ＣＬＫでは、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値は“１６”となってレジスタ(ＦＣＮＡ)１６２５の内容“１６”と一致すると、次の７番目のクロック信号ＣＬＫでは制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ３Ａ)１６２３の内容３Ａとしてバッファカウント信号ＢＣＡの値“１６”が書き込まれる。また、この７番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＡの値“１６”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“２０”がレジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“ＨＣ(ＦＯ２とＦＯ３にデータ有り)”となる。更に６番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給される書き込みイネーブル信号ＦＷＥＡがハイレベル“１”となるので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ１６)が４段目のフリップフロップ(ＦＦ)１３４０のデータＦＯ３として書き込まれる。６番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給されるＦＩＦＯリード番号信号ＦＲＮＡの値は“２”であるので、ＦＩＦＯＡ１３の読み出しデータＦＯＡには３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２(＝Ｄ１２)が選択されている。
【０１５５】
一方、図１６において、５番目のクロック信号ＣＬＫでは、バッファＢ１２から制御部１６の制御部(ＣＴＢ)１６３６に供給されるバッファカウント信号ＢＣＢの値は“１０”であり、レジスタ(ＦＣＮＢ)１６３５の内容は“１２”で、レジスタ(ＦＳＴＢ)１６３４の内容は“０(データ無し)”となっている。次の６番目のクロック信号ＣＬＫでも更にその次の７番目のクロック信号ＣＬＫでも、状態は変化しない。
【０１５６】
図１５に戻り、１６番目のクロック信号ＣＬＫでは、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値は“２０”となってレジスタ(ＦＣＮＡ)１６２５の内容“２０”と一致すると、次の１７番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ０Ａ)１６２０の内容ＦＣ０Ａとしてバッファカウント信号ＢＣＡの値“２０”が書き込まれる。また、この１７番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＡの値“２０”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“２４”がレジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“ＨＣ(ＦＯ２とＦＯ３とにデータ有り)”から“ＨＤ(ＦＯ２、ＦＯ３、ＦＯ０に、データ有り)”に変更される。更に、１６番目のクロック信号ＣＬＫのタイミングでは、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給される書き込みイネーブル信号ＦＷＥＡが既にハイレベル“１”となっているので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ２０)が、１段目のフリップフロップ(ＦＦ)１３１０のデータＦＯ０として書き込まれる。
【０１５７】
一方、図１６において、１６番目のクロック信号ＣＬＫでは、バッファＢ１２から制御部１６の制御部(ＣＴＢ)１６３６に供給されるバッファカウント信号ＢＣＢの値は“１１”であり、レジスタ(ＦＣＮＢ)１６３５の内容は“１２”で、レジスタ(ＦＳＴＢ)１６３４の内容は“０(データ無し)”となっている。
【０１５８】
図１５に戻り、２２番目のクロック信号ＣＬＫでは、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値は“２４”となってレジスタ(ＦＣＮＡ)１６２５の内容“２４”と一致すると、次の２３番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ０Ａ)１６２１の内容ＦＣ１Ａとしてバッファカウント信号ＢＣＡの値“２４”が書き込まれる。また、この２２番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＡの値“２４”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“２８”がレジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“ＨＤ(ＦＯ２、ＦＯ３、ＦＯ０に、データ有り)”から“ＨＦ(ＦＯ２、ＦＯ３、ＦＯ０、ＦＯ１にデータ有り)”に変更される。更に、２１番目のクロック信号ＣＬＫのタイミングでは、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給される書き込みイネーブル信号ＦＷＥＡが既にハイレベル“１”となっているので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ２４)が、２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１として書き込まれる。
【０１５９】
一方、図１６において、２２番目のクロック信号ＣＬＫでは、バッファＢ１２から制御部１６の制御部(ＣＴＢ)１６３６に供給されるバッファカウント信号ＢＣＢの値は“１１”であり、レジスタ(ＦＣＮＢ)１６３５の内容は“１２”で、レジスタ(ＦＳＴＢ)１６３４の内容は“０(データ無し)”となっている。
【０１６０】
図１５に戻り、２７番目のクロック信号ＣＬＫでは、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値は“２８”となって、レジスタ(ＦＣＮＡ)１６２５の内容“２８”と一致する。しかし、ＦＩＦＯＡ１３に空きが無いため、バッファカウント信号ＢＣＡの値“２８”およびバッファ出力信号ＢＯＡ(＝Ｄ２８)の書き込みは行われない。
【０１６１】
一方、図１６において、３０番目のクロック信号ＣＬＫでは、バッファＢ１２から制御部１６の制御部(ＣＴＢ)１６３６に供給されるバッファカウント信号ＢＣＢの値は“１２”であり、レジスタ(ＦＣＮＢ)１６３５の内容“１２”と一致すると、次の３１番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＢ)１６３６に接続されたレジスタ(ＦＣ２Ｂ)１６３２の内容ＦＣ２Ｂとしてバッファカウント信号ＢＣＢの値“１２”が書き込まれる。また３０番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＢの値“１２”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“１６”がレジスタ(ＦＣＮＢ)１６３５に書き込まれ、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ０(データ無し)”から“Ｈ４(ＦＯ２にデータ有り)”に変更される。更に、２９番目のクロック信号ＣＬＫのタイミングでは、制御部(ＣＴＡ)１６２６からＦＩＦＯＢ１４に供給される書き込みイネーブル信号ＦＷＥＢが既にハイレベル“１”となっているので、ＦＩＦＯＢ１４ではバッファＢ１２から供給されるバッファ出力信号ＢＯＢ(＝Ｄ１２)が、３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２として書き込まれる。
【０１６２】
３０番目のクロック信号ＣＬＫでは、比較イネーブル信号ＣＥＡと比較イネーブル信号ＣＥＢとがハイレベル“１”となったので、ＦＩＦＯＡ１３のＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯＢ１４のＦＩＦＯ出力信号ＦＯＢ(１４００)を比較する比較器１５の比較結果信号１５００を示す比較出力信号ＣＯ(＝Ｃ１２)が有効な値となる。従って、３１番目のクロック信号ＣＬＫでは、比較器１５の比較出力信号ＣＯ(＝Ｃ１２)は、３入力ＡＮＤ回路１６１５を介して、比較状態レジスタ(ＣＳＲ)１６１３の比較エラー信号ＣＭＰＥＲＲとして書き込まれる。また、同一のデータ(Ｄ１２)であるＦＩＦＯ出力信号ＦＯＡ(１３００)とＦＩＦＯ出力信号ＦＯＢ(１４００)との比較器１５による比較が実行されたため、ＦＩＦＯＢ１４の３段目のフリップフロップ(ＦＦ)１３３０は空きとなり、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ４(ＦＯ２にデータ有り)”から“Ｈ０(データ無し)”に変更される。また３１番目のクロック信号ＣＬＫのタイミングで制御部(ＣＴＢ)１６３６からＦＩＦＯＢ１４に供給されるＦＩＦＯリード番号信号ＦＲＮＢの値が“２”から“３”に変更されたので、ＦＩＦＯＢ１４の読み出しデータＦＯＢには４段目のフリップフロップ(ＦＦ)１３４０のデータＦＯ３(＝不定)が選択される。
【０１６３】
図１５に戻って、３０番目のクロック信号ＣＬＫで比較器１５による比較が実行されたため、３１番目のクロック信号ＣＬＫでは、ＦＩＦＯＡ１３では３段目のフリップフロップ(ＦＦ)１３３０には空きが生じる。３２番目のクロック信号ＣＬＫで、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値“３１”が次の３１番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ２Ａ)１６２２の内容ＦＣ２Ａとしてバッファカウント信号ＢＣＡの値“３１”が書き込まれる。また３０番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＡの値“３１”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“３５”がレジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“ＨＦ(ＦＯ２、ＦＯ３、ＦＯ０、ＦＯ１にデータ有り)”の値で維持される。３２番目のクロック信号ＣＬＫのタイミングでは、制御部(ＣＴＢ)１６３６からＦＩＦＯＡ１３に供給されるＦＩＦＯリード番号信号ＦＲＮＡの値は “２”に設定されているので、ＦＩＦＯＡ１３の読み出しデータＦＯＡには３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２(＝Ｄ３１)が選択され、３２番目のクロック信号ＣＬＫのタイミングではＦＩＦＯＡ１３のＦＩＦＯ出力信号ＦＯＡ(１３００)はデータＤ３１となる。
【０１６４】
図１７は、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の図１５と図１６とに示したＦＩＦＯＡ１３、Ｂ１４の動作タイミングチャートの重要なタイミングでのＦＩＦＯＡ１３、Ｂ１４の動作を示す図である。
【０１６５】
図１７の部分図(１−Ａ)〜部分図(６−Ａ)は、図１５と図１６とに示したＦＩＦＯＡ１３、Ｂ１４の動作タイミングチャートのタイミング(１)とタイミング(２)とタイミング(３)とタイミング(４)とタイミング(５)とタイミング(６)のタイミングにおけるＦＩＦＯＡ１３の動作を示している。同様に、図１７の部分図(１−Ｂ)〜部分図(６−Ｂ)は、図１５と図１６とに示したＦＩＦＯＡ１３、Ｂ１４の動作タイミングチャートのタイミング(１)とタイミング(２)とタイミング(３)とタイミング(４)とタイミング(５)とタイミング(６)のタイミングにおけるＦＩＦＯＢ１４の動作を示している。
【０１６６】
図１７の部分図(１−Ａ)において、バッファＡ１１から制御部１６の制御部(ＣＴＡ)１６２６に供給されるバッファカウント信号ＢＣＡの値が“１５”であり、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣＮＡ)１６２５の内容が“１６”であり、ＦＩＦＯカウンタとしてのレジスタ(ＦＣ２Ａ)１６２２の内容“１２”と２段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２(＝Ｄ１２)とが有効であり、その他のレジスタ(ＦＣ０Ａ)１６２０、(ＦＣ１Ａ)１６２１、(ＦＣ３Ａ)１６２３とその他のフリップフロップ(ＦＦ)１３１０、１３２０、１３４０は無効である。この時には、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ４(ＦＯ２にデータ有り)”となっており、ＦＩＦＯリード番号信号ＦＲＮＡの値は“２(ＦＯ２)”となっており、ＦＩＦＯライト番号信号の値は“３(ＦＯ３)”となっている。
【０１６７】
図１７の部分図(１−Ｂ)において、ＦＩＦＯカウンタのレジスタ(ＦＣ０Ｂ)１６３０とレジスタ(ＦＣ１Ｂ)１６３１とレジスタ(ＦＣ２Ｂ)１６３２とレジスタ(ＦＣ３Ｂ)１６３３の内容と、ＦＩＦＯＢ１４の４段のフリップフロップ(ＦＦ)１３１０、１３２０、１３３０、１３４０の出力信号ＦＯ０、ＦＯ１、ＦＯ２、ＦＯ３の内容とは全て無効であり、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ０(データ無し)”であり、レジスタ(ＦＣＮＢ)１６３５の内容は“１２”である。従って、図１７の部分図(１−Ｂ)に示した状態でのＦＩＦＯＢ１４では、バッファカウント信号ＢＣＢの値が“１０”となり、バッファＢ１２からＦＩＦＯＢ１４にバッファ出力信号ＢＯＢ(＝Ｄ１０)が供給されても、ＦＩＦＯＢ１４への書き込みは行われない。この時に、ＦＩＦＯライト番号信号ＦＷＮＢとＦＩＦＯリード番号信号ＦＲＮＢは、制御部１６によって値“２(ＦＯ２)”に設定されている。
【０１６８】
図１７の部分図(２−Ａ)では、バッファカウント信号ＢＣＡの値とレジスタ(ＦＣＮＡ)１６２５の内容とが“１６”となったため、バッファカウント信号ＢＣＡの値“１６”がレジスタ(ＦＣ３Ａ)１６２３に書き込まれて、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ１６)が４段目のフリップフロップ(ＦＦ)１３４０にデータＦＯ３として書き込まれる。この時点でのバッファカウント信号ＢＣＡの値“１６”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“２０”がレジスタ(ＦＣＮＡ)１６２５に書き込まれて、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ４(ＦＯ２にデータ有り)”から“ＨＣ(ＦＯ２とＦＯ３にデータ有り)”に更新される。またＦＩＦＯライト番号信号ＦＷＮＡの値は“３”から“０”に更新され、ＦＩＦＯリード番号信号ＦＲＮＡの値は“２(ＦＯ２)”に維持されている。
【０１６９】
図１７の部分図(２−Ｂ) において、バッファカウント信号ＢＣＢの値が“１０”であり、バッファＢ１２から供給されるバッファ出力信号ＢＯＢ(＝Ｄ１０)のＦＩＦＯＢ１４への書き込みは行われない。
【０１７０】
図１７の部分図(３−Ａ)において、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値は“２０”となりレジスタ(ＦＣＮＡ)１６２５の内容“２０”と一致したため、レジスタ(ＦＣ０Ａ)１６２０の内容ＦＣ０Ａとしてバッファカウント信号ＢＣＡの値“２０”が書き込まれ、バッファ出力信号ＢＯＡ(＝Ｄ２０)が、１段目のフリップフロップ(ＦＦ)１３１０のデータＦＯ０として書き込まれる。バッファカウント信号ＢＣＡの値“２０”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“２４”がレジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“ＨＣ(ＦＯ２とＦＯ３とに、データ有り)”から“ＨＤ(ＦＯ２、ＦＯ３、ＦＯ０に、データ有り)”に変更される。またＦＩＦＯライト番号信号ＦＷＮＡの値は、“０”から“１”に更新される。
【０１７１】
図１７の部分図(３−Ｂ)において、バッファＢ１２から制御部１６の制御部(ＣＴＢ)１６３６に供給されるバッファカウント信号ＢＣＢの値は“１１”であり、レジスタ(ＦＣＮＢ)１６３５の内容は“１２”で、レジスタ(ＦＳＴＢ)１６３４の内容は“０(データ無し)”となっており、ＦＩＦＯＢ１４へのバッファＢ１２から供給されるバッファ出力信号ＢＯＢ(＝Ｄ１１)の書き込みは行われない。
【０１７２】
図１７の部分図(４−Ａ)において、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値は“２４”となりジスタ(ＦＣＮＡ)１６２５の内容“２４”と一致したため、レジスタ(ＦＣ０Ａ)１６２１の内容ＦＣ１Ａとしてバッファカウント信号ＢＣＡの値“２４”が書き込まれる。また、バッファカウント信号ＢＣＡの値“２４”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“２８”が、レジスタ(ＦＣＮＡ)１６２５に書き込まれ、バッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ２４)が、２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１として書き込まれる。またレジスタ(ＦＳＴＡ)１６２４の内容は“ＨＤ(ＦＯ２、ＦＯ３、ＦＯ０に、データ有り)”から“ＨＦ(ＦＯ２、ＦＯ３、ＦＯ０、ＦＯ１にデータ有り)”に変更され、ＦＩＦＯライト番号信号ＦＷＮＡの値は“１”から“２”に更新される。
【０１７３】
図１７の部分図(４−Ｂ)において、バッファＢ１２から制御部１６の制御部(ＣＴＢ)１６３６に供給されるバッファカウント信号ＢＣＢの値は“１１”であり、レジスタ(ＦＣＮＢ)１６３５の内容は“１２”で、レジスタ(ＦＳＴＢ)１６３４の内容は“０(データ無し)”となっており、ＦＩＦＯＢ１４へのバッファＢ１２から供給されるバッファ出力信号ＢＯＢ(＝Ｄ１１)の書き込みは行われない。
【０１７４】
図１７の部分図(５−Ａ)において、バッファＢ１２から制御部１６の制御部(ＣＴＢ)１６３６に供給されるバッファカウント信号ＢＣＢの値は“３０”であり、レジスタ(ＦＣＮＡ)１６２５の値“２８”を超過しているが、ＦＩＦＯＡ１３の全てのフリップフロップ(ＦＦ)１３１０、１３２０、１３３０、１３４０には空きがないので、ＦＩＦＯＡ１３へのバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ３０)の書き込みは行われない。
【０１７５】
図１７の部分図(５−Ｂ)において、バッファＢ１２から制御部１６の制御部(ＣＴＢ)１６３６に供給されるバッファカウント信号ＢＣＢの値“１２”とレジスタ(ＦＣＮＢ)１６３５の内容“１２”と一致すると、レジスタ(ＦＣ２Ｂ)１６３２の内容ＦＣ２Ｂとしてバッファカウント信号ＢＣＢの値“１２”が書き込まれる。また、この時点でのバッファカウント信号ＢＣＢの値“１２”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“１６”がレジスタ(ＦＣＮＢ)１６３５に書き込まれ、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ０(データ無し)”から“Ｈ４(ＦＯ２にデータ有り)”に変更される。ＦＩＦＯＢ１４では、バッファＢ１２から供給されるバッファ出力信号ＢＯＢ(＝Ｄ１２)が、３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２として書き込まれる。またＦＩＦＯライト番号信号ＦＷＮＢの値とＦＩＦＯリード番号信号ＦＲＮＢの値とは、“２”から“３”に更新される。
【０１７６】
図１７の部分図(６−Ａ)において、ＦＩＦＯＡ１３では３段目のフリップフロップ(ＦＦ)１３３０には空きが生じたので、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値“３１”が制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ２Ａ)１６２２の内容ＦＣ２Ａとして書き込まれる。またバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ３１)が、３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２として書き込まれる。この時点のバッファカウント信号ＢＣＡの値“３１”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“３５”がレジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“ＨＦ(ＦＯ２、ＦＯ３、ＦＯ０、ＦＯ１にデータ有り)”の値で維持される。ＦＩＦＯリード番号信号ＦＲＮＡの値は“２”に維持されて、ＦＩＦＯライト番号信号ＦＷＮＡの値は“２”から“３”に更新される。
【０１７７】
図１７の部分図(６−Ｂ)において、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ０(データ無し)”に変更されているので、ＦＩＦＯＢ１４の４段のフリップフロップ(ＦＦ)１３１０、１３２０、１３３０、１３４０の出力信号ＦＯ０、ＦＯ１、ＦＯ２、ＦＯ３は全て無効であり、ＦＩＦＯリード番号信号ＦＲＮＢの値とＦＩＦＯライト番号信号ＦＷＮＢの値とは“２”から“３”に更新される。
【０１７８】
《通常動作の並列データ処理から故障検出動作の冗長動作への移行》
図１８は、図１に示した本発明の実施の形態１において、デュアルコアマイコンＭＣＵ１の通常動作の２個のＣＰＵＡ２、Ｂ６による並列データ処理から故障検出動作のための２個のＣＰＵＡ２、Ｂ６による冗長動作に移行する様子を示す図である。
【０１７９】
図１８に示すように、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の通常動作の２個のＣＰＵＡ２、Ｂ６による並列データ処理では、ＣＰＵＡ２は個別タスク２００を実行して、ＣＰＵＢ６は個別タスク６００を実行して、タスク２００とタスク６００はそれぞれ異なるタスクである。
【０１８０】
その後、ＣＰＵＡ２は故障検出動作のための冗長タスク２０３を実行するために、冗長タスク起動処理２０１を実行する。ＣＰＵＢ６の故障検出動作のための冗長タスク６０３の起動は、例えば、ＣＰＵＡ２からＣＰＵＢ６への割り込み処理等を用いて実現できる。
【０１８１】
冗長タスク起動処理２０１の後の実行準備処理２０２において、ＣＰＵＡ２は比較制御レジスタ(ＣＣＲ１)１６１１に設定値“Ｈ０００３”を書き込み、バッファＡ１１にカウンタリセット信号ＣＮＴＲＳＴとカウントイネーブル信号ＣＮＴＥＮとを供給する。すなわち、図１０に示したように、カウントリセット信号ＣＮＴＲＳＴによりバッファＡ１１のカウンタリセットが実行されて、カウントイネーブル信号ＣＮＴＥＮによりＣＰＵＡ２の出力データがバッファＡ１１に保持されカウントされるものとなる。その次にＣＰＵＡ２は比較制御レジスタ(ＣＣＲ０)１６１０に設定値“Ｈ０３０４”を書き込んで、比較器１５の故障検出動作に関して割り込み許可信号ＩＮＴＥＮに設定値“１”を、比較許可比較イネーブル信号ＣＭＰＥＮに設定値“１”を、比較周期比較サイクルＣＭＰＣＹＣに設定値“４”をそれぞれ設定する。
【０１８２】
一方、ＣＰＵＢ６は個別タスク６００の実行中にＣＰＵＡ２からの割り込み２０４を受け付けて、実行準備処理６０２を実行する。この実行準備処理６０２において、ＣＰＵＢ６は比較制御レジスタ(ＣＣＲ２)１６１２に設定値“Ｈ０００３”を書き込んで、バッファＢ１２にカウンタリセット信号ＣＮＴＲＳＴとカウントイネーブル信号ＣＮＴＥＮとを供給する。すなわち、図１０に示したように、カウントリセット信号ＣＮＴＲＳＴによりバッファＢ１２のカウンタリセットが実行されて、カウントイネーブル信号ＣＮＴＥＮによりＣＰＵＢ６の出力データがバッファＢ１２に保持されカウントされるものとなる。
【０１８３】
実行準備処理２０２、６０２によって２個のＣＰＵＡ２、Ｂ６による冗長動作の実行準備が完了すると、２個のＣＰＵＡ２、Ｂ６は故障検出動作のため冗長タスク２０３、６０３をそれぞれ実行する。すなわち、２個のＣＰＵＡ２、Ｂ６は、同一のオペランドデータに関して同一の冗長タスクプログラムを実行する。２個のＦＩＦＯＡ１３、Ｂ１４によって選択されて出力される所定の出力回数のデータは、比較器１５によって比較される。比較器１５による比較結果が一致する場合には、図１のデュアルコアマイコンＭＣＵ１に故障が存在しないと判定されて、比較器１５による比較結果が不一致の場合には、図１のデュアルコアマイコンＭＣＵ１に故障が存在すると判定される。更に、比較器１５による比較結果が不一致の場合には、比較器１５の比較結果信号１５００(ＣＯ)に応答して制御部１６は割り込み発生回路１７に割り込み要求信号１６０４(Ｃ＿ＩＮＴＲＥＱ)を発生する。従って、図１に示す本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に故障が発生して２個のＣＰＵＡ２、Ｂ６の一方が異常動作している旨を通知する例外処理が、割り込み発生回路１７による割り込み要求信号１６０４(Ｃ＿ＩＮＴＲＥＱ)に応答して起動される。この例外処理は、例えば、自動車の運転席のダッシュボードの表示機器によって、デュアルコアマイコンＭＣＵ１の故障発生を通知するものである。従って、自動車の所有者は、故障発生が通知されたデュアルコアマイコンＭＣＵ１を搭載する自動車の整備や修理が必要であることを知ることが可能となる。
【０１８４】
ＣＰＵＡ２による冗長タスク２０３の実行が終了するとＣＰＵＡ２は次のタスクの実行に移行する一方、ＣＰＵＢ６による冗長タスク６０３の実行が終了すると、ＣＰＵＢ６は割り込み復帰を行って、元の個別タスク６００に復帰する。
【０１８５】
また本発明において、故障検出動作のための２個のＣＰＵＡ２、Ｂ６による冗長動作への移行は、上述した割り込み２０４の受け付けのみに限定されるものではない。それ以外に、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１の電源投入時の初期化シーケンスにおいて、故障検出動作のための２個のＣＰＵＡ２、Ｂ６による冗長動作を行うものとすることが可能である。すなわち、２個のＣＰＵＡ２、Ｂ６による冗長動作を行い、デュアルコアマイコンＭＣＵ１に故障が存在しないと判定されてから、初めて通常動作の２個のＣＰＵＡ２、Ｂ６の並列データ処理を開始するものである。更に、通常動作の２個のＣＰＵＡ２、Ｂ６の並列データ処理を開始した後に、冗長動作を開始する命令や割り込みを２個のＣＰＵＡ２、Ｂ６のいずれか一方から定期的に発行することによって、故障検出動作のための２個のＣＰＵＡ２、Ｂ６による冗長動作を定期的に実行することも可能である。この時に故障検出動作のために２個のＣＰＵＡ２、Ｂ６により実行される冗長動作の内容を、２個のＣＰＵＡ２、Ｂ６のいずれか一方でそれ以前に実行されていた通常動作のデータ処理の内容とされることが可能である。
【０１８６】
［実施の形態２］
《バッファメモリの他の構成》
図１９は、図１に示すデュアルコアマイコンＭＣＵ１に含まれる本発明の実施の形態２によるバッファメモリとしてのバッファＡ１１、Ｂ１２の他の構成を示す図である。
【０１８７】
図１９に示す本発明の実施の形態２によるバッファメモリとしてのバッファＡ１１、Ｂ１２が図２に示した本発明の実施の形態１によるバッファメモリとしてのバッファＡ１１、Ｂ１２と相違するのは、以下の点である。
【０１８８】
すなわち、図１９に示す本発明の実施の形態２によるバッファメモリＡ１１、Ｂ１２に、図２に示した本発明の実施の形態１によるバッファメモリに含まれていない演算回路(ＯＰ)１１７０が追加されている。
【０１８９】
図１９に示したように、演算回路(ＯＰ)１１７０の一方の入力端子と他方の入力端子とにライトデータＷＤとフリップフロップ(ＦＦ)１１５０のバッファ出力信号ＢＯとがそれぞれ供給され、演算回路(ＯＰ)１１７０の出力端子はフリップフロップ(ＦＦ)１１５０のデータ入力端子に接続されている。更に図１９に示したように、制御部１６からのパワーオンリセット信号ＲＳＴとカウンタリセット信号ＣＮＲはＯＲ回路１１４０で論理和され、ＯＲ回路１１４０の出力によってカウンタ(ＣＮＴ)１１６０とフリップフロップ(ＦＦ)１１５０とがリセットされる。
【０１９０】
図１９に示すバッファメモリＡ１１、Ｂ１２では、演算回路(ＯＰ)１１７０は一方の入力端子と他方の入力端子にそれぞれ供給されるライトデータＷＤとバッファ出力信号ＢＯを所定の演算アルゴリズムに従って演算処理するので、この演算処理の結果に基づく出力信号が演算回路(ＯＰ)１１７０の出力端子から生成される。演算回路(ＯＰ)１１７０の出力端子から生成される出力信号は、ＡＮＤ回路１１３０の出力から生成されるバッファライトイネーブル信号ＢＷＥがハイレベル“１”の期間に、フリップフロップ(ＦＦ)１１５０に格納される。
【０１９１】
従って、図１９に示したバッファメモリＡ１１、Ｂ１２では、ＣＰＵＡ２、ＣＰＵＢ６から順次に供給される複数のライトデータＷＤの全ての値に依存した出力信号が演算回路(ＯＰ)１１７０の出力端子から生成される。その結果、ＣＰＵＡ２からバッファメモリＡ１１へ順次供給される複数のライトデータＷＤとＣＰＵＢ６からバッファメモリＢ１２へ順次供給される複数のライトデータＷＤとが一部のみ相違するだけで、バッファメモリＡ１１の演算回路(ＯＰ)１１７０の出力端子から生成される出力信号とバッファメモリＢ１２の演算回路(ＯＰ)１１７０の出力端子から生成される出力信号とが相違する。
【０１９２】
そのため、図１９に示した本発明の実施の形態２によるバッファメモリＡ１１、Ｂ１２を図１に示したデュアルコアマイコンＭＣＵ１で使用することによって、２個のＣＰＵＡ２、Ｂ６の一方での異常の検出確率を著しく向上することが可能となる。尚、バッファメモリＡ１１、Ｂ１２に順次に供給される複数のライトデータＷＤの値がバッファ出力信号ＢＯの値に影響を与えるための演算回路(ＯＰ)１１７０の演算アルゴリズムとしては、論理和ＯＲや論理積ＡＮＤや排他的論理和ＥＸＯＲ等の比較的単純な論理演算が選択される。比較的単純な論理演算とすることで、演算回路(ＯＰ)１１７０が高速化されると言う利点がある。
【０１９３】
《演算機能付きのバッファメモリの動作》
図２０は、図１９に示した本発明の実施の形態２による演算機能付きのバッファメモリＡ１１、Ｂ１２の動作を説明する図である。
【０１９４】
図２０に示す本発明の実施の形態２による演算機能付きのバッファメモリＡ１１、Ｂ１２の動作が図３に示した本発明の実施の形態１によるバッファＡ１１、Ｂ１２の動作と相違するのは、以下の点である。
【０１９５】
すなわち、図２０に示す本発明の実施の形態２による演算機能付きのバッファメモリＡ１１、Ｂ１２の動作では、クロック信号ＣＬＫの１番目から６番目までの期間でフリップフロップ(ＦＦ)１１５０のバッファ出力信号ＢＯの値は初期値ＢＯ０(＝Ｈ０)に設定される。
【０１９６】
次にクロック信号ＣＬＫの７番目と８番目との間の期間では、フリップフロップ(ＦＦ)１１５０のバッファ出力信号ＢＯの値は初期値ＢＯ０とライトデータＷＤのデータＤ３との演算処理(ＯＰ)の演算結果の値ＢＯ１(＝ＯＰ(ＢＯ０、Ｄ３))となる。
【０１９７】
更に、クロック信号ＣＬＫの８番目と１４番目との間の期間では、フリップフロップ(ＦＦ)１１５０のバッファ出力信号ＢＯの値は以前の演算結果の値ＢＯ１とライトデータＷＤのデータＤ４との演算処理(ＯＰ)の演算結果の値ＢＯ２(＝ＯＰ(ＢＯ１、Ｄ４))となる。
【０１９８】
また、クロック信号ＣＬＫの１４番目と１５番目との間の期間では、フリップフロップ(ＦＦ)１１５０のバッファ出力信号ＢＯの値は以前の演算結果の値ＢＯ２とライトデータＷＤのデータＤ８との演算処理(ＯＰ)の演算結果の値ＢＯ３(＝ＯＰ(ＢＯ２、Ｄ８))となる。
【０１９９】
以上説明したように、図１９と図２０に示した本発明の実施の形態２によれば、バッファメモリＡ１１、Ｂ１２では、ＣＰＵＡ２、ＣＰＵＢ６から順次に供給される複数のライトデータＷＤの全ての値に依存した出力信号が演算回路(ＯＰ)１１７０の出力端子から生成される。そのため、図１９に示す本発明の実施の形態２によるバッファメモリＡ１１、Ｂ１２を図１に示したデュアルコアマイコンＭＣＵ１で使用することによって、２個のＣＰＵＡ２、Ｂ６の一方での異常の検出確率を著しく向上することが可能となる。
【０２００】
［実施の形態３］
《シングルコアマイコンの構成》
図２１は、本発明の実施の形態３によるシングルコアマイコンＭＣＵ１の構成を示す図である。
【０２０１】
図２１に示した本発明の実施の形態３によるシングルコアマイコンＭＣＵ１が、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１と相違するのは、以下の点である。
【０２０２】
すなわち、図２１に示した本発明の実施の形態３によるシングルコアマイコンＭＣＵ１では、高信頼性を実現するための多重の冗長動作が図１に示したように２個のＣＰＵＡ２、ＣＰＵＢ６による並列動作で実行されるのではなく、単一のＣＰＵＡ２による２重動作で実行されることである。
【０２０３】
従って、図２１に示す本発明の実施の形態３によるシングルコアマイコンＭＣＵ１では、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１に含まれていたＣＰＵＢ６とメモリＢ７とＣＰＵＢバス８とブリッジＢ９とが省略されている。その代わりに、図２１に示す本発明の実施の形態３によるシングルコアマイコンＭＣＵ１では、バッファＢ１２がＣＰＵＡバス４に接続されているので、バッファＢ１２はＣＰＵＡ２から特定のアドレス空間に出力されるデータを保持してその出力回数をカウントするものである。
【０２０４】
例えば、２重動作では、単一のＣＰＵＡ２は同一のオペランドデータに関して同一の冗長タスクプログラムを２回実行する。１回目の動作すなわち２重動作の一方の動作によって、ＣＰＵＡ２から特定のアドレス空間に出力される書き込みデータは、メモリＡ３とバッファＡ１１に二重書き込みされる。２回目の動作すなわち２重動作の他方の動作によって、ＣＰＵＡ２から特定のアドレス空間に出力される書き込みデータは、メモリＡ３とバッファＢ１２に二重書き込みされる。
【０２０５】
図２１に示した本発明の実施の形態３によるシングルコアマイコンＭＣＵ１に故障が存在せずに単一のＣＰＵＡ２が常に正常に動作している場合には、バッファＡ１１、Ｂ１２に格納された書き込みデータは同一となる。しかし、図２１に示した本発明の実施の形態３によるシングルコアマイコンＭＣＵ１に故障が発生して単一のＣＰＵＡ２が異常動作している場合には、バッファＡ１１、Ｂ１２に格納された書き込みデータは不一致となり、故障検出が可能となる。
【０２０６】
図２１に示した本発明の実施の形態３によるシングルコアマイコンＭＣＵ１でも、図１に示した本発明の実施の形態１と同様に、２個のＦＩＦＯＡ１３、Ｂ１４は、２個のバッファＡ１１、Ｂ１２を経由してＣＰＵＡ２から冗長タスク演算結果として順次に出力され供給される複数のデータから所定の出力回数のデータのみを選択して格納する一方、それ以外の出力回数のデータは非選択として破棄するものである。２個のＦＩＦＯＡ１３、Ｂ１４によって選択されて出力される所定の出力回数のデータは、比較器１５により比較される。比較器１５による比較結果が一致する場合には、図２１のシングルコアマイコンＭＣＵ１に故障が存在しないと判定されて、比較器１５による比較結果が不一致の場合には、図２１のシングルコアマイコンＭＣＵ１に故障が存在すると判定される。
【０２０７】
更に図２１に示した本発明の実施の形態３によるシングルコアマイコンＭＣＵ１では、バッファＡ１１、Ｂ１２として図１９と図２０に示した本発明の実施の形態２による演算機能付きのバッファメモリＡ１１、Ｂ１２を使用することで、単一のＣＰＵＡ２の異常の検出確率を著しく向上することが可能となる。
【０２０８】
［実施の形態４］
《トリプルコアマイコンの構成》
図２２は、本発明の実施の形態４によるトリプルコアマイコンＭＣＵ１の構成を示す図である。
【０２０９】
図２２に示した本発明の実施の形態４によるトリプルマイコンＭＣＵ１が、図１に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１と相違するのは、以下の点である。
【０２１０】
すなわち、図２２に示した本発明の実施の形態４によるトリプルコアマイコンＭＣＵ１には、第３中央処理ユニットとしてのＣＰＵＣ１８と、第３内蔵メモリとしてのメモリＣ１９と、第３ＣＰＵバスとしてのＣＰＵＣバス２０、第３バスブリッジとしてのブリッジＣ２１と、第３バッファメモリとしてのバッファＣ２２、第３ＦＩＦＯメモリとしてのＦＩＦＯＣ２３が追加されている
第３バッファメモリとしてのバッファＣ２２は、ＣＰＵＣ１８とが特定のアドレス空間に出力する書き込みデータを保持して、その出力回数をカウントする。第３バッファメモリとしてのバッファＣ２２も、ＣＰＵＣ１８が特定のアドレス空間に出力する書き込みデータを保持して、その出力回数をカウントする。第３ＦＩＦＯメモリとしてのＦＩＦＯＣ２３はバッファＣ２２の出力データ２２０１を保持する。
【０２１１】
比較器１５は、ＦＩＦＯＡ１３の出力データ１３００とＦＩＦＯＢ１４の出力データ１４００とＦＩＦＯメモリの出力データ２３００とを比較する。
【０２１２】
《トリプルコアマイコンでの通常動作》
図２２に示した本発明の実施の形態４によるトリプルコアマイコンＭＣＵ１は高性能を実現するために、３個のＣＰＵＡ２、Ｂ６、Ｃ１８にそれぞれ独立したデータ処理を並列に実行させる。３個のＣＰＵＡ２、Ｂ６、Ｃ１８による並列処理結果は、３個のメモリＡ３、Ｂ７、Ｃ１９に並列に格納可能である。更に３個のメモリＡ３、Ｂ７、Ｃ１９のデータは、３個のブリッジＡ５、Ｂ９、Ｃ２１を介して、システムバス１０に転送されることも可能である。
【０２１３】
《トリプルコアマイコンでの冗長動作》
図２２に示す本発明の実施の形態４によるデュアルコアマイコンＭＣＵ１は高信頼性を実現するために、３個のＣＰＵＡ２、Ｂ６、Ｃ１８に同一のデータ処理を実行させその処理結果の不一致を検出して故障を検出するようにした冗長動作が実行される。
【０２１４】
この冗長動作のために、３個のＣＰＵＡ２、Ｂ６、Ｃ１８は、同一のオペランドデータに関して同一の冗長タスクプログラムを実行する。図２２のトリプルコアマイコンＭＣＵ１に故障が存在せず３個のＣＰＵＡ２、Ｂ６、Ｃ１８が正常に動作している場合には、３個のＣＰＵＡ２、Ｂ６、Ｃ１８から特定のアドレス空間に出力されメモリＡ３、Ｂ７、Ｃ１８とバッファＡ１１、Ｂ１２、Ｃ２２に二重書き込みされる書き込みデータは同一となる。しかし、図２２のトリプルコアマイコンＭＣＵ１に故障が発生して３個のＣＰＵＡ２、Ｂ６、Ｃ１８のいずれかが異常動作している場合には、３個のＣＰＵＡ２、Ｂ６、Ｃ１８から特定のアドレス空間に出力されメモリＡ３、Ｂ７、Ｃ１８とバッファＡ１１、Ｂ１２、Ｃ２２とに二重書き込みされる書き込みデータは不一致となり、故障検出が可能となる。
【０２１５】
３個のＦＩＦＯＡ１３、Ｂ１４、Ｃ２３は、３個のバッファＡ１１、Ｂ１２、Ｃ２２を経由して３個のＣＰＵＡ２、Ｂ６、Ｃ１８から冗長タスク演算結果として順次に出力されて供給される複数のデータから所定の出力回数のデータのみを選択して格納する一方、それ以外の出力回数のデータは非選択として破棄するものである。３個のＦＩＦＯＡ１３、Ｂ１４、Ｃ２３によって選択されて出力される所定の出力回数のデータは、比較器１５によって比較される。比較器１５による比較結果が一致する場合には、図２２のトリプルコアマイコンＭＣＵ１に故障が存在しないと判定されて、比較器１５による比較結果が不一致の場合には、図２２のトリプルマイコンＭＣＵ１に故障が存在すると判定される。従って、高性能の３個のＣＰＵＡ２、Ｂ６、Ｃ１８から順次に出力される複数のデータによって３個のＦＩＦＯＡ１３、Ｂ１４、Ｃ２３に短時間に空き領域がなくなり、３個のＣＰＵＡ２、Ｂ６、Ｃ１８が容易にストールするかウェイトされると言う問題が解消されることが可能となる。
【０２１６】
更に図２２に示した本発明の実施の形態４によるトリプルコアマイコンＭＣＵ１では、バッファＡ１１、Ｂ１２、Ｃ２２として、図１９と図２０とに示した本発明の実施の形態２による演算機能付きのバッファメモリを使用することで、単一のＣＰＵＡ２の異常の検出確率を著しく向上することが可能となる。
【０２１７】
［実施の形態５］
《他のトリプルコアマイコンの構成》
図２３は、本発明の実施の形態５による他のトリプルコアマイコンＭＣＵ１の構成を示す図である。
【０２１８】
図２３に示した本発明の実施の形態５によるトリプルマイコンＭＣＵ１が、図２２に示す本発明の実施の形態４によるトリプルコアマイコンＭＣＵ１と相違するのは、以下の点である。
【０２１９】
すなわち、図２３に示した本発明の実施の形態５によるトリプルマイコンＭＣＵ１では、３個のＣＰＵＡ２、Ｂ６、Ｃ１８の処理結果の一致・不一致の検出を３つの機能ブロック２４、２５、２６により実行するようにしたものである。
【０２２０】
図２３に示した本発明の実施の形態５によるトリプルマイコンＭＣＵ１に含まれた３つの機能ブロック２４、２５、２６の構成は、同一である。特に、３つの機能ブロック２４、２５、２６の各機能ブロックは、図１乃至図１８に示した本発明の実施の形態１で説明したバッファＡ１１とバッファＢ１２とＦＩＦＯＡ１３とＦＩＦＯＢ１４と比較器１５と制御部１６とを含むものである。
【０２２１】
従って、第１機能ブロック２４は第１ＣＰＵＡ２の出力データと第２ＣＰＵＢ６の出力データとを比較して、両方の出力データが不一致となる場合には、割り込み発生回路１７に割り込み要求２４００を出力することが可能である。また第２機能ブロック２５は第２ＣＰＵＢ６の出力データと第３ＣＰＵＣ１８の出力データとを比較して、両方の出力データが不一致となる場合には、割り込み発生回路１７に割り込み要求２５００を出力することが可能である。最後の第３機能ブロック２６は第１ＣＰＵＡ２の出力データと第３ＣＰＵＣ１８の出力データとを比較して、両方の出力データが不一致となる場合には、割り込み発生回路１７に割り込み要求２６００を出力することが可能である。割り込み発生回路１７は、３つの機能ブロック２４、２５、２６からの３つの割り込み要求を受け付けることが可能である。従って、図２３に示す本発明の実施の形態５によるトリプルコアマイコンＭＣＵ１に故障が発生して３個のＣＰＵＡ２、Ｂ６、Ｃ１８のいずれかが異常動作している旨を通知する例外処理が、割り込み発生回路１７への割り込み要求信号２４００、２５００、２６００のいずれかに応答して起動される。
【０２２２】
［実施の形態６］
《自動車への高信頼性マイコンの搭載》
図２４は、図１乃至図１８に示した本発明の実施の形態１によるデュアルコアマイコンＭＣＵ１または図１９と図２０とに示した本発明の実施の形態２による演算機能付きのバッファメモリＡ１１、Ｂ１２を使用したデュアルコアマイコンＭＣＵ１または図２１に示した本発明の実施の形態３によるシングルコアマイコンＭＣＵ１または図２２に示した本発明の実施の形態４によるトリプルマイコンＭＣＵ１または図２３に示した本発明の実施の形態５によるトリプルマイコンＭＣＵ１を搭載した本発明の実施の形態６による自動車の構成を示す図である。
【０２２３】
上述したように本発明の種々の実施の形態によるマイコンＭＣＵ１は、高信頼性を実現するための多重の冗長動作の機能を有するように構成されたものである。特に、多重の冗長動作の機能を利用することによって、マイコンＭＣＵ１の故障検出が可能となったものである。その結果、マイコンＭＣＵ１の故障が検出されない限り、本発明の種々の実施の形態によるマイコンＭＣＵ１の演算結果は高信頼性を有するものであるので、高い安全性と高精度とが必要とされる自動車へのマイコンＭＣＵ１の搭載が可能とされたものである。
【０２２４】
図２４は、一例として、上述した本発明の種々の実施の形態によるマイコンＭＣＵ１が、自動車２７のエンジン２８を制御する電子制御装置(ＥＣＵ：Electronic Control Unit)２９の内部に搭載される様子を示したものである。従って、図２４に示した本発明の実施の形態６によれば、自動車２７のエンジン２８の制御を、高信頼性かつ高精度とすることが可能となる。
【０２２５】
以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０２２６】
例えば、本発明は、４個のＣＰＵを有するクワッドコアマイコンＭＣＵ１にも適用可能であることは、言うもでもない。この際には、４個のバッファと４個のＦＩＦＯとが使用されて、４個のＦＩＦＯの出力信号は比較器に供給される。
【０２２７】
また更に本発明は、マイクロコントローラの内蔵ＣＰＵの故障検出のための多重冗長動作にのみに限定されるものではない。本発明は、広範囲の用途の半導体集積回路の種々の内蔵機能モジュール、例えば、不動少数点演算ユニット(ＦＰＵ：Floating Point number processing Unit)、暗号処理プロセッサ、ＭＰＥＧデコーダ、２Ｄ画像処理プロセッサ、３Ｄ画像処理プロセッサ等の故障検出用の多重冗長動作に適用されることが可能である。
【０２２８】
更に本発明は半導体集積回路の通常動作前の電源投入時の初期化シーケンスでの故障検出動作のための多重冗長動作や通常動作の開始後の故障検出動作のための多重冗長動作にのみに限定されるものではない。本発明による半導体集積回路の検査のための多重冗長動作は、例えば工場出荷前の半導体ウェハ段階での半導体集積回路の半導体チップの良品と不良品を判別する試験であるＢＩＳＴ(Built In Self Test)に適用することが可能である。
【産業上の利用可能性】
【０２２９】
本発明は、機能モジュールと内蔵メモリとを具備する半導体集積回路の検査のための多重冗長動作に、広く適用することができる。
【符号の説明】
【０２３０】
１…マイクロコントローラ(マイコン)ＭＣＵ
２…第１中央処理ユニット(ＣＰＵＡ)
３…第１内蔵メモリ(メモリＡ)
４…第１ＣＰＵバス(ＣＰＵＡバス)
５…第１バスブリッジ(ブリッジＡ)
６…第２中央処理ユニット(ＣＰＵＢ)
７…第２内蔵メモリ(メモリＢ)
８…第２ＣＰＵバス(ＣＰＵＢバス)
９…第２バスブリッジ(ブリッジＢ)
１０…システムバス
１１…第１バッファメモリ(バッファＡ)
１２…第２バッファメモリ(バッファＢ)
１３…第１ＦＩＦＯメモリ(ＦＩＦＯＡ)
１４…第２ＦＩＦＯメモリ(ＦＩＦＯＢ)
１５…比較器
１６…制御部
１７…割り込み発生回路
【図１】
2012144043.tif 000003
【図２】
2012144043.tif 000004
【図３】
2012144043.tif 000005
【図４】
2012144043.tif 000006
【図５】
2012144043.tif 000007
【図６】
2012144043.tif 000008
【図７】
2012144043.tif 000009
【図８】
2012144043.tif 000010
【図９】
2012144043.tif 000011
【図１０】
2012144043.tif 000012
【図１１】
2012144043.tif 000013
【図１２】
2012144043.tif 000014
【図１３】
2012144043.tif 000015
【図１４】
2012144043.tif 000016
【図１５】
2012144043.tif 000017
【図１６】
2012144043.tif 000018
【図１７】
2012144043.tif 000019
【図１８】
2012144043.tif 000020
【図１９】
2012144043.tif 000021
【図２０】
2012144043.tif 000022
【図２１】
2012144043.tif 000023
【図２２】
2012144043.tif 000024
【図２３】
2012144043.tif 000025
【図２４】
2012144043.tif 000026
【手続補正書】
【提出日】平成25年9月26日(2013.9.26)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
最も具体的な実施の形態では、前記第１中央処理ユニットは前記第１内蔵メモリに格納された前記通常動作のための命令を実行することに並列して、前記第２中央処理ユニットは前記第２内蔵メモリに格納された前記通常動作のための命令を実行することによって、前記半導体集積回路は多重コアのマイクロコントローラとして動作可能とされたことを特徴とするものである(図１参照)。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１２９
【補正方法】変更
【補正の内容】
【０１２９】
図１２に戻り、１９番目のクロック信号ＣＬＫのタイミングでは、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値が“８”となってレジスタ(ＦＣＮＡ)１６２５の内容“８”と一致すると、次の２０番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ１Ａ)１６２１の内容ＦＣ１Ａとしてバッファカウント信号ＢＣＡの値“８”が書き込まれる。また、この２０番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＡの値“８”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“１２”がレジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ１(ＦＯ０にデータ有り)”から“Ｈ３(ＦＯ０とＦＯ１にデータ有り)”に変更される。更に、２０番目のクロック信号ＣＬＫのタイミングでは、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給される書き込みイネーブル信号ＦＷＥＡが既にハイレベル“１”となっているので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ８)が、２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１として書き込まれる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１３３
【補正方法】変更
【補正の内容】
【０１３３】
図１２に戻り、３０番目のクロック信号ＣＬＫのタイミングでバッファＡ１１から供給されるバッファカウント信号ＢＣＡの値が“１２”となってレジスタ(ＦＣＮＡ)１６２５の内容“１２”と一致すると、次の３１番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ２Ａ)１６２２の内容ＦＣ２Ａとしてバッファカウント信号ＢＣＡの値“１２”が書き込まれる。この３０番目のクロック信号ＣＬＫのタイミングで、この時点のバッファカウント信号ＢＣＡの値“１２”と比較サイクルＣＭＰＣＹＣの値“４”の加算値“１６”がレジスタ(ＦＣＮＡ)１６２５に書き込まれて、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ２(ＦＯ１にデータ有り)”から“Ｈ６(ＦＯ１とＦＯ２にデータ有り)”に変更される。更に３０番目のクロック信号ＣＬＫのタイミングでは、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給される書き込みイネーブル信号ＦＷＥＡが既にハイレベル“１”となっているので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ１２)が３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２として書き込まれる。また３２番目のクロック信号ＣＬＫのタイミングで制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給されるＦＩＦＯリード番号信号ＦＲＮＡの値が“１”から“２”に変更されたので、ＦＩＦＯＡ１３の読み出しデータＦＯＡに３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２(＝Ｄ１２)が選択される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１３４
【補正方法】変更
【補正の内容】
【０１３４】
一方、図１３において、３０番目のクロック信号ＣＬＫのタイミングでバッファＢ１２から供給されるバッファカウント信号ＢＣＢの値が“８”となってレジスタ(ＦＣＮＢ)１６２５の内容“８”と一致すると、次の３１番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＢ)１６３６に接続されたレジスタ(ＦＣ１Ｂ)１６３１の内容ＦＣ１Ｂとしてバッファカウント信号ＢＣＢの値“８”が書き込まれる。この３０番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＢの値“８”と比較サイクルＣＭＰＣＹＣの値“４”の加算値“１２”がレジスタ(ＦＣＮＢ)１６３５に書き込まれて、レジスタ(ＦＳＴＢ)１６３４の内容は“Ｈ０(データ無し)”から“Ｈ２(ＦＯ１にデータ有り)”に変更される。また、３０番目のクロック信号ＣＬＫのタイミングで制御部(ＣＴＢ)１６３６からＦＩＦＯＢ１４に供給される書き込みイネーブル信号ＦＷＥＢがハイレベル“１”となるので、ＦＩＦＯＢ１４ではバッファＢ１２から供給されるバッファ出力信号ＢＯＢ(＝Ｄ８)が２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１として書き込まれる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１４７
【補正方法】変更
【補正の内容】
【０１４７】
図１４の部分図(５−Ａ)では、バッファカウント信号ＢＣＡの値とレジスタ(ＦＣＮＡ)１６２５の内容とが“１２”となると、レジスタ(ＦＣ２Ａ)１６２２の内容ＦＣ２Ａとしてバッファカウント信号ＢＣＡの値“１２”が書き込まれる。この時点のバッファカウント信号ＢＣＡの値“１２”と比較サイクルＣＭＰＣＹＣの値“４”の加算値“１６”がレジスタ(ＦＣＮＡ)１６２５に書き込まれて、レジスタ(ＦＳＴＡ)１６２４の内容は“Ｈ２(ＦＯ１にデータ有り)”から“Ｈ６(ＦＯ１とＦＯ２にデータ有り)”に変更される。書き込みイネーブル信号ＦＷＥＡがハイレベル“１”であるので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ１２)が３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２として書き込まれる。ＦＩＦＯリード番号信号ＦＲＮＡの値が“０”から“１”に変更されているので、ＦＩＦＯＡ１３の読み出しデータＦＯＡには２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１(＝Ｄ８)が選択される。またＦＩＦＯライト番号信号ＦＷＮＡの値は、“２”から“３”に変更される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１５４
【補正方法】変更
【補正の内容】
【０１５４】
６番目のクロック信号ＣＬＫでは、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値は“１６”となってレジスタ(ＦＣＮＡ)１６２５の内容“１６”と一致すると、次の７番目のクロック信号ＣＬＫでは制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ３Ａ)１６２３の内容ＦＣ３Ａとしてバッファカウント信号ＢＣＡの値“１６”が書き込まれる。また、この７番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＡの値“１６”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“２０”がレジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“ＨＣ(ＦＯ２とＦＯ３にデータ有り)”となる。更に６番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給される書き込みイネーブル信号ＦＷＥＡがハイレベル“１”となるので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ１６)が４段目のフリップフロップ(ＦＦ)１３４０のデータＦＯ３として書き込まれる。６番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給されるＦＩＦＯリード番号信号ＦＲＮＡの値は“２”であるので、ＦＩＦＯＡ１３の読み出しデータＦＯＡには３段目のフリップフロップ(ＦＦ)１３３０のデータＦＯ２(＝Ｄ１２)が選択されている。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１５８
【補正方法】変更
【補正の内容】
【０１５８】
図１５に戻り、２２番目のクロック信号ＣＬＫでは、バッファＡ１１から供給されるバッファカウント信号ＢＣＡの値は“２４”となってレジスタ(ＦＣＮＡ)１６２５の内容“２４”と一致すると、次の２３番目のクロック信号ＣＬＫのタイミングで、制御部(ＣＴＡ)１６２６に接続されたレジスタ(ＦＣ１Ａ)１６２１の内容ＦＣ１Ａとしてバッファカウント信号ＢＣＡの値“２４”が書き込まれる。また、この２２番目のクロック信号ＣＬＫのタイミングで、この時点でのバッファカウント信号ＢＣＡの値“２４”と比較サイクルＣＭＰＣＹＣの値“４”との加算値“２８”がレジスタ(ＦＣＮＡ)１６２５に書き込まれ、レジスタ(ＦＳＴＡ)１６２４の内容は“ＨＤ(ＦＯ２、ＦＯ３、ＦＯ０に、データ有り)”から“ＨＦ(ＦＯ２、ＦＯ３、ＦＯ０、ＦＯ１にデータ有り)”に変更される。更に、２１番目のクロック信号ＣＬＫのタイミングでは、制御部(ＣＴＡ)１６２６からＦＩＦＯＡ１３に供給される書き込みイネーブル信号ＦＷＥＡが既にハイレベル“１”となっているので、ＦＩＦＯＡ１３ではバッファＡ１１から供給されるバッファ出力信号ＢＯＡ(＝Ｄ２４)が、２段目のフリップフロップ(ＦＦ)１３２０のデータＦＯ１として書き込まれる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０２１３
【補正方法】変更
【補正の内容】
【０２１３】
《トリプルコアマイコンでの冗長動作》
図２２に示す本発明の実施の形態４によるトリプルコアマイコンＭＣＵ１は高信頼性を実現するために、３個のＣＰＵＡ２、Ｂ６、Ｃ１８に同一のデータ処理を実行させその処理結果の不一致を検出して故障を検出するようにした冗長動作が実行される。
【手続補正９】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
半導体集積回路は、機能モジュールと、内蔵メモリと、第１バッファメモリと、第２バッファメモリと、第１ＦＩＦＯメモリと、第２ＦＩＦＯメモリと、比較器とを具備して、
前記半導体集積回路の検査のための多重冗長動作の第１動作の間に前記機能モジュールから出力される第１書き込みデータは前記内蔵メモリと前記第１バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第２動作の間に前記機能モジュールから出力される第２書き込みデータは前記内蔵メモリと前記第２バッファメモリに供給され、
前記第１ＦＩＦＯメモリは前記第１動作の間に前記第１バッファメモリから順次に出力される第１出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、
前記第２ＦＩＦＯメモリは前記第２動作の間に前記第２バッファメモリから順次に出力される第２出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、
前記比較器は、前記第１ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データを比較する
ことを特徴とする半導体集積回路。
【請求項２】
請求項１において、
前記機能モジュールは、第１機能モジュールと第２機能モジュールとを少なくとも含むものであり、
前記内蔵メモリは、第１内蔵メモリと第２内蔵メモリとを少なくとも含むものであり、
前記第１動作の間に前記第１機能モジュールから出力される前記第１書き込みデータは、前記第１内蔵メモリと前記第１バッファメモリとに供給されるものであり、
前記第２動作の間に前記第２機能モジュールから出力される前記第２書き込みデータは、前記第２内蔵メモリと前記第２バッファメモリとに供給される
ことを特徴とする半導体集積回路。
【請求項３】
請求項２において、
前記第１機能モジュールと前記第２機能モジュールは、それぞれ第１中央処理ユニットと第２中央処理ユニットである
ことを特徴とする半導体集積回路。
【請求項４】
請求項２において、
前記第１バッファメモリは、前記第１動作の間に順次に前記第１バッファメモリに供給される前記第１書き込みデータの前記複数のデータの第１出力回数をカウント可能とされ、
前記第２バッファメモリは、前記第２動作の間に順次に前記第２バッファメモリに供給される前記第２書き込みデータの前記複数のデータの第２出力回数をカウント可能とされた
ことを特徴とする半導体集積回路。
【請求項５】
請求項４において、
前記半導体集積回路は、前記第１バッファメモリと前記第２バッファメモリと前記第１ＦＩＦＯメモリと前記第２ＦＩＦＯメモリに接続された制御部を更に具備して、
前記制御部は、前記所定の出力回数の情報を格納可能な第１レジスタと第２レジスタとを含み、
前記第１バッファメモリによってカウントされた前記第１出力回数が前記第１レジスタに格納された前記情報と一致することに応答して、前記第１ＦＩＦＯメモリが前記所定の出力回数の前記データを選択して格納するための第１ＦＩＦＯライトイネーブル信号を前記制御部が前記第１ＦＩＦＯメモリに供給可能とされ、
前記第２バッファメモリによってカウントされた前記第２出力回数が前記第２レジスタに格納された前記情報と一致することに応答して、前記第２ＦＩＦＯメモリが前記所定の出力回数の前記データを選択して格納するための第２ＦＩＦＯライトイネーブル信号を前記制御部が前記第２ＦＩＦＯメモリに供給可能とされた
ことを特徴とする半導体集積回路。
【請求項６】
請求項３において、
前記多重冗長動作の前記第１動作と前記第２動作の内容は、前記第１中央処理ユニットと前記第２中央処理ユニットとのいずれか一方で以前に実行されていた通常動作の内容とされることが可能である
ことを特徴とする半導体集積回路。
【請求項７】
請求項６において、
前記通常動作から前記多重冗長動作への移行は、前記通常動作を実行中の前記第１中央処理ユニットと前記第２中央処理ユニットとのいずれか一方から他方への割り込みによって可能とされた
ことを特徴とする半導体集積回路。
【請求項８】
請求項５において、
前記第１バッファメモリは、前記第１ＦＩＦＯメモリに出力される前記第１出力データを格納する第１フリップフロップと、一方の入力端子と他方の入力端子とに前記第１書き込みデータと前記第１フリップフロップの出力端子の第１出力データとがそれぞれ供給される第１演算回路とを含み、前記第１演算回路の出力端子から生成される出力信号は前記第１フリップフロップに格納可能とされ、
前記第２バッファメモリは、前記第２ＦＩＦＯメモリに出力される前記第２出力データを格納する第２フリップフロップと、一方の入力端子と他方の入力端子とに前記第２書き込みデータと前記第２フリップフロップの出力端子の第２出力データとがそれぞれ供給される第２演算回路とを含み、前記第２演算回路の出力端子から生成される出力信号は前記第２フリップフロップに格納可能とされた
ことを特徴とする半導体集積回路。
【請求項９】
請求項１乃至請求項８のいずれかにおいて、
前記比較器による前記第１ＦＩＦＯメモリによって出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって出力される前記所定の出力回数の前記データとの比較結果が両方のデータの一致を示す場合には、前記半導体集積回路は正常と判断されて、比較結果が両方のデータの不一致を示す場合には、前記半導体集積回路は異常と判断される
ことを特徴とする半導体集積回路。
【請求項１０】
請求項３乃至請求項８のいずれかにおいて、
前記第１中央処理ユニットは前記第１内蔵メモリに格納された前記通常動作のための命令を実行することに並列して、前記第２中央処理ユニットは前記第２内蔵メモリに格納された前記通常動作のための命令を実行することによって、前記半導体集積回路は多重コアのマイクロコントローラとして動作可能とされた
ことを特徴とする半導体集積回路。
【請求項１１】
半導体集積回路は、機能モジュールと、内蔵メモリと、第１バッファメモリと、第２バッファメモリと、第１ＦＩＦＯメモリと、第２ＦＩＦＯメモリと、比較器とを具備して、
前記半導体集積回路の検査のための多重冗長動作の第１動作の間に前記機能モジュールから出力される第１書き込みデータは前記内蔵メモリと前記第１バッファメモリに供給され、前記半導体集積回路の前記検査のための前記多重冗長動作の第２動作の間に前記機能モジュールから出力される第２書き込みデータは前記内蔵メモリと前記第２バッファメモリに供給され、
前記第１ＦＩＦＯメモリは前記第１動作の間に前記第１バッファメモリから順次に出力される第１出力データの複数のデータから所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、
前記第２ＦＩＦＯメモリは前記第２動作の間に前記第２バッファメモリから順次に出力される第２出力データの複数のデータから前記所定の出力回数のデータを選択して格納する一方、前記所定の出力回数と異なる出力回数の他のデータを非選択として、
前記比較器は、前記第１ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって選択され出力される前記所定の出力回数の前記データを比較する
ことを特徴とする半導体集積回路の動作方法。
【請求項１２】
請求項１１において、
前記機能モジュールは、第１機能モジュールと第２機能モジュールとを少なくとも含むものであり、
前記内蔵メモリは、第１内蔵メモリと第２内蔵メモリとを少なくとも含むものであり、
前記第１動作の間に前記第１機能モジュールから出力される前記第１書き込みデータは、前記第１内蔵メモリと前記第１バッファメモリとに供給されるものであり、
前記第２動作の間に前記第２機能モジュールから出力される前記第２書き込みデータは、前記第２内蔵メモリと前記第２バッファメモリとに供給される
ことを特徴とする半導体集積回路の動作方法。
【請求項１３】
請求項１２において、
前記第１機能モジュールと前記第２機能モジュールは、それぞれ第１中央処理ユニットと第２中央処理ユニットである
ことを特徴とする半導体集積回路。
【請求項１４】
請求項１２において、
前記第１バッファメモリは、前記第１動作の間に順次に前記第１バッファメモリに供給される前記第１書き込みデータの前記複数のデータの第１出力回数をカウント可能とされ、
前記第２バッファメモリは、前記第２動作の間に順次に前記第２バッファメモリに供給される前記第２書き込みデータの前記複数のデータの第２出力回数をカウント可能とされた
ことを特徴とする半導体集積回路の動作方法。
【請求項１５】
請求項１４において、
前記半導体集積回路は、前記第１バッファメモリと前記第２バッファメモリと前記第１ＦＩＦＯメモリと前記第２ＦＩＦＯメモリに接続された制御部を更に具備して、
前記制御部は、前記所定の出力回数の情報を格納可能な第１レジスタと第２レジスタとを含み、
前記第１バッファメモリによってカウントされた前記第１出力回数が前記第１レジスタに格納された前記情報と一致することに応答して、前記第１ＦＩＦＯメモリが前記所定の出力回数の前記データを選択して格納するための第１ＦＩＦＯライトイネーブル信号を前記制御部が前記第１ＦＩＦＯメモリに供給可能とされ、
前記第２バッファメモリによってカウントされた前記第２出力回数が前記第２レジスタに格納された前記情報と一致することに応答して、前記第２ＦＩＦＯメモリが前記所定の出力回数の前記データを選択して格納するための第２ＦＩＦＯライトイネーブル信号を前記制御部が前記第２ＦＩＦＯメモリに供給可能とされた
ことを特徴とする半導体集積回路の動作方法。
【請求項１６】
請求項１３において、
前記多重冗長動作の前記第１動作と前記第２動作の内容は、前記第１中央処理ユニットと前記第２中央処理ユニットとのいずれか一方で以前に実行されていた通常動作の内容とされることが可能である
ことを特徴とする半導体集積回路の動作方法。
【請求項１７】
請求項１６において、
前記通常動作から前記多重冗長動作への移行は、前記通常動作を実行中の前記第１中央処理ユニットと前記第２中央処理ユニットとのいずれか一方から他方への割り込みによって可能とされた
ことを特徴とする半導体集積回路の動作方法。
【請求項１８】
請求項１５において、
前記第１バッファメモリは、前記第１ＦＩＦＯメモリに出力される前記第１出力データを格納する第１フリップフロップと、一方の入力端子と他方の入力端子とに前記第１書き込みデータと前記第１フリップフロップの出力端子の第１出力データとがそれぞれ供給される第１演算回路とを含み、前記第１演算回路の出力端子から生成される出力信号は前記第１フリップフロップに格納可能とされ、
前記第２バッファメモリは、前記第２ＦＩＦＯメモリに出力される前記第２出力データを格納する第２フリップフロップと、一方の入力端子と他方の入力端子とに前記第２書き込みデータと前記第２フリップフロップの出力端子の第２出力データとがそれぞれ供給される第２演算回路とを含み、前記第２演算回路の出力端子から生成される出力信号は前記第２フリップフロップに格納可能とされた
ことを特徴とする半導体集積回路の動作方法。
【請求項１９】
請求項１１乃至請求項１８のいずれかにおいて、
前記比較器による前記第１ＦＩＦＯメモリによって出力される前記所定の出力回数の前記データと前記第２ＦＩＦＯメモリによって出力される前記所定の出力回数の前記データとの比較結果が両方のデータの一致を示す場合には、前記半導体集積回路は正常と判断されて、比較結果が両方のデータの不一致を示す場合には、前記半導体集積回路は異常と判断される
ことを特徴とする半導体集積回路の動作方法。
【請求項２０】
請求項１３乃至請求項１８のいずれかにおいて、
前記第１中央処理ユニットは前記第１内蔵メモリに格納された前記通常動作のための命令を実行することに並列して、前記第２中央処理ユニットは前記第２内蔵メモリに格納された前記通常動作のための命令を実行することによって、前記半導体集積回路は多重コアのマイクロコントローラとして動作可能とされた
ことを特徴とする半導体集積回路の動作方法。
【国際調査報告】
2012144043.tif 000027
2012144043.tif 000028
2012144043.tif 000029
2012144043.tif 000030