(57)【要約】【解決手段】一実施形態において、本発明は、システムのアドレスマップがシステムメモリにおける読み出し専用領域についてのサポートを含むかを判定し、含む場合、当該領域を設定し、当該領域に保護すべきデータを記憶する方法を含む。少なくとも部分的に信頼されたモードおよび信頼されないモードの両方で読み出すことができるこのデータは、信頼されないコードの実行中に、読み出し専用領域からアクセスすることができる。その他の実施形態も記載され、権利請求される。【選択図】図１
2013536505.tif 000002
【特許請求の範囲】
【請求項１】
システムのシステムアドレスマップが、システムメモリにおける読み出し専用領域についてのサポートを含んでいるかを判定する段階と、
含んでいる場合、少なくとも一部が、システム管理モード（ＳＭＭ）および非ＳＭＭの両方において読み出し可能であり、前記ＳＭＭにおいてだけ書き換え可能である保護すべきシステムデータを、前記読み出し専用領域を設定して、前記読み出し専用領域に記憶する段階と、
前記非ＳＭＭでのコードの実行中に、前記読み出し専用領域の前記保護すべきシステムデータにアクセスする段階と
を備える方法。
【請求項２】
システム動作の間、基本入出力システム（ＢＩＯＳ）を用いて、前記読み出し専用領域を再設定する段階をさらに備える請求項１に記載の方法。
【請求項３】
前記読み出し専用領域に、前記保護すべきシステムデータの少なくとも一部として、高度設定および電力インターフェース（ＡＣＰＩ）データを記憶する段階をさらに備える請求項１または２に記載の方法。
【請求項４】
非ＳＭＭコードの実行中に、前記システムの周辺装置から、前記読み出し専用領域内の位置への書き込みリクエストを受信し、前記書き込みリクエストに応答して、キャッシングエージェントから前記周辺装置に、偽のデータを含む終了メッセージを直接的に送信する段階をさらに備える請求項１から３のいずれか１項に記載の方法。
【請求項５】
非ＳＭＭコードの実行中に、前記システムの周辺装置から、前記読み出し専用領域内の位置への書き込みリクエストを受信し、前記書き込みリクエストに応答して、システム管理割り込みを信号伝達する段階をさらに備える請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記ＳＭＭに移行し、前記ＳＭＭで前記書き込みリクエストを処理する段階をさらに備える請求項４または５に記載の方法。
【請求項７】
偽のデータを含むアボート終了を前記周辺装置に返す段階をさらに備える請求項４から６のいずれか１項に記載の方法。
【請求項８】
システムであって、
命令を実行するプロセッサと、
前記システムのアドレス空間に対応して論理アドレスを物理アドレスに対応付けるシステムアドレスマップを含み、かつ前記プロセッサに接続されたチップセットと、
前記プロセッサに接続され、動的ランダムアクセスメモリ（ＤＲＡＭ）を含むシステムメモリと、
を備え、
前記システムアドレスマップは、前記システムメモリの少なくとも１つの読み出し専用領域に、複数の論理アドレスをマッピングし、
前記読み出し専用領域は、信頼されないモードにおいて読み出し可能であり、信頼されたモードにおいてだけ書き込み可能である、
システム。
【請求項９】
前記システムメモリに接続され、読み出しリクエストに応答して、前記読み出し専用領域からの情報を記憶するキャッシングエージェントをさらに備える請求項８に記載のシステム。
【請求項１０】
前記キャッシングエージェントに接続され、前記読み出し専用領域からの前記情報の前記キャッシングエージェントへの記憶を許可するかを決定するロジックをさらに備える請求項９に記載のシステム。
【請求項１１】
前記ロジックは、前記読み出しリクエストに応答して、前記キャッシングエージェントへの前記記憶をイネーブルし、前記信頼されないモードで発行された書き込みリクエストに応答して、前記読み出し領域からの第２情報が記憶されることを防止する請求項１０に記載のシステム。
【請求項１２】
前記ロジックは、前記信頼されないモードで発生した前記読み出し専用領域への書き込みリクエストをトラップする請求項１０または１１に記載のシステム。
【請求項１３】
前記ロジックは、システム管理リクエストを生成して、システム管理モード（ＳＭＭ）ハンドラが前記書き込みリクエストに応答して実行されるようにする請求項１０から１２のいずれか１項に記載のシステム。
【請求項１４】
前記ロジックは、前記書き込みリクエストのリクエスト元に、アボート終了を返す請求項１０から１３のいずれか１項に記載のシステム。
【請求項１５】
前記システムメモリにおける前記読み出し専用領域の位置に関する情報を記憶する第１対のレジスタと、前記読み出し専用領域が設定されているかを示すイネーブルインジケータおよび非許可エージェントが前記読み出し専用領域へのアクセスを試みていたことを示すステータスインジケータを記憶する制御レジスタとを含むレジスタの群をさらに備える請求項８から１４のいずれか１項に記載のシステム。
【請求項１６】
前記非許可エージェントは、前記読み出し専用領域への書き込みアクセスを求める非システム管理モード（ＳＭＭ）コードである請求項１５に記載のシステム。
【請求項１７】
コンピュータシステムに、
システムメモリがシステムファームウェアにより設定された読み出し専用領域を含むかを判定する手順と、
含む場合、前記システムファームウェアにより書き込まれた保護すべきシステムデータを、信頼されたモードにおいて記憶する手順と、
信頼されないモードでのコードの実行中に、前記読み出し専用領域の前記保護すべきシステムデータにアクセスする手順と
を実行させるプログラム。
【請求項１８】
信頼されない前記コードの実行中に、前記システムの周辺装置から、前記読み出し専用領域内の位置への書き込みリクエストを受信し、前記書き込みリクエストに応答して、前記信頼されたモードへの移行をイネーブルする割り込みを信号伝達する手順をさらに実行させる請求項１７に記載のプログラム。
【請求項１９】
偽のデータを含むアボート終了を前記周辺装置へ返す手順をさらに実行させる請求項１７または１８に記載のプログラム。
【請求項２０】
前記保護すべきシステムデータの少なくとも第１部分を、前記信頼されないモードにおいて、前記システムのキャッシュメモリに共有状態でキャッシュし、前記保護すべきシステムデータの少なくとも第２部分を、前記信頼されたモードにおいて、前記キャッシュメモリに排他的状態でキャッシュする手順をさらに実行させる請求項１７から１９のいずれか１項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
コンピュータプラットフォームが複雑性を増すにつれ、基本入出力システム（ＢＩＯＳ）およびＢＩＯＳとオペレーティングシステム（ＯＳ）との間の通信ルーチンを含むソフトウェアが攻撃のターゲットとされるようになっている。これらの攻撃のターゲットには、ＡＣＰＩ（高度設定および電力インターフェース）およびＵＥＦＩ（ユニファイド・エクステンシブル・ファームウェア・インターフェース）のランタイムサービスがなる場合がある。これらの攻撃に加え、ＢＩＯＳシステム管理モード（ＳＭＭ）領域が拡大し続けているが、ＢＩＯＳに必要な機能および続いて必要とされるメモリフットプリントが増大し続けている。多くの場合、このフットプリントは、ＳＭＭにおいてだけ可視かつアクセス可能な予約メモリ領域であるメモリのトップセグメント（ＴＳＥＧ）よりも高速に増大している。
【背景技術】
【０００２】
現在、メモリを攻撃から保護する唯一の方法は、ＳＭＭにおいて共有メモリを確保し、ＯＳがシステム管理割り込み（ＳＭＩ）を実行してＳＭＭへの移行を可能にすることである。ＢＩＯＳは、ＳＭＩソースを参照し、自己の内部の保護されたメモリ（システム管理ランダムアクセスメモリ（ＳＭＲＡＭ）もしくはＴＳＥＧと呼ばれる）に対してなんらかのアクションを実行する。これには、いくつかのアーキテクチャ上の問題がある。第一に、ＳＭＩの実行には、オーバーヘッドが含まれる。現在のプラットフォーム開発では、ＯＳベンダは、１つのＳＭＩを処理するための時間予算として、１９０マイクロ秒（μｓ）を設定している。多くのＢＩＯＳの実装製品がこの要件を満たすことができていない。したがって、ＳＭＲＡＭにより多くの機能をプッシュしてメモリを保護することは、不可能である。第二に、ＳＭＲＡＭに記憶された情報の全てを、読み出されないよう保護する必要はない。いくつかの重要なセクションは、読み出しおよび書き込みから（ＲＷ）から保護する必要があるが、情報の多くは、書き込みもしくはキャッシュの攻撃から保護するだけでよい。したがって、今日、規定されているところのＴＳＥＧは、適切に組織されておらず、アーキテクチャにとって効率的な方法で拡張することができない。別の保護方法としては、読み出し専用の、書き込みから保護されたシステムボードフラッシュメモリを用意することが挙げられるが、当該資源は容量が制限されており、リセットまたはＳＭＭベースのエージェント保護によってしか、更新することができない。
【図面の簡単な説明】
【０００３】
【図１】本発明の一実施形態に係るシステムアドレスマップである。
【図２】本発明の実施形態に係るシステムのブロック図である。
【図３】本発明の実施形態に係る方法のフロー図である。
【図４】本発明の別の実施形態に係る方法のフロー図である。
【図５】本発明の実施形態に係るシステムのブロック図である。
【図６】本発明の別の実施形態に係るシステムのブロック図である。
【発明を実施するための形態】
【０００４】
実施形態は、システムソフトウェア、より具体的には、ＢＩＯＳによって、ホストの可視メモリの一部を切り出し、そこに読み出し専用（ＲＯ）と記すことができるようにする。その後は、このメモリ領域は、アーキテクチャとして設計されたエージェント（ａｒｃｈｉｔｅｃｔｕｒａｌｌｙ  ｍｅａｓｕｒｅｄ  ａｇｅｎｔ）、たとえば、セキュアなコンテキストで実行されているＢＩＯＳによる場合以外は、書き込まれること、および、キャッシュ化されることから、保護される。本発明の範囲は以下に限定されないが、プロセッサ、メモリコントローラ、および／またはチップセットのロジックを用いてメモリ保護を提供してよい。被保護メモリは、変更された可能性を懸念することなく、ＯＳから実行および読み出すことができる。実施形態は、ＳＭＭオーバーヘッド、または、読み出し専用フラッシュ装置からの読み出し専用メモリ（ＲＯＭ）に基づく実行、を回避することにより、プラットフォーム性能に影響を与えることなく、ＯＳ通信経路における重要なＢＩＯＳコンポーネント等の各種情報を保護できるようにする。ＢＩＯＳ−ＯＳ間通信についていくつかの実施形態を記載するが、汎用性を失うことなく、その他の実施例を仮想マシンモニタ（ＶＭＭ）−仮想マシン（ＭＶ）間、またはＯＳ−ドライバ間の通信に適用することができる。また、この特性は、整合性が重要であるが機密性が重要でない（つまり、いかなるコードによっても読み出せるが、信頼されたエージェントによってだけ変更できる）、その他のメモリマップドリソース（ｍｅｍｏｒｙ−ｍａｐｐｅｄ  ｒｅｓｏｕｒｃｅｓ）を保護するべく適用することができる。本明細書の特定の実施形態がＢＩＯＳのコンテキストで記載されるが、より一般的な実施形態を、ＢＩＯＳを超越するシステムファームウェアで実施することができる。
【０００５】
したがって、実施形態では、システムメモリの一部を、読み出し専用メモリとして設ける。アドレスマップの０ｘＣ００００ｐ〜０ｘＦＦＦＦＦに「ＲＯＭ」が位置付けられた、いわゆるＰＣ／ＡＴシステムと呼ばれる従来のレガシーシステムでは、これらのメモリ位置を、システムメモリ、たとえば動的ランダムアクセスメモリ（ＤＲＡＭ）により裏付けることができるようにし、かつ、これらの領域を保護するべくチップセットもしくはアンコアにおいて、メモリ属性レジスタ（ＭＡＲ）もしくはプログラム可能属性マップ（ＰＡＭ）レジスタを使用することにより、チップセットサポートをエミュレートしていた。このハードウェアは、ＰＣ／ＡＴレガシーの「ランタイムＢＩＯＳ」に有用であった。
【０００６】
ＳＭＢＩＯＳ、ＡＣＰＩ、ユニファイドＥＦＩ（ＵＥＦＩ）ランタイムの登場により、チップセット／プラットフォームにおいてハードウェア資源の保護を受けることができ得る、プラットフォーム由来の帯状のメモリコンテンツ（ｓｗａｔｈｓ  ｏｆ  ｍｅｍｏｒｙ  ｃｏｎｔｅｎｔ）が存在する場合がある。これらの最新のファームウェアデータテーブルおよびコードにとって、製造委託製品製造業者（ＯＥＭ）ＳＭＭ等のセキュアな実行モードは、これらの資源の参照モニタ／ガードとして使用することができる。したがって、実施形態は、堅牢かつセキュアなプラットフォームを提供するべく用いることができる。
【０００７】
また、ＳＭＭを持たないシステム、または、ＳＭＭセキュリティについて懸念事項が存在するシステムにとって、この機能は、製造業者のシステムボードファームウェアが最初に起動されたときにおけるプラットフォームリセット時に利用可能としてよく、第三者コンテンツ（たとえば、オプションＲＯＭ、ＯＳローダ、ＯＳランタイム）の実行前に設定かつロックされる。これが至言であるのは、ＵＥＦＩランタイム、ＳＭＢＩＯＳ、およびＡＣＰＩは、システムボード製造業者から入手されるものであるべきであり、かつ、システムの出荷前に工場でセットアップされるべきであるからである。
【０００８】
ＳＭＭソフトウェアロジックの別の実施形態としては、ＣＰＵパッケージにおける集積サービスプロセッサが挙げられる。たとえば、チップ上のシステムは、メインのＣＰＵコアと一緒に集積された暗号用コプロセッサを有する場合がある。このような補助的な処理ユニットは、通常、メインの計算コアから区別するべく、「アンコア」の一部と呼ばれる。このコプロセッサは、ＢＩＯＳベースのＳＭＭと同じフローを提供しうる。
【０００９】
図１を参照すると、本発明の一実施形態に係る読み出し専用セグメント領域（ＲＳＥＧ）を含むシステムアドレスマップが示されている。別の実施形態では、ＲＳＥＧは、ハイメモリおよびローメモリの複数の領域であってよい。
【００１０】
図１に示すように、システムアドレスマップ１００が設けられる。一般的に、マップ１００には、システム内の利用可能な全てのメモリのアドレス空間が設けられる。多様な実施形態において、システムアドレスマップは、チップセット、メモリコントローラ、プロセッサ（たとえば、アンコアロジック）、もしくはその他のロケーションに設けてよい。一般的に、メモリマップは、メモリのソフトウェアビュー（ａ  ｓｏｆｔｗａｒｅ  ｖｉｅｗ  ｏｆ  ｍｅｍｏｒｙ）となるアドレス空間１１０を含む。図１の実施形態に見られるように、アドレス空間は、整合性（ｃｏｍｐａｔｉｂｉｌｉｔｙ）領域１１２、ローメモリ領域１１４、およびハイメモリ領域１１６に区画することができる。図１の例では、整合性領域１１２は１メガバイト（ＭＢ）であってよく、ローメモリ領域１１４は４ギガバイト（ＧＢ）に拡張され、ハイメモリ領域１１６は１６テラバイト（ＴＢ）に拡張されるが、本発明の範囲は、これに限定されない。
【００１１】
このアドレス空間は、ＤＲＡＭを含む多様なロケーションに存在しうる、システム内の実際の物理的メモリ、デバイス上のメモリ、メモリマップドＩ／Ｏ（ＭＭＩＯ）等にマッピングされる。図に見られるように、整合性領域１１２は、ディスクオペレーティングシステム（ＤＯＳ）範囲１２２、ビデオグラフィックスアダプタ（ＶＧＡ）メモリ１２４、及びＰＡＭ領域１２６を含んでよい。ローメモリ領域１１４は、システムメモリ、たとえばＤＲＡＭローメモリ１３１の一部にマッピングされてよい。次に、本発明の実施形態に係るＲＳＥＧ領域１３３を設けてよい。別の実施例では、この領域の容量は、約１ＭＢ（集積度の高いシステムオンチップ等の空間制約的システムにおいて）から１２８ＭＢ（大型のエンタープライズサーバにおいて）の間で設定してよい。この領域の上には、ＭＭＩＯロー領域１３４を設けてよい。次に、ＳＭＲＡＭに対応させてよいＴＳＥＧ領域１３５を設けてよい。次に、他のメモリ位置へのポインタとしてよい多様なメモリアパーチャ（ｍｅｍｏｒｙ  ａｐｅｒｔｕｒｅｓ）を設けてよい。これらのメモリアパーチャは、ＩＯ高度プログラム可能割り込みコントローラ（ａｄｖａｎｃｅｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｉｎｔｅｒｒｕｐｔ  ｃｏｎｔｒｏｌｌｅｒ：ＡＰＩＣ）アパーチャ１３６、トラステッドプラットフォームモジュール（ＴＰＭ）アパーチャ１３７、ローカルＡＰＩＣアパーチャ１３８、およびＢＩＯＳアパーチャ１３９であってよく、これらは、ＢＩＯＳイメージを含むフラッシュメモリをポイントしてよい。
【００１２】
ハイメモリ領域１１６は、システムＤＲＡＭハイメモリ領域１４２、ハイＲＳＥＧ領域１４４、ならびに、ＭＭＩＯハイ領域アパーチャ１４５、予約アパーチャ１４７、および特権的な制御およびステータスレジスタ（ＣＳＲ）アパーチャ１４７等の多様なメモリアパーチャを含むメモリ領域１４０にマッピングされてよい。たとえば、図１の実施形態においてこれらの特定的な実施例を示したが、本発明の範囲はこれに限定されないことを理解されたい。
【００１３】
図２は、本発明の一実施形態に係るＲＳＥＧに対する保護の実施例を示すロジックの図である。図２を参照すると、システム２００は、一実施形態では、最終レベルキャッシュ（ＬＬＣ）であってよいキャッシングエージェント２２０に、アンコアロジック２０５およびキャッシングロジック２１５を介して接続される中央演算処理装置（ＣＰＵ）コア２１０と、メモリコントローラ２３０とを備える。多様な実施例において、これらのコンポーネントのすべてを、１つの半導体ダイ内、たとえば、集積メモリコントローラを有するマルチコアプロセッサ内に集積してよい。しかし、本発明の範囲は、これに限定されない。さらに図にみられるように、メモリコントローラ２３０は、図示の実施形態では、複数のデュアルインラインメモリモジュール（ＤＩＭＭ）により実装される動的ランダムアクセスメモリであってよいシステムメモリ２４０に接続される。図に見られるように、ＤＲＡＭのうち少なくともいくつかは、ＲＳＥＧ領域２４５ａおよび２４５ｂを含んでよい。
【００１４】
コア２１０は、ＲＳＥＧ領域を実行することはできるが、信頼されたエージェント（トラステッドエージェント）をコアが実行していない限り、当該範囲に書き込むことができない。所定の条件により、ＲＳＥＧ領域を読み出し／書き込み可能に割り当てることにより、書き込み可能にすることができる。たとえば、ＢＩＯＳ  ＳＭＭハンドラを用いてＲＳＥＧ領域を変更してよいが、その他のエンティティによっては変更できない。したがって、システムメモリ２４０については、ＲＳＥＧ領域２４５を、システムアドレスマップにおいてノードの部分により区画された範囲として、ＢＩＯＳにより設定可能とすることができる。理解されるように、この領域は、任意に組み合わせた物理的もしくは仮想的なＲＡＭ装置上に拡張することができる。
【００１５】
キャッシングエージェント２２０は、ＲＳＥＧ領域における、非ＳＭＭ書き込みアクセスのための領域のキャッシングを防止するべく動作してよい。これにより、キャッシュ攻撃を回避しうる。さらに、他の実施形態では、非ＳＭＭ書き込み動作のためのＲＳＥＧ領域のキャッシングの防止に加えて、同様のキャッシング防止を、非ＳＭＭ読み出しにも適用してよい。
【００１６】
一実施形態では、以下のレジスタを設けることができる。レジスタの位置は多様であってよい（いくつかの実施形態では、複数のインスタンス化が存在しうる）が、一例として、レジスタは、プロセッサのアンコアロジック２０５のアドレスデコーダロジック２０４の一部として設けてよい。説明の目的では、レジスタは、各キャッシングエージェントにも設けることができると仮定する。もちろん、レジスタは、キャッシングロジック、チップセットロジック等のその他の場所にも設けてよい。これらのジレスタは、たとえば、下位メモリおよび上位メモリの両方においてＤＲＡＭのＲＳＥＧ領域を規定する。具体的には、これらのレジスタは、保護領域の境界を規定する制御レジスタを含む。
ＲＳＥＧＨＩ＿ＢＡＳＥ    上位４Ｇ領域におけるＲＳＥＧ領域の開始[６３：２０]（たとえば、１ＭＢずつインクリメント、最上位ビット（ＭＳＢ）は６３より小さくすることができる。）
ＲＳＥＧＨＩ＿ＬＩＭＩＴ  上位領域におけるＲＳＥＧ領域の終了
ＲＳＥＧＬＯ＿ＢＡＳＥ    下位４Ｇ領域におけるＲＳＥＧ領域の開始[３２：２０]（１ＭＢずつインクリメント）
ＲＳＥＧＬＯ＿ＬＩＭＩＴ  下位領域におけるＲＳＥＧ領域の終了
ＲＳＥＧ＿ＣＴＲＬＳＴＳ  イネーブルビットおよびステータスビットを含む。
【００１７】
多様な実施例において、この制御レジスタもしくは他の同様のレジスタは、第三者コードの実行前に設定されるＲＳＥＧ＿ＬＯＣＫ＿ＰＥＲＭロックビットをさらに含んでよく、その結果、ＳＭＭを含む後のいかなるエージェントによっても、上記のｎ−タプルのレジスタのＲＳＥＧ保護設定が変更できないようになる。このビットは、ＲＳＥＧ＿ＬＯＣＫ＿ＯＮＬＹ＿ＳＭＭ＿ＡＣＣＥＳＳＩＢＬＥロックビットが既に設定されている場合は、無視してよいことに注意されたい。このＲＳＥＧ＿ＬＯＣＫ＿ＯＮＬＹ＿ＳＭＭ＿ＡＣＣＥＳＳＩＢＬＥロックビットは、第三者コードの実行前に設定することができ、その結果、ＳＭＭ以外の後のいかなるエージェントによっても、上記のｎ−タプルのレジスタのＲＳＥＧ保護設定が変更できないようになる。さらに、このビットは、ＲＳＥＧ＿ＬＯＣＫ＿ＰＥＲＭが既に設定されている場合は、無視してよい。これらのレジスタは、ロック前は、早期システムボードファームウェアコードによって利用可能であるべきであり、ロック後は、ＳＭＭコードによってだけ利用可能であるべきである。
【００１８】
ＲＳＥＧで保護すべき情報の一例としては、ＵＥＦＩランタイムサービスがある。まず、パワーオン・セルフテスト（ＰＯＳＴ）の間に、ＢＩＯＳが通常通りメモリを初期化する。ＢＩＯＳ実施形態は、ｗｗｗ．ｕｅｆｉ．ｏｒｇ．で入手できるプラットフォーム初期化仕様１〜５巻に規定されるセキュリティの初期化（ＳＥＣ）、プレＥＦＩ（ＰＥＩ）、および実行におけるドライバ実行環境（ＤＸＥ）段階を含むことができるが、これらに限定されない。次に、ＢＩＯＳが、ＵＥＦＩランタイムサービスに占有されるメモリ領域としてＲＳＥＧを設定し、サービスを当該領域にロードする。その後、ＢＩＯＳは、このメモリ領域を、たとえば、境界および制御レジスタを設定することにより、ロックする。これには、ＲＳＥＧ領域のキャッシングを阻止および停止するようキャッシングエージェントに強制する効果がある。後にＢＩＯＳ  ＳＭＭを実行して、たとえば、境界レジスタを更新することにより、ＲＳＥＧ領域のサイズを変更することができる。この時点までに起動されたＢＩＯＳの全ては、プラットフォーム製造業者によりセットアップされており、したがって信頼される。領域を設定し、適切なロックを設定した後、ＢＩＯＳは、オペレーティングシステムを起動し、ＵＥＦＩ、従来のＰＣ／ＡＴ  ＢＩＯＳオプション、ホストバスアダプタ（ＨＢＡ）からのＲＯＭ等のその他の第三者コードを起動する。したがって、ＵＥＦＩランタイムサービスはＲＯであるので、ＵＥＦＩランタイムサービスのその後の使用は、プラットフォームの全エンティティによって信頼されることができる。
【００１９】
通常のシステム動作の間、ＲＳＥＧ違反が生じると、リクエストはトラップされ（たとえば、キャッシングロジックにより）、ＲＳＥＧ＿ＬＯＣＫ＿ＯＮＬＹ＿ＳＭＭ＿ＡＣＣＥＳＳＩＢＬＥが設定され、ＲＳＥＧ制御レジスタにステータスビットが設定され、ＳＭＩが生成される。ＳＭＭコードが実行されると、ステータスビットがクリアされ、トラップされたリクエストの終了が、たとえばＣＲＡＢ＿ＡＢＯＲＴ等のマスタアボートとして、コアに返される（たとえば、偽のデータが生成され、リクエスト元に返送される）。ＲＳＥＧ＿ＬＯＣＫ＿ＰＥＲＭ設定されたシステムでは、ＲＳＥＧにカバーされた領域への書き込みの試みは無視される。
【００２０】
キャッシングロジックが、非ＳＭＭ書き込みまたは非ＳＭＭオーナシップリクエスト（排他的（Ｅ）状態でデータを探すようキャッシュに求めるリクエスト）を受信すると、キャッシングロジックはリクエストをトラップし、ＳＭＩを生成するようメッセージを信号伝達する。リクエストは、ＳＭＭコードによってＲＳＥＧ制御レジスタのＲＳＥＧステータスインジケータがクリアされるまで保持され、その後、ＳＭＭからの退出が行われ、キャッシングロジックがコアにＣＲＡＢ＿ＡＢＯＲＴを生成できるようになる。多様な実施形態において、キャッシングロジックは、非キャッシング読み出しと、共有（Ｓ）状態（Ｓ状態では、キャッシュへの書き込みが阻止される）でキャッシュする読み出しリクエストを許可する。したがって、Ｓ状態でだけ領域をキャッシュできるようにすることで、コードが全速力で実行できるようになるが、書き込みは防止される。
【００２１】
ＳＭＭコードは、Ｅ状態または修正（Ｍ）状態でＲＳＥＧ領域をキャッシュすることを許可されてよいが、その後、キャッシュは通常実行に戻る前にフラッシュされる。また、上記のレジスタは、ＬＩＭＩＴ≦ＢＡＳＥである場合、または、ＲＳＥＧ＿ＣＴＲＬＳＴＳのイネーブルビットが設定されていない場合、何の効果も持たない。完全な保護を提供するべく、ＳＭＭコードは、これらのレジスタの内容を変更（上記したメカニズムを用いて）することを許可されてよい。性能を高めるべく、入出力（Ｉ／Ｏ）装置からのリクエストはいずれも、キャッシングロジックに送信され、キャッシングロジックで即座にＣＲＡＢ＿ＡＢＯＲＴされる（ＩＯ由来であるので、トラップすることによって、またはＳＭＩを信号伝達することによって、コアをストールする必要はない）。
【００２２】
図３を参照すると、本発明の実施形態に係る方法のフロー図が示されている。具体的には、図３は、ＢＩＯＳを使用して本発明の実施形態に係るＲＳＥＧ領域を設定する実施例を示す。図示されるように、方法３００は、ＢＩＯＳを介して実行されうる、システムのパワーオン・セルフテスト（ＰＯＳＴ）動作から開始されうる（ブロック３０５）。ＰＯＳＴが成功すると、ＢＩＯＳは、システムのメモリを設定してよい（ブロック３１０）。次に、制御はブロック３２０に移行し、ＢＩＯＳは、チップセット機能を読み出して、システムがＲＳＥＧ機能向けに設定されているかを確認してよい。つまり、チップセットは、１つ以上のＲＳＥＧ領域を含むアドレス空間（たとえば、図１に示す）を、たとえば、この特殊な設定を示す設定空間に存在するレジスタによって示されるように設けるよう設定されてよい。したがって、ＢＩＯＳは、本発明の実施形態に係るＲＳＥＧ動作をイネーブルするデバイスドライバを割り当ててロードしてよい。
【００２３】
さらに図３を参照すると、菱形のブロック３３０において、チップセットがＲＳＥＧをサポートしてないと判定された場合、制御はブロック３４０に移行し、ＲＳＥＧサポートなしで、ＢＩＯＳはさらにシステム設定を行ってよい。その他の場合、制御はブロック３５０に移行し、ＢＩＯＳは、１つ以上のＲＳＥＧ領域を設定して関連するデータを保護してよい。本発明の範囲は以下の点に関して限定されないが、保護されるデータは、ＵＥＦＩランタイムデータ、ＵＥＦＩランタイムコード、ＡＣＰＩテーブル等のＡＣＰＩデータ、ＳＭＢＩＯＳテーブル、ボリューム・ライセンス情報（たとえば、ＯＳ起動キー）、プラットフォーム識別子および認定情報（たとえば、ｗｗｗ．ｔｒｕｓｔｅｄｃｏｍｐｕｔｉｎｇｇｒｏｕｐ．ｏｒｇに記載されたトラステッドプラットフォームモジュールをサポートするシステムボードについてのプラットフォーム製造業者からの信用証明）等であってよい。ベースレジスタ、リミットレジスタ、制御レジスタ等の上記したレジスタ等、多様なレジスタの設定を含む設定が終わった後、ＢＩＯＳは、制御を、ＯＳブートローダに、そして、ＯＳに渡してよい（ブロック３６０）。そして、通常動作の間、ＢＩＯＳおよびＯＳの両方が（少なくとも読み出しとして）ＲＳＥＧ領域にアクセスし、記憶されたデータ／コードを使用してよい（ブロック３７０）。システム動作の間に、ＢＩＯＳは、所望の動作特性に基づいて、ＲＳＥＧ領域を再設定してよい。ＲＳＥＧ領域の移行、拡大、サイズ変更、オーバーライディング等であってよい再設定を実行するべく、ＢＩＯＳは、制御レジスタロックビットに関して上記したように、ＳＭＭモードの間にロックを設定して、ＲＳＥＧ領域への更新をイネーブルしてよい。図３の実施形態においてこの特定的な実施例を示したが、本発明の範囲はこれに限定されないことを理解されたい。
【００２４】
図４を参照すると、本発明の別の実施形態に係る方法のフロー図が示されている。図４に示すように、方法４００は、システム動作の間、ＲＳＥＧ領域の保護を取り扱うべく、用いられる。図に見られるように、たとえば、キャッシュロジック、チップセットロジック等の多様なハードウェアを用いて実施され得る方法４００は、ＲＳＥＧ領域への非ＳＭＭ書き込みリクエストが受信されたときに開始する（ブロック４１０）。説明の目的において、このリクエストは、たとえば、最終レベルキャッシュ等のキャッシュに対応づけられたロジックにおいて受信されたと仮定する。したがって、ロジックは、リクエストをトラップし、ステータスインジケータを設定し、ＳＭＩを信号伝達してよい（ブロック４２０）。たとえば、ステータスインジケータは、ＲＳＥＧ領域への書き込みアクセスが非ＳＭＭエンティティによって試みられていたことを示すべく、ＲＳＥＧ制御レジスタのステータスインジケータであってよい。本明細書で使用される「非ＳＭＭ」という用語は、システム管理モードの外部の、ＯＳおよびその他の第三者コード等のあらゆるコードを示すことが意図されているが、ＢＩＯＳコードは含まない。
【００２５】
さらに図４を参照すると、ＳＭＩ信号に応答して、ＳＭＭモードに移行してよい（ブロック４３０）。たとえば、所定のＳＭＭイベントハンドラを実行してよい。このハンドラの実行中、ハンドラは、ＲＳＥＧ制御レジスタを読み出し、ＲＳＥＧ制御レジスタのステータスインジケータをリセットしてよい。以下に限定されないが、たとえば、フラッシュ更新、電力管理、チップセットエラッタの回避、エラーロギング等のその他のＳＭＭオプションも実行してよい。次に制御はブロック４４０に移行し、システム管理モードから退出してよい。したがって、制御は、通常システム動作に戻り、アボート終了がリクエスト元に返される（ブロック４５０）。たとえば、キャッシングロジックは、終了メッセージ、たとえば、ＣＲＡＢ＿ａｂｏｒｔ終了メッセージ等のアボート終了メッセージの一部として、偽のデータを生成して送付してよい。図４の実施形態においてこの特定的な実施例を示したが、本発明の範囲はこれに限定されないことを理解されたい。
【００２６】
図３および図４の動作は、キャッシングエージェント以外でも実行してよい。たとえば、メモリコントローラ（ＭＣ）がリクエストをトラップし、ＳＭＩを信号伝達し、トラップしたリクエストをアボートすることができるなら、ＭＣでこれらの動作を実行することができる。これらの役割をシステムの多様なエンティティ間で分散することにより、その他の実施形態を実施することができる。
【００２７】
したがって、多様な実施形態において、ＢＩＯＳまたはＯＳが、読み出し動作および実行動作用のホストメモリのＲＯセクションを生成することができる。さらに、ＲＳＥＧ領域は、メモリ容量の追加、メモリ除去等の信頼性−可用性−保守性（ＲＡＳ）オペレーションのために、オーバーライドかつサイズ変更してよい。
【００２８】
実施形態は、多くの異なるシステム型で実施してよい。これらのうちいくつかのシステムとしては、デスクトップ、ラップトップ、ノートブック、ネットブック、もしくは、その他の種類のサーバシステム等のパーソナルコンピュータ（ＰＣ）ベースのシステムが挙げられる。しかし、実施形態は、いわゆるスマートホンを含む携帯電話、携帯情報端末、携帯インターネット機器、システムオンチップ（ＳｏＣ）ベースのシステム等のその他のシステムで実施してもよい。
【００２９】
図５を参照すると、本発明の実施形態に係るシステムのブロック図が示されている。図５に示すように、マルチプロセッサシステム６００は、ポイントツーポイント相互接続システムであり、ポイントツーポイントインターコネクト６５０を介して結合された第１プロセッサ６７０および第２プロセッサ６８０を備える。図５に示すように、各プロセッサ６７０および６８０は、第１および第２のプロセッサコア（つまり、プロセッサコア６７４ａおよび６７４ｂ、ならびにプロセッサコア６８４ａおよび６８４ｂ）を含むマルチコアプロセッサであってよいが、より多くのコアがプロセッサに設けられてもよい。これらのコアは、本発明の実施形態に係る、システムメモリの読み出し専用領域へのアクセス許可を取り扱うロジックを含んでよい。
【００３０】
さらに図５を参照して、第１プロセッサ６７０は、メモリコントローラハブ（ＭＣＨ）６７２と、ポイントツーポイント（Ｐ−Ｐ）インターフェース６７６および６７８とをさらに含む。同じく、第２プロセッサ６８０は、ＭＣＨ６８２と、Ｐ−Ｐインターフェース６８６および６８８とを含む。図５に示すように、ＨＣＨ６７２および６８２は、各プロセッサを、対応するメモリ、つまり、各プロセッサにローカルに取り付けられ、かつ、多様なシステムデータを記憶して、コア、メモリコントローラ、およびチップセット６９０の組み合わせにより当該システムデータを保護することができる１つ以上の読み出し専用領域を含んでよいシステムメモリ（たとえば、ＤＲＡＭ）の一部であってよいメモリ６３２およびメモリ６３４にそれぞれ接続する。第１プロセッサ６７０および第２プロセッサ６８０は、それぞれＰ−Ｐインターコネクト６５２および６５４を介してチップセット６９０に接続してよい。図５に示すように、チップセット６９０は、Ｐ−Ｐインターフェース６９４および６９８を含む。
【００３１】
さらに、チップセット６９０は、チップセット６９０を高性能グラフィックスエンジン６３８にＰ−Ｐインターコネクト６３９により接続するインターフェース６９２を含む。チップセット６９０は、インターフェース６９６を介して第１バス６１６に接続されてよい。図５に示すように、第１バス６１６を第２バス６２０に接続するバスブリッジ６１８とともに、多様な入出力（Ｉ／Ｏ）装置６１４が、第１バス６１６に接続されてよい。たとえば、キーボード／マウス６２２、通信装置６２６、および、たとえば一実施形態ではコード６３０を含んでよいディスクドライブもしくはその他の大容量記憶装置等のデータストレージユニット６２８等の多様な装置が第２バス６２０に接続されてよい。さらに、オーディオＩ／Ｏ６２４が第２バス６２０に接続されてよい。
【００３２】
上記したように、実施形態は、携帯電話等の移動体装置を含むその他の種類のシステムに組み込んでよい。図６を参照すると、本発明の別の実施形態に係るシステムのブロック図が示されている。図６に示すように、システム７００は、移動体装置であってよく、多様なコンポーネントを備えてよい。図６のハイレベル・ビューに示すように、装置の中央演算装置であってよいアプリケーションプロセッサ７１０は、ストレージ７１５等の多様なコンポーネントと通信している。ストレージ７１５は、多様な実施形態において、プログラム記憶部およびデータ記憶部の両方を含んでよく、本発明の実施形態に係るセキュアなストレージとなるようにマッピングすることができる。アプリケーションプロセッサ７１０は、多様な実施形態において、ディスプレイ、および、実行されるとディスプレイ上に出現することができるタッチキーパッド等の１つ以上の入力装置を含む入出力システム７２０に、さらに接続されてよい。
【００３３】
アプリケーションプロセッサ７１０は、さらに、音声およびデータ通信等の信号を出力するべく調整し、また、受信すべき電話およびその他の信号を調整するベースバンドプロセッサ７３０に接続されてよい。図に見られるように、ベースバンドプロセッサ７３０は、受信機能および送信機能の両方をイネーブルし得る送受信機７４０に接続されている。送受信機７４０は、無線ワイドエリアネットワーク（たとえば、３Ｇもしくは４Ｇネットワーク）、および／または、無線ローカルエリアネットワーク（たとえば、ブルートゥース（登録商標）ネットワーク、または、電気電子技術者協会の８０２．１１規格に準拠するいわゆるワイファイ（登録商標）ネットワーク）等の１つ以上の通信プロトコルを介して、音声信号およびデータ信号を送受信することができる任意の種類のアンテナであってよいアンテナ７５０と通信してよい。図に見られるように、システム７００は、移動環境での動作を可能にする充電式電池を有する充電式電源７２５をさらに備えてよい。図６の実施形態においてこの特定的な実施例を示したが、本発明の範囲はこれに限定されない。
【００３４】
実施形態は、コードとして実施してよく、命令を実行するようにシステムをプログラムするべく用いることができる当該命令を記憶した記憶媒体に記憶してよい。記憶媒体は、フロッピー（登録商標）ディスクと、光ディスクと、光ディスクと、半導体ドライブ（ＳＳＤ）と、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）と、書き換え可能コンパクトディスク（ＣＤ−ＲＷ）と、光磁気ディスクと、読み出し専用メモリ（ＲＯＭ）、動的ランダムアクセスメモリ（ＤＲＡＭ）および静的ランダムアクセスメモリ（ＳＲＡＭ）等のランダムアクセスメモリ（ＲＡＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）等の半導体装置と、磁気または光カードと、電子的命令を記憶するのに適したその他の任意の種類の媒体等の任意の種類の持続性記憶媒体を含むが、これらに限定されない。
【００３５】
本発明を限られた数の実施形態に関して記載したが、当業者であれば、これらから多様な変更および変形に想到するであろう。添付の特許請求の範囲は、そのような変更および変形を、本発明の真の趣旨および範囲内に存在するものとして、その範囲に含むことが意図されている。
【図１】
2013536505.tif 000003
【図２】
2013536505.tif 000004
【図３】
2013536505.tif 000005
【図４】
2013536505.tif 000006
【図５】
2013536505.tif 000007
【図６】
2013536505.tif 000008
【国際調査報告】
2013536505.tif 000009
2013536505.tif 000010