JP2003296103A - 結果が分散される並列サブワード命令 - Google Patents
結果が分散される並列サブワード命令Info
- Publication number
- JP2003296103A JP2003296103A JP2003021481A JP2003021481A JP2003296103A JP 2003296103 A JP2003296103 A JP 2003296103A JP 2003021481 A JP2003021481 A JP 2003021481A JP 2003021481 A JP2003021481 A JP 2003021481A JP 2003296103 A JP2003296103 A JP 2003296103A
- Authority
- JP
- Japan
- Prior art keywords
- result
- subword
- instruction
- results
- instructions
- 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
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013459 approach Methods 0.000 description 19
- 230000008685 targeting Effects 0.000 description 16
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- TVEXGJYMHHTVKP-UHFFFAOYSA-N 6-oxabicyclo[3.2.1]oct-3-en-7-one Chemical compound C1C2C(=O)OC1C=CC2 TVEXGJYMHHTVKP-UHFFFAOYSA-N 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 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
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
列サブワード命令を提供する。 【解決手段】 サブワード演算の結果は、オペランドレ
ジスタと結果レジスタとの間の情報の横方向移動が最小
になるように、結果レジスタのビット位置の間で分散さ
れる。この分散は、横方向の移動が、結果が連続して格
納される場合よりも小さくなるようになされる。横方向
移動を最小化するために、複数のサブワード演算の結果
は、結果レジスタの対応するサブワードロケーションに
おいて、例えば、結果レジスタの対応するサブワードロ
ケーションの最下位ビット位置に格納される。
Description
特に、データプロセッサが実行可能な命令に関する。本
発明の主な目的は、マルチメディアアプリケーションに
おいて一般的な特定の状況で改良されたプロセッサパフ
ォーマンスを達成する並列サブワード比較命令を提供す
ることにある。
術の進展に関連する。通常のコンピュータは、プログラ
ム命令に従ってデータに対して演算を行う1つまたは複
数のプロセッサを備える。各マイクロプロセッサには、
命令セット、すなわちマイクロプロセッサが実行可能な
命令のセットが関連付けられる。特定のアプリケーショ
ンのコンテキストにおけるプロセッサのパフォーマンス
は、プロセッサの命令セットを使用して、アプリケーシ
ョンが要求するタスクをどの程度効率的に特徴付けるこ
とができるかに大きく依存する。
ど、リアルタイムでのビデオ操作等さらに多くを要求す
るアプリケーションに直面してきた。通常、ビデオは画
像の同期ストリームとして提示される。各画像は、二次
元アレイになった画素(ピクセル)として説明すること
ができる。通常、各ピクセルは色次元ごとに1つのマル
チビット(たとえば8ビット)色値で記述される。多く
のアプリケーション、たとえば映像圧縮は、ピクセルを
ブロック(たとえば、8×8ピクセルブロック)にグル
ープ化する。
なる画像のブロック同士の比較等)では、オペランドデ
ータの2×64×8(2ブロック、64ピクセル/ブロ
ック、8ビット/ピクセル)ビットを同時に処理する必
要があり得る。ますます普及しつつある64ビットプロ
セッサを使用する場合、二値画像ブロックの比較は、オ
ペランドに8対の64ビットレジスタを使用して実施す
ることができ、追加のレジスタが中間結果および最終結
果の格納に使用される。
結果は1ビットの情報である。総計で、64の比較の結
果は、単一の結果レジスタに格納することのできる単一
の64ビットワードになる。これら64の比較をどの程
度効率的に行い、かつ組み合わせることができるかは、
マイクロプロセッサに関連する命令セットに依存する。
ワード比較命令が使用される場合、8つのデータビット
を使用し、固定値が書き込まれたオペランドを生成しな
ければならない。次いで、ワードが比較される。次に、
1ビット値が結果レジスタの適当なビット位置に格納さ
れる。連続した結果は、前の結果を消去することなく結
果レジスタの適当な位置に格納しなければならない。し
たがって、ワード比較命令を使用して画像ブロックの比
較を完了するには、64の比較命令および他の多くの命
令が必要である。
較命令に対応するものもある。一対の64ビットレジス
タに適用されるように、レジスタに格納された8対の8
ビットサブワードを並列に比較して、たとえば、結果レ
ジスタの8つの最下位ビット位置に格納することのでき
る8ビット結果を生成することができる。この結果をよ
り上位のビット位置にシフトして、他のレジスタ対での
並列サブワード比較演算の結果のために場所を空けるこ
とができる。画像ブロックの比較を完了するために、8
つの並列サブワード命令、7つのシフト命令、および7
つのOR命令(結果を組み合わせるため)が必要であ
り、総計で22の命令が必要である。
特定の実施によって決まる。たとえば、Intel I
taniumプロセッサで使用される代替の並列サブワ
ード比較命令は、結果レジスタの対応するサブワードロ
ケーションに各サブワード比較結果の8つのレプリカを
格納することができる。この場合、8つの並列サブワー
ド比較命令の結果を単一の結果にするために、より多く
の補助命令が必要である。したがって、画像ブロックの
比較に必要な命令の総数は、最初の例に提示された総数
を2倍したものよりも多い場合がある。
理人整理番号10971660−1)は、結果を結果レ
ジスタの異なるサブワードロケーションに格納させて、
結果を組み合わせる前にシフトする必要がないようにす
る並列サブワード比較命令を開示する。ターゲッティン
グアプローチでは、命令が結果のサブワードロケーショ
ンを指定することができ、シフトアプローチでは、結果
レジスタの前の内容を新しいサブワードロケーションに
シフトして、前の結果を失うことなく元のロケーション
に現在の演算結果を格納することができる。レプリカア
プローチでは、結果の完全なレプリカが複数のサブワー
ドロケーションに格納される。OR命令またはMIX命
令を使用して、別個の「シフト命令」なしで複数の並列
サブワード命令からの結果を組み合わせることができ
る。これにより、一連の並列比較命令を組み合わせるた
めに必要な命令の数が1/3〜2/3節約される。
ンスを実質的に向上させるが、さらなる向上が望まれ
る。
レジスタに不連続に分散させる並列サブワード命令を提
供する。好ましくは、結果は、オペランドレジスタと結
果レジスタとの間の情報の横方向移動を最小化するよう
に結果レジスタのビット位置の間で分散される。いずれ
にしても、分散は、「最大横方向移動」が、結果が連続
して格納される場合よりも小さくなるようなものである
べきである。本明細書では、結果の格納に使用されたビ
ット位置における少なくとも1つのギャップがある場合
に結果が格納され、好ましい実施形態では、2つの結果
ビット位置が連続することはない。
するために、サブワード演算の結果を、結果レジスタの
対応するサブワードロケーション内に格納することがで
きる。たとえば、複数の並列サブワード演算それぞれの
結果を、結果レジスタの対応するサブワードロケーショ
ンの最下位ビット位置に格納することができる。これに
より、最大横方向移動が1サブワード未満になることが
保証されるのに対し、上記関連技術では、少なくとも1
サブワード分、最大でデータパス全幅と同じだけの横方
向移動が必要である。
「ターゲッティング」アプローチを提供する。シフトア
プローチでは、レジスタの内容が、現在の演算の結果を
格納するとき、前の演算結果が保存されるようにシフト
される。たとえば、並列サブワード比較演算の結果とし
て、結果が結果レジスタのサブワードロケーションの最
下位ビット位置に格納され、その命令の次の繰り返しに
より、前の結果が結果レジスタサブワードロケーション
の次の最下位ビット位置に前の結果がシフトされ、現在
の並列サブワード比較演算の結果を結果レジスタサブワ
ードロケーションの最下位ビット位置に格納するものと
仮定する。このシフトアプローチの利点は、命令が繰り
返されるとき結果が自動的に組み合わされ、結果を組み
合わせるためのさらなる(たとえばOR)命令の必要性
がなくなることである。
数の命令それぞれが、結果を格納すべき不連続のビット
位置のセットを指定(暗黙的もしくは明示的に)する。
たとえば、ある命令が結果レジスタサブワードロケーシ
ョンの最下位ビットロケーションを指定し、別の命令が
サブワードロケーションの次の最下位ビットロケーショ
ンを指定し、以下同様である。この例では、各結果レジ
スタサブワードビット位置専用の1つの命令があり得
る。結果を異なるビットロケーションセットに格納する
ことによって、複数の並列サブワード命令の結果をシフ
トなしで組み合わせることができる。
「上書き」および「内容保存」変形を提供する。内容保
存変形では、結果の格納に使用されない結果レジスタビ
ット位置には手を付けずに残しておく。これにより、集
合的な結果がさらなる命令なしで組み合わせられるよう
に、連続した並列サブワード比較演算(異なるビット位
置セットを指定する)を同じ結果レジスタに書き込むこ
とができる。このアプローチは、シフトアプローチと同
等に、結果の組み合わせの達成に必要な命令の数を最小
化する。この場合、命令は結果のシフトを要求せず、他
方でシフトアプローチは、ロケーションの指定を要求し
ない。
いビット位置が、たとえばゼロで上書きされる。この変
形では、連続した並列サブワード演算の結果を、異なる
レジスタの異なる位置に書き込むことができ、シフトす
ることなく結果を組み合わせる(たとえば、論理和をと
ることにより)ことができる。結果を組み合わせるため
に別個の命令が必要であるため、ターゲッティングアプ
ローチの上書き変形では、ターゲッティングアプローチ
の内容保存変形ならびにシフトアプローチよりも多くの
命令が必要である。
は、常にパフォーマンスの最もよい指標であるわけでは
ない。いくつかの命令を並列に実行することができる場
合、「依存性深さ(dependency-depth)」のほうがよい
尺度であり得る。シフトアプローチでは、依存性深さは
命令の数に等しく、ターゲッティングアプローチでは、
並列サブワード結果が、異なるレジスタに書き込まれる
限り、依存性深さははるかに少ないはずである。
動の劇的な低減は、命令実行に必要な時間の大幅な低減
に対応する。この低減を用いて、命令サイクルに割り当
てる時間を短縮し、また命令セットの結果に応じて、内
蔵したマイクロプロセッサのルーティング要件を低減す
ることができる。また、通常、異なる命令からの情報
は、重ならないビット位置セットに格納されるが、本発
明は、たとえば暗号化目的のために、重なったビット位
置への情報の格納を提供する。上記に加えて、または上
記に代わる他の利点および特徴は、添付図面を参照して
以下の説明から明白になろう。
ログラム100は、分散結果、上書き、ターゲッティン
グ並列サブワード比較命令PCompDOT0〜PCo
mpDOT7の命令サブセットから選択される命令を含
む。これらの命令は、以下のようにオペランド解析する
(parse)ことができる。すなわち、「並列サブワード比
較を行い(8ビットサブワードを使用して)、各並列サ
ブワード比較の結果を結果レジスタの対応するサブワー
ドの(n+1)番目の(n=0〜7)最下位ビット位置
に格納し、結果データの格納に使用されていない結果レ
ジスタビット位置にゼロを上書きする。」現在の比較演
算の場合、対応するサブワード内容が等しい場合には
「1」が格納され、他の場合には「0」が格納される。
しかし、他のサブワード比較命令は、他の関係、たとえ
ば「以上」等に基づいて「1」および「0」結果を割り
当てることができる。
mpDOT1を含むプログラム100のセグメントの演
算を図1に示す。(完全なレジスタでの値は16進数で
あるが、サブワード細部における値は二進数である)。
PCompDOT0の結果は結果レジスタRC0のサブ
ワード(バイト)の最下位ビットの間で分散されるが、
PCompDOT1の結果は結果レジスタRC1のサブ
ワードの2番目の最下位ビットの間で分散されることに
留意する。結果の格納に使用されないビットは、図1に
は“Z”で示すように、デフォルトのゼロが書き込まれ
る。8つの命令すべてならびに結果を組み合わせるため
のOR命令を含むより全体的なプログラムセグメントを
図2に示し、図3に示すデータを使用する。
ロプロセッサ110およびメモリ112を備えたコンピ
ュータシステムAP1のコンテンツで実行される。メモ
リ112の内容は、プログラムデータ114およびプロ
グラム100を構成する命令を含む。マイクロプロセッ
サ110は、実行ユニットEXU、命令デコーダDE
C、レジスタRGS、アドレスジェネレータADG、お
よびルータRTEを備える。
ム100に従ってデータ114に対して演算を行う。こ
のために、実行ユニットEXUは、アドレスバスADR
に沿ってアドレスジェネレータADGに要求される次の
命令またはデータのアドレスを生成するように命令する
ことができる(内部データバスDTBに付随する制御ラ
インを使用して)。メモリ112は、これに応答して、
要求されたアドレスに格納されている内容をデータおよ
び命令バスDIBに沿って供給する。
ータラインに沿って実行ユニットEXUから受信される
インジケータによって決定されるように、ルータRTE
が、命令バスINBを介して命令を、内部データバスD
TBに沿ってデータを命令デコーダDECにルーティン
グする。デコードされた命令は、制御ラインCCDを介
して実行ユニットEXUに供給される。通常、データは
命令に従ってレジスタRGSに/から転送される。
ーダDECがデコードし、実行ユニットEXUが実行す
ることのできる命令INSの命令セットが関連付けられ
る。プログラム100は、命令セットINSから選択さ
れる順序付き命令セットである。解説目的のために、マ
イクロプロセッサ110、その命令セットINS、およ
びプログラム100は、後述するすべての命令の例を提
供する。本発明はまた、本明細書に述べる新規命令のす
べてではなくいくつかを使用する実施形態も提供する。
すべての命令PCompDOT0〜PCompDOT7
および7つのOR命令、合わせて15の命令を含む。命
令は、図2では4列に配置され、各列が、合計4つの依
存性深さのうちの1つのレベルに対応する。PComp
DOT0〜PCompDOT7命令の結果(図3に示す
データに適用される)は、レジスタRC0〜RC7に格
納されて示される。4つのOR命令の最初のセットの結
果は、レジスタRD0〜RD3に示され、2つのOR命
令の第2のセットの結果はレジスタRE0およびRE1
に示され、最後のOR命令の結果は結果レジスタRF0
に示される。
本発明の命令の説明を容易にするように選択されたもの
であり、このデータは図3に示される。オペランドレジ
スタRA0〜RA7およびRB0〜RB7中のデータは
16進数フォーマットであるが、結果は2進数フォーマ
ットで示される。結果のビット値は離間されて、結果レ
ジスタ中で分散されることを示す。
の低減を図5に示す。通常のオペランドサブワードにつ
いて、本発明の分散アプローチに必要な最大横方向移動
を実線の矢印で示し、関連技術の連続アプローチに必要
な最大横方向移動を点線の矢印で示す。本発明では、情
報をサブワード内に残すことができるため、最大横方向
移動は1サブワード未満である。結果を連続して格納す
ると、最大横方向移動は1サブワードを越えることにな
る。たとえば、結果が結果レジスタの最下位サブワード
に連続して格納される場合、最上位オペランドビットに
関連する横方向移動は、レジスタ全体から1サブワード
を差し引いたものである。したがって、本発明は、情報
の最大横方向移動を大幅に低減し、レジスタ間のルーテ
ィングをより単純にし、データの移動をより高速にし、
したがってプロセッサパフォーマンスをより高くするこ
とができる。
散結果、内容保存、ターゲッティング並列サブワード比
較命令PCompDP0〜PCompDP7を使用す
る。これら命令は以下のようにオペランド解析すること
ができる。すなわち、「並列サブワード比較を行い(8
ビットサブワードを使用して)、各並列サブワード比較
の結果を結果レジスタの対応するサブワードの(n+
1)番目の(n=0〜7)最下位ビット位置に格納し、
結果データの格納に使用されていない結果レジスタビッ
ト位置を変更せずにそのままにする。」PCompDP
0およびPCompDP1の連続した対の演算を図7に
示す。PCompDP0の結果は、結果レジスタRC0
のサブワードの最下位ビットに格納される(PComp
DOT0の場合と同様に)。しかし、結果の格納に使用
されないビット位置は、図6にZの代わりにXを使用し
て示すように、レジスタRC0に予め存在するデータで
埋められる。
の違いは、PCompDPT1の結果を参照するとより
明確になる。この命令の結果は、結果レジスタサブワー
ドロケーションの2番目の最下位ビット位置に書き込ま
れる。この場合、結果は、PCompDPT0の結果と
同じ結果レジスタRC0に書き込まれるため、結果はさ
らなる命令なしで組み合わせられる。したがって、望ま
しい組み合わせられた結果は、図7に示すように、8つ
の命令の後でのみ結果レジスタRC0に見られる(図4
のデータを使用して)。しかし、依存性深さ、したがっ
てマイクロプロセッサ110によってもたらされる並列
性を利用する機会はより少ない(However, the depende
ncy depth is ,so there is less opportunity to take
advantage of parallelism providedby microprocesso
r 110)。
グ変形では、結果ロケーションを暗黙的あるいは明示的
に指定しなければならない。これは、各サブワードロケ
ーションごとに異なる命令を使用することによって暗黙
的に指定することができる。この目的のために命令中に
確保されたフィールドに入力された値によって明示的に
指定することができる。代替として、命令が、ロケーシ
ョンを示す値が格納されるロケーションを明示的または
暗黙的にポイントすることができる。たとえば、命令
は、結果を格納すべきサブワードロケーションを示す値
を格納するレジスタをポイントすることができる。別の
代替では、結果を格納すべきレジスタにサブワードロケ
ーションを結び付ける。たとえば、レジスタRC0に格
納される結果を最下位サブワード位置に格納し、レジス
タRC1に格納された結果を2番目の最下位サブワード
位置に格納することができる。
ド比較命令PCompDPSを使用するプログラムセグ
メントを図8および図9に示す。この命令は、以下のよ
うにオペランド解析することができる。すなわち、「並
列サブワード比較を行い(8ビットサブワードを使用し
て)、各並列サブワード比較の結果を結果レジスタの対
応するサブワードの最下位ビット位置に格納し、予め存
在するデータを1ビット位置分左にシフトし、各サブワ
ードの予め存在する最上位ビットをドロップする。」こ
の場合、結果の宛先は1つしかないため、命令も1つし
かない(2つのターゲッティング命令サブセットそれぞ
れに8つの命令があることとは対照的に)。
果は、図6のPCompDPT0の結果と同一に見え
る。しかし、予め存在するデータを所定位置にしたまま
にするのではなく、PCompDPSは予め存在するデ
ータを左に2ビットシフトする。各サブワードごとの予
め存在する最上位データビットはドロップされ、空いた
サブワードの最下位ビット位置が命令結果で埋められ
る。
mpDPSと合わせてより明確に例示する。第1のPC
ompDPSの結果は左に1ビットシフトされ、第2の
PCompDPSの結果はここでも、サブワードの最下
位ビット位置に格納されることに留意する。5番目の最
下位サブワード(図8において強調される)の2つの最
下位ビット(これもまた図8において強調される)の検
査は、PCompDPT1の対応する結果(図6におい
て強調される)と異なる。明らかに、情報は同じである
が、PCompDPTnとPCompDPSに関連する
順序付け規則が異なるため、別様に表現される。内容は
シフトされて保存されるため、連続したPCompDP
S命令が同じレジスタに書き込むことができ、よって8
つの命令の後に、所望の組み合わせられた結果が得られ
る。内容保存ターゲッティング命令の場合と同様に、プ
ログラムセグメント長および依存性深さは双方とも8で
ある。
け)命令は同じタイプのものと意図するが、本発明では
同じタイプのものである必要はない。たとえば、シフト
タイプ命令はターゲッティング命令の後であってもよ
く、またその逆であってもよい。さらに、2つの命令が
必要とする演算は同じである必要はなく、たとえば、一
方が二値比較であり、他方が「ゼロに等しい(equals z
ero)」命令であってもよい。
の出願(代理人整理番号10971550−1)に開示
されるもののように、並列サブワード比較命令に必要な
命令の数を大幅に低減することができる異なるタイプの
命令に対応する(provide for)。例示した実施形態で
は、レジスタは64ビットであり、サブワードは8ビッ
トであり、よってレジスタ当たり8つの互いに重ならな
いサブワードロケーションがある。このレジスタおよび
サブワードサイズの選択により、結果は1サブワード長
である。より長い、たとえば16ビットのサブワードが
使用される場合、64ビットレジスタ当たり4つのみの
16ビットサブワード、ひいては結果当たり4ビットし
かない。したがって、16の互いに重ならない4ビット
結果ロケーションがレジスタに存在しうる。命令セット
は、並列サブワード比較演算にこれらのうちいずれかを
選択できるように設計することができる。よって、この
ような命令の1つのフォーマットは、PComp(第1
のオペランドレジスタ、第2のオペランドレジスタ、結
果レジスタ、サブワードサイズ、結果レジスタにおける
結果のターゲットロケーション)であることができる。
あるいは異なる結果レジスタの異なるビット位置に格納
した。しかし、暗号化アプリケーションでは、結果格納
に使用するビット位置セットがいくらか重なっている必
要があり得る。たとえば、ターゲットビット位置のセッ
トが重なってもよく、別の例では、シフト命令が以前の
内容のすべてではなくいくらかをシフトすることができ
る。結果が同じレジスタに書き込まれる場合、前の結果
のいくらかに上書きされ、結果が異なるレジスタに書き
込まれる場合、たとえばXOR命令を使用して結果を組
み合わせる場合、いくらかの情報をマスクすることがで
きる。失われた情報は、意図した受信者しか利用するこ
とができない暗号化鍵に従って別個に供給することがで
きる。
算、2進演算、およびより高次の演算を含む他の演算に
も適用される。レジスタ長は変更可能であり、2のべき
乗である必要はない。サブワード長も変更可能であり、
2のべき乗である必要はない。演算結果によって決定さ
れない結果レジスタのビットは、変更しないままにして
もよく、またゼロあるいは1のいずれかに設定してもよ
い。例示した実施形態に対するこれらおよび他の変更お
よび変形は本発明によって提供され、本発明の範囲は併
記の特許請求の範囲によってのみ限定される。
サブワード命令によれば、結果を結果レジスタに不連続
に分散させることができる。また、本発明に係る並列サ
ブワード命令によれば、結果は、オペランドレジスタと
結果レジスタとの間の情報の横方向移動を最小化するよ
うに結果レジスタのビット位置の間で分散される。ま
た、本発明に係る並列サブワード命令によれば、分散
を、「最大横方向移動」が、結果が連続して格納される
場合よりも小さくすることができる。また、本発明に係
る並列サブワード命令によれば、結果の格納に使用され
たビット位置における少なくとも1つのギャップがある
場合に結果が格納され、2つの結果ビット位置が連続す
ることはない。
ィング命令を含む第1のコンピュータプログラムセグメ
ントの一部の概略図である。
に使用する8つの並列サブワード比較命令およびOR命
令を示す図1のプログラムセグメントのより全体的な図
である。
なオペランドデータおよび結果を提示する。
システムの概略図である。
ある関連技術の並列サブワード比較命令に必要な最大横
方向移動とを比較する。
対の演算を示す第2のコンピュータプログラムセグメン
ト対の概略図である。
ゲッティング命令を包含する図6のセグメントのより全
体的な図である。
のコンピュータプログラムセグメント対の概略図であ
る。
示す第3のコンピュータプログラムセグメントのより全
体的な図である。
ロセッサ、112・・・メモリ、114・・・プログラ
ムデータ
Claims (10)
- 【請求項1】マイクロプロセッサ(110)であって、 デコードするための命令デコーダ(DEC)と、 結果が結果レジスタ(RCO)に不連続に分散されるよ
うに少なくとも1つの並列サブワード命令(PComp
DOTn、PCompDPTn、PCompDPS)を
実行する実行ユニット(EXU)と、 を備えるマイクロプロセッサ。 - 【請求項2】前記結果は、情報の最大横方向転送が前記
結果が連続して格納される場合よりも小さくなるように
不連続に分散される請求項1記載のマイクロプロセッ
サ。 - 【請求項3】前記命令はオペランドの複数のオペランド
サブワードに対する演算を必要とし、 前記結果レジスタは、複数の互いに重ならない連続した
サブワードロケーションを有し、 該サブワードロケーションはそれぞれ前記オペランドサ
ブワードの1つに対応し、 前記命令は、各オペランドサブワードの結果を前記結果
レジスタの対応するサブワードロケーションに格納させ
る請求項1記載のマイクロプロセッサ。 - 【請求項4】前記命令は、結果の格納に使用されない前
記結果レジスタのビット位置にデータを保存する請求項
1記載のマイクロプロセッサ。 - 【請求項5】前記命令は、結果の格納に使用されない前
記結果レジスタのビット位置にデータを上書きする請求
項1記載のマイクロプロセッサ。 - 【請求項6】コンピュータプログラム(100)であっ
て、 結果を結果レジスタに不連続に分散させる少なくとも1
つの並列サブワード命令(PCompDOTn、PCo
mpDPTn、PCompDPS)を含むコンピュータ
プログラム。 - 【請求項7】前記命令は、情報の最大横方向転送が前記
結果が連続して格納される場合よりも小さくなるように
不連続に前記結果を分散する請求項6記載のコンピュー
タプログラム。 - 【請求項8】前記命令はオペランドの複数のオペランド
サブワードに対する演算を必要とし、 前記結果レジスタは、複数の互いに重ならない連続した
サブワードロケーションを有し、 該サブワードロケーションはそれぞれ前記オペランドサ
ブワードの1つに対応し、 前記命令は、各オペランドサブワードの結果を前記結果
レジスタの対応するサブワードロケーションに格納させ
る請求項6記載のコンピュータプログラム。 - 【請求項9】前記命令は、結果の格納に使用されない前
記結果レジスタのビット位置にデータを保存する請求項
6記載のコンピュータプログラム。 - 【請求項10】前記命令は、結果の格納に使用されない
前記結果レジスタのビット位置にデータを上書きする請
求項6記載のコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/112,783 US7441104B2 (en) | 2002-03-30 | 2002-03-30 | Parallel subword instructions with distributed results |
US10/112783 | 2002-03-30 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003296103A true JP2003296103A (ja) | 2003-10-17 |
JP2003296103A5 JP2003296103A5 (ja) | 2006-01-19 |
JP3958224B2 JP3958224B2 (ja) | 2007-08-15 |
Family
ID=28453423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003021481A Expired - Fee Related JP3958224B2 (ja) | 2002-03-30 | 2003-01-30 | 結果が分散される並列サブワード命令 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7441104B2 (ja) |
JP (1) | JP3958224B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014179076A (ja) * | 2013-03-14 | 2014-09-25 | Intel Corp | 複数データ要素対複数データ要素比較プロセッサ、方法、システム、および命令 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201006846A (en) | 2000-03-07 | 2010-02-16 | Senomyx Inc | T1R taste receptor and genes encidung same |
US9146738B2 (en) * | 2002-03-30 | 2015-09-29 | Hewlett-Packard Development Company, L.P. | Interleaving bits of multiple instruction results in a single destination register |
US20080077772A1 (en) * | 2006-09-22 | 2008-03-27 | Ronen Zohar | Method and apparatus for performing select operations |
US8856492B2 (en) * | 2008-05-30 | 2014-10-07 | Nxp B.V. | Method for vector processing |
US20100298507A1 (en) * | 2009-05-19 | 2010-11-25 | Menschig Klaus R | Polyisobutylene Production Process With Improved Efficiencies And/Or For Forming Products Having Improved Characteristics And Polyisobutylene Products Produced Thereby |
US8510715B1 (en) * | 2010-01-26 | 2013-08-13 | Google Inc. | Coverage analysis using sub-instruction profiling |
US9459867B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
US9268566B2 (en) | 2012-03-15 | 2016-02-23 | International Business Machines Corporation | Character data match determination by loading registers at most up to memory block boundary and comparing |
US9459864B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Vector string range compare |
US9710266B2 (en) | 2012-03-15 | 2017-07-18 | International Business Machines Corporation | Instruction to compute the distance to a specified memory boundary |
US9588762B2 (en) | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
US9454367B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Finding the length of a set of character data having a termination character |
US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
US9715383B2 (en) | 2012-03-15 | 2017-07-25 | International Business Machines Corporation | Vector find element equal instruction |
US9454366B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Copying character data having a termination character from one memory location to another |
US9459868B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5442576A (en) * | 1994-05-26 | 1995-08-15 | Motorola, Inc. | Multibit shifting apparatus, data processor using same, and method therefor |
US5526297A (en) * | 1994-07-29 | 1996-06-11 | Comsat Corporation | Random unique word detection method and apparatus |
US5704034A (en) * | 1995-08-30 | 1997-12-30 | Motorola, Inc. | Method and circuit for initializing a data processing system |
JP3729540B2 (ja) * | 1995-09-08 | 2005-12-21 | 株式会社ルネサステクノロジ | 画像処理装置 |
US5953016A (en) * | 1996-07-01 | 1999-09-14 | Sun Microsystems, Inc. | Graphical image mapping using partitioned operations |
US5812147A (en) * | 1996-09-20 | 1998-09-22 | Silicon Graphics, Inc. | Instruction methods for performing data formatting while moving data between memory and a vector register file |
US6115812A (en) * | 1998-04-01 | 2000-09-05 | Intel Corporation | Method and apparatus for efficient vertical SIMD computations |
EP1044407B1 (en) | 1998-10-09 | 2014-02-26 | Koninklijke Philips N.V. | Vector data processor with conditional instructions |
US6745319B1 (en) * | 2000-02-18 | 2004-06-01 | Texas Instruments Incorporated | Microprocessor with instructions for shuffling and dealing data |
US6618804B1 (en) * | 2000-04-07 | 2003-09-09 | Sun Microsystems, Inc. | System and method for rearranging bits of a data word in accordance with a mask using sorting |
US6760822B2 (en) * | 2001-03-30 | 2004-07-06 | Intel Corporation | Method and apparatus for interleaving data streams |
-
2002
- 2002-03-30 US US10/112,783 patent/US7441104B2/en not_active Expired - Fee Related
-
2003
- 2003-01-30 JP JP2003021481A patent/JP3958224B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014179076A (ja) * | 2013-03-14 | 2014-09-25 | Intel Corp | 複数データ要素対複数データ要素比較プロセッサ、方法、システム、および命令 |
Also Published As
Publication number | Publication date |
---|---|
US20030188137A1 (en) | 2003-10-02 |
JP3958224B2 (ja) | 2007-08-15 |
US7441104B2 (en) | 2008-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669330B2 (en) | Method for performing random read access to a block of data using parallel LUT read instruction in vector processors | |
JP3958224B2 (ja) | 結果が分散される並列サブワード命令 | |
JP3747936B2 (ja) | データプロセッサの結果レジスタの選択したサブワード位置に結果を送る並列サブワード命令 | |
KR100319353B1 (ko) | 다수의독립섹션과모든섹션으로부터의레지스터저장결과표시비트를가지는산술논리유닛 | |
US20180342270A1 (en) | Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size | |
US6941446B2 (en) | Single instruction multiple data array cell | |
US7882284B2 (en) | Compute unit with an internal bit FIFO circuit | |
JP4901754B2 (ja) | 単一命令複数データ実行エンジンのフラグレジスタのための評価ユニット | |
IL169374A (en) | Result partitioning within simd data processing systems | |
JP2009223758A (ja) | 画像処理装置 | |
KR100971626B1 (ko) | 다수의 명령어 세트를 갖는 데이터 처리 장치 내에서의명령어 부호화 | |
CN113722669B (zh) | 数据处理方法、装置、设备及存储介质 | |
US6378050B1 (en) | Information processing apparatus and storage medium | |
US7441099B2 (en) | Configurable SIMD processor instruction specifying index to LUT storing information for different operation and memory location for each processing unit | |
US6408320B1 (en) | Instruction set architecture with versatile adder carry control | |
US9146738B2 (en) | Interleaving bits of multiple instruction results in a single destination register | |
US7769989B2 (en) | Processor for processing data using access addresses linked to the data type of the processed data | |
GB2382886A (en) | Vector Processing System | |
JP2001216275A (ja) | 画像処理装置および画像処理方法 | |
Guttag | TMS320C8x family architecture and future roadmap | |
JP4413905B2 (ja) | Simd型プロセッサ | |
JP2004287754A (ja) | コンピュータ及び命令処理方法 | |
JP2002544619A (ja) | 専用ポインタメモリを使用するオブジェクト指向処理 | |
JPS62226336A (ja) | マイクロプログラム制御方式 | |
JP2004336661A (ja) | 画像復号方法、画像復号装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051121 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051121 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060817 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060822 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061117 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20061120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070322 |
|
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: 20070413 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070509 |
|
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: 20110518 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120518 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |