JPH11503846A - プロセッサにおいて命令セット間の移行を行う方法および装置 - Google Patents

プロセッサにおいて命令セット間の移行を行う方法および装置

Info

Publication number
JPH11503846A
JPH11503846A JP8524358A JP52435896A JPH11503846A JP H11503846 A JPH11503846 A JP H11503846A JP 8524358 A JP8524358 A JP 8524358A JP 52435896 A JP52435896 A JP 52435896A JP H11503846 A JPH11503846 A JP H11503846A
Authority
JP
Japan
Prior art keywords
instruction
instruction set
decoder
processor
coupled
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.)
Pending
Application number
JP8524358A
Other languages
English (en)
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 JPH11503846A publication Critical patent/JPH11503846A/ja
Pending legal-status Critical Current

Links

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/22Microcontrol or microprogram arrangements
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

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

(57)【要約】 データ・プロセッサ(104)について記載する。このデータ・プロセッサ(104)は、第1の命令セットの第1の命令(212)と第2の命令セットの第2の命令(213〜219)のデコードと実行を行うことができ、第1の命令(212)と第2の命令(213〜219)とは単一のコンピュータ・プログラムからのものである(210、211)。あるいは、データ・プロセッサ(104)は、第1の命令セット・モードで第1の命令セットの第1の命令(212)を実行し、第1の命令セット・モードで第1の割込み指示を受け取り、第2の命令セット・モードで第1の割込み指示を処理し、第1の命令セット・モードに戻り、第1の命令セット・モードで第2の割込み指示を受け取り、第1の命令セット・モードで第2の割込み指示を処理することもできる。

Description

【発明の詳細な説明】 プロセッサにおいて命令セット間の移行を行う方法および装置発明の分野 本発明は電子データ処理装置の分野に関する。具体的には、本発明はデータ・ プロセッサの動作に係わる。発明の背景 従来、プロセッサは特定のプロセッサ用の命令セットのオペレーティング・シ ステムとアプリケーション・プログラムのみを受け入れることができた。他の命 令セットのオペレーティング・システムやアプリケーション・プログラムを受け 入れることはできなかった。したがって、新しいプロセッサの技術的進歩を組み 込むためにプロセッサ・アーキテクチャと命令セットを修正する場合、オペレー ティング・システムとアプリケーション・プログラムの既存のソフトウェアの基 盤を利用することができなかった。新しいオペレーティング・システムとアプリ ケーション・プログラムを開発しなければならなかった。 1つの従来のプロセッサは、1つの命令セット(VAXコード)のアプリケー ション・プログラムを受け入れると共に、それ以前の命令セット(PDP−11 コード)のアプリケーション・プログラムも受け入れる能力を備えていた。しか しこの従来のプロセッサは1つの命令セット(VAXコード)のオペレーティン グ・システムのみを受け入れ、たとえばPDP−11コードなどの他の命令セッ トのオペレーティング・システムを受け入れることができなかった。さらに、こ の従来のプロセッサは、完全に1つの命令セット(VAXコードまたはPDP− 11コード)のアプリケーション・プログラムのみを受け入れることができ、両 方の命令セットの命令を使用したアプリケーション・プログラムを受け入れるこ とはできなかった。従来のプロセッサには以前には認識されていなかった問題が 2つある。第1に、従来のプロセッサは1つの命令セット(VAXコード)のオ ペレーティング・システムしか受け入れないため、高いコストをかけてまったく 新しいオペレーティング・システムを開発しなければならなかった。古い方のオ ペレーティング・システムの既存の機能は、技術的進歩がそれらの機能にとって 利点とならない場合であっても、使用することができなかった。第2に、従来の プロセッサは一方の命令セットともう一方の命令セットのいずれかのアプリケー ション・プログラムしか受け入れることができなかったため、ソフトウェア開発 者はまったく新しいアプリケーション・プログラムを開発する高い開発費用をか けるかまたは新しい命令セットによって得られる技術的進歩の利点を捨てるかと いう難しい選択を迫られていた。開発者には、パフォーマンス上の利点によって 必要とされる新しい命令セットを実施すると共にコストの問題によって必要とさ れる既存のソフトウェアを利用するという選択肢がなかった。 したがって、複数のオペレーティング・システムを受け入れる機能を備えたプ ロセッサが必要である。また、複数の命令セットの命令を使用したアプリケーシ ョン・プログラムを受け入れる機能を備えたプロセッサも必要である。発明の概要 新規なデータ・プロセッサについて説明する。このデータ・プロセッサは、第 1の命令セットの第1の命令と第2の命令セットの第2の命令を受け取ることが できるバス・インタフェース・ユニットを備える。第1の命令と第2の命令は、 単一のコンピュータ・プログラムからのものである。このデータ・プロセッサは 、第1の命令セットの第1の命令と第2の命令セットの第2の命令をバス・イン タフェース・ユニットから伝送することができる、バス・インタフェース・ユニ ットに結合された内部バスも備え、第1の命令セットの第1の命令と第2の命令 セットの第2の命令をデコードし、実行することができる内部バスに結合された 命令ユニットも備える。 第1の実施態様では、命令ユニットは、内部バスに結合され、第1の命令と第 2の命令を格納することができる命令キャッシュと、命令キャッシュに結合され 、第1の命令セットの第1の命令をデコードすることができる第1のデコーダと 、命令キャッシュに結合され、第2の命令セットの第2の命令をデコードするこ とができる第2のデコーダと、第1のデコーダと第2のデコーダとに結合され、 信 号に応答して第1のデコーダと第2のデコーダとのうちから選択することができ るマルチプレクサと、マルチプレクサに結合され、マルチプレクサからの選択さ れたデコード済み命令を実行することができる実行ユニットとを備える。命令ユ ニットは、第1のデコーダと第2のデコーダとマルチプレクサとに結合され、命 令に応答してマルチプレクサに信号を送信して現行モードを第1のデコーダまた は第2のデコーダに切り換えることができる命令セット・モード・セレクタをさ らに備える。 第2の実施態様では、命令ユニットは、内部バスに結合されて第1の命令を格 納することができる第1の命令キャッシュと、第1の命令キャッシュに結合され て第1の命令をデコードすることができる第1のデコーダと、第1のデコーダに 結合されて第1の命令を実行することができる第1の実行ユニットと、内部バス に結合されて第2の命令を格納することができる第2の命令キャッシュと、第2 の命令キャッシュに結合されて第2の命令をデコードすることができる第2のデ コーダと、第2のデコーダに結合されて第2の命令を実行することができる第2 の実行ユニットとを備える。第1の実行ユニットは、信号に応答して実行を開始 し、第2の実行ユニットは信号に応答して実行を開始する。 第3の実施態様では、命令ユニットは、内部バスに結合されて第1の命令セッ トの第1の命令を第2の命令セットの対応する命令に変換することができる変換 機構と、内部バスと変換機構とに結合されて第2の命令セットの第2の命令を格 納することができ、第2の命令セットの対応する命令を格納することができる命 令キャッシュと、命令キャッシュに結合されて第2の命令セットの第2の命令を 実行することができ、第2の命令セットの対応する命令を実行することができる 実行ユニットとを備える。命令ユニットは、命令キャッシュに結合されて第2の 命令セットの第2の命令をデコードすることができ、第2の命令セットの対応す る命令をデコードすることができるデコーダをさらに備えることができる。プロ セッサは、マイクロコード命令を記憶する制御読取り専用メモリ装置をさらに備 えることができる。変換機構はマイクロコード命令を受け取って第1の命令セッ トの第1の命令を第2の命令セットの対応する命令に変換する。 プロセッサでコンピュータ・プログラムの命令を実行する方法について説明す る。この方法は、第1の命令セットの第1の命令を実行するステップと、第1の 切換え命令を実行するステップと、第1の命令セット・モードから第2の命令セ ット・モードに切り換えるステップと、第2の命令セットの第2の命令を実行す るステップとを含む。この方法は、第2の切換え命令を実行するステップと、第 2の命令セット・モードから第1の命令セット・モードに切り換えるステップと 、第1の命令セットの第2の命令を実行するステップとをさらに含むことができ る。あるいは、この方法は第1の命令セット・モードで第1の命令セットの第1 の命令を実行するステップと、第1の命令セット・モードで第1の割込み指示を 受け取るステップと、第2の命令セット・モードで第1の割込み指示を処理する ステップと、第1の命令セット・モードに戻るステップと、第1の命令セット・ モードで第2の割込み指示を受け取るステップと、第1の命令セット・モードで 第2の割込み指示を処理するステップとを含むことができる。第2の命令セット ・モードで第1の割込み指示を処理するステップは、第1の割込みを判断するス テップと、第1の割込みのディスクリプタ項目番号を判断するステップと、ディ スクリプタ項目番号に関連づけられ、メモリ・アドレスを指す64ビットのイン タセプト・ゲートを記憶するステップと、メモリ・アドレスから開始する第1の イベントのために64ビット命令セット・モードでサービス・ルーチンを実行す るステップとを含むことができる。第1の命令セット・モードで前記第2の割込 み指示を処理するステップは、第2の割込みを判断するステップと、第2の割込 みのディスクリプタ項目番号を判断するステップと、ディスクリプタ項目番号に 関連づけられ、メモリ・アドレスを指すディスクリプタ・ゲートを記憶するステ ップと、メモリ・アドレスで始まる第2のイベントのために16ビットおよび3 2ビットの命令セット・モードでサービス・ルーチンを実行するステップとを含 む。図面の簡単な説明 本発明を添付図面の図で図示するが、これは例示であって限定的なものではな い。図では同様の参照番号は同様の要素を指す。 第1図は、本発明の一実施形態のコンピュータ・システムを示すブロック図で ある。 第2図は、本発明の第2の実施形態のプロセッサによって実行されるアプリケ ーション・プログラムを示す図である。 第3図は、本発明の第3の実施形態のプロセッサを示すブロック図である。 第4図は、本発明の第4の実施形態のプロセッサを示すブロック図である。 第5図は、本発明の第5の実施形態のプロセッサを示すブロック図である。 第6図は、本発明の第6の実施形態のプロセッサを示すブロック図である。 第7図は、本発明の第7の実施形態のプロセッサを示すブロック図である。詳細な説明 命令セット間で移行を行うことができる新規なデータ・プロセッサについて説 明する。以下の詳細な説明では、本発明を十分に理解することができるように、 多くの特定の詳細を記載する。しかし、当業者なら本発明はそれらの特定の詳細 がなくても本発明を実施可能であることがわかるであろう。他の場合には、本発 明が不明瞭にならないように、周知の方法、手続き、構成要素、および回路につ いては詳述していない。 以下の詳細な説明では、コンピュータ・メモリ内のデータ・ビットに対する操 作のアルゴリズムおよび記号表現を使用して示している部分がある。これらのア ルゴリズム記述および表現は、データ処理の業者が他の同業者に作業の内容を最 も効果的に伝えるために使用する手段である。本明細書において、および一般に 、アルゴリズムは所望の結果に至る一連の一貫性のあるステップとみなされる。 これらのステップは、物理量の物理的操作を必要とするステップである。通常、 これらの数量は記憶、転送、結合、比較、およびその他の方法で操作可能な電気 信号または磁気信号の形をとるが、必ずしもそうであるとは限らない。主として 一般的な用法であるとの理由から、時にはこれらの信号をビット、値、要素、記 号、文字、項、数値などと呼ぶと好都合な場合があることがわかっている。しか し、これらおよび同様の用語はすべて該当する物理数量に関連づけられるべきも のであり、それらの数量に付された便宜上の符号に過ぎないことを銘記されたい 。以下の説明からわかるように特に明記していない限り、本発明全体を通して「 処理」または「演算」または「計算」または「判断」または「表示」などの用語 を使用 した説明は、コンピュータ・システムのレジスタおよびメモリ内の物理(電子) 量として表されたデータを操作し、コンピュータ・システムのメモリまたはレジ スタあるいはその他のそのような情報記憶装置、伝送装置、または表示装置内の 物理量として同様に表された他のデータに変換するコンピュータ・システムまた は同様の電子計算装置の動作および処理を指すものと理解される。 第1図に、本発明の一実施形態のコンピュータ・システムをブロック図で示す 。このコンピュータ・システムはバス100と、キーボード・インタフェース1 01と、外部メモリ102と、大容量記憶装置103と、プロセッサ104とを 備える。バス100は、単一のバスまたは複数のバスの組合せとすることができ る。たとえば、バス100は業界標準アーキテクチャ(ISA)バス、拡張業界 標準アーキテクチャ(EISA)バス、システム・バス、Xバス、PS/2バス 、周辺構成要素相互接続(PCI)バス、パーソナル・コンピュータ・メモリ・ カード国際協会(PCMCIA)バス、またはその他のバスとすることができる 。バス100はまた、任意のバスの組合せを含むこともできる。バス100はコ ンピュータ・システム中の構成要素間の通信リンクを提供する。キーボード・コ ントローラ101は、専用装置とするか、バス・コントローラやその他のコント ローラなど他の装置内に配置することができる。キーボード・コントローラ10 1は、キーボードをコンピュータ・システムに結合することができるようにし、 キーボードからコンピュータ・システムに信号を伝送する。外部メモリ102は 、ダイナミック・ランダム・アクセス・メモリ(DRAM)装置、スタティック ・ランダム・アクセス・メモリ(SRAM)装置、またはその他のメモリ装置を 含むことができる。外部メモリ102には、プロセッサ104が使用する大容量 記憶装置103およびプロセッサ104からの情報が記憶される。大容量記憶装 置103は、ハード・ディスク・ドライブ、フロッピィ・ディスク・ドライブ、 CD−ROM装置、またはフラッシュ・メモリ装置とすることができる。大容量 記憶装置103は外部メモリ102に情報を供給する。プロセッサ104は、マ イクロプロセッサとすることができ、複数の命令セットの命令を使用したアプリ ケーション・プログラムやオペレーティング・システムなどのコンピュータ・プ ログラムのデコードと実行を行うことができる。 第2図に、本発明の第2の実施形態のプロセッサによって実行されるコンピュ ータ・プログラムを示す。このコンピュータ・プログラムは、第1の命令セット の命令210と、第2の命令セットの命令211を含む。第1の命令セットは複 雑命令セット・コンピューティング(CISC)プロセッサ用の命令セットまた は縮小命令セット・コンピューティング(RISC)プロセッサ用の命令セット とすることができる。第1の命令セットは、16ビットおよび32ビット命令セ ットまたは64ビット命令セットとすることもできる。第2の命令セットは、第 1の命令セットとは異なる命令セットである。これはRISC命令セットまたは CISC命令セットとすることができる。また、64ビット命令セットまたは1 6ビットおよび32ビット命令セットとすることもできる。第1および第2の命 令セットはその他のタイプの命令とすることもできるものと理解される。 命令210は切換え命令212を含む。プロセッサ104は、命令210のう ちの個々の命令のデコードと実行を行う。命令210の個々の命令は第1の命令 セットのものである。したがって、プロセッサ104は、第1の命令セット・モ ードで個々の命令をデコードし、実行する。プロセッサ104は、切換え命令2 12のデコードと実行を行うとき、第1の命令セット・モードから第2の命令セ ット・モードに切り替わる。この例では、切換え命令212はjmpxの後に値 が続いたものである。プロセッサ104はこの値を、プロセッサ104がデコー ドと実行を行う次の命令の場所を示すアドレスに変換することができる。この例 では、このアドレスは4000である。プロセッサは次に、アドレス4000か ら始まる命令のデコードと実行を行い、アドレス4000は命令211の開始も マークする。 命令211は第2の命令セットの個々の命令を含む。プロセッサ104はすで に第2の命令セット・モードに切り替わっており、第2の命令セットの命令のデ コードと実行に進む。プロセッサ104が命令213からの移動をデコードし、 実行すると、プロセッサ104は第1の命令セットの指定されたレジスタ内の値 を第2の命令セットの指定されたレジスタに書き込む。以下の説明で使用するx 86という用語はインテル・コーポレイションが開発したインテル・アーキテク チャを指す。 x86mf命令は、プロセッサ104に対して、指定されたx86整数レジス タ内の値を指定された64ビット整数レジスタに移動するように命令する。する とプロセッサ104は64ビット整数レジスタ内の値を使用して演算を行う。プ ロセッサ104は命令214への移動をデコードし、実行すると、第2の命令セ ットの指定されたレジスタ内の値を第1の命令セット内の指定されたレジスタに ロードする。x86mt命令は、プロセッサ104に対して、指定された64ビ ット整数レジスタから指定されたx86整数レジスタに値をロードするように命 令する。プロセッサ104はx86smf命令215をデコードし、実行すると 、指定されたx86セグメント・セレクタまたはディスクリプタ・レジスタから 指定された64ビット整数レジスタに値をロードする。プロセッサ104は次に 、指定されたx86セグメント・セレクタまたはディスクリプタ・レジスタに入 っている値を使用して演算を行う。プロセッサ104はx86smt命令216 のデコードと実行を行うと、指定された64ビット整数レジスタから指定された x86セグメント・セレクタまたはディスクリプタ・レジスタに値をロードする 。プロセッサ104は、x86fmf命令217をデコードし、実行すると、指 定されたx86浮動小数点レジスタ、浮動小数点制御、状態または例外レジスタ から、第2の命令セットのために指定された浮動小数点レジスタに値をロードす る。プロセッサ104は次に、この指定された浮動小数点レジスタ、浮動小数点 制御、状態、または例外レジスタに入っている値を使用して演算を行う。プロセ ッサ104はx86fmt命令218のデコードと実行を行うと、第2の命令セ ットの指定された浮動小数点レジスタから、指定されたx86浮動小数点レジス タ、浮動小数点制御、状態、または例外レジスタに値をロードする。プロセッサ 104は、切換え命令219のデコードと実行を行うと、第1の命令セット・モ ードに切り替わり、指定されたアドレスから始まる命令を実行する。 この例では、切換え命令219はx86jmpであり、指定されたアドレスは 1011である。表1に、プロセッサ104が受け入れることができるプロセッ サ命令をまとめる。表1内の特定の命令およびそれらの機能の詳述は例示に過ぎ ない。本発明の特定の機能を組み込んだその他の命令も使用可能であるものと理 解されたい。 この実施形態では、プロセッサは2つの別々のセットのレジスタを有し、1セ ットは第1の命令セット・モード用でもう1セットは第2の命令セット・モード 用である。x86mt、x86mf、x86smt、x86smf、x86fm t、およびx86fmf命令を使用して、プロセッサに対してレジスタのこの2 つのセットの間で値を転送するように命令する。他の実施形態では、プロセッサ は1セットのレジスタしか持たず、それが第1の命令セット・モードと第2の命 令セット・モードの両方に使用される。このレジスタが1セットの状況では、x 86mt、x86mf、x86smt、x86smf、x86fmt、およびx 86fmf命令は使用しないことになる。 本発明の第2の実施形態では、プロセッサ104は第1の命令セットまたは第 2の命令セットのオペレーティング・システムを受け入れることができる。この 例では、第1の命令セットはx86コードであり、第2の命令セットは64ビッ ト・コードである。x86コードという用語は、たとえば8086,80286 、80386、80486、およびペンティアム・マイクロプロセッサなどのイ ンテル・コーポレイション製のインテル・アーキテクチャ・マイクロプロセッサ ・ファミリが使用する命令セットを指す。x86コードのオペレーティング・シ ステムの例はMS−DOSである。プロセッサ104を最初にオンにすると、プ ロセッサ104は第1の命令セット・モードで開始し、第1の命令セットのオペ レーティング・システムを受け入れることができる。MS−DOSなどの第1の 命令セットのオペレーティング・システムを使用した場合、プロセッサ104は 第1の命令セット・モードのままである。一方、第2の命令セットのオペレーテ ィング・システムを使用した場合、オペレーティング・システムはjmpxプロ セッサ命令を有することになる。プロセッサ104はjmpx命令を受け取ると 、第2の命令セット・モードに切り替わる。プロセッサ104は次に第2の命令 セット・モードのオペレーティング・システムの残りを実行する。 この実施形態では、プロセッサ104は第1の命令セットと第2の命令セット の両方の命令を持つオペレーティング・システムからも動作することができる。 プロセッサ104は第1の命令セット・モードを使用して第1の命令セットの命 令を実行することができ、第2の命令セット・モードを使用して第2の命令セッ トの命令を実行することもできる。第1の命令セット・モードから第2の命令セ ット・モードへの切換えと、第2の命令セット・モードから第1の命令セット・ モードへの切換えは、プロセッサ104もコンピュータ・システムの他の部分も リブートせずに行うことができる。 プロセッサ104に最初に電源が入れられると、プロセッサ104は第1の命 令セットのオペレーティング・システムまたは第2の命令セットのオペレーティ ング・システムから動作することができる。プロセッサ104は、第1の命令セ ットと第2の命令セットの命令を有する単一の統合型オペレーティング・システ ムからも動作することができる。プロセッサ104は次に、第1の命令セットの アプリケーション・プログラムを実行することができる。第1の命令セットのア プリケーション・プログラムを実行している間、プロセッサ104はイベント指 示を受け取ることができる。このイベントは、例外、機械チェック、または割込 みである。イベント指示を受け取った後、プロセッサ104はその特定のイベン トの性質を判断する。プロセッサ104は、イベントを生成した装置の識別情報 をコンピュータ・システムのプログラム可能割込みコントローラに要求すること によってその特定のイベントの性質を判断する。各装置はその装置に関連づけら れたイベント行と番号を持っている。次にプロセッサ104はその特定のイベン トのディスクリプタ項目番号を判断する。x86オペレーティング・システムか 、またはx86オペレーティング・システムのいくつかの機能を第2の命令セッ トのオペレーティング・システムの一部と共に備えたオペレーティング・システ ムでは、ディスクリプタ項目番号は、プログラム可割込みコントローラにその情 報を要求することによって判断する。プログラム可能割込みコントローラは、初 期設定コマンド・ワード・レジスタに格納されている基底アドレスに、割込サー ビス・ルーチン・レジスタ内の最上位アクティブ・ビットの3ビット二進値を加 える。プロセッサ104は、ディスクリプタ項目番号を受け取り、ディスクリプ タ・イベント番号に4を乗じることによってイベントの実際の開始メモリ・アド レスを求める。プロセッサ104は次にディスクリプタ・テーブルから開始メモ リ・アドレスにあるゲートを取り出し、そのゲート内の命令またはそのゲートが 指す命令を実行する。 x86オペレーティング・システムのいくつかの機能を第2の命令セットのオ ペレーティング・システムの一部と共に有するオペレーティング・システムでは 、このゲートは64ビットのインタセプトを有することができる。ゲートが64 ビットのインタセプトを有する場合、64ビット・インタセプトはjmpxプロ セッサ命令と共に第2の命令セットの命令か、または第2の命令セット・モード に切り替わるための特殊なビット・パターンを含むことになる。あるいは、jm px命令と、第2の命令セットのオペレーティング・システム命令または特殊ビ ット・パターンは、64ビット・インタセプト・ゲート内のアドレス参照によっ てメモリ内の他の場所で探し出すことができる。jmpx命令はプロセッサ10 4を第2の命令セット・モードに切り換える。特殊ビット・パターンもプロセッ サ104を第2の命令セット・モードに切り換える。次に、プロセッサ104は 64ビット・インタセプトの第2の命令セットの命令を実行する。64ビット・ インタセプトの第2の命令セットの命令は、イベントのイベント処理ルーチンで あり、このルーチンは第2の命令セットのオペレーティング・システムの一部を 含む。このようにして、プロセッサ104は第1の命令セットのオペレーティン グ・システムの部分から第2の命令セットのオペレーティング・システムの部分 に切り替わり、第1の命令セット・モードから第2の命令セット・モードに切り 替わる。イベント処理ルーチンの終わりに、プロセッサ104はevret命令 を受け取る。evret命令はプロセッサ104をイベント処理ルーチンからア プリケーション・プログラムに戻し、ターゲット実行環境を復元する。 一方、ゲートが64ビット・インタセプトを持たず、x86ゲートである場合 、プロセッサ104は第1の命令セット・モードのままで、第2の命令セット・ モードには切り替わらない。この場合、ゲートは第2の命令セット・モードへの 切換えを行わせない。x86割込み、呼出し、またはタスク切換え機構を使用す る。 プロセッサ104は第2の命令セットのアプリケーション・プログラムも実行 することができる。このアプリケーション・プログラムを実行している間、プロ セッサ104は上記の例のようにイベント指示を受け取ることができる。このイ ベントは、例外、機械チェック、または割込みである。イベント指示を受け取っ た後、プロセッサ104はその特定のイベントの発信源を判断する。プロセッサ 104はコンピュータ・システム内のプログラム可能割込みコントローラに対し てイベントを生成した装置の識別情報を要求することによってその特定のイベン トの発信源を判断する。各装置はその装置に関連づけられたイベント行と番号を 持っている。プロセッサ104は次に、その特定のイベントのディスクリプタ項 目番号を判断する。 ディスクリプタ項目番号は、プログラム可能割込みコントローラにその情報を 要求することによって判断することができる。プログラム可能割込みコントロー ラは、初期設定コマンド・ワード・レジスタに格納されている基底アドレスに、 割込サービス・ルーチン・レジスタ内の最上位アクティブ・ビットの3ビット二 進値を加える。プログラム可能割込みコントローラは、その特定のイベントの性 質を示す情報も送る。この情報はプロセッサ104によってプロセッサ104の 1つまたは複数の制御レジスタに格納される。プロセッサ104はディスクリプ タ項目番号を受け取り、ディスクリプタ・イベント番号に4を乗じることによっ てイベントのハンドラ・セレクタの実際の開始メモリ・アドレスを求める。プロ セッサ104は次に、ディスクリプタ・テーブルから開始メモリ・アドレスにあ るハンドラ・セレクタを取り出し、そのハンドラ・セレクタ内の命令を実行する 。ハンドラ・セレクタ内の命令を実行する際、プロセッサ104はプロセッサ1 04内の1つまたは複数の制御レジスタからその特定のイベントの性質を示す1 つまたは複数の値を取り出す。プロセッサ104はこの1つまたは複数の値から その特定のイベントのハンドラの実際の開始メモリ・アドレスを判断する。プロ セッサ104は次にその開始メモリ・アドレスにあるハンドラを取り出し、その ハンドラ内の命令またはそのハンドラが指す命令を実行する。プロセッサ104 はこの命令を第2の命令セット・モードで実行する。 第3図に、本発明の第3の実施態様のプロセッサをブロック図で示す。この実 施態様では、プロセッサ104は命令キャッシュ320と、デマルチプレクサ3 21と、x86デコーダ322と、64ビット/デコーダ323と、マルチプレ クサ324と、命令セット・モード・セレクタ325と、実行ユニット326と 、レジスタ327と、レジスタ328とを備える。命令キャッシュ320は外部 メモリに結合され、外部メモリから命令を受け取る。命令は第1の命令セットの 命 令でも第2の命令セットの命令でもよい。命令は、デコードされて実行されるま で命令キャッシュ320に格納される。命令をデコードする適切な時点で、命令 キャッシュ320内の個々の命令がデマルチプレクサ321を介して送られる。 デマルチプレクサ321は、第1の命令セット・モードで命令キャッシュ320 からの命令をデコードするためにx86デコーダ322を選択するか、または第 2の命令セット・モードで命令キャッシュ320からの命令をデコードするため に64ビット・デコーダ323を選択する。デマルチプレクサ321の選択は、 デマルチプレクサ321が命令セット・モード・セレクタ325から受け取った 信号に基づいて行われる。命令セット・モード・セレクタ325からの第1の信 号によって、デマルチプレクサ321はx86デコーダ322と第1の命令セッ ト・モードを選択する。命令セット・モード・セレクタ325からの第2の信号 によって、デマルチプレクサ321は64ビット・デコーダ323と第2の命令 セット・モードを選択する。プロセッサ104に最初に電源が投入されるとき、 プロセッサ104は初期設定プロシージャに応じて、第1の命令セット・モード または第2の命令セット・モードで電源投入されることができる。初期値が命令 セット・モード・セレクタ325に送られ、命令セット・モード・セレクタ32 5はその値に応答して第1の信号または第2の信号を送る。 この例では、プロセッサ104は第1の命令セット・モードで電源投入される 。したがって、デマルチプレクサ321は命令セット・モード・セレクタ325 から最初に第1の信号を受け取り、x86デコーダ322を選択する。命令キャ ッシュ320からデマルチプレクサ321を介して送られた命令はx86デコー ダ322によってデコードされる。次いでその命令はマルチプレクサ324に送 られる。デマルチプレクサ321と同様に、マルチプレクサ324も命令セット ・モード・セレクタ325によって制御される。マルチプレクサ324が命令セ ット・モード・セレクタ325から第1の信号を受け取った場合、マルチプレク サ324はx86デコーダ322を入力として選択する。それに対して、マルチ プレクサ324が命令セット・モード・セレクタ325から第2の信号を受け取 った場合、マルチプレクサ324は64ビット・デコーダ323を入力として選 択する。 マルチプレクサ324の後、命令は次に実行ユニット326に送られる。実行 ユニット326はデコードされた命令を実行する。実行ユニット326はx86 デコーダ322または64ビット・デコーダ323から命令を受け取ることがで きる。実行ユニット326はレジスタ327にも結合され、レジスタ327には プロセッサ104が第1の命令セット・モードのときに値が格納される。実行ユ ニット326はレジスタ328にも結合され、レジスタ328にはプロセッサ1 04が第2の命令セット・モードのときに値が格納される。したがって、実行ユ ニット326は、第2の命令セットのプロセッサ命令を実行している間に、x8 6mf、x86smf、またはx86fmf命令に応答してレジスタ327から 値を取り出して使用することができる。同様に、実行ユニット326はx86m t、x86smt、またはx86fmt命令に応答して、レジスタ327に値を 格納することもできる。x86デコーダ322がjmpx命令をデコードすると き、x86デコーダ322は命令セット・モード・セレクタ325に切換え命令 を送る。命令セット・モード・セレクタ325はこの信号に応答してデマルチプ レクサ321とマルチプレクサ324に第2の信号を送る。この第2の信号によ って、デマルチプレクサ321は命令キャッシュ320から64ビット・デコー ダ323に命令を送る。またこの第2の信号によって、マルチプレクサ324は その入力として64ビット・デコーダ323を選択する。64ビット・デコーダ 323から命令はマルチプレクサ324を介して実行ユニット326に送られる 。64ビット・デコーダ323がx86jmp命令をデコードするとき、64ビ ット・デコーダ323は命令セット・モード・セレクタ325に切換え信号を送 る。命令セット・モード・セレクタ325はこの信号に応答して、第1の信号を デマルチプレクサ321とマルチプレクサ324に送る。第1の信号によって、 デマルチプレクサ321はx86デコーダ322を選択し、マルチプレクサ32 4はx86デコーダ322を入力として選択する。このようにして、プロセッサ 104は第1の命令セット・モードに戻る。 プロセッサ104は、jmpxディスエーブル・レジスタをさらに備えること ができる。jmpxディスエーブル・レジスタは、x86デコーダ322または 命令セット・モード・セレクタ325に結合されている。jmpxディスエーブ ル・レジスタが設定されている場合、jmpx命令は無効化される。jmpx命 令があるとディスエーブル64ビットISA障害になる。プロセッサ104はj mpx命令に応答して第2の命令セット・モードに切り替わらない。同様に、プ ロセッサ104はx86jmpディスエーブル・レジスタも備えることができる 。x86jmpディスエーブル・レジスタは64ビット・デコーダ323または 命令セット・モード・セレクタ325に結合されている。x86jmpディスエ ーブル・レジスタが設定されている場合、x86jmp命令は無効化され、x8 6jmp命令があるとディスエーブルx86ISA障害になる。プロセッサ10 4はx86jmp命令に応答して第1の命令セット・モードに切り替わらない。 あるいは、レジスタ327には、プロセッサ104が第1の命令セット・モー ドのときに値が格納され、プロセッサ104が第2の命令セット・モードのとき にも値が格納される。この場合、レジスタ327はレジスタ328の機能を実行 し、レジスタ328がなくなるかまたはレジスタ327に統合される。したがっ て、1組のレジスタが使用されているので、x86mt、x86mf、x86s mt、x86smf、x86fmt、x86fmfの各命令は使用されないこと になる。 第4図に本発明の第4の実施態様のプロセッサをブロック図で示す。この実施 態様では、プロセッサ104は、命令セット・モード・セレクタ状態機械430 と、命令キャッシュ432と、デコーダ433と、実行ユニット434と、レジ スタ435と、命令キャッシュ436と、デコーダ437と、実行ユニット43 8と、レジスタ439とを備える。状態機械430は外部メモリから命令を受け 取る。状態機械430は、実行ユニット434または実行ユニット438から受 け取った信号に基づいて命令キャッシュ432または命令キャッシュ436を選 択する。実行ユニット438が状態機械430に第1の信号を送った場合、状態 機械430は命令キャッシュ432を選択し、メモリから命令キャッシュ432 に命令を送る。プロセッサ104は第1の命令セット・モードで命令をデコード し、実行する。実行ユニット436が状態機械430に第2の信号を送った場合 、状態機械430は命令キャッシュ436を選択し、メモリから命令キャッシュ 436に命令を送る。この場合、プロセッサ104は第2の命令セット・モード で 命令をデコードし、実行する。 第3の実施態様と同様に、プロセッサ104は電源投入されるとき、初期設定 プロシージャに応じて第1の命令セット・モードまたは第2の命令セット・モー ドで電源投入されることができる。プロセッサ104が第1の命令セット・モー ドで電源投入された場合、最初に実行ユニット438から状態機械430に第1 の信号が送られる。それに対して、プロセッサ104が第2の命令セット・モー ドで電源投入された場合、実行ユニット434から状態機械430に第2の信号 が送られる。 この実施形態では、プロセッサ104は第1の命令セット・モードで電源投入 される。従って、初期値が実行ユニット438に送られ、それによって実行ユニ ット438が状態機械430に第1の信号を送る。外部メモリからの命令が状態 機械430を介して命令キャッシュ432に送られる。命令がプロセッサ104 によってデコードされ、実行されるまで、命令キャッシュ432に第1の命令セ ットの命令が格納される。適切な時点で、個々の命令が命令キャッシュ432か らデコーダ433に送られる。デコーダ433は命令キャッシュ432から送ら れた命令をデコードする。命令キャッシュ432から送られる命令は第1の命令 セットの命令である。第1の命令セットの命令のデコード後、実行ユニット43 4がそれらの命令を実行する。実行ユニット434はレジスタ435に結合され ており、レジスタ435に値を格納する。 実行ユニット434がjmpx命令を実行するとき、実行ユニット434は状 態機械430に第2の信号を送る。状態機械430は第2の信号に応答し、それ 以降の個々の命令の宛先として命令キャッシュ436を選択する。以降の個々の 命令は第2の命令セットの命令である。外部メモリからの個々の命令は命令キャ ッシュ436に格納される。適切な時点で、デコーダ437が命令キャッシュ4 36から個々の命令を取り出し、それらの命令をデコードする。次に実行ユニッ ト438がデコーダ437から送られたデコードされた命令を第2の命令セット ・モードで実行する。実行ユニット438はレジスタ439に結合されており、 レジスタ439に値を格納する。実行ユニット438は実行ユニット434にも 結合され、実行ユニット434はレジスタ435に結合されている。したがって 、 実行ユニット438は、第2の命令セットのプロセッサ命令を実行している間に 、x86mf、x86smf、またはx86fmf命令に応答して、レジスタ4 35から値を取り出して使用することができる。同様に、実行ユニット438は 、x86mt、x86smt、またはx86fmt命令に応答してレジスタ43 5に値を格納することもできる。実行ユニット438はx86jmp命令を実行 するとき、状態機械430に第1の信号を送る。次に、状態機械430は第1の 信号に応答して外部メモリから送られるそれ以降の命令のために命令キャッシュ 432を選択する。このようにして、プロセッサ104は第1の命令セット・モ ードに切り替わって戻ることができる。 プロセッサ104はjmpxディスエーブル・レジスタをさらに備えることが できる。jmpxディスエーブル・レジスタは実行ユニット434に結合されて いる。jmpxディスエーブル・レジスタが設定されている場合、jmpx命令 は無効化され、jmpx命令があるとディスエーブル64ビットISA障害にな る。プロセッサ104はjmpx命令に応答して第2の命令セット・モードに切 り替わらない。同様に、プロセッサ104はx86jmpディスエーブル・レジ スタも備えることができる。x86jmpディスエーブル・レジスタは実行ユニ ット438に結合されている。x86jmpディスエーブル・レジスタが設定さ れている場合、x86jmp命令は無効化され、x86jmp命令があるとディ スエーブルx86ISA障害になる。プロセッサ104はx86jmp命令に応 答して第1の命令セット・モードに切り替わらない。 あるいは、レジスタ435は実行ユニット434と実行ユニット438の両方 に結合されている。レジスタ435には、プロセッサ104が第1の命令セット ・モードのときに値が格納され、プロセッサ104が第2の命令セット・モード のときにも値が格納される。この場合、レジスタ435はレジスタ439の機能 を実行し、レジスタ439がなくなるかまたはレジスタ435に統合される。し たがって、使用されるレジスタは1セットであるため、x86mt、s86mf 、x86smt、x86smf、x86fmt、およびx86fmf命令は使用 されないことになる。 第5図に、本発明の第5の実施態様のプロセッサをブロック図で示す。この実 施態様では、プロセッサ104は、デマルチプレクサ540と、変換機構541 と、命令キャッシュ542と、デコーダ543と、実行ユニット544と、レジ スタ545と、レジスタ546とを備える。デマルチプレクサ540は外部メモ リに結合され、外部メモリから命令を受け取る。命令は第1の命令セットの命令 でも第2の命令セットの命令でもよい。デマルチプレクサ540が、外部メモリ からの命令を第2の命令セットの命令に変換するために変換機構541を選択す るか、または外部メモリからの命令をデコードして実行するまで格納するために 命令キャッシュ542を選択する。このデマルチプレクサ540の選択は、デマ ルチプレクサ540がデコーダ543から受け取った信号に基づいて行われる。 デコーダ543からの第1の信号によってデマルチプレクサ540は変換機構5 41と第1の命令セット・モードを選択する。デコーダ543からの第2の信号 によって、デマルチプレクサ540は命令キャッシュ542と第2の命令セット ・モードを選択する。プロセッサ104が最初に電源投入されたとき、プロセッ サ104は初期設定プロシージャに応じて第1の命令セット・モードまたは第2 の命令セット・モードで電源投入される。初期値がデコーダ543に送られ、デ コーダ543はその値に応答して第1の信号または第2の信号を送る。この例で は、プロセッサ104は第1の命令セット・モードで電源投入される。したがっ て、デマルチプレクサ540は最初にデコーダ543から第1の信号を受け取り 、変換機構541を選択する。外部メモリからデマルチプレクサ540を介して 送られた命令が変換機構541によって第2の命令セットの命令に変換される。 変換機構541は、第1の命令セットの命令を第2の命令セットの命令に変換す る回路を備える。変換された命令は次に命令キャッシュ542に送られる。命令 キャッシュ542には、命令がデコードされて実行されるまで格納される。命令 をデコードする適切な時点で、命令キャッシュ542内の命令をデコードするた めに命令キャッシュ542内の命令がデコーダ543に送られる。命令キャッシ ュ542から送られる命令は第2の命令セットの命令である。デコード後、第2 の命令セットの命令は実行ユニット544に送られる。実行ユニット544はデ コーダ543から送られたデコード済み命令を実行する。実行ユニット544は 、プロセッサ104が第1の命令セット・モードのときに値が格納されるレジス タ 545にも結合されている。実行ユニット544は、プロセッサ104が第2の 命令セット・モードのときに値が格納されるレジスタ546にも結合されている 。したがって、実行ユニット544は、第2の命令セットのプロセッサ命令を実 行している間にx86mf、x86smf、またはx86fmf命令に応答して レジスタ545から値を取り出すことができる。同様に、実行ユニット544は x86mt、x86smt、またはx86fmt命令に応答してレジスタ545 に値を格納することもできる。 デコーダ543がjmpx命令をデコードする場合、デコーダ543はデマル チプレクサ540に第2の信号を送る。この第2の信号によってデマルチプレク サ540は命令キャッシュ542を選択し、外部メモリからの命令を命令キャッ シュ542に送る。このようにして、プロセッサ104は第2の命令セット・モ ードに切り替わる。デコーダ543がx86jmp命令をデコードする場合、デ コーダ543はデマルチプレクサ540に第1の信号を送る。デマルチプレクサ 540はこの第1の信号に応答して変換機構541を選択し、外部メモリからの 命令を変換機構541に送る。このようにして、プロセッサ104は第1の命令 セット・モードに戻ることができる。 プロセッサ104は、jmpxディスエーブル・レジスタをさらに備えること ができる。jmpxディスエーブル・レジスタはデコーダ543に結合されてい る。jmpxディスエーブル・レジスタが設定されている場合、jmpx命令は 無効化され、jmpx命令があるとディスエーブル64ビットISA障害になる 。プロセッサ104はjmpx命令に応答して第2の命令セット・モードに切り 替わらない。同様に、プロセッサ104はx86jmpディスエーブル・レジス タをさらに備えることができる。x86jmpディスエーブル・レジスタはデコ ーダ543に結合されている。x86jmpディスエーブル・レジスタが設定さ れている場合、x86jmp命令は無効化され、x86jmp命令があるとディ スエーブルx86ISA障害になる。プロセッサ104はx86jmp命令に応 答して第1の命令セット・モードに切り替わらない。 あるいは、レジスタ545にはプロセッサ104が第1の命令セット・モード のときに値が格納され、プロセッサ104が第2の命令セット・モードのときに も値が格納される。この場合、レジスタ545はレジスタ546の機能を実行し 、レジスタ546をなくすかレジスタ545に統合する。したがって、使用され るレジスタは1セットであるため、x86mt、x86mf、x86smt、x 86smf、x86fmt、およびx86fmf命令は使用されないことになる 。 第6図に、本発明の第6の実施態様のプロセッサをブロック図で示す。第6の 実施態様のプロセッサは、以下の例外を除いて第5の実施態様のプロセッサと同 様である。命令キャッシュ642が外部メモリに結合されている。デマルチプレ クサ640が命令キャッシュ642に結合されている。変換機構641とデコー ダ643がデマルチプレクサ640に結合されている。デコーダ643は変換機 構641にも結合されている。実行ユニット644がデコーダ643に結合され ている。レジスタ645とレジスタ646が実行ユニット644に結合されてい る。 命令キャッシュ642が外部メモリから命令を受け取る。この命令は第1の命 令セットの命令でも第2の命令セットの命令でもよい。デマルチプレクサ640 が命令キャッシュ642から命令を受け取る。デマルチプレクサ640は命令キ ャッシュ642からの命令を第2の命令セットに変換するように変換機構641 を選択するか、または命令キャッシュ642からの命令をデコードするようにデ コーダ643を選択する。デマルチプレクサ640のこの選択は、デマルチプレ クサ640がデコーダ643から受け取った信号に基づいて行われる。デコーダ 643からの第1の信号によって、デマルチプレクサ640は変換機構641と 第1の命令セット・モードを選択する。デコーダ643からの第2の信号によっ てデマルチプレクサ640はデコーダ643と第2の命令セット・モードを選択 する。プロセッサ104が最初に電源投入されるとき、プロセッサ104は初期 設定プロシージャに応じて第1の命令セット・モードまたは第2の命令セット・ モードで電源投入される。初期値がデコーダ643に送られ、デコーダ643は この値に応答して第1の信号または第2の信号を送る。この例では、プロセッサ 104は第1の命令セット・モードで電源投入される。したがって、デマルチプ レクサ640は最初にデコーダ643から第1の信号を受け取り、変換機構64 1を選択する。命令キャッシュ642からデマルチプレクサ640を介して送ら れた命令が、変換機構641によって第2の命令セットの命令に変換される。変 換機構641は第1の命令セットの命令を第2の命令セットの命令に変換する回 路を備える。変換された命令は次にデコーダ643に送られる。デコード後、第 2の命令セットの命令は実行ユニット644に送られる。実行ユニット644は デコーダ643から送られたデコード済み命令を実行する。実行ユニット644 は、プロセッサ104が第1の命令セット・モードのときに値が格納されるレジ スタ645にも結合されている。実行ユニット644は、プロセッサ104が第 2の命令セット・モードのときに値が格納されるレジスタ646にも結合されて いる。したがって、実行ユニット644は、第2の命令セットのプロセッサ命令 を実行している間に、x86mf、x86smf、またはx86fmf命令に応 答して使用されているレジスタ645から値を取り出すことができる。同様に、 実行ユニット644はx86mt、x86smt、またはx86fmt命令に応 答してレジスタ645に値を格納することもできる。 デコーダ643がjmpx命令をデコードするとき、デコーダ643はデマル チプレクサ640に第2の信号を送る。この第2の信号によって、デマルチプレ クサ640はデコーダ643を選択し、命令キャッシュ642からデコーダ64 3に命令を送る。このようにして、プロセッサ104は第2の命令セット・モー ドに切り替わる。デコーダ643がx86jmp命令をデコードするとき、デコ ーダ643はデマルチプレクサ640に第1の信号を送る、デマルチプレクサ6 40はこの第1の信号に応答して、変換機構641を選択し、命令キャッシュ6 42から変換機構641に命令を送る。このようにして、プロセッサ104は第 1の命令セット・モードに戻ることができる。 プロセッサ104は、jmpxディスエーブル・レジスタも備える。jmpx ディスエーブル・レジスタはデコーダ643に結合されている。jmpxディス エーブル・レジスタが設定されている場合、jmpx命令が無効化され、jmp x命令があるとディスエーブル64ビットISA障害になる。プロセッサ104 はjmps命令に応答して第2の命令セット・モードに切り替わらない。同様に 、プロセッサ104はx86jmpディスエーブル・レジスタも備えることがで きる。x86jmpディスエーブル・レジスタはデコーダ643に結合されてい る。 x86jmpディスエーブル・レジスタが設定されている場合、x86jmp命 令が無効化され、x86jmp命令があるとディスエーブルx86ISA障害に なる。プロセッサ104はx86jmp命令に応答して第1の命令セット・モー ドに切り替わらない。 あるいは、レジスタ645にはプロセッサ104が第1の命令セット・モード のときに値が格納され、プロセッサ104が第2の命令セット・モードのときに も値が格納される。この場合、レジスタ645はレジスタ646の機能を実行し 、レジスタ646はなくすかレジスタ645に統合される。したがって、使用さ れるレジスタは1セットであるため、x86mt、x86mf、x86smt、 x86smf、x86fmt、およびx86fmf命令は使用されないことにな る。 第7図に本発明の第7の実施態様のプロセッサをブロック図で示す。第7の実 施態様のプロセッサは、以下の例外を除いて第6の実施態様のプロセッサと同様 である。命令キャッシュ742が外部メモリに結合されている。デマルチプレク サ740が命令キャッシュ742に結合されている。変換機構741とデコーダ 743がデマルチプレクサ740に結合されている。実行ユニット744がデコ ーダ743と変換機構741に結合されている。レジスタ745とレジスタ74 6が実行ユニット744に結合されている。 命令キャッシュ742が外部メモリから命令を受け取る。この命令は第1の命 令セットの命令でも第2の命令セットの命令でもよい。デマルチプレクサ740 は命令キャッシュ742から命令を受け取る。デマルチプレクサ740は、命令 キャッシュ742からの命令を変換してデコードするように変換機構741を選 択するか、または命令キャッシュ742からの命令をデコードするようにデコー ダ743を選択する。このデマルチプレクサ740の選択は、デマルチプレクサ 740がデコーダ743と変換機構741から受け取った信号に基づいて行われ る。デコーダ743からの第1の信号によって、デマルチプレクサ740は変換 機構741と第1の命令セット・モードを選択する。変換機構741からの第2 の信号によって、デマルチプレクサ740はデコーダ743と第2の命令セット ・モードを選択する。プロセッサ104が最初に電源投入されるとき、プロセッ サ104は初期設定プロシージャに応じて第1の命令セット・モードまたは第2 の命令セット・モードで電源投入される。初期値がデコーダ743および変換機 構741に送られる。この値に応答してデコーダ743または変換機構741が 第1の信号または第2の信号を送る。この例では、プロセッサ104は第1の命 令セット・モードで電源投入される。したがって、デマルチプレクサ740は最 初にデコーダ743から第1の信号を受け取り、変換機構741を選択する。命 令キャッシュ742からデマルチプレクサ740を介して送られた命令が変換機 構741によって変換され、デコードされる。変換機構741は第1の命令セッ トの命令の変換とデコードを行う回路を備える。変換され、デコードされた命令 は次に実行ユニット744に送られ、実行ユニット744はデコード済み命令を 実行する。実行ユニット744は、プロセッサ104が第1の命令セット・モー ドのときに値が格納されるレジスタ745にも結合されている。実行ユニット7 44は、プロセッサ104が第2の命令セット・モードのときに値が格納される レジスタ746にも結合されている。したがって、実行ユニット744は、第2 の命令セットのプロセッサ命令を実行している間に、x86mf、x86smf 、またはx86fmf命令に応答して、使用されているレジスタ745から値を 取り出すことができる。同様に、実行ユニット744はx86mt、x86sm t、またはx86fmt命令に応答してレジスタ745に値を格納することもで きる。 変換機構741がjmpx命令を受け取る場合、変換機構741はデマルチプ レクサ740に第2の信号を送る。この第2の信号によってデマルチプレクサ7 40はデコーダ743を選択し、命令キャッシュ742からデコーダ743に命 令を送る。このようにして、プロセッサ104は第2の命令セット・モードに切 り替わる。デコーダ743がx86jmp命令をデコードする場合、デコーダ7 43はデマルチプレクサ740に第1の信号を送る。デマルチプレクサ740は この第1の信号に応答して変換機構741を選択し、命令キャッシュ742から 変換機構741に命令を送る。このようにして、プロセッサ104は第1の命令 セット・モードに戻ることができる。 プロセッサ104はjmpxディスエーブル・レジスタをさらに備えることが できる。jmpxディスエーブル・レジスタは変換機構741に結合されている 。jmpxディスエーブル・レジスタが設定されている場合、jmpx命令は無 効 化され、jmpx命令があるとディスエーブル64ビットISA障害になる。プ ロセッサ104はjmpx命令に応答して第2の命令セット・モードに切り替わ らない。同様に、プロセッサ104はx86jmpディスエーブル・レジスタを さらに備えることができる。x86jmpディスエーブル・レジスタはデコーダ 743に結合される。x86jmpディスエーブル・レジスタが設定されている 場合、x86jmp命令は無効化され、x86jmp命令があるとディスエーブ ルx86ISA障害になる。プロセッサ104はx86jmp命令に応答して第 1の命令セット・モードに切り替わらない。 あるいは、レジスタ745にはプロセッサ104が第1の命令セット・モード のときに値を格納することができ、プロセッサ104が第2の命令セット・モー ドのときにも値を格納することができる。この場合、レジスタ745はレジスタ 746の機能を実行し、レジスタ746はなくすかレジスタ745に統合する。 したがって、使用されるレジスタは1セットであるため、x86mt、x86m f、x86smt、x86smf、x86fmt、およびx86fmf命令は使 用されないことになる。 以上の説明では、本発明について特定の実施形態を参照しながら説明した。し かし、請求の範囲に記載されている本発明のより広い精神および範囲から逸脱す ることなく、本発明に様々な修正および変更を加えることができることは明らか であろう。したがって、本明細書および図面は限定的なものではなく例示的なも のとみなされるべきである。 当業者なら以上の説明を読めば本発明の多くの変更および修正がわかるであろ が、図示し、例示のために説明した特定の実施態様は決して限定的なものとみな されることを意図したものではない。したがって、特定の実施態様の詳細に関す る言及は、請求の範囲を限定することを意図したものではなく、請求の範囲は本 質的に本発明にとって不可欠であるとみなされる特徴のみを記載したものである 。 以上、プロセッサにおいて命令セット間で移行を行う方法および装置について 説明した。
【手続補正書】特許法第184条の8第1項 【提出日】1996年12月6日 【補正内容】補正請求の範囲 1.第1および第2の命令セット・アーキテクチャ(ISA)の命令を含むプロ グラムを実行するデータ・プロセッサであって、 前記プログラムの命令のシーケンスを格納する1つまたは複数のキャッシュ・ メモリと、 前記1つまたは複数のキャッシュ・メモリに結合され、前記第1のISAから の前記シーケンス内の第1の命令および前記第2のISAからの前記シーケンス 内の第2の命令のデコードおよび実行を行う命令処理ユニットと、 前記第1の命令の実行に付随するデータが第1のレジスタ・ファイルに格納さ れ、前記第2の命令に付随するデータが第2のレジスタ・ファイルに格納される 、前記第1および第2のISAに関連づけられた前記第1および第2のレジスタ ・ファイルと を含むデータ・プロセッサ。 2.前記第1のISAが複雑命令セット・コンピュータ・アーキテクチャ(CI SC)タイプであり、前記第2のISAが縮小命令セット・コンピュータ・アー キテクチャ(RISC)タイプであることを特徴とする、請求項1に記載のデー タ・プロセッサ。 3.前記第2のISAが64ビット対応であることを特徴とする、請求項1に記 載のデータ・プロセッサ。 4.前記命令処理ユニットが、 前記1つまたは複数のキャッシュ・メモリに結合され、前記第1の命令をデコ ードする第1のデコーダと、 前記1つまたは複数のキャッシュ・メモリに結合され、前記第2の命令をデコ ードする第2のデコーダと、 前記第1および第2のデコーダに結合された入力と、出力とを有するマルチプ レクサと、 前記マルチプレクサの前記出力に結合され、第1および第2の命令を実行し、 前記第1の命令の第1の結果が前記第1のレジスタ・ファイルに書き込まれ、前 記第2の命令の第2の結果が前記第2のレジスタ・ファイルに書き込まれる実行 ユニットとを備えることを特徴とする、請求項1に記載のデータ・プロセッサ。 5.前記命令処理ユニットが、 前記第1および第2のデコーダと前記マルチプレクサとに結合され、ISA切 換え命令に応答して前記マルチプレクサの前記出力を選択する選択信号を生成す る命令セット・モード・セレクタ(ISMS)をさらに備えることを特徴とする 、請求項4に記載のデータ・プロセッサ。 6.コンピュータ・システムが、 コンピュータ・システム内の構成要素間の通信リンクを行うバスと、 前記バスに結合され、情報を記憶する外部メモリと、 前記外部メモリと前記バスとに結合され、前記第1の命令と前記第2の命令が 単一のコンピュータ・プログラムからのものである第1の命令セットの第1の命 令および第2の命令セットの第2の命令のデコードと実行を行うマイクロプロセ ッサとを備え、前記マイクロプロセッサは、 第1および第2のレジスタ・ファイルと、 前記第1の命令と前記第2の命令とを格納する命令キャッシュと、 前記命令キャッシュに結合され、前記第1の命令をデコードする第1のデコー ダと、 前記命令キャッシュに結合され、前記第2の命令をデコードする第2のデコー ダと、 前記第1および第2のデコーダに結合された入力と、出力とを有するマルチプ レクサと、 前記マルチプレクサの前記出力に結合され、第1および第2の命令を実行し、 前記第1の命令の第1の結果が前記第1のレジスタ・ファイルに書き込まれ、前 記第2の命令の第2の結果が前記第2のレジスタ・ファイルに書き込まれる実行 ユニットと を備えるコンピュータ・システム。 7.前記第1の命令セットが複雑命令セット・コンピュータ(CISC)アーキ テクチャ用に調整され、前記第2の命令セットが縮小命令セット・コンピュータ (RISC)アーキテクチャ用に調整されていることを特徴とする、請求項6に 記載のコンピュータ・システム。 8.前記実行ユニットが、 前記第1のデコーダに結合され、前記第1の命令を実行する第1の実行ユニッ トと、 前記第2のデコーダに結合され、前記第2の命令を実行する第2の実行ユニッ トとを備えることを特徴とする、請求項7に記載のコンピュータ・システム。 9.前記マイクロプロセッサが、 前記命令キャッシュに結合され、前記第1の命令セットの前記第1の命令を前 記第2の命令セットの対応する命令に変換するように調整され、前記命令キャッ シュに前記第2の命令セットの前記対応する命令が格納される変換ユニットとを さらに備えることを特徴とする、請求項6に記載のコンピュータ・システム。 10.プロセッサでコンピュータ・プログラムの命令を実行する方法であって、 (a)第1の命令セットの第1の命令を実行するステップと、 (b)前記プロセッサを第1の命令セット動作モードから第2の命令セット動 作モードに変える第1の切換え命令を実行するステップと、 (c)第2の命令セットの第2の命令を実行するステップと を含む方法。 11.(d)前記プロセッサを前記第2の命令セット動作モードから前記第1の 命令セット動作モードに変える第2の切換え命令を実行するステップと、 (e)前記第1の命令セットの第2の命令を実行するステップとをさらに含む 、請求項10に記載の方法。 12.ステップ(e)によって前記第1の命令セットに関連づけられたレジスタ から前記第2の命令セットに関連づけられたレジスタにデータ値が移動すること を特徴とする、請求項11に記載の方法。 13.第1と第2の命令セット・アーキテクチャ(ISA)の命令を含むコンピ ュータ・プログラムを実行するデータ・プロセッサであって、 前記第1のISAに対応する第1の動作モードになっている間に前記第1の命 令を実行し、前記第2のISAに対応する第2の動作モードになっている間に前 記第2の命令を実行する手段と、 前記第2のモードが前記第2のISAに対応する、前記第1の動作モードと前 記第2の動作モードとを切り換える手段と を備えるデータ・プロセッサ。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AP(KE,LS,MW,SD,SZ,U G),UA(AZ,BY,KG,KZ,RU,TJ,TM ),AL,AM,AT,AT,AU,AZ,BB,BG ,BR,BY,CA,CH,CN,CZ,CZ,DE, DE,DK,DK,EE,EE,ES,FI,FI,G B,GE,HU,IS,JP,KE,KG,KP,KR ,KZ,LK,LR,LS,LT,LU,LV,MD, MG,MK,MN,MW,MX,NO,NZ,PL,P T,RO,RU,SD,SE,SG,SI,SK,SK ,TJ,TM,TR,TT,UA,UG,UZ,VN (72)発明者 アルパート,ドナルド・ビィ アメリカ合衆国・95051・カリフォルニア 州・サンタクララ・クレアモント アヴェ ニュ・73

