IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特表2024-541488処理ユニットのプロセッサ・コア上のセキュア・コード・セグメントの動作
<>
  • 特表-処理ユニットのプロセッサ・コア上のセキュア・コード・セグメントの動作 図1
  • 特表-処理ユニットのプロセッサ・コア上のセキュア・コード・セグメントの動作 図2
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-08
(54)【発明の名称】処理ユニットのプロセッサ・コア上のセキュア・コード・セグメントの動作
(51)【国際特許分類】
   G06F 9/52 20060101AFI20241031BHJP
   G06F 9/46 20060101ALI20241031BHJP
【FI】
G06F9/52 120Z
G06F9/46 410
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024531100
(86)(22)【出願日】2022-11-09
(85)【翻訳文提出日】2024-05-23
(86)【国際出願番号】 EP2022081213
(87)【国際公開番号】W WO2023099137
(87)【国際公開日】2023-06-08
(31)【優先権主張番号】17/457,446
(32)【優先日】2021-12-03
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】リヒテナウ、セドリック
(72)【発明者】
【氏名】ラング、ヤコブ
(72)【発明者】
【氏名】パッシュ、エベルハルト
(72)【発明者】
【氏名】ボーントレーガー、クリスチャン
(57)【要約】
コンピュータ実装方法、コンピュータ・システム、およびコンピュータ・プログラム製品が、処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させ、処理ユニットが、少なくとも1つのプロセッサ・コアによって構成される。この方法は、少なくとも1つのプロセッサ・コア上のプログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することを含む。この方法はまた、少なくとも1つのプロセッサ・コアをセキュア・コード・セグメントのための排他的セキュア実行に設定することを含む。この方法は、少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することをさらに含む。追加的に、この方法は、少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することを含む。最後に、この方法は、少なくとも1つのプロセッサ・コアを少なくとも1つのプロセッサ・コア上のプログラム・コードのための第1の実行モードに設定することを含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ実装方法であって、前記処理ユニットが、少なくとも1つのプロセッサ・コアによって、第1の実行モードを走らせて、前記少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、前記少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成され、前記方法が、
前記少なくとも1つのプロセッサ・コア上の前記プログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、
前記少なくとも1つのプロセッサ・コアを前記セキュア・コード・セグメントのための排他的セキュア実行に設定することと、
前記少なくとも1つのプロセッサ・コア上で前記セキュア・コード・セグメントを中断不能に実行することと、
前記少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することと、
前記少なくとも1つのプロセッサ・コアを前記少なくとも1つのプロセッサ・コア上でプログラム・コードを実行するための前記第1の実行モードに設定することとを少なくとも含む、コンピュータ実装方法。
【請求項2】
前記プロセッサ・コアを排他的セキュア・モードに設定する前に、前記物理プロセッサ・コアの少なくとも前記設計状態および前記非設計状態を保存することをさらに含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記プロセッサ・コアを前記第1の実行モードに設定する前に、前記物理プロセッサ・コアの少なくとも前記設計状態および前記非設計状態を回復することをさらに含む、請求項1または2に記載のコンピュータ実装方法。
【請求項4】
前記セキュア・コード・セグメントを実行する前に、前記物理プロセッサ・コアの少なくとも1つのキャッシュ・ストレージから前記物理プロセッサ・コアの前記非設計状態を一掃することをさらに含む、請求項1ないし3のいずれか一項に記載のコンピュータ実装方法。
【請求項5】
前記物理プロセッサ・コアの前記非設計状態を一掃することが、前記処理ユニットのハードウェアによってハードウェア制御式に実行される、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記プロセッサ・コア上でプログラム・コードを実行するための前記第1の実行モードが、同時マルチスレッディング・モードである、請求項1ないし5のいずれか一項に記載のコンピュータ実装方法。
【請求項7】
前記少なくとも1つのプロセッサ・コア上で前記セキュア・コード・セグメントを中断不能に実行することが、最小の期間および最小の命令数に対して定義される、請求項1ないし6のいずれか一項に記載のコンピュータ実装方法。
【請求項8】
前記少なくとも1つのプロセッサ・コア上で前記セキュア・コード・セグメントを中断不能に実行することが、状態機械によって制御される、請求項1ないし7のいずれか一項に記載のコンピュータ実装方法。
【請求項9】
前記セキュア・コード・セグメントの実行中の中断が阻止される、請求項1ないし8のいずれか一項に記載のコンピュータ実装方法。
【請求項10】
前記セキュア・コード・セグメントの実行後に前記少なくとも1つのプロセッサ・コアから前記物理プロセッサ・コアの前記設計状態および前記非設計状態を一掃することが、中断要求によって開始される、請求項1ないし9のいずれか一項に記載のコンピュータ実装方法。
【請求項11】
仮想機械上またはコンテナ上で動作命令が実装される、請求項1ないし10のいずれか一項に記載のコンピュータ実装方法。
【請求項12】
処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ・システムであって、前記処理ユニットが、少なくとも1つのプロセッサ・コアによって構成され、前記コンピュータ・システムが、少なくとも1つのプロセッサ・コアを有する少なくとも1つのプロセッサ・ユニットを備え、前記プロセッサ・コアが、第1の実行モードを走らせて、前記少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、前記少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成され、前記コンピュータ・システムが、
前記少なくとも1つのプロセッサ・コア上の前記プログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、
前記少なくとも1つのプロセッサ・コアを前記セキュア・コード・セグメントのための排他的セキュア実行に設定することと、
前記少なくとも1つのプロセッサ・コア上で前記セキュア・コード・セグメントを中断不能に実行することと、
前記少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することと、
前記少なくとも1つのプロセッサ・コアを前記少なくとも1つのプロセッサ・コア上でプログラム・コードを実行するための前記第1の実行モードに設定することとを少なくとも含む方法を実行するように構成されている、コンピュータ・システム。
【請求項13】
前記プロセッサ・コアを排他的セキュア・モードに設定する前に、前記物理プロセッサ・コアの少なくとも前記設計状態および前記非設計状態を保存するように構成されている、請求項12に記載のコンピュータ・システム。
【請求項14】
前記プロセッサ・コアが前記第1の実行モードに設定される前に、前記物理プロセッサ・コアの少なくとも前記設計状態および前記非設計状態を回復するように構成されている、請求項12または13に記載のコンピュータ・システム。
【請求項15】
前記セキュア・コード・セグメントが実行される前に、前記物理プロセッサ・コアの少なくとも1つのキャッシュ・ストレージから前記物理プロセッサ・コアの前記非設計状態を一掃するように構成されている、請求項12ないし14のいずれか一項に記載のコンピュータ・システム。
【請求項16】
前記物理プロセッサ・コアの前記非設計状態を前記処理ユニットのハードウェアによってハードウェア制御式に一掃するように構成されている、請求項15に記載のコンピュータ・システム。
【請求項17】
前記プロセッサ・コア上でプログラム・コードを実行するための前記第1の実行モードが、同時マルチスレッディング・モードである、請求項12ないし16のいずれか一項に記載のコンピュータ・システム。
【請求項18】
最小の期間および最小の命令数に対して、前記少なくとも1つのプロセッサ・コア上で前記セキュア・コード・セグメントを中断不能に実行するように構成されている、請求項12ないし17のいずれか一項に記載のコンピュータ・システム。
【請求項19】
前記少なくとも1つのプロセッサ・コア上で前記セキュア・コード・セグメントを中断不能に実行することが、状態機械によって制御される、請求項12ないし18のいずれか一項に記載のコンピュータ・システム。
【請求項20】
前記セキュア・コード・セグメントの実行中の中断を阻止するように構成されている、請求項12ないし19のいずれか一項に記載のコンピュータ・システム。
【請求項21】
前記セキュア・コード・セグメントの実行後に前記少なくとも1つのプロセッサ・コアから前記物理プロセッサ・コアの前記設計状態および前記非設計状態を一掃することが、中断要求によって開始される、請求項12ないし20のいずれか一項に記載のコンピュータ・システム。
【請求項22】
仮想機械上またはコンテナ上で動作命令が実装される、請求項12ないし21のいずれか一項に記載のコンピュータ・システム。
【請求項23】
処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ・プログラム製品であって、前記処理ユニットが、少なくとも1つのプロセッサ・コアによって、第1の実行モードを走らせて、前記少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、前記少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成され、
前記コンピュータ・プログラム製品が、プログラム命令が実施されたコンピュータ可読記憶媒体を備え、前記プログラム命令が、コンピュータ・システムによって、
前記少なくとも1つのプロセッサ・コア上の前記プログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、
前記少なくとも1つのプロセッサ・コアを前記セキュア・コード・セグメントのための排他的セキュア実行に設定することと、
前記少なくとも1つのプロセッサ・コア上で前記セキュア・コード・セグメントを中断不能に実行することと、
前記少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することと、
前記少なくとも1つのプロセッサ・コアを前記少なくとも1つのプロセッサ・コア上でプログラム・コードを実行するための前記第1の実行モードに設定することとを含む方法を前記コンピュータ・システムに実行させるように実行可能である、コンピュータ・プログラム製品。
【請求項24】
請求項1に記載のコンピュータ実装方法を実行するためのコンピュータ可読プログラム命令を含む、データ処理プログラムを実行するためのデータ処理システム。
【請求項25】
処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させるための命令を実行するための集積回路であって、前記処理ユニットが、少なくとも1つのプロセッサ・コアによって構成され、前記集積回路が、少なくとも1つのプロセッサ・コアを有する少なくとも1つのプロセッサ・ユニットを備え、前記プロセッサ・コアが、第1の実行モードを走らせて、前記少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、前記少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成され、前記集積回路が、
前記少なくとも1つのプロセッサ・コア上の前記プログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、
前記少なくとも1つのプロセッサ・コアを前記セキュア・コード・セグメントのための排他的セキュア実行に設定することと、
前記少なくとも1つのプロセッサ・コア上で前記セキュア・コード・セグメントを中断不能に実行することと、
前記少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することと、
前記少なくとも1つのプロセッサ・コアを前記少なくとも1つのプロセッサ・コア上でプログラム・コードを実行するための前記第1の実行モードに設定することとを少なくとも含む方法を実行するように構成されている、集積回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、データ処理システムに関し、詳細には、処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ実装方法、コンピュータ・システム、コンピュータ・プログラム製品、およびデータ処理システムに関する。
【背景技術】
【0002】
マルチスレッド・プロセッサは、同時に実行することができる複数のハードウェア・スレッドを含むことができる。マルチスレッド・プロセッサの一例としては、同時マルチスレッド(SMT)プロセッサを挙げることができる。同時マルチスレッディングでは、一度に2つ以上のスレッドからの命令を任意の所与の命令パイプライン段階で実行することができる。したがって、同時マルチスレッディングにより、プロセッサ・アーキテクチャによって提供される資源を複数の独立した実行スレッドがより良好に利用することを可能にすることができる。同時マルチスレッディングにより、仮想機械の各プロセッサを、スレッドと呼ばれるn個のプロセッサとしてアプリケーションに示すことができる。
【0003】
クラウド内またはオンプレミスの異なる顧客からのプロセスまたはスレッドを、仮想機械(VM)上またはコンテナ上で仮想化することができ、同じ物理コア上で走らせることができる。スレッドをシングルスレッド・モードで走らせることを要求することが一般的である。
【0004】
セキュア・マルチスレッド実行のためのパイプラインの一実装形態は、命令を実行するための集積回路とすることができ、集積回路は、プロセッサ・パイプラインの実行ユニットを使用して2つ以上のスレッドからの命令を並行して実行するように構成されたプロセッサ・パイプラインと、第1のスレッドの命令が感知命令として指定されたことを検出し、感知命令の検出に応答して、感知命令がプロセッサ・パイプラインの実行ユニットによって実行されている間に、プロセッサ・パイプラインの実行ユニットを使用して第1のスレッド以外のスレッドの命令が実行されることを阻止するように構成されたスレッド・ハザード回路とを含む。
【0005】
この実装形態では、スレッドの設計状態が分離されたことを検証する単一の命令のみを保護することができ、非設計状態を考慮することはできない。
【0006】
すべてのセキュア作業のためのコアを恒久的に確保することはできるが、常時セキュア作業を行わない場合、これでは全体的なプロセッサ性能を事実上低減させる可能性がある。さらに、コンピュータ・システム上の作業の大部分がセキュア環境の実行を要求した場合でも、これは拡張しない。
【発明の概要】
【0007】
処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ実装方法が提案され、処理ユニットは、少なくとも1つのプロセッサ・コアによって、第1の実行モードを走らせて、少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成される。この方法は、(i)少なくとも1つのプロセッサ・コア上のプログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、(ii)少なくとも1つのプロセッサ・コアをセキュア・コード・セグメントのための排他的セキュア実行に設定することと、(iii)少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することと、(iv)少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することと、(v)少なくとも1つのプロセッサ・コアを少なくとも1つのプロセッサ・コア上でプログラム・コードを実行するための第1の実行モードに設定することとを少なくとも含む。
【0008】
提案する方法によれば、セキュア・コード・セグメントは、少なくとも最小の時間および最小の動作命令数に対して、排他的セキュア・コンテキストを要求することができる。これは、ハードウェア制御下で、物理コアを排他的セキュア・モードに少なくとも確実に設定することと、最小の時間または動作命令数あるいはその両方に対して中断なく実行することと、最後に、セキュア・コード・セグメントを終了するとき、あるいは初期期間もしくは動作命令数またはその両方の後に中断を行うとき、キャッシュ・ストレージまたはレジスタまたはメモリから物理コアの少なくとも設計および非設計状態を一掃することとを含む。
【0009】
有利には、プロセッサ・コア内の異なるコード・セグメント間の干渉を回避することができる。コード・セグメントの実行中の障害の数を低減させることができる。さらに、好ましくは、プロセッサ・コア内のセキュア・コード・セグメントのセキュア動作の提案する方法によって、コンピュータ・システムの性能を向上させることができる。
【0010】
本発明の一実施形態により、追加的または代替的に、プロセッサ・コアを排他的セキュア・モードに設定する前に、物理プロセッサ・コアの少なくとも設計および非設計状態を保存することができる。したがって、セキュア・コード・セグメントの実行を終了した後、物理プロセッサ・コアの設計および非設計状態を回復して、プログラム・コードの正常実行を継続することが可能になる。
【0011】
本発明の一実施形態により、追加的または代替的に、プロセッサ・コアを第1の実行モードに設定する前に、物理プロセッサ・コアの少なくとも設計および非設計状態を回復することができる。したがって、セキュア・コード・セグメントの実行を終了した後、物理プロセッサ・コアの設計および非設計状態を回復して、プログラム・コードの正常実行を継続することができる。
【0012】
本発明の一実施形態により、追加的または代替的に、セキュア・コード・セグメントを実行する前に、特に物理プロセッサ・コアの少なくとも1つのキャッシュ・ストレージから、物理プロセッサ・コアの非設計状態を一掃することができる。これによって、セキュア・コード・セグメントが実行された場合に、すでに存在するデータとの干渉が生じなくなる。
【0013】
本発明の一実施形態により、追加的または代替的に、物理プロセッサ・コアの非設計状態を一掃することは、処理ユニットのハードウェアによってハードウェア制御式に実行することができる。好ましくは、ソフトウェア障害およびそれに続く不十分な一掃のリスクを低減させることができる。
【0014】
本発明の一実施形態により、追加的または代替的に、プロセッサ・コアの第1の実行モードは、同時マルチスレッディング・モードとすることができる。同時マルチスレッディングにより、プロセッサ・アーキテクチャによって提供される資源を複数の独立した実行スレッドがより良好に利用することが可能になり、これが通常のプロセッサ・コアの正常実行モードである。
【0015】
本発明の一実施形態により、追加的または代替的に、セキュア・コード・セグメントの中断不能な実行を、最小の期間または最小の命令数あるいはその両方に対して定義することができる。したがって、効率的な処理のために、セキュア・コード・セグメントの妨げられない実行を保証することができる。
【0016】
本発明の一実施形態により、追加的または代替的に、セキュア・コード・セグメントの中断不能な実行は、状態機械によって制御することができる。状態機械は、セキュア・コード・セグメントの中断不能な実行を制御する効率的な方法となることができる。
【0017】
本発明の一実施形態により、追加的または代替的に、セキュア・コード・セグメントの実行中の中断を阻止することができる。好ましくは、セキュア・コード・セグメントは、最小の時間量または動作命令数あるいはその両方に対して、混乱なく実行することができる。
【0018】
本発明の一実施形態により、追加的または代替的に、セキュア・コード・セグメントの実行後に少なくとも1つのプロセッサ・コアから設計および非設計状態を一掃することは、中断要求によって開始することができる。したがって、第1の実行状態におけるプログラム・コードのさらなる正常実行を、セキュア・コード・セグメントの実行からの残りのデータとの干渉なく実現することができる。
【0019】
本発明の一実施形態により、追加的または代替的に、仮想機械上またはコンテナ上で動作命令を実装することができる。好ましくは、クラウド内またはオンプレミスの異なる顧客からの同じ物理コア上で走るプロセス/スレッドを、仮想機械上またはコンテナ上で仮想化することができる。
【0020】
さらに、処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ・システムが提案され、処理ユニットは、少なくとも1つのプロセッサ・コアによって構成される。コンピュータ・システムは、少なくとも1つのプロセッサ・コアを有する少なくとも1つのプロセッサ・ユニットを備え、プロセッサ・コアは、第1の実行モードを走らせて、少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成される。コンピュータ・システムは、(i)少なくとも1つのプロセッサ・コア上のプログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、(ii)少なくとも1つのプロセッサ・コアをセキュア・コード・セグメントのための排他的セキュア実行に設定することと、(iii)少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することと、(iv)少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することと、(v)少なくとも1つのプロセッサ・コアを少なくとも1つのプロセッサ・コア上でプログラム・コードを実行するための第1の実行モードに設定することとを少なくとも含む方法を実行するように構成される。
【0021】
提案するコンピュータ・システム上を走ることによって、セキュア・コード・セグメントは、少なくとも最小の時間または最小の動作命令数あるいはその両方に対して、排他的セキュア・コンテキストを要求することができる。これは、ハードウェア制御下で、物理コアを排他的セキュア・モードに少なくとも確実に設定することと、最小の時間または動作命令数あるいはその両方に対して中断なく実行することと、最後に、セキュア・コード・セグメントを終了するとき、あるいは初期期間もしくは動作命令数またはその両方の後に中断を行うとき、物理コアのキャッシュ・ストレージまたはレジスタまたはメモリから少なくとも設計および非設計状態を一掃することとを含む。
【0022】
有利には、プロセッサ・コア内の異なるコード・セグメント間の干渉を回避することができる。コード・セグメントの実行中の障害の数を低減させることができる。さらに、好ましくは、プロセッサ・コア内のセキュア・コード・セグメントのセキュア動作の提案する方法によって、コンピュータ・システムの性能を向上させることができる。
【0023】
本発明の一実施形態により、追加的または代替的に、コンピュータ・システムは、プロセッサ・コアを排他的セキュア・モードに設定する前に、物理プロセッサ・コアの少なくとも設計および非設計状態を保存するように構成することができる。したがって、セキュア・コード・セグメントの実行を終了した後、物理プロセッサ・コアの設計および非設計状態を回復して、プログラム・コードの正常実行を継続することが可能になる。
【0024】
本発明の一実施形態により、追加的または代替的に、コンピュータ・システムは、プロセッサ・コアが第1の実行モードに設定される前に、物理プロセッサ・コアの少なくとも設計および非設計状態を回復するように構成することができる。したがって、セキュア・コード・セグメントの実行を終了した後、物理プロセッサ・コアの設計および非設計状態を回復して、プログラム・コードの正常実行を継続することができる。
【0025】
本発明の一実施形態により、追加的または代替的に、コンピュータ・システムは、セキュア・コード・セグメントが実行される前に、特に物理プロセッサ・コアの少なくとも1つのキャッシュ・ストレージから、物理プロセッサ・コアの非設計状態を一掃するように構成することができる。これによって、セキュア・コード・セグメントが実行された場合に、すでに存在するデータとの干渉が生じなくなる。
【0026】
本発明の一実施形態により、追加的または代替的に、コンピュータ・システムは、物理プロセッサ・コアの非設計状態を処理ユニットのハードウェアによってハードウェア制御式に一掃するように構成することができる。好ましくは、ソフトウェア障害およびそれに続く不十分な一掃のリスクを低減させることができる。
【0027】
本発明の一実施形態により、追加的または代替的に、プロセッサ・コアの第1の実行モードは、同時マルチスレッディング・モードとすることができる。同時マルチスレッディングにより、プロセッサ・アーキテクチャによって提供される資源を複数の独立した実行スレッドがより良好に利用することが可能になり、これが通常のプロセッサ・コアの正常実行モードである。
【0028】
本発明の一実施形態により、追加的または代替的に、コンピュータ・システムは、最小の期間または最小の命令数あるいはその両方に対して、セキュア・コード・セグメントを中断不能に実行するように構成することができる。したがって、効率的な処理のために、セキュア・コード・セグメントの妨げられない実行を保証することができる。
【0029】
本発明の一実施形態により、追加的または代替的に、セキュア・コード・セグメントの中断不能な実行は、状態機械によって制御することができる。状態機械は、セキュア・コード・セグメントの中断不能な実行を制御する効率的な方法となることができる。
【0030】
本発明の一実施形態により、追加的または代替的に、コンピュータ・システムは、セキュア・コード・セグメントの実行中の中断を阻止するように構成することができる。好ましくは、セキュア・コード・セグメントは、最小の時間量または動作命令数あるいはその両方に対して、混乱なく実行することができる。
本発明の一実施形態により、追加的または代替的に、セキュア・コード・セグメントの実行後に少なくとも1つのプロセッサ・コアから設計および非設計状態を一掃することは、中断要求によって開始することができる。したがって、第1の実行状態におけるプログラム・コードのさらなる正常実行を、セキュア・コード・セグメントの実行からの残りのデータとの干渉なく実現することができる。
【0031】
本発明の一実施形態により、追加的または代替的に、仮想機械上またはコンテナ上で動作命令を実装することができる。好ましくは、クラウド内またはオンプレミスの異なる顧客からの同じ物理コア上で走るプロセス/スレッドを、仮想機械上またはコンテナ上で仮想化することができる。
【0032】
さらに、処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させるための好ましいコンピュータ・プログラム製品が提案され、処理ユニットは、少なくとも1つのプロセッサ・コアによって構成される。コンピュータ・システムは、少なくとも1つのプロセッサ・コアを有する少なくとも1つのプロセッサ・ユニットを備え、プロセッサ・コアは、第1の実行モードを走らせて、少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成される。
【0033】
コンピュータ・プログラム製品は、プログラム命令が実施されたコンピュータ可読記憶媒体を備え、プログラム命令は、コンピュータ・システムによって、(i)少なくとも1つのプロセッサ・コア上のプログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、(ii)少なくとも1つのプロセッサ・コアをセキュア・コード・セグメントのための排他的セキュア実行に設定することと、(iii)少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することと、(iv)少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することと、(v)少なくとも1つのプロセッサ・コアを少なくとも1つのプロセッサ・コア上でプログラム・コードを実行するための第1の実行モードに設定することとを含む方法をコンピュータ・システムに実行させるように実行可能である。
【0034】
さらに、上述した方法を実行するためのコンピュータ可読プログラム命令を含む、データ処理プログラムを実行するためのデータ処理システムが提案される。
【0035】
本発明は、上記および他の目的および利点と併せて、実施形態の以下の詳細な説明から最もよく理解することができるが、これらの実施形態に制限されるものではない。
【図面の簡単な説明】
【0036】
図1】本発明の一実施形態による処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ実装方法の流れ図である。
図2】本発明による方法を実行するためのデータ処理システムの例示的な実施形態を示す図である。
【発明を実施するための形態】
【0037】
図面では、同様の要素が等しい参照番号で参照される。これらの図面は、単に概略的な表現であり、本発明の特有のパラメータについて説明することを意図したものではない。さらに、これらの図面は、本発明の典型的な実施形態のみを示すことが意図されており、したがって本発明の範囲を限定すると見なされるべきではない。
【0038】
本明細書に記載する例示的な実施形態は、処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ・システムを提供し、処理ユニットは、少なくとも1つのプロセッサ・コアによって構成される。コンピュータ・システムは、少なくとも1つのプロセッサ・コアを有する少なくとも1つのプロセッサ・ユニットを備え、プロセッサ・コアは、第1の実行モードを走らせて、少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成される。
【0039】
例示的な実施形態は、(i)少なくとも1つのプロセッサ・コア上のプログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、(ii)少なくとも1つのプロセッサ・コアをセキュア・コード・セグメントのための排他的セキュア実行に設定することと、(iii)少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することと、(iv)少なくとも1つのプロセッサ・コアから設計および非設計状態を一掃することと、(v)少なくとも1つのプロセッサ・コアを少なくとも1つのプロセッサ・コア上のプログラム・コードのための第1の実行モードに設定することとを少なくとも含む方法にさらに使用することができる。
【0040】
図1は、本発明の一実施形態による図2に示す処理ユニット216のプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ実装方法の流れ図を示す。
【0041】
処理ユニット216は、少なくとも1つのプロセッサ・コアによって、第1の実行モードを走らせて、少なくとも1つのプロセッサ・コア上でプログラム・コードを正常実行として実行するように構成される。
【0042】
プロセッサ・コアの第1の実行モードは、同時マルチスレッディング・モードとすることができる。同時マルチスレッディングにより、プロセッサ・アーキテクチャによって提供される資源を複数の独立した実行スレッドがより良好に利用することが可能になり、これが通常のプロセッサ・コアの正常実行モードである。
【0043】
仮想機械上またはコンテナ上で動作命令を実装することができる。好ましくは、クラウド内またはオンプレミスの異なる顧客からの同じ物理コア上で走るプロセス/スレッドを、仮想機械上またはコンテナ上で仮想化することができる。
【0044】
ステップS100において、第1の実行モードの少なくとも1つのプロセッサ・コア上で、動作命令のプログラム・コードが実行される。
【0045】
ステップS102において、少なくとも1つのプロセッサ・コア上のプログラム・コードのセキュア・コード・セグメントの排他的セキュア実行のために、排他的セキュア・モードが要求される。
【0046】
任意選択で、ステップS104において、プロセッサ・コアを排他的セキュア・モードに設定する前に、物理プロセッサ・コアの少なくとも設計および非設計状態を保存することができる。したがって、セキュア・コード・セグメントの実行を終了した後、物理プロセッサ・コアの設計および非設計状態を回復して、プログラム・コードの正常実行を継続することが可能になる。
【0047】
次に、ステップS106において、少なくとも1つのプロセッサ・コアは、セキュア・コード・セグメントのための排他的セキュア実行に設定される。
【0048】
また任意選択で、ステップS108において、セキュア・コード・セグメントを実行する前に、物理プロセッサ・コアの非設計状態を一掃することができる。特に、物理プロセッサ・コアの少なくとも1つのキャッシュ・ストレージまたはレジスタまたはメモリから、非設計状態を一掃することができる。物理プロセッサ・コアの非設計状態を一掃することは、処理ユニット216のハードウェアによってハードウェア制御式に実行することができる。好ましくは、ソフトウェア障害およびそれに続く不十分な一掃のリスクを低減させることができる。これによって、セキュア・コード・セグメントが実行された場合に、すでに存在するデータとの干渉が生じなくなる。
【0049】
次いで、ステップS110において、少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントが実行される。セキュア・コード・セグメントは、最小の期間または最小の命令数あるいはその両方に対して、中断不能に実行される。セキュア・コード・セグメントの中断不能な実行は、状態機械によって制御することができる。状態機械は、セキュア・コード・セグメントの中断不能な実行を制御する効率的な方法となることができる。
【0050】
セキュア・コード・セグメントの実行中は、中断を阻止することができる。したがって、効率的な処理のために、セキュア・コード・セグメントの妨げられない実行を保証することができる。好ましくは、セキュア・コード・セグメントは、最小の時間量または動作命令数あるいはその両方に対して、混乱なく実行することができる。
【0051】
セキュア・コード・セグメントの実行を終了した後、ステップS112において、特に少なくとも1つのプロセッサ・コアの少なくとも1つのキャッシュ・ストレージまたはレジスタまたはメモリから、設計および非設計状態を一掃することができる。セキュア・コード・セグメントの実行後に少なくとも1つのプロセッサ・コアから設計および非設計状態を一掃することは、中断要求によって開始することができる。したがって、第1の実行状態におけるプログラム・コードのさらなる正常実行を、セキュア・コード・セグメントの実行からの残りのデータとの干渉なく実現することができる。
【0052】
任意選択で、ステップS104で設計および非設計状態が保存された場合、ステップS112において、プロセッサ・コアを第1の実行モードに設定する前に、物理プロセッサ・コアの少なくとも設計および非設計状態を回復することができる。したがって、セキュア・コード・セグメントの実行を終了した後、物理プロセッサ・コアの設計および非設計状態を回復して、プログラム・コードの正常実行を継続することができる。
【0053】
次いで、ステップS114において、少なくとも1つのプロセッサ・コアは、少なくとも1つのプロセッサ・コア上のプログラム・コードのための第1の実行モードに設定され、ステップS116において正常実行を継続する。
【0054】
図2を次に参照すると、データ処理システム210の一例の概略図が示されている。データ処理システム210は、好適なデータ処理システムの一例にすぎず、本明細書に記載する本発明の実施形態の使用または機能範囲に対する何らかの限定を示唆することを意図したものではない。それにもかかわらず、データ処理システム210は、本明細書に上述した機能のいずれかで実装されること、または本明細書に上述した機能のいずれかを実行すること、あるいはその両方が可能である。
【0055】
データ処理システム210内にはコンピュータ・システム/サーバ212が設けられ、コンピュータ・システム/サーバ212は、多数の他の汎用または特別目的のコンピューティング・システム環境または構成で動作する。コンピュータ・システム/サーバ212とともに好適に使用することができるよく知られているコンピューティング・システム、環境、または構成、あるいはその組合せの例には、それだけに限定されるものではないが、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち式またはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベース・システム、セット・トップ・ボックス、プログラム可能な消費者電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれる。
【0056】
コンピュータ・システム/サーバ212は、プログラム・モジュールなどのコンピュータ・システム実行可能命令が、コンピュータ・システムによって実行されるという概略的な文脈で説明することができる。概して、プログラム・モジュールは、特定のタスクの実行または特定の抽象データ型の実装を行うルーチン、プログラム、オブジェクト、コンポーネント、論理、データ構造などを含むことができる。コンピュータ・システム/サーバ212は、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境内で実施することができる。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ記憶デバイスを含むローカルおよび遠隔の両方のコンピュータ・システム記憶媒体内に位置することができる。
【0057】
図2に示すように、データ処理システム210内のコンピュータ・システム/サーバ212は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム/サーバ212の構成要素は、それだけに限定されるものではないが、1つまたは複数のプロセッサまたは処理ユニット216と、システム・メモリ228と、システム・メモリ228を含む様々なシステム構成要素を処理ユニット216に結合するバス218とを含むことができる。
【0058】
バス218は、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、および様々なバス・アーキテクチャのうちのいずれかを使用するプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかのうちの1つまたは複数を代表する。限定ではなく例として、そのようなアーキテクチャには、Industry Standard Architecture(ISA)バス、Micro Channel Architecture(MCA)バス、Enhanced ISA(EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、およびPeripheral Component Interconnect(PCI)バスが含まれる。
【0059】
コンピュータ・システム/サーバ212は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ212によってアクセス可能である任意の利用可能な媒体とすることができ、そのような媒体には、揮発性媒体および不揮発性媒体の両方、取り外し可能媒体および取り外し不能媒体の両方が含まれる。
【0060】
システム・メモリ228は、ランダム・アクセス・メモリ(RAM)230またはキャッシュ・メモリ232あるいはその両方などの揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ212は、他の取り外し可能/取り外し不能な揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含むことができる。例示のみを目的として、記憶システム234は、取り外し不能な不揮発性磁気媒体(示されていないが、典型的には「ハード・ドライブ」と呼ばれる)からの読み取りおよびそこへの書き込みのために設けることができる。示されていないが、取り外し可能な不揮発性磁気ディスク(たとえば、「フロッピー(R)・ディスク」)からの読み取りおよびそこへの書き込みのための磁気ディスク・ドライブ、ならびにCD-ROM、DVD-ROM、または他の光学媒体などの取り外し可能な不揮発性光学ディスクからの読み取りまたはそこへの書き込みのための光学ディスク・ドライブを設けることができる。そのような事例では、1つまたは複数のデータ媒体インターフェースによって、各々をバス218に接続することができる。さらに図示および後述するように、メモリ228は、本発明の実施形態の機能を実施するように構成された1組(たとえば、少なくとも1つ)のプログラム・モジュールを有する少なくとも1つのプログラム製品を含むことができる。
【0061】
限定ではなく例として、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、1組(少なくとも1つ)のプログラム・モジュール242を有するプログラム/ユーティリティ240を、メモリ228内に記憶することができる。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データの各々、またはこれらの組合せは、ネットワーキング環境の一実装形態を含むことができる。プログラム・モジュール242は、概して、本明細書に記載する本発明の実施形態の機能または方法あるいはその両方を実施する。
【0062】
コンピュータ・システム/サーバ212はまた、キーボード、ポインティング・デバイス、ディスプレイ224などの1つもしくは複数の外部デバイス214、ユーザがコンピュータ・システム/サーバ212と対話することを可能にする1つもしくは複数のデバイス、またはコンピュータ・システム/サーバ212が1つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(たとえば、ネットワーク・カード、モデムなど)、あるいはその組合せと通信することができる。そのような通信は、入出力(I/O)インターフェース222を介して行うことができる。さらに、コンピュータ・システム/サーバ212は、ローカル・エリア・ネットワーク(LAN)、汎用ワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(たとえば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ220を介して通信することができる。示されているように、ネットワーク・アダプタ220は、バス218を介してコンピュータ・システム/サーバ212の他の構成要素と通信する。示されていないが、他のハードウェアまたはソフトウェア構成要素あるいはその両方を、コンピュータ・システム/サーバ212とともに使用することもできることを理解されたい。例には、それだけに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ保存記憶システムなどが含まれる。
【0063】
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せとすることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含むことができる。
【0064】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、それだけに限定されるものではないが、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または上記の任意の好適な組合せとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能なプログラム可能リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、携帯型コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードなどの機械的に符号化されたデバイス、または命令が記録された溝の中の凸状構造、および上記の任意の好適な組合せが含まれる。本明細書では、コンピュータ可読記憶媒体は、無線波もしくは他の自由に伝播する電磁波、導波管もしくは他の伝送媒体を通って伝播する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、またはワイアを通って伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
本明細書に記載するコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスへ、あるいはネットワーク、たとえばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワークまたはその組合せを介して外部コンピュータまたは外部記憶デバイスへ、ダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを含むことができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、独立型のソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的に遠隔コンピュータ上で、または完全に遠隔コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、または外部コンピュータに(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)接続することができる。いくつかの実施形態では、たとえばプログラム可能論理回路、フィールド・プログラム可能ゲート・アレイ(FPGA)、またはプログラム可能論理アレイ(PLA)を含む電子回路が、本発明の態様を実行するために、電子回路をパーソナライズするためのコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
本発明の態様について、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照して本明細書に説明する。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装することができることが理解されよう。
【0065】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/動作を実装するための手段をもたらすように、汎用コンピュータ、特別目的コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて、機械を作り出すことができる。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/動作の態様を実装する命令を含む製品を備えるように、コンピュータ可読記憶媒体内に記憶することができ、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の方式で機能するように指示することができる。
【0066】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/動作を実装するように、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスへロードされて、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させ、コンピュータ実装プロセスを作り出すことができる。
【0067】
これらの図の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、流れ図またはブロック図内の各ブロックは、命令のモジュール、セグメント、または部分を表すことができ、命令は、指定された論理機能を実装するための1つまたは複数の実行可能な命令を含む。いくつかの代替実装形態では、ブロック内に記載する機能は、これらの図に示す順序以外で行うことができる。たとえば、関連する機能に応じて、連続して示されている2つのブロックが、実際には実質的に同時に実行されることがあり、またはこれらのブロックが逆の順序で実行されることもある。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方のブロックの組合せは、指定された機能もしくは動作を実行するまたは特別目的ハードウェアおよびコンピュータ命令の組合せを実施する特別目的ハードウェア・ベース・システムによって実装することができることにも留意されたい。
【0068】
本発明の様々な実施形態の説明は、例示の目的で提示されており、開示する実施形態に対して網羅的または限定的であることを意図したものではない。記載する実施形態の範囲および精神から逸脱することなく、多くの修正形態および変形形態が当業者には明らかである。本明細書で使用する術語は、実施形態の原理、実際的な応用例、もしくは市場で見られる技術に対する技術的改善について最もよく説明するために、または当業者であれば本明細書に開示する実施形態を理解することが可能になるように選択されたものである。
【0069】
本開示のさらなる例示的な実施形態について、以下の番号付きの条項に記載する。
【0070】
番号付き条項1:処理ユニット(216)のプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ実装方法であって、処理ユニット(216)が、少なくとも1つのプロセッサ・コアによって、第1の実行モードを走らせて、少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成され、この方法が、
(i)少なくとも1つのプロセッサ・コア上のプログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、
(ii)少なくとも1つのプロセッサ・コアをセキュア・コード・セグメントのための排他的セキュア実行に設定することと、
(iii)少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することと、
(iv)少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することと、
(v)少なくとも1つのプロセッサ・コアを少なくとも1つのプロセッサ・コア上でプログラム・コードを実行するための第1の実行モードに設定することとを少なくとも含む、方法。
【0071】
番号付き条項2:プロセッサ・コアを排他的セキュア・モードに設定する前に、物理プロセッサ・コアの少なくとも設計状態および非設計状態をさらに保存する、番号付き条項1に記載の方法。
【0072】
番号付き条項3:プロセッサ・コアを第1の実行モードに設定する前に、物理プロセッサ・コアの少なくとも設計状態および非設計状態をさらに回復する、番号付き条項1または2に記載の方法。
【0073】
番号付き条項4:セキュア・コード・セグメントを実行する前に、物理プロセッサ・コアの少なくとも1つのキャッシュ・ストレージから物理プロセッサ・コアの非設計状態をさらに一掃する、番号付き条項1ないし3のいずれか一項に記載の方法。
【0074】
番号付き条項5:物理プロセッサ・コアの非設計状態を一掃することが、処理ユニット(216)のハードウェアによってハードウェア制御式に実行される、番号付き条項4に記載の方法。
【0075】
番号付き条項6:プロセッサ・コア上でプログラム・コードを実行するための第1の実行モードが、同時マルチスレッディング・モードである、番号付き条項1ないし5のいずれか一項に記載の方法。
【0076】
番号付き条項7:少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することが、最小の期間または最小の命令数あるいはその両方に対して定義される、番号付き条項1ないし6のいずれか一項に記載の方法。
【0077】
番号付き条項8:少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することが、状態機械によって制御される、番号付き条項1ないし7のいずれか一項に記載の方法。
番号付き条項9:セキュア・コード・セグメントの実行中の中断が阻止される、番号付き条項1ないし8のいずれか一項に記載の方法。
【0078】
番号付き条項10:セキュア・コード・セグメントの実行後に少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することが、中断要求によって開始される、番号付き条項1ないし9のいずれか一項に記載の方法。
【0079】
番号付き条項11:仮想機械上またはコンテナ上で動作命令が実装される、番号付き条項1ないし10のいずれか一項に記載の方法。
【0080】
番号付き条項12:処理ユニット(216)のプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ・システム(212)であって、処理ユニット(216)が、少なくとも1つのプロセッサ・コアによって構成され、コンピュータ・システム(212)が、少なくとも1つのプロセッサ・コアを有する少なくとも1つのプロセッサ・ユニット(216)を備え、プロセッサ・コアが、第1の実行モードを走らせて、少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成され、コンピュータ・システム(212)が、
(i)少なくとも1つのプロセッサ・コア上のプログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、
(ii)少なくとも1つのプロセッサ・コアをセキュア・コード・セグメントのための排他的セキュア実行に設定することと、
(iii)少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することと、
(iv)少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することと、
(v)少なくとも1つのプロセッサ・コアを少なくとも1つのプロセッサ・コア上でプログラム・コードを実行するための第1の実行モードに設定することとを少なくとも含む、番号付き条項1ないし11のいずれか一項に記載の方法を実行するように構成されている、コンピュータ・システム。
【0081】
番号付き条項13:プロセッサ・コアを排他的セキュア・モードに設定する前に、物理プロセッサ・コアの少なくとも設計状態および非設計状態を保存するように構成されている、番号付き条項12に記載のコンピュータ・システム。
【0082】
番号付き条項14:プロセッサ・コアが第1の実行モードに設定される前に、物理プロセッサ・コアの少なくとも設計状態および非設計状態を回復するように構成されている、番号付き条項12または13に記載のコンピュータ・システム。
【0083】
番号付き条項15:セキュア・コード・セグメントが実行される前に、物理プロセッサ・コアの少なくとも1つのキャッシュ・ストレージから物理プロセッサ・コアの非設計状態を一掃するように構成されている、番号付き条項12ないし14のいずれか一項に記載のコンピュータ・システム。
【0084】
番号付き条項16:物理プロセッサ・コアの非設計状態を処理ユニットのハードウェアによってハードウェア制御式に一掃するように構成されている、番号付き条項12ないし15のいずれか一項に記載のコンピュータ・システム。
【0085】
番号付き条項17:プロセッサ・コア上でプログラム・コードを実行するための第1の実行モードが、同時マルチスレッディング・モードである、番号付き条項12ないし16のいずれか一項に記載のコンピュータ・システム。
【0086】
番号付き条項18:最小の期間または最小の命令数あるいはその両方に対して、少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行するように構成されている、番号付き条項12ないし17のいずれか一項に記載のコンピュータ・システム。
【0087】
番号付き条項19:少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することが、状態機械によって制御される、番号付き条項12ないし18のいずれか一項に記載のコンピュータ・システム。
【0088】
番号付き条項20:セキュア・コード・セグメントの実行中の中断を阻止するように構成されている、番号付き条項12ないし19のいずれか一項に記載のコンピュータ・システム。
【0089】
番号付き条項21:セキュア・コード・セグメントの実行後に少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することが、中断要求によって開始される、番号付き条項12ないし20のいずれか一項に記載のコンピュータ・システム。
【0090】
番号付き条項22:仮想機械上またはコンテナ上で動作命令が実装される、番号付き条項12ないし21のいずれか一項に記載のコンピュータ・システム。
【0091】
番号付き条項23:処理ユニット(216)のプロセッサ・コア上でセキュア・コード・セグメントを動作させるためのコンピュータ・プログラム製品であって、処理ユニット(216)が、少なくとも1つのプロセッサ・コアによって、第1の実行モードを走らせて、少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成され、コンピュータ・プログラム製品が、プログラム命令が実施されたコンピュータ可読記憶媒体を備え、プログラム命令が、コンピュータ・システム(212)によって、
(i)少なくとも1つのプロセッサ・コア上のプログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、
(ii)少なくとも1つのプロセッサ・コアをセキュア・コード・セグメントのための排他的セキュア実行に設定することと、
(iii)少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することと、
(iv)少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することと、
(v)少なくとも1つのプロセッサ・コアを少なくとも1つのプロセッサ・コア上でプログラム・コードを実行するための第1の実行モードに設定することとを含む、番号付き条項1ないし11のいずれか一項に記載の方法をコンピュータ・システム(212)に実行させるように実行可能である、コンピュータ・プログラム製品。
【0092】
番号付き条項24:番号付き条項1ないし11のいずれか一項に記載の方法を実行するためのコンピュータ可読プログラム命令を含む、データ処理プログラム(240)を実行するためのデータ処理システム(210)。
【0093】
番号付き条項25:処理ユニットのプロセッサ・コア上でセキュア・コード・セグメントを動作させるための命令を実行するための集積回路であって、処理ユニットが、少なくとも1つのプロセッサ・コアによって構成され、コンピュータ・システムが、少なくとも1つのプロセッサ・コアを有する少なくとも1つのプロセッサ・ユニットを備え、プロセッサ・コアが、第1の実行モードを走らせて、少なくとも1つのプロセッサ・コア上でプログラム・コードを実行し、少なくとも1つのプロセッサ・コア上で動作命令のプログラム・コードを実行するように構成され、集積回路が、
(i)少なくとも1つのプロセッサ・コア上のプログラム・コードのセキュア・コード・セグメントの排他的セキュア実行を要求することと、
(ii)少なくとも1つのプロセッサ・コアをセキュア・コード・セグメントのための排他的セキュア実行に設定することと、
(iii)少なくとも1つのプロセッサ・コア上でセキュア・コード・セグメントを中断不能に実行することと、
(iv)少なくとも1つのプロセッサ・コアから物理プロセッサ・コアの設計状態および非設計状態を一掃することと、
(v)少なくとも1つのプロセッサ・コアを少なくとも1つのプロセッサ・コア上でプログラム・コードを実行するための第1の実行モードに設定することとを少なくとも含む、番号付き条項1ないし11のいずれか一項に記載の方法を実行するように構成されている、集積回路。
図1
図2
【国際調査報告】