九州大学学術情報リポジトリ
Kyushu University Institutional Repository
VLSIの故障検出・診断と検査コストに関する研究
平瀬, 潤一
https://doi.org/10.11501/3179026
出版情報:Kyushu University, 2000, 博士(工学), 論文博士 バージョン:
権利関係:
『司F
第4章 マイクロプロセッサの故障検出率向上法
4. 1
)11貢序回路の故障検出率向上手法
対象回路が組み合わせ回路であれ、JI慎序回路であれ、 高い故障検出率を得るテストハターン生成ア ルゴリズムの善し悪しの尺度としては、 次のことが上げられる。
高い故障検出率が得られること。
-高い故障検出率が短いテストハターンステッフ数で達成されること。
処理時間が短いこと。
この課題に対して、 組み合わせ回路に関しては、 満足すべき解決策としてのテストパターン生成ア ルゴリズがいくつか考案されており、 それを利用すれば、 ほぼ100%に近い単一縮退故障検出率が 短時間の自動処理で得られる。そのテストハターン生成アルゴリズでは、 以下の操作を行っている。
①回路上にすべての縮退故障を設定する。
②回路上の1つの縮退故障を想定し、 他の縮退故障は起こらないとする。
③その縮退故障を活性化する入力信号を考える。例えば1縮退故障ならば、 故障想定箇所を((0"
0縮退故障ならば、日1 JJとする入力テストハターンを考える。
④縮退故障の影響を出力端子に伝搬するテストハターンを考える。
⑤回路上のすべての縮退故障に対して、 ②~④を繰り返す。
⑤出来上がったテストハターンに対して、 可能ならばハターン圧縮を行う。
しかし、順序回路に対しては、順序回路を疑組み合わせ回路として、回路上の故障の1つ1つを検 出するテストハターンを生成していく手法もあるが、 一般的には以下の操作が取られている。
①いくつかの短いテストハターンを生成する。
②回路上のどの縮退故障が検出されるかをシミュレーションする故障シミュレータを使用して、
検出される故障を記憶する故障辞書を作成する。
③テストハターン群の中から、 故障検出率を向上させるために、 有効なテストハターンとそうで ないテストハターンを故障辞書を用いて判定・ 選別する。
④選択されたテストハターンを合成し、 可能ならばハターン圧縮を行う。
そして、 短いテストパターンからなるテストパターン群の中から最良のテストハターンを選択する手 法として、 選択時期の違いから次の2つの手法がある。
( 1 )ダイナミック手法
1つの短いテストパターンを生成し、 故障シミュレータで検出される故障を調べ、 その時点で 故障検出率向上に有効なテストハターンかどうかを判定する。有効ならば、 取り入れ、 そうで なかったら、 そのテストハターンは無効とする。次に、 2つ目の短いテストパターンを生成し、
未検出故障の検出に有効かどうかを判定 ・ 選別する。これを所望の故障検出率が得られるまで 繰り返す。
( 2 )スタティック手法
考えられるすべての短いテストハターンを生成し、テストハターン群を作成する。 そして、故 障シミュレータを使用して、1つ1つの短いテストハターンとそれによって検出される故障と の対照リストを作成する。 その対照リストから、 最も故障検出率が高く、 最もテストハターン ステップ数が少なくなるように、短いテストパターンを選択して、テストハターンを合成する。
いず‘れにしても、現在順序回路に対するテストハターン生成アルゴリズについては、盛んに研究さ れているが、 まだ満足すべき手法が確立されていないのが現状である。
本研究では、JI慎序回路をマイクロプロセッサと限定して、マイクロプロセッサの命令の組み合わせ の中で、故障検出率向上に効果あるものを選択していくダイナミック手法であるテスト生成アルゴリ ズムを提案する。 この手法は、制御論での非線形状態推定を取り入れた全く新しい手法で、 実証結果 より有効な手法であることが示される。
『司V
4. 2
命令サンプリング手法
マイクロプロセッサの故障検出率向上策としては、 マイクロプロセッサが持っている命令をなるべ く少なく、 そして有効に組み合わせて、 実行するかにかかっている。
その命令の組み合わせの中で、特殊命令については、故障検出率向上策として配慮すべき点が多い[1]0
1 )フラグチェック率を100%とすること。
マイクロプロセッサの該当命令として表4-1のように3命令があるとして、 説明する。
命令AAAを実行したとき、 ZFフラグの遷移としては、 表4-2のように4つの組み合わせの変化 が起こる。 これを全て検出するテストハターンを作る必要がある。同様に、 CFフラグについては、
命令AAA実行によって、“0" が(( 1 "に、 そして rr1 JJ が 日OJJ Iこ変化しないことを保証する テストハターンを作らなければならない。 すなわち、 表4-3のテストパターンで保証しなければな
らない。
次に命令BBBの場合には、 ZFフラグとCFフラグの両方について、 フラグが遷移しないこと を保証するテストハターンを用意しなければならない。 さらに、 命令CCCの場合には、 ZFフラ グについては、 フラグが遷移しないことを、 CFフラグについては、 全てのフラグの遷移を保証し なければならない。
表4-1 マイクロフロセッサの命令の例( 1 )
Tab. 4-1 Exarnple of 出croprocessor's instruction (1)
フフグへの影響 命 令
Z F (zero flag) C F (carry flag)
AAA x=Oなら、 ZF=1
x#Oなら、 ZF=O 影響なし
BBB 影響なし 影響なし
x>yなら、 CF
CCC 影響なし
X三三Yなら、 CF=O
表4-2 フラグの遷移
Tab. 4-2 Transfer of f1ag
命令実行前 命令実行後
。 。
。
。
『司F
表4-3 フラグが遷移しないことを保証するテストパターン
Tab. 4-3 Test pattem guaranteed that flag does not transfer
命令実行前
。
命令実行後
。
そこで、 フラグチェック率を次式(4・1) のように定義して、 このフラグチェック率を100%
としなければならない。
検出されるフラグ遷移数 フラグチェック率=
全フラグ遷移数
全フラグ遷移数=全命令×フラグ数x2
+Lフラグに影響を及ぼす命令×影響されるフラグx2 (4-1 ) 2 )アドレスについても、 全組み合わせのテストをしなければならない。
アドレスに関する命令の例を表4-4に示す。
表4-4 マイクロプロセッサの命令の例(2)
Tab. 4-4 Example of microprocessor's instruction (2)
( P C : programmable counter S P : stack pointer )
バロコロ、 」寸ココ、 アドレス動作
000 PC←PC+1 命令実行後、 次のアドレスとなる。
EEE E PC←PC+2 000とEEE Eの違いは、 1マシンサイクル命 令と2マシンサイクル命令の違いである。
PC←F CFがOのときは、 命令コードの2番目の値Fに分 FFF F If CF=O 岐する。
PC←PC+2 CFが1のときは、 次次番地命令を実行する。
If CF=1
GGG G PC←G 命令コードの2番目の値Gにジャンプする。
S P←SP-1 S Pをデクリメン卜した後、 SPで間接アドレシン HHH H P C STACK←PC+2 グされるPCスタックへ本命例の次次番地のPCを
PC←H 退避させ、 直接データHをPCに設定する。
PC←P C STACK S Pで間接アドレシングされるPCスタックの内容 111 s P←SP+1 をPCへ復帰させた後、 SPをインクリメン卜す
る。
ここで、 HHH Hの命令に注目すると、 次のテストを行わなければならない。
( a )まず、 Hの値として、 h(例えば、 10 1 0・・ 1 0 1 0)と/h(hの補数o 1 0 1 81
o 1 0 1 )の2通りでテス卜する必要がある。
( b )次に、 本命例を実行するアドレスPCとしては、 最低限度pc (例えば、 o 1 1 0 ・ ・ ・ 0 1 1 0)と/pc(pcの補数10 0 1 ・ ・ ・ 10 0 1 )の2通りでテストする必要がある。
さらに、 アドレスPCとしては、 各ビットの桁上げを検証する値(例えば、 o 1 1 1・ ・ ・ 1 1 1 )でのテストを行う必要がある。
このようなアドレスのテストを全命令に対して行うことで、 全命令によるアドレス制御が正しく 行われることが保証される。 このテストを簡単に、 しかも適正に行うために命令GGG Gのよう な強制ジャンプ命令で適切なアドレスPCに調整することが望ましい。
3 )故障検出率向上へ効果的命令の組み合わせを選択する必要がある。
S命令の中からR個(R壬S)の命令を組み合わせる個数は、 同じ命令は重複して使用しない けれども命令の順番は考慮、に入れるとすると、 S(S-1). . '(S-R+1)通りである。例 えば、 Sを20、 Rを8としても、 組み合わせ個数は、 5 x 1 0 9と膨大なものである。経済的 にもこれを全てテストする訳にはいかない。 よって、 この中から、 故障検出率向上に大きく寄与 する命令群を選択して、 故障検出率向上に有効なテストハターン生成手法を考えなければならな い。
そこで、 S個の命令からどのようにしてR個の命令を組み合わせるかを考える。
いま、 S個の命令を無作為に1番目、 2番目、・ ・ " S番目と並べる。 ここで、 S=SCXSL+
K 1 (S CとSL は、 Sc> S しとなる整数で、 SL はR/S しが整数とならない奇数とする)とする。 そ して、このS個の命令を次表4・5のような命令行列を作り、 1行、 2行、・ ・ ・に並び替える。
表4-5 マイクロプロッセサの命令行列
Tab. 4-5 Matrix of microprocessor's instructions
1列 2列 K1列 S L 列
1行 1番目 2番目 2行
SC行 S番目
そこで、 S個の命令の中からR個の命令を作り出す命令系列rを考える。 その命令系列rは、 次の ようにして作成する。
①r = {1番目の命令、 2番目の命令、 S番目の命令} = {1行、 2行、
②命令系列rに{1列、 2列、 S L9!J}を追加する。 このとき、 K 1 + 1列からS L列は、 1列 にSc-1個の命令が入っている。
③1行自の命令はそのままとする。 2行目は、 1つ左にシフ卜する。 そして、 はみ出した1命令は、
2行自の最後のS L列に入れる。 3行目は、 2つ左にシフ卜する。 そして、 はみ出した2命令は、
3行目のSL -1列とS L列に入れる。 同様にして、 行数を増やして、 左シフトと最後尾列への挿入 を繰り返す。 この左シフトと最後尾列への挿入作業がSc行(S c行については、 連続しては命令が 並ばないかもしれない。)まで終了したならば、 命令系列rに{1列、 2列、 、 S L9!J}を追 加する。
④S L -1回、 ③の手順を繰り返す。
⑤このときの命令行列の中身を1行、2行、. • • ( 1番目の命令、 2番目の命令、 、 S番目の 命令)と順番を再度付けたとしたら、 R+1番目の命令を1番目に、 R+2番目の命令を2番目 に、・・ ・、S番目の命令をS-R番目とする。 このとき、Sc行の空白列は、左にシフ卜する。 そ
して、1番目の命令をS-R+1番目の命令、・・ ・、R番目の命令をS番目の命令とする。
⑥②から⑤の手順を行う。
⑦⑤の手順を(S/R)+1回(( 】はガウス記号)繰り返す。
次に、 S個の命令の中からR個の命令を取りだした後の実際の処理について考える。
まず、 命令セットより選ばれたR個の命令は、 アセンブラレベルでその前後に可制御性と可観測性を 高める処理を追加し、 1つの命令アセンブラモジュールを生成する。 この生成された命令オブジェク
卜コードは、 それぞれ故障シミュレーション上で実行され、 それらの故障検出率の評価が行われる。
次に、 S個の命令の中からR個の命令を取りだしたアセンブラモジュールをL組生成した場合の故 障検出率の評価手法について考える。
いま、 マイクロフロセッサのコア上に故障の起こる可能性がN個(既知)あり、 理想的には検出で きる故障がM個あるとする。 その中からn1 1個、 n2 1個、 、nL 1個の故障の起こる可能 性がある箇所を取り出して、 それそ"れm1 1個、 m2 1個、・ ・ ・、mL 1個の故障が発生したら、
その個数の故障を検出できるテストパターンV1 1、V2 1、- ・ ・、VL 1を作成したとする。 そ の際、 n1 1、 n21'" , nL1の平均値をnとする。 そして、効率的に短い処理時間で最小 のテストハターンでM個に近い故障を検出するテストハターンを作るために、テストパターンV1 1、
V 2 1γ ・ , V L 1の中から、 まず選んだテストハターンで、 重複した検出できる故障箇所を1 っと考えた総和(故障の起こる可能性箇所の総和)をM2とする。
次に、 検出できる故障がM-M2個ある状態で、 マイクロプロセッサのコア上の故障の起こる可能 性総数N個の中からランダムにn1 2個、 n2 2個、 、 nL 2個(平均値n)の故障の起こる 可能性がある箇所を取り出して、 それぞれm1 2個、m22個、・ ・ ・、mL2個の故障が発生した り、 その個数の故障を検出できるテストハターンV1 2、 V22、 、 VL2を作成する。 そし て、 テスト八ターンV1 2、V22、・ 、 VL2の中からテストパターンを選択し、 重複した検
『司F
出できる故障箇所を1っと考えた総和(故障の起こる可能性箇所の総和)とM2との和をM3とする。
これを繰り返して、 k番目には、 検出できる故障がM-Mk個ある状態でN個の中からランダムに
n 1 k個、 n2 k個、 、 nLk個(平均値n)の故障の起こる可能性がある箇所を取り出して、
それぞれm1 k個、m2k個、 、 mLk個の故障が発生したら、 その個数の故障を検出できる テストハターンV1 k、 V2k、 、 VLkを作成する。 ここで、m1 k、 m2k、 、 mL
Kの平均値mkは、 超幾何分布の特性から、 次式(4・2)となる。
mk=n (M-Mk) /N (4-2)
そして、 テストハターンV1 k、 V2 k' . 、 VLkの中からテストパターンを選択し、 重複 した検出できる故障箇所を1っと考えた総和(放障の起こる可能性箇所の総和)とMkとの和をMk
+ 1とする。
以上のことを繰り返して、 所望の故障検出率を得るまで、 あるいは、 所定の処理時間まで行うこと を考える。 ここで、 mk+1、 nとMを推定する問題を考える。 そのために、 Xk+1を3次元状態 値ベクトルとして、 その要素をx1=mk+1、 x2=n、 そしてx3=Mとする。 そうすると、 次 式(4・3)のような状態方程式ができる。
Xk+1=9 (Xk、 Mk + 1 ) k=O、 1、 2、
(4-3)
xk+1= [x1、 x2、 x3 J T Tはベクトル、 あるいは、 行列の転置を表わす
9 (X k、 Mk+1)=[91、 92、 93 J T
91=x2 (x3-Mk+1)/N 92=x2
93=x3 M1=O
この観測方程式は、 Yk+1をL次元観測ベクトルとすると、 次式(4-4)で表される。
Yk+1=h (Xk+1) +Wk+1
h (Xk+1) = [h1、 h2、-
h 1 = x 1 h2=x1
hし=x1
W k + 1 = [w 1、 w2 -、 wLJ T
h L J T
(4-4 )
議論を進めるために、 いくつかの定義と仮定を設ける。
(定義)
①X k/k :観測ベクトル{Y1'" , Yk}に基づく状態ベクトルXkの推定値
②Xk+1/k:観測ベクトル{Y1'" , Yk}に基づく状態ベクトルXk+1の予測値
(仮定)
|初期状態Xoは、 先験的に与えられる。
11 Wk+ 1は、 近似的に平均値Oの3次元白色正規分布雑音とする。 そして、 超幾何分布の分 散σm K 2は、 Nが充分大きいとすると、
o m k 2 = n (N -n) (M -M k) (N -M - M k) / N 3 ( 4-5 )
で表されるから、 Wk+1の分散行列wのその要素は、
W11=W22=' . ・ニWLL
= x 2 (N一X2)(x3-Mk+1) (N一x3 -M k + 1 ) / N 3 ( 4-6 ) で、 上記以外の要素は全てOとする。
そうすると、 参考の非線形の状態推定式を利用することによって状態推定ができる。
これを用いてのXの推定の繰り返し計算手順を示す。
①まず、 初期状態として、 XO/Oを先験的に与える。
②予測値X1/0を求める。
③M1=Oのときの、 命令系列r = {r 1、 r 2、 }からR個の命令アセンブラモジ‘ユール をし組取り出して、 L個の故障検証実験を行う。
Y1=h (X1) +W1 ( 4-7)
④この実験により、 推定値X1/1を求める。
⑤無条件に全てのテストハターンを選択し、 テストハターンV 1 1、 V 2 1 ' .・ , V L 1で、
重複した検出できる故障箇所を1っと考えた総和(故障の起こる可能性箇所の総和)をM2とす る。
以上のことを逐次繰り返し、 k= (S/R L】+1 (【 】は、 ガウス記号)固まで故障検証実験 を行う。
k+1回目以降は、
①Xk+1の予測値Xk+1/kを求める。
②k + 1回目のし個の故障検証実験を行う。
Y k + 1 = h (X K + 1 ) +W K + 1
③この実験により、 Xk+1の推定値Xk+1/k+1を求める。
( 4-8)
④ [Yk+1J i=1、 2,' • .、 Lミ[Xk+1/k+1J 11なるテストパターンを選択す る。
選んだテストハターンで、 重複した検出できる故障箇所を1っと考えた総和(故障の起こる可能
性箇所の総和)とMkの和をMk+1とする。
以上のことを逐次繰り返し、所望の故障検出率を得るまで、あるいは、所定の処理時間まで行う。
この状態推定と最適制御を行ってマイクロプロセッサの故障検出率の向上を行う系の概念図を下図 4-1に示す。
9 (X k、 Mk+ 1 )
|h
(Xk+1)f-- ①
Z -1
Mk+1
叶
Xk+1/k+1図 4-1 状態推定と制御系
Fig. 4-1 State estimation and control system
y k+ 1
Xk+2/k+1
次に、 全命令に対するテス卜が終了した後のk+1回目以降のL組の数をどうすればよいかを考え る。 最初から、 多数のテストハターンV1 1、 V2 1、・ ・ , V L 1を作成し、 それぞれのテス卜 J\ターンでm1 1個、 m2 1個、 、 mL 1個の故障が発生したら、 その個数の故障を検出でき るとき、 その検出される故障の辞書を作って、 テストハターンを選択すれば、 最も故障検出率が高く、
しかも最もテストパターンの圧縮されたテストベクトルが作成されることになる。 しかし、 後で述べ るように、この場合には、長時間の故障シミュレーション時間を要し実用的ではない。また、多数の テストパターンといっても、 その数はいくらなのか定かでない。 ここに、 システム同定を行いながら、
段階的にテストベクトルを作っていく意義がある。観測ベクトル{y 1γ ・ -、 y k + 1 }に基づ く状態ベクトルXk+1の推定値Xk+1/k+1が求まると、 故障が発生したら、 その故障が検出 される平均故障個数の推定値mk+1が求められることになる。 そうしたら、 m1 k + 1個、 m2k
+ 1個、- ・ ・、mLk+1個の故障が発生したら、その個数の故障を検出できるテストパターンV 1 k + 1、V2k+1、. . , VLk+1の中から平均故障個数推定値mk+1より大きな個数の
故障を検出できるテストパターンだけを選択することが有効であると考える。
これまで述べてきたテストパターン発生において、 最も処理時間のかかるのは、 故障シミュレーシ ヨン時間である。 k+ 1番目の試行での1テストハターンに対する故障シミュレーション時間Tk+1
は、 1個の未検出故障を想定した場合の平均故障シミュレーション時間をt (試行番目とは無関係で ある )とすると、 次式(4-9)で表される。
Tk+1 = (M-Mk+1) t (4-9 )
いま、 S個の命令ニーモニックに対して、 S個の命令からR個の命令を試行回数に応じてし(k+
1 )組取り出すとする。 そうすると、 L (k+1)を最初大きくとって、 試行回数が増す度に小さく した場合、 最初の故障シミュレーション時間は長いが、 試行回数が少なくなる。逆に、 最初にL (k
+ 1 )を小さくして、 徐々に大きくしていくと、 最初の故障シミュレーション時間は短いが、 試行回 数が増えて、 トータルすると、 故障シミュレーション時間は、 長いものとなる。 これについては、 実 証結果によって、 以下の手法を比較することとする。
[1]一定テストパターン数作成手法
L (k+1)を試行回数に依らず、 一定値しとする。
[2]単一テストハターン選択手法
観測ベクトル{y 1、・ ・ , Y k}に基づく状態ベクトルXk+1の予測値Xk+1/kよ り、 故障が発生したら、 その故障が検出される平均故障個数の予測値mk+1/kが求まる。 そ こで、 平均故障個数予測値mk+1/kより大きな個数の故障を検出できるテストパターンが現 れるまで、 故障シミュレーションを繰り返す。 そして、 そのテストパターンが現れるまでのテス トパターンの個数をし(k + 1 )とする。
[3]可変変動テストハターン数作成手法
故障検出率の予測誤差をある値以下に抑えるように、 テストパターンの個数を試行毎に変えてい く手法である。
いま、 マイクロプロセッサのコア上に故障の起こる可能性がN個あり、 理想的には検出できる故 障がM-Mk+1個あるとする。そして、 そのN個の中からnL (K+1)個(ァ=nし(K + 1 )
壬N-Mk+1、 そして、 サンフリング率s=nし(K+1)/N=ァ/Nと定義する)の故障を ランダムに抜き取ったとした場合のマイクロプロセッサの故障検出率推定値Fと分散をσF2を求め てみよう。 この問題をマイクロフロセッサのコア上に故障の起こる可能性がN-Mk+1個あり、
理想的には検出できる故障がU個あるとする。 ただし、 Uは未知である。 そして、 そのN-Mk + 1個の中からア個の故障をランダムに抜き取ったとした場合のマイクロプロセッサの故障検出率 予測値Fとその分散をσF2を求める問題に変える。
k + 1番目の試行で×個の故障を検出する確率Pu (X=X)は、 次式(4・10)の超幾何分布で 表される。
( : )
(4・10)この式を次の式のように変形する。
(U+1) (N-Mk+1-R-ァ+x) PU+1 (X=x) =
(N-Mk+1-U) (U+1-x)
そうすると、
( 1 ) U+1 <x (N-Mk+1+1)のとき
PU+1 (X=X) >Pu (X=X)
(11) U+1 >x (N-Mk+1+1)のとき
PU+1 (X=X) <Pu (X=X)
. P U (X=x)
(4・11)
となる。 そこで、 超幾何分布の対称性を考慮すると、 Uの最ゅう推定値UMは、 PU+1 (X=X) を最大にする整数値であるから、[ 】をガウス記号として、 次式(4-12)で表される。
UM=【x(N -M k+ 1 + 1 ) /ァ】 (4-12)
x (N -M k+ 1 + 1 ) /ァが整数であるとすると、 Uの最ゅう推定値UMは、 x(N-Mk+1+1) /ァー1とx(N -M k+ 1 + 1 ) /ァになる。
よって、 既知であるMk+1/Nをfkとすると、 マイクロプロセッサの故障検出率推定値F=(M k+1+UM) /Nは、 ランダムサンフリング故障検証による故障検出率推定値をf=U/ァとし、
N � 1 (ァ�1 )とすると、 次式(4-13)となる。
F = f k + r x (N -M k+ 1 + 1 ) /ァ】/N = f k + f (1 - f k) ( 4-13 ) 一方、 観測ベクトル{Y1'. . , Yk}に基づく状態ベクトルXk+1の予測値Xk+1/
kによって、 理想的で最終的に検出できる故障数Mの値が予測できるから、 マイクロプロセッサの 故障検出率予測値Fk+1/kが求まる。 よって、 ランダムサンプリング故障検証前であっても、
その故障検出率の予測値fk+1/kが次式(4-14)で求まる。
fk+1/k= (Fk+1/k-fk)/(1-fk) (4-14 ) 次に、 マイクロプロセッサの故障検出率の分散を求めるために、 まずUの分散σU2を求める。 そ のためには、階乗モーメントをによって、求めることができるが、ここでは簡単に計算するために、
UM=x (N-Mk+1+1) /ァとして、 超幾何分布の分散c m2=ァ(N-Mk+1ーア)U (N- Mk+1-U) / (N-Mk+1) 3を利用すれば、 次式(4-15)となる。
σu2=om2X (N-Mk+1+1) 2/ァ2
=(N-Mk+1ーァ)U (N-Mk+1-U) (N-Mk+1+1) /ァ(N-Mk+1) 3
よって、 マイクロプロセッサの故障検出率予測値Fk+1/kの分散C F 2は、 U= UM=
(4-15 )
(N-Mk+1) fk+1/k、 N� 1 (ア� 1 )とし、 サンプリング率sをs=ァ/Nとすると、
次式(4-16)となる。
σF2=(N-M K+1ーァ)U (N-Mk+1-U) /ァ(N-Mk+1)
=(N-Mk+1ーァ)(N -M k+ 1) f k + 1 / k (N -M k + 1 ) ( 1 -f k + 1 / k ) /ァ(N-Mk+1)
= ( 1 -f k -s) f k + 1 / k (1 -f k) ( 1 - f k + 1 / k ) / N s ( 4-16 )
『司V
ここで、 マイクロフロセッサの故障検出率の予測誤差を3σFとすると、次式(4・17)となる。
Fk+1/k=fk+fk+1/k (1-fk):t3σF (4・17) そこで、 αを小さな値として
3σF壬α (4-18 )
となるように、 サンプリング率s、 すなわち、 し(k + 1 )を選択すれば、 高い確率でFk+1/
kが得られることになる。
自動テストハターン発生ソフトの良さの判定基準は、 高い故障検出率のテストハターンが (1 )短 いテストベクトルに生成されること、(2)短い時間の処理で生成されることである。 ここでは、 現在 開発中のマイクロプロセッサチッフに対して、 いままで述べた自動テストパターン手法を適用した結 果を示す。実験サンプルは、組込み用途のマイクロプロセッサ - コアの論理ゲートモデルを用いて行
った。
まず、組込み用途の4ビットマイクロプロセッサ-コアでの実証結果を示す。次図4・2と表4-6、4-7 に技術者が頭で考えて人手で作成したテストハターン、 S個の命令からR個の命令モジュールを作成
し、その全命令テストハターンを採用した場合と本手法により命令モジュールを選択していく手法(L は固定)について、 テストハターン数と故障検出率の向上動向を示している。 この図4-2から
|人手で作成するよりも、 論理的に命令の組み合わせを選んでいく手法が高い故障検出率を上げ ることができる。
11命令の組み合わせを選択していく手法が命令の組み合わせを全て取り組むよりも、 短いテスト ハターンが得られる。
ということで、 本手法の有効性を示している。
次に、テストハターン処理時間についての実証結果を示す。表4-8に、入手作成手法、全命令取得 法と本手法における故障検出率72. 5%時の処理時間を示す。
『司F
法 ン
得一取タ令パ法命手手全人本
80%
故障75%
検 出 率
% 70%
'BEEt
65%
。 25,000 50,000 75,000 100,000 125,000 150,000 175,000 200,000 225,000
ステッフ数
各種テストハターン生成法のテストハターンステップ数と故障検出率
t pattem step length and fault coverage Fig. 4-2 T
図4・2
故障検出率76%時のテストハターンステップ数(人手作成手法では、 故障検出 表4-6
is 76
全命令取得法 37) 0 24 率76% は達成できなかった)
本手法 3 3) 6 1 2
同一テストJ\ターンステップ数時の故障検出率 表4-7
mparison of the fault coverage with respect to出e pattem step length
全命令取得法 入手作成手法
テストパターンス 本手法 テップ数
23) 000 75. 07% 7 2. 78% 74 41%
5% 時の処理時間 故障検出率7 2.
表4-8
when fault coverage is 72.5%
本手法 47) 000
全命令取得法 40) 000 人手作成手法
134) 000
S個の命令をR個取り出して コアを用いて、
組込み用途の8ビットマイクロプロセッサ
;欠lこ
L組の選択手法について比較する。
L組を故障検証するときの、
まず、 次図 4-3にテストハターンのステップ数と故障検出率の関係を示す。 図で左側の線から、 単 ーテスト/\ターン取得法、テストハターン個数の可変変動テストハターン選択法の推定誤差1%、3%
7 5%未満 5%であり、 その右が一定テストハターン取得法、 そして全命令取得法である。 そして、
これを表で明 しか故障検出率が達成されないのが、 入手によるテストハターン作成法の結果である。
確にするために、 まず、 故障検出率96%時のテストハターンステップ数を表4-9に示す。 次に、 同 これから、 ハターンステッブ数を ーテスト/\ターンステッフ数での、 故障検出率を表4-10に示す。
減らす手法としては、 単 一テストハターン取得法と誤差を大きくした可変個数テス卜ハターン作成法 が優位であることが分かる。
全命令取得手法 人手作成ハターン 一定テストハ。ターン手法 単一テスト/\ターン手法 95%
85%
故障検出率
可変変動(t%y 可変変動(3%) 可変変動(5%)
〆 ,, E
75%
65%
。 50,000 75,000 100,000
ステップ数 25,000
各種テストハターン選択法のパターンステップ数と故障検出率
Fig. 3-15 Test pattem step len帥and fault coverage
図4-3
故障検出率96%時のテストハターンステップ数
fault coverage is 96%
860 可変変動テストパターン作成法 誤差1%
I
誤差3%I
誤差5%66, 308
1
67, 500 69,表4-9
Tab. 4-9 Comparison of the test pattem step length when出
卜得 ハ法 ス取
一アン一一単タ
ハ法卜成ス作一アン{疋一一タ土品得
nvA 宵勾
令-A叩全127 58,
770 93,
故障検出率 96%
同一テストJ\ターンステッフ数での故障検出率 表4-10
pattem step length
可変変動テストハターン作成法 誤差1%
I
誤差3%I
誤差5%23%
1
93. 0 1%1
92. 63%ハ 法 一%卜得一8ス取一5一アン一・一二4単タ一9
ハ 法
一%
卜 成
一7
ス 作 一1一アン 定 一 一 タ
土品得nv〈宵H「令-A叩全
ハターンステ ッブ数
31%
90.
000 50,
;欠に、 次図 4-4に故障検出率とテストハターン作成処理時間の関係を示す。 左側の線から、 全命令 その右が単一テストハ 1%であり、
3%、 取得法、 可変変動テストハターン選択法の推定誤差5%、
のよ これを表にすると、 表 4-11 ターン取得法、 そして一定テストハターン取得法、 そしてである。
テストハターン作成処理時間の面から売ると、 全命令取得法と誤差を大きくした可変変動 テストハターン作成法が優位であることが分かる。
うになり、
単一テストハ。ターン手法 可変変動(1%) 一一一一可変変動(3%) 可変変動(5%) 全命令取得法 ー ー ー 人手作成ハ。ターン
一定テストハ。ターン手法 100%
95%
70%
90%
85%
80%
75%
故 障検
出率
65%
。 100.000 150.000 200,000 250,000
故障シミュレーション時間
各種テストパターン作成手法とテストパターン作成処理時間 50,000
図4-4
Fig. 4-4 Cornparison of processing tirne of test pattem generation
故障検出率96%時のテストパターン作成処理時間 表4-11
Tab. 4-11 Processing time of test pattem generation when fault coverage is 96%
可変変動テストハターン作成法 誤差1%
I
誤差3%I
誤差5%145, 412
1
130, 2881
126, 650ハ 法 ス取 ト得 一アン一一単タ ハ 法 卜 成 ス 作 一アン 定 一 一 タ
土品得
nλ
宵司令-
全 A叩 故障検出率
178, 535 93, 294
96%
『司F
この実証結果より、 以下のことが判明した。
a)生成した命令テストハターンの故障検証実行結果より、 その時点での妥当な故障検出数の予測 データを求め、 その予測データを利用して命令テストハターンをサンフリングする、 テストハ ターン選択法を提案した。
そして、 命令サンプリング手法のシステム同定を導入することで、 全命令取得法に対して、 故 障検出率が高く、 しかもテストステップ数の短いテストハターン生成が可能となった。
b) S個の命令からR個の命令を試行回数に応じてし組を故障検証するときの、 L組の選択手法を 提案した。
必要な故障検出率を96%としたとき、 一定個数テストハターン作成手法に対して、 可変変動 テストハターン数作成手法(サンプリング予測誤差5%)のテストハターン生成処理時間は、
29. 4%短縮される。 また、 ハターンステップ数は、 19. 5 %短縮される。 同様に、 ハタ ーンステッフ数を50, 000サイクル ・ ステッフとした場合、 約1. 5 %高い故障検出率が 得られた。
c)しかし、 同じ故障検出率を得るならば、 単一テストハターン選択手法が、 最も短いテストハタ ーンステッフ数で生成されることが分かった。 実験では、 可変変動テストハターン作成手法よ りも17%テストハターンステッフ数が短縮された。
d )また、 可変変動テストハターン作成手法を導入することで、 一定個数テストハターン作成手法 や単一テストハターン選択手法に較べ、 約30%の高速化を実現した。
以上のことより、 単一テストハターン選択手法と可変変動テストパターン作成手法を混合させた手 法がマイクロプロセッサに自動テストハターン作成手法としては、 最適であることを示している。
今後は、 本手法をマイクロフロセッサの短時間処理で高い故障検出率の得られるテス卜生成アル ゴリズムに改良-改善することと、 他の順序回路への応用を図っていきたい。
参考文献
[1] J. Hirase,“Improvement 01" the defect level of micro-computer LSI testing,“Proc. IEEE lntemational Test Conf. , pp438-443, Oct. 1995.
[2] J. Hirase, T. Sezaki and S. Yoshimura, “Automatic Test Pattem Generation for lmproving the Fault Coverage,“Proc. æEE Eighth Asian Test Symposium, pp13-19, Nov. 1999.
[3]平瀬、 瀬崎、吉村,Hマイクロプロセッサの故障検出率向上のための命令サンプリング手法J3 子情報通信学会 Vo1.J83-C NoムSept. 2000.
吾菅,
�
[ 4] R. Scott Fetherson, lrntiaz P. Shaik and Siyad C. Ma., "Testability Feature of 出e AMD_K6™
Microprocessor," Proc. IEEE lntemational Test Conf., pp 406- 413, Oct., 1997.
[5] Jose Alvarez et a1., “450MHz PowerPC Microprocessor with Enhanced Instruction Set and Copper Interconnect," Proc. IEEE Solid-State Circuits Conf.,1999.
[6] Hao and Avra, "Stru山red Design-foトDebug-the SupperSPARC II Me出odology and Implementation,"
Proc. IEEE Intemational Test Conf., pp175-183, Oct., 1995.
[円7η] Ma棺gd匂y Aba吋dir and Ra吋jes油h Raina丸, ‘“‘匂De岱悶S討ig伊n-F
Microproじessor,"P針roωc. IEEE lntemational Test Conf., pp810-819, Sept, 1999.
[8] Timothy J. Wood, “The Test and Debug Features of the AMD-K7™ Microprocessor," Proc. æ Intemational Test Conf., pp130-136, Sept, 1999.
[9] M. H. Konijnenburg, J. Th. van der Lindon and A. J. van der Goor, "Testability of the Philips 80C51 恥1icro-controller,"Proc. æEE Intemational Test Conf., pp820-829, Sept, 1999.
付録(非線形状態推定式)
状態方程式
Xk+1=9 (Xk) +VK と観測方程式
Yk=h (Xk) +Wk
から状態推定を行うことを考える。
議論を進めるために、 いくつかの定義と仮定を設ける。
(定義)
①Xk は、 n元ベクトル、 Ykは、 m元ベクトルとする。
②X k/k :観測ベクトル{Yl、 、 Yk}に基づく状態ベクトルXkの推定値
③X k + 1 /k 観測ベクトル{Yl、. . , yk}に基づく状態ベクトルXk+lの予測値
④e k/k = X k -X k/k 推定誤差
(A4-1 )
(A4・2)
⑤Sk/k=E [ek/kek/kT]:推定誤差分散行列、 ただし、 Eは、 期待値記号、 Tは行列の転置 を示す。
⑥e k + 1 /k二Xk+l-Xk+l/k 予測誤差
⑦Sk+l/k=E [ek+l/kek+l/kT]:予測誤差分散行列 (仮定)
初期状態Xoは、 平均値Xo/ーぃ分散行列So/ー1の正規分布として、 先験的に与えられるo H非線形関数9(X k)とh (X k)は、 Xkに関して、 少なくとも2階微分可能な関数である。
111 V KとWkは、 近似的に平均値Oのn次元とm次元の白色正規分布雑音とする。 そして、 その
分散行列をそれぞれVk、 Wkとする。
IV e k/kとek+ l/kの分布は、 近似的に正規分布である。
V X k/kとXk + 1 /Kは、 不偏推定値である。 すなわち、 E[ek/k] =0、 E[ek+1/k]=0
いま、 9(X k)、 および、 h (Xk+1)をそれぞれXk/kとXk+1/kの近傍で2次の項までテー ラー展開すれば、(A4・1)式と(A4-2)式は、 下記式となるo
Xk+1=9 (Xk/k) + A (Xk/k) (Xk-Xk/k) n
+ 1 /2 Iψ, (X k -X k/k) T G; (X k/k) (X k -X k/k) + V K
A (X): 9 (X)のnX nのヤコビアン行列 [A (X)] ;j=δ9,/θX J
ψ, 基底ベクトル
ψ1 = [1、 0、 0、 、 0] T
(A4-3)
-
また
ψ2 = [0、 1、 0、・ ・ ・、 0] T
ψ門=[0、 0、 0、 、 1] T
G, (X): 9, (X)の2階微分を要素として持つ対称なnX nのヘシアン行列 [G, (X)] J1=θ29,/θX JθX 1二θ[A (X)] 'J/θXl
Yk+1=h (Xk+1/k) +C (Xk+1/k) (Xk+1-Xk+1/k) m
+ 1 /2 LψJ (Xk+1-Xk+1/k) TDJ (Xk+1/k) (Xk+1-Xk+1/k) +Wk+1 j = 1
C (X): h (X)のmXnのヤコビアン行列 [C (X)] 'J=θh,/δX J
DJ (x): hJ (x)の2階微分を要素として持つ対称なmXmのへシアン行列 [0 J (X)] k 1 =δ2 h,/θXkθXl=δ[C (X)] Jk/θXl
(A4-4 )
まず、 予測値Xk+ 1 /kを導出してみよう。 Xk + 1 /kを下記式で与える。
X k + 1 /k = 9 (X k/k) + U (X k/k) (A4-5)
U (X k/k) : 9 (X k)の非線形性を考慮した補正項
仮定IVに(A4-5)式と(A4-3 )式を代入すると、 E [A (Xk/K) ek/k] =A (Xk/k) E (ek /k) = 0であることを考慮すると、 次のようになる。
E [ek+1/k] =E (Xk+1-Xk+1/k) n
= E {A (X k/k) (X k -X k/k) + 1 /2 Lψ, (X k -X k/k) T G, (X k/k)
( X k -X k/k) + V k -U (X k/k)}
n
= E {A (X k/k) e k/k + 1 /2 Lψi ek/kTG, (Xk/k) ek/k+Vk-U (Xk/k)}
n
今A (X k/k) E {e k/k} + 1 /2 Lψ, E {e k/k T G, (X k/k) e k/k} + V k -U (X k/k)
n
= 1 /2 Lψ,E {tr [G, (Xk/k) ek/kek/kT]} +Vk-u (Xk/k)
a・・』
n
= 1 /2 Lψ1 t r [G 1 (X k/k) E {8 k/k 8 k/k 丁目 +E (Vk) -U (Xk/k)
n
= 1 /2 Lψi t r [G 1 (X k/k) S k/k] -u (X k/k) = 0
そこで、
n
u (X k/k) = 1 /2 Lψ1 t r [G 1 (X k/k) S k/k]
よって、
n
X k+ 1 /k = 9 (X k/k) + 1 /2 Lψ1 t r [G 1 (X k/k) S k/k]
次に、 推定値Xk+1/k+1を次式で与える。
Xk+1/k+1ニXk+1/k+Kk+1 [Yk+1-h (Xk+1/k)一円 (Xk+1/k)]
Kk+1 nXmのフィルタのゲイン行列
円 (Xk+1/k): h (Xk+1)の非線形性を考慮した補正項
そして、 誤差分散行列S k+1/k+1とS k+ 1/kを導出しよう。
仮定IVに(A4-9)式と(A4-4)式を使用して、 計算する。
E {8k+1/k+d =E (Xk+1-Xk+1/k+1) =E {(Xk+1-Xk+1/k)
m
(A4-6 )
(A4-7)
(A4-8)
(A4-9 )
-Kk+1 [C (Xk+1/k) (Xk+1-Xk+1/k) + 1 /2 LψJ (Xk+1-Xk+1/k) T j = 1
・OJ (Xk+1/k) (Xk+1-Xk+1/k) +Wk+1-n (Xk+1/k)]}
作1
=E {8k+1/k-Kk+1 [C (Xk+1/k) 8k+1/k+1/2LψJ8k+1/kTOj (Xk+1/k) j = 1
.8k+1/k+Wk+1一円(Xk+1/k)]} =0 よって、 E [8k+1/k+1J =0より
打1
円(X k + 1 /k) = 1 /2 LψJ t r [0 j (X k+1/k) S k+1/kJ j = 1
したがって、
(A4-10)
(A4-11 )
『司町
Xk+1/k+1=Xk+1/k+Kk+1 {Yk+1-h (Xk+1/k)
また、
打1
-1/2 LψJ t r [OJ (Xk+1/k) Sk+1/k]}
ek+1/k+1=ek+1/k-Kk+1 {C (Xk+1/k) ek+1/k
よって、
m
+ 1 /2 LψJek+1/kTOJ (Xk+1/k) ek+1/k j = 1
円1
-1/2 LψJ t r [0 j (X k+1/k) S k+1/k] +Wk+1}
j = 1
Sk+1/k+1二E {e k+1/k+1 e k+1/k+1 T}
=E {[ek+1/k
行1
(A4-12)
(A4-13)
-Kk+1 [C (Xk+1/k) ek+1/k+1/2LψJek+1/kTOJ (Xk+1/k) ek+1/k j = 1
行1
-1/2 LψJtr [OJ (Xk+1/k) Sk+1/k] +Wk+1]}
j = 1
. [ek+1/k-Kk+1 [C (Xk+1/k) ek+1/k
円1
+ 1 /2 LψJek+1/kTOJ (Xk+1/k) ek+1/k j = 1
円1
-1/2 LψJ t r [0 J (Xk+1/k) S k+1/k] +Wk+1]] T}
= [I-Kk+1C (Xk+1/k)] E {ek+1/kek+1/kT} [I-Kk+1C (Xk+1/k)] T +Kk+1 (Wk+1+Lk+1) Kk+1T
= [I-Kk+1C (Xk+1/k)] Sk+1/k [I-Kk+1C (Xk+1/k)] T
+Kk+1 (Wk+1+Lk+1) Kk+1T (A4-14 )
1 nXnの単位行列
[Lk+1],j 非線形性を考慮した観測雑音分散の補正項
[Lk+1] 'J=1/2tr [0, (Xk+1/k) Sk+1/kOJ (Xk+1/k) Sk+1/k]
一方、(A4-6)式と(A4-7)式より、 次式(A4-15)が求まる。
n
e k + 1 /k = A (X k/k) e k/k + 1 /2 Lψi t r [G, (X k/k) (e k/k e k/k T -S k/k)J
+V k (A4-15)
よって、
Sk+1/k=E {ek+1/kek+1/kT} =E {[A (Xk/k) ek/k n
+ 1 /2 Lψitr [G, (Xk/k) (ek/kek/kT-Sk/k) +VkJ [A (Xk/k) ek/k
n
+ 1 /2 Lψ,tr [G, (Xk/k) (ek/kek/kT-Sνk) +VkJ T}
= A (X k/k) S k/k A (X k/k) T + P k + V k
Pk: 9 (X) の非線形性を考慮した系付加雑音分散の補正項
[PkJ lJ=1/2tr [G, (Xk/k) Sk/kGJ (Xk/k) Sk/kJ 最後に、 最適フィルタゲイン行列を決定しよう。
(A4-16)
最適フィルタゲイン行列Kヘ+1は、 ek+1/k+1の重み付け平均自乗値Jk+ 1を最小にするKk+1と して求める。
Jk+1=E {ek+1/k+1™k+1ek+1/k+l}
= t r Mk+l E {e k+1/k+1 e k+1/k+1 T} = t r Mk+1 S k+1/k+1 (A4-17)
Mk+1 nXnの対称な重み行列 したがって、
δJ k+1/δK k+ 1 =0 (A4-18)
K k+ 1 = Kヰk+1
をGradient matrix法により計算すると、
Mk+1TSk+1/kTC (Xk+1/k) T+Mk+1Sk+1/kC (Xk+1/k) T
-Mk+1TK牢k+1 [C (Xk+1/k) Sk+l/kC (Xk+1/k) T+Wk+1+Lk+1J T
-Mk+1 K牢k+ 1 [C ( X k + 1 / k) S k + 1 / k C (X k + 1 / k ) T + W k + 1 + L k + 1 J T = 0 (A4-19 ) よって、
K牢k+1=Sk+1/kC (Xk+1/k) T [C (Xk+1/k) Sk+l/k C (X k + 1 /k) T + W k + 1 + L k + 1 J -1
(A4-20)式を(A4-14)式に代入して、 次式(A4-21)が求まる。
Sk+1/k+l=Sk+l/k-Sk+1/kC (Xk+1/k) T
[C (Xk+1/k) Sk+l/kC (Xk+1/k) T+Wk+1+Lk+1J-1
(A4-20)
C (X k+l/k) S k+l/k
よって、 状態推定は、 以下の手順で行う。
①まず、 初期状態において、 S0/0とX0/0を先験的に与える。
②予測値X1/0を求める。
n
X1/0=g (XO/O) +1/2Lψ, t r [G, (X 0/0) S O/oJ
③予測誤差分散行列S1/0を求める。
S 1/0 = A (X 0/0) S % A (X 0/0) T + P 0 + v 0
[PoJ 'J=1/2tr [G, (XO/O) SO/OGJ (XO/O) SO/oJ
④最適フィルタゲイン行列Kぺを求める。
K*I=SI/0C (X1/O) T [C (X1/O) SI/0C (X1/O) T+W1+L1J一1
⑤m個の観測を行う。
Yl=h (X1) +W1
⑥この実験により、 推定値X1/1を求める。
円1
(A4・21)
(A4・22)
(A4-23)
(A4-24)
(A4-25 )
X1/1=X1/0+Kぺ{y 1 -h (X 1/0) -1 /2 Lψ] t r [DJ (X 1/0) S 1/0J} (A4-26)
j = 1
⑦推定誤差分散行列S1/1を求める。
SI/I=SI/0-SI/0C (X1/O) T
[C ( X 1/0) S 1/0 C ( X 1/0) T + W 1 + L 1 J -1 C ( X 1/0) S 1/0
③推定誤差分散行列S1/1と推定値X1/1によって、 2回目の実験の推定を行う。
以上のことを逐次繰り返し、 k固まで故障検証実験を行う。
k+1回目以降は、
①X k+lの予測値Xk+ 1 /kを求める。
n
X k + 1 /k = 9 (X k/k) + 1 /2 Lψ, t r [G, (Xk/k) Sk/kJ
②予測誤差分散行列Sk+ 1 /kを求める
S k + 1 /k = A ( X k/k) S k/k A ( X k/k) T + P k + V k
[PkJ 'J=1/2tr [Gi (Xk/k) Sk/kGJ (Xk/k) Sk/kJ
③最適フィルタゲイン行列Kヘ+1を決定する。
K*k+l=Sk+l/kC (Xk+1/k) T
(A4-27)
(A4-28)
(A4・29)
[C ( X k + 1 /k) S k + 1 /k C ( X k + 1 /k) T + W k + 1 + L k + 1] -1
④k+1回目のm個の観測を行う。
Yk+l=h (XK+1) +WK+1
⑤この実験により、 Xk+lの推定値を求める。
X k+l/k+l = X k+l/k
m
(A4-30)
(A4-31 )
+K*k+l {Yk+l-h (Xk+1/k) -1/2IψJ t r [0 J (X k+l/k) S k+l/kJ
⑤推定誤差分散行列を求める。
S k + 1 /k + 1 = S k + 1 /k
-Sk+l/kC (Xk+1/k) T
j = 1 (A4-32)
[C (Xk+1/k) Sk+l/kC (Xk+1/k) T+WK+1+しk+1J一lC (Xk+1/k) Sk+l/k (A4-33)
第5章 VLSIの検査コスト
5.
1検査コストの構成要因
V L S Iの検査コストとして、 デバイス開発から始まって、 製造工程を経て出荷にいたるまでの検
査に関わるコストを総合検査コストと定義する。 その総合検査コストは、 直接V L S I製造原価に関 わる直接的検査コストと間接的検査コストに分けられる。
直接的検査コス卜は、 V L S Iテスタ使用コスト、 テスト容易化回路挿入によりチップサイズが増 大した結果歩留まりが低下する損失費用と1ウエハからとれる有効チップ数減少によって損失する費 用からなる。 その中、 V L S Iテスタの減価償却費用と検査工程にかかる人件費の単位時間当たりの 費用と、 テス卜時間をかけた量産検査コストを 日検査コスト"と称している場合が多い。
他方、 間接的検査コストは、 テストプログラム開発費、 テスト容易化回路設計 の開発費、 故障シミ ュレーション処理コスト、 評価業務コストおよび市場あるいはお客様で検査に起因する不良が発生し たときの出費などからなる。 それらを図示したのが、;欠図5-1である。
間接的検査コスト
テストシステム使用コスト 一以卜
システムの保守・ 運営費 検査治具コスト
不良解析 ・ 品質管理コスト テスト容易化回路挿入による損失費用
ヒ
歩留まり低下損失費用有効チップの減少損失費用 テス卜容易化回路の設計コスト
故障シミュレーション処理コスト テストプログラム開発コスト
ヒ
メインプログラム開発コス卜 テストパターン開発コスト 評価業務コスト不良発生に伴うコスト 直接的検査コスト
総合検査コスト
金料
金 用 料使用 ム 使 テ
タス
ユ、ン
ピT他ンAの
コ C そ
トト」
図5-1 検査コストの構成要因
Fig. 5-1 Definition and composition of testing costs
5. 2
直接的検査コス卜の算出
まず、 直接的検査コストの内、 量産検査コストの算出法について、 述べる。 量産検査コストは、;欠 図5-2から、 ウエハブロービングテスト費用と ファイナルテスト費用からなっているのが分かる。 ウ エハブロービングテストは、 デバイス設計と拡散フロセスから始まって、 VL S 1の製造の場での拡 散プロセス作業完了までに、 偶発的に発生した欠陥のあるチップを除去することを目的とし、 その後 の組み立てロス(不良チップを組み立て加工するロス)を削減する。 ファイナルテス卜は、 基本的に は、 組み立て加工工程で偶発的に発生した不良を除去することを目的とするが、 VL S 1製品の出荷 にあたっての最終的品質保証の役割も果たす。
ウエハ投入 一
VLSIデバイス出荷4 ファイナルテスト
図5-2 V L S 1製造での検査工程
Fig. 5-2 Test process 01" VLSI manufacturing
①チッフ面積とチップ数
ウエハフロービングテスト
1枚のウエハから取れる有効チッフ数Neと端チップを含めて検査しなければならない総チップ 数NT について考える。
いま、 ウエハの直径をWcm、 無効周辺幅をdcm、 チップ面積をAcm人拡散プロセス- ハ ラメーター測定用チップ数をN pとすると、 1枚のウエハから取れる有効チップ数Neと端チップを 含めて検査しなければならない総チップ数NTは、 経験的に次式(5-1 )で与えられる。
π(W/2-d-W/44) 2 N...T =
A
π(W/2-d-W/44-J"A/2) 2 N e=一一一
A
(5-1 )
-N p
(5・2)
これらの式の分子の( )の中の第3項は、 オリエンテーション- フラッ卜部の減少面積分を、
そして、(5-2)式の第4項は、 ウエハ周辺からチップの1辺の半分までを無効とすることを表して いる。 オリエンテーション- フラッ卜部の減少面積分の値は、 経験的に求められたものである。 ま た、 ウエハ直径にも大きく依存する。 論文[1 ]では、 W=1 2 5 c mを、 論文[6]では、 W=15.
Ocmを想定している。 しかし、 最近では、 オリエンテーション・ フラッ卜部がなくなっているし、
1ウエハに有効チッフのみをマップするようになっている。 さらに、 拡散プロセス- パラメータ-
『司司「
スクライブ・ ライン部に配置されて、 有効チップ数を減少させることがなくなっ 測定用チップは、
1牧のウエハから取れる有効チッフ数Neと端チッフを含めて検査しなけれ ばならない総チッフ数NTは、 等しくなる。
ている。 そうすると、
d
図5-3 ウエハ図
Fig. 5-3 Figure of wafer
1ウエハに有効チップのみ フラッ卜部の減少面積分がないこと、
ここで、 オリエンテーション
ハラメーター測定用チップは、 スクライブ-ライン部に配置 をマップすることと、 拡散フロセス
6cmのときの実際の値を示した のが次図5-4である。 図5-4から、 経験式と実際の値がほぼ一致していることが分かる。
d =0.
することの条件で、(4-2)式の値とw=1 5. Ocm、
10,000
1,000
有効チップ数
100
200 180 160 140 120 100 80
60 40
。 20
チップ面積(m m 2) チップ面積と有効チップ数
Fig. 5-4 Chip area and No. of e旺ective chip 図5-4
②ウエハフローピングテスト費用
ウエハブロービングテストコス卜を算出するために、 2つの仮定を設ける。
(1 )有効チッフの中の不良品のテス卜時間は、 良品テスト時間Tpの半分でフェイルする。
(2)総カウント数NT一有効チップ数Neのチッフは、 最初から不良となることが分かっている チップなので、 そのテスト時間は、 不良品のテスト時間の半分、 すなわち、 良品テスト時間 の1/4でフェイルする。
そうすると、 1ウエハ当たりののテスト時間Twは、 歩留まりをYpとすると、 次式(5・3)となる。
T p T p
Tw= 一 (NT-Ne) + [TpYp+ (1-Yp)] Ne
4 2
T p N eTp(1+Yp) 一 (NT-Ne) +
4 2 (5-3)
いま、 テスタの原価償却費の時間当たりのコストをMT p, ウエハフロービング検査工程に従事す る人件費の時間当たりのコストをMMPとすると、 1ウエハ当たりの検査コストCwは、 次式(5-4) となる。
Cw=Twx (MTP+MMP) (5-4 )
よって、 良品1チップ当たりのウエハブロービングテストコストCpは、 1ウエハ当たりNeYp の良品があるから、 次式(5-5)となる。
C p= Cw/N e Y p
③ファイナルテスト費用
(5・5)
ウエハフロービングテストと問機に、 完成品の検査であるファイナルテストにおいても、 不良品
のテスト時間は、 良品テスト時間TFの半分でフェイルするものとする。 そうすると、 平均テスト 時間TA Fは、 歩留まりをYFとすると、 次式(5-6)となる。
TAF=TF(1+YF)/2 (5-6 )
いま、 テスタの原価償却費の時間当たりのコストをMT F' ファイナル検査工程に従事する人件費 の時間当たりのコストをMMFとすると、 良品1個当たりの検査コストCFは、 次式(5-7)となる。
CF=T AFX (MTF+MMF) /Y F
=T F (1 +Y F) (MTF+MMF) /2 Y F (5・7)
従来、 検査コストは、 未だ研究されていなかった。 それを著者がV L S 1製造現場の実践的要請 を受け、 研究した成果として、 19 9 5年に始めて発表した本計算法は、 その後、 多くの論文で引用
されている[2]。
5. 3 最適テスト回路面積の存在
まず、 VLSIの製造原価の 検査コスト以外の要素を計算して売る。
そこで、 拡散プロセス加工済みウエハ 単価をCw、 そのダイをウエハ から切り出すスクライブ加工 費用をCsとすると、 チップ単価Ccは、 次式(5・8)で与えられる。
C C = ( C w + C S ) /
( N
e Y P ) ( 5-8)次に、 組み立て加工材料費+組み立て加工費+包装・出荷費用を組み立て基礎費用CKと定義して、
組み立て歩留ロス費用Cしを計算する。 これは、 次式(5-9 )で与えられる。
CL=CK (1-YF) (5-9 )
以上の 計算をもとに、 組み立て費用CAは、 次式(5-10)となる。
CA=CF+CK +CL (5-10)
以上のことを考慮しながら 、 テスト回路と検査コスト、 および、 製造原価を算出する。 その ための 新たな仮定として
( 1 ) ウエハプロービングテス卜前の拡散プロセスコストを90, 000円/ウエハとする。
( 2 ) ウエハフロービングテストの 歩留Ypは、 式(5-11)で表わされ、 ファイナルテスト歩留Y Fは一律95%とする。 そして、 0=0 6 個/cm人k=1で歩留まりYpを計算する。
ま た、 W=200mm 、 d=6mmとする。
Y p = 1 / ( 1 + A 0 / k) k (5-11 )
( 3 ) テス卜回路増とチップ面積増 は、 同じ割合とする。 すなわち、 テスト回路なしの チップ面積 をAO、 R の割合 の テスト回路を持つチップの 面積をARとすると、
AR = (1 +R ) AO (5-12 )
( 4 ) ウエハプロービングテスト後の 組み立てから 出荷までの ファイナルテス卜コストを除く費用 は、 一律1 00円/個とする。
( 5 ) マシンコスト+人件費をMpT+MpM=MFT+MFM=2. 5円/秒とする。
( 6 ) ウエハプロービングテスト時間とファイナルテスト時間は、 等しい。 ここでは、 最適なテス 卜回路が存在することを厳密な定量的数値で証明する のではなく、 定性的な経験式で証明した い[1]0
テスト回路挿入によってテスト時間が大幅に短縮されることは分かってい る が、 その効果を述べる 前にテスト時間の要因を述べる。 テスト時間Tは、 ピン数をP、 実行ベクタ-長(繰り返し、 サブル
ーティンなどを展開したベクタ一長 ) をV(単位:ワード)、 測定周波数をF、 定 数をC1 、 C2、
C3とすると、 次式(5-13)で表わされる。
V T=C 1 1 P +C r ,v 2 一一一 +C
F (5・13)
『司司f
ここで、 19 8 7年より工場で生産された711品種の内の主要品種のゲート数Gとヒン数Pの関 係をフロッ卜したのが図5・5である。図5-5からゲート数2 0 kまでは、 P=JGの関係がある。そ
れ以上にゲー卜数が増加すると、 ゲートの1/2乗から1/3乗、 1/4乗へとゲート数が増加する につれてピン当たりのゲー卜数は、 増加する。
1,000
ピ 100
ノ
数
P 10
仁ι一 トート一一
日阿
•I�
-= ト一一ー
1-
-.
� I
ー圃圃, ト一一トー
一ー
I +-I
1 1 11 �
�
p=JG�
�d
直 m 也 íll 込 Li
T
画期 唱
�切回陣回剛 �
� �
長
GO.3T寸
II
IIJ
10 100
( 1 03 gates)
ゲート数 ( G ) 図5-5 ゲート数とピン数の関係
孟4・....
• -岡
画面.
11 1,000
Fig. 5-5 Relation between the gate nurnber and pin nurnber
;欠に、 ゲート数と実行ベクタ一長の関係であるが、 この関係は、 一律には決まらない。テスト回路 の増減によってベクター長は、 変動するからである。このことをあえて無視して、 工場で生産した2 1 3品種の内、 主要品種のゲート数とベクタ一長をフロッ卜したのが図5-6である。
一般に、 テスト回路の割合が少ない場合は、 実行ベクタ一長はゲート数の1乗---2乗程度になり、
その逆にテスト回路の割合を大きくした場合は、 ゲー卜数の1乗以下に小さくなると考えられる。ま た、 測定周波数によっても、 テス卜時間は大きく変わる。ここでは、 式(5-13)をゲート数とテスト 時間の関係に近似したい。式(5・13)の第1項は、 主にDCテスト項目を表しており、 図5-5から、
ゲート数の1/2乗、 1/3乗と1/4乗の多項式で近似される。第2項は、 ゲー卜数の2乗、 1乗 と1/2乗の多項式となると考えられる。よって、 式(5-13)をI、 J、 Cn (n=2、 3、 4)を 定数として、 次式(5-14)で近似することとする。
4
T=IG2+JG+乞C G 1/n n (5-14 )
n=2
司V
= 1. 6 x�
三� 〆...
• �
‘園周' --
司E.三 • •
a , ー ...- a
。・
ヲ V rnf.
-・ •.一 ..., a a
þ---f
•i〆〆 ‘
•• 100
10 1,000 ...
夫
T丁
ハえ
ク タ 長
1 0 6
ワード)
(V)
1,000
ハUハU4E' 、、lノQU e φt a
σ。、Jノ 3 G ハ〉/1
4EE' (数t卜
ゲ
10
ゲート数と実行ベクタ一長
ate number and length of execution vector
図5-6
Fig.5-6
市トー 「
『一一--+-l-・-test circuits 0 % 8 3 devices
トー -0ーtest circuits 3 % 5 0 devices
ト ーψ-test circuits 5 % 2 2 4 devices 一令一test circuits 1 0 % 4 7 devices 一一test cire山ts 20% 39devices
μ凶岡両 国同 ・
F ノ 九 岬
aレ,眉 _;..r
100 テスト時間(秒)
1,000
、、Iノ《凶ρしVφEtw 会Uσb nU司、v叩04EE--,,,‘、、、,,JハU,,t、、
10 10
(T)
ゲー卜数 ゲー卜数とテスト時間
Fig. 5-7 Gate number and test time
図5・7
『司�
1 987年から工場で生産された443品種をテスト回路の全回路に占める割合毎に分類 そこで、
このとき、 テスト
C nを求め、 プロットしたのが図 5-7である。
し、 最尤法で式(5-14)のI、 J
時間の絶対値は、 集計した品種のテスト時間の平均値で基準化している。
3 5 0 kと800kの場合、 テスト回路比率とテスト時間の関係 以上より、 ゲート数が10 0 k、
は、 図5・8となる。
、
、
、
、 100 k
\
、‘、
、 ーーー 800k350 k主 入 除
\、、
、、-
ー・・ 』ト と
回・ ・・ ー- 田-ー『,18
8 6 4 16
12 10 14 テスト時間(秒)(T)
2
。
20 18 16 14 (%) テスト回路比率(R )
10 12 8 6 4 2
。
テスト回路比率とテスト時間
st circuits and test tim
図5-8
ig.5-8
そこで、 テスト回路なしのチップ面積を50mm2、 ゲート数を35 0 kとした場合の製造原価を 算出して示したのが図5-9である。 この図には、 同時に検査コス卜とテスト回路を挿入したことによ るロス金額( loss=チップ面積増加による歩留まり低下と1ウエハから取れる有効チッフ減少による チップ単価増加+歩留まり低下によるウエハフロービングテスト費用の増加)を示した。
400
コ 350 ス ト
50 円
-BL ed o c σb n ・li&'Lr、L qd gd e o
&EL '『'A
一
一一一一一一 manufacturing cost
o 0 2 4 6 8 1 0 12 14 16 18 20 (%)
テスト回路比率(R )
図5・9 テスト回路比率と製造費用
Fig. 5-9 Test circuits and manufacturing costs
同じ拡散プロセスのデザインルールを用いる場合、 ゲート数が大きくなれば、 それにつれて、 チッ プ面積は大きくなる。 図5-9では、 テスト回路なしのチップ面積を50mm2、 ゲート数を350k とした場合の一例を示したが、 テスト回路なしのチップ面積が20mm2で100kゲートとテスト 回路なしのチップ面積が100mm2で800kゲートの場合の製造原価を図5-10に示す。 但し 製造原価に大きな差異があるので、 テスト回路なしでの製造原価を1とした基準化製造原価を示す。