(57)【要約】  ストレージモジュールはマスストレージを含む。また、ストレージモジュールは、マスストレージの部分を定義するように構成された第１のレジスタ、マスストレージの部分と関連付けられた鍵、マスストレージの部分に記憶されるデータを受信するように構成された受信機であって、受信されたデータが鍵に基づいたシグナチャデータを含む、受信機、及びシグナチャデータを認証するための認証回路を含んでもよい。ストレージモジュールのコントローラは、シグナチャデータが鍵に基づいて認証されるのに応えてマスストレージの部分の受信されたデータからデータをプログラミングし、シグナチャデータが認証されないことに応えてマスストレージの部分へのデータのプログラミングを拒否するように構成される。【選択図】図３
2017505939.tif 000002
【特許請求の範囲】
【請求項１】
複数のアドレス指定可能記憶場所であって、前記複数のアドレス指定可能記憶場所の各アドレス指定可能記憶場所が少なくとも１つのメモリセルを有し、集合的にストレージを形成する前記複数のアドレス指定可能記憶場所と、
認証書込み保護されているとして前記ストレージの論理部分を定義するための１つまたは複数のレジスタと、
第１のデータ及び第２のデータを受信するための受信機と、
前記第１のデータを認証するため、及び前記第１のデータの前記認証後に前記ストレージの前記論理部分への前記第２のデータの書込みを可能にするための少なくとも１台のコントローラと、
を備えるストレージデバイス。
【請求項２】
前記ストレージの前記論理部分への前記第２のデータの書込みを可能にすることが、前記１つまたは複数のレジスタと関連付けられた１個または複数の保護ビットをクリアすることを含む、請求項１に記載の前記ストレージデバイス。
【請求項３】
前記第１のデータを認証できないことに応えて、前記少なくとも１台のコントローラが前記１個または複数の保護ビットをクリアしない、請求項２に記載の前記ストレージデバイス。
【請求項４】
前記１個または複数の保護ビットをクリアすることに応えて、前記少なくとも１台のコントローラが前記ストレージの前記論理部分に記憶される前記第２のデータの少なくとも一部を受信する、請求項２に記載の前記ストレージデバイス。
【請求項５】
前記第１のデータがシグナチャデータを備える、請求項１から請求項４のいずれか１つに記載の前記ストレージデバイス。
【請求項６】
前記第１のデータを前記認証することが、少なくとも部分的に鍵に基づいて前記第１のデータを認証することを含む、請求項１から請求項５のいずれか１つに記載の前記ストレージデバイス。
【請求項７】
前記鍵が前記ストレージの前記論理部分と関連付けられ、前記鍵が、前記ストレージデバイスに動作可能なように接続されたホスト装置の製造中に前記ストレージの中に記憶される、請求項６に記載の前記ストレージデバイス。
【請求項８】
前記ストレージデバイスがユニバーサルフラッシュストレージ（ＵＦＳ）モジュールを備える、請求項１から請求項７のいずれか１つに記載の前記ストレージデバイス。
【請求項９】
前記ストレージデバイスが埋込みマルチメディアカード（ｅＭＭＣ）を備える、請求項１から請求項７のいずれか１つに記載の前記ストレージデバイス。
【請求項１０】
実行時、
認証書込み保護されているとしてストレージの論理部分を定義する、
ホスト装置から第１のデータ及び第２のデータを受信する、
前記第１のデータを認証する、及び
前記第１のデータの前記認証後に前記ストレージの前記論理部分への前記第２のデータの書込みを可能にする
ようにストレージデバイスを構成する命令を備える１つまたは複数のコンピュータ記憶媒体。
【請求項１１】
前記ストレージの前記論理部分への前記第２のデータの書込みを可能にすることが、認証書込み保護されているとして前記ストレージの前記論理部分を定義する１個または複数の保護ビットをクリアすることを含む、請求項１０に記載の前記１つまたは複数のコンピュータ記憶媒体。
【請求項１２】
前記第１のデータを認証できなかったことに応えて、前記１個または複数の保護ビットをクリアしないことをさらに含む、請求項１１に記載の前記１つまたは複数のコンピュータ記憶媒体。
【請求項１３】
前記１個または複数の保護ビットを前記クリアすることに応えて、前記ストレージの前記論理部分に記憶される前記第２のデータの少なくとも一部を受信することをさらに含む、請求項１１に記載の前記１つまたは複数のコンピュータ記憶媒体。
【請求項１４】
前記第１のデータがシグナチャデータを備える、請求項１０から請求項１３のいずれか１つに記載の前記１つまたは複数のコンピュータ記憶媒体。
【請求項１５】
前記第１のデータの前記認証が、少なくとも部分的に鍵に基づいて前記第１のデータを認証することを含む、請求項１０から請求項１４のいずれか１つに記載の前記１つまたは複数のコンピュータ記憶媒体。
【請求項１６】
前記鍵が前記ストレージの前記論理部分と関連付けられ、前記鍵が、前記ストレージデバイスに動作可能なように接続されたホスト装置の製造中に前記ストレージデバイスの中に記憶される、請求項１５に記載の前記１つまたは複数のコンピュータ記憶媒体。
【請求項１７】
前記ストレージデバイスがユニバーサルフラッシュストレージ（ＵＦＳ）モジュールを備える、請求項１０から請求項１６のいずれか１つに記載の前記１つまたは複数のコンピュータ記憶媒体。
【請求項１８】
前記ストレージデバイスが埋込みマルチメディアカード（ｅＭＭＣ）を備える、請求項１０から請求項１６のいずれか１つに記載の前記１つまたは複数のコンピュータ記憶媒体。
【請求項１９】
１台または複数のストレージコントローラによって、認証書込み保護されているとしてストレージデバイスと関連付けられたストレージの論理部分を定義することと、
１台または複数のストレージコントローラによってホスト装置から第１のデータ及び第２のデータを受信することと、
１台または複数のストレージコントローラによって前記第１のデータを認証することと、
１台または複数のストレージコントローラによって、前記第１のデータの前記認証後に前記ストレージの前記論理部分への前記第２のデータの書込みを可能にすること、
を含む、コンピュータ実装方法。
【請求項２０】
前記ストレージの前記論理部分への前記第２のデータの書込みを可能にすることが、認証書込み保護されているとして前記ストレージの前記論理部分を定義する１個または複数の保護ビットをクリアすることを含む、請求項１９に記載の前記コンピュータ実装方法。
【請求項２１】
前記第１のデータを認証することができないことに応えて、前記１個または複数の保護ビットをクリアしないことをさらに含む、請求項２０に記載の前記コンピュータ実装方法。
【請求項２２】
前記１個または複数の保護ビットを前記クリアすることに応えて、前記ストレージの前記論理部分に記憶される前記第２のデータの少なくとも一部を受信することをさらに含む、請求項２０に記載の前記コンピュータ実装方法。
【請求項２３】
前記第１のデータがシグナチャデータを含む、請求項１９から２２のいずれか１つに記載の前記コンピュータ実装方法。
【請求項２４】
前記第１のデータの前記認証が、少なくとも部分的に鍵に基づいて前記第１のデータを認証することを含む、請求項１９から請求項２３のいずれか１つに記載の前記コンピュータ実装方法。
【請求項２５】
前記鍵が前記ストレージの前記論理部分と関連付けられ、前記鍵が、前記ストレージデバイスに動作可能なように接続されたホスト装置の製造中に前記ストレージデバイスの中に記憶される、請求項２４に記載の前記コンピュータ実装方法。
【請求項２６】
前記ストレージデバイスがユニバーサルフラッシュストレージ（ＵＦＳ）モジュールを備える、請求項１９から請求項２５のいずれか１つに記載の前記コンピュータ実装方法。
【請求項２７】
前記ストレージデバイスが埋込みマルチメディアカード（ｅＭＭＣ）を備える、請求項１９から請求項２５のいずれか１つに記載の前記コンピュータ実装方法。
【請求項２８】
ストレージデバイスに第１のデータ及び第２のデータを送信するためのホストコントローラを備えるホスト装置であって、前記第１のデータが、前記ストレージデバイスによる認証に応えて、前記ストレージデバイスと関連付けられたストレージの論理部分への前記第２のデータの書込みを可能にするシグナチャデータを備える、ホスト装置。
【請求項２９】
前記ホスト装置が、少なくとも部分的に鍵の使用に基づいて前記シグナチャデータを生成するために前記第１のデータに署名する、請求項２８に記載の前記ホスト装置。
【請求項３０】
前記鍵は、前記ホスト装置の製造中に前記ホスト装置の中に記憶される、請求項２９に記載の前記ホスト装置。
【請求項３１】
複数のアドレス指定可能記憶場所であって、前記複数のアドレス指定可能記憶場所の各アドレス指定可能記憶場所が少なくとも１つのメモリセルを有し、集合的にストレージを形成する前記複数のアドレス指定可能記憶場所と、
認証書込み保護されているとして前記ストレージの論理部分を定義するための１つまたは複数のレジスタと、
第１のデータ及び第２のデータを受信するための受信機と、
少なくとも部分的に鍵に基づいて前記第１のデータを認証するための少なくとも１台のコントローラと、
を備え、
認証の成功に応えて、前記少なくとも１台のコントローラが、前記１つまたは複数のレジスタと関連付けられた１個または複数の保護ビットをクリアし、
前記１個または複数の保護ビットを前記クリアすることに応えて、前記ストレージの前記論理部分への前記第２のデータの書込みが可能にされる、
ストレージデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、全体が参照により全体として本明細書に組み込まれる、２０１３年１２月１０日に出願され、「Ｓｔｏｒａｇｅ  Ｍｏｄｕｌｅ  ｗｉｔｈ  Ａｕｔｈｅｎｔｉｃａｔｅｄ  Ｓｔｏｒａｇｅ  Ａｃｃｅｓｓ」と題する米国仮出願第６１／９１４，２８４号の利益を主張し、米国仮特許出願第６１／９１４，２８４号に対する優先権を主張する。本願は、それぞれが本願の譲受人に譲受されている、２００９年６月４日に出願され、現在は米国特許第８，８７４，８２４号として特許を受けている米国出願第１２／４５５，７６３号、２０１０年６月２３日に出願された米国出願第１２／４４３，４８１号、及び２００５年７月８日に出願され、現在米国特許第７，８２７，３７０号として特許を受けている米国出願第１１／１７６，６６９号に関する。これらの関連出願のそれぞれは、全体として参照することにより本明細書に組み込まれる。
【背景技術】
【０００２】
管理ＮＡＮＤストレージモジュール等の管理ストレージモジュールは、フラッシュＮＡＮＤメモリ等の未処理メモリの使用に優る多くの利点を提供する。通常、管理ＮＡＮＤの場合、ＮＡＮＤメモリと、または他の場合、他のタイプのメモリと結合されたストレージコントローラを含む管理ストレージモジュールは、デバイス製造メーカにいくつかの利点を提供する。ストレージコントローラはメモリ（例えば、ＮＡＮＤ）の詳細を隠し、意図されたインタフェース機能及び例えば誤り訂正符号（ＥＣＣ）サポート等の他の機能を、デバイス製造メーカがホスト側（例えば、スマートフォンまたはタブレット）でそれらの機能を実装する必要なしに提供する。さらに、管理ストレージモジュールは新しい先進機能を、ホストが必ずしも該機能が存在することを認識する必要もなく、ストレージコントローラに実装できるようにする。先進機能は、ホストが機能をサポートするかどうかに応じてストレージコントローラによって活性化される、または活性化されないかのどちらかである。このようにして、管理ストレージモジュールは下位互換性を改善する。
【０００３】
管理ストレージモジュール、及び特に管理ＮＡＮＤストレージモジュールの例は、埋込みマルチメディアカード（ｅＭＭＣ）、ユニバーサルフラッシュストレージ（ＵＦＳ）、ソリッドステートドライブ（ＳＳＤ）モジュールを含む。これらのモジュールは、携帯電話、グローバルポジショニングシステム（ＧＰＳ）装置、メディアプレーヤ、ＰＣ、並びにオペレーティングシステムコード、アプリケーション、及び写真と映像等のユーザデータを記憶するためのサーバのような多種多様の用途で使用される。ホスト装置に見えるデータとともに、ストレージモジュール自体の操作コード／ファームウェア（ＦＷ）がストレージモジュールのメモリに記憶される。さらに、レジスタデータ及びアドレス変換データ等の、ストレージモジュールを操作するために必要とされる他の重要なデータがメモリに記憶されてよい。
【０００４】
ストレージモジュール上のオペレーティングシステム（ＯＳ）コードは、どのようなマルウェアがストレージモジュールを変更するのも防ぐためにセキュリティを必要とすることがある。１つの種類の保護は、ＯＳコードが記憶されるメモリの部分の恒久書込み保護であろう。ｅＭＭＣ用のＪＥＤＥＣ  ＪＥＳＤ８４等のいくつかの規格は、恒久的にまたは電源がリセットまたはいったん切ってすぐに入れ直されるまでのどちらかで、メモリの部分を書込み保護するためのオプションを含む。
【０００５】
ときおり、デバイスの寿命の間、ホスト装置のＯＳコードまたはストレージモジュールの操作コード／ファームウェア（ＦＷ）を更新する必要が出現することがある。１つの係る説明は、全体として参照することにより本明細書に組み込まれる、２０１０年６月２３日に特許協力条約（ＰＣＴ）第ＰＣＴ／ＩＢ２００６／００３８７２号として出願された、米国出願第１２／４４３，４８１号から見つけることができる。本開示は、メモリの部分の潜在的な書込み保護が更新手順の期間オーバライドされるように、ストレージモジュールでの操作コードの更新プロセスの説明を含む。ＯＳコードを更新するときと同様に、操作コード／ファームウェアは、不注意な変更またはマルウェアによる変更から保護される必要がある場合がある。
【０００６】
図は、説明のためだけに本発明の実施形態を示す。当業者は、以下の説明から、本明細書に説明される構造及び方法の代替実施形態が、本明細書に説明される本発明の原理から逸脱することなく利用できることを容易に認識するだろう。
【図面の簡単な説明】
【０００７】
【図１】例示的なホスト装置を示す。
【図２】ストレージモジュールの実施形態を示す。
【図３】本発明の第１の実施形態のプロセスフローを示す。
【発明を実施するための形態】
【０００８】
以下の説明は、当業者が多様な実施形態を作成し、使用できるようにするために提示される。特有の装置、技法、及び用途の説明は実施例としてだけ提供される。本明細書に説明される実施例に対する多様な修正は当業者に容易に明らかになり、本明細書に定義される一般的な原理は、多様な実施形態の精神及び範囲から逸脱することなく他の実施例及び用途に適用されてよい。したがって、多様な実施形態は本明細書に説明され、図示される実施例に制限されることを目的とするのではなく、特許請求の範囲に一致する範囲を与えられることを目的とする。
【０００９】
上述されたように、管理ストレージモジュールはホスト装置用のＯＳコード及び／またはストレージモジュール用の操作／ファームウェアコードを記憶してよい。これらのコード、データ、または他の情報はマルウェアによる変更に特に敏感であってよい。例えば、マルウェアがこれらのタイプの情報を変更できる場合、ひいてはストレージモジュールを使用するホスト装置のセキュリティも不正アクセスされることがある。ｅＭＭＣを定義する規格等のいくつかのストレージ規格は、ストレージの定義可能な部分の恒久的なまたは一時的な（つまり、電源がリセットされるまでの）書込み保護を可能にする。この手順の説明は、全体として参照することにより本明細書に組み込まれる、２００５年７月８日に出願された米国特許第７，８２７，３７０号に見つけられる。
【００１０】
恒久的な書込み保護オプションを使用することは十分なセキュリティを提供する。ただし、上述されたように、ＯＳコードまたは操作／ファームウェアコードを、それらのコードがすでに恒久的に書込み保護されている領域のストレージモジュールにすでに記憶された後に更新することが必要となることがある。これらの場合、新しいコードが真正であるとして認証または検証できる場合にはコードを更新できることはそれでも役に立つだろう。したがって、以下に説明される本発明の実施形態は、データをストレージモジュールの保護された領域に書き込むことを可能にする前にそのデータが真正であると判断する。さらに、以下に説明される本発明の実施形態は、書き込まれるデータのソースのアイデンティティが真正であると判断する（例えば、受信されたデータが信頼できるソースに及び／または共有秘密鍵を知っているソースに由来する旨の検証）。
【００１１】
図１は、例えば、本発明の実施形態を活用してよいスマートフォンまたはタブレット等、例のホスト装置１００を示す。ホスト装置１００は、容量検出または抵抗検出に基づいてユーザーの接触に反応するタッチディスプレイ１０２を含む。バス１０３は、タッチディスプレイ１０２でのグラフィック及びテキストの表示を処理するグラフィックサブシステムを含んでよいプロセッサ１０４にタッチディスプレイ１０２を接続する。また、ホスト装置１００は、システムメモリ１０８（例えば、ＤＲＡＭ）、センサ１１０（例えば、加速度計、ジャイロスコープ、ＧＰＳ）、入出力（Ｉ／Ｏ）１１２（例えば、スピーカ、マイク、またはキーボード）、及び通信インタフェース１１４（例えば、ＵＳＢ、ＷｉＦｉ、ブルートゥース（登録商標）、または他の有線インタフェースもしくは無線インタフェース）を含んだ、共有バス１０６を通してプロセッサ１０４に接続される多くの他の構成部品も含む。プロセッサ１０４は、バス１２２上でストレージモジュール１２０と接続する（プロセッサ１０４に代わりに接続されてよいが、プロセッサ１０４とは分離している）ホストコントローラ１１８も含んでよい。代わりに、ホストコントローラ１１８は、共有バス１０６上でストレージモジュール１２０と接続してよい。本明細書に説明されるように、ストレージモジュール１２０は（ストレージデバイスまたはメモリ装置とも呼ばれることがあり）、データが真正であることを、そのデータがストレージモジュールの保護領域に書き込まれることを可能にする前に判断するように構成される。共有バス１０６とバス１２２の両方とも、データ、コマンド、クロック信号、電力、リセット等のためのいくつかのバスラインを含んでよい。バス１２２に含まれるバスラインの実施例は、図２に関して以下に説明される。バッテリ１１６は、電源バス及び／または電源ライン（不図示）を通して上述された構成部品に電力を提供する。
【００１２】
ストレージモジュール１２０の使用は、タッチセンサ式のスマートフォンまたはタブレットとの関連で示されるが、本発明は係る装置での使用に制限されていない。本発明の実施形態は、スマートウォッチまたは眼鏡等のウェアラブルコンピュータ、テレビ、カメラ、ネットブック、ゲーム機、パーソナルコンピュータ、サーバ、セットトップボックス等、ストレージを必要とする任意の電子機器に適用され得る。さらに、ホスト装置１００のアーキテクチャは例示のためだけに提供され、制限的と見なされるべきではない。
【００１３】
図２は、本発明の実施形態を実装してよいストレージモジュール１２０の例示的なアーキテクチャを示す。ストレージモジュール１２０は、プリント基板に取り付けられるように設計されるパッケージ（例えば、ボールグリッドアレイ（ＢＧＡ）パッケージ）の中に入れられてよい。例えば、ストレージモジュール１２０は、埋込みマルチメディアカード（ｅＭＭｃ）またはユニバーサルフラッシュストレージ（ＵＦＳ）モジュールであってよい。代わりに、ストレージモジュール１２０は、ホスト装置上のスロットの中に納まるリムーバブルカード、またはＳＳＤモジュールもしくはＰＣ／サーバカード／モジュール（例えば、ＰＣＩｅカード）等のセミリムーバブルデバイスの中に入れられてよい。さらに、ストレージモジュール１２０は、１台の独立した装置として示されているが、ストレージモジュール１２０は相互接続された装置の集合体で実装されてもよい。
【００１４】
図２に示されるように、ストレージモジュール１２０は、マスストレージ２０２とホスト１００（図１を参照）との間でデータを通信するためのストレージコントローラ２００を含む。ストレージコントローラ２００は、ストレージコントローラ２００の動作を制御するための制御回路２０４を含む。制御回路２０４は、操作情報を記憶するため、及び／またはストレージモジュール１２０によって要求されるようにテンポラリストレージを提供するためにバス２１３上でＲＡＭ２１４に接続されてよい。ストレージコントローラ２００は、内部クロックバス２０７で内部クロック信号を生成するためのクロック生成回路２０６、ホストコントローラ１２２（図１を参照）からデータ及びコマンドを受信するための（本明細書では「受信機」と呼ばれることがある）受信機回路２０８、ホストコントローラ１２２（図１を参照）にデータ及びステータス情報を送信するための送信機回路２１０、並びに内部クロッキングの生成に関係する情報を含んだ、ストレージモジュール１２０の動作に関係する情報及び設定値を記憶するためのレジスタ２１２も含む。制御回路２０４は、レジスタ２１２にアクセスする、またはレジスタ２１２に情報を書き込むためにバス２１１を使用してよい。ストレージモジュール１２０は、データ及びステータス情報を提供してよいデータアウトライン２１５ｂ及びデータ端末２１５ａ、並びにデータ、コマンド、及びステータス情報を提供してよいデータインライン２１６ｂ及びデータ端末２１６ａを通してホストコントローラ１１８と通信する。
【００１５】
また、ストレージモジュール１２０は、クロック生成回路２０６に基準クロック信号を提供する基準クロックライン２１８ｂ及び基準クロック端末２１８ａ、並びにストレージコントローラ２００及びマスストレージ２０２に電力を提供する電力線２２０ｂ及び電力端末２２０ａも含む。上記のライン及び端末は、図２で単一のライン及び端末であると示されているが、それぞれのライン及び端末は複数のライン及び端末から構成されてよい。例えば、電力端子２２０ａは、それぞれ個別に、異なる構成部品（例えば、マスストレージ２０２及びストレージコントローラ２００）に電力を提供する電力線２２０ｂの内の複数のラインと関連付けられた複数の端末を含んでよい。別の例として、データアウトライン２１５ｂ及びデータアウト端末２１５ａまたはデータインライン２１６ｂ及びデータイン端末２１６ａは、２つの端末に接続された２本のライン（例えば、異なる組または２ビット幅のバス）を使用し、実装されてよい。バス２２２は、ストレージコントローラ２００が、マスストレージ２０２からデータを読み取り、マスストレージ２０２にデータを書き込むことを可能にする。
【００１６】
また、ストレージモジュール１２０は、１ビットまたは複数ビットの情報を記憶するためのメモリ回路またはメモリセルを有する１つまたは複数のチップ上にあってよい１つまたは複数のメモリプレーン／バンク上に１つまたは複数のメモリブロックを含むマスストレージ２０２も含む。例えば、マスストレージ２０２は、それぞれが１ビット（シングルレベルセル）または複数ビット（マルチレベルセル）のデータを記憶できるメモリセル／回路（例えば、ＮＡＮＤセル）を有するＮＡＮＤフラッシュメモリ等の不揮発性メモリで実装されてよい。他の形の不揮発性メモリも、本発明から逸脱することなく使用できる。例えば、不揮発性メモリは、相変化メモリ（ＰＣＭ）、磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）、抵抗ランダムアクセスメモリ（ＲＲＡＭ）、強誘電ランダムアクセスメモリ（ＦＲＡＭ（登録商標））等を含んでよい。
【００１７】
多様な実装では、マスストレージ２０２は、それぞれ少なくとも１つのメモリセル、バイト、ワード、または複数のワードと関連付けられる複数のアドレス指定可能記憶場所を含む。したがって、アドレス指定可能記憶場所は、少なくとも１つのメモリプレーン／メモリブランク、少なくとも１つのメモリブロック、少なくとも１つのメモリページ等を含んでよい。また、本明細書に説明されるように、１つまたは複数のアドレス指定可能記憶場所は、メモリの領域または一部を含んでもよい。アドレスは論理アドレスまたは物理アドレスであってよい。
【００１８】
マスストレージ２０２は、物理的に及び／または論理的に分割されてよい。例えば、マスストレージ２０２は単一チップとして実装されてよい。代わりに、マスストレージ２０２は（図２に示されるように）単一のパッケージの中で互いに接続されるいくつかの離散チップで実装されてよい、または代わりに、別々にパッケージ化され、外部で互いに接続されてよい。また、マスストレージ２０２は、さらにブロックに分割されてよいプレーン／バンクに分割されてもよく、ブロックはさらにページに分割されてよい。ストレージコントローラ２００は、ストレージコントローラ２００がマスストレージ２０２からデータを読み取り、マスストレージ２０２にデータを書き込むことを可能にするバス２２２を通してマスストレージ２０２に接続される。
【００１９】
ＲＡＭ２１４は、ストレージコントローラ２００が、容易に／迅速にアクセスされる必要がある場合がある操作情報（例えば、操作コード及び／または状態情報）を記憶するために使用するメモリである。例えば、ＲＡＭ２１４は、論理アドレスがマスストレージ２０２の物理アドレスにどのようにしてマッピングされるのかを説明する変換テーブルを記憶してよい。ＲＡＭ２１４が実装されていない、または十分なＲＡＭ２１４がストレージモジュール１２０の内部に実装されていない場合、ストレージコントローラ２００は、いくつかの場合、代わりに、全体として参照することにより組み込まれる、２００９年６月４日に出願された米国特許出願第１２／４５５，７６３号に説明されるように、ホスト１００（図１を参照）のシステムメモリ１０８の一部を要求し、使用してよい。
【００２０】
クロック生成回路２０６は、クロック信号を生成できる回路で実装されてよい。例えば、クロック生成回路２０６は、ＰＬＬ、発振器、電圧制御発振器、遅延ロックループ、周波数検出器、周波数逓倍器／分周器、位相検出器、これらの回路の組合せ、または任意の他の適切な回路を含んだ共通クロック回復回路及び／またはクロック生成回路を使用し、実装されてよい。クロック生成回路２０６は、抵抗器、コンデンサ、インダクタ、結晶、またはＭＥＭＳデバイス等、他の構成部品に依存してもよい。また、クロック生成回路２０６は、クロック生成回路が、それが受信する入力に従って変わるクロック信号出力を提供できるようにプログラム可能であってもよい。例えば、クロック生成回路２０６は、基準クロック信号が基準クロックライン２１８ｂに存在するとき非常に高品質（例えば、低ジッタ）のクロック信号を生じさせるように構成されてよい。また、クロック生成回路２０６は、基準クロック信号が存在しないときより低い質のクロック信号を生じさせるように構成されてもよい。他の実施例として、出力されたクロック信号の周波数、デューティサイクル、ジッタ、出力スキュー、または伝搬遅延は、バス２０５を通してクロック生成回路２０６に提供される入力（例えば、制御ビット）に従って設定されてよい。代替アーキテクチャでは、クロック生成回路２０６は、制御回路２０４を経由しないでレジスタ２１２に直接的なアクセスを有する、またはクロック生成回路２０６はクロック構成情報を記憶するためにそれ自体にとって内部のレジスタを有することがあるだろう。クロック生成回路２０６はストレージコントローラ２００の一部であると示されているが、クロック生成回路２０６は、本発明から逸脱することなくストレージコントローラ２００にとって外部で実装されてもよい。
【００２１】
受信機回路２０８及び送信機回路２１０は、ストレージモジュール１２０がクロック信号なしでよりも速い速度でホスト１００にデータを転送し得るように、内部クロックライン２０７で内部クロック信号を受信する。別の実施形態では、内部クロックライン２０７は、送信機回路２１０に対してではなく、受信機回路２０８に対して内部クロック信号を提供するにすぎない。さらに別の実施形態では、内部クロックライン２０７は、受信機回路２０８に対してではなく、送信機回路２１０に対して内部クロック信号を提供するにすぎない。
【００２２】
レジスタ２１２は、クロック生成回路２０６の動作またはストレージモジュール１２０の他の機能に関する情報を含んだ、ストレージモジュール１２０の動作に関する１ビットまたは複数ビットの情報を記憶する。レジスタ２１２は、ストレージコントローラ２００の一部として、マスストレージ２０２の一部として、ＲＡＭ２１４の一部として、またはストレージモジュール１２０内のなんらかの他のメモリ回路の一部として実装されてよい。レジスタ２１２のために使用されるメモリは任意のタイプであってよい。例えば、レジスタ２１２は、揮発性（例えば、ＳＲＡＭ、ＤＲＡＭ）、不揮発性（フラッシュ、磁気、抵抗）、ＲＯＭ、一時プログラム可能、または異なるタイプのメモリの任意の組合せで実装されてよい。
【００２３】
レジスタ２１２は、例えば、類似したサイズまたは異なるサイズのレジスタ２１２ａから２１２ｈ等、いくつかの個々のレジスタを含んでよい。例えば、レジスタ２１２ａは１バイトのレジスタであってよい。一方、レジスタ２１２ｂから２１２ｅは１ビットのレジスタであり、レジスタ２１２ｆは４バイトのレジスタである。レジスタ２１２は、いくつかの特有のタイプの情報を記憶するために使用できる。ある場合、レジスタ２１２のいくつかは、ストレージモジュール１２０がどのようにして動作するのか（例えば、サポートされている機能）を説明する読取り専用情報、またはストレージモジュール１２０が適切に動作するもしくは異なるレベルの性能で動作するための要件（例えば、異なる転送速度のための電流要件）を記憶する。別の場合、レジスタ２１２のいくつかは、ストレージモジュール１２０がどのようにして動作するのか、またはどのストレージモジュール１２０が動作する必要があるのかを構成する書込み可能情報を記憶する。さらに別の場合、レジスタ２１２のいくつかは、ストレージモジュール１２０がどのようにして現在動作しているのか、つまりストレージモジュール１２０の現在の状態についての情報を記憶する。同時に、レジスタ２１２は、他のタイプのデータとともに上述された異なるタイプの情報のすべてを記憶してもよい。また、レジスタ２１２は、全体として参照することにより本明細書に組み込まれる、２０１２年６月に発表されたユニバーサルフラッシュストレージ（ＵＦＳ  １．１）用のＪＥＤＥＣ規格第２２０Ａ号に説明されるように記述子、フラグ、及び属性を実装するために使用されてもよい。
【００２４】
ある場合、レジスタ２１２は（恒久的にまたは一時的に）書込み保護されるマスストレージ２０２の領域を説明する情報を記憶する。例えば、レジスタ２１２ｆは、アドレス範囲、ブロック範囲、パーティション、または領域を定義する同様なものを定義してよい。例えば、レジスタ２１２ｇ等、別のレジスタは、領域が恒久的に書込み保護されるのか、一時的に書込み保護されるのか、それとも認証書込み保護されるのかを定義してよい。恒久書込み保護または一時書込み保護の場合、領域は、上記に参照により組み込まれた米国特許第７，８２７，３７０号に説明されるように保護される。ただし、認証書込み保護されている領域の場合、領域は、書き込まれるデータの認証が成功する場合、例えばプログラミングされる等、書き込まれてよい。この機能の実装は、本発明の多様な実施形態に関して以下に説明される。
【００２５】
制御回路２０４は、１台または数台の状態機械を含んでよい。代わりに、別の実施例として、制御回路２０４は、ストレージモジュール１２０を制御するようにプログラミングされる汎用のプロセッサまたはマイクロコントローラを含んでよい。例えば、ファームウェアでプログラミングされたプロセッサは、ストレージモジュール１２０の動作を支配する１台または複数の状態機械を実装してよい。制御回路２０４をプログラミングするためのファームウェアまたは他のソフトウェアは、専用のストレージに、またはマスストレージ２０２上の確保された記憶領域に記憶されてよい。別の代替策として、制御回路２０４は、ファームウェア等でプログラミングされた汎用プロセッサ及び特有の機能を実行する特殊目的回路網の組合せとして実装されてよい。
【００２６】
制御回路２０４が制御するストレージモジュール１２０の態様の中にあるのがクロック生成回路２０６の動作である。特に、レジスタ２１２に記憶される情報、及びいくつかの実施例ではレジスタ２１２にまたは代わりにＲＡＭ２１４にも記憶されてよい状態情報を使用し、制御回路２０４は、内部クロック信号の動作を制御できるクロック生成回路２０６に制御情報（例えば、制御ビット）を供給する。
【００２７】
制御回路２０４の他の機能は、特定の機能を実行するために、例えば受信機回路２０８を介して、ホスト１００からコマンド信号を受信することを含む。例えば、制御回路２０４は、レジスタ２１２から情報を読み取るために、またはレジスタ２１２に情報を書き込むためにホスト１００からコマンド信号を受信してよい。例えば、制御回路２０４は、ストレージモジュール１２０の状態（例えば、電力状態、プログラミング状態等）を記憶する場所のレジスタ２１２を読み取るためのコマンドを受信してよい。
【００２８】
図２のアーキテクチャは説明を容易にするためだけの実施例であり、本発明に対して制限的と見なされるべきではないことが理解されるべきである。回路、バス、ライン、モジュール等は、簡略化された、除外された、またはそれ以外の場合図２の他の構成部品と結合された可能性がある。例えば、ストレージモジュール１２０は、バス２０７、２０５、２１３、２１１、及び２２２を有すると示される。これらのバスは、本明細書に説明された本発明の精神から逸脱することなく、除去されてよい、結合されてよい、ルートを変更されてよい、及び／または追加されてよい。別の実施例として、制御回路２０４の機能性は、上述されたことにわたって大幅に拡大されてよい、または制御回路２０４による上述された機能は異なる回路全体で拡散されてよい。
【００２９】
図３は、本発明の第１の実施形態を実装するための例示的なプロセス３００を示す。プロセスは、ハードウェア、ソフトウェア、またはその組合せで実装できる動作のシーケンスを表す論理フローグラフとして示されている。動作は、１台または複数のプロセッサによって実行されるときに、列挙された動作を実行する実行可能命令を表してよい。実行可能命令は、特定の機能を実行するルーチン、プログラム、オブジェクト、構成部品、モジュール、データ構造等を含んでよい。動作が説明される順序は、制限として解釈されることを目的とせず、任意の数の説明された動作はプロセスを実装するために任意の順序で及び／または並行して結合できる。実行可能命令は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等の情報の記憶のための任意の方法または技術で実装される揮発性の及び不揮発性の取外し可能な媒体及び取外しができない媒体を含んだコンピュータ記憶媒体に記憶されてよい。コンピュータ記憶媒体は、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、電気的消去可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、または他のメモリ技術、磁気記憶装置、もしくはホスト装置によってまたはストレージモジュールによるアクセスのための情報を記憶するために使用できる他の非伝送媒体を含むが、これに限定されるものではない。
【００３０】
ステップ３０２で、ホスト１００は、マスストレージ２０２の保護領域（例えば、メモリの領域または部分）にプログラムされるまたは書き込まれるデータを送信する。このステップは、ストレージモジュール１２０に、保護領域への書込みが要求されていることを知らせるために特殊引数を有する標準的な書込みコマンドの形をとってよい。このステップのための他の代替策は、ストレージモジュール１２０が書込みコマンドの宛先アドレスに基づいて保護領域用であると検出する特殊コマンドまたは一般コマンドを含むが、これに限定されるものではない。レジスタ２１２は、ストレージモジュール１２０の、論理または物理どちらかのメモリの領域、及び領域が受ける保護のタイプまたは領域に適用される保護のタイプを定義してよい。例えば、レジスタは、物理または論理アドレス、パーティション（複数の場合がある）、ブロック等の関数として領域を定義してよく、別のレジスタは、例えば２ビットの保護のタイプを定義してよい。『００』は保護なしを意味し、『０１』はストレージモジュールをいったん切ってすぐに入れ直すときにクリアされる一時書込み保護を意味し、『１０』は、データが（例えば、鍵に対して）認証される場合にだけ書き込みが許されることを意味する認証保護を意味し、『１１』は、領域が全ての書込みから恒久的に保護されることを意味する。領域が認証書込み保護される場合（例えば、上述された『１０』を指定する２ビット）、次いで書き込まれるまたはプログラミングされるデータの認証は、データが領域に書き込まれるまたはプログラミングされる前に検証されなければならない。
【００３１】
多様な実装では、データを送信する前に、ホスト１００は、データシグナチャを用いて書き込まれるまたはプログラミングされるデータに署名してよい。例えば、データは、例えばプログラミングまたは書き込まれるデータに対して、領域を変更するために、信頼される者（例えば、ホストまたはストレージモジュールの製造メーカ）によってだけ知られるべきである秘密鍵で、データにシグナチャ機能を実行する結果である認証データを加えることによって署名されてよい。したがって、書込みアクセスは、第２のデータがプログラミングされるまたは保護領域に書き込まれることを検証するためにストレージモジュールが認証してよい第１のデータを含んでよい。任意選択で、書き込まれるまたはプログラミングされるデータは同じ鍵または異なる鍵を使用し、暗号化されてもよい。いくつかの実施例では、シグナチャデータは、シグナチャデータが、鍵を知っているエンティティによって認証できるようにプログラミングされるまたは書き込まれるデータと、鍵の両方に基づいてよい。署名する（及びデータを認証する）１つの係る方法は、全体として参照することにより組み込まれる２０１２年６月に発表されたＪＥＤＥＣ規格第ＪＥＳＤ８４−Ｂ４５１号に見つけられる。特に、第６．６．２２．４．３項は、データに署名するための１つの例示的な方法を説明する。
【００３２】
ステップ３０４で、プログラミングされるまたは保護領域（例えば、メモリの領域）に書き込まれるデータがストレージモジュール１２０で受信される。データは、マスストレージ２０２の一時領域に記憶されてよい、または代わりに、データは、データのすべてがストレージモジュール１２０で受信される前に認証されてよい。いったん認証されると、データは、一時書込み場所を使用する必要なく、マスストレージ２０２の保護領域に直接的に記憶されてよい。
【００３３】
ステップ３０６で、データのすべてを受信した後、またはいくつかの場合、データのなんらかの部分、データまたはデータの部分と関連付けられたシグナチャデータは、例えば受信データから抽出される。上記に参照されたＪＥＤＥＣ規格第ＪＥＳＤ８４−Ｂ４５１号は、このステップを実行する１つの例示的な方法を説明する。
【００３４】
ステップ３０８で、シグナチャデータがいったん抽出されると、シグナチャデータは認証される。これは、シグナチャデータとプログラミングされるまたは領域に書き込まれるデータのすべての両方を受信していることを必要とすることがある。例えば、ストレージコントローラ２００は、例えばストレージモジュール１２０及び／またはホスト１００の製造中にストレージモジュール１２０内に記憶される秘密鍵に基づいてシグナチャデータを再計算する回路網を（例えば、制御２０４内に）有してよい。３０６からのシグナチャデータが再計算されたシグナチャデータに一致する場合、製造メーカだけが秘密鍵を知っているので、次いでプログラミングされるまたは書き込まれる受信データは認証されたまたは検証されたと見なされてよい。
【００３５】
ステップ３１０で、データが無事に認証される場合、次いでデータはプログラミングされる、または保護領域（例えば、メモリの領域）に書き込まれる。代わりに、受信データが暗号化される場合、次いで暗号化されていないデータはプログラミングされるまたは保護領域に書き込まれる。データは、データのどれも書き込まれていないこと、またはデータのすべてが書き込まれていることのどちらかを保証するアトミック書込みとして書き込まれてよい。
【００３６】
ステップ３１２で、データが無事に認証されない場合、次いでデータはプログラミングされない、または保護領域に書き込まれない（例えば、メモリの領域は、メモリの領域にデータが書き込まれることから保護される）。ストレージモジュール１２０は、ホスト１００に対して認証失敗を示すエラーを発することがある。
【００３７】
第２の実施形態では、レジスタは、第１の実施形態に関して説明されたのと同様に、保護されるメモリの領域を定義する。ただし、メモリの保護領域への書込みを認証する代わりに、データの認証は、メモリの保護領域のための１個または複数の保護ビットを含むレジスタを（一時的にまたは恒久的に）クリアし、それによってメモリの保護領域へのデータの書込みを可能にする。データは、データのどれも書き込まれていないこと、またはデータのすべてが書き込まれていることのどちらかを保証するアトミック書込みとして書き込まれてよい。いったんデータがプログラミングされるまたは領域に書き込まれると、書込み保護は自動的にまたは追加コマンドを通してのどちらかで復元されてよい。
【００３８】
本開示の実施形態は、例えばマスストレージ２０２等、データを記憶するための手段を含んだストレージデバイスを含む。ストレージデバイスは、例えばレジスタ２１２Ａから２１２Ｈの内の１つまたは複数等、認証書込み保護されているとしてストレージの論理部分を定義するための手段を含む。ストレージデバイスは、例えば、ライン２１６ｂ及びデータ端末２１６ａのデータ等、第１のデータ及び第２のデータを受信するための手段をさらに含む。ストレージデバイスは、第１のデータを認証するための、及び例えばストレージコントローラ２００等、第１のデータの認証後にストレージの論理部分への第２のデータの書込みを可能にするための手段をさらに含む。
【００３９】
特徴は特定の実施形態に関連して説明されているように見えるが、当業者は、説明される実施形態の多様な特徴が結合されてよいことを認識するだろう。さらに、実施形態との関連で説明された態様は独立してよい。
【図１】
2017505939.tif 000003
【図２】
2017505939.tif 000004
【図３】
2017505939.tif 000005
【国際調査報告】
2017505939.tif 000006
2017505939.tif 000007