JP5688165B2 - 特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うプログラム、コンピュータプロセッサ、および方法 - Google Patents

特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うプログラム、コンピュータプロセッサ、および方法 Download PDF

Info

Publication number
JP5688165B2
JP5688165B2 JP2013546145A JP2013546145A JP5688165B2 JP 5688165 B2 JP5688165 B2 JP 5688165B2 JP 2013546145 A JP2013546145 A JP 2013546145A JP 2013546145 A JP2013546145 A JP 2013546145A JP 5688165 B2 JP5688165 B2 JP 5688165B2
Authority
JP
Japan
Prior art keywords
base register
segment base
privilege
computer processor
instruction
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.)
Active
Application number
JP2013546145A
Other languages
English (en)
Other versions
JP2014505926A (ja
Inventor
ヴイ. パテル、バイジュ
ヴイ. パテル、バイジュ
ネイガー、ギルバート
ジー. ディクソン、マーティン
ジー. ディクソン、マーティン
エス. コーク、ジェームズ
エス. コーク、ジェームズ
ビー. クロスランド、ジェームズ
ビー. クロスランド、ジェームズ
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 JP2014505926A publication Critical patent/JP2014505926A/ja
Application granted granted Critical
Publication of JP5688165B2 publication Critical patent/JP5688165B2/ja
Active 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space

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)

Description

本願発明の分野は、一般的に、コンピュータプロセッサアーキテクチャに関し、より詳細には、実行された際に特定の結果をもたらす命令に関する。
今日用いられているプロセッサの多くは、特定のエンティティによって実行され得るプロセスおよび実行され得ないプロセスを決める、異なる複数の特権レベルを有している。この技術の一般的な例においては、特権レベルが異なる複数のリングへと分けられる。図1に示すように、リング0は最高位の特権レベルであり、よって、リング0(特権レベル0、またはカーネルモード)で実行されるプログラムは、システム内においていかなるプロセスをも実行でき、他方、リング3(ユーザモード)で実行されるコードは、特権レベルが低く、よってその能力には制限が課されている。このように特権レベルを分けることにより、任意のリング3のアプリケーションを他のリング3のアプリケーションから保護することが出来、リング0のカーネルをリング3のアプリケーションから保護することが出来る。コンピュータの実行状態を維持する重要なタスクはリング0のカーネルにとって利用可能であり、リング3のアプリケーションにとっては利用可能でないので、リング3のアプリケーションのプロセスが失敗に終わったとしても常に、コンピュータシステムの他のプロセスに影響を与えてはならない。リング1およびリング2に関する制限はリング0に関する制限よりも大きいが、リング3程ではない。
これら複数のレベルを用いることによって、ソフトウェアによる偶発的な、または意図的なシステム環境の破損(およびそれに伴う、システムセキュリティの違反)からのハードウェア保護を行うことが出来る。カーネルモードの制限されていない環境下においては、システムソフトウェアの「信頼された」部分のみが絶対的な必要性がある場合においてのみ、実行を許可される。他の全てのソフトウェアは、1以上のユーザモードにおいて実行される。
本願発明は添付の図面において、例を挙げることを目的とし、限定を目的とせず示されている。同様の参照符号は、同様の要素を指す。
図1は、一般的な特権レベルアーキテクチャを示す。 図2は、対応可能性の表示設定方法の実施形態を示す。 図3は、セグメントベースレジスタの読み取り/書き込み方法の実施形態を示す。 図4は、特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令のハンドリング方法の実施形態を示す。 図5は、特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令のハンドリングの実施形態を示す。 図6は、本願発明の実施形態に係る、コアの例示的なアウトオブオーダーアーキテクチャを示すブロック図である。 図7は、本願発明の一実施形態に係るシステムのブロック図を示す。 図8は、本願発明の実施形態に係る第2システムのブロック図を示す。 図9は、本願発明の実施形態に係る第3システムのブロック図を示す。
以下の説明において、様々な特定的な詳細を示す。しかし、本願発明の実施形態は、これらの特定的な詳細を用いずとも実施出来ることが理解されよう。他の例においては、周知の回路、構造、および技術が、本願発明の説明に関する理解を曖昧にすることがないよう、詳細には示されていない。
本明細書において「一実施形態」、「実施形態」、「例示的な実施形態」などに言及した場合、説明される実施形態が、特定の特徴、構造、または特性を含んでよいが、全ての実施形態においてそれら特定的な特徴、構造、または特性が必ずしも含まれるわけではないことを示す。さらに、そのような文言は、それぞれ同一の実施形態を必ずしも指すわけではない。さらに、特定の特徴、構造、または特性がある実施形態との関連で説明された場合、当業者であれば、そのような特徴、構造、または特性の効果を、明示的に示されているか示されていないかに関わらず他の実施形態において発揮させることが可能であることを理解されよう。
今日、全部ではないかもしれないがほとんどのOSは、単一のアドレス空間での複数の実行スレッドに対応する。プロセッサ、CPU、またはコア内のスレッド固有の情報は、スレッドコンテキストと呼ばれる。特定のCPUでスレッドを実行する前に、オペレーティングシステムは、適切なスレッドコンテキストが当該CPU上に確実に存在するようにしておく必要がある。このプロセスは一般的にコンテキストの切り替えと呼ばれ、その際オペレーティングシステムは、任意のスレッドから他のスレッドへの切り替えプロセスの一部として、スレッドコンテキストの切り替えを行う。オペレーティングシステムは、スレッド固有ストレージと呼ばれる実行スレッド固有ストレージを行う何らかのメカニズムも提供する。x86プロセッサでは、FSおよび/またはGSセグメントレジスタを用いて、スレッド固有ストレージへのアクセスが行われる。データにアクセスする際、セグメントレジスタを用いることにより、各スレッドは同一のセグメントおよびオフセットを用いることが出来、かつ、当該スレッド固有のデータ組にアクセスすることが出来る。このことは多くのIA32及びインテル(登録商標)64ベースのオペレーティングシステム、若しくは、それらの同等物において、非ゼロベース、かつ非最大限度のセグメントの唯一の利用であることが多い。セグメント記述子はスレッドコンテキストの一部であり、スレッドコンテキストの残りと共に切り替えられたコンテキストでなければならない。多くのオペレーティングシステムは、システム内のスレッドの全てのうち、同一のリング0、またはカーネルアドレス空間を共有する。これらのオペレーティングシステムは、リング3またはユーザモードのために有するカーネルに対し、異なるスレッド固有ストレージを有することが多い。カーネルにおいて、スレッド固有ストレージは実際には論理プロセッサ固有ストレージであり、当該プロセッサ固有の情報を保持する。これらのオペレーティングシステムはリング間遷移に際し、セグメント記述子を変更しなければならず、かつ、コンテキストスワップコード内のユーザコードで用いるセグメント記述子を修正しなければならない。
x86アーキテクチャの64ビットの変形例が導入された際(Intel(登録商標)64)、FSおよびGSセグメントレジスタを例外として、64ビットモードからセグメンテーション(segmentation)が取り除かれた。より大きなアドレス空間に対応すべく、セグメント記述子の改善はなされなかった。それらは8バイトの記述子として残され、32ビットベースのアドレスのみに対応する。多くのオペレーティングシステムは仮想アドレス空間を分け、その際、カーネルアドレス空間は最上部に位置し、ユーザアドレス空間は最下部に位置する。さらに、カーネルの論理プロセッサ固有のデータはカーネルアドレス空間にある必要があり、他方、スレッド固有のデータはユーザアドレス空間にある必要がある。このことは、ユーザアドレス空間およびカーネルアドレス空間が逆にされたとしても、32ビットベースアドレスで実現することは出来ない。これらのセグメントを、64ビットモードが対応する48ビットの仮想アドレス空間のいずれかの場所に配置するには、代替的なメカニズムが必要となる。実装されたメカニズムは、それぞれ対応するセグメントのベースアドレスのマッピングを行う2つのMSR、IA32_FS_BASE MSR(C0000100H)およびIA32−GS_BASE MSR(C0000101H)を提供する。セグメントのベースアドレスは、単にこれらのMSRの書き込みを行うことによって変更することが出来る。RDMSRおよびWRMSRは、64ビットの書き込みを可能とする、ユーザレベルのコードには利用可能でない、特権命令である。SWAPGS命令もまた、リング間遷移において、カーネルモードGSセグメントと、ユーザモードGSセグメントとの間の切り替えを単純化する。オペレーティングシステム全体の動作にとって重要であるMSRをリング3のアプリケーションが操作出来ないように、命令RDMSR、WRMSR、およびSWAPGSはリング0またはカーネルモードに制限される。上記の命令がリング0に制限されているということは、FSおよびGSセグメントの修正を行うリング3のアプリケーションの能力を意図的に制限しているということである。よって、現在のIAシステムに関して、アプリケーションはシステムコールをするか、またはセグメント記述子を変更して、FSまたはGSベースの切り替えを行うよう制限されている。システムコールはリング間遷移を伴うのでスピードが遅く、かつ、セグメント記述子が(上述したように)32ビットセグメントベースのみを保持するが故、これらの2つのセグメントベースの値を、64ビットシステムにおいて利用可能なアドレス空間のうちほんの僅かの部分に過ぎない4GBと低い値に制限し、セグメント記述子の合計数を8K未満に制限する。従来技術のx86プロセッサは2つのシステムテーブルレジスタ、Global Descriptor Table Register(GDTR)およびLocal Descriptor Table Register(LDTR)も含む。これら両方のレジスタは、32または64ビットリニアベースアドレスを格納する。
コンテキストの切り替えの間に少量の処理のみを行うスレッドに関し、システムコール、コンテキストの切り替え、およびそれらに続くユーザモードコードへのリターンは、スレッドが実行される際に行う処理の主要な部分であることが多い。この課題の1つの解決方法としては、スレッド間のコンテキストの切り替えをユーザモードコードで行うユーザモードスレッドがある。これらのユーザモードスレッドのそれぞれは、スレッド固有ストレージの自身の固有のコピーを必要とする。それら自身の固有のコピーなしでは、ユーザモードスレッドは単一のOSスレッドへと制限され(スレッド固有ストレージは、OSスレッドの間を移動する間、それらの後に続かない。)、その場合であっても、同一の格納を用いるが互いに気付かない複数のエンティティに係る課題がある。
「ユーザモード」から「カーネルモード」への切り替えは、既存のほとんどのシステムにおいて、必要な情報処理量が大きい。この理由により、上述した、セグメントレジスタから読み取り、セグメントレジスタへ書き込む方法は、理想的ではない。64ビットモードでの現在の特権レベルに関わらず、IA32_GS_BASEまたはIA32_FS_BASEなどのセグメントベースレジスタに対し読み取りおよび書き込みを行うための命令を実行するのに用いることが出来る、システムおよびアーキテクチャなどの実施形態を詳細に説明する。これらの命令は、特権レベル3のプログラムの一部であってもよい。
特権に関しアグノスティックな書き込み命令の一例は「WRGSBASE RAX」である。ここで「RAX」は、GSセグメントベースレジスタへ書き込まれる64ビットデータ値を保持するレジスタまたはメモリオペランドである。WRGSBASEは命令コードであり、IA32_GS_BASEレジスタを特定する。この命令の実行によって、RAXレジスタのデータがGSセグメントベースレジスタに書き込まれる。同様に、WRFSBASE RAXは実行された場合に、RAXのデータをFSセグメントレジスタ(IA32_FS_BASE)へ書き込むための命令である。
特権に関しアグノスティックな読み取り命令の一例は「RDGSBASE RAX」である。ここで「RAX」は、GSセグメントベースレジスタから読み取られる64ビットデータを格納するレジスタまたはメモリオペランドである。RDGSBASEは命令コードであり、IA32_GS_BASEレジスタを特定する。この命令の実行によりGSセグメントベースレジスタの値が読み取られRAXレジスタに格納される。同様に、RDFSBASE RAXは実行された場合に、FSセグメントベースレジスタ(IA32_FS_BASE)からデータを読み取り、RAXに格納されるようにする。
いくつかの実施形態において、特権に関しアグノスティックなセグメントベースレジスタに対する読み取り/書き込み命令を実行する前に、オペレーティングシステム、プロセッサ、およびチップセットのうち1つが、プロセッサが当該命令に対応可能である旨を示す表示を設定する。図2は、この表示を設定する方法の実施形態を示す。
201において、特権レベルに関わらず、64ビット値の、1以上のプロセッサセグメントベースレジスタに対する読み取り、および/または書き込みの実行に、プロセッサの論理プロセッサが対応可能であるかどうかの判断が行われる。典型的にはこの判断は、対応可能であることを示すプロセッサのCPUID機能フラグを確認することにより行われる。
対応可能でない場合、セグメントベースレジスタに対する読み取り、および/または書き込みの、効率性が低い手段が203で用いられる。対応可能である場合、これらのタイプの命令に対応可能であることを示すフラグを1以上、制御レジスタに設定する。例えばいくつかの実施形態において、制御レジスタ4はそのことを示すよう設定されたフラグを有する。当然ながら、他のレジスタをこの目的で用いることも可能である。
図3は、セグメントベースレジスタに対する読み取り/書き込み方法の実施形態を示す。301において、特権に関しアグノスティックなセグメントベースレジスタに対する読み取り/書き込み命令が301において有効化されたかどうかの判断がされる。例えば、x86アーキテクチャの制御レジスタ4などの制御レジスタが用いられる場合、対応可能なプロセスを確認するべく、対応するフラグが確認される。特権に関しアグノスティックなセグメントベースレジスタに対する読み取り/書き込み命令に対応可能である場合、313において、これらの命令はフェッチされるなどの処理が行われる。
特権に関しアグノスティックなセグメントベースレジスタに対する読み取り/書き込み命令に対応不可能な場合、303において、論理プロセッサが特権レベル0であるかどうかの判断がなされる。上記にて詳細に説明したように、特権レベル0とは、実行可能なプロセスにほとんど制限がないか、全く制限がないことを指す。特権レベルが0である場合、305において、RDMSRまたはWRMSR特権命令のうち対応するものを用いて、IA32_GS_BASEおよびIA32_FS_BASEのいずれかに対する読み取りまたは書き込みを行うことにより、GSおよびFSベースアドレスを64ビットモードで更新してもよい。
特権レベルが0よりも高い場合、307において特権レベル0への切り替えが行われる。特権レベル0に切り替えられると、309において、RDMSRまたはWRMSR特権命令のうち対応するものを用いて、IA32_GS_BASEおよびIA32_FS_BASEのいずれかに対する読み取りまたは書き込みを行うことにより、GSおよびFSベースアドレスを64ビットモードで更新してもよい。この動作が行われた後、311において、以前の特権レベルへ戻す切り替えが行われる。当然ながら、このことにより顕著な(underlined)性能上の不利な条件が生まれる。
図4は、特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令のハンドリング方法の実施形態を示す。この例示的な方法の段階のいずれかが行われる前に、命令に対応可能であるかどうかの判断が行われていてもよい。401において、特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令が受け取られる。この命令には、セグメントベースレジスタ(例えば、IA32_GS_BASEまたはIA32_FS_BASE)に書き込まれる64ビットデータを含むオペランドが含まれる。このオペランドはメモリ位置またはレジスタであってよいが、より典型的にはレジスタである。
403において、復号論理で特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令が復号化され、405においてオペランドデータが読み出される。例えば、オペランドがRAXなどのレジスタである場合、レジスタからのデータが読み出される。
407において、特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令が実行され、現在の特権レベルに関わらず、読み出されたデータの適切なセグメントベースレジスタへの書き込みが行われる。
図5は、特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令のハンドリング方法の実施形態を示す。この例示的な方法の段階のいずれかが行われる前に、命令に対応可能であるかどうかの判断が行われている。501において、特権に関しアグノスティックなセグメントベースレジスタへの読み取り命令が受け取られる。この命令には、セグメントMSR(例えば、IA32_GS_BASEまたはIA32_FS_BASE)から読み取られる64ビットデータを格納する位置を特定するオペランドが含まれる。このオペランドはメモリ位置またはレジスタであってよい。
503において、復号論理で特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令が復号化される。例えば、オペランドがRAXなどのレジスタである場合、レジスタからのデータが読み出される。
505において、特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令が実行され、特権レベルに関わらず、適切なベースレジスタのデータの読み取りが行われる。その後507において、オペランドによって定められる位置にデータが格納される。
例示的なコンピュータシステムおよびプロセッサ
上述した命令を実行することが出来る装置およびシステムの実施形態を下記に詳細に説明する。図6は、本願発明の実施形態に係る、コアの例示的なアウトオブオーダーアーキテクチャを示すブロック図である。しかし上記の命令は、インオーダーアーキテクチャで実行してもよい。図6において、矢印は2以上のユニットの関連付けを示し、矢印の方向は、それらユニット間のデータフローの方向を示す。このアーキテクチャのコンポーネントを用いて、上記で詳細に説明した命令のフェッチ、復号化、および実行を含む、これら命令の処理を行ってもよい。
図6は、実行エンジンユニット610およびメモリユニット615へ関連付けられたフロントエンドユニット605を含む。実行エンジンユニット610はさらにメモリユニット615へ関連付けられている。
フロントエンドユニット605は、レベル2(L2)分岐予測ユニット622へ関連付けられたレベル1(L1)分岐予測ユニット620を含む。これらのユニットによりコアは、分岐が解消されるのを待つ必要なく、命令のフェッチおよび実行をすることが出来る。L1およびL2分岐予測ユニット620、622は、L1命令キャッシュユニット624へ関連付けられている。L1命令キャッシュユニット624は、実行エンジンユニット610により実行され得る命令、または1以上のスレッドを保持する。
L1命令キャッシュユニット624は、命令トランスレーションルックアサイドバッファ(ITLB)626へ関連付けられている。ITLB626は、バイトストリームを個別の命令に分割する命令フェッチ/事前復号化ユニット628へ関連付けられている。
命令フェッチ/事前復号化ユニット628は、これらの命令を格納する命令キューユニット630へ関連付けられている。復号化ユニット632は上述した命令を含む、キューに入れられた命令を復号化する。いくつかの実施形態において、復号化ユニット632は複雑な復号化ユニット634および3つの単純な復号化ユニット636、638、640を備える。単純な複合化ユニットはx86命令のほとんど、若しくは全てのハンドリングを行うことができ、当該命令は単一のuopへと復号化される。複雑な複合化ユニットは命令を復号化し、複数のuopへとマッピングを行うことが出来る。復号化ユニット632はマイクロコードROMユニット642も含んでよい。
L1命令キャッシュユニット624はさらに、メモリユニット615内でL2キャッシュユニット648へ関連付けられている。命令TLBユニット626はさらに、メモリユニット615内で第2レベルTLBユニット646へ関連付けられている。復号化ユニット632、マイクロコードROMユニット642、およびループストリーム検出(LSD)ユニット644はそれぞれ、実行エンジンユニット610内でリネーム/アロケータユニット656へ関連付けられている。LSDユニット644は、いつソフトウェア内のループが実行され、分岐の予測(および場合によっては、ループの最後の分岐に関する誤った予測)が停止され、ループから出るように命令のストリーミング(stream)が行われるのかを検出する。いくつかの実施形態において、LSDユニット644は、マイクロopのキャッシュを行う。
実行エンジンユニット610は、リタイヤユニット674および統合スケジューラユニット658へ関連付けられたリネーム/アロケータユニット656を含む。リネーム/アロケータユニット656は、レジスタのリネームを行う前に必要とされるリソースを判断し、実行するべく利用可能なリソースを割り当てる。リネーム/アロケータユニット656は論理レジスタの、物理レジスタファイルの物理レジスタへのリネームを行う。
リタイヤユニット674はさらに実行ユニット660へ関連付けられ、リオーダーバッファユニット678を含む。リタイヤユニット674は実行が完了した命令のリタイヤを行う。
統合スケジューラユニット658はさらに、実行ユニット660と関連付けられた物理レジスタファイルユニット676へ関連付けられている。統合スケジューラユニット658はプロセッサ上で実行される異なる複数のスレッド間で共有される。
物理レジスタファイルユニット676は、MSRユニット677A、浮動小数点レジスタユニット677B、および整数レジスタユニット677Cを備え、示されていないが追加的なレジスタファイルを含んでよい(例えば、MMXパックド整数フラットレジスタファイル550上でエイリアスされたスカラ浮動小数点スタックレジスタファイル545など)。MSRユニットは、IA32_GS_BASEレジスタおよびIA32_FS_BASEレジスタを含む。
実行ユニット660は、3つのミックスされたスカラ/SIMD実行ユニット662、664、672、ロードユニット666、記憶アドレスユニット668、および記憶データユニット670を含む。ロードユニット666、記憶アドレスユニット668、および記憶データユニット670は、ロード/格納、およびメモリ動作を行い、それぞれがさらに、メモリユニット615内でデータTLBユニット652へ関連付けられている。
メモリユニット615は、データTLBユニット652へ関連付けられた第2レベルTLBユニット646を含む。データTLBユニット652は、L1データキャッシュユニット654へ関連付けられている。L1データキャッシュユニット654はさらに、L2キャッシュユニット648へ関連付けられている。いくつかの実施形態において、L2キャッシュユニット648はさらに、メモリユニット615内および/またはメモリユニット615外で、L3およびさらに数字の大きなレベルのキャッシュユニット650へ関連付けられている。
本明細書で説明される命令を実行するのに適した例示的なシステムを以下に説明する。ノート型パソコン、デスクトップ型パソコン、ハンドヘルドPC、携帯情報端末、エンジニアリングワークステーション、サーバ、ネットワークデバイス、ネットワークハブ、スイッチ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、グラフィックデバイス、ビデオゲームデバイス、セットトップボックス、マイクロコントローラ、携帯電話、ポータブルメディアプレーヤ、ハンドヘルドデバイス、および他の様々な電子デバイスなどに関する、当技術分野で公知の他のシステムデザインおよび構成も適している。一般的に、本明細書で開示するプロセッサおよび/または他の実行論理を組み込むことが出来る多種多様なシステムおよび電子デバイスが適している。
図7は、本願発明の一実施形態に係るシステム700のブロック図を示す。システム700は、グラフィックメモリコントローラハブ(GMCH)720へ関連付けられている1以上の処理部710、715を含んでよい。追加的な処理部715は任意選択的に用いられるので、図7において破線で示されている。
各処理部はシングルコアであってよく、また代替的に、複数のコアを含んでもよい。処理部は、統合メモリコントローラおよび/または統合I/O制御論理など、処理コアに加えて他のオンダイの要素を任意選択的に含んでよい。また、少なくとも一実施形態において、処理部のコアは、マルチスレッド型であり、コア1つあたり、2以上のハードウェアスレッドを含んでよい。
図7は、例えばダイナミックランダムアクセスメモリ(DRAM)などであってよいメモリ740へ関連付けられていてよいGMCH720を図示する。DRAMは、少なくとも一実施形態において、不揮発性キャッシュに関連付けられていてもよい。
GMCH720はチップセットであってもよく、若しくは、チップセットの一部であってもよい。GMCH720はプロセッサ710、715と通信を行ってもよく、プロセッサ710、715と、メモリ740との間の相互作用を制御してもよい。GMCH720はプロセッサ710、715と、システム700の他の要素との間の加速バスインタフェースとしての働きをしてもよい。少なくとも一実施形態において、GMCH720は、フロントサイドバス(FSB)795などのマルチドロップバスを介して、プロセッサ710、715と通信を行う。
さらに、GMCH720は(フラットパネルディスプレイなどの)ディスプレイ745へ関連付けられている。GMCH720は統合グラフィックアクセラレータを含んでもよい。GMCH720はさらに、システム700へ様々な周辺デバイスを関連付けるのに用いられてもよい入出力(I/O)コントローラハブ(ICH)750へ関連付けられている。他の周辺デバイス770と同様にICH750へ関連付けられていている独立したグラフィックデバイスであってよい外部グラフィックデバイス760が、図7に示す実施形態において例示されている。
代替的に、追加的な、または異なる処理部もシステム700に存在してもよい。例えば、追加的な処理部715は、プロセッサ710と同様の追加的なプロセッサ、プロセッサ710と異種の、または非対称な追加的なプロセッサ、(例えばグラフィックアクセラレータまたはデジタル信号処理(DSP)ユニットなどの)アクセラレータ、フィールドプログラマブルゲートアレイ、または任意の他の処理部を含んでよい。物理リソース710、715間では、アーキテクチャ、マイクロアーキテクチャ、熱的、消費電力特性などを含む利点について様々な差異があり得る。これらの差異は、処理部710、715間の非対称性および異種性を用いて効果的に生じさせられる。少なくとも一実施形態において、様々な処理部710、715は同一のダイパッケージに存在してもよい。
図8は本願発明の実施形態に係る第2システム800のブロック図を示す。図8に示すように、マルチプロセッサシステム800はポイントツーポイントインターコネクトシステムであり、ポイントツーポイントインターコネクト850を介して互いに関連付けられた第1処理部870および第2処理部880を含む。図8に示すように、処理部870、880のそれぞれは、第1および第2プロセッサコア(つまり、プロセッサコア874a、874b、およびプロセッサコア884a、884b)を含むマルチコアプロセッサであってよい。
代替的に、処理部870、880のうち1以上は、アクセラレータまたはフィールドプログラマブルゲートアレイなどの、プロセッサ以外の要素であってもよい。
2つの処理部870、880のみが示されているが、本願発明の態様はそのように限定されない。他の実施形態において、1以上の追加的な処理部が、任意のプロセッサ内に存在してもよい。
第1処理部870はさらに、メモリコントローラハブ(MCH)872、およびポイントツーポイント(P−P)インタフェース876、878も含んでよい。同様に第2処理部880は、MCH882およびP−Pインタフェース886、888を含んでよい。プロセッサ870、880は、PtPインタフェース回路878、888を用いて、ポイントツーポイント(PtP)インタフェース850を介してデータの交換を行ってもよい。図8に示すように、MCH872、882はプロセッサを、各メモリ、つまり各プロセッサにローカルに取り付けられるメインメモリの部分であってよいメモリ842、およびメモリ844へ関連付ける。
プロセッサ870、880のそれぞれは、ポイントツーポイントインタフェース回路876、894、886、898を用いて個々のPtPインタフェース852、854を介してチップセット890とデータの交換を行ってもよい。チップセット890は、高性能グラフィックインタフェース839を介して高性能グラフィック回路838とデータの交換を行ってもよい。本願発明の実施形態は、任意の数の処理コアを有する任意のプロセッサ内、または図8に示すそれぞれのPtPバスエージェント内に位置してもよい。一実施形態において、任意のプロセッサコアは、ローカルキャッシュメモリ(図示せず)を含むか、そうでなければ関連付けられていてもよい。さらに、プロセッサが低消費電力モードに入ったときにいずれかの、もしくは両方のプロセッサのローカルキャッシュ情報が共有キャッシュ(図示せず)内に格納されるよう、共有キャッシュが、両方のプロセッサの外部のいずれかのプロセッサに含まれ、それでいてp2pインターコネクトを介してプロセッサと接続されていてもよい。
第1処理部870および第2処理部880は、P−Pインターコネクト876、886、884をそれぞれ介し、チップセット890へ関連付けられていてもよい。図8に示すようにチップセット890はP−Pインタフェース894、898を含む。さらにチップセット890は、チップセット890を高性能グラフィックエンジン848へ関連付けるインタフェース892を含む。一実施形態において、バス849を用いて、グラフィックエンジン848をチップセット890へ関連付けてもよい。代替的に、ポイントツーポイントインターコネクト849がこれらのコンポーネントを関連付けてもよい。
他方、チップセット890はインタフェース896を介し、第1バス816へ関連付けられていてもよい。一実施形態において、第1バス816はペリフェラルコンポーネントインターコネクト(PCI)バスであってもよく、若しくは、PCIエクスプレスまたは他の第3世代I/Oインターコネクトバスなどのバスであってもよい。ただし、本願発明の態様はこのように限定されない。
図8に示すように様々なI/Oデバイス814が、第1バス816を第2バス820へと関連付けるバスブリッジ818と同様に、第1バス816へ関連付けられていてもよい。一実施形態において、第2バス820はローピンカウント(low pin count)(LPC)バスであってもよい。一実施形態において、キーボード/マウス822、通信デバイス826、およびコード830を含んでよいディスクドライブまたは他の大容量記憶デバイスなどのデータ記憶ユニット828などを含む様々なデバイスが、第2バス820へ関連付けられていてもよい。さらに、オーディオI/O824が第2バス820へ関連付けられていてもよい。なお、他のアーキテクチャを採用することも可能である。例えば、図8に示すポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバス、または他の同様のアーキテクチャを実装してもよい。
図9は、本願発明の実施形態に係る第3システム900のブロック図を示す。図8と図9とにおいて共通する要素には、同様の参照符号が付され、図8の要素のいくつかは、図9の特徴を曖昧にすることを避けるべく、図9において省略されている。
図9は、処理部870、880がそれぞれ、集積メモリおよびI/O制御論理(「CL」)872、882を含んでよいことを示している。少なくとも一実施形態において、CL872、882は図7および8に関連して説明したもののような、メモリコントローラハブ論理(MCH)を含んでもよい。さらに、CL872、882はI/O制御論理も含んでよい。図9は、メモリ842、844だけではなく、I/Oデバイス914もCL872、882へ関連付けられていることを示している。レガシーI/Oデバイス915は、チップセット890へ関連付けられている。
本明細書で開示するメカニズムの実施形態は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにより実装されてもよい。本願発明の実施形態は、1以上のプロセッサ、(揮発性および不揮発性メモリ、並びに/若しくは記憶部材を含む)データ記憶システム、1以上の入力デバイス、および1以上の出力デバイスを備えるプログラム可能なシステムで実行されるコンピュータプログラムまたはプログラムコードとして実装されてもよい。
図8に示すコード830などのプログラムコードは、本明細書で説明する機能を実現し、出力情報を生成するべく入力データに適用されてもよい。出力情報は、1以上の出力デバイスへ、公知の方法を用いて適用されてもよい。この適用例において、処理システムは、デジタル信号プロセッサ(DSP)、マイクロコントローラ、特定用途向け集積回路(ASIC)、またはマイクロプロセッサなどのプロセッサを有する任意のシステムを含む。
プログラムコードは、処理システムと通信を行うための高水準のプロシージャ言語またはオブジェクト指向プログラミング言語で実装されてもよい。プログラムコードは所望される場合、アセンブリ言語または機械言語で実装されてもよい。事実、本明細書で説明するメカニズムの態様は、何らかの特定のプログラム言語に限定されない。いずれの場合であっても、言語はコンパイラ型言語、またはインタープリタ型言語であってよい。
1以上の実施形態の1以上の態様は、機械に読み取られると当該機械に対し、本明細書で説明した技術を実行するための論理を作成させるプロセッサ内の様々な論理を表す、機械可読媒体に格納されたデータ表現によって実装されてもよい。「IPコア」として知られるそのような表現は有形の機械可読媒体に格納され、様々な顧客または製造施設へと供給されてもよく、そこで論理またはプロセッサを実際に作成する製造機械へとロードされてもよい。
そのような機械可読記憶媒体は、ハードディスク、フロッピー(登録商標)ディスク、光学ディスク、CD−ROM、CD−RW、および光磁気ディスクを含む他のタイプのディスク、読み取り専用メモリ(ROM)、DRAMおよびSRAMなどのランダムアクセスメモリ(RAM)、消去可能プログラマブル読み取り専用メモリ(EPROM)、フラッシュメモリ、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)などの半導体デバイス、磁気または光学カード、または電子命令の格納に適した他のタイプの媒体などの記憶媒体を含む、機械またはデバイスによって製造または形成される、非一時的な有形の粒子の配置を含んでよいが、これらに限定されない。
したがって、本願発明の実施形態は、本明細書に説明される構造、回路、装置、プロセッサ、および/またはシステム特徴を定めるHDLなどの命令または設計データを保持する、非一時的な、有形の機械可読媒体も含む。そのような実施形態は、プログラム製品と呼ぶことも出来る。
本明細書で開示する命令のいくつかの動作は、ハードウェアコンポーネントで実行されてもよく、若しくは、機械実行可能命令をプログラミングされた回路または他のハードウェアコンポーネントに対し当該動作を実行させるよう、または少なくとも当該回路またハードウェアコンポーネントが結果的に当該動作を行うこととなるよう用いられる当該命令として実施されてもよい。回路は、ほんの数例を挙げると、汎用または特定用途プロセッサを含んでよく、若しくは論理回路を含んでよい。動作は、任意選択的に、ハードウェアおよびソフトウェアの組み合わせによって実行されてもよい。実行論理および/またはプロセッサは、機械命令、または機械命令から導出される1以上の制御信号に応じて命令が特定された結果オペランド(instruction specified result operand)を格納する特定の回路または他の論理を含んでもよい。例えば、本明細書で開示する命令の実施形態は、図7、8、および9に示す1以上のシステムで実行されてもよく、命令の実施形態は、当該システムで実行されるプログラムコードに格納されてもよい。
上記の説明は本願発明の好ましい実施形態を例示することを目的としている。上記の説明から、成長が早くさらなる進歩の予測が容易ではない技術分野において特に、当業者であれば本願発明の思想から逸脱することなく、下記の請求項およびその同等物の態様内で、本願発明の構成および詳細に関して変更を加えることが可能である。例えば方法中の1以上の動作を組み合わせることが出来、若しくはそれぞれの動作をさらに分けて行うことが出来る。
代替実施形態
本明細書で説明された命令をネイティブに(natively)実行する実施形態を説明してきたが、本願発明の代替実施形態は、(例えば、米国カリフォルニア州サニーベールのMIPS TechnologiesのMIPS命令セットを実行するプロセッサ、または米国カリフォルニア州サニーベールのARM HoldingsのARM命令セットを実行するプロセッサなどの)異なる命令セットを実行するプロセッサで実行されるエミュレーション層を用いて命令を実行してもよい。また、図面中のフロー図は本願発明の特定の実施形態によって実行される動作の特定の順序を示しているが、そのような順序が例示に過ぎないことが理解されるべきである(例えば、代替実施形態は異なる順序で動作を行ってもよく、または特定の動作を組み合わせてもよく、または、特定の動作を重複して行ってもよい)。
上記において、説明を目的とし、本願発明の実施形態をよりよく理解いただけるよう様々な特定的な詳細を示した。しかし当業者であれば、1以上の他の実施形態が、これらの特定的な詳細のいくつかを用いなくとも実施可能であることを理解されよう。説明された特定の実施形態は本願発明の態様を限定するべく示されたのではなく、本願発明の実施形態を例示することを目的として説明されている。本願発明の態様は上述された特定の実施例ではなく、下記の請求項によってのみ定められる。

