(57)【要約】裏口アクセス機構を閉鎖するための方法、デバイスおよびシステム。１以上のハードウェアデバッグテスト（HDT）イネーブルビットを格納するように構成された第１のレジスタと、複数のHDT入力信号を受信すべく接続された第１の制御ロジックと、第１のレジスタに接続された第２の制御ロジックとが、プロセッサに含まれる。第１の制御ロジックは第１のレジスタにアクセスすべく接続されている。第２の制御ロジックはプロセッサのリセットに応答して１以上のデフォルト値を第１のレジスタに格納するように構成されている。もうひとつのプロセッサには、複数のマイクロコード入力を受信すべく接続された第１の制御ロジックと、第１の制御ロジックに接続された第１のレジスタと、第１のレジスタに接続された第２の制御ロジックとが含まれる。第１のレジスタは、１以上のマイクロコードローダーイネーブルビットを格納するように構成されている。第２の制御ロジックは、プロセッサのリセットに応答して１以上のデフォルト値を第１のレジスタに格納するように構成されている。
2005501313.tif 000002
【特許請求の範囲】
【請求項１】
１以上のハードウェアデバッグテスト（HDT）イネーブルビットを格納するように構成された第１のレジスタと、
複数のHDT入力信号を受信すべく接続された第１の制御ロジックであって、第１のレジスタにアクセスすべく接続された第１の制御ロジックと、
第１のレジスタに接続され、プロセッサのリセットに応答して１以上のデフォルト値を第１のレジスタに格納するように構成された第２の制御ロジックと、を含むプロセッサ。
【請求項２】
第１の制御ロジックがさらに、HDTモードに入る要求を受信するように構成され、第１の制御ロジックがさらに、HDTモードに入る要求に応答して、第１のレジスタに格納された１以上のHDTイネーブルビットの選択されたエントリを読み出すように構成され、第１の制御ロジックがさらに、１以上のHDTイネーブルビットの選択されたエントリに基づいて、HDTモードに入る要求を受け入れるまたは拒否するように構成されている、請求項１に記載のプロセッサ。
【請求項３】
１以上のHDTイネーブルビットの１以上のデフォルト値を格納するように構成された１以上の不揮発性メモリセルをさらに含み、第２の制御ロジックがさらに、プロセッサのリセットに応答して、１以上のHDTイネーブルビットの１以上のデフォルト値を１以上の不揮発性メモリセルから読み出し、かつ、１以上のHDTイネーブルビットの１以上のデフォルト値を第１のレジスタに書き込むべく接続されている、請求項１に記載のプロセッサ。
【請求項４】
第２の制御ロジックがさらに、プロセッサのリセットに応答して、１以上のHDTイネーブルビットの１以上のデフォルト値を示す信号を受信し、かつ、１以上のHDTイネーブルビットの１以上のデフォルト値を第１のレジスタに書き込みすべく接続されている、請求項１に記載のプロセッサ。
【請求項５】
１以上のマイクロコードローダーイネーブルビットを格納するように構成された第３のレジスタと、
複数のマイクロコード入力を受信すべく接続された第３の制御ロジックであって、第３のレジスタにアクセスすべく接続されている第３の制御ロジックと、
第３のレジスタに接続され、プロセッサのリセットに応答して１以上のデフォルト値を第３のレジスタに格納するように構成された第４の制御ロジックと、をさらに含む、請求項１に記載のプロセッサ。
【請求項６】
第３の制御ロジックがさらに、マイクロコード修正要求を受信するように構成され、第３の制御ロジックがさらに、マイクロコード修正要求に応答して、第３のレジスタに格納された１以上のマイクロコードローダーイネーブルビットの選択されたエントリを読み出すように構成され、第３の制御ロジックがさらに、１以上のマイクロコードローダーイネーブルビットの選択されたエントリに基づいて、マイクロコード修正要求を受け入れるまたは拒否するように構成されている、請求項５に記載のプロセッサ。
【請求項７】
第１の制御ロジックに接続された第２のレジスタをさらに含み、第２のレジスタが１以上のHDTイネーブルロックビットを格納するように構成されている、請求項１に記載のプロセッサ。
【請求項８】
第１の制御ロジックがさらに、HDTモードのステータスの修正要求を受信するように構成され、第１の制御ロジックがさらに、HDTモードのステータスの修正要求に応答して、第２のレジスタに格納された１以上のHDTイネーブルロックビットの選択されたエントリを読み出すように構成され、第１の制御ロジックがさらに、１以上のHDTイネーブルロックビットの選択されたエントリに基づいて、HDTモード修正要求を受け入れるまたは拒否するように構成されている、請求項７に記載のプロセッサ。
【請求項９】
複数のマイクロコード入力を受信すべく接続された第１の制御ロジックと、
第１の制御ロジックに接続され、１以上のマイクロコードローダーイネーブルビットを格納するように構成された第１のレジスタと、
第１のレジスタに接続され、プロセッサのリセットに応答して１以上のデフォルト値を第１のレジスタに格納するように構成された第２の制御ロジックと、を含むプロセッサ。
【請求項１０】
第１の制御ロジックがさらに、マイクロコード修正要求を受信するように構成され、第１の制御ロジックがさらに、マイクロコード修正要求に応答して、第１のレジスタに格納された１以上のマイクロコードローダーイネーブルビットの選択されたエントリを読み出すように構成され、第１の制御ロジックがさらに、１以上のマイクロコードローダーイネーブルビットの選択されたエントリに基づいて、マイクロコード修正要求を受け入れるまたは拒否するように構成されている、請求項９に記載のプロセッサ。
【請求項１１】
１以上のマイクロコードローダーイネーブルビットの１以上のデフォルト値を格納するように構成された１以上の不揮発性メモリセルをさらに含み、第２の制御ロジックがさらに、プロセッサのリセットに応答して、１以上のマイクロコードローダーイネーブルビットの１以上のデフォルト値を１以上の不揮発性メモリセルから読み出し、かつ、１以上のマイクロコードローダーイネーブルビットの１以上のデフォルト値をマイクロコードローダーのレジスタに書き込むべく接続されている、請求項９に記載のプロセッサ。
【請求項１２】
第２の制御ロジックがさらに、プロセッサのリセットに応答して、１以上のマイクロコードローダーイネーブルビットの１以上のデフォルト値を示す信号を受信し、かつ、１以上のマイクロコードローダーイネーブルビットの１以上のデフォルト値を第１のレジスタに書き込みすべく接続されている、請求項９に記載のプロセッサ。
【請求項１３】
第１の制御ロジックに接続された第２のレジスタをさらに含み、第２のレジスタが１以上のマイクロコードローダーイネーブルロックビットを格納するように構成されている、請求項９に記載のプロセッサ。
【請求項１４】
第１の制御ロジックがさらに、マイクロコードローダーのロックステータス修正要求を受信するように構成され、第１の制御ロジックがさらに、マイクロコードローダーのロックステータス修正要求に応答して、第２のレジスタに格納された１以上のマイクロコードローダーイネーブルロックビットの選択されたエントリを読み出すように構成され、第１の制御ロジックがさらに、１以上のマイクロコードローダーイネーブルロックビットの選択されたエントリに基づいて、マイクロコードローダーのロックステータス修正要求を受け入れるまたは拒否するように構成されている、請求項１３に記載のプロセッサ。
【請求項１５】
HDTモードの開始要求を受信し、
HDTモードのイネーブルステータスを判断し、
HDTモードのイネーブルステータスがイネーブルに設定されている場合にHDTモードを開始することを含む、HDTモードのイネーブルステータスを判断するための方法。
【請求項１６】
HDTモードのイネーブルステータスを判断することが、１以上のHDTイネーブルビットに対応する１以上のエントリをレジスタから読み出すことを含む、請求項１５に記載の方法。
【請求項１７】
マイクロコード修正要求を受信し、
マイクロコードローダーのイネーブルステータスを判断し、
マイクロコードローダーのイネーブルステータスがイネーブルに設定されている場合にマイクロコードを修正することを含む、マイクロコードを修正するための方法。
【請求項１８】
マイクロコードローダーのイネーブルステータスを判断することが、１以上のマイクロコードローダーイネーブルビットに対応する１以上のエントリをレジスタから読み出すことを含む、請求項１７に記載の方法。
【請求項１９】
HDTモードのステータスの変更要求を受信し、
HDTモードのイネーブルロックステータスを判断し、
HDTモードのイネーブルロックステータスがアンロックに設定されている場合にHDTモードのステータスを修正することを含む、HDTモードのステータスの変更方法。
【請求項２０】
HDTモードのイネーブルロックステータスを判断することが、１以上のHDTイネーブルロックビットに対応する１以上のエントリをレジスタから読み出すことを含む、請求項１９に記載の方法。
【請求項２１】
HDTモードのステータスを修正することが、１以上のHDTイネーブルビットに対応する１以上のエントリをレジスタに書き込むことを含む、請求項１９に記載の方法。
【請求項２２】
マイクロコードローダーのイネーブルステータスの変更要求を受信し、
マイクロコードローダーのイネーブルロックステータスを判断し、
マイクロコードローダーのイネーブルロックステータスがアンロックに設定されている場合にマイクロコードローダーのイネーブルステータスを修正することを含む、マイクロコードローダーのイネーブルステータスの変更方法。
【請求項２３】
マイクロコードローダーのイネーブルロックステータスを判断することが、１以上のマイクロコードローダーイネーブルロックビットに対応する１以上のエントリをレジスタから読み出すことを含む、請求項２２に記載の方法。
【請求項２４】
マイクロコードローダーのイネーブルステータスを修正することが、１以上のマイクロコードローダーイネーブルビットに対応する１以上のエントリをレジスタに書き込むことを含む、請求項２２に記載の方法。
【請求項２５】
１以上の不揮発性メモリセルから１以上のデフォルト値を読み出すことと、プルアップレジスタまたはプルダウンレジスタによって１以上のデフォルト値をストラップされた値として受信することと、からなる群から選択される、１以上のデフォルト値を取得することと、
プロセッサのリセットに応答して、１以上のデフォルト値を１以上のさまざまなエントリとして１以上のレジスタに書き込むことと、を含み、１以上のさまざまなエントリは、
１以上のHDTイネーブルビットと、
１以上のHDTイネーブルロックビットと、
マイクロコードローダーの１以上のイネーブルビットと、
マイクロコードローダーの１以上のイネーブルロックビットと、からなる群から選択される、プロセッサを動作させる方法。
【発明の詳細な説明】
【関連出願の表示】
【０００１】
本件出願は、発明者デール・イー・ギューリック（Dale  E．Gulick）およびジェフリー・エス・ストロンギン（Geoffrey  S．Strongin）、発明の名称「Secure  Execution  Box  and  Method（セキュア実行ボックスおよび方法）」である、２００１年５月１０日に出願の係属中の米国特許出願第０９／８５２，３７２号の一部継続出願である。また、本件出願は、発明者ジェフリー・エス・ストロンギンおよびデール・イー・ギューリック、２００１年５月１０日に出願の発明の名称「Computer  System  Architecture  for  Enhanced  Security  and  Manageability（セキュリティを高め、かつ管理の容易性を高めるためのコンピュータシステムアーキテクチャ）」である、係属中の米国特許出願第０９／８５２，９４２号の一部継続出願でもある。
【技術分野】
【０００２】
本発明は、広義にはコンピュータシステムに関し、特に、パーソナルコンピュータシステムを不正な裏口アクセスから保護するための方法および装置に関する。
【背景技術】
【０００３】
代表的なコンピュータシステム１００を図１に示す。このコンピュータシステム１００は、プロセッサ１０２と、ノースブリッジ１０４と、メモリ１０６と、AGP（Advanced  Graphics  Port）メモリ１０８と、PCI（Peripheral  Component  Interconnect）バス１１０と、サウスブリッジ１１２と、バッテリと、ATアタッチメント（ATA）インタフェース１１４[より一般的にはIDE（Integrated  Drive  Electronics）インタフェースとして知られる]と、ユニバーサルシリアルバス（USB）インタフェース１１６と、Low  Pin  Count（LPC）バス１１８と、入出力コントローラチップ（Super  I／OTM）１２０と、BIOSメモリ１２２とを含む。ノースブリッジ１０４およびサウスブリッジ１１２は、チップをひとつしか含まないものであってもよいし、全体を総称して「チップセット」と呼ぶ複数のチップを含むものであってもよい点に注意されたい。また、コンピュータシステム１００には、キャッシュ、モデム、パラレルインタフェースまたはシリアルインタフェース、SCSIインタフェース、ネットワークインタフェースカード［「Super  I／O」はカリフォルニア州サンタクララのナショナルセミコンダクターコーポレーションの商標である]など、必要に応じて他のバス、デバイスおよび／またはサブシステムを含み得る点にも注意されたい。
【０００４】
プロセッサ１０２はノースブリッジ１０４に接続されている。ノースブリッジ１０４は、プロセッサ１０２、メモリ１０６、AGPメモリ１０８、PCIバス１１０それぞれの相互インタフェースを提供する。サウスブリッジ１１２は、PCIバス１１０、IDEインタフェース１１４やUSBインタフェース１１６、LPCバス１１８に接続された周辺機器やデバイス、サブシステムそれぞれの相互インタフェースを提供する。バッテリ１１３はサウスブリッジ１１２に接続された状態で示されている。Super  I／OTMチップ１２０はLPCバス１１８に接続されている。
【０００５】
ノースブリッジ１０４は、プロセッサ１０２、メモリ１０６、AGPメモリ１０８、PCIバス１１０に接続されたデバイス、サウスブリッジ１１２に接続されたデバイスおよびサブシステム同士および／またはこれらの間での通信アクセスを提供する。一般に、コンピュータシステム１００への接続用のPCIバス１１０とつながるPCI「スロット」（図示せず）に、着脱自在の周辺デバイスが挿入される。あるいは、マザーボード上にあるデバイスをPCIバス１１０に直接接続してもよい。
【０００６】
サウスブリッジ１１２は、PCIバス１１０と、LPCバス１１８（あるいはX−バスまたはISAバスなどの旧世代のバス）を介してコンピュータシステム１００に接続されているのが普通であるモデムやプリンタ、キーボード、マウスなどのさまざまなデバイスやサブシステムとの間のインタフェースを提供する。サウスブリッジ１１２には、デバイスとコンピュータシステム１００の残りの部分とを、IDEインタフェース１１４、USBインタフェース１１６、LPCバス１１８を介してインタフェースするロジックが含まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ハードウェア的な観点からみると、x８６の動作環境では、ユーザプライバシーの保護、企業秘密および法人資産に対するセキュリティの提供、あるいはコンテンツプロバイダの所有者の権利の保護という点ではほとんど何もしていない。これらの目標すなわちプライバシー、セキュリティ、所有権（Privacy、Security、Ownership：以下、PSOと総称する）はいずれもコンピュータがインターネットに接続される時代にあって次第に重要なものとなりつつあるが、初期のパーソナルコンピュータはPSOの需要を見越して設計されたものではなかった。
【０００８】
ソフトウェア的な観点からみても、x８６の動作環境がPSOの点で粗末なことに変わりはない。ソフトウェア経由あるいは単にパーソナルコンピュータのカバーを開けるだけでハードウェアを直接いじることが容易であるため、セキュリティソフトウェアおよびデバイスの大半が侵入者または泥棒による危機にさらされる。パーソナルコンピュータはものの見事に使いやすいものであるが、この点はPSOの問題を大きくするにすぎないのである。
【課題を解決するための手段】
【０００９】
発明の開示
本発明によれば、プロセッサが得られる。このプロセッサは、１以上のハードウェアデバッグテスト（HDT）イネーブルビットを格納するように構成された第１のレジスタと、複数のHDT入力信号を受信すべく接続された第１の制御ロジックと、第１のレジスタに接続された第２の制御ロジックと、を含む。第１の制御ロジックは第１のレジスタにアクセスすべく接続されている。第２の制御ロジックは、プロセッサのリセットに応答して１以上のデフォルト値を第１のレジスタに格納するように構成されている。
【００１０】
本発明によれば、HDTモードのイネーブルステータスを判断するための方法が得られる。この方法は、HDTモードの開始要求を受信し、HDTモードのイネーブルステータスを判断し、HDTモードのイネーブルステータスがイネーブルに設定されている場合にHDTモードを開始することを含む。
【００１１】
本発明によれば、マイクロコードを修正するための方法が得られる。この方法は、マイクロコード修正要求を受信し、マイクロコードローダーのイネーブルステータスを判断し、マイクロコードローダーのイネーブルステータスがイネーブルに設定されている場合にマイクロコードを修正することを含む。
【００１２】
本発明によれば、HDTモードのステータスの変更方法が得られる。この方法は、HDTモードのステータスの変更要求を受信し、HDTモードのイネーブルロックステータスを判断し、HDTモードのイネーブルロックステータスがアンロックに設定されている場合にHDTモードのステータスを修正することを含む。
【００１３】
本発明によれば、マイクロコードローダーのイネーブルステータスの変更方法が得られる。この方法は、マイクロコードローダーのイネーブルステータスの変更要求を受信し、マイクロコードローダーのイネーブルロックステータスを判断し、マイクロコードローダーのイネーブルロックステータスがアンロックに設定されている場合にマイクロコードローダーのイネーブルステータスを修正することを含む。
【００１４】
本発明によれば、プロセッサを動作させる方法が得られる。この方法は、１以上の不揮発性メモリセルから１以上のデフォルト値を読み出すことと、プルアップレジスタまたはプルダウンレジスタによって１以上のデフォルト値をストラップされた値（strapped  value）として受信することと、からなる群から選択される、１以上のデフォルト値を得ることを含む。この方法は、プロセッサのリセットに応答して、１以上のデフォルト値を１以上のさまざまなエントリとして１以上のレジスタに書き込むことを含む。１以上のさまざまなエントリは、１以上のHDTイネーブルビットと、１以上のHDTイネーブルロックビットと、マイクロコードローダーの１以上のイネーブルビットと、マイクロコードローダーの１以上のイネーブルロックビットと、からなる群から選択される。
【００１５】
添付の図面を参照しての以下の説明を参照することで、本発明を理解することができよう。図中、同様の構成要素には同様の参照符号を付してある。
【００１６】
本発明はさまざまな改変や別の形態が可能なものであるが、その具体的な実施形態を一例として図示し、本願明細書中にて詳細に説明する。しかしながら、本願明細書に記載の具体的な実施形態についての説明は、ここに開示の特定の形態に本発明を限定することを意図したものではなく、添付の特許請求の範囲に定義した本発明の範囲に含まれる改変例、等価物および別の形をすべて包含することを意図している点を理解されたい。
【発明を実施するための最良の形態】
【００１７】
以下、実例としての本発明の実施形態について説明する。説明を明確にするため、本願明細書では実際の実施例における特徴をすべて説明したわけではない。もちろん、このような実際の実施形態を開発するにあたっては、いずれの場合もシステム関連の制約やビジネス関連の制約を踏まえるなど、実施例ごとにさまざまな判断を行って開発者らの意図する目的を達成していく必要があり、これは実施例ごとに異なるものであることは理解できよう。さらに、このような開発作業は複雑かつ時間を要するものになる場合があるが、それでも本願の開示内容を利用できる当業者らにとっては日常業務の一環であろうことも理解できよう。参照符号にアルファベットも加えてあるのは、それぞれの参照符号を付した項目の別の実施形態または例を示すためである。
【００１８】
低消費電力設計されたコンピュータシステムの動作モードのひとつにシステム管理モード（system management mode:SMM）がある。SMMは第四世代のx８６プロセッサ用に作られたものである。新しい世代のx８６プロセッサが登場するにつれて、SMMはオペレーティングシステムにとって相対的にトランスペアレントなものとなっていった。すなわち、コンピュータシステムはオペレーティングシステムに対してほとんどまたは全く影響を与えることなくSMMに入ったりこのモードから抜けたりするのである。
【００１９】
本発明の一態様による、セキュア実行ボックス２６０を有するコンピュータシステムにおけるデータ・コマンドフローのフローチャートの実施形態のブロック図を図２に示す。ユーザ入出力（I／O）データおよび／またはコマンド２０５が１以上のアプリケーション２１０との間で受け渡しされる。アプリケーション２１０は、コンピュータシステム１００または他の何らかのコンピュータシステムなどのコンピュータシステム内の暗号サービスプロバイダ２１５とデータやコマンドをやり取りする。暗号サービスプロバイダ２１５は、ハードウェア２３０に対するアクセスを提供するドライバ２２５と、API（アプリケーションプログラミングインタフェース）コール２２０を使って通信するものであってもよい。
【００２０】
本発明の一態様によれば、ドライバ２２５およびハードウェア２３０は、セキュア実行モード（SEM）２６０で動作するように構成されたセキュア実行ボックスの一部である。単にセキュリティ動作とも呼ぶ、プライバシー、セキュリティ、所有権（PSO）についての信頼された動作を、コンピュータシステムがSEM２６０にある間に実行することができる。ユーザI／O２０５および／またはアプリケーション２１０からのソフトウェアコールについてはSMM２６０にあるセキュア実行ボックスに対して行うことができる。また、ソフトウェアコールによってSEM２６０にあるセキュア実行ボックスに対してアクセスし、詳細については後述するものなどのさまざまなセキュリティハードウェア資源を利用できる。
【００２１】
本発明のさまざまな態様による、SMM  MSRを有するコンピュータシステム３００の実施形態をブロック図の形で図３に示す。図３は、プロセッサ３０５と、ノースブリッジ３１０と、メモリ３０６と、サウスブリッジ３３０とを含む。プロセッサは１以上のSMM  MSR（マシン固有レジスタ）３０７を含む。ノースブリッジ３１０はメモリコントローラ３１５を含む。ノースブリッジ３１０は、プロセッサ３０５とサウスブリッジ３３０との間で、ローカルバス３０８を介してプロセッサ３０５に接続され、PCIバス１１０を介してサウスブリッジ３３０に接続されている。ノースブリッジ３１０はプロセッサ３０５からSMIACT＃信号を受信すべく接続されている。
【００２２】
図３の実施形態では、コンピュータシステム３００は、標準的なプロセッサ信号（ノースブリッジ３１０へのSMIACT＃など）および／またはローカルバス３０８およびPCIバス１１０でのバスサイクルを利用して、プロセッサ３０５がSMMにある旨を伝達する。
【００２３】
本発明のさまざまな実施形態では、SMMのセキュリティが前提である。弱点を突かれてSMMのセキュリティを危うくする可能性のある１以上のいわゆる「裏口」が存在し得る点に注意されたい。企図される問題としては、プロセッサ３０５のハードウェアデバッグテスト（HDT）モードの誤用ならびにプロセッサ３０５がマイクロコードをロードして差し替える機能があげられる。図４A〜図４Dに示されているのは、プロセッサ３０５のさまざまな実施形態３０５A、３０５B、３０５C、３０５Dであり、その各々が１以上の裏口からの攻撃に対するさまざまなセキュリティプロテクションを含む。
【００２４】
図４Aでは、プロセッサ３０５Aに、HDT制御ロジック４１０Aと、HDTリセットロジック４２０Aと、HDTイネーブルレジスタ４１５および不揮発性ランダムアクセスメモリ（NVRAM）４３０を含む１以上のレジスタとが含まれる。図示のように、HDT制御ロジック４１０Aは、複数のHDTピン４０５を介して複数の入力信号を受信すべく接続されている。HDT制御ロジック４１０Aはさらに、HDTイネーブルレジスタ４１５に接続されている。HDTリセットロジック４２０Aは、ライン４２５でRESET信号を受信し、HDTイネーブルレジスタ４１５およびNVRAM４３０にアクセス（すなわち読み出しおよび書き込み）すべく接続されている。
【００２５】
図４Bでは、図４Bのプロセッサ３０５Bに、HDT制御ロジック４１０Bと、HDTリセットロジック４２０Bと、HDTイネーブルレジスタ４１５およびHDTイネーブルロックレジスタ４３５を含む２つのレジスタと、が含まれる。図示のように、HDT制御ロジック４１０Bは、複数のHDTピン４０５を介して複数の入力信号を受信すべく接続されている。HDT制御ロジック４１０Bはさらに、HDTイネーブルレジスタ４１５およびHDTイネーブルロックレジスタ４３５に接続されている。HDTリセットロジック４２０Bは、プルアップ（またはプルダウン）抵抗器４４５を介して、ライン４２５でRESET信号を受信し、ライン４４０などで信号を受信すべく接続されている。
【００２６】
図４Cでは、プロセッサ３０５Cに、マイクロコード制御ロジック４５５と、マイクロコードローダーのイネーブルリセットロジック４６５と、マイクロコードローダーのイネーブルレジスタ４６０を含む１以上のレジスタと、が含まれる。図示のように、マイクロコード制御ロジック４５５は、複数のマイクロコード入力ピン４５０を介して複数の入力信号を受信すべく接続されている。マイクロコード制御ロジック４５５はさらに、マイクロコードローダーのイネーブルレジスタ４６０に接続されている。マイクロコードローダーのイネーブルリセットロジック４６５は、RESET信号を受信し、マイクロコードローダーのイネーブルレジスタ４６０にアクセスすべく接続されている。
【００２７】
図４Dでは、プロセッサ３０５Dに、マイクロコード制御ロジック４５５と統合されたHDT制御ロジック４１０と、HDTリセットロジック４２０と、制御／リセットロジック４７５を形成するためのMLEリセットロジック４６５とが含まれる。HDTイネーブルレジスタ４１５およびマイクロコードローダーのイネーブルレジスタ４６０は、マルチビットロックレジスタ４８０に統合されている。制御／リセットロジック４７５への複数の入力４７０が図示されている。これらの複数の入力４７０には、HDT入力４０５、マイクロコード入力４５０および／またはリセット信号伝達手段を含み得る。他の実施形態（図示せず）では、HDT制御ロジック４１０およびマイクロコード制御ロジック４５５のみを統合するか、あるいはHDTリセットロジック４２０およびMLEリセットロジック４６５だけを統合する。
【００２８】
本発明のさまざまな実施形態によれば、レジスタ４１５、４３５および４６０ならびにNVRAM４３０に、１以上のビット用の格納空間が含まれる。一実施形態では、各レジスタが１ビットを格納するように構成されている。イネーブルレジスタ４１５および４６０を単一のロックレジスタに統合してもよく、HDTイネーブルロックレジスタ４３５をマイクロコードのイネーブルロックレジスタとして利用してもよい点に注意されたい。レジスタ４１５、４３５、４６０および／または４８０をSMM  MSR３０７に含み得る点も企図される。
【００２９】
さまざまな実施形態において、HDTイネーブルレジスタ４１５は、HDTモードがイネーブルであるかデセーブルであるかを示す１以上のHDTイネーブルビットを格納するように構成されている。HDTリセットロジック４２０は、プロセッサ３０５のリセット時に１以上のHDTイネーブルビットをデフォルトの状態に設定するように構成されている。
【００３０】
図４Aおよび図４Bに示すものなどのHDTモードを制御するための複数の実施形態が企図される。一実施形態では、エンジニアリングと試験とに用いられる、量産品ではないプロセッサ３０５では、HDTモードがデフォルトでイネーブルである。このHDTモードについては、量産される標準的なプロセッサ３０５のデフォルトでデセーブルにしてもよい。図４Aに示すもうひとつの実施形態では、デフォルトの状態をNVRAM４３０に格納し、ここから読み出すようにすることができる。この実施形態ではデフォルトの状態を変更可能にしてもよいが、図示の実施形態ではデフォルトの状態はデセーブルに設定されている。図４Bに示すさらに他の実施形態では、ストラッピングオプションを使ってデフォルトの状態を設定する。このデフォルト値がプルアップ（またはプルダウン）抵抗器４４５を介してHDTリセットロジック４２０Bに提供される。
【００３１】
図４Cおよび図４Dに示すものなどのマイクロコードローダーのモードを制御するための複数の実施形態も企図される。図示しない一実施形態では、マイクロコード更新モードを、エンジニアリングと試験とに用いられる量産品ではないプロセッサ３０５上のデフォルトとしてイネーブルにする。このマイクロコード更新モードについては、量産される標準的なプロセッサ３０５のデフォルトとしてデセーブルにすることができる。図４Aに示す実施形態に類似の別の実施形態では、デフォルトの状態をNVRAM４３０に格納し、ここから読み出すようにすることができる。この実施形態ではデフォルトの状態を変更可能にしてもよいが、図示の実施形態ではデフォルトの状態はデセーブルに設定されている。図４Bに示すさらに他の実施形態では、ストラッピングオプションを使うことがデフォルトの状態である。このデフォルト値がプルアップ（またはプルダウン）抵抗器４４５を介してMLEリセットロジック４６５に提供される。
【００３２】
ここで図５に移ると、HDTモードを開始するための方法５００が図示されている。HDTモードに入る要求を受信（ステップ５０５）したことに応答して、HDT制御ロジック４１０が１以上のHDTイネーブルビットのステータスをチェックし、HDTモードがイネーブルであるかデセーブルであるかを確認する（ステップ５１０）。HDTモードがイネーブルである（ステップ５１５）場合、HDT制御ロジック４１０はHDTモードを開始する（ステップ５２０）。HDTモードがデセーブルである（ステップ５１５）場合、HDT制御ロジック４１０がHDTモードを開始することはない。
【００３３】
ここで図６に移ると、HDTモードのロックを含むHDTモードのイネーブルステータスを変更するための方法６００が図示されている。HDTモードに入る要求を受信（ステップ６０５）したことに応答して、HDT制御ロジック４１０が１以上のHDTイネーブルロックビットのステータスをチェックし、HDTロックモードがロック状態にあるかアンロック状態にあるかを判断する（ステップ６１０）。HDTロックモードがアンロック状態にある（ステップ６１５）場合、HDT制御ロジック４１０はHDTモードを開始する（ステップ６３５）。HDTロックモードがロック状態にある（ステップ６１５）場合、HDT制御ロジック４１０はHDTロックモードのステータスを変更するための承認を要求する（ステップ６２０）。変更が承認された（ステップ６２５）場合、HDT制御ロジック４１０がHDTモードのロックビットを変更してアンロック状態にする（ステップ６３０）。変更が承認されなかった（ステップ６２５）場合、HDT制御ロジック４１０によってHDTモードのロックビットが変更されることはない。
【００３４】
さまざまな実施形態において、HDTイネーブルステータスの変更には１以上のHDTイネーブルステータスビットを設定またはリセットすればよい。たとえば、HDTモードをデセーブルにすることができるが、SMM内では、HDT制御ロジック４１０へのあらかじめ定められた入力によってHDT制御ロジック４１０にHDTモードのステータスを変更してイネーブルにするように伝えることができる。図４Aの実施形態では、たとえば、一旦信号を受けると、HDT制御ロジック４１０はHDTイネーブルビットのステータスをデセーブルからイネーブルに変更する。
【００３５】
図４Bの実施形態に戻ると、たとえば、HDTモードのステータス変更の要求を受信したことに応答して、HDT制御ロジック４１０が１以上のHDTイネーブルロックビットのステータスをチェックし、HDTロックモードがイネーブルであるかデセーブルであるかを確認する。HDTロックモードがデセーブルである場合、HDT制御ロジック４１０はHDTモードのステータスを変更することができる。HDTロックモードがイネーブルである場合、HDT制御ロジック４１０がHDTモードのステータスを変更することはない。
【００３６】
HDTロックモードがロック状態にある（ステップ６１５）場合に、HDTロックモードのステータスを変更するための承認を要求する（ステップ６２０）のではなく方法６００を終了させてもよい点に注意されたい。方法６００には、方法６００で承認を要求する（ステップ６２０）前にHDTロックモードのステータス変更の要求を受け取る（図示せず）ことも含み得る。
【００３７】
ここで図７に移ると、マイクロコードローダーを開始するための方法７００が図示されている。マイクロコード更新モードの開始要求を受信（ステップ７０５）したことに応答して、マイクロコード制御ロジック４５５が１以上のマイクロコードイネーブルビットのステータスをチェックし、マイクロコード更新モードがイネーブルであるかデセーブルであるかを確認する（ステップ７１０）。マイクロコード更新モードがイネーブルである（ステップ７１５）場合、マイクロコード制御ロジック４５５がマイクロコード更新モードを開始する（ステップ７２０）。マイクロコード更新モードがデセーブルである（ステップ７１５）場合、マイクロコード制御ロジック４５５がマイクロコード更新モードを開始することはない。
【００３８】
ここで図８に移ると、マイクロコードモードのロックを含むマイクロコード更新モードのイネーブルステータスを変更するための方法８００が図示されている。マイクロコードモードに入る要求を受信（ステップ８０５）したことに応答して、マイクロコード制御ロジック４５５が１以上のマイクロコードイネーブルロックビットのステータスをチェックし、マイクロコードモードがロック状態であるかアンロック状態であるかを確認する（ステップ８１０）。マイクロコードロックモードがアンロック状態にある（ステップ８１５）場合、マイクロコード制御ロジック４５５がマイクロコードモードを開始する（ステップ８３５）。マイクロコードロックモードがロック状態にある（ステップ８１５）場合は、マイクロコード制御ロジック４５５がマイクロコードモードのロックステータスを変更するための承認を要求する（ステップ８２０）。変更が承認された（ステップ８２５）場合、マイクロコード制御ロジック４５５がマイクロコードモードのロックビットを変更してアンロック状態にする（ステップ８３０）。変更が承認されなかった（ステップ８２５）場合、マイクロコード制御ロジック４５５によってマイクロコードモードのロックビットが変更されることはない。
【００３９】
さまざまな実施形態において、マイクロコードイネーブルステータスの変更には１以上のマイクロコードイネーブルステータスビットを設定またはリセットすればよい。たとえば、マイクロコードモードをデセーブルにすることができるが、SMM内では、マイクロコード制御ロジック４５５へのあらかじめ定められた入力によってマイクロコード制御ロジック４５５にマイクロコードモードのステータスを変更してイネーブルにするように伝えることができる。図４Cの実施形態では、たとえば、一旦信号を受けると、マイクロコード制御ロジック４５５は１以上のマイクロコードイネーブルビットのステータスをデセーブルからイネーブルに変更する。
【００４０】
マイクロコードモードのステータス変更の要求を受信したことに応答して、マイクロコード制御ロジック４５５が１以上のマイクロコードイネーブルロックビットのステータスをチェックし、マイクロコードロックモードがイネーブルであるかデセーブルであるかを判断することができる。マイクロコードロックモードがデセーブルである場合、マイクロコード制御ロジック４５５はマイクロコードモードのステータスを変更することができる。マイクロコードロックモードがイネーブルである場合、マイクロコード制御ロジック４５５がマイクロコードモードのステータスを変更することはない。
【００４１】
マイクロコード更新ロックステータスがロック状態にある（ステップ８１５）場合に、マイクロコード更新ロックのステータスを変更するための承認を要求する（ステップ８２０）のではなく方法８００を終了させてもよい点に注意されたい。方法８００には、方法３５００で承認を要求する（ステップ８２０）前にマイクロコード更新ロックステータス変更の要求を受け取る（図示せず）ことも含み得る。
【００４２】
本願開示の目的において、ROMについて説明した内容は、フラッシュメモリや他の実質的に不揮発性のメモリタイプにも適用されるものとする。以上、本願明細書に開示の本発明の方法をフローチャートの形で説明してきたが、さまざまな実施形態においてこれらのフローチャートのさまざまな要素を省略または異なる順序で実行してもよい点に注意されたい。また、本願に開示の本発明の方法では実施例のバリエーションを認めている点にも注意されたい。
【００４３】
上記に開示したような本発明のいくつかの態様は、ハードウェアまたはソフトウェアでインプリメントできるものである。したがって、結果として本願明細書に記載の詳細な説明の内容については、ハードウェアで実現できるプロセスに関するものもあれば、コンピュータシステムまたはコンピューティングデバイスのメモリ内のデータビットについての動作を記号的に表現した内容に関係のある、ソフトウェアで実現できるプロセスに関するものもある。これらの説明および表現は、当業者らが自分たちの行っている作業の内容を、ハードウェアとソフトウェアの両方を使用している他の当業者に最も効率よく伝達するのに使用する手段である。両方のプロセスおよび動作には物理的な量を物理的に操作する必要がある。ソフトウェアでは、必ずしも必要というわけではないが、これらの量は格納や転送、結合、比較、あるいは操作が可能な電気信号や磁気信号、あるいは光信号の形態をとるのが普通である。主に一般利用の観点から、場合によってはこれらの信号をビットや値、エレメント、シンボル、文字、項、数などで参照すると都合がよいことが明らかになっている。
【００４４】
しかしながら、上記の用語および同様の用語はすべてしかるべき物理的な量に関連付けられるものであり、これらの量に付される都合のよいラベルにすぎない点に留意すべきである。特に明記する場合または自明であろうと思われる場合を除き、本願開示全体を通して、これらの説明は、いくつかの電子デバイスのストレージ内で物理的な（電子的、磁気的または光学的）量として表されるデータを操作し、ストレージ内あるいは送信デバイスまたはディスプレイデバイスで同様に物理的な量として表される他のデータに変換する電子デバイスの行為およびプロセスについてのものである。このような説明を示す代表的な用語としては、「processing（処理する／処理／プロセッシング）」、「computing（コンピューティング）」、「calculating（計算する／計算）」、「determining（判断する／判定する／判断／判定）」、「displaying（表示する／表示）」などの用語があるが、これに限定されるものではない。
【００４５】
また、ソフトウェアで実現される本発明の態様は一般に、何らかの形のプログラム格納媒体でエンコードされるか、何らかのタイプの送信媒体を使って実現される点に注意されたい。プログラム格納媒体としては、磁気（フロッピーディスクまたはハードドライブなど）または光（コンパクトディスク読み出し専用メモリすなわち「CD  ROM」など）があげられ、読み出し専用メモリであってもランダムアクセスメモリであってもよい。同様に、送信媒体はツイストペア線であってもよいし、同軸ケーブル、光ファイバまたは従来技術において周知の他の何らかの好適な送信媒体であってもよい。本発明は特定の実施例のいずれの態様にも限定されるものではない。
【００４６】
本発明は本願明細書の教示内容の利益を享受する当業者らに自明の上記とは異なるが等価な方法で改変および実施することのできるものであるため、上記にて開示した個々の実施形態は一例にすぎない。さらに、添付の請求の範囲に記載したものを除き、本願明細書に図示した構成または設計の詳細に対する限定を何ら意図するものではない。したがって、上記にて開示した個々の実施形態を変更または改変してもよく、そのような変形例はいずれも本発明の範囲に包含されるとみなせることは明白である。よって、本願明細書で求める保護は添付の請求の範囲に記載のとおりである。
【図面の簡単な説明】
【００４７】
【図１】従来技術のコンピュータシステムのブロック図を示す。
【図２】本発明の一態様による、セキュア実行ボックスを有するコンピュータシステムにおけるデータ・コマンドフローの実施形態のフローチャートを示す。
【図３】本発明の一態様による、SMM  MSRを有するコンピュータシステムの実施形態のブロック図を示す。
【図４Ａ】本発明のさまざまな態様による、ロックレジスタとロジックとを含むプロセッサの実施形態のブロック図を示す。
【図４Ｂ】本発明のさまざまな態様による、ロックレジスタとロジックとを含むプロセッサの実施形態のブロック図を示す。
【図４Ｃ】本発明のさまざまな態様による、ロックレジスタとロジックとを含むプロセッサの実施形態のブロック図を示す。
【図４Ｄ】本発明のさまざまな態様による、ロックレジスタとロジックとを含むプロセッサの実施形態のブロック図を示す。
【図５】本発明の一態様による、HDTモードを開始するための方法の実施形態のフローチャートを示す。
【図６】本発明の一態様による、HDTイネーブルステータスを変更するための方法の実施形態のフローチャートを示す。
【図７】本発明の一態様による、マイクロコードローダーを開始するための方法の実施形態のフローチャートを示す。
【図８】本発明の一態様による、マイクロコードローダーのイネーブルステータスを変更するための方法の実施形態のフローチャートを示す。
【図１】
2005501313.tif 000003
【図２】
2005501313.tif 000004
【図３】
2005501313.tif 000005
【図４Ａ】
2005501313.tif 000006
【図４Ｂ】
2005501313.tif 000007
【図４Ｃ】
2005501313.tif 000008
【図４Ｄ】
2005501313.tif 000009
【図５】
2005501313.tif 000010
【図６】
2005501313.tif 000011
【図７】
2005501313.tif 000012
【図８】
2005501313.tif 000013
【国際公開パンフレット】
2005501313.tif 000014
2005501313.tif 000015
2005501313.tif 000016
2005501313.tif 000017
2005501313.tif 000018
2005501313.tif 000019
2005501313.tif 000020
2005501313.tif 000021
2005501313.tif 000022
2005501313.tif 000023
2005501313.tif 000024
2005501313.tif 000025
2005501313.tif 000026
2005501313.tif 000027
2005501313.tif 000028
2005501313.tif 000029
2005501313.tif 000030
2005501313.tif 000031
2005501313.tif 000032
2005501313.tif 000033
2005501313.tif 000034
2005501313.tif 000035
【国際公開パンフレット（コレクトバージョン）】
2005501313.tif 000036
【国際調査報告】
2005501313.tif 000037
2005501313.tif 000038
2005501313.tif 000039