(57)【要約】【課題】  パリティチェックを行うデバイスにおいて、更新されるべきデータが更新されていない場合に、その未更新のデータをエラーとして検出する技術を提供する。【解決手段】  ＣＰＵ（４）に読み込ませるデータ（２１）にパリティビット（２２）を付加してパリティビット付データ（２３）を生成するパリティビット付加回路（５）と、前記パリティビット付データ（２３）を保持するレジスタ（６）と、前記レジスタ（６）から読み出した前記パリティビット付データ（２３）のパリティチェックを実行するパリティチェック回路（７）と、前記パリティチェックの実行完了に応答して前記パリティビット付データ（２３）の前記パリティビット（２２）を反転した反転ビット（２４）を生成し、前記レジスタの前記パリティビット（２２）を前記反転ビット（２４）に更新するパリティビット反転回路（８）とを具備する半導体回路を構成する。【選択図】        図３
2007034469.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵに読み込ませるデータにパリティビットを付加してパリティビット付データを生成するパリティビット付加回路と、
前記パリティビット付データを保持するレジスタと、
前記レジスタから読み出した前記パリティビット付データのパリティチェックを実行するパリティチェック回路と、
前記パリティチェックの実行完了に応答して前記パリティビット付データの前記パリティビットを反転した反転ビットを生成し、前記レジスタの前記パリティビットを前記反転ビットに更新するパリティビット反転回路と
を具備する
半導体回路。
【請求項２】
請求項１記載の半導体回路において、
前記パリティチェック回路は、前記パリティチェックの実行結果に対応して、前記ＣＰＵに割り込み信号を供給する
半導体回路。
【請求項３】
ＣＰＵと、
前記ＣＰＵに読み込ませるデータを出力する周辺回路と、
前記データにパリティビットを付加してパリティビット付データを生成するパリティビット付加回路と、
前記パリティビット付データを保持するレジスタと、
前記レジスタから読み出した前記パリティビット付データのパリティチェックを実行するパリティチェック回路と、
前記パリティチェックの実行完了に応答して前記パリティビット付データの前記パリティビットを反転した反転ビットを生成し、前記レジスタの前記パリティビットを前記反転ビットに更新するパリティビット反転回路と
を具備する
マイクロコンピュータ。
【請求項４】
請求項３記載のマイクロコンピュータにおいて、
前記パリティチェック回路は、前記パリティチェックの実行結果に対応して、前記ＣＰＵに割り込み信号を供給する
マイクロコンピュータ。
【請求項５】
請求項４に記載のマイクロコンピュータにおいて、さらに、
メモリと、
前記周辺回路からの命令に応答してダイレクトメモリアクセスを実行するダイレクトメモリアクセスコントローラと
を具備する
マイクロコンピュータ。
【請求項６】
ＣＰＵに読み込ませるデータにパリティビットを付加してパリティビット付データを生成するステップと、
前記パリティビット付データをレジスタに書き込むステップと、
前記パリティビット付データを読み出し、読み出した前記パリティビット付データのパリティチェックを実行するステップと、
前記パリティチェックの実行完了に応答して前記パリティビット付データの前記パリティビットを反転した反転ビットを生成し、前記レジスタの前記パリティビットを前記反転ビットに更新するステップ
を具備する
エラー検出方法。
【請求項７】
請求項６記載のエラー検出方法において、さらに、
前記パリティチェックの実行結果に対応して、前記ＣＰＵに割り込み信号を供給するステップ
を具備するエラー検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データエラー検出装置およびデータエラー検出方法に関し、特にシングルチップマイクロコンピュータのデータエラー検出装置およびデータエラー検出方法に関する。
【背景技術】
【０００２】
現在市場に流通している製品機器の多くには、マイクロコンピュータと呼ばれる半導体装置が搭載されている。マイクロコンピュータは、演算処理を行うマイクロプロセッサ（ＣＰＵ）とメモリとを備え、それらは、一般的に一つのＬＳＩチップに集積されたＩＣ（集積回路）として構成されている。
【０００３】
マイクロコンピュータを搭載している製品機器の中には、その製品機器の信頼性が重要視されているものが存在する。例えば、車両に搭載される電装品などは、常に高い信頼性が要求されている。したがって、そのような製品機器に搭載されるマイクロコンピュータは、万が一の不具合発生に備えるために、フェイルセーフと呼ばれる設計思想に基づいて設計されている。フェイルセーフに対応するマイクロコンピュータは、故障や操作ミス、設計上の不具合などの障害が発生することをあらかじめ想定して設計されている。そして、故障や操作ミス、設計上の不具合などが起きた際の被害を最小限にとどめるための機能（以下、フェイルセーフ機能と呼ぶ）を備えている。
【０００４】
例えば、そのマイクロコンピュータを搭載するシステムにおいて、非常に重要なものであると位置づけられているデータをＣＰＵが読み出す場合、フェイルセーフ機能は、常にデータを監視することでデバイス故障によるデータの異常をいち早く検知し、誤動作の発生を抑制するようにしている。
【０００５】
そのようなフェイルセーフ機能の一つにデータエラー検出装置があり、データエラー検出装置を備えるマイクロコンピュータが知られている。データエラー検出装置は、重要なデータにはパリティビットを付加し、ＣＰＵが読み出す際にパリティチェックを行い、異常があればパリティエラー割り込み出力することで即座にデータの異常を検知できるようにしている。
【０００６】
図１は従来のデータエラー検出装置を備えるマイクロコンピュータ１０１の構成を示すブロック図である。図１を参照すると、従来のマイクロコンピュータ１０１は、周辺機能１０２と、データエラー検出装置１０３と、ＣＰＵ１０４と含んで構成されている。また図１に示されているように、データエラー検出装置１０３は、パリティビット付加回路１０５と、レジスタ１０６と、パリティチェック回路１０７とを含んで構成され、それらはバス１０９を介して接続されている。
【０００７】
従来のマイクロコンピュータ１０１において、パリティビット付加回路１０５は、データ格納時にそのデータにパリティビットを付加しレジスタ１０６に書き込んでいる。パリティチェック回路１０７は、ＣＰＵ１０４がレジスタ１０６からデータを読み出す時に、パリティチェックを実施する。パリティチェック回路１０７はパリティチェックの実行結果に基づいて、データ線の断線およびデータを制御する回路に故障が発生しているかどうかを判断している。パリティチェック回路１０７は、データ線の断線およびデータを制御する回路に故障が発生していると判断したときに、パリティエラー割り込みを実行し、それによりデータの異常を検出している。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したように、従来のデータエラー検出装置１０３では、パリティチェックを実行してデータライン（データ線およびデータを制御する回路）に対応するデータエラーを検出することによってマイクロコンピュータ１０１の故障を検出している。一般的にデータエラー検出装置１０３は、レジスタにデータを書き込むための制御回路やクロックラインの断線などを監視することはない。そのため、データエラー検出装置１０３は読み出されたデータが、本来読み出されるべきデータであるかどうかを把握することができない。つまり、データエラー検出装置１０３は、データの更新ができなくなった場合にあっても、現在保持されているデータを正しいデータとして読み出しを継続する。
【０００９】
図２は、従来のマイクロコンピュータ１０１における、レジスタにデータを書き込むための制御回路やクロックラインの断線などが発生した場合のデータエラー検出装置１０３の動作を示す図である。図２を参照すると、周辺機能１０２から１〜４回目の出力データとして
１回目：０１１１
２回目：０１０１
３回目：１１１０
４回目：１０１０
が出力されていることが示されている。また、２回目のデータから３回目のデータに更新するときに、断線によるデータ更新が行われなかったことが示されている。図２に示されているように、断線や制御回路の故障によりデータの更新ができなくなった場合、パリティチェック回路１０７は、更新前のデータをリードしてしまう。このとき、レジスタ値とパリティビットとの整合性は保たれているため、パリティチェックではエラーとならない。そのため、ＣＰＵは正常なデータとして古いデータをリードしてしまい、不具合発生の要因を検出が遅れることとなってしまっていた。したがって、従来のデータエラー検出装置１０３は、たとえ１０回連続でリード値が同値であっても、故障と判断せずにデータの読み出しを継続してしまっていた。
【００１０】
本発明が解決しようとする課題は、パリティチェックを行うデバイスにおいて、更新されるべきデータが更新されていない場合に、その未更新のデータをエラーとして検出する技術を提供することにある。
【課題を解決するための手段】
【００１１】
以下に、［発明を実施するための最良の形態］で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１２】
上記課題を解決するために、ＣＰＵ（４）に読み込ませるデータ（２１）にパリティビット（２２）を付加してパリティビット付データ（２３）を生成するパリティビット付加回路（５）と、前記パリティビット付データ（２３）を保持するレジスタ（６）と、前記レジスタ（６）から読み出した前記パリティビット付データ（２３）のパリティチェックを実行するパリティチェック回路（７）と、前記パリティチェックの実行完了に応答して前記パリティビット付データ（２３）の前記パリティビット（２２）を反転した反転ビット（２４）を生成し、前記レジスタの前記パリティビット（２２）を前記反転ビット（２４）に更新するパリティビット反転回路（８）とを具備する半導体回路を構成する。
【００１３】
読み出しが完了したデータパリティビット付データ（２３）のパリティビット（２２）を反転させておくことで、そのパリティビット付データ（２３）の読み出しがすでに完了していることを示しておく。これによって、制御ラインの不具合によりレジスタの更新ができなくなるような場合には、パリティビット（２２）が反転された反転ビット（２４）が付加された反転パリティビット付データ（２５）が読み出される。パリティチェック回路（７）が反転パリティビット付データ（２５）を読み出した場合、パリティエラーが発生するので、そのパリティエラーに対応して迅速に回路の動作を停止させる。
【発明の効果】
【００１４】
本発明は、新しいデータと古いデータの区別をする手段を提供することで、同値データであっても正常データか異常データかを区別することができるマイクロコンピュータを構成することができる。
【発明を実施するための最良の形態】
【００１５】
［第１の実施形態］
以下に、図面を参照して、本発明を実施するための第１の実施形態について説明を行う。以下の第１の実施形態においては、本発明のデータエラー検出装置３が搭載されるマイクロコンピュータが、シングルチップマイクロコンピュータである場合を前提に説明を行う。なお、これは、本発明のデータエラー検出装置３がシングルチップマイクロコンピュータのみに適用可能であることを示すものではない。図３は、本実施形態のマイクロコンピュータの構成を例示するブロック図である。図３を参照すると、本実施形態のマイクロコンピュータ１は、周辺機能２と、データエラー検出装置３と、ＣＰＵ４とを備えて構成され、それらはバス９を介して接続されている。
【００１６】
周辺機能２は、Ａ／Ｄコンバータ、通信装置、タイマなどマイクロコンピュータにおいてＣＰＵが制御することが可能な機能を有する回路ブロックである。以下の実施形態において、それらを総称して周辺機能２と称する。なお、これは本発明に関連する周辺機能２が上記の装置に限定されることを意味するものではない。データエラー検出装置３は、ＣＰＵ４が読み出すデータに発生するエラーを監視し、そのデータエラーに基づいてマイクロコンピュータ１の不具合を検出するエラー検出機能ブロックである。ここで、データエラー検出装置３の詳細な構成は後述する。ＣＰＵ４は、マイクロコンピュータ１に備えられた各種装置の制御やデータの処理を行う演算処理装置である。
【００１７】
図３に示されているように、データエラー検出装置３は、パリティビット付加回路５と、レジスタ６と、パリティチェック回路７と、パリティビット反転回路８とを含んで構成されている。パリティビット付加回路５は、周辺機能２から出力されるデータに基づいて、そのデータに付加するパリティビットの値（”０”または”１”）を算出する回路である。レジスタ６は、パリティビット付加回路５から出力されるデータとそのデータに対応するパリティビットとを保持する記憶回路である。パリティチェック回路７は、レジスタ６からデータが読み出されたことに応答してパリティチェックを実行する回路である。パリティビット反転回路８は、パリティチェック回路７のパリティチェックの実行完了に応答して、レジスタ６に格納されているデータを更新する回路である。
【００１８】
以下に、図面を参照して、マイクロコンピュータ１の動作について説明を行う。図４は一つのデータが周辺機能２から出力されてから次のデータが出力される前までの動作を例示するフローチャートである。図４を参照すると、ステップＳ１０１において、周辺機能２は、マイクロコンピュータの動作に用いられるデータ２１を出力する。周辺機能２から出力されるデータ２１は、データエラー検出装置３のパリティビット付加回路５に供給される。
【００１９】
ステップＳ１０２において、パリティビット付加回路５は周辺機能２から供給されるデータ２１から、”０”、”１”の奇遇を算出し、その算出結果に基づいて、データに付加するパリティビット値２２を決定する。
【００２０】
ステップＳ１０３において、レジスタ６は、パリティビット付加回路５から供給されるパリティビット付データ２３を格納する。
【００２１】
ステップＳ１０４において、パリティチェック回路７は、ＣＰＵがレジスタ６からデータを読み出したことに応答して、レジスタ６に格納されているパリティビット付データ２３のパリティチェックを実行する。
【００２２】
ステップＳ１０５において、パリティチェック回路７はパリティチェックの実行完了をパリティビット反転回路８に通知する。パリティビット反転回路８は、その通知に応答して、現在レジスタ６に格納されているパリティビット付データ２３のパリティビット値２２を抽出する。パリティビット反転回路８は、抽出したパリティビット値２２を反転させて反転パリティビット値２４を生成し、パリティビット値２２を反転パリティビット値２４に更新してレジスタ６に格納する。
【００２３】
これによって、レジスタ６は、新たなデータ２１が出力されるまでは反転パリティビット付データ２５を保持することになる。
【００２４】
以下に、図面を参照して、実行されるべきデータの更新が行われなかったときのエラー検出動作に関して説明を行う。図５は、本実施形態のデータエラー検出装置におけるエラー検出動作を例示する流れ図である。図５を参照すると、周辺機能２からは所定のタイミングで４ビットのデータが出力され、パリティビットが付加されてレジスタ６に格納されている。以下の実施形態においては、図５に示されているように、第１タイミングから第３タイミングで、
第１データ２１−１：０１１１
第２データ２１−２：０１０１
第３データ２１−３：１１１０
が出力されている場合を例示して説明を行う。
【００２５】
図５を参照すると、第１タイミングにおいて、第１データ２１−１に基づいてパリティビット値２２が算出される。上述したように、第１データ２１−１が”０１１１”であるので、パリティビット付加回路５は、パリティビット値２２として”１”を付加したパリティビット付第１データ２３−１（”０１１１”＋”１”）をレジスタ６に格納する。パリティビット反転回路８は、パリティチェック回路７のパリティチェックに実行に応答して、パリティビット値２２（”１”）を反転させて反転パリティビット値２４（”０”）を生成し、レジスタ６データを更新する。したがって、第１のタイミングにおいて、レジスタ６は、パリティチェック実行後、パリティビット付第１データ２３−１のパリティビット値２２を反転させた反転パリティビット値２４が含まれる反転パリティビット付第１データ２５−１（”０１１１”＋”０”）を保持する。
【００２６】
第２タイミングにおいて、第２データ２１−２が出力され、パリティビット付加回路５は、その第２データ２１−２に基づいてパリティビット値２２を算出する。上述したように、第２データ２１−２が”０１０１”であるので、パリティビット付加回路５は、パリティビット値２２として”０”を付加したパリティビット付第２データ２３−２（”０１０１”＋”０”）をレジスタ６に格納する。ＣＰＵ４は、第２タイミングに同期してレジスタ６からパリティビット付第２データ２３−２を読み出す。パリティチェック回路７は、ＣＰＵ４の読み出し動作に応答してパリティチェックを実行する。図５を参照すると、このときのマイクロコンピュータ１は正常に動作しているので、データエラー検出装置３は、エラーを検出することなく処理を進める。パリティビット反転回路８は、パリティチェックの実行完了に応答してパリティビット付第２データ２３−２のパリティビット値２２を反転させた反転パリティビット付第２データ２５−２をレジスタ６に書き込む。
【００２７】
第３タイミングにおいて、第３データ２１−３が出力される。このとき、何らかの要因（例えば、制御線の断線など）で、レジスタ６に第３データ２１−３を書き込むための動作がないものとする。その場合、ＣＰＵ４は、第３タイミングに同期してレジスタ６から反転パリティビット付第２データ２５−２を読み出すことになる。パリティチェック回路７は、ＣＰＵ４がレジスタ６から反転パリティビット付第２データ２５−２を読み出したことに応答して、その反転パリティビット付第２データ２５−２のパリティチェックを実行する。図５に示されているように、反転パリティビット付第２データ２５−２は、第２タイミングで読み出されたパリティビット付第２データ２３−２に、反転パリティビット値２４が付加されたデータである。したがって、パリティチェック回路７は、パリティエラーを検出し、そのエラー検出に応答してパリティエラー割り込み信号を生成して、ＣＰＵ４に出力する。
【００２８】
上述の構成・動作によって、ＣＰＵ４によるリード動作が行なわれた後、レジスタ６に保持されているデータを古いデータとし、そのレジスタ値が古いデータであることを示すためにパリティビットを反転させている。そのため、何らかの要因によって更新されるべきデータ（古いデータ）が更新されていなければ、パリティチェックでエラーとなる。このとき、パリティチェック回路７はＣＰＵ４に対して割り込みを発生させるので、マイクロコンピュータ１は適切にエラールーチンへ移行することが可能となる。
【００２９】
［第２の実施形態］
以下に、図面を参照して、本発明の第２の実施形態について説明を行う。図６は、第２の実施形態のマイクロコンピュータの構成を例示するブロック図である。図６に支援されているブロック図において、第１の実施形態の説明で使用した符号と同じ符号が付されている回路ブロックは、第１の実施形態と同様の構成・動作である。したがって、第２の実施形態では、前述した回路ブロックに関する詳細な説明は省略する。
【００３０】
図６を参照すると、第２の実施形態のマイクロコンピュータ１は、第１の実施形態で説明したマイクロコンピュータ１の構成に加え、さらに、ＤＭＡＣ（Direct  Memory  Access  Controller）１０と、メモリ１１とを含んで構成されている。ＤＭＡＣ１０は、メモリ１１と周辺機器（本実施形態においてはレジスタ６）との間で、データを直接（ＣＰＵを介さず）に送受信するための制御を行う制御回路である。メモリ１１は、マイクロコンピュータ１に備えられ、プログラムを実行する場合に使用されるメインメモリである。
【００３１】
以下、第２の実施形態の動作について説明を行う。ＤＭＡＣ１０は、周辺機能２からの処理完了割り込みを受けて、ＤＭＡによるデータ転送を実行する。したがって、ＤＭＡＣ１０はレジスタ６からメモリ１１へデータ転送を行なう。このとき、パリティチェック回路７はレジスタ６からデータ２１が読み出されたことに応答して、レジスタ６に保持されているデータ２１のパリティチェックを実行する。パリティチェック回路７はパリティチェックの実行が完了したら、実行完了をパリティビット反転回路８に通知する。パリティビット反転回路８は、その通知に応答して、第１の実施形態と同様に、現在レジスタ６に格納されているパリティビット付データ２３のパリティビット値２２を抽出し、抽出したパリティビット値２２を反転させた反転パリティビット付データ２５をレジスタ６に格納する。したがって、第１の実施形態と同様に、データライン以外の箇所に不具合が発生し、データの更新が適切に行われない場合であっても、パリティチェックでエラーを検出することが可能となる。エラーを検出したパリティチェック回路７は、割り込み信号を発生させ、ＣＰＵ４に供給するため、即座にエラールーチンへ移行が可能である。
【００３２】
上述してきたように、データラインの不具合（１ビットの故障）は、通常のパリティチェックにより故障検出を行ない、レジスタの更新ができなくなるような制御ラインの故障を、本実施形態のデータエラー検出装置により検出を行なう。それのよって、従来よりも信頼性が向上したマイクロコンピュータを提供することが可能となる。また。本発明のエラー検出は、わずかな回路の追加で実現可能である。なお、上記の複数の実施形態は、その構成・動作に矛盾が発生しない場合に対応して組み合わせて実施することが可能である。
【図面の簡単な説明】
【００３３】
【図１】図１は、従来のデータエラー検出装置の構成を示すブロック図である。
【図２】図２は、従来のデータエラー検出装置で制御回路やクロックラインの断線などが発生した場合の動作を示す図である。
【図３】図３は、第１の実施形態のマイクロコンピュータの構成を例示するブロック図である。
【図４】図４は、第１の実施形態の動作を例示するフローチャートである。
【図５】図５は、第１の実施形態のデータエラー検出装置におけるエラー検出動作を例示する流れ図である。
【図６】図６は、第２の実施形態のマイクロコンピュータの構成を例示するブロック図である。
【符号の説明】
【００３４】
１…マイクロコンピュータ
２…周辺機能
３…データエラー検出装置
４…ＣＰＵ
５…パリティビット付加回路
６…レジスタ
７…パリティチェック回路
８…パリティビット反転回路
９…バス
１０…ＤＭＡＣ
１１…メモリ
２１…データ
２１−１…第１データ
２１−２…第２データ
２１−３…第３データ
２２…パリティビット値
２３…パリティビット付データ
２３−１…パリティビット付第１データ
２３−２…パリティビット付第２データ
２４…反転パリティビット値
２５…反転パリティビット付データ
２５−１…反転パリティビット付第１データ
２５−２…反転パリティビット付第２データ
１０１…マイクロコンピュータ
１０３…データエラー検出装置
１０２…周辺機能
１０４…ＣＰＵ
１０５…パリティビット付加回路
１０６…レジスタ
１０７…パリティチェック回路
１０９…バス
【図１】
2007034469.tif 000003
【図２】
2007034469.tif 000004
【図３】
2007034469.tif 000005
【図４】
2007034469.tif 000006
【図５】
2007034469.tif 000007
【図６】
2007034469.tif 000008