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
Application number
JP2003021481A
Other languages
English (en)
Other versions
JP2003296103A5 (ja
JP3958224B2 (ja
Inventor
Dale Morris
デール・モリス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2003296103A publication Critical patent/JP2003296103A/ja
Publication of JP2003296103A5 publication Critical patent/JP2003296103A5/ja
Application granted granted Critical
Publication of JP3958224B2 publication Critical patent/JP3958224B2/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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address 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

(57)【要約】 【課題】 結果を結果レジスタに不連続に分散させる並
列サブワード命令を提供する。 【解決手段】 サブワード演算の結果は、オペランドレ
ジスタと結果レジスタとの間の情報の横方向移動が最小
になるように、結果レジスタのビット位置の間で分散さ
れる。この分散は、横方向の移動が、結果が連続して格
納される場合よりも小さくなるようになされる。横方向
移動を最小化するために、複数のサブワード演算の結果
は、結果レジスタの対応するサブワードロケーションに
おいて、例えば、結果レジスタの対応するサブワードロ
ケーションの最下位ビット位置に格納される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ処理に関し、
特に、データプロセッサが実行可能な命令に関する。本
発明の主な目的は、マルチメディアアプリケーションに
おいて一般的な特定の状況で改良されたプロセッサパフ
ォーマンスを達成する並列サブワード比較命令を提供す
ることにある。
【0002】
【従来の技術】近代の進歩の大部分は、コンピュータ技
術の進展に関連する。通常のコンピュータは、プログラ
ム命令に従ってデータに対して演算を行う1つまたは複
数のプロセッサを備える。各マイクロプロセッサには、
命令セット、すなわちマイクロプロセッサが実行可能な
命令のセットが関連付けられる。特定のアプリケーショ
ンのコンテキストにおけるプロセッサのパフォーマンス
は、プロセッサの命令セットを使用して、アプリケーシ
ョンが要求するタスクをどの程度効率的に特徴付けるこ
とができるかに大きく依存する。
【0003】コンピュータは、高性能になればなるほ
ど、リアルタイムでのビデオ操作等さらに多くを要求す
るアプリケーションに直面してきた。通常、ビデオは画
像の同期ストリームとして提示される。各画像は、二次
元アレイになった画素(ピクセル)として説明すること
ができる。通常、各ピクセルは色次元ごとに1つのマル
チビット(たとえば8ビット)色値で記述される。多く
のアプリケーション、たとえば映像圧縮は、ピクセルを
ブロック(たとえば、8×8ピクセルブロック)にグル
ープ化する。
【0004】一般的な二値画像演算(同じ画像または異
なる画像のブロック同士の比較等)では、オペランドデ
ータの2×64×8(2ブロック、64ピクセル/ブロ
ック、8ビット/ピクセル)ビットを同時に処理する必
要があり得る。ますます普及しつつある64ビットプロ
セッサを使用する場合、二値画像ブロックの比較は、オ
ペランドに8対の64ビットレジスタを使用して実施す
ることができ、追加のレジスタが中間結果および最終結
果の格納に使用される。
【0005】全部で64の比較が必要である。各比較の
結果は1ビットの情報である。総計で、64の比較の結
果は、単一の結果レジスタに格納することのできる単一
の64ビットワードになる。これら64の比較をどの程
度効率的に行い、かつ組み合わせることができるかは、
マイクロプロセッサに関連する命令セットに依存する。
ワード比較命令が使用される場合、8つのデータビット
を使用し、固定値が書き込まれたオペランドを生成しな
ければならない。次いで、ワードが比較される。次に、
1ビット値が結果レジスタの適当なビット位置に格納さ
れる。連続した結果は、前の結果を消去することなく結
果レジスタの適当な位置に格納しなければならない。し
たがって、ワード比較命令を使用して画像ブロックの比
較を完了するには、64の比較命令および他の多くの命
令が必要である。
【0006】プロセッサによっては、並列サブワード比
較命令に対応するものもある。一対の64ビットレジス
タに適用されるように、レジスタに格納された8対の8
ビットサブワードを並列に比較して、たとえば、結果レ
ジスタの8つの最下位ビット位置に格納することのでき
る8ビット結果を生成することができる。この結果をよ
り上位のビット位置にシフトして、他のレジスタ対での
並列サブワード比較演算の結果のために場所を空けるこ
とができる。画像ブロックの比較を完了するために、8
つの並列サブワード命令、7つのシフト命令、および7
つのOR命令(結果を組み合わせるため)が必要であ
り、総計で22の命令が必要である。
【0007】命令の総数は、並列サブワード比較命令の
特定の実施によって決まる。たとえば、Intel I
taniumプロセッサで使用される代替の並列サブワ
ード比較命令は、結果レジスタの対応するサブワードロ
ケーションに各サブワード比較結果の8つのレプリカを
格納することができる。この場合、8つの並列サブワー
ド比較命令の結果を単一の結果にするために、より多く
の補助命令が必要である。したがって、画像ブロックの
比較に必要な命令の総数は、最初の例に提示された総数
を2倍したものよりも多い場合がある。
【0008】Ruby Leeによる関連特許出願(代
理人整理番号10971660−1)は、結果を結果レ
ジスタの異なるサブワードロケーションに格納させて、
結果を組み合わせる前にシフトする必要がないようにす
る並列サブワード比較命令を開示する。ターゲッティン
グアプローチでは、命令が結果のサブワードロケーショ
ンを指定することができ、シフトアプローチでは、結果
レジスタの前の内容を新しいサブワードロケーションに
シフトして、前の結果を失うことなく元のロケーション
に現在の演算結果を格納することができる。レプリカア
プローチでは、結果の完全なレプリカが複数のサブワー
ドロケーションに格納される。OR命令またはMIX命
令を使用して、別個の「シフト命令」なしで複数の並列
サブワード命令からの結果を組み合わせることができ
る。これにより、一連の並列比較命令を組み合わせるた
めに必要な命令の数が1/3〜2/3節約される。
【0009】上記アプローチはコンピュータパフォーマ
ンスを実質的に向上させるが、さらなる向上が望まれ
る。
【0010】
【発明が解決しようとする課題】本発明は、結果を結果
レジスタに不連続に分散させる並列サブワード命令を提
供する。好ましくは、結果は、オペランドレジスタと結
果レジスタとの間の情報の横方向移動を最小化するよう
に結果レジスタのビット位置の間で分散される。いずれ
にしても、分散は、「最大横方向移動」が、結果が連続
して格納される場合よりも小さくなるようなものである
べきである。本明細書では、結果の格納に使用されたビ
ット位置における少なくとも1つのギャップがある場合
に結果が格納され、好ましい実施形態では、2つの結果
ビット位置が連続することはない。
【0011】
【課題を解決するための手段】最大横方向移動を最小化
するために、サブワード演算の結果を、結果レジスタの
対応するサブワードロケーション内に格納することがで
きる。たとえば、複数の並列サブワード演算それぞれの
結果を、結果レジスタの対応するサブワードロケーショ
ンの最下位ビット位置に格納することができる。これに
より、最大横方向移動が1サブワード未満になることが
保証されるのに対し、上記関連技術では、少なくとも1
サブワード分、最大でデータパス全幅と同じだけの横方
向移動が必要である。
【0012】本発明は、「シフト」アプローチおよび
「ターゲッティング」アプローチを提供する。シフトア
プローチでは、レジスタの内容が、現在の演算の結果を
格納するとき、前の演算結果が保存されるようにシフト
される。たとえば、並列サブワード比較演算の結果とし
て、結果が結果レジスタのサブワードロケーションの最
下位ビット位置に格納され、その命令の次の繰り返しに
より、前の結果が結果レジスタサブワードロケーション
の次の最下位ビット位置に前の結果がシフトされ、現在
の並列サブワード比較演算の結果を結果レジスタサブワ
ードロケーションの最下位ビット位置に格納するものと
仮定する。このシフトアプローチの利点は、命令が繰り
返されるとき結果が自動的に組み合わされ、結果を組み
合わせるためのさらなる(たとえばOR)命令の必要性
がなくなることである。
【0013】「ターゲッティング」アプローチでは、複
数の命令それぞれが、結果を格納すべき不連続のビット
位置のセットを指定(暗黙的もしくは明示的に)する。
たとえば、ある命令が結果レジスタサブワードロケーシ
ョンの最下位ビットロケーションを指定し、別の命令が
サブワードロケーションの次の最下位ビットロケーショ
ンを指定し、以下同様である。この例では、各結果レジ
スタサブワードビット位置専用の1つの命令があり得
る。結果を異なるビットロケーションセットに格納する
ことによって、複数の並列サブワード命令の結果をシフ
トなしで組み合わせることができる。
【0014】本発明は、ターゲッティングアプローチの
「上書き」および「内容保存」変形を提供する。内容保
存変形では、結果の格納に使用されない結果レジスタビ
ット位置には手を付けずに残しておく。これにより、集
合的な結果がさらなる命令なしで組み合わせられるよう
に、連続した並列サブワード比較演算(異なるビット位
置セットを指定する)を同じ結果レジスタに書き込むこ
とができる。このアプローチは、シフトアプローチと同
等に、結果の組み合わせの達成に必要な命令の数を最小
化する。この場合、命令は結果のシフトを要求せず、他
方でシフトアプローチは、ロケーションの指定を要求し
ない。
【0015】上書き変形では、結果の格納に使用されな
いビット位置が、たとえばゼロで上書きされる。この変
形では、連続した並列サブワード演算の結果を、異なる
レジスタの異なる位置に書き込むことができ、シフトす
ることなく結果を組み合わせる(たとえば、論理和をと
ることにより)ことができる。結果を組み合わせるため
に別個の命令が必要であるため、ターゲッティングアプ
ローチの上書き変形では、ターゲッティングアプローチ
の内容保存変形ならびにシフトアプローチよりも多くの
命令が必要である。
【0016】タスクを完了するために必要な命令の数
は、常にパフォーマンスの最もよい指標であるわけでは
ない。いくつかの命令を並列に実行することができる場
合、「依存性深さ(dependency-depth)」のほうがよい
尺度であり得る。シフトアプローチでは、依存性深さは
命令の数に等しく、ターゲッティングアプローチでは、
並列サブワード結果が、異なるレジスタに書き込まれる
限り、依存性深さははるかに少ないはずである。
【0017】本発明によってもたらされる最大横方向移
動の劇的な低減は、命令実行に必要な時間の大幅な低減
に対応する。この低減を用いて、命令サイクルに割り当
てる時間を短縮し、また命令セットの結果に応じて、内
蔵したマイクロプロセッサのルーティング要件を低減す
ることができる。また、通常、異なる命令からの情報
は、重ならないビット位置セットに格納されるが、本発
明は、たとえば暗号化目的のために、重なったビット位
置への情報の格納を提供する。上記に加えて、または上
記に代わる他の利点および特徴は、添付図面を参照して
以下の説明から明白になろう。
【0018】
【発明の実施の形態】本発明によれば、コンピュータプ
ログラム100は、分散結果、上書き、ターゲッティン
グ並列サブワード比較命令PCompDOT0〜PCo
mpDOT7の命令サブセットから選択される命令を含
む。これらの命令は、以下のようにオペランド解析する
(parse)ことができる。すなわち、「並列サブワード比
較を行い(8ビットサブワードを使用して)、各並列サ
ブワード比較の結果を結果レジスタの対応するサブワー
ドの(n+1)番目の(n=0〜7)最下位ビット位置
に格納し、結果データの格納に使用されていない結果レ
ジスタビット位置にゼロを上書きする。」現在の比較演
算の場合、対応するサブワード内容が等しい場合には
「1」が格納され、他の場合には「0」が格納される。
しかし、他のサブワード比較命令は、他の関係、たとえ
ば「以上」等に基づいて「1」および「0」結果を割り
当てることができる。
【0019】連続したPCompDOT0およびPCo
mpDOT1を含むプログラム100のセグメントの演
算を図1に示す。(完全なレジスタでの値は16進数で
あるが、サブワード細部における値は二進数である)。
PCompDOT0の結果は結果レジスタRC0のサブ
ワード(バイト)の最下位ビットの間で分散されるが、
PCompDOT1の結果は結果レジスタRC1のサブ
ワードの2番目の最下位ビットの間で分散されることに
留意する。結果の格納に使用されないビットは、図1に
は“Z”で示すように、デフォルトのゼロが書き込まれ
る。8つの命令すべてならびに結果を組み合わせるため
のOR命令を含むより全体的なプログラムセグメントを
図2に示し、図3に示すデータを使用する。
【0020】これら命令は、図4に示すように、マイク
ロプロセッサ110およびメモリ112を備えたコンピ
ュータシステムAP1のコンテンツで実行される。メモ
リ112の内容は、プログラムデータ114およびプロ
グラム100を構成する命令を含む。マイクロプロセッ
サ110は、実行ユニットEXU、命令デコーダDE
C、レジスタRGS、アドレスジェネレータADG、お
よびルータRTEを備える。
【0021】概して、実行ユニットEXUが、プログラ
ム100に従ってデータ114に対して演算を行う。こ
のために、実行ユニットEXUは、アドレスバスADR
に沿ってアドレスジェネレータADGに要求される次の
命令またはデータのアドレスを生成するように命令する
ことができる(内部データバスDTBに付随する制御ラ
インを使用して)。メモリ112は、これに応答して、
要求されたアドレスに格納されている内容をデータおよ
び命令バスDIBに沿って供給する。
【0022】内部データバスDTBに付随するインジケ
ータラインに沿って実行ユニットEXUから受信される
インジケータによって決定されるように、ルータRTE
が、命令バスINBを介して命令を、内部データバスD
TBに沿ってデータを命令デコーダDECにルーティン
グする。デコードされた命令は、制御ラインCCDを介
して実行ユニットEXUに供給される。通常、データは
命令に従ってレジスタRGSに/から転送される。
【0023】マイクロプロセッサ110には、命令デコ
ーダDECがデコードし、実行ユニットEXUが実行す
ることのできる命令INSの命令セットが関連付けられ
る。プログラム100は、命令セットINSから選択さ
れる順序付き命令セットである。解説目的のために、マ
イクロプロセッサ110、その命令セットINS、およ
びプログラム100は、後述するすべての命令の例を提
供する。本発明はまた、本明細書に述べる新規命令のす
べてではなくいくつかを使用する実施形態も提供する。
【0024】図2に示すプログラムセグメントは、8つ
すべての命令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
に示される。
【0025】本願を通して提示し、使用するデータは、
本発明の命令の説明を容易にするように選択されたもの
であり、このデータは図3に示される。オペランドレジ
スタRA0〜RA7およびRB0〜RB7中のデータは
16進数フォーマットであるが、結果は2進数フォーマ
ットで示される。結果のビット値は離間されて、結果レ
ジスタ中で分散されることを示す。
【0026】本発明によって提供される最大横方向移動
の低減を図5に示す。通常のオペランドサブワードにつ
いて、本発明の分散アプローチに必要な最大横方向移動
を実線の矢印で示し、関連技術の連続アプローチに必要
な最大横方向移動を点線の矢印で示す。本発明では、情
報をサブワード内に残すことができるため、最大横方向
移動は1サブワード未満である。結果を連続して格納す
ると、最大横方向移動は1サブワードを越えることにな
る。たとえば、結果が結果レジスタの最下位サブワード
に連続して格納される場合、最上位オペランドビットに
関連する横方向移動は、レジスタ全体から1サブワード
を差し引いたものである。したがって、本発明は、情報
の最大横方向移動を大幅に低減し、レジスタ間のルーテ
ィングをより単純にし、データの移動をより高速にし、
したがってプロセッサパフォーマンスをより高くするこ
とができる。
【0027】プログラム100の別のセグメントは、分
散結果、内容保存、ターゲッティング並列サブワード比
較命令PCompDP0〜PCompDP7を使用す
る。これら命令は以下のようにオペランド解析すること
ができる。すなわち、「並列サブワード比較を行い(8
ビットサブワードを使用して)、各並列サブワード比較
の結果を結果レジスタの対応するサブワードの(n+
1)番目の(n=0〜7)最下位ビット位置に格納し、
結果データの格納に使用されていない結果レジスタビッ
ト位置を変更せずにそのままにする。」PCompDP
0およびPCompDP1の連続した対の演算を図7に
示す。PCompDP0の結果は、結果レジスタRC0
のサブワードの最下位ビットに格納される(PComp
DOT0の場合と同様に)。しかし、結果の格納に使用
されないビット位置は、図6にZの代わりにXを使用し
て示すように、レジスタRC0に予め存在するデータで
埋められる。
【0028】図1の上書き命令と図6の内容保存命令と
の違いは、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)。
【0029】並列サブワード比較命令のターゲッティン
グ変形では、結果ロケーションを暗黙的あるいは明示的
に指定しなければならない。これは、各サブワードロケ
ーションごとに異なる命令を使用することによって暗黙
的に指定することができる。この目的のために命令中に
確保されたフィールドに入力された値によって明示的に
指定することができる。代替として、命令が、ロケーシ
ョンを示す値が格納されるロケーションを明示的または
暗黙的にポイントすることができる。たとえば、命令
は、結果を格納すべきサブワードロケーションを示す値
を格納するレジスタをポイントすることができる。別の
代替では、結果を格納すべきレジスタにサブワードロケ
ーションを結び付ける。たとえば、レジスタRC0に格
納される結果を最下位サブワード位置に格納し、レジス
タRC1に格納された結果を2番目の最下位サブワード
位置に格納することができる。
【0030】分散した、内容保存、シフト並列サブワー
ド比較命令PCompDPSを使用するプログラムセグ
メントを図8および図9に示す。この命令は、以下のよ
うにオペランド解析することができる。すなわち、「並
列サブワード比較を行い(8ビットサブワードを使用し
て)、各並列サブワード比較の結果を結果レジスタの対
応するサブワードの最下位ビット位置に格納し、予め存
在するデータを1ビット位置分左にシフトし、各サブワ
ードの予め存在する最上位ビットをドロップする。」こ
の場合、結果の宛先は1つしかないため、命令も1つし
かない(2つのターゲッティング命令サブセットそれぞ
れに8つの命令があることとは対照的に)。
【0031】図8に示すように、PCompDPSの結
果は、図6のPCompDPT0の結果と同一に見え
る。しかし、予め存在するデータを所定位置にしたまま
にするのではなく、PCompDPSは予め存在するデ
ータを左に2ビットシフトする。各サブワードごとの予
め存在する最上位データビットはドロップされ、空いた
サブワードの最下位ビット位置が命令結果で埋められ
る。
【0032】このシフトは、図8における第2のPCo
mpDPSと合わせてより明確に例示する。第1のPC
ompDPSの結果は左に1ビットシフトされ、第2の
PCompDPSの結果はここでも、サブワードの最下
位ビット位置に格納されることに留意する。5番目の最
下位サブワード(図8において強調される)の2つの最
下位ビット(これもまた図8において強調される)の検
査は、PCompDPT1の対応する結果(図6におい
て強調される)と異なる。明らかに、情報は同じである
が、PCompDPTnとPCompDPSに関連する
順序付け規則が異なるため、別様に表現される。内容は
シフトされて保存されるため、連続したPCompDP
S命令が同じレジスタに書き込むことができ、よって8
つの命令の後に、所望の組み合わせられた結果が得られ
る。内容保存ターゲッティング命令の場合と同様に、プ
ログラムセグメント長および依存性深さは双方とも8で
ある。
【0033】2つの連続した比較(または他の特徴付
け)命令は同じタイプのものと意図するが、本発明では
同じタイプのものである必要はない。たとえば、シフト
タイプ命令はターゲッティング命令の後であってもよ
く、またその逆であってもよい。さらに、2つの命令が
必要とする演算は同じである必要はなく、たとえば、一
方が二値比較であり、他方が「ゼロに等しい(equals z
ero)」命令であってもよい。
【0034】したがって、本発明は、Ruby Lee
の出願(代理人整理番号10971550−1)に開示
されるもののように、並列サブワード比較命令に必要な
命令の数を大幅に低減することができる異なるタイプの
命令に対応する(provide for)。例示した実施形態で
は、レジスタは64ビットであり、サブワードは8ビッ
トであり、よってレジスタ当たり8つの互いに重ならな
いサブワードロケーションがある。このレジスタおよび
サブワードサイズの選択により、結果は1サブワード長
である。より長い、たとえば16ビットのサブワードが
使用される場合、64ビットレジスタ当たり4つのみの
16ビットサブワード、ひいては結果当たり4ビットし
かない。したがって、16の互いに重ならない4ビット
結果ロケーションがレジスタに存在しうる。命令セット
は、並列サブワード比較演算にこれらのうちいずれかを
選択できるように設計することができる。よって、この
ような命令の1つのフォーマットは、PComp(第1
のオペランドレジスタ、第2のオペランドレジスタ、結
果レジスタ、サブワードサイズ、結果レジスタにおける
結果のターゲットロケーション)であることができる。
【0035】上記説明では、異なる演算の結果を、同じ
あるいは異なる結果レジスタの異なるビット位置に格納
した。しかし、暗号化アプリケーションでは、結果格納
に使用するビット位置セットがいくらか重なっている必
要があり得る。たとえば、ターゲットビット位置のセッ
トが重なってもよく、別の例では、シフト命令が以前の
内容のすべてではなくいくらかをシフトすることができ
る。結果が同じレジスタに書き込まれる場合、前の結果
のいくらかに上書きされ、結果が異なるレジスタに書き
込まれる場合、たとえばXOR命令を使用して結果を組
み合わせる場合、いくらかの情報をマスクすることがで
きる。失われた情報は、意図した受信者しか利用するこ
とができない暗号化鍵に従って別個に供給することがで
きる。
【0036】本発明は、比較演算のみならず、単項演
算、2進演算、およびより高次の演算を含む他の演算に
も適用される。レジスタ長は変更可能であり、2のべき
乗である必要はない。サブワード長も変更可能であり、
2のべき乗である必要はない。演算結果によって決定さ
れない結果レジスタのビットは、変更しないままにして
もよく、またゼロあるいは1のいずれかに設定してもよ
い。例示した実施形態に対するこれらおよび他の変更お
よび変形は本発明によって提供され、本発明の範囲は併
記の特許請求の範囲によってのみ限定される。
【0037】
【発明の効果】以上説明したように、本発明に係る並列
サブワード命令によれば、結果を結果レジスタに不連続
に分散させることができる。また、本発明に係る並列サ
ブワード命令によれば、結果は、オペランドレジスタと
結果レジスタとの間の情報の横方向移動を最小化するよ
うに結果レジスタのビット位置の間で分散される。ま
た、本発明に係る並列サブワード命令によれば、分散
を、「最大横方向移動」が、結果が連続して格納される
場合よりも小さくすることができる。また、本発明に係
る並列サブワード命令によれば、結果の格納に使用され
たビット位置における少なくとも1つのギャップがある
場合に結果が格納され、2つの結果ビット位置が連続す
ることはない。
【図面の簡単な説明】
【図1】本発明による一対の分散した上書きターゲッテ
ィング命令を含む第1のコンピュータプログラムセグメ
ントの一部の概略図である。
【図2】本発明によるサブワード比較結果の組み合わせ
に使用する8つの並列サブワード比較命令およびOR命
令を示す図1のプログラムセグメントのより全体的な図
である。
【図3】本発明の演算を説明するために使用する例示的
なオペランドデータおよび結果を提示する。
【図4】図1のコンピュータプログラム命令を実行する
システムの概略図である。
【図5】本発明によって提供される最大横方向移動と、
ある関連技術の並列サブワード比較命令に必要な最大横
方向移動とを比較する。
【図6】分散内容保存ターゲッティング命令の連続した
対の演算を示す第2のコンピュータプログラムセグメン
ト対の概略図である。
【図7】本発明による8つの連続した分散内容保存ター
ゲッティング命令を包含する図6のセグメントのより全
体的な図である。
【図8】本発明による一対の分散シフト命令を含む第3
のコンピュータプログラムセグメント対の概略図であ
る。
【図9】本発明による8つの連続した分散シフト命令を
示す第3のコンピュータプログラムセグメントのより全
体的な図である。
【符号の説明】
100・・・プログラム命令、110・・・マイクロプ
ロセッサ、112・・・メモリ、114・・・プログラ
ムデータ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】マイクロプロセッサ(110)であって、 デコードするための命令デコーダ(DEC)と、 結果が結果レジスタ(RCO)に不連続に分散されるよ
    うに少なくとも1つの並列サブワード命令(PComp
    DOTn、PCompDPTn、PCompDPS)を
    実行する実行ユニット(EXU)と、 を備えるマイクロプロセッサ。
  2. 【請求項2】前記結果は、情報の最大横方向転送が前記
    結果が連続して格納される場合よりも小さくなるように
    不連続に分散される請求項1記載のマイクロプロセッ
    サ。
  3. 【請求項3】前記命令はオペランドの複数のオペランド
    サブワードに対する演算を必要とし、 前記結果レジスタは、複数の互いに重ならない連続した
    サブワードロケーションを有し、 該サブワードロケーションはそれぞれ前記オペランドサ
    ブワードの1つに対応し、 前記命令は、各オペランドサブワードの結果を前記結果
    レジスタの対応するサブワードロケーションに格納させ
    る請求項1記載のマイクロプロセッサ。
  4. 【請求項4】前記命令は、結果の格納に使用されない前
    記結果レジスタのビット位置にデータを保存する請求項
    1記載のマイクロプロセッサ。
  5. 【請求項5】前記命令は、結果の格納に使用されない前
    記結果レジスタのビット位置にデータを上書きする請求
    項1記載のマイクロプロセッサ。
  6. 【請求項6】コンピュータプログラム(100)であっ
    て、 結果を結果レジスタに不連続に分散させる少なくとも1
    つの並列サブワード命令(PCompDOTn、PCo
    mpDPTn、PCompDPS)を含むコンピュータ
    プログラム。
  7. 【請求項7】前記命令は、情報の最大横方向転送が前記
    結果が連続して格納される場合よりも小さくなるように
    不連続に前記結果を分散する請求項6記載のコンピュー
    タプログラム。
  8. 【請求項8】前記命令はオペランドの複数のオペランド
    サブワードに対する演算を必要とし、 前記結果レジスタは、複数の互いに重ならない連続した
    サブワードロケーションを有し、 該サブワードロケーションはそれぞれ前記オペランドサ
    ブワードの1つに対応し、 前記命令は、各オペランドサブワードの結果を前記結果
    レジスタの対応するサブワードロケーションに格納させ
    る請求項6記載のコンピュータプログラム。
  9. 【請求項9】前記命令は、結果の格納に使用されない前
    記結果レジスタのビット位置にデータを保存する請求項
    6記載のコンピュータプログラム。
  10. 【請求項10】前記命令は、結果の格納に使用されない
    前記結果レジスタのビット位置にデータを上書きする請
    求項6記載のコンピュータプログラム。
JP2003021481A 2002-03-30 2003-01-30 結果が分散される並列サブワード命令 Expired - Fee Related JP3958224B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179076A (ja) * 2013-03-14 2014-09-25 Intel Corp 複数データ要素対複数データ要素比較プロセッサ、方法、システム、および命令

Families Citing this family (16)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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