(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-06-27
(54)【発明の名称】マルチモード保護メモリ
(51)【国際特許分類】
G06F 21/78 20130101AFI20220620BHJP
【FI】
G06F21/78
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021548579
(86)(22)【出願日】2019-04-19
(85)【翻訳文提出日】2021-09-17
(86)【国際出願番号】 CN2019083388
(87)【国際公開番号】W WO2020211070
(87)【国際公開日】2020-10-22
(81)【指定国・地域】
(71)【出願人】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ピアソン、エイドリアン
(72)【発明者】
【氏名】チュウ、ビン
(72)【発明者】
【氏名】アグラノヴスキー、エレナ
(72)【発明者】
【氏名】ウィンクラー、トーマス
(72)【発明者】
【氏名】フアン、ヤン
(57)【要約】
本明細書に係るマルチモード保護メモリは、動作の永続的モードおよび一時的モードを含む。永続的モードの一実施形態において、認証鍵は一度プログラム可能であり、ライトカウンタはディクリメントまたはリセット不能である。一時的モードの一実施形態において、認証鍵は何回もプログラム可能であり、ライトカウンタは何回もリセット可能である。特定の用途に応じて、他の特徴および効果も実現され得る。
【特許請求の範囲】
【請求項1】
保護メモリと、
前記保護メモリに対するアクセスを制御するように構成された保護メモリコントローラであって、一時的モードと永続的モードとを含む選択されたモードにおいて前記保護メモリに対するアクセスを制御するように構成されたモードロジックを有する、保護メモリコントローラと、
を備え、前記保護メモリコントローラは、前記一時的モードにおける再プログラム可能認証鍵に応じて、および前記永続的モードにおけるワンタイムプログラム可能認証鍵に応じて、前記保護メモリに向けたメモリ動作を認証するようにさらに構成される、装置。
【請求項2】
前記保護メモリコントローラは、前記保護メモリコントローラが前記一時的モードをサポートすることを示すように設定可能に構成されるレジスタを有する、請求項1に記載の装置。
【請求項3】
前記モードロジックはヒューズを有し、前記永続的モードへの移行時に、前記一時的モードへの移行を不能にするように前記ヒューズを設定するように構成される、請求項1または2に記載の装置。
【請求項4】
前記保護メモリコントローラは、前記一時的モードにおいて前記再プログラム可能認証鍵を格納するように構成された再プログラム可能レジスタと、前記永続的モードにおいて前記ワンタイムプログラム可能認証鍵を格納するように構成されたライトワンスレジスタとを有する、請求項1から3のいずれか一項に記載の装置。
【請求項5】
前記保護メモリコントローラは、前記一時的モードにおける前記保護メモリに対するライト動作をカウントするように構成されたリセット可能ライトカウンタと、前記永続的モードにおける前記保護メモリに対するライト動作をカウントするように構成されたリセット不能ライトカウンタとを有する、請求項1から4のいずれか一項に記載の装置。
【請求項6】
前記保護メモリコントローラは、前記一時的モードにおけるリクエストメッセージの一時的モードセットと、前記永続的モードにおけるリクエストメッセージの永続的モードセットとに応答するように構成され、前記保護メモリコントローラが前記永続的モードにある場合に、前記リクエストメッセージの一時的モードセットのリクエストメッセージの受信に応じて、エラー応答メッセージが返される、請求項1から5のいずれか一項に記載の装置。
【請求項7】
保護メモリに向けたメモリ動作が再プログラム可能認証鍵に応じて認証される一時的モードと、前記保護メモリに向けたメモリ動作がワンタイムプログラム可能認証鍵に応じて認証される永続的モードとを含む選択されたモードで前記保護メモリへのアクセスを制御する段階を備える方法。
【請求項8】
保護メモリコントローラが前記一時的モードをサポートすることを示すようにレジスタを設定する段階をさらに備える、請求項7に記載の方法。
【請求項9】
前記永続的モードへの移行時に、前記一時的モードへの移行を不能にするようにヒューズを設定する段階をさらに備える、請求項7または8に記載の方法。
【請求項10】
前記一時的モードにおいて前記再プログラム可能認証鍵を再プログラム可能レジスタに格納する段階と、前記永続的モードにおいて前記ワンタイムプログラム可能認証鍵をライトワンスレジスタに格納する段階とをさらに備える、請求項7から9のいずれか一項に記載の方法。
【請求項11】
前記一時的モードにおける前記保護メモリに対するライト動作をカウントするように構成されたリセット可能ライトカウンタをリセットする段階と、前記永続的モードにおける前記保護メモリに対するライト動作を、リセット不能ライトカウンタでカウントする段階と、をさらに備える、請求項7から10のいずれか一項に記載の方法。
【請求項12】
保護メモリコントローラが、前記一時的モードにおけるリクエストメッセージの一時的モードセットに応答する段階と、前記永続的モードにおけるリクエストメッセージの永続的モードセットとに応答する段階と、前記保護メモリコントローラが前記永続的モードにある場合に、前記リクエストメッセージの一時的モードセットのリクエストメッセージの受信に応じて、エラー応答メッセージを返す段階と、をさらに備える、請求項7から11のいずれか一項に記載の方法。
【請求項13】
データを格納するように構成された保護メモリと、
前記保護メモリに対するアクセスを制御するように構成された保護メモリコントローラであって、前記保護メモリコントローラは、一時的モードと永続的モードとを含む選択されたモードにおいて前記保護メモリに対するアクセスを制御するように構成されたモードロジックを含み、前記保護メモリコントローラは、前記一時的モードにおける再プログラム可能認証鍵に応じて、および前記永続的モードにおけるワンタイムプログラム可能認証鍵に応じて、前記保護メモリに向けたメモリ動作を認証するようにさらに構成される、保護メモリコントローラと、
前記保護メモリに向けたメモリ動作に応じて情報を表示するよう構成されたディスプレイと
を備えるシステム。
【請求項14】
前記保護メモリコントローラは、前記保護メモリコントローラが前記一時的モードをサポートすることを示すように設定可能に構成されるレジスタを有する、請求項13に記載のシステム。
【請求項15】
前記モードロジックはヒューズを有し、前記永続的モードへの移行時に、前記一時的モードへの移行を不能にするように前記ヒューズを設定するように構成される、請求項13または14に記載のシステム。
【請求項16】
前記保護メモリコントローラは、前記一時的モードにおいて前記再プログラム可能認証鍵を格納するように構成された再プログラム可能レジスタと、前記永続的モードにおいて前記ワンタイムプログラム可能認証鍵を格納するように構成されたライトワンスレジスタとを有する、請求項13から15のいずれか一項に記載のシステム。
【請求項17】
前記保護メモリコントローラは、前記一時的モードにおける前記保護メモリに対するライト動作をカウントするように構成されたリセット可能ライトカウンタと、前記永続的モードにおける前記保護メモリに対するライト動作をカウントするように構成されたリセット不能ライトカウンタとを有する、請求項13から16のいずれか一項に記載のシステム。
【請求項18】
前記保護メモリコントローラは、前記一時的モードにおけるリクエストメッセージの一時的モードセットと、前記永続的モードにおけるリクエストメッセージの永続的モードセットとに応答するように構成され、前記保護メモリコントローラが前記永続的モードにある場合に、前記リクエストメッセージの一時的モードセットのリクエストメッセージの受信に応じて、エラー応答メッセージが返される、請求項13から17のいずれか一項に記載のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
NVMe規格、https://nvmexpress.org/に記載の不揮発性メモリエクスプレス(NVMe)ソリッドステートドライブ(SSD)などのメモリまたはストレージデバイスは、保護ブロックおよび認証される保護部分へのアクセスを可能にするその他メモリ部分を有し得る。例えば、公開されたNVMe規格のリプレイ保護メモリブロック(RPMB)部分に記載の、既知のRPMBを利用するストレージデバイスは、メッセージ認証コード(MAC)を使用するストレージデバイスの保護RPMBデータ領域へのリードおよびライトアクセスを認証する。公開されたRPMB仕様には、RPMB規格に準拠した保護メモリデバイス構造および動作が記載されている。
【0002】
1つの既知の設計において、ホストは、RPMB有効ストレージデバイス(本明細書では「RPMBストレージデバイス」)のRPMBコントローラ内に認証鍵を格納する。したがって、認証鍵はホストと、RPMBストレージデバイスとが共有する機密である。ホストは、データライトメッセージを使用して、メモリの保護データ領域に向けたデータライト動作をリクエストする。ホストは、メッセージ認証コード(MAC)エンジンを有する。これは、共有認証鍵と、RPMBストレージデバイスから既に受信していたライトカウンタ値と、送信時にMAC認証コードを含むデータライトリクエストメッセージの部分に応じて、MAC認証コードを計算する。したがって、データライトリクエストメッセージによりリクエストされたライト動作は、「認証データライト」と称する。
【図面の簡単な説明】
【0003】
次に、全体を通じて同じ参照符号が対応する部分を示す以下の図面を参照する。
【
図1】特定の実施形態に係るマルチモード保護メモリを利用するコンピューティング環境のブロック図を示す。
【
図2】本明細書に係るマルチモード保護メモリを利用する保護メモリ有効ストレージデバイスの例を示す。
【
図3】本明細書に係るマルチモード保護メモリを利用するホストの例を示す。
【
図4】本明細書に係るマルチモード保護メモリを利用する、
図2の保護メモリ有効ストレージデバイスの動作の例を示す。
【
図5】本明細書に係るマルチモード保護メモリを利用する、
図2の保護メモリ有効ストレージデバイスの動作の別の例を示す。
【
図6】本明細書に係るマルチモード保護メモリを利用する、
図2の保護メモリ有効ストレージデバイスの動作のさらに別の例を示す。
【発明を実施するための形態】
【0004】
以下の説明において、本明細書の一部を成し、いくつかの実施形態を示す添付図面を参照する。なお、その他実施形態が利用され得、構造的および動作的変更も可能であることが理解されよう。
【0005】
既知の設計において、データライトリクエストメッセージを受信するRPMBストレージデバイスのRPMBコントローラは、自身のMAC認証コードを、ホストと同様にして共有認証鍵を使用して計算し、それをデータライトリクエストと共にホストにより転送されたMAC認証コードと比較することで、受信したメッセージを認証する。RPMBコントローラにより計算されたMAC認証コードが、リクエストメッセージと共にホストにより転送されたMAC認証コードに一致する場合、受信したデータライトリクエストメッセージはRPMBストレージデバイスの認証プロセスで合格とされ、メッセージは認証済み、即ち認証送り主から送られたとみなされる。データライトリクエストメッセージによりリクエストされたデータライト動作には、RPMB規格に記載されたような追加のセキュリティテストが行われ得る。データライトリクエストメッセージが、認証またはその他のセキュリティテストに不合格である場合、保護メモリへのリクエストされたライト動作はブロックされる。
【0006】
ホストにより生成され、保護メモリに向けたリードリクエストメッセージに応じてRPMBコントローラにより生成されたリード応答メッセージは、データライトリクエストメッセージと同様にして、RPMBコントローラおよびホストに認証され得る。ホストが受信したデータリード応答メッセージが、認証またはその他のセキュリティテストに不合格である場合、リード応答メッセージおよびそのデータは非認証ソースからのもので、したがって信頼できないとみなされ得る。
【0007】
既知のRPMB設計における、悪意のある攻撃に対するセキュリティ機能として、認証鍵はRPMBコントローラによりライトワンスレジスタ内に格納される。この結果、RPMBコントローラにより認証鍵が格納されると、それは永続的に固定され、したがって既知のRPMBコントローラ設計において変更不能、即ち、上書き不能、消去不能、またはさらには読み出し不能になる。
【0008】
既知のRPMB設計における、悪意のある攻撃に対する別のセキュリティ機能として、RPMBコントローラにより維持されるライトカウンタはディクリメントまたはリセット不能である。この結果、ライトデータリクエストメッセージを記録することと、記録されたメッセージをリプレイすることとを含み得る悪意のある攻撃の実行はブロックされる。なぜなら、リプレイされた記録されたメッセージが、RPMBコントローラが想定するライトカウンタ値、即ち現在のライトカウンタ値を含まないためである。
【0009】
したがって、既知のRPMBストレージデバイスは、セキュリティ用途に対して、耐改竄安全ストレージを提供する。しかし、RPMBストレージデバイスのセキュリティ機能は、既知のRPMBストレージデバイスを組み込む製品開発において、第三者デベロッパに非効率をもたらし得る。例えば、プログラミングエラーまたは他のソフトウェアエラーにより、製品開発目的で使用されているRPMBデバイスにプログラムされた認証鍵が失われた場合、RPMBデータ領域へのアクセスが永続的に失われ、製品開発続行のために、RPMBデバイスは通常、破棄され交換される。さらに、一部の第三者デベロッパにとって、開発段階で使用されるRPMB鍵は多くの場合、セキュリティ上の理由から製造段階において使用されるRPMB鍵と異なる。
【0010】
この結果、開発段階においてRPMBストレージデバイスが第三者デベロッパにより使用された場合、RPMB認証鍵が既に非製造用認証鍵でプログラムされており、変更不可であるため、その特定のデバイスはその後製造段階で使用できなくなる。別の例として、負荷またはリグレッションテストなどの製品テスト中に、ライトカウンタが最大ライトカウント値に達した場合、保護データ領域に対するさらなる書き込みは許可されない。この場合も、製品開発続行のために、RPMBデバイスは通常、破棄され交換される。
【0011】
開発製品の完成したRPMBストレージデバイスの組み込みを促進するため、第三者デベロッパの間で、完成したRPMBデバイスをソフトウェアエミュレーションにおいてエミュレーションすることが知られている。ここで、RPMBエミュレーションのデータ領域は、市場に流通している既知のRPMBストレージデバイスのデータ領域では一般的に施されている保護を持たないメモリまたはストレージの通常部分となる。しかし、RPMBデバイスに対するこれらソフトウェアエミュレーションは、開発が複雑になり、動作も複雑になりがちである。例えば、開発中の製品のシステムソフトウェア、ファームウェア、およびハードウェアはそれぞれ、1または複数のRPMBターゲットにそれぞれがアクセスする必要のある複数のコンポーネントを有し得る。したがって、システムソフトウェアおよびハードウェアの各コンポーネントに対するRPMBエミュレーションソフトウェアの開発およびデバッグは困難かつ高価になり得る。さらに、メモリの通常部分に格納された特殊鍵または証明書などのデータは、保護データ領域にコピーされ、その後、開発完了後にRPMBデバイスに認証鍵がプログラムされると通常部分から削除される必要があり得る。
【0012】
RPMBストレージデバイスの相手先ブランド名製造(OEM)が、デフォルト認証鍵を利用して、RPMBストレージデバイスのエンジニアリングサンプルにおけるRPMBファームウェア実装の開発およびテストを促進することが知られている。しかし、第三者製品デベロッパなどの顧客に発送される前に、RPMBデバイスの完成した製品版においてデフォルト認証鍵は無効になる。したがって、第三者製品デベロッパは、完成したRPMBストレージデバイスを利用した、自身の第三者製品の開発において、製造業者の無効となったデフォルト認証鍵を使用できず、この結果、RPMBストレージデバイスのソフトウェアエミュレーションを利用することが多い。
【0013】
本明細書に係るマルチモード保護メモリは、コンピュータ技術において著しい向上を提供する。例えば、第三者デベロッパが、RPMB有効デバイスを組み込む製品の開発に当たって、RPMB有効デバイスのソフトウェアエミュレーションを使用する必要性を低減する、またはなくすることができる。一態様において、本明細書に係るマルチモード保護メモリは、動作の一時的モードと、動作の永続的モードとの両方を有する。永続的モードにおいて、RPMB有効デバイスは、既知のRPMBデバイスと同様に動作する。例えば、永続的モードでは、既知のRPMBデバイスと同様に、認証鍵は一度のみプログラムされ得る。
【0014】
比較として、本明細書に係るマルチモード保護メモリの一時的モードの一態様において、認証鍵は、一実施形態において、第三者製品開発を促進するため、デバイスが一時的モードにとどまっている間に、無制限回数再プログラムされ得る。したがって、第三者製品開発中に認証鍵が不慮に失われた場合、同じ、または新たな認証鍵が容易に、一時的モードにとどまっているRPMB有効デバイスに再プログラムされ得る。この結果、認証鍵の喪失によりRPMBデバイスを破棄しなければならなくなることが避けられる。
【0015】
別の例として、永続的モードにおいて、保護メモリユーザデータ領域に対するライト動作用のライトカウンタは、既知のRPMBデバイスの場合と同様に、最大カウント値に達すると、ディクリメントされない、またはリセットされなくてよい。したがって、永続的モードにおいてライトカウンタが最大値に達すると、保護メモリに対する追加のライト動作はもはや許可されない。
【0016】
比較として、本明細書に係るマルチモード保護メモリの一時的モードの一態様において、ライトカウンタは、一実施形態において、デバイスが一時的モードで動作させられている間に、無制限回数リセットされ得る。したがって、第三者製品の開発時に、RPMB有効デバイスのライトカウンタが、負荷テスト、または多数のライト動作を伴うその他のテストにより最大カウント値に達した場合、デバイスが一時的モードにある間にライトカウンタは、一時的モードにおいて保護メモリに対する追加のライト動作を可能にするため、容易にリセットされ得る。この結果、本明細書に係るマルチモード保護メモリデバイスを、一時的モードでライトカウンタが最大値に達しても破棄する必要がなくなり得る。
【0017】
本明細書に係るマルチモード保護メモリの別の態様において、既知のRPMBデバイスとの後方互換性を促進するように、RPMB規格に記載の既知のRPMBデバイスのものと同一または略同一の、認証鍵動作、ライトカウンタリードリクエスト、認証データライト、および認証データリード動作などの動作の組が、永続的モードで提供され得る。永続的モード動作組は、永続的モード動作用に適宜修正され得る。例えば、本明細書に係るマルチモード保護メモリの一実施形態において、永続的動作組の認証鍵プログラミング動作を使用した認証鍵のプログラミングにより、マルチモードデバイスは、永続的に動作の永続的モードに移行し、さらに動作の一時的モードへの再移行が不能になる。
【0018】
本明細書に係るマルチモード保護メモリの別の態様において、RPMBデバイスと共に使用する第三者デバイスの開発を促進するように、本明細書の永続的モードのもの、またはRPMB規格に記載の既知のRPMBデバイスのものと略同様の、認証鍵動作、ライトカウンタリードリクエスト、認証データライト、および認証データリード動作などの別の動作組が、一時的モードで提供され得る。一時的モード動作組は、一時的モード動作用に適宜修正され得る。例えば、本明細書に係るマルチモード保護メモリの一実施形態において、例えば異なるコマンドコード組を利用することで、一時的モード動作組は、永続的モード動作組のそれらと区別され得る。
【0019】
さらに、一時的動作組の認証鍵プログラミング動作を使用した認証鍵のプログラミングは、上述のように一時的モードで繰り返し実行され得る。さらに、一時的モードのライトカウンタリセットは、上述のように一時的モードで繰り返し実行され得る。特定の用途に応じて、他の特徴および効果も実現され得る。
【0020】
本明細書に係るマルチモード保護メモリを利用したコンポーネントは、スタンドアロンコンポーネントで使用可能であるか、またはマイクロプロセッサおよび/またはデジタル信号プロセッサ(DSP)に内蔵されるかのいずれかで使用可能である。さらに、本明細書に記載のシステムおよびプロセスは、主に図示の例においてマイクロプロセッサに基づくシステムを参照に説明されるが、本明細書の開示を鑑み、本開示の特定の態様、アーキテクチャ、および原理は、他の種類のデバイスメモリおよびロジックデバイスにも等しく適用可能であることが理解されよう。
【0021】
記載される技術の実装は、ハードウェア、方法もしくはプロセス、または、アプリケーション、オペレーティングシステム、BIOS、もしくはコンピュータアクセス可能媒体上のコンポーネントドライバなどのコンピュータソフトウェアを含み得る。したがって、実施形態は、対応するコンピュータシステム、装置、および方法の動作をそれぞれが実行するように構成された1または複数のコンピュータストレージデバイス上に記録されたコンピュータプログラムを含む。
【0022】
本明細書に記載の動作は、ユーザ選択など、手動で実行されることが示された場合以外には、システムオペレータの介入を略または一切介さないで、自動的にまたは略自動的のいずれかで、動作を実行するように構成されたロジックにより実行される。したがって、本明細書において使用される用語「自動」は、全自動、即ちグラフィカルユーザ選択インタフェースへのユーザ入力などの、人の介入を伴わない、1または複数のハードウェアまたはソフトウェア制御マシンにより実行される動作の両方を含む。本明細書において使用される用語「自動」はさらに、略自動を含む。即ち、動作の多く(例えば50%超など)は、グラフィカルユーザ選択インタフェースへのユーザ入力などの、人の介入を伴わない、1または複数のハードウェアまたはソフトウェア制御マシンにより実行される。そして動作の残り(例えば50%未満)は手動で実行される。即ち、動作実行を指示するための、グラフィカルユーザ選択インタフェースへのユーザ入力などの、人の介入を伴う、1または複数のハードウェアまたはソフトウェア制御マシンにより、手動動作が実行される。
【0023】
本明細書に記載の多くの機能的要素は、その実装独立性を特に強調するように、「ロジック」と称されている。例えば、ロジック要素は、カスタム超大規模集積回路(VLSI)回路またはゲートアレイを含む備えるハードウェア回路、ロジックチップなどの市販の半導体、トランジスタ、またはその他個別のコンポーネントとして実装され得る。ロジック要素はさらに、ファームウェア、あるいはフィールドプログラム可能ゲートアレイ、プログラム可能アレイロジック、またはプログラム可能ロジックデバイスなどのプログラム可能ハードウェアデバイスで実装され得る。
【0024】
ロジック要素はさらに、様々な種類のプロセッサによる実行用に、ソフトウェアで実装され得る。例えば実行可能なコードを含むロジック要素は、例えば、オブジェクト、手順、または機能として整理され得るコンピュータ命令の1または複数の物理的または論理的ブロックを含み得る。ただし、識別されたロジック要素の実行可能なものは、物理的に同一位置にある必要はなく、論理的に結合されると、ロジック要素を含み、さらにロジック要素の記載の目的を達成する、異なる位置に格納された異なる種類の命令を含み得る。
【0025】
実際、ロジック要素について実行可能なコードは単一の命令、または多数の命令であり得、さらにいくつかの異なるコードセグメント間、異なるプログラム間、異なるプロセッサ間、およびいくつかの不揮発性メモリデバイスにわたって分散され得る。同様に、動作データは本明細書においてロジック要素内で識別および図示され得るが、任意の適切な形式で実施され、さらに任意の適切な種類のデータ構造内で整理され得る。動作データは単一のデータセットとして収集され得、または異なるストレージデバイス間を含む、異なる場所間に分散され得る。
【0026】
図を参照すると、
図1は、本開示の実施形態に応じて実装されたシステムの選択された態様を示す高次ブロック図である。システム10は、メモリデバイスなどの保護メモリ有効ストレージデバイスを含み得る、任意の数の電子および/またはコンピューティングデバイスを示し得る。当該電子および/またはコンピューティングデバイスは、メインフレーム、サーバ、パーソナルコンピューター、ワークステーション、テレフォニーデバイス、ネットワークアプライアンス、仮想化デバイス、ストレージコントローラー、ポータブルまたはモバイルデバイス(例えば、ラップトップ、ネットブック、タブレットコンピューター、携帯情報端末(PDA)、ポータブルメディアプレーヤー、ポータブルゲームデバイス、デジタルカメラ、携帯電話、スマートフォン、フィーチャーフォンなど)またはコンポーネント(例えば、システムオンチップ、プロセッサ、ブリッジ、メモリコントローラ、I/Oコントローラ、ルートコンプレックス、メモリなど)などのコンピューティングデバイスを含み得る。代替的な実施形態では、システム10は、より多数の構成要素、より少数の構成要素、および/または異なる構成要素を含み得る。さらに、システム10は別個の構成要素を備えるようにも示し得るが、そのような構成要素は1つのプラットフォーム、例えば、システムオンチップ(SoC)などに統合され得ることが理解されよう。図示の例において、システム10は、中央演算ユニットまたはマイクロプロセッサ20と、メモリコントローラ30と、メモリ40と、ストレージドライブ44と、例えば、ビデオコントローラ、追加ストレージ、ネットワークインタフェースなどのエンドポイントデバイス、ならびにシステムクロック、入力デバイス、出力デバイス、バッテリなどのその他デバイスなどを含み得る周辺コンポーネント50とを含む。システム10は、シリアルバス、パラレルバス、およびリンクおよびスイッチを含み得るファブリックを含み得る1または複数のバス60をさらに含む。
【0027】
マイクロプロセッサ20は、命令およびデータを格納するメモリ階層の一部であり得るキャッシュ25を含み、システムメモリは、揮発性メモリと、不揮発性メモリを含み得る図示のメモリ40との両方を含み得る。システムメモリも、メモリ階層の一部であり得る。マイクロプロセッサ20のロジック27は、例えば1または複数のコアを含み得る。いくつかの実施形態において、ロジック27はさらにシステムクロックを含み得る。メモリコントローラ(またはチップセット)30により、マイクロプロセッサ20と、メモリ40との間の通信が促進され得、これによりストレージドライブ44および周辺コンポーネント50との通信も促進され得る。システムは、直接メモリデータ転送用のオフロードデータ転送エンジンを含み得る。
【0028】
ストレージドライブ44は、保護メモリ有効デバイスであり得、不揮発性ストレージを含み、例えば、ソリッドステートドライブ、磁気ディスクドライブ、光ディスクドライブ、ストレージエリアネットワーク(SAN)、ネットワークアクセスサーバ(NAS)、テープドライブ、フラッシュメモリ、永続メモリドメイン、および揮発性バッファメモリと不揮発性ストレージを利用するその他のストレージデバイスメモリとして実装され得る。ストレージは、内部ストレージデバイスもしくは取付け型またはネットワークアクセス可能なストレージを備え得る。マイクロプロセッサ20は、メモリ40およびストレージ44中にデータを書き込み、そこからデータを読み出すように構成される。ストレージ内のプログラムは、メモリ40内にロードされ、マイクロプロセッサ20により実行される。ネットワークコントローラまたはアダプタは、例えば、イーサネット(登録商標)、Fiber Channel Arbitrated Loopなどの、ネットワークとの通信を可能にする。さらに、アーキテクチャは、特定の実施形態において、ディスプレイモニタ上に情報をレンダリングするように構成されたビデオコントローラを含み得る。ビデオコントローラは、ビデオカード上に実施され得、またはマザーボードまたはその他基板上に搭載された集積回路コンポーネントに統合され得る。一実施形態において、ディスプレイは、保護メモリに向けたメモリ動作に応じて、情報を表示するように構成される。入力デバイスはマイクロプロセッサ20にユーザ入力を提供するのに使用され、キーボード、マウス、ペンスタイラス、マイク、タッチセンサー式ディスプレイ画面、入力ピン、ソケット、または当該技術で既知のその他任意の起動または入力機構を含み得る。出力デバイスは、マイクロプロセッサ20、またはディスプレイモニタ、プリンタ、ストレージ、出力ピン、ソケットなどのようなその他コンポーネントから送信された情報をレンダリング可能である。ネットワークアダプタは、周辺コンポーネントインターコネクト(PCI)カード、PCIエクスプレス、またなその他何らかの入力/出力(I/O)カードなどのネットワークカード上、またはマザーボードまたはその他基板上に搭載された集積回路コンポーネント上に実施され得る。一実施形態において、ネットワークアダプタは、保護メモリに向けたメモリ動作に応じて、情報を送信するように構成される。
【0029】
特定の用途に応じて、デバイス10のコンポーネントのうちの1または複数は、省略され得る。例えば、ネットワークルータには、例えばビデオコントローラがなくてよい。キャッシュ25、メモリ40、ストレージドライブ44、システム10、メモリコントローラ30、および周辺コンポーネント50を含む
図1のデバイスのうちの任意の1または複数は、本明細書に係るマルチモード保護メモリを実装するコンポーネントを含み得る。
【0030】
本明細書に係る不揮発性ストレージメモリコンポーネントの不揮発性ストレージメモリの一例は、3次元(3D)クロスポイントメモリおよびその他種類のバイトアドレス可能、ライトインプレイス不揮発性メモリである。いくつかの実施形態において、3Dクロスポイントメモリは、トランジスタなしスタック可能クロスポイントアーキテクチャを含み得る。ここで、メモリセルは、ワードラインと、ビットラインとの交点に配置されて個別にアドレス可能で、ビットストレージは体抵抗の変化に基づく。
【0031】
一実施形態において、メモリデバイスは、NANDまたはNOR技術に基づくもののような、ブロックアドレス可能メモリデバイスである。メモリデバイスはさらに、3次元クロスポイントメモリデバイス、またはその他バイトアドレス可能ライトインプレイス不揮発性メモリデバイスなどの、将来世代の不揮発性デバイスを含み得る。一実施形態において、メモリデバイスは、カルコゲナイドガラス、マルチスレッショルドレベルNANDフラッシュメモリ、NORフラッシュメモリ、シングルまたはマルチレベル相変化メモリ(PCM)、抵抗メモリ、ナノワイヤメモリ、強誘電体トランジスタランダムアクセスメモリ(FeTRAM)、反強誘電性メモリ、メモリスタ技術を組み込んだ磁気抵抗ランダムアクセスメモリ(MRAM)、金属酸化物ベース、酸素空孔ベース、導電性ブリッジランダムアクセスメモリ(CB-RAM)を含む抵抗メモリ、またはスピン伝達トルク(STT)-MRAM、スピントロニック磁気接合メモリベースのデバイス、磁気トンネリングジャンクション(MTJ)ベースのデバイス、DW(ドメインウォール)およびSOT(スピン軌道転送)ベースのデバイス、サイリスタベースのメモリデバイス、または上記のいずれかの組み合わせ、または他のメモリであり得、またはこれを使用するメモリデバイスを含み得る。メモリデバイスは、ダイそのものを、および/またはパッケージングされたメモリ製品を、指してもよい。
【0032】
揮発性メモリは、媒体により格納されたデータの状態を維持するための電力を必要とする記憶媒体であってよい。揮発性メモリの非限定的な例は、ダイナミックランダムアクセスメモリ(DRAM)またはスタティックランダムアクセスメモリ(SRAM)などの様々な種類のランダムアクセスメモリ(RAM)を含み得る。メモリモジュールにおいて用いられ得る特定の一タイプのDRAMが、同期ダイナミックランダムアクセスメモリ(SDRAM)である。特定の実施形態において、メモリコンポーネントのDRAMは、DDR SDRAM用にJESD79F、DDR2 SDRAM用にJESD79-2F、DDR3 SDRAM用にJESD79-3F、DDR4 SDRAM用にJESD79-4A、Low Power DDR(LPDDR)用にJESD209、LPDDR2用にJESD209-2、LPDDR3用にJESD209-3、および、LPDDR4用にJESD209-4、など、JEDECにより公表されている規格に準拠してよい(これらの規格はwww.jedec.orgにて利用可能である)。当該規格(および同様の規格)は、DDRベースの規格と称され得、当該規格を実装するストレージデバイスの通信インタフェースは、DDRベースのインタフェースと称され得る。
【0033】
図2は、本明細書に係る保護メモリ有効ストレージデバイス102の一例を示す。この例において、保護メモリ有効ストレージデバイス102は、システム10のストレージデバイス44(
図1)のソリッドステートドライブなどの不揮発性ストレージメモリコンポーネントである。本明細書に係るマルチモード保護メモリを利用する保護メモリ有効ストレージデバイスは、例えば中央演算ユニット(CPU)、システムオンチップ(SoC)、グラフィカルプロセシングユニット(GPU)、およびネットワークアダプタなどのその他種類のデバイスで利用され得ることが理解されよう。
【0034】
保護メモリ有効ストレージデバイス102は、保護メモリ有効ストレージデバイス102を、例えばPCIeシリアルバスであり得るバス60(
図1)に接続するドライブハウジング102aを有する。ドライブハウジング102aは、NANDビットセルのアレイなどの、不揮発性ビットセルのアレイ105を有し、永続的にデータを格納するように構成されたメモリまたはストレージデバイス102と、ビットセルアレイ105に向けたメモリリードおよびメモリライト動作を制御するように構成されたメモリコントローラ107とを収容する。一実施形態において、メモリコントローラ107およびビットセルアレイ105は、単一のパッケージ内にパッケージングされる。別の実施形態において、メモリコントローラ107およびビットセルアレイ105の一部または全部のコンポーネントは、異なるダイ上または異なるパッケージまたはデバイス内に配置され得ることが理解されよう。例えば、メモリ107の一部または全部のコンポーネントは、システムオンチップ(SoC)の一部であり得る。一方、ビットセルアレイ105の一部または全部のコンポーネントは、バスによりSoCに結合された保護メモリ有効ストレージデバイス内に配置され得る。
【0035】
一実施形態において、ビットセルアレイ105は、ユーザデータ領域区画112および保護メモリユーザデータ領域区画114を含む様々な区画に区画され得る。アレイ105の各領域または区画は、シングルレベルセル(SLC)、トリプルレベルセル(TLC)、クアッドレベルセル(QLC)、またはその他マルチレベルセル(MLC)ワードラインタイプのセルを含み得る。QLCメモリ実施形態において、ビットセルアレイ105は例えば、ブロックおよびプレーンに整理され得る。ビットセルアレイ105は、特定の用途に応じて、その他サイズおよび種類のユニットおよびサブユニットに整理され得ることが理解されよう。
【0036】
本明細書に係るマルチモード保護メモリの一態様によると、メモリコントローラ107はさらに、以下に保護メモリユーザデータ領域区画114へのアクセスを制御するように構成された保護メモリコントローラ134と主に称される、マルチモード保護メモリアクセスコントローラまたはロジックを含む。一実施形態において、当該アクセスは、例えば、RPMB規格に記載されたように対応するリプレイ保護メモリブロック(RPMB)動作に準拠し、本明細書のマルチモード保護メモリに応じて適宜修正された、認証データライトおよび認証データリード動作を含む。マルチモード保護メモリの図示の実施形態は、RPMB準拠構造および動作に関連して説明されるが、本明細書に係るマルチモード保護メモリは、特定の用途に応じて、別の種類の保護メモリを利用するコンピュータシステムで利用され得ることが理解されよう。デバイス102の保護メモリコントローラ134は、ハードウェア、ソフトウェア、およびファームウェアのうちの1または複数を単独で、または組み合わせて使用して構成され得る。
【0037】
本明細書に係るマルチモード保護メモリの一態様において、保護メモリコントローラ134は、保護メモリコントローラ134を操作し、それにより一時的モードおよび永続的モードを含む選択されたモードで、保護メモリユーザデータ領域区画114へのアクセスを制御するように構成されたモードロジック138を含む。保護メモリコントローラ134のメッセージ認証コード(MAC)エンジン142などの認証ロジックは、一時的モードにおける再プログラム可能認証鍵に応じて、そして永続的モードにおけるワンタイムプログラム可能認証鍵に応じて、保護メモリユーザデータ領域区画114に向けたものを含む、保護メモリ動作を認証するように構成される。図示の実施形態において、マルチモード保護メモリアクセスコントローラ134は、一時的モードに対する再プログラム可能認証鍵を格納するように構成された、レジスタフィールド160の再プログラム可能レジスタフィールド146を含む。この実施形態では、一時的モード認証鍵レジスタフィールド146がプログラムされるまで、一時的モードにおいて保護メモリユーザデータ領域区画114はアクセスできない。同様に、この実施形態では、永続的モード認証鍵フィールド150がプログラムされる、および一時的モードを脱するまで、永続的モードにおいて保護メモリユーザデータ領域区画114はアクセスできない。したがって、この実施形態では、認証鍵フィールド146、150のいずれもプログラムされている場合、保護メモリユーザデータ領域区画114はアクセスできない。
【0038】
一時的モードの再プログラム可能認証鍵を格納するための再プログラム可能レジスタフィールド146は、例えば、各パワーサイクル後に一時的モード鍵レジスタフィールド146が再プログラムされ得るように、揮発性ライトオンリーレジスタであり得る。あるいは、一時的モードの再プログラム可能認証鍵を格納するための再プログラム可能レジスタは、例えば、一実施形態において一時的モード鍵が各パワーサイクル後に残るが、無制限回数再プログラムされ得るように、不揮発性ライトオンリーレジスタであり得る。
【0039】
上述のように、一実施形態において、一時的モードの再プログラム可能認証鍵を格納するための再プログラム可能レジスタは、一時的モード認証鍵がプログラム後に外部ホストにより読み出し不能となるように、ライトオンリーレジスタであり得る。しかし、いくつかの実施形態において、一時的モード認証鍵をプログラム後に読み出す機能を有することが有効であり得ることが理解されよう。そのような実施形態において、保護メモリコントローラが応答するように構成された、一時的モードリクエストメッセージ組に、適切な一時的モード認証鍵リクエストメッセージが加えられ得る。そのような実施形態において、そのような一時的モード認証鍵リクエストメッセージは、一時的モード認証鍵を格納する適切なリード/ライトレジスタから一時的モード認証鍵を読み出すのに利用され得る。
【0040】
一時的モード認証鍵に対する比較として、一実施形態において、レジスタフィールド160のライトワンスレジスタフィールド150は、永続的モード用のワンタイムプログラム可能認証鍵を格納するように構成される。永続的モードのワンタイムプログラム可能認証鍵を格納するワンタイムプログラム可能レジスタフィールド150は、例えば、セキュリティ機能として、既知のRPMBデバイスと同様に、一実施形態において、永続的モード鍵が各パワーサイクル後に残るが、一度のみプログラムされ得るように、不揮発性ライトオンリーレジスタフィールドであることが好ましい。したがって、永続的モード認証鍵がプログラム後に読み出しまたは再プログラムできないように、永続的モード認証鍵を格納するのに、ライトワンス、ライトオンリーレジスタフィールドが使用され得る。しかし、より少ないセキュリティ機能が適切である実施形態では、いくつかの実施形態において、外部ホストが永続的モード認証鍵をプログラム後に読み出し可能とすることが有効であり得ることが理解されよう。
【0041】
一時的モードにおいて一時的モード認証鍵レジスタフィールド146を無制限回数再プログラムする能力を有することは、保護メモリ有効デバイスを組み込む第三者製品の開発を促進し、したがって複雑な保護メモリシミュレーションソフトウェアの使用が省略される。例えば、ソフトウェアエラーによりホストが使用する一時的モード認証鍵が失われた場合、例えば、一時的モード認証鍵は、一時的モードにおいて容易に新しい一時的モード認証鍵に再プログラムされ得る。このようにして、保護メモリ有効デバイスを組み込む第三者製品の開発が促進される。
【0042】
一方で、製品開発完了後に、永続的モードにおいて永続的モード認証鍵150のプログラミングをワンタイムプログラミングに限定すると、永続的モードにおけるRPMB保護メモリにより提供される、悪意のある攻撃に対するセキュリティ要素が維持される。この結果、永続的モードにおいて保護メモリコントローラにより認証コードが格納されると、既知のRPMBコントローラと同様に、それは永続的に固定され、したがって永続的モードで変更、即ち上書き、消去、または読み出し不能にすらなる。
【0043】
保護メモリコントローラ134はさらに、一時的モードにおいて保護メモリアクセスリクエストメッセージの一時的モードセット、永続的モードにおいて保護メモリアクセスリクエストメッセージの永続的モードセットに応答するように構成される。例えば、保護メモリアクセスリクエストメッセージの永続的モードセットは、一実施形態において、認証鍵プログラミングリクエスト、認証データライトリクエスト、および認証データリードリクエストなどのリクエストメッセージタイプを含む。特定の用途に応じて、保護メモリアクセスリクエストメッセージの永続的モードセットに、追加のリクエストメッセージタイプが含まれ得る。例えば、特定の用途に応じて、保護メモリアクセスリクエストメッセージの永続的モードセットに含まれることが適切とみなされ得る追加のリクエストメッセージタイプがRPMB規格により提供され得る。
【0044】
一実施形態において、保護メモリアクセスリクエストメッセージの一時的モードセットは、保護メモリアクセスリクエストメッセージの永続的モードセットのリクエストメッセージと、保護メモリアクセスリクエストメッセージの一時的モードセットのリクエストメッセージとを区別するコマンドコード値のみが異なり、保護メモリアクセスリクエストメッセージの永続的モードセットのものと略同一であり得る。例えば、永続的モードセットの認証鍵プログラミングリクエストは、一実施形態において、認証鍵プログラミングリクエストメッセージについてRPMB規格において規定されたのと同じコマンドコード0x0001を有し得る。一方、一時的モードセットの認証鍵プログラミングリクエストは、一実施形態において、例えば、認証鍵プログラミングリクエストメッセージについてRPMB規格において規定されたのとは異なる、0x0081などの異なるコマンドコード有し得る。このようにして、マルチモード保護メモリコントローラは、永続的モードセットのリクエストメッセージを、一時的モードセットのそれと容易に区別するように構成され得る。一実施形態において、保護メモリコントローラは、RPMB有効デバイスが一時的モードではなく永続的モードにある場合に、リクエストメッセージの一時的モードセットのリクエストメッセージの受信に応じて、応答メッセージ生成ロジック164により生成されたエラー応答メッセージを返すように構成され得る。
【0045】
一方、保護メモリコントローラは、少なくとも1つの例外として、RPMB有効デバイスが永続的モードではなく一時的モードにある場合に、リクエストメッセージの永続的モードセットのリクエストメッセージの受信に応じて、応答メッセージ生成ロジック164により生成されたエラー応答メッセージを返すように構成され得る。例えば、RPMB有効デバイスの保護メモリコントローラが、一時的モードにおいて永続的モード認証鍵プログラミングリクエストメッセージを受信した場合、保護メモリコントローラは、より詳細に後述するように、永続的モード認証鍵のプログラムに進み、永続的に一時的モードから脱するように構成され得る。
【0046】
図3は、
図1のマイクロプロセッサ20と同様であり得るプロセッサ20を含むホスト204の一実施形態を示す。ホストはさらに、様々なロジック機能を実行するためにプロセッサ20により実行されるベーシックインプット/アウトプットシステム(BIOS)210、オペレーティングシステム212、デバイスドライバ214、およびアプリケーション216が設けられたメモリ40(
図1、
図3)を含む。
【0047】
ホスト204の保護メモリインタフェースロジック220は、一時的モードで使用される保護メモリアクセスリクエストメッセージの一時的モードセットのリクエストメッセージを生成し、永続的モードで使用される保護メモリアクセスリクエストメッセージの永続的モードセットのリクエストメッセージを生成するように構成される、リクエストメッセージ生成ロジック224を有する。ホスト204の保護メモリインタフェースロジック220はハードウェア、ソフトウェア、およびファームウェアのうちの1または複数を単独で、または組み合わせて使用して構成され得る。
【0048】
一実施形態において、保護メモリ有効ストレージデバイス102の保護メモリコントローラ134(
図2)は、保護メモリコントローラ134が動作の一時的モードをサポートするかを示す、一時的モードサポートフラグを格納するレジスタフィールド160のリードオンリレジスタフィールド230を含む。したがって、ストレージデバイスに一時的モードセットのリクエストメッセージを発行する前に、ホスト204は、リクエストメッセージ生成ロジック224にサポートフラグレジスタリードリクエストを生成させ、ストレージデバイスに送信させる。それに応じて、ストレージデバイス102の保護メモリコントローラ134は、一時的モードサポートフラグ230を読み出し、応答メッセージ生成ロジック164に、コントローラ134により読み出された、読み出した一時的モードサポートフラグ230に応じて、保護メモリコントローラ134が一時的モードをサポートするかを示す応答を生成させる。例えば、一時的モードサポートフラグ230が設定された場合、保護メモリコントローラ134は、一時的モードをサポートしていることを、適切な応答メッセージで応答できる。一方、一時的モードサポートフラグ230が設定されていい場合、保護メモリコントローラ134は、一時的モードをサポートしていないことを、適切な応答メッセージで応答できる。
【0049】
一時的モードサポートフラグ230の適切な位置は、特定の用途に応じ得る。例えば、ユニバーサルフラッシュストレージ(UFS)仕様に準拠したRPMB有効ストレージデバイスにおいて、一時的モードサポートフラグ230に対するリードオンリレジスタフィールドが例えばRPMBユニット記述子などのUFS記述子に加えられ得る。別の例として、不揮発性メモリエクスプレス(NVMe)仕様に準拠したRPMB有効ストレージデバイスにおいて、一時的モードサポートフラグ230に対するリードオンリレジスタフィールドが、識別コマンド/データ構造(リプレイ保護メモリブロックサポート(RPMBS)のフィールド内)に加えられ得る。
【0050】
なお、いくつかの実施形態において、例えばRPMBなどの保護メモリをサポートする場合にのみ、一時的モードサポートフラグ230に対するレジスタフィールドが利用可能になり得る。これは例えば、RPMBそのものがNVMe仕様において任意の機能であるためである。したがって、ホストが一時的モードフラグリクエストメッセージをリプレイ保護メモリブロックサポート(RPMBS))を有さないストレージデバイスに発行すると、例えば、リプレイ保護メモリブロックサポート(RPMBS))の一時的モードサポートフラグフィールドを読み出すリクエストメッセージは、ストレージデバイスにエラーメッセージを生成および送信させ得る。したがって、ホストはエラーメッセージを、対象ストレージデバイスは、リプレイ保護メモリブロックサポート(RPMBS))を有さないため、一時的モードサポートフラグ230がないことを示すと解釈できる。
【0051】
異なる仕様規格(例えばeMMC、UFS、NVMe)は、レジスタの用語およびレイアウトが異なり得ることが理解されよう。したがって、一時的モードサポートフラグ230のレジスタフィールドの具体的な位置は、特定の用途に応じて変わり得る。
【0052】
保護メモリ有効ストレージデバイス102が、保護メモリコントローラ134の動作の一時的モードをサポートすると判定する(一時的モードサポートフラグ230が設定されていると判定される)と、ホスト204(
図3)は、本明細書に係るマルチモード保護メモリの一態様において、直接的に永続的モードにおいてさらに保護メモリ動作を選択的に開始するか、保護メモリ動作をまずは一時的モードで開始し、そして適切なときに永続的モードに切り替え得る。例えば、保護メモリ有効ストレージデバイス102が開発環境で使用されている場合、デバイス102の保護メモリを最初に一時的モードで動作することで当該開発が促進される。開発が完了すると、開発された製品の消費者への発送のため、保護メモリストレージデバイスは永続的に永続的モードに切り替えられ得る。
【0053】
あるいは、ホスト204(
図3)は、本明細書に係るマルチモード保護メモリの一態様において、一時的モードにおける保護メモリの動作を永続的に迂回し、直接的に永続的モードにおけるさらなる保護メモリ動作を開始し得る。例えば保護メモリ有効ストレージデバイス102を組み込む製品の開発が完了している場合、ストレージデバイスの保護メモリは、開発された製品の消費者への発送のため、ストレージデバイスの保護メモリは直接的かつ永続的に永続的モードに切り替えられ得る。
【0054】
図4、
図5および
図6は、保護メモリ有効ストレージデバイス102の保護メモリコントローラ134が実行するように構成された動作の例を示す。
図4の例において、保護メモリコントローラ134の動作のモードは、保護メモリアクセスリクエストメッセージの一時的モードセットの認証鍵プログラミングリクエストを使用するか、または保護メモリアクセスリクエストメッセージの永続的モードセットの認証鍵プログラミングリクエストを使用するかのいずれかにより、デバイス102における認証鍵のプログラミングをリクエストすることで、ホスト204(
図3)により選択および開始される。ホスト204は、保護メモリインタフェースロジック220のメッセージ認証コード(MAC)エンジン234などの適切なロジックを使用して、一時的モード認証鍵および永続的モード認証鍵の両方を生成またはその他手段により取得できる。認証鍵は、既知のRPMBシステムと同様であるが、本明細書に係るマルチモード保護メモリに合わせて適宜修正された方法で取得される。認証鍵が一時的モードに関連して使用される場合、認証鍵のコピーが、一時的モード認証鍵用にデータ構造242のデータ構造238に格納される。あるいは、認証鍵が永続的モードに関連して使用される場合、認証鍵のコピーが、永続的モード認証鍵用にデータ構造242のデータ構造246に格納される。
【0055】
ホストのリクエストメッセージ生成ロジック224は、認証鍵プログラミングリクエストメッセージを生成する。これは、既知のRPMBシステムと同様であるが、本明細書に係るマルチモード保護メモリに合わせて適宜修正された方法で、生成された認証鍵をストレージデバイス102へ転送する。この実施形態において、認証鍵プログラミングリクエストメッセージが、保護メモリインタフェースロジック220によりストレージデバイス102に送信される。一時的モードにおける保護メモリの動作が適切である場合、保護メモリアクセスリクエストメッセージの一時的モードセットから認証鍵プログラミングリクエストメッセージが選択される。一方、永続的モードにおける保護メモリの動作が適切である場合、保護メモリアクセスリクエストメッセージの永続的モードセットから適切な認証鍵プログラミングリクエストメッセージが選択される。
【0056】
ストレージデバイス102の保護メモリコントローラ134(
図2)は、既知のRPMBシステムと同様であるが、本明細書に係るマルチモード保護メモリに合わせて適宜修正された方法で、受信したリクエストメッセージが認証鍵プログラミングリクエストメッセージであるか判定するように構成される(ブロック254、
図4)。受信したリクエストメッセージが認証鍵プログラミングリクエストメッセージである場合、保護メモリコントローラ134(
図2)は、本明細書の一態様において、受信した認証鍵プログラミングリクエストメッセージが、保護メモリアクセスリクエストメッセージの永続的モードセットのものかを判定するようにさらに構成される(ブロック260、
図4)。
【0057】
受信した認証鍵プログラミングリクエストメッセージが保護メモリアクセスリクエストメッセージの永続的モードセットのものではないと判定される場合、即ち、受信した認証鍵プログラミングリクエストメッセージが保護メモリアクセスリクエストメッセージの一時的モードセットのものであると判定されると、保護メモリコントローラ134(
図2)はさらに、保護メモリコントローラ134が既に保護メモリ動作の永続的モードにあるか判定するように構成される(ブロック264、
図4)。図示の実施形態において、保護メモリコントローラ134のレジスタフィールド160は、一実施形態においてホストには見えない、一時的モード無効レジスタフィールド270(
図2)を含む。デフォルトでは、このレジスタフィールド270は、ストレージベンダによりストレージデバイスが製造された後、初期クリアされている(例えば、ビット値「0」)。一時的モード無効レジスタフィールドのクリア状態は、保護メモリコントローラの一時的モードが無効になっていないことを示す。したがって、一時的モード無効レジスタフィールドのクリア状態は、保護メモリが永続的モードになく、一時的モードが利用可能なままであることを示す。
【0058】
一実施形態において、一時的モード無効レジスタは、一時的モード無効レジスタ270が保護メモリコントローラ134により設定されるまたはヒューズされると、一時的モードが永続的に無効となるように、ヒューズデバイスで実装され得る。したがって、設定またはヒューズされた一時的モードレジスタは、保護メモリコントローラが永続的モードにあり、一時的モードがもう利用できないことを示す。
【0059】
このように、保護メモリコントローラ134は、一時的モード無効レジスタ270(
図2)を読み出すことで、保護メモリコントローラ134が既に保護メモリ動作の永続的モードにあるか判定可能である(ブロック264、
図4)。保護メモリコントローラ134が既に永続的モードにあるわけではないと判定される場合、保護メモリコントローラ134は、レジスタフィールド146(
図2)に、保護メモリコントローラ134が受信した認証鍵プログラミングリクエストメッセージにより転送された一時的モード認証鍵をプログラミングすることで、一時的モードに移行(または既に一時的モードにある場合、一時的モードに再移行)できる(ブロック274、
図4)。一時的モード認証鍵が一時的モード認証鍵用のレジスタフィールド146にプログラムされると、デバイス102は一時的モードに移行し、保護メモリユーザデータ領域区画114(
図2)は、ホストにより生成および送信されたアクセスリクエストメッセージの一時的モードセットの認証データライトおよび認証データリードなどの適切なアクセス動作によりアクセスされ得る。上述のように、一実施形態において、認証鍵レジスタフィールド146は、例えば保護メモリ有効デバイスを組み込む第三者製品の開発を促進するように、一時的モードにおいて無制限回数プログラムされ得る。
【0060】
悪意のある攻撃に対するセキュリティ機能として、RPMBコントローラなどの既知の保護メモリコントローラは、リードオンリライトカウンタを有する。リードオンリライトカウンタの出力値は、ホストによる、成功した認証データライトリクエストの総数を示す。例えば、ストレージドライブ製造後のこのレジスタの初期値は、00000000hであり得、保護メモリデータ領域へのライトアクセス成功の度に、RPMBコントローラが出力値を自動的に1インクリメントする。この結果、ライトデータリクエストメッセージを記録することと、記録されたメッセージをリプレイすることとを含み得る悪意のある攻撃の実行はブロックされる。リプレイされた記録されたメッセージが、RPMBコントローラが想定するライトカウンタ値、即ち現在のライトカウンタ値を含まないためである。
【0061】
既知のRPMBコントローラにおいて、ライトカウンタ値はリセット不能である。カウンタが最大カウント値(例えばFFFFFFFFh)に達すると、オーバーフロー防止のために、ライトカウンタはそれ以上インクリメントされない。本明細書に係るマルチモード保護メモリの一態様において、保護メモリコントローラ134は、一時的モードにおいてリセット可能なライトカウンタレジスタフィールド280(
図2)を有する。保護メモリ有効デバイスを組み込む第三者製品の開発または検証段階において、例えばライトカウンタは、負荷テストにおいてその最大値に達し、オーバーフローし得ることが理解されよう。一時的モードにおいてライトカウンタレジスタフィールド280をリセットする機能を有することで、第三者製品の開発または検証用に、保護メモリ有効デバイス102が一時的モードで再利用可能となる。この結果、保護メモリ有効デバイス102は、ライトカウンタレジスタフィールド280が一時的モードにおいてその最大カウント値に達したというだけで破棄する必要はなくなる。
【0062】
したがって、一時的モード認証鍵をレジスタフィールド146(
図2)にプログラミングすることで、保護メモリコントローラ134が一時的モードに移行(ブロック274、
図4)または再移行することに関連して、保護メモリコントローラ134はさらに一時的モードにおいてライトカウンタレジスタフィールド280をリセットするように構成される(ブロック284、
図4)。さらに、保護メモリコントローラ134の応答メッセージ生成ロジック164(
図2)は、ホストによりリクエストされた一時的モード認証鍵のプログラミング成功を認定する適切な応答メッセージを生成し(ブロック288、
図4)、リクエストしたホストに返す。これにより、保護メモリコントローラ134の動作の一時的モードにおける一時的モード認証鍵のプログラミングまたは再プログラミングが完了する(ブロック290、
図4)。認証鍵のプログラミング成功を認定する既知の応答メッセージと同様だが、本明細書に係るマルチモード保護メモリに合わせて適宜修正された方法で、一時的モード認証鍵のプログラミング成功を認定する応答メッセージが生成および送信される。
【0063】
一実施形態において、一時的モード認証鍵は、一時的モードにおいて、無制限回数プログラムおよび再プログラムされ得る。ただし、いくつかの実施形態において、一時的モード認証鍵の再プログラミング回数に制限を設定することが適切であり得ることが理解されよう。
【0064】
本明細書に係るマルチモード保護メモリの別の態様では、一実施形態において、保護メモリコントローラ134は永続的モードに移行する場合、一時的モードへ移行または再移行しなくなり得る。したがって、セキュリティ機能として、永続的モードへの移行は永続的で、同モードから脱することはなくなり得る。
図4の例では、受信した認証鍵プログラミングリクエストメッセージが、保護メモリアクセスリクエストメッセージの一時的モードセットものだと判定され(ブロック260、
図2)、保護メモリコントローラ134(
図2)が、保護メモリコントローラ134は既に保護メモリ動作の永続的モードにあると判定する場合(ブロック264、
図4)、悪意のある攻撃に対するセキュリティ対策として、および後方互換性を提供するために、保護メモリコントローラ134の応答メッセージ生成ロジック164(
図2)は、エラー状態を示す適切な応答メッセージを生成し(ブロック292、
図4)、リクエストしたホストに返す。
【0065】
上述のように、一実施形態において、レジスタフィールド160のレジスタフィールド150は、永続的モード用のワンタイムプログラム可能認証鍵を格納するように構成されたライトワンスレジスタフィールドである。既知のRPMBコントローラにおいて、セキュリティ機能として、認証鍵は一度のみプログラムされ得る。したがって
図4の例では、保護メモリコントローラ134(
図2)が、受信した認証鍵プログラミングリクエストメッセージは保護メモリアクセスリクエストメッセージの永続的モードセットものだと判定し(ブロック260、
図4)、保護メモリコントローラ134(
図2)が、保護メモリコントローラ134は既に保護メモリ動作の永続的モードにあるとさらに判定する場合(ブロック296、
図4)、セキュリティ機能として、および後方互換性を促進するために、
図4の実施形態では永続的モード認証鍵の再プログラミングが許可されないため、保護メモリコントローラ134の応答メッセージ生成ロジック164(
図2)はエラー状態を示す適切な応答メッセージを生成し(ブロック292、
図4)、リクエストしたホストに返す。ただし、いくつかの実施形態において、永続的モード認証鍵の再プログラミングを許可することが適切となり得ることが理解されよう。比較として、
図4の実施形態の一時的モードにおいて、動作254から290に関連して上述した一時的モード認証鍵のプログラミングおよび再プログラミングは、上述のように無制限回数繰り返され得る。
【0066】
一方、受信した認証鍵プログラミングリクエストメッセージが保護メモリアクセスリクエストメッセージの永続的モードセットのものであると判定され(ブロック260、
図4)、一時的モード無効レジスタ270(
図2)(この例において一時的モード無効レジスタフィールド270はクリア)を読み出すことで、保護メモリコントローラ134が既に保護メモリ動作の永続的モードにあるものではないと判定される場合(ブロック296、
図4)、保護メモリコントローラ134は、保護メモリコントローラ134が受信した認証鍵プログラミングリクエストメッセージにより転送された永続的モード認証鍵をレジスタフィールド150(
図2)にプログラミングすることで、永続的モードに移行できる(ブロック304、
図4)。永続的モード認証鍵が永続的モード認証鍵用のライトワンスレジスタフィールド150にプログラムされると、保護メモリユーザデータ領域区画114(
図2)は、ホストにより生成および送信されたアクセスリクエストメッセージの永続的モードセットの認証データライトおよび認証データリードなどの適切なアクセス動作によりアクセスされ得る。上述のように、一実施形態において、保護メモリ有効デバイスを組み込む第三者製品の開発および検証が、以前の一時的モードと同一または同様の保護メモリ有効デバイス102を使用して既に完了している可能性があるため、永続的モードで認証鍵レジスタフィールド150は一度のみプログラムされ得る。
【0067】
図示の実施形態において、悪意のある攻撃に対するセキュリティ対策として、永続的モード移行後に、一時的モードに移行し得ないように、永続的モードへの移行は永続的である。したがって、永続的モードへの移行のためにライトワンスレジスタフィールド150に永続的モード認証鍵がプログラムされたことに関連して、
図4の実施形態において、保護メモリコントローラ134のモードロジック138(
図2)は、保護メモリコントローラ134の動作の一時的モードを無効にするように(ブロック308、
図4)、一時的モード無効レジスタフィールド270(
図2)を設定またはヒューズする。したがって、一時的モード無効レジスタ270が設定またはヒューズされると、一時的モードは永続的に無効化され、設定またはヒューズされた一時的モードレジスタは、保護メモリコントローラが永続的モードにあり、一時的モードがもう利用できないことを示す。いくつかの実施形態において、永続的モード移行後に、一時的モードへの移行を許可することが適切であり得ることが理解されよう。
【0068】
さらに、保護メモリコントローラ134の応答メッセージ生成ロジック164(
図2)は、ホストによりリクエストされた永続的モード認証鍵のプログラミング成功を認定する応答メッセージを生成し(ブロック312、
図4)、リクエストしたホストに返す。これにより、保護メモリコントローラ134の動作の永続的モードにおける永続的モード認証鍵のプログラミングが完了する(ブロック290、
図4)。認証鍵のプログラミング成功を認定する既知のRPMBデバイス応答メッセージと同様であるが、本明細書に係るマルチモード保護メモリに合わせて適宜修正された方法で、永続的モード認証鍵のプログラミング成功を認定する応答メッセージが生成および送信され得る。一実施形態において、セキュリティ機能として、永続的モード用に永続的モード認証鍵は一度のみプログラムされ得る。ただし、いくつかの実施形態において、永続的モード認証鍵の追加の再プログラミングを許可することが適切であり得ることが理解されよう。
【0069】
本明細書に係るマルチモード保護メモリの一態様において、一時的モードから永続的に脱した、および永続的モードへの永続的な移行の後、デバイス102が一時的モードにあったときに、生成または書き込まれたいくつかのデータが保護メモリユーザデータ領域区画114にあり得ることが理解されよう。一実施形態において、区画114に残存するデータは、デバイス102が永続的モードに移行しても残るように保持され得る。例えば、一時的モードから残るデータは、永続的モードにおいてデバイス102内に安全に提供された、最重要、またはそうでなくても重要なデータであり得る。したがって、データは、後述のように、永続的モード認証鍵なしで上書きされなくなり得る。
【0070】
あるいは、デバイスが永続的モードに永続的に移行すると、区画114から、一時的モードからのデータはパージされ得る。一実施形態において、データは完全にパージされ、パージは、保護メモリコントローラ134により自動的に実行され得る。これは、デバイスが永続的に一時的モードから脱した後に、区画114内のデータを消去またはセキュア消去する内部「パージコマンド」をトリガする。このような自動消去は、一時的モード時に区画114内に格納された可能性のある悪意のあるデータに対するセキュリティ機能を提供し得る。例えば、パージは、一時的モードから残存する悪意のあるデータが、永続的モードにおいて、セキュリティソフトウェアを破損することを防止できる。ただし、一実施形態において、さらなるセキュリティ対策として、永続的モードにおけるセキュリティソフトウェアが、最初に区画114を永続的モードにおけるブランクストレージデバイスとして扱うことが適切であり得る。
【0071】
上述のように、悪意のある攻撃に対するセキュリティ機能として、RPMBコントローラなどの既知の保護メモリコントローラは、リードオンリライトカウンタを有する。リードオンリライトカウンタの出力値は、ホストによる、成功した認証データライトリクエストの総数を示し、リセットできない。ここでも、保護メモリコントローラ134は、ライトカウンタが永続的モードでリセットできない、永続的モード用のライトカウンタレジスタフィールド320(
図2)を有する。保護メモリ有効デバイスを組み込む第三者製品の開発または検証段階は、保護メモリコントローラ134が永続的モードに移行する前に完了し得ることが理解されよう。したがって、永続的モードにおいては、ライトカウンタが例えば負荷テストにおいてその最大値に達し、オーバーフローする懸念が避けられる可能性が高い。
【0072】
上述のように、一時的モード認証鍵が一時的モード認証鍵用のレジスタフィールド146にプログラムされると、保護メモリユーザデータ領域区画114(
図2)は一時的モードにおいて、ホストにより生成および送信されたアクセスリクエストメッセージの一時的モードセットの認証データライトおよび認証データリードなどの適切なアクセス動作によりアクセスされ得る。永続的モード認証鍵をレジスタフィールド150にプログラミングすることで、デバイス102が永続的モードに移行すると、保護メモリユーザデータ領域区画114(
図2)は、ホストにより生成および送信されたアクセスリクエストメッセージの永続的モードセットの認証データライトおよび認証データリードなどの適切なアクセス動作によりアクセスされ得る。
図5は、本明細書のマルチモード保護メモリに応じて認証データライト動作を処理するように構成された保護メモリコントローラ134の動作の一例を示す。
【0073】
この例において、保護メモリユーザデータ領域区画114への認証データライトは、保護メモリコントローラ134がどの動作モードにあるかに応じて、保護メモリアクセスリクエストメッセージの一時的モードセットの認証データライトリクエストを使用するか、または保護メモリアクセスリクエストメッセージの永続的モードセットの認証データライトリクエストを使用するかのいずれかによりリクエストされる。ストレージデバイス102の保護メモリコントローラ134(
図2)は、受信したリクエストメッセージが認証データライトリクエストメッセージにあるかを判定する(ブロック324、
図5)ように構成される。ある場合、保護メモリコントローラ134(
図2)はさらに、受信した認証データライトリクエストメッセージが、保護メモリアクセスリクエストメッセージの永続的モードセットのものであるかを判定する(ブロック332、
図5)ように構成される。上述のように、一時的および永続的モードセットを互いに区別することを促進するために、ある組のコマンドコードがリクエストメッセージの一時的モードセットに関連して使用され得、別の組のコマンドコードがリクエストメッセージの永続的モードセットに関連して使用され得る。
【0074】
受信した認証データライトリクエストメッセージが保護メモリアクセスリクエストメッセージの永続的モードセットのものではないと判定される場合、即ち、受信した認証データライトリクエストメッセージが保護メモリアクセスリクエストメッセージの一時的モードセットのものであると判定される場合、保護メモリコントローラ134(
図2)はさらに、保護メモリコントローラ134が既に保護メモリ動作の永続的モードにあるか判定するように構成される(ブロック336、
図5)。上述のように、保護メモリコントローラ134のレジスタフィールド160は、保護メモリコントローラ134が一時的モードにとどまることを示すようにクリアであり続けるか、保護メモリコントローラが永続的モードにあることを示すように設定またはヒューズされている、一時的モード無効レジスタフィールド270(
図2)を含む。したがって、保護メモリコントローラ134は、一時的モード無効レジスタ270(
図2)を読み出すことで、保護メモリコントローラ134が既に保護メモリ動作の永続的モードにあるか判定可能である(ブロック336、
図5)。
【0075】
一時的モード認証データライトリクエストメッセージ受信後に、保護メモリコントローラ134が既に永続的モードにあると判定される場合、保護メモリコントローラ134は、受信した一時的モードデータライトリクエストメッセージが無効で、リクエストされたライト動作の実行がブロックされているとみなす。さらに、保護メモリコントローラ134は、エラーメッセージを生成し(ブロック340、
図5)、リクエストしたホストに返す。一実施形態において、悪意のある攻撃に対するセキュリティ機能として、および後方互換性を提供するために、保護メモリが永続的モードに移行すると、一時的モードセットの動作の実行は許可されない。いくつかの実施形態において、このようなセキュリティ機能は省略され得ることが理解されよう。
【0076】
一方、一時的モード認証データライトリクエストメッセージ受信後に、保護メモリコントローラ134が既に永続的モードにあるものでない、即ち、保護メモリコントローラ134がいまだに一時的モード内で動作していると判定される場合、保護メモリコントローラ134は、保護メモリユーザデータ領域区画114(
図2)に向けた、一時的モードでリクエストされたデータライト動作の実行を許可する前に、受信した一時的モード認証データライトリクエストメッセージに関連して、認証およびその他のセキュリティテストを実行するように構成される(ブロック344、
図5)。
【0077】
一実施形態において、受信した一時的モード認証データライトリクエストメッセージに関連して実行される認証およびその他のテストは、公開されたRPMB規格に記載のもののような既知のRPMBコントローラにより実行されるものと同様であるが、本明細書のマルチモード保護メモリ動作に合わせて適宜修正されたものであり得る。例えば、既知のRPMBシステムにおいて、ホストのメッセージ認証コード(MAC)エンジンを使用して、ホストは、共有認証鍵とデータライトリクエストメッセージの一部に応じて、MAC認証コードを計算する。いくつかの既知のシステムにおいて、MAC認証コードも、RPMBデバイスの現在の現在のライトカウンタ値に応じて、ホストにより計算され得る。本開示に係るマルチモード保護メモリシステムの一実施形態において、一時的モード認証鍵は、ホストのデータ構造238(
図3)と、さらに保護メモリコントローラ134の再プログラム可能レジスタフィールド146(
図2)の両方に格納されている。これにより、一時的モード認証鍵はホストおよびデバイス102の保護メモリコントローラ134により共有される機密である。ホストのメッセージ認証コード(MAC)エンジン234を使用して、ホストは、共有一時的モード認証鍵とデータライトリクエストメッセージの一部に応じて、MAC認証コードを計算する。いくつかの実施形態において、MAC認証コードも、デバイス102の現在のライトカウンタ値に応じてホストにより計算され得る。ホストにより計算されたMAC認証コードは、デバイス102に送信および受信された(ブロック324、
図5)一時的モード認証データライトリクエストメッセージを用いて含められる。したがって、データライトリクエストメッセージによりリクエストされたライト動作は、「認証データライト」と称する。
【0078】
保護メモリコントローラ134は、RPMB規格に記載の既知のRPMBコントローラと同様だが、本明細書のマルチモード保護メモリ動作の一時的モードに合わせて適宜修正された方法で、認証テストを実行する。この実施形態において、一時的モード認証データライトリクエストメッセージを受信した保護メモリコントローラ134は、共有一時的モード認証鍵を使用して受信したメッセージを認証する。例えば、コントローラ134のメッセージ認証コード(MAC)エンジン142を使用するホストに関連して上述したのと同様にして、保護メモリコントローラ134は、レジスタフィールド146(
図2)に格納された共有一時的モード認証鍵と、データライトリクエストメッセージの、ライトリクエストに含まれたMAC認証コードを計算するのにホストにより使用されたのと同じ部分に応じて、MAC認証コードを計算する。いくつかの実施形態において、MAC認証コードも、デバイス102の現在のライトカウンタ値に応じて計算され得る。保護メモリコントローラ134により計算されたMAC認証コードは、デバイス102に送信された一時的モード認証データライトリクエストメッセージに含まれたMAC認証コードと比較される。2つのMAC認証コードが一致する場合、受信したメッセージは、保護メモリコントローラ134の認証プロセスに合格し、受信したデータライトリクエストメッセージは認証済み、即ち認証送り主により送られたものとみなされる。
【0079】
ただし、いくつかの実施形態において、データライトリクエストメッセージによりリクエストされたデータライト動作には、RPMB規格に記載されたもののように既知のRPMBコントローラと同様だが、本明細書のマルチモード保護メモリ動作の一時的モードに合わせて適宜修正された方法で、アドレス範囲テストおよびライトカウンタテストまたはその他のテストなどの追加のセキュリティテストが行われ得る。
【0080】
例えば、アドレス範囲テストは、既知のRPMBコントローラと同様だが、本明細書のマルチモード保護メモリ動作の一時的モードに合わせて適宜修正された方法で、保護メモリコントローラ134により実行され得る。図示の実施形態において、アドレス範囲テストはデータライト動作の対象アドレスが、想定範囲内であるか判定する。
【0081】
上述のように、既知のRPMBデバイスの別のセキュリティ機能は、RPMBストレージデバイスのRPMBコントローラにより維持されるライトカウンタである。一実施形態において、有効であると認証された(ブロック344、
図5)一時的モードデータライトメッセージによりリクエストされた保護メモリユーザデータ領域区画114への一時的モードデータライト動作の実行が成功し(ブロック350、
図5)、その他のセキュリティテストに合格すると、一時的モードライトカウンタについてのレジスタフィールド280(
図2)がインクリメントする(ブロック350、
図4)。
【0082】
一時的モードデータライトリクエストメッセージを生成する際に、リクエストしたホストのMACエンジン234(
図3)は、上述のようにデバイス102の、現在のインクリメントしたライトカウント値を、データライトリクエストメッセージに、計算されたMAC認証コードと共に含め得る。ライトカウンタテスト実施形態において、受信する保護メモリコントローラ134が、データライトリクエストメッセージに含まれたライトカウント値が、保護メモリコントローラのライトカウンタのレジスタフィールド280の現在のカウント値に一致しないと判定する場合、受信したデータライトリクエストメッセージは無効とみなされ、リクエストされたライト動作の実行がブロックされる。さらに、保護メモリコントローラ134は、エラーメッセージを生成し(ブロック340、
図5)、リクエストしたホストに返す。
【0083】
データライトリクエストメッセージが認証され、その他のセキュリティテストに合格する場合、リクエストされたデータライト動作が実行され(ブロック350、
図5)、デバイス102の保護メモリユーザデータ領域区画114(
図2)にリクエストされたデータが書き込まれる。さらに、一時的モードライトカウンタに対するレジスタフィールド280(
図2)をインクリメントし、保護メモリコントローラ134の応答メッセージ生成ロジック164(
図2)が、一時的モード認証データライトリクエストメッセージによりリクエストされたデータライトが成功したことを認定する応答メッセージを生成し(ブロック354、
図5)、リクエストしたホストに返す。一実施形態において、保護メモリコントローラ134は、RPMB規格に記載の既知のRPMBコントローラと同様にして、ライトの成功を示すゼロエラーコード応答を返す。ライト成功が認定されたことに応じて、ホスト保護メモリインタフェースロジック220は、上述のように次の認証ライトメッセージによりデバイス102に送信される現在の一時的モードライトカウンタ値を示すように、データ構造356に格納されたライトカウント値をインクリメントする。
【0084】
既知のRPMBシステムにおいて、RPMBストレージデバイスに何らかのライトアクセスが行われる前に、各起動時に、RPMBコントローラの初期ライトカウンタ値を読み出すために、ホストがリクエストメッセージ内で発行可能なライトカウンタリードリクエストコマンドがある。ホストは、この初期ライトカウンタ値をメモリ内にキャッシュ可能で、上述のようにホストが、認証ライトが成功したと検出する限り、ホストソフトウェアは、ライトカウンタ値がホストおよびRPMBコントローラ間で同期され続けるように、キャッシュされたライトカウンタ値をインクリメント可能である。
【0085】
本明細書に係るマルチモード保護メモリにおいて、ホスト204は、デバイス102の現在のライトカウンタ値にキャッシュ内のライトカウンタ値を初期化するように、既知のRPMBホストと同様にして、ライトカウンタリードリクエストメッセージを発行する。ライト成功が認定されたことに応じて(ブロック354、
図5)、ホスト保護メモリインタフェースロジック220は、上述のように次の認証ライトメッセージによりデバイス102に送信される現在の一時的モードライトカウンタ値を示すように、データ構造356に格納されたライトカウント値をインクリメントする。あるいは、および一実施形態において、デバイス102のレジスタフィールド280(
図2)のインクリメントしたライトカウント値は、応答メッセージにおいて、リクエストしたホストに戻して報告され得る(ブロック354、
図5)ことが理解されよう。応答メッセージが送信されると(ブロック354、
図5)、一時的モードにおいて保護メモリユーザデータ領域区画114への認証データライトが完了する(ブロック360、
図5)。
【0086】
本明細書に記載の認証データライトは、一時的モードにおいて無制限回数実行され得る。レジスタフィールド280(
図2)のインクリメントしたライトカウント値が一時的モードの最大値に達すると、レジスタフィールド280(
図2)のインクリメントしたライトカウント値は、
図4に関連して上述したように、一時的モード用のレジスタフィールド160に同じまたは別の認証鍵をプログラミングすることで、容易にリセットされ得る。
【0087】
比較として、永続的モードにおいて、レジスタフィールド320(
図2)のインクリメントしたライトカウント値が永続的モードの最大値に達すると、レジスタフィールド320(
図2)のインクリメントしたライトカウント値は、リセットされなくてよい。これにより、後述のように、永続的モードにおけるさらなる認証データライトが防止される。
【0088】
受信した認証データライトリクエストメッセージが保護メモリアクセスリクエストメッセージの永続的モードセットのものではないと判定される場合(ブロック332、
図5)、保護メモリコントローラ134(
図2)はさらに、保護メモリコントローラ134が保護メモリ動作の永続的モードにあるか判定するように構成される(ブロック370、
図5)。上述のように、一時的モード無効レジスタフィールド270(
図2)は、一時的モードへ移行をできなくするように設定またはヒューズされ、したがって保護メモリコントローラが永続的モードにあることを示し得る。このようにして、保護メモリコントローラ134は、一時的モード無効レジスタ270(
図2)を読み出すことで、保護メモリコントローラ134が既に保護メモリ動作の永続的モードにあるか判定可能である(ブロック370、
図5)。
【0089】
永続的モード認証データライトリクエストメッセージの受信後に、保護メモリコントローラ134が一時的モードにあると判定される場合、保護メモリコントローラ134は、受信した永続的モードデータライトリクエストメッセージが無効で、リクエストされたライト動作の実行がブロックされているとみなす。さらに、保護メモリコントローラ134は、エラーメッセージを生成し(ブロック340、
図5)、リクエストしたホストに返す。一実施形態において、悪意のある攻撃に対するセキュリティ機能として、および後方互換性を提供するために、保護メモリが一時的モードにある場合、永続的モードセットのデータライトおよびデータリード動作の実行は許可されない。いくつかの実施形態において、このようなセキュリティ機能は省略され得ることが理解されよう。
【0090】
一方、永続的モード認証データライトリクエストメッセージ受信後に、保護メモリコントローラ134が永続的モードにあると判定される場合、保護メモリコントローラ134は、保護メモリユーザデータ領域区画114(
図2)に向けた、永続的モードでリクエストされたデータライト動作の実行を許可する前に、受信した永続的モード認証データライトリクエストメッセージに関連して、認証およびその他のセキュリティテストを実行するように構成される(ブロック374、
図5)。
【0091】
一実施形態において、受信した永続的モード認証データライトリクエストメッセージに関連して実行される認証およびその他のテストは、既知のRPMBコントローラにより実行されるものと同様であるが、本明細書のマルチモード保護メモリ動作に合わせて適宜修正されたものであり得る。一実施形態において、
図4に関連して上述したように、永続的モード認証鍵は、この例では、ホストのデータ構造246(
図3)と、さらに保護メモリコントローラ134のライトワンスレジスタフィールド150(
図2)との両方に格納されている。これにより、永続的モード認証鍵はホストおよびデバイス102の保護メモリコントローラ134により共有される機密である。ホストのメッセージ認証コード(MAC)エンジン234を使用して、ホストは、共有永続的モード認証鍵とデータライトリクエストメッセージの一部に応じて、MAC認証コードを計算する。いくつかの実施形態において、MAC認証コードも、デバイス102の現在のライトカウンタ値に応じてホストにより計算され得る。計算されたMAC認証コードは、デバイス102に受信された(ブロック324、
図5)永続的モード認証データライトリクエストメッセージに含まれる。したがって、データライトリクエストメッセージによりリクエストされたライト動作は、「認証データライト」と称する。
【0092】
保護メモリコントローラ134は、RPMB規格に記載の既知のRPMBコントローラと同様だが、本明細書のマルチモード保護メモリ動作の永続的モードに合わせて適宜修正された方法で、認証テストを実行する。この実施形態において、永続的モード認証データライトリクエストメッセージを受信した保護メモリコントローラ134は、共有永続的モード認証鍵を使用して受信したメッセージを認証する。例えば、コントローラ134のメッセージ認証コード(MAC)エンジン142を使用するホストに関連して上述したのと同様にして、保護メモリコントローラ134は、レジスタフィールド146(
図2)に格納された共有永続的モード認証鍵と、データライトリクエストメッセージの、ライトリクエストに含まれたMAC認証コードを計算するのにホストにより使用されたのと同じ部分に応じて、MAC認証コードを計算する。いくつかの実施形態において、MAC認証コードも、デバイス102の現在のライトカウンタ値に応じて計算され得る。保護メモリコントローラ134により計算されたMAC認証コードは、デバイス102に送信された永続的モード認証データライトリクエストメッセージに含まれたMAC認証コードと比較される。2つのMAC認証コードが一致する場合、受信したメッセージは、保護メモリコントローラ134の認証プロセスに合格し、受信したデータライトリクエストメッセージは認証済み、即ち認証送り主により送られたものとみなされる。
【0093】
ただし、この実施形態において、データライトリクエストメッセージによりリクエストされたデータライト動作には、RPMB規格に記載されたもののように既知のRPMBコントローラのものと同様だが、本明細書のマルチモード保護メモリ動作の永続的モードに合わせて適宜修正された方法で、アドレス範囲テストおよびライトカウンタおよびその他のテストなどの永続的モードにおける追加のセキュリティテストが行われ得る。
【0094】
アドレス範囲テストは、既知のRPMBコントローラと同様だが、本明細書のマルチモード保護メモリ動作の永続的モードに合わせて適宜修正された方法で、保護メモリコントローラ134により実行され得る。図示の実施形態において、アドレス範囲テストはデータライト動作の対象アドレスが、想定範囲内であるか判定する。
【0095】
上述のように、既知のRPMBデバイスの別のセキュリティ機能は、RPMBストレージデバイスのRPMBコントローラにより維持されるライトカウンタである。この実施形態において、有効であると認証された(ブロック374、
図5)永続的モードデータライトメッセージによりリクエストされた保護メモリユーザデータ領域区画114への永続的モードデータライト動作の実行が成功し(ブロック380、
図5)、その他のセキュリティテストに合格すると、永続的モードライトカウンタについてのレジスタフィールド320(
図2)がインクリメントする(ブロック380、
図5。後述のように、認証応答メッセージに応じて、リクエストしたホストは、永続的モードライトカウンタ値用のデータ構造390のライトカウント値を、一時的モードに関連して上述したのと同様にして、保護メモリコントローラ134の現在のライトカウンタ値に同期する。ホストにより計算されるMAC認証コードは、いくつかの実施形態において、ホストにより、保護メモリコントローラ134の現在のライトカウンタ値と同期され、永続的モードライトカウンタ値用のホストのデータ構造390に格納されたライトカウント値に応じて計算され得る。
【0096】
次の永続的モードデータライトリクエストメッセージを生成する際に、リクエストしたホストのMACエンジン234(
図3)は、いくつかの実施形態において、上述したように、データ構造390(
図2)に格納された最後に報告されたインクリメントしたライトカウント値を、データライトリクエストメッセージに、計算されたMAC認証コードと共に含める。ライトカウンタテスト実施形態において、受信する保護メモリコントローラ134が、データライトリクエストメッセージに含まれたライトカウント値が、保護メモリコントローラの永続的モードライトカウンタのレジスタフィールド320の永続的モードの現在のカウント値に一致しないと判定する場合、受信したデータライトリクエストメッセージは無効とみなされ、リクエストされたライト動作の実行がブロックされる。さらに、保護メモリコントローラ134は、エラーメッセージを生成し(ブロック340、
図5)、リクエストしたホストに返す。
【0097】
データライトリクエストメッセージが認証され、その他のセキュリティテストに合格する場合、リクエストされたデータライト動作が実行され(ブロック380、
図5)、デバイス102の保護メモリユーザデータ領域区画114(
図2)にリクエストされたデータが書き込まれる。さらに、永続的モードライトカウンタに対するレジスタフィールド320(
図2)がインクリメントされ、保護メモリコントローラ134の応答メッセージ生成ロジック164(
図2)が、永続的モード認証データライトリクエストメッセージによりリクエストされたデータライトが成功したことを認定する応答メッセージを生成し(ブロック384、
図5)、リクエストしたホストに返す。ホストは、上述のように、データ構造390に格納されたライトカウント値を、デバイス102のレジスタフィールド320(
図2)のインクリメントしたライトカウント値と同期する。したがって、永続的モードにおいて保護メモリユーザデータ領域区画114への認証データライトが完了する(ブロック360、
図5)。
【0098】
本明細書に記載の認証データライトは、永続的モードにおいて制限された回数実行され得る。レジスタフィールド320(
図2)のインクリメントしたライトカウント値が永続的モードの最大値に達すると、レジスタフィールド320(
図2)のインクリメントしたライトカウント値は、セキュリティ機能として、永続的モードにおいてさらなる認証データライトを防止するため、リセットされなくてよい。
【0099】
一方、一時的モード用のレジスタフィールド280(
図2)のインクリメントしたライトカウント値は、
図4に関連して上述したように、一時的モード用のレジスタフィールド160に同じまたは別の認証鍵をプログラミングすることで、容易にリセットされ得る。したがって、デバイス102が一時的モードにある限り、無制限回数の認証データライトが許可される。しかし、一実施形態では、セキュリティ予防措置として、デバイスが永続的モードとなると、デバイスは一時的モードに再移行しなくてよい。
【0100】
上述のように、
図4に関連して上述したように、一時的モード認証鍵が一時的モード認証鍵用のレジスタフィールド146にプログラムされると、または永続的モード認証鍵が永続的モード認証鍵用のレジスタフィールド150にプログラムされると、保護メモリユーザデータ領域区画114(
図2)は、
図5に関連して上述したような認証データライト、およびホストにより生成および送信されたアクセスリクエストメッセージの一時的または永続的モードセットの認証データリードなどの、適切なアクセス動作によりアクセスされ得る。ただし、いくつかの実施形態において、保護メモリユーザデータ領域区画114(
図2)はさらに、認証リード結果を有さないリード動作においてアクセスされ得る。
【0101】
図6は、本明細書のマルチモード保護メモリに応じて認証データリード動作を処理するように構成された保護メモリコントローラ134の動作の一例を示す。この例において、保護メモリユーザデータ領域区画114への認証データリードは、保護メモリコントローラ134がどの動作モードにあるかに応じて、保護メモリアクセスリクエストメッセージの一時的モードセットの認証データリードリクエストを使用するか、または保護メモリアクセスリクエストメッセージの永続的モードセットの認証データリードリクエストを使用するかのいずれかによりリクエストされる。ストレージデバイス102の保護メモリコントローラ134(
図2)は、受信したリクエストメッセージが認証データリードリクエストメッセージにあるかを判定する(ブロック424、
図6)ように構成される。ある場合、保護メモリコントローラ134(
図2)はさらに、受信した認証データリードリクエストメッセージが、保護メモリアクセスリクエストメッセージの永続的モードセットのものであるかを判定する(ブロック432、
図6)ように構成される。上述のように、一時的および永続的モードセットを互いに区別することを促進するために、ある組のコマンドコードがリクエストメッセージの一時的モードセットに関連して使用され得、別の組のコマンドコードがリクエストメッセージの永続的モードセットに関連して使用され得る。
【0102】
受信した認証データリードリクエストメッセージが保護メモリアクセスリクエストメッセージの永続的モードセットのものではないと判定される場合、即ち、受信した認証データリードリクエストメッセージが保護メモリアクセスリクエストメッセージの一時的モードセットのものであると判定されると、保護メモリコントローラ134(
図2)はさらに、保護メモリコントローラ134が既に保護メモリ動作の永続的モードにあるか判定するように構成される(ブロック436、
図6)。上述のように、保護メモリコントローラ134のレジスタフィールド160は、保護メモリコントローラ134が一時的モードにとどまることを示すようにクリアであり続けるか、保護メモリコントローラが永続的モードにあることを示すように設定またはヒューズされているかのいずれかである、一時的モード無効レジスタフィールド270(
図2)を含む。したがって、保護メモリコントローラ134は、一時的モード無効レジスタ270(
図2)を読み出すことで、保護メモリコントローラ134が既に保護メモリ動作の永続的モードにあるか判定可能である(ブロック436、
図6)。
【0103】
一時的モード認証データリードリクエストメッセージ受信後に、保護メモリコントローラ134が既に永続的モードにあると判定される場合、保護メモリコントローラ134は、受信した一時的モードデータリードリクエストメッセージが無効で、リクエストされたリード動作の実行がブロックされているとみなす。さらに、保護メモリコントローラ134は、エラーメッセージを生成し(ブロック440、
図6)、リクエストしたホストに返す。一実施形態において、悪意のある攻撃に対するセキュリティ機能として、および後方互換性を提供するために、保護メモリが永続的モードに移行すると、一時的モードセットの動作の実行は許可されない。いくつかの実施形態において、このようなセキュリティ機能は省略され得ることが理解されよう。
【0104】
一方、一時的モード認証データリードリクエストメッセージ受信後に、保護メモリコントローラ134が既に永続的モードにあるものでない、即ち、保護メモリコントローラ134がいまだに一時的モード内で動作していると判定される場合、保護メモリコントローラ134は、デバイス102の保護メモリユーザデータ領域区画114(
図2)からリクエストされたデータを読み出すことで、リクエストされたデータリード動作を実行するように構成される(ブロック450、
図6)。さらに、保護メモリコントローラ134は、リクエストされたリードデータを含む認証リード応答メッセージを生成し(ブロック454、
図6)、返す。したがって、データリードリクエストメッセージによりリクエストされたリード動作は、「認証データリード」と称する。
【0105】
一実施形態において、一時的モード認証データリード応答メッセージは、既知のRPMBコントローラにより生成されるものと同一または同様であるが、本明細書のマルチモード保護メモリ動作に合わせて適宜修正されたものであり得る。上述のように、この実施形態において、一時的モード認証鍵は、この例では、ホストのデータ構造238(
図3)と、さらに保護メモリコントローラ134の再プログラム可能レジスタフィールド146(
図2)の両方に格納されている。これにより、一時的モード認証鍵はホストおよびデバイス102の保護メモリコントローラ134により共有される機密である。デバイス102のメッセージ認証コード(MAC)エンジン142を使用して、保護メモリコントローラ134は、共有一時的モード認証鍵とデータリード応答メッセージの一部に応じて、MAC認証コードを計算する。
【0106】
保護メモリコントローラ134により計算されたMAC認証コードは、デバイス102により返される一時的モード認証データリード応答メッセージ(ブロック454、
図6)に含まれる。一実施形態において、保護メモリコントローラ134により計算されるMAC認証コードは、さらにホストによりデバイス102に送信されるデータリードリクエストメッセージにより、ホストが供給する乱数に応じて計算され得る。
図3の実施形態において、ホスト保護メモリインタフェースロジック220は乱数発生器(RNG)456を含む。生成された乱数は、デバイス102により受信される(ブロック424、
図6)一時的モード認証データリードリクエストメッセージによりデバイス102に送信される。一実施形態において、保護メモリユーザデータ領域区画114(
図2)へのリード動作成功後の一時的モード認証データリード応答メッセージは、追加のセキュリティ対策として、データリードリクエストメッセージによりホストがデバイス102に初期送信した乱数のコピーを含み得る。認証データリード応答メッセージの送信をもって、認証リード動作における保護メモリコントローラ134の役割は完了する(ブロック460)。
【0107】
デバイス102から認証データリード応答メッセージを受信すると、ホストは、RPMB規格に記載の既知のRPMB有効ホストと同様だが、本明細書のマルチモード保護メモリ動作の一時的モードに合わせて適宜修正された方法で、認証プロセスを実行する。この実施形態において、一時的モード認証データリード応答メッセージを受信したホストは、共有一時的モード認証鍵を使用してデータリード応答メッセージを認証する。例えば、メッセージ認証コード(MAC)エンジン234を使用する保護メモリコントローラ134に関連して上述したのと同様にして、ホスト保護メモリインタフェースロジック220は、データ構造238(
図3)に格納された共有一時的モード認証鍵と、データリード応答メッセージの、リード応答に含まれたMAC認証コードを計算するのに保護メモリコントローラ134(
図3)により使用されたのと同じ部分に応じて、MAC認証コードを計算する。ホスト204により計算されるMAC認証コードは、ホスト204に送信される一時的モード認証データリード応答メッセージに含まれるMAC認証コードと比較される。2つのMAC認証コードが一致する場合、受信したリード応答メッセージは、ホスト204の認証プロセスに合格し、受信したデータリード応答メッセージは認証済み、即ち認証送り主により送られたものとみなされる。
【0108】
ただし、この実施形態において、データリードリクエストメッセージによりリクエストされたデータリード動作には、RPMB規格に記載されたもののように既知のRPMB有効ホストおよびコントローラのものと同様だが、本明細書のマルチモード保護メモリ動作の一時的モードに合わせて適宜修正された方法で、乱数テストなどの追加のセキュリティテストが実施され得る。例えば、ホスト204は、ホスト204に送信された一時的モード認証データリード応答メッセージに含まれた乱数を、ホスト204により生成され、デバイス102に送信された一時的モード認証データリードリクエストメッセージに含まれた乱数と比較し得る。2つの乱数が一致する場合、受信したリード応答メッセージは、ホスト204の認証プロセスに合格し、リードデータを転送する受信したデータリード応答メッセージは認証済み、即ち認証送り主から送信されたとみなされる。
【0109】
一実施形態において、本明細書に記載の認証データリードは、一時的モード、または一時的モードから永続的に脱した後の永続的モードのいずれかにおいて、無制限回数実行され得る。ただし、いくつかの実施形態において、特定の用途に応じて、一時的モード、永続的モード、またはその両方において、認証リード動作の回数に制限が課せられ得ることが理解されよう。
【0110】
受信した認証データリードリクエストメッセージが保護メモリアクセスリクエストメッセージの永続的モードセットのものであると判定される場合(ブロック432、
図6)、保護メモリコントローラ134(
図2)はさらに、保護メモリコントローラ134が既に保護メモリ動作の永続的モードにあるか判定するように構成される(ブロック470、
図6)。上述のように、一時的モード無効レジスタフィールド270(
図2)は、一時的モードへの移行をできなくするように設定またはヒューズされ、したがって保護メモリコントローラが永続的モードにあることを示し得る。このようにして、保護メモリコントローラ134は、一時的モード無効レジスタ270(
図2)を読み出すことで、保護メモリコントローラ134が既に保護メモリ動作の永続的モードにあるか判定可能である(ブロック470、
図6)。
【0111】
永続的モード認証データリードリクエストメッセージの受信後に、保護メモリコントローラ134が一時的モードにあると判定される場合、保護メモリコントローラ134は、受信した永続的モードデータリードリクエストメッセージが無効で、リクエストされたリード動作の実行がブロックされているとみなす。さらに、保護メモリコントローラ134は、エラーメッセージを生成し(ブロック472、
図6)、リクエストしたホストに返す。一実施形態において、悪意のある攻撃に対するセキュリティ機能として、および後方互換性を提供するために、保護メモリが一時的永続的モードにある場合、永続的モードセットの認証リード動作の実行は許可されない。いくつかの実施形態において、このようなセキュリティ機能は省略され得ることが理解されよう。
【0112】
一方、永続的モード認証データリードリクエストメッセージの受信後に、保護メモリコントローラ134が永続的モードにあると判定される場合、保護メモリコントローラ134はデバイス102の保護メモリユーザデータ領域区画114(
図2)からリクエストされたデータを読み出すことで、リクエストされたデータリード動作を実行するように構成される(ブロック450、
図6)。さらに、保護メモリコントローラ134は、一時的モードにおける認証リード応答に関連して説明したのと同様にして、リクエストされたリードデータを含む認証リード応答メッセージを生成し(ブロック454、
図6)、返す。
【0113】
デバイス102から認証データリード応答メッセージを受信すると、ホストは、一時的モード認証データリード応答メッセージに関連して上述したのと同様だが、本明細書のマルチモード保護メモリ動作の永続的モードに合わせて適宜修正された方法で、認証プロセスを実行する。この実施形態において、永続的モード認証データリードリクエストメッセージを受信したホストは、共有永続的モード認証鍵を使用してデータリード応答メッセージを認証する。例えば、メッセージ認証コード(MAC)エンジン234を使用する保護メモリコントローラ134に関連して上述したのと同様にして、ホスト保護メモリインタフェースロジック220は、データ構造238(
図3)に格納された共有永続的モード認証鍵と、データリード応答メッセージの、リード応答に含まれたMAC認証コードを計算するのに保護メモリコントローラ134(
図3)により使用されたのと同じ部分に応じて、MAC認証コードを計算する。ホスト204により計算されるMAC認証コードは、ホスト204に送信される永続的モード認証データリード応答メッセージに含まれるMAC認証コードと比較される。2つのMAC認証コードが一致する場合、受信したリード応答メッセージは、ホスト204の認証プロセスに合格し、受信したデータリード応答メッセージは認証済み、即ち認証送り主により送られたものとみなされる。いくつかの実施形態において、ホストおよびデバイス102はさらに、ホストにより生成され、上述のように認証データリードリクエストメッセージにおいてデバイス102に送信された乱数にさらに応じて、それぞれのMAC認証コードを計算し得る。
【0114】
ただし、この実施形態において、データリードリクエストメッセージによりリクエストされたデータリード応答には、RPMB規格に記載されたもののように既知のRPMBコントローラのものと同様だが、本明細書のマルチモード保護メモリ動作の永続的モードに合わせて適宜修正された方法で、乱数テストなどの追加のセキュリティテストが実施され得る。例えば、ホスト204は、ホスト204に送信された永続的モード認証データリード応答メッセージに含まれた乱数を、ホスト204により生成され、デバイス102に送信された永続的モード認証データリードリクエストメッセージに含まれた乱数と比較し得る。2つの乱数が一致する場合、受信したリード応答メッセージは、ホスト204の認証プロセスに合格し、リードデータを転送する受信したデータリード応答メッセージは認証済み、即ち認証送り主から送信されたとみなされる。
【0115】
上述した方法と同様にして、本明細書に係るマルチモード保護メモリを有するRPMB有効ストレージデバイスにより、選択された一時的モードまたは永続的モードにおいて、RPMB規格の別のリクエストメッセージタイプが取り扱われ得る。したがって、例えば他のリクエストメッセージが、既知のRPMBコントローラのものと同様だが、本明細書のマルチモード保護メモリ動作に合わせて適宜修正された方法で取り扱われ得る。
【0116】
例えば、RPMB規格の別の既知のリクエストメッセージタイプは、RPMBホストにより生成され、応答メッセージにおいて現在のライトカウンタ値を返すRPMB有効ストレージデバイスに送信されるリードカウンタ値リクエストメッセージである。データリードリクエストメッセージと同様に、リードカウンタ値リクエストメッセージは、ホストが生成した乱数を含む。RPMB有効デバイスからのリードカウンタ値応答メッセージは、ライトカウンタ値に加えて、リクエストメッセージにより受信した乱数のコピーと共に、RPMB有効デバイスにより計算されたMAC認証コードを含む。ホストは、認証データリード応答メッセージと同様にして、リードカウンタ値応答メッセージを認証する。
【0117】
本明細書の一実施形態において、ホスト204のホスト保護メモリインタフェースロジック220(
図3)は、既知のRPMBシステムと同様であるが、本明細書に係るマルチモード保護メモリに合わせて適宜修正された方法で、リードカウンタ値リクエストメッセージを生成し、ストレージデバイス102に送信する。例えば、リードカウンタ値リクエストメッセージは、
図6に関連して上述したように、一時的モード用のデータリードリクエストメッセージの修正と同様にして、一時的モード用に修正され得る。同様に、リードカウンタ値リクエストメッセージは、
図6に関連して上述したように、永続的モードのデータリードリクエストメッセージの修正と同様にして、永続的モード用に修正され得る。
【0118】
デバイス102の保護メモリコントローラ134(
図2)は、既知のRPMBシステムと同様であるが、本明細書に係るマルチモード保護メモリに合わせて適宜修正された方法で、リードカウンタ値応答メッセージを生成し、ホスト204に送信する。例えば、リードカウンタ値応答メッセージは、
図6に関連して上述したように、一時的モード用のデータリード応答メッセージの修正と同様にして、一時的モード用に修正され得る。同様に、リードカウンタ値応答メッセージは、
図6に関連して上述したように、永続的モード用のデータリード応答メッセージの修正と同様にして、永続的モード用に修正され得る。
【0119】
上述の動作は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生産する標準プログラミングおよび/または工学技法を用いて、方法、装置、またはコンピュータプログラム製品として実装され得る。上述の動作は、「コンピュータ可読記憶媒体」に維持されたコードとして実装され得、ここでプロセッサがコンピュータ記憶可読媒体からコードを読み出して実行し得る。コンピュータ可読記憶媒体は、電子回路部、ストレージ材料、無機材料、有機材料、生物材料、ケース類、筐体、被覆物、およびハードウェアのうちの少なくとも1つを含む。コンピュータ可読記憶媒体は限定されないが、磁気記憶媒体(例えば、複数のハードディスクドライブ、フロッピー(登録商標)ディスク、テープなど)、光ストレージ(複数のCD―ROM、DVD、光ディスクなど)、揮発性および不揮発性メモリデバイス(例えば、複数のEEPROM、ROM、PROM、RAM、DRAM、SRAM、フラッシュメモリ、ファームウェア、プログラム可能ロジックなど)、複数のソリッドステートデバイス(SSD)などを含んでよい。上述の動作を実装するコードは、ハードウェアデバイス(例えば、集積回路チップ、プログラム可能ゲートアレイ(PGA)、特定用途向集積回路(ASIC)など)に実装されたハードウェアロジックにさらに実装され得る。さらにまた、記載された複数の動作を実装するコードは、「複数の送信信号」内に実装されてよく、当該複数の送信信号は、空間を介してまたは光ファイバ、銅線などのような送信媒体を介して伝播してよい。コードまたはロジックを中に符号化した送信信号は、無線信号、衛星送信、電波、赤外線信号、ブルートゥース(登録商標)などをさらに含み得る。コンピュータ可読記憶媒体に埋め込まれたプログラムコードは、送信局またはコンピュータから受信局またはコンピュータに送信信号として送信され得る。コンピュータ可読記憶媒体は、複数の送信信号のみで構成されない。当業者は、多くの修正が本構成に対しなされ得、製造物品は、当該技術分野で既知の好適な情報保持媒体を含んでよいことを認識するであろう。
【0120】
特定の実施形態の態様の動作を実施するためのコンピュータプログラムコードは、1または複数のプログラミング言語の任意の組み合わせで書かれ得る。フローチャートおよびブロック図のブロックは、コンピュータプログラム命令によって実装され得る。
【0121】
特定の実施形態は、人によって、またはコンピュータ可読コードをコンピューティングシステムに統合する自動化処理によって、コンピューティング命令を展開するための方法に向けられ得る。ここで、コンピューティングシステムと共にコードは、記載された実施形態の動作を実行可能とされる。
【0122】
「ある実施形態」、「実施形態」、「複数の実施形態」、「上記実施形態」、「上記複数の実施形態」、「1または複数の実施形態」、「いくつかの実施形態」、および「1つの実施形態」という用語は、明確に別途指定されていない限り、「1または複数(だが全てではない)実施形態」を意味する。
【0123】
「を含む」、「を備える」、「を有する」、またはそれらの変化形の用語は、明確に別途指定されていない限り、「を含むが、これらに限定されない」を意味する。
【0124】
要素の列挙された項目は、明確に別途指定されていない限り、これらの要素のいずれかまたは全てが互いに排他的であることを示唆するものではない。
【0125】
単数形「a」、「an」、および「the」は、明確に別途指定されていない限り、「1または複数の」を意味する。
【0126】
互いに通信しているデバイスは、明確に別途指定されていない限り、必ずしも互いに継続的に通信しているわけではない。また、互いに通信しているデバイスは、直接的に、または1または複数の中間体を介して間接的に通信してよい。
【0127】
互いに通信しているいくつかのコンポーネントを有する実施形態の説明は、これらのコンポーネントの全てが必要であることを示唆するものではない。逆に、幅広い可能な実施形態を示すために、様々な任意のコンポーネントが説明されている。
【0128】
さらに、プロセスステップ、方法ステップ、またはアルゴリズムなどはあるシーケンスの順序において記載され得るが、そのようなプロセス、方法、およびアルゴリズムは、代替的な順序において行うように構成してよい。換言すると、記載され得るステップのいずれのシーケンスも順序も、ステップがその順序で実行される必要があることを必ずしも示しているとは限らない。本明細書において記載されているプロセスのステップは、任意の実際的な順序において実行してよい。さらに、いくつかのステップを同時に実行してよい。
【0129】
単一のデバイスまたは物品が本明細書に記載されている場合、2つ以上のデバイス/物品(これらが協働するか否かにかかわらず)を単一のデバイス/物品の代わりに用いてもよいことが容易に明らかとなる。同様に、2つ以上のデバイスまたは物品が本明細書に記載されている場合(これらが協働するか否かにかかわらず)、単一のデバイス/物品を上記2つ以上のデバイスまたは物品の代わりに用いてもよいこと、または異なる数のデバイス/物品を示された数のデバイスまたはプログラムの代わりに用いてもよいことが容易に明らかとなる。デバイスの機能および/または特徴は、そのような機能/特徴を有するとして明確に記載されていない1または複数の他のデバイスによって代替的に実施してもよい。したがって、他の実施形態はデバイス自体を含む必要はない。
【0130】
図面に示されている可能性のある少なくとも特定の動作は、特定の順序で生じる特定の事象を示す。代替的な実施形態では、ある特定の動作は異なる順序で実行され、修正され、または除去され得る。さらに、上述のロジックにステップを追加し得、それでも記載された実施形態に準拠している。さらに、本明細書に記載された動作は、連続して生じ得、または特定の動作は平行に処理し得る。さらに、動作は単一の処理ユニットによりまたは分散型処理ユニットにより実行され得る。
【0131】
様々な実施形態に関する以上の説明は、図解および記述の目的で提示されたものである。これは網羅的であること、または開示された厳密な形式に制限することを意図したものではない。上記の教示を鑑み、多くの修正および変形が可能である。
例
【0132】
以下の例は、さらなる実施形態に関するものである。
【0133】
例1は、保護メモリと、上記保護メモリに対するアクセスを制御するように構成された保護メモリコントローラであって、一時的モードと永続的モードとを含む選択されたモードにおいて上記保護メモリに対するアクセスを制御するように構成されたモードロジックを有し、上記保護メモリコントローラは、上記一時的モードにおける再プログラム可能認証鍵に応じて、および上記永続的モードにおけるワンタイムプログラム可能認証鍵に応じて、上記保護メモリに向けたメモリ動作を認証するようにさらに構成される、保護メモリコントローラと、を備える装置である。
【0134】
例2において、例1から7(本例を除く)のサブジェクトマターは任意で、上記保護メモリコントローラは、上記保護メモリコントローラが上記一時的モードをサポートすることを示すように設定可能に構成されるレジスタを有することを含み得る。
【0135】
例3において、例1から7(本例を除く)のサブジェクトマターは任意で、上記モードロジックはヒューズを有し、上記永続的モードへの移行時に、上記一時的モードへの移行を不能にするように上記ヒューズを設定するように構成されることを含み得る。
【0136】
例4において、例1から7(本例を除く)のサブジェクトマターは任意で、上記保護メモリコントローラは、上記一時的モードにおいて上記再プログラム可能認証鍵を格納するように構成された再プログラム可能レジスタと、上記永続的モードにおいて上記ワンタイムプログラム可能認証鍵を格納するように構成されたライトワンスレジスタとを有することを含み得る。
【0137】
例5において、例1から7(本例を除く)のサブジェクトマターは任意で、上記保護メモリコントローラは、上記一時的モードにおける上記保護メモリに対するライト動作をカウントするように構成されたリセット可能ライトカウンタと、上記永続的モードにおける上記保護メモリに対するライト動作をカウントするように構成されたリセット不能ライトカウンタとを有することを含み得る。
【0138】
例6において、例1から7(本例を除く)のサブジェクトマターは任意で、上記保護メモリコントローラは、上記一時的モードにおけるリクエストメッセージの一時的モードセットと、上記永続的モードにおけるリクエストメッセージの永続的モードセットとに応答するように構成され、上記保護メモリコントローラが上記永続的モードにある場合に、上記リクエストメッセージの一時的モードセットのリクエストメッセージの受信に応じて、エラー応答メッセージが返されることを含み得る。
【0139】
例7において、例1から7(本例を除く)のサブジェクトマターは任意で、システムを含み得、上記システムは、上記保護メモリおよび保護メモリコントローラと、上記保護メモリコントローラおよび保護メモリに結合された、上記保護メモリに向けたメモリ動作に応じて情報を表示するよう構成されたディスプレイと、上記保護メモリに向けたメモリ動作に応じて情報を送信するように構成されたネットワークインタフェースと、上記システムに電力を提供するように構成されたバッテリとのうちの少なくとも1つを備える。
【0140】
例8は、保護メモリへのアクセスを、上記保護メモリに向けたメモリ動作が再プログラム可能認証鍵に応じて認証される一時的モードと、上記保護メモリに向けたメモリ動作がワンタイムプログラム可能認証鍵に応じて認証される永続的モードとを含む、選択されたモードで前記保護メモリへのアクセスを制御する段階を備える、方法である。
【0141】
例9において、例8から13(本例を除く)のサブジェクトマターは任意で、上記保護メモリコントローラが上記一時的モードをサポートすることを示すようにレジスタを設定する段階を備え得る。
【0142】
例10において、例8から13(本例を除く)のサブジェクトマターは任意で、上記永続的モードへの移行時に、上記一時的モードへの移行を不能にするようにヒューズを設定する段階を備え得る。
【0143】
例11において、例8から13(本例を除く)のサブジェクトマターは任意で、上記一時的モードにおいて上記再プログラム可能認証鍵を再プログラム可能レジスタに格納する段階と、上記永続的モードにおいて上記ワンタイムプログラム可能認証鍵をライトワンスレジスタに格納する段階とを備え得る。
【0144】
例12において、例8から13(本例を除く)のサブジェクトマターは任意で、上記一時的モードにおける上記保護メモリに対するライト動作をカウントするように構成されたリセット可能ライトカウンタをリセットする段階と、上記永続的モードにおける上記保護メモリに対するライト動作を、リセット不能ライトカウンタでカウントする段階とを備え得る。
【0145】
例13において、例8から13(本例を除く)のサブジェクトマターは任意で、上記保護メモリコントローラが、上記一時的モードにおけるリクエストメッセージの一時的モードセットに応答する段階と、上記永続的モードにおけるリクエストメッセージの永続的モードセットとに応答する段階と、上記保護メモリコントローラが上記永続的モードにある場合に、上記リクエストメッセージの一時的モードセットのリクエストメッセージの受信に応じて、エラー応答メッセージを返す段階とを備え得る。
【0146】
例14は、任意の前述の例に記載される方法を実行する手段を備える装置である。
【0147】
例15は、保護メモリと、上記保護メモリに対するアクセスを制御するように構成された保護メモリコントローラ手段であって、一時的モードと永続的モードとを含む選択されたモードにおいて上記保護メモリに対するアクセスを制御するように構成されたモードロジック手段を有し、上記保護メモリコントローラ手段は、上記一時的モードにおける再プログラム可能認証鍵に応じて、および上記永続的モードにおけるワンタイムプログラム可能認証鍵に応じて、上記保護メモリに向けたメモリ動作を認証するようにさらに構成される保護メモリコントローラ手段とを備える装置である。
【0148】
例16は、保護メモリと、保護メモリコントローラとを備えるコンピューティングシステム用のコンピュータプログラム製品であって、上記コンピュータプログラム製品は、一緒に実施されたプログラム命令を有するコンピュータ可読記憶媒体を備え、上記プログラム命令は、上記コンピューティングシステムのプロセッサにより、動作を実行させるように実行可能であり、上記動作は、保護メモリへのアクセスを、上記保護メモリに向けたメモリ動作が再プログラム可能認証鍵に応じて認証される一時的モードと、上記保護メモリに向けたメモリ動作がワンタイムプログラム可能認証鍵に応じて認証される永続的モードとを含む、選択されたモードで制御することを含む、コンピュータプログラム製品である。
【0149】
上述の任意のシステムおよび/または装置の全ての任意的特徴は、上述の方法またはプロセスに対しても実装され得、例における具体的事項は、1または複数の実施形態のいずれかにおいて使用され得る。さらに、上述の方法またはプロセスの全ての任意的な特徴は、上述の任意のシステムおよび/または装置に対して実装され得、例における具体的事項は、1または複数の実施形態のいずれかにおいて使用され得る。
[他の考え得る項目]
(項目1)
保護メモリと、
上記保護メモリに対するアクセスを制御するように構成された保護メモリコントローラであって、一時的モードと永続的モードとを含む選択されたモードにおいて上記保護メモリに対するアクセスを制御するように構成されたモードロジックを有し、上記保護メモリコントローラは、上記一時的モードにおける再プログラム可能認証鍵に応じて、および上記永続的モードにおけるワンタイムプログラム可能認証鍵に応じて、上記保護メモリに向けたメモリ動作を認証するようにさらに構成される、保護メモリコントローラと
を備える装置。
(項目2)
上記保護メモリコントローラは、上記保護メモリコントローラが上記一時的モードをサポートすることを示すように設定可能に構成されるレジスタを有する、項目1に記載の装置。
(項目3)
上記モードロジックはヒューズを有し、上記永続的モードへの移行時に、上記一時的モードへの移行を不能にするように上記ヒューズを設定するように構成される、項目1に記載の装置。
(項目4)
上記保護メモリコントローラは、上記一時的モードにおいて上記再プログラム可能認証鍵を格納するように構成された再プログラム可能レジスタと、上記永続的モードにおいて上記ワンタイムプログラム可能認証鍵を格納するように構成されたライトワンスレジスタとを有する、項目1に記載の装置。
(項目5)
上記保護メモリコントローラは、上記一時的モードにおける上記保護メモリに対するライト動作をカウントするように構成されたリセット可能ライトカウンタと、上記永続的モードにおける上記保護メモリに対するライト動作をカウントするように構成されたリセット不能ライトカウンタとを有する、項目1に記載の装置。
(項目6)
上記保護メモリコントローラは、上記一時的モードにおけるリクエストメッセージの一時的モードセットと、上記永続的モードにおけるリクエストメッセージの永続的モードセットとに応答するように構成され、上記保護メモリコントローラが上記永続的モードにある場合に、上記リクエストメッセージの一時的モードセットのリクエストメッセージの受信に応じて、エラー応答メッセージが返される、項目1から5のいずれか一項に記載の装置。
(項目7)
上記保護メモリに向けたメモリ動作が再プログラム可能認証鍵に応じて認証される一時的モードと、上記保護メモリに向けたメモリ動作がワンタイムプログラム可能認証鍵に応じて認証される永続的モードとを含む選択されたモードで上記保護メモリへのアクセスを制御する段階を備える方法。
(項目8)
上記保護メモリコントローラが上記一時的モードをサポートすることを示すようにレジスタを設定する段階をさらに備える、項目7に記載の方法。
(項目9)
上記永続的モードへの移行時に、上記一時的モードへの移行を不能にするようにヒューズを設定する段階をさらに備える、項目7に記載の方法。
(項目10)
上記一時的モードにおいて上記再プログラム可能認証鍵を再プログラム可能レジスタに格納する段階と、上記永続的モードにおいて上記ワンタイムプログラム可能認証鍵をライトワンスレジスタに格納する段階とをさらに備える、項目7に記載の方法。
(項目11)
上記一時的モードにおける上記保護メモリに対するライト動作をカウントするように構成されたリセット可能ライトカウンタをリセットする段階と、上記永続的モードにおける上記保護メモリに対するライト動作を、リセット不能ライトカウンタでカウントする段階と、をさらに備える、項目7に記載の方法。
(項目12)
上記保護メモリコントローラが、上記一時的モードにおけるリクエストメッセージの一時的モードセットに応答する段階と、上記永続的モードにおけるリクエストメッセージの永続的モードセットとに応答する段階と、上記保護メモリコントローラが上記永続的モードにある場合に、上記リクエストメッセージの一時的モードセットのリクエストメッセージの受信に応じて、エラー応答メッセージを返す段階と、をさらに備える、項目7から11のいずれか一項に記載の方法。
(項目13)
データを格納するように構成された保護メモリと、
上記保護メモリに対するアクセスを制御するように構成された保護メモリコントローラであって、上記保護メモリコントローラは、一時的モードと永続的モードとを含む選択されたモードにおいて上記保護メモリに対するアクセスを制御するように構成されたモードロジックを含み、上記保護メモリコントローラは、上記一時的モードにおける再プログラム可能認証鍵に応じて、および上記永続的モードにおけるワンタイムプログラム可能認証鍵に応じて、上記保護メモリに向けたメモリ動作を認証するようにさらに構成される、保護メモリコントローラと、
上記保護メモリに向けたメモリ動作に応じて情報を表示するよう構成されたディスプレイと
を備えるシステム。
(項目14)
上記保護メモリコントローラは、上記保護メモリコントローラが上記一時的モードをサポートすることを示すように設定可能に構成されるレジスタを有する、項目13に記載のシステム。
(項目15)
上記モードロジックはヒューズを有し、上記永続的モードへの移行時に、上記一時的モードへの移行を不能にするように上記ヒューズを設定するように構成される、項目13に記載のシステム。
(項目16)
上記保護メモリコントローラは、上記一時的モードにおいて上記再プログラム可能認証鍵を格納するように構成された再プログラム可能レジスタと、上記永続的モードにおいて上記ワンタイムプログラム可能認証鍵を格納するように構成されたライトワンスレジスタとを有する、項目13に記載のシステム。
(項目17)
上記保護メモリコントローラは、上記一時的モードにおける上記保護メモリに対するライト動作をカウントするように構成されたリセット可能ライトカウンタと、上記永続的モードにおける上記保護メモリに対するライト動作をカウントするように構成されたリセット不能ライトカウンタとを有する、項目13に記載のシステム。
(項目18)
上記保護メモリコントローラは、上記一時的モードにおけるリクエストメッセージの一時的モードセットと、上記永続的モードにおけるリクエストメッセージの永続的モードセットとに応答するように構成され、上記保護メモリコントローラが上記永続的モードにある場合に、上記リクエストメッセージの一時的モードセットのリクエストメッセージの受信に応じて、エラー応答メッセージが返される、項目13から17のいずれか一項に記載のシステム。
【国際調査報告】