(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-09
(45)【発行日】2023-08-18
(54)【発明の名称】チップおよびその設計方法と故障解析方法と故障解析システム
(51)【国際特許分類】
G06F 11/22 20060101AFI20230810BHJP
G06F 12/00 20060101ALI20230810BHJP
【FI】
G06F11/22 675E
G06F12/00 597U
【外国語出願】
(21)【出願番号】P 2021133068
(22)【出願日】2021-08-18
【審査請求日】2021-12-20
(32)【優先日】2020-08-27
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508197206
【氏名又は名称】新唐科技股▲ふん▼有限公司
(74)【代理人】
【識別番号】110000291
【氏名又は名称】弁理士法人コスモス国際特許商標事務所
(72)【発明者】
【氏名】マルガリータ,イーラン
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2016-110400(JP,A)
【文献】特開平5-282147(JP,A)
【文献】特表2016-520226(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/22
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
複数の揮発性構成レジスタ、
少なくとも1つの確保されたメモリ位置を含み、前記確保されたメモリ位置は、前記揮発性構成レジスタ内に少なくとも1つの揮発性構成レジスタのコンテンツを格納するように用いられるオンチップ不揮発性メモリ、および
前記オンチップ不揮発性メモリの前記少なくとも1つの確保されたメモリ位置内に値を格納するように構成され、前記値は、前記揮発性構成レジスタ内の少なくとも1つの揮発性構成レジスタのコンテンツを示す書き込みユニットを含
み、
前記書き込みユニットは、チップがあるアプリケーションシステムが最初にオンにされるときにのみ、前記コンテンツを前記オンチップ不揮発性メモリに格納し、且つ前記アプリケーションシステムの後続でのオンのたびに、 前記コンテンツを前記オンチップ不揮発性メモリ内に格納しないように構成されるチップ。
【請求項2】
前記書き込みユニットは、前記チップ内に配置されたハードウェアを含む請求項1に記載のチップ。
【請求項3】
前記書き込みユニットは、前記チップ内に配置されたファームウェアを含む請求項1に記載のチップ。
【請求項4】
前記書き込みユニットが前記少なくとも1つの揮発性構成レジスタに対して書き込みを行うとき、前記少なくとも1つの揮発性構成レジスタのアドレスを受け取り、前記少なくとも1つの揮発性構成レジスタに書き込まれたデータの少なくとも一部を受け取り、 前記データを前記少なくとも1つの確保されたメモリ位置に格納する請求項1に記載のチップ。
【請求項5】
前記書き込みユニットはトリガー信号にトリガーされ、且つ前記
揮発性構成レジスタへの書き込みが識別されたとき、前記トリガー信号が少なくとも1回生成される請求項1に記載のチップ。
【請求項6】
前記書き込みユニットが前記コンテンツを前記オンチップ不揮発性メモリに格納した後、前記コンテンツを前記オンチップ不揮発性メモリに格納することを少なくとも1回
無効にする請求項1に記載のチップ。
【請求項7】
前記書き込みユニットが前記コンテンツを前記オンチップ不揮発性メモリに格納した後、前記オンチップ不揮発性メモリに前記コンテンツを格納することを永久的に
無効にする請求項
6に記載のチップ。
【請求項8】
コンピュータにより実行されるものであって、
電子設計自動化(Electronic Design Automation; EDA)ソフトウェアを用いて、少なくとも1つのチップを設計し、前記チップは、不揮発性メモリ(NVM)および揮発性構成レジスタを含むステップを含み、
前記設計は、前記少なくとも1つのチップにNVM書き込み機能を提供するステップを含み、前記NVM書き込み機能は、 少なくとも1つの設定を前記不揮発性メモリに書き込むように構成され、前記設定は、前記チップの少なくとも1つの揮発性構成レジスタ内のコンテンツに格納さ
れ、
前記書き込みユニットは、前記チップがあるアプリケーションシステムが最初にオンにされるときにのみ、前記コンテンツを前記不揮発性メモリ(NVM)に格納し、且つ前記アプリケーションシステムの後続でのオンのたびに、前記コンテンツを前記不揮発性メモリ(NVM)内に格納しないように構成されるチップ設計方法。
【請求項9】
少なくとも1つの故障のチップを提供するステップを含み、
前記故障のチップは、
不揮発性メモリ(NVM)、
揮発性構成レジスタ、および
前記不揮発性メモリにビットを少なくとも1回書き込むように構成され、前記それらのビットは、前記チップの少なくとも1つの揮発性構成レジスタに格納された少なくとも1つの設定を示すように用いられるNVM書き込み機能を含み、且つ
前記これらのビットを受け取り、前記チップの故障を再構築するとき、前記これらのビットに従って前記チップを構成するステップを含む故障解析方法。
【請求項10】
少なくとも1つの故障のチップを提供するステップを含み、
前記故障のチップは、
不揮発性メモリ(NVM)、
揮発性構成レジスタ、および
前記不揮発性メモリにビットを少なくとも1回書き込むように構成され、前記それらのビットは、前記チップの少なくとも1つの揮発性構成レジスタに格納された少なくとも1つの設定を示すように用いられるNVM書き込み機能を含み、且つ
前記これらのビットを受け取り、前記チップの故障を再構築するとき、前記これらのビットに従って前記チップを構成するステップを含む故障解析システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ハードウェアに関するものであり、特に、半導体装置に関するものである。
【背景技術】
【0002】
不揮発性メモリ(NVM)または従来の「相補型金属酸化膜半導体(CMOS)メモリ」のどちらかで実装されているかにかかわらず、構成を記憶するために用いられるさまざまな永続的な記憶媒体(persistent storage)が実装者には全て知られている。
【0003】
下記のリンク:https://www.tech-faq.com/cmos-ram.htmlには、パーソナルコンピューター(PC)フィールドにシステム構成の設定を保存する方法を説明している。
【0004】
システム構成を得るのに関連するその他の先行技術としては、米国特許第5497490A号(IBM、1991)、米国特許第5768568A号(IBM、1997)、米国特許第20100037042A1号(Foxconn、2008)、米国特許第6601190B1号(HP、1999)、米国特許第20130111275A1号、及び米国特許第20140325286A1号(Dell、2011)、米国特許第20060168471A1号(Tandberg Storage ASA、2005)がある。
【0005】
本明細書中で言及されている全ての刊行物および特許文書、ならびにそこに直接または間接的に引用されている刊行物および特許文書の開示内容は、主題の免責または否認を除き、参照することにより本明細書に組み込まれる。組み込まれた内容が本明細書の明示的な開示と矛盾する場合、本明細書に示された開示は特定の実施形態を説明し、組み込まれた内容は他の実施形態を説明するものと解釈されるべきである。前記組み込まれた内容に含まれた語彙の定義は、当該語彙の可能な定義の1つとして見なすことができる。
【発明の概要】
【0006】
以下の用語の説明は、従来の技術文献に記載されている定義に基づくか、本明細書の定義に基づくか、またはその個別の範囲に以下の定義を含むことができる。
【0007】
「書き込みトランザクション(write transaction)」または「書き込み動作」という用語は、プロセッサまたは他のタイプのマスター(master)によって発行されたターゲットアドレス、および書き込まれるデータを含み、前記データが前記アドレスより指されたターゲットに置かれる任意の動作をするようにするものであり、前記ターゲットは、レジスタ(register)、輸入/輸出ポート(IO port)、またはメモリアドレスを含むがこれらに限定されない任意の適切なターゲットであることができる。書き込みトランザクションは、実行される動作が「書き込み」であることを示す、要求メッセージ、または制御信号の論理的な組み合わせを含むことができる。
【0008】
「チップ」、「デバイス」および「集積回路」という用語は相互に交換可能である。
【0009】
「レジスタをプログラムする」と「レジスタを書き込む」という用語は相互に交換可能である。
【0010】
「構成レジスタ」は、数値を格納する任意のレジスタを含むことを目的としており、前記数値は、デバイスの動作周波数の変更、デバイスの入出力機能の変更、または特定のデバイスの機能のオン/オフなど、デバイスの機能に影響を与える。
【0011】
いくつかの実施形態によれば、構成レジスタ内のビットまたは数値が集積回路に適用され、前記集積回路の複数の構成となる。
【0012】
いくつかの実施形態は、チップ内にチップ故障解析(通常は不揮発性)をサポートする情報を提供することによって、故障(故障したチップなど)の再構築を容易にしようとするため、故障解析は通常、前記チップ自体から得ることができる情報に基づいて行う必要があるだけなので、追加の情報を得る必要がない。
【0013】
チップはさまざまな実行可能な構成範囲があるため、従来の故障の再構築が非常に困難になる。しかしながら、本発明の実施形態は、「アプリケーションシステムが、必要な全ての設定をチップの構成レジスタに書き込むということは、実際には既にこのチップに対してさまざまな実行可能な構成範囲内から特定の実行可能な構成を選択したということを意味している」という事実を用いており;前記チップ内にこの構成(configuration)を格納し、後続の故障解析(あれば)の文脈で最終的に取り出されるように用いられることにより、非常に有益な故障解析の近道が得られる。
【0014】
いくつかの実施形態は、例えば、本明細書で述べられた方式で、本明細書で述べられた任意の機能を容易にするように設計された改良された集積回路を提供しようとする。
【0015】
いくつかの実施形態は、以下の構成要素の全てまたは任意のサブセット:NVM、構成レジスタ、NVMライター(本明細書で述べられているものなど)、前記NVMライターが一度動作した後、再度動作することを抑制するインジケータ、および前記NVMライターのトリガー信号を含むチップまたは集積回路を提供しようとする。前記チップはアプリケーションシステムに組み込こまれることができ、前記アプリケーションシステムは前記チップの設定を前記チップの構成レジスタに格納することができる。
【0016】
いくつかの実施形態は、チップが設計されるステップ(一般的には、少なくとも1つの構成レジスタの場合、NVMの識別を含み、前記NVMのレジスタ内に格納された構成は不揮発性の形式で格納される)、および/またはプロセッサが前記デバイス(チップ)に対して構成を行うとき、前記プロセッサは前記構成を前記NVM内に設定するプロセッサを構築するステップ、および/またはどの構成がどのNVMに格納されているかをチップの文献内に記録するステップの方法を提供しようとする。
【0017】
いくつかの実施形態は、以下の動作の全てまたは任意のサブセットを含んで、適切な順序(例えば、以下の順序)で実行する、NVM書き込み動作フローを提供しようとする:
動作1: 不揮発性インジケータ(例えば1ビット、または安全のために1ビット以上)を提供し、構成の保存を完了する。
動作2: リセット(reset)の終了後、前記インジケータが「完了」を示した場合、NVM書き込みはオフ(無効)のままであり、何も動作を行わない。逆に以下のイベントを生じる。
動作3: トリガー後(例えば、図の「レジスタ設定の格納(Store Register Setting)」トリガー)、NVMライターは以下の動作を行う。
a. 指定されたストレージアドレスを読み取る。
b. 前記数値はデフォルト(消去済み)であるか?
c. デフォルト値の場合、前記レジスタ値を前記指定した場所に書き込む。
d.それ以外の場合は、前記数値が既に前の構成シーケンス内に格納されていると想定されるため、書き込み動作をスキップする。
動作4: デバイスの構成の完了後、ファームウェアコードは不揮発性インジケータを設定し、それに「完了」を表示させる。
動作5: 後続の電源投入またはリセットサイクルで、動作2を行う。
【0018】
何らかの理由、例えばユーザーの中断やシステム故障の発生により、構成を1つのシーケンス内で完了できない場合、後続のシーケンスは上述の動作で前記構成を完了する。
【0019】
従って、少なくとも以下の実施形態を有する。
【0020】
実施形態1: 集積回路とも呼ばれるチップであって、前記チップは、揮発性(volatile)構成レジスタ;および/または
一般的に、少なくとも1つの確保されたメモリ位置を含み、前記揮発性構成レジスタ内に少なくとも1つの揮発性構成レジスタrのコンテンツを格納するために確保される少なくとも1つのオンチップ(on-chip)不揮発性メモリm;および/または
数値を少なくとも1回格納するように構成され、前記数値は、前記レジスタ内の少なくとも1つの揮発性構成レジスタrのコンテンツを指し、一般的に前記チップ上の不揮発性メモリmの前記少なくとも1つの確保されたメモリ位置内に格納される書き込みユニットを含む。
【0021】
前記書き込みユニットは、NVMライターを含むことができ、且つ本明細書の他で述べられたトリガー信号を受信することもできる。
【0022】
一般的に、前記少なくとも1つの場所(複数のこれらの場所を含み得る)は、少なくとも1つの完全な空間、ゾーン、または領域を含み、前記完全な空間、セクション、または領域は、前記不非揮発性メモリm内にある複数の場所を含む。
【0023】
前記少なくとも1つのメモリ位置は「確保」され、前記チップ上のファームウェアおよびハードウェアのいずれも、前記確保されたメモリ位置を自身の用途に用いるように構成されないようにしている(即ち、前記書き込みユニットが提供したコンテンツを格納する用途を除いて) 。
【0024】
前記少なくとも1つの確保されたメモリ位置は、1つまたは複数のレジスタへの記憶空間(storage space)の割り当てを含むことができ、各レジスタは、一般的に、幅が数バイトのセットである。記憶空間の割り当てレジスタの数は、サイズおよびコストの制限、および所与のチップの構成の複雑さによって決まる。
【0025】
実施形態2: 前述の実施形態のいずれかのチップのように、前記書き込みユニットは、前記チップ内に配置された、ハードウェアを含む。
【0026】
実施形態3: 前述の実施形態のいずれかのチップのように、前記書き込みユニットは、前記チップ内に配置された、ハードウェアを含む。
【0027】
前記書き込みユニットをハードウェアで実施する利点の1つは、例えば、ファームウェアで完全に実施されるのではなく、ハードウェアで完全に実装されるか、またはハードウェアで部分的、且つファームウェアで部分的に実施されて、レジスタ値を格納しても前記チップの通常の実行および機能を中断しないため、前記書き込みユニットの動作は前記アプリケーションシステムにとって透過(transparent)なものとなる。しかしながら、いくつかの用例では、前記チップはファームウェアがレジスタ値のコピーをNVMに格納する時間を負担させ得る。
【0028】
実施形態4: チップ設計方法であって、
電子設計自動化(Electronic Design Automation; EDA)ソフトウェアを用いて、少なくとも1つのチップを設計し、前記少なくとも1つのチップは、一般的に、前記チップ内に配置された不揮発性メモリ(NVM)および/または揮発性構成レジスタを含むステップを含み、前記設計は、一般的に、前記少なくとも1つのチップにNVM書き込み機能を提供するステップを含み、前記機能は、少なくとも1つの設定を前記不揮発性メモリに少なくとも1回書き込むように構成され、前記少なくとも1つの設定は、一般的に、既に前記アプリケーションシステムによって前記チップの少なくとも1つの揮発性構成レジスタ内に格納される。
【0029】
実施形態5: 前述の実施形態のいずれかのチップのように、前記書き込みユニット(「NVMライター」とも呼ばれる)を前記少なくとも1つの揮発性構成レジスタrに書き込むとき、前記少なくとも1つの揮発性構成レジスタrのアドレスを受け取り、前記少なくとも1つの揮発性構成レジスタrに書き込まれたデータの少なくとも一部を受け取り、前記データを前記少なくとも1つの確保されたメモリ位置に格納する。
【0030】
実施形態6: 前述の実施形態のいずれかのチップのように、前記書き込みユニットは、トリガー信号によりトリガーされ、且つ、前記トリガー信号は、前記レジスタrに対して1回書き込みを識別したとき、少なくとも1回は生成する。
【0031】
1回の書き込みの識別については、構成レジスタがどのぐらい述べられたメカニズムまたはNVMライターに関与するべきかという設計者の定義によって決めることができる。
【0032】
一般的に、前記NVMライターは、所定のレジスタの範囲内の各レジスタに対して書き込みトランザクションを行ったときにトリガーされる。例えば、前記チップ内の不揮発性メモリに格納されたレジスタのコンテンツまたは値を含む。
【0033】
前記NVMライター(例えば図に示されているもの)またはメカニズムは、トリガーされた後、述べられたレジスタ値を格納するために割り当てられたNVM空間に書き込みトランザクションを発し、前記書き込みトランザクションのデータと前述の伝送は同じである。
【0034】
実施形態7: 前述の実施形態のいずれかのチップのように、前記書き込みユニットは、前記チップがあるアプリケーションシステムが最初にオンにされるときにのみ、前記それらのコンテンツをメモリm内に格納し、前記アプリケーションシステムの後続でのオンのたびに、前記それらのコンテンツをメモリm内に格納しないように構成される。
【0035】
実施形態8: 前述の実施形態のいずれかのチップのように、前記書き込みユニットが前記少なくとも1つのレジスタrのコンテンツをオンチップ不揮発性メモリmに格納した後、少なくとも1つのレジスタrのコンテンツをオンチップ不揮発性メモリmに格納することを少なくとも1回抑制(または無効に)される。
【0036】
一般的に言えば、前記書き込みユニットは永久的(または固定的、恒常的)に抑制され、前記書き込みユニットが前記少なくとも1つのレジスタrのコンテンツをオンチップ不揮発性メモリmに格納した後、抑制され、前記少なくとも1つのレジスタrのコンテンツをオンチップ不揮発性メモリmに格納しなくなる。
【0037】
実施形態9: 前述の実施形態のいずれかのチップのように、前記書き込みユニットが前記少なくとも1つのレジスタrのコンテンツをオンチップ不揮発性メモリmに格納した後、抑制され、前記少なくとも1つのレジスタrのコンテンツをオンチップ不揮発性メモリmに格納しなくなる。
【0038】
実施形態10: 前述の実施形態のいずれかのチップのように、前記書き込みユニットは、トリガー信号を受け取り、前記トリガー信号の論理構造は、前記書き込みユニットが前記レジスタrに対して後続の書き込みを行ったときに、書き込みデータを不揮発性メモリmの前記少なくとも1つの確保されたメモリ位置内に格納しないことを確保する。
【0039】
実施形態7~10の1つの特定の利点は、前記チップ上の揮発性構成レジスタのコンテンツを格納するための手順が、システムを起動するたびに繰り返し行われないことである。このような繰り返しは必要ではなく、且つ不揮発性メモリが同じ場所に何度も書き込まれるということになる。
【0040】
実施形態11: 故障解析方法であって、
少なくとも1つの故障のチップを提供するステップを含み
前記故障のチップは、一般的に、
不揮発性メモリ(NVM)、および/または
揮発性構成レジスタ、および/または
一般的に、前記チップの少なくとも1つの揮発性構成レジスタに格納された少なくとも1つの設定を示すビットを少なくとも1回書き込み、一般的に前記不揮発性メモリに書き込むように構成されるNVM書き込み機能を含み、および/または
前記これらのビットを受け取り、且つチップの故障を再構築するとき、前記これらのビットに従って前記チップを構成するステップを含む。
【0041】
前記チップの構成は、一般的に、前記チップの全ての構成レジスタ内に格納されている全ての設定を含む。
【0042】
一般的に(必ずしもそうとは限らないが)、前記NVMに書き込まれる前記それらのビットは、前記チップの全てまたは一部の構成レジスタ内に格納されている全てまたは一部のビットである。あるいは、前記NVMに書き込まれた前記それらのビットは、前記チップの揮発性構成レジスタに格納されているビットに対して可逆的に導出することによって得られることができ、前記チップの揮発性構成レジスタ内に格納されている一部または全てのビットが、故障解析のときに前記チップのNVM内に実際に格納されているビットを得て、導出することによって得られることができるようになる。例えば、何らかの理由で前記NVMに書き込まれたビットが、前記構成レジスタ内に格納されているビットの反転であることがわかっている場合(例えば、前記これらの構成レジスタに格納された各1つの「1」に対して言えば、「0」が前記NVMに書き込まれ、逆に、前記これらの構成レジスタに格納された各1つの「0」に対して言えば、「1」が前記NVMに書き込まれる)、故障解析を行うとき、前記NVMから読み取られたビットに反転演算子を行い、そのときに前記チップにロードされた構成レジスタの値を導出することができる。
【0043】
前記チップの故障を再構築するときは、得られたビットに従って前記チップを構成し、前記チップが動作しているとき(且つ前記チップが故障したと思われるとき)、前記チップの全ての構成レジスタにロードされた全てのビットが前記チップのNVMに格納されているか、または前記チップのNVMから導出されて得ることができる場合、全ての前記これらビットを前記チップの構成レジスタにロードし、故障の再構築のプロセスを継続する。前記チップの全ての構成レジスタにロードされた全てのビットが前記チップのNVMに格納されているわけでなく、または前記チップのNVMから導出されて得ることができる場合、全ての使用可能なビットを前記チップの構成レジスタにロードし、前記これらの使用可能なビット(およびNVMに格納されているビット)と互換性のある全ての構成オプションを「スキャン」して、故障の再構築プロセスを継続する。例えば、5つの前記チップの構成レジスタのみが前記チップのNVMに格納されている場合、前記これらの構成レジスタに従ってチップを構成し、この故障がその中の一つの構成で再構築されるまで、前記5つの残りのレジスタの各可能な構成で前記チップを動作させる。
【0044】
前述の各実施形態、および他の実施形態は、「実施方式」の項で詳述する。
【0045】
本明細書または図面に記載された任意の商標は、その所有者に帰属するものであり、本明細書に記載されたものは、本発明の一実施形態の実施方式を説明または図示するためのみに用いられている。
【0046】
特に明記しない限り、以下に明らかにみられるように、本明細書の全文において、「処理」、「計算」、「推定」、「選択」、「順位付け(ranking)」、「等級付け(grading)」、「計算」、「決定」、「生成」、「再評価」、「分類」、「生成」、「ステレオマッチング(stereo-matching)」、「登録」、「検出」、「関連」、「重畳(superimposing)」、「取得」、あるいは類似の用語を用いているが、少なくとも1つのコンピュータまたはコンピューティングシステム、あるいはプロセッサまたは同様の電子コンピューティングデバイスのアクションおよび/またはプロセスを指しており、前記コンピューティングシステムのレジスタおよび/またはメモリ内の物理(例えば、電子)量で表されたデータを、前記コンピューティングシステムのメモリ、レジスタ、または他のこのような情報ストレージ、送信、または表示装置内のその他の同様の形式の物理量で表されたデータに操作および/または変換する。「コンピュータ」という用語は、パーソナルコンピューター、サーバー、組み込みコア、コンピューティングシステム、通信機器、プロセッサ(例えば、デジタル信号プロセッサ(DSP)、マイクロコントローラ、フィールドプログラマブルロジックゲートアレイ(FPGA)、特定用途向け集積回路(ASIC))、およびその他の電子コンピューティングデバイスを含むが、これらに限定されない、データ処理能力を有するあらゆる種類の電子機器を包括するものとして広義に解釈されるべきである。
【0047】
本明細書に個別に記載されている構成要素は、異なる部品である必要はないが、同じ構造であってもよい。「構成要素または特徴が存在できる/存在する可能性がある」という記述は、(a)前記構成要素または特徴が存在する実施形態、(b)前記構成要素または特徴が存在しない実施形態、および(c)前記構成要素または特徴が存在するかどうかを選ぶことができ、例えば、ユーザーは、前記構成要素または特徴が存在するか、または存在しないかを構成または選択することができる実施形態を含むことを意図している。
【図面の簡単な説明】
【0048】
本発明のいくつかの実施形態は、以下の図面に示されている。
【
図1】
図1は、一実施形態に従って示されたチップシステムの簡略化されたブロック図であり、図の全てのブロックの全てまたは任意のサブセットを含み、一般的には全てが単一のチップ内に配置されている。
【
図2】
図2は、一実施形態に従って図示されたデコーダであり、
図1のデコーダを実施するように用いられることができる。
【
図3】
図3は、一実施形態に従って図示されたNVMライターであり、
図1のNVMライターを実施するように用いられることができる。 本発明の範囲に含まれる方法およびシステムは、例えば、明確に図示された実施に示された機能ブロックの一部(例えば、任意の適切なサブセット)または全てを含んで、任意の適切な順序で配置されることができる(例えば、示されているように)。 本明細書で説明または図示された計算、機能、または論理部品は、さまざまな形式で実装することができ、例えば、ハードウェア回路(これに限定されないがカスタマイズされたVLSI回路、論理ゲートアレイ、またはプログラム可能なハードウェアデバイス(これに限定されないがFPGAなど)など)、または、少なくとも1つの有形または無形のコンピュータ可読媒体に格納され、少なくとも1つのプロセッサによって実行されるソフトウェアコード、または前述の部品の任意の適切な組み合わせによって実施されることができる。特定の機能部品は、特定のシーケンスまたはソフトウェアコードによって形成され、または複数のこのような特定のプログラムまたはソフトウェアコードによって形成されることができ、前記のようなプログラムまたはソフトウェアコードは、前述の機能部品に対して本明細書に記載された方法で集合的に動作する。例えば、前記部品は、これらに限定されないがオブジェクト、プロシージャ、関数、ルーチン、およびプログラムなど、複数のコードシーケンスで分布されることができ、且つ一般的に相乗的に動作する複数のコンピュータファイルから得られることができる。
【0049】
本明細で説明された論理機能は、必要に応じてリアルタイム(real-time)アプリケーションに実施されることができ、且つ必要に応じて、これらに限定されないがASICまたはDSP、あるいは上述の各種の構造の任意の適切な組み合わせなど、任意の適切なアーキテクチャオプションを用いることができる。本明細書中で言及された任意のハードウェアコンポーネントは、実際に1つ以上のハードウェアデバイス(例えばチップ)を含み、これらのハードウェアコンポーネントは、同じ場所に配置されてもよく、互いに離れた場所に配置されてもよい。
【発明を実施するための形態】
【0050】
IC(集積回路)メーカーによって製造されたデバイスは、ICが柔軟に用いられように、および/またはデバイスの機能がシステム固有(system-specific)およびアプリケーション固有(application-specific)の要件に適合されるように提供されたさまざまな構成オプションを有している。IC構成は、通常、レジスタ(register)によって設定される。IC構成の設定に用いるレジスタ(または「構成レジスタ」と称する)は通常、揮発性(volatile)であるため、非デフォルトの構成設定は、電源をオフにすると失われる。システム自体で言えば、デバイスはシステムの内部にあるため、この状況は問題ではなく、且つシステムは、ソフトウェアまたはファームウェアコードも有し、前記特定のシステムに必要な適切な、特定の構成に従って前記デバイスに構成を行う。一般的に言えば、システムがオンになるたびに、ソフトウェアまたはファームウェアコードは、構成レジスタに格納されている特定のデフォルトのIC構成を、ソフトウェアまたはファームウェアコードに格納されている非デフォルトの設定に置き換えて設定することにより、これらの構成レジスタに再プログラム化を行う。この動作は、いくつかの表に基づいて行なわれることもでき、前記表は、いくつかの外部(チップへの)入力に基づいて参照またはアクセスされることができ(例えば、システムモデルを示す)、前記表は、一セットの構成オプションの中からどれを前記ファームウェアコードに適用するかを決める。
【0051】
残念ながら、ICの構成レジスタの揮発性は、ICメーカーの故障解析エンジニアにとっては一つの問題である。多くの場合、ICメーカーはデバイスを顧客に出荷した後に、デバイスが顧客から返却される。構成設定は揮発性であるため、故障解析エンジニアは、顧客のシステム内の故障したデバイスの適切な構成状況の情報を欠いている。故障解析エンジニアは顧客の特定のシステムを持っておらず、且つ故障のたびに顧客のシステムを得ることができるとするのは非現実的である。従って、現在、返却されたチップの故障解析は、多くの場合、コンテキストがない(out of context)状況で完全に行なわなければならない。いくつかの状態においては、故障解析エンジニアは、前記返却されたデバイスがどのシステムモデルから削除されたかさえ知らない。
【0052】
いくつかの実施形態は、エンジニアの問題が発生したときのデバイスの構成および動作の情報を提供することにより、故障解析エンジニアが前記デバイスの故障の原因となった問題をより容易にデバッグ(debug)を行い、識別することができるようになる。
【0053】
システム内でのチップの動作の状況を知ることは、このような故障解析に非常に役立つ。例えば、前記故障は特定の条件下でのみ発生する可能性があり、このとき、前記チップの動作状況および/またはどのようなシステムで動作するかを知ることは、前記デバイスの故障の障害の条件を決めるのに役立つことができ、もう1つのデバイスは、それらの適切な条件下ではないため、故障しない可能性がある。次いで、留意すべきは、デバイスメーカーは、デバイスの設計を改良する(この後の段階でも)、またはデバイスが同じように再び故障しないことを確保するように、デバイスがテストを受けることを要求する、または単純にデバイスを廃棄する、または任意のその他の適切な処置を行う可能性がある。
【0054】
顧客は、システム開発段階またはその後(システムの量産段階など)にデバイスを返却する可能性がある。デバイスは通常、大規模な顧客のシステムにインストールされる。 前記デバイスのシステムのインストールのインストールが完了した後、起動および検証を行う。前記システムは、動作中または検証中に故障する可能性がある。このような状態においては、例えば、従来のデバッグフロー(flow)を用いると、顧客は前記デバイスが故障の原因の可能性であったと結論付けることができる。次いで、顧客は前記デバイスのはんだを取り除き、それをデバイスメーカーに送り、解析を行うことができる。この状態がシステムの量産段階ではなく、システム開発段階で発生した場合、デバイスエンジニアにシステム情報、および故障時のデバイス構成情報とシステム使用状況を非公式に提供できる顧客開発チームを有する可能性がある。しかしながら、量産段階に入っている場合、そのような顧客研究開発チームはなくなり、デバイスメーカーにとっては任意の正確な情報(故障時のデバイス構成や使用条件)を入手することが非常に困難となる。いくつかの実施形態は、故障解析方法の提供をしようとし、集積回路チップシステムの集団(population)を提供し、その中の各集積回路チップは、揮発性構成レジスタ、前記揮発性構成レジスタの少なくとも1つのレジスタRのコンテンツが確保されて格納する少なくとも1つの不揮発性メモリM、および前記少なくとも1つのレジスタRのコンテンツのコピーを前記不揮発性メモリMに格納するように用いられる書き込みユニットを含み、且つ前記集団の集積回路チップシステムの個別のチップシステムが故障責任のために返送されたとき、メモリMからレジスタRのコンテンツを得ることを含む前記個々のチップシステムに対して故障解析を行い、故障時の構成特徴での前記個別のチップシステムの構成特徴を得て、前記特徴に従って、前記個別のチップシステムを構成し、前記故障を再構築する。
【0055】
いくつかの実施形態は、前記IC内の全てまたは少なくとも重要なハードウェアおよび/またはファームウェア構成を記録し、いくつかの実施形態は、故障解析を行うことが将来必要なときに参照になるようにIC構成の記録を保存しようとする。
【0056】
いくつかの実施形態は、チップシステムを含み、前記チップシステムは、以下の項目の全てまたは一部のサブセット(一般的に全てが単一のチップ内にある)(例えば
図1に示されるように)、ファームウェアによってプログラムされた揮発性構成レジスタ(一般的に、ファームウェアは、デバイスを構成するプロセッサが使用可能、またはアクセス可能なメモリにある。前記プロセッサおよび前記メモリは前記デバイスの内部または外部に配置することができ、前記デバイスの構成は、保存したいものである)、前記チップ内にある不揮発性メモリスペース(またはNVMと称する)、および前記NVMのレジスタの少なくとも一部の前記レジスタのコンテンツを記録するように用いられる書き込みユニットを含む。
【0057】
前記NVMに保存される情報は、以下の各項目の全部または一部のサブセットを含むことができる。
1.レジスタの構成値の所定のセット: クロック、ピン多重化構成など。
2.ファームウェア構成および動作モード設定の所定のセット: 例えば、温度センサーの数、ファンの数、およびピン、その他の特定のパラメーター。
3.オリジナルエクイップメントマニュファクチャリング(Original Equipment Manufacturing; OEM)で定義されたパラメーターの所定のセット。
【0058】
上述のリストは、構成レジスタの可能な目的(またはコンテンツ)の例にすぎず、制限することを意図したものではないことに留意されたい。
コンテンツを記録するための書き込みユニットは、ハードウェアまたはファームウェアで実施されてもよい。ハードウェアで実施される場合、コンテンツを記録するために用いられる書き込みユニットは、一般的に、ライトバック(write-back)ハードウェアを含み;前記ファームウェアが、前記レジスタうちの少なくとも1つの所定のサブセット内の任意のレジスタをプログラム化する度に、前記チップに適用される構成を定義したとき、ハードウェアは、チップ構成を表す構成データを前記NVMに格納し(一般的に自動的に、一般的にユーザーやファームウェアの介入なしに行なわれる)、これにより、前記チップに適用された構成が継続的に保存されるようにする。一般的に、前記構成データは前記レジスタ内の正確なビットを含む。
【0059】
前記所定のレジスタサブセットは、全ての構成レジスタのセットであることができ、このとき、全ての構成レジスタ内の全てのコンテンツが格納される。または、全ての構成レジスタを格納するために必要なNVM容量が大き過ぎる場合、重要なレジスタのサブセットを定義することができ、且つ前記重要なサブセットのコンテンツのみが格納され、前記重要なサブセット以外の構成レジスタのコンテンツは格納されない。
【0060】
一般的に、少なくとも一部の構成レジスタのコンテンツを格納する将来のICのアーキテクチャ定義の段階では、ICの開発者は、どのレジスタサブセットが将来のデバッグに用いられるために記録する必要があるほど重要かを決定する。一般的に、この決定は次いで前記将来のICのアーキテクチャの一部として定義され、実施される。
【0061】
一般的に、前記ファームウェアが少なくとも1つの前記レジスタ内に数値を書き込むたびに、前記ハードウェアは前記数値を受け取り、前記数値を前記NVMの所定の場所に格納する。
【0062】
「所定」しなおす: 任意の所定の情報は、企業文書内に記載することができる。例えば、前記デバイスの内部または外部仕様(自然言語文書である)は、「モジュールXのレジスタA、B、およびCの数値は、NVMアドレスD、E、およびFからそれぞれ取得することができる。モジュールYのレジスタH、I、およびJの数値は、NVMアドレスK、L、およびMからそれぞれ取得することができる」などの指示を含むことができる。
【0063】
一般的に、メーカーがフィールドから返却されたデバイスを受け取り、前記デバイスに故障解析を行うとき、主要のNVM領域のコンテンツがダンプ、アクセス、またはダウンロードされ(例えば、コンピュータファイルの形式で)、且つ構成情報が得られる。次いで、故障解析担当者は全てのこのような情報を取得して、前記デバイスの解析およびテストを容易することができ、それが前記チップを用いる前記特定のシステム内に対して、前記チップが用いている特定の構成の解析に焦点を当てることができるようにする。以下の例は、故障解析にかかる時間の程度を示しており、そのため早急に解析に焦点を当てる必要がある。デバイスは77個のユーザー選択可能なクロックオプションを有する。前記デバイスは顧客から返却され、顧客チームと連絡し、前記デバイスが故障したときどのタイプのクロックオプションを用いていたかを識別するエンジニアがいない。従来の技術によれば、この状況は、故障解析エンジニアが77のクロックオプション全てで前記デバイスを解析または検証しなければならなくなる。しかしながら、前記システムに実際に用いられているクロック設定が故障解析エンジニアが取得し得る場合(例えば、本明細書で述べられた方法で)、この単一のクロック設定で前記デバイスを検証するだけで、デバッグ時間を大幅に節約し、問題をより迅速に識別することができる。
【0064】
従来の技術によれば、返却されたデバイスがデバイスメーカーに届いて故障解析を行うとき、故障解析エンジニアは、前記故障したデバイスがどのタイプのシステムモデルから取り外されたかさえわからない可能性がある。
【0065】
システムモデルは前記デバイス内に記録されることができ、例えば、コードを有し、いくつかのシステムIDをNVM上にプログラムすることができる(前記コードがこの情報を有する場合)。しかしながら、一般的には、本明細書に述べられたような構成情報を有するということは、故障解析エンジニアがシステムモデルを知る必要がなくなったことを意味する。
【0066】
ファームウェアの実施には特定の適用性を有することから、従来技術によれば、前記チップは2つの動作状態を有することに留意されたい:
状態1: 動作前(前記デバイスが電源投入後に起動する状態);
状態2: 完全に構成された動作(前記デバイスが完全に構成された状態)
【0067】
一般的に、コンテンツを記録するための書き込みユニットは、デバイス内で動作するファームウェアコードを含み、その中で、チップが後者にある状態(完全に構成された動作状態)にあるとき、前記デバイスは、所定の構成パラメーターのサブセットを採用し、(これらのパラメーターを読み取り、次いでNVM内の「所定」のスペースに書き込む)。例えば、前記NVM内に少なくとも前記構成パラメーターのサブセットを記録する。
【0068】
動作方法は、以下の動作の全てまたは任意のサブセット含み、適切な順序で(例えば、次の順序で)行い、前記動作方法は、例えば、NVMライターへの拡張、またはトリガー信号として提供されることができ、前記ライターを1回だけ動作させる。
【0069】
動作1a: チップ設計段階で、前記チップの構成レジスタから格納したい構成レジスタのコンテンツを選択する。
【0070】
動作1b: 前記チップ上のファームウェアおよびハードウェアが、特定の専用(即ち、前記NVMライターによって提供された構成レジスタのコンテンツ以外の用途を格納するのに用いられる)の確保されたメモリ位置を用いるように構成されることを確保することにより、前記チップの全ての使用可能なスペース内に十分なNVMスペースを確保し、動作1aで選択したコンテンツを格納する。
【0071】
動作1c: 構成レジスタのコンテンツを格納するために確保されたNVMスペース以外に、前記チップに不揮発性の表示またはインジケータを格納するために用いられるNVMビットを割り当て、NVMライターを許可/トリガーする、または(例えば省略することにより)防止/制御してもよく、一般的に、前記構成レジスタのコンテンツが前記NVMに書き込まれていない、または既に書き込まれているかによって決まる。不揮発性インジケータは、単一のビット(完了/未完了)を含むか、または、安全のために複数のビットを用いることができる。
【0072】
動作1d: 一実施形態によれば、前記チップの構成を特に担うアプリケーションファームウェアコードを生成するとき、デバイス構成が完了した後、前記不揮発性インジケータを例えば「完了済み」または「未完了」(例えば、前記構成レジスタのコンテンツが前記NVMに書き込まれていないとき)に設定する論理演算を追加する。
【0073】
前記「アプリケーションファームウェアコード」は、一般的に、前記デバイス(またはチップ)のファームウェアコードであり、前記デバイス(例えば、前記チップが埋め込まれている)の製造目的を満たす任意の主要のアプリケーションを実行する。一般的に、前記アプリケーションファームウェアが実行する最初の主要な動作の1つは、前記ファームウェアが動作され、その上で動作されるデバイスまたはチップを構成することである。この構成は一般的に、ファームウェアコマンドシーケンスで行なわれ、前記ファームウェアコマンドシーケンスは、レジスタへの対応する書き込みシーケンスを行う。このシーケンス(時間がかかる)が正常に完了すると、最終的な結果として、全ての必要な数値が前記チップの構成レジスタ内に格納される。しかしながら、前記シーケンスを正常に完了できない場合があり、この場合、全ての必要な構成値が全て前記NVM内に格納されるわけではない。
【0074】
従って、前記メカニズムまたはNVMライターは、例えば前記ファームウェアコードが構成を完了したとマークするまで、前述のプロセスを繰り返し動作することを担う。
【0075】
動作2a: 前記システム(前記チップが埋め込まれたアプリケーションシステム)がリセット(例えば、任意の電源投入またはリセットサイクル)を終了するたびに、前記インジケータが「完了済み」を示した場合、前記NVMライターは無効のままであるため、どの動作も行なわず、プロセスを終了する。
【0076】
動作2b: いいえの場合(前記インジケータが前記構成の保存が完了していない、または前記NVMに書き込まれていないことを示している場合)、デコーダ(
図1に示されたような)はトリガー信号(例えば、図中の「レジスタ設定の格納」)を前記NVMライターに提供する。前記デコーダは一般的に、前記構成レジスタへの書き込み、および前記レジスタが動作1aで選択されたレジスタの1つであるということを識別する。
【0077】
デコーダのデコード論理の例を
図2に示す。
図2に示されている格納されたマッピング情報は、図1のレジスタの書き込み情報に対応する。
【0078】
動作3:トリガー信号に応答する;
動作3a: 前記NVMライターは、前記指定されたストレージアドレスを読み取る(例えば、前記チップ上のメモリ内のアドレスは、前記構成を保存するように確保されている)。
動作3b: 前記指定されたストレージアドレス内の数値がデフォルト値(消去済み)の場合、前記NVMライターは前記レジスタ値を前記指定された場所(指定されたストレージアドレス)に書き込む。それ以外の場合(例えば、指定されたストレージアドレスの数値がデフォルト値ではない(消去されていない)場合)、前記NVMライターは、前記レジスタ値が前の構成シーケンス内に既に格納されていると推定なされることができるため、書き込み動作3bをスキップする。
【0079】
動作4: チップの構成が完了すると、前記チップの構成を担うアプリケーションファームウェアコード(チップの構成が完了したことを正確に知ることができる)は、前記インジケータを、例えば、「未完了」に設定する。
【0080】
NVMライターのインタフェース論理の例を図3に示す。NVMライターは、NVMインタフェースを通じてNVMへのデータ書き込みを実行する。図3に示されている格納されたマッピング情報は、図1のレジスタの書き込み情報に対応する。
【0081】
従って、仮に(例えば、ユーザー割り込みまたはシステムの故障により)構成が1つのシーケンスで完了しない場合、レジスタの書き込みを実行するアプリケーションファームウェアコマンドの後続のシーケンスは、構成を完了し、且つ、書き込み動作3bは、前記これらの後続のシーケンス内で行なわれる。
【0082】
本明細書内の実施形態は、製造上の欠陥に起因する故障の解析をサポートするのに役立ち、且つ、前の段階では見つからなかった設計上の欠陥を見つけるのにも役立つことに留意されたい。
【0083】
いくつかの実施形態によれば、以下の動作の全てまたは一部のサブセットを含む、適切な順序で(例えば、以下の順序で)行う方法が提供される:
a.チップメーカーは、チップアーキテクチャを設計し、前記チップ内には、
揮発性構成レジスタ、
前記揮発性構成レジスタ内の少なくとも1つのレジスタRのコンテンツを格納するように確保された少なくとも1つの不揮発性メモリM、および
少なくともレジスタRのコンテンツのコピーを前記不揮発性メモリMに格納するように構成されたハードウェアまたはファームウェアを含む;
b.チップメーカーは、不揮発性メモリの 人が判読可能な形式の説明を含む製品文献を生成し、不揮発性メモリは、少なくとも1つの前記揮発性構成レジスタのコンテンツを格納するように確保されている;
c.チップメーカーは集団のチップを製造する;
d.チップメーカーは、製造上の欠陥のあるチップなど、欠陥のあるチップを識別するために製造テストを行う。しかしながら、製造テストは、認識されない「テストカバレッジのピンホール(testing coverage pinhole/s)」によって制限される可能性があり、これにより、欠陥のあるチップが偶発的に検出されない可能性がある。従って、例えば、95%のチップが完全に製造およびテストされることができた場合、5%のチップに製造上の欠陥があるということになる。これらの欠陥のあるチップ内では、ほとんど(おそらく4.9%以上)は、既存の製造テストによって正常に除去されるか、または既存の製造テストにより検出されるが、例えば、ある時点で、ごくわずかな割合(例えば、いくつかのDPPM(100万分のチップあたりの欠陥のチップの数))のチップに製造上の欠陥があるが、検出されていないため、テストカバレッジ内の1つのピンホールを定義する;
e.チップメーカーは、製造テスト後のチップを顧客に提供するが、その中に欠陥のあるチップを含む可能性がある。チップは動作前の状態にあり、顧客はそのシステム(または別名「アプリケーションシステム」)内にチップをインストールする;
f.前記アプリケーションシステムがオンになるたび、システムのプロセッサ、ソフトウェア、またはファームウェアコードは、レジスタRのコンテンツ(例えばデフォルト値または「リセット値」など)をシステムが選択した構成値に置き換えることを含むチップを構成し、レジスタRのコンテンツが置き換えられたことによりトリガーされたハードウェアまたはファームウェアは、前記システム(など)が選択した構成値を前記チップ(即ち、前記チップ内にある)不揮発性メモリMにコピーする。
留意すべきは、前述の動作eは、製造テストを通過した大集団のチップ内の異常なチップに関するものであり、ピンホールを通過して製造上の欠陥があり、同じ集団で製造された他のチップとは異なり、これらの他のチップは一般的に欠陥がないため、前述の動作eはこれらの他のチップには適用されない;
g.一般的に、前記アプリケーションシステムは最終的に故障する;顧客は、前記チップのはんだを取り除き、はんだを取り除いた前記チップ(故障の原因を招いたとなっている)をチップメーカーの故障解析エンジニアに返却する。一般的に、前記故障については、顧客はエンジニアに漠然とした情報のみを提供するか、または情報を提供しない(例えば「システムが起動しない」、または「システムが黒い画面のままである」);
h.チップメーカーの故障解析エンジニアは、前記チップの不揮発性メモリMをバックアップし、次いで製品文献を調べてどのような揮発性構成レジスタのコンテンツを格納したかを識別し、前記チップが故障したときの構成を少なくとも部分的に理解する;
i.前記チップの故障時の構成が完全であればあるほど、チップメーカーの故障解析エンジニアは、前記故障(顧客から報告された故障が再び実際に発生することになる)を再現または再構築するという目標をより簡単かつ迅速に達成することができる。前記故障の再構築に必要な時間は、顧客から報告された故障を再構築するためにテストをする必要のあるチップ構成の数が減少するため、短縮され、一般的には、両者は同じ倍数で短縮される。例:特定のチップ設計は2つのクロックドメインを有し(即ち、2つの論理ドメイン)を有し、各クロックドメインは異なる周波数のクロックを有する。この設計を有する特定のチップには欠陥がある。前記欠陥は、前記2つの使用中のクロック間に特定の関係がある場合にのみ、例えば、第1のクロックが第2のクロックのちょうど2倍である場合にのみ、故障を発生する可能性がある。従来の技術によれば、前記チップが故障したときの実際の構成に関して得られる情報はほとんど、または全くない。従って、エンジニアは、1つの周波数の組み合わせが顧客から報告された故障を発生するまで、エンジニアは、前記チップの動作ステータスを複数回解析して、顧客から報告された故障を再構築する必要があり(前記2つのクロックの全ての周波数の組み合わせを全て解析する必要がある)、統計的には、この状況は、例えば、前記周波数の組み合わせの半分を1つずつ丹念にチェックした後にのみ発生する可能性がある。しかしながら、本発明の一実施形態によれば、設定された周波数ペアは、製品文献に指定された場所に記録される。この構成の利点は、故障解析エンジニアがこの特定のクロック設定で前記チップをテストする必要があることだけであり(報告された故障が実際に発生することを確認する)、前記故障の根本的な原因を識別するために必要な時間を短縮することができる;
j.故障解析エンジニアは、テストカバレッジのピンホールを識別し、前記ピンホールは前述の正常に再構築された故障の発生をさせる。故障の再構築が前記チップが故障したときの動作の構成を識別することで容易になった場合、任意の従来の方法は、例えば、前記チップ内のどの特定の機能が全体的な故障を招くかを決定することによって、前記カバレッジピンホールがどこにあるかを識別するように用いられることができる。例えば、前記ピンホールは、前記チップの既存のテストフローが、特定のクロックジェネレータが誤ったクロック周波数を生成する、または特定のアドレスデコーダが特定のレジスタのアクセスを妨げる、または特定のフリップフロップ(flip-flop)が故障していることを検出できないことが由来である可能性があり、このクロックジェネレータ(またはアドレスデコーダ、またはフリップフロップ)が全体的な故障の原因となっている。
k.故障解析エンジニアは、テストパッチ(patch)を実装し、前記パッチは、テストカバレッジのピンホールを補填する。例えば、故障解析エンジニアはテストを設計し、既存のテストフローに追加し、見落とされた(overlooked)クロックジェネレータが正確なクロック周波数を生成するかどうかをチェック、または見落とされたアドレスデコーダがレジスタのアクセスを妨げなくなったかどうかをチェック、または見落とされたフリップフロップが正常に動作しているかどうかなどをチェックする。
【0084】
従って、エンジニアは、前記チップの故障時の構成が少なくとも部分的にはわかっているため、より効率的な故障解析を行うことができる。本明細書で述べられた方法によって容易になる故障の再構築は、通常、故障解析プロセスにおいて最も大きな課題の部分であることに留意されたい。
【0085】
より一般的に、故障の再構築が前記チップの故障時の動作構成を識別することで、容易になった場合、どの従来の方法でも前記カバレッジピンホールがどこにあるかを識別するのに用いられることができる。
【0086】
デバイスは、故障が部分的であり(1つの特定の機能のみ、または1つの特定の信号のみが故障または破損する可能性がある)、必ずしも前記デバイスが完全に故障したことを意味するわけではない可能性がある ため、故障のときでも動作できるようにする可能性があるため、前記デバイスは、なお動作できる可能性があるため、前記故障が観察されるようにし、デバッグおよび故障解析用の情報を得ることができることに留意されたい。
【0087】
特に、各所与のチップのマイクロアーキテクチャ、および使用中の特定のメモリに応じて、さまざまな実施が可能であることに留意されたい。
【0088】
いくつかの実施形態の特定の利点は、揮発性レジスタにおいては一般的に全てを不揮発性レジスタで置き換えることができないことである。実際には、メモリ(揮発性または不揮発性に関係なく)は外部から各ビットへのアクセス可能性またはアクセスチャネルがあるわけではなく、この構成は一般的に、構成レジスタに必要なものであるからである。
構成をNVMに保存し、次いでファームウェアが前記構成をコピーする(つまり、コピーを保存する)ことができ、且つ本明細書に述べられた実施形態は、例えば、ユーザーが前記デバイスに介入して前記プロセスを完了する必要なく、このプロセスを自動的に達成することができる。
【0089】
本明細書で述べられたメカニズムまたはNVMライターは、チップ内の(有限)状態機械(finite state machine)で実施することができ;前記状態機械の任意の適切なハードウェアの実施は全て、例えば、https://mitpress.mit.edu/books/finite-state-machines-hardwareなどの従来の文献で述べられているような従来技術で用いられることができる。一般的に、前記状態機械はアドレス情報とデータを取得し、NVM書き込みトランザクションを生成する。ファームウェアが本明細書の特定の実施形態を実施するために用いらされる場合、不揮発性メモリ内、例えば、フラッシュメモリ(Flash memory)または読み取り専用メモリ(ROM)に格納されることができる。
【0090】
あるいは、本明細書で述べられたいくつかの実施形態は、ハードウェアで部分的に、またはハードウェアでのみ(即ち、ファームウェアを使用せずに)実施されることができ、このような場合、本明細書で述べられた一部または全ての変数、パラメーター、逐次処理(sequential operations)、および計算はハードウェアで実施することができる。
【0091】
「必要」、「必須」、「需要」などの用語は、説明を明確にするためのものであり、本明細書で述べられた特定の実施または応用の状況において作り出された実施の選択を指すために用いられ、代替的な実施において同じ要素が不要と定義される、または一緒に削除されることもできるため、制限を目的としたものではない。
【0092】
複数の個別の実施形態の文脈で説明された本発明の特徴(動作を含む)は、単一の実施形態において組み合わされた形式で実施されてもよい。例えば、システムの実施形態は、対応するプログラムの実施形態を含むことを目的としており、逆もまた同様である。各特徴は、本発明が属する分野における従来の特徴と組み合わせられることもでき、特に(限定されないが)「先行技術」の項に述べられた、且つ前記項で挙げられた公開文書の従来の特徴と組み合わせられることもできる。逆に、本発明の各特徴(各動作を含む)は、単一の実施形態の文脈で、または特定の順序で簡潔に説明されたものであり、単独で実施、または任意の適切なサブコンビネーションで実施されることもでき、本発明が属する分野における従来の特徴(特に(限定されないが)、「先行技術」の項に述べられた、且つ前記項で挙げられた公開文書の従来の特徴)、または異なる順序で実施されることを含む。「例えば」という用語は、非限定的な例を意味する。各方法は、一部または全部の図示または説明された動作を適切な順序で行う、例えば、本明細書に図示または説明された順序で行なうステップを含むことができる。
【符号の説明】
【0093】
NVM 不揮発性メモリ