JP2013535738A - メモリのセグメントをプロテクトするための方法及び装置 - Google Patents

メモリのセグメントをプロテクトするための方法及び装置 Download PDF

Info

Publication number
JP2013535738A
JP2013535738A JP2013521829A JP2013521829A JP2013535738A JP 2013535738 A JP2013535738 A JP 2013535738A JP 2013521829 A JP2013521829 A JP 2013521829A JP 2013521829 A JP2013521829 A JP 2013521829A JP 2013535738 A JP2013535738 A JP 2013535738A
Authority
JP
Japan
Prior art keywords
memory
protected area
error
code
bios
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013521829A
Other languages
English (en)
Other versions
JP5512892B2 (ja
Inventor
シー. スワンソン,ロバート
アール. ウェアジュ,エリック
ジェイ. ジンマー,ヴィンセント
ブルス,マリク
Original Assignee
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2013535738A publication Critical patent/JP2013535738A/ja
Application granted granted Critical
Publication of JP5512892B2 publication Critical patent/JP5512892B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Detection And Correction Of Errors (AREA)
  • Retry When Errors Occur (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

メモリのセグメントをプロテクトするための方法及び装置が、ここに開示される。一例となる方法は、エラーを示すインタラプトリクエストを傍受するステップと、メモリのプロテクトされた領域として指定されたメモリの第1セグメントが損傷しているか判断するステップと、前記メモリのプロテクトされた領域が損傷しているとき、コードのパリティブロックを用いて前記損傷しているメモリの領域を修復するステップと、前記メモリのプロテクトされた領域を検証したことに応答して、前記インタラプトリクエストに関するエラーを処理するため、前記メモリのプロテクトされた領域に格納されているコードの利用を有効にするインタラプトを生成するステップとを有する。

Description

本開示は、一般にコンピュータシステムプラットフォームに関し、より詳細には、メモリのセグメントをプロテクトするための方法及び装置に関する。
計算プラットフォームは、典型的には、タイプ、サイズ、目的などについて可変的な複数のメモリセグメントを有する。第1メモリに関連して格納される第1コンポーネント(例えば、ユーザアプリケーション又はプログラムなど)は、適切に動作するため、及び/又は完全に動作するために、第2メモリに関連して格納される第2コンポーネント(オペレーティングシステムなど)に依拠してもよい(例えば、第2コンポーネントが動作していないときに第1コンポーネントが初期化できないときなど)。従って、さらなる必要なリソースにもかかわらず、特定のタイプ又はセグメントのメモリは、格納されている1以上のコンポーネントの適切な処理を保証する1以上のプロテクション機構、プログラム、ルーチン又はデバイスを保証する。
図1は、一例となるプロテクション機構を含む一例となる計算プラットフォームの一例となるコンポーネントを示すブロック図である。 図2は、図1の生成記述子の一例となる実現形態である。 図3は、図1の検証記述子の一例となる実現形態である。 図4は、図1の修復記述子の一例となる実現形態である。 図5は、一例となるPOST(Power−On Self Test)を実行するため図1の一例となるBIOSを実現するため実行される一例となるマシーン可読命令を用いて実現可能な一例となる処理を表すフロー図である。 図6は、図1の一例となるSMRAMのある領域をプロテクトするため図1の一例となるプロテクション機構を実現するため実行される一例となるマシーン可読命令を用いて実現可能な一例となる処理を示すフロー図である。 図7は、図1の一例となるプロテクション機構の第1アルゴリズムによりプロテクトされるような図1のコードブロックの図である。 図8は、図1の一例となるプロテクション機構の第2アルゴリズムによりプロテクトされるような図1のコードブロックの図である。 図9は、図1の一例となる計算プラットフォームを実現するため、及び/又は図2のマシーン可読命令を実行するため利用可能な一例となるプロセッサシステムのブロック図である。
以下において一例となる方法、装置、システム、及び/又は他のコンポーネントのうちハードウェア上で実行されるファームウェア及び/又はソフトウェアを含む製造物が開示されるが、そのような方法、装置、システム及び/又は製造物は単なる例示的なものであり、限定的なものとみなされるべきでないことに留意すべきである。例えば、ファームウェア、ハードウェア及び/又はソフトウェアコンポーネントの何れか又はすべてが、ハードウェアのみにおいて、ソフトウェアのみにおいて、ファームウェアのみにおいて又はハードウェア、ソフトウェア及び/又はファームウェアの何れかの組み合わせにより実現可能であることが想定される。従って、以下において一例となる方法、装置、システム及び/又は製造物が説明されるが、与えられた具体例は、このような方法、装置、システム及び/又は製造物を実現するための唯一の方法でない。
ここに説明される一例となる方法、装置、システム及び/又は製造物は、格納されるデータ及び/又はコードとメモリのセグメントのためのプロテクションを提供する。限定することなく説明のため、これらの一例となる方法、装置、システム及び/又は製造物は、ホストDRAM(Dynamic Random Access Memory)に関して説明される。特に、ここに説明される具体例は、ホストDRAMに格納されるエラーハンドリングシステムのプロテクションに関する。しかしながら、ここに説明される具体例は、ホストDRAMに格納される異なるタイプのシステム、機構、プログラム、デバイスなどに関連して実現可能である。例えば、ここに説明されるエラーハンドリングシステムに提供されるプロテクションに加えて又は代わりに、ここに説明される一例となる方法、装置、システム及び/又は製造物は、ホストDRAMに格納されるグラフィックUMA(Unified Memory Architecture)に関して実行可能なもの、ホストDRAMに格納される電力管理ユニット(PMU)に関して実行可能なもの(MID上の8051コードなど)、及び/又はホストDRAMに格納される他の何れかのコンポーネント、ユニット、機構、プログラムなどに関して実現されてもよい。さらに、ここに説明される一例となる方法、装置、システム及び/又は製造物により提供されるメモリプロテクションは、ホストDRAM以外のメモリのさらなる又は他のタイプ又はセグメントに関連して実現可能である。
従来の計算プラットフォームは、プロセッサやメモリの動作などに関連する所望されない、予期されない、及び/又は許容されないイベント又は条件に応答するための誤り訂正コード(ECC)及びメモリプロテクションユニットを含む。x86プラットフォームでは、例えば、BIOS(Basic Input Output System)は、システムマネージメントインタラプト又はSMI(System Management Interrupt)を介し呼び出し可能なシステムマネージメントモード又はSMM(System Management Mode)を利用する。SMMに関するコンポーネントは、典型的には、SMRAM(System Management Random Access Memory)と呼ばれることもあるホストDRAMのセクションに格納される。例えば、SMRAMは、典型的には、計算プラットフォームにおける1以上のタイプのエラーを訂正するよう構成されるコードを有するSMMハンドラを有する。
あるエラーは、DRAMのセグメントと、さらにSMMハンドラ及び/又はBIOS SMMに関連する他のコンポーネントとに影響を与えるか、損傷させる可能性を有する。このような状況でSMMにおけるBIOSの実行は(例えば、SMMハンドラにおいてエラーが発生したときなど)、完全なシャットダウンを生じさせるプロセッサの損傷を導く可能性がある。従って、従来のシステムでは、メモリプロテクションユニットは、典型的には、このようなエラーを管理するためのさらなるエラーハンドラを実装していた。例えば、一部のメモリプロテクションユニットは、SMRAMを損傷しうるエラーのため、BMC(Baseboard Management Controller)に基づくエラーハンドラを利用し、これにより、エラーハンドリングに専用のさらなるリソースを設ける。
一般に、ここに説明される一例となる方法、装置、システム及び/又は製造物は、例えば、SMRAMのSMM領域などにおいて発生するECCエラーからプロセッサをプロテクトする。すなわち、ここに説明される具体例は、ECCエラーや他の以前のエラーがSMMに関するコードに影響を与えたときでさえ、ECCエラーに応答して、BIOSがSMMコンポーネント(SMMハンドラなど)を用いてインタラプトルーチンを実行することを可能にする。このようなエラーの訂正を可能にするため、ここに説明される具体例は、SMMハンドラを格納するためのSMRAMにおけるプロテクトされたアドレススペースを構成する。さらに、ここに説明される具体例は、SMMモードにより実行するためBIOSをトリガする信号を傍受するためのハードウェアベースのプロテクション機構を提供する。BIOSがSMMにおいて実行することを可能にする前に、ハードウェアベースのプロテクション機構は、エラーフリーとしてセキュアなアドレススペースのコンテンツを検証することを試みる。エラーがSMMハンドラに影響を与えたと判断したことに応答して、ハードウェアベースのプロテクション機構は、SMRAMのプロテクトされたアドレススペース内など、セキュアなアドレススペースにおける1以上の影響を受けたコードを再生又は修復する。エラーフリーなSMMスペースを保証した後、以下で詳細に説明される一例となるプロテクション機構は、BIOSが初期的なエラーを訂正するためSMMハンドラを実行することを可能にする。
ここに説明される具体例により提供される他の利益及び効果のうち、このようなシナリオ(例えば、ECCエラーがSMMコンポーネントに影響を与えるなど)のプロテクション、検証及び/又は訂正は、計算プラットフォームがBIOS及びさらなるエラーハンドラ(BMCベースのエラーハンドラなど)を介しエラーハンドリングに
“二重に投資”する必要性を解消又は少なくとも低減する。さらに、ここに説明される具体例は、SMMコンポーネントを用いて以前には訂正不可能であると考えられていた特定のタイプのエラーのためのリカバリ機構を提供する。ここに説明される具体例により提供されるさらなる利益及び効果は、ここでの詳細な説明から容易に明らかになるであろう。
図1は、ここに説明される一例となる方法、装置、システム及び/又は製造物に従ってメモリのセグメントをプロテクト可能な一例となる計算プラットフォーム100を示すブロック図である。プラットフォーム100は、パーソナルコンピュータ、ワークステーション、サーバ、PDA、キオスク、スマートフォンなどの何れかのタイプの計算プラットフォームであってもよい。
図1の一例となる計算プラットフォーム100は、何れか適切な方法により計算プラットフォーム100に発生した1以上のエラーを検出可能なエラー検出ユニット104を有するメモリコントローラ102を有する。例えば、エラー検出ユニット104は、プロセッサ(図9に関して後述される一例となるプロセッサ912など)のIIO(Integrated Input/Output system)によって実現されてもよい。エラーを検出したことに応答して、一例となるエラー検出ユニット104は、SMIに対するリクエストを生成する。SMIリクエストは、エラーが検出されたメモリのアドレスなど、エラーの位置に関する情報を含むものであってもよい。さらに、一例となるエラー検出ユニット104及び/又はメモリコントローラ102の他のコンポーネントは、ポイズンインジケータ(poison indicator)によってエラーが発生したメモリアドレスをマーク付けしてもよい。
従来のシステムでは、SMIリクエストは、SMIの即時の生成と、さらにBIOS106などによるSMMインタラプトルーチンの実行とを導く可能性がある。しかしながら、例示された具体例では、メモリコントローラ102により生成されるSMIリクエストは、ここに説明される一例となる方法、装置、システム及び/又は製造物に従って構成されるハードウェアベースのプロテクション機構108により傍受される。SMIリクエストを受信するため、一例となるプロテクション機構108は、メモリコントローラ102から当該信号を受信するよう構成される通信インタフェース(図示せず)を有する。例示された具体例では、プロテクション機構108は、限定されるものでないが、CB(Crystal Beach) DMA(Direct Memory Access)エンジンによって実現される。プロテクション機構108は、一例となる計算プラットフォーム100の追加的な又は代替的なコンポーネントにより、及び/又は異なるタイプのエンジン若しくはデバイスによって実現されてもよい。
上述されるように、SMRAMの特定部分に影響を与えたECCエラーを処理することを試みるBIOS106は、BIOS106により実行されるSMMインタラプトルーチン自体が損傷する可能性があるため危険である。従って、例示された具体例では、SMMコンポーネント(SMMハンドラなど)のインテグリティが証明可能になるまで、DMAエンジン108によりSMIリクエストの傍受は(メモリコントローラ102により生成されるような)、対応するECCエラーを処理することからBIOS106をサスペンドする。以下で詳細に説明されるように、DMAエンジン108は、1以上のSMMの損傷のケースにおいて、エラーから回復するのに利用されるSMMコードを検証及び再生成又は修復する。SMMに関連する各メモリセグメント(キャッシュラインなど)が検証及び/又は訂正されると、DMAエンジン108は、その後にBIOS106により処理可能なDMAエンジン108により受信されるSMIリクエストに対応するSMIを生成する。DMAエンジン108がエラーフリーなSMMコードを保証するため、BIOS106は、否定的な結果なしにSMMコードを利用することが可能である(例えば、フルシャットダウンを生じさせることなく)。
このようなプロテクションを可能にするため、計算プラットフォーム100は、DMAエンジン108及びSMRAM110に関連する複数の初期化を受ける。すなわち、特定のハードウェア機構及びソフトウェア要素の初期的なコンフィギュレーションは、一例となる計算プラットフォーム100がここに説明されるようなメモリのセグメントをプロテクトすることを可能にする。例えば、SMMハンドラ112は、それのTSEG(Top of Segment)領域内のSMRAM110のプロテクトされたページ114に配置される。例示された具体例では、プロテクトされたページ114は、4キロバイト(4kB)のサイズであり、7つのコードブロック116〜128を有する。コードブロック116〜128のコンテンツは、メモリにおけるエラーを訂正するのに利用される実行可能コードである。コードブロック116〜128のコンテンツはコンスタントであり、コードブロックのみを含む(すなわち、データブロックはない)。SMMハンドラ112の最後の512バイト(512B)は、パリティブロック130に対して確保される。BIOS106は、DMAエンジン108に初期化処理中にパリティブロック130を生成させる(例えば、POST(Power−On Self Test)など)。さらに、BIOS106は、プロテクトされた領域114の位置によってDMAエンジン108のレジスタ134をプログラムし、そこにプログラムされたプロテクトされた領域114の位置によってレジスタ134をロックする。
例示された具体例では、コードブロック116〜128は、データフィールドの変更を不可にするよう構成される(例えば、BIOS106などによって)。この結果、DMAエンジン108は、初期化処理中(例えば、POSTブート中など)にパリティブロック130を1回生成する。しかしながら、いくつかの具体例では、コードブロック116〜128は、変更可能なデータフィールドを含むよう構成されてもよい(BIOS106などによって)。このような例では、DMAエンジン108は、コードブロック116〜128の1以上の各変更後にパリティブロック130を生成する。
いくつかの具体例では、メモリコントローラ102のエラー検出ユニット104(IIOシステムなど)は、DMAエンジン108にECCエラー信号をルーティングするよう初期化される。DMAエンジン108がECCエラー信号を傍受するとして上述されたが(例えば、SMIリクエストなど)、一例となる計算プラットフォーム100は、DMAエンジン108を介し当該信号を自動的にルーティングするよう構成されてもよい。
DMAエンジン108はまた、生成オペコード(パリティブロック130を生成するためなど)、検証オペコード(プロテクトされた領域114におけるキャッシュラインのインテグリティをチェックするためなど)、又はプロテクトされた領域114に送信される修復オペコード(プロテクトされた領域114におけるキャッシュラインを修復するためなど)を実行するチャネル(隠れチャネル(hidden channel)など)を有するよう構成される。例示された具体例では、チャネルは、SMRAM110のTSEGメモリによるプロテクトされた領域114へのアクセスに制限される。さらに、チャネルは、一例となる計算プラットフォーム100におけるプロテクトされた領域114にアクセス可能な唯一のチャネルである。BIOS106は、DMAエンジン108の処理を可能にする前に、このアクセスコンフィギュレーションを検証する(例えば、DMAエンジン108のチャネルはプロテクトされた領域114へのアクセスのための唯一のチャネルであり、プロテクトされた領域114は完全にTSEG内にある)。さらに、存在する場合には、チャネルは、変換及び/又はセキュリティ違反を防ぐため、VT−dエンジンを通過する。
例示された具体例では、上述された生成、検証及び修復処理は、複数の記述子136により実現される。一例となる複数の記述子136は、プロテクトされた領域114のパリティブロック130を生成するため、生成記述子138を有する。例示された具体例では、生成記述子138は、ロードされたコードブロック116〜128のコンテンツの以下の等式に従って、パリティブロック130を生成させる。すなわち、parity_blk=Code_blk0 XOR Code_blk1 XOR Code_blk2 XOR Code_blk3 XOR Code_blk4 XOR Code_blk5 XOR Code_blk6である。図2において、生成記述子138の一例となる実現形態が示される。一例となる生成記述子138は、パリティ生成を利用したRAID−5アルゴリズムに従って構成される。4kBベースはプログラム可能である。図2に示されるように、生成記述子138のオペコードは、0x87である。
図1を再び参照して、一例となる複数の記述子136はまた、コードブロック116〜128のコンテンツを検証するための検証記述子140を有する。一例となる検証記述子140は、キャッシュラインの何れかがポイズンインジケータによってマーキングされているか決定するため、SMMハンドラ112のキャッシュライン(すなわち、コードブロック116〜128)をチェックする。エラー検出ユニット104又はメモリコントローラ102は、ポイズンインジケータによって、検出されたエラーを含むキャッシュラインをマークする。このようなインジケータの存在は、検証記述子140に対応するキャッシュラインがエラーを含むことを判断させる。図3において、検証記述子140の一例となる実現形態が示される。一例となる検証記述子140は、上述された一例となる生成記述子138に類似する。しかしながら、検証記述子140のオペコードは、0x88である。検証記述子140の実行中、“訂正不可なECCエラー”により設定されたポイズンインジケータによって示されるようなエラーを有する何れかのブロックが検出された場合、不具合のあるソースアドレスが与えられたキャッシュラインについてキャプチャされ、DMAエンジン108が停止する。
一例となる複数の記述子136はまた、コードブロック116〜128の1以上がエラーを含む場合(例えば、上述された検証の試みによって決定されるように)、SMMハンドラ112のキャッシュラインハンドラ112のコンテンツを修復するため、修復記述子142を有する。図4において、修復記述子142の一例となる実現形態が示される。例示された具体例では、不具合のあるキャッシュラインのみが修復される。図4の一例となる修復記述子142は、生成記述子138と類似している。しかしながら、処理可能な長さは1キャッシュライン(64kB)に変更される。さらに、修復記述子142では、上述された検証において検出された不具合のあるソースアドレスが(ビット[11:8]のみが必要とされる)、パリティブロックアドレスとして利用されるが、パリティブロックアドレスは、不具合のあるソースブロックのアドレスを置換するのに利用される。例えば、図2のコードブロックアドレスと図4のコードブロックアドレスとの比較によって示されるように、コードブロック5においてエラーが発生すると、修復記述子142のパリティブロックアドレスがコードブロック5のアドレス(すなわち、0xA00)により置換され、コードブロック5のアドレスは、パリティブロックアドレス(0xE00)により置換される。
図1に戻って、図1の一例となるDMAエンジン108はまた、SMI生成手段144を有する。一例となるDMAエンジン108がエラー検出ユニット104からエラー通知(SMIリクエストなど)を受信するよう構成されるとき、DMAエンジン108の一例となるSMI生成手段144は、DMAエンジン108により受信されるSMIリクエストに対応するSMIを生成可能である。一例となるSMI生成手段144は、DMAエンジン108がSMMハンドラ112のインテグリティを検証及び/又は確立することに応答して、SMIを生成し、BIOS106に送信する。BIOS106は、SMMハンドラ112がエラーを含むリスクなく、SMMハンドラ112を利用することができる。
図1の計算プラットフォーム100を実現する一例となる方法が図1に示されたが、図1に示される要素、処理及び/又はデバイスの1以上は、他の何れかの方法により合成、分割、再構成、省略、削除及び/又は実装されてもよい。さらに、図1の一例となるプロテクション機構108、一例となるレジスタ134、一例となる生成記述子138、一例となる検証記述子140、一例となる修復記述子142、一例となるSMI生成手段144、一例となるSMMハンドラ112、一例となるプロテクトされた領域114及び/又はより全体的には一例となる計算プラットフォーム100は、ハードウェア、ソフトウェア、ファームウェア及び/又はハードウェア、ファームウェア及び/又はソフトウェアの何れかの組み合わせにより実現されてもよい。従って、例えば、図1の一例となるプロテクション機構108、一例となるレジスタ134、一例となる生成記述子138、一例となる検証記述子140、一例となる修復記述子142、一例となるSMI生成手段144、一例となるSMMハンドラ112、一例となるプロテクトされた領域114及び/又はより全体的には一例となる計算プラットフォーム100の何れかは、1以上の回路、プログラマブルプロセッサ、ASIC(Application Specific Integrated Circuit)、プログラマブルロジックデバイス(PLD)及び/又はフィールドプログラマブルロジックデバイス(FPLD)によって実現可能である。添付した装置の請求項の何れかが純粋にソフトウェア及び/又はファームウェアの実現形態をカバーするよう読まれるとき、図1の一例となるプロテクション機構108、一例となるレジスタ134、一例となる生成記述子138、一例となる検証記述子140、一例となる修復記述子142、一例となるSMI生成手段144、一例となるSMMハンドラ112、一例となるプロテクトされた領域114及び/又はより全体的には計算プラットフォーム100は、メモリ、DVD、CDなどのソフトウェア及び/又はファームウェアを格納する有形な媒体を含むよう明示的に規定される。さらに、図1の一例となるプロテクション機構108、一例となるレジスタ134、一例となる生成記述子138、一例となる検証記述子140、一例となる修復記述子142、一例となるSMI生成手段144、一例となるSMMハンドラ112、一例となるプロテクトされた領域114及び/又はより全体的には計算プラットフォーム100は、図1に示されるものに加えて又は代わりに、1以上の要素、処理及び/又はデバイスを含むものであってよく、及び/又は図示された要素、処理及びデバイスの何れか又はすべてのうちの1以上を含むものであってもよい。
図5は、POSTを実行するため図1の一例となるBIOS106を実現するのに実行可能なコンピュータ可読命令などを用いて実現可能な一例となる処理を示すフロー図である。図6は、SMRAM110のプロテクトされた領域114のSMMコードをプロテクトするため、図1の一例となるプロテクション機構108を実現するため実行可能なコンピュータ可読命令などを用いて実現可能な一例となる処理を示すフロー図である。図5及び6の一例となる処理は、プロセッサ、コントローラ及び/又は他の何れか適切な処理装置を用いて実行されてもよい。例えば、図5及び6の一例となる処理は、フラッシュメモリ、ROM(Read−Only Memory)及び/又はRAM(Random−Access Memory)などの有形なコンピュータ可読媒体に格納される符号化された命令(コンピュータ可読命令など)を用いて実現されてもよい。さらに又はあるいは、図5及び6の一例となる処理は、フラッシュメモリ、ROM、RAM、キャッシュ又は何れかの期間(例えば、延長された期間、永続的に、ブリーフインスタンス(brief instance)、一時的なバッファリングのため及び/又は情報のキャッシュのため)、において情報が格納される他の何れかの記憶媒体などの非一時的なコンピュータ可読媒体に格納される符号化された命令(コンピュータ可読命令など)を用いて実現されてもよい。ここで用いられる「非一時的なコンピュータ可読媒体」とは、何れかのタイプのコンピュータ可読媒体を含み、伝搬信号を除外するよう明示的に規定される。
あるいは、図5及び6の一例となる処理の一部又はすべては、ASIC、PLD、FPLD、ディスクリートロジック、ハードウェア、ファームウェアなどの何れかの組み合わせを用いて実現されてもよい。図5及び6の一例となる処理の一部又はすべては、ファームウェア、ソフトウェア、ディスクリートロジック及び/又はハードウェアの何れかの組み合わせなどの上記技術の何れかの組み合わせとして、又は手作業により実現されてもよい。さらに、図5及び6の一例となる処理は、図5及び6のフロー図を参照して説明されるが、図5及び6の処理を実現する他の方法が利用されてもよい。例えば、ブロックの実行順序は変更されてもよく、及び/又は説明されたブロックの一部は、変更、除外、細分化又は合成されてもよい。さらに、図5及び6の一例となる処理の何れか又はすべては、例えば、別々の処理スレッド、プロセッサ、デバイス、ディスクリートロジック、回路などによって順次的に及び/又は並列的に実行されてもよい。
図5を参照して、BIOS106は、計算プラットフォーム100のプロセッサ(例えば、図9に関して後述される一例となるプロセッサ912など)に結合される不揮発性メモリに格納されたマシーン可読命令の形式によりソフトウェア及び/又はファームウェアとして実現される。一般に、BIOS106は、オペレーティングシステムをブートする前に、1以上のハードウェア及びソフトウェアコンフィギュレーションを実行し、アクティビティをテストする(メモリ初期化、メモリパーティションなど)。
図5の例示された具体例では、BIOS106がPOSTを開始すると(ブロック500)、BIOS106は、図1の一例となる計算プラットフォーム100のリソースを初期化する(ブロック502)。ブロック502においてBIOS106により実行される従来の処理に加えて、一例となるBIOS106は、ここに説明される具体例に従って初期化を実行する。特に、BIOS106は、一例となるSMMハンドラ112をTSEGに格納するようプロテクトされた領域114を設定する(ブロック504)。上述されるように、この設定は、BIOS106がTSEGにおけるプロテクトされた領域114の位置によってDMAエンジン108のレジスタ134をプログラムし、レジスタ134をロックすることを含む。さらに、BIOS106は、SMMハンドラ112のコードをプロテクトされた領域114にロードし、SMMハンドラ112のコードがロードされると、パリティブロック130の生成をトリガする(ブロック506)。BIOS106は、プロテクトされた領域114及びDMAエンジン108に関連する設定及び初期化の精度を確認し、その後、トリガされたPOSTを継続及び/又は有効にする(ブロック510)。
図6を参照して、プロテクション機構108は、図示された具体例においてDMAエンジンによって実現される。より詳細には、図示された具体例の一例となるプロテクション機構108は、RAID−5アルゴリズム及びそのオペコードを利用するCB DMAによって実現される。RAID−5アルゴリズムは、コードブロック116〜128におけるエラーを訂正するパリティベースの方法のためのXORロジックを利用する。
図6の一例となるフロー図は、プロテクション機構108が初期化され(BIOS106などによって)、SMMハンドラ112のコードがプロテクトされた領域114にロードされるときのプロテクション機構108の動作に対応する(ブロック600)。図6の図示された具体例では、プロテクション機構108は、エラー検出ユニット104(IIOなど)を介しメモリコントローラ102がECCエラーを検出するまで、アイドル状態を維持する(ブロック602)。上述されるように、プロテクション機構108は、メモリコントローラ102からエラー通知(SMIリクエストなど)を受信又は傍受するよう構成される。ブロック602において、このような通知を受信することに応答して、プロテクション機構108は、SMRAM110のプロテクトされた領域114のコンテンツを検証することを試み始める(ブロック604)。ここに説明されるように、プロテクション機構108は、BIOS106がSMMモードを利用する際に損傷したコードを実行しないことを保証するため、SMMハンドラ112のコードを検証する(例えば、図1の検証記述子140などを用いて)。
5番目のコードブロック126などのチェックされているコードブロックのキャッシュラインがポイズンインジケータを有するとき(例えば、エラー検出ユニット104を介しメモリコントローラ102により配置されるとき)(ブロック606)、プロテクション機構108は、(図1の修復記述子142などを用いて)エラーを有するキャッシュラインを修復する(ブロック608)。例えば、5番目のコードブロック126がエラーを有するとき、以下の式が、5番目のコードブロック126を修復するのに利用される。すなわち、code_blk5=code_blk0 XOR code_blk1 XOR code_blk2 XOR code_blk3 XOR code_blk4 XOR parity_blk XOR code_blk6である。
エラーを有するキャッシュラインが修復されると、プロテクション機構108は、プロテクトされた領域114のSMMコード全体が検証されたか判断する(ブロック610)。あるいは、図6のブロック606に戻って、検証が試みられているキャッシュラインがエラーを含まない場合、プロテクション機構108は、プロテクトされた領域114のSMMコード全体が検証されたか判断する(ブロック610)。プロテクトされた領域114のSMMコード全体が検証されていない場合、プロテクション機構108は、プロテクトされたSMMコードの次のキャッシュラインを検証することを試みる(ブロック604)。そうでない場合、プロテクトされた領域114のSMMコード全体が検証されている場合、プロテクション機構108のSMI生成手段144は、メモリコントローラ102からプロテクション機構108によって傍受又は受信されたSMIリクエストに従ってSMIを生成する(ブロック612)。その後、プロテクション機構108は、アイドル状態に戻り(ブロック614)、メモリコントローラ102からの他のエラー通知を待機する(ブロック602)。
図7は、図1の一例となるプロテクション機構の第1アルゴリズムによりプロテクトされるような図1のコードブロック116〜128の図である。図7のカラムは、図1のパリティブロック130とコードブロック116〜128のキャッシュラインを表す。例えば、図7において“C1”としてラベル付けされた第1キャッシュラインは、第1キャッシュラインを表す。図7は、CB DMAエンジンに対してRAID−5パリティアルゴリズムを実現するプロテクション機構108を示す。図7に示されるように、複数のビットエラー(図7においてXにより表される)は、関連するキャッシュラインが訂正不可なECCエラーを含まない限り、単一のコード又はパリティブロックの何れか1つのキャッシュライン内に蓄積できる。
図8は、図1の一例となるプロテクション機構の第2アルゴリズムによりプロテクトされるような図1のコードブロックの図である。特に、図8は、CB DMAエンジンに対してRAID−6パリティアルゴリズムを実現するプロテクション機構108を示す。RAID−6のコンフィギュレーションは、例えば、各カラムの2つのキャッシュラインがプロテクトされることを可能にするさらなるプロテクションを提供する。このプロテクションを提供するため、コードブロックの1つ(図示された具体例ではcode blk6)が、商ブロック(quotient block)と置換される。図8のパリティブロックと商ブロックとは、RAID−6アーキテクチャに従って利用され、エラーを含むキャッシュラインを修復するのに利用される。
図9は、図2のマシーン可読命令を実行するため、及び/又は図1の一例となるBIOSリカバリモジュール102及び/又は一例となる計算プラットフォーム100の1以上の一例となるコンポーネントを実現するため利用される一例となるプロセッサシステムのブロック図である。図9に示されるように、プロセッサシステム910は、相互接続バス914に接続されるプロセッサ912を含む。プロセッサ912は、何れか適切なプロセッサ、処理ユニット又はマイクロプロセッサであってもよい。図9には示されていないが、システム910は、マルチプロセッサシステムであってもよく、プロセッサ912と異なり、同一であり又は類似し、相互接続バス914に通信接続される1以上のさらなるプロセッサを含むものであってもよい。
図9のプロセッサ912は、メモリコントローラ920及び入出力(I/O)コントローラ922を有するチップセット918に接続される。チップセット918は、I/O及びメモリ管理機能と共に、チップセット918に接続される1以上のプロセッサにアクセス可能であるか、又は利用される複数の汎用及び/又は特定用途レジスタ、タイマーなどを提供する。メモリコントローラ920は、プロセッサ912(又は複数のプロセッサがある場合には複数のプロセッサ)がシステムメモリ924及びマスストレージメモリ925にアクセスすることを可能にする機能を実行する。
システムメモリ924は、SRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ、ROMなどの何れか所望のタイプの揮発性及び/又は不揮発性メモリを含むものであってもよい。マスストレージメモリ925は、ハードディスクドライブ、光ドライブ、テープストレージデバイスなどを含む何れか所望のタイプのマスストレージデバイスを含むものであってもよい。
I/Oコントローラ922は、プロセッサ912がI/Oバス932を介し周辺I/Oデバイス926,928及びネットワークインタフェース930と通信することを可能にする機能を実行する。I/Oデバイス926,928は、キーボード、ビデオディスプレイ又はモニタ、マウスなどの何れか所望のタイプのI/Oデバイスであってもよい。ネットワークインタフェース930は、プロセッサシステム310が他のプロセッサシステムと通信することを可能にするイーサネット(登録商標)、デバイス、ATM(Asynchronous Transfer Mode)デバイス、802.11デバイス、DSLモデム、ケーブルモデム、セルラモデムなどであってもよい。
図3において、メモリコントローラ320とI/Oコントローラ322とは、チップセット318内の別々のブロックとして示されているが、これらのブロックにより実行される機能は、単一の半導体回路内に一体化されてもよいし、又は2以上の別々の集積回路を用いて実現されてもよい。
特定の方法、装置及び製造物が説明されたが、本特許のカバーする範囲はこれに限定されるものでない。他方、本特許は、添付した請求項の範囲内に文言上又は均等の教義の下で含まれるすべての方法、装置及び製造物をカバーする。

Claims (20)

  1. 計算プラットフォームにおいてメモリのセグメントをプロテクトする方法であって、
    エラーを示すインタラプトリクエストを傍受するステップと、
    メモリのプロテクトされた領域として指定されたメモリの第1セグメントが損傷しているか判断するステップと、
    前記メモリのプロテクトされた領域が損傷しているとき、コードのパリティブロックを用いて前記損傷しているメモリの領域を修復するステップと、
    前記メモリのプロテクトされた領域を検証したことに応答して、前記インタラプトリクエストに関するエラーを処理するため、前記メモリのプロテクトされた領域に格納されているコードの利用を有効にするインタラプトを生成するステップと、
    を有する方法。
  2. 前記メモリのプロテクトされた領域は、前記エラーを処理するためよう指定されたシステムマネージメントモードハンドラを含む、請求項1記載の方法。
  3. 前記メモリのプロテクトされた領域は、前記メモリのプロテクトされた領域を検証するため、プロテクション機構のみによってアクセス可能である、請求項1記載の方法。
  4. 前記メモリのプロテクトされた領域に格納されているコードを修復するため、パリティブロックを生成するステップをさらに有する、請求項1記載の方法。
  5. 前記メモリのプロテクトされた領域の位置を1以上のレジスタに格納し、前記レジスタをロックするステップをさらに有する、請求項1記載の方法。
  6. 前記傍受は、BIOS(Basic Input/Output System)が前記エラーを処理することを阻止する、請求項1記載の方法。
  7. 前記BIOSは、初期化処理中にシステムマネージメントモードハンドラを前記メモリのプロテクトされた領域にロードする、請求項6記載の方法。
  8. エラーを示すインタラプトリクエストを傍受するステップと、
    メモリのプロテクトされた領域として指定されたメモリの第1セグメントが損傷しているか判断するステップと、
    前記メモリのプロテクトされた領域が損傷しているとき、コードのパリティブロックを用いて前記損傷しているメモリの領域を修復するステップと、
    前記メモリのプロテクトされた領域を検証したことに応答して、前記インタラプトリクエストに関するエラーを処理するため、前記メモリのプロテクトされた領域に格納されているコードの利用を有効にするインタラプトを生成するステップと、
    を実行時にマシーンに実行させるための命令を格納した有形なマシーン可読媒体。
  9. 前記メモリのプロテクトされた領域は、前記エラーを処理するよう指定されたシステムマネージメントモードハンドラを含む、請求項8記載のマシーン可読媒体。
  10. 前記メモリのプロテクトされた領域は、前記メモリのプロテクトされた領域を検証するため、プロテクション機構のみによってアクセス可能である、請求項8記載のマシーン可読媒体。
  11. 前記メモリのプロテクトされた領域に格納されているコードを修復するのに利用されるパリティブロックを生成するステップを実行時にマシーンに実行させる命令を格納する、請求項8記載のマシーン可読媒体。
  12. 前記メモリのプロテクトされた領域の位置を1以上のレジスタに格納し、前記レジスタをロックするステップを実行時にマシーンに実行させる命令を格納する、請求項8記載のマシーン可読媒体。
  13. 前記メモリのセグメントは、
    前記傍受は、BIOS(Basic Input/Output System)によってプロテクトされるよう指定される、請求項8記載のマシーン可読媒体。
  14. 前記BIOSは、初期化処理中にシステムマネージメントモードハンドラを前記メモリのプロテクトされた領域にロードする、請求項13記載のマシーン可読媒体。
  15. メモリのセグメントをプロテクトする装置であって、
    エラーに関連する前記エラーの位置を示すインタラプトリクエストを受信する通信インタフェースと、
    メモリのプロテクトされた領域の位置によってプログラムされ、前記メモリのプロテクトされた領域の位置を含むようロックされる1以上のレジスタと、
    前記エラーの位置が前記メモリのプロテクトされた領域にあるとき、前記メモリのプロテクトされた領域の損傷したセグメントを修復する修復記述子と、
    前記メモリのプロテクトされた領域を検証する検証記述子と、
    前記検証記述子が前記メモリのプロテクトされた領域を検証したことに応答して、前記メモリのプロテクトされた領域に格納されているコードの利用を有効にするため、前記インタラプトリクエストに対応するインタラプトを生成するインタラプト生成手段と、
    を有する装置。
  16. 前記メモリのプロテクトされた領域は、システムマネージメントRAMのセグメント部分の先頭に配置される、請求項15記載の装置。
  17. 前記修復記述子は、パリティブロックを利用して、前記メモリのプロテクトされた領域の損傷したセグメントを修復する、請求項15記載の装置。
  18. 前記メモリのプロテクトされた領域に格納されているシステムマネージメントモードハンドラのコードに基づき、前記パリティブロックを生成するための生成記述子をさらに有する、請求項17記載の装置。
  19. 前記インタラプト生成手段は、前記インタラプトリクエストに対応するインタラプトをBIOS(Basic Input/Output System)に送信する、請求項15記載の装置。
  20. 前記BIOSは、前記メモリのプロテクトされた領域のコードを利用して、計算システムにおけるエラーを処理する、請求項19記載の装置。
JP2013521829A 2010-07-26 2011-07-20 メモリのセグメントをプロテクトするための方法及び装置 Expired - Fee Related JP5512892B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/843,617 US9063836B2 (en) 2010-07-26 2010-07-26 Methods and apparatus to protect segments of memory
US12/843,617 2010-07-26
PCT/US2011/044744 WO2012018529A2 (en) 2010-07-26 2011-07-20 Methods and apparatus to protect segments of memory

Publications (2)

Publication Number Publication Date
JP2013535738A true JP2013535738A (ja) 2013-09-12
JP5512892B2 JP5512892B2 (ja) 2014-06-04

Family

ID=45494535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013521829A Expired - Fee Related JP5512892B2 (ja) 2010-07-26 2011-07-20 メモリのセグメントをプロテクトするための方法及び装置

Country Status (8)

Country Link
US (1) US9063836B2 (ja)
EP (1) EP2598997B1 (ja)
JP (1) JP5512892B2 (ja)
KR (1) KR101473119B1 (ja)
CN (1) CN103140841B (ja)
AU (1) AU2011286271B2 (ja)
TW (1) TWI537967B (ja)
WO (1) WO2012018529A2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10223204B2 (en) * 2011-12-22 2019-03-05 Intel Corporation Apparatus and method for detecting and recovering from data fetch errors
EP2831788B1 (en) * 2012-03-30 2018-05-02 Intel Corporation Reporting malicious activity to an operating system
EP2901281B1 (en) * 2012-09-25 2017-11-01 Hewlett-Packard Enterprise Development LP Notification of address range including non-correctable error
WO2014175867A1 (en) 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
EP2989547B1 (en) * 2013-04-23 2018-03-14 Hewlett-Packard Development Company, L.P. Repairing compromised system data in a non-volatile memory
CN104347122B (zh) * 2013-07-31 2017-08-04 华为技术有限公司 一种消息式内存模组的访存方法和装置
CN108447516B (zh) * 2013-08-23 2020-04-24 慧荣科技股份有限公司 存取快闪存储器中存储单元的方法以及使用该方法的装置
KR102233068B1 (ko) 2014-09-01 2021-03-30 삼성전자주식회사 반도체 메모리 장치의 결함 메모리 셀 리페어 방법
US20160182963A1 (en) * 2014-12-23 2016-06-23 Sony Corporation Sentv tablet ux
US9817738B2 (en) 2015-09-04 2017-11-14 Intel Corporation Clearing poison status on read accesses to volatile memory regions allocated in non-volatile memory
US10437310B2 (en) * 2016-12-21 2019-10-08 Intel Corporation Technologies for secure hybrid standby power management
EP3413532A1 (en) 2017-06-07 2018-12-12 Hewlett-Packard Development Company, L.P. Monitoring control-flow integrity
KR102410306B1 (ko) * 2018-01-29 2022-06-20 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN110989918B (zh) 2018-10-03 2023-03-28 慧荣科技股份有限公司 写入控制方法以及数据存储装置及其控制器
TWI684988B (zh) * 2018-10-03 2020-02-11 慧榮科技股份有限公司 錯誤處置方法以及資料儲存裝置及其控制器
CN110990175B (zh) 2018-10-03 2023-03-14 慧荣科技股份有限公司 错误处置方法以及数据存储装置及其控制器
US20200201700A1 (en) * 2018-12-20 2020-06-25 Intel Corporation Device, system and method to identify a source of data poisoning
WO2020159533A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
WO2020167283A1 (en) 2019-02-11 2020-08-20 Hewlett-Packard Development Company, L.P. Recovery from corruption
US11113188B2 (en) 2019-08-21 2021-09-07 Microsoft Technology Licensing, Llc Data preservation using memory aperture flush order
US11221902B2 (en) * 2019-12-16 2022-01-11 Advanced Micro Devices, Inc. Error handling for resilient software
CN117116332B (zh) * 2023-09-07 2024-05-24 上海合芯数字科技有限公司 一种多比特错误处理方法、装置、服务器及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250936A (ja) * 1993-02-26 1994-09-09 Toshiba Corp コンピュータシステム
JP2000132462A (ja) * 1998-10-27 2000-05-12 Hitachi Ltd プログラム自己修復方式
US20040034816A1 (en) * 2002-04-04 2004-02-19 Hewlett-Packard Development Company, L.P. Computer failure recovery and notification system
US6745296B2 (en) * 2001-04-18 2004-06-01 Phoenix Technologies, Ltd. System and method for providing cacheable smram
JP2006514309A (ja) * 2003-03-12 2006-04-27 インテル・コーポレーション リチウム塩を用いた表面増感ラマン分光法の化学増感
US7321990B2 (en) * 2003-12-30 2008-01-22 Intel Corporation System software to self-migrate from a faulty memory location to a safe memory location

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345583A (en) * 1992-05-13 1994-09-06 Scientific-Atlanta, Inc. Method and apparatus for momentarily interrupting power to a microprocessor to clear a fault state
US5991856A (en) * 1997-09-30 1999-11-23 Network Associates, Inc. System and method for computer operating system protection
US6453429B1 (en) * 1999-04-29 2002-09-17 International Business Machines Corporation Method and apparatus for bus hang detection and identification of errant agent for fail safe access to trapped error information
US6311255B1 (en) * 1999-04-29 2001-10-30 International Business Machines Corporation System and method for selectively restricting access to memory for bus attached unit IDs
US6848046B2 (en) * 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
DE10135285B4 (de) * 2001-07-19 2005-08-04 Infineon Technologies Ag Speichereinrichtung und Verfahren zum Betreiben eines eine Speichereinrichtung enthaltenden Systems
US7043666B2 (en) * 2002-01-22 2006-05-09 Dell Products L.P. System and method for recovering from memory errors
US7165135B1 (en) * 2002-04-18 2007-01-16 Advanced Micro Devices, Inc. Method and apparatus for controlling interrupts in a secure execution mode-capable processor
US7318171B2 (en) 2003-03-12 2008-01-08 Intel Corporation Policy-based response to system errors occurring during OS runtime
JP4595342B2 (ja) * 2004-02-19 2010-12-08 日本電気株式会社 記憶装置のデータ書き込み、読み出し方法およびデータ記憶システム
US7386756B2 (en) * 2004-06-17 2008-06-10 Intel Corporation Reducing false error detection in a microprocessor by tracking instructions neutral to errors
TW200604934A (en) * 2004-07-16 2006-02-01 Benq Corp Firmware management system and method thereof
US20060203883A1 (en) 2005-03-08 2006-09-14 Intel Corporation Temperature sensing
US7711914B2 (en) * 2005-06-28 2010-05-04 Hewlett-Packard Development Company, L.P. Debugging using virtual watchpoints
KR101254186B1 (ko) 2006-08-10 2013-04-18 삼성전자주식회사 엑스트라 ecc가 적용된 정보 저장 매체 운용 방법, 정보저장 매체 및 그 장치
US20080126650A1 (en) * 2006-09-21 2008-05-29 Swanson Robert C Methods and apparatus for parallel processing in system management mode
JP4249779B2 (ja) * 2006-12-25 2009-04-08 株式会社東芝 デバイス制御装置
US8225181B2 (en) * 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8386868B2 (en) * 2008-04-16 2013-02-26 Sandisk Il, Ltd. Using programming-time information to support error correction
US20100017581A1 (en) * 2008-07-18 2010-01-21 Microsoft Corporation Low overhead atomic memory operations
US8248831B2 (en) * 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8464038B2 (en) * 2009-10-13 2013-06-11 Google Inc. Computing device with developer mode

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250936A (ja) * 1993-02-26 1994-09-09 Toshiba Corp コンピュータシステム
JP2000132462A (ja) * 1998-10-27 2000-05-12 Hitachi Ltd プログラム自己修復方式
US6745296B2 (en) * 2001-04-18 2004-06-01 Phoenix Technologies, Ltd. System and method for providing cacheable smram
US20040034816A1 (en) * 2002-04-04 2004-02-19 Hewlett-Packard Development Company, L.P. Computer failure recovery and notification system
JP2006514309A (ja) * 2003-03-12 2006-04-27 インテル・コーポレーション リチウム塩を用いた表面増感ラマン分光法の化学増感
US7321990B2 (en) * 2003-12-30 2008-01-22 Intel Corporation System software to self-migrate from a faulty memory location to a safe memory location

Also Published As

Publication number Publication date
US9063836B2 (en) 2015-06-23
AU2011286271B2 (en) 2014-08-07
KR101473119B1 (ko) 2014-12-15
US20120023364A1 (en) 2012-01-26
JP5512892B2 (ja) 2014-06-04
KR20130033416A (ko) 2013-04-03
EP2598997A4 (en) 2015-08-05
TW201212037A (en) 2012-03-16
EP2598997A2 (en) 2013-06-05
WO2012018529A3 (en) 2012-05-24
CN103140841A (zh) 2013-06-05
EP2598997B1 (en) 2018-11-07
WO2012018529A2 (en) 2012-02-09
TWI537967B (zh) 2016-06-11
AU2011286271A1 (en) 2013-02-07
CN103140841B (zh) 2016-01-20

Similar Documents

Publication Publication Date Title
JP5512892B2 (ja) メモリのセグメントをプロテクトするための方法及び装置
US9424200B2 (en) Continuous run-time integrity checking for virtual memory
US9612979B2 (en) Scalable memory protection mechanism
US7793347B2 (en) Method and system for validating a computer system
US8443261B2 (en) Transparent recovery from hardware memory errors
US8572441B2 (en) Maximizing encodings of version control bits for memory corruption detection
US8812828B2 (en) Methods and apparatuses for recovering usage of trusted platform module
US8751736B2 (en) Instructions to set and read memory version information
US20080034350A1 (en) System and Method for Checking the Integrity of Computer Program Code
US20130139008A1 (en) Methods and apparatus for ecc memory error injection
US8650437B2 (en) Computer system and method of protection for the system's marking store
US10910082B1 (en) Apparatus and method
US20080034264A1 (en) Dynamic redundancy checker against fault injection
EP3454216B1 (en) Method for protecting unauthorized data access from a memory
TWI509622B (zh) 具分散錯誤功能的記憶體及其分散錯誤位元的方法
CN111061591A (zh) 基于存储器完整性检查控制器实现数据完整性检查的系统和方法
EP3387535B1 (en) Apparatus and method for software self test
US20230367912A1 (en) Semiconductor chip apparatus and method for checking the integrity of a memory
US11269637B2 (en) Validating machine-readable instructions using an iterative validation process
CN117687833A (zh) 测试数据安全的方法、装置及存储介质
Surmacz et al. Bad Memory Blocks Exclusion in Linux Operating System

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140326

R150 Certificate of patent or registration of utility model

Ref document number: 5512892

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees