(57)【特許請求の範囲】
【請求項１】
複数の記憶領域を有する記憶装置における物理的識別子を生成する方法であって、
前記記憶装置を一意に識別するための基準記憶領域の数を決定するステップと、
前記基準記憶領域の数をしきい値と比較するステップと、
前記記憶装置を一意に識別するのに使用するために前記比較の結果に対応する数の補助記憶領域を生成するステップと、
前記基準記憶領域及び補助記憶領域の位置分布情報を生成するステップと、
前記位置分布情報と前記基準記憶領域の座標情報を前記記憶装置に記憶するステップと、を前記記憶装置の制御部が実行することを特徴とする方法。
【請求項２】
前記基準記憶領域及び補助記憶領域は、不良ブロックであることを特徴とする請求項１に記載の方法。
【請求項３】
前記基準記憶領域は不良ブロックであり、
前記補助記憶領域は読み取り専用記憶ブロックであることを特徴とする請求項１に記載の方法。
【請求項４】
前記基準記憶領域の数を決定するステップは、
前記複数の記憶領域のうちでプログラミング又は消去エラーを有する不良ブロックを判定するステップと、
前記複数の記憶領域のうちで読み取りエラーを有する不良ブロックを判定するステップとを有することを特徴とする請求項１に記載の方法。
【請求項５】
前記位置分布情報と前記基準記憶領域の座標情報を暗号化するステップをさらに有し、
前記暗号化された情報が前記記憶装置に記憶され、前記暗号化するステップを前記記憶装置の制御部が実行すること特徴とする請求項１に記載の方法。
【請求項６】
前記補助記憶領域は、前記複数の記憶領域のうちでランダムに選択された記憶領域であることを特徴とする請求項１に記載の方法。
【請求項７】
複数の記憶領域を有する記憶装置における物理的識別子を生成するためのプログラムを記録した機械可読記憶媒体であって、
前記プログラムは、コンピュータに、
前記記憶装置を一意に識別するための基準記憶領域の数を決定する手順と、
前記基準記憶領域の数をしきい値と比較する手順と、
前記記憶装置を一意に識別するのに使用するために、前記比較の結果に対応する数の補助記憶領域を生成する手順と、
前記基準記憶領域及び補助記憶領域の位置分布情報を生成する手順と、
前記位置分布情報と前記基準記憶領域の座標情報を前記記憶装置に記憶する手順とを実行させることを特徴とする機械可読記憶媒体。
【請求項８】
前記基準記憶領域及び前記補助記憶領域は、不良ブロックであることを特徴とする請求項７に記載の機械可読記憶媒体。
【請求項９】
前記基準記憶領域は不良ブロックであり、
前記補助記憶領域は読み取り専用記憶ブロックであることを特徴とする請求項７に記載の機械可読記憶媒体。
【請求項１０】
前記基準記憶領域の数を決定する手順は、
前記複数の記憶領域のうちでプログラミング又は消去エラーを有する不良ブロックを判定する手順と、
前記複数の記憶領域のうちで読み取りエラーを有する不良ブロックを判定する手順とを有することを特徴とする請求項７に記載の機械可読記憶媒体。
【請求項１１】
前記プログラムは、コンピュータに、前記位置分布情報を暗号化する手順をさらに実行させ、
前記暗号化された位置分布情報が前記記憶装置に記憶されること特徴とする請求項７に記載の機械可読記憶媒体。
【請求項１２】
前記補助記憶領域は、前記複数の記憶領域のうちでランダムに選択された記憶領域であることを特徴とする請求項７に記載の機械可読記憶媒体。
【請求項１３】
物理的識別子を生成するシステムであって、
複数の記憶領域を有する記憶装置と、
前記記憶装置を一意に識別するための基準記憶領域の数を決定し、前記基準記憶領域の数をしきい値と比較し、前記記憶装置を一意に識別するのに使用するために、前記比較の結果に対応する数の補助記憶領域を生成し、前記基準記憶領域及び前記補助記憶領域の位置分布情報を生成し、前記位置分布情報と前記基準記憶領域の座標情報を前記記憶装置に記憶する少なくとも１つの制御部とを有することを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象装置の識別又は認証を行うための方法及び装置に関し、特に、記憶装置の認証のための物理的識別子を生成する装置及び方法に関する。
【背景技術】
【０００２】
コンテンツ保護のためにディジタル著作権管理（Digital Rights Management：ＤＲＭ）及びコピー防止（copy protection）のような技術が要求されるにつれて、このようなコンテンツを記憶する不揮発性メモリ（Non-Volatile Memory：ＮＶＭ）装置（例えば、ソリッドステートディスク（Solid State Disk：ＳＳＤ）、フラッシュメモリカード（flash memory card）など））を含む記憶装置を認証するための技術がコピー防止を実現するために要求されている。特に、コンテンツ自体の暗号化技術を検証するだけではなく、記憶装置の様々なハードウェア（HardWare：Ｈ／Ｗ）の様々な側面の適合性を検証するための技術が要求されている。
【０００３】
セキュアディジタル（Secure Digital：ＳＤ）カードのためのＤＲＭ技術である記録型媒体のためのコンテンツ保護（Content Protection for Recordable Media：ＣＰＲＭ）技術及びブルーレイ（Blu-ray）（登録商標）ディスクのためのＤＲＭ技術であるアドバンスドアクセスコンテンツシステム（Advanced Access Content System：ＡＡＣＳ）技術は、公開キー基盤構造（Public Key Infrastructure：ＰＫＩ）又は他の暗号技術（cryptographic technology）を使用する記憶装置の認証方法を提供する。しかしながら、このような公開キー基盤構造（ＰＫＩ）又は認証方法は、記憶装置自体の複製（duplication）に対する解決策となることは難しい。
【０００４】
従来のチップ（chip）設計は、Ｈ／Ｗのチップで透かし（watermark）又は指紋（fingerprint）を挿入することにより問題となるＨ／Ｗを識別することができる技術を有する。しかしながら、このような技術は、セキュリティ侵害（Security piracy）がすでに発生した後にセキュリティ侵害を見つけるために使用されるだけである。したがって、この技術は、複製を予め防止することができず、大量生産の観点では非効率的であり、装置の適合性をトランザクション（transaction）時点（すなわち、特定のトランザクションの時点及び位置）で検証するために使用されることが難しいという問題点がある。
このような問題点は、コンテンツプロバイダが、フラッシュメモリカードなどのようなハードウェアを通してコンテンツを配布するビジネスに対して受動的な態度を取る大きな理由となる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、少なくとも上述した問題点及び／又は不都合に取り組み、少なくとも以下の便宜を提供することにある。すなわち、本発明の目的は、複製を予め防止し、大量生産において効率的であり、装置の適合性をトランザクション時点で検証することができる方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記のような目的を達成するために、本発明の一態様によれば、複数の記憶領域を有する記憶装置における物理的識別子を生成する方法を提供する。上記方法は、上記記憶装置を一意に識別するための基準記憶領域の数を決定するステップと、上記基準記憶領域の数をしきい値と比較するステップと、上記記憶装置を一意に識別するのに使用するために上記比較の結果に対応する数の補助記憶領域を生成するステップと、上記基準記憶領域及び補助記憶領域の位置分布情報を生成するステップと、上記位置分布情報を上記記憶装置に記憶するステップとを有することを特徴とする。
【０００７】
本発明の別の態様によれば、記憶装置における物理的識別子を生成するためのプログラムを記録した機械可読記憶媒体を提供する。上記プログラムは、コンピュータに、上記記憶装置を一意に識別するための基準記憶領域の数を決定する手順と、上記基準記憶領域の数をしきい値と比較する手順と、上記記憶装置を一意に識別するのに使用するために、上記比較の結果に対応する数の補助記憶領域を生成する手順と、上記基準記憶領域及び補助記憶領域の位置分布情報を生成する手順と、上記位置分布情報を上記記憶装置に記憶する手順とを実行させることを特徴とする。
【０００８】
本発明のさらに別の態様によれば、物理的識別子を生成するシステムを提供する。上記システムは、複数の記憶領域を有する記憶装置と、上記記憶装置を一意に識別するための基準記憶領域の数を決定し、上記基準記憶領域等の数をしきい値と比較し、上記記憶装置を一意に識別するのに使用するために、上記比較の結果に対応する数の補助記憶領域を生成し、上記基準記憶領域及び上記補助記憶領域の位置分布情報を生成し、上記位置分布情報を上記記憶装置に記憶する少なくとも１つの制御部とを有することを特徴とする。
【発明の効果】
【０００９】
本発明の実施形態は、様々な長所を提供する。例えば、ＯＴＰ領域の位置又はセルパターンは、物理的識別子として使用されることにより製品工程の段階に関係なく物理的識別子を生成する方法がすべての製品ラインに適用されることができる。また、製品ごとに異なって選択されたランダム領域を使用するので、物理的識別子の衝突確率を格段に減少させることができる。さらに、生成されたＯＴＰ領域を特定の情報を記憶するのに活用する場合に、製品ごとに異なる領域を使用するので、コード情報の攻撃複雑度を増加させることにより安全性を強化することができる。
さらにまた、特定のセルパターン（例えば、不良セルパターン）が人為的に生成された基準領域内に形成されることにより、ハードウェアレベルの認証でメモリ装置の指紋として使用されることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態による物理的識別子を生成する方法を示すフローチャートである。
【図２】本発明の実施形態による物理的識別子を生成する方法を示すフローチャートである。
【図３】本発明の実施形態による記憶装置の構成を概略的に示すダイアグラムである。
【図４】消去テストに従ってメモリに記憶された状態データの一例を示すダイアグラムである。
【図５】プログラミングテストに従ってメモリに記憶された状態データの一例を示すダイアグラムである。
【図６】不良ブロック内の不良セルパターンを示すダイアグラムである。
【図７】しきい値Ｋを設定する方法を示すダイアグラムである。
【発明を実施するための形態】
【００１１】
以下、本発明の好適な実施形態を、添付の図面を参照しつつ詳細に説明する。下記の説明において、関連する公知機能或いは構成についての具体的な説明は、本発明の簡潔さのために適宜省略するものとする。
【００１２】
高い価値を有するコンテンツが記憶装置又はメモリ装置を用いて販売／貸与が行われる場合に、大量のＨ／Ｗの不法複製が不可能な複製防止（anti-cloning）技術が提供されることができる。Ｈ／Ｗ複製攻撃をさらに難しくする複製防止技術を実現するためには、各記憶装置に含まれる固有の属性又は特徴（すなわち、衝突確率が低い物理的性質又は特性）を活用することが好ましい。
例えば、このような物理的性質は、不良ブロック（bad block）（すなわち、プログラミング、消去、又は読取りエラー）のような物理的欠陥（physical defect）又は不良セル（fail cell or bad cell）であることができる。
しかしながら、様々な記憶装置の製造工程が発展するにつれて、不良ブロックの発生頻度が徐々に減少し、したがって、不良ブロックがない製品も発売されている。
【００１３】
本発明の実施形態は、記憶装置の固有の物理的性質を活用するために物理的識別子（例えば、不良ブロック又は不良セルの位置分布）を生成する方法と、１回限りプログラム可能な（One time programmable：ＯＴＰ）領域又はブロックを用いて物理的識別子を生成する方法とを提供する。下記の説明において、本発明は、ＯＴＰ領域を用いて擬似物理的識別子を生成する。また、以下に詳細に説明するように、“物理的識別子”は、基本的に各記憶装置を一意に識別するための表示を意味し、本発明の実施形態によると、物理的識別子は、人為的な物理的欠陥、ランダムなＯＴＰ領域、又は人為的な物理的欠陥とランダムなＯＴＰ領域との組み合せを通して生成される。擬似物理的識別子は、各記憶装置を一意に識別することができる表示であるが、物理的欠陥ではない表示を意味する。以下、“物理的識別子”は、擬似物理的識別子を含む意味として使用される。また、このような擬似物理的識別子は、物理的欠陥と組み合わせられることができる。例えば、この擬似物理的識別子は、物理的欠陥に関する情報（例えば、不良セルパターン又は位置分布）を含むことができる。
【００１４】
図１及び図２は、本発明の実施形態による物理的識別子を生成する方法を説明するためのフローチャートである。
図１を参照すると、ステップＳ１００において、記憶装置を製造し、ステップＳ１１０において、変数を初期化する。ステップＳ１２０において、変数Ｉを増加させ、ステップＳ１３０において、プログラミング／消去テストを実行する。ステップＳ１４０において、プログラミング及び消去状態データを確認するための試みが実行される。ステップＳ１４０が失敗する場合に、ステップＳ１７０において、変数Ｎを１だけ増加させる。一方、ステップＳ１４０が成功する場合に、ステップＳ１５０において、リードディスターバンス（Read Disturbance）テストを実行する。ステップＳ１６０において、ＥＣＣ許容しきい値を不良セルの数と比較する。不良セルの数がＥＣＣしきい値より大きい場合に、この方法は、ステップＳ１７０に戻る。しかしながら、不良セルの数がＥＣＣ許容しきい値以下である場合に、ステップＳ１８０において、ブロック番号を識別する。ステップＳ１９０において、不良ブロックの発生比率を算出する。発生比率‘Ｐ’は、ブロックの総数に対する不良ブロックの数‘Ｎ’の比率である。
【００１５】
図２を参照すると、図１の方法は、ステップＳ１９０からステップＳ２００に進み、しきい値Ｋを算出する。ステップＳ２１０において、不良ブロックの発生確率‘Ｆ（Ｐ）’をしきい値‘Ｋ’と比較する。不良ブロックの発生確率‘Ｆ（Ｐ）’がしきい値‘Ｋ’より大きい場合に、ステップＳ２２０において、ＯＴＰ領域の数‘Ｍ’を算出する。ステップＳ２３０において、ブロックを選択する。ステップＳ２４０において、特定の情報を選択されたブロックに記録するか又は記憶する。ステップＳ２５０において、ＯＴＰ領域又は不良ブロックを生成する。不良ブロックの発生確率Ｆ（Ｐ）がしきい値Ｋ以下である場合に、ステップＳ２６０において、不良ブロック及び不良セルの位置情報を生成する。ステップＳ２７０において、生成された不良ブロック及び不良セルの位置情報を生成する。ステップＳ２８０において、物理的識別子を生成する。
【００１６】
記憶装置を製造するステップＳ１００において、複数のメモリチップ又は記憶装置を有するウェハー（wafer）が提供され、以下のステップは、ウェハーを製造する装置に従ってウェハーに含まれる各記憶装置に対して個別的、順次的、又は同時に実行することができる。このような記憶装置の例は、ソリッドステートディスク（Solid State Disk：ＳＳＤ）及びフラッシュメモリカード（flash memory card）のような不揮発性メモリ（Non-Volatile Memory：ＮＶＭ）を含む。以下、本発明の実施形態は、ＮＡＮＤフラッシュメモリに基づいて説明するが、これに限定されない。記憶装置の例は、フロッピー（登録商標）ディスク（floppy disk）、フレキシブルディスク（flexible disk）、ハードディスク、磁気テープ、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）、光学ディスク、ブルーレイ（Blu-ray）（登録商標）ディスク、ランダムアクセスメモリ（ＲＡＭ）、プログラム可能読取り専用メモリ（Programmable Read-Only Memory：ＰＲＯＭ）、消去可能ＰＲＯＭ（Erasable PROM：ＥＰＲＯＭ）、及びフラッシュＥＰＲＯＭ（flash-EPROM）を含む。
【００１７】
図３は、本発明の実施形態による記憶装置の構成を概略的に示す図である。図３を参照すると、ＮＡＮＤフラッシュメモリは、記憶装置１００の例として説明される。例えば、記憶装置１００は、ホスト装置（図示せず）として機能するパーソナルコンピュータのメモリスロット（memory slot）に装着することができる。本例において、記憶装置１００は、物理的識別子を生成するホスト装置とデータ通信を実行する。
【００１８】
記憶装置１００は、同一のサイズの単位記憶領域を有するメモリ２００と、ホスト装置とデータ通信を実行し、ホスト装置からの要請に対する応答を提供し、特定の記憶領域に対する読み取り、書き込み（すなわち、プログラミング）、又は消去のような制御命令をメモリ２００に出力するメモリ制御部１１０とを含む。メモリ制御部１１０は、メモリ２００から読み取られたデータに含まれるエラーの検出及び訂正を行うためのエラー訂正コード（Error Correcting Code：ＥＣＣ）ブロック１２０と、メモリ２００から読み取られたデータ又はホストから提供されるデータを一時的に記憶するためのバッファＲＡＭ１３０（例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ））と、メモリ２００のＯＴＰ領域を制御するためのＯＴＰファームウェア１４０とを含む。
【００１９】
メモリ２００は、セル（例えば、ビット、バイト、ワードなど））がページを構成し、ページがブロックを構成し、ブロックが全メモリを構成する階層構造を有する。本明細書で使用する“記憶領域”は、区分可能な同一のサイズの記憶領域、例えば、記憶装置１００に含まれるページ又はセル（ビット、バイト、ワードなど）を意味する。
【００２０】
メモリ２００は、複数のブロック２１０及び２２０を含み、ブロック単位で削除が可能である。各ブロックは、６４Ｋｂｙｔｅから５１２Ｋｂｙｔｅまでのサイズを有する。各ブロックは、複数のページを含み、読み取り及び書き込みの基本単位として機能する。各ページは、５１２ｂｙｔｅから８Ｋｂｙｔｅまでのサイズを有する。ＮＯＲフラッシュメモリは、バイト単位又はワード単位で読み取るか又は書き込むことができる。各ページは、スペア（spare）領域、バッファ領域、又は１バイトから数百バイトまでのサイズを有する帯域外（Out Of Band：ＯＯＢ）と呼ばれる追加のデータ領域を有する。スペア領域は、不良ブロックマーキング（marking）、ＥＣＣデータ、ファイルシステム情報などを記録するために使用される。メモリ２００は、メモリ２００の全ブロックの状態を記録するための不良ブロックテーブル（Bad Block Table：ＢＢＴ）を含むことができ、各ブロックは、“良好（good）”状態、“不良（bad）”状態、又は“予約（reserved）”状態を有する。本発明の実施形態によると、“予約”状態は、記憶装置の製造者の外に他のユーザーによりプログラミングされるか又は消去されることができず、ユーザーが読み取りだけ可能なブロックを意味する。
【００２１】
メモリ２００は、ブロックｉ乃至ｍ（ブロックｊ２１０及びブロックｋ２２０を含む）を含み、ブロックｉ乃至ｍのそれぞれは、複数のページを含むメイン領域２３０とページのそれぞれに後続するスペア領域２４０とを含む。ブロックｉ乃至ｍのうちのブロックｋ２２０はメモリ２００の物理的性質情報のために使用され、記憶装置１００を一意に識別するために使用される基準記憶領域を意味する。
【００２２】
エラーの検出及び訂正技術は、様々な原因により損傷を受けるデータの効率的な復旧を提供する。例えば、データがメモリに格納される時に又はデータがソース(Source）から宛先（destination）に送信されるデータ送信チャネルのパータベーション（perturbations）によりデータが損傷を受けることがある。このように損傷を受けたデータを検出し補正するために様々な方法が提案された。よく知られているエラー検出技術は、リードソロモン（Reed-Solomon：ＲＳ）コード、ハミングコード（Hamming code）、ボーズ・チャウドゥーリー・オッカンガム（Bose-Chaudhuri-Hocquenghem：ＢＣＨ）コード、及びサイクリックリダンダンシー（Cyclic Redundancy Code：ＣＲＣ）コードなどを含む。このようなコードを用いて損傷を受けたデータの発見及び補正を行うことができる。不揮発性メモリ装置が使用される大部分の応用分野において、ホスト装置からのソースデータはＥＣＣデータとともにメモリに記憶される。ＥＣＣデータは、メモリの読み取り動作が実行される時に発生するエラーを訂正するために使用され、ＥＣＣデータを用いて訂正されることができるエラービットの数は制限される。
【００２３】
図１に戻ってさらに詳細に説明すると、変数を初期化するステップＳ１１０において、物理的識別子の生成方法で反復実行されるループを実現するための変数、すなわち、ブロック番号を示す変数Ｉ及び不良ブロックの数を示す変数Ｎがそれぞれ０に設定される。
ステップＳ１２０において、ブロック番号Ｉは１だけ増加する。ステップＳ１３０において、メモリ制御部１１０は、ブロック単位のプログラミング／消去テストを実行する。ステップＳ１４０において、メモリ制御部１１０は、テスト結果がメモリに記憶された状態データを通して失敗であるか又は成功（すなわち、通過）であるかを確認する。ステップＳ１７０において、テスト結果が失敗である場合に、対応するブロックは、不良ブロックとしてマーキングされ（例えば、“０００ｈ”のような予約語がスペア領域に表示される）、不良ブロックの数を示す変数Ｎは１だけ増加する。
【００２４】
通常、メモリ２００は、アクセス回路とも呼ばれるページバッファ（page buffer）を含み、ページバッファは、メモリ動作、すなわちプログラミング（書き込み）動作、読み取り動作、又は消去動作の実行結果により発生する状態データを記憶する。この状態データは、複数のビット、例えばページ単位に対応するビットを含むことができる。
メモリ制御部１１０は、メモリ２００に記憶された状態データから不良セル位置を検出することができ、不良セルを含むブロックを不良ブロックとしてマーキングする。各不良ブロック及び不良ブロック内の不良セルの位置情報を含む個別のテーブルを任意のブロック（好ましくは、予約状態であるブロック）内に格納することができる。
【００２５】
以下、図４を参照して消去テストについて説明する。
図４は、消去テストに従ってメモリに記憶された状態データの一例を示す図である。説明の便宜のために、消去動作が開始される前に状態データの各ビット値が“０”に設定されると仮定する。この状態データの各ビット値は、対応するメモリセルの状態（０又は１）を意味する。消去動作において、１つのブロックを構成する複数のページの各々に含まれる各メモリセルの状態は、“１”状態となる。このような消去動作で発生する不良セルは、“１”状態に変更されず、“０”状態として残っているセルを意味する。
図４に示すように、状態データに含まれるすべてのビットのうちの６番目のビットのみが“０”状態として残っており、残りのビットは、“１”状態に変更される。したがって、メモリ制御部１１０は、メモリ２００に記憶された状態データのビット値から不良セルの位置を検出することができる。
【００２６】
図５を参照してプログラミングテストについて説明する。
図５は、プログラミングテストに従ってメモリに記憶された状態データの一例を示す図である。
説明の便宜のために、プログラミング動作が開始される前に状態データの各ビット値が“１”に設定されると仮定する。このプログラミング動作は、ソースデータに従って１つのブロック又はページに含まれる全メモリセルのうちの少なくとも一部を“０”状態に設定するメモリ動作である。また、プログラミングテストにおいて、メモリセルのすべては、“０”状態に設定されることができる。このようなプログラミング動作で発生する不良セルは、“０”状態に変更されず、“１”状態に残っているセルを意味する。
図５に示すように、この状態データに含まれるすべてのビットのうちの６番目のビットだけが“１”状態に残っており、残りのビットが“０”状態に変更される。したがって、メモリ制御部１１０は、メモリ２００に記憶された状態データのビット値から不良セルの位置を検出することができる。
【００２７】
図１に戻って、ステップＳ１５０において、メモリ制御部１１０は、ページ単位又はブロック単位の読み取りテストを実行する。
メモリ制御部１１０は、読み取り動作を実行するようにメモリを制御する。メモリ制御部１１０は、所定のタイミングに従って読み取り命令及びアドレスをメモリ２００に送信し、メモリ２００は、読み取り命令に応答してアドレスに対応するメモリブロックのページからデータを読み取る。この読み取られたデータは、バッファＲＡＭ又はＥＣＣブロック１２０に送信される。ＥＣＣブロック１２０は、ページのスペア領域に記憶されたＥＣＣデータを用いて読み取られたデータに対する読み取りエラーを検出する。ＥＣＣブロック１２０は、エラービット（すなわち、不良セル）の数及びエラーが発生した位置（すなわち、不良セルの位置）を示すエラー位置情報（例えば、アドレス情報）を内部のレジスタに格納する。
【００２８】
ステップＳ１６０において、メモリ制御部１１０は、ＥＣＣブロック１２０に記憶された情報に従って不良セルの数が予め定められたＥＣＣ許容しきい値（すなわち、許容された不良セルの数）を超過するか否かを判定する。読み取りエラーが発生しない場合に、メモリ制御部１１０は、ブロック番号を確認するステップＳ１８０に進む。不良セルの数が予め定められたＥＣＣ許容しきい値を超過する場合に、対応するブロックは不良ブロックとしてマーキングされ、ステップＳ１７０において、不良ブロックの数Ｎは１だけ増加する。不良セルの数Ｎが予め定められたＥＣＣ許容しきい値を超過しない場合に、メモリ制御部１１０は、ステップＳ１９０に進みブロック番号を識別する。
リードディスターバンステストにおいて不良セルが発生した場合に、メモリ制御部１１０は、ＥＣＣブロック１２０に記憶された情報から不良セルの位置を検出することができ、不良ブロック内の不良セルの位置情報を含むテーブルを任意のブロック（好ましくは、予約状態であるブロック）内に格納することができる。
【００２９】
図６は、不良ブロック内の不良セルパターンを説明するための図である。図６は、特定のページの不良セルパターンを示し、示された６＊６セルアレイ４１０及び４２０で物理的欠陥を有する不良セル４２０が“Ｆ”として表示される。
図１に戻って説明すると、ステップＳ１８０において、メモリ制御部１１０は、ブロック番号Ｉの値がメモリの全ブロックの数と同一であるか否かを判定する。全ブロックに対するテストが完了した場合に、メモリ制御部１１０は、ステップＳ１９０において不良ブロックの発生比率を算出するステップに進む。全ブロックに対するテストが完了しなかった場合に、メモリ制御部１１０は、変数Ｉを１だけ増加させるステップＳ１２０に進む。
【００３０】
ステップＳ１９０において、メモリ制御部１１０は、不良ブロックの発生比率であるＰ＝Ｎ／１を算出する。すなわち、この発生比率は、不良ブロックの数を全ブロックの数で割った値として定められる。一方、本発明の実施形態に従って、全ブロックの数（すなわち、全メモリ容量）を考慮して適正な数のＯＴＰ領域を設定するためには、不良ブロックの発生比率を算出する。しかしながら、この発生比率又はＯＴＰ領域の数は任意に設定することができる。また、不良ブロック及びＯＴＰ領域の総数を予め設定することができ、すべての不良ブロックの総数から発生した不良ブロックの数を減算することにより得られた値を物理的識別子用ＯＴＰ領域の数として設定することができる。
図２をさらに参照してより詳細に説明すると、ステップ２００において、メモリ制御部１１０は、製造された任意の２つの記憶装置に対応する１対の領域が同一のブロック又はセルパターン（すなわち、位置分布）を有する確率を考慮してしきい値Ｋを算出する。本実施形態とは異なり、しきい値Ｋは、任意に設定された値（例えば、１％）であることができる。
【００３１】
図７は、しきい値Ｋを設定する方法を示す図である。
図７を参照すると、しきい値Ｋを算出するために使用される数式１は、次のように定義される。
【００３２】
【数１】
0005639709.tif 000002
【００３３】
数式１において、ＣＲは、平均的な衝突比率（すなわち、製造された２つの記憶装置に対応する１対の領域ｘ及びｙ（領域ｘ及びｙのそれぞれはＮ個のビットである）が同一のパターンを有する確率）を示し、Ｐ（ｘ＝ｙ）は、ｘのｉ番目のビット及びｙのｉ番目のビットが同一の確率を示し、ｐは、ビットエラーレート（Bit Error Rate：ＢＥＲ）を示し、ｑ＝１−ｐである。本発明の実施形態による本例において、セルは、１つのビットに対応する。
また、数式１に関連して、次のような近似数式２が確立する。
【００３４】
【数２】
0005639709.tif 000003
【００３５】
数式２において、Ｘは生産量を示し、Ｃは平均的な衝突確率期待値を示す。すなわち、任意の２つの記憶装置がＸ個の生産量で選択される時に、ＣＲは、Ｃ／Ｘに近似化することができる。
例えば、数式１において、Ｃ＝１／１００００、Ｘ＝１０８、及びｐ＝１０（−７〜−９）である場合に、Ｎを求めることができ、Ｎは、しきい値Ｋを算出するために使用される。本実施形態において、Ｎは、衝突を避けることができる不良セルの最小数を示し、Ｎ個のセルは、Ｎ個のセルを含むｚ個のページ又はブロックに置き換えることができる（ｚは任意の自然数である）。
また、数式１及び数式２において、ビット単位をブロック単位に置き換えることができる。このような場合に、Ｎは、衝突を避けることができる不良ブロックの最小数を示す。同様に、ビットエラーレートは、ブロックエラーレートに置き換えることができる。
【００３６】
本発明の実施形態は、記憶装置を一意に識別することができる物理的識別子を生成することができる。物理的性質が相互に衝突する場合に（すなわち、物理的性質が同一である場合に）、物理的識別にエラーが発生することがある。したがって、しきい値Ｋは、上述したように、衝突確率を考慮して設定されなければならない。
ステップＳ２１０において、メモリ制御部１１０は、不良ブロックの発生確率としての変数Ｐを有する不良ブロックの発生比率に対する関数値Ｆ（Ｐ）がしきい値Ｋ以下であるか否かを判定する。関数Ｆ（Ｐ）及びしきい値Ｋは、不良ブロックの発生比率及び不良ブロックの最小数にそれぞれ対応するか、又はブロックの発生比率及び不良ブロックの最小数に基づく。
【００３７】
関数Ｆ（Ｐ）がしきい値Ｋより大きい場合に、メモリ制御部１１０は、不良ブロック及び不良セルの位置情報を生成するためにステップＳ２６０に進む。メモリ制御部１１０は、プログラミング／消去テスト及びリードディスターバンステストで識別された不良ブロックの位置分布情報を生成し、この生成された情報を任意のブロック（好ましくは予約状態を有するブロック）に格納する。メモリ制御部１１０は、メモリ２００の全不良ブロックの状態を記録するための不良ブロックテーブル（Bad Block Table：ＢＢＴ）を生成し、この生成されたテーブルを格納する。また、メモリ制御部１１０は、ＥＣＣブロック１２０に記憶されたデータを用いて把握される不良セルの位置分布情報を生成し、この生成された情報を任意のブロック（好ましくは予約状態を有するブロック）に格納する。
関数Ｆ（Ｐ）がしきい値Ｋ以下である場合に、メモリ制御部１１０は、ステップＳ２２０に進み、ＯＴＰ領域の数を算出する。
【００３８】
ステップＳ２２０において、メモリ制御部１１０は、Ｆ（Ｐ）としきい値Ｋとの間の差に基づいて必要なＯＴＰ領域の数であるＭを算出する。
ステップＳ２３０において、メモリ制御部１１０は、必要なＯＴＰ領域（補助記憶領域）のＭ個のブロックを選択する。本実施形態において、ＯＴＰ領域をブロック単位で説明しているが、ＯＴＰ領域は、ブロック以外の単位記憶領域で指定されることができる。例えば、ＯＴＰ領域は、ページ単位で指定されることができ、物理的性質は、不良ブロックパターン又は不良セルパターンで定義されることができる。物理的性質が不良セルパターンで定義される場合又は不良ブロックパターンと不良セルパターンとの組み合せで定義される場合には、ＯＴＰ領域は、ページ単位で指定することができる。
【００３９】
また、メモリ制御部１１０は、乱数発生器を用いてランダムにブロックを選択することができる。この時に、ランダムな選択は、個々のブロック位置のランダムな設定及びＯＴＰ領域の開始ブロック位置又は終了ブロック位置のランダムな設定を含む。また、メモリ制御部１１０は、記憶装置ごとに異なる開始ブロック位置又は異なる終了ブロック位置を指定することができる。このような指定は、記憶装置の一連番号の順序で異なる開始ブロック位置又は異なる終了ブロック位置を段階別に増加させるか又は減少させることにより実現される。
上述したように、ブロック位置をランダムに選択することにより製品ごとに異なるように選択されたランダムなブロックがＯＴＰ領域となり、これにより、物理的性質の衝突確率を格段に減少させることができる。
【００４０】
ステップＳ２４０において、メモリ制御部１１０は、次のように説明した幾つかの動作のうちの少なくとも１つを実行することができる。
１番目に、メモリ制御部１１０は、選択されたブロックに少なくとも１つの人為的な不良セルを含む不良セルパターンを生成することができる。このような不良セル又は不良セルパターンの生成は、通常のメモリ製造装置で実行されることができる。例えば、通常知られているレーザヒューズ（Laser Fuse）又は電気ヒューズ（Electrical Fuse：Ｅ−ｆｕｓｅ）が使用されることができる。２番目に、メモリ制御部１１０は、選択されたブロックでランダムな数（すなわち、ランダムに設定されるセル又はビットパターン）を生成することができる。３番目に、メモリ制御部１１０は、選択されたブロックにコード又は秘密キーのような特定の情報を格納することができる。
【００４１】
ＯＴＰ領域又は不良ブロックを生成するステップＳ２５０において、メモリ制御部１１０は、不良セルパターンが記録された選択ブロックを不良ブロックとして生成し（すなわち、選択されたブロックが不良ブロックとしてマーキングされる）、データが記録された選択ブロックをＯＴＰブロックとして生成する（例えば、予約状態のブロックとして指定する）。この予約状態のブロックは、プログラミング又は消去が不可能であり、読み取り動作だけが可能なブロックである。
【００４２】
ステップＳ２７０において、メモリ制御部１１０は、プログラミング／消去テスト及びリードディスターバンステストで識別された不良ブロック、人為的に生成された不良ブロック、及びＯＴＰ領域の位置分布情報を生成し、この生成された情報を任意のブロック（好ましくは予約状態のブロック）に格納する。メモリ制御部１１０は、メモリ３２０の全ブロックの状態を記録する不良ブロックテーブル（Bad Block Table：ＢＢＴ）を生成し、この生成されたテーブルを記憶する。また、メモリ制御部１１０は、ＥＣＣブロックに記憶されたデータを用いて把握される不良セルの位置分布情報を生成し、この生成された情報を予約状態を有する任意のブロック（好ましくは予約状態のブロック）に格納する。
【００４３】
本発明の実施形態によると、通常の不良ブロックテーブル、人為的な不良ブロック、及びＯＴＰ領域に関するテーブル、及び不良セル分布に関するテーブルは、１つに統合されるか又は一部統合されるか、相互に個別に保持されることができる。また、ＯＴＰ領域は、“予約”状態だけでなく他の状態により指定されることもできる。
不良ブロック、ＯＴＰ領域、及び不良セルパターンのうちの少なくとも１つに関する情報（例えば、テーブル）は、他の適法なホスト装置が認識することができる暗号化キー（例えば、記憶装置のライセンスエージェンシーから提供される暗号化キー）を用いて暗号化された状態で暗号化され格納されることができる。
【００４４】
ステップＳ２８０において、メモリ制御部１１０は、不良ブロック、ＯＴＰ領域、及び不良セルパターンのうちの少なくとも１つに関する情報を用いて記憶装置に関する物理的識別子を生成する。
不良ブロック及びＯＴＰ領域の位置情報及び不良セルパターンは、様々な方法で表示することができ、特定の長さを有する固有の物理的識別子は、このような表示値及び追加値に対してハッシュ（hash）関数のような暗号化技術を用いて生成することができる。このような物理的識別子は、固定長さを有することが必ずしも要求される必要はなく、不良ブロック及びＯＴＰ領域の位置情報と不良セルパターン自体が物理的識別子として機能することができる。
【００４５】
例えば、不良セルパターンが図６に示すパターンと同一である場合に、各不良セルの位置は、（３，１）、（１，２）、及び（３，３）のようなｘ−ｙ座標で表示することができる。テーブル又はアレイとして記憶する値が不良セルパターン値（Representation of Fail Cell Pattern）である場合に、このような座標は、不良ブロック及び選択されたブロックの位置と、不良セルパターン値と、セキュアハッシュアルゴリズム１（ＳＨＡ−１）及びメッセージダイジェストアルゴリズム５（ＭＤ５）のようなハッシュ関数を用いて下記のような値を得ることができる。
物理的識別子＝ハッシュ関数（ブロックの物理的位置情報、不良セルパターン値、及びその他の情報）
【００４６】
記憶装置１００がホスト装置の内部又は外部に位置し、ホスト装置に有線又は無線で接続される場合に、この物理的識別子は、ホスト装置が記憶装置を認証するのに使用することができる。例えば、ホスト装置は、パーソナルコンピュータであることができ、記憶装置１００は、パーソナルコンピュータのメモリスロットに装着されたＮＡＮＤフラッシュメモリ装置であることができる。このような場合に、ホスト装置及び記憶装置１００は、ホスト装置内のバスを通してデータ通信を実行する。
ホスト装置の例は、これに限定されないが、本発明の実施形態による他のホスト装置は、コンピュータ、ラップトップ（laptop）、移動装置、携帯装置、インターネットプロトコルテレビジョン、携帯メディアプレーヤー、及びパーソナルディジタルアシスタント（Personal Digital Assistants：ＰＤＡ）などを含む。下記の説明において、物理的識別子は、不良ブロック及び選択されたブロックのパターンと不良セルパターンとを意味する。
【００４７】
物理的識別子は、認証情報として使用することができる。認証情報は、例えば、Authentication_Value=（physical identifier，Signature=Sign（PK_LicenseAgency，physical identifier））で表現することができる。すなわち、認証情報Authentication_Valueは、物理的識別子及びライセンスエージェンシーの電子署名値“Signature”を含むことができる。より具体的に、電子署名値は、物理的性質を有するハッシュ値がライセンスエージェンシーの秘密キー“PK_LicenseAgency”で署名される値である。認証情報“Authentication_Value”は、メモリ３２０にすでに記憶されているデータであるか、メモリ３２０に記憶された構成要素、すなわちライセンスエージェンシーの秘密キー（すなわち、PK_LicenseAgency）及び物理的識別子を用いてメモリ制御部３３０により生成されたデータであることができる。
【００４８】
ホスト装置は、次のように説明された２つの認証情報検証ステップを通して記憶装置を認証することができる。
第１の認証情報検証ステップは、公開キー基盤構造（Public Key Infrastructure：ＰＫＩ）のソフトウェア認証過程に対応する。第１の認証情報検証ステップにおいて、ホスト装置は、電子署名値にすでに知られているライセンスの公開キーを適用することにより物理的識別子の元来のハッシュ値を復号し、物理的識別子のハッシュ値を算出した後に、２つの値を比較することにより第１の認証を実行する。第１の認証情報検証ステップＳ６０は、本発明の他の実施形態に従って省略することができる任意のステップである。本例において、ＰＫＩが使用されるが、本発明の他の実施形態に従って対称キー暗号化方式などのような任意の他の暗号化方式を使用することができる。
【００４９】
第２の認証情報検証ステップは、ハードウェア認証過程であり、ホスト装置は、物理的識別子情報及び記憶装置のテスト結果が同一であるか又は互いに類似性があるか否かを判定する。
また、ホスト装置は、リードディスターバンステストを実行するように記憶装置を制御することができ、このテスト結果が物理的識別子情報と同一であるか又は類似しているかを判定することができる。
その後に、物理的欠陥を有しないＯＴＰ領域に基づく検証方法において、ホスト装置は、テストされたＯＴＰ領域パターンが物理的識別子情報と同一であるか又は類似しているかを判定する。ＯＴＰ領域の識別は、ＯＴＰ領域が“予約”状態を有するか、又はＯＴＰ領域に記憶されたデータパターンが予め定められたパターンと同一であるか否かに基づいて実現することができる。
【００５０】
本発明の実施形態は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合せの形態で実現することができる。例えば、このような任意のソフトウェアは、ＲＯＭのような揮発性又は不揮発性記憶装置と、ＲＡＭ、メモリチップ、装置又は集積回路のようなメモリと、ＣＤ、ディジタル多用途ディスク（ＤＶＤ）、磁気ディスク、磁気テープなどのような光学的又は磁気的に記録可能で機械可読記憶媒体とに記憶することができる。記憶装置及び記憶媒体は、本発明の実施形態を実現する指示を含むプログラム又はプログラムを格納するのに適合した機械可読記憶媒体の実施形態である。したがって、本発明の実施形態は、説明されたシステム及び方法を実現するためのコードを含むプログラムを含むことができ、このようなプログラムを格納する機械可読記憶装置をさらに含むことができる。また、このようなプログラムは、有線又は無線接続を通して送信される通信信号のような任意の媒体により電子的に転送されることができ、本発明の実施形態はこれと均等なことを適切に含む。
【００５１】
以上、本発明を具体的な実施形態を参照して詳細に説明してきたが、本発明の範囲及び趣旨を逸脱することなく様々な変更が可能であるということは、当業者には明らかであり、本発明の範囲は、上述の実施形態に限定されるべきではなく、特許請求の範囲の記載及びこれと均等なものの範囲内で定められるべきものである。
【符号の説明】
【００５２】
１００  記憶装置
１１０  メモリ制御部
１２０  エラー訂正コード（ＥＣＣ）ブロック
１３０  バッファＲＡＭ（ＳＲＡＭ）
１４０  １回限りプログラム可能（ＯＴＰ）ファームウェア
２００  メモリ
２１０  メモリブロックｊ
２２０  メモリブロックｋ
２３０  メイン領域
２４０  スペア領域
【図１】
0005639709.tif 000004
【図２】
0005639709.tif 000005
【図３】
0005639709.tif 000006
【図４】
0005639709.tif 000007
【図５】
0005639709.tif 000008
【図６】
0005639709.tif 000009
【図７】
0005639709.tif 000010