JP3149348B2 - 代理命令を用いる並列処理システム及び方法 - Google Patents

代理命令を用いる並列処理システム及び方法

Info

Publication number
JP3149348B2
JP3149348B2 JP00183296A JP183296A JP3149348B2 JP 3149348 B2 JP3149348 B2 JP 3149348B2 JP 00183296 A JP00183296 A JP 00183296A JP 183296 A JP183296 A JP 183296A JP 3149348 B2 JP3149348 B2 JP 3149348B2
Authority
JP
Japan
Prior art keywords
instruction
processor element
offset value
type
basic
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
JP00183296A
Other languages
English (en)
Other versions
JPH08249293A (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 JPH08249293A publication Critical patent/JPH08249293A/ja
Application granted granted Critical
Publication of JP3149348B2 publication Critical patent/JP3149348B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • 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/30181Instruction operation extension or modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Discrete Mathematics (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般にデータ処理シ
ステム及び方法に関し、特に並列処理アーキテクチャに
おける改良に関する。
【0002】
【従来の技術】例えばISP−5.6などの多くの信号
プロセッサが、1命令サイクル当たり複数の独立実行ア
クションを発生する命令を使用する。これらの"複合命
令(compound instruction)"は通常、複数オペレーシ
ョンを指定しなければならないので単一の命令ワード内
で符号化することが困難である。結果的に複合命令の体
系化において妥協が行われ、オペランド及び結果の宛先
の指定における柔軟性及び一般性が制限されることにな
る。複合命令を提供する多数の代替例が提案されてお
り、特にG.D.Jonesらによる"Selecting Predecoded I
nstructions with a Surrogate"(IBM TDB、Vol.36、N
o.6A、June 1993、p.35)、及びJonesらによる"Pre-C
omposed Superscaler Architecture"(IBM TDB、Vol.3
7、No.9、Sept.1994、p.447)がこれらに含まれる。
本発明で使用されるアプローチは、これら2つの論文で
述べられる概念の拡張に当たる。本発明は主に、上述の
従来技術においてカバーされなかった新たな概念に関す
る。
【0003】代理概念(surrogate concept)において
は、複数のシンプレックス命令からVLIW(超長命令
ワード:Very Long Instruction Word)が作成される。
複数のVLIWが読出し専用メモリ(ROM)内で生成
され実現されるか、代理メモリをロードするように識別
される命令シーケンスにより生成される。次に代理シン
プレックス命令により、特定のVLIWがその実行のた
めに指し示される。PE(処理要素:processing eleme
nt)において、VLIWは代理メモリに記憶される。代
理メモリは、各々が32ビット実行ユニットに関連付け
られる複数の命令スロットと、ロード及びストア命令の
結合したSP/PE命令(SPはシーケンス・プロセッ
サを表す)に割当てられるスロットから成る。
【0004】
【発明が解決しようとする課題】本発明の目的は、並列
処理アレイのための改良されたプログラマブル・プロセ
ッサ・アーキテクチャを提供することである。
【0005】本発明の別の目的は、並列処理アレイのプ
ロセッサ要素のオペレーションにおいて高度な柔軟性及
び汎用性を提供することである。
【0006】
【課題を解決するための手段】これらの及びその他の目
的、特長及び利点が、並列処理アレイのための改良され
た命令配布機構を提供する本開示による並列処理システ
ム及び方法により達成される。本発明は複数の各プロセ
ッサ要素に基本命令を同報する。各プロセッサ要素は、
同一の命令を各それぞれのプロセッサ要素に記憶される
固有のオフセット値に関連付けることによりその命令を
解読し、そのプロセッサ要素に固有の導出命令を生成す
る。第1のタイプの基本命令はプロセッサ要素に論理演
算を実行させる。第2のタイプの基本命令はポインタ・
アドレスを提供する。ポインタ・アドレスは固有のアド
レス値を有する。なぜならポインタ・アドレスは、基本
命令をプロセッサ要素に記憶される固有のオフセット値
に関連付けることにより生成されるからである。ポイン
タ・アドレスは、プロセッサ要素における実行のために
代替命令記憶から代替命令をアクセスするために使用さ
れる。
【0007】代替命令はVLIWであり、その長さは例
えば基本命令の長さの整数倍であり、単一の命令により
表現されるよりもより多くの情報を含む。このようなV
LIWは、プロセッサ要素内に存在する複数のプリミテ
ィブ実行ユニットの並列制御を提供するのに有用であ
る。このように、並列処理アレイのプロセッサ要素のオ
ペレーションにおいて高度な柔軟性及び汎用性が獲得さ
れる。
【0008】本発明がそのアプリケーションを見い出す
並列処理アレイは、単一命令ストリーム複数データ・ス
トリーム(SIMD)システム構成にもとづく。本発明
はまた、プロセッサ要素の複数のSIMDクラスタが、
全体的な複数命令ストリーム複数データ・ストリーム
(MIMD)システム構成に編成される場合にも適用さ
れる。
【0009】
【発明の実施の形態】本発明は、図19に示されるMI
MDアレイ100などの並列処理アレイのための改良さ
れた命令配布機構を提供する。本発明は、図19に示さ
れる複数の各プロセッサ要素102に図17に示される
基本命令101を同報する。各プロセッサ要素102
は、同一の命令101を各それぞれのプロセッサ要素1
02に記憶される図15の固有のオフセット値104に
関連付けることによりその命令を解読し、プロセッサ要
素に固有の導出命令を生成する。第1のタイプの基本命
令101は、プロセッサ要素に論理演算または算術演算
を実行させる。第2のタイプの基本命令101は図16
のポインタ・アドレス107を生成する。ポインタ・ア
ドレス107は固有のアドレス値を有する。なぜなら、
これは基本命令101'をプロセッサ要素102に記憶
される固有のオフセット値104に関連付けることによ
り生成されるからである。ポインタ・アドレス107
は、プロセッサ要素102における実行のために、図1
6の代替命令記憶110から代替命令108をアクセス
するために使用される。代替命令108はVLIWであ
り、その長さは例えば基本命令101または101'の
長さの整数倍であり、単一の命令により表現されるより
も多大に多くの情報を含む。このようなVLIW108
は、図8のプロセッサ要素102内に存在する複数のプ
リミティブ実行ユニットEX1、EX2などの並列制御
を提供するのに有用である。このように、高度な柔軟性
及び汎用性が、並列処理アレイのプロセッサ要素のオペ
レーションにおいて獲得される。
【0010】本発明がそのアプリケーションを見い出す
並列処理アレイは、図11及び図13に示されるよう
に、単一命令ストリーム複数データ・ストリーム(SI
MD)システム構成112にもとづく。本発明はまた、
プロセッサ要素102の複数のSIMDクラスタ112
が、図19に示されるような全体的な複数命令ストリー
ム複数データ・ストリーム(MIMD)システム構成に
編成される場合にも適用される。
【0011】図11のSIMD並列処理アレイ112は
メモリ手段114を含み、これは実行時に論理演算を実
行する第1のタイプの基本命令101と、実行時にアド
レス・ポインタ107を生成する第2のタイプの基本命
令とを記憶する。この命令はまた、ローカル命令または
ストア命令などの制御機能も提供できる。デコーダ11
6(ED)は、第1及び第2の代替命令108のための
記憶110を含み、これらの代替命令は、それぞれ第1
及び第2のアドレス・ポインタ107によりアクセスさ
れる第1及び第2のロケーションに記憶される。
【0012】図11の第1のプロセッサ要素102(P
E−0)は命令バス118を介してメモリ手段114に
接続され、命令101及び101'を実行するための第
1の固有のオフセット値104を有する。第1のプロセ
ッサ要素102(PE−0)は命令バス118に接続さ
れる命令デコーダ116を含み、これは命令バス118
上に受信される第1のタイプの基本命令101を、論理
演算を実行するように処理する。
【0013】本発明によれば、第1のプロセッサ要素1
02(PE−0)の命令デコーダ116が、その第1の
固有のオフセット値104を命令バス118上に受信さ
れる第2のタイプの基本命令101'と一緒に処理し、
記憶110内の第1の代替命令108を指す第1のアド
レス・ポインタ107を生成し、それに応答して記憶1
10が第1の代替命令108を第1のプロセッサ要素1
02(PE−0)に出力する。
【0014】図11の第2のプロセッサ要素102(P
E−1)は命令バス118を介してメモリ手段114に
接続され、命令101及び101'を実行するための第
2の固有のオフセット値104を有する。第2のプロセ
ッサ要素102(PE−1)は、命令バス118に接続
される命令デコーダ116を含み、これは命令バス11
8上に受信される第1のタイプの基本命令101を、論
理演算を実行するように処理する。
【0015】更に本発明によれば、第2のプロセッサ要
素102(PE−1)の命令デコーダ116が、その第
2の固有のオフセット値104を命令バス118上に受
信される第2のタイプの基本命令101'と一緒に処理
し、記憶110内の第2の代替命令108を指す第2の
アドレス・ポインタ107を生成し、それに応答して、
記憶110が第2の代替命令108を第2のプロセッサ
要素102(PE−1)に出力する。
【0016】このように、メモリ手段114から同報さ
れる単一命令101または101'が、第1及び第2の
プロセッサ要素内で異なるオペレーションを選択的に制
御することができる。
【0017】メモリ手段は単一の記憶装置であってもよ
いし、基本命令101及び101'を記憶するメモリ手
段114に対応して階層メモリとして区分化されてもよ
い。また、代替命令108を記憶するための第2の記憶
手段110が、プロセッサ要素102内に提供される。
【0018】本発明の好適な実施例では、第2のタイプ
の基本命令101'は代理命令であり、代替命令108
は基本命令101または101'よりも長いVLIWで
ある。基本命令101及び101'は例えば32バイナ
リ・ビットの単位長を有し、代替命令108はこの単位
長の整数倍の長さ(例えば32バイナリ・ビットの8
倍、すなわち256バイナリ・ビット)を有する。
【0019】本発明の別の特長として、図11の第1及
び第2の各プロセッサ要素PE−0及びPE−1が、第
1のタイプの実行ユニットEX1及び第2のタイプの実
行ユニットEX2を有し、第1及び第2の各代替命令1
08が、第1のタイプの実行ユニットEX1で実行され
る第1の実行可能部分120(図16参照)、及び第2
のタイプの実行ユニットEX2で実行される第2の実行
可能部分122(図16参照)を有することである。
【0020】PE−0の第1の固有オフセット値10
4、及びPE−1の第2の固有オフセット値104は固
定値であってもよいし、各プロセッサ要素102に対応
して時間の経過と共に変化するプログラマブルな値であ
ってもよい。また、2つの各プロセッサ要素102のオ
フセット値104は同一であってもよく、この場合に
は、2つのプロセッサ要素に対応して同一のオペレーシ
ョン・モードが望まれることになる。
【0021】本発明の別の特長として、第1の代替命令
108が基底値と第1のオフセット値との合計に等しい
値を有する第1のポインタ・アドレス107に配置され
る。第2のタイプの基本命令101'は基底値を含む。
命令の解読において、第1のプロセッサ要素102(P
E−0)が第1の固有オフセット値104と第2のタイ
プの基本命令101'からの基底値とを加算し、図16
に示される第1のポインタ・アドレス107を生成す
る。同様に第2の代替命令108が、基底値と第2のオ
フセット値との合計に等しい値を有する第2のポインタ
・アドレス107に配置される。第2のタイプの基本命
令101'は基底値を含む。命令の解読において、第2
のプロセッサ要素102(PE−1)が第2の固有オフ
セット値104と第2のタイプの基本命令101'から
の基底値とを加算し、図16に示される第2のポインタ
・アドレス107を生成する。
【0022】SIMDクラスタ112'内の2つのプロ
セッサ要素102(PE−1、0及びPE−1、1)
が、図19に示される第1の2つのプロセッサ要素10
2と結合され、MIMDアレイ100を形成する。ここ
でメモリ手段114'は、実行時に論理演算または制御
オペレーションを実行する第3のタイプの基本命令10
1と、実行時にアドレス・ポインタ107を生成する第
4のタイプの基本命令101'と、それぞれが第3及び
第4のアドレス・ポインタ107によりアクセスされる
第3及び第4のロケーションに記憶される第3及び第4
の代替命令108とを記憶する。
【0023】第3のプロセッサ要素102(PE−1、
0)は第2の命令バス118'を介してメモリ手段11
4'に接続され、命令101及び101'を実行するため
の第3の固有のオフセット値104を有する。第3のプ
ロセッサ要素102は第2の命令バスに接続される命令
デコーダを含み、これは第2の命令バス118'上に受
信される第3のタイプの基本命令101を、論理演算ま
たは制御オペレーションを実行するように処理する。
【0024】本発明によれば、第3のプロセッサ要素1
02(PE−1、0)の命令デコーダが、その第3の固
有のオフセット値104を、第2の命令バス118'上
に受信される第4のタイプの基本命令101'と一緒に
処理し、メモリ手段内の第3の代替命令を指す第3のア
ドレス・ポインタ107を生成し、それに応答してメモ
リ手段が第3の代替命令を第3のプロセッサ要素に出力
する。
【0025】第4のプロセッサ要素102(PE−1、
1)は第2の命令バス118'を介してメモリ手段11
4'に接続され、命令を実行するための第4の固有のオ
フセット値104を有する。第4のプロセッサ要素は第
2の命令バス118'に接続される命令デコーダを含
み、これは第2の命令バス118'上に受信される第3
のタイプの基本命令101を、論理演算または制御オペ
レーションを実行するように処理する。
【0026】更に本発明によれば、第4のプロセッサ要
素102(PE−1、1)の命令デコーダが、その第4
の固有のオフセット値を命令バス118'上に受信され
る第4のタイプの基本命令101'と一緒に処理し、メ
モリ手段内の第4の代替命令108を指す第4のアドレ
ス・ポインタ107を生成し、それに応答してメモリ手
段が第4の代替命令を第4のプロセッサ要素に出力す
る。
【0027】このように第1、第2、第3及び第4のプ
ロセッサ要素が、図19に示されるような複数命令複数
データ(MIMD)・マルチプロセッサ・アレイを形成
する。
【0028】MfastはMLIWマシンのスケーラブル・
アレイであり、本発明によれば特定のVLIWを指すア
ドレスを含む代理命令が実行される。このセクションで
は、MfastプロセッサVLIW制御フローをサポートす
る概念が述べられる。最初に、基本ユニプロセッサ・モ
デルのハイ・レベルの抽象について述べ、その後、基本
Mfast制御フロー・モデルへと徐々に拡張していくこと
にする。条件付きレジスタ選択モデルを用いてMfastの
VLIW概念について述べる。以降で参照される図面に
おいて基本ブロック・ニーモニックが図面内で命名さ
れ、各図面は新たに追加されるブロックに対応する用語
のみを含み、それ以外は以前の図を参照する。
【0029】基本RISCユニプロセッサ単一命令単一
データ(SISD)制御フロー・モデルが図1に示され
る。この図では、図示のモデルのブロックが2つの基本
セクション、すなわち制御パスと実行パスとに分割され
る。図示のように制御パス・セクションはデータ・パス
の一部を含む。なぜならこれらのモデルの定義により、
ロードやストアなどの制御命令がメモリとプロセッサ間
でデータを転送する唯一の手段であるからである。この
ロード/ストア・アーキテクチャ機構は様々なモデルを
通じて維持される。更に全てのモデルが、別々の命令メ
モリ(IM)及び別々のデータ・メモリ(DM)を有す
るHarvardアーキテクチャである。各メモリは、たとえ
それがメモリ階層を表すとしても単一のブロックとして
示される。各メモリに対して別々のメモリ・アドレッシ
ング機構、すなわちデータ・アドレス(DA)発生器及
びプログラム・カウンタ(PC)が提供される。プログ
ラム・カウンタは、分岐もしくはジャンプ・タイプの制
御命令、またはインタセプトにより変更されうる順次ア
ドレッシング・モデルにより、命令メモリを指すアドレ
スを生成する。アドレス指定された命令は命令メモリか
らフェッチされ解読されて、制御状態信号(IS)及び
データ信号(DS)を生成する。オペレーションの次の
状態が、実行パス内で生成される解読結果の命令信号
(IS)及び条件信号(C)に部分的にもとづき、シー
ケンサにより決定される。フェッチされた実行ユニット
(EX)命令が解読され(ID)、オペランドのフェッ
チ及び実行を制御するデータ信号(DS)が生成され
る。オペランドは、例えば読出しポートなどの選択機能
により汎用レジスタ・ファイル(GR)からフェッチさ
れ、実行ユニットに提供される。そして実行ユニットか
らデータ出力(DO)及び条件信号(C)が生成され
る。
【0030】制御パスと実行パス間で共有される基本R
ISC SISDモデルの機能ブロックは、RISC区
分化SISDモデルを生成するために分離される。図1
のRISC SISDモデルは次のように変更される。
第1に、独立実行手段がアドレス生成機能をサポートし
てシーケンサ内に提供されるならば、レジスタ・ファイ
ルの制御パスの使用が実行パスと独立になる。性能的な
理由によりこのタイプのサポートは、アドレス生成機能
がデータ実行機能と同時並行にオペレートされることを
可能にするために度々提供される。結果的に図1の汎用
レジスタ(GR)が、図2に示されるように2つの独立
の別々のレジスタ・ファイル、すなわちシーケンサ汎用
レジスタ(SR)とデータ・パス汎用レジスタ(DR)
とに分割される。第2に命令解読論理が2つの独立のユ
ニット、すなわちシーケンサ命令解読論理(SD)とデ
ータ・ユニット命令解読論理(DD)とに分割される。
【0031】制御パスと実行パスのそれぞれに対応する
命令及びデータを区別するために、追加の制御が必要と
なる。これらの制御は命令オペコードから得られたり、
レジスタ・ファイル特有のロード/ストア命令などによ
るプログラム制御により獲得される。基本制御フローの
他のオペレーションは図1に示されるモデルに関連して
述べられよう。
【0032】ここでの議論のために、図2のRISC区
分化モデルは、シーケンサ汎用レジスタ(SR)及びシ
ーケンサ命令解読論理(SD)を図3のシーケンサ内に
移動することにより単純化される。
【0033】分岐無し条件付きレジスタ選択の概念につ
いて次に述べる。使用される制御フロー・モデルが図4
に示され、ここでは以前のモデルからの変更として2つ
のタイプの条件信号、すなわち大域条件信号(Cy)と
ローカル・データ・パス条件信号(Cx)との分離が含
まれる。また、レジスタ選択可能ビット(S)がレジス
タ・ファイルから発信され、新たなデータ解読及び条件
選択論理ユニット(DX)内で使用される。新たなDX
ユニットは条件付き選択論理を含み、入力であるCx及
び(または)Sにもとづき、変更レジスタ選択信号
(L')、大域条件信号(Cy)及びデータ信号(D
S)を生成する。概念的には、単一の出所または宛先を
指定する2つのレジスタの選択を含む命令が形成され、
実際にはレジスタが、条件信号(Cx)またはレジスタ
・ビット(S)などのオペコードにより指定される術語
(predicate)により選択される。このタイプの命令の
結果、データ依存型条件付きオペレーションが順次命令
ストリームを変更する分岐命令を要求すること無く実行
される。換言すると、命令シーケンスのデータ依存型制
御がデータ依存型実行シーケンスに変換され、命令制御
フローを順次的に維持することを可能にする。例えば3
2ビット命令ワード・アーキテクチャにおけるデータ転
送タイプの命令は、術語選択のための2つの出所オペラ
ンドまたは2つの宛先オペランドを識別するための、追
加のレジスタ選択フィールドを識別するのに十分な空間
を含みうる。最小の2命令ステップによりテスト条件術
語が生成され、条件付き転送命令がそれに続く。このタ
イプの命令がどのように使用されるかを示すために、"
z"要素を有する最小及び最大の順序不同順次整数アレ
イ"B"を見い出す既知のプログラムを示すことにする。
最小/最大と表題を付けられるこのプログラムが図5及
び図6に示される。図6のアセンブリ・プログラムで
は、実行命令が分岐命令後に配置されるように要求す
る、実行付き分岐モデルが使用される。このプログラム
では、この命令に対応して無動作(NOP)命令が使用
される。
【0034】図4の条件付きレジスタ選択モデルを使用
すると、コードが図7に示されるように短縮される。こ
の条件付き選択プログラムの重要性は、2つの分岐命令
が以前のコード・ストリームから除去されることであ
り、これは"B"アレイのサイズに依存して多大な性能改
良を提供する。図4を参照すると、制御パス内で実現さ
れたデータ依存型条件付き分岐機能が、今度は実行パス
内で実現されるデータ依存型条件付き選択機能に変換さ
れていることが分かる。この変更は分岐の数を最小化す
ることにより制御パスの順次命令ストリームを改良す
る。この概念は、例えばレジスタの符号ビットなどのレ
ジスタ・ビットを除去するように拡張されうる。レジス
タ・ビットは条件コードの場合同様、実行ユニットによ
り影響されないので、レジスタ・ビット・ベースの条件
付き選択機能はレジスタ内ビットとして記憶されるテス
ト条件に影響すること無く、複数の算術演算を可能にす
る。
【0035】VLIWマシンの概念及びVLIW条件付
きレジスタ選択は、このセクションで導入される2つの
新たな概念である。以前のモデルに対する変更が図8に
示され、ここでは複数命令ユニット(EX1、EX
2、...、EXm)、複数ポート・レジスタ(M
R)、複数データ出力バス(DO1、DO2、...、
DOm)、複数EX条件信号(C1、C2、...、C
m)、複数ポート・レジスタ選択信号L'、複数レジス
タ選択可能ビットS'及び複数大域条件信号Cy'が実行
パスに追加される。
【0036】VLIWマシンは科学アプリケーションに
おける数値処理加速において使用されてきており、これ
らの多くのアプリケーションにおいて拡張命令レベルの
並列性を確立してきた。VLIWアーキテクチャは、各
々が長い命令ワード内の独立フィールドにより個々に制
御される複数機能ユニットを使用することにより、特長
付けられる。VLIWコンパイラは通常、長い命令ワー
ドの効率的なコーディングを達成するために使用され
る。例えば既に使用されているVLIWコンパイラ技法
には、トレース・スケジューリング(J.Fisher、"Trac
e Scheduling:ATechnique for Global Microcode Comp
action"、IEEE Transactions on Computers、July 198
1、C-30、pp.478-490)、及びソフトウェア・パイプラ
イニング(K.Ebcioglu、"A Compilation Technique fo
r Software Pipelining of Loopswith Conditional Jum
ps"、IEEE Micro-20、Dec.1987)がある。
【0037】多くの信号プロセッサ、例えばMSP
1.0及びTI社のMVP"Mediastation 5000:Integr
ating Video and Audio"(W.Leeら、IEEE Multimedi
a、Summer 1994、p.50-61)が、1命令サイクル当たり
複数の独立実行アクションを生成する命令を使用する。
これらの"複合命令"は複数オペレーションを指定しなけ
ればならないので、単一の命令ワード内で符号化するの
が通常困難である。結果的に、TI社の64ビット命令
ワードを使用するMVP RISCプロセッサの場合の
ように、命令ワード・サイズが増加されたり、24ビッ
ト命令によるmsp1.0の場合のように、複合命令の
体系化において、既存のワード・サイズに適合するよう
に妥協が許容されたりする。固定ワード・サイズのマシ
ンに複合命令を埋め込むことは通常、柔軟性、一般性、
及び体系化される"複合"命令の数を制限する。
【0038】代理概念ではVLIWが複数シンプレック
ス命令から生成される。複数VLIWが生成され、固定
形式で読出し専用メモリ(ROM)に記憶されるか、プ
ログラマブル形式でランダム・アクセス・メモリ(RA
M)に記憶される。代理シンプレックス32ビット命令
により、特定のVLIWが実行のために指し示される。
PEにおいて、VLIWは複数命令スロットから成る代
理命令メモリ(SIM)に記憶される。各スロットは特
定の機能、すなわち各実行ユニット、ロード命令用のス
ロット及びストア命令用のスロットに関連付けられる。
なぜなら、Mfastアーキテクチャが、並行PEロード及
びストア・オペレーションを許容するからである。これ
は、複数の"固有の(unique)"実行ユニットが各PE内
に提供されることを意味する。各PE及びSP内の代理
命令メモリは、"セグメント区切り命令(SDI:segme
nt delimiter instruction)"の使用によりロードされ
る。SDIはコード・ストリームに挿入され、次の命令
セットが各PE及びSP内の特定の代理メモリ・ロケー
ションにロードされることを識別する。
【0039】図8では、代理及びSDI論理がSIMと
同様に、実行解読(ED)ブロック内に配置される。
【0040】図7では、独立のステップが表1に示され
るように識別され、ここでa←bはbがaの完了に依存
することを表す。
【0041】図7の順次リストにより示されるプログラ
ム・フローは、制御関係の上述リストにより管理され
る。制御フロー制限の理解にもとづき、順次最小/最大
プログラム例を"並列化(parallelize)"する多数の方
法が存在し、これらの方法はプログラムを成功裡に完了
させるために、オペレーションの正しい要求順序を維持
する。"固有"実行ユニットを含む図8のVLIW条件付
き選択モデルでは、オペレーション(d)がオペレーシ
ョン(c)と並列に実行される。これに対応するコード
が図9に示され、ここでは代理VLIWが初期化の間に
生成されたものと仮定し、アレイ・アドレス・ポインタ
及び最大整数値/最小整数値初期化コードは明確化のた
め除去されている(注:実行ユニットにおける機能(例
えば比較及び条件付き転送機能など)が複製される場合
には、他のレベルの並列性が提供される。本Mfastモデ
ルは"固有"実行ユニットの使用により、具現化及びアー
キテクチャ・モデルの単純化を維持する)。
【0042】ここで、下記の表1を参照されたい。
【表1】
【0043】この表1の制御関係から、シーケンサ比較
(f)命令がPEコードの実行と並列に実行されること
に気付かれよう。Mfast上でのこの並列実行を達成する
ために、シーケンサ算術及び分岐命令がPEオペレーシ
ョンと並列に実行されることが要求される。1命令毎に
この並列実行を達成する1方法は、シーケンサ・オペレ
ーションを含むように拡張されるVLIW概念の使用に
よる。結果的に代理命令メモリがシーケンサ命令解読論
理(SD)内に配置され、シーケンサ代理VLIWとP
E代理VLIWとの間で、1対1の関係が維持される。
換言すると、2つのVLIWが存在し、一方はシーケン
サ内、他方はPE内の同一の代理アドレスに存在し、P
E及びシーケンサの両方において独立の並行実行の発生
を可能にする。この実現により、VLIWプログラム・
コードが図10に示されるように更に短縮される。図1
0では、代理VLIWが初期化の間に生成されるものと
仮定する。
【0044】区分化RISCモデルが、図8に示される
VLIWモデル内で維持されるものと仮定すると、M
R、ED及びEX1、EX2、...、EXmブロック
が、処理要素(PE)として見なされる。PEを複製す
ることにより、図11に示されるような1×2アレイが
生成される。SIMD概念により2つのPEが両PE上
で同一の命令を実行するので、2つの独立データ・アレ
イを並列に処理するか、単一のデータ・アレイを2つの
セグメントに区分化し、サブ・データ・アレイを並列に
処理することができる。一般的には図11にPMで示さ
れるように、各PE内に配置されるデータ・メモリを仮
定する。処理の後、結果がシーケンス・プロセッサに伝
達されるかPE間で伝達され、他の処理を可能にする。
例えば、データ・アレイがn要素長で、nが奇数の場合
(9n−1)/2の長さの2つのアレイが最終アルゴリ
ズム・ステップ、すなわち2つのサブ・データ・アレイ
結果及びn番目の要素から選択するステップと並列に処
理される。このアプローチは、Mfastで使用される一般
的なN22次元モデルと同様に、図13に示されるN個
のPEを有する線形アレイに拡張される。PEの他にシ
ーケンサ内の代理の使用により、図12に示されるよう
に、最小/最大コード・リストが一層短縮される。この
コードは並列計算により、ループ繰返し回数を低減す
る。
【0045】Mfastは多数のタイプの条件付き実行をサ
ポートする。それらには例えば、以下が含まれる。 −条件付き転送シンプレックス命令。 −条件付きVLIWスロット選択。
【0046】VLIW概念はまた、Dijkstraにより最初
に提案されたCoBegin及びCoEndのプログラミング概念の
変形による別の方法によっても表現され(K.Hwangらに
よる"Computer Architecture and Parallel Processin
g"、McGraw-Hill、1984、pp.535-545参照)、これが図
14に示される。図14(A)は元の概念を示し、S
0、S1、S2、...、Sn及びSxはプロセスのセ
ットであり、次のコード・シーケンスが使用される。 Begin SO Cobegin S1; S2; ...Sn; CoEnd Sx End
【0047】このコードは独立のタスクS1、S
2、...、Snの並行実行を明示的に制御する。図1
4(B)は、CoBegin/CoEndプログラミング構成体の代
理VLIWバージョンを示す。代理VLIWの場合に
は、プロセスはそれぞれが自身のターゲットを指定する
単一の独立命令に短縮される。図14(C)は図14
(B)の記号表記であり、代理VLIWフローを表現す
るために使用される。Mfastでは、算術論理演算ユニッ
ト(ALU)、乗加算ユニット(MAU)、データ選択
ユニット(DSU)、ロード及びストアの各スロットを
含む5スロットVLIWが、各PEにおいて使用され
る。
【0048】表1を参照すると、問題を2つのVLIW
PE間で区分することにより、別のレベルの並列処理
が得られる。例えば一方のPEが最小比較を実行し、並
行して他のPEが最大比較を実行する。これを達成する
には、各PEが異なる命令/代理を並行して実行するこ
とが必要である。これはSIMDマシンのオペレーショ
ン・モードではなく、複数命令複数データ(MIMD)
タイプのオペレーションである。しかしながらSIMD
モードは処理要素間における効率的な通信機構を提供
し、これは従来のMIMD構成が提供しないものであ
る。結果的に、両構成の長所を取り込むハイブリッド・
オペレーション・モードがPEアレイにおいて必要とさ
れる。
【0049】代理/VLIW概念の重要な態様は、代理
アドレスとその関連VLIWとの間で1対1のマッピン
グが存在することである。この態様は、単一の代理が各
々がN2個のPEのアレイに含まれる最大N2個のVLI
Wの実行を開始することを可能にする。この1対1のマ
ッピング制限を緩和し、図14に示されるCoBegin/CoE
ndプログラミング概念の変形を用いることにより、各P
Eにおいて異なるVLIWを同期を維持しながら実行す
ることが可能になる。これは、代理アドレスから代理グ
ループの単一の入口点アクセスへの1対1のマッピング
を維持する。各PE内の単一の入口点代理アドレスに対
する小さなオフセット・アドレス変更を可能にすること
により、ハザードを回避するために必要な特定の制限の
下で各PE内の代理グループからの選択が可能になる。
【0050】全てのシーケンサ及び処理要素(PE)は
実行ユニットの共通のセットを含み、実行ユニットは固
定少数点/浮動小数点乗加算ユニット(MAU)、AL
U及びデータ選択ユニット(DSU)を含む。更に各シ
ーケンサ及びPEはSDI及び代理論理を有する。
【0051】体系化される全てのMfast命令はシンプレ
ックス・タイプである。なぜならこれらの命令は、任意
のSPまたはPEにおいて単一の機能ユニット実行アク
ションを指定するからである。複数の機能ユニットの単
一の実行アクションは、バイト、ハーフワード或いはワ
ードのオペレーションが指定されたかに依存して、デュ
アル/クワッド・オペレーションを含みうる。複合命令
すなわちロード/ストアと組合わされて複数機能ユニッ
トを用いる命令が、代理命令概念により構築される。代
理概念ではVLIWが複数のシンプレックス命令から生
成される。複数VLIW代理は、代理メモリをロードす
ると識別される命令シーケンスにより生成される。代理
シンプレックス命令により特定のVLIWが実行のため
に指し示される。代理VLIWは複数命令スロットから
成る代理メモリに記憶され、各スロットは1実行ユニッ
トと、ロード命令用に割当てられる1スロット及びスト
ア結合SP/PE命令用の1スロットとに関連付けられ
る。本Mfastプロセッサは、最大8スロットVLIWワ
ードに対応して体系化される。第1のMfast態様では、
各PE代理VLIWが最大5スロット(ALU、16×
16/32×32MAU、DSU、ロード、及びスト
ア)から成る。図17に示されるように、最大256V
LIW代理が各シーケンサ/PEにおいて指定される。
代理命令のロード及びストア・オプションは、アレイ・
データ・バスの適正で安全な使用のためにSP及びPE
の協動(joint cooperation)を要求する。
【0052】各PE及びSP内の代理命令メモリは"セ
グメント区切り命令(SDI)"を通じてロードされ
る。SDIはコード・ストリーム内に挿入され、次の命
令セットが各PE及びSP内の特定の代理メモリ・ロケ
ーションにロードされることを識別する。SDIはまた
次の項目を指定する。代理命令メモリ・アドレス、すな
わち代理番号。指定代理にロードされるSDIに続く命
令の数。ロード及び実行の制御すなわち、シンプレック
ス命令だけのロード、またはシンプレックス命令の実
行、及びそれに続くそのシンプレックス命令の代理メモ
リ内のVLIWへのロード。シンプレックス命令だけの
ロード或いは既存のスロット命令を置換する新たな命令
による代理の実行。新たな命令のロード以前に代理を無
動作(NOP)にするか否か。
【0053】代理メモリ内のスロットは特定のPE実行
ユニットに関連付けられるので、新たな代理を生成する
とき新たな命令が既存の命令を置換する。スロットが置
換されない場合には以前に指定された命令が残る。結果
的に、SDIは代理ロケーション全体をロード以前に無
動作にするフィールドを含む。
【0054】図16はPE代理データ・フローを示す。
代理メモリがロードされると代理命令により適切なVL
IWが実行のために選択される。各代理は、それが表現
するVLIWを識別するアドレス・フィールドを含む。
ここでは2つのタイプの代理が体系化される。代理0
(SRGT−0)は代理アドレスとVLIWとの間の1
対1の関係を提供する。代理(SRGT−1)は、代理
グループの1入口点すなわち代理アドレスとの1対1の
関係を提供し、そのグループの1VLIWをアクセスす
ることを可能にする。SRGT−1はオフセット・レジ
スタと共に使用され、各PE内の代理VLIWアドレス
を生成し、各PEにおいて異なるVLIWが同時並行に
実行されることを可能にする。ハザードが存在しないよ
うに保証するために、特殊SDI−M命令によりSRG
T−1により使用される代理がロードされる。予めSD
I−Mを使用すること無しにSRGT−1を発行すると
エラーと見なされる。図16は、代理アドレスを生成す
るために使用されるlog2Nビットのオフセット・レジス
タ及び小加算器を示す。特殊PEロード命令は、4×4
Mfastプロセッサ内の全てのPEオフセット・レジスタ
が単一サイクル内にロードされることを可能にする。更
にハザードを防止するために、SDI−M命令リスト
が、最大N個の全てのSRGT−1 VLIWに対応す
るロード及びストア用スロットの1つの指定だけを可能
にする。
【0055】図17に示されるように、セグメント区切
り命令SDI−M、SDI−L、SDI−X及び代理命
令(SRGT−0/1)は5つの特殊結合SP/PE命
令(S/P=11)を表す。SDI−L及びSDI−X
命令は、代理命令を生成及び変更する命令リストが続く
ように指定し、これらの代理命令は代理アドレス(SR
GT)アドレス・フィールドにより指定される。SDI
−M命令は、指定代理アドレスから始まるSDI−M命
令に続く命令リストから、最大'S'個の代理命令が生成
されるように指定する。SDI及び代理命令に対応し
て、SRGTアドレス・フィールドが代理メモリから2
56存在しうる代理の1つを指定する。SDI−L命令
は、命令リストからの命令が実行されロードされるべき
か、或いは単に指定代理にロードされるべきかを指定す
る。SDI−X命令は代理命令がリストの各命令に対し
て実行されるべきかを指定する。ここでリスト内の命令
はその実行以前に既存のVLIWスロットを置換する。
このことは例えば代理の繰返し実行を可能にし、各実行
に対してスロットが置換され、それによりオペランドの
出所フィールド及び(または)宛先フィールドが変更さ
れる。図17のIsLフィールドは、指定代理にロード
するための最大8命令のリストがSDI−L及びSDI
−X命令に続くことを示す。命令実行制御(Instr E×C
ntrl)フィールドはリスト内の最大8命令に個々に対応
して、代理VLIWが指定スロットのロード後に実行さ
れるべきか、或いは単にスロットのロードが発生すべき
かを指定する。SDI−Xは代理の実行以前に1乃至8
スロット/秒を変更する低待ち時間方法を可能にする。
特殊ビットであるZビットは、SDIに続く命令のロー
ドまたは実行−ロード以前に指定代理アドレスの全ての
スロットにNOPがロードされることを示す。
【0056】代理命令内の別のビットすなわちEビット
は、これが"1"であれば指定代理が無条件に実行される
ことを示す。このビットが"0"の場合にはPE条件付き
実行レジスタにより、VLIWスロットが実行されるべ
きか、NOPされるべきかが指定される。PE条件付き
実行レジスタは特殊目的レジスタとして体系化され、D
SU転送命令及びDSU条件付き転送命令によりアクセ
スされる。SDI−X及びSRGT−0/1命令はNI
selフィールドを含み、これはPE−NETインタフ
ェース・ポート(例えば最隣接(nearest neighbor)ポ
ート)へのアクセスを有するVLIWスロットを指定す
る。すなわちNIselフィールドは、1指定スロット
の宛先(DEST)フィールドをイネーブルにする。未
選択の他のスロットは、結果をローカル宛先ターゲット
・レジスタに送る。
【0057】SDI−M命令、SRGT−1命令及びP
Eオフセット・レジスタ・ロード命令は、各PEにおい
て異なるVLIWが単一ケースの代理命令(SRGT−
1)により制御されて、同時並行かつ同期してロード及
び実行する能力を提供するために使用される。SDI−
Mは次に示すハイ・レベル擬似キャッシュ形式を使用す
る。 1.SDI−M SRGTアドレス=X、全ての代理ロ
ケーションのNOPを強制、SRGTの数=S-set。 a.スロット・ロード命令(ロードされる全てのSDI
−M代理に対して共通)。 b.スロット・ストア命令(保管される全てのSDI−
M代理に対して共通)。 c.代理メモリ・アドレスXにおける代理番号X+0命
令。代理番号0のMAUスロット(全てのMAU命令ス
ロットに対してNIselが同一)。代理番号0のAL
Uスロット(全てのALU命令スロットに対してNIs
elが同一)。代理番号0のDSUスロット(全てのD
SU命令スロットに対してNIselが同一)。他の算
術PEスロットに対して継続。 d.代理メモリ・アドレスX+1における代理番号X+
1命令。代理番号1のMAUスロット(全てのMAU命
令スロットに対してNIselが同一)。代理番号1の
ALUスロット(全てのALU命令スロットに対してN
Iselが同一)。代理番号1のDSUスロット(全て
のDSU命令スロットに対してNIselが同一)。他
の算術PEスロットに対して継続。 e.代理メモリ・アドレスX+S-setにおける代理番号
X+S-set命令。代理番号S-setのMAUスロット(全
てのMAU命令スロットに対してNIselが同一)。
代理番号S-setのALUスロット(全てのALU命令ス
ロットに対してNIselが同一)。代理番号S-setの
DSUスロット(全てのDSU命令スロットに対してN
Iselが同一)。他の算術PEスロットに対して継
続。
【0058】各PEはSRGT−1命令と共に使用され
る"オフセット"・レジスタを含む。"オフセット"・レジ
スタは、任意の特定の態様において、log2N以下の値を
含む。このオフセット値はPEオフセット・ロード命令
によりロードされる。PEがSRGT−1を受信する
と、これはそのオフセット・レジスタ値をSRGT−1
の代理アドレス・フィールドに加算し、各PEにおいて
代理を選択するアドレスを生成する。ネットの結果とし
て異なる代理命令が各PE内で選択され、同期して実行
される。ロード/ストア・スロットは各PE内で生成さ
れる最大Nの代理に対して同一であるので、たとえ異な
る命令が各PE内で実行されていてもローカル・メモリ
のアクセスにおいて衝突は発生しない。ハザードが発生
しないように保証するために、SDI−Mが発行される
とき、SDI−M代理アドレスにおいて有効な代理アド
レスであることを示すフラグ・ビットがセットされる。
SRGT−1が発行される度に、SRGT−1の代理ア
ドレスにおけるフラグ・ビットがセットされているかど
うかがテストされる。セットされていない場合にはエラ
ー条件が強制され、SRGT−1はNOPとして作用す
る。それ以外では実行される。更にS-setは、各SRG
T−1に対応して許容可能な有効オフセット範囲を示
し、ハザードの発生を防止するための別のエラー条件テ
ストを可能にする。
【0059】図18は単一PE処理コードに対応する提
案フローを示す。図示のように、ノードは、単一のPE
(MAU、ALU、DSU及びGPRF(汎用レジスタ
・ファイル))により提供される要素の完全な補数に加
え、最隣接ポート及びD(データ)バスに対して、レジ
スタとの間でデータを転送するように指令するスイッチ
/選択論理を含む。提供される命令パイプライン・パス
論理はシンプレックス命令及び代理命令を規則正しく解
読し、実行する。各PE内には、PE命令解読レジスタ
及びPE実行レジスタ(省略名はそれぞれPDR及びP
XR)及び命令解読論理が設けられる。PEが実行でき
ないことの1つに自身の命令スレッドの決定がある(P
Eは命令アドレス・レジスタ及び関連順序化論理を有さ
ない)。Mfastマシンでは、シーケンス・プロセッサ
(SP)は、自身及び関連PEの両方の命令フェッチ・
タスクの実行に寄与する。次にPEがSPから命令を供
給される。PEは次にこれらの命令を(PDR内に)登
録し、これらを順次解読及び実行する。
【0060】PE命令パイプライン・フローの別の部分
は、代理命令メモリまたは略してSIMである。SIM
(レジスタ、RAM及び(または)ROMの組合わせ)
は、PEが代理VLIW命令(複数フロー要素内で実行
アクションを生成する命令)を実行できるようにするた
めに含まれる。代理が(PE内の論理により)命令スト
リーム内で検出されると、代理により指定されるVLI
W命令がSIMからアクセスされ、代理の代わりに実行
される。PE内の他の論理は、特殊なSDI命令の使用
によりSIMへのVLIW命令のロードを容易にする。
もちろん、幾つかのVLIW命令がROM内に保持され
る場合には、それらをロードする必要はない。ほとんど
のアプリケーションにおいて、ROM及びRAMベース
の特定の組合わせのSIMが望ましい。
【0061】図19はハイ・レベルのMwaveアレイ・プ
ロセッサ・マシン構成を示す。マシン構成は、大域メモ
リ及び外部I/Oを含むシステム・インタフェースと、
ローカル・メモリを有する複数制御ユニットと、分散制
御PEを有する実行アレイの3つの主要部分に区分化さ
れる。システム・インタフェースはアプリケーション依
存型インタフェースであり、これを介してMwaveアレイ
・プロセッサ・インタフェースは大域メモリ、I/O、
他のシステム・プロセッサ及びパーソナル・コンピュー
タ/ワークステーション・ホストとインタフェースす
る。結果的にシステム・インタフェースはアプリケーシ
ョン及びシステム設計全体に依存して変化する。制御ユ
ニットは、命令及びデータ記憶用のローカル・メモリ、
命令フェッチ(I−Fetch)機構、及びオペランドまた
はデータ・フェッチ機構(D−Fetch)を含む。分散制
御PEを有する実行アレイは、特定のアプリケーション
に対応して選択される処理要素の計算トポロジである。
例えば、実行アレイは1制御ユニット当たりN処理要素
(PE)を含み、各PEは命令バッファ(IBFR)、
汎用レジスタ・ファイル(GPRF)、機能実行ユニッ
ト(FNS)、通信機構(COM)及びその命令/デー
タ・バスとのインタフェースを含む。PEはまたPEロ
ーカル命令及びデータ用メモリを含みうる。更に各PE
は複数PEの分散制御をサポートする命令解読レジスタ
を含む。ローカル・メモリ・アクセスの同期は制御ユニ
ット、ローカル・メモリ及びPEの間の協動プロセスで
ある。PEのアレイは計算機能(FNS)が複数PE内
で並列に実行され、結果が(COMにより)PE間で伝
達されることを可能にする。
【0062】例えば図19に示されるようなMIMD
Mfastマシン構成により単一または複数スレッド・マシ
ンを生成することが可能であり、そこではPE及び通信
機構のトポロジがアプリケーションに依存して、より最
適なトポロジとして構成される。例えば可能なマシン構
成として、複数線形リング、最隣接2次元メッシュ・ア
レイ、折り畳み(folded)最隣接2次元メッシュ、複数
折り畳みメッシュ、2次元六方アレイ(hexagonal arra
y)、折り畳み2次元六方アレイ、折り畳みツリー・メ
ッシュ、及び上述の組合わせなどが挙げられる。
【0063】多くのアルゴリズムがデータに対して、高
速フーリエ変換または離散余弦変換などの"バタフライ"
・タイプのオペレーションを要求する。Mfastプロセッ
サはバタフライ・オペレーションを並列に処理すること
ができる。例えば、8×8データ・アレイに対応して、
各々が1列/行当たり8ペルを含む全8列/行に対し
て、バタフライ出力を計算するコード例が提供される。
Mfastは2つの加減算機能ユニット、すなわちMAU及
びALUを含み、これら両者がハーフワード及びデュア
ルバイト・オペレーションに対応して体系化されるの
で、64の加減算が1サイクルで処理される(すなわち
1PE当たり4つの加減算)。このレベルの並列処理を
達成するために代理命令が生成されなければならず、こ
うした代理命令は初期化時にロードされるか、PEがア
クセス可能なROMに記憶される。この例では、バタフ
ライ出力がPEのGPRF内のローカル・レジスタに返
却される。図20は4列から成るバタフライを実行し、
1命令の実行により全32+及び全32−値を生成する
VLIW命令108を示す。図21は、バタフライVL
IW命令108及び行の実行結果を示す。図から、全て
のバタフライ計算において16ビット精度が維持されて
いる点に注目されたい。
【0064】図20及び図21の折り畳みアレイ・プロ
セッサはまた、8×8形式に配列される64個のデータ
値に対して、バタフライ・オペレーションを提供するこ
とができる。これが図22に示され、ここではセル内の
上部の単一の添字表記"p"値により64個のデータ値が
8×8アレイに編成される。N×Nアレイではバタフラ
イはpbとPN 2 -1-bとの組合わせ、すなわちN=8で
は、p0とp63、p1とp6 2(以下同様)の組合わせを要
求する。より大きなサイズのデータ・アレイでは他のバ
タフライの組合わせが可能である。図23は64データ
値に対応するバタフライVLIW命令108及びその結
果を示す。
【0065】以上から、問題及びそれらを解決する方法
は次のように要約される。 1.各々が複数機能ユニットを含む処理要素のアレイに
対する、スケーラブル複合命令能力の提供。処理要素の
アレイに対して使用されるように、代理命令概念が拡張
される。 2.スケーラブル複合命令を変更する低待ち時間プログ
ラマブル方法の提供。VLIWスロットのロード情報と
結合される代理命令を、PEの単一の解読パイプライン
・ステージにおいて2レベル解読することにより、処理
要素が実行する最終結合複合実行アクションを決定す
る。
【0066】まとめとして、本発明の構成に関し以下の
事項を開示する。
【0067】(1)実行時にオペレーションを実行する
第1のタイプの基本命令、アドレス・ポインタを提供す
る第2のタイプの基本命令、及び第1及び第2のアドレ
ス・ポインタによりそれぞれアクセスされる第1及び第
2のロケーションに記憶される第1及び第2の代替命令
を記憶するメモリ手段と、前記メモリ手段に接続され、
前記命令を実行するための第1の固有のオフセット値を
有する第1のプロセッサ要素であって、前記プロセッサ
要素が前記第1のタイプの基本命令をオペレーションの
実行のために処理する命令解読を含み、前記命令解読が
前記第1の固有のオフセット値を前記第2のタイプの基
本命令と共に処理し、前記メモリ手段内の前記第1の代
替命令を指す前記第1のアドレス・ポインタを生成し、
それに応答して前記メモリ手段が前記第1の代替命令を
前記第1のプロセッサ要素に出力する、前記第1のプロ
セッサ要素と、前記メモリ手段に接続され、前記命令を
実行するための第2の固有のオフセット値を有する第2
のプロセッサ要素であって、前記第2のプロセッサ要素
が前記第1のタイプの基本命令をオペレーションの実行
のために処理する命令解読を含み、前記命令解読が前記
第2の固有のオフセット値を前記第2のタイプの基本命
令と共に処理し、前記メモリ手段内の前記第2の代替命
令を指す前記第2のアドレス・ポインタを生成し、それ
に応答して前記メモリ手段が前記第2の代替命令を前記
第2のプロセッサ要素に出力する、前記第2のプロセッ
サ要素と、を含み、前記メモリ手段から同報される単一
の命令が前記第1及び第2のプロセッサ要素内で異なる
オペレーションを選択的に制御する、データ処理システ
ム。 (2)前記メモリ手段が、前記基本命令を記憶する第1
の記憶手段と、前記代替命令を記憶する第2の記憶手段
と、を含む、前記(1)記載のデータ処理システム。 (3)前記第2のタイプの基本命令が代理命令であり、
前記代理命令が前記基本命令よりも長い超長命令ワード
(VLIW)である、前記(1)記載のデータ処理シス
テム。 (4)前記基本命令が単位長を有し、前記代替命令が前
記単位長の整数倍の長さを有する、前記(1)記載のデ
ータ処理システム。 (5)前記第1及び第2の各プロセッサ要素が第1のタ
イプの実行ユニット及び第2のタイプの実行ユニットを
有し、前記第1及び第2の各代替命令が前記第1のタイ
プの実行ユニットにおける実行のための第1の実行可能
部分、及び前記第2のタイプの実行ユニットにおける実
行のための第2の実行可能部分を有する、前記(1)記
載のデータ処理システム。 (6)前記第1の固有のオフセット値及び前記第2の固
有のオフセット値がプログラマブル値である、前記
(1)記載のデータ処理システム。 (7)前記第1の代替命令を、基底値と前記第1の固有
のオフセット値との合計に等しい値を有する第1のポイ
ンタ・アドレスに配置するステップと、前記第1の固有
のオフセット値が前記固有のオフセット値であるステッ
プと、前記第2のタイプの基本命令が前記基底値を含む
ステップと、前記第1のプロセッサ要素が前記第1の固
有のオフセット値と前記第2のタイプの基本命令からの
前記基底値とを加算し、前記第1のポインタ・アドレス
を生成するステップと、前記第2の代替命令を、基底値
と前記第2の固有のオフセット値との合計に等しい値を
有する第2のポインタ・アドレスに配置するステップ
と、前記第2の固有オフセット値が前記第2のオフセッ
ト値であるステップと、前記第2のタイプの基本命令が
前記基底値を含むステップと、前記第2のプロセッサ要
素が前記第2の固有のオフセット値と前記第2のタイプ
の基本命令からの前記基底値とを加算し、前記第2のポ
インタ・アドレスを生成するステップと、を含む、前記
(1)記載のデータ処理システム。 (8)前記第1及び第2の処理要素が単一命令複数デー
タ(SIMD)・アレイの一部である、前記(1)記載
のデータ処理システム。 (9)実行時にオペレーションを実行する第3のタイプ
の基本命令、アドレス・ポインタを提供する第4のタイ
プの基本命令、及び第3及び第4のアドレス・ポインタ
によりそれぞれアクセスされる第3及び第4のロケーシ
ョンに記憶される第3及び第4の代替命令を記憶する前
記メモリ手段と、前記メモリ手段に接続され、前記命令
を実行するための第3の固有のオフセット値を有する第
3のプロセッサ要素であって、前記第3のプロセッサ要
素が前記第3のタイプの基本命令をオペレーションの実
行のために処理する命令解読を含み、前記第3のプロセ
ッサ要素の命令解読が前記第3の固有のオフセット値を
前記第4のタイプの基本命令と共に処理し、前記メモリ
手段内の前記第3の代替命令を指す前記第3のアドレス
・ポインタを生成し、それに応答して前記メモリ手段が
前記第3の代替命令を前記第3のプロセッサ要素に出力
する、前記第3のプロセッサ要素と、前記メモリ手段に
接続され、前記命令を実行するための第4の固有のオフ
セット値を有する第4のプロセッサ要素であって、前記
第4のプロセッサ要素が前記第3のタイプの基本命令を
オペレーションの実行のために処理する命令解読を含
み、前記第4のプロセッサ要素の命令解読が前記第4の
固有のオフセット値を前記第4のタイプの基本命令と共
に処理し、前記メモリ手段内の前記第4の代替命令を指
す前記第4のアドレス・ポインタを生成し、それに応答
して前記メモリ手段が前記第4の代替命令を前記第4の
プロセッサ要素に出力する、前記第4のプロセッサ要素
と、を含み、前記第1、第2、第3及び第4のプロセッ
サ要素が複数命令複数データ(MIMD)・マルチプロ
セッサ・アレイ内に存在する、前記(1)記載のデータ
処理システム。 (10)実行時にオペレーションを実行する第1のタイ
プの基本命令、アドレス・ポインタを提供する第2のタ
イプの基本命令、及び第1及び第2のアドレス・ポイン
タによりそれぞれアクセスされる第1及び第2のロケー
ションに記憶される第1及び第2の代替命令を記憶する
メモリ手段と、前記メモリ手段に接続され、前記命令を
実行するための第1の固有のオフセット値を有する第1
のプロセッサ要素であって、前記第1の固有のオフセッ
ト値を前記第2のタイプの基本命令と共に処理し、前記
メモリ手段内の前記第1の代替命令を指す前記第1のア
ドレス・ポインタを生成し、それに応答して前記メモリ
手段が前記第1の代替命令を前記第1のプロセッサ要素
に出力する、前記第1のプロセッサ要素と、前記メモリ
手段に接続され、前記命令を実行するための第2の固有
のオフセット値を有する第2のプロセッサ要素であっ
て、前記第2の固有のオフセット値を前記第2のタイプ
の基本命令と共に処理し、前記メモリ手段内の前記第2
の代替命令を指す前記第2のアドレス・ポインタを生成
し、それに応答して前記メモリ手段が前記第2の代替命
令を前記第2のプロセッサ要素に出力する、前記第2の
プロセッサ要素と、を含み、前記メモリ手段から同報さ
れる単一の命令が前記第1及び第2のプロセッサ要素内
で異なるオペレーションを選択的に制御する、データ処
理システム。 (11)実行時にオペレーションを実行する第1のタイ
プの基本命令、アドレス・ポインタを提供する第2のタ
イプの基本命令、及び第1及び第2のアドレス・ポイン
タによりそれぞれアクセスされる第1及び第2のロケー
ションに記憶される第1及び第2の代替命令を記憶する
メモリ手段と、前記メモリ手段に接続され、前記命令を
実行するための第1の固有のオフセット値を有する第1
のプロセッサ要素であって、第1の論理演算の実行のた
めに前記第1の固有のオフセット値を前記第1のタイプ
の基本命令と共に処理する命令解読を含む、前記第1の
プロセッサ要素と、前記メモリ手段に接続され、前記命
令を実行するための第2の固有のオフセット値を有する
第2のプロセッサ要素であって、前記第1の論理演算と
は異なる第2の論理演算の実行のために前記第2の固有
のオフセット値を前記第1のタイプの基本命令と共に処
理する命令解読を含む、前記第2のプロセッサ要素と、
前記第1の固有のオフセット値を前記第2のタイプの基
本命令と共に処理し、前記メモリ手段内の前記第1の代
替命令を指す前記第1のアドレス・ポインタを生成す
る、前記第1のプロセッサ要素の前記命令解読であっ
て、それに応答して前記メモリ手段が前記第1の代替命
令を前記第1のプロセッサ要素に出力する前記第1のプ
ロセッサ要素の前記命令解読と、前記第2の固有のオフ
セット値を前記第2のタイプの基本命令と共に処理し、
前記メモリ手段内の前記第2の代替命令を指す前記第2
のアドレス・ポインタを生成する、前記第2のプロセッ
サ要素の前記命令解読であって、それに応答して前記メ
モリ手段が前記第2の代替命令を前記第2のプロセッサ
要素に出力する、前記第2のプロセッサ要素の前記命令
解読と、を含み、前記メモリ手段から同報される単一の
命令が前記第1及び第2のプロセッサ要素内で異なるオ
ペレーションを選択的に制御する、データ処理システ
ム。 (12)前記メモリ手段が、前記基本命令を記憶する第
1の記憶手段と、前記代替命令を記憶する第2の記憶手
段と、を含む、前記(11)記載のデータ処理システ
ム。 (13)前記第2のタイプの基本命令が代理命令であ
り、前記代理命令が前記基本命令よりも長い超長命令ワ
ード(VLIW)である、前記(11)記載のデータ処
理システム。 (14)実行時にオペレーションを実行する第1のタイ
プの基本命令、アドレス・ポインタを提供する第2のタ
イプの基本命令、及び第1及び第2のアドレス・ポイン
タによりそれぞれアクセスされる第1及び第2のロケー
ションに記憶される第1及び第2の代替命令を記憶する
ステップと、第1のプロセッサ要素に第1の固有のオフ
セット値を割当てるステップと、前記第1の固有のオフ
セット値を前記第2のタイプの基本命令と共に処理し、
前記第1の代替命令を指す前記第1のアドレス・ポイン
タを生成するステップであって、それに応答して前記第
1の代替命令を前記第1のプロセッサ要素に出力する、
前記処理ステップと、第2のプロセッサ要素に第2の固
有のオフセット値を割当てるステップと、前記第2の固
有のオフセット値を前記第2のタイプの基本命令と共に
処理し、前記第2の代替命令を指す前記第2のアドレス
・ポインタを生成するステップであって、それに応答し
て前記第2の代替命令を前記第2のプロセッサ要素に出
力する、前記処理ステップと、を含み、単一の同報命令
が前記第1及び第2のプロセッサ要素内で異なるオペレ
ーションを選択的に制御する、データ処理方法。 (15)前記第2のタイプの基本命令が代理命令であ
り、前記代理命令が前記基本命令よりも長い超長命令ワ
ード(VLIW)である、前記(14)記載のデータ処
理方法。 (16)前記基本命令が単位長を有し、前記代替命令が
前記単位長の整数倍の長さを有する、前記(14)記載
のデータ処理方法。 (17)前記第1及び第2の各プロセッサ要素が、第1
のタイプの実行ユニット及び第2のタイプの実行ユニッ
トを有し、前記第1及び第2の各代替命令が、前記第1
のタイプの実行ユニットにおける実行のための第1の実
行可能部分、及び前記第2のタイプの実行ユニットにお
ける実行のための第2の実行可能部分を有する、前記
(14)記載のデータ処理方法。 (18)前記第1の固有のオフセット値及び前記第2の
固有のオフセット値がプログラマブル値である、前記
(14)記載のデータ処理方法。 (19)前記第1の代替命令を、基底値と前記第1の固
有のオフセット値との合計に等しい値を有する第1のポ
インタ・アドレスに配置するステップと、前記第1の固
有のオフセット値が前記オフセット値であるステップ
と、前記第1の基本命令が前記基底値を含むステップ
と、前記第1のプロセッサ要素が前記第1の固有のオフ
セット値と前記第2のタイプの基本命令からの前記基底
値とを加算し、前記第1のポインタ・アドレスを生成す
るステップと、を含む、前記(14)記載のデータ処理
方法。 (20)前記第2の代替命令を、基底値と前記第2の固
有のオフセット値との合計に等しい値を有する第2のポ
インタ・アドレスに配置するステップと、前記第2の固
有のオフセット値が前記第2のオフセット値であるステ
ップと、前記第2の基本命令が前記基底値を含むステッ
プと、前記第2のプロセッサ要素が、前記第2の固有の
オフセット値と前記第2のタイプの基本命令からの前記
基底値とを加算し、前記第2のポインタ・アドレスを生
成するステップと、を含む、前記(19)記載のデータ
処理方法。 (21)実行時にオペレーションを実行する第1のタイ
プの基本命令、アドレス・ポインタを提供する第2のタ
イプの基本命令、及び第1及び第2のアドレス・ポイン
タによりそれぞれアクセスされる第1及び第2のロケー
ションに記憶される第1及び第2の代替命令を記憶する
メモリ手段であって、前記メモリ手段がセグメント区切
り命令及び第1及び第2のシンプレックス命令を含み、
前記の各代替命令が前記第1のシンプレックス命令を記
憶する第1のスロット部分、及び前記第2のシンプレッ
クス命令を記憶する第2のスロット部分を有する、前記
メモリ手段と、前記メモリ手段に接続され、前記命令を
実行するための第1の固有のオフセット値を有する第1
のプロセッサ要素であって、前記プロセッサ要素が、前
記第1のタイプの基本命令をオペレーションの実行のた
めに処理する命令解読を含み、前記第1のプロセッサ要
素の命令解読が前記第1の固有のオフセット値を前記第
2のタイプの基本命令と共に処理し、前記メモリ手段内
の前記第1の代替命令を指す前記第1のアドレス・ポイ
ンタを生成し、それに応答して前記メモリ手段が前記第
1の代替命令を前記第1のプロセッサ要素に出力する、
前記第1のプロセッサ要素と、前記第1の固有のオフセ
ット値を前記セグメント区切り命令と共に処理し、前記
第1のシンプレックス命令を前記第1の代替命令の前記
第1のスロット部分に挿入し、前記第2のシンプレック
ス命令を前記第1の代替命令の前記第2のスロット部分
に挿入する、前記第1のプロセッサ要素の前記命令解読
と、前記メモリ手段に接続され、前記命令を実行するた
めの第2の固有のオフセット値を有する第2のプロセッ
サ要素であって、第2の前記プロセッサ要素が前記第1
のタイプの基本命令をオペレーションの実行のために処
理する命令解読を含み、前記第2のプロセッサ要素の命
令解読が前記第2の固有のオフセット値を前記第2のタ
イプの基本命令と共に処理し、前記メモリ手段内の前記
第2の代替命令を指す前記第2のアドレス・ポインタを
生成し、それに応答して前記メモリ手段が前記第2の代
替命令を前記第2のプロセッサ要素に出力する、前記第
2のプロセッサ要素と、前記第2の固有のオフセット値
を前記セグメント区切り命令と共に処理し、前記第1の
シンプレックス命令を前記第2の代替命令の前記第1の
スロット部分に挿入し、前記第2のシンプレックス命令
を前記第2の代替命令の前記第2のスロット部分に挿入
する、前記第2のプロセッサ要素の前記命令解読と、を
含み、前記メモリ手段から同報される単一の命令が、前
記第1及び第2のプロセッサ要素内で異なるオペレーシ
ョンを選択的に制御する、データ処理システム。 (22)前記セグメント区切り命令が、前記第1のシン
プレックス命令に対応する第1の実行フラグと前記第2
のシンプレックス命令に対応する第2の実行フラグとを
含み、前記プロセッサ要素が、前記第1の実行フラグに
応答して前記第1のシンプレックス命令を選択的に実行
し、当該命令を前記代替命令の前記第1のスロット部分
に挿入し、前記プロセッサ要素が、前記第2の実行フラ
グに応答して前記第2のシンプレックス命令を選択的に
実行し、当該命令を前記代替命令の前記第2のスロット
部分に挿入する、前記(21)記載のデータ処理システ
ム。 (23)前記セグメント区切り命令が、前記第1のシン
プレックス命令に対応する第1の実行フラグと前記第2
のシンプレックス命令に対応する第2の実行フラグとを
含み、前記プロセッサ要素が、前記第1の実行フラグに
応答して前記代替命令の前記第1のスロット部分の前記
第1のシンプレックス命令を選択的に実行し、前記プロ
セッサ要素が、前記第2の実行フラグに応答して前記代
替命令の前記第2のスロット部分の前記第2のシンプレ
ックス命令を選択的に実行する、前記(21)記載のデ
ータ処理システム。
【0068】
【発明の効果】以上説明したように本発明によれば、並
列処理アレイのための改良されたプログラマブル・プロ
セッサ・アーキテクチャを提供することができる。
【0069】更に本発明によれば、並列処理アレイのプ
ロセッサ要素のオペレーションにおいて高度な柔軟性及
び汎用性を提供することができる。
【図面の簡単な説明】
【図1】RISC SISD制御フローを示す図であ
る。
【図2】RISC区分化SISD制御フローを示す図で
ある。
【図3】単純化したRISC区分化SISD制御フロー
を示す図である。
【図4】分岐無しの条件付き選択モデルを示す図であ
る。
【図5】最小/最大ハイ・レベル・プログラムを示す図
である。
【図6】最小/最大アセンブリ・レベル・プログラムを
示す図である。
【図7】最小/最大条件付き選択アセンブリ・プログラ
ムを示す図である。
【図8】VLIW条件付き選択モデルを示す図である。
【図9】VLIW最小/最大条件付き選択アセンブリ・
プログラム番号1を示す図である。
【図10】単一VLIW PE最小/最大条件付き選択
アセンブリ・プログラム番号2を示す図である。
【図11】2VLIWデータ・パス単一制御フローを示
す図である。
【図12】VLIW最小/最大条件付き選択アセンブリ
・プログラム番号3を示す図である。
【図13】N VLIWデータ・パス単一制御フローを
示す図である。
【図14】VLIW優先度グラフを示す図である。
【図15】複数VLIW PE優先度グラフを示す図で
ある。
【図16】PE代理データ・フローを示す図である。
【図17】SDI及び代理命令結合形式を示す図であ
る。
【図18】接続インタフェースを有する単一PE(対
角)ノード・フローを示す図である。
【図19】ハイ・レベルMウェーブ・アレイ・マシン構
成複数制御ユニットを示す図である。
【図20】代理クワッド・カラム・バタフライ実行結果
を示す図である。
【図21】代理クワッド・ロウ・バタフライ実行結果を
示す図である。
【図22】線形変換2次元アレイ・データ形式を示す図
である。
【図23】代理クワッド・アレイ・バタフライ実行結果
を示す図である。
【符号の説明】
100 MIMDアレイ 101 基本命令 102 プロセッサ要素 104 固有のオフセット値 107 ポインタ・アドレス 108 代替命令 110 代替命令記憶 112 SIMDシステム構成 114 メモリ手段 116 デコーダ 118 命令バス 120 第1の実行可能部分 122 第2の実行可能部分
───────────────────────────────────────────────────── フロントページの続き (72)発明者 クレア・ジョン・グロスナー アメリカ合衆国27707、ノース・カロラ イナ州ダーラム、ウォーリングフォー ド・プレース 4144 (72)発明者 ラリー・ディ・ラーセン アメリカ合衆国27609、ノース・カロラ イナ州ローリー、エモリー・レーン 912 (72)発明者 スタマティス・ヴァシリアディス ニュージーランド、ゾエターメア2726、 ケンフォブ91、ピエール(番地なし) (56)参考文献 特開 平5−282266(JP,A) 特開 平2−211535(JP,A) 特開 昭63−163543(JP,A) 特開 昭58−58651(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 610 G06F 9/38 310 G06F 15/80 WPI(DIALOG)

Claims (23)

    (57)【特許請求の範囲】
  1. 【請求項1】実行時にオペレーションを実行する第1の
    タイプの基本命令、アドレス・ポインタを提供する第2
    のタイプの基本命令、及び第1及び第2のアドレス・ポ
    インタによりそれぞれアクセスされる第1及び第2のロ
    ケーションに記憶される第1及び第2の代替命令を記憶
    するメモリ手段と、 前記メモリ手段に接続され、前記命令を実行するための
    第1の固有のオフセット値を有する第1のプロセッサ要
    素であって、 前記プロセッサ要素が前記第1のタイプの基本命令をオ
    ペレーションの実行のために処理する命令解読を含み、 前記命令解読が前記第1の固有のオフセット値を前記第
    2のタイプの基本命令と共に処理し、前記メモリ手段内
    の前記第1の代替命令を指す前記第1のアドレス・ポイ
    ンタを生成し、それに応答して前記メモリ手段が前記第
    1の代替命令を前記第1のプロセッサ要素に出力する、
    前記第1のプロセッサ要素と、 前記メモリ手段に接続され、前記命令を実行するための
    第2の固有のオフセット値を有する第2のプロセッサ要
    素であって、 前記第2のプロセッサ要素が前記第1のタイプの基本命
    令をオペレーションの実行のために処理する命令解読を
    含み、 前記命令解読が前記第2の固有のオフセット値を前記第
    2のタイプの基本命令と共に処理し、前記メモリ手段内
    の前記第2の代替命令を指す前記第2のアドレス・ポイ
    ンタを生成し、それに応答して前記メモリ手段が前記第
    2の代替命令を前記第2のプロセッサ要素に出力する、
    前記第2のプロセッサ要素と、 を含み、前記メモリ手段から同報される単一の命令が前
    記第1及び第2のプロセッサ要素内で異なるオペレーシ
    ョンを選択的に制御する、 データ処理システム。
  2. 【請求項2】前記メモリ手段が、 前記基本命令を記憶する第1の記憶手段と、 前記代替命令を記憶する第2の記憶手段と、 を含む、請求項1記載のデータ処理システム。
  3. 【請求項3】前記第2のタイプの基本命令が代理命令で
    あり、前記代理命令が前記基本命令よりも長い超長命令
    ワード(VLIW)である、請求項1記載のデータ処理
    システム。
  4. 【請求項4】前記基本命令が単位長を有し、前記代替命
    令が前記単位長の整数倍の長さを有する、請求項1記載
    のデータ処理システム。
  5. 【請求項5】前記第1及び第2の各プロセッサ要素が第
    1のタイプの実行ユニット及び第2のタイプの実行ユニ
    ットを有し、 前記第1及び第2の各代替命令が前記第1のタイプの実
    行ユニットにおける実行のための第1の実行可能部分、
    及び前記第2のタイプの実行ユニットにおける実行のた
    めの第2の実行可能部分を有する、 請求項1記載のデータ処理システム。
  6. 【請求項6】前記第1の固有のオフセット値及び前記第
    2の固有のオフセット値がプログラマブル値である、請
    求項1記載のデータ処理システム。
  7. 【請求項7】前記第1の代替命令を、基底値と前記第1
    の固有のオフセット値との合計に等しい値を有する第1
    のポインタ・アドレスに配置するステップと、 前記第1の固有のオフセット値が前記固有のオフセット
    値であるステップと、 前記第2のタイプの基本命令が前記基底値を含むステッ
    プと、 前記第1のプロセッサ要素が前記第1の固有のオフセッ
    ト値と前記第2のタイプの基本命令からの前記基底値と
    を加算し、前記第1のポインタ・アドレスを生成するス
    テップと、 前記第2の代替命令を、基底値と前記第2の固有のオフ
    セット値との合計に等しい値を有する第2のポインタ・
    アドレスに配置するステップと、 前記第2の固有オフセット値が前記第2のオフセット値
    であるステップと、 前記第2のタイプの基本命令が前記基底値を含むステッ
    プと、 前記第2のプロセッサ要素が前記第2の固有のオフセッ
    ト値と前記第2のタイプの基本命令からの前記基底値と
    を加算し、前記第2のポインタ・アドレスを生成するス
    テップと、 を含む、請求項1記載のデータ処理システム。
  8. 【請求項8】前記第1及び第2の処理要素が単一命令複
    数データ(SIMD)・アレイの一部である、請求項1
    記載のデータ処理システム。
  9. 【請求項9】実行時にオペレーションを実行する第3の
    タイプの基本命令、アドレス・ポインタを提供する第4
    のタイプの基本命令、及び第3及び第4のアドレス・ポ
    インタによりそれぞれアクセスされる第3及び第4のロ
    ケーションに記憶される第3及び第4の代替命令を記憶
    する前記メモリ手段と、 前記メモリ手段に接続され、前記命令を実行するための
    第3の固有のオフセット値を有する第3のプロセッサ要
    素であって、 前記第3のプロセッサ要素が前記第3のタイプの基本命
    令をオペレーションの実行のために処理する命令解読を
    含み、 前記第3のプロセッサ要素の命令解読が前記第3の固有
    のオフセット値を前記第4のタイプの基本命令と共に処
    理し、前記メモリ手段内の前記第3の代替命令を指す前
    記第3のアドレス・ポインタを生成し、それに応答して
    前記メモリ手段が前記第3の代替命令を前記第3のプロ
    セッサ要素に出力する、前記第3のプロセッサ要素と、 前記メモリ手段に接続され、前記命令を実行するための
    第4の固有のオフセット値を有する第4のプロセッサ要
    素であって、 前記第4のプロセッサ要素が前記第3のタイプの基本命
    令をオペレーションの実行のために処理する命令解読を
    含み、 前記第4のプロセッサ要素の命令解読が前記第4の固有
    のオフセット値を前記第4のタイプの基本命令と共に処
    理し、前記メモリ手段内の前記第4の代替命令を指す前
    記第4のアドレス・ポインタを生成し、それに応答して
    前記メモリ手段が前記第4の代替命令を前記第4のプロ
    セッサ要素に出力する、前記第4のプロセッサ要素と、 を含み、前記第1、第2、第3及び第4のプロセッサ要
    素が複数命令複数データ(MIMD)・マルチプロセッ
    サ・アレイ内に存在する、 請求項1記載のデータ処理システム。
  10. 【請求項10】実行時にオペレーションを実行する第1
    のタイプの基本命令、アドレス・ポインタを提供する第
    2のタイプの基本命令、及び第1及び第2のアドレス・
    ポインタによりそれぞれアクセスされる第1及び第2の
    ロケーションに記憶される第1及び第2の代替命令を記
    憶するメモリ手段と、 前記メモリ手段に接続され、前記命令を実行するための
    第1の固有のオフセット値を有する第1のプロセッサ要
    素であって、 前記第1の固有のオフセット値を前記第2のタイプの基
    本命令と共に処理し、前記メモリ手段内の前記第1の代
    替命令を指す前記第1のアドレス・ポインタを生成し、
    それに応答して前記メモリ手段が前記第1の代替命令を
    前記第1のプロセッサ要素に出力する、前記第1のプロ
    セッサ要素と、 前記メモリ手段に接続され、前記命令を実行するための
    第2の固有のオフセット値を有する第2のプロセッサ要
    素であって、 前記第2の固有のオフセット値を前記第2のタイプの基
    本命令と共に処理し、前記メモリ手段内の前記第2の代
    替命令を指す前記第2のアドレス・ポインタを生成し、
    それに応答して前記メモリ手段が前記第2の代替命令を
    前記第2のプロセッサ要素に出力する、前記第2のプロ
    セッサ要素と、 を含み、前記メモリ手段から同報される単一の命令が前
    記第1及び第2のプロセッサ要素内で異なるオペレーシ
    ョンを選択的に制御する、 データ処理システム。
  11. 【請求項11】実行時にオペレーションを実行する第1
    のタイプの基本命令、アドレス・ポインタを提供する第
    2のタイプの基本命令、及び第1及び第2のアドレス・
    ポインタによりそれぞれアクセスされる第1及び第2の
    ロケーションに記憶される第1及び第2の代替命令を記
    憶するメモリ手段と、 前記メモリ手段に接続され、前記命令を実行するための
    第1の固有のオフセット値を有する第1のプロセッサ要
    素であって、 第1の論理演算の実行のために前記第1の固有のオフセ
    ット値を前記第1のタイプの基本命令と共に処理する命
    令解読を含む、前記第1のプロセッサ要素と、 前記メモリ手段に接続され、前記命令を実行するための
    第2の固有のオフセット値を有する第2のプロセッサ要
    素であって、 前記第1の論理演算とは異なる第2の論理演算の実行の
    ために前記第2の固有のオフセット値を前記第1のタイ
    プの基本命令と共に処理する命令解読を含む、前記第2
    のプロセッサ要素と、 前記第1の固有のオフセット値を前記第2のタイプの基
    本命令と共に処理し、前記メモリ手段内の前記第1の代
    替命令を指す前記第1のアドレス・ポインタを生成す
    る、前記第1のプロセッサ要素の前記命令解読であっ
    て、それに応答して前記メモリ手段が前記第1の代替命
    令を前記第1のプロセッサ要素に出力する前記第1のプ
    ロセッサ要素の前記命令解読と、 前記第2の固有のオフセット値を前記第2のタイプの基
    本命令と共に処理し、前記メモリ手段内の前記第2の代
    替命令を指す前記第2のアドレス・ポインタを生成す
    る、前記第2のプロセッサ要素の前記命令解読であっ
    て、それに応答して前記メモリ手段が前記第2の代替命
    令を前記第2のプロセッサ要素に出力する、前記第2の
    プロセッサ要素の前記命令解読と、 を含み、前記メモリ手段から同報される単一の命令が前
    記第1及び第2のプロセッサ要素内で異なるオペレーシ
    ョンを選択的に制御する、 データ処理システム。
  12. 【請求項12】前記メモリ手段が、 前記基本命令を記憶する第1の記憶手段と、 前記代替命令を記憶する第2の記憶手段と、 を含む、請求項11記載のデータ処理システム。
  13. 【請求項13】前記第2のタイプの基本命令が代理命令
    であり、前記代理命令が前記基本命令よりも長い超長命
    令ワード(VLIW)である、請求項11記載のデータ
    処理システム。
  14. 【請求項14】実行時にオペレーションを実行する第1
    のタイプの基本命令、アドレス・ポインタを提供する第
    2のタイプの基本命令、及び第1及び第2のアドレス・
    ポインタによりそれぞれアクセスされる第1及び第2の
    ロケーションに記憶される第1及び第2の代替命令を記
    憶するステップと、 第1のプロセッサ要素に第1の固有のオフセット値を割
    当てるステップと、 前記第1の固有のオフセット値を前記第2のタイプの基
    本命令と共に処理し、前記第1の代替命令を指す前記第
    1のアドレス・ポインタを生成するステップであって、
    それに応答して前記第1の代替命令を前記第1のプロセ
    ッサ要素に出力する、前記処理ステップと、 第2のプロセッサ要素に第2の固有のオフセット値を割
    当てるステップと、 前記第2の固有のオフセット値を前記第2のタイプの基
    本命令と共に処理し、前記第2の代替命令を指す前記第
    2のアドレス・ポインタを生成するステップであって、
    それに応答して前記第2の代替命令を前記第2のプロセ
    ッサ要素に出力する、前記処理ステップと、 を含み、単一の同報命令が前記第1及び第2のプロセッ
    サ要素内で異なるオペレーションを選択的に制御する、 データ処理方法。
  15. 【請求項15】前記第2のタイプの基本命令が代理命令
    であり、前記代理命令が前記基本命令よりも長い超長命
    令ワード(VLIW)である、請求項14記載のデータ
    処理方法。
  16. 【請求項16】前記基本命令が単位長を有し、前記代替
    命令が前記単位長の整数倍の長さを有する、請求項14
    記載のデータ処理方法。
  17. 【請求項17】前記第1及び第2の各プロセッサ要素
    が、第1のタイプの実行ユニット及び第2のタイプの実
    行ユニットを有し、 前記第1及び第2の各代替命令が、前記第1のタイプの
    実行ユニットにおける実行のための第1の実行可能部
    分、及び前記第2のタイプの実行ユニットにおける実行
    のための第2の実行可能部分を有する、 請求項14記載のデータ処理方法。
  18. 【請求項18】前記第1の固有のオフセット値及び前記
    第2の固有のオフセット値がプログラマブル値である、
    請求項14記載のデータ処理方法。
  19. 【請求項19】前記第1の代替命令を、基底値と前記第
    1の固有のオフセット値との合計に等しい値を有する第
    1のポインタ・アドレスに配置するステップと、 前記第1の固有のオフセット値が前記オフセット値であ
    るステップと、 前記第1の基本命令が前記基底値を含むステップと、 前記第1のプロセッサ要素が前記第1の固有のオフセッ
    ト値と前記第2のタイプの基本命令からの前記基底値と
    を加算し、前記第1のポインタ・アドレスを生成するス
    テップと、 を含む、請求項14記載のデータ処理方法。
  20. 【請求項20】前記第2の代替命令を、基底値と前記第
    2の固有のオフセット値との合計に等しい値を有する第
    2のポインタ・アドレスに配置するステップと、 前記第2の固有のオフセット値が前記第2のオフセット
    値であるステップと、 前記第2の基本命令が前記基底値を含むステップと、前
    記第2のプロセッサ要素が、前記第2の固有のオフセッ
    ト値と前記第2のタイプの基本命令からの前記基底値と
    を加算し、前記第2のポインタ・アドレスを生成するス
    テップと、 を含む、請求項19記載のデータ処理方法。
  21. 【請求項21】実行時にオペレーションを実行する第1
    のタイプの基本命令、アドレス・ポインタを提供する第
    2のタイプの基本命令、第1及び第2のアドレス・ポイ
    ンタによりそれぞれアクセスされる第1及び第2のロケ
    ーションに記憶される第1及び第2の代替命令、セグメ
    ント区切り命令、並びに第1及び第2のシンプレックス
    命令を記憶するメモリ手段と、 前記の各代替命令が、前記第1のシンプレックス命令を
    記憶する第1のスロット部分及び前記第2のシンプレッ
    クス命令を記憶する第2のスロット部分を有すること
    と、 前記メモリ手段に接続され、前記命令を実行するための
    第1の固有のオフセット値を有する第1のプロセッサ要
    素であって、前記第1のタイプの基本命令をオペレーシ
    ョンの実行のために処理する命令解読を含む第1のプロ
    セッサ要素と、 前記第1のプロセッサ要素の命令解読は、前記第1の固
    有のオフセット値を前記第2のタイプの基本命令と共に
    処理し、前記メモリ手段内の前記第1の代替命令を指す
    前記第1のアドレス・ポインタを生成し、それに応答し
    て前記メモリ手段が前記第1の代替命令を前記第1のプ
    ロセッサ要素に出力することと、 前記第1のプロセッサ要素の前記命令解読は、前記第1
    の固有のオフセット値を前記セグメント区切り命令と共
    に処理し、前記第1のシンプレックス命令を前記第1の
    代替命令の前記第1のスロット部分に挿入し、前記第2
    のシンプレックス命令を前記第1の代替命令の前記第2
    のスロット部分に挿入することと、 前記メモリ手段に接続され、前記命令を実行するための
    第2の固有のオフセット値を有する第2のプロセッサ要
    素であって、前記第1のタイプの基本命令をオペレーシ
    ョンの実行のために処理する命令解読を含む第2のプロ
    セッサ要素と、 前記第2のプロセッサ要素の命令解読は、前記第2の固
    有のオフセット値を前記第2のタイプの基本命令と共に
    処理し、前記メモリ手段内の前記第2の代替命令を指す
    前記第2のアドレス・ポインタを生成し、それに応答し
    て前記メモリ手段が前記第2の代替命令を前記第2のプ
    ロセッサ要素に出力することと、 前記第2のプロセッサ要素の前記命令解読は、前記第2
    の固有のオフセット値を前記セグメント区切り命令と共
    に処理し、前記第1のシンプレックス命令を前記第2の
    代替命令の前記第1のスロット部分に挿入し、前記第2
    のシンプレックス命令を前記第2の代替命令の前記第2
    のスロット部分に挿入することと、 を含み、前記メモリ手段から同報される単一の命令が、
    前記第1及び第2のプロセッサ要素内で異なるオペレー
    ションを選択的に制御する、 データ処理システム。
  22. 【請求項22】前記セグメント区切り命令が、前記第1
    のシンプレックス命令に対応する第1の実行フラグと前
    記第2のシンプレックス命令に対応する第2の実行フラ
    グとを含み、 前記プロセッサ要素が、前記第1の実行フラグに応答し
    て前記第1のシンプレックス命令を選択的に実行し、当
    該命令を前記代替命令の前記第1のスロット部分に挿入
    し、 前記プロセッサ要素が、前記第2の実行フラグに応答し
    て前記第2のシンプレックス命令を選択的に実行し、当
    該命令を前記代替命令の前記第2のスロット部分に挿入
    する、 請求項21記載のデータ処理システム。
  23. 【請求項23】前記セグメント区切り命令が、前記第1
    のシンプレックス命令に対応する第1の実行フラグと前
    記第2のシンプレックス命令に対応する第2の実行フラ
    グとを含み、 前記プロセッサ要素が、前記第1の実行フラグに応答し
    て前記代替命令の前記第1のスロット部分の前記第1の
    シンプレックス命令を選択的に実行し、 前記プロセッサ要素が、前記第2の実行フラグに応答し
    て前記代替命令の前記第2のスロット部分の前記第2の
    シンプレックス命令を選択的に実行する、 請求項21記載のデータ処理システム。
JP00183296A 1995-01-17 1996-01-09 代理命令を用いる並列処理システム及び方法 Expired - Fee Related JP3149348B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US373128 1995-01-17
US08/373,128 US5649135A (en) 1995-01-17 1995-01-17 Parallel processing system and method using surrogate instructions

Publications (2)

Publication Number Publication Date
JPH08249293A JPH08249293A (ja) 1996-09-27
JP3149348B2 true JP3149348B2 (ja) 2001-03-26

Family

ID=23471090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00183296A Expired - Fee Related JP3149348B2 (ja) 1995-01-17 1996-01-09 代理命令を用いる並列処理システム及び方法

Country Status (4)

Country Link
US (1) US5649135A (ja)
EP (1) EP0723220A3 (ja)
JP (1) JP3149348B2 (ja)
KR (1) KR100190738B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE46712E1 (en) 1998-03-18 2018-02-13 Koninklijke Philips N.V. Data processing device and method of computing the cosine transform of a matrix

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774737A (en) * 1995-10-13 1998-06-30 Matsushita Electric Industrial Co., Ltd. Variable word length very long instruction word instruction processor with word length register or instruction number register
US8583895B2 (en) * 1996-05-15 2013-11-12 Nytell Software LLC Compressed instruction format for use in a VLIW processor
US5852741A (en) * 1996-05-15 1998-12-22 Philips Electronics North America Corporation VLIW processor which processes compressed instruction format
US5943499A (en) * 1996-11-27 1999-08-24 Hewlett-Packard Company System and method for solving general global data flow predicated code problems
GB2325535A (en) * 1997-05-23 1998-11-25 Aspex Microsystems Ltd Data processor controller with accelerated instruction generation
US5966537A (en) * 1997-05-28 1999-10-12 Sun Microsystems, Inc. Method and apparatus for dynamically optimizing an executable computer program using input data
DE69837791T2 (de) * 1997-11-07 2007-10-18 Altera Corp., San Jose VERFAHREN UND GERÄT FÜR EFFIZIENTE, SYNCHRONE MIMD-OPERATIONEN MIT iVLIW PE-ZU-PE KOMMUNIKATIONEN
US6115830A (en) * 1997-11-11 2000-09-05 Compaq Computer Corporation Failure recovery for process relationships in a single system image environment
US6173389B1 (en) 1997-12-04 2001-01-09 Billions Of Operations Per Second, Inc. Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor
US6101592A (en) * 1998-12-18 2000-08-08 Billions Of Operations Per Second, Inc. Methods and apparatus for scalable instruction set architecture with dynamic compact instructions
US6216223B1 (en) 1998-01-12 2001-04-10 Billions Of Operations Per Second, Inc. Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
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
EP0942359B1 (en) * 1998-02-19 2012-07-04 Lantiq Deutschland GmbH An apparatus for executing instructions of a program
US6219776B1 (en) * 1998-03-10 2001-04-17 Billions Of Operations Per Second Merged array controller and processing element
USRE41012E1 (en) 1998-03-12 2009-11-24 Altera Corporation Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
US6446190B1 (en) * 1998-03-12 2002-09-03 Bops, Inc. Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
US6112288A (en) * 1998-05-19 2000-08-29 Paracel, Inc. Dynamic configurable system of parallel modules comprising chain of chips comprising parallel pipeline chain of processors with master controller feeding command and data
US6356994B1 (en) * 1998-07-09 2002-03-12 Bops, Incorporated Methods and apparatus for instruction addressing in indirect VLIW processors
US6839728B2 (en) * 1998-10-09 2005-01-04 Pts Corporation Efficient complex multiplication and fast fourier transform (FFT) implementation on the manarray architecture
US6366998B1 (en) 1998-10-14 2002-04-02 Conexant Systems, Inc. Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model
US6453407B1 (en) 1999-02-10 2002-09-17 Infineon Technologies Ag Configurable long instruction word architecture and instruction set
US6282585B1 (en) * 1999-03-22 2001-08-28 Agere Systems Guardian Corp. Cooperative interconnection for reducing port pressure in clustered microprocessors
US6405301B1 (en) * 1999-06-15 2002-06-11 U.S. Philips Corporation Parallel data processing
US20080162874A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel data processing apparatus
US20070242074A1 (en) * 1999-04-09 2007-10-18 Dave Stuttard Parallel data processing apparatus
US7802079B2 (en) 1999-04-09 2010-09-21 Clearspeed Technology Limited Parallel data processing apparatus
US8762691B2 (en) 1999-04-09 2014-06-24 Rambus Inc. Memory access consolidation for SIMD processing elements using transaction identifiers
US20080008393A1 (en) * 1999-04-09 2008-01-10 Dave Stuttard Parallel data processing apparatus
US7966475B2 (en) 1999-04-09 2011-06-21 Rambus Inc. Parallel data processing apparatus
US7526630B2 (en) * 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
JP5285828B2 (ja) * 1999-04-09 2013-09-11 ラムバス・インコーポレーテッド 並列データ処理装置
US20080162875A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel Data Processing Apparatus
US8174530B2 (en) * 1999-04-09 2012-05-08 Rambus Inc. Parallel date processing apparatus
US8169440B2 (en) 1999-04-09 2012-05-01 Rambus Inc. Parallel data processing apparatus
US8171263B2 (en) * 1999-04-09 2012-05-01 Rambus Inc. Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions
US6598146B1 (en) * 1999-06-15 2003-07-22 Koninklijke Philips Electronics N.V. Data-processing arrangement comprising a plurality of processing and memory circuits
NL1013134C2 (nl) * 1999-09-24 2001-03-27 Dsm Nv Vlamvertragende thermoplastische samenstelling met verbeterde eigenschappen.
US6754892B1 (en) * 1999-12-15 2004-06-22 Transmeta Corporation Instruction packing for an advanced microprocessor
US6859870B1 (en) * 2000-03-07 2005-02-22 University Of Washington Method and apparatus for compressing VLIW instruction and sharing subinstructions
US6728862B1 (en) 2000-05-22 2004-04-27 Gazelle Technology Corporation Processor array and parallel data processing methods
US6415376B1 (en) 2000-06-16 2002-07-02 Conexant Sytems, Inc. Apparatus and method for issue grouping of instructions in a VLIW processor
JP4542722B2 (ja) * 2001-04-25 2010-09-15 富士通株式会社 命令処理方法
US7072970B2 (en) * 2001-10-05 2006-07-04 International Business Machines Corporation Programmable network protocol handler architecture
US7676588B2 (en) * 2001-10-05 2010-03-09 International Business Machines Corporation Programmable network protocol handler architecture
US6968445B2 (en) * 2001-12-20 2005-11-22 Sandbridge Technologies, Inc. Multithreaded processor with efficient processing for convergence device applications
US6842848B2 (en) 2002-10-11 2005-01-11 Sandbridge Technologies, Inc. Method and apparatus for token triggered multithreading
US6904511B2 (en) * 2002-10-11 2005-06-07 Sandbridge Technologies, Inc. Method and apparatus for register file port reduction in a multithreaded processor
US6925643B2 (en) 2002-10-11 2005-08-02 Sandbridge Technologies, Inc. Method and apparatus for thread-based memory access in a multithreaded processor
US7386704B2 (en) * 2002-10-31 2008-06-10 Lockheed Martin Corporation Pipeline accelerator including pipeline circuits in communication via a bus, and related system and method
US20040098568A1 (en) * 2002-11-18 2004-05-20 Nguyen Hung T. Processor having a unified register file with multipurpose registers for storing address and data register values, and associated register mapping method
US6993639B2 (en) * 2003-04-01 2006-01-31 Hewlett-Packard Development Company, L.P. Processing instruction addressed by received remote instruction and generating remote instruction to respective output port for another cell
US7451459B2 (en) * 2003-05-05 2008-11-11 Microsoft Corporation Systems, methods, and apparatus for indicating processor hierarchical topology
US7698539B1 (en) * 2003-07-16 2010-04-13 Banning John P System and method of instruction modification
US7606997B1 (en) 2003-07-18 2009-10-20 Guillermo Rozas Method and system for using one or more address bits and an instruction to increase an instruction set
US7487302B2 (en) * 2004-10-01 2009-02-03 Lockheed Martin Corporation Service layer architecture for memory access system and method
US7493474B1 (en) * 2004-11-10 2009-02-17 Altera Corporation Methods and apparatus for transforming, loading, and executing super-set instructions
US8812433B2 (en) * 2005-02-07 2014-08-19 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US8918366B2 (en) * 2005-02-07 2014-12-23 Mimosa Systems, Inc. Synthetic full copies of data and dynamic bulk-to-brick transformation
US8799206B2 (en) * 2005-02-07 2014-08-05 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
DE102005033770A1 (de) * 2005-07-15 2007-01-25 Technische Universität Dresden Anordnung und Verfahren zur datenflussabhängigen Programmablaufsteuerung in einem SIMD-Prozessor
CN101501668B (zh) * 2005-08-23 2012-07-25 米谋萨系统有限公司 通过身份保持的企业服务可利用性
EP1821254A1 (en) * 2006-02-17 2007-08-22 Deutsche Börse Ag Parallelization command driven data handling
CN100492279C (zh) * 2006-07-27 2009-05-27 中国科学院计算技术研究所 对复杂指令译码生成微码的译码装置和方法
US9354890B1 (en) 2007-10-23 2016-05-31 Marvell International Ltd. Call stack structure for enabling execution of code outside of a subroutine and between call stack frames
US8095775B1 (en) * 2007-11-21 2012-01-10 Marvell International Ltd. Instruction pointers in very long instruction words
US7841436B2 (en) 2008-01-21 2010-11-30 Amigo Mobility International Personal mobility vehicle
US9582443B1 (en) 2010-02-12 2017-02-28 Marvell International Ltd. Serial control channel processor for executing time-based instructions
US8884920B1 (en) 2011-05-25 2014-11-11 Marvell International Ltd. Programmatic sensing of capacitive sensors
US9098694B1 (en) 2011-07-06 2015-08-04 Marvell International Ltd. Clone-resistant logic
US9069553B2 (en) 2011-09-06 2015-06-30 Marvell World Trade Ltd. Switching tasks between heterogeneous cores
DE102016108081A1 (de) * 2016-05-02 2017-11-02 Denso Corporation Mikroprozessor mit Zusatz-Befehlen für Binärsuche und zugehöriges Suchverfahren

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2555963C2 (de) * 1975-12-12 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Funktionsmodifizierung
US4394736A (en) * 1980-02-11 1983-07-19 Data General Corporation Data processing system utilizing a unique two-level microcoding technique for forming microinstructions
US4814978A (en) * 1986-07-15 1989-03-21 Dataflow Computer Corporation Dataflow processing element, multiprocessor, and processes
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
US5057837A (en) * 1987-04-20 1991-10-15 Digital Equipment Corporation Instruction storage method with a compressed format using a mask word
US4923907A (en) * 1989-02-21 1990-05-08 Sorrento Engineering, Inc. Method of making porous inorganic particle filled polyimide foam insulation products
US5303358A (en) * 1990-01-26 1994-04-12 Apple Computer, Inc. Prefix instruction for modification of a subsequent instruction
US5303356A (en) * 1990-05-04 1994-04-12 International Business Machines Corporation System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
US5197135A (en) * 1990-06-26 1993-03-23 International Business Machines Corporation Memory management for scalable compound instruction set machines with in-memory compounding
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
US5299321A (en) * 1990-12-18 1994-03-29 Oki Electric Industry Co., Ltd. Parallel processing device to operate with parallel execute instructions
US5274815A (en) * 1991-11-01 1993-12-28 Motorola, Inc. Dynamic instruction modifying controller and operation method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE46712E1 (en) 1998-03-18 2018-02-13 Koninklijke Philips N.V. Data processing device and method of computing the cosine transform of a matrix

Also Published As

Publication number Publication date
EP0723220A3 (en) 1997-10-01
US5649135A (en) 1997-07-15
KR100190738B1 (ko) 1999-06-01
EP0723220A2 (en) 1996-07-24
JPH08249293A (ja) 1996-09-27
KR960029956A (ko) 1996-08-17

Similar Documents

Publication Publication Date Title
JP3149348B2 (ja) 代理命令を用いる並列処理システム及び方法
US6467036B1 (en) Methods and apparatus for dynamic very long instruction word sub-instruction selection for execution time parallelism in an indirect very long instruction word processor
JP4879307B2 (ja) プロセッサでの条件付き実行をサポートする装置及びその方法
JP4156794B2 (ja) iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置
US6446190B1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
JP3120152B2 (ja) コンピューターシステム
US6606699B2 (en) Merged control/process element processor for executing VLIW simplex instructions with SISD control/SIMD process mode bit
US8321849B2 (en) Virtual architecture and instruction set for parallel thread computing
JP3976082B2 (ja) 異なった幅のvliwプロセッサコマンド
JP2918631B2 (ja) デコーダ
JP3101560B2 (ja) プロセッサ
US7493474B1 (en) Methods and apparatus for transforming, loading, and executing super-set instructions
US20070180440A1 (en) Methods and Apparatus for Meta-Architecture Defined Programmable Instruction Fetch Functions Supporting Assembled Variable Length Instruction Processors
JP2002533815A (ja) 動的コンパクト命令を有するスケーラブル命令セットアーキテクチャのための方法及び装置
US9021236B2 (en) Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution
JP3866513B2 (ja) データストリーミングのためのコンピュータのプロセッサ及び方法
USRE41012E1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees