JPH05233569A - 動的に複数モードで動作するコンピュータ・システム - Google Patents

動的に複数モードで動作するコンピュータ・システム

Info

Publication number
JPH05233569A
JPH05233569A JP92272758A JP27275892A JPH05233569A JP H05233569 A JPH05233569 A JP H05233569A JP 92272758 A JP92272758 A JP 92272758A JP 27275892 A JP27275892 A JP 27275892A JP H05233569 A JPH05233569 A JP H05233569A
Authority
JP
Japan
Prior art keywords
instruction
mode
processing
computer system
simd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP92272758A
Other languages
English (en)
Other versions
JP2647315B2 (ja
Inventor
Peter M Kogge
ピーター・マイケル・コッジ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH05233569A publication Critical patent/JPH05233569A/ja
Application granted granted Critical
Publication of JP2647315B2 publication Critical patent/JP2647315B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • 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
    • 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/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • 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/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • 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
    • 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/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • 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/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • 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/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/803Three-dimensional arrays or hypercubes
    • 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
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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
    • 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/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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/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/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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
    • 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
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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
    • G06F9/3888Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
    • 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
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B75/00Other engines
    • F02B75/02Engines characterised by their cycles, e.g. six-stroke
    • F02B2075/022Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
    • F02B2075/027Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four

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)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Multimedia (AREA)
  • Nonlinear Science (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)
  • Error Detection And Correction (AREA)
  • Dram (AREA)

Abstract

