JP2011108265A - アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム - Google Patents
アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム Download PDFInfo
- Publication number
- JP2011108265A JP2011108265A JP2011016901A JP2011016901A JP2011108265A JP 2011108265 A JP2011108265 A JP 2011108265A JP 2011016901 A JP2011016901 A JP 2011016901A JP 2011016901 A JP2011016901 A JP 2011016901A JP 2011108265 A JP2011108265 A JP 2011108265A
- Authority
- JP
- Japan
- Prior art keywords
- coprocessor
- instruction
- bits
- instructions
- processor
- 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 claims abstract description 28
- 238000000034 method Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 5
- 239000013598 vector Substances 0.000 description 24
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 1
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
Images
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/30181—Instruction operation extension or modification
-
- 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/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/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
【解決手段】プロセッサに基づくシステム22はメイン・プロセッサ24および複数のコプロセッサ26を含む。コプロセッサ26によって実行されるデータ処理動作を指定するメイン・プロセッサ24のコプロセッサ命令は、ターゲット・コプロセッサを識別するためのコプロセッサ識別フィールドを含む。データ要素はソース・レジスタからデスティネーション・レジスタへブロードキャストされる。データ要素のサイズ指定は、2つのビットがバイト(8ビット),ハーフ・ワード(16ビット),ワード(32ビット)およびダブル・ワード(64ビット)を含む4つのデータ・サイズのうちの1つを示し、他の2ビットは飽和タイプを示す。
【選択図】図1
Description
込んだデータ処理システムを提供することが知られている。いくつかのシステムでは、1またはそれ以上の異なるコプロセッサにメイン・プロセッサを提供することができると知られている。この場合、それぞれのコプロセッサは異なるコプロセッサ番号によって識別することができる。
き飽和(SS:signed saturation)では、正の最大から負の最大の値までのビットが示
される。飽和タイプに続く擬似コードでは、SSとUSはそれらがオプションであることを示すために中括弧の中で示される。
いないデータを扱うための有用な機能を行なう。例えば、単に、64ビットのアライメントの合わされたアドレスからダブル・ワードの64ビットのデータをロードすることができる技術であってもよい。したがって、アライメントの合わされていない値が要求される場合、アライメントの合わされていない値がまたがる2つの64ビットのアライメントの合わされたダブル・ワードがレジスタ・ファイルにロードされ、また、アライメント命令が要求された正しい64ビットを取り出すために使用される。これは、正しいアライメントを取り出すために値をシフトしマスクを行なう従来のアプローチを保存する。アライメント命令は、2つのソース・レジスタからバイト境界上の任意の64ビット値を取り出すことができる。
にアライメント・オフセットを置くことにより指定することができる。アドレス・オフセットが、アクセス・アドレスの下位ビットからマスクすることにより作成され、次にwCGRレジスタに転送される場合、後者は有用である。したがって、図7を参照して、実施例においては、3ビットであるビット20から22に、取り出すべき値のバイト・オフセットを指定する、即値アライメント・モード(IMM)を与える。
ジスタ・アライメントのいずれかを指定する制御信号を受け取る。その情報は結合部306で結合され、マルチプレクサ308によって多重化される。
レジスタ中の16個のビット・フィールドからデスティネーション・レジスタwRd中に16個のビット・データを選択することができる。それは、ソースの任意のハーフ・ワードがデスティネーションで任意のハーフ・ワードに置かれることを可能にする。ビット8から11は0001であり、また、ビット5から7は111である。ハーフ・ワード0のために選ばれる値は、ビット1,0の値によって決定される。ハーフ・ワード1のために選ばれる値は、ビット2,3の値によって決定される。ハーフ・ワード2のために選ばれる値は、ビット20,21の値によって決定される。ハーフ・ワード3のために選ばれる値は、ビット23,22の値によって決定される。例えば、図4に示されるように、条件付き実行が、指定され実行される。
wRd = wRn[63:48] + wRn[47:32] + wRn[31:16] + wRn[15:0]
ワードが指定される場合:
wRd = wRn[63:32] + wRn[31:0]
ション・フィールドにすべて1を置く。比較がうまくいかない場合、デスティネーション・フィールドにすべてゼロを置く。「等しい(equal)」、符号なしオペランドあるいは
符号付オペランドで「より大きい(if greater than)」、の比較をすることができる。
ビット11から8は0000であり、また、ビット7から5は011である。データ・サイズを決定するために、ビット位置22,23中の値を使用する。バイトのデータ・サイズに対しては、その値は00であり、ハーフ・ワードのデータ・サイズについては、その値は01であり、そして、ワードのデータ・サイズについては、その値は10である。「等しい」または「より大きな場合」の比較を選択すべきか否かを判断するためにビット20を使用する。符号付きまたは符号なし「より大きい」の比較を選択すべきか否かを判断するためにビット21を使用する。例えば、図4で示されるように、条件付き実行が、指定され実行される。
Rn)からコプロセッサ中のSIMDデスティネーション・レジスタ(wRd)のすべてのフィールドへ値をブロードキャストする。例えば、バイト(8ビット)データの要素が、64ビット容量を有するデスティネーション・レジスタwRd中の8つのデスティネーション・データ要素のすべてへ転送されてもよい。別の実施例として、ワード(32ビット)がデスティネーション・レジスタ中の2つの位置に置かれてもよい。さらに別の実施例として、ハーフ・ワード(16ビット)が、デスティネーション・レジスタ中の4つのデータ要素すべてへ転送されてもよい。ビット11から8は0000であり、ビット23から21は010で、また、ビット5は0である。ビット位置7,6の値は、デスティネーション・レジスタのデータ・サイズを決定する。バイトに対してはビット7,6は00であり、ハーフ・ワードについてはビット7,6は01であり、また、ワードについてはビット7,6は10である。バイト・サイズのSIMDに関しては、その値はwRdのすべての場所に入れられる。ハーフ・ワード・サイズについては、その値は、wRdに4回置かれる。ワード・サイズについては、その値はwRdに2回置かれる。
wRmだけwRnをベクトル論理左シフトを行ない、その結果をwRdに置く。シフト値を含むレジスタをコード化するためにビット0から3を使用する。ビット8は、シフト値がメイン中またはCGR44(wCGRm)中のレジスタのいずれから来るかを決めるために使用される。指定されたG−修飾子を備えるシフト命令は、wRmフィールドで指定された汎用目的のレジスタに格納されたシフト値を使用する。ビット23,22は、オペランドのサイズを決定する。ビット位置7から5の値010はシフト動作を決定する。ビット位置21,22の値01は論理左シフトを示す。ビット位置21,22の値00は論理右シフトを示す。ビット位置21,20の値10は論理右シフトを示し、また、ビット位置21,20中の値11はローテート(回転)を示す。条件付きの実行が指定されることがあり、例えば、図4に示されるように実行される。
Claims (38)
- コプロセッサのための命令を提供する方法において、
データ処理命令のストリームに応じてメイン・プロセッサを使用してデータ処理を実行する段階であって、前記データ処理命令は少なくとも1つのコプロセッサ命令を含む、段階と、
少なくとも1つのコプロセッサ命令のために2つのソース・レジスタおよび1つのデスティネーション・レジスタを提供する段階であって、前記レジスタはデータ要素を含む、段階と、
コプロセッサによって実行されるデータ処理動作を指定するオペコード、および、前記コプロセッサ命令のためのターゲット・コプロセッサを識別するためのコプロセッサ識別フィールドを含むコプロセッサ命令を提供する段階であって、前記命令はデータ要素を前記ソース・レジスタの1つから前記デスティネーション・レジスタの要素へブロードキャストする、段階と、
を含むことを特徴とする方法。 - データ要素を前記デスティネーション・レジスタのすべての要素へブロードキャストする命令を提供する段階を含むことを特徴とする請求項1記載の方法。
- ブロードキャストされる前記データ要素のサイズを指定する段階を含むことを特徴とする請求項1記載の方法。
- ブロードキャストされる8、16または32ビットのデータ要素のうちの1つを選択的に指定する段階を含むことを特徴とする請求項3記載の方法。
- ビット0から31を割り当て、ビット7から5を動作タイプを示すために使用し、ビット11から8をコプロセッサ番号を示すために割り当て、ビット23および22をオペランド・サイズを示すために割り当て、ビット21および20を飽和タイプを設定するために割り当てる段階を含むことを特徴とする請求項1記載の方法。
- ビット27から24を1110に割り当てる段階を含むことを特徴とする請求項1記載の方法。
- メイン・プロセッサの算術フラグの状態に依存してコプロセッサ命令を条件付きで実行する段階を含むことを特徴とする請求項1記載の方法。
- データ要素をメイン・プロセッサのソース・レジスタからコプロセッサのデスティネーション・レジスタへブロードキャストする命令を提供する段階を含むことを特徴とする請求項1記載の方法。
- 命令を実行した場合、プロセッサをベースとするシステムは、
データ処理命令のストリームに応じてメイン・プロセッサを使用してデータ処理を実行し、前記データ処理命令は少なくとも1つのコプロセッサ命令を含み、
少なくとも1つのコプロセッサ命令のために2つのソース・レジスタおよび1つのデスティネーション・レジスタを使用し、前記レジスタはデータ要素を含み、
コプロセッサによって実行されるデータ処理動作を指定するオペコード、および、前記コプロセッサ命令のためのターゲット・コプロセッサを識別するためのコプロセッサ識別フィールドを含むコプロセッサ命令を操作し、前記命令はデータ要素を前記ソース・レジスタの1つから前記デスティネーション・レジスタの要素へブロードキャストする、
ことを可能にする命令を格納する媒体を含むことを特徴とする物品。 - 命令を実行した場合、プロセッサをベースとするシステムは、データ要素を前記デスティネーション・レジスタのすべての要素へブロードキャストする命令を提供することを可能にする命令をさらに格納することを特徴とする請求項9記載の物品。
- 命令を実行した場合、プロセッサをベースとするシステムは、ブロードキャストされる前記データ要素のサイズを指定する命令を提供することを可能にする命令をさらに格納することを特徴とする請求項9記載の物品。
- 命令を実行した場合、プロセッサをベースとするシステムは、ブロードキャストされる8、16または32ビットのデータ要素のうちの1つを選択的に指定する命令を提供することを可能にする命令をさらに格納することを特徴とする請求項9記載の物品。
- 命令を実行した場合、プロセッサをベースとするシステムは、ビット0から31を割り当て、ビット7から5を動作タイプを示すために使用し、ビット11から8をコプロセッサ番号を示すために割り当て、ビット23および22をオペランド・サイズを示すために割り当て、ビット21および20を飽和タイプを設定するために割り当てる命令を提供することを可能にする命令をさらに格納することを特徴とする請求項9記載の物品。
- 命令を実行した場合、プロセッサをベースとするシステムは、メイン・プロセッサの算術フラグの状態に依存してコプロセッサ命令を条件付きで実行することを可能にする命令をさらに格納することを特徴とする請求項9記載の物品。
- 算術フラグを含むメイン・プロセッサと、
前記メイン・プロセッサに結合されたコプロセッサであって、前記コプロセッサによって実行されるデータ処理動作を指定するオペコード、および、コプロセッサ命令のためのターゲット・コプロセッサを識別するコプロセッサ識別フィールドを含み、前記コプロセッサはコプロセッサ命令のために2つのソース・レジスタおよびデスティネーション・レジスタを割り当て、前記レジスタはデータ要素を含み、前記コプロセッサはデータ要素を前記ソース・レジスタから前記デスティネーション・レジスタの要素へブロードキャストする命令を含む、コプロセッサと、
を含むことを特徴とするプロセッサ。 - 前記プロセッサは、単一命令複数データのコプロセッサであることを特徴とする請求項15記載のプロセッサ。
- 前記コプロセッサは、ビット0から31までを有する命令を使用し、ここでビット7から5は動作タイプを示し、ビット11から8はコプロセッサ番号を示し、ビット23および22はオペランド・サイズを示し、ビット21および20は飽和タイプを設定することを特徴とする請求項15記載のプロセッサ。
- 前記命令は、データ要素を前記デスティネーション・レジスタのすべての要素へブロードキャストすることを特徴とする請求項15記載のプロセッサ。
- 前記命令は、ブロードキャストされる前記データ要素のサイズを指定することを特徴とする請求項15記載のプロセッサ。
- 前記命令は、ブロードキャストされる8、16または32ビットのデータ要素のうちの1つを選択的に指定することを特徴とする請求項19記載のプロセッサ。
- 前記コプロセッサは、前記デスティネーション・レジスタおよび前記ソース・レジスタを含む前記メイン・プロセッサを含むことを特徴とする請求項15記載のプロセッサ。
- コプロセッサのための命令を提供する方法において、
データ処理命令のストリームに応じてメイン・プロセッサを使用してデータ処理を実行する段階であって、前記データ処理命令は少なくとも1つのコプロセッサ命令を含む、段階と、
少なくとも1つのコプロセッサ命令のために2つのソース・レジスタおよび1つのデスティネーション・レジスタを提供する段階と、
コプロセッサによって実行されるデータ処理動作を指定するオペコード、および、前記コプロセッサ命令のためのターゲット・コプロセッサを識別するためのコプロセッサ識別フィールドを含むコプロセッサ命令を提供する段階と、
前記ソース・レジスタから値を取り出し、かつ前記値を前記デスティネーション・レジスタに置く命令を実行する段階であって、前記命令はこれらの値が前記ソース・レジスタから取り出されることを可能にするために前記値のオフセットを決定する情報を含む、段階と、
を含むことを特徴とする方法。 - 前記オフセットを前記命令中に提供する段階を含むことを特徴とする請求項22記載の方法。
- 前記オフセット情報をどこで見つけるべきかに関する情報を前記命令中に提供する段階を含むことを特徴とする請求項22記載の方法。
- 汎用目的のレジスタについて、前記オフセットに関する情報を含む指示を前記命令中に提供する段階を含むことを特徴とする請求項24記載の方法。
- メイン・プロセッサの算術フラグの状態に依存してコプロセッサの命令を条件付きで実行することを特徴とする請求項22記載の方法。
- 命令を実行した場合に、プロセッサをベースとするシステムは、
データ処理命令のストリームに応じてメイン・プロセッサを使用してデータ処理を実行し、前記データ処理命令は少なくとも1つのコプロセッサ命令を含み、
前記少なくとも1つのコプロセッサ命令のために2つのソース・レジスタおよび1つのデスティネーション・レジスタを提供し、
コプロセッサによって実行されるデータ処理動作を指定するオペコード、および、前記コプロセッサ命令のためのターゲット・コプロセッサを識別するためのコプロセッサ識別フィールドを含むコプロセッサ命令を提供し、
前記ソース・レジスタから値を取り出し、かつ前記値を前記デスティネーション・レジスタに置く命令を実行し、前記命令はこれらの値が前記ソース・レジスタから取り出されることを可能にするために前記値のオフセットを決定する情報を含む、
ことを可能にする命令を格納する媒体を含むことを特徴とする物品。 - 命令を実行した場合、プロセッサをベースとするシステムは、前記命令中に前記オフセットを提供することを可能にする命令をさらに格納することを特徴とする請求項27記載の物品。
- 命令を実行した場合、プロセッサをベースとするシステムは、前記オフセット情報をどこで見つけるべきかに関する情報を前記命令中に提供することを可能にする命令をさらに格納することを特徴とする請求項27記載の物品。
- 命令を実行した場合、プロセッサをベースとするシステムは、汎用目的のレジスタについて、前記オフセットに関する情報を含む指示を前記命令中に提供することを可能にする命令をさらに格納することを特徴とする請求項27記載の物品。
- 命令を実行した場合、プロセッサをベースとするシステムは、符号付き飽和、飽和なし、および、符号なし飽和を含む3つの異なる飽和タイプを提供することを可能にする命令をさらに格納することを特徴とする請求項27記載の物品。
- 命令を実行した場合、プロセッサをベースとするシステムは、メイン・プロセッサの算術フラグの状態に依存してコプロセッサ命令を条件付きで実行することを可能にする命令をさらに格納することを特徴とする請求項27記載の物品。
- 算術フラグを含むメイン・プロセッサと、
前記コプロセッサによって実行されるデータ処理動作を指定するオペコード、および、コプロセッサ命令のためのターゲット・コプロセッサを識別するコプロセッサ識別フィールドを格納する記憶装置であって、前記コプロセッサは前記ソース・レジスタから値を取り出しかつ前記値を前記デスティネーション・レジスタに置き、前記命令はこれらの値が前記ソース・レジスタから取り出されることを可能にするためにその値のオフセットを決定する情報を含む、記憶装置と、
を含むことを特徴とするコプロセッサ。 - 前記コプロセッサは、単一命令複数データのコプロセッサであることを特徴とする請求項33記載のコプロセッサ。
- 前記オフセットを前記命令から取り出すことを特徴とする請求項33記載のコプロセッサ。
- 前記オフセット情報をどこで見つけるべきかに関する情報を前記命令から取り出すことを特徴とする請求項33記載のコプロセッサ。
- 汎用目的のレジスタについて、前記オフセットに関する情報を含む指示を前記命令から取り出すことを特徴とする請求項33記載のコプロセッサ。
- 前記コプロセッサはビット0から31を有する命令を使用し、ここでビット7から5は動作タイプを示し、ビット11から8はコプロセッサ番号を示し、ビット23および22はオペランド・サイズを示し、ビット21および20は飽和タイプを設定することを特徴とする請求項33記載のコプロセッサ。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/215,756 US6986023B2 (en) | 2002-08-09 | 2002-08-09 | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
US10/215,756 | 2002-08-09 | ||
US10/263,246 | 2002-10-02 | ||
US10/263,246 US7047393B2 (en) | 2002-08-09 | 2002-10-02 | Coprocessor processing instruction with coprocessor ID to broadcast main processor register data element to coprocessor multi-element register |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008161911A Division JP5586128B2 (ja) | 2002-08-09 | 2008-06-20 | データ処理を実行する方法、記録媒体、プロセッサ、及びシステム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014156777A Division JP2014225287A (ja) | 2002-08-09 | 2014-07-31 | アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011108265A true JP2011108265A (ja) | 2011-06-02 |
JP5634898B2 JP5634898B2 (ja) | 2014-12-03 |
Family
ID=31494935
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008161911A Expired - Fee Related JP5586128B2 (ja) | 2002-08-09 | 2008-06-20 | データ処理を実行する方法、記録媒体、プロセッサ、及びシステム |
JP2011016901A Expired - Lifetime JP5634898B2 (ja) | 2002-08-09 | 2011-01-28 | コプロセッサのための命令を提供する方法、プログラムおよびコプロセッサ |
JP2014156777A Pending JP2014225287A (ja) | 2002-08-09 | 2014-07-31 | アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008161911A Expired - Fee Related JP5586128B2 (ja) | 2002-08-09 | 2008-06-20 | データ処理を実行する方法、記録媒体、プロセッサ、及びシステム |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014156777A Pending JP2014225287A (ja) | 2002-08-09 | 2014-07-31 | アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム |
Country Status (3)
Country | Link |
---|---|
US (6) | US6986023B2 (ja) |
JP (3) | JP5586128B2 (ja) |
CN (1) | CN100394380C (ja) |
Families Citing this family (112)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7392368B2 (en) * | 2002-08-09 | 2008-06-24 | Marvell International Ltd. | Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
US7254698B2 (en) * | 2003-05-12 | 2007-08-07 | International Business Machines Corporation | Multifunction hexadecimal instructions |
US7139900B2 (en) * | 2003-06-23 | 2006-11-21 | Intel Corporation | Data packet arithmetic logic devices and methods |
US7610466B2 (en) * | 2003-09-05 | 2009-10-27 | Freescale Semiconductor, Inc. | Data processing system using independent memory and register operand size specifiers and method thereof |
US7275148B2 (en) * | 2003-09-08 | 2007-09-25 | Freescale Semiconductor, Inc. | Data processing system using multiple addressing modes for SIMD operations and method thereof |
US7315932B2 (en) | 2003-09-08 | 2008-01-01 | Moyer William C | Data processing system having instruction specifiers for SIMD register operands and method thereof |
GB2411975B (en) * | 2003-12-09 | 2006-10-04 | Advanced Risc Mach Ltd | Data processing apparatus and method for performing arithmetic operations in SIMD data processing |
US8082419B2 (en) * | 2004-03-30 | 2011-12-20 | Intel Corporation | Residual addition for video software techniques |
US7353244B2 (en) * | 2004-04-16 | 2008-04-01 | Marvell International Ltd. | Dual-multiply-accumulator operation optimized for even and odd multisample calculations |
US7395410B2 (en) * | 2004-07-06 | 2008-07-01 | Matsushita Electric Industrial Co., Ltd. | Processor system with an improved instruction decode control unit that controls data transfer between processor and coprocessor |
US9557994B2 (en) | 2004-07-13 | 2017-01-31 | Arm Limited | Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number |
US7586904B2 (en) * | 2004-07-15 | 2009-09-08 | Broadcom Corp. | Method and system for a gigabit Ethernet IP telephone chip with no DSP core, which uses a RISC core with instruction extensions to support voice processing |
US7447725B2 (en) * | 2004-11-05 | 2008-11-04 | International Business Machines Corporation | Apparatus for controlling rounding modes in single instruction multiple data (SIMD) floating-point units |
US7219213B2 (en) * | 2004-12-17 | 2007-05-15 | Intel Corporation | Flag bits evaluation for multiple vector SIMD channels execution |
US7694114B2 (en) * | 2005-06-09 | 2010-04-06 | Qualcomm Incorporated | Software selectable adjustment of SIMD parallelism |
US7836284B2 (en) * | 2005-06-09 | 2010-11-16 | Qualcomm Incorporated | Microprocessor with automatic selection of processing parallelism mode based on width data of instructions |
US7603575B2 (en) * | 2005-06-30 | 2009-10-13 | Woodbridge Nancy G | Frequency-dependent voltage control in digital logic |
US20070038984A1 (en) * | 2005-08-12 | 2007-02-15 | Gschwind Michael K | Methods for generating code for an architecture encoding an extended register specification |
US7421566B2 (en) * | 2005-08-12 | 2008-09-02 | International Business Machines Corporation | Implementing instruction set architectures with non-contiguous register file specifiers |
US7516299B2 (en) * | 2005-08-29 | 2009-04-07 | International Business Machines Corporation | Splat copying GPR data to vector register elements by executing lvsr or lvsl and vector subtract instructions |
DE102005052061A1 (de) * | 2005-11-01 | 2007-05-16 | Carl Zeiss Imaging Solutions G | Verfahren und Vorrichtung zur Bildverarbeitung |
US7555514B2 (en) * | 2006-02-13 | 2009-06-30 | Atmel Corportation | Packed add-subtract operation in a microprocessor |
US7925862B2 (en) * | 2006-06-27 | 2011-04-12 | Freescale Semiconductor, Inc. | Coprocessor forwarding load and store instructions with displacement to main processor for cache coherent execution when program counter value falls within predetermined ranges |
US7805590B2 (en) * | 2006-06-27 | 2010-09-28 | Freescale Semiconductor, Inc. | Coprocessor receiving target address to process a function and to send data transfer instructions to main processor for execution to preserve cache coherence |
US20070300042A1 (en) * | 2006-06-27 | 2007-12-27 | Moyer William C | Method and apparatus for interfacing a processor and coprocessor |
US9069547B2 (en) * | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
US7865698B1 (en) * | 2008-03-27 | 2011-01-04 | Xilinix, Inc. | Decode mode for an auxiliary processor unit controller in which an opcode is partially masked such that a configuration register defines a plurality of user defined instructions |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
US8918623B2 (en) | 2009-08-04 | 2014-12-23 | International Business Machines Corporation | Implementing instruction set architectures with non-contiguous register file specifiers |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8959501B2 (en) | 2010-12-14 | 2015-02-17 | Microsoft Corporation | Type and length abstraction for data types |
WO2012100316A1 (en) * | 2011-01-25 | 2012-08-02 | Cognivue Corporation | Apparatus and method of vector unit sharing |
PL3422178T3 (pl) | 2011-04-01 | 2023-06-26 | Intel Corporation | Przyjazny dla wektorów format instrukcji i jego wykonanie |
US20130042091A1 (en) * | 2011-08-12 | 2013-02-14 | Qualcomm Incorporated | BIT Splitting Instruction |
US10318291B2 (en) | 2011-11-30 | 2019-06-11 | Intel Corporation | Providing vector horizontal compare functionality within a vector register |
US9665371B2 (en) * | 2011-11-30 | 2017-05-30 | Intel Corporation | Providing vector horizontal compare functionality within a vector register |
US9792117B2 (en) * | 2011-12-08 | 2017-10-17 | Oracle International Corporation | Loading values from a value vector into subregisters of a single instruction multiple data register |
US10534606B2 (en) | 2011-12-08 | 2020-01-14 | Oracle International Corporation | Run-length encoding decompression |
US9697174B2 (en) | 2011-12-08 | 2017-07-04 | Oracle International Corporation | Efficient hardware instructions for processing bit vectors for single instruction multiple data processors |
US10157061B2 (en) | 2011-12-22 | 2018-12-18 | Intel Corporation | Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks |
WO2013095575A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Broadcast operation on mask register |
US9411586B2 (en) * | 2011-12-23 | 2016-08-09 | Intel Corporation | Apparatus and method for an instruction that determines whether a value is within a range |
CN104067224B (zh) | 2011-12-23 | 2017-05-17 | 英特尔公司 | 在不同的粒度水平下对数据值进行广播和掩码的指令执行 |
US10157060B2 (en) | 2011-12-29 | 2018-12-18 | Intel Corporation | Method, device and system for control signaling in a data path module of a data stream processing engine |
EP2798464B8 (en) | 2011-12-30 | 2019-12-11 | Intel Corporation | Packed rotate processors, methods, systems, and instructions |
US9632781B2 (en) * | 2013-02-26 | 2017-04-25 | Qualcomm Incorporated | Vector register addressing and functions based on a scalar register data value |
US9990202B2 (en) | 2013-06-28 | 2018-06-05 | Intel Corporation | Packed data element predication processors, methods, systems, and instructions |
US9323524B2 (en) * | 2013-09-16 | 2016-04-26 | Oracle International Corporation | Shift instruction with per-element shift counts and full-width sources |
US9430390B2 (en) | 2013-09-21 | 2016-08-30 | Oracle International Corporation | Core in-memory space and object management architecture in a traditional RDBMS supporting DW and OLTP applications |
US10331583B2 (en) | 2013-09-26 | 2019-06-25 | Intel Corporation | Executing distributed memory operations using processing elements connected by distributed channels |
CN104298639B (zh) * | 2014-09-23 | 2017-03-15 | 天津国芯科技有限公司 | 主处理器与若干协处理器的嵌入式连接方法及连接接口 |
US20160179530A1 (en) * | 2014-12-23 | 2016-06-23 | Elmoustapha Ould-Ahmed-Vall | Instruction and logic to perform a vector saturated doubleword/quadword add |
US9854261B2 (en) * | 2015-01-06 | 2017-12-26 | Microsoft Technology Licensing, Llc. | Detecting markers in an encoded video signal |
US10210134B2 (en) * | 2015-05-21 | 2019-02-19 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
WO2016187232A1 (en) | 2015-05-21 | 2016-11-24 | Goldman, Sachs & Co. | General-purpose parallel computing architecture |
US10025822B2 (en) | 2015-05-29 | 2018-07-17 | Oracle International Corporation | Optimizing execution plans for in-memory-aware joins |
US20160378480A1 (en) * | 2015-06-27 | 2016-12-29 | Pavel G. Matveyev | Systems, Methods, and Apparatuses for Improving Performance of Status Dependent Computations |
CN105426161B (zh) * | 2015-11-12 | 2017-11-07 | 天津大学 | 一种power指令集向量协处理器的译码电路 |
US10402425B2 (en) | 2016-03-18 | 2019-09-03 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors |
US10061832B2 (en) | 2016-11-28 | 2018-08-28 | Oracle International Corporation | Database tuple-encoding-aware data partitioning in a direct memory access engine |
US10061714B2 (en) | 2016-03-18 | 2018-08-28 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors |
US10055358B2 (en) | 2016-03-18 | 2018-08-21 | Oracle International Corporation | Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors |
US10599488B2 (en) | 2016-06-29 | 2020-03-24 | Oracle International Corporation | Multi-purpose events for notification and sequence control in multi-core processor systems |
US10380058B2 (en) | 2016-09-06 | 2019-08-13 | Oracle International Corporation | Processor core to coprocessor interface with FIFO semantics |
US10402168B2 (en) | 2016-10-01 | 2019-09-03 | Intel Corporation | Low energy consumption mantissa multiplication for floating point multiply-add operations |
US10783102B2 (en) | 2016-10-11 | 2020-09-22 | Oracle International Corporation | Dynamically configurable high performance database-aware hash engine |
US10459859B2 (en) | 2016-11-28 | 2019-10-29 | Oracle International Corporation | Multicast copy ring for database direct memory access filtering engine |
US10176114B2 (en) | 2016-11-28 | 2019-01-08 | Oracle International Corporation | Row identification number generation in database direct memory access engine |
US10725947B2 (en) | 2016-11-29 | 2020-07-28 | Oracle International Corporation | Bit vector gather row count calculation and handling in direct memory access engine |
US10474375B2 (en) | 2016-12-30 | 2019-11-12 | Intel Corporation | Runtime address disambiguation in acceleration hardware |
US10416999B2 (en) | 2016-12-30 | 2019-09-17 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10572376B2 (en) | 2016-12-30 | 2020-02-25 | Intel Corporation | Memory ordering in acceleration hardware |
US10558575B2 (en) | 2016-12-30 | 2020-02-11 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
WO2019005084A1 (en) * | 2017-06-29 | 2019-01-03 | Intel Corporation | SYSTEMS, APPARATUSES, AND METHODS FOR VECTORIZED FRACTIONAL MULTIPLICATION OF SIGNED WORDS COMPRISING HIGH RESULTS BOROUGH, SATURATION, AND SELECTION |
WO2019005115A1 (en) * | 2017-06-30 | 2019-01-03 | Intel Corporation | APPARATUS AND METHOD FOR MULTIPLICATION AND CUMULATION OF COMPLEX VALUES |
US11294679B2 (en) * | 2017-06-30 | 2022-04-05 | Intel Corporation | Apparatus and method for multiplication and accumulation of complex values |
US10445234B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features |
US10387319B2 (en) | 2017-07-01 | 2019-08-20 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features |
US10467183B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods for pipelined runtime services in a spatial array |
US10515049B1 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Memory circuits and methods for distributed memory hazard detection and error recovery |
US10445451B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features |
US10469397B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods with configurable network-based dataflow operator circuits |
US10515046B2 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10496574B2 (en) | 2017-09-28 | 2019-12-03 | Intel Corporation | Processors, methods, and systems for a memory fence in a configurable spatial accelerator |
US11086816B2 (en) | 2017-09-28 | 2021-08-10 | Intel Corporation | Processors, methods, and systems for debugging a configurable spatial accelerator |
US10380063B2 (en) | 2017-09-30 | 2019-08-13 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator |
US10445098B2 (en) | 2017-09-30 | 2019-10-15 | Intel Corporation | Processors and methods for privileged configuration in a spatial array |
US10565134B2 (en) | 2017-12-30 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for multicast in a configurable spatial accelerator |
US10445250B2 (en) | 2017-12-30 | 2019-10-15 | Intel Corporation | Apparatus, methods, and systems with a configurable spatial accelerator |
US10417175B2 (en) | 2017-12-30 | 2019-09-17 | Intel Corporation | Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator |
US10528346B2 (en) | 2018-03-29 | 2020-01-07 | Intel Corporation | Instructions for fused multiply-add operations with variable precision input operands |
US10564980B2 (en) | 2018-04-03 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator |
US11307873B2 (en) | 2018-04-03 | 2022-04-19 | Intel Corporation | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging |
US10853073B2 (en) | 2018-06-30 | 2020-12-01 | Intel Corporation | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator |
US10459866B1 (en) | 2018-06-30 | 2019-10-29 | Intel Corporation | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator |
US10891240B2 (en) | 2018-06-30 | 2021-01-12 | Intel Corporation | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator |
US11200186B2 (en) | 2018-06-30 | 2021-12-14 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
US10678724B1 (en) | 2018-12-29 | 2020-06-09 | Intel Corporation | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator |
US10817291B2 (en) | 2019-03-30 | 2020-10-27 | Intel Corporation | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator |
US11029927B2 (en) | 2019-03-30 | 2021-06-08 | Intel Corporation | Methods and apparatus to detect and annotate backedges in a dataflow graph |
US10915471B2 (en) | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator |
US10965536B2 (en) | 2019-03-30 | 2021-03-30 | Intel Corporation | Methods and apparatus to insert buffers in a dataflow graph |
US11037050B2 (en) | 2019-06-29 | 2021-06-15 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator |
US11907713B2 (en) | 2019-12-28 | 2024-02-20 | Intel Corporation | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator |
US11029958B1 (en) * | 2019-12-28 | 2021-06-08 | Intel Corporation | Apparatuses, methods, and systems for configurable operand size operations in an operation configurable spatial accelerator |
US12086080B2 (en) | 2020-09-26 | 2024-09-10 | Intel Corporation | Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits |
US11868777B2 (en) * | 2020-12-16 | 2024-01-09 | Advanced Micro Devices, Inc. | Processor-guided execution of offloaded instructions using fixed function operations |
US12073251B2 (en) | 2020-12-29 | 2024-08-27 | Advanced Micro Devices, Inc. | Offloading computations from a processor to remote execution logic |
US11625249B2 (en) | 2020-12-29 | 2023-04-11 | Advanced Micro Devices, Inc. | Preserving memory ordering between offloaded instructions and non-offloaded instructions |
US11921634B2 (en) | 2021-12-28 | 2024-03-05 | Advanced Micro Devices, Inc. | Leveraging processing-in-memory (PIM) resources to expedite non-PIM instructions executed on a host |
US12050531B2 (en) * | 2022-09-26 | 2024-07-30 | Advanced Micro Devices, Inc. | Data compression and decompression for processing in memory |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57185540A (en) * | 1981-05-11 | 1982-11-15 | Hitachi Ltd | Data processor |
JPS61250729A (ja) * | 1985-04-30 | 1986-11-07 | Fujitsu Ltd | シフタ回路 |
JPH0588887A (ja) * | 1991-09-30 | 1993-04-09 | Toshiba Corp | データ処理装置 |
JPH0997178A (ja) * | 1995-09-29 | 1997-04-08 | Matsushita Electric Ind Co Ltd | 飽和演算処理装置および方法 |
JPH10512069A (ja) * | 1994-12-01 | 1998-11-17 | インテル・コーポレーション | パックされたデータのシフト演算を行うプロセッサ |
JP2001229138A (ja) * | 2000-02-15 | 2001-08-24 | Sony Corp | 画像処理装置および画像処理方法 |
US6282633B1 (en) * | 1998-11-13 | 2001-08-28 | Tensilica, Inc. | High data density RISC processor |
JP2001236496A (ja) * | 1999-10-04 | 2001-08-31 | Texas Instr Inc <Ti> | 絶対差分の合計および対称濾波用の再構成可能simdコプロセッサ構造 |
US20020108027A1 (en) * | 2001-02-02 | 2002-08-08 | Kabushiki Kaisha Toshiba | Microprocessor and method of processing unaligned data in microprocessor |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4750110A (en) * | 1983-04-18 | 1988-06-07 | Motorola, Inc. | Method and apparatus for executing an instruction contingent upon a condition present in another data processor |
US4873630A (en) * | 1985-07-31 | 1989-10-10 | Unisys Corporation | Scientific processor to support a host processor referencing common memory |
JPS62214464A (ja) | 1986-03-17 | 1987-09-21 | Hitachi Ltd | データ処理システム |
US5073864A (en) * | 1987-02-10 | 1991-12-17 | Davin Computer Corporation | Parallel string processor and method for a minicomputer |
JPS63261449A (ja) * | 1987-04-20 | 1988-10-28 | Hitachi Ltd | デ−タ処理装置 |
MY104191A (en) * | 1988-09-06 | 1994-02-28 | Mitsubishi Gas Chemical Co | Process for producing multilayer printed wiring board |
US5420989A (en) * | 1991-06-12 | 1995-05-30 | Cyrix Corporation | Coprocessor interface supporting I/O or memory mapped communications |
US5420809A (en) * | 1993-11-30 | 1995-05-30 | Texas Instruments Incorporated | Method of operating a data processing apparatus to compute correlation |
US5734874A (en) * | 1994-04-29 | 1998-03-31 | Sun Microsystems, Inc. | Central processing unit with integrated graphics functions |
CN1094610C (zh) * | 1994-12-02 | 2002-11-20 | 英特尔公司 | 可以对复合操作数进行压缩操作和拆开操作的微处理器 |
GB9509989D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Manipulation of data |
US5815715A (en) * | 1995-06-05 | 1998-09-29 | Motorola, Inc. | Method for designing a product having hardware and software components and product therefor |
US5696985A (en) * | 1995-06-07 | 1997-12-09 | International Business Machines Corporation | Video processor |
CN103345380B (zh) | 1995-08-31 | 2016-05-18 | 英特尔公司 | 控制移位分组数据的位校正的装置 |
US5721892A (en) * | 1995-08-31 | 1998-02-24 | Intel Corporation | Method and apparatus for performing multiply-subtract operations on packed data |
US6385634B1 (en) * | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US5936872A (en) * | 1995-09-05 | 1999-08-10 | Intel Corporation | Method and apparatus for storing complex numbers to allow for efficient complex multiplication operations and performing such complex multiplication operations |
JP3701401B2 (ja) * | 1996-08-12 | 2005-09-28 | 株式会社ルネサステクノロジ | 飽和演算命令を有するマイクロプロセッサ |
US5838984A (en) * | 1996-08-19 | 1998-11-17 | Samsung Electronics Co., Ltd. | Single-instruction-multiple-data processing using multiple banks of vector registers |
US5805875A (en) * | 1996-09-13 | 1998-09-08 | International Computer Science Institute | Vector processing system with multi-operation, run-time configurable pipelines |
US5893066A (en) * | 1996-10-15 | 1999-04-06 | Samsung Electronics Co. Ltd. | Fast requantization apparatus and method for MPEG audio decoding |
US6006315A (en) * | 1996-10-18 | 1999-12-21 | Samsung Electronics Co., Ltd. | Computer methods for writing a scalar value to a vector |
US6016395A (en) * | 1996-10-18 | 2000-01-18 | Samsung Electronics Co., Ltd. | Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor |
US5909572A (en) | 1996-12-02 | 1999-06-01 | Compaq Computer Corp. | System and method for conditionally moving an operand from a source register to a destination register |
US5930519A (en) * | 1997-04-30 | 1999-07-27 | Hewlett Packard Company | Distributed branch logic system and method for a geometry accelerator |
JP3781519B2 (ja) * | 1997-08-20 | 2006-05-31 | 富士通株式会社 | プロセッサの命令制御機構 |
US5923893A (en) * | 1997-09-05 | 1999-07-13 | Motorola, Inc. | Method and apparatus for interfacing a processor to a coprocessor |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US8489860B1 (en) * | 1997-12-22 | 2013-07-16 | Texas Instruments Incorporated | Mobile electronic device having a host processor system capable of dynamically canging tasks performed by a coprocessor in the device |
US5996057A (en) * | 1998-04-17 | 1999-11-30 | Apple | Data processing system and method of permutation with replication within a vector register file |
US6282634B1 (en) | 1998-05-27 | 2001-08-28 | Arm Limited | Apparatus and method for processing data having a mixed vector/scalar register file |
US6247113B1 (en) * | 1998-05-27 | 2001-06-12 | Arm Limited | Coprocessor opcode division by data type |
GB2338094B (en) * | 1998-05-27 | 2003-05-28 | Advanced Risc Mach Ltd | Vector register addressing |
US6178500B1 (en) * | 1998-06-25 | 2001-01-23 | International Business Machines Corporation | Vector packing and saturation detection in the vector permute unit |
US6272512B1 (en) * | 1998-10-12 | 2001-08-07 | Intel Corporation | Data manipulation instruction for enhancing value and efficiency of complex arithmetic |
US6529930B1 (en) * | 1998-11-16 | 2003-03-04 | Hitachi America, Ltd. | Methods and apparatus for performing a signed saturation operation |
JP3676237B2 (ja) | 1999-01-20 | 2005-07-27 | 株式会社ルネサステクノロジ | データ処理装置及び演算器 |
JP2000222208A (ja) * | 1999-01-29 | 2000-08-11 | Mitsubishi Electric Corp | 情報処理装置、命令割当て制御方法、命令割当て制御装置および命令割当て制御プログラムを記録したコンピュータで読取り可能な記録媒体 |
GB2355084B (en) * | 1999-07-21 | 2004-04-28 | Element 14 Ltd | Setting condition values in a computer |
US6546480B1 (en) * | 1999-10-01 | 2003-04-08 | Hitachi, Ltd. | Instructions for arithmetic operations on vectored data |
US6430684B1 (en) * | 1999-10-29 | 2002-08-06 | Texas Instruments Incorporated | Processor circuits, systems, and methods with efficient granularity shift and/or merge instruction(s) |
EP1230591B1 (en) * | 1999-11-18 | 2007-01-03 | Sun Microsystems, Inc. | Decompression bit processing with a general purpose alignment tool |
US6671797B1 (en) * | 2000-02-18 | 2003-12-30 | Texas Instruments Incorporated | Microprocessor with expand instruction for forming a mask from one bit |
US6748521B1 (en) * | 2000-02-18 | 2004-06-08 | Texas Instruments Incorporated | Microprocessor with instruction for saturating and packing data |
WO2001063434A1 (en) * | 2000-02-24 | 2001-08-30 | Bops, Incorporated | Methods and apparatus for dual-use coprocessing/debug interface |
US6829697B1 (en) * | 2000-09-06 | 2004-12-07 | International Business Machines Corporation | Multiple logical interfaces to a shared coprocessor resource |
US20020065860A1 (en) * | 2000-10-04 | 2002-05-30 | Grisenthwaite Richard Roy | Data processing apparatus and method for saturating data values |
US20020083311A1 (en) * | 2000-12-27 | 2002-06-27 | Paver Nigel C. | Method and computer program for single instruction multiple data management |
US6754804B1 (en) * | 2000-12-29 | 2004-06-22 | Mips Technologies, Inc. | Coprocessor interface transferring multiple instructions simultaneously along with issue path designation and/or issue order designation for the instructions |
US6889242B1 (en) * | 2001-06-29 | 2005-05-03 | Koninklijke Philips Electronics N.V. | Rounding operations in computer processor |
US7228401B2 (en) * | 2001-11-13 | 2007-06-05 | Freescale Semiconductor, Inc. | Interfacing a processor to a coprocessor in which the processor selectively broadcasts to or selectively alters an execution mode of the coprocessor |
US7853778B2 (en) * | 2001-12-20 | 2010-12-14 | Intel Corporation | Load/move and duplicate instructions for a processor |
US20040073773A1 (en) * | 2002-02-06 | 2004-04-15 | Victor Demjanenko | Vector processor architecture and methods performed therein |
US20030167460A1 (en) * | 2002-02-26 | 2003-09-04 | Desai Vipul Anil | Processor instruction set simulation power estimation method |
US7065546B2 (en) * | 2002-04-09 | 2006-06-20 | Sony Electronics Inc. | Method of performing quantization within a multimedia bitstream utilizing division-free instructions |
JP4202673B2 (ja) * | 2002-04-26 | 2008-12-24 | 株式会社東芝 | システムlsi開発環境生成方法及びそのプログラム |
US20030221089A1 (en) * | 2002-05-23 | 2003-11-27 | Sun Microsystems, Inc. | Microprocessor data manipulation matrix module |
US7020873B2 (en) * | 2002-06-21 | 2006-03-28 | Intel Corporation | Apparatus and method for vectorization of detected saturation and clipping operations in serial code loops of a source program |
AU2003256870A1 (en) | 2002-08-09 | 2004-02-25 | Intel Corporation | Multimedia coprocessor control mechanism including alignment or broadcast instructions |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
US7689641B2 (en) * | 2003-06-30 | 2010-03-30 | Intel Corporation | SIMD integer multiply high with round and shift |
-
2002
- 2002-08-09 US US10/215,756 patent/US6986023B2/en not_active Expired - Lifetime
- 2002-09-30 US US10/262,195 patent/US7213128B2/en not_active Expired - Lifetime
- 2002-10-02 US US10/263,246 patent/US7047393B2/en not_active Expired - Lifetime
-
2003
- 2003-08-06 CN CNB038239930A patent/CN100394380C/zh not_active Expired - Lifetime
-
2007
- 2007-04-30 US US11/797,067 patent/US7373488B2/en not_active Expired - Lifetime
-
2008
- 2008-05-01 US US12/149,429 patent/US20080209187A1/en not_active Abandoned
- 2008-06-20 JP JP2008161911A patent/JP5586128B2/ja not_active Expired - Fee Related
-
2009
- 2009-08-12 US US12/539,944 patent/US8131981B2/en not_active Expired - Lifetime
-
2011
- 2011-01-28 JP JP2011016901A patent/JP5634898B2/ja not_active Expired - Lifetime
-
2014
- 2014-07-31 JP JP2014156777A patent/JP2014225287A/ja active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57185540A (en) * | 1981-05-11 | 1982-11-15 | Hitachi Ltd | Data processor |
JPS61250729A (ja) * | 1985-04-30 | 1986-11-07 | Fujitsu Ltd | シフタ回路 |
JPH0588887A (ja) * | 1991-09-30 | 1993-04-09 | Toshiba Corp | データ処理装置 |
JPH10512069A (ja) * | 1994-12-01 | 1998-11-17 | インテル・コーポレーション | パックされたデータのシフト演算を行うプロセッサ |
JPH0997178A (ja) * | 1995-09-29 | 1997-04-08 | Matsushita Electric Ind Co Ltd | 飽和演算処理装置および方法 |
US6282633B1 (en) * | 1998-11-13 | 2001-08-28 | Tensilica, Inc. | High data density RISC processor |
JP2001236496A (ja) * | 1999-10-04 | 2001-08-31 | Texas Instr Inc <Ti> | 絶対差分の合計および対称濾波用の再構成可能simdコプロセッサ構造 |
JP2001229138A (ja) * | 2000-02-15 | 2001-08-24 | Sony Corp | 画像処理装置および画像処理方法 |
US20020108027A1 (en) * | 2001-02-02 | 2002-08-08 | Kabushiki Kaisha Toshiba | Microprocessor and method of processing unaligned data in microprocessor |
JP2002229777A (ja) * | 2001-02-02 | 2002-08-16 | Toshiba Corp | プロセッサ装置 |
Non-Patent Citations (2)
Title |
---|
JPN6013001060; Steve Furber: 改訂 ARMプロセッサ 初版, 20011218, 101頁〜103頁、122頁〜126頁, CQ出版株式会社 * |
JPN6013001061; Ruby Lee et al.: '"Pathlength Reduction Features in the PA-RISC Architecture"' Compcon Spring '92. Thirty-Seventh IEEE Computer Society International Conference, Digest of Papers. , 19920228, pages:129-135, IEEE * |
Also Published As
Publication number | Publication date |
---|---|
US20080209187A1 (en) | 2008-08-28 |
US20040034760A1 (en) | 2004-02-19 |
US7047393B2 (en) | 2006-05-16 |
US20070204132A1 (en) | 2007-08-30 |
US20040030863A1 (en) | 2004-02-12 |
CN100394380C (zh) | 2008-06-11 |
JP2009037599A (ja) | 2009-02-19 |
JP5634898B2 (ja) | 2014-12-03 |
US7213128B2 (en) | 2007-05-01 |
CN1688966A (zh) | 2005-10-26 |
US8131981B2 (en) | 2012-03-06 |
JP5586128B2 (ja) | 2014-09-10 |
US20090300325A1 (en) | 2009-12-03 |
JP2014225287A (ja) | 2014-12-04 |
US7373488B2 (en) | 2008-05-13 |
US20040030862A1 (en) | 2004-02-12 |
US6986023B2 (en) | 2006-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5586128B2 (ja) | データ処理を実行する方法、記録媒体、プロセッサ、及びシステム | |
US8074058B2 (en) | Providing extended precision in SIMD vector arithmetic operations | |
JP2005535966A (ja) | アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム | |
JP7423886B2 (ja) | 論理比較動作を実行するための装置 | |
US20210026634A1 (en) | Apparatus with reduced hardware register set using register-emulating memory location to emulate architectural register | |
US7043518B2 (en) | Method and system for performing parallel integer multiply accumulate operations on packed data | |
JP3547139B2 (ja) | プロセッサ | |
US11188330B2 (en) | Vector multiply-add instruction | |
US6385713B2 (en) | Microprocessor with parallel inverse square root logic for performing graphics function on packed data elements | |
US6334176B1 (en) | Method and apparatus for generating an alignment control vector | |
US20030014457A1 (en) | Method and apparatus for vector processing | |
JP5326314B2 (ja) | プロセサおよび情報処理装置 | |
US7861071B2 (en) | Conditional branch instruction capable of testing a plurality of indicators in a predicate register | |
US5958000A (en) | Two-bit booth multiplier with reduced data path width | |
US20020065860A1 (en) | Data processing apparatus and method for saturating data values | |
US5546551A (en) | Method and circuitry for saving and restoring status information in a pipelined computer | |
JP2001501001A (ja) | データ処理システムにおける入力オペランド制御 | |
JP3693556B2 (ja) | 浮動小数点ユニットにおいてロードバイパスを実行する方法及び装置 | |
JP3547316B2 (ja) | プロセッサ | |
US20060101105A1 (en) | Double shift mechanism and methods thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130422 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130903 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131129 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140401 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140731 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20140807 |
|
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: 20141007 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141015 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5634898 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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |