以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。
図1は、本実施形態によるメモリ試験装置1の構成の一例を示すブロック図である。メモリ試験装置1は、被試験メモリ2(DUT(Device Under Tester))から出力された論理フェイルビットマップ(理論アドレス(X、Y、Z)およびデータ)を受け取り、論理フェイルビットマップに基づいて被試験メモリ2における物理フェイルビットマップやフェイルビット数を取得し格納する装置である。
被試験メモリ2は、例えば、NAND型EEPROM(Electrically Erasable Programmable Read-Only Memory)等の半導体メモリである。NAND型EEPROMは、メモリセルの論理アドレスと物理的な配置(物理アドレス)とが一致しないことがある。このようなNAND型EEPROMにおいて、歩留まり改善のために、内部におけるフェイルビットの物理的な位置やフェイルビット数を特定して不良解析することがある。
メモリセルのフェイル/パスを試験する際には、被試験メモリ2に同一論理のデータ(例えば、“0”)を一旦書き込む。次に、被試験メモリ2からデータを読み出す。被試験メモリ2から読み出されたデータが逆論理のデータ(例えば、“1”)に変化している場合には、メモリ試験装置1は、そのメモリセルをフェイルビットとして判定する。フェイルビットは、被試験メモリ2において欠陥メモリセルとして取り扱われるメモリセルである。メモリ試験装置1は、まず、被試験メモリ2における論理フェイルビットマップを得る。論理フェイルビットマップは、論理アドレスと関連付けられたデータである。従って、メモリ試験装置1は、論理フェイルビットマップを物理フェイルビットマップに変換するために以下のような構成を有する。
以下、メモリ試験装置1をより詳細に説明する。
本実施形態によるメモリ試験装置1は、論物変換部10と、データマッピング部15と、ソートメモリ20と、バーストアドレス生成部30と、フェイルビットメモリ40と、ロウフェイルビットカウンタ50と、カラムフェイルビットカウンタ60とを備えている。
第1変換部としての論物変換部10は、被試験メモリ2に与えられた論理アドレス(X、Y、Z)と被試験メモリ2の物理アドレスとの対応関係を示す変換テーブルを格納している。論物変換部10は、変換テーブルに基づいて論理アドレスを物理アドレスへ変換する。上述の通り、論物変換処理は、年々、複雑になっており、簡単な論理式で変換すること(スクランブル)ができなくなっている。そこで、本実施形態では、論物変換部10が論物変換テーブルを格納しており、論物変換テーブルに従って論理アドレスを物理アドレスに逐次変換する(任意変換)。
例えば、論物変換テーブルは、理論アドレス(X、Y、Z)と物理アドレス(例えば、図2に示すカラムアドレスC0〜Cn(nは整数)、ロウアドレス(またはストリングアドレス)R0〜Rm(mは整数)、レイヤアドレスL0〜Lp(pは整数)、ブロックアドレスB0〜Bq(qは整数))との対応関係を示すテーブルである。論理アドレス(X、Y、Z)は、メモリ検査装置1から被試験メモリ2へ与えられるアドレスであり、被試験メモリ2はその論理アドレスに従って読み出されたデータをメモリ検査装置1へ返す。Xは、例えば、カラムアドレスであり、Yは例えば、ロウアドレス(ストリングアドレスおよびレイヤアドレス)であり、Zは、例えば、ブロックアドレスである。尚、X、Y、Zのアドレスは、これに限定されず、任意に設定可能である。物理アドレスは、被試験メモリ2内の物理的な位置を示すアドレスである。従って、物理アドレスによって、そのデータが格納されている被試験メモリ2内の物理的な位置が判明する。尚、論物変換テーブルは、被試験メモリ2の製品によって異なる場合もある。その場合には、被試験メモリ2の試験前に、被試験メモリ2の製品に合わせて、論物変換テーブルを予め設定すればよい。NAND型EEPROMの物理アドレス(カラムアドレスC0〜Cn、ロウアドレス(またはストリングアドレス)R0〜Rm、レイヤアドレスL0〜Lp、ブロックアドレスB0〜Bq)の構成例については、図2を参照して後で説明する。
第2変換部としてのデータマッピング部15は、被試験メモリ2から出力され同一物理アドレスを有する一群のデータ(以下カラムデータともいう)を、被試験メモリ2内での物理的な格納配列の順番に配列し直して出力する。カラムデータは、図2に示す同一物理アドレス(同一ブロック、同一ロウ(ストリング、レイヤ)、同一カラム)に属する複数のビット(例えば、8ビット)からなるデータである。カラムデータは複数ビットを含む場合があり、尚且つ、被試験メモリ2は、カラムデータ内の複数ビットのデータを被試験メモリ2内の格納配列順とは異なる任意に設定された順番で出力する場合がある。このような場合、カラムデータ内のビット配列は、物理アドレスでは特定することができないので、データマッピング部15は、その任意に設定された出力順番情報を予め格納し、その出力順番情報に基づいて、カラムデータのビット配列を被試験メモリ2内の物理的な格納配列順に配列し直して(マッピングして)出力する。尚、データマッピング部15の構成例については、図5を参照して後で説明する。
第1メモリとしてのソートメモリ20は、データマッピング部15からのカラムデータを、物理アドレスに従った位置に格納する。これにより、ソートメモリ20は、被試験メモリ2内での物理的な格納位置に対応する位置に各カラムデータを格納することができる。尚且つ、ソートメモリ20は、データマッピング部15からの出力の順番でデータを格納する。データマッピング部15から出力される各カラムデータ内のビット配列は、被試験メモリ2内の物理的な格納配列順になっている。従って、ソートメモリ20は、カラムデータ内のビット配列を、被試験メモリ2内での物理的な格納配列で格納することができる。これにより、ソートメモリ20は、例えば、複数のカラムデータからなるページ全体を、被試験メモリ2内での物理的な格納配列で格納することができる。
NAND型EEPROMは、ページ単位で読出しまたは書込みのアクセスが可能である。従って、被試験メモリ2がNAND型EEPROMである場合、ソートメモリ20は、ページ単位でデータを格納可能とする。例えば、ソートメモリ20には、高速アクセス可能なSRAM(Static Random Access Memory)を用いており、書込み単位または読出し単位(以下、ページまたはページ単位ともいう)のデータを格納可能である。ソートメモリ20は、データマッピング部15によって配列し直されたカラムデータを、物理アドレス(カラムアドレス)に従って格納する。従って、それぞれのカラムデータは、被試験メモリ2内における物理的な格納順にソートメモリ20へ格納される。データ容量がページ単位になると、ソートメモリ20は、データをフェイルビットメモリ40へ転送可能になる。即ち、ソートメモリ20は、ページごとに、被試験メモリ2内での物理的な格納配列を再現し、そのデータをフェイルビットメモリ40へ転送する。
バーストアドレス生成部30は、連続した数値からなるバーストアドレスを生成する。バーストアドレスは、例えば、ゼロから昇順にインクリメントされるアドレス(0、1、2、3・・・)である。バーストアドレスは、ソートメモリ20からカラムデータが読み出される際に用いられる。ソートメモリ20は、1ページ分のデータを被試験メモリ2内での物理的な格納配列順で格納している。従って、ソートメモリ20がバーストアドレスに従ってソートメモリ20内での物理的な格納配列順でカラムデータを出力すれば、フェイルビットメモリ40は、カラムデータを被試験メモリ2内での物理的な格納配列順で格納することができる。尚、バーストアドレスは、例えば、降順にデインクリメントされるアドレス(・・・3、2、1、0)であってもよい。
バーストアドレス生成部30は、論物変換部10が同一ページのアドレスを出力している期間中、連続したバーストアドレスを生成する。一方、バーストアドレス生成部30は、論物変換部10が他のページのアドレスを出力する場合(ページが変わった場合)には、バーストアドレスをリセットする。例えば、バーストアドレス生成部30は、ページアドレス(ロウアドレス)が変更されたときに、再度、ゼロからインクリメントしながら出力する。尚、ここでは、ロウアドレスは、ページアドレスであり、ストリングアドレスおよびレイヤアドレスの両方を含むアドレスである。
フェイルビットメモリ40は、ソートメモリ20に格納されているページ単位のデータを、ソートメモリ20内での物理的な格納配列順のまま、物理アドレス(ブロックアドレス、ロウアドレス)に従った位置に格納する。上述の通り、ソートメモリ20は、データを被試験メモリ2内での物理的な格納配列順で格納しており、かつ、データをバーストアドレスに従って連続的に出力する。従って、フェイルビットメモリ40は、物理アドレス(ブロックアドレス、ロウアドレス)で指定された位置に、そのページのデータを、被試験メモリ2内での物理的な格納配列順で格納することができる。このようにして、被試験メモリ2内の全てのページのデータをフェイルビットメモリ40に格納すれば、フェイルビットメモリ40は、被試験メモリ2内の物理的なデータ格納配列を再現することができる。フェイルビットメモリ40には、例えば、大容量かつ高速アクセス可能なSDRAM(Synchronous Dynamic RAM)が用いられる。
ロウフェイルビットカウンタ50は、データマッピング部15からのデータのフェイルビットを、ページごと(即ち、図2のロウアドレスR0〜Rmごと)にカウントする。例えば、ロウフェイルビットカウンタ50は、データマッピング部15からソートメモリ20へ送信されるフェイルビットデータ(例えば、データ“1”)を加算し、それぞれのページのフェイルビット数を算出する。各ページのフェイルビット数は、ロウフェイルビットカウンタ50内に格納される。
カラムフェイルビットカウンタ60は、ソートメモリ20のそれぞれのデータ格納位置におけるフェイルビット数の積算値(例えば、複数のページに亘る同一カラム内の各ビットのフェイルビット数)を格納する。ソートメモリ20は、例えば、ページごとに、データを被試験メモリ2内での物理的な格納配列順で格納するので、ソートメモリ20が複数のページを逐次格納した場合に、同一のデータ格納位置に格納されるビットデータ数は、被試験メモリ2内において、複数のページに亘る同一カラム内の各ビットデータのフェイルビット数(同一のビット線に接続されたメモリセルのフェイルビット数)となる。従って、ソートメモリ20が複数のページを逐次格納した際に、ソートメモリ20のそれぞれのデータ格納位置におけるフェイルビット数を複数ページに亘って積算すると、該複数ページに亘るカラム方向(図2のRc)に配列されたメモリセルのフェイルビット数が得られる。各カラムのフェイルビット数は、カラムフェイルビットカウンタ60内に格納される。
図2は、本実施形態における被試験メモリ2の内部の物理的な格納配列の一例を示す概念図である。被試験メモリ2は、例えば、NAND型EEPROM等の半導体メモリである。被試験メモリ2は、例えば、2次元的なメモリセルアレイ構造を有するメモリ、あるいは、3次元的なメモリセルアレイ構造を有する積層型メモリでよい。本実施形態では、被試験メモリ2は、例えば、積層型メモリであるものとして説明する。
被試験メモリ2のメモリセルアレイMCAは、複数のブロックB0〜Bq(qは整数)で構成される。各ブロックB0〜Bqは、複数のレイヤL0〜Lp(pは整数)で構成される。各レイヤL0〜Lpは、2次元配置された複数のメモリセルを備えている。ロウ(各レイヤのストリング)R0〜Rm(mは整数)は、ワード線(図示せず)を共有する複数のメモリセルを示している。カラムC0〜Cn(nは整数)は、単数または複数のビット線(図示せず)に接続された複数のメモリセルを示している。ワード線とビット線とは互いに交差しており、メモリセルは、その交差点に対応するように設けられている。ワード線の延伸方向をロウ方向Rrとし、ビット線の延伸方向をカラム方向Rcとする。尚、図2では、各メモリセルまたは各ビットのデータを四角形のマス目で示している。
被試験メモリ2は、同一ロウの(同一ワード線に接続された)メモリセルに格納されたデータを“ページ”とし、ページ単位でデータを書き込みあるいは読み出す。例えば、1つのロウR0と全カラムC0〜Cnとに対応するメモリセルに格納されたデータが1ページとなる。図2おいて、1ページは、ロウ方向Rrに配列された1行のデータに該当する。
一方、カラム方向Rcに配列され同一ビット線に接続された複数のメモリセルのデータは、被試験メモリ2の同一の入出力ポートIO(Input/Output)から出力される。従って、同一ビット線に接続された複数のメモリセルから同一入出力ポートIOを介して出力されるデータを、以下、“IOデータ”とも呼ぶ。図2おいて、IOデータは、カラム方向Rcに配列された1列のデータに該当する。
被試験メモリ2が、例えば、8つの入出力ポートIOを有する場合、被試験メモリ2は、読出し時に、或るロウとカラム(8本のビット線)とに対応する8つのメモリセルから同時に8ビットデータを出力する。この8ビットデータが被試験メモリ2から一度に出力されるデータ(1カラムデータ)となる。被試験メモリ2は、ページごとに読出しを実行するので、或るページ(ロウ)内の全カラムデータの読出しを完了して読出し動作を終了する。従って、読出し単位としてのページは、同一ロウのデータであり、被試験メモリ2は、読出し対象のページを8ビットデータ(1カラムデータ)ずつ出力する。逆に、書込み時において、被試験メモリ2は、書込み対象のページを1カラムデータずつ取り込む。読出し対象または書込み対象のページは、物理ブロックアドレス、物理レイヤアドレス、物理ロウアドレス(ストリングアドレス)によって特定される。さらに、カラムデータ(8ビットデータ)は、物理カラムアドレスによって特定される。
一方、被試験メモリ2から出力される論理アドレス(X、Y、Z)は、被試験メモリ2内の物理アドレスとは異なる。さらに、上述の通り、同一カラム内のデータは、被試験メモリ2に格納されている物理的な順番とは異なり、任意に設定された順番で出力されることがある。従って、メモリ試験装置1は、論理アドレス(X、Y、Z)を物理アドレス(例えば、ブロックアドレス、レイヤアドレス、ストリングアドレス、カラムアドレス)に変換し、尚且つ、同一カラム内のデータ(例えば、8ビットデータ)を被試験メモリ2における物理的な順番に変換する必要がある。そこで、本実施形態では、図1に示す論物変換部10が論理アドレスを物理アドレスに変換する論物変換処理を実行し、尚且つ、データマッピング部15が同一カラムデータ内のビットデータを被試験メモリ2における物理的な順番に変換する。
図3は、論物変換部10およびデータマッピング部15の構成の一例を示すブロック図である。論物変換部10は、アドレスセレクタ11と、Valid信号生成部12と、セレクト設定部13と、論物変換処理部17〜19と、テーブルセレクタ87〜89とを備えている。
アドレスセレクタ11は、被試験メモリ2へ与えた論理アドレス(X、Y、Z)に対応するメモリ試験装置1の論理アドレス(LAc、LAs、LAl)を選択し、その論理アドレス(LAc、LAs、LAl)を出力する。論理アドレス(LAc、LAs、LAl)は、論理アドレス(X、Y、Z)に対応して選択されるメモリ試験装置1内部での論理アドレスであり、論理アドレス(X、Y、Z)に対応した任意のアドレスでよい。論理アドレス(LAc、LAs、LAl)は、論理アドレス(X、Y、Z)と同一のアドレスであってもよい。従って、論理アドレス(X、Y、Z)と論理アドレス(LAc、LAs、LAl)とは、以下、特に区別すること無く、まとめて論理アドレスと呼ぶ場合がある。
Valid信号生成部12は、論理アドレス(LAc、LAs、LAl)の変化を検出して、それぞれ許可信号Rvalid_c、Rvalid_s、Rvalid_lを活性化する。これにより、論理アドレス(LAc、LAs、LAl)は、有効な論理アドレスとして論物変換処理部17〜19において論物変換される。
論物変換処理部17は、カラムアドレス用の論物変換テーブルTcを格納しており、許可信号Rvalid_cが活性化されたときに、論理カラムアドレスLAcを、それに対応する物理カラムアドレスPAcへ変換する。論理カラムアドレスLAcは、被試験メモリ2内における物理的なカラムC0〜Cnを示すアドレスである。論物変換テーブルTcは、論理カラムアドレスLAcに対応する物理カラムアドレスPAcを示すテーブルである。論物変換処理部17は、論理カラムアドレスLAcを物理カラムアドレスPAcへ変換し、物理カラムアドレスPAcを出力する。
論物変換処理部17は、複数の論物変換テーブルTcを格納していてもよい。この場合、テーブルセレクタ87が、論理アドレスの一部を用いて複数の論物変換テーブルTcのいずれかを選択すればよい。例えば、論物変換処理部17がブロックB0〜Bqのそれぞれに対応する複数の論物変換テーブルTcを有する場合、テーブルセレクタ87は、ブロックアドレスに従って複数の論物変換テーブルTcのいずれかの物理カラムアドレスPAcを選択的に出力する。これにより、テーブルセレクタ87は、特定のブロックに対応する物理カラムアドレスPAcを選択的に出力することができる。
論物変換処理部18は、ストリングアドレス(ロウアドレス)用の論物変換テーブルTsを格納しており、許可信号Rvalid_sが活性化されたときに、論理ストリングアドレスLAsをそれに対応する物理ストリングアドレスPAsへ変換する。論理ストリングアドレスLAsは、被試験メモリ2内における物理的なストリング(ロウR0〜Rm)を示すアドレスである。論物変換テーブルTsは、論理ストリングアドレスLAsに対応する物理ストリングアドレスPAsを示すテーブルである。論物変換処理部18は、論理ストリングアドレスLAsを物理ストリングアドレスPAsへ変換し、物理ストリングアドレスPAsを出力する。
論物変換処理部18は、複数の論物変換テーブルTsを格納していてもよい。この場合、テーブルセレクタ88は、論理アドレスの一部を用いて複数の論物変換テーブルTsのいずれかを選択すればよい。例えば、論物変換処理部18がブロックB0〜Bqのそれぞれに対応する複数の論物変換テーブルTsを有する場合、テーブルセレクタ88は、ブロックアドレスに従って複数の論物変換テーブルTsのいずれかの物理ストリングアドレスPAsを選択的に出力する。これにより、テーブルセレクタ88は、特定のブロックに対応する物理ストリングアドレスPAsを選択的に出力することができる。
論物変換処理部19は、レイヤアドレス用の論物変換テーブルTlを格納しており、許可信号Rvalid_lが活性化されたときに、論理レイヤアドレスLAlをそれに対応する物理レイヤアドレスPAlへ変換する。論理レイヤアドレスLAlは、被試験メモリ2内における物理的なレイヤ(L0〜Lp)を示すアドレスである。論物変換テーブルTlは、論理レイヤアドレスLAlに対応する物理レイヤアドレスPAlを示すテーブルである。論物変換処理部19は、論理レイヤアドレスLAlを物理レイヤアドレスPAlへ変換し、物理レイヤアドレスPAlを出力する。
論物変換処理部19は、複数の論物変換テーブルTlを格納していてもよい。この場合、テーブルセレクタ89が、論理アドレスの一部を用いて複数の論物変換テーブルTlのいずれかを選択すればよい。例えば、論物変換処理部19がブロックB0〜Bqのそれぞれに対応する複数の論物変換テーブルTlを有する場合、テーブルセレクタ89は、ブロックアドレスに従って複数の論物変換テーブルTlのいずれかの物理レイヤアドレスPAlを選択的に出力する。これにより、テーブルセレクタ89は、特定のブロックに対応する物理レイヤアドレスPAlを選択的に出力することができる。
尚、複数の論物変換テーブル(Tc、TsまたはTl)から特定の論物変換テーブルを選択するアドレスは、ブロックアドレス以外のアドレスであってもよい。また、本実施形態では、論物変換処理部は、3つのアドレス(カラムアドレス、ストリングアドレス、レイヤアドレス)に対応して設けられているが、論物変換処理部の数は、アドレスの種類に対応して、3つ未満であってもよく、3つより多くても構わない。
図4は、論物変換テーブルTc、Ts、Tlのいずれかを示す概念図である。論物変換テーブルは、論理アドレス(LAc、LAsまたはLAl)に対応する物理アドレス(PAc、PAsまたはPAl)を示したテーブルである。例えば、論理アドレスAdd0に対応する物理アドレスがAdd8であるとすると、論物変換処理部は、論理アドレスAdd0を入力した場合に、物理アドレスAdd8を出力する。論理アドレスAdd1に対応する物理アドレスがAdd1であるとすると、論物変換処理部は、論理アドレスAdd1を入力した場合に、物理アドレスAdd1を出力する。論理アドレスAdd2に対応する物理アドレスがAdd5であるとすると、論物変換処理部は、論理アドレスAdd2を入力した場合に、物理アドレスAdd5を出力する。
図4に示すように、論物変換処理には、論理アドレスと物理アドレスとの間に規則性のない変換も含まれ得る。従って、本実施形態では、論理式によるスクランブルを用いることなく、上述のように論物変換テーブルを用いた任意変換を行う。
図3を再度参照する。データマッピング部15は、マッピング設定部14と、マッピング回路16とを備えている。マッピング設定部14は、被試験メモリ2から出力されるカラムデータ内のビット配列と、被試験メモリ2内の物理的なカラムデータのビット配列との関係を格納している。マッピング回路16は、これらのビット配列の関係に基づいて、被試験メモリ2から出力されたカラムデータのビット配列を、被試験メモリ2内の物理的なカラムデータのビット配列に配列し直して(マッピングして)出力する。
図5は、マッピング回路16の内部構成の一例を示すブロック図である。マッピング回路16は、複数のセレクタ90〜97を備える。複数のセレクタ90〜97は、1つのカラムデータに含まれるビット数に対応する数だけ設けられており、入力と出力との間に並列に接続されている。例えば、カラムデータが8ビットデータである場合、マッピング回路16は、少なくとも8つのセレクタ90〜97を備える。セレクタ90〜97は、それぞれカラムデータを受け取り、マッピング設定部14におけるビット配列の関係に基づいて、カラムデータのいずれかのビットデータを選択的に出力する。例えば、被試験メモリ2から出力されたカラムデータのビット配列が(02461357)であり、被試験メモリ2内の物理的なカラムデータのビット配列が、(01234567)であるとする。この場合、セレクタ90〜97は、それぞれカラムデータ(02461357)を入力し、それぞれビットデータ0、1、2、3、4、5、6、7を出力する。これにより、データマッピング部15は、被試験メモリ2から出力されたカラムデータのビット配列(02461357)を、被試験メモリ2内の物理的なカラムデータのビット配列(01234567)に配列し直して出力することができる。
図6は、ソートメモリ20、バーストアドレス生成部30、ロウフェイルビットカウンタ50、および、カラムフェイルビットカウンタ60の構成の一例を示すブロック図である。
ソートメモリ20は、第1ソートメモリとしてのカラムアドレスソートメモリ20A(以下、ソートメモリ20Aともいう)と、第2ソートメモリとしてのカラムアドレスソートメモリ20B(以下、ソートメモリ20Bともいう)とを含む。ソートメモリ20A、20Bには、それぞれ、例えば、ランダムアクセスおよびバーストアクセスの両方とも高速に実行可能なSRAMを用いている。ソートメモリ20A、20Bは、例えば、それぞれ1ページのデータを格納可能なSRAMである。
ソートメモリ20Aおよび20Bは、データ書込み動作とデータ読出し動作とを交互に排他的に実行し、ソートメモリ20Aがデータ書込み動作を実行している場合には、ソートメモリ20Bはデータ読出し動作を実行し、ソートメモリ20Bがデータ書込み動作を実行している場合には、ソートメモリ20Aはデータ読出し動作を実行する。即ち、ソートメモリ20A、20Bは、所謂、インターリーブ動作を実行する。ソートメモリ20A、20Bがインターリーブ動作することにより、ソートメモリ20A、20Bは、図1のデータマッピング部15でマッピングされたカラムデータをほぼシームレスに取り込むことができ、そのカラムデータを短時間でフェイルビットメモリ40へ引き渡すことができる。これにより、メモリ検査装置1は、被試験メモリ2からのデータ読出し速度に対し、遅延すること無く、データをソートメモリ20へリアルタイムで取り込むことができる。
例えば、ソートメモリ20Aは、ライトイネーブル信号WEN_Aが活性化されたときに、データマッピング部15からのマッピング後のカラムデータを受け取り、そのカラムデータを内部に書き込む。ソートメモリ20Bは、ライトイネーブル信号WEN_Bが活性化されたときに、データマッピング部15からのマッピング後のカラムデータを受け取り、そのカラムデータを内部に書き込む。ライトイネーブル信号WEN_A、WEN_Bは、相補信号であり、一方が活性状態の場合には他方は不活性状態であり、逆に、他方が活性状態の場合には一方は不活性状態である。ライトイネーブル信号WEN_A、WEN_Bの両方が同時に活性化されることはない。
また、ソートメモリ20Aは、リードイネーブル信号REN_Aが活性化されたときに、内部に格納されたデータを読み出す。ソートメモリ20Bは、リードイネーブル信号REN_Bが活性化されたときに、内部に格納されたデータを読み出す。リードイネーブル信号REN_A、REN_Bは、相補信号であり、一方が活性状態の場合には他方は不活性状態であり、逆に、他方が活性状態の場合には一方は不活性状態である。リードイネーブル信号REN_A、REN_Bの両方が同時に活性化されることはない。
WEN生成部70は、ライトイネーブル信号WEN_A、WEN_Bを生成する回路である。WEN生成部70は、Valid信号生成部12で生成されたカラム用の許可信号Rvalid_cと、Yアドレス検出部80からの出力信号とを入力し、許可信号Rvalid_cとYアドレス検出部80からの出力信号との論理積(AND)をライトイネーブル信号WEN_AまたはWEN_Bとして出力する。ここで、Yアドレス検出部80は、論理アドレスYが変化したことを検出する。論理アドレスYは、物理レイヤアドレスおよび物理ストリングアドレスに対応する論理アドレスである。従って、論理Yアドレスが変化するときには、物理レイヤアドレスおよび/または物理ストリングアドレス(ページ、ロウ)が変わる。Yアドレス検出部80は、ページの切り替わりを検出し、その結果を出力する。例えば、或るページが選択されている場合に、Yアドレス検出部80は、出力信号を立ち上げる。それにより、WEN生成部70は、ライトイネーブル信号WEN_Aを活性化可能にする。このとき、ライトイネーブル信号WEN_Bは活性化されない。逆に、他のページが選択されている場合に、Yアドレス検出部80は、出力信号を立ち下げる。それにより、WEN生成部70は、ライトイネーブル信号WEN_Bを活性化可能にする。このとき、ライトイネーブル信号WEN_Aは活性化されない。
WEN生成部70は、許可信号Rvalid_cが活性化されたとき(カラムアドレスが変化したとき)、ライトイネーブル信号WEN_A、WEN_Bのいずれか一方を活性化させる。これにより、ソートメモリ20Aまたは20Bは、データマッピング部15からのデータをカラムアドレスごとに格納することができる。このとき、ソートメモリ20A、20Bは、物理カラムアドレスに従って所定の位置にデータを格納する。ソートメモリ20A、20Bが1ページ分のデータを格納すると、ソートメモリ20A、20B内のデータは、被試験メモリ2内の当該ページの物理的な格納配列順で格納されている。即ち、ソートメモリ20A、20B内のデータは、物理カラムアドレスに従ってソートされている。
REN生成部72は、リードイネーブル信号REN_A、REN_Bを生成する回路である。REN生成部72は、バーストアドレス生成部30の動作信号と、Yアドレス検出部80からの出力信号とを入力し、バーストアドレス生成部30の動作信号とYアドレス検出部80からの出力信号との論理積(AND)をリードイネーブル信号REN_AまたはREN_Bとして出力する。上述の通り、Yアドレス検出部80はページの切り替わりを検出するので、REN生成部72は、Yアドレス検出部80の出力信号に応じて活性化させるリードイネーブル信号REN_A、REN_Bを切り換える。例えば、或るページが選択されている場合に、Yアドレス検出部80は、出力信号を立ち上げる。それにより、REN生成部72は、リードイネーブル信号REN_Aを活性化可能にする。このとき、リードイネーブル信号REN_Bは活性化されない。次のページが選択されている場合に、Yアドレス検出部80は、逆に、出力信号を立ち下げる。それにより、REN生成部72は、リードイネーブル信号REN_Bを活性化可能にする。このとき、リードイネーブル信号REN_Aは活性化されない。
REN生成部72は、バーストアドレス生成部30の動作信号が活性化されたとき(バーストアドレス生成部30がバーストアドレスを出力しているとき)、リードイネーブル信号REN_A、REN_Bにいずれか一方を活性化させる。これにより、ソートメモリ20Aまたは20Bは、内部に格納されたデータをバーストアドレスに従って連続的に読み出す(バーストリード)することができる。ソートメモリ20A、20B内のデータは、物理カラムアドレスに従ってソートされているので、バーストアドレスをカラムアドレスとして用いてバーストリードしても、データの配列順は、被試験メモリ2内の物理的な格納配列順に従って出力される。
セレクタ72、74は、ライトイネーブル信号WEN_AまたはWEN_Bに基づいて、物理カラムアドレスとバーストアドレスとを選択的に出力する。例えば、ライトイネーブル信号WEN_Aが活性化されており、ソートメモリ20Aが書込み状態である場合、セレクタ72は、論物変換部10からの物理カラムアドレスをソートメモリ20Aへ出力する。これにより、ソートメモリ20Aは、物理カラムアドレスに従ってデータを格納することができる。一方、ライトイネーブル信号WEN_Aが不活性化されており、ソートメモリ20Aが書込み不可である場合、セレクタ72は、バーストアドレス生成部30からのバーストアドレスをソートメモリ20Aへ出力する。これにより、ソートメモリ20Aは、バーストアドレスに従ってデータを読み出すことが可能となる。また、例えば、ライトイネーブル信号WEN_Bが活性化されており、ソートメモリ20Bが書込み状態である場合、セレクタ74は、論物変換部10からの物理カラムアドレスをソートメモリ20Bへ出力する。これにより、ソートメモリ20Bは、物理カラムアドレスに従ってデータを格納することができる。一方、ライトイネーブル信号WEN_Bが不活性化されており、ソートメモリ20Bが書込み不可である場合、セレクタ74は、バーストアドレス生成部30からのバーストアドレスをソートメモリ20Bへ出力する。これにより、ソートメモリ20Bは、バーストアドレスに従ってデータを読み出すことが可能となる。
セレクタ65は、Yアドレス検出部80の出力信号に基づいて、ソートメモリ20Aまたは20Bのいずれかからのデータをフェイルビットメモリ40へ出力可能とする。例えば、或るページが選択されている場合に、Yアドレス検出部80は、出力信号を立ち上げる。それにより、リードイネーブル信号REN_Aが活性化可能になるとともに、セレクタ65は、ソートメモリ20A内のデータを選択的にフェイルビットメモリ40へ出力可能とする。一方、他のページが選択されている場合に、Yアドレス検出部80は、出力信号を立ち下げる。それにより、リードイネーブル信号REN_Bが活性化可能になるとともに、セレクタ65は、ソートメモリ20B内のデータを選択的にフェイルビットメモリ40へ出力可能とする。これにより、セレクタ65は、バーストリードされるデータをフェイルビットメモリ40へ転送することができる。
このように、ソートメモリ20A、20Bは、それぞれページごとのデータを、物理カラムアドレスの順番に格納することができ、かつ、そのページのデータをバーストリードすることができる。さらに、ソートメモリ20A、20Bは、インターリーブ動作を実行するので、ソートメモリ20A、20Bは、交互にデータを短時間でフェイルビットメモリ40へ引き渡すことができる。
ロウフェイルビットカウンタ50は、ロウカウンタ51と、ロウフェイルビットカウントメモリ52とを備えている。第1カウンタとしてのロウカウンタ51は、許可信号Rvalid_cとカラムデータと受け取り、カラムデータのフェイルビットをページごとにカウントする。例えば、データ“1”に変化しているビットがフェイルビットであるとすると、ロウカウンタ51は、各カラムデータの“1”をカウント(積算)すればよい。ロウカウンタ51は、例えば、データ“1”を積算するレジスタ等でよい。
第1カウントメモリとしてのロウフェイルビットカウントメモリ52(以下、カウントメモリ52)は、Yアドレス検出部80の出力信号の変化(ページの切り替わり)を受けて、ロウカウンタ51でカウントされたフェイルビット数を保持する。カウントメモリ52は、フェイルビット数を保持可能な任意のメモリでよい。これにより、ページごと(即ち、ロウごとまたはストリングごと)のフェイルビット数がカウントメモリ52に格納されていく。カウントメモリ52は、各ページ(即ち、各ロウR0〜Rmまたは各ストリング)のフェイルビット数を格納することができる。このような各ページのフェイルビット数は、不良解析する際に用いられ得る。
尚、被試験メモリ2において読出しは、同一ページ(同一ロウRk(0≦k≦m)内の全カラムC0〜Cn)のデータを読み出してから他のページへ移行する。従って、ロウフェイルビットカウンタ50は、物理ロウアドレスが変化するまでフェイルビットを単に加算すれば、そのページのフェイルビット数を得ることができる。よって、ロウフェイルビットカウンタ50の構成は、後述のカラムフェイルビットカウンタ60に比べて簡単である。
カラムフェイルビットカウンタ60は、カラムフェイルビットカウントメモリ60A、60B(以下、カウントメモリ60A、60Bともいう)と、加算器61A、61Bとを備えている。カラムフェイルビットカウンタ60は、複数のページ(即ち、複数のロウR0〜Rm)に亘る各IOデータ(図2のIOa、IOb、IOc・・・)のフェイルビット数をカウントする。即ち、カラムフェイルビットカウンタ60は、同一ビット線に接続された複数のメモリセルのデータ(IOデータ)のフェイルビット数をカウントする。
ここで、或るカラム(例えば、C0)内のビット線は、複数のページ(即ち、複数のロウR0〜Rm)に亘って延伸しているので、各カラムのIOデータのフェイルビット数は、複数のページ(即ち、複数のロウR0〜Rm)に亘って、IOデータを加算する必要がある。例えば、図2のカラムC0内のIOデータIOaのフェイルビット数は、ロウR0〜RmのそれぞれにおけるIOデータIOaを加算(積算)する必要がある。IOデータIObのフェイルビット数は、ロウR0〜RmのそれぞれにおけるIOデータIObを加算(積算)する必要がある。IOデータIOcのフェイルビット数は、ロウR0〜RmのそれぞれにおけるIOデータIOcを加算(積算)する必要がある。このような複数のページに亘る各カラム(C0〜Cn)内のIOデータ(IOa、IOb、IOc・・・)のそれぞれのフェイルビット数を求めるために、図6に示すように、カウントメモリ60A、60Bと、加算器61A、61Bとが設けられている。
第2カウントメモリとしてのカウントメモリ60A、60Bは、ソートメモリ20A、20Bのそれぞれに対応して設けられている。カウントメモリ60A、60Bには、1ページ分のIOデータのそれぞれに対応するレジスタでよい。これにより、カウントメモリ60A、60Bは、各IOデータのフェイルビット数をカウントすることができる。
カウントメモリ60Aは、リードイネーブル信号REN_Aとリードイネーブル信号REN_Bとを入力する。尚、カウントメモリ60Aは、リードイネーブル信号REN_Bをライトイネーブル信号として用いる。従って、図6において、カウントメモリ60Aに入力されるリードイネーブル信号REN_Bは“REN_B(WEN)”と表記されている。
リードイネーブル信号REN_B(WEN)をライトイネーブル信号として用いている理由は以下の通りである。カウントメモリ60Aは、加算器61Bにおける加算結果を格納する必要があり、加算器61Bは、ソートメモリ20Bおよびカウントメモリ60Bが読出し動作を実行しているときに加算処理を実行し、その加算結果を出力する。従って、カウントメモリ60Aは、ソートメモリ20Bおよびカウントメモリ60Bが読出し動作を実行している期間(リードイネーブル信号REN_Bが活性化されている期間)に同期して、書込み動作を実行する必要がある。よって、カウントメモリ60Aは、リードイネーブル信号REN_B(WEN)をライトイネーブル信号として用いている。
カウントメモリ60Bは、リードイネーブル信号REN_Aとリードイネーブル信号REN_Bとを入力する。尚、カウントメモリ60Bは、リードイネーブル信号REN_Aをライトイネーブル信号として用いる。従って、図6において、カウントメモリ60Bに入力されるリードイネーブル信号REN_Aは“REN_A(WEN)”と表記されている。
リードイネーブル信号REN_A(WEN)をライトイネーブル信号として用いている理由は以下の通りである。カウントメモリ60Bは、加算器61Aにおける加算結果を格納する必要があり、加算器61Aは、ソートメモリ20Aおよびカウントメモリ60Aが読出し動作を実行しているときに加算処理を実行し、その加算結果を出力する。従って、カウントメモリ60Bは、ソートメモリ20Aおよびカウントメモリ60Aが読出し動作を実行している期間(リードイネーブル信号REN_Aが活性化されている期間)に同期して、書込み動作を実行する必要がある。よって、カウントメモリ60Bは、リードイネーブル信号REN_A(WEN)をライトイネーブル信号として用いている。
カウントメモリ60A、60Bは、ソートメモリ20A、20Bと同期してデータを出力する必要がある。このため、カウントメモリ60A、60Bは、読出しおよび書込み動作においてバーストアドレスを用いる。
加算部としての加算器61Aは、ソートメモリ20Aおよびカウントメモリ60Aに対応して設けられている。加算器61Aは、カウントメモリ60Aに格納された各IOデータのフェイルビット数に、ソートメモリ20A内の対応するビットデータを加算する。ここで、ソートメモリ20Aは、被試験メモリ2内の物理的な格納配列で1ページのデータを格納する。カウントメモリ60Aは、被試験メモリ2内の物理的な格納配列で、ソートメモリ20A、20Bにそれまで格納されてきたページの各ビットのフェイルビット数を格納する。従って、加算器61Aは、単に、ソートメモリ20Aのそれぞれのデータ格納位置におけるデータを、カウントメモリ60Aのそれぞれのデータ格納位置におけるデータ(フェイルビット数)に加算すればよい。尚、フェイルビットはデータ“1”であるので、加算器61Aは、カウントメモリ60Aに格納されたフェイルビット数に、ソートメモリ20A内の対応するデータを単に加算すればフェイルビット数の積算値を得ることができる。このように、加算器61Aは、カウントメモリ60Aに格納された各IOデータのフェイルビット数に、ソートメモリ20Aに格納された対応する各データを加算する。そして、加算器61Aは、加算後のフェイルビット数をカウントメモリ60Bへ出力し、カウントメモリ60Bが、このフェイルビット数を被試験メモリ2内の物理的な格納配列で格納する。
加算部としての加算器61Bは、ソートメモリ20Bおよびカウントメモリ60Bに対応して設けられている。加算器61Bは、カウントメモリ60Bに格納された各IOデータのフェイルビット数に、ソートメモリ20B内の対応するビットデータを加算する。ここで、ソートメモリ20Bは、被試験メモリ2内の物理的な格納配列で1ページのデータを格納する。カウントメモリ60Bは、被試験メモリ2内の物理的な格納配列で、ソートメモリ20A、20Bにそれまで格納されてきたページの各ビットのフェイルビット数を格納する。従って、加算器61Bは、単に、ソートメモリ20Bのそれぞれのデータ格納位置におけるデータを、カウントメモリ60Bのそれぞれのデータ格納位置におけるデータ(フェイルビット数)に加算すればよい。これにより、加算器61Bは、カウントメモリ60Bに格納された各IOデータのフェイルビット数に、ソートメモリ20Bに格納された対応する各データを加算する。そして、加算器61Bは、加算後のフェイルビット数をカウントメモリ60Aへ出力し、カウントメモリ60Aが、このフェイルビット数を被試験メモリ2内の物理的な格納配列で格納する。
ソートメモリ20A、20Bがデータを読み出す度に、加算器61A、61Bが上記加算動作を交互に繰り返し、カウントメモリ60B、60Aにその加算結果を格納することによって、ソートメモリ20A、20Bから読み出された全ページに亘る各カラムのIOデータのフェイルビット数(積算値)がカウントメモリ60Aまたは60Bに最終的に格納される。このような各カラムのIOデータのフェイルビット数は、不良解析する際に用いられ得る。
尚、加算器61A、61Bは、1つの加算器に共通化してもよい。この場合、リードイネーブル信号REN_Aを受けるセレクタ(図示せず)が、加算器において加算されるデータの取込み先、並びに、加算結果の出力先を選択すればよい。例えば、リードイネーブル信号REN_Aが活性状態のときに、セレクタは、ソートメモリ20Aおよびカウントメモリ60Aからのデータを加算し、カウントメモリ60Bへ加算結果を出力すればよい。リードイネーブル信号REN_Bが活性状態のときに、セレクタは、ソートメモリ20Bおよびカウントメモリ60Bからのデータを加算し、カウントメモリ60Aへ加算結果を出力すればよい。
図7(A)〜図7(D)は、本実施形態によるメモリ試験装置1の動作の一例を示すタイミング図である。図7(A)は、論物変換部10による論物変換処理の動作例を示す。図7(B)は、ソートメモリ20による論物変換処理の動作例を示す。図7(C)は、ロウフェイルビットカウンタ50によるロウフェイルビットカウント処理の動作例を示す。図7(D)は、カラムフェイルビットカウンタ60によるカラムフェイルビットカウント処理の動作例を示す。尚、カウントメモリ52、60A、60Bは、初期状態としてゼロを格納している。
図7(A)に示すように、論理アドレスX、Yがメモリ試験装置1から被試験メモリ2へ入力されている。論理アドレスYに対応する論理アドレスLAsが論物変換されて、ページを特定する物理ストリングアドレスPAsが生成される。論理アドレスXに対応する論理アドレスLAcが論物変換されて物理カラムアドレスPAcが生成される。尚、ここでは、同一ブロックかつ同一レイヤからの読出し動作を示しており、論理アドレスZや物理レイヤアドレスについての説明は省略している。
(ページP0のソートメモリ20Aへの書込み、ソートメモリ20Bからの読出し)
t0において、物理ストリングアドレスPAsが、ページP0を示している。物理ストリングアドレスPAsがページP0を示すことによって、図6のYアドレス検出部80が出力信号を立ち上げる。これにより、WEN生成部70がライトイネーブル信号WEN_Aを活性化させ、REN生成部72がリードイネーブル信号REN_Bを活性化させる。図7(B)〜図7(D)の“W”は、ライトイネーブル信号の活性化を示し、“R”は、リードイネーブル信号の活性化を示す。従って、図7(B)および図7(D)に示すように、ソートメモリ20Aおよびカウントメモリ60Aが書込み可能となり、ソートメモリ20Bおよびカウントメモリ60Bは読出し可能となる。バーストアドレスの数値は、図6のバーストアドレス生成部30で生成された昇順のカラムアドレスを示す。
図7(B)に示すように、t0において、ソートメモリ20Aが書込み可能になるので、ソートメモリ20Aは、物理カラムアドレスC0に従ってカラムデータを格納する。一方、ソートメモリ20Bが読出し可能になるので、ソートメモリ20Bは、バーストアドレスに従って連続的にカラムデータを出力する。ソートメモリ20Bからのカラムデータは、図6のセレクタ65を介してフェイルビットメモリ40へ出力されるとともに、加算器61Bにも出力される。このとき、カウントメモリ60Bも読出し可能であるので、加算器61Bは、図7(D)に示すように、カウントメモリ60B内のカラムアドレスC0の各IOデータのフェイルビット数に、ソートメモリ20B内のカラムアドレスC0の各IOデータを加算(+)してカウントメモリ60Aへ出力する。尚、図7(C)および図7(D)に示す“+”は、加算処理を示す。カウントメモリ60Aは、リードイネーブル信号REN_B(WEN)をライトイネーブル信号として受け取るので、ソートメモリ20Bおよびカウントメモリ60Bが読出し可能になるのとほぼ同時に書込み可能になっている。よって、カウントメモリ60Aは、加算器61Bからの加算結果をカラムアドレスC0に対応する位置に格納することができる。即ち、カウントメモリ60Aは、カウントメモリ60B内のカラムアドレスC0の各ビット位置のフェイルビット数に、ソートメモリ20B内のカラムアドレスC0の各ビット位置のデータを加算した結果を格納することができる。
ここで、フェイルしていないビットはデータ“0”となっており、フェイルビットはデータ“1”となっているので、加算器61Bは、カウントメモリ60B内のカラムアドレスC0の各IOデータのフェイルビット数に、ソートメモリ20B内のカラムアドレスC0の各IOデータをそのまま加算する。これにより、データ“0”のビットのフェイルビット数はカウントされず(インクリメントされず)、データ“1”のビットのフェイルビット数はカウントされる(インクリメントされる)。このように、カラムフェイルビットカウンタ60は、各ビットのフェイルビット数を積算することができる。尚、当初、ソートメモリ20Bおよびカウントメモリ60Bは、全て初期状態(ゼロ)であるので、カウントメモリ60Aは、t0〜t1においてゼロを格納することとなる。また、このときソートメモリ20Bから出力されたデータは、初期状態(ゼロ)であるので、フェイルビットメモリ40に格納する必要は無い。
ロウカウンタ51は、図7(C)に示すように、カラムアドレスC0のカラムデータのそれぞれのビットを加算(+)し、その加算結果をカウントメモリ52に格納する。上述の通り、フェイルしていないビットはデータ“0”となっており、フェイルビットはデータ“1”となっておりので、ロウカウンタ51は、ソートメモリ20Aへ転送されるカラムアドレスC0のデータ“1”の数をカウントすればよい。これにより、ロウカウンタ51は、カラムアドレスC0内のフェイルビット数を得ることができる。
図7(B)に示すように、t1において、ソートメモリ20Aは、物理カラムアドレスC1に従ってカラムデータを格納する。一方、ソートメモリ20Bは、引き続き、バーストアドレスに従って連続的にカラムデータを出力している。ソートメモリ20Bからのカラムデータは、上述の通り、フェイルビットメモリ40へ出力されるとともに、加算器61Bにも出力される。このとき、加算器61Bは、図7(D)に示すように、カウントメモリ60B内のカラムアドレスC1の各IOデータのフェイルビット数に、ソートメモリ20B内のカラムアドレスC1の各IOデータを加算(+)してカウントメモリ60Aへ出力する。カウントメモリ60Aは、加算器61Bからの加算結果をカラムアドレスC1に対応する位置に格納する。即ち、カウントメモリ60Aは、カウントメモリ60B内のカラムアドレスC1の各ビット位置のフェイルビット数に、ソートメモリ20B内のカラムアドレスC1の各ビット位置のデータを加算した結果を格納する。
ロウカウンタ51は、図7(C)に示すように、カラムアドレスC1のカラムデータのそれぞれのビットを加算(+)し、その加算結果をカウントメモリ52に格納する。上述の通り、フェイルしていないビットはデータ“0”となっており、フェイルビットはデータ“1”となっているので、ロウカウンタ51は、ソートメモリ20Aへ転送されるカラムアドレスC1のデータ“1”の数をカウントすればよい。これにより、ロウカウンタ51は、カラムアドレスC1内のフェイルビット数を得ることができる。
カラムアドレスC2、C3・・・についても、メモリ試験装置1は同様に動作する。従って、ソートメモリ20Aは、物理カラムアドレスC2、C3・・・のカラムデータを格納する。これにより、ソートメモリ20Aは、ページP0の全カラムC0〜Cnのデータを格納することができる。一方、ソートメモリ20Bは、引き続き、バーストアドレスに従って連続的にカラムデータを出力している。ソートメモリ20Bは、全カラムデータが読み出された時点で待機状態となってよい。
加算器61Bは、図7(D)に示すように、カウントメモリ60B内のカラムアドレスC2、C3・・・の各IOデータのフェイルビット数に、ソートメモリ20B内のカラムアドレスC2、C3・・・の各IOデータをそれぞれ加算してカウントメモリ60Aへ出力する。カウントメモリ60Aは、加算器61Bからの加算結果をカラムアドレスC2、C3・・・のそれぞれに対応する位置に格納する。即ち、カウントメモリ60Aは、カウントメモリ60B内のカラムアドレスC2、C3・・・の各ビット位置のフェイルビット数に、ソートメモリ20B内のカラムアドレスC2、C3・・・の各ビット位置のデータを加算した結果を格納する。
ロウカウンタ51は、図7(C)に示すように、カラムアドレスC2、C3・・・のカラムデータのそれぞれのビットを加算し、その加算結果をカウントメモリ52に格納する。全カラムアドレスC0〜Cnのデータを加算することによって、カウントメモリ52は、ページP0のフェイルビット数を格納する。
(ページP1のソートメモリ20Bへの書込み、ページP0のソートメモリ20Aからの読み出し)
ページP0内の全カラムC0〜Cnのデータがソートメモリ20Aに格納されると、論理アドレスYおよび物理ストリングアドレスPAsが変わる。即ち、ページが切り替わる。例えば、図7(A)に示すように、論理アドレスYがY0からY1に切り替わり、物理ストリングアドレスPAsがページP0からページP1へ切り替わる。ページの切り替わりによって、Yアドレス検出部80の出力信号が変化する。これにより、ページP1のデータがソートメモリ20Bへ書き込まれるとともに、ソートメモリ20Aに格納されたページP0のデータがソートメモリ20Aからフェイルビットメモリ40へ読み出される。
例えば、t10において、物理ストリングアドレスPAsが、ページP1を指定している。物理ストリングアドレスPAsがページP1を指定することによって、図6のYアドレス検出部80が出力信号を立ち下げる。これにより、WEN生成部70がライトイネーブル信号WEN_Bを活性化させ、REN生成部72がリードイネーブル信号REN_Aを活性化させる。従って、図7(B)および図7(D)に示すように、ソートメモリ20Bおよびカウントメモリ60Bが書込み可能となり、ソートメモリ20Aおよびカウントメモリ60Aは読出し可能となる。
図7(B)に示すように、t10において、ソートメモリ20Bが書込み可能になるので、ソートメモリ20Bは、物理カラムアドレスC0に従ってカラムデータを格納する。一方、ソートメモリ20Aが読出し可能になるので、ソートメモリ20Aは、バーストアドレスに従って連続的にカラムデータを出力する。ソートメモリ20Aからのカラムデータは、図6のセレクタ65を介してフェイルビットメモリ40へ出力されるとともに、加算器61Aにも出力される。このとき、カウントメモリ60Aも読出し可能であるので、加算器61Aは、図7(D)に示すように、カウントメモリ60A内のカラムアドレスC0の各IOデータのフェイルビット数に、ソートメモリ20A内のカラムアドレスC0の各IOデータを加算してカウントメモリ60Bへ出力する。カウントメモリ60Bは、リードイネーブル信号REN_A(WEN)をライトイネーブル信号として受け取るので、ソートメモリ20Aおよびカウントメモリ60Aが読出し可能になるのとほぼ同時に書込み可能になっている。よって、カウントメモリ60Bは、加算器61Aからの加算結果をカラムアドレスC0に対応する位置に格納することができる。即ち、カウントメモリ60Bは、カウントメモリ60A内のカラムアドレスC0の各ビット位置のフェイルビット数に、ソートメモリ20A内のカラムアドレスC0の各ビット位置のデータを加算した結果を格納することができる。
ここで、上述の通り、フェイルしていないビットはデータ“0”となっており、フェイルビットはデータ“1”となっておりので、加算器61Aは、カウントメモリ60A内のカラムアドレスC0の各IOデータのフェイルビット数に、ソートメモリ20A内のカラムアドレスC0の各IOデータをそのまま加算すればよい。これにより、データ“0”のビットのフェイルビット数はカウントされず(インクリメントされず)、データ“1”のビットのフェイルビット数はカウントされる(インクリメントされる)。尚、カウントメモリ60Aは、初期状態であり、ソートメモリ20Aは、ページP0のデータを格納しているので、カウントメモリ60Bは、t10〜t11においてページP0内のカラムC0の各ビットのフェイルビット数(データ“1”)を格納することとなる。
ロウカウンタ51は、図7(C)に示すように、カラムアドレスC0のカラムデータのそれぞれのビットを加算し、その加算結果をカウントメモリ52に格納する。
図7(B)に示すように、t11において、ソートメモリ20Bは、物理カラムアドレスC1に従ってカラムデータを格納する。一方、ソートメモリ20Aは、引き続き、バーストアドレスに従って連続的にカラムデータを出力している。ソートメモリ20Aからのカラムデータは、上述の通り、フェイルビットメモリ40へ出力されるとともに、加算器61Aにも出力される。このとき、加算器61Aは、図7(D)に示すように、カウントメモリ60A内のカラムアドレスC1の各IOデータのフェイルビット数に、ソートメモリ20A内のカラムアドレスC1の各IOデータを加算してカウントメモリ60Bへ出力する。カウントメモリ60Bは、加算器61Aからの加算結果をカラムアドレスC1に対応する位置に格納する。即ち、カウントメモリ60Bは、カウントメモリ60A内のカラムアドレスC1の各ビット位置のフェイルビット数に、ソートメモリ20A内のカラムアドレスC1の各ビット位置のデータを加算した結果を格納する。
ロウカウンタ51は、図7(C)に示すように、カラムアドレスC1のカラムデータのそれぞれのビットを加算し、その加算結果をカウントメモリ52に格納する。これにより、ロウカウンタ51は、カラムアドレスC1内のフェイルビット数を得ることができる。
カラムアドレスC2、C3・・・についても、メモリ試験装置1は同様に動作する。従って、ソートメモリ20Bは、物理カラムアドレスC2、C3・・・のカラムデータを格納する。これにより、ソートメモリ20Bは、ページP1の全カラムC0〜Cnのデータを格納することができる。一方、ソートメモリ20Aは、引き続き、バーストアドレスに従って連続的にカラムデータを出力している。ソートメモリ20Aは、全カラムデータが読み出された時点で待機状態となってよい。
加算器61Aは、図7(D)に示すように、カウントメモリ60A内のカラムアドレスC2、C3・・・の各IOデータのフェイルビット数に、ソートメモリ20A内のカラムアドレスC2、C3・・・の各IOデータをそれぞれ加算してカウントメモリ60Bへ出力する。カウントメモリ60Bは、加算器61Aからの加算結果をカラムアドレスC2、C3・・・のそれぞれに対応する位置に格納する。即ち、カウントメモリ60Bは、カウントメモリ60A内のカラムアドレスC2、C3・・・の各ビット位置のフェイルビット数に、ソートメモリ20A内のカラムアドレスC2、C3・・・の各ビット位置のデータを加算した結果を格納する。
ロウカウンタ51は、図7(C)に示すように、カラムアドレスC2、C3・・・のカラムデータのそれぞれのビットを加算し、その加算結果をカウントメモリ52に格納する。全カラムアドレスC0〜Cnのデータを加算することによって、カウントメモリ52は、ページP1のフェイルビット数を格納することができる。
(ページP2のソートメモリ20Aへの書込み、ページP1のソートメモリ20Bからの読み出し)
さらに、ページP1内の全カラムC0〜Cnのデータがソートメモリ20Bに格納されると、論理アドレスYおよび物理ストリングアドレスPAsが変わる。例えば、物理ストリングアドレスPAsがページP1からページP2へ切り替わる。ページの切り替わりによって、Yアドレス検出部80の出力信号が変化する。これにより、ページP2のデータがソートメモリ20Aへ書き込まれるとともに、ソートメモリ20Bに格納されたページP1のデータがソートメモリ20Bからフェイルビットメモリ40へ読み出される。ソートメモリ20Aへの書込み動作およびソートメモリ20Bからの読出し動作は、上述の動作と同様である。加算器61Bおよびロウカウンタ51の動作は、ページP0の処理におけるそれらの動作と同様である。
以降のページの書込みおよび読出しについても同様に実行される。これにより、フェイルビットメモリ40は、各ページ(各ロウR0〜Rm)のデータを、被試験メモリ2内の物理的な格納配列の順番に格納することができる。フェイルビットメモリ40は、論物変換後の物理アドレス(物理レイヤアドレス、物理ストリングアドレス、物理ブロックアドレス)に従って、各ページのデータを格納する。フェイルビットメモリ40内の各ビットのデータにおいて、データ“1”がフェイルビットとなる。また、カウントメモリ52は、各ページ(各ロウR0〜Rm)のフェイルビット数を格納する。カウントメモリ60Aまたは60Bは、複数のページ(複数のロウ)に亘る各IOデータのフェイルビット数を格納する。
以上のように本実施形態によれば、データマッピング部15は、被試験メモリ2から出力されたカラムデータのビット配列を、被試験メモリ2内の物理的な格納配列に変換して出力する。ソートメモリ20A、20Bは、物理アドレスに従って、それぞれデータマッピング部15からのカラムデータを1ページに達するまで格納する。これにより、ソートメモリ20A、20Bは、被試験メモリ2内の物理的な格納配列順でデータをページごとに格納することができる。ソートメモリ20A、20B内のデータは、バーストリードによってフェイルビットメモリ40へ出力される。被試験メモリ2内の物理的な格納配列順で格納されているので、ソートメモリ20A、20B内のデータがバーストリードされても、フェイルビットメモリ40は、被試験メモリ2内の物理的な格納配列順のままデータを取り込むことができる。即ち、フェイルビットメモリ40は、ソートメモリ20Aまたは20Bに格納されたページ単位のデータを、物理アドレスに従った位置に(即ち、被試験メモリ2内の物理的な格納配列順で)格納する。
例えば、図8は、ソートメモリ20Aまたは20Bから出力されるカラムデータの物理ストリングアドレスおよび物理カラムアドレスを示す図である。ソートメモリ20Aまたは20Bは、同一の物理ストリングアドレス(同一のページ)5のデータを物理カラムアドレスの順番(0、1、2、3、・・・)で出力している。即ち、ソートメモリ20Aまたは20Bのデータは、バーストリードされている。このとき、フェイルビットメモリ40にアクセスする際に、バーストアクセス可能である。
例えば、もし、ソートメモリ20A、20Bが設けられていない場合、フェイルビットメモリ40にはランダムアクセスする必要がある。ランダムアクセスでは、異なるストリングアドレスのメモリセルにアクセス可能とするために、ワード線のプリチャージ等が必要となるため、データの書込み時間が長くなってしまう。
これに対し、本実施形態では、フェイルビットメモリ40にデータを書き込むときに、ソートメモリ20A、20Bが同一ページ(同一レイヤかつ同一ストリング)のデータを物理カラムアドレスの順番に出力する。例えば、図9は、本実施形態によるフェイルビットメモリ40へのバーストアクセスの様子を示す図である。ソートメモリ20A、20Bでは、図8に示すように、物理ストリングアドレス(ページ)は、そのページの全カラムのデータをバーストリードするまで変更されない。従って、図9に示すように、フェイルビットメモリ40は、選択された物理ストリングアドレスに対応するワード線を活性化させた後、ソートメモリ20Aまたは20Bのデータを連続してバーストアクセスして書き込むことができる。これにより、フェイルビットメモリ40は、被試験メモリ2内に格納されたデータを、短時間で格納することができる。即ち、ソートメモリ(例えば、SRAM)20をインターリーブ動作させ、かつ、ソートメモリ20がフェイルビットメモリ40へデータをバースト状に書き込むことによって、メモリ検査装置1は、被試験メモリ2からのデータの読出し速度に対し、遅延すること無く、リアルタイムでそのデータをソートメモリ20へ書き込むことができる。
また、本実施形態では、論物変換処理は、スクランブルで実行するのではなく、論物変換テーブルを用いて任意変換している。論物変換処理が複雑になり論物変換を表す論理式が複雑になると、スクランブルよりも論物変換テーブルを用いた任意変換の方が高速に処理可能である。従って、本実施形態によるメモリ試験装置1は、論物変換処理時間も短縮することができる。
さらに、本実施形態によれば、ページがフェイルビットメモリ40に格納された時点で、ロウフェイルビットカウンタ50は、該ページのフェイルビット数を格納し、カラムフェイルビットカウンタ60は、該ページの各IOデータのフェイルビット数の積算値を格納している。従って、メモリ試験装置1以外の解析サーバを用いてフェイルビット数を計数する必要が無くなり、不良解析時間が短縮される。
さらに、本実施形態によれば、論物変換部10、データマッピング部15、バーストアドレス生成部30、ロウフェイルビットカウンタ50、カラムフェイルビットカウンタ60は、FPGA(Field-Programmable gate array)等のロジック回路で構成可能である。
もし、CPUおよびプログラム(ソフトウェア)を用いてフェイルビットマップを生成する場合、メモリ試験装置および解析サーバは、図10(A)に示すように、動作する。即ち、被試験メモリ2からデータ(論理フェイルビットマップ)を取り込み(S1)、CPUは、その論理フェイルビットマップをHDD(Hard Disk Drive)に格納する(S2)。次に、CPUは、論理フェイルビットマップをHDDから読み出して、その論理フェイルビットマップをメモリに一時保存し、これを展開する(S4)。次に、CPUは、メモリ内の論理フェイルビットマップを、論物変換テーブルに従って、物理フェイルビットマップへ変換する(S5)。このとき、CPUは、論物変換処理を実行する。さらに、CPUは、変換後の物理フェイルビットマップを一時的にメモリ内に展開する(S6)。CPUは、その物理フェイルビットマップをメモリ内において走査することによって、各ページのフェイルビット数や各カラムのフェイルビット等をカウントする。このように、CPUは、HDDおよびメモリに何回もアクセスしながら論物変換処理やフェイルビットのカウント処理を実行する必要があり、論物変換処理および不良解析処理に長時間かかる。尚、マスク無しのフェイルビットの集計(S7)は、すでに解析済みのフェイルビットも含めてカウントする処理である。マスク有りのフェイルビットの集計(S8)は、すでに解析済みのフェイルビットを除いてカウントする処理である。
これに対し、本実施形態によるメモリ試験装置1は、上述の通り、論物変換部10等をロジック回路で構成しており、論物変換処理と並行して(同時に)にフェイルビットのカウント処理も実行される。例えば、図1に示すデータマッピング部15から出力されたデータは、ソートメモリ20で被試験メモリ2内の物理的な格納配列に変換されてからフェイルビットメモリ40へ格納される。この期間に並行して、ロウフェイルビットカウンタ50およびカラムフェイルビットカウンタ60は、フェイルビット数をカウントする。
図10(B)は、本実施形態によるメモリ試験装置1の動作の一例を示すフロー図である。被試験メモリ2からデータ(論理フェイルビットマップ)を取り込むと(S10)、メモリ試験装置1は、論理アドレスを論物変換処理する(S20)。このとき、データは、ソートメモリ20へ一時的に保存され(S30)、その後、フェイルビットメモリ40へ書き込まれる。即ち、物理フェイルビットマップがフェイルビットメモリ40に展開される(S40)。データがソートメモリ20へ一時的に保存されるときに、ロウフェイルビットカウンタ50は、そのページのフェイルビット数をカウントする。データが、ソートメモリ20からフェイルビットメモリ40へ書き込まれるときに、カラムフェイルビットカウンタ60が各IOデータのフェイルビット数をカウントする。このように、物理フェイルビットマップがフェイルビットメモリ40に展開されたときには、すでに、ロウフェイルビットカウンタ50およびカラムフェイルビットカウンタ60には、各ページのフェイルビット数および各IOデータのフェイルビット数のそれぞれの結果ができあがっている。
従って、本実施形態によるメモリ試験装置1は、従来のようにCPUおよびソフトウェアによって実行する処理よりも高速に処理可能であり、その分、不良解析時間を短縮することができる。また、本実施形態によるメモリ試験装置1は、メモリ試験装置1内にロジック回路を組み込めばよく、別途、不良解析用のサーバ等を準備する必要が無い。
(変形例)
図11は、本実施形態の変形例による論物変換部10およびデータマッピング部15の構成の一例を示すブロック図である。図12は、本実施形態の変形例による マッピング回路16の内部構成の一例を示すブロック図である。
本変形例によるメモリ検査装置1は、複数のマッピング設定部14とマッピングセレクタ114とをさらに備える。複数のマッピング設定部14は、それぞれ異なるマッピング設定を有する。マッピング設定は、被試験メモリ2から出力されるカラムデータ内のビット配列と、被試験メモリ2内の物理的なカラムデータのビット配列との関係を示す設定である。マッピングセレクタ114は、アドレスセレクタ11からの論理アドレスの一部を用いて、複数のマッピング設定部14のいずれかを選択的にマッピング回路16へ出力可能である。これにより、マッピングセレクタ114は、論物変換テーブルの選択と同様に、論理アドレスの一部を用いて複数のマッピング設定のいずれかを選択的に出力することができる。このように、複数のマッピング設定部14が設けられていてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。