JP4159586B2 - 情報処理装置および情報処理の高速化方法 - Google Patents

情報処理装置および情報処理の高速化方法 Download PDF

Info

Publication number
JP4159586B2
JP4159586B2 JP2006212038A JP2006212038A JP4159586B2 JP 4159586 B2 JP4159586 B2 JP 4159586B2 JP 2006212038 A JP2006212038 A JP 2006212038A JP 2006212038 A JP2006212038 A JP 2006212038A JP 4159586 B2 JP4159586 B2 JP 4159586B2
Authority
JP
Japan
Prior art keywords
instruction
type
condition code
microinstruction
generation
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.)
Expired - Fee Related
Application number
JP2006212038A
Other languages
English (en)
Other versions
JP2008040658A (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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2006212038A priority Critical patent/JP4159586B2/ja
Priority to US11/833,275 priority patent/US7886133B2/en
Publication of JP2008040658A publication Critical patent/JP2008040658A/ja
Application granted granted Critical
Publication of JP4159586B2 publication Critical patent/JP4159586B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction 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/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/30145Instruction analysis, e.g. decoding, instruction word fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、情報処理装置および、その情報処理の高速化方法に関する。
情報処理装置において、演算結果の状態を示すコンディションコードは、演算命令が実行されるたびに生成される。生成されたコンディションコードは、条件分岐命令や条件付き演算命令にて判定するために用いられている。従来のコンディションコードの制御方法に関する一例が、特開平8−305563号公報に記載されている。
この公報に記載されたコンディションコード制御では、コンディションコードは演算命令が実行されるたびに生成される。指定の条件を満たすときに演算が実行される条件付き演算命令は、その指定する条件を示す条件指定フィールドを備える。この条件指定フィールドに指定された条件にコンディションコードが合致するか否か判定され、合致したときのみ条件付演算命令は実行される。
このように、従来の方法では、コンディションコードは各演算命令の実行時に常に生成されることが多い。しかし、コンディションコードは、常時使用されるわけではなく、上述の条件付き演算命令や条件分岐命令など使用される範囲は限定される。プロセッサの実装方式やエミュレーション方式によっては、コンディションコードの判定よりもコンディションコードの生成処理に時間を要することもある。その場合、不要なコンディションコードを生成するために時間を費やすことになる。また、上記の条件付き演算命令は、その処理装置専用の命令であるため、他のソフトウェアやマイクロ命令との互換性を維持することは困難である。
また、特開平10−69384号公報および特開平11−327901号公報には、遅延分岐方式のプロセッサにおける遅延分岐命令の分岐動作を制御する遅延分岐制御方法に関連して、条件フラグの書き換えを制御する条件フラグ書き換え制御方法が開示されている。この条件フラグ書き換え制御方法では、プログラムにおける命令の前後関係に基づいて、条件フラグの書き換えを許可するか禁止するかが制御される。
特開昭57−5152号公報には、制御記憶装置の読出し制御方式に関する技術が開示されている。この方法は、制御記憶装置と、計数機能付きアドレスレジスタと、次番地アドレスを作成する手段と、分岐アドレスを格納する手段とを具備する。制御記憶装置は、マイクロプログラムを格納している。計数機能付きアドレスレジスタは、制御記憶装置に直接接続している。次番地アドレスを作成する手段は、マイクロ命令語を逐次読出すときに計数機能付きアドレスレジスタがその格納内容を計数して次番地アドレスを作成する。分岐アドレスを格納する手段は、分岐するときに制御記憶装置から読出されたマイクロ命令語に含まれた分岐アドレスを計数機能付きアドレスレジスタへ格納する。
特開2003−99248号公報には、命令供給手段と、解読手段と、命令発行制御手段と、実行手段とを備えるプロセッサの制御機能に関する技術が開示されている。命令供給手段は、複数の命令を供給し、解読手段は、複数の命令を各々解読する。命令発行制御手段は、複数の命令中に各命令を実行するか否かを示す条件を指定する実行条件情報が指定され、実行条件情報で指定された条件を参照して、有効なオペレーションを実行する命令又は命令の集合を決定する。実行手段は、複数の命令中に各命令の動作が指定され、指定に基づいて1つ又は複数のオペレーションを実行する。このうち、命令発行制御手段は、次の機能をさらに有する。まず、命令発行制御手段は、実行条件情報で指定された条件を参照することにより、実行する必要のある有効な命令であるか、実行する必要のない無効な命令であるかを判断する。無効な命令であると判断した命令に関しては、命令発行制御手段は、その命令を実行手段へ発行する前に命令自体を削除するように制御する。そして、命令発行制御手段は、その命令に代えて後続する有効な命令を実行手段に発行するように制御する。
特開平8−305563号公報 特開平10−69384号公報 特開平11−327901号公報 特開昭57−5152号公報 特開2003−99248号公報
本発明の目的は、処理効率が向上する情報処理装置および処理の高速化方法を提供することにある。
本発明の他の目的は、プログラムのバイナリコードを変更せずに処理効率が向上する情報処理装置および処理の高速化方法を提供することにある。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の観点では、情報処理装置は、命令実行制御部(11)と、演算実行部(12)と、コンディションコード生成部(13)とを具備する。情報処理装置が実行する命令は、複数の種類に分類される。命令実行制御部(11)は、プログラムを格納するメモリ(21)をアクセスして命令を取り出す。演算実行部(12)は、取り出した命令をマイクロ命令により実行する。コンディションコード生成部(13)は、命令が実行される順番に対応して定まる命令の種類の前後関係が所定の条件を満たすとき、命令の実行結果の状態を示すコンディションコードを生成する。
本発明の情報処理装置は、マイクロ命令記憶部(23)と、マイクロ命令制御記憶部(22)とをさらに具備する。マイクロ命令記憶部(23)は、マイクロ命令を格納する。マイクロ命令制御記憶部(22)は、マイクロ命令制御情報を命令コードに関連付けて格納する。マイクロ命令制御情報は、マイクロ命令の先頭アドレスと、命令の種類を示すCC生成フラグとを含む。マイクロ命令の先頭アドレスとは、各命令に対応するマイクロ命令がマイクロ命令記憶部(23)に格納されている領域の先頭アドレスであり、各命令に対応するマイクロ命令はこの先頭アドレスから実行される。コンディションコード生成部(13)は、このCC生成フラグに基づいて起動され、コンディションコードを生成する。
本発明の情報処理装置は、マイクロ命令制御記憶部(22)から取り出したCC生成フラグを保持するフラグ保持部をさらに備える。このフラグ保持部に保持される過去に実行された命令のCC生成フラグと、マイクロ命令制御記憶部(22)から取り出す未実行の命令のCC生成フラグとに基づいて、コンディションコード生成部(13)は起動される。
本発明において、実行される命令は、第1種類の命令と、第2種類の命令とを備える。第1種類の命令は、コンディションコードを生成するタイプの命令である。第2種類の命令は、コンディションコードを生成しないタイプの命令である。命令実行制御部(11)は、第1種類の命令の後に第2種類の命令をメモリ(21)から取り出したとき、コンディションコード生成部(13)を起動する。コンディションコード生成部(13)は、第1種類の命令の実行結果の状態を示すコンディションコードを生成する。
また、本発明において、実行される第2種類の命令は、第3種類の命令と、第4種類の命令とにさらに分類されてもよい。第3種類の命令は、コンディションコードを参照するタイプの命令である。第4種類の命令は、コンディションコードを参照しないタイプの命令である。その場合、命令実行制御部(11)は、第1種類の命令に続いて第3種類の命令を取り出したとき、または、第1種類の命令、第4種類の命令に続いて第3種類の命令を取り出したとき、コンディションコード生成(13)を起動する。コンディションコード生成部(13)は、第1種類の命令の実行結果の状態を示すコンディションコードを生成する。
本発明の他の観点では、情報処理装置の高速化方法は、フェッチステップ(ステップS21)と、実行ステップ(ステップS26)と、CC生成ステップ(ステップS24)とを具備する。この情報処理装置において、命令は複数の種類に分類される。フェッチステップ(ステップS21)は、プログラムを格納するメモリ(21)をアクセスして命令を取り出す。実行ステップ(ステップS26)は、取り出した命令をマイクロ命令により実行する。CC生成ステップ(ステップS24)は、命令が実行される順番に対応して定まる命令の種類の前後関係が所定の条件を満たすとき、命令を実行した結果の状態を示すコンディションコードを生成する。
本発明の情報処理装置の高速化方法では、情報処理装置は、マイクロ命令記憶部(23)と、マイクロ命令制御テーブルとをさらに具備する。マイクロ命令記憶部(23)は、マイクロ命令を格納する。マイクロ命令制御テーブルは、マイクロ命令制御情報を命令の命令コードに関連付けて格納する。マイクロ命令制御情報は、命令に対応するマイクロ命令が格納されるマイクロ命令記憶部(23)の先頭アドレスと、命令の種類を示すCC生成フラグとを含む。フェッチステップは、命令コードに基づいてCC生成フラグを取り出し、所定の条件を満たすか否かを判定する判定ステップを備える。
本発明の情報処理装置の高速化方法では、判定ステップおよびCC生成ステップは、次の命令がフェッチステップにより取り出された後に実行される。すなわち、フェッチステップ、判定ステップ、(条件に合致した場合は)前の命令の実行に対するCC生成ステップ、実行ステップの順に各ステップが実行される。
本発明において、命令は、コンディションコードを生成する第1種類の命令と、コンディションコードを生成しない第2種類の命令とを備える。フェッチステップによって、第1種類の命令、第2種類の命令の順に取り出されたとき、CC生成ステップは、第1種類の命令の実行結果の状態を示すコンディションコードを生成するステップを含む。
また、本発明において、第2種類の命令は、第3種類の命令と、第4種類の命令とを備えてもよい。第3種類の命令は、コンディションコードを参照するタイプの命令である。第4種類の命令は、コンディションコードを参照しないタイプの命令である。その場合、フェッチステップによって、第1種類の命令に続いて第3種類の命令が取り出されたとき、または、第1種類の命令、第4種類の命令に続いて第3種類の命令を取り出したとき、CC生成ステップは、第1種類の命令の実行結果の状態を示すコンディションコードを生成するステップを含む。
また、本発明の他の観点では、プログラムは、フェッチ処理(ステップS21)と、実行処理(ステップS26)と、CC生成処理(ステップS24)とを情報処理装置に実行させるためのプログラムである。情報処理装置により実行される命令は、複数の種類に分類され、マイクロ命令により実行される。フェッチ処理(ステップS21)は、メモリをアクセスして命令を取り出す処理である。実行処理(ステップS26)は、取り出した命令をマイクロ命令により実行する。CC生成処理(ステップS24)は、フェッチ処理により取り出した命令が実行される順番に対応して定まる命令の種類の前後関係が所定の条件を満たすとき、命令を実行した結果の状態を示すコンディションコードを生成する。
本発明のプログラムにおいて、CC生成処理は、所定の条件を満たすとき、次の命令がフェッチ処理により取り出された後に実行される。すなわち、フェッチ処理、条件に合致したとき前命令の実行に対するCC生成処理、実行処理の順にマイクロ命令が実行される。
本発明のプログラムにおいて、マイクロ命令記憶部と、マイクロ命令制御テーブルとをさらに具備し、フェッチ処理は、命令コードに基づいてCC生成フラグを取り出して、所定の条件を満足するか否かを判定する判定処理を備える。マイクロ命令記憶部は、マイクロ命令を格納している。マイクロ命令制御テーブルは、マイクロ命令制御情報を命令の命令コードに関連付けて格納する。マイクロ命令制御情報は、命令に対応するマイクロ命令が格納されるマイクロ命令記憶部の先頭アドレスと、命令の種類を示すCC生成フラグと含む。
本発明のプログラムにおいて、命令は、コンディションコードを生成する第1種類の命令と、コンディションコードを生成しない第2種類の命令とを備える。CC生成処理は、フェッチ処理により、第1種類の命令、第2種類の命令の順に命令が取り出されたとき、第1種類の命令の実行結果の状態を示すコンディションコードを生成する。
また、本発明のプログラムにおいて、第2種類の命令は、コンディションコードを参照する第3種類の命令と、コンディションコードを参照しない第4種類の命令とを備えてもよい。その場合、CC生成処理は、フェッチ処理により、第1種類の命令に続いて第3種類の命令が取り出されたとき、または、第1種類の命令、第4種類の命令に続いて第3種類の命令が取り出されたとき、第1種類の命令の実行結果の状態を示すコンディションコードを生成する処理を含む。
本発明の情報処理装置に実行させるためのプログラムは、情報処理装置により読み取り可能な記録媒体に記録される。
本発明によれば、処理効率が向上する情報処理装置および処理の高速化方法を提供することができる。
また、本発明によれば、プログラムのバイナリコードを変更せずに処理効率が向上する情報処理装置および処理の高速化方法を提供することができる。
図面を参照して本発明の実施の形態を説明する。図1は、第1の実施の形態に係る情報処理装置の構成を示すブロック図である。情報処理装置は、処理マシン部10と、データ部20とを具備する。処理マシン部10は、命令実行制御部11と、演算実行部12と、コンディションコード生成部13とを備える。データ部20は、プログラム記憶部21と、マイクロ命令制御記憶部22と、マイクロ命令記憶部23とを備える。
プログラム記憶部21は、ソフトウェア命令の列を格納する。マイクロ命令記憶部23は、各ソフトウェア命令に対応して処理を実行するマイクロ命令の列を格納する。マイクロ命令制御記憶部22は、各ソフトウェア命令と、マイクロ命令の列とを関連付けるマイクロ命令制御情報50を格納する。
処理マシン部10の命令実行制御部11、演算実行部12、コンディションコード生成部13は、マイクロ命令記憶部23に格納されるマイクロ命令を実行する。命令実行制御部11は、内蔵する命令カウンタに保持されているアドレスに基づいて、プログラム記憶部21に格納されているソフトウェア命令を読み出す。その後、命令実行制御部11は、マイクロ命令制御記憶部22を参照し、そのソフトウェア命令を処理する演算実行部12を起動する。演算実行部12は、ソフトウェア命令に指示される演算を実行する。コンディションコード生成部13は、必要に応じて起動され、演算実行部12の処理結果に基づいてコンディションコードを生成する。
マイクロ命令制御記憶部22に格納されるマイクロ命令制御情報50は、図3に示されるように、ソフトウェア命令の命令コードに対応付けてマイクロ命令エントリアドレス51とCC生成情報52とを格納する。ここでは、命令コードを8ビットとすると、マイクロ命令制御情報50は256ワードの情報を保持する。マイクロ命令制御情報50の各ワードは、32ビットで構成され、上位28ビットがマイクロ命令のエントリアドレス51を示し、下位4ビットがCC生成情報52を示す。マイクロ命令エントリアドレス51は、その命令コードにより実行されるべき処理動作を行うマイクロ命令の先頭アドレスを示す。
CC生成情報52は、図4(a)に示されるように、1ビットのCC生成フラグ55と3ビットのCC生成タイプ56とを備える。CC生成フラグ55は、図4(b)に示されるように、その命令コードを有するソフトウェア命令がコンディションコードを生成する種類の命令であるか否かを示す。すなわち、CC生成フラグ55は、“0”のときコンディションコードを生成しない種類のソフトウェア命令であることを示し、“1”のときコンディションコードを生成する種類の命令であることを示す。また、CC生成タイプ56は、図4(c)に示されるように、その命令コードを有するソフトウェア命令が生成するコンディションコードの種類を示す。例えば、生成タイプ56が“001”のとき、コンディションコードは、演算結果が“0”であれば“0”、演算結果が負であれば“1”、演算結果が正であれば“2”、演算結果がオーバフローであれば“3”に設定される。
次に、上記の情報処理装置の動作が説明される。
図5から図7にソフトウェア命令を実行する処理手順が示される。ソフトウェア命令の1語は、図5に示される手順で実行される。まず、命令実行制御部11は、ソフトウェア命令の命令語をプログラム記憶部21から取り出す(ステップS11)。演算実行部12は、取り出したソフトウェア命令により指示される演算を実行する(ステップS16)。コンディションコード生成部13は、演算結果に基づいてコンディションコードを生成する(ステップS18)。この手順を繰り返してソフトウェア命令が順次実行される。
単にこのループを繰り返すと、コンディションコードは演算命令ごとに毎回生成されることになる。例えば、加算結果がある値であるかを判定するプログラムは、加算する命令語と、その結果からある値を減算する命令語と、減算結果が0であるか判定して分岐する命令語の列になる。コンディションコードは加算、減算の演算する命令語を実行すると生成される。コンディションコードが使われるのは判定して分岐する命令語が実行されるときだけである。すなわち、減算の結果を反映するコンディションコードが生成されていればよく、加算する命令語によってコンディションコードが生成されなくても実行結果に影響はない。
したがって、本発明では、このコンディションコードの生成は、図6に示されるように、次の命令語の取り出しの後に行われる。すなわち、図5に示されるステップS18のコンディションコードの生成が次の命令語の取り出し(ステップS11)の後まで延期されて実行される。さらに、コンディションコード生成の必要性があるか否かを判定し、必要なときだけコンディションコードを生成する。
すなわち、ソフトウェア命令の1語は、以下の手順で実行される。まず、命令実行制御部11は、内蔵する命令カウンタによって指示されるソフトウェア命令の1語をプログラム記憶部21から取り出す(ステップS21)。
命令実行制御部11は、取り出したソフトウェア命令の命令コードを抽出し、これをインデックスとしてマイクロ命令制御記憶部22に格納されるマイクロ命令制御情報50を参照する。マイクロ命令制御情報50のうち、CC生成フラグ55が“0”すなわちコンディションコードを生成しないソフトウェア命令である場合、前に実行されたソフトウェア命令がコンディションコードを生成するソフトウェア命令すなわちCC生成フラグ55が“1”であるか否か判定する(ステップS23)。
前の命令のCC生成フラグ55が“1”のとき(ステップS23:1→0)、コンディションコード生成部13が起動される。コンディションコード生成部13は、すでに演算処理が終了しているソフトウェア命令のCC生成タイプ56に指定されるコンディションコードを生成する(ステップS24)。前の命令のCC生成フラグ55が“0”の場合、および、取り出したソフトウェア命令のCC生成フラグが“1”の場合(ステップS23:NO)、前のソフトウェア命令のコンディションコードは生成されない。すなわち、前のソフトウェア命令がコンディションコードを生成する種類の命令であり、取り出したソフトウェア命令がコンディションコードを生成しない種類の命令であるときのみコンディションコードが生成される。
次のソフトウェア命令のCC生成フラグ55の判定のために、取り出したマイクロ命令制御情報50のCC生成情報52が保持されるとともに、マイクロ命令制御情報50のマイクロ命令エントリアドレス51を参照してその命令語が実行される(ステップS26)。
演算実行部12は、図7に示されるように、命令語を実行する。まず、命令語に基づいてオペランドアドレスの計算が行われる。オペランドデータが演算レジスタに格納されている場合には演算レジスタ番号が計算され、オペランドデータが主メモリに格納されている場合には主メモリのアドレスが計算される(ステップS61)。
オペランドアドレスに基づいてオペランドデータが取り出され(ステップS62)、所定の演算が行われる(ステップS63)。演算が終了すると、演算結果は指定された場所に格納される(ステップS64)。この命令語の実行は、図5に示されるステップS16においても同じである。
この演算が終了した後、命令実行制御部11に内蔵される命令カウンタは、そのとき実行中のソフトウェア命令の命令語長だけ加算される。命令カウンタの値の更新は、ソフトウェア命令を取り出した後に行われてもよい。なお、ソフトウェア命令が分岐命令の場合には、演算結果の格納先は命令カウンタであり、命令カウンタは、分岐先を示す値に更新される。
このように、CC生成フラグ55を参照してコンディションコード生成処理が必要なときのみ実行される。コンディションコード生成が不要の場合に処理が省略されるため、処理効率が向上する。
次にソフトウェア命令の動作について説明する。メモリに格納されているデータを加算し、加算結果が“0”であったら分岐するプログラムを例とする。演算命令Aおよび演算命令Bは、メモリに格納されているデータを、そのアドレスを指定してレジスタに取り込むソフトウェア命令である。演算命令Aおよび演算命令Bの命令コードは同じであり、そのオペランドは異なる。これらは、コンディションコードを生成する種類の命令であるため、CC生成フラグ55に“1”、CC生成タイプ56に“0”が設定されている。CC生成情報52は、マイクロ命令制御情報50の所定の位置に設定されている。演算命令Cは、レジスタ間の加算を指示する命令であり、3つのレジスタをオペランドに指定する。演算命令Cは、加算結果に基づいてコンディションコードを生成する種類の命令であり、マイクロ命令制御情報50としてCC生成フラグ55に“1”、CC生成タイプ56に“1”が設定されている。分岐命令は、コンディションコードに“0”が設定されているとき、すなわち“演算結果が0である”ことを示すとき、分岐アドレスを命令カウンタに設定して分岐する。この分岐命令は、コンディションコードを生成しない。
ソフトウェア命令は、図8に示されるように、演算命令A、演算命令B、演算命令C、分岐命令の順に実行される。従来のように、コンディションコードの生成がそのソフトウェア命令のシーケンスの中で行われると、演算命令A/B/Cの各命令でコンディションコードが生成される。
すなわち、演算命令Aは、アドレスMMaで示されるメモリからメモリデータaをレジスタRegAに取り込む。レジスタRegAに“0”が格納される場合、コンディションコードは“0”が設定され、“0”以外のデータが格納されると、コンディションコードは“1”が設定される(ステップS71)。同じように、演算命令Bは、アドレスMMbで示されるメモリからメモリデータbをレジスタRegBに取り込む。レジスタRegBに“0”が格納されると、コンディションコードは“1”に、“0”以外のときは“1”が設定される(ステップS72)。演算命令Cは、レジスタRegAに格納されるデータとレジスタRegBに格納されるデータとを加算し、加算結果をレジスタRegCに格納する。演算命令CのCC生成タイプ56は“1”である。したがって、ここで生成されるコンディションコードは、図4(c)に示されるように、加算結果が0ならば“0”、負ならば“1”、正ならば“2”、オーバフローならば“3”となる(ステップS73)。分岐命令は、この演算命令Cにより設定されたコンディションコードが“0”を示すとき、分岐するように動作する(ステップS74)。したがって、演算命令Aおよび演算命令Bで生成されたコンディションコードは、使用されず、無駄に生成されたことになる。
図6に示されるように、コンディションコードの生成を次の命令の命令語を取り出した後まで遅延すると、図9に示されるように、コンディションコードの生成を省略することができる。以下にその手順が示される。
命令実行制御部11は、演算命令Aをフェッチする。プログラム記憶部21から取り出された演算命令Aの命令コードに基づいて、命令実行制御部11は、マイクロ命令制御記憶部22に格納されるマイクロ命令制御情報50を取り出す。演算命令Aは、CC生成フラグ55が“1”であるから、その前に実行された命令に影響されることなく、コンディションコード生成部13は起動されない。命令実行制御部11は、マイクロ命令制御情報50に設定されている演算命令Aのマイクロ命令エントリアドレス51に基づいて、演算実行部12を起動する。演算実行部12は、オペランドアドレスを算出し、アドレスMMaで示されるメモリからメモリデータaをレジスタRegAに取り込む(ステップS81)。
命令実行制御部11は、演算命令Bをフェッチする。演算命令Bの命令コードは、演算命令Aの命令コードと同一であるため、マイクロ命令制御情報50は同じである。演算命令BもCC生成フラグ55が“1”であるから、コンディションコード生成部13は起動されない。したがって、演算命令Aによるコンディションコードは生成されない。命令実行制御部11は、演算命令Bのマイクロ命令の先頭アドレスに基づいて、演算実行部12を起動する。演算命令Aおよび演算命令Bは同じマイクロ命令の先頭アドレスであり、同じ動作をする。演算実行部12は、オペランドアドレスを算出し、アドレスMMbで示されるメモリからメモリデータbをレジスタRegBに取り込む(ステップS82)。
命令実行制御部11は、演算命令Cをフェッチする。プログラム記憶部21から取り出された演算命令Cの命令コードに基づいて、命令実行制御部11は、マイクロ命令制御記憶部22に格納されるマイクロ命令制御情報50を取り出す。演算命令CもCC生成フラグ55が“1”であるから、コンディションコード生成部13は起動されない。したがって、演算命令Bによるコンディションコードは生成されない。命令実行制御部11は、マイクロ命令制御情報50に設定されている演算命令Cのマイクロ命令エントリアドレス51に基づいて、演算実行部12を起動する。演算実行部12は、レジスタRegAに格納されるデータaと、レジスタRegBに格納されるデータbとを加算する。加算した結果は、レジスタRegCに格納される(ステップS83)。
命令実行制御部11は、分岐命令をフェッチする。プログラム記憶部21から取り出された分岐命令の命令コードに基づいて、命令実行制御部11は、マイクロ命令制御記憶部22に格納されるマイクロ命令制御情報50を取り出す。分岐命令は、CC生成フラグ55が“0”であるから、命令実行制御部11は、保持している前の命令のCC生成フラグ55を確認する。前の命令は演算命令Cであり、CC生成フラグ55は“1”であるから、コンディションコード生成部13が起動される。コンディションコード生成部13は、保持されている演算命令CのCC生成タイプ56に基づいて、コンディションコードを生成する。演算命令CのCC生成タイプ56は“1”であるから、コンディションコード生成部13は、加算結果が0ならば“0”、負ならば“1”、正ならば“2”、オーバフローならば“3”を設定する。その後、命令実行制御部11は、マイクロ命令制御情報50に設定されている分岐命令のマイクロ命令エントリアドレス51に基づいて、演算実行部12を起動する。演算実行部12は、マイクロ命令を実行し、このコンディションコードに基づいて分岐するか否か判定する。条件を満たさない場合は、分岐命令の実行処理は終了し、分岐する場合は分岐アドレスを算出して命令カウンタに設定する。これによって、分岐が行われる(ステップS84)。
この後、さらに分岐命令が続く場合、ステップS84において実行される分岐命令のCC生成フラグ55が“0”であるから、コンディションコード生成部13は起動されない。コンディションコードは変化しないため、演算命令Cにより生成される可能性のあるコンディションコードそれぞれに対応する分岐命令を並べることにより、それぞれの条件における処理が可能になる。
上述のように、分岐命令の直前の演算命令Cによるコンディションコードだけが生成され、演算命令Aおよび演算命令Bによるコンディションコードの生成は省略される。ソフトウェア命令の実行時にその実行順により生成が行われるか、省略されるかが決定される。そのため、次の命令により上書きされるような無駄なコンディションコードは生成されず、情報処理装置の処理効率が向上する。また、ソフトウェア命令の互換性は完全に維持される。
図2に第2の実施の形態に係る情報処理装置の構成が示される。ここでは、情報処理装置のCPU(中央演算処理ユニット)部分が詳細に説明される。主メモリは、図示されていないが、バス30を介して接続される。CPUは、命令レジスタ31、マイクロ命令制御記憶部32、アドレス決定部33、マイクロ命令メモリ34、マイクロ命令レジスタ35、実行ユニット36、コンディションコードレジスタ(CC)37、CC生成フラグレジスタ(CF)40、プログラムカウンタ(PC)42、アドレスレジスタ(AR)44、データレジスタ(DR)45を具備する。
命令レジスタ31は、バス30を介して主メモリからプログラムカウンタ42により指定されるアドレスに格納されるソフトウェア命令を取り出し、保持する。マイクロ命令制御記憶部32は、マイクロ命令制御情報50を格納する。すなわち、図3に示されるように、マイクロ命令制御記憶部32は、ソフトウェア命令の命令コードに関連付けて、マイクロ命令のエントリアドレス51とCC生成情報52とを格納している。CC生成情報52は、図4(a)に示されるように、CC生成フラグ55と、CC生成タイプ56とを含む。CC生成フラグ55は、図4(b)に示されるように、コンディションコードを生成する(種類の)ソフトウェア命令であるか否かを示す。CC生成タイプ56は、図4(c)に示されるように、生成されるコンディションコードの種類が示される。マイクロ命令制御記憶部32は、命令レジスタ31に保持されるソフトウェア命令の命令コードに対応付けられているエントリアドレス51をアドレス決定部33に、CC生成情報52をアドレス決定部33とCC生成フラグレジスタ40とに出力する。
アドレス決定部33は、実行するマイクロ命令のアドレスを決定する。アドレス決定部33は、通常、実行アドレスを1ステップずつ歩進する。分岐するとき、アドレス決定部33は、CC生成フラグレジスタ40、マイクロ命令レジスタ35、マイクロ命令制御記憶部32、実行ユニット36から入力される分岐条件に基づいて、マイクロ命令制御記憶部32から出力されるエントリアドレス51、マイクロ命令メモリ34から出力される分岐先アドレスを取り込み、実行アドレスに設定する。
アドレス決定部33から出力される実行アドレスに基づいて、マイクロ命令メモリ34がアクセスされる。マイクロ命令メモリ34から読み出されたマイクロ命令は、マイクロ命令レジスタ35に設定される。マイクロ命令レジスタ35に設定されたマイクロ命令はデコードされ、制御信号が実行ユニット36や各レジスタに供給される。
実行ユニット36は、演算器および演算レジスタを備える。実行ユニット36は、バス30から取り込んだデータ、内蔵する演算レジスタに保持するデータ等に基づいて算術演算、論理演算を行い、内蔵する演算レジスタ、プログラムカウンタ42、アドレスレジスタ44、データレジスタ45に演算結果を格納する。また、演算時の状態をアドレス決定部33に出力する。
プログラムカウンタ42は、ソフトウェア命令の実行アドレスを示し、通常実行毎に歩進する。プログラムカウンタ42は、分岐命令等が実行されるとき、実行ユニット36の出力を設定する。アドレスレジスタは、主メモリに格納されるデータのアドレスを格納する。主メモリアクセスのときに、アドレスレジスタは、バス30に主メモリのアドレスを供給する。データレジスタ45は、主メモリに格納すべきデータを保持する。通常、データレジスタ45に格納されるデータは、アドレスレジスタ44により指定されるアドレスにバス30を介して書き込まれる。
図6を参照して、このCPUの動作が説明される。
プログラムカウンタ42に格納されている実行アドレスがバス30に供給され、ソフトウェア命令のフェッチが開始される。主メモリから読み出されたソフトウェア命令は、バス30を介して命令レジスタ31に格納される(ステップS21)。
命令レジスタ31に格納されるソフトウェア命令の命令コードに基づいて、マイクロ命令制御記憶部32から命令コードに対応付けられたエントリアドレス51と、CC生成情報52とが出力される。アドレス決定部33は、フェッチしたソフトウェア命令のマイクロ命令制御記憶部32から出力されているCC生成フラグ55と、CC生成フラグレジスタ40から出力されている演算実行されたソフトウェア命令のCC生成フラグ55とに基づいて、コンディションコードを生成するか否か判定し、次に実行するアドレスを決定する(ステップS23)。
CC生成フラグレジスタ40に格納されるフラグが“1”(コンディションコードを生成する種類の命令)であって、マイクロ命令制御記憶部32から出力されているフラグが“0”(コンディションコードを生成しない種類の命令)であるとき(ステップS23:1→0)、演算が終了しているソフトウェア命令のコンディションコードを生成するルーチンが開始される。すなわち、実行ユニット36から出力される演算状態が、CC生成フラグレジスタ40に格納されるCC生成タイプのどの種類のコンディションコードに合致するかマイクロ命令により判定される。その後、マイクロ命令によって、合致したコンディションコードがコンディションコードレジスタ37に設定される(ステップS24)。
コンディションコードを生成しない場合(ステップS23:NO)、アドレス決定部33は、次のステップS26に相当するアドレスをマイクロ命令メモリに与え、コンディションコード生成のルーチンは実行されない。ここで、実行する命令語は、命令レジスタ31に格納されているため、プログラムカウンタ42の更新は、どのタイミングで行われてもよいが、実行ユニット36の状態を保持する観点から、このステップS26ステップS26の実行に先立ち更新されることが好ましい。
次に、命令語の実行が行われる(ステップS26)。命令語の実行は、図7に示されるように、まず、オペランドアドレスの計算が行われる。オペランドデータが演算レジスタに格納されている場合は、実行ユニット36内の演算レジスタの番号が計算される。オペランドデータが主メモリに格納されている場合、実行ユニット36によりオペランドアドレスが計算されて、アドレスレジスタ44にオペランドアドレスが設定される(ステップS61)。アドレスレジスタ44によって指定されたオペランドデータは、バス30を介して実行ユニット36に供給される(ステップS62)。オペランドデータが揃うと、実行ユニット36は、指定される演算を実行する(ステップS63)。演算結果は、指定されるレジスタに格納される(ステップS64)。例えば、演算結果は、次の演算に備えて実行ユニット36内の演算レジスタに格納される。また、プログラムカウンタ42に格納される場合、その値は分岐命令の分岐先アドレスを示す。主メモリに演算結果を格納するとき、演算結果は、データレジスタに格納される。
演算が終了すると、次のソフトウェア命令を取り出し(ステップS11)、CC生成フラグ55の状態に基づいて終了した演算のコンディションコードが生成されるか否か判定される(ステップS23)。このように、ソフトウェア命令の取り出しの後に、前に実行したソフトウェア命令のコンディションコードが必要に応じて生成される。このように、ソフトウェア命令が、マイクロ命令の制御により実行される。なお、ソフトウェア命令の実行動作は、第1の実施の形態と同じであるため、説明は省略される。
このように、実行時のソフトウェア命令の並びに応じて、CC生成フラグ55の並びが決まり、必要に応じてコンディションコード生成のマイクロ命令が実行される。コンディションコードを生成しても使用されることがない場合は、コンディションコード生成が省略され、処理時間を短縮することができる。すなわち、CPUの処理効率を向上することが可能になる。また、コンディションコードの生成は、マイクロ命令制御記憶部32に格納されるCC生成フラグ55に基づいて行われるため、ソフトウェア命令やマイクロ命令の互換性を維持しつつ情報処理装置の処理効率を向上させることが可能となる。
ここでは、CC生成フラグは、コンディションコードを生成する種類の命令か否かを1ビットで示した。命令の種類として、コンディションコードを生成する種類の命令、コンディションコードを使用する種類の命令、コンディションコードを維持する(無関係な)種類の命令などのように分類し、2ビット以上で示すことにより、さらにコンディションコードの生成処理を削減することが可能になる。例えば、演算命令(コンディションコードを生成する種類の命令)に後続する無条件分岐命令(コンディションコードを維持する種類の命令)の分岐先が演算命令(コンディションコードを生成する種類の命令)であるときに、先の演算命令のコンディションコード生成処理を省略することができる。このとき、分岐命令が、無条件分岐命令(コンディションコードを維持する種類の命令)ではなく、条件分岐命令(コンディションコードを使用する種類の命令)である場合には、先の演算命令のコンディションコード生成処理は実行される。このように、連続する複数のソフトウェア命令において、コンディションコードの必要性を判断することにより、さらにコンディションコード生成処理を削減することが可能となる。また、複数の命令を同時に実行する情報処理装置においても、コンディションコードの生成を削減することが可能となる。
また、コンディションコードと同じように、他の情報に関しても関連する複数の命令の依存関係を分析し、マイクロ命令制御情報に追加して制御することにより命令セットの仕様通りに動作しなくても実質的な動作として問題にならない一部の処理を削減することも可能となる。
CC生成フラグを設けることにより、プログラムの流れのなかでコンディションコードを生成する必要があるか否かを判定することができるようになり、不要の場合には、コンディションコード生成の処理を抑止することが可能になる。また、CC生成フラグは、ソフトウェア命令に対応するマイクロ命令を実行するときのパラメータとしてCC生成情報に設定されるため、ソフトウェア命令およびマイクロ命令を変更する必要がない。
本発明の第1の実施の形態に係る情報処理装置の構成を示すブロック図である。 本発明の第2の実施の形態に係る情報処理装置の構成を示すブロック図である。 本発明の実施の形態に係るマイクロ命令制御情報を説明する図である。 同CC生成情報を説明する図である。 同ソフトウェア命令の実行の流れを説明する図である。 同ソフトウェア命令を実行するマイクロ命令の流れを示すフローチャートである。 同命令語の実行の流れを示すフローチャートである。 同ソフトウェア命令の実行シーケンスを説明する図である。 同コンディションコード生成処理が省略されることを説明する図である。
符号の説明
10 処理マシン部
11 命令実行制御部
12 演算実行部
13 コンディションコード生成部
20 データ部
21 プログラム記憶部
22 マイクロ命令制御記憶部
23 マイクロ命令記憶部
30 バス
31 命令レジスタ
32 マイクロ命令制御記憶部
33 アドレス決定部
34 マイクロ命令メモリ
35 マイクロ命令レジスタ
36 実行ユニット
37 コンディションコードレジスタ
40 CC生成フラグレジスタ
42 プログラムカウンタ
44 アドレスレジスタ
45 データレジスタ
50 マイクロ命令制御情報
51 エントリアドレス部
52 CC生成情報部
55 CC生成フラグ
56 CC生成タイプ

Claims (13)

  1. プログラムを格納するメモリをアクセスして命令を取り出す命令実行制御部と、前記命令は、複数の種類に分類され、
    取り出した前記命令をマイクロ命令により実行する演算実行部と、
    前記マイクロ命令を格納するマイクロ命令記憶部と、
    前記命令に対応する前記種類を示すCC生成フラグを含むマイクロ命令制御情報を前記命令の命令コードに関連付けて格納するマイクロ命令制御記憶部と、
    前記命令が実行される順番に対応して定まる前記CC生成フラグの前後関係が所定の条件を満たすとき、前記命令の実行結果の状態を示すコンディションコードを生成するコンディションコード生成部と
    を具備する
    情報処理装置。
  2. 前記マイクロ命令制御記憶部から取り出した前記CC生成フラグを保持するフラグ保持部をさらに備え、
    前記フラグ保持部に保持される実行済みの前記命令の前記CC生成フラグと、前記マイクロ命令制御記憶部から取り出す実行前の前記命令の前記CC生成フラグとに基づいて前記コンディションコード生成部を起動する
    請求項に記載の情報処理装置。
  3. 前記命令は、
    前記コンディションコードを生成する第1種類の命令と、
    前記コンディションコードを生成しない第2種類の命令と
    を備え、
    前記命令実行制御部は、前記第1種類の命令の後に前記第2種類の命令を前記メモリから取り出したとき、前記コンディションコード生成部を起動し、
    前記コンディションコード生成部は、前記第1種類の命令の実行結果の状態を示す前記コンディションコードを生成する
    請求項1または請求項に記載の情報処理装置。
  4. 前記第2種類の命令は、
    前記コンディションコードを参照する第3種類の命令と、
    前記コンディションコードを参照しない第4種類の命令と
    を備え、
    前記命令実行制御部は、前記第1種類の命令に続いて前記第3種類の命令を取り出したとき、または、前記第1種類の命令、前記第4種類の命令に続いて前記第3種類の命令を取り出したとき、前記コンディションコード生成を起動し、
    前記コンディションコード生成部は、前記第1種類の命令の実行結果の状態を示す前記コンディションコードを生成する
    請求項に記載の情報処理装置。
  5. プログラムを格納するメモリをアクセスして命令を取り出すフェッチステップと、前記命令は、複数の種類に分類され、
    取り出した前記命令をマイクロ命令により実行する実行ステップと、
    前記マイクロ命令をマイクロ命令記憶部に格納するステップと、
    前記命令に対応する前記種類を示すCC生成フラグを含むマイクロ命令制御情報を前記命令の命令コードに関連付けてマイクロ命令制御テーブルに格納するステップと、
    前記命令が実行される順番に対応して定まる前記種類の前後関係が所定の条件を満たすとき、前記命令の実行結果の状態を示すコンディションコードを生成するCC生成ステップと
    を具備し、
    前記フェッチステップは、前記命令コードに基づいて前記CC生成フラグを取り出し、前記所定の条件を満たすか否かを判定する判定ステップを備える
    情報処理装置の高速化方法。
  6. 前記判定ステップと前記CC生成ステップとは、次の命令を前記フェッチステップにより取り出した後に実行される
    請求項に記載の情報処理装置の高速化方法。
  7. 前記命令は、
    前記コンディションコードを生成する第1種類の命令と、
    前記コンディションコードを生成しない第2種類の命令と
    を備え、
    前記フェッチステップにより、前記第1種類の命令、前記第2種類の命令の順に取り出したとき、前記CC生成ステップは、前記第1種類の命令の実行結果の状態を示す前記コンディションコードを生成するステップを含む
    請求項5または請求項に記載の情報処理装置の高速化方法。
  8. 前記第2種類の命令は、
    前記コンディションコードを参照する第3種類の命令と、
    前記コンディションコードを参照しない第4種類の命令と
    を備え、
    前記フェッチステップにより、前記第1種類の命令に続いて前記第3種類の命令を取り出したとき、または、前記第1種類の命令、前記第4種類の命令に続いて前記第3種類の命令を取り出したとき、前記CC生成ステップは、前記第1種類の命令の実行結果の状態を示す前記コンディションコードを生成するステップを含む
    請求項に記載の情報処理装置の高速化方法。
  9. メモリをアクセスして命令を取り出すフェッチ処理と、前記命令は、複数の種類に分類され、
    取り出した前記命令をマイクロ命令により実行する実行処理と、
    前記命令が実行される順番に対応して定まる前記種類の前後関係が所定の条件を満たすとき、次の命令が前記フェッチ処理により取り出された後に前記命令を実行した結果の状態を示すコンディションコードを生成するCC生成処理と
    を情報処理装置に実行させるためのプログラム。
  10. 前記マイクロ命令をマイクロ命令記憶部に格納する処理と、
    前記命令に対応する前記種類を示すCC生成フラグと含むマイクロ命令制御情報を前記命令の命令コードに関連付けてマイクロ命令制御テーブルに格納する処理
    をさらに具備し、
    前記フェッチ処理は、前記命令コードに基づいて前記CC生成フラグを取り出して前記所定の条件を満たすか否かを判定する判定処理を備える
    請求項に記載の情報処理装置に実行させるためのプログラム。
  11. 前記命令は、
    前記コンディションコードを生成する第1種類の命令と、
    前記コンディションコードを生成しない第2種類の命令と
    を備え、
    前記フェッチ処理により、前記第1種類の命令、前記第2種類の命令の順に命令が取り出されたとき、前記CC生成処理は、前記第1種類の命令の実行結果の状態を示す前記コンディションコードを生成する
    請求項9または請求項10に記載の情報処理装置に実行させるためのプログラム。
  12. 前記第2種類の命令は、
    前記コンディションコードを参照する第3種類の命令と、
    前記コンディションコードを参照しない第4種類の命令と
    を備え、
    前記フェッチ処理により、前記第1種類の命令に続いて前記第3種類の命令が取り出されたとき、または、前記第1種類の命令、前記第4種類の命令に続いて前記第3種類の命令が取り出されたとき、前記CC生成処理は、前記第1種類の命令の実行結果の状態を示す前記コンディションコードを生成する処理を含む
    請求項11に記載の情報処理装置に実行させるためのプログラム。
  13. 請求項から請求項12のいずれかに記載の情報処理装置に実行させるためのプログラムを記録した情報処理装置読み取り可能な記録媒体。
JP2006212038A 2006-08-03 2006-08-03 情報処理装置および情報処理の高速化方法 Expired - Fee Related JP4159586B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006212038A JP4159586B2 (ja) 2006-08-03 2006-08-03 情報処理装置および情報処理の高速化方法
US11/833,275 US7886133B2 (en) 2006-08-03 2007-08-03 Information processing apparatus and method for accelerating information processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006212038A JP4159586B2 (ja) 2006-08-03 2006-08-03 情報処理装置および情報処理の高速化方法

Publications (2)

Publication Number Publication Date
JP2008040658A JP2008040658A (ja) 2008-02-21
JP4159586B2 true JP4159586B2 (ja) 2008-10-01

Family

ID=39030645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006212038A Expired - Fee Related JP4159586B2 (ja) 2006-08-03 2006-08-03 情報処理装置および情報処理の高速化方法

Country Status (2)

Country Link
US (1) US7886133B2 (ja)
JP (1) JP4159586B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11487506B2 (en) 2019-08-09 2022-11-01 International Business Machines Corporation Condition code anticipator for hexadecimal floating point
US11314512B2 (en) * 2019-08-09 2022-04-26 International Business Machines Corporation Efficient checking of a condition code anticipator for a floating point processor and/or unit

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS575152A (en) 1980-06-11 1982-01-11 Toshiba Corp Readout control system of control storage device
JPS63178330A (ja) 1987-01-20 1988-07-22 Toshiba Corp 演算フラグ制御装置
JPH0667669B2 (ja) 1987-09-10 1994-08-31 富士写真フイルム株式会社 感熱記録材料
JP2723238B2 (ja) * 1988-01-18 1998-03-09 株式会社東芝 情報処理装置
JP2834862B2 (ja) * 1990-07-13 1998-12-14 松下電器産業株式会社 プロセッサ
JP3454393B2 (ja) 1995-05-11 2003-10-06 株式会社日立製作所 データ処理装置
US5752069A (en) * 1995-08-31 1998-05-12 Advanced Micro Devices, Inc. Superscalar microprocessor employing away prediction structure
US5854921A (en) * 1995-08-31 1998-12-29 Advanced Micro Devices, Inc. Stride-based data address prediction structure
US5781789A (en) * 1995-08-31 1998-07-14 Advanced Micro Devices, Inc. Superscaler microprocessor employing a parallel mask decoder
JP3150667B2 (ja) 1996-05-30 2001-03-26 松下電器産業株式会社 条件フラグ書き換え制御方法及び回路
US5859999A (en) * 1996-10-03 1999-01-12 Idea Corporation System for restoring predicate registers via a mask having at least a single bit corresponding to a plurality of registers
US6009512A (en) * 1997-10-27 1999-12-28 Advanced Micro Devices, Inc. Mechanism for forwarding operands based on predicated instructions
US6157996A (en) * 1997-11-13 2000-12-05 Advanced Micro Devices, Inc. Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space
AR037233A1 (es) * 2001-09-07 2004-11-03 Euro Celtique Sa Piridinas aril sustituidas, composiciones farmaceuticas y el uso de dichos compuestos para la elaboracion de un medicamento
JP3564445B2 (ja) 2001-09-20 2004-09-08 松下電器産業株式会社 プロセッサ、コンパイル装置及びコンパイル方法
US7331040B2 (en) * 2002-02-06 2008-02-12 Transitive Limted Condition code flag emulation for program code conversion
GB0202728D0 (en) * 2002-02-06 2002-03-27 Transitive Technologies Ltd Condition code flag emulation for program code conversion
JP3974063B2 (ja) * 2003-03-24 2007-09-12 松下電器産業株式会社 プロセッサおよびコンパイラ
US7536682B2 (en) * 2003-04-22 2009-05-19 International Business Machines Corporation Method and apparatus for performing interpreter optimizations during program code conversion
US7543284B2 (en) * 2003-04-22 2009-06-02 Transitive Limited Partial dead code elimination optimizations for program code conversion
GB2402510A (en) * 2003-06-05 2004-12-08 Advanced Risc Mach Ltd Predication instruction within a data processing system
JP2005063042A (ja) 2003-08-08 2005-03-10 Renesas Technology Corp 情報処理装置およびデータ転送装置
US7544376B2 (en) * 2004-07-30 2009-06-09 Sartec Corporation Methods and compositions for increasing milk production in animals

Also Published As

Publication number Publication date
US7886133B2 (en) 2011-02-08
US20080034188A1 (en) 2008-02-07
JP2008040658A (ja) 2008-02-21

Similar Documents

Publication Publication Date Title
JP4718901B2 (ja) 命令実行装置、デバッグ方法、デバッグ装置及びデバッグプログラム
JPH06274352A (ja) コンパイラ、及びデータ処理装置
JP2007272353A (ja) プロセッサ装置及び複合条件処理方法
JPS62197830A (ja) デ−タ処理システム
JP4864840B2 (ja) マイクロプロセッサ
US4945511A (en) Improved pipelined processor with two stage decoder for exchanging register values for similar operand instructions
JP2008305185A (ja) プロセッサ装置及び複合条件処理方法
US10338926B2 (en) Processor with conditional instructions
JP2008146544A (ja) 演算処理装置
JP4159586B2 (ja) 情報処理装置および情報処理の高速化方法
JPS6212529B2 (ja)
JP4800582B2 (ja) 演算処理装置
JP2006053830A (ja) 分岐予測装置および分岐予測方法
JP2002024008A (ja) データ処理装置およびプログラム変換装置
WO2024029174A1 (ja) ジャンプ命令に基づくパイプライン処理を制御するプロセッサ及びプログラム記録媒体
JP2583506B2 (ja) データ処理装置
JP3472504B2 (ja) 命令解読方法、命令解読装置及びデータ処理装置
JP2005322110A (ja) プログラム変換装置及びプロセッサ
JPH1091434A (ja) クイック・デコード命令を用いるための方法およびデータ処理システム
JP5866697B2 (ja) 複数のコンディションフラグを有するcpu
JP2005149297A (ja) プロセッサおよびそのアセンブラ
JP2004005738A5 (ja)
JP5263498B2 (ja) 信号処理プロセッサ及び半導体装置
JP2007156557A (ja) 並列プロセッサ
JP2010092273A (ja) 情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080617

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080715

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4159586

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110725

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120725

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130725

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees