JP2010015689A - メモリ自己テストの方法と装置 - Google Patents
メモリ自己テストの方法と装置 Download PDFInfo
- Publication number
- JP2010015689A JP2010015689A JP2009243543A JP2009243543A JP2010015689A JP 2010015689 A JP2010015689 A JP 2010015689A JP 2009243543 A JP2009243543 A JP 2009243543A JP 2009243543 A JP2009243543 A JP 2009243543A JP 2010015689 A JP2010015689 A JP 2010015689A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- test
- self
- data
- locations
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/14—Implementation of control logic, e.g. test mode decoders
- G11C29/16—Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
Landscapes
- Tests Of Electronic Circuits (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Microcomputers (AREA)
Abstract
【課題】メーカや設計方式が異なる種々のメモリの不良を自己テストするのに有用な、プログラム可能な自己テスト・コントローラを提供する。
【解決手段】自己テスト・コントローラ10は取り込まれた自己テスト命令に応答して、自己テスト命令が指定する、一連のメモリ・アドレスの生成を含むテスト動作を行う。多数のこのような自己テスト命令を組み合わせることにより、ユーザは総称的自己テスト・コントローラ10を用いて特注のテスト方法を構築できる。
【選択図】図2
【解決手段】自己テスト・コントローラ10は取り込まれた自己テスト命令に応答して、自己テスト命令が指定する、一連のメモリ・アドレスの生成を含むテスト動作を行う。多数のこのような自己テスト命令を組み合わせることにより、ユーザは総称的自己テスト・コントローラ10を用いて特注のテスト方法を構築できる。
【選択図】図2
Description
本発明はデータ処理装置の分野に関する。より詳しくは、本発明はメモリ不良を検出するための、データ処理装置内のメモリの自己テストに関する。
自己テスト機構(組込み自己テスト(BIST)と呼ぶことがある)を持つメモリを組み込んだデータ処理装置は公知である。自己テスト機構とは、メモリ回路を製作したときに一度または一連の自己テストを行ってメモリ不良が存在するかどうかを判定し、存在する場合はその回路を除外することを指示する機構をいう。メモリ回路は高い信頼性が要求されるので、不良回路は正しく識別しなければならない。メモリ・サイズが大きくなるに従って、メモリが占めるダイの部分も大きくなる。またメモリ内のトランジスタの密度が高くなるとメモリの不良密度も非常に大きくなる。
不良の種類は設計によって大幅に異なり、また同じ設計でも製造プロセスによって異なる。このため、通常、自己テスト方式は設計や製造方法に従ってメーカが選択する。一般にメーカは、特定の環境において不良メモリを識別するのに適した、経験から得られた自社特有の好ましいテスト方法を有する。或るメーカが採用しているテスト方法は他のメーカにとって必ずしも適当な方法ではない。
自己テスト回路はメモリが正しく製作されていることを確かめるのに必要であるが、或る回路領域を占有するのでできるだけ小さくすることが望ましい。自己テスト回路は一般に集積回路を製造するときに用いるが、その後集積回路の通常の動作中には用いない。
1つの形態では、本発明はデータを処理する装置を提供する。この装置は、
それぞれのメモリ・アドレスに関連する複数のメモリ記憶位置を有する少なくとも1個のメモリと、
前記少なくとも1個のメモリの自己テストを制御する自己テスト・コントローラと、
を含み、
前記自己テスト・コントローラは自己テスト命令に応じて一連のメモリ記憶位置内の各メモリ位置に少なくとも一度メモリ・アクセスを行い、前記自己テスト命令により選択された前記一連のメモリ記憶位置内で順次にアクセスされるメモリ位置に従ってメモリ・アドレスは変化し、前記自己テスト・コントローラは前記自己テスト命令により形成されて異なるメモリ・テスト方法を実現する。
それぞれのメモリ・アドレスに関連する複数のメモリ記憶位置を有する少なくとも1個のメモリと、
前記少なくとも1個のメモリの自己テストを制御する自己テスト・コントローラと、
を含み、
前記自己テスト・コントローラは自己テスト命令に応じて一連のメモリ記憶位置内の各メモリ位置に少なくとも一度メモリ・アクセスを行い、前記自己テスト命令により選択された前記一連のメモリ記憶位置内で順次にアクセスされるメモリ位置に従ってメモリ・アドレスは変化し、前記自己テスト・コントローラは前記自己テスト命令により形成されて異なるメモリ・テスト方法を実現する。
本発明の認識では、アドレス指定の順序を変えることにより種々のテスト方法を行うことができるプログラム可能な自己テスト・コントローラが望ましい場合がある。詳しく述べると、かかるプログラム可能な自己テスト・コントローラを提供することにより、多くの異なるメーカがこの自己テスト・コントローラの設計を再使用することが可能になり、しかも各メーカがこの自己テスト・コントローラをプログラムして、自分の特定の環境に最も適したものとして選択したテスト方法を実行することが可能になる。単一の固定されたテスト方法だけを行うコントローラとは異なり、プログラム可能な自己テスト・コントローラを用いると自己テスト・コントローラのサイズと複雑さが増加するので一般に不利と考えられるが、自己テスト・コントローラ設計を再使用すれば、異なるメーカの種々のテスト要求や、同じメーカであっても独自の製造プロセスを開発したときに生じる異なるテスト要求などに対処できるので、この不利を十分補うことができる。
自己テスト命令が完結したテスト方法を示すことも可能であるが、本発明の好ましい実施の形態では、複数の自己テスト命令を実行して、異なるユーザが異なるシーケンスを指定するように調整された一連のメモリ・テストを行う。自己テスト・コントローラは自己テスト命令のプログラムにより駆動され、特定のユーザが望むあらゆるテスト方法を実行する。
理解されるように、テスト対象のメモリの特定の種類に適合するように、または特定の製造テスト方法に適合するように、一連のメモリ・テストを調整できる。
理解されるように、テスト対象のメモリの特定の種類に適合するように、または特定の製造テスト方法に適合するように、一連のメモリ・テストを調整できる。
理解されるように、自己テスト・コントローラが作成するメモリ・アドレスは種々の形をとってよく、また種々の方法でメモリ位置にマッピングしてよい。しかし多くの種類のメモリ不良はメモリ位置自体の、または他のメモリ位置に対する相対的な物理的位置に関連するので、自己テスト・コントローラが作成するメモリ・アドレスはメモリ位置の物理的位置を与える行と列のアドレスを直接表すものが特に適している。なぜなら、一般にテストの際に有用なメモリ・アドレスのシーケンスは、メモリ・アドレスをこの方法で表現することにより容易に形成できるからである。
かかるプログラム可能な自己テスト・コントローラにおいて考慮すべき重要な点は、どのアドレス・シーケンスとどのテストを命令が支援するかを決定することである。広範囲の種々の方法で組み合わせて、多くの異なる状況の要求を包含する適用範囲の広いテスト方法を与えるように命令を選択しなければならない。この要求を考慮すると、支援する自己テスト命令の数とそれらが表すテストの複雑さが増加するに従って、自己テスト・コントローラに関連する複雑さとオーバヘッドが増大する。
上記の要因を考慮して、本発明の好ましい実施の形態は次のテスト動作を行うことが可能な自己テスト命令を含む。すなわち、
(i) 指定されたデータを或る範囲内のメモリ・アドレスの全てのメモリ位置に書き込み、
(ii) データを或る範囲内のメモリ・アドレスの全てのメモリ位置から読み取り、
(iii) 指定されたデータをチェッカー盤パターンのメモリ・アドレスを有するメモリ位置に書き込み、
(iv) データをチェッカー盤パターンのメモリ・アドレスを有するメモリ位置から読み取り、
(v) マーチC(marchC)メモリ・テストを行い、
(vi) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取りまた指定されたデータを書き込み、メモリ位置の或る行内のメモリ位置に順にアクセスした後でメモリ位置の次の行を選択してアクセスし、
(vii) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取りまた指定されたデータを書き込み、メモリ位置の或る列内のメモリ位置に順にアクセスした後でメモリ位置の次の列を選択してアクセスし、
(viii) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取り、指定されたデータを書き込み、またデータを読み取り、メモリ位置の或る行内のメモリ位置に順にアクセスした後でメモリ位置の次の行を選択してアクセスし、
(ix) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取り、指定されたデータを書き込み、またデータを読み取り、メモリ位置の或る列内のメモリ位置に順にアクセスした後でメモリ位置の次の列を選択してアクセスし、
(x) 一連のメモリ位置において、前記メモリ内の1つ以上のビット線に或る値を繰り返し書き込み、次に前記1つ以上のビット線を共用するメモリ位置内に記憶されている相補値を読み取り、
(xi) 一連のメモリ位置において、或るメモリ位置から或る値を繰り返し読み取ると共に逆のデータ書込みを行い、
(xii) メーカのテスト方法が特定の要求を持たない実行/不実行(go/nogo)テストについて(i)から(xi)に規定されたメモリ・テスト動作の所定の組み合わせを行い、
(xiii) 不合格検出を有効化するために特定の点で偽読取りデータ(false read data)を生成する。
(i) 指定されたデータを或る範囲内のメモリ・アドレスの全てのメモリ位置に書き込み、
(ii) データを或る範囲内のメモリ・アドレスの全てのメモリ位置から読み取り、
(iii) 指定されたデータをチェッカー盤パターンのメモリ・アドレスを有するメモリ位置に書き込み、
(iv) データをチェッカー盤パターンのメモリ・アドレスを有するメモリ位置から読み取り、
(v) マーチC(marchC)メモリ・テストを行い、
(vi) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取りまた指定されたデータを書き込み、メモリ位置の或る行内のメモリ位置に順にアクセスした後でメモリ位置の次の行を選択してアクセスし、
(vii) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取りまた指定されたデータを書き込み、メモリ位置の或る列内のメモリ位置に順にアクセスした後でメモリ位置の次の列を選択してアクセスし、
(viii) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取り、指定されたデータを書き込み、またデータを読み取り、メモリ位置の或る行内のメモリ位置に順にアクセスした後でメモリ位置の次の行を選択してアクセスし、
(ix) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取り、指定されたデータを書き込み、またデータを読み取り、メモリ位置の或る列内のメモリ位置に順にアクセスした後でメモリ位置の次の列を選択してアクセスし、
(x) 一連のメモリ位置において、前記メモリ内の1つ以上のビット線に或る値を繰り返し書き込み、次に前記1つ以上のビット線を共用するメモリ位置内に記憶されている相補値を読み取り、
(xi) 一連のメモリ位置において、或るメモリ位置から或る値を繰り返し読み取ると共に逆のデータ書込みを行い、
(xii) メーカのテスト方法が特定の要求を持たない実行/不実行(go/nogo)テストについて(i)から(xi)に規定されたメモリ・テスト動作の所定の組み合わせを行い、
(xiii) 不合格検出を有効化するために特定の点で偽読取りデータ(false read data)を生成する。
本発明は、自己テスト・コントローラと1個以上のメモリとプロセッサ・コアとを1つの集積回路上に形成する実施の形態で用いるのに特に適している。同じ集積回路上に形成する比較的大量のメモリをプロセッサ・コアとして多く用いると、多数のテスト方法を支援する必要が増加する。なぜなら、大量のメモリを含む構成要素のメーカの数が増え、また異なる集積回路に与えられる製作特性の変動も増えるからである。別の観点からすると、メモリは、専門のメモリ・メーカが製作した離散的集積回路の形で与えられることは少なく、広範囲のメーカ(例えばASICメーカ)により種々の他の構成要素(特にプロセッサ・コア)と共に単一の集積回路内に含まれることの方が多いが、この方法はかかる状況における変化に対応する。
理解されるように、テストの対象となるメモリは種々の異なる形をとる。詳しく述べると、メモリは特定の環境に従って特注のメモリであったり合成メモリであったりする。これらの異なる種類は元来それぞれ異なる検査方法が必要であって、これには自己テスト・コントローラのプログラム可能な性質が有用である。
本発明の方法を更に複雑にする点は、異なるメモリを駆動するには異なる信号値とタイミングを必要とすることである。比較的簡単な設計の総称的自己テスト・コントローラを作ろうとすると、自己テスト・コントローラ内でかかる違いを処理するのは実用的でない。したがって本発明の好ましい実施の形態は、自己テスト・コントローラとテスト中のメモリの間の必要な信号値とタイミングの調整を行うインターフェース回路を含む。特定のメモリに接続するのに必要な回路要素をまとめて中間のインターフェース回路内に集中することにより、自己テスト・コントローラの設計を総称的にまた比較的コンパクトにできる。
用いるメモリ・アドレス・シーケンスを指定するだけでなく、自己テスト命令はテスト中にメモリに書き込むデータ値も指定する。データ値の選択は特定のテストにより検出される不良の種類に大きな影響を与え、またこれを用いて特定のメーカまたはユーザが設定できる方法でメモリの潜在的な弱点を探すことができる。
理解されるように、最近の多くの集積回路は多数の異なるメモリを含む。これらの異なるメモリの設計は非常に異なり、異なるテスト方法を必要とする。自己テスト・コントローラはプログラム可能な性質を持つので、この単一回路によりかかる異なるメモリをそのメモリに最も適した方法でテストできる。また自己テスト命令は検出された誤りを報告する方法も指定する。これは優れた特徴であって、誤り報告を特定のメーカの要求に合わせ、または設計デバッグと製造テストとを比較するなど、異なるテスト環境を反映することもできる。
自己テスト命令の制御の下にアクセス可能な記憶装置をインターフェース回路が備える場合は、検出された誤りに関する追加のデータを得ることができる。これにより自己テスト・コントローラとメモリの間のインターフェースが簡単になり、しかも特定のユーザまたは設計が望む場合は強力な診断またはその他のデータを収集できる。
異なるキャッシュ・サイズやオンチップRAMサイズなどの種々のメモリ・サイズの共通回路を効率的に処理するため、好ましい実施の形態では自己テスト命令はテスト対象のメモリのサイズを指定する。
自己テスト・コントローラに関連する接続オーバヘッドを減らすため、好ましい実施の形態では自己テスト命令を自己テスト・コントローラに直列にロードする。
自己テスト・コントローラは集積回路パッケージ上に複数の外部信号ピンを備えて、他の回路要素とは独立に製造テストを行うようにすることが望ましい。
自己テスト・コントローラに関連する接続オーバヘッドを減らすため、好ましい実施の形態では自己テスト命令を自己テスト・コントローラに直列にロードする。
自己テスト・コントローラは集積回路パッケージ上に複数の外部信号ピンを備えて、他の回路要素とは独立に製造テストを行うようにすることが望ましい。
別の観点から、本発明はそれぞれのメモリ・アドレスに関連する複数のメモリ記憶位置を有するメモリのテスト方法を与える。この方法は、
前記メモリに結合する自己テスト・コントローラに自己テスト命令を与え、
前記自己テスト命令に応じて一連のメモリ記憶位置内の各メモリ位置に少なくとも一度メモリ・アクセスを行い、前記自己テスト命令により選択された前記一連のメモリ記憶位置内で順次にアクセスされるメモリ位置に従ってメモリ・アドレスは変化し、前記自己テスト・コントローラは前記自己テスト命令により形成されて異なるメモリ・テスト方法を実現する、
ステップを含む。
本発明の上記のまたはその他の目的と機能と利点は、例示の実施の形態の以下の詳細な説明を添付の図面と共に読むことにより明らかになる。
前記メモリに結合する自己テスト・コントローラに自己テスト命令を与え、
前記自己テスト命令に応じて一連のメモリ記憶位置内の各メモリ位置に少なくとも一度メモリ・アクセスを行い、前記自己テスト命令により選択された前記一連のメモリ記憶位置内で順次にアクセスされるメモリ位置に従ってメモリ・アドレスは変化し、前記自己テスト・コントローラは前記自己テスト命令により形成されて異なるメモリ・テスト方法を実現する、
ステップを含む。
本発明の上記のまたはその他の目的と機能と利点は、例示の実施の形態の以下の詳細な説明を添付の図面と共に読むことにより明らかになる。
図1は、プロセッサ・コア4とキャッシュ・メモリ6とRAMメモリ8(この例ではSDRAM)とを含む集積回路2を示す。理解されるように、かかる集積回路2は一般に更に多くの回路要素を含むが、簡単かつ明確にするために、それらの回路要素はこの図から省いた。
集積回路2上に自己テスト・コントローラ10があり、それぞれのディスパッチ回路12、14によりキャッシュ・メモリ6とSDRAMメモリ8とそれぞれ通信する。これらのディスパッチ回路は自己テスト・コントローラ10とそれぞれのメモリの間のインターフェース回路として作用する。これにより、自己テスト・コントローラが生成する総称的メモリ・テスト駆動信号を論理アドレスに再マッピングし、自己テスト・コントローラ10の基本設計を変更せずに、異なるメモリの要求に対して値とタイミングを調整できる。
また図から分かるように、自己テスト・コントローラ10は集積回路2の多数の外部信号ピンの形で与えられる自己テスト・インターフェース16を含む。このようにして、集積回路2の製作を完了すると適当なテスト・コントローラにプラグインして自己テスト・コントローラ10の自己テスト活動を開始し、メモリ不良を検出すると集積回路2全体を除外するか、または可能であれば回路内で適当な修理を行う。
図2はテスト・コントローラ10とメモリ装置18との関係をより詳細に示す略図である。自己テスト・コントローラ10は自己テスト命令レジスタ20を含み、直列シフト法を用いて自己テスト・インターフェース16を介して自己テスト命令をこれにロードできる。自己テスト命令をロードすると、MBIST_RUNなどの所定の外部から与えられる信号をアサートすることにより、自己テスト動作が起動する。自己テスト・コントローラ10内ではステートマシン22が自己テスト命令のパターン選択部に応答する。パターン選択部は、自己テスト・コントローラ10がどの物理的メモリ・アドレス・シーケンスを作成してメモリ装置18に与えるかを選択する。
例えば、選択されたパターンは次の活動を行う。
指定されたデータ語を全ての項目に書き込み、
全ての項目からデータ語を読み取り、
チェッカー盤パターン内のデータ語または反転データ語を全ての項目に書き込み、
チェッカー盤パターン内のデータ語または反転データ語を全ての項目から読み取り、
マーチCテストを行い(この種のテストはメモリ・テストの分野でよく知られているのでここではこれ以上を説明しない)、
増分減分語線高速マーチを用いて、読取り動作を行い次に書込み動作を行い、
増分減分ビット線高速マーチを用いて、読取り動作を行い次に書込み動作を行い、
増分減分語線高速マーチを用いて、読取り動作と書込み動作と読取り動作を行い、
増分減分ビット線高速マーチを用いて、読取り動作と書込み動作と読取り動作を行い、
書込み動作と読取り動作の繰返しによりビット線対にストレス・テストを行う「バング」テストを行い、
所定の一連のテスト(上に述べたテストなど)を行って実行/不実行の結果を生じ、
不合格検出を有効化するために特定の点で偽読取りデータを生成するパターンを行う。
指定されたデータ語を全ての項目に書き込み、
全ての項目からデータ語を読み取り、
チェッカー盤パターン内のデータ語または反転データ語を全ての項目に書き込み、
チェッカー盤パターン内のデータ語または反転データ語を全ての項目から読み取り、
マーチCテストを行い(この種のテストはメモリ・テストの分野でよく知られているのでここではこれ以上を説明しない)、
増分減分語線高速マーチを用いて、読取り動作を行い次に書込み動作を行い、
増分減分ビット線高速マーチを用いて、読取り動作を行い次に書込み動作を行い、
増分減分語線高速マーチを用いて、読取り動作と書込み動作と読取り動作を行い、
増分減分ビット線高速マーチを用いて、読取り動作と書込み動作と読取り動作を行い、
書込み動作と読取り動作の繰返しによりビット線対にストレス・テストを行う「バング」テストを行い、
所定の一連のテスト(上に述べたテストなど)を行って実行/不実行の結果を生じ、
不合格検出を有効化するために特定の点で偽読取りデータを生成するパターンを行う。
上に述べた方法の一部として与えられるデータ語も自己テスト命令内のビット・フィールドとして与えられる。自己テスト命令内のエンジン制御フィールドは自己テスト・コントローラ10と自己テスト装置全体の誤り報告オプションを定義する。自己テスト命令の配列選択部は、多数のメモリ装置を含む環境において、関係する自己テスト命令でどのメモリ装置をテストするかを選択する。理解されるように、適当な環境では自己テスト命令を多数のメモリ装置に並列に与えることができる。
自己テスト・コントローラ10は、列アドレス信号と行アドレス信号の形の物理的メモリ・アドレス信号を生成してディスパッチ・コントローラ24に送る。指定されたテストで与えられるデータ語もディスパッチ・コントローラ24に送る。種々の他の制御信号も自己テスト・コントローラ10とディスパッチ・コントローラ24の間で交換される。
ディスパッチ・コントローラ24は総称的自己テスト・コントローラ10が生成する信号に、必要な信号値調整またはタイミング調整を与えるインターフェース回路として動作する。これはメモリ装置18内で所望のテストを行うのに必要である。例えば、受けるメモリ・アクセス命令と実行するメモリ・アクセス命令の間に異なる長さのパイプライン遅延を挿入することにより、異なる待ち時間の信号を与える。ディスパッチ・コントローラ24の別の重要な役割は、自己テスト・コントローラ10が生成した物理的メモリ・アドレス信号を、メモリ装置18を駆動するのに必要な論理的メモリ・アドレス信号にマッピングすることである。ディスパッチ・コントローラ24が特定のメモリ装置18用に特に設計された場合は、このマッピングをその設計に含める。別の実施の形態では、ディスパッチ・コントローラ24自体が或る程度総称的であって、必要に応じて異なるマッピングを処理できることが望ましい。これをオプションで行うには、物理的メモリ・アドレス信号をラッチし、これを更に別個に設計して設けられたマッピング回路26に送った後、所望の論理的メモリ・アドレス信号を返して、ディスパッチ・コントローラ24内でラッチする。この別個に設けられるマッピング回路26を図2の点線内に示してこれがオプションであることを示す。理解されるように、マッピング回路はこのように別個に設けてもよいし、ディスパッチ・コントローラ24内に組み込んでもよい。どちらの場合も本発明の方法に含まれる。
ディスパッチ・コントローラ24は、メモリ装置18内でテストを行うのに必要な信号値を与える。これらの信号は、論理アドレス値と、データ値(一般に自己テスト命令内で指定されるデータ語の拡張形式である)と、任意の関連する制御信号を含む。またディスパッチ・コントローラ24は、要求されたメモリ・アクセス動作に対するメモリ装置18の応答を監視して、検出されたメモリ不良(読み返された不正なデータ・ビットなど)を自己テスト・コントローラ10に報告する。ディスパッチ・コントローラ24は、全ての検出された誤りまたはその他のパラメータを指定するデータをログするデータ・レジスタを含んでよい。このデータはテストが完了した後で、自己テスト・コントローラ10に取込んだ当該自己テスト命令を用いてディスパッチ・コントローラ24から外部の環境に読み取られる。この種の動作は、誤りの検出に関して細かいレベルの詳細が必要な場合の設計のデバッグに特に有用である。
図3は、図1と図2に示す実施の形態の動作の概略を示す流れ図である。ステップ28で、自己テスト命令を自己テスト・コントローラ10に直列にロードする。ステップ30で、図2に示すMBIST_RUN信号を外部から与えて、制御を自己テスト・コントローラ10に渡す。ステップ32で、自己テスト・コントローラ内のステートマシン22は、自己テスト命令レジスタ20内に記憶されている自己テスト命令からパターン選択ビットとエンジン制御ビットとデータ語ビットを読み取り、ステップ34で、指定されたテスト信号を生成する。理解されるように、自己テスト命令は一般に、テスト中のメモリ装置に与えて所望のテスト方法の少なくとも一部を実行する何千もの物理的メモリ・アドレス信号値とデータ値を生成する長いシーケンスを指定する。
特定の自己テスト命令の実行を完了した後、ステップ36で、返した結果が合格か不合格かをテストをする。不合格の結果を返した場合は処理はステップ38に進み、任意の所望の不合格活動をトリガする。結果が合格の場合はその自己テスト命令を直ぐ終了する。
理解されるように、図3の流れ図は単一自己テスト命令の実行を示す。実際にはメーカまたはユーザは、特定の設計および製作環境に特に適したテスト方法を指定するのに必要な自己テスト命令の長いシーケンスの形でテスト方法を構築するのが普通である。このように多数の自己テスト命令を自己テスト・コントローラ10にロードして、図3に示す処理を多数行う。パターン集合を制御するのにデータの保持や、外乱の読取りや、iddqテストを行う。
理解されるように、ユーザによっては自分のテスト方法を特注で指定することを希望しないかも知れず、従って、単一自己テスト命令を用いて指定され単一の簡単な実行/不実行の結果値を返す上に述べた省略時テスト方法に依存するかも知れない。
理解されるように、図3の流れ図は単一自己テスト命令の実行を示す。実際にはメーカまたはユーザは、特定の設計および製作環境に特に適したテスト方法を指定するのに必要な自己テスト命令の長いシーケンスの形でテスト方法を構築するのが普通である。このように多数の自己テスト命令を自己テスト・コントローラ10にロードして、図3に示す処理を多数行う。パターン集合を制御するのにデータの保持や、外乱の読取りや、iddqテストを行う。
理解されるように、ユーザによっては自分のテスト方法を特注で指定することを希望しないかも知れず、従って、単一自己テスト命令を用いて指定され単一の簡単な実行/不実行の結果値を返す上に述べた省略時テスト方法に依存するかも知れない。
図4は自己テスト・コントローラ10から物理的メモリ・アドレス信号40を受ける方法を示す。これはマッピング回路42が処理し、テストするメモリ装置を駆動する適当な論理的メモリ・アドレス信号44を生成する。簡単な装置では、物理的メモリ・アドレス信号を論理的メモリ・アドレス信号に1対1にマッピングする。物理的メモリ・アドレス信号と論理的メモリ・アドレス信号の関係がより複雑な場合もあるが、それでも設計が比較的簡単で容易なマッピング回路42で達成できる。
図5は提供されるアドレス信号マッピングの例を示す。テストするメモリ装置は2個のメモリ配列で形成し、それぞれ32行x8列を含む。論理アドレスは9ビット値である。最上位論理アドレス・ビットLA[8]を用いてマルチプレクサを制御して、2個のメモリ配列のどちらかを選択する。論理アドレスの最下位3ビットLA[2:0]を用いて列を選択する。残りの論理アドレス・ビットLA[7:3]を用いて行を選択する。この関係と装置を図5の上部に示す。
図5の中央部は図2と同じで、マクロセルを示す。マクロセルはSOC設計(自分のSOCインターフェースを有する)の一部であり、また自己テスト・コントローラ10とディスパッチ・コントローラ24と上に説明した2ブロックで形成するメモリ装置を含む。自己テスト・コントローラ10はメモリ装置を、5ビットの行アドレスXaddrで表される32行を有するメモリ位置の配列として処理する。メモリ位置の列は、この列が物理的装置内の低次ブロック内にあるか高次のブロック内にあるかに関わらず、4ビット・アドレスYaddrで表される。図5の例では、マッピング回路はSOCインターフェースに取り付けられた特注の回路を介してディスパッチ・コントローラ24の外部に設けられる。特注のマッピング回路をこのレベルで取り付けることにより、この回路の変更と設計を容易に行うことができる。図に示す例では、物理的メモリ・アドレス信号をディスパッチ回路24内にラッチし、次に別個のマッピング回路に送る。マッピング回路内では、Yaddrフィールドの最下位3ビットは論理アドレスの最下位3ビットLA[2:0]を形成する。Yaddr値の最上位ビットは論理アドレスの最上位ビットLA[8]を形成する。行アドレス5ビット値Xaddrは論理アドレスのビットLA[7:3]を形成する。このようにして構築された論理アドレスLA[8:0]はマッピング回路からディスパッチ・コントローラ24に戻されて再びラッチされた後、メモリ装置に与えられて所望のテストを行う。
上に述べた方法の詳細は次の通りである。
内容
1 この文書について
1.1 変更履歴
1.2 参照文献
1.3 用語と略語
2
2.1 範囲
2.2 概要
2.3 MBIST構造
2.3.1 概要
2.3.2 MBISTユーザ・インターフェース(BISTコントローラへのテ
スト・アクセス)
2.4 MBIST命令レジスタ
2.4.1 配列イネーブルとフラグ<?:16>(ニブル増分でなければならない)
2.4.2 データ語<3:0>
2.4.3 パターン/アルゴリズムの選択<9:4>
2.4.3.1 定義
2.4.3.2 BISTパターン仕様
2.4.4 エンジン制御<15:10>
2.5 MBISTメモリ・インターフェース
2.5.1 メモリBISTインターフェース定義
2.5.2 MBISTインターフェース設計規則
2.6 MBISTディスパッチ・ユニット
2.6.1 ディスパッチ・ユニット・インターフェース
2.6.2 アドレス・スクランブリング
2.6.3 サイズ変動
2.7 設計パイロット・プログラム
内容
1 この文書について
1.1 変更履歴
1.2 参照文献
1.3 用語と略語
2
2.1 範囲
2.2 概要
2.3 MBIST構造
2.3.1 概要
2.3.2 MBISTユーザ・インターフェース(BISTコントローラへのテ
スト・アクセス)
2.4 MBIST命令レジスタ
2.4.1 配列イネーブルとフラグ<?:16>(ニブル増分でなければならない)
2.4.2 データ語<3:0>
2.4.3 パターン/アルゴリズムの選択<9:4>
2.4.3.1 定義
2.4.3.2 BISTパターン仕様
2.4.4 エンジン制御<15:10>
2.5 MBISTメモリ・インターフェース
2.5.1 メモリBISTインターフェース定義
2.5.2 MBISTインターフェース設計規則
2.6 MBISTディスパッチ・ユニット
2.6.1 ディスパッチ・ユニット・インターフェース
2.6.2 アドレス・スクランブリング
2.6.3 サイズ変動
2.7 設計パイロット・プログラム
範囲
この仕様は、メモリBISTをハードおよびソフトのコア製品で実現したものの概要を示す。この仕様はARM内の全ての新設計の青写真となるものであって、最終目的は再使用可能で一定のメモリBIST構造と、全ての顧客(ARM内部を含む)用のメモリBISTインターフェースを作成することである。
この仕様は、メモリBISTをハードおよびソフトのコア製品で実現したものの概要を示す。この仕様はARM内の全ての新設計の青写真となるものであって、最終目的は再使用可能で一定のメモリBIST構造と、全ての顧客(ARM内部を含む)用のメモリBISTインターフェースを作成することである。
概要
メモリBIST構造の機能性はハードおよびソフトのコア内に置く必要がある。なぜなら、メモリ・テスト・インターフェースを非クリティカル・パスに置くのがARMの希望だからである。この目的は、物理的配列からnパイプライン段離れた書込み経路と読取り経路にアクセスすることにより達成される。配列テストの質を最高にするには配列の物理的マッピングが必要であり、またソフト・コアはアドレス・ポートを与えて、物理的形態が分かったときにこれに適合するように最終ユーザがアドレス・ピンを再設定できるようにする。
メモリBIST構造の機能性はハードおよびソフトのコア内に置く必要がある。なぜなら、メモリ・テスト・インターフェースを非クリティカル・パスに置くのがARMの希望だからである。この目的は、物理的配列からnパイプライン段離れた書込み経路と読取り経路にアクセスすることにより達成される。配列テストの質を最高にするには配列の物理的マッピングが必要であり、またソフト・コアはアドレス・ポートを与えて、物理的形態が分かったときにこれに適合するように最終ユーザがアドレス・ピンを再設定できるようにする。
ARMはオプションのメモリBISTコントローラをソフト・コアの形で提供し、また特注の形をハード・コアで提供する(オプションではない)。メモリBISTアルゴリズムに関して全ての最終ユーザが自分の考えを持っているのは明らかである。ARMの目的は、種々の不良の程度と種類をテストする標準および特注のアルゴリズムを提供することである。かかるパターンは全ての最終ユーザのテスト方法に完全に適合するわけではないが、最終ユーザが新しい方法を作成する必要がないほど十分な機能を有しているはずである。
この仕様で注目すべきインターフェースが2つある。第1はユーザ・インターフェースである。ユーザ・インターフェースは将来の拡張を考えて指定する。このインターフェースによりロードされる主命令レジスタと同様に、どのコアでも使い方は同じである。このためどの製品ラインでも見かけや感じが同じである。第2のインターフェースはメモリ・アクセス点に存在する。共通のインターフェースを持つ全ての将来のARMコアについて最終ユーザが自分のBIST方式を設計できるようにすると共に、当社の内部BISTエンジンの要求を満たすためには、種々のコアに共通のインターフェースを持つことが重要である。
この文書は配列バイパスまたは制御などの特定のATPGテストのニーズに応えるものではなく、ATPGテスト可能性設計方式に関わらず必要な2つの機能を含むものである。
この文書は配列バイパスまたは制御などの特定のATPGテストのニーズに応えるものではなく、ATPGテスト可能性設計方式に関わらず必要な2つの機能を含むものである。
MBIST構造
概要
ARMメモリBIST方式は物理的にマッピングされた配列でテストを行う機能を中心にして、パターンの有効性を高める。ハード・コアは必ずX次元(行/検出アンプとの間の距離)とY次元(列すなわち検出アンプの選択)に物理的にマッピングされる。ソフト・コアは、メモリ・テスト・インターフェースから、コアとメモリ・インターフェースで与えられる論理アドレスへの文書化されたマッピングを有する。これは、
1) インターフェース毎にBIST_ディスパッチ・ユニットをスクランブルすることにより物理的マッピングを行って目的のマッピングに合わせるか、
2) コンパイルされたRAM内で強制的に物理的マッピングを行って所定のARMマッピングに合わせる、
ためにインテグレータが実行すべきものである(テスト効率を最大にするため)。
概要
ARMメモリBIST方式は物理的にマッピングされた配列でテストを行う機能を中心にして、パターンの有効性を高める。ハード・コアは必ずX次元(行/検出アンプとの間の距離)とY次元(列すなわち検出アンプの選択)に物理的にマッピングされる。ソフト・コアは、メモリ・テスト・インターフェースから、コアとメモリ・インターフェースで与えられる論理アドレスへの文書化されたマッピングを有する。これは、
1) インターフェース毎にBIST_ディスパッチ・ユニットをスクランブルすることにより物理的マッピングを行って目的のマッピングに合わせるか、
2) コンパイルされたRAM内で強制的に物理的マッピングを行って所定のARMマッピングに合わせる、
ためにインテグレータが実行すべきものである(テスト効率を最大にするため)。
メモリBIST構造は、制御信号をコア内の全ての配列に分配する単一メモリBISTテスト・エンジンを中心とする。コア毎に1つのメモリBISTを作成すると仮定する。ただし、多数のコアにまたがってエンジンを統合することもできる。コア毎に2個のメモリBISTエンジンを設けることは可能であるが、テスタとメモリBISTコントローラとの間のテスト・インターフェースはシステム・インテグレータが管理し選択しなければならない。テスト信号の分配と経路選択の影響は、メモリBISTコントローラから出る4ビットのデータ語バスを用いることにより最小になる。データ語の拡張とテストは、mBIST_ディスパッチと呼ぶ特殊なユニットで行われる。これは、メモリBISTコントローラとメモリBISTテスト・インターフェースとの接着論理(glue logic)として働く。この接着論理は、アドレス・スクランブリング(物理的空間へのマッピング)と、特殊化されたパイプライニング(目標の配列に対してローカル)と、データ語の比較と、テスト不合格データロギングを行う。これにより、通常、集中化されたBISTコントローラに関連する過大な経路選択オーバヘッドを大幅に減らすことができる。
接着論理を含むディスパッチ・ユニットは設計に特有の形態を与え、しかもメモリ・テスト・インターフェースとBISTコントローラを、どの設計でも使える固定された標準にすることができる。全ての将来のARMコアでそのまま再使用可能なBISTコントローラを有することにより、どの設計においても最終ユーザ・テスト・インターフェースを標準化することができる。
メモリBISTは、メモリBISTインターフェースへのアクセスを可能にするコアのテスト・インターフェースを形成することにより開始する。テスト・アルゴリズムの進行(アドレス満了フラグにより測定する)と合格/不合格状態は4ビットの出力専用データ・バス(マクロセルへのポートを有する)で連続的に送られる。更なるデータロギング情報は、BISTコントローラまたは不合格ユニットのディスパッチ・ユニットのシフト・アクセス(同じ外部BISTインターフェースを用いる)により得ることができる。ディスパッチ・ユニット内のデータロギングおよび追跡支援の量は設計に依存し、また設定可能である。
メモリBISTは、メモリBISTインターフェースへのアクセスを可能にするコアのテスト・インターフェースを形成することにより開始する。テスト・アルゴリズムの進行(アドレス満了フラグにより測定する)と合格/不合格状態は4ビットの出力専用データ・バス(マクロセルへのポートを有する)で連続的に送られる。更なるデータロギング情報は、BISTコントローラまたは不合格ユニットのディスパッチ・ユニットのシフト・アクセス(同じ外部BISTインターフェースを用いる)により得ることができる。ディスパッチ・ユニット内のデータロギングおよび追跡支援の量は設計に依存し、また設定可能である。
各メモリBISTインターフェースは多数の配列を支援することができる。これらの各配列はBIST命令レジスタと不良ログ内で別個の配列として支援される。テストの実行中は、これらの配列もそのイネーブル線をYaddr空間に追加することによりテストすることができる。命令レジスタのイネーブル線により可能になる場合は、BISTディスパッチ・ユニットはイネーブル線をより高いアドレス・ビットにマッピングすることができる。注意すべきであるが、これはこれらの目標配列の直列テストまたは並列テストの通常の定義とは一致せず、配列はより大きな全体配列のセグメントとして処理される。
図6は、集中化されたBISTコントローラとディスパッチ・ユニットとを示す。
MBISTテスト・インターフェースの定義は次の表の通りである。注目すべきは、テスト構成をシフト・ローディングするためのアクセス機構である。このシフト・プロセスはコア・クロック領域で実行される。コアの動作が進行するに従って、低速で手動シフトを行うため(テスタ・インターフェースの制限により)のpll切替え機構と、メモリ・テストを高速で行うため(クロック速度がテスタ・サイクルを超える場合、またはパッド・タイミング制限が最大クロッキング速度を抑える場合)の高速pllクロッキングへの切換えスイッチが必要である。将来の移行経路を支援するためにジャガー(Jaguar)用の4分割シフティング・クロックを形成すると良いかも知れない。
MBISTテスト・インターフェースの定義は次の表の通りである。注目すべきは、テスト構成をシフト・ローディングするためのアクセス機構である。このシフト・プロセスはコア・クロック領域で実行される。コアの動作が進行するに従って、低速で手動シフトを行うため(テスタ・インターフェースの制限により)のpll切替え機構と、メモリ・テストを高速で行うため(クロック速度がテスタ・サイクルを超える場合、またはパッド・タイミング制限が最大クロッキング速度を抑える場合)の高速pllクロッキングへの切換えスイッチが必要である。将来の移行経路を支援するためにジャガー(Jaguar)用の4分割シフティング・クロックを形成すると良いかも知れない。
32クロック用のMBIST_SHIFTをアサートし、LSBを最初に、MSBを最後に送ることにより、テスト構成を32ビット・レジスタにロードする。このレジスタ・ローディング中はMBIST_RUNを非活動状態にしなければならない。MBIST_SHIFTをデアサート(de-asserted)にするとレジスタ・ローディングの実行が終了する。MBIST_RUNをアサートすると選択されたメモリ・テストを開始し、テストの終了はMBIST_DOUT<3>ビットで知らせる。
テスト中は、MBIST_DOUT<1:0>はトグルしてアルゴリズムの進行をマークする。MBIST_DOUT<2>すなわち不合格ビットはスティッキー(sticky)である。
MBIST_SHIFTはMBIST_RUNによりゲートされ、エンジン内の未知の危険を防ぐ。
MBIST_DOUT<0>は(MBIST_SHIFT &〜 MBIST_RUN)のとき命令レジスタのシフト・データ・アウト経路を兼ねる。
テスト中は、MBIST_DOUT<1:0>はトグルしてアルゴリズムの進行をマークする。MBIST_DOUT<2>すなわち不合格ビットはスティッキー(sticky)である。
MBIST_SHIFTはMBIST_RUNによりゲートされ、エンジン内の未知の危険を防ぐ。
MBIST_DOUT<0>は(MBIST_SHIFT &〜 MBIST_RUN)のとき命令レジスタのシフト・データ・アウト経路を兼ねる。
配列イネーブルとフラグ<39:24>
コア内のテストされる各配列はTRM文書の指定に従ってイネーブル・ビットが割り当てられる。これは、全ての配列を並列にテストするか、必要に応じて柔軟に配列を個別にテストするかを示す。例えば、最大パワーの関係からパス当たり50%の配列だけテストする場合がある。別の例では、ATPGまたはiddqで用いるために種々の配列を初期化して種々の背景パターンにする。配列はメモリ・テスト・インターフェースの数で定義されるのではなく、個別にテストされる配列の数により定義される(単一メモリ・テスト・インターフェースは多数の配列イネーブルを有してもよい)。
命令レジスタのこの部分は第2の目的も有する。外部のユーザには外部インターフェース上に単一の不良フラグだけが見える。レジスタのこの部分を走査すれば各配列のP/F状態が分かり、不良配列を更に識別することができる。
コア内のテストされる各配列はTRM文書の指定に従ってイネーブル・ビットが割り当てられる。これは、全ての配列を並列にテストするか、必要に応じて柔軟に配列を個別にテストするかを示す。例えば、最大パワーの関係からパス当たり50%の配列だけテストする場合がある。別の例では、ATPGまたはiddqで用いるために種々の配列を初期化して種々の背景パターンにする。配列はメモリ・テスト・インターフェースの数で定義されるのではなく、個別にテストされる配列の数により定義される(単一メモリ・テスト・インターフェースは多数の配列イネーブルを有してもよい)。
命令レジスタのこの部分は第2の目的も有する。外部のユーザには外部インターフェース上に単一の不良フラグだけが見える。レジスタのこの部分を走査すれば各配列のP/F状態が分かり、不良配列を更に識別することができる。
maxYaddr<23:20>
maxYaddrフィールドにより、ユーザはテスト中に用いる最大Yaddr(列アドレスともいう)を指定することができる。種々のキャッシュ・サイズのコア・デリバティブを用いるとき、またはコア内の異なるサイズの配列をテストするとき、これは特に有用である。このBISTコントローラ構造は異なるサイズの多数の配列を同時にテストすることを妨げない。このようなテストを行うには、ユーザは最大配列に等しい最大アドレス・サイズをプログラムし、ディスパッチ・ユニットは小さな配列の範囲外アドレスを阻止する(RE,WEをゲートすることにより)。
次の表はレジスタ設定と、その結果のアドレス・サイズを示す。
maxYaddrフィールドにより、ユーザはテスト中に用いる最大Yaddr(列アドレスともいう)を指定することができる。種々のキャッシュ・サイズのコア・デリバティブを用いるとき、またはコア内の異なるサイズの配列をテストするとき、これは特に有用である。このBISTコントローラ構造は異なるサイズの多数の配列を同時にテストすることを妨げない。このようなテストを行うには、ユーザは最大配列に等しい最大アドレス・サイズをプログラムし、ディスパッチ・ユニットは小さな配列の範囲外アドレスを阻止する(RE,WEをゲートすることにより)。
次の表はレジスタ設定と、その結果のアドレス・サイズを示す。
maxXaddr<19:16>
Yアドレスと同様に、Xアドレス・フィールドはアドレス指定可能な行の最大数を選択する。ビット線RCのために、512を超える行の深さは通常は実用的でないが、ユーザがトポロジ内の平面特性をXアドレス空間にマッピングしたい場合は、ここでは最大2kの空間が支援される(平面すなわちブロック・アドレスはYアドレス空間の上にマッピングすることを勧める。さもないと、Xアドレス空間に基づくビット線ストレス・テストの効率が悪くなる)。
Yアドレスと同様に、Xアドレス・フィールドはアドレス指定可能な行の最大数を選択する。ビット線RCのために、512を超える行の深さは通常は実用的でないが、ユーザがトポロジ内の平面特性をXアドレス空間にマッピングしたい場合は、ここでは最大2kの空間が支援される(平面すなわちブロック・アドレスはYアドレス空間の上にマッピングすることを勧める。さもないと、Xアドレス空間に基づくビット線ストレス・テストの効率が悪くなる)。
「実時間不合格ビット」は、テスト/試験室要員がソフト不合格行動を監視したいときに試験室で用いるためのものである。
「アルゴリズム・パスの終了で停止」は、不合格アルゴリズム・セグメントの終了までテストを進行させる手段として与えられる。全ての配列項目をダウンロードするためにディスパッチ・ユニットが走査可能なテスト・アクセス機構を備える場合、これはビット・マッピングに有用である。
「アルゴリズム・パスの終了で停止」は、不合格アルゴリズム・セグメントの終了までテストを進行させる手段として与えられる。全ての配列項目をダウンロードするためにディスパッチ・ユニットが走査可能なテスト・アクセス機構を備える場合、これはビット・マッピングに有用である。
ディスパッチ・ユニットを走査すると、選択されたディスパッチ・ユニット走査ポートはMBIST_RUNがアサートされたときにMBIST_DINとMBIST_DOUTの間に置かれる。MBIST_RUNがデアサートになるとアクセス禁止になる。ディスパッチ・ユニットにロードされた全ての動作はMBIST_RUNのデアサートのときに実行される。(注意: 効率を最大にするにはハンドシェイクの定義を改善する必要があり、またmBIST_RUNなどの特有の機能は暖機サイクルを必要とするので動作を完了するのに十分な時間を与える必要があり、適当なサイクル・カウントだけ内部オーバライド・リリースを遅らせれば恐らく十分である)。
ディスパッチ・ユニットはこのとき緩く定義されており、コアの必要に応じて構築される。ディスパッチ・ユニットは、最初の不合格アドレスや不合格ビットなどの最小のデータロギング情報を与えなければならない。この情報は、ディスパッチ・データログを走査することによりアクセス可能でなければならない。走査可能なディスパッチ・ユニット命令の使用はオプションである。
ディスパッチ・ユニットはこのとき緩く定義されており、コアの必要に応じて構築される。ディスパッチ・ユニットは、最初の不合格アドレスや不合格ビットなどの最小のデータロギング情報を与えなければならない。この情報は、ディスパッチ・データログを走査することによりアクセス可能でなければならない。走査可能なディスパッチ・ユニット命令の使用はオプションである。
パターン/アルゴリズム選択<9:4>
多くの標準パターンとARMが作成したビット線ストレス・パターンがテスト用に設けられている。未知の最終テスト設計で最も柔軟に対応できるように、アルゴリズムは断片的に作成されている。支援されるテストの領域は、実行/不実行、iddq、データ保持、ATPG、総合機能テスト、ストレス・テストなどである。次の表は支援されるパターンを示し、後のパラグラフはその使用法を示す。セグメント化されたテストを用いれば、工場内でのsoftbinおよび歩留まり追跡情報を最大にし、最終テスト設計を工場のメモリ・テストの考え方に最も良く合わせることができる。
多くの標準パターンとARMが作成したビット線ストレス・パターンがテスト用に設けられている。未知の最終テスト設計で最も柔軟に対応できるように、アルゴリズムは断片的に作成されている。支援されるテストの領域は、実行/不実行、iddq、データ保持、ATPG、総合機能テスト、ストレス・テストなどである。次の表は支援されるパターンを示し、後のパラグラフはその使用法を示す。セグメント化されたテストを用いれば、工場内でのsoftbinおよび歩留まり追跡情報を最大にし、最終テスト設計を工場のメモリ・テストの考え方に最も良く合わせることができる。
定義:
列 ビット線に並列の配列の次元(同じSenseAMP上)
行 語線に並列の配列の次元
行高速/Xfast 目標セルは次の列に移る前にビット線に沿って動く
列高速/Yfast 目標セルは行/語線の前にビット線対をまたがって動く
Xfast増分 目標セルが最も近い検出アンプから離れる
Xfast減分 目標セルが検出アンプから最も遠い点から近づく
Yfast増分 Yaddr空間が0から最大まで、東西方向に動く
Xfast減分 Yaddr空間が最大から0まで、増分の逆に動く
N アドレス指定可能な項目の数
列 ビット線に並列の配列の次元(同じSenseAMP上)
行 語線に並列の配列の次元
行高速/Xfast 目標セルは次の列に移る前にビット線に沿って動く
列高速/Yfast 目標セルは行/語線の前にビット線対をまたがって動く
Xfast増分 目標セルが最も近い検出アンプから離れる
Xfast減分 目標セルが検出アンプから最も遠い点から近づく
Yfast増分 Yaddr空間が0から最大まで、東西方向に動く
Xfast減分 Yaddr空間が最大から0まで、増分の逆に動く
N アドレス指定可能な項目の数
BISTパターン仕様:
全てのメモリBISTテストは物理的にマッピングされたアドレス空間に対して実行される。これは単に、最下位Xaddrが隣接する行の間で切り替わることを意味する(LSB+1は2行置きに切り替わる、など)。Yaddr空間も物理的にマッピングされる。これにより、供給されたパターンでメモリ不良を効率的にまたは直接探すことができる。
「writeCkbd」は実行されたXfastである。このパターンは1Nで、書込み専用である。データ極性はxor(Xaddr[0],Yaddr[0])で設定される。
「ReadCkbd」は実行されたXfastである。このパターンは1Nで、読取り専用である。データ極性はxor(Xaddr[0],Yaddr[0])で設定される。
「writeSolids」は実行されたXfastである。このパターンは1Nで、書込み専用である。データ極性=真。
「ReadSolids」は実行されたXfastである。このパターンは1Nで、読取り専用である。データ極性=真。
全てのメモリBISTテストは物理的にマッピングされたアドレス空間に対して実行される。これは単に、最下位Xaddrが隣接する行の間で切り替わることを意味する(LSB+1は2行置きに切り替わる、など)。Yaddr空間も物理的にマッピングされる。これにより、供給されたパターンでメモリ不良を効率的にまたは直接探すことができる。
「writeCkbd」は実行されたXfastである。このパターンは1Nで、書込み専用である。データ極性はxor(Xaddr[0],Yaddr[0])で設定される。
「ReadCkbd」は実行されたXfastである。このパターンは1Nで、読取り専用である。データ極性はxor(Xaddr[0],Yaddr[0])で設定される。
「writeSolids」は実行されたXfastである。このパターンは1Nで、書込み専用である。データ極性=真。
「ReadSolids」は実行されたXfastである。このパターンは1Nで、読取り専用である。データ極性=真。
「MarchC+」は次のシーケンスで実行されたXfastである。
1) write solids(配列初期化)incr
2) Rdata,Wdatabar,Rdatabar incr
3) Rdatabar,Wdata,Rdata incr
4) Rdata,Wdatabar,Rdatabar decr
5) Rdatabar,Wdata,Rdata decr
6) Rdata Verify decr
「RWR_Xmarch」は次のシーケンスで実行されたXfastである。
1) Write solid(配列を初期化)
2) Rdata/Wdatabar/Rdatabar inc
3) Rdatabar/Wdata/Rdata decrement
4) Rdata solid
「RWR_Ymarch」はRWR_Xmarchと同じシーケンスを有するが実行されたYfastである。
1) write solids(配列初期化)incr
2) Rdata,Wdatabar,Rdatabar incr
3) Rdatabar,Wdata,Rdata incr
4) Rdata,Wdatabar,Rdatabar decr
5) Rdatabar,Wdata,Rdata decr
6) Rdata Verify decr
「RWR_Xmarch」は次のシーケンスで実行されたXfastである。
1) Write solid(配列を初期化)
2) Rdata/Wdatabar/Rdatabar inc
3) Rdatabar/Wdata/Rdata decrement
4) Rdata solid
「RWR_Ymarch」はRWR_Xmarchと同じシーケンスを有するが実行されたYfastである。
「RW_Xmarch」は実行されたXfastである。この6Nパターンは次のシーケンスを有する。
1) Write Solid(配列を初期化)
2) Rdata/Wdatabar inc
3) Rdatabar/Wdata decrement
4) Rdata solid
「RW_Ymarch」は6Nで、RW_Xmarchと同じシーケンスで実行されたYfastである。
「pttnFail」は実行されたXfastである。WriteSolidパターンを実行し、次にReadSolidを実行する。不合格は、ReadSolid中にアドレス選択でデータ極性を逆にして注入する。このパターンは、BIST検出論理(目標の配列での)が機能することを確認するのに必要である。
1) Write Solid(配列を初期化)
2) Rdata/Wdatabar inc
3) Rdatabar/Wdata decrement
4) Rdata solid
「RW_Ymarch」は6Nで、RW_Xmarchと同じシーケンスで実行されたYfastである。
「pttnFail」は実行されたXfastである。WriteSolidパターンを実行し、次にReadSolidを実行する。不合格は、ReadSolid中にアドレス選択でデータ極性を逆にして注入する。このパターンは、BIST検出論理(目標の配列での)が機能することを確認するのに必要である。
「bang」は18Nで、実行されたXfastである。ビット線対上で多数の書込みと読取りを連続して実行する。
1)write solid(配列を初期化)、
* 2)read data target,write databar
target,6*write databar row0,incr
ement to next target Xfast
** 3)5*read databar target,write data
row0,read databar target,write d
ata target
4)read data(配列を確認)。
*このセグメントはビット線対を「バング」して、書込み後に正しい等化を保証する。等化/プレチャージが不十分な場合は、同じビット線対から逆のデータを読み取るときに読取りが遅くなる。自己計時するキャッシュでの読取りが遅いと、マーチCのようによく使われる「シングル・ショット」に見られない機能不良が発生する。
**このセグメントはビットセルを歩き、そのビット線対に逆のデータを書き込み、目標セルのデータを読み取るためのものである。この不良機構は6TのRAMセルでは余り用いられない(4TやDRAMに比べて)。
*,**「犠牲的(sacrificial)」行を用いると、グレーコード・パターン・シーケンスがないときに、Xaddr空間内のオープン・デコーダ不良を検出するのに役立つ(デコード・ブロックが小さいのでYaddrは構造的に不良の種類に入らない)。
*,**このパターンは不良のスタックも検出するが、その主な目的はメモリのアナログ特性をアドレス指定することである。
1)write solid(配列を初期化)、
* 2)read data target,write databar
target,6*write databar row0,incr
ement to next target Xfast
** 3)5*read databar target,write data
row0,read databar target,write d
ata target
4)read data(配列を確認)。
*このセグメントはビット線対を「バング」して、書込み後に正しい等化を保証する。等化/プレチャージが不十分な場合は、同じビット線対から逆のデータを読み取るときに読取りが遅くなる。自己計時するキャッシュでの読取りが遅いと、マーチCのようによく使われる「シングル・ショット」に見られない機能不良が発生する。
**このセグメントはビットセルを歩き、そのビット線対に逆のデータを書き込み、目標セルのデータを読み取るためのものである。この不良機構は6TのRAMセルでは余り用いられない(4TやDRAMに比べて)。
*,**「犠牲的(sacrificial)」行を用いると、グレーコード・パターン・シーケンスがないときに、Xaddr空間内のオープン・デコーダ不良を検出するのに役立つ(デコード・ブロックが小さいのでYaddrは構造的に不良の種類に入らない)。
*,**このパターンは不良のスタックも検出するが、その主な目的はメモリのアナログ特性をアドレス指定することである。
「実行/不実行」、30Nは、最終ユーザが自分のテスト方式を作成することを望まない場合にメモリ・テスト用に選択されるARMテスト・パッケージである。このパターンを選択すると、その後のテストは次に示すリストに従って実行する。これはその配列の合格/不合格状態を最終ユーザに示す。次に示すテスト・パッケージは配列の総合的機能テストを行う(データ保持や他のストレス・テストは含まない)。実行/不実行の一連のテストはメモリ・テストにおける社内のARMメモリ・テスト技術者の過去の経験の集大成である。
1) Perform wckbd 5’s
2) Rckbd 5’s
3) Wckbd a’s
4) Rckbd a’s
5) RWR_Ymarch 6’s
6) Bang 0’s
1) Perform wckbd 5’s
2) Rckbd 5’s
3) Wckbd a’s
4) Rckbd a’s
5) RWR_Ymarch 6’s
6) Bang 0’s
データ語<3:0>
テスト命令をロードするとき、ユーザはテスト・アルゴリズム中に用いられるルート・データ語を指定する(実行/不実行BISTアルゴリズム中は除く)。これにより、ユーザは初期化された配列内に記憶されている値(iddqまたはATPG)を選択し、または新しいデータ語を選択してマーチおよびビット線ストレス・テスト中の予期しない感度を探すことができる。
テスト命令をロードするとき、ユーザはテスト・アルゴリズム中に用いられるルート・データ語を指定する(実行/不実行BISTアルゴリズム中は除く)。これにより、ユーザは初期化された配列内に記憶されている値(iddqまたはATPG)を選択し、または新しいデータ語を選択してマーチおよびビット線ストレス・テスト中の予期しない感度を探すことができる。
MBISTメモリ・インターフェース
メモリ・インターフェースの定義を下の表に示す。ARMがそのコア用のメモリを提供するかどうかに関わらず、コア上の全てのメモリ装置でこれを用いる必要がある。これにより、ユーザはARMのBISTコントローラを特に修正せずに用いることができる。ATPG関連の支援もここに定義されている。
*関係する全てのスクランブリングをmBIST_ディスパッチが処理する場合は、単一アドレス・バスを有する。
メモリ・インターフェースの定義を下の表に示す。ARMがそのコア用のメモリを提供するかどうかに関わらず、コア上の全てのメモリ装置でこれを用いる必要がある。これにより、ユーザはARMのBISTコントローラを特に修正せずに用いることができる。ATPG関連の支援もここに定義されている。
*関係する全てのスクランブリングをmBIST_ディスパッチが処理する場合は、単一アドレス・バスを有する。
メモリBISTインターフェースの定義
「MTestSel<?:0>」
メモリBISTインターフェースが2つ以上の下流の配列を支援する場合は、目標とする配列を選択するのに別個のイネーブルが必要である。この信号は多数の修理可能な領域を有する単一配列にも必要である。単一配列インターフェースはこの信号の使用またはポートを必要としない。
「MTestWEx」
この信号は(MTestSelまたはMTestONにより内部で阻止されない場合は)メモリ・テスト配列インターフェースに書込み動作を実施中であることを示す。アドレスおよびデータ情報はこの信号と同時に送られる。書込み動作を完了するのに2サイクルかかる場合は、この信号を「MTestWE2」で表す。多数の配列がそのインターフェースで支援される場合(全てが異なるパイプライン遅延を有する)はxを用いる(「MTestWEx」)。信号名の中にパイプライン遅延の長さを用いることにより、BISTインターフェース・ユニットまたは最終ユーザ自身によるBIST統合が容易になる。
「MTestSel<?:0>」
メモリBISTインターフェースが2つ以上の下流の配列を支援する場合は、目標とする配列を選択するのに別個のイネーブルが必要である。この信号は多数の修理可能な領域を有する単一配列にも必要である。単一配列インターフェースはこの信号の使用またはポートを必要としない。
「MTestWEx」
この信号は(MTestSelまたはMTestONにより内部で阻止されない場合は)メモリ・テスト配列インターフェースに書込み動作を実施中であることを示す。アドレスおよびデータ情報はこの信号と同時に送られる。書込み動作を完了するのに2サイクルかかる場合は、この信号を「MTestWE2」で表す。多数の配列がそのインターフェースで支援される場合(全てが異なるパイプライン遅延を有する)はxを用いる(「MTestWEx」)。信号名の中にパイプライン遅延の長さを用いることにより、BISTインターフェース・ユニットまたは最終ユーザ自身によるBIST統合が容易になる。
「MTestREx」
テスト中の配列の読取りイネーブルである。詳細はMTestWEx信号を参照のこと。
「MTestADDR<?:0>*」
テスト中の配列内の目標アドレスである。信号の広さは目標配列内のアドレス指定可能な要素の最大数と同じである。
テスト中の配列の読取りイネーブルである。詳細はMTestWEx信号を参照のこと。
「MTestADDR<?:0>*」
テスト中の配列内の目標アドレスである。信号の広さは目標配列内のアドレス指定可能な要素の最大数と同じである。
「MTestDINx, MTestDOUTy」
BIST動作のためのデータイン・ポートとデータアウト・ポートである。MBISTDOUTは、MBISTRExの定義に従って「x+y」サイクル後に送られる。例:MBISTRE3は、MBISTRE3情報がアサートされてから3クロック後に読取り動作を行うことを指定する。データアウト・パイプラインは自身のオフセットを有し、これを「y」で表す。多数の配列が単一のインターフェースで支援され、またいくつかの配列のデータ幅が最大配列幅より小さい場合は、全ての読取り動作において全ての未使用データ・ビットで「0」を送ることがメモリBISTインターフェースに要求される。データイン・バスとデータアウト・バスが下流の配列に依存して種々のパイプライン・オフセットを有する場合は、「x」を用いてオフセットを指定しなければならない。
BIST動作のためのデータイン・ポートとデータアウト・ポートである。MBISTDOUTは、MBISTRExの定義に従って「x+y」サイクル後に送られる。例:MBISTRE3は、MBISTRE3情報がアサートされてから3クロック後に読取り動作を行うことを指定する。データアウト・パイプラインは自身のオフセットを有し、これを「y」で表す。多数の配列が単一のインターフェースで支援され、またいくつかの配列のデータ幅が最大配列幅より小さい場合は、全ての読取り動作において全ての未使用データ・ビットで「0」を送ることがメモリBISTインターフェースに要求される。データイン・バスとデータアウト・バスが下流の配列に依存して種々のパイプライン・オフセットを有する場合は、「x」を用いてオフセットを指定しなければならない。
「MTestON」
これはグローバル・オーバライド信号で、BIST動作が直ぐ起こることをインターフェースと下流の論理に知らせる。この信号は、キャッシュ論理内でScanMode/ScanEnに次いで2番目に優先度の高い信号である。正規関数/ミッション・モード動作の優先度は更に低い。
「ArrayDisable」
ATPG信号であって、これが活動状態のときは全ての配列への書込みと読取りを阻止する。配列の初期化データの安全を保証するため、阻止は全ての走査可能な状態要素の後に行わなければならない。この信号はメモリBISTディスパッチ・ユニット内で生成され、IDDQtestとScanEnの「論理和」関数である。IDDQtestはiddq走査および収集中に状態を保存するのに用いられ、ScanEnはATPGのRAMテストを行うときにATPGロード/アンロード中の状態を保存するのに用いられる。
*関係する全てのスクランブリングをmBIST_ディスパッチが処理する場合には、単一アドレス・バスを有する。これは研究中である。
これはグローバル・オーバライド信号で、BIST動作が直ぐ起こることをインターフェースと下流の論理に知らせる。この信号は、キャッシュ論理内でScanMode/ScanEnに次いで2番目に優先度の高い信号である。正規関数/ミッション・モード動作の優先度は更に低い。
「ArrayDisable」
ATPG信号であって、これが活動状態のときは全ての配列への書込みと読取りを阻止する。配列の初期化データの安全を保証するため、阻止は全ての走査可能な状態要素の後に行わなければならない。この信号はメモリBISTディスパッチ・ユニット内で生成され、IDDQtestとScanEnの「論理和」関数である。IDDQtestはiddq走査および収集中に状態を保存するのに用いられ、ScanEnはATPGのRAMテストを行うときにATPGロード/アンロード中の状態を保存するのに用いられる。
*関係する全てのスクランブリングをmBIST_ディスパッチが処理する場合には、単一アドレス・バスを有する。これは研究中である。
MBISTインターフェース設計規則
・ MTestONは全ての正規関数動作をオーバライドする。
・ MTestONは最初の動作の少なくとも4サイクル前にアサートされ、最後の動作が完了するまで解除されない。BISTテスト期間中は[オン]のままである。
・ 装置モード(関数、ATPG、BISTなど)に関わらず、ArrayDisableは全ての書込み/読取り活動を阻止し、最後の操作可能な状態要素の後に起こる。
・ BISTノーオペレーションが起こることがある。RE/WEが共に非活動状態のときのBISTサイクルとして定義される。
・ バック・ツー・バック動作を支援しなければならない。これはR/W/Addrの任意の組合わせで予想される。
・ F/Fから与えられる全ての動作データと、読取りデータとは、F/F内にサンプリングされる(mBISTはフロップに基づく設計である)。
・ 全てのBIST動作は最高速度で起こり得る。
・ Addr信号とRE/WE信号は同じクロック・サイクルで与えられる。必要であればデータインは異なる段階で注入してよい。
・ 全てのRE/WE/Data信号は信号記述で指定されたサイクル接尾部指示子を有しなければならない。
・ 全ての読取り動作はREアサートからデータアウトまで8サイクル以内に完了しなければならない(パイプライン注入点は妥当な点でなければならない)。
・ MTestONは全ての正規関数動作をオーバライドする。
・ MTestONは最初の動作の少なくとも4サイクル前にアサートされ、最後の動作が完了するまで解除されない。BISTテスト期間中は[オン]のままである。
・ 装置モード(関数、ATPG、BISTなど)に関わらず、ArrayDisableは全ての書込み/読取り活動を阻止し、最後の操作可能な状態要素の後に起こる。
・ BISTノーオペレーションが起こることがある。RE/WEが共に非活動状態のときのBISTサイクルとして定義される。
・ バック・ツー・バック動作を支援しなければならない。これはR/W/Addrの任意の組合わせで予想される。
・ F/Fから与えられる全ての動作データと、読取りデータとは、F/F内にサンプリングされる(mBISTはフロップに基づく設計である)。
・ 全てのBIST動作は最高速度で起こり得る。
・ Addr信号とRE/WE信号は同じクロック・サイクルで与えられる。必要であればデータインは異なる段階で注入してよい。
・ 全てのRE/WE/Data信号は信号記述で指定されたサイクル接尾部指示子を有しなければならない。
・ 全ての読取り動作はREアサートからデータアウトまで8サイクル以内に完了しなければならない(パイプライン注入点は妥当な点でなければならない)。
・ 多数の配列がインターフェースで支援される場合は、アドレスとデータの調整はディスパッチ・ユニットで行う(例: アドレス指定された配列はBIST_エンジンより小さい……BIST_ディスパッチは範囲外のアドレスについてRE/WEを阻止する)。
・ 最も右のビットがLSBである到着BISTADDRにwrtをアドレス指定するときは、全ての可変サイズの配列を右に整えなければならない。
・ 動作の設定/保持時間に関係なく、ArrayDisableとMTestONだけをトグルすると仮定してよい。インターフェースでの全ての他の制御信号は各サイクルで未知と考えなければならない。
・ mBISTインターフェースと実際の配列インターフェースの間でアドレス・スクランブリングを行ってはならない。スクランブリングはディスパッチ・ユニットで行う。
・ 各特有の配列インターフェースの下流の全ての配列で物理的マッピング特性を保持しなければならない(配列が所定のインターフェースで支援されるかどうかに関わらず、XaddrのLSBは常に隣接行の間で選択する)。
・ 最も右のビットがLSBである到着BISTADDRにwrtをアドレス指定するときは、全ての可変サイズの配列を右に整えなければならない。
・ 動作の設定/保持時間に関係なく、ArrayDisableとMTestONだけをトグルすると仮定してよい。インターフェースでの全ての他の制御信号は各サイクルで未知と考えなければならない。
・ mBISTインターフェースと実際の配列インターフェースの間でアドレス・スクランブリングを行ってはならない。スクランブリングはディスパッチ・ユニットで行う。
・ 各特有の配列インターフェースの下流の全ての配列で物理的マッピング特性を保持しなければならない(配列が所定のインターフェースで支援されるかどうかに関わらず、XaddrのLSBは常に隣接行の間で選択する)。
MBISTディスパッチ・ユニット
各BISTコントローラとメモリ・テスト・インターフェースの間にディスパッチ・ユニットが必要である。このブロックは、標準化されたフロントエンドBISTコントローラと標準化されたメモリ・テスト・インターフェースの間の接着論理として働く。また配列への手動デバッグ・アクセスに用いられ、またテスト・インターフェースから読み取ったデータの比較とデータロギングを行う。
各BISTコントローラとメモリ・テスト・インターフェースの間にディスパッチ・ユニットが必要である。このブロックは、標準化されたフロントエンドBISTコントローラと標準化されたメモリ・テスト・インターフェースの間の接着論理として働く。また配列への手動デバッグ・アクセスに用いられ、またテスト・インターフェースから読み取ったデータの比較とデータロギングを行う。
注:
1. BISTData<3:0>は全メモリ・ビット幅にわたって直線的に拡張される。ディスパッチ・ユニット内でのこのデータのパイプライニングは<3:0>として行われ、必要に応じて拡張される。この拡張語を用いて、テスト中のメモリの全バス幅を駆動しまたは比較する。
2. DispatchDoutはディスパッチ・ユニットの命令レジスタまたはデータログ・レジスタのLSBに続く(シフト・イネーブルにより選択される)。
3. 全ての定義された信号について、メモリ・テスト・インターフェースはディスパッチ・ユニットで、そしてディスパッチ・ユニットだけで駆動しなければならない(BISTコントローラに直接接続しない。なぜなら、ディスパッチ・ユニットはタイミングの安全のためにコントローラ・データをパイプラインするからである)。
4. ディスパッチ内の命令レジスタ機能の支援は、設計に特有である。データロギング/修理の情報はディスパッチ・ユニット内で生成され保持され、設計に特有である。
5. 多数のイネーブルが選択した配列は、イネーブルを高次のYaddrにマッピングすることにより同時にテストすることができる。これは実行/不実行のテストに非常に望ましい。
1. BISTData<3:0>は全メモリ・ビット幅にわたって直線的に拡張される。ディスパッチ・ユニット内でのこのデータのパイプライニングは<3:0>として行われ、必要に応じて拡張される。この拡張語を用いて、テスト中のメモリの全バス幅を駆動しまたは比較する。
2. DispatchDoutはディスパッチ・ユニットの命令レジスタまたはデータログ・レジスタのLSBに続く(シフト・イネーブルにより選択される)。
3. 全ての定義された信号について、メモリ・テスト・インターフェースはディスパッチ・ユニットで、そしてディスパッチ・ユニットだけで駆動しなければならない(BISTコントローラに直接接続しない。なぜなら、ディスパッチ・ユニットはタイミングの安全のためにコントローラ・データをパイプラインするからである)。
4. ディスパッチ内の命令レジスタ機能の支援は、設計に特有である。データロギング/修理の情報はディスパッチ・ユニット内で生成され保持され、設計に特有である。
5. 多数のイネーブルが選択した配列は、イネーブルを高次のYaddrにマッピングすることにより同時にテストすることができる。これは実行/不実行のテストに非常に望ましい。
アドレス・スクランブリング
ハード・コアは既知の物理アドレス空間から論理アドレス空間へのマッピングを有し、これに従ってBIST_ディスパッチ・ユニット内でスクランブルする必要がある。これはディスパッチ・ユニットで行う。なぜなら、アドレス・スクランブルの要求はメモリ・テスト・インターフェースによって異なるからである。
ソフト・コアとコンパイルされたRAMは既知のアドレス指定アップフロントを有しないので、特にメモリをコンパイルする前にコア設計を合成する場合は、スクランブリングをrtlで行うことはできない。スクランブリングは、物理的マッピングがARMのBISTアルゴリズムと共に存在することを確認する必要がある。これは、TestAddrの2つの追加のポートをディスパッチ・ユニットに加えることにより行う。1つはBISTコントローラ・アドレスを表し、もう1つはMTestAddrインターフェースに行くアドレスのスクランブルされたものを表す。これらのポートは設計の最高ハード化レベルに上げ、必要に応じてコントローラ・アドレスをテスト・アドレスにステッチする(stitching)ことによりスクランブリングを行う。この組込みはコア・インテグレータが行う。
ハード・コアは既知の物理アドレス空間から論理アドレス空間へのマッピングを有し、これに従ってBIST_ディスパッチ・ユニット内でスクランブルする必要がある。これはディスパッチ・ユニットで行う。なぜなら、アドレス・スクランブルの要求はメモリ・テスト・インターフェースによって異なるからである。
ソフト・コアとコンパイルされたRAMは既知のアドレス指定アップフロントを有しないので、特にメモリをコンパイルする前にコア設計を合成する場合は、スクランブリングをrtlで行うことはできない。スクランブリングは、物理的マッピングがARMのBISTアルゴリズムと共に存在することを確認する必要がある。これは、TestAddrの2つの追加のポートをディスパッチ・ユニットに加えることにより行う。1つはBISTコントローラ・アドレスを表し、もう1つはMTestAddrインターフェースに行くアドレスのスクランブルされたものを表す。これらのポートは設計の最高ハード化レベルに上げ、必要に応じてコントローラ・アドレスをテスト・アドレスにステッチする(stitching)ことによりスクランブリングを行う。この組込みはコア・インテグレータが行う。
添付の図面を参照して本発明の例示の実施の形態を詳細に説明したが、理解されるように、本発明はこれらの実施の形態に制限されるものではなく、当業者は特許請求の範囲に規定されている本発明の範囲と精神から逸れることなく種々の変更や修正を行うことができる。
4 プロセッサ・コア
6 キャッシュ・メモリ
8 RAMメモリ
10 自己テスト・コントローラ
6 キャッシュ・メモリ
8 RAMメモリ
10 自己テスト・コントローラ
Claims (34)
- データ処理装置であって、
それぞれのメモリ・アドレスに関連する複数のメモリ記憶位置を有する少なくとも1個のメモリと、
前記少なくとも1個のメモリの自己テストを制御する自己テスト・コントローラと、
を含み、
前記自己テスト・コントローラは与えられるべきあるメモリ・テスト方法を指定する単一の自己テスト命令に応答して一連のメモリ記憶位置内の各メモリ位置に少なくとも一度メモリ・アクセスを行い、前記自己テスト命令により選択された前記一連のメモリ記憶位置内で順次にアクセスされるメモリ位置に従ってメモリ・アドレスは変化し、前記自己テスト・コントローラは異なるメモリ・テスト方法を実現するために前記自己テスト命令により形成可能である、
データ処理装置。 - 前記自己テスト・コントローラは複数の自己テスト命令を実行して一連のメモリ・テストを行い、前記自己テスト命令はプログラム可能であって異なるユーザはメモリ・テストの異なるシーケンスを指定できる、請求項1記載のデータ処理装置。
- 前記メモリ・テストのシーケンスは異なるメモリに適合するように変更できる、請求項2記載のデータ処理装置。
- 前記メモリ・テストのシーケンスは異なる製作特性とテスト要求に適合するように変更できる、請求項2記載のデータ処理装置。
- 前記メモリ・アドレスは前記少なくとも1個のメモリ内の物理的行アドレスと列アドレスである、請求項1記載のデータ処理装置。
- 前記自己テスト命令は前記少なくとも1つのメモリ・アクセスの一部として前記メモリに書き込むデータを指定する、請求項1記載のデータ処理装置。
- 前記メモリ・アドレスは前記自己テスト命令により選択された順次のメモリ位置に従って変化し、また前記自己テスト・コントローラは次の1つ以上のメモリ・テスト動作を実行する、すなわち、
(i) 指定されたデータを或る範囲内のメモリ・アドレスの全てのメモリ位置に書き込み、
(ii) データを或る範囲内のメモリ・アドレスの全てのメモリ位置から読み取り、
(iii) 指定されたデータをチェッカー盤パターンのメモリ・アドレスを有するメモリ位置に書き込み、
(iv) データをチェッカー盤パターンのメモリ・アドレスを有するメモリ位置から読み取り、
(v) マーチCメモリ・テストを行い、
(vi) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取りまた指定されたデータを書き込み、メモリ位置の或る行内のメモリ位置に順にアクセスした後でメモリ位置の次の行を選択してアクセスし、
(vii) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取りまた指定されたデータを書き込み、メモリ位置の或る列内のメモリ位置に順にアクセスした後でメモリ位置の次の列を選択してアクセスし、
(viii) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取り、指定されたデータを書き込み、またデータを読み取り、メモリ位置の或る行内のメモリ位置に順にアクセスした後でメモリ位置の次の行を選択してアクセスし、
(ix) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取り、指定されたデータを書き込み、またデータを読み取り、メモリ位置の或る列内のメモリ位置に順にアクセスした後でメモリ位置の次の列を選択してアクセスし、
(x) 一連のメモリ位置において、前記メモリ内の1つ以上のビット線に或る値を繰り返し書き込み、次に前記1つまたは複数のビット線を共用するメモリ位置内に記憶されている相補値を読み取り、
(xi) 一連のメモリ位置において、或るメモリ位置から或る値を繰り返し読み取ると共に逆のデータ書込みを行い、
(xii) メーカのテスト方法が特定の要求を持たない実行/不実行テストについて(i)から(xi)に規定された所定の組み合わせのメモリ・テスト動作を行い、
(xiii) 不合格検出を有効化するために特定の点で偽読取りデータを生成する
請求項1記載のデータ処理装置。 - プロセッサ・コアを更に備え、前記プロセッサ・コアと前記少なくとも1個のメモリと前記自己テスト・コントローラを1つの集積回路上に形成する、請求項1記載のデータ処理装置。
- 前記少なくとも1個のメモリは合成メモリか特注メモリのどちらかである、請求項1記載のデータ処理装置。
- インターフェース回路を前記自己テスト・コントローラと前記少なくとも1個のメモリの間に設け、前記インターフェース回路を通して信号の値とタイミングを前記自己テスト・コントローラと前記少なくとも1個のメモリの間で送って前記少なくとも1個のメモリの異なる値およびタイミング特性に対処する、請求項1記載のデータ処理装置。
- 前記インターフェース回路は前記自己テスト・コントローラが生成したメモリ・アドレス値を、前記少なくとも1個のメモリに入力する論理アドレス値にマッピングする、請求項10記載のデータ処理装置。
- 複数のメモリを備え、前記自己テスト命令は前記自己テスト命令を前記複数のメモリのどれに与えるかを指定する、請求項1記載のデータ処理装置。
- 前記自己テスト命令は、検出されたメモリ誤りを前記自己テスト・コントローラが複数の異なる方法のどれを用いて報告するかを指定する、請求項1記載のデータ処理装置。
- 前記インターフェース回路は前記少なくとも1個のメモリのテストから得られたデータを収集する結果データ・レジスタを含み、また前記自己テスト・コントローラは自己テスト命令に応じて結果データを前記結果データ・レジスタから読み取る、請求項10記載のデータ処理装置。
- 前記自己テスト命令はテスト対象の前記少なくとも1個のメモリのサイズを指定する、請求項1記載のデータ処理装置。
- 前記自己テスト命令は前記自己テスト・コントローラに直列にロードされる、請求項1記載のデータ処理装置。
- 前記少なくとも1個のメモリと前記自己テスト・コントローラを複数個の外部信号ピンを有する集積回路上に形成し、前記自己テスト・コントローラは1つ以上の自己テスト命令を前記自己テスト・コントローラに与えるのに用いる1個以上の外部信号ピンを有する、請求項1記載のデータ処理装置。
- それぞれのメモリ・アドレスに関連する複数のメモリ記憶位置を有するメモリ・テスト方法であって、
前記メモリに結合する自己テスト・コントローラに単一の自己テスト命令を与え、該自己テスト命令は前記メモリに与えられるべきあるテスト方法を指定する、
前記自己テスト命令に応答して一連のメモリ記憶位置内の各メモリ位置に少なくとも一度メモリ・アクセスを行い、前記自己テスト命令により選択された前記一連のメモリ記憶位置内で順次にアクセスされるメモリ位置に従ってメモリ・アドレスは変化し、前記自己テスト・コントローラは異なるメモリ・テスト方法を実現するために前記自己テスト命令により形成可能である、
ステップを含む、メモリ・テスト方法。 - 前記自己テスト・コントローラで複数の自己テスト命令を実行して一連のメモリ・テストを行い、前記自己テスト命令はプログラム可能であって異なるユーザはメモリ・テストの異なるシーケンスを指定できる、請求項18記載のメモリ・テスト方法。
- 前記メモリ・テストのシーケンスは異なるメモリに適合するように変更できる、請求項19記載のメモリ・テスト方法。
- 前記メモリ・テストのシーケンスは異なる製作特性とテスト要求に適合するように変更できる、請求項19記載のメモリ・テスト方法。
- 前記メモリ・アドレスは前記少なくとも1個のメモリ内の物理的行アドレスと列アドレスである、請求項18記載のメモリ・テスト方法。
- 前記自己テスト命令は前記少なくとも1つのメモリ・アクセスの一部として前記メモリに書き込むデータを指定する、請求項18記載のメモリ・テスト方法。
- 前記メモリ・アドレスは前記自己テスト命令により選択された順次のメモリ位置に従って変化し、また前記自己テスト・コントローラは次の1つ以上のメモリ・テスト動作を実行する、すなわち、
(i) 指定されたデータを或る範囲内のメモリ・アドレスの全てのメモリ位置に書き込み、
(ii) データを或る範囲内のメモリ・アドレスの全てのメモリ位置から読み取り、
(iii) 指定されたデータをチェッカー盤パターンのメモリ・アドレスを有するメモリ位置に書き込み、
(iv) データをチェッカー盤パターンのメモリ・アドレスを有するメモリ位置から読み取り、
(v) マーチCメモリ・テストを行い、
(vi) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取りまた指定されたデータを書き込み、メモリ位置の或る行内のメモリ位置に順にアクセスした後でメモリ位置の次の行を選択してアクセスし、
(vii) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取りまた指定されたデータを書き込み、メモリ位置の或る列内のメモリ位置に順にアクセスした後でメモリ位置の次の列を選択してアクセスし、
(viii) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取り、指定されたデータを書き込み、またデータを読み取り、メモリ位置の或る行内のメモリ位置に順にアクセスした後でメモリ位置の次の行を選択してアクセスし、
(ix) メモリ位置の行と列に配列されたメモリ内の一連のメモリ位置からデータを読み取り、指定されたデータを書き込み、またデータを読み取り、メモリ位置の或る列内のメモリ位置に順にアクセスした後でメモリ位置の次の列を選択してアクセスし、
(x) 一連のメモリ位置において、前記メモリ内の1つまたは複数のビット線に或る値を繰り返し書き込み、次に前記1つ以上のビット線を共用するメモリ位置内に記憶されている相補値を読み取り、
(xi) 一連のメモリ位置において、或るメモリ位置から或る値を繰り返し読み取ると共に逆のデータ書込みを行い、
(xii) メーカのテスト方法が特定の要求を持たない実行/不実行テストについて(i)から(xi)に規定された所定の組み合わせのメモリ・テスト動作を行い、
(xiii) 不合格検出を確認するために特定の点で偽読取りデータを生成する
請求項18記載のメモリ・テスト方法。 - 前記少なくとも1個のメモリと前記自己テスト・コントローラを1つの集積回路上に形成する、請求項18記載のメモリ・テスト方法。
- 前記少なくとも1個のメモリは合成メモリと特注メモリのどちらかである、請求項18記載のメモリ・テスト方法。
- 前記自己テスト・コントローラと前記少なくとも1個のメモリの間に送られる信号の値とタイミングは前記自己テスト・コントローラと前記少なくとも1個のメモリの間に設けられたインターフェース回路により処理され、前記少なくとも1個のメモリの異なる値およびタイミング特性に対処する、請求項18記載のメモリ・テスト方法。
- 前記インターフェース回路は前記自己テスト・コントローラが生成したメモリ・アドレス値を、前記少なくとも1個のメモリに入力する論理アドレス値にマッピングする、請求項27記載のメモリ・テスト方法。
- 前記自己テスト命令は前記自己テスト命令を前記複数のメモリのどれに与えるかを指定する、請求項18記載のメモリ・テスト方法。
- 前記自己テスト命令は、検出されたメモリ誤りを前記自己テスト・コントローラが複数の異なる方法のどれを用いて報告するかを指定する、請求項18記載のメモリ・テスト方法。
- 前記インターフェース回路は前記少なくとも1個のメモリのテストから得られたデータを収集する結果データ・レジスタを含み、また前記自己テスト・コントローラは自己テスト命令に応答して結果データを前記結果データ・レジスタから読み取る、請求項27記載のメモリ・テスト方法。
- 前記自己テスト命令はテスト対象の前記少なくとも1個のメモリのサイズを指定する、請求項18記載のメモリ・テスト方法。
- 前記自己テスト命令は前記自己テスト・コントローラに直列にロードされる、請求項18記載のメモリ・テスト方法。
- 前記少なくとも1個のメモリと前記自己テスト・コントローラを複数個の外部信号ピンを有する集積回路上に形成し、前記自己テスト・コントローラは1つ以上の自己テスト命令を前記自己テスト・コントローラに与えるのに用いる1個以上の外部信号ピンを有する、請求項18記載のメモリ・テスト方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/025,816 US7269766B2 (en) | 2001-12-26 | 2001-12-26 | Method and apparatus for memory self testing |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002288612A Division JP4809568B2 (ja) | 2001-12-26 | 2002-10-01 | メモリ自己テストの方法と装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010015689A true JP2010015689A (ja) | 2010-01-21 |
Family
ID=21828202
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002288612A Expired - Lifetime JP4809568B2 (ja) | 2001-12-26 | 2002-10-01 | メモリ自己テストの方法と装置 |
JP2009243543A Abandoned JP2010015689A (ja) | 2001-12-26 | 2009-10-22 | メモリ自己テストの方法と装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002288612A Expired - Lifetime JP4809568B2 (ja) | 2001-12-26 | 2002-10-01 | メモリ自己テストの方法と装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7269766B2 (ja) |
JP (2) | JP4809568B2 (ja) |
GB (1) | GB2383640B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8860452B2 (en) | 2010-12-20 | 2014-10-14 | Samsung Electronics Co., Ltd | Tester to test a plurality of semiconductor devices and test system including the same |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6968479B2 (en) * | 2002-03-06 | 2005-11-22 | Hewlett-Packard Development Company, L.P. | Verifying data in a data storage device |
US7673193B1 (en) * | 2005-08-18 | 2010-03-02 | Rambus Inc. | Processor-memory unit for use in system-in-package and system-in-module devices |
US7194670B2 (en) | 2004-02-13 | 2007-03-20 | International Business Machines Corp. | Command multiplier for built-in-self-test |
JP4601305B2 (ja) * | 2004-02-27 | 2010-12-22 | 富士通セミコンダクター株式会社 | 半導体装置 |
JP2005309787A (ja) * | 2004-04-21 | 2005-11-04 | Nec Electronics Corp | 中央演算処理装置及びマイクロコンピュータ |
KR100735575B1 (ko) * | 2004-06-11 | 2007-07-04 | 삼성전자주식회사 | 메모리의 테스트 모드 인터페이스 방법 및 장치 |
KR101014413B1 (ko) * | 2004-06-14 | 2011-02-15 | 삼성전자주식회사 | 데이터 캐쉬가 내장된 반도체 집적회로 및 그것의앳-스피드-테스트 방법 |
US7254793B2 (en) * | 2005-02-04 | 2007-08-07 | Synopsys, Inc. | Latch modeling technique for formal verification |
US7434119B2 (en) * | 2005-03-07 | 2008-10-07 | Arm Limited | Method and apparatus for memory self testing |
JP2006268919A (ja) * | 2005-03-22 | 2006-10-05 | Matsushita Electric Ind Co Ltd | メモリの組み込み自己テスト回路および自己テスト方法 |
US7490280B2 (en) * | 2006-02-28 | 2009-02-10 | International Business Machines Corporation | Microcontroller for logic built-in self test (LBIST) |
US7870454B2 (en) * | 2006-09-12 | 2011-01-11 | International Business Machines Corporation | Structure for system for and method of performing high speed memory diagnostics via built-in-self-test |
US7805644B2 (en) * | 2007-12-29 | 2010-09-28 | Texas Instruments Incorporated | Multiple pBIST controllers |
JP5846679B2 (ja) * | 2012-03-30 | 2016-01-20 | インテル・コーポレーション | 積層メモリアーキテクチャのためのビルトインセルフテスト |
US8935586B2 (en) * | 2012-11-08 | 2015-01-13 | International Business Machines Corporation | Staggered start of BIST controllers and BIST engines |
US8996942B2 (en) * | 2012-12-20 | 2015-03-31 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Suspend SDRAM refresh cycles during normal DDR operation |
US8904250B2 (en) | 2013-02-14 | 2014-12-02 | Micron Technology, Inc. | Autorecovery after manufacturing/system integration |
US8943458B1 (en) * | 2013-09-16 | 2015-01-27 | International Business Machines Corporation | Determining chip burn-in workload using emulated application condition |
JP6570608B2 (ja) * | 2017-12-21 | 2019-09-04 | キヤノン株式会社 | 検査装置、撮像装置、電子機器および輸送装置 |
JP7031392B2 (ja) | 2018-03-15 | 2022-03-08 | 富士通株式会社 | エミュレーション装置,エミュレーション方法及びエミュレーションプログラム |
US10748635B2 (en) * | 2018-03-22 | 2020-08-18 | Marvell Asia Pte, Ltd. | Dynamic power analysis with per-memory instance activity customization |
CN109710473A (zh) * | 2018-12-19 | 2019-05-03 | 四川虹美智能科技有限公司 | 一种soc板测试方法、装置及系统 |
US10998075B2 (en) | 2019-09-11 | 2021-05-04 | International Business Machines Corporation | Built-in self-test for bit-write enabled memory arrays |
US10971242B2 (en) | 2019-09-11 | 2021-04-06 | International Business Machines Corporation | Sequential error capture during memory test |
US11069422B1 (en) | 2020-07-07 | 2021-07-20 | International Business Machines Corporation | Testing multi-port array in integrated circuits |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5173906A (en) | 1990-08-31 | 1992-12-22 | Dreibelbis Jeffrey H | Built-in self test for integrated circuits |
US5535164A (en) | 1995-03-03 | 1996-07-09 | International Business Machines Corporation | BIST tester for multiple memories |
US5661732A (en) * | 1995-05-31 | 1997-08-26 | International Business Machines Corporation | Programmable ABIST microprocessor for testing arrays with two logical views |
US5633877A (en) | 1995-05-31 | 1997-05-27 | International Business Machines Corporation | Programmable built-in self test method and controller for arrays |
JP3274332B2 (ja) * | 1995-11-29 | 2002-04-15 | 株式会社東芝 | コントローラ・大容量メモリ混載型半導体集積回路装置およびそのテスト方法およびその使用方法、並びに半導体集積回路装置およびそのテスト方法 |
US6001662A (en) * | 1997-12-02 | 1999-12-14 | International Business Machines Corporation | Method and system for providing a reusable configurable self-test controller for manufactured integrated circuits |
DE19833208C1 (de) | 1998-07-23 | 1999-10-28 | Siemens Ag | Integrierte Schaltung mit einer Selbsttesteinrichtung zur Durchführung eines Selbsttests der integrierten Schaltung |
JP2001148199A (ja) * | 1999-11-19 | 2001-05-29 | Mitsubishi Electric Corp | 自己テスト回路内蔵半導体記憶装置 |
JP2001236797A (ja) * | 1999-12-17 | 2001-08-31 | Fujitsu Ltd | 自己試験回路及びそれを内蔵するメモリデバイス |
JP2001297598A (ja) * | 2000-04-11 | 2001-10-26 | Toshiba Corp | 半導体集積回路装置、及び半導体集積回路装置の自己テスト方法 |
US20030167428A1 (en) * | 2001-04-13 | 2003-09-04 | Sun Microsystems, Inc | ROM based BIST memory address translation |
-
2001
- 2001-12-26 US US10/025,816 patent/US7269766B2/en not_active Expired - Lifetime
-
2002
- 2002-07-30 GB GB0217635A patent/GB2383640B/en not_active Expired - Lifetime
- 2002-10-01 JP JP2002288612A patent/JP4809568B2/ja not_active Expired - Lifetime
-
2009
- 2009-10-22 JP JP2009243543A patent/JP2010015689A/ja not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8860452B2 (en) | 2010-12-20 | 2014-10-14 | Samsung Electronics Co., Ltd | Tester to test a plurality of semiconductor devices and test system including the same |
US9557366B2 (en) | 2010-12-20 | 2017-01-31 | Samsung Electronics Co., Ltd. | Tester to simultaneously test different types of semiconductor devices and test system including the same |
Also Published As
Publication number | Publication date |
---|---|
US20030120985A1 (en) | 2003-06-26 |
GB0217635D0 (en) | 2002-09-11 |
JP2003229000A (ja) | 2003-08-15 |
GB2383640B (en) | 2005-04-06 |
US7269766B2 (en) | 2007-09-11 |
GB2383640A (en) | 2003-07-02 |
JP4809568B2 (ja) | 2011-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4809568B2 (ja) | メモリ自己テストの方法と装置 | |
US7062689B2 (en) | Method and apparatus for memory self testing | |
EP1377981B1 (en) | Method and system to optimize test cost and disable defects for scan and bist memories | |
US6415403B1 (en) | Programmable built in self test for embedded DRAM | |
JP3980827B2 (ja) | 半導体集積回路装置および製造方法 | |
US7428680B2 (en) | Programmable memory built-in-self-test (MBIST) method and apparatus | |
US6643807B1 (en) | Array-built-in-self-test (ABIST) for efficient, fast, bitmapping of large embedded arrays in manufacturing test | |
KR19980069991A (ko) | 프로세서기반 내장형 자체 검사 매크로와, 여분 배정 논리 회로 | |
US7213186B2 (en) | Memory built-in self test circuit with full error mapping capability | |
US20030074616A1 (en) | ASIC BIST controller employing multiple clock domains | |
US20030074618A1 (en) | Dual mode ASIC BIST controller | |
US20030074619A1 (en) | Memory bist employing a memory bist signature | |
US6981191B2 (en) | ASIC logic BIST employing registers seeded with differing primitive polynomials | |
US7257745B2 (en) | Array self repair using built-in self test techniques | |
US6996760B2 (en) | ASIC BIST employing stored indications of completion | |
US20030074620A1 (en) | Configurable asic memory bist controller employing multiple state machines | |
US7475313B2 (en) | Unique pBIST features for advanced memory testing | |
CN110415751B (zh) | 一种可参数化配置的存储器内建自测试电路 | |
Cheng | Comprehensive study on designing memory BIST: algorithms, implementations and trade-offs | |
US6901543B2 (en) | Utilizing slow ASIC logic BIST to preserve timing integrity across timing domains | |
KR100786414B1 (ko) | Dut 테스터 데이터 채널 반전 특성 관리 장치 | |
US20240210471A1 (en) | Electronic device and method of testing electronic device | |
JP4922506B2 (ja) | 半導体メモリ試験装置 | |
KR20010046929A (ko) | 고장범위 계산 기능을 갖는 반도체 메모리 장치 | |
KR20020020862A (ko) | 메모리 테스터 어드레스 채널 관리 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091118 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101027 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20110905 |