特許第5808506号(P5808506)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ スパンション エルエルシーの特許一覧

<>
  • 特許5808506-冗長ロード効率の向上 図000004
  • 特許5808506-冗長ロード効率の向上 図000005
  • 特許5808506-冗長ロード効率の向上 図000006
  • 特許5808506-冗長ロード効率の向上 図000007
  • 特許5808506-冗長ロード効率の向上 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5808506
(24)【登録日】2015年9月18日
(45)【発行日】2015年11月10日
(54)【発明の名称】冗長ロード効率の向上
(51)【国際特許分類】
   G06F 12/16 20060101AFI20151021BHJP
   G06F 12/06 20060101ALI20151021BHJP
   G06F 12/00 20060101ALI20151021BHJP
【FI】
   G06F12/16 310P
   G06F12/16 320A
   G06F12/06 520F
   G06F12/00 597U
   G06F12/00 550A
【請求項の数】31
【全頁数】16
(21)【出願番号】特願2014-557699(P2014-557699)
(86)(22)【出願日】2013年2月8日
(65)【公表番号】特表2015-510645(P2015-510645A)
(43)【公表日】2015年4月9日
(86)【国際出願番号】US2013025417
(87)【国際公開番号】WO2013122836
(87)【国際公開日】20130822
【審査請求日】2014年10月14日
(31)【優先権主張番号】13/399,537
(32)【優先日】2012年2月17日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】504378124
【氏名又は名称】スパンション エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】オング,ウェイ−ケント
(72)【発明者】
【氏名】ベ,ジ−ホン
(72)【発明者】
【氏名】ラウ,セイ−ウェイ,ヘンリー
(72)【発明者】
【氏名】アン,オン−プ
【審査官】 中野 裕二
(56)【参考文献】
【文献】 特開2007−241896(JP,A)
【文献】 米国特許出願公開第2007/0214310(US,A1)
【文献】 特開2002−109895(JP,A)
【文献】 米国特許第06031758(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/16
G06F 12/00
G06F 12/06
(57)【特許請求の範囲】
【請求項1】
複数の冗長セクタの各冗長セクタについて、前記冗長セクタと関連付けられた冗長データビットのセットをメモリデバイスに記録することと
前記メモリデバイスを作動することに応じて、冗長データビットの各セットについて、マイクロコントローラのレジスタに冗長データビットの前記セットからのデータビットの第1量を含む第1サブセットをロードすることと、
前記メモリデバイスを作動することに応じて、冗長データビットの各セットについて、前記レジスタに冗長データビットの前記セットからのデータビットの前記第1量より少ない量を含む第2サブセットを備えるデータビットの第2セットをロードすることと、を含み、
前記第2サブセットは、前記第1サブセットに含まれる複数のビットを除く、
方法。
【請求項2】
前記第1量が、前記マイクロコントローラの帯域幅によって規定されるようなビット数である、請求項1に記載の方法。
【請求項3】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第1サブセットが1バイトの冗長データである、請求項1に記載の方法。
【請求項4】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第2サブセットが、前記マイクロコントローラの前記帯域幅によって規定されるような前記ビット数の一部である、請求項2に記載の方法。
【請求項5】
記ビット数の前記一部が、前記マイクロコントローラの前記帯域幅によって規定されるような前記ビット数よりも小さい、請求項4に記載の方法。
【請求項6】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第2サブセット他の1バイトの冗長データの一部である、請求項3に記載の方法。
【請求項7】
1バイトの冗長データの前記一部が1バイトの冗長データよりも小さい、請求項6に記載の方法。
【請求項8】
データビットの前記第2セットが、前記マイクロコントローラの帯域幅によって規定されるような一以上のビット数である、請求項2に記載の方法。
【請求項9】
冗長データビットの各セットについて、前記第2サブセットが、前記マイクロコントローラの前記帯域幅によって規定されるような前記ビット数よりも小さいビット数を含む、請求項8に記載の方法。
【請求項10】
データビットの前記第2セットが1バイトの冗長データの一部である、請求項8に記載の方法。
【請求項11】
データビットの前記第2セットが1バイトの冗長データである、請求項8に記載の方法。
【請求項12】
データビットの前記第2セットが冗長データビットの八以下の前記セットのそれぞれについて第2サブセット備える、請求項1に記載の方法。
【請求項13】
プロセッサ及びメモリを備えるシステムであって、前記メモリが、前記プロセッサによって実行された場合に方法を実施する命令を含み、前記方法が、
複数の冗長セクタの各冗長セクタについて、前記冗長セクタと関連付けられた冗長データビットのセットをメモリデバイスに記録することと
前記メモリデバイスを作動することに応じて、冗長データビットの各セットについて、前記プロセッサのレジスタに冗長データビットの前記セットからのデータビットの第1量を含む第1サブセットをロードすることと、
前記メモリデバイスを作動することに応じて、冗長データビットの各セットについて、前記レジスタに冗長データビットの前記セットからのデータビットの前記第1量より少ない量を含む第2サブセットを備えるデータビットの第2セットをロードすることと、を含み、
前記第2サブセットは、前記第1サブセットに含まれる複数のビットを除く、
システム。
【請求項14】
前記第1量が、前記プロセッサの帯域幅によって規定されるようなビット数である、請求項13に記載のシステム。
【請求項15】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第1サブセットが1バイトの冗長データである、請求項13に記載のシステム。
【請求項16】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第2サブセットが、前記プロセッサの前記帯域幅によって規定されるような前記ビット数の一部である、請求項14に記載のシステム。
【請求項17】
記ビット数の前記一部が、前記プロセッサの前記帯域幅によって規定されるような前記ビット数よりも小さい、請求項16に記載のシステム。
【請求項18】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第2サブセット他の1バイトの冗長データの一部である、請求項15に記載のシステム。
【請求項19】
1バイトの冗長データの前記一部が1バイトの冗長データよりも小さい、請求項18に記載のシステム。
【請求項20】
データビットの前記第2セットが、前記プロセッサの帯域幅によって規定されるような一以上の記ビット数である、請求項14に記載のシステム。
【請求項21】
冗長データビットの各セットについて、データビットの前記第2サブセットが、前記プロセッサの前記帯域幅によって規定されるような前記ビット数よりも小さいビット数を含む、請求項20に記載のシステム。
【請求項22】
データビットの前記第2セットが1バイトの冗長データの一部である、請求項20に記載のシステム。
【請求項23】
データビットの前記第2セットが1バイトの冗長データである、請求項20に記載のシステム。
【請求項24】
データビットの前記第2セットが冗長データビットの八以下の前記セットのそれぞれについて第2サブセット備える、請求項13に記載のシステム。
【請求項25】
レジスタを備えるプロセッサと、
揮発性メモリと、
不揮発性メモリと、
前記不揮発性メモリ内の複数の冗長セクタの各冗長セクタについて冗長データビットのセットを前記不揮発性メモリに記録するルックアップテーブルと、を備え、前記不揮発性メモリを作動させると前記ルックアップテーブル内の冗長データビットの各セットが前記レジスタにロードされ、冗長データビットの前記セットのロードが、
前記不揮発性メモリを作動することに応じて、冗長データビットの各セットについて、前記揮発性メモリに冗長データビットの前記セットからのデータビットの第1量を含む第1サブセットをロードすることと、
前記不揮発性メモリを作動することに応じて、冗長データビットの各セットについて、前記揮発性メモリに冗長データビットの前記セットからのデータビットの前記第1量より少ない量を含む第2サブセットを備えるデータビットの第2セットをロードすることと、を含み、
前記第2サブセットは、前記第1サブセットに含まれる複数のビットを除く、
システム。
【請求項26】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第1サブセットが1バイトの冗長データである、請求項25に記載のシステム。
【請求項27】
冗長データビットの各セットについて、冗長データビットの前記セットの前記第2サブセットが1バイトの冗長データの一部である、請求項25に記載のシステム。
【請求項28】
1バイトの冗長データの前記一部が1バイトの冗長データよりも小さい、請求項27に記載のシステム。
【請求項29】
データビットの前記第2セットが1バイトの冗長データの一部である、請求項25に記載のシステム。
【請求項30】
データビットの前記第2セットが1バイトの冗長データである、請求項29に記載のシステム。
【請求項31】
データビットの前記第2セットが冗長データビットの八以下の前記セットのそれぞれについて第2サブセット備える、請求項25に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
[001] 本開示は、一般にパワーオンリード時間要求に関し、更に特定すればパワーオンリード時間中の冗長情報のロードに関する。
【背景技術】
【0002】
[002] いくつかの用途では、パワーオンリード(POR)時間は、カスタマによって強調される重要な仕様である場合がある。1つの例示的な実施形態では、メモリデバイスに電力が供給されると、メモリデバイスは一連の初期化段階を経る。このPOR時間中、電源投入読み取りアルゴリズムが実行される。PORアルゴリズムは、メモリデバイス(すなわちフラッシュメモリのマイクロコントローラ、SRAM、及びレジスタ)を、読み取り/書き込み及び消去の要求等のコマンドの受信準備が整った状態とするために必要なステップを実行することができる。
【0003】
[003] パワーオンリード時間の一部分として、冗長情報をロードするために要する時間がある。かかる情報(全POR時間の10パーセント超を占めることがある)は、冗長セクタを常時監視するために用いられる。例示的なメモリデバイスは複数のセクタに分割することができ、全ての利用可能セクタ数が通常動作セクタ及び冗長セクタに分割される。通常動作セクタが不良であると識別されフラグが立っている場合、この不良セクタの代わりに冗長セクタの1つを用いることができる。1つの例示的な実施形態においては、冗長レジスタによって不良セクタのアドレスを冗長セクタの1つのアドレスで置換することができる。以下で更に詳しく論じるが、フラッシュメモリデバイスは、複数の通常セクタと、複数の冗長セクタと、冗長セクタの現在の使用に関する情報(特定の冗長セクタが不良の通常セクタを置換するために現在使用中であるか否か)を含む冗長情報を記憶するルックアップテーブルと、を含むことができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
[004] カスタマ要求を満たすようにPOR時間を設計することはますます困難になっている。これは、特にフラッシュメモリデバイスがいっそう進歩してメモリ密度が高くなっていることによる。例えば、例示的な256Mbメモリデバイスは8の冗長セクタを有するが、例示的な16Gbメモリデバイスは64の冗長セクタを有する。現在、POR時間を速めるために2つの選択肢がある。すなわち、純粋なハードウェア実施及びソフトウェア効率の向上である。純粋なハードウェア実施には少なくとも3つの欠点がある。第1に、柔軟性がない。いったん特定のハードウェア実施形態が物理的に実現されると、それに変更を加えることは容易ではない。第2に、ハードウェアにそのような変更を行うと通常ダイサイズが大きくなる。また、ダイサイズが大きくなる新しいハードウェア実施形態の生成によって生産コストが増大する。第3に、純粋なハードウェア実施はソフトウェア実施よりも複雑である可能性がある。
【0005】
[005] 従って、厳しいPOR時間要求が存在する場合のパワーオンリード実施にはソフトウェア実施が好適な選択である。しかしながら、ソフトウェア実施には対応する課題及び欠点がある。例えば、冗長情報をロードすることに実際のパワーオンリード時間の10パーセント超が費やされる場合がある。冗長情報の長いロード時間の問題に加えて、メモリデバイスが大きくなると、ロード及び記憶しなければならない冗長情報量が多くなる。特に追加のメモリ要求があるBiSTロードスキームでは利用可能な記憶空間が限られており、メモリデバイスが大きくなると、効率的な冗長情報のロードのためのソフトウェア解決策は可能でない場合がある。かかる冗長情報ロードは非効率的であり、上述のようにメモリ容量が大きくなるにつれて悪化する。従って、冗長情報ロードを改良してPOR時間を短縮することが望ましい。
【課題を解決するための手段】
【0006】
[006] 本発明は、パワーオンリード時間中に冗長情報をロードすることに伴う課題に対する解決策を提供する。本発明の一実施形態に従った方法において、冗長情報をロードするための方法を開示する。この方法は、複数の冗長セクタの各冗長セクタについて、冗長データセットの第1の部分を揮発性メモリにロードすることを含む。また、複数の冗長セクタの各冗長セクタについて、冗長データセットの第2の部分を揮発性メモリにロードする。各冗長セクタについての冗長データセットの第2の部分のロードは、複数の冗長セクタについての冗長データの複数の第2の部分を備える冗長データの第3の部分をロードすることを備える。
【0007】
[007] 本発明の一実施形態に従ったシステムにおいて、冗長情報をロードするためのシステムを開示する。システムは、プロセッサ及びメモリを備え、前記メモリが、前記プロセッサによって実行された場合に方法を実施する命令を備える。この方法は、複数の冗長セクタの各冗長セクタについて、冗長データセットの第1の部分を揮発性メモリにロードすることを含む。また、複数の冗長セクタの各冗長セクタについて、冗長データセットの第2の部分を揮発性メモリにロードする。各冗長セクタについての冗長データセットの第2の部分のロードは、複数の冗長セクタについての冗長データの複数の第2の部分を備える冗長データの第3の部分をロードすることを備える。
【0008】
[008] 本発明の一実施形態に従ったシステムにおいて、冗長情報をロードするためのシステムを開示する。システムは、プロセッサと、揮発性メモリと、不揮発性メモリと、ルックアップテーブルと、を備える。不揮発性メモリを作動させると、ルックアップテーブル内の冗長データが揮発性メモリにロードされる。冗長データのロードは、不揮発性メモリにおける複数の冗長セクタの各冗長セクタについて、冗長データセットの第1の部分を揮発性メモリにロードすることを備える。次いで、複数の冗長セクタの各冗長セクタについて、冗長データセットの第2の部分を揮発性メモリにロードする。冗長データセットの第2の部分のロードは、冗長データの第3の部分をロードすることを備える。冗長データの第3の部分は、不揮発性メモリにおける複数の冗長セクタについての冗長データの複数の第2の部分を備える。
【0009】
[009] 本発明は、添付図面に関連付けて以下の詳細な説明を読むことからより良く理解されるであろう。添付図面において、同様の参照符号は同様の要素を示す。
【図面の簡単な説明】
【0010】
図1】[010] 本発明の一実施形態に従った、ルックアップテーブルからスタティックランダムアクセスメモリに冗長情報をロードするマイクロプロセッサの例示的な簡略ブロック図を示す。
図2】[011] 従来技術に従った、各冗長セクタについて2バイトに配列された例示的な冗長情報ビットを示す。
図3】[012] 従来技術に従った、例示的な256Mbメモリデバイスの各冗長セクタについて2バイトに配列された例示的な冗長情報ビットを示す。
図4】[013] 本発明の一実施形態に従った、例示的な256Mbメモリデバイスの各冗長セクタについて2バイトに配列された例示的な冗長情報ビットを示す。
図5】[014] 本発明の一実施形態に従った、メモリデバイスの各冗長セクタについて冗長情報をロードする方法の例示的なフロー図を示す。
【発明を実施するための形態】
【0011】
[015] これより本発明の好適な実施形態を詳細に参照する。添付図面にその例が示されている。本発明は公的な実施形態に関連付けて記載するが、これは本発明をこれらの実施形態に限定することを意図していないことは理解されよう。むしろ本発明は、添付の特許請求の範囲によって規定されるような本発明の精神及び範囲内に包まれ得る代替案、変更、及び均等物を包含することが意図される。更に、以下の本発明の実施形態の詳細な説明において、本発明の完全な理解を得るために多数の具体的な詳細事項を述べる。しかしながら、本発明はこれらの具体的な詳細事項がなくても実施可能であることは当業者には認められよう。他の例では、本発明の実施形態の態様を不必要に曖昧にしないために、周知の方法、手順、コンポーネント、及び回路については詳細には記載しない。本発明の実施形態を示す図面は、準概略図(semi-diagrammatic)であり、一定の縮尺通りではなく、特に、寸法のいくつかは提示の明確さのためのものであり、図面において強調して示す。同様に、記載を容易にするため、図面における図は概ね同様の方位を示すが、図面におけるこの表現はほとんどの場合は任意である。概して本発明はいかなる方位においても動作することができる。
【0012】
表記及び用語
[016] 以下の詳細な説明のいくつかの部分は、コンピュータメモリ内でのデータビットに対する動作の手順、ステップ、論理ブロック、処理、及び他の記号表現に関して提示される。これらの記載及び表現は、データ処理技術の当業者によって、その業務の実体を他の当業者に最も効率良く伝えるために用いられる手段である。手順、コンピュータ実行ステップ、論理ブロック、プロセス等がここで述べられ、これらは一般に、所望の結果を生じる首尾一貫したステップ又は命令のシーケンスと考えられる。これらのステップは物理量の物理操作を必要とするものである。必須ではないが通常、これらの量は、コンピュータシステムにおいて記憶、転送、結合、比較、及び他の方法で操作することができる電気的又は磁気的信号の形態を取る。時として、特に一般的な使用のために、これらの信号をビット、値、要素、シンボル、キャラクタ、用語、数字等と称することが好都合であることがわかっている。
【0013】
[017] しかしながら、これらの及び同様の用語は全て、適切な物理量に関連付けられるものであり、単にこれらの量に適用される便利な標識に過ぎないことに留意すべきである。以下の考察から明らかであるように、特にそれ以外のことが述べられない限り、本発明全体を通して、「処理」又は「アクセス」又は「実行」又は「記憶」又は「レンダリング」等の用語を用いた考察は、コンピュータシステム又は同様の電子コンピューティングデバイスの行為及びプロセスを指すことは認められよう。この行為及びプロセスとは、コンピュータシステムのレジスタ及びメモリ及び他のコンピュータ読み取り媒体内の物理(電子)量として表現されるデータを操作し、コンピュータシステムメモリ又はレジスタ又は他のそのような情報記憶、伝送、又は表示デバイス内の物理量として同様に表現される他のデータに変換するものである。いくつかの実施形態においてあるコンポーネントが現れた場合、同一の参照番号を用いることで、そのコンポーネントが最初の実施形態で示されたものと同一のコンポーネントであることを表す。
【0014】
[018] 本発明の実施形態は、メモリデバイス記憶容量が拡大し続けることに伴って短い冗長情報ロード時間を維持することにつきまとう課題の増大に対する解決策を提供する。更に、本発明の実施形態は、所与のメモリデバイスについてロード及び記憶することが必要なデータ量を低減することによって記憶及びロード要求の増大に対する解決策を提供する。以下で詳細に論じるように、本開示の様々な実施形態は冗長情報ロードスキームを提供し、これは、特定の冗長セクタの冗長情報ビットを、「低い」部分及び「高い」部分に分割する(一実施形態では、低い部分は1バイトのデータすなわち低バイトであり、高い部分も1バイトのデータすなわち高バイトである)。以下で詳細に論じるように、複数の冗長セクタの高バイトを組み合わせて少なくとも1つの組み合わせ高バイトとすることができる。他の実施形態では、低い部分及び高い部分は他の何らかのビット量とすることも可能である。以下で詳細に論じるように、各冗長セクタの低バイトと、複数の冗長セクタの複数の高バイトを備える少なくとも1つの組み合わせ高バイトと、をロードすることによって、冗長情報ロード時間を短縮することができる。かかるロードスキームは、結果として、所与のメモリデバイスにロードしなければならない冗長データ量を低減することができる。
【0015】
[019] 1つの例示的な実施形態においては、図1に示すように、フラッシュメモリデバイス100のTRIMセクタ102に、冗長セクタ110のための最適化冗長情報を記憶することができる。一実施形態では、TRIMセクタ102内の冗長情報はルックアップテーブルとして記憶される。一実施形態では、TRIMセクタ102に記憶された冗長情報はマイクロコントローラ106によって最適化されている。SRAM104に一時的に記憶された冗長情報を最適化した後、最適化冗長情報を記憶するためにTRIMセクタ102に転送することができる。以下で論じるように、PORアルゴリズムの実行中、TRIMセクタ102に記憶された冗長情報をフラッシュメモリ100内の冗長レジスタ108に転送することができる。一実施形態では、冗長レジスタ108は複数のフリップフロップである。一実施形態では、PORアルゴリズム中に冗長情報を冗長レジスタ108にロードした後、ロードした冗長情報は、読み取り、書き込み、又は消去のコマンドがある場合はいつでも容易かつ迅速にアクセスすることができる。次いでフラッシュメモリデバイス100は、ターゲットのセクタが、冗長レジスタにリスト化された冗長セクタの1つによって修理(例えば置換)されたか否かをチェックすることができ、必要に応じてコマンドを置換冗長セクタに転送することができる。
【0016】
[020] 上述のように、また図1に示すように、フラッシュメモリは、マイクロコントローラ106がソフトウェア解決策を実施して柔軟性を達成することで実施可能である。例示的な実施形態では、8ビットマイクロコントローラ(MCU)を用いてソフトウェア柔軟性を達成することができるが、ハードウェア解決策に比べて、得られるPOR時間は遅くなる。以下で詳細に論じるように、8ビットマイクロコントローラは、一度に1バイト(例えば8ビット)ずつ冗長データを冗長レジスタ108にロードする必要がある。
【0017】
[021] 更に、32の冗長セクタを有する例示的な2Gbメモリデバイスは32セットの冗長情報を有し、各冗長セクタについて12ビットの冗長データが1セットである。8ビットマイクロコントローラ(MCU)を用いるような一実施形態では、12ビットを2バイトずつに分割することができる。一実施形態では、冗長情報のバイトは一度に1バイトずつロードされる。従って、2Gbメモリデバイスのための冗長情報のロード中に、32セットの冗長情報では合計64バイトのデータをロードする必要がある。
【0018】
[022] 以下の表1は、例示的な8ビットマイクロプロセッサ(MCU)106を用いる異なるメモリデバイス密度について、従来の冗長情報ロード及びPOR時間を示す。300μsの例示的なPOR時間仕様では、従来の実施は8Gb以上の密度のメモリデバイスでは失敗である。上述のように、この例示的な実施形態は8ビットマイクロコントローラ106を利用するので、冗長情報を低バイト及び高バイトに分割することができる。表1に示すように、各冗長セクタについて冗長情報を2バイトに分割すると、従来技術に従った例示的な256Mbメモリデバイスでは16バイトの冗長情報をロードする必要があるが、16Gbメモリデバイスでは128バイトの冗長情報をロードする必要がある。
【0019】
[023] また、表1に示すように、256Mbメモリデバイスから16Gbメモリデバイスについての例示的な冗長データロード時間は8.32μsから66.56μsまで変動する。従って、表1にも示すように、冗長ロード時間が長くなることで、8Gb以上のメモリデバイスは300μsという例示的な仕様の要求を満たせない。上述のように、冗長情報をロードするために従来のソフトウェア解決策を用いることは、8Gb以上のメモリデバイスでは不可能である。
【表1】
【0020】
[024] 図2に示すように、8の冗長セクタを有する例示的な256Mbメモリデバイスは、各冗長セクタについて9ビットの冗長情報202を含む。図2に示すように、8の冗長セクタを有する例示的な512Mbメモリデバイスは、各冗長セクタについて10ビットの冗長情報204を含む。図2に示すように、16の冗長セクタを有する例示的な1Gbメモリデバイスは、各冗長セクタについて11ビットの冗長情報206を含む。また、図2に示すように、例示的な2Gbメモリデバイスは各冗長セクタについて12ビットの冗長情報208を含み、例示的な4Gbメモリデバイスは各冗長セクタについて13ビットの冗長情報210を含み、例示的な8Gbメモリデバイスは各冗長セクタについて14ビットの冗長情報212を含み、例示的な16Gbメモリデバイスは各冗長セクタについて15ビットの冗長情報214を含む。
【0021】
冗長ロード効率の向上
[025] 1つの例示的な実施形態においては、冗長データバイトのロード数を削減することによってPOR時間を短縮することができる。簡略化のために、例示的な256Mbメモリデバイスの例を示す。図3に示すように、例示的な256Mbメモリデバイスは、各冗長セクタ(RED0〜RED7)について9ビットの冗長情報302を必要とする(2=256、8ビット+1イネーブルビット=9ビット)。低バイトはすでに一杯であるので、ビット8であるイネーブルビットは各冗長情報の高バイトに記憶される。この従来のスキームでは、POR時間中に合計16バイトの冗長データがロードされる(各冗長セクタについて2バイトずつ)。
【0022】
[026] 図4に示すように、8個のイネーブルビット(高バイトのビット8)を全て、単一のバイト402にグループ化することができる。従ってこの例示的な実施形態では、例示的な256Mbメモリデバイスの冗長データを記憶するために必要なのは、従来の16バイトでなく9バイトのみである。図4に示すように、例示的な9バイトの冗長情報は、各冗長セクタ(RED0〜RED7)について1つの低バイトである合計8個の低バイト404を備え、残りのバイト402は8個のイネーブルビット(各高バイトのビット8)を含む。この例では、それぞれが単一ビットのみを含む8個の高バイトをロードするのではなく、単独ビットを単一の組み合わせ高バイトにグループ化する。この例示的な実施形態は、従来の冗長情報ロードスキームに必要なバイト数に比べて43.75%の削減が可能であることを表している。
【0023】
[027] 以下の表2は、上述の例示的な冗長情報ロード方法を用いることによって異なる例示的なフラッシュメモリデバイス密度において達成される計算の軽減の比較を示す。
【表2】
【0024】
[028] 図4は例示的な256Mbメモリデバイスについて各冗長セクタの高バイトの内容を組み合わせた結果を示すが、本発明の実施形態は他のメモリデバイスにも適用可能である。例えば本発明に従った例示的な2Gbメモリデバイスにおいて、ルックアップテーブル102に記憶された冗長情報は、表2に示すように、32の低バイト及び16の組み合わせ高バイトすなわち合計48バイトを備えることができる。図2に示すように、例示的な2Gbメモリデバイスでは、各冗長セクタは、8ビットを含む低バイト及び4ビットを含む高バイトを備える。冗長セクタの高バイトのビットを組み合わせると、結果的に上述の16の組み合わせ高バイトとなる。更に別の例では、図2及び表2に示すように、各々が14ビットである64の冗長セクタを備える例示的な8Gbメモリデバイスでは、合計112バイトをロードすることができ、従来の冗長ロードスキームから16バイトの削減となる。上述の8Gbメモリデバイスでは、各高バイトの6ビットを組み合わせて48の組み合わせ高バイトとすることができ、従来の64の高バイトから削減されている。
【0025】
[029] 図5に、任意の冗長情報ロード効率のための例示的な方法を示す。図5のステップ502において、冗長情報ロードを開始する。図5のステップ504において、冗長カウンタをセットする。9バイトの冗長情報をロードする例示的な実施形態では、冗長カウンタを9にセットする。上述のような256Mbメモリデバイスの例示的な実施形態では、各冗長セクタについて9ビットの冗長情報をロードする。最初の8ビット(低バイトの)は最初の8バイトに含まれ、各冗長セクタの高バイトの残りのビット8は第9バイトに含まれる。これが組み合わせ高バイトである。上述のように、様々なメモリデバイスの実施形態では、1冗長セクタ当たりに必要な冗長情報ビット数が異なる。各メモリデバイスでは、各冗長セクタについて備えられる低バイトは一杯になっているが、各冗長セクタが備える高バイトは様々なビット数を含んでいる。例えば、例示的な256Mbメモリデバイスは各高バイトに1ビットを含むが、例示的な8Gbメモリデバイスは各高バイトに6ビットを含む。上述のように、高バイトにおけるビットを組み合わせてもっと少数の組み合わせ高バイトとすることができる。従って、冗長情報をロードするために必要な合計バイト数は、各冗長セクタについて1低バイト及び多数の組み合わせ高バイトである。
【0026】
[030] 図5のステップ506において、冗長情報ルックアップテーブルのための開始アドレスをセットする。上述のように、ルックアップテーブルは図1に示すようなフラッシュメモリのTRIMセクタ102に存在することができる。図5のステップ508において、冗長レジスタ108の開始アドレスもセットする。一実施形態では、冗長レジスタ108は複数のフリップフロップとして実施される。図5のステップ510では、アドレスした冗長情報についてルックアップテーブルから冗長情報を読み取る。図5のステップ512では、ステップ510で読み取った冗長情報を冗長レジスタ108に書き込む。図5のステップ514では、冗長カウンタを1だけ減らす。図5のステップ516では、冗長カウンタを読み取る。カウンタの読み取りが0である場合、方法は図5のステップ518に進んで終了する。冗長カウンタの読み取りがゼロよりも大きい値である場合、方法はステップ510に戻って、次のアドレスされた冗長情報についてルックアップテーブルから冗長情報の次の部分を読み取る。
【0027】
[031] 本明細書に含まれる実施形態では8ビットマイクロコントローラを用いたが、他のマイクロコントローラを用いることも可能である。例えば、異なる冗長情報ロード基準と共に16ビットマイクロコントローラを用いることができる。16ビットマイクロコントローラは異なるサイズのレジスタを有する場合があるからである。従って、TRIMセクタ102から冗長レジスタ108に冗長情報を渡すための最大データ帯域幅は、用いるマイクロコントローラの容量の関数である。
【0028】
[032] いくつかの好適な実施形態及び方法を本明細書において開示したが、前述の開示から、本発明の精神及び範囲から逸脱することなくそのような実施形態及び方法の変形及び変更を実施可能であることは当業者には明らかであろう。本発明は、添付の特許請求の範囲並びに適用可能な法律の規定及び原理によって必要とされる程度にのみ限定されることが意図される。
図1
図2
図3
図4
図5