Claims (16)

  1. コンピュータプロセッサにおいて特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令を実行する方法であり、
    64ビットデータのソースオペランドを含む前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令をフェッチする段階と、
    フェッチされた前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令をデコードする段階と、
    デコードされた前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令を実行し、前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令の命令コードにより特定される前記セグメントベースレジスタへ前記ソースオペランドの前記64ビットデータを書き込む段階と
    を備える、方法。
  2. 前記セグメントベースレジスタはIA32_FS_BASEである、請求項1に記載の方法。
  3. 前記セグメントベースレジスタはIA32_GS_BASEである、請求項1に記載の方法。
  4. 前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令は、特権レベル3のプログラムの一部である、請求項1〜3のいずれか1項に記載の方法。
  5. 前記コンピュータプロセッサのCPUID機能フラグを確認することにより、前記コンピュータプロセッサが前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令に対応可能であることを判断する段階をさらに備える、請求項1〜4のいずれか1項に記載の方法。
  6. 前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令に対応可能であること示すフラグを前記コンピュータプロセッサに設定する段階をさらに備える、請求項5に記載の方法。
  7. 前記コンピュータプロセッサのCPUID機能フラグを確認することにより、前記コンピュータプロセッサが前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令に対応可能でないことを判断する段階と、
    前記特権に関しアグノスティックなセグメントベースレジスタへの書き込み命令に対応不可能であることを示すフラグを前記コンピュータプロセッサに設定する段階と
    をさらに備える、請求項1〜4のいずれか1項に記載の方法。
  8. コンピュータプロセッサにおいて特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令を実行する方法であり、
    64ビットデータのデスティネーションオペランドを含む前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令をフェッチする段階と、
    フェッチされた前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令をデコードする段階と、
    デコードされた前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令を実行し、前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令の命令コードにより特定される前記セグメントベースレジスタの前記64ビットデータを読み取り、前記64ビットデータのデスティネーションオペランドにより特定される位置へ前記64ビットデータを格納する段階と
    を備える方法。
  9. 前記セグメントベースレジスタはIA32_FS_BASEである、請求項8に記載の方法。
  10. 前記セグメントベースレジスタはIA32_GS_BASEである、請求項8に記載の方法。
  11. 前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令は、特権レベル3のプログラムの一部である、請求項8〜10のいずれか1項に記載の方法。
  12. 前記コンピュータプロセッサのCPUID機能フラグを確認することにより、前記コンピュータプロセッサが前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令に対応可能であることを判断する段階をさらに備える、請求項8に記載の方法。
  13. 前記特権に関しアグノスティックなセグメントベースレジスタからの読み取り命令に対応可能であることを示すフラグを前記コンピュータプロセッサに設定する段階をさらに備える、請求項12に記載の方法。
  14. 前記コンピュータプロセッサのCPUID機能フラグを確認することにより、前記コンピュータプロセッサが前記特権に関しアグノスティックなセグメントベースレジスタへの読み取り命令に対応可能でないことを判断する段階と、
    前記特権に関しアグノスティックなセグメントベースレジスタへの読み取り命令に対応不可能であることを示すフラグを前記コンピュータプロセッサに設定する段階と
    をさらに備える、請求項8〜11のいずれか1項に記載の方法。
  15. 請求項1〜14のいずれか1項に記載の方法をコンピュータプロセッサに実行させるプログラム。
  16. 請求項1〜14のいずれか1項に記載の方法を実行するコンピュータプロセッサ。
JP2013546145A 2010-12-22 2011-11-09 特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うプログラム、コンピュータプロセッサ、および方法 Active JP5688165B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/976,981 2010-12-22
US12/976,981 US8938606B2 (en) 2010-12-22 2010-12-22 System, apparatus, and method for segment register read and write regardless of privilege level
PCT/US2011/060011 WO2012087446A1 (en) 2010-12-22 2011-11-09 System, apparatus, and method for segment register read and write regardless of privilege level

Publications (2)

Publication Number Publication Date
JP2014505926A JP2014505926A (ja) 2014-03-06
JP5688165B2 true JP5688165B2 (ja) 2015-03-25

Family

ID=46314326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013546145A Active JP5688165B2 (ja) 2010-12-22 2011-11-09 特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うプログラム、コンピュータプロセッサ、および方法

Country Status (8)

Country Link
US (1) US8938606B2 (ja)
JP (1) JP5688165B2 (ja)
KR (1) KR101528130B1 (ja)
CN (1) CN103270489B (ja)
DE (1) DE112011104552T5 (ja)
GB (1) GB2499758B (ja)
TW (1) TWI467475B (ja)
WO (1) WO2012087446A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2666107B1 (en) * 2011-01-21 2019-03-06 Thomson Licensing Method for backward-compatible aggregate file system operation performance improvement, and respective apparatus
CN104969232B (zh) 2013-03-13 2018-01-12 英特尔公司 管理设备驱动器跨环访问
US20140310484A1 (en) * 2013-04-16 2014-10-16 Nvidia Corporation System and method for globally addressable gpu memory
US20150178078A1 (en) * 2013-12-21 2015-06-25 H. Peter Anvin Instructions and logic to provide base register swap status verification functionality
US10706143B2 (en) * 2017-05-19 2020-07-07 Intel Corporation Techniques for secure-chip memory for trusted execution environments

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3003A (en) * 1843-03-17 Improvement in the method of propelling vessels by means of continuous streams of water
US8025A (en) * 1851-04-08 Apparatus eor boltiitg flouk
US5418956A (en) * 1992-02-26 1995-05-23 Microsoft Corporation Method and system for avoiding selector loads
US5517657A (en) * 1994-03-30 1996-05-14 Intel Corporation Segment register file read and write pipeline
US5644755A (en) * 1995-02-24 1997-07-01 Compaq Computer Corporation Processor with virtual system mode
EP1291765B1 (en) * 1996-08-27 2009-12-30 Panasonic Corporation Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream
US6154818A (en) * 1997-11-20 2000-11-28 Advanced Micro Devices, Inc. System and method of controlling access to privilege partitioned address space for a model specific register file
US6973562B1 (en) * 2000-01-14 2005-12-06 Advanced Micro Devices, Inc. Establishing an operating mode in a processor
US6507904B1 (en) * 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US6880068B1 (en) * 2000-08-09 2005-04-12 Advanced Micro Devices, Inc. Mode dependent segment use with mode independent segment update
US6901505B2 (en) * 2001-08-09 2005-05-31 Advanced Micro Devices, Inc. Instruction causing swap of base address from segment register with address from another register
US7725687B2 (en) * 2006-06-27 2010-05-25 Texas Instruments Incorporated Register file bypass with optional results storage and separate predication register file in a VLIW processor
US7827390B2 (en) * 2007-04-10 2010-11-02 Via Technologies, Inc. Microprocessor with private microcode RAM
US8051467B2 (en) * 2008-08-26 2011-11-01 Atmel Corporation Secure information processing
JP5175703B2 (ja) * 2008-12-11 2013-04-03 株式会社東芝 メモリデバイス

