JP3924307B2 - 算術演算装置及び算術演算方法 - Google Patents
算術演算装置及び算術演算方法 Download PDFInfo
- Publication number
- JP3924307B2 JP3924307B2 JP2005364534A JP2005364534A JP3924307B2 JP 3924307 B2 JP3924307 B2 JP 3924307B2 JP 2005364534 A JP2005364534 A JP 2005364534A JP 2005364534 A JP2005364534 A JP 2005364534A JP 3924307 B2 JP3924307 B2 JP 3924307B2
- Authority
- JP
- Japan
- Prior art keywords
- packed
- data
- shift
- bits
- data elements
- 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
Links
- 238000000034 method Methods 0.000 title claims description 17
- 238000006467 substitution reaction Methods 0.000 claims 3
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 23
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 23
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 229920006395 saturated elastomer Polymers 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000758 substrate Substances 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/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
Description
したがって、操作するデータを表すのに必要なビット数とプロセッサの実際のデータ伝送および記憶容量との差をより効率的に使用することによってパフォーマンスを向上させるプロセッサが望ましい。
このプロセッサは、制御信号を受信するように結合されたデコーダを備える。制御信号は、第1のソース・アドレスと、第2のソース・アドレスと、宛先アドレスと、命令フィールドとを有する。第1のソース・アドレスは第1の場所に対応する。第2のソース・アドレスは第2の場所に対応する。宛先アドレスは第3の場所に対応する。演算フィールドは、あるタイプのパックされたデータのシフト演算を行うことを示す。プロセッサはさらに、デコーダに結合された回路を備える。この回路は、第1の場所に格納された第1のパックされたデータを第2の場所に格納された値によってシフトする回路である。この回路はさらに、対応するパックされた結果データを第3の場所に伝達する。
本説明および図には多くの詳細が含まれるが、本発明は請求の範囲によって定義される。本発明には、それらの請求の範囲に記載されている限定だけが適用される。
ビットXないしビットY:二進数のサブフィールドを規定する。たとえば、 (基数2で示した)バイト001110102 のビット6ないしビット0は、 1110102 のサブフィールドを表す。二進数の後の「2」は基数2を示 す。したがって、10002 は810に等しく、F16は1510に等しい。
Rx : レジスタである。レジスタは、データの記憶と供給を行うことができる任意の 素子である。レジスタの他の機能については後述する。レジスタはプロセッサ のパッケージの一部であるとは限らない。
DEST:データ・アドレスである。
SRC1:データ・アドレスである。
SRC2:データ・アドレスである。
ソース1:SRC1によってアドレス指定されたレジスタに格納されているデータで
ある。
ソース2:SRC2によってアドレス指定されたレジスタに格納されているデータで
ある。
第1図を参照すると、本発明の実施形態を実施することができるコンピュータ・システムが、コンピュータ・システム100として図示されている。コンピュータ・システム100は、情報を伝送するバス101またはその他の通信ハードウェアおよびソフトウェアと、バス101に結合された情報を処理するプロセッサ109とを備える。コンピュータ・システム100はさらに、バス101に結合され、プロセッサ109によって実行される情報と命令を記憶するランダム・アクセス・メモリ(RAM)またはその他のダイナミック記憶装置(メイン・メモリ104と呼ぶ)を備える。メイン・メモリ104は、プロセッサ109による命令の実行中に変数またはその他の中間情報を一時的に記憶するためにも使用することができる。コンピュータ・システム100は、バス101に結合され、プロセッサ109のための静的情報および命令を記憶する読取り専用メモリ(ROM)106またはその他のスタティック記憶装置あるいはその両方も備える。バス101には情報と命令を記憶するデータ記憶装置107が結合されている。
第2図にプロセッサ109の詳細図を示す。プロセッサ109は、BiCMOS、CMOS、NMOSなどのいくつかの処理技法のいずれかを使用して、1つまたは複数の基板上に実装することができる。
第4a図に、第1図のコンピュータ・システムで使用可能なデータ形式をいくつか示す。これらのデータ形式は固定小数点である。プロセッサ109はこれらのデータ形式を操作することができる。マルチメディア・アルゴリズムはこれらのデータ形式を使用することが多い。バイト401は8ビットの情報を含む。ワード402は16ビットの情報、すなわち2バイトを含む。ダブルワード403は32ビットの情報、すなわち4バイトを含む。したがって、プロセッサ109はこれらの記憶データ形式のうちの任意の1つに対して操作を行うことができる制御信号を実行する。
以下に、プロセッサ109がパックされたデータを操作するために使用する制御信号形式の一実施形態について説明する。本発明の一実施形態では、制御信号は32ビットで表される。デコーダ202はバス101から制御信号207を受け取ることができる。他の実施形態では、デコーダ202はキャッシュ206からもそのような制御信号を受け取ることができる。
前述のように、T611は演算が任意選択で飽和するかどうかを示す。飽和を可能にした演算の結果がデータの範囲からオーバーフローまたはアンダーフローする場合、その結果はクランプされる。クランプとは、結果がその範囲の最大値または最小値を超える場合、その結果を最大値または最小値に設定することを意味する。アンダーフローの場合、飽和によって結果がその範囲内の最低値にクランプされ、オーバーフローの場合は最高値にクランプされる。各データ形式の許容範囲を表1に示す。
本発明の一実施形態では、標準CISC命令セット(アンパックされたデータ演算)をサポートするだけでなくパックされたデータのシフト演算もサポートすることによって、CSCアプリケーションのパフォーマンスを向上させる。パックされたシフト演算を使用して、高速フーリエ変換、コサイン変換、およびその他のディジタル画像および音声信号処理アルゴリズムの固定小数点インプレリメントの速度を高速化することができる。
表2に、パックされた右シフト算術演算のレジスタ内表現を示す。最初の行のビットはSource1のパックされたデータ表現である。2番目の行のビットはSource2のデータ表現である。3番目の行のビットはResultのパックされたデータ表現である。各データ要素ビットの下の数字はデータ要素番号である。たとえば、Source1データ要素3は 100000002 である。
一実施形態では、アンパックされたデータに対する単一のシフト演算と同じクロック・サイクル数で複数のデータ要素に対するシフト演算を行うことができる。同じクロック・サイクル数での実行を実現するために、並列処理を使用する。すなわち、データ要素に対してシフト演算を行うように各レジスタが同時に命令される。これについては以下で詳述する。第8図に、アンパックされたデータに対するシフト演算と同じクロック・サイクル数でパックされたデータに対するシフト演算を行うことができる回路の一部の一実施形態を示す。
109 プロセッサ
Claims (21)
- 第2の複数のデータ要素を有する第2のパックされたデータを生成するために第1の複数のデータ要素を有する第1のパックされたデータをシフトカウントだけシフトするシフターと;
前記第2の複数のデータ要素のそれぞれの少なくとも1つの数字を置換する補正回路であって、シフトされたデータ要素のいずれのデータ要素においても当該データ要素に対応するすべての置換された数字が同じ値の数字に置換される補正回路とを備え、
前記補正回路が、さらに、前記第1、第2の複数のデータ要素の長さを設定するとともに前記シフトカウントを多ビットで表された複数の値のいずれかの値に設定するよう動作させる制御信号に応答するよう構成されていることを特徴とする装置。 - 複数のデータ要素の長さを設定可能であるとともにシフトカウントを多ビットで表された複数の値のいずれかの値に設定可能な制御命令に応答して前記複数のデータ要素を前記シフトカウントだけシフトするシフト回路と;
第1の値を有する少なくとも1つの置換数字を複数のデータ要素の1つについて生成し、複数のデータ要素の1つに対応しかつ前記少なくとも1つの置換数字からの置換数字を含む被シフトデータ要素を生成するために前記シフト回路に結合された補正回路と
を備えることを特徴とするデジタル処理装置。 - 制御信号を受信し、かつ、この制御信号がパックされたシフト命令フォーマットを含む場合はパックされたシフト演算を示すデコーダと;
前記パックされたシフト命令フォーマットにより長さが設定されるとともにシフトカウントが多ビットで表された複数の値のいずれかの値に設定される1組のデータ要素を有する第1のパックされたデータを保持する記憶位置と;
パックされたシフト演算に応答して第1のパックされたデータを前記シフトカウントだけシフトするシフト回路と;
1組のデータ要素の第1のソース・データ要素について第1の置換数字を生成し、第1のソース・データ要素に対応するシフトされた第1の宛先データ要素を生成するためにシフト回路に結合された回路であって、シフトされた第1の宛先データ要素が第1の置換数字を含んでいる補正回路と
を備えることを特徴とするデジタル処理装置。 - 制御信号を受信し、かつ、該制御信号が1組のデータ要素の長さを設定するとともにシフトカウントを多ビットで表された複数の値のいずれかの値に設定するよう動作可能なパックされたシフト命令フォーマットを有する場合に該1組のデータ要素に関するパックされたシフト演算を示すデコーダと;
パックされたシフト演算に応答して前記1組のデータ要素を前記シフトカウントだけシフトし、かつ、1組のデータ要素の第1の初期符号値を有する第1のデータ要素に対応する第1の2進置換数字を生成するユニットであって、第1のデータ要素について生成された第1の2進置換数字が、シフトされた第1のデータ要素の高位の2進数字を第1の初期符号値で満たす、またはシフトされた第1のデータ要素の低位の2進数字をゼロの値で満たすためのものであり、かつ、第1の2進置換数字を含むシフトされた第1のデータ要素を生成するためのものである機能ユニットとを備えることを特徴とするデジタル処理装置。 - 第1の命令をデコードするように動作可能なデコーダであって、前記命令が、複数のパックされたデータ要素を有する一連の第1のパックされたデータに対して実行されるべきシフト演算を指定するように動作可能であり、さらに、前記一連のパックされたデータに含まれるデータ要素の可変のサイズを指定するとともにシフトカウントを多ビットで表された複数の値のいずれかの値に設定するように動作可能なデコーダと;
前記デコーダに結合され、前記第1の命令に応答して前記複数のパックされたデータ要素を前記シフトカウントだけ独立してシフトするように動作可能な回路と
を備えることを特徴とするプロセッサ。 - パックされたデータをシフトするコンピュータで実施される方法であって、
a)第1の複数のパックされたデータ要素を有する一連の第1のパックされたデータに対して実行されるべきシフト演算を指定し、さらに前記一連のパックされたデータに含まれるパックされた各データ要素の可変のサイズを指定するとともにシフトカウントを多ビットで表された複数の値のいずれかの値に設定する第1の命令をデコードするステップと;
b)前記第1の複数のパックされたデータ要素を前記シフトカウントだけ独立してシフトするステップと
を含むことを特徴とするデジタル処理方法。 - 前記複数のパックされたデータ要素は、各々32ビットの2つのパックされたダブルワードを含むことを特徴とする請求項6記載の方法。
- 前記一連のパックされたデータは、16ビットのデータ要素を有するパックされたワードを示すことを特徴とする請求項6記載の方法。
- 前記シフトするステップは、前記複数のパックされたデータ要素の独立した論理シフトを有し、かつパックされた各データ要素におけるシフト・カウントに対応するビットをゼロで満たすことを特徴とする請求項6〜8のいずれか1項に記載の方法。
- 前記シフトするステップは、前記複数のパックされたデータ要素の独立した算術シフトを有し、かつパックされた各データ要素における前記シフト・カウントに対応するビットを当該各データ要素に対する符号ビットで満たすことを特徴とする請求項6〜8のいずれか1項に記載の方法。
- パックされたバイト・データに対する7、またはパックされたワード・データに対する15、あるいはパックされたダブルワード・データに対する31より大きい前記シフト・カウントが、パックされた各データ要素に、当該各データ要素に対する符号ビットを満たすようにすることを特徴とする請求項10に記載の方法。
- 前記第1の複数のパックされたデータ要素の各々を独立にシフトすることにより生成される第2の複数のパックされたデータ要素を有する一連のパックされたデータにより、前記一連のパックされたデータを上書きすることを特徴とする請求項6〜11のいずれか1項に記載の方法。
- 第1の複数のパックされたデータ要素を格納することができる第1の格納場所と、
多ビットで表された複数の値のいずれかの値に設定される、シフト・カウントを格納することができる第2の格納場所と、
前記第1、第2の格納場所にアクセス可能なデコーダと、
少なくとも1つの命令を表すデータを格納可能であるとともに、該少なくとも1つの命令を前記デコーダに出力可能な第3の格納場所と、
パックされたデータのシフト回路とを備え、
第1の複数のパックされたデータ要素を有し、かつ前記第1の格納場所に格納された一連の第1のパックされたデータに対して実行されるべきシフト演算を指定し、さらに前記一連のパックされたデータに含まれるパックされた各データ要素の可変のサイズを指定する第1の命令を、前記デコーダがデコードし、;
前記第1の複数のパックされたデータ要素を、前記第2の格納場所に格納されたシフト・カウントだけシフトするコンピュータ実施装置。 - 前記パックされたシフト命令フォーマットは前記1組のデータ要素の第1の長さを少なくとも64ビットまたは前記1組のデータ要素の第2の長さを64ビットより短い長さに設定するよう動作可能に構成されているとともに、同じ単一のシフト回路と補正回路とが前記第1の長さのデータ要素及び第2の長さのデータ要素に対してパックされたシフト演算を実行するよう構成したことを特徴とする請求項3記載の装置。
- 前記パックされたシフト命令フォーマットは3以上のバイトを有し、その第3のバイトが第1の3ビット・ソース−宛先アドレスと第2の3ビット・ソースアドレスを保持可能であることを特徴とする請求項3または14のいずれか1項に記載の装置。
- 前記パックされたシフト命令フォーマットは3以上のバイトを有し、その第1、第2のバイトが、前記1組のデータ要素に対して16ビット、32ビットまたは64ビット要素の論理または算術右シフトを実行するための、パックされたシフト演算を指定する演算コードを保持可能であることを特徴とする請求項3、14または15のいずれか1項に記載の装置。
- 前記パックされたシフト命令フォーマットは、
前記パックされたシフト演算のオプコードを指定する第1フィールドと、
第1のパックされたデータを保持する記憶場所に対する最初の3ビットソース・アドレスを示す第2フィールドと、
前記シフト・カウントを示す第3フィールドと
を有することを特徴とする請求項4記載の装置。 - 前記第3フィールドは、即値をシフト・カウントとして指定できるよう前記パックされたシフト演算のためのオプコードに対して3ビット拡張されていることを特徴とする請求項17記載の装置。
- 前記第3フィールドは、シフト・カウントを保持する記憶場所を示す第2の3ビット・ソースアドレスであることを特徴とする請求項17記載の装置。
- 前記パックされたシフト命令フォーマットは前記データの長さを16ビット、32ビットまたは64ビットに設定可能であり、同じ単一の機能ユニットが前記16ビット、32ビットまたは64ビット長のデータ要素に対してパックされたシフト演算を実行することを特徴とする請求項4、17、18または19のいずれか1項に記載された装置。
- 前記第1の命令は、さらに、データ要素の第1のサイズを64ビットに、データ要素の第2のサイズを16ビットまたは32ビットに指定可能であり、前記第1のサイズが指定されたときにデータ要素をシフトするために前記デコーダに接続された同じ回路が、第2のサイズが指定されたときに対してもデータ要素をシフト可能であることを特徴とする請求項5記載の装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US34973094A | 1994-12-01 | 1994-12-01 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8519115A Division JPH10512069A (ja) | 1994-12-01 | 1995-12-01 | パックされたデータのシフト演算を行うプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006172486A JP2006172486A (ja) | 2006-06-29 |
JP3924307B2 true JP3924307B2 (ja) | 2007-06-06 |
Family
ID=23373704
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8519115A Withdrawn JPH10512069A (ja) | 1994-12-01 | 1995-12-01 | パックされたデータのシフト演算を行うプロセッサ |
JP2005364534A Expired - Lifetime JP3924307B2 (ja) | 1994-12-01 | 2005-12-19 | 算術演算装置及び算術演算方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8519115A Withdrawn JPH10512069A (ja) | 1994-12-01 | 1995-12-01 | パックされたデータのシフト演算を行うプロセッサ |
Country Status (9)
Country | Link |
---|---|
US (2) | US5666298A (ja) |
JP (2) | JPH10512069A (ja) |
KR (1) | KR100252411B1 (ja) |
AU (1) | AU4595596A (ja) |
BR (1) | BR9509841A (ja) |
CA (1) | CA2205830C (ja) |
DE (1) | DE19581873C2 (ja) |
WO (1) | WO1996017289A1 (ja) |
ZA (1) | ZA9510127B (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738793B2 (en) * | 1994-12-01 | 2004-05-18 | Intel Corporation | Processor capable of executing packed shift operations |
US6275834B1 (en) * | 1994-12-01 | 2001-08-14 | Intel Corporation | Apparatus for performing packed shift operations |
US7301541B2 (en) * | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
US6295599B1 (en) * | 1995-08-16 | 2001-09-25 | Microunity Systems Engineering | System and method for providing a wide operand architecture |
US5742840A (en) | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US5953241A (en) * | 1995-08-16 | 1999-09-14 | Microunity Engeering Systems, Inc. | Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction |
US6006316A (en) * | 1996-12-20 | 1999-12-21 | International Business Machines, Corporation | Performing SIMD shift and arithmetic operation in non-SIMD architecture by operation on packed data of sub-operands and carry over-correction |
JP3790607B2 (ja) * | 1997-06-16 | 2006-06-28 | 松下電器産業株式会社 | Vliwプロセッサ |
US5864703A (en) * | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US7197625B1 (en) * | 1997-10-09 | 2007-03-27 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US5933650A (en) | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6243803B1 (en) * | 1998-03-31 | 2001-06-05 | Intel Corporation | Method and apparatus for computing a packed absolute differences with plurality of sign bits using SIMD add circuitry |
US6098087A (en) * | 1998-04-23 | 2000-08-01 | Infineon Technologies North America Corp. | Method and apparatus for performing shift operations on packed data |
JP2002522821A (ja) | 1998-08-06 | 2002-07-23 | トライメディア テクノロジーズ インク | データプロセッサとデータ処理方法 |
GB0024312D0 (en) | 2000-10-04 | 2000-11-15 | Advanced Risc Mach Ltd | Single instruction multiple data processing |
US7181484B2 (en) * | 2001-02-21 | 2007-02-20 | Mips Technologies, Inc. | Extended-precision accumulation of multiplier output |
US7162621B2 (en) | 2001-02-21 | 2007-01-09 | Mips Technologies, Inc. | Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration |
US7599981B2 (en) | 2001-02-21 | 2009-10-06 | Mips Technologies, Inc. | Binary polynomial multiplier |
US7711763B2 (en) | 2001-02-21 | 2010-05-04 | Mips Technologies, Inc. | Microprocessor instructions for performing polynomial arithmetic operations |
US7685212B2 (en) * | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
US7818356B2 (en) | 2001-10-29 | 2010-10-19 | Intel Corporation | Bitstream buffer manipulation with a SIMD merge instruction |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
GB2411974C (en) * | 2003-12-09 | 2009-09-23 | Advanced Risc Mach Ltd | Data shift operations |
US20060031272A1 (en) * | 2004-08-05 | 2006-02-09 | International Business Machines Corporation | Alignment shifter supporting multiple precisions |
US8289324B1 (en) | 2007-12-17 | 2012-10-16 | Nvidia Corporation | System, method, and computer program product for spatial hierarchy traversal |
US8502819B1 (en) | 2007-12-17 | 2013-08-06 | Nvidia Corporation | System and method for performing ray tracing node traversal in image rendering |
JP5182053B2 (ja) * | 2008-12-10 | 2013-04-10 | 日本電気株式会社 | バレルシフタ装置及びバレルシフト方法 |
US9747105B2 (en) | 2009-12-17 | 2017-08-29 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
US8564589B1 (en) | 2010-05-17 | 2013-10-22 | Nvidia Corporation | System and method for accelerated ray-box intersection testing |
US8555036B1 (en) | 2010-05-17 | 2013-10-08 | Nvidia Corporation | System and method for performing predicated selection of an output register |
US9442731B2 (en) * | 2014-03-13 | 2016-09-13 | Intel Corporation | Packed two source inter-element shift merge processors, methods, systems, and instructions |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3711692A (en) * | 1971-03-15 | 1973-01-16 | Goodyear Aerospace Corp | Determination of number of ones in a data field by addition |
US3723715A (en) * | 1971-08-25 | 1973-03-27 | Ibm | Fast modulo threshold operator binary adder for multi-number additions |
US4141005A (en) * | 1976-11-11 | 1979-02-20 | International Business Machines Corporation | Data format converting apparatus for use in a digital data processor |
US4161784A (en) * | 1978-01-05 | 1979-07-17 | Honeywell Information Systems, Inc. | Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands |
US4418383A (en) * | 1980-06-30 | 1983-11-29 | International Business Machines Corporation | Data flow component for processor and microprocessor systems |
US4393468A (en) * | 1981-03-26 | 1983-07-12 | Advanced Micro Devices, Inc. | Bit slice microprogrammable processor for signal processing applications |
US4451883A (en) * | 1981-12-01 | 1984-05-29 | Honeywell Information Systems Inc. | Bus sourcing and shifter control of a central processing unit |
US4498177A (en) * | 1982-08-30 | 1985-02-05 | Sperry Corporation | M Out of N code checker circuit |
US4583197A (en) * | 1983-06-30 | 1986-04-15 | International Business Machines Corporation | Multi-stage pass transistor shifter/rotator |
US4653019A (en) * | 1984-04-19 | 1987-03-24 | Concurrent Computer Corporation | High speed barrel shifter |
US4707800A (en) * | 1985-03-04 | 1987-11-17 | Raytheon Company | Adder/substractor for variable length numbers |
JPH073653B2 (ja) * | 1987-06-30 | 1995-01-18 | 三菱電機株式会社 | シフタ |
US4989168A (en) * | 1987-11-30 | 1991-01-29 | Fujitsu Limited | Multiplying unit in a computer system, capable of population counting |
US4931971A (en) * | 1989-01-13 | 1990-06-05 | International Business Machines Corporation | Partial decode shifter/rotator |
KR920007505B1 (ko) * | 1989-02-02 | 1992-09-04 | 정호선 | 신경회로망을 이용한 곱셈기 |
JPH03248226A (ja) * | 1990-02-26 | 1991-11-06 | Nec Corp | マイクロプロセッサ |
US5327571A (en) * | 1990-04-03 | 1994-07-05 | Advanced Micro Devices, Inc. | Processor having decoder for decoding unmodified instruction set for addressing register to read or write in parallel or serially shift in from left or right |
US5201056A (en) * | 1990-05-02 | 1993-04-06 | Motorola, Inc. | RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output |
US5418915A (en) * | 1990-08-08 | 1995-05-23 | Sumitomo Metal Industries, Ltd. | Arithmetic unit for SIMD type parallel computer |
WO1992009968A1 (en) * | 1990-11-27 | 1992-06-11 | Cray Research, Inc. | VECTOR WORD SHIFT BY Vo SHIFT COUNT IN VECTOR SUPERCOMPUTER PROCESSOR |
US5187679A (en) * | 1991-06-05 | 1993-02-16 | International Business Machines Corporation | Generalized 7/3 counters |
US5408670A (en) * | 1992-12-18 | 1995-04-18 | Xerox Corporation | Performing arithmetic in parallel on composite operands with packed multi-bit components |
US5379240A (en) * | 1993-03-08 | 1995-01-03 | Cyrix Corporation | Shifter/rotator with preconditioned data |
US5477543A (en) * | 1994-08-03 | 1995-12-19 | Chromatic Research, Inc. | Structure and method for shifting and reordering a plurality of data bytes |
-
1995
- 1995-11-29 ZA ZA9510127A patent/ZA9510127B/xx unknown
- 1995-12-01 DE DE19581873T patent/DE19581873C2/de not_active Expired - Lifetime
- 1995-12-01 WO PCT/US1995/015682 patent/WO1996017289A1/en active IP Right Grant
- 1995-12-01 AU AU45955/96A patent/AU4595596A/en not_active Abandoned
- 1995-12-01 CA CA002205830A patent/CA2205830C/en not_active Expired - Fee Related
- 1995-12-01 BR BR9509841A patent/BR9509841A/pt not_active IP Right Cessation
- 1995-12-01 KR KR1019970703653A patent/KR100252411B1/ko not_active IP Right Cessation
- 1995-12-01 JP JP8519115A patent/JPH10512069A/ja not_active Withdrawn
-
1996
- 1996-08-22 US US08/701,564 patent/US5666298A/en not_active Expired - Lifetime
-
1997
- 1997-04-17 US US08/840,245 patent/US5818739A/en not_active Expired - Lifetime
-
2005
- 2005-12-19 JP JP2005364534A patent/JP3924307B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5666298A (en) | 1997-09-09 |
JP2006172486A (ja) | 2006-06-29 |
DE19581873C2 (de) | 1999-04-15 |
KR100252411B1 (ko) | 2000-04-15 |
JPH10512069A (ja) | 1998-11-17 |
BR9509841A (pt) | 1997-11-25 |
DE19581873T1 (de) | 1997-12-11 |
US5818739A (en) | 1998-10-06 |
ZA9510127B (en) | 1996-06-06 |
WO1996017289A1 (en) | 1996-06-06 |
AU4595596A (en) | 1996-06-19 |
CA2205830C (en) | 2000-08-15 |
CA2205830A1 (en) | 1996-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3924307B2 (ja) | 算術演算装置及び算術演算方法 | |
JP3615222B2 (ja) | 複合オペランドのパック演算機能を有するマイクロプロセッサ | |
US5675526A (en) | Processor performing packed data multiplication | |
US7451169B2 (en) | Method and apparatus for providing packed shift operations in a processor | |
US5819101A (en) | Method for packing a plurality of packed data elements in response to a pack instruction | |
US7480686B2 (en) | Method and apparatus for executing packed shift operations | |
WO1996017292A1 (en) | Microprocessor with compare operation of composite operands |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20070130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070223 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100302 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110302 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120302 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130302 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130302 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140302 Year of fee payment: 7 |
|
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 |