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
Application number
JP3515589A
Other languages
English (en)
Inventor
フェルプス,アンドルー イー.
ビアード,ダグラス アール.
ウッヅマンシー,マイケル エイ.
Original Assignee
クレイ、リサーチ、インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クレイ、リサーチ、インコーポレーテッド filed Critical クレイ、リサーチ、インコーポレーテッド
Publication of JPH05508499A publication Critical patent/JPH05508499A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8092Array of vector units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent 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. 1.特殊目的ブール演算装置であって、N行およびN列のN×N次元を有するブ ール行列のビットレベル値を格納するためのビットステートアレイ手段と、 Nビット幅のオペランドのビットレベル値を供給するための入力ベクトル手段と 、 前記ビットステートアレイ手段および前記入力ベクトル手段に動作可能に接続さ れている、前記ブール行列および前記入力オペランドの各対応するビットのブー ル演算を実行するためのビット操作手段と、前記ビット操作手段に動作可能に接 続されている、前記ブール演算の結果をNビット幅の結果として受信するための 出力ベクトル手段とを含むことを特徴とする特殊目的ブール演算装置。
  2. 2.請求項1記載のブール演算装置であって、前記入力ベクトル手段および前記 出力ベクトル手段がベクトルプロセッサに動作可能に接続されていることを特徴 とする特殊目的ブール演算装置。
  3. 3.請求項1記載のブール演算装置であって、前記ビット操作手段が、前記ビッ トステートアレイ手段および前記入力ベクトル手段の各ビット値に関係するAN D演算子、および、前記ブール行列の各行の各AND演算子の出力端子に動作可 能に接続されたXOR演算子を含むことを特徴とする特殊目的ブール演算装置。
  4. 4.請求項1記載のブール演算装置であって、前記ビット操作手段が、各クロッ クサイクルで1つの入力オペランドを受信し、1つの出力ベクトルを生成する能 力を有することを特徴とする特殊目的ブール演算装置。
  5. 5.請求項1記載のブール演算装置であって、前記ビット操作手段がさらに、前 記ビット操作手段を呼び出す命令における下位演算コードフィールドに応答して 前記ビット操作手段によって実行される1つ以上のブール演算を選択するための 制御手段を含むことを特徴とする特殊目的ブール演算装置。
  6. 6.ベクトルオペランドについて極並列ビットレベル操作を実行するための方法 であって、(a)Nビット幅のオペランドについて実行される論理変換を指定す るビット行列を表現する1群のビット値を備えたN×Nビットステートアレイを ロードする段階と、 (b)前記Nビット幅のオペランドを入力ワードをロードする段階と、 (c)行×行の結果を生成するために前記入力ワードの各ビットと前記ビットス テートアレイの各行との間でビットごとに第1の論理演算を実行する段階と、( d)各行の結果を単一ビット出力に減少するために第2の論理演算を実行する段 階と、 (e)出力ワードの各行について前記単一のビット出力を格納する段階とを含む ことを特徴とする方法。
  7. 7.請求項6記載の方法であって、段階(a)が前記N×Nビットステートアレ イをベクトルレジスタから順次ロードすることによって実施されることを特徴と する方法。
  8. 8.請求項6記載の方法であって、段階(b)が前記入力ワードをベクトルレジ スタからロードすることによって実施されることを特徴とする方法。
  9. 9.請求項6記載の方法であって、段階(a)が前記N×Nビットステートアレ イをベクトルレジスタから順次ロードすることによって実施され、段階(b)が 前記入力ワードをベクトルレジスタからロードすることによって実施され、かつ 、 (f)前記出力ワードをベクトルレジスタに格納する段階をさらに含むことを特 徴とする方法。
  10. 10.請求項6記載の方法であって、前記第1の論理演算がAND演算であり、 前記第2の論理演算がXOR演算であることを特徴とする方法。
  11. 11.請求項6記載の方法であって、前記第1の論理演算がXOR演算であり、 前記第2の論理演算がAND演算であることを特徴とする方法。
  12. 12.請求項6記載の方法であって、1つの出力ベクトル結果が各クロックサイ クルで生成されることを特徴とする方法。
JP3515589A 1990-06-11 1991-06-10 特殊目的ブール演算装置のための方法およびその装置 Pending JPH05508499A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018500653A (ja) * 2014-12-23 2018-01-11 インテル・コーポレーション ベクトルブロードキャストおよびxorand論理命令のための装置および方法

Families Citing this family (60)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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 병렬 프로세서