JP2001523023A - iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置 - Google Patents
iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置Info
- Publication number
- JP2001523023A JP2001523023A JP2000519833A JP2000519833A JP2001523023A JP 2001523023 A JP2001523023 A JP 2001523023A JP 2000519833 A JP2000519833 A JP 2000519833A JP 2000519833 A JP2000519833 A JP 2000519833A JP 2001523023 A JP2001523023 A JP 2001523023A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- vim
- vliw
- pes
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 title claims description 31
- 230000001360 synchronised effect Effects 0.000 title claims description 17
- 238000012545 processing Methods 0.000 claims abstract description 35
- 230000007246 mechanism Effects 0.000 claims abstract description 15
- 230000000873 masking effect Effects 0.000 claims abstract description 6
- 230000006870 function Effects 0.000 claims description 35
- 238000003672 processing method Methods 0.000 claims 1
- 230000008520 organization Effects 0.000 abstract description 4
- 239000013598 vector Substances 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 12
- VZSRBBMJRBPUNF-UHFFFAOYSA-N 2-(2,3-dihydro-1H-inden-2-ylamino)-N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]pyrimidine-5-carboxamide Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C(=O)NCCC(N1CC2=C(CC1)NN=N2)=O VZSRBBMJRBPUNF-UHFFFAOYSA-N 0.000 description 3
- 101150071111 FADD gene Proteins 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- AFCARXCZXQIEQB-UHFFFAOYSA-N N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CCNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 AFCARXCZXQIEQB-UHFFFAOYSA-N 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- OJCZPLDERGDQRJ-UHFFFAOYSA-N Sufentanil citrate Chemical compound OC(=O)CC(O)(C(O)=O)CC(O)=O.C1CN(CCC=2SC=CC=2)CCC1(COC)N(C(=O)CC)C1=CC=CC=C1 OJCZPLDERGDQRJ-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Radio Transmission System (AREA)
- Plural Heterocyclic Compounds (AREA)
Abstract
Description
icient Synchronous MIMD VLIW Communi
cation」という名称で1997年11月7日に出願された、米国特許仮出
願第60/064619号の特典を請求するものである。
MD)の場合、使用可能な並行処理要素または言い換えれば使用可能な計算リソ
ースを、効率的に使用することができないアルゴリズムが存在する。多重命令多
重データ・ストリーム(MIMD)クラスのマシンは、これらアルゴリズムの中
のいくつかをより効率的に実行するが、各プロセッサ上にある別の命令ストリー
ムをサポートするために追加のハードウェアが必要であり、密結合されたプログ
ラムの実施に伴う通信待ち時間により性能が低下する。本発明は、ハードウェア
のコストおよび複雑さを削減すると同時に、SIMDマシンならびにMIMDマ
シンの最高の特性を維持し、通信待ち時間を最小限に抑えるこれらのアルゴリズ
ムを実行するためのよりよいマシン編成を対象とする。本発明は、MIMDの計
算自律性レベルをSIMDのiVLIW(間接的超長命令語)処理要素に提供す
ると同時に、SIMDマシン編成内で使用される単一制御スレッドを維持する。
したがって本発明は、同期MIMD(SMIMD)という用語を用いて記述され
る。
ルの2つがある。SIMDモデルには、同期ロック・ステップ・モードで複数の
処理要素(processing element−PE)を制御する単一のプ
ログラム・スレッドがある。それぞれのPEが、同じ命令を異なるデータ上で実
行する。これは、制御の複数のプログラム・スレッドが存在し、通信前に独立し
たプログラム・スレッドを同期させるための要件により、任意のプロセッサ間動
作が、複数プロセッサ間で通信を行うときに発生する待ち時間に対処しなければ
ならない、MIMDモデルとは対照的である。SIMDに伴う問題は、プロセッ
サ内に存在する使用可能な並行処理を、すべてのアルゴリズムが効率的に使用で
きるわけではないことである。異なるアルゴリズム内にある固有の並行処理の量
は異なっており、SIMDマシン上で多彩なアルゴリズムを効率的に実施すると
きの難点に通じている。MIMDマシンに伴う問題は、1つのアルゴリズムの処
理に関して協働するために、プロセッサを効率的に同期化させるときの難点につ
ながる、複数プロセッサ間での通信の待ち時間である。典型的には、各MIMD PEは、ハードウェアがかなりの量になる可能性のある、独自の命令順序付け
機構を持たなければならないため、MIMDマシンはSIMDマシンに比べて実
施のコストも多くなる。MIMDマシンは、本質的に、独立した並行処理要素を
管理するために必要なプログラミング制御も、より複雑である。したがって、平
行処理要素が使用されるときに、多彩なコンテキストにおいて、いろいろなレベ
ルのプログラムの複雑さおよび通信待ち時間が発生する。以下でより詳細に論じ
るように、こうした問題を効率的に解決することが非常に有利である。
、1997年10月10日出願の米国第08/949122号、1998年10
月9日出願の米国第09/169255号、1998年10月9日出願の米国第
09/169256号、および1998年10月9日出願の米国第09/169
072号、1997年12月4日出願の「Method and Appara
tus for Dynamically Modifying Instru
ctions in a Very Long Instruction Wo
rd Processor」という名称の仮出願第60/067511号、19
97年12月18日出願の「Methods and Apparatus f
or Scalable Instruction Set Architec
ture」という名称の仮出願第60/068021号、1998年1月12日
出願の「Methods and Apparatus to Dynamic
ally Expand the Instruction Pipeline
of a Very Long Instruction Word Pro
cessor」という名称の仮出願第60/071248号と、1988年1月
28日出願の「Methods and Apparatus to Supp
ort Conditional Execution in a VLIW−
Based Array Processor with Subword E
xecution」という名称の仮出願第60/072915号、1998年3
月12日出願の「Register File Indexing Metho
ds and Apparatus for Providing Indir
ect Control of Register in a VLIW Pr
ocessor」という名称の仮出願第60/077766号、1998年7月
9日出願の「Methods and Apparatus for Inst
ruction Addressing in Indirect VLIW
Processors」という名称の仮出願第60/092130号、1998
年10月9日出願の「Efficient Complex Multipli
cation and Fast Fourier Transform (F
FT) Implementation on the ManArray」と
いう名称の仮出願第60/103712号、および1998年11月3日出願の
「Methods and Apparatus for Improved
Motion Estimation for Video Encoding
」という名称の仮出願第_____号に、それぞれその様々な態様がより詳細に
記載されたManArrayアーキテクチャと共に使用されることが好ましく、
これらはすべて本発明の譲受人に譲渡され、完全に本発明に組み込まれる。
用するのに好適なManArrayプロセッサは、間接的超長命令語アーキテク
チャを提供するために、処理要素(PE)のスケーラブル配列のための配列制御
装置として動作するシーケンス・プロセッサ(SP)を有する配列プロセッサと
して実施される可能性がある。本発明による間接超長命令語(iVLIW)は、
SIMD配列制御装置のシーケンス・プロセッサすなわちSPによって、iVL
IW命令メモリ(VIM)内で構成される可能性がある。VIMは各処理要素す
なわちPE内に存在し、複数のiVLIWを含むことが好ましい。1つのiVL
IWがVIM内で構成された後、好ましい実施形態中では「iVLIWを実行す
る」ために、XVと呼ばれる他のSP命令がすべてのPE内の同一のVIMアド
レスでiVLIWを同時に実行する。すべてのPEのVIMが同じ命令を含んで
いる場合、SIMD動作が発生する。XV命令と、各PE内に存在する単一の同
一iVLIWとの間には、1対1のマッピングが存在する。
IW実行(XV)命令によって開始される間接的実行及び複数のPE内の同じV
LIWメモリ・アドレスに格納された異なるVLIW命令により、VLIWメモ
リ内に格納されたVLIW命令に対して間接的に動作することが可能である。S
P命令によってこのiVLIWセットがすべてのPEにまたがって同時に実行さ
れると、同期MIMDすなわちSMIMDが発生する。XV命令と、各PE内に
存在する複数の異なるiVLIWとの間に、1対多マッピングが存在する。XV
命令の発行を伴う単一の制御ポイントSPにより、複数の異なるiVLIW実行
が同期的に起こるため、特殊な同期化機構は必要ない。PEとManArray
ネットワークとの間の通信を管理するために受信モデルを使用することから、下
記でさらに詳しく述べるように、MIMD動作に共通の特性である通信待ち時間
が避けられる。さらに、実行の同期位置が1箇所であるため、各PE内にある別
々のプログラム・フローに対して追加のMIMDハードウェアは必要ない。この
方法では、マシンはハードウェアのコストを削減すると同時に通信待ち時間も最
低限に抑えながら、SMIMD動作をサポートするように編成される。
下でローディングされることが好ましいが、代替形態のiVLIWのダイレクト
・メモリ・アクセス(DMA)ローディング、および固定iVLIWを含むRO
MによるVIMアドレス空間の1セクション実施も除外されない。一定レベルの
動的プログラム・フレキシビリティを維持するために、全VIMでない場合はV
IMの一部が、典型的にランダム・アクセス・タイプのメモリになる。ランダム
・アクセス・タイプのVIMをロードするためには、区切り符号命令、iVLI
Wのロードの場合はLVが、区切り符号の後に続く一定数の命令が実行されるの
ではなくVIM内にロードされることを指定する。SIMD動作の場合、各PE
は各VIMアドレスについて同じ命令を受け取る。SMIMD動作用にセットア
ップするには、各PE内の同じVIMアドレスに異なる命令をロードする必要が
ある。
れたPE上でのみ発生するように機能する、マスキング機構によって達成される
。OFFにマスクされたPEは区切り符号命令を実行しないため、区切り符号に
続く指定された命令セットをVIM内にロードしない。あるいは、異なる命令が
PEローカル・メモリから平行にロードされるか、またはVIMがDMA転送の
ターゲットになることができる。異なる命令を同じVIMアドレス内にローディ
ングするための代替方法は、LV命令に続く第2の32ビット制御ワードを有す
る第2のLV命令、LV2を使用することである。第1および第2の制御ワード
は、PEラベルを追加できるように、それらの間のビットを再配置する。この第
2のLV2方法は、PEがマスクされる必要がなく、異なるシステムを実施する
ときに何らかの利点を与える場合がある。異なる命令を、異なるPE上にある同
じVIMアドレス内に選択的にローディングすることによって、ManArra
yがSMIMD動作用にセットアップされる。
理することである。SIMDモードでは、配列内のすべてのPEが同じ命令を実
行中である。典型的には、これらのSIMD PE間通信命令は、送信モデルを
使用するとみなされる。言い換えれば、SIMDの送信モデル通信命令は、各P
Eがそのデータをどの方向へ、すなわちどのターゲットPEへ送信すべきかを示
す。SEND−WESTなどの通信命令に遭遇すると、各PEは、位相的にその
西隣として定義されたPEにデータを送信する。送信モデルは、送信元PEおよ
び受信側PEの両方を指定する。SEND−WESTの例では、各PEがその西
側にあるPEにそのデータを送信し、その東側にあるPEからデータを受信する
。SIMDモードでは、これは問題ではない。
同じ隣のPEへデータの送信を試行することができる。ManArrayにおけ
るこのような処理要素は、1回に他の1つの処理要素からのみ受信できる受信ポ
ートを1つだけ有すると定義される可能性があるので、この試行は危険な状況を
表す。各処理要素が1つの受信ポートを有すると定義されるときは、このように
試行された動作は首尾良く完了できず、通信ハザードを引き起こすことになる。
る。各処理要素は受信モデルを使用して、どの処理要素から受信するかを選択す
るスイッチを制御する。任意の2つの処理要素が同じ受信ポートを争うことはあ
り得ないため、通信ハザードが発生することはあり得ない。定義上、各PEはそ
れ専用の受信ポートを制御し、ターゲットPEを指定せずにデータを使用可能に
する。受信モデルを使用して処理要素間に任意の意味ある通信を発生させるため
には、使用可能にされたデータをPEが協働して受信するようにプログラムされ
なければならない。同期MIMD(SMIMD)を使用して、協働命令がすべて
同じiVLIW位置に存在する場合にこれが発生するように保証される。SMI
MDを使用しない場合、複雑な機構は、通信を同期化して受信モデルを使用する
必要が生じることになる。
明の特徴および利点が明らかになろう。
)制御命令の1セットについて、以下に詳細に記載する。図1は、アドレス「i
」でiVLIWを実行するためのシステムを示し、ここでiVLIWは、PE0
〜PE3のPEからなる2×2のManArray100内で、各VIM内の垂
直なボックス・セットSLAMD105で示され、S=ストア、L=ロード、A
=演算論理ユニット(ALU)、M=乗積算ユニット、およびD=データ選択ユ
ニット(DSU)の命令セットを表す。図1では、2×2のManArray1
00は、32ビット命令を単一の32ビット・バスを介して配列PEに送出する
、シーケンス・プロセッサ(SP)制御装置102をさらに含む。32ビット命
令の1タイプは、実行iVLIW(XV)命令であり、これは実行されることが
望ましいiVLIWを示すポインタを生成するためにVIMベース・アドレスと
共に使用される、VIMアドレス・オフセット値を含む。PE104は、クラス
タ・スイッチ107によって相互接続される。
アーキテクチャ内の各PE104は、図1に示すように、ある量のiVLIWメ
モリ(VIM)106を含む。各VIM106は、複数のVLIW命令アドレス
103を保持するための格納スペースを含み、各アドレスは8つまでの単体の命
令を格納することができる。現在好ましい実施形態では、各iVLIW命令が5
つまでの単体の(simplex)命令を含むことが可能であって、格納ユニット108 、ロード・ユニット110、演算論理ユニット112(ALU)、乗積算ユニッ
ト114(MAU)、およびデータ選択ユニット116(DSU)のそれぞれと
関連付けられる。たとえば、VIMアドレス「i」にあるiVLIW命令105
は、5つの命令SLAMDを含む。
ェッチされた命令が、VIMロードおよび格納制御機能22に接続された命令レ
ジスタ20に格納される。このVIMロードおよび格納制御機能は、VIM24
にインターフェース信号を送る。VIM24はVIM106に対応しており、図
2に示されるように、図1の各VIM106は関連付けられたレジスタおよび制
御を有する。VIM24の出力は、iVLIWレジスタ26にパイプライン処理
される。図3は、0、1、...N−1のN個のエントリを備えた5スロットi
VLIWのVIM300を示す。各VIM300のアドレス位置には、格納、ロ
ード、ALU、MAU、およびDSUの命令301〜305用の格納スペースが
含まれる。拡張されたALUスロット・ビュー303'は、ビットd1「d」が ハイライト表示された32ビットの格納スペースを示す。VIM記憶装置内の命
令を使用する方法について、以下でより詳細に論じる。
数または複数のPEをマスクするために特別な命令を使用して、各PEのVIM
へ個別にロードすることが可能である。VIM内のiVLIW命令は、単一命令
として実行されると、VIMメモリ・アドレスに配置された単体の命令を同時実
行させる、実行VLIW(XV)命令を介して実行するためにアクセスされる。
XV命令は、以下を同時実行させることができる。
令。
。
に配置された、すべての命令。
御命令は、以下の2つだけである。
32ビット符号化のためのものであり、以下でさらに述べるように、構文/演算
ブロック420に示される現在の好ましい構文/演算を有する。LV命令400
は、指定されたSPまたはPEのVLIWメモリ(VIM)の個別の命令スロッ
トをロードおよび/または使用不能にするために使用される。VIMアドレスは
、図4Aの符号化ブロック410の中で、基本VIMアドレス・レジスタVb(
V0またはV1)と、ビット・ブロック411のビット0〜7に示された符号な
し8ビット・オフセットVIMOFFSとの合計として計算される。VIMアド
レスは、ハードウェア構成用の有効領域内でなければならず、そうでなければこ
の命令の演算は定義されない。
={SLAMD}」を介して使用不能にすることができるが、ここでS=ストア
ユニット(SU)、L=ロード・ユニット(LU)、A=演算論理ユニット(A
LU)、M=乗積算ユニット(MAU)、およびD=データ選択ユニット(DS
U)である。ブランクの「d=」パラメータは、どんなスロットも使用不能にし
ない。指定されたスロットは、ロードされる任意の命令の前に使用不能にされる
。
本実施態様では、有効値は0〜5である。LVに続く次のInstrCnt命令
は、指定されたVIMにロードされる。ユニット作用フラグ(UAF)のパラメ
ータ「F=[AMD]」は、どの演算命令スロット(A=ALU、M=MAU、
D=DSU)が、指定されたVIMが実行されたときに条件フラグを設定できる
かを選択する。ブランクの「F=」は、ALU命令スロットを選択する。LV命
令の処理中には、どの演算フラグも影響を受けず、サイクル数は、1に、ロード
される命令数を加えた数である。
ビット符号化用であり、以下でさらに述べるような、構文/演算ブロック435
に示された現在の好ましい構文/演算を有する。XV命令425は、指定された
SPまたはPEのVLIWメモリ(VIM)の個別の命令スロットを実行するの
に使用される。VIMアドレスは、図4Bの符号化ブロック430の中で、基本
VIMアドレス・レジスタVb(V0またはV1)と、ビット・ブロック431
のビット0〜7に示された符号なし8ビット・オフセットVIMOFFSとの合
計として計算される。VIMアドレスは、ハードウェア構成用の有効領域内でな
ければならず、そうでなければこの命令の演算は定義されない。
SLAMD}」を介して実行することができるが、ここでS=ストアユニット(
SU)、L=ロード・ユニット(LU)、A=演算論理ユニット(ALU)、M
=乗積算ユニット(MAU)、およびD=データ選択ユニット(DSU)である
。ブランク「E=」パラメータは、どんなスロットも実行しない。ユニット作用
フラグ(UAF)パラメータ「F=[AMDN]」は、LV命令を介してロード
されたときに、VLIWに指定されたUAFをオーバライドする。このオーバラ
イドは、どの演算命令スロット(A=ALU、M=MAU、D=DSU)が、こ
のVLIWの実行について条件フラグを設定できるか、あるいはどれでもないか
(N=NONE)を選択する。このオーバライドは、LV命令が指定したUAF
設定に影響を与えない。ブランクの「F=」は、VLIWがロードされたときに
指定されたUAFを選択する。
れたスロット内にある個別の単体の命令によって、またはXV命令内の「F=[
AMD]」パラメータによってオーバライドされたときに設定される。条件フラ
グは、「F=N」のときには影響を受けない。演算は1サイクル中に発生する。
パイプラインに関する考慮事項は、実行される各スロット内にある個別の単体の
命令に基づいて考慮しなければならない。これらiVLIW命令内にある個別の
フィールドの説明は、図4Cおよび4Dに示される。図4Cおよび4Dは、名前
442、ビット数444、および説明/値446で作表された命令フィールド定
義440を示す。図4Eおよび4Fはそれぞれ、現在の好ましいADD命令、お
よび2×2ManArray構成内にある3つの同期MIMD iVLIWのた
めのスロット記憶装置を示す。
な32ビット符号化用でもあり、以下でさらに述べるように、構文/演算ブロッ
ク460に示された現在の好ましい構文/演算を有する。ADD命令450は、
ソース・レジスタRxおよびRyの合計をターゲット・レジスタRtに格納する
のに使用される。演算スカラ・フラグは最下位演算に影響を与えるが、ここでN
=結果の合計のMSBであり、結果がゼロの場合はZ=1で、そうでなければ0
、オーバフローが発生した場合はV=1で、そうでなければ0、ならびに桁上が
りが発生した場合はC=1で、そうでなければ0である。vビットは、符号付き
演算に対して有意であり、Cビットは符号なし演算に対して有意である。サイク
ル数は1である。 個別、グループ、および「同期MIMD」のPEのiVLIW演算 LVおよびXV命令は、プログラマによって画定された個別のPEまたはPE
グループ内で、iVLIW命令をロード、修正、ディスエーブル、または実行す
るために使用することができる。これを行うために、数ある中で特に各PEをイ
ネーブルまたはディスエーブルにする、各PEに配置された制御レジスタを修正
する命令によって、個別のPEがイネーブルまたはディスエーブルされる。個別
のPEまたはPEのグループをロードおよび動作させるために、個別のPEをイ
ネーブルし、他のすべてをディスエーブルするように制御レジスタが修正される
。これで通常のiVLIW命令は、イネーブルされたPE上でのみ動作すること
になる。
が、iVLIWシステム500に関して記載されている。図5は、他の態様の中
で、VIMメモリから命令を選択できるようにするための選択機構を示す。フェ
ッチされた命令は、第1の命令レジスタ(IR1)510にロードされる。レジ
スタ510は、一般に図2の命令レジスタ20に対応する。IR1の出力は、第
2の命令レジスタ(IR2)514をロードする前のパイプライン・サイクルの
初期に、プリデコーダまたはプリデコード機能512内で、プリデコードされる
。IR1内の命令が非ゼロ命令カウントを伴うロードiVLIW命令(LV)で
あると、プリデコーダ512は、LC演算サイクルをセットアップするために使
用されるLVc1制御信号515を生成し、加算器504によってパス503を
介してLM命令内に含まれたオフセット値に追加された、指定のVbレジスタ5
02を使用して、VIMアドレス511が計算される。その結果生じるVIMア
ドレス511は、レジスタ506内に格納され、マルチプレクサ508を介して
VIM516をアドレス指定するために渡される。VIM516は、一般に図1
のVIM106に対応する。レジスタ506は、LV動作中にVIMアドレス5
07を保持する必要がある。VIMアドレス511およびLV制御状態は、LV
命令の後に受け取った命令を、VIM516にロードすることができる。LVが
受け取られたサイクルの終わりに、命令をVIM516へローディングするとき
に使用するために、図4Aに示された使用不能ビット10〜17がdビット・レ
ジスタ518にロードされる。VIM516にロードされることになっている、
IR1 510内の次の命令を受け取ると同時に、Storec1 519、L
oadc1 521、ALUc1 523、MAUc1 525、またはDSU
c1 527の命令タイプに応じて、適切な制御信号が生成される。プリデコー
ド機能512は、図4A、B、およびEに示された命令タイプを定めるグループ
・ビット(ビット30および31)、ならびに図4Dおよび4Eに示されたユニ
ット・フィールド・ビット(実行ユニット・タイプを指定するビット27および
28)の単純な解読に基づいて提供されることが好ましい。このプリデコードス
テップを使用することによって、IR1 510内の命令を、正しい機能ユニッ
ト位置にあるVIM516にロードすることができる。たとえば、命令のLVリ
ストに含まれる図4EのADD命令の場合、この命令がIR1 510内で受信
されると、この命令がVIM516内のALU命令スロット520にロードされ
るべきであることを、プリデコード機能512によって決定することができる。
さらに、その機能スロット位置に対して適切なdビット531が、そのスロット
のビット31にロードされる。ロードされたdビットは、元の命令からのグルー
プ・コード・ビット位置の1つを占有する。
加算器504によってパス503を介してXV命令内に含まれたオフセット値に
追加された、指定されたVbレジスタ502を使用して計算される。その結果生
じるVIMアドレス507は、マルチプレクサ508を介してVIMをアドレス
指定するために渡される。指定アドレスにあるiVLIWがVIM516から読
み取られ、マルチプレクサ530、532、534、536、および538を介
してIR2レジスタ514に渡される。読取られたVIMアクセス・タイミング
のクリティカル・パスを最小限に抑えるための代替形態として、VIM516の
出力を、復号状態論理の前に出力がマルチプレクサを介して渡されるレジスタに
ラッチすることができる。
Vc1制御信号517と共に、すべてのIR2マルチプレクサ530、532、
534、536、および538に、VIM出力パス541、543、545、5
47、および549を選択させる。この時点で、iVLIWの並列処理実行性能
を同時発生で提供しながら、パイプライン540、542、544、546、お
よび548の5つの個別のデコード段階および実行段階が完了する。単一の32
ビット命令が独自にPEまたはSP内で実行できるようにするために、バイパス
VIMパス535が示される。たとえば、シンプレックスADD命令が、平行配
列の実行のためにIR1 510内に受信されると、プリデコード機能512は
、IR2MUX1制御信号533を生成するが、この信号は、命令タイプのプリ
デコード信号すなわちADDの場合信号523と共に、XV517またはLV5
15のアクティブ制御信号なしで、ALUマルチプレクサ534にバイパスパス
535を選択させる。
は、図5に示されたシステム500などのiVLIWシステムの例示的SIMD
iVLIWの使用法を示す。図6では、PE0〜PEJまでの番号が付けられ
たPEによって示されるように、J+1個のPEがある。ロード・ユニットおよ
びMAU命令スロットが使用不能であり、3つの命令がVIMアドレス27でロ
ードされることを示す、LVコードの一部が図6に示される。このローディング
動作は、図4Aに示された構文に基づいてLV命令601から決定される。すべ
てのPEがONにマスクされると仮定すると、表示された3つの命令603、6
05、および607は、配列内にあるそれぞれのJ+1 PE内のVIMアドレ
ス27にロードされることになる。このローディングの結果は、VIM内の適切
な実行スロットに格納された命令、すなわちALUスロット内の命令603、D
SUスロット内の命令605、および格納ユニット・スロット内の命令607を
示すことによって、図6に表示される。
VIMスロット・フィールドの複数のビット31位置に、VIMローディング・
シーケンスを開始したLV命令から生成された、図5に示された格納dビット5
18が書き込めるようにすることに留意されたい。さらに、演算命令内のユニッ
ト・フィールド、ビット27および28は、たとえば図4Eをみればわかるよう
に、どのVIMスロットに演算命令がロードされるのかを決めるのに必要である
ことに留意されたい。したがって、IR1内の命令は具体的に言えば、プリデコ
ード機能を使用してVIM内の実行ユニット・スロットに関連付けられるため、
グループ・ビットおよびユニット・フィールド・ビットはVIM内に格納する必
要がなく、前の考察で単一のdビットを使用して実証したように、他の目的に使
用することができる。VIMスロット内の特定のビット位置は、図7のVIM
700に示され、ここで命令グループ・ビット、すなわち図4Eのビット30の
うちの1つ、ならびに命令ユニット・フィールド・ビット、すなわちビット27
および28が、図7では721とラベル表示されたOPコード拡張ビット30に
は「o」、723とラベル表示されたレジスタ・ファイル拡張ビット28には「
r」、725とラベル表示された条件付き実行拡張ビット27には「c」という
、変換拡張オプション・ビットによってVIM 700内で置き換えられる。こ
れらの追加ビットは、プログラマがそこへロードできるかまたはそこから格納で
きる、図8Aに示された雑レジスタ850内に別々に格納される。これらのビッ
トは、32ビット命令形式の命令符号化ビットがないために提供できなかった、
拡張機能を提供する。OPコード拡張ビット「o」の場合、1セットの命令を新
しいセットの命令にマッピングすることが可能である。レジスタ拡張ビット「r
」の場合、レジスタ・ファイル・スペースを2倍にし、追加のレジスタ・スペー
スか、あるいは2つのレジスタ・バンクを2つのコンテキスト間で分けられるよ
うにする高速コンテキスト・スイッチング機構として動作することのいずれかを
提供する、2バンクのレジスタを有することが可能である。条件実行拡張ビット
「c」の場合、2つの異なる条件セットを指定するか、またはプログラマ制御の
下で異なる条件付き実行機能性を指定することが可能である。
プリデコード制御信号815、817、819、821、823、825、82
7、および833を示す、iVLIW変換拡張ロードおよびフェッチ・パイプラ
インの態様を図示した、iVLIWシステム800を示す。これらの解放された
ビットは他の目的で使用できることに留意されたい。たとえば、すべての3ビッ
トをレジスタ・ファイル拡張に使用して、3つのオペランド命令に個別に制御を
与えるか、または32×32レジスタの8つまでのバンクを与えるかのいずれか
が可能である。
実行させるために、VIMをバイパスする径路835を図8Aに示す。たとえば
、単体のADD命令が平行配列実行のためにIR1 810に受信されると、プ
リデコード機能812がIR2MUX2制御信号833を生成するが、これは命
令タイププリデコード信号、すなわちADDの場合には信号823と共に、およ
びXV817またはLV815のアクティブ制御信号なしで、ALUマルチプレ
クサ834にバイパスパス835を選択させる。本明細書に記載のように、バイ
パス動作はパイプラインの全段階で生じるものであるため、バイパスされた命令
内のグループ・ビットおよびユニット・フィールド・ビットを、IR2ラッチ段
階に入ったときに置き換えることができる。これは、図8A中で、マルチプレク
サ830、832、834、836、および838への入力の適切なビット位置
を置き換えるのに使用される、「o、r、およびc」ビット信号パス851で示
される。
事項によって決められることがで好ましいことに留意されたい。たとえば、図8
Bは、図7および8Aからの代替形式VIM800'を示す。実行スロット当た りdビットが、追加のビット「o、r、c、およびuaf」ビットと共にグルー
プにまとめられる。これらの10ビットは、各スロット当たりビット0〜26、
29に画定された実行ユニット機能ビットから、別々にグループ化される。「u
af」ビットはどの演算ユニットが実行時にフラグに影響を与えるかに関係する
ため、LV命令からの図4Aのユニット作用フィールド(uaf)ビット22お
よび23は、単一のiVLIWのVIMアドレスに格納される必要がある。他の
記憶装置形式も可能であり、たとえば、dビットを、機能ビットおよび、別々に
格納された「uaf」ビットなどのiVLIW全体に関連付けられたビットと共
に格納することができる。kスロットiVLIWの場合、k*32ビットは必ず
しもVIMに格納される必要はないことにも留意されたい。プリデコード機能に
より、k32ビット命令を格納するのに必要であると仮定される追加ビットをk
*32ビット・スペースに格納できるだけでなく、ビットをすべて使用する必要
がない場合は、k*32ビット・スペースを減らすこともできる。これは図8B
に示されており、VIMアドレス当たりの記憶装置ビットの合計数は、実行ユニ
ット・スロット位置(0〜26および29)当たり必要な28ビットの5倍に5
つのdビットを加え、さらに3つの「o、r、およびc」ビットと2つの「ua
f」ビットを加えることで得られ、必要と仮定される5*32=160ビットよ
りも10少ない、iVLIWアドレス当たり合計150ビットとなる。その結果
、機能性は向上し、VIMメモリ・スペースは削減される。一般に追加情報は、
VIM内で実行ユニットごとに、またはそのVIMアドレスに格納されたiVL
IWを介して制御に影響を与える別々の個別ビットとして、個別に格納すること
ができる。たとえば、16の追加のロード即時ビットを、別々の「定数」レジス
タ内に格納し、VIMアドレス内にロードして、ロード・ユニットの容量を拡張
し、32ビットの即時データをロードすることができる。この拡張を達成するに
は、VIMデータ幅を適切に拡張しなければならない。格納されたiVLIWの
サイズが、命令サイズの倍数から減結合され、これによって格納されたiVLI
Wが、要件に応じて、k命令iVLIWに対するk*32ビットよりも大きいか
または小さくなるようにすることができる。
SP制御装置102およびPE配列からなる、図9のプロセッサ900または図
10のプロセッサ1000などのプロセッサ内では、PE間通信を処理している
ときにSMIMD動作を実施すると、問題が発生する可能性がある。典型的なS
IMDモードの通信は、すべてのPEが同じPE間通信命令を実行するように指
定する。各PE内で同じであるこのSIMDのPE間命令は、PE間で画定され
た共通の動作に確実に従うために、共通の制御機構を必要とする。一般に、SE
ND−WESTなどの単一の命令が配列内にあるすべてのPEに送出される、送
信モデルが使用される。SIMDのPE間通信命令は、PE間のネットワーク・
インターフェースの制御を調整し、各PEがPE間命令によって位相的に定めら
れたPEにデータを送信できるようにするものである。すべてのPEが同じ命令
を受け取るので、この単一SIMD命令を解釈し、図9に示すように、単一のP
Eによってネットワーク・インターフェース911を制御することができる。図
9に示すManArray 2×2クラスタ・スイッチは、DSU間のインター
フェース入出力(I/O)バスに対して、4つの4対1マルチプレクサ920、
922、924、および926で構成されることに留意されたい。これらのバス
は、8、9、16、32、64または他の数のビット、ビット・バスであっても
よく、制限はない。単一の4対1マルチプレクサを制御するには、2ビットを制
御して、可能な4つのパスから1つを選択するだけでよい。これは必要に応じて
より大きなマルチプレクサを使用して、PEのより大きなクラスタに拡張するこ
とができる。SIMDシステム内でも、図10に示したような、PE間のインタ
ーフェース・ネットワークに対する集中制御を有することが可能である。図10
では、集中制御装置1010が、他のPEがネットワーク内で実行するのと同じ
、ディスパッチされたPE間通信命令1011をSP制御装置から受け取る。こ
の機構により、ネットワーク接続をサイクルごとに変更することができる。SI
MD送信モデルの2つの属性は、すべてのPEに対する共通の命令と、送信側な
らびに受信側の仕様である。SIMDモードでは、この方法は問題ではない。
能性がある。こうした問題の1つが、SMIMDモードでは、各PEが異なるP
E間通信命令を受信できるので、多重処理要素すべてが単一のPEに対するデー
タ送信を試みることが可能なことである。SIMD送信モデルの2つの属性は即
時に分析され、すなわち共通のPE間命令を有し、ソースとターゲットの両方、
言い換えれば送信側と受信側の両方を指定する。単一サイクル通信を備えたSI
MDモデル内の同じPEが複数のPEターゲットを有すると、通信ハザードとな
る。この通信ハザードは図9に示すが、PE1、2、および3のDSUがデータ
をPE0に送信する一方で、PE0はデータをPE3に送信する。PE0は3つ
のデータ入力を受け取ることはできない。他のシステムでは、多くの場合この種
の問題を解決するために、インターフェース・バッファおよび優先度制御論理を
挿入して、1つまたは複数の競合パスを遅延させる。この方法は、PE内で実行
されるiVLIW命令のプログラミング中に、単一サイクルの通信動作をスケジ
ューリングしなければならないため、SMIMD処理の持つ本来的な同期的性質
を妨害する。同期MIMD要件を妨害せずにこの通信ハザードを避けるためには
、受信モデルを使用するのが好都合である。送信モデルによって送信された、単
一PE内または集中制御機構内に配置されたネットワーク制御の単一ポイントが
、受信モデルでは、分散ネットワーク・インターフェース制御に置き換えられる
。各PEが、専用の受信ポートを制御する。受信モデルは、ネットワーク・イン
ターフェースを介して受信パスを指定する。ManArrayネットワークの場
合、各PEが、クラスタ・スイッチの専用のマルチプレクサ入力パスを制御する
。
がそれぞれ、そのマルチプレクサ1120、1122、1124、または112
6の専用の制御を有する。たとえば、PE0はその入力マルチプレクサ1120
を制御するために、制御信号1111を有する。さらに受信モデルは、ターゲッ
トPEを指定せずに、インターフェース・ネットワークへのPE出力ポート上で
データを使用可能にしなければならない。したがって、受信モデルを使用して、
処理要素間で任意の有意な通信を発生させるためには、使用可能にされたデータ
を受信するときに協働するように、PEをプログラミングしなければならない。
同期MIMDを使用すると、協働命令が同じiVLIW位置内に存在すれば、こ
の協働が発生することが保証される。XV命令が実行されるときのこの命令の位
置を使用して、協働PEは正しいPE間通信命令を実行し、任意の2つまたはそ
れ以上のPE間でデータを移動させる。一般に、PEの1配列内には、複数のP
Eグループが存在できる。こうしたそれぞれのグループ内では、1つまたは複数
のPEが別のPEからデータを受け取ると同時に、別のグループ内で、1つまた
は複数のPEが異なるPEからデータを受け取ることができる。グループのサイ
ズは、2つのPEから全配列のPEまで変更可能である。図11では、図を見や
すくするため、図1のSP制御装置102などのSPを示していない。しかし、
前記に参照によって組み込まれた米国仮出願第60/077457で教示された
ように、SPの機能性はPE0などのPEに併合可能であるか、または、SPの
機能性はすべてのPEに追加可能であるが、このように機能性を向上させること
は相対的にコストがかかることは理解されるであろうとはいえ、こうした制御装
置は含まれることが好ましい。
LIWの定義470を示す。上位セクション480は、演算の記述を示す。下位
セクション490は、それぞれLU、MAU、ALU、DSU、およびSU内に
ロードされた、対応する命令記憶術を示す。各iVLIWには、各PEに1行ず
つ、計4行が含まれており、それぞれの間が太い黒線で区切られている。図の一
番左の列は、PEのiVLIW命令メモリ(VIM)内でiVLIWがロードさ
れるアドレスを示す。次の列は、PE番号を示す。各iVLIWには、各PEに
ついて1行が含まれ、そのPEのVIMエントリにロードされる命令を示す。残
りの列には、ロード・ユニット(LU)、乗積算ユニット(MAU)、演算論理
ユニット(ALU)、データ選択ユニット(DSU)、およびストアユニット(
SU)の5つの実行ユニットについて、それぞれの命令がリスト表示されている
。
で見られる。同じVIMのエントリ(29)でも、VIMのエントリ29上でこ
れらのPEに対応する行、すなわちPE0 491、PE2 493、およびP
E3 497を見ればわかるように、PE0、1、および3には異なる命令が含
まれる。
する命令シーケンスを示す。異なる命令を、同じアドレスの異なるPEのVIM
にロードするために、PEマスキングが使用されることに留意されたい。
を実行する命令シーケンスを示す。PEマスキングは不要であることに留意され
たい。指定されたVIMエントリは、PE0、PE1、PE2、およびPE3の
各PEで実行される。
れた3×1の変数ベクトルのストリームを使用して、3×1の定数ベクトルの内
積を得るために使用される。各PEが、ベクトルの1成分を格納する。PE1は
成分xを格納し、PE2は成分yを格納し、PE3は成分zを格納する。PE0
は何の成分も格納しない。定数ベクトルは、PEレジスタ内、この場合は計算レ
ジスタR31内で、同じ形式で保持される。
ル上で動作する。PEの上でのベクトル成分の分布により、第4番目のベクトル
の内積を計算するためにPE0を使用することはできない。PE0は、将来のア
ルゴリズム段階に対して何らかのセットアップを処理する代わりに使用されるの
が有利である。iVLIWのロード・スロットに見られるように、ベクトル1が
iVLIW27にロードされる(前述のように、成分的にはPEを横断する)と
、ベクトル2はiVLIW 28にロードされ、ベクトル3はiVLIW29に
ロードされる(li.p.w R*,A1+,A7)。PE1は、3つの各ベク
トルについて、内積の成分xを計算する。PE2は成分yを計算し、PE3は成
分zを計算する(fmpy.pm.1fw R*,R*,R31)。この時点で
、PE1に対するベクトル1の内積の成分yおよびz、PE2に対するベクトル
2内積の成分xおよびz、PE3に対するベクトル3の内積の成分xおよびyを
得るために、PE間の通信が発生しなければならない。この通信は、pexch
g命令を介してDSU内で発生する。この方法では、それぞれのPEが、固有の
内積結果の成分を同時に合計している(fadd.pa.1fw R9,R7,
R*およびfadd.pa.1fw R10,R9,R8)。次いでこれらの結
果、PEメモリに格納される(si.p.w R10,+A2,A6)。各PE
はあらゆる第3番目の結果を計算し、格納することに留意されたい。次いで、結
果の最終セットが、PE1、2、および3から順繰りにアクセスされる。
を実行し(fcmpLE.pa.1fw R10,R0)、その内積が負であっ
たなら、計算された内積の代わりに条件付きでゼロを格納する(t.sii.p
.w R0,A2+,0)。すなわち、その比較は、R10がR0より小さいと
いうことが真であるかを判定する。負の値を取り除くこの内積の実施は、たとえ
ば、3次元グラフィックス・アプリケーションのためのライティング計算で使用
される。
装置のコンテキストで開示してきたが、当分野の一般技術者であれば、様々な代
替および変形の実施態様がすでに明らかであろう。たとえば、本発明は、命令を
VIMにロードし、さらにその命令を実行するための機能を除外するものではな
い。この機能は、命令の形式およびハードウェアの複雑さなど、他の考慮すべき
点の中で、現在の好ましいプログラミング・モデルを必要以上に複雑化してしま
うものであるとみなされた。したがって、ロードiVLIW区切り符号方式が選
択されたのである。
を示す。
のスロット記憶装置を示す。
ッチ制御および例示的障害を示す。
ル・クラスタ・スイッチ制御を示す。
Claims (41)
- 【請求項1】 間接的超長命令語(VLIW)処理システムであって、 VIMメモリ位置内のスロットに命令を格納するためのVLIW命令メモリ(
VIM)を有する第1の処理要素(PE)と、 命令タイプを定義する複数のグループ・ビットおよび実行ユニット・タイプを
定義する複数のユニット・フィールド・ビットを有する、機能命令を格納するた
めの第1のレジスタと、 複数のグループ・ビットおよび複数のユニット・フィールド・ビットを解読す
るためのプリデコーダと、 前記解読に基づいてVIM内にある前記スロットのうちの適切な1つに機能命
令をロードするためのロード機構とを含むシステム。 - 【請求項2】 間接的にVLIWを実行するためのアドレス・オフセットお
よびベース・アドレス・レジスタへのベース・ポインタを含んでいる実行VLI
W命令(XV)である制御命令をさらに含む、請求項1に記載のシステム。 - 【請求項3】 間接的にVLIWを実行するためのアドレス・オフセットお
よびベース・アドレス・レジスタへのベース・ポインタを含んでいるロード/修
正VLIW命令(LV)である制御命令をさらに含む、請求項1に記載のシステ
ム。 - 【請求項4】 記憶部がよりコンパクトになるように、機能命令がVIMに
格納される前に、機能命令からグループ・ビットおよびユニット・フィールド・
ビットが取り除かれる、請求項1に記載のシステム。 - 【請求項5】 制御命令がVIMに格納される前に、機能命令からグループ
・ビットおよびユニット・フィールド・ビットが取り除かれ、少なくとも1つの
置換ビットがグループ・ビットまたはユニット・フィールド・ビットのいずれか
に追加される、請求項1に記載のシステム。 - 【請求項6】 前記置換ビットがイネーブル/ディスエーブル・ビットであ
る、請求項5に記載のシステム。 - 【請求項7】 前記置換ビットが動作コード拡張ビットである、請求項5に
記載のシステム。 - 【請求項8】 前記置換ビットがレジスタ・ファイル拡張ビットである、請
求項5に記載のシステム。 - 【請求項9】 前記置換ビットが条件付き実行拡張ビットである、請求項5
に記載のシステム。 - 【請求項10】 複数の実行ユニットならびに第1および第2のレジスタ・
バンクをさらに含み、レジスタ・ファイル拡張ビットが使用され、複数の実行ユ
ニットが第1のレジスタ・バンクまたは第2のレジスタ・バンクからの読取りま
たはそこへの書込みを行う、請求項8に記載のシステム。 - 【請求項11】 機能命令を格納するための第2のレジスタと、第1のレジ
スタの出力を第2のレジスタの入力に接続するためのバイパス径路と、機能命令
がVIMにロードされることなく第1のレジスタから第2のレジスタに渡される
、バイパス動作を選択するための選択機構とをさらに含む、請求項1に記載のシ
ステム。 - 【請求項12】 制御命令が第2のレジスタ内に格納される前に、1つまた
は複数のグループ・ビットおよびユニット・フィールド・ビットが置き換えられ
る、請求項11に記載のシステム。 - 【請求項13】 ネットワーク・インターフェース接続を介して第1のPE
に接続された少なくとも1つの追加PEをさらに含み、各PEが、それによって
制御される受信ポートに接続された関連付けられたクラスタ・スイッチを有する
、請求項1に記載のシステム。 - 【請求項14】 前記関連付けられたクラスタ・スイッチが、PEのクラス
タ内にPE間の独立した径路を提供するために相互接続されたマルチプレクサを
備えた、請求項13に記載のシステム。 - 【請求項15】 第1のPEに接続されたシーケンス・プロセッサ(SP)
をさらに含み、制御命令と前記機能命令の両方を第1のPEに提供し、制御命令
が実行VLIW命令(XV)またはロード/修正VLIW命令(LV)のいずれ
かであり、XV命令およびLV命令の両方が、間接的にVLIWを実行するため
のアドレス・オフセットおよびベース・ポインタを含んでいる、請求項1に記載
のシステム。 - 【請求項16】 SPに接続された少なくとも1つの追加PEをさらに含み
、前記制御命令が第1のPEおよび前記少なくとも1つの追加PEの両方に同期
的に提供されるために、同じVIMアドレスで異なるVLIWを実行するときに
、前記PEを同期的多重命令多重データ・ストリーム(SMIMD)マシンとし
て動作させ、そうでない場合は前記PEがSMIDマシンとして動作する、請求
項15に記載のシステム。 - 【請求項17】 複数のPEがSPに接続され、前記複数のPEが1つまた
は複数のPEの第1グループおよび第2グループに編成された、請求項16に記
載のシステム。 - 【請求項18】 PEの第1グループが、動作サイクル中に第1のVIMア
ドレスにあるVLIW命令に対して間接的に動作し、PEの第2グループが、動
作サイクル中に同じ第1のVIMアドレスにある異なるVLIW命令に対して間
接的に動作する、請求項17に記載のシステム。 - 【請求項19】 各PEが受信ポートを有し、前記受信ポートでデータを受
け取るかどうかを制御する通信制御の受信モデルに従って複数のPEが動作する
、請求項17に記載のシステム。 - 【請求項20】 各PEが、受信ポートに接続された入力マルチプレクサを
有し、前記入力マルチプレクサを制御することによって通信を制御する、請求項
19に記載のシステム。 - 【請求項21】 複数のPEが、1つのPEが、他のPEが前記複数のPE
のそれぞれについてVIM内の同じ位置にあるデータを使用可能にしている径路
を指定する受信命令を有するように協働命令を格納することで協働するようにプ
ログラミングされている、請求項19に記載のシステム。 - 【請求項22】 個別のPEのオンまたはオフをマスキングするためのマス
キング機構をさらに含む、請求項17に記載のシステム。 - 【請求項23】 VLIW動作中に、ONにマスクされたPEのVIMにロ
ードされ、OFFにマスクされたPEのVIMにはロードされない、請求項22
に記載のシステム。 - 【請求項24】 同じサイクル中に、異なるPEが異なるVLIWを実行す
る、請求項17に記載のシステム。 - 【請求項25】 VIMが、格納ユニット命令、ロード・ユニット命令、演
算論理命令、乗積算ユニット命令、またはデータ選択ユニット命令といったタイ
プの機能命令を格納するためのスロットを備えた、請求項1に記載のシステム。 - 【請求項26】 複数のPEが使用され、VLIWスロットが異なるタスク
に関連付けられており、PEが同じサイクル中に異なるタスクに対して複数の動
作を同時に実行することができる、請求項25に記載のシステム。 - 【請求項27】 超長命令語(VLIW)処理システムであって、 指定されたVIMアドレスにあるスロットにVLIWを格納するためのVLI
Wメモリ(VIM)を有する第1の処理要素(PE)と、 制御命令と機能命令の両方を格納するための第1のレジスタと、 複数のグループ・ビットを解読することで制御命令と機能命令とを区別するた
めのプリデコーダと、 前記制御命令の前記復号に基づいて、VIM内にある前記スロットのうちの適
切な1つに機能命令をロードするためのロード機構とを含むシステム。 - 【請求項28】 PEにロードVLIW(LV)区切り符号を送出するシー
ケンス・プロセッサ(SP)制御装置をさらに含み、その後、LV区切り符号中
で指定された前記VIM内のVIMアドレスに命令シーケンスがロードされる、
請求項27に記載のVLIW処理システム。 - 【請求項29】 少なくとも2つの処理要素(PE)を備えた単一命令多重
データ・ストリーム(SIMD)マシンであって、前記SIMDマシン内の各P
Eが、VLIWメモリ(VIM)内に格納されたVLIW命令に対して間接的に
動作し、間接的な実行が実行VLIW(XV)命令によって開始され、異なるV
LIW命令が同じVIMアドレスのPE内に格納されるマシン。 - 【請求項30】 前記XV命令が、VLIWを間接的に実行するために、各
PEごとにオフセット・アドレスおよびベース・アドレス・レジスタへのポイン
タを含んでいる、請求項29に記載のマシン。 - 【請求項31】 命令が複数のPE内のVIMに受け取られたときにローデ
ィング・プロセスをセットアップして命令をロードするロード制御命令(LV)
を利用して、命令が複数のPEのVIM内に格納される、請求項29に記載のマ
シン。 - 【請求項32】 制御命令XVおよびLVがSIMD SP制御装置によっ
てPEにディスパッチされるSIMDシーケンス・プロセッサ(SP)制御装置
をさらに含む、請求項30に記載のマシン。 - 【請求項33】 間接的超長命令語(VLIW)処理方法であって、 第1の処理要素(PE)内にあるVLIW命令メモリ(VIM)内に格納すべ
き第1のVLIW機能命令をフェッチするステップであって、前記VLIW機能
命令が、命令タイプを定義する複数のグループ・ビットと、実行ユニット・タイ
プを定義する複数のユニット・フィールド・ビットとを有するステップと、 第1のレジスタ内に第1の機能命令を格納するステップと、 プリデコーダを利用して、複数のグループ・ビットおよび複数のユニット・フ
ィールド・ビットを解読するステップと、 前記解読に基づいて前記VIMのロード機構を用いて、適切なアドレスにある
前記VIM内に機能命令をロードするステップとを含む方法。 - 【請求項34】 VLIWを間接的に実行するためのアドレス・オフセット
およびベース・アドレス・レジスタへのベース・ポインタを含んでいる実行VL
IW命令(XV)である制御命令を受け取るステップをさらに含む、請求項33
に記載の方法。 - 【請求項35】 VLIWを間接的に実行するためのアドレス・オフセット
およびベース・アドレス・レジスタへのベース・ポインタを含んでいるロード/
修正VLIW命令(LV)である制御命令を受け取るステップをさらに含む、請
求項33に記載の方法。 - 【請求項36】 記憶部がよりコンパクトになるように、機能命令がVIM
に格納される前に、機能命令からグループ・ビットおよびユニット・フィールド
・ビットを取り除くステップをさらに含む、請求項33に記載の方法。 - 【請求項37】 制御命令がVIMに格納される前に、機能命令からグルー
プ・ビットおよびユニット・フィールド・ビットを取り除くステップと、少なく
とも1つの置換ビットをグループ・ビットまたはユニット・フィールド・ビット
のいずれかに追加するステップとをさらに含む、請求項33に記載の方法。 - 【請求項38】 バイパス命令を受け取るステップと、第1のVLIW機能
命令をVIM内にロードせずに第2のレジスタ内に格納するステップとをさらに
含む、請求項33に記載の方法。 - 【請求項39】 制御命令と第1のPEへの前記機能命令の両方を受け取る
ステップをさらに含み、前記制御命令が実行VLIW命令(XV)またはロード
/修正VLIW命令(LV)のいずれかであり、XV命令およびLV命令の両方
が、第1のPEに接続されたシーケンス・プロセッサ(SP)から間接的にVL
IWを実行するためのアドレス・オフセットおよびベース・ポインタを含んでい
る、請求項33に記載の方法。 - 【請求項40】 超長命令語(VLIW)処理方法であって、 指定されたVIMアドレスにあるスロットにVLIW命令を格納するために、
第1の処理要素(PE)内にあるVLIWメモリ(VIM)内に格納される機能
命令をフェッチするステップと、 第1のレジスタ内に第1の機能命令と制御命令の両方を格納するステップと、 制御命令と機能命令を区別するために、プリデコーダを利用して複数のグルー
プ・ビットを解読するステップと、 前記制御命令の前記解読に基づいて、VIM内にある前記スロットのうちの適
切な1つに機能命令をロードするステップとを含む方法。 - 【請求項41】 ロードVLIW(LV)区切り符号を受け取るステップを
さらに含み、その後、シーケンス・プロセッサ(SP)制御装置からLV区切り
符号内で指定された前記VIM内のVIMアドレスに命令シーケンスがロードさ
れる、請求項38に記載のVLIW方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US6461997P | 1997-11-07 | 1997-11-07 | |
US60/064,619 | 1997-11-07 | ||
PCT/US1998/023650 WO1999024903A1 (en) | 1997-11-07 | 1998-11-06 | METHODS AND APPARATUS FOR EFFICIENT SYNCHRONOUS MIMD OPERATIONS WITH iVLIW PE-to-PE COMMUNICATION |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001523023A true JP2001523023A (ja) | 2001-11-20 |
JP4156794B2 JP4156794B2 (ja) | 2008-09-24 |
Family
ID=22057176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000519833A Expired - Fee Related JP4156794B2 (ja) | 1997-11-07 | 1998-11-06 | iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置 |
Country Status (10)
Country | Link |
---|---|
US (3) | US6151668A (ja) |
EP (1) | EP1029266B1 (ja) |
JP (1) | JP4156794B2 (ja) |
KR (1) | KR20010031884A (ja) |
CN (1) | CN100380313C (ja) |
AT (1) | ATE362623T1 (ja) |
CA (1) | CA2310584A1 (ja) |
DE (1) | DE69837791T2 (ja) |
IL (1) | IL135953A0 (ja) |
WO (1) | WO1999024903A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010067278A (ja) * | 1999-01-28 | 2010-03-25 | Altera Corp | プロセッサでの条件付き実行をサポートする装置及びその方法 |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6798834B1 (en) | 1996-08-15 | 2004-09-28 | Mitsubishi Denki Kabushiki Kaisha | Image coding apparatus with segment classification and segmentation-type motion prediction circuit |
US6219776B1 (en) * | 1998-03-10 | 2001-04-17 | Billions Of Operations Per Second | Merged array controller and processing element |
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 |
US6826522B1 (en) * | 1999-06-21 | 2004-11-30 | Pts Corporation | Methods and apparatus for improved efficiency in pipeline simulation and emulation |
US6748517B1 (en) * | 1999-06-22 | 2004-06-08 | Pts Corporation | Constructing database representing manifold array architecture instruction set for use in support tool code creation |
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
JP3971535B2 (ja) * | 1999-09-10 | 2007-09-05 | 株式会社リコー | Simd型プロセッサ |
JP3730455B2 (ja) * | 1999-10-01 | 2006-01-05 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
US6988188B2 (en) * | 2000-03-01 | 2006-01-17 | Realtek Semiconductor Corp. | Data object architecture and method for xDSL ASIC processor |
RU2158319C1 (ru) * | 2000-04-25 | 2000-10-27 | Институт металлургии и материаловедения им. А.А. Байкова РАН | Высокопрочная коррозионно- и износостойкая аустенитная сталь |
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 |
JP4502532B2 (ja) * | 2001-02-23 | 2010-07-14 | 株式会社ルネサステクノロジ | データ処理装置 |
MXPA03011487A (es) | 2001-06-14 | 2004-03-18 | Hyperion Cataysis Internationa | Dispositivos de emision de campo utilizando nanotubos de carbono modificado. |
GB2382886B (en) * | 2001-10-31 | 2006-03-15 | Alphamosaic Ltd | Vector processing system |
US7398374B2 (en) * | 2002-02-27 | 2008-07-08 | Hewlett-Packard Development Company, L.P. | Multi-cluster processor for processing instructions of one or more instruction threads |
WO2003084243A1 (en) | 2002-03-28 | 2003-10-09 | Sony Corporation | Image compression/encoding device, method, and program |
JP3856737B2 (ja) * | 2002-07-19 | 2006-12-13 | 株式会社ルネサステクノロジ | データ処理装置 |
AU2003283777A1 (en) * | 2002-12-30 | 2004-07-22 | Koninklijke Philips Electronics N.V. | Processing system |
KR101132341B1 (ko) * | 2003-04-07 | 2012-04-05 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 데이터 처리 시스템 및 클러스터화된 명령 레벨 병렬성 프로세서 |
KR20060060689A (ko) * | 2003-08-15 | 2006-06-05 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | 병렬 처리 어레이 및 데이터 처리 방법 |
US20050216700A1 (en) * | 2004-03-26 | 2005-09-29 | Hooman Honary | Reconfigurable parallelism architecture |
US7890735B2 (en) * | 2004-08-30 | 2011-02-15 | Texas Instruments Incorporated | Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture |
US7299339B2 (en) * | 2004-08-30 | 2007-11-20 | The Boeing Company | Super-reconfigurable fabric architecture (SURFA): a multi-FPGA parallel processing architecture for COTS hybrid computing framework |
JP5240424B2 (ja) * | 2004-11-05 | 2013-07-17 | 日本電気株式会社 | Simd型並列演算装置、プロセッシング・エレメント、simd型並列演算装置の制御方式 |
US7493474B1 (en) * | 2004-11-10 | 2009-02-17 | Altera Corporation | Methods and apparatus for transforming, loading, and executing super-set instructions |
KR100636596B1 (ko) * | 2004-11-25 | 2006-10-23 | 한국전자통신연구원 | 고에너지 효율 병렬 처리 데이터 패스 구조 |
US7912311B2 (en) * | 2005-03-21 | 2011-03-22 | Intel Corporation | Techniques to filter media signals |
CN1993709B (zh) * | 2005-05-20 | 2010-12-15 | 索尼株式会社 | 信号处理设备 |
US8077174B2 (en) | 2005-12-16 | 2011-12-13 | Nvidia Corporation | Hierarchical processor array |
US7634637B1 (en) * | 2005-12-16 | 2009-12-15 | Nvidia Corporation | Execution of parallel groups of threads with per-instruction serialization |
US20080046684A1 (en) * | 2006-08-17 | 2008-02-21 | International Business Machines Corporation | Multithreaded multicore uniprocessor and a heterogeneous multiprocessor incorporating the same |
US8099583B2 (en) * | 2006-08-23 | 2012-01-17 | Axis Semiconductor, Inc. | Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing |
US7797514B2 (en) * | 2006-11-16 | 2010-09-14 | Texas Instruments Incorporated | Scalable multi-threaded sequencing/synchronizing processor architecture |
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 |
US8261025B2 (en) * | 2007-11-12 | 2012-09-04 | International Business Machines Corporation | Software pipelining on a network on chip |
US8095775B1 (en) * | 2007-11-21 | 2012-01-10 | Marvell International Ltd. | Instruction pointers in very long instruction words |
US8526422B2 (en) | 2007-11-27 | 2013-09-03 | International Business Machines Corporation | Network on chip with partitions |
US7917703B2 (en) * | 2007-12-13 | 2011-03-29 | International Business Machines Corporation | Network on chip that maintains cache coherency with invalidate commands |
US8473667B2 (en) | 2008-01-11 | 2013-06-25 | International Business Machines Corporation | Network on chip that maintains cache coherency with invalidation messages |
US8010750B2 (en) * | 2008-01-17 | 2011-08-30 | International Business Machines Corporation | Network on chip that maintains cache coherency with invalidate commands |
US7841436B2 (en) | 2008-01-21 | 2010-11-30 | Amigo Mobility International | Personal mobility vehicle |
US8018466B2 (en) * | 2008-02-12 | 2011-09-13 | International Business Machines Corporation | Graphics rendering on a network on chip |
US7913010B2 (en) * | 2008-02-15 | 2011-03-22 | International Business Machines Corporation | Network on chip with a low latency, high bandwidth application messaging interconnect |
US8490110B2 (en) | 2008-02-15 | 2013-07-16 | International Business Machines Corporation | Network on chip with a low latency, high bandwidth application messaging interconnect |
US8103853B2 (en) * | 2008-03-05 | 2012-01-24 | The Boeing Company | Intelligent fabric system on a chip |
US20090245257A1 (en) * | 2008-04-01 | 2009-10-01 | International Business Machines Corporation | Network On Chip |
US20090271172A1 (en) * | 2008-04-24 | 2009-10-29 | International Business Machines Corporation | Emulating A Computer Run Time Environment |
US8078850B2 (en) * | 2008-04-24 | 2011-12-13 | International Business Machines Corporation | Branch prediction technique using instruction for resetting result table pointer |
US8423715B2 (en) | 2008-05-01 | 2013-04-16 | International Business Machines Corporation | Memory management among levels of cache in a memory hierarchy |
KR100960148B1 (ko) * | 2008-05-07 | 2010-05-27 | 한국전자통신연구원 | 데이터 프로세싱 회로 |
US8392664B2 (en) | 2008-05-09 | 2013-03-05 | International Business Machines Corporation | Network on chip |
US7991978B2 (en) * | 2008-05-09 | 2011-08-02 | International Business Machines Corporation | Network on chip with low latency, high bandwidth application messaging interconnects that abstract hardware inter-thread data communications into an architected state of a processor |
US7958340B2 (en) * | 2008-05-09 | 2011-06-07 | International Business Machines Corporation | Monitoring software pipeline performance on a network on chip |
US8494833B2 (en) | 2008-05-09 | 2013-07-23 | International Business Machines Corporation | Emulating a computer run time environment |
US8214845B2 (en) | 2008-05-09 | 2012-07-03 | International Business Machines Corporation | Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data |
US8020168B2 (en) * | 2008-05-09 | 2011-09-13 | International Business Machines Corporation | Dynamic virtual software pipelining on a network on chip |
US7861065B2 (en) * | 2008-05-09 | 2010-12-28 | International Business Machines Corporation | Preferential dispatching of computer program instructions |
US8230179B2 (en) | 2008-05-15 | 2012-07-24 | International Business Machines Corporation | Administering non-cacheable memory load instructions |
US8040799B2 (en) * | 2008-05-15 | 2011-10-18 | International Business Machines Corporation | Network on chip with minimum guaranteed bandwidth for virtual communications channels |
US8078833B2 (en) * | 2008-05-29 | 2011-12-13 | Axis Semiconductor, Inc. | Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions |
US8181003B2 (en) * | 2008-05-29 | 2012-05-15 | Axis Semiconductor, Inc. | Instruction set design, control and communication in programmable microprocessor cores and the like |
US8438578B2 (en) | 2008-06-09 | 2013-05-07 | International Business Machines Corporation | Network on chip with an I/O accelerator |
JP2010039625A (ja) * | 2008-08-01 | 2010-02-18 | Renesas Technology Corp | 並列演算装置 |
US8195884B2 (en) * | 2008-09-18 | 2012-06-05 | International Business Machines Corporation | Network on chip with caching restrictions for pages of computer memory |
WO2011094346A1 (en) * | 2010-01-26 | 2011-08-04 | Hobbs Barry L | Integrated concurrent multi-standard encoder, decoder and transcoder |
US9582443B1 (en) | 2010-02-12 | 2017-02-28 | Marvell International Ltd. | Serial control channel processor for executing time-based instructions |
GB2486485B (en) | 2010-12-16 | 2012-12-19 | Imagination Tech Ltd | Method and apparatus for scheduling the issue of instructions in a microprocessor using multiple phases of execution |
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 |
US10565036B1 (en) | 2019-02-14 | 2020-02-18 | Axis Semiconductor, Inc. | Method of synchronizing host and coprocessor operations via FIFO communication |
CN112230995B (zh) * | 2020-10-13 | 2024-04-09 | 广东省新一代通信与网络创新研究院 | 一种指令的生成方法、装置以及电子设备 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0740252B2 (ja) * | 1986-03-08 | 1995-05-01 | 株式会社日立製作所 | マルチプロセツサシステム |
DE4129614C2 (de) * | 1990-09-07 | 2002-03-21 | Hitachi Ltd | System und Verfahren zur Datenverarbeitung |
US5963745A (en) * | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | APAP I/O programmable router |
US5765011A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
US6002880A (en) * | 1992-12-29 | 1999-12-14 | Philips Electronics North America Corporation | VLIW processor with less instruction issue slots than functional units |
US5682491A (en) * | 1994-12-29 | 1997-10-28 | International Business Machines Corporation | Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier |
US5649135A (en) * | 1995-01-17 | 1997-07-15 | International Business Machines Corporation | Parallel processing system and method using surrogate instructions |
US5680597A (en) * | 1995-01-26 | 1997-10-21 | International Business Machines Corporation | System with flexible local control for modifying same instruction partially in different processor of a SIMD computer system to execute dissimilar sequences of instructions |
US5659785A (en) * | 1995-02-10 | 1997-08-19 | International Business Machines Corporation | Array processor communication architecture with broadcast processor instructions |
US5669001A (en) * | 1995-03-23 | 1997-09-16 | International Business Machines Corporation | Object code compatible representation of very long instruction word programs |
US5870576A (en) * | 1996-12-16 | 1999-02-09 | Hewlett-Packard Company | Method and apparatus for storing and expanding variable-length program instructions upon detection of a miss condition within an instruction cache containing pointers to compressed instructions for wide instruction word processor architectures |
US6026478A (en) * | 1997-08-01 | 2000-02-15 | Micron Technology, Inc. | Split embedded DRAM processor |
US6076154A (en) * | 1998-01-16 | 2000-06-13 | U.S. Philips Corporation | VLIW processor has different functional units operating on commands of different widths |
-
1998
- 1998-11-06 US US09/187,539 patent/US6151668A/en not_active Expired - Lifetime
- 1998-11-06 JP JP2000519833A patent/JP4156794B2/ja not_active Expired - Fee Related
- 1998-11-06 WO PCT/US1998/023650 patent/WO1999024903A1/en active IP Right Grant
- 1998-11-06 DE DE69837791T patent/DE69837791T2/de not_active Expired - Lifetime
- 1998-11-06 EP EP98957630A patent/EP1029266B1/en not_active Expired - Lifetime
- 1998-11-06 CA CA002310584A patent/CA2310584A1/en not_active Abandoned
- 1998-11-06 IL IL13595398A patent/IL135953A0/xx unknown
- 1998-11-06 CN CNB988107678A patent/CN100380313C/zh not_active Expired - Fee Related
- 1998-11-06 AT AT98957630T patent/ATE362623T1/de not_active IP Right Cessation
- 1998-11-06 KR KR1020007004975A patent/KR20010031884A/ko not_active Application Discontinuation
-
2000
- 2000-10-02 US US09/677,732 patent/US6446191B1/en not_active Ceased
-
2004
- 2004-06-21 US US10/872,995 patent/USRE41703E1/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010067278A (ja) * | 1999-01-28 | 2010-03-25 | Altera Corp | プロセッサでの条件付き実行をサポートする装置及びその方法 |
JP2012033176A (ja) * | 1999-01-28 | 2012-02-16 | Altera Corp | サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
USRE41703E1 (en) | 2010-09-14 |
CN100380313C (zh) | 2008-04-09 |
US6446191B1 (en) | 2002-09-03 |
EP1029266B1 (en) | 2007-05-16 |
DE69837791T2 (de) | 2007-10-18 |
US6151668A (en) | 2000-11-21 |
EP1029266A4 (en) | 2005-08-17 |
CA2310584A1 (en) | 1999-05-20 |
JP4156794B2 (ja) | 2008-09-24 |
KR20010031884A (ko) | 2001-04-16 |
ATE362623T1 (de) | 2007-06-15 |
DE69837791D1 (de) | 2007-06-28 |
IL135953A0 (en) | 2001-05-20 |
CN1278342A (zh) | 2000-12-27 |
EP1029266A1 (en) | 2000-08-23 |
WO1999024903A1 (en) | 1999-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4156794B2 (ja) | iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置 | |
US5872987A (en) | Massively parallel computer including auxiliary vector processor | |
US6581152B2 (en) | Methods and apparatus for instruction addressing in indirect VLIW processors | |
JP3149348B2 (ja) | 代理命令を用いる並列処理システム及び方法 | |
US7366881B2 (en) | Method and apparatus for staggering execution of an instruction | |
US6851041B2 (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 | |
US6874078B2 (en) | Merged control/process element processor for executing VLIW simplex instructions with SISD control/SIMD process mode bit | |
US20020178345A1 (en) | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution | |
US20030061473A1 (en) | Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor | |
US9021236B2 (en) | Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution | |
US6883088B1 (en) | Methods and apparatus for loading a very long instruction word memory | |
EP0496407A2 (en) | Parallel pipelined instruction processing system for very long instruction word | |
MXPA00003803A (en) | METHODS AND APPARATUS FOR EFFICIENT SYNCHRONOUS MIMD OPERATIONS WITH iVLIW PE-to-PE COMMUNICATION |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051028 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20051205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070330 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070628 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070713 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070727 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070810 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070830 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070906 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071001 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071026 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20071205 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20071212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080423 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080613 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080710 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110718 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110718 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120718 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130718 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |