JP3026733B2 - データ処理装置、処理方法及び制御方法 - Google Patents

データ処理装置、処理方法及び制御方法

Info

Publication number
JP3026733B2
JP3026733B2 JP07037875A JP3787595A JP3026733B2 JP 3026733 B2 JP3026733 B2 JP 3026733B2 JP 07037875 A JP07037875 A JP 07037875A JP 3787595 A JP3787595 A JP 3787595A JP 3026733 B2 JP3026733 B2 JP 3026733B2
Authority
JP
Japan
Prior art keywords
branch
processing elements
predicate
field
instruction
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
JP07037875A
Other languages
English (en)
Other versions
JPH07302199A (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.)
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 JPH07302199A publication Critical patent/JPH07302199A/ja
Application granted granted Critical
Publication of JP3026733B2 publication Critical patent/JP3026733B2/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • 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

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理装置及び方
法に関し、特に並行して動作する複数の処理要素を有
し、各処理要素が分岐条件信号を非同期で発生する機能
を有する前記処理要素を有するデータ処理装置及び方法
に関する。
【0002】
【従来の技術】高いパフォーマンスのデータ処理装置
は、典型的にプログラム制御に従って計算を実行するい
くつかの処理要素を備えている。処理要素の一例には、
整数データにより算術論理演算及び論理演算処理を実行
する固定小数点演算及びロジック・ユニット(“AL
U”)がある。処理要素の他の例には、浮動小数点デー
タにより算術論理演算及び論理演算を実行する浮動小数
点ALUがある。各処理要素は、通常、複数の条件信号
を発生し、これらがその処理要素により発生された要因
に関する条件を表わしている。次の条件分岐命令と、分
岐する又は分岐しないを決定する判断とにより、これら
の条件信号を調べることが可能である。処理要素が発生
した条件信号をどのように解釈すべきかを指定するデー
タ・ビット・フィールドは、述語(predicate)フィール
ドと呼ばれる。通常、述語フィールドは分岐命令の一部
である。即ち、述語フィールドは、命令に含まれる直接
フィールドである、又は分岐命令のオペレーション・コ
ードにより意味付けされる。いくつかのコンピュータ・
アーキテクチャ、例えばESA/390の動作原理(ESA/390 Pr
inciple of Operation)、IBM出版番号SA22-720-00(199
2)に概要的に説明されたIBMESA/390アーキテクチャは、
ある実施における全ての処理要素の条件信号を一つの条
件コードに圧縮し、次いでこの条件コードを条件分岐命
令により調べることが必要である。このデータ処理装置
は、全ての処理要素の条件信号を一つの条件コードに圧
縮することが要求される。この圧縮は、高いパフォーマ
ンス・システムにおいては、多数の処理要素が存在する
こと、複数の処理要素間に潜在する命令処理を識別する
こと、及び大規模又は非常に長い命令ワード(“VLIW")
システムにとって、常時発生している多数の条件を管理
することから、困難である。
【0003】多数の処理要素からの複数の条件信号を必
要とする一つの条件コードに圧縮することは、潜在する
有用な複数の情報、即ち条件コードをセットし得た処理
要素を除けば、処理要素からの複数の条件信号を必然的
に無視することになる。IBMRISCシステム/6000用AIXバ
ージョン0.3アッセンブラ言語レファレンス、IBM出版番
号SC23-2197(1992)に説明されているように、IBM RISC
システム/6000アーキテクチャは、独立した固定小数点
及び浮動小数点条件レジスタ・フィールドを定義するこ
とにより、この問題ある程度解決している。固定小数点
条件レジスタ・フィールドは、固定小数点処理要素の条
件信号により排他的にセットされる。浮動小数点条件レ
ジスタ・フィールドは浮動小数点処理要素の条件信号に
より排他的にセットされる。しかし、例えば多数の固定
小数点ALUを有するシステムでは、与えられたプロセ
ッサ・サイクルで固定小数点ALU条件レジスタ・フィ
ールドをセットすることができる。他の固定小数点ALU
からの条件信号は、失われる。
【0004】
【発明が解決しようとする課題】これに対して、VLIWア
ーキテクチャは、多数の条件コード、条件レジスタ・フ
ィールド、又は同様のいくつかの構造を定義している。
新世代の計算(New Genertion Computing)、第7巻、第21
9頁〜第242頁において発行されたエブシオグルー及びク
マール(Ebcioglu、Kumar)による「BSLにおいて符号化さ
れた論理プログラムを並行して実行するためのワイド命
令ワード・アーキテクチャ」(A Wide Instruction Word
Architecture for Parallel Excution of Logic Progr
am Computing)は、n台のプロセッサを備えたVLIWプロセ
ッサにおける条件コードCC0−CCn-1に言及している。し
かし、n条件コードにより分岐するためには、n分岐命
令が必要であり、これらは並行して実行できるとして
も、かなりの命令メモリ空間及び命令帯域幅を消費す
る。更に、VLIW命令のツリー状構造のために、CCjの評
価は、CCjによる分岐が命令の流れを転換させるなら
ば、CCk(j≠k)の評価が除外される。従って、単一の分
岐命令によって論理的に複雑な組合わせの条件コード、
例えば((CC0・CC1)+CC2)のときは、分岐について評価
できない。
【0005】「VLIWアーキテクチャ、ツリー・スケジュ
ール・コンパイラ」と題し、コンピュータに関するIEEE
学会報告、第8号、1988年8月、第967頁−第979頁におい
て発表されたコルウエル(Colwell)ほかの論文は、7ビッ
トの「分岐バンク」を定義しており、その各ビットは1
ビットの条件コードと等価である。比較命令は分岐バン
ク・ビットをセットすることができる唯一の命令であ
り、かつ与えられた比較命令は分岐バンクにおけるどの
ビットをセットすべきかを指定しなければならない。並
行して実行される最大7比較命令は、これらの命令が対
応して符号化されている限り、それ自身の分岐バンク・
ビットをそれぞれセットすることができる。しかし、エ
ブシオグルーほかの前記論文のように、n分岐バンク・
ビットによる分岐にはn分岐命令が必要であり、これは
かなりの命令メモリ及び命令バス帯域幅を消費する。更
に、コルウエル他の装置における多分岐は、本質的に優
先順位付きの判断ツリーである。従って、分岐バンク・
ビットjによる分岐が命令の流れを転換させるときは、
分岐バンク・ビットjの評価は分岐バンク・ビットk(j≠
k)の評価が除外される。従って、単一の分岐命令による
分岐バンク・ビットの複合組合わせを評価することは不
可能である。
【0006】IMBテクニカル・ディスクロージャ・ブレ
テン、1988年、第31巻、第2号、第294頁〜第296頁に発
表された「多重キューによる条件コード」(Multiple Qu
eued Condition Code)と題するエムマ(Emma)ほかによ
る論文は、CCのセット命令(例えば、比較命令)によ
り、従って逐次的形式により、ファースト・イン・ファ
ースト・アウト・レジスタ(“FIFO")にセット可能な条
件コード(“CC")のキューを得る技術を説明している。C
C(例えば、分岐命令)をテストする命令は、キューに
よるだけでなく、逐次的な形式により任意のCCをテスト
することができる。この論文は、VLIWプロセッサが並行
してCCをテストすることができるが、その機構について
は何も説明していない。
【0007】これに対して、本発明によるデータ処理装
置は、並行して多数のCCをセットすることができ(即
ち、FIFOの制約は存在しない。)、並行して多数のCCを
テストする機構を備え、かつブール代数式により多数の
CCを組合わせて一サイクルの複合テストを形成し、こ
れによって多数のプロセッサ・サイクルを必要とするよ
うな分岐命令のシーケンスの必要性を軽減又は除去させ
るものである。
【0008】米国特許第5,093,908号はメイン・プロセ
ッサと、密結合されたコ・プロセッサとの間の同期機構
を含むデータ処理装置を説明している。このメイン・プ
ロセッサは命令の流れにおいてコ・プロセッサに先行し
て動作することができる。即ち、コ・プロセッサにより
実行されている命令に先行して逐次的に命令を実行して
いる。同期機構は、逐次的なプログラムの動きを維持
し、かつ割込を正確に行なうことを保証する。メイン・
プロセッサとコ・プロセッサとの両者が実行している命
令が条件コードをセットしようとしているときは、同期
機構は逐次的な実行を強いるように見える。同期機構
は、コ・プロセッサが命令を完了する前に命令を実行し
て違反するかも知れない全ての条件を検出して、メイン
・プロセッサが次の命令を実行するのを保留させる。
【0009】これに対して、本発明によるデータ処理装
置は、各プロセッサがそれ自身の条件コードを発生する
ので、同期を必要としない。米国特許第5,093,908号特
許における同期機構は逐次的なプログラムの実行を強い
るので、同期を必要とするときは必ずプロセッサのスル
ープットを低下させてしまう。更に、本発明によるデー
タ処理装置は、多数の条件コードを前記特許により示唆
されていない考えの複雑なブール代数式に組合わせるこ
とができる。
【0010】
【課題を解決するための手段】従って、本発明の目的
は、並行して実行している複数の処理要素を有するデー
タ処理装置における条件分岐を効率的に取り扱うことが
できるデータ処理装置及び方法を提供することにある。
【0011】本発明によるデータ処理装置には、1以上
の処理要素を実行し、各処理要素が1以上の条件信号を
発生させる複数のプロセッサと、前記処理要素に関連さ
れて複数の処理に関連された複数の命令及びデータを格
納する1以上のメモリ要素と、前記各処理要素に関連さ
れた述語を格納する少なくとも一つのレジスタと、前記
各処理要素からの前記条件信号を対応する述語と比較し
て1以上の分岐テスト信号を発生するロジックとが備え
られる。
【0012】本発明は、並行して実行する多数の処理要
素が発生する条件により分岐する柔軟性のある手段を提
供する。各処理要素はその処理に固有な一組の条件信号
を発生する。これらの条件信号は、単一条件コード又は
条件レジスタ・フィールドを縮小し又は組合わせること
なく、処理要素毎を基本として保持される。関連する各
処理要素において発生する前記条件信号用のテスト仕様
として、各処理要素に一ずつの多数の述語を用いる。単
一分岐命令において、各処理要素に一ずつの個別的な二
進テスト結果信号を用いて分岐パスを決定する。更に、
各処理要素用に一つ存在する多数の論理マスク・フィー
ルドは、個別的なテスト信号をどのように組合わせて単
一の分岐信号又は分岐なし信号を形成させるかを指定す
るために用いられる。前記テストの組合わせ論理は、要
因テスト信号の複合組合わせを単一の分岐命令により評
価することができる。この要因テスト信号は適当に論理
マスク・フィールドをセットすることにより論理的に組
合わせたものでもよい。
【0013】以下の本発明の詳細な説明を良く理解でき
るように、本発明の特徴及び技術な効果を以上に概括的
に述べた。本発明の請求の範囲の要旨をなす本発明の更
なる特徴及び効果を以下説明する。
【0014】また、本発明及びその効果を更に完全に理
解するために、添付する図面に関連させて以下説明す
る。
【0015】
【実施例】ここで図1を参照し、本発明によるデータ処
理装置を説明する。中央プロセッサ100には、実行ユニ
ット101、命令ユニット103、命令メモリ・インタフェー
ス113、及びデータ・メモリ・インタフェース126が含ま
れている。命令ユニット103は複数の命令をアクセス
し、これを実行ユニット101に転送する準備をして1又は
更に多くの処理要素(PE)102、104、106及び108により実
行させる。PEは実行ユニット101に設けられているレジ
スタ・ファイル122からのオペランドをアクセスし、か
つその結果をこれらに戻す。以下の命令フォーマットを
用いることができる。 OP S1,S2,D
【0016】ただし、行先レジスタDはソース・レジス
タS1及びS2の内容についてオペレーションOPの結果を受
け取る。
【0017】多数の処理要素102−108を実行ユニット10
1に関連させて1サイクル当り実行される命令数を増加さ
せてもよい。図1は汎用レジスタ(GPR)又はロード/格
納のアーキテクチャを示す。命令ユニット103は、メモ
リ110(図2を参照)内の命令メモリ204から命令をフェ
ッチする。このメモリ110は、システム・バス109を介し
て命令メモリ・インタフェース113に接続されている。
次いで、この命令は相互接続回路網124により処理要素1
02、104、106及び108へ転送される。更に、相互接続回路
網124は、処理要素102、104、106及び108とレジスタ122と
の間、データ・メモリ・インタフェース126及びシステ
ム・バス109を介してメモリ110内のデータ・メモリ202
及び入出力サブシステム120にデータを転送する。
【0018】本発明によるデータ処理装置では、2形式
の条件分岐命令(図3及び図4を参照)が提供されてお
り、多数の処理要素により発生する条件に基づいて分岐
可能にされている。第1の条件分岐命令は単一の直接述
語フィールド(図3を参照)を有する。第2の条件分岐
命令(図4を参照)は多重述語レジスタ(図5を参照)
に格納した1以上の述語値を参照する。これらの分岐命
令の各型式はそれ自身のフォーマットを有する。図3及
び図4に示すこれらの条件分岐命令のフォーマットは、
直接述語(図3)及びレジスタ述語(図4)を用いた命
令例である。
【0019】述語フィールドは処理要素が発生する条件
信号をテストするために設けられている。以下に示す。
表1は固定小数点PEから出力される条件信号をテストす
る述語の定義例を示す。このPEは以下のように定義する
4つの条件信号を出力する。 C キャリー出力 S 結果の符号(結果<0ときは、S=1、それ以外はS=
0) Z 結果は0である(結果=0ときは、Z=1、それ以外はZ
=0) V オーバフロー
【0020】これらの条件信号に異なる述語コードを適
用することにより、種々の関係テストを実行することも
可能である。例えば、述語コード0010(二進)はZ又はS
のテストを実行する。Z又はSが真ならば、関係R<=0は真
であり、この述語を適用している分岐命令を実行するこ
とになる。PE条件信号を無視する無条件述語(コード10
01(二進))は、無条件実行の分岐を発生する。
【0021】表1は固定小数点動作のための述語の定義
例である。
【0022】
【表1】
【0023】以下の表2は、浮動小数点PEから出力され
る条件信号をテストする述語定義の例であり、このPEは
二進の浮動小数点算術演算用のANSI/IEEE基準754-1985
制定に付属する。このPEは、この基準において定義され
ている4つの条件信号を出力する。これらには、 G より大 L より小さい E 等しい U 不定 がある。
【0024】表2に真理値表形式により、G、L、E及びUビ
ットの状態を示す。例えば、述語条件に対応する述語コ
ード0011(二進)は、G=1、L=0、E=1かつU=0ならば、A>=B
は真となる。
【0025】 以上の述語の定義は例である。当業者が
固定小数点又はIEEE二進数の浮動小数点の算術演算以外
の応用に関して、4ビット等以外の幅により、他の述語を
定義することができるのは明らかである。
【0026】表2は浮動小数点比較動作における述語の
定義例である。
【0027】
【表2】 浮 動 小 数 点 オ ペ レ ー シ ョ ン の 述 語 定 義 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 述語コード | 述 語 | 条 件 信 号 テ ス ト | | −−−−−−−−−−−−−−−−−−− | | G | L | E | U −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0000 | A=B | 0 | 0 | 1 | 0 0001 | 予 備 0010 | A>B | 1 | 0 | 0 | 0 0011 | A>=B | 1 | 0 | 1 | 0 0100 | A<B | 0 | 1 | 0 | 0 0101 | A<=B | 0 | 1 | 1 | 0 0110 | A?B | 0 | 0 | 0 | 1 0111 | 予 備 1000 | A?<>B | 1 | 1 | 0 | 1 1001 | 無条件 | X | X | X | X 1010 | A(>)B | 0 | 1 | 1 | 1 1011 | A(>=)B| 0 | 1 | 0 | 1 1100 | A(<)B | 1 | 0 | 1 | 1 1101 | A(<=)B| 1 | 0 | 0 | 1 1110 | A(?)B | 1 | 1 | 1 | 0 1111 | 予 備 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 注: シンボル 定 義 ? 不定 X 無視
【0028】図3を参照して、直接述語分岐命令フォー
マットを説明する。直接述語分岐命令500は5つのセグメ
ントを備えている。即ち、オペレーション・コード50
2、オペレーション拡張504、述語モード506及び述語フ
ィールド508及び変位510が存在する。フィールド502、50
4及び510は周知の命令フィールドであり、本発明におい
ては特に関係ない。しかし、述語モード506は2処理要
素システムのときは1ビット程度、更に多数の処理要素
を有する更に大規模なシステムのときは多数のビットを
備えてもよい。この例では、述語モードフィールド506
は2ビットを有する。これらのビットは、以下の表3の
ような処理要素に関連して条件コードの適用を制御する
ために、用いられてもよい。
【0029】
【表3】 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 2進数ビット| −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 00 | 処理要素1に発生する条件に対して述語を適用 102 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 01 | 処理要素2に発生する条件に対して述語を適用 104 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 10 | 処理要素3に発生する条件に対して述語を適用 106 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 11 | 処理要素4に発生する条件に対して述語を適用 108 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【0030】この命令は、述語を一度に一つの処理要素
に適用できることを注意すべきである。この命令は、同
時に2又は更に多くの処理要素が発生する複数の条件分
岐をすることはできない。もし、命令を拡張できる、又
は変位フィールドの大きさを縮小することができるとき
は、2又は更に多くの述語フィールド及び関連する論理
マスク・フィールドを有する命令を容易に実施すること
ができる。
【0031】図4を参照して、登録した述語分岐命令の
フォーマットを説明する。登録した述語分岐命令600は
4つのフィールドを備えている。即ち、前述のようなオ
ペレーション・コード・フィールド602及びオペレーシ
ョン・コード・エクステンション・フィールド604、予
約フィールド606及び変位フィールド608である。登録し
た述語を用いるときは、述語フィールドを設けるために
命令ビットを必要としないので、これらのビットを例え
ば変位フィールド608に付加する他の使用のために予約
することができる。
【0032】この命令型式では、多重述語が図5に示す
ように、多重述語レジスタ(MPR)330に格納されていると
仮定している。更に、このMPR330には、処理要素(PR1)1
02、(PR2)104、(PR3)106、及び(PR4)108に関連された同数
の論理マスク・フィールド334、338、338及び348も含まれ
ている。多重処理要素条件コードに基づいて分岐するた
めに、処理要素102、104、106及び108用のフィールド332、
336、342及び346における登録述語をそれぞれどのように
用いるかについて、これらの論理マスク・フィールドに
より判断するものである。MPR 330には論理マスク・フ
ィールド及び各処理要素用の述語フィールドが含まれ
る。従って、ここで説明する本発明の好ましい実施例に
おいて、述語フィールド332及び論理マスク・フィール
ド334は処理要素102に関連され、述語フィールド336及
び論理マスク・フィールド338は処理要素104に関連さ
れ、述語フィールド342及び論理マスク・フィールド344
は処理要素106に関連され、述語フィールド346及び論理
マスク・フィールド348は処理要素108に関連される。図
3及び図4について説明した命令、及び図4に関連する
図5について説明した多重述語レジスタには、多重条件
テストを実行するための情報が含まれ、これらは一つの
分岐/分岐なしの判断をするために用いられる。前述の
ように、多重述語は論理マスク・フィールドに関連させ
ると共に、命令から別個のレジスタ(MPR 330)に格納さ
れても、又は分岐命令(図3を参照)内に含まれてもよ
い。
【0033】以下の説明では、多重述語フィールド及び
論理マスク・フィールドが別個の領域(MPR 330)に含ま
れるが、マスク・フィールドにおける述語が図3に示す
ような分岐命令に含まれていれば、同一の技術が適用さ
れるものと仮定する。
【0034】ここで図6を参照して、分岐テスト・ロジ
ックを説明する。処理要素102、104、106及び108は、テス
ト・ロジック装置302に対する第1の入力として総括的
に122により示す一組の条件信号を発生する。このテス
ト・ロジック装置302には、処理要素102に関連されたテ
スト・ロジック要素304、処理要素104に関連されたテス
ト・ロジック要素306、処理要素106に関連されたテスト
・ロジック要素308、及び処理要素108に関連されたテス
ト・ロジック要素310が含まれている。テスト・ロジッ
ク要素302に対する第2組の入力はMPR 330からの述語信
号である。述語1のフィールド332はテスト・ロジック要
素304に対する一組の述語信号322を発生し、述語2のフ
ィールド336は線324を介してテスト・ロジック要素306
に複数の述語信号を発生し、述語3のフィールド342は線
326を介してテスト・ロジック要素308に複数の述語信号
を発生し、述語4のフィールド346は線328を介してテス
ト・ロジック要素310に複数の述語信号を発生する。テ
スト・ロジック装置304、306及び310は、それぞれ処理要
素からの条件信号をMPRからの述語信号と比較を行なっ
て、処理要素102、104、106及び108にそれぞれ関連する個
別的な分岐テスト結果信号(T1)314、(T2)316、(T3)318及
び(T4)320を発生させる。
【0035】図7を参照して、多重条件分岐ロジックを
説明する。
【0036】アンド/オア回路352、362、372及び382は、
MPR 330の論理マスク・ビット・フィールド334、338及び
348を個別的な分岐テスト結果信号314、316、318及び320
とそれぞれ一致を取り、ここで各アンド/オア回路は、 (T1・b1)+(T2・b2)+(T3・b3)+(T4・b4) 形式の出力信号を発生する。ただし、Tnはテスト結果信
号であり、bnは4つの論理マスク・フィールド334、338、3
44及び348のうちの一つに対応するビットである。アン
ド/オア回路352、362、372及び382の出力はアンド回路39
2において論理積を取って一つの分岐実行信号399を発生
させる。図7に示すアンド/オア回路352、362、372及び3
82は、線314、316、318及び320上の一組のテスト結果出力
に基づいて組合わせ条件分岐を可能にさせる。下記の例
は図7に示したロジックを用いて選択可能な特定のいく
つかの組合わせである。
【0037】前記場合の全てにおいて、所望のテストは
一組の論理マスク・フィールド334、338、344、348及びMPR
330により指定される。
【0038】前記例及びその他のいくつかにおける論理
マスク・フィールドのセットを以下の表4にまとめる。
【0039】
【表4】 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 各ロジック・マスク・フィールドにおけるビット −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− −LM4− | −LM3−| −LM2−| −LM1−| 分岐発生関数 b4 b3 b2 b1|b4 b3 b2 b1|b4 b3 b2 b1|b4 b3 b2 b1|(関数が真のとき | | | | は分岐) −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0 0 0 1|0 0 0 1|0 0 0 1|0 0 0 1|T1 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0 0 1 0|0 0 1 0|0 0 1 0|0 0 1 1|T2 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0 0 1 1|0 0 1 1|0 0 1 1|0 0 1 1|T1+T2 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0 0 0 1|0 0 0 1|0 0 0 1|0 0 1 0|T1・T2 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0 0 0 1|0 0 0 1|0 0 0 1|0 1 1 0|T1・(T2+T3) −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−ー−−−− 0 0 1 1|0 0 1 1|1 1 0 0|1 1 0 0|(T1+T2)・(T3+T4) −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 1 1 1 1|1 1 1 1|1 1 1 1|1 1 1 1|T1+T2+T3+T4 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 1 0 0 0|0 1 0 0|0 0 1 0|0 0 0 1|T4・T3・T2・T1 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0 1 0 1|0 1 0 1|0 1 0 1|0 1 1 0|T3+(T1・T2) −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【0040】多重述語分岐の有用性を説明するために、
1例としてリンク・リストを検索するタスクを使用する
ことができる。リンク・リストはアドレス・ポインタに
より一緒にリンクされたプロセッサ・メモリにおけるノ
ードからなる。このような場合は、リストにおける各ノ
ードが3つの値を有することを仮定している。 リスト・ノード・フィールド0、データ0 リスト・ノード・フィールド1、データ1 リスト・ノード・フィールド2、次のリスト・ノードに
対するポインタ
【0041】リストにおける最後のノードはそのリスト
・ノード・フィールド2において0に等しいヌル・ポイン
タを含むことになる。特定のデータ0の値及び特定のデ
ータ1の値を含むノード用のリストを検索し、ポインタ
を一致値を含むリスト・ノードに戻すことが望ましいと
仮定する。リストにおけるどのノードにも一致が見られ
ないときは、ヌル・ポインタが戻される。更に、処理を
それぞれ他と並行して実行可能な1、2及び3と番号付けし
た3つの固定小数点の処理要素によるハードウエア実施
と仮定する。処理要素(1)102上で実行される比較命令
は、分岐述語PR1(図5を参照)によりテスト可能な条
件信号に帰着する。分岐述語PR1は条件信号に適用され
てテスト信号T1を発生させる。処理要素104及び106は、
述語PR2及びPR3によりテストされて、それぞれ信号T1及
びT3を発生させることが可能な同じような条件信号を発
生する。更に、プロセッサ・メモリに3つのロード・ポ
ートが存在して、3つの全てリンクされたリスト・ノー
ド・フィールドを一つのサイクルで汎用レジスタへロー
ドできることを仮定する。以上の仮定により、下記のプ
ログラム・コードは10及び12の一致値についてリストを
検索する。 i0:LOAD R3,list head i1:LOAD R8,R3 i2:LOAD R1,mem(R8);LOAD R2,mem(R8+1);LOAD R3,mem(R
8+2) i3:CMP R1,10;COMP R2,20;COMP R3,0 i4:BRANCH to i1:if(PR1:R≠0+PR2:R≠0)・(PR3:R≠0)
【0042】前記プログラム・コード・フラグメントに
おいて、命令i0は汎用レジスタR3をリストlist headを
指すように初期化する。命令i1(検索ループの第1命
令)はレジスタR3の内容をレジスタR8にロードする。命
令i2は、レジスタR8が指すノードのリスト・ノード・フ
ィールド0をレジスタR1にロードし、レジスタR8+1が指
すノードのリスト・ノード・フィールド1をレジスタR2
にロードし、レジスタR8+2(次のノードに対するポイン
タ)が指すノードのリスト・ノード・フィールド2をレジ
スタR3にロードする。命令i3は、レジスタR1の内容を10
と比較して、PE1条件信号を結果としてセットし、レジ
スタR2の内容を20と比較して、PE2条件信号を結果
としてセットし、レジスタR3の内容を0と比較して、PE3
条件信号を結果としてセットする。命令i4は、述語R≠0
(結果Rは0に等しくない、即ち比較のオペランドは等し
くない)をPE1条件信号に適用してテスト信号T1を発生
させ、述語R≠0をPE2条件信号に適用してテスト信号T2
を発生させ、述語R≠0をPE3条件信号に適用してテスト
信号T3を発生させ、かつ(PR1:R≠0+PR2:R≠0)・(PR3:R≠
0)、即ち両者の値が一致せず、かつリストの終り(ヌル
・ポインタの0)が検出されなかったならば、i1へ分岐
する多重述語分岐である。このループは、分岐が命令i
5、一致するデータ値を有するノードへのポインタか、
又は一致を検出しないときにヌル・ポインタに戻る次の
命令に進むと、終結する。
【0043】前記例は、命令i3の3つの比較処理が並行
して実行されることを示す。3つの比較結果は、一つの
多重述語分岐命令によるテストに利用可能である。この
例がアーキテクチャを有するシステム上で一つの条件コ
ード又は条件レジスタ・フィールドにより実行されるの
であれば、これは直列の比較命令及び分岐命令に再コー
ド化される必要があり、これがループの実行時間を大き
く増加させる。従来の技術の部分で説明したVLIWシステ
ムのうちの一つにより実行されるのであれば、i4は多重
分岐命令を含ものとなると共に、付加的なロジック・オ
ペレータ命令をループに挿入して前記複雑な条件を達成
させる必要があり、これを本発明は並行して比較を実行
する一つの分岐命令により達成させる。
【0044】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0045】(1) 多重条件コードに基づき一つの命
令分岐をするようにしたデータ処理装置において、それ
ぞれ並行処理を可能とし、かつそれぞれ分岐条件信号を
非同期的に発生可能とする複数の処理要素と、前記複数
の処理要素に関連されて、前記処理要素の処理に必要と
する命令及びデータを格納するメモリ装置と、前記デー
タ処理装置と1以上のユーザとの間でインタフェース機
能を持ち、かつ前記命令及びデータ用のバックアップ・
メモリ機能を有する入出力サブシステムと、前記各処理
要素に関連された述語フィールドを格納する手段と、前
記処理要素からの複数の条件信号を前記処理要素に関連
された前記述語フィールドと比較して一つの分岐判断信
号を発生させる手段とを備えていることを特徴とするデ
ータ処理装置。 (2) 前記述語フィールドを格納する手段は、更に、
前記各処理要素に関連された論理マスク・フィールドを
格納する手段を備え、複数の条件信号の複合組合わせを
実行可能なように前記論理マスク・フィールドを前記比
較する手段に適用して、一つの分岐判断信号を発生させ
ることを特徴とする(1)記載のデータ処理装置。 (3) 更に、前記各処理要素に関連された論理マスク
・フィールドを格納する手段を備え、複数の条件信号の
複合組合わせを実行可能なように前記論理マスク・フィ
ールドを前記比較する手段に適用して、一つの分岐判断
信号を発生させることを特徴とする(1)記載のデータ
処理装置。 (4) 複数の処理要素を有するデータ処理装置におけ
る多重条件コードに基づき一つの命令分岐をする方法に
おいて、各述語フィールドが前記処理要素のうちの一つ
に関連されている、複数の述語フィールドを格納するス
テップと、前記処理要素からの複数の条件信号を前記処
理要素に関連された前記述語フィールドと比較し、一つ
の分岐判断信号を発生させるステップとを備えているこ
とを特徴とする方法。 (5) 更に、前記各処理要素に関連された論理マスク
・フィールドを格納するステップと、複数の条件信号の
複合組合わせを実行可能なように前記論理マスク・フィ
ールドを前記比較するステップに適用して、一つの分岐
判断信号を発生させるステップとを備えていることを特
徴とする(4)記載の方法。 (6) 複数の処理要素のうちの1以上の処理要素によ
る1以上の所定の分岐条件信号の発生に基づき、他の命
令スレッドへの分岐を制御する条件分岐命令を処理する
データ処理装置において、前記条件分岐命令が、命令を
実行させるためのオペレーション・コードを収容する第
1のフィールドと、前記複数の処理要素のうちの一つの
処理要素が前記命令の述語フィールドに収容された述語
に関連されていることを表わす述語モードを収容する第
2のフィールドと、前記処理要素からの複数の分岐条件
信号に適用されて一つの分岐信号を発生させる一つの述
語をそれぞれ含む1以上の述語フィールドと、前記命令
に関連されたアドレス情報を含む変位フィールドとを備
えていることを特徴とするデータ処理装置。 (7) 更に、前記条件分岐命令が、前記第1のフィー
ルドに収容されたオペレーション・コードに対する拡張
を収容するオペレーション・コードの拡張フィールドを
備えていることを特徴とする(6)記載のデータ処理装
置。 (8) 複数の処理要素のうちの1以上の処理要素によ
り非同期的に発生する1以上の所定の分岐条件信号の発
生に基づき、他の命令スレッドへの分岐を制御する条件
分岐命令を処理するデータ処理装置において、前期条件
分岐命令が、実行すべき命令用のオペレーション・コー
ドを収容する第1のフィールドと、前記命令に関連され
たアドレス情報を収容する変位フィールドとを有し、複
数の述語を格納する多重述語レジスタであって、前記多
重述語レジスタにおける各述語が前記処理要素のうちの
一つと関連されている前記多重述語レジスタとを備えて
いることを特徴とするデータ処理装置。 (9) 更に、前期条件分岐命令が、前記第1のフィー
ルドに収容された前記オペレーション・コードに対する
拡張を収容するオペレーション・コードの拡張フィール
ドを備えていることを特徴とする(8)記載のデータ処
理装置。(10) 更に、前期条件分岐命令が、前記各
処理要素に関連された論理マスク・フィールドを備え、
前記論理マスク・フィールドは複数の分岐条件信号の複
合組合わせを実行可能にして一つの分岐判断信号を発生
させることを特徴とする(8)記載のデータ処理装置。 (11) 前記多重述語レジスタは、更に、前記各処理
要素に関連された論理マスク・フィールドを備え、前記
論理マスク・フィールドは複数の分岐条件信号の複合組
合わせを実行可能にして一つの分岐判断信号を発生させ
ることを特徴とする(8)記載のデータ処理装置。
【0046】
【発明の効果】以上詳細に説明したように、本発明のデ
ータ処理装置及び方法によれば、並行して実行している
複数の処理要素を有するデータ処理装置における条件分
岐を効率的に取り扱うことができる。
【図面の簡単な説明】
【図1】本発明によるデータ処理装置のブロック図であ
る。
【図2】本発明により命令及びデータを格納するメモリ
・ブロックのブロック図である。
【図3】本発明の一特徴による直接述語分岐用の命令フ
ォーマット図である。
【図4】本発明の一特徴による登録した述語分岐用の命
令フォーマット図である。
【図5】本発明による多重述語レジスタのフォーマット
図である。
【図6】本発明による条件制御論理のブロック図であ
る。
【図7】本発明による4つの処理要素用の多重条件分岐
論理のブロック図である。
【符号の説明】
100 中央プロセッサ 102、104、106、108 処理要素 103 命令ユニット 110 メモリ 113 命令メモリ・インタフェース 120 入出力サブシステム 122 レジスタ 124 相互接続回路網 126 データ・メモリ・インタフェース 302 テスト論理装置 330 MPR
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラリー・デー・ラーセン アメリカ合衆国27609 ノースカロライ ナ州、ラレー、エモリー・レーン 912 (56)参考文献 特開 平4−184535(JP,A) 特開 平4−96133(JP,A) 特開 平4−7741(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】少なくとも2個の処理要素を有するデータ
    処理装置において、 前記複数の処理要素の非同期並行動作を制御するための
    手段と、 前記処理要素の各々の動作に必要とされる命令及びデー
    タを格納する、前記複数の処理要素に接続された共用メ
    モリシステムと、 述語フィールドと呼ばれるフィールドをその各々が有す
    るレジスタであって、前記述語フィールドは処理要素と
    関連づけられるものと、 複数の別々の分岐テスト信号を生成するために、前記複
    数の処理要素からの複数の分岐条件信号と、前記述語フ
    ィールドを比較する手段と、 単一の命令に基づいて作用される分岐判断信号を生成す
    るために、前記別々の分岐テスト信号に前記処理要素の
    各々に関連づけられた論理マスクを適用する論理手段
    と、 を有するデータ処理装置。
  2. 【請求項2】前記述語フィールドを格納する手段は、更
    に、前記各処理要素に関連された論理マスク・フィール
    ドを格納する手段を備え、複数の条件信号の複合組合わ
    せを実行可能なように前記論理マスク・フィールドを前
    記比較する手段に適用して、一つの分岐判断信号を発生
    させる請求項1記載のデータ処理装置。
  3. 【請求項3】更に、前記各処理要素に関連された論理マ
    スク・フィールドを格納する手段を備え、複数の条件信
    号の複合組合わせを実行可能なように前記論理マスク・
    フィールドを前記比較する手段に適用して、一つの分岐
    判断信号を発生させる請求項1記載のデータ処理装置。
  4. 【請求項4】複数の非同期に動作する処理要素を有する
    データ処理装置において、複数の条件コードに作用する
    分岐命令を、単一の命令の実行において供給する処理方
    法において、 レジスタに、各述語フィールドが前記処理要素のうちの
    一つに関連づけられている、複数の述語フィールドを格
    納するステップと、 別々の分岐テスト信号を発生させるために、前記複数の
    処理要素からの複数の分岐条件信号と前記述語フィール
    ドとを比較するステップと単一の命令に基づいて作用さ
    れる分岐判断信号を生成するために、前記別々の分岐テ
    スト信号に複数の論理マスクを適用するステップと、 を有する処理方法。
  5. 【請求項5】更に、前記各処理要素に関連された論理マ
    スク・フィールドを格納するステップと、 一つの分岐判断信号を発生させるために、複数の条件信
    号の複合組合わせを実行可能なように前記論理マスク・
    フィールドを前記比較するステップに適用するステップ
    とを有する請求項4記載の方法。
  6. 【請求項6】データ処理システム内の複数の処理要素の
    うちの1以上の処理要素からの所定の分岐条件信号の発
    生に基づき、プログラム実行における分岐のために条件
    分岐命令を制御する方法において、 実行される命令のためのオペレーション・コードを含む
    第1のフィールドを供給するステップと、 前記複数の処理要素のうちの一つの処理要素を示す値を
    含み、オペレーションのモードが前記命令の述語フィー
    ルドに収容された述語データに関連づけられている第2
    のフィールドを供給するステップと、 そのそれぞれが前記処理要素のいずれかに関連づけられ
    る別々の分岐テスト信号を生成するために、前記処理要
    素によって非同期に生成される複数の分岐条件信号と、
    前記述語データを比較するステップと、 単一の命令に基づいて作用される分岐判断信号を生成す
    るために、前記別々の分岐テスト信号に前記処理要素の
    各々に関連づけられた論理マスクを適用するステップ
    と、 を有する制御方法。
  7. 【請求項7】データ処理システム内の複数の処理要素の
    うちの1以上の処理要素からの非同期に生成された所定
    の分岐条件信号の発生に基づき、プログラム実行におけ
    る分岐のために条件分岐命令を制御する方法において、 前記分岐が実行された場合に、実行される命令のための
    オペレーション・コードを含む第1のフィールドを供給
    するステップと、 前記命令に関連づけられたアドレス情報を含む移動フィ
    ールドを供給するステップと、 前記複数の処理要素と1対1に対応する複数の多重述語
    レジスタを供給するステップであって、前記レジスタ内
    の各述語データは前記処理要素のいずれかに関連づけら
    れているものと、 そのそれぞれが前記処理要素のいずれかに関連づけられ
    る別々の分岐テスト信号を生成するために、前記処理要
    素によって非同期に生成される複数の分岐条件信号と、
    前記述語データを比較するステップと、 単一の命令に基づいて作用される分岐判断信号を生成す
    るために、前記別々の分岐テスト信号に前記処理要素の
    各々に関連づけられた論理マスクを適用するステップ
    と、 を有する制御方法。
JP07037875A 1994-04-28 1995-02-27 データ処理装置、処理方法及び制御方法 Expired - Lifetime JP3026733B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/234,094 US5659722A (en) 1994-04-28 1994-04-28 Multiple condition code branching system in a multi-processor environment
US234094 1994-04-28

Publications (2)

Publication Number Publication Date
JPH07302199A JPH07302199A (ja) 1995-11-14
JP3026733B2 true JP3026733B2 (ja) 2000-03-27

Family

ID=22879903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07037875A Expired - Lifetime JP3026733B2 (ja) 1994-04-28 1995-02-27 データ処理装置、処理方法及び制御方法

Country Status (3)

Country Link
US (1) US5659722A (ja)
EP (1) EP0682309A3 (ja)
JP (1) JP3026733B2 (ja)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09293056A (ja) * 1996-04-25 1997-11-11 Aiwa Co Ltd データ処理装置
US5748936A (en) * 1996-05-30 1998-05-05 Hewlett-Packard Company Method and system for supporting speculative execution using a speculative look-aside table
US5764962A (en) * 1996-07-31 1998-06-09 Hewlett-Packard Company Emulation of asynchronous signals using a branch mechanism
JPH10124315A (ja) * 1996-10-18 1998-05-15 Hitachi Ltd 分岐処理方法およびそのための情報処理装置
US5850553A (en) * 1996-11-12 1998-12-15 Hewlett-Packard Company Reducing the number of executed branch instructions in a code sequence
US5903750A (en) * 1996-11-20 1999-05-11 Institute For The Development Of Emerging Architectures, L.L.P. Dynamic branch prediction for branch instructions with multiple targets
US5999738A (en) * 1996-11-27 1999-12-07 Hewlett-Packard Company Flexible scheduling of non-speculative instructions
US6366999B1 (en) * 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
US6185670B1 (en) 1998-10-12 2001-02-06 Intel Corporation System for reducing number of opcodes required in a processor using an instruction format including operation class code and operation selector code fields
US6115808A (en) * 1998-12-30 2000-09-05 Intel Corporation Method and apparatus for performing predicate hazard detection
US7505974B2 (en) 1999-02-12 2009-03-17 Gropper Robert L Auto update utility for digital address books
US6883000B1 (en) 1999-02-12 2005-04-19 Robert L. Gropper Business card and contact management system
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
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
EP1236097A4 (en) * 1999-09-01 2006-08-02 Intel Corp BRANCH COMMAND TO THE PROCESSOR
US7191309B1 (en) 1999-09-01 2007-03-13 Intel Corporation Double shift instruction for micro engine used in multithreaded parallel processor architecture
US6643770B1 (en) * 1999-09-16 2003-11-04 Intel Corporation Branch misprediction recovery using a side memory
US6496975B1 (en) 1999-10-15 2002-12-17 International Business Machines Corporation Method, system, and program for performing conditional program operations
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US6732253B1 (en) 2000-11-13 2004-05-04 Chipwrights Design, Inc. Loop handling for single instruction multiple datapath processor architectures
US6931518B1 (en) 2000-11-28 2005-08-16 Chipwrights Design, Inc. Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor
US7487505B2 (en) 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US7167973B2 (en) * 2001-11-15 2007-01-23 Broadcom Corporation Method and system for performing multi-tests in processors using results to set a register and indexing based on the register
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7437724B2 (en) 2002-04-03 2008-10-14 Intel Corporation Registers for data transfers
US7318169B2 (en) * 2002-05-15 2008-01-08 David Czajkowski Fault tolerant computer
US6970985B2 (en) 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
EP1387254B1 (en) * 2002-07-31 2012-12-12 Texas Instruments Incorporated Skip instruction carrying out a test with immediate value
US7000091B2 (en) * 2002-08-08 2006-02-14 Hewlett-Packard Development Company, L.P. System and method for independent branching in systems with plural processing elements
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US6941438B2 (en) 2003-01-10 2005-09-06 Intel Corporation Memory interleaving
GB2402510A (en) * 2003-06-05 2004-12-08 Advanced Risc Mach Ltd Predication instruction within a data processing system
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
JP5989293B2 (ja) * 2004-05-13 2016-10-05 インテル・コーポレーション 多重命令語処理装置におけるフィードバック接続の実行時間選択
US7219213B2 (en) * 2004-12-17 2007-05-15 Intel Corporation Flag bits evaluation for multiple vector SIMD channels execution
US7904698B2 (en) 2005-02-14 2011-03-08 Koninklijke Philips Electronics N.V. Electronic parallel processing circuit for performing jump instructions
US7689972B2 (en) * 2005-03-21 2010-03-30 Microsoft Corporation System and method for producing software patches
CN100552622C (zh) * 2005-03-31 2009-10-21 松下电器产业株式会社 运算处理装置
US20060294345A1 (en) * 2005-06-23 2006-12-28 Tellabs Operations, Inc. Methods and apparatus for implementing branching instructions within a processor
US7814486B2 (en) * 2006-06-20 2010-10-12 Google Inc. Multi-thread runtime system
US8381202B2 (en) * 2006-06-20 2013-02-19 Google Inc. Runtime system for executing an application in a parallel-processing computer system
US8136102B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for compiling an application for a parallel-processing computer system
US8024708B2 (en) * 2006-06-20 2011-09-20 Google Inc. Systems and methods for debugging an application running on a parallel-processing computer system
US8136104B2 (en) 2006-06-20 2012-03-13 Google Inc. Systems and methods for determining compute kernels for an application in a parallel-processing computer system
US8261270B2 (en) 2006-06-20 2012-09-04 Google Inc. Systems and methods for generating reference results using a parallel-processing computer system
US8443348B2 (en) 2006-06-20 2013-05-14 Google Inc. Application program interface of a parallel-processing computer system that supports multiple programming languages
US8146066B2 (en) 2006-06-20 2012-03-27 Google Inc. Systems and methods for caching compute kernels for an application running on a parallel-processing computer system
US8375368B2 (en) * 2006-06-20 2013-02-12 Google Inc. Systems and methods for profiling an application running on a parallel-processing computer system
US8108844B2 (en) 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080154379A1 (en) * 2006-12-22 2008-06-26 Musculoskeletal Transplant Foundation Interbody fusion hybrid graft
JP2008305185A (ja) * 2007-06-07 2008-12-18 Nec Electronics Corp プロセッサ装置及び複合条件処理方法
US8078849B2 (en) * 2008-12-23 2011-12-13 Juniper Networks, Inc. Fast execution of branch instruction with multiple conditional expressions using programmable branch offset table
US8908564B2 (en) * 2010-06-28 2014-12-09 Avaya Inc. Method for Media Access Control address learning and learning rate suppression
JP5813484B2 (ja) 2011-11-30 2015-11-17 ルネサスエレクトロニクス株式会社 Vliwプロセッサと命令構造と命令実行方法
US9465613B2 (en) * 2011-12-19 2016-10-11 International Business Machines Corporation Instruction predication using unused datapath facilities
US10318293B2 (en) * 2013-07-09 2019-06-11 Texas Instruments Incorporated Predication methods for vector processors
FR3021432B1 (fr) * 2014-05-20 2017-11-10 Bull Sas Processeur a instructions conditionnelles

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3764988A (en) * 1971-03-01 1973-10-09 Hitachi Ltd Instruction processing device using advanced control system
US4439828A (en) * 1981-07-27 1984-03-27 International Business Machines Corp. Instruction substitution mechanism in an instruction handling unit of a data processing system
US4742451A (en) * 1984-05-21 1988-05-03 Digital Equipment Corporation Instruction prefetch system for conditional branch instruction for central processor unit
CA1250667A (en) * 1985-04-15 1989-02-28 Larry D. Larsen Branch control in a three phase pipelined signal processor
JPH0789319B2 (ja) * 1985-04-22 1995-09-27 株式会社日立製作所 デ−タ処理装置における先行制御装置
US4853840A (en) * 1986-01-07 1989-08-01 Nec Corporation Instruction prefetching device including a circuit for checking prediction of a branch instruction before the instruction is executed
US4903196A (en) * 1986-05-02 1990-02-20 International Business Machines Corporation Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
US5051940A (en) * 1990-04-04 1991-09-24 International Business Machines Corporation Data dependency collapsing hardware apparatus
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
US4833599A (en) * 1987-04-20 1989-05-23 Multiflow Computer, Inc. Hierarchical priority branch handling for parallel execution in a parallel processor
US5197136A (en) * 1987-11-12 1993-03-23 Matsushita Electric Industrial Co., Ltd. Processing system for branch instruction
US5101344A (en) * 1988-01-28 1992-03-31 Motorola, Inc. Data processor having split level control store
US4974155A (en) * 1988-08-15 1990-11-27 Evans & Sutherland Computer Corp. Variable delay branch system
US5142634A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Branch prediction
US5349671A (en) * 1989-03-23 1994-09-20 Matsushita Electric Industrial Co., Ltd. Microprocessor system generating instruction fetch addresses at high speed
US5093908A (en) * 1989-04-17 1992-03-03 International Business Machines Corporation Method and apparatus for executing instructions in a single sequential instruction stream in a main processor and a coprocessor
US5075844A (en) * 1989-05-24 1991-12-24 Tandem Computers Incorporated Paired instruction processor precise exception handling mechanism
JP2680899B2 (ja) * 1989-08-28 1997-11-19 日本電気株式会社 情報処理装置及びその制御方法
US5185868A (en) * 1990-01-16 1993-02-09 Advanced Micro Devices, Inc. Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
US5197135A (en) * 1990-06-26 1993-03-23 International Business Machines Corporation Memory management for scalable compound instruction set machines with in-memory compounding
US5214763A (en) * 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
US5283873A (en) * 1990-06-29 1994-02-01 Digital Equipment Corporation Next line prediction apparatus for a pipelined computed system
JPH0460720A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd 条件分岐命令制御方式
JP2793342B2 (ja) * 1990-08-09 1998-09-03 株式会社東芝 演算処理装置
US5347639A (en) * 1991-07-15 1994-09-13 International Business Machines Corporation Self-parallelizing computer system and method

Also Published As

Publication number Publication date
EP0682309A3 (en) 1997-01-22
US5659722A (en) 1997-08-19
JPH07302199A (ja) 1995-11-14
EP0682309A2 (en) 1995-11-15

Similar Documents

Publication Publication Date Title
JP3026733B2 (ja) データ処理装置、処理方法及び制御方法
US5101484A (en) Method and apparatus for implementing an iterative program loop by comparing the loop decrement with the loop value
KR930004214B1 (ko) 데이타 처리 시스템
US6334176B1 (en) Method and apparatus for generating an alignment control vector
US5996057A (en) Data processing system and method of permutation with replication within a vector register file
US4594655A (en) (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions
US6401190B1 (en) Parallel computing units having special registers storing large bit widths
KR0133238B1 (ko) 컴퓨터 프로세싱 시스템 및 인스트럭션 실행방법
EP1148414B1 (en) Method and apparatus for allocating functional units in a multithreaded VLIW processor
JPH0776921B2 (ja) データ処理方法及び装置
CN111767080A (zh) 用于可配置空间加速器中的操作的设备、方法和系统
EP0260409A2 (en) Data processing system with two execution units
EP0312764A2 (en) A data processor having multiple execution units for processing plural classes of instructions in parallel
EP0899654B1 (en) A data processing system and method
EP1535189B1 (en) Programmable pipeline fabric utilizing partially global configuration buses
US6862676B1 (en) Superscalar processor having content addressable memory structures for determining dependencies
KR101016257B1 (ko) 프로세서 및 정보 처리 장치
US6023751A (en) Computer system and method for evaluating predicates and Boolean expressions
US5546551A (en) Method and circuitry for saving and restoring status information in a pipelined computer
KR100267089B1 (ko) 스칼라/벡터연산이조합된단일명령복수데이터처리
Vick et al. Adptable Architectures for Supersystems
US4956767A (en) Data processing system with model for status accumulating operation by simulating sequence of arithmetic steps performed by arithmetic processor
RU2150738C1 (ru) Система обработки и способ ее функционирования
JP2778717B2 (ja) データ処理ユニット
Vokorokos et al. The process control for p-single operators