JP2009527035A - マイクロプロセッサにおけるパックされた加減演算 - Google Patents
マイクロプロセッサにおけるパックされた加減演算 Download PDFInfo
- Publication number
- JP2009527035A JP2009527035A JP2008554452A JP2008554452A JP2009527035A JP 2009527035 A JP2009527035 A JP 2009527035A JP 2008554452 A JP2008554452 A JP 2008554452A JP 2008554452 A JP2008554452 A JP 2008554452A JP 2009527035 A JP2009527035 A JP 2009527035A
- Authority
- JP
- Japan
- Prior art keywords
- halfword
- register
- designated
- adder
- alu
- 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.)
- Abandoned
Links
- 238000012986 modification Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 10
- 238000000034 method Methods 0.000 claims description 7
- 230000001902 propagating effect Effects 0.000 claims 1
- 238000009738 saturating Methods 0.000 claims 1
- 101100321720 Arabidopsis thaliana PP2AA1 gene Proteins 0.000 abstract 1
- 238000007792 addition Methods 0.000 description 26
- 238000004364 calculation method Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- 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
-
- 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/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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49921—Saturation, i.e. clipping the result to a minimum or maximum value
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
この発明は、一般的には、コンピュータ処理ハードウェアにおける命令処理および算術演算の実行と、このような演算の実行において効率性を改善するための、このような処理ハードウェアの具体的な適合例とに関する。この発明は、より特定的には、高速フーリエ変換および関係付けられる変換の実現例において特に用いられるバタフライ演算に関する。
音声および映像信号処理ならびにマルチメディアの圧縮から自動車の衝突検知に至るまで、今日、広範囲のアプリケーションが自身のアルゴリズムにおいて信号の離散変換を用いる。このような離散変換は、たとえば離散コサイン変換および離散フーリエ変換を含み、1秒あたり数十メガビットを超えるデータ速度でリアルタイムに実行されることがしばしば必要となる。これは、高クロック速度および高速なプロセッサを要求するだけでなく、変換計算における効率性およびこのようなプロセッサによるデータ処理における効率性も要求する。離散変換演算はしばしば、高速フーリエ変換(FFT)を用いることにより効率的に計算され得る。これには、2つの基礎的な「性質」、すなわち時間間引き(クーリー−ターキー;Cooley-Tukey)と、周波数間引き(サンド−ターキー;Sande-Tukey)とがある。FFTの両方の性質は、基礎的な計算要素としていわゆる「バタフライ」計算を含む。バタフライ計算は、他の変換(たとえばウォルシュ−アダマール;Walsh-Hadamard)、およびビタビ符号化/復号化アルゴリズムにおいても用いられる。したがって、処理ハードウェアにおいてバタフライ計算を効率的に実行することには、多くのアプリケーションにおいて多大な価値がある。
ハーフワードに対して演算を行うための単一命令複数データ(single-instruction, multiple-data;SIMD)命令をサポートするならば、マイクロプロセッサは1つの演算において加算および減算の両方を実行するよう用いられるかもしれない。たとえば、(英国の会社組織である)ARMリミテッド(ARM Limited)が提供するARM11プロセッサは、パックされたデータに対して同時にハーフワードの加算および減算を行ない得る命令を有する。したがって、命令SADDSUBX Rd,Rn,RmおよびUADDSUBX Rd,Rn,Rmは、
同様に、命令SSUBADDX Rd,Rn,RmおよびUSUBADDX Rd,Rn,Rmは、
この発明は、異なるソースレジスタに保存される場合でさえ、オペランドとしてどのハーフワードを用いるかを特定し得るパックされたハーフワード加算および減算演算を実行する方法を提供する。これらのハーフワードオペランドは、レジスタまたは他のアドレス指定可能な記憶位置の上または下部分のいずれかに位置し得る。それぞれの和および差の結果が、指定された宛先レジスタの上および下部分のそれぞれへとパックされる。加算および減算の両方は並行して行われる。当該和および差の結果に対する、2等分および符号付きまたは符号なし飽和修正を伴うハーフワード加算および減算演算も与えられてもよい。
この発明は、高速フーリエ変換またはその他の類似の変換を行なうようしばしば用いられるバタフライ計算の部分を高速化するための手段および方法を提供する。特に、同じハーフワードオペランドに対する、パックされたハーフワードの加算および減算演算がマイクロプロセッサにおいて実現され得る。「マイクロプロセッサ」という用語は、ロード−ストア(RISC)およびメモリ指向(CISC)アーキテクチャの両方の様々なデータ処理ハードウェアと、汎用プロセッサ、およびデジタル信号プロセッサのようなアプリケーション独自のプロセッサの両方と、埋込プロセッサとを含むことを意図する。パックされた加減演算は、プロセッサの命令セット内の対応する命令によって、マイクロプロセッサに示され得る。
が通常のフルワード加算器となる。しかしながら、制御信号PROPAGATE_CARRYが0に設定されるときはいつでも、下部ハーフワード加算器15からのCARRY_OUTは上部ハーフワード加算器13に伝搬されない。その代わり、上部ハーフワード加算器13は、そのCARRY_IN値として、マルチプレクサ17から0を受取る。効果的なことに、PROPAGATE_CARRYを0に設定することにより、ワード加算器は2つの別個のハーフワード加算器13および15になる。この0の制御設定は、この発明に従ったパックされたハーフワードの加減演算を実行する際に用いられるものである。
REGとして指定される、レジスタファイル19における別のレジスタが、命令によって、当該演算の結果のための宛先レジスタとして示される。パックされたデータの場合、レジスタファイルにおけるレジスタの各々は、上部ハードワード、すなわち、REGA_T、REGB_T、およびDST_REG_Tと、異なる下部ハーフワード、すなわち、REGA_B、REGB_B、およびDST_REG_Bとの両方に対して指定される記憶位置を有する。
のオペランド入力として選択されるこの場合には、当該オペランドは一般的にはOP_Bとしても指定され得る。)同様に、マルチプレクサ25および26は、ハーフワード加算器13および15の両方へのハーフワードオペランド入力として、REG Aからマルチプレクサ24によって選択される同じハーフワードを供給する。このハーフワードオペランドは、上部ハーフワード加算器13に入力される際にはOP_A_Tとして指定され、下部ハーフワード加算器15に入力される際にはOP_A_Bとして指定される。(同様に、同じハーフワードがハーフワード加算器13および15の両方へのオペランド入力として選択される場合、当該オペランドはOP_Aとしても指定され得る。)0に設定された制御信号PROPAGATE_CARRYと組合せると、ALU11はハーフワード加算器の対として動作することになる。
(g)以下の点を除いて、(c)と同じである。
フワード位置のそれぞれに与えることによって行なわれる加減演算に対応する。
shift right; asr)は、最上位ビットの符号を維持する。すなわち、
から負の値の減算によっても当該最大値を上回り得る。その場合には、最も大きい(最大の正の)符号付きの数(7FFFHで示される)が結果に割当てられることになる。同様に、2つの負の値の加算、または負の値からの正の値の減算により、当該範囲における最小値を下回る和または差の結果が生み出され得る。その場合には、最も小さい(最小の負の)符号付きの数(8000Hで示される)が結果の代わりに割当てられることになる。オーバーフローまたはアンダーフローの存在、したがって飽和についての必要性が、4つの状態、すなわち
式中、〜は論理NOTを意味し、&は論理ANDを意味し、|は論理ORを意味する。オーバーフロー/アンダーフロー状態は、各オペランドの符号ビット(ハーフワードビット15)と和/差の結果との比較の際に示される。オーバーフローは、オペランドAの符号ビットによって単純にアンダーフローと識別され得る。
Claims (9)
- 選択されたオペランドの対に対して、パックされたハーフワードの加算および減算演算を実行するようにされるプロセッサ回路であって、
2つのハーフワード加算器に選択的に分けられ得る加算器回路網を有する算術論理ユニット(ALU)を含み、各ハーフワード加算器は前記ハーフワード加算器へのそれぞれのオペランド入力で受取られたオペランドに対して加算または減算演算のいずれかを行なうよう独立的に選択可能であり、ALUは、上部および下部ハーフワード記憶位置を有する選択可能なレジスタの組を有するレジスタファイルへのアクセスを有し、ALUのハーフワード加算器は、当該レジスタファイルにおける、命令が指定した宛先レジスタの上部および下部ハーフワード記憶位置のそれぞれに対して選択的に結合可能である出力を有し、前記プロセッサ回路はさらに、
レジスタファイルとALUのハーフワード加算器のオペランド入力との間に結合されるマルチプレクサの組を含み、マルチプレクサの組は、レジスタファイルの指定された第1のソースレジスタの指定された上部または下部ハーフワードからの第1のオペランド入力と、レジスタファイルの指定された第2のソースレジスタの指定された上部または下部ハーフワードからの第2のオペランド入力とを、命令が決定した制御信号に応答して選択するよう構成され、当該指定された第2のソースレジスタは必ずしも当該指定された第1のソースレジスタと同じではない、プロセッサ回路。 - マルチプレクサの組は、指定された第1および第2のソースレジスタからの上部および下部ハーフワードオペランドの間での選択のための上部/下部制御信号に応答するマルチプレクサの第1の組を含む、請求項1に記載のプロセッサ回路。
- マルチプレクサの組はさらに、指定された第1および第2のソースレジスタからのハーフワードおよびフルワードのオペランドの間での選択のためのハーフワード/フルワード制御信号に応答するマルチプレクサの第2の組を含む、請求項2に記載のプロセッサ回路。
- ALUは、下部ハーフワード加算器のキャリー出力と上部ハーフワード加算器のキャリー入力との間に結合されるマルチプレクサを含み、当該マルチプレクサは、フルワード加算器を作り出すようキャリー出力を伝搬することと、別個のハーフワード加算器を作り出すようキャリー出力を伝搬しないこととの間で選択を行うためのプロパゲート−キャリー制御信号に応答する、請求項1に記載のプロセッサ回路。
- 2つのハーフワード加算器は、それぞれのハーフワード加算器によってオペランド入力の加算または減算を指定するための別個の加算/減算制御信号に応答する、請求項1に記載のプロセッサ回路。
- ALUの出力と宛先レジスタとの間に結合される結果修正論理をさらに含み、当該結果修正論理は、命令が指定する2等分、符号なし飽和、符号付き飽和、および修正なしのうちのいずれか1つ以上を、ALUのハーフワード出力のそれぞれに対して選択的に実現するよう構成される、請求項1に記載のプロセッサ回路。
- プロセッサ回路の単一演算サイクルにおけるパックされたハーフワードの加算および減算演算を実行する方法であって、
算術論理ユニット(ALU)によってアクセス可能なレジスタファイルの指定された第1のソースレジスタの指定された上部または下部ハーフワードから第1のオペランドを、マルチプレクサの組を用いて選択するステップと、
当該レジスタファイルの指定された第2のソースレジスタの指定された上部または下部
ハーフワードから第2のオペランドをマルチプレクサの組を用いて選択するステップとを含み、当該指定された第2のソースレジスタは指定された第1のソースレジスタと必ずしも同じではなく、前記方法はさらに、
プロセッサ回路の単一演算サイクルにおいて、選択された第1および第2のオペランドのハーフワード加算およびハーフワード減算のそれぞれを、ALUにて並列に行なうステップと、
レジスタファイルの指定された宛先レジスタの上部および下部ハーフワード位置のそれぞれに対して、並列なハーフワードの加算およびハーフワードの減算演算の結果得られる和および差を与えるステップとを含む、方法。 - 和および差を、指定された宛先レジスタの上部および下部ハーフワード位置のそれぞれに対して与える前に、ビットシフトを通じて2等分するステップをさらに含む、請求項7に記載の方法。
- 和および差のそれぞれにおけるオーバーフローまたはアンダーフロー状態を検知し、かつ、もしこのような状態が検知されるならば、このような状態が起こる和または差を指定された宛先レジスタに与える前に、当該和または差を飽和させるステップをさらに含む、請求項7に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/352,711 US7555514B2 (en) | 2006-02-13 | 2006-02-13 | Packed add-subtract operation in a microprocessor |
PCT/US2007/060625 WO2007095408A2 (en) | 2006-02-13 | 2007-01-17 | Packed add-subtract operation in a micrprocessor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009527035A true JP2009527035A (ja) | 2009-07-23 |
Family
ID=38370019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008554452A Abandoned JP2009527035A (ja) | 2006-02-13 | 2007-01-17 | マイクロプロセッサにおけるパックされた加減演算 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7555514B2 (ja) |
EP (1) | EP1987424A4 (ja) |
JP (1) | JP2009527035A (ja) |
KR (1) | KR20080094833A (ja) |
CN (1) | CN101438239A (ja) |
NO (1) | NO20083888L (ja) |
TW (1) | TW200816045A (ja) |
WO (1) | WO2007095408A2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7555514B2 (en) * | 2006-02-13 | 2009-06-30 | Atmel Corportation | Packed add-subtract operation in a microprocessor |
US10802990B2 (en) * | 2008-10-06 | 2020-10-13 | International Business Machines Corporation | Hardware based mandatory access control |
CN102375805B (zh) * | 2011-10-31 | 2014-04-02 | 中国人民解放军国防科学技术大学 | 面向向量处理器的基于simd的fft并行计算方法 |
US9563401B2 (en) | 2012-12-07 | 2017-02-07 | Wave Computing, Inc. | Extensible iterative multiplier |
US9933996B2 (en) | 2012-12-20 | 2018-04-03 | Wave Computing, Inc. | Selectively combinable shifters |
US10289382B2 (en) | 2012-12-20 | 2019-05-14 | Wave Computing, Inc. | Selectively combinable directional shifters |
US9395988B2 (en) | 2013-03-08 | 2016-07-19 | Samsung Electronics Co., Ltd. | Micro-ops including packed source and destination fields |
US9830150B2 (en) * | 2015-12-04 | 2017-11-28 | Google Llc | Multi-functional execution lane for image processor |
US10296342B2 (en) * | 2016-07-02 | 2019-05-21 | Intel Corporation | Systems, apparatuses, and methods for cumulative summation |
US20180088946A1 (en) * | 2016-09-27 | 2018-03-29 | Intel Corporation | Apparatuses, methods, and systems for mixing vector operations |
GB2564853B (en) * | 2017-07-20 | 2021-09-08 | Advanced Risc Mach Ltd | Vector interleaving in a data processing apparatus |
US10802826B2 (en) | 2017-09-29 | 2020-10-13 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US10552154B2 (en) | 2017-09-29 | 2020-02-04 | Intel Corporation | Apparatus and method for multiplication and accumulation of complex and real packed data elements |
US11074073B2 (en) | 2017-09-29 | 2021-07-27 | Intel Corporation | Apparatus and method for multiply, add/subtract, and accumulate of packed data elements |
US11243765B2 (en) * | 2017-09-29 | 2022-02-08 | Intel Corporation | Apparatus and method for scaling pre-scaled results of complex multiply-accumulate operations on packed real and imaginary data elements |
US11256504B2 (en) | 2017-09-29 | 2022-02-22 | Intel Corporation | Apparatus and method for complex by complex conjugate multiplication |
US10795676B2 (en) | 2017-09-29 | 2020-10-06 | Intel Corporation | Apparatus and method for multiplication and accumulation of complex and real packed data elements |
US10514924B2 (en) | 2017-09-29 | 2019-12-24 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US10795677B2 (en) | 2017-09-29 | 2020-10-06 | Intel Corporation | Systems, apparatuses, and methods for multiplication, negation, and accumulation of vector packed signed values |
US10534838B2 (en) | 2017-09-29 | 2020-01-14 | Intel Corporation | Bit matrix multiplication |
US10664277B2 (en) | 2017-09-29 | 2020-05-26 | Intel Corporation | Systems, apparatuses and methods for dual complex by complex conjugate multiply of signed words |
US11880683B2 (en) * | 2017-10-31 | 2024-01-23 | Advanced Micro Devices, Inc. | Packed 16 bits instruction pipeline |
US11502715B2 (en) * | 2020-04-29 | 2022-11-15 | Eagle Technology, Llc | Radio frequency (RF) system including programmable processing circuit performing block coding computations and related methods |
US11411593B2 (en) * | 2020-04-29 | 2022-08-09 | Eagle Technology, Llc | Radio frequency (RF) system including programmable processing circuit performing butterfly computations and related methods |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
GB2317466B (en) * | 1996-09-23 | 2000-11-08 | Advanced Risc Mach Ltd | Data processing condition code flags |
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 |
GB2326253A (en) * | 1997-06-10 | 1998-12-16 | Advanced Risc Mach Ltd | Coprocessor data access control |
US6408320B1 (en) * | 1998-01-27 | 2002-06-18 | Texas Instruments Incorporated | Instruction set architecture with versatile adder carry control |
US7395302B2 (en) * | 1998-03-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing horizontal addition and subtraction |
US6839728B2 (en) * | 1998-10-09 | 2005-01-04 | Pts Corporation | Efficient complex multiplication and fast fourier transform (FFT) implementation on the manarray architecture |
US6272512B1 (en) * | 1998-10-12 | 2001-08-07 | Intel Corporation | Data manipulation instruction for enhancing value and efficiency of complex arithmetic |
EP2267896A3 (en) * | 1999-05-12 | 2013-02-20 | Analog Devices, Inc. | Method for implementing finite impulse response filters |
US6754687B1 (en) * | 1999-11-12 | 2004-06-22 | Pts Corporation | Methods and apparatus for efficient cosine transform implementations |
JP3716695B2 (ja) * | 1999-12-24 | 2005-11-16 | 日本電気株式会社 | 高速アダマール変換器 |
KR100399932B1 (ko) * | 2001-05-07 | 2003-09-29 | 주식회사 하이닉스반도체 | 메모리의 양을 감소시키기 위한 비디오 프레임의압축/역압축 하드웨어 시스템 |
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 |
GB2409065B (en) * | 2003-12-09 | 2006-10-25 | Advanced Risc Mach Ltd | Multiplexing operations in SIMD processing |
KR100645442B1 (ko) | 2005-07-25 | 2006-11-14 | 삼성전자주식회사 | 칼라 하프톤 스크린 설계 방법 및 그 장치 |
US7555514B2 (en) | 2006-02-13 | 2009-06-30 | Atmel Corportation | Packed add-subtract operation in a microprocessor |
-
2006
- 2006-02-13 US US11/352,711 patent/US7555514B2/en not_active Expired - Fee Related
-
2007
- 2007-01-17 KR KR1020087022527A patent/KR20080094833A/ko not_active Application Discontinuation
- 2007-01-17 CN CNA2007800053280A patent/CN101438239A/zh active Pending
- 2007-01-17 JP JP2008554452A patent/JP2009527035A/ja not_active Abandoned
- 2007-01-17 WO PCT/US2007/060625 patent/WO2007095408A2/en active Search and Examination
- 2007-01-17 EP EP07710165A patent/EP1987424A4/en not_active Withdrawn
- 2007-01-30 TW TW096103288A patent/TW200816045A/zh unknown
-
2008
- 2008-09-11 NO NO20083888A patent/NO20083888L/no not_active Application Discontinuation
-
2009
- 2009-06-29 US US12/494,022 patent/US8224883B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
TW200816045A (en) | 2008-04-01 |
EP1987424A4 (en) | 2009-07-29 |
US7555514B2 (en) | 2009-06-30 |
WO2007095408A2 (en) | 2007-08-23 |
US20070192396A1 (en) | 2007-08-16 |
US20090265410A1 (en) | 2009-10-22 |
KR20080094833A (ko) | 2008-10-24 |
NO20083888L (no) | 2008-09-11 |
WO2007095408A3 (en) | 2008-11-20 |
CN101438239A (zh) | 2009-05-20 |
EP1987424A2 (en) | 2008-11-05 |
US8224883B2 (en) | 2012-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009527035A (ja) | マイクロプロセッサにおけるパックされた加減演算 | |
US10474466B2 (en) | SIMD sign operation | |
KR101300431B1 (ko) | 내적 연산을 수행하기 위한 명령 및 논리 | |
JP4480997B2 (ja) | Simd整数乗算上位丸めシフト | |
KR101005718B1 (ko) | 포화와 함께 또는 포화 없이 다중 오퍼랜드들의 누산을 위한 프로세서 감소 유닛 | |
JP4869552B2 (ja) | 符号乗算処理を実行する方法及び装置 | |
US7917568B2 (en) | X87 fused multiply-add instruction | |
GB2553783A (en) | Vector multiply-add instruction | |
JP5456167B2 (ja) | マイクロプロセッサおよびマイクロプロセッサ上での精度が改善された積の和計算のための方法 | |
KR100307980B1 (ko) | 산술 또는 논리 연산의 수행과 동시에 조건 코드 비트를 발생하는 방법 및 시스템 | |
Le-Huu et al. | Towards a RISC instruction set architecture for the 32-bit VLIW DSP processor core | |
JP2006171827A (ja) | 演算処理装置および演算処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090610 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090610 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090617 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20090617 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091210 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20100118 |