(57)【要約】      （修正有）【課題】デジタルコンテンツを保護する装置および方法を提供する。【解決手段】プロセッサ１０２は、デジタルコンテンツを断片にパースし、各断片がメモリの対応するページに記憶されるようにするコンテンツストレージロジック１１４を含む。プロセッサは、メモリ内の宛先アドレスを有する書き込み命令を受け取り、宛先アドレスがデジタルコンテンツの一部を記憶しているメモリロケーションと関連付けられればメモリロケーションと関連付けられるページを消去する保護ロジック１１６も含む。宛先アドレスがデジタルコンテンツのいずれも記憶していない別のメモリロケーションと関連付けられれば保護ロジックは書き込み命令の実行を許可する。【選択図】図１
2014183579.tif 000002
【特許請求の範囲】
【請求項１】
デジタルコンテンツを断片にパースし、各断片がメモリの対応するページに記憶されるようにするコンテンツストレージロジックと、
保護ロジックと
を備え、
前記保護ロジックは、
前記メモリ内に宛先アドレスを有する書き込み命令を受け取り、
前記宛先アドレスが前記デジタルコンテンツの一部を記憶しているメモリストレージロケーションと関連付けられれば、前記メモリストレージロケーションと関連付けられる前記ページを消去し、
前記宛先アドレスが前記デジタルコンテンツのいずれも記憶していない別のメモリストレージロケーションと関連付けられれば、前記書き込み命令の実行を許可する、
コンテンツを保護するプロセッサ。
【請求項２】
暗号化されたデジタルコンテンツを復号し、前記デジタルコンテンツを前記コンテンツストレージロジックに出力する復号ロジックをさらに含む、請求項１に記載のプロセッサ。
【請求項３】
各ページが同じページサイズを有する、請求項１に記載のプロセッサ。
【請求項４】
１つ以上のストレージをさらに含み、各ストレージは対応するページの最後に書き込まれたアドレスの表示を記憶する、請求項１に記載のプロセッサ。
【請求項５】
前記最後に書き込まれたアドレスの前記表示は、前記対応するページの先頭アドレスからのオフセットを含む、請求項４に記載のプロセッサ。
【請求項６】
前記保護ロジックは、前記宛先アドレスの表示を前記ストレージの１つに記憶されている前記最後に書き込まれたアドレスの前記表示と比較して前記宛先アドレスと関連付けられる前記メモリストレージロケーションが前記デジタルコンテンツの一部を記憶しているかどうかを判断する、請求項４または５に記載のプロセッサ。
【請求項７】
前記宛先アドレスが前記ページの１つの中の前記最後に書き込まれたアドレスより大きければ、前記保護ロジックは、前記宛先アドレスと関連付けられる前記メモリストレージロケーションが前記デジタルコンテンツのいずれも記憶していないと判断する、請求項４に記載のプロセッサ。
【請求項８】
前記宛先アドレスが特定のページの先頭と前記ページの１つの中の前記最後に書き込まれたアドレスとの間にあれば、前記保護ロジックは、前記宛先アドレスと関連付けられる前記メモリストレージロケーションが前記デジタルコンテンツの一部を記憶していると判断する、請求項４に記載のプロセッサ。
【請求項９】
前記プロセッサは、前記最後に書き込まれたアドレスの前記表示をリセットする、請求項８に記載のプロセッサ。
【請求項１０】
データを処理するための処理手段と、
データを記憶するために前記処理手段に結合されたメモリ手段と、
前記メモリ手段に結合されたメモリコントローラ手段と
を備え、
前記メモリコントローラ手段は、前記メモリ手段の中の複数のページにデジタルコンテンツを書き込み、前記複数のページの１つの中のメモリストレージロケーションの宛先アドレスを有する書き込み命令の前記処理手段による受け取りに応答して、
前記メモリストレージロケーションが前記デジタルコンテンツのいずれも記憶していなければ、前記書き込み命令を実行し、
前記メモリストレージロケーションが前記デジタルコンテンツの一部を記憶していれば、前記複数のページの前記１つを消去する、
システム。
【請求項１１】
前記メモリコントローラ手段は、複数のレジスタを含み、各レジスタは対応するページの最後に書き込まれたアドレスに対応する最後に書き込まれたオフセットを記憶する、請求項１０に記載のシステム。
【請求項１２】
前記メモリコントローラ手段は、さらに、前記宛先アドレスに対応する宛先オフセットを前記レジスタの１つに記憶されている前記オフセットと比較して前記宛先アドレスと関連付けられる前記メモリストレージロケーションが前記デジタルコンテンツの一部を記憶しているかどうかを判断する、請求項１１に記載のシステム。
【請求項１３】
前記宛先オフセットが特定のページの先頭と前記最後に書き込まれたオフセットとの間にあれば、前記メモリコントローラ手段は、さらに、前記宛先アドレスと関連付けられる前記メモリストレージロケーションが前記デジタルコンテンツの一部を記憶していると判断する、請求項１２に記載のシステム。
【請求項１４】
前記メモリストレージロケーションが前記デジタルコンテンツの一部を記憶していれば、前記メモリコントローラ手段は、さらに、前記最後に書き込まれたオフセットをリセットする、請求項１１に記載のシステム。
【請求項１５】
前記宛先オフセットが前記最後に書き込まれたオフセットより大きければ、前記メモリコントローラ手段は、さらに、前記宛先アドレスと関連付けられる前記メモリストレージロケーションが前記デジタルコンテンツのいずれも記憶していないと判断する、請求項１２に記載のシステム。
【請求項１６】
デジタルコンテンツを断片にパースするステップと、
各断片をメモリの対応するページに記憶するステップと、
対応するメモリストレージロケーションが前記デジタルコンテンツの一部を記憶しているかどうかを判断するために書き込み命令の宛先アドレスを前記ページの１つの最後に書き込まれたアドレスと比較するステップと、
前記対応するメモリストレージロケーションが前記デジタルコンテンツの一部を記憶していれば、前記ページの少なくとも１つを消去するステップと、
前記対応するメモリストレージロケーションが前記デジタルコンテンツのいずれも記憶していなければ、前記書き込み命令を実行するステップと
を含む方法。
【請求項１７】
前記デジタルコンテンツをパースするステップの前に前記デジタルコンテンツを復号するステップをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記比較するステップは、
第１のページが前記宛先アドレスを含むと判断するステップと、
前記宛先アドレスが前記第１のページの最初に書き込まれたアドレスと前記第１のページの前記最後に書き込まれたアドレスとの間であれば、前記対応するメモリストレージロケーションは前記デジタルコンテンツの一部を記憶していると判断するステップと、
前記宛先アドレスが前記第１のページの前記最初に書き込まれたアドレスと前記第１のページの前記最後に書き込まれたアドレスとの間でなければ、前記対応するメモリストレージロケーションは前記デジタルコンテンツのいずれも記憶していないと判断するステップと
を含む、請求項１６に記載の方法。
【請求項１９】
前記書き込み命令の実行に応答して前記対応する最後に書き込まれたアドレスを更新するステップをさらに含む、請求項１６に記載の方法。
【請求項２０】
コンピュータに請求項１６から１９のいずれか１項に記載の方法を実行すさせるためのプログラム。
【請求項２１】
１つ以上のコアと、
メモリの第１のページへの書き込みアクセスのロックを、前記第１のページへの書き込み命令と関連付けられる書き込みオフセットと、第１のストレージに記憶され、前記第１のページの最後に書き込まれたメモリストレージロケーションと関連付けられる最後に書き込まれたオフセットとの比較に応答して、解除するかどうかを判断する保護ロジックと
を含むプロセッサ。
【請求項２２】
前記保護ロジックは、前記書き込みオフセットは前記最後に書き込まれたオフセットより大きいことを示す前記比較に応答して、前記第１のページへの前記書き込みアクセスのロックを解除し、前記書き込み命令の実行を許可する、請求項２１に記載のプロセッサ。
【請求項２３】
前記書き込み命令の前記実行に応答して、前記第１のストレージの中の前記最後に書き込まれたオフセットを前記書き込みオフセットで置き換える更新ロジックをさらに含む、請求項２２に記載のプロセッサ。
【請求項２４】
前記保護ロジックは、前記書き込みオフセットが前記最後に書き込まれたオフセット以下であることを示す前記比較に応答して、前記第１のページを消去する、請求項２１に記載のプロセッサ。
【請求項２５】
前記書き込みオフセットが前記最後に書き込まれたオフセット以下であることを示す前記比較に応答して、前記第１のストレージの中の前記最後に書き込まれたオフセットをリセットする更新ロジックをさらに含む、請求項２４に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルコンテンツの保護に関する。
【背景技術】
【０００２】
暗号化されたデジタルコンテンツは復号後の攻撃に脆くなり得る。たとえば、復号されたデジタルコンテンツの断片の上書きが攻撃の一部となり得る。攻撃において、データ列の中で後に続くデータがメタデータであるかまたはペイロードデータであるかを示すデータ型インジケータを上書きするように書き込み命令が下され得る。データ型インジケータがペイロードデータの指定からメタデータの指定に上書きされるとペイロードデータへの不正アクセスを許可することがある。すなわち、データ型インジケータの後に続くロケーションに記憶されているデータがペイロードデータではなくメタデータであるとしてラベルが付け換えられたため、かつメタデータは通常保護されないため、（正しくないラベルを付けられた）ペイロードデータはペイロードデータの窃盗を含むことがある不正アクセスを受けることがある。
【図面の簡単な説明】
【０００３】
【図１】本発明の実施形態によるシステムの一部のブロックダイヤグラムである。
【０００４】
【図２】本発明の実施形態による別のシステムの一部のブロックダイヤグラムである。
【０００５】
【図３】本発明の実施形態によってメモリに書き込まれたデジタルコンテンツを示すブロックダイヤグラムである。
【０００６】
【図４】本発明の実施形態によってデジタルコンテンツを保護する方法のフローダイヤグラムである。
【０００７】
【図５】本発明の実施形態によるプロセッサコアのブロックダイヤグラムである。
【０００８】
【図６】本発明の実施形態によるプロセッサのブロックダイヤグラムである。
【０００９】
【図７】本発明の実施形態によるマルチドメインプロセッサのブロックダイヤグラムである。
【００１０】
【図８】本発明の実施形態による複数のコアを含むプロセッサの例示である。
【００１１】
【図９】本発明の実施形態によるシステムのブロックダイヤグラムである。
【００１２】
【図１０】本発明の別の実施形態によるシステムのブロックダイヤグラムである。
【発明を実施するための形態】
【００１３】
セキュアなコンテンツ復号のために、たとえばデジタル権利管理（ＤＲＭ：ｄｉｇｉｔａｌ  ｒｉｇｈｔｓ  ｍａｎａｇｅｍｅｎｔ）再生の間に、セキュリティ強化プロセッサ（ＳＥＰ：Ｓｅｃｕｒｉｔｙ  Ｅｎｈａｎｃｅｄ  Ｐｒｏｃｅｓｓｏｒ）を用いることができる。コンテンツを復号して、関連ハードウェアに組み込むことができるアクセス制御機構付きの専用メモリである分離メモリ領域（ＩＭＲ：Ｉｓｏｌａｔｅｄ  Ｍｅｍｏｒｙ  Ｒｅｇｉｏｎｓ）に入れることができる。ＩＭＲを利用すればホストプロセッサおよびマルウェアが復号されたコンテンツに直接アクセスすることを防ぐことができ、選ばれたサブシステム（たとえばセキュアなエンジンおよびハードウェアデコーダ）だけがＩＭＲに記憶されたコンテンツにアクセスすることを許可することができる。
【００１４】
デコーダがデコードを開始することが可能になる前に、保護された圧縮コンテンツについての情報をデコーダが必要とすることがある。たとえば、デコーダが圧縮データをデコードする前にスライスメタデータおよび保護された実際のコンテンツペイロードのサイズおよびロケーションについての情報が必要なことがある。このためにセキュリティホール、たとえば「カットアンドペースト攻撃」および「プレーンテキストオーバレイ」が可能になってしまう。たとえば、セキュリティエンジンによってデータがパースされるとき復号されたコンテンツ全体（保護されたＰＡＹＬＯＡＤを含む）が攻撃に起因してホスト実体に提供されることがある。ヘッダ情報の変更にもとづいてセキュリティエンジンが誤ってデータをメタデータと解釈するためである。従って、保護されたペイロードコンテンツをホスト内の不正アプリケーションによって盗むことができるであろう。
【００１５】
さらに、暗号ブロック調整されていない小型パケットがコンテンツプロバイダからプレーンテキストマテリアルとして入ってくることがあり、パケットは復号の必要がないとホストがセキュリティエンジンに指定することがある。したがって、攻撃者は「上書きされたプレーンテキスト部」を復号の必要がないコンテンツとして指定することがある。セキュリティエンジンは、ロケーション情報をホストから得る（オフセットによって）点に注意する。その結果、ホストはこうして正しくないデータを送って実際のデータを置き換えることができる可能性がある。
【００１６】
この攻撃シナリオは、実際のビデオフレームに合わせて調整されていない不規則なサイズのパケットを送ることができる仕組みの場合に可能である。デコーダ自体にストリーム全体をパースする能力がないハードウェアプラットホームにおいても攻撃が可能である。
【００１７】
一例において、この攻撃は既に復号されてＩＭＲに入れられたデータに向けて誘導され得る。ＩＭＲをサポートする一部のプラットホームにおいてはセキュリティエンジンだけがＩＭＲへのＲＥＡＤ−ＷＲＩＴＥアクセスを有し、他のコンポーネントたとえばデコーダはＲＥＡＤ−ＯＮＬＹアクセスに限定される。セキュリティエンジンは、復号されたデータが後に続くセキュアなビデオパスコンポーネントだけによって消費されて「上書き」攻撃の可能性をなくすように復号されたデータをロックしてよく、消費後にリセット（たとえばロックを解除）してよい。
【００１８】
しかし、所定のデータがいつ消費されるかセキュリティエンジンには分らないことがある。さらに、ＩＭＲは各フレームがデコーダによって消費される前に複数のフレームを保持することができる。したがって、たとえばセキュリティエンジンによるデータ書き込みと、たとえばデコーダによるデータ読み出しとが不特定の様式で起こり得る。
【００１９】
通常、フレームは消費される前にフレーム全体が復号され、フレームを構成する複数のパケットが連続してセキュリティエンジンに供給される。すなわち、フレームは複数のパケットでできていてよく、これらのパケットは、別のフレームのパケットが復号される前に、フレーム全体が復号されてＩＭＲに入れられるまで、連続して復号されてＩＭＲに入れられる。
【００２０】
本発明の実施形態において、ＩＭＲはたとえばページあたり（またはブロックあたり）粒度で書込み−ロック−リセット機能を提供してよい。ページ（またはブロック）はシステムニーズに合わせてどのような粒度を有してもよい。ページはシステムスタートアップ時に構成することができる。書き込まれるページ内の最後のオフセットの現行ＯＦＦＳＥＴがこのページに関連付けられるストレージレジスタに保持されてよい。ＯＦＦＳＥＴは以下のように書き込みごとに更新されてよい。すなわち新しいオフセットがＯＦＦＳＥＴより大きければ書き込みが許可され、ＯＦＦＳＥＴは書き込まれた最後のロケーションに更新されてよい。言い換えると、ＯＦＦＳＥＴはストレージレジスタによって「ロック」される。ＯＦＦＳＥＴより小さなページ内のオフセットへの書き込みが試みられるとＯＦＦＳＥＴはゼロにリセット（ページＵＮＬＯＣＫＥＤ）されてよく、ページは消去されてよく、ページ内のどのオフセットへの新しい書き込みも許可されてよい。書き込み後にＯＦＦＳＥＴは再び更新されてよい。
【００２１】
２つの場合にＯＦＦＳＥＴより小さなオフセットが試みられてよい。１）は新しいフレームがＩＭＲに書き込まれ／復号される場合である。この場合、通常、ＯＦＦＳＥＴのリセットおよびページのロック解除が行われる。２）はマルウェアが既存のデータを変更しようとする場合である。この場合、ＯＦＦＳＥＴのリセットおよびページ全体のクリアランス（たとえば消去）によって変更を防ぐことができる。
【００２２】
ページサイズは、フレームサイズに適合するように調節可能または構成可能にすることができる。一例において、たとえば書き込みオフセットとストレージレジスタに記憶されているＯＦＦＳＥＴとの比較によって攻撃が検出されるとフレーム全体がクリアされてよい。
【００２３】
実施形態において、ファームウェアまたはハードウェアにＬＯＣＫおよびＲＥＳＥＴ機能を実装することができる。たとえば、ＳＥＰ上で動作するファームウェアはページ属性（たとえば最後に書き込まれたオフセット）を保持し、ソフトウェアでＬＯＣＫおよびＲＥＳＥＴ機能を真似ることができる。ＳＥＰファームウェアはセキュアな環境で動作すると予測されるので、結果はハードウェアに実装したとき同等に効果的である。
【００２４】
さまざまな実施形態において、たとえばデジタルコンテンツが復号された後に、プロセッサによってデジタルコンテンツの保護が提供されてよい。プロセッサはコンテンツストレージロジックを含んでよい。コンテンツストレージロジックは、デジタルコンテンツを断片にパースし、各断片をメモリの対応するページに記憶させる。プロセッサは保護ロジックも含んでよい。保護ロジックは、パースされたデジタルコンテンツが記憶された後に宛先アドレスを含む書き込み命令を受け取り、書き込み命令の宛先アドレスがデジタルコンテンツの断片を記憶しているメモリロケーションを指せば、保護ロジックはそのページを消去してよい。宛先アドレスがデジタルコンテンツのいずれも記憶していない別のメモリロケーションと関連付けられれば、保護ロジックは書き込み命令を実行してよい。ページに記憶されているデジタルコンテンツが書き込み命令によって標的とされた場合、そのページを消去すれば、消去されたデジタルコンテンツを不正な当事者によるアクセスから保護することができる。
【００２５】
次に図１を参照すると、本発明の実施形態によるシステム１００の一部のブロックダイヤグラムが示される。図１に示されるように、システム１００はセキュリティ強化プロセッサ（ＳＥＰ）１０２を含むさまざまなコンポーネントを含んでよい。
【００２６】
ＳＥＰ１０２は入ってくる命令を復号する復号ロジック１１２を含んでよい。ＳＥＰ１０２はメモリコントローラハブ（ＭＣＨ：ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ  ｈｕｂ）１１０を含んでよい。ＭＣＨ１１０はコンテンツストレージロジック１１４および保護ロジック１１６を含んでよい。保護ロジック１１６はアドレスストレージロジック１１８、アドレス比較ロジック１２０およびページ消去ロジック１２２を含んでよい。ＭＣＨ１１０はアドレスオフセット、たとえば対応するページ内の最後に書き込まれたメモリロケーションのオフセット、を記憶する１つ以上のストレージレジスタ１２４０、１２４１、…、１２４ｎも含んでよい。図１においてＳＥＰ１０２は高いレベルで描かれていることに注意し、ＳＥＰ１０２のようなプロセッサは多数の他の構成要素を含んでよいと理解するべきである。
【００２７】
システム１００はメモリ１５０も含んでよい。メモリ１５０は１つ以上の分離メモリ領域（ＩＭＲ）を含むアクセス制御されたメモリであってよい。さまざまな実施形態においてメモリ１５０はダイナミックランダムアクセスメモリ（ＤＲＡＭ：ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、スタティックランダムアクセスメモリ（ＳＲＡＭ：ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、または別の種類のストレージメモリであってよい。ＩＭＲへのアクセスはＭＣＨ１１０によって判断されてよい。
【００２８】
メモリ１５０はＭＣＨ１１０を介してデコーダ１８０に結合されてよい。実施形態においてデコーダ１８０はたとえばＳＥＰ１０２およびメモリ１５０とともにマザーボード（図示せず）上に配置されてよい。
【００２９】
メモリ１５０の一部は１つ以上のページ１５４０、１５４１、…、１５４ｎに分けられてよい。実施形態において各ページは同じストレージ容量、たとえば約４キロバイト（ｋＢ）、または別のストレージ容量を有してよい。別の実施形態においてページ１５４０〜１５４ｎの１つ以上はページ１５４０〜１５４ｎの他のものとストレージ容量が異なってよい。
【００３０】
動作するとき、ＳＥＰ１０２は暗号化されたデジタルコンテンツ１６０を受け取ってよく、復号ロジック１１２は暗号化されたデジタルコンテンツ１６０を復号して（暗号化されていない）デジタルコンテンツを生成してよい。
【００３１】
暗号化されたデジタルコンテンツが復号された後に、ＭＣＨ１１０の中のコンテンツストレージロジック１１４はデジタルコンテンツを１つ以上の断片にパースしてよく、たとえばそれぞれがメモリ１５０のページ１５４０、１５４１、…、１５４ｎの１つに対応する断片にパースしてよい。いくつかの実施形態において断片は同じサイズであってよい。他の実施形態において少なくとも１つの断片は他の断片とサイズが異なっていてよい。復号されたコンテンツが断片にパースされた後に、断片はコンテンツストレージロジック１１４によって記憶させられてよく、各断片は対応するページ１５４０、１５４１、…、１５４ｎに記憶される。
【００３２】
アドレスストレージロジック１１８は、ページ１５４０、１５４１、…、１５４ｎのそれぞれの中の最後に書き込まれたメモリロケーションのアドレスを、対応するページの先頭アドレスからのオフセットとして、対応するストレージレジスタ１２４０、１２４１、…、１２４ｎに記憶させてよい。
【００３３】
ＳＥＰ１０２はプログラム命令１７０を受け取ってよい。プログラム命令の１つはページ１５４０、１５４１、…、１５４ｎの１つの中の宛先アドレスに向けた書き込み命令であってよい。ＭＣＨ１１０はどのページ１５４ｉが書き込み命令の宛先アドレスを含むかを判断してよい。アドレス比較ロジック１２０は書き込み命令の宛先アドレスの表示をページ１５４ｉに対応するストレージレジスタ１２４ｉに記憶されているアドレスの表示と比較してよい。たとえばアドレス比較ロジック１２０は、書き込み命令の宛先アドレスに対応するオフセットが、ページ１５４ｉの最後に書き込まれたアドレスに対応するストレージレジスタ１２４ｉに記憶されているオフセット以下であると判断してよい。書き込み命令は、実行されればページ１５４ｉに記憶されているデータの一部を上書きするであろう。たとえば上書きされる標的となる記憶されているデータは、ペイロードデータのデータインジケータ型を含んでよい。データインジケータ型が上書きされたら、ペイロードデータはたとえば通常は保護されないメタデータとして誤ってラベル付けされ、それによってペイロードデータは攻撃の対象となるかもしれない。
【００３４】
宛先アドレスはストレージレジスタ１２４ｉに記憶されているオフセットによって表されるアドレス以下であると判断されれば、アドレス比較ロジック１２０はページ消去ロジック１２２を起動してページ１５４ｉを消去してよい。ページ１５４ｉが消去されるとこのページに記憶されているデジタルコンテンツは不正アクセスの対象とならないことを保証することができる。実施形態において消去した後にページ１５４ｉは空白のままにされてよい。
【００３５】
受け取った書き込み命令の宛先アドレスがストレージレジスタ１２４ｉに記憶されているアドレスより大きければ書き込み命令は実行されてよく、たとえば追加のデータがページ１５４ｉに、たとえばページ１５４ｉの書き込まれていない部分に書き込まれてよい。
【００３６】
ページ１５４０、１５４１、…、１５４ｎのコンテンツはデコーディングのためにＭＣＨ１１０を介してデコーダ１８０に提供することができ、デコードされたデータはたとえばビデオ、オーディオまたは他の著作権保有コンテンツとして出力されてよい。攻撃シナリオにおいて、ページ１５４ｉが消去され、ノイズとしてデコードされてよく、デジタルコンテンツ１６２が攻撃されたことを示すために役立てるとよいノイズとして出力されてよい。
【００３７】
次に図２に移ると、本発明の別の実施形態によるシステム２００の一部のブロックダイヤグラムが示される。図２に示されるように、システム２００はプロセッサ２１０を含むさまざまなコンポーネントを含んでよい。プロセッサ２１０はメモリコントローラハブ（ＭＣＨ）２２２に結合されてよい。プロセッサ２１０はコア２１１０、２１１１、…、２１１ｎを含んでよいマルチコアプロセッサであってよい。プロセッサ２１０は暗号化されたデジタルコンテンツを復号する復号ロジック２１２を含んでもよい。
【００３８】
ＭＣＨ２２２はメモリ２２０、たとえばダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）または別の種類のメモリ、に結合されてよい。ＭＣＨ２２２はコンテンツストレージロジック２２４および保護ロジック２２６を含んでよい。保護ロジック２２６はアドレスストレージロジック２２８、アドレス比較ロジック２３０およびページ消去ロジック２３２を含んでよい。ＭＣＨ２２２はメモリ２２０の中のページのアドレスを、たとえば対応するページの先頭アドレスからのオフセットとしてそれぞれが記憶する１つ以上のストレージレジスタ２４２０、２４２１、…、２４２ｎも含んでよい。
【００３９】
メモリ２２０は１つ以上のページ２４００、２４０１、…、２４０ｎに分けられてよい。実施形態において、各ページは同じ容量、たとえば約４キロバイト（ｋＢ）であってよい。別の実施形態において、一部のページはメモリ２２０内の他のページと容量が異なってよい。
【００４０】
メモリ２２０はＭＣＨ２２２を介してデコーダ２８０に結合されてよい。デコーダ２８０はメモリ２２０に記憶されているデータ（たとえばペイロードデータ）を、たとえばそのデータがページ２４００、２４０１、…、２４０ｎに記憶された後にデコードするように構成されてよい。
【００４１】
動作するとき、プロセッサ２１０は暗号化されたデジタルコンテンツ２６０を受け取ってよく、復号ロジック２１２は暗号化されたデジタルコンテンツ２６０を復号して（暗号化されていない）デジタルコンテンツを生成させてよい。メモリ管理コントローラ２２２内のコンテンツストレージロジック２２４はデジタルコンテンツを１つ以上の断片にパースしてよく、たとえばそれぞれがページ２４００、２４０１、…、２４０ｎの１つに対応する断片にパースしてもよい。いくつかの実施形態において、断片は同じサイズであってよい。他の実施形態において少なくとも１つの断片は他の断片の少なくとも１つとサイズが異なってよく、各断片はページ２４００、２４０１、…、２４０ｎの対応する１つにサイズを合わせてもよい。コンテンツストレージロジック２２４は各断片を対応するページ２４００、２４０１、…、２４０ｎに記憶させてよい。
【００４２】
メモリ管理コントローラ２２２の保護ロジック２２６内のアドレスストレージロジック２２８はページ２４００、２４０１、…、２４０ｎのそれぞれの内部の最後に書き込まれたメモリロケーションの対応するアドレスを対応するストレージレジスタ２４２０、２４２１、…、２４２ｎに記憶させてよい。実施形態において、各アドレスは対応するページ２４００、２４０１、…、２４０ｎの先頭アドレスからの対応するオフセットとして記憶されてよい。
【００４３】
プロセッサ２１０はプログラム命令２７０を受け取ってよい。プログラム命令２７０の１つはページ２４００、２４０１、…、２４０ｎの１つの内部の宛先アドレスに向けた書き込み命令であってよい。たとえば書き込み命令はページ２４００内の宛先アドレスを有してよい。
【００４４】
アドレス比較ロジック２３０は書き込み命令の宛先アドレスを、宛先アドレスを含む対応するページのストレージレジスタ、たとえばストレージレジスタ２４２０に記憶されているアドレスと比較してよい。たとえば、宛先アドレスに対応するオフセットが判断され、ストレージレジスタ２４２０に記憶されている最後に書き込まれたオフセットと比較されてよい。宛先アドレスがストレージレジスタ２４２０に記憶されているオフセットによって表されるアドレス以下であるとアドレス比較ロジック２３０が判断すると、書き込み命令は、実行されれば、ページ２４００の中の記憶されているデータの一部を上書きするであろう。その結果、アドレス比較ロジック２３０はページ消去ロジック２３２を起動してページ２４００を消去してよい。ページ２４００を消去すれば、それまでこのページに記憶されていたデジタルコンテンツは、たとえば上書きされるまでペイロードデータが後に続くことを示していたデータ型インジケータの上書きによって起こるかもしれない、不正アクセスを受けないことを保証することができる。
【００４５】
宛先アドレスと記憶されているストレージレジスタの中の最後に書き込まれたアドレスとの比較によって（たとえば記憶されているオフセットと宛先アドレスに対応するオフセットとの比較によって）判断された結果、書き込み命令の宛先アドレスは最後に書き込まれたアドレスより後であるとアドレス比較ロジック２３０が判断すると、書き込み命令の宛先アドレスに書き込みが実行されてよい。宛先アドレスはそれまで書き込まれたことがないので、書き込み命令の実行の結果としてデータが上書きされることはない。
【００４６】
図３に移ると、本発明の実施形態によってメモリに記憶されるデジタルコンテンツのブロックダイヤグラムが示される。復号されたデジタルコンテンツ３１０は第１のデータ型インジケータ３０２、第１のデータ３０４、第２のデータ型インジケータ３０６および第２のデータ３０８を含んでよい。実施形態において、第１のデータ型インジケータ３０２は第１のデータ３０４がメタデータであることを示してよく、第２のデータ型インジケータ３０６は第２のデータ３０８がペイロードデータであることを示してよい。
【００４７】
メモリ３２０はロックされていない空白のページ３２２を含んでよい。メモリ管理コントローラ内のコンテンツストレージロジック（図示せず）はデジタルコンテンツ３１０の断片をページ３２２に書き込み、デジタルコンテンツ３１０の断片を含むページ３２４を生成してよい。ページ３２２への書き込み（「最初の書き込み」）が完了した後に、ページ３２４に書き込まれたデータの最終アドレスに対応する最後に書き込まれたオフセットが対応するストレージレジスタ（図示せず）に記憶されてよい。最初の書き込みが完了した後に、ページ３２４への別の書き込みを防ぐためにページ３２４はロックされてよい。
【００４８】
その後、ページ３２４への追加の書き込み命令を受け取ったら、追加の書き込み命令の宛先アドレスに対応するオフセットがページ３２４に対応するストレージレジスタに記憶されている最後に書き込まれたオフセットと比較されてよい。追加の書き込み命令の宛先アドレスがページ３２４の中のそれまでの書き込みの最後より後なら（たとえば追加の書き込み命令の宛先アドレスオフセットが記憶されている最後に書き込まれたオフセットより後なら）、ロックされたページ３２４はロックを解除され（たとえばロックされていないページ３２５）、追加の書き込み命令が実行されて追加のデータを書き込んでページ３２６を生成してよい。ページ３２６は追加の書き込み命令が実行された後にロックされてよい。記憶されている最後に書き込まれたオフセットは対応するストレージレジスタの中で更新されてページ３２６に記憶されている追加のデータを反映してよい。
【００４９】
追加の書き込み命令の宛先アドレスに関連付けられるオフセットと最後に書き込まれたオフセットとの比較により、追加の書き込み命令が既に書き込まれたページアドレスを目的とすることが示されると、ページのコンテンツは消去され（一括消去され）て（空白の）ページ３２８を生成してよい。最後に書き込まれたオフセットはゼロにリセットされ、ページ３２８に対応するストレージレジスタに記憶されてよい。ページ３２６の中の記憶されたデジタルコンテンツを消去すれば、それまでに記憶されたデジタルコンテンツが不正行為の対象とならないことを保証することができる。
【００５０】
消去されたページはロックを解除されてページ３２８へのその後の書き込みを可能にしてよく、この書き込みによってページ３３０が生成し、ページ３３０はその後の書き込みが実行された後に再びロックされてよい。記憶されているオフセットはページ３３０の対応するストレージレジスタの中で更新されてその後の書き込みによるページの占有部分を反映してよい。
【００５１】
図４に移ると、本発明の実施形態によってデジタルコンテンツを保護する方法のフローダイヤグラムが示される。ブロック４０２において開始され、入ってくる暗号化されたデジタルコンテンツはたとえばセキュリティ強化プロセッサ、またはマルチコアプロセッサによって復号されてよい。
【００５２】
ブロック４０４へと続き、復号されたデジタルコンテンツはたとえばメモリコントローラハブによって断片にパースされてよい。たとえば各断片は、たとえば分離メモリ領域（ＩＭＲ）またはシステムメモリ（たとえばＤＲＡＭ）の１ページに記憶されるようなサイズにされてよく、一実施形態において各ページは同じストレージ容量（たとえば４ｋＢ）を有してよく、または別の実施形態において一部のページのストレージ容量は他のページのストレージ容量と異なってよい。一部のページはデジタルコンテンツが記憶された後に部分的に満たされていてよい。
【００５３】
ブロック４０６に進み、各断片はＩＭＲまたはシステムメモリ内の対応するページに記憶されてよい。ブロック４０８に移り、各ページ内の最後に書き込まれたメモリロケーションの最後に書き込まれたオフセット（ページ内のアドレスに対応する）は、たとえばメモリコントローラハブの中、またはメモリ、たとえばシステムメモリの中に配置されてよい対応するレジスタに記憶されてよい。
【００５４】
ブロック４１０へ進み、デジタルコンテンツ断片が記憶されているページの１つの内部の宛先アドレスを有する書き込み命令を（プロセッサが）受け取ってよい。意思決定ダイヤモンド４１２へと続き、たとえば記憶されている最後に書き込まれたオフセットとの比較によって、書き込み命令の宛先アドレスが対応するページ内の最後に書き込まれたメモリロケーションアドレス以下かどうかの判断がプロセッサによって行われてよい。宛先アドレスが最後に書き込まれたメモリロケーションアドレスより大きければ、ブロック４１４に進み、書き込み命令が実行されてよく、たとえば書き込み命令は追加のデータが対応するページ内の空白のメモリロケーションに書き込まれるようにする。ブロック４１８に進み、対応するページの記憶されている最後に書き込まれたオフセットは更新されて追加の記憶されたデータを反映してよく、ブロック４２０へと続き、本方法は終了する。宛先アドレスが最後に書き込まれたメモリロケーションアドレス以下であれば、ブロック４１６においてページは消去されてよい。ブロック４１７へ移り、対応するストレージレジスタに記憶されている最後に書き込まれたオフセットは、たとえばゼロにリセットされて消去されたページを反映してよい。ブロック４１４へ戻り、書き込み命令が実行されてよい。ブロック４１８へ進み、記憶されている最後に書き込まれた対応するページのオフセットは更新されて追加の記憶されたデータを反映してよく、ブロック４２０へと続き、本方法は終了する。
【００５５】
図４の方法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせによって実行することができる。図４の実施形態においては高いレベルで示されているが、本発明の範囲はそのように限定されないと理解されるべきである。
【００５６】
実施形態は、多数の異なるシステムにおいて実装することができる。たとえば、実施形態は、マルチコアプロセッサなどのプロセッサにおいて実現することができる。次に図５を参照すると、本発明の一実施形態によるプロセッサコアのブロックダイヤグラムが示される。図５に示されるように、プロセッサコア５００はマルチコアプロセッサの１つのコアであってよく、マルチステージパイプライン型アウトオブオーダープロセッサとして示されている。
【００５７】
図５に示されるように、コア５００はフロントエンドユニット５１０を含む。フロントエンドユニット５１０は実行される命令をフェッチし、後のプロセッサ内の使用に備えて命令を準備するために用いてよい。たとえば、フロントエンドユニット５１０はフェッチユニット５０１、命令キャッシュ５０３、および命令デコーダ５０５を含んでよい。いくつかの実装において、フロントエンドユニット５１０はマイクロコードストレージならびにマイクロオペレーションストレージとともにトレースキャッシュをさらに含んでよい。フェッチユニット５０１はたとえばメモリまたは命令キャッシュ５０３からマクロ命令をフェッチし、マクロ命令を命令デコーダ５０５に供給してプリミティブ、すなわちプロセッサによる実行のためのマイクロオペレーションにデコードしてよい。
【００５８】
フロントエンドユニット５１０と実行ユニット５２０との間にアウトオブオーダー（ＯＯＯ：ｏｕｔ−ｏｆ−ｏｒｄｅｒ）エンジン５１５が結合される。ＯＯＯエンジン５１５はマイクロ命令を受け取り、実行に備えてマイクロ命令を準備するために用いてよい。より詳しくは、ＯＯＯエンジン５１５はさまざまなバッファを含んでよく、これらのバッファは、マイクロ命令のフローを並べ直し、実行のために必要なさまざまなリソースを割り当てるとともに、たとえばエンジンのリネーミングロジックの使用によってさまざまなレジスタファイル、たとえばレジスタファイル５３０および拡張レジスタファイル５３５の内部のストレージロケーションへの論理レジスタのリネーミングを提供する。レジスタファイル５３０は整数演算および浮動小数点演算のための別々のレジスタファイルを含んでよい。拡張レジスタファイル５３５はベクターサイズのユニット、たとえばレジスタあたり２５６または５１２ビットのためのストレージを提供してよい。
【００５９】
実行ユニット５２０の中には、たとえば他の専用ハードウェアの中でさまざまな整数、浮動小数点、および単一命令複数データ（ＳＩＭＤ：ｓｉｎｇｌｅ  ｉｎｓｔｒｕｃｔｉｏｎ  ｍｕｌｔｉｐｌｅ  ｄａｔａ）ロジックユニットを含むさまざまなリソースが存在してよい。たとえばそのような実行ユニットは１つ以上の算術演算論理ユニット（ＡＬＵ：ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）５２２を含んでよい。もちろん、他の実行ユニット、たとえば乗算‐加算ユニット等がさらに存在してよい。結果はリタイヤメントロジックに提供されてよく、リタイヤメントロジックはプロセッサのメモリサブシステム５６０の中に実装されてよい。たとえば実行ユニットおよびフロントエンドロジックを含むさまざまなプロセッサ構造体がメモリサブシステム５６０に結合されてよい。このメモリサブシステムはプロセッサ構造体とメモリ階層のさらに別の部分、たとえばオンチップキャッシュまたはオフチップキャッシュおよびシステムメモリとの間のインタフェースを提供してよい。図にあるように、サブシステムはメモリオーダーバッファ（ＭＯＢ：ｍｅｍｏｒｙ  ｏｒｄｅｒ  ｂｕｆｆｅｒ）５４０を含むさまざまなコンポーネントを有する。より詳しくは、ＭＯＢ５４０は実行される命令に関連付けられる情報を受け取るさまざまなアレイおよびロジックを含んでよい。次に、この情報は、命令が正当にリタイヤされ得るかどうか、結果データがプロセッサのアーキテクチャ状態に託され得るかどうか、または命令の適切なリタイヤメントを妨げる１つ以上の例外が発生し得るかどうかを判断するためにＭＯＢ５４０によって検査される。もちろん、ＭＯＢ５４０はリタイヤメントに関連付けられる他のオペレーションを取り扱ってよい。
【００６０】
図５に示されるように、ＭＯＢ５４０はキャッシュ５５０に結合される。一実施形態においてキャッシュ５５０は低レベルキャッシュ（たとえばＬ１キャッシュ）であってよい。メモリサブシステム５６０は統合メモリコントローラ５７０も含んでよい。統合メモリコントローラ５７０はシステムメモリ（例示しやすくするために図５には示されていない）とのコミュニケーションを提供する。メモリサブシステム５６０はメモリ実行ユニット（ＭＥＵ：ｍｅｍｏｒｙ  ｅｘｅｃｕｔｉｏｎ  ｕｎｉｔ）５７５をさらに含んでよい。ＭＥＵ５７５は、メモリリクエストを開始し、メモリからのデータの復帰を取り扱うさまざまなオペレーションを取り扱う。たとえば、ＭＥＵ５７５は断片へのデジタルコンテンツのパーシング、対応するページへの断片のストレージ、各ページの最後に書き込まれたオフセットのストレージ、および書き込み命令がページ内にデジタルコンテンツを含むメモリロケーションに向けられているかどうかの判断を実行してよい。ページ内にデジタルコンテンツを記憶しているメモリロケーションを書き込み命令が目的としていれば、ＭＥＵ５７５は、本発明の実施形態について本明細書に記載されているように、宛先メモリロケーションを含むページを消去してよい。
【００６１】
メモリサブシステム５６０からより高いレベルのキャッシュ、システムメモリ等とのデータコミュニケーションが発生してよい。図５の実施形態においてはこの高いレベルで示されているが、本発明の範囲はこの点について限定されないと理解すること。たとえば、図５の実装は、いわゆるｘ８６命令セットアーキテクチャ（ＩＳＡ：ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ａｒｃｈｉｔｅｃｔｕｒｅ）どのアウトオブオーダーマシンについてのものであるが、本発明の範囲はこの点について限定されない。すなわち、インオーダープロセッサ、縮小命令セットコンピューティング（ＲＩＳＣ：ｒｅｄｕｃｅｄ  ｉｎｓｔｒｕｃｔｉｏｎ  ｓｅｔ  ｃｏｍｐｕｔｉｎｇ）プロセッサ、たとえばＡＲＭ系プロセッサ、またはエミュレーションエンジンおよび関連ロジック回路によって異なるＩＳＡの命令およびオペレーションをエミュレートすることができる別の種類のＩＳＡのプロセッサに他の実施形態が実装されてよい。
【００６２】
次に図６を参照すると、本発明の実施形態によるプロセッサのブロックダイヤグラムが示される。図６に示されるように、プロセッサ６００はコアドメイン６１０に複数のコア６１０ａ〜６１０ｎを含むマルチコアプロセッサであってよい。一実施形態において各コアは、本発明の実施形態において本明細書に記載されているようにコンテンツストレージロジック、アドレスストレージロジック、アドレス比較ロジック、およびページ消去ロジックを含むメモリ実行ユニット（図示せず）を含んでよい。図６にさらに示されるように、グラフィックスドメイン６１２に１つ以上のグラフィックス処理ユニット（ＧＰＵ：ｇｒａｐｈｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）６１２０〜６１２ｎが存在してよい。これらのさまざまなコンピュータエレメントは、相互接続６１５を介してさまざまなコンポーネントを含むシステムエージェントまたは非コア６２０に結合されてよい。図にあるように、非コア６２０は最終レベルキャッシュであってよい共有キャッシュ６３０を含んでよい。
【００６３】
さらに、非コアは統合メモリコントローラ６４０およびさまざまなインタフェース６５０を含んでよい。本発明のいくつかの実施形態において、メモリコントローラ６４０は復号されたデジタルコンテンツを断片にパースし、断片をシステムメモリ６６０の対応するページに記憶させ、各ページの最後に書き込まれたオフセットを記憶させてよい。メモリコントローラ６４０は、これらのページの１つの中にデジタルコンテンツの一部が記憶されているメモリロケーションの宛先アドレスを書き込み命令が有するかどうかを判断し、有すれば本発明の実施形態によってページを消去してよい。
【００６４】
さらに図６を参照すると、プロセッサ６００はたとえばメモリバスを介してシステムメモリ６６０とコミュニケーションしてよい。さらに、インタフェース６５０によってさまざまなオフチップコンポーネント、たとえば周辺デバイス、マスストレージ等との接続を行うことができる。本発明の範囲は、図６の実施形態においてはこの特定の実装を用いて示されるが、この点について限定されない。
【００６５】
次に図７を参照すると、本発明の別の実施形態によるマルチドメインプロセッサのブロックダイヤグラムが示される。図７の実施形態において示されるように、プロセッサ７００は複数のドメインを含む。詳しくは、コアドメイン７１０は複数のコア７１００〜７１０ｎを含むことができ、グラフィックスドメイン７２０は１つ以上のグラフィックスエンジンを含むことができ、さらにシステムエージェントドメイン７５０が存在してよい。
【００６６】
３つのドメインしか示されていないが、本発明の範囲はこの点について限定されず、他の実施形態においては追加のドメインが存在してよいことに注意し理解すること。たとえば、それぞれが少なくとも１つのコアを含む複数のコアドメインが存在してよい。
【００６７】
一般に、各コア７１０はさまざまな実行ユニットおよび追加の処理エレメントに加えて低いレベルのキャッシュをさらに含んでよい。さまざまなコアは互いに結合されてよく、最終レベルキャッシュ（ＬＬＣ：ｌａｓｔ  ｌｅｖｅｌ  ｃａｃｈｅ）７４００〜７４０ｎの複数のユニットで形成される共有キャッシュメモリに結合されてよい。さまざまな実施形態においてＬＬＣ７４０はコアおよびグラフィックスエンジンならびにさまざまな媒体処理回路の間で共有されてよい。従って、図に見られるように、リング相互接続７３０がコアを一緒に結合し、コア、グラフィックスドメイン７２０およびシステムエージェント回路７５０の間の相互接続を提供する。
【００６８】
図７の実施形態において、システムエージェントドメイン７５０はディスプレイコントローラ７５２を含んでよい。ディスプレイコントローラ７５２は関連付けられるディスプレイの制御およびインタフェースを提供してよい。さらに図に見られるように、システムエージェントドメイン７５０はパワーコントロールユニット７５５を含んでよい。
【００６９】
図７においてさらに見られるように、プロセッサ７００は統合メモリコントローラ（ＩＭＣ：ｉｎｔｅｇｒａｔｅｄ  ｍｅｍｏｒｙ  ｃｏｎｔｒｏｌｌｅｒ）７７０をさらに含むことができる。ＩＭＣ７７０はシステムメモリ（図示せず）、たとえばダイナミックランダムアクセスメモリ（ＤＲＡＭ）、へのインタフェースを提供することができる。ＩＭＣ７７０は、本発明の実施形態によって、復号されたデジタルコンテンツを断片にパースし、断片をシステムメモリの対応するページに記憶させ、各ページの最後に書き込まれたオフセットを記憶させてよい。ＩＭＣ７７０は、これらのページの１つの中にデジタルコンテンツの一部が記憶されているメモリロケーションの宛先アドレスを書き込み命令が有するかどうかを判断し（たとえば宛先アドレスの表示とページの最後に書き込まれたオフセットとの比較によって）、有すれば本発明の実施形態によってページを消去してよい。
【００７０】
プロセッサと他の回路との間の相互接続を可能にする複数のインタフェース７８００〜７８０ｎが存在してよい。たとえば、一実施形態において少なくとも１つの直接媒体インタフェース（ＤＭＩ：ｄｉｒｅｃｔ  ｍｅｄｉａ  ｉｎｔｅｒｆａｃｅ）ならびに１つ以上のペリフェラルコンポーネントインターコネクトエクスプレス（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）（ＰＣＩエクスプレス（商標）（ＰＣＩ  Ｅｘｐｒｅｓｓ（商標）））（ＰＣＩｅ（商標）（ＰＣＩｅ（商標）））インタフェースが提供されてよい。さらに、他のエージェント、たとえば追加のプロセッサまたは他の回路の間のコミュニケーションを提供するためにインテル（登録商標）（Ｉｎｔｅｌ（登録商標））クイックパスインターコネクト（ＱＰＩ：Ｑｕｉｃｋ  Ｐａｔｈ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）プロトコルによる１つ以上のインタフェースも提供されてよい。図７の実施形態においてはこの高いレベルで示されるが、本発明の範囲はこの点について限定されないと理解すること。
【００７１】
図８を参照すると、複数のコアを含むプロセッサの実施形態が例示される。プロセッサ８００は任意のプロセッサまたは処理デバイス、たとえばマイクロプロセッサ、埋め込みプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、ネットワークプロセッサ、ハンドヘルドプロセッサ、アプリケーションプロセッサ、コプロセッサ、システム・オン・ア・チップ（ＳＯＣ：ｓｙｔｅｍ  ｏｎ  ａ  ｃｈｉｐ）、またはコードを実行する他のデバイスを含む。一実施形態においてプロセッサ８００は少なくとも２つのコア−コア８０１および８０２を含む。コア８０１および８０２は非対称コアまたは対称コア（例示される実施形態）を含んでよい。しかし、プロセッサ８００は任意の数の処理エレメントを含んでよく、処理エレメントは対称であっても非対称であってもよい。
【００７２】
一実施形態において処理エレメントはソフトウェアスレッドをサポートするハードウェアまたはロジックを指す。ハードウェア処理エレメントの例はスレッドユニット、スレッドスロット、スレッド、プロセスユニット、コンテキスト、コンテキストユニット、ロジカルプロセッサ、ハードウェアスレッド、コア、および／またはプロセッサのために状態、たとえば実行状態またはアーキテクチャ状態を保持することができる任意の他のエレメントを含む。言い換えると、一実施形態において処理エレメントはコード、たとえばソフトウェアスレッド、オペレーティングシステム、アプリケーション、または他のコードに独立に関連付けることができる任意のハードウェアを指す。通常、物理プロセッサは集積回路を指し、集積回路は任意の数の他の処理エレメント、たとえばコアまたはハードウェアスレッドを含む可能性がある。
【００７３】
多くの場合、コアは独立のアーキテクチャ状態を保持することができる、集積回路に配置されたロジックであって、独立に保持されたアーキテクチャ状態のそれぞれが少なくともいくつかの専用の実行リソースと関連付けられるロジックを指す。コアと対照的に、通常、ハードウェアスレッドは独立のアーキテクチャ状態を保持することができる、集積回路に配置された任意のロジックであって、独立に保持されたアーキテクチャ状態が実行リソースへのアクセスを共有するロジックを指す。図に示されるように、特定のリソースは共有され、他はあるアーキテクチャ状態の専用であると、ハードウェアスレッドとコアとの用語間の境界線は重複する。それでも、コアおよびハードウェアスレッドはオペレーティングシステムによって個別の論理プロセッサとみなされることが多く、オペレーティングシステムは各論理プロセッサ上のオペレーションを個別に計画することができる。
【００７４】
図８に例示されるように、物理プロセッサ８００は２つのコア、コア８０１および８０２を含む。ここでコア８０１および８０２は対称コア、すなわち同じ構成、機能ユニット、および／またはロジックを有するコアとみなされる。別の実施形態において、コア８０１はアウトオブオーダープロセッサコアを含み、コア８０２はインオーダープロセッサコアを含む。しかし、コア８０１および８０２は任意の種類のコア、たとえばネイティブコア、ソフトウェア管理コア、ネイティブ命令セットアーキテクチャ（ＩＳＡ）を実行するようになっているコア、翻訳されたＩＳＡを実行するようになっているコア、共設計されたコア、または他の公知のコアから個別に選ばれてよい。コア８０２の中のユニットは同じように動作するので、さらに議論をすすめるためにコア８０１に例示される機能ユニットを下記でさらに詳しく記載する。
【００７５】
描かれているように、コア８０１は２つのハードウェアスレッド８０１ａおよび８０１ｂを含む。スレッド８０１ａおよび８０１ｂはハードウェアスレッドスロット８０１ａおよび８０１ｂと呼ばれることもある。したがって、一実施形態においてソフトウェア実体、たとえばオペレーティングシステムは、プロセッサ８００を４つの別個のプロセッサ、すなわち４つのソフトウェアスレッドをコンカレントに実行することができる４つの論理プロセッサまたは処理エレメントとみなす可能性がある。上記で暗に示されたように、第１のスレッドはアーキテクチャ状態レジスタ８０１ａと関連付けられ、第２のスレッドはアーキテクチャ状態レジスタ８０１ｂと関連付けられ、第３のスレッドはアーキテクチャ状態レジスタ８０２ａと関連付けられ、第４のスレッドはアーキテクチャ状態レジスタ８０２ｂと関連付けられてよい。ここで、アーキテクチャ状態レジスタ（８０１ａ、８０１ｂ、８０２ａ、および８０２ｂ）のそれぞれは上記に記載されたように処理エレメント、スレッドスロット、またはスレッドユニットと呼ばれてよい。例示されるように、アーキテクチャ状態レジスタ８０１ｂにおいてはアーキテクチャ状態レジスタ８０１ａが複製され、したがって論理プロセッサ８０１ａおよび論理プロセッサ８０１ｂについて個別のアーキテクチャ状態／コンテキストを記憶することができる。コア８０１において、他の、より小さなリソース、たとえばアロケータおよびリネーマブロック８３０の中の命令ポインタおよびリネーミングロジックもスレッド８０１ａおよび８０１ｂについて複製されてよい。一部のリソース、たとえばリオーダー／リタイヤメントユニット８３５内のリオーダーバッファ、ＩＬＴＢ８２０、ロード／ストアバッファ、およびキューはパーティショニングによって共有されてよい。他のリソース、たとえば汎用内部レジスタ、ページ−テーブルベースレジスタ、低レベルデータキャッシュおよびデータＴＬＢ８１５、実行ユニット８４０、およびアウトオブオーダーユニット８３５の一部は完全に共有される可能性がある。
【００７６】
多くの場合、プロセッサ８００は完全に共有されるか、パーティショニングによって共有されるか、または処理エレメントによって／に専用され得る他のリソースを含む。図８において、プロセッサの例示論理ユニット／リソースを有する例のためだけのプロセッサの実施形態が例示される。プロセッサはこれらの機能ユニットのいずれを含んでも省いてもよいだけでなく、描かれていない任意の他の公知の機能ユニット、ロジック、またはファームウェアも含んでよいことに注意すること。例示されるように、コア８０１は簡略化された代表的なアウトオブオーダー（ＯＯＯ）プロセッサコアを含む。しかし、異なる実施形態においてはインオーダープロセッサが利用されてよい。ＯＯＯコアは実行される／採用される分岐を予測する分岐ターゲットバッファ８２０および命令のためのアドレス翻訳エントリを記憶する命令翻訳バッファ（Ｉ−ＴＬＢ）８２０を含む。
【００７７】
コア８０１はフェッチされたエレメントをデコードするためにフェッチユニット８２０に結合されたデコードモジュール８２５をさらに含む。一実施形態においてフェッチロジックはスレッドスロット８０１ａ、８０１ｂとそれぞれ関連付けられる個別のシーケンサを含む。通常、コア８０１はプロセッサ８００上で実行可能な命令を定義する／指定する第１のＩＳＡと関連付けられる。多くの場合、第１のＩＳＡの一部であるマシンコード命令は、実行される命令またはオペレーションを参照する／指定する命令の断片（オペコードと呼ばれる）を含む。デコードロジック８２５は、これらの命令をオペコードから認識し、デコードされた命令を第１のＩＳＡによって定義されるように処理するためにパイプラインに渡す回路を含む。たとえば、一実施形態においてデコーダ８２５は特定の命令、たとえばトランザクション命令を認識するように設計されているかまたは適しているロジックを含む。デコーダ８２５による認識の結果としてアーキテクチャまたはコア８０１は特定のあらかじめ定義された動作を行って適切な命令と関連付けられるタスクを実行する。本明細書に記載されるタスク、ブロック、オペレーションおよび方法のいずれが単一または複数の命令に応答して実行されてもよく、これらの命令の一部は新しい命令であっても古い命令であってもよいことに注意することが重要である。
【００７８】
一例において、アロケータおよびリネーマブロック８３０はリソース、たとえば命令処理結果を書き込むレジスタファイルを確保するアロケータを含む。しかし、スレッド８０１ａおよび８０１ｂはアウトオブオーダー実行の能力を有する可能性があり、この場合、アロケータおよびリネーマブロック８３０は他のリソース、たとえば命令結果を追跡するリオーダーバッファも確保する。ユニット８３０はプログラム／命令参照レジスタをプロセッサ８００内の他のレジスタにリネームするレジスタリネーマも含んでよい。リオーダー／リタイヤメントユニット８３５はアウトオブオーダー実行をサポートし、アウトオブオーダー実行された命令のインオーダーリタイヤメントを後でサポートするコンポーネント、たとえば上記で述べたリオーダーバッファ、ロードバッファ、およびストアバッファを含む。
【００７９】
一実施形態においてスケジューラおよび実行ユニットブロック８４０は実行ユニット上の命令／オペレーションを計画するスケジューラユニットを含む。たとえば、利用可能な浮動小数点実行ユニットを有する実行ユニットのポートに浮動小数点命令が計画される。情報命令処理結果を記憶するために、実行ユニットと関連付けられたレジスタファイルも含まれる。例となる実行ユニットは浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、記憶実行ユニット、および他の公知の実行ユニットを含む。
【００８０】
実行ユニット８４０に下位レベルデータキャッシュおよびデータ翻訳バッファ（Ｄ−ＴＬＢ：ｄａｔａ  ｔｒａｎｓｌａｔｉｏｎ  ｂｕｆｆｅｒ）８５０が結合される。データキャッシュは最近用いられた／操作されたエレメント、たとえば、メモリコヒーレンシー状態に保たれている可能性があるデータオペランドを記憶するためにある。Ｄ−ＴＬＢは最近の仮想／線形アドレスから物理アドレスへの翻訳を記憶するためにある。
【００８１】
ここで、コア８０１および８０２は最近フェッチされたエレメントをキャッシュするためにある上位レベルまたはファーザーアウトキャッシュ８１０へのアクセスを共有する。上位レベルまたはファーザーアウトは増加するかまたは実行ユニットから遠ざかるキャッシュレベルを指すことに注意する。一実施形態において、上位レベルキャッシュ８１０はプロセッサ８００上のメモリ階層の最終キャッシュである最終レベルデータキャッシュ、たとえば第２または第３レベルデータキャッシュである。しかし、上位レベルキャッシュ８１０はそのように限定されない。上位レベルキャッシュ８１０は命令キャッシュと関連付けられるかまたは命令キャッシュを含むからである。代りに一種の命令キャッシュであるトレースキャッシュがデコーダ８２５の後に結合されて最近デコードされたトレースを記憶してよい。
【００８２】
描かれている構成において、プロセッサ８００はコントローラ８７０も含む。コントローラ８７０は、本発明の実施形態によって、復号されたデジタルコンテンツを断片にパースし、断片をシステムメモリ８７５の対応するページに記憶させてよい。コントローラ８７０は、本発明の実施形態によって、ページの１つの中にデジタルコンテンツの一部が記憶されているメモリロケーションの宛先アドレスを書き込み命令が有するかどうかを判断（たとえば宛先アドレスの表示と最後に書き込まれたページのオフセットとの比較によって）してよく、もし有するならページを消去してよい。
【００８３】
このシナリオにおいて、バスインタフェース８０５はプロセッサ８００の外部にあるデバイス、たとえばシステムメモリ８７５、チップセット（多くの場合、メモリ８７５と接続するメモリコントローラハブおよび周辺デバイスと接続するＩ／Ｏコントローラハブを含む）、メモリコントローラハブ、ノースブリッジ、またはその他の集積回路（図示せず）とコミュニケーションするためにある。このシナリオにおいて、バス８０５は任意の公知の相互接続、たとえばマルチドロップバス、ポイントツーポイント相互接続、直列相互接続、並列バス、コヒーレント（たとえばキャッシュコヒーレント）バス、層化プロトコルアーキテクチャ、差動バス、およびＧＴＬバスを含んでよい。
【００８４】
メモリ８７５はプロセッサ８００専用であってもシステム内の他のデバイスと共有されてもよい。メモリ８７５の種類の普通の例はＤＲＡＭ、ＳＲＡＭ、不揮発メモリ（ＮＶメモリ：ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）、および他の公知のストレージデバイスを含む。デバイス８８０はグラフィックアクセラレータ、メモリコントローラハブに結合されたプロセッサまたはカード、Ｉ／Ｏコントローラハブに結合されたデータストレージ、ワイヤレストランシーバ、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ、または他の公知のデバイスを含んでよいことに注意すること。
【００８５】
描かれた実施形態において、コントローラ８７０はプロセッサ８００の一部として例示されることに注意すること。最近は単一のダイ、たとえばＳＯＣの上により多くのロジックおよびデバイスが集積されるので、これらのデバイスのそれぞれがプロセッサ８００に組み込まれてよい。たとえば一実施形態において、メモリコントローラハブ８７０はプロセッサ８００と同じパッケージおよび／またはダイにある。ここで、コアの一部（オンコア部分）は他のデバイス、たとえばメモリ８７５またはグラフィックスデバイス８８０とインタフェース接続するためのコントローラ８７０を含む。多くの場合、そのようなデバイスとインタフェース接続するための相互接続およびコントローラを含む構成はオンコア（または非コア設定）と呼ばれる。一例として、バスインタフェース８０５はメモリ８７５とインタフェース接続するためのメモリコントローラおよびグラフィックスプロセッサ８８０とインタフェース接続するためのグラフィックスコントローラを有するリング相互接続を含む。それでも、ＳＯＣ環境においてさらに多くのデバイス、たとえばネットワークインターフェース、コプロセッサ、メモリ８７５、グラフィックスプロセッサ８８０、および任意の他の公知のコンピュータデバイス／インタフェースが単一ダイまたは集積回路に集積されて小さな形状因子に高い機能および低い電力消費を提供してよい。
【００８６】
実施形態は、多数の異なるシステム型において実装されてよい。次に図９を参照すると、本発明の実施形態によるシステムのブロックダイヤグラムが示される。図９に示されるように、マルチプロセッサシステム９００はポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続９５０を介して結合された第１のプロセッサ９７０および第２のプロセッサ９８０を含む。図９に示されるように、プロセッサ９７０および９８０のそれぞれは第１および第２のプロセッサコア（すなわちプロセッサコア９７４ａおよび９７４ｂならびにプロセッサコア９８４ａおよび９８４ｂ）を含むマルチコアプロセッサであってよいが、さらに多数のコアがプロセッサに存在してよい可能性がある。プロセッサのそれぞれはそれぞれのキャッシュを含んでよい。第１のプロセッサ９７０および第２のプロセッサ９８０はＰ−Ｐ相互接続９５２および９５４をそれぞれ介してチップセット９９０に結合されてよい。図９に示されるように、チップセット９９０はＰ−Ｐインタフェース９９４および９９８を含む。
【００８７】
さらに図９を参照すると、第１のプロセッサ９７０はメモリコントローラハブ（ＭＣＨ）９７２ならびにポイントツーポイント（Ｐ−Ｐ；ｐｏｉｎｔ−ｔｏ−ｐｏｉｎｔ）インタフェース９７６および９７８をさらに含む。同様に、第２のプロセッサ９８０はＭＣＨ９８２ならびにＰ−Ｐインタフェース９８６および９８８を含む。図９に示されるように、ＭＣＨ９７２および９８２はプロセッサをそれぞれのメモリ、すなわちメモリ９３２およびメモリ９３４に結合させる。メモリ９３２およびメモリ９３４はそれぞれのプロセッサにローカルに接続されたシステムメモリ（たとえばＤＲＡＭ）の一部であってよい。ＭＣＨ９７２および９８２のそれぞれは、本発明の実施形態によって、復号されたデジタルコンテンツを断片にパースし、断片を対応するメモリ（９３２または９３４）の対応するページに記憶させてよい。ＭＣＨ９７２および９８２はデジタルコンテンツの一部がこれらのページの１つの中に記憶されているメモリロケーションの宛先アドレスを書き込み命令が有するかどうかを判断（たとえば宛先アドレスの表示と最後に書き込まれたページのオフセットとの比較によって）してよく、有すれば本発明の実施形態によってページを消去してよい。
【００８８】
さらに、チップセット９９０はＰ−Ｐ相互接続９３９によってチップセット９９０を高性能グラフィックスエンジン９３８と結合するインタフェース９９２を含む。チップセット９９０は、今度はインタフェース９９６を介して第１のバス９１６に結合されてよい。図９に示されるように、第１のバス９１６を第２のバス９２０に結合するバスブリッジ９１８に加えて、さまざまな入力／出力（Ｉ／Ｏ：ｉｎｐｕｔ／ｏｕｔｐｕｔ）デバイス９１４が第１のバス９１６に結合されてよい。一実施形態において、たとえばキーボード／マウス９２２、コミュニケーションデバイス９２６、およびデータストレージユニット９２８たとえばディスクドライブまたは他のマスストレージデバイス、を含むさまざまなデバイスが第２のバス９２０に結合されてよい。さらに、オーディオＩ／Ｏ９２４が第２のバス９２０に結合されてよい。実施形態は、モバイルデバイスたとえばスマートセルラーフォーン、ウルトラブック（商標）、タブレットコンピュータ、ネットブックなどを含む他の型のシステムに組み込むことができる。
【００８９】
すなわち、他の実施形態において、プロセッサアーキテクチャは、ソースＩＳＡと呼ばれる第１のＩＳＡの命令をプロセッサが実行することができるように、エミュレーション機能を含んでよく、アーキテクチャはターゲットＩＳＡと呼ばれる第２のＩＳＡに従う。一般に、ＯＳとアプリケーションプログラムとの両方を含むソフトウェアがソースＩＳＡにコンパイルされ、ハードウェアは特別な性能および／またはエネルギー効率機能を有する所定のハードウェア実装のために特に設計されたターゲットＩＳＡを実装する。
【００９０】
図１０を参照すると、本発明の別の実施形態によるシステム１０００のブロックダイヤグラムが示される。システム１０００はプロセッサ１０１０およびメモリ１０３０を含む。プロセッサ１０１０はシステム・オン・ア・チップ（ＳＯＣ）であってよく、セキュリティエンジン１０１２、コアユニット１０１４、ストレージ１０１６、およびエンコード／デコードロジック１０１８を含んでよい。コアユニット１０１４は１つ以上のコア、キャッシュメモリおよび他のＳＯＣコンポーネントとコミュニケーションするインタフェースを含んでよい。
【００９１】
動作するとき、セキュリティエンジン１０１２は入って来る暗号化されたデータ１０２０を復号してよい。セキュリティエンジン１０１２は（暗号化されていない）データを断片にパースしてよく、断片をメモリ１０３０内の対応するページに記憶させてよい。セキュリティエンジン１０１２は各ページの最後に書き込まれたアドレスに対応する最後に書き込まれたオフセットを対応するストレージレジスタに記憶させてよい。一実施形態においてストレージレジスタはプロセッサ１０１０内に配置されてよい。別の実施形態においてストレージレジスタはメモリ１０３０内に配置されてよい。
【００９２】
コアユニット１０１４は宛先アドレスがページの１つにある書き込み命令を受け取ってよい。セキュリティエンジン１０１２は最後に書き込まれたオフセットと書き込み命令の宛先アドレスに関連付けられる書き込みオフセットとの比較を行ってよい。セキュリティエンジン１０１２は最後に書き込まれたオフセットと書き込みオフセットとの比較にもとづいてページへの書き込みアクセスをロックするかまたはロック解除してよい。たとえば、書き込みオフセットが最後に書き込まれたオフセットより大きければセキュリティエンジン１０１２は対応するページへの書き込みアクセスのロックを解除してよく、書き込みオフセットが最後に書き込まれたオフセット以下であればセキュリティエンジン１０１２は対応するページへの書き込みアクセスをロックし、最後に書き込まれたオフセットをゼロにリセットし、対応するページのコンテンツを消去（たとえば一括消去）してよい。
【００９３】
実施形態は多数の異なる種類のシステムにおいて用いられてよい。たとえば、一実施形態において本明細書に記載されているさまざまな方法および技法を実行するようにコミュニケーションデバイスを構成することができる。実施形態はモバイルデバイス、たとえばスマートセルラーフォーン、タブレットコンピュータ、ネットブック、ウルトラブック（商標）などを含む他の種類のシステムに組み込むことができる。もちろん、本発明の範囲はコミュニケーションデバイスに限定されず、代りに、他の実施形態は命令を処理するための他の種類の装置、またはコンピューティングデバイス上での実行に応答して本明細書に記載される方法および技法の１つ以上をデバイスに実行させる命令を含む１つ以上の機械可読媒体を目的とすることができる。
【００９４】
以下の例はさらに別の実施形態に関する。実施形態においてプロセッサはデジタルコンテンツを断片にパースし、各断片をメモリの対応するページに記憶させるコンテンツストレージロジックを含む。プロセッサはメモリ内の宛先アドレスを有する書き込み命令を受け取る保護ロジックを含む。宛先アドレスがデジタルコンテンツの一部を記憶しているメモリロケーションと関連付けられれば、保護ロジックはメモリロケーションと関連付けられるページを消去し、宛先アドレスがデジタルコンテンツのいずれも記憶していない別のメモリロケーションと関連付けられれば、保護ロジックは書き込み命令の実行を許可する。
【００９５】
別の実施形態においてプロセッサは暗号化されたデジタルコンテンツを復号し、デジタルコンテンツをコンテンツストレージロジックに出力する復号ロジックを含む。
【００９６】
実施形態において各ページは同じページサイズを有する。
【００９７】
実施形態においてプロセッサは１つ以上のストレージを含み、各ストレージは対応するページの最後に書き込まれたアドレスの表示を記憶する。実施形態において最後に書き込まれたアドレスの表示は対応するページの先頭アドレスからのオフセットを含む。
【００９８】
保護ロジックは宛先アドレスの表示をストレージの１つに記憶されている最後に書き込まれたアドレスの表示と比較して宛先アドレスと関連付けられるメモリストレージロケーションがデジタルコンテンツの一部を記憶しているかどうかを判断してよく、宛先アドレスが最後に書き込まれたアドレスより大きければ保護ロジックは宛先アドレスと関連付けられるメモリストレージロケーションはデジタルコンテンツのいずれも記憶していないと判断してよく、保護ロジックは書き込み命令の実行を許可してよい。
【００９９】
宛先アドレスが特定のページの先頭と最後に書き込まれたアドレスとの間にあれば、保護ロジックは特定のページのコンテンツを消去してよく、最後に書き込まれたアドレスの表示をリセットしてよい。
【０１００】
実施形態において、システムはプロセッサ、プロセッサに結合されたダイナミックランダムアクセスメモリ（ＤＲＡＭ）、およびＤＲＡＭに結合されてＤＲＡＭの複数のページにデジタルコンテンツを書き込むメモリコントローラを含む。ページの１つの中のメモリストレージロケーションの宛先アドレスを有する書き込み命令のプロセッサによる受け取りに応答して、メモリコントローラは、メモリストレージロケーションがデジタルコンテンツのいずれも記憶していなければ書き込み命令を実行してよく、メモリストレージロケーションがデジタルコンテンツの一部を記憶していればページを消去してよい。
【０１０１】
実施形態において、メモリコントローラは複数のレジスタを含み、各レジスタは対応するページの最後に書き込まれたアドレスに対応する最後に書き込まれたオフセットを記憶する。
【０１０２】
実施形態において、メモリコントローラは宛先アドレスに対応する宛先オフセットをレジスタの１つに記憶されているオフセットと比較して宛先アドレスと関連付けられるメモリストレージロケーションがデジタルコンテンツの一部を記憶しているかどうかを判断してよい。宛先オフセットが特定のページの先頭と最後に書き込まれたオフセットとの間にあれば、メモリコントローラは宛先アドレスと関連付けられるメモリストレージロケーションはデジタルコンテンツの一部を記憶していると判断してよい。
【０１０３】
メモリストレージロケーションがデジタルコンテンツの一部を記憶していれば、メモリコントローラはページが消去された後に最後に書き込まれたオフセットをリセットしてよい。宛先オフセットが最後に書き込まれたオフセットより大きければメモリコントローラは宛先アドレスに関連付けられるメモリストレージロケーションはデジタルコンテンツのいずれも記憶していないと判断してよい。
【０１０４】
実施形態において、方法はデジタルコンテンツを断片にパースすること、各断片をメモリの対応するページに記憶させること、書き込み命令の宛先アドレスをページの１つの最後に書き込まれたアドレスと比較して対応するメモリロケーションがデジタルコンテンツの一部を記憶しているかどうかを判断すること、対応するメモリロケーションがデジタルコンテンツの一部を記憶していればページの少なくとも１つを消去すること、および、対応するメモリロケーションがデジタルコンテンツのいずれも記憶していなければ書き込み命令を実行することを含む。
【０１０５】
本方法はデジタルコンテンツをパースする前にデジタルコンテンツを復号することをさらに含んでよい。
【０１０６】
比較することは、第１のページが宛先アドレスを含むと判断すること、および宛先アドレスが第１のページの最初に書き込まれたアドレスと第１のページの最後に書き込まれたアドレスとの間にあれば、対応するメモリロケーションがデジタルコンテンツの一部を記憶していると判断することを含んでよい。
【０１０７】
本方法は、宛先アドレスが第１のページの最初に書き込まれたアドレスと第１のページの最後に書き込まれたアドレスとの間になければ対応するメモリロケーションはデジタルコンテンツのいずれも記憶していないと判断することを含んでよい。本方法は、書き込み命令の実行に応答して対応する最後に書き込まれたアドレスを更新することをさらに含んでよい。
【０１０８】
実施形態において、少なくとも１つの機械可読媒体はプロセッサ上で実行されると本方法の上記の実施形態の１つ以上を実行するようにプロセッサを構成する１つ以上の命令を含む。
【０１０９】
実施形態において、装置は本方法の上記の実施形態の１つ以上を実行するように構成されてよい。
【０１１０】
実施形態において、装置は本方法の上記の実施形態のいずれの方法も実行するための手段も含む。
【０１１１】
実施形態において、プロセッサは１つ以上のコアと、第１のページへの書き込み命令と関連付けられる書き込みオフセットと第１のストレージに記憶され、第１のページの最後に書き込まれているメモリロケーションと関連付けられる最後に書き込まれたオフセットとの比較に応答してメモリの第１のページへの書き込みアクセスのロックを解除するかどうかを判断する保護ロジックと、を含んでよい。保護ロジックは、書き込みオフセットが最後に書き込まれたオフセットを超えることを示す比較に応答して第１のページへの書き込みアクセスのロックを解除し、書き込み命令の実行を許可してよい。
【０１１２】
プロセッサは、書き込み命令の実行に応答して第１のストレージの中の最後に書き込まれたオフセットを書き込みオフセットで置き換える更新ロジックを含んでよい。
【０１１３】
保護ロジックは、書き込みオフセットが最後に書き込まれたオフセット以下であることを示す比較に応答して第１のページを消去してよい。
【０１１４】
プロセッサは、ページの消去の後に第１のストレージの中の最後に書き込まれたオフセットをリセットする更新ロジックを含んでよい。
【０１１５】
実施形態は、コードに実装されてよく、命令を記憶してある非一時的ストレージ媒体に記憶されてよい。命令は、命令を実行するようにシステムをプログラムするために用いられることができる。ストレージ媒体はフロッピー（登録商標）ディスク、光ディスク、ソリッドステートドライブ（ＳＳＤ：ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）、読み取り専用コンパクトディスク（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、繰り返し書き込み可能コンパクトディスク（ＣＤ−ＲＷ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅｗｒｉｔａｂｌｅ）、および光磁気ディスクを含む任意の種類のディスク、半導体デバイス、たとえば読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ランダムアクセスメモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、たとえばダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、消去可能なプログラマブル読み取り専用メモリ（ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、フラッシュメモリ、電気的に消去可能なプログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ：ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、磁気カードまたは光カード、あるいは電子的な命令を記憶するのに適している任意の他の種類の媒体を含んでよいが、これに限定されるものではない。
【０１１６】
本発明は、限られた数の実施形態について記載されてきたが、それらの実施形態から多数の変更形および変化形が当業者には自明である。添付の請求項は、本発明の真の技術思想および適用範囲に属するものとしてそのようなすべての変更形および変化形を包含するものとする。
【図１】
2014183579.tif 000003
【図２】
2014183579.tif 000004
【図３】
2014183579.tif 000005
【図４】
2014183579.tif 000006
【図５】
2014183579.tif 000007
【図６】
2014183579.tif 000008
【図７】
2014183579.tif 000009
【図８】
2014183579.tif 000010
【図９】
2014183579.tif 000011
【図１０】
2014183579.tif 000012
【外国語明細書】
2014183579000001.pdf