JP2011508921A - Riscプロセッサ及びレジスタのフラグビットの処理方法 - Google Patents

Riscプロセッサ及びレジスタのフラグビットの処理方法 Download PDF

Info

Publication number
JP2011508921A
JP2011508921A JP2010539995A JP2010539995A JP2011508921A JP 2011508921 A JP2011508921 A JP 2011508921A JP 2010539995 A JP2010539995 A JP 2010539995A JP 2010539995 A JP2010539995 A JP 2010539995A JP 2011508921 A JP2011508921 A JP 2011508921A
Authority
JP
Japan
Prior art keywords
flag
bit
register
risc processor
value
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
JP2010539995A
Other languages
English (en)
Other versions
JP5299979B2 (ja
Inventor
胡偉武
李暁▲ぎょく▼
李国傑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Publication of JP2011508921A publication Critical patent/JP2011508921A/ja
Application granted granted Critical
Publication of JP5299979B2 publication Critical patent/JP5299979B2/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/30094Condition code generation, e.g. Carry, Zero 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/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
    • 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/30138Extension of register space, e.g. register cache
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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

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)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)

Abstract

RISCプロセッサ及びレジスタのフラグビットの処理方法が開示される。該RISCプロセッサは物理レジスタヒープ、前記の物理レジスタヒープに接続する演算部分、前記の演算部分に接続するデコーダを含む。前記の物理レジスタヒープはCISCプロセッサのフラグレジスタのフラグビットを実現させるのをシミュレートすることに使われるシミュレートフラグレジスタを含む。前記の演算部分は前記のシミュレートフラグレジスタのフラグビットの値を読み書きすることに使われるフラグ読み書きモジュールを含む。前記の演算部分はさらに演算制御機を含み、該演算制御機は、演算の間にRISCプロセッサがX86の仮想機稼動モードであるとき、前記のシミュレートフラグレジスタのフラグビットの値に基づいて演算制御を行う。

Description

本発明は、コンピュータ・プロセッサの技術に関し、より詳細にはRISCプロセッサ及びレジスタのフラグビットの処理方法に関する。
仮想機は、二十世紀六十年代にIBM社により提出された概念であり、現実化されている。当時に主流のコンピュータはメインフレームコンピュータであり、メインフレームコンピュータをいくつかの仮想機に分割し、仮想機のモニタ(Virtual Machine Monitor,VMM)のセグメンテーションを利用することにより、いくつかの異なる応用または複数のユーザがこの貴重な装置を共有することができる。
しかし、ハードウェアのコストの減少と演算能力の増加、およびマルチタスクのオペレーティングシステム(OS)の登場によって、徐々に仮想機のモニタが歴史の舞台からさり、マイクロコンピュータとパーソナルコンピュータ(PC)が大活躍してきた。
しかし、仮想機の強力と成功の理由は、ユーザが命令セットの組合だけにより形成されることのできる機能及び設備に対するアクセスと利用を実行できることにあるため、最近に、仮想機のモニタは学術界と産業界において再び注目が集められてきた。仮想機のモニタは現代のコンピュータシステムアーキテクチャの制限に対して一つのバーチャルな解決計画を提供し、強大な道具になり、この道具は現代のコンピュータシステムの能力をさらに拡張する。
現在のCISCプロセッサ(Complex Instruction Set Computing,CISC)のアーキテクチャ、例えばX86命令セットのCISCプロセッサのアーキテクチャは数多くの応用に使用されており、たくさんの大型サーバーの応用はX86命令セットのCISCプロセッサのアーキテクチャである。RISCプロセッサ(Reduced Instruction Set Computing,RISC)のアーキテクチャのマイクロプロセッサがサービスと関係する応用を広く実行するためには、CISCプロセッサとの交換性が必要となってきた。また、現在のCISCプロセッサのコンピュータは、アプリケーションがさらに多様化され、数多くのビジネスソフトウェアがCISCプロセッサのベースで開発されているから、RISCマイクロプロセッサがさらに幅広く応用されるために、CISCプロセッサとの交換性の実現は非常に必要となってきた。
MIPS命令セットのRISCプロセッサはRISCプロセッサの大きなブランチとして、現在にたくさんのオープンソースの仮想機プラットフォームが存在し、MIPS命令セットのRISCプロセッサからX86命令セットのCISCプロセッサへの、異なるアーキテクチャに対するサポートが実現できる。
MIPS命令セットのRISCプロセッサにおいて仮想器によりX86命令セットのCISCプロセッサに対するサポートを提供する際に、様々なことを考慮しなければならない。その中の一つはX86命令セットのCISCプロセッサにおけるフラグレジスタ(EFLAGS)のフラグビットの使用である。
X86の命令セットのフラグレジスタ(EFLAGS)は主に以下の三つの部分を含む:
一、CF(キャリーフラグ)、PF(奇偶ビット)、AF(補佐キャリー)、ZF(ゼロフラグ)、SF(マイナスでないフラグ)とOF(オーバーフロー)の6ビットを含む状態フラグ(Status Flags);
二、文字列操作命令の方向を制御することに使われるDF(方向フラグ)フラグ;
三、ステップモードフラグ、中断イネーブル、I/O優先順位等を含み、ユーザプログラムにより変更できないその他のシステムフラグとI/O特権領域(IOPL領域)。
X86の命令セットの固定小数点演算命令は、6ビット(bit)をサポートし、CF、PF、AF、ZF、SF、OF全部で6ビットのフラグレジスタ(EFLAGS)のフラグビット演算を含み、即ち数多くの演算命令はデータの値を発生する以外に、フラグレジスタのフラグビットも発生し、これにより、あるシフト命令はフラグビットをシフトの条件として、命令のジャンプを実行することができる。
しかし、現在のRISCプロセッサのX86の仮想機において、フラグレジスタの6ビットのフラグビット演算が実現されるとき、シミュレートによって実現されるため、膨大なコストが発生し、性能に大きな悪影響を与える。
本発明の目的は、RISCプロセッサ及びそのレジスタのフラグビットの処理方法を提供することにある。本発明では、RISCプロセッサでフラグレジスタの6ビットのフラグビット演算を実現し、X86命令セットとの交換性を実現し、仮想機の性能を向上させる。
本発明の目的を実現するために提供したRISCプロセッサは、物理レジスタヒープと、前記の物理レジスタヒープに接続する演算部分と、前記の演算部分に接続するデコーダとを含み、前記の物理レジスタヒープはシミュレートフラグレジスタを含み、該シミュレートフラグレジスタはCISCプロセッサのフラグレジスタのフラグビットを実現させるのをシミュレートすることに使われ、前記の演算部分はフラグ読み書きモジュールを含み、該フラグ読み書きモジュールはシミュレートフラグレジスタのフラグビットの値を読み書きすることに使われる。
前記のデコーダはモード識別モジュールを含み、該モード識別モジュールは、演算がEFLAGS稼動をシミュレートするモードであることを識別し、異なる命令に基づき、シミュレートフラグレジスタをソースレジスタ及び/または目標レジスタにデコードすることに使われる。
前記の演算部分はさらに演算制御機を含み、該演算制御機は、演算の間にRISCプロセッサがX86の仮想機稼動モードであるとき、シミュレートフラグレジスタのフラグビットの値に基づいて、演算制御を行う。
前記のフラグ読み書きモジュールは、フラグ抽出モジュールとフラグ修正モジュールを含み、前記のフラグ抽出モジュールは、1ビット或いは複数ビットのシミュレートフラグレジスタのフラグビットの値を抽出し、その中の8ビットのマスクの値に基づいて、シミュレートフラグレジスタの1ビット或いは複数ビットを抽出することを制御し、抽出されたシミュレートフラグレジスタのフラグビットの値を目標レジスタの中に保存することに使われ、前記のフラグ修正モジュールは、1ビット或いは複数ビットのシミュレートフラグレジスタのフラグビットの値を修正し、その中の8ビットのマスクの値に基づいて、シミュレートフラグレジスタの1ビット或いは複数ビットを修正することを制御し、ソースレジスタの中の値を使用してシミュレートフラグレジスタを修正することに使われる。
前記演算制御は、演算の結果に基づいて新たなシミュレートフラグレジスタのフラグビットを得ることと、およびシミュレートフラグレジスタのフラグビットの1ビット或いは複数ビットに基づき、分岐ジャンプの命令を実行することと含む。
前記のシミュレートフラグレジスタの低い順位の6ビットは高くなる順でそれぞれCFビット、PFビット、AFビット、ZFビット、SFビット、及びOFビットを表す。
本発明の目的を実現するため、さらにRISCプロセッサのレジスタのフラグビットの処理方法を提供する。該RISCプロセッサは、物理レジスタヒープと、前記の物理レジスタヒープに接続する演算部分と、前記の演算部分に接続するデコーダとを含み、前記の物理レジスタヒープはシミュレートフラグレジスタを含み、該シミュレートフラグレジスタはCISCプロセッサのフラグレジスタのフラグビットを実現させるのをシミュレートすることに使われ、前記の演算部分はフラグ読み書きモジュールを含み、該フラグ読み書きモジュールはシミュレートフラグレジスタのフラグビットの値を読み書きすることに使われる。
該方法は、RISCプロセッサにおいてRISCプロセッサの稼動モードをX86の仮想機稼動モードに設定し、即ちシミュレートフラグレジスタを使用可能に設置するステップA、RISCプロセッサが演算する間に、RISCプロセッサの稼動モードがX86の仮想機稼動モードであるとき、シミュレートフラグレジスタのフラグビットの値を読み書きし、及び/又はシミュレートフラグレジスタのフラグビットの値に基づき、演算制御を行うステップBを含む。
前記のステップAとステップBの間にはさらに以下のステップが含まれる。
デコーダは、演算がEFLAGS稼動をシミュレートするモードであると識別したとき、異なる命令に基づき、シミュレートフラグレジスタをソースレジスタ及び/または目標レジスタにデコードする。
前記のステップBは、RISCプロセッサの稼動モードがX86の仮想機稼動モードであるときに、1ビット或いは複数ビットのシミュレートフラグレジスタのフラグビットの値を抽出し、その中の8ビットのマスクの値に基づいて、シミュレートフラグレジスタの1ビット或いは複数ビットを抽出することを制御し、抽出されたシミュレートフラグレジスタのフラグビットの値を目標レジスタの中に保存するステップB1と、RISCプロセッサの稼動モードがX86の仮想機稼動モードであるときに、1ビット或いは複数ビットのシミュレートフラグレジスタのフラグビットの値を修正し、その中の8ビットのマスクの値に基づいて、シミュレートフラグレジスタの1ビット或いは複数ビットを修正することを制御し、ソースレジスタの中の値を使用してシミュレートフラグレジスタを修正するステップB2とを含む。
前記のステップBにおける前記の演算制御のプロセスは、演算の結果に基づいてシミュレートフラグレジスタのフラグビットを得るステップB1′と、シミュレートフラグレジスタのフラグビットの1ビット或いは複数ビットに基づき、分岐ジャンプの命令を実行するステップB2′とを含む。
前記のシミュレートフラグレジスタの低い順位の6ビットは高くなる順でそれぞれCFビット、PFビット、AFビット、ZFビット、SFビット、及びOFビットを表す。
本発明によるRISCプロセッサ装置のアーキテクチャの略図である。 本発明によるシミュレートフラグレジスタの略図である。 本発明によるRISCプロセッサのレジスタのフラグビットの処理方法のフローチャートである。 本発明の実施例によるシミュレートフラグレジスタのSETFLAG命令コーディングの略図である。 本発明の実施例によるシミュレートフラグレジスタのフラグビットを修正する命令MTFLAGの命令コーディングの略図である。 本発明の実施例によるシミュレートフラグレジスタのフラグビットを読み取る命令MFFLAGの命令コーディングの略図である。 本発明の実施例によるシミュレートフラグレジスタのフラグビットを修正するブラス命令X86ADDの命令コーディングの略図である。 シミュレートフラグレジスタのフラグビットに基づき分岐ジャンプを行うX86JM-EFLAGS命令のコーディングの略図である。
本発明の目的、技術の解決策、および本発明の利点をより明確にするため、以下に添付図面及び実施例により、本発明によるRISCプロセッサ装置及びレジスタのフラグビットの処理方法について更に詳細に説明する。ここで説明される例は、本発明を解釈するためのものであって、本発明の範囲を限定するためのものではないと理解されるべきである。
本発明の実施例は、MIPS64命令セットのRISCプロセッサ装置を例として、本発明について説明するが、本発明の特許請求の範囲を限定するためのものではなく、本発明はその他の命令セットのRISCプロセッサにおいても適用できる。
図1に示されているように、本発明の目的を実現するため、RISCプロセッサを提供し、該RISCプロセッサは物理レジスタヒープ1、前記の物理レジスタヒープ1に接続する演算部分3、及び前記の演算部分3に接続するデコーダ2を含む。
前記の物理レジスタヒープはシミュレートフラグレジスタ4(M-EFLAGS)を含み、X86命令セットのCISCプロセッサのフラグレジスタ(EFLAGS)のフラグビットを実現させるのをシミュレートすることに使われる。図2に示されているように、該レジスタの低い順位の6ビットは高くなる順でそれぞれCFビット、PFビット、AFビット、ZFビット、SFビットとOFビットを表す。
その中:
OFは、結果がオーバーフローになる場合には、OFを1と設置し、そうでない場合には、OFをリセットすると表す;
SFは、結果の最高ビットを保存すると表す;
ZFは、結果が0になる場合には、ZFを1と設置し、そうでない場合には、ZFをリセットすると表す;
AFは、演算中に3番目のビットから4番目のビットへの桁上げまたは借りがある場合には、AFを1と設置し、そうでない場合には、AFをリセットすると表す;
PFは、結果の最低バイトに偶数個の1がある場合には、PFを1と設置し、そうでない場合には、PFをリセットすると表す;
CFは、演算中最高ビットからさらに高いビットへの桁上げまたは借りがある場合には、CFを1と設置し、そうでない場合には、CFをリセットすると表す。
前記のデコーダ2はモード識別モジュール21を含み、この識別モジュール2は、演算がRISCプロセッサのX86の仮想機稼動モード、即ちEFLAGS稼動をシミュレートするモードであると識別し、そして異なる命令に基づき、シミュレートフラグレジスタをソースレジスタ及び/または目標レジスタにデコードする。
前記の演算部分3はフラグ読み書きモジュール31を含み、このモジュール31はシミュレートフラグレジスタ4のフラグビットの値を読み書きすることに使われる。
前記のフラグ読み書きモジュール31はフラグ抽出モジュール311とフラグ修正モジュール312を含み、その中:
前記のフラグ抽出モジュール311は、1ビット或いは複数ビットのシミュレートフラグレジスタ4のフラグビットの値を抽出し、その中の8ビットのマスク(mask)の値に基づいて、シミュレートフラグレジスタ4の1ビット或いは複数ビットを抽出することを制御し、抽出されたシミュレートフラグレジスタ4のフラグビットの値を目標レジスタの中に保存することに使われる。
前記のフラグ修正モジュール312は、1ビット或いは複数ビットのシミュレートフラグレジスタ4のフラグビットの値を修正し、その中の8ビットのマスク(mask)の値に基づいて、シミュレートフラグレジスタ4の1ビット或いは複数ビットを修正することを制御し、ソースレジスタの中の値を使用してシミュレートフラグレジスタ4を修正することに使われる。
前記の演算部分3はさらに演算制御機32を含み、この演算制御機32は、RISCプロセッサが演算している間に、RISCプロセッサのX86の仮想機稼動モードである場合、シミュレートフラグレジスタ4のフラグビットの値に基づき、演算制御を行う。
前記演算制御は、演算の結果に基づいて新たなシミュレートフラグレジスタ4(M-EFLAGS)のフラグビットを得ることと、およびシミュレートフラグレジスタ4(M-EFLAGS)のフラグビットの1ビット或いは複数ビットに基づき、分岐ジャンプの命令を実行することとを含む。
以下に、本発明によるRISCプロセッサのレジスタのフラグビットの処理方法を詳しく説明する。該RISCプロセッサは物理レジスタヒープ1、前記の物理レジスタヒープ1に接続する演算部分3、および前記の演算部分3に接続するデコーダ2を含む。前記の物理レジスタヒープ1はシミュレートフラグレジスタ4を含み、CISCプロセッサのフラグレジスタのフラグビットを実現させるのをシミュレートすることに使われる。前記の演算部分3はフラグ読み書きモジュール31を含み、シミュレートフラグレジスタ4のフラグビットの値を読み書きすることに使われる。図3に示されているように、該方法は以下のステップを含む:
ステップS100:RISCプロセッサにおいてRISCプロセッサの稼動モードをX86の仮想機稼動モードに設定し、即ちシミュレートフラグレジスタ4が使用できることをし、デコーダは演算がRISCプロセッサのX86の仮想機稼動モード、即ちEFLAGS稼動をシミュレートするモードであると識別し、そして異なる命令に基づき、シミュレートフラグレジスタをソースレジスタ及び/または目標レジスタにデコードする;
シミュレートフラグレジスタ4(M-EFLAGS)がX86の命令セットのフラグレジスタ(EFLAGS)のフラグビットを擬似的に実現し、該レジスタの低い順位の6ビットは高くなる順でそれぞれCFビット、PFビット、AFビット、ZFビット、SFビットとOFビットを表す。
その中:
OFは、結果がオーバーフローになる場合には、OFを1と設置し、そうでない場合には、OFをリセットすると表す;
SFは、結果の最高ビットを保存すると表す;
ZFは、結果が0になる場合には、ZFを1と設置し、そうでない場合には、ZFをリセットすると表す;
AFは、演算中に3番目のビットから4番目のビットへの桁上げまたは借りがある場合には、AFを1と設置し、そうでない場合には、AFをリセットすると表す;
PFは、結果の最低バイトに偶数個の1がある場合には、PFを1と設置し、そうでない場合には、PFをリセットすると表す;
CFは、演算中最高ビットからさらに高いビットへの桁上げまたは借りがある場合には、CFを1と設置し、そうでない場合には、CFをリセットすると表す。
シミュレートフラグレジスタ4が利用できるとき、該演算がRISCプロセッサのX86の仮想機稼動モード、即ちEFLAGS稼動をシミュレートするモードにあると識別し、実行結果に基づいて当該シミュレートフラグレジスタ4の値を修正する。そして異なる命令に基づき、シミュレートフラグレジスタをソースレジスタ及び/または目標レジスタにデコードし、元の目標レジスタの中に結果を保存しなくても済む。
一つの実施可能な方式では、シミュレートフラグレジスタ4に関連する命令がシミュレートフラグレジスタ4のフラグビットを修正するとき、該命令の前に同指令がRISCプロセッサのX86の仮想機稼動モードであることを示すプレフィックス命令SETFLAGがあり、この命令は、その以降の命令がX86の仮想機モードにあることを示す。
命令フォーマット:SETFLAG/ EFLAGS稼動モードのプレフィックス命令をシミュレートする。
この命令は、該命令の直後の命令がEFLAGS稼動モードをシミュレートしていることを表す。
そのコーディングは図4に示されているように。
その命令を実行するとき、実行結果に基づいて当該シミュレートフラグレジスタ4のフラグビットの値を修正し、目標レジスタの中に結果を保存しない。以下に具体例をあげる。
正常のMIPS命令:
ADD $5,$1,$2
1番汎用レジスタと2番汎用レジスタの中の値を加算し、その結果を5番汎用レジスタの中に保存することを表す。
シミュレートフラグレジスタ4のフラグビットを修正する命令:
SETFLAG
ADD $5,$1,$2
この命令は、1番汎用レジスタと2番汎用レジスタの中の値を加算し、演算結果は保存しないが、結果に基づいてシミュレートフラグレジスタ4の中のフラグビットの当該ビットを修正することを表す。
デコーダ2の入力セットはすべての可能な32ビットコードであり、すべての合法命令と非法命令を含む。この方式では、デコーダ2が新たな一つの合法入力を増やした:SETFLAG。この命令は、該命令の直後の命令がRISCプロセッサのX86の仮想機稼動モードであり、即ちEFLAGS稼動モードをシミュレートしていることを表す。
デコーダ2がプレフィックス命令に基づき、プレフィックス命令後の一つの命令をデコードするとき、その出力はEFLAGS稼動モードをシミュレートしていることに基づき、調整内部の操作コードを演算部分に送り、このときこの命令の目標レジスタがデコードによりシミュレートフラグレジスタ4(M-EFLAGS)になり、その中の一つのソースレジスタもシミュレートフラグレジスタ4(M-EFLAGS)になる。いくつかの演算は、一部分のシミュレートフラグレジスタ4(M-EFLAGS)だけを修正するから、元のシミュレートフラグレジスタ4(M-EFLAGS)を演算部分3に送り込む必要がある。
その中、前記の調整内部操作コード、名前の変更即ち論理レジスタから物理レジスタにマッピングすること、および読み書きレジスタのポートなどの操作内容を含む、これらは当業者が周知する内容であるため、本発明で詳しく説明しない。
デコーダ2がデコーディングしたあと、命令を演算部分3に出力し、演算部分3は内部の操作コードを確認する。正常な命令であれば正常な流れに従って演算する; EFLAGS稼動モードをシミュレートするモードであれば、まず結果を演算し、演算の結果と中間結果に基づいてシミュレートフラグレジスタ4(M-EFLAGS)のフラグビットを設置し、目標レジスタの中に演算の結果を保存しなくてもよい。
もう一つの発明を実施するための形態では、本発明の中に頻繁に使用されるシミュレートフラグレジスタ4のフラグビットを修正する命令が、X86の命令に対して一対一で対応し、そうすれば、一つの命令は元の二つの命令(一つのSETFLAGと一つの正常なMIPS命令)に相当する。以下に実例を挙げる。
頻繁に使用されるシミュレートフラグレジスタ4のフラグビットを修正する加算命令(ADD)について、命令をX86ADDと定義する、そして
X86ADD $5,$1,$2 は
SETFLAG
ADD $5,$1,$2 に
相当する。
これらの頻繁に使用される命令について、コーディングの間に独立な命令スロットを分配し、性能部分がこれらの命令を識別したあと、得られた結果を目標レジスタの中に送らずに、結果に基づき当該のシミュレートフラグレジスタ4(M-EFLAGS)のフラグビットを得て、フラグビットをシミュレートフラグレジスタ4(M-EFLAGS)に送り込む。
ステップS200:RISCプロセッサが演算する間に、RISCプロセッサの稼動モードがX86の仮想機稼動モードになるとき、シミュレートフラグレジスタ4のフラグビットの値を読み書きし、あるいは/及びシミュレートフラグレジスタ4のフラグビットの値に基づき演算制御が行われる。
前記のステップS200において、シミュレートフラグレジスタ4のフラグビットの値の読み書きは以下のステップを含む。
ステップS210:RISCプロセッサがX86の仮想機の稼動モードである場合、1ビット又は複数ビットのシミュレートフラグレジスタ4のフラグビットの値を抽出し、その中の8ビットのマスク(mask)の値に基づいて、シミュレートフラグレジスタ4のフラグビットの値の1ビット或いは複数ビットを抽出することが制御される。抽出されたシミュレートフラグレジスタ4のフラグビットの値を目標レジスタの中に保存する。
ステップS220:RISCプロセッサがX86の仮想機の稼動モードである場合、1ビット或いは複数ビットのシミュレートフラグレジスタ4のフラグビットの値を修正し、その中の8ビットのマスク(mask)の値に基づいて、シミュレートフラグレジスタ4のフラグビットの値の1ビット或いは複数ビットを修正することが制御される。ソースレジスタの中の値を使用してシミュレートフラグレジスタ4を修正する。
一つの実施可能な方式として、本発明の実施例は二つの命令MTFLAGとMFFLAGを通じてシミュレートフラグレジスタ4のフラグビットの値を修正または読み書きする、この二つの命令の命令コーディングは図5と図6に示されているように。これらの命令は、8ビットのマスク(mask)を使用しシミュレートフラグレジスタ4の当該フラグビットを修正または読み書きし、一つの指定した汎用レジスタの中に、それぞれにシミュレートフラグレジスタ4のフラグビットの値を書き込み、またはシミュレートフラグレジスタ4のフラグビットの値を読み込むことはできる。
MTFLAG命令は1ビットか複数ビットのシミュレートフラグレジスタ4(M-EFLAGS)のフラグビットの値を抽出することを実現する。命令の中の8ビットのマスク(mask)の値(即値で表す)に基づいて、シミュレートフラグレジスタ4の中の1ビット又は複数ビットを抽出することが制御される。抽出されたシミュレートフラグレジスタ4(M-EFLAGS)のフラグビットの値を目標レジスタGPR[rt]の中に保存する。
マスク(mask)でシミュレートフラグレジスタ4のフラグビットを抽出することの実現は、以下の式で表される。
GPR[rt]←M-EFLAGS & mask
たとえば、マスク(mask)の値は0x00000100として、シミュレートフラグレジスタ4(M-EFLAGS)の第2ビット、即ちAFビットの内容を抽出し、目標レジスタGPR[rt]の中に入れる。
MTFLAG命令は1ビットか複数ビットのシミュレートフラグレジスタ4(M-EFLAGS)のフラグビットの値を直接に修正する。命令の中の8ビットのマスク(mask)の値(即値で表す)に基づいてシミュレートフラグレジスタ4(M-EFLAGS)の中の1ビット又は複数ビットを修正することが制御される。GPR[rt]ソースレジスタの中の値を使用してシミュレートフラグレジスタ4(M-EFLAGS)を修正する。
マスク(mask)でシミュレートフラグレジスタ4のフラグビットを修正することの制御は、以下の式で表される。
M-EFLAGS & mask←GPR[rs]
たとえば、GPR[rs]の低い順番の8ビットの内容は0x00010010として、マスク(mask)の値は0x00110011として、この命令は該シミュレートフラグレジスタ4(M-EFLAGS)の中のCF、PF、SFとOFビットを修正し、この4ビットをそれぞれ0、1、1と0に設定させる。
前記のステップS200において、前記の演算制御の流れは以下のステップを含む。
ステップ210′:演算の結果に基づいてシミュレートフラグレジスタ4(M-EFLAG)のフラグビットが得られる。
たとえば、シミュレートフラグレジスタ4(M-EFLAG)のフラグビットに基づいて直接演算する命令は例えばX86ADDである。
X86ADD / EFLAGSビットの32ビットの加算だけに影響する。
命令のフォーマットは:X86ADD rs, rt
命令はGPR[rs]レジスタの中の32ビットの整数とGPR[rt]レジスタの中の32ビットの整数を加算して、32ビットの結果が得られる。この結果を保存せず、結果に基づきシミュレートフラグレジスタ4(M-EFLAGS)のOF/SF/ZF/AF/PFビットを修正するだけである。
そのコーディングは図7に示されているように。
ステップ220′:シミュレートフラグレジスタ4(M-EFLAG)のフラグビット中の1ビット又は複数ビットに基づいて分岐ジャンプの命令を実行する。
たとえば、X86J M-EFLAGSの条件遷移
命令のフォーマットは:X86J.fmt offset
X86J命令は、EFLAGSの中の何ビットを比較し、対応の条件に基づいてプロセッサと関連するジャンプを行う。
そのコーディングは図8に示されているように。
ここで、異なる命令サフィックス(fmt)は異なる条件を表し、たとえば「X86J.a fmt=0」は、「CF=0」かつ「ZF=0」のときにジャンプが行われることを表す。
MIPS64命令セットの32ビット命令コードの高い順位の6ビット(31ビット:26ビット)はopcode領域となる。その中のSPECIAL2(opcodeは011100となる)の命令スロットは、MIPSのルールによってユーザが自分で定義してもよいものである。本発明の実施例の新たに増えた命令はすべて既存したMIPS64命令セットの中に保留したSPECIAL2の空スロットの値で実現された。
本発明の効果:本発明によるRISCプロセッサ装置及びレジスタのフラグビットの処理方法は、MIPS命令セットのRISCプロセッサにおいて、X86命令セットのCISCプロセッサのフラグレジスタ(EFLAGS)の6ビット(bit)のフラグビットに必要なハードウェアのサポートを提供し、仮想機の最適化の自由度を増大させ、仮想機の性能を向上させることができる。
本発明によるRISCプロセッサ装置及びデータ処理方法は、MIPSアーキテクチャにおいて、X86のEFLAGSのフラグビットに必要なハードのウェアサポートを提供し、仮想機の最適化の自由度を増大させ、仮想機の性能を向上させることができる。
添付図面に基づく本発明の実施例の上記詳細な説明により、本発明のその他の態様および特徴は同業者には自明である。
以上、本発明の実施例について説明したが、これらの実施例は単なる例であって、本発明を限定するためのものではない。本発明は、添付した特許請求の範囲に従って解釈されるべきである。
本発明によるRISCプロセッサ装置及びレジスタのフラグビットの処理方法は、MIPS命令セットのRISCプロセッサにおいて、X86命令セットのCISCプロセッサのフラグレジスタ(EFLAGS)の6ビット(bit)のフラグビットに必要なハードウェアのサポートを提供し、即ちシミュレートフラグレジスタを利用してX86の命令セットのCISCプロセッサのフラグレジスタのフラグビットを実現させるのをシミュレートする。本発明は、仮想機の最適化の自由度を増大させることができ、仮想機の性能を向上させることができる。

