(57)【要約】【課題】クロックが入力される前においても出力データを確定することによる出力データの信頼性向上を図ることができるマイクロコンピュータ及びデータ出力方法を提供すること【解決手段】本発明のにかかるマイクロコンピュータは、データが入力される入力端子１０と、入力端子１０に入力されたデータを処理する回路であって、同一の処理を行う複数の処理回路を有する冗長処理部３０と、冗長処理部３０から出力されるデータと、入力端子１０に入力されたデータとを切り替えて出力する切替部５０と、を備え、切替部５０は、冗長処理部３０にクロックが入力されていない場合、入力端子１０に入力された入力データを出力し、冗長処理部３０にクロックが入力されている場合、冗長処理部３０から出力されるデータを出力するものである。【選択図】図１
2012079147.tif 000002
【特許請求の範囲】
【請求項１】
データが入力される入力端子と、
前記入力端子に入力されたデータを処理する回路であって、同一の処理を行う複数の処理回路を有する冗長処理部と、
前記冗長処理部から出力されるデータと、前記入力端子に入力されたデータとを切り替えて出力する第１の切替部と、を備え、
前記第１の切替部は、
前記冗長処理部にクロックが入力されていない場合、前記入力端子に入力された入力データを出力し、前記冗長処理部にクロックが入力されている場合、前記冗長処理部から出力されるデータを出力する、マイクロコンピュータ。
【請求項２】
前記冗長処理部は、
前記複数の処理回路それぞれの処理結果を用いて多数決により前記冗長処理部の出力を決定し、前記冗長処理部の出力結果を前記複数の処理回路へ出力する、請求項１記載のマイクロコンピュータ。
【請求項３】
前記冗長処理部から出力される前記冗長処理部の出力結果と、前記入力端子に入力されたデータとを切り替えて前記処理回路へ出力する第２の切替部をさらに備える請求項２記載のマイクロコンピュータ。
【請求項４】
前記処理回路は、
出力した値と、前記冗長処理部から受け取った出力結果とが異なる場合に、前記冗長処理部から受け取った出力結果に補正した値を出力する、請求項２又は３に記載のマイクロコンピュータ。
【請求項５】
前記第１の切替部及び前記第２の切替部における切り替えタイミングを制御するタイミング制御部をさらに備え、
前記タイミング制御部は、前記第２の切替部において前記冗長処理部の出力結果を出力するように切り替えた後に、前記第１の切替部において前記冗長処理部の出力結果を出力するように切り替える、請求項３又は４に記載のマイクロコンピュータ。
【請求項６】
クロックの状態によらず前記入力端子に入力された入力データを制御するラッチ部をさらに備え、
前記第１の切替部は、前記入力データを、前記ラッチ部を介して受け取る、請求項１乃至５のいずれか１項に記載のマイクロコンピュータ。
【請求項７】
マイクロコンピュータにクロックが入力されていない状態において、入力端子に入力されたデータを出力し、
前記マイクロコンピュータにクロックが入力されると、前記入力端子に入力されたデータを同一の処理をする複数の処理回路において処理し、前記入力端子に入力されたデータから、前記複数の処理回路において処理されたデータに切り替えて出力する、データ出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロコンピュータ及びデータ出力方法に関し、特に冗長処理を行うマイクロコンピュータ及びそのマイクロコンピュータにおいて用いられるデータ出力方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路の高集積化と低電圧化とに伴い、α線及び中性子線によるソフトエラーの影響が大きくなっている。今後、半導体集積回路について一層の微細化が進めば、ソフトエラーの発生率が増加することは明らかである。そのため、半導体集積回路の信頼性を向上させるための対策が必要となってくる。
【０００３】
半導体集積回路の信頼性向上のために、フリップフロップの３重化による多数決回路を用いる方法がある。また、そのフリップフロップによって出力される値が反転した場合の対策として、特許文献１には、多数決回路に補正機能を持たせることにより、ビット反転対策を向上させる方法が開示されている。
【０００４】
図４を用いて、特許文献１に開示されている冗長回路装置の構成について説明する。特許文献１に開示されている冗長回路装置は、マンマシンインタフェース１０１と、デジタル処理回路１０２〜１０４と、多数決処理回路１０５と、を備えている。マンマシンインタフェース１０１は、デジタル処理回路１０２〜１０４に同一のデータを出力する。または、マンマシンインタフェース１０１は、デジタル処理回路１０２〜１０４に対して、同一の設定情報を出力する。同一の設定情報を受け取ったデジタル処理回路１０２〜１０４は、同一の情報が設定される。デジタル処理回路１０２〜１０４は、受け取ったデータを用いて演算処理等のデジタル処理を実行する。デジタル処理回路１０２〜１０４は、実行結果を多数決処理回路１０５へ出力する。多数決処理回路１０５は、受け取った実行結果を多数決処理し、他の回路へ出力する。また、多数決処理回路１０５は、出力結果をデジタル処理回路１０２〜１０４へフィードバックする。デジタル処理回路１０２〜１０４は、多数決処理回路１０５からフィードバックされた値とそれぞれが出力した実行結果とが異なっている場合には、補正を行い、補正した値を、多数決回路１０５へ出力する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１９１９３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１に開示されている冗長回路装置を用いた場合、次のような問題が生じる。冗長回路装置を構成する多数決処理回路１０５及びデジタル処理回路１０２〜１０４は、必ずクロック制御により動作が制御される。なぜなら、多数決処理回路１０５は、デジタル処理回路１０２〜１０４のそれぞれにて同一の値を同一のタイミングにおいて処理された出力結果に基づいて多数決処理を行う必要がある。そのため、デジタル処理回路１０２〜１０４は、クロック制御により同期してデジタル処理の結果を出力する必要がある。そのため、冗長回路装置にクロックが入力されていない場合、多数決処理回路１０５は、多数決処理後の結果を出力することができない。その結果、冗長回路装置をクロック制御できない期間においても、信号を制御する必要がある場合に、マンマシンインタフェース１０１から出力されたデータを、多数決処理回路１０５以降の他の回路へ出力することができないという問題が生じる。また、冗長回路装置にクロックが安定供給される前においては、多数決処理回路１０５における処理結果の信頼性が低い。さらに、多数決処理回路１０５からデジタル処理回路１０２〜１０４へフィードバックされる値の信頼性も低いため、デジタル処理回路１０２〜１０４が、フィードバックされた値に補正しても、コンピュータの信頼性を向上させることはできないという問題が生じる。
【課題を解決するための手段】
【０００７】
本発明の第１の態様にかかるマイクロコンピュータは、データが入力される入力端子と、前記入力端子に入力されたデータを処理する回路であって、同一の処理を行う複数の処理回路を有する冗長処理部と、前記冗長処理部から出力されるデータと、前記入力端子に入力されたデータとを切り替えて出力する第１の切替部と、を備え、前記第１の切替部は、前記冗長処理部にクロックが入力されていない場合、前記入力端子に入力された入力データを出力し、前記冗長処理部にクロックが入力されている場合、前記冗長処理部から出力されるデータを出力するものである。
【０００８】
このようなマイクロコンピュータを用いることにより、冗長処理部にクロックが入力されていない場合においても、入力端子に入力されたデータを出力することができる。そのため、クロックが入力される前に、出力データの値を確定させることができる。
【０００９】
本発明の第２の態様にかかるデータ出力方法は、マイクロコンピュータにクロックが入力されていない状態において、入力端子に入力されたデータを出力し、前記マイクロコンピュータにクロックが入力されると、前記入力端子に入力されたデータを同一の処理をする複数の処理回路において処理し、前記入力端子に入力されたデータから、前記複数の処理回路において処理されたデータに切り替えて出力するものである。
【００１０】
このようなデータ出力方法を用いることにより、クロックが入力されていない場合においても、入力端子に入力されたデータを出力することができる。そのため、クロックが入力される前に、出力データの値を確定させることができる。
【発明の効果】
【００１１】
本発明により、クロックが入力される前においても出力データを確定することによる出力データの信頼性向上を図ることができるマイクロコンピュータ及びデータ出力方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１にかかるマイクロコンピュータの構成例である。
【図２】実施の形態１にかかるタイミング制御部の構成例である。
【図３】実施の形態１にかかるマイクロコンピュータにおけるタイミングチャートである。
【図４】特許文献１にかかる冗長回路装置の構成図である。
【発明を実施するための形態】
【００１３】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１を用いて、本発明の実施の形態１にかかるマイクロコンピュータの回路構成例について説明する。マイクロコンピュータは、１チップマイクロコンピュータとも称される。マイクロコンピュータは、入力端子１０と、ラッチ回路２０と、冗長処理部３０と、切替部５０と、出力端子６０と、を備えている。冗長処理部３０は、切替部３１〜３３と、フリップフロップ回路３４〜３６と、ＡＮＤ回路３７〜３９と、ＯＲ回路４０と、を有している。
【００１４】
入力端子１０は、マイクロコンピュータに入力されたデータを、ラッチ回路２０へ出力する。ラッチ回路２０は、リセット信号が入力されるリセット（Ｒｅｓ）端子を有する。ラッチ回路２０は、リセット信号としてＬｏｗレベルの信号が入力された場合、入力端子１０から受け取った値をそのまま冗長処理部３０及び切替部５０へ出力する。ラッチ回路２０は、リセット信号としてＨｉｇｈレベルの信号が入力された場合、入力端子１０から受け取った値をラッチする。ラッチ回路２０は、ラッチした値を、冗長処理部３０及び切替部５０へ出力する。
【００１５】
切替部３１〜３３は、ＯＲ回路４０から出力された値とラッチ回路２０から出力された値とのいずれか一方をフリップフロップ回路３４〜３６へ出力する。切替部３１〜３３は、タイミング制御部７０から出力される信号に応じて、ＯＲ回路４０から出力された値とラッチ回路２０から出力された値とを切り替えてフリップフロップ回路３４〜３６へ出力する。タイミング制御部７０の構成例については、図２を用いて後に説明する。例えば、切替部３１〜３３は、タイミング制御部７０からＨｉｇｈレベルの信号を受け取った場合、ＯＲ回路４０から出力された値をフリップフロップ回路３４〜３６へ出力する。また、切替部３１〜３３は、タイミング制御部７０からＬｏｗレベルの信号を受け取った場合、ラッチ回路２０から出力された値をフリップフロップ回路３４〜３６へ出力する。
【００１６】
ここで、本図においては、切替部３１〜３３は、フリップフロップ回路３４〜３６それぞれと１対１に構成されている。しかし、切替部３１〜３３とフリップフロップ回路３４〜３６とは１対１に構成されなくても、例えば、切替部３１がフリップフロップ回路３４〜３６に接続されてもよい。つまり、切替部とフリップフロップ回路が１対Ｎに構成されてもよい。Ｎは、フリップフロップ回路の数を示す。
【００１７】
フリップフロップ回路３４〜３６は、入力されるクロック（Ｃｌｋ）に応じて、動作する。フリップフロップ回路３４〜３６は、クロック制御され、それぞれラッチしていた値を、実質的に同一タイミングにＡＮＤ回路３７〜３９へ出力する。フリップフロップ回路３４は、ＡＮＤ回路３７及び３９へ、ラッチしていた値を出力する。フリップフロップ回路３５は、ＡＮＤ回路３７及び３８へ、ラッチしていた値を出力する。フリップフロップ回路３６は、ＡＮＤ回路３８及び３９へ、ラッチしていた値を出力する。
【００１８】
ＡＮＤ回路３７〜３９は、受け取った２つの値を用いて論理積演算を実行する。ＡＮＤ回路３７〜３９は、論理積演算を実行した結果を、ＯＲ回路４０へ出力する。ＯＲ回路４０は、受け取った３つの値を用いて論理和演算を実行する。ＯＲ回路４０は、論理和演算を実行した結果を、切替部５０へ出力するとともに、切替部３１〜３３へ出力する。
【００１９】
切替部５０は、ＯＲ回路４０から出力された値とラッチ回路２０から出力された値とのいずれか一方を出力端子６０へ出力する。切替部５０は、タイミング制御部７０から出力される信号に応じて、ＯＲ回路４０から出力された値とラッチ回路２０から出力された値とを切り替えて出力端子６０へ出力する。
【００２０】
ここで、フリップフロップ回路３４〜３６から出力される値と、ＯＲ回路４０から出力される値との関係について説明する。フリップフロップ回路３４〜３６は、全て同一の構成であり、ラッチ回路２０から同一の値を受け取って処理するため、通常は同一の値を出力する。しかし、ノイズ等の影響により、ラッチ回路２０から切替部３１〜３３へ出力される値の一部が反転したり、また、切替部３１〜３３から、フリップフロップ回路３４〜３６へ出力される値が反転したりして、フリップフロップ回路３４〜３６が、同一の値を受け取らない場合がある。もしくは、同一の値を受け取ったフリップフロップ回路３４〜３６の一部が、ノイズ等の影響により、反転した値を出力する場合がある。このような場合、フリップフロップ回路３４〜３６から出力される値は、全て同一ではなく、異なる値が出力されることになる。
【００２１】
例えば、フリップフロップ回路３４及び３５がＨｉｇｈレベルの信号を出力し、フリップフロップ回路３６がＬｏｗレベルの信号を出力した場合の動作について説明する。この場合、ＡＮＤ回路３７は、２つのＨｉｇｈレベルの信号を受け取るため、ＯＲ回路４０に対して、Ｈｉｇｈレベルの信号を出力する。ＡＮＤ回路３８及び３９は、Ｈｉｇｈレベルの信号と、Ｌｏｗレベルの信号とを受け取るため、ＯＲ回路４０に対して、Ｌｏｗレベルの信号を出力する。ＯＲ回路４０は、Ｈｉｇｈレベルの信号を１つ受け取るため、切替部５０及び切替部３１〜３３に対して、Ｈｉｇｈレベルの信号を出力する。
【００２２】
また、フリップフロップ回路３４がＨｉｇｈレベルの信号を出力し、フリップフロップ回路３５及び３６がＬｏｗレベルの信号を出力した場合の動作について説明する。この場合、ＡＮＤ回路３７及び３９は、Ｈｉｇｈレベルの信号と、Ｌｏｗレベルの信号とを受け取るため、ＯＲ回路４０に対して、Ｌｏｗレベルの信号を出力する。ＡＮＤ回路３８は、２つのＬｏｗレベルの信号を受け取るため、ＯＲ回路４０に対して、Ｌｏｗレベルの信号を出力する。ＯＲ回路４０は、３つのＬｏｗレベルの信号を受け取るため、切替部５０及び切替部３１〜３３に対して、Ｌｏｗレベルの信号を出力する。
【００２３】
これより、フリップフロップ回路３４〜３６のうち、２つ以上のフリップフロップ回路がＨｉｇｈレベルの信号を出力した場合、ＡＮＤ回路３７〜３９のうち少なくとも一つのＡＮＤ回路がＨｉｇｈレベルの信号を出力するため、ＯＲ回路４０は、Ｈｉｇｈレベルの信号を出力する。また、フリップフロップ回路３４〜３６のうち２つ以上のフリップフロップ回路がＬｏｗレベルの信号を出力した場合、ＡＮＤ回路３７〜３９は、全てＬｏｗレベルの信号を出力する。そのため、ＯＲ回路４０は、Ｌｏｗレベルの信号を出力する。このようにして、ＯＲ回路４０は、フリップフロップ回路３４〜３６の出力について、多数決により定められた値を出力する。
【００２４】
続いて、図２を用いて本発明の実施の形態１にかかるタイミング制御部７０の構成例について説明する。タイミング制御部７０は、切替部３１〜３３及び切替部５０における出力信号の切り替えタイミングを制御する。タイミング制御部７０は、フリップフロップ回路７１〜７４と、ＡＮＤ回路７５及び７６と、を備えている。フリップフロップ回路７１〜７４及びＡＮＤ回路７５は、直列に接続されている。フリップフロップ回路７１、ＡＮＤ回路７５及び７６は、ラッチ回路２０及びフリップフロップ回路３４〜３６に入力されるリセット信号と同一の信号が入力される。また、フリップフロップ回路７１〜７４は、フリップフロップ回路７１に入力されるリセット信号を反転させた値がそれぞれ入力される。フリップフロップ回路７１〜７４は、クロック信号を受け取る。また、ＡＮＤ回路７６は、フリップフロップ回路７２が出力する値を受け取る。
【００２５】
ここで、ＡＮＤ回路７５は、切替部５０へ演算結果を出力し、切替部５０の切り替えタイミングを制御する。また、ＡＮＤ回路７６は、切替部３１〜３３へ演算結果を出力し、切替部３１〜３３の切り替えタイミングを制御する。
【００２６】
また、本図においては、フリップフロップ回路の数を４としているが、フリップフロップ回路の数はこれに限定されるものではない。たとえば、クロック信号が入力されてから、ＡＮＤ回路７５の出力値を変化させるまでの時間を延ばす場合には、フリップフロップ回路の数を増加させてもよい。
【００２７】
また、ＡＮＤ回路７６は、フリップフロップ回路７２が出力する値を受け取ることに限定されるものではなく、フリップフロップ回路７１又は７３が出力する値を受け取ってもよい。但し、ＡＮＤ回路７５及び７６の出力結果が同時に切り替わることを防止するために、ＡＮＤ回路７５とＡＮＤ回路７６とが共にフリップフロップ回路７４から出力される信号を受け取ることはないようにしてもよい。
【００２８】
次に、図３を用いて、リセット（Ｒｅｓ）信号、クロック（Ｃｌｋ）信号、ＡＮＤ回路７５及び７６の出力信号に関するタイミングチャートについて説明する。ＡＮＤ回路７６の出力信号をIとし、ＡＮＤ回路７５の出力信号をII とする。ｔ１までのタイミングにおいては、リセット信号は、Ｌｏｗレベルの値に設定されている。リセット信号にＬｏｗレベルの値が設定されている場合、ＡＮＤ回路７５からは、Ｌｏｗレベルの値が出力される。そのため、切替部５０は、ラッチ回路２０から出力される値を選択して、出力端子６０へ出力する。また、リセット信号にＬｏｗレベルの値が設定されている間、ラッチ回路２０は、入力端子１０に入力された値Ｘをそのまま切替部５０へ出力する。切替部５０は、値Ｘを出力端子６０へ出力し、出力端子６０から値Ｙとして出力される。
【００２９】
これにより、クロック信号が入力されていない状態（ｔ１までのタイミング）においても、出力端子６０は、入力端子１０に入力された値Ｘを受け取り、外部回路等へ出力することができる。
【００３０】
次に、タイミングｔ１以降は、リセット信号にＨｉｇｈレベルの値が設定される。この場合、フリップフロップ回路７１は、Ｈｉｇｈレベルの値を保持し、Ｈｉｇｈレベルの値に設定されたクロック信号が入力されることにより、フリップフロップ回路７１は、Ｈｉｇｈレベルの値を、フリップフロップ回路７２へ出力する。つまり、フリップフロップ回路７１〜７４は、クロック信号に同期して、保持している値を出力する。
【００３１】
ｔ２のタイミングにおいて、フリップフロップ回路７２は、Ｈｉｇｈレベルの値をフリップフロップ回路７３へ出力するとともに、ＡＮＤ回路７６へ出力する。ｔ２のタイミングは、Ｈｉｇｈレベルの信号が設定された２回目のクロック信号が入力されるタイミングである。ｔ２のタイミングにおいて、ＡＮＤ回路７６は、Ｈｉｇｈレベルに設定された２つの信号を取得するため、Ｈｉｇｈレベルに設定された信号を切替部３１〜３３へ出力する。これより、切替部３１〜３３は、ＯＲ回路４０から出力された値を、フリップフロップ回路３４〜３６へ出力する。そのため、切替部３１〜３３は、フリップフロップ回路３４〜３６から出力された値を多数決処理により正しい値に補正された値をフリップフロップ回路３４〜３６へ出力する。しかし、ｔ２〜ｔ３のタイミングにおいては、ＡＮＤ回路７５は、Ｌｏｗレベルの値が設定された信号を切替部５０へ出力する。そのため、切替部５０は、ｔ２〜ｔ３のタイミングにおいては、ラッチ回路２０から出力された信号を、出力端子６０へ出力する。
【００３２】
ｔ３のタイミングにおいて、フリップフロップ回路７４は、ＡＮＤ回路７５へＨｉｇｈレベルに設定された信号を出力する。そのため、ＡＮＤ回路７５は、Ｈｉｇｈレベルに設定された信号を、切替部５０へ出力する。これより、切替部５０は、ｔ３のタイミング以降、ＯＲ回路４０から出力された信号を出力端子６０へ出力する。つまり、ｔ３のタイミング以降は、多数決処理によって補正された値が、出力端子６０へ出力される。
【００３３】
一般的に、クロック信号は、はじめに信号が入力されてから安定供給されるまでに、数クロック分の時間経過が必要となる。そのため、タイミング制御部７０は、タイミングｔ１とｔ２との間にクロック信号が供給され、数クロック分の時間を経過したタイミングｔ３以降に、切替部５０を切り替えるように制御する。これにより、クロック信号が安定供給された後に、多数決処理によって補正された値を出力端子６０へ出力するようにすることができるため、マイクロコンピュータの信頼性を向上させることができる。
【００３４】
また、タイミング制御部７０は、はじめに切替部３１〜３３の切り替え制御を実施し、後に、切替部５０の切り替え制御を実施するようにして、切替部３１〜３３と、切替部５０とを制御するタイミングをずらしている。これにより、切替部３１〜３３を切り替え、冗長処理部３０内の処理動作が安定した後に、切替部５０の出力を、ＯＲ回路４０から出力される値に切り替えることができる。そのため、切替部３１〜３３と、切替部５０とを同時に切り替えることによって、冗長処理部３０内の処理動作が安定する前の値を出力することを防止することができるため、マイクロコンピュータの信頼性を向上させることができる。
【００３５】
さらに、タイミングｔ３以降は、多数決処理によって補正された値を出力端子６０へ出力するため、ノイズ等の影響によりラッチ回路２０から出力される値が反転等した場合においても、切替部５０は、正しい値を出力端子６０へ出力することができる。
【００３６】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００３７】
１０  入力端子
２０  ラッチ回路
３０  冗長処理部
３１〜３３  切替部
３４〜３６  フリップフロップ回路
３７〜３９  ＡＮＤ回路
４０  ＯＲ回路
５０  切替部
６０  出力端子
７０  タイミング制御部
７１〜７４  フリップフロップ回路
７５、７６  ＡＮＤ回路
【図１】
2012079147.tif 000003
【図２】
2012079147.tif 000004
【図３】
2012079147.tif 000005
【図４】
2012079147.tif 000006