Claims (1)

  1. 【特許請求の範囲】 1.第1の命令と第2の命令とが単一のコンピュータ・プログラムからのもので ある、第1の命令セットの前記第1の命令と第2の命令セットの前記第2の命令 とを受け取ることができるバス・インタフェース・ユニットと、 前記バス・インタフェース・ユニットに結合され、前記バス・インタフェース ・ユニットから前記第1の命令セットの前記第1命令と前記第2の命令セットの 前記第2の命令を伝送することができる内部バスと、 前記内部バスに結合され、前記第1の命令セットの前記第1の命令および前記 第2の命令セットの前記第2の命令のデコードと実行を行うことができる命令ユ ニットとを備えるデータ・プロセッサ。 2.前記第1の命令セットが複雑命令セットであり、前記第2の命令セットが縮 小命令セットであることを特徴とする、請求項1に記載のプロセッサ。 3.前記第1の命令セットが16ビットおよび32ビット命令セットであり、前 記第2の命令セットが64ビット命令セットであることを特徴とする、請求項1 に記載のプロセッサ。 4.前記命令ユニットが、 前記内部バスに結合され、前記第1の命令と前記第2の命令を格納することが できる命令キャッシュと、 前記命令キャッシュに結合され、前記第1の命令セットの前記第1の命令をデ コードすることができる第1のデコーダと、 前記命令キャッシュに結合され、前記第2の命令セットの前記第2の命令をデ コードすることができる第2のデコーダと、 前記第1のデコーダと前記第2のデコーダとに結合され、信号に応答して前記 第1のデコーダと前記第2のデコーダとのうちから選択することができるマルチ プレクサと、 前記マルチプレクサに結合され、前記マルチプレクサからの選択されたデコー ド済み命令を実行することができる実行ユニットとを備えることを特徴とする、 請求項1に記載のプロセッサ。 5.前記命令ユニットが、 前記第1のデコーダと前記第2のデコーダと前記マルチプレクサとに結合され 、現行モードを前記第1のデコーダまたは前記第2のデコーダから切り換える命 令に応答して前記信号を前記マルチプレクサに送ることができる命令セット・モ ード・セレクタをさらに備えることを特徴とする、請求項4に記載のプロセッサ 。 6.前記命令ユニットが、前記命令キャッシュに結合され、前記信号に応答して 前記第1のデコーダまたは前記第2のデコーダを選択することができるデマルチ プレクサをさらに備え、前記命令セット・モード・セレクタが現行モードを前記 第1のデコーダまたは前記第2のデコーダから切り換える命令に応答して前記デ マルチプレクサに前記信号を送ることができることを特徴とする、請求項5に記 載のプロセッサ。 7.前記命令ユニットが、 前記内部バスに結合され、前記第1の命令を格納することができる第1の命令 キャッシュと、 前記第1の命令キャッシュに結合され、前記第1の命令をデコードすることが できる第1のデコーダと、 前記第1のデコーダに結合され、前記第1の命令を実行することができ、信号 に応答して実行を開始する第1の実行ユニットと、 前記内部バスに結合され、前記第2の命令を格納することができる第2の命令 キャッシュと、 前記第2の命令キャッシュに結合され、前記第2の命令をデコードすることが できる第2のデコーダと、 前記第2のデコーダに結合され、前記第2の命令を実行することができ、前記 信号に応答して実行を開始する第2の実行ユニットとを備えることを特徴とする 、請求項1に記載のプロセッサ。 8.前記第1の実行ユニットが、第1の切換え命令に応答して実行を開始するよ うに前記第2の実行ユニットに前記信号を送り、前記第1の実行ユニットが前記 第1の切換え命令に応答して実行を中断することを特徴とする、請求項7に記載 のプロセッサ。 9.前記第2の実行ユニットが、第2の切換え命令に応答して実行を開始するよ うに前記第1の実行ユニットに前記信号を送り、前記第2の実行ユニットが前記 第2の切換え命令に応答して実行を中断することを特徴とする、請求項7に記載 のプロセッサ。 10.前記命令ユニットが、 前記内部バスに結合され、前記第1の命令セットの前記第1の命令を前記第2 の命令セットの対応する命令に変換することができる変換機構と、 前記内部バスと前記変換機構とに結合され、前記第2の命令セットの前記第2 の命令を格納することができ、前記第2の命令セットの前記対応する命令を格納 することができる命令キャッシュと、 前記命令キャッシュに結合され、前記第2の命令セットの前記第2の命令を実 行することができ、前記第2の命令セットの前記対応する命令を実行することが できる実行ユニットとを備えることを特徴とする、請求項1に記載のプロセッサ 。 11.前記命令ユニットが、 前記命令キャッシュに結合され、前記第2の命令セットの前記第2の命令をデ コードすることができ、前記第2の命令セットの前記対応する命令をデコードす ることができるデコーダをさらに備えることを特徴とする、請求項10に記載の プロセッサ。 12.前記変換機構が状態機械を備えることを特徴とする、請求項10に記載の プロセッサ。 13.前記変換機構が論理装置を備えることを特徴とする、請求項10に記載の プロセッサ。 14.前記プロセッサが、マイクロコード命令を記憶する制御読取り専用メモリ 装置をさらに備え、前記変換機構が前記マイクロコード命令を受け取って前記第 1の命令セットの前記第1の命令を前記第2の命令セットの対応する命令に変換 することを特徴とする、請求項10に記載のプロセッサ。 15.前記命令ユニットが、 前記内部バスと前記変換機構とに結合され、前記第2の命令セットの前記第2 の命令を格納することができ、前記第1の命令セットの前記第1の命令を格納す ることができる命令キャッシュと、 前記命令キャッシュに結合され、前記第1の命令セットの前記第1の命令を前 記第2の命令セットの対応する命令に変換することができる変換機構と、 前記命令キャッシュと前記変換機構とに結合され、前記第2の命令セットの前 記第2の命令をデコードすることができ、前記第2の命令セットの前記対応する 命令をデコードすることができるデコーダと、 前記デコーダに結合され、前記第2の命令セットの前記第2の命令を実行する ことができ、前記第2の命令セットの前記対応する命令を実行することができる 実行ユニットとを備えることを特徴とする、請求項1に記載のプロセッサ。 16.コンピュータ・システム内の構成要素間に通信リンクを提供するバスと、 前記バスに結合され、キーボードと前記コンピュータ・システムとの結合を可 能にするキーボード・コントローラと、 前記バスに結合され、情報を記憶することができる外部メモリと、 前記外部メモリと前記バスとに結合され、前記第1の命令と前記第2の命令が 単一のコンピュータ・プログラムからのものである第1の命令セットの第1の命 令および第2の命令セットの第2の命令のデコードと実行を行うことができるマ イクロプロセッサとを備えるコンピュータ・システム。 17.前記第1の命令セットが複雑命令セットで、前記第2の命令セットが縮小 命令セットであることを特徴とする、請求項16に記載のコンピュータ・システ ム。 18.前記マイクロプロセッサが、 前記第1の命令と前記第2の命令を格納することができる命令キャッシュと、 前記命令キャッシュに結合され、前記第1の命令セットの前記第1の命令をデ コードすることができる第1のデコーダと、 前記命令キャッシュに結合され、前記第2の命令セットの前記第2の命令をデ コードすることができる第2のデコーダと、 前記第1のデコーダと前記第2のデコーダとに結合され、信号に応答して前記 第1のデコーダと前記第2のデコーダとのうちから選択することができる第1の マルチプレクサと、 前記マルチプレクサに結合され、前記マルチプレクサからの選択された命令を 実行することができる実行ユニットとを備えることを特徴とする、請求項16に 記載のコンピュータ・システム。 19.前記マイクロプロセッサが、 前記第1の命令を格納することができる第1の命令キャッシュと、 前記第1の命令キャッシュに結合され、前記第1の命令をデコードすることが できる第1のデコーダと、 前記第1のデコーダに結合され、前記第1の命令を実行することができ、信号 に応答して実行を開始する第1の実行ユニットと、 前記第2の命令を格納することができる第2の命令キャッシュと、 前記第2の命令キャッシュに結合され、前記第2の命令をデコードすることが できる第2のデコーダと、 前記第2のデコーダに結合され、前記第2の命令を実行することができ、前記 信号に応答して実行を開始する第2の実行ユニットとを備えることを特徴とする 、請求項16に記載のコンピュータ・システム。 20.前記マイクロプロセッサが、 前記第1の命令セットの前記第1の命令を前記第2の命令セットの対応する命 令に変換することができる変換機構と、 前記変換機構に結合され、前記第2の命令セットの前記第2の命令を格納する ことができ、前記第2の命令セットの前記対応する命令を格納することができる 命令キャッシュと、 前記命令キャッシュに結合され、前記第2の命令セットの前記第2の命令を実 行することができ、前記第2の命令セットの前記対応する命令を実行することが できる実行ユニットとを備えることを特徴とする、請求項16に記載のコンピュ ータ・システム。 21.前記マイクロプロセッサが、 前記命令キャッシュに結合され、前記第2の命令セットの前記第2の命令をデ コードすることができ、前記第2の命令セットの前記対応する命令をデコードす ることができるデコーダをさらに備えることを特徴とする、請求項20に記載の コンピュータ・システム。 22.プロセッサにおいて、コンピュータ・プログラムの命令を実行する方法で あって、 第1の命令セットの第1の命令を実行するステップと、 第1の切換え命令を実行するステップと、 第1の命令セット・モードから第2の命令セット・モードに切り替わるステッ プと、 第2の命令セットの第2の命令を実行するステップとを含む方法。 23.前記第1の切換え命令がjmpxであることを特徴とする、請求項22に 記載の方法。 24.前記第1の切換え命令がx86jmpであることを特徴とする、請求項2 2に記載の方法。 25.第2の切換え命令を実行するステップと、 前記第2の命令セット・モードから前記第1の命令セット・モードに切り替わ るステップと、 前記第1の命令セットの第2の命令を実行するステップとをさらに含む、請求 項22に記載の方法。 26.前記第2の命令セットの前記第2の命令が前記第1の命令セットのレジス タから前記第2の命令セットのレジスタに値を移動する命令であることを特徴と する、請求項22に記載の方法。 27.値を移動する前記命令がx86mfであることを特徴とする、請求項26 に記載の方法。 28.値を移動する前記命令がx86smfであることを特徴とする、請求項2 6に記載の方法。 29.値を移動する前記命令がx86fmfであることを特徴とする、請求項2 6に記載の方法。 30.値を移動する前記命令がx86mtであることを特徴とする、請求項26 に記載の方法。 31.値を移動する前記命令がx86smtであることを特徴とする、請求項2 6に記載の方法。 32.値を移動する前記命令がx86fmtであることを特徴とする、請求項2 6に記載の方法。 33.プロセッサにおいて、コンピュータ・プログラムの命令を実行する方法で あって、 第1の命令セット・モードで第1の命令セットの第1の命令を実行するステッ プと、 前記第1の命令セット・モードで第1の割込み指示を受け取るステップと、 第2の命令セット・モードで前記第1の割込み指示を処理するステップと、 前記第1の命令セット・モードに戻るステップと、 前記第1の命令セット・モードで第2の割込み指示を受け取るステップと、 前記第1の命令セット・モードで前記第2の割込み指示を処理するステップと を含む方法。 34.前記第1の命令セット・モードが複雑命令セット・モードであり、前記第 2の命令セット・モードが縮小命令セット・モードであることを特徴とする、請 求項33に記載の方法。 35.前記第1の命令セット・モードが縮小命令セット・モードであり、前記第 2の命令セット・モードが複雑命令セット・モードであることを特徴とする、請 求項33に記載の方法。 36.前記第1の命令セット・モードが64ビット命令セット・モードであり、 前記第2の命令セット・モードが16ビットおよび32ビット命令セット・モー ドであることを特徴とする、請求項33に記載の方法。 37.前記第1の命令セット・モードに戻るステップが、IRET命令を実行す るステップを含むことを特徴とする、請求項33に記載の方法。 38.前記第1の命令セット・モードが16ビットおよび32ビット命令セット ・モードであり、前記第2の命令セット・モードが64ビット命令セット・モー ドであることを特徴とする、請求項33に記載の方法。 39.第2の命令セット・モードで前記第1の割込み指示を処理するステップが 、 前記第1の割込みを判断するステップと、 前記第1の割込みのディスクリプタ項目番号を判断するステップと、 前記ディスクリプタ項目番号に関連づけられ、メモリ・アドレスを指す64ビ ット・インタセプト・ゲートを記憶するステップと、 前記メモリ・アドレスから始まる前記第1のイベントのために前記64ビット 命令セット・モードでサービス・ルーチンを実行するステップとを含むことを特 徴とする、請求項33に記載の方法。 40.前記第1の命令セット・モードで前記第2の割込み指示を処理するステッ プが、 前記第2の割込みを判断するステップと、 前記第2の割込みのディスクリプタ項目番号を判断するステップと、 前記ディスクリプタ項目番号に関連づけられ、メモリ・アドレスを指すディス クリプタ・ゲートを記憶するステップと、 前記メモリ・アドレスから始まる前記第2のイベントのために前記16ビット および32ビット命令セット・モードでサービス・ルーチンを実行するステップ とを含むことを特徴とする、請求項33に記載の方法。 41.前記第1の命令セット・モードに戻るステップが、EVRET命令を実行 するステップを含むことを特徴とする、請求項33に記載の方法。 42.コンピュータ・プログラムの命令を実行するデータ・プロセッサであって 、 第1の命令セットの第1の命令を実行する手段と、 第1の切換え命令を実行する手段と、 第1の命令セット・モードから第2の命令セット・モードに切り替わる手段と 、 第2の命令セットの第2の命令を実行する手段とを備えるデータ・プロセッサ 。 43.コンピュータ・プログラムの命令を実行するデータ・プロセッサであって 、 第1の命令セット・モードで第1の命令セットの第1の命令を実行する手段と 、 前記第1の命令セット・モードで第1のイベント指示を受け取る手段と、 第2の命令セット・モードで前記第1のイベント指示を処理する手段と、 前記第1の命令セット・モードに戻る手段と、 前記第1の命令セット・モードで第2のイベント指示を受け取る手段と、 前記第1の命令セット・モードで前記第2のイベント指示を処理するステップと を備えるデータ・プロセッサ。
JP8524358A 1995-02-10 1996-02-05 プロセッサにおいて命令セット間の移行を行う方法および装置 Pending JPH11503846A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/386,931 US5638525A (en) 1995-02-10 1995-02-10 Processor capable of executing programs that contain RISC and CISC instructions
US08/386,931 1995-02-10
PCT/US1996/001516 WO1996024895A1 (en) 1995-02-10 1996-02-05 Method and apparatus for transitioning between instruction sets in a processor

Publications (1)

Publication Number Publication Date
JPH11503846A true JPH11503846A (ja) 1999-03-30

Family

ID=23527690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8524358A Pending JPH11503846A (ja) 1995-02-10 1996-02-05 プロセッサにおいて命令セット間の移行を行う方法および装置

Country Status (6)

Country Link
US (1) US5638525A (ja)
EP (1) EP0808485A4 (ja)
JP (1) JPH11503846A (ja)
KR (1) KR100271947B1 (ja)
AU (1) AU4775796A (ja)
WO (1) WO1996024895A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013546100A (ja) * 2010-12-16 2013-12-26 マイクロソフト コーポレーション セキュリティサンドボックス
JP2017513114A (ja) * 2014-03-18 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アーキテクチャ・モードの構成
US10585667B2 (en) 2004-03-31 2020-03-10 Intel Corporation Method and system to provide user-level multithreading
US10747582B2 (en) 2014-03-18 2020-08-18 International Business Machines Corporation Managing processing associated with selected architectural facilities

Families Citing this family (154)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2290395B (en) * 1994-06-10 1997-05-28 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
US5889973A (en) * 1995-03-31 1999-03-30 Motorola, Inc. Method and apparatus for selectively controlling interrupt latency in a data processing system
US6408386B1 (en) * 1995-06-07 2002-06-18 Intel Corporation Method and apparatus for providing event handling functionality in a computer system
JP3451595B2 (ja) * 1995-06-07 2003-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ
US5926642A (en) * 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
US5848284A (en) * 1995-11-28 1998-12-08 Intel Corporation Method of transferring data between moderately coupled integer and floating point units
WO1997022922A1 (en) * 1995-12-15 1997-06-26 Intel Corporation Instruction encoding techniques for microcontroller architecture
US5930490A (en) * 1996-01-02 1999-07-27 Advanced Micro Devices, Inc. Microprocessor configured to switch instruction sets upon detection of a plurality of consecutive instructions
US5802350A (en) * 1996-01-18 1998-09-01 International Business Machines Corporation System and method for selecting an interrupt system based upon the operating system of a multiprocessor system
KR100618756B1 (ko) * 1996-01-24 2007-05-04 선 마이크로시스템즈 인코퍼레이티드 네트워크또는로컬메모리로부터수신된명령세트를실행하는프로세서및컴퓨터시스템
DE69734399D1 (de) * 1996-01-24 2006-03-02 Sun Microsystems Inc Verfahren und vorrichtung zur stapel-cachespeicherung
JP3623840B2 (ja) 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
US5790824A (en) * 1996-03-18 1998-08-04 Advanced Micro Devices, Inc. Central processing unit including a DSP function preprocessor which scans instruction sequences for DSP functions
US5987590A (en) * 1996-04-02 1999-11-16 Texas Instruments Incorporated PC circuits, systems and methods
US6179489B1 (en) 1997-04-04 2001-01-30 Texas Instruments Incorporated Devices, methods, systems and software products for coordination of computer main microprocessor and second microprocessor coupled thereto
US6711667B1 (en) * 1996-06-28 2004-03-23 Legerity, Inc. Microprocessor configured to translate instructions from one instruction set to another, and to store the translated instructions
US5958061A (en) * 1996-07-24 1999-09-28 Transmeta Corporation Host microprocessor with apparatus for temporarily holding target processor state
US6199152B1 (en) 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5925124A (en) * 1997-02-27 1999-07-20 International Business Machines Corporation Dynamic conversion between different instruction codes by recombination of instruction elements
US5909567A (en) * 1997-02-28 1999-06-01 Advanced Micro Devices, Inc. Apparatus and method for native mode processing in a RISC-based CISC processor
US5909559A (en) * 1997-04-04 1999-06-01 Texas Instruments Incorporated Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width
US6105119A (en) * 1997-04-04 2000-08-15 Texas Instruments Incorporated Data transfer circuitry, DSP wrapper circuitry and improved processor devices, methods and systems
US5930491A (en) * 1997-06-18 1999-07-27 International Business Machines Corporation Identification of related instructions resulting from external to internal translation by use of common ID field for each group
US6230259B1 (en) 1997-10-31 2001-05-08 Advanced Micro Devices, Inc. Transparent extended state save
US6438679B1 (en) * 1997-11-03 2002-08-20 Brecis Communications Multiple ISA support by a processor using primitive operations
US6021484A (en) * 1997-11-14 2000-02-01 Samsung Electronics Co., Ltd. Dual instruction set architecture
US6134650A (en) * 1997-12-12 2000-10-17 Advanced Micro Devices, Inc. Apparatus and method for predicting a first scanned instruction as microcode instruction prior to scanning predecode data
US6480952B2 (en) 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
US6308255B1 (en) 1998-05-26 2001-10-23 Advanced Micro Devices, Inc. Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system
US6988183B1 (en) * 1998-06-26 2006-01-17 Derek Chi-Lan Wong Methods for increasing instruction-level parallelism in microprocessors and digital system
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6430674B1 (en) 1998-12-30 2002-08-06 Intel Corporation Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time
US6253310B1 (en) * 1998-12-31 2001-06-26 Intel Corporation Delayed deallocation of an arithmetic flags register
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US7941647B2 (en) * 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US6826748B1 (en) 1999-01-28 2004-11-30 Ati International Srl Profiling program execution into registers of a computer
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US8121828B2 (en) 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7254806B1 (en) 1999-08-30 2007-08-07 Ati International Srl Detecting reordered side-effects
JP2001142692A (ja) * 1999-10-01 2001-05-25 Hitachi Ltd 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
JP2001195250A (ja) * 2000-01-13 2001-07-19 Mitsubishi Electric Corp 命令トランスレータ、トランスレータ付命令メモリおよびそれらを用いたデータ処理装置
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US6618801B1 (en) 2000-02-02 2003-09-09 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing two architectures in a chip using bundles that contain microinstructions and template information
US7353368B2 (en) * 2000-02-15 2008-04-01 Intel Corporation Method and apparatus for achieving architectural correctness in a multi-mode processor providing floating-point support
US7171543B1 (en) * 2000-03-28 2007-01-30 Intel Corp. Method and apparatus for executing a 32-bit application by confining the application to a 32-bit address space subset in a 64-bit processor
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US6895494B1 (en) * 2000-06-26 2005-05-17 Texas Instruments Incorporated Sub-pipelined and pipelined execution in a VLIW
US20020004897A1 (en) * 2000-07-05 2002-01-10 Min-Cheng Kao Data processing apparatus for executing multiple instruction sets
US7162612B2 (en) * 2000-08-16 2007-01-09 Ip-First, Llc Mechanism in a microprocessor for executing native instructions directly from memory
US20020069402A1 (en) * 2000-10-05 2002-06-06 Nevill Edward Colles Scheduling control within a system having mixed hardware and software based instruction execution
GB2367653B (en) 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
GB2367654B (en) 2000-10-05 2004-10-27 Advanced Risc Mach Ltd Storing stack operands in registers
EP1197847A3 (en) * 2000-10-10 2003-05-21 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US7149878B1 (en) 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
GB2369464B (en) 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
US7076771B2 (en) 2000-12-01 2006-07-11 Arm Limited Instruction interpretation within a data processing system
US7873814B1 (en) * 2000-12-22 2011-01-18 Lsi Corporation Microcode based hardware translator to support a multitude of processors
US6775892B2 (en) * 2000-12-22 2004-08-17 Diebolt International, Inc. Retaining ring installation tool
JP2002215387A (ja) * 2001-01-22 2002-08-02 Mitsubishi Electric Corp 命令トランスレータを備えたデータ処理装置およびメモリインタフェース装置
US7356673B2 (en) * 2001-04-30 2008-04-08 International Business Machines Corporation System and method including distributed instruction buffers for storing frequently executed instructions in predecoded form
GB2376099B (en) * 2001-05-31 2005-11-16 Advanced Risc Mach Ltd Program instruction interpretation
GB2376098B (en) * 2001-05-31 2004-11-24 Advanced Risc Mach Ltd Unhandled operation handling in multiple instruction set systems
GB2376097B (en) 2001-05-31 2005-04-06 Advanced Risc Mach Ltd Configuration control within data processing systems
GB2376100B (en) * 2001-05-31 2005-03-09 Advanced Risc Mach Ltd Data processing using multiple instruction sets
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
JP3528922B2 (ja) * 2001-08-31 2004-05-24 日本電気株式会社 アレイ型プロセッサ、データ処理システム
US7818356B2 (en) 2001-10-29 2010-10-19 Intel Corporation Bitstream buffer manipulation with a SIMD merge instruction
US7493470B1 (en) 2001-12-07 2009-02-17 Arc International, Plc Processor apparatus and methods optimized for control applications
US7278137B1 (en) 2001-12-26 2007-10-02 Arc International Methods and apparatus for compiling instructions for a data processor
EP1324191A1 (en) * 2001-12-27 2003-07-02 STMicroelectronics S.r.l. Processor architecture, related system and method of operation
KR100718754B1 (ko) * 2002-01-31 2007-05-15 에이알씨 인터내셔널 길이가 다른 명령어집합 구조를 갖는 설정가능형데이터프로세서
US7017030B2 (en) * 2002-02-20 2006-03-21 Arm Limited Prediction of instructions in a data processing apparatus
TW591405B (en) * 2002-04-19 2004-06-11 Ind Tech Res Inst Non-copy shared stack and register set device and dual language processor structure using the same
US7493607B2 (en) 2002-07-09 2009-02-17 Bluerisc Inc. Statically speculative compilation and execution
US7131118B2 (en) * 2002-07-25 2006-10-31 Arm Limited Write-through caching a JAVA® local variable within a register of a register bank
EP1387256B1 (en) 2002-07-31 2018-11-21 Texas Instruments Incorporated Program counter adjustment based on the detection of an instruction prefix
EP1387254B1 (en) * 2002-07-31 2012-12-12 Texas Instruments Incorporated Skip instruction carrying out a test with immediate value
GB2396451B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system
US7600096B2 (en) * 2002-11-19 2009-10-06 Stmicroelectronics, Inc. Coprocessor extension architecture built using a novel split-instruction transaction model
US20040163082A1 (en) * 2003-02-13 2004-08-19 Marc Tremblay Commit instruction to support transactional program execution
GB2399897B (en) * 2003-03-26 2006-02-01 Advanced Risc Mach Ltd Memory recycling in computer systems
TWI224281B (en) * 2003-07-16 2004-11-21 Sunplus Technology Co Ltd A processor executing script with different length and method thereof
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7707389B2 (en) * 2003-10-31 2010-04-27 Mips Technologies, Inc. Multi-ISA instruction fetch unit for a processor, and applications thereof
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
GB2412192B (en) * 2004-03-18 2007-08-29 Advanced Risc Mach Ltd Function calling mechanism
US7802080B2 (en) 2004-03-24 2010-09-21 Arm Limited Null exception handling
US7930526B2 (en) 2004-03-24 2011-04-19 Arm Limited Compare and branch mechanism
US20050262278A1 (en) * 2004-05-20 2005-11-24 Schmidt Dominik J Integrated circuit with a plurality of host processor family types
DE102004025419A1 (de) * 2004-05-24 2005-12-22 Infineon Technologies Ag Controller und Verfahren zum Verarbeiten von Befehlen
DE102004025418A1 (de) * 2004-05-24 2005-12-22 Infineon Technologies Ag Controller mit einer Decodiereinrichtung
CN100489783C (zh) * 2004-06-28 2009-05-20 李晓波 在单计算机上可在同一时刻执行多道程序的方法及系统
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
TWI318359B (en) * 2005-04-13 2009-12-11 Ind Tech Res Inst Unified single-core & multi-mode processor and its program execution method
US7673119B2 (en) * 2005-05-13 2010-03-02 Texas Instruments Incorporated VLIW optional fetch packet header extends instruction set space
US7769983B2 (en) * 2005-05-18 2010-08-03 Qualcomm Incorporated Caching instructions for a multiple-state processor
US8250348B2 (en) * 2005-05-19 2012-08-21 International Business Machines Corporation Methods and apparatus for dynamically switching processor mode
US20060265555A1 (en) * 2005-05-19 2006-11-23 International Business Machines Corporation Methods and apparatus for sharing processor resources
US7725695B2 (en) * 2005-05-31 2010-05-25 Arm Limited Branch prediction apparatus for repurposing a branch to instruction set as a non-predicted branch
US8914618B2 (en) * 2005-12-29 2014-12-16 Intel Corporation Instruction set architecture-based inter-sequencer communications with a heterogeneous resource
US8352713B2 (en) * 2006-08-09 2013-01-08 Qualcomm Incorporated Debug circuit comparing processor instruction set operating mode
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US7783867B2 (en) * 2007-02-01 2010-08-24 International Business Machines Corporation Controlling instruction execution in a processing environment
US7711927B2 (en) * 2007-03-14 2010-05-04 Qualcomm Incorporated System, method and software to preload instructions from an instruction set other than one currently executing
US7836285B2 (en) * 2007-08-08 2010-11-16 Analog Devices, Inc. Implementation of variable length instruction encoding using alias addressing
US20100205599A1 (en) * 2007-09-19 2010-08-12 Kpit Cummins Infosystems Ltd. Mechanism to enable plug-and-play hardware components for semi-automatic software migration
US7979685B1 (en) 2007-11-27 2011-07-12 Oracle America, Inc. Multiple instruction execution mode resource-constrained device
CN101187858B (zh) * 2007-12-05 2011-08-31 中国科学院计算技术研究所 一种risc处理器装置及其多模式下数据处理方法
US8195923B2 (en) * 2009-04-07 2012-06-05 Oracle America, Inc. Methods and mechanisms to support multiple features for a number of opcodes
US9043580B2 (en) 2011-04-07 2015-05-26 Via Technologies, Inc. Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA)
US8880857B2 (en) 2011-04-07 2014-11-04 Via Technologies, Inc. Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor
US8924695B2 (en) * 2011-04-07 2014-12-30 Via Technologies, Inc. Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor
US9141389B2 (en) 2011-04-07 2015-09-22 Via Technologies, Inc. Heterogeneous ISA microprocessor with shared hardware ISA registers
US9146742B2 (en) 2011-04-07 2015-09-29 Via Technologies, Inc. Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA
US9176733B2 (en) 2011-04-07 2015-11-03 Via Technologies, Inc. Load multiple and store multiple instructions in a microprocessor that emulates banked registers
US9378019B2 (en) 2011-04-07 2016-06-28 Via Technologies, Inc. Conditional load instructions in an out-of-order execution microprocessor
US9317288B2 (en) 2011-04-07 2016-04-19 Via Technologies, Inc. Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9645822B2 (en) 2011-04-07 2017-05-09 Via Technologies, Inc Conditional store instructions in an out-of-order execution microprocessor
US9898291B2 (en) 2011-04-07 2018-02-20 Via Technologies, Inc. Microprocessor with arm and X86 instruction length decoders
US9274795B2 (en) 2011-04-07 2016-03-01 Via Technologies, Inc. Conditional non-branch instruction prediction
US9336180B2 (en) 2011-04-07 2016-05-10 Via Technologies, Inc. Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode
US9292470B2 (en) 2011-04-07 2016-03-22 Via Technologies, Inc. Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program
US9032189B2 (en) 2011-04-07 2015-05-12 Via Technologies, Inc. Efficient conditional ALU instruction in read-port limited register file microprocessor
US8880851B2 (en) * 2011-04-07 2014-11-04 Via Technologies, Inc. Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline
US9128701B2 (en) * 2011-04-07 2015-09-08 Via Technologies, Inc. Generating constant for microinstructions from modified immediate field during instruction translation
EP2508979B1 (en) * 2011-04-07 2018-10-10 VIA Technologies, Inc. Efficient conditional alu instruction in read-port limited register file microprocessor
US9244686B2 (en) 2011-04-07 2016-01-26 Via Technologies, Inc. Microprocessor that translates conditional load/store instructions into variable number of microinstructions
US8914615B2 (en) 2011-12-02 2014-12-16 Arm Limited Mapping same logical register specifier for different instruction sets with divergent association to architectural register file using common address format
WO2013132767A1 (ja) * 2012-03-09 2013-09-12 パナソニック株式会社 プロセッサ、マルチプロセッサシステム、コンパイラ、ソフトウェアシステム、メモリ制御システムおよびコンピュータシステム
US20170228173A9 (en) * 2014-05-02 2017-08-10 Cavium, Inc. Systems and methods for enabling local caching for remote storage devices over a network via nvme controller
US9294567B2 (en) 2014-05-02 2016-03-22 Cavium, Inc. Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller
GB2530050B (en) * 2014-09-10 2021-07-21 Advanced Risc Mach Ltd Debugging in a data processing apparatus
US9971535B2 (en) * 2014-11-05 2018-05-15 Industrial Technology Research Institute Conversion method for reducing power consumption and computing apparatus using the same
GB2546465B (en) * 2015-06-05 2018-02-28 Advanced Risc Mach Ltd Modal processing of program instructions
US10303498B2 (en) 2015-10-01 2019-05-28 Microsoft Technology Licensing, Llc Performance optimizations for emulators
US10579125B2 (en) * 2016-02-27 2020-03-03 Intel Corporation Processors, methods, and systems to adjust maximum clock frequencies based on instruction type
US10572259B2 (en) * 2018-01-22 2020-02-25 Arm Limited Hints in a data processing apparatus
FR3097345B1 (fr) 2019-06-13 2021-06-25 Stmicroelectronics Grand Ouest Sas Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant
GB2597708B (en) * 2020-07-30 2022-11-02 Advanced Risc Mach Ltd Vector processing
US11231918B1 (en) 2020-08-31 2022-01-25 Microsoft Technologly Licensing, LLC Native emulation compatible application binary interface for supporting emulation of foreign code
US11403100B2 (en) 2020-08-31 2022-08-02 Microsoft Technology Licensing, Llc Dual architecture function pointers having consistent reference addresses
US11042422B1 (en) 2020-08-31 2021-06-22 Microsoft Technology Licensing, Llc Hybrid binaries supporting code stream folding
US20240036866A1 (en) * 2022-07-28 2024-02-01 Texas Instruments Incorporated Multiple instruction set architectures on a processing device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
US5115500A (en) * 1988-01-11 1992-05-19 International Business Machines Corporation Plural incompatible instruction format decode method and apparatus
US5481684A (en) * 1994-01-11 1996-01-02 Exponential Technology, Inc. Emulating operating system calls in an alternate instruction set using a modified code segment descriptor
US5481693A (en) * 1994-07-20 1996-01-02 Exponential Technology, Inc. Shared register architecture for a dual-instruction-set CPU

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10585667B2 (en) 2004-03-31 2020-03-10 Intel Corporation Method and system to provide user-level multithreading
US10613858B2 (en) 2004-03-31 2020-04-07 Intel Corporation Method and system to provide user-level multithreading
US10628153B2 (en) 2004-03-31 2020-04-21 Intel Corporation Method and system to provide user-level multithreading
US10635438B2 (en) 2004-03-31 2020-04-28 Intel Corporation Method and system to provide user-level multithreading
JP2013546100A (ja) * 2010-12-16 2013-12-26 マイクロソフト コーポレーション セキュリティサンドボックス
JP2017513114A (ja) * 2014-03-18 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アーキテクチャ・モードの構成
US10545772B2 (en) 2014-03-18 2020-01-28 International Business Machines Corporation Architectural mode configuration
US10552175B2 (en) 2014-03-18 2020-02-04 International Business Machines Corporation Architectural mode configuration
US10747582B2 (en) 2014-03-18 2020-08-18 International Business Machines Corporation Managing processing associated with selected architectural facilities
US10747583B2 (en) 2014-03-18 2020-08-18 International Business Machines Corporation Managing processing associated with selected architectural facilities

