JPH02226342A - データ処理方法及び装置 - Google Patents

データ処理方法及び装置

Info

Publication number
JPH02226342A
JPH02226342A JP2001127A JP112790A JPH02226342A JP H02226342 A JPH02226342 A JP H02226342A JP 2001127 A JP2001127 A JP 2001127A JP 112790 A JP112790 A JP 112790A JP H02226342 A JPH02226342 A JP H02226342A
Authority
JP
Japan
Prior art keywords
condition
instruction
value
instructions
register
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
JP2001127A
Other languages
English (en)
Other versions
JPH0776921B2 (ja
Inventor
Daniel Arthur Prener
ダニエル・アーサー・プレナー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH02226342A publication Critical patent/JPH02226342A/ja
Publication of JPH0776921B2 publication Critical patent/JPH0776921B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は一般に並列パイプライン式データ処理装置の設
計に関し、具体的には、それによって処理されるデータ
項目間の条件関係を処理する装置と方法に関する。
B、従来の技術 条件レジスタは、データ・プロセッサ中で使用され、処
理中のデータに、ある条件関係、たとえば第2レジスタ
に記憶されたデータ項目の値が第2レジスタに記憶され
たデータ項目の値より大きいという条件関係がいつ存在
するかを記録する。
プロセッサによって実行されるプログラムは、通常、条
件レジスタに記録された条件関係に基づいてプログラム
の制御フローを変更する、条件付き分岐命令を使用する
条件付き分岐命令では、プロセッサは、データがある条
件を満たす場合に第1の命令シーケンスを実行し、その
条件が満たされない場合に第2の命令シーケンスを実行
するよう指令される。たとえば、2つのレジスタAとB
があると仮定すると、条件付き分岐命令は、Aに保持さ
れた値がBに保持された値より大きい場合にプロセッサ
はある命令シーケンスを実行し、そうでない場合は別の
命令シーケンスを実行することができる。
大半の高性能プロセッサでは、条件の有無が演算論理機
構(ALU)によって検査され、検査結果が条件レジス
タに記憶される。次に、プログラム順序づけユニットが
、条件レジスタの結果を用いて、実行中のプログラムに
よって定義されるように、プロセッサを通る命令制御フ
ローを変更する。一般に、データ処理システムの各プロ
セッサは条件レジスタを1つだけ含み、そのレジスタは
他のプロセッサと共用されない。
この条件レジスタは、一般に複数の命令の実行をオーバ
ラップさせることができるコンピュータ・システムでは
大きなボトルネックになる可能性がある。このボトルネ
ックは、連続する命令が1つの条件レジスタへの衝突す
るアクセスを必要とするとき、パイプライン・プロセッ
サ中で発生する、たとえば以下の命令の組合せを考えて
みる。
COMPARE  (A、B) BRANCHIF  EQUAL COMPARE  (C,D) BRANCHIF  GREATER 第1の命令は、レジスタAとBの内容を比較し、AがB
より大きいか、等しいか、あるいは小さい場合に、それ
ぞれ条件レジスタの個々のビットを設定する。第2の命
令は、比較の結果、レジスタAとBに保持された値が等
しい場合にプログラムの制御フローを変更する(すなわ
ち、新しい命令に分岐する)。第3の命令は、レジスタ
CとDの内容を比較して、比較の結果を同じ条件レジス
タに記憶する。最後に、第4の命令は、「超」ビットが
条件レジスタでセットされる場合に新しい命令に分岐す
る。
ただ1つの条件レジスタを使用する従来のパイプライン
・プロセッサでは、第2及び第3の命令の実行をオーバ
ラップさせることは望ましくない。
しかし、これが起こった場合、第2の命令が第1命令に
よって決定された条件値に基づいた分岐動作を完了する
前に、第3の命令が条件レジスタの値を変更してしまう
ことがある。
従来の多くのプロセッサ設計では、固定小数点(すなわ
ち、整数)演算と浮動小数点(すなわち、実数)演算に
別の処理要素が使用される。これらのプロセッサが共通
の条件レジスタを使用する場合、一方のプロセッサが他
方のプロセッサと並列に条件レジスタにアクセスしよう
とする場合にその一方のプロセッサを一時的に中止させ
る、何らかの機構をプロセッサに含めることが望ましい
また、これらのプロセッサがそれぞれ専用の条件レジス
タを含む場合、条件付き分岐動作が両方のプロセッサで
発生する条件に基づくとき、2つのプロセッサを注意深
く同期させることが必要となることがある。
米国特許第4136383号は、複数のALUが並列デ
ータ処理のため並列構成で使用されるという、データ処
理システムに関するものである。
各ALUは、条件の有無を検査する回路及び検査結果を
保持するレジスタを含む。各ALUの検査結果は、すべ
てのALUの命令フローを決定する共通制御回路に送ら
れる。
米国特許第4748585号は、複数のビット・スライ
ス・サブプロセッサを含むプロセッサに関するものであ
る。すべてのサブプロセッサはロッり・ステップで動作
するが、各サブプロセッサに、別々の1組のオペランド
、別々の命令コード、及び別々の条件コード・マスクが
割り当てられる。
したがって、ビット・スライス・サブプロセッサは、グ
ループ別に編成でき、各グループが異なる命令シーケン
スを実行する。すべてのプロセッサの条件付き分岐は、
すべてのプロセッサによって生成される条件値の組合せ
によって制御される。
IBMテクニカル・ディスクロージャ・プルテン、Vo
l、25、No、1 (1982年6月)、1)I)、
134−137に所載のT、に、M、アガーワラ(Ag
erwa la )の2編の論文は、個別の固定小数点
及び浮動小数点処理要素を含む縮小命令セット・コンピ
ュータ(RISC)システムに関するものである。両方
の処理要素が共通制御装置によって順序づけられる。各
処理要素はそれ自体の内部条件レジスタをもつ。予備分
岐判断は、各プロセッサがこれらのレジスタの値に基づ
いて行なう。次に、こうした予備判断が中央分岐処理装
置で組み合わされて、最終分岐判断が生成される。
C0発明が解決しようとする課題 本発明の目的は、パイプライン・コンピュータ・システ
ムまたは並列コンピュータ・システムで条件値にアクセ
スする命令のオーバラップを可能にする装置を提供する
ことである。
本発明の他の目的は、複数の命令によってコンピュータ
・システム内で生成された条件値を容易に組み合わせて
、コンピュータ・システムによって実行される命令シー
ケンスを制御するのに使用される別の条件値を形成する
機構を提供することである。
09課題を解決するための手段 本発明は、複数の条件値を記憶する手段を含むコンピュ
ータ・システムで具体化される。条件値を設定しまたは
読み取る各命令は、個別に条件値の1つに関連づけられ
ており、他のどの値も無視して、その1つの値だけを設
定しまたは読み取る。
本発明の別の実施例によると、コンピュータ・システム
は、複数の条件値を組み合わせて別の条件値を生成する
機構を含む。
本発明の他の実施例では、コンピュータ・システムは、
複数の処理段を含み、各段が条件値を設定し読み取るよ
うに接続されている。このコンピュータ・システムは、
すべての処理段に共通の命令順序づけ装置、及び任意の
条件値に応答して各プロセッサによって実行される命令
シーケンスを制御する機構を含む。
本発明の他の実施例では、コンピュータ・システムは、
パイプライン式プロセッサと、条件評価命令と条件付き
分岐命令の実行をオーバラップさせる制御回路とを含む
E、実施例 第1図は、本発明の実施例を含むデータ処理システムの
構成図である。このシステムは、浮動小数点プロセッサ
16及び固定小数点プロセッサ18を含むRISC型シ
ステムである。両方のプロセッサが分岐ユニット14に
よって制御される。
浮動小数点プロセッサ16は、浮動小数点レジスタ・フ
ァイル22及び汎用レジスタ・ファイル24に保持され
たデータに作用する。固定小数点プ0セツサ18は、汎
用レジスタ・ファイル24に保持されたデータに作用す
る。第1図に示すRISCシステムはまた、主記憶域1
0、データ・キャッシュ・メモリ20及び命令キャッシ
ュ・メモリ12を含む。
一般に、システムは以下のように動作する。分岐ユニッ
ト14が、命令キャッシュ12を介して主メモリ10か
ら命令を取り出す。次に、分岐ユニット14は、浮動小
数点プロセッサ16と固定小数点プロセッサ18の間で
こうした命令を分割する。取出命令及び記憶命令以外の
場合、プロセッサ16と18は、浮動小数点レジスタ・
ファイル22及び汎用レジスタ・ファイル24に記憶さ
れたデータのみに作用する。取出命令及び記憶命令では
、プロセッサ16と18は、データ・キャッジ520を
介してメモリ10と当該のレジスタ・ファイル22及び
24との間でデータを転送する。
後でより詳細に説明するように、本発明のこの実施例で
使用する分岐ユニット14は、8つのフィールドをもつ
条件レジスタを含む。第1図に示したプロセッサ用の実
行可能コードを生成するソフトウェア・コンパイラは、
たとえば、特定の比較命令とそれに対応する検査命令を
条件レジスタの特定フィールドに割り当てる。後続の比
較/検査命令対を、異なるフィールドに割り当てると、
第2対の比較命令が第1対の検査命令と同時に実行でき
る。条件レジスタのフィールドは、その命令が浮動小数
点プロセッサ16と固定小数点プロセッサ18のどちら
によって実行されるかに応じて、ある命令に割り当てら
れる。
第1図に示す処理システムの制御機能は、分岐ユニット
14によって提供される。第2図は、分岐ユニット14
として使用するのに適した回路の構成図である。第2図
で、キャッシュ12からの命令が、命令レジスタ212
に供給される。これらの命令は命令復号器214によっ
て復号される。
命令復号器214はそれ自体、浮動小数点プロセッサ(
FLP)16、固定小数点プロセッサ(FXP)18、
条件ユニット218及びアドレス生成機構216向けの
命令を生成する。さらに、分岐ユニット14は、第3図
に関して後で説明するレジスタ312など条件レジスタ
のコピーをセーブ及び回復するために、汎用レジスタ2
4に直接アクセスすることができる。この接続により、
プロセッサは、割込み事象によって生成されたサブルー
チンの呼出しの前後の条件レジスタの状態をセーブする
ことができる。
キャッシュ12は、命令レジスタ212に供給された命
令の後に続く複数の命令を含む。ある命令が命令復号器
214によって処理されているとき、後続の命令が命令
レジスタ212に供給される。それらの間にハードウェ
ア資源の使用に関して衝突がない場合、復号器214は
、1つの命令サイクルで連続する2つの命令を復号する
ことができる。
命令復号器214は、従来の設計のもので、事前プログ
ラム式読取り専用メモリ(図示せず)によって実施でき
る。命令復号器214は、浮動小数点命令を浮動小数点
プロセッサ16に供給し、固定小数点命令を固定小数プ
ロセッサ18に供給し、分岐命令を条件ユニット218
とアドレス生成機構216に供給し、ロード命令と記憶
命令を浮動小数点レジスタ22及び汎用レジスタ24に
供給する。しかし、この命令復号動作は、固定小数点命
令を固定小数点プロセッサに経路指定し、浮動小数点命
令を浮動小数点プロセッサに経路指定する以上のもので
ある。この命令復号器は、たとえば、固定小数点プロセ
ッサで実行するために浮動小数点データ・ロード命令の
アドレス計算部分を分割して、その結果を浮動小数点プ
ロセッサ16に供給する。プロセッサ16は、データ・
キャッシュ20からのデータを浮動小数点レジスタ・フ
ァイル22にロードする。
アドレス生成機構216は、従来の設計のもので、命令
キャッシュ12にアドレス値を供給して、命令を命令レ
ジスタ212に供給するようにキャッシュを条件付ける
。生成機構216は、連続する命令実行中に、現在の命
令のアドレスを増分する回路(図示せず)を含む。アド
レス生成機構はまた、条件ユニット218から供給され
る条件の値に基づいて、増分された現命令アドレス、ま
たは例えば汎用レジスタ・ファイル24から供給される
分岐命令アドレス値のどちらかを選択する、マルチプレ
クサ(図示せず)などの回路も含む。分岐命令アドレス
値はまた、現命令から命令復号器214によって供給さ
れる。
条件ユニット218から供給される条件値は、たとえば
それぞれ、より大きい(超)、より小さい(未満)、及
び等しい(等値)という比較結果を表す3ビツトを含む
。分岐命令は通常、アドレス生成機構216中で供給さ
れる条件値と論理的にANDされるマスクを含む。次い
で、この動作の結果の個々のビットが、アドレス生成機
構216向部の回路と論理的にORされる。この回路の
出力信号は、次の連続命令アドレス値または分岐アドレ
ス値を命令キャッシュ12に供給するように、マルチプ
レクサを条件付けるこの回路により、A≧B(’A−t
−Bなどの分岐条件が実施できる。
上記のように、条件ユニット218は、条件値をアドレ
ス生成機構216に供給する。第3図は、=14 条件ユニット218として使用するのに適した回路の構
成図である。第3図の条件ユニット回路は、条件レジス
タ312、条件レジスタ312の内容に作用する命令を
実施する制御装置310.2つのフィールド選択デマル
チプレクサ314と316、フィールド選択マルチプレ
クサ318、及びインタロック検出器320を含む。
レジスタ312は、8つの条件フィールドCFOないし
CF7を含む。これらのフィールドは8つの異なる条件
レジスタを表し、その各々が比較命令を受は取り、また
条件付き分岐命令による検査を受けることができる。フ
ィールド選択デマルチプレクサ314と316は、それ
ぞれ浮動小数点プロセッサ16と固定小数点プロセッサ
18から条件値を受は取るため、そのレジスタの1つの
フィールドを選択する。フィールド選択マルチプレクサ
318は、条件値をアドレス生成機構216に供給する
ため、レジスタ312の8つのフィールドの1つを選択
する。デマルチプレクサ314と316によって選択さ
れるフィールドは、当該の浮動小数点プロセッサ及び固
定小数点プロセッサによって実行中の命令によって決定
される。マルチプレクサ318によって選択されるフィ
ールドは、命令復号器214によって決定される。
制御装置310は、処理システムに、命令復号器を介し
て、条件レジスタ312の様々なフィールドを操作させ
、レジスタ312の全体の内容をセーブし呼び出させる
。制御装置310は、たとえば、多数の条件フィールド
の論理積または論理和を形成する回路(図示せず)、及
び条件フィールドの1つに論理組合せを記憶する回路(
図示せず)を含むことができる。この回路は、A<BA
ND  C>Dなど複雑な条件の評価を容易にする。
複数の制御装置310、浮動小数点プロセッサ16、固
定小数点プロセッサ18、及び命令復号器214が単一
命令サイクル中にレジスタ312の同じフィールドを選
択した場合、その条件値に応じて実行される計算が誤っ
ていることがある。
エラーが発生するのは、たとえば、条件値がプロセッサ
16と18のどちらかの比較命令によって同時に設定さ
れ、アドレス生成機構216の分岐命令によって読み取
られるときである。この場合、条件値は、分岐命令がそ
の値を検査する前、その最中またはその後に設定できる
この種のエラーを防ぐため、第3図に示す条件ユニット
は、インタロツタ回路320を含む。この回路は、制御
装置3101任意の1命令サイクル中に、フィールド選
択マルチプレクサ318及びフィールド選択デマルチプ
レクサ314及び316のうちの1つだけに、レジスタ
312の任意のフィールドにアクセスさせる。これらの
装置のうち第2の装置が、第1の装置がアクセス中のフ
ィールドにアクセスしようとする場合、インタロック回
路320は命令復号器214に、競合を引き起こす命令
を中断するよう指令する。言い換えれば、インタロック
回路320は、レジスタ312のいずれか1つのフィー
ルドへの潜在的に競合するアクセスを検出すると、命令
復号器に、システムをパイプライン・プロセッサとして
ではなく、直列プロセッサとして動作させる。
浮動小数点プロセッサ16と固定小数点プロセッサ18
は、はぼ同じ方式で比較命令を評価する。
したがって、固定小数点プロセッサ18についてのみ以
下に説明する。第4図は、固定小数点プロセッサ18と
して使用するのに適した回路の構成図である。図を簡単
にするため、データ・キャッシュ20を介してメモリ・
データにアクセスする回路は第4図から省略しである。
第4図で、通常の演算論理機構(ALU)414が、レ
ジスタ410と412からそれぞれ入力オペランドAと
Bを受は取って、出力結果Cをレジスタ416に送る。
ALU414によって実行される関数と、レジスタ・フ
ァイル24中の結果C及びオペランドAとBのアドレス
はすべて、命令レジスタ418に保持された命令ワード
によって供給される。この命令ワードは、上記のように
命令復号器214から供給される。
命令ワードは、4つのフィールドを含む。第1のフィー
ルドICDは命令コードを含む。このフィールドの一部
は、制御値としてALU414に供給される。この制御
値は、ALUによって実行される演算、たとえばA+B
1A−B、またはA  AND  Bを実行する。第2
のフィールドAR及び第3のフィールドBRは、オペラ
ンドAとBを保持する汎用レジスタ・ファイル24中の
個々のレジスタを識別する。第4のフィールドCR/F
IDは、ALU414によって生成される結果を受は取
るように指定された汎用レジスタを識別し、比較命令の
場合は、条件レジスタ312のどのフィールドが比較の
結果を受は取るかを識別する。
比較命令、たとえばCOMPARE  A、B:は、固
定小数点プロセッサにより以下のようにして評価される
。オペランドAとBがそれぞれレジスタ410と412
にロードされ、減算を示す制御値がALU414に供給
される。この制御値に応答して、ALU414は、A−
Bを表す値をレジスタ416に供給する。この値が、条
件評価回路424に供給される。回路424は、たとえ
ば、その結果Cが負の場合は条件値の「未満」ビットを
セットし、Cがゼロの場合は「等値」ビットをセットし
、Cが非ゼロで正の場合は「超」ビットをセットする。
回路424から供給される条件値は、条件フィールド識
別子に連結される。この識別子は、命令レジスタ418
の第4フイールドからマルチプレクサ420を介して供
給される。組み合わされた値は、分岐ユニット14のフ
ィールド選択デマルチプレクサ316に供給される。
マルチプレクサ420はまた、ディジタル値発生源42
2から条件フィールド識別子として省略時フィールド値
を供給されるように接続されている。この値が供給され
るのは、ADD  ANDCOMPAREなどの命令が
評価されるときである。この種の命令は、汎用レジスタ
に記憶すべき結果と、その結果がゼロより小さいか、等
しいか、またはより大きいかを示す条件値を生成する。
これらの命令では、フィールドCR/F I Dは、A
DD演算の結果を保持するように指定された汎用レジス
タを示す。条件フィールド識別子DFは、プロセッサ1
8の省略時フィールド識別子である。
条件フィールドを指示しないどの命令でもこれは同じで
ある。さらに、条件フィールドの使用で競合する可能性
を減少させるため、省略時フィールド値は、ソフトウェ
ア・コンパイラによっである命令に割り当てられるどの
フィールド値とも異なることが望ましい。浮動小数点プ
ロセッサ16は、ディジタル値発生源422とほぼ同じ
回路とマルチプレクサ420とを含む。ただし、浮動小
数点プロセッサ16から供給される省略時フィールド識
別子は、発生源422から供給されるものとは異なるこ
とが望ましい。
第1図ないし第4図に示す処理システムの動作を例示す
るため、コンピュータ・プログラムの次のセグメントを
提示する。この例では、命令コード・フィールドは簡略
記憶コードで表され、当該の場合、第2、第3及び第4
のフィールドが、簡略記憶コードの後に続き、コンマで
分離される。
この例では、レジスタ・ファイル24内の汎用レジスタ
Aが−1の値を含み、レジスタ・ファイル22内の2つ
の浮動小数点レジスタCとDが1゜5と2.0の値を含
み、汎用レジスタEとFが分岐アドレス値を含むと仮定
する。
COMPARE  C,D、   CFOBRANCH
EQUAL  E、   CFOADD  AND  
COMPARE  A、1.BBRANCHEQUAL
  F、   CFIこのプログラム・セグメントを実
行する際、命令復号器214は、第1命令サイクル中に
第1命令を浮動小数点ユニット16に供給する。この命
令に応答して、ユニット16はレジスタCとDに保持さ
れた2つの浮動小数点値を比較して、比較値を条件レジ
スタ312のフィールドCFOに記憶する。第2の命令
サイクルで、命令復号器が第2命令をアドレス生成機構
216と条件ユニット218に供給する。この命令に応
えて、条件ユニット218はフィールドCFOに保持さ
れた条件値をアドレス生成機構216に供給し、アドレ
ス生成機構216は汎用レジスタE中に保持された分岐
アドレス値にアクセスする。CとDは等しくないので、
分岐は取られず、アドレス生成機構216は後続のアド
レスを命令キャッシュ12に供給する。
命令復号器214は、第2命令の分岐が取られないと予
測して第2命令をアドレス生成機構216と条件ユニッ
ト218に供給するのと同じ命令サイクル中に、第3命
令を固定小数点プロセッサ18に供給する。この第3命
令に応えて、固定小数点プロセッサ18は(命令の第2
フイールドからの)文字係数1をレジスタAに保持され
た一1値に加えて、結果をレジスタBに記憶する。コン
パイラには周知の規約により、この例では、固定小数点
プロセッサ18の省略時条件フィールドはCFlである
。したがって、第3命令によって生成される条件値(加
算の結果を0と比較)が、条件レジスタのCF1フィー
ルドに記憶される。
第3命令サイクルで、第4命令がアドレス生成機構21
6と条件ユニット218に供給される。
この命令に応えて、条件ユニット218はフィールドC
FI中の条件値をアドレス・ユニットに供給し、アドレ
ス・ユニットはレジスタFに保持された分岐アドレス値
にアクセスする。この例では、条件値の「等値」ビット
がセットされているので、分岐が取られて、アドレス生
成機構216が汎用レジスタFからの分岐アドレス値を
命令キヤ1.シュ12に供給する。
上記の本発明の実施例はRISC型システムに関するも
のであるが、本発明は、従来の並列またはパイプライン
式複雑命令セット・コンピュータ(CISC)システム
でも実施できるものである。
さらに、上記では様々な条件フィールドが単一のレジス
タに含まれているように説明したが、それらを別々のレ
ジスタに含め、コンピュータ・システムの処理要素の間
に分散させることもできる。
F0発明の効果 本発明によるコンピュータ・システムは複数のフィール
ドを持つ条件レジスタを具備する。各フィールドは、独
立の条件レジスタとして使用でキル。該コンピュータ・
システムで実行可能なコードを生成するコンパイラは複
数の命令を異なったフィールドに割り当てるので、他の
条件が評価される間、いったん条件値をセーブすること
が可能になるし、また、条件値を生成したり検査したり
する一連の命令の実行のオーバーラツプも可能になる。
【図面の簡単な説明】
第1図は、本発明の実施例を含む並列パイプライン式コ
ンピュータ・システムの構成図である。 第2図は、第1図に示すコンピュータ・システムで使用
するのに適した分岐ユニット回路の構成図である。 第3図は、第2図に示す分岐ユニット回路で使用するの
に適した条件ユニット回路の構成図である。 第4図は、第1図に示すコンピュータ・システムに使用
するのに適した固定小数点プロセッサの構成図である。 10・・・・主記憶装置、12・・・・命令キャッシュ
・メモリ、14・・・・分岐ユニット、16・・・・浮
動小数点レジスタ、18・・・・固定小数点レジスタ、
2O・・・・データ・キャッシュ・メモリ、22・・・
・浮動小数点レジスタ・ファイル、24・・・・汎用レ
ジスタ・ファイル、212・・・・命令レジスタ、21
4・・・・命令復号器、216・・・・アドレス生成機
構、218・・・・条件ユニット、310・・・・制御
装置、312・・・・条件レジスタ、314.316・
・・・フィールド選択デマルチプレクサ、318・・・
・フィールド選択マルチプレクサ、320・・・・イン
タロック検出回路。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝 (外1名)

Claims (2)

    【特許請求の範囲】
  1. (1)条件値を生成する第1のタイプの命令と、生成さ
    れた条件値を検査する第2のタイプの対応する命令を用
    いて、データ項目を操作するコンピュータ・システムに
    アクセス可能な、各データ項目間の所定の関係の存在を
    示す条件値を使用する方法であって、 A、コンピュータ・システム内に複数の条件値フィール
    ドを割り振るステップと、 B、生成された条件値を前記複数の条件値フィールドの
    個々のフィールドに記憶するように前記第1のタイプの
    命令を割り当てるステップと、C、前記複数の条件値フ
    ィールドのそれぞれのフィールドに保持された条件値を
    検査するように前記第2のタイプの対応する命令を割り
    当てるステップと、 を含む方法。
  2. (2)データ項目のうち選択したものの値に基づいて条
    件値を生成する第1のタイプの命令を処理する手段と、
    前記条件値を検査する第2のタイプの命令を処理する手
    段とを含む、データ項目を処理するためのコンピュータ
    ・システムにおいて、複数の前記第1のタイプの命令に
    よって生成される条件値を複数の条件値フィールドに個
    々に記憶する条件記憶手段と、 複数の前記第2のタイプの命令に個々に応えて前記複数
    の条件値フィールド中の条件値を別々に検査する条件検
    査手段と を含む条件処理装置。
JP2001127A 1989-01-09 1990-01-09 データ処理方法及び装置 Expired - Lifetime JPH0776921B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US294850 1989-01-09
US07/294,850 US5125092A (en) 1989-01-09 1989-01-09 Method and apparatus for providing multiple condition code fields to to allow pipelined instructions contention free access to separate condition codes

Publications (2)

Publication Number Publication Date
JPH02226342A true JPH02226342A (ja) 1990-09-07
JPH0776921B2 JPH0776921B2 (ja) 1995-08-16

Family

ID=23135219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001127A Expired - Lifetime JPH0776921B2 (ja) 1989-01-09 1990-01-09 データ処理方法及び装置

Country Status (4)

Country Link
US (1) US5125092A (ja)
EP (1) EP0378830B1 (ja)
JP (1) JPH0776921B2 (ja)
DE (1) DE68927371T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555631B2 (en) 1991-07-08 2009-06-30 Sanjiv Garg RISC microprocessor architecture implementing multiple typed register sets

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253307B1 (en) * 1989-05-04 2001-06-26 Texas Instruments Incorporated Data processing device with mask and status bits for selecting a set of status conditions
FR2656442B1 (fr) * 1989-12-21 1994-07-29 Bull Sa Processeur a plusieurs unites microprogrammees avec mecanisme d'execution anticipee des instructions.
US5287522A (en) * 1990-06-29 1994-02-15 Bull Hn Information Systems, Inc. External procedure invocation apparatus utilizing internal branch vector interrupts and vector address generation, in a RISC chip
US5630157A (en) * 1991-06-13 1997-05-13 International Business Machines Corporation Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
JPH06110688A (ja) * 1991-06-13 1994-04-22 Internatl Business Mach Corp <Ibm> 複数の順序外れ命令を並行処理するためのコンピュータ・システム
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5345568A (en) * 1991-09-19 1994-09-06 Chips And Technologies, Inc. Instruction fetch circuit which allows for independent decoding and execution of instructions
DE69311330T2 (de) 1992-03-31 1997-09-25 Seiko Epson Corp Befehlsablauffolgeplanung von einem risc-superskalarprozessor
DE69308548T2 (de) 1992-05-01 1997-06-12 Seiko Epson Corp Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
FR2693573B1 (fr) * 1992-07-13 1994-09-30 Texas Instruments France Système de traitement de données à registre d'état dont la mise à jour dépend du programme.
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
DE69330889T2 (de) 1992-12-31 2002-03-28 Seiko Epson Corp System und Verfahren zur Änderung der Namen von Registern
US5584009A (en) * 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
US5471598A (en) * 1993-10-18 1995-11-28 Cyrix Corporation Data dependency detection and handling in a microprocessor with write buffer
US5740398A (en) * 1993-10-18 1998-04-14 Cyrix Corporation Program order sequencing of data in a microprocessor with write buffer
US6219773B1 (en) 1993-10-18 2001-04-17 Via-Cyrix, Inc. System and method of retiring misaligned write operands from a write buffer
US5615402A (en) * 1993-10-18 1997-03-25 Cyrix Corporation Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
US5815695A (en) * 1993-10-28 1998-09-29 Apple Computer, Inc. Method and apparatus for using condition codes to nullify instructions based on results of previously-executed instructions on a computer processor
US5689695A (en) * 1993-11-30 1997-11-18 Texas Instruments Incorporated Conditional processor operation based upon result of two consecutive prior processor operations
US6058473A (en) * 1993-11-30 2000-05-02 Texas Instruments Incorporated Memory store from a register pair conditional upon a selected status bit
US6026484A (en) * 1993-11-30 2000-02-15 Texas Instruments Incorporated Data processing apparatus, system and method for if, then, else operation using write priority
US5539888A (en) * 1993-12-23 1996-07-23 Unisys Corporation System and method for processing external conditional branch instructions
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5845118A (en) * 1995-12-14 1998-12-01 International Business Machines Corporation Method for generating shared library executable code with lazy global offset table address calculation
US5991874A (en) * 1996-06-06 1999-11-23 Intel Corporation Conditional move using a compare instruction generating a condition field
US5859998A (en) * 1997-03-19 1999-01-12 Advanced Micro Devices, Inc. Hierarchical microcode implementation of floating point instructions for a microprocessor
US5828873A (en) * 1997-03-19 1998-10-27 Advanced Micro Devices, Inc. Assembly queue for a floating point unit
JPH1173301A (ja) * 1997-08-29 1999-03-16 Matsushita Electric Ind Co Ltd 情報処理装置
US6370639B1 (en) * 1998-10-10 2002-04-09 Institute For The Development Of Emerging Architectures L.L.C. Processor architecture having two or more floating-point status fields
US6842853B1 (en) * 1999-01-13 2005-01-11 Sun Microsystems, Inc. Thread suspension system and method
GB2352308B (en) * 1999-07-21 2004-06-30 Element 14 Ltd Accessing a test condition
GB2352536A (en) * 1999-07-21 2001-01-31 Element 14 Ltd Conditional instruction execution
US6574728B1 (en) * 1999-08-10 2003-06-03 Cirrus Logic, Inc. Condition code stack architecture systems and methods
US6971000B1 (en) * 2000-04-13 2005-11-29 International Business Machines Corporation Use of software hint for branch prediction in the absence of hint bit in the branch instruction
US7043518B2 (en) * 2003-07-31 2006-05-09 Cradle Technologies, Inc. Method and system for performing parallel integer multiply accumulate operations on packed data
US9069547B2 (en) 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
WO2012093288A1 (en) * 2011-01-03 2012-07-12 Freescale Semiconductor, Inc. Integrated circuit device and method for performing conditional negation of data
US10067766B2 (en) * 2015-02-26 2018-09-04 International Business Machines Corporation History buffer with hybrid entry support for multiple-field registers
US9971604B2 (en) 2015-02-26 2018-05-15 International Business Machines Corporation History buffer for multiple-field registers
US9996353B2 (en) 2015-02-26 2018-06-12 International Business Machines Corporation Universal history buffer to support multiple register types
EP3462308B1 (en) * 2017-09-29 2022-03-02 ARM Limited Transaction nesting depth testing instruction

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60110043A (ja) * 1983-11-18 1985-06-15 Nec Corp 情報処理装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4136383A (en) * 1974-10-01 1979-01-23 Nippon Telegraph And Telephone Public Corporation Microprogrammed, multipurpose processor having controllable execution speed
US4348721A (en) * 1978-06-30 1982-09-07 International Business Machines Corporation System for selectively addressing nested link return addresses in a microcontroller
US4370710A (en) * 1980-08-26 1983-01-25 Control Data Corporation Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
US4532589A (en) * 1981-12-02 1985-07-30 Hitachi, Ltd. Digital data processor with two operation units
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US4748585A (en) * 1985-12-26 1988-05-31 Chiarulli Donald M Processor utilizing reconfigurable process segments to accomodate data word length
US4809169A (en) * 1986-04-23 1989-02-28 Advanced Micro Devices, Inc. Parallel, multiple coprocessor computer architecture having plural execution modes
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
US4994964A (en) * 1987-04-16 1991-02-19 L & C Family Partnership Transaction tracking data processing system
US4980850A (en) * 1987-05-14 1990-12-25 Digital Equipment Corporation Automatic sizing memory system with multiplexed configuration signals at memory modules
JPH0616617B2 (ja) * 1987-12-07 1994-03-02 富士通株式会社 初期条件設定方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60110043A (ja) * 1983-11-18 1985-06-15 Nec Corp 情報処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555631B2 (en) 1991-07-08 2009-06-30 Sanjiv Garg RISC microprocessor architecture implementing multiple typed register sets

Also Published As

Publication number Publication date
EP0378830B1 (en) 1996-10-23
US5125092A (en) 1992-06-23
DE68927371D1 (de) 1996-11-28
EP0378830A2 (en) 1990-07-25
DE68927371T2 (de) 1997-04-10
JPH0776921B2 (ja) 1995-08-16
EP0378830A3 (en) 1992-09-02

Similar Documents

Publication Publication Date Title
JPH02226342A (ja) データ処理方法及び装置
US4594655A (en) (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US6889318B1 (en) Instruction fusion for digital signal processor
US7725687B2 (en) Register file bypass with optional results storage and separate predication register file in a VLIW processor
US4578750A (en) Code determination using half-adder based operand comparator
EP2569694B1 (en) Conditional compare instruction
EP1267256A2 (en) Conditional execution of instructions with multiple destinations
EP0205809A2 (en) Vector processing
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
JPH0215369A (ja) ベクター処理システムの命令を実行する方法及び装置
EP0093430A2 (en) Pipeline data processing system
US5274777A (en) Digital data processor executing a conditional instruction within a single machine cycle
JPH0769795B2 (ja) コンピュータ
US5890009A (en) VLIW architecture and method for expanding a parcel
JPH05150979A (ja) 即値オペランド拡張方式
JP2004529405A (ja) 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ
JP3737573B2 (ja) Vliwプロセッサ
US5870577A (en) System and method for dispatching two instructions to the same execution unit in a single cycle
JPH11119998A (ja) 情報処理装置
US5774740A (en) Central processing unit for execution of orthogonal and non-orthogonal instructions
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JPS6116334A (ja) デ−タ処理装置
WO1987004829A1 (en) Improvements relating to control flow in computers
JPH0279122A (ja) 浮動小数点演算機構
JPH02148140A (ja) 情報処理装置における条件分岐制御方式