(57)【特許請求の範囲】
【請求項１】
複数の冗長セクタの各冗長セクタについて、前記冗長セクタと関連付けられた冗長データビットのセットをメモリデバイスに記録することと、
前記メモリデバイスを作動することに応じて、冗長データビットの各セットについて、マイクロコントローラのレジスタに冗長データビットの前記セットからのデータビットの第１量を含む第１サブセットをロードすることと、
前記メモリデバイスを作動することに応じて、冗長データビットの各セットについて、前記レジスタに冗長データビットの前記セットからのデータビットの前記第１量より少ない量を含む第２サブセットを備えるデータビットの第２セットをロードすることと、を含み、
前記第２サブセットは、前記第１サブセットに含まれる複数のビットを除く、
方法。
【請求項２】
前記第１量が、前記マイクロコントローラの帯域幅によって規定されるようなビット数である、請求項１に記載の方法。
【請求項３】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第１サブセットが１バイトの冗長データである、請求項１に記載の方法。
【請求項４】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第２サブセットが、前記マイクロコントローラの前記帯域幅によって規定されるような前記ビット数の一部である、請求項２に記載の方法。
【請求項５】
前記ビット数の前記一部が、前記マイクロコントローラの前記帯域幅によって規定されるような前記ビット数よりも小さい、請求項４に記載の方法。
【請求項６】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第２サブセットが他の１バイトの冗長データの一部である、請求項３に記載の方法。
【請求項７】
１バイトの冗長データの前記一部が１バイトの冗長データよりも小さい、請求項６に記載の方法。
【請求項８】
データビットの前記第２セットが、前記マイクロコントローラの帯域幅によって規定されるような一以上のビット数である、請求項２に記載の方法。
【請求項９】
冗長データビットの各セットについて、前記第２サブセットが、前記マイクロコントローラの前記帯域幅によって規定されるような前記ビット数よりも小さいビット数を含む、請求項８に記載の方法。
【請求項１０】
データビットの前記第２セットが１バイトの冗長データの一部である、請求項８に記載の方法。
【請求項１１】
データビットの前記第２セットが１バイトの冗長データである、請求項８に記載の方法。
【請求項１２】
データビットの前記第２セットが冗長データビットの八以下の前記セットのそれぞれについて第２サブセットを備える、請求項１に記載の方法。
【請求項１３】
プロセッサ及びメモリを備えるシステムであって、前記メモリが、前記プロセッサによって実行された場合に方法を実施する命令を含み、前記方法が、
複数の冗長セクタの各冗長セクタについて、前記冗長セクタと関連付けられた冗長データビットのセットをメモリデバイスに記録することと、
前記メモリデバイスを作動することに応じて、冗長データビットの各セットについて、前記プロセッサのレジスタに冗長データビットの前記セットからのデータビットの第１量を含む第１サブセットをロードすることと、
前記メモリデバイスを作動することに応じて、冗長データビットの各セットについて、前記レジスタに冗長データビットの前記セットからのデータビットの前記第１量より少ない量を含む第２サブセットを備えるデータビットの第２セットをロードすることと、を含み、
前記第２サブセットは、前記第１サブセットに含まれる複数のビットを除く、
システム。
【請求項１４】
前記第１量が、前記プロセッサの帯域幅によって規定されるようなビット数である、請求項１３に記載のシステム。
【請求項１５】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第１サブセットが１バイトの冗長データである、請求項１３に記載のシステム。
【請求項１６】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第２サブセットが、前記プロセッサの前記帯域幅によって規定されるような前記ビット数の一部である、請求項１４に記載のシステム。
【請求項１７】
前記ビット数の前記一部が、前記プロセッサの前記帯域幅によって規定されるような前記ビット数よりも小さい、請求項１６に記載のシステム。
【請求項１８】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第２サブセットが他の１バイトの冗長データの一部である、請求項１５に記載のシステム。
【請求項１９】
１バイトの冗長データの前記一部が１バイトの冗長データよりも小さい、請求項１８に記載のシステム。
【請求項２０】
データビットの前記第２セットが、前記プロセッサの帯域幅によって規定されるような一以上の前記ビット数である、請求項１４に記載のシステム。
【請求項２１】
冗長データビットの各セットについて、データビットの前記第２サブセットが、前記プロセッサの前記帯域幅によって規定されるような前記ビット数よりも小さいビット数を含む、請求項２０に記載のシステム。
【請求項２２】
データビットの前記第２セットが１バイトの冗長データの一部である、請求項２０に記載のシステム。
【請求項２３】
データビットの前記第２セットが１バイトの冗長データである、請求項２０に記載のシステム。
【請求項２４】
データビットの前記第２セットが冗長データビットの八以下の前記セットのそれぞれについて第２サブセットを備える、請求項１３に記載のシステム。
【請求項２５】
レジスタを備えるプロセッサと、
揮発性メモリと、
不揮発性メモリと、
前記不揮発性メモリ内の複数の冗長セクタの各冗長セクタについて冗長データビットのセットを前記不揮発性メモリに記録するルックアップテーブルと、を備え、前記不揮発性メモリを作動させると前記ルックアップテーブル内の冗長データビットの各セットが前記レジスタにロードされ、冗長データビットの前記セットのロードが、
前記不揮発性メモリを作動することに応じて、冗長データビットの各セットについて、前記揮発性メモリに冗長データビットの前記セットからのデータビットの第１量を含む第１サブセットをロードすることと、
前記不揮発性メモリを作動することに応じて、冗長データビットの各セットについて、前記揮発性メモリに冗長データビットの前記セットからのデータビットの前記第１量より少ない量を含む第２サブセットを備えるデータビットの第２セットをロードすることと、を含み、
前記第２サブセットは、前記第１サブセットに含まれる複数のビットを除く、
システム。
【請求項２６】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第１サブセットが１バイトの冗長データである、請求項２５に記載のシステム。
【請求項２７】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第２サブセットが１バイトの冗長データの一部である、請求項２５に記載のシステム。
【請求項２８】
１バイトの冗長データの前記一部が１バイトの冗長データよりも小さい、請求項２７に記載のシステム。
【請求項２９】
データビットの前記第２セットが１バイトの冗長データの一部である、請求項２５に記載のシステム。
【請求項３０】
データビットの前記第２セットが１バイトの冗長データである、請求項２９に記載のシステム。
【請求項３１】
データビットの前記第２セットが冗長データビットの八以下の前記セットのそれぞれについて第２サブセットを備える、請求項２５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
[001]  本開示は、一般にパワーオンリード時間要求に関し、更に特定すればパワーオンリード時間中の冗長情報のロードに関する。
【背景技術】
【０００２】
[002]  いくつかの用途では、パワーオンリード（ＰＯＲ）時間は、カスタマによって強調される重要な仕様である場合がある。１つの例示的な実施形態では、メモリデバイスに電力が供給されると、メモリデバイスは一連の初期化段階を経る。このＰＯＲ時間中、電源投入読み取りアルゴリズムが実行される。ＰＯＲアルゴリズムは、メモリデバイス（すなわちフラッシュメモリのマイクロコントローラ、ＳＲＡＭ、及びレジスタ）を、読み取り／書き込み及び消去の要求等のコマンドの受信準備が整った状態とするために必要なステップを実行することができる。
【０００３】
[003]  パワーオンリード時間の一部分として、冗長情報をロードするために要する時間がある。かかる情報（全ＰＯＲ時間の１０パーセント超を占めることがある）は、冗長セクタを常時監視するために用いられる。例示的なメモリデバイスは複数のセクタに分割することができ、全ての利用可能セクタ数が通常動作セクタ及び冗長セクタに分割される。通常動作セクタが不良であると識別されフラグが立っている場合、この不良セクタの代わりに冗長セクタの１つを用いることができる。１つの例示的な実施形態においては、冗長レジスタによって不良セクタのアドレスを冗長セクタの１つのアドレスで置換することができる。以下で更に詳しく論じるが、フラッシュメモリデバイスは、複数の通常セクタと、複数の冗長セクタと、冗長セクタの現在の使用に関する情報（特定の冗長セクタが不良の通常セクタを置換するために現在使用中であるか否か）を含む冗長情報を記憶するルックアップテーブルと、を含むことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[004]  カスタマ要求を満たすようにＰＯＲ時間を設計することはますます困難になっている。これは、特にフラッシュメモリデバイスがいっそう進歩してメモリ密度が高くなっていることによる。例えば、例示的な２５６Ｍｂメモリデバイスは８の冗長セクタを有するが、例示的な１６Ｇｂメモリデバイスは６４の冗長セクタを有する。現在、ＰＯＲ時間を速めるために２つの選択肢がある。すなわち、純粋なハードウェア実施及びソフトウェア効率の向上である。純粋なハードウェア実施には少なくとも３つの欠点がある。第１に、柔軟性がない。いったん特定のハードウェア実施形態が物理的に実現されると、それに変更を加えることは容易ではない。第２に、ハードウェアにそのような変更を行うと通常ダイサイズが大きくなる。また、ダイサイズが大きくなる新しいハードウェア実施形態の生成によって生産コストが増大する。第３に、純粋なハードウェア実施はソフトウェア実施よりも複雑である可能性がある。
【０００５】
[005]  従って、厳しいＰＯＲ時間要求が存在する場合のパワーオンリード実施にはソフトウェア実施が好適な選択である。しかしながら、ソフトウェア実施には対応する課題及び欠点がある。例えば、冗長情報をロードすることに実際のパワーオンリード時間の１０パーセント超が費やされる場合がある。冗長情報の長いロード時間の問題に加えて、メモリデバイスが大きくなると、ロード及び記憶しなければならない冗長情報量が多くなる。特に追加のメモリ要求があるＢｉＳＴロードスキームでは利用可能な記憶空間が限られており、メモリデバイスが大きくなると、効率的な冗長情報のロードのためのソフトウェア解決策は可能でない場合がある。かかる冗長情報ロードは非効率的であり、上述のようにメモリ容量が大きくなるにつれて悪化する。従って、冗長情報ロードを改良してＰＯＲ時間を短縮することが望ましい。
【課題を解決するための手段】
【０００６】
[006]  本発明は、パワーオンリード時間中に冗長情報をロードすることに伴う課題に対する解決策を提供する。本発明の一実施形態に従った方法において、冗長情報をロードするための方法を開示する。この方法は、複数の冗長セクタの各冗長セクタについて、冗長データセットの第１の部分を揮発性メモリにロードすることを含む。また、複数の冗長セクタの各冗長セクタについて、冗長データセットの第２の部分を揮発性メモリにロードする。各冗長セクタについての冗長データセットの第２の部分のロードは、複数の冗長セクタについての冗長データの複数の第２の部分を備える冗長データの第３の部分をロードすることを備える。
【０００７】
[007]  本発明の一実施形態に従ったシステムにおいて、冗長情報をロードするためのシステムを開示する。システムは、プロセッサ及びメモリを備え、前記メモリが、前記プロセッサによって実行された場合に方法を実施する命令を備える。この方法は、複数の冗長セクタの各冗長セクタについて、冗長データセットの第１の部分を揮発性メモリにロードすることを含む。また、複数の冗長セクタの各冗長セクタについて、冗長データセットの第２の部分を揮発性メモリにロードする。各冗長セクタについての冗長データセットの第２の部分のロードは、複数の冗長セクタについての冗長データの複数の第２の部分を備える冗長データの第３の部分をロードすることを備える。
【０００８】
[008]  本発明の一実施形態に従ったシステムにおいて、冗長情報をロードするためのシステムを開示する。システムは、プロセッサと、揮発性メモリと、不揮発性メモリと、ルックアップテーブルと、を備える。不揮発性メモリを作動させると、ルックアップテーブル内の冗長データが揮発性メモリにロードされる。冗長データのロードは、不揮発性メモリにおける複数の冗長セクタの各冗長セクタについて、冗長データセットの第１の部分を揮発性メモリにロードすることを備える。次いで、複数の冗長セクタの各冗長セクタについて、冗長データセットの第２の部分を揮発性メモリにロードする。冗長データセットの第２の部分のロードは、冗長データの第３の部分をロードすることを備える。冗長データの第３の部分は、不揮発性メモリにおける複数の冗長セクタについての冗長データの複数の第２の部分を備える。
【０００９】
[009]  本発明は、添付図面に関連付けて以下の詳細な説明を読むことからより良く理解されるであろう。添付図面において、同様の参照符号は同様の要素を示す。
【図面の簡単な説明】
【００１０】
【図１】[010]  本発明の一実施形態に従った、ルックアップテーブルからスタティックランダムアクセスメモリに冗長情報をロードするマイクロプロセッサの例示的な簡略ブロック図を示す。
【図２】[011]  従来技術に従った、各冗長セクタについて２バイトに配列された例示的な冗長情報ビットを示す。
【図３】[012]  従来技術に従った、例示的な２５６Ｍｂメモリデバイスの各冗長セクタについて２バイトに配列された例示的な冗長情報ビットを示す。
【図４】[013]  本発明の一実施形態に従った、例示的な２５６Ｍｂメモリデバイスの各冗長セクタについて２バイトに配列された例示的な冗長情報ビットを示す。
【図５】[014]  本発明の一実施形態に従った、メモリデバイスの各冗長セクタについて冗長情報をロードする方法の例示的なフロー図を示す。
【発明を実施するための形態】
【００１１】
[015]  これより本発明の好適な実施形態を詳細に参照する。添付図面にその例が示されている。本発明は公的な実施形態に関連付けて記載するが、これは本発明をこれらの実施形態に限定することを意図していないことは理解されよう。むしろ本発明は、添付の特許請求の範囲によって規定されるような本発明の精神及び範囲内に包まれ得る代替案、変更、及び均等物を包含することが意図される。更に、以下の本発明の実施形態の詳細な説明において、本発明の完全な理解を得るために多数の具体的な詳細事項を述べる。しかしながら、本発明はこれらの具体的な詳細事項がなくても実施可能であることは当業者には認められよう。他の例では、本発明の実施形態の態様を不必要に曖昧にしないために、周知の方法、手順、コンポーネント、及び回路については詳細には記載しない。本発明の実施形態を示す図面は、準概略図（semi-diagrammatic）であり、一定の縮尺通りではなく、特に、寸法のいくつかは提示の明確さのためのものであり、図面において強調して示す。同様に、記載を容易にするため、図面における図は概ね同様の方位を示すが、図面におけるこの表現はほとんどの場合は任意である。概して本発明はいかなる方位においても動作することができる。
【００１２】
表記及び用語
[016]  以下の詳細な説明のいくつかの部分は、コンピュータメモリ内でのデータビットに対する動作の手順、ステップ、論理ブロック、処理、及び他の記号表現に関して提示される。これらの記載及び表現は、データ処理技術の当業者によって、その業務の実体を他の当業者に最も効率良く伝えるために用いられる手段である。手順、コンピュータ実行ステップ、論理ブロック、プロセス等がここで述べられ、これらは一般に、所望の結果を生じる首尾一貫したステップ又は命令のシーケンスと考えられる。これらのステップは物理量の物理操作を必要とするものである。必須ではないが通常、これらの量は、コンピュータシステムにおいて記憶、転送、結合、比較、及び他の方法で操作することができる電気的又は磁気的信号の形態を取る。時として、特に一般的な使用のために、これらの信号をビット、値、要素、シンボル、キャラクタ、用語、数字等と称することが好都合であることがわかっている。
【００１３】
[017]  しかしながら、これらの及び同様の用語は全て、適切な物理量に関連付けられるものであり、単にこれらの量に適用される便利な標識に過ぎないことに留意すべきである。以下の考察から明らかであるように、特にそれ以外のことが述べられない限り、本発明全体を通して、「処理」又は「アクセス」又は「実行」又は「記憶」又は「レンダリング」等の用語を用いた考察は、コンピュータシステム又は同様の電子コンピューティングデバイスの行為及びプロセスを指すことは認められよう。この行為及びプロセスとは、コンピュータシステムのレジスタ及びメモリ及び他のコンピュータ読み取り媒体内の物理（電子）量として表現されるデータを操作し、コンピュータシステムメモリ又はレジスタ又は他のそのような情報記憶、伝送、又は表示デバイス内の物理量として同様に表現される他のデータに変換するものである。いくつかの実施形態においてあるコンポーネントが現れた場合、同一の参照番号を用いることで、そのコンポーネントが最初の実施形態で示されたものと同一のコンポーネントであることを表す。
【００１４】
[018]  本発明の実施形態は、メモリデバイス記憶容量が拡大し続けることに伴って短い冗長情報ロード時間を維持することにつきまとう課題の増大に対する解決策を提供する。更に、本発明の実施形態は、所与のメモリデバイスについてロード及び記憶することが必要なデータ量を低減することによって記憶及びロード要求の増大に対する解決策を提供する。以下で詳細に論じるように、本開示の様々な実施形態は冗長情報ロードスキームを提供し、これは、特定の冗長セクタの冗長情報ビットを、「低い」部分及び「高い」部分に分割する（一実施形態では、低い部分は１バイトのデータすなわち低バイトであり、高い部分も１バイトのデータすなわち高バイトである）。以下で詳細に論じるように、複数の冗長セクタの高バイトを組み合わせて少なくとも１つの組み合わせ高バイトとすることができる。他の実施形態では、低い部分及び高い部分は他の何らかのビット量とすることも可能である。以下で詳細に論じるように、各冗長セクタの低バイトと、複数の冗長セクタの複数の高バイトを備える少なくとも１つの組み合わせ高バイトと、をロードすることによって、冗長情報ロード時間を短縮することができる。かかるロードスキームは、結果として、所与のメモリデバイスにロードしなければならない冗長データ量を低減することができる。
【００１５】
[019]  １つの例示的な実施形態においては、図１に示すように、フラッシュメモリデバイス１００のＴＲＩＭセクタ１０２に、冗長セクタ１１０のための最適化冗長情報を記憶することができる。一実施形態では、ＴＲＩＭセクタ１０２内の冗長情報はルックアップテーブルとして記憶される。一実施形態では、ＴＲＩＭセクタ１０２に記憶された冗長情報はマイクロコントローラ１０６によって最適化されている。ＳＲＡＭ１０４に一時的に記憶された冗長情報を最適化した後、最適化冗長情報を記憶するためにＴＲＩＭセクタ１０２に転送することができる。以下で論じるように、ＰＯＲアルゴリズムの実行中、ＴＲＩＭセクタ１０２に記憶された冗長情報をフラッシュメモリ１００内の冗長レジスタ１０８に転送することができる。一実施形態では、冗長レジスタ１０８は複数のフリップフロップである。一実施形態では、ＰＯＲアルゴリズム中に冗長情報を冗長レジスタ１０８にロードした後、ロードした冗長情報は、読み取り、書き込み、又は消去のコマンドがある場合はいつでも容易かつ迅速にアクセスすることができる。次いでフラッシュメモリデバイス１００は、ターゲットのセクタが、冗長レジスタにリスト化された冗長セクタの１つによって修理（例えば置換）されたか否かをチェックすることができ、必要に応じてコマンドを置換冗長セクタに転送することができる。
【００１６】
[020]  上述のように、また図１に示すように、フラッシュメモリは、マイクロコントローラ１０６がソフトウェア解決策を実施して柔軟性を達成することで実施可能である。例示的な実施形態では、８ビットマイクロコントローラ（ＭＣＵ）を用いてソフトウェア柔軟性を達成することができるが、ハードウェア解決策に比べて、得られるＰＯＲ時間は遅くなる。以下で詳細に論じるように、８ビットマイクロコントローラは、一度に１バイト（例えば８ビット）ずつ冗長データを冗長レジスタ１０８にロードする必要がある。
【００１７】
[021]  更に、３２の冗長セクタを有する例示的な２Ｇｂメモリデバイスは３２セットの冗長情報を有し、各冗長セクタについて１２ビットの冗長データが１セットである。８ビットマイクロコントローラ（ＭＣＵ）を用いるような一実施形態では、１２ビットを２バイトずつに分割することができる。一実施形態では、冗長情報のバイトは一度に１バイトずつロードされる。従って、２Ｇｂメモリデバイスのための冗長情報のロード中に、３２セットの冗長情報では合計６４バイトのデータをロードする必要がある。
【００１８】
[022]  以下の表１は、例示的な８ビットマイクロプロセッサ（ＭＣＵ）１０６を用いる異なるメモリデバイス密度について、従来の冗長情報ロード及びＰＯＲ時間を示す。３００μｓの例示的なＰＯＲ時間仕様では、従来の実施は８Ｇｂ以上の密度のメモリデバイスでは失敗である。上述のように、この例示的な実施形態は８ビットマイクロコントローラ１０６を利用するので、冗長情報を低バイト及び高バイトに分割することができる。表１に示すように、各冗長セクタについて冗長情報を２バイトに分割すると、従来技術に従った例示的な２５６Ｍｂメモリデバイスでは１６バイトの冗長情報をロードする必要があるが、１６Ｇｂメモリデバイスでは１２８バイトの冗長情報をロードする必要がある。
【００１９】
[023]  また、表１に示すように、２５６Ｍｂメモリデバイスから１６Ｇｂメモリデバイスについての例示的な冗長データロード時間は８．３２μｓから６６．５６μｓまで変動する。従って、表１にも示すように、冗長ロード時間が長くなることで、８Ｇｂ以上のメモリデバイスは３００μｓという例示的な仕様の要求を満たせない。上述のように、冗長情報をロードするために従来のソフトウェア解決策を用いることは、８Ｇｂ以上のメモリデバイスでは不可能である。
【表１】
0005808506.tif 000002
【００２０】
[024]  図２に示すように、８の冗長セクタを有する例示的な２５６Ｍｂメモリデバイスは、各冗長セクタについて９ビットの冗長情報２０２を含む。図２に示すように、８の冗長セクタを有する例示的な５１２Ｍｂメモリデバイスは、各冗長セクタについて１０ビットの冗長情報２０４を含む。図２に示すように、１６の冗長セクタを有する例示的な１Ｇｂメモリデバイスは、各冗長セクタについて１１ビットの冗長情報２０６を含む。また、図２に示すように、例示的な２Ｇｂメモリデバイスは各冗長セクタについて１２ビットの冗長情報２０８を含み、例示的な４Ｇｂメモリデバイスは各冗長セクタについて１３ビットの冗長情報２１０を含み、例示的な８Ｇｂメモリデバイスは各冗長セクタについて１４ビットの冗長情報２１２を含み、例示的な１６Ｇｂメモリデバイスは各冗長セクタについて１５ビットの冗長情報２１４を含む。
【００２１】
冗長ロード効率の向上
[025]  １つの例示的な実施形態においては、冗長データバイトのロード数を削減することによってＰＯＲ時間を短縮することができる。簡略化のために、例示的な２５６Ｍｂメモリデバイスの例を示す。図３に示すように、例示的な２５６Ｍｂメモリデバイスは、各冗長セクタ（ＲＥＤ０〜ＲＥＤ７）について９ビットの冗長情報３０２を必要とする（２８＝２５６、８ビット＋１イネーブルビット＝９ビット）。低バイトはすでに一杯であるので、ビット８であるイネーブルビットは各冗長情報の高バイトに記憶される。この従来のスキームでは、ＰＯＲ時間中に合計１６バイトの冗長データがロードされる（各冗長セクタについて２バイトずつ）。
【００２２】
[026]  図４に示すように、８個のイネーブルビット（高バイトのビット８）を全て、単一のバイト４０２にグループ化することができる。従ってこの例示的な実施形態では、例示的な２５６Ｍｂメモリデバイスの冗長データを記憶するために必要なのは、従来の１６バイトでなく９バイトのみである。図４に示すように、例示的な９バイトの冗長情報は、各冗長セクタ（ＲＥＤ０〜ＲＥＤ７）について１つの低バイトである合計８個の低バイト４０４を備え、残りのバイト４０２は８個のイネーブルビット（各高バイトのビット８）を含む。この例では、それぞれが単一ビットのみを含む８個の高バイトをロードするのではなく、単独ビットを単一の組み合わせ高バイトにグループ化する。この例示的な実施形態は、従来の冗長情報ロードスキームに必要なバイト数に比べて４３．７５％の削減が可能であることを表している。
【００２３】
[027]  以下の表２は、上述の例示的な冗長情報ロード方法を用いることによって異なる例示的なフラッシュメモリデバイス密度において達成される計算の軽減の比較を示す。
【表２】
0005808506.tif 000003
【００２４】
[028]  図４は例示的な２５６Ｍｂメモリデバイスについて各冗長セクタの高バイトの内容を組み合わせた結果を示すが、本発明の実施形態は他のメモリデバイスにも適用可能である。例えば本発明に従った例示的な２Ｇｂメモリデバイスにおいて、ルックアップテーブル１０２に記憶された冗長情報は、表２に示すように、３２の低バイト及び１６の組み合わせ高バイトすなわち合計４８バイトを備えることができる。図２に示すように、例示的な２Ｇｂメモリデバイスでは、各冗長セクタは、８ビットを含む低バイト及び４ビットを含む高バイトを備える。冗長セクタの高バイトのビットを組み合わせると、結果的に上述の１６の組み合わせ高バイトとなる。更に別の例では、図２及び表２に示すように、各々が１４ビットである６４の冗長セクタを備える例示的な８Ｇｂメモリデバイスでは、合計１１２バイトをロードすることができ、従来の冗長ロードスキームから１６バイトの削減となる。上述の８Ｇｂメモリデバイスでは、各高バイトの６ビットを組み合わせて４８の組み合わせ高バイトとすることができ、従来の６４の高バイトから削減されている。
【００２５】
[029]  図５に、任意の冗長情報ロード効率のための例示的な方法を示す。図５のステップ５０２において、冗長情報ロードを開始する。図５のステップ５０４において、冗長カウンタをセットする。９バイトの冗長情報をロードする例示的な実施形態では、冗長カウンタを９にセットする。上述のような２５６Ｍｂメモリデバイスの例示的な実施形態では、各冗長セクタについて９ビットの冗長情報をロードする。最初の８ビット（低バイトの）は最初の８バイトに含まれ、各冗長セクタの高バイトの残りのビット８は第９バイトに含まれる。これが組み合わせ高バイトである。上述のように、様々なメモリデバイスの実施形態では、１冗長セクタ当たりに必要な冗長情報ビット数が異なる。各メモリデバイスでは、各冗長セクタについて備えられる低バイトは一杯になっているが、各冗長セクタが備える高バイトは様々なビット数を含んでいる。例えば、例示的な２５６Ｍｂメモリデバイスは各高バイトに１ビットを含むが、例示的な８Ｇｂメモリデバイスは各高バイトに６ビットを含む。上述のように、高バイトにおけるビットを組み合わせてもっと少数の組み合わせ高バイトとすることができる。従って、冗長情報をロードするために必要な合計バイト数は、各冗長セクタについて１低バイト及び多数の組み合わせ高バイトである。
【００２６】
[030]  図５のステップ５０６において、冗長情報ルックアップテーブルのための開始アドレスをセットする。上述のように、ルックアップテーブルは図１に示すようなフラッシュメモリのＴＲＩＭセクタ１０２に存在することができる。図５のステップ５０８において、冗長レジスタ１０８の開始アドレスもセットする。一実施形態では、冗長レジスタ１０８は複数のフリップフロップとして実施される。図５のステップ５１０では、アドレスした冗長情報についてルックアップテーブルから冗長情報を読み取る。図５のステップ５１２では、ステップ５１０で読み取った冗長情報を冗長レジスタ１０８に書き込む。図５のステップ５１４では、冗長カウンタを１だけ減らす。図５のステップ５１６では、冗長カウンタを読み取る。カウンタの読み取りが０である場合、方法は図５のステップ５１８に進んで終了する。冗長カウンタの読み取りがゼロよりも大きい値である場合、方法はステップ５１０に戻って、次のアドレスされた冗長情報についてルックアップテーブルから冗長情報の次の部分を読み取る。
【００２７】
[031]  本明細書に含まれる実施形態では８ビットマイクロコントローラを用いたが、他のマイクロコントローラを用いることも可能である。例えば、異なる冗長情報ロード基準と共に１６ビットマイクロコントローラを用いることができる。１６ビットマイクロコントローラは異なるサイズのレジスタを有する場合があるからである。従って、ＴＲＩＭセクタ１０２から冗長レジスタ１０８に冗長情報を渡すための最大データ帯域幅は、用いるマイクロコントローラの容量の関数である。
【００２８】
[032]  いくつかの好適な実施形態及び方法を本明細書において開示したが、前述の開示から、本発明の精神及び範囲から逸脱することなくそのような実施形態及び方法の変形及び変更を実施可能であることは当業者には明らかであろう。本発明は、添付の特許請求の範囲並びに適用可能な法律の規定及び原理によって必要とされる程度にのみ限定されることが意図される。
【図１】
0005808506.tif 000004
【図２】
0005808506.tif 000005
【図３】
0005808506.tif 000006
【図４】
0005808506.tif 000007
【図５】
0005808506.tif 000008