Claims (11)

  1. 物理レジスタヒープと、前記の物理レジスタヒープに接続する演算部分と、前記の演算部分に接続するデコーダとを含むRISCプロセッサにおいて、
    前記の物理レジスタヒープはシミュレートフラグレジスタを含み、該シミュレートフラグレジスタはCISCプロセッサのフラグレジスタのフラグビットを実現させるのをシミュレートすることに使われ、
    前記の演算部分はフラグ読み書きモジュールを含み、該フラグ読み書きモジュールはシミュレートフラグレジスタのフラグビットの値を読み書きすることに使われることを特徴とするRISCプロセッサ装置。
  2. 前記のデコーダはモード識別モジュールを含み、該モード識別モジュールは、演算がEFLAGS稼動をシミュレートするモードであることを識別し、異なる命令に基づき、シミュレートフラグレジスタをソースレジスタ及び/または目標レジスタにデコードすることに使われることを特徴とする請求項1に記載のRISCプロセッサ装置。
  3. 前記の演算部分はさらに演算制御機を含み、該演算制御機は、演算の間にRISCプロセッサがX86の仮想機稼動モードであるとき、シミュレートフラグレジスタのフラグビットの値に基づいて演算制御を行うことを特徴とする請求項1に記載のRISCプロセッサ装置。
  4. 前記のフラグ読み書きモジュールは、フラグ抽出モジュールとフラグ修正モジュールを含み、
    前記のフラグ抽出モジュールは、1ビット或いは複数ビットのシミュレートフラグレジスタのフラグビットの値を抽出し、その中の8ビットのマスクの値に基づいて、シミュレートフラグレジスタの1ビット或いは複数ビットを抽出することを制御し、抽出されたシミュレートフラグレジスタのフラグビットの値を目標レジスタの中に保存することに使われ、
    前記のフラグ修正モジュールは、1ビット或いは複数ビットのシミュレートフラグレジスタのフラグビットの値を修正し、その中の8ビットのマスクの値に基づいて、シミュレートフラグレジスタの1ビット或いは複数ビットを修正することを制御し、ソースレジスタの中の値を使用してシミュレートフラグレジスタを修正することに使われることを特徴とする請求項1に記載のRISCプロセッサ装置。
  5. 前記演算制御は、演算の結果に基づいて新たなシミュレートフラグレジスタのフラグビットを得ることと、およびシミュレートフラグレジスタのフラグビットの1ビット或いは複数ビットに基づき、分岐ジャンプの命令を実行することとを含むことを特徴とする請求項3に記載のRISCプロセッサ装置。
  6. 前記のシミュレートフラグレジスタの低い順位の6ビットは高くなる順でそれぞれCFビット、PFビット、AFビット、ZFビット、SFビット、及びOFビットを表すことを特徴とする請求項1から5のいずれかに記載のRISCプロセッサ装置。
  7. RISCプロセッサのレジスタのフラグビットの処理方法であって、前記RISCプロセッサは、物理レジスタヒープと、前記の物理レジスタヒープに接続する演算部分と、前記の演算部分に接続するデコーダとを含み、前記の物理レジスタヒープはシミュレートフラグレジスタを含み、該シミュレートフラグレジスタはCISCプロセッサのフラグレジスタのフラグビットを実現させるのをシミュレートすることに使われ、前記の演算部分はフラグ読み書きモジュールを含み、該フラグ読み書きモジュールはシミュレートフラグレジスタのフラグビットの値を読み書きすることに使われる処理方法において、
    RISCプロセッサにおいてシミュレートフラグレジスタを使用可能に設置するステップAと、
    RISCプロセッサが演算する間に、RISCプロセッサの稼動モードがX86の仮想機稼動モードであるとき、シミュレートフラグレジスタのフラグビットの値を読み書きし、及び/又はシミュレートフラグレジスタのフラグビットの値に基づき演算制御を行うステップBとを含むことを特徴とするRISCプロセッサのレジスタのフラグビットの処理方法。
  8. 前記のステップAは、デコーダは演算がEFLAGS稼動をシミュレートするモードであると識別したとき、異なる命令に基づき、シミュレートフラグレジスタをソースレジスタ及び/または目標レジスタにデコードするステップを更に含むことを特徴とする請求項7に記載のRISCプロセッサのレジスタのフラグビットの処理方法。
  9. 前記のステップBは、
    RISCプロセッサの稼動モードがX86の仮想機稼動モードであるときに、1ビット或いは複数ビットのシミュレートフラグレジスタのフラグビットの値を抽出し、その中の8ビットのマスクの値に基づいて、シミュレートフラグレジスタの1ビット或いは複数ビットを抽出することを制御し、抽出されたシミュレートフラグレジスタのフラグビットの値を目標レジスタの中に保存するステップB1と、
    RISCプロセッサの稼動モードがX86の仮想機稼動モードであるときに、1ビット或いは複数ビットのシミュレートフラグレジスタのフラグビットの値を修正し、その中の8ビットのマスクの値に基づいて、シミュレートフラグレジスタの1ビット或いは複数ビットを修正することを制御し、ソースレジスタの中の値を使用してシミュレートフラグレジスタを修正するステップB2とを含むことを特徴とする請求項7または請求項8に記載のRISCプロセッサのレジスタのフラグビットの処理方法。
  10. 前記のステップBにおける前記の演算制御のプロセスは、
    演算の結果に基づいてシミュレートフラグレジスタのフラグビットを得るステップB1′と、
    シミュレートフラグレジスタのフラグビットの1ビット或いは複数ビットに基づき、分岐ジャンプの命令を実行するステップB2′とを含むことを特徴とする請求項7または請求項8に記載のRISCプロセッサのレジスタのフラグビットの処理方法。
  11. 前記のシミュレートフラグレジスタの低い順位の6ビットは、高くなる順でそれぞれCFビット、PFビット、AFビット、ZFビット、SFビット、及びOFビットを表すことを特徴とする請求項7または請求項8に記載のRISCプロセッサのレジスタのフラグビットの処理方法。
