JP4298960B2 - アルゴリズム的にプログラム可能なメモリテスタにおけるトリガ信号生成方法 - Google Patents
アルゴリズム的にプログラム可能なメモリテスタにおけるトリガ信号生成方法 Download PDFInfo
- Publication number
- JP4298960B2 JP4298960B2 JP2002117030A JP2002117030A JP4298960B2 JP 4298960 B2 JP4298960 B2 JP 4298960B2 JP 2002117030 A JP2002117030 A JP 2002117030A JP 2002117030 A JP2002117030 A JP 2002117030A JP 4298960 B2 JP4298960 B2 JP 4298960B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- trigger
- bit
- memory
- register
- 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 - Fee Related
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
-
- 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
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- For Increasing The Reliability Of Semiconductor Memories (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】
本願の主題は更に、「Memory Tester with Enhanced Post Decode」と題する米国特許出願第09/702,631号(2000年9月31日出願)にも関連している。本願は、この出願の開示内容から、その図5に関連するかなりの部分を借り、部分的変更及び追加を加えた後に本願の図5として使用している。この出願と共通の内容が本願の文脈から外れたように見えてしまう可能性を考慮すると同時に本願の開示内容の簡潔性を考え、上述の「Memory Tester with Enhanced Post Decode」も参照により本明細書に組み込むことにする。
【0004】
【従来の技術】
電子装置やその機能の日常生活における浸透は極めて著しい。人々の多くは多岐にわたる雑多な目的で家庭用パーソナルコンピュータ等と共に複数の生産的ツールを所有している。多くの個人向けの生産的電子装置は何らかの形態で不揮発性メモリを含んでいる。携帯電話は電源を切ってもユーザーがプログラムした電話番号や設定を保持出来るように不揮発性メモリを用いている。PCMCIAカードの場合、コンピュータのスロットから取り外された状態でも情報を維持することが出来るように不揮発性メモリを使う。他の多くの一般的な電子装置も同様に、電源が供給されないアセンブリ内の不揮発性メモリの長期保存能力を利用しているのである。
【0005】
電子装置メーカーに不揮発性メモリを販売する不揮発性メモリの製造者は、自社で製造したメモリが適正な動作を行うかを、テスタを用いて確認しなければならない。不揮発性メモリは大量に一貫して低コストで製造、販売されるため、個々の製品の試験に要する時間は可能な限り短くすることが非常に重要である。不揮発性メモリの購入者は、購入したメモリ素子をより高額なアセンブリに組み込む際、コストを節約するために最小限度の試験のみ、或いは無試験で済むように望むことから、メモリ製造者は高い出荷歩留まりを要求される。従ってメモリの試験手順は、不適合品の大部分、望ましくは全ての不適合品を1回の試験工程において識別し得るように、充分に高い効率を提供するものでなくてはならないのである。
【0006】
不揮発性メモリの大型化、高密度化及び複雑化が進むに伴い、テスタはこれらの寸法及び複雑性への対応を、試験時間を大幅に増大させることなく行うことを要求される。メモリテスタは連続的に稼動させる場合も多く、その試験時間は最終部品のコストにおいて大きい部分を占めるものと考えられている。また、テスタはメモリ素子の進化及び改良に伴ってメモリ素子に加えられたこれらの変化に容易に適合出来なければならない。不揮発性メモリ試験において特徴的な他の問題は、メモリのセルへの書き込みが何度も繰り返されると、その製品の全体的な寿命性能が劣化する可能性があるという点である。不揮発性メモリの製造者は、特別な試験モードをメモリ素子中に組み込むことにより試験に関わる多くの問題に対処している。これらの試験モードはメモリの購入者によって使用されるものではなく、製造者がアクセスすることでメモリの全て、又は大部分を可能な限り短時間で効率良く試験することが出来るものである。不揮発性メモリの中には試験工程中に修復可能なものもある。従ってテスタは、修復の必要性、修復箇所、必要な修復の種類を識別するものでなくてはならず、また更に適切な修復を実施出来なければならない。このような修復工程には、メモリ中の特定の不適合部分を検出、分離することが出来るテスタが必要である。修復機能と共にこの特別な試験モードの利点を有効に活用するためには、素子から期待される応答に基づいた条件分岐をサポートするテストプログラムを実行することが出来るテスタの使用が有益である。
【0007】
メモリを試験するプロセスは、概念的観点から見るとアルゴリズム的プロセスである。例えば、一般的な試験にはメモリセルに0又は1を書き込みながらメモリアドレスを順次増分又は減分して行くものが含まれる。1メモリサイクル中に書き込まれる、又は読み出される1及び0の集合を、一般的に「ベクトル」と呼び、ベクトルのシーケンスを「パターン」と呼ぶ。試験はチェッカーボード、ウォーキング(walking)1、およびバタフライパターンのようなパターンをメモリ空間に書き込むことを含むのが一般的である。試験開発者はアルゴリズム的構造の助けを借りることにより、より容易かつ効率的にテストパターンを作成するためのプログラムを生成することが出来る。アルゴリズム的に一貫したテストパターンはデバッグが容易であり、期待通りに動かないパターン部分を分離するための論理的方法の使用を容易にする。プログラムループ中で繰り返す命令及びコマンドを使用してアルゴリズム的に作成されたテストパターンは、使用するテスタのメモリ空間が小さい。従って、メモリテスタはアルゴリズム的テストパターン作成能力を持つものが望ましい。
【0008】
信号エッジの正確な配置及び検出もまた、不揮発性メモリのテスタの効率に関連して考慮されるものである。指定マージンにおいては不適合でありつつも中心においてはほぼ適合した部品を捕捉するには、不揮発性メモリテスタは各信号エッジを他の信号エッジに対して時間的に正確に配置出来なければならない。更に、どの時点において信号エッジが受信されたかを正確に測定する能力も重要である。従って不揮発性メモリテスタは充分な柔軟性と、刺激及び被試験デバイス(DUT)であるメモリからの応答のタイミングと配置に対する充分な制御性を持っていなければならないのである。
【0009】
メモリテスタは、DUTに印加(刺激)する送信ベクトルを生成し、期待される返信(応答)としてのベクトルを受信するものであると言われている。これらのベクトルを生成するアルゴリズム的論理素子は、一般的にこれらの生成をベクトル中の特定のビットがどのようにDUT中の特定の信号パッドへ、または、特定の信号パッドから送られるかを考慮することなく行うことが出来る。これはメモリテスタが信号を端子へ、または、端子からルーティングするためのマッピング機構を含むためである。
【0010】
メモリテスタは試験処理を容易にするために用いられる内部テストメモリを有する。この内部テストメモリは、リアルタイム生成しない場合の送信ベクトルの事前記憶や受信ベクトルの記憶、そして試験中に得たDUT挙動に係わるエラー表示情報及びその他の情報の記憶を含む幾つかの用途に用いられる。(SRAMを用いたメモリテスタ内部のハウスキーピング処理も「内部メモリ」と呼ばれるメモリの処理範囲に入るものと思われるが、これらはテスタの内部処理専用のものであってアルゴリズムレベルではわかりにくい傾向にあり、内部制御レジスタに相当するものである。このようなメモリは、本明細書において「内部制御メモリ」と呼び、DUTへの刺激及びDUTからの応答に直接的に係わるビットパターンの記憶に用いるメモリを指す語である「内部テストメモリ」からは除外する。)当然のことながら、この内部テストメモリは実施される試験と少なくとも同じ速度で動作することが出来なければならない。ごく一般的な方式は、内部テストメモリ(又はその一部)を、DUTに印加されるアドレスと同じ(又はそれから派生したもの)アドレスで指定するものである。この場合に内部テストメモリ中のアドレス指定された場所に記憶される情報は、試験が実施される間にDUTの同じアドレスにおいて生じた挙動を何らかの形で表すものである。テストプログラム中のアルゴリズム的配慮により連続する送信ベクトルに関わるアドレスのシーケンスが任意である場合もある。従って内部メモリは、高速性及びランダムアドレス指定能力という2つの性質を持っていなければならない。高速かつ制御も容易で、完全なランダムアドレス指定が可能であるメモリとしてすぐに思い浮かべられるのはSRAMである。実際、従来のメモリテスタもSRAMを内部テストメモリとして採用している。
【0011】
残念ながら、SRAMはかなり高価なものであり、それにより、メモリテスタが使用出来る内部テストメモリの容量が制限されている。この結果、メモリテスタの機能性にはメモリ不足による限界がある。DRAMはこれよりも大幅に安価ではあるものの、高速処理においてはランダムアドレス指定が出来ない。
【0012】
メモリテスタの内部メモリとしてSRAMに代えてDRAMを使用することが出来る。以下の概要説明でも簡単に触れるが、内部テストメモリとして使用するためにDRAMの処理速度をいかに上げることが出来るかという問題は、使用するDRAMの速度を上げるかわりにその容量を大きくすることにより解消することが出来る。これには、DRAMの同種の複数のバンクをグループとして取り扱う。1グループ中の異なるメモリバンクへの信号をインターリーブする処理と、このようなバンクグループ間で多重化する処理とを組み合わせることにより、各バンクにおけるメモリトラフィックをそのバンクが処理し得る速度にまで落とすのである。(読者の便宜をはかるためにこの技術の概要を簡単に説明する。この技術の構造的側面及びこれに関連する用語が、以下に開示する発明的主題を説明する上で有用であるためである。)
【0013】
各々が4つのバンクから成る3つのグループ間において3路(three-way)多重化し、これに1グループへの信号トラフィックに対する柔軟な4倍インターリービング方式を組み合わせることにより、要するメモリバスは3本のみでありながら処理速度を12倍近く向上させることが出来る。マルチプレクサへの次のグループの選択を行うためのラウンドロビン方式は単純であり、各グループに対するインターリーブ機構が最後に割り当てられたタスクを完了するために必要な時間が各機構に確実に与えられるようになっている。1グループにおける全てのインターリーブアクセスは、これも単純なラウンドロビン選択方式で選択される次のバンク(そのグループ中の)に実施される。この構成においては、12バンクの各々が使用可能アドレス空間全体を表すものであり、いずれの書き込みサイクルも、これら12バンクのいずれか1つをアクセスすることになる。これは、いずれの対象アドレス或いは対象アドレス集合も12バンク全体に広がって位置しているためにそのDUTの試験中に生じた不具合を知るためには試験終了時に12バンク全てを調べなければならないことを意味している。従って特定のチャネルは12ビットで表される(各バンクから1ビットで、そのバンクに関する、ワード中のそのビットの位置はチャネルにより決定する)。
【0014】
しかしながら、不具合情報を得るために12バンクの全てを個々に(手動で)照会しなければならないとなれば厄介である。従ってあるアドレスにおける読み出しサイクル中に12バンク全ての結果を自動的に「合成」(合併)して統合化された結果を得るユティリティ機構が設けられている。これにより、統合化されたデータを後に最高速度で読み出すことが可能となる。一実施例においては、ランダムアドレス指定されたメモリトランザクションについての最高速度が100MHzである。
【0015】
33MHzでも充分であるとされる場合、ランダムアクセスは多重化をしなくてもインターリーブ処理のみで対応することが可能であり、このような場合、統合化機構及びメモリアドレス指定方式は適宜調整される。アドレス指定方式は変化し、メモリの深さを100MHzランダム動作の場合の3倍にすることが出来る追加グループ選択ビットを含むことになる。これらの2つの処理モードを、それぞれR100及びR33と呼ぶ。更に単一のバンクに対する100MHz処理を行うL100モードも存在するが、これはDRAMに送られる良好なアドレス(行アドレスの変化が絶対最小)に拠るものである。
【0016】
内部テストメモリ構造の最上位レベルには、4つのメモリセットがあり、メモリセットの各々は独自の独立したアドレス空間を持ち、要求されたメモリトランザクションを実行している。2つは上述したDRAMであり、残り2つはSRAMである。各メモリセットは専用のコントローラを持ち、これに向けてメモリトランザクションが送られて来る。表面上の処理能力に関しては、4つのメモリセットは全て基本的に同じに見える。これらの違いは、メモリ空間のサイズと、これが内部的にどのように実現されているかだけである。SRAMメモリセットはもともと充分な高速性を持っているため、多重化及びインターリーブ処理は採用していない。これらは独立したものではあるが、同じ種類(SRAM又はDRAM)のメモリセットを「積み重ねる」、即ち、1つのより大きなアドレス空間として取り扱うことが出来る。これはメモリセット自体ではなく、その上位の制御レベルにおいて、アドレスをアルゴリズム的に生成すること、そして実際にメモリトランザクションを送るべきメモリセットを決定することにより実施される。これは、R100及びR33モード間においてメモリセット及びそれらのコントローラがグループを統合してアドレス空間を3倍にするといった自動的な処理ではない。各メモリセットのコントローラは、他のメモリセットや他のコントローラの存在自体さえ認識していないのである。
【0017】
よって、テスタの内部テストメモリは2つが「内部」SRAM、他の2つが「外部」DRAMである4つのメモリセットに区分化されている。誤解の無いように触れておくが、これらのメモリは全て物理的にはメモリテスタ内部にある。「内部」及び「外部」という語は、集積レベルに関するものである。SRAMはテスタの機能回路に関わるVLSI(超大規模集積回路)上に集積されている部品であり、DRAMは別個にパッケージングされ、VLSIに隣接して実装されている部品である。SRAMの容量はかなり小さい(例えば1メモリセットあたり1メガビット程度)が、DRAMの容量はかなり大きく、選択可能(例えば1メモリセットあたり128〜1024メガビット)である。SRAMメモリセットは常に存在し、例えばROMであるDUTに期待される内容を記憶する等、それらに好適な目的に使用することが出来る。DRAMメモリセットは実際には随意選択であり、一般に修復を行うための後の解析用に記録を作成しておくために使用されるが、用途は他にもある。テスタはどちらのメモリをどの用途に利用するかについて、SRAMとDRAMメモリセットとの間で強制的に区別するようなことはしない。用途の判別は主にそのサイズにより決まる。SRAMメモリセットは小さいが、DRAMメモリセットは潜在的に大きい。各種メモリセットをどのように利用するかについて決定するのは、テストプログラムを作成する技術者である。
【0018】
先にも述べたように、メモリテスタで実行するテストプログラムの開発及び保全においては、アルゴリズム的処理能力が使用出来ることが望ましい。そのプログラマビリティにより得られる複雑性(ループ中にネストするループ、試験結果に応じた分岐)に加え、これには様々な特別な処理能力が作り込まれることにより、特定の特殊な特性を持つ不揮発性メモリの自動試験だけではなく、一般的な不揮発性メモリの自動試験をも容易にするすることが出来る。最も重要なのは、その複雑性に応じた複雑性がテストプログラムの開発及び保全作業に課せられるという点である。要するに、テストプログラムはそれ自体が複雑なメカニズムを持っていることが普通なのである。
【0019】
ここでテストプログラムを開発する技術者の立場から考える。最初のバージョンが期待通りのパフォーマンスを見せないことは珍しいことではない。行うべきではない処理を実行したり、行うべき処理を実行しなかったりすることはままあることである。コードを調べてもわからない場合(現在の理解が許す範囲においては適正に見えている等)があるが、この場合に何が起こっているかを調べるための最も適正なツールとして電圧波形のオシログラフィックトレースがあげられる。即ち、何が生じているのかを理解する過程、或いは学説を立証する等の過程において更なるデータソースが必要となるのである。残念ながら、テストヘッドに対し、所望のオシロスコープに続く1、2本のプローブを単純に繋ぐといったようなことを実際に実施することは出来ない。プローブを取り付ける実際の物理的な位置を特定出来たとしても(可能ではあるが実際上は困難)、一般的にそれを行うための充分なスペースはなく、その物理的構造にもプローブ及びケーブルを支持し得る充分な強度が無い場合が多い。更に、所望の測定を妨害する電気的負荷や他の障害の問題もある。これらの問題が全て解消出来たとしても、オシロスコープをどのようにトリガして対象とする問題に係わるデータが取り込まれるようにするかという問題が残っている。
【0020】
オシロスコープのプローブを接続する場合の困難に関しては、上記に述べたとおりであるが、オシロスコープで取り込むデータの問題については、適正に理解する上で更なる背景事情を理解しなければならない。この説明にあたり、アジレントテクノロジー社の83000VLSIテストシリーズに用いられる「ベクトルマシン」と呼ばれるタイプのメモリテスタを説明する。
【0021】
ベクトルを使用するテスタは、DUTに順番通りに印加する刺激ベクトルの明示リストを持っている。テスタは単純にこれらを印加し、どのような受信ベクトルが生じたかを記録する。これは信号を「入れる/出す」といった処理を行う即時刺激/即時応答型のシステムである。ベクトルマシン及びDUTの性質として、リストの実行は何時でも停止することが出来、また、送信ベクトルリスト中で事前に選択した適当な位置からの再開も可能である。以下に説明するアルゴリズム的パターンを使用したメモリテスタと同様に、ベクトルテスタは(受信ベクトルの作成に関して)可変サンプリング閾値と、クロック信号に対する可変サンプルタイミングオフセット値とを有している。ここに無いものとは、対象チャネルのアナログ電圧波形をデジタル化するA/D変換器である。しかしながら、手許にあるリソースを使用して選択されたベクトルが実行されている間に対象チャネル上の電圧波形を復元することは出来る。これは面倒な処理ではあるが、出来ないことはない(そしてこれに代わる実用可能な方法も無い)。以下にこれをどのように行うかを説明する。
【0022】
通常の処理モード(非スコープモード)においては、一対の特定の閾値及び1つのサンプルタイミングオフセット値が選択され、そのシーケンスについてデータが記録される。これらの閾値とは、VOH(出力電圧ハイ)及びVOL(出力電圧ロー)であり、10ミリボルトずつ段階的に調整することが出来る。そのチャネルのサンプルタイミングオフセット値により指定される時点においてチャネル電圧がVOHを超えている場合にVOH閾値が満たされたものとみなされ、チャネル電圧がVOLよりも低い場合にはVOL閾値が満たされたものとみなされる。これらの状態を表す信号を、それぞれにYVOH及びYVOLと呼ぶものとする。その対象チャネルについて受信ベクトル中に記録される内容とは、サンプルタイミングオフセット値が指示する時点において、チャネル電圧がこれらの閾値の各々を満たしたか否かである。
【0023】
スコープモードの基本的な発想は、波形に沿った好適な間隔を持つ時点について、これらの時点における波形のどちら側にどんな閾値があるかを調べるというものである。これを実施するためには、対象事象を含むベクトルシーケンスを繰り返し実行しなければならない。このように繰り返して実行する間、VOH電圧閾値を反復サイクル間でわずかずつ変化させ、このシーケンスを連続的に繰り返すことにより、より多くのデータを記録する。これはVOH閾値が両限界にわたって使用されつくすまで続けることが出来る。シーケンス中の各ベクトルについて記録された受信結果を解釈することにより、オシログラフィックトレースに寄与する内容が作成される。[連続するYVOHのインスタンス(instance)が同じ値(真[TRUE])であり、ある特定のインスタンスにおいてYVOHの値が新たな値(偽[FALSE])に変化し、その後連続する値が再度同じ値(いずれも偽)となったが、先には同じであったものが逆の値となり、逆転したまま維持された場合を想定する。これは、値が真から偽に変化した時点(VOH値のその更新処理中に使用された(無変化の)サンプルタイミングオフセット値により決まる)におけるチャネル電圧値が安定していたことを示す。安定した電圧値は、YVOHの値が変化した、これらの連続するVOHインスタンス間のどこかの値である。この周知の従来技術においてはこれ以外のケースもあるが、本明細書ではこれ以上の説明は省略する。]各ベクトルに対応する上述の寄与内容は、そのサンプルタイミングオフセット値に対してのみのものである。
【0024】
VOHを一方の限界値からもう一方の限界値まで単に増分させるという手法は、互いに適当な近接性があり且つそれらのYVOHが逆の値を持つ一対のVOH値を発見するための唯一の方法ではない。例えば、5ボルトの範囲を3ボルト区分で掃引してもあまり意味が無い。更に、ある開始点が与えられている場合、遷移が見つかった時点で増分を止めることも可能である。ノイズの多い信号については、その時点から何回かにわたって追加増分を実施することにより、遷移が事実その付近で生じたことを確認することも出来る。(ノイズでわかりにくい遷移をまたいだサンプリングについては、平均化が有効である。)最後に、2等分探索または予測法を含む他の探索方式を使用することにより、YVOHの所望の遷移に関わるVOHの値を発見するために必要な反復回数を減らそうと試みることも可能である。このような方式は、求める波形の生成に要する時間を大幅に削減するものであり、ユーザーにとっては大きな感心事である。
そうであっても全体の処理を終わらせるには、まだ時間がかかるかもしれない。
【0025】
次の段階においては、違うサンプルタイミングオフセットを使って同じ処理を繰り返す。結果的に、対象ベクトル実行中のチャネルの電圧挙動を完全に説明するものが作られることになり、デジタルオシロスコープと同じようにこれを電圧波形として表示することが出来る。縦(電圧軸)の分解能はVOHを変化させる段階の大きさであり、横(時間軸)の分解能はサンプルタイミングオフセットを変化させる段階の大きさ(最小20ピコ秒まで可能)である。これはベクトルマシンタイプのテスタにおいて用いられてきた従来技術である。これをアルゴリズム的に制御される本パターンマシンにおいて使用したいが、しかしこれを困難にする大きな問題が幾つか存在する。
【0026】
【発明が解決しようとする課題】
ベクトルマシンは、単純に明示リスト中のベクトルの1つを識別することでトリガ機能を容易に実行することが出来るが、アルゴリズム制御マシンにおいては、「オシロスコープをトリガすること」(そのデータを記憶すべき特定の受信ベクトルを識別すること)は容易ではない。デジタル環境においては一般的に言えることであるが、スロープを持つ単純なアナログトリガレベルはほとんど意味を持たない。(同時に発生した)信号値の特定の組み合わせ(パラレルワード)を検出することは、それ自体だけでは不適切である場合が多い。更にテストアルゴリズムを実施するために実行中のコードを作業者が操作し、「ここでこの命令語を実行する時にトリガをかける」と指示をすることも通常は出来ない。これが有効な場合もあり得るが、コードの中に不良と一義的に結びついて実行される命令がなければならないため、多くの場合は有効ではない。アルゴリズム的可能性はしばしば複雑過ぎ、1ループ中に“at fault”命令が何度も現れて、エラーが生じる前に数十万回或いは数百万回にもわたり、完璧に実行される場合もあるのである。
【0027】
更に覚えておかねばならないのは、オシログラフィックトレースとして波形を復元するに充分なデータを取り込む迄には、全く同じ一連の事象が多くの回数(恐らくはVOH値の数とタイミングオフセット値の数との積)にわたって生じなければならないという点である。ここでテストプログラムがエラーフラグ(DUTの応答が期待値と一致しなかったことを意味する)での分岐を含んでいる場合を想定する。エラーフラグはテストプログラムフローを変えるものである。しかしながら、スコープモードでの反復処理の間、エラーフラグは他よりも、そしてトレースに寄与する各ベクトルにおいて、より頻繁に生じることになる。何故か。その理由は、サンプルタイミングオフセット及び閾値の掃引にある。この掃引は、DUTが動作不良を生じていない場合でも、エラーフラグを設定しプログラムフローを変えることになる「誤った回答」を作成するように結び付けられる。変えられたプログラムフローが波形に何らかの形で対応した変化を生じることはほぼ確実である。しかし、繰り返し実施される同一の波形挙動インスタンスからトレースを復元するために必要な処理が、(プログラムフローを変化させた結果)その波形を変えてしまうとすれば、安定した波形は得られず、解釈し得るトレースの復元も出来ない。しかしながら、テストプログラム中においてエラーフラグでの分岐は有用な手段であり、その利用を諦めることは考えられない。即ち、テストプログラムをスコープモードで使えるようにするためにこれを必ず何らかの制約された方法で書かなければならないという状況は、あるべきではないのである。加えて望まれるのは、あらゆる既存のテストプログラムに対しても、安定した反復を発生させるための変更をこれらに加えることなくメモリテスタのユーザーがスコープモードを適用出来るようにすることである。テストプログラムがトリガ命令を促すことになるように、或いはトリガ命令を含むことになるように、テストプログラムのソースコード変更を行うことも避けたい。かわりに、閾値とサンプルタイミングオフセットを掃引する間に取り込んだデータからトレースを復元させることに加え、メモリテスタ自体にこれらの面倒な問題を処理させることが望ましいのである。
【0028】
更にトリガ仕様メカニズムが提供された場合に望まれるのは、この結果得られたトリガを利用して内部テストプログラム分岐をエラーフラグに基づいて強制し、エラーフラグに関わる実際の値とは関係なく、特定の経路を辿らせることである。例えば、テストプログラムはDUT中の特定種類の不具合に対応した多くの分岐を含む場合がある。プログラマは、これらの様々な分岐がすべてアクセス可能であるかどうか、そしてこれらが意図した通りのパフォーマンスを見せるかどうかを検証したいと望むものである。問題は、コードを編集することなく、そして更に特定の動作不良を持つことが明らかな特殊DUTの集合(テストプログラムに意図した処理を確実に実行させる)を必要とすることなく、これらの様々な分岐をいかに生じさせるか、という点である。どうするべきか。
【0029】
【課題を解決するための手段】
実質的なアルゴリズム的内容を含んだテストプログラムを実行するために用いられるアルゴリズムパターン発生器を有するメモリテスタのスコープモードにおいて、如何にトリガ信号を提供するか、という問題を解消するために、メモリテスタが有するアルゴリズムパターン発生器にトリガ仕様の発生を検出するハードウエアが設けられる。トリガ仕様は、DUTを動作させるために用いる既存ハードウエアの量(アドレスやデータ等)にアルゴリズム的挙動を助けるために設けられた特定の既存補助レジスタの内容が組み込まれたものとして表現されている。これがテストプログラムのどの部分が実行されているかに基づいて更に修飾される(qualified)ことになる生のハードウエア(ブレークポイント)トリガを形成する。(テストプログラムの作成に現在使用されている言語では、上述したレジスタの1つではない任意のメモリ位置における値としてのみ存在する抽象変数を作成することが出来ない。よってアルゴリズムパターン発生器中の特定のハードウエアレジスタに実施されるハードウエアマスキング及びAND演算がトリガ生成の開始点として妥当である。)修飾されたブレークポイントトリガは、スコープモードをトリガし、エラーフラグを選択値にする(強制する)ために(テストプログラムが強制的に特定の経路を辿るように)用いることが出来るシステムトリガ信号となる前に、0回以上のDUTサイクルにより遅延させることが出来る。
【0030】
テストプログラム自体は疑似コードに似た言語で書かれているが、上述したように強制された変数群が用いられている。コンパイラはこのソースコードを処理し、アルゴリズムパターン発生器中の他のハードウエア中の状態を制御しそれに応答する実行可能な命令語を生成する。スコープモード処理におけるユーザーインターフェースは出来れば別の環境において実行されるものとし、ユーザーがその処理との対話を行うことでトリガ仕様を定義することが望ましい。スコープモード処理は、ハードウエアレジスタ値レベルでの生のトリガ仕様を認識するマスク及び比較機構を設定する。更に、生のトリガ仕様を実行可能にするテストプログラム部分として、どの部分を考慮するかをコンパイラに対して通知する。これはコンパイルコードにおいて、アルゴリズムプログラム発生器に対する実行可能命令語中に「トリガ機能を現在にイネーブルした」ことを意味する1ビットを設けることにより実行される。試験ハードウエアとはあまり関連性の無い抽象変数値のモニタ機能及びロジックアナライザ形式の順次トリガをいずれかの位置に設けることが望ましいが、必須ではない。
【0031】
電圧閾値及びサンプルタイミングオフセットの掃引で安定した波形を提供するという課題は、メモリテスタに、トリガ発生後のテストプログラムの最初のパスの間に発信された送信ベクトルの適当数(例えば128)のシーケンスを覚えさせておく(記憶させておく)ことにより解決される。このシーケンスを「ターゲットシーケンス」と呼ぶものとする。ターゲットシーケンスがメモリに記憶されると、スコープモードはテストプログラム全体を再実行し(初期条件の一部を確立する必要があるため)、これをトリガ発生まで以前と全く同じように起動させることにより、所望の情報を抽出することが出来るようになる。しかしここでは、トリガが生じた場合、生のアルゴリズムからではなく、記憶されたターゲットシーケンスから更なる送信ベクトルが発信され、VOH値及びサンプルタイミングオフセット値の組み合わせが切り換わる。この組み合わせは、それらの値の取得掃引中の1段階を構成し、記憶されたターゲットシーケンスの終わりに至るまで維持される。(「取得掃引」をオシログラフィック表現の「水平掃引」と取り違えてはならない。)受信ベクトルの対応シーケンスは受信と同時に自動的に記憶される。ターゲットシーケンスの終端において、テストプログラムが再度再開される(しかしこれには通常の閾値及びサンプルタイミングオフセットが用いられる)。処理が進むと、いずれ次のトリガが生じ、これにより、記憶されたターゲットシーケンスが再度生のアルゴリズムに変わって用いられる一方で、取得掃引中のその段階における次の値の組み合わせがターゲットシーケンスの終端に至るまで維持される。先程と同様に、取得掃引におけるその段階に関わる受信ベクトルが自動的に記憶される。この処理は取得掃引全体が実行されるまで続き、実行が終了すると、自動的に記憶された対応受信ベクトルの集合を調べることによりターゲットシーケンス中の対象信号の波形を作成することが可能となる。
【0032】
上述した技術は、メモリテスタにおいてターゲットシーケンスの記憶にFIFO構造(又は他のメモリ構造)を使用すること、そしてターゲットシーケンスの記憶処理及びその後のトリガ発生後の記憶ターゲットシーケンス実行時の切り換え処理を監督する制御機構を設けることで、より容易に実行出来る。実行可能プログラム語は、プログラム中にインデックスをつけるために要するアドレスよりも大幅に長い(208ビット長)ため、FIFOに記憶されるのはターゲットシーケンス中の命令語のアドレスシーケンスであって、命令語そのものではない。ターゲットシーケンスのアドレスがFIFOに記憶された後、取得掃引が開始される前にこれらのアドレスは対応する実際の命令語シーケンスをフェッチして記憶するために使用される。コピーされたターゲットシーケンス中にあるいずれの分岐構造も、シーケンス中の次の語(この語はターゲットシーケンスの最初の取り込み処理中にいずれにしても生じたものである)を指示するように変更される。この実行可能なターゲットシーケンスは、コンパイルされたテストプログラムである命令語を格納するプログラムSRAMの予約領域に記憶される。後のシステムトリガが生じると、テストプログラムは一時的に停止し、取得掃引の次の段階のVOH値及びサンプルタイミングオフセット値が設定される。そしてプログラムSRAMをアドレス指定するプログラムカウンタが予約領域の開始点に設定される。このように取得掃引の次の段階が設定されると、テストプログラムの実行が、始めに取り込まれたターゲットシーケンスの繰り返しと共に再開される。取得掃引の各段階における結果(受信ベクトル)はECR(エラー捕捉RAM)に一時的に記憶(キャッシュ)される。このような受信ベクトルのECRへの記憶は通常の処理であるが、しかし一般的にはこれは特定の対象エラーに対して条件付けられているものである。ここでは、エラーの有無に関係なく記憶しておくことが望まれており、これを実現するために設けられている機構は単純なものである。
【0033】
更に、トリガ仕様の充足が検出された場合に、閾値及びサンプルタイミングを「通常値」から「掃引値」に高速で変化させる処理を特殊レジスタが助けている。この技術は、テストプログラムの実行を監視する(そしてスコープモードを管理する)OSが、ターゲットシーケンス全体にわたる取得掃引の各段階において自動的に記憶されたキャッシュされた受信ベクトルをECRからアンロードするために使う専用の隠しメモリを持つように構成することによっても更に容易となる。この隠しメモリは、スコープモードにおいて対象信号の波形情報を蓄積し、最終的にその波形を作成・表示するために使用される。
【0034】
テストプログラムの検証処理における課題は、選択したエラーフラグの選択値をテストプログラム実行環境中に強制するためにスコープモードトリガを使用すること(しかし恐らくはスコープモード処理抜きで)で、その解決が助けられる。これは対応する種類のエラーの出現を、そのエラーが生じていない場合でも強制するものである。誤解の無いように述べるが、同じエラーフラグであっても、テストプログラムの違う場所においては違うことを意味する場合が多い。プログラムの特定の部分に至るまでエラーフラグの発生を遅延させることは、どのようにトリガを使用するかということである。トリガがどのエラーフラグを「合成」するかは、設定可能である。このように、プログラムを通してトリガを辿ることにより、使用中のDUTが完全無欠であったとしても、複雑なプログラムの様々なエラー関連分岐を生じさせることが出来るのである。
【0035】
【発明の実施の形態】
まず、図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サイトテストステーション』を形成する」と表現する。
【0036】
次に逆の場合を簡単に考察してみるが、留意すべきは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つ以上のテストサイトを結合する概念と混同してはならない。
【0037】
このテストサイト再設定の概念を抜けば、テストサイトとテストステーションの間には何等の相違も無いことになり、いずれか一方の語を使用すれば良いことになる。しかしながら明らかなように、この概念によればテストステーションの数は必ずしもテストサイトの数と同じとはならない。過去においても、単純なマルチDUT試験では、1つのテストサイトを分割してより多数のテストステーションを作成すること(DUTが1つのテストサイトを使い切るほど複雑ではない場合等)で双方の数が違う場合があった。しかしながら、ここでの数の違いは、複数のテストサイトが1つに結合してマルチサイトテストステーション(DUTが単一のテストサイトで試験するには複雑過ぎる場合)を形成することにもよる。
【0038】
説明を先へ進めると、テストシステムコントローラ2は、システムバス3を介して最高36個のテストサイトコントローラ(#1〜#36)4a〜4z(符号後部のa〜zは1〜26文字迄であり、36個に対応しないが、数字符号の後に付ける接尾記号としては、まぎらわしい数字を使用するより好ましいと考えた)に接続している。テストシステムコントローラ2は、不揮発性メモリの試験タスクに関わる好適なテストシステム制御プログラムを実行するコンピュータ(例えばNTを起動するPC)である。テストシステム制御プログラムは、所望の試験を行うための仕事の階層(及び複雑性)において最高レベルにある抽象概念を表すものである。テストシステムコントローラは異なるテストサイトでどのプログラムが起動しているかを決定すると同時に必要に応じてテストプローブ及びDUTを動かすロボットシステム(図示せず)を監督するものである。テストシステムコントローラ2は、「テストサイトの一部が単一サイトテストステーションとして動作するように、他の一部がマルチDUTテストステーションとして動作するように、そして他のテストサイトが結合してマルチサイトテストステーションを形成するようにプログラムされる」という概念を支持する形で機能することが出来る。このような状況においては、異なる部品が試験されていることは明らかであるが、最も好ましくは、異なる部品に異なる試験が用いられることである。同様に、全ての単一サイトテストステーションが部品の同じ様式を試験しなければならないという条件は無く、マルチサイトテストステーションにもそのような条件は無い。従って、テストシステムコントローラ2は、必要とされるテストサイト結合を実施するコマンドを発し、その後、使用される様々なテストステーションに適正なテストプログラムを実行させるようにプログラムされているのである。テストシステムコントローラ2は更に、試験により得られた結果に関する情報も受信するため、不良品を破棄するための適正な行動を取ることが出来、そして例えば工場設備設定における製造工程制御等に利用出来る様々な解析結果のログを管理することが出来る。
【0039】
テストシステム自体は相応に大型の複雑なシステムである。一般的にロボットサブシステムを含み、これによりウエハをステージ上に搭載し、続いてピンエレクトロニクス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から供給されることになる。
【0040】
ここで基本的には、プログラムTEST_WHIZ_13は完全に独立したものであっても良い。しかしその場合、ほぼ間違いなくそのプログラムは大きく、テストサイトコントローラ4aの埋め込み型システムのプロセッサがこれを充分に高速で起動し、試験結果を所望の速度で生成すること、或いはDUTメモリサイクル毎に均一な速度で生成することでさえ難しくなる。従って、書き込むべき、或いは読み出し処理で期待されるアドレス及び関連データのシーケンスを生成する下位レベルのサブルーチンタイプの動作は、必要に応じてDUTテスタ6中にあるプログラム可能なアルゴリズム的機構により実行されるが、これはテストサイトコントローラ4中の埋め込みシステムが実行するプログラムと同期して動作するものである。この処理を、低レベルサブルーチン様の動作とDUTメモリサイクルを起動するタスクとをDUT14のハードウエア環境により近い機構(DUTテスタ)にエクスポートすることであると考える。すると、一般的に言って、テストシステムコントローラ2がテストサイトコントローラにテストプログラムを供給する度に、テストサイトコントローラに対するプログラミングにより記述される、又は要求される、全体的な動作の実行に要する適正な低レベル実行ルーチン(恐らくは試験するメモリに特定的である)が対応するDUTテスタに供給されることにもなる。低レベル実行ルーチンは「パターン」と呼ばれ、高レベルのプログラミング言語における機能や変数に名前があるのと同様に、これらにも一般名称が付けられている。
【0041】
各テストサイトコントローラ#n(4)はサイトテストバス#n(5)により対応するDUTテスタ#n(6)に結合している。テストサイトコントローラは、サイトテストバス5を使用してDUTテスタの動作を制御し、そしてそこから試験結果を得る。DUTテスタ6は試験方式に関わる様々なDUTメモリサイクルを高速で生成することが出来、また、読み出しメモリサイクルの結果が期待通りのものであったかどうかを判定する。基本的に、これは対応する有用な読み出し及び書き込みDUTメモリサイクルのシーケンスを起動することによりテストサイトコントローラから送られるコマンド又は処理コード(「名前の付けられたパターン」)に応答するものである(例えば対応するパターンを実行する等)。概念的にDUTテスタ6はDUTに印加されるべき刺激情報を出力し、また、そこから返される応答情報を受信する。この刺激/応答情報7aはDUTテスタ6aとピンエレクトロニクス#1のアセンブリ9aとの間で交わされる。ピンエレクトロニクスアセンブリ9aは最高64本までのプローブをDUT14に接続することが出来るように支援する。
【0042】
上述した刺激情報は、DUTテスタ中に使用されているいずれかの論理素子系列の電圧レベルに基づいて表現された、並列ビットパターンシーケンス(例えば「送信ベクトル」及び期待される「受信ベクトル」のシーケンス)でしかない。刺激/応答中のビット位置とダイ上のプローブとの間には設定可能なマッピングが存在し、このマッピングはDUTテスタ6が把握している。個々のビットはそれらのタイミング及びエッジ配置において適正なものであるが、マッピングに加え、これらをDUTに印加する前に電圧レベルシフトが必要な場合もある。同様に、刺激に続いてDUTから出力される応答も、DUTテスタに送り返せるような状態にする前にバッファリング及び(逆)レベルシフトが必要な場合もある。これらのレベルシフトタスクはピンエレクトロニクス9aの範疇にある。WHIZCO‐0013の試験に要したピンエレクトロニクスの設定は、ACME社の部品や、そして恐らくはWHIZ社のものであっても他の部品に転用出来る可能性は低い。従って言うまでも無くピンエレクトロニクスアセンブリ構成もまた設定可能でなければならず、このような設定能力の提供はPE設定線8aの機能である。
【0043】
以上、1つのDUTを試験するために1テストサイトがどのように構築されるかの構造的概要を述べた。次に、多数のテストサイトを作動させる場合に生じる問題について触れる。前提としてまず複数のテストサイトを有するテストシステムを構築するための推奨される実施例を説明する。これからここに記載する情報は多くの意味において顧客嗜好の市場調査結果及び費用利益分析結果に基づく選択の問題である。従ってこれらの事項のいずれか1つを構築するには、明確な選択をしなければならず、一度この選択を行うと、システム全体を通じて特定の結果が明らかとなる。ここではテストシステムのハードウエア特性のより広範囲な概要を少なくとも一般的な形で記載することが有用であると思われる。これらの特性は条件次第で変化するものではあるが、それでもそれらを知っておくことは本発明を説明する場合に提示する様々な例を理解する上での一助となる。
【0044】
まず始めに、4個の比較的大型のカードケージを想定する。各カードケージは、電源及び水冷機構(クリーンルーム環境下においてファンは汚染源となる可能性があり、水冷は完全に実装されたシステムからの数十kWもの放熱を除去する場合、空冷方式よりも安価である)の他に、マザーボード、前面及び後面を有する。各カードケージには最高9個のアセンブリを挿入することが出来る。各アセンブリはテストサイトコントローラ、DUTテスタ及びピンエレクトロニクスを含む。テストサイトコントローラがどのように結合するかについての一般的な概略を説明するが、これには幾つかのバスを使ってデイジーチェーン接続を作ることが含まれる。
【0045】
本題から若干それるが、最初にこの「デイジーチェーン接続」について簡単に触れる。システム構成要素A、B、C及びDがあるものとする。これらがこの順番でデイジーチェーン接続により連結したと想定する。すると、そこにはAを出てBに達する情報又は制御経路があり、BはBを出てCに達するトラフィックを選択的に送出することが出来、CはDに達するトラフィックを選択的に送出することが出来る。同様の構成が他方向のトラフィックにも存在し得る。デイジーチェーン接続は優先順位機構を作るために良く採用されているもので、ここでは様々なテストサイトコントローラ間にマスタ・スレーブ関係を作るために用いる。デイジーチェーン方式による通信構成を示す記号の後には「BUS」ではなく、「DSY」を付した。従って、例えば「コマンド/データ BUS」ではなく、「コマンド/データ DSY」としている。次に、情報が「Bに入り、選択的に送出される」という概念は、そのトラフィックが送出される前に、別の導体セット上に複製されることを示唆している場合もある。そうすることも出来るが、性能上の理由から、これはどちらかと言えばアドレス可能なエンティティを有する通常のバスである。プログラム可能なアドレスマッピング構成及び下流のテストサイトコントローラの一部分を「スリープ」状態にする能力により、1つのバスを論理的には複数のデイジーチェーンであるかのように見せる(機能させる)ことが出来る。最後に、デイジーチェーンはコマンド及び制御情報の経路として高い性能を持つものであることは言うまでもなく、もし、そうでなかったらマスタ・スレーブの組み合わせ(マルチサイトテストステーション)が1テストサイトと同じ速度で処理を行うことは望めない。デイジーチェーン性能を損なわないために各種DSYはそれぞれのカードケージの外に出ないようにする。これを実施するために、どの(従って幾つの)テストサイトを結合するかについて幾つかの制限が設けられる。基本的には制限を設ける根本的な必要も、技術的実用性の決定的な欠如があるわけでもない(即ち実施可能である)。これは単純に、既に9個のテストサイトがカードケージにあるのだから、DSYを延長することは多大なコストを払ってわずかな追加利益を得ることにしかならないとの考えからである。
【0046】
図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区分」の頭においてマスタとして作動することが出来るのである。
【0047】
ここまで説明して来たCMD/DAT DSY17a〜17dはそれぞれのテストサイトコントローラ4a〜4zの間に存在する。SYNC/ERR DSY18a〜18d及びDUTテスタ6a〜6zも同様の構成である。SYNC/ERR DSY18によって運ばれる同期・エラー情報により、DUTテスタは調和して機能することが出来る。これら2種類のデイジーチェーン(17及び18)は若干異なる種類の情報を搬送するものではあるが、しかし各々は1つ以上のテストサイトを結合してテストステーションを構成するための同じ全体機構の一部として存在している。
【0048】
次に図2の説明に進むが、図1のDUTテスタ6の概略を示す拡大ブロック図が描かれている。これは最高で36個設けられるものであるが、ここではそのうちの1つを説明する。図2を一目見れば明らかなように、概略ブロック図にしては相当な数の構成要素が描かれている。DUTテスタ6に含まれるもので、このブロック図に描かれた要素の中には、機能的に非常に複雑であり、市販品として容易に入手できないものもある。ここで2つの点について明記しておく。第一に、図2の主要目的は、不揮発性メモリテストシステム1全体の重要な動作環境の基本特性を説明することである。図3以降の図に関連して詳細に説明する本発明は、図2に基づいて以下に説明する機構の延長線上にあるものか、或いはその存在根拠を図2に見出すことが出来る新たな機構である。いずれにしても、この説明を書いている段階では読者がこれらの機構のどれに直面することになるかは明確にはわからない。現時点での目標は、様々な実施例の多数の異なる詳細説明の開始点として簡潔でありながら充分な情報を提供することにより機構の各々を簡明かつ適正に説明することである(異なる発明の各々について全てを開示する冗長な明細説明を避けるため)。第二に、拡大又は拡張した実施例の中には、図2に示した一般的な規則には準じてはいるものの、この単純な事例とは整合しない情報を含むものもある。しかしこれは誤りや決定的な矛盾ではなく、全体像を完全な縮小版で表すように物事を簡略化して示すことが時に困難、或いは不可能な場合があるからである。この状況は道路地図と似ている。例えばコロラド州の標準サイズの地図では、州間高速自動車道I‐70に乗って東へ向かえば、デンバーでI‐25に入って北へ向かうことが出来ることがわかる。これは左折のように見える。実際、昔は左折であったが、現在は違う。このインターを詳しく記した地図を見ると、一連の部分的進路変更と割り込み車線が示されている。しかしながら標準サイズの道路地図が間違っていると言う者はいない。このレベルの抽象性においては正しいからである。同様に、図2は相当詳しく描かれているようではあるが、実際は中程度の抽象性で描かれた簡略図であり、一見「左折」に見える部分でも、実際は単純な「左折」とは言えない場合もある。
【0049】
図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間を結ぶためのバスである。
【0050】
リングバス85は、テストサイトコントローラがDUTテスタ6のAPG部分と通信を行うための機構である。リングバス85はマイクロコントローラシーケンサ19に結合しており、マイクロコントローラシーケンサは特殊用途マイクロプロセッサとリンクしている場合もある。次アドレス計算器102により生成されたアドレスを用い、マイクロコントローラシーケンサ19の内部プログラムSRAM(PGM SRAM)20又は外部DRAM21にあるプログラムメモリ中に記憶されたプログラムから命令がフェッチされる。これら2つのメモリは、プログラムカウンタ(又は命令フェッチアドレス)として機能する、本質的、論理的に共通のアドレス63によりアドレス指定されているかのように見え、また、いずれも実行すべきプログラムの供給源と成り得るが、留意すべきは:(1)どの期間においてもいずれか一方のメモリが命令フェッチメモリサイクルを実行し;(2)実際、これらは電気的に異なる信号によってアドレス指定されている;という点である。SRAMは高速であり、真のランダムアクセスが可能であるが、マイクロシーケンスコントローラ19(大規模APG集積回路の一部)中の貴重な空間を使用するため、そのサイズは限られている。外部DRAMはかなりの容量まで柔軟に設定することが出来るが、直線的実行により分岐無しで連続領域をアクセスしない限り高速動作出来ない。SRAM20におけるプログラミングはアルゴリズム性の高いものが多いが、外部DRAM21は初期化ルーチンやランダムデータ、即ち不規則データのような、アルゴリズム処理では容易に生成出来ないものに適している。
【0051】
次アドレス計算器102は、無条件又は条件ジャンプ命令、或いはプログラム制御フラグ25、その他のフラグ55及びマルチDUT試験処理用の他の特定の信号103及び104(わかり易くするために別々に図示したDFE0:3、及びDPE0:3)で条件付けられる条件サブルーチン命令に呼応して、実行中のテストプログラムに分岐を生じさせることが出来る。
【0052】
マイクロコントローラシーケンサ19がフェッチし、実行する命令語は208ビットと、かなり長い。これは13個の16ビットフィールドから構成される。これらのフィールドはマイクロコントローラシーケンサ19の外部機構のためにフェッチした命令情報を表すことが多い。このようなフィールドは、それらに対応付けられた機構専用のものである。1セットのALU命令22が8個の16ビットALU24の集合に印加され、その他はDUTテスタ内に分散する他の様々な機構に配信される。後者の状況は、各種制御値および命令42と表示した線で表した。
【0053】
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処理の一側面の説明を助けるためである。
【0054】
VEC_FIFO_FULLの機能は、マイクロコントローラシーケンサ19によるプログラムの更なる実行を(一時的に)停止させることである。マイクロコントローラシーケンサ19がフェッチした命令と、DUTに印加すべきテストベクトルを最終的に送出する機構との間には多段のパイプラインが存在する。更に、DUTへの印加に向けて搬送される過程でベクトルが付加されるデータの塊りは、最終的なベクトル印加速度、或いは各ベクトルの持続時間に関する情報をその一部に含んでいる。従って、DUTへのベクトル印加速度は一定である必要は無く、具体的には、あるベクトル群の印加時間がその生成にかかった時間よりも長くても良い。マイクロコントローラシーケンサは、単純にプログラムをその最高速度で実行する。しかしながら、「ベクトル消費」速度が「ベクトル生成」速度と平均で等しくなければ、パイプラインにはほぼ無限大の柔軟性を持たせなくてはならなくなることは明白である。以下に説明するアドレスマッパ29の出力にはベクトルFIFO45があり、これがパイプライン中の柔軟な容量として機能する。信号VEC_FIFO_FULLは、パイプラインの先頭における新たなベクトルの生成が一時的に中断されるように作用することでパイプライン中の限界段数を超過しないようにするものである。
【0055】
更に説明を続けると、(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ビット(アドレス)ルックアップテーブルを更に有し、これらによって限定された任意マッピングを局所範囲において実施することが出来るのである。
【0056】
アドレスマッパ29のマッピング後アドレス出力30は、様々なバッファメモリ及び(又は)TagRAM31A、31B、そしてエラー捕捉RAM1、2(32A、32B)にアドレスとして印加される。これらのメモリは、異なる機能を持ってはいるが、集合的に内部テストメモリ87を構成する4つのメモリセット内において、選択可能なパーティションとして実現することが出来る。マッピング後アドレス出力30は更に1入力としてアドレスビット選択回路37(その多重化機能は後述する)にも印加される。内部テストメモリは、異なる機能用途に使用するための、RAMをベースとした様々なメモリ構造を含むように設定することが出来る。その設定は、異なるメモリセットの特定部分をそれらの対応用途に使用することを宣言することにより行われる。図2に示されるのは、そのような構成の一例である。この構成は試験の進展に伴い再構成することが出来、メモリセットの使用に関わる処理は非常に動的な性質を持つものと考えられる。内部テストメモリ中に存在するもの(例えばエラー捕捉RAM32A、32B)の中には恒久的なハードウエアとしての固定要素は一切無い。不変的に存在するのは4つのメモリセットだけである。しかしながら、いずれの時点においても、(もし実際に定義されるとすれば)どのメモリセットのどの部分がエラー捕捉RAMであるかに関しては、現在確立されている設定に依存するのである。
【0057】
バッファメモリ31A及び31Bについて説明する。これらの機能は、DUTに印加することが可能なデータパターン33及びアドレス34を保持することである。これらは実際には対応するバッファメモリの別個の出力であるが、バッファメモリは「デュアルポートメモリ」ではなく、2つの異なるメモリセットの部分から構成されたものであることが望ましい。そうした場合、記憶されたデータ33が一方のメモリセット中に保持され、記憶されたアドレス34が他方のメモリセット中に保持されていることが望ましい。また、バッファメモリに書き込みを行うための明確な機構を図示していないが、これを行うための方法の1つとしては、実行中のプログラムの命令でテストサイトコントローラ4が起動するアドレス指定されたバスの処理により実施する方法がある。「リングバス85」と呼ばれる「床下」の「ユティリティサービス」バスがあり、これが図2に示した要素のほぼ全てに通じている(図が非常に見にくくなるため、これが各箇所に接続している状態は図示していない)。メモリセットに情報を書き込むための他のより高速な方法は、図3に関する説明で触れる。
【0058】
エラー捕捉RAM32A及び32Bはバッファメモリに印加されたものと同じアドレスで指定される。これらのエラー捕捉RAMは、エラーに関する情報を記憶及び取得するもので、その処理は後に説明するポストデコード回路と連係して実施される。バッファメモリ31A、31Bからの経路33、34と同様に、エラー捕捉RAM1(32A)からの経路62A〜62Dもまた、リングバス(図示せず)により配信された設定情報に基づき、エラー捕捉RAMとして設定されたメモリセット部分から出力される多重化出力であることが望ましい。
【0059】
留意すべきは、データマルチプレクサ35はその入力として、ALU集合24中のレジスタDH及びDLからのデータ28と共にバッファメモリ31Aから出力される記憶データ33も受けるという点である。データマルチプレクサ35はこれらの入力(28、33)のうち、どちらをその出力38として提供するかをPGM SRAM20に記憶された値36に基づいて選択する。その出力38は、次に説明するように変更されることが無い限り、2つのベクトル構成要素のいずれか一方として(もう一方の構成要素はアドレスビット選択回路37の出力39)送信ベクトルマッパ/シリアライザ/受信ベクトル比較データ回路40に印加される。
【0060】
回路40は3つのベクトル機能を実行することが出来るもので、その機能とは、ベクトル構成要素(38、39)を組み合わせることによりDUTに印加(伝送)し得るベクトル全体を順序付けられた論理表現において作成すること、送信ベクトルの論理表現の順序ビットと、DUTに信号(ベクトル中のそのビット)を届けるために接触するピンエレクトロニクスの実際の物理チャネル番号(例えばプローブ先端を特定する番号)との間に動的な任意の対応付け(マッピング)を実施すること、そしてそれを受けるDUTに対し、別個に、順序通りに(シリアル化して)印加されるように全体の論理ベクトルを分割する際にコンパイラと連係して作用することである。これらの機能のうち、どれが実行されるかは、SRAM41からの制御信号により決定するが、このSRAMもまた、マイクロコントローラシーケンサ19によりフェッチされた208ビット命令中の1フィールドに基づいてアドレス指定されるものである。
【0061】
回路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から受信するのである。
【0062】
タイミング/フォーマッティングおよび比較回路52は、設定情報及び制御情報を受けるためにVTバス89に結合している。タイミング/フォーマッティングおよび比較回路52は単一の要素として取り扱ってはいるが、これらが本来は8個のICであることは先にも説明した。
【0063】
タイミング/フォーマッティングおよび比較回路52は、マイクロコントローラシーケンサ19のプログラムSRAM20と同じ命令アドレス(丸で囲まれたA)によりアドレス指定される内部SRAM54を有する(外部DRAM53を内部SRAM54の代わりに使用しても良いが、これは図示していない増分カウンタによりアドレス指定される)。内部SRAM54(又は外部DRAM53)は、ドライブサイクル及び比較サイクルの生成を助けるものであり、これらのサイクルは関連したフォーマットを持っている。ドライブサイクルは、RAM54又は53により供給される事前に選択されたフォーマットを用いて送信ベクトルをDUTに印加するものである。比較サイクルはDUTから供給されるベクトルを受信し、これをRAMから供給された事前選択フォーマットに基づいて調べ、それが先に得られた比較データと一致するかを決定するものである。ドライブサイクル及び比較サイクルはいずれもその持続時間に関して設定することが出来、更に負荷を印加するかどうか、何時印加するのか、何時データをラッチ又はストローブするのか、信号がリターン・トゥ・ゼロ(Return-To-Zero)信号であるかどうか、送る信号を補完情報で囲むのかどうか等(これらのオプションが上述した各種フォーマットである)についても適正な範囲で設定可能である。
【0064】
タイミング/フォーマッティングおよび比較回路52により生成される比較結果は、論理値の誤り(機能エラー)及び(又は)許容範囲を外れた電気特性(パラメータエラー)によりそのチャネルが不具合を呈したかどうかについて、チャネル毎の情報を含んでいる。更に、マルチDUT試験が実施された場合、どのチャネルがどのDUTに通じているかは既知である。これにより、4つの機能エラー信号DFE0:3(DUT#機能エラー)103及び4つのパラメータエラー信号DPE0:3(DUT#パラメータエラー)104の生成が可能である。
【0065】
タイミング/フォーマッティングおよび比較回路52により実施される比較処理においては、回路40の論理的反転であると言える機能を持つ受信ベクトル逆マッパ/デシリアライザ57に印加される64ビット値56が更に生成される(回路57の処理はSRAM58により制御されているが、これは回路40のSRAM41による制御に対応する)。そして回路57の出力59はポストデコード回路60に、そして更にエラー捕捉RAM1(32A)に印加される。ここではあまり詳細にわたって説明しないが、ポストデコード回路60は入力されるエラー情報59と以前にエラー捕捉RAM1(32A)中に記憶されたエラー情報の両方をプログラム基準に基づいて検分し、凝縮した、より容易に解釈出来るエラー情報を生成することが出来る。生成されたエラー情報は経路61を介して他方のエラー捕捉RAM2(32B)に戻し、記憶しておくことが出来る。一例として、特定のアドレス範囲でエラーが生じた回数の計数値を作成すること等があげられるが、このような情報はいつ代替回路を起動することによりオンチップ修復を試みるかを決定する上で有用である。
【0066】
次に期間発生器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が記憶するそれらに意図した対応ベクトルの取得に同期して印加されるようになっている。
【0067】
FIFO50の最も古いエントリ中にある粗タイミング値フィールドは5ナノ秒の分解能で継続時間情報を含んでおり、この情報から、次の送信ベクトルをベクトルFIFO45からタイミング/フォーマッティングおよび比較回路52に送る信号VEC_FIFO_UNLOAD47が生成される。随伴信号TIMING REMAINDER48もまた、回路52に印加される。この時点で19.5ピコ秒という最終分解能に達するのである。
【0068】
上述はメモリテスタの総合的性質を紹介したものである。これを開始点とし、以下おいてはスコープモード及びその関連事項を説明する。
【0069】
ここで図3を参照するが、これはスコープモードでの動作中に実行される主な処理の概要をフローチャート形式で説明するものである。図3のフローチャート64は、大別すると部分65及び66に分かれる。第一の部分65では初期スコープモード処理が実施され、第二の部分66では取得掃引処理が実施される。まず最初に部分65において実施される初期処理について説明する。その目的は、トリガ仕様を設定し、ターゲットシーケンスを取得し、繰り返し実行することが可能なターゲットシーケンスを作成することである。
【0070】
開始位置67は他の処理からフローチャート64の処理に入る入口であり、ステップ68はトリガ仕様の設定と、これに続くテストプログラムの起動を実施するステップである。本実施例においては、トリガ仕様にはレジスタX、Y、Z、DH、DL、A,B及びCの内容に対するAND条件であるALU成分が含まれる。これらのレジスタのいずれのサブセット(全て及び0個のレジスタから成るサブセットも含む)も、トリガ仕様のALU成分中に含まれ得る。各レジスタについては、そのビットの任意のサブセット(全ビット及び0個のビットから成るサブセットも含む)が指定可能である。トリガ仕様のALU成分は、選択された全てのレジスタの全ての指定ビットが指定通りであれば満たされる。トリガ仕様は更に、プログラム成分も含み、満たすべきトリガをイネーブルにするプログラムの一部又は全ての部分を指定することが出来る。トリガ仕様は更に、実際にトリガ仕様が充足した時点と、トリガ処理を開始させるトリガ信号の発信時点との間に間隔をあけるための遅延(出来ればDUTサイクルとして表されたものが好ましいが、時間間隔の絶対値であっても良い)を含むこともできる。
【0071】
ユーザーインターフェースのレベルで認識出来るトリガ仕様の設定方法は様々存在する。推奨される方法においては、OS(テストシステムコントローラ2上で起動するもの)がスコープモード制御処理を起動するためのウィンドウを提供しており、ユーザーはどのチャネルの波形を表示させるのかを指定出来るだけではなく、テストサイトコントローラ、DUT、そしてトリガ仕様のプログラム成分及びALU成分をも指定することが出来る。これが完了すると、テストプログラムが開始される。
【0072】
ステップ69においては、テストプログラムの処理によりトリガ仕様が満たされるまで(かつ指定遅延が充足されるまで)の間に待ち経路70があり、トリガ仕様が満たされるとステップ71に進む。この時点では、閾値VOHはそのまま維持されており、プログラムは128DUTサイクルの間、通常の流れに従って処理を続けることが出来る。この128DUTサイクルとは、波形を作成するターゲットシーケンスである。ターゲットシーケンスの最初の実行中、プログラムSRAM20からフェッチされる命令語の次の128アドレスがスコープモードFIFO130(図4を参照しつつ後述する)にログされる。この時点では、この128の命令語が何であるかについての制約はなく、これらの中に分岐命令が含まれていてもかまわない。
【0073】
ターゲットシーケンスの実行が終了するとテストプログラムの実行が中断され、スコープモードの管理環境がフローチャート64のステップ72に示される処理を実施する。この処理は、スコープモードFIFO130中に記憶されたアドレスをリングバス85を介して読み出し、これらのアドレスを用いてプログラムSRAM20から対応する命令語を抽出し、これらの命令語中の分岐フィールドがターゲットシーケンス中の次の語を指示することになるように設定し(これは必須である;ターゲットシーケンスに独自の条件分岐を続けさせることは、波形が不安定になるために出来ない)、そしてこれらを順次、プログラムSRAM20の予約領域に格納する。
【0074】
その後に実行されるテストプログラムによってもトリガ仕様が充足されることになるが、その時点において、テストプログラムは中断し、VOH値及びサンプルタイミングオフセット値が通常値から取得掃引の次段階の値に変更される。これを実施するには2つの方法がある。第一の方法においては、スコープモードの管理プログラムがスコープモードでの動作中にPGM_QUITが発生したことを検出し、VOH値及びサンプルタイミングオフセット値を変更(スコープモードVOHレジスタ166及びスコープモードサンプルタイミングレジスタ168への書き込みによる;これらのレジスタについては図5を参照しつつ説明する)することが出来、そしてこれに続いて次アドレス計算器102(図2)中の内部プログラムカウンタレジスタ(図示せず)がリングバスを介して変更され、これによりプログラムカウンタが予約領域の開始アドレスに移動することになる。これも次アドレス計算器102をリングバスに接続させる理由の1つである。第二の方法においても上記と同様に実現されるが、次アドレス計算器に予約領域の開始アドレスを格納する更なる内部レジスタ(図示せず)を設け、この内部レジスタをトリガインスタンス発生後の遅延(取得掃引値が所定位置に格納されるために好適な遅延)の後に自動的にジャンプ出来るように構成することで、スコープモードの管理プログラムに課せられた負荷の一部を取り除くことが出来る。
【0075】
フローチャート64の取得掃引処理部分66の目的は、プログラムSRAM20の予約領域部分に記憶された実行可能なターゲットシーケンスを繰り返し実行することである。ステップ73においては、テストプログラムが最初から再開される(テストプログラム中のアルゴリズムにとって重要な初期化が行われるようにするため)。この再起動はVOH及びサンプルタイミングオフセットの通常値で行われるが、これはテストプログラムが以前と全く同じ方法で実行されること、そしていずれトリガ仕様が最初の実行時と全く同じように充足されることが期待されるためである。
【0076】
テストプログラムの実行中、ステップ74において、ループ経路75を経由しつつトリガ仕様の充足を待つ。充足した場合、ステップ76においてテストプログラムは中断され、VOHの値が続いて生じる一連の取得掃引段階の最初の(次の)値に設定される。(ここで使用した用語は、1回の取得掃引が多数の取得掃引段階により構成されていることを前提としたものである。)同様のことがサンプルタイミングオフセット値にも実施される。これに続き、ステップ77においては、テストプログラムは継続すること(ターゲットシーケンスにジャンプする)が許され、そして受信ベクトルをECR2(32b)に強制的に記憶する機構が起動する。ステップ78においては、ループ経路79を経由しつつターゲットシーケンスの完了が待たれる。図4に示した信号PGM_QUIT157は、これを助けるものである。この値は、マイクロコントローラシーケンサ19が実行を停止する度に真値となる。これは変更したターゲットシーケンスの129番目の命令語を停止命令とすることにより実現することが出来る。
【0077】
ターゲットシーケンスの実行が終わると、ステップ80においてECR2(32b)の内容がスコープモードの管理処理(出来ればテストシステムコントローラ2のOS下で起動するプログラムであることが望ましい)に使用されるメモリに移される。この時点になると、スコープモード用ソフトウエアはこれまでに取得した結果の一部を形成し、表示することが出来るようになる。
【0078】
次のステップ81では、取得掃引が終端に至ったかどうかが決定される。まだ終端に来ていない場合、経路82を辿ってステップ73に戻り、取得掃引は継続し、次の段階に進む。このフローチャート64は概略的なものである。それは、VOH値の掃引が、異なるサンプルタイミングオフセット値の各設定におけるVOH値群全体にわたり、最も高速で実施される(即ち、VOHの変更は最速で行われ、その変更シーケンスが繰り返される一方で、サンプルタイミングオフセットは最もゆっくりと変更され、1回の変更シーケンスしか実施されない)という概念を扱うための、外部ループ中にある内部ループを図示していないという点にある。更にこのフローチャートはVOH値の変更を実施するための方式(先頭から末端までの線形実行、2等分探索、或いは予測探索等)も示していない。また更にこのフローチャートにおいては、所定のサンプルタイミングオフセット値に対するVOH値変更の終了方式(全てを実施する、或いは正しい回答を検出したことが確実になった場合は終了する等)も指定されていない。
【0079】
取得掃引が終了すると、ステップ81からの“YES”経路を介して処理はスコープモードの管理機構に移行し、これにより完成した波形の表示や記憶、プリントアウト等が可能となる。
【0080】
次に図4を参照するが、これは図3の処理がどのように実現されるのかをハードウエアの側面から説明する概略ブロック図であり、トリガ仕様の充足に基いてエラーフラグの挿入を実施するために必要なハードウエアを含んでいる。図4は、図2のブロック図に示した要素に関連して3つの部分(84、86、91)に分けられる。即ち、部分84は図2のマイクロコントローラシーケンサ19の一部を延長したものであり、部分86は図2の8個の16ビットALU24の一部を延長したものであり、そして部分91は図2の内部テストメモリ87中に設定される要素を延長したものである。従って図4は図2の限られた一部の拡張例を示したものであり、図2の多くの要素はここでの説明に直接関連しないため、図4では省略されている。
【0081】
始めに、ALU_TRIGGER96と呼ばれる信号を生成する働きを持つ部分86について説明する。部分86及び信号ALU_TRIGGERは、トリガ仕様におけるALU成分を表すものである。ここではXレジスタに関して何が行われるのかを説明するが、他の7つのレジスタ(Y〜C)についても同じ処理が実施される。更に、これらのレジスタを組み合わせて信号ALU_TRIGGER96を生成するためにどのような処理が、どのように実施されるのかについても説明する。よって、まず最初にXレジスタ要素についての説明から始める。
【0082】
ここに、リングバス85と通じる16ビットX_ALUレジスタ97がある。これは図2に示したXアドレスレジスタそのものであり、そのビットが48アドレスビット27の3分の1に寄与している。図4においては、X_ALUレジスタ97は、リングバス85及び16ビット2入力ANDゲート100にしか接続していないかのように描かれているが、X_ALUレジスタ97は勿論、その内容の演算処理を可能とする他の全ての要素にも接続している。ここでは図をわかり易くするためにそれらの要素は省略した。更に、ANDゲート100の出力は16ビットである(図示を容易にするための単純化)。ANDゲート100に印加されるもう一方の16ビットは16ビットX_MASKレジスタ99から供給される。X_MASKレジスタ99中の「1」のパターンは、X_ALUレジスタ97からのビットのうち、どれがトリガ仕様の対象となるかを選択するものである。ここには更に16ビットX_TRIGGERレジスタ98もある。これはトリガ仕様におけるXレジスタ成分を格納しており、その目的上、リングバス85に接続している。これは更にもう1つの16ビット2入力ANDゲート101へも結合しているが、このANDゲート101へのもう一方の入力はX_MASKレジスタ99から供給されている。明らかなように、トリガ仕様におけるXレジスタ成分は、ANDゲート100の16ビット出力がANDゲート101の16ビット出力と等しい(ビット毎に一致している)場合に充足される。「=?」回路103はこの状況の決定を行うことを目的としたもので、ANDゲート100及び101からの2つの16ビット出力を入力として受け、出力として一致状態表示信号104を生成するものである。
【0083】
部分86のYレジスタ回路も全く同じであるが、これに接続する=?回路106及びその出力105以外についての要素は図を見易くするために省略してある。また、この図においては1つ(110)しか図示していないが、実際にはこれに加えて更に6個の一致状態表示出力(残りのALUレジスタに各々1つずつ)が存在していることは言うまでもない。信号ALU_TRIGGER96は、マスクにより排除されなかった全てのALUレジスタビットがそれぞれに対応する‘_TRIGGERレジスタに一致した場合に生成される。従って、8個の=?回路からの出力の集合104・・・110がANDゲート111によりAND演算されることによりALU_TRIGGER96が生成されるのである。
【0084】
次にマイクロコントローラシーケンサ部分84の説明に移るが、信号ALU_TRIGGER96は充足したトリガ仕様を構成する一つの要素である。更に満たさなければならないプログラム成分が残っている。プログラム成分は信号TRIGGER_ENABLE93により表される。ここではTRIGGER_ENABLE93が既に存在すること(その出処は後述する)を前提に説明するが、ANDゲート95によりTRIGGER_ENABLE93とALU_TRIGGER96が組み合わせられ、これにより信号ARM_SYSTEM_TRIGGER113が生成される。この信号113が真の場合、基本的トリガ仕様が満たされた状況にあること、そして実際のトリガが許可される前に遅延時間を経過しなければならないことを意味する。
【0085】
この概念の説明を進めるが、信号ARM_SYSTEM_TRIGGER113は遅延回路114の開始入力に印加されていることがわかる。この遅延回路の遅延量はリングバス85との接続を介して指定される。遅延量は時間間隔の絶対値或いはDUTサイクル数で表されるが、0の場合もある。このような回路は従来から周知であると考えられるため、その詳細説明は省略する。遅延回路114としては、事前設定可能なカウンタ、タイマ及び電圧ランプ/閾値機構を含むがこれらに限られない様々な種類の好適な遅延機構のうち、どれを採用しても良い。いずれの場合においても、ARM_SYSTEM_TRIGGER113に続く遅延時間が経過した場合、信号SYSTEM_TRIGGER115が出力される。これはセット/リセットフリップフロップ116のセット入力に供給される。SYSTEM_TRIGGER115によりフリップフロップ116のQ出力が真となる。このQ出力は、信号TRIGGERED122である。これはターゲットシーケンスが終わるまで持続する信号であり、図4の他の様々な箇所において利用される。信号TRIGGERED122は、取得掃引の次段階の開始時点において発生する信号START131により偽となる。この信号START131は、リングバス85に結合するワンショット回路132から発信され、取得掃引における次段階部分としてのテストプログラムの再起動を監督するソフトウエアにより活性化される信号である。
【0086】
ここで信号TRIGGER_ENABLE93がどのように生成されるのかを説明する。簡単に述べれば、これはマイクロコントローラシーケンサ19が利用する208ビット長の命令語の1ビットである。このビットが設定されることになる状況としては、ユーザーがスコープモードの管理機構に対して、ソースコード中のこれこれの行が、その機械命令がトリガをイネーブルにするということを指定した場合である(この場合である可能性が一番高い)。また、より希な状況として、コンパイラがプログラマにより明確にその場所に挿入されたソースコード「ここでトリガをイネーブルする」という命令に行き当たった場合があげられる。前者はスコープモードの管理機構が機械命令自体を変更する場合(コンパイラの応諾を要する場合も要さない場合もあり得る)であり、後者はユーザーがテストプログラム自体のソースコードを変更して再度コンパイリングを行った場合である。TRIGGER_ENABLEビットを設定した命令語は1つだけの場合もあれば、そのような語の連続するストリングがある場合も、或いはテストプログラムの実行に伴ってビットが設定されたり設定されなかったりする場合はその中間的なものである場合もある。
【0087】
説明を続けるが、208ビット命令語は、次アドレス計算器102が生成したアドレス63により指定されるプログラムSRAM20からフェッチされる。次アドレス計算器102は幾つかの更なる関連処理を実施する。第一に、次アドレス計算器102はプログラムを実行している間は必ず信号BUSY156を生成する。これは、マイクロコントローラシーケンサ19によるパターン実行処理の制御において、様々な管理機構を助けるものである。次アドレス計算器は更に、プログラムの実行を中断する状況が生じたことを意味する信号PGM_QUIT157も生成する。このような状況の1つとして、信号TRIGGERED122及び信号‘SCOPE MODE138のAND演算があげられる。これを実行するための論理は次のアドレス計算器102にとって内部的であるので、明確にされていない。次アドレス計算器102はまた更に、新たな有効アドレスが次アドレス計算器102の出力63に存在することを意味する信号PGM_STEP145も生成する。PGM_STEP145は、パターン(テストプログラム)中の次の段階がこれから実行されることを他の機構に通知する目的にも利用することが出来る。
【0088】
図4のこの部分をよく見ると、信号PGM_QUIT157及びTRIGGERED122が、リングバスにより読み出し可能な状態レジスタの関連ビット(それぞれ、158a及び158b)に結合していることがわかる。これもまた、通常動作及びトリガ動作の両方を監督する様々な管理ソフトウエア機構を助けるものである。
【0089】
ここでスコープモードFIFO130に目を向けるが、これはその内容がバスに読み出せるような形(データ出力として)でリングバス85に接続している。これは更に、次アドレス計算器102の出力(生成されたアドレス)に接続している。これらの接続は、ターゲットシーケンスのアドレスの取得処理と、後の変更、及びプログラムSRAM20(これもリングバス85に接続する)の予約領域に記憶するための再取得処理を支援するものである。スコープモードFIFOは、LOAD端子への信号印加に伴って自動的に増分する内部アドレス指定機構を有する。ターゲットシーケンスの記憶又は読み出しの開始時にこの内部アドレスをゼロに戻すために、RESET端子にSTART信号131が供給される。LOAD端子は、TRIGGERED122及びFIFO130のFULL端子から出る反転信号(インバータ134により反転したもの)を入力として受けるANDゲート135の出力によって駆動する。この構成により、TRIGGERED信号が真になった後、FIFOが一杯になるまで、ターゲットシーケンスが発生するに伴ってこれらを連続的に記憶することが可能となるのである。この処理が発生すると、スコープモードの管理ソフトウエアはFIFOの内容を読み出し、プログラムSRAM20から対応命令語をフェッチし、全ての分岐が次の命令を指示することになるように調整するためにこれらの命令を変更し、そして変更した命令をプログラムSRAM20の予約領域に記憶することが出来るようになる。
【0090】
次にリングバス85に接続する単一ビットスコープモードレジスタ137について説明する。これはトリガ仕様が有効状態にあることを示すために管理ソフトウエアが設定するものである。スコープモードレジスタ137の出力は信号‘SCOPE_MODE138であり、これは、エラーフラグ挿入機構及び部分91(内部テストメモリ87の拡張例)の2箇所において使用される。エラーフラグ挿入処理の説明に移る前に、スコープモード処理を支援するために必要とされる、図4の最後の要素である部分91を説明する。
【0091】
部分91の目的は、ターゲットシーケンスに属する受信ベクトルをECR2(32b)に記憶することである。これらのベクトルは一回につき取得掃引の一段開ずつここにキャッシュされ、波形構築の際にスコープモードを制御するソフトウエアにアンロードされる。記憶される内容は、比較データ146(図5に拡大して示したようにタイミング/フォーマッティングおよび比較回路52を介してピンエレクトロニクス9に至ることになる)である。このような比較データ146がECR2のデータ入力に供給された場合、次の関心事はこれをどのように記憶するかである。記憶処理は、エラーがECR中に記憶されているかどうかを決定する通常機構の有無に応じた方法で行われなければならない。その具体例がECR_LOG_ENABLE94である。これは208ビット命令語の1ビットであり、これが設定されるか否かはプログラマがテストプログラム中のその部分についてエラーデータの記録を取ることを望んでいるかいないかによる。ここで必要なことは、ターゲットシーケンスの実行中は必ずECR2(32b)のWRITE−ENABLE端子を強制的に真とすることである。この役割を果たすのがMUX141であり、これがECR2のWRITE ENABLEを、信号‘SCOPE_MODEが偽(通常処理)の場合はECR_LOG_ENABLEで駆動し、真の場合はTRIGGEREDで駆動する。もう1つのMUX142も‘SCOPE_MODEを利用してECR2に適用するアドレスの変更を行う。通常モード処理においては、アドレスは単純にアドレスマッパ29から供給される通常アドレスである。スコープモードにおいては、このアドレスは増分可能レジスタ144から供給される異なるアドレスである。増分可能レジスタ144の値は信号START131によってゼロにリセットされ、信号PGM_STEP145によって増分される。即ち、この値はターゲットシーケンスの実行に同期して増分するのである。この構成によれば、ターゲットシーケンスの実行に伴って比較データ(VOH閾値が一致か不一致か)が記憶される。プログラマがテストプログラムのエラーデータの通常ログにECR2を使用することはないと思われる。
【0092】
最後に、リングバス85に接続する4ビットレジスタ147a〜dについて説明する。これは4個の1ビット区分を含み、その中の3つは通常のエラーフラグに替えて挿入すべき値を示すものである。従って、FERR_JAM147aはFERR154を、PERR_JAM147bはPERR153を、そしてECR_FLG_JAM147cはECR_FLG152を置き換えることが出来る。これらの置換は‘SCOPE_MODE138が真(トリガ仕様が充足した結果スコープモードレジスタ137が設定されたことを表す)であり、かつ4番目のビットTRIGGER_JAM_ENABLE147dも設定されている場合に実施される。ANDゲート148がこの状況を検出し、その出力がMUX149、150及び151を切り換えるために使用される。これらのMUXの切り換えにより挿入処理が生じるのである。MUXの結合出力155は次アドレス計算器102に供給され、テストプログラム中の分岐に影響を与える修飾入力として用いられるのである。
【0093】
次に図5を参照するが、これは取得掃引の各段階においてECR2(32b)に記憶されることになる比較データを供給する下位レベルの回路(これらの多くはチャネル毎に存在する)を示す概略ブロック図である。この図の左側は本願の参考文献である「MEMORY TESTER WITH ENHANCED POST DECODE(ポストデコード処理を改善したメモリテスタ)」の図5の一部である。従って、これについての詳細にわたる説明は避け、簡単に概略について触れる。
【0094】
まず、DUTのパッド又は端子109について説明する。これは、内部SRAM54(図2にも回路52の一部として図示)からFORMAT140及びデータ139を取得するドライブフォーマット発生器107によって起動するレベルシフタ108により駆動することが出来る。実施されている処理が何であれ端子109の電圧が指定範囲に収まっている場合、普通はその端子がテスタによって駆動されているかどうかを知りたいと望むものである。このために2つの比較器117及び118が存在し、これらが端子109と信号CH VOH172(チャネル毎のVOH)及びCH VOL171(チャネル毎のVOL)にそれぞれ接続している。信号CH VOH及びCH VOLは、これらの比較器が比較基準として用いる設定可能な比較電圧である。比較器の出力は受信ラッチ119a及び119bにそれぞれにラッチされ、これらのラッチの出力がそれぞれに論理信号YVOH及びYVOLを生成する。ラッチ処理は、ストローブ発生器170が、表示されたサンプルタイミングオフセットに基づいて決定したDUTサイクル中のある時点において実施されるが、これについての更なる説明は後に行う。
【0095】
YVOH及びYVOLは、FORMAT信号140、(期待)データ139及びIVTバス(これはVTバス89のチップ間延長部と言える;回路52はAPGが集積されたシリコンチップとは別の、マイクロコントローラシーケンサ19が集積されているチップに集積されているため)に応答するF/Pエラー選択レジスタ123中の情報に基づいて測定値入力が正しいかどうかを評価するフォーマットされたレシーバ124に供給される。いずれの場合においても、フォーマットされたレシーバ(チャネル毎に存在する)は信号FUNCTIONAL_ERROR126、PARAMETRIC_ERROR127及びCOMPARE_ERROR125を発信する。信号FUNCTIONAL_ERROR126及びPARAMETRIC_ERROR127はラッチ128及び129にそれぞれラッチされ、ラッチ128及び129は、図2の回路52の入力に現れた信号DFE0:3(103)及びDPE0:3(104)に応じて更なる処理の対象になり得る信号176及び177を生成する。これらが何を意味するかは開示した本発明の範囲外のことであり、これらはマルチDUT処理に関連したものである。ここで留意しておくべきことは、信号COMPARE_ERROR125は通常、実際のエラーデータとして恐らくはECR(エラー捕捉RAM)中に記憶されるもの、或いは先ず種類(データ分類又はポストデコード処理)により特性付けされた後に適正な種類の標識子がECRに記憶される類のものであるという点である。いずれにしても通常処理においては、COMPARE_ERROR125はフォーマット化されたレシーバ124に印加されるFORMAT信号140に基づいて生成されるに従い、送信されなければならない。この情報は「生の」YVOH及びYVOLと異なる場合もある。更に留意すべきは、取得掃引の1段階においては、この信号はまさに「生の」YVOHそのものであり、システムの他の部分に配信されなければならないという点である。これらの異なる目的を達成する役割を果たすのは(チャネル毎の)MUX173である。MUX173はチャネル毎のCOMPARE_ERROR125及び(チャネル毎の)YVOH175を受け、これらのうち、信号PIPED_TRIGGER180に基づいて適正な1つのみを送出する。即ち、PIPED_TRIGGER180が偽の場合、信号COMPARE_ERROR125が選択され、真の場合は実際の(翻訳処理されていない)YVOH175が選択されるということである。
【0096】
妥当な説明順序として、次に信号PIPED_TRIGGER180について触れる。これは、マイクロコントローラシーケンサ19から始まって、ALU24、アドレスマッパ29、内部テストメモリ87及び(又は)データMUX35、アドレスビット選択回路37、回路40、ベクトルFIFO45、そして最後にタイミング/フォーマッティングおよび比較回路52(図5を含む回路)を通る信号搬送パイプラインによりもたらされる遅延を持っていること以外は、論理的に信号TRIGGERED122(図4)に等しい。このパイプラインの存在及びそれによる遅延のため、信号TRIGGERED122(これはパイプラインの先頭段にある)は、これに関連する送信ベクトルが実際にDUTに印加出来るようになる前に発生する。図5にはPIPED_TRIGGER180により制御される3つのMUX164、169及び173がある。パイプラインの遅延作用を無視した場合(例えばTRIGGEREDをPIPED_TRIGGERに代えて使用した場合)、これらのMUXは早過ぎる段階で変化してしまい、実際上(論理的意味で)トリガの発生前にスコープモード処理が開始されてしまうことになる。これでは様々な支障が出てしまう。従って、信号TRIGGERED122は遅延機構181により遅延させられ、PIPED_TRIGGER180になるのである。遅延機構181は図示したように実際の別個の回路としても、或いはパイプライン自体の中にTRIGGERED用に設けられた専用経路としても良い。
【0097】
最後に電圧閾値VOL及びVOHはどのように生成されるのか、そしてどのようにサンプルタイミングオフセットが得られるのかについての説明を行う。これらはプログラムにより決定された通常値と段階的な取得掃引を実施するために必要な変化値との間で高速で切り換えることが出来なければならない。
【0098】
VOLはそれ自体が本願の対象とする処理を構成するものではないが、単純かつ同様の開始点を持つため、まずこのVOLについて説明する。VOLの起点はVOLレジスタ161である。VOLレジスタ161はリングバス85に接続し、このバス上で送られるmビットのデジタル値を受信する。これらのmビットはVOL D/A変換器162に印加され、アナログ閾電圧CH VOL171が生成される。アナログ閾電圧CH VOL171は比較器118に送られる。
【0099】
CH VOH172の生成も同様であるが、相違点は、VOH D/A変換器165がMUX164のmビット出力により駆動されているという点である。MUX164はリングバス85により設定可能な2つのmビットレジスタのいずれかを選択するものであるが、これらのレジスタとは、通常モードVOHレジスタ163及びスコープモードレジスタ166である。MUX164はMUX173と同様に信号PIPED_TRIGGER180の値に基づいてこの選択を行う。即ち、MUX164は、PIPED_TRIGGERが真の場合にはスコープモードレジスタ166のmビット値を選択するが、真ではない場合にはレジスタ163からの通常値を選択するのである。スコープモードレジスタ166の値は、スコープモードの管理ソフトウエアにより取得掃引の一段階における所望のVOH変更方式と矛盾しない値に事前に設定することが出来る。従ってCH VOH電圧172の値は、信号PIPED_TRIGGER180が発生した時点で極めて迅速に通常値から変化させることが出来、そしてPIPED_TRIGGER180が消えると同様の速さで通常値に戻すことが出来るのである。
【0100】
最後に、サンプルタイミングオフセットを通常値と取得掃引値との間で同様に切り換えるという問題に触れなければならない。この処理は、PIPED_TRIGGER180に制御されるMUX169がリングバス85に接続するスコープモードサンプルタイミングレジスタ168の出力又は通常モード用の「何等かの機構」167(後述)の出力を選択するという点において概ね同様の方法で行われる。選択される2つの出力は、各々にnビット長を持ち、受信ラッチ119a、119bのストローブ処理を何らかの基準信号に対して遅延させる時間量を記述するものである。その基準信号をSYSTEM_DUT_CYCLE178と呼ぶものとするが、これはストローブ発生器170に送られる。MUX169が選択した遅延値(スコープモードにおいてはレジスタ168から、通常モードにおいては「何等かの機構」167から得られた値)もまた、ストローブ発生器170に送られる。ストローブ発生器(基本的にはデジタル制御された遅延発生器)からの遅延出力179は受信ラッチ119a、119bに印加される。その出力は、本願の目的に照らし、MUX169からのnビット値分遅延したSYSTEM_DUT_CYCLE178の発生と考えることが出来る。このnビット値は、例えば19.5ピコ秒の倍数として、遅延値を表すものである。
【0101】
先に述べた「何等かの機構」167とは何か。その説明の開始点として、最も単純な実施例において言えば、これはスコープモードサンプルタイミングレジスタ168と同様の、リングバス85に結合する単なるnビットレジスタである。この場合、通常モードサンプルタイミングレジスタと呼ぶことが出来る。問題は、これが有効ではないということではなく(即ち、有効ではあるが)、テストプログラムにたった1つのサンプルタイミングオフセットリソースしか提供しないため、サンプルタイミングオフセット値を変化させなければならない場合は常にプログラマが大変な作業をしなければならないという点にある。これは面倒な仕事である。かわりに、事前にプログラムしておくことが出来、テストプログラムの実行中に容易に選択することが出来る「時間セット」があれば望ましい。これらの時間セットは通常モードサンプルタイミングルックアップテーブル167中に、例えば16セットある。これらは更に、単なるサンプルタイミングオフセット情報以上の内容を含むものであっても良い。本願の目的との関連性は薄いため、これらに関連してこれ以上の説明は省くものとする。従って、本願における通常モードサンプルタイミングルックアップテーブル167の説明としては、これがアドレス可能な16セットの要素を格納した機構であり、そのアドレス指定可能な場所の各々は幾つかの数値フィールドを格納することが出来、そのフィールドの1つがnビット値であり、アドレス指定されると、最も最近にアドレス指定された場所に現在記憶されているnビット値が他の情報と共にその出力に提供されるものである、と述べるに留める。上述したように、時間セットという概念は、従来からあるものと考えられ、必要とされる通常モードサンプルタイミングルックアップテーブル167は周知の方法で標準的なICライブラリ部品を用いて構成することが出来る。
【図面の簡単な説明】
【図1】本発明に基づいて構築された、大幅な再設定が可能で、アルゴリズムにより駆動する不揮発性メモリテスタの概略ブロック図である。
【図2】図1のDUTテスタ6を拡大して示した概略ブロック図である。
【図3】スコープモード処理の概要を示すフローチャートである。
【図4】図2のブロック図に描かれている要素のうち、トリガ処理とターゲットシーケンスの捕捉及び実行処理に係わる部分をより詳細に描いた図である。
【図5】図2のブロック図に描かれている要素のうち、取得掃引の実行中にVOH値及びサンプルタイミングオフセット値を段階的に変化させて行く処理に係わる部分をより詳細に描いた図である。
【符号の説明】
14:被試験デバイス(DUT)
24:ALU
97:ALUレジスタ
98:トリガ値レジスタ
99:マスクレジスタ
100、101:AND回路
103:比較回路
Claims (7)
- テスタ中の複数のALUハードウエアレジスタの内容を処理するアルゴリズム的性質を持つテストプログラムを実行する前記テスタにおいてトリガ信号を生成するための方法であって、前記複数のALUハードウエアレジスタの内容が前記テスタと被試験デバイス(DUT)との間の関連信号トラフィックを表すものであり、
(a)前記複数のALUハードウエアレジスタの各々について、前記トリガ信号の生成に寄与すべき、いずれのビット位置も含まない場合も含む、任意のビット位置の組み合わせを選択するステップと、
(b)前記ALUハードウエアレジスタの各々に別個のトリガ値レジスタを関連付けるステップと、
(c)前記ステップ(a)において選択された少なくとも1つのビット位置を有するALUハードウエアレジスタに関連するトリガ値レジスタの各々について、前記選択されたビット位置と同じビット位置に、トリガ信号を発生させるために前記関連するALUハードウエアレジスタが保持するビット値に対するビットをロードするステップと、
(d)前記トリガ値レジスタの各々について、その対応するALUハードウエアレジスタにおいて前記ステップ(a)で選択されたビット位置の組み合わせと同じビット位置の組み合わせを選択するステップと、
(e)ALUハードウエアレジスタ及び関連するトリガ値レジスタの各対について、前記ALUハードウエアレジスタの選択されたビットの組み合わせが、関連するトリガ値レジスタの選択されたビットの組み合わせと一致するかを、ビット毎に比較するステップと、
(f)前記ステップ(e)において一致したことが決定された場合、トリガ信号を生成するステップと、
を含む方法。 - (i)前記ステップ(a)が、前記ALUハードウエアレジスタの各々に異なるマスクレジスタを関連付けるステップと、前記マスクレジスタの各々に、前記対応するALUハードウエアレジスタにおいて選択されるべきビット位置における値である1をロードするステップと、各ALUハードウエアレジスタとそれに関連するマスクレジスタとの間で、ビット毎にAND演算を実施するステップと、をさらに含み、前記ビット毎のAND演算の結果がそれぞれに対応するALUハードウエアレジスタについて選択されたビット位置の組み合わせの内容を表すものであり、
(ii)前記ステップ(c)が、異なるマスクレジスタを前記トリガ値レジスタの各々に関連付けるステップと、別個のマスクレジスタの各々に、前記対応するトリガ値レジスタにおいて選択されるべきビット位置における値である1をロードするステップと、各トリガ値レジスタとそれに関連するマスクレジスタとの間で、ビット毎にAND演算を実施するステップと、をさらに含み、前記ビット毎のAND演算の結果がそれぞれに対応するトリガ値レジスタについて選択されたビット位置の組み合わせの内容を表すものである、
請求項1に記載の方法。 - 前記テストプログラムの実行可能命令語のうち、前記トリガ信号の生成を可能とすることを意図したテストプログラム部分に対応する実行可能命令語の中にトリガイネーブルビットを含ませるステップをさらに含み、前記ステップ(f)においては、前記トリガイネーブルビットの存在が前記トリガ信号が生成されるためのさらなる条件であることを特徴とする、請求項1に記載の方法。
- (g)前記テストプログラムの分岐に影響を与えるエラーフラグに対して選択した代替値を定義するステップと、
(h)前記ステップ(f)における前記トリガ信号の生成の後に、前記エラーフラグの実際の値をそれらに対応する前記代替値に置き換えるステップと、
をさらに含む、請求項1に記載の方法。 - (g)前記ステップ(f)における前記トリガ信号の生成の後に、前記テストプログラムにより実行される、選択された数の連続命令語であるターゲットシーケンスを捕捉するステップと、
(h)前記ステップ(g)の後、前記テストプログラムを繰り返し再起動し、前記トリガ信号の発生時に分岐をさせて前記捕捉したターゲットシーケンスの実行を継続するステップと、
(i)前記ステップ(h)において前記捕捉されたターゲットシーケンスを繰り返し実行する間、前記DUTの選択されたチャネルの閾電圧値とサンプルタイミングオフセット値を変化させて行くステップと、
(j)前記ステップ(i)から得られた閾値比較データを記憶するステップと、
(k)前記ステップ(j)において記憶された前記閾値比較データから、前記選択されたチャネルの電圧波形を生成し、前記捕捉されたターゲットシーケンスの前記トリガ信号後の実行に対応する時間を表示するステップと、
をさらに含む、請求項1に記載の方法。 - 前記生成されたトリガ信号の発生を選択された時間分遅延させるステップをさらに含む、請求項1に記載の方法。
- 前記テスタがメモリテスタであり、前記DUTがメモリであることを特徴とする、請求項1に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/838766 | 2001-04-19 | ||
US09/838,766 US6834364B2 (en) | 2001-04-19 | 2001-04-19 | Algorithmically programmable memory tester with breakpoint trigger, error jamming and 'scope mode that memorizes target sequences |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003050269A JP2003050269A (ja) | 2003-02-21 |
JP2003050269A5 JP2003050269A5 (ja) | 2005-09-22 |
JP4298960B2 true JP4298960B2 (ja) | 2009-07-22 |
Family
ID=25277994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002117030A Expired - Fee Related JP4298960B2 (ja) | 2001-04-19 | 2002-04-19 | アルゴリズム的にプログラム可能なメモリテスタにおけるトリガ信号生成方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6834364B2 (ja) |
JP (1) | JP4298960B2 (ja) |
KR (1) | KR100881843B1 (ja) |
DE (1) | DE10217303A1 (ja) |
Families Citing this family (28)
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 |
US20020199179A1 (en) * | 2001-06-21 | 2002-12-26 | Lavery Daniel M. | Method and apparatus for compiler-generated triggering of auxiliary codes |
JPWO2003085838A1 (ja) * | 2002-04-05 | 2005-08-18 | ソニー株式会社 | インターリーブ装置及びインターリーブ方法、並びにデインターリーブ装置及びデインターリーブ方法 |
US7178135B2 (en) * | 2002-05-16 | 2007-02-13 | International Business Machines Corporation | Scope-based breakpoint selection and operation |
US20040019828A1 (en) * | 2002-07-25 | 2004-01-29 | Gergen Joseph P. | Method and apparatus for debugging a data processing system |
US20040025083A1 (en) * | 2002-07-31 | 2004-02-05 | Murthi Nanja | Generating test code for software |
US7509533B1 (en) * | 2003-06-30 | 2009-03-24 | Sun Microsystems, Inc. | Methods and apparatus for testing functionality of processing devices by isolation and testing |
JP4737929B2 (ja) * | 2003-12-12 | 2011-08-03 | 株式会社東芝 | 半導体記憶装置 |
US7363364B2 (en) * | 2004-03-30 | 2008-04-22 | At&T Delaware Intellectual Property, Inc. | Methods, systems, and products for verifying integrity of web-server served content |
US7426556B2 (en) * | 2004-03-30 | 2008-09-16 | At&T Intellectual Property I, L.P. | Methods, systems, and products for verifying integrity of web-server served content |
US7216256B2 (en) * | 2004-03-30 | 2007-05-08 | Bellsouth Intellectual Property Corporation | Methods, systems, and products for verifying integrity of web-server served content |
US7353437B2 (en) | 2004-10-29 | 2008-04-01 | Micron Technology, Inc. | System and method for testing a memory for a memory failure exhibited by a failing memory |
WO2007043144A1 (ja) * | 2005-10-05 | 2007-04-19 | Hewlett-Packard Development Company, L.P. | 負荷試験装置およびその方法 |
DE102005048872A1 (de) * | 2005-10-12 | 2007-04-26 | Mühlbauer Ag | Testkopfeinrichtung |
US7650555B2 (en) * | 2006-07-27 | 2010-01-19 | International Business Machines Corporation | Method and apparatus for characterizing components of a device under test using on-chip trace logic analyzer |
KR100764052B1 (ko) * | 2006-08-03 | 2007-10-08 | 삼성전자주식회사 | 유동적 어드레스 바운더리를 갖는 플래시 메모리 장치 및그것의 프로그램 방법 |
US7680621B2 (en) * | 2007-08-15 | 2010-03-16 | Keithley Instruments, Inc. | Test instrument network |
JP2009300248A (ja) * | 2008-06-13 | 2009-12-24 | Mitsubishi Electric Corp | 並列試験装置 |
KR20100103212A (ko) * | 2009-03-13 | 2010-09-27 | 삼성전자주식회사 | 복수개의 테스트 모듈을 구비하는 테스트 보드 및 이를 구비하는 테스트 시스템 |
US8683456B2 (en) | 2009-07-13 | 2014-03-25 | Apple Inc. | Test partitioning for a non-volatile memory |
US8645776B2 (en) * | 2010-03-24 | 2014-02-04 | Apple Inc. | Run-time testing of memory locations in a non-volatile memory |
US8650446B2 (en) * | 2010-03-24 | 2014-02-11 | Apple Inc. | Management of a non-volatile memory based on test quality |
US8751903B2 (en) | 2010-07-26 | 2014-06-10 | Apple Inc. | Methods and systems for monitoring write operations of non-volatile memory |
US9397500B2 (en) * | 2013-06-28 | 2016-07-19 | Solantro Semiconductor Corp. | Inverter with extended endurance memory |
CN110502439B (zh) * | 2019-08-07 | 2024-01-12 | Oppo广东移动通信有限公司 | 调试方法、装置、电子设备以及存储介质 |
CN114546822A (zh) * | 2021-12-27 | 2022-05-27 | 芯华章科技股份有限公司 | 测试设计的方法、电子设备及存储介质 |
US11914500B2 (en) * | 2022-02-03 | 2024-02-27 | Apple Inc. | Debugging of accelerator circuit for mathematical operations using packet limit breakpoint |
US20240153572A1 (en) * | 2022-11-08 | 2024-05-09 | Western Digital Technologies, Inc. | Test controller enabling a snapshot restore and resume operation within a device under test |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2577120Y2 (ja) * | 1993-04-15 | 1998-07-23 | 株式会社アドバンテスト | 過剰パルス印加の禁止回路 |
JP3237473B2 (ja) * | 1995-06-29 | 2001-12-10 | 安藤電気株式会社 | マスク制御装置 |
JP3846939B2 (ja) * | 1995-08-30 | 2006-11-15 | フリースケール セミコンダクター インコーポレイテッド | データプロセッサ |
US5771240A (en) * | 1996-11-14 | 1998-06-23 | Hewlett-Packard Company | Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin |
US6360340B1 (en) * | 1996-11-19 | 2002-03-19 | Teradyne, Inc. | Memory tester with data compression |
US6253338B1 (en) * | 1998-12-21 | 2001-06-26 | International Business Machines Corporation | System for tracing hardware counters utilizing programmed performance monitor to generate trace interrupt after each branch instruction or at the end of each code basic block |
US6327544B1 (en) * | 1999-03-01 | 2001-12-04 | Agilent Technologies, Inc. | Automatic storage of a trigger definition in a signal measurement system |
EP1089293B1 (en) * | 1999-09-30 | 2008-12-10 | STMicroelectronics S.r.l. | Memory test method and nonvolatile memory with low error masking probability |
US6615369B1 (en) * | 2000-01-31 | 2003-09-02 | Agilent Technologies, Inc. | Logic analyzer with trigger specification defined by waveform exemplar |
-
2001
- 2001-04-19 US US09/838,766 patent/US6834364B2/en not_active Expired - Lifetime
-
2002
- 2002-04-18 KR KR1020020021258A patent/KR100881843B1/ko active IP Right Grant
- 2002-04-18 DE DE10217303A patent/DE10217303A1/de not_active Withdrawn
- 2002-04-19 JP JP2002117030A patent/JP4298960B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR100881843B1 (ko) | 2009-02-03 |
JP2003050269A (ja) | 2003-02-21 |
DE10217303A1 (de) | 2002-10-31 |
KR20020081673A (ko) | 2002-10-30 |
US6834364B2 (en) | 2004-12-21 |
US20020157042A1 (en) | 2002-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4298960B2 (ja) | アルゴリズム的にプログラム可能なメモリテスタにおけるトリガ信号生成方法 | |
JP4194799B2 (ja) | 被試験デバイスの試験中にエラーが生じた場合にテストプログラムのアルゴリズム制御のその時点の状態を回復する方法 | |
US6321320B1 (en) | Flexible and programmable BIST engine for on-chip memory array testing and characterization | |
US6957371B2 (en) | Method and apparatus for embedded built-in self-test (BIST) of electronic circuits and systems | |
US6760865B2 (en) | Multiple level built-in self-test controller and method therefor | |
US6347056B1 (en) | Recording of result information in a built-in self-test circuit and method therefor | |
US5925142A (en) | Self-test RAM using external synchronous clock | |
US6493839B1 (en) | Apparatus and method for testing memory in a microprocessor | |
US6564347B1 (en) | Method and apparatus for testing an integrated circuit using an on-chip logic analyzer unit | |
KR100786418B1 (ko) | Dram에서의 메모리 동작 수행 방법 | |
JP2008310955A (ja) | 不良な列にあるアドレスでプログラミングするのに時間を消費することを回避する方法 | |
US20080109594A1 (en) | Non-volatile memory device controlled by a micro-controller | |
KR100896585B1 (ko) | 메모리 테스트 방법 | |
US6862704B1 (en) | Apparatus and method for testing memory in a microprocessor | |
JP4317338B2 (ja) | 高機能化された後デコードを有するメモリテスタ | |
US6763490B1 (en) | Method and apparatus for coordinating program execution in a site controller with pattern execution in a tester | |
US20020174394A1 (en) | External control of algorithm execution in a built-in self-test circuit and method therefor | |
US20060036803A1 (en) | Non-volatile memory device controlled by a micro-controller | |
US6968545B1 (en) | Method and apparatus for no-latency conditional branching | |
KR100786414B1 (ko) | Dut 테스터 데이터 채널 반전 특성 관리 장치 | |
US7730375B1 (en) | Method and apparatus for controlling operating modes of an electronic device | |
KR20020025838A (ko) | 조건 계산 수행 장치 | |
KR20020020862A (ko) | 메모리 테스터 어드레스 채널 관리 장치 | |
JPH07280886A (ja) | 半導体集積回路の評価装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050418 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050418 |
|
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 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080620 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080918 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080924 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081222 |
|
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: 20090319 |
|
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: 20090416 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120424 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120424 Year of fee payment: 3 |
|
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: 20130424 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: 20130424 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: 20130424 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: 20130424 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140424 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |