ツイッターを楽しんでたらPROMの二度焼きに関する話題が流れてきた。ROMに対する書き込みを確実にするために同じデータを二回書くと解釈した。これはまじないのたぐいだが上司がこれを本気にし一回だけの書き込みで大丈夫かどうか心配しだして検証を依頼された、という感じで検証の計画を考えてみる。
(なお実験は一切ありません)

☆現在の部署の設備環境でROMを書き込む時に二度焼きは必要か?
→ROMが化けると製品納入後にトラブル発生の可能性がある。
→二度焼きをすることによりデータが確実に書き込めるという主張。しかしその根拠はない。
→一回の書き込みより二回書き込んだほうが良さそうな雰囲気を感じるが、それは製造やコスト上影響があるほどのことなのか?
→落とし所は、一回の書き込みで充分ですよという客観的な内容。

 ROMの書き込みとデータ保持に関するしくみのおさらい。ROMはFETのゲート部分に電荷を溜めることによってFETのON/OFFを行い、これでデータを表現する。
Floating gate MOSFET(Wikipedia)
 ROMライタがFloating Gateを飽和されるほど充分に書き込んでいれば問題ないし実際そうなんだろうけど、それでも疑うというのであれば検証するしかない。(実は答えはここで出ている。Floating Gateに溜まっている電子の量が一回の書き込みでしきい値を越えていれば上書きしても無意味)


 検証対象、検証に必要な機材を検討する。
・ROMライター 量産で使用するもの。
・PROM。複数のメーカーより同一ロットを複数個。
・ROMサイズ分のランダムなテストパターン。
・ROM読み出しの治具。マイコンで走査する、またはROMライターのVerify機能を使う。

 データ化けがより起こりやすいパラメータの検討。
・データの読み出し速度
・データの読み出し 順かランダムか
・動作電圧 ±5%、±10%
・温度

 パラメータは振りやすいものからいじっていく。例えば温度を-10℃にしたいときはチャンバーが必要になりおおげさでこれはやりにくい。動作電圧等は振りやすい。データの読み出し速度は実際の製品で使う速度に合わせておく。
 データの読み出し方向については、治具が簡単になる方向にしておく。例えばランダム読み出しをしようと思えばマイコンを採用してコードを書いたり、と治具の設計が複雑になり治具のデバッグになってしまう恐れがある。

 異常な現象を出やすくするためには、まずTypicalな設定で基準となる動作を確認し、パラメータを1つずつ現象が出やすいと思われる方向へ振る。例えば電圧+10%で正常動作したら、+5%ではおそらく出ないだろうという予測ができる。

 異常現象が出ないことの検証は、設定した検証項目すべてをクリアすることで確認するので時間がかかる。
・PROM 同一ロット10個に同じランダムパターンを書き込み、治具により読み出しテストを1個あたり5分×3セット
 このへんで決めた数値は大きければおおきいほどよいのだが、それでは実験が終わらないので聞かれたら次のように答えることにする。
 5分の根拠→ROMのデータ読み込みn周分なので回数的に充分
 3回の根拠→1回じゃでないかもしれないので3回もやれば充分
このへんで決めた実験回数はあとで減らすことができない。減らしたせいで出なかったじゃないかと疑われる可能性がある。


 では以上の設定で実験をやってみたという設定で話はつづく。

・A社のROM 10個について、電圧±10%、温度25℃でパス
・B社のROM 10個について、電圧±10%、温度25℃でパス
・C社のROM 10個について、電圧±10%、温度25℃でパス

 一週間でこれだけ済んで上司に報告すれば、おおよそ「まあ出ないんだろうな」という雰囲気になるのでもう一つパラメータを振って現象が出なければ終了、となりそう。ということで今度は温度を振ってみる。温度を振るためには低い方と高い方を設定して上記のテストを行うか、またはチャンバーを借りて連続的に変化させ連続読み出しを行わせる。

 温度を二点設定する方法:
10℃雰囲気について、前回のテストを行う。
40℃雰囲気について、前回のテストを行う。

 チャンバーを使う方法:
室温→50℃→室温→-10℃→室温を5日間の間で行い、最後まで正常動作することを確認。治具は検証済みのものが複数台あると望ましい。例えば動作電圧をそれぞれ変えたもの。

 チャンバーを使った温度連続変化の方が、動作時間/温度環境ともに厳しくなるのでこれをパスすればおそらくどこからも問題がないと言えるだろう。チャンバーの借用も含めおそらく二週間コースですね。

  さて、それでもランダムな読み出しでは検証できていないじゃないかという話が出るかもしれない。そんなこともあろうかとランダム読み出しの治具は検証の間に検討を済ましておく。これを実際行うかどうかは上司の判断となる。担当者がこの実験にかかりっきりになる時間もタダではないのだ。

 検証はこういう条件でこれだけの時間行ったことについてOK/NGが言えるので、設定した条件の理由についてはすべて説明ができなければいけない。時間については検証にかかるコストとそれにみあう成果―それはひょっとしたら上司の安心感かもしれないが、周囲が納得できる長さにしなければならない。これはきりがないので充分に相談してゴールを設定する。リソースが有限な箇所は検証も有限なので、やはり最終的にはコストとの調整になる。


 ここまでは異常がないことを前提に話を進めてきた。もし異常な現象が出たのなら、デバッグに切り替わる。パラメータは異常な現象が再現する方向に倒して再現回数を上げ、次に最初のテーマであった二度焼きで改善されるのかどうか比較する。ここで正常動作の方向に倒れれば、はじめて二度焼きは効果がありそうだということが言える。そうなると、一回書き込んだROMで発生するエラーの回数と二回書き込んだROMで発生するエラーの回数で有意な差があるかどうかの検証に変わるだろう。

 二度書きでも改善しない、あるいは差がなければ部品や機材が疑わしくなる。もし部品であるROMそのものに異常が見られたら?大きいメーカーでは部品をまとめて大量に購入するため、購入する部品の評価をする部門を持っていたりするので、そこが検証を引き取ってくれる場合がある。こうなるといま設計している物とは関係がなくなってくるので、開発部門としては別の方式や部品の検討に入らなければならない。


ATMEL AT27C010-70PU ONE TIME PROGRAMMABLE (OTP) EPROM IC (1 piece) [並行輸入品]ATMEL AT27C010-70PU ONE TIME PROGRAMMABLE (OTP) EPROM IC (1 piece) [並行輸入品]

Tough Guy
売り上げランキング :

Amazonで詳しく見る
by G-Tools