JP2010539995A 2007-12-29 2008-11-24 Riscプロセッサ及びレジスタのフラグビットの処理方法 Active JP5299979B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNB2007103085711A CN100530164C (zh) 2007-12-29 2007-12-29 一种risc处理器及其寄存器标志位处理方法
CN200710308571.1 2007-12-29
PCT/CN2008/001906 WO2009086727A1 (zh) 2007-12-29 2008-11-24 一种risc处理器及其寄存器标志位处理方法

Publications (2)

Publication Number Publication Date
JP2011508921A true JP2011508921A (ja) 2011-03-17
JP5299979B2 JP5299979B2 (ja) 2013-09-25

Family

ID=39547296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010539995A Active JP5299979B2 (ja) 2007-12-29 2008-11-24 Riscプロセッサ及びレジスタのフラグビットの処理方法

Country Status (7)

Country Link
US (1) US9189232B2 (ja)
EP (1) EP2226731B1 (ja)
JP (1) JP5299979B2 (ja)
KR (1) KR101139395B1 (ja)
CN (1) CN100530164C (ja)
CA (1) CA2709753C (ja)
WO (1) WO2009086727A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013093051A (ja) * 2013-02-04 2013-05-16 Renesas Electronics Corp データプロセッサ
JP2014225285A (ja) * 2014-07-30 2014-12-04 ルネサスエレクトロニクス株式会社 データプロセッサ

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100530164C (zh) * 2007-12-29 2009-08-19 中国科学院计算技术研究所 一种risc处理器及其寄存器标志位处理方法
JP5193624B2 (ja) * 2008-02-19 2013-05-08 ルネサスエレクトロニクス株式会社 データプロセッサ
US8615647B2 (en) 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
CN101876954B (zh) * 2009-12-23 2012-08-15 中国科学院计算技术研究所 一种虚拟机控制系统及其工作方法
US9811338B2 (en) * 2011-11-14 2017-11-07 Intel Corporation Flag non-modification extension for ISA instructions using prefixes
US20140059322A1 (en) * 2011-12-23 2014-02-27 Elmoustapha Ould-Ahmed-Vall Apparatus and method for broadcasting from a general purpose register to a vector register
CN103377031B (zh) * 2012-04-27 2017-09-26 腾讯科技(深圳)有限公司 一种多数据处理方法和装置
US9251377B2 (en) 2012-12-28 2016-02-02 Intel Corporation Instructions processors, methods, and systems to process secure hash algorithms
CN105446791B (zh) * 2014-08-26 2018-11-20 龙芯中科技术有限公司 标志位模拟方法、装置和处理器
CN110825436B (zh) * 2018-08-10 2022-04-29 昆仑芯(北京)科技有限公司 应用于人工智能芯片的计算方法和人工智能芯片
US20230098724A1 (en) * 2021-09-25 2023-03-30 Intel Corporation Copy a subset of status flags from a control and status register to a flags register

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH025138A (ja) * 1988-02-01 1990-01-10 Internatl Business Mach Corp <Ibm> シミユレーシヨン方法
JPH0387930A (ja) * 1989-06-15 1991-04-12 Unisys Corp エミュレータ・アシスト・ユニツト及びそれを用いたコ・プロセツサ・エミュレータ
JPH04199331A (ja) * 1990-11-29 1992-07-20 Hitachi Ltd マイクロコンピュータ
US5481693A (en) * 1994-07-20 1996-01-02 Exponential Technology, Inc. Shared register architecture for a dual-instruction-set CPU
US5685009A (en) * 1994-07-20 1997-11-04 Exponential Technology, Inc. Shared floating-point registers and register port-pairing in a dual-architecture CPU
JPH1153189A (ja) * 1997-07-31 1999-02-26 Toshiba Corp 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体
US6055624A (en) * 1998-04-07 2000-04-25 International Business Machines Corporation Millicode flags with specialized update and branch instructions
JP2004038923A (ja) * 2002-02-06 2004-02-05 Transitive Technologies Ltd プログラムコード変換のための条件コードフラグのエミュレーション
US20050262330A1 (en) * 2001-10-23 2005-11-24 Ip-First Llc Apparatus and method for masked move to and from flags register in a processor
JP2006505844A (ja) * 2002-11-04 2006-02-16 トランジティブ リミテッド プログラムコード変換の検証を実行するための方法および装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4992934A (en) * 1986-12-15 1991-02-12 United Technologies Corporation Reduced instruction set computing apparatus and methods
US5463778A (en) * 1989-11-16 1995-10-31 Texas Instruments Incorporated User controlled trap handler
JP2507638B2 (ja) * 1989-12-01 1996-06-12 三菱電機株式会社 デ―タ処理装置
US5630082A (en) 1993-10-29 1997-05-13 Advanced Micro Devices, Inc. Apparatus and method for instruction queue scanning
DE69427265T2 (de) * 1993-10-29 2002-05-02 Advanced Micro Devices Inc Superskalarbefehlsdekoder
US5884057A (en) * 1994-01-11 1999-03-16 Exponential Technology, Inc. Temporal re-alignment of a floating point pipeline to an integer pipeline for emulation of a load-operate architecture on a load/store processor
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
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
US5664159A (en) * 1994-03-08 1997-09-02 Exponential Technology, Inc. Method for emulating multiple debug breakpoints by page partitioning using a single breakpoint register
US5574927A (en) * 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
US6076155A (en) * 1995-10-24 2000-06-13 S3 Incorporated Shared register architecture for a dual-instruction-set CPU to facilitate data exchange between the instruction sets
US6807625B1 (en) * 2000-02-18 2004-10-19 Hewlett-Packard Development Company, L.P. Method and apparatus for efficiently generating, storing, and consuming arithmetic flags between producing and consuming macroinstructions when emulating with microinstructions
CN1216327C (zh) * 2003-05-15 2005-08-24 复旦大学 采用双指令集的32位嵌入式微处理器
US8429356B2 (en) * 2005-11-02 2013-04-23 Ati Technologies Ulc Write data mask method and system
CN100530164C (zh) * 2007-12-29 2009-08-19 中国科学院计算技术研究所 一种risc处理器及其寄存器标志位处理方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH025138A (ja) * 1988-02-01 1990-01-10 Internatl Business Mach Corp <Ibm> シミユレーシヨン方法
JPH0387930A (ja) * 1989-06-15 1991-04-12 Unisys Corp エミュレータ・アシスト・ユニツト及びそれを用いたコ・プロセツサ・エミュレータ
JPH04199331A (ja) * 1990-11-29 1992-07-20 Hitachi Ltd マイクロコンピュータ
US5481693A (en) * 1994-07-20 1996-01-02 Exponential Technology, Inc. Shared register architecture for a dual-instruction-set CPU
US5685009A (en) * 1994-07-20 1997-11-04 Exponential Technology, Inc. Shared floating-point registers and register port-pairing in a dual-architecture CPU
JPH1153189A (ja) * 1997-07-31 1999-02-26 Toshiba Corp 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体
US6055624A (en) * 1998-04-07 2000-04-25 International Business Machines Corporation Millicode flags with specialized update and branch instructions
US20050262330A1 (en) * 2001-10-23 2005-11-24 Ip-First Llc Apparatus and method for masked move to and from flags register in a processor
JP2004038923A (ja) * 2002-02-06 2004-02-05 Transitive Technologies Ltd プログラムコード変換のための条件コードフラグのエミュレーション
JP2006505844A (ja) * 2002-11-04 2006-02-16 トランジティブ リミテッド プログラムコード変換の検証を実行するための方法および装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6010027332; 平野成明,吉宗一夫,菊池和彦,畑雅之,三坂敏夫,高瀬俊一: 'i-PX7300ハードウェアアーキテクチャ' NEC技報 Vol:54,No:1, 20010125, Pages:11-15, 日本電気株式会社 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013093051A (ja) * 2013-02-04 2013-05-16 Renesas Electronics Corp データプロセッサ
JP2014225285A (ja) * 2014-07-30 2014-12-04 ルネサスエレクトロニクス株式会社 データプロセッサ

