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

データ処理方法及び装置

Info

Publication number
JPH0776921B2
JPH0776921B2 JP2001127A JP112790A JPH0776921B2 JP H0776921 B2 JPH0776921 B2 JP H0776921B2 JP 2001127 A JP2001127 A JP 2001127A JP 112790 A JP112790 A JP 112790A JP H0776921 B2 JPH0776921 B2 JP H0776921B2
Authority
JP
Japan
Prior art keywords
condition
instructions
instruction
register
type
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 - Lifetime
Application number
JP2001127A
Other languages
English (en)
Other versions
JPH02226342A (ja
Inventor
ダニエル・アーサー・プレナー
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Description

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

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】データ項目間の所定の関係の存在を示す条
    件値を生成する複数の第1のタイプの命令と、それぞれ
    が該第1のタイプの命令に対応し、生成された条件値を
    検査する複数の第2のタイプの命令を使用するコンピュ
    ータ・システムにおいて、該条件値をアクセスしてデー
    タを処理する方法であって、 A.コンピュータ・システム内に複数の条件値フィールド
    を割り振るステップと、 B.生成されるそれぞれの条件値を前記複数の条件値フィ
    ールドの異なったフィールドに記憶するように前記複数
    の第1のタイプの命令を割り当てるステップと、 C.対応する前記第1のタイプの命令に割り当てられた前
    記複数の条件値フィールドの個々のフィールドに保持さ
    れている条件値を検査するように前記複数の第2のタイ
    プの命令を割り当てるステップと、 D.前記第1及び第2のタイプの命令を実行時に評価し、
    前記複数の条件値フィールドの任意の1つにアクセスし
    ようとする他の命令とのアクセスの競合を回避するステ
    ップと、 を含む方法。
  2. 【請求項2】データ項目間の所定の関係の存在を示す条
    件値を生成する複数の第1のタイプの命令を処理する手
    段と、それぞれが該第1のタイプの命令に対応し、生成
    された条件値を検査する複数の第2のタイプの命令を処
    理する手段とを含む、該条件値にアクセスしてデータ項
    目を処理するためのデータ処理装置において、 複数の前記第1のタイプの命令によって生成される条件
    値を複数の条件値フィールドの異なったフィールドに個
    々に記憶する条件記憶手段と、 複数の前記第2のタイプの命令に個々に応答して、対応
    する前記条件値フィールド中の条件値を個々に検査する
    条件検査手段と、 前記第1及び第2のタイプの命令を実行時に評価し、前
    記複数の条件値フィールドの任意の1つにアクセスしよ
    うとする他の命令とのアクセスの競合を回避する命令評
    価手段と、 を含むデータ処理装置。
JP2001127A 1989-01-09 1990-01-09 データ処理方法及び装置 Expired - Lifetime JPH0776921B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
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
US294850 1989-01-09

Publications (2)

Publication Number Publication Date
JPH02226342A JPH02226342A (ja) 1990-09-07
JPH0776921B2 true 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)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617574A (en) * 1989-05-04 1997-04-01 Texas Instruments Incorporated Devices, systems and methods for conditional instructions
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> 複数の順序外れ命令を並行処理するためのコンピュータ・システム
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
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
WO1993020505A2 (en) 1992-03-31 1993-10-14 Seiko Epson Corporation Superscalar risc instruction scheduling
JP3637920B2 (ja) 1992-05-01 2005-04-13 セイコーエプソン株式会社 スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法
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.
DE69330889T2 (de) 1992-12-31 2002-03-28 Seiko Epson Corp System und Verfahren zur Änderung der Namen von Registern
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
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
US5471598A (en) * 1993-10-18 1995-11-28 Cyrix Corporation Data dependency detection and handling 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
US5740398A (en) * 1993-10-18 1998-04-14 Cyrix Corporation Program order sequencing of data in a microprocessor with write buffer
US5584009A (en) * 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
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
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
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
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
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
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
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
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
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
US5828873A (en) * 1997-03-19 1998-10-27 Advanced Micro Devices, Inc. Assembly queue for a floating point unit
US5859998A (en) * 1997-03-19 1999-01-12 Advanced Micro Devices, Inc. Hierarchical microcode implementation of floating point instructions for a microprocessor
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
GB2352536A (en) * 1999-07-21 2001-01-31 Element 14 Ltd Conditional instruction execution
GB2352308B (en) * 1999-07-21 2004-06-30 Element 14 Ltd Accessing a test condition
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
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
US10067766B2 (en) * 2015-02-26 2018-09-04 International Business Machines Corporation History buffer with hybrid entry support for multiple-field registers
EP3462308B1 (en) * 2017-09-29 2022-03-02 ARM Limited Transaction nesting depth testing instruction

Family Cites Families (12)

* 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
JPS60110043A (ja) * 1983-11-18 1985-06-15 Nec Corp 情報処理装置
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 富士通株式会社 初期条件設定方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0776921B2 (ja) データ処理方法及び装置
US4594655A (en) (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US6219775B1 (en) Massively parallel computer including auxiliary vector processor
EP0399762B1 (en) Multiple instruction issue computer architecture
US5142633A (en) Preprocessing implied specifiers in a pipelined processor
EP0352935B1 (en) Pipelined processor
EP0682309A2 (en) Data processing system adapted for single instruction branching on multiple condition codes from plural processing elements
US5398321A (en) Microcode generation for a scalable compound instruction set machine
JPS5911943B2 (ja) デ−タ処理装置の為のトラツプ機構
EP0380847A2 (en) Decoding multiple specifiers in a variable length instruction architecture
JPH02130634A (ja) プロセッサシステム、コンピュータシステム及び命令処理方法
JP2003029986A (ja) プロセッサ間レジスタ継承方法及びその装置
EP0093430A2 (en) Pipeline data processing system
EP0378415A2 (en) Multiple instruction dispatch mechanism
JPH0769795B2 (ja) コンピュータ
US5274777A (en) Digital data processor executing a conditional instruction within a single machine cycle
US6862676B1 (en) Superscalar processor having content addressable memory structures for determining dependencies
JPH09152973A (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
EP1050809A1 (en) Computer instruction dependency
JP2878792B2 (ja) 電子計算機
US6453412B1 (en) Method and apparatus for reissuing paired MMX instructions singly during exception handling
TWI756212B (zh) 處理向量指令
US11940945B2 (en) Reconfigurable SIMD engine
JPH0279122A (ja) 浮動小数点演算機構
JP2843844B2 (ja) 並列演算処理装置