JP2004511039A - 単一命令多数データ処理 - Google Patents
単一命令多数データ処理 Download PDFInfo
- Publication number
- JP2004511039A JP2004511039A JP2002533059A JP2002533059A JP2004511039A JP 2004511039 A JP2004511039 A JP 2004511039A JP 2002533059 A JP2002533059 A JP 2002533059A JP 2002533059 A JP2002533059 A JP 2002533059A JP 2004511039 A JP2004511039 A JP 2004511039A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- data processing
- data
- processing apparatus
- portions
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 53
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 3
- 238000000034 method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000003672 processing method Methods 0.000 claims 2
- 230000001737 promoting effect Effects 0.000 claims 1
- 230000033001 locomotion Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
-
- 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/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/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
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3828—Multigauge devices, i.e. capable of handling packed numbers without unpacking them
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49931—Modulo N reduction of final result
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
Description
本発明はデータ処理システムの分野に関する。更に詳細には、本発明は単一命令多数データ型式の処理を与えることを目的とするデータ処理システムに関する。
【0002】
単一命令多数データ演算は単一の命令に従って操作されるデータワードが実際は、それぞれのデータ値に独立に実行される特定の操作による、それらデータワード内の多数のデータ値を表すという公知の技術である。この型式の命令はデータ処理システムの操作効率を向上することが可能で、特にコードの大きさを減少し処理速度を速くするのに有用である。この技術は、デジタル信号処理応用におけるように、物理的信号を表すデータ値を操作する分野に、それに限定されることはないが広く利用されている。
【0003】
データ処理システムのデータ処理能力を延ばすとき、重要な考慮事項は追加の処理能力を支持するために導入される大きさ、複雑性、費用、及び動力消費のオーバヘッドの大きさである。処理能力を増加しながら、一方追加のオーバヘッドを減少できる方策が極めて有用である。
【0004】
1つの態様において、本発明はシフト回路、演算回路、及び命令に応答して前記シフト回路、演算回路を制御してデータワードRn及びデータワードRmに演算を実行する命令デコーダを含み、前記演算は、前記データワードRmの非隣接の複数の多数ビット部分を選択して、各々ビット長Aをもった複数の多数ビット部分を形成し、前記複数の多数ビット部分を共通のシフト量だけシフトビット位置まで選択的にシフトし、前記複数の多数ビット部分の各々を前記ビット長Aからビット長Bに増進(promote)して複数の増進された多数ビット部分を形成し、該増進された多数ビット部分が互いに接合して増進されたデータワードPを形成するようにし、さらに前記増進されたデータワードPとデータワードRnとからのビット長Bのそれぞれのビット位置部分を入力オペランドとして用いて複数の独立の演算操作を実行して、結果としてデータワードRdを形成する、ことにより与えられた値を発生する。
【0005】
本発明はデータ処理システムに新しいデータ処理命令を与え、それはデータワード内に保持されるデータ値をアンパックするのに役立ち、またアンパックされたデータ値に単一命令・多数データ型式の演算処理を実行するのに役立つ。本発明はデータワード内の非隣接データ値をアンパックすることにより、隣接するデータ値をアンパックする従来のアンパック命令よりも相当に少ない追加のオーバヘッドが実現される。特に、始めに隣接していたデータ値のビット位置を拡散することの出来る追加のデータ通路の必要性が消滅される。実際に例えば、既存のマスク回路やワードシフト回路が既に使用されている。更に、アンパック機能の簡易化は、単一命令による処理サイクル強制の問題を導入することなく、オペランドに演算処理を実行するのに単一命令を用いることを可能にしている。
【0006】
本発明はその一般的形において、その増進された長さに比較して任意の長さの非隣接多数ビット部分の選択に適用されるが、特に効率的であり都合の良い実施は選択された多数ビット部分が増進された多数ビット部分の長さの半分であり、その増進された多数ビット部分が増進されたデータワード内で互いに接合されて、その演算の入力データワードの長さに等しい長さをもつようにされた場合である。
【0007】
選択された多数ビット部分の長さの増進が各種の方法で行われることは理解されるであろう。それを実行する2つの特に有用な方法は、符号延長(sign extension)または先行ゼロ延長(leading zero extension)である。
【0008】
アンパックと組合される演算操作は各種の形を取りうることは理解されるであろう。しかしながら特に好ましい実施例は、演算操作がそれぞれの増進された部分に独立に適用される加算操作である場合である。この命令は、MPEG運動補正計算の一部のような絶対差(absolute differences)の合計の計算のときのような、多くの実データ処理(real life data processing)条件において特に有用である。
【0009】
前述のように、本発明はデータ処理システム内に存在する処理資源をより有効な方法で使用することができる。これは特に、シフト回路がデータ通路内で演算回路の上流に設けられているシステムの場合に当てはまる。そのような構成は、任意の選択的シフトをもったアンパックを演算操作の前に実行することを可能にする。
【0010】
好ましい実施例において、追加の処理サイクル時間制限を課すことなしに好ましい機能性(functionality)を与えるため、選択された多数ビット部分の長さを(例えば、符号延長または先行ゼロ延長により)増進する増進回路はシフト回路の一部と並列に設けられる。そして特定される共通シフト量の範囲は、シフト回路の第1の部分が増進回路と組み合わせて使用されて、伝達に取られる時間データ値を他の操作において全シフト回路を通して伝達するために既に許容された値を越えて延長すること無しに要求された処理を実行できるように限定される。
【0011】
他の観点から見ると、本発明はデータ処理の1つの方法を提供し、その方法は、前記データワードRmの複数の非隣接多数ビット部分を選択し、該複数の多数ビット部分を選択的にシフトビット位置まで共通シフト量だけシフトして複数のビット長Aの多数ビット部分を形成すること;前記複数の多数ビット部分の各々を前記Aのビット長からBのビット長まで増進して、前記多数ビット部分が互いに接合して増進されたデータワードPを形成するようにすること;及び前記増進されたデータワードPとデータワードRnとからのビット長Bのそれぞれのビット位置部分(bit position portions)を入力オペランドとして使用して複数の独立の演算操作を行ってその結果としてデータワードRdを形成すること;により所与の結果を生成する命令をデコードし、実行する工程を含む。
【0012】
本発明はまた、上述の操作型式をもったデータ処理命令を含む、汎用コンピュータを上記技術に従って制御するコンピュータ・プログラムを格納する、コンピュータ・プログタム製品を提供する。
【0013】
本発明の実施例を、例示の目的で、添付の図面を参照して説明する。
【0014】
図1はADD8T016と呼ばれる第1のSIMD型データ処理命令の動作を説明する。この命令は、実行される処理の1部として長さの延長された入力オペランド・データワードの各々の選択された部分の前部に付加された延長の性質に対応する符号のある変数(variant)及び符号の無い変数の両者に用いられる(comes in)。第1の入力オペランドデータワードはデータ処理装置のレジスタRmに格納される。データワードは4つの8−ビット部分p0,p1,p2,p3から形成される。命令に8−ビット部分の右回り操作(rotate right operation)が特定されているか否かにより、多数ビット部分p0とp2、または多数ビット部分p1とp3がレジスタRm内の入力データワードから選択される。任意の右回り操作は望むなら16及び24の量でも良い。これは結果として、高次及び低次の部分が取り換えられる。図1に示される例では非隣接部分p0,p2が回転しない(シフトされた)変数に選択され、他の変数は破線で示される。
【0015】
多数ビット部分が選択されたとき、各々はゼロ延長、または符号延長を用いて8ビットから16ビットに増進される。図に示される増進されたデータワードPの陰影の部分はこれらの延長された部分を示す。
【0016】
第2の入力データワードはレジスタRnに格納され、2つの16−ビットデータ値を含む。図示される例は単一命令多数データ付加操作を実行して、延長されたp0値がRnの低位16ビット値a0に加算される。一方延長されたp2値がRn値の高位16ビット部分a2に加算される。この型式の加算は、その結果の第15番と16番とのビットの間で分割されるキャリーチェーン(carry chain)をもった全幅加算(full width addition)と考えられる。他のSIMD型演算操作、例えばSIMD減算を実行しても良いことは理解されるであろう。
【0017】
図1の命令によって発生する出力データワードは低位の16ビットにp0とa0の和を発生し、一方上位16ビットはp2とa2の和を含む。この命令は特にそれぞれのデータ値の間の絶対差(absolute differences)の合計を決定する操作に有利であり、それによりa0とa2は、値p0〜p3とがピクセル差の値のような信号差の値の個々の絶対値を表す累計を表す。この型式の操作は一般にMPEG運動推定処理に必要であり、この操作を高速度で実行する能力は非常に有用である。
【0018】
図2は図1の命令を実行するのに使用されるデータ処理システムのデータ通路2の例を示す。レジスタバンク4は処理される32−ビットのデータワードを保持する。RmとRnとに格納される両入力オペランド・データワードはこのデータバンクから読出され、出力データワードはレジスタバンク4のレジスタRdに書き戻される。データ通路2はシフト回路6、加算回路8を含む。このシステムにより与えられる多くの他のデータ処理命令はこのシフト回路6と加算回路8とを各種の異なる方法で利用する。このようなデータ通路2はデータ値をシフト回路6及び加算回路8を通過して伝達するのに必要な時間がデータ処理サイクル時間に良く調和するように設計される。データ通路2のハードウエア資源の効率的利用がシステムでなされ、そこで資源がデータ通路2を伝達する各データワードの大部分について活性であるようにされる。符号/ゼロ延長及びマスク回路10がシフト回路6の低位部分と並列に設けられる。多重化装置12は全シフト回路6の出力または符号/ゼロ延長及びマスク回路10の出力を加算回路8の入力の1つとして選択することができる。加算回路8の他の入力は、Rnの入力オペランド・データワードである。
【0019】
図1の命令を実行するとき、Rmの入力オペランドデータワードがシフト回路6に与えられ、そこで選択的8−ビット桁の右シフトがそのパラメータが該命令内に特定されていたか否かに従って前記データワードに適用される。16及び24ビット桁の選択的右回転が適用されても良い。多数レベルの多重化装置に基づくシフト装置内で、そのように制限された可能的シフト(restricted possibility shift)が比較的簡単にシフト回路6の第1の部分から与えられる(例えば、32−ビットのシステムの場合には、多重化装置の第1のレベルが16ビットのシフトを与え、多重化装置の第2のレベルが8ビットのシフトを与える)。従って、選択的に特定量シフトされた値がシフト回路6を介して分岐路から取り出されて、符号/ゼロ延長及びマスク回路10に与えられる。この回路10はRmのシフトされるかもしれない入力オペランド・データワードの選択されなかった多数レベル部分をマスクして、これらマスクされた部分をそれぞれの選択された多数ビット部分のゼロまたは符号の延長と置き換えるように作動する。符号/ゼロ延長及びマスク回路10の出力は多重化装置12を通って加算回路8の第1の入力に送られる。加算回路8の第2の入力はRnの入力オペランド・データワードである。加算回路8はその入力にSIMD加算(すなわち、2つの並列の16−ビットがビット位置15と16との間で効率的に区切られたキャリーチェインをもって加算される)を実行する。加算回路8の出力はレジスタバンク4のレジスタRdに書き戻される。
【0020】
別の実施例として、符号/ゼロ延長及びマスク回路10はその入力としてRm(回転しない)を取り込むようにしても良い。そのときは、それ自身で4つの可能性のある符号ビット(possible sign bits)に0、8、16または24の回転を実行し、マスクを作っても良い。シフト回路6は並列にRmの全32ビットをシフトするように作動する。
【0021】
図3、図4は半ワードパッキングSIMD型式命令の2つの変数を示す。図3のPKHTB命令はレジスタRnに格納されている1つの入力オペランド・データワードの固定された上半分と、レジスタRmに格納されている第2の入力オペランド・データワードの可変位置半ビット部分を取り込み、これらを出力データワードの上半分と底半分とに結合して、レジスタRdに格納する。命令PKHBTはRnの入力オペランド・データワードの底半分とRmの第2の入力オペランド・データワードの可変位置半ワード長さ部分とを取り込みこれらをそれぞれRdの出力データワードの底半分と上半分とに結合する。何れの場合も、Rnの入力オペランド・データワードの選択された部分は出力データワードRdのその位置においてシフトされないことが分かるであろう。これは、この部分が、非常に僅かな追加のハードウエアオーバヘッドをもって簡単なマスク回路または選択回路により得ることを可能にする。図3の命令の可変位置半ワード部分は、そのワードがkビット位置だけ右にシフトされた後にRmのワードビット位置15乃至0から選択される。同様に、図4の命令に従って選択されたRmの半ワード長可変位置部分は、Rmのワードがkビット位置だけ左にシフトされた後、前記ワードのビット位置31乃至16から選択される。
【0022】
図3、図4の命令のパッキング機能と組み合わせて設けられた可変シフトは固定点計算値の処理の間に発生するそれらの値のQ値の変化を調整するのに特に有用である。
【0023】
図5は図3、図4の命令を実行するのに特に適したデータ通路14を図示する。レジスタバンク16は前述のように入力オペランド・データワード、この例においては32−ビットのデータワードを与え、出力データワードを格納する。データ通路はシフト回路18、加算回路20、並びに選択及び結合回路22を含む。
【0024】
作動の場合、Rnのシフトされない入力オペランド・データワードはレジスタバンク16から選択及び結合論理22に直接送られる。図3の命令の場合、Rnの最上位16ビットが選択されて出力データワードRd内の対応ビットを形成する。図4の命令の場合、出力データワードRdの最下位ビットを形成するため選択され送られるのはRnの入力オペランド・データワードの最下位16ビットである。Rmの入力オペランド・データワードは全シフト回路18を通過する。図3の命令の場合、kビット桁の算術的右シフトが適用されシフト回路18の出力から最下位16ビットが選択及び結合回路22により選択されRdの出力データワードの最下位16ビットを形成する。図4の命令の場合、シフト回路18はkビット桁の左論理シフトを与え、その結果を選択及び結合回路22に与える。選択及び結合回路22はシフト回路18の出力の最上位16ビットを選択して、それを用いて出力データワードRdの最上位16ビットを形成する。
【0025】
選択及び結合回路22が加算回路20と並列の位置に設けられることが分かるであろう。従って、データ通路14は全シフト及び加算操作が1処理サイクルの間に実行できるように注意深く設計されて、選択及び結合の比較的素直で直線的(straight forward)な操作は、処理サイクルの制限を課することなく加算回路20の作動に通常許される期間内に処理される。
【0026】
上記に説明し、請求項に限定されるデータ処理命令は、達成した結果値によって限定されていることは理解されるであろう。同じ結果値は異なる処理工程及び工程の順序により達成できることが理解されるであろう。本発明は単一の命令を用いて同じ最終結果を発生するこれら変形の全てを含むものである。
【図面の簡単な説明】
【図1】
第1のSIMD型式のデータ処理命令の動作を図式に説明する図面。
【図2】
図1のデータ処理命令を実行するのに適した型式の処理装置内のデータ通路を図式に説明する図面。
【図3】
更に別のSIMD型式の第1の変形を図式に説明する図面。
【図4】
更に別のSIMD型式の第2の変形を図式に説明する図面。
【図5】
図3、図4のデータ処理命令を実行するのに適したデータ処理システムのデータ通路を図式に説明する図面。
Claims (15)
- シフト回路;
演算回路;及び
命令に応答して前記シフト回路及び演算回路とを制御してデータワードRnとデータワードRmとに演算を実行する命令デコーダ;
を含むデータ処理装置にして、前記演算が、
前記データワードRmの複数の非隣接多数ビット部分を選択して、それぞれビット長Aの複数の多数ビット部分を形成すること;
前記複数の多数ビット部分を選択的にシフトビット位置まで共通シフト量だけシフトすること;
前記複数の多数ビット部分の各々を前記ビット長Aからビット長Bまで増進して複数の増進された多数ビット部分を形成し、該増進された多数ビット部分が互いに接合されて増進されたデータワードPを形成するようにすること;及び
前記増進されたデータワードPと前記データワードRnとからそれぞれビット長さBのビット位置部分を入力オペランドとして用いて複数の独立の演算操作を実行してその結果によるデータワードRdを形成すること;
の工程によって1つの値を生成するようにした、前記データ処理装置。 - 前記ビット長BがB=2*Aである、請求項1に記載のデータ処理装置。
- 前記複数の多数ビット部分がシフトビット位置までシフトされて、多数ビット部分の最低位ビット位置がゼロ番のビット位置から延長される、請求項1及び2のいずれかに記載のデータ処理装置。
- 前記多数ビット部分をビット長Aからビット長Bに増進する工程が、
前記多数ビット部分をビット長Bまで符号延長すること;及び
前記多数ビット部分をビット長Bまでゼロ延長すること;
の1方を含む、請求項1、2、3のいずれかに記載のデータ処理装置。 - 前記複数の独立の演算操作が独立の加算操作である、請求項1〜4のいずれかに記載のデータ処理装置。
- 前記データワードがCのビット長をもち、C=N*Bであり、Nが1より大きい整数である、請求項1〜5のいずれかに記載のデータ処理装置。
- C=B*2である、請求項2または請求項6に記載のデータ処理装置。
- B=16,A=8である、請求項1〜7のいずれかに記載のデータ処理装置。
- 前記共通シフト量がB−Aである、請求項1〜8のいずれかに記載のデータ処理装置。
- 前記命令が単一命令・多数データ命令である、請求項1〜9のいずれかに記載のデータ処理装置。
- 前記命令がデータ値アンパック操作を演算操作と組合すものである、請求項1〜10のいずれかに記載のデータ処理装置。
- 前記シフト回路が前記データ処理装置のデータ通路の前記演算回路の上流にある、請求項1〜11のいずれかに記載のデータ処理装置。
- 前記多数ビット部分をビット長Aからビット長Bまで増進するように作動する増進回路が前記シフト回路の1部分に並列に配置され、前記シフト回路が、前記命令を実行するとき前記シフト回路を通るデータ値に、他の命令を実行するとき前記シフト回路により与えられる共通シフト量の範囲に比較して制限された範囲の共通シフト量を与えるように作動する、請求項1〜12のいずれかに記載のデータ処理装置。
- 1つの値を発生する命令をデコードし、実行する工程を含むデータ処理の方法において、前記1つの値が、
前記データワードRmの複数の非隣接の多数ビット部分を選択して複数のビット長Aの多数ビット部分を形成すること;
前記複数の多数ビット部分を共通のシフト量だけシフトビット位置まで選択的にシフトすること;
前記複数の多数ビット部分の各々を前記ビット長Aからビット長Bまで増進して複数の増進された多数ビット部分を形成し、前記増進された多数ビット部分が互いに接合して増進されたデータワードPを形成するようにすること;及び
前記増進されたデータワードPと前記データワードRnとからの、それぞれビット長Bのビット位置部分を入力オペランドとして使用して複数の独立の演算操作を実行し、その結果としてデータワードRdを形成すること;
の工程によって得られる、前記データ処理の方法。 - 請求項14に記載の方法を実行するようにコンピュータを制御するコンピュータプログラムを含む、コンピュータプログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0024311.3 | 2000-10-04 | ||
GB0024311A GB2367650B (en) | 2000-10-04 | 2000-10-04 | Single instruction multiple data processing |
PCT/GB2001/003744 WO2002029553A1 (en) | 2000-10-04 | 2001-08-21 | Single instruction multiple data processing |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004511039A true JP2004511039A (ja) | 2004-04-08 |
JP2004511039A5 JP2004511039A5 (ja) | 2012-11-22 |
JP5133491B2 JP5133491B2 (ja) | 2013-01-30 |
Family
ID=9900674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002533059A Expired - Lifetime JP5133491B2 (ja) | 2000-10-04 | 2001-08-21 | 単一命令多数データ処理 |
Country Status (11)
Country | Link |
---|---|
US (1) | US6999985B2 (ja) |
EP (1) | EP1323031B1 (ja) |
JP (1) | JP5133491B2 (ja) |
KR (1) | KR100880614B1 (ja) |
CN (1) | CN1196998C (ja) |
GB (1) | GB2367650B (ja) |
IL (2) | IL151395A0 (ja) |
MY (1) | MY129332A (ja) |
RU (1) | RU2279706C2 (ja) |
TW (1) | TW548587B (ja) |
WO (1) | WO2002029553A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003114323A (ja) * | 2001-10-04 | 2003-04-18 | Bridgestone Corp | 近赤外線吸収フィルム |
JP3857614B2 (ja) * | 2002-06-03 | 2006-12-13 | 松下電器産業株式会社 | プロセッサ |
US20030231660A1 (en) * | 2002-06-14 | 2003-12-18 | Bapiraju Vinnakota | Bit-manipulation instructions for packet processing |
US8082419B2 (en) | 2004-03-30 | 2011-12-20 | Intel Corporation | Residual addition for video software techniques |
US7840954B2 (en) * | 2005-11-29 | 2010-11-23 | International Business Machines Corporation | Compilation for a SIMD RISC processor |
US8290095B2 (en) * | 2006-03-23 | 2012-10-16 | Qualcomm Incorporated | Viterbi pack instruction |
US8493979B2 (en) * | 2008-12-30 | 2013-07-23 | Intel Corporation | Single instruction processing of network packets |
US8495341B2 (en) * | 2010-02-17 | 2013-07-23 | International Business Machines Corporation | Instruction length based cracking for instruction of variable length storage operands |
GB2481384B (en) * | 2010-06-21 | 2018-10-10 | Advanced Risc Mach Ltd | Key allocation when tracing data processing systems |
EP2691849B1 (en) * | 2011-03-30 | 2014-12-03 | Intel Corporation | Simd integer addition including mathematical operation on masks |
US8604946B2 (en) * | 2011-04-08 | 2013-12-10 | Panasonic Corporation | Data processing device and data processing method |
US20130113809A1 (en) * | 2011-11-07 | 2013-05-09 | Nvidia Corporation | Technique for inter-procedural memory address space optimization in gpu computing compiler |
CN103092571B (zh) * | 2013-01-10 | 2016-06-22 | 浙江大学 | 支持多种数据类型的单指令多数据算术单元 |
KR102182299B1 (ko) * | 2019-07-24 | 2020-11-24 | 에스케이텔레콤 주식회사 | 시프트 연산 장치 및 그의 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0916397A (ja) * | 1995-06-29 | 1997-01-17 | Hewlett Packard Co <Hp> | 複数のコンピュータ・ワードにパックされている複数のサブ・ワード・アイテムの選択混合システム |
JPH10145591A (ja) * | 1996-09-05 | 1998-05-29 | Adobe Syst Inc | 効率的なグレイタイル格納 |
JPH11272546A (ja) * | 1998-03-23 | 1999-10-08 | Nec Corp | 可変長レジスタ装置 |
US6061783A (en) * | 1996-11-13 | 2000-05-09 | Nortel Networks Corporation | Method and apparatus for manipulation of bit fields directly in a memory source |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4785393A (en) * | 1984-07-09 | 1988-11-15 | Advanced Micro Devices, Inc. | 32-Bit extended function arithmetic-logic unit on a single chip |
ATE180907T1 (de) * | 1991-10-29 | 1999-06-15 | Advanced Micro Devices Inc | Arithmetik-logik-einheit |
US6237016B1 (en) * | 1995-09-05 | 2001-05-22 | Intel Corporation | Method and apparatus for multiplying and accumulating data samples and complex coefficients |
US5835782A (en) * | 1996-03-04 | 1998-11-10 | Intel Corporation | Packed/add and packed subtract operations |
US6081824A (en) * | 1998-03-05 | 2000-06-27 | Intel Corporation | Method and apparatus for fast unsigned integral division |
US6338135B1 (en) * | 1998-11-20 | 2002-01-08 | Arm Limited | Data processing system and method for performing an arithmetic operation on a plurality of signed data values |
-
2000
- 2000-10-04 GB GB0024311A patent/GB2367650B/en not_active Expired - Lifetime
-
2001
- 2001-08-21 WO PCT/GB2001/003744 patent/WO2002029553A1/en active Application Filing
- 2001-08-21 EP EP01960902.3A patent/EP1323031B1/en not_active Expired - Lifetime
- 2001-08-21 RU RU2002124769/09A patent/RU2279706C2/ru not_active IP Right Cessation
- 2001-08-21 CN CNB01810648XA patent/CN1196998C/zh not_active Expired - Lifetime
- 2001-08-21 IL IL15139501A patent/IL151395A0/xx unknown
- 2001-08-21 JP JP2002533059A patent/JP5133491B2/ja not_active Expired - Lifetime
- 2001-08-21 KR KR1020037004621A patent/KR100880614B1/ko active IP Right Grant
- 2001-08-29 TW TW090121381A patent/TW548587B/zh not_active IP Right Cessation
- 2001-08-30 US US09/941,790 patent/US6999985B2/en not_active Expired - Lifetime
- 2001-09-21 MY MYPI20014440A patent/MY129332A/en unknown
-
2002
- 2002-08-21 IL IL151395A patent/IL151395A/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0916397A (ja) * | 1995-06-29 | 1997-01-17 | Hewlett Packard Co <Hp> | 複数のコンピュータ・ワードにパックされている複数のサブ・ワード・アイテムの選択混合システム |
JPH10145591A (ja) * | 1996-09-05 | 1998-05-29 | Adobe Syst Inc | 効率的なグレイタイル格納 |
US6061783A (en) * | 1996-11-13 | 2000-05-09 | Nortel Networks Corporation | Method and apparatus for manipulation of bit fields directly in a memory source |
JPH11272546A (ja) * | 1998-03-23 | 1999-10-08 | Nec Corp | 可変長レジスタ装置 |
Non-Patent Citations (2)
Title |
---|
JPN5003005569; '"Data Packing and Unpacking Scheme for High Performance Image Processing"' IBM TECHNICAL DISCLOSURE BULLETIN V36N7, 19930701, P309-313, IBM CORP. * |
JPN6011043619; Keith Diefendorff et al.: '"Organization of the Motorola 88110 Superscalar RISC Microprocessor"' IEEE Micro , 199204, pages: 40-63, IEEE * |
Also Published As
Publication number | Publication date |
---|---|
MY129332A (en) | 2007-03-30 |
KR100880614B1 (ko) | 2009-01-30 |
WO2002029553A1 (en) | 2002-04-11 |
GB0024311D0 (en) | 2000-11-15 |
US6999985B2 (en) | 2006-02-14 |
IL151395A (en) | 2009-09-01 |
RU2002124769A (ru) | 2004-02-20 |
EP1323031A1 (en) | 2003-07-02 |
GB2367650B (en) | 2004-10-27 |
IL151395A0 (en) | 2003-04-10 |
EP1323031B1 (en) | 2018-11-14 |
CN1196998C (zh) | 2005-04-13 |
CN1432151A (zh) | 2003-07-23 |
GB2367650A (en) | 2002-04-10 |
RU2279706C2 (ru) | 2006-07-10 |
US20020040378A1 (en) | 2002-04-04 |
JP5133491B2 (ja) | 2013-01-30 |
TW548587B (en) | 2003-08-21 |
KR20030066631A (ko) | 2003-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3889069B2 (ja) | プログラマブルプロセッサ、前記プログラマブルプロセッサを用いてデジタル信号処理を行なうための方法およびその改良 | |
JP5133491B2 (ja) | 単一命令多数データ処理 | |
JP2005025718A (ja) | Simd整数乗算上位丸めシフト | |
JP4349265B2 (ja) | プロセッサ | |
US8195732B2 (en) | Methods and apparatus for single stage Galois field operations | |
TW201928656A (zh) | 向量帶進位加法指令 | |
JP3723115B2 (ja) | 単一命令多重データ処理 | |
EP3655851B1 (en) | Register-based complex number processing | |
US20240004663A1 (en) | Processing device with vector transformation execution | |
JP5193358B2 (ja) | 多項式データ処理演算 | |
JP7186212B2 (ja) | データ処理装置におけるベクトル・インタリーブ | |
JP2019519864A (ja) | ベクトルレジスタのアクセス | |
JP3088956B2 (ja) | 演算装置 | |
JPS59160239A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040908 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100813 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110819 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120717 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20121003 |
|
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: 20121102 |
|
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: 20121108 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151116 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5133491 Country of ref document: JP 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 |
|
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 |
|
EXPY | Cancellation because of completion of term |