Also Published As

Publication number Publication date
CN100530164C (zh) 2009-08-19
US20100268916A1 (en) 2010-10-21
CN101196869A (zh) 2008-06-11
US9189232B2 (en) 2015-11-17
CA2709753A1 (en) 2009-07-16
KR20100095604A (ko) 2010-08-31
EP2226731A4 (en) 2010-12-29
WO2009086727A1 (zh) 2009-07-16
CA2709753C (en) 2016-08-23
EP2226731B1 (en) 2018-04-18
JP5299979B2 (ja) 2013-09-25
KR101139395B1 (ko) 2012-04-27
EP2226731A1 (en) 2010-09-08

Similar Documents

Publication Publication Date Title
JP5299979B2 (ja) Riscプロセッサ及びレジスタのフラグビットの処理方法
US10664269B2 (en) Function virtualization facility for function query of a processor
US6957321B2 (en) Instruction set extension using operand bearing NOP instructions
US9250904B2 (en) Modify and execute sequential instruction facility and instructions therefor
Reshadi et al. Instruction set compiled simulation: A technique for fast and flexible instruction set simulation
JP5501338B2 (ja) X86の仮想機をサポートするriscプロセッサ装置及び方法
US7243213B2 (en) Process for translating instructions for an arm-type processor into instructions for a LX-type processor; relative translator device and computer program product
JP4817185B2 (ja) 埋め込み符号を持ったコンピュータ命令値フィールド
US9459872B2 (en) High-word facility for extending the number of general purpose registers available to instructions
JP2008536240A (ja) レジスタファイルとしてのオペランドスタックへの、ネイティブな命令を用いた、マイクロプロセッサのアクセス
US20110320773A1 (en) Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor
US20040230796A1 (en) Security message authentication control instruction
CN114461275A (zh) 具有独立进位链的加法指令
CN115357332A (zh) 处理器间中断的虚拟化
US20090182985A1 (en) Move Facility and Instructions Therefore
CN107729118A (zh) 面向众核处理器的修改Java虚拟机的方法
WO2009087152A2 (en) Rotate then insert selected bits facility and instructions therefore
US5774694A (en) Method and apparatus for emulating status flag
US20230205436A1 (en) Zero cycle memory initialization
US20230205531A1 (en) Random data usage
US20230061618A1 (en) Bfloat16 square root and/or reciprocal square root instructions
CN118132154A (zh) 指令处理方法、程序编译方法、相关器件及设备

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120120

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121211

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130318

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130507

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130612

R150 Certificate of patent or registration of utility model

Ref document number: 5299979

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250