(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024154887
(43)【公開日】2024-10-31
(54)【発明の名称】半導体記憶装置
(51)【国際特許分類】
G11C 29/44 20060101AFI20241024BHJP
G01R 31/28 20060101ALI20241024BHJP
G01R 31/3187 20060101ALI20241024BHJP
【FI】
G11C29/44 110
G01R31/28 B
G01R31/3187
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023069097
(22)【出願日】2023-04-20
(11)【特許番号】
(45)【特許公報発行日】2024-08-13
(71)【出願人】
【識別番号】512167426
【氏名又は名称】華邦電子股▲ふん▼有限公司
【氏名又は名称原語表記】Winbond Electronics Corp.
(74)【代理人】
【識別番号】100108833
【弁理士】
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100162156
【弁理士】
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】伊藤 豊
(72)【発明者】
【氏名】池田 仁史
【テーマコード(参考)】
2G132
5L206
【Fターム(参考)】
2G132AA08
2G132AC03
2G132AD06
2G132AK08
2G132AK29
2G132AL09
5L206AA01
5L206DD22
5L206DD25
5L206DD50
5L206HH11
(57)【要約】
【課題】フェイルビット計数装置を含んだ半導体記憶装置を提供する。
【解決手段】半導体記憶装置からの読出データと期待データとの一致/不一致をビット単位で検出し、検出されたビット個々の一致/不一致を示すパス・フェイル情報からなるフェイルビットデータを出力するフェイルビット検出部と、フェイルビットデータのうち、読出データと期待データの不一致を示すフェイルビット数、あるいは、一致の数を示すパスビット数を計数するビットカウント部と、を備える。さらに、読み出し動作において、外部から期待値を入力するためのインターフェイス、及び、読出データの代わりに、フェイルビット数及び/又はパスビット数を出力するインターフェイスも備える。
【選択図】
図17
【特許請求の範囲】
【請求項1】
半導体記憶装置からの読出データと期待データとの一致/不一致をビット単位で検出し、検出されたビット個々の一致/不一致を示すパス・フェイル情報からなるフェイルビットデータを出力するフェイルビット検出部と、
前記フェイルビットデータのうち、前記読出データと前記期待データの不一致を示すフェイルビット数、あるいは、一致の数を示すパスビット数を計数するビットカウント部と、
を備える、
半導体記憶装置。
【請求項2】
前記フェイルビット検出部は、
前記読出データと前記期待データとの間でビット単位の排他的論理和演算をすることにより、前記フェイルビットデータを生成する排他的論理和ゲート群を備える、
請求項1に記載の半導体記憶装置。
【請求項3】
前記半導体記憶装置への書込データであって、前記読出データに対応する前記書込データを前記期待データとして準備する期待データ準備部を更に備える、
請求項2に記載の半導体記憶装置。
【請求項4】
前記期待データ準備部は、前記書込データに対して前記読出データが論理反転したときに一致を示すべきビットについては、前記書込データの論理レベルを反転して前記期待データにする、
請求項3に記載の半導体記憶装置。
【請求項5】
前記期待データ準備部は、前記書込データを前記読出データと比較できるようにラッチする、
請求項3に記載の半導体記憶装置。
【請求項6】
前記ビットカウント部は、
前記フェイルビットデータのうち自身に割り当てられている部分的フェイルビットデータに含まれるフェイルビットの数をカウントし、カウント値を部分的フェイルビット数として出力する複数のサブフェイルビットカウンタと、
前記複数のサブフェイルビットカウンタがそれぞれ出力する複数の部分的フェイルビット数を相互に加算することにより前記フェイルビットの数を求める加算器と、
を備える、
請求項1に記載の半導体記憶装置。
【請求項7】
前記複数のサブフェイルビットカウンタの各々は、
自サブフェイルビットカウンタに割り当てられている前記部分的フェイルビットデータに含まれる全ビットの論理積をとり、該論理積を示すビットを、前記部分的フェイルビット数を示す二進数データの最上位ビットとして出力する第1ブロックと、
自サブフェイルビットカウンタに割り当てられている前記部分的フェイルビットデータに対応する前記部分的フェイルビット数に対応した電圧を参照電圧として生成する第2ブロックと、
前記参照電圧と、前記部分的フェイルビット数を示す前記二進数データの自ブロックに割り当てられているビットの重みに対応する電圧との比較の結果を、前記部分的フェイルビット数を示す前記二進数データの第2上位ビットとして出力する第3ブロックと、
前記参照電圧と、前記部分的フェイルビット数を示す前記二進数データの自ブロックに割り当てられているビットの重み及び前記二進数データの自ブロックに割り当てられているビットよりも上位の1以上のビットの値により決まる電圧との比較の結果を、前記部分的フェイルビット数を示す前記二進数データの第2上位ビット未満の自ブロックに割当てられているビットとして出力する1又は複数の第4ブロックと、
を備える、
請求項6に記載の半導体記憶装置。
【請求項8】
前記複数のビットカウンタの各々は、
前記部分的フェイルビット数を示す前記二進数データの前記最上位ビットの値が、前記部分的フェイルビット数が最大値であるときにとる値と同一であるときに、前記第3ブロック及び前記1又は複数の第4ブロックの動作を停止する手段を更に備える、
請求項7に記載の半導体記憶装置。
【請求項9】
前記ビットカウント部は、
複数のビットを含む測定対象データの各ビットと複数のビットを含む参照データの各ビットを入力し、前記測定対象データに含まれる第1論理レベルを持つビットの数と前記参照データに含まれる前記第1論理レベルを持つビットの数との大小関係を示す判定結果(大小データ)を出力するビットカウント差動アンプと、
前記フェイルビットデータを前記測定対象データとして前記ビットカウント部に供給する測定対象データ設定部と、
前記参照データに含まれる複数のビットのうち参照アクティブビット数のビットの論理レベルを前記第1論理レベルにする参照データ設定部と、
二分検索法のアルゴリズムにより前記ビットカウント差動アンプからの出力に基づいて前記参照アクティブビット数を逐次変化させながら前記測定対象データ設定部、前記参照データ設定部及び前記ビットカウント差動アンプを動作させ、該動作により前記ビットカウント差動アンプから逐次出力される複数の前記大小データに基づいて前記フェイルビットの数を求める計算部と、
を備える、
請求項1に記載の半導体記憶装置。
【請求項10】
前記ビットカウント部は、
前記計算部が求めた前記フェイルビットの数を訂正前フェイルビット数として入力し、該訂正前フェイルビット数と前記フェイルビットデータに含まれる前記フェイルビットの数とが同一であるならば前記訂正前フェイルビット数をそのまま訂正後フェイルビット数として出力し、同一でないならば、前記訂正前フェイルビット数を訂正処理にかけることにより得た数を訂正後フェイルビット数として出力するビット訂正部を更に備える、
請求項9に記載の半導体記憶装置。
【請求項11】
前記ビット訂正部は、
前記訂正前フェイルビット数の偶奇と前記フェイルビットデータに含まれる前記フェイルビットの数の偶奇の一致/不一致に基づいて、訂正処理の実行/不実行を判断し、
訂正処理においては、前記訂正前フェイルビット数に対して1だけ異なった値を前記訂正後フェイルビット数にする、
請求項10に記載の半導体記憶装置。
【請求項12】
前記測定対象データ設定部は、前記フェイルビットデータに含まれる前記フェイルビットの数が所定数以上であるときに、前記フェイルビットの数が前記所定数未満になるように前記フェイルビットデータを修正したデータを前記測定対象データとして前記ビットカウント差動アンプに供給し、
前記計算部は、前記ビットカウント差動アンプから逐次出力される複数の出力と前記所定数に基づいて前記フェイルビットの数を求める、
請求項9に記載の半導体記憶装置。
【請求項13】
前記ビットカウント部は、前記第1論理レベルを持つビットの数がゼロである前記参照データと前記フェイルビットデータとの比較結果に基づき、前記フェイルビットデータに含まれるビットのうち前記第1論理レベルを持つビットの数がゼロであるか又は1以上であるかを示すデータを出力する、
請求項9に記載の半導体記憶装置。
【請求項14】
前記ビットカウント部は、前記第1論理レベルを持つビットの数がゼロである前記参照データと前記フェイルビットデータとの比較結果と、前記フェイルビットデータに含まれる前記第1論理レベルを持つビットの数の偶奇に基づき、前記フェイルビットデータに含まれるビットのうち前記第1論理レベルを持つビットの数がゼロであるのか、1以上の偶数であるのか又は1以上の奇数であるのかを示すデータを出力する、
請求項9に記載の半導体記憶装置。
【請求項15】
前記半導体記憶装置は、複数のメモリバンクを備え、
各メモリバンクに前記フェイルビット検出部を備え、
前記複数のメモリバンク以外の部分に前記ビットカウント部を備える、
請求項1に記載の半導体記憶装置。
【請求項16】
前記半導体記憶装置は、複数のメモリバンクを備え、
前記複数のメモリバンク以外の部分に前記フェイルビット検出部及び前記ビットカウント部を備える、
請求項1に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体記憶装置に関する。
【背景技術】
【0002】
半導体記憶装置においては、本来ならば書込データと読出データが一致している必要があるが、物理的な特性などにより生じたエラーにより一致しない場合がある。従って、一致しないデータに関する情報を取得して、これに基づいて、半導体記憶装置を評価したり修正したりする必要がある。一致しないデータに関する情報として、例えば、書込データと読出データの間で一致していないビット(フェイルビット)の数があり、これを計数するためのフェイルビット計数装置がある。
【0003】
特許文献1には、フェイルメモリを複数のブロックに分割することによりフェイル計数処理時間を短縮した半導体メモリ試験装置のメモリ不良解析装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示されているメモリ不良解析装置は、解析対象である半導体メモリの外部においてフェイルビットの計数をする。
【0006】
しかし、半導体メモリの外部においてフェイルビットを計数する場合、半導体メモリとは別にメモリ不良解析装置を用意する必要が生じてしまうが、状況によっては、特に半導体メモリの全ビットのパス・フェイル情報を捕獲できるメモリ不良解析装置を用意できるとは限らない。
【0007】
本発明は上記課題に鑑みてなされたものであり、フェイルビット計数装置を含んだ半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明は、半導体記憶装置からの読出データと期待データとの一致/不一致をビット単位で検出し、検出されたビット個々の一致/不一致を示すパス・フェイル情報からなるフェイルビットデータを出力するフェイルビット検出部と、
前記フェイルビットデータのうち、前記読出データと前記期待データの不一致を示すフェイルビット数、あるいは、一致の数を示すパスビット数を計数するビットカウント部と、
を備える、
半導体記憶装置を提供する(発明1)。
【0009】
かかる発明(発明1)によれば、半導体記憶装置にフェイルビット計数装置の少なくとも一部を含ませることができる。また、かかる発明(発明1)によれば、半導体記憶装置は、読出データと期待データとの一致/不一致を示す判別結果を単に出力するのではなく、読出データと期待データとの一致/不一致をビット毎に検出することによって、フェイルビット数あるいはパスビット数を計数して出力することが可能になる。
【0010】
上記発明(発明1)においては、前記フェイルビット検出部は、前記読出データと前記期待データとの間でビット単位の排他的論理和演算をすることにより、前記フェイルビットデータを生成する排他的論理和ゲート群を備えていてもよい(発明2)。
【0011】
かかる発明(発明2)によれば、読出データと期待データとの間でビット単位の排他的論理和演算をすることにより、フェイルビットデータを生成することができる。
【0012】
上記発明(発明2)においては、前記半導体記憶装置への書込データであって、前記読出データに対応する前記書込データを前記期待データとして準備する期待データ準備部を更に備えていてもよい(発明3)。
【0013】
かかる発明(発明3)によれば、読出データに対応する書込データを期待データとして準備することができる。従って、読出データを書込データと比較することによりフェイルビットデータを得ることができる。特に、読出データを書込データとビット単位で比較することにより読出データと書込データとの一致/不一致をビット単位で検出し、一致/不一致を示す1以上のビットを含むフェイルビットデータを出力することができる。
【0014】
上記発明(発明3)においては、前記期待データ準備部は、前記書込データに対して前記読出データが論理反転したときに一致を示すべきビットについては、前記書込データの論理レベルを反転して前記期待データにしてもよい(発明4)。
【0015】
かかる発明(発明4)によれば、書込データに対して読出データが論理反転したときに一致を示すべきビットが実際に論理反転をしているときに書込側のビットと読出側のビットが一致していると判断することができる。
【0016】
上記発明(発明3又は4)においては、前記期待データ準備部は、前記書込データを前記読出データと比較できるようにラッチしてもよい(発明5)。
【0017】
かかる発明(発明4)によれば、書込データとそれに対応した読出データをフェイルビット検出部で比較することができる。
【0018】
上記発明(発明1~5)においては、前記ビットカウント部は、
前記フェイルビットデータのうち自身に割り当てられている部分的フェイルビットデータに含まれるフェイルビットの数をカウントし、カウント値を部分的フェイルビット数として出力する複数のサブフェイルビットカウンタと、
前記複数のサブフェイルビットカウンタがそれぞれ出力する複数の部分的フェイルビット数を相互に加算することにより前記フェイルビットの数を求める加算器と、
を備えていてもよい(発明6)。
【0019】
かかる発明(発明6)によれば、ビットカウント部の回路規模を削減することができる。
【0020】
上記発明(発明6)においては、前記複数のサブフェイルビットカウンタの各々は、
自サブフェイルビットカウンタに割り当てられている前記部分的フェイルビットデータに含まれる全ビットの論理積をとり、該論理積を示すビットを、前記部分的フェイルビット数を示す二進数データの最上位ビットとして出力する第1ブロックと、
自サブフェイルビットカウンタに割り当てられている前記部分的フェイルビットデータに対応する前記部分的フェイルビット数に対応した電圧を参照電圧として生成する第2ブロックと、
前記参照電圧と、前記部分的フェイルビット数を示す前記二進数データの自ブロックに割り当てられているビットの重みに対応する電圧との比較の結果を、前記部分的フェイルビット数を示す前記二進数データの第2上位ビットとして出力する第3ブロックと、
前記参照電圧と、前記部分的フェイルビット数を示す前記二進数データの自ブロックに割り当てられているビットの重み及び前記二進数データの自ブロックに割り当てられているビットよりも上位の1以上のビットの値により決まる電圧との比較の結果を、前記部分的フェイルビット数を示す前記二進数データの第2上位ビット未満の自ブロックに割当てられているビットとして出力する1又は複数の第4ブロックと、
を備えていてもよい(発明7)。
【0021】
かかる発明(発明7)によれば、少なくとも一部においてデジタル回路を用いずアナログ回路を用いてビットカウンタを構成することができる。
【0022】
上記発明(発明7)においては、前記複数のビットカウンタの各々は、前記部分的フェイルビット数を示す前記二進数データの前記最上位ビットの値が、前記部分的フェイルビット数が最大値であるときにとる値と同一であるときに、前記第3ブロック及び前記1又は複数の第4ブロックの動作を停止する手段を更に備えていてもよい(発明8)。
【0023】
かかる発明(発明8)によれば、最上位ビットの値が、前記部分的フェイルビット数が最大値であるときにとる値であるときに、第3ブロック及び第4ブロックが無駄な動作をして余分な電力を消費することを未然に防止することができる。
【0024】
上記発明(発明1)においては、前記ビットカウント部は、
複数のビットを含む測定対象データの各ビットと複数のビットを含む参照データの各ビットを入力し、前記測定対象データに含まれる第1論理レベルを持つビットの数と前記参照データに含まれる前記第1論理レベルを持つビットの数との大小関係を示す判定結果(大小データ)を出力するビットカウント差動アンプと、
前記フェイルビットデータを前記測定対象データとして前記ビットカウント部に供給する測定対象データ設定部と、
前記参照データに含まれる複数のビットのうち参照アクティブビット数のビットの論理レベルを前記第1論理レベルにする参照データ設定部と、
二分検索法のアルゴリズムにより前記ビットカウント差動アンプからの出力に基づいて前記参照アクティブビット数を逐次変化させながら前記測定対象データ設定部、前記参照データ設定部及び前記ビットカウント差動アンプを動作させ、該動作により前記ビットカウント差動アンプから逐次出力される複数の前記大小データに基づいて前記フェイルビットの数を求める計算部と、
を備えていてもよい(発明9)。
【0025】
かかる発明(発明9)によれば、少なくとも一部においてデジタル回路を用いずアナログ回路を用いてビットカウンタを構成することができる。
【0026】
上記発明(発明9)においては、前記ビットカウント部は、
前記計算部が求めた前記フェイルビットの数を訂正前フェイルビット数として入力し、該訂正前フェイルビット数と前記フェイルビットデータに含まれる前記フェイルビットの数とが同一であるならば前記訂正前フェイルビット数をそのまま訂正後フェイルビット数として出力し、同一でないならば、前記訂正前フェイルビット数を訂正処理にかけることにより得た数を訂正後フェイルビット数として出力するビット訂正部を更に備えてもよい(発明10)。
【0027】
かかる発明(発明10)によれば、ビットカウント差動アンプ、閾値設定部、第1入力設定部及び計算部において生じた誤りを訂正することができる。
【0028】
上記発明(発明10)においては、前記ビット訂正部は、
前記訂正前フェイルビット数の偶奇と前記フェイルビットデータに含まれる前記フェイルビットの数の偶奇の一致/不一致に基づいて、訂正処理の実行/不実行を判断し、
訂正処理においては、前記訂正前フェイルビット数に対して1だけ異なった値を前記訂正後フェイルビット数にしてもよい(発明11)。
【0029】
かかる発明(発明8)によれば、ビットカウント差動アンプ、閾値設定部、第1入力設定部及び計算部において生じた誤りを簡単な構成で訂正することができる。
【0030】
上記発明(発明9~11)においては、前記測定対象データ設定部は、前記フェイルビットデータに含まれる前記フェイルビットの数が所定数以上であるときに、前記フェイルビットの数が前記所定数未満になるように前記フェイルビットデータを修正したデータを前記測定対象データとして前記ビットカウント差動アンプに供給し、
前記計算部は、前記ビットカウント差動アンプから逐次出力される複数の出力と前記所定数に基づいて前記フェイルビットの数を求めてもよい(発明12)。
【0031】
かかる発明(発明12)によれば、フェイルビットデータに含まれるフェイルビットの数が所定数以上であるときに、誤ったフェイルビット数を求めてしまう可能性を減らすことができる。
【0032】
上記発明(発明9~12)においては、前記ビットカウント部は、前記第1論理レベルを持つビットの数がゼロである前記参照データと前記フェイルビットデータとの比較結果に基づき、前記フェイルビットデータに含まれるビットのうち前記第1論理レベルを持つビットの数がゼロであるか又は1以上であるかを示すデータを出力してもよい(発明13)。
【0033】
かかる発明(発明13)によれば、第1レベルを持つビットの数がゼロであるか又は1以上であるのかを示すデータを出力することができる。従って、フェイルビットデータにフェイルビットが含まれていないのか又は1以上あるのかを示すデータを出力することができる。
【0034】
上記発明(発明9~12)においては、前記ビットカウント部は、前記第1論理レベルを持つビットの数がゼロである前記参照データと前記フェイルビットデータとの比較結果と、前記フェイルビットデータに含まれる前記第1論理レベルを持つビットの数の偶奇に基づき、前記フェイルビットデータに含まれるビットのうち前記第1論理レベルを持つビットの数がゼロであるのか、1以上の偶数であるのか又は1以上の奇数であるのかを示すデータを出力してもよい(発明14)。
【0035】
かかる発明(発明14)によれば、第1レベルを持つビットの数がゼロであるのか、1以上の偶数であるのか、又は、1以上の奇数であるのかを示すデータを出力することができる。従って、フェイルビットデータにフェイルビットが含まれていないのか、1以上の偶数のフェイルビットが含まれているのか、又は、1以上の偶数のフェイルビットが含まれているのかを示すデータを出力することができる。
【0036】
上記発明(発明1~14)においては、前記半導体記憶装置は、複数のメモリバンクを備え、各メモリバンクに前記フェイルビット検出部を備え、前記複数のメモリバンク以外の部分に前記ビットカウント部を備えてもよい(発明15)。
【0037】
かかる発明(発明15)によれば、メモリバンクに配置されているメモリセルの近くにフェイルビット検出部を配置することができる。また、複数のフェイルビット検出部の各々を複数のメモリバンクの各々に対応させることができる。
【0038】
上記発明(発明1~14)においては、前記半導体記憶装置は、複数のメモリバンクを備え、前記複数のメモリバンク以外の部分に前記フェイルビット検出部及び前記ビットカウント部を備えてもよい(発明16)。
【0039】
かかる発明(発明16)によれば、ビットカウント部の近くにフェイルビット検出部を配置することができる。また、1個のフェイルビット検出部を複数のメモリバンクに対応させることができる。
【0040】
上記発明(発明1~16)においては、前記ビットカウント部で計数された前記フェイルビットの数を累計するビットカウント累計部を更に備えてもよい(発明17)。
【0041】
かかる発明(発明17)によれば、フェイルビットの数の累計値を求めることができる。
【0042】
上記発明(発明17)においては、前記半導体記憶装置は、複数のメモリバンクを備え、前記複数のメモリバンク以外の部分に前記ビットカウント累計部を備えてもよい(発明18)。
【0043】
かかる発明(発明18)によれば、ビットカウント累計部をビットカウント部の近くに配置することができる。
【0044】
上記発明(発明1~18)においては、前記ビットカウント部から出力される前記フェイルビット数を示すデータに基づいて、前記フェイルビットデータに前記フェイルビットが少なくとも1個あるか否かを示すデータを求める手段を更に備える(発明19)。
【0045】
かかる発明(発明19)によれば、フェイルビット数を示すデータに基づいて、フェイルビットデータにフェイルビットが少なくとも1個あるか否かを求めることができる。
【0046】
上記発明(発明1~18)においては、前記ビットカウント部から出力されるフェイルビット数を示すデータ及びリセット信号に基づいて、前記リセット信号が発生してから所定の時刻までの期間において少なくとも1個のフェイルビットが発生したか否かを示すデータを生成する手段を更に備えてもよい(発明20)。
【0047】
かかる発明(発明20)によれば、フェイルビット数を示すデータとリセット信号に基づいて、リセット信号が発生してから所定の時刻までの期間において少なくとも1個のフェイルビットが発生したか否かを示すデータを生成することができる。
【0048】
上記発明(発明1~20)においては、前記フェイルビット数及び/又は前記パスビット数を外部に出力する手段を更に備えてもよい(発明21)。
【0049】
かかる発明(発明21)によれば、半導体記憶装置の外部において、フェイルビット数及び/又はパスビット数を容易に把握することができる。
【0050】
上記発明(発明1~21)においては、前記期待データが外部から入力される場合に、入力された前記期待データを取得する手段を更に備えてもよい(発明22)。
【0051】
かかる発明(発明22)によれば、外部から入力された期待データを用いて、読出データと期待データとの一致/不一致を検出することが可能になる。
【0052】
上記発明(発明1~22)においては、前記半導体記憶装置は、ダイナミックメモリであってもよい(発明23)。
【0053】
かかる発明(発明23)によれば、ダイナミックメモリにフェイルビット検出部及びビットカウント部を備えさせることができる。また、ダイナミックメモリにビットカウント累計部を備えさせることができる。
【0054】
また、かかる発明(発明23)によれば、例えばギガバイトクラスの大容量のダイナミックメモリにおいても、メモリの全てのビット内のフェイルビットを計数することができる。
【発明の効果】
【0055】
本発明の半導体記憶装置によれば、フェイルビット計数装置を含んだ半導体記憶装置を提供することができる。
【図面の簡単な説明】
【0056】
【
図1】本発明の第1実施形態に係る半導体記憶装置の構成例を示すブロック図である。
【
図2】
図1に示す前半フェイルビット計数関連部の構成を示す回路図である。
【
図3】
図1に示す後半フェイルビット計数関連部の構成を示すブロック図である。
【
図4】本発明の第1実施形態に係る半導体記憶装置の動作例を示すタイミング図である。
【
図5】
図3及び
図17に示すビットカウント部の構成例#1を示すブロック図である。
【
図6】
図5に示すビットカウントツリー部の構成を示す回路図である。
【
図7】
図6に示すnビット加算器の構成を示す回路図である。
【
図8】
図6に示すサブフェイルビットカウンタの構成例#1を示す回路図である。
【
図9】
図6に示すサブフェイルビットカウンタの構成例#2を示す回路図である。
【
図10】
図3及び
図17に示すビットカウント部の構成例#2を示すブロック図である。
【
図11】
図10に示すビット比較部の構成を示す回路図である。
【
図12】
図11に示すビットカウント差動アンプの構成を示す回路図である。
【
図13】
図10に示すビット訂正部の構成を示す回路図である。
【
図14】
図10に示すビットカウント部の構成例#2の動作を説明するためのタイミング図である。
【
図16】本発明の第2実施形態に係る半導体記憶装置の構成例を示すブロック図である。
【
図17】
図16に示すフェイルビット計数関連部の構成を示す回路図である。
【発明を実施するための形態】
【0057】
以下、本発明の実施形態に係る半導体記憶装置について添付図面を参照して詳細に説明する。ただし、この実施形態は例示であり、本発明はこれに限定されるものではない。
【0058】
また、本明細書等における「第1」、「第2」、「第3」等の表記は、或る構成要素を他の構成要素と区別するために使用されるものであって、当該構成要素の数、順序又は優先度等を限定するためのものではない。例えば、「第1要素」及び「第2要素」との記載が存在する場合、「第1要素」及び「第2要素」という2個の要素のみが採用されることを意味するものではないし、「第1要素」が「第2要素」に先行しなければならないことを意味するものでもない。
【0059】
(第1実施形態)
【0060】
[1. 全体構成]
図1は、本発明の第1実施形態に係る半導体記憶装置100Aを示すブロック図である。半導体記憶装置100Aは、ダイナミックメモリである。
【0061】
図1を参照すると、半導体記憶装置100Aは、コマンド入力バッファ801、コマンドデコーダ803、アドレス入力バッファ805、アドレスデコーダ807、DQ入出力バッファ809、グローバル入出力ゲート811、クロック入力バッファ813、内部クロック生成部815、モードレジスタ&ヒューズROM部817及び内部電源生成部819を備える。
【0062】
また、半導体記憶装置100Aは、メモリバンク821-1~821-nを備える。
【0063】
各メモリバンク821-i(i=1、2、3、・・・、n)は、メモリアレイ831、ロウデコーダバンク選択部833、ワード駆動部835、コラムデコーダ837、センスアンプ839及び前半フェイルビット計数関連部101を備える。
【0064】
各メモリバンク821-i(i=1、2、3、・・・、n)は、それに対応するメモリ入出力バスMIOを介してグローバル入出力ゲート811に接続されている。
【0065】
更に、半導体記憶装置100Aは、後半フェイルビット計数関連部103を備える。
【0066】
コマンド入力バッファ801は、外部からのコマンドに対する入力バッファである。
【0067】
コマンドデコーダ803は、コマンド入力バッファ801が入力したコマンドをデコードし、デコード結果を示す信号を半導体記憶装置100Aの各部に供給する。
【0068】
アドレス入力バッファ805は、外部からのアドレスに対する入力バッファである。
【0069】
アドレスデコーダ807は、アドレス入力バッファ805が入力したアドレスをデコードし、デコード結果を示す信号を半導体記憶装置100Aの各部に供給する。デコード結果を示す信号は、ロウアドレス、コラムアドレス及びバンクアドレスを含む。
【0070】
DQ入出力バッファ809は、外部データDQの入出力バッファである。
【0071】
グローバル入出力ゲート811は、DQ入出力バッファ809とメモリバンク821-1~821-nの間にあり、主に、これらの間でデータの多重化と多重分離を行う。
【0072】
クロック入力バッファ813は、外部からのクロックに対する入力バッファである。
【0073】
内部クロック生成部815は、クロック入力バッファ813が入力したクロックを基に内部クロックを生成し、半導体記憶装置100Aの内部に分配する。
【0074】
モードレジスタ&ヒューズROM部817は、コマンドデコーダ803から入力したコマンドのデコード結果とアドレス入力バッファ805から入力したアドレスに基づいて、半導体記憶装置100Aを制御するための信号を生成し、これらを半導体記憶装置100Aの内部に供給する。
【0075】
内部電源生成部819は、外部から供給される電源に基づいて内部電源を生成し、これらを半導体記憶装置100Aの内部に供給する。
【0076】
メモリアレイ831は、ロウ方向とコラム方向に並ぶように二次元状に配列されたメモリセルMCを備える。
【0077】
ロウデコーダバンク選択部833は、ロウアドレスをデコードして、ロウアドレスに対応したロウを選択するためのロウ選択信号を生成する。
【0078】
ワード駆動部835は、選択されたロウのワード線をアクティブにする。
【0079】
コラムデコーダ837は、コラムアドレスをデコードして、コラムアドレスに対応したコラムを選択するためのコラム選択信号を生成する。
【0080】
複数のセンスアンプ839はコラム毎に設けられており、選択されたコラムのセンスアンプ839の出力が選択される。
【0081】
前半フェイルビット計数関連部101及び後半フェイルビット計数関連部103の詳細については、後述する。
【0082】
図2は、
図1に示す前半フェイルビット計数関連部101の構成を示す回路図である。
【0083】
[2. フェイルビット検出部]
フェイルビット検出部201は、16個の排他的論理和ゲート群215を備える。各排他的論理和ゲート群215は、2入力1出力の排他的論理和ゲートを8個備える。
【0084】
また、フェイルビット検出部201は、16個の論理積ゲート群213を備える。各論理積ゲート群213は、2入力1出力の論理積ゲートを8個備える。
【0085】
更に、フェイルビット検出部201は、データスクランブル&ラッチ回路211を備える。なお、データスクランブル&ラッチ回路211は、本発明における「期待データ準備部」に対応する。
【0086】
128ビットの書込データWDATA<127:0>から選択された8ビットの書込データWDATA<7:0>の各ビットは、期待シードデータEXPSEED<7:0>としてデータスクランブル&ラッチ回路211に供給される。ここで、フェイルビット計数は、所定の論理レベルの組合せを持つ8ビットの書込データWDATA<7:0>を16回繰り返すことにより128ビットの期待データEXPDATA<127:0>を構成することを前提として行われる。つまり、WDATA<8m+i>=WDATA<i>(ここで、m=0~15、i=0~7)であることを前提として行われる。
【0087】
各データスクランブル&ラッチ回路211においては、テストモード信号により指示されたときに、ロウアドレスXADDによる期待シードデータEXPSEED<7:0>に対するデータスクランブリングが可能化される。テストモード信号によりデータスクランブリングが可能化されると、データスクランブル&ラッチ回路211は、ロウアドレスXADDに従って期待シードデータEXPSEED<7:0>の各ビットの論理レベルを維持し又は反転することによりEXPDATA<7:0>を生成する。期待データEXPDATA<7:0>を16回繰り返すことによりEXPDATA<127:0>が構成される。
【0088】
ここで、書込データWDATA<127:0>は、メモリセルを含むメモリ内部を経由して読出データRDATA<127:0>として戻ってきたときには、ロウアドレスXADDに従って論理レベルが維持され又は反転されている。従って、データスクランブル&ラッチ回路211で生成された期待データEXPDATA<127:0>の各ビットは、期待される正しい論理レベルをもつことになる。
【0089】
このようにして生成された期待データEXPDATA<127:0>は、フェイルビット計数を実行するときに用いられるようにするために、データスクランブル&ラッチ回路211においてラッチされる。
【0090】
なお、各データスクランブル&ラッチ回路211においては、テストモード信号により指示されないときには、データスクランブリングは可能化されない。
【0091】
従って、各データスクランブル&ラッチ回路211は、テストモード信号により指示されたときには、ロウアドレスXADDにより期待シードデータEXPSEED<7:0>をスクランブルして繰り返すことにより得た期待データEXPDATA<127:0>を出力する。他方で、そうでないときには、期待シードデータEXPSEED<7:0>をスクランブルしないで繰り返すことにより得た期待データEXPDATA<127:0>を出力する。第1実施形態においては、スクランブルされていてもいなくてもスクランブル&ラッチ回路211から出力されるデータを期待データEXPDATA<127:0>ということにする。
【0092】
スクランブル&ラッチ回路211から出力される合わせて128ビットの期待データEXPDATA<127:0>は、全論理積ゲート群213に含まれる全論理積ゲートの第1入力端子に供給される。ここで、第1の論理積ゲート群213に供給される期待データEXPDATA<7:0>、第2の論理積ゲート群213に供給される期待データEXPDATA<15:8>、・・・、第16の論理積ゲート群213に供給される期待データEXPDATA<127:120>は、共通である。
【0093】
また、フェイルビットカウントモードであるときにレベルがHIGHになる制御信号BCは、全論理積ゲート群213に含まれる全論理積ゲートの第2入力端子に共通に供給される。
【0094】
各論理積ゲート群213に含まれる各論理積ゲートの出力端子は、対応する排他的論理和ゲート群215に含まれる、対応する排他的論理和ゲートの第1入力端子に供給される。
【0095】
128ビットの読出データRDATAは、8ビット毎に16グループに分割される。各グループに含まれる8ビットの読出データRDATAの各ビットは、各排他的論理和ゲート群215に含まれる各排他的論理和ゲートの第2入力端子に供給される。
【0096】
従って、フェイルビットカウントモードでは、16個の排他的論理和ゲート群215により128ビットの期待データEXPDATA<127:0>と128ビットの読出データRDATA<127:0>の一致をビットごとに確認することができる。信号BCがHIGHであるときには、16個の排他的論理和ゲート群215の出力により構成されるデータRDATAd<127:0>の各ビットは、128ビットの期待データEXPDATA<127:0>と128ビットの読出データRDATA<127:0>の一致/不一致をビット毎に示す論理レベルを持つ。つまり、データRDATAd<127:0>に含まれるビットデータRDATAd<i>(ここで、i=0~127)は、期待データEXPDATA<127:0>に含まれるビットデータEXPDATA<i>と読出データRDATA<127:0>に含まれるビットデータRDATA<i>が一致するか否かを示す。従って、信号BCがHIGHであるときには、データRDATAd<127:0>に含まれるビットのうち値がHIGHであるフェイルビットは、読出データRDATA<127:0>と期待データEXPDATA<127:0>の間で値が一致しないことを示す。
【0097】
なお、フェイルビットを検出するためには、通常はメモリの或る特定のアドレスの特定のビットのセルに書き込まれることになる書込データWDATAとそのセルから読み出された読出データRDATAを比較する。そのために、例えば、フェイルビットを検出する期間における各時刻において、各排他的論理和ゲート群215に含まれる各排他的論理和ゲートにおいては、読出データRDATAのビットとそれに対応する書込データWDATAのビットが正しく対応している必要がある。このように読出データRDATAのビットとそれに対応する書込データWDATAのビットが排他的論理和ゲートにおいて正しく比較されるようにするために、データスクランブル&ラッチ回路211が制御される。換言すると、排他的論理和ゲート群215に含まれる各排他的論理和ゲートの第2端子に入力される読出データRDATAのビットに対応するアドレス及びビットの組が、期待データEXPDATAに変換されてから排他的論理和ゲート群215に含まれる各排他的論理和ゲートの第1端子に入力される書込データWDATAのビットに対応するアドレス及びビットの組に対して各排他的論理和ゲートにおいてタイミングが一致するように、データスクランブル&ラッチ回路211が制御される。
【0098】
従って、データスクランブル&ラッチ回路211は、書込データWDATAを読出データRDATAと比較できるように適切な時間だけ遅延させて期待データEXPDATAとして出力することになる。
【0099】
また、フェイルビットカウントモード以外のモードでは、信号BCがLOWになるので、16個の排他的論理和ゲート群215の出力により構成されるデータRDATAd<127:0>は、RDATA<127:0>に一致する。つまり、データRDATAd<127:0>は、読出データになる。
【0100】
図1も参照すると、各メモリバンク821-i(i=1、2、3、・・・、n)においてフェイルビット検出部201から出力されたデータRDATAd<127:0>は、対応するメモリ入出力バスMIOを経由してグローバル入出力ゲート811に供給される。
【0101】
フェイルビットカウントモードにおいては、グローバル入出力ゲート811において、複数のメモリバンク821-1~821-nのうちの現在選択されているメモリバンク821-i(i=1、2、3、・・・、n)からのデータRDATAd<127:0>がフェイルビットデータPF<127:0>として後半フェイルビット計数関連部103に供給される。
【0102】
図3は、
図1に示す後半フェイルビット計数関連部103の構成を示すブロック図である。
【0103】
後半フェイルビット計数関連部103は、ビットカウント部301及びビットカウント累計部401を備える。
【0104】
ビットカウント部301には、グローバル入出力ゲート811からフェイルビットデータPF<127:0>が入力される。ここで、フェイルビットデータPF<127:0>は、フェイルビットカウントモードにおいて、メモリ入出力バスMIOにおいてメモリバンク821-1~821-nの間で多重化されたデータRDATAd<127:0>である。また、フェイルビットカウントモードにおいて信号BCがHIGHであるときには、データRDATAd<127:0>は、128ビットの期待データEXPDATAと128ビットの読出データRDATAの一致/不一致を示す論理レベルを持つ。
【0105】
従って、ビットカウント部301には、128ビットの期待データEXPDATA<127:0>と128ビットの読出データRDATA<127:0>のビット毎の一致/不一致をビット毎に示す論理レベル(つまり、各ビットがフェイルビットであるか否かを示す論理レベル)を持つ128ビットのパス・フェイル情報により構成されるフェイルビットデータPF<127:0>が入力されることになる。フェイルビットデータPF<127:0>に含まれる128ビットのうち論理レベルがHIGHであるビットがフェイルビットである。一方、フェイルビットデータPF<127:0>に含まれる128ビットのうち論理レベルがLOWであるビットがパスビットである。
【0106】
ビットカウント部301は、入力したフェイルビットデータPF<127:0>の各ビットの論理レベルに基づいて、期待データEXPDATAと読出データRDATAの間でレベルが一致していないことを示しているフェイルビットの数をカウントし、フェイルビットの数を示す二進数の確定フェイルビット数C<7:0>を出力する。また、ビットカウント部301は、入力したフェイルビットデータPF<127:0>の各ビットの論理レベルに基づいて、期待データEXPDATAと読出データRDATAの間でレベルが一致していることを示すパスビットの数をカウントし、パスビットの数を示す二進数の確定パスビット数(図示省略)を出力してもよい。
【0107】
ビットカウント累計部401は、確定フェイルビット数C<7:0>に含まれるフェイルビットの数を累計し、累計値などを出力データCNT<n-1:0>として外部に出力する。また、ビットカウント累計部401は、確定パスビット数に含まれるパスビットの数を累計し、累計値などを出力データ(図示省略)として外部に出力してもよい。さらに、ビットカウント累計部401は、フェイルビット及びパスビットの各々の累計値を外部に出力してもよい。
【0108】
ビットカウント部301及びビットカウント累計部401の詳細については後述する。
【0109】
図4は、本発明の第1実施形態に係る半導体記憶装置の動作例を示すタイミング図である。
【0110】
図4は、フェイルビットカウントモードにおいて、DQ入出力バッファ809に接続された端子から外部データDQとしてのデータが、フェイルビットカウント#1の8ビット期間からフェイルビットカウント#nの8ビット期間にわたり間隔をおいて半導体記憶装置から出力され、その後、32ビットのフェイルビットカウント累計値が出力される動作を示している。
【0111】
[3. ビットカウント部]
[3.1 ビットカウント部の構成例#1]
図5は、
図3に示すビットカウント部301の構成例#1を示すブロック図である。
【0112】
図5を参照すると、構成例#1に従ったビットカウント部301は、第1ビットカウントタイミング生成部311及びビットカウントツリー部313を備える。
【0113】
第1ビットカウントタイミング生成部311は、ビットカウントツリー部313が動作するための信号を生成する。
【0114】
ビットカウントツリー部313は、128ビットの期待データEXPDATA<127:0>(
図2参照)と128ビットの読出データRDATA<127:0>(
図2参照)のビット毎の一致/不一致を示す論理レベル(つまり、各ビットがフェイルビットであるか否かを示す論理レベル)を持つフェイルビットデータPF<127:0>を入力し、不一致ビットの数(以下、「フェイルビット数」という。)を二進数で示す確定フェイルビット数C<7:0>を出力する。つまり、ビットカウントツリー部313は、フェイルビットデータPF<127:0>を構成する128ビットのうち論理レベルがHIGHであるフェイルビットの数を数え、フェイルビットの数を二進数で示す確定フェイルビット数C<7:0>を出力する。
【0115】
図6は、
図5に示すビットカウントツリー部313の構成を示す回路図である。
【0116】
図6を参照すると、ビットカウントツリー部313は、下から順に16個のサブフェイルビットカウンタ321、8個の4ビット加算器323-1、4個の5ビット加算器323-2、2個の6ビット加算器323-3、1個の7ビット加算器323-4及びラッチ回路325を備える。
【0117】
16個のサブフェイルビットカウンタ321の各々は、フェイルビットデータPF<127:0>から選択された8ビットに対応する部分的フェイルビット数をカウントする。
【0118】
各サブフェイルビットカウンタ321は、ビットカウントツリー部313に入力されるフェイルビットデータPF<127:0>を構成する128ビットのうちの自ビットカウンタ321に割当てられている部分的フェイルビットデータに含まれる8ビットを入力し、その8ビットのうちの不一致に対応するHIGHの論理レベルを持つビットの数を部分的フェイルビット数としてカウントする。そして、部分的フェイルビット数を4ビットの二進数で出力する。
【0119】
従って、16個のサブフェイルビットカウンタ321からは、16分割の部分的フェイルビット数を示す4ビットの二進数データが合計で16個出力される。
【0120】
なお、16個のサブフェイルビットカウンタ321には制御信号BCENが入力され、制御信号BCENがHIGHであるときのみサブフェイルビットカウンタ321が動作する。
【0121】
これらの16個の二進数データにより示される部分的フェイルビット数を
図6に示すようにツリー状に繋がった8個の4ビット加算器323-1、4個の5ビット加算器323-2、2個の6ビット加算器323-3及び1個の7ビット加算器323-4により相互に足し合わせることにより8ビットの二進数で表したデータS<7:0>を求めることができる。
【0122】
つまり、8個の4ビット加算器323-1、4個の5ビット加算器323-2、2個の6ビット加算器323-3、1個の7ビット加算器323-4が、部分的フェイルビット数を集計することによりフェイルビットの総数が求まる。
【0123】
各4ビット加算器323-1には2個のサブフェイルビットカウンタ321が対応する。そして、各4ビット加算器323-1は、対応する2個のサブフェイルビットカウンタ321からの出力によりそれぞれ示される部分的フェイルビット数を相互に加算する。
【0124】
従って、8個の4ビット加算器323-1からは8分割の部分的フェイルビット数を示す5ビットのデータが合計で8個出力される。
【0125】
各5ビット加算器323-2には2個の4ビット加算器323-1が対応する。そして、各5ビット加算器323-2は、対応する2個の4ビット加算器321からの出力によりそれぞれ示される部分的フェイルビット数を加算する。
【0126】
従って、4個の5ビット加算器323-2からは4分割の部分的フェイルビット数を示す6ビットのデータが合計で4個出力される。
【0127】
各6ビット加算器323-3には2個の5ビット加算器323-2が対応する。そして、各6ビット加算器323-3は、対応する2個の5ビット加算器322からの出力によりそれぞれ示される部分的フェイルビット数を加算する。
【0128】
従って、2個の6ビット加算器323-3からは2分割の部分的フェイルビット数を示す7ビットのデータが合計で2個出力される。
【0129】
各7ビット加算器323-4には2個の6ビット加算器323-3が対応する。そして、各7ビット加算器323-4は、対応する2個の6ビット加算器322からの出力によりそれぞれ示される部分的フェイルビット数を加算する。
【0130】
従って、1個の7ビット加算器323-4からは、フェイルビット数を示す8ビットのデータS<7:0>が合計で1個出力される。つまり、データS<7:0>がフェイルビット数を示すことになる。
【0131】
ラッチ回路325は、7ビット加算器323-4が出力するフェイルビット数を示す8ビットのデータS<7:0>をラッチ信号LATCによりラッチしてから確定フェイルビット数C<7:0>として出力する。また、ラッチ回路325がラッチする確定フェイルビット数C<7:0>は、リセット信号RSTによりリセットされる。従って、ラッチ回路325は、ラッチ信号LATCを入力してからリセット信号RSTを入力するまでの期間においてフェイルビット数を表す8ビットの二進数の確定フェイルビット数C<7:0>を出力する。
【0132】
図7は、
図6に示すnビット加算器323-1~323-4及びこれに電源を供給するための電源回路(nビット加算器用電源部)327を示す。
【0133】
nビット加算器323-1~323-4の構成は一般的であるので説明を省略する。
【0134】
電源回路327は、外部電源VDD及び内部電源VINTのうち制御信号BCENにより選択された電源を電源VIBCとしてnビット加算器323-1~323-4に供給する。具体的には、ビットカウントモードの期間では制御信号BCENがHIGHとなり、外部電源VDDが電源VIBCとして選択され、nビット加算器323-1~323-4が通常の動作をすることができる。他方で、ビットカウントモードの期間以外の期間では、制御信号BCENがLOWとなり、内部電源VINTが電源VIBCとして選択され、省電力化することができる。
【0135】
図8は、
図6に示すサブフェイルビットカウンタ321の構成例#1を示す回路図である。
図8に示すサブフェイルビットカウンタ321の構成は一般的であるので説明を省略する。
【0136】
図8に示すサブフェイルビットカウンタ321は、1ビットデータA<0>~A<7>の合わせて8個の1ビットデータのうちレベルがHIGHである1ビットデータの合計数を求め、B<0>、B<1>、B<2>及びB<3>により構成される4ビットの二進数データB<3:0>で示される部分的フェイルビット数を出力する。
【0137】
ここで、
図6及び
図8より明らかなように、フェイルビットデータPF<127:0>のうちの部分フェイルビットデータPF<127:120>が第1のサブフェイルビットカウンタの入力A<7:0>となり、同様に、部分フェイルビットデータPF<119:112>が第2のサブフェイルビットカウンタの入力A<7:0>となり、以下同様に、部分フェイルビットデータPF<8×n+7:8×n>が第(16-n)番目のサブフェイルビットカウンタの入力A<7:0>となる(但し、n=1、2、3、・・・、16)。
【0138】
図9は、
図6に示すサブフェイルビットカウンタ321の構成例#2を示す回路図である。構成例#2に従ったサブフェイルビットカウンタ321は、回路ブロック331、332、333、334、335及び336を備える。
【0139】
回路ブロック331は、制御信号BCENがHIGHであるときに1ビットデータA<0>~A<7>のうちレベルがHIGHである1ビットデータの合計数に対応した電圧を持つ信号pbiasを出力する。つまり、回路ブロック331は、8ビットに対応した部分的フェイルビット数に対応した電圧を参照電圧として持つ信号pbiasを出力する。なお、回路ブロック331は、本発明における「第2ブロック」の一例である。
【0140】
回路ブロック332は、1ビットデータA<0>~A<7>の論理積をデータB<3>として出力する。ここで、データB<3>は、部分的フェイルビット数を示すデータB<3:0>の最上位ビット(MSB)である。従って、1ビットデータA<0>~A<7>の合わせて8個のデータの全てがHIGHであり、8ビットの全てがフェイルビットであることを示しているときにデータB<3>はHIGHになる。なお、回路ブロック332は、本発明における「第1ブロック」の一例である。
【0141】
回路ブロック333は、制御信号BCENがHIGHであるときにデータB<3>を論理反転したレベルを持ち、且つ遅延した制御信号ENdを出力する。なお、回路ブロック333は、本発明における「第3ブロック及び1又は複数の第4ブロックを無効化する手段」の一例である。
【0142】
なお、データB<3>がHIGHである場合は、データB<2>、B<1>及びB<0>はLOWであることがわかっているので、制御信号ENdにより回路ブロック334、335及び336に含まれるアンプの動作を停止して、省電力化を図る。このようなとき、回路ブロック334、335及び336がそれぞれ出力するデータB<2>、B<1>及びB<0>はLOWになる。
【0143】
回路ブロック334は、実際のフェイルビット数に対応した信号pbiasの電圧(参照電圧)と、3.5個のフェイルビット数に対応した信号の電圧を比較することによりレベルを決めたデータB<2>を出力する。従って、データB<2>は、部分的フェイルビット数が4から7までの間であるときにHIGHになる。ここで、データB<2>は、部分的フェイルビット数を示すデータB<3:0>の第2上位ビット(2nd MSB)である。
【0144】
回路ブロック335は、実際のフェイルビット数に対応した信号pbiasの電圧(参照電圧)と、1.5+4×B<2>個のフェイルビット数に対応した信号の電圧を比較することによりレベルを決めたデータB<1>を出力する。従って、データB<1>は、部分的フェイルビット数が2、3、6又は7であるときにHIGHになる。なお、回路ブロック335は、本発明における「第3ブロック」の一例である。ここで、データB<1>は、部分的フェイルビット数を示すデータB<3:0>の第3上位ビット(3rd MSB)である。
【0145】
回路ブロック336は、実際のフェイルビット数に対応した信号pbiasの電圧(参照電圧)と、0.5+2×B<1>+4×B<2>個のフェイルビット数に対応した信号の電圧を比較することによりレベルを決めたデータB<0>を出力する。従って、データB<0>は、部分的フェイルビット数が1、3、5又は7であるときにHIGHになる。なお、回路ブロック336は、本発明における「第4ブロック」の一例である。
【0146】
[3.2 ビットカウント部の構成例#2]
【0147】
図10は、
図3に示すビットカウント部の構成例#2を示すブロック図である。
図10を参照すると、構成例#2に従ったビットカウント部301は、ビット比較部341、ビット訂正部343及び第2ビットカウントタイミング生成部345を備える。
【0148】
ビット比較部341は、128ビットの期待データEXPDATA<127:0>(
図2参照)と128ビットの読出データRDATA<127:0>(
図2参照)のビット毎の一致/不一致をビット毎に示す論理レベル(つまり、各ビットがフェイルビットであるか否かを示す論理レベル)を持つ128ビットにより構成されるフェイルビットデータPF<127:0>を入力し、訂正前フェイルビット数S<6:0>を出力する。訂正前フェイルビット数S<6:0>は、フェイルビット数と同一数又はそれよりも1だけ異なる数を二進数により示す。
【0149】
ビット訂正部343は、訂正前フェイルビット数S<6:0>を必要に応じて訂正処理により訂正し、8ビットの二進数によりフェイルビット数を示す確定フェイルビット数C<7:0>を出力する。
【0150】
第2ビットカウントタイミング生成部345は、ビット比較部341及びビット訂正部343が動作するための信号を生成する。なお、第2ビットカウントタイミング生成部345は、本発明における「計算部」の一例を含む。
【0151】
図11は、
図10に示すビット比較部341の構成を示す回路図である。
図11を参照すると、ビット比較部341は、8個の排他的論理和ゲート群351-1~351-8、9個の論理反転ゲート群353-1~353-9、ビットカウント差動アンプ355及び7個のラッチ回路357を備える。
【0152】
フェイルビットデータPF<127:0>と同一のデータである非反転フェイルビットデータ又はフェイルビットデータPF<127:0>をビット毎に反転することにより得た反転フェイルビットデータが測定対象データA<127:0>としてビットカウント差動アンプ355に供給される。また、測定対象データA<127:0>と比較するべきデータが参照データB<127:0>としてビットカウント差動アンプ355に供給される。測定対象データA<127:0>の相補データAf<127:0>及び参照データB<127:0>の相補データBf<127:0>もビットカウント差動アンプ355に供給される。
【0153】
以下の説明では、フェイルビット数(又は非反転フェイルビット数)をFBという。また、フェイルビットデータの各ビットを論理反転したときの反転フェイルビット数をFCという。更に、測定対象データA<127:0>に含まれる論理レベルがHIGHであるビットの数を測定対象ビット数AAという。更に、参照データB<127:0>に含まれる論理レベルがHIGHであるビットの数を参照アクティブビット数BBという。
【0154】
ビット比較部341は、第2ビットカウントタイミング生成部345により二分検索法のアルゴリズムを用いて動作が制御される。この制御により、ビット比較部341に含まれるビットカウント差動アンプ355は、測定対象ビット数AAと逐次更新される参照アクティブビット数BBの大小関係により逐次変化する大小データ(判別結果)OUTを出力する。ビット比較部341は、7個のラッチ回路357により大小データOUTを逐次サンプリングして合成することにより得た複数のビットデータS<6>~S<0>により構成される訂正前フェイルビット数S<6:0>を出力する。
【0155】
二分検索法を主に用いたアルゴリズムによりビットカウント差動アンプ355の動作を制御するために、第2ビットカウントタイミング生成部345はデータF0~F7を逐次変化させる。
【0156】
データF0からF5及びF7は、ビットカウント差動アンプ355における参照データB<127:0>及びこれの相補データBf<127:0>に含まれる参照アクティブビット数を調整するためのデータである。データF6は、ビットカウント差動アンプ355における測定対象データA<127:0>及びこれの相補データAf<127:0>により示される測定対象ビット数を調整するためのデータである。
【0157】
8個の排他的論理和ゲート群351-1~351-8は、それぞれ、128個、32個、16個、8個、4個、2個、64個及び1個の2入力1出力の排他的論理和ゲートを備える。また、8個の論理反転ゲート群353-1~353-8は、それぞれ、128個、32個、16個、8個、4個、2個、64個及び1個の反転ゲートを備える。なお、排他的論理和ゲート群351-1及び論理反転ゲート群353-1は、本発明における「測定対象設定部」の一例である。また、B<127:0>及びBf<127:0>のデータを生成するための排他的論理和ゲート群351-2~351-8及び論理反転ゲート群353-2~353-9を含む回路は、本発明における「参照データ設定部」の一例である。
【0158】
8個の排他的論理和ゲート群351-1~351-8には、全体でいうと、フェイルビットデータPF<127:0>とデータF0~F7が供給される。
【0159】
排他的論理和ゲート群351-1に含まれる128個の排他的論理和ゲートの第1入力端子にはフェイルビットデータPF<127:0>の各ビットが供給され、第2入力端子には共通にデータF6が供給される。そして、排他的論理和ゲート群351-1に含まれる128個の排他的論理和ゲートの出力データ及びこれらを論理反転ゲート群353-1に通したデータは、測定対象データA<127:0>及びこれの相補データAf<127:0>としてビットカウント差動アンプ355に供給される。ここで、A<127:0>及びAf<127:0>のデータを生成するための排他的論理和ゲート群351-1及び論理反転ゲート群353-1を含む回路は、本発明の「測定対象データ設定部」の一例である。
【0160】
データF6がLOWであるときには、フェイルビットデータPF<127:0>がそのまま測定対象データ<127:0>になる。他方で、データF6がHIGHであるときには、フェイルビットデータPF<127:0>をビット単位で論理反転したデータが測定対象データA<127:0>になる。ここで、フェイルビットデータPF<127:0>をビット単位で論理反転することにより得た測定対象データA<127:0>に含まれる論理レベルがHIGHであるビットの数は、128からフェイルビットデータPF<127:0>に含まれるフェイルビットの数を減じることにより得た数になる。
【0161】
なお、後述するように、二分検索法のアルゴリズムによりフェイルビット数を検索する前に、フェイルビットデータPF<127:0>に含まれるフェイルビットの数が64未満であるか否かを判断する。フェイルビット数FBが64未満である場合には、フェイルビットデータPF<127:0>をそのまま測定対象データA<127:0>にする。他方で、フェイルビット数FBが64以上である場合には、フェイルビットデータPF<127:0>をビット単位で論理反転することにより得たデータを測定対象データA<127:0>にする。
【0162】
これにより、ビットカウント差動アンプ355に供給される測定対象データA<127:0>が64以上であることを避けることができる。従って、ビットカウント差動アンプ355における測定対象データA<127:0>と参照データB<127:0>の比較における電圧誤差によるエラーを減らすことができる。
【0163】
なお、フェイルビットデータPF<127:0>の各ビットが論理反転されないまま測定対象データA<127:0>として利用されるときには、フェイルビット数FBがそのまま測定対象ビット数AAになる。他方で、フェイルビットデータPF<127:0>の各ビットが論理反転されてから測定対象データA<127:0>として利用されるときには、反転フェイルビット数FCが測定対象ビット数AAになる。
【0164】
排他的論理和ゲート群351-1の128ビットの出力は測定対象データA<127:0>としてビットカウント差動アンプ355に供給され、排他的論理和ゲート群351-1の128ビットの出力の論理反転ゲート群353-1による反転出力は相補データAf<127:0>としてビットカウント差動アンプ355に供給される。
【0165】
排他的論理和ゲート群351-2に含まれる32個の排他的論理和ゲート及び論理反転ゲート群353-2に含まれる32個の論理反転ゲートにより、データF5及びこれの反転データがそれぞれ参照データB<127:96>及びこれの相補データBf<127:96>としてビットカウント差動アンプ355に供給される。
【0166】
同様に、排他的論理和ゲート群351-3に含まれる16個の排他的論理和ゲート及び論理反転ゲート群353-3に含まれる16個の論理反転ゲートにより、データF4及びこれの反転データがそれぞれ参照データB<95:80>及びこれの相補データBf<95:80>としてビットカウント差動アンプ355に供給される。
【0167】
同様に、排他的論理和ゲート群351-4に含まれる8個の排他的論理和ゲート及び論理反転ゲート群353-4に含まれる8個の論理反転ゲートにより、データF3及びこれの反転データがそれぞれ参照データB<79:72>及びこれの相補データBf<79:72>としてビットカウント差動アンプ355に供給される。
【0168】
同様に、排他的論理和ゲート群351-5に含まれる4個の排他的論理和ゲート及び論理反転ゲート群353-5に含まれる4個の論理反転ゲートにより、データF2及びこれの反転データがそれぞれ参照データB<71:68>及びこれの相補データBf<71:68>としてビットカウント差動アンプ355に供給される。
【0169】
同様に、排他的論理和ゲート群351-6に含まれる2個の排他的論理和ゲート及び論理反転ゲート群353-6に含まれる2個の論理反転ゲートにより、データF1及びこれの反転データがそれぞれ参照データB<67:66>及びこれの相補データBf<67:66>としてビットカウント差動アンプ355に供給される。
【0170】
同様に、排他的論理和ゲート群351-7に含まれる64個の排他的論理和ゲート及び論理反転ゲート群353-7に含まれる64個の論理反転ゲートにより、データF7及びこれの反転データがそれぞれ参照データB<65:2>及びこれの相補データBf<65:2>としてビットカウント差動アンプ355に供給される。
【0171】
同様に、排他的論理和ゲート群351-8に含まれる1個の排他的論理和ゲート及び論理反転ゲート群353-8に含まれる1個の論理反転ゲートにより、データF0及びこれの反転データがそれぞれ参照データB<1>及びこれの相補データBf<1>としてビットカウント差動アンプ355に供給される。
【0172】
また、レベルがLOWであるデータ及びこれが論理反転ゲート353-9によりHIGHに反転されたデータがそれぞれ参照データB<0>及びこれの相補データBf<0>としてビットカウント差動アンプ355に供給される。
【0173】
7個のラッチ回路357は、ビットカウント差動アンプ355から順次出力される大小データOUTを
図14に示すように時間差をもって連続的に発生するラッチ信号LAT6~LAT0に従ってラッチすることにより複数のビットデータS<6>~S<0>を出力として揃える。複数のビットデータS<6>~S<0>は、訂正前フェイルビット数を二進数で示す訂正前フェイルビット数S<6:0>を構成する。
【0174】
つまり、
図14に示すように、時刻t2の少し前にビットデータS<6>がラッチされ、時刻t3の少し前にビットデータS<5>がラッチされ、以下同様に、時刻ti(i=4、5、・・・、8)の少し前にデータS<8-i>がラッチされる。従って、時刻t8においては、訂正前フェイルビット数S<6:0>が確定している。
【0175】
図12は、
図11に示すビットカウント差動アンプ355の構成を示す回路図である。
【0176】
ビットカウント差動アンプ355は、参照データB<i>(i=0、1、2、・・・、n-1;n=128;以下同様)の相補データBf<i>により制御されるPチャネルMOSトランジスタ361、PチャネルMOSトランジスタ363、測定対象データA<i>により制御されるNチャネルMOSトランジスタ365及び信号AmpENにより制御されるNチャネルMOSトランジスタ367が電源側から接地側まで直接に接続された第1の組を128個含む。また、測定対象データの相補データAf<i>により制御されるPチャネルMOSトランジスタ371、PチャネルMOSトランジスタ373、参照データB<i>により制御されるNチャネルMOSトランジスタ375及び信号AmpENにより制御されるNチャネルMOSトランジスタ377が電源側から接地側まで直接に接続された第2の組を128個含む。そして、第1の各組に含まれるPチャネルMOSトランジスタ363とNチャネルMOSトランジスタ365のドレイン同士を接続する線は、相互に接続され、更に、第2の全ての組に含まれるPチャネルMOSトランジスタ373を制御するために利用される。同様に、第2の各組に含まれるPチャネルMOSトランジスタ373とNチャネルMOSトランジスタ375のドレイン同士を接続する線は、相互に接続され更に、第1の全ての組に含まれるPチャネルMOSトランジスタ363を制御するために利用される。第1の各組に含まれるPチャネルMOSトランジスタ363とNチャネルMOSトランジスタ365のドレイン同士を接続する線の信号は、内部信号OUTpreFとしても利用され、第2の各組に含まれるPチャネルMOSトランジスタ373とNチャネルMOSトランジスタ375のドレイン同士を接続する線の信号は、内部信号OUTpreとしても利用される。
【0177】
信号AmpENがLOWからHIGHになると、遅延回路381により所定の遅延時間の経過後に信号PCfもLOWからHIGHになり、もう一つの遅延回路383により更に所定の遅延時間の経過後に信号ENdもLOWからHIGHになる。また、信号PCfがLOWからHIGHになると、ゲート369及びゲート379が閉じる。従って、信号AmpENがLOWからHIGHになると、全てのNチャネルMOSトランジスタ367及び全てのNチャネルMOSトランジスタ377が導通し、内部信号OUTpre及び内部信号OUTpreFのレベルは、測定対象データA<n-1:0>に含まれるレベルがHIGHであるビットの数(つまり、測定対象ビット数AA)と参照データB<n-1:0>に含まれるレベルがHIGHであるビットの数(つまり、参照アクティブビット数BB)の大小関係に応じた相互に相補的なレベルになる。そして、それから所定の遅延時間の経過後に信号ENdにより開くゲート385、386とその後段のゲート387、388を介して内部信号OUTpre及び内部信号OUTpreFにそれぞれ対応した大小データOUT及び相補データOUTFが相補的に出力される。
【0178】
具体的には、外部からの信号AmpENがHIGHである期間に、データA<n-1>~A<0>のうちレベルがHIGHであるデータの数(つまり、測定対象ビット数AA)がデータB<n-1>~B<0>のうちレベルがHIGHであるデータの数(つまり、参照アクティブビット数BB)以上であるならば、内部信号OUTpre及びこれの反転内部信号OUTpreFのレベルは、それぞれ、HIGH、LOWになる。他方で、外部からの信号AmpENがHIGHである期間に、データA<n-1>~A<0>のうちレベルがHIGHであるデータの数がデータB<n-1>~B<0>のうちレベルがHIGHであるデータの数未満であれば、内部信号OUTpre及びこれの反転内部信号OUTpreFのレベルは、それぞれ、LOW、HIGHになる。そして、外部からの信号AmpENがHIGHである期間に内部信号OUTpre及び反転内部信号OUTpreFが大小データOUT及びこれの相補データOUTFとして外部に出力される。
【0179】
図13は、
図10に示すビット訂正部343の構成を示す回路図である。
【0180】
ビット訂正部343は、1個のバッファ393、6個の二入力排他的論理和ゲート395、1個の129入力排他的論理和ゲート397、1個のプラス1加算器391及び8個のラッチ回路399を備える。
【0181】
訂正前フェイルビット数S<6:0>は、1個のバッファ393及び6個の二入力排他的論理和ゲート395により中間訂正をかけられてから中間フェイルビット数Sd<6:0>としてプラス1加算器391に供給される。
【0182】
そして、中間フェイルビット数Sd<6:0>は、129入力排他的論理和ゲート397により制御されるプラス1加算器391により後段訂正をかけられてから8個のラッチを介して確定フェイルビット数C<7:0>としてビット訂正部343から出力される。
【0183】
中間訂正においては、具体的には、ビット比較部341において反転フェイルビット数FCを測定対象のビット数AAとしている場合に対応した処理を実行する。
【0184】
後段訂正においては、具体的には、訂正前フェイルビット数S<6:0>にエラーが生じている場合に、そのエラーを訂正する処理を実行する。
【0185】
次に、具体的な説明をすると、訂正前フェイルビット数S<6:0>に含まれるビットデータS<6>は、バッファ393を介してプラス1加算器391に供給される。訂正前フェイルビット数S<6:0>に含まれる複数のビットデータS<5>~S<0>の各々は、排他的論理和ゲート395でビットデータS<6>との間で排他的論理和がとられた後にプラス1加算器391に供給される。
【0186】
従って、ビットデータS<6>がLOWであるならば、訂正前フェイルビット数S<6:0>はそのまま中間フェイルビット数Sd<6:0>としてプラス1加算器391に供給される。他方で、ビットデータS<6>がHIGHであるならば、127から訂正前フェイルビット数S<6:0>により示される値を減じて得た値を示すデータが中間フェイルビット数Sd<6:0>としてプラス1加算器391に供給される。これは、上述したように、フェイルビット数が64以上であることが分かったときにフェイルビット数FBの代わりに128からフェイルビット数FBを減じて得た数である反転フェイルビット数FCを測定対象ビット数AAとして設定し、それから二分検索法のアルゴリズムにより測定対象ビット数AAを探すことに対応する。つまり、このようなときには、訂正前フェイルビット数S<6:0>が128からフェイルビット数を減じて得た数を表す二進数であることに対応する。
【0187】
129入力排他的論理和ゲート397は、フェイルビットデータPF<127:0>の全ビットと中間フェイルビット数Sd<6:0>のLSBであるSd<0>との排他的論理演算をして(つまり129入力の排他的論理和演算をして)、その結果を制御データOEMatchとしてプラス1加算器391に供給する。制御データOEMatchは、プラス1加算器391では、加算のイネーブル信号として用いられる。ここで、制御データOEMatchは、フェイルビットデータPF<127:0>の偶奇とデータSd<0>の偶奇が一致するときにLOWとなり、フェイルビットデータPF<127:0>の偶奇とデータSd<0>の偶奇が一致しないときにHIGHとなる。
【0188】
従って、フェイルビット検出部201で検出されてビット展開したままのフェイルビットデータPF<127:0>に含まれる実際のフェイルビット数の偶奇と7ビット二進数の訂正前フェイルビット数S<6:0>により示される訂正前フェイルビット数の偶奇が一致していない場合には、プラス1加算器391において、中間フェイルビット数Sd<6:0>に対して1が加算される。そして、加算後のデータが訂正後フェイルビット数を示す訂正後フェイルビット数SS<7:0>としてプラス1加算器391から出力される。他方で、フェイルビットデータPF<127:0>に含まれる実際のフェイルビット数の偶奇と訂正前フェイルビット数S<6:0>により示される訂正前フェイルビット数の偶奇が一致している場合には、プラス1加算器391に入力された中間フェイルビット数Sd<6:0>はそのまま訂正後フェイルビット数を示す訂正後フェイルビット数SS<7:0>としてプラス1加算器391から出力される。
【0189】
ラッチ回路399は、プラス1加算器391から出力される訂正後フェイルビット数SS<7:0>を構成する複数のビットデータSS<7>~SS<0>をそれぞれラッチして、複数のビットデータC<7>~C<0>として出力する。これらを合わせて得られる二進数の確定フェイルビット数C<7:0>がビットカウント部301から出力される確定フェイルビット数C<7:0>である。
【0190】
なお、プラス1加算器391は、周知の構成を有していてもよい。
【0191】
ビット比較部341において反転フェイルビット数FCを測定対象のビット数AAとしている場合に、仮に127ではなく128から訂正前フェイルビット数S<6:0>により示される値を減じて得た値を示すデータを中間フェイルビットSd<6:0>として求めるならば、次のようになる。つまり、エラーが生じていないときに、中間フェイルビットSd<6:0>が正しいフェイルビット数FBを示すことになる。他方で、エラーが生じているときには、中間フェイルビットSd<6:0>から1を減じて得た値を正しいフェイルビット数FBとして求める必要が生じる。
【0192】
従って、次のような構成と動作が必要になる。
・構成:プラス1加算器391を±1加算器に置き換える。
・動作#1:ビット比較部341において非反転フェイルビット数FBを測定対象のビット数AAとしていて、エラーがない場合には、±加算器においては、Sd<6:0>をそのままSS<6:0>が示すようにする。
・動作#2:ビット比較部341において非反転フェイルビット数FBを測定対象のビット数AAとしていて、エラーがある場合には、±加算器においては、Sd<6:0>に1を加算した値をSS<6:0>が示すようにする。つまり、±加算器がSd<6:0>に1を加算する処理をする。
・動作#3:ビット比較部341において反転フェイルビット数FCを測定対象のビット数AAとしていて、エラーがない場合には、±加算器においては、Sd<6:0>をそのままSS<6:0>が示すようにする。
・動作#4:ビット比較部341において反転フェイルビット数FCを測定対象のビット数AAとしていて、エラーがある場合には、±加算器においては、Sd<6:0>から1を減算した値をSS<6:0>が示すようにする。つまり、±加算器がSd<6:0>から1を減算する処理をする。
【0193】
このような構成と動作のためには、上述した構成の場合と比較して、より大きな規模の回路とより多くの演算処理が必要になる。
【0194】
[4. ビットカウント累計部]
図15は、
図3に示すビットカウント累計部401の構成を示す回路図である。
【0195】
8入力論理和ゲート411は、フェイルビット数を示す確定フェイルビット数C<7:0>の全ビットの論理和をデータCMPとして出力する。従って、データCMPは、1セットのフェイルビットデータPF<127:0>にフェイルビットがなければLOWであるが、1セットのフェイルビットデータPF<127:0>にフェイルビットが少なくとも1個あればHIGHになる。つまり、データCMPは、1セットのフェイルビットデータPF<127:0>に対するフェイルビットの有無を示すことになる。
【0196】
フリップフロップ回路413の出力データCCMPは、制御信号CBCに対応したリセット信号RSTによりLOWになり、その後にデータCMPがLOWからHIGHになった時にHIGHになる。従って、データCCMPは、フェイルビットの検出の対象となっている全てのフェイルビットデータPF<127:0>に対するフェイルビットの有無を示すことになる。つまり、i番目のフェイルビットデータPF<127:0>をPF(i)と表記し、PF(i)に対応するフェイルビット数FBをFB(i)とすれば、CCMPリセット信号RSTが発生した直後の第1番目の周期から現在に対応する第S番目の周期まで少なくとも1つのフェイルビットが発生したならば、フリップフロップ回路413の出力データCCMPはHIGHになる。
【0197】
8/nビット加算器415とラッチ回路417により累計回路が構成される。従って、ラッチ回路417が出力するデータCC<n-1:0>は、フェイルビットの検出の対象となっている全てのフェイルビットデータPF<127:0>に対するフェイルビットの有無を示すことになる。つまり、i番目のフェイルビットデータPF<127:0>をPF(i)と表記し、PF(i)に対応するフェイルビット数FBをFB(i)とすれば、ラッチ回路417が出力するデータCC<n-1:0>は、リセット信号RSTが発生した直後の第1番目の周期から現在に対応する第S番目の周期までの累積フェイルビット数である
Σi=1~SFB(i)
を示すことになる。
【0198】
マルチプレクサMUX421、423及び425により、制御信号CBOUT及び制御信号COMPの組合せに応じて、データCNT<n-1:0>として、データCMP、データCCMP、確定フェイルビット数C<7:0>及び累計フェイルビット数CC<n-1:0>のうちの何れか1個が選択される。
【0199】
なお、8/nビット加算器415は、周知の構成を有していてもよい。
【0200】
[5. 構成例#2によるビットカウント部の動作の一般的な説明]
【0201】
[5.1 ビットカウント差動アンプを利用したツリー検索による動作の説明]
図14は、
図10に示す構成例#2によるビットカウント部の動作を説明するためのタイミング図である。
【0202】
なお、以下の説明では、
(F7、F6、F5、F4、F3、F2、F1、F0)
=(X7、X6、X5、X4、X3、X2、X1、X0)
という標記があるが、このとき、測定対象ビット数AA及び参照アクティブビット数BBは次のようになる。
AA
= FB (F6=LOWのとき)
128-FB (F6=HIGHのとき)
BB
= x7・64+x5・32+x4・16+x3・8+x2・4+x1・2+x0
ここで、
Xi=HIGHのとき、xi=1
Xi=LOWのとき、xi=0
Xi=HIGH/LOWのとき、xi=1又は0
【0203】
<時刻t1>
データF7がHIGHにセットされる。他方でデータF0からデータF6はLOWにリセットされる。これにより、フェイルビット数FBが測定対象ビット数AAとして設定され、参照アクティブビット数BBは64になる。そして、信号AmpENがLOWからHIGHに変化してから、測定対象ビット数AAと参照アクティブビット数BBであるビット数64がビットカウント差動アンプ355により比較される。
【0204】
比較結果を示すビットカウント差動アンプ355からの大小データOUTは、ラッチ信号LAT6によりラッチ回路357にビットデータS<6>としてラッチされる。具体的には、フェイルビット数FBが64以上であるならば、ビットデータS<6>はHIGHにセットされ、フェイルビット数FBが64未満であれば、ビットデータS<6>はLOWにセットされる。この時点では、訂正前フェイルビット数S<6:0>に含まれるビットデータS<6>のみが確定する。
【0205】
<時刻t2>
信号AmpENは、HIGHからLOWに戻される。データF7はHIGHからLOWに戻される。また、データF5がHIGHにセットされる。更に、データF0からデータF4はLOWに維持される。従って、参照アクティブビット数BBは32になる。ここでの参照アクティブビット数BBを参照アクティブビット数BB#5ということにする。
【0206】
また、ビットデータS<6>の値がデータF6の値としてセットされる。具体的には、フェイルビット数FBが64以上であるならば、データF6はHIGHにセットされ、フェイルビット数FBが64未満であれば、データF6はLOWにセットされる。
【0207】
従って、測定対象データA<127:0>に含まれる論理レベルがHIGHであるビットの数(測定対象ビット数AA)は、次のようにして決まる。
【0208】
つまり、フェイルビット数FBが64以上であるならば、測定対象ビット数AAは、128からフェイルビット数FBを差し引いた数である反転フェイルビット数FCと同一になる。また、フェイルビット数FBが64未満である場合には、測定対象ビット数AAは、フェイルビット数(つまり、非反転フェイルビット数)FBと同一になる。
【0209】
このとき、
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H/L、H、L、L、L、L、L)
である。そして、信号AmpENがLOWからHIGHに変化してから、測定対象ビット数AAと参照アクティブビット数BB#5がビットカウント差動アンプ355により比較される。
【0210】
比較結果を示すビットカウント差動アンプ355からの大小データOUTは、ラッチ信号LAT5によりラッチ回路357にビットデータS<5>としてラッチされる。ラッチされるビットデータS<5>は、測定対象ビット数AAが参照アクティブビット数BB#5である32以上であるならば、HIGHである。他方で、ラッチされるビットデータS<5>は、測定対象ビット数AAが参照アクティブビット数BB#5である32未満であれば、LOWである。この時点で、ビットデータS<5>が確定する。
【0211】
<時刻t3>
信号AmpENは、HIGHからLOWに戻される。データF6は、時刻t2においてセットされた論理レベルを維持する。従って、測定対象ビット数AAは維持される。
【0212】
また、データF7はLOWに維持される。更に、ビットデータS<5>の値がデータF5の値としてセットされる。更に、データF4がHIGHにセットされる。更に、データF0からデータF3はLOWに維持される。従って、ここでの参照アクティブビット数BBを参照アクティブビット数BB#4ということにすると、参照アクティブビット数BB#4はS<5>×32+16になる。
【0213】
このとき、
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H/L、H/L、H、L、L、L、L)
である。そして、信号AmpENがLOWからHIGHに変化してから、測定対象ビット数AAと参照アクティブビット数BB#4がビットカウント差動アンプ355により比較される。
【0214】
比較結果を示すビットカウント差動アンプ355からの大小データOUTは、ラッチ信号LAT4によりラッチ回路357にビットデータS<4>としてラッチされる。ここで、ラッチされるビットデータS<4>は、測定対象ビット数AAが参照アクティブビット数BB#4以上であるならば、HIGHである。他方で、ラッチされるビットデータS<4>は、測定対象ビット数AAが参照アクティブビット数BB#4未満であれば、LOWである。この時点でビットデータS<4>が確定する。
【0215】
<時刻t4>
信号AmpENは、HIGHからLOWに戻される。データF6は、時刻t2においてセットされた論理レベルを維持する。従って、測定対象ビット数AAは維持される。
【0216】
また、データF7はLOWに維持される。データF5は、時刻t3においてセットされた論理レベルを維持する。更に、データS<4>の値がデータF4の値としてセットされる。更に、データF3がHIGHにセットされる。更に、データF0からデータF2はLOWに維持される。従って、ここでの参照アクティブビット数BBを参照アクティブビット数BB#3ということにすると、参照アクティブビット数BB#3はS<5>×32+S<4>×16+8になる。
【0217】
このとき、
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H/L、H/L、H/L、H、L、L、L)
である。そして、信号AmpENがLOWからHIGHに変化してから、測定対象ビット数AAと参照アクティブビット数BB#3がビットカウント差動アンプ355により比較される。
【0218】
比較結果を示すビットカウント差動アンプ355からの大小データOUTは、ラッチ信号LAT3によりラッチ回路357にデータS<3>としてラッチされる。ここで、ラッチされるビットデータS<3>は、測定対象ビット数AAが参照アクティブビット数BB#3以上であるならば、HIGHである。他方で、ラッチされるビットデータS<3>は、測定対象ビット数AAが参照アクティブビット数BB#3未満であれば、LOWである。この時点でデータS<3>が確定する。
【0219】
<時刻t5>
信号AmpENは、HIGHからLOWに戻される。データF6は、時刻t2においてセットされた論理レベルを維持する。従って、測定対象ビット数AAは維持される。
【0220】
また、データF7はLOWに維持される。データF5、F4は、それぞれ、時刻t3、t4においてセットされた論理レベルを維持する。更に、ビットデータS<3>の値がデータF3の値としてセットされる。更に、データF2がHIGHにセットされる。更に、データF0及びデータF1はLOWに維持される。従って、ここでの参照アクティブビット数BBを参照アクティブビット数BB#2ということにすると、参照アクティブビット数BB#2はS<5>×32+S<4>×16+S<3>×8+4になる。
【0221】
このとき、
(F7、F6、F5、F4、F3、F2、F1、F0)
= (L、H/L、H/L、H/L、H/L、H、L、L)
である。そして、信号AmpENがLOWからHIGHに変化してから、測定対象ビット数AAと参照アクティブビット数BB#2がビットカウント差動アンプ355により比較される。
【0222】
比較結果を示すビットカウント差動アンプ355からの大小データOUTは、ラッチ信号LAT2によりラッチ回路357にビットデータS<2>としてラッチされる。ここで、ラッチされるビットデータS<2>は、測定対象ビット数AAが参照アクティブビット数BB#2以上であるならば、HIGHである。他方で、ラッチされるビットデータS<2>は、測定対象ビット数AAが参照アクティブビット数BB#2未満であれば、LOWである。この時点でビットデータS<2>が確定する。
【0223】
<時刻t6>
信号AmpENは、HIGHからLOWに戻される。データF6は、時刻t2においてセットされた論理レベルを維持する。従って、測定対象ビット数AAは維持される。
【0224】
また、データF7はLOWに維持される。データF5、F4、F3は、それぞれ、時刻t3、t4、t5においてセットされた論理レベルを維持する。更に、ビットデータS<2>の値がデータF2の値としてセットされる。更に、データF1がHIGHにセットされる。更に、データF0はLOWに維持される。従って、ここでの参照アクティブビット数BBを参照アクティブビット数BB#1ということにすると、参照アクティブビット数BB#1はS<5>×32+S<4>×16+S<3>×8+S<2>×4+2になる。
【0225】
このとき、
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H/L、H/L、H/L、H/L、H/L、H、L)
である。そして、信号AmpENがLOWからHIGHに変化してから、測定対象ビット数AAと参照アクティブビット数BB#1がビットカウント差動アンプ355により比較される。
【0226】
比較結果を示すビットカウント差動アンプ355からの大小データOUTは、ラッチ信号LAT1によりラッチ回路357にビットデータS<1>としてラッチされる。ここで、ラッチされるビットデータS<1>は、測定対象ビット数AAが参照アクティブビット数BB#1以上であるならば、HIGHである。他方で、ラッチされるビットデータS<1>は、測定対象ビット数AAが参照アクティブビット数BB#1未満であれば、LOWである。この時点でビットデータS<1>が確定する。
【0227】
<時刻t7>
信号AmpENは、HIGHからLOWに戻される。データF6は、時刻t2においてセットされた論理レベルを維持する。従って、測定対象ビット数AAは維持される。
【0228】
また、データF7はLOWに維持される。データF5、F4、F3、F2は、それぞれ、時刻t3、t4、t5、t6においてセットされた論理レベルを維持する。更に、ビットデータS<1>の値がデータF1の値としてセットされる。更に、データF0がHIGHにセットされる。従って、ここでの参照アクティブビット数BBを参照アクティブビット数BB#0ということにすると、参照アクティブビット数BB#0はS<5>×32+S<4>×16+S<3>×8+S<2>×4+S<1>×2+1になる。
【0229】
このとき、
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H/L、H/L、H/L、H/L、H/L、H/L、H)
である。そして、信号AmpENがLOWからHIGHに変化してから、測定対象ビット数AAと参照アクティブビット数BB#0がビットカウント差動アンプ355により比較される。
【0230】
比較結果を示すビットカウント差動アンプ355からの大小データOUTは、ラッチ信号LAT0によりラッチ回路357にビットデータS<0>としてラッチされる。ここで、ラッチされるビットデータS<0>は、測定対象ビット数AAが参照アクティブビット数BB#0以上であるならば、HIGHである。他方で、ラッチされるビットデータS<0>は、測定対象ビット数AAが参照アクティブビット数BB#0未満であれば、LOWである。この時点でデータS<0>が確定する。ところで、既に複数のビットデータS<6>~S<1>が確定しているので、この時点で、訂正前フェイルビット数S<6:0>が確定する。
【0231】
<時刻t8>
図13も参照すると、
図14に示す例では、時刻t8の直前にビットデータS<0>が確定している。また、ビットデータS<6>は既に時刻t2の直前に確定している。従って、ビットデータS<0>に対応する排他的論理和ゲート395の出力部においてこの2つのビットデータS<0>及びS<6>の排他的論理和を示す中間ビットデータSd<0>が確定する。そして、時刻t1よりも前からフェイルビットデータPF<127:0>が確定している。そして、時刻t8の直後に129入力排他的論理和ゲート397の出力部において、制御データOEMatchが確定する。
【0232】
<時刻t9>
また、訂正前フェイルビット数S<6:0>に含まれるビットデータS<5>~S<1>はそれぞれ時刻t3~t7の直前に確定している。従って、時刻t9において、ラッチ回路399は、既にこれらの確定している信号により動作するプラス1加算器391の出力部において確定している訂正後フェイルビット数SS<7:0>をラッチ信号LATCによりラッチし、確定フェイルビット数C<7:0>として出力する。
【0233】
<時刻t10>
その後、
図15に示すビットカウント累計部401に含まれる8/nビット加算器415及びラッチ回路417により構成される累計回路が、制御信号CUMにより駆動された時に、フェイルビット数の累計値CC<n-1:0>に、現在フェイルビット測定の対象となっている確定フェイルビット数C<7:0>を加算した値に更新される。
図14に示される動作を1周期とすると、周期毎に確定フェイルビット数C<7:0>が求められる。そして、時間が1周期進む度に、累計値CC<n-1:0>が更新される。また、ラッチ回路417は、制御信号CBCによりリセットされる。従って、累計値CC<n-1:0>は、制御信号CBCが発生してから現在までの周期数分の確定フェイルビット数C<7:0>を累積した値を示す。
【0234】
[5.2 ビットカウント差動アンプを利用したツリー検索におけるエラーの説明]
ビットカウント差動アンプ355を利用して測定対象データA<127:0>と参照データB<127:0>を比較する際には、参照アクティブビット数を逐次更新するが、測定対象ビット数と参照アクティブビット数が同数であるときに、比較結果を示す大小データOUTの論理レベルに誤りが発生する可能性がある。
【0235】
例えば、フェイルビット数が24である場合、本来ならば、
S<6>=LOW
S<5>=LOW
S<4>=HIGH
S<3>=HIGH
S<2>=LOW
S<1>=LOW
S<0>=LOW
となるべきである。ここで、ビットデータS<3>を求める際には測定対象ビット数AAである24と参照アクティブビット数BBである24を比較する。本来ならばビットデータS<3>の値がHIGHとなるべきであるが、半導体の特性の製造誤差やノイズなどの影響によりLOWとなってしまう場合がある。つまり、ツリー検索の途中において本来ならばビットデータS<3>=HIGHであると判断されるべきなのに誤ってビットデータS<3>=LOWであると判断されてしまう。このような場合、
S<6>=LOW
S<5>=LOW
S<4>=HIGH
S<3>=LOW
S<2>=HIGH
S<1>=HIGH
S<0>=HIGH
が得られることになる。このような場合には、訂正前フェイルビット数S<6:0>により示されるフェイルビット数が24ではなく23という誤った値になってしまう。
【0236】
このような誤りが生じる可能性があるのは、上述したように、測定対象ビット数をこれと同一数の参照アクティブビット数と比較するときである。従って、一般に、測定対象ビット数AAを測定対象ビット数AAと同一の値を持つ参照アクティブビット数BBと比較するとき(AA=BBであるときに)に誤りが発生する可能性がある。測定対象ビット数AAをこれと異なった値を持つ参照アクティブビット数BBと比較するとき(AA≠BBであるとき)には誤りが発生する可能性はない。
【0237】
ここで、測定対象ビット数AAと参照アクティブビット数BBが等しいときに、測定対象ビット数AAを誤ってBB+1であると判断する誤りと、測定対象ビット数AAを誤ってBB-1であると判断する誤りがあるが、後者の誤りが発生しないようにビットカウント部301を設計している。
【0238】
そこで、訂正前フェイルビット数S<6:0>に誤りがあることを、フェイルビット数の偶奇と訂正前フェイルビット数S<6:0>の偶奇が不一致であることにより検出し、訂正前フェイルビット数S<6:0>に誤りがあることを検出したならば、確定フェイルビット数C<7:0>を求めるために、訂正前フェイルビット数S<6:0>に数値1を加算するだけで十分である。
【0239】
但し、上記は、ビット比較部341において非反転フェイルビット数を測定対象ビット数として設定した場合に限られる。ビット比較部341において反転フェイルビット数を測定対象ビット数とした場合には、ビット訂正部343では、ビット比較部341から入力した訂正前フェイルビット数S<6:0>に含まれるS<5:0>のみを論理反転することで中間フェイルビット数Sd<6:0>を得る。これは、訂正前フェイルビット数S<6:0>の1´Cを求める演算であるので、訂正前フェイルビット数S<6:0>の2´Cを求める演算に対して演算結果が1だけ少なくなる。
【0240】
そうすると、ビット比較部341において非反転フェイルビット数を測定対象ビット数として設定した場合とは異なり、中間フェイルビット数Sd<6:0>は、エラーがない場合には、フェイルビット数から1を減じた数を示すようになり、エラーがある場合には、フェイルビット数と同一の数を示すようになる。従って、ビット比較部341においてエラーが発生した場合には、フェイルビット数の偶奇と中間フェイルビット数Sd<6:0>の偶奇は一致し、ビット比較部341においてエラーが発生しなかった場合には、フェイルビット数の偶奇と中間フェイルビット数Sd<6:0>の偶奇は不一致になる。
【0241】
従って、反転フェイルビット数を測定対象ビットとした場合であっても、フェイルビット数を測定対象ビットとした場合と同様の処理をすればよい。つまり、フェイルビット数の偶奇と訂正前フェイルビット数S<6:0>の偶奇が一致するならば、中間フェイルビット数Sd<6:0>をビット拡張するだけで訂正後フェイルビット数SS<7:0>にする。また、フェイルビット数の偶奇と訂正前フェイルビット数S<6:0>の偶奇が一致しないならば、中間フェイルビット数Sd<6:0>に1を加算し、且つ、ビット拡張して訂正後フェイルビット数SS<7:0>にする。
【0242】
ビット訂正部343は、ビット比較部341から訂正前フェイルビット数S<6:0>を入力する。
【0243】
訂正前フェイルビット数S<6:0>のMSBであるビットデータS<6>がLOWであるならば、フェイルビットデータPF<127:0>に含まれるフェイルビットの数FBが64未満であり、訂正前フェイルビット数S<6:0>は、非反転フェイルビット数FBを二進数で表している。
【0244】
他方で、ビットデータS<6>がHIGHであるならば、フェイルビットデータPF<127:0>に含まれるフェイルビットの数FBが64以上であるならば、訂正前フェイルビット数S<6:0>は、反転フェイルビット数FCを二進数で表している。
【0245】
また、訂正前フェイルビット数S<6:0>は誤りを含んでいる可能性がある。
【0246】
ビット訂正部343は、これらの組合せにより4通りの動作をする
【0247】
[5.3 ビット訂正部に関連した動作#1の説明]
動作#1は、フェイルビットデータPF<127:0>に含まれるフェイルビットの数FBが64未満であり、且つ、訂正前フェイルビット数S<6:0>にエラーがない場合のものである。
【0248】
フェイルビットデータPF<127:0>に含まれるフェイルビットの数FBが64未満である場合には、上述したようにビットデータS<6>は、LOWである。また、訂正前フェイルビット数S<6:0>は、そのままフェイルビット数FBを7ビット二進数で表す。
【0249】
従って、訂正前フェイルビット数S<6:0>をそのまま中間フェイルビット数Sd<6:0>としてプラス1加算器391に供給する。
【0250】
プラス1加算器391は、中間フェイルビット数Sd<6:0>をビット拡張して訂正後フェイルビット数SS<7:0>として出力する。
【0251】
このような場合、6個の排他的論理和ゲート395の片側の入力端子にはLOWレベルのビットデータS<6>が供給されるので、6個の排他的論理和ゲート395は、S<5:0>をそのままSd<5:0>としてプラス1加算器391に供給する。また、バッファ393は、LOWレベルのS<6>をそのままSd<6>としてプラス1加算器391に供給する。
【0252】
また、フェイルビット数が偶数であるときには、データSd<0>がLOWであり、また、フェイルビット数が奇数であるときには、データSd<0>がHIGHである。従って、何れの場合でも、129入力排他的論理和ゲート397は、値がLOWである制御データOEMatchをプラス1加算器391に供給し、これによりプラス1加算器391は、加算を実行しない。つまり、上述したように、中間フェイルビット数Sd<6:0>をビット拡張するだけで訂正後フェイルビット数SS<7:0>として出力する。
【0253】
[5.4 ビット訂正部に関連した動作#2の説明]
動作#2は、フェイルビットデータPF<127:0>に含まれるフェイルビットの数FBが64未満であり、且つ、訂正前フェイルビット数S<6:0>にエラーがある場合のものである。
【0254】
フェイルビットデータPF<127:0>に含まれるフェイルビットの数FBが64未満である場合には、上述したようにビットデータS<6>は、LOWである。また、訂正前フェイルビット数S<6:0>は、そのままフェイルビット数FBを7ビット二進数で表す。
【0255】
従って、訂正前フェイルビット数S<6:0>をそのまま中間フェイルビット数Sd<6:0>としてプラス1加算器391に供給する。
【0256】
そこで、プラス1加算器391は、中間フェイルビット数Sd<6:0>に1を加算し、且つ、ビット拡張して訂正後フェイルビット数SS<7:0>として出力する。
【0257】
このような場合、6個の排他的論理和ゲート395の片側の入力端子にはLOWレベルのビットデータS<6>が供給されるので、6個の排他的論理和ゲート395は、S<5:0>をそのままSd<5:0>としてプラス1加算器391に供給する。また、バッファ393は、LOWレベルのS<6>をそのままSd<6>としてプラス1加算器391に供給する。
【0258】
また、フェイルビット数が偶数であるときには、エラーによりデータSd<0>がLOWからHIGHに転じ、また、フェイルビット数が奇数であるときには、データSd<0>がHIGHからLOWに転じている。従って、何れの場合でも、129入力排他的論理和ゲート397は、値がHIGHである制御データOEMatchをプラス1加算器391に供給し、これによりプラス1加算器391は、加算を実行する。つまり、上述したように、中間フェイルビット数Sd<6:0>に1を加算し、その上で、上位にLOWレベルのビットを追加して訂正後フェイルビット数SS<7:0>として出力する。
【0259】
[5.5 ビット訂正部に関連した動作#3の説明]
動作#3は、フェイルビットデータPF<127:0>に含まれるフェイルビットの数FBが64以上であるならば、且つ、訂正前フェイルビット数S<6:0>にエラーがない場合のものである。
【0260】
フェイルビットデータPF<127:0>に含まれるフェイルビットの数FBが64以上であるならば、上述したようにビットデータS<6>は、HIGHである。また、訂正前フェイルビット数S<6:0>は、反転フェイルビット数FCを7ビット二進数で表す。
【0261】
従って、反転フェイルビット数を表している訂正前フェイルビット数S<6:0>を非反転フェイルビット数から1を減じた数を表す中間フェイルビット数Sd<6:0>に変換してからプラス1加算器391に供給する。
【0262】
また、プラス1加算器391は、中間フェイルビット数Sd<6:0>に1を加算し、且つ、ビット拡張して訂正後フェイルビット数SS<7:0>として出力する。
【0263】
このような場合、6個の排他的論理和ゲート395の片側の入力端子にはHIGHレベルのビットデータS<6>が供給されるので、6個の排他的論理和ゲート395は、S<5:0>を論理反転してSd<5:0>としてプラス1加算器391に供給する。また、バッファ393は、HIGHレベルのS<6>をそのままSd<6>としてプラス1加算器391に供給する。ここで、反転フェイルビット数を表している訂正前フェイルビット数S<6:0>に基づいて非反転フェイルビット数から1を減じた数をSd<6:0>として得ることができたことになる。
【0264】
また、フェイルビット数が偶数であるときには、データSd<0>がHIGHであり、また、フェイルビット数が奇数であるときには、データSd<0>がLOWである。従って、何れの場合でも、129入力排他的論理和ゲート397は、値がHIGHである制御データOEMatchをプラス1加算器391に供給し、これによりプラス1加算器391は、加算を実行する。つまり、上述したように、中間フェイルビット数Sd<6:0>に1を加算し、且つ、ビット拡張して訂正後フェイルビット数SS<7:0>として出力する。
【0265】
[5.6 ビット訂正部に関連した動作#4の説明]
動作#4は、フェイルビットデータPF<127:0>に含まれるフェイルビットの数FBが64以上であるならば、且つ、訂正前フェイルビット数S<6:0>にエラーがある場合のものである。
【0266】
フェイルビットデータPF<127:0>に含まれるフェイルビットの数FBが64以上であるならば、上述したようにビットデータS<6>は、HIGHである。また、訂正前フェイルビット数S<6:0>は、反転フェイルビット数FCを7ビット二進数で表す。
【0267】
従って、反転フェイルビット数を表している訂正前フェイルビット数S<6:0>を非反転フェイルビット数から1を減じた数を表す中間フェイルビット数Sd<6:0>に変換してからプラス1加算器391に供給する。
【0268】
また、プラス1加算器391は、中間フェイルビット数Sd<6:0>に1を加算しないでビット拡張して訂正後フェイルビット数SS<7:0>として出力する。
【0269】
このような場合、6個の排他的論理和ゲート395の片側の入力端子にはHIGHレベルのビットデータS<6>が供給されるので、6個の排他的論理和ゲート395は、S<5:0>を論理反転してSd<5:0>としてプラス1加算器391に供給する。また、バッファ393は、HIGHレベルのS<6>をそのままSd<6>としてプラス1加算器391に供給する。ここで、反転フェイルビット数を表している訂正前フェイルビット数S<6:0>に基づいて非反転フェイルビット数から1を減じた数をSd<6:0>として得ることができたことになる。
【0270】
また、フェイルビット数が偶数であるときには、エラーによりデータSd<0>がLOWからHIGHに転じ、また、フェイルビット数が奇数であるときには、エラーによりデータSd<0>がLOWからHIGHに転じている。従って、何れの場合でも、129入力排他的論理和ゲート397は、値がLOWである制御データOEMatchをプラス1加算器391に供給し、これによりプラス1加算器391は、加算を実行しない。つまり、上述したように、中間フェイルビット数Sd<6:0>に1を加算しないでビット拡張して訂正後フェイルビット数SS<7:0>として出力する。
【0271】
[5.7 具体的な動作例]
[動作例1: フェイルビット数が88である場合~その1~]
概略を説明すると、時刻t1において、フェイルビットデータPF<127:0>に含まれるフェイルビットの数88が、最初の参照アクティブビット数64以上であることを検出する。そこで、フェイルビットデータPF<127:0>の全ビットを反転して測定対象データA<127:0>としてビットカウント差動アンプ355に供給する。ここで、測定対象データA<127:0>に含まれる測定対象ビットの数AAは128-88=40である。
【0272】
時刻t2から時刻t7までにおいて、測定対象データA<127:0>に含まれる測定対象ビットの数AAを示す二進数の訂正前フェイルビット数S<6:0>を二分検索法のアルゴリズムに従って求める。
【0273】
時刻t8においては、訂正前フェイルビット数S<6:0>により示されるフェイルビット数40を127から差し引くことにより得た数87を示す中間フェイルビット数Sd<6:0>を得る。87は正しいフェイルビット数である88から1を減じた値である。
【0274】
また、時刻t8においては、実際のフェイルビット数88の偶奇と中間フェイルビット数Sd<6:0>により示されるフェイルビット数87の偶奇が一致しないので、中間フェイルビット数Sd<6:0>により示されるフェイルビット数87に1を加算することにより正しいフェイルビット数88を示す二進数の確定フェイルビット数C<7:0>を求める。
【0275】
次に、時刻毎の動作を順に説明する。
<時刻t1>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(H、L、L、L、L、L、L、L)
フェイルビットデータPF<127:0>と同一である測定対象データA<127:0>に含まれるフェイルビットの数88と参照データB<127:0>に含まれる参照アクティブビット数64が比較される。この場合、比較結果であるビットデータS<6>がHIGHになる。
【0276】
<時刻t2>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、L、L、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数40(=128-88)と参照データB<127:0>に含まれる参照アクティブビット数32が比較される。この場合、比較結果であるビットデータS<5>がHIGHになる。
【0277】
<時刻t3>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、H、L、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数40と参照データB<127:0>に含まれる参照アクティブビット数48が比較される。この場合、比較結果であるビットデータS<4>がLOWになる。
【0278】
<時刻t4>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、L、H、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数40と参照データB<127:0>に含まれる参照アクティブビット数40が比較される。この場合、比較結果であるビットデータS<3>がHIGHになる。
【0279】
<時刻t5>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、L、H、H、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数40と参照データB<127:0>に含まれる参照アクティブビット数44が比較される。この場合、比較結果であるビットデータS<2>がLOWになる。
【0280】
<時刻t6>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、L、H、L、H、L)
測定対象データA<127:0>に含まれるフェイルビットの数40と参照データB<127:0>に含まれる参照アクティブビット数42が比較される。この場合、比較結果であるビットデータS<1>がLOWになる。
【0281】
<時刻t7>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、L、H、L、L、H)
測定対象データA<127:0>に含まれるフェイルビットの数40と参照データB<127:0>に含まれる参照アクティブビット数41が比較される。この場合、比較結果であるビットデータS<0>がLOWになる。
【0282】
この時点で比較結果、複数のビットデータS<6>、S<5>、S<4>、S<3>、S<2>、S<1>及びS<0>の各々について、HIGH、HIGH、LOW、HIGH、LOW、LOW及びLOWの論理レベルがラッチ回路357において確定する。ここで、訂正前フェイルビット数S<6:0>は、40を示す。
【0283】
<時刻t8>
フェイルビットデータPF<127:0>のフェイルビット数88が、最初の参照アクティブビット数64以上であるために時刻t1において比較結果であるビットデータS<6>がHIGHになっている。従って、訂正前フェイルビット数S<6:0>の各ビットを反転することにより中間フェイルビット数Sd<6:0>を求める。複数のビットデータS<6>~S<0>が40を示しているので、128よりも1だけ少ない127から40を差し引くことにより得た87を中間フェイルビット数Sd<7:0>が示すようにする。
【0284】
実際のフェイルビット数88は偶数であり、中間フェイルビット数Sd<6:0>が示す中間フェイルビット数87は奇数であるので、両者の偶奇は不一致であることを制御データOEMatchが示す。
【0285】
従って、プラス1加算器391は、中間フェイルビット数Sd<6:0>により示される訂正前のフェイルビット数87に対して1を加算することにより得た訂正後のフェイルビット数88を示す訂正後フェイルビット数SS<7:0>を出力する。
【0286】
その後、ラッチ信号LATCによりラッチ回路399(
図13参照)において訂正後フェイルビット数SS<7:0>をラッチすることによりフェイルビット数88を示す確定フェイルビット数C<7:0>が確定する。
【0287】
その後、ビットカウント累計部401に含まれる8/nビット加算器415及びラッチ回路417において制御信号CUMによりフェイルビット数の累計値CC<n-1:0>に対して現在フェイルビット測定の対象となっているデータのフェイルビット数88を示す確定フェイルビット数C<7:0>が加算される。
【0288】
[動作例2: フェイルビット数が88である場合~その2~]
概略を説明すると、時刻t1において、フェイルビットデータPF<127:0>に含まれるフェイルビットの数88が、最初の参照アクティブビット数64以上であることを検出する。そこで、フェイルビットデータPF<127:0>の全ビットを反転して測定対象データA<127:0>としてビットカウント差動アンプ355に供給する。ここで、測定対象データA<127:0>に含まれる測定対象ビットの数AAは128-88=40である。
【0289】
時刻t2から時刻t7までにおいて、測定対象データA<127:0>に含まれる測定対象ビットの数AAを示す二進数の訂正前フェイルビット数S<6:0>を二分検索法のアルゴリズムに従って求める。ここで、本来ならば、時刻t2から時刻t7までの処理により求まる訂正前フェイルビット数S<6:0>が示す数は40になるが、半導体の特性の製造誤差やノイズなどの影響により、この値が39になる。
【0290】
時刻t8においては、訂正前フェイルビット数S<6:0>により示されるフェイルビット数39を127から差し引くことにより得た数88を示す中間フェイルビット数Sd<6:0>を得る。88は正しいフェイルビット数である。
【0291】
また、時刻t8においては、実際のフェイルビット数88の偶奇と中間フェイルビット数Sd<6:0>により示されるフェイルビット数88の偶奇が一致するので、中間フェイルビット数Sd<6:0>により示される訂正前のフェイルビット数88をそのまま示す二進数の確定フェイルビット数C<7:0>を求める。
【0292】
次に、時刻毎の動作を順に説明する。
<時刻t1>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(H、L、L、L、L、L、L、L)
フェイルビットデータPF<127:0>と同一である測定対象データA<127:0>に含まれるフェイルビットの数88と参照データB<127:0>に含まれる参照アクティブビット数64が比較される。この場合、比較結果であるビットデータS<6>がHIGHになる。
【0293】
<時刻t2>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、L、L、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数40(=128-88)と参照データB<127:0>に含まれる参照アクティブビット数32が比較される。この場合、比較結果であるビットデータS<5>がHIGHになる。
【0294】
<時刻t3>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、H、L、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数40と参照データB<127:0>に含まれる参照アクティブビット数48が比較される。この場合、比較結果であるビットデータS<4>がLOWになる。
【0295】
<時刻t4>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、L、H、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数40と参照データB<127:0>に含まれる参照アクティブビット数40が比較される。実施例1とは異なり、半導体の特性の製造誤差やノイズなどの影響により、この場合、比較結果であるビットデータS<3>がLOWになる。
【0296】
<時刻t5>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、L、L、H、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数40と参照データB<127:0>に含まれる参照アクティブビット数36が比較される。この場合、比較結果であるビットデータS<2>がHIGHになる。
【0297】
<時刻t6>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、L、L、H、H、L)
測定対象データA<127:0>に含まれるフェイルビットの数40と参照データB<127:0>に含まれる参照アクティブビット数38が比較される。この場合、比較結果であるビットデータS<1>がHIGHになる。
【0298】
<時刻t7>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、L、L、H、H、H)
測定対象データA<127:0>に含まれるフェイルビットの数40と参照データB<127:0>に含まれる参照アクティブビット数39が比較される。この場合、比較結果であるビットデータS<0>がHIGHになる。
【0299】
この時点で比較結果である複数のS<6>、S<5>、S<4>、S<3>、S<2>、S<1>及びS<0>の各々について、HIGH、HIGH、LOW、LOW、HIGH、HIGH及びHIGHの論理レベルがラッチ回路357において確定する。ここで、訂正前フェイルビット数S<6:0>は、39を示す。
【0300】
<時刻t8>
フェイルビットデータPF<127:0>のフェイルビット数88が、最初の参照アクティブビット数64以上であるために時刻t1において比較結果であるビットデータS<6>がHIGHになっている。従って、訂正前フェイルビット数S<6:0>の各ビットを反転することにより中間フェイルビット数Sd<6:0>を求める。複数のビットデータS<6>~S<0>が39を示しているので、128よりも1だけ少ない127から39を差し引くことにより得た88を中間フェイルビット数Sd<7:0>が示すようにする。
【0301】
実際のフェイルビット数88は偶数であり、中間フェイルビット数Sd<6:0>が示す中間フェイルビット数88は偶数であるので、両者の偶奇は一致することを制御データOEMatchが示す。
【0302】
従って、プラス1加算器391は、中間フェイルビット数Sd<6:0>により示される訂正前のフェイルビット数88をそのまま訂正後のフェイルビット数88として示す訂正後フェイルビット数SS<7:0>を出力する。
【0303】
その後、ラッチ信号LATCによりラッチ回路399(
図13参照)において訂正後フェイルビット数SS<7:0>をラッチすることによりフェイルビット数88を示す確定フェイルビット数C<7:0>が確定する。
【0304】
その後、ビットカウント累計部401に含まれる8/nビット加算器415及びラッチ回路417において制御信号CUMによりフェイルビット数の累計値CC<n-1:0>に対して現在フェイルビット測定の対象となっているデータのフェイルビット数88を示す確定フェイルビット数C<7:0>が加算される。
【0305】
[動作例3: フェイルビット数が24である場合~その1~]
概略を説明すると、時刻t1において、フェイルビットデータPF<127:0>のフェイルビット数24が、最初の参照アクティブビット数64未満であることを検出する。そこで、動作例1、動作例2とは異なり、時刻t2から時刻t7までにおいて、フェイルビットデータPF<127:0>をそのままビットカウント差動アンプ355に測定対象データA<127:0>としてビットカウント差動アンプ355に供給する。
【0306】
時刻t2から時刻t7までにおいて、測定対象データA<127:0>に含まれる測定対象ビットの数AAを示す二進数の訂正前フェイルビット数S<6:0>を二分検索法のアルゴリズムに従って求める。
【0307】
時刻t8においては、訂正前フェイルビット数S<6:0>により示されるフェイルビット数24をそのまま示す中間フェイルビット数Sd<6:0>を得る。
【0308】
また、時刻t8においては、実際のフェイルビット数24の偶奇と中間フェイルビット数Sd<6:0>により示されるフェイルビット数24の偶奇が一致するので、中間フェイルビット数Sd<6:0>により示される訂正前のフェイルビット数24をそのまま示す二進数の確定フェイルビット数C<7:0>を求める。
【0309】
次に、時刻毎の動作を順に説明する。
<時刻t1>
【0310】
(F7、F6、F5、F4、F3、F2、F1、F0)
=(H、L、L、L、L、L、L、L)
フェイルビットデータPF<127:0>と同一である測定対象データA<127:0>に含まれる非反転フェイルビット数24と参照データB<127:0>に含まれる参照アクティブビット数64が比較される。この場合、比較結果であるビットデータS<6>がLOWになる。
【0311】
<時刻t2>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、H、L、L、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数32が比較される。この場合、比較結果であるビットデータS<5>がLOWになる。
【0312】
<時刻t3>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、L、H、L、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数16が比較される。この場合、比較結果であるビットデータS<4>がHIGHになる。
【0313】
<時刻t4>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、L、H、H、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数24が比較される。この場合、比較結果であるビットデータS<3>がHIGHになる。
【0314】
<時刻t5>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、L、H、H、H、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数28が比較される。この場合、比較結果であるビットデータS<2>がLOWになる。
【0315】
<時刻t6>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、L、H、H、L、H、L)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数26が比較される。この場合、比較結果であるビットデータS<1>がLOWになる。
【0316】
<時刻t7>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、L、H、H、L、L、H)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数25が比較される。この場合、比較結果であるビットデータS<0>がLOWになる。
【0317】
この時点で比較結果、複数のビットデータS<6>、S<5>、S<4>、S<3>、S<2>、S<1>及びS<0>の各々について、LOW、LOW、HIGH、HIGH、LOW、LOW及びLOWの論理レベルがラッチ回路357において確定する。ここで、訂正前フェイルビット数S<6:0>は、24を示す。
【0318】
<時刻t8>
フェイルビットデータPF<127:0>のフェイルビット数24が、最初の参照アクティブビット数64未満であるために時刻t1において比較結果SであるビットデータS<6>がLOWになっている。従って、訂正前フェイルビット数S<6:0>をそのまま中間フェイルビット数Sd<6:0>にする。複数のビットデータS<6>~S<0>が24を示しているので、24を中間フェイルビット数Sd<7:0>が示すようにする。
【0319】
実際のフェイルビット数24は偶数であり、中間フェイルビット数Sd<6:0>が示す中間フェイルビット数24は偶数であるので、両者の偶奇は一致することを制御データOEMatchが示す。
【0320】
従って、プラス1加算器391は、中間フェイルビット数Sd<6:0>により示される訂正前のフェイルビット数24をそのまま訂正後のフェイルビット数24として示す訂正後フェイルビット数SS<7:0>を出力する。
【0321】
その後、ラッチ信号LATCによりラッチ回路399(
図13参照)において訂正後フェイルビット数SS<7:0>をラッチすることによりフェイルビット数24を示す確定フェイルビット数C<7:0>が確定する。
【0322】
その後、ビットカウント累計部401に含まれる8/nビット加算器415及びラッチ回路417において制御信号CUMによりフェイルビット数の累計値CC<n-1:0>に対して現在フェイルビット測定の対象となっているデータのフェイルビット数24を示す確定フェイルビット数C<7:0>が加算される。
【0323】
[動作例4: フェイルビット数が24である場合~その2~]
概略を説明すると、時刻t1において、フェイルビットデータPF<127:0>のフェイルビット数24が、最初の参照アクティブビット数64未満であることを検出する。そこで、動作例1、動作例2とは異なり、時刻t2から時刻t7までにおいて、フェイルビットデータPF<127:0>をそのままビットカウント差動アンプ355に測定対象データA<127:0>としてビットカウント差動アンプ355に供給する。
【0324】
時刻t2から時刻t7までにおいて、測定対象データA<127:0>に対応する二進数の訂正前フェイルビット数<6:0>を二分検索法のアルゴリズムに従って求める。ここで、本来ならば、時刻t2から時刻t7までの処理により求まる訂正前フェイルビット数S<6:0>に対応する数は24になるが、半導体の特性の製造誤差やノイズなどの影響により、この値が23になる。
【0325】
時刻t8においては、訂正前フェイルビット数S<6:0>により示されるフェイルビット数23をそのまま示す中間フェイルビット数Sd<6:0>を得る。
【0326】
また、時刻t8においては、実際のフェイルビット数24の偶奇と中間フェイルビット数Sd<6:0>により示されるフェイルビット数23の偶奇が一致しないので、中間フェイルビット数Sd<6:0>により示される23に1を加算することによりフェイルビット数24を示す二進数の確定フェイルビット数C<7:0>を求める。
【0327】
次に、時刻毎の動作を順に説明する。
<時刻t1>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(H、L、L、L、L、L、L、L)
フェイルビットデータPF<127:0>と同一である測定対象データA<127:0>に含まれる非反転フェイルビット数24と参照データB<127:0>に含まれる参照アクティブビット数64が比較される。この場合、比較結果であるビットデータS<6>がLOWになる。
【0328】
<時刻t2>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、H、L、L、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数32が比較される。この場合、比較結果であるビットデータS<5>がLOWになる。
【0329】
<時刻t3>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、L、H、L、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数16が比較される。この場合、比較結果であるビットデータS<4>がHIGHになる。
【0330】
<時刻t4>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、L、H、H、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数24が比較される。この場合、実施例3とは異なり、半導体の特性の製造誤差やノイズなどの影響により、比較結果であるビットデータS<3>がLOWになる。
【0331】
<時刻t5>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、L、H、L、H、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数20が比較される。この場合、比較結果であるビットデータS<2>がHIGHになる。
【0332】
<時刻t6>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、L、H、L、H、H、L)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数22が比較される。この場合、比較結果であるビットデータS<1>がHIGHになる。
【0333】
<時刻t7>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、L、H、L、H、H、H)
測定対象データA<127:0>に含まれるフェイルビットの数24と参照データB<127:0>に含まれる参照アクティブビット数23が比較される。この場合、比較結果であるビットデータS<0>がHIGHになる。
【0334】
この時点で比較結果である複数のビットデータS<6>、S<5>、S<4>、S<3>、S<2>、S<1>及びS<0>の各々について、LOW、LOW、HIGH、LOW、HIGH、HIGH及びHIGHの論理レベルがラッチ回路357において確定する。ここで、訂正前フェイルビット数S<6:0>は、23を示す。
【0335】
<時刻t8>
フェイルビットデータPF<127:0>のフェイルビット数24が、最初の参照アクティブビット数64未満であるために時刻t1において比較結果であるビットデータS<6>がLOWになっている。従って、訂正前フェイルビット数S<6:0>をそのまま中間フェイルビット数Sd<6:0>にする。複数のビットデータS<6>~S<0>が23を示しているので、23を中間フェイルビット数Sd<7:0>が示すようにする。
【0336】
実際のフェイルビット数24は偶数であり、中間フェイルビット数Sd<6:0>が示す中間フェイルビット数23は奇数であるので、両者の偶奇は不一致であることを制御データOEMatchが示す。
【0337】
従って、プラス1加算器391は、中間フェイルビット数Sd<6:0>により示される訂正前のフェイルビット数23に対して1を加算することにより得た訂正後のフェイルビット数24を示す訂正後フェイルビット数SS<7:0>を出力する。
【0338】
その後、ラッチ信号LATCによりラッチ回路399(
図13参照)において訂正後フェイルビット数SS<7:0>をラッチすることによりフェイルビット数24を示す確定フェイルビット数C<7:0>が確定する。
【0339】
その後、ビットカウント累計部401に含まれる8/nビット加算器415及びラッチ回路417において制御信号CUMによりフェイルビット数の累計値CC<n-1:0>に対して現在フェイルビット測定の対象となっているデータのフェイルビット数24を示す確定フェイルビット数C<7:0>が加算される。
【0340】
[動作例5: フェイルビット数が128である場合]
概略を説明すると、時刻t1において、フェイルビットデータPF<127:0>に含まれるフェイルビットの数128が、最初の参照アクティブビット数64以上であることを検出する。そこで、フェイルビットデータPF<127:0>の全ビットを反転して測定対象データA<127:0>としてビットカウント差動アンプ355に供給する。ここで、測定対象データA<127:0>に含まれる測定対象ビットの数AAは128-128=0である。
【0341】
時刻t2から時刻t7までにおいて、測定対象データA<127:0>に含まれる測定対象ビットの数AAを示す二進数の訂正前フェイルビット数S<6:0>を二分検索法のアルゴリズムに従って求める。
【0342】
時刻t8においては、訂正前フェイルビット数S<6:0>により示されるフェイルビット数ゼロを127から差し引くことにより得た数127を示す中間フェイルビット数Sd<6:0>を得る。
【0343】
また、時刻t8においては、実際のフェイルビット数128の偶奇と中間フェイルビット数Sd<6:0>により示されるフェイルビット数127の偶奇が一致しないので、中間フェイルビット数Sd<6:0>により示されるフェイルビット数127に1を加算することにより正しいフェイルビット数128を示す二進数の確定フェイルビット数C<7:0>を求める
【0344】
次に、時刻毎の動作を順に説明する。
<時刻t1>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(H、L、L、L、L、L、L、L)
フェイルビットデータPF<127:0>と同一である測定対象データA<127:0>に含まれるフェイルビットの数128と参照データB<127:0>に含まれる参照アクティブビット数64が比較される。この場合、比較結果であるビットデータS<6>がHIGHになる。
【0345】
<時刻t2>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、H、L、L、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数0と参照データB<127:0>に含まれる参照アクティブビット数32が比較される。この場合、比較結果であるビットデータS<5>がLOWになる。
【0346】
<時刻t3>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、L、H、L、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数0と参照データB<127:0>に含まれる参照アクティブビット数16が比較される。この場合、比較結果であるビットデータS<4>がLOWになる。
【0347】
<時刻t4>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、L、L、H、L、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数0と参照データB<127:0>に含まれる参照アクティブビット数8が比較される。この場合、比較結果であるビットデータS<3>がLOWになる。
【0348】
<時刻t5>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、L、L、L、H、L、L)
測定対象データA<127:0>に含まれるフェイルビットの数0と参照データB<127:0>に含まれる参照アクティブビット数4が比較される。この場合、比較結果であるビットデータS<2>がLOWになる。
【0349】
<時刻t6>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、L、L、L、L、H、L)
測定対象データA<127:0>に含まれるフェイルビットの数0と参照データB<127:0>に含まれる参照アクティブビット数2が比較される。この場合、比較結果であるビットデータS<1>がLOWになる。
【0350】
<時刻t7>
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、H、L、L、L、L、L、H)
測定対象データA<127:0>に含まれるフェイルビットの数0と参照データB<127:0>に含まれる参照アクティブビット数1が比較される。この場合、比較結果であるビットデータS<0>がLOWになる。
【0351】
この時点で比較結果である複数のビットデータS<6>、S<5>、S<4>、S<3>、S<2>、S<1>及びS<0>の各々について、HIGH、LOW、LOW、LOW、LOW、LOW及びLOWの論理レベルがラッチ回路357において確定する。ここで、訂正前フェイルビット数S<6:0>は、0を示す。
【0352】
<時刻t8>
フェイルビットデータPF<127:0>のフェイルビット数128が、最初の参照アクティブビット数64以上であるために時刻t1において比較結果であるビットデータS<6>がHIGHになっている。従って、訂正前フェイルビット数S<5:0>の各ビットを反転することにより中間フェイルビット数Sd<6:0>を求める。複数のビットデータS<6>~S<0>が0を示しているので、128よりも1だけ少ない127から0を差し引くことにより得た127を中間フェイルビット数Sd<7:0>が示すようにする。
【0353】
実際のフェイルビット数128は偶数であり、中間フェイルビット数Sd<6:0>が示す中間フェイルビット数127は奇数であるので、両者の偶奇は不一致であることを制御データOEMatchが示している。
【0354】
従って、プラス1加算器391は、中間フェイルビット数Sd<6:0>により示される訂正前のフェイルビット数127に対して1を加算することにより得た訂正後のフェイルビット数128を示す訂正後フェイルビット数SS<7:0>を出力する。
【0355】
その後、ラッチ信号LATCによりラッチ回路399(
図13参照)において訂正後フェイルビット数SS<7:0>をラッチすることによりフェイルビット数128を示す確定フェイルビット数C<7:0>が確定する。
【0356】
その後、ビットカウント累計部401に含まれる8/nビット加算器415及びラッチ回路417において制御信号CUMによりフェイルビット数の累計値CC<n-1:0>に対して現在フェイルビット測定の対象となっているデータのフェイルビット数128を示す確定フェイルビット数C<7:0>が加算される。
【0357】
[5.8 ビット圧縮モードにおけるビットカウント差動アンプを利用したビットカウント動作のフロー]
ビット圧縮モードでは、一部の演算処理を省略する。ケース1では、フェイルビット数を求める代わりにフェイルビットが発生しているか否かを示すデータを求める。また、ケース2では、フェイルビット数を求める代わりにフェイルビットが発生しているか否か及び、フェイルビットが発生しているならば、フェイルビット数が偶数であるか奇数であるかを示すデータを求める。
<時刻t1>
データF7からデータF0の全てをLOWにする。つまり、
(F7、F6、F5、F4、F3、F2、F1、F0)
=(L、L、L、L、L、L、L、L)
にする。
これにより、ビットカウント差動アンプ355への測定対象データA<127:0>としてフェイルビットデータPF<127:0>が設定される。また、ビットカウント差動アンプ355への参照データB<127:0>としてゼロが設定される。
【0358】
従って、ビットカウント差動アンプ355は、フェイルビットデータPF<127:0>に含まれるフェイルビットの数をゼロと比較することになる。
【0359】
フェイルビットデータPF<127:0>に含まれるフェイルビットの数がゼロよりも大きければ(すなわち、フェイルビットデータPF<127:0>にフェイルビットが少なくとも1個含まれていれば)、ビットデータS<0>をHIGHに設定する。
【0360】
他方で、フェイルビットデータPF<127:0>に含まれるフェイルビットの数がゼロならば(すなわち、フェイルビットデータPF<127:0>にフェイルビットが全くなければ)、ビットデータS<0>をLOWに設定する。
【0361】
(ケース1)上記の時刻t2から時刻t8における処理をスキップする:
時刻t2から時刻t8における処理をスキップし、時刻t1における上記の処理に付随する処理として複数のビットデータS<6>~S<1>の全てをLOWにする。従って、演算処理時間を圧縮することができる。
【0362】
S<6>がLOWであるので、Sd<0>の論理レベルはS<0>の論理レベルと同一になる。また、ビットデータS<6>~S<1>がLOWであるので、Sd<6:1>の各ビットデータSd<6>~Sd<1>はLOWになる。
【0363】
また、プラス1加算器391では加算を実行しないので、Sd<6:0>をビット拡張したデータが訂正後フェイルビット数SS<7:0>になる。
【0364】
従って、フェイルビットデータPF<127:0>に含まれるフェイルビットの数がゼロよりも大きければ(すなわち、フェイルビットデータPF<127:0>にフェイルビットが少なくとも1個含まれていれば)、訂正後フェイルビット数SS<7:0>は1を示すようになる。他方で、フェイルビットデータPF<127:0>に含まれるフェイルビットの数がゼロならば(すなわち、フェイルビットデータPF<127:0>にフェイルビットが全くなければ)、訂正後フェイルビット数SS<7:0>はゼロを示すようになる。
【0365】
(ケース2)上記の時刻t2から時刻t7における処理をスキップするが時刻t8における処理は実行する:
【0366】
時刻t2から時刻t8における処理をスキップし、時刻t1における上記の処理に付随する処理として複数のビットデータS<6>~S<1>の全てをLOWにする。従って、演算処理時間を圧縮することができる。
【0367】
S<6>がLOWであるので、Sd<0>の論理レベルはS<0>の論理レベルと同一になる。また、ビットデータS<6>~S<1>がLOWであるので、Sd<6:1>の各ビットデータSd<6>~Sd<1>はLOWになる。
【0368】
ここで、ケース1とは異なり、時刻t8において、フェイルビットデータPF<127:0>とSd<0>を入力とした排他的論理和演算処理に基づいたプラス1の演算を実行する。
【0369】
フェイルビットデータPF<127:0>に含まれるフェイルビットの数が1以上の偶数であるときの動作は次のようになる。Sd<0>はHIGHになる。従って、129入力排他的論理和ゲート397には奇数個のHIGHレベルのデータが入力されることになるので、OEMatchがHIGHになる。よって、プラス1加算器391では、プラス1の加算処理(1+1の加算処理)とビット拡張が実行され、訂正後フェイルビット数SS<7:0>は2を示すようになる。
【0370】
フェイルビットデータPF<127:0>に含まれるフェイルビットの数が1以上の奇数であるときの動作は次のようになる。Sd<0>はHIGHになる。従って、129入力排他的論理和ゲート397には偶数個のHIGHレベルのデータが入力されることになるので、OEMatchがLOWになる。よって、プラス1加算器391では、プラス1の加算処理は実行されない(1+0の加算処理は実行される)が、ビット拡張は実行され、訂正後フェイルビット数SS<7:0>は1を示すようになる。
【0371】
フェイルビットデータPF<127:0>に含まれるフェイルビットの数がゼロであるときの動作は次のようになる。Sd<0>はLOWになる。従って、129入力排他的論理和ゲート397にはLOWレベルのデータしか入力されないされることになるので、OEMatchがLOWになる。よって、プラス1加算器391では、プラス1の加算処理は実行されない(0+0の加算処理は実行される)が、ビット拡張は実行され、訂正後フェイルビット数SS<7:0>はゼロを示すようになる。
【0372】
(第2実施形態)
図16は、本発明の第2実施形態に係る半導体記憶装置100Bを示すブロック図である。半導体記憶装置100Bは、ダイナミックメモリである。
【0373】
第1実施形態による半導体記憶装置100Aでは、メモリバンク821-i(i=1、2、3・・・、n)に設けられた前半フェイルビット計数関連部101に含まれるフェイルビット検出部201は、1つのメモリバンク821-iに対応する。また、フェイルビット検出部201は、対応する1つのメモリバンク821-iにおいて発生したフェイルビットを測定対象にする。
【0374】
これに対して、第2実施形態による半導体記憶装置100Bでは、メモリバンク821-i(i=1、2、3・・・、n)以外の場所に設けられたフェイルビット計数関連部105に含まれるフェイルビット検出部201Bは、複数のメモリバンク821-iに対応する。また、フェイルビット検出部201Bは、対応する複数のメモリバンク821-1~821-nにおいて発生したフェイルビットを測定対象にする。
【0375】
図17は、
図16に示すフェイルビット計数関連部105の構成を示す回路図である。
【0376】
図17を参照すると、フェイルビット計数関連部105は、フェイルビット検出部201B、ビットカウント部301及びビットカウント累計部401を備える。
【0377】
フェイルビット計数関連部105に備わるビットカウント部301及びビットカウント累計部401は、第1実施形態による半導体記憶装置100Aの後半フェイルビット計数関連部103に備わるものと同様である。
【0378】
フェイルビット検出部201Bは、第1実施形態による半導体記憶装置100Aの後半フェイルビット計数関連部103に備わるフェイルビット検出部201と基本的な構成は同じであるが、部分的に異なる。
【0379】
そこで以下ではフェイルビット検出部201Bに関する説明のみをする。
【0380】
フェイルビット検出部201Bは、第1実施形態と同様に、16個の排他的論理和ゲート群215を備える。各排他的論理和ゲート群215は、2入力1出力の排他的論理和ゲートを8個備える。
【0381】
また、フェイルビット検出部201Bは、第1実施形態と同様に、16個の論理積ゲート群213を備える。各論理積ゲート群213は、2入力1出力の論理積ゲートを8個備える。
【0382】
更に、第1実施形態とは異なり、フェイルビット検出部201は、16個のデータスクランブル&ラッチ回路211Bを備える。
【0383】
128ビットの書込データWDATAはI/Oゲート217を介して期待シードデータEXPSEED<127:0>として16個のデータスクランブル&ラッチ回路211Bに供給されるが、このときに、期待シードデータEXPSEED<127:0>は、8ビット毎に16グループに分割される。n番目のデータスクランブル&ラッチ回路211(ここで、n=0~6)は、各グループに含まれる8ビットの期待シードデータEXPSEED<n+7:n>に基づいて、期待データEXPDATA<n+7:n>を生成する。期待データEXPDATA<n+7:n>に含まれる8ビットは対応する論理積ゲート群213に含まれる各論理積ゲートの第1入力端子に供給される。
【0384】
各データスクランブル&ラッチ回路211Bにおいては、テストモード信号により指示されたときに、ロウアドレスXADD及びコラムアドレスYADDによる期待シードデータEXPSEED<n+7:0>に対するデータスクランブルが可能化される。テストモード信号によりデータスクランブルが可能化されると、データスクランブル&ラッチ回路211Bにおいては、期待シードデータEXPSEED<n+7:0>の各ビットがロウアドレスXADD及びコラムアドレスYADDの組合せに従って論理レベルが維持され又は反転され、この結果として期待データEXPDATA<n+7:0>が生成される。
【0385】
また、各データスクランブル&ラッチ回路211Bにおいては、テストモード信号により指示されないときには、データスクランブリングは可能化されない。
【0386】
従って、各データスクランブル&ラッチ回路211Bは、テストモード信号により指示されたときには、ロウアドレスXADD及びコラムアドレスYADDの組合せに従って期待シードデータEXPSEED<127:0>をスクランブルすることにより得た期待データEXPDATA<127:0>を出力するが、そうでないときには、期待シードデータEXPSEED<127:0>をスクランブルせず、そのまま書込データWDATA<127:0>として出力する。第2実施形態においても、第1実施形態と同様に、スクランブルされていてもいなくてもスクランブル&ラッチ回路211Bから出力されるデータを期待データEXPDATA<127:0>という。
【0387】
スクランブル&ラッチ回路211Bから出力される合わせて128ビットの期待データEXPDATA<127:0>は、全論理積ゲート群213に含まれる全論理積ゲートの第1入力端子に供給される。
【0388】
また、フェイルビットカウントモードであるときに論理レベルがHIGHになる制御信号BCは、全論理積ゲート群213に含まれる全論理積ゲートの第1入力端子に供給される。
【0389】
各論理積ゲート群213に含まれる各論理積ゲートの出力端子は対応する排他的論理和ゲート群215に含まれる、対応する排他的論理和ゲートの第2入力端子に供給される。
【0390】
128ビットの読出データRDATA<127:0>は8ビット毎に16グループに分割される。各グループに含まれる8ビットの読出データRDATA<8m+7:8m>(ここでm=0~15)の各ビットRDATA<8m+i>(ここで、i=0~7)は各排他的論理和ゲート群215に含まれる各論理和ゲートの第2入力端子に供給される。
【0391】
従って、フェイルビットカウントモードでは、16個の排他的論理和ゲート群215により128ビットの期待データEXPDATA<127:0>と128ビットの読出データRDATA<127:0>の一致をビットごとに確認することができる。信号BCがHIGHであるときには、16個の排他的論理和ゲート群215の出力により構成されるフェイルビットデータPF<127:0>の各ビットは、128ビットの期待データEXPDATA<127:0>と128ビットの読出データRDATA<127:0>の一致/不一致をビット毎に示す論理レベルを持つ。つまり、フェイルビットデータPF<127:0>に含まれるビットデータPF<i>(ここで、i=0~127)は、期待データEXPDATA<127:0>に含まれるビットデータEXPDATA<i>と読出データRDATA<127:0>に含まれるビットデータRDATA<i>が一致するか否かを示す。期待データEXPDATAと読出データRDATAの間で値が一致しないビットがフェイルビットである。
【0392】
なお、フェイルビットを検出するためには、通常はメモリの或る特定のアドレスの特定のビットのセルに書き込まれることになる書込データWDATAとそのセルから読み出された読出データRDATAを比較する。そのために、例えば、フェイルビットを検出する期間における各時刻において、各排他的論理和ゲート群215に含まれる各排他的論理和ゲートにおいては、読出データRDATAのビットとそれに対応する書込データWDATAのビットが正しく対応している必要がある。このように読出データRDATAのビットとそれに対応する書込データWDATAのビットが排他的論理和ゲートにおいて正しく比較されるようにするために、データスクランブル&ラッチ回路211Bが制御される。換言すると、排他的論理和ゲート群215に含まれる各排他的論理和ゲートの第2端子に入力される読出データRDATAのビットに対応するアドレス及びビットの組が、期待データEXPDATAに変換されてから排他的論理和ゲート群215に含まれる各排他的論理和ゲートの第1端子に入力される書込データWDATAのビットに対応するアドレス及びビットの組に対して各排他的論理和ゲートにおいてタイミングが一致するように、データスクランブル&ラッチ回路211が制御される。
【0393】
従って、データスクランブル&ラッチ回路211は、書込データWDATAを読出データRDATAと比較できるように適切な時間だけ遅延させて期待データEXPDATAとして出力することになる。
【0394】
フェイルビット検出部201Bから出力されたフェイルビットデータPF<127:0>は、ビットカウント部301に供給される。
【0395】
以上説明した各実施形態は、本発明の理解を容易にするために記載されたものであって、本発明を限定するために記載されたものではない。したがって、上記各実施形態に開示された各要素は、本発明の技術的範囲に属する全ての設計変更や均等物をも含む趣旨である。
【0396】
例えば、上述した各実施形態では、半導体記憶装置としてダイナミックメモリを一例として説明したが、本発明はこの場合に限定されない。例えば、半導体記憶装置は、スタティックメモリであってもよいし、FRAM(登録商標)(ferroelectric random access memory)であってもよい。
【0397】
また例えば、上述した各実施形態では、検索法として二分検索法を一例として説明したが、本発明はこの場合に限定されない。例えば、検索法として線形検索法を用いてもよい。このような場合であっても、二分検索法を用いた場合と同様な誤りがビット比較部において生じる可能性があるが、ビット訂正部による訂正が可能である。
【0398】
また、フェイルビット数が64以上である場合であっても、フェイルビットデータPF<127:0>そのものを測定対象データA<127:0>としてもよい。この場合、ビット比較部341を訂正前フェイルビット数S<7:0>を出力できるように拡張する。そして、訂正前フェイルビット数S<6:0>を拡張した訂正前フェイルビット数S<7:0>をそのまま中間フェイルビット数Sd<6:0>を拡張した中間フェイルビット数Sd<7:0>として利用する。つまり、バッファ393及び全ての排他的論理和ゲート395を省略する。プラス1加算器391を中間フェイルビット数Sd<7:0>を入力して訂正後データ<7:0>を出力できるように拡張する。そして、拡張されたプラス1加算器391は、フェイルビットデータPF<127:0>の偶奇と中間フェイルビット数Sd<7:0>の偶奇が一致しないとき(具体的には、フェイルビットデータPF<127:0>に対して中間フェイルビット数Sd<7:0>が1だけ小さいとき)に中間フェイルビット数Sd<7:0>に1を加算することにより訂正後フェイルビット数SS<7:0>を求める。
【0399】
また、上述した各実施形態では、各データが特定のビット数を持つ構成の説明をしたが、本発明はこの場合に限定されない。ビット数は他の値を持ってもよい。ビット数に限らず、メモリセルのコラム数、ロウ数、ゲートの数、ゲートの入力数、加算器の段数、1個の加算器に含まれる全加算器の個数、1個の加算器に含まれる全加算器の個数、回路ブロックに含まれるゲートの個数、ラッチ回路群に含まれるラッチ回路の数、ビットカウント差動アンプの入力ビット数などもデータに合わせて適宜変更してよい。
【0400】
さらに、上述した各実施形態では、期待データ準備部(データスクランブル&ラッチ回路211)において期待データEXPDATA<127:0>を準備する(すなわち、期待データEXPDATA<127:0>を半導体記憶装置100A内で生成する)場合を一例として説明したが、本発明はこの場合に限定されない。例えば、期待データEXPDATA<127:0>が外部から入力される場合には、半導体記憶装置100Aの前半フェイルビット計数関連部101又はフェイルビット計数関連部105は、入力された期待データEXPDATA<127:0>を取得するように構成されてもよい。
【符号の説明】
【0401】
101…前半フェイルビット計数関連部
103…後半フェイルビット計数関連部
105…フェイルビット計数関連部
201、201B…フェイルビット検出部
301…ビットカウント部
401…ビットカウント累計部
【手続補正書】
【提出日】2024-07-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
半導体記憶装置からの読出データと期待データとの一致/不一致をビット単位で検出し、検出されたビット個々の一致/不一致を示すパス・フェイル情報からなるフェイルビットデータを出力するフェイルビット検出部と、
前記フェイルビットデータのうち、前記読出データと前記期待データの不一致を示すフェイルビット数、あるいは、一致の数を示すパスビット数を計数するビットカウント部と、
それぞれ前記フェイルビット検出部を含む複数のメモリバンクと、を備え、
前記ビットカウント部は、前記複数のメモリバンク以外の部分に設けられている、
半導体記憶装置。
【請求項2】
前記フェイルビット検出部は、
前記読出データと前記期待データとの間でビット単位の排他的論理和演算をすることにより、前記フェイルビットデータを生成する排他的論理和ゲート群を備える、
請求項1に記載の半導体記憶装置。
【請求項3】
前記半導体記憶装置への書込データであって、前記読出データに対応する前記書込データを前記期待データとして準備する期待データ準備部を更に備える、
請求項2に記載の半導体記憶装置。
【請求項4】
前記期待データ準備部は、前記書込データに対して前記読出データが論理反転したときに一致を示すべきビットについては、前記書込データの論理レベルを反転して前記期待データにする、
請求項3に記載の半導体記憶装置。
【請求項5】
前記期待データ準備部は、前記書込データを前記読出データと比較できるようにラッチする、
請求項3に記載の半導体記憶装置。
【請求項6】
前記ビットカウント部は、
前記フェイルビットデータのうち自身に割り当てられている部分的フェイルビットデータに含まれるフェイルビットの数をカウントし、カウント値を部分的フェイルビット数として出力する複数のサブフェイルビットカウンタと、
前記複数のサブフェイルビットカウンタがそれぞれ出力する複数の部分的フェイルビット数を相互に加算することにより前記フェイルビットの数を求める加算器と、
を備える、
請求項1に記載の半導体記憶装置。
【請求項7】
前記複数のサブフェイルビットカウンタの各々は、
自サブフェイルビットカウンタに割り当てられている前記部分的フェイルビットデータに含まれる全ビットの論理積をとり、該論理積を示すビットを、前記部分的フェイルビット数を示す二進数データの最上位ビットとして出力する第1ブロックと、
自サブフェイルビットカウンタに割り当てられている前記部分的フェイルビットデータに対応する前記部分的フェイルビット数に対応した電圧を参照電圧として生成する第2ブロックと、
前記参照電圧と、前記部分的フェイルビット数を示す前記二進数データの自ブロックに割り当てられているビットの重みに対応する電圧との比較の結果を、前記部分的フェイルビット数を示す前記二進数データの第2上位ビットとして出力する第3ブロックと、
前記参照電圧と、前記部分的フェイルビット数を示す前記二進数データの自ブロックに割り当てられているビットの重み及び前記二進数データの自ブロックに割り当てられているビットよりも上位の1以上のビットの値により決まる電圧との比較の結果を、前記部分的フェイルビット数を示す前記二進数データの第2上位ビット未満の自ブロックに割当てられているビットとして出力する1又は複数の第4ブロックと、
を備える、
請求項6に記載の半導体記憶装置。
【請求項8】
前記複数のサブフェイルビットカウンタの各々は、
前記部分的フェイルビット数を示す前記二進数データの前記最上位ビットの値が、前記部分的フェイルビット数が最大値であるときにとる値と同一であるときに、前記第3ブロック及び前記1又は複数の第4ブロックの動作を停止する手段を更に備える、
請求項7に記載の半導体記憶装置。
【請求項9】
前記ビットカウント部は、
複数のビットを含む測定対象データの各ビットと複数のビットを含む参照データの各ビットを入力し、前記測定対象データに含まれる第1論理レベルを持つビットの数と前記参照データに含まれる前記第1論理レベルを持つビットの数との大小関係を示す判定結果(大小データ)を出力するビットカウント差動アンプと、
前記フェイルビットデータを前記測定対象データとして前記ビットカウント部に供給する測定対象データ設定部と、
前記参照データに含まれる複数のビットのうち参照アクティブビット数のビットの論理レベルを前記第1論理レベルにする参照データ設定部と、
二分検索法のアルゴリズムにより前記ビットカウント差動アンプからの出力に基づいて前記参照アクティブビット数を逐次変化させながら前記測定対象データ設定部、前記参照データ設定部及び前記ビットカウント差動アンプを動作させ、該動作により前記ビットカウント差動アンプから逐次出力される複数の前記大小データに基づいて前記フェイルビットの数を求める計算部と、
を備える、
請求項1に記載の半導体記憶装置。
【請求項10】
前記ビットカウント部は、
前記計算部が求めた前記フェイルビットの数を訂正前フェイルビット数として入力し、該訂正前フェイルビット数と前記フェイルビットデータに含まれる前記フェイルビットの数とが同一であるならば前記訂正前フェイルビット数をそのまま訂正後フェイルビット数として出力し、同一でないならば、前記訂正前フェイルビット数を訂正処理にかけることにより得た数を訂正後フェイルビット数として出力するビット訂正部を更に備える、
請求項9に記載の半導体記憶装置。
【請求項11】
前記ビット訂正部は、
前記訂正前フェイルビット数の偶奇と前記フェイルビットデータに含まれる前記フェイルビットの数の偶奇の一致/不一致に基づいて、訂正処理の実行/不実行を判断し、
訂正処理においては、前記訂正前フェイルビット数に対して1だけ異なった値を前記訂正後フェイルビット数にする、
請求項10に記載の半導体記憶装置。
【請求項12】
前記測定対象データ設定部は、前記フェイルビットデータに含まれる前記フェイルビットの数が所定数以上であるときに、前記フェイルビットの数が前記所定数未満になるように前記フェイルビットデータを修正したデータを前記測定対象データとして前記ビットカウント差動アンプに供給し、
前記計算部は、前記ビットカウント差動アンプから逐次出力される複数の出力と前記所定数に基づいて前記フェイルビットの数を求める、
請求項9に記載の半導体記憶装置。
【請求項13】
前記ビットカウント部は、前記第1論理レベルを持つビットの数がゼロである前記参照データと前記フェイルビットデータとの比較結果に基づき、前記フェイルビットデータに含まれるビットのうち前記第1論理レベルを持つビットの数がゼロであるか又は1以上であるかを示すデータを出力する、
請求項9に記載の半導体記憶装置。
【請求項14】
前記ビットカウント部は、前記第1論理レベルを持つビットの数がゼロである前記参照データと前記フェイルビットデータとの比較結果と、前記フェイルビットデータに含まれる前記第1論理レベルを持つビットの数の偶奇に基づき、前記フェイルビットデータに含まれるビットのうち前記第1論理レベルを持つビットの数がゼロであるのか、1以上の偶数であるのか又は1以上の奇数であるのかを示すデータを出力する、
請求項9に記載の半導体記憶装置。
【請求項15】
半導体記憶装置からの読出データと期待データとの一致/不一致をビット単位で検出し、検出されたビット個々の一致/不一致を示すパス・フェイル情報からなるフェイルビットデータを出力するフェイルビット検出部と、
前記フェイルビットデータのうち、前記読出データと前記期待データの不一致を示すフェイルビット数、あるいは、一致の数を示すパスビット数を計数するビットカウント部と、を備え、
前記ビットカウント部は、
前記フェイルビットデータのうち自身に割り当てられている部分的フェイルビットデータに含まれるフェイルビットの数をカウントし、カウント値を部分的フェイルビット数として出力する複数のサブフェイルビットカウンタと、
前記複数のサブフェイルビットカウンタがそれぞれ出力する複数の部分的フェイルビット数を相互に加算することにより前記フェイルビットの数を求める加算器と、を備える、
半導体記憶装置。