(57)【要約】 【目的】 処理装置のアレイを利用して複数モードの処
理を動的に実現し、処理要素のアレイ内で並列にプログ
ラムを実行できるようにするコンピュータ・システムを
提供すること。 【構成】 本発明のコンピュータ・システムは複数グル
ープの処理装置(処理要素)及びメモリを有する複数処
理装置コンピュータ・システムであり、処理装置は相互
接続経路により、またシステムの処理装置による命令の
実行を制御するための操作手段によって相互結合されて
いる。好ましい実施例によれば、SIMDモードまたは
MIMDモード、あるいはこれら両方で動的に命令を実
行するように、処理装置を構成することができる。この
モードの変更は命令ごとに行うことができる。処理装置
は物理的に同一のものであるが、それにもかかわらず、
複数モードの機能を達成することができるものである。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は詳細にいえば処理装置の
アレイを利用して複数モードの処理を動的に実現し、処
理要素のアレイ内で並列にプログラムを実行できるコン
ピュータ・システムに関する。
【0002】
【従来の技術】プログラムを並列に実行できる処理装置
のアレイを使用することのできるコンピュータ・システ
ムが開発された。
【0003】VLSIテクノロジは複数の処理装置(各
々がそれ自体のメモリを有している)を単一チップ及び
複数チップのいずれにおいてもきわめて近接して配置す
ることを可能としている。このような並列アレイの処理
装置を単一命令複数データ流(SIMD)方式、または
複数命令複数データ流(MIMD)方式または単一命令
単一データ流(SISD)方式のいずれにも構成するこ
とができるが、今日まで、いずれにおいても複数タイプ
のモードが採用されておらず、またプログラムの実行中
にモードを動的に、かつ効率よく変更できる形態を提供
している機械は存在していなかった。
【0004】いくつかの業績は1981年にHemisphere
Publishing Corporationによって発行された「The Arc
hitecture of Pipelined Computers」(ISBN 0-89116-4
94-4)という題名の本発明者の著書に一部基づくもので
あると思われる。この著作は歴史的なものであるが、本
分野において10年間の進歩があった現在においても依
然有用なものである。(同書11−20ページ参照。)
【0005】本分野において、各種のモードを指向した
機械の開発が続いている。たとえば、SIMDモードに
ついては、多次元のアレイの処理要素を提供し、かつす
べての処理要素に割込みをかける大域ロード命令に応じ
て処理要素をSIMD的に同時に更新する機構を提供す
るアレイ処理装置に関して、「SIMD Array Processorwi
th Global Instruction Control and Reprogrammable I
nstruction Decoder」という名称の米国特許第4992
933号が、James L. Taylorに対して1991年2月
12日に発行された。
【0006】今日もっとも進歩した機械はMIMDであ
る。1990年4月10日にSchwarz及びVassiliadisに
対して発行され、「Dynamic Multiple Instruction Str
eamMultiple Data Multiple Pipeline Apparatus for F
loating Point Single Instruction Stream Single Dat
a Architecture」という名称の米国特許第491665
2号は、多機能パイプラインによってMIMD機械を実
現し、かつ各種の命令ストリームをこれらのパイプライ
ンにインターリーブすることを対象としている。この特
許は機械を短時間の間MIMDからSISDに切り換
え、不動小数点計算のために若干の複雑な命令を処理す
ることを意図していた。
【0007】機械のMIMDモードに割り込むものもあ
る。1989年10月10日に発行された米国特許第4
873626号及び1990年1月2日に発行された米
国特許第4891787号は両方ともDavid K. Gifford
に対するものであって、SIMD/MIMD命令処理シ
ステムを有する処理装置アレイによる並列MIMD処理
システムを記載している。これら2つの特許は、複数グ
ループの処理装置(PE)及びメモリに対する全体的な
コントローラである単一のCPUを定義しており、各グ
ループは何らかの相互接続経路を有している。並列バス
がマスタCPUをグループに相互接続している。この機
械はすべてのPEが独立したプログラム・コードをMI
MD式に実行できることを実証している。上記の他の特
許と同様に、単一のマスタ制御処理装置によって制御さ
れるPEの処理に割り込む機能がある。
【0008】
【発明が解決しようとする課題】今のところ、ほとんど
のSIMD処理装置(たとえば、接続機械CM−2)は
独立型の(stand alone)装置であるか、あ
るいはMIMDメインフレームのフロント・エンドまた
はバック・エンドとして作動するかのいずれかである。
各処理装置は特定の機能を達成するように設定されてお
り、かつ割込みを必要とする手法は、限定された専門の
モードの操作を行うのにかなりの量のオーバヘッドを必
要としている。しかしながら、ほとんどのコンピュータ
・アルゴリズムまたはプログラムはいくつかのモードの
うち1つ(SIMDまたはMIMD)のモードでの効率
のよい並列実行に強固に合致するものでありうる。さら
に、問題の異なる部分に対して異なるモードでの実行が
可能な機械アーキテクチャがあれば、ほとんどすべての
アルゴリズムは、これから利益を得ることができる。
【0009】
【課題を解決するための手段】本明細書記載の発明は、
機械アーキテクチャが問題の異なる部分に対して異なる
モードの実行を許容することを可能とする。さらに、機
械は、同一のシステム・リソース・セットを使用して、
複数モードのアプリケーションが可能とする。本明細書
で説明するコンピュータ・システムは複数グループの処
理装置(処理要素:PE)及びメモリを有するマルチプ
ロセッサ・コンピュータ・システムであり(処理装置は
相互接続経路により相互接続されている)、またシステ
ムの処理装置による命令の実行を制御するための操作手
段を有するマルチプロセッサ・システムである。好まし
い実施例によれば、SIMDモードまたはMIMDモー
ド、あるいはこれら両方で動的に命令を実行するよう
に、処理装置を構成することができる。このモードの変
更は命令ごとに行うことができる。処理装置は物理的に
同一のものであるが、それにもかかわらず、複数モード
の機能を達成することができるものである。
【0010】本発明の好ましい実施例において、各コン
ピュータ処理要素は最低限、命令レジスタ、プログラム
・カウンタ、及び状態コード・レジスタを有する。本明
細書記載のアーキテクチャの場合、本発明はMIMDモ
ードの操作に必要な共通処理要素のリソースをSIMD
モードで使用することができ、かつこのモードで有用な
ものとすることを可能とする制御機能を提供する。本発
明の動的切り換えの態様はコンピュータ処理要素の命令
レジスタを利用して、他の共通要素を利用する命令処理
をSIMDモードの操作における2重目的リソースとし
て直接制御する。
【0011】したがって、本発明ではプログラム・カウ
ンタに基底レジスタ機能を割り当て、状態コード・レジ
スタにローカル・イネーブル機能を割り当てた。また、
本発明では命令レジスタを利用して、SIMD命令をパ
イプライン化する。
【0012】処理装置の各々は命令レジスタに、現命令
の実行に対して設定されている操作モードを動的に示す
ための値を有している。命令セット内の命令をシステム
の選択された処理装置に対してブロードキャストし、シ
ステムの選択された処理装置のセットを、希望する操作
モードに動的に切り換えることができる。
【0013】本発明の好ましい実施例では、命令ストリ
ームを実行する処理装置グループの各処理要素の命令レ
ジスタの間に経路を設け、このように設けられた経路上
でのブロードキャストによってグループの複数の処理装
置におけるSIMD操作を可能とする。
【0014】他の実施例においては、相互接続ネットワ
ークが処理装置間のブロードキャスト機能を実行するこ
とができる。処理装置間の直接ブロードキャスト経路と
組み合わせることのできるこの実施例においては、多段
相互接続ネットワークが命令レジスタに対する代替経路
を提供する。この代替相互接続ネットワークはブロッキ
ングなしに処理装置の2地点間結合を可能とする動的な
両面切換多段ネットワークである。
【0015】さらに、同一のコンピュータ・システムで
動的に作動するいくつかのモードを相互に処理する動的
グループを構成しうる。公知のシステムはいずれもこの
ような構成を行うことができない。
【0016】
【実施例】本発明によれば、本明細書で説明するコンピ
ュータ・システム及びそのアーキテクチャは、機械の処
理要素が、問題の異なる部分を、同一のリソースを使用
して、適切なモード、たとえば図1のSIMDモードま
たは図2のMIMDモードで実行することを可能とす
る。なお、図1が意味する範囲内で、SISDを考慮す
る(後述)。本発明の好ましい実施例において、機械は
同一セットのシステム・リソースを使用して、複数モー
ドのアプリケーションを使用可能とするが、これらのリ
ソースは動的に再構成される。本明細書記載のコンピュ
ータ・システムは複数グループの処理装置1...Nを
有するマルチプロセッサ・コンピュータ・システムであ
る。処理要素は(好ましいRISC構成において)制御
装置、データ・フロー装置、及びメモリを有する。処理
装置は相互接続経路を介して互いに結合されるが、この
経路はクロスバー、あるいは回線交換ネットワーク、2
進ハイパーキューブまたはその他の接続ネットワークな
どの任意の共通形式の相互接続ネットワークでよい。本
発明の好ましい実施例ならびに他の実施例において、本
明細書記載のアーキテクチャのための最善の好ましい接
続ネットワークは、H. T. Olnowich他の特願平4−20
4413号に記載されており、RS/6000及びその
他の処理装置を互いに非同期的に接続するのに適した並
列接続媒体として多段ネットワーク機能を果たし、任意
の態様で同時にあるいはオーバラップして送られた命令
によって、処理装置ノードを相互にリンクすることを可
能とするALLNODEスイッチに基づくものである。
ネットワークはVLSIによって実現され、規則的な、
多段両面チップ内で等距離にある代替経路を介して動的
非ブロッキングを、チップ内、基板上、あるいは通信経
路上で処理装置を結合する接続ポートに提供する。シス
テムは本発明者が発明者である上記の特許願に記載され
ている単信ネットワークに2重優先順位手法を提供する
ことができる。このスイッチは本発明の特徴のいくつか
を可能とするものである。
【0017】コンピュータの処理装置は、SIMDモー
ドで基本レジスタ機能を割り当てることができるプログ
ラム・カウンタ、ローカル・イネーブル機能を割り当て
ることができる状態コード・レジスタ、及びSIMD命
令をパイプラインするためにSIMDモードで利用され
る命令レジスタを含む、MIMD処理に適用可能なリソ
ースを有している。
【0018】本明細書で説明するアーキテクチャはシス
テムの処理装置による命令の実行を制御するための操作
手段を提供する。好ましい実施例によれば、処理装置を
構成して、SIMDモードまたはMIMDモード、ある
いはこれら両方において動的に命令を実行することがで
きる。このモードの変更は命令ごとに行うことができ
る。処理装置は物理的に同一のものであるが、複数モー
ドの機能を実行できるものである。
【0019】本発明の好ましい実施例においては、コン
ピュータの処理要素が命令レジスタ、プログラム・カウ
ンタ、及び状態コード・レジスタを有しているのである
から、コンピュータ・システムはMIMDモードの操作
に必要な共通処理要素のこれらのリソースをSIMDで
使用可能とし、かつこれで有用なものとする制御機能を
有することになる。
【0020】本明細書での説明のため、本発明の好まし
い実施例においては、個々の処理装置が図3に要約した
特徴を有するものと仮定する。これらの特徴は多くのR
ISCアーキテクチャで可能な特性であって、これらは
インターナショナル・ビジネス・マシーンズ・コーポレ
ーションが市販しており、本発明で使用されることが望
ましいRS/6000 RISC処理装置で見いだすこ
とができるものである。ただし、本発明の範囲内で、個
々の処理装置は次のような特徴を有している。
【0021】1.データに対するすべてのメモリ参照
が、RISCに類する命令セット・アーキテクチャで共
通のLOAD及びSTORE命令によって実行される命
令セットを備えている。
【0022】2.このようなデータ・アクセスに対する
アドレス指定は基底(base)に変位を加えたもので
あるが、加算及びインデックス・レジスタの更新はメモ
リ操作が開始された後、事後アドレス更新として適用し
なければならない。
【0023】3.加算または減算などの演算操作を行う
すべての命令はレジスタ間のものであり、メモリ参照を
必要とせずに1つまたは複数の実行サイクルで実行でき
る(このサイクル時間は、本開示においては説明を簡単
とするために1サイクル時間と想定して記載する)。
【0024】4.すべての命令は厳密に1メモリ・ワー
ドに一致していなければならない。ただし、2ワードを
取る(2番目はデータである)即値命令を除く。
【0025】5.すべての命令は1機械サイクルに一致
していなければならず、メモリ・オペランドのアドレス
がサイクルの開始時に機械のレジスタから選択でき、か
つ読取り時に結果を受け取るレジスタがサイクルの終了
時にこれをラッチできなければならない。
【0026】これらの特徴はすべて今日の典型的なRI
SC機械で見いだされるものであり、かつ現在開発中の
進歩のいくつかを備えたより複雑なアーキテクチャでも
実施できるものである。ここで重要なのは、本発明では
詳細に説明する単純化されたRISC機械が好ましい
が、本発明の特徴の説明において、従来のアーキテクチ
ャで作動するように改変できないものは何もないという
ことである。
【0027】[アーキテクチャ上の拡張]コンピュータ
・システムがSIMD(1例としての)とMIMDの間
で命令レベルで動的に切り替わることを可能とするアー
キテクチャ上の拡張を、2つの取り得るモードに関して
説明する。
【0028】本発明では図4にしたがって全体的に構成
された処理装置アレイを想定する。各処理装置の命令レ
ジスタ(IR)に入力する命令ワードは大域バス上(ま
たは、他の実施例においては、ネットワーク上)の1回
のブロードキャストによるもの、制御中となっている処
理装置(PE#1)からのもの、あるいは処理装置自体
のメモリからのものである。
【0029】本発明によれば、各処理装置の命令レジス
タはこの処理装置のモードがSIMDであるか、MIM
Dであるかを示す新しい処理装置モード・ビット(PM
B)を認識する。このビットは命令の発生箇所を制御す
る。
【0030】また、各命令のフォーマットは「ローカ
ル」操作または「アレイ」操作を示す2つの値を有して
いる別個の並列実行タイプ・ビット(PET)を含んで
いる。
【0031】最後に、システムは命令セットに「モード
切換」命令を備えており、この命令は命令ストリームの
「モード切換」命令にしたがう切換済みモード命令を実
行する処理装置の処理モード・ビットをフリップする。
【0032】これらのアーキテクチャ上の拡張は命令ご
とのモード間の動的な切換えを可能とし、かつコンピュ
ータ・システムの機械が、コンピュータ・システムによ
って実行されることを必要とするアルゴリズムの要求に
応じてSIMDモードまたはMIMDモード、あるいは
これら両方で作動することを可能とする。
【0033】[SIMDモード操作の例]処理装置の各
々は、命令レジスタに、現命令の実行のための操作モー
ドのセットを動的に示すために利用される値を有してい
る。命令セット内の命令をシステムの選択された処理装
置にブロードキャストし、システムの処理装置の選択さ
れたセットを希望する操作モードに切り換えることがで
きる。この例はSIMD操作を示している。
【0034】電源投入時に、PE#1というラベルの付
けられた処理装置以外のすべての処理装置はSIMDに
セットされた処理モード・ビット(PMB)を有する。
処理装置1はMIMDにセットされ、システムの構成中
は、このMIMDモードから変化することができない。
【0035】このモードにおいて、処理装置1は構成さ
れるシステムに対する制御装置として機能し、制御装置
として作動し、命令を取り出す。処理装置1が各命令を
取り出したときに、すべての他の処理装置はその命令レ
ジスタに、これらの各命令のコピーをラッチする。それ
故、命令取り出しの終了時に、すべての処理装置はその
IRに実行のための同一の命令を有することとなる。
【0036】次の機械サイクルの開始時に、各処理装置
はそのPMB及び命令の並列実行タイプ・ビット(PE
T)(IRで見いだされる)の両方を調べる。処理装置
1の場合(MIMDモードになっている)、「ローカ
ル」というPETは処理装置に命令を通常の命令として
復号させ、実行させる。それ故、次の機械サイクルは処
理装置1における命令の実行に専念し、そのメモリはロ
ード及び格納に利用できる。機械の設計が事前取り出し
を可能とし、かつ命令がメモリを必要としないようにす
ることが可能であるが、この場合、このサイクルは次の
命令の取り出しとなりうる。SIMDモードにおいて、
すべての他の処理装置は「ローカル」PETを見つけ、
命令を無視する。これらの処理装置は遊休状態となる。
この操作モードが有用なのは、何らかの総合的な状況ま
たは制御操作を制御処理装置によって行う必要がある場
合である。制御を行なう処理装置1が別の命令を取り出
した場合、処理が反復され、SIMDモードのすべての
処理装置がその命令レジスタに同時にこのメモリ参照を
捕捉する。
【0037】このSIMDモード構成において、「アレ
イ」というPETはSIMDモードのすべての処理装置
(すなわち、制御処理装置1以外のすべての処理装置)
にアレイ命令を復号させ、実行させる。ただし、処理装
置1は「アレイ」のPETをフラグとして使用し、その
実行サイクルをスキップし、次の命令取り出しに直接進
む。これは、選択されたSIMDモードであるすべての
他の処理装置(アレイのグループのすべての処理装置)
による実行と、次の命令の取り出しとをオーバラップす
る。それ故、「アレイ」命令のストリングはすべての命
令の取り出しを全体的にオーバラップし、処理装置のメ
モリをこれらのサイクルの各々におけるデータ・オペラ
ンドに使用できるようにする。
【0038】命令が2ワードの即値命令でない限り、命
令の実行後に処理装置のプログラム・カウンタPCが自
動的に増分されないことを除き、SIMDアレイ・モー
ドの命令の実行は従来の処理装置の実行に対するものと
まったく同様に進行する。これによって、これらのSI
MD機械がそのプログラム・カウンタを他の基本カウン
タとして使用することが可能となる。これは処理装置が
すべてチップ上におかれるために、チップの領域が貴重
であり浪費してはならないようなあらゆるゲートが限定
された設計においては特に貴重な特徴である。
【0039】基本レジスタとして機能する場合にプログ
ラム・カウンタを修正する命令は次の通りである。
【0040】1.制御処理装置1によって取り出される
「ジャンプ(JUMP)」命令。ただし、「アレイ」に
等しくセットされているPETは各SIMDモードの処
理装置のプログラム・カウンタをこの値にセットする効
果を有している。
【0041】2.制御処理装置によって取り出される
「即値ロード(LOAD IMMEDIATE)」命
令。ただし、「アレイ」に等しくセットされているPE
Tは、各処理装置のレジスタを、この処理装置のプログ
ラム・カウンタによって指定されたアドレスのメモリの
内容でロードし、カウンタのPCの事後取り出し増分を
行う効果を有している。
【0042】3.スレーブのPCを指定されたリンク・
レジスタに保管し、PCに新しいアドレスを再ロードす
る「分岐連係(BRANCH AND LINK)」命
令。これは基底(base)を保管し、これを同じ命令
に再ロードするのと同等である。
【0043】4.プログラム・カウンタを他のレジスタ
の1つから再ロードする「リターン(RETURN)」
命令。
【0044】従って、これらの命令は全体として、処理
装置のPCを定数及びその他のデータのアレイに対する
ポインタとして使用することが可能とするものであり、
マトリックス演算にきわめて有用である。
【0045】LOAD IMMEDIATEの逆動作で
ある「STORE IMMEDIATE」命令をこのア
ーキテクチャに含めるのが有利なこともある。通常は有
益な命令ではないが、本明細書記載の機械に関しては、
この命令はSIMD処理装置がそのプログラム・カウン
タを格納のための基本レジスタとしても使用することを
可能とするものである。
【0046】図6は命令ストリームのサンプルを示す。
メモリ・サイクル期間のかなりの比率においてアレイが
有用な事象を実行するので、SIMDモードの本明細書
記載の発明が、100%の利用度に近い極めて高いメモ
リ利用度を可能とすることに留意されたい。
【0047】図6は、各処理要素に1つのアレイが見い
だされる場合に、2セットのアレイを互いに加えるプロ
グラムの例を示している。一番上の線はメモリ・サイク
ル当たり1つの区画を有しており、制御PE(1)及び
SIMDモードのPEの両方がそのサイクル中に何にア
クセスするかを示している。
【0048】IR内の各命令のPETも各サイクルに示
されている。また、この図に示されている単純化された
アセンブリ言語は各opcodeの始まりに「x:」と
いう接頭辞が付けられている。これはこの命令に対する
PETビットである。「x」が「A」ならアレイ・モー
ドを示し、「x」が「L」ならローカル・モードを示
す。この図に示すプログラムは本発明の各種の新規な特
徴を実証するために選ばれたものである。
【0049】図6に示すように、制御処理装置はループ
・カウントによってそれ自体のR1レジスタ(RISC
に類する機械で見いだされるアキュミュレータまたは汎
用レジスタ)をセットアップするローカル・モードの命
令によって実行を開始する。これには、1つは命令の取
り出し、もう1つは演算のための2つの機械サイクルが
かかる。他のPEはこの間遊休状態である。
【0050】次いで、PETがアレイであるので、「L
OAD BASE,X」命令を取り出して配布するが、
この命令はSIMDモードの各処理要素の基底レジスタ
にXアレイのアドレスをロードする。これには取り出し
のための1機械サイクルがかかるが、SIMD PEの
機械サイクルはパイプライン式に後のサイクルとオーバ
ラップする。
【0051】次のサイクルを見ると、この場合は「JU
MP Y」であるアレイ・モード命令を、PE#1は再
度取り出して配布する。これは、SIMDモードのすべ
てのPEに、そのPCへ他のアレイの開始アドレスをロ
ードさせるという効果を有する。
【0052】ループの中核となる次の3つの命令及びす
べての命令は、これらを取り出し配布するPE#1の1
機械サイクルを正確に使用する。最初の命令によって、
SIMDモードのPEはその作業レジスタR1の1つ
に、Xアレイからの値をロードする。第2の命令はYア
レイからR2への同様なロードを行う。ここで留意すべ
きなのは、「LOADIMM」命令が、PC(Yアレイ
の基本アドレスがロード済みの)を使用すること、なら
びにこれを1ずつ増分させる(従来のSISD機械の即
値モード命令によって行われているように)という副次
効果を有していることである。これはPCを次のYアレ
イ要素に進める。3つの命令の内最後のものは演算結果
を、基底(BASE)レジスタによって指定された位置
(最初の命令によって取り出されたXアレイ要素位置)
に格納し、かつ修正されたアドレス1+BASEを基底
レジスタに格納する。これはBASEの値を調節し、次
のXアレイ要素をポイントするようにする。
【0053】最後の2つの命令はローカル・モードであ
り、ループ・カウントを減分(PE#1のR1に見いだ
される)する命令及びループの始めに戻る「Jump
not Zero」命令からなっている。この後者のジ
ャンプはローカル・モードで実行されるものであって、
PE#1のPCのみに影響を及ぼし、Yアレイに対する
ポインタとして使用されるPCをSIMDモードのまま
にする。IBMのシステム/370の機械アーキテクチ
ャにみられるBRANCH ON COUNTなどのこ
のような機能の他の実施形態は、これらの命令の両方を
単一の命令に圧縮することができる。
【0054】[MIMDモードの例]上述したSIMD
モードの構造及び作動方法は多くのアプリケーションに
有用なものであるが、MIMDも同様に重要である。こ
れを念頭において、以下にMIMDの例を挙げる。
【0055】制御処理装置#1がPETが「アレイ」で
ある「モード切換え」命令を取り出すものと想定する。
処理装置1はこれを無視する。しかしながら、すべての
SIMDモードの処理装置はこれを実行し、これらのモ
ードをMIMDモードに変更する。この命令は、プログ
ラム・カウンタPC値を与えて、実行を開始することも
できるし(すべての処理装置をプログラムの同じ位置
で、同時にスタートさせることを可能とする)、あるい
はPCを命令以前の状態に残し、各SIMD処理装置が
それ自体のプログラム開始アドレスを計算できるように
することもできる。
【0056】MIMDモードで、動的な命令レベルの変
更があると、処理装置はそれぞれそれ自体であるいはア
レイの一部として独立した処理装置としての命令の取り
出しに進む。PETが「ローカル」である命令はプログ
ラム・ストリームを、これらが通常の処理装置であるか
のようにして、厳密に実行する。PETが「アレイ」で
ある命令は各種の態様で作動することができる。特に役
立つ態様の1つは命令がRISCでいうLOADまたは
STOREである場合である。この場合、命令が生成し
たアドレスは処理装置相互接続ネットワークへの処理装
置アドレスとして使用される。このアドレスによってア
ドレス指定された処理装置が逆の命令(STOREに対
するLOAD及びLOADに対するSTORE)を実行
し、STORE側の処理装置からのデータがLOAD側
の処理装置に渡されるまで、この処理装置は停止する。
好ましいALLNODE交換ネットワークの利点は、ネ
ットワークの待ち時間が最小化されることである。
【0057】同様に、「アレイ」というPMB値を有す
る処理装置によって実行される「切換えモード」は各種
の態様で行うことができる。もっとも簡単なものは単純
にSIMDモードに切り換え、「アレイ」というPET
を有する次の制御処理装置1の命令を待つことであろ
う。しかしながら、この場合、他のすべての処理装置が
SIMDに切り換わるまで、制御処理装置による同等な
切換えを実行する試みは停止する。ただし、若干の潜在
的に貴重な特徴を有する代替策を使用することを実施す
ることができる。この代替策は、かかる命令に遭遇した
ときに、制御処理装置1以外の処理装置を停止させるも
のであり、かつ制御処理装置1へ戻るキーとして命令が
与えるアドレスを使用するものである。処理装置1がキ
ーに合致する「アドレス」で切換えを実行する場合、処
理装置は停止状態から離れ、制御処理装置の命令の追跡
を再開する。
【0058】この代替策において、有用なキー値は、処
理装置1に戻る何らかの共通バス信号に論理ORされた
2進パターンとなるであろう。処理装置1のアドレスが
このORされた値に合致する場合、処理装置は停止状態
から離れ、SIMDモードに戻る。この共通バス信号は
ネットワークを介して渡される。これによって処理装置
の可変サブセットがMIMDモードからSIMDに移
り、次いで元のSMID処理装置のグループ内のMIM
Dに再度潜在的に戻ることを可能とする。さらに、処理
装置の集合体の1つがSIMDモードで実行している
間、他のものは独立したMIMDモードにとどまること
もできる。
【0059】また、モード切換え命令を、そのアドレス
を処理要素のアドレスとして相互接続ネットワークに与
え、制御処理装置として働くようにし、もって動的に選
択されている場合といえども、任意のPEを他のPEの
任意のサブセットに対するSIMD制御装置とすること
も可能である。
【0060】それ故、サブセットのグループ化という特
徴をALLNODEネット機能の有無に関らず採用する
ことができるが、ALLNODEネット機能には付加的
な利点があり、これについては後述する。
【0061】さらに、代替実施例には、同一のコンピュ
ータ・システムで動的に作動するいくつかの相互動的グ
ループの処理モードを含みうる。ALLNODEネット
ワークの機能によって、ブロードキャスト機能を大域同
期バスではなく、相互接続ネットワークによって渡すこ
とができる。両方を同じ機構内で実施することができ
る。
【0062】[ALLNODE相互接続ネットワークの
例]上記したところから、望ましいシステムが特願平3
−278900号に図示説明されている並列処理システ
ムなどの機能を利用できることが理解されよう。このシ
ステムにはSIMD処理を実施することができる複数の
ピケット(picket)があり、さらに、このシステ
ムを同じセットのリソースを備えた従来のMIMDの概
念とともに用いることもできる。このシステム内で、利
用できる選択的な基準に基づいて、SIMDとMIMD
の両方の操作を混合し、突き合わせ、ある処理装置がS
IMD操作で作動し、他のものがMIMD操作で作動す
るようにすることができる。SIMD処理を実施するピ
ケットは、参照する特願平3−278900号に開示さ
れている。
【0063】ALLNODE相互接続ネットワーク、す
なわち代替経路選択によりブロッキングなしに、処理装
置を相互接続されたシステムの一部として迅速に設定す
ることができる動的切換え多段ネットワークにより、望
ましいリソースを有しているネットワーク上の各種処理
装置グループを選択することができ、かつこれらグルー
プを使用して、アプリケーションのSIMD及びMIM
Dに対する必要性を利用することのできるプログラムを
実行することができる。これによって、制御処理装置の
指定を1つの制御処理装置に限定する必要がなくなり、
これは複数の処理装置のうちどれを制御処理装置にする
かを動的に交代させる機会を提供する。選択したネット
ワークがどのグループを相互接続するかを選択し、選択
されたものが動的ネットワークの一部となった場合、こ
のネットワークを使用して、命令をブロードキャストす
ることができる。これは必ずしもハードウェアだけでは
なく、関連するソフトウェアがどれを経路指定処理装置
にするかを制御することも可能とする。
【0064】これはますます多用途なものとなり、用い
ることのできる従来の相互接続ネットワークよりも若干
多くの機能をおそらくは提供することとなる。このよう
なシステムによって、どこからでも(選択したシステム
の任意の処理装置から)SIMDモードを実行できるシ
ステムが得られる。1台の処理装置がしばらくの間制御
側となり、次いで他の処理装置が制御側となることがで
き、この動的リソース割振りの間に、ネットワークに接
続されるさまざまなリソースを、システムのフルイデッ
クス(fluidics)及びリソースによって決定さ
れるとおりに利用することができる。複数の処理装置を
して、処理装置の複数のサブセットにブロードキャスト
させることができ、また同じ物理的ハードウェア上で作
動するSIMD機械の複数の任意の集合体を得ることが
できる。
【0065】図2に戻ると、MIMDモードにおいて、
どの処理要素でも命令を処理要素の任意の他のサブセッ
トにブロードキャストすることができる。ブロードキャ
ストされたデータをその命令レジスタに取り入れ、SI
MDモードと同様に実行することができる。図5におい
て、相互接続ネットワークは命令をブロードキャスト
し、命令レジスタへの付加的な経路を取得するのに、命
令レジスタへの同期通信のための代替経路が必要なくな
る。ALLNODEネットワーク(同期ネットワークで
ある)を使用するこの代替実施例において、相互接続ネ
ットワークを介して命令を渡し、内部的に命令レジスタ
に進むが、これはサイクルをトレードオフすることによ
ってより汎用化された機械要素を使用できるようにする
ものであり、ニーズにもよるが、きわめて有用なもので
ある。基本的に、ネットワークを介したブロードキャス
トはおそらくは実際問題として、他の代替策よりも信頼
性が高いものである。好ましい実施例について説明した
直接代替経路の選択は、複数の処理装置を有するアレイ
が単一のチップに密結合されている場合により望ましい
ものとなる。しかしながら、処理装置が物理的に離隔し
ており、集合体の各々が高い周波数で作動している本発
明のシステムの用途では、ブロードキャスト機能を有す
るALLNODEスイッチなどの高速非同期ブロードキ
ャスト・ネットワークを用いる構成が望ましい。図5に
示すように、ALLNODEスイッチをネットワークか
ら命令レジスタへの代替経路として用いることができ
る。
【0066】純粋な、限定されたSIMD機械は命令を
取り出すことができるとともに、以前の命令をアレイ内
の他の処理要素にブロードキャストし、かついくつかの
SIMD処理装置は特願平3−278900号に記載さ
れているPICKET処理装置におけるように、メモリ
を独立して使用することができる。本発明のアーキテク
チャはRISC機能を拡張したものである。RISC処
理装置において、命令を取り出し、次いでメモリ操作を
行うことができる。本システムにおいて、次の命令が取
り出されると、操作に関与するとマークされているすべ
ての処理装置がそれぞれのメモリについてデータを適宜
取り出すか、あるいは格納する。事実、処理装置と指定
された処理装置によって実行または取り出されるあらゆ
る命令は、他の処理装置の各々におけるメモリ活動をト
リガすることができる。
【0067】それ故、メモリを潜在的に100%使用す
ることができる。メモリが必要となった場合、これを利
用することができ、かつプログラムが必要としない場合
にのみ、メモリが利用されないようになる。さらに、本
システムにおいては、処理装置のいくつかがSIMDで
作動し、かつ他の処理装置がそれ自体のメモリ取り出し
をMIMDで行うことができる。これはPICKETの
概念の機構を従来のMIMDの概念と組み合わせ、プロ
セスで同じセットのリソースを利用するものである。
【0068】ALLNODEスイッチは、本明細書で説
明しておりかつ図5に示しているシステムに、周知の処
理装置を使用することを可能とする。処理装置のいくつ
かは制御処理装置1からの共通のメモリ命令通信経路を
利用できるが、代替経路(図5の破線)を用いて、共通
処理装置を相互接続することができる。これらの共通処
理装置は若干の変更を加えたPS/2またはRS/60
00であってもかまわない。それ自体の命令を獲得する
か、あるいは制御処理装置からのブロードキャストを待
つかを各処理装置に伝える適切な復号論理回路に、命令
及び状況ビットまたは値を与えるためのポートをこの変
更した形では用いている。これ以外の機械は物理的変更
を必要としない。変更は他の処理装置がこれらが自分自
身で取り出す命令の代わりに命令を与えることを可能と
するパスを含むものとなる。これは命令レジスタへの代
替経路によって提供される。このようにして、標準命令
レジスタあるいはこの下にある復号論理回路のほとんど
を変更する必要はない。ハードのALLNODEスイッ
チによって処理装置を指定することにより、どの処理装
置が制御側になるかの動的な交代が可能となるが、これ
はソフトウェアがどれを経路指定処理装置にするのかを
制御できるようにするソフトウェアによって、この経路
指定を行えるからである。このようなシステムによっ
て、システムの任意の処理装置がSIMDモードで作動
できるようになる。ある処理装置がしばらくの間制御装
置になることができ、次いで何らかの他の処理装置が制
御装置になることができる。上述のように、これによっ
て複数の処理装置が複数のサブセットをブロードキャス
トし、同一の物理的ハードウェアで作動しているSIM
D機械の任意の集合体を提供し、かつ同一のハードウェ
アを使って、通常のMIDM処理を実行することが可能
となる。
【0069】従来の複数モードの提案と異なり、特にS
IMDモードでは、特定のPEが命令の取り出しを行
い、これは特別な命令または割込みなしにあらゆる処置
装置に直接適用される。すべての処理要素は命令が並列
命令であるとマークされている場合には、命令を直接実
行する。これをPETビットを「アレイ」にセットする
という。これ自体はSIMD処理装置に共通なブロード
キャスト・モードと類似しているが、本願発明の新しい
アーキテクチャによれば、同じ命令ストリームがマスタ
処理装置ないし制御処理装置でローカル計算を行うこと
ができる。さらに、PEをPETビットをオンにして実
行される動的モード「切換え」命令によって、独立した
MIMDモードに戻すことができる。
【0070】好ましい実施例において留意すべきこと
は、PEがSIMD操作に関与しているかどうかを割込
みマスク・ビットが示さないが、その代わりにPMBビ
ット信号が処理要素が命令をどこから得るのか、すなわ
ちそのローカル・メモリからか、あるいは制御処理装置
1によって取り出されてかを示すことである。
【0071】この手法の単純さはMITの米国特許第4
873626号及び第4891787号とは対照的なも
のであるといえる。これらの特許は1960年代に提案
され、1970年代に実現されたILLIAC IV処
理装置で認識された並列IF_THEN_ELSE条件
実行問題に対する従来の解法を借用している。各処理要
素には使用可能ビットがあり、これは各処理要素がSI
MD命令を実行することを可能とする。この状況におい
て、すべてのPEはそれ自体のデータ上でIFテストを
行い、そのENABLEビットを設定する。次いで、ビ
ットが条件的に真に設定されるすべてのPEはTHEN
コードを実行し、ビットが条件的に偽に設定されるすべ
てのPEはFALSEコードを実行する。結果は制御装
置によって調べられ、TRUE及びFALSE両方のコ
ードがアレイによって実行される。
【0072】しかしながら、本システムはこのタイプの
実行を行う上で、明示的なENABLEDビットを必要
としない。COMPARE及び同等な命令とともに、す
でに各PE(独立した操作が可能であるから)に「条件
コード」または同等な状況ビットがあり、必要に応じ、
同じ機構を提供する。しかしながら、本発明システムが
SIMDからMIMDへ動的に迅速に切り換えることが
できるので、本発明システムは結果を処理し、加速する
根本的な代替策を提供する。
【0073】このプロセスによって、すべてのPEはS
IMDモードでIFテストを実行する。次いで、制御装
置は1つの命令でこれらをすべてMIMDモードに解放
する。各PEは次いでこのデータに関連しているJUS
T THE ONE PATHを実行する。すべてのP
Eがそのパスを終了すると、これらはSIMDモードへ
戻る。それ故、全時間はテスト時間プラス2つのパスの
最大時間であり、従来の手法で必要とされる合計(su
m)ではない。複雑なコードの場合、この改善は2倍の
速度の上昇に近づくものである。
【0074】本発明の好ましい実施例は密結合のきわめ
て高性能なRISC類似の処理装置アーキテクチャに理
想的なものであると考えられる。しかし、相互接続ネッ
トワークの機能によっては、より普及しているアーキテ
クチャに拡張することができる。好ましい実施例におい
て、システムをメモリと論理回路の両方が1つのチップ
にある高密度のVLSIに実装し、複数のPE及びその
メモリを1つのチップに配置することができる。比較的
限定された数のシステムを単一のチップにこのように密
結合することによって、SIMDモードの命令の実行を
実現し、取り得る各メモリ・サイクルに対してPE当た
り1つの命令を実行することができるようになる。
【0075】本質的に順次の計算に対して、MIMDモ
ードとの間での、またさらにはSISDモードへの切換
えを迅速に行えることにより、プログラマないしコンパ
イラがアプリケーションに対してもっとも意義がある最
適な種類の並列性(SISD、SIMD、MIMD)を
使用するコンピュータ・システムを構築することが可能
となる。さらに、特にSIMDモードにおいて、かかる
実行を設定して、ほとんど単一のメモリ・サイクルしか
それぞれ計算に使用しないような、メモリの限界で作動
する機械の設計をもたらすことができる。ALLNOD
Eスイッチ及び代替経路によって、システムの設定をき
わめて多くの処理装置に対して数サイクルで達成するこ
とができる。このシステムは元の設定の際のサイクル時
間に若干のトレードオフがあるが、共通ハードウェアの
利点、きわめて大きな拡張機能、及び構成の融通性によ
って相互接続ネットワークを介して代替経路を用いる代
替システムを、システムの選択肢として選択することも
できる。
【0076】詳述した代替策は希望する実行の種類を識
別するために定義された単純な機構がきわめて経済的に
実施されるものであり、かつ広い範囲のアーキテクチャ
またはテクノロジーに移植できることを示している。
【0077】
【発明の効果】本発明によって、コンピュータ・システ
ムが各処理要素にほとんどあるいはまったく変更を行わ
ずに、処理要素のすべてのリソースをきわめて自然に使
用し、複数モードで作動し、かつ特定のアプリケーショ
ンに合わせて柔軟かつ動的に構成できる「並列RIS
C」機械を作成することができる。
【図面の簡単な説明】
【図1】共通リソース・システムのSIMDモードの構
成を示す図である。
【図2】共通リソース・システムのMIMDモードの構
成を示す図である。
【図3】システム操作上のリソースの想定されるタイミ
ングを例示する図である。
【図4】好ましい実施例にしたがったブロードキャスト
のための処理要素間の直接信号結合を含んでいるシステ
ムに新たに可能となった機能を示す図である。
【図5】命令レジスタへの代替経路を提供する好ましい
複数ステージALLNODE相互接続ネットワークを利
用して、ブロードキャストを相互接続ネットワークが処
理する、図4のシステムの他の実施例を示す図である。
【図6】好ましい実施例によるSIMDのタイミングを
示す図である。

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】複数グループの処理装置及びメモリと、 処理装置間の相互接続経路と、 システムの処理装置による命令の実行を制御するための
    操作手段とからなり、上記操作手段が、1つまたは複数
    のプログラムの命令を実行するためのモードの変更によ
    って、処理装置グループを動的に構成し、MIMD、S
    IMDまたはSISDいずれかの処理装置グループとし
    て動作させるようにする、 コンピュータ・システム。
  2. 【請求項2】前記のモードの変更が命令ごとに行われる
    請求項1記載のコンピュータ・システム。
  3. 【請求項3】前記処理装置の少なくともいくつかが物理
    的に同一であり、かつ複数モード機能を実行するもので
    ある請求項1記載のコンピュータ・システム。
  4. 【請求項4】前記処理装置の少なくともいくつかが、そ
    れぞれそのコンピュータ処理要素について、個々のSI
    SD機能あるいはグループのMIMD機能に必要な、命
    令レジスタ、プログラム・カウンタ、及び条件コード・
    レジスタを有している請求項1記載のコンピュータ・シ
    ステム。
  5. 【請求項5】前記処理装置の少なくともいくつかがその
    コンピュータ処理要素について、MIMDモードの作動
    に必要なリソースを有しており、かつ該同じリソースが
    SIMDモードの作動に使用される請求項1記載のコン
    ピュータ・システム。
  6. 【請求項6】前記操作手段が、選択された処理装置にS
    IMD機能を動的に実行させる場合、MIMD動作のリ
    ソースとして必要な前記処理装置のプログラム・カウン
    タに、SIMDモードの基底レジスタ機能を割り当てて
    動作させる、請求項1記載のコンピュータ・システム。
  7. 【請求項7】前記操作手段が、選択された処理装置にS
    IMD機能を動的に実行させる場合、MIMD動作のリ
    ソースとして必要な前記処理装置の命令レジスタに、S
    IMDモードのローカル・イネーブル機能を割り当てて
    動作させる、請求項1記載のコンピュータ・システム。
  8. 【請求項8】前記操作手段が、選択された処理装置にS
    IMD機能を動的に実行させる場合、MIMD動作のリ
    ソースとして必要な前記処理装置の命令レジスタにSI
    MDモードのローカル・イネーブル機能を割り当て、該
    命令レジスタをSIMD命令のパイプライン化のために
    利用する、請求項1記載のコンピュータ・システム。
  9. 【請求項9】前記システムが、命令セット内に前記操作
    手段のモード切換え命令を備えており、これによって命
    令ストリーム中の該モード切換え命令にしたがってモー
    ドが切換えられた命令を実行する処理装置の処理モード
    をフリップする請求項1記載のコンピュータ・システ
    ム。
  10. 【請求項10】処理装置の各々が、その命令レジスタに
    現命令を実行するために設定された操作モードを動的に
    指示するための値を有しており、かつ命令をシステムの
    選択された処理装置にブロードキャストし、複数の処理
    装置のうち選択されたセットを所望の操作モードに動的
    に切り換えることができる請求項1記載のコンピュータ
    ・システム。
  11. 【請求項11】実行サイクル中に処理装置のモードを示
    す処理モード値(PMB)を認識する命令レジスタを各
    処理装置に提供する、請求項1記載のコンピュータ・シ
    ステム。
  12. 【請求項12】処理装置についての各命令のフォーマッ
    トが、「ローカル」処理又は「アレイ」処理のいずれか
    を示すための値を有する並列実行型変数(PET)を含
    む、請求項1記載のコンピュータ・システム。
  13. 【請求項13】上記相互接続経路が、動的交換接続網で
    ある、請求項1記載のコンピュータ・システム。
JP4272758A 1991-11-27 1992-10-12 動的に複数モードで並列処理するアレイ Expired - Lifetime JP2647315B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US79878891A 1991-11-27 1991-11-27
US798788 1991-11-27

Publications (2)

Publication Number Publication Date
JPH05233569A true JPH05233569A (ja) 1993-09-10
JP2647315B2 JP2647315B2 (ja) 1997-08-27

Family

ID=25174278

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4272758A Expired - Lifetime JP2647315B2 (ja) 1991-11-27 1992-10-12 動的に複数モードで並列処理するアレイ

Country Status (9)

Country Link
US (1) US5475856A (ja)
EP (1) EP0544127B1 (ja)
JP (1) JP2647315B2 (ja)
KR (1) KR970008529B1 (ja)
CN (1) CN1044646C (ja)
AT (1) ATE177547T1 (ja)
CA (1) CA2073516A1 (ja)
DE (1) DE69228586T2 (ja)
MX (1) MX9206864A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008047079A (ja) * 2005-09-07 2008-02-28 Sony Corp 集積装置
JP2010009610A (ja) * 1998-10-09 2010-01-14 Altera Corp プロセッサ装置、デュアルプロセッサを動作させる方法及びアレイプロセッサの動作方法
JP2011086158A (ja) * 2009-10-16 2011-04-28 Mitsubishi Electric Corp 並列信号処理装置
JP2011145759A (ja) * 2010-01-12 2011-07-28 Mitsubishi Electric Corp 並列信号処理プロセッサ
JP2014509419A (ja) * 2011-01-25 2014-04-17 コグニヴュー コーポレーション ベクトルユニット共有の装置および方法

Families Citing this family (262)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590345A (en) 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
JPH04336378A (ja) * 1991-05-14 1992-11-24 Nec Corp 情報処理装置
JP3202074B2 (ja) * 1992-10-21 2001-08-27 富士通株式会社 並列ソート方式
JP3199205B2 (ja) * 1993-11-19 2001-08-13 株式会社日立製作所 並列演算装置
JP2550897B2 (ja) * 1993-11-29 1996-11-06 日本電気株式会社 マルチプロセッサシステムのバリア同期装置
JP2590045B2 (ja) * 1994-02-16 1997-03-12 日本アイ・ビー・エム株式会社 分散処理制御方法及び分散処理システム
JPH07234842A (ja) * 1994-02-22 1995-09-05 Fujitsu Ltd 並列データ処理システム
DE69519449T2 (de) * 1994-05-05 2001-06-21 Conexant Systems Inc Raumzeigersdatenpfad
JPH07334416A (ja) * 1994-06-06 1995-12-22 Internatl Business Mach Corp <Ibm> コンピュータ・システムにおけるページ・モード・メモリの初期設定の方法および手段
US5621800A (en) * 1994-11-01 1997-04-15 Motorola, Inc. Integrated circuit that performs multiple communication tasks
US6128720A (en) * 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US5737623A (en) * 1995-04-19 1998-04-07 Liebrock; Lorie M. Multi-processor parallel computer architecture using a parallel machine with topology-based mappings of composite grid applications
US6385634B1 (en) * 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
CN101794212B (zh) * 1995-08-31 2015-01-07 英特尔公司 控制移位分组数据的位校正的装置
US5943242A (en) * 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US5940859A (en) * 1995-12-19 1999-08-17 Intel Corporation Emptying packed data state during execution of packed data instructions
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
WO1997029435A1 (en) * 1996-02-09 1997-08-14 Hitachi, Ltd. Parallel processor
US5764787A (en) * 1996-03-27 1998-06-09 Intel Corporation Multi-byte processing of byte-based image data
US5801942A (en) * 1996-04-12 1998-09-01 Fisher-Rosemount Systems, Inc. Process control system user interface including selection of multiple control languages
US6098116A (en) * 1996-04-12 2000-08-01 Fisher-Rosemont Systems, Inc. Process control system including a method and apparatus for automatically sensing the connection of devices to a network
US6032208A (en) * 1996-04-12 2000-02-29 Fisher-Rosemount Systems, Inc. Process control system for versatile control of multiple process devices of various device types
US5862052A (en) * 1996-04-12 1999-01-19 Fisher-Rosemount Systems, Inc. Process control system using a control strategy implemented in a layered hierarchy of control modules
US5828851A (en) * 1996-04-12 1998-10-27 Fisher-Rosemount Systems, Inc. Process control system using standard protocol control of standard devices and nonstandard devices
US5909368A (en) 1996-04-12 1999-06-01 Fisher-Rosemount Systems, Inc. Process control system using a process control strategy distributed among multiple control elements
US6868538B1 (en) 1996-04-12 2005-03-15 Fisher-Rosemount Systems, Inc. Object-oriented programmable controller
US5838563A (en) * 1996-04-12 1998-11-17 Fisher-Rosemont Systems, Inc. System for configuring a process control environment
US5940294A (en) * 1996-04-12 1999-08-17 Fisher-Rosemont Systems, Inc. System for assisting configuring a process control environment
US5768119A (en) * 1996-04-12 1998-06-16 Fisher-Rosemount Systems, Inc. Process control system including alarm priority adjustment
US5995916A (en) * 1996-04-12 1999-11-30 Fisher-Rosemount Systems, Inc. Process control system for monitoring and displaying diagnostic information of multiple distributed devices
WO1996035997A1 (fr) * 1996-05-22 1996-11-14 Yalestown Corporation N.V. Processeur parallele
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US5884046A (en) * 1996-10-23 1999-03-16 Pluris, Inc. Apparatus and method for sharing data and routing messages between a plurality of workstations in a local area network
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE19654593A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
DE19654846A1 (de) 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
ATE243390T1 (de) 1996-12-27 2003-07-15 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704728A1 (de) 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
DE19704742A1 (de) 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US5980078A (en) 1997-02-14 1999-11-09 Fisher-Rosemount Systems, Inc. Process control system including automatic sensing and automatic configuration of devices
US6023753A (en) 1997-06-30 2000-02-08 Billion Of Operations Per Second, Inc. Manifold array processor
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US6167502A (en) * 1997-10-10 2000-12-26 Billions Of Operations Per Second, Inc. Method and apparatus for manifold array processing
DE69833122T2 (de) * 1997-10-21 2006-08-24 Koninklijke Philips Electronics N.V. Signalverarbeitungsvorrichtung und verfahren zur verbindungsplanung zwischen prozessoren in einer signalverarbeitungsvorrichtung
US6151705A (en) * 1997-10-30 2000-11-21 Hewlett-Packard Company Efficient use of the base register auto-increment feature of memory access instructions
US6625756B1 (en) * 1997-12-19 2003-09-23 Intel Corporation Replay mechanism for soft error recovery
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6088800A (en) 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6853638B2 (en) * 1998-04-01 2005-02-08 Cisco Technology, Inc. Route/service processor scalability via flow-based distribution of traffic
JPH11327899A (ja) * 1998-05-14 1999-11-30 Mitsubishi Electric Corp データ処理装置及びデータ処理方法
US6112288A (en) * 1998-05-19 2000-08-29 Paracel, Inc. Dynamic configurable system of parallel modules comprising chain of chips comprising parallel pipeline chain of processors with master controller feeding command and data
US6691183B1 (en) 1998-05-20 2004-02-10 Invensys Systems, Inc. Second transfer logic causing a first transfer logic to check a data ready bit prior to each of multibit transfer of a continous transfer operation
US6513108B1 (en) 1998-06-29 2003-01-28 Cisco Technology, Inc. Programmable processing engine for efficiently processing transient data
US6401189B1 (en) 1998-08-05 2002-06-04 Michael J. Corinthios General base state assignment for optimal massive parallelism
US6219780B1 (en) * 1998-10-27 2001-04-17 International Business Machines Corporation Circuit arrangement and method of dispatching instructions to multiple execution units
US6173386B1 (en) 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
JP3344345B2 (ja) * 1998-12-15 2002-11-11 日本電気株式会社 共有メモリ型ベクトル処理システムとその制御方法及びベクトル処理の制御プログラムを格納する記憶媒体
US6920562B1 (en) 1998-12-18 2005-07-19 Cisco Technology, Inc. Tightly coupled software protocol decode with hardware data encryption
US6253299B1 (en) 1999-01-04 2001-06-26 International Business Machines Corporation Virtual cache registers with selectable width for accommodating different precision data formats
US6490493B1 (en) 1999-01-21 2002-12-03 Rosemount Inc. Industrial process device management software
WO2002013000A2 (de) 2000-06-13 2002-02-14 Pact Informationstechnologie Gmbh Pipeline ct-protokolle und -kommunikation
US8171263B2 (en) 1999-04-09 2012-05-01 Rambus Inc. Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions
US8169440B2 (en) * 1999-04-09 2012-05-01 Rambus Inc. Parallel data processing apparatus
US20080007562A1 (en) * 1999-04-09 2008-01-10 Dave Stuttard Parallel data processing apparatus
US20080008393A1 (en) * 1999-04-09 2008-01-10 Dave Stuttard Parallel data processing apparatus
EP1181648A1 (en) * 1999-04-09 2002-02-27 Clearspeed Technology Limited Parallel data processing apparatus
US8762691B2 (en) * 1999-04-09 2014-06-24 Rambus Inc. Memory access consolidation for SIMD processing elements using transaction identifiers
US7526630B2 (en) 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
GB2348984B (en) * 1999-04-09 2004-05-12 Pixelfusion Ltd Parallel data processing systems
US7966475B2 (en) 1999-04-09 2011-06-21 Rambus Inc. Parallel data processing apparatus
US20080016318A1 (en) * 1999-04-09 2008-01-17 Dave Stuttard Parallel data processing apparatus
GB2348981A (en) * 1999-04-09 2000-10-18 Pixelfusion Ltd Parallel data processing system with SIMD array
US7506136B2 (en) * 1999-04-09 2009-03-17 Clearspeed Technology Plc Parallel data processing apparatus
US7627736B2 (en) 1999-04-09 2009-12-01 Clearspeed Technology Plc Thread manager to control an array of processing elements
US8174530B2 (en) 1999-04-09 2012-05-08 Rambus Inc. Parallel date processing apparatus
US20070294510A1 (en) * 1999-04-09 2007-12-20 Dave Stuttard Parallel data processing apparatus
US7802079B2 (en) 1999-04-09 2010-09-21 Clearspeed Technology Limited Parallel data processing apparatus
US20080184017A1 (en) * 1999-04-09 2008-07-31 Dave Stuttard Parallel data processing apparatus
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US6754885B1 (en) 1999-05-17 2004-06-22 Invensys Systems, Inc. Methods and apparatus for controlling object appearance in a process control configuration system
WO2000070417A1 (en) 1999-05-17 2000-11-23 The Foxboro Company Process control configuration system with parameterized objects
DE10081643D2 (de) 1999-06-10 2002-05-29 Pact Inf Tech Gmbh Sequenz-Partitionierung auf Zellstrukturen
US6501995B1 (en) 1999-06-30 2002-12-31 The Foxboro Company Process control system and method with improved distribution, installation and validation of components
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
GB2355084B (en) * 1999-07-21 2004-04-28 Element 14 Ltd Setting condition values in a computer
US6510352B1 (en) 1999-07-29 2003-01-21 The Foxboro Company Methods and apparatus for object-based process control
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
JP3971535B2 (ja) * 1999-09-10 2007-09-05 株式会社リコー Simd型プロセッサ
US6711629B1 (en) 1999-10-18 2004-03-23 Fisher-Rosemount Systems, Inc. Transparent support of remote I/O in a process control system
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6473660B1 (en) 1999-12-03 2002-10-29 The Foxboro Company Process control system and method with automatic fault avoidance
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US6625749B1 (en) * 1999-12-21 2003-09-23 Intel Corporation Firmware mechanism for correcting soft errors
US6640313B1 (en) * 1999-12-21 2003-10-28 Intel Corporation Microprocessor with high-reliability operating mode
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US7620702B1 (en) 1999-12-28 2009-11-17 Intel Corporation Providing real-time control data for a network processor
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7480706B1 (en) 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US6584522B1 (en) 1999-12-30 2003-06-24 Intel Corporation Communication between processors
US6952824B1 (en) 1999-12-30 2005-10-04 Intel Corporation Multi-threaded sequenced receive for fast network port stream of packets
AUPQ542900A0 (en) * 2000-02-04 2000-02-24 Bisinella, Richard Microprocessor
US6779128B1 (en) 2000-02-18 2004-08-17 Invensys Systems, Inc. Fault-tolerant data transfer
US6643763B1 (en) 2000-02-28 2003-11-04 International Business Machines Corporation Register pipe for multi-processing engine environment
US6766437B1 (en) * 2000-02-28 2004-07-20 International Business Machines Corporation Composite uniprocessor
US6859870B1 (en) * 2000-03-07 2005-02-22 University Of Washington Method and apparatus for compressing VLIW instruction and sharing subinstructions
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6792529B1 (en) * 2000-04-11 2004-09-14 Microsoft Corporation Common feature mode for microprocessors in a multiple microprocessor system
US7249247B2 (en) * 2000-04-11 2007-07-24 Microsoft Corporation Common feature mode for microprocessors in a multiple microprocessor system
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US20020016835A1 (en) * 2000-05-25 2002-02-07 Gary Gamerman System and method for cascaded distribution of processing
US7100028B2 (en) * 2000-08-09 2006-08-29 Advanced Micro Devices, Inc. Multiple entry points for system call instructions
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6772368B2 (en) * 2000-12-11 2004-08-03 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore
JP2002196924A (ja) * 2000-12-27 2002-07-12 Fujitsu Ltd プロセッサ制御装置及びプロセッサ制御方法
US6990555B2 (en) 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
JP3935678B2 (ja) * 2001-01-31 2007-06-27 富士通株式会社 Simd積和演算方法、積和演算回路、および、半導体集積回路装置
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7581076B2 (en) 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
CA2344098A1 (fr) * 2001-04-12 2002-10-12 Serge Glories Systeme de processeur modulaire a elements configurables et intereliables permettant de realiser de multiples calculs paralleles sur du signal ou des donnees brutes
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
EP1402382B1 (de) 2001-06-20 2010-08-18 Richter, Thomas Verfahren zur bearbeitung von daten
US6968446B1 (en) 2001-08-09 2005-11-22 Advanced Micro Devices, Inc. Flags handling for system call instructions
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
JP3528922B2 (ja) * 2001-08-31 2004-05-24 日本電気株式会社 アレイ型プロセッサ、データ処理システム
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
DE10144904C2 (de) * 2001-09-12 2003-08-21 Infineon Technologies Ag SIMD-Prozessor mit Unterprogramm-Steuereinheit
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US6986021B2 (en) * 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US20030108012A1 (en) * 2001-12-12 2003-06-12 Quicksilver Technology, Inc. Method and system for detecting and identifying scrambling codes
JP2005512224A (ja) * 2001-12-13 2005-04-28 シネルジェスティック コンピューティング システムズ エーピーエス ヘテロジニアスなシナジェティックコンピューティングシステム
US7403981B2 (en) * 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
EP1483682A2 (de) 2002-01-19 2004-12-08 PACT XPP Technologies AG Reconfigurierbarer prozessor
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
GB2391336B (en) 2002-04-09 2005-10-26 Micron Technology Inc Method and system for local memory addressing in single instruction, multiple data computer system
AU2003234106A1 (en) 2002-04-15 2003-11-03 Invensys Systems, Inc. Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7447872B2 (en) * 2002-05-30 2008-11-04 Cisco Technology, Inc. Inter-chip processor control plane communication
US7471688B2 (en) 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US6944744B2 (en) * 2002-08-27 2005-09-13 Advanced Micro Devices, Inc. Apparatus and method for independently schedulable functional units with issue lock mechanism in a processor
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7352769B2 (en) 2002-09-12 2008-04-01 Intel Corporation Multiple calendar schedule reservation structure and method
US7502915B2 (en) * 2002-09-30 2009-03-10 Nvidia Corporation System and method using embedded microprocessor as a node in an adaptable computing machine
US7395408B2 (en) * 2002-10-16 2008-07-01 Matsushita Electric Industrial Co., Ltd. Parallel execution processor and instruction assigning making use of group number in processing elements
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US7433307B2 (en) 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US8276135B2 (en) * 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
WO2004059464A2 (en) * 2002-12-30 2004-07-15 Koninklijke Philips Electronics N.V. Processing system
JP3987805B2 (ja) * 2003-01-27 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
US7443836B2 (en) 2003-06-16 2008-10-28 Intel Corporation Processing a data packet
US20070169022A1 (en) * 2003-06-18 2007-07-19 Jones Anthony M Processor having multiple instruction sources and execution modes
TW200506733A (en) * 2003-08-15 2005-02-16 Via Tech Inc Apparatus and method for the co-simulation of CPU and DUT modules
US7961194B2 (en) 2003-11-19 2011-06-14 Lucid Information Technology, Ltd. Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system
US20080079737A1 (en) 2003-11-19 2008-04-03 Reuven Bakalash Multi-mode parallel graphics rendering and display system supporting real-time detection of mode control commands (MCCS) programmed within pre-profiled scenes of the graphics-based application
WO2005050557A2 (en) * 2003-11-19 2005-06-02 Lucid Information Technology Ltd. Method and system for multiple 3-d graphic pipeline over a pc bus
US8497865B2 (en) * 2006-12-31 2013-07-30 Lucid Information Technology, Ltd. Parallel graphics system employing multiple graphics processing pipelines with multiple graphics processing units (GPUS) and supporting an object division mode of parallel graphics processing using programmable pixel or vertex processing resources provided with the GPUS
US20090027383A1 (en) * 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Computing system parallelizing the operation of multiple graphics processing pipelines (GPPLs) and supporting depth-less based image recomposition
US8085273B2 (en) 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US20050228966A1 (en) * 2004-03-16 2005-10-13 Kabushiki Kaisha Toshiba Processor system and data processing method
US7937557B2 (en) 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
US20050216700A1 (en) * 2004-03-26 2005-09-29 Hooman Honary Reconfigurable parallelism architecture
US8719837B2 (en) 2004-05-19 2014-05-06 Synopsys, Inc. Microprocessor architecture having extendible logic
US20060184027A1 (en) * 2005-01-06 2006-08-17 Kabushiki Kaisha Toshiba Diagnostic imaging system, magnetic resonance imaging apparatus, and method of diagnostic imaging
US7644255B2 (en) * 2005-01-13 2010-01-05 Sony Computer Entertainment Inc. Method and apparatus for enable/disable control of SIMD processor slices
CN101849227A (zh) * 2005-01-25 2010-09-29 透明信息技术有限公司 在单片构造的硅芯片上采用多个图形核心的图形处理和显示系统
JP4211751B2 (ja) * 2005-03-25 2009-01-21 セイコーエプソン株式会社 集積回路装置
US7904695B2 (en) 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous power saving computer
US8255745B2 (en) 2005-08-29 2012-08-28 The Invention Science Fund I, Llc Hardware-error tolerant computing
US7774558B2 (en) 2005-08-29 2010-08-10 The Invention Science Fund I, Inc Multiprocessor resource optimization
US7725693B2 (en) * 2005-08-29 2010-05-25 Searete, Llc Execution optimization using a processor resource management policy saved in an association with an instruction group
US7493516B2 (en) * 2005-08-29 2009-02-17 Searete Llc Hardware-error tolerant computing
US8214191B2 (en) 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
US7779213B2 (en) * 2005-08-29 2010-08-17 The Invention Science Fund I, Inc Optimization of instruction group execution through hardware resource management policies
US20070050608A1 (en) * 2005-08-29 2007-03-01 Searete Llc, A Limited Liability Corporatin Of The State Of Delaware Hardware-generated and historically-based execution optimization
US7877584B2 (en) 2005-08-29 2011-01-25 The Invention Science Fund I, Llc Predictive processor resource management
US8423824B2 (en) 2005-08-29 2013-04-16 The Invention Science Fund I, Llc Power sparing synchronous apparatus
US8181004B2 (en) 2005-08-29 2012-05-15 The Invention Science Fund I, Llc Selecting a resource management policy for a resource available to a processor
US7647487B2 (en) * 2005-08-29 2010-01-12 Searete, Llc Instruction-associated processor resource optimization
US7653834B2 (en) * 2005-08-29 2010-01-26 Searete, Llc Power sparing synchronous apparatus
US8516300B2 (en) 2005-08-29 2013-08-20 The Invention Science Fund I, Llc Multi-votage synchronous systems
US7739524B2 (en) * 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
US7627739B2 (en) * 2005-08-29 2009-12-01 Searete, Llc Optimization of a hardware resource shared by a multiprocessor
US8209524B2 (en) * 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
US20070073925A1 (en) 2005-09-28 2007-03-29 Arc International (Uk) Limited Systems and methods for synchronizing multiple processing engines of a microprocessor
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7904615B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7860857B2 (en) 2006-03-30 2010-12-28 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US8358695B2 (en) * 2006-04-26 2013-01-22 Altera Corporation Methods and apparatus for providing a scalable motion estimation/compensation assist function within an array processor
US7730280B2 (en) * 2006-06-15 2010-06-01 Vicore Technologies, Inc. Methods and apparatus for independent processor node operations in a SIMD array processor
EP2057554A1 (en) * 2006-08-20 2009-05-13 Ambric Inc. Processor having multiple instruction sources and execution modes
KR100990526B1 (ko) 2006-08-23 2010-10-29 닛본 덴끼 가부시끼가이샤 혼합 모드 병렬 프로세서 시스템 및 방법과 혼합 모드 병렬 프로세서 프로그램이 기록되어 있는 컴퓨터 판독가능 기록매체
US9563433B1 (en) * 2006-09-01 2017-02-07 Allsearch Semi Llc System and method for class-based execution of an instruction broadcasted to an array of processing elements
US7809926B2 (en) * 2006-11-03 2010-10-05 Cornell Research Foundation, Inc. Systems and methods for reconfiguring on-chip multiprocessors
KR100896269B1 (ko) * 2006-12-05 2009-05-08 한국전자통신연구원 SIMD/SISD/Row/Column 동작을 할 수있는 SIMD 병렬 프로세서
US20080182021A1 (en) * 2007-01-31 2008-07-31 Simka Harsono S Continuous ultra-thin copper film formed using a low thermal budget
US20080270751A1 (en) * 2007-04-27 2008-10-30 Technology Properties Limited System and method for processing data in a pipeline of computers
US7979674B2 (en) * 2007-05-16 2011-07-12 International Business Machines Corporation Re-executing launcher program upon termination of launched programs in MIMD mode booted SIMD partitions
US7814295B2 (en) * 2007-05-18 2010-10-12 International Business Machines Corporation Moving processing operations from one MIMD booted SIMD partition to another to enlarge a SIMD partition
US7840826B2 (en) * 2007-05-31 2010-11-23 Vns Portfolio Llc Method and apparatus for using port communications to switch processor modes
US7831803B2 (en) * 2007-07-19 2010-11-09 International Business Machines Corporation Executing multiple instructions multiple date (‘MIMD’) programs on a single instruction multiple data (‘SIMD’) machine
US7831802B2 (en) * 2007-07-19 2010-11-09 International Business Machines Corporation Executing Multiple Instructions Multiple Data (‘MIMD’) programs on a Single Instruction Multiple Data (‘SIMD’) machine
US8359462B1 (en) 2007-11-21 2013-01-22 Marvell International Ltd. Method and apparatus for programmable coupling between CPU and co-processor
CN101216815B (zh) * 2008-01-07 2010-11-03 浪潮电子信息产业股份有限公司 一种双翼可扩展多处理器紧耦合共享存储器体系结构
US8078834B2 (en) * 2008-01-09 2011-12-13 Analog Devices, Inc. Processor architectures for enhanced computational capability
RU2495476C2 (ru) 2008-06-20 2013-10-10 Инвенсис Системз, Инк. Системы и способы для иммерсивного взаимодействия с действительными и/или имитируемыми техническими средствами для управления технологическим процессом, контроля состояния окружающей среды и производственного контроля
US8438404B2 (en) * 2008-09-30 2013-05-07 International Business Machines Corporation Main processing element for delegating virtualized control threads controlling clock speed and power consumption to groups of sub-processing elements in a system such that a group of sub-processing elements can be designated as pseudo main processing element
US8732716B2 (en) 2008-09-30 2014-05-20 International Business Machines Corporation Virtualization across physical partitions of a multi-core processor (MCP)
US8139668B2 (en) * 2009-03-31 2012-03-20 Mitsubishi Electric Research Laboratories, Inc. Unified STTC encoder for WAVE transceivers
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
TWI414994B (zh) * 2009-09-24 2013-11-11 Ind Tech Res Inst 可重組態處理裝置及其系統
US9552206B2 (en) * 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
US8812785B2 (en) * 2011-05-23 2014-08-19 International Business Machines Corporation Managing track discard requests to include in discard track messages
WO2013095575A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Broadcast operation on mask register
KR101978409B1 (ko) * 2012-02-28 2019-05-14 삼성전자 주식회사 재구성가능 프로세서, 이를 위한 코드 변환 장치 및 방법
CN104885061B (zh) * 2013-01-21 2016-11-09 日产自动车株式会社 排他控制检查装置、排他控制检查方法
CN103106175B (zh) * 2013-01-23 2015-12-23 杭州士兰微电子股份有限公司 基于共享寄存器和流水处理的处理器阵列
US9606803B2 (en) * 2013-07-15 2017-03-28 Texas Instruments Incorporated Highly integrated scalable, flexible DSP megamodule architecture
US10055228B2 (en) * 2013-08-19 2018-08-21 Shanghai Xinhao Microelectronics Co. Ltd. High performance processor system and method based on general purpose units
US9396032B2 (en) * 2014-03-27 2016-07-19 Intel Corporation Priority based context preemption
US9672043B2 (en) 2014-05-12 2017-06-06 International Business Machines Corporation Processing of multiple instruction streams in a parallel slice processor
US9665372B2 (en) 2014-05-12 2017-05-30 International Business Machines Corporation Parallel slice processor with dynamic instruction stream mapping
US9760375B2 (en) 2014-09-09 2017-09-12 International Business Machines Corporation Register files for storing data operated on by instructions of multiple widths
US9720696B2 (en) 2014-09-30 2017-08-01 International Business Machines Corporation Independent mapping of threads
US9977678B2 (en) 2015-01-12 2018-05-22 International Business Machines Corporation Reconfigurable parallel execution and load-store slice processor
US10133576B2 (en) 2015-01-13 2018-11-20 International Business Machines Corporation Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries
US10133581B2 (en) 2015-01-13 2018-11-20 International Business Machines Corporation Linkable issue queue parallel execution slice for a processor
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US9983875B2 (en) 2016-03-04 2018-05-29 International Business Machines Corporation Operation of a multi-slice processor preventing early dependent instruction wakeup
US10037211B2 (en) 2016-03-22 2018-07-31 International Business Machines Corporation Operation of a multi-slice processor with an expanded merge fetching queue
US10346174B2 (en) 2016-03-24 2019-07-09 International Business Machines Corporation Operation of a multi-slice processor with dynamic canceling of partial loads
US10761854B2 (en) 2016-04-19 2020-09-01 International Business Machines Corporation Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor
US10037229B2 (en) 2016-05-11 2018-07-31 International Business Machines Corporation Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions
US9934033B2 (en) 2016-06-13 2018-04-03 International Business Machines Corporation Operation of a multi-slice processor implementing simultaneous two-target loads and stores
US10042647B2 (en) 2016-06-27 2018-08-07 International Business Machines Corporation Managing a divided load reorder queue
US10318419B2 (en) 2016-08-08 2019-06-11 International Business Machines Corporation Flush avoidance in a load store unit
FR3074931B1 (fr) * 2017-12-13 2020-01-03 Vsora Architectures de processeur
US20230229450A1 (en) * 2018-02-23 2023-07-20 Untether Ai Corporation Computational memory
US11593167B2 (en) * 2019-05-09 2023-02-28 International Business Machines Corporation Thread embedded cache management
KR20210042751A (ko) 2019-10-10 2021-04-20 삼성전자주식회사 충전 집적 회로 및 이의 동작 방법
GB2607349B (en) * 2021-06-04 2023-06-28 Advanced Risc Mach Ltd Graphics processing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63146154A (ja) * 1986-09-27 1988-06-18 スー・ツアオ・チャン 共働動作機能を有するホモジェニアス・マルチ・コンピュータ・システムとその共働動作の方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754394A (en) * 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
US5230079A (en) * 1986-09-18 1993-07-20 Digital Equipment Corporation Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register
US5010477A (en) * 1986-10-17 1991-04-23 Hitachi, Ltd. Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
US5165023A (en) * 1986-12-17 1992-11-17 Massachusetts Institute Of Technology Parallel processing system with processor array and network communications system for transmitting messages of variable length
US4891787A (en) * 1986-12-17 1990-01-02 Massachusetts Institute Of Technology Parallel processing system with processor array having SIMD/MIMD instruction processing
US4873626A (en) * 1986-12-17 1989-10-10 Massachusetts Institute Of Technology Parallel processing system with processor array having memory system included in system memory
US4829422A (en) * 1987-04-02 1989-05-09 Stellar Computer, Inc. Control of multiple processors executing in parallel regions
US5008882A (en) * 1987-08-17 1991-04-16 California Institute Of Technology Method and apparatus for eliminating unsuccessful tries in a search tree
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
CA2019300C (en) * 1989-06-22 2001-06-12 Kendall Square Research Corporation Multiprocessor system with shared memory
US5212777A (en) * 1989-11-17 1993-05-18 Texas Instruments Incorporated Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
US5239629A (en) * 1989-12-29 1993-08-24 Supercomputer Systems Limited Partnership Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63146154A (ja) * 1986-09-27 1988-06-18 スー・ツアオ・チャン 共働動作機能を有するホモジェニアス・マルチ・コンピュータ・システムとその共働動作の方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010009610A (ja) * 1998-10-09 2010-01-14 Altera Corp プロセッサ装置、デュアルプロセッサを動作させる方法及びアレイプロセッサの動作方法
JP4500363B2 (ja) * 1998-10-09 2010-07-14 アルテラ コーポレイション プロセッサ装置、デュアルプロセッサを動作させる方法及びアレイプロセッサの動作方法
JP2008047079A (ja) * 2005-09-07 2008-02-28 Sony Corp 集積装置
JP2011086158A (ja) * 2009-10-16 2011-04-28 Mitsubishi Electric Corp 並列信号処理装置
JP2011145759A (ja) * 2010-01-12 2011-07-28 Mitsubishi Electric Corp 並列信号処理プロセッサ
JP2014509419A (ja) * 2011-01-25 2014-04-17 コグニヴュー コーポレーション ベクトルユニット共有の装置および方法

Also Published As

Publication number Publication date
KR930010758A (ko) 1993-06-23
EP0544127A2 (en) 1993-06-02
US5475856A (en) 1995-12-12
DE69228586T2 (de) 1999-10-14
ATE177547T1 (de) 1999-03-15
MX9206864A (es) 1993-05-01
CN1072788A (zh) 1993-06-02
DE69228586D1 (de) 1999-04-15
JP2647315B2 (ja) 1997-08-27
EP0544127B1 (en) 1999-03-10
CN1044646C (zh) 1999-08-11
EP0544127A3 (en) 1994-04-20
CA2073516A1 (en) 1993-05-28
KR970008529B1 (en) 1997-05-24

Similar Documents

Publication Publication Date Title
JP2647315B2 (ja) 動的に複数モードで並列処理するアレイ
US6446190B1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
EP2336879B1 (en) Methods and apparatus for dynamically merging an array controller with an array processing element
US5887183A (en) Method and system in a data processing system for loading and storing vectors in a plurality of modes
US6272616B1 (en) Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths
US5872987A (en) Massively parallel computer including auxiliary vector processor
US6581152B2 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
US5680597A (en) System with flexible local control for modifying same instruction partially in different processor of a SIMD computer system to execute dissimilar sequences of instructions
US6128720A (en) Distributed processing array with component processors performing customized interpretation of instructions
US5513366A (en) Method and system for dynamically reconfiguring a register file in a vector processor
US5805875A (en) Vector processing system with multi-operation, run-time configurable pipelines
US4837676A (en) MIMD instruction flow computer architecture
US6839831B2 (en) Data processing apparatus with register file bypass
JPH08249293A (ja) 代理命令を用いる並列処理システム及び方法
JPH05224923A (ja) ハイブリッドパイプライン接続プロセッサおよびその処理方法
JPH04245540A (ja) 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム
US7308559B2 (en) Digital signal processor with cascaded SIMD organization
US7383419B2 (en) Address generation unit for a processor
US5481736A (en) Computer processing element having first and second functional units accessing shared memory output port on prioritized basis
USRE41012E1 (en) Register file indexing methods and apparatus for providing indirect control of register addressing in a VLIW processor
Ebeling The general RaPiD architecture description
Time has token
JPS63318635A (ja) デ−タ処理装置
JPH09134288A (ja) 並列命令処理装置