JPH05508499A - 特殊目的ブール演算装置のための方法およびその装置 - Google Patents
特殊目的ブール演算装置のための方法およびその装置Info
- Publication number
- JPH05508499A JPH05508499A JP3515589A JP51558991A JPH05508499A JP H05508499 A JPH05508499 A JP H05508499A JP 3515589 A JP3515589 A JP 3515589A JP 51558991 A JP51558991 A JP 51558991A JP H05508499 A JPH05508499 A JP H05508499A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- vector
- boolean
- input
- output
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 27
- 239000013598 vector Substances 0.000 claims description 113
- 239000011159 matrix material Substances 0.000 claims description 13
- 230000009466 transformation Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 41
- 238000007792 addition Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 235000009854 Cucurbita moschata Nutrition 0.000 description 2
- 240000001980 Cucurbita pepo Species 0.000 description 2
- 235000009852 Cucurbita pepo Nutrition 0.000 description 2
- 241001274197 Scatophagus argus Species 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 235000020354 squash Nutrition 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000017105 transposition Effects 0.000 description 2
- 241000287462 Phalacrocorax carbo Species 0.000 description 1
- PKOMXLRKGNITKG-UHFFFAOYSA-L calcium;hydroxy(methyl)arsinate Chemical compound [Ca+2].C[As](O)([O-])=O.C[As](O)([O-])=O PKOMXLRKGNITKG-UHFFFAOYSA-L 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 208000008797 situs inversus Diseases 0.000 description 1
- 239000004334 sorbic acid Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 208000014903 transposition of the great arteries Diseases 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8092—Array of vector units
-
- 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/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
-
- 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
-
- 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/30018—Bit or string instructions
-
- 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/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- 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/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- 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
-
- 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/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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
- G06F9/3834—Maintaining memory consistency
-
- 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
-
- 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/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
特殊目的プール演算装置のための方法およびその装置技 術 分 野
本発明は、コンピュータおよび電子論理システムにおいて用いられる算術論理関
数装置に関する。さらに詳しく言えば、本発明は、極並列ビットレベルブール演
算および行列操作を実行するための特殊目的プール演算装置のための方法および
その装置に関する。
先行技術
最小並列コンピュータ処理システムにおいてベクトルプロセッサを使用する従来
の高速スーパコンピュータの処理速度および柔軟性を向上させる努力において、
本発明に対し先に提出された特許出願である、“C1uster Archit
ecture for a HLghly Parallel 5calar/
Vect。
r Multiprocessor System’と題する、PCT出願番号
PCT/US90107665に記載された高度並列マルチプロセッサのための
クラスタアーキテクチャは、相当数のプロセッサを包含するように最小並列コン
ピュータ処理システムのプロセッサ間連絡の直接接続法を拡張するスーパコンビ
、二一タアーキマルチプロセッサのためのプロセッサ間連絡および調整の問題に
効果的に意を向けているが、極並列問題を演算する、大量並列の単一命令複数デ
ータ(SIMD)または多重命令多重データ(M I MD)プロセッサの効果
的な代替とはなっていない。こうした形式の極並列または超微粒並行問題の場合
、処理要素の個々の能力は、並行して使用できる処理要素の総数はどには重要で
はない。
従来のベクトルプロセッサ型のスーパコンピュータは限られた数のプロセッサし
か有していないので、それらは一般にそうした形式の開局に使用されていない。
従来のベクトルプロセッサ型、アレイプロセッサ型または大量並列コンピュータ
型処理システムによって効率的に解決できない別の形式の極並列問題は、極並列
ビットレベルブール演算、特にビット行列操作である。そのような極並列ビット
操作問題の実例は、NXNビットアレイの移項である。この種のビットレベル操
作を効率的に実行できるような、ある種のスタンドアロン型ハードワイヤードビ
ット操作機が極めて専門的な目的のために生み出されている。しかしながら、よ
り汎用的なコンピュータ処理システムはいずれも、極並列ピット操作問題を効率
的に実行できる能力を有していない。
一部のSIMDおよびMIMD’間遅は従来の大量並列型またはアレイプロセッ
サ型スーパコンピュータによって解決できるが、他の形式のスーパコンピュータ
にもそのような極並列問題を効率的に操作可能にするような方法および装置を付
与することが望ましいであろう。さらに詳しく言えば、汎用コンピュータ処理シ
ステムから独立したスタンドアロン型の特殊なハードワイヤードプロセッサを使
用せずに、極並列ビットレベルプール演算を効率的に解決できるような方法およ
びその装置を付与することが有利である。
発明の概要
本発明は、極並列ビットレベルブール演算、特にビット行列操作を実行できる特
殊目的ブール演算装置のための新規な方法および装置を供する。この特殊目的ブ
ール演算装置は、特に、従来のベクトルプロセッサと協同して使用されるように
適応されており、それにより、ベクトルプロセッサがアレイプロセッサまたは大
量並列スーパコンピュータを要さずに極並列MINDまたはSIMDプール演算
を効果的に解決できるようにする。本発明のプール演算装置は、従来のベクトル
プロセッサにおいて各クロックサイクルでNビット幅のオペランドをNビット幅
の結果に変換するためのユーザプログラム可能な、完全にバイブライン化された
、並列ビット操作デバイスである。このビット操作デバイスは、ベクトルレジス
タからNXNビットステートアレイをロードすることによってプログラムされる
。このビットステートアレイは、そのビット操作デバイスがベクトルレジスタか
らのオペランドのビットストリームに適用する論理変換を指定する。指定された
論理変換は、ベクトルレジスタのオペランドがプール演算装置に適用された時に
ビット操作デバイスによって実行され、その論理変換の結果はベクトルレジスタ
に格納される。
本発明のプール演算装置は、従来のベクトルプロセッサを、極並列ビットレベル
操作および行列問題と同様に、S I MD/M I MD極並列問題について
効果的に使用できるようにする。信号処理のようなS I MD/M I MD
問題の場合、そのビットステートアレイは、入力データをビットごとにフィルタ
するようにプログラムすることができる。この意味で、その個々のビット操作手
段と組み合わされた、NXNビットステートアレイにおける各ビットは、単一の
処理要素として動作する。好適な実施例では、そのプール演算装置は、一体とな
りで各クロックサイクルで64ビット幅のオペランドを64ビット幅の結果に変
換することができる、4096個のそうした個々の処理要素から構成される。
本発明の目的は、並列ビットレベルブール演算を実行するように特に適応された
特殊目的ブール演算装置のための方法およびその装置を供することである。
本発明の第2の目的は、従来のSIMDまたはMIMDアレイプロセッサまたは
大量並列スーパコンピュータを用いずに極並列SIMD演算を解決できる特殊目
的ブール演算装置のための方法およびその装置を供することである。
本発明の第3の目的は、従来のベクトルプロセッサにおいてビットレベル行列操
作を実行できる特殊目的ブール演算装置を供することである。
本発明の上述その他の目的は、図面、好適な実施例の詳細な説明および添付した
請求の範囲によって明白となるであろう。
図面の説明
図1は、メインメモリにリンクを付与するアービトレーションノードに関係する
単一のスカシ/ベクトルプロセッサのブロック図であり、本発明をそのベクトル
処理手段に関係する特殊目的機能単位として示している。
図2は、図1に示したベクトル処理手段の詳細ブロック図である。
図3は、ベクトル処理手段内の本発明の好適な実施例によるプール演算装置の部
分的なブロック図である。
図4a〜4gは、本発明のプール演算装置が実行できる各種演算を示すデータの
概略図である。
図5は、本発明のプール演算装置のプール演算子の代替実施例である。
図6は、ベクトルレジスタユニットを備えたベクトルレジスタおよびスカシレジ
スタ、および、そのユニットの入力および出力経路を示す。
好適な実施例の説明
まず、図1によって、本発明の好適な実施例のための環境を含む単一のプロセッ
サ100を示すブロック図について説明する。本発明の特殊目的ブール演算装置
は、多くの種類のプロセッサにおいて、かつ、本発明の範囲内において、実施で
きることが認識されるであろう。例えば、この特殊目的ブール演算装置は、ベク
トルおよびスカシの両方の処理能力を持たない単一のベクトルプロセッサにおい
ても実施できよう。このプール演算装置はベクトルプロセッサと連係して使用さ
れることが好ましいが、それをスカシプロセッサとともに用いることも可能であ
る。しかしながら、単一命令とのそのような結合によって演算され得るそのビッ
トステートアレイの大きさは、スカシプロセッサに関係する機能単位の大きさが
小さくなるために、やはり小さくなるであろう。あるいはまた、ビットステート
アレイをメモリから直接ロードする必要性のために速度が低下するかもしれない
。
好適な実施例では、プロセッサ100は、スカシ処理手段102およびベクトル
処理手段104に、論理的かつ物理的に分割されている。スカシ処理手段102
およびベクトル処理手段104の両者は、各自のレジスタセットおよび特殊目的
の算術資源を有する。プロセッサ100の全部のレジスタおよびデータ経路は、
64ピツ)(1ワード)幅である。スカシ処理手段102には、64個のスカシ
Sレジスタおよび512個のローカルLレジスタがある。ベクトル処理手段10
4は、16個のベクトルレジスタを有する。このアーキテクチャは、プロセッサ
100の1個当たり総計256個のSレジスタおよびVレジスタの組合せまで支
援することができる。
各プロセッサ100はまた、そのプロセッサ100全体に物理的に分散され、プ
ロセッサ100の動作に関係する制御情報を収集し設定するために使用される、
制御Cレジスタ(図示せず)を最大256個まで有する。
はとんどの従来のスカシ/ベクトルプロセッサと異なり、好適な実施例の高速プ
ロセッサ100を含むスカラ処理手段102およびベクトル処理手段104は、
同時演算の能力を有する。図1および図2に示したように、スカラ処理手段10
2およびベクトル処理手段104の両者は、算術機能単位106の形態で複数の
算術資源を含んでいる。スカラ処理手段102では、算術機能単位106は、ス
カラユニットSUO(除算、ポツプおよびパリティ)106a、スカラユニット
SUI (浮動小数点乗算、整数乗算および論理演算)106b、および、スカ
ラユニット、5U2(浮動小数点加算、整数加算およびシフト演算)106cを
含む。ベクトル処理手段104では、その算術機能単位106は、ベクトルユニ
ットVUO(除算、ポツプ、パリティおよび本発明のプール演算装置)106d
、ベクトルユニットVUIおよびVO2(浮動小数点乗算、整数乗算および論理
演算)106e、および、ベクトルユニットVU3およびVO2(浮動小数点加
算、整数加算、論理演算およびシフト演算)106fを含む。各機能単位106
への内部経路108は、スカラ処理手段102およびベクトル処理手段104に
おいて独立して割り当てられることができ、各機能単位106は並行して動作す
ることが可能で、それにより、スカラ処理手段102およびベクトル処理手段1
04も並行して動作することが可能になる。いずれの機能単位106も、スカラ
処理手段102とベクトル処理手段104との間で共用されることはない。
次に図3によって、本発明のプール演算装置200の動作について説明する。こ
のプール演算装置200は、ベクトル処理手段104に関係する機能単位106
の一つの内部にある。プロセッサ100の好適な実施例では、ワードの大きさは
64ビツトであるので、従って、プール演算装置200は、64X64ビツトで
ある。この実施例では、プール演算装置E200は、VUOの機能単位106d
に関係づけられている。プール演算装置200の大きさおよびそのNXNステー
トビットアレイならびに他の機能単位106に対するプール演算装置200の位
置は、プロセッサ100のワードの大きさ、プロセッサ100内の他の処理要素
の大きさおよびプール演算装置200に特殊目的で使用可能な回路の量に応じた
設計上の選択となることが認識されるであろう。しかし、最適な効率のためには
、プール演算装置200は、有意ビット長を有するワードを入力として容易に受
信し、等しい長さのワードを出力として容易に返信できるように、プロセッサ1
00の近くに配置し、接続するべきであろう。
説明を容易にするために、図3は、プール演算装置200の8×8ビット部分だ
けに関係する回路を示している。各ステートビット202は、好ましくは64×
64であるNXNステートビットアレイの単一のステートビットを表している。
プール演算装置200のビット操作手段204の動作の前に、NXNステートビ
ットアレイの4096個の各ステートビット202は、LDB00L命令を用い
てベクトルレジスタから順次ロードされる。詳細には、行0はベクトル要素0か
らロードされ、行1はベクトル要素1からロードされるといったように、ベクト
ル要素63からロードされる行63まで、以下同様に行われる。好適な実施例で
は、■レジスタは、64個の要素から成る。しかし、さらに大きいかまたは小さ
いベクトルレジスタが本発明と連係して使用することができることが認識される
であろう。例えば、ベクトル長およびベクトルオフセット制御レジスタを転送当
たり64要素だけ指定するように適切に設定してプール演算装置200に入力値
を与えるために、128個の要素を有するVレジスタを使用することができよう
。
このステートビットアレイは、オペランドのビットストリームで実行される論理
変換を指定する。この変換は、BOOL命令が指定されたベクトルレジスタオペ
ランドおよび出力ベクトルレジスタ(結果)によって実行された場合に行われる
。LDBOOLおよびBOOL命令の仕様書の複写は、引用によって本明細書の
一部となる付属書Aとして本願書に付属されている。
ベクトル処理手段104によるBOOL命令の実行は、入力ワード210からの
ベクトルオペランド(ベクトル要素Xベクトル要素)をプール演算装置200へ
入力させる。プール演算装置200は、出力ワード212に格納されるベクトル
結果(ベクトル要素Xベクトル要素)を生じるためにビット操作手段204を用
いて変換を実行する。好適な実施例では、プール演算装置200は、クロックサ
イクル当たり64ビツトの速度で入力ワード210を演算し、同じ速度で出力ワ
ード212に格納される結果を生成する。入力ワード210および出力ワード2
12の両者は、ベクトル処理手段104の各Vレジスタに内部経路および適切な
マルチプレクサによって選択的に接続される。ステートビット202も同じく、
内部経路および適切なマルチプレクサによってベクトル処理手段104の各Vレ
ジスタに選択的に接続される。
その結果、プール演算装置200とベクトル処理手段104のVレジスタのいず
れかの特定の集まりまたは群の間にはまったく依存関係がない。
次に図6によって、ベクトルレジスタユニット232およびその命令制am構に
ついて説明する。
ベクトル制御論理130は、命令発行・メモリインタフェース論理とのインタフ
ェースを取る。この論理は、ベクトルレジスタユニット232の10本の64ビ
ツトデータ経路入力150および12本の64ビツトデータ経路出力152を制
御するためのマルチプレクサ(図示せず)を含む。
ベクトルレジスタへの10本の64ビツトデータ経路入力は、以下と結合されて
いる。
メモリロードボー)116−0
メモリロードボート116−1
メモリロードボート116−2
メモリロードボート116−3
スカシレジスタ120
加算、シフトおよび論理機能単位VU3加算、シフトおよび論理機能単位VU4
乗算および論理機能単位vU1
乗算および論理機能単位VU2
除算、ポツプカウント、パリティ、先行ゼロおよびプール機能単位VUO
ベクトルレジスタからの12本の64ビツトデータ経路出力は、以下を含み、ス
カシレジスタ120と結合さメモリストアポート0/スカラレジスタ118−0
メモリストアボート1/スカラレジスタ118−1除算、ポツプカウント、パリ
ティ、先行ゼロおよびプール機能単位VUO
加算、シフトおよび論理機能単位VU3加算、シフトおよび論理機能単位VU4
乗算および論理機能単位VU2/アドレス収集および分散ボート(9および10
)
乗算および論理機能単位VUI
ベクトルレジスタユニット232は、16個のベクトルレジスタvO〜V15、
および、各機能単位VUO〜VU4について1個ずつ、1群のスカシレジスタ1
54−〇〜154−4を含む。16:1マルチプレクサ(図示せず)は、レジス
タの出力を、機能単位VUO−VU4のjフィールド入力、データ書き込みポー
ト118およびスカシレジスタ120ならびに収集/分散ボートに結合している
。17:1マルチプレクサは、現在実行中の命令のオペランドのいずれか一つが
ベクトルまたはスカシである場合にそれぞれ、Vレジスタの出力またはレジスタ
154−0〜154−4の出力を機能単位VUO〜VU4のにフィールド入力へ
結合させる。第2のスカシレジスタ156−0〜156−4の集合は、各機能単
位VUO〜VU4の待ち行列の従属的に開始された命令のスカシデータについて
付与される。従属的に開始された各命令がその機能単位での実行に付されると、
そのスカシデータはそのレジスタ156−nから対応するレジスタ154−nへ
移される。これらのレジスタは、後述のようにしてその5個のレジスタから充填
される。
各ベクトルレジスタ(vO〜v15)は、クロック当たり1度読み書きすること
ができる。これは、単一のベクトルレジスタが、1度に2個以上の命令のオペラ
ンドを供給することができない、または、1度に2個以上の命令から結果を受け
取ることができないということを意味している。ベクトルレジスタは、それが現
在読み出されている場合、「読み出しを予約」される。これは、そのレジスタを
読み出す別の命令の開始を抑える。同様に、ベクトルレジスタは、それが現在実
行中の命令の目的の結果のレジスタである場合、「書き込みを予約」される。
これは、そのレジスタへ書き込むはずの以降の命令の開始を阻止する。
しかし、単一のベクトルレジスタは、そのレジスタが有効なベクトル命令のjお
よびにフィールドの両者によって指定された場合、単一の機能単位へ2つのオペ
ランドを供給することができる。
ベクトル制御論理130はまた、複数のベクトル命令を連結するための機構も付
与する。これは、ベクトルレジスタからの読み出し命令が、別の命令がそのレジ
スタにデータを書き込んでいる間に、開始することができるということを意味す
る。ベクトル制御は、その新しい命令が、それにデータを供給している先行の命
令より優位にならないように保証する。
ベクトルレジスタが「読み出しを予約」されている場合、そのレジスタに書き込
むための別の命令は開始されない。以前の読み出しが完了すると、数サイクルの
オーバヘッドが存在し、その後、そのベクトルレジスタへの書き込みが開始する
ことになる。
図3に示すような好適な実施例では、ビット操作手段204によって実施される
論理変換は、AND/XORブール関数である。従って、ビット操作手段204
は、各行の末尾にXOR演算子222を伴い、その行の各ビットにAND演算子
220を使用している。入力ワード210は、ステートビットアレイの各行とビ
ットごとに論理積をとられる。このAND演算の結果は次に、排他的論理和をと
られ、各行が出力ワード212に格納される単一の出力ビットを供給するように
、ステートビットアレイの各行について減じられる。出力ワード212はその後
、■レジスタの適切なベクトル要素へその結果として配信される。AND、OR
,XOR,NANDまたはNORといった他のプール演算子も同様に、他の形式
のプール論理結果を生じるために本発明のビット操作手段204において一緒に
組み合わせることができることを理解されるであろう。例えば、XOR演算子2
22はAND演算子と交替できるであろうし、AND演算子222はXOR演算
子と交替できるであろう。この組合せは、特定のビットパターン結合のビット行
列を探索する際に有効であろう。
次に図4a〜4gによって、本発明の好適な実施例のプール演算装置200の想
定可能な演算のいくつかを示す。これらの略図では、ビットステートアレイ20
2の内容が示されており、次に、入力ワード210ヘベクトル要素×ベクトル要
素としてロードされる入力ベクトルの内容が続き、最後にベクトル要素Xベクト
ル要素として出力ワード210へ格納される際の出力ベクトルの内容が示されて
いる。入力ベクトルおよび出力ベクトルの表の内容の表記法は、red、63J
はベクトル要素0、ビット63を指し、re61.62Jはベクトル要素61、
ビット62を指すといったようになっている。
図4aは、入力ベクトルが出力ベクトルに同一に再現される一致演算を示してい
る。図4bは、入力ベクトルのビットの順序が行ごとに反転されるビット反転演
算を示している。図4Cは、入力ベクトルの選択された列(この例では、列0,
62および63)が抽出されるフィールド抽出演算を示している。図4dは、選
択された列が抽出され、残りの列がその空白列を充填するために右シフトされる
選択(バッキング)演算を示している。
図4eは、入力ビツトステートアレイ202による指定に従って列が「ランダム
にシャツフル」される順列演算を示している。図4fは、入力ベクトルのビット
の順序が列ごとに反転される回転演算を示している。この演算の場合、オペラン
ドベクトルがビットステートアレイ202にロードされ、入力ベクトルは所望の
論理演算を生じるために用いられる一定のビットステート行列を保持するために
使用される点に留意されたい。最後に、図4gは、オペランドベクトルのビット
の全部が列および行の両方について反転される移項演算を示している。
図4gは、本発明が、本発明によらなければ従来のベクトルプロセッサまたはア
レイプロセッサにとっては極めて困難であるはずの並列ビット操作をいかにして
実行できる能力があるかを述べる好例となろう。この移項演算は、ビット行列の
完全な移項が望まれる信号または画像処理において使用される共通の行列演算で
ある。
AND/XORブール関数以外の補助的なプール演算子が複数の論理移項演算に
お°ける選択を付与するためにビット操作手段204と交換可能に接続し得るこ
とも認識されるであろう。例えば、図5に示すように、2つ以上の論理変換がビ
ット操作手段204に関係する回路において実施できよう。その後、所望の論理
変換がBOOL命令の下位演算コードフィールドで指定できよう。この場合、下
位演算コードフィールドが0であるBOOL命令は、AND/XORブール結合
を選択するのに対し、下位演算コードフィールドが1であるBOOL命令は、X
OR/ANDプール結合を選択することになろう。
アベンディクス A−1
LDBOOLv 28xx xxKK
ブール演算装置にベクトルをロードするアセンブリ構文 1dbool vk
ホールド発行条件 なし
ホールド初期化条件 vkは読み出しに予約。
VLは予約。
FUO機能単位経路は予約。
機能 これは、ベクトルレジスタV
kの内容をプール演算装置に
ロードする。要素0は出力ビ
ット0に対応するワードにロ
ードされ、以下同様。ペクト
ル長がプール演算装置の大き
さより小さい場合、残りのワ
ードは不変化。それらの要素
0、、、(VL)−1だけが
変更される。
完了時 vkが読み出される: TBD+ (vL)サイクル
FUO機能単位経路は自由:
(VL)サイクルまたはTBD
サイクル。いずれか大きいは
う。
例外 なし
注釈 VMはこの演算にいかなる作
用も持たない。
アベンディクス A〜2
BOOLvv 2911XXKK
ブール演算装置でベクトルを演算する
アセンブリ構文 bool vk viホールド発行条件 なし
ホールド初期化条件 vkは読み出しに予約、viは書き込みに予約。
VLは予約。
FUO機能単位経路は予約。
機能 ベクトルレジスタvkの各要
素がプール演算装置に供給さ
れる。結果の各ビットはAN
D−XOR演算によって得ら
れ、そのワードはそのビット
についてプール演算装置に格
納される。すなわち、結果の
要素′ e′のビット′b′は、
プール算術演算装置に最後に
格納されたワード゛ b′およ
びベクトルvkのワード′ e′
の関数である。viのそれら
の要素0.、、−(VL)−1
だけが変更され、VMの対応
するビットが1である要素だ
けが変更される。
完了時 vkが読み出される: TBD+ (VL)サイクル
FUO機能単位経路は自由:
(VL)サイクルまたはTB
D(未決定)サイクル。いず
れか大きいほう。
例外 なし
注釈 この機能は、チルト、ビット
反転、ビット圧縮などを実施
するために使用される。
好ましい実施例の説明を提示してきたが、本発明の精神を逸脱することなく、各
種変更がなし得ることが想定される。従って、本発明の範囲は、好適な実施例の
説明ではなく、添付請求の範囲によって決定されなければならないと意図する。
Fig、 1
Fig、3
Fig、4a
Fig、5
要 約 書
特殊目的プール演算装置(200)は、極並列ビットレベルブール演算、特にビ
ット行列操作を実行できる。
この特殊目的プール演算装置(200)は、特に、従来ロセッサまたは大量並列
スーパコンピュータを要さずに極並列MIMDまたはSIMDプール演算を効果
的に解決できるようにする。
国際調査報告
Claims (12)
- 1.特殊目的ブール演算装置であって、N行およびN列のN×N次元を有するブ ール行列のビットレベル値を格納するためのビットステートアレイ手段と、 Nビット幅のオペランドのビットレベル値を供給するための入力ベクトル手段と 、 前記ビットステートアレイ手段および前記入力ベクトル手段に動作可能に接続さ れている、前記ブール行列および前記入力オペランドの各対応するビットのブー ル演算を実行するためのビット操作手段と、前記ビット操作手段に動作可能に接 続されている、前記ブール演算の結果をNビット幅の結果として受信するための 出力ベクトル手段とを含むことを特徴とする特殊目的ブール演算装置。
- 2.請求項1記載のブール演算装置であって、前記入力ベクトル手段および前記 出力ベクトル手段がベクトルプロセッサに動作可能に接続されていることを特徴 とする特殊目的ブール演算装置。
- 3.請求項1記載のブール演算装置であって、前記ビット操作手段が、前記ビッ トステートアレイ手段および前記入力ベクトル手段の各ビット値に関係するAN D演算子、および、前記ブール行列の各行の各AND演算子の出力端子に動作可 能に接続されたXOR演算子を含むことを特徴とする特殊目的ブール演算装置。
- 4.請求項1記載のブール演算装置であって、前記ビット操作手段が、各クロッ クサイクルで1つの入力オペランドを受信し、1つの出力ベクトルを生成する能 力を有することを特徴とする特殊目的ブール演算装置。
- 5.請求項1記載のブール演算装置であって、前記ビット操作手段がさらに、前 記ビット操作手段を呼び出す命令における下位演算コードフィールドに応答して 前記ビット操作手段によって実行される1つ以上のブール演算を選択するための 制御手段を含むことを特徴とする特殊目的ブール演算装置。
- 6.ベクトルオペランドについて極並列ビットレベル操作を実行するための方法 であって、(a)Nビット幅のオペランドについて実行される論理変換を指定す るビット行列を表現する1群のビット値を備えたN×Nビットステートアレイを ロードする段階と、 (b)前記Nビット幅のオペランドを入力ワードをロードする段階と、 (c)行×行の結果を生成するために前記入力ワードの各ビットと前記ビットス テートアレイの各行との間でビットごとに第1の論理演算を実行する段階と、( d)各行の結果を単一ビット出力に減少するために第2の論理演算を実行する段 階と、 (e)出力ワードの各行について前記単一のビット出力を格納する段階とを含む ことを特徴とする方法。
- 7.請求項6記載の方法であって、段階(a)が前記N×Nビットステートアレ イをベクトルレジスタから順次ロードすることによって実施されることを特徴と する方法。
- 8.請求項6記載の方法であって、段階(b)が前記入力ワードをベクトルレジ スタからロードすることによって実施されることを特徴とする方法。
- 9.請求項6記載の方法であって、段階(a)が前記N×Nビットステートアレ イをベクトルレジスタから順次ロードすることによって実施され、段階(b)が 前記入力ワードをベクトルレジスタからロードすることによって実施され、かつ 、 (f)前記出力ワードをベクトルレジスタに格納する段階をさらに含むことを特 徴とする方法。
- 10.請求項6記載の方法であって、前記第1の論理演算がAND演算であり、 前記第2の論理演算がXOR演算であることを特徴とする方法。
- 11.請求項6記載の方法であって、前記第1の論理演算がXOR演算であり、 前記第2の論理演算がAND演算であることを特徴とする方法。
- 12.請求項6記載の方法であって、1つの出力ベクトル結果が各クロックサイ クルで生成されることを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US536,197 | 1990-06-11 | ||
US07/536,197 US5175862A (en) | 1989-12-29 | 1990-06-11 | Method and apparatus for a special purpose arithmetic boolean unit |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05508499A true JPH05508499A (ja) | 1993-11-25 |
Family
ID=24137551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3515589A Pending JPH05508499A (ja) | 1990-06-11 | 1991-06-10 | 特殊目的ブール演算装置のための方法およびその装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5175862A (ja) |
JP (1) | JPH05508499A (ja) |
KR (1) | KR930701786A (ja) |
AU (1) | AU8525291A (ja) |
WO (1) | WO1991020027A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018500653A (ja) * | 2014-12-23 | 2018-01-11 | インテル・コーポレーション | ベクトルブロードキャストおよびxorand論理命令のための装置および方法 |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
US5623650A (en) * | 1989-12-29 | 1997-04-22 | Cray Research, Inc. | Method of processing a sequence of conditional vector IF statements |
US5544337A (en) * | 1989-12-29 | 1996-08-06 | Cray Research, Inc. | Vector processor having registers for control by vector resisters |
US5598547A (en) * | 1990-06-11 | 1997-01-28 | Cray Research, Inc. | Vector processor having functional unit paths of differing pipeline lengths |
US5765015A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Slide network for an array processor |
US5809292A (en) | 1990-11-13 | 1998-09-15 | International Business Machines Corporation | Floating point for simid array machine |
US5617577A (en) | 1990-11-13 | 1997-04-01 | International Business Machines Corporation | Advanced parallel array processor I/O connection |
US5815723A (en) * | 1990-11-13 | 1998-09-29 | International Business Machines Corporation | Picket autonomy on a SIMD machine |
US5625836A (en) * | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
US5966528A (en) * | 1990-11-13 | 1999-10-12 | International Business Machines Corporation | SIMD/MIMD array processor with vector processing |
US5963745A (en) | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | APAP I/O programmable router |
US5734921A (en) * | 1990-11-13 | 1998-03-31 | International Business Machines Corporation | Advanced parallel array processor computer package |
US5794059A (en) | 1990-11-13 | 1998-08-11 | International Business Machines Corporation | N-dimensional modified hypercube |
US5828894A (en) * | 1990-11-13 | 1998-10-27 | International Business Machines Corporation | Array processor having grouping of SIMD pickets |
DE69131272T2 (de) * | 1990-11-13 | 1999-12-09 | International Business Machines Corp., Armonk | Paralleles Assoziativprozessor-System |
US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
US5765011A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
US5588152A (en) * | 1990-11-13 | 1996-12-24 | International Business Machines Corporation | Advanced parallel processor including advanced support hardware |
US5713037A (en) * | 1990-11-13 | 1998-01-27 | International Business Machines Corporation | Slide bus communication functions for SIMD/MIMD array processor |
US5630162A (en) * | 1990-11-13 | 1997-05-13 | International Business Machines Corporation | Array processor dotted communication network based on H-DOTs |
US5765012A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library |
US5963746A (en) * | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | Fully distributed processing memory element |
US5594918A (en) * | 1991-05-13 | 1997-01-14 | International Business Machines Corporation | Parallel computer system providing multi-ported intelligent memory |
JP2642039B2 (ja) * | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
US5848286A (en) * | 1994-03-29 | 1998-12-08 | Cray Research, Inc. | Vector word shift by vo shift count in vector supercomputer processor |
US6643765B1 (en) | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US5956265A (en) * | 1996-06-07 | 1999-09-21 | Lewis; James M. | Boolean digital multiplier |
US6150836A (en) * | 1997-06-13 | 2000-11-21 | Malleable Technologies, Inc. | Multilevel logic field programmable device |
US6006321A (en) | 1997-06-13 | 1999-12-21 | Malleable Technologies, Inc. | Programmable logic datapath that may be used in a field programmable device |
US6334176B1 (en) * | 1998-04-17 | 2001-12-25 | Motorola, Inc. | Method and apparatus for generating an alignment control vector |
US6438569B1 (en) | 1999-09-20 | 2002-08-20 | Pmc-Sierra, Inc. | Sums of production datapath |
WO2003034200A1 (en) * | 2000-08-11 | 2003-04-24 | Arithmatica Limited | A parallel counter and a logic circuit for performing multiplication |
AU2002229155A1 (en) * | 2000-08-04 | 2002-02-18 | Automatic Parallel Designs Limited | A parallel counter and a logic circuit for performing multiplication |
US20050021585A1 (en) * | 2000-08-04 | 2005-01-27 | Dmitriy Rumynin | Parallel counter and a logic circuit for performing multiplication |
GB2365636B (en) | 2000-08-04 | 2005-01-05 | Automatic Parallel Designs Ltd | A parallel counter and a multiplication logic circuit |
US7136888B2 (en) * | 2000-08-04 | 2006-11-14 | Arithmatica Limited | Parallel counter and a logic circuit for performing multiplication |
US6883011B2 (en) | 2000-08-04 | 2005-04-19 | Arithmatica Limited | Parallel counter and a multiplication logic circuit |
GB2373602B (en) * | 2001-03-22 | 2004-11-17 | Automatic Parallel Designs Ltd | A multiplication logic circuit |
AU2002234802A1 (en) * | 2001-12-21 | 2003-07-09 | Nokia Corporation | A method for signal estimation in a receiver |
US20030196072A1 (en) * | 2002-04-11 | 2003-10-16 | Chinnakonda Murali S. | Digital signal processor architecture for high computation speed |
US8090928B2 (en) * | 2002-06-28 | 2012-01-03 | Intellectual Ventures I Llc | Methods and apparatus for processing scalar and vector instructions |
US7260595B2 (en) * | 2002-12-23 | 2007-08-21 | Arithmatica Limited | Logic circuit and method for carry and sum generation and method of designing such a logic circuit |
GB2398944B (en) * | 2003-01-14 | 2005-07-20 | Arithmatica Ltd | A logic circuit |
US7042246B2 (en) * | 2003-02-11 | 2006-05-09 | Arithmatica Limited | Logic circuits for performing threshold functions |
US7308471B2 (en) | 2003-03-28 | 2007-12-11 | Arithmatica Limited | Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding |
GB2401962B (en) * | 2003-05-23 | 2005-05-18 | Arithmatica Ltd | A sum bit generation circuit |
US20050251649A1 (en) * | 2004-04-23 | 2005-11-10 | Sony Computer Entertainment Inc. | Methods and apparatus for address map optimization on a multi-scalar extension |
AT501213B1 (de) * | 2004-12-03 | 2006-10-15 | On Demand Microelectronics Gmb | Verfahren zum steuern der zyklischen zuführung von instruktionswörtern zu rechenelementen und datenverarbeitungseinrichtung mit einer solchen steuerung |
US7933405B2 (en) * | 2005-04-08 | 2011-04-26 | Icera Inc. | Data access and permute unit |
US7814297B2 (en) * | 2005-07-26 | 2010-10-12 | Arm Limited | Algebraic single instruction multiple data processing |
US8954484B2 (en) * | 2009-06-12 | 2015-02-10 | Cray Inc. | Inclusive or bit matrix to compare multiple corresponding subfields |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
US8904366B2 (en) * | 2009-05-15 | 2014-12-02 | International Business Machines Corporation | Use of vectorization instruction sets |
CN101901131B (zh) * | 2010-07-22 | 2013-08-21 | 上海交通大学 | 音频编解码比特级读写加速装置及其加速读写方法 |
CN103329092B (zh) * | 2011-01-21 | 2018-03-23 | 恩智浦美国有限公司 | 用于计算预测值的集成电路装置和方法 |
US10261786B2 (en) * | 2017-03-09 | 2019-04-16 | Google Llc | Vector processing unit |
US10534838B2 (en) | 2017-09-29 | 2020-01-14 | Intel Corporation | Bit matrix multiplication |
US10802826B2 (en) | 2017-09-29 | 2020-10-13 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US11256504B2 (en) | 2017-09-29 | 2022-02-22 | Intel Corporation | Apparatus and method for complex by complex conjugate multiplication |
US11455171B2 (en) * | 2019-05-29 | 2022-09-27 | Gray Research LLC | Multiported parity scoreboard circuit |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3308436A (en) * | 1963-08-05 | 1967-03-07 | Westinghouse Electric Corp | Parallel computer system control |
US3364472A (en) * | 1964-03-06 | 1968-01-16 | Westinghouse Electric Corp | Computation unit |
US4034354A (en) * | 1975-11-21 | 1977-07-05 | The Bendix Corporation | Programmable interface controller for numerical machine systems |
US4150434A (en) * | 1976-05-08 | 1979-04-17 | Tokyo Shibaura Electric Co., Ltd. | Matrix arithmetic apparatus |
US4084252A (en) * | 1977-01-03 | 1978-04-11 | Honeywell Information Systems Inc. | Current mode 5-bit arithmetic logic unit with parity |
US4081860A (en) * | 1977-01-03 | 1978-03-28 | Honeywell Information Systems Inc. | Current mode 4-bit arithmetic logic unit with parity |
US4380046A (en) * | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
US4287566A (en) * | 1979-09-28 | 1981-09-01 | Culler-Harrison Inc. | Array processor with parallel operations per instruction |
US4546433A (en) * | 1981-07-04 | 1985-10-08 | Gec Avionics Limited | Arrangement for processing data in a two-dimensional array |
JPS58134357A (ja) * | 1982-02-03 | 1983-08-10 | Hitachi Ltd | ベクトルプロセッサ |
US4601055A (en) * | 1984-04-10 | 1986-07-15 | The United States Of America As Represented By The Secretary Of Commerce | Image processor |
US4648045A (en) * | 1984-05-23 | 1987-03-03 | The Board Of Trustees Of The Leland Standford Jr. University | High speed memory and processor system for raster display |
US4645953A (en) * | 1984-07-03 | 1987-02-24 | Monolithic Memories, Inc. | Current source which saves power in programmable logic array circuitry |
US4730130A (en) * | 1987-01-05 | 1988-03-08 | Motorola, Inc. | Writable array logic |
US5058001A (en) * | 1987-03-05 | 1991-10-15 | International Business Machines Corporation | Two-dimensional array of processing elements for emulating a multi-dimensional network |
US5038312A (en) * | 1988-11-14 | 1991-08-06 | Nec Corporation | Data processing system capable of performing vector/matrix processing and arithmetic processing unit incorporated therein |
US4956801A (en) * | 1989-09-15 | 1990-09-11 | Sun Microsystems, Inc. | Matrix arithmetic circuit for processing matrix transformation operations |
-
1990
- 1990-06-11 US US07/536,197 patent/US5175862A/en not_active Expired - Lifetime
-
1991
- 1991-06-10 AU AU85252/91A patent/AU8525291A/en not_active Abandoned
- 1991-06-10 KR KR1019920703180A patent/KR930701786A/ko not_active Application Discontinuation
- 1991-06-10 JP JP3515589A patent/JPH05508499A/ja active Pending
- 1991-06-10 WO PCT/US1991/004076 patent/WO1991020027A1/en unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018500653A (ja) * | 2014-12-23 | 2018-01-11 | インテル・コーポレーション | ベクトルブロードキャストおよびxorand論理命令のための装置および方法 |
Also Published As
Publication number | Publication date |
---|---|
US5175862A (en) | 1992-12-29 |
WO1991020027A1 (en) | 1991-12-26 |
KR930701786A (ko) | 1993-06-12 |
AU8525291A (en) | 1992-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH05508499A (ja) | 特殊目的ブール演算装置のための方法およびその装置 | |
US6816961B2 (en) | Processing architecture having field swapping capability | |
US5175863A (en) | Signal data processing system having independently, simultaneously operable alu and macu | |
US5287532A (en) | Processor elements having multi-byte structure shift register for shifting data either byte wise or bit wise with single-bit output formed at bit positions thereof spaced by one byte | |
CN100410919C (zh) | 处理器 | |
CN107408037A (zh) | 配置成对可变长度向量进行操作的单片向量处理器 | |
KR101202445B1 (ko) | 프로세서 | |
US20170329610A1 (en) | Flexible microprocessor register file | |
US7350054B2 (en) | Processor having array of processing elements whose individual operations and mutual connections are variable | |
IL267939A (en) | Expanding an account in a data processing device | |
US11513796B2 (en) | Multiply-accumulation in a data processing apparatus | |
JPH07152733A (ja) | ベクトル・データを処理するコンピュータ・システムおよび方法 | |
EP3586228B1 (en) | Element by vector operations in a data processing apparatus | |
US7013321B2 (en) | Methods and apparatus for performing parallel integer multiply accumulate operations | |
KR100765567B1 (ko) | 산술 논리 유닛 및 스택을 가지는 데이터 프로세서, 멀티미디어 장치 및 컴퓨터 판독가능 기록 매체 | |
US7111155B1 (en) | Digital signal processor computation core with input operand selection from operand bus for dual operations | |
EP4073632B1 (en) | Rotating accumulator for vector operations | |
US6975250B2 (en) | Methods and systems for data manipulation | |
US7107302B1 (en) | Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units | |
US7587582B1 (en) | Method and apparatus for parallel arithmetic operations | |
JPH0345420B2 (ja) | ||
JP2004503872A (ja) | 共同利用コンピュータシステム | |
KR20010072490A (ko) | 레지스터 스택을 포함하는 데이터 프로세서, 그 처리방법, 컴퓨터 프로그램 제품 및 멀티미디어 장치 | |
JPH1063647A (ja) | 行列演算装置 | |
KR100896269B1 (ko) | SIMD/SISD/Row/Column 동작을 할 수있는 SIMD 병렬 프로세서 |