Also Published As

Publication number Publication date
EP0808485A1 (en) 1997-11-26
AU4775796A (en) 1996-08-27
KR100271947B1 (ko) 2000-11-15
US5638525A (en) 1997-06-10
KR19980702137A (ko) 1998-07-15
EP0808485A4 (en) 2003-01-02
WO1996024895A1 (en) 1996-08-15

Similar Documents

Publication Publication Date Title
JPH11503846A (ja) プロセッサにおいて命令セット間の移行を行う方法および装置
US9003422B2 (en) Microprocessor architecture having extendible logic
CA1196108A (en) Special instruction processing unit for data processing system
US5077657A (en) Emulator Assist unit which forms addresses of user instruction operands in response to emulator assist unit commands from host processor
US4679140A (en) Data processor with control of the significant bit lengths of general purpose registers
JP2000506639A (ja) 単一のレジスタ・ファイルを使用して浮動小数点命令およびパック・データ命令を実行する方法および装置
JP2000507015A (ja) リアルタイムプログラム言語アクセラレータ
JP2002328804A (ja) データ処理装置、命令セット切換方法、データ処理アーキテクチャおよびデータ処理装置作動方法
JPH08305568A (ja) 情報処理装置
US4807113A (en) Microprogrammed control data processing apparatus in which operand source and/or operand destination is determined independent of microprogram control
JPH1097421A (ja) 圧縮命令を実行するように構成されたマイクロプロセッサにおけるメモリをアドレスする方法および装置
US5937170A (en) Data communications with processor-assertable addresses mapped to peripheral-accessible-addresses-times-command product space
JP2001525568A (ja) 命令デコーダ
US4747044A (en) Direct execution of software on microprogrammable hardware
EP0338317B1 (en) Information processor operative both in direct mapping and in bank mapping and the method of switching the mapping schemes
US5872995A (en) System for causing system management interrupt to execute second program before use of a scancode by first program if said scancode comprises a hotkey
JP2000512409A (ja) 可変長圧縮命令セットから命令を検出し及び伸張する装置ならびに方法
JPH0895780A (ja) 命令コード符号化方式
JPS63253433A (ja) 演算処理装置
JPH0219492B2 (ja)
JPS6160459B2 (ja)
US4441153A (en) Instruction register content modification using plural input gates and a data flow register
CN114691199A (zh) 指令转换装置及其转换方法和系统以及处理器
GB2402757A (en) Address offset generation within a data processing system
TWI245221B (en) Apparatus and method for selective memory attribute control