(57)【要約】  並列に配置される複数のメモリデバイスをプログラミングする方法及びシステムを提供する。本発明の一実施形態では、前記複数のメモリデバイスは、第１と第２のメモリデバイスを備え、前記方法は、前記第１のアドレスを前記第１のメモリデバイスに、前記第２のアドレスを前記第２のメモリデバイスに連続的に提供することを備えている。前記第１のアドレスは、前記第１のメモリデバイスにおける第１のグループの記憶場所を参照し、前記第２のアドレスは、前記第２のメモリデバイスにおける第２のグループの記憶場所を参照する。前記方法は、その後、データ列を第１と第２のメモリデバイスに並列にロードし始め、前記データ列は、前記第１のメモリデバイスにおける前記第１のグループの記憶場所及び前記第２のメモリデバイスにおける前記第２のグループの記憶場所に同時に書き込まれる。【選択図】図５
2007525754.tif 000002
【特許請求の範囲】
【請求項１】
並列に配置される複数のメモリデバイスをプログラミングする方法であって、
前記複数のデバイスは、第１と第２のメモリデバイスを備え、
連続的に第１のアドレスを前記第１のメモリデバイスに、第２のアドレスを前記第２のメモリデバイスに提供するステップであって、前記第１のアドレスは前記第１のメモリデバイスにおける第１のグループの記憶場所を参照し、前記第２のアドレスは前記第２のメモリデバイスにおける第２のグループの記憶場所を参照する前記提供するステップと、
データ列を前記第１と第２のメモリデバイスに並列にロードするステップと、を備え、
それによって、前記データ列は前記第１と第２のグループの記憶場所に同時に書き込まれる方法。
【請求項２】
前記第１と第２のアドレスは同一であることを特徴とする請求項１に記載の方法。
【請求項３】
前記第１と第２のアドレスは相違することを特徴とする請求項１に記載の方法。
【請求項４】
前記第１と第２のアドレスは行アドレスであり、
前記方法は、さらに、前記第１のアドレスを前記第１のメモリデバイスに、前記第２のアドレスを前記第２のメモリデバイスに提供する前に、共通の列アドレスを前記第１と第２のメモリデバイスに並列に提供することを備えた請求項１に記載の方法。
【請求項５】
前記ロードするステップは、前記第１のメモリデバイスにおける前記共通の列アドレス及び前記第１の行アドレスによって参照される記憶場所と、前記第２のメモリデバイスにおける前記共通の列アドレス及び前記第２の行アドレスによって参照される記憶場所に、前記データ列を同時にロードすることを含む請求項４に記載の方法。
【請求項６】
前記提供するステップは、前記複数のメモリデバイスのそれぞれに対して、メモリアドレスを発生させ、前記メモリアドレスが前記メモリデバイスにおける動作不能な記憶ユニットに対応するかどうかを決定し、前記メモリアドレスが動作不能な記憶ユニットに対応するという決定に応答して変更メモリアドレスを発生させ、前記変更メモリアドレスを前記メモリデバイスに提供することを備えた請求項１に記載の方法。
【請求項７】
前記決定するステップは、前記メモリアドレスが記憶された不良なアドレスに一致するかどうかを決定することを備えた請求項５に記載の方法。
【請求項８】
前記発生させるステップは、前記不良なアドレスに関連する記憶されたアドレスオフセットを取得し、前記アドレスオフセットに基づいて前記変更メモリアドレスを発生させることを備えた請求項６に記載の方法。
【請求項９】
第１のメモリアドレスを発生させるステップと、
前記第１のメモリアドレスが記憶された不良アドレスと一致するかどうかを決定するステップと、
前記不良なアドレスに関連するアドレスオフセットを取得するステップと、
前記第１のメモリアドレス及び前記アドレスオフセットに基づいて第２のメモリアドレスを発生させるステップと、
前記第２のアドレスによって参照されるメモリ位置にデータ列をロードするステップとを備えたメモリデバイスをプログラミングする方法。
【請求項１０】
前記決定するステップは、前記メモリデバイスにおける不良なブロックに対応するエントリを不良なブロックアドレスリストから生成し、
前記エントリを前記第１のメモリアドレスと比較することを含む請求項９に記載の方法。
【請求項１１】
前記発生させるステップは、前記オフセットを前記第１のメモリアドレスに追加することを含む請求項９に記載の方法。
【請求項１２】
複数のメモリデバイスをプログラミングするシステムであって、
メモリアドレスを発生させるように構成されるアドレス発生器と、
前記アドレス発生器と前記複数のメモリデバイスの間に接続され、前記複数のメモリデバイスの第１のメモリデバイスにおける前記メモリアドレスに対応する記憶ユニットが動作不能であるかどうかを決定するように構成されたアドレス調整器と、を備え、
前記記憶場所が動作不能であるという決定に応答し、前記第１のメモリデバイスにおける記憶場所の第１のコレクションをバイパスするために第１の変更アドレスを発生させ、
記憶場所の前記コレクションは前記動作不能な記憶ユニットを備え、
前記第１の変更アドレスは前記第１のメモリデバイスに提供されているシステム。
【請求項１３】
前記アドレス調整器は、動作不能な記憶場所の前記第１のコレクションに関連する第１のオフセットを生成するように構成される不良なブロック訂正計算器と、前記第１の変更アドレスを発生させるために前記オフセットを前記メモリアドレスに追加するように構成されるアダーとを備えた請求項１２に記載のシステム。
【請求項１４】
前記不良なブロック訂正計算器は、前記複数のメモリデバイスのそれぞれにおける動作不能な記憶ユニットに関する情報を記憶するための記憶ブロックと、
前記第１のメモリデバイスに関連する記憶ブロックを選択するように構成されるデバイスセレクタと、
前記第１のメモリデバイスにおける前記第１のアドレスに対応する前記記憶ユニットが動作不能であるかどうかを決定するために、前記選択された記憶ブロックから引き出される記憶アドレスと前記メモリアドレスを比較するように構成される比較器と、を備えている請求項１３に記載のシステム。
【請求項１５】
前記第１のメモリ装置における動作不能な記憶ユニットに関する情報は、不良なブロックアドレスリスト及び前記不良なブロックアドレスリストにおけるそれぞれのエントリに関連するオフセットを備えている請求項１４に記載のシステム。
【請求項１６】
前記不良なブロックアドレスリストは、それぞれが不良なブロックのアドレスに対応するエントリを備え、各エントリに関連する前記オフセットは、前記エントリに対して隣接する不良なブロックの数を指示する請求項１５に記載のシステム。
【請求項１７】
各記憶ブロックに関連するホールディングレジスタであって、累積されるオフセットを記憶するホールディングレジスタと、
前記第１のオフセットを発生させるために、前記選択される記憶ブロックに関連する前記ホールディングレジスタから前記蓄積されるオフセットを、前記選択される記憶ブロックから引き出されるオフセットに追加するように構成されるアダーとをさらに備えている請求項１５に記載のシステム。
【請求項１８】
前記記憶ブロックからの出力の中から１つの出力を選択するように構成される少なくとも１つの多重化装置をさらに備えている請求項１４に記載のシステム。
【請求項１９】
前記アドレス発生器は、前記メモリアドレスの発生を繰り返すように構成され、
前記アドレス調整器は、前記複数のメモリデバイスの第２のメモリデバイスおける前記メモリアドレスに対応する記憶ユニットが動作不能であるかどうかを決定するように構成され、
前記記憶ユニットが動作不能であるという決定に応答して、前記第２のメモリデバイスにおける記憶場所の第２のコレクションをバイパスするために第２の変更アドレスを発生させ、
前記第２の変更アドレスは、前記第２のメモリデバイスに提供されている前記第１の変更アドレスに続く前記第２のメモリデバイスに提供される請求項１２に記載のシステム。
【請求項２０】
前記第１の変更アドレスは前記第１のメモリデバイスにおける記憶場所の第１のグループを参照し、
前記第２の変更アドレスは前記第２のメモリデバイスにおける記憶場所の第２のグループを参照し、
前記第１のメモリデバイスにおける記憶場所の前記第１のグループ及び前記第２のメモリデバイスにおける記憶場所の前記第２グループに対応するデータパターンをそこに記憶するデータバッファメモリを備え、
前記データバッファメモリは、前記データパターンを前記第１のメモリデバイス及び前記第２のメモリデバイスに並列に出力するように構成されており、それによって、前記データパターンは、記憶場所の前記第１のグループ及び記憶場所の前記第２のグループのそれぞれに同時に書き込まれる請求項１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、集積回路テスト技術に関し、より詳細には、メモリデバイスの自動テストのためのシステムおよび方法に関する。
【背景技術】
【０００２】
[関連出願の相互参照]
本出願は、２００４年２月３日に出願された米国仮特許出願番号第６０／５４１，５５５に対する優先権を主張するものであり、その全ての内容は、この参照によってこの中に取り込まれるものである。
【０００３】
集積回路（ＩＣ）デバイスの製造は、テストシステムまたはテスタを用いて、製造プロセスの様々な点において欠陥デバイスを取り除く。概して、２つのタイプのデジタルテスタがあり、それらはフラッシュメモリ又はランダムアクセスメモリ（ＲＡＭ）などのメモリアレイまたは回路をテストするのに適しており、また、マイクロコントローラ、特定用途向けＩＣ（ＡＳＩＣ）およびプログラム可能な論理回路（ＰＬＤ）などの論理回路をテストするのに適している。フラッシュメモリデバイスの一般的なタイプは、ＮＯＲフラッシュ、ＮＡＮＤフラッシュおよびシリアルデータフラッシュメモリを含む。
【０００４】
フラッシュメモリデバイスは、多くの場合、様々なデータ構成で生成される。典型的な製造のテストプロセスの部分として、アルゴリズムおよび非アルゴリズムのデータパターンの両方がデバイスにプログラムされ得る。さらに、顧客は、多くの場合、セルホンオペレーティングシステムなどの特定コードがデバイスを受け付ける前に製造業者によってデバイスにプログラムされることを望む。データパターン又は顧客の特定コードは、各データワードが行アドレスおよび列アドレスによって識別された状態でフラッシュメモリデバイスの特別な場所にプログラムされる。
【０００５】
ＮＡＮＤ型フラッシュメモリデバイスは、データ列として内部に構成される記憶セルを有する。各行は、典型的には、５１２のユーザプログラム可能なセルまたはデータビットおよびデバイス特性や欠陥情報を記憶するためにデバイス製造業者が使用するための１０から２０の付加ビットを有している。通常、行は、各ブロックが典型的には８から６４の行を有して“ブロック”の中に共にグループ化される。ユーザデータは、行をミラー化する高速シフトレジスタをロードし、その後、一斉にデータをシフトレジスタからその行の全てのデータビットに転送することによってシリアル方式でＮＡＮＤ型フラッシュの行にプログラムされる。
【０００６】
モノリシックのＮＡＮＤ型フラッシュデバイスは、多くの場合、２０億もの個別の記憶場所またはセルを含んでいる。１つの集積回路のこの多数の記憶場所がある状態で、１００％機能し得る記憶場所を有する完璧なデバイスを製造するのは多くの場合困難である。そのため、記憶セルの余分な行は、それらが、欠陥があり又はそうではなく動作不能である記憶セルを置換するのに用いられ得るような方法で、フラッシュメモリに設計される。欠陥があるセルの置換は、通常、良好な置換ブロックが欠点のあるセルを有するブロックの代わりに用いられてブロックレベルで行われる。ＩＣ業界では、余分なセルは、“冗長要素（redundant elements）”又は“冗長セル（redundant cells）”と呼ばれ、欠陥のあるデバイスの修理は、“リダンダンシー修理（redundancy repairs）”と呼ばれる。
【０００７】
欠陥のあるブロックがテストプロセスで検出される場合、欠陥ブロックのアドレスは“不良ブロックテーブル”に入力され、フラッシュメモリデバイスの設計場所に記憶される。不良ブロックテーブルは、後に欠陥のある記憶要素の場所を検出するのに用いられ得る。デバイス製造フローのこの時点から、欠陥ブロックは、もはやテストデータパターン又は顧客コードを用いてプログラムされない。冗長ブロックが存在する以上に欠陥ブロックが存在する場合には、デバイスは“修理不能である”とみなされ、廃棄される。
【発明の開示】
【課題を解決するための手段】
【０００８】
フラッシュメモリデバイスの記憶セル数が多いため、デバイスは、プログラムするのに長時間を要する。各フラッシュメモリの製造テスト時間は、通常、数分で測定される。テストのコストを削減するために、ＩＣ製造業者は、多くの場合、多くのＩＣデバイスを同時又は“並列に”にテストする。しかしながら、各フラッシュメモリデバイスは、通常、異なるセットの不良ブロックを有するため、多数のフラッシュメモリデバイスの同時又は並列のテストは、容易になされることはなく、一連のデータパターンが異なるフラッシュメモリデバイスの異なる行アドレスにプログラムされる必要がある。より多くのフラッシュメモリデバイスを伴う場合には、問題はさらに複雑になる。
【０００９】
本発明は、並列に配置される複数のメモリデバイスをプログラミングするための方法を提供する。本発明に係る一実施形態では、前記複数のメモリデバイスは、第１および第２のメモリデバイスを備え、前記方法は、前記第１のアドレスを前記第１のメモリデバイスに、前記第２のアドレスを前記第２のメモリアドレスに連続的に提供をすることを備える。前記第１アドレスは、前記第１のメモリデバイスにおける第１のグループの記憶場所を参照し、前記第２のアドレスは、前記第２のメモリデバイスにおける第２のグループの記憶場所を参照する。前記方法は、その後、前記第１および第２のメモリデバイスにデータのストリングを並列にロードし始め、前記データのストリングは、前記第１のメモリデバイスにおける前記第１のグループの記憶場所および前記第２のメモリデバイスにおける前記第２のグループの記憶場所に同時に書き込まれる。
【００１０】
また、本発明は、並列に複数のメモリデバイスをプログラミングするためのシステムを提供する。本発明に係る一実施形態では、前記複数のメモリデバイスは、第１および第２のメモリデバイスを備え、前記システムは、前記第１のメモリデバイスに対してメモリアドレスを、前記第２のメモリデバイスに対して同一のメモリアドレスを、連続的に発生させるように構成されるアドレス発生器を備えている。前記システムは、さらに、前記アドレス発生器と前記複数のメモリデバイスの間に接続され、前記メモリアドレスに対応する前記第１のメモリデバイスの記憶ユニットが動作不能であるかどうかを決定するように構成されるアドレス調整器を備えている。前記記憶ユニットが動作不能であるという決定に応答して、前記アドレス調整器は、第１の変更アドレスを発生し、動作不能な記憶ユニットを含む記憶場所の第１のコレクションをバイパスするように構成される。前記第１の変更アドレスは、前記第１のメモリデバイスに提供される。
【００１１】
また、アドレス調整器は、メモリアドレスに対応する第２のメモリデバイスの記憶ユニットが動作不能であるかどうかを決定するように構成される。記憶ユニットが動作不能であるという決定に応答して、アドレス調整器は、第２の変更アドレスを発生し、動作不能な記憶場所を含む記憶場所の第２のコレクションをバイパスするように構成される。第２の変更アドレスは、第１のメモリデバイスに提供される第１の変更アドレスに続く第２のメモリデバイスに提供される。本発明の一実施形態では、第１の変更アドレスは、第１のメモリデバイスにおける記憶場所の第１のグループを参照し、第２の変更アドレスは、第２のメモリデバイスにおける記憶場所の第２のグループを参照し、システムは、第１のメモリデバイスにおける第１のグループの記憶場所および第２のメモリデバイスにおける第２のグループの記憶場所に対応するデータパターンをその中に記憶するデータバッファメモリを備えている。データバッファメモリは、第１のメモリデバイスおよび第２のメモリデバイスに並列にデータパターンを出力するように構成されており、データパターンは、第１のメモリデバイスにおける第１のグループの記憶場所および第２メモリデバイスにおける第２のグループの記憶場所に同時に書き込まれる。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明に係る方法およびシステムに従うフラッシュメモリデバイスをテストするのに適したテスタ１００のブロック図である。図１に示されるように、テスタ１００は、ＭｉｃｒｏＲＡＭアドレスレジスタ（ＭＡＲ）１０２およびＭＡＲ１０２に接続されるＭｉｃｒｏＲＡＭモジュール１０４を備えている。テスタ１００は、さらに、アドレス発生器１２０、ループカウンタ・スタック１１０、およびブランチ論理回路１１２を備え、その各々は、ＭｉｃｒｏＲＡＭ１０４に接続されている。ブランチ論理１１２は、ループカウンタ・スタック１１０およびＭＡＲ１０２に付加的に接続されている。テスタ１００は、さらに、アドレス・トポロジカル・スクランブラー１２２、データ発生器１３０、およびデータバッファメモリ１３２を備えており、その各々は、アドレス発生器１２０に接続されている。テスタ１００は、さらに、データ発生器１３０およびデータバッファメモリ１３２に接続される多重化装置１３４と、アドレス・トポロジカル・スクランブラー１２２、多重化装置１３４およびＭｉｃｒｏＲＡＭ１０４に接続されるピンスクランブラー１４０とを備えている。ピンスクランブラー１４０は、それぞれ、順番にテスタピン１からｍに接続されるタイミング発生器１５０−１から１５０−ｍに付加的に接続されており、各々はｍピン以下を有する１又は複数のデバイスアンダーテスト（ＤＵＴ）を駆動させる。その数は、典型的には、６４ピン以下のＤＵＴをテストするために６４である。複数のテスタ１００は、非常に高いピンカウントテストを達成するために共にパッケージされ、より高いピンカウントＤＵＴをテストし又は並列により多くのＤＵＴをテストする。
【００１３】
通常の動作においては、アルゴリズムパターンは、（図示されていない）ホストコンピュータによってＭｉｃｒｏＲＡＭ１０４に対してロードされる。（図示されていない）テストサイトコンピュータおよび（図示されていない）クロックは、タイミング又はクロック信号をテスタ１００に提供してその動作を制御するために、テスタ１００に接続されている。ＭｉｃｒｏＲＡＭアドレスレジスタ１０２は、ＭｉｃｒｏＲＡＭ１０４をアドレス指定し、次の命令が実行されるようにする。ＭｉｃｒｏＲＡＭ１０４は、ループカウンタ・スタック１１０およびブランチ論理１１２に制御ビットを出力する。ループカウンタ・スタック１１０は、次のＭｉｃｒｏＲＡＭアドレスを決定してＭｉｃｒｏＲＡＭアドレスレジスタ１０２にロードするためにブランチ論理１１２と共に動作する。制御ビットが出力されるのと同時に、ＭｉｃｒｏＲＡＭ１０４からの付加的ビットはアドレス発生器１２０に送信される。アドレス発生器１２０の出力は、アドレス・トポロジカル・スクランブラー１２２、データ発生器１３０およびデータバッファメモリ１３２を駆動させる。アドレス・トポロジカル・スクランブラー１２２は、ＤＵＴのアドレスデコーダ（図示されていない）の通過後に、位相的に忠実なデータパターンをＤＵＴの内部アレー（図示されていない）に提供するランダムアクセスメモリを備えている。
【００１４】
レジスタベースのデータ発生器１３０は、ＤＵＴに対するデータパターンをアルゴリズム的に発生させる。アルゴリズム的なデータに加えて、データバッファメモリ１３２に記憶される非アルゴリズム的なデータパターンは、非アルゴリズム的なデータパターンを保持するランダムアクセスメモリを備え、アドレス発生器１２０からのアドレスの関数として配信される。ＭｉｃｒｏＲＡＭ１０４にロードされるテストプログラムは、どのデータソースが多重化装置１３４を介してＤＵＴに送信されるかを制御する（制御関係は図示されていない）。ピンスクランブラー１４０は、アドレス・トポロジカル・スクランブラー１２２およびデータ多重化装置１３４の出力の経路をＭｉｃｒｏＲＡＭ１０４からの命令に従ってＤＵＴの選択されたピンに定める。
【００１５】
明瞭性のために、既知である又は本発明と関連性のないテスタ１００の多くの詳細は省略した。これらの詳細に関する記載は、ダブルデータレートピンスクランブリングを有する半導体テストシステムと題する、公式に譲渡された米国特許第６，７５４，８６８号に見受けられ、その全ての内容は、参照によってこの中に取り込まれており、また、公式に譲渡され、共に係属中である、マルチタスキングアルゴリズムパターン発生器を有する半導体テストシステムと題する２００３年５月６日に出願された米国特許出願第１０／４３１，０４３；スタック半導体テストシステムおよびそれを動作させる方法と題する２００２年６月１２日に出願された米国特許出願第１０／１７０，９１６；および半導体デバイスをテストするためのパターンスクランブラーを有する装置およびそれを動作させる方法と題する２００２年１月４日に出願された米国特許出願１０／０３９，７３８号に見受けられ、その各々の全ての内容は、参照によってこの中に取り込まれている。
【００１６】
ＮＡＮＤ型フラッシュメモリは、一般に、少ないピン数のデバイスであり、単一のＮＡＮＤ型フラッシュメモリデバイスは例えば１６ピンを有する。それらの少ないピン数のため、多数のＮＡＮＤ型フラッシュＤＵＴは、１つのテスタに接続され得る。例えば、４つの１６ピンフラッシュメモリデバイスは、テスタ１００のような６４ピンのテスタに接続され得る。この例での最大テストスループットは、同様のテストが全４つのＤＵＴについて同時に実行されることが望ましい。欠陥があり又はそうではないが動作不能であるフラッシュメモリ記憶場所は、テストプロセスの一部として発見される場合、その欠陥のあるセルは、それぞれのＤＵＴの不良ブロックテーブルに記録され、それらの欠陥のあるセルはテストの残りに対してバイパスされる。特に、テストプログラミングおよび顧客データパターンが欠陥のある記憶セルを含む不良ブロックにプログラムされるべきではなく、代わりに記憶セルを機能させる次の利用可能な良好なブロックにシフトされるべきである。
【００１７】
一例として、図２は、並列にテストされるようになっているＤＵＴ３００およびＤＵＴ４００の２つのＤＵＴの各々におけるｎ＋１行の列を例証している。ＤＵＴ３００の行０から７を含むブロック３３０は、良好なブロックであり、行０のデータＡ、行１のデータＢ、．．．、行７のデータＨを有するデータパターンでプログラムされる。これは、次のブロックのブロック３４０が良好なブロックである場合にも、データＩが行８に書き込まれ、データＪが行９に書き込まれるなどと続く。ＤＵＴ４００のブロック４３０は、ＤＵＴ４００の行０から７を含む。しかしながら、ブロック４３０は、それが欠陥のある行すなわち行３を含み、それは、全体のブロック４３０を、ＤＵＴ４００の不良ブロックテーブルに記録されて使用できないようにするのでプログラムされるべきではない。ＤＵＴ３００を用いて同時にＤＵＴ４００をプログラムするためには、テスタは、ＤＵＴ３００とは別にＤＵＴ４００をアドレス指定する必要があり、ＤＵＴ４００のブロック３３０に書き込まれる同じデータパターンは、例えば行８のデータＡ、行９のデータＢなどを用いてＤＵＴ４００のブロック４３０の後の次の良好なブロックに書き込まれる。しかしながら、これは、以下に説明するように、テスタ１００の幾つかの改善なしに達成され得ない。
【００１８】
問題を説明するために、図３は、アドレス発生器１２０、アドレス・トポロジカル・スクランブラー１２２、およびデータバッファメモリ１３２を備えたテスタ１００の一部を示す。データバッファメモリ１３２は、ＤＵＴをプログラムするための非アルゴリズム的なデータパターンを記憶するのに用いられる。これは、ビデオゲームコード又はセルフォンオペレーティングシステムコードなどの顧客コードがテスタ１００に記憶される場合である。データバッファメモリ１３２は、行と列のアドレスおよびデータ幅に関して各ＤＵＴのイメージであるように構成される。行アドレスを含むアドレス発生器１２０によって発生されるＤＵＴアドレスは、アドレス・トポロジカル・スクランブラー１２２を介してＤＵＴのアドレスピンに送信され、また、データバッファメモリ１３２にも送信される。アドレスは、ＤＵＴのデータピンへの送信のために与えられたアドレスに対応するデータパターンを回復するためにデータバッファメモリ１３２によって用いられる。アルゴリズム的なテストデータが、製造プロセスの間に要求される場合、アルゴリズムデータ発生器１３０（図３には図示されていない）は、多重化装置１３４（図３には図示されていない）によってデータバッファメモリ１３２に代わりとして置換されても良い。
【００１９】
典型的なＮＡＮＤ型フラッシュＤＵＴのデータバスは８ビット幅である。従って、テスタ１００と典型的なＮＡＮＤ型フラッシュＤＵＴの間に交換される情報は、８ビットバス（図示されていない）に多重化され、このビット幅で、ＤＵＴに送信されＤＵＴから回復される。例えば、２０ビットの行アドレスＤＵＴに送信するのに３クロックサイクルかかる。図４は、一連の非アルゴリズム的なデータパターンをＮＡＮＤ型フラッシュメモリにプログラムするための典型的なコマンドストリームを示す。第１クロックサイクルでは、セットアップコマンド（ＣＭＤ）がＤＵＴ３００のようなＮＡＮＤ型フラッシュメモリＤＵＴに送信される。クロックサイクル２および３では、アドレス発生器１２０が、アドレス・トポロジカル・スクランブラー１２２を介してＤＵＴに送信される列アドレスを発生させ、一連の非アルゴリズム的なデータパターンをロードするための一列又は多数の列のうちの先頭列を識別する。列アドレスは、行アドレスに続き、行０などの記憶セルの行又はデータパターンが書き込まれることになる多数の行のうちの先頭行を識別する。データパターンをロードするための列及び／又は列の数は、より早く送信されたコマンドによって設定される。行アドレスは、アドレス発生器１２０によってクロックサイクル４、５および６で発生され、アドレス・トポロジカル・スクランブラー１２２を介してＤＵＴに送信される。その後、８ビットデータワードの長い文字列が、クロックサイクル７から２１１８にわたってデータバッファメモリ１３２からＤＵＴに送信されるデータ入力サイクルが生じる。クロックサイクル２１１９では、命令は、ＮＡＮＤ型フラッシュに送信され、データをその不揮発性の記憶セルにプログラムする。この時点で、ＮＡＮＤ型フラッシュＤＵＴはプログラミングサイクルに入り、テスタは、プログラミングサイクルが完了したことをＤＵＴが信号で知らせるまで、ＤＵＴのプログラミングフラグに応答指令信号を送るポーリングループに入る。ポーリングは、典型的には、テスタ１００がデータをロードするのと同じクロックサイクル又はそれ以上のクロックサイクルかかる。
【００２０】
図３および４に例証されるように、テスタ１００のアドレス発生器１２０は、行アドレスをＤＵＴのピンに送信するために１つの行アドレスレジスタのみを有するので、同じ行アドレスは、テスタ１００に接続される全てのＤＵＴに送信されなけなければならない。従って、図２に例証されるように、データＡからデータＨなどのデータパターンは、２つのＤＵＴにおいて異なる行アドレスにプログラムされる必要があるので、テスタ１００がＤＵＴ３００およびＤＵＴ４００を同時にプログラムすることは不可能である。ＮＡＮＤ型フラッシュデバイス製造において、典型的には、半分のデバイスは、幾つかの記憶セルが機能しない状態で終わり、不良ブロックを置換するのに冗長な記憶要素を必要とする。問題がより複雑になると、さらにより多くのＤＵＴが並列にテスタ１００に接続されるときでさえ、テスタ効率は減少する。ＤＵＴ待機時にはテストシステムハードウェアをアイドリングし、ＤＵＴをテストする全コストを大きく増加させて、ＤＵＴは、連続的にプログラムされなければならない。それゆえ、非アルゴリズム的である顧客コードは、製造中にＮＡＮＤ型フラッシュデバイスにプログラムされるのは稀である。
【００２１】
図５は、本発明に係る一実施形態に従って並列に多数のＮＡＮＤ型フラッシュＤＵＴをテストするためのテスタ２００を例証する。明瞭性のために、図５にはテスタ２００の一部のみが示されている。テスタ２００の他の要素がテスタ１００に類似している一方、テスタ２００はアドレス発生器１２０とＤＵＴの間に接続されるアドレス調整器５０５を備えている。アドレス発生器５０５は、各ＤＵＴにおけるメモリアドレスに対応する（記憶セルの行又はブロックなどの）記憶ユニットが動作不能であるかどうかを連続的に決定するように、そして、記憶ユニットが動作不能であるという決定に応答して、変更アドレスを発生させて、ＤＵＴにおける記憶場所のコレクションをバイパスするように構成される。記憶場所のコレクションは、特定のＤＵＴに動作不能な記憶ユニットを含んでいる。各ＤＵＴに対する変更アドレスは、それぞれのＤＵＴに提供される。
【００２２】
本発明に係る一実施形態では、図５に示されるように、アドレス調整器は、アドレス発生器１２０とアドレス・トポロジカル・スクランブラー１２２の間に接続されるアダー５１０およびアドレス発生器１２０とアダー５１０の間に接続される不良ブロック訂正計算器（ＢＢＣＣ）５２０を備えている。複数のＤＵＴがテスタ２００によって並列にプログラムされているとき、ＢＢＣＣ５２０は、ＤＵＴの各々における不良ブロックの場所に関する情報を記憶し、アドレス発生器１２０によって発生される各行アドレスに対して、また、プログラムされている各ＤＵＴに対して、行アドレスがＤＵＴの不良ブロックを示しているかどうかを決定するように構成される。行アドレスが、図２に示されるＤＵＴ４００の不良ブロック４３０のようなＤＵＴの不良ブロックに対応しているという決定に応答して、ＢＢＣＣ５２０は、さらに、アダー５１０に対するオフセットを生成するように構成されており、アダー５１０は、アドレス発生器１２０からの行アドレスにオフセットを追加し、変更された行アドレスをアドレス・トポロジカル・スクランブラー１２２に出力する。変更された行アドレスは、不良ブロック（例えばブロック４３０）又は隣接する不良ブロックを介して進み、ＤＵＴにおける不良ブロックの後にある次の良好なブロック（例えばブロック４４０）を指示する。
【００２３】
データバッファメモリ１３２に配信されるアドレスは不変であり、最初の行アドレスに対応するデータバッファメモリ１３２のデータは、アクセスされると、良好なブロックを示すアドレス・トポロジカル・スクランブラー１２２からの変更された行アドレスを用いて整列されるＤＵＴに送信される。アドレス発生器１２０が後に良好なブロックを示すの行アドレスを発生させたときに、良好なブロック（例えばブロック４４０）が上書きされないように、ＢＢＣＣは、それが各ＤＵＴに対して発生させたオフセットを蓄積するようにさらに構成され、蓄積されたオフセットは、それによって、以下により詳細に説明されるように、行アドレスをシフトするためにアダー５１０によって各々遅れて発生される行アドレスに追加される。
【００２４】
図６は、本発明の一実施形態に従ってテスタ２００に接続される４つのＮＡＮＤ型フラッシュＤＵＴ（ＤＵＴ＃１、ＤＵＴ＃２、ＤＵＴ＃３およびＤＵＴ＃４）を並列にプログラミングするための波形の一例を示す。図５に示されるように、全４つのＤＵＴが可能であり、クロックサイクル１、２および３で並列にＣＭＤおよび列アドレスが与えられる。その後、４つのＤＵＴは、潜在的に異なる行アドレスを連続的にクロックサイクル４から１６で与えられる。各々の行アドレスに対してそして続いて４つのＤＵＴの各々に対して、潜在的に異なる行アドレスを供給するために、アドレス調整器５０５は、行アドレスが不良ブロックを示すかどうかを決定し、それによって変更された行アドレスを発生させる。変更された行アドレスは、行アドレスによって示される不良ブロックを含む多くの隣接する不良ブロックをバイパスするが、その数は、おそらく各ＤＵＴに対して異なるものである。
【００２５】
したがって、各ＤＵＴに対して、潜在的に異なる変更された行アドレスが生成され、ＤＵＴに与えられる。図６に示されるように、ＤＵＴ＃１に対する変更された行アドレスは、クロックサイクル４、５および６でＤＵＴ＃１に送信される一方、全ての他の３つのＤＵＴは、書き込みからディセーブルされ、“ウェイト”状態にされ；ＤＵＴ＃２に対する変更された行アドレスは、クロックサイクル７、８および９でＤＵＴ＃２に送信される一方で、全ての他の３つのＤＵＴは書き込みからディセーブルされ、ウェイト状態にされ；ＤＵＴ＃３に対する変更された行アドレスは、クロック１０、１１および１２でＤＵＴ＃３に送信される一方で、全ての他の３つのＤＵＴは書き込みからディセーブルされ、ウェイト状態にされ；ＤＵＴ＃４に対する変更された行アドレスは、クロック１３、１４および１５でＤＵＴ＃４に送信される一方で、全ての他の３つのＤＵＴは書き込みからディセーブルされ、ウェイト状態にされる。この例では、２４ビットまでの行アドレスは、行アドレスを送信するのに３サイクルで送信され得る。
【００２６】
４つのＤＵＴは、図６に示されるように、シリアル方式で潜在的に異なる行アドレスで書き込まれた後に、データ入力サイクルがクロックサイクル１７から２１２７で生じ、２１１２データワードの長い文字列が並列に全てのＤＵＴにロードされる。１つのアドレス発生器１２０を用いて４つのＮＡＮＤ型フラッシュＤＵＴをプログラミングするこの例では、付加的なオーバヘッドは、プログラムデータをロードする際に消費される何千ものクロックサイクルに加えて９つの余分のクロックサイクルである。データ入力サイクル以上の長さのプログラミングサイクルがあれば、これは、余分なオーバヘッドの割合が９つの余分サイクル／（１ＣＭＤサイクル＋２列サイクル＋３行サイクル＋２１１８データサイクル＋２１１８プログラミングサイクル）＝０．２以下であることを意味する。換言すれば、この例での並列なプログラミングは、９９．８％又はそれ以上に有効である。
【００２７】
図７は、本発明の一実施形態に従うＢＢＣＣ５２０の処理系を例証する。図７に示されるように、ＢＢＣＣ５２０は、記憶ブロック６００−１から６００−ｎを備えており、各々はｎ個のフラッシュメモリＤＵＴのＤＵＴ−１からＤＵＴ−ｎの１つに対するものであり、テスタ２００によって並列にテストされ、この場合にｎは１より大きい整数である。記憶ブロック６００−１から６００−ｎの各々、幾つか又は全ては、記憶ブロック６００としてこの後に参照され得る。また、図７に示されるように、各記憶ブロック６００は、ＲＡＭ６１０、ホールディングレジスタ６２０、およびカウンタ６３０を備えている。各記憶ブロック６００におけるＲＡＭ６１０は、ＤＵＴにおけるフラッシュメモリアレイのテストの初期ラウンドの後に得られた不良なブロックテーブルに従って対応するＤＵＴにおける不良なブロックの場所に関する情報を記憶する。その情報は、不良なブロックアドレスリスト６１２、不良なブロックアドレスリスト６１４に関連するオフセット、及びアドレスオーバーフロー６１６を含んでいる。不良なブロックアドレスリスト６１２は、最小の不良なブロックアドレスから最大の不良なブロックアドレスの不良なブロックアドレスに実質的に対応するエントリのリストを備えている。隣接する不良なブロックが存在する場合、隣接する不良なブロックはグループ化され、グループ内の第１の不良なブロックのアドレスに関する情報のみが不良なブロックアドレスリスト６１２に入り、関連するオフセットはＲＡＭ６１０のオフセット６１４の１つとして記憶される。オフセットは、不良なブロックの数又は不良なブロックのグループの行の数を指示しており、不良なブロックアドレスリスト６１２における特定の不良なブロックアドレスと関連している。アドレスオーバーフロービットは、アドレスオーバーフロー状態（例えば、変更アドレスがＤＵＴの正当なアドレスを超えている状態）を指示するビットを含んでいる。不良なブロック情報がプログラミングを開始する前に知らされるので、アドレスオーバーフロー状態が検出され、アドレスオーバーフロービットがセットされる。アドレスオーバーフロービット６１６は、対応するＤＵＴでのプログラミングを停止するのに用いられ、又は、アドレスオーバーフロー状況が発生するような必要とされるときに他のアラーム状態を取り扱うようにセットするのに用いられ得る。
【００２８】
ＢＢＣＣ５２０は、さらに、多重化装置６４２、６４４及び６４６を備えており、それぞれはｎ個の記憶ブロック６００のそれぞれのブロックに接続されるｎ個のデータ入力を有している。多重化装置６４２のデータ入力は、ｎ個の記憶ブロックのそれぞれのブロックの不良なブロックアドレス出力６１３に接続されており、多重化装置６４４のデータ入力は、ｎ個の記憶ブロックのそれぞれのブロックのオフセット出力６１５に接続されており、多重化装置６４６のデータ入力は、ｎ個の記憶ブロックのそれぞれのブロックのホールディングレジスタ出力６２２に接続されている。ＢＢＣＣ５２０は、さらに、多重化装置６４２に接続される１つの入力と光マスクレジスタ６６０を介して図５のアドレス発生器１２０に接続される別の入力とを有するアドレス比較回路６５０、多重化装置６４４の出力に接続されるデータ入力６７２と比較回路６５０の出力に接続されるイネーブルターミナル（Ｅｎ）とを有するバッファ６７０、及びバッファ６７０の出力に接続される第１の入力と多重化装置６４６の出力に接続される第２の入力と図５のアダー５１０に接続される出力とを有するアダー６８０を備えている。アダー５１０の出力は、付加的に、各ホールディングレジスタ６２０のデータ入力６２１に接続され、比較回路６５０の出力は、付加的に、カウンタ６３０の入力に接続される。ＢＢＣＣ５２０は、さらに、記憶ブロック６１０のそれぞれと多重化装置６４２、６４４及び６４６のそれぞれの制御入力に接続されるＤＵＴ選択レジスタ（ＤＵＴセレクト）６９０を備えており、アドレス発生器１２０によって発生される行アドレスを変更するオフセットを生成するために記憶ブロック６１０の１つを連続的に選択するように構成される。
【００２９】
ＢＢＣＣ５２０の動作を例証するために、良好なブロック８３０、８５０、８６０、８９０でインターリーブされる不良なブロック８１０、８２０、８４０、８７０、８８０を有するＤＵＴ−１の列が図８Ａに示されており、記憶ブロック６００−１の不良なブロックアドレスリスト６１２の一部及び関連するオフセット６１４が図８Ｂに示されている。本実施形態では、ハードウェア構成を単純化するために、各不良なブロックアドレスは、不良なブロックアドレスリスト６１２に入る前に、アドレス指定された不良なブロックの上の不良なブロックの行数を補償するように調整される。そうする理由は、以下の議論で明らかになるであろう。ＤＵＴプログラミングを開始する前に、各記憶ブロック６００のホールディングレジスタ６２０はゼロに初期化され、各記憶ブロック６００のカウンタ６３０は対応する不良なブロックアドレスリスト６１２において第１のエントリ（例えば、不良なブロック８１０に対する０のエントリ）を指示するように初期化され、ＤＵＴセレクト６９０は、第１のＤＵＴ（例えば、ＤＵＴ−１）に対応する第１の記憶ブロック（例えば、記憶ブロック６００−１）を選択するために初期化される。記憶ブロック６００−１を選択するのと同時に、ＤＵＴセレクト６９０はまた、多重化装置６４２、６４４及び６４６に記憶ブロック６００−１からの出力を選択させる。従って、多重化装置６４２は、記憶ブロック６００−１の不良なブロックアドレスリスト６１２における第１のエントリ（例えば、不良なブロック８１０の０のエントリ）を比較回路６５０に生成するように構成され、アドレス発生器１２０から生じるアドレスの連続したアドレスに対して第１のエントリを比較するように構成される。光マスクレジスタ６６０は、比較回路６５０によって特定のアドレスビットがマスクされないように又は無視されるようにし、不良なブロックにおける行の代わりに不良なブロックが検出される。マスクレジスタ６６０なしに、ＢＢＣＣ５２０は、行ごと又はアドレスごとに動作する。
【００３０】
図７を参照しながら図８Ａ及び８Ｂに示される例を用いると、アドレス発生器１２０が行０に対するアドレスを発生させたとき、不良なブロック８１０がヒットされ、比較回路６５０は有効な比較を生成し、バッファ６７０がイネーブルされ、記憶ブロック６００−１のホールディングレジスタ６２０もイネーブルされ、カウンタ６３０は、次のクロックサイクルのために不良なブロックアドレスリスト６１２における次のエントリ（例えば、不良なブロック８４０に対する８のエントリ）を示すように１がインクリメントされる。バッファ６７０がイネーブルされると、多重化装置６４４を介してバッファ６７０に入力する不良なブロックアドレスリスト６１２における第１のエントリに関連するオフセット（例えば、２ブロックのオフセット）は通過してアダー６８０に到達する。アダー６８０は、このオフセットを対応するホールディングレジスタ６２０からの（現在は０である）蓄積されたオフセットに追加し、蓄積するオフセットは多重化装置６４６を介してアダー６８０に入り、その結果を図５のアダー５１０に送信する。アダー５１０は、上述のようにアドレス発生器１２０によって発生されるアドレスを変更するためにアダー６８０からの結果を用い、行０に対するアドレスは、次の良好なブロックであるブロック８３０の第１行である行１６のアドレスに対して２ブロックシフトされる。アダー６８０はまた、その結果を対応するホールディングレジスタ６２０に送信し、その結果は次のクロックサイクル中にホールディングレジスタに記録される。他のＤＵＴに対応する記憶ブロック６００−２から６００−ｎはＤＵＴセレクト６９０によって選択されないので、選択されていない記憶ブロックにおけるホールディングレジスタ６２０は比較器６５０からの有効な比較によってイネーブルされず、アダー６８０からの結果を取らない。
【００３１】
アドレス発生器１２０が同じ行アドレスを生成し続ける一方で、記憶ブロック６００−２が選択されるようにＤＵＴセレクト６９０はその後ＤＵＴ−２を選択すると、上述したものと同様のイベントは、潜在的に異なるオフセットがアダー６８０によって発生され、ＤＵＴ−２の不良なブロック構成に依存する記憶ブロック６００−２におけるホールディングレジスタ６２０で蓄積されることを除いて生じる。例えば、行アドレスは、ＤＵＴ−２の良好なブロックを示し、比較回路６５０は有効な比較を生成せず、バッファ６７０はイネーブルされず、アダー６８０に対してゼロを出力する。結果として、記憶ブロック６００−２におけるホールディングレジスタ６２０に記憶されるものは、変更されずにアダー６８０を通過する。ホールディングレジスタ６２０は、ゼロオフセットを保持するように初期化され、アダー６８０はまた、行アドレスが変更されずに図５のアダー５１０を進むようにゼロオフセットを生成する。ＤＵＴセレクト６９０が連続的に記憶ブロック６００の各々を選択した後、図６に示されるような一連のデータローディング及びプログラミングサイクルは、アドレスローディングサイクルの次のラウンドがＤＵＴ−１を再度選択してＤＵＴセレクト６９０を用いて始まる前に生じる。ＤＵＴ選択レジスタ６９０は、サイクルごとにテストシステムのユーザによってプログラムされ、又はＤＵＴのプログラミングにわたって自動的に実行するように構成され、ハードウェアを操作するユーザから負荷を緩和する。
【００３２】
他のＤＵＴに関連する議論は同様であるので、ＤＵＴ−１のみについて以下では詳細に議論する。第１の不良なブロックがヒットした後にアドレス発生器が行０に対するアドレスを発生させた場合、カウンタ６３０は、不良なブロックアドレスリスト６１２における次のエントリ（例えば不良なブロック８４０に対する８のエントリ）を示すようにインクリメントされる。アドレス発生器がその後に行２から７の行アドレスを発生させる場合、比較回路６５０は有効な比較を発生させない。結果として、バッファ６７０はイネーブルされず、ホールディングレジスタ６２０に記憶されるものは、図５のアダー５１０に対してアダー６８０を通過し、その結果として、行２から７のアドレスを行１７から２３のアドレスにそれぞれ２ブロックシフトする。アドレス発生器１２０が行８の行アドレスを発生させる場合、不良なブロックアドレスリスト６１２における不良なブロック８４０のアドレスに対してなされる調整のために、比較回路６５０は、不良なブロックリスト６１２における次のエントリがヒットされることを指示する有効な比較を出力する。従って、行アドレスを、２つのブロックを別の不良なブロックであるブロック８４０に着くように再度２ブロックシフトする代わりに、バッファ６７０はイネーブルされ、不良なブロックリスト６１２における８のエントリに関連する１のオフセットがホールディングレジスタ６２０に記憶されているものに追加されるようにする。結果として、３つのブロックのオフセットは、アダー６８０によって生成され、事前に記憶された蓄積されたオフセットを上書きするために図５のアダー５１０及びホールディングレジスタ６２０に送信される。アダー５１０に送信されるこのオフセット３は、行８のアドレスを不良なブロック８４０の次の良好なブロック８５０における第１の行である行３２にシフトする。それゆえ、ＢＢＣＣ５２０は、不良なブロックがプログラミング中に連続的にバイパスされることを可能にする。
【００３３】
図５及び７は、アドレス調整器５０５の一実装のみを例証するものである。その実装は、本発明の意図及び範囲から逸脱することなく変更され得る。例えば、図８Ｂと関連して上述したように、本発明の一実施形態では、各不良のブロックアドレスは、アドレスされた不良なブロック上の不良なブロックにおける行の数を不良なブロックアドレスリスト６１２に入る前に補償するように調整される。調整は、ハードウェア構成を単純化するためにソフトウェアで行ってもよい。本発明の代替的な実施形態では、調整はなされず、不良なブロックアドレスは、図８Ｃに示されるように直接的に不良なブロックアドレスリスト６１２に入れられる。代わりに、図９Ａ又は９Ｂに例証されるハードウェア変更は、ＢＣＣ５２０でなされ、不良なブロックが連続的にバイパスされるようにする。ＢＢＣＣ５２０の一部を例証する図９Ａに示されるように、ハードウェア変更は、各記憶ブロック６００のホールディングレジスタ６２０及び不良なブロックアドレス出力６１２に接続されるアダー６２５を含んでおり、不良なブロックアドレスからホールディングレジスタ６２０に記憶されるものをそれが比較回路６５０に送信される前に減算するように構成される。代替的には、図９Ｂに示されるように、各記憶ブロック６００に対するアダー６２５の代わりに、ハードウェア変更は、多重化装置６４２及び６４４の出力に接続される１つのアダー６３５であって、多重化装置６４２の出力から多重化装置６４６の出力を減算し、その結果を比較器６５０に送信するように構成される１つのアダー６３５のみを含むものであってもよい。アダー６２５又は６３５のように、テスタ２００の他の部分は、当業者に知られる均等物又はソフトウェアによって代用されてもよい。
【００３４】
本発明は、多くの実施形態によって述べられてきたが、この説明は、本発明の範囲を限定することを意味するものではない。非常に多くの変更は、この中に開示される本発明の意図及び範囲から逸脱することなしに当業者には明らかであろう。さらに、本発明の一定の態様がテスタのコンポーネントによって説明されている一方、これらのコンポーネントは他の応用においてテスタ以外のものに用いられてもよい。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施形態に従うフラッシュメモリデバイスをテストするのに適したテスタのブロック図である。
【図２】２つのフラッシュメモリデバイスのそれぞれにおけるメモリセルの列を例証するブロック図である。
【図３】図１に示されるテスタの一部を例証するブロック図である。
【図４】図１に示されるテスタによって用いられる指令の流れのブロック図である。
【図５】本発明の一実施形態に従う改善されたテスタを例証するブロック図である。
【図６】図５に示される改善されたテスタによって用いられる指令の流れを例証するブロック図である。
【図７】本発明に係る一実施形態に従う改善されたテスタの不良ブロック訂正計算器のブロック図である。
【図８Ａ】改善されたテスタによってテストされる複数のメモリデバイスの１つにおける記憶セルの列のブロック図である。
【図８Ｂ】本発明の一実施形態に従う不良ブロック訂正計算器に記憶される不良ブロックアドレスリストおよびオフセットのブロック図である。
【図８Ｃ】本発明の代替的な一実施形態に従う不良ブロック訂正計算器に記憶される不良ブロックアドレスリストおよびオフセットのブロック図である。
【図９Ａ】本発明の代替的な一実施形態に従う不良ブロック訂正計算器の一部のブロック図である。
【図９Ｂ】本発明のさらに別の代替的な一実施形態に従う不良ブロック訂正計算器のブロック図である。
【図１】
2007525754.tif 000003
【図２】
2007525754.tif 000004
【図３】
2007525754.tif 000005
【図４】
2007525754.tif 000006
【図５】
2007525754.tif 000007
【図６】
2007525754.tif 000008
【図７】
2007525754.tif 000009
【図８Ａ】
2007525754.tif 000010
【図８Ｂ】
2007525754.tif 000011
【図８Ｃ】
2007525754.tif 000012
【図９Ａ】
2007525754.tif 000013
【図９Ｂ】
2007525754.tif 000014
【手続補正書】
【提出日】平成18年10月6日(2006.10.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
並列に配置される複数のメモリデバイスをプログラミングする方法であって、
前記複数のデバイスは、第１と第２のメモリデバイスを備え、
連続的に第１のアドレスを前記第１のメモリデバイスに、第２のアドレスを前記第２のメモリデバイスに提供するステップであって、前記第１のアドレスは前記第１のメモリデバイスにおける第１のグループの記憶場所を参照し、前記第２のアドレスは前記第２のメモリデバイスにおける第２のグループの記憶場所を参照する前記提供するステップと、
データ列を前記第１と第２のメモリデバイスに並列にロードするステップと、を備え、
それによって、前記データ列は前記第１と第２のグループの記憶場所に同時に書き込まれる方法。
【請求項２】
前記第１と第２のアドレスは同一であることを特徴とする請求項１に記載の方法。
【請求項３】
前記第１と第２のアドレスは相違することを特徴とする請求項１に記載の方法。
【請求項４】
前記第１と第２のアドレスは行アドレスであり、
前記方法は、さらに、前記第１のアドレスを前記第１のメモリデバイスに、前記第２のアドレスを前記第２のメモリデバイスに提供する前に、共通の列アドレスを前記第１と第２のメモリデバイスに並列に提供することを備えた請求項１に記載の方法。
【請求項５】
前記ロードするステップは、前記第１のメモリデバイスにおける前記共通の列アドレス及び前記第１の行アドレスによって参照される記憶場所と、前記第２のメモリデバイスにおける前記共通の列アドレス及び前記第２の行アドレスによって参照される記憶場所に、前記データ列を同時にロードすることを含む請求項４に記載の方法。
【請求項６】
前記提供するステップは、前記複数のメモリデバイスのそれぞれに対して、メモリアドレスを発生させ、前記メモリアドレスが前記メモリデバイスにおける動作不能な記憶ユニットに対応するかどうかを決定し、前記メモリアドレスが動作不能な記憶ユニットに対応するという決定に応答して変更メモリアドレスを発生させ、前記変更メモリアドレスを前記メモリデバイスに提供することを備えた請求項１に記載の方法。
【請求項７】
前記決定するステップは、前記メモリアドレスが記憶された不良なアドレスに一致するかどうかを決定することを備えた請求項６に記載の方法。
【請求項８】
前記発生させるステップは、前記不良なアドレスに関連する記憶されたアドレスオフセットを取得し、前記アドレスオフセットに基づいて前記変更メモリアドレスを発生させることを備えた請求項７に記載の方法。
【請求項９】
第１のメモリアドレスを発生させるステップと、
前記第１のメモリアドレスが記憶された不良アドレスと一致するかどうかを決定するステップと、
前記不良なアドレスに関連するアドレスオフセットを取得するステップと、
前記第１のメモリアドレス及び前記アドレスオフセットに基づいて第２のメモリアドレスを発生させるステップと、
前記第２のメモリアドレスによって参照されるメモリ位置にデータ列をロードするステップとを備えたメモリデバイスをプログラミングする方法。
【請求項１０】
前記決定するステップは、前記メモリデバイスにおける不良なブロックに対応するエントリを不良なブロックアドレスリストから生成し、
前記エントリを前記第１のメモリアドレスと比較することを含む請求項９に記載の方法。
【請求項１１】
前記発生させるステップは、前記オフセットを前記第１のメモリアドレスに追加することを含む請求項９に記載の方法。
【請求項１２】
前記ロードするステップは、前記第２のメモリアドレスに対応するデータ列を前記第２のメモリアドレスによって参照されるメモリ位置にロードすることを含む請求項９に記載の方法。
【請求項１３】
複数のメモリデバイスをプログラミングするシステムであって、
メモリアドレスを発生させるように構成されるアドレス発生器と、
前記アドレス発生器と前記複数のメモリデバイスの間に接続され、前記複数のメモリデバイスの第１のメモリデバイスにおける前記メモリアドレスに対応する記憶ユニットが動作不能な記憶ユニットであるかどうかを決定するように構成されたアドレス調整器と、を備え、
前記記憶場所が動作不能な記憶ユニットであるという決定に応答し、前記第１のメモリデバイスにおける記憶場所の第１のコレクションをバイパスするために第１の変更アドレスを発生させ、
記憶場所の前記コレクションは前記動作不能な記憶ユニットを備え、
前記第１の変更アドレスは前記第１のメモリデバイスに提供されているシステム。
【請求項１４】
前記アドレス調整器は、記憶場所の前記第１のコレクションに関連する第１のオフセットを生成するように構成される不良なブロック訂正計算器と、前記第１の変更アドレスを発生させるために前記オフセットを前記メモリアドレスに追加するように構成されるアダーとを備えた請求項１３に記載のシステム。
【請求項１５】
前記不良なブロック訂正計算器は、前記複数のメモリデバイスのそれぞれにおける動作不能な記憶ユニットに関する情報を記憶するための記憶ブロックと、
前記第１のメモリデバイスに関連する記憶ブロックを選択するように構成されるデバイスセレクタと、
前記第１のメモリデバイスにおける前記第１のアドレスに対応する前記記憶ユニットが動作不能な記憶ユニットであるかどうかを決定するために、前記選択された記憶ブロックから引き出される記憶アドレスと前記メモリアドレスを比較するように構成される比較器と、を備えている請求項１４に記載のシステム。
【請求項１６】
前記第１のメモリ装置における動作不能な記憶ユニットに関する情報は、不良なブロックアドレスリスト及び前記不良なブロックアドレスリストにおけるそれぞれのエントリに関連するオフセットを備えている請求項１５に記載のシステム。
【請求項１７】
前記不良なブロックアドレスリストは、それぞれが不良なブロックのアドレスに対応するエントリを備え、各エントリに関連する前記オフセットは、前記エントリに対して隣接する不良なブロックの数を指示する請求項１６に記載のシステム。
【請求項１８】
各記憶ブロックに関連するホールディングレジスタであって、累積されるオフセットを記憶するホールディングレジスタと、
前記第１のオフセットを発生させるために、前記選択される記憶ブロックに関連する前記ホールディングレジスタから前記蓄積されるオフセットを、前記選択される記憶ブロックから引き出されるオフセットに追加するように構成されるアダーとをさらに備えている請求項１６に記載のシステム。
【請求項１９】
前記記憶ブロックからの出力の中から１つの出力を選択するように構成される少なくとも１つの多重化装置をさらに備えている請求項１５に記載のシステム。
【請求項２０】
前記アドレス発生器は、前記メモリアドレスの発生を繰り返すように構成され、
前記アドレス調整器は、前記複数のメモリデバイスの第２のメモリデバイスおける前記メモリアドレスに対応する記憶ユニットが動作不能な記憶ユニットであるかどうかを決定するように構成され、
前記記憶ユニットが動作不能な記憶ユニットであるという決定に応答して、前記第２のメモリデバイスにおける記憶場所の第２のコレクションをバイパスするために第２の変更アドレスを発生させ、
前記第２の変更アドレスは、前記第２のメモリデバイスに提供されている前記第１の変更アドレスに続く前記第２のメモリデバイスに提供される請求項１３に記載のシステム。
【請求項２１】
前記第１の変更アドレスは前記第１のメモリデバイスにおける記憶場所の第１のグループを参照し、
前記第２の変更アドレスは前記第２のメモリデバイスにおける記憶場所の第２のグループを参照し、
前記第１のメモリデバイスにおける記憶場所の前記第１のグループ及び前記第２のメモリデバイスにおける記憶場所の前記第２グループに対応するデータパターンをそこに記憶するデータバッファメモリを備え、
前記データバッファメモリは、前記データパターンを前記第１のメモリデバイス及び前記第２のメモリデバイスに並列に出力するように構成されており、それによって、前記データパターンは、記憶場所の前記第１のグループ及び記憶場所の前記第２のグループのそれぞれに同時に書き込まれる請求項２０に記載のシステム。