JP2002539519A - Vliwプロセッサにおけるレジスタ・アドレッシングの間接制御を提供するためのレジスタファイル索引付け方法及び装置 - Google Patents

Vliwプロセッサにおけるレジスタ・アドレッシングの間接制御を提供するためのレジスタファイル索引付け方法及び装置

Info

Publication number
JP2002539519A
JP2002539519A JP2000604303A JP2000604303A JP2002539519A JP 2002539519 A JP2002539519 A JP 2002539519A JP 2000604303 A JP2000604303 A JP 2000604303A JP 2000604303 A JP2000604303 A JP 2000604303A JP 2002539519 A JP2002539519 A JP 2002539519A
Authority
JP
Japan
Prior art keywords
register
rfi
control
instruction
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000604303A
Other languages
English (en)
Other versions
JP4657455B2 (ja
Inventor
エドウィン, フランク バリー,
ジェラルド, ジー. ペカネック,
パトリック, アール. マーチャンド,
Original Assignee
ボプス インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ボプス インコーポレイテッド filed Critical ボプス インコーポレイテッド
Publication of JP2002539519A publication Critical patent/JP2002539519A/ja
Application granted granted Critical
Publication of JP4657455B2 publication Critical patent/JP4657455B2/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
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30098Register arrangements
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • 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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/35Indirect addressing
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3552Indexed addressing using wraparound, e.g. modulo or circular addressing
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Landscapes

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

Abstract

(57)【要約】 レジスタファイル(818)におけるデータのブロックにアクセスする二重間接方法が使用されて、専用のベクトル処理ハードウェアを使用しない効率的な実施が可能となる。加えて、レジスタ・アドレッシングの自動修正が、単一ベクトル命令にも、繰り返し又はループ命令にも結合されない。むしろ、この技術は、レジスタファイル索引付け(RFI)(820)と呼ばれ、ブロック・データ操作機能の制御において十分なプログラマの柔軟性を可能にし、非RFI命令をRFI命令と混合するための能力を提供する。ブロックデータ操作機能(814)がiVLIW ManArrayアーキテクチャに埋め込まれ、命令セット・アーキテクチャにわたるその汎用の使用を、専用のベクトル命令なしに、或いは、繰り返し又はループ命令と共に使用するのみに限定されることなく可能にする。VLIW又はiVLIWプロセッサなど、並行して動作する多数の異質の実行ユニット(852及び854)を含むプロセッサにおけるRFI(820)の使用が、多数の実行ユニット(852及び854)にわたるアルゴリズムの効率的なパイプライン化を可能にし、必要とされるVLIW命令の数を最小化する。

Description

【発明の詳細な説明】
【0001】 (関連出願の相互参照) 本願出願は、1998年3月12日出願の「Register File Indexing Method
and Apparatus for Providing Indirect Control of Register in a VLIW Proce
ssor」という名称の米国仮特許出願第60/077,766号の利点を主張する
【0002】 (発明の分野) 本発明は、一般に、超長命令語(VLIW)処理における改良に関し、より詳
細には、VLIWプロセッサにおけるレジスタ・アドレッシングの間接制御を提
供するための有利なレジスタファイル索引付け(RFI)技術に関する。
【0003】 (発明の背景) 1つの重要なプロセッサ・モデルは、ベクトル処理のものである。このモデル
は、従来のスーパーコンピュータにおいて長年使用されてきた。このモデルの典
型的な特徴は、専用ベクトル命令、専用ベクトル・ハードウェア、及びデータの
ブロックに効率的に操作を加える能力の使用である。まさにこの、典型的にはベ
クトル・データ・タイプのみに操作を加える能力により、このモデルには柔軟性
がなく、多様な処理要件に効率的に対処できない。加えて、従来のベクトル・プ
ロセッサでは、制御スカラ処理のサポートが典型的には、分離したハードウェア
において、或いは分離した制御プロセッサにおいて行われた。もう1つのプロセ
ッサモデルは、従来の超長命令語(VLIW)プロセッサモデルであり、これは
、標準の単一プロセッサタイプの単一機能動作を長い命令語に、専用のマルチサ
イクル・ベクトル処理機能なしに連結することに基づいた、並列処理モデルに相
当する。ブロックデータ・ベクトル・パイプラインを効率的に動作するには、個
別のベクトル要素を引き渡すための効率的なインターフェイスを有することが重
要である。このため、成功したクラスの従来技術のベクトルマシンは、レジスタ
ベースであった。このレジスタベースのベクトルプロセッサは、ベクトル要素用
の高性能レジスタを提供し、要素の効率的なアクセスを機能実行ユニットによっ
て可能にする。実施特有のベクトル長の値に結合された単一のベクトル命令が、
ブロック・データ・マルチサイクル動作を引き起こす。加えて、多数のベクトル
マシンが連鎖機能を提供しており、個別のベクトル要素への操作が直接、他のベ
クトル関数ユニットへ経路指定されて、性能が向上される。これらの従前の特徴
及び能力が、本発明のための背景を提供する。本発明の一目的は、スカラ、VL
IW、及び柔軟性のあるベクトル処理能力を、間接的なVLIWプロセッサにお
いて効率的に組み込むことである。
【0004】 典型的な限定命令セット・コンピュータ(RISC)及びVLIWプロセッサ
では、レジスタオペランドのアクセスが、レジスタファイルに格納されたオペラ
ンドのレジスタアドレスを表す短命令語(SIW)ビット・フィールドから決定
される。レジスタベースのベクトルプロセッサでは、専用のハードウェアが使用
される。このハードウェアは単一ベクトル命令によって開始され、専用ベクトル
レジスタからのベクトル要素(オペランドデータ)のアクセスを自動化する。デ
ータのブロックにおけるマルチサイクル実行も自動化される。
【0005】 従来は、レジスタ・オペランド・データの自動アクセスをサポートするために
使用された、専用のハードウェア技術もあった。例えば、米国特許第5,680
,600号は、レジスタファイル・アドレッシングを自動化するためにループ又
は繰り返し命令を使用して、レジスタファイルにアクセスするための技術を記載
している。この手法は、レジスタ・アドレッシングをループ又は繰り返し命令に
結合し、これにより、レジスタアドレスに、レジスタファイルのアドレス空間を
介して増分するように指示する間に、ロード又は格納命令を繰り返させる。電子
回路が、多数の逐次命令のためのコントローラメモリの必要量を低減するために
指定される。従って、この従来技術の手法は、特殊なループ又は繰り返し命令に
よって呼び出されたロード及び格納タイプの動作にのみ適用されるようにみえる
。このように、これは、以下で更に対象とされるような間接VLIW ManA
rray(マンアレイ)プロセッサに容易に適用可能ではない。
【0006】 (発明の概要) ManArrayファミリのプロセッサは適切に、多数の「間接VLIW」(
iVLIW)プロセッサ及びプロセッサ要素(PE)からなることができ、これ
らが32ビットの固定長の短命令語(SIW)を利用する。SIWを、プロセッ
サにつき最大8つの実行ユニットの1つによって個別に、かつ、SIMDモード
の動作において、多数のPEを同期させて実行することができる。もう1つのタ
イプのSIWは、VLIWを間接的に参照して、最大8つのSIW命令の発行を
、各プロセッサにおいて並行して、多数のPEを同期させて、並行して実行させ
ることができる。
【0007】 オペランドがレジスタファイルに格納され、各実行ユニットが1つ又は複数の
読取り及び書込みポートを有し、これがレジスタファイル或いは複数ファイルに
接続される。大抵のプロセッサでは、各ポート用に選択されたレジスタが、命令
におけるビットフィールドを使用してアドレス指定される。ManArrayプ
ロセッサにおいて使用された間接VLIW技術により、VLIWを作成するSI
WがVLIWメモリに格納される。各SIWがレジスタオペランド・フィールド
を、レジスタによりアクセスされたオペランドデータにおける単一の動作のため
の定義によって固定するので、単一のオペランドフィールドが処理アルゴリズム
によって必要とされるように異なっていなければならないときはいつでも、多数
のVLIWが必要とされる。従って、このようなプロセッサ、及び、より一般に
は並列アレイプロセッサに拡張可能なものと共に使用するための、データのブロ
ックにおける動作のための適切なレジスタファイル索引付け技術が、大変有利と
なる。
【0008】 このオペランド・データ固定レジスタ指定の問題が、本発明によって、間接V
LIW命令を使用して、データのブロックにおけるパイプライン計算を達成する
小型の手段を提供することにより解決される。レジスタファイルにおけるデータ
のブロックにアクセスする二重間接方法が使用されて、専用のベクトル処理ハー
ドウェアを使用しない効率的な実施が可能となる。加えて、レジスタ・アドレッ
シングの自動修正が、単一ベクトル命令にも、繰り返し又はループ命令にも結合
されない。むしろこの技術は、レジスタファイル索引付け(RFI)と呼ばれ、
ブロックデータ操作機能の制御において十分なプログラマの柔軟性を可能にし、
非RFI命令をRFI命令と混合するための能力を提供する。ブロックデータ操
作機能がiVLIW ManArrayアーキテクチャに埋め込まれ、命令セッ
ト・アーキテクチャにわたるその汎用の使用を、専用のベクトル命令なしに、か
つ、繰り返し又はループ命令と使用するのみに限定されることなく可能にする。
本発明を利用すると、連鎖動作が、機能ユニットの間のいかなる直接経路指定も
なしに、固有に使用可能であり、さらに実施を簡素化する。加えて、このレジス
タファイル索引付けアーキテクチャが、コード化されるアルゴリズムのタイプに
応じて特に著しくなる可能性のあるVLIWメモリの必要量を低減する。
【0009】 更に、VLIW命令のアンロールされたループ(unrolled loop)として表現さ
れたとき、多数の計算が明確なレジスタ使用パターンを示す。これらのパターン
は計算パイプラインの特性であり、本明細書で更に記載され、適合されるように
、間接VLIWプロセッサに埋め込まれたManArray間接ベクトル処理と
共に利用することができる。
【0010】 その他の態様の中で、本発明は、オペランドレジスタ・アドレスを生成するた
めのユニークな初期化方法、ユニークな二重間接実行機構、ユニークな制御方法
を提供し、レジスタファイルを、独立した循環バッファに区分することができる
。これはまた、RFI及び非RFI命令を混合すること、及び、VLIW処理要
素の多数のアレイ編成に適用可能なスケーラブルな設計も可能にする。以下で更
に詳細に対象とするように、本発明は、iVLIWアレイプロセッサにおける並
列命令実行のための、VLIWメモリ、及び、結果として、SIWメモリの必要
量を低減する。
【0011】
【発明の実施の形態】 本発明のこれら及び他の特徴、態様及び利点は、添付の図面と共に取られた以
下の詳細な説明から、当業者には明らかになるであろう。
【0012】
【発明の実施の形態】
(詳細な説明) 本発明と共に使用するために現在好ましいManArrayアーキテクチャの
さらなる詳細は、1997年6月30日出願の米国特許出願第08/885,3
10号、1997年10月10日出願の米国特許出願第08/949,122号
、1998年10月9日出願の米国特許出願第09/169,255号、199
8年10月9日出願の米国特許出願第09/169,256号、1998年10
月9日出願の米国特許出願第09/169,072号、1998年11月6日出
願の米国特許出願第09/187,539号、1998年12月4日出願の米国
特許出願第09/205,558号、1998年12月18日出願の米国特許出
願第09/215,081号、1999年1月12日出願の米国特許出願第09
/228,374号、及び1999年1月28日出願の米国特許出願第09/2
38,446号、ならびに、1998年7月9日出願の「Methods and Apparatu
s for Instruction Addressing in Indirect VLIW Processors」という名称の仮
特許出願第60/092,130号、1998年10月9日出願の「Efficient
Complex Multiplication and Fast Fourier Transform (FFT) Implementation o
n the ManArray」という名称の仮特許出願第60/103,712号、1998
年11月3日出願の「Methods and Apparatus for Improved Motion Estimation
for Video Encoding」という名称の仮特許出願第60/106,867号、1
998年12月23日出願の「Methods and Apparatus for Providing Direct M
emory Access(DMA) Engine」という名称の仮特許出願第60/113,637
号、及び1998年12月23日出願の「Methods and Appratus Providing Tra
nsfer Control」という名称の仮特許出願第60/113,555号においてそ
れぞれ判明し、全体として、参照により本明細書に組み込まれる。
【0013】 本発明の現在の好ましい実施形態では、図1Aに示されたManArrayの
2×2 iVLIW単一命令多重データ・ストリーム(SIMD)プロセッサ1
00が、処理要素0(PE0)SP/PE0 101に結合されたコントローラ・
シーケンス・プロセッサ(SP)を含み、これは「Methods and Apparatus for
Dynamically Merging an Array Controller with an Array Processing Element
」という名称の米国特許出願第09/169,072号において、更に詳細に記
載されている。本発明によれば、3つの追加のPE151、153及び155も
、レジスタファイル索引付け及びそのスケーラブルな性質を示すために利用され
る。PEに、それらの行列位置により、PE0(PE00)101、PE1(PE01
)151、PE2(PE10)153、及びPE3(PE11)155について括弧に
おいて示されたように、ラベルを付けることもできることに留意されたい。SP
/PE0 101はフェッチコントローラ103を含み、32ビット命令メモリ1
05からの短命令語(SIW)のフェッチを可能にする。このフェッチコントロ
ーラ103が、プログラムカウンタ(PC)、分岐機能、デジタル信号処理ルー
プ動作、割り込みのサポートなど、プログラム可能プロセッサにおいて必要とさ
れた典型的な機能を提供し、命令メモリ管理制御を提供し、これは、アプリケー
ションによって必要とされた場合、命令キャッシュを含むことができる。加えて
、SIW I−フェッチ・コントローラ103は、32ビットのSIWをシステ
ムにおける他のPEに、32ビット命令バス102によってディスパッチする。
【0014】 この例示的システムでは、説明を簡素化するために共通の要素が全体を通して
使用されるが、実際の使用はそのように限定されない。例えば、結合されたSP
/PE0 101における実行ユニット131を、制御機能に合わせて最適化され
た1組の実行ユニット、例えば、固定小数点実行ユニットに分離することができ
、PE0、ならびに他のPE151、153及び155を、浮動小数点の応用例
に合わせて最適化することができる。この記載のために、実行ユニット131が
、SP/PE0及び他のPEにおける同じタイプのものであると仮定される。類
似の方法において、SP/PE0及び他のPEが5命令スロットiVLIWアー
キテクチャを使用し、これは、超長命令語メモリ(VIM)メモリ109、及び
、命令復号化及びVIMコントローラ機能ユニット107を含み、これがSP/
PE0のI−フェッチ・ユニット103からディスパッチされたような命令を受
信してVIMアドレス及び制御信号108を生成し、これがiVLIWにアクセ
スするために必要とされ、109における文字SLAMDによって識別され、V
IMに格納される。ManArrayパイプライン設計は、分岐待ち時間を増大
させることなく、間接VLIWメモリ・アクセス機構を提供し、これは、間接実
行LVIW(XV)命令のための動的に再構成可能な命令パイプラインを提供す
ることによって行い、これは「Methods and Apparatus to Dynamically Reconfi
gure the Instruction Pipeline of an Indirect Very Long Instruction Word
Scalable Processor」という名称の米国特許出願第09/228,374号にお
いて、さらに詳細に記載されている。iVLIWのローディングは、「Methods
and Apparatus for Efficient Synchronous MIMD Operations with iVLIW PE-to
-PE Communication」という名称の米国特許出願第09/187,539号にお
いて、さらに詳細に記載されている。また、SP/PE0及び他のPEに含まれ
ているものは、共通のPE構成可能レジスタファイル127であり、これは、「
Methods and Apparatus for Dynamic Instruction Controlled Reconfiguration
Register File with Extended Precision」という名称の米国特許出願第09/
169,255号において、更に詳細に記載されている。
【0015】 SP/PE0の結合された特性により、データメモリ・インターフェイス・コ
ントローラ125が、メモリ121におけるSPデータによりSPコントローラ
の、及び、メモリ123におけるPE0データによりPE0の、データ処理必要性
に対処しなければならない。SP/PE0コントローラ125は、32ビット・
ブロードキャスト・データバス126を介して送信されるデータのソースでもあ
る。他のPE151、153及び155は、共通の物理データメモリ・ユニット
123'、123”及び123'''を含むが、それらに格納されたデータは一般に
、各PEにおいて行われるローカル処理によって必要とされるように異なる。こ
れらのPEデータ・メモリへのインターフェイスも、PE1、2及び3における共
通の設計であり、PEローカルメモリ及びデータバス・インターフェイス論理1
57、157'及び157”によって示される。データ転送通信のためにPEを
相互接続するものは、クラスタスイッチ171であり、「Manifold Array Proce
ssor」という名称の米国特許出願第08/885,310号、「Methods and Ap
paratus for Manifold Array Processing」という名称の米国特許出願第09/
949,122号、及び「Methods and Apparatus for ManArray PE-to-PE Swit
ch Control」という名称の米国特許出願第09/169,256号において、よ
り完全に記載されている。ホストプロセッサへのインターフェイス、他の周辺デ
バイス、及び/又は外部メモリを、多数の方法において行うことができる。完全
性のために示された主要な機構が、DMA制御装置181に含まれ、これは、ス
ケーラブルなManArrayデータバス183を提供し、これがManArr
ayコアの外部のデバイス及びインターフェイスユニットに接続される。DMA
制御装置181が、これらの外部デバイスがバス185を介してManArra
yコアメモリとインターフェイスを取るために必要とされた、データフロー及び
バス裁定機構を提供する。
【0016】 上に示された全ての特許は本発明の譲受人に譲渡され、全体として、参照によ
り本明細書に組み込まれる。
【0017】 このとき、本発明に適合されるようなManArrayプロセッサ装置の特定
の詳細を参照すると、この手法は、二重間接機構を介した、効率的かつ柔軟性の
あるブロックデータ操作能力を提供するので、有利である。 (レジスタファイル索引付けプログラミング考察) 本発明の一態様によるレジスタファイル索引付け(RFI)は、各処理要素に
おける、かつ、オペランドレジスタファイルを、直接SIWのフィールドを介す
るのではなく、二重間接機構を介して、或いは、専用ベクトル命令及びベクトル
ハードウェアを介して、或いは、要求された繰り返し又はループ命令により、ア
ドレス指定するためのアレイコントローラにおける、方法及び装置を指す。各実
行ユニットが、1つ又は複数のレジスタファイルの読取り及び書込みポートを動
作する。読取り又は書込みポートは、レジスタファイルに供給されたレジスタ選
択アドレス及び制御線、レジスタファイルから読み取り中であるレジスタデータ
のための読取りポート用のデータバス、及び、レジスタファイルへ書き込み中で
あるレジスタデータのための書込みポート用のデータバスからなる。これらのポ
ートのレジスタ選択論理への入力は、典型的には図1Bの従来技術の装置におい
て図示されたように、実行中である命令のビットフィールドからのみ来たもので
ある。図1Bでは、プロセッサの命令レジスタ10において受信された命令が、
典型的にはレジスタファイル・アドレスを含み、これらが典型的には、レジスタ
12、14及び16など、ポートアドレス・レジスタにおいてラッチされ、次い
で、レジスタファイル20など、レジスタファイルをアドレス指定するために直
接使用されて、図1Bの格納ユニット22、ロードユニット24、ALU26、
MAU28及びDSU30など、ユニットによる命令実行がサポートされた。
【0018】 この典型的なレジスタ選択のための方法に加えて、本発明によるRFI動作に
より、各実行ユニットの各レジスタファイルポートを、以下で更に対象とされる
ような簡素な制御回路を使用して、二重間接機構を介して独立して制御すること
もできる。
【0019】 (RFI動作) RFI動作を、ManArray iVLIWアーキテクチャに埋め込み、二
重間接機構によって呼び出すことができるので、有利である。32ビット符号化
フォーマット201を有する例示的実行VLIW(XV)命令200が、図2A
に示される。命令構文、パラメータ又はオペランド、命令200によって実行さ
れた動作を要約する構文/動作テーブル203が図2Bに示される。ManAr
ray RFI動作が、ビット20及び21であるRFI動作ビット202を、
実行VLIW(XV)命令200において、図2Aに示されたように使用して、
RFI動作を使用可能にする。
【0020】 更なる詳細においては、XV命令200が使用されて、指定されたSP又はP
E VLIWメモリ(VIM)の個々の命令スロットが間接的に実行させられる
。VIMアドレスが、ベースVIMアドレス・レジスタVb(V0又はV1)に、
符号なし8ビットのオフセットVIMOFFSを加えた和として計算される。個
々の命令スロットのいかなる組み合わせも、実行スロット・パラメータ「E={
SLAMD}」を介して実行することができ、但し、S=格納ユニット(SU)
、L=ロードユニット(LU)、A=論理演算装置(ALU)、M=乗算累算ユ
ニット(MAU)、及びD=データ選択ユニット(DSU)である。空の「E=
」パラメータは、いかなるスロットも実行しない。ユニット影響フラグ(UAF
)パラメータ「F=[AMDN]」が、VLIWについて指定されたUAFを、
それがロードVLIW(LV)命令を介してロードされたとき、オーバーライド
する。オーバーライドは、どの算術命令スロット(A=ALU、M=MAU、D
=DSU)又は、なし(N=NONE)が、VLIWのこの実行について条件フ
ラグを設定するために可能とされるかを選択する。オーバーライドは、LV命令
を介して指定されたUAF設定に影響を与えない。空の「F=」は、VLIWが
ロードされたときに、指定されたUAFを選択する。レジスタファイル索引付け
(RFI)パラメータ「R=[01N]」が使用されて、このXVの命令スロッ
トの間接実行についてRFIが使用可能或いは使用不可にされる。「R=0」(
図2AにおけるRFI動作ビット202=00)であれば、RFI動作が使用可
能にされ、RFI制御レジスタグループ0が選択される。「R=1」(ビット2
02=01)であれば、RFI動作が使用可能にされ、RFI制御レジスタグル
ープ1が選択される。「R=N」(ビット202=11)であれば、RFI動作
が使用不可にされる。
【0021】 RFIが使用可能にされたXV命令により、第2の間接動作が開始される。第
2の間接動作は、実行される次のXV命令において活動し始め、レジスタポート
・アドレスが、分離したRFI制御パラメータによって指定された方法において
制御されたハードウェアを自動的に増分することを介して、間接的に指定される
。RFI動作が以下で、ManArrayパイプラインに関連して、主として、
パイプラインの復号化及び実行段階に関して記載される。RFI制御は、4つの
部分、即ち、1)RFI制御指定、2)RFI初期化制御、3)RFI更新制御
、及び、4)RFI命令実行からなる。
【0022】 (RFI制御指定) RFI制御指定は、RFI制御レジスタを介して実行されることが好ましい。
各制御レジスタが、特定の実行ユニットによって使用されたレジスタポートにつ
いての全てのRFI制御情報を指定する。制御フィールドが各ポート用の制御レ
ジスタにあり、このフィールドが、RFI動作がこの特定のポートについて使用
可能にされるかどうかを指定し、使用可能にされた場合、RFIレジスタ更新ポ
リシーを指定する。
【0023】 RFI制御レジスタは、図3Aにおいて例示されたManArray雑レジス
タファイル(MRF)300を介してアクセスされる。このレジスタファイルは
、追加のレジスタを、制限されたMRFアドレス空間内に、追加のレジスタを単
一のMRFアドレスにアドレス対応することによって追加できることにおいて、
ユニークである。MRF拡張レジスタ305及び315は、図3B及び図3Cに
おいてそれぞれ示され、MRF拡張アドレスレジスタ(MRFXAR)301及
びMRF拡張データレジスタ(MRFXDR)302及び303を使用してアク
セスされる。2つのMRF拡張データレジスタ302及び303が提供されて、
実施が簡素化され、各組の拡張レジスタの所期の使用が分離される。レジスタア
ドレスが、図4の32ビットMRFXARレジスタ410のハーフワードH1又
はH0部分に、図7A及び図7Bにおいて例示されたようなロード即値命令を使
用して書き込まれる。図3A乃至図3C、及び図4A及び図4Bの各部分の関係
が、以下でより十分に述べられる。
【0024】
【表1】
【0025】 現在好ましい実施形態では、5つの実行ユニットがRFI制御を有する。図3
Cは、例示的なセットのRFI制御レジスタの要約を示す。これらのMRFXレ
ジスタ510、520、530、540、550、560、570及び580が
、図5において更に詳細に示され、各制御レジスタが、指定された実行ユニット
用の読取り/書込みポートに割り当てられる。これらの実行ユニットには、論理
演算装置(ALU)、乗算累算ユニット(MAU)、データ選択ユニット(DS
U)、ロードユニット及び格納ユニットが含まれる。
【0026】 レジスタが2つの制御グループ(510〜540)、2つの保存及び復元コン
テキストレジスタ(550及び560)、及び1つのレジスタ580において使
用されて、各制御グループのためのRFI制御の初期化が制御される。予約済レ
ジスタ570も示される。第1の制御グループ0が、図3CにおけるRFIDL
S0 310及びRFIAM0 320を含む。さらなる詳細が、図5のレジスタ5
10及び520において示される。第2の制御グループ1が、RFIDLS1 3
30及びRFIAM1 340を含み、さらなる詳細がレジスタ530及び540
において示される。
【0027】 iVLIWが実行されたとき、制御グループの1つがXV命令において、ビッ
ト21及び20という、図2の命令200のRFIビット202を介して指定さ
れて、このVLIWにおける命令によって使用された、いかなるポートのRFI
制御も可能にされる。本発明が、制御情報又は制御情報の部分集合を、直接命令
においてなど、指定するための別の機構を使用することを除外しないことは、理
解されよう。
【0028】 具体的には、制御グループ0において、図5におけるRFIDLS0 510が
、単一のロードRtポート501、単一の格納Rsポート502、DSU Ry50
3、Rx504及びRt505用の3つのオペランド・ポートのためのポート制御
情報を含む。制御グループ0における第2のレジスタ、RFIAM0 520が、
MAU Ry521、Rx522、Rt523用の3つのオペランドポート、及び、
ALU Ry524、Rx525及びRt526用の3つのオペランドポートのため
の、ポート制御情報を含む。2つの制御グループに関連付けられたものは、初期
化開始ビットであり、これらは、図3CのRFIStartレジスタ380にお
ける、より詳細には図5のレジスタ580における、制御グループ0及び1につ
いて含まれる。制御グループ0では、初期化開始ビットがH0ハーフワード58
1に、以下のように実行ユニットにつき単一のビットと共に位置する。即ち、格
納ポート開始0ビット−4 587、ロード・ポート開始0ビット−3 586
、ALUポート開始0ビット−2 585、MAUポート開始0ビット−1 5
84、及び、DSUポート開始0ビット−0 583である。類似の方法におい
て、第2の制御グループ1のための制御レジスタRFIDLS1 530、RFI
AM1 540が、図5に示されるようにセット・アップされる。制御グループ1
のための初期化開始ビットは、RFIStart580のH1ハーフワード58
2に位置する。他の2つのRFIレジスタRFIDLSI550及びRFIAM
I560が、コンテキスト保存及び復元動作のサポートにおける割り込みにおい
て、ポートアドレス値を格納してポートアドレスの値を保存する。
【0029】 制御パラメータが、必要とされたセットの制御情報を表現することができる、
いかなるフォーマットを有する可能性もあり、これは、本発明が特定のフォーマ
ットを必要としないからであることに留意されたい。レジスタファイル・ポート
のための例示的フォーマット600が、より詳細に図6に示される。RFIパラ
メータが4ビットに、列601及び602において示されたように符号化される
。この制御情報が、次のRFI命令実行において選択される次のレジスタのアド
レスを生成するために適用される、更新のタイプを指定する。現時点の好ましい
実施形態では、制御パラメータが使用されて、レジスタアドレスに加算される更
新増分値603が選択され、選択することができる最大順次(1ずつ増分する)
レジスタファイルアドレス範囲(RFBS)604が指定される。以下で更に記
載されるように、開始レジスタがこれらのパラメータと共に、索引によって選択
することができる実際のレジスタセットを決定する。列605〜611が使用さ
れて、図8及び図9に示された間接ベクトル装置の動作が記載される。これらの
列605〜611では、「x」が「配慮しない」状態を表す。列612は、適用
可能ユニット列であり、どの実行ユニットに制御パラメータが適用されるかを指
定する。
【0030】 (RFI初期化制御) RFI初期化は2つのステップにおいて行われ、これらは図8及び図9を参照
して最適に理解される。図8は、算術演算装置におけるポート論理のための例示
的RFI装置800を示す。図9は、ロード及び格納ユニットにおけるポート論
理のための例示的RFI装置900を示す。この例示的記載は低コストの構成を
表し、これは、ALU、MAU及びDSUユニット用の制御グループ0、及び、
ロード及び格納ユニット用の制御グループ0及び1を使用する。これは、図5に
おいて概説されたアーキテクチャの記述の部分集合であり、プログラマの制約を
表し、全てのオプションが、制御グループ0における全ての実行ユニットについ
て使用可能であるが、制御グループ1は主としてブロック移動、保存及び復元動
作について使用される。RFI XV命令が、第2の制御グループ1を実施にお
いて選択し、算術演算装置上の制御グループ0のみを可能とし、算術演算装置は
、制御グループ1が指定されたときでも、制御グループ0指定に省略時指定され
る。この部分集合が実施の費用を最小化し、以下のようにより詳細に記載される
【0031】 最初に、各レジスタファイルポートについての、図6に例示されたような制御
情報が、RFI制御レジスタ810及び910に、ロード即値(LIM)命令7
00の使用によって書き込まれ、この符号化フォーマットが図7Aに示され、こ
の構文/動作710が図7Bに示される。LIM命令700が最初に使用されて
、図4のロードMRFXARハーフワードH1 410がロードされて、図3Aに
おけるMRFXDR2 303へマップされる所望の拡張RFI制御レジスタがセ
ットアップされる。次いで、LIM命令がデータ値を所望の制御レジスタへ、M
RFXDR2用のアドレスを使用することによってロードする。制御レジスタの
各ハーフワード区間が別々に、LIM命令の定義によってロードされる。
【0032】 明瞭にするため、命令レジスタ814H0ハーフワードビット(15−0)から
のLIMデータパスが図示されない。このデータパスが選択的に制御されて、L
IM命令のH0ハーフワードが、図5において列挙されたMRF拡張レジスタの
いずれかの低又は高ハーフワード部分にロードされる。例えば、LIM命令が、
図5のRFIAM0レジスタ520のH1部分への、そのH0ハーフワードのロー
ディングを引き起こすことができる。図8の共通の算術RFIポート制御論理の
参照において、RFIAM0の3つの制御部分のうち1つが、810など、この
ポート用の更新制御レジスタ0において、この場合はALU852についてロー
ドされる。類似の方法において、他の2つのポート制御値が、それら自体のRF
Iポート制御論理に含まれたそれら自体のポート更新制御レジスタ0にロードさ
れる。他のManArray命令がRFI制御レジスタを、MRFデータバス8
09の使用を介してロードすることができる。MRFデータバス809は、RF
Iポートレジスタを、例えば、文脈切換え動作中に保存するためにも使用される
。特定のLIM命令の記載は、以下の通りである。LIM命令のハーフワード形
式が、16ビットの即値(イミーディエイト値)をSP又はPE目標レジスタR
tの上位ハーフワード(H1)又は下位ハーフワード(H0)にロードする。16
ビット即値が、符号「中間」値として解釈され、「−32768」から「655
35」の範囲におけるいかなる値も受け入れられることを意味する。これは、「
−32768」から「+32767」の2の補数符号付き値範囲、及び、「0」
から「65535」の符号なし値範囲を包含する。
【0033】 LIM命令のワード形式が、符号付き拡張17ビット即値を目標レジスタにロ
ードする。17ビット符号付き値を、「−65536」から「65535」の範
囲におけるいかなる値にすることもできる。LIMのワード形式のための符号化
が、値の絶対値をIMM16フィールドに置き、符号ビットが図7Aに示された
LOCフィールドビット23及び22である。LOCフィールドが、上位ハーフ
ワードが全て1のビットで満たされるか、全て0のビットで満たされるかを決定
する。
【0034】 RFI初期化の第2のステップでは、開始ビット、例えば、DSU854のた
めのビット583が、RFI開始レジスタ、図5のRFIStartにおいて設
定され、これが、各算術実行ユニットのポートのための開始ビット及びmux制
御ブロック812、及び、ロード又は格納ユニットのポートのためのブロック9
12に位置する。各開始ビットが、実行ユニットに属する全てのポートのための
初期化を制御する。これが現時点での好ましいフォーマットであるが、本発明は
このフォーマットに制限されない。このビットを設定する動作が、このレジスタ
に書き込むことができるいかなる命令によっても実行される。このタイプの少な
くとも1つの命令が使用可能である。このビットの設定の後、この特定のグルー
プ及び実行ユニットのためのRFI制御を呼び出す次の命令が、以下で「RFI
命令」と呼ばれ、命令語におけるフィールドによって最初に選択されたその実行
ユニットのオペランドレジスタを有し、次いで、このグループ及び実行ユニット
のための次のRFI命令により、図8及び図9に示されたRFI論理の制御下で
選択されたその実行ユニットのオペランドレジスタを有する。RFI XV命令
により、図2A及び図2Bにおいて記載されたように、SIWのVLIWセット
がローカルのVIM(本明細書で図1AにおけるようなManArray実施の
ために記載されたような5つのSIW)から間接的に検索される。例えば、5つ
のSIWのセットの1つが、図8に示されたような命令レジスタ814にロード
される。フェッチされたSIW RtのポートのためのポートRFI論理も、図8
に示される。フェッチされた命令の最初の実行では、Rtポートアドレス816
がRFIブロック動作のための開始アドレスである。Rtポート・アドレス81
6がマルチプレクサ814を介して、開始ビット及びmux制御ブロック812
によって制御信号813を介して制御されるように、ポートアドレス・レジスタ
816へ、マルチプレクサ出力811を介して渡される。Rtポートアドレスは
、このとき出力811において含まれ、復号化パイプライン段階の最後でポート
アドレス・レジスタ816にラッチされる。ポートアドレス・レジスタ816の
出力が直接、レジスタファイル818を、信号パス817を介してアドレス指定
する。オペランドがレジスタファイル818から選択され、SIW動作が、指定
された実行ユニットにおいて実行される。
【0035】 RFI XV命令の次の発行において、オペランドが間接的にRFI論理から
指定される。これは、動作シーケンスにおける第2の間接指定である。第1の間
接指定は、RFI XV命令を介したものであり、これは間接的にSIWを指定
し、第2の間接指定は、RFI制御パラメータを介してセット・アップされたよ
うなRFI論理を介したものである。これを実施するため、動作更新制御レジス
タ0 810、更新加算器論理830、索引付きポート・ルック・アヘッド・レ
ジスタ820、マルチプレクサ814及び822、及び、更新制御論理824が
使用されて、更新されたポートアドレスが生成され、これが、後に続くRFI命
令実行において使用される。
【0036】 基本概念は、マルチプレクサ814のアドレス出力811が、復号化サイクル
において十分早期に使用可能であり、更新加算器論理830が更新制御論理82
4信号に基づいてアドレスを更新できるようにすることである。更新されたアド
レス819がmux制御信号815によって選択されてマルチプレクサ822を
通過し、索引ポート・ルック・アヘッド・レジスタ820に、復号化の最後に、
現在のポートアドレス811がポートアドレス・レジスタ816にロードされる
と同時にロードされる。次のRFI命令において、ルック・アヘッド・レジスタ
値821が、フェッチされたSIWオペランド・ポート・アドレス値の代りに使
用され、次の実行サイクルのためのポートアドレス・レジスタ816にラッチさ
れ、その間に、更新加算器論理が再度、使用される次のポートアドレスを準備中
である。RFI開始ビットの設定の後に続く最初のRFI命令の後、開始ビット
がクリアされ、後続のRFI命令に、それらのSIWオペランドレジスタを、対
応する索引付きポート・ルック・アヘッド・レジスタによって選択させるように
する。開始ビット及びmux制御ブロック812が、命令のレジスタが命令フィ
ールドによって選択されるか、RFI索引付きポート・ルック・アヘッド・レジ
スタによって選択されるかを決定するための制御を提供する。その入力は、命令
演算コード807、更新制御レジスタ0 810、及びRFIイネーブル信号8
25から来る。これらの信号が、パイプラインにおける命令の進行を指示するパ
イプライン制御信号(図示せず)と共に、レジスタ選択ソースを、マルチプレク
サ814を介して決定する。
【0037】 索引付きポート・ルック・アヘッド・レジスタ820の使用により、非RFI
命令を、RFIレジスタアドレス・シーケンスに影響を与えることなく、RFI
動作の間で混合することができる。非RFI命令が検出されたとき、RFI論理
が、非RFI命令の実行中に、必要とされたRFI状態を保持する。
【0038】 (RFI更新制御) RFI動作が呼び出されたとき、レジスタファイル818における1つ又は複
数のレジスタのアドレスが、RFI論理によって供給される。この論理が、次の
サイクルのためのレジスタアドレスを、復号化サイクルの早期の段階において使
用可能なアドレスから定数を加算或いは減算し、特定のセットのレジスタアドレ
ス内で生成されたポートアドレスを維持することによって、更新する。現在の好
ましい実施形態では、これが、増分値、及び、図6に示されたようなレジスタフ
ァイル・ブロック・サイズ(RFBS)604を、制御される各ポートについて
指定することによって行われる。好ましい実施形態では、RFBS値が、1、2
、4、8など、2の整数の累乗であり、論理的に、レジスタファイルを、ブロッ
クにつきRFBS順次アドレス指定されたレジスタを有するレジスタのブロック
に区分させる。開始レジスタRs(Rcurrent=最初の更新におけるRs)、RF
BS値M、下限の商Q=[Rs/M]、及び正更新増分kと仮定すると、シーケ
ンスにおける次のレジスタ番号、Rnextが、以下によって与えられる。
【0039】 Rnext=((Rcurrent+k)mod M)+Q×M Rs/Mの余りが、下限演算により無視されるので、Q×Mの値≠Rsである。
【0040】 一例として、開始レジスタポート・アドレスが「5」であり、即ち、最初の演
算のためのRcurrentとも等しいRs=R5であると仮定する。また、更新増分が
k=2であり、RFBSがM=8であると仮定する。図6において、この例示的
設定が行620に対応し、これは、図8で対応する信号値を以下のように列挙す
る。即ち、G3=x 606及び831、G2=0 607及び832、G1=
1 608及び833、G0=1 609及び834、X1=1 610及び8
35、及びX0=0 611及び836である。信号X1及びX0が、更新加算
器論理830への2入力による増分を提供する。ゲート信号G3、G2、G1、
及びG0が、任意の開始レジスタが与えられたブロックサイズを維持する。更新
加算器論理830は、5つの標準全加算器861、862、863、864及び
865からなり、図10において更に詳細に示される。図10の全加算器100
0の実行信号Ci+1 1005が、更新加算器830の各段階からの実行信号84
1〜844に対応する。これらの実行信号が、ANDゲート845〜848、及
び、図6の指定された制御記述によって必要とされたモジュロ加算器を効果的に
作成するゲート制御信号831〜834によってゲートされる。これらの仮定で
は、RFIを使用してこのポートを指定する連続命令が、レジスタに、以下の順
序でアクセスする。即ち、R5、R7、R1、R3、R5、R7などである。開
始レジスタがR8であった場合、シーケンスは、R8、R10、R12、R14
、R8、R10などである。本発明は、2の累乗でない増分及び/又はRFBS
を使用することを除外せず、その内部で動作するためのレジスタアドレス・シー
ケンスを指定する別の機構を使用することも除外しない。例えば、読取り専用メ
モリを使用して、更新制御論理824及び更新加算器論理830を置き換えて、
望まれたいかなる所望のレジスタポート・アドレス・シーケンスも提供すること
ができる。メモリ・ブロックを使用することで実施配線問題を引き起こす可能性
があるので、離散論理において更新機能を実施できるようにすることが、現在好
ましい方法である。
【0041】 図9は、ロード及び格納ユニットのためのRFI論理900を示し、これらは
2つの制御レジスタグループ910及び950をそれぞれ使用するように識別さ
れている。XV命令が、どのグループが使用されるかを、図2のビット21〜2
0 202を介して指定する。例示的システムでは、制御レジスタグループ1が
間接的に指定されたとき、VIMからフェッチされたロード及び格納SIWが、
mux制御信号951を介してマルチプレクサ952を通じて選択されたような
更新制御レジスタ1 950を使用するが、算術演算装置は制御レジスタグルー
プ0を使用することに省略時指定される。代替実施では、図9のRFIポート論
理を、各算術実行ユニットについて使用することができ、全ての実行ユニットに
ついて2つのRFIコンテキストを提供する。
【0042】 VLIWプロセッサでは、レジスタファイルの全てのポートを、現在記載され
たXV命令など、単一の命令のためのRFI制御下で有することが可能である。
RFIポート論理は実行ユニットの間で独立しているので、ポートを個別に、S
IW実行ユニット特有の命令によって制御することができる。これは、別の命令
又は命令のグループが、XV命令に加えて、独立RFI制御(即ち、異なる組の
制御パラメータ)を必要とした場合、別の制御レジスタのグループを割り当てる
ことができるという意味である。RFIセット・アップ待ち時間が相対的に短い
ので、図5において記載されたような制御レジスタ・セットを、容易に他のRF
I命令と共有することができる。
【0043】 別のレジスタファイル索引付け装置1100が、図11に示される。このRF
I機構はなお、図8及び図9に関して論じられた他のRFI手法において概説さ
れた二重間接機構を使用する。しかし、図11の手法では、プログラミングの制
約が強制され、処理中のデータのブロックについて、RFI動作を非RFI動作
と混合できないことが必要である。この手法は、図8及び図9において使用され
た、RFI及び非RFI命令を混合することができる手法とは異なる。いくつか
の製品定義では、これは問題ではなく、図11の簡素化されたハードウェア手法
を使用することができる。
【0044】 図11の装置1100の動作は、先のRFI手法の動作と類似している。例え
ば、RFI初期化のための開始ビットが、先に記載されたように使用される。図
11における主な違いは、図8のレジスタ820のような、索引付きポート・ル
ック・アヘッド・レジスタが使用されないことである。むしろ、ポート・アドレ
ス・レジスタ1116がなおレジスタファイル1118をアドレス指定するが、
更新加算器論理1130動作が時間において変位され、図8において使用された
手法と比較されるように、ラッチされたポート・アドレス・レジスタ出力111
7において実行サイクル中に動作する。次の実行サイクルのための準備において
、更新加算器論理1130がポート・アドレス・レジスタ1116の出力111
7を、このポートのためのRFI更新制御レジスタ1110によって指定された
ように更新する。この実行サイクルの終了まで、マルチプレクサ1114が制御
入力1113を介して制御されて、更新加算器論理出力1119が選択されて、
マルチプレクサ1114を介して出力1111に渡される。次いで、マルチプレ
クサ1114出力1111がポート・アドレス・レジスタ1116において、次
の実行サイクルの開始のときにラッチされ、それにより、先にRFI制御セット
・アップによって指定されたようなレジスタファイル・ポート・アドレスを更新
する。
【0045】 XV RFI使用可能装置に加えて、RFIを使用可能にする他の手段が使用
される。この追加の機構の目的は、RFI順序付けを、VLIW(XV)プログ
ラミング・モデルにおいてのみ使用されることから切り離すことである。ブロッ
ク・ロード、ブロック格納、及びブロック移動動作を単一の命令実行によりサポ
ートし、これを、SPにおいて独立で、或いは、PEにおいて同時に行うことが
できることが望ましい。追加のビットをSIWにおいて使用してこの動作を指定
するよりもむしろ、これは本発明によって除外されないが、RFIを使用可能に
する代替間接機構が使用される。このSIWにおけるビットの節約は、標準動作
符号化のための命令フォーマットのよりよい使用を可能にするが、本発明によっ
て提供されたRFI機能性を達成するための能力を除外しない。この代替機構は
、MRFにおいて特定の場所をアドレス指定することができるいかなるSIWに
よっても動作する。MRFにおける多数の場所をこのために提供することができ
るが、これを除外する可能性のある、特定の実施における他の使用がある。この
代替RFI使用可能機能を記載するため、図3AにおけるRFILSD304に
ついて示されたような、MRFにおける1つの場所が使用される。
【0046】 このRFI使用可能機構を使用するため、ハードウェア復号化論理が拡張され
て、RFIイネーブル信号が、XV RFI命令が受信されたときだけでなく、
ロード、格納又はDSU命令がSP又はPE命令レジスタにおいて受信されたと
きにも生成され、これがRFILSDアドレスを、ロードRt、格納Rs又はDS
U Rt又はRsオペランドとして指定する。この代替RFI使用可能機構を使用
する前に、RFI制御レジスタがセットアップされ、ブロック・ロード、格納又
はDSU動作において使用される初期レジスタを指定することが必要とされる。
開始ビットは、この代替RFI使用可能機構において使用されず、これは、ブロ
ック・シーケンスの開始アドレスがポート制御レジスタに格納されるからである
。ロード、格納又はDSU命令を受信すると、これはRFILDSビットをオペ
ランド・アドレスとして使用し、RFIモードが使用可能にされ、各レジスタ・
オペランド・アドレスが、事前にセットアップされたポート(オペランド)アド
レスで、図8、図9及び図11の各RFI論理において示されたようなRFIポ
ート論理によって、置換される。RFI及び非RFI動作は、図8及び図9のハ
ードウェアを使用するときに混合することができる。実際に、ロード、格納及び
DSU制御レジスタ、図9に示されたようなグループ0及び1のために2つのコ
ンテキストを使用することによって、次いで、第1のデータのブロックにおける
RFI XV動作、第2のデータのブロックにおけるRFILSDを使用するR
FI動作、及び非RFI動作を混合することができる。算術ポート・レジスタ・
オペランド・アドレス範囲の適切な拡張によって、算術命令が、RFILSDア
ドレスを参照することによって、RFIを算術命令実行のために呼び出させるこ
とができることを理解されたい。
【0047】 (RFI命令実行) RFI動作は、命令語に含まれた制御情報を介して使用可能にされる。この制
御情報が使用されて、従来のレジスタアドレス選択フィールド(命令に含まれた
オペランドアドレス・フィールド)が使用されるかどうか、或いは、レジスタの
RFI選択が使用されるかどうかが指定される。現在好ましい実施形態では、命
令における制御情報、図2の間接VLIW XV命令ビット21及び20 20
2が、RFI動作を制御するために使用される制御レジスタ又はレジスタのセッ
トを間接的に指定する。これらの制御レジスタ・グループの1つ又は複数が、図
5においてみられるように、RFI制御のために使用可能である。XV RFI
命令が、RFIモードを使用可能にし、RFI動作を制御するための制御レジス
タ・グループを選択する。図5に示されたRFI制御レジスタのグループ510
〜580が、すべてのレジスタ・ポートがRFI制御されることを可能にし、あ
らゆる実行ユニットがRFIモードで同時に動作できることを意味する。
【0048】 ManArrayプロセッサがそのパイプラインの実行段階を、レジスタファ
イルへのライト・バックにより終了することに留意されたい。この手法は、ライ
ト・バック・サイクルの後の次のサイクルが、この結果を次の動作において使用
できるようにする。懸命なプログラミングによって、次いで、ベクトル演算の連
鎖がアーキテクチャにおいて固有である。分離した迂回パスを、実行ユニットに
おいて連鎖をサポートするために設ける必要はない。
【0049】 本発明に係るRFIの例示的使用に関する考察がこのとき提示されて、本発明
のいくつかの有利な態様が例示される。増分値1、RFBS値(M)2の累乗、
開始レジスタR2と仮定すると、レジスタアドレスが、偶数レジスタR2及びそ
の対応する奇数レジスタ(アドレス+1)R3という、2つのレジスタの間で交
替する。RFBS=4では、レジスタがサイクルを、増分1で4つの値の中でア
ドレス指定する。以下の表は、いくつかのアドレス・シーケンスを示す。
【0050】
【表2】
【0051】 簡素な行列ベクトル乗算を、図1Aのプロセッサ100など、4−PE SI
MD VLIW ManArrayプロセッサにおいて計算することが望まれる
と仮定する。さらに、以下の命令タイプが使用可能であると仮定する。
【0052】
【表3】
【0053】 また、4×4行列Aが4つのPEであるPE0、PE1、PE2及びPE3に分配
され、以下の表に示されたように、各PEが行列の行を、レジスタR4、R5、
R6及びR7において含むようにする(PE0が行0を得る、PE1が行1を得
る、など)と仮定する。
【0054】
【表4】
【0055】 4×1ベクトルのシーケンスがメイン(SP)メモリ105から読み込まれ、
行列によって乗算され、結果がローカルのPEメモリ123、123'、123
”及び123'''に格納された場合、適切な順序アルゴリズムが、R2が最初に
ゼロであったと仮定された場合、以下のようになる可能性がある。
【0056】
【表5】
【0057】 このアルゴリズムをVLIW命令により実行すると、以下を生じる。
【0058】
【表6】
【0059】 これらのVLIW命令の間の唯一の違いがMAC命令の第2のレジスタ指定で
あっても、これは、4VLIWタイプの命令に加えて、単一のロードLDB及び
単一の格納ST命令を必要とする。
【0060】 このとき、この例がRFIを使用して実行された場合、処理は以下のようにな
る。すなわち、R2及びR0が共にゼロに初期化され、レジスタファイル索引付
けが、XV命令によって間接的に実行されたVLIWに関連付けられた以下のパ
ラメータと共に使用されると仮定する。
【0061】
【表7】
【0062】 このとき、コードを小型のVLIW形式において書くことができ、第2のレジ
スタRFIシーケンスがR7→R4→R5→R6→R7などで開始する。
【0063】
【表8】
【0064】 最終的な効果は、9個の命令を4個の命令に減らすことである。より少ないV
LIWが使用される事実が、実行されるiVLIWの数、及び、ManArra
yアーキテクチャにおいてロードされなければならないVLIWの数も減らす。
これらの節約は間接的であるが、微々たるものではなく、これは、VLIWメモ
リ(VIM)がチップの資源において高価なものに相当するからである。RFI
動作が、必要とされるVLIWメモリの量を減らし、従って、より高価でないチ
ップを可能にする。
【0065】 本発明を、現在好ましい実施形態の様々な態様に関連して開示したが、本発明
を適切に、後に続く特許請求の範囲に適合する他の環境及び応用例に適用できる
ことは、理解されよう。
【図面の簡単な説明】
【図1A】 本発明と共に使用するために適した、2×2のマンアレイiVLIWプロセッ
サを例示する図である。
【図1B】 典型的な従来技術のレジスタ・アドレッシング機構を例示する図である。
【図2A】 本発明に係るRFI使用可能ビットによるXV命令符号化を例示する図である
【図2B】 本発明における使用のために適したXV構文/動作の記述を例示する図である
【図3A】 RFI制御レジスタの場所を識別するManArray雑レジスタファイル(
MRF)を例示する図である。
【図3B】 MRFX1拡張レジスタを例示する図である。
【図3C】 MRFX2拡張レジスタを例示し、シーケンスプロセッサ(SP)及び処理要
素(PE)において使用されたRFIレジスタを識別する図である。
【図4A】 拡張レジスタの選択を制御するMRFXARレジスタを例示する図である。
【図4B】 MRFXDR1及びMRFXDR2のためのデータフォーマットを例示し、R
FI制御レジスタが、図4AのMRFXARレジスタ値によって指定されたよう
にマップされる図である。
【図5】 本発明と共に使用するための好ましいRFI制御レジスタを例示する図である
【図6】 各RFIポートについて使用された例示的な特定の制御符号化を例示する図で
ある。
【図7A】 本発明のRFI制御値をロードするために使用することができる、適切なロー
ド即値(LIM)命令符号化を例示する図である。
【図7B】 LIM構文/動作の記述を例示する図である。
【図8】 本発明に係る算術実行ユニットのための例示的RFI制御ブロック図を例示す
る図である。
【図9】 本発明に係るロード及び格納実行ユニットのための例示的RFI制御ブロック
図を例示する図である。
【図10】 本発明に係る一実施形態における、各RFIポート論理における更新加算器論
理ユニットにおける使用のための、従来の全加算器を例示する図である。
【図11】 本発明に係る一実施形態における、算術実行ユニットのためのコスト削減型R
FI制御ブロック図を例示する図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ペカネック, ジェラルド, ジー. アメリカ合衆国 ノースカロライナ州 27511, キャリー, ストーンライヒ ドライブ 107 (72)発明者 マーチャンド, パトリック, アール. アメリカ合衆国 ノースカロライナ州 27502, エイペックス, キャッスルバ ーグ ドライブ 2439 Fターム(参考) 5B013 AA02 AA06 BB07 DD00 5B033 AA13 CA11 DD01 【要約の続き】 化を可能にし、必要とされるVLIW命令の数を最小化 する。

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 レジスタファイル索引付けを有するデータ・プロセッサであ
    って、 命令シーケンサ、及び最大N個の命令を並行して実行することができるN個の
    実行ユニットと、 前記N個の実行ユニットによって読み取りかつ書き込みされたデータオペラン
    ドを含むレジスタを有する複数のレジスタファイルとを含み、各レジスタファイ
    ルは前記N個の実行ユニットへの読取りポート及びそこからの書込みポートを有
    し、さらに、 各実行ユニットに関連付けられた読取り及び書込みポートを含み、これらが制
    御回路及びレジスタファイル索引(RFI)レジスタを関連付けており、これに
    より、レジスタを、特定の実行ユニットで使用可能にされた命令語のフィールド
    、又は、前記レジスタファイル索引レジスタの内容を使用して、アドレス指定す
    ることが可能であることを特徴とするデータプロセッサ。
  2. 【請求項2】 前記プロセッサがVLIWプロセッサであることを特徴とす
    る請求項1に記載のデータプロセッサ。
  3. 【請求項3】 前記プロセッサがiVLIWプロセッサであることを特徴と
    する請求項1に記載のデータプロセッサ。
  4. 【請求項4】 前記プロセッサが、ManArrayアーキテクチャにおい
    て類似の方法で構成された複数のプロセッサの1つであることを特徴とする請求
    項1に記載のデータプロセッサ。
  5. 【請求項5】 制御機構をさらに含み、それにより、命令が任意選択的に1
    つ又は複数のRFIレジスタを使用して、そのレジスタファイル・オペランドの
    ためのアドレスを供給することを特徴とする請求項1に記載のデータプロセッサ
  6. 【請求項6】 制御機構をさらに含み、それにより、前記RFIレジスタを
    任意選択的に、各使用の後に、定数をその現在のレジスタ・アドレスから加算或
    いは減算し、それにより異なるレジスタをその次の使用のために選択することに
    よって、自動的に更新することを特徴とする請求項1に記載のデータプロセッサ
  7. 【請求項7】 前記制御機構による前記更新が更に前記選択されたレジスタ
    に、レジスタの多数の可能なプログラム可能セットの1つの中を、セット内の特
    定のレジスタで開始して巡回させることを特徴とする請求項6に記載のデータプ
    ロセッサ。
  8. 【請求項8】 各ポートのレジスタ索引を、更新方法及びレジスタ・アドレ
    ス・セットについて独立して構成することができ、或いは、任意選択で、レジス
    タファイル索引付けについて使用不可にすることができるように動作可能な制御
    機構をさらに含むことを特徴とする請求項1に記載のデータプロセッサ。
  9. 【請求項9】 各レジスタファイル・ポートに関連付けられた前記RFIレ
    ジスタを自動的に、命令において指定されたレジスタ・フィールドから初期化す
    ることができるように動作可能な制御機構をさらに含むことを特徴とする請求項
    1に記載のデータプロセッサ。
  10. 【請求項10】 レジスタファイル索引(RFI)制御方法であって、 RFI制御指定のステップと、 RFI初期化制御のステップと、 RFI更新制御のステップと、 RFI命令実行のステップとを含むことを特徴とする方法。
  11. 【請求項11】 前記RFI制御指定のステップが、特定の実行ユニットに
    よってアクセスされたレジスタポートのための全てのRFI制御情報を指定する
    RFI制御レジスタを利用して実行されることを特徴とする請求項10に記載の
    方法。
  12. 【請求項12】 前記RFI制御情報がRFIレジスタ更新ポリシーを指定
    することを特徴とする請求項11に記載の方法。
  13. 【請求項13】 前記RFI初期化のステップが、 制御情報をRFI制御レジスタに書き込むステップと、 特定のRFI制御グループ及び特定の実行ユニットに対応するRFIリセット
    ・レジスタ(RFIRR)においてビットを設定するステップとを含むことを特
    徴とする請求項10に記載の方法。
  14. 【請求項14】 レジスタアドレスを更新するステップが、 次のサイクルのためのRFIレジスタを、定数をそのアドレスから加算或いは
    減算することによって更新し、そのポート・アドレスを特定のセットのレジスタ
    ・アドレス内で維持するステップを含むことを特徴とする請求項10に記載の方
    法。
  15. 【請求項15】 前記更新が、制御される各ポートのための増分値及びレジ
    スタファイル除数(RFD)を指定することによって実行されることを特徴とす
    る請求項14に記載の方法。
  16. 【請求項16】 前記RFI命令実行のステップが、命令語に含まれた制御
    情報を介して使用可能にされることを特徴とする請求項10に記載の方法。
  17. 【請求項17】 前記制御情報が、標準レジスタ選択オペランド・フィール
    ドが使用されるかどうか、又は、レジスタのRFI選択が使用されるかどうかを
    指定することを特徴とする請求項16に記載の方法。
  18. 【請求項18】 前記制御情報が間接的に、RFI動作を直接制御するため
    に使用される別の制御レジスタ又はレジスタのセットを指定することを特徴とす
    る請求項16に記載の方法。
JP2000604303A 1999-03-12 2000-03-09 データプロセッサ Expired - Fee Related JP4657455B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/267,570 US6446190B1 (en) 1998-03-12 1999-03-12 Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
US09/267,570 1999-03-12
PCT/US2000/006334 WO2000054144A1 (en) 1999-03-12 2000-03-09 Register file indexing methods and apparatus for providing indirect control of register addressing in a vliw processor

Publications (2)

Publication Number Publication Date
JP2002539519A true JP2002539519A (ja) 2002-11-19
JP4657455B2 JP4657455B2 (ja) 2011-03-23

Family

ID=23019343

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000604303A Expired - Fee Related JP4657455B2 (ja) 1999-03-12 2000-03-09 データプロセッサ

Country Status (5)

Country Link
US (1) US6446190B1 (ja)
JP (1) JP4657455B2 (ja)
CA (1) CA2366830A1 (ja)
IL (1) IL144970A0 (ja)
WO (1) WO2000054144A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009779A (ja) * 2006-06-29 2008-01-17 Murata Mach Ltd ポート制御装置およびデータ処理装置
JP2008535065A (ja) * 2005-03-24 2008-08-28 クゥアルコム・インコーポレイテッド 間接レジスタ読み取り及び書込み動作
US9354893B2 (en) 2011-05-31 2016-05-31 Renesas Electronics Corporation Device for offloading instructions and data from primary to secondary data path
CN108604140A (zh) * 2016-01-29 2018-09-28 夏普株式会社 天线内置触摸面板
JP2018165913A (ja) * 2017-03-28 2018-10-25 富士通株式会社 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
GB2363869B (en) * 2000-06-20 2004-06-23 Element 14 Inc Register addressing
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
US20040260912A1 (en) 2001-10-24 2004-12-23 Nils Ola Linnermark Arrangement and a method in processor technology
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7162573B2 (en) * 2003-06-25 2007-01-09 Intel Corporation Communication registers for processing elements
JP4283131B2 (ja) * 2004-02-12 2009-06-24 パナソニック株式会社 プロセッサ及びコンパイル方法
US7945760B1 (en) * 2004-04-01 2011-05-17 Altera Corporation Methods and apparatus for address translation functions
US7124259B2 (en) * 2004-05-03 2006-10-17 Sony Computer Entertainment Inc. Methods and apparatus for indexed register access
US7340591B1 (en) * 2004-10-28 2008-03-04 Altera Corporation Providing parallel operand functions using register file and extra path storage
TWI283411B (en) 2005-03-16 2007-07-01 Ind Tech Res Inst Inter-cluster communication module using the memory access network
US7933405B2 (en) * 2005-04-08 2011-04-26 Icera Inc. Data access and permute unit
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US8407680B2 (en) * 2008-12-16 2013-03-26 International Business Machines Corporation Operand data structure for block computation
US8397186B2 (en) * 2009-07-16 2013-03-12 Synopsys, Inc. Technique for replaying operations using replay look-ahead instructions
US8555036B1 (en) * 2010-05-17 2013-10-08 Nvidia Corporation System and method for performing predicated selection of an output register
US9465613B2 (en) * 2011-12-19 2016-10-11 International Business Machines Corporation Instruction predication using unused datapath facilities
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US10564942B2 (en) 2017-11-17 2020-02-18 International Business Machines Corporation Compiler for a processor comprising primary and non-primary functional units
US11561791B2 (en) * 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11714620B1 (en) 2022-01-14 2023-08-01 Triad National Security, Llc Decoupling loop dependencies using buffers to enable pipelining of loops

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5178150A (ja) * 1974-12-27 1976-07-07 Fujitsu Ltd
JPH06259581A (ja) * 1993-03-02 1994-09-16 Fujitsu Ltd 並列計算機
JPH08249293A (ja) * 1995-01-17 1996-09-27 Internatl Business Mach Corp <Ibm> 代理命令を用いる並列処理システム及び方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
JPH0810428B2 (ja) * 1988-12-26 1996-01-31 三菱電機株式会社 データ処理装置
US5680600A (en) 1989-10-13 1997-10-21 Texas Instruments Incorporated Electronic circuit for reducing controller memory requirements
US5485629A (en) * 1993-01-22 1996-01-16 Intel Corporation Method and apparatus for executing control flow instructions in a control flow pipeline in parallel with arithmetic instructions being executed in arithmetic pipelines
US5481743A (en) * 1993-09-30 1996-01-02 Apple Computer, Inc. Minimal instruction set computer architecture and multiple instruction issue method
US5721854A (en) * 1993-11-02 1998-02-24 International Business Machines Corporation Method and apparatus for dynamic conversion of computer instructions
US5696922A (en) * 1993-12-10 1997-12-09 Cray Research, Inc. Recursive address centrifuge for distributed memory massively parallel processing systems
JPH08278769A (ja) * 1995-04-05 1996-10-22 Citizen Watch Co Ltd マイクロコンピュータ
US5752072A (en) * 1996-05-09 1998-05-12 International Business Machines Corporation Sorting scheme without compare and branch instructions
US6081884A (en) * 1998-01-05 2000-06-27 Advanced Micro Devices, Inc. Embedding two different instruction sets within a single long instruction word using predecode bits

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5178150A (ja) * 1974-12-27 1976-07-07 Fujitsu Ltd
JPH06259581A (ja) * 1993-03-02 1994-09-16 Fujitsu Ltd 並列計算機
JPH08249293A (ja) * 1995-01-17 1996-09-27 Internatl Business Mach Corp <Ibm> 代理命令を用いる並列処理システム及び方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008535065A (ja) * 2005-03-24 2008-08-28 クゥアルコム・インコーポレイテッド 間接レジスタ読み取り及び書込み動作
JP2008009779A (ja) * 2006-06-29 2008-01-17 Murata Mach Ltd ポート制御装置およびデータ処理装置
JP4640272B2 (ja) * 2006-06-29 2011-03-02 村田機械株式会社 ポート制御装置
US9354893B2 (en) 2011-05-31 2016-05-31 Renesas Electronics Corporation Device for offloading instructions and data from primary to secondary data path
CN108604140A (zh) * 2016-01-29 2018-09-28 夏普株式会社 天线内置触摸面板
CN108604140B (zh) * 2016-01-29 2021-08-10 夏普株式会社 天线内置触摸面板
JP2018165913A (ja) * 2017-03-28 2018-10-25 富士通株式会社 演算処理装置、情報処理装置、及び演算処理装置の制御方法

Also Published As

Publication number Publication date
IL144970A0 (en) 2002-06-30
JP4657455B2 (ja) 2011-03-23
WO2000054144A1 (en) 2000-09-14
CA2366830A1 (en) 2000-09-14
US6446190B1 (en) 2002-09-03

Similar Documents

Publication Publication Date Title
JP4657455B2 (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
JP3149348B2 (ja) 代理命令を用いる並列処理システム及び方法
US6581152B2 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
JP2647315B2 (ja) 動的に複数モードで並列処理するアレイ
JP5474014B2 (ja) サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置
KR100236525B1 (ko) 넓은 데이타 폭의 프로세서에서 다기능 데이타 정렬기
JP3101560B2 (ja) プロセッサ
US6219775B1 (en) Massively parallel computer including auxiliary vector processor
US6029242A (en) Data processing system using a shared register bank and a plurality of processors
EP1102163A2 (en) Microprocessor with improved instruction set architecture
EP1512068B1 (en) Access to a wide memory
JP2002533815A (ja) 動的コンパクト命令を有するスケーラブル命令セットアーキテクチャのための方法及び装置
US8671266B2 (en) Staging register file for use with multi-stage execution units
US6430684B1 (en) Processor circuits, systems, and methods with efficient granularity shift and/or merge instruction(s)
KR20000076310A (ko) 리스크 구조를 갖는 8 비트 마이크로콘트롤러
US6542989B2 (en) Single instruction having op code and stack control field
USRE41012E1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
KR19980018071A (ko) 멀티미디어 신호 프로세서의 단일 명령 다중 데이터 처리
JPH03204030A (ja) コンピュータ用プロセツサ
JP2003502753A (ja) レジスタスタックを備えるデータプロセッサ
JPH1165841A (ja) 演算処理装置およびその方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20051205

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090824

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100930

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101012

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: 20101213

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: 20101222

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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