JP4194799B2 - 被試験デバイスの試験中にエラーが生じた場合にテストプログラムのアルゴリズム制御のその時点の状態を回復する方法 - Google Patents
被試験デバイスの試験中にエラーが生じた場合にテストプログラムのアルゴリズム制御のその時点の状態を回復する方法 Download PDFInfo
- Publication number
- JP4194799B2 JP4194799B2 JP2002121654A JP2002121654A JP4194799B2 JP 4194799 B2 JP4194799 B2 JP 4194799B2 JP 2002121654 A JP2002121654 A JP 2002121654A JP 2002121654 A JP2002121654 A JP 2002121654A JP 4194799 B2 JP4194799 B2 JP 4194799B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- memory
- dut
- error
- program
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/24—Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
-
- 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/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
【発明の属する技術分野】
(関連出願の参照)
本開示は、「Error Catch RAM for Memory Tester Has SDRAM Memory Sets Configurable for Size and Speed」と題する米国特許出願第09/665,892号(2000年9月20日の出願であり、参照により本明細書に組み込まれる)に記載された情報に関連したものである。本願が対象とする主題は、半導体メモリを試験するための比較的大型で複雑なシステムの動作の一部に関わるものである。記載したメモリテスタはそれ自体の中に、試験を実施可能とする全体的な枠組みの一構成要素として、拡張メモリサブシステムを含む。このメモリサブシステムの特定の機能が本願の対象とするところであり、それらは開示した新規な主題の一部に関して好ましい基盤として作用する。製品の経済面からの理由、そしてテスタ中により多くのメモリ容量を設けたいという要求から、ランダムアドレス指定方式においても高速ではあるが高価なSRAMに代え、安価なメモリ(ランダムアクセスにおいては処理速度が遅いDRAM)を使用し得る方法が開発された。この結果、様々な他のメモリサブシステム構成と組み合わせた場合にメモリグループ内での多重化やメモリバンク間でのインターリーブ処理と同時にこれらを可変長語として実現することも含む極めて複雑なものとなってしまった。一方で、本開示に求める特定の要件は、SRAMのみを使用したシステムにおいてその複雑性を大幅に緩和して実現することが出来る。しかしながら、その経済面での犠牲は著しく、その完成品は技術者の興味対象にこそなれ商業的には立ち行き得ない程高価になってしまう可能性が高い。本開示は、完全にSRAMのみでシステムを構成することも勿論可能ではあるが、必ずしもそうすることを前提にしないという、中間的なスタンスを取るものである。その成り行き上、DRAM技術を含むこととなったが、本願の基本原理を簡潔に説明するために、DRAM技術の内部処理に関する複雑な詳細説明の多くを差し控えた。本開示内容に簡単に目を通しただけでも、多くの関心事(様々なインターリーブ方式やアドレス指定方式及びこれらがどのように異なる処理モードと関係するのか等)が省略されていることに気づくかも知れない。しかしながら、本明細書に開示することを意図した技術及び要件は、一部の場合においては記載を省略した事項から若干の影響を受けるものもあるが、基本的にこれらとは関連性が薄いことがわかってもらえるものと思われる。従って、対象とする主な問題の周囲にある要素の中には、一部詳細説明を省いたものもある。上述した特許出願に開示された内容は、DRAM技術に関する詳細を補足するものである。本明細書の開示内容によりメモリのサブシステムに関して更なる問題が提起されていると感じた場合、上記出願の開示内容を見れば答えを見つけることが出来るかと思われる。上記出願を参照により本明細書に組み込むことにより、その存在を明らかにした理由はそこにある。
【0002】
これを踏まえた上で、これら2つの開示の教示内容を組み合わせようと望んでもそれは出来ない。上記出願では、対象となるメモリの全体がエラー捕捉RAM(ECR)と呼ばれ、これが複数のメモリセットに分割されるという考え方に基づいている。上記出願においては、他の同様の機能も予想はされるものの、ECRがほぼ唯一の対象メモリ機能であるため、この考え方は容易に適合する。しかしながら、本願を準備する過程で熟慮した結果、対象メモリ全体を説明する上で、「内部テストメモリ」という語を使用した方が都合が良いことがわかった。これは、4個の別個のそして独立したメモリセットであり、その内部において適当な構成で様々な機能メモリ機構(ECRを含む)を定義することが出来るというものである。従って、上記出願においては、ECR中にメモリセットが含まれているかのように開示されているが、本願においては逆となっている。しかしながら、いずれの記載においても、全体的に見れば同じシステムに見られる主題が説明されているのである。それらの相違点は用語の用法の違いに負うところが大きく、2つの出願の記載内容の間に矛盾があるかのように見えても、記載されているメモリサブシステム処理における、より下位レベルの詳細では、そのような矛盾は解消される。上記出願について触れたのは、これに記載された詳細を提供するためである。
【0003】
本願の主題は更に、米国特許出願第09/702,631号(2000年9月31日出願)の「MEMORY TESTER WITH ENHANCED POST DECODE」にも関連している。本願においては、この出願の主題の中核部分を構成するPD_ERROR(90)と呼ばれる信号をかなりの部分で利用した。そして本願においても、この信号が何を意味し、どのように生成されるのかについて、概略ではあるが充分な説明を提供しているが、この点に関する完全な詳細は、より複雑なものある。本願の説明から混乱や、矛盾に見える点が生じないように、かつ、簡潔に記載するためにこの「MEMORY TESTER WITH ENHANCED POST DECODE」を参照により本明細書に組み込むことにする。
【0004】
本願の主題は、更に2000年10月2日に出願された米国特許出願第09/677,202号「MEMORY TESTER TESTS MULTIPLE DUT’S PER TEST SITE」にも関連している。この出願に開示されたものの中から、EFRR(113)、PERR(114)及びPD_ERROR(115)と呼ばれる信号の集合を借りている。これらの信号の存在は、本願の1つの特徴の主題の中心であるが、これらの起点及び本来の用法については先の出願に記載されている。本願においてもこれらの信号が何を意味し、どのように生成されるかについて概略ではあるが充分な説明を提供しているが、先に触れた場合と同様、その完全な詳細はより複雑なものである。従って、上記出願「MEMORY TESTER TESTS MULTIPLE DUT’S PER TEST SITE」も参照により本明細書に組み込むことにする。
【0005】
【従来の技術】
電子装置やその機能の日常生活における浸透は極めて著しい。人々の多くは多岐にわたる雑多な目的で家庭用パーソナルコンピュータ等と共に複数の生産的ツールを所有している。多くの個人向けの生産的電子装置は何らかの形態で不揮発性メモリを含んでいる。携帯電話は電源を切ってもユーザーがプログラムした電話番号や設定を保持出来るように不揮発性メモリを用いている。PCMCIAカードの場合、コンピュータのスロットから取り外された状態でも情報を維持することが出来るように不揮発性メモリを使う。他の多くの一般的な電子装置も同様に、電源が供給されないアセンブリ内の不揮発性メモリの長期保存能力を利用しているのである。
【0006】
電子装置メーカーに不揮発性メモリを販売する不揮発性メモリの製造者は、自社で製造したメモリが適正な動作を行うかを、テスタを用いて確認しなければならない。不揮発性メモリは大量に一貫して低コストで製造、販売されるため、個々の製品の試験に要する時間は可能な限り短くすることが非常に重要である。不揮発性メモリの購入者は、購入したメモリ素子をより高額なアセンブリに組み込む際、コストを節約するために最小限度の試験のみ、或いは無試験で済むように望むことから、メモリ製造者は高い出荷歩留まりを要求される。従ってメモリの試験手順は、不適合品の大部分、望ましくは全ての不適合品を1回の試験工程において識別し得るように、充分に高い効率を提供するものでなくてはならないのである。
【0007】
不揮発性メモリの大型化、高密度化及び複雑化が進むに伴い、テスタはこれらの寸法及び複雑性への対応を、試験時間を大幅に増大させることなく行うことを要求される。メモリテスタは連続的に稼動させる場合も多く、その試験時間は最終部品のコストにおいて大きい部分を占めるものと考えられている。また、テスタはメモリ素子の進化及び改良に伴ってメモリ素子に加えられたこれらの変化に容易に適合出来なければならない。不揮発性メモリ試験において特徴的な他の問題は、メモリのセルへの書き込みが何度も繰り返されると、その製品の全体的な寿命性能が劣化する可能性があるという点である。不揮発性メモリの製造者は、特別な試験モードをメモリ素子中に組み込むことにより試験に関わる多くの問題に対処している。これらの試験モードはメモリの購入者によって使用されるものではなく、製造者がアクセスすることでメモリの全て、又は大部分を可能な限り短時間で効率良く試験することが出来るものである。不揮発性メモリの中には試験工程中に修復可能なものもある。従ってテスタは、修復の必要性、修復箇所、必要な修復の種類を識別するものでなくてはならず、また更に適切な修復を実施出来なければならない。このような修復工程には、メモリ中の特定の不適合部分を検出、分離することが出来るテスタが必要である。修復機能と共にこの特別な試験モードの利点を有効に活用するためには、素子から期待される応答に基づいた条件分岐を支援するテストプログラムを実行することが出来るテスタの使用が有益である。
【0008】
メモリを試験するプロセスは、概念的観点から見るとアルゴリズム的プロセスである。例えば、一般的な試験にはメモリセルに0又は1を書き込みながらメモリアドレスを順次増分又は減分して行くものが含まれる。1メモリサイクル中に書き込まれる、又は読み出される1及び0の集合を、一般的に「ベクトル」と呼び、ベクトルのシーケンスを「パターン」と呼ぶ。試験はチェッカーボード、ウォーキング(walking)1、およびバタフライパターンのようなパターンをメモリ空間に書き込むことを含むのが一般的である。試験開発者はアルゴリズム的構造の助けを借りることにより、より容易かつ効率的にテストパターンを作成するためのプログラムを生成することが出来る。アルゴリズム的に一貫したテストパターンはデバッグが容易であり、期待通りに動かないパターン部分を分離するための論理的方法の使用を容易にする。プログラムループ中で繰り返す命令及びコマンドを使用してアルゴリズム的に作成されたテストパターンは、使用するテスタのメモリ空間が小さい。従って、メモリテスタはアルゴリズム的テストパターン作成能力を持つものが望ましい。
【0009】
信号エッジの正確な配置及び検出もまた、不揮発性メモリのテスタの効率に関連して考慮されるものである。指定マージンにおいては不適合でありつつも中心においてはほぼ適合した部品を捕捉するには、不揮発性メモリテスタは各信号エッジを他の信号エッジに対して時間的に正確に配置出来なければならない。更に、どの時点において信号エッジが受信されたかを正確に測定する能力も重要である。従って不揮発性メモリテスタは充分な柔軟性と、刺激及び被試験デバイス(DUT)であるメモリからの応答のタイミングと配置に対する充分な制御性を持っていなければならないのである。
【0010】
メモリテスタは、DUTに印加(刺激)する送信ベクトルを生成し、期待される返信(応答)としてのベクトルを受信するものであると言われている。これらのベクトルを生成するアルゴリズム的論理素子は、一般的にこれらの生成をベクトル中の特定のビットがどのようにDUT中の特定の信号パッドへ、または、特定の信号パッドから送られるかを考慮することなく行うことが出来る。これはメモリテスタが信号を端子へ、または、端子からルーティングするためのマッピング機構を含むためである。
【0011】
メモリテスタは試験処理を容易にするために用いられる内部テストメモリを有する。この内部テストメモリは、リアルタイム生成しない場合の送信ベクトルの事前記憶や受信ベクトルの記憶、そして試験中に得たDUT挙動に係わるエラー表示情報及びその他の情報の記憶を含む幾つかの用途に用いられる。(SRAMを用いたメモリテスタ内部のハウスキーピング処理も「内部メモリ」と呼ばれるメモリの処理範囲に入るものと思われるが、これらはテスタの内部処理専用のものであってアルゴリズムレベルではわかりにくい傾向にあり、内部制御レジスタに相当するものである。このようなメモリは、本明細書において「内部制御メモリ」と呼び、DUTへの刺激及びDUTからの応答に直接的に係わるビットパターンの記憶に用いるメモリを指す語である「内部テストメモリ」からは除外する。)当然のことながら、この内部テストメモリは実施される試験と少なくとも同じ速度で動作することが出来なければならない。ごく一般的な方式は、内部テストメモリ(又はその一部)を、DUTに印加されるアドレスと同じ(又はそれから派生したもの)アドレスで指定するものである。この場合に内部テストメモリ中のアドレス指定された場所に記憶される情報は、試験が実施される間にDUTの同じアドレスにおいて生じた挙動を何らかの形で表すものである。テストプログラム中のアルゴリズム的配慮により連続する送信ベクトルに関わるアドレスのシーケンスが任意である場合もある。従って内部メモリは、高速性及びランダムアドレス指定能力という2つの性質を持っていなければならない。高速かつ制御も容易で、完全なランダムアドレス指定が可能であるメモリとしてすぐに思い浮かべられるのはSRAMである。実際、従来のメモリテスタもSRAMを内部テストメモリとして採用している。
【0012】
残念ながら、SRAMはかなり高価なものであり、それにより、メモリテスタが使用出来る内部テストメモリの容量が制限されている。この結果、メモリテスタの機能性にはメモリ不足による限界がある。DRAMはこれよりも大幅に安価ではあるものの、高速処理においてはランダムアドレス指定が出来ない。
【0013】
メモリテスタの内部メモリとしてSRAMに代えてDRAMを使用することが出来る。以下の概要説明でも簡単に触れるが、内部テストメモリとして使用するためにDRAMの処理速度をいかに上げることが出来るかという問題は、使用するDRAMの速度を上げるかわりにその容量を大きくすることにより解消することが出来る。これには、DRAMの同種の複数のバンクをグループとして取り扱う。1グループ中の異なるメモリバンクへの信号をインターリーブする処理と、このようなバンクグループ間で多重化する処理とを組み合わせることにより、各バンクにおけるメモリトラフィックをそのバンクが処理し得る速度にまで落とすのである。(読者の便宜をはかるためにこの技術の概要を簡単に説明する。この技術の構造的側面及びこれに関連する用語が、以下に開示する発明的主題を説明する上で有用であるためである。)
【0014】
各々が4つのバンクから成る3つのグループ間において3路(three-way)多重化し、これに1グループへの信号トラフィックに対する柔軟な4倍インターリービング方式を組み合わせることにより、要するメモリバスは3本のみでありながら処理速度を12倍近く向上させることが出来る。マルチプレクサへの次のグループの選択を行うためのラウンドロビン方式は単純であり、各グループに対するインターリーブ機構が最後に割り当てられたタスクを完了するために必要な時間が各機構に確実に与えられるようになっている。1グループにおける全てのインターリーブアクセスは、これも単純なラウンドロビン選択方式で選択される次のバンク(そのグループ中の)に実施される。この構成においては、12バンクの各々が使用可能アドレス空間全体を表すものであり、いずれの書き込みサイクルも、これら12バンクのいずれか1つをアクセスすることになる。これは、いずれの対象アドレス或いは対象アドレス集合も12バンク全体に広がって位置しているためにそのDUTの試験中に生じた不具合を知るためには試験終了時に12バンク全てを調べなければならないことを意味している。従って特定のチャネルは12ビットで表される(各バンクから1ビットで、そのバンクに関する、ワード中のそのビットの位置はチャネルにより決定する)。
【0015】
しかしながら、不具合情報を得るために12バンクの全てを個々に(手動で)照会しなければならないとなれば厄介である。従ってあるアドレスにおける読み出しサイクル中に12バンク全ての結果を自動的に「合成」(合併)して統合化された結果を得るユティリティ機構が設けられている。これにより、統合化されたデータを後に最高速度で読み出すことが可能となる。一実施例においては、ランダムアドレス指定されたメモリトランザクションについての最高速度が100MHzである。
【0016】
33MHzでも充分であるとされる場合、ランダムアクセスは多重化をしなくてもインターリーブ処理のみで対応することが可能であり、このような場合、統合化機構及びメモリアドレス指定方式は適宜調整される。アドレス指定方式は変化し、メモリの深さを100MHzランダム動作の場合の3倍にすることが出来る追加グループ選択ビットを含むことになる。これらの2つの処理モードを、それぞれR100及びR33と呼ぶ。更に単一のバンクに対する100MHz処理を行うL100モードも存在するが、これはDRAMに送られる良好なアドレス(行アドレスの変化が絶対最小)に拠るものである。
【0017】
内部テストメモリ構造の最上位レベルには、4つのメモリセットがあり、メモリセットの各々は独自の独立したアドレス空間を持ち、要求されたメモリトランザクションを実行している。2つは上述したDRAMであり、残り2つはSRAMである。各メモリセットは専用のコントローラを持ち、これに向けてメモリトランザクションが送られて来る。表面上の処理能力に関しては、4つのメモリセットは全て基本的に同じに見える。これらの違いは、メモリ空間のサイズと、これが内部的にどのように実現されているかだけである。SRAMメモリセットはもともと充分な高速性を持っているため、多重化及びインターリーブ処理は採用していない。これらは独立したものではあるが、同じ種類(SRAM又はDRAM)のメモリセットを「積み重ねる」、即ち、1つのより大きなアドレス空間として取り扱うことが出来る。これはメモリセット自体ではなく、その上位の制御レベルにおいて、アドレスをアルゴリズム的に生成すること、そして実際にメモリトランザクションを送るべきメモリセットを決定することにより実施される。これは、R100及びR33モード間においてメモリセット及びそれらのコントローラがグループを統合してアドレス空間を3倍にするといった自動的な処理ではない。各メモリセットのコントローラは、他のメモリセットや他のコントローラの存在自体さえ認識していないのである。
【0018】
よって、テスタの内部テストメモリは2つが「内部」SRAM、他の2つが「外部」DRAMである4つのメモリセットに区分化されている。誤解の無いように触れておくが、これらのメモリは全て物理的にはメモリテスタ内部にある。「内部」及び「外部」という語は、集積レベルに関するものである。SRAMはテスタの機能回路に関わるVLSI(超大規模集積回路)上に集積されている部品であり、DRAMは別個にパッケージングされ、VLSIに隣接して実装されている部品である。SRAMの容量はかなり小さい(例えば1メモリセットあたり1メガビット程度)が、DRAMの容量はかなり大きく、選択可能(例えば1メモリセットあたり128〜1024メガビット)である。SRAMメモリセットは常に存在し、例えばROMであるDUTに期待される内容を記憶する等、それらに好適な目的に使用することが出来る。DRAMメモリセットは実際には随意選択であり、一般に修復を行うための後の解析用に記録を作成しておくために使用されるが、用途は他にもある。テスタはどちらのメモリをどの用途に利用するかについて、SRAMとDRAMメモリセットとの間で強制的に区別するようなことはしない。用途の判別は主にそのサイズにより決まる。SRAMメモリセットは小さいが、DRAMメモリセットは潜在的に大きい。各種メモリセットをどのように利用するかについて決定するのは、テストプログラムを作成する技術者である。
【0019】
ここまで説明して来たメモリテスタはかなりの段数のパイプラインを含んでいる。パイプライン構成を持つということは、各々が両方の入力環境を許容し、それに対応する出力を共通の速度で出すことが出来る、複数の機構(パイプラインの段)から構成される基本的に直列の経路にわたり、全体的なタスク又は機能が広がっていることを意味する。従って、例えばDUTへと「下に向かう」パイプラインの先頭には、マイクロコントローラシーケンサが存在し、これがテストプログラム実行処理のアルゴリズム的にプログラム可能な起点となっている。これは「生の」、即ち「アルゴリズムレベル」のアドレスを提供するものであり、このアドレスが恐らくは何らかの処理を経た後、最終的にはDUTへと印加されることになるものである。これらのアドレスは(時にデータも)、複数のALUを通過し、そして(アドレスのみ)アドレスマッパを通り、内部テストメモリ及び(又は)データMUXへと供給され、そこからアドレスビット選択回路、送信ベクトルマッパ/シリアライザおよび受信ベクトル比較データ回路、ベクトルFIFO45を通り、最終的にはタイミング/フォーマッティングおよび比較回路へと至り、ここからピンエレクトロニクスを介して送信ベクトルがDUTへと印加されることになる。パイプラインの全ての段が同じ遅延量を持っているわけではない。パイプラインを通ってDUTへと至る処理の中でもより複雑なものは、その処理に関係する段でより長い時間を費やさなければならないものもある。しかしながら、様々なあらゆる段と同様に、これらの遅延値も固定であり、パイプラインの先端から末端までの全体的速度に影響をあたえるものではない。また、ここには更に受信ベクトルをテストプログラムを実行する環境へと「上に向けて」送信するもう1つの(そして異なる)パイプライン経路が存在すると言える。
【0020】
メモリテスタが、テストプログラムの特定の区分に対し、同じテストプログラムの他の区分とは異なる特定の方法で設定された場合、このような設定の変化によりパイプラインの通過段が増えたり減ったり、或いはその時に使用されるパイプライン段の長さが変化したりすることになるが、このような変化は全てテストプログラムのその区分の全体的なパイプライン遅延値に影響を与えるものである。しかしながら、このような合計遅延値は既知であり、これらが対応するテストプログラム区分の継続時間を変えるものでもない。
【0021】
先にも述べたように、メモリテスタで実行するテストプログラムの開発及び保全においては、アルゴリズム的処理能力が使用出来ることが望ましい。マイクロコントローラシーケンサは、ループ中にネストするループ、試験結果に応じた分岐を緊密に含むテストプログラムを支援するものである。しかしながら、パイプライン構造の利用は、本願において対象とする特定の機能、特にDUTの挙動により生じたエラーを理解し、処理するための方法を複雑化するものでもある。
【0022】
まず、「この機能不全/期待値外の結果が生じたのは、プログラムのこの箇所である」と特定することを望む基本的な必要が生じた場合を考える。ここでの前提として、テストプログラム/DUTサイクル速度が充分に遅く、マイクロコントローラシーケンサからピンエレクトロニクス、そしてピンエレクトロニクスからマイクロコントローラシーケンサまでの両パイプライン経路の遅延がプログラムを低速実行することにより吸収し得るものであるとする。この場合、パイプラインが存在することすら認識する必要はない(DUTも相当に処理速度の遅いものであるといえる)。このような状況(実際には有り得ないが)において、テストプログラムの現在の状態及びDUTにおける動作は、単に何らかの時間的相互関係を持って(同期して)生じるだけではなく、「順次調和的」状態、即ち、原因とその効果が、テストプログラム用の命令フェッチによって分離されることがない状態にある。このような楽観的な状況下でDUTが不良を生じた場合、プログラムの次のステップで応答を評価し、そのエラーが発生したのはその前のステップであったと判断することが出来る。次に何を実施するかはプログラマが何をしたいかによる。プログラマは、「プログラムのこの箇所で不良が発生した」という事実を知ること(プログラムポインタやループインデックス等により表示される)以外にも、単純に後の研究又は解析用に印加アドレスや関連の刺激情報等の基本的な情報を収集しておきたいと望む場合もある。また、このようなことが起きることを事前に予測し、それに対処することを目的とした他の区分をテストプログラムにあらかじめ作っておき、プログラムがある箇所に分岐するようにしておくことも考えられる。この仮定例においては、その「順次調和性」により原因(テストプログラム中の刺激)及びその効果(DUTからの応答結果)がテストプログラム用の命令フェッチにより分離されることが絶対にないことが保証されているため、これらの望ましい対策を講じることが可能なのである。
【0023】
【発明が解決しようとする課題】
しかしながら、試験を実施するDUTの処理速度はこのように遅いものではなく、メモリテスタを操作する者はDUT試験をこれらの実際の動作速度で実施したいと望むものである。更に、先の刺激がエラーを生じたかどうかをテストプログラムがすぐに調べるとは限らない。極めて高速なハードウエアを構築して順次調和性を維持すること以外にパイプラインによる遅延を見えないようにしておく手立ては実際上、無いのである。しかしながら、基本的な疑問である「プログラムのどこで不良が生じたのか」に対する答えを出すためにはエラー時に分岐することが出来るメカニズムが必要となるため、もっと困難なことである。いずれにせよ、パイプラインの先頭にあるテストプログラムは、対象となる刺激を供給した箇所よりも遥か先に進んでいるはずである。その時点では既にそのような刺激を複数発生した後である可能性も、更に条件分岐をした後である可能性も考えられる。最終的にエラーフラグが設定され、後にプログラムによって試験される場合であっても、どの事象がどれに関連したものであるのか、そしてその時点におけるアドレス等はどれだったのかをどのように確認すれば良いのであろうか。アドレス等はその時点とは異なっている可能性が高い。これらのことをその時点に立ち戻って調べることは非常に面倒なことである。テストプログラム中の事象が、これらがDUTにもたらす効果よりも先に進んでいるという事実に、どのように対処することができるのであろう。この問題を解消出来ない限り、メモリテスタはかなり大きな欠点を持つことになる。どうすれば良いか。
【0024】
【課題を解決するための手段】
問題は、関連エラーがDUT内で後の時点に生じた場合に、メモリテスタのテストプログラム中の適正な位置へと分岐を戻し、アルゴリズム的制御のその時点の状態を回復することである。アドレス及びデータ刺激をプログラム実行環境からDUTへと送信するための送信ベクトルパイプラインにおける遅延により、そして更にDUTからテストプログラム実行環境へと応答を送信するための受信ベクトルパイプラインにおける遅延により、プログラムは刺激を発した時点から任意量分先に進行していることになる。この任意量分の先進により、エラーに結びつく実際の状況を判定することが困難となっている。エラー信号に基づく分岐はテストプログラムを再起動させることは出来るが、しかしこれは単なるテンプレートでしかない場合が多く、テストプログラムの実行に伴って動的に変化するテストアルゴリズム制御情報を更に必要とするものである。これを解決するために、様々な履歴(history)FIFOがメモリテスタ中に設けられ、送信ベクトル及び受信ベクトルパイプライン遅延の合計をその履歴FIFOの位置に応じて考慮するためにその深さが調整される。エラーフラグが生成された場合、所望のプログラム状態及びアルゴリズム的制御情報が適正な履歴FIFOの最下部に提示されるようにすれば、これらを所望の処理に供することが出来る。この技術は、テストプログラムがALUを使用して独自のDUT刺激を生成する場合(完全自己充足型)だけではなく、テストプログラム/ALUが実施すべきDUT試験の本質に係わる中心的内容を含む中間バッファメモリをアクセスする場合においても適用することが出来る。前者の場合にはALU履歴FIFOが設けられ、後者の場合にはバッファメモリ履歴FIFOが設けられる。「履歴FIFO」という語は、総称的なものであり、特定のFIFOの分類名である。「履歴FIFO」と名づけられたFIFOは無い。特定数のこの分類があるだけである。
【0025】
更に、プログラマは、テストプログラムが異なる試験用に構成する異なるメモリテスタ設定に対して用意される様々なパイプラインの深さを調べるために労力を費やしたいとは、恐らくは思わないだろう。従って、設定がなされるに伴ってその履歴を追跡し、様々な履歴FIFOの深さを必要に応じて調節する機構が設けられる。更に、テストプログラムレベルにおいて、後に関連エラーがあったかどうかの確認が実施されることになる刺激が送信されつつあることを表示する何らかの「開始」機構が必要である。履歴FIFOが埋められるべき所望の使用深度を、その「開始」指示を起点として測るためである。
【0026】
刺激が発信された後、相当の期間にわたりその刺激に対応するエラーがあったかどうかをテストプログラムが調べない場合もあり得る。履歴FIFOがエラー発生後もしばらくの間にわたって新たな刺激を格納し続けることを許した場合、所望の対応付けは失われてしまう。従って、エラー発生時に履歴FIFOの内容をフリーズするための機構が設けられている。
【0027】
実際のDUT試験の間に、ECR(エラー捕捉RAM)へとデータを格納し、後にDUTを実際には動作させずに更なるテストプログラムを実行して調べることはよくある。様々なパイプライン遅延は、ECR中に記録された特定のエラー表示に関連するDUTへの印加アドレスを判別することを困難にする。このためにこれまで提供されて来た従来のユティリティ処理は非常に遅い。履歴FIFO機構はECR検査に適用することが出来、ECR履歴FIFOがあれば、時間を犠牲にすることなくその答えを得ることが出来る。
【0028】
最後に、履歴FIFOを実現するためのオーバーヘッドを大きくすることにより、テストプログラム中の分岐命令が早過ぎる時点(テストプログラム中にある原因によりそのエラーフラグ値が判定されるまでに要するパイプライン遅延よりも早い段階)ではエラーフラグに応答しないようにすることが出来る。
【0029】
【発明の実施の形態】
まず、図1を参照するが、ここには本発明の原理に基づいて構築された不揮発性メモリテストシステムの概略ブロック図1が描かれている。特に図示のシステムは、一度に最高36個の個別のDUTを各々最高64のテストポイントにおいて同時に試験することが出来るものであり、64箇所よりも多いテストポイントを持つDUTを試験するために試験リソース集合の構成要素を結合することが出来るように再設定機能を備えている。これらのテストポイントは、未だ分割・パッケージングされていない集積回路ウエハの一部分上の位置であっても、或いはパッケージングされた部品の端子であっても良い。「テストポイント」という語は、信号を印加すること(例えば電源供給、クロック、データ入力)が出来る、又は信号を測定すること(例えばデータ出力)が出来る電気的部位を指す。本願においては、当該産業分野における習慣に従い、テストポイントを「チャネル」と呼ぶものとする。先に述べた、「結合させる試験リソースの集合」という語は、最高36個までのテストサイトを指し、各テストサイトはテストサイトコントローラ4、(64チャネル)DUTテスタ6、そしてDUT14への実際の電気接続を成す(64チャネル)ピンエレクトロニクスの集合9を含む。あるDUTの試験において64本以下のチャネルを要するのであれば、このDUTの試験には単一のテストサイトで充分であり、この場合を、例えば「テストサイト#1(図1に図示)が『単一サイトテストステーション』を形成する、或いは『単一サイトテストステーション』として動作する」と表現する。一方、上述した再設定が何らかの形で行われる場合、2つ(以上)のテストサイトが「結合」して128チャネルを有する、より大型の同等のテストサイトとして動作する。従ってこの場合を、ここでも図1を例にあげると、例えば「テストサイト#35及び#36が『2サイトテストステーション』を形成する」と表現する。
【0030】
次に逆の場合を簡単に考察してみるが、留意すべきは1つのテストサイト全体で1つのDUTを試験しなければならない、或いは1つのテストサイトが1つのDUTしか試験できないということではない点である。ウエハが2個、3個又は4個のダイ(恐らくは隣接しているものであるが、必ずしもそうでなくとも良い)を含み、その試験チャネル条件の和が64本以下であると仮定する。すると、これらのDUT(15a−d)を単一のテストサイト(例えば図1のテストサイト#2)で試験することが出来る。これが可能なのは、後述する特定のハードウエアの説明で補足するが、各テストサイトが汎用プログラマビリティを持つためである。そのテストサイトが実行するテストプログラムを、そのテストサイトのリソースの一部が一つのDUTの試験に使用されることになるように、そして他の部分が他の1つのDUTの試験に使用されることになるように書くことが出来る。要するに、先に述べた最初の2つのDUTの論理結合である第三のDUTがあると仮定して、この第三のDUTを単一のテストサイトで試験することが出来れば、その「構成要素であるDUT」をそのまま同様に試験することが出来るはずであるということである。勿論、大きな違いは、第三のDUTに対する統合的な回答が出るのではなく、2つの「構成要素DUT」のうち、どちらが合格したか不合格となったかの記録が取られる。即ち、第三のDUTのどの部分が不合格となったかが問題となるのである。更に、不良DUTへの駆動信号を除外する又は制限する問題や、いずれのDUTが不具合を示しているかに基づいてテストプログラムを分岐させると同時にテストプログラムの過剰なマルチスレッド化を防ぐ問題を含む他の問題も存在する。この単一テストサイトでのマルチDUTテストステーション機能は特定の側面においてはかなり単純であり、他の側面においては複雑である。このマルチDUT試験を2つ以上のテストサイトを結合する概念と混同してはならない。
【0031】
このテストサイト再設定の概念を抜けば、テストサイトとテストステーションの間には何等の相違も無いことになり、いずれか一方の語を使用すれば良いことになる。しかしながら明らかなように、この概念によればテストステーションの数は必ずしもテストサイトの数と同じとはならない。過去においても、単純なマルチDUT試験では、1つのテストサイトを分割してより多数のテストステーションを作成すること(DUTが1つのテストサイトを使い切るほど複雑ではない場合等)で双方の数が違う場合があった。しかしながら、ここでの数の違いは、複数のテストサイトが1つに結合してマルチサイトテストステーション(DUTが単一のテストサイトで試験するには複雑過ぎる場合)を形成することにもよる。
【0032】
説明を先へ進めると、テストシステムコントローラ2は、システムバス3を介して最高36個のテストサイトコントローラ(#1〜#36)4a〜4z(符号後部のa〜zは1〜26文字迄であり、36個に対応しないが、数字符号の後に付ける接尾記号としては、まぎらわしい数字を使用するより好ましいと考えた)に接続している。テストシステムコントローラ2は、不揮発性メモリの試験タスクに関わる好適なテストシステム制御プログラムを実行するコンピュータ(例えばNTを起動するPC)である。テストシステム制御プログラムは、所望の試験を行うための仕事の階層(及び複雑性)において最高レベルにある抽象概念を表すものである。テストシステムコントローラは異なるテストサイトでどのプログラムが起動しているかを決定すると同時に必要に応じてテストプローブ及びDUTを動かすロボットシステム(図示せず)を監督するものである。テストシステムコントローラ2は、「テストサイトの一部が単一サイトテストステーションとして動作するように、他の一部がマルチDUTテストステーションとして動作するように、そして他のテストサイトが結合してマルチサイトテストステーションを形成するようにプログラムされる」という概念を支持する形で機能することが出来る。このような状況においては、異なる部品が試験されていることは明らかであるが、最も好ましくは、異なる部品に異なる試験が用いられることである。同様に、全ての単一サイトテストステーションが部品の同じ様式を試験しなければならないという条件は無く、マルチサイトテストステーションにもそのような条件は無い。従って、テストシステムコントローラ2は、必要とされるテストサイト結合を実施するコマンドを発し、その後、使用される様々なテストステーションに適正なテストプログラムを実行させるようにプログラムされているのである。テストシステムコントローラ2は更に、試験により得られた結果に関する情報も受信するため、不良品を破棄するための適正な行動を取ることが出来、そして例えば工場設備設定における製造工程制御等に利用出来る様々な解析結果のログを管理することが出来る。
【0033】
テストシステム自体は相応に大型の複雑なシステムである。一般的にロボットサブシステムを含み、これによりウエハをステージ上に搭載し、続いてピンエレクトロニクス9と接続するプローブ下の試験位置に試験対象である1つ以上の未来のダイ(この時点ではウエハはダイシングされていない)を配置するようになっている。テストシステムはまた、好適なキャリア上に搭載されたパッケージ済み部品の試験にも使用することが出来る。以下に説明するように、1テストステーションの形成にいくつのテストサイトが用いられているか、或いは1テストサイトにいくつのテストステーションが形成されるかにかかわらず、使用されるテストステーションの各々には少なくとも1つの対応するテストサイトコントローラ(後に説明する)が存在する。テストサイトコントローラは、例えば36〜64MBのプログラム及びデータメモリの組み合わせを含み、VOS(VersaTest O/S;これはアジレント社のV1300又はV3300等の不揮発性メモリを試験するための初期の製品にも使用されている)と呼ばれる自社開発OSを起動するインテル社のi960プロセッサ等の埋め込み型装置である。ここではしばらくの間、単一サイトテストステーションについてのみ考える。具体的な事例として、テストサイト#1がテストステーション#1としてWHIZCO部品番号0013を試験するように動作しているものとする。試験方式には100種類程度の異なるタイプの試験(電圧レベル、パルス幅、エッジ位置、遅延を変化させ監視すること、及び大量の選択パターン情報の単純な記憶と取得)の実施が含まれ、各タイプの試験ではDUTに対して何百万回ものメモリサイクルが含まれる。最上位レベルにおいて、テストシステムのオペレータがテストシステムコントローラ2に対してテストステーション#1を使ってWHIZCO0013の試験を開始するように命令する。テストシステムコントローラ2は、その処理の過程でテストサイトコントローラ#1(4a)[埋め込み(コンピュータ)システム]に対して関連のテストプログラム(例えばTEST_WHIZ_13)を起動するように指示する。このプログラムがテストサイトコントローラ#1の環境中に既にある場合、単純にこのプログラムが実行される。なかった場合、プログラムはテストシステムコントローラ2から供給されることになる。
【0034】
ここで基本的には、プログラムTEST_WHIZ_13は完全に独立したものであっても良い。しかしその場合、ほぼ間違いなくそのプログラムは大きく、テストサイトコントローラ4aの埋め込み型システムのプロセッサがこれを充分に高速で起動し、試験結果を所望の速度で生成すること、或いはDUTメモリサイクル毎に均一な速度で生成することでさえ難しくなる。従って、書き込むべき、或いは読み出し処理で期待されるアドレス及び関連データのシーケンスを生成する下位レベルのサブルーチンタイプの動作は、必要に応じてDUTテスタ6中にあるプログラム可能なアルゴリズム的機構により実行されるが、これはテストサイトコントローラ4中の埋め込みシステムが実行するプログラムと同期して動作するものである。この処理を、低レベルサブルーチン様の動作とDUTメモリサイクルを起動するタスクとをDUT14のハードウエア環境により近い機構(DUTテスタ)にエクスポートすることであると考える。すると、一般的に言って、テストシステムコントローラ2がテストサイトコントローラにテストプログラムを供給する度に、テストサイトコントローラに対するプログラミングにより記述される、又は要求される、全体的な動作の実行に要する適正な低レベル実行ルーチン(恐らくは試験するメモリに特定的である)が対応するDUTテスタに供給されることにもなる。低レベル実行ルーチンは「パターン」と呼ばれ、高レベルのプログラミング言語における機能や変数に名前があるのと同様に、これらにも一般名称が付けられている。
【0035】
各テストサイトコントローラ#n(4)はサイトテストバス#n(5)により対応するDUTテスタ#n(6)に結合している。テストサイトコントローラは、サイトテストバス5を使用してDUTテスタの動作を制御し、そしてそこから試験結果を得る。DUTテスタ6は試験方式に関わる様々なDUTメモリサイクルを高速で生成することが出来、また、読み出しメモリサイクルの結果が期待通りのものであったかどうかを判定する。基本的に、これは対応する有用な読み出し及び書き込みDUTメモリサイクルのシーケンスを起動することによりテストサイトコントローラから送られるコマンド又は処理コード(「名前の付けられたパターン」)に応答するものである(例えば対応するパターンを実行する等)。概念的にDUTテスタ6はDUTに印加されるべき刺激情報を出力し、また、そこから返される応答情報を受信する。この刺激/応答情報7aはDUTテスタ6aとピンエレクトロニクス#1のアセンブリ9aとの間で交わされる。ピンエレクトロニクスアセンブリ9aは最高64本までのプローブをDUT14に接続することが出来るように支援する。
【0036】
上述した刺激情報は、DUTテスタ中に使用されているいずれかの論理素子系列の電圧レベルに基づいて表現された、並列ビットパターンシーケンス(例えば「送信ベクトル」及び期待される「受信ベクトル」のシーケンス)でしかない。刺激/応答中のビット位置とダイ上のプローブとの間には設定可能なマッピングが存在し、このマッピングはDUTテスタ6が把握している。個々のビットはそれらのタイミング及びエッジ配置において適正なものであるが、マッピングに加え、これらをDUTに印加する前に電圧レベルシフトが必要な場合もある。同様に、刺激に続いてDUTから出力される応答も、DUTテスタに送り返せるような状態にする前にバッファリング及び(逆)レベルシフトが必要な場合もある。これらのレベルシフトタスクはピンエレクトロニクス9aの範疇にある。WHIZCO‐0013の試験に要したピンエレクトロニクスの設定は、ACME社の部品や、そして恐らくはWHIZ社のものであっても他の部品に転用出来る可能性は低い。従って言うまでも無くピンエレクトロニクスアセンブリ構成もまた設定可能でなければならず、このような設定能力の提供はPE設定線8aの機能である。
【0037】
以上、1つのDUTを試験するために1テストサイトがどのように構築されるかの構造的概要を述べた。次に、多数のテストサイトを動作させる場合に生じる問題について触れる。前提としてまず複数のテストサイトを有するテストシステムを構築するための推奨される実施例を説明する。これからここに記載する情報は多くの意味において顧客嗜好の市場調査結果及び費用利益分析結果に基づく選択の問題である。従ってこれらの事項のいずれか1つを構築するには、明確な選択をしなければならず、一度この選択を行うと、システム全体を通じて特定の結果が明らかとなる。ここではテストシステムのハードウエア特性のより広範囲な概要を少なくとも一般的な形で記載することが有用であると思われる。これらの特性は条件次第で変化するものではあるが、それでもそれらを知っておくことは本発明を説明する場合に提示する様々な例を理解する上での一助となる。
【0038】
まず始めに、4個の比較的大型のカードケージを想定する。各カードケージは、電源及び水冷機構(クリーンルーム環境下においてファンは汚染源となる可能性があり、水冷は完全に実装されたシステムからの数十kWもの放熱を除去する場合、空冷方式よりも安価である)の他に、マザーボード、前面及び後面を有する。各カードケージには最高9個のアセンブリを挿入することが出来る。各アセンブリはテストサイトコントローラ、DUTテスタ及びピンエレクトロニクスを含む。テストサイトコントローラがどのように結合するかについての一般的な概略を説明するが、これには幾つかのバスを使ってデイジーチェーン接続を作ることが含まれる。
【0039】
本題から若干それるが、最初にこの「デイジーチェーン接続」について簡単に触れる。システム構成要素A、B、C及びDがあるものとする。これらがこの順番でデイジーチェーン接続により連結したと想定する。すると、そこにはAを出てBに達する情報又は制御経路があり、BはBを出てCに達するトラフィックを選択的に送出することが出来、CはDに達するトラフィックを選択的に送出することが出来る。同様の構成が他方向のトラフィックにも存在し得る。デイジーチェーン接続は優先順位機構を作るために良く採用されているもので、ここでは様々なテストサイトコントローラ間にマスタ・スレーブ関係を作るために用いる。デイジーチェーン方式による通信構成を示す記号の後には「BUS」ではなく、「DSY」を付した。従って、例えば「コマンド/データ BUS」ではなく、「コマンド/データ DSY」としている。次に、情報が「Bに入り、選択的に送出される」という概念は、そのトラフィックが送出される前に、別の導体セット上に複製されることを示唆している場合もある。そうすることも出来るが、性能上の理由から、これはどちらかと言えばアドレス可能なエンティティを有する通常のバスである。プログラム可能なアドレスマッピング構成及び下流のテストサイトコントローラの一部分を「スリープ」状態にする能力により、1つのバスを論理的には複数のデイジーチェーンであるかのように見せる(機能させる)ことが出来る。最後に、デイジーチェーンはコマンド及び制御情報の経路として高い性能を持つものであることは言うまでもなく、もし、そうでなかったらマスタ・スレーブの組み合わせ(マルチサイトテストステーション)が1テストサイトと同じ速度で処理を行うことは望めない。デイジーチェーン性能を損なわないために各種DSYはそれぞれのカードケージの外に出ないようにする。これを実施するために、どの(従って幾つの)テストサイトを結合するかについて幾つかの制限が設けられる。基本的には制限を設ける根本的な必要も、技術的実用性の決定的な欠如があるわけでもない(即ち実施可能である)。これは単純に、既に9個のテストサイトがカードケージにあるのだから、DSYを延長することは多大なコストを払ってわずかな追加利益を得ることにしかならないとの考えからである。
【0040】
図1の説明に戻り、テストサイトコントローラ4a〜4zを考察するが、これらはそれぞれに9個ずつ、合計4個のカードケージ中に分散収容されている。これらを4a〜4f、4g〜4m、4n〜4t、4u〜4zとする(先にも述べたように、アルファベットは本来26文字しかないが、もう10文字がその中のどこかに存在するものと想定する)。CMD/DAT DSY17a(コマンド/データデイジーチェーン)は1つのカードケージ中にあるテストサイトコントローラ4a〜4fを相互接続し、別のCMD/DAT DSY17bは他のカードケージ中にあるテストサイトコントローラ4g〜4mを相互接続する。残りのカードケージにおいてもテストサイトコントローラ4n〜4t及び4u〜4zに同様の構成がそれぞれ存在する。先にも述べたように「DSYがカードケージを出ない」と言った場合、そのDSYを実際に構成するバスの最終端がそのカードケージを出ずに、他のカードケージにおける次の区分の頭になっている、ということである。かわりに、テストシステムコントローラ2からのシステムバス3が全てのテストサイトコントローラに達しており、テストサイトコントローラの各々が対応する「カードケージを出ないDSY区分」の頭においてマスタとして動作することが出来るのである。
【0041】
ここまで説明して来たCMD/DAT DSY17a〜17dはそれぞれのテストサイトコントローラ4a〜4zの間に存在する。SYNC/ERR DSY18a〜18d及びDUTテスタ6a〜6zも同様の構成である。SYNC/ERR DSY18によって運ばれる同期・エラー情報により、DUTテスタは調和して機能することが出来る。これら2種類のデイジーチェーン(17及び18)は若干異なる種類の情報を送信するものではあるが、しかし各々は1つ以上のテストサイトを結合してテストステーションを構成するための同じ全体機構の一部として存在している。
【0042】
次に図2の説明に進むが、図1のDUTテスタ6の概略を示す拡大ブロック図が描かれている。これは最高で36個設けられるものであるが、ここではそのうちの1つを説明する。図2を一目見れば明らかなように、概略ブロック図にしては相当な数の構成要素が描かれている。DUTテスタ6に含まれるもので、このブロック図に描かれた要素の中には、機能的に非常に複雑であり、市販品として容易に入手できないものもある。ここで2つの点について明記しておく。第一に、図2の主要目的は、不揮発性メモリテストシステム1全体の重要な動作環境の基本特性を説明することである。図3以降の図に関連して詳細に説明する本発明は、図2に基づいて以下に説明する機構の延長線上にあるものか、或いはその存在根拠を図2に見出すことが出来る新たな機構である。いずれにしても、この説明を書いている段階では読者がこれらの機構のどれに直面することになるかは明確にはわからない。現時点での目標は、様々な実施例の多数の異なる詳細説明の開始点として簡潔でありながら充分な情報を提供することにより機構の各々を簡明かつ適正に説明することである(異なる発明の各々について全てを開示する冗長な明細説明を避けるため)。第二に、拡大又は拡張した実施例の中には、図2に示した一般的な規則には準じてはいるものの、この単純な事例とは整合しない情報を含むものもある。しかしこれは誤りや決定的な矛盾ではなく、全体像を完全な縮小版で表すように物事を簡略化して示すことが時に困難、或いは不可能な場合があるからである。この状況は道路地図と似ている。例えばコロラド州の標準サイズの地図では、州間高速自動車道I‐70に乗って東へ向かえば、デンバーでI‐25に入って北へ向かうことが出来ることがわかる。これは左折のように見える。実際、昔は左折であったが、現在は違う。このインターを詳しく記した地図を見ると、一連の部分的進路変更と割り込み車線が示されている。しかしながら標準サイズの道路地図が間違っていると言う者はいない。このレベルの抽象性においては正しいからである。同様に、図2は相当詳しく描かれているようではあるが、実際は中程度の抽象性で描かれた簡略図であり、一見「左折」に見える部分でも、実際は単純な「左折」とは言えない場合もある。
【0043】
図1に示したように、DUTテスタ6への主な入力は、このDUTテスタ6に結合するテストサイトコントローラ4を起点としたテストサイトバス5である。テストサイトバス5は、テストサイトバス上のトラフィックをリングバス85又はVTバス89のトラフィックに転換するマルチバスコントローラ88に結合している。また、リングバスのトラフィックをVTバストラフィックに転換することも、逆にVTバスのトラフィックをリングバスのトラフィックに転換することも出来る。図2に示したほぼ全ての要素は大規模集積回路の一部である。後に説明するタイミング/フォーマッティング&比較回路52は、8個のこのようなICから成るものであるが、わかり易くするために1つのまとまりとして図示している。各種の外部DRAM(このうちの幾つかは内部テストメモリ87の一部でもある;図2参照)を除き、図2に示した他の要素は、APG(自動パターン発生器)と呼ばれるもう1つの大規模ICに属している。リングバス85は、DUTテスタ6のAPG部分に属する主な要素の設定や動作モードの設定等を行うための汎用の機構間通信経路である。更にAPG中の各種要素間には、様々な広帯域・高速経路が専用に設けられている。VTバス89は、このDUTテスタ内部でIC間を結ぶためのバスである。
【0044】
リングバス85は、テストサイトコントローラがDUTテスタ6のAPG部分と通信を行うための機構である。リングバス85はマイクロコントローラシーケンサ19に結合しており、マイクロコントローラシーケンサは特殊用途マイクロプロセッサとリンクしている場合もある。次アドレス計算器102により生成されたアドレスを用い、マイクロコントローラシーケンサ19の内部プログラムSRAM(PGM SRAM)20又は外部DRAM21にあるプログラムメモリ中に記憶されたプログラムから命令がフェッチされる。これら2つのメモリは、プログラムカウンタ(又は命令フェッチアドレス)として機能する、本質的、論理的に共通のアドレス63によりアドレス指定されているかのように見え、また、いずれも実行すべきプログラムの供給源と成り得るが、留意すべきは:(1)どの期間においてもいずれか一方のメモリが命令フェッチメモリサイクルを実行し;(2)実際、これらは電気的に異なる信号によってアドレス指定されている;という点である。SRAMは高速であり、真のランダムアクセスが可能であるが、マイクロシーケンスコントローラ19(大規模APG集積回路の一部)中の貴重な空間を使用するため、そのサイズは限られている。外部DRAMはかなりの容量まで柔軟に設定することが出来るが、直線的実行により分岐無しで連続領域をアクセスしない限り高速動作出来ない。SRAM20におけるプログラミングはアルゴリズム性の高いものが多いが、外部DRAM21は初期化ルーチンやランダムデータ、即ち不規則データのような、アルゴリズム処理では容易に生成出来ないものに適している。
【0045】
次アドレス計算器102は、無条件又は条件ジャンプ命令、或いはプログラム制御フラグ25、その他のフラグ55及びマルチDUT試験処理用の他の特定の信号103及び104(わかり易くするために別々に図示したDFE0:3、及びDPE0:3)で条件付けられる条件サブルーチン命令に呼応して、実行中のテストプログラムに分岐を生じさせることが出来る。
【0046】
マイクロコントローラシーケンサ19がフェッチし、実行する命令語は208ビットと、かなり長い。これは13個の16ビットフィールドから構成される。これらのフィールドはマイクロコントローラシーケンサ19の外部機構のためにフェッチした命令情報を表すことが多い。このようなフィールドは、それらに対応付けられた機構専用のものである。1セットのALU命令22が8個の16ビットALU24の集合に印加され、その他はDUTテスタ内に分散する他の様々な機構に配信される。後者の状況は、各種制御値および命令42と表示した線で表した。
【0047】
8個の16ビットALU24は、それぞれ関連する16ビット結果レジスタ(各ALUは他のレジスタも幾つか含んでいる)の周囲に構築された算術命令の周知のレパートリーを有する。結果レジスタの内3つと、それらに関連するALUは、X、Y及びZのアドレス構成要素27を生成するためのものであり、アドレス構成要素は様々に組み合わせられてDUTに供給される完全なアドレスとなる。8個のALU/レジスタのうち、更に2つ(DHおよびDL)は、32ビットデータパターン28をアルゴリズム的に作成するのを助けるものであり、32ビットデータパターン28は最上位部(DH)と最下位部(DL)との間で分割される。最後の3つのALU/レジスタ(A、B、C)はカウンタとして使用され、様々なプログラム制御フラグ25の生成に寄与する。これらのプログラム制御フラグは、プログラムで指定された繰り返し回数又は他の数的条件が完了した時点で実施されるプログラム制御及び分岐を補助するものである。これらのプログラム制御フラグ25はマイクロコントローラシーケンサ19に返送され、ここでマイクロプログラムされた実行機構を熟知する者には周知の方法で命令フェッチアドレスの値(次アドレス計算器102が生成する)に作用を及ぼすことになる。更に各種の「その他のフラグ」55も存在し、これらもプログラム分岐を生じるために用いることが出来る。これらはフェッチした命令語に含まれる他のフィールドによって制御されるDUTテスタ6中の他の機構のそれぞれを起点としている。このようなフラグの具体例として、PD_ERR90を別途に明示的に示した。これはポストデコード機構60からPGM SRAMに供給されるもので、ポストデコード機構60がエラーを見つけたことを表示すものである。他の更なるフラグとしては、VEC_FIFO_FULL26があげられる。より簡略化した他の図においては、これもその他のフラグ55に包含されている。これをここで個別に示したのは、マイクロコントローラシーケンサ19処理の一側面の説明を助けるためである。
【0048】
VEC_FIFO_FULLの機能は、マイクロコントローラシーケンサ19によるプログラムの更なる実行を(一時的に)停止させることである。マイクロコントローラシーケンサ19がフェッチした命令と、DUTに印加すべきテストベクトルを最終的に送出する機構との間には多段のパイプラインが存在する。更に、DUTへの印加に向けて送信される過程でベクトルが付加されるデータの塊りは、最終的なベクトル印加速度、或いは各ベクトルの持続時間に関する情報をその一部に含んでいる。従って、DUTへのベクトル印加速度は一定である必要は無く、具体的には、あるベクトル群の印加時間がその生成にかかった時間よりも長くても良い。マイクロコントローラシーケンサは、単純にプログラムをその最高速度で実行する。しかしながら、「ベクトル消費」速度が「ベクトル生成」速度と平均で等しくなければ、パイプラインにはほぼ無限大の柔軟性を持たせなくてはならなくなることは明白である。以下に説明するアドレスマッパ29の出力にはベクトルFIFO45があり、これがパイプライン中の柔軟な容量として機能する。信号VEC_FIFO_FULLは、パイプラインの先頭における新たなベクトルの生成が一時的に中断されるように作用することでパイプライン中の限界段数を超過しないようにするものである。
【0049】
更に説明を続けると、(3×16=48ビットの)X、Y及びZアドレス構成要素27がアドレスマッパ29に印加される。アドレスマッパ29の出力は、ほぼ任意に事前選択された構成で順序付けられた48ビットアドレス空間中のアドレス値へと並べ替えられたものである。この理解を助けるために本題から離れるが、このアドレスマッパ29を48ビットアドレス空間が完全に埋まったメモリとし、各アドレスには48ビット値が保持されていると想定する(このようなメモリを現在実現しようとすれば大型冷蔵庫大となるであろうが、このことは一時的に無視して考える)。このようなメモリがあればどのようなアドレスが与えられても、他の任意に選択された、後に置き換えアドレスとして使用できる48ビット値にマッピングすることが出来るルックアップテーブルが実現する。このようなアドレスマッピングが望まれる理由は、X、Y及びZアドレス構成要素が一般的に、特定のDUT内部構造のコンテキストにおいて1つの大型リニアデコーダでは実現されにくい有用な意味を持つためである。行、列、層、ブロック或いはページといった概念はテストエンジニアにとっては非常に便利なものであり、物理的に近い位置で生じた不具合は、これらのX、Y及びZアドレスにおいてもこれに対応する近接性を持っている。試験結果におけるこのようなパターンは、何が悪いのかを評価し、これを欠陥部分による処理が予備部分による処理へと分岐されるように設計レベル、又は製造レベルで再プログラミングする等して修復する上で非常に貴重なものである。このような考え方からは、2つの問題が生じる。第一の問題は、48ビットをペアリング(paring)してDUTに印加すべき実際のビット数(例えば32又は16)へと減じる点である。このペアリングがどのように行われるかを簡単に説明すれば、これはXから何個かのビットを得、Yから何個かのビットを得、そしてZから残りのビットを得るということである。しかし全部ではない。そして、特定のアドレスは、回路の他の部分の左右(又は左右及び上下)鏡像である回路中に位置する可能性があるため、これが第二の問題となる。この場合、連続アドレス値が回路中の物理順序で並んでいる限り、ビットの意味が変化することになる。このチップレイアウト特性は何回も生じ得るもので、ある1群のビット(例えばY)が何を意味するかは、それに付随する他のビット群(例えばZ)の値に依存する場合がある。アドレスマッパ29はX、Y及びZの生アドレスを「再パッケージング」することでこの種の状況を反映させることを可能としたもので、このような内部構造構成を有するメモリを試験する人々の便宜をはかるものである。実際にこれがどのように行われるかを説明する。アドレスマッパ29は、相互接続された相当数のマルチプレクサから構成される。これは、先に一時的仮定例として説明の便宜上触れた、完全に埋められたメモリ復号化方式における完璧な任意ルックアップテーブル機能を実現することは出来ない。しかしながら、特に48ビットから実際に必要な数へとペアリングにより減ずることが出来る他の機構があるため、X、Y及びZアドレス構成要素のサブフィールドを必要に応じて並べ替えることが出来る。アドレスマッパ29は3個の16ビット(アドレス)ルックアップテーブルを更に有し、これらによって限定された任意マッピングを局所範囲において実施することが出来るのである。
【0050】
アドレスマッパ29のマッピング後アドレス出力30は、様々なバッファメモリ及び(又は)TagRAM31A、31B、そしてエラー捕捉RAM1、2(32A、32B)にアドレスとして印加される。これらのメモリは、異なる機能を持ってはいるが、集合的に内部テストメモリ87を構成する4つのメモリセット内において、選択可能なパーティションとして実現することが出来る。マッピング後アドレス出力30は更に1入力としてアドレスビット選択回路37(その多重化機能は後述する)にも印加される。内部テストメモリは、異なる機能用途に使用するための、RAMをベースとした様々なメモリ構造を含むように設定することが出来る。その設定は、異なるメモリセットの特定部分をそれらの対応用途に使用することを宣言することにより行われる。図2に示されるのは、そのような構成の一例である。この構成は試験の進展に伴い再構成することが出来、メモリセットの使用に関わる処理は非常に動的な性質を持つものと考えられる。内部テストメモリ中に存在するもの(例えばエラー捕捉RAM32A、32B)の中には恒久的なハードウエアとしての固定要素は一切無い。不変的に存在するのは4つのメモリセットだけである。しかしながら、いずれの時点においても、(もし実際に定義されるとすれば)どのメモリセットのどの部分がエラー捕捉RAMであるかに関しては、現在確立されている設定に依存するのである。
【0051】
バッファメモリ31A及び31Bについて説明する。これらの機能は、DUTに印加することが可能なデータパターン33及びアドレス34を保持することである。これらは実際には対応するバッファメモリの別個の出力であるが、バッファメモリは「デュアルポートメモリ」ではなく、2つの異なるメモリセットの部分から構成されたものであることが望ましい。そうした場合、記憶されたデータ33が一方のメモリセット中に保持され、記憶されたアドレス34が他方のメモリセット中に保持されていることが望ましい。また、バッファメモリに書き込みを行うための明確な機構を図示していないが、これを行うための方法の1つとしては、実行中のプログラムの命令でテストサイトコントローラ4が起動するアドレス指定されたバスの処理により実施する方法がある。「リングバス85」と呼ばれる「床下」の「ユティリティサービス」バスがあり、これが図2に示した要素のほぼ全てに通じている(図が非常に見にくくなるため、これが各箇所に接続している状態は図示していない)。メモリセットに情報を書き込むための他のより高速な方法は、図3に関する説明で触れる。
【0052】
エラー補足RAM32A及び32Bはバッファメモリに印加されたものと同じアドレスで指定される。これらのエラー捕捉RAMは、エラーに関する情報を記憶及び取得するもので、その処理は後に説明するポストデコード回路と連係して実施される。バッファメモリ31A、31Bからの経路33、34と同様に、エラー補足RAM1(32A)からの経路62A〜62Dもまた、リングバス(図示せず)により配信された設定情報に基づき、エラー捕捉RAMとして設定されたメモリセット部分から出力される多重化出力であることが望ましい。
【0053】
留意すべきは、データマルチプレクサ35はその入力として、ALU集合24中のレジスタDH及びDLからのデータ28と共にバッファメモリ31Aから出力される記憶データ33も受けるという点である。データマルチプレクサ35はこれらの入力(28、33)のうち、どちらをその出力38として提供するかをPGM SRAM20に記憶された値36に基づいて選択する。その出力38は、次に説明するように変更されることが無い限り、2つのベクトル構成要素のいずれか一方として(もう一方の構成要素はアドレスビット選択回路37の出力39)送信ベクトルマッパ/シリアライザ/受信ベクトル比較データ回路40に印加される。
【0054】
回路40は3つのベクトル機能を実行することが出来るもので、その機能とは、ベクトル構成要素(38、39)を組み合わせることによりDUTに印加(伝送)し得るベクトル全体を順序付けられた論理表現において作成すること、送信ベクトルの論理表現の順序ビットと、DUTに信号(ベクトル中のそのビット)を届けるために接触するピンエレクトロニクスの実際の物理チャネル番号(例えばプローブ先端を特定する番号)との間に動的な任意の対応付け(マッピング)を実施すること、そしてそれを受けるDUTに対し、別個に、順序通りに(シリアル化して)印加されるように全体の論理ベクトルを分割する際にコンパイラと連係して作用することである。これらの機能のうち、どれが実行されるかは、SRAM41からの制御信号により決定するが、このSRAMもまた、マイクロコントローラシーケンサ19によりフェッチされた208ビット命令中の1フィールドに基づいてアドレス指定されるものである。
【0055】
回路40には、DUTディスエーブル論理部90が含まれている。この目的は、一部は静的であり、一部は試験結果に応じて変化する、全てがプログラム的に定義された様々な条件に呼応し、4個のDUTのうち、どの1つ(又は複数)をディスエーブルとするかを表示することである。これらの表示は、4つの信号44b(DD0:3)(DUT0へのディスエーブル信号、DUT1へのディスエーブル信号・・・等)により送信される。これは単一テストサイトにおけるマルチDUT試験を支援するものである。回路40の出力は最高64ビットまでのベクトル44aであり、これがDUTディスエーブル信号44bと共にベクトルFIFO45に印加される。FIFO45は、完全に埋まると信号VEC_FIFO_FULL26を生成するが、この信号の意味及び目的は先に説明した。後に説明する期間発生器49からの信号VEC_FIFO_UNLOAD47を受け、ベクトルFIFO45の最上部にあるベクトルがそこから取り出される。取り出されたベクトル46は、対応するピンエレクトロニクス9を介してDUTへと接続するタイミング/フォーマッティングおよび比較回路52に印加される。即ち、(多数存在するテストサイトの1つにおける)各ピンエレクトロニクス9が、送信・受信ベクトル7及びピンエレクトロニクス設定情報8を、それぞれに対応するタイミング/フォーマッティングおよび比較回路52から受信するのである。
【0056】
タイミング/フォーマッティングおよび比較回路52は、設定情報及び制御情報を受けるためにVTバス89に結合している。タイミング/フォーマッティングおよび比較回路52は単一の要素として取り扱ってはいるが、これらが本来は8個のICであることは先にも説明した。
【0057】
タイミング/フォーマッティングおよび比較回路52は、マイクロコントローラシーケンサ19のプログラムSRAM20と同じ命令アドレス(丸で囲まれたA)によりアドレス指定される内部SRAM54を有する(外部DRAM53を内部SRAM54の代わりに使用しても良いが、これは図示していない増分カウンタによりアドレス指定される)。内部SRAM54(又は外部DRAM53)は、ドライブサイクル及び比較サイクルの生成を助けるものであり、これらのサイクルは関連したフォーマットを持っている。ドライブサイクルは、RAM54又は53により供給される事前に選択されたフォーマットを用いて送信ベクトルをDUTに印加するものである。比較サイクルはDUTから供給されるベクトルを受信し、これをRAMから供給された事前選択フォーマットに基づいて調べ、それが先に得られた比較データと一致するかを決定するものである。ドライブサイクル及び比較サイクルはいずれもその持続時間に関して設定することが出来、更に負荷を印加するかどうか、何時印加するのか、何時データをラッチ又はストローブするのか、信号がリターン・トゥ・ゼロ(Return-To-Zero)信号であるかどうか、送る信号を補完情報で囲むのかどうか等(これらのオプションが上述した各種フォーマットである)についても適正な範囲で設定可能である。
【0058】
タイミング/フォーマッティングおよび比較回路52により生成される比較結果は、論理値の誤り(機能エラー)及び(又は)許容範囲を外れた電気特性(パラメータエラー)によりそのチャネルが不具合を呈したかどうかについて、チャネル毎の情報を含んでいる。更に、マルチDUT試験が実施された場合、どのチャネルがどのDUTに通じているかは既知である。これにより、4つの機能エラー信号DFE0:3(DUT#機能エラー)103及び4つのパラメータエラー信号DPE0:3(DUT#パラメータエラー)104の生成が可能である。
【0059】
タイミング/フォーマッティングおよび比較回路52により実施される比較処理においては、回路40の論理的反転であると言える機能を持つ受信ベクトル逆マッパ/デシリアライザ57に印加される64ビット値56が更に生成される(回路57の処理はSRAM58により制御されているが、これは回路40のSRAM41による制御に対応する)。そして回路57の出力59はポストデコード回路60に、そして更にエラー捕捉RAM1(32A)に印加される。ここではあまり詳細にわたって説明しないが、ポストデコード回路60は入力されるエラー情報59と以前にエラー捕捉RAM1(32A)中に記憶されたエラー情報の両方をプログラム基準に基づいて検分し、凝縮した、より容易に解釈出来るエラー情報を生成することが出来る。生成されたエラー情報は経路61を介して他方のエラー捕捉RAM2(32B)に戻し、記憶しておくことが出来る。一例として、特定のアドレス範囲でエラーが生じた回数の計数値を作成すること等があげられるが、このような情報はいつ代替回路を起動することによりオンチップ修復を試みるかを決定する上で有用である。
【0060】
次に期間発生器49及びこれに対応するタイミングSRAM51について説明する。これらは8ビット信号T_SEL43に応答して、マイクロコントローラシーケンサ19によりフェッチされた208ビット命令の各々に関連するタイミング/フォーマッティングおよび比較回路52の処理の継続時間を決定するものである。T_SEL43は、フェッチされた命令中の異なるフィールドによってそれぞれに表される各種制御値および命令42の一部である。この信号は、8ビット値として256の異なる「事柄」を表す、即ち符号化することが出来る。この場合の「事柄」とは、タイミングSRAM51に記憶され、T_SELによりアドレス指定される28ビット値である。アドレス指定された28ビット値23の各々は19.5ピコ秒の分解能で所望の継続時間を指定するものである。アクセスされた28ビット継続時間値23のシーケンスは期間FIFO50中に記憶され、ここからそのシーケンスの個々の要素が取得され、その後、ベクトルFIFO45が記憶するそれらに意図した対応ベクトルの取得に同期して印加されるようになっている。
【0061】
FIFO50の最も古いエントリ中にある粗タイミング値フィールドは5ナノ秒の分解能で継続時間情報を含んでおり、この情報から、次の送信ベクトルをベクトルFIFO45からタイミング/フォーマッティングおよび比較回路52に送る信号VEC_FIFO_UNLOAD47が生成される。随伴信号TIMING REMAINDER48もまた、回路52に印加される。この時点で19.5ピコ秒という最終分解能に達するのである。
【0062】
上述はメモリテスタの総合的性質を紹介したものである。これを開始点とし、以下おいてはスコープモード及びその関連事項を説明する。
【0063】
ここで図3を参照するが、これは図2のブロック図(6)の一部を拡大したもので概略ブロック図(64)であり、ALU履歴FIFO69及びそれに関連する制御回路を含んでいる。まず始めに次アドレス計算器102について触れるが、その役割は、ハードウエアが実行する実際の208ビット命令語を格納するプログラムSRAMへと印加するアドレスシーケンス63を生成することである。即ち、次アドレス計算器102は次にフェッチされる命令語のアドレスを表示するプログラムポインタの管理機構なのである。新たに有効なアドレスがある場合は必ず信号PGM_STEP83が発信される。
【0064】
実行中の機械語が分岐を許容し、かつ、対応するフラグ55及びプログラム制御変数25等が存在した場合、次アドレス計算器102はシーケンスから外れたアドレス63で応答することにより、テストプログラム中に分岐を発生させる。この機能に関連する信号の中に、PD_ERROR(ポストデコードエラー)90と呼ばれる信号がある。これは図2のポストデコード回路60を起点とする信号であり、その内容は参照により組み込まれた特許出願「MEMORY TESTER WITH ENHANCED POST DECODE」に詳細にわたって記載されている。ごく簡単に説明すると、この信号は、ポストデコード回路60内部で設定出来る何らかのエラー検出基準が満たされた事実を、ポストデコード処理が検出したことを意味するものである。ここでの関心事は、PD_ERROR90の発生と関連付けられるテストプログラム位置及び関連状態情報がどれであるか、という点である。即ち、知らなければならないのは、ALUレジスタX、Y及びZの内容(アドレス)と、そして恐らくはDH及びDLレジスタの内容(これらが組み合わせられて32ビットデータを構成する)であり、また更にはA、B及びCレジスタの内容(これらはループインデックスとして、或いは他のテストプログラムフロー制御に用いられる)も、恐らく知る必要がある。そして、これらのレジスタの内容を回復することが出来るようにALU履歴FIFO69が存在するのである。一部の実施例においては、ALU履歴FIFO69中に単にアドレスレジスタを設ければ充分な場合もあれば、他の実施例においては、ここで触れない更なるレジスタを設けることが有用である場合もある。
【0065】
その概念はこうである。テストプログラムは、周期的にPD_ERROR信号の有無を調べ、それが存在した場合、恐らくはその事実をプログラム中の特定の位置へとジャンプする必要性へと関連付けることが出来るものである。しかしながら、そのジャンプの行き先は、何かを実行するための単なるテンプレートでしかない場合が多く、意図した通りのジャンプを実行するには、各種レジスタの内容(履歴FIFOに保存されている)が回復されなければならない。しかしながら、ジャンプの行き先が、後にそのPD_ERRORを生じる原因となった命令を指示するプログラムポインタの真の値ではない場合さえ考えられる。これらの理由に関連して、次アドレス計算器102のプログラムポインタ値がALU履歴FIFOに保存される項目には入っていない点に留意されたい。マイクロプロセッサにおけるコンテキスト切換えとは異なり、ここでは行く必要があるテストプログラム位置を設定するために通常のプログラムジャンプに依存している。ALU履歴FIFOは、プログラムの制御下で、或いは自動的に、DUTアドレス、DUTデータ、そして恐らくはプログラムループ制御インデックスのコンテキストを回復するものである。このように、ALU履歴FIFO事象の結果は、これが作用を及ぼすプログラムそのものにより柔軟に制御することが出来る。
【0066】
説明を続けるが、プログラムSRAM20からフェッチされる208ビット命令語65の中には、ALU処理(テストプログラムのアルゴリズム的制御)にかかわるALU命令(22、66)を記述するnビット部分がある。また、BEGIN_HISTと呼ばれる1ビット部分68も含まれ、その意味と使用については簡潔に下記に述べる。そして208ビットから上記を除いた残りの部分67のビットは、必要に応じた様々な箇所へと送られるものである。
【0067】
ALU命令(22、66)は、ALU命令回路の集合70へと印加されるが、この回路70はALUレジスタの集合(71〜78)へと適正に接続されている。これらのALUレジスタは図2のレジスタと同一のものであり、図3においては、A_ALUレジスタ71、B_ALUレジスタ72、C_ALUレジスタ73、DH_ALUレジスタ74、DL_ALUレジスタ75、X_ALUレジスタ76、Y_ALUレジスタ77、Z_ALUレジスタ78として表示されている。図3においては、図を見易くするためにこれらの各種レジスタの接続の全容を図示してはいないが、実際には図2に示した接続がそれらの後に続いていることは言うまでもない。しかしながら、この図においてはレジスタはALU履歴FIFO69の一部に接触して描かれている。実際、ALU履歴FIFO69は8つの列、フィールド又は区分を持っており、それら各々への入力は、上記にあげた8つのALUレジスタの各々である。これらは調和して動作するため、各FIFO区分の各々の深さは全て等しい。その深さは、各々が約40である2つのパイプラインの長さの和として得られる85程度が望ましい。その低部に引かれた太線105は、8つのFIFO区分の出力が全て集められ、リングバス85を介してシステムの他の箇所へと提供出来る(UNLOAD処理において)ことを意味している。
【0068】
ALU履歴FIFO69は4つの制御信号を持つ。これらの1つはRESET信号79であり、その作用は(内部)FIFOロードポインタ及び(内部)FIFOアンロードポインタを開始値に設定し、そして恐らくは全ての内容を消去することである。また、LOAD信号81は、8つの結合するレジスタ71〜78の内容をそれぞれに対応するFIFO区分へとロードし、FIFOロードポインタを増分させる信号である。更にUNLOAD信号107は、一番先にロードされた値をFIFOから抜き出し、アンロードポインタの値を増分させる信号である。この抜き出し先はリングバス85であり、そこから中間地点、又は最終的な宛先へと送信される。リングバスへと直接アンロードするかわりに、値を専用の保持レジスタ(図示せず)中へと格納しても良く、その場合は必要に応じて格納された内容をここからリングバスへと送る、或いは専用経路を介してALUレジスタへと迅速に戻すことが出来る。このような構成により、プログラム制御下においてこれらのALUレジスタの値の検分(必要であれば)及び回復が可能となる。アンロード処理においては、リングバス幅よりも多数のビットが取り扱われることになる。この状況は、最初に接続する専用保持レジスタ(例えば高速なもの)へとアンロードを行い、その後に保持レジスタの内容をリングバスへとスタガ方式で送信することで対処することが出来る。アンロード処理がデータ廃棄に限られている場合、これに対するスタガ処理は省くことが出来る。
【0069】
もう1つのFIFO制御信号は、FULL80である。これは、FIFO中にアンロードされる場所が無く、更なるロード処理が行われた場合、情報が失われる結果となる(新たなデータによる古いデータのオーバーライト)ことを意味するものである。このような状況は履歴FIFOの存在理由に反するものであり、望ましくない。パイプラインに一致する十分な深さのFIFOを作ったのは、これを防ぐためである。従って、FULL80が真の場合は絶対にLOAD81が生成されないように、信号FULLは反転された後、LOAD信号のソースとなった信号(PGM_STEP83)とAND演算される。このAND演算はANDゲート82が実施する。
【0070】
ALU履歴FIFOの処理を説明する前にもう1つ予備説明を行う。先にも触れたように、パイプラインの深さは常に固定されているわけではなく、特定の必要によって生じたメモリテスタの処理設定に応じて変化するものであり、このような変化はテストプログラムの連続する部分で生じる可能性もある。テストプログラムのロード及び実行に係わる管理ソフトウエアが提供するハウスキーピング機能は、テストプログラムの各区分について、パイプラインの実効深度を認識しておく役割を果たしている(これがわかるのは、このソフトウエアが、テストプログラムが必要とする設定変更を行うために使用されるユティリティ集合のホームでもあるためである)。この値はその管理ソフトウエアにより、最初の時点及びこれに変化が生じた時点でパイプライン深度レジスタ84aへと格納される。この値は、信号BEGIN_HIST68の発生により(この信号はFIFO69もリセットする)、このレジスタからダウンカウンタ100aへとコピーされる。
【0071】
BEGIN_HIST68は基本的にはテストプログラム中に埋め込まれたフラグであり、208ビット命令語中の1ビットフィールドとして表されている。BEGIN_HIST68は、これが属する命令語、又はその次の命令語が、後に検分されるエラーフラグ(PD_ERROR90)が真であった場合にALU履歴FIFO69が後に指し示すべきプログラム中の位置であることを意味する。また、これを別の側面から解釈すると、「以前の履歴が破棄され、新たに開始する準備が整っている」ことを表している。従ってテストプログラムのこの位置でBEGIN_HIST68が発生し、FIFO69がリセットされ、レジスタ84aからダウンカウンタ100aへと実効パイプライン深度がロードされることになる(もう1つのダウンカウンタ100bもパイプライン深度レジスタ#2からロードされるが、これについては後述する)。
【0072】
ここで、プログラムSRAM20からの更なる命令がフェッチされ、実行されるに従って、対応する信号PGM_STEP83が生じる。そしてこれらの信号PGM_STEPに対応してFIFOへのLOAD81のインスタンス(この時点でFIFOには未だ充分な空きがある)及びダウンカウンタ100aの減分インスタンス(PGM_STEP83はダウンカウンタ100a及び100bのCOUNT端子へと送られる)が発生する。ダウンカウンタ100aのカウントは最終的にゼロとなるが、この状態はダウンカウンタ100aに接続するCOUNT#1=Zero回路101aからの出力により表示される。この状態は、実効パイプライン深度に到達したこと、そして以降はFIFO69中のエントリ数を増やすことを止め、FIFOの使用深度を一定に維持すべきことを意味する。このように、PD_ERRORが出現した場合、FIFOの「FO」端にあるものが所要のデータとなるのである。
【0073】
PD_ERROR90のインスタンスが発生していない間は、FIFOにおいて新たな値のロードが生じる毎に一回づつのアンロード処理を行っても安全である(履歴FIFO69のFO端が異なる値集合で埋められることになる)。この状況は、BEGIN_HIST信号が早い時点で生じた、或いはそれがPD_ERRORが未だに生じていないことを意味する(実際、全く生じない場合もある)。ロード/アンロード処理は、FIFOがいずれの時点においても一杯にならないようにするものである。ここでUNLOAD107がどのように生成されるのかについて説明する必要がある。
【0074】
1ビットの履歴モードラッチ105が存在し、これをリングバス85を介して設定することが出来る。それは、ここで説明している全ての履歴FIFO制御を有効化しようとすることを意味する。ALU履歴モードラッチ105には、これもBEGIN_HIST83によりリセットされるセット/リセットラッチ98が接続している。ALU履歴モードラッチ105が設定されている間は、信号PD_ERROR90が生じた場合に必ずこのラッチ98が設定される。これはANDゲート86により実施される。
【0075】
話を元に戻すが、FIFO69がアンロードされる度に新たな命令のフェッチ(PGM_STEP83)が発生し、Count#1=Zero回路101aが現時点でFIFO69がパイプラインの実効深度に及んでいること(カウントがゼロ)、そしてPD_ERRORのインスタンスが未だ発生していないことを示す。PD_ERRORのインスタンスが全く発生しないことも考えられるが、ここではいずれそれが発生することを前提に説明する。ここでラッチ98のQ出力が設定され(信号FREEZE_HIST99)、その反転がANDゲート106の入力に生じた場合、更なるUNLOAD信号107は生成されなくなる。この時点でレジスタ71〜78への値となるべき対象を捕捉したことになる。これらは次のアンロード処理の実施により取得されることになる(恐らくは何らかのソフトウエアが実行し得た時点で取得されることになる;図示はしていないが、そのソフトウエアが所望の値を取得するためにリングバス等へのアンロードを強制することも出来る)。ここで更にLOAD処理をディスエーブルすることが推奨されていないことに疑問を持つ向きもあるだろう。そうすることは可能ではあるが、信号FULL80がLOADの生成を止めている(ANDゲート82により実施される)限りは、どちらでも良いのである。
【0076】
更に、PD_ERRORがCount#1=Zero以前に発生した場合にどうなるか、という疑問も生じるかも知れない。これは重要な疑問である。そしてその答えは、「そのような事態が起きるはずが無い、起きてはならない」である。万が一起きてしまったとしたら履歴モードラッチ105の設定及び、PD_ERROR90を生成(またはリセット)するためのポストデコード回路60の設定において、BEGIN_HISTインスタンス(テストプログラム中に起点がある)の用法を誤っている場合が考えられる。この状況は、括弧式のネスティングや重複を不可能にするシステム中の不整合括弧を探すコンパイラに通じるものがある(結局のところ、履歴FIFOは1セットしかないのである)。
【0077】
ここに、先に存在していたプログラム位置とエラーフラグの状態との対応付けを行うためのALU履歴FIFO機構が提供されたが、これに本来の意図とは異なる更なる目的を付け加えたい。それは、この素晴らしい機構の目的を、PD_ERROR発生時におけるALU条件の回復だけに限定することはないのではないか、という考えに基づく。ALU履歴FIFOはパイプラインに一致する遅延を含んでいる。そのことを利用して、対応する命令がフェッチ及び実行された後のパイプライン遅延を経た時点であるエラー発生時(又は後)におけるエラー信号又はフラグの値を正確に試験する方法はないのか。何を意図しているかは既に明らかであろう。このコンテキストにおいて「正確に」と述べたのは、対象とする命令の数サイクル前に起きた何かに起因するエラー信号又はフラグ、即ち早過ぎる時点で生じたエラー信号又はフラグには反応しないという意味である。これは可能である。
【0078】
ここで対象としているエラー信号又はフラグは、FERR113(機能エラーがあったことを意味する)、PERR114(パラメータエラーがあったことを意味する)及び(ここでもまた)PD_ERROR90である。最初の2つの信号がどのように生成されるかについては、組み込まれた「MEMORY TESTER TESTS MULTIPLE DUT’S PER TEST SITE」に記載されている。この出願の図5を見ると、DUT毎の機能エラー及びパラメータエラー信号がどのように生成されているかがわかる。更に同図6を見ると、各DUT関連要素の信号から可能な、様々な組み合わせを示すことが出来るYDFE(YesDUT機能エラー)及びYDPE(YesDUTパラメータエラー)を生成するために、システムがどのように設定することが出来るかが示されている。本願の目的上、ここに示されるYDFEは本願におけるFERRと同じものであり、YDPEはPERRと同じものである。
【0079】
FERR及びPERRは、その出現までのパイプライン遅延が同じである場合が多いが、PD_ERRORのパイプライン遅延は異なったものとなる可能性が高い。いずれにしても、パイプライン深度レジスタ#2(84b)はFERR及びPERRに対して適正な値へと事前に設定され、パイプライン深度レジスタ#1(84a)はPD_ERRORに対して適正な値へと事前に設定される。
【0080】
テストプログラム中のいずれかの段階において、いずれ上述した信号の1つを発生させることになるかも知れない刺激が印加される。テストプログラムの同じ段階でBEGIN_HIST68が発生する。これによりダウンカウンタ100bへとパイプライン深度がロードされ、プログラムが更なる段階へと進行するに従って(PGM_STEP83の連続インスタンス)このカウンタがダウンカウントされて行く。最終的にはCOUNT#2=ZERO115が真となり(後述する)、これにより2つのMUX110及び111による選択が決定する。MUX109は信号COUNT#1=ZERO108により制御される。
【0081】
FERR113及びそのMUX111を一例として説明する。他方の対の処理も同じ方法で行われる。COUNT#2=ZEROが偽である限り、MUX111はその出力として、テストシステムによりエラーの不在状態と関連付けられた電気的値である信号<NO_ERROR>116(次アドレス計算器へと送られ、そこでの分岐に用いられる3ビット集合112のうちの1ビット)を選択する。ビット集合112はクオリファイヤ(qualifier)信号を構成することができる。しかし、パイプライン遅延が経過すると、実際のFERR113が何であるのかが問われる。これが行われるのは、COUNT#2=ZEROが真となり、MUX111が次アドレス計算器102へと送るべき値として今度はFERRを選択するためである。
【0082】
PERRでの分岐もFERRの場合と同様に起きるものであるが、ここではMUX110が使用される。PD_ERROR90での分岐様式も他の2つの場合と同様であるが、唯一の相違点は、これがALU履歴FIFO(パイプライン深度レジスタ#1(84a))での遅延を含むが、共用されているダウンカウンタ#1(100a)が送出する信号COUNT#1=ZERO108により制御される独自のMUX109を持っているという点である。
【0083】
間違いの無いように触れておくが、テストプログラムはこの利点を正しく利用出来る方法で書かれていなければならない(例えば固定ではあるが充分な遅延のループ等)。しかしながら、少なくとも正しい対応付けは保証される。何らかの障害要因の発生及びこれによる信号設定の変化が起きないように保証されている限り、パイプライン遅延経過後のかなり遅い時点であっても試験を実施することが可能なのである。
【0084】
他にも有用な履歴FIFOが存在する。これらは図4の概略ブロック図(117)に示した。これらは概ねALU履歴FIFO69と同様の機能を提供するものであるが、これらはメモリテスタ構造の異なる箇所に配置されており、ALU履歴FIFOに記憶されるものとは異なる問題の回答を記憶するものであるという点において異なっている。最新の比較エラーデータを記録するためのFIFOは、これに必要とされる深さが1レベルのみであり、従って実際はFIFOというより単なるレジスタである。また、バッファメモリの履歴を回復するための2区分FIFOもある。これはECR履歴を回復するためのもう1つの2区分FIFOと共通に制御されている。
【0085】
以下、図4を参照しながら説明をするが、まず、図左側の部分から説明する。ポストデコード回路60の一部が図示されているが、これは、図2にも示したように受信ベクトル逆マッパ/デシリアライザ回路57から32ビット比較データ59を受けるものである。この図では、これらの32ビットが信号DATA_VALID118に伴われて伝送されていることも示されている。
【0086】
ポストデコード回路から出力されているのは、ECR2(図2の32B)へと送られるべき32ビットの(処理済)エラーデータ及び信号DELAYED_DATA_VALID128(これらをまとめて符号61で示した)である。更に、ポストデコード回路はPD_ERROR90の起点でもあるが、この信号が図3においてFREEZE_HIST99を生成するためにBEGIN_HIST83と共にどのように使用されていたかを念頭に置いておきたい。
【0087】
PD_ERRORを生じるエラーデータ61の捕捉タスクは比較的単純なものである。通常、FREEZE_HIST99は偽であり、その反転がANDゲート129の入力にある場合、DELYED_DATA_VALID128は最新エラーデータレジスタ132のLOAD制御入力に送られる信号131を生成することが出来る。このレジスタへのデータ入力はECR2へと送られている32ビットエラーデータと全く同じものであり、従って、このようなデータが送られる度にここにも捕捉される。PD_ERRORはFREEZE_HIST99を発生させ、FREEZE_HIST99は信号131及びレジスタ132への更なるロードを止める。最新エラーデータレジスタ132はリングバス85へと接続しているため、その内容を調べることが出来る。
【0088】
ここでバッファメモリの取り扱いに関わる履歴FIFOについて説明する。先にも説明したように、バッファメモリ31A及び31Bは、予測されるROM内容の記憶や、印加アドレスシーケンスの他のシーケンスへの変換等を含む様々な目的に使用することが出来る。いずれの場合においても、ロードされたバッファメモリは、ALUが生成するX、Y及びZアドレス27で駆動するアドレスマッパ29によりアドレス指定される。バッファメモリ履歴FIFOは2つ存在し(124及び125)、各々がメモリバッファの各々に対応している。これらの役割は、PD_ERROR90の生成に関係する正確なパイプライン遅延を経たバッファメモリ内容を提供することである。これらの2つのFIFOとは、バッファメモリ31Aに結合するバッファメモリ#1履歴FIFO124及びバッファメモリ31Bに結合するバッファメモリ#2履歴FIFO125である。これらの2つのバッファメモリ履歴FIFOは同じ深さ(例えば4)を有し、同様に制御され、そしていずれもリングバスへと接続している(直接的に、又は中間レジスタを介して:先に説明したALU履歴FIFOのリングバスへの接続と同様)。これらは、より大きい履歴FIFO機構123の一部であり、この機構にはバッファメモリ履歴FIFOを説明した後に触れるECR履歴FIFO126及び127も含まれている。
【0089】
説明を先に進める前に幾つかの予備説明を付け加える。図には4つのFIFO133〜136が示されているが、これらの出力は図2の62A〜62Dである。図2からもわかるように、これらの出力はポストデコード回路60へと送られるものである。しかしここで更に留意しておかなければならない点は、バッファメモリFIFO133及び134への入力が、記憶データ33及び記憶アドレス34として更にALU−DUT(送信ベクトル)パイプラインの一部を構成する回路35及び37へも送られているという点である(図2参照)。バッファメモリ用のFIFO133及び134はかなり深く、例えば約30である。実際に使用する深さは設定可能であるが、その設定法は本願においてはあまり重要ではない。しかしそれらの意義については知っておくことが必要である。実際、バッファメモリ履歴FIFOが存在しない場合でもこれらのFIFOは存在する。その理由はバッファメモリの使用方式にある。これらは、さもなければALUから来るはずの情報の代替ソースとして作用するものであり、これらの内容(33、34)の1コピーはALU−DUTパイプラインで下に向けて送られる。しかし、もう1つのコピーはポストデコード回路へと送ることが出来る。このもう1つのコピーが早過ぎる段階(例えばDUTからの比較データ59が上に戻されるよりも著しく早い時点)で回路に届いてしまうと支障が出るため、これらのFIFO133及び134は同時に届いたデータが実際に対応したものとなるように、必要な分の遅延を提供しているのである。これらの深さを約30としたのはそのためである。
【0090】
ここでバッファメモリ履歴FIFO124及び125の説明に戻る。その処理の特徴の多くはALU履歴FIFO69と同様である。これらは信号BEGIN_HIST68によりリセットされ、FIFOへと入力されるべき新たな値が存在することを表すが、FULL(信号121)状態ではない場合はAND演算(ANDゲート119)されている信号(DATA_VALID118)によりロード(FIFO133及び134の出力を介して)される。これらは遅延させたDATA_VALID(DELAYED_DATA_VALID128)の処理段階でアンロードされる。2種類のDATA_VALID間の遅延時間は、基本的にポストデコード回路がエラーが生じたかどうかを判定するまでに要する時間である。エラーが無い場合、FIFOをアンロードすることになるが、それが確実となるまでは待たなければならない。
【0091】
FIFOの特徴の違いは、FIFOデータの破棄を生じることになる事象(PD_ERROR90の発生)が、基本的にFIFOを通過するデータと同時性(パイプライン遅延により分離されていない状態)を持っているという点である。従って、ここではパイプライン深度レジスタやダウンカウンタ等の助けを必要としない。単に履歴モードラッチ105で修飾されたPD_ERRORであるFREEZE_HIST99が発生した時点でアンロードを停止するだけで充分なのである。従ってUNLOAD122は、DELAYED_DATA_VALID128及びFREEZE_HIST99の反転インスタンスを入力として受けるANDゲート130により生成される。
【0092】
ECR履歴FIFO126及び127の処理は、制御信号に関する限り、同じである。ECRがどのように使用されているかがわかっていれば、ここに説明した構成がなぜ有用であるのかは明らかである。図2において、ポストデコード回路60の周囲にバイパス59があるが、これはDUT動作中に実施した試験からの実際のデータを直接ECRへと送るものである。ECR中に記憶されたデータは後から読み出して様々な解析を行うためにポストデコード機構へと印加することが出来る。ここで知りたい事は、「ポストデコード機構へと印加されたデータのどれがPD_ERRORを生じたものなのか」である。その答えを提供出来るのがECR履歴FIFOである。これは局所的な処理であり、長いパイプラインの他の部分は関わっていないため、FIFO135及び136はこの処理に関しては浅いものであっても良い。
【図面の簡単な説明】
【図1】本発明に基づいて構築された、大幅な再設定が可能で、アルゴリズムにより駆動する不揮発性メモリテスタの概略ブロック図である。
【図2】図1のDUTテスタ6を拡大して示した概略ブロック図である。
【図3】図2の部分拡大図であり、ALU履歴FIFO及びこれに関連する制御回路の性質を説明する図である。
【図4】図2の概略ブロック図であり、最新エラーデータレジスタ、バッファメモリ履歴FIFO及びECR履歴FIFO及びこれらに関連する制御回路の性質を説明する図である。
【符号の説明】
14:被試験デバイス(DUT)
32B:エラー捕捉RAM
60:ポストデコード回路
91〜98、124〜127:履歴FIFO
Claims (4)
- 被試験デバイス(DUT)の試験に関連するパラメータ値を保存するための方法であって、
(a)第1の段数を有する刺激パイプラインを通じて前記DUTへと送信すべき刺激信号値を発生させるテストプログラムをプログラム実行環境において実行するステップと、
(b)前記送信された刺激信号値で前記DUTを動作させることにより得られた応答信号値を、前記DUTから前記プログラム実行環境へと、第2の段数を有する応答パイプラインを介して送るステップと、
(c)前記テストプログラムの実行サイクル毎に前記刺激パイプライン又は応答パイプラインの一方における選択位置から履歴FIFOへと、回復されるべきパラメータ値を記憶するステップと、
(d)選択されたエラー条件に応答して、前記DUTを含む前記応答パイプライン内においてエラー信号を生成するステップと、
(e)前記ステップ(c)における記憶処理と、前記ステップ(d)におけるエラー信号の関連インスタンスの生成との間を隔てるパイプライン段数に対応するように、前記履歴FIFOの深さを調整するステップと、
(f)前記ステップ(d)にて生成されたエラー信号に応答して、前記ステップ(e)にて調整された深さに記憶された前記パラメータ値を前記履歴FIFO中で保存するステップと、
を含む方法。 - (g)前記ステップ(f)の後に、前記履歴FIFO中に保存されている前記パラメータ値を取得するステップをさらに含む、請求項1に記載の方法。
- 前記ステップ(a)が、バッファメモリアドレスの生成を含み、更に前記ステップ(c)、(f)及び(g)における前記パラメータが、バッファメモリアドレスであることを特徴とする、請求項2に記載の方法。
- 前記ステップ(c)、(f)及び(g)における前記パラメータが、エラーとなった応答信号値であることを特徴とする、請求項2に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/842,433 US6574764B2 (en) | 2001-04-25 | 2001-04-25 | Algorithmically programmable memory tester with history FIFO's that aid in error analysis and recovery |
US09/842433 | 2001-04-25 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003007089A JP2003007089A (ja) | 2003-01-10 |
JP2003007089A5 JP2003007089A5 (ja) | 2005-09-29 |
JP4194799B2 true JP4194799B2 (ja) | 2008-12-10 |
Family
ID=25287279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002121654A Expired - Lifetime JP4194799B2 (ja) | 2001-04-25 | 2002-04-24 | 被試験デバイスの試験中にエラーが生じた場合にテストプログラムのアルゴリズム制御のその時点の状態を回復する方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6574764B2 (ja) |
EP (2) | EP1253600B1 (ja) |
JP (1) | JP4194799B2 (ja) |
KR (1) | KR100920277B1 (ja) |
DE (1) | DE60219990T2 (ja) |
TW (1) | TW583680B (ja) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6763490B1 (en) * | 2000-09-25 | 2004-07-13 | Agilent Technologies, Inc. | Method and apparatus for coordinating program execution in a site controller with pattern execution in a tester |
US20030088810A1 (en) * | 2001-11-02 | 2003-05-08 | Sun Microsystems, Inc. | Methods and apparatus for determining software component sizes associated with errors |
US7117410B2 (en) * | 2002-12-20 | 2006-10-03 | Teradyne, Inc. | Distributed failure analysis memory for automatic test equipment |
WO2004079428A1 (ja) * | 2003-03-03 | 2004-09-16 | Nikon Corporation | 顕微鏡デジタル画像取得システム |
US7039545B2 (en) * | 2004-04-19 | 2006-05-02 | Agilent Technologies, Inc. | Apparatus, system and/or method for converting a serial test to a parallel test |
US20050285612A1 (en) * | 2004-06-23 | 2005-12-29 | From Thirty Incorporated | Apparatus for measuring DC parameters in a wafer burn-in system |
JP2006275986A (ja) * | 2005-03-30 | 2006-10-12 | Advantest Corp | 診断プログラム、切替プログラム、試験装置、および診断方法 |
US7528622B2 (en) | 2005-07-06 | 2009-05-05 | Optimal Test Ltd. | Methods for slow test time detection of an integrated circuit during parallel testing |
DE102005048872A1 (de) * | 2005-10-12 | 2007-04-26 | Mühlbauer Ag | Testkopfeinrichtung |
US7536662B2 (en) * | 2006-06-27 | 2009-05-19 | Atrenta, Inc. | Method for recognizing and verifying FIFO structures in integrated circuit designs |
US8099583B2 (en) * | 2006-08-23 | 2012-01-17 | Axis Semiconductor, Inc. | Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing |
US20090113245A1 (en) * | 2007-10-30 | 2009-04-30 | Teradyne, Inc. | Protocol aware digital channel apparatus |
US20090112548A1 (en) * | 2007-10-30 | 2009-04-30 | Conner George W | A method for testing in a reconfigurable tester |
US7792656B2 (en) * | 2007-12-19 | 2010-09-07 | Advantest Corporation | Test apparatus |
US8181003B2 (en) * | 2008-05-29 | 2012-05-15 | Axis Semiconductor, Inc. | Instruction set design, control and communication in programmable microprocessor cores and the like |
US8078833B2 (en) * | 2008-05-29 | 2011-12-13 | Axis Semiconductor, Inc. | Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions |
US8458536B2 (en) * | 2008-07-17 | 2013-06-04 | Marvell World Trade Ltd. | Data recovery in solid state memory devices |
US8527677B1 (en) | 2010-06-25 | 2013-09-03 | Altera Corporation | Serial communications links with bonded first-in-first-out buffer circuitry |
CN103163448B (zh) * | 2011-12-16 | 2016-01-27 | 中国科学院微电子研究所 | 对现场可编程门阵列中查找表延迟故障进行检测的方法 |
US10268572B2 (en) * | 2017-08-03 | 2019-04-23 | Fujitsu Limited | Interactive software program repair |
US10565036B1 (en) | 2019-02-14 | 2020-02-18 | Axis Semiconductor, Inc. | Method of synchronizing host and coprocessor operations via FIFO communication |
CN116705137B (zh) * | 2023-05-08 | 2024-04-02 | 深圳市晶存科技有限公司 | 固态硬盘的测试模式切换方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5062109A (en) * | 1988-09-02 | 1991-10-29 | Advantest Corporation | Memory tester |
US5067129A (en) * | 1989-08-16 | 1991-11-19 | International Business Machines Corp. | Service processor tester |
JP3700797B2 (ja) * | 1996-08-09 | 2005-09-28 | 株式会社アドバンテスト | メモリ試験装置 |
US5930735A (en) * | 1997-04-30 | 1999-07-27 | Credence Systems Corporation | Integrated circuit tester including at least one quasi-autonomous test instrument |
US6067648A (en) * | 1998-03-02 | 2000-05-23 | Tanisys Technology, Inc. | Programmable pulse generator |
EP0992907B1 (en) * | 1998-10-06 | 2005-09-28 | Texas Instruments Inc. | Trace fifo management |
US6233678B1 (en) * | 1998-11-05 | 2001-05-15 | Hewlett-Packard Company | Method and apparatus for profiling of non-instrumented programs and dynamic processing of profile data |
KR100308621B1 (ko) * | 1998-11-19 | 2001-12-17 | 윤종용 | 반도체 메모리 장치를 위한 프로그램 가능한 내장 자기 테스트 시스템 |
US6320812B1 (en) * | 2000-09-20 | 2001-11-20 | Agilent Technologies, Inc. | Error catch RAM for memory tester has SDRAM memory sets configurable for size and speed |
-
2001
- 2001-04-25 US US09/842,433 patent/US6574764B2/en not_active Expired - Lifetime
-
2002
- 2002-01-24 TW TW091101157A patent/TW583680B/zh not_active IP Right Cessation
- 2002-03-22 EP EP02252099A patent/EP1253600B1/en not_active Expired - Lifetime
- 2002-03-22 EP EP06010471A patent/EP1701359A1/en not_active Withdrawn
- 2002-03-22 DE DE60219990T patent/DE60219990T2/de not_active Expired - Fee Related
- 2002-04-24 KR KR1020020022396A patent/KR100920277B1/ko active IP Right Grant
- 2002-04-24 JP JP2002121654A patent/JP4194799B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20020162046A1 (en) | 2002-10-31 |
EP1253600A3 (en) | 2004-04-21 |
EP1253600A2 (en) | 2002-10-30 |
US6574764B2 (en) | 2003-06-03 |
JP2003007089A (ja) | 2003-01-10 |
DE60219990D1 (de) | 2007-06-21 |
KR20020082791A (ko) | 2002-10-31 |
EP1701359A1 (en) | 2006-09-13 |
EP1253600B1 (en) | 2007-05-09 |
TW583680B (en) | 2004-04-11 |
DE60219990T2 (de) | 2008-01-17 |
KR100920277B1 (ko) | 2009-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4194799B2 (ja) | 被試験デバイスの試験中にエラーが生じた場合にテストプログラムのアルゴリズム制御のその時点の状態を回復する方法 | |
JP4298960B2 (ja) | アルゴリズム的にプログラム可能なメモリテスタにおけるトリガ信号生成方法 | |
KR100896585B1 (ko) | 메모리 테스트 방법 | |
KR100786418B1 (ko) | Dram에서의 메모리 동작 수행 방법 | |
JP3650411B2 (ja) | 自動メモリー・テスタのための冗長性アナライザ | |
US6321320B1 (en) | Flexible and programmable BIST engine for on-chip memory array testing and characterization | |
US6779140B2 (en) | Algorithmically programmable memory tester with test sites operating in a slave mode | |
US6493839B1 (en) | Apparatus and method for testing memory in a microprocessor | |
US20140078841A1 (en) | Programmable memory built in self repair circuit | |
US6574626B1 (en) | Method and apparatus for administration of extended memory | |
JP2008310955A (ja) | 不良な列にあるアドレスでプログラミングするのに時間を消費することを回避する方法 | |
JP2001508223A (ja) | メモリ素子のための高速テストシステム | |
US9640279B1 (en) | Apparatus and method for built-in test and repair of 3D-IC memory | |
US6862704B1 (en) | Apparatus and method for testing memory in a microprocessor | |
JP4317338B2 (ja) | 高機能化された後デコードを有するメモリテスタ | |
EP1411434A2 (en) | A software programmable verification tool having a single built-in self-test (bist) module for testing and debugging multiple memory modules in a device under test (dut) | |
US6968545B1 (en) | Method and apparatus for no-latency conditional branching | |
KR100771263B1 (ko) | 메모리 어레이 테스트 방법과 이를 구현하기 위해 배열된메모리 기반 디바이스 | |
KR20020020860A (ko) | Dut 테스터 데이터 채널 반전 특성 관리 장치 | |
KR20020025838A (ko) | 조건 계산 수행 장치 | |
KR20020020862A (ko) | 메모리 테스터 어드레스 채널 관리 장치 | |
Zarrineh et al. | A New Approach to Programmable Memory Built-In Self Test Scheme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050421 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050421 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20071025 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20080131 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080826 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080924 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4194799 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131003 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |