JP2008171428A - プロセッサが規格合致するように見えるアーキテクチャ・レベルを選択するための方法および装置 - Google Patents

プロセッサが規格合致するように見えるアーキテクチャ・レベルを選択するための方法および装置 Download PDF

Info

Publication number
JP2008171428A
JP2008171428A JP2008001409A JP2008001409A JP2008171428A JP 2008171428 A JP2008171428 A JP 2008171428A JP 2008001409 A JP2008001409 A JP 2008001409A JP 2008001409 A JP2008001409 A JP 2008001409A JP 2008171428 A JP2008171428 A JP 2008171428A
Authority
JP
Japan
Prior art keywords
processor
pcr
state
bits
level
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
JP2008001409A
Other languages
English (en)
Other versions
JP5255285B2 (ja
Inventor
Giles Roger Frazier
ジャイルズ・ロジャー・フレーザー
Michael J Corrigan
マイケル・ジェイ・コリガン
Lewis Arnt Richard
リチャード・ルイス・アーント
William Joseph Armstrong
ウィリアム・ジョゼフ・アームストロング
Ii John Thomas O'quin
ジョン・トーマス・オクイン2世
Naresh Nayar
ナレッシュ・ナヤル
Timothy Richard Marchini
ティモシー・リチャード・マーチニ
May Cathy
キャシー・メイ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2008171428A publication Critical patent/JP2008171428A/ja
Application granted granted Critical
Publication of JP5255285B2 publication Critical patent/JP5255285B2/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
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

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)

Abstract

【課題】
異なるレベルのプロセッサ・アーキテクチャ間における効率的なプログラム実行および移行を可能にするために、プロセッサがコンピューティング環境内で規格合致しているように見えるアーキテクチャ・レベルを選択する方法およびシステムを提供する。
【解決手段】
本方法は、プロセッサがサポートするように見えるアーキテクチャ・レベルを制御する「プロセッサ互換レジスタ」(PCR)を利用する。1つの実施例では、PCRは超特権(super-privileged)ソフトウェアにしかアクセスし得ない。プログラムがプロセッサ上で作動するとき、そのプログラムが或るアーキテクチャ・レベルのために設計された場合のそのアーキテクチャ・レベルに従ってプロセッサが動作するよう、超特権ソフトウェアは、プロセッサがサポートするように見えるべきアーキテクチャ・レベルを指定するビットをPCRにセットする。
【選択図】 図8

Description

本発明は、一般的にはプロセッサに関し、特にソフトウェア互換性のあるようにプロセッサ・アーキテクチャを構成する方法に関するものである。
今日のコンピューティング装置は多くのタスクを遂行することができる。従来のコンピューティング装置は様々なタイプのソフトウェア製品を実行することができ、旧式の中央処理装置(CPU)のような古いハードウェア上で作動するように設計されたソフトウェアを実行する機能を有する。コンピューティング装置は、そのコンピューティング装置上で作動しているオペレーティング・システム(O/S)によって管理され、そのオペレーティング・システムを介してソフトウェア製品を実行する。O/Sは、システムのハードウェアおよびソフトウェア・リソースを管理し、アプリケーションがコンピューティング装置のハードウェアと相互作用するための安定した一貫性のある方法を提供する。
一般的には、或るプロセッサ・アーキテクチャの所与のレベルに対して書かれたプログラムが、多くの命令または他の機器を定義する、そのアーキテクチャのその後のレベルに規格合致したプロセッサ上で実行されるとき、その新しい命令または機器の迂闊な使用によりエラーが生じることがある。例えば、アーキテクチャAに規格合致するプロセッサAのために書かれたプログラムは、命令における予備フィールドを、そのアーキテクチャによって要求されるような「0」にセットしていないというような潜在的「バグ」を含んでいる。そのプログラムがプロセッサA上で実行されるとき、プロセッサはこれらのフィールドを無視するので、エラーは生じないかもしれない。その後、アーキテクチャBが開発され、そのアーキテクチャがこれらの従前の予備フィールドを定義する場合、プロセッサB(アーキテクチャBに規格合致している)は最早これらのフィールドを無視せず、そのプログラムがプロセッサB上で実行されとき、重大なエラーが生じることがある。
残念ながら、現在の技術状態では、この問題を解決するための唯一の方法は、いずれの隠れたエラーを発見するためにもそのアーキテクチャの新しいレベルに規格合致しているプロセッサにおいてそのプログラムをテストすることである。従って、エラーは修正され、プログラムはすべてのユーザに再分配され得る。ソース・コードのサポート不足または使い勝手の悪さによりプログラムが修正され得ない場合、これは、大抵、法外に高価となり、時には不可能である。
更に、新しいプログラムをプロセッサBのために書こうとする場合、問題が生じることがある。例えば、そのプログラムは、プロセッサBの新しい機器を利用するであろうが、その新しい機器を持たないプロセッサA上でもそのプログラムが正しく実行されるということを保証する必要がある。現時点では、そのプログラムをプロセッサA上で不適切に機能させる如何なる潜在的なバグも存在しないということを保証する唯一の方法は、プロセッサA上でそのプログラムをテストすることである。この方法は、プロセッサAが入手可能であることを必要とし、そのプログラムがアーキテクチャの2つのレベルにだけ規格合致するプロセッサ上で作動するように設計されている場合にはその方法は問題を生じないかもしれない。しかし、そのプログラムがアーキテクチャの幾つもの従前のレベルで作動するように設計されている場合、アーキテクチャの古い各レベルに規格合致したプロセッサのサンプルを入手するための要件は極めて煩わしいことである。
別の問題は、各々が異なるレベルのアーキテクチャに規格合致し得る一組のプロセッサ間で、実行プログラムが移行されるという状況において生じる。このコンテキストにおける移行は、プログラムがまだ作動している間にそのプログラムの実行状態が1つのプロセッサから別のプロセッサに移されることを意味する。プログラム移行の形体は、単一コンピュータのリソースが論理パーティションの独立したセットによって共有されるという状況における論理パーティション移行である。各パーティションは、所与のアーキテクチャ・レベルのアーキテクチャ機能において作動されるように構成される。実行論理パーティションがソース・コンピュータ・システムからターゲット・コンピュータ・システムに移行されるパーティション移行中、ソース・コンピュータ・システムおよびターゲット・コンピュータ・システムは、種々のレベルのプロセッサ・アーキテクチャに規格合致したプロセッサを有してもよい。プログラムは特定のレベルのアーキテクチャのために設計され得るので、移行が生じ得るプロセッサのセットは、プログラムが或るアーキテクチャ・レベルのために設計された場合のそのアーキテクチャ・レベルに規格合致するプロセッサに限定される。この制限は、移行の可能性を限定し、それに対応してプログラム移行の多様性を限定することがある。
上記の問題を考えると、プロセッサが規格合致するように見えるアーキテクチャ・レベルを選択するための適切な方法が今まで当業者に想起し得なかったということは明らかである。プロセッサ・アーキテクチャの高度な(または新しい、または種々の)レベルで実行可能であることはプログラムにとって重要であるので、或るレベルのアーキテクチャに規格合致したプロセッサにおいてプログラムが正しく実行する場合、そのプログラムは、それが前述のような潜在的バグを含んでいても、修正されることなく、その後のすべてのレベルのアーキテクチャに規格合致したプロセッサ上で作動するということを保証するためのメカニズムが必要である。更に、プログラムが旧式のプロセッサ上で正しく実行されることを、その旧式のプロセッサがそのプログラムのテストのために物理的に入手し得ることを必要とせずに、保証するメカニズムが必要である。更に、プロセッサ・セットにサポートされるアーキテクチャ・レベルに関係なく、すべてのプロセッサ間でプログラムが移行されることを可能にするスキームが必要である。そのようなスキームは、更に、種々のレベルのアーキテクチャに規格合致する2つのコンピュータ・システム間におけるプログラムの活発な移行を可能にするであろう。
本発明の目的は、異なるレベルのプロセッサ・アーキテクチャ間における効率的なプログラム実行および移行を可能にするために、プロセッサがコンピューティング環境内で規格合致するように見えるアーキテクチャ・レベルを選択する方法およびシステムを提供する。
簡単に言えば、本方法は、プロセッサがサポートするように見えるアーキテクチャ・レベルを制御する「プロセッサ互換レジスタ」(PCR)を利用する。1つの実施例では、PCRは超特権(super-privileged)ソフトウェアにしかアクセスし得ない。プログラムがプロセッサ上で作動するとき、そのプログラムが或るアーキテクチャ・レベルのために設計された場合のそのアーキテクチャ・レベルに従ってプロセッサが動作するよう、超特権ソフトウェアは、プロセッサがサポートするように見えるべきアーキテクチャ・レベルを指定するビットをPCRにセットする。
プロセッサに関連したプロセッサ互換レジスタ(PCR)は、コンピュータ・システムの設計者によって定義される。プログラムまたは論理パーティションの実行の開始時に、プロセッサはハイパーバイザのような超特権ソフトウェア・プログラムから命令を受け取る。命令は、プログラムまたは論理パーティションの実行のために望ましいアーキテクチャのレベルに対応した適切なレベル・ビットをセットすることによってPCRを修正する。本方法は、更に、PCRの内容に基づいて、指定のアーキテクチャ・レベルに規格合致するプロセッサが要求するように動作させるべくプロセッサを構成するステップを含む。
PCRは、プロセッサが規格合致しているように見えるべきアーキテクチャのレベルを識別する1つまたは複数のビットを含む。PCRのビットは、プロセッサが超特権状態にあるときだけ実行することができる命令によってセットされる。プロセッサは、更に、PCRを修正する命令をプロセッサにおいて受け取るためのロジック、命令に基づいてPCRの修正を実施するためのロジック、PCRの内容に基づいてプロセッサのアーキテクチャ・レベルを選択するためのロジックを含む。
本発明の上記の並びに更なる目的、特徴および利点が以下の詳細な説明において明らかになるであろう。
本発明は、プロセッサがコンピューティング環境内で規格合致するように見えるアーキテクチャ・レベルを選択するための方法およびその方法を具現化するための装置を提供する。その方法は「プロセッサ互換レジスタ」(PCR)を利用する。PCRは、プロセッサが支援するように見えるアーキテクチャ・レベルを制御するnビット・レジスタである。1つの実施例では、PCRは超特権ソフトウェアのみにしかアクセスし得ない。コンピューティング・アーキテクチャでは、超特権ソフトウェアの一例が「ハイパーバイザ」と呼ばれる。ハイパーバイザおよび超特権ソフトウェアという用語が、本明細書では互換的に利用されるであろう。ハイパーバイザは、プログラムがプロセッサ上で作動するとき、そのプログラムがあたかも指定されたアーキテクチャ・レベルに規格合致するプロセッサ上で実行されているかのようにそのプログラムが動作するよう、プロセッサがサポートするように見えるべきアーキテクチャ・レベルを指定するビットをPCRにセットする。それによって、PCRは、アーキテクチャの或るレベル用に設計されたプログラムが別のレベルのアーキテクチャに規格合致したプロセッサ上で作動することを可能にすることによって、プログラムの耐用年数および適用可能性を拡張する。
プロセッサ命令、特徴、機能、特殊目的レジスタ(SPR)のようなレジスタ、および他の関連機器が問題の状態において(即ち、ユーザ・レベルのアプリケーション/プログラムの実行中に)利用可能であるかどうかを、PCR内の1つまたは複数の定義された「レベル」・ビットが制御する。PCRビットは、更に、命令フィールドの値がどのように解釈されるかを決定すること、および他のプロセッサの動作を定義することも可能である。各レベル・ビットは、プロセッサ・アーキテクチャの対応するレベルにおける新しい機器の利用可能度を制御する。
更に、PCRは、いくつかのアーキテクチャ・レベルに規格合致するプロセッサが利用可能でないという状況において、プログラマがプロセッサ・アーキテクチャの幾つものレベルにおけるコードをテストすることを可能にする。この利点は、複数のプロセッサ・レベルを入手する余裕がない小企業にとって、および/または、比較的多数のプロセッサ・レベルがあるという状況では、重要である。プロセッサ上で実行されるプログラムは、特定のレガシ・プロセッサ・アーキテクチャ・レベルで実行するために設計されたレガシ・プログラムであってもよい。更に、実行プログラムが書かれたレベルとは異なるアーキテクチャ・レベル/その後のレベルに規格合致し得る一組のプロセッサ間でその実行プログラムが移行されるという状況において、PCRは、プログラムが移行するすべてのプロセッサがアーキテクチャの同じレベル(即ち、プログラムが書かれた特定のアーキテクチャ・レベル)に規格合致するように見えるよう、シームレス移行ツールを提供するために利用される。PCRがないと、移行が生じ得るプロセッサのセットは、アーキテクチャのこの同じレベルに実際に規格合致するプロセッサに限定されるであろう。そのような限定は移行の可能性を厳しく限定し、それに対応して、プログラム移行の多様性を限定するであろう。
発明の実施例に関する以下の詳細な説明では、当業者が本発明を実施することを可能にするために、本発明を実施し得る特定の実施例が十分に詳細に説明される。また、他の実施例を利用し得るということ、並びに、本発明の趣旨または範囲から逸脱することなく、論理的変更、アーキテクチャ上の変更、プログラム上の変更、機械的変更、電気的変更、および他の変更を行い得ることは当然である。従って、以下の詳細な説明は限定を意味するものと解されるべきではなく、本発明の範囲は「特許請求の範囲」の記載によってのみ定義される。
更に、特定のパラメータ名の使用は単なる例であって、発明における如何なる限定の暗示も意味するものではないということも当然である。従って、本発明は、上記のパラメータを記述するために利用される種々の表記法/用語を用いて限定なしに具現化することが可能である。
図面を参照すると、図1は、本発明の実施態様が特に適用可能なコンピューティング装置100を一般的に示す機能的ブロック図である。コンピューティング装置100は、サーバ、パーソナル・コンピュータ、ラップトップ・コンピュータ等のような任意のコンピューティング装置であってもよい。本明細書では、コンピューティング装置に関連して説明されるが、本発明を具現化したものが、アーキテクチャの変更を伴うプロセッサを使ってプログラム・コードを実行する他の装置において同等の応用性を持ち得るということも明らかであろう。
この例では、コンピューティング装置100は、システム相互接続バス101を介して相互接続されたプロセッサ・ユニット105、メモリ110、入出力コントローラ(I/O CTL)120、および記憶媒体125を含む。コンピューティング装置100は、本発明の説明には関係のない更なるコンポーネントを含み得る。プロセッサ・ユニット105は、マイクロプロセッサ、或いはデジタル信号プロセサ(DSP)のような特殊目的のプロセッサを含むことが望ましいが、それとは別に、プロセッサ、コントローラ、マイクロコントローラ、または状態マシンという任意の一般的な形式のものであってもよい。プロセッサ・ユニット105は、本発明によって提供され、後述するように利用されるPCR130も含む。
メモリ110はプロセッサ・ユニット105によって実行される複数レベルのソフトウェア・プログラム/コードを含む。この実施例では、メモリ110に格納されたソフトウェア・プログラムは、1つまたは複数のユーザ・レベル問題コード(アプリケーションApps116および118)、特権レベル・コード(オペレーティング・システム(OS114))、および超特権レベル・コード(ハイパーバイザ112)を含む。本明細書において開示される1つの実施例では、ハイパーバイザ112は、ディスパッチされる/実行される論理パーティションまたはプログラムに関するアーキテクチャ情報を検索し、図3〜図9に関連して後述するように、本発明の機能を具現化するためにPCR130内にビットをセットする。
記憶媒体125は、いくつかの例を挙げると、ROMメモリ、フラッシュ・メモリ、または磁気ディスク・ドライブのような任意の不揮発性メモリとして具現化することが可能である。記憶媒体125は、キャッシュ(RAM)メモリ等を備えた磁気ディスク・ドライブのような、それらの或いは他の技術との任意の結合体として具現化することも可能である。1つの実施例では、記憶媒体125は、コンピューティング装置100がパワー・オフされている期間中、即ち、電力供給のない期間中、データ(特権コードおよび超特権コードのためのデータ)を格納しておくために使用される。
図2は、本発明の実施態様を提供するプロセッサ・ユニット105の内部コンポーネントを概略的に示す機能ブロック図である。プロセッサ・ユニット105は単一チップ上に形成され、実行ユニット155(ロード/ストア・ユニット、および/または、浮動小数点ユニット或いは固定小数点のユニットのようなユニット)および命令順序付けユニット(ISU)160が設けられたチップ(die)を含み得る。命令順序付けユニット160は命令を実行ユニット155に適切にディスパッチする。
プロセッサ105は、レジスタA(Reg A)131、レジスタB132、およびプロセッサ互換レジスタ(PCR)130として図示された一連のレジスタ165も含む。1つの実施例では、プロセッサ・チップは半導体集積回路として具現化される。別の実施例では、プロセッサ・チップは、単一のチップ上に装着された複数のプロセッサ・コアを含み、各プロセッサ・コアは、その上に装着されたPCR130を含む。
プロセッサ105の実行中、PCR130のような或るレジスタは超特権ソフトウェア(ハイパーバイザ112)によってのみアクセスされ得るし、一方、他のレジスタ、例えば、レジスタB132は特権ソフトウェアおよび超特権ソフトウェアの両方によってアクセスされ得る。他のレジスタ、例えば、レジスタA131は、ユーザ・レベル・ソフトウェア、特権ソフトウェア、および超特権ソフトウェアによってアクセスされ得る。1つの例では、PCR130はnビット・レジスタであり、この場合、nは1よりも大きい整数である。
図1および図2が、コンピューティング・システム100の代表的な主要コンポーネントを高レベルで示すことを意図されているということ、および個々のコンポーネントが図示のものよりも遥かに複雑であるということは当然である。更に、図1および図2には示されたもの以外のコンポーネントが存在し得るということ、およびそのようなコンポーネントの数、タイプ、および構成が変わり得るということは明らかであろう。例えば、実施例のシステムは単一のプロセッサを有するものとして示されるが、本発明の特徴はマルチプロセッサ・コンピュータ・システムにおいて具現化することも可能である。更に、1つの実施例では、各プロセッサは、1つまたは複数のハイパーバイザの管理の下にデータ処理システム上で同時に作動する複数のアーキテクチャ・レベルに適応するように独立して修正可能なPCRを含んでもよい。従って、図1および図2は、単に例として示され、本発明における何らかの限定を暗示することを意図するものではない。
図3〜図5は、プロセッサ互換レジスタPCR(即ち、PCR200、201および202)の3つの代替実施態様を示す機能的ブロック図である。3つの代替実施態様の機能がPCR200(図3)に対する比喩的参照によって説明され、その説明は、提供された各PCRに当てはまるものと思われる。1つの実施例では、PCR200は、超特権ソフトウェア(ハイパーバイザ)にしかアクセスし得ず、問題状態プログラム(例えば、ユーザ・アプリケーション)および特権コード(例えば、オペレーティング・システム)はPCR200に対して読取りまたは書込みを行うことができない。しかし、PCR200がオペレーティング・システムに対してアクセス可能にされる他の実施例も提供される。PCR200は、そのPCRのビット61、62、および63である3つの下位ビット220、230、および240を含む64ビット・レジスタである。更に、PCR200は、61個の予備ビット210(ビット0〜60)のブロックを含む。
特殊目的レジスタ(SPR)のような或る機器および他の関連機器がその状態において利用可能であるかどうかを制御することによって、プロセッサが、問題状態にある間、サポートするように見えるべきアーキテクチャ・レベルを定義するために、下位の3ビット220、230、および240が使用される。PCR200内の残りのビットは、そのアーキテクチャの将来のレベルにおいて使用するために予約される。代替の実施態様では、PCR201(図4)の上位ビットまたはPCR202(図5)の中位ビットがアーキテクチャ・レベルを定義するために使用され、残りのビットは、再び、将来のレベルにおいて使用するために予約される。
PCR200内の各定義されたビット(220、230、240)は、プロセッサが問題状態にある間だけそのプロセッサがサポートするように見えるアーキテクチャ・レベルを制御するので、プロセッサが問題状態にないときには、それらのビットは機器にまったく影響を及ぼさない。PCRによって利用不可能にされる機器は、プロセッサが問題状態にあるとき、下記のように扱われる。即ち、
(a)命令が無効な命令として扱われる、
(b)SPRが、あたかもそれが具現化に関して定義されてないかのように扱われる、
(c)命令内のフィールドが、あたかもそのフィールドが0であるかのように扱われる。
1つの実施例では、新しいプロセッサが開発されるときにPCRが更新されることを可能にするために、各定義されたビットは、それが1にセットされたとき、そのアーキテクチャの所与のレベルにおける新しい機器(即ち、そのアーキテクチャ・レベルにはあるが、直前のレベルにはない機器)をディセーブルする。図3〜図5を参照すると、ビットv1(240)は、アーキテクチャのv1レベルにおける新しい機器をディセーブルする。更に、ビットv2(230)は、アーキテクチャのv2レベルにおける新しい機器をディセーブルする。更に、ビットv3(220)は、アーキテクチャのv3における新しい機器をディセーブルする。PCRにおける所与の下位の定義された(即ち、予約されてない)ビットが1にセットされる場合、すべての上位の定義されたビットも1にセットされる。換言すれば、v1における新しい機器がディセーブルされる場合、それに続くアーキテクチャ・レベル(即ち、v2およびv3)における新しいすべての機器もディセーブルされなければならない。このようにそれらのビットを定義することは、あたかもプロセッサが各アーキテクチャ・レベルに規格合致したかのようにプロセッサを動作させるために、PCRが使用されることを可能にする。
例えば、すべてのレベル・ビット(例えば、v1〜v3)が「1」にセットされる場合、プロセッサはアーキテクチャのレベルv0に規格合致し、v1、v2、および/または、v3において定義されたすべての新しい機器はディセーブルされる。別の例では、レベル・ビットv1(240)が「0」にセットされ、レベル・ビットv2(230)およびv3(220)が「1」にセットされる場合、v2およびv3において定義された新しい機器だけがディセーブルされる。この場合、プロセッサは、アーキテクチャ・レベルv1に規格合致するように見える。更に別の例では、レベル・ビットv1(240)およびv2(230)が「0」にセットされ、レベル・ビットv3(220)が「1」にセットされる場合、v3において定義された新しい機器だけがディセーブルされ、プロセッサは、アーキテクチャ・レベルv2に規格合致するように見える。最後に、すべてのレベル・ビット(例えば、v1〜v3)が「0」にセットされる場合、ディ−セーブルされる機器はなく、プロセッサは、アーキテクチャ・レベルv3に規格合致するように見える。次の上位のアーキテクチャが定義されるとき、次の上位の未定義ビット(即ち、最初の予約ビット)が、アーキテクチャのその次の上位のアーキテクチャ・レベルに対する機器をディセーブルするために使用されることも可能である。
PCR200、201、および202によって、アーキテクチャ・レベルに割り当てられてないビット(即ち、識別するために利用されるビット)が「予約され」、予約ビットと呼ばれる。更に、1つの実施例では、PCR130は、レベル・ビットの他に「特徴ビット」を含むことも可能である。例えば、特徴ビットは、アーキテクチャ・レベルと無関係にプロセッサの特定の特徴(例えば、ベクトル命令のセット)をディセーブルすることが可能である。PCR内のビットのセット(上位ビットのようなビット)を特徴ビットとして利用することも可能である。この実施態様の1つの応用例は、或る設計が、ソフトウェアには見えない所与の特徴と共に発売されること、およびその特徴を含むために/表示するために/具現化するために、現場においてアップグレードされることを可能にしている。
ほとんどの実施態様では、アーキテクチャのレベルよりも多くのビットがPCRに存在する。利用可能なPCRビットよりも多くのアーキテクチャ・レベル(例えば、図3のPCR200の例では、65個以上のアーキテクチャ・レベル)が存在する実施態様では、最早サポートされないアーキテクチャ・レベルに対応するそのPCRの下位ビットが予約される。この実施態様では、PCRの最上位ビットが既に或るアーキテクチャ・レベルに割り当てられ、新しいアーキテクチャ・レベルが定義されるべきとき、新しいアーキテクチャ・レベルに対応するビットが最下位のPCRビットとして定義され得る。この状況では、その定義されたPCRビットは「ラップ(wrap)する」と言われる。64ビットのPCRにとって、ラッピングはほとんどありそうもないが、次に説明される図6及び図7によって示されるように、PCRがわずか8ビット長であった場合、ラッピングはもっとありそうである。
図6及び図7は、定義されたアーキテクチャ・レベルのラッピングが生じた8ビット幅のPCR300を示す機能的ブロック図である。この例では、ラッピングは、レベルv9が展開されるときに生じ、レベルv9はPCRの最下位ビットとして定義される。12個のアーキテクチャ・レベル(即ち、v0〜v11)が定義されている図7に示された実施例では、最後の5つのレベル(v7〜v11)だけがサポートされ、ビット1〜4はその後の再割当て用として「予約」される。
プロセッサが複数の特権レベル/状態(例えば、問題状態、特権状態、超特権状態等)をサポートするという実施態様における変更のようなPCRのいくつかの変更が可能である。そのような状況では、PCRを、特権コードおよび超特権コードにとって利用可能にすることも可能である。この実施態様は、オペレーティング・システムがユーザ・レベルのアプリケーションに対してプロセッサ・アーキテクチャ・レベルを指定する必要があるという状況では、望ましいことであるかもしれない。
PCRは、特定の特権レベルのみにまたは複数の特権レベルに影響を及ぼすように具現化することも可能である。例えば、PCRは、超特権コードおよび特権コード(例えば、オペレーティング・システム)の両方に、各コードの関連する特権レベルに対応したすべてのプロセッサ機器へのアクセスを与える、という結果を生じる問題状態コードのみに影響を及ぼすように具現化されてもよい。それとは別に、PCRは、オペレーティング・システムが特定のアーキテクチャ・レベル用に設計されるときのように、或いはオペレーティング・システムがPCRを使用するように設計されない場合のように、問題コードおよび特権コードに影響を及ぼすように具現化されてもよい。更に、PCRによって影響される特権状態はプログラム可能なものであってもよい。
PCRが複数の特権レベルに影響を及ぼす必要がある場合、複数のPCRが、各特権レベルに対して適用可能な異なるPCRを備えてもよい。例えば、問題状態、特権状態、および超特権状態を含む3つの状態を持つ実施態様では、PCRが各状態に個々に割り当てられるが、特定の状態に対するPCRは高い特権状態にある間だけ設定可能である。この例では、問題状態に関連したPCR(例えば、PCRproblem)は問題状態コードにしか影響しないであろうし、そのPCRは特権および超特権(ハイパーバイザ)状態においてアクセス可能であろう。特権状態に関連したPCR(例えば、PCRprivilege)は特権状態コードにしか影響しないであろうし、そのPCRは超特権状態においてアクセス可能であろう。超特権状態に関連したPCR(PCRhypervisor)は、超特権状態コードにしか影響しないであろうし、そのPCRは初期のスキャン・イン中のみアクセス可能であろう。従って、この実施態様では、PCRは、PCRが影響を及ぼす特権状態よりも多く特権を与えられる特権状態からのみアクセスされ得る。図2を参照すると、例えば、レジスタ131(Reg A)およびをレジスタ132(RegB)はPCRであってもよく、レジスタ131、132、およびPCR 130の各々は、サポートされた状態の特定のものに割り当てられてもよい。各レジスタは、種々のサイズ、レイアウト、およびビット定義を有することも可能である。
複数のPCRが上述のように設けられると、ハイパーバイザは、パーティションのディスパッチ時に、PCRproblemおよびPCRprivilegedを初期レベルに初期設定し、パーティションの寿命期間中、オペレーティング・システムは、そのオペレーティング・システムが望むならば、PCRproblemを修正することが可能である。一般には、オペレーティング・システムはPCRproblemを単に無視するか、或いはそれに気付かない。PCRビットがセットされるべき値をハイパーバイザが決定するプロセスが、次に説明される図8によって与えられる。
図8および図9は、パーティションのディスパッチ中にPCRを更新するためにハイパーバイザよって遂行されるプロセス(図8)およびプロセッサによって遂行されるプロセス(図9)を一般的に示す動作フローチャートである。プロセスは、図1〜図7のコンポーネント、データ、および/または、例示的な動作環境によって具現化される。図1〜図7に示されるコンポーネントを参照してプロセスを説明し得るが、これは単に便宜上のことであって、代替コンポーネントを使用するのも可能であることは当然である。
好ましくは、コンピュータ可読コードがコンピューティング装置上で実行されるときに一連のステップが遂行されるよう、プロセスにおける1つまたは複数のステップが、コンピュータ可読コードを含むコンピュータ可読媒体において具体化される。或る実施態様では、プロセスの或るステップは、そのプロセスおよびそれの均等の範囲から逸脱することなく、結合され、同時にまたは異なる順序で遂行され、或いは省略される。
ハイパーバイザ・イネーブルド・プロセスに関する図8のプロセスはブロック401で始まり、ブロック403に進む。ブロック403では、プロセッサにおいてパーティションをディスパッチするために、ハイパーバイザ(HYP)がトリガされる。パーティションの実行を開始する制御プログラムがハイパーバイザをコールして、パーティションにプロセッサ資源を割り付けることをハイパーバイザに知らせる。ブロック405において、ハイパーバイザが、パーティションに関連した様々な構成パラメータを検索する(または受け取る)。そのパラメータは、パーティションが実行されるべきプロセッサ・アーキテクチャのレベルに関するデータを含む。ブロック407に示されるように、検索されたアーキテクチャ・レベル・パラメータに基づいて、パーティションが規格合致するレベルに対応したアーキテクチャ・レベルを、ハイパーバイザが識別する。しかる後、ブロック409に示されるように、識別されたアーキテクチャ・レベルに対する設定にPCRの対応ビットをセットするための命令を、ハイパーバイザが発生する。しかる後、ブロック411に示されるように、ハイパーバイザがパーティションの実行を開始する。次に、プロセスがブロック413において終了する。
図9に示されたプロセッサ・レベル・プロセスを参照すると、そのプロセスはブロック501で始まり、ブロック503に進む。ブロック503では、プロセッサが、PCRを修正するための命令を受け取る。プロセッサは、ブロック505において、現在のプロセッサ特権状態がPCRの要求された修正を許容するかどうかを決定する。1つの実施例では、この決定は、プロセッサが超特権(ハイパーバイザ)状態にあるときに命令の受取りが生じたかどうかをチェックすることを含んでいる。現在のプロセッサ特権状態がその要求されたPCR修正を許容しない場合(例えば、プロセッサが超特権状態にない場合)、ブロック507に示されるように、PCRへのアクセスは拒否される。現在のプロセッサ特権状態がその要求されたPCR修正を許容する場合(例えば、プロセッサが超特権状態にある場合)、ブロック509に示されるように、プロセッサは受け取った命令に従ってPCRを修正する。しかる後、プロセスはブロック511において終了する。
従って、本発明の上記実施例は、プロセッサが規格合致するように見えるアーキテクチャ・レベルを選択する方法(データ処理システムのプロセッサ内の方法)を提供する。その方法は、
(a)プロセッサにおけるプロセッサ互換レジスタ(PCR)内の1つまたは複数のビット値(その値は、プロセッサが論理パーティションまたはプログラムのその後の実行中に規格合致するように見えるべきアーキテクチャ・レベルに対応する)をセットするステップと、
(b)PCRの内の1つまたは複数のビットの値に基づいて、特定のアーキテクチャ・レベルに規格合致するように見えるよう、プロセッサを自動的に構成するステップと、
を含む。
プログラム製品を含むコンピュータ使用可能媒体において本発明の少なくとも幾つかの局面を代替的に具現化し得るということは当然である。本発明に関する機能を定義するプログラムは、書込み不可の記憶媒体(例えば、CD−ROM)、書込み可能記憶媒体(例えば、ハードディスク・ドライブ、読取り/書込みCD−ROM、光学的媒体)、並びに Ethernet(登録商標)、インターネット、無線ネットワーク、および同様のネットワーク・システムを含むコンピュータおよび電話ネットワークのような通信媒体、を限定なしに含む様々な信号保持媒体を介してデータ記憶システムまたはコンピュータ・システムに配布することも可能である。従って、そのような信号保持媒体は、それが本発明における方法機能を指示するコンピュータ可読命令を保持または符号化するとき、本発明の代替実施例を表わすということも当然である。更に、ハードウェア、ソフトウェア、或いは本明細書に記載されたようなソフトウェアおよびハードウェアまたはそれらの均等物を有するシステムによって、本発明を具現化することが可能であることも当然である。
本発明を好ましい実施例に関して詳細に示し且つ説明したが、本発明の趣旨および範囲から逸脱することなく、形式および細部における様々な変更を行ない得るということは当業者には明らかであろう。
図1は、本発明の具現化を特に適用し得るコンピューティング装置を示す機能ブロック図である。 図2は、本発明の具現化を特に適用し得るコンピュータおよびそれのコンポーネントを示す機能ブロック図である。 図3は、本発明の1つの実施例に従って例示のプロセッサ互換レジスタ(PCR)内に割り当てられた「レベル」ビットを示す機能ブロック図である。 図4は、本発明の別の実施例に従って例示のプロセッサ互換レジスタ(PCR)内に割り当てられた「レベル」ビットを示す機能ブロック図である。 図5は、本発明の別の実施例に従って例示のプロセッサ互換レジスタ(PCR)内に割り当てられた「レベル」ビットを示す機能ブロック図である。 図6は、本発明の1つの実施例に従ってオーバーフロー・レベル値のラッピングを可能にする1つの例示的PCRを示す機能ブロック図である。 図7は、本発明の1つの実施例に従ってオーバーフロー・レベル値のラッピングを可能にする別の例示的PCRを示す機能ブロック図である。 図8は、本発明の実施例に従って、PCRをセットすべきアーキテクチャ・レベルをハイパーバイザが決定するプロセスを示す動作フローチャートである。 図9は、本発明の実施例に従って、プロセッサが規格合致するように見えるアーキテクチャ・レベルを識別するために、PCRのビットを設定するためのプロセスを示す動作フローチャートである。

