シリコンバグ、正誤表


27

私が過去数年間使用した多くの(ほとんど??、すべて??)マイクロコントローラーでは、シリコンレベルのバグが時々発生し、メーカーはエンジニアが直面する予期しない動作を説明する正誤表を提供します。

これらの「バグ」を修正しないのはなぜですか?製品はまだ生産されており、ほとんどの場合、問題を解決しても以前の実装には影響しないため、なぜそれを修正しないのですか?多くの場合、製品は安定化されている可能性があり、ほとんどのバグが発見されている可能性があります。

(技術的に)とても難しいですか?高価な?


4
バグを修正するのは難しいからです。
イグナシオバスケス-エイブラムス

時々そうです。
ブランス

7
また、シリコン製造用の新しいマスクセットを作成する必要があります。マスクは、プロセスのより高価な部分の1つである可能性があります。
トムカーペンター

@ IgnacioVazquez-エイブラムスはありませんバグを修正することは簡単です...、それらを見つけるのは難しい部分ですが、上記の場合には、彼らはすでにハードの部分を介して行っている
Fotis Panagiotopoulos

5
下位互換性。開発者は、意識的であろうとなかろうと、シリコンバグを悪用する可能性があります。先日、このトピックに関する質問がありました。誰かが古いバージョンのコントローラーを入手し、彼のプログラムは動作しませんでした 慎重なチェックの後、彼のデバイスの部品番号に余分な末尾がないことが判明しましたA。それは文書化されたことが判明しましたが、人々を混乱させます。
ジッピー

回答:


28

重大なバグは修正されます。通常、製品が生産に入る前に修正されます。初期のサンプルを使用しているのでない限り、最悪のバグは見られないかもしれません。

バグの修正は難しく、費用がかかります。RTLコードの1行を変更するだけではありません。その場合は、再合成、物理レイアウトのやり直し、タイミングの問題を修正するためのレイアウトの調整、新しいマスクセットの購入、新しいウェーハの作成、ウェーハのテスト(通常)、新しい修正の検証、おそらく製品を再度特性評価または修飾する。これには数か月かかり、悲惨な金額がかかります。そのため、レイアウト内のバグを直接修正することを試みます(単一の金属層上で行うことが望ましい)。これは、RTL合成からやり直すよりも高速で安価ですが、まだ良くありません。

とにかく重大なバグを修正している場合、他のすべてのバグも修正してみませんか?繰り返しますが、これには時間がかかります。修正を見つけて実装する時間、設計検証テストを再実行する時間です。その時間は、次の製品を市場に出すのに時間がかかることを意味します。それまでの間、あなたが十分に一生懸命見れば、あなたは現在の製品でより確実に多くのバグを見つけるでしょう。負けの戦いです。人々は何が起こっているのかを理解するために古いデザインに飛び込む必要があるため、長い間使用されていない製品ではバグの修正はさらに困難です。Nullが言うように、顧客はシステム内の製品を再認定する必要があるかもしれません。製品がまだ開発中の場合、製品リリースを遅らせると、顧客のスケジュールがずれて、顧客が非常に不満になる可能性があります。

通常、残されるバグは、奇妙な構成でのみ発生し、非常に小さな問題を引き起こし、簡単な回避策、または上記のすべてを実行します。トラブルに見合うだけの悪いものではありません。また、次の製品でハードウェアモジュールを再利用する場合、既存の顧客はソフトウェアの回避策を既に持っています。

ソフトウェアツールチェーンも別の要因です。モジュールが十分に長く使用されている場合、ツールチェーンが十分に変更され、古い検証テストをやり直すこと自体が主要なプロジェクトになる可能性があります。また、サイトライセンスの支払いをもう行っていないため、古いツールをロードすることはおそらくできないでしょう。ただし、モジュールを変更しない限り、新しいMCUにコピーして貼り付けることができます。

ソフトウェアも顧客側の問題です。バグ修正が何らかの方法で後方互換性を破った場合、すべての顧客はコードを更新する必要があり、それはもはやツールを持っていないかもしれません。

マイクロコントローラの開発に携わっている人として、すべてのバグを修正したいと思っています。しかし、そうしようとすると、予測できないほど開発が遅れ、顧客に迷惑をかけ、莫大な費用がかかり、結局、おそらく失敗するでしょう。


1
+1、特に既存のお客様には既に回避策が実装されていることに言及するため。
ヌル

13

それは一般的に費用のためです。

バグを「修正」すると、他の何かを壊すリスクが常にあります。そのため、製造元は通常、「修正」によって別の(おそらくさらに望ましくない)バグが発生しないことを確認するために、デバイスを完全に再認定および再特性化する必要があります。それはお金と時間を意味します(メーカーにとってもお金です)。また、製造業者は、新しい製品を開発する代わりに、既存の製品を修理する従業員を抱えていることを意味します。

関連する注意事項として、バグ修正によってシステムの障害が発生しないことを確認するために、製品の修正済みデバイスの再認定が必要な場合もあります。それには費用と時間がかかり、顧客はそれらの費用を受け入れる気がないかもしれません-彼らはまだ「バギー」バージョンを要求するでしょう。

場合によっては、もちろん、バグを修正するのが技術的に本当に難しいです。その場合、修正するのにさらに費用がかかります。


1
+1それは常にお金に関するものであり、それほどではないがリソースに関するものです。マスクは、バックエンドサービスがなど安くはないが、安くはない
いくつかのハードウェアガイ


@ user2813274 xkcdはすごい。
ヌル

1
会社で(レイアウト/バックエンドではなくRTLで)ASICに取り組んでいたとき、マスクセットの費用が300万ドルを超えると聞いた。小規模なチーム/アジアでは、新しいマスクセットごとにNREが10%増加する可能性があります。とにかく、それは実際にマスクセットを購入することに関与することなくチップ開発を行っている私の8年間で聞いた数字のボールパックです。
ロスロジャーズ

8

パーツの主要な購入者が、飛行機や宇宙船での使用などの認定を受けたデザインで使用する場合、デザインで使用されるコンポーネントを変更するには、デザイン全体の再認定が必要になります。設計がシリコンのすべてのバグに適切に対処する場合、シリコンの修正には、顧客にボードのすべての認定テストをやり直すか、「非修正」および「修正」部品の両方の供給を維持するか、または単に古いデザインの製造を続けています。チップベンダーは購入者リストを公開していませんが、場合によっては、特定のチップに対する需要のかなりの部分を単一の顧客が占めており、その顧客を不便にするために会社が嫌がる場合があります。

そうは言っても、次の世代のパーツに出現し続けるシリコンエラッタがいくつかあり、その中には適切な回避策が欠けているものもあります。おそらく、私の最大の苦労は、コードが間違ったタイミングでデータを送信しようとした場合に、マイクロチップの18FxxパーツのUARTが偽のNULバイトを送信する可能性がある送信ロジックの競合状態です。マイクロチップの推奨される回避策は、UARTが以前の文字のストップビットを送信し始めてからそのような送信が完了するまでの間、送信データレジスタをロードしないようにするコードを確保することですが、割り込みが発生した場合無効、送信バッファが空の割り込みハンドラのコードは一般に

Microchip UARTバグのようなバグが潜入する方法は理解できますが、修正は難しくないはずです。Microchipは、非同期の「送信完了」と「文字ロード」の「AND」に基づいて「go」信号を生成するはずです」、前者の信号が後者の直後に状態を変更すると問題が発生します(TXバッファー回路は特定のサイクルで文字データをロードする機会を逃しますが、TXシーケンサーはそのサイクルで新しい送信を開始できます) ; マイクロチップが、送信機が空でキャラクターがロードされる通常の場合、またはキャラクターがロードされた後に送信機が空になる通常の場合に同期遅延を追加したくない場合でも、いずれかのタイミングに影響を与えずに問題を修正できますそれらのケースの3つのNANDゲートと2つの同期ラッチを追加します。ただし、この問題が公開されてから多くの部品が出荷されており、修正は追加されていません。


5

本当に会社と修正の複雑さに依存します。たとえば、PIC18F23K22のこの正誤表を参照してください。シリコンの最初の(「A1」)リビジョンに影響する8つの既知のバグがあったことがわかります。

この回答の時点で、更新された「A2」リビジョンが1つあります。元の8つのバグのうち、そのうちの3つがこの新しい改訂版で修正されました。

もう1つの決定要因は、製品の製造寿命です。メーカーが既存の部品の特定の問題を修正しないことを選択した場合でも、新しい製品に同じバグがないことを確認することで、問題を「解決」することができます。


+1、特に製品の寿命について言及する場合。
ヌル

4

バグが見つかったときに、数千または数百万個のICをすでに生産している(まだ販売していない)可能性があります。彼らはバグのためにそれらをすべて捨てません。

本の印刷と比較できると思います。書籍は、短時間(数日、数週間)以内に1回の実行で数千冊に印刷されます。しかし、彼らは数年または数十年以内に販売されています。タイプミスやその他のエラーが見つかってもすぐに本が捨てられたり、転載されたりすることはありません。また、書籍の場合、正誤表が印刷され、ユーザーに渡されます。

当然のことながら、既知のバグ(タイプミス、エラー)は次のエディションで修正されます。


はい、それは私が話していたものです。「次の版」の修正...
Fotis Panagiotopoulos

ICは連続生産されていません。つまり、販売時と同じレートではありません。次の版まで、しばらく、おそらく数年かかるかもしれません。
カード

うわー!年?...バッチが非常に大きいにも関わらず、決して!
Fotis Panagiotopoulos

実際、ある生産から次の生産までに何年もかかるのが一般的かどうかはわかりませんが、確かに、ある生産のすべての製品が販売されるまでには数年かかるかもしれません。もちろん、顧客は購入する製品のエラーについて通知を受けたいと考えています。
カード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.