Also Published As

Publication number Publication date
GB2499758A (en) 2013-08-28
US20120166767A1 (en) 2012-06-28
WO2012087446A1 (en) 2012-06-28
GB2499758B (en) 2020-02-05
TWI467475B (zh) 2015-01-01
KR101528130B1 (ko) 2015-06-12
DE112011104552T5 (de) 2013-09-19
US8938606B2 (en) 2015-01-20
CN103270489A (zh) 2013-08-28
CN103270489B (zh) 2016-03-02
GB201310309D0 (en) 2013-07-24
KR20130112909A (ko) 2013-10-14
JP2014505926A (ja) 2014-03-06
TW201241742A (en) 2012-10-16

Similar Documents

Publication Publication Date Title
CN107683480B (zh) 用于支持对受保护容器的实时迁移的处理器、方法、系统和指令
CN111124498A (zh) 用于推测执行侧信道缓解的装置和方法
JP6143872B2 (ja) 装置、方法、およびシステム
US9959409B2 (en) Processors, methods, systems, and instructions to change addresses of pages of secure enclaves
US9239801B2 (en) Systems and methods for preventing unauthorized stack pivoting
KR101597774B1 (ko) 마스킹된 전체 레지스터 액세스들을 이용한 부분적 레지스터 액세스들을 구현하기 위한 프로세서들, 방법들 및 시스템들
US9372812B2 (en) Determining policy actions for the handling of data read/write extended page table violations
US10360055B2 (en) Processors, methods, and systems to enforce blacklisted paging structure indication values
US20150007196A1 (en) Processors having heterogeneous cores with different instructions and/or architecural features that are presented to software as homogeneous virtual cores
CN109416640B (zh) 孔径访问处理器、方法、系统和指令
JP2015084250A (ja) 所与の範囲のページのキャッシュフラッシュおよび所与の範囲のエントリのtlb無効化を行なうシステム、方法、および装置
US9323533B2 (en) Supervisor mode execution protection
JP2010533920A (ja) 階層マイクロコードストアを有するマルチコアプロセッサ
GB2513975A (en) Instruction emulation processors, methods, and systems
JP5688165B2 (ja) 特権レベルに関わらずセグメントレジスタの読み取りおよび書き込みを行うプログラム、コンピュータプロセッサ、および方法
EP2889757A1 (en) A load instruction for code conversion
CN113568663A (zh) 代码预取指令
JP7456570B2 (ja) 権限横断リニアプローブに対する防護のためのシステム、方法および装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141105

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141125

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150123

R150 Certificate of patent or registration of utility model

Ref document number: 5688165

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250