Claims (13)

  1. プロセッサが規格合致するように見えるアーキテクチャ・レベルを選択する方法であって、
    前記プロセッサにおけるプロセッサ互換レジスタ(PCR)内に1つまたは複数のビットの値をセットするステップであって、論理的パーティションまたはプログラムのその後の実行中、前記プロセッサが規格合致するように見える場合のアーキテクチャ・レベルに前記値が対応する、前記ステップと、
    前記PCR内の1つまたは複数のビットの値に基づいて、前記プロセッサが特定のアーキテクチャ・レベルに規格合致するように見えるよう、前記プロセッサを自動的に構成するステップと、
    を含む、方法。
  2. 前記PCRを修正するための命令を受け取るステップと、
    受け取られた命令に含まれた所望のアーキテクチャ・レベルに関する情報に従って、前記PCR内の1つまたは複数のビットの値を動的に修正するステップと、
    前記PCR内の1つまたは複数のビットの値に基づいて、前記プロセッサが規格合致するように見える可能性のある複数のアーキテクチャ・レベルの中から前記特定のアーキテクチャ・レベルを選択するステップと、
    を更に含む、請求項1に記載の方法。
  3. 前記プロセッサが超特権状態にある間だけ前記PCRが修正可能であるとき、前記動的に修正するステップは、前記超特権状態におけるプロセッサ・オペレーション中、前記命令が受け取られるときだけ前記1つまたは複数のビットの値を修正するステップを更に含み、
    前記プロセッサが超特権状態および特権状態の一方にある間に前記PCRを修正可能であるとき、前記動的に修正するステップは、前記超特権状態および前記特権状態の一方におけるプロセッサ・オペレーション中、前記命令が受け取られるときだけ前記1つまたは複数のビットの値を修正するステップを更に含む、
    請求項2記載の方法。
  4. 前記PCRは前記プロセッサ内の複数のPCRの1つであり、前記複数のPCRは、前記プロセッサが超特権状態、特権状態、または問題状態にあるとき、プロセッサ・オペレーションに影響を及ぼし、
    前記方法は、
    前記命令が前記プロセッサにおいて受け取られるとき、超特権状態、特権状態、および問題状態の中から前記システムの動作状態を決定するステップと、
    前記動的に修正するステップに含まれ、前記動作状態が前記超特権状態であるとき、前記特権状態および前記問題状態におけるシステム・オペレーションに影響を及ぼすすべてのPCRの1つまたは複数のビットの値を修正するステップと、
    前記動的に修正するステップに含まれ、前記動作状態が前記特権状態であるとき、前記問題状態におけるシステム・オペレーションに影響を及ぼすPCRのみの1つまたは複数のビットの値を修正するステップと、
    前記動作状態が前記問題状態であるとき、前記PCRの1つまたは複数のビットの修正を防止するステップと、
    を更に含む、請求項2記載の方法。
  5. 前記プロセッサが、前記PCR内の1つまたは複数のビットの値によって識別されたアーキテクチャ・レベルに規格合致するように見えることによって、前記プロセッサにおいてプログラムを実行するステップを更に含み、
    前記現在のアーキテクチャ・レベルは、前記プログラムに対する特定のアーキテクチャ・レベルに関する情報を、論理的パーティションまたはプログラムがディスパッチされるとき、検索する超特権ソフトウェアまたは特権ソフトウェアによって決定され、
    前記プロセッサは、前記PCRの1つまたは複数のビットの異なる値によってそれぞれ選択される複数のレベルのプロセッサ・アーキテクチャをサポートすることができる、
    請求項1に記載の方法。
  6. 前記プロセッサの特定の特徴をディセーブルする前記PCR内の特徴ビットを定義するステップと、
    前記プロセッサの第1特徴をディセーブルするように特徴ビットがセットされるとき、前記プロセッサが規格合致するように見えるアーキテクチャ・レベルに無関係の前記第1特徴をディセーブルするステップと、
    を更に含む、請求項1に記載の方法。
  7. 少なくとも1つの実行ユニットと、
    特定のプログラムの実行中、前記プロセッサが規格合致するように見える場合のアーキテクチャ・レベルを指定するプログラム互換レジスタ(PCR)と、
    前記プロセッサが規格合致するように見える現在のアーキテクチャ・レベルを選択するためのロジックと、
    を含むプロセッサであって、前記ロジックは、
    前記プロセッサ互換レジスタ(PCR)内の1つまたは複数のビットの値をセットするためのロジックであって、論理的パーティションまたはプログラムのその後の実行中、前記プロセッサが規格合致するように見える場合のアーキテクチャ・レベルに前記値が対応する、前記ロジックと、
    前記PCR内の1つまたは複数のビットの値に基づいて、前記プロセッサが特定のアーキテクチャ・レベルに規格合致するように見えるよう、前記プロセッサを自動的に構成するためのロジックと、
    を含む、プロセッサ。
  8. 前記PCRを修正するための命令を受け取るためのロジックと、
    受け取られた命令に含まれた所望のアーキテクチャ・レベルに関する情報に従って、前記PCR内の1つまたは複数のビットの値を動的に修正するためのロジックと、
    前記PCR内の1つまたは複数のビットの値に基づいて、前記プロセッサが規格合致するように見える可能性のある複数のアーキテクチャ・レベルの中から前記特定のアーキテクチャ・レベルを選択するためのロジックと、
    を更に含む、請求項7に記載のプロセッサ。
  9. 前記プロセッサが超特権状態にある間だけ前記PCRが修正可能であるとき、前記動的に修正するためのロジックは、前記超特権状態におけるシステム・オペレーション中、前記命令が受け取られるときだけ前記1つまたは複数のビットの値を修正するためのロジックを更に含み、
    前記プロセッサが超特権状態および特権状態の一方にある間に前記PCRが修正可能であるとき、前記動的に修正するためのロジックは、前記超特権状態および前記特権状態の一方におけるプロセッサ・オペレーション中、前記命令が受け取られるときだけ前記1つまたは複数のビットの値を修正するためのロジックを更に含む、
    請求項8記載のプロセッサ。
  10. 前記PCRは前記プロセッサ内の複数のPCRの1つであり、前記複数のPCRは、前記プロセッサが超特権状態、特権状態、または問題状態にあるとき、プロセッサ・オペレーションに影響を及ぼし、
    前記プロセッサは、
    前記命令が前記プロセッサにおいて受け取られるとき、超特権状態、特権状態、および問題状態の中から前記システムの動作状態を決定するためのロジックと、
    前記動的に修正するためのロジックに含まれ、前記動作状態が前記超特権状態であるとき、前記特権状態および前記問題状態におけるシステム・オペレーションに影響を及ぼすすべてのPCRの1つまたは複数のビットの値を修正するためのロジックと、
    前記動的に修正するためのロジックに含まれ、前記動作状態が前記特権状態であるとき、前記問題状態におけるシステム・オペレーションに影響を及ぼすPCRのみの1つまたは複数のビットの値を修正するためのロジックと、
    前記動作状態が前記問題状態であるとき、前記PCRの1つまたは複数のビットの修正を防止するためのロジックと、
    を更に含む、請求項8記載のプロセッサ。
  11. 前記プロセッサが、前記PCR内の1つまたは複数のビットの値によって識別されたアーキテクチャ・レベルに規格合致するように見えることによって、前記プロセッサにおいてプログラムを実行するためのロジックを更に含み、
    前記現在のアーキテクチャ・レベルは、前記プログラムに対する特定のアーキテクチャ・レベルに関する情報を、前記論理的パーティションまたはプログラムがディスパッチされるとき、検索する超特権ソフトウェアまたは特権ソフトウェアによって決定され、
    前記プロセッサは、前記PCRの1つまたは複数のビットの異なる値によってそれぞれ選択される複数のレベルのプロセッサ・アーキテクチャをサポートすることができる、
    請求項7に記載のプロセッサ。
  12. 前記PCRが1つまたは複数の特徴ビットを更に含み、
    前記プロセッサの特定の特徴をディセーブルする特徴ビットを前記PCR内に定義するためのロジックと、
    前記プロセッサの第1特徴をディセーブルするように特徴ビットがセットされるとき、前記プロセッサが規格合致するように見えるアーキテクチャ・レベルに無関係の前記第1特徴をディセーブルするためのロジックと、
    を更に含む、請求項7に記載のプロセッサ。
  13. 超特権動作状態中に超特権を実行するためのコードを有するメモリと、
    相互接続バスを介して前記メモリに接続されたプロセッサと、
    を含み、
    前記プロセッサは、
    少なくとも1つの実行ユニットと、
    特定のプログラムの実行中、前記プロセッサが規格合致するように見える場合のアーキテクチャ・レベルを指定するプロセッサ互換レジスタ(PCR)と、
    前記プロセッサが規格合致するように見える現在のアーキテクチャ・レベルを選択するためのロジックと、
    を有し、
    前記選択するためのロジックは、
    前記プロセッサ互換レジスタ(PCR)内の1つまたは複数のビットの値をセットするためのロジックと、
    前記PCR内の1つまたは複数のビットの値に基づいて、前記プロセッサが特定のアーキテクチャ・レベルに規格合致するように見えるよう、前記プロセッサを自動的に構成するためのロジックと、
    を含む、データ処理システム。
JP2008001409A 2007-01-09 2008-01-08 プロセッサが規格合致するように見えるアーキテクチャ・レベルを選択するための方法および装置 Active JP5255285B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/621393 2007-01-09
US11/621,393 US7802252B2 (en) 2007-01-09 2007-01-09 Method and apparatus for selecting the architecture level to which a processor appears to conform

Publications (2)

Publication Number Publication Date
JP2008171428A true JP2008171428A (ja) 2008-07-24
JP5255285B2 JP5255285B2 (ja) 2013-08-07

Family

ID=39595275

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008001409A Active JP5255285B2 (ja) 2007-01-09 2008-01-08 プロセッサが規格合致するように見えるアーキテクチャ・レベルを選択するための方法および装置

Country Status (3)

Country Link
US (1) US7802252B2 (ja)
JP (1) JP5255285B2 (ja)
CN (1) CN101221514B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015201227A (ja) * 2010-06-24 2015-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム
US11068291B2 (en) 2016-01-22 2021-07-20 Sony Interactive Entertainment Inc. Spoofing CPUID for backwards compatibility

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101283332A (zh) * 2005-10-04 2008-10-08 日本电气株式会社 信息处理装置、信息处理方法及程序
US8127296B2 (en) * 2007-09-06 2012-02-28 Dell Products L.P. Virtual machine migration between processors having VM migration registers controlled by firmware to modify the reporting of common processor feature sets to support the migration
GB2474666B (en) * 2009-10-21 2015-07-15 Advanced Risc Mach Ltd Hardware resource management within a data processing system
US8972961B2 (en) 2010-05-19 2015-03-03 International Business Machines Corporation Instruction scheduling approach to improve processor performance
US10521231B2 (en) 2010-06-24 2019-12-31 International Business Machines Corporation Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
US8583891B1 (en) * 2011-07-25 2013-11-12 Google Inc. Associating partitions in a computing device
US8578378B2 (en) 2011-07-28 2013-11-05 Intel Corporation Facilitating compatible interaction, at least in part
US9558006B2 (en) * 2012-12-20 2017-01-31 Intel Corporation Continuous automatic tuning of code regions
US10063569B2 (en) * 2015-03-24 2018-08-28 Intel Corporation Custom protection against side channel attacks
US9785783B2 (en) * 2015-07-23 2017-10-10 Ca, Inc. Executing privileged code in a process
GB2563580B (en) * 2017-06-15 2019-09-25 Advanced Risc Mach Ltd An apparatus and method for controlling a change in instruction set
US11226839B2 (en) 2019-02-27 2022-01-18 International Business Machines Corporation Maintaining compatibility for complex functions over multiple machine generations

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60225253A (ja) * 1984-04-23 1985-11-09 Nec Corp 情報処理装置
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
JPS6191726A (ja) * 1984-10-11 1986-05-09 Ascii Corp 複合マイクロプロセツサ
JPS6273333A (ja) * 1985-09-26 1987-04-04 Nec Corp エミュレーション制御装置
JPS62120542A (ja) * 1985-11-20 1987-06-01 Nec Corp 情報処理装置
JPS62151938A (ja) * 1985-12-25 1987-07-06 Nec Corp 命令処理方式
JPH0527967A (ja) * 1991-07-24 1993-02-05 Toshiba Corp 計算機システム
JPH0683615A (ja) * 1992-09-02 1994-03-25 Fujitsu Ltd 命令セットエミュレーションを行う計算機
JPH06332692A (ja) * 1993-05-20 1994-12-02 Toshiba Corp 特殊動作モードを持った演算制御装置
US5555414A (en) * 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
JPH08339325A (ja) * 1995-06-07 1996-12-24 Internatl Business Mach Corp <Ibm> 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
JPH09512651A (ja) * 1994-05-03 1997-12-16 アドバンスド リスク マシーンズ リミテッド 複数命令セットのマッピング
JPH1091429A (ja) * 1996-07-26 1998-04-10 Hitachi Ltd 情報処理装置
JP2003519868A (ja) * 2000-01-14 2003-06-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサ内での動作モードの確立
JP2006018819A (ja) * 2004-06-30 2006-01-19 Microsoft Corp 64ビットx86プロセッサ上でレガシ32ビットx86仮想マシンを実行するためのシステムおよび方法
WO2006041758A1 (en) * 2004-10-06 2006-04-20 Intel Corporation Overriding processor configuration settings
US7146482B2 (en) * 2003-11-25 2006-12-05 International Business Machines Corporation Memory mapped input/output emulation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69406660D1 (de) 1993-05-05 1997-12-11 Apple Computer Verfahren und vorrichtung zur kompatibilitätsverifikation zwischen komponenten in einem rechnersystem
JP3513122B2 (ja) * 2000-07-21 2004-03-31 津田駒工業株式会社 タックイン装置
US20020078262A1 (en) 2000-12-14 2002-06-20 Curl Corporation System and methods for providing compatibility across multiple versions of a software system
US7191439B2 (en) 2001-02-28 2007-03-13 Palmsource, Inc. Verification of software application attributes for optimal compatibility with a software system
US7251811B2 (en) 2002-01-02 2007-07-31 Intel Corporation Controlling compatibility levels of binary translations between instruction set architectures
US7331040B2 (en) 2002-02-06 2008-02-12 Transitive Limted Condition code flag emulation for program code conversion
EP1447742A1 (en) * 2003-02-11 2004-08-18 STMicroelectronics S.r.l. Method and apparatus for translating instructions of an ARM-type processor into instructions for a LX-type processor
US7594219B2 (en) 2003-07-24 2009-09-22 International Business Machines Corporation Method and apparatus for monitoring compatibility of software combinations

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60225253A (ja) * 1984-04-23 1985-11-09 Nec Corp 情報処理装置
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
JPS6191726A (ja) * 1984-10-11 1986-05-09 Ascii Corp 複合マイクロプロセツサ
JPS6273333A (ja) * 1985-09-26 1987-04-04 Nec Corp エミュレーション制御装置
JPS62120542A (ja) * 1985-11-20 1987-06-01 Nec Corp 情報処理装置
JPS62151938A (ja) * 1985-12-25 1987-07-06 Nec Corp 命令処理方式
JPH0527967A (ja) * 1991-07-24 1993-02-05 Toshiba Corp 計算機システム
JPH0683615A (ja) * 1992-09-02 1994-03-25 Fujitsu Ltd 命令セットエミュレーションを行う計算機
JPH06332692A (ja) * 1993-05-20 1994-12-02 Toshiba Corp 特殊動作モードを持った演算制御装置
JPH09512651A (ja) * 1994-05-03 1997-12-16 アドバンスド リスク マシーンズ リミテッド 複数命令セットのマッピング
US5555414A (en) * 1994-12-14 1996-09-10 International Business Machines Corporation Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals
JPH08339325A (ja) * 1995-06-07 1996-12-24 Internatl Business Mach Corp <Ibm> 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
JPH1091429A (ja) * 1996-07-26 1998-04-10 Hitachi Ltd 情報処理装置
JP2003519868A (ja) * 2000-01-14 2003-06-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサ内での動作モードの確立
US7146482B2 (en) * 2003-11-25 2006-12-05 International Business Machines Corporation Memory mapped input/output emulation
JP2006018819A (ja) * 2004-06-30 2006-01-19 Microsoft Corp 64ビットx86プロセッサ上でレガシ32ビットx86仮想マシンを実行するためのシステムおよび方法
WO2006041758A1 (en) * 2004-10-06 2006-04-20 Intel Corporation Overriding processor configuration settings

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200400303014; 野口岳郎: 'x86-64アーキテクチャ' ASCII Vol:27,No:3, 20030301, Pages:238-243, 株式会社アスキー *
JPN6012058063; 野口岳郎: 'x86-64アーキテクチャ' ASCII Vol:27,No:3, 20030301, Pages:238-243, 株式会社アスキー *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015201227A (ja) * 2010-06-24 2015-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 多機能命令のうちの選択されたインストール済み機能を隠蔽するためのコンピュータで実装される方法、コンピュータ・システム、およびコンピュータ・プログラム
US9851969B2 (en) 2010-06-24 2017-12-26 International Business Machines Corporation Function virtualization facility for function query of a processor
US11068291B2 (en) 2016-01-22 2021-07-20 Sony Interactive Entertainment Inc. Spoofing CPUID for backwards compatibility
US11847476B2 (en) 2016-01-22 2023-12-19 Sony Interactive Entertainment Inc. Spoofing CPUID for backwards compatibility

Also Published As

Publication number Publication date
CN101221514B (zh) 2011-08-17
US7802252B2 (en) 2010-09-21
CN101221514A (zh) 2008-07-16
JP5255285B2 (ja) 2013-08-07
US20080168258A1 (en) 2008-07-10

Similar Documents

Publication Publication Date Title
JP5255285B2 (ja) プロセッサが規格合致するように見えるアーキテクチャ・レベルを選択するための方法および装置
US10318407B2 (en) Allocating a debug instruction set based on the current operating state in a multi-instruction-set data processing apparatus
CN105074666B (zh) 执行在具有不同指令集架构的处理器上的操作系统
US7134007B2 (en) Method for sharing firmware across heterogeneous processor architectures
JP5071913B2 (ja) 同時物理プロセッサ再割り当て方法、システム、およびプログラム
EP1963962B1 (en) Changing a scheduler in a virtual machine monitor
KR102187912B1 (ko) 인터럽트들의 세트들을 구성하는 장치 및 방법
EP2798491A1 (en) Method and device for managing hardware errors in a multi-core environment
US20190138438A1 (en) Conditional stack frame allocation
CN111782335A (zh) 通过进程内操作系统的扩展应用机制
US9760282B2 (en) Assigning home memory addresses to function call parameters
US10409602B2 (en) Vector operand bitsize control
US11144329B2 (en) Processor microcode with embedded jump table
US20150363227A1 (en) Data processing unit and method for operating a data processing unit
JP2021515929A (ja) データ処理
JP6295914B2 (ja) プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ
US10564702B2 (en) Method to optimize core count for concurrent single and multi-thread application performance
JP2022509722A (ja) 例外原因イベントをハンドリングするための装置及び方法
TWI526932B (zh) Support for UEFI OS under the X86 system Using a driver or application to access the variables in the anti-gate memory device, the computer system, the recording media, and the computer program product
Karlsson Enea Hypervisor: Facilitating Multicore Migration with the Enea Hypervisor
CN117742890A (zh) 一种虚拟机的创建方法、装置、设备及存储介质
US20180349137A1 (en) Reconfiguring a processor without a system reset
KR20190081285A (ko) 가상화 시스템에서 동적 패스쓰루 방법 및 장치
US20140019990A1 (en) Integrated circuit device and method for enabling cross-context access

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20121122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130321

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: 20130402

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130419

R150 Certificate of patent or registration of utility model

Ref document number: 5255285

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3