(57)【特許請求の範囲】
【請求項１】
集積回路装置であって、
入力データが書き込まれる複数のブロックを含む不揮発性メモリーと、
前記ブロックのそれぞれに対応付けられ、前記ブロックに書き込まれたデータであるメモリーデータのそれぞれが所与のタイミングで書き込まれる複数のレジスターと、
前記メモリーデータおよび前記レジスターに書き込まれたデータであるレジスターデータを受け取り、比較処理を行う比較部と、
を含み、
前記比較部は、
全ての前記メモリーデータが一致するか否か判定するための第１の比較処理と、
前記複数のブロックの各ブロックについて当該ブロックのメモリーデータと当該ブロックに対応づけられたレジスターに書き込まれた前記レジスターデータとが一致するか否かを判定するための第２の比較処理を行う集積回路装置。
【請求項２】
請求項１に記載の集積回路装置において、
前記比較部は、
全ての前記レジスターデータが一致するか否かを判定するための第３の比較処理を行う集積回路装置。
【請求項３】
請求項２に記載の集積回路装置において、
前記比較部は、
少なくとも初期設定の期間に前記第１の比較処理および前記第２の比較処理を行い、
前記初期設定後の通常動作の期間に前記第３の比較処理を行う集積回路装置。
【請求項４】
請求項１乃至３のいずれかに記載の集積回路装置において、
前記レジスターは、
リセット入力を持たないレジスターである集積回路装置。
【請求項５】
請求項２乃至４のいずれかに記載の集積回路装置において、
前記比較部は、
前記第１の比較処理において不一致と判定した場合に、第１のエラー信号を発生させ、
前記第２の比較処理において不一致と判定した場合に、第２のエラー信号を発生させる集積回路装置。
【請求項６】
請求項５に記載の集積回路装置において、
前記比較部は、
前記第１のエラー信号および前記第２のエラー信号が共に発生しておらず、かつ、前記第３の比較処理において不一致と判定した場合に、第３のエラー信号を発生させる集積回路装置。
【請求項７】
請求項１乃至６のいずれかに記載の集積回路装置において、
集積回路装置の外部からのアクセス要求に基づいて、前記入力データを前記複数のブロックに書き込み、前記メモリーデータのそれぞれを所与のタイミングで対応付けられた前記レジスターに書き込む制御を行う、書き込み制御部を含む集積回路装置。
【請求項８】
請求項７に記載の集積回路装置において、
前記書き込み制御部は、
集積回路装置の外部からのアクセス要求に基づいて、前記レジスターに前記入力データを書き込む集積回路装置。
【請求項９】
請求項７乃至８のいずれかに記載の集積回路装置において、
前記書き込み制御部は、
前記比較部が前記第２の比較処理において不一致と判定したことに基づいて、前記メモリーデータのそれぞれを所与のタイミングで対応付けられた前記レジスターに再度書き込む集積回路装置。
【請求項１０】
請求項１乃至９のいずれかに記載の集積回路装置において、
前記不揮発性メモリーは、２つのブロックを含み、
前記レジスターは、２つである集積回路装置。
【請求項１１】
請求項１乃至１０のいずれかに記載の集積回路装置において、
前記レジスターは、非同期レジスターである集積回路装置。
【請求項１２】
請求項１乃至１１のいずれかに記載の集積回路装置を含む電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置、電子機器等に関する。
【背景技術】
【０００２】
例えば、安全性が求められる自動車、飛行機、船舶、鉄道等に搭載される集積回路装置や電子機器には高い信頼性が求められる。このような集積回路装置等には、システムを多重化し１つの系統で故障が発生しても他の系により動作が継続されるようにしているものがある。また、このような集積回路装置等には、故障検知機能を内蔵し、ある処理において故障が検知された場合には、その処理を再度繰り返すことで動作が継続されるようにしているものもある。この故障検知機能として、例えば、特許文献１では、エリア毎に算出されたチェックサムに基づいて二重にチェックを行うことで正確に故障を検知する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１８３４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、例えば車載向け集積回路装置等では、後段のアナログ回路等の調整用に様々な設定値を必要とする。メモリーやレジスターに書き込まれた設定値の出力部分に多重化回路を設けた場合には、判定に用いる多数決回路などの規模が増大する。そのため、回路規模を抑えたい場合、設定値が書き込まれたメモリーから直接にアナログ回路へと出力を行う方法もある。ただし、この方法はメモリーとアナログ回路を接続するパスを外部から観察できず、故障発生時に原因を解析することが困難となる。また、メモリーから常時出力を行う必要があり、使用されるメモリーの種類によっては消費電力や寿命の面で不利になり得る。
【０００５】
そこで、メモリー出力部分に故障検出機能を設けることを検討する。ここで、特許文献１のような故障検出の場合、チェックサムを生成する専用回路が必要になり開発工数の面で不利である。
【０００６】
本発明はこのような問題点に鑑みてなされたものである。本発明のいくつかの態様によれば、回路規模の増加を抑えながら信頼性の高い故障検出を行う集積回路装置等を提供する。
【課題を解決するための手段】
【０００７】
（１）本発明は、集積回路装置であって、入力データが書き込まれる複数のブロックを含む不揮発性メモリーと、前記ブロックのそれぞれに対応付けられ、前記ブロックに書き込まれたデータであるメモリーデータのそれぞれが所与のタイミングで書き込まれる複数のレジスターと、前記メモリーデータおよび前記レジスターに書き込まれたデータであるレジスターデータを受け取り、比較処理を行う比較部と、を含み、前記比較部は、全ての前記メモリーデータが一致するか否か判定するための第１の比較処理と、前記複数のブロックの各ブロックについて当該ブロックのメモリーデータと当該ブロックに対応づけられたレジスターに書き込まれた前記レジスターデータとが一致するか否かを判定するための第２の比較処理を行う。
【０００８】
本発明の集積回路装置は、同一の入力データが書き込まれる少なくとも２つのブロックを含む不揮発性メモリーと、少なくとも２つのレジスターと、受け取ったデータの値を比較して一致するか否かの判定する比較部と、を含む。
【０００９】
不揮発性メモリーの各ブロックに書き込まれたデータ（メモリーデータ）は、所与のタイミングでレジスターに書き込まれる。そして、後段の回路には、メモリーデータに代えてレジスターに書き込まれたデータ（レジスターデータ）が出力されてもよい。この後段の回路が例えばアナログ回路であり、常に設定値を要求するような場合があり得る。このとき、設定値としてレジスターデータが使用されれば、不揮発性メモリーが常に活性化している必要はないため、不揮発性メモリーの長寿命化につながる。
【００１０】
本発明の集積回路装置は、受け取ったデータとその経路を多重化（少なくとも二重化）することによって、比較という単純な手法により効果的に故障を検知する。具体的には、まず、全てのメモリーデータの値を比較して一致するか否かの判定する（第１の比較処理）。次に、全てのレジスターデータについては、そのレジスターデータと対応づけられたブロックのメモリーデータとの間で値を比較して一致するか否かの判定する（第２の比較処理）。第１、第２の比較処理を行うことによって、メモリーのブロック間でも、各ブロックとレジスターとを繋ぐ経路でもデータが一致することを確認した上でデータを出力することができる。よって、信頼性の高いデータを出力できる。
【００１１】
なお、この集積回路装置は、レジスターデータと対応づけられたブロックのメモリーデータ、すなわち同一経路上のメモリーデータとを比較して一致、不一致を判定するが、さらに異なる経路間でのレジスターデータとメモリーデータとを比較してもよい。例えば、全てのレジスターデータと全てのメモリーデータとを比較して、全てのデータが一致するか否かを判定してもよい。
【００１２】
（２）この集積回路装置において、前記比較部は、全ての前記レジスターデータが一致するか否かを判定するための第３の比較処理を行ってもよい。
【００１３】
本発明によれば、第１、第２の比較処理に加えて、全てのレジスターデータの値を比較して一致するか否かの判定する（第３の比較処理）。このことにより、レジスター間でもデータが一致することを確認した上でデータを出力することができる。よって、信頼性の高いデータを出力できる。
【００１４】
（３）この集積回路装置において、前記比較部は、少なくとも初期設定の期間に前記第１の比較処理および前記第２の比較処理を行い、前記初期設定後の通常動作の期間に前記第３の比較処理を行ってもよい。
【００１５】
本発明によれば、メモリーやレジスターの書き込みが発生する初期設定の期間においては、第１の比較処理と第２の比較処理によって効果的に故障検出を行ってもよい。また、初期設定後の通常動作の期間では、レジスターデータは後段の回路によって使用されるので、動作中の故障を監視するために常時第３の比較処理を行ってもよい。メモリーやレジスターへの書き込みの状況に応じて適切に第１〜第３の比較処理を実行することによって、効果的な故障検出を行うことができる。
【００１６】
（４）この集積回路装置において、前記レジスターは、リセット入力を持たないレジスターであってもよい。
【００１７】
本発明によれば、例えばノイズの影響により、誤ってリセット入力が活性化してレジスターが初期化される危険性を排除することができる。このことにより、この集積回路装置の信頼性が増す。
【００１８】
（５）この集積回路装置において、前記比較部は、前記第１の比較処理において不一致と判定した場合に、第１のエラー信号を発生させ、前記第２の比較処理において不一致と判定した場合に、第２のエラー信号を発生させてもよい。
【００１９】
本発明によれば、この集積回路装置は、例えば不揮発性メモリーへの書き込みエラーで生じたメモリーデータの不一致を第１のエラー信号によって検知することができる。また、この集積回路装置は、例えばレジスターへの書き込みエラーで生じたレジスターデータと元のメモリーデータの不一致を第２のエラー信号によって検知することができる。これらの信号は故障原因の解析や比較部における制御等を容易にする。
【００２０】
（６）この集積回路装置において、前記比較部は、前記第１のエラー信号および前記第２のエラー信号が共に発生しておらず、かつ、前記第３の比較処理において不一致と判定した場合に、第３のエラー信号を発生させてもよい。
【００２１】
本発明によれば、この集積回路装置は、例えば通常動作時にノイズの影響などで生じたレジスターデータの不一致を第３のエラー信号によって検知することができる。このとき、第１のエラー信号および第２のエラー信号が発生していないことを前提とするので、その原因から不揮発性メモリーやレジスターへの書き込みエラーは排除される。このことは、効率的な故障の解析を可能にする。
【００２２】
（７）この集積回路装置において、集積回路装置の外部からのアクセス要求に基づいて、前記入力データを前記複数のブロックに書き込み、前記メモリーデータのそれぞれを所与のタイミングで対応付けられた前記レジスターに書き込む制御を行う、書き込み制御部を含んでもよい。
【００２３】
本発明によれば、書き込み制御部によって、適切なタイミングでレジスターにメモリーデータを書き込むことができる。
【００２４】
（８）この集積回路装置において、前記書き込み制御部は、集積回路装置の外部からのアクセス要求に基づいて、前記レジスターに前記入力データを書き込んでもよい。
【００２５】
本発明によれば、集積回路装置の外部から直接レジスターに値を設定できる。そのため、故障の解析や出荷時等のテストを容易に短時間で行うことができる。また、初期設定時等に故障が発生した場合に、集積回路装置の外部から直接レジスターに正しい値を書き込むことにより、この集積回路装置の全体が動作しなくなることを回避することができる。なお、テストモード以外で集積回路装置の外部からレジスターに書き込みを行うことを、例えば前記比較部が前記第１の比較処理又は前記第２の比較処理において不一致と判定した場合に限定し、レジスターに書き込まれたデータが不用意に上書きされることを避けてもよい。
【００２６】
（９）この集積回路装置において、前記書き込み制御部は、前記比較部が前記第２の比較処理において不一致と判定したことに基づいて、前記メモリーデータのそれぞれを所与のタイミングで対応付けられた前記レジスターに再度書き込んでもよい。
【００２７】
本発明によれば、第２の比較処理において不一致と判定された場合、ノイズの影響により偶然にエラーが発生した可能性があるため、不揮発性メモリーのデータをレジスターに再度書き込む処理（リトライ）を行ってもよい。例えば、初期設定時にリトライを行うことにより、偶然にエラーが発生した場合でも集積回路装置の起動時間が遅延しないようにできる。
【００２８】
（１０）この集積回路装置において、前記不揮発性メモリーは、２つのブロックを含み、前記レジスターは、２つであってもよい。
【００２９】
本発明によれば、集積回路装置は２つのブロックからなる不揮発性メモリーと２つのレジスターを含み、回路規模を最小限に抑えつつ、効果的な故障検出を行うことが可能となる。
【００３０】
（１１）この集積回路装置において、前記レジスターは、非同期レジスターであってもよい。
【００３１】
本発明によれば、レジスターが非同期タイプであるので、クロックを常に供給する必要がある同期タイプのレジスターに比べて消費電力が小さくて済む。また、テストモード等において、通常動作とは異なるタイミングでデータをレジスターに書き込むこと、読み出すことが可能になる。
【００３２】
（１２）本発明は、前記集積回路装置を含む電子機器であってもよい。
【００３３】
本発明によれば、メモリーからの出力を効果的に比較して故障検出を行い、かつ、テストや不良解析を簡単にする電子機器を提供することができる。
【図面の簡単な説明】
【００３４】
【図１】第１実施形態における集積回路装置のブロック図。
【図２】第２実施形態における集積回路装置のブロック図。
【図３】第２実施形態における集積回路装置の一部要素の接続例を示す図。
【図４】第２実施形態における初期設定の例を示す波形図。
【図５】第２実施形態における通常動作時のデータ更新の例を示す波形図。
【図６】第２実施形態における比較部の構成例を示すブロック図。
【図７】図７（Ａ）は第２実施形態におけるリトライを行うタイミング例を示す図。図７（Ｂ）はリトライ機能を有する場合の接続例を示すブロック図。
【図８】第２実施形態におけるテストモード時の接続例を示すブロック図。
【図９】第２実施形態におけるテストモードの例を示す波形図。
【図１０】第３実施形態における電子機器のブロック図。
【図１１】図１１（Ａ）は電子機器の例である携帯電話の図。図１１（Ｂ）は電子機器の例である携帯型ゲーム装置の図。図１１（Ｃ）は電子機器の例であるパーソナルコンピューターの図。
【発明を実施するための形態】
【００３５】
以下、本発明の実施形態について図面を参照して説明する。なお、第２実施形態以降の説明において、第１実施形態と同様の構成については、同一符号を付し、説明を省略する。
【００３６】
１．第１実施形態
本発明の第１実施形態について図１を参照して説明する。
【００３７】
図１は、本実施形態の集積回路装置１のブロック図である。集積回路装置１は、不揮発性メモリー１０、第１のレジスター２０、第２のレジスター２２、比較部３０を含む。
【００３８】
不揮発性メモリー１０は、入力データ４００を二重化して書き込むために第１のブロック１００と第２のブロック１０２を含む。なお、本実施形態では不揮発性メモリー１０は不揮発性であり例えばＥＥＰＲＯＭであるが、書き換えが可能であれば他の種類のメモリーであっても構わない。例えば、揮発性のＳＲＡＭやＤＲＡＭであってもよい。本実施形態では不揮発性メモリー１０がその内部に２つのメモリーブロック（以下、ブロックとする）を有しているが、物理的に異なる２つのメモリーが第１のブロック１００と第２のブロック１０２として使用されてもよい。ブロックは、データのアクセスの際にＣＳ信号（チップセレクト信号）などで選択される物理的な区分であってもよいし、同様の管理をソフトウェア等で行う論理的な区分であってもよい。また、本実施形態では取得データの二重化を行っているが、不揮発性メモリー１０が３つ以上のブロックを含む多重化を行ってもよい。
【００３９】
入力データ４００は第１のブロック１００に書き込まれる。第１のブロック１００に書き込まれたデータ（以下、第１メモリーデータとする）４１０は、所与の条件で第１のレジスター２０に書き込まれる。ここで、所与の条件とは、例えば第１のレジスター２０に入力されるクロックのエッジに同期することであってもよいし、予め定められた書き込み許可条件を満たすことでもよい。
【００４０】
第１のレジスター２０に書き込まれたデータ（以下、第１レジスターデータとする）４２０は集積回路装置１の内部又は外部に出力されて、後段において例えばアナログ回路等の設定値や調整値として用いられる。例えば、集積回路装置１が車載用である場合、第１レジスターデータ４２０に基づいて、自動車の運行上重要な姿勢制御が行われるかもしれない。このとき、第１レジスターデータ４２０のエラーによって、自動車の安全運行に支障がでる恐れがある。このような用途においては特に、第１レジスターデータ４２０の誤り判定を行うことは重要である。なお、リセット端子にノイズの影響を受けた信号が入力されて、誤って第１レジスターデータ４２０が初期化されることを防ぐために、第１のレジスター２０はリセット入力を持たないレジスターであることが好ましい。
【００４１】
第１メモリーデータ４１０の場合と同様に、入力データ４００は第２のブロック１０２に書き込まれる。第２のブロック１０２に書き込まれたデータ（以下、第２メモリーデータとする）４１２は、所与の条件で第２のレジスター２２に書き込まれる。ここで、所与の条件は、第１メモリーデータ４１０が第１のレジスター２０に書き込まれる条件と同じでも異なっていてもよいが、比較部３０において正確な誤り判定ができるように、同一の条件であることが好ましい。第２のレジスター２２に書き込まれたデータ（以下、第２レジスターデータとする）４２２は、第１レジスターデータ４２０の誤り判定に用いる比較用データとして使用される。なお、第１のレジスター２０と同様の理由により、第２のレジスター２２もリセット入力を持たないレジスターであることが好ましい。
【００４２】
比較部３０は、第１レジスターデータ４２０の誤り判定を行う。比較部３０は第１メモリーデータ４１０、第２メモリーデータ４１２、第１レジスターデータ４２０、第２レジスターデータ４２２を受け取る。そして、比較部３０は、次の第１〜第３の比較処理を行ってもよい。
【００４３】
比較部３０は、例えば第１メモリーデータ４１０と第２メモリーデータ４１２とを比較し、データの値が一致するか否かを判定する第１の比較処理を行う。比較部３０は、少なくとも初期設定の期間に第１の比較処理を行うが、初期設定完了後の通常動作時にも第１の比較処理を行ってもよい。
【００４４】
比較部３０は、第１レジスターデータ４２０と対応付けられた第１のブロックに書き込まれたデータである第１メモリーデータ４１０とを比較し、データの値が一致するか否かを判定する第２の比較処理を行う。第２レジスターデータ４２２についても、対応付けられた第２のブロックに書き込まれたデータである第２メモリーデータ４１２と比較し、データの値が一致するか否かを判定する第２の比較処理を行う。それぞれの経路において、例えばノイズ等の影響によるレジスターへの書き込みエラーが生じていないかを判定するためである。なお、第２の比較処理では、全ての（本実施形態では４つの）データを比較してデータの値が一致するか否かを判定してもよい。このとき、より多くのデータと比較するので検出の信頼性が向上する。本実施形態において、第１の比較処理と同様に、比較部３０は少なくとも初期設定の期間に第２の比較処理を行うが、通常動作時にも第２の比較処理を行ってもよい。
【００４５】
比較部３０は、例えば第１レジスターデータ４２０と第２レジスターデータ４２２とを比較し、データの値が一致するか否かを判定する第３の比較処理を行う。本実施形態では、比較部３０は通常動作において常時第３の比較処理を行うが、初期設定の期間に第３の比較処理を行ってもよい。
【００４６】
なお、第１の比較処理、第２の比較処理、第３の比較処理において、データの比較は１ビットずつ行ってもよいし、全体（全ビット）を一度に比較してもよい。１ビットずつの比較を行う場合には、比較に用いる回路（比較器）の規模が小さいとの利点があるが、比較を完了するまでに時間がかかる。逆に、全体を一度に比較する場合には、回路規模は大きくなるが比較の完了までの時間が短縮できる。そこで、例えば、第１の比較処理と第２の比較処理が初期設定の期間に行われ、第３の比較処理が通常動作時に行われるとする。このとき、誤りの発生を直ちに検出する必要がある第３の比較処理については全体を一度に比較し、誤り検出にそれほど緊急性が要求されない第１の比較処理と第２の比較処理については１ビットずつの比較を行ってもよい。
【００４７】
そして、比較部３０は、第１〜第３の比較処理の結果からデータの不一致を検知した場合には、後段に出力される第１レジスターデータ４２０は誤りを含むデータであると判断する。このとき、比較部３０は、第１レジスターデータ４２０が誤りを含むことを集積回路装置１の内部又は外部のモジュールに知らせるエラー検出信号４３０を出力してもよい。
【００４８】
なお、不揮発性メモリー１０が３つ以上のブロックを含む多重化を行う場合には、レジスターの数や関連する信号もブロックの数に合わせて増やす必要がある。このとき、データの経路が多重化され、より多くの比較用データを用いて第１レジスターデータ４２０の誤り判定を行うことが可能になる。多くの比較用データを有することは、第１レジスターデータ４２０の誤り判定の正確さを向上させる。しかし一方で、比較部３０の回路規模は増大する。よって、本実施形態のように２つのブロック１００、１０２からなる不揮発性メモリー１０と２つのレジスター２０、２２を含む構成は、回路規模を最小限に抑えながら故障検出を行うことを可能にする。そして、二重化であるとしても、第１〜第３の比較処理を行うことによってメモリーやレジスターへの書き込みエラーや偶発的なノイズによるエラー等を検出できるので、信頼性の高い故障検出が可能である。
【００４９】
また、レジスターのサイズは不揮発性メモリー１０のブロックのサイズと同じであることが好ましい（例えば、共に６４ビット）が、メモリーデータをレジスターへ書き込む際のデータサイズは別のサイズ（例えばバイト単位や３２ビット単位）であってもよい。
【００５０】
２．第２実施形態
本発明の第２実施形態について図２〜図９を参照して説明する。なお、第１実施形態と同様の構成については、同一符号を付して説明を省略し、主として相違点について説明する。
【００５１】
図２は、本実施形態の集積回路装置１Ａのブロック図である。集積回路装置１Ａは、第１実施形態と同様に、不揮発性メモリー１０、第１のレジスター２０、第２のレジスター２２、比較部３０Ａを含む。比較部３０Ａは、図１の比較部３０に対応し、それぞれ第１、第２、第３の比較処理をおこなう第１の比較部３０１、第２の比較部３０２、第３の比較部３０３を含む。
【００５２】
そして、集積回路装置１Ａは、入力データ４００Ａをブロック１００、１０２に書き込み、メモリーデータのそれぞれを所与のタイミングで対応付けられたレジスター４２０、４２２に書き込む制御を行う書き込み制御部７０を含む。書き込み制御部７０は、シリアルインターフェース部（シリアルＩ／Ｆ部）５０と初期設定部６０を含む。なお、シリアルインターフェース部５０は双方向のシリアルデータを扱うが、本実施形態では主にレジスター２０、２２への書き込み要求があるとして説明する。
【００５３】
シリアルインターフェース部５０は、集積回路装置１Ａの内部又は外部のモジュール等と不揮発性メモリー１０、初期設定部６０、レジスター２０、２２等がシリアル通信を行う場合のインターフェースとして機能する。例えば、シリアルインターフェース部５０は、シリアルデータ４５０を受け取った場合に、パラレル形式に変換して不揮発性メモリー１０の入力データ４００Ａとして出力してもよい。
【００５４】
なお、本実施形態ではシリアル通信を行うシリアルインターフェース部５０であるが、パラレル通信を行うインターフェース部であってもよい。すなわち、集積回路装置１Ａの内部、又は外部のモジュール等からレジスター２０、２２等にアクセスする通信におけるインターフェース部であれば、その通信形式は限定されない。また、シリアル通信の場合に、その方式はＩ２Ｃバスのプロトコルに従ってもよいし、ＳＰＩ（Serial Peripheral Interface）に従ってもよいし、その他の通信方式であってもよい。
【００５５】
初期設定部６０は、第１のレジスター２０および第２のレジスター２２にデータを書くために、その内部ステートマシンの遷移状態に応じた制御信号４４４を生成する。本実施形態では、集積回路装置１Ａは通常動作時に、第１のレジスター２０から後段のモジュールに第１レジスターデータ４２０を供給する必要がある。そのため、少なくとも初期設定の期間において初期設定部６０が動作する。シリアルインターフェース部５０は制御信号４４４に基づいて、不揮発性メモリー１０の入力データ４００Ａや、後述するレジスター２０、２２のストローブ信号４４０、４４２や、図外のライトイネーブル信号などを生成してもよい。
【００５６】
また、初期設定部６０は、通常動作時において第１のレジスター２０および第２のレジスター２２を書き換えるときに動作してもよい。例えばシリアルインターフェース部５０がレジスター２０、２２を更新するデータをシリアルデータ４５０として受け取った場合に、初期設定部６０は、初期設定と同様に制御信号４４４を生成して、同じ手順で第１のレジスター２０および第２のレジスター２２を書き換えることができる。
【００５７】
初期設定を行う場合には、例えば第１のレジスター２０の後段に配置されたアナログ回路部から設定値を求めるリクエスト信号６２０が初期設定部６０に入力される。以下、レジスター２０、２２のデータ更新を求める信号をリクエスト信号と呼ぶ。初期設定部６０は、リクエスト信号６２０を受け取ることで制御信号４４４を出力してもよい。
【００５８】
ここで、予めシリアルインターフェース部５０は、初期設定値をシリアルデータ４５０として受け取り、不揮発性メモリー１０に書き込んでいる。二重化により第１のブロック１００と第２のブロック１０２に書き込まれた初期設定値は、それぞれ第１メモリーデータ４１０、第２メモリーデータ４１２として不揮発性メモリー１０から出力される。そして、制御信号４４４等が定めるタイミングで、それぞれレジスター２０、２２に書き込まれる。第１実施形態と同様に、第１の比較処理、第２の比較処理、第３の比較処理が比較部３０Ａにおいて行われ、データの一致又は不一致に応じた処理が行われる。そして、第１レジスターデータ４２０はアナログ回路部等へ設定値として出力される。
【００５９】
ここで、第１のレジスター２０、第２のレジスター２２は、それぞれストローブ信号４４０、４４２を用いて第１メモリーデータ４１０、第２メモリーデータ４１２を取り込む非同期レジスターであってもよい。加えて、制御信号４４４に基づいて、第１のレジスター２０および第２のレジスター２２のライトイネーブル信号（図外）がシリアルインターフェース部５０から供給されてもよい。ライトイネーブル信号は、例えば、初期設定部６０の内部ステートマシンの状態が設定時間内に遷移することを条件に出力されてもよい。第１の比較処理によってデータの不一致が検出された場合に内部ステートマシンの遷移を停止すれば、制御信号４４４によってシリアルインターフェース部５０はエラーを認識し、ライトイネーブル信号を出力しない。このため、エラーを含むメモリーデータがレジスターに書き込まれることを防止できる。
【００６０】
なお、第１のレジスター２０、第２のレジスター２２は、ストローブ信号４４０、４４２の立ち上がりに同期してデータを取り込んでも良いし、立ち下がりに同期してもよい。そして、ストローブ信号４４０、４４２はシリアルインターフェース部５０から供給されてもよい。シリアルインターフェース部５０からストローブ信号４４０、４４２が供給されることは、テストモードにおいてシリアルインターフェース部５０が直接にレジスター２０、２２にアクセスすることを容易にする。
【００６１】
通常動作時において第１のレジスター２０および第２のレジスター２２を書き換えるときも手順は初期設定と同様である。例えばシリアルインターフェース部５０がレジスター２０、２２を更新するデータをシリアルデータ４５０として受け取った場合に、シリアルインターフェース部５０はリクエスト信号６０４を初期設定部６０に送る。リクエスト信号６０４はリクエスト信号６２０と同じ性質の信号であり、初期設定部６０は初期設定時と同様に内部ステートマシンの状態を遷移させて制御信号４４４を生成する。
【００６２】
次に、シリアルインターフェース部５０と初期設定部６０を含む接続の具体例について図３を参照して説明する。なお、不揮発性メモリー１０は、３２ビットのデータ単位でアクセスが行われる。レジスターは３２ビット単位での書き込みが可能であるが、出力は６４ビットであるとする。
【００６３】
図３は、シリアルインターフェース部５０、初期設定部６０、不揮発性メモリー１０、第１のレジスター２０、第２のレジスター２２、アナログ回路部８０の間の接続例を示す。ここで、第１のレジスター２０から出力される第１レジスターデータ（ＲｅｇＤａｔａＯｕｔ１）４２０はアナログ回路部が機能するのに必要な値を含み、初期設定時にも要求されるものとする。また、少なくとも不揮発性メモリーがクロックとして使用する内部クロック（ＩｎＣＬＫ）６０２は、アナログ回路部８０から供給されてもよい。
【００６４】
シリアルインターフェース部５０は、シリアル通信用チップイネーブル信号（ＣＥ）４５２、シリアルクロック（ＣＬＫ）４５４、シリアルデータ（ＤＡＴＡ）４５０を用いて集積回路装置１Ａの内部又は外部のモジュールとシリアル通信を行う。なお、シリアル通信には不揮発性メモリー１０、第１のレジスター２０、又は第２のレジスター２２のデータを読み出す機能も含まれるが、ここでは、シリアルインターフェース部５０に送られたシリアルデータ（ＤＡＴＡ）４５０を不揮発性メモリー１０に書き込む場合について説明する。
【００６５】
本実施形態では、シリアルインターフェース部５０はアナログ回路部８０に、不揮発性メモリー１０が必要な内部クロック信号（ＩｎＣＬＫ）６０２の供給を求めるクロックリクエスト信号（ＩｎＣＬＫＲｅｑＥＥＰ）６０８を出力する。ＩｎＣＬＫ６０２は、ＣＬＫ４５４よりも低速であってもよい。そして、シリアルインターフェース部５０は、例えばシリアルデータ（ＤＡＴＡ）４５０をパラレルデータに変換したＲｅｇＷｒＤａｔａ４００Ａを不揮発性メモリー１０に出力する。シリアルインターフェース部５０は、ＲｅｇＷｒＤａｔａ４００Ａが書き込まれる対象（例えば、アドレスやブロック）を、アドレス（ＡｄｄｒＳｆｔ）４２４で指定してもよいが、不揮発性メモリー１０のサイズが小さくアドレス指定が不要な場合等はメモリーブロック選択信号（ＥＥＰ＿ＸＣＳ）６３４だけで指定を行ってもよい。本実施形態では、ＲｅｇＷｒＤａｔａ４００Ａは二重化されて不揮発性メモリー１０内部の第１のブロック１００と第２のブロック１０２（図２）の両方に書き込まれるとする。シリアルインターフェース部５０は、不揮発性メモリー１０に対する書き込み、読み出しを指定するのに、それぞれメモリーライトイネーブル信号（ＥＥＰ＿ＷｒＥｎ）６３０、メモリーリードイネーブル信号（ＥＥＰ＿ＲｄＥｎ）６３２を用いてもよい。
【００６６】
不揮発性メモリー１０に書き込まれたデータの内容を後段のアナログ回路部８０に反映させるには、第１のレジスター２０を更新する必要がある。また、第１のレジスター２０のデータが正しいという信頼性を高めるためには、比較対象となる第２のレジスター２２も更新する必要がある。
【００６７】
シリアルインターフェース部５０は、例えばＥＥＰ＿ＲｄＥｎ６３２等によって、不揮発性メモリー１０に書き込まれたデータが出力されるようにしてもよい。そして、不揮発性メモリー１０内部の第１のブロック１００と第２のブロック１０２からそれぞれ出力された第１メモリーデータ（ＥＥＰ＿ＲｄＤａｔａ１）４１０と第２メモリーデータ（ＥＥＰ＿ＲｄＤａｔａ２）４１２がレジスター２０、２２に書き込まれるように制御信号を出力する。ここで、第１のレジスター２０は非同期レジスターであるとして、シリアルインターフェース部５０は、ライトイネーブル信号（ＲｅｇＡｎａＸｗｒＥｎ１）６１０とストローブ信号（ＲｅｇＸｗｒＰｌｓ１）４４０によって適当なタイミングで第１のレジスター２０の値を更新する。同様に、第２のレジスター２２も非同期レジスターであり、シリアルインターフェース部５０は、ライトイネーブル信号（ＲｅｇＡｎａＸｗｒＥｎ２）６１２とストローブ信号（ＲｅｇＸｗｒＰｌｓ２）４４２によって第２のレジスター２２の値を更新する。ＲｅｇＡｎａＸｗｒＥｎ１（６１０）とＲｅｇＡｎａＸｗｒＥｎ２（６１２）は同じタイミングで変化してもよいし、互いに独立していてもよい。また、ＲｅｇＸｗｒＰｌｓ１（４４０）とＲｅｇＸｗｒＰｌｓ２（４４２）も同じタイミングで変化してもよいし、互いに独立していてもよい。更新された第１レジスターデータ（ＲｅｇＤａｔａＯｕｔ１）４２０はアナログ回路部８０に入力される。また、更新された第２レジスターデータ（ＲｅｇＤａｔａＯｕｔ２）４２２は、比較部３０Ａ（図２）でデータを比較するのに用いられる。
【００６８】
例えば集積回路装置１Ａのリセット後などの初期設定において、アナログ回路部８０に含まれるアナログ回路が適切な出力値をとるように、レジスター２０、２２は不揮発性メモリー１０からのデータを読み込み、データを更新する必要がある。
【００６９】
初期設定部６０は、アナログ回路部８０とシリアルインターフェース部５０の状態を把握し、初期設定においてシリアルインターフェース部５０に適切なタイミングでレジスター２０、２２のデータを更新させてもよい。本実施形態では、初期設定部６０は内部にステートマシンを有しているが別の構成であってもよい。
【００７０】
初期設定部６０は、リセット信号（ＩｎｉｔＲｓｔＰｌｓ＿Ｘ）６００で内部のステートマシンを初期化した後、アナログ回路部８０から初期設定のリクエスト信号（ＲｅｑＡｎａＤａｔａ）６２０を受け取る。そして、初期設定部６０は、制御信号４４４（図２）によってシリアルインターフェース部５０に適切なタイミングでレジスター２０、２２のデータを更新させる。このとき、制御信号４４４の一つとして、初期設定部６０は、レジスター２０、２２のデータの更新終了を示すアクノリッジ信号（ＡｃｋＡｎａＤａｔａ）６０６を出力してもよい。なお、ＡｃｋＡｎａＤａｔａ６０６は制御信号４４４の一つではなくアナログ回路部８０に対して出力される信号であってもよいし、本実施形態のようにシリアルインターフェース部５０とアナログ回路部８０の両方に対して出力されてもよい。
【００７１】
ここで、初期設定においてレジスター２０、２２のデータを更新する手順は、シリアルインターフェース部５０がシリアルデータ（ＤＡＴＡ）４５０を不揮発性メモリー１０に書き込んだ後にレジスター２０、２２を更新する手順と同じである。よって、この初期設定部６０を、シリアルデータ（ＤＡＴＡ）４５０を不揮発性メモリー１０に書き込む場合に利用できれば、別途回路を用意する必要がないので回路規模の増大を抑制できる。
【００７２】
そこで、本実施形態では、シリアルインターフェース部５０は不揮発性メモリー１０に書き込むシリアルデータ（ＤＡＴＡ）４５０を受け取ったときに、レジスター更新のリクエスト信号（ＲｅｑＡｎａＤａｔａ＿Ｓｅｒｉａｌ）６０４を初期設定部６０に出力する。初期設定部６０は、この場合にもＡｃｋＡｎａＤａｔａ６０６を含む制御信号４４４を生成する。
【００７３】
図４は、本実施形態における初期設定の例を示す波形図である。まず、負論理の信号であるＩｎｉｔＲｓｔＰｌｓ＿Ｘ６００によって、初期設定部６０の内部のステートマシンが初期化される（ｔ０〜ｔ１）。そして、不揮発性メモリー１０の読み出し等に必要なＩｎＣＬＫ６０２がアナログ回路部８０から供給される（ｔ２）。アナログ回路部８０は、アナログ回路が安定するのに必要な時間の経過後等、所定のタイミングでＲｅｑＡｎａＤａｔａ６２０をアクティブにする（ｔ３）。シリアルインターフェース部５０のリード要求信号（例えば、ＥＥＰ＿ＲｄＥｎ６３２）に応じて不揮発性メモリー１０から、下位３２ビットのデータＤ１が出力される（ｔ４）。ここでは、第１のブロック１００からの出力ＥＥＰ＿ＲｄＤａｔａ１（４１０）と第２のブロック１０２からの出力ＥＥＰ＿ＲｄＤａｔａ２（４１２）に違いはないものとし、波形図をまとめて記載している。同時に（ｔ４）、シリアルインターフェース部５０は第１のレジスター２０に負論理の書き込みイネーブル信号ＲｅｇＡｎａＸｗｒＥｎ１（６１０）を出力する。また、シリアルインターフェース部５０は第２のレジスター２２に負論理の書き込みイネーブル信号ＲｅｇＡｎａＸｗｒＥｎ１（６１２）を出力する。そして、第１のレジスター２０に対してはＲｅｇＸｗｒＰｌｓ１（４４０）の立ち上がりで、第２のレジスター２２に対してはＲｅｇＸｗｒＰｌｓ２（４４２）の立ち上がりで、Ｄ１［３１：０］書き込みが行われる（ｔ５）。そして、同様に上位３２ビット（Ｄ１［６３：３２］）についても同様に書き込みが行われる（ｔ６〜ｔ７）。その後、第１のレジスター２０と第２のレジスター２２がＤ１［６３：０］に更新されたことを通知するため初期設定部６０はＡｃｋＡｎａＤａｔａ６０６を出力する（ｔ８）。アナログ回路部８０は、ＲｅｑＡｎａＤａｔａ６２０を非アクティブにする（ｔ９）。
【００７４】
図５は、本実施形態における通常動作時のデータ更新の例を示す波形図である。図４の初期設定の場合とは異なり、シリアルインターフェース部５０は、ＣＥ４５２、ＣＬＫ４５４、ＤＡＴＡ４５０を用いてシリアル通信を行う。ＣＥ４５２はシリアル通信用チップイネーブル信号であり、論理レベルが１のときにシリアル通信が行われることを示す。ＣＬＫ４５４はシリアルクロックであり、本実施形態ではＣＬＫ４５４の立ち上がりエッジでＤＡＴＡ４５０の値が確定するものとする。ＤＡＴＡ４５０はシリアルデータであり、要求がリードかライトかを指定する書き込み要求、アドレス、書き込み用データ等をシリアルインターフェース部５０に伝送する。図５のようにシリアルインターフェース部５０は、レジスター２０、２２に書き込むデータＤ１［３１：０］を取得する。ここで、本実施形態では通常動作時のデータ更新は３２ビット単位で行われるものとする。そして、この例では、ＡｄｄｒＳｆｔ４２４（Ａ１［３：０］）により、不揮発性メモリー１０（ブロック１００、１０２の両方）の下位３２ビットを指定して書き換えるものとする。
【００７５】
ＣＥ４５２がアクティブになりシリアル通信が開始される（ｔ０）。シリアルインターフェース部５０は、ＣＬＫ４５４の立ち上がりに同期してＤＡＴＡ４５０を取得する。なお、ＣＬＫ４５４の立ち下がりに同期して、又はレベルを見てＤＡＴＡ４５０が取得されてもよい。本実施形態では、ＣＬＫ４５４の立ち上がりでアドレス、データの順に送られたＤＡＴＡ４５０を取得して、パラレル変換したＡｄｄｒＳｆｔ４２４とＲｅｇＷｒＤａｔａ４００Ａを生成する（ｔ１）。なお、アドレスの前にライト要求又はリード要求を示す信号が送られてもよい。本実施形態では、論理レベルが１の場合はライト要求であるとする。
【００７６】
少なくとも、通常動作時のデータ更新においてシリアルインターフェース部５０は、不揮発性メモリー１０が使用するＩｎＣＬＫ６０２の供給を、ＩｎＣＬＫＲｅｑＥＥＰ６０８によってアナログ回路部８０に要求する（ｔ２）。なお、図４はこの信号を含まないが、初期設定においてＩｎＣＬＫＲｅｑＥＥＰ６０８が使用されてもよい。
【００７７】
ここで、先にＥＥＰ＿ＸＣＳ６３４について説明する。この例において、負論理の信号ＥＥＰ＿ＸＣＳ６３４は不揮発性メモリー１０のメモリーブロック、すなわち第１のブロック１００と第２のブロック１０２のどちらにアクセスするかを指定する信号である。具体的には、ＥＥＰ＿ＸＣＳ６３４が１０ｂのとき（ｔ３）は第１のブロック１００が選択され、ＥＥＰ＿ＸＣＳ６３４が０１ｂのとき（ｔ５）は第２のブロック１０２が選択される。また、不揮発性メモリー１０からの読み出し要求に限り、ＥＥＰ＿ＸＣＳ６３４が００ｂであれば両方のブロックから同時に読み出すことが可能であるとする（ｔ９）。非選択の場合には、ＥＥＰ＿ＸＣＳ６３４は１１ｂとなっている（ｔ７）。ＥＥＰ＿ＸＣＳ６３４は、シリアルインターフェース部５０が出力するメモリーライトイネーブル信号（ＥＥＰ＿ＷｒＥｎ）６３０、メモリーリードイネーブル信号（ＥＥＰ＿ＲｄＥｎ）６３２と共に使われてもよい。具体的には不揮発性メモリー１０へのアクセスは、ＥＥＰ＿ＷｒＥｎ６３０がアクティブのときには書き込み動作が行われ（ｔ４、ｔ６）、ＥＥＰ＿ＲｄＥｎ６３２がアクティブのときには読み出し動作が行われる（ｔ９）。なお、図４はこの信号を含まないが、初期設定においてＥＥＰ＿ＲｄＥｎ６３２が使用されてもよい。
【００７８】
再び時系列に沿って説明をすると、時刻ｔ３で第１のブロック１００が選択されて時刻ｔ４でＥＥＰ＿ＷｒＥｎ６３０がアクティブになることによりＤ１［３１：０］が書き込まれる。そして、時刻ｔ５で第２のブロック１０２が選択されて時刻ｔ６でＥＥＰ＿ＷｒＥｎ６３０がアクティブになることによりＤ１［３１：０］が書き込まれる。レジスターに書くべきデータＤ１［３１：０］が不揮発性メモリー１０に保存されたので（ｔ７）、続いてレジスターへのコピーを行う。
【００７９】
そのために、シリアルインターフェース部５０は、リクエスト信号ＲｅｑＡｎａＤａｔａ＿Ｓｅｒｉａｌ６０４をアクティブにする（ｔ８）。この信号は初期設定の場合のＲｅｑＡｎａＤａｔａ６２０と同様であり、初期設定部６０は適当なタイミングでＡｃｋＡｎａＤａｔａ６０６を含む制御信号４４４等を出力する。シリアルインターフェース部５０は、ＥＥＰ＿ＲｄＥｎ６３２をアクティブにして不揮発性メモリー１０を読み出しモードにする（ｔ９）。そして、初期設定の場合と同様に、時刻ｔ１０、時刻ｔ１１において、それぞれ第１のレジスター２０、第２のレジスター２２が、不揮発性メモリー１０から読み出された値Ｄ１［３１：０］に更新される。その後、不揮発性メモリー１０の読み出しモードも解除され（ｔ１２）、シリアル通信も完了する（ｔ１３）。
【００８０】
図６は、本実施形態における比較部３０Ａの構成例を示すブロック図である。第１の比較部３０１は第１メモリーデータ（ＥＥＰ＿ＲｄＤａｔａ１）４１０と第２メモリーデータ（ＥＥＰ＿ＲｄＤａｔａ２）４１２を受け取って、第１の比較処理を行い、不一致の場合には第１のエラー信号４３１を出力する。
【００８１】
第２の比較部３０２はＥＥＰ＿ＲｄＤａｔａ１（４１０）、ＥＥＰ＿ＲｄＤａｔａ２（４１２）、第１レジスターデータ（ＲｅｇＤａｔａＯｕｔ１）４２０、第２レジスターデータ（ＲｅｇＤａｔａＯｕｔ２）４２２を受け取って、第２の比較処理を行い、不一致の場合には第２のエラー信号４３２を出力する。
【００８２】
第３の比較部３０３はＲｅｇＤａｔａＯｕｔ１（４２０）、ＲｅｇＤａｔａＯｕｔ２（４２２）を受け取って、第３の比較処理を行い、不一致の場合には第３のエラー信号４３３を出力する。このとき、第１のエラー信号および第２のエラー信号が発生していない場合に限って第３のエラー信号４３３を出力してもよい。
【００８３】
比較部３０Ａは、第１のエラー信号４３１、第２のエラー信号４３２、第３のエラー信号４３３のいずれかが出力されたことを示すエラー検出信号４３０Ａを出力してもよい。エラー検出信号４３０Ａは、例えば第１のエラー信号４３１、第２のエラー信号４３２、第３のエラー信号４３３の論理和をとったものでもよい。しかし、本実施形態のように、第２のエラー信号４３２に代えて不揮発性メモリーのデータをレジスターに再度書き込む処理（リトライ）の後の第２のエラー信号４３６を用いてもよい。なお、比較部３０Ａは、少なくとも第１のエラー信号４３１又は第２のエラー信号４３２を発生させた場合に、発生したエラー信号に応じてフラグをたててもよい。エラー発生原因をレジスター等に保存して区別できるようにすることで、例えば不良解析時の原因の特定を容易にすることができる。また、それぞれのエラー対して適切な対応をとることが可能となる。
【００８４】
ここで、比較部３０Ａは、少なくとも初期設定の期間に第１の比較処理と第２の比較処理とを行う。このうち、第１の比較処理におけるＥＥＰ＿ＲｄＤａｔａ１（４１０）とＥＥＰ＿ＲｄＤａｔａ２（４１２）の不一致は不揮発性メモリー１０への書き込みが失敗したことを示すため、直ちにエラー検出信号４３０Ａとして出力されることが望ましい。エラー検出信号４３０Ａにより、集積回路装置１Ａを含むシステムがリセットなどの対応をとることができるからである。
【００８５】
一方、第１のエラー信号４３１が出力されない場合において、第２の比較処理におけるＥＥＰ＿ＲｄＤａｔａ１（４１０）、ＥＥＰ＿ＲｄＤａｔａ２（４１２）、ＲｅｇＤａｔａＯｕｔ１（４２０）、ＲｅｇＤａｔａＯｕｔ２（４２２）の不一致は、レジスターへの書き込みが失敗したことを示す。このとき、偶然のノイズ等の影響で失敗した可能性があるため、直ちにエラー検出信号４３０Ａとして出力せずに前記のリトライを行うことが好ましい。そこで、第２の比較部３０２から第２のエラーの通知信号４３４をカウンター３０４に送り、第２のエラーの発生回数をカウントする。例えば、第２のエラー信号４３２が出力された場合にリトライを２回まで行うならば、カウンター３０４の値が３以上になった場合に出力イネーブル信号４３５を論理レベル１として、リトライ後の第２のエラー信号４３６が後段に伝わるようにしてもよい。なお、第２のエラーの通知信号４３４は第２のエラー信号４３２と同一の信号であってもよい。また、ビット数の異なるデータ間の比較を行う場合には、第２の比較部３０２はデータを一時保存するレジスターを含んでいてもよい。
【００８６】
比較部３０Ａは通常動作時に少なくとも第３の比較処理を常に行い、ＥＥＰ＿ＲｄＤａｔａ１（４１０）における異常の発生を監視する。このとき第３のエラー信号４３３も直ちにエラー検出信号４３０Ａとして出力されることが望ましい。
【００８７】
なお、比較部３０Ａは、エラー検出信号４３０Ａだけでなく、例えば第１のエラー信号４３１、第２のエラー信号４３２、出力イネーブル信号４３５、第３のエラー信号４３３をそれぞれ出力してもよい。例えば、第２のエラー信号４３２が初期設定部６０に入力されてリトライを行うか否かの判断を行い、初期設定部６０が出力する制御信号４４４に基づいてシリアルインターフェース部５０が必要な信号を出力してもよい。
【００８８】
図７（Ａ）は、本実施形態におけるリトライを行うタイミングの例を示す図である。本実施形態の集積回路装置１ＡやＣＰＵを含むシステムにおいて、システムが起動（ｔ０）した後に例えば２〜３秒経過すると、ＣＰＵは集積回路装置１Ａがアクティブ（正常状態）であるかのチェックを行うとする。図７（Ａ）のＣＨＥＣＫ入力信号は、ＣＰＵがチェックを要求していることを示す（ｔ２）。また、その後にＤＩＡＧ出力信号による応答や集積回路装置１ＡのＩＤコードの出力（ｔ３）が求められることもある。この例においては、集積回路装置１Ａの初期設定は時刻ｔ２までに完了する必要がある。
【００８９】
ここで、ＤＩＡＧ出力信号には、エラー検出信号４３０Ａも接続されているとする。しかし、専用の出力信号ではなく、一般に起動時には様々な信号がＤＩＡＧから出力される。例えば、システム起動直後の例えば約３００ミリ秒の間はアナログ回路が安定したかを判断するのに用いられる（ｔ０〜ｔ１）。よって、集積回路装置１Ａはリトライも含めて時刻ｔ１〜時刻ｔ２の間に完了させなければならない。この例の場合、ＩｎＣＬＫの周波数が５０ＫＨｚ程度であっても、少なくとも２回のリトライは可能である。よって、第２の比較処理において不一致と判定された場合であって、ノイズの影響により偶然にエラーが発生した場合にはリトライによって短時間でのデータの修復が可能である。
【００９０】
図７（Ｂ）は、集積回路装置１Ａがリトライ機能を有する場合における、比較部からの出力信号の接続例を示すブロック図である。初期設定部６０は比較部３０Ａから第１のエラー信号４３１、第２のエラー信号４３２、出力イネーブル信号４３５を受け取る。例えば、第１のエラー信号４３１は出力されずに第２のエラー信号４３２が出力された場合には、初期設定部６０はレジスター２０、２２への書き込みでエラーが発生したと判断する。さらに、出力イネーブル信号４３５が出力されていない場合は、初期設定部６０はリトライを行う必要があると判断する。そして、初期設定部６０は制御信号４４４によってシリアルインターフェース部５０にリトライを実行させる。なお、初期設定部６０に代わってシリアルインターフェース部５０が比較部３０Ａから第１のエラー信号４３１、第２のエラー信号４３２、出力イネーブル信号４３５を受け取り、リトライの実行を判断してもよい。
【００９１】
リトライを行う場合には、ＲｅｇＡｎａＸｗｒＥｎ１（６１０）、ＲｅｇＡｎａＸｗｒＥｎ２（６１２）、ＲｅｇＸｗｒＰｌｓ１（４４０）、ＲｅｇＸｗｒＰｌｓ２（４４２）により第１のレジスター２０、第２のレジスター２２に書き込みが行われてもよい。また、別の信号も使用されてよい。
【００９２】
なお、実際に信号として出力しなくても、第１のエラー信号４３１、第２のエラー信号４３２、出力イネーブル信号４３５はステータスレジスターにマッピングされており、初期設定部６０又はシリアルインターフェース部５０がステータスレジスターをポーリングすることで前記のリトライについての制御を行ってもよい。
【００９３】
図８は、本実施形態におけるテストモード時の接続例を示すブロック図である。テストモードは、シリアルインターフェース部５０から直接第１のレジスター２０、第２のレジスター２２へのアクセスを可能にする。テストモードによって、レジスター２０、２２に書き込まれた値を集積回路装置の外部に読み出したり、集積回路装置の外部から直接レジスター２０、２２に値を設定したりできる。そのため、故障の解析や出荷時等のテストを容易に短時間で行うことができる。また、例えば初期設定においてリトライを行ったにもかかわらず第２のエラー信号４３２が出力されエラーが解消されないような場合に、テストモードによって、集積回路装置１Ａの外部から直接レジスター２０、２２に正しい値を書き込んでもよい。この操作によって、集積回路装置１Ａの全体が動作しなくなることを回避することができる。なお、このように通常動作時にテストモードを利用している場合、レジスターに書き込まれたデータが不用意に上書きされる恐れがある。そのため、故障の解析や出荷時等のテスト以外で集積回路装置の外部からレジスターに書き込みを行うことを初期設定時に故障が発生した場合（例えば、第１のエラー信号４３１又は第２のエラー信号４３２が出力された場合やそれらのフラグがたった場合）に限定してもよい。
【００９４】
図８は、図３とは異なり、シリアルインターフェース部５０がＲｅｇＷｒＤａｔａ４００Ａを直接第１のレジスター２０と第２のレジスター２２に出力している。つまり、テストモードではシリアルインターフェース部５０はレジスター２０、２２に直接ＲｅｇＷｒＤａｔａ４００Ａを書き込むことができる。このとき、ライトイネーブル信号６１０、６１２やストローブ信号４４０、４４２をＣＬＫ４５４に同期させて作成してもよい。すなわち、不揮発性メモリー１０に用いる低速なＩｎＣＬＫ６０２とは無関係に、より高速なシリアルクロック（ＣＬＫ）４５４をクロックとして必要な信号を生成することが可能である。
【００９５】
また、シリアルインターフェース部５０は、レジスター部９０を経由して第１のレジスター２０と第２のレジスター２２の値を３２ビット単位で読むことができる。レジスター２０、２２の出力はそれぞれ６４ビットである。しかし、レジスター部９０によってアドレス（ＡｄｄｒＳｆｔ）４２４の値に応じた３２ビット幅のテスト用第１レジスターデータ（ＲｅｇＲｄＤａｔａ）４２１が選択されてシリアルインターフェース部５０に出力される。テストモードにおいて、シリアルインターフェース部５０は、テスト用レジスターリードイネーブル（ＲｅｇＲｄＥｎ）４４６によってレジスター２０、２２からのデータ読み出しを指示する。
【００９６】
図９は、本実施形態におけるテストモードを用いてレジスター２０、２２にデータを書き込む場合の波形図を示している。書き込みは下位３２ビットと上位３２ビットの順に２回行われる。ＣＥ４５２がアクティブになりシリアル通信が開始される（ｔ０、ｔ５）。シリアルインターフェース部５０は、ＣＬＫ４５４の立ち上がりに同期してＤＡＴＡ４５０を取得する。そして、パラレル変換したＡｄｄｒＳｆｔ４２４（ｔ１、ｔ６）とＲｅｇＷｒＤａｔａ４００Ａを生成する（ｔ２、ｔ７）。ＲｅｇＸｗｒＰｌｓ１（４４０）、ＲｅｇＸｗｒＰｌｓ２（４４２）の立ち上がりで第１のレジスター２０、第２のレジスター２２に書き込みが行われる（ｔ３、ｔ８）。その後、シリアル通信が完了する（ｔ４、ｔ９）。
【００９７】
３．第３実施形態
本発明の第３実施形態について図１０〜図１１を参照して説明する。なお、第１実施形態又は第２実施形態と同様の構成については、同一符号を付して説明を省略し、主として相違点について説明する。
【００９８】
図１０は本実施形態に係る電子機器８００のブロック図である。電子機器８００は、集積回路装置８１０、入力部８２０、メモリー８３０、電源生成部８４０、ＬＣＤ８５０、音出力部８６０を含む。集積回路装置８１０は、第１又は第２実施形態の集積回路装置１、集積回路装置１Ａのいずれかに対応する。
【００９９】
ここで、入力部８２０は、種々のデータを入力するためのものである。集積回路装置８１０は、この入力部８２０により入力されたデータに基づいて種々の処理を行うことになる。メモリー８３０は、集積回路装置８１０などの作業領域となるものである。電源生成部８４０は、電子機器８００で使用される各種電源を生成するためのものである。
【０１００】
ＬＣＤ８５０は、電子機器８００が表示する各種の画像（文字、アイコン、グラフィック等）を出力するためのものである。音出力部８６０は、電子機器８００が出力する各種の音（音声、警告音、ゲーム音等）を出力するためのものであり、その機能は、スピーカーなどのハードウェアにより実現できる。
【０１０１】
電子機器８００の例としては、自動車の制御装置がある。例えば横滑り防止のヨーレートセンサーや加速度センサーとして集積回路装置８１０が含まれていてもよい。入力部８２０、ＬＣＤ８５０、音出力部８６０は運転席付近に設けられていてもよい。自動車の制御装置は高い信頼性が求められるため、本発明に係る集積回路装置８１０が適している。
【０１０２】
また、信頼性の高い故障検出はノイズの影響を受けやすい携帯機器でも必要とされる場合がある。
【０１０３】
図１１（Ａ）に、電子機器の１つである携帯電話９５０の外観図の例を示す。この携帯電話９５０は、入力部として機能するダイヤルボタン９５２や、電話番号や名前やアイコンなどを表示するＬＣＤ９５４や、音出力部として機能し音声を出力するスピーカー９５６を備える。
【０１０４】
図１１（Ｂ）に、電子機器の１つである携帯型ゲーム装置９６０の外観図の例を示す。この携帯型ゲーム装置９６０は、入力部として機能する操作ボタン９６２、十字キー９６４や、ゲーム画像を表示するＬＣＤ９６６や、音出力部として機能しゲーム音を出力するスピーカー９６８を備える。
【０１０５】
図１１（Ｃ）に、電子機器の１つであるパーソナルコンピューター９７０の外観図の例を示す。このパーソナルコンピューター９７０は、入力部として機能するキーボード９７２や、文字、数字、グラフィックなどを表示するＬＣＤ９７４、音出力部９７６を備える。
【０１０６】
本実施形態の集積回路装置を例えば自動車の制御装置や図１１（Ａ）〜図１１（Ｃ）の電子機器に組み込むことにより、回路規模の増加を抑えながら信頼性の高い故障検出を行う電子機器８００を提供することができる。
【０１０７】
これらの例示に限らず、本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法および結果が同一の構成、あるいは目的および効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。
【符号の説明】
【０１０８】
１…集積回路装置、１Ａ…集積回路装置、１０…不揮発性メモリー、２０…第１のレジスター、２２…第２のレジスター、３０…比較部、３０Ａ…比較部、５０…シリアルインターフェース部（シリアルＩ／Ｆ）、６０…初期設定部、７０…書き込み制御部、８０…アナログ回路部、９０…レジスター部、１００…第１のブロック、１０２…第２のブロック、３０１…第１の比較部、３０２…第２の比較部、３０３…第３の比較部、３０４…カウンター、４００…入力データ、４００Ａ…入力データ（ＲｅｇＷｒＤａｔａ）、４１０…第１メモリーデータ（ＥＥＰ＿ＲｄＤａｔａ１）、４１２…第２メモリーデータ（ＥＥＰ＿ＲｄＤａｔａ２）、４２０…第１レジスターデータ（ＲｅｇＤａｔａＯｕｔ１）、４２１…テスト用第１レジスターデータ（ＲｅｇＲｄＤａｔａ）、４２２…第２レジスターデータ（ＲｅｇＤａｔａＯｕｔ２）、４２４…アドレス（ＡｄｄｒＳｆｔ）、４３０…エラー検出信号、４３０Ａ…エラー検出信号、４３１…第１のエラー信号、４３２…第２のエラー信号、４３３…第３のエラー信号、４３４…第２のエラーの通知信号、４３５…出力イネーブル信号、４３６…リトライ後の第２のエラー信号、４４０…ストローブ信号（ＲｅｇＸｗｒＰｌｓ１）、４４２…ストローブ信号（ＲｅｇＸｗｒＰｌｓ２）、４４４…制御信号、４４６…テスト用レジスターリードイネーブル（ＲｅｇＲｄＥｎ）、４５０…シリアルデータ（ＤＡＴＡ）、４５２…シリアル通信用チップイネーブル信号（ＣＥ）、４５４…シリアルクロック（ＣＬＫ）、６００…リセット信号（ＩｎｉｔＲｓｔＰｌｓ＿Ｘ）、６０２…内部クロック信号（ＩｎＣＬＫ）、６０４…リクエスト信号（ＲｅｑＡｎａＤａｔａ＿Ｓｅｒｉａｌ）、６０６…アクノリッジ信号（ＡｃｋＡｎａＤａｔａ）、６０８…クロックリクエスト信号（ＩｎＣＬＫＲｅｑＥＥＰ）、６１０…ライトイネーブル信号（ＲｅｇＡｎａＸｗｒＥｎ１）、６１２…ライトイネーブル信号（ＲｅｇＡｎａＸｗｒＥｎ２）、６２０…リクエスト信号（ＲｅｑＡｎａＤａｔａ）、６３０…メモリーライトイネーブル信号（ＥＥＰ＿ＷｒＥｎ）、６３２…メモリーリードイネーブル信号（ＥＥＰ＿ＲｄＥｎ）、６３４…メモリーブロック選択信号（ＥＥＰ＿ＸＣＳ）、８００…電子機器、８１０…集積回路装置、８２０…入力部、８３０…メモリー、８４０…電源生成部、８５０…ＬＣＤ、８６０…音出力部、９５０…携帯電話、９５２…ダイヤルボタン、９５４…ＬＣＤ、９５６…スピーカー、９６０…携帯型ゲーム装置、９６２…操作ボタン、９６４…十字キー、９６６…ＬＣＤ、９６８…スピーカー、９７０…パーソナルコンピューター、９７２…キーボード、９７４…ＬＣＤ、９７６…音出力部
【図１】
0005413595.tif 000002
【図２】
0005413595.tif 000003
【図３】
0005413595.tif 000004
【図４】
0005413595.tif 000005
【図５】
0005413595.tif 000006
【図６】
0005413595.tif 000007
【図７】
0005413595.tif 000008
【図８】
0005413595.tif 000009
【図９】
0005413595.tif 000010
【図１０】
0005413595.tif 000011
【図１１】
0005413595.tif 000012