(57)【特許請求の範囲】
【請求項１】
プロセッサによってアクセス可能なメインメモリによって書き込みコマンドを受信することであって、前記メインメモリは持続性メモリを備え、前記書き込みコマンドは第１のメモリコントローラを介して受信される、ことと、
前記メインメモリ内に暗号キーを保持することと、
少なくとも前記暗号キーに基づいて前記書き込みコマンドの認証を決定することであって、前記決定することは、前記メインメモリ内に設置された第２のコントローラによって実行され、前記決定することは、
少なくとも前記暗号キーに基づいて生成された暗号署名を前記持続性メモリ内に記憶することと、
その後、少なくとも前記記憶された暗号署名に基づいて前記書き込みコマンドを認証することと、
を含む、ことと、
少なくとも前記書き込みコマンドの前記決定された認証に基づいて、前記メインメモリのコンテンツを改変するかどうかを決定することと、
を含むことを特徴とする方法。
【請求項２】
前記メインメモリは、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）を備えることを特徴とする請求項１に記載の方法。
【請求項３】
電力消失中に、特定のハッシュ値を、前記メインメモリに記憶された対応するメモリオブジェクトに対して保持することを更に含む請求項１に記載の方法。
【請求項４】
前記メインメモリは、相変化メモリ（ＰＣＭ）を備えることを特徴とする請求項１に記載の方法。
【請求項５】
メモリデバイスであって、
持続性メモリを備えたメモリセルアレイと、
前記メモリデバイス内に設置された第１のコントローラと、
を備え、
前記第１のコントローラは、
前記メモリセルアレイにアクセスする書き込みコマンドを第２のメモリコントローラから受信することと、
前記メモリデバイス内に保持される暗号キーを生成することと、
少なくとも前記暗号キーに基づいて前記書き込みコマンドの認証を決定することであって、前記決定することは、前記メモリデバイス内に設置された前記第１のコントローラによって実行され、前記決定することは、
少なくとも前記暗号キーに基づいて生成された暗号署名を前記持続性メモリに記憶することと、
その後、少なくとも前記記憶された暗号署名に基づいて前記書き込みコマンドを認証することと、
を含む、ことと、
少なくとも前記書き込みコマンドの前記決定された認証に基づいて、前記メモリセルアレイのコンテンツを改変するかどうかを決定することと、
を行なう、ことを特徴とするメモリデバイス。
【請求項６】
安全なハッシュアルゴリズム（ＳＨＡ）を実行するための電子コンポーネントを備えるセキュリティブロックを更に備えることを特徴とする請求項５に記載のメモリデバイス。
【請求項７】
前記安全なハッシュアルゴリズムに用いられる前記暗号キーを記憶する特定のメモリ位置を更に備えることを特徴とする請求項６に記載のメモリデバイス。
【請求項８】
安全であり得る前記メモリセルアレイの１つ又はそれ以上の位置を表す情報を記憶する特定のメモリ位置を更に備えることを特徴とする請求項５に記載のメモリデバイス。
【請求項９】
前記メモリセルアレイは、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）を備えることを特徴とする請求項５に記載のメモリデバイス。
【請求項１０】
前記メモリセルアレイは、相変化メモリ（ＰＣＭ）を備えることを特徴とする請求項５に記載のメモリデバイス。
【請求項１１】
メモリデバイスであって、持続性メモリを備えたメモリセルアレイと、前記メモリデバイス内に設置された第１のコントローラと、を備えるメモリデバイスと、
１つ又はそれ以上のプリケーションをホストするとともに、前記メモリセルアレイにアクセスする書き込みコマンドを発行するプロセッサと、
前記書き込みコマンドを受信する第２のメモリコントローラと、
を具備し、
前記第２のメモリコントローラは、前記プロセッサ内に、又は、前記プロセッサと前記メモリデバイスとの間に配置され、
前記第１のコントローラは、
前記メモリセルアレイにアクセスする前記書き込みコマンドを受信することと、
前記メモリデバイス内に保持される１つ又はそれ以上の暗号キーを生成することと、
少なくとも前記１つ又はそれ以上の暗号キーに基づいて前記書き込みコマンドの認証を決定することであって、前記決定することは、前記第１のコントローラによって実行され、前記決定することは、
少なくとも前記１つ又はそれ以上の暗号キーに基づいて生成された暗号署名を前記持続性メモリに記憶することと、
その後、少なくとも前記記憶された暗号署名に基づいて前記書き込みコマンドを認証することと、
を含む、ことと、
少なくとも前記書き込みコマンドの前記決定された認証に基づいて、前記メモリセルアレイのコンテンツを改変するかどうかを決定することと、
を行なうことが可能である、ことを特徴とするシステム。
【請求項１２】
前記メモリデバイスは、安全なハッシュアルゴリズム（ＳＨＡ）を実行するための電子コンポーネントを備えるセキュリティブロックを更に備えることを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記メモリデバイスは、前記安全なハッシュアルゴリズムに用いられる前記１つ又は複数の暗号キーを記憶する特定のメモリ位置を更に備えることを特徴とする請求項１２に記載のシステム。
【請求項１４】
前記メモリセルアレイは、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）を備えることを特徴とする請求項１１に記載のシステム。
【請求項１５】
前記メモリセルアレイは、相変化メモリ（ＰＣＭ）を備えることを特徴とする請求項１１に記載のシステム。
【請求項１６】
前記メモリセルアレイは、安全であり得る前記メモリセルアレイの１つ又は複数の他の位置を表す情報を記憶する特定のメモリ位置を更に備えることを特徴とする請求項１１に記載のシステム。
【請求項１７】
仮想環境を提供するハイパーバイザーを更に備えることを特徴とする請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に開示される主題は、メモリデバイス及びメモリデバイスのセキュリティに関する。
【背景技術】
【０００２】
益々、メモリデバイスは、例えば、金融、医療、及び／又は履歴等の機密情報を記憶するために組み込まれ得る。更に、そのようなメモリデバイスは、実行可能なコード、システムオペレーティングパラメータ、及びその他等のコンピュータシステムを動作するために用いられた情報を記憶してもよい。あいにく、そのような重要情報及び／又は機密情報は、益々精巧なセキュリティ攻撃によって標的にされ得る。例えば、このような攻撃は、財務記録のデータベースの不正な改変（モディファイ，ｍｏｄｉｆｙ）、読み込み、及び／又は、ダウンロードを含むことがあり、識別性盗難をもたらす場合がある。
【０００３】
セキュリティ技術は、例えば、メモリコンテンツが署名確認（ｖａｌｉｄａｔｉｏｎ）処理を通過することなく改変され、及び／又は読み出されることを防ぐために、メモリデバイスの動作を認証する技術を含んでもよい。
【発明の概要】
【０００４】
非限定的かつ非網羅的な実施形態について、以下に図を参照して記載する。特に明示がない限り、類似の番号は様々な図を通して類似の部分を示す。
【図面の簡単な説明】
【０００５】
【図１】図１は、実施形態に係るシステム構成を概略的に示す図である。
【図２】図２は、実施形態に係るプロセッサ‐メモリシステムを概略的に示す図である。
【図３】図３は、他の実施形態に係るプロセッサ‐メモリシステムを概略的に示す図である。
【図４】図４は、実施形態に係る、メインメモリの認証部分の処理を説明するために概略的に示す図である。
【図５】図５は、実施形態に係る、メインメモリの書き込みコマンドを認証する処理のフローチャートである。
【図６】図６は、安全なメモリ測定（ｍｅａｓｕｒｅ）コマンドを実行する処理のフローチャートである。
【図７】図７は、実施形態に係る、コンピュータシステム及びメモリデバイスの概要を示す図である。
【発明を実施するための形態】
【０００６】
本明細書全体を通して、「一実施形態」又は「実施形態」を参照することは、特別な特色、構造、特徴が、請求項に記載された主題の少なくとも一実施形態に含まれることを意味する。それゆえ、本明細書を通して様々な箇所における「一実施形態において」又は「実施形態」という語句の出現は、必ずしも全てが同一の実施形態を参照しているものではない。更に、特定の特色、構造、又は特徴は、１つ又は複数の実施形態において組み合わされてもよい。
【０００７】
本明細書に開示された実施形態は、持続性（ｐｅｒｓｉｓｔｅｎｔ）メモリを備えるメインメモリを含んでもよい。例えば、持続性メモリは、相変化メモリ（ＰＣＭ）、ＮＯＲフラッシュ、及びＮＡＮＤフラッシュ等の不揮発性メモリを備えてもよい。従って、持続性メインメモリは、不揮発性メモリを含むメモリアレイを備えてもよい。一実装において、持続性メインメモリは、以下に記載するように、一部分が１つ又は複数のタイプの不揮発性メモリから構成されるとともに、他の部分は揮発性メモリから構成されるメモリアレイを含んでもよい。他の実装において、持続性メインメモリは、不揮発性メモリのみから構成されるメモリアレイを含んでもよいが、請求項の主題はそのように限定されるものではない。ここで、メインメモリとは、処理エンティティによって実行可能な１つ又は複数のアプリケーションを保持する処理エンティティによって用いられ得るメモリを指すが、請求項の主題はこの点に限定されるものではない。実装において、メインメモリの特定部分は、例えば、このような特定部分を直接アドレスすることにより、処理エンティティ（主体）によってアクセスされてもよい。直接アドレスすることは、処理エンティティがメモリの特定位置を読み出すアドレスを出してもよく、特定位置が続いて読み出される。対照的に、間接的にメモリにアドレスすることは、処理エンティティが、メモリの特定位置を読み出すアドレスを出し得る入力／出力（Ｉ／Ｏ）デバイスを伴う処理を含んでもよい。この場合、Ｉ／Ｏデバイスは、その特定位置にある（読み出し）データを提供することによって応答してもよい。例えば、基本入力／出力システム［バイオス（ＢＩＯＳ）］ソフトウェアは、処理エンティティによって直接アドレスすることによりアクセス可能ではない不揮発性メモリ、リード・オンリ・メモリ（ＲＯＭ）、及び／又はフラッシュメモリ上に記憶されてもよい。
【０００８】
実施形態において、メモリシステムを動作する方法は、プロセッサのメインメモリにロードされた対象のセキュリティをチェックする技術を含んでもよい。このような対象は、例えば、メインメモリに書き込まれる書き込みコマンド及び／又は書き込みコマンドに関連した情報を含んでもよい。対象のセキュリティをチェックするこのような技術は、メモリデバイス内の認証された動作を実行する機能を持つメモリデバイスを含んでもよい。例えば、セキュリティ署名を確認する処理は、メモリデバイスのコンテンツが改変（モディファイ，ｍｏｄｉｆｙ）される前に実行されてもよい。対象のセキュリティをチェックすることは、安全なハッシュアルゴリズム（ＳＨＡ）測定及び／又は他の暗号測定（ｍｅａｓｕｒｅｍｅｎｔ）を実行することを含んでもよい。このような測定は、比較的時間を消費する可能性があるが、本明細書に開示される実施形態は、このような暗号測定を実行する効率を改良する方法及び／又はメモリデバイスを含む。例えば、効率は、このような暗号測定を実行するのに掛かる時間を減少させること、及び／又はプロセッサメモリ上に置かれた動作要求を減少させることによって改良されてもよい。例えば、メインメモリが持続性メモリを備える場合、このような測定が不揮発性メモリに記憶される間、暗号測定は比較的頻繁に実行されない可能性がある。
【０００９】
実施形態において、中央処理装置（ＣＰＵ）等の処理エンティティを備えるシステムは、持続性メインメモリを含んでもよい。例えば、持続性メインメモリは、ＣＰＵによって用いられるメインメモリ及び／又はキャッシュメモリの少なくとも一部を備えてもよい。このようなシステムは、いくつか例を挙げると、例えば、コンピュータ、携帯電話、ＰＤＡ、データロガー、及びナビゲーション装置等の多数の環境において、アプリケーションを実行するコンピュータシステムを備えてもよい。実装において、このようなシステムは、例えば、ハイパーバイザー等の仮想化のためのリソースマネージャーを含んでもよい。いくつかの実施例において、メインメモリ及び／又はキャッシュメモリは、持続性メモリの一部及び他のタイプのランダムアクセスメモリ（ＲＡＭ）の一部を備えてもよい。特定の実施例において、メインメモリは、少なくともＰＣＭ及びダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）の一部を含んでもよい。このようなメモリ構成は、例えば、不揮発性の比較的高いプログラム／読み出し速度、及び／又は長くなったＰＣＭ使用期間等の利益を提供する。
【００１０】
一実装において、持続性メインメモリは、他の事柄もある中で、持続性メインメモリに記憶されたコンテンツのセキュリティ保護に関係する情報を再決定する必要を避ける利益を提供してもよい。このような情報は、以下に記載するように、例えば、ＳＨＡ測定、暗号キー、及び／又は、署名、その他を含んでもよい。他の実装において、持続性メインメモリは、以下に詳細に記載するように、外部不揮発性メモリから揮発性ＤＲＡＭにそのようなセキュリティ情報をリロードする必要を避ける利益を更に提供してもよい。そうでなければ、このようなセキュリティ情報を再決定すること及び／又はリロードすることは、セキュリティ情報が、例えば、持続性メモリに保持されない場合、プロセッサのリブート処理中に生じてもよい。従って、改良されたセキュリティ保護は、持続性メインメモリによって提供された多数の利点に含まれる。勿論、ＰＣＭ又は他の持続性メモリをメインメモリとして含む実施形態のこのような特色及び詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
【００１１】
コンピュータシステムの実施形態において、プロセッサは、持続性メインメモリに情報を書き込んでもよい。しかしながら、持続性メインメモリに書き込まれることが許可される前に、このような情報が認証されていない部分を含むかについてこのような情報が分析されてもよい。例えば、コンピュータウィルス、マルウェア、及びその他等のこのような認証されていない情報部分は、持続性メインメモリに既に記憶された情報の保全に対して有害である虞がある。従って、情報が認証されていない部分を含むか決定する分析は、セキュリティチェック処理を必要としてもよい。例えば、セキュリティチェック処理は、このような情報が持続性メインメモリにロードされる前に、情報のＳＨＡ測定及び／又は他の暗号セキュリティ測定（例えば、いくつか例を挙げると、ＭＤ５、ＳＨＡ−１、ＳＨＡ−２５６）を実行することを含んでもよい。このような情報が認証されていない部分を含んでいないと決定される場合、このような情報は、メインメモリＲＡＭにロードされるように許可されてもよい。このような情報が、認証されていない部分を含むと決定される場合、このような情報はメインメモリＲＡＭにロードされることが許可されなくてもよい。セキュリティチェック処理は、比較的時間が掛かり得る。持続性メインメモリを伴う実装において、このようなセキュリティチェック処理は、例えば、コンピュータシステムのリブート時で、又は、ユーザー特権からスーパーバイザー／安全な特権までのプロセッサジャンプに実行される必要はない。特に、セキュリティチェック処理に用いられたＳＨＡ測定及び／又は他の暗号測定等のセキュリティ情報は、持続性メインメモリに記憶されてもよい。プロセッサ及び／又は持続性メインメモリは、電力消失又は他の破壊的事象を経験する場合、このような測定は、持続性メインメモリから失なわれる必要はない。従って、このような測定及び／又は関連したセキュリティ情報が、次の再初期化（例えば、リブート）に続いて、又はユーザー特権からスーパーバイザー／安全な特権までのプロセッサジャンプ時に利用可能であってもよい。
【００１２】
実施形態において、メモリシステムを動作する方法は、プロセッサによってアクセス可能なメインメモリに書き込みコマンドを受信することと、メインメモリ内で書き込みコマンドの認証を決定することとを含んでもよい。すなわち、書き込みコマンド及び／又は書き込みコマンドに関連した情報は、以下に詳細に記載されるように、メインメモリ内に置かれた１つ又は複数の電子コンポーネントによって実行されてもよい。例えば、メインメモリ内の位置は、単一チップ内の位置、ダイ上の位置、積層チップ内の位置、及び／又はＩＣパッケージ内の位置を含んでもよい。実装において、「メインメモリ内」とは、例えば、メインメモリとコントローラへの外部インターフェースを持つ認証ロジックとを含む物理的境界内を意味してもよい。
【００１３】
メインメモリは持続性メモリを備えてもよいが、このようなメインメモリは、不揮発性メモリを備える必要はない。例えば、このようなメインメモリはＤＲＡＭ又は他の揮発性メモリを備えてもよい。特定の実装において、メモリシステムを動作する方法は、メインメモリ内で、書き込みコマンド及び／又は書き込みコマンドに関連した情報の決定された認証の少なくとも一部に基づいて、メインメモリのコンテンツを改変するかどうかを決定することを含んでもよい。例えば、メインメモリは、メインメモリを１つ又は複数のプロセッサへ動作的に接続するシステムバスから書き込みコマンドを受信してもよい。このような書き込みコマンドは、メインメモリ又はメインメモリの一部を改変するように認証されないと決定されるか、又そうでなければ、非認証と決定される場合、書き込みコマンドはメインメモリによって無視されてもよい。勿論、メモリシステムを動作する方法のこのような詳細は単に例示であって、請求項の主題はこの点に限定されるものではない。
【００１４】
実施形態において、メモリデバイスは、メモリセルアレイ及びメモリデバイス内に配置されたコントローラを備えてもよい。このようなコントローラメモリセルアレイにアクセスする書き込みコマンドを受信するとき、コントローラは書き込みコマンドの認証を決定してもよい。メモリセルアレイは、持続性メモリを備えてもよいが、このようなメモリセルアレイは、持続性メモリを備える必要はない。例えば、このようなアレイは、ＤＲＡＭ又は他の揮発性メモリを備えてもよい。特定の実装において、コントローラは、書き込みコマンド及び／又は書き込みコマンドに関連した情報の決定された認証の少なくとも一部に基づいて、メモリセルアレイのコンテンツを改変するかどうかを更に決定してもよい。例えば、コントローラは、コントローラを含むメモリデバイスを１つ又は複数のプロセッサへ動作的に接続するバスから書き込みコマンドを受信してもよい。このような書き込みコマンドがメモリデバイス又はメモリデバイスの一部を改変するように認証的であるか、又あるいは認証されていると決定される場合、コントローラは、書き込みコマンドを実行してもよい。持続性メインメモリを含む実施形態において、このようなメモリデバイスは、例えば、書き込みコマンドの認証に関連した情報、及び／又は、メインメモリ及び／又はプロセッサの電力消失中の書き込みコマンドに関連した情報を保持すること等の利益を提供してもよい。このような場合、例えば、書き込みコマンドが同じプロセッサからのものであるとき、認証に関連した暗号測定が繰り返される必要はない。勿論、メモリデバイスのこのような詳細は単に例示であって、請求項の主題はこの点に限定されるものではない。
【００１５】
図１は、実施形態に掛かる処理システム１００を概略的に示す図である。処理システム１００はＣＰＵ１１０、メインメモリ１２０、及び／又はキャッシュ１３０を備えてもよい。特に、ＣＰＵ１１０は、メインメモリ１２０に保持された１つ又は複数のアプリケーションをホストしてもよい。図１には示していないが、処理システム１００は、追加のＣＰＵ又は他のこのような処理エンティティ、追加のメインメモリ、及び／又は追加のキャッシュを備えてもよい。例えば、ＣＰＵ１１０、メインメモリ１２０、及び／又はキャッシュ１３０は、集約的に大きなマルチプロセッサシステムのブロックを構築することを含んでもよい。一実装において、処理システム１００は、１つ又は複数のレベルのキャッシュメモリを含むメモリ階層を用いて動作してもよい。任意のこのようなレベルは、複数のＣＰＵに共有された持続性メモリを備えてもよい。例えば、キャッシュメモリは、どちらも少なくとも一部が持続性メモリを備え得る第１のレベルのキャッシュ及び第２のレベルのキャッシュを備えてもよい。他の実装において、処理システム１００は、複数のオペレーティングシステムを同時に走らせるようにする（例えば、ハードウェア仮想化）リソースマネージャーを含んでもよい。このようなリソースマネージャーは、例えば、ハイパーバイザーを備えてもよい。勿論、処理システム及びキャッシュメモリのこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。実施形態において、メインメモリ１１０の少なくとも一部は、持続性メモリを備えてもよい。特定の実装において、メインメモリ１１０の他の部分は、揮発性ＤＲＡＭ等の他のタイプのメモリを備えてもよい。持続性メモリの一部は、例えば、１つ又は複数のダイ構造を備え得るメインメモリ２１０に連続して配列される必要はない。
【００１６】
図２は、実施形態に係るプロセッサ‐メモリシステム２００の概観を示す図である。このようなプロセッサ‐メモリシステム２００は、例えば、携帯情報端末（ＰＤＡ）、携帯電話機、コンピュータデバイス、及び／又は、他の電子でバイアス等のホストデバイス（図示せず）に含まれてもよい。ホストプロセッサ２１０は、メモリコントローラ２１２を経由してメインメモリ２２０に通信可能に接続されてもよい。実装において、メモリコントローラ２１２は、例えば、メインメモリ２２０を備えるＩＣ又はＩＣパッケージの外部の単一のダイ又はＩＣパッケージ等上のメインメモリ２２０の外部に配置されてもよい。例えば、ホストプロセッサ２１０は、メインメモリ２２０に情報を書き込むように、又はメインメモリ２２０から情報を読み出すように、メインメモリ２２０にアクセスしてもよい。一実装において、プロセッサ‐メモリシステム２００の外部にある外部エンティティ２０５は、ホストプロセッサ２１０に通信可能に接続されてもよい。特定の実装において、外部エンティティ２０５は、例えば、ホストプロセッサ２１０にワイヤレスに通信してもよい。外部エンティティ２０５は、インターネットを介して、アクセス可能なサーバー又は類似のコンピュータデバイス、又は、例えば、フラッシュメモリ、光学コンピュータディスク、又は類似物等のメモリデバイスを備えてもよい。外部エンティティ２０５はまた、電子メールアプリケーション等の実行可能なコードを備えてもよい。ホストプロセッサ２１０及び外部エンティティ２０５は、互いに独立して、かつ／又は、異なる時間に、メインメモリ２２０と通信してもよいが、請求項の主題はそのように限定されるものではない。更に以下に詳細に説明されるように、外部エンティティ２０５は、メインメモリ２２０にアクセスするように試みる認証されていないコマンドを備え得るコンピュータウィルス、マルウェア、その他のソースであってもよいが、請求項の主題はこの点に限定されるものではない。例えば、外部エンティティ２０５は、トロイの木馬のソースであり得るインターネット上のウェブサイトのサーバーを備えてもよい。他の実施例において、外部エンティティ２０５は、コンピュータウィルスを含む電子メールを予期せずに開くように用いられ得る電子メールアプリケーションを備えてもよい。更に他の実施例において、外部エンティティ２０５は、コンピュータウィルスを疑いなしで記憶し得る携帯型フラッシュメモリデバイスを備えてもよい。このような場合、トロイの木馬、コンピュータウィルス、及び／又は、他のマルウェアの存在は、メインメモリ２２０にアクセスすることが認証されていない試みに終わってもよい。
【００１７】
メインメモリ２２０は、メモリアレイ２６０、マイクロコントローラ２１５、及び／又は、セキュリティ部分２４０を備えてもよい。一実装において、メモリアレイ２６０は、データが書き込まれ得る、及び／又は、データが読み出され得るアドレス可能なメモリセルアレイを備えてもよい。メモリアレイ２６０は、例えば、セキュリティ部分２４０によって与えられたセキュリティ情報を保持することに留保され得るサブ部分等の１つ又は複数の部分２７０に分割されてもよい。一実装において、サブ部分２７０は、暗号ハッシュ値、署名、キー、及び類似のもの等のセキュリティ情報を記憶してもよい。サブ部分２７０の特定のメモリ位置は、例えば、メモリアレイ２６０の特定のメモリ位置に記憶された情報に対応するこのようなセキュリティ情報を保持するように用いられてもよい。例えば、受信された書き込みコマンドを認証するために用いられ得るこのような暗号ハッシュ値、署名、キー、及び類似のものの決定は、例えば、メインメモリ２２０内で実行されてもよい。メモリアレイ２６０は、単にいくつか例を挙げると、フラッシュメモリ、ＰＣＭ、及び／又は、他の持続性メモリを備えてもよい。他の実施形態において、メモリアレイ２６０は、例えば、ＤＲＡＭ等の揮発性メモリ、又は、持続性メモリ及び揮発性メモリの組み合わせを備えてもよい。
【００１８】
セキュリティ部分２４０は、論理回路要素、及び／又は、メインメモリ２６０内に保持された実行可能なコードを備えてもよい。セキュリティ部分２４０は、ホストプロセッサ２１０及び／又は外部エンティティ２０５から受信されたコマンドを認証してもよく、及び／又は、確認してもよい。このような認証は、例えば、セキュリティキーを用いる技術を伴ってもよい。一実装において、マイクロコントローラ２１５は、ホストプロセッサ２１０からの書き込みコマンドを（例えば、メモリコントローラ２１２を介して）受信してもよく、かつ、続いてこのような受信された書き込みコマンドを認証及び／又は確認するために、セキュリティ部分２４０を呼び出してもよい。このような認証において、マイクロコントローラ２１５は、例えば、適切なメモリアドレシングを用いてメモリアレイ２６０にアクセスすることを許可してもよい。一実装において、マイクロコントローラ２１５は、セキュリティ部分２４０からのセキュリティ情報を取り出してもよく、かつ、メモリアレイ２６０にそのような情報を記憶してもよい。特に、上に説明されたように、セキュリティ情報は、セキュリティ情報を記憶するために留保されたメモリアレイ２６０の一部を備え得るサブ部分２７０に記憶されてもよい。勿論、プロセッサ‐メモリシステム２００のこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
【００１９】
図３は、実施形態に係るプロセッサ‐メモリシステム３００を概略的に示すブロック図である。このようなプロセッサ‐メモリシステムは、任意の数の処理エンティティを含んでもよいが、そのようなエンティティは１つだけ図３に示されている。特定の実施例において、このような処理エンティティＣＰＵ３１０を備えてもよい。一実装において、ＣＰＵ３１０は、例えば、組み込まれた持続性メモリを備えるローカルメモリ（図示せず）を含んでもよい。他の実装において、ＣＰＵ３１０は、持続性メモリを含むメインメモリ３２０にアクセスしてもよい。特に、持続性メモリは、キャッシュ（例えば、様々なレベルのキャッシュ）及びメインメモリを備えるメモリ階層に含まれてもよい。このようなメインメモリの少なくとも一部は、例えば、ＰＣＭを備えてもよい。このようなメモリ階層は、キャッシュ及びメインメモリを備える分散メモリを管理するように用いられてもよい。ＣＰＵ３１０（及び、例えば、コンピュータプラットフォームに存在し得る他のＣＰＵは、このような分散メモリを共有してもよい。単にいくつか例を挙げると、フラッシュメモリ、ハードドライブ、及び、光学コンピュータディスクを備え得る外部メモリ３３０は、ＣＰＵ３１０を介してメインメモリ３２０に通信可能に接続されてもよい。ここで、ＣＰＵ３１０は、外部メモリ３３０からメインメモリ３２０に情報を転送するようにメインメモリ２１０に書き込みコマンドを送信してもよい。残念なことに、いくつかの場合において、このような情報は、例えば、コンピュータウィルス、トロイの木馬、及び他のマルウェア等の認証されていない、恐らく悪意のあるコードを備え得る。上で言及されたように、図２を参照すると、外部エンティティは、このような認証されていないコードの他のソースを備えてもよい。本明細書に記載されたように、しかしながら、メインメモリ３２０は、このような認証されていない情報をメインメモリ３２０に書き込むことを避ける技術を実装することが可能であってもよい。
【００２０】
一実装において、プロセッサ‐メモリシステム３００は、コンピュータプラットフォームの一部を備えてもよい。このような実装において、ＣＰＵ３１０は、メインメモリ３２０の１つ又は複数の個々のページを順番に指定し得る特定のページテーブルを指定し得るトランスレーション・ルックアサイド・バッファ（ＴＬＢ）を備えるキャッシュメモリ（図示せず）を備えてもよい。メインメモリ３２０が、例えばＤＲＡＭ等の揮発性メモリを備える実施形態において、ＣＰＵ３１０及び／又はメインメモリ３２０への電力が中断される、及び／又は、中止される場合、メインメモリ３２０のメモリコンテンツは消失し得る。他方で、メインメモリ３２０が、例えばＰＣＭ等の持続性メモリを備える実施形態において、ＣＰＵ及び／又はメインメモリが、中断された電源、及び／又は中止された電源を経験する場合でさえ、メインメモリ３２０のメモリコンテンツは保持されてもよい。このような場合、例えばページ３７０等のメインメモリ３２０の一部に保持されたセキュリティ情報は、消失される必要はなく、以下に詳細に議論するように、続く認証処理に利用可能であってもよい。勿論、プロセッサシステムのこのような詳細は単に例示であって、請求項の主題はそのように限定される必要はない。
【００２１】
実施形態において、メインメモリ３２０は、メモリアレイ３６０、メモリコントローラ３１５、及び、セキュリティ部分３４０を備えてもよい。メモリアレイ３６０は、例えば、ページ３６８及びページ３７０を含むページ等の１つ又は複数の部分を備えてもよい。特定の実装において、ページ３７０は、以下に詳細に記載されるように、セキュリティ情報の少なくとも一部が記憶され得るメモリ位置を備えてもよい。セキュリティ部分３４０は、セキュリティ論理ブロック３４６、暗号キー記憶装置３４４、及び、メモリ範囲識別子３４２を含んでもよい。例えば、セキュリティ論理ブロック３４６は、ＳＨＡ論理ブロック等の任意の多数の公知の暗号論理ブロックを備えてもよい。暗号キー記憶装置３４４は、情報を認証する処理のために用いた１つ又は複数のキーを記憶するレジスタ又はメモリアレイ３６０の他のメモリ部分を備えてもよい。従って、このようなキーは、メインメモリ３２０の内部の情報を備えてもよい。更に、このようなキーは、一度供給されたメインメモリ３２０に対して非公開であってもよい。暗号キー記憶装置３４４は、ユーザー、及び／又は、プロセッサ‐メモリシステム３００の外部の電子エンティティに対して秘密を守り得る値であるキーを保持するために持続性メモリを備えてもよい。一実装において、プロセッサ２１０（図２）は、このようなキーを知る必要はない。このような場合、外部の処理又は外部のプロセッサは、ローカルプロセッサがコマンドを通過してもよく、かつ、キーを知らなくてもよいように、例えば、書き込み動作を管理していてもよい。ローカルプロセッサ２１０が安全な領域を更新している場合、ローカルプロセッサ２１０は、キーを知ってもよい。しかしながら、ローカルプロセッサが、ローカルメモリキーを知ることは比較的安全性が低い。外部の権限がキーを知るとともにコマンドを生成するほうが、安全性は高い。他の実装において、プロセッサ２１０は、キーを知ってもよい。このような場合、例えば、ハッカー又は潜在的なセキュリティ違反の他のエンティティがプロセッサ２１０へのアクセスを得ると、そのようなハッカー又は他のエンティティは、キーを取得し得るとともに、メモリに書き込んでもよい。セキュリティ論理ブロック３４６は、以下に詳細に議論されるように、暗号キー記憶装置３４４に保持されたキーを利用してもよい。メモリ範囲識別子３４２は、レジスタ、又は、メモリアレイ３６０の他のメモリ部分を備えてもよい。メモリ範囲識別子３４２は、セキュリティ保護されるメモリアレイ３６０の１つ又は複数の部分を記述する、及び／又は、識別する情報を保持する持続性メモリを備えてもよい。例えば、メモリ範囲識別子３４２は、認証処理を実行することなしに書き込まれることはないページ範囲を記述する情報を記憶しているレジスタを備えてもよい。
【００２２】
実装において、メモリコントローラ３１５は、メインメモリ３２０の安全な部分に書き込むために用いられ得る安全な書き込みコマンドを認識するように構成されてもよい。メモリコントローラ３１５はまた、以下に議論されるように、メモリコンテンツの少なくとも一部の認証を再測定及び／又は再確認するために、プロセッサによって用いられ得るメモリ測定コマンドを認識するように構成されてもよい。
【００２３】
メインメモリ３２０は、メインメモリで受信された書き込みコマンドを確かめてもよい。メインメモリ３２０は、このようなメモリコンテンツが、有効かつ完全に保護され続け得るように、メインメモリ３２０のコンテンツに対する認証されない改変を防いでもよい。メインメモリ３２０が持続性メモリを備える場合、書き込みコマンドの認証を決定するのに伴う１つ又は複数の処理は、プロセッサ‐メモリシステム３００の再初期化において繰り返される必要はない。例えば、一度、データオブジェクトが、安全な書き込みコマンドを用いて持続性メインメモリに書き込まれると、そのメモリオブジェクトは、上書きされるまで、安全かつ完全に保護され得る。
【００２４】
図４は、実施形態に係る、プロセッサ‐メモリシステム４００に生じ得る処理を概略的に示す図である。プロセッサ‐メモリシステム４００は、プロセッサ‐メモリシステム４００が持続性メインメモリ４２０を含み得ることを除いて、上記のプロセッサ‐メモリシステム３００と同様であってもよい。持続性メインメモリ４２０は、例えば、図３に示したようなＣＰＵ３１０と同様であり得るＣＰＵ４１０によってアクセス可能であってもよい。実施形態において、メインメモリ４２０は、メモリアレイ４６０、メモリコントローラ４１５、及び、セキュリティ部分４４０を備えてもよい。メモリアレイ４６０は、例えば、ページ４６８及びページ４７０を含むページ等の１つ又は複数の部分を備えてもよい。特定の実装において、ページ４７０は、以下に詳細に記載されるように、セキュリティ情報の少なくとも一部が記憶され得るメモリ位置を備えてもよい。セキュリティ部分４４０は、上記のセキュリティ論理ブロック３４６、暗号キー記憶装置３４４、及び、メモリ範囲識別子３４２と同様であり得るセキュリティ論理ブロック４４６、暗号キー記憶装置４４４、及び、メモリ範囲識別子４４２を含んでもよい。
【００２５】
特定の実装において、かつ、以下の記載において、持続性メインメモリ４２０は、ページを備えてもよいが、請求項の主題はそのように限定されるものではない。例えば、持続性メインメモリ４２０は、ページ４７０及びページ４６８を含む複数のページを備えてもよい。特に、ページ４７０は、持続性メインメモリ４２０の特定の個々のページに対応する暗号ハッシュ値を備え得るインデックステーブルを含んでもよい。実装において、このようなインデックステーブルは、例えば、メモリコントローラ４１５にメモリオブジェクトを再確認する処理を実行させるように、持続性メインメモリ４２０の特定のページに置かれてもよい。このような再確認処理は、ＣＰＵ４１０によるリクエスト上で実行されてもよく、ＣＰＵ４１０は持続性メインメモリ４２０にメモリ測定コマンドを送信してもよい。例えば、ページ４７０は、ページ４６８に対応するハッシュ値４７２、ページ４６６に対応するハッシュ値４７４、ページ４６９に対応するハッシュ値４７６等を含んでもよい。このようなハッシュ値は、より早いエポック中に計算されてもよく、例えば、パワーダウン中にでさえ持続性メインメモリ４２０に保持されている。再確認処理の実施例は、ページ４７０からページ４６６，４６８及び４６９に延びる縦方向の矢印によって図４に示されている。図４は、ハッシュ値等の暗号情報がページ４７０に記憶され得ること示すが、請求項の主題はこのような相対的位置関係に限定されるものではない。例えば、ハッシュ値は、ページ４６８又は他のページに置かれていてもよい。勿論、持続性メインメモリのこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
【００２６】
図５は、安全な書き込みコマンドを認証する処理５００を示すフローチャート図である。このような処理は、上記のように、例えば、プロセッサ‐メモリシステム３００又は４００によって実行されてもよい。ブロック５１０において、上記のような暗号値を備える秘密キーは、メインメモリの１つ又は複数の部分に記憶されてもよい。例えば、このような秘密キーは、図３に示した暗号キー記憶装置３４４に記憶されてもよい。メインメモリ内にこのような秘密キーを保持することは、秘密キーがメインメモリの外部に記憶されている場合と比較して、メモリコンテンツのセキュリティを改善する利益を提供し得る。例えば、一実装において、このような秘密キーは、改変されなくてもよく、知られているソースからの認証論理に利用可能であってもよい。他の実装において、このような秘密キーは、秘密キーを更新する安全なプロトコルがある場合において改変されてもよい。ブロック５２０において、メインメモリは、安全な書き込みコマンドを受信してもよい。実装において、このようなコマンドは、例えば、メインメモリの外部にあるプロセッサ又はメモリコントローラからバスを介して受信されてもよい。ブロック５３０において、メインメモリ内のメモリコントローラは、受信された安全な書き込みコマンドを認証する処理を実行してもよい。例えば、メインメモリ内のこのようなメモリコントローラは、図３に示したメモリコントローラ３１５と類似のものであってもよい。実施形態において、受信された安全な書き込みコマンドを認証するこのような処理は、安全な書き込みコマンド及び／又は安全な書き込みコマンドに関連する情報にＳＨＡエンジンを適用することを含んでもよい。一実装において、マイクロコントローラは、このようなＳＨＡエンジンを適用するために用いられるが、請求項の主題はそのように限定されるものではない。メインメモリ内に記憶された秘密キーはまた、ＳＨＡエンジンによって実行された動作に含まれてもよい。一実装において、図３に示した安全な論理ブロック３４６は、このようなＳＨＡエンジンの動作を実行するマイクロコントローラ及び／又はソフトウェアを備えてもよいが、請求項の主題はそのように限定されるものではない。従って、ＳＨＡエンジンは、例えば、ハッシュ値等の暗号署名を生成してもよい。その間に、ブロック５４０において、このようなハッシュ値は、例えば、ハッシュ値のインデックスを備えるページ４７０等メインメモリの一部に記憶されてもよい。ひし形５５０において、メモリコントローラ３１５は、安全な書き込みコマンドが信頼できるものであるか否かを決定してもよい。もしそうでなければ、処理５００は、書き込みコマンドが無視されるブロック５５５に進んでもよい。このような場合、例えば、保護されたメインメモリに記憶されたコンテンツは、改変されなくてもよい。メモリコントローラ３１５が、安全な書き込みコマンドが信頼できるものであるかを決定する場合、処理５００は、書き込みコマンドがメインメモリに記憶されたコンテンツを改変するように実行され得るブロック５６０に進んでもよい。勿論、処理５００のこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
【００２７】
図６は、安全なメモリ測定コマンドを実行する処理６００を示すフローチャート図である。このような処理は、例えば、上記のプロセッサ‐メモリシステム３００又は４００によって実行されてもよい。ブロック６１０において、上記のような前の暗号計算の取得を含むハッシュ値は、メインメモリの１つ又は複数の部分に記憶されてもよい。例えば、このようなハッシュ値は、図４に示したメインメモリ４２０の特定のページに対応するこのようなハッシュ値のインデックスを含むページ４７０に記憶されてもよい。メインメモリ内のこのようなハッシュ値を保持することは、メインメモリに記憶されたオブジェクトを再認証する効率（例えば、速度）を改良する利益を提供し得る。ブロック６２０において、メインメモリは、安全なメモリ測定コマンドを受信してもよい。実装において、このように安全なメモリ測定コマンドは、例えば、メインメモリ外部のプロセッサ又はメモリコントローラからバスを介して受信されてもよい。ひし形６３０において、メインメモリ内のメモリコントローラは、安全なメモリ測定コマンドによって指定された特定のオブジェクトに対応するハッシュ値がメインメモリに既に記憶されているか否かを決定してもよい。例えば、上で言及したように、メモリコントローラは、図４に示したメインメモリ４２０のページ４７０内のハッシュ値のインデックスを検索してもよい。このようなハッシュ値が既に記憶されている場合、処理６００は、既に記憶されたハッシュ値がメインメモリ内に記憶されるとともに安全なメモリ測定コマンドに指定されたオブジェクトを再認証するために用いられ得るブロック６４０に進んでもよい。他方で、このようなハッシュ値が利用可能でない場合、処理６００は、エラー返送が生成され得るブロック６３５に進んでもよい。勿論、処理６００のこのような詳細は単に例示であって、請求項の主題はそのように限定されるものではない。
【００２８】
図７は、メモリデバイス７１０を含むコンピュータシステム７００の実施形態例を概略的に示す図である。コンピュータデバイス７０４は、メモリデバイス７１０を管理するように構成可能な任意のデバイス、装置、又は機械を表すものとすることができる。メモリデバイス７１０は、マイクロコントローラ７１５及びメモリ７２２を含んでもよい。一実装において、マイクロコントローラ７１５は、メモリ７２２内に物理的に置かれてもよい。例示であって限定されるものではないが、コンピュータデバイス７０４は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、サーバデバイス等の１つ又は複数のコンピュータデバイス及び／又はプラットフォームと、例えば、携帯情報端末（ＰＤＡ）、モバイル通信デバイス等の１つ又は複数のパーソナルコンピュータデバイスもしくは装置又は１つ又は複数の通信デバイスもしくは装置と、例えば、データベース又はデータ記憶サービスプロバイダ／システムのようなコンピュータシステム及び／又は関連サービスプロバイダ性能とを含み、かつ／又はこれらの任意の組み合わせを含んでもよい。
【００２９】
一実施形態において、コンピュータデバイス７０４は、バス７４０と、ホスト又はメモリコントローラ７１２とを通してメモリ７２２に動作可能に結合された１つ又は複数の処理ユニット７２０を備えてもよい。処理ユニット７２０は、データ計算手順又はデータ計算処理の少なくとも一部を実行するように構成可能な１つ又は複数の回路を表す。例示であって限定されるものではないが、処理ユニット７２０は、複数１つ又は複数のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路、デジタル信号プロセッサ、プログラマブル論理デバイス、フィールド・プログラマブル・ゲートアレイ等を含んでもよく、あるいは、これらの任意の組み合わせを含んでもよい。処理ユニット７２０は、例えば、上で議論したメモリパーティション処理と、読み出し、書き込み、及び／又は消去等のメモリ関連動作とを処理するように、メモリコントローラ７１５と通信してもよい。処理ユニット７２０は、メモリコントローラ７１５と通信するように適合されたオペレーティングシステムを含んでもよい。このようなオペレーティングシステムは、例えば、バス７４０上でメモリコントローラ７１５に送信されるコマンドを生成することができる。このようなコマンドは、例えば、読み出し／書き込みコマンドを含んでもよい。一実装において、ハイパーバイザーは、１つ又は複数の追加のオペレーティングシステムを同時に走らせてもよい。例えば、このようなハイパーバイザーは、仮想環境を許すリソース（例えば、メモリ７２２、処理ユニット７２０、及び、入力／出力７３２）マネージャーを備えてもよい。
【００３０】
メモリ７２２は、任意のデータストレージ機構を表す。メモリ７２２は、例えば、ＤＲＡＭ７２４及び／又は持続性メモリ７２６を含んでもよい。特定の実施形態において、メモリ７２２は、上に記載したように、持続性メモリの少なくとも一部を含むメインメモリから構成されてもよい。メモリ７２２はまた、持続性メモリの少なくとも一部を同様に含むことのあるキャッシュメモリから構成されてもよい。この例示は処理ユニット７２０から離れて説明したが、ＤＲＡＭ７２４の全部又は一部は処理ユニット７２０内に備えられていてもよく、あるいは処理ユニット７２０と同じ場所に設置されているか、又は処理ユニット７２０に結合されてもよいと理解されるべきである。
【００３１】
一実施形態によれば、メモリ７２２の１つ又は複数の部分は、メモリ７２２の特定の状態によって表わされるデータ及び／又は情報を表す信号を記憶してもよい。例えば、データ及び／又は情報を表す電子信号は、データ及び／又は情報をバイナリ情報（例えば、１及び０）として表すように、メモリ７２２のこうした部分の状態に影響を与えるか、又は、メモリ７２２のこうした部分の状態を変化させることによって、メモリ７２２の一部分に「記憶」されてもよい。このように、特定の実装において、データ及び／又は情報を表す信号を記憶するためにメモリ部分の状態をこのように変化させることにより、メモリ７２２が異なる状態又は異なるものに変換される。
【００３２】
１つの実施形態において、システム７００は、メモリデバイス内に置かれたメモリセルアレイ及びマイクロコントローラ７１５を含むメモリデバイス７２２を備えてもよい。このようなマイクロコントローラは、例えば、図２に示したマイクロコントローラ２１５と類似していてもよい。システム７００はまた、１つ又は複数のアプリケーションをホストするとともに、メモリセルアレイ及び書き込みコマンドを受信するメモリコントローラ７１２にアクセスするように書き込みコマンドを出すプロセッサ７２０を備えてもよい。一実装において、メモリコントローラ７１２は、メモリデバイスの外部に置かれ、プロセッサ７２０及びメモリデバイス間に配置されてもよい。マイクロコントローラ７１５は、メモリセルアレイにアクセスする書き込みコマンドを受信し、書き込みコマンドの認証を決定し、かつ、書き込みコマンドの決定された認証の少なくとも一部に基づいてメモリセルアレイのコンテンツを改変するかどうかを決定してもよい。このようなメモリセルアレイは、例えば、ＰＣＭ等の持続性メモリを備えてもよい。
【００３３】
コンピュータデバイス７０４は、例えば、入力／出力７３２を含んでもよい。入力／出力７３２は、人及び／又は機械の入力を受入れるように構成可能な、又は導入するように構成可能な１つ又は複数のデバイス又は機能、及び／又は、人及び／又は機械の出力を届けるように構成可能な、又は提供するように構成可能な１つ又は複数のデバイス又は機能を表すものである。例示であって限定されるものではないが、入力／出力デバイス７３２は、動作可能に構成されたディスプレイ、スピーカー、キーボード、マウス、トラックボール、タッチスクリーン、データポート等を含んでもよい。
【００３４】
現時点で考えられる実施形態例について説明して述べてきたが、請求項の主題から逸脱することなく、他の様々な変形がなされてもよく、均等なものに置換されてもよいと当業者に理解され得るものである。加えて、本明細書に開示された主要概念から逸脱することなく、特定の状況を請求項の主題の教示に適用するように多くの変形がなされてもよい。それゆえ、請求項の主題が開示された特定の実施形態に限定されることはないと示され、そのような請求項の主題はまた、添付の特許請求の範囲に含まれる全ての実施形態及びそれらの均等物を包含するものであると示されている。
【図１】
0005500458.tif 000002
【図２】
0005500458.tif 000003
【図３】
0005500458.tif 000004
【図４】
0005500458.tif 000005
【図５】
0005500458.tif 000006
【図６】
0005500458.tif 000007
【図７】
0005500458.tif 000008