(57)【要約】【課題】冗長線を有するメモリにおいてＬＳＩが複雑になる中、外部テスタでテストを行うことが困難になってきた。また、メモリの高速化に伴い、実速度でメモリテストを行うことが困難になってきた。【解決手段】メモリセル個々の良否を評価するＢＩＳＴ回路２０と、当該ＢＩＳＴ回路２０から渡される異常セルのアドレス情報を格納するバッファ３１とをＲＡＭ１０と同じチップ上に搭載し、ＢＩＳＴ回路２０から渡される異常セルのアドレス情報のうち、置換する冗長セルを決定するために必要最低限のアドレス情報をリペアサーチ回路３０によって確定してこの確定したアドレス情報のみをバッファ３１に格納する。これら格納されたアドレス情報をもとに、０次元の冗長構成の場合について、オンチップでハードウェアにて最終のリペアアドレスを計算し、セルフリペアが出来るようにする。【選択図】        図１
2004296054.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルを行列状に配置したメモリコアと、当該メモリコアの中に発生した異常セルをリペアするための冗長セルからなる冗長線を有するブロックを単位とし、この単位ブロックがさらに１つ、あるいは複数行列状に配置されてなるメモリ部と、
前記メモリ部と同じチップ上に搭載され、前記メモリセル個々の良否を評価する内蔵セルフテスト手段と、
前記メモリ部と同じチップ上に搭載された記憶手段を有し、前記内蔵セルフテスト手段から渡される異常セルの行方向、列方向のアドレスペアのうち、リペアする冗長線を決定するために必要最低限のアドレスペアのみを前記記憶手段に格納する格納手段と
を備えたことを特徴とする半導体記憶装置。
【請求項２】
前記格納手段は、前記単位ブロック毎に設けられている
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
行方向の冗長線の本数をｍ、列方向の冗長線の本数をｎとするとき、
前記記憶手段は、前記アドレスペアを格納するバッファ量として各単位ブロック毎に２×ｍ×ｎ個のバッファ量を有する
ことを特徴とする請求項２記載の半導体記憶装置。
【請求項４】
前記格納手段は、前記記憶手段に格納されているアドレスペアについて、行アドレスが同じ値を持つアドレスペアおよび列方向アドレスが同じ値を持つアドレスペアそれぞれの個数を示すフラグを有し、当該フラグに基づいて最終リペアアドレスとして確定すべきアドレスか否かを判断する
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項５】
前記格納手段は、前記記憶手段に格納されているアドレスペアについて、行アドレスが同じ値を持つアドレスペアおよび列方向アドレスが同じ値を持つアドレスペアそれぞれの個数を示すフラグを有し、当該フラグに基づいて最終リペアアドレスとして確定すべきアドレスか否かを判断する
ことを特徴とする請求項２記載の半導体記憶装置。
【請求項６】
前記格納手段は、前記記憶手段に格納されているアドレスペアについて、行アドレスが同じ値を持つアドレスペアおよび列方向アドレスが同じ値を持つアドレスペアそれぞれの個数を示すフラグを有し、当該フラグに基づいて最終リペアアドレスとして確定すべきアドレスか否かを判断する
ことを特徴とする請求項３記載の半導体記憶装置。
【請求項７】
前記格納手段は、前記記憶手段に格納されている行アドレス、列アドレスのうち、リペアアドレスとして決定した行リペアアドレスおよび列リペアアドレスを識別するビットを有する
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項８】
前記格納手段は、前記記憶手段に格納されている行アドレス、列アドレスのうち、リペアアドレスとして決定した行リペアアドレスおよび列リペアアドレスを識別するビットを有する
ことを特徴とする請求項２記載の半導体記憶装置。
【請求項９】
前記格納手段は、前記記憶手段に格納されている行アドレス、列アドレスのうち、リペアアドレスとして決定した行リペアアドレスおよび列リペアアドレスを識別するビットを有する
ことを特徴とする請求項３記載の半導体記憶装置。
【請求項１０】
複数のメモリセルを行列状に配置したメモリコアと、当該メモリコアの中に発生した異常セルをリペアするための冗長セルからなる冗長線を有するブロックを単位とし、この単位ブロックがさらに１つ、あるいは複数行列状に配置されてなるメモリ部と、
前記メモリ部と同じチップ上に搭載され、前記メモリセル個々の良否を評価する内蔵セルフテスト手段と、
前記メモリ部と同じチップ上に搭載された記憶手段を有し、前記内蔵セルフテスト手段から渡される異常セルの行方向、列方向のアドレスペアのうち、リペアする冗長線を決定するために必要最低限のアドレスペアのみを前記記憶手段に格納する格納手段と、
前記メモリ部と同じチップ上に搭載され、前記記憶手段に格納されたアドレスペアを基に、異常セルをリペアする冗長線の最終リペアアドレス情報を計算する内蔵セルフリペア手段と
を備えたことを特徴とする半導体記憶装置。
【請求項１１】
前記内蔵セルフリペア手段は、前記単位ブロック毎に設けられている
ことを特徴とする請求項１０記載の半導体記憶装置。
【請求項１２】
前記メモリ部は、異常セルをリペアする冗長線を選択するヒューズを有し、
前記内蔵セルフリペア手段は、その計算した最終リペアアドレス情報を基に前記ヒューズを特定する
ことを特徴とする請求項１０記載の半導体記憶装置。
【請求項１３】
前記内蔵セルフリペア手段は、前記記憶手段に格納された異常セルのアドレスペアのすべてについて、まず列方向冗長線によりリペアされるか、行方向冗長線によりリペアされるかをあらわす任意のパターンセットを与えてリペア可能か否かを判断し、リペア可能でなければ、次のパターンセットを与えていき、リペア可能なパターンセットが見つかれば、そのときのパターンセットを基にリペアする冗長線の最終リペアアドレス情報を作成する
ことを特徴とする請求項１１記載の半導体記憶装置。
【請求項１４】
前記内蔵セルフリペア手段は、１ビットのフラグを用い、そのフラグの内容によって各異常セルを行方向冗長線でリペアするか、列方向冗長線でリペアするかを表す
ことを特徴とする請求項１３記載の半導体記憶装置。
【請求項１５】
前記１ビットのフラグは、前記記憶手段に格納されるアドレスペア毎に用意されている
ことを特徴とする請求項１４記載の半導体記憶装置。
【請求項１６】
前記内蔵セルフリペア手段は、パターンセットを与えた際にリペア可能か否かを判断するにあたって、パターンセットによって示された異常セルを置換する冗長線のアドレス情報を格納するアドレス格納手段を有し、当該アドレス格納手段に格納されていくアドレス情報の数を冗長線の数と比較することにより、前記パターンセットがリペア可能なパターンか否かを判別する
ことを特徴とする請求項１３記載の半導体記憶装置。
【請求項１７】
前記ヒューズは、前記内蔵セルフリペア手段によってリペアアドレスが特定されたときに、その旨の情報がセットされることによって対応する冗長線を選択する電気的ヒューズである
ことを特徴とする請求項１２記載の半導体記憶装置。
【請求項１８】
前記電気的ヒューズはレジスタからなる
ことを特徴とする請求項１７記載の半導体記憶装置。
【請求項１９】
前記レジスタが複数個チェーン状に接続され、個々のレジスタには前記内蔵セルフリペア手段が計算した最終リペアアドレス情報がシフト動作によって転送される
ことを特徴とする請求項１７記載の半導体記憶装置。
【請求項２０】
前記電気的ヒューズは不揮発性メモリからなる
ことを特徴とする請求項１７記載の半導体記憶装置。
【請求項２１】
前記ヒューズは、機械的ヒューズと電気的ヒューズとからなり、両ヒューズが切り替えて用いられる
ことを特徴とする請求項１７記載の半導体記憶装置。
【請求項２２】
複数のメモリセルを行列状に配置したメモリコアと、当該メモリコアの中に発生した異常セルをリペアするための冗長セルからなる冗長線を有するブロックを単位とし、この単位ブロックがさらに１つ、あるいは複数行列状に配置されてなるメモリ部を備えた半導体記憶装置における冗長線決定方法であって、
前記メモリ部と同じチップ上にて前記メモリセル個々の良否を評価し、異常セルの行方向、列方向のアドレスペアのうち、リペアする冗長線を決定するために必要最低限のアドレスペアのみを、前記メモリ部と同じチップ上に搭載された記憶手段に格納する処理をハードウェアにて実行する第１のステージと、
前記記憶手段に記憶されているアドレスペアを基に、異常セルをリペアする冗長線の最終リペアアドレス情報を確定する処理をソフトウェアにて実行する第２のステージと
を有することを特徴とする冗長線決定方法。
【請求項２３】
前記冗長線が行方向または列方向の複数の単位ブロックに共通に使用されている場合において、
前記複数の単位ブロックについて各単位ブロック毎に可能な限り異常セルをリペアする冗長線のアドレス情報をまず確定し、
その確定したアドレス情報を他の単位ブロックにも与え、この与えたアドレス情報を用いて前記複数の単位ブロックについて異常セルをリペアする冗長線の最終リペアアドレス情報を確定する
ことを特徴とする請求項２２記載の冗長線決定方法。
【請求項２４】
前記複数の単位ブロックのうちの一つの単位ブロックについてリペア可能な冗長線のアドレスパターンセットを見つけ、その見つけたアドレスパターンセットによって他の単位ブロックに制約を与えてその制約下において、当該他のブロックについてリペア可能な冗長線のアドレスパターンセットを発生し、その結果を基にさらに他の単位ブロックに制約を課すという処理を繰り返して実行する
ことを特徴とする請求項２２記載の冗長線決定方法。
【請求項２５】
複数のメモリセルを行列状に配置したメモリコアと、当該メモリコアの中に発生した異常セルをリペアするための冗長セルからなる冗長線を有するブロックを単位とし、この単位ブロックがさらに１つ、あるいは複数行列状に配置されてなるメモリ部と、
前記メモリ部と同じチップ上に搭載され、前記メモリセル個々の良否を評価する内蔵セルフテスト手段と、
前記メモリ部と同じチップ上に搭載された記憶手段を有し、前記内蔵セルフテスト手段から渡される異常セルの行方向、列方向のアドレスペアのうち、リペアする冗長線を決定するために必要最低限のアドレスペアのみを前記記憶手段に格納する格納手段とを備えた半導体記憶装置におけるセルフリペア方法であって、
前記記憶手段に蓄積された異常セルのアドレスペアのすべてについて、まず、列方向冗長線によりリペアされるか、行方向冗長線によりリペアされるかを表す任意のパターンセットを与えてリペア可能か否かを判断し、リペア可能でなければ、次のパターンセットを与えていき、リペア可能なパターンセットが見つかれば、そのときのパターンセットを基にリペアする冗長線の最終リペアアドレス情報を作成する
ことを特徴とするセルフリペア方法。
【請求項２６】
前記記憶手段に蓄積された異常セルのアドレスペアのすべてについて、まず、列方向冗長線によりリペアされるか、行方向冗長線によりリペアされるかを表す任意のパターンセットを与えてリペア可能か否かを判断し、リペア可能でなければ、次のパターンセットを与えていき、リペア可能なパターンセットが見つかれば、そのときのパターンセットを基にリペアする冗長線の最終リペアアドレス情報を作成する処理を前記単位ブロック毎に行う
ことを特徴とする請求項２５記載のセルフリペア方法。
【請求項２７】
前記パターンセットが示す異常セルをリペアする冗長線のアドレス情報を格納し、その格納していくアドレス情報の数を冗長線の数と比較することにより、前記パターンセットがリペア可能なパターンか否かを判別する
ことを特徴とする請求項２５記載のセルフリペア方法。
【請求項２８】
前記リペアする冗長線のアドレス情報を作成する処理を、前記半導体記憶装置の電源を投入した際に行う
ことを特徴とする請求項２５記載のセルフリペア方法。
【請求項２９】
前記リペアする冗長線のアドレス情報を作成する処理を、定期的あるいは異常セルの発生時に行う
ことを特徴とする請求項２５記載のセルフリペア方法。
【請求項３０】
前記冗長線が行方向または列方向の複数の単位ブロックに共通に使用されている場合において、
前記複数の単位ブロックの個々のアドレス情報を、前記複数の単位ブロックのいずれか一つの単位ブロック内のアドレス情報に変換し、複数の単位ブロックをアドレスマップ上で重ね合わせてあたかも一つの単位ブロックのように見せて、その変換したアドレス情報を基に前記リペアする冗長線のアドレス情報を作成する処理を行う
ことを特徴とする請求項２５記載のセルフリペア方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の半導体記憶装置、およびその冗長線決定方法並びにセルフリペア方法に関し、特に不良（欠陥）メモリセルをあらかじめ搭載された冗長メモリセルに置換するための冗長サーチ回路を備えた半導体記憶装置、およびその冗長線決定方法並びにセルフリペア方法に関する。
【０００２】
【従来の技術】
ＤＲＡＭ等の半導体記憶装置においては、近年、集積度が非常に増大してきており、それに伴って歩留まりが製造上大きな課題になってきている。歩留まりを１００％にすることは現実問題として不可能に近く、不良のメモリセル（以下、「異常ビット」と呼ぶ場合もある）が存在することを前提としているのが現状である。しかし、不良のメモリセルが存在すれば、当然製品として出荷する訳にはいかない。
【０００３】
したがって、実際には、スペアのメモリセルを幾つか用意しており、不良のメモリセルがみつかれば、これをスペアのメモリセルで置換することで、不良チップの救済を図っている。具体的には、冗長線としてスペアのメモリセルを余分に用意しておき、不良のメモリセルがあれば、それをビット線あるいはアドレス線単位でスペアのメモリセルと置換することによって実現している。従来、メモリセルの良／不良の判断は、工場出荷段階において、外部のメモリテスタを用いて行われていた。
【０００４】
一方、近年、ＬＳＩ技術が飛躍的に向上し、それに伴い複数のメモリとロジック部を同時にＬＳＩチップ上に混載するケースが増え、個々のメモリを独立してテストすることが事実上困難になってきている。また、ＬＳＩの実行速度が速くなるにつれ、外部のメモリテスタを用いてテスト評価することが難しい。そのため、ＬＳＩ内蔵型のメモリテスト手法が不可欠となっている。また、外部のメモリテスタを用いてテスト評価することができたとしても、そのようなメモリテスタは非常に高価である。したがって、ＬＳＩ製作において、テストにかかるコストが近年非常に増大しつつあることから、ＬＳＩの実行速度で高速にテストができ、しかも安価に実現できる方法が望まれている。
【０００５】
半導体記憶装置のテスト評価に関しては、先述したように、１ビット（メモリセル）ごとにメモリセルの良／不良の評価をしていくことになるが、その評価を行う部分をＬＳＩに内蔵したものを一般にＢＩＳＴ（ｂｕｉｌｔ−ｉｎ  ｓｅｌｆ  ｔｅｓｔ；内蔵セルフテスト）と呼んでいる。現状は、市販のテスト回路はＳＲＡＭ向けが主で、ＤＲＡＭ向けは、各メーカーが、それぞれ独自のＤＲＡＭアーキテクチャ用に開発している。
【０００６】
ＢＩＳＴ回路は、メモリに異常（欠陥あるいは不良）ビットがあるか、異常ビットがあれば、どのアドレスのビット（メモリセル）に異常があるかを調べるためのものである。半導体記憶装置には、ＢＩＳＴ回路で見つけた異常ビットを修復するためにダミーのビット線、ワード線が用意されている。このダミーのビット線、ワード線を冗長線と呼ぶ。ＢＩＳＴ回路では、異常ビットを見つけるだけの処理が行われる。したがって、冗長線をどのように使用するかを実際に決定するのはその後の処理になる。
【０００７】
冗長線は複数本、コラム（ＣＯＬＵＭＮ）方向とロウ（ＲＯＷ）方向に用意されている。したがって、どの異常ビットをどの冗長線で補間するかを決定しなければならない。このように、いずれかの冗長線で異常ビットを補間することをリペアと呼び、また異常ビットを補間するのにどの冗長線を使用するかを決定するプロセスをリペアサーチと呼び、さらにそのサーチ結果を基にチップ上でリペアを完了することをセルフリペアと呼ぶ。
【０００８】
外部のメモリテスタを用いる場合、リペアサーチの計算を外部のメモリテスタのコンピュータを使用して行っている（例えば、特許文献１参照）。また、内蔵するＢＩＳＴ回路に対して、異常ビットが存在するか否かの評価機能に加えて、異常ビットを補間するのにどの冗長線を使用するかを決定するリペアサーチ（冗長解析）機能をも持たせている（例えば、特許文献２参照）。
【０００９】
【特許文献１】
特開平７−１４６３４０号公報
【特許文献２】
特開２００２−１１７６９７号公報
【００１０】
【発明が解決しようとする課題】
しかしながら、ＢＩＳＴ回路を内蔵したＬＳＩの場合でも、特許文献１記載の従来技術のように、各々の異常ビットの情報を外部に取り出し、外部のコンピュータで計算させる構成を採ると、すべての各アドレスについてビットの正常／異常の情報を外部コンピュータのメモリ上にもたせることになるため、メモリ容量を多量に消費し、計算にも非常に時間がかかる。
【００１１】
また、特許文献２記載の従来技術のように、内蔵するＢＩＳＴ回路にリペアサーチ機能を持たせた場合であっても、リペア可能な組み合わせとして複数（この例では、６種類）の組み合わせが考えられ、それらのすべての組み合わせについてアドレスを格納する場所を用意して、６種類すべてについて同時にリペア可能性について確認する手法を採っているため、回路規模がそれだけ大きくなる。
【００１２】
本発明は、上記課題に鑑みてなされたものであって、リペアする冗長線を決定するために必要な最低限のアドレスペアのみを記憶手段に格納する格納手段を有する半導体記憶装置を提供することを目的とする。
【００１３】
本発明はまた、格納手段の結果を基に、異常セルをリペアする冗長線の最終リペアアドレス情報を確定する処理をソフトウェアにて実行する第２のステージを有する冗長線決定方法を提供することを目的とする。
【００１４】
本発明はさらに、格納手段の結果を基に、小さな回路規模にて最終的なリペアアドレスまでオンチップにてハードウェア的に処理することが可能な冗長線決定法を用いたセルフリペア方法を提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明による半導体記憶装置は、複数のメモリセルを行列状に配置したメモリコアと、当該メモリコアの中に発生した異常セルをリペアするための冗長セルからなる冗長線を有するブロックを単位とし、この単位ブロックがさらに１つ、あるいは複数行列状に配置されてなるメモリ部と、前記メモリ部と同じチップ上に搭載され、前記メモリセル個々の良否を評価する内蔵セルフテスト手段と、前記メモリ部と同じチップ上に搭載された記憶手段を有し、前記内蔵セルフテスト手段から渡される異常セルの行方向、列方向のアドレスペアのうち、リペアする冗長線を決定するために必要最低限のアドレスペアのみを前記記憶手段に格納する格納手段とを備えたことを特徴としている。ここで言う必要最低限のアドレスペアとは、例えば、行方向の冗長線の本数をｍ、列方向の冗長線の本数をｎとするとき、前記記憶手段は、前記アドレスペアを格納するバッファ量として各単位ブロック毎に２×ｍ×ｎ個のバッファ量を有することを意味する。
【００１６】
上記構成の半導体記憶装置において、メモリ部は、単位ブロックが１つ、あるいは複数行列状に配置されてなり、個々の単位ブロックは行列状に配置された複数のメモリセルと共に、異常セルをリペアするための冗長セルからなる冗長線を有している。内蔵セルフテスト手段は、メモリ部の個々のメモリセルの良否を評価し、異常セルのアドレスペアを格納手段に渡す。これを受けて、格納手段は、異常セルをリペアする冗長線を決定するために必要最低限のアドレスペアのみを記憶手段に格納する。このように、必要最低限のアドレスペアのみを格納することで、異常セルのアドレスペアのすべてを格納する場合に比べてメモリ容量が少なくて済む。また、この格納したアドレスペアに基づいて、異常セルをリペアする冗長線のアドレス情報を計算するための処理を高速で実行可能となる。
【００１７】
本発明による他の半導体記憶装置は、複数のメモリセルを行列状に配置したメモリコアと、当該メモリコアの中に発生した異常セルをリペアするための冗長セルからなる冗長線を有するブロックを単位とし、この単位ブロックがさらに１つ、あるいは複数行列状に配置されてなるメモリ部と、前記メモリ部と同じチップ上に搭載され、前記メモリセル個々の良否を評価する内蔵セルフテスト手段と、前記メモリ部と同じチップ上に搭載された記憶手段を有し、前記内蔵セルフテスト手段から渡される異常セルの行方向、列方向のアドレスペアのうち、リペアする冗長線を決定するために必要最低限のアドレスペアのみを前記記憶手段に格納する格納手段と、前記メモリ部と同じチップ上に搭載され、前記記憶手段に格納されたアドレスペアを基に、異常セルをリペアする冗長線の最終リペアアドレス情報を計算する内蔵セルフリペア手段とを備えたことを特徴としている。
【００１８】
上記構成の他の半導体記憶装置において、メモリ部は、単位ブロックが１つ、あるいは複数行列状に配置されてなり、個々の単位ブロックは行列状に配置された複数のメモリセルと共に、異常セルをリペアするための冗長セルからなる冗長線を有している。内蔵セルフテスト手段は、メモリ部の個々のメモリセルの良否を評価し、異常セルのアドレスペアを格納手段に渡す。これを受けて、格納手段は、異常セルをリペアする冗長線を決定するために必要な最低限のアドレスペアのみを記憶手段に格納する。そして、内蔵セルフリペア手段は、記憶手段に格納されているアドレスペアを基に、異常セルをリペアする冗長線のアドレス情報を計算する。その際、前述のように、必要最低限のアドレスペアのみを格納するようにすることで、異常セルのアドレスペアのすべてを格納する場合に比べて、メモリ容量が少なくて済む分だけ回路規模を小さくできる。また、内蔵セルフリペア手段についてもメモリ部と同じチップ上に搭載されていることで、メモリ部の実行速度で計算処理を行うことができるため、異常セルをリペアする冗長線のアドレス情報を計算するための処理を実動作速度で実行可能となる。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００２０】
［第１実施形態］
図１は、本発明の第１実施形態に係る半導体記憶装置の構成例を示すブロック図である。図１から明らかなように、第１実施形態に係る半導体記憶装置（ＬＳＩ）は、ＤＲＡＭやＳＲＡＭ等のＲＡＭ（メモリ部）１０、ＢＩＳＴ（内蔵セルフテスト）回路２０、および格納手段としてのリペアサーチ（冗長解析）回路３０を有する。これら構成要素は同一のＬＳＩチップ上に搭載されて構成されている。
【００２１】
ＲＡＭ１０は、一般に、図２に示すように、複数のメモリセルが行列状に配置されてなるメモリコアと、当該メモリコアの中に発生した異常セルをリペアするための冗長セルからなる冗長線とを有する個々の小さい単位ブロック（以下、「冗長ブロック」と呼ぶ）１１からなり、これら冗長ブロック１１がさらに行列状に多数（１つの場合もある）配列された構成となっている。ここで、理想的には、個々の冗長ブロック１１毎にロウ（ＲＯＷ）、コラム（ＣＯＬＵＭ）それぞれに対してＡｌ（アルミ）等の配線による機械的ヒューズ１２，１３を用い、個々の冗長ブロック独立にリペアできるのが好ましい。
【００２２】
しかし、実際にはヒューズ１２，１３のサイズが大きいため、実装上の問題から、複数の冗長ブロックに対して冗長線を共通に使用することによって冗長ブロックをグループ化し、各グループ毎にヒューズ１２，１３を用意した構造を採っている。具体的には、列毎に複数の冗長ブロックを貫く所謂串刺しの形でロウ冗長線１４を、行毎に複数の冗長ブロックを串刺しの形でコラム冗長線１５をそれぞれ配線し、それぞれの冗長線１４，１５に対してヒューズ１２，１３を設けている。
【００２３】
ＢＩＳＴ回路２０は、上記構成のＲＡＭ１０におけるメモリセル個々の良否を評価する、具体的には個々の冗長ブロック１１中に異常ビット（欠陥メモリセルあるいは不良メモリセル）があるか否かを調べ、異常ビットがあれば、どのアドレスのビットに異常があるかをＬＳＩ実行速度で高速に評価する。このＢＩＳＴ回路２０で検出された異常ビットのアドレス情報は、ＢＩＳＴ回路２０からリペアサーチ回路３０へ渡される。
【００２４】
リペアサーチ回路３０は、ＢＩＳＴ回路２０から渡される異常ビットのアドレス情報をリアルタイムに処理し、異常セルをリペアするのに使用する冗長線（冗長セル）を決定するために必要最低限のアドレス情報のみをＬＳＩチップ上に設けられたバッファ（メモリ）３１に蓄える。異常ビットのアドレス情報はロウ、コラムのアドレスデータのペアで表される。このアドレスデータのペアをＸ，Ｙアドレスと呼ぶこととする。
【００２５】
このように、個々の冗長ブロック１１中に異常ビットが存在するか否かをＢＩＳＴ回路２０にてＬＳＩ実行速度で調べ、そのアドレス情報をリペアサーチ回路３０にてリアルタイムに処理してバッファ３１に蓄える一連の処理工程をステージ１と呼ぶこととする。また、バッファ３１に蓄えられたアドレス情報を例えば外部のコンピュータあるいはチップ上のＣＰＵへ転送し、当該コンピュータにてバッファ３１から転送されるアドレス情報を基に、使用する冗長線を冗長ブロック１１相互間の関係を考慮しながら決定する一連の処理工程をステージ２と呼ぶこととする。
【００２６】
すなわち、ステージ１の処理は、ハードウェアとして実装されたＢＩＳＴ回路２０およびリペアサーチ回路３０によって実行される。
ステージ２の処理は、外部のコンピュータまたはオンチップのコンピュータによってソフトウェアにて実行される。以下、ステージ１，２の各処理について説明する。
【００２７】
（ステージ１）
今、Ｘ方向、Ｙ方向それぞれについて使用可能な冗長線の数をそれぞれｍ，ｎとする。ここで、異常ビットのアドレス情報をチップ上に保存するのに必要なバッファ３１の容量（以下、「バッファ量」と記す）について考察する。
【００２８】
１本のＸ方向アドレス線上に異常ビットがｎ＋１個以上あれば、無条件にこのＸ方向アドレス線をＸ方向冗長線によって置換しなければならない。また、同様に、１本のＹ方向アドレス線上に異常ビットがｍ＋１個以上あれば、無条件にこのＹ方向アドレス線をＹ方向冗長線によって置換しなければならない。よって、Ｘ方向アドレス線について必要なバッファ量は、１本（１Ｘ方向冗長線あたり）につきｎ個あれば良い。何故なら、さらにこのＸ方向アドレス線にもうひとつ異常ビットが来れば、置換する冗長線として確定してやれば良いので、ｎ＋１個目のデータについては保存する必要はないからである。
【００２９】
ただし、１個のバッファにつき、Ｘ，Ｙアドレスをペアで記憶させるものとする。したがって、Ｘ方向冗長線がｍ個あれば、Ｘ方向に関して必要なバッファ量としてはｍ×ｎ個あれば良い。同様に、Ｙ方向について必要なバッファ量としてはｎ×ｍ個あれば良い。その結果、全部で、２×ｍ×ｎ個のバッファを用意すれば良いことになる。
【００３０】
一例として、図２に示す構成のＲＡＭ１０では、ｍ，ｎが共に２、即ち冗長線１４，１５が共に２本であるので、この例の場合は、リペアサーチ回路３０内のバッファ３１として、一つの冗長ブロック１１あたり、結局、８（＝２×２×２）個のＸ，Ｙアドレスのペアを格納するバッファ量のものを用意すれば良いことになる。
【００３１】
図３は、リペアサーチ回路３０の具体的な構成例を示すブロック図である。本構成例に係るリペアサーチ回路３０は、バッファ３１として、２本ずつの冗長線１４，１５に対応してＸ，Ｙのアドレス用バッファ３１１Ｘ，３１１Ｙを８個ずつ有するとともに、ステージ１の処理を実現可能にするために、存在ビット３１２、マスクビット３１３、Ｄビット３１４およびオーバーフロービット３１５を有している。マスクビット３１３およびＤビット３１４については、Ｘ用（３１３Ｘ，３１４Ｘ）、Ｙ用（３１３Ｙ，３１４Ｙ）が存在する。
【００３２】
存在ビット３１２は、Ｘ，Ｙのアドレス用バッファ３１１Ｘ，３１１Ｙに格納されたアドレスペアの有効（１）／無効（０）を示すビットである。オーバーフロービット３１５は、冗長線１４，１５によって修復（リペア）が可能（０）／不能（１）を決定するビットである。
【００３３】
図３において、リペアサーチ回路３０にはＢＩＳＴ回路２０から、異常ビットのＲＡＭ１０上の位置を示すＸ，Ｙアドレスと、Ｘ，Ｙアドレスの入力が有効であることを示す有効ビット情報とが入力される。そして、Ｘ，Ｙアドレスの入力が有効である場合、リペアサーチ回路３０においては、次の（１）〜（５）の処理が行われる。
【００３４】
（１）Ｘ，Ｙアドレスペアが入力されると、当該アドレスペアがアドレス用バッファ３１１Ｘ，３１１Ｙに既にペアとして存在するか否かを判定する。そして、存在すれば、この入力されたＸ，Ｙアドレスのペアを破棄する。
【００３５】
（２）入力されたＸ，Ｙアドレスペアのうち、いずれか一方のアドレスがマスク（リペア）するアドレスとして確定（以下、「マスク確定」と記す）されたアドレスであるか否か、即ちマスクビット３１３Ｘ，３１３Ｙが“１”であるか否かを判定する。そして、マスク確定されたアドレス（以下、「マスクアドレス」と記す）ならば、この入力されたＸ，Ｙアドレスペアを破棄する。
【００３６】
（３）上記（１），（２）のいずれでもなければ、入力されたＸ，Ｙアドレスペアを空いているアドレス用バッファ３１１Ｘ，３１１Ｙに格納する。ただし、このとき、ＸまたはＹのアドレスと同じ値が過去に当該バッファ３１１Ｘ，３１１Ｙに存在すれば、新たにアドレスペアを格納する際に、Ｘに同じ値があればＸＤビット３１４Ｘを、Ｙに同じ値があればＹＤビット３１４Ｙを“１”にし、このアドレスが既に２個格納されていることを示す。
【００３７】
ここでは、Ｘ方向、Ｙ方向共に冗長線の数が２本であるが、３本以上であるときは、ＸＤビットあるいはＹＤビットは各アドレスペア毎に１つずつではなく、複数個ある。例えば、Ｘ方向冗長線が４本のときは、ＸＤビットは例えば各アドレスペア毎に３つ用意し、それぞれ、同じＸアドレス値が２回、３回、４回来たことを示すとするか、あるいは、ＸＤビットを３つ用意し、カウンタとして使用しても構わない。
【００３８】
（４）入力されたＸ，Ｙアドレスペアのうち、いずれかのアドレスが過去にアドレス用バッファ３１１Ｘ，３１１Ｙに格納されていて、そのＤビット３１４Ｘあるいは３１４Ｙが“１”になっていれば、入ってきたアドレスは３つ目ということになるので、このアドレスについてはマスクアドレスとして確定する。そして、入力されたＸ，Ｙアドレスペアを破棄し、Ｄビット３１４Ｘあるいは３１４Ｙが“１”になっていたアドレスのマスクビット３１３Ｘあるいは３１３Ｙを“１”にして、このアドレスがマスクアドレスであることを示す。
【００３９】
（５）入力されたＸ，Ｙアドレスペアをアドレス用バッファ３１１Ｘ，３１１Ｙに格納しようとした際に、当該バッファ３１１Ｘ，３１１Ｙが既に一杯になっていて、格納するスペースがないときはリペア不能なため、オーバーフロービット３１５を“１”にしてオーバーフロー（リペア不能）であることを示し、ステージ１の処理を終了する。
【００４０】
上述したステージ１の処理についてはハードウェアにて実現するため、冗長ブロック１個についての回路を１セットとし、複数セットをチップ上に置いておくようにすると、これら複数セットの回路はすべて同時に並行して動作することになるため効率が良い。
【００４１】
ここで、リペアサーチ回路３０において実行されるステージ１の処理につき、数値例を挙げてさらに具体的に説明する。ある一つの冗長ブロックにおいて、異常ビットのＸ，Ｙアドレスのペアが、一例として、（１２，５）、（６，５）、（１２，８）、（５，３５）、（１２，６）、（６，３５）、（７，５）の順にＢＩＳＴ回路２０からリペアサーチ回路３０に送られてきた場合を考える。
【００４２】
先ず、Ｘ，Ｙアドレス（１２，５）が入力されると、最初に入力されるアドレスペアであるため、そのままＸ，Ｙのアドレス用バッファ３１１Ｘ，３１１Ｙに格納される。このとき、バッファ３１１Ｘ，３１１Ｙに格納されたアドレスペアが有効であるため存在ビット３１２が“１”になる。
【００４３】
次に、Ｘ，Ｙアドレス（６，５）が入力されると、当該アドレスはまだペアとしてアドレス用バッファ３１１Ｘ，３１１Ｙに格納されておらず、いずれのアドレスもまだマスクアドレスとして確定されていないため、そのままバッファ３１１Ｘ，３１１Ｙに格納されるとともに、存在ビット３１２が“１”になる。このとき、Ｙのアドレス用バッファ３１１Ｙに同じアドレスの５が既に格納されているためＹＤビット３１４Ｙが“１”になる。
【００４４】
次に、Ｘ，Ｙアドレス（１２，８）が入力されると、当該アドレスはまだペアとしてアドレス用バッファ３１１Ｘ，３１１Ｙ格納されておらず、いずれのアドレスもまだマスクアドレスとして確定されていないため、そのままアドレス用バッファ３１１Ｘ，３１１Ｙに格納されるとともに、存在ビット３１２が“１”になる。このとき、Ｘのアドレス用バッファ３１１Ｘに同じアドレスの１２が既に格納されているためＸＤビット３１４Ｘが“１”になる。
【００４５】
次に、Ｘ，Ｙアドレス（５，３５）が入力されると、当該アドレスはまだペアとしてアドレス用バッファ３１１Ｘ，３１１Ｙには格納されておらず、いずれのアドレスもまだマスクアドレスとして確定されていないため、そのままアドレス用バッファ３１１Ｘ，３１１Ｙに格納されるとともに、存在ビット３１２が“１”になる。
【００４６】
次に、Ｘ，Ｙアドレス（１２，６）が入力されると、Ｘアドレスの１２は既に格納されていて、またＸＤビットが“１”になっているアドレスペアが存在している（以前に（１２，８）で入ったペア）。したがって、今回入ってきたアドレスペア（１２，６）のＸアドレス１２は３つ目であり、同じＸアドレス（この場合、１２）でＹアドレスが異なるものが３つあることになる。よって、この（１２，６）のペアは破棄し、ＸＤビットが“１”になっているアドレスペア（１２，８）のＸマスクビット３１３Ｘを“１”にする。
【００４７】
次に、Ｘ，Ｙアドレス（６，３５）が入力されると、当該アドレスはまだペアとしてアドレス用バッファ３１１Ｘ，３１１Ｙ格納されておらず、いずれのアドレスもまだマスクアドレスとして確定されていないため、そのままバッファ３１１Ｘ，３１１Ｙに格納されるとともに、存在ビット３１２が“１”になる。また、Ｘアドレスの６、および、Ｙアドレスの３５はともに、すでにバッファに１つずつ入っており、今回の入力はともに２つ目になるため、ＸＤビット３１４Ｘ、ＹＤビット３１４Ｙともに１にする。
【００４８】
最後に、Ｘ，Ｙアドレス（７，５）が入力されると、Ｙアドレスの５は既に格納されていて、またＹＤビットが“１”になっているアドレスペアが存在している（以前に（６、５）で入ってきたペア）。したがって、今回入ってきたアドレスペア（７，５）のＹアドレス５は３つ目であり、同じＹアドレス（この場合、５）でＸアドレスが異なるものが３つあることになる。よって、この（７，５）のペアについては破棄し、ＹＤビットが“１”になっているアドレスペア（６，５）のＹマスクアドレス３１３Ｙを“１”にする。
【００４９】
このように、ある一つの冗長ブロックにおいて、異常ビットのＸ，Ｙアドレスのペアが、例えば、（１２，５）、（６，５）、（１２，８）、（５，３５）、（１２，６）、（６，３５）、（７，５）の順にＢＩＳＴ回路２０から送られてきたときのリペアサーチ回路３０での処理結果、即ち当該リペアサーチ回路３０内のＸ，Ｙのアドレス用バッファ３１１Ｘ，３１１Ｙおよび各ビット３１２〜３１５の内容を図４に示す。
【００５０】
リペアサーチ回路３０での処理結果、即ちバッファ３１の格納データは、チェーン等を形成することにより、シフトアウトによって外部のコンピュータに転送され、その処理がステージ２に渡される。続いて、ステージ２の処理について説明する。
【００５１】
（ステージ２）
ステージ２では、ステージ１の処理結果を基に、例えば外部のコンピュータあるいは、チップ上のＣＰＵ等によって使用する最終冗長線を決定する。この処理は、コンピュータあるいはＣＰＵでソフトウェア的に行われる。
【００５２】
具体的には、ステージ１の処理だけでは確定しきれない処理部分をこのステージ２の処理でカバーし、最終的なマスクアドレスおよびオーバーフローを確定する。例えば、（１，１）、（２，２）、（３，３）、（４，４）、（５，５）のようなアドレスペア（Ｘ，Ｙ）があったとき、これはリペア不能であるが、ステージ１の処理ではオーバーフローにはならない。また、（１，１）、（２，１）、（３，２）、（４，３）、（５，４）のようなアドレスペア（Ｘ，Ｙ）の場合は、Ｙアドレスの１がマスクアドレスとして確定されるが、ステージ１の処理では確定されない。よって、ステージ１の結果をもとに計算機により、これら確定されなかった部分を出来るだけ確定させる処理を行う。
【００５３】
各冗長ブロック内において、マスク可能なＸ，Ｙアドレスの組み合わせは１通りではなく、複数の組み合わせが存在する。しかし、本例の場合は、Ｘ方向冗長線１５およびＹ方向冗長線１４が共に２本ずつしか存在ないため、最大で６通りの組み合わせしか存在しない。また、串刺しになっている他の冗長ブロックによって、冗長線が１本確定されれば３通りの組み合わせになり、２本確定されれば１通りしか組み合わせがなくなる。
【００５４】
よって、ステージ１の処理で確定したマスクアドレスをもとに、確定しきれなかった部分についても計算機で計算させて、出来る限りマスクアドレスを確定させて、串刺しになっている他の冗長ブロックに対して情報として伝え、再度、マスクアドレス、オーバーフローを確定させて、その冗長ブロックが取り得る冗長線の組み合わせの数を減少させる。ここまでの処理で、各々の冗長ブロックの使用マスクアドレスができるだけ固定されれば、次は、各冗長ブロック１つずつについて、取り得るアドレスセットを次々と計算させて、全体としてつじつまの合うまで計算させる。
【００５５】
一例として、冗長ブロックＡ，Ｂ，Ｃ，Ｄがあって、これらが串刺しの構造になっている場合には、ステージ２の処理では、以下の手順によってマスクアドレス（最終リペアアドレス）およびオーバーフローを確定するようにする。
【００５６】
（１）先ず、図５（ａ）に示すように、各冗長ブロック毎にできるだけマスクアドレスを確定させる。
【００５７】
（２）次に、図５（ｂ）に示すように、その確定したマスクアドレス情報を互いの冗長ブロックに与え、さらにマスクアドレスを確定させる。
【００５８】
（３）次に、この状態において先ず、冗長ブロックＡについて、取り得るマスクアドレスの組み合わせ（以下、「アドレスパターンセット」と記す）のうち一つを選ぶ。そして、図５（ｃ）に示すように、この冗長ブロックＡで選択されたアドレスパターンセットによって冗長ブロックＢに対して制約を与え、その制約のもとで、冗長ブロックＢの取り得るアドレスパターンセットを計算させる。
【００５９】
（４）次に、冗長ブロックＡ，Ｂが取っているアドレスパターンセットによって冗長ブロックＣに制約を与え、その制約のもとで、冗長ブロックＣのアドレスパターンセットを計算させる。この際、冗長ブロックＡ，Ｂのアドレスパターンセットの影響のため、冗長ブロックＣがマスク不能になれば、冗長ブロックＢが取り得る次のアドレスパターンセットを計算させ、これを繰り返す。冗長ブロックＢが取り得るパターンセットすべてを試行しても冗長ブロックＣがマスク不能であれば、冗長ブロックＡが取り得る次のパターンを計算され、以上を繰り返す。
【００６０】
（５）今度は、冗長ブロックＡ，Ｂ，Ｃのアドレスパターンセットの制約のもとに、冗長ブロックＤの取り得るアドレスパターンセットを計算させる。取り得るアドレスパターンセットがなければ、冗長ブロックＣの次のアドレスパターンセットを計算させる。
【００６１】
以上の処理を繰り返して実行し、冗長ブロックＡ，Ｂ，Ｃ，Ｄすべてがマスクできれば、これを採用する。そして、このようにして算出したアドレスパターンセットを用い、対応するヒューズ１２，１３（図２参照）を溶断することによってリペアを行う。なお、ここでは、Ｙ方向の１次元において串刺しの構造の場合を例に挙げて説明したが、Ｘ方向の１次元あるいはＸ，Ｙ方向の２次元において串刺しの構造となっている場合にも同様に適用可能である。
【００６２】
上述したように、本発明の第１実施形態に係る半導体記憶装置においては、ＲＡＭ１０と同じＬＳＩチップ上に、ＢＩＳＴ回路２０およびリペアサーチ回路３０を搭載した構成を採っているため、異常ビットがあるか、あれば、どのアドレスのビットに異常があるかを調べる処理および使用する冗長線を決定するために必要最低限のアドレス情報を確定してこの確定したアドレス情報のみをバッファ３１に蓄える処理をＬＳＩ実行速度で行うことができる。これにより、ＬＳＩ実行速度での高速動作が可能な高価なメモリテスタが不要になる。
【００６３】
また、リペアサーチ回路３０によるチップ上での処理により、冗長線解析に必要な異常ビットのアドレス情報のみを残す構成を採っていることにより、今までのように、すべてのアドレスについての正常／異常の情報を取り込む必要がないため、使用するバッファ（メモリ）の容量を大幅に縮小化できる。また、このことにより、バッファ３１に蓄えられたアドレス情報を基に、使用する冗長線を決定するための計算速度も高速化できる。
【００６４】
また、バッファ３１に蓄えられたアドレス情報を基に、使用する冗長線、即ち置換する冗長セルを決定するに当たって、可能な限りリペアアドレスを確定した各冗長ブロックに対し、まず、確定したリペアアドレスを他の冗長ブロックに与えて、マスクされずに残った不良ビットに対して残った冗長線によってマスク可能なアドレスパターンセットを一つずつ発生させ、複数の冗長ブロックからなるグループの各冗長ブロック間で互いに制約を課しながらつじつまが合うように順次アドレスパターンセットを見つけていく、具体的には、一つの冗長ブロックについてマスク可能なアドレスパターンセットを見つけ、その見つけたアドレスパターンセットによって他の冗長ブロックに制約を与えてその制約下において、当該他の冗長ブロックについてマスク可能なアドレスパターンセットを発生し、その結果を基にさらに他の冗長ブロックに制約を課すという処理を繰り返すことにより、全体としてマスク可能なアドレスパターンの組み合わせを見つけるための処理速度を著しく高めることができる。
【００６５】
なお、本実施形態では、ステージ１の処理によってバッファ３１に蓄えられたアドレス情報を外部のコンピュータへ転送し、当該コンピュータによってステージ２の処理を実行するとしたが、ＲＡＭ１０と同じチップ上にマイクロコンピュータを搭載し、当該マイクロコンピュータにバッファ３１に蓄えられたアドレス情報を転送してステージ２の処理を実行することも可能である。
【００６６】
［第２実施形態］
図６は、本発明の第２実施形態に係る半導体記憶装置の構成例を示すブロック図であり、図中、図１と同等部分には同一符号を付して示している。図６から明らかなように、本実施形態に係る半導体記憶装置（ＬＳＩ）は、ＲＡＭ１０、ＢＩＳＴ回路２０およびＢＩＳＲ（ｂｕｉｌｔ−ｉｎ  ｓｅｌｆ  ｒｅｐａｉｒ；内蔵セルフリペア）回路４０を有し、これら構成要素が同一のＬＳＩチップ上に搭載された構成となっている。ここで、ＲＡＭ１０およびＢＩＳＴ回路２０の構成および動作については、基本的に、第１実施形態の場合と同じである。
【００６７】
ＢＩＳＲ回路４０は、ＢＩＳＴ回路２０が検出した異常ビットのアドレス情報を基に、どのように冗長線１４，１５を使用して異常修復（リペア）するかをオンチップにて計算し、その計算結果を基に異常セルを冗長セルでリペアする、即ち冗長セルでマスクするために、ＢＩＳＴ回路２０と共にＲＡＭ１０と同じＬＳＩチップ上に設けられている。
【００６８】
図７は、ＢＩＳＲ回路４０の具体的な構成の一例を示すブロック図である。本構成例に係るＢＩＳＲ回路４０は、リペア機能を実現するために、リペアサーチ回路部４１およびＢＩＳＲ制御部４２を有する構成となっている。このＢＩＳＲ回路４０において、リペアサーチ回路部４１には、ＢＩＳＴ回路２０で検出された異常ビットを表すＸ，Ｙアドレスおよび当該Ｘ，Ｙアドレスが有効か否かを示す有効ビット情報が与えられる。
【００６９】
このリペアサーチ回路部４１は、基本的に、第１実施形態のリペアサーチ回路３０と同じ処理を行う。すなわち、ＢＩＳＴ回路２０から異常ビットのＸ，Ｙアドレスのペアが渡されると、リペアサーチ回路部４１は、受け取ったアドレスペアをリアルタイムに処理し、使用する冗長線を決定するために必要最低限のアドレスペアのみを内蔵のバッファ（メモリ）４１１に蓄える。
【００７０】
ここで、ＢＩＳＴ回路２０から異常ビットのアドレス情報を出力させるためには、いろいろなテストパターンを流すことになるが、それらすべてを行い、異常ビットのアドレス情報をすべてリペアサーチ回路部４１内のバッファ４１１に蓄える処理が、第１実施形態で説明したステージ１の処理に相当する。このステージ１の処理が終了すると、ＢＩＳＲ回路４０に対してＢＩＳＲ計算スタートの指示ＢＩＳＲＳＴＡＲＴが外部から与えられる。
【００７１】
ＢＩＳＲ制御部４２は、マスクアドレス格納部４２１およびパターン生成部４２２から構成されている。パターン生成部４２２には、ＸＹビットと呼ばれるフラグが各異常ビットのＸ，Ｙアドレスペアごとに用意されている。リペアされた際に、これらの異常ビットは、必ず、Ｘ方向あるいはＹ方向の冗長線によってリペア（マスク）されるはずである。このとき、パターン生成部４２２のＸＹビットフラグは、Ｘ方向の冗長線でマスクされるか、Ｙ方向の冗長線でリペアされるかを表す。例えば、ＸＹビットフラグ“１”のときはＸ方向の冗長線１５でリペアされ、“０”のときはＹ方向の冗長線１４でリペアされることを示す。
【００７２】
本例の場合のように、アドレスペアが８個あるときは、このＸＹビットフラグもやはり８個あり、取り得る組み合わせは２５６通りになる。そして、この２５６通りのうちのいくつかの組み合わせ（一通りではない）のときにリペアが行われる。パターン生成部４２２は、この２５６通りの組みあわせ（０，１の組み合わせ）を順次作成していく。そして、それぞれの組み合わせのとき、リペアが成功するか否かをマスクアドレス格納部４２１で順次確認していく。
【００７３】
上述したように、本発明の第２実施形態に係る半導体記憶装置においては、ＲＡＭ１０と同じＬＳＩチップ上に、ＢＩＳＴ回路２０およびＢＩＳＲ回路４０を搭載した構成を採っているため、異常ビットがあるか、あれば、どのアドレスのビットに異常があるかを調べる処理と、使用する冗長線を決定するために必要最低限のアドレスペアのみをバッファ４１１に蓄える処理と、マスクアドレスを決定する処理とをＬＳＩ実行速度で行うことができる。
【００７４】
次に、上記構成のＢＩＳＲ回路３０において実行される処理について、具体的な実施例を挙げて説明する。
【００７５】
（実施例）
本実施例では、冗長ブロック１１の個々（０次元）について、ＢＩＳＲ計算を行う場合を対象としており、ある一つの冗長ブロック１１に関して、ＢＩＳＴ回路２０から送られてきた異常ビットのＸ，Ｙアドレスのペアが、図８に示すように、バッファ４１に格納されている場合について説明する。
【００７６】
（１）先ず、パターン生成部４２２により、ＸＹビットパターンを生成する。ここでは、生成したＸＹビットパターンが、図８に示すように、Ａ行からＨ行の順番に１０１０００００であったとする。
【００７７】
（２）Ａ行から順番に選択されたＸ，Ｙマスクアドレスをマスクアドレス格納部４２１へ転送する。この場合、Ａ行のＸＹビットが“１”であるので、これは、Ｙアドレスの５がマスクアドレスであることを示す。よって、Ｙアドレスの５をマスクアドレス格納部４２１へ格納する。その際、マスクアドレス格納部４２１のＹアドレス用の存在ビットを“１”にし、このマスクアドレスが有効であることを示す（以下、同様）。
【００７８】
（３）Ｂ行は、ＸＹビットが“０”である。この場合は、Ｘアドレスの６がマスクアドレスであることを示している。よって、Ｘアドレスの６をマスクアドレス格納部４２１に格納する。同時に、Ｙアドレスのマスクビットが“１”になっているので、Ｙアドレスの５もマスクアドレス格納部４２１へ格納することになるが、Ｙアドレスの５はすでに格納されているので何もしない。
【００７９】
（４）Ｃ行は、ＸＹビットが“１”である。よって、この場合は、Ｙアドレスの８をマスクアドレス４２１に格納するが、同時に、Ｘのマスクビットが“１”のため、Ｘアドレスの１２も同時にマスクアドレス格納部４２１に格納する。この時点で、マスクアドレス格納部４２１のＸマスクアドレス部には６，１２が、Ｙマスクアドレス部には５，８がそれぞれ格納されている。
【００８０】
（５）Ｄ行は、ＸＹビットが“０”である。よって、Ｘアドレスの５をマスクアドレス格納部４２１に格納するが、Ｘマスクアドレス部は既に２つのマスクアドレスを格納しており、３つめのアドレスを格納できない（オーバーフロー）。よって、この段階で、このＸＹビットパターンでは、マスク（リペア）不可能ということが判明する。
【００８１】
（６）このＸＹビットパターンでは、リペア不可能ということが判明したので、新しいＸＹビットパターンをパターン生成部４２２により生成する。この新しく生成したパターンは、図９に示すように、Ａ行からＨ行の順番に０００１１０００であったとする。
【００８２】
（７）再度、Ａ行から順番にマスクアドレスをマスクアドレス格納部４２１へ転送する。この場合、Ａ行のＸＹビットが“０”であるので、Ｘアドレスの１２をマスクアドレス格納部４２１へ転送する。
【００８３】
（８）Ｂ行はＸＹアドレスが“０”である。よって、Ｘアドレスの６をマスクアドレス格納部４２１へ転送する。この際、Ｙアドレスのマスクビットが“１”なので、Ｙアドレスの５も同時にマスクアドレス格納部４２１へ転送する。
【００８４】
（９）Ｃ行はＸＹビットが“０”なので、また、Ｘのマスクビットが“１”なので、Ｘアドレスの１２をマスクアドレス格納部３２１へ転送する。しかし、Ｘアドレスの１２はすでにアドレス格納部４２１に存在するので何もしない。
【００８５】
（１０）Ｄ行はＸＹビットが“１”である。よって、Ｙアドレスの３５をマスクアドレス格納部４２１へ転送する。この時点で、マスクアドレス格納部４２１のＸマスクアドレスには１２，６が、Ｙマスクアドレスには５，３５がそれぞれ格納される。
【００８６】
（１１）Ｅ行はＸＹビットが“１”である。よって、Ｙアドレスの３５をマスクアドレス格納部４２１へ転送する。しかし、Ｙアドレス３５は既にマスクアドレス格納部４２１に格納されているので何もしない。
【００８７】
（１２）Ｆ行はＸＹビットが“０”である。しかし、Ｆ行の存在ビットは“０”であり、この行のＸ，Ｙアドレスのペアは意味を持たないので、この行に関しては何もしない。
【００８８】
（１３）Ｇ，Ｈ行に関しても、存在ビットが“０”なので、これらの行については何も処理しない。
【００８９】
（１４）この時点で、すべての行に関する処理が終了する。また、マスクアドレス格納部４２１のＸマスクアドレスには１２，６、Ｙマスクアドレスには５、３５が格納されており、オーバーフローは生じなかったことになる。これは、このＸ，Ｙアドレスの組み合わせで、リペアが可能なことを示している。よって、この組み合わせがひとつの解であり、解が得られたことになる。
【００９０】
（１５）リペアが不可能な場合は、次のＸＹビットパターンを試していくことになる。そして、２５６パターンすべて試してもリペアが不可能な場合は、最終的にリペアが不可能と判断する。
【００９１】
（１６）リペアが可能な結果が出れば、以降は、このＸ，Ｙマスクアドレスを用いて、リペアを行うことになる。
【００９２】
ここで、パターン生成部４２２としては、０から順番にインクリメントしていく通常の加算器を用いたインクリメンタル方式のものでも構わないし、図１０に示すように、Ｘ，Ｙのアドレス用バッファの数、本例では８個のレジスタ４１−１〜４１−８を直列に接続し、３，５，７，８段目のレジスタ４１−３，４１−５，４１−７，４１−８の各出力の排他的論理和をＸＯＲゲート４２でとって初段のレジスタ４１−１に戻す構成のリニアフィードバックシフトレジスタ（Ｌｉｎｅａｒ  Ｆｅｅｄｂａｃｋ  Ｓｈｉｆｔ  Ｒｅｓｉｓｔｅｒ）を用いることも可能である。このリニアフィードバックシフトレジスタを用いることにより、加算器を用いる場合よりも回路面積を軽減できる利点がある。なお、図１０に示したリニアフィードバックシフトレジスタの構成は一例に過ぎず、この構成のものに限られるものではない。
【００９３】
［第３実施形態］
第３実施形態に係る半導体記憶装置では、図２で述べたように、複数の冗長ブロックに対して冗長線が串刺しの形で配線されている場合を対象としている。一例として、図１１（ａ）に示すように、例えば４個の冗長ブロックＡ〜Ｄがロウ冗長線１４によって串刺しになっている場合を想定すると、この場合、各冗長ブロックＡ〜ＣをＹアドレスに関して一つにまとめ、見かけ上、図１１（ｂ）に示すように、１つの冗長ブロックとみなすようにする。
【００９４】
実際には、例えば図１１（ａ）に示すように、冗長ブロックＡのＹアドレスが０から１２７、冗長ブロックＢのＹアドレスが１２８から２５５、冗長ブロックＣのＹアドレスが２５６から３８３、冗長ブロックＤのＹアドレスが３８４から５１１に対応しているとすると、ＢＩＳＲ回路４０に異常（欠陥）ビットのアドレスを入力する際、Ｙアドレスに関して１２８で割った余りをアドレスとしてアドレス変換し、図１１（ｂ）に示すように、すべての冗長ブロックＡ〜Ｄの異常ビットをＹアドレスが０から１２７までのアドレスとしてＢＩＳＲ回路４０に入力するようにすれば良い。
【００９５】
上述したように、すべての冗長ブロックＡ〜Ｄの異常ビットをＹアドレスが０から１２７までのアドレスとしてアドレス変換を行ってＢＩＳＲ回路４０に入力することにより、複数の冗長ブロックに対して冗長線が串刺しの形で配線した構造のＤＲＡＭの場合にも、第２実施形態の具体例の場合と同様にして異常ビットのリペアを行うことができる。
【００９６】
すなわち、冗長線が行方向または列方向の複数の単位ブロックに共通に使用されている場合において、複数の単位ブロックの個々のアドレス情報を、複数の単位ブロックのいずれか一つの単位ブロック内のアドレス情報に変換し、複数の単位ブロックをアドレスマップ上で重ね合わせてあたかも一つの単位ブロックのように見せて、その変換したアドレス情報を基に冗長セルのアドレス情報を作成することで、異常ビットのリペアを行うことができる。
【００９７】
なお、本実施形態では、Ｙ方向の１次元において串刺しの構造の場合を例に挙げて説明したが、Ｘ方向の１次元あるいはＸ，Ｙ方向の２次元において串刺しの構造となっている場合にも同様に適用可能である。また、この方法は、先に述べたステージ１とステージ２に分けてリペアを行う場合にも適用可能である。
【００９８】
以上のようにして、ＢＩＳＲ回路４０によってオンチップにて個々の冗長ブロック１１についてリペアサーチを行い、このリペアサーチによって決定された最終マスクアドレスを用いて、当該最終マスクアドレスに対応するヒューズをセットすることにより、リペアを行うことができる。
【００９９】
ところで、リペアを行う際に、上述したように、Ａｌヒューズに代表される機械的ヒューズ１２，１３を用いると、機械的ヒューズは配置面積が大きいため、細かいリペアを行うことができない。そのため、冗長線１４，１５を串刺しに配線して、ヒューズ１２，１３の数を減らしているのが現状である。そこで、以下に説明する変形例では、ヒューズ回路として、機械的ヒューズに代えて電気的ヒューズを用いることで、より細かなリペアを実現可能としている。
【０１００】
（変形例）
本変形例においては、電気的ヒューズとしてレジスタ回路を用いている。すなわち、ＢＩＳＲ回路４０でＢＩＳＲ計算を行った後、その計算結果をレジスタ回路にセーブし、そのレジスタ回路の値を使用することによってリペアを行うようにしている。このように、ヒューズ回路としてレジスタ回路等の電気的ヒューズを用い、例えば商品起動時に毎回、ＢＩＳＴ回路２０およびＢＩＳＲ回路４０を動作させて異常ビットのリペアを行うようにすることで、次のような作用効果を得ることができる。
【０１０１】
すなわち、電気的ヒューズは機械的ヒューズに比べてサイズが小さく、配置スペースが小さくて済むため、機械的ヒューズを用いる場合のような串刺しの構造を採らずに、個々の冗長ブロック１１に対して配置することができる。したがって、今までの機械的ヒューズを用いたグループ単位のリペアに比べて、もっと小さい冗長ブロック単位でのより細かなリペアが可能になるため、メモリの故障復旧効果を著しく向上できる。
【０１０２】
このレジスタ回路を用いたヒューズをレジスタヒューズと呼ぶこととする。なお、電気的ヒューズとしては、レジスタヒューズに限られるものではなく、場合によっては、フラッシュメモリ等の不揮発性メモリやＳＲＡＭを使用することも可能である。電気的ヒューズとして、不揮発性メモリを使用し、これらにＢＩＳＲの計算結果をセーブすることで、この状態を電源遮断時も消えぬようにすることが可能になる。
【０１０３】
電気的ヒューズを用いてリペアを実行するためのヒューズ回路の具体的な回路例を図１２（ａ），（ｂ）に示す。これら回路例に係るヒューズ回路５０Ａ，５０Ｂは、Ａｌヒューズ５１とレジスタヒューズ５２を兼用し、モード信号ＭＯＤＥ１，２に応じて動作するセレクタ５３，５４およびリセット信号ＲＳＴで動作するセレクタ５５を共に有する構成となっている。ここで、モード信号ＭＯＤＥ１は、Ａｌヒューズ５１を使用するかレジスタヒューズ５２を使用するかの切り替え信号、モード信号ＭＯＤＥ２はレジスタヒューズ５２にＢＩＳＲの計算結果をシフト入力される切り替え信号、リセット信号ＲＳＴはレジスタヒューズ５２をリセットするための信号である。
【０１０４】
図１２（ａ）に示すように、第１回路例に係るヒューズ回路５０Ａにおいて、セレクタ５３は、一方の入力端が回路入力端子ＩＮに、他方の入力端がＡｌヒューズ５１の電源側の端子にそれぞれ接続されている。セレクタ５５は、一方の入力端がセレクタ５４の出力端に、他方の入力端が接地されている。セレクタ５４は、一方の入力端がセレクタ５３の出力端に接続され、他方の入力端がレジスタヒューズ５２の出力端にそれぞれ接続されている。レジスタヒューズ５２は、入力端がセレクタ５５の出力端に接続され、出力端が回路出力端子ＯＵＴに接続されている。
【０１０５】
図１２（ｂ）に示すように、第２回路例に係るヒューズ回路５０Ｂにおいて、セレクタ５４は、一方の入力端が回路入力端子ＩＮに、他方の入力端がレジスタヒューズ５２の出力端にそれぞれ接続されている。セレクタ５５は、一方の入力端がセレクタ５４の出力端に接続され、他方の入力端が接地されている。レジスタヒューズ５２は、入力端がセレクタ５５の出力端に、出力端がセレクタ５３の一方の入力端にそれぞれ接続されている。セレクタ５３は、他方の入力端がＡｌヒューズ５１の電源側の端子に接続され、出力端が回路出力端子ＯＵＴに接続されている。
【０１０６】
上記構成の第１，第２回路例に係るヒューズ回路５０Ａ，５０Ｂは、具体的な回路構成の一例に過ぎないが、これらの何れかを用いて、図７のマスクアドレス格納部４２１に格納されたアドレスを、ヒューズレジスタ５２に転送すればリペアは完了する。
【０１０７】
この図１２（ａ），（ｂ）に示すヒューズ回路５０Ａ，５０Ｂを、図１３に示すように、各々の回路入力端子ＩＮと回路出力端子ＯＵＴとを数珠つなぎにしてチェーン状に接続配置すれば、シフトチェーンを使用してマスクアドレス格納部４２１に格納されたアドレスをシフトさせることで、各ヒューズ回路５０Ａ，５０Ｂにマスクアドレスを格納することができる。
【０１０８】
（他の変形例）
本変形例では、Ａｌヒューズ５１とレジスタヒューズ５２の両方を使用するようにしており、その具体的な構成を図１４に示す。本変形例においては、Ａｌヒューズ５１は個々の冗長ブロック１１に串刺し状に貫かれた冗長線に対してマスクされるようになっており、レジスタヒューズ５２は個々の冗長ブロック１１に対してマスクされるようになっている。
【０１０９】
具体的には、列毎に個々の冗長ブロック１１に対して串刺し状にロウ冗長線１４を配線し、行毎に個々の冗長ブロック１１に対して串刺し状にコラム冗長線１５を配線し、それぞれの冗長線１４，１５に対してＡｌヒューズ５１Ｒ，５１Ｃを設けるとともに、レジスタヒューズ５２については個々の冗長ブロック１１に対して設け、Ａｌヒューズ５１Ｒ，５１Ｃとレジスタヒューズ５２をセレクタ５６で切り替える構成となっている。
【０１１０】
このように、Ａｌヒューズ５１Ｒ，５１Ｃとレジスタヒューズ５２を併用した構成を採ることにより、Ａｌヒューズ５１Ｒ，５１Ｃを使用した恒常的なリペアと、レジスタヒューズ５２を使用した細かいリペアが両方とも可能になる。具体的には、工場出荷時において、Ａｌヒューズ５１Ｒ，５１Ｃを使用することによって全体を考慮したリペアを行えるだけでなく、工場出荷後においても、ユーザーが使用する起動時、定期的、あるいは異常が発生した際に、リペアが可能になる。その結果、メモリの故障率を著しく改善できる。
【０１１１】
また、レジスタヒューズはＡｌヒューズに比べてサイズが小さく、配置スペースが小さくて済むため、Ａｌヒューズを用いる場合のような串刺しの構造を採らずに、個々の冗長ブロック１１に対して配置できる。したがって、今までのＡｌヒューズを用いたリペアに比べて、もっと小さい冗長ブロック単位でのリペアが可能なため、メモリの故障復旧効果を著しく向上できる。
【０１１２】
【発明の効果】
以上説明したように、本発明によれば、個々のメモリセルの良否を評価して得たアドレスペアのうち、異常セルをリペアする冗長線を決定するために必要最低限のアドレスペアのみを記憶手段に格納するようにすることにより、異常セルのアドレスペアのすべてを格納する場合に比べて、メモリ容量が少なくて済むとともに、異常セルをリペアする冗長線のアドレス情報を計算するための処理を高速で実行可能となる。
【０１１３】
また、個々のメモリセルの良否を評価して得たアドレスペアのうち、異常セルをリペアする冗長線を決定するために必要最低限のアドレスペアのみを記憶手段に格納するようにしたことで、異常セルのアドレスペアのすべてを格納する場合に比べて、メモリ容量が少なくて済む分だけ回路規模を小さくでき、また記憶手段に格納されたアドレスペアを基に、異常セルをリペアする冗長線のアドレス情報を計算する内蔵セルフリペア手段をメモリ部と同じチップ上に搭載したことで、メモリ部の実行速度で計算処理を行うことができるため、その計算処理を高速で実行可能となる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係る半導体記憶装置の構成を示すブロック図である。
【図２】ＤＲＡＭの構成の一例を示すブロック図である。
【図３】リペアサーチ回路の具体的な構成例を示すブロック図である。
【図４】リペアサーチ回路での処理結果を示す図である。
【図５】ステージ２の処理の手順を示す概念図である。
【図６】本発明の第２実施形態に係る半導体記憶装置の構成を示すブロック図である。
【図７】ＢＩＳＲ回路の具体的な構成の一例を示すブロック図である。
【図８】ＢＩＳＲ回路の実施例に係る処理の説明に供する図（その１）である。
【図９】ＢＩＳＲ回路の実施例に係る処理の説明に供する図（その２）である。
【図１０】リニアフィードバックシフトレジスタの構成の一例を示すブロック図である。
【図１１】本発明の第３実施形態に係る半導体記憶装置の説明に供する図である。
【図１２】変形例に係るヒューズ回路の具体例を示すブロック図である。
【図１３】ヒューズ回路をチェーン状に接続した場合の構成を示すブロック図である。
【図１４】他の変形例の場合の構成を示すブロック図である。
【符号の説明】
１０…ＲＡＭ、１１…冗長ブロック、１２，１３，５１…Ａｌヒューズ、１４…ロウ冗長線、１５…コラム冗長線、２０…ＢＩＳＴ回路、３０…リペアサーチ回路、３１…バッファ、４０…ＢＩＳＲ回路、４１…リペアサーチ回路部、４２…ＢＩＳＲ制御部、５０Ａ，５０Ｂ…ヒューズ回路、５２…レジスタヒューズ
【図１】
2004296054.tif 000003
【図２】
2004296054.tif 000004
【図３】
2004296054.tif 000005
【図４】
2004296054.tif 000006
【図５】
2004296054.tif 000007
【図６】
2004296054.tif 000008
【図７】
2004296054.tif 000009
【図８】
2004296054.tif 000010
【図９】
2004296054.tif 000011
【図１０】
2004296054.tif 000012
【図１１】
2004296054.tif 000013
【図１２】
2004296054.tif 000014
【図１３】
2004296054.tif 000015
【図１４】
2004296054.tif 000016