JP2012014716A - プロセッサ構成設定をオーバーライドする方法 - Google Patents

プロセッサ構成設定をオーバーライドする方法 Download PDF

Info

Publication number
JP2012014716A
JP2012014716A JP2011182699A JP2011182699A JP2012014716A JP 2012014716 A JP2012014716 A JP 2012014716A JP 2011182699 A JP2011182699 A JP 2011182699A JP 2011182699 A JP2011182699 A JP 2011182699A JP 2012014716 A JP2012014716 A JP 2012014716A
Authority
JP
Japan
Prior art keywords
processor
register
override
entry
program
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
JP2011182699A
Other languages
English (en)
Other versions
JP5634353B2 (ja
Inventor
Edward Vargy
バラギー、エドワード
Chris Nerbern
ニューバーン、クリス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2012014716A publication Critical patent/JP2012014716A/ja
Application granted granted Critical
Publication of JP5634353B2 publication Critical patent/JP5634353B2/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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】プロセッサの構成を、実行中にユーザレベルで変更し、パフォーマンスを向上させる。
【解決手段】プロセッサ機構に対応するオーバーライドレジスタのエントリを、そのプロセッサ機構に対するプロセッサ構成設定をオーバーライドするようにセットし、そのエントリを使用してプロセッサ機構に対するプロセッサ構成設定をオーバーライドする方法を含む。エントリを、たとえばユーザレベルアプリケーションでセットしてもよい。
【選択図】図5

Description

本発明は、プロセッサベースシステムに関し、特にプロセッサ機構(features)のプロセッサ構成設定をオーバーライドすることに関する。
システムの中央処理装置(CPU)等のプロセッサは、通常、キャッシュ、バッファ、アレイ等の複数のプロセッサ機構を有する。プロセッサは、特に分岐予測ユニット、プリフェッチユニット等の論理演算ユニットであるさまざまなプロセッサ機構もさらに有する場合がある。プロセッサのパフォーマンスを向上させる一方法は、多段階パイプラインアーキテクチャを使用するというものであり、その場合、さまざまなパイプライン機構を使用して命令をより効率的に実行することができる。
プロセッサが命令を効率的に実行するためには、プロセッサ内のいくつかの機構を、プロセッサの製造中にデフォルトでイネーブル状態またはディスエーブル状態にする場合がある。通常、このデフォルト状態は、ユーザレベル制御下では変更することができない。すなわち、プロセッサ機構によっては、プロセッサが製造される時に、種々の対象市場に対して可能な種々のデフォルト構成で、デフォルトでイネーブルか又はディスエーブルにされる。言い換えれば、プロセッサで実行しているアプリケーションにかかわりなく、現在実施されているのは「全か無か(all or nothing)」である。このため、プロセッサ機構によっては、通常システムがエンドユーザに出荷される前に確定される所定のポリシに従ってイネーブルか又はディスエーブルにされる。
たとえば、プロセッサのハードウェアプリフェッチャは、通常、製造中にデフォルト状態に構成される。このデフォルト状態は、プロセッサを含むシステムが起動される時、たとえば基本入出力システム(BIOS)実行中にセットされる。このため、ハードウェアプリフェッチャの制御はエンドユーザには不可視であり、エンドユーザが再構成することはできない。
このため、特定のプロセッサ機構に関してプロセッサのパフォーマンスを向上させる必要がある。
さまざまな実施形態において、種々の態様のプロセッサのマイクロアーキテクチャ構成のユーザレベルのソフトウェア制御をもたらすことができる。こうしたユーザのレベル制御を多くの種々の方法で達成することができるが、いくつかの実施形態では、プロセッサ内に、プロセッサの構成に関する情報を格納するために1つ又は複数の追加のレジスタが存在してもよい。一実施形態では、追加のレジスタを、マイクロアーキテクチャ構成レジスタ又はMCRと呼ぶことがある。プロセッサの状態の一部として、MCRは、コンテキストスイッチにわたって保存され復元される。いくつかの実施形態では、MCRの各ビットは、特定のマイクロアーキテクチャ機構のイネーブル状態又はディスエーブル状態に対応してもよい。追加のレジスタとして、MCRの読出し及び書込みは非常に高速であり、その速度はプロセッサ内の汎用(GP)レジスタの変更速度に匹敵する。
ここで図1を参照すると、本発明の一実施形態によるプロセッサの状態レジスタの部分的なセットのブロック図が示されている。図1の状態レジスタは、Intel(登録商標)アーキテクチャ(IA−32又はx86)仕様に従うプロセッサに存在してもよいが、本発明の範囲はそのように限定されない。すなわち、本明細書では主にIA−32プロセッサに関して論考するが、実施形態を、ITANIUM(登録商標)プロセッサ等、インテル・コーポレーション(Intel Corporation)から入手可能な他のプロセッサ、又は同様の若しくは異なる命令セットアーキテクチャ(ISA)を有する他の製造業者のプロセッサにおいて実装してもよい。図1に示すように、状態レジスタは、プロセッサのコア内にあってもよく、それらを使用して、所与のコンテキストに対するプロセッサ状態に関する情報を格納してもよい。図1には特定のレジスタが存在するように示すが、他の実施形態では、他のプログラム実行レジスタに加えて追加のステータスレジスタ、制御レジスタ及び状態レジスタがあってもよい、ということが理解される。
図1に示すように、存在するレジスタは、複数のGPレジスタ10を含んでもよい。こうしたレジスタを、論理演算及び算術演算のためのオペランド、アドレス計算のためのオペランド、メモリポインタ等、プロセッサ動作中にさまざまな情報を格納するために使用してもよい。さらに、ステータス及び制御(EFLAGS)レジスタ20は、さまざまなステータスフラグ、制御フラグ及びシステムフラグを含んでもよい。EFLAGSレジスタ20を使用して、プログラムステータスに関して報告してもよい。命令ポインタ(EIP)レジスタ30を使用して、実行されるプログラムの次の命令に対するポインタを格納してもよい。
図1にさらに示すように、複数のセグメントレジスタ40が存在してもよい。セグメントレジスタ40は、メモリセグメントを識別するポインタとして作用するセグメントセレクタを格納してもよい。言い換えれば、こうしたセグメントレジスタ40は、メモリのコード、データ及びスタックセグメントをアドレス指定する。
図1にさらに示すように、少なくとも1つのマイクロアーキテクチャ構成レジスタ(MCR)50が存在する。MCR50を使用して、種々のプロセッサ機構に関する情報を格納してもよい。たとえば、MCR50の各エントリ又はビットは、異なるプロセッサ機構に対応してもよい。MCR50は、さまざまなソフトウェアレベルによりISAを介してアクセスされることができるように、アーキテクチャ的に可視であってもよい。各ビットの出力を、対応する機構又は他のプロセッサハードウェアに結合して、その機構のイネーブル又はディスエーブルを制御してもよい。所与のビットのステータスに基づき、対応する機構をイネーブルに又はディスエーブルにしてもよい。
一例として、いくつかの機構を、プロセッサが製造される時にデフォルトによってイネーブル又はディスエーブルにしてもよい。しかしながら、動作中、機構によっては、それらのデフォルト設定がソフトウェア制御下で変更される(たとえばイネーブルからディスエーブルに)ようにすることができる。こうしたソフトウェア制御を、アプリケーションプログラム等、ユーザレベルソフトウェアにおいて行うことができる。このように、プロセッサ機構の非オペレーティングシステム(OS)又は非BIOS制御を行うことができる。
まとめて、図1に示すレジスタを、アーキテクチャ制御レジスタ(たとえば制御レジスタ0、制御レジスタ1、制御レジスタ2、制御レジスタ3等)等、図1に示さない他のレジスタと共に、コンテキストレジスタとみなしてもよい。それは、こうしたレジスタを、プロセッサで実行している所与のコンテキストに基づいて異なる値を用いてプログラムすることができるためである。マルチタスクOSが1つのプロセス(たとえばアプリケーション又はソフトウェアスレッド)の実行を停止し別のプロセスの実行を開始する時、コンテキストスイッチが発生する場合がある。コンテキストスイッチ時、これらのレジスタに格納されている値を、現在のコンテキストに対するプロセッサ状態を保存するために、他の場所に保存してもよい。そして、これらのレジスタに新たなコンテキストのステータスをロードすることによりそのプロセッサ状態を提供してもよい。別のコンテキストスイッチ、たとえば元のコンテキストに戻る時、保存されたプロセッサ状態をレジスタに復元してもよい。
いくつかのプロセッサ機構は、所与のプログラム段階中に適当である場合もあれば不適当である場合もある。したがって、動作時、MCR50のビットを、所与のアプリケーションに対する特定のプロセッサ機構の有用性、効率等に関する情報に基づいてイネーブルに又はディスエーブルにしてもよい。たとえば、所定のポリシを介して、動的プロファイリングを介して、又は特定のプログラム段階中に、特定の機構をイネーブルにするか又はディスエーブルにすることにより、プログラム全体のパフォーマンスが向上することが知られている。ソフトウェアは、プロセッサ構成設定をオーバーライドすることの妥当性を確定し、さまざまな方法でプロセッサ機構のイネーブル又はディスエーブルをもたらしてもよい。最初に、アプリケーションプログラム等のソフトウェアが書かれる時、プログラマは、所望の機構がプログラムの或る段階においてオン又はオフ(すなわちイネーブル又はディスエーブル)にされるようにコードを挿入してもよい。他の実施形態では、コンパイラが、或るプログラム段階に対して特定のプロセッサ機構が望ましいと判断し、コンパイル中、1つ又は複数のプロセッサ機構の所望のイネーブル又はディスエーブルをもたらすようにコードを挿入してもよい。さらに、管理された実行環境(managed runtime environment:マネージドランタイム環境)(MRTE)(たとえばJAVA(商標)又は.NET環境)では、プロファイリングを実行してもよく、プロファイリングの結果が、或るプロセッサ機構は或るプログラム段階中は適当であるが、他の段階中は適当でないと示してもよい。
第1のプログラム段階に入ると、MCR50(たとえば)の適当なビットが、指定された機構をイネーブルにするか又はディスエーブルにするようにセットされる。このプログラム段階が終了すると、MCRビットはその元の値にリセットされる。MCR50の内容は、プロセッサ状態の一部であり、コンテキストスイッチにわたって保存されるため、所与のソフトウェアプロセス及びスレッドに特有である。
他の実施形態では、動的プロファイリング中、アプリケーションが一定のプログラムカウンタ(PC)値に達した時、所与の機構がイネーブルにされるか又はディスエーブルにされると判断されてもよい。さらに他の実施形態では、特定のプログラムタイプに対し所与の機構をイネーブル又はディスエーブルにしてもよい。たとえば、ストライド(striding)ハードウェアプリフェッチャ等のハードウェアプリフェッチャ(HWP)を、科学計算アプリケーションに対してイネーブルにしてもよく、一方でデータベースアプリケーションに対してディスエーブルにしてもよい。これらの異なるタイプのアプリケーションの機構(mechanics)により、プリフェッチャはデータベース操作に対してそれほど有効でなくなるためである。
本発明の実施形態を種々のマイクロアーキテクチャ又は他のプロセッサ機構と共に使用してもよいが、以下の論考はHWPに関する。MRTEの場合、サーバタイプのアプリケーションに対し、HWPは、計算のガーベッジコレクション(GC)段階中に非常に大きいパフォーマンスブーストを提供する可能性があるが、パフォーマンス全体を損なう可能性がある。このため、パフォーマンスを向上させるために、HWPを、計算の一般的な段階の間はディスエーブルにするが、ガーベッジコレクション中はイネーブルにしてもよい。MRTEの仮想マシン(VM)は、ガーベッジコレクション段階に入ると、MCR50にアクセスし、HWP構成に対応するビットを「イネーブル」にセットする。ガーベッジコレクション段階が完了すると、このビットは「ディスエーブル」にセットされる。
他の実施形態では、プロセッサ機構のユーザレベル制御を提供するために複数のレジスタを使用してもよい。こうした方法では、マイクロアーキテクチャ機構等のプロセッサ機構の制御は、デフォルトによりすべてのソフトウェアスレッドに適用されるプロセッサ構成設定と、そのデフォルトをオーバーライドするための各ソフトウェアスレッドによるヒントとを共にサポートしてもよい。このため、第1のレジスタは、デフォルトプロセッサ構成設定に関する情報を格納するために存在してもよく、1つ又は複数のオーバーライドレジスタは、ソフトウェアがデフォルト設定をオーバーライドするのに使用するために存在してもよい。そして、オーバーライドレジスタの情報に基づき、或る機構が強制的にイネーブルになるか又はディスエーブルになるようにすることにより、プロセッサ構成設定を上書きしてもよい。
ここで図2を参照すると、本発明の別の実施形態による複数のレジスタのブロック図が示されている。図2に示すように、プロセッサ構成レジスタ(PCR)70が存在する。PCR70は、N個のビットを含んでもよく、各ビットは、マイクロアーキテクチャ機構等、異なるプロセッサ機構に対応する。PCR70は、すべてのプロセスにわたってデフォルトとして適用可能なプロセッサ構成設定に対応する値を格納してもよい。たとえば、1の値は、対応する機構がイネーブルであることを示してもよく、0の値は、対応する機構がディスエーブルであることを示してもよい。
しかしながら、PCR70の値を、所与のソフトウェアスレッドのユーザレベル制御に基づいて上書きしてもよい。特に、PCR70のデフォルト設定を、イネーブルオーバーライドレジスタ(EOR)80及びディスエーブルオーバーライドレジスタ(DOR)90の情報に基づいてオーバーライドしてもよい。EOR80及びDOR90を、所与のソフトウェアスレッドの実行中にデフォルト設定をオーバーライドするように、且つプロセッサ機構がイネーブル又はディスエーブルされるようにプログラムしてもよい。たとえば、アプリケーションプログラムを開発する独立系ソフトウェアベンダ(independent software vendor)(ISV)は、たとえば或るプログラム段階中にプログラムの動作及び効率を向上させるために特定のプロセッサ機構がイネーブルとなるようにするコードを含めてもよい。
異なる実施形態では、プロセッサ機構の所望のディスエーブル又はイネーブルをもたらすために、PCR70、EOR80及びDOR90の対応するビットを論理的に結合してもよい。ユーザ制御下で機構選択をもたらすように、レジスタを種々の方法で論理的に結合してもよい。
ここで図3を参照すると、本発明の一実施形態によるオーバーライドレジスタを結合するために使用されるロジックインプリメンテーションが示されている。特に、図3は、PCR70、EOR80及びDOR90の対応するビットを示す。図3にさらに示すように、対応するビットを結合するために論理ゲートを使用してもよい。詳細には、ORゲート92は、PCR70及びEOR80から対応するビットを受け取ってもよい。そして、ORゲート92の出力をANDゲート94の入力に結合してもよく、ANDゲート94はまた、DOR90の対応するビットの反転出力を受け取るように結合される。ANDゲート94の結果としての出力を使用して、対応するプロセッサ機構に対するプロセッサ構成設定を制御してもよい。たとえば、ANDゲート94の出力を、プロセッサ機構の回路に提供することにより、その機構をそれに従ってイネーブル又はディスエーブルにしてもよい。
図3に示すロジックインプリメンテーションを使用して、3つのレジスタに対するビット設定の組合せにより、関連するプロセッサ機構をイネーブル又はディスエーブルにしてもよい。詳細には、通常の動作条件下では、EOR80及びDOR90とは無関係に、PCR70のビット0の1の値(たとえば)は、対応する機構がイネーブルであることを示す。EOR80及びDOR90のビット0の1の値は、PCR70の値が、それぞれイネーブル及びディスエーブルとしてオーバーライドされることを示す。すなわち、EOR80のビットに対するアクティブハイ値を使用して、対応する機構が強制的にオンにされ、DOR90のアクティブハイビットを使用して、対応する機構が強制的にオフにされる。
たとえば、デスクトップシステムにおいて、HWPに対応するPCRビットを「工場において」(又はBIOSを介して相手先ブランド製造業者(original equipment manufacturer)(OEM)により)1にセットしてもよく、それによりHWPはデフォルトによってイネーブルになる。こうしたHWPは、デスクトップシステムで実行しているアプリケーションに対して望ましい可能性があるため、アプリケーション(すなわちユーザレベル)コードはオーバーライドレジスタに関して何も行わず、EOR80及びDOR90の対応するビットはデフォルトで0にされる。このため、機構に対するデフォルト挙動は、PCRビットによって与えられ、すなわちHWPはデスクトップシステムに対してイネーブルになる。
しかしながら、サーバシステムの場合、HWPはデフォルトによりディスエーブルにされることが望まれる可能性がある。この場合、HWPに対応するPCRビットは、「工場において」0にセットされる。このデフォルト設定に対し、EOR80及びDOR90の対応するビットは0であり、このためHWPはデフォルトによりディスエーブルにされる。プログラム又はプログラムのいくつかの部分の実行中、HWPをイネーブルにすることが望まれる場合がある。たとえば、Java(商標)アプリケーションがサーバシステムで実行している場合がある。プロファイリングに基づき、HWPはGC段階中はパフォーマンスを向上させる可能性があることが既知であり、そのため、GC中はHWPをイネーブルにしてもよいが、アプリケーション中の他の場所ではディスエーブルにしてもよい。HWPはデフォルトによりオフであるため、GC中、ソフトウェアは、EOR80の対応するビットを1にセットする。DOR90の対応するビットは、そのデフォルト値0のままである。図3に示すロジックインプリメンテーションに基づき、これにより、所望通りに、ANDゲート94から最終出力の1が得られ、HWPがイネーブルになる。
逆に、デスクトップシステムで同じJava(商標)アプリケーションが実行しているとすると仮定する。ここで、PCRビットは工場において1にセットされる。アプリケーションは、非GC段階中はHWPがイネーブルにされずより効率的に実行するため、GC段階の最後には、ソフトウェアは対応するDORビットを1にセットする。このDOR90の値は、ディスエーブルオーバーライドを示し、HWPはディスエーブルになる。アプリケーションは、HWPがディスエーブルである状態で次のGC段階の開始まで実行し、GC段階の開始の時点で、アプリケーションはDORビットを0にリセットし、HWPがイネーブルになる。ソフトウェアが適当なプログラム位置でビットをセットするため、コンテキストスイッチにおける保存/復元コストを低減することができる。
上述したように、ソフトウェアヒント設定は、ソフトウェアスレッド特有であり、コンテキストスイッチ時に保存し復元することができる。保存及び復元手続きが、論理0でない設定のみを保存するように最適化される設計では、オーバーライドレジスタを、有用である場合にのみセットしてもよい。オーバーライドビットがプロセッサ構成設定と同じ設定を提供する場合、すなわちオーバーライドが必要でない(それが無用である)場合、対応するオーバーライドビットはセットされない。こうした実施形態では、EOR80及びDOR90の適当なビットに対する入力は、ソフトウェア指定ビットと、対応するプロセッサ構成設定ビットの反転値との論理積をとる出力であってもよい。ハードウェアが、ソフトウェア指定ビットに関連する機能をサポートしない場合、オーバーライドするものはなく、それらは無用である。したがって、それらのビットは読取り専用であってもよく、値は0である。
実施形態によっては、ハードウェアは、ソフトウェアヒントオーバーライドをオーバーライドしてもよい。すなわち、一定の情報に基づいて、ハードウェアは、ソフトウェアヒント値がプログラムの実行を向上させず、又は所与のハードウェアインプリメンテーションに不適当であると判断する場合があり、従ってハードウェアは、こうしたソフトウェアヒントをオーバーライドしてもよい。
その結果、ハードウェアは、ソフトウェアヒントオーバーライドによって示唆される設定が有効でないと経験的に判断することができる場合、オーバーライドビットをクリアすることができる。たとえば、ハードウェアは、まずソフトウェアヒントを受け入れ、それに従ってアプリケーションを実行してもよい。しかしながら、ハードウェアは、その実行が効率的でなく、イネーブル又はディスエーブルにされた機構がプロセッサのパフォーマンスを向上させないか、又はサーマルリミット等、別の種類の実行制約を侵害する可能性があると判断する場合がある。こうした場合、ハードウェアは、ソフトウェアヒントをオーバーライドするように選択してもよい。他の実施形態では、ハードウェアは、ソフトウェアヒントを、それがすでにヒント値に従ってプロセッサ機構を使用している場合、オーバーライドするように選択してもよい。又は、ハードウェアがプロセッサ機構をより適切に制御し且つそれをより適切に理解している状況において、ソフトウェアヒントをオーバーライドするように選択してもよい。ハードウェアオーバーライドは、ソフトウェアが、ハードウェアが大幅な向上を示す可能性がある投機的最適化を試行すべきであると示唆するが、それは試行するのにコストがかかる可能性があり、そのため潜在的利得の可能性を示す責任がソフトウェアにある場合に適当であり得る。
ここで図4を参照すると、本発明の別の実施形態によるオーバーライドレジスタのブロック図が示されている。図4に示すように、プロセッサ構成レジスタ(PCR)70、イネーブルオーバーライドレジスタ(EOR)80及びディスエーブルオーバーライドレジスタ(DOR)90が存在してもよい。図4の実施形態では、オーバーライドレジスタを、ソフトウェアオーバーライドレジスタのハードウェアオーバーライドを提供するように構成してもよい。特に、図4に示すように、EOR80及びDOR90のビットは、リセット信号を受け取ってもよい。この信号を使用して、対応するビットに対するソフトウェア指定値をオーバーライドしてもよい。
たとえば、所与のプロセッサ機構に対し、PCR70の対応するビットを、0のデフォルト値にセットしてもよい。しかしながら、アプリケーションは、その設定をオーバーライドし、その機構がイネーブルになるように望む。したがって、ソフトウェアは、EOR80の対応するビットが1の値にセットされるようにする。DOR90の対応するビットは、デフォルトの0にセットされたままであってもよく、それにより、対応する機構は、図3に示すロジックインプリメンテーションを使用してイネーブルにされる。しかしながら、ハードウェアがソフトウェア指定値をオーバーライドするように選択する実施形態では、リセット信号をEOR80の対応するビットに与えてもよく、それによりビット値はそのデフォルト値0に戻される。こうした方法で、ハードウェアはソフトウェアヒントをオーバーライドする。リセット信号がEOR80及びDOR90のビットに直接結合されるように示されているが、他の実施形態では、ロジックに結合してもよく、その出力を使用してソフトウェアヒント値をオーバーライドしてもよい。コンテキストスイッチ時、ソフトウェアヒントのハードウェアオーバーライドによって影響される、このようにレジスタに存在する値を保存してもよい。
このため、本発明の実施形態は、プロセッサ機構の動的構成を可能にする。さらに、本発明のさまざまな実施形態では、プロセッサ機構をイネーブル又はディスエーブルにするためにOS特権は不要であり、それにより高速アクセスが可能になり、HWP等のさまざまなプロセッサ機構に関するアプリケーションのパフォーマンスのきめ細かい最適化が容易になる。このように、すべてのプロセスに対してOS及びBIOSに対するこうした管理を制限する代りに、プロセッサ構成に対するユーザレベルのヒント及び/又はオーバーライドを実装することができる。したがって、アプリケーションプログラムは、1つ又は複数のプロセッサ機構を動的に構成することができ、且つそのプログラムに対してのみそれを行うことができる。他のプロセッサ機構を、分岐予測ロジック等のソフトウェアオーバーライドヒントを使用して制御することができる。たとえば、分岐予測を、いくつかのプログラム段階中にイネーブルにし、他の段階中にディスエーブルにしてもよい。さらに他の機構は、ダイナミックランダムアクセスメモリ(DRAM)ページオープン/クローズポリシ、キャッシュ割当てポリシ、バスプロトコル、他のメモリプロトコル等の機構を含んでもよい。
ここで図5を参照すると、本発明の一実施形態による方法のフローチャートが示されている。図5に示すように、方法200を、ソフトウェアが所望のプロセッサ機構をオーバーライドするために実行してもよい。ブロック210において、オーバーライドされるプロセッサ機構を選択してもよい。そして、1つ又は複数のオーバーライドレジスタを組み込んだインプリメンテーションでは、適当なオーバーライドレジスタをセットしてもよい(ブロック220)。たとえば、図3のインプリメンテーションに関して、デフォルトによりディスエーブルにされるプロセッサ機構をイネーブルにするために(たとえば、PCR70は対応するビット値0を有する)、EOR80はその対応するビットが1の値にセットされるようにしてもよい。
そして、ハードウェアがこうしたソフトウェアヒント値をオーバーライドするように選択することができる一実施形態では、次に、ハードウェアがソフトウェアヒントをオーバーライドするよう望むか否かを判断してもよい(菱形230)。そうである場合、適当なオーバーライドレジスタ(この場合、EOR80)をリセットしてもよく(ブロック240)、制御はブロック250に移ってもよい。ハードウェアがソフトウェアヒントをオーバーライドしないように選択する場合、制御は菱形230から直接ブロック250に移ってもよい。
そして、オーバーライドレジスタ及びプロセッサ構成レジスタの対応するビットを、ロジックインプリメンテーションに適用してもよい(ブロック250)。たとえば、図3に関して、PCR70及びEOR80の対応するビットをORゲート92に与えてもよく、その出力を、DOR90の対応するビットと共にANDゲート94に与えてもよい。ANDゲート94の出力に基づき、プロセッサ構成設定を、ロジックインプリメンテーションの出力を使用してオーバーライドしてもよい(ブロック260)。
プロセッサ構成設定をオーバーライドする上記動作を、プログラムの最初のコンテキスト中に実行してもよい。たとえば、最初のコンテキストは、プログラムのGC段階等、ソフトウェアスレッドに対応してもよい。次に、コンテキストスイッチが発生するか否かを判断してもよい(菱形270)。たとえば、コンテキストスイッチは、プログラムのGC段階の最後に発生する場合がある。コンテキストスイッチが発生しない場合、制御は菱形270にループバックしてもよい。
コンテキストスイッチ時、オーバーライドレジスタ及びプロセッサ構成レジスタの値を保存してもよい(ブロック280)。たとえば、こうした値を、他のコンテキストレジスタの値と共に保存することにより、後のコンテキストスイッチ時にプロセッサ状態値を元のコンテキストに復元することを可能にしてもよい。
コンテキストスイッチの後、オーバーライドレジスタ及びプロセッサ構成レジスタに、新たなコンテキストに対する値をロードしてもよい(ブロック290)。たとえば、こうしたコンテキストが以前にアクティブであった場合、プロセッサ状態と共に他の場所に保存されていた値を復元してもよい。
実施形態を、それら実施形態を実行するようにコンピュータシステムをプログラムする命令を有する記憶媒体に格納されてもよいコンピュータプログラムで実装してもよい。記憶媒体は、限定されないが、フロッピーディスク、光ディスク、コンパクトディスクリードオンリメモリ(CD−ROM)、書換可能コンパクトディスク(CD−RW)及び光磁気ディスクを含む任意のタイプのディスク、リードオンリメモリ(ROM)、ダイナミックRAM及びスタティックRAM等のランダムアクセスメモリ(RAM)、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、フラッシュメモリ等の半導体デバイス、磁気若しくは光カード、又は電子命令を格納するために適した任意のタイプの媒体を含んでもよい。他の実施形態を、プログラム可能な制御装置によって実行されるソフトウェアモジュールとして実装してもよい。
ここで図6を参照すると、本発明の一実施形態によるコンピュータシステムのブロック図が示されている。図6に示すように、コンピュータシステムはプロセッサ501を含む。一実施形態では、プロセッサ501を、フロントサイドバス520によってメモリハブ530に結合してもよく、メモリハブ530を、メモリバスを介して共有メインメモリ540に結合してもよい。プロセッサ501は、本発明の一実施形態によるさまざまなレジスタを含んでもよい。詳細には、図6に示すように、プロセッサ501は、プロセッサ構成レジスタ(PCR)502、イネーブルオーバーライドレジスタ(EOR)504及びディスエーブルオーバーライドレジスタ(DOR)506を含んでもよい。これらのレジスタの各々の対応するビットをロジック507に結合してもよく、ロジック507を使用して、ビットを論理的に結合することにより所与のプロセッサ機構に対しプロセッサ構成設定をオーバーライドしてもよい。図6に示すように、ロジック507を、さまざまなプロセッサ資源、たとえばHWP508及び分岐予測ユニット(BPU)509に結合してもよい。ロジック507の出力に基づき、これらのプロセッサ機構をイネーブル又はディスエーブルしてもよい。上述したように、こうした機構選択はユーザ制御下であってもよい。
また、メモリハブ530を、I/O拡張バス555及び周辺バス550に結合される入出力(I/O)ハブ535に(ハブリンクを介して)結合してもよい。さまざまな実施形態では、I/O拡張バス555を、特にキーボード及びマウス等のさまざまなI/Oデバイスに結合してもよい。周辺バス550を、フラッシュメモリ、アドインカード等のメモリデバイスであってもよい周辺デバイス570等のさまざまなコンポーネントに結合してもよい。説明は、図6のシステムの特定のコンポーネントを参照するが、図示する実施形態の多数の変更が可能であり得る。
本発明を、限られた数の実施形態に関して説明したが、当業者は、それらから多数の変更形態及び変形形態を理解するであろう。添付の特許請求の範囲は、この本発明の真の精神及び範囲にあるこうした変更形態及び変形形態をすべて包含することが意図されている。
本発明の一実施形態によるプロセッサの状態レジスタの部分的なセットのブロック図である。 本発明の別の実施形態による複数のオーバーライドレジスタのブロック図である。 本発明の一実施形態によるオーバーライドレジスタを結合するために使用されるロジックインプリメンテーションを示す図である。 本発明の別の実施形態によるオーバーライドレジスタのブロック図である。 本発明の一実施形態による方法のフローチャートである。 本発明の一実施形態による典型的なコンピュータシステムのブロック図である。

Claims (31)

  1. ユーザレベルソフトウェアを介してプロセッサの機構を制御することを含む方法。
  2. オーバーライドレジスタにおける前記機構に対応するオーバーライドビットをセットすることを介して前記機構をディスエーブルにすることをさらに含む、請求項1に記載の方法。
  3. プログラムの第1の段階の間に前記機構をディスエーブルにし、前記プログラムの第2の段階の間に前記機構をイネーブルにすることをさらに含む、請求項1に記載の方法。
  4. 前記機構はハードウェアプリフェッチャを含み、前記第2の段階はガーベッジコレクションを含む、請求項3に記載の方法。
  5. プログラム実行中に前記機構を動的に制御することをさらに含む、請求項1に記載の方法。
  6. プロセッサ機構に対応するオーバーライドレジスタのエントリを、該プロセッサ機構に対するプロセッサ構成設定をオーバーライドするようにセットすること、及び
    前記オーバーライドレジスタの前記エントリを使用して前記プロセッサ機構に対する前記プロセッサ構成設定をオーバーライドすること
    を含む、方法。
  7. 前記エントリをユーザ制御下でセットすることをさらに含む、請求項6に記載の方法。
  8. プログラムの第1の部分の間に前記エントリをセットすること、及び該プログラムの第2の部分の間に該エントリをリセットすること、をさらに含む請求項6に記載の方法。
  9. コンテキストスイッチ時に前記オーバーライドレジスタのエントリを格納することをさらに含む、請求項6に記載の方法。
  10. プログラムの動的プロファイリングに基づいて前記エントリをセットすることをさらに含む、請求項6に記載の方法。
  11. 前記オーバーライドレジスタの前記エントリをハードウェア制御下でオーバーライドすることをさらに含む、請求項6に記載の方法。
  12. 前記プロセッサ構成設定をオーバーライドすることは、前記オーバーライドレジスタの前記エントリとプロセッサ構成レジスタの対応するエントリとの間で論理演算を実行することを含む、請求項6に記載の方法。
  13. 少なくとも1つのプロセッサ機構に対するデフォルト設定をオーバーライドするための第1のオーバーライド情報を格納する第1のレジスタを具備する装置。
  14. 前記少なくとも1つのプロセッサ機構に対する前記デフォルト設定を格納するプロセッサ構成レジスタをさらに具備する、請求項13に記載の装置。
  15. 前記少なくとも1つのプロセッサ機構に対する前記デフォルト設定をオーバーライドするために使用される第2のオーバーライド情報を格納する第2のレジスタをさらに具備する、請求項14に記載の装置。
  16. 前記プロセッサ構成レジスタと前記第1のレジスタとの対応するエントリを結合する第1のロジックをさらに具備する、請求項15に記載の装置。
  17. 前記第1のロジックの出力を前記第2のレジスタの対応するエントリと結合する第2のロジックをさらに具備する、請求項16に記載の装置。
  18. 前記第1のレジスタ及び前記第2のレジスタは、ユーザ制御下で前記第1のオーバーライド情報及び前記第2のオーバーライド情報をそれぞれ格納する、請求項15に記載の装置。
  19. 前記第1のレジスタは前記少なくとも1つのプロセッサ機構のイネーブル状態をオーバーライドし、前記第2のレジスタは前記少なくとも1つのプロセッサ機構のディスエーブル状態をオーバーライドする、請求項15に記載の装置。
  20. 実行されると、システムに対し、
    プロセッサ機構に対応するオーバーライドレジスタのエントリを、該プロセッサ機構に対するプロセッサ構成設定をオーバーライドするようにセットし、且つ
    前記オーバーライドレジスタの前記エントリを用いて前記プロセッサ機構に対する前記プロセッサ構成設定をオーバーライドする
    ことを可能にする命令を含む機械アクセス可能記憶媒体を具備する物品。
  21. 実行されると、前記システムに対し、コンテキストスイッチ時に前記オーバーライドレジスタのエントリを格納することを可能にする命令をさらに含む、請求項20に記載の物品。
  22. 実行されると、前記システムに対し、第1のプログラム段階において前記エントリをセットし、第2のプログラム段階において該エントリをリセットすることを可能にする命令をさらに含む、請求項20に記載の物品。
  23. 実行されると、前記システムに対し、プログラムの動的プロファイリングに基づき前記エントリをセットすることを可能にする命令をさらに含む、請求項20に記載の物品。
  24. 少なくとも1つのプロセッサ機構に対するデフォルト設定を格納するプロセッサ構成レジスタを有するプロセッサであって、該プロセッサ構成レジスタはアーキテクチャ的に可視である、プロセッサと、
    該プロセッサに結合されたダイナミックランダムアクセスメモリと
    を具備するシステム。
  25. 前記デフォルト設定をオーバーライドするために使用される第1のオーバーライド情報を格納する第1のレジスタをさらに具備する、請求項24に記載のシステム。
  26. 前記ダイナミックランダムアクセスメモリは、実行されると、前記システムに対し、プログラムの第1の部分の間に前記第1のオーバーライド情報をセットし、該プログラムの第2の段階の間に該第1のオーバーライド情報をリセットすることを可能にする命令を含む、請求項25に記載のシステム。
  27. 前記ダイナミックランダムアクセスメモリは、実行されると、前記システムに対し、コンテキストスイッチ時に前記第1のレジスタ及び前記プロセッサ構成レジスタのエントリを格納することを可能にする命令を含む、請求項25に記載のシステム。
  28. プロセッサ機構をイネーブル又はディスエーブルにするための情報を格納するアーキテクチャ的に可視であるレジスタを具備する装置。
  29. 前記アーキテクチャ的に可視であるレジスタは複数のビットを有し、各ビットは前記プロセッサ機構の対応する1つに関連する、請求項28に記載の装置。
  30. 前記アーキテクチャ的に可視であるレジスタは、ユーザレベルソフトウェアによって制御可能である、請求項28に記載の装置。
  31. 前記情報は、ユーザレベルソフトウェアによって動的に変更される、請求項28に記載の装置。
JP2011182699A 2004-10-06 2011-08-24 プロセッサ構成設定をオーバーライドする方法 Expired - Fee Related JP5634353B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/959,356 2004-10-06
US10/959,356 US7308571B2 (en) 2004-10-06 2004-10-06 Overriding processor configuration settings

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007535725A Division JP4842956B2 (ja) 2004-10-06 2005-09-30 プロセッサ構成設定をオーバーライドする方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014006026A Division JP5868436B2 (ja) 2004-10-06 2014-01-16 プロセッサ構成設定をオーバーライドする方法

Publications (2)

Publication Number Publication Date
JP2012014716A true JP2012014716A (ja) 2012-01-19
JP5634353B2 JP5634353B2 (ja) 2014-12-03

Family

ID=35457593

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2007535725A Expired - Fee Related JP4842956B2 (ja) 2004-10-06 2005-09-30 プロセッサ構成設定をオーバーライドする方法
JP2011182699A Expired - Fee Related JP5634353B2 (ja) 2004-10-06 2011-08-24 プロセッサ構成設定をオーバーライドする方法
JP2014006026A Expired - Fee Related JP5868436B2 (ja) 2004-10-06 2014-01-16 プロセッサ構成設定をオーバーライドする方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2007535725A Expired - Fee Related JP4842956B2 (ja) 2004-10-06 2005-09-30 プロセッサ構成設定をオーバーライドする方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014006026A Expired - Fee Related JP5868436B2 (ja) 2004-10-06 2014-01-16 プロセッサ構成設定をオーバーライドする方法

Country Status (4)

Country Link
US (2) US7308571B2 (ja)
JP (3) JP4842956B2 (ja)
CN (1) CN100524215C (ja)
WO (1) WO2006041758A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308571B2 (en) * 2004-10-06 2007-12-11 Intel Corporation Overriding processor configuration settings
US7653893B2 (en) * 2005-03-04 2010-01-26 Microsoft Corporation Methods and apparatus for implementing checkin policies in source code control systems
KR20070114690A (ko) * 2005-04-12 2007-12-04 마츠시타 덴끼 산교 가부시키가이샤 프로세서
JP4769608B2 (ja) * 2006-03-22 2011-09-07 富士通株式会社 起動検証機能を有する情報処理装置
US7802252B2 (en) * 2007-01-09 2010-09-21 International Business Machines Corporation Method and apparatus for selecting the architecture level to which a processor appears to conform
US8125986B2 (en) * 2007-01-19 2012-02-28 International Business Machines Corporation Method for enabling secure usage of computers using a mechanism lockdown
US8327120B2 (en) 2007-12-29 2012-12-04 Intel Corporation Instructions with floating point control override
US8006082B2 (en) * 2008-09-29 2011-08-23 Intel Corporation Dynamically reconfiguring platform settings
US7607174B1 (en) * 2008-12-31 2009-10-20 Kaspersky Lab Zao Adaptive security for portable information devices
US7584508B1 (en) * 2008-12-31 2009-09-01 Kaspersky Lab Zao Adaptive security for information devices
US9552478B2 (en) 2010-05-18 2017-01-24 AO Kaspersky Lab Team security for portable information devices
TWI539289B (zh) * 2011-06-16 2016-06-21 Eever Technology Inc 低耗電的usb3.0主控制裝置及降低usb3.0主控制裝置耗電的方法
US9032191B2 (en) 2012-01-23 2015-05-12 International Business Machines Corporation Virtualization support for branch prediction logic enable / disable at hypervisor and guest operating system levels
US8935694B2 (en) 2012-01-23 2015-01-13 International Business Machines Corporation System and method for selectively saving and restoring state of branch prediction logic through separate hypervisor-mode and guest-mode and/or user-mode instructions
TWI482026B (zh) * 2012-02-07 2015-04-21 Etron Technology Inc 低耗電的usb3.0主控制裝置與降低usb3.0主控制裝置耗電的方法
US9507540B1 (en) 2013-03-14 2016-11-29 Amazon Technologies, Inc. Secure virtual machine memory allocation management via memory usage trust groups
US11669441B1 (en) * 2013-03-14 2023-06-06 Amazon Technologies, Inc. Secure virtual machine reboot via memory allocation recycling
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US9588774B2 (en) 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9916185B2 (en) * 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
EP3792752A1 (en) * 2019-09-11 2021-03-17 Nokia Solutions and Networks Oy Arithmetic unit

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62259139A (ja) * 1986-05-06 1987-11-11 Hitachi Ltd マイクロプログラム制御装置
JPH08339325A (ja) * 1995-06-07 1996-12-24 Internatl Business Mach Corp <Ibm> 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
JPH09305569A (ja) * 1996-01-17 1997-11-28 Texas Instr Inc <Ti> Cpuの動作特性に応じてコンピュータの動作を制御する方法と装置
JP2001290644A (ja) * 2000-03-10 2001-10-19 Texas Instr Inc <Ti> マイクロプロセッサを有するディジタル・システム及びそのディジタル・システムを動作させる方法
US6574712B1 (en) * 1999-11-08 2003-06-03 International Business Machines Corporation Software prefetch system and method for predetermining amount of streamed data
JP2008516337A (ja) * 2004-10-06 2008-05-15 インテル・コーポレーション プロセッサ構成設定をオーバーライドする方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59127157A (ja) * 1982-12-17 1984-07-21 Fujitsu Ltd テストデ−タ発生装置
EP0218335A3 (en) 1985-08-30 1989-03-08 Advanced Micro Devices, Inc. Control store for electronic processor
US5446904A (en) * 1991-05-17 1995-08-29 Zenith Data Systems Corporation Suspend/resume capability for a protected mode microprocessor
US5790834A (en) * 1992-08-31 1998-08-04 Intel Corporation Apparatus and method using an ID instruction to identify a computer microprocessor
US5732207A (en) * 1995-02-28 1998-03-24 Intel Corporation Microprocessor having single poly-silicon EPROM memory for programmably controlling optional features
US5606715A (en) 1995-06-26 1997-02-25 Motorola Inc. Flexible reset configuration of a data processing system and method therefor
US5889679A (en) * 1997-07-15 1999-03-30 Integrated Device Technology, Inc. Fuse array control for smart function enable
US5978858A (en) * 1997-09-30 1999-11-02 Compaq Computer Corporation Packet protocol and distributed burst engine
GB9721659D0 (en) * 1997-10-14 1997-12-10 Philips Electronics Nv Space-limited marking structure for tracing garbage collectors
US6112288A (en) * 1998-05-19 2000-08-29 Paracel, Inc. Dynamic configurable system of parallel modules comprising chain of chips comprising parallel pipeline chain of processors with master controller feeding command and data
US6427202B1 (en) * 1999-05-04 2002-07-30 Microchip Technology Incorporated Microcontroller with configurable instruction set
US6466540B1 (en) * 1999-05-05 2002-10-15 International Business Machines Corporation Self-healing coupler for a serial raid device
US6615344B1 (en) * 1999-09-03 2003-09-02 Infineon Technologies North America Corp. System and method for tracking selectively enabling modules used in an integrated processor using a tracking register providing configuration information to an external pin
US6480939B2 (en) 2000-12-29 2002-11-12 Intel Corporation Method and apparatus for filtering prefetches to provide high prefetch accuracy using less hardware
US6662274B2 (en) 2001-06-20 2003-12-09 Intel Corporation Method for using cache prefetch feature to improve garbage collection algorithm
US6675280B2 (en) 2001-11-30 2004-01-06 Intel Corporation Method and apparatus for identifying candidate virtual addresses in a content-aware prefetcher

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62259139A (ja) * 1986-05-06 1987-11-11 Hitachi Ltd マイクロプログラム制御装置
JPH08339325A (ja) * 1995-06-07 1996-12-24 Internatl Business Mach Corp <Ibm> 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
JPH09305569A (ja) * 1996-01-17 1997-11-28 Texas Instr Inc <Ti> Cpuの動作特性に応じてコンピュータの動作を制御する方法と装置
US6574712B1 (en) * 1999-11-08 2003-06-03 International Business Machines Corporation Software prefetch system and method for predetermining amount of streamed data
JP2001290644A (ja) * 2000-03-10 2001-10-19 Texas Instr Inc <Ti> マイクロプロセッサを有するディジタル・システム及びそのディジタル・システムを動作させる方法
JP2008516337A (ja) * 2004-10-06 2008-05-15 インテル・コーポレーション プロセッサ構成設定をオーバーライドする方法

Also Published As

Publication number Publication date
JP5634353B2 (ja) 2014-12-03
JP4842956B2 (ja) 2011-12-21
JP2008516337A (ja) 2008-05-15
US7308571B2 (en) 2007-12-11
CN100524215C (zh) 2009-08-05
JP2014112402A (ja) 2014-06-19
CN101031881A (zh) 2007-09-05
WO2006041758A1 (en) 2006-04-20
US20060075218A1 (en) 2006-04-06
US20080046713A1 (en) 2008-02-21
JP5868436B2 (ja) 2016-02-24

Similar Documents

Publication Publication Date Title
JP5868436B2 (ja) プロセッサ構成設定をオーバーライドする方法
US7426648B2 (en) Global and pseudo power state management for multiple processing elements
US6408384B1 (en) Cache fencing for interpretive environments
US5864692A (en) Method and apparatus for protecting memory-mapped devices from side effects of speculative instructions
CA2604250A1 (en) Microprocessor access of operand stack as a register file using native instructions
WO2013096629A1 (en) Providing hint register storage for a processor
US8789169B2 (en) Microcomputer having a protection function in a register
US7318125B2 (en) Runtime selective control of hardware prefetch mechanism
US10482017B2 (en) Processor, method, and system for cache partitioning and control for accurate performance monitoring and optimization
US7814299B2 (en) Designating operands with fewer bits in instruction code by indexing into destination register history table for each thread
US20110047355A1 (en) Offset Based Register Address Indexing
CN114691316A (zh) 基于软件优先级提示的自主且可扩展的资源控制
CN114692166A (zh) 推测漏洞的动态检测
CN112395000A (zh) 一种数据预加载方法和指令处理装置
JP2021515929A (ja) データ処理
US11347506B1 (en) Memory copy size determining instruction and data transfer instruction
KR102560087B1 (ko) 매니코어 시스템의 메모리 주소 변환 방법 및 장치
JP7456570B2 (ja) 権限横断リニアプローブに対する防護のためのシステム、方法および装置
US20030101333A1 (en) Data processor
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
CN114692165A (zh) 加固执行硬件防范推测漏洞
CN114692164A (zh) 加固寄存器防范推测漏洞
CN114692140A (zh) 针对推测脆弱性来强化存储硬件
CN114692139A (zh) 针对推测脆弱性来强化加载硬件
CN114692141A (zh) 用于缓解推测脆弱性的数据污染

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130617

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140117

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140210

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20140328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141014

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees