JP5133491B2 - 単一命令多数データ処理 - Google Patents

単一命令多数データ処理 Download PDF

Info

Publication number
JP5133491B2
JP5133491B2 JP2002533059A JP2002533059A JP5133491B2 JP 5133491 B2 JP5133491 B2 JP 5133491B2 JP 2002533059 A JP2002533059 A JP 2002533059A JP 2002533059 A JP2002533059 A JP 2002533059A JP 5133491 B2 JP5133491 B2 JP 5133491B2
Authority
JP
Japan
Prior art keywords
bit
data processing
data word
shift
processing apparatus
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.)
Expired - Lifetime
Application number
JP2002533059A
Other languages
English (en)
Other versions
JP2004511039A (ja
JP2004511039A5 (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 JP2004511039A publication Critical patent/JP2004511039A/ja
Publication of JP2004511039A5 publication Critical patent/JP2004511039A5/ja
Application granted granted Critical
Publication of JP5133491B2 publication Critical patent/JP5133491B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • 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/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/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
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49931Modulo 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)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Description

【0001】
本発明はデータ処理システムの分野に関する。更に詳細には、本発明は単一命令多数データ型式の処理を与えることを目的とするデータ処理システムに関する。
【0002】
単一命令多数データ演算は単一の命令に従って操作されるデータワードが実際は、それぞれのデータ値に独立に実行される特定の操作による、それらデータワード内の多数のデータ値を表すという公知の技術である。この型式の命令はデータ処理システムの操作効率を向上することが可能で、特にコードの大きさを減少し処理速度を速くするのに有用である。この技術は、デジタル信号処理応用におけるように、物理的信号を表すデータ値を操作する分野に、それに限定されることはないが広く利用されている。
【0003】
データ処理システムのデータ処理能力を延ばすとき、重要な考慮事項は追加の処理能力を支持するために導入される大きさ、複雑性、費用、及び動力消費のオーバヘッドの大きさである。処理能力を増加しながら、一方追加のオーバヘッドを減少できる方策が極めて有用である。
【0004】
1つの態様において、本発明はシフト回路、演算回路、及び前記シフト回路と第1入力データワードRmと前記第1入力とは異なる第2入力データワードRnとの演算を実行する前記演算回路とを制御する命令に応答する命令デコーダを含み、前記演算は、前記データワード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)

  1. シフト回路;
    演算回路;及び
    前記シフト回路と、第1入力データワードRmと前記第1入力とは異なる第2入力データワードRnとの演算を実行する前記演算回路と、を制御する命令に応答する命令デコーダ;
    を含むデータ処理装置にして、前記演算が、
    前記第1入力データワードRmの複数の非隣接多数ビット部分を選択して、それぞれビット長Aの複数の多数ビット部分を形成すること;
    前記選択した複数の非隣接多数ビット部分を全てシフトビット位置まで共通シフト量だけシフトするか、またはシフトしないかを選択すること;
    前記複数の非隣接多数ビット部分の各々を、ゼロ拡張あるいは符号拡張を使用して前記ビット長Aからビット長Bまで長さを拡張して、複数の拡張された多数ビット部分を形成し、該拡張された多数ビット部分が互いに接合されて拡張されたデータワードPを形成するようにすること;及び
    前記拡張されたデータワードPと前記第2入力データワードRnとからそれぞれビット長さBのビット位置部分を入力オペランドとして用いて複数の独立した演算操作を実行して、その結果によるデータワードRdを形成すること;
    の工程によって1つの値を生成するようにした、前記データ処理装置。
  2. 前記ビット長BがB=2*Aである、請求項1に記載のデータ処理装置。
  3. 多数ビット部分の最低位ビット位置がゼロ次のビット位置に一致するように、前記複数の多数ビット部分がシフトされる、請求項1及び2のいずれかに記載のデータ処理装置。
  4. 前記多数ビット部分をビット長Aからビット長Bに長さを拡張する工程が、
    前記多数ビット部分をビット長Bまで符号拡張すること;及び
    前記多数ビット部分をビット長Bまでゼロ拡張すること;
    の1方を含む、請求項1、2、3のいずれかに記載のデータ処理装置。
  5. 前記複数の独立の演算操作が独立の加算操作である、請求項1〜4のいずれかに記載のデータ処理装置。
  6. 前記第1入力データワードと前記第2入力データワードがそれぞれCのビット長をもち、C=N*Bであり、Nが1より大きい整数である、請求項1〜5のいずれかに記載のデータ処理装置。
  7. C=B*2である、請求項に記載のデータ処理装置。
  8. B=16,A=8である、請求項1〜7のいずれかに記載のデータ処理装置。
  9. 前記共通シフト量がB−Aである、請求項1〜8のいずれかに記載のデータ処理装置。
  10. 前記命令が単一命令・多数データ命令である、請求項1〜9のいずれかに記載のデータ処理装置。
  11. 前記命令がデータ値アンパック操作を演算操作と組合すものである、請求項1〜10のいずれかに記載のデータ処理装置。
  12. 前記シフト回路が前記データ処理装置のデータ通路の前記演算回路の上流にある、請求項1〜11のいずれかに記載のデータ処理装置。
  13. 前記多数ビット部分をビット長Aからビット長Bまで長さを拡張するように作動する拡張回路が前記シフト回路の1部分に並列に配置され、前記シフト回路が、前記命令を実行するとき前記シフト回路を通るデータ値に、他の命令を実行するとき前記シフト回路により与えられる共通シフト量の範囲に比較して制限された範囲の共通シフト量を与えるように作動する、請求項1〜12のいずれかに記載のデータ処理装置。
  14. 第1入力データワードRmと前記第1入力データワードとは異なる第2入力データワードRnから1つの値を発生する命令をデコードし、実行する工程を含むデータ処理の方法において、前記1つの値が、
    前記第1入力データワードRmの複数の非隣接の多数ビット部分を選択して複数のビット長Aの多数ビット部分を形成すること;
    前記選択した複数の非隣接多数ビット部分を全てシフトビット位置まで共通シフト量だけシフトするか、またはシフトしないかを選択すること;
    前記複数の多数ビット部分の各々を前記ビット長Aからビット長Bまで長さを拡張して複数の拡張された多数ビット部分を形成し、前記拡張された多数ビット部分が互いに接合して拡張されたデータワードPを形成するようにすること;及び
    前記拡張されたデータワードPと前記第2入力データワードRnとからの、それぞれビット長Bのビット位置部分を入力オペランドとして使用して複数の独立の演算操作を実行し、その結果としてデータワードRdを形成すること;
    の工程によって得られる、前記データ処理の方法。
  15. 請求項14に記載の方法を実行するようにコンピュータを制御するコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002533059A 2000-10-04 2001-08-21 単一命令多数データ処理 Expired - Lifetime JP5133491B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0024311A GB2367650B (en) 2000-10-04 2000-10-04 Single instruction multiple data processing
GB0024311.3 2000-10-04
PCT/GB2001/003744 WO2002029553A1 (en) 2000-10-04 2001-08-21 Single instruction multiple data processing

Publications (3)

Publication Number Publication Date
JP2004511039A JP2004511039A (ja) 2004-04-08
JP2004511039A5 JP2004511039A5 (ja) 2012-11-22
JP5133491B2 true 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)

* Cited by examiner, † Cited by third party
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
WO2012134321A1 (en) * 2011-03-30 2012-10-04 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 에스케이텔레콤 주식회사 시프트 연산 장치 및 그의 동작 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
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
EP0540150B1 (en) * 1991-10-29 1999-06-02 Advanced Micro Devices, Inc. Arithmetic logic unit
US5673321A (en) * 1995-06-29 1997-09-30 Hewlett-Packard Company Efficient selection and mixing of multiple sub-word items packed into two or more computer words
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
US5812140A (en) * 1996-09-05 1998-09-22 Adobe Systems Incorporated Efficient gray tile storage
US6061783A (en) * 1996-11-13 2000-05-09 Nortel Networks Corporation Method and apparatus for manipulation of bit fields directly in a memory source
US6081824A (en) * 1998-03-05 2000-06-27 Intel Corporation Method and apparatus for fast unsigned integral division
JPH11272546A (ja) * 1998-03-23 1999-10-08 Nec Corp 可変長レジスタ装置
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

Also Published As

Publication number Publication date
JP2004511039A (ja) 2004-04-08
RU2002124769A (ru) 2004-02-20
GB2367650A (en) 2002-04-10
US20020040378A1 (en) 2002-04-04
US6999985B2 (en) 2006-02-14
RU2279706C2 (ru) 2006-07-10
CN1196998C (zh) 2005-04-13
EP1323031A1 (en) 2003-07-02
KR100880614B1 (ko) 2009-01-30
TW548587B (en) 2003-08-21
GB0024311D0 (en) 2000-11-15
MY129332A (en) 2007-03-30
KR20030066631A (ko) 2003-08-09
GB2367650B (en) 2004-10-27
IL151395A0 (en) 2003-04-10
EP1323031B1 (en) 2018-11-14
WO2002029553A1 (en) 2002-04-11
IL151395A (en) 2009-09-01
CN1432151A (zh) 2003-07-23

Similar Documents

Publication Publication Date Title
JP3889069B2 (ja) プログラマブルプロセッサ、前記プログラマブルプロセッサを用いてデジタル信号処理を行なうための方法およびその改良
JP5133491B2 (ja) 単一命令多数データ処理
JP4349265B2 (ja) プロセッサ
US8195732B2 (en) Methods and apparatus for single stage Galois field operations
TW201928656A (zh) 向量帶進位加法指令
EP3655851B1 (en) Register-based complex number processing
JP3723115B2 (ja) 単一命令多重データ処理
US20240004663A1 (en) Processing device with vector transformation execution
US6338135B1 (en) Data processing system and method for performing an arithmetic operation on a plurality of signed data values
JP5193358B2 (ja) 多項式データ処理演算
JP7186212B2 (ja) データ処理装置におけるベクトル・インタリーブ
JP2000081966A (ja) 演算装置
JPS59160239A (ja) 情報処理装置
JPH1063639A (ja) 演算装置
KR20020021078A (ko) 데이터 처리 시스템 및 복수의 부호 데이터 값의 산술연산 수행방법

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