English

消費電力を考慮したテスト

LSIの通常動作時とテスト時の消費電力の差が拡大し、良品・不良品を誤って判定してしまう問題が深刻になっています。本頁ではこの”差”の発生メカニズムと、それによって発生する問題、そして問題解決への取り組みについて考えてみます。

CMOS回路の消費電力

近年のLSIでは、CMOS構造がその消費電力の低さから多く採用されています。では、CMOS回路はどんな時に電力を消費するのでしょうか?下図はCMOSを使った最もシンプルな回路であるインバータ(NOTゲート)です。Vdd側にPMOSトランジスタ、Vss側にNMOSトランジスタが接続されています。

まずは機能的な面から見ていきましょう。入力端子INの電位がVssと同じ(論理値0)のとき、PMOSがオフ、NMOSがオンになり、Vdd-OUT間が導通するため、OUTの電位はVddと同じ(論理値1)になります。反対に、INの電位がVddと同じ(論理値1)のとき、PMOSがオン、NMOSがオフになり、OUT-Vss間が導通するため、出力端子OUTの電位はVssと同じ(論理値0)になります。したがって、INとOUTには常に反対の電位が現れることになり、NOTゲートの機能を実現できるというわけです。

続いて、電力消費について見ていきます。CMOSでは入力信号の変化がない限り、常に一方のトランジスタはオフ状態になります。これはインバータに限らず、どんな論理ゲートでも同様です。そのため、安定状態では電流が”ほとんど”流れません。これが消費電力の低さを実現しています。ところが、微細LSIではオフ状態にある(絶縁されている)トランジスタであっても、一定の割合で電流が漏れ出てしまいます。これをリーク電流といい、CMOSの電力消費の原因の一つになります(静的消費)。また、入力信号の変化が起こるときにも電流が流れ、電力を消費します(動的消費)。IN=1、OUT=0で安定している(出力の容量CLはカラッポ)状態から、IN=0に変化させるとVddからCLに向かって電流が流れ込みます(充電)。反対にCLが充電しきった状態でIN=1に変化させると、CLに溜まった電荷がVssに流れ出ていきます(放電)。前述のとおり、CMOSではPMOSとNMOSが排他的にオン状態になり、入力信号が変化する際にはこの充放電電流のみが流れるはずですが、実際には、PMOSとNMOSのオン・オフの変化のときに瞬間的に双方がオン状態になり、VddとVssが導通して電流が流れてしまいます(貫通電流)。

以上をまとめると、CMOSの消費電力は次のように分類できます。

このうち、充放電電流による消費電力Pcdは、以下の式で近似されます。

通常動作時とテスト時の消費電力

LSIの集積度を上げ、大規模化するためには、低消費電力化は必要不可欠です。このため、様々な低消費電力技術が考案されています。プロセス技術ではhigh-k酸化膜やSOI(シリコン・オン・インシュレータ)によるリーク電流の削減などが代表的です。また、回路設計技術では、DVFS(Dynamic Voltage and Frequency Scaling)とよばれる、回路の動作状況に応じて周波数や電源電圧を制御する手法(f、Vddの削減に貢献)や、クロックゲーティングやパワーゲーティングといった、動作しない箇所のクロックや電源の供給を止める手法(α、リークの削減に貢献)などがあります。このような技術のおかげで、わたしたちは高性能で、小型で、かつ電池持ちのよいデバイスを使うことができています。

いっぽう、テスト時はどうでしょう。プロセス技術による低消費電力化は回路の作りそのものを変えてしまうので、これはテスト時も同様に効果を発揮しそうです。ところが、クロックゲーティングやパワーゲーティングといった機能はテスト時には基本的に無効化されます。その理由は、高品質・低コストという相反する条件がテストでは求められるからです。不良品の流出を食い止めるのがテストの至上命題ですから、回路の隅々まで検査する必要があります。その一方で、テストでは非常に高価な装置を使用するため、テストにかかる時間はコストに直結します。したがって、テストはなるべく短時間で済ませる必要があります。これらの要求を両立するためには、テストパタンあたりの回路の動作率(信号変化率)を上げるしかありません。また、テストではスキャンと呼ばれる、テストでしか用いない動作をさせます。これにより通常起こりえない状態遷移が発生し、高い信号変化率を引き起こします。

テスト時の消費電力が高いと何がまずいのでしょうか。長時間にわたって消費電力が高い状態が続く、すなわち、平均消費電力が高くなると、回路は発熱を起こします。これが過度になると回路にダメージを与えてしまい、信頼性を下げてしまったり、時には回路が焼損してしまったりします。では平均消費電力を下げるだけでよいかというと、そうではありません。瞬間消費電力が高くなるのも問題です。瞬間的に多くの素子に電流が流れると、過度の電圧降下(IRドロップ)が発生します。素子の電源電圧が下がると、その素子のスイッチング速度が低下します。これが積み重なって回路遅延の増加を招き、場合によってはタイミング不良となります。これらの問題は、もともと故障のない回路であっても起こるので、良品を不良品と誤って判定してしまい、歩留りの低下につながります。

低消費電力テスト手法とその課題

テスト時の消費電力の削減は、信号変化率の削減が基本です。これを実現するために、様々な手法が提案されています。それらはハードウェア的手法とソフトウェア的手法の2種類に大別できます。前者は回路設計に何らかの変更を施すもので、高い電力削減効果が期待できる反面、回路面積や性能への影響が懸念されます。後者は、信号変化率の低いテストパタンを生成するもので、こちらは回路面積や性能への影響もなく、また既存フローとの親和性が高いため、比較的容易に導入できます。ただし、故障検出能力やテストパタン数とのトレードオフをうまくとる必要があります。

これまでに多くの手法が提案されてきましたが、まだまだ課題も多く残っています。その一つに評価尺度の問題があります。手法の多くは、信号変化数を○○%削減したとか、消費電力が△△ワットになった、といった評価をしていますが、重要なのはそれらだけではありません。とりわけ、瞬間消費電力による影響は最終的に遅延増加によるタイミング不良として現れます。そのため、電力のみならず、遅延の観点でも評価する必要があります。

ディペンダブルシステム学研究室の取り組み

本研究室では上述の評価尺度の問題解決に取り組んでいます。

Y. Yamato, T. Yoneda, K. Hatayama, M. Inoue, “A Fast and Accurate Per-Cell IR-drop Estimation Method for At-Speed Scan Test Pattern Validation,” International Test Conference (ITC’12), Nov. 2012.

テストパタンがIRドロップによる遅延増加の影響でタイミング不良を起こすかどうかを評価するためには、テストパタンごとに、一つ一つの回路素子の電源電圧を求める必要がありますが、IRドロップの解析には非常に時間がかかることが知られています。そこで本論文では、IRドロップ解析の高速化手法を提案しました。提案手法では、時間のかかる解析は一部のテストパタンのみに絞り、これをもとにIRドロップ見積関数を導出します。そして残るテストパタンについては、比較的高速に計算できる消費電力の情報と、見積関数を用いてIRドロップを計算することで高速化を図ります。ベンチマーク回路を用いた実験では、精度の低下を抑えつつ(解析ツールと提案手法のそれぞれから求めたパス遅延値の平均相関係数=0.9999)、最大で319倍の高速化に成功しました。