JP2647315B2 - 動的に複数モードで並列処理するアレイ - Google Patents
動的に複数モードで並列処理するアレイInfo
- Publication number
- JP2647315B2 JP2647315B2 JP4272758A JP27275892A JP2647315B2 JP 2647315 B2 JP2647315 B2 JP 2647315B2 JP 4272758 A JP4272758 A JP 4272758A JP 27275892 A JP27275892 A JP 27275892A JP 2647315 B2 JP2647315 B2 JP 2647315B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- processor
- mode
- simd
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title description 7
- 230000008569 process Effects 0.000 title description 6
- 238000003491 array Methods 0.000 title description 2
- 238000012545 processing Methods 0.000 claims abstract description 215
- 230000015654 memory Effects 0.000 claims abstract description 41
- 230000006870 function Effects 0.000 claims description 19
- 230000008859 change Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 4
- 230000008878 coupling Effects 0.000 abstract description 4
- 238000010168 coupling process Methods 0.000 abstract description 4
- 238000005859 coupling reaction Methods 0.000 abstract description 4
- 230000008901 benefit Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- RLLPVAHGXHCWKJ-IEBWSBKVSA-N (3-phenoxyphenyl)methyl (1s,3s)-3-(2,2-dichloroethenyl)-2,2-dimethylcyclopropane-1-carboxylate Chemical compound CC1(C)[C@H](C=C(Cl)Cl)[C@@H]1C(=O)OCC1=CC=CC(OC=2C=CC=CC=2)=C1 RLLPVAHGXHCWKJ-IEBWSBKVSA-N 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101000767534 Arabidopsis thaliana Chorismate mutase 2 Proteins 0.000 description 1
- 101000986989 Naja kaouthia Acidic phospholipase A2 CM-II Proteins 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003446 memory effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent 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/3891—Concurrent 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
- G06F15/17343—Direct 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/803—Three-dimensional arrays or hypercubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent 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
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02B—INTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
- F02B75/00—Other engines
- F02B75/02—Engines characterised by their cycles, e.g. six-stroke
- F02B2075/022—Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
- F02B2075/027—Engines 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)
Description
【0001】
【産業上の利用分野】本発明は詳細にいえば処理装置の
アレイを利用して複数モードの処理を動的に実現し、処
理要素のアレイ内で並列にプログラムを実行できるコン
ピュータ・システムに関する。
アレイを利用して複数モードの処理を動的に実現し、処
理要素のアレイ内で並列にプログラムを実行できるコン
ピュータ・システムに関する。
【0002】
【従来の技術】プログラムを並列に実行できる処理装置
のアレイを使用することのできるコンピュータ・システ
ムが開発された。
のアレイを使用することのできるコンピュータ・システ
ムが開発された。
【0003】VLSIテクノロジは複数の処理装置(各
々がそれ自体のメモリを有している)を単一チップ及び
複数チップのいずれにおいてもきわめて近接して配置す
ることを可能としている。このような並列アレイの処理
装置を単一命令複数データ流(SIMD)方式、または
複数命令複数データ流(MIMD)方式または単一命令
単一データ流(SISD)方式のいずれにも構成するこ
とができるが、今日まで、いずれにおいても複数タイプ
のモードが採用されておらず、またプログラムの実行中
にモードを動的に、かつ効率よく変更できる形態を提供
している機械は存在していなかった。
々がそれ自体のメモリを有している)を単一チップ及び
複数チップのいずれにおいてもきわめて近接して配置す
ることを可能としている。このような並列アレイの処理
装置を単一命令複数データ流(SIMD)方式、または
複数命令複数データ流(MIMD)方式または単一命令
単一データ流(SISD)方式のいずれにも構成するこ
とができるが、今日まで、いずれにおいても複数タイプ
のモードが採用されておらず、またプログラムの実行中
にモードを動的に、かつ効率よく変更できる形態を提供
している機械は存在していなかった。
【0004】いくつかの業績は1981年にHemisphere
Publishing Corporationによって発行された「The Arc
hitecture of Pipelined Computers」(ISBN 0-89116-4
94-4)という題名の本発明者の著書に一部基づくもので
あると思われる。この著作は歴史的なものであるが、本
分野において10年間の進歩があった現在においても依
然有用なものである。(同書11−20ページ参照。)
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日に発行された。
機械の開発が続いている。たとえば、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に切り換
え、不動小数点計算のために若干の複雑な命令を処理す
ることを意図していた。
る。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の処理に割り込む機能がある。
る。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)のモードでの効率
のよい並列実行に強固に合致するものでありうる。さら
に、問題の異なる部分に対して異なるモードでの実行が
可能な機械アーキテクチャがあれば、ほとんどすべての
アルゴリズムは、これから利益を得ることができる。
のSIMD処理装置(たとえば、接続機械CM−2)は
独立型の(stand alone)装置であるか、あ
るいはMIMDメインフレームのフロント・エンドまた
はバック・エンドとして作動するかのいずれかである。
各処理装置は特定の機能を達成するように設定されてお
り、かつ割込みを必要とする手法は、限定された専門の
モードの操作を行うのにかなりの量のオーバヘッドを必
要としている。しかしながら、ほとんどのコンピュータ
・アルゴリズムまたはプログラムはいくつかのモードの
うち1つ(SIMDまたはMIMD)のモードでの効率
のよい並列実行に強固に合致するものでありうる。さら
に、問題の異なる部分に対して異なるモードでの実行が
可能な機械アーキテクチャがあれば、ほとんどすべての
アルゴリズムは、これから利益を得ることができる。
【0009】
【課題を解決するための手段】本明細書記載の発明は、
機械アーキテクチャが問題の異なる部分に対して異なる
モードの実行を許容することを可能とする。さらに、機
械は、同一のシステム・リソース・セットを使用して、
複数モードのアプリケーションが可能とする。本明細書
で説明するコンピュータ・システムは複数グループの処
理装置(処理要素:PE)及びメモリを有するマルチプ
ロセッサ・コンピュータ・システムであり(処理装置は
相互接続経路により相互接続されている)、またシステ
ムの処理装置による命令の実行を制御するための操作手
段を有するマルチプロセッサ・システムである。好まし
い実施例によれば、SIMDモードまたはMIMDモー
ド、あるいはこれら両方で動的に命令を実行するよう
に、処理装置を構成することができる。このモードの変
更は命令ごとに行うことができる。処理装置は物理的に
同一のものであるが、それにもかかわらず、複数モード
の機能を達成することができるものである。
機械アーキテクチャが問題の異なる部分に対して異なる
モードの実行を許容することを可能とする。さらに、機
械は、同一のシステム・リソース・セットを使用して、
複数モードのアプリケーションが可能とする。本明細書
で説明するコンピュータ・システムは複数グループの処
理装置(処理要素:PE)及びメモリを有するマルチプ
ロセッサ・コンピュータ・システムであり(処理装置は
相互接続経路により相互接続されている)、またシステ
ムの処理装置による命令の実行を制御するための操作手
段を有するマルチプロセッサ・システムである。好まし
い実施例によれば、SIMDモードまたはMIMDモー
ド、あるいはこれら両方で動的に命令を実行するよう
に、処理装置を構成することができる。このモードの変
更は命令ごとに行うことができる。処理装置は物理的に
同一のものであるが、それにもかかわらず、複数モード
の機能を達成することができるものである。
【0010】本発明の好ましい実施例において、各コン
ピュータ処理要素は最低限、命令レジスタ、プログラム
・カウンタ、及び状態コード・レジスタを有する。本明
細書記載のアーキテクチャの場合、本発明はMIMDモ
ードの操作に必要な共通処理要素のリソースをSIMD
モードで使用することができ、かつこのモードで有用な
ものとすることを可能とする制御機能を提供する。
ピュータ処理要素は最低限、命令レジスタ、プログラム
・カウンタ、及び状態コード・レジスタを有する。本明
細書記載のアーキテクチャの場合、本発明はMIMDモ
ードの操作に必要な共通処理要素のリソースをSIMD
モードで使用することができ、かつこのモードで有用な
ものとすることを可能とする制御機能を提供する。
【0011】したがって、本発明ではプログラム・カウ
ンタに基底レジスタ機能を割り当て、状態コード・レジ
スタにローカル・イネーブル機能を割り当てた。また、
本発明では命令レジスタを利用して、SIMD命令をパ
イプライン化する。
ンタに基底レジスタ機能を割り当て、状態コード・レジ
スタにローカル・イネーブル機能を割り当てた。また、
本発明では命令レジスタを利用して、SIMD命令をパ
イプライン化する。
【0012】処理装置の各々は命令レジスタに、現命令
の実行に対して設定されている操作モードを動的に示す
ための値を有している。命令セット内の命令をシステム
の選択された処理装置に対してブロードキャストし、シ
ステムの選択された処理装置のセットを、希望する操作
モードに動的に切り換えることができる。
の実行に対して設定されている操作モードを動的に示す
ための値を有している。命令セット内の命令をシステム
の選択された処理装置に対してブロードキャストし、シ
ステムの選択された処理装置のセットを、希望する操作
モードに動的に切り換えることができる。
【0013】本発明の好ましい実施例では、命令ストリ
ームを実行する処理装置グループの各処理要素の命令レ
ジスタの間に経路を設け、このように設けられた経路上
でのブロードキャストによってグループの複数の処理装
置におけるSIMD操作を可能とする。
ームを実行する処理装置グループの各処理要素の命令レ
ジスタの間に経路を設け、このように設けられた経路上
でのブロードキャストによってグループの複数の処理装
置におけるSIMD操作を可能とする。
【0014】他の実施例においては、相互接続ネットワ
ークが処理装置間のブロードキャスト機能を実行するこ
とができる。処理装置間の直接ブロードキャスト経路と
組み合わせることのできるこの実施例においては、多段
相互接続ネットワークが命令レジスタに対する代替経路
を提供する。この代替相互接続ネットワークはブロッキ
ングなしに処理装置の2地点間結合を可能とする動的な
両面切換多段ネットワークである。
ークが処理装置間のブロードキャスト機能を実行するこ
とができる。処理装置間の直接ブロードキャスト経路と
組み合わせることのできるこの実施例においては、多段
相互接続ネットワークが命令レジスタに対する代替経路
を提供する。この代替相互接続ネットワークはブロッキ
ングなしに処理装置の2地点間結合を可能とする動的な
両面切換多段ネットワークである。
【0015】さらに、同一のコンピュータ・システムで
動的に作動するいくつかのモードを相互に処理する動的
グループを構成しうる。公知のシステムはいずれもこの
ような構成を行うことができない。
動的に作動するいくつかのモードを相互に処理する動的
グループを構成しうる。公知のシステムはいずれもこの
ような構成を行うことができない。
【0016】
【実施例】本発明によれば、本明細書で説明するコンピ
ュータ・システム及びそのアーキテクチャは、機械の処
理要素が、問題の異なる部分を、同一のリソースを使用
して、適切なモード、たとえば図1のSIMDモードま
たは図2のMIMDモードで実行することを可能とす
る。なお、図1が意味する範囲内で、SISDを考慮す
る(後述)。本発明の好ましい実施例において、機械は
同一セットのシステム・リソースを使用して、複数モー
ドのアプリケーションを使用可能とするが、これらのリ
ソースは動的に再構成される。本明細書記載のコンピュ
ータ・システムは複数グループの処理装置1...Nを
有するマルチプロセッサ・コンピュータ・システムであ
る。処理要素は(好ましいRISC構成において)制御
装置、データ・フロー装置、及びメモリを有する。処理
装置は相互接続経路を介して互いに結合されるが、この
経路はクロスバー、あるいは回線交換ネットワーク、2
進ハイパーキューブまたはその他の接続ネットワークな
どの任意の共通形式の相互接続ネットワークでよい。本
発明の好ましい実施例ならびに他の実施例において、本
明細書記載のアーキテクチャのための最善の好ましい接
続ネットワークは、H. T. Olnowich他の特願平4−20
4413号に記載されており、RS/6000及びその
他の処理装置を互いに非同期的に接続するのに適した並
列接続媒体として多段ネットワーク機能を果たし、任意
の態様で同時にあるいはオーバラップして送られた命令
によって、処理装置ノードを相互にリンクすることを可
能とするALLNODEスイッチに基づくものである。
ネットワークはVLSIによって実現され、規則的な、
多段両面チップ内で等距離にある代替経路を介して動的
非ブロッキングを、チップ内、基板上、あるいは通信経
路上で処理装置を結合する接続ポートに提供する。シス
テムは本発明者が発明者である上記の特許願に記載され
ている単信ネットワークに2重優先順位手法を提供する
ことができる。このスイッチは本発明の特徴のいくつか
を可能とするものである。
ュータ・システム及びそのアーキテクチャは、機械の処
理要素が、問題の異なる部分を、同一のリソースを使用
して、適切なモード、たとえば図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処理に適用可能なリソ
ースを有している。
ドで基底レジスタ機能を割り当てることができるプログ
ラム・カウンタ、ローカル・イネーブル機能を割り当て
ることができる状態コード・レジスタ、及びSIMD命
令をパイプラインするためにSIMDモードで利用され
る命令レジスタを含む、MIMD処理に適用可能なリソ
ースを有している。
【0018】本明細書で説明するアーキテクチャはシス
テムの処理装置による命令の実行を制御するための操作
手段を提供する。好ましい実施例によれば、処理装置を
構成して、SIMDモードまたはMIMDモード、ある
いはこれら両方において動的に命令を実行することがで
きる。このモードの変更は命令ごとに行うことができ
る。処理装置は物理的に同一のものであるが、複数モー
ドの機能を実行できるものである。
テムの処理装置による命令の実行を制御するための操作
手段を提供する。好ましい実施例によれば、処理装置を
構成して、SIMDモードまたはMIMDモード、ある
いはこれら両方において動的に命令を実行することがで
きる。このモードの変更は命令ごとに行うことができ
る。処理装置は物理的に同一のものであるが、複数モー
ドの機能を実行できるものである。
【0019】本発明の好ましい実施例においては、コン
ピュータの処理要素が命令レジスタ、プログラム・カウ
ンタ、及び状態コード・レジスタを有しているのである
から、コンピュータ・システムはMIMDモードの操作
に必要な共通処理要素のこれらのリソースをSIMDで
使用可能とし、かつこれで有用なものとする制御機能を
有することになる。
ピュータの処理要素が命令レジスタ、プログラム・カウ
ンタ、及び状態コード・レジスタを有しているのである
から、コンピュータ・システムはMIMDモードの操作
に必要な共通処理要素のこれらのリソースをSIMDで
使用可能とし、かつこれで有用なものとする制御機能を
有することになる。
【0020】本明細書での説明のため、本発明の好まし
い実施例においては、個々の処理装置が図3に要約した
特徴を有するものと仮定する。これらの特徴は多くのR
ISCアーキテクチャで可能な特性であって、これらは
インターナショナル・ビジネス・マシーンズ・コーポレ
ーションが市販しており、本発明で使用されることが望
ましいRS/6000 RISC処理装置で見いだすこ
とができるものである。ただし、本発明の範囲内で、個
々の処理装置は次のような特徴を有している。
い実施例においては、個々の処理装置が図3に要約した
特徴を有するものと仮定する。これらの特徴は多くのR
ISCアーキテクチャで可能な特性であって、これらは
インターナショナル・ビジネス・マシーンズ・コーポレ
ーションが市販しており、本発明で使用されることが望
ましいRS/6000 RISC処理装置で見いだすこ
とができるものである。ただし、本発明の範囲内で、個
々の処理装置は次のような特徴を有している。
【0021】1.データに対するすべてのメモリ参照
が、RISCに類する命令セット・アーキテクチャで共
通のLOAD及びSTORE命令によって実行される命
令セットを備えている。
が、RISCに類する命令セット・アーキテクチャで共
通のLOAD及びSTORE命令によって実行される命
令セットを備えている。
【0022】2.このようなデータ・アクセスに対する
アドレス指定は基底(base)に変位を加えたもので
あるが、加算及びインデックス・レジスタの更新はメモ
リ操作が開始された後、事後アドレス更新として適用し
なければならない。
アドレス指定は基底(base)に変位を加えたもので
あるが、加算及びインデックス・レジスタの更新はメモ
リ操作が開始された後、事後アドレス更新として適用し
なければならない。
【0023】3.加算または減算などの演算操作を行う
すべての命令はレジスタ間のものであり、メモリ参照を
必要とせずに1つまたは複数の実行サイクルで実行でき
る(このサイクル時間は、本開示においては説明を簡単
とするために1サイクル時間と想定して記載する)。
すべての命令はレジスタ間のものであり、メモリ参照を
必要とせずに1つまたは複数の実行サイクルで実行でき
る(このサイクル時間は、本開示においては説明を簡単
とするために1サイクル時間と想定して記載する)。
【0024】4.すべての命令は厳密に1メモリ・ワー
ドに一致していなければならない。ただし、2ワードを
取る(2番目はデータである)即値命令を除く。
ドに一致していなければならない。ただし、2ワードを
取る(2番目はデータである)即値命令を除く。
【0025】5.すべての命令は1機械サイクルに一致
していなければならず、メモリ・オペランドのアドレス
がサイクルの開始時に機械のレジスタから選択でき、か
つ読取り時に結果を受け取るレジスタがサイクルの終了
時にこれをラッチできなければならない。
していなければならず、メモリ・オペランドのアドレス
がサイクルの開始時に機械のレジスタから選択でき、か
つ読取り時に結果を受け取るレジスタがサイクルの終了
時にこれをラッチできなければならない。
【0026】これらの特徴はすべて今日の典型的なRI
SC機械で見いだされるものであり、かつ現在開発中の
進歩のいくつかを備えたより複雑なアーキテクチャでも
実施できるものである。ここで重要なのは、本発明では
詳細に説明する単純化されたRISC機械が好ましい
が、本発明の特徴の説明において、従来のアーキテクチ
ャで作動するように改変できないものは何もないという
ことである。
SC機械で見いだされるものであり、かつ現在開発中の
進歩のいくつかを備えたより複雑なアーキテクチャでも
実施できるものである。ここで重要なのは、本発明では
詳細に説明する単純化されたRISC機械が好ましい
が、本発明の特徴の説明において、従来のアーキテクチ
ャで作動するように改変できないものは何もないという
ことである。
【0027】[アーキテクチャ上の拡張]コンピュータ
・システムがSIMD(1例としての)とMIMDの間
で命令レベルで動的に切り替わることを可能とするアー
キテクチャ上の拡張を、2つの取り得るモードに関して
説明する。
・システムがSIMD(1例としての)とMIMDの間
で命令レベルで動的に切り替わることを可能とするアー
キテクチャ上の拡張を、2つの取り得るモードに関して
説明する。
【0028】本発明では図4にしたがって全体的に構成
された処理装置アレイを想定する。各処理装置の命令レ
ジスタ(IR)に入力する命令ワードは大域バス上(ま
たは、他の実施例においては、ネットワーク上)の1回
のブロードキャストによるもの、制御中となっている処
理装置(PE#1)からのもの、あるいは処理装置自体
のメモリからのものである。
された処理装置アレイを想定する。各処理装置の命令レ
ジスタ(IR)に入力する命令ワードは大域バス上(ま
たは、他の実施例においては、ネットワーク上)の1回
のブロードキャストによるもの、制御中となっている処
理装置(PE#1)からのもの、あるいは処理装置自体
のメモリからのものである。
【0029】本発明によれば、各処理装置の命令レジス
タはこの処理装置のモードがSIMDであるか、MIM
Dであるかを示す新しい処理装置モード・ビット(PM
B)を認識する。このビットは命令の発生箇所を制御す
る。
タはこの処理装置のモードがSIMDであるか、MIM
Dであるかを示す新しい処理装置モード・ビット(PM
B)を認識する。このビットは命令の発生箇所を制御す
る。
【0030】また、各命令のフォーマットは「ローカ
ル」操作または「アレイ」操作を示す2つの値を有して
いる別個の並列実行タイプ・ビット(PET)を含んで
いる。
ル」操作または「アレイ」操作を示す2つの値を有して
いる別個の並列実行タイプ・ビット(PET)を含んで
いる。
【0031】最後に、システムは命令セットに「モード
切換」命令を備えており、この命令は命令ストリームの
「モード切換」命令にしたがう切換済みモード命令を実
行する処理装置の処理モード・ビットをフリップする。
切換」命令を備えており、この命令は命令ストリームの
「モード切換」命令にしたがう切換済みモード命令を実
行する処理装置の処理モード・ビットをフリップする。
【0032】これらのアーキテクチャ上の拡張は命令ご
とのモード間の動的な切換えを可能とし、かつコンピュ
ータ・システムの機械が、コンピュータ・システムによ
って実行されることを必要とするアルゴリズムの要求に
応じてSIMDモードまたはMIMDモード、あるいは
これら両方で作動することを可能とする。
とのモード間の動的な切換えを可能とし、かつコンピュ
ータ・システムの機械が、コンピュータ・システムによ
って実行されることを必要とするアルゴリズムの要求に
応じてSIMDモードまたはMIMDモード、あるいは
これら両方で作動することを可能とする。
【0033】[SIMDモード操作の例]処理装置の各
々は、命令レジスタに、現命令の実行のための操作モー
ドのセットを動的に示すために利用される値を有してい
る。命令セット内の命令をシステムの選択された処理装
置にブロードキャストし、システムの処理装置の選択さ
れたセットを希望する操作モードに切り換えることがで
きる。この例はSIMD操作を示している。
々は、命令レジスタに、現命令の実行のための操作モー
ドのセットを動的に示すために利用される値を有してい
る。命令セット内の命令をシステムの選択された処理装
置にブロードキャストし、システムの処理装置の選択さ
れたセットを希望する操作モードに切り換えることがで
きる。この例はSIMD操作を示している。
【0034】電源投入時に、PE#1というラベルの付
けられた処理装置以外のすべての処理装置はSIMDに
セットされた処理モード・ビット(PMB)を有する。
処理装置1はMIMDにセットされ、システムの構成中
は、このMIMDモードから変化することができない。
けられた処理装置以外のすべての処理装置はSIMDに
セットされた処理モード・ビット(PMB)を有する。
処理装置1はMIMDにセットされ、システムの構成中
は、このMIMDモードから変化することができない。
【0035】このモードにおいて、処理装置1は構成さ
れるシステムに対する制御装置として機能し、制御装置
として作動し、命令を取り出す。処理装置1が各命令を
取り出したときに、すべての他の処理装置はその命令レ
ジスタに、これらの各命令のコピーをラッチする。それ
故、命令取り出しの終了時に、すべての処理装置はその
IRに実行のための同一の命令を有することとなる。
れるシステムに対する制御装置として機能し、制御装置
として作動し、命令を取り出す。処理装置1が各命令を
取り出したときに、すべての他の処理装置はその命令レ
ジスタに、これらの各命令のコピーをラッチする。それ
故、命令取り出しの終了時に、すべての処理装置はその
IRに実行のための同一の命令を有することとなる。
【0036】次の機械サイクルの開始時に、各処理装置
はそのPMB及び命令の並列実行タイプ・ビット(PE
T)(IRで見いだされる)の両方を調べる。処理装置
1の場合(MIMDモードになっている)、「ローカ
ル」というPETは処理装置に命令を通常の命令として
復号させ、実行させる。それ故、次の機械サイクルは処
理装置1における命令の実行に専念し、そのメモリはロ
ード及び格納に利用できる。機械の設計が事前取り出し
を可能とし、かつ命令がメモリを必要としないようにす
ることが可能であるが、この場合、このサイクルは次の
命令の取り出しとなりうる。SIMDモードにおいて、
すべての他の処理装置は「ローカル」PETを見つけ、
命令を無視する。これらの処理装置は遊休状態となる。
この操作モードが有用なのは、何らかの総合的な状況ま
たは制御操作を制御処理装置によって行う必要がある場
合である。制御を行なう処理装置1が別の命令を取り出
した場合、処理が反復され、SIMDモードのすべての
処理装置がその命令レジスタに同時にこのメモリ参照を
捕捉する。
はそのPMB及び命令の並列実行タイプ・ビット(PE
T)(IRで見いだされる)の両方を調べる。処理装置
1の場合(MIMDモードになっている)、「ローカ
ル」というPETは処理装置に命令を通常の命令として
復号させ、実行させる。それ故、次の機械サイクルは処
理装置1における命令の実行に専念し、そのメモリはロ
ード及び格納に利用できる。機械の設計が事前取り出し
を可能とし、かつ命令がメモリを必要としないようにす
ることが可能であるが、この場合、このサイクルは次の
命令の取り出しとなりうる。SIMDモードにおいて、
すべての他の処理装置は「ローカル」PETを見つけ、
命令を無視する。これらの処理装置は遊休状態となる。
この操作モードが有用なのは、何らかの総合的な状況ま
たは制御操作を制御処理装置によって行う必要がある場
合である。制御を行なう処理装置1が別の命令を取り出
した場合、処理が反復され、SIMDモードのすべての
処理装置がその命令レジスタに同時にこのメモリ参照を
捕捉する。
【0037】このSIMDモード構成において、「アレ
イ」というPETはSIMDモードのすべての処理装置
(すなわち、制御処理装置1以外のすべての処理装置)
にアレイ命令を復号させ、実行させる。ただし、処理装
置1は「アレイ」のPETをフラグとして使用し、その
実行サイクルをスキップし、次の命令取り出しに直接進
む。これは、選択されたSIMDモードであるすべての
他の処理装置(アレイのグループのすべての処理装置)
による実行と、次の命令の取り出しとをオーバラップす
る。それ故、「アレイ」命令のストリングはすべての命
令の取り出しを全体的にオーバラップし、処理装置のメ
モリをこれらのサイクルの各々におけるデータ・オペラ
ンドに使用できるようにする。
イ」というPETはSIMDモードのすべての処理装置
(すなわち、制御処理装置1以外のすべての処理装置)
にアレイ命令を復号させ、実行させる。ただし、処理装
置1は「アレイ」のPETをフラグとして使用し、その
実行サイクルをスキップし、次の命令取り出しに直接進
む。これは、選択されたSIMDモードであるすべての
他の処理装置(アレイのグループのすべての処理装置)
による実行と、次の命令の取り出しとをオーバラップす
る。それ故、「アレイ」命令のストリングはすべての命
令の取り出しを全体的にオーバラップし、処理装置のメ
モリをこれらのサイクルの各々におけるデータ・オペラ
ンドに使用できるようにする。
【0038】命令が2ワードの即値命令でない限り、命
令の実行後に処理装置のプログラム・カウンタPCが自
動的に増分されないことを除き、SIMDアレイ・モー
ドの命令の実行は従来の処理装置の実行に対するものと
まったく同様に進行する。これによって、これらのSI
MD機械がそのプログラム・カウンタを他の基本カウン
タとして使用することが可能となる。これは処理装置が
すべてチップ上におかれるために、チップの領域が貴重
であり浪費してはならないようなあらゆるゲートが限定
された設計においては特に貴重な特徴である。
令の実行後に処理装置のプログラム・カウンタPCが自
動的に増分されないことを除き、SIMDアレイ・モー
ドの命令の実行は従来の処理装置の実行に対するものと
まったく同様に進行する。これによって、これらのSI
MD機械がそのプログラム・カウンタを他の基本カウン
タとして使用することが可能となる。これは処理装置が
すべてチップ上におかれるために、チップの領域が貴重
であり浪費してはならないようなあらゆるゲートが限定
された設計においては特に貴重な特徴である。
【0039】基底レジスタとして機能する場合にプログ
ラム・カウンタを修正する命令は次の通りである。
ラム・カウンタを修正する命令は次の通りである。
【0040】1.制御処理装置1によって取り出される
「ジャンプ(JUMP)」命令。ただし、「アレイ」に
等しくセットされているPETは各SIMDモードの処
理装置のプログラム・カウンタをこの値にセットする効
果を有している。
「ジャンプ(JUMP)」命令。ただし、「アレイ」に
等しくセットされているPETは各SIMDモードの処
理装置のプログラム・カウンタをこの値にセットする効
果を有している。
【0041】2.制御処理装置によって取り出される
「即値ロード(LOAD IMMEDIATE)」命
令。ただし、「アレイ」に等しくセットされているPE
Tは、各処理装置のレジスタを、この処理装置のプログ
ラム・カウンタによって指定されたアドレスのメモリの
内容でロードし、カウンタのPCの事後取り出し増分を
行う効果を有している。
「即値ロード(LOAD IMMEDIATE)」命
令。ただし、「アレイ」に等しくセットされているPE
Tは、各処理装置のレジスタを、この処理装置のプログ
ラム・カウンタによって指定されたアドレスのメモリの
内容でロードし、カウンタのPCの事後取り出し増分を
行う効果を有している。
【0042】3.スレーブのPCを指定されたリンク・
レジスタに保管し、PCに新しいアドレスを再ロードす
る「分岐連係(BRANCH AND LINK)」命
令。これは基底(base)を保管し、これを同じ命令
に再ロードするのと同等である。
レジスタに保管し、PCに新しいアドレスを再ロードす
る「分岐連係(BRANCH AND LINK)」命
令。これは基底(base)を保管し、これを同じ命令
に再ロードするのと同等である。
【0043】4.プログラム・カウンタを他のレジスタ
の1つから再ロードする「リターン(RETURN)」
命令。
の1つから再ロードする「リターン(RETURN)」
命令。
【0044】従って、これらの命令は全体として、処理
装置のPCを定数及びその他のデータのアレイに対する
ポインタとして使用することが可能とするものであり、
マトリックス演算にきわめて有用である。
装置のPCを定数及びその他のデータのアレイに対する
ポインタとして使用することが可能とするものであり、
マトリックス演算にきわめて有用である。
【0045】LOAD IMMEDIATEの逆動作で
ある「STORE IMMEDIATE」命令をこのア
ーキテクチャに含めるのが有利なこともある。通常は有
益な命令ではないが、本明細書記載の機械に関しては、
この命令はSIMD処理装置がそのプログラム・カウン
タを格納のための基本レジスタとしても使用することを
可能とするものである。
ある「STORE IMMEDIATE」命令をこのア
ーキテクチャに含めるのが有利なこともある。通常は有
益な命令ではないが、本明細書記載の機械に関しては、
この命令はSIMD処理装置がそのプログラム・カウン
タを格納のための基本レジスタとしても使用することを
可能とするものである。
【0046】図6は命令ストリームのサンプルを示す。
メモリ・サイクル期間のかなりの比率においてアレイが
有用な事象を実行するので、SIMDモードの本明細書
記載の発明が、100%の利用度に近い極めて高いメモ
リ利用度を可能とすることに留意されたい。
メモリ・サイクル期間のかなりの比率においてアレイが
有用な事象を実行するので、SIMDモードの本明細書
記載の発明が、100%の利用度に近い極めて高いメモ
リ利用度を可能とすることに留意されたい。
【0047】図6は、各処理要素に1つのアレイが見い
だされる場合に、2セットのアレイを互いに加えるプロ
グラムの例を示している。一番上の線はメモリ・サイク
ル当たり1つの区画を有しており、制御PE(1)及び
SIMDモードのPEの両方がそのサイクル中に何にア
クセスするかを示している。
だされる場合に、2セットのアレイを互いに加えるプロ
グラムの例を示している。一番上の線はメモリ・サイク
ル当たり1つの区画を有しており、制御PE(1)及び
SIMDモードのPEの両方がそのサイクル中に何にア
クセスするかを示している。
【0048】IR内の各命令のPETも各サイクルに示
されている。また、この図に示されている単純化された
アセンブリ言語は各opcodeの始まりに「x:」と
いう接頭辞が付けられている。これはこの命令に対する
PETビットである。「x」が「A」ならアレイ・モー
ドを示し、「x」が「L」ならローカル・モードを示
す。この図に示すプログラムは本発明の各種の新規な特
徴を実証するために選ばれたものである。
されている。また、この図に示されている単純化された
アセンブリ言語は各opcodeの始まりに「x:」と
いう接頭辞が付けられている。これはこの命令に対する
PETビットである。「x」が「A」ならアレイ・モー
ドを示し、「x」が「L」ならローカル・モードを示
す。この図に示すプログラムは本発明の各種の新規な特
徴を実証するために選ばれたものである。
【0049】図6に示すように、制御処理装置はループ
・カウントによってそれ自体のR1レジスタ(RISC
に類する機械で見いだされるアキュミュレータまたは汎
用レジスタ)をセットアップするローカル・モードの命
令によって実行を開始する。これには、1つは命令の取
り出し、もう1つは演算のための2つの機械サイクルが
かかる。他のPEはこの間遊休状態である。
・カウントによってそれ自体のR1レジスタ(RISC
に類する機械で見いだされるアキュミュレータまたは汎
用レジスタ)をセットアップするローカル・モードの命
令によって実行を開始する。これには、1つは命令の取
り出し、もう1つは演算のための2つの機械サイクルが
かかる。他のPEはこの間遊休状態である。
【0050】次いで、PETがアレイであるので、「L
OAD BASE,X」命令を取り出して配布するが、
この命令はSIMDモードの各処理要素の基底レジスタ
にXアレイのアドレスをロードする。これには取り出し
のための1機械サイクルがかかるが、SIMD PEの
機械サイクルはパイプライン式に後のサイクルとオーバ
ラップする。
OAD BASE,X」命令を取り出して配布するが、
この命令はSIMDモードの各処理要素の基底レジスタ
にXアレイのアドレスをロードする。これには取り出し
のための1機械サイクルがかかるが、SIMD PEの
機械サイクルはパイプライン式に後のサイクルとオーバ
ラップする。
【0051】次のサイクルを見ると、この場合は「JU
MP Y」であるアレイ・モード命令を、PE#1は再
度取り出して配布する。これは、SIMDモードのすべ
てのPEに、そのPCへ他のアレイの開始アドレスをロ
ードさせるという効果を有する。
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アレイ要素をポイントするようにする。
べての命令は、これらを取り出し配布する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などのこ
のような機能の他の実施形態は、これらの命令の両方を
単一の命令に圧縮することができる。
り、ループ・カウントを減分(PE#1のR1に見いだ
される)する命令及びループの始めに戻る「Jump
not Zero」命令からなっている。この後者のジ
ャンプはローカル・モードで実行されるものであって、
PE#1のPCのみに影響を及ぼし、Yアレイに対する
ポインタとして使用されるPCをSIMDモードのまま
にする。IBMのシステム/370の機械アーキテクチ
ャにみられるBRANCH ON COUNTなどのこ
のような機能の他の実施形態は、これらの命令の両方を
単一の命令に圧縮することができる。
【0054】[MIMDモードの例]上述したSIMD
モードの構造及び作動方法は多くのアプリケーションに
有用なものであるが、MIMDも同様に重要である。こ
れを念頭において、以下にMIMDの例を挙げる。
モードの構造及び作動方法は多くのアプリケーションに
有用なものであるが、MIMDも同様に重要である。こ
れを念頭において、以下にMIMDの例を挙げる。
【0055】制御処理装置#1がPETが「アレイ」で
ある「モード切換え」命令を取り出すものと想定する。
処理装置1はこれを無視する。しかしながら、すべての
SIMDモードの処理装置はこれを実行し、これらのモ
ードをMIMDモードに変更する。この命令は、プログ
ラム・カウンタPC値を与えて、実行を開始することも
できるし(すべての処理装置をプログラムの同じ位置
で、同時にスタートさせることを可能とする)、あるい
はPCを命令以前の状態に残し、各SIMD処理装置が
それ自体のプログラム開始アドレスを計算できるように
することもできる。
ある「モード切換え」命令を取り出すものと想定する。
処理装置1はこれを無視する。しかしながら、すべての
SIMDモードの処理装置はこれを実行し、これらのモ
ードをMIMDモードに変更する。この命令は、プログ
ラム・カウンタPC値を与えて、実行を開始することも
できるし(すべての処理装置をプログラムの同じ位置
で、同時にスタートさせることを可能とする)、あるい
はPCを命令以前の状態に残し、各SIMD処理装置が
それ自体のプログラム開始アドレスを計算できるように
することもできる。
【0056】MIMDモードで、動的な命令レベルの変
更があると、処理装置はそれぞれそれ自体であるいはア
レイの一部として独立した処理装置としての命令の取り
出しに進む。PETが「ローカル」である命令はプログ
ラム・ストリームを、これらが通常の処理装置であるか
のようにして、厳密に実行する。PETが「アレイ」で
ある命令は各種の態様で作動することができる。特に役
立つ態様の1つは命令がRISCでいうLOADまたは
STOREである場合である。この場合、命令が生成し
たアドレスは処理装置相互接続ネットワークへの処理装
置アドレスとして使用される。このアドレスによってア
ドレス指定された処理装置が逆の命令(STOREに対
するLOAD及びLOADに対するSTORE)を実行
し、STORE側の処理装置からのデータがLOAD側
の処理装置に渡されるまで、この処理装置は停止する。
好ましいALLNODE交換ネットワークの利点は、ネ
ットワークの待ち時間が最小化されることである。
更があると、処理装置はそれぞれそれ自体であるいはア
レイの一部として独立した処理装置としての命令の取り
出しに進む。PETが「ローカル」である命令はプログ
ラム・ストリームを、これらが通常の処理装置であるか
のようにして、厳密に実行する。PETが「アレイ」で
ある命令は各種の態様で作動することができる。特に役
立つ態様の1つは命令がRISCでいうLOADまたは
STOREである場合である。この場合、命令が生成し
たアドレスは処理装置相互接続ネットワークへの処理装
置アドレスとして使用される。このアドレスによってア
ドレス指定された処理装置が逆の命令(STOREに対
するLOAD及びLOADに対するSTORE)を実行
し、STORE側の処理装置からのデータがLOAD側
の処理装置に渡されるまで、この処理装置は停止する。
好ましいALLNODE交換ネットワークの利点は、ネ
ットワークの待ち時間が最小化されることである。
【0057】同様に、「アレイ」というPMB値を有す
る処理装置によって実行される「切換えモード」は各種
の態様で行うことができる。もっとも簡単なものは単純
にSIMDモードに切り換え、「アレイ」というPET
を有する次の制御処理装置1の命令を待つことであろ
う。しかしながら、この場合、他のすべての処理装置が
SIMDに切り換わるまで、制御処理装置による同等な
切換えを実行する試みは停止する。ただし、若干の潜在
的に貴重な特徴を有する代替策を使用することを実施す
ることができる。この代替策は、かかる命令に遭遇した
ときに、制御処理装置1以外の処理装置を停止させるも
のであり、かつ制御処理装置1へ戻るキーとして命令が
与えるアドレスを使用するものである。処理装置1がキ
ーに合致する「アドレス」で切換えを実行する場合、処
理装置は停止状態から離れ、制御処理装置の命令の追跡
を再開する。
る処理装置によって実行される「切換えモード」は各種
の態様で行うことができる。もっとも簡単なものは単純
にSIMDモードに切り換え、「アレイ」というPET
を有する次の制御処理装置1の命令を待つことであろ
う。しかしながら、この場合、他のすべての処理装置が
SIMDに切り換わるまで、制御処理装置による同等な
切換えを実行する試みは停止する。ただし、若干の潜在
的に貴重な特徴を有する代替策を使用することを実施す
ることができる。この代替策は、かかる命令に遭遇した
ときに、制御処理装置1以外の処理装置を停止させるも
のであり、かつ制御処理装置1へ戻るキーとして命令が
与えるアドレスを使用するものである。処理装置1がキ
ーに合致する「アドレス」で切換えを実行する場合、処
理装置は停止状態から離れ、制御処理装置の命令の追跡
を再開する。
【0058】この代替策において、有用なキー値は、処
理装置1に戻る何らかの共通バス信号に論理ORされた
2進パターンとなるであろう。処理装置1のアドレスが
このORされた値に合致する場合、処理装置は停止状態
から離れ、SIMDモードに戻る。この共通バス信号は
ネットワークを介して渡される。これによって処理装置
の可変サブセットがMIMDモードからSIMDに移
り、次いで元のSMID処理装置のグループ内のMIM
Dに再度潜在的に戻ることを可能とする。さらに、処理
装置の集合体の1つがSIMDモードで実行している
間、他のものは独立したMIMDモードにとどまること
もできる。
理装置1に戻る何らかの共通バス信号に論理ORされた
2進パターンとなるであろう。処理装置1のアドレスが
このORされた値に合致する場合、処理装置は停止状態
から離れ、SIMDモードに戻る。この共通バス信号は
ネットワークを介して渡される。これによって処理装置
の可変サブセットがMIMDモードからSIMDに移
り、次いで元のSMID処理装置のグループ内のMIM
Dに再度潜在的に戻ることを可能とする。さらに、処理
装置の集合体の1つがSIMDモードで実行している
間、他のものは独立したMIMDモードにとどまること
もできる。
【0059】また、モード切換え命令を、そのアドレス
を処理要素のアドレスとして相互接続ネットワークに与
え、制御処理装置として働くようにし、もって動的に選
択されている場合といえども、任意のPEを他のPEの
任意のサブセットに対するSIMD制御装置とすること
も可能である。
を処理要素のアドレスとして相互接続ネットワークに与
え、制御処理装置として働くようにし、もって動的に選
択されている場合といえども、任意のPEを他のPEの
任意のサブセットに対するSIMD制御装置とすること
も可能である。
【0060】それ故、サブセットのグループ化という特
徴をALLNODEネット機能の有無に関らず採用する
ことができるが、ALLNODEネット機能には付加的
な利点があり、これについては後述する。
徴をALLNODEネット機能の有無に関らず採用する
ことができるが、ALLNODEネット機能には付加的
な利点があり、これについては後述する。
【0061】さらに、代替実施例には、同一のコンピュ
ータ・システムで動的に作動するいくつかの相互動的グ
ループの処理モードを含みうる。ALLNODEネット
ワークの機能によって、ブロードキャスト機能を大域同
期バスではなく、相互接続ネットワークによって渡すこ
とができる。両方を同じ機構内で実施することができ
る。
ータ・システムで動的に作動するいくつかの相互動的グ
ループの処理モードを含みうる。ALLNODEネット
ワークの機能によって、ブロードキャスト機能を大域同
期バスではなく、相互接続ネットワークによって渡すこ
とができる。両方を同じ機構内で実施することができ
る。
【0062】[ALLNODE相互接続ネットワークの
例]上記したところから、望ましいシステムが特願平3
−278900号に図示説明されている並列処理システ
ムなどの機能を利用できることが理解されよう。このシ
ステムにはSIMD処理を実施することができる複数の
ピケット(picket)があり、さらに、このシステ
ムを同じセットのリソースを備えた従来のMIMDの概
念とともに用いることもできる。このシステム内で、利
用できる選択的な基準に基づいて、SIMDとMIMD
の両方の操作を混合し、突き合わせ、ある処理装置がS
IMD操作で作動し、他のものがMIMD操作で作動す
るようにすることができる。SIMD処理を実施するピ
ケットは、参照する特願平3−278900号に開示さ
れている。
例]上記したところから、望ましいシステムが特願平3
−278900号に図示説明されている並列処理システ
ムなどの機能を利用できることが理解されよう。このシ
ステムにはSIMD処理を実施することができる複数の
ピケット(picket)があり、さらに、このシステ
ムを同じセットのリソースを備えた従来のMIMDの概
念とともに用いることもできる。このシステム内で、利
用できる選択的な基準に基づいて、SIMDとMIMD
の両方の操作を混合し、突き合わせ、ある処理装置がS
IMD操作で作動し、他のものがMIMD操作で作動す
るようにすることができる。SIMD処理を実施するピ
ケットは、参照する特願平3−278900号に開示さ
れている。
【0063】ALLNODE相互接続ネットワーク、す
なわち代替経路選択によりブロッキングなしに、処理装
置を相互接続されたシステムの一部として迅速に設定す
ることができる動的切換え多段ネットワークにより、望
ましいリソースを有しているネットワーク上の各種処理
装置グループを選択することができ、かつこれらグルー
プを使用して、アプリケーションのSIMD及びMIM
Dに対する必要性を利用することのできるプログラムを
実行することができる。これによって、制御処理装置の
指定を1つの制御処理装置に限定する必要がなくなり、
これは複数の処理装置のうちどれを制御処理装置にする
かを動的に交代させる機会を提供する。選択したネット
ワークがどのグループを相互接続するかを選択し、選択
されたものが動的ネットワークの一部となった場合、こ
のネットワークを使用して、命令をブロードキャストす
ることができる。これは必ずしもハードウェアだけでは
なく、関連するソフトウェアがどれを経路指定処理装置
にするかを制御することも可能とする。
なわち代替経路選択によりブロッキングなしに、処理装
置を相互接続されたシステムの一部として迅速に設定す
ることができる動的切換え多段ネットワークにより、望
ましいリソースを有しているネットワーク上の各種処理
装置グループを選択することができ、かつこれらグルー
プを使用して、アプリケーションのSIMD及びMIM
Dに対する必要性を利用することのできるプログラムを
実行することができる。これによって、制御処理装置の
指定を1つの制御処理装置に限定する必要がなくなり、
これは複数の処理装置のうちどれを制御処理装置にする
かを動的に交代させる機会を提供する。選択したネット
ワークがどのグループを相互接続するかを選択し、選択
されたものが動的ネットワークの一部となった場合、こ
のネットワークを使用して、命令をブロードキャストす
ることができる。これは必ずしもハードウェアだけでは
なく、関連するソフトウェアがどれを経路指定処理装置
にするかを制御することも可能とする。
【0064】これはますます多用途なものとなり、用い
ることのできる従来の相互接続ネットワークよりも若干
多くの機能をおそらくは提供することとなる。このよう
なシステムによって、どこからでも(選択したシステム
の任意の処理装置から)SIMDモードを実行できるシ
ステムが得られる。1台の処理装置がしばらくの間制御
側となり、次いで他の処理装置が制御側となることがで
き、この動的リソース割振りの間に、ネットワークに接
続されるさまざまなリソースを、システムのフルイデッ
クス(fluidics)及びリソースによって決定さ
れるとおりに利用することができる。複数の処理装置を
して、処理装置の複数のサブセットにブロードキャスト
させることができ、また同じ物理的ハードウェア上で作
動するSIMD機械の複数の任意の集合体を得ることが
できる。
ることのできる従来の相互接続ネットワークよりも若干
多くの機能をおそらくは提供することとなる。このよう
なシステムによって、どこからでも(選択したシステム
の任意の処理装置から)SIMDモードを実行できるシ
ステムが得られる。1台の処理装置がしばらくの間制御
側となり、次いで他の処理装置が制御側となることがで
き、この動的リソース割振りの間に、ネットワークに接
続されるさまざまなリソースを、システムのフルイデッ
クス(fluidics)及びリソースによって決定さ
れるとおりに利用することができる。複数の処理装置を
して、処理装置の複数のサブセットにブロードキャスト
させることができ、また同じ物理的ハードウェア上で作
動するSIMD機械の複数の任意の集合体を得ることが
できる。
【0065】図2に戻ると、MIMDモードにおいて、
どの処理要素でも命令を処理要素の任意の他のサブセッ
トにブロードキャストすることができる。ブロードキャ
ストされたデータをその命令レジスタに取り入れ、SI
MDモードと同様に実行することができる。図5におい
て、相互接続ネットワークは命令をブロードキャスト
し、命令レジスタへの付加的な経路を取得するのに、命
令レジスタへの同期通信のための代替経路が必要なくな
る。ALLNODEネットワーク(同期ネットワークで
ある)を使用するこの代替実施例において、相互接続ネ
ットワークを介して命令を渡し、内部的に命令レジスタ
に進むが、これはサイクルをトレードオフすることによ
ってより汎用化された機械要素を使用できるようにする
ものであり、ニーズにもよるが、きわめて有用なもので
ある。基本的に、ネットワークを介したブロードキャス
トはおそらくは実際問題として、他の代替策よりも信頼
性が高いものである。好ましい実施例について説明した
直接代替経路の選択は、複数の処理装置を有するアレイ
が単一のチップに密結合されている場合により望ましい
ものとなる。しかしながら、処理装置が物理的に離隔し
ており、集合体の各々が高い周波数で作動している本発
明のシステムの用途では、ブロードキャスト機能を有す
るALLNODEスイッチなどの高速非同期ブロードキ
ャスト・ネットワークを用いる構成が望ましい。図5に
示すように、ALLNODEスイッチをネットワークか
ら命令レジスタへの代替経路として用いることができ
る。
どの処理要素でも命令を処理要素の任意の他のサブセッ
トにブロードキャストすることができる。ブロードキャ
ストされたデータをその命令レジスタに取り入れ、SI
MDモードと同様に実行することができる。図5におい
て、相互接続ネットワークは命令をブロードキャスト
し、命令レジスタへの付加的な経路を取得するのに、命
令レジスタへの同期通信のための代替経路が必要なくな
る。ALLNODEネットワーク(同期ネットワークで
ある)を使用するこの代替実施例において、相互接続ネ
ットワークを介して命令を渡し、内部的に命令レジスタ
に進むが、これはサイクルをトレードオフすることによ
ってより汎用化された機械要素を使用できるようにする
ものであり、ニーズにもよるが、きわめて有用なもので
ある。基本的に、ネットワークを介したブロードキャス
トはおそらくは実際問題として、他の代替策よりも信頼
性が高いものである。好ましい実施例について説明した
直接代替経路の選択は、複数の処理装置を有するアレイ
が単一のチップに密結合されている場合により望ましい
ものとなる。しかしながら、処理装置が物理的に離隔し
ており、集合体の各々が高い周波数で作動している本発
明のシステムの用途では、ブロードキャスト機能を有す
るALLNODEスイッチなどの高速非同期ブロードキ
ャスト・ネットワークを用いる構成が望ましい。図5に
示すように、ALLNODEスイッチをネットワークか
ら命令レジスタへの代替経路として用いることができ
る。
【0066】純粋な、限定されたSIMD機械は命令を
取り出すことができるとともに、以前の命令をアレイ内
の他の処理要素にブロードキャストし、かついくつかの
SIMD処理装置は特願平3−278900号に記載さ
れているPICKET処理装置におけるように、メモリ
を独立して使用することができる。本発明のアーキテク
チャはRISC機能を拡張したものである。RISC処
理装置において、命令を取り出し、次いでメモリ操作を
行うことができる。本システムにおいて、次の命令が取
り出されると、操作に関与するとマークされているすべ
ての処理装置がそれぞれのメモリについてデータを適宜
取り出すか、あるいは格納する。事実、処理装置と指定
された処理装置によって実行または取り出されるあらゆ
る命令は、他の処理装置の各々におけるメモリ活動をト
リガすることができる。
取り出すことができるとともに、以前の命令をアレイ内
の他の処理要素にブロードキャストし、かついくつかの
SIMD処理装置は特願平3−278900号に記載さ
れているPICKET処理装置におけるように、メモリ
を独立して使用することができる。本発明のアーキテク
チャはRISC機能を拡張したものである。RISC処
理装置において、命令を取り出し、次いでメモリ操作を
行うことができる。本システムにおいて、次の命令が取
り出されると、操作に関与するとマークされているすべ
ての処理装置がそれぞれのメモリについてデータを適宜
取り出すか、あるいは格納する。事実、処理装置と指定
された処理装置によって実行または取り出されるあらゆ
る命令は、他の処理装置の各々におけるメモリ活動をト
リガすることができる。
【0067】それ故、メモリを潜在的に100%使用す
ることができる。メモリが必要となった場合、これを利
用することができ、かつプログラムが必要としない場合
にのみ、メモリが利用されないようになる。さらに、本
システムにおいては、処理装置のいくつかがSIMDで
作動し、かつ他の処理装置がそれ自体のメモリ取り出し
をMIMDで行うことができる。これはPICKETの
概念の機構を従来のMIMDの概念と組み合わせ、プロ
セスで同じセットのリソースを利用するものである。
ることができる。メモリが必要となった場合、これを利
用することができ、かつプログラムが必要としない場合
にのみ、メモリが利用されないようになる。さらに、本
システムにおいては、処理装置のいくつかがSIMDで
作動し、かつ他の処理装置がそれ自体のメモリ取り出し
をMIMDで行うことができる。これはPICKETの
概念の機構を従来のMIMDの概念と組み合わせ、プロ
セスで同じセットのリソースを利用するものである。
【0068】ALLNODEスイッチは、本明細書で説
明しておりかつ図5に示しているシステムに、周知の処
理装置を使用することを可能とする。処理装置のいくつ
かは制御処理装置1からの共通のメモリ命令通信経路を
利用できるが、代替経路(図5の破線)を用いて、共通
処理装置を相互接続することができる。これらの共通処
理装置は若干の変更を加えたPS/2またはRS/60
00であってもかまわない。それ自体の命令を獲得する
か、あるいは制御処理装置からのブロードキャストを待
つかを各処理装置に伝える適切な復号論理回路に、命令
及び状況ビットまたは値を与えるためのポートをこの変
更した形では用いている。これ以外の機械は物理的変更
を必要としない。変更は他の処理装置がこれらが自分自
身で取り出す命令の代わりに命令を与えることを可能と
するパスを含むものとなる。これは命令レジスタへの代
替経路によって提供される。このようにして、標準命令
レジスタあるいはこの下にある復号論理回路のほとんど
を変更する必要はない。ハードのALLNODEスイッ
チによって処理装置を指定することにより、どの処理装
置が制御側になるかの動的な交代が可能となるが、これ
はソフトウェアがどれを経路指定処理装置にするのかを
制御できるようにするソフトウェアによって、この経路
指定を行えるからである。このようなシステムによっ
て、システムの任意の処理装置がSIMDモードで作動
できるようになる。ある処理装置がしばらくの間制御装
置になることができ、次いで何らかの他の処理装置が制
御装置になることができる。上述のように、これによっ
て複数の処理装置が複数のサブセットをブロードキャス
トし、同一の物理的ハードウェアで作動しているSIM
D機械の任意の集合体を提供し、かつ同一のハードウェ
アを使って、通常のMIDM処理を実行することが可能
となる。
明しておりかつ図5に示しているシステムに、周知の処
理装置を使用することを可能とする。処理装置のいくつ
かは制御処理装置1からの共通のメモリ命令通信経路を
利用できるが、代替経路(図5の破線)を用いて、共通
処理装置を相互接続することができる。これらの共通処
理装置は若干の変更を加えたPS/2またはRS/60
00であってもかまわない。それ自体の命令を獲得する
か、あるいは制御処理装置からのブロードキャストを待
つかを各処理装置に伝える適切な復号論理回路に、命令
及び状況ビットまたは値を与えるためのポートをこの変
更した形では用いている。これ以外の機械は物理的変更
を必要としない。変更は他の処理装置がこれらが自分自
身で取り出す命令の代わりに命令を与えることを可能と
するパスを含むものとなる。これは命令レジスタへの代
替経路によって提供される。このようにして、標準命令
レジスタあるいはこの下にある復号論理回路のほとんど
を変更する必要はない。ハードのALLNODEスイッ
チによって処理装置を指定することにより、どの処理装
置が制御側になるかの動的な交代が可能となるが、これ
はソフトウェアがどれを経路指定処理装置にするのかを
制御できるようにするソフトウェアによって、この経路
指定を行えるからである。このようなシステムによっ
て、システムの任意の処理装置がSIMDモードで作動
できるようになる。ある処理装置がしばらくの間制御装
置になることができ、次いで何らかの他の処理装置が制
御装置になることができる。上述のように、これによっ
て複数の処理装置が複数のサブセットをブロードキャス
トし、同一の物理的ハードウェアで作動しているSIM
D機械の任意の集合体を提供し、かつ同一のハードウェ
アを使って、通常のMIDM処理を実行することが可能
となる。
【0069】従来の複数モードの提案と異なり、特にS
IMDモードでは、特定のPEが命令の取り出しを行
い、これは特別な命令または割込みなしにあらゆる処置
装置に直接適用される。すべての処理要素は命令が並列
命令であるとマークされている場合には、命令を直接実
行する。これをPETビットを「アレイ」にセットする
という。これ自体はSIMD処理装置に共通なブロード
キャスト・モードと類似しているが、本願発明の新しい
アーキテクチャによれば、同じ命令ストリームがマスタ
処理装置ないし制御処理装置でローカル計算を行うこと
ができる。さらに、PEをPETビットをオンにして実
行される動的モード「切換え」命令によって、独立した
MIMDモードに戻すことができる。
IMDモードでは、特定のPEが命令の取り出しを行
い、これは特別な命令または割込みなしにあらゆる処置
装置に直接適用される。すべての処理要素は命令が並列
命令であるとマークされている場合には、命令を直接実
行する。これをPETビットを「アレイ」にセットする
という。これ自体はSIMD処理装置に共通なブロード
キャスト・モードと類似しているが、本願発明の新しい
アーキテクチャによれば、同じ命令ストリームがマスタ
処理装置ないし制御処理装置でローカル計算を行うこと
ができる。さらに、PEをPETビットをオンにして実
行される動的モード「切換え」命令によって、独立した
MIMDモードに戻すことができる。
【0070】好ましい実施例において留意すべきこと
は、PEがSIMD操作に関与しているかどうかを割込
みマスク・ビットが示さないが、その代わりにPMBビ
ット信号が処理要素が命令をどこから得るのか、すなわ
ちそのローカル・メモリからか、あるいは制御処理装置
1によって取り出されてかを示すことである。
は、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両方のコ
ードがアレイによって実行される。
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へ動的に迅速に切り換えることが
できるので、本発明システムは結果を処理し、加速する
根本的な代替策を提供する。
実行を行う上で、明示的な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倍の
速度の上昇に近づくものである。
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つの命令を実行することができるようになる。
て高性能なRISC類似の処理装置アーキテクチャに理
想的なものであると考えられる。しかし、相互接続ネッ
トワークの機能によっては、より普及しているアーキテ
クチャに拡張することができる。好ましい実施例におい
て、システムをメモリと論理回路の両方が1つのチップ
にある高密度のVLSIに実装し、複数のPE及びその
メモリを1つのチップに配置することができる。比較的
限定された数のシステムを単一のチップにこのように密
結合することによって、SIMDモードの命令の実行を
実現し、取り得る各メモリ・サイクルに対してPE当た
り1つの命令を実行することができるようになる。
【0075】本質的に順次の計算に対して、MIMDモ
ードとの間での、またさらにはSISDモードへの切換
えを迅速に行えることにより、プログラマないしコンパ
イラがアプリケーションに対してもっとも意義がある最
適な種類の並列性(SISD、SIMD、MIMD)を
使用するコンピュータ・システムを構築することが可能
となる。さらに、特にSIMDモードにおいて、かかる
実行を設定して、ほとんど単一のメモリ・サイクルしか
それぞれ計算に使用しないような、メモリの限界で作動
する機械の設計をもたらすことができる。ALLNOD
Eスイッチ及び代替経路によって、システムの設定をき
わめて多くの処理装置に対して数サイクルで達成するこ
とができる。このシステムは元の設定の際のサイクル時
間に若干のトレードオフがあるが、共通ハードウェアの
利点、きわめて大きな拡張機能、及び構成の融通性によ
って相互接続ネットワークを介して代替経路を用いる代
替システムを、システムの選択肢として選択することも
できる。
ードとの間での、またさらにはSISDモードへの切換
えを迅速に行えることにより、プログラマないしコンパ
イラがアプリケーションに対してもっとも意義がある最
適な種類の並列性(SISD、SIMD、MIMD)を
使用するコンピュータ・システムを構築することが可能
となる。さらに、特にSIMDモードにおいて、かかる
実行を設定して、ほとんど単一のメモリ・サイクルしか
それぞれ計算に使用しないような、メモリの限界で作動
する機械の設計をもたらすことができる。ALLNOD
Eスイッチ及び代替経路によって、システムの設定をき
わめて多くの処理装置に対して数サイクルで達成するこ
とができる。このシステムは元の設定の際のサイクル時
間に若干のトレードオフがあるが、共通ハードウェアの
利点、きわめて大きな拡張機能、及び構成の融通性によ
って相互接続ネットワークを介して代替経路を用いる代
替システムを、システムの選択肢として選択することも
できる。
【0076】詳述した代替策は希望する実行の種類を識
別するために定義された単純な機構がきわめて経済的に
実施されるものであり、かつ広い範囲のアーキテクチャ
またはテクノロジーに移植できることを示している。
別するために定義された単純な機構がきわめて経済的に
実施されるものであり、かつ広い範囲のアーキテクチャ
またはテクノロジーに移植できることを示している。
【0077】
【発明の効果】本発明によって、コンピュータ・システ
ムが各処理要素にほとんどあるいはまったく変更を行わ
ずに、処理要素のすべてのリソースをきわめて自然に使
用し、複数モードで作動し、かつ特定のアプリケーショ
ンに合わせて柔軟かつ動的に構成できる「並列RIS
C」機械を作成することができる。
ムが各処理要素にほとんどあるいはまったく変更を行わ
ずに、処理要素のすべてのリソースをきわめて自然に使
用し、複数モードで作動し、かつ特定のアプリケーショ
ンに合わせて柔軟かつ動的に構成できる「並列RIS
C」機械を作成することができる。
【図1】共通リソース・システムのSIMDモードの構
成を示す図である。
成を示す図である。
【図2】共通リソース・システムのMIMDモードの構
成を示す図である。
成を示す図である。
【図3】システム操作上のリソースの想定されるタイミ
ングを例示する図である。
ングを例示する図である。
【図4】好ましい実施例にしたがったブロードキャスト
のための処理要素間の直接信号結合を含んでいるシステ
ムに新たに可能となった機能を示す図である。
のための処理要素間の直接信号結合を含んでいるシステ
ムに新たに可能となった機能を示す図である。
【図5】命令レジスタへの代替経路を提供する好ましい
複数ステージALLNODE相互接続ネットワークを利
用して、ブロードキャストを相互接続ネットワークが処
理する、図4のシステムの他の実施例を示す図である。
複数ステージALLNODE相互接続ネットワークを利
用して、ブロードキャストを相互接続ネットワークが処
理する、図4のシステムの他の実施例を示す図である。
【図6】好ましい実施例によるSIMDのタイミングを
示す図である。
示す図である。
フロントページの続き (56)参考文献 特開 昭63−146154(JP,A) 特開 昭59−16071(JP,A) PROCEEDING OF 5TH INTERNATIONAL PAR ALLEL PROCESSING S YMPOSIUM 1991 APRIL 30−MAY 2 P.301−308THOM AS B.BERG,HOWARD J AY SIEGEL「INSTRUCT ION EXECUTION TRAD E−OFFS FOR SIMD V S.MIMD VS.MIXED MO DE PARALLELISM」
Claims (5)
- 【請求項1】動的に複数モードで並列処理するアレイで
あって、 複数の処理装置であって、各処理装置は命令セットの命
令をデコードしかつ実行することを可能とする制御手段
を有し、前記各制御手段は命令レジスタと、プログラム
・カウンタと、状態コード・レジスタと、処理装置モー
ド・ビット(PMB)を有し、該PMBは前記処理装置
が制御処理装置又はロカール・メモリのいずれから命令
を得るかを示すものと、 前記処理装置の命令レジスタの間の相互接続経路と、 前記命令セットは複数の命令を有し、各命令は命令が実
行されるべきかどうかを判断するために制御手段によっ
て前記PMBと共に使用される並列実行タイプ・ビット
(PET)を有し、前記命令セットは前記命令を実行す
る処理装置の前記PMBビットを変更するためのモード
切換命令を有するものと、 前記処理装置は1以上のグループを組織し、各グループ
は制御処理装置として構成される処理装置を有し、ここ
で前記処理装置のいずれも制御処理装置として動的に構
成され、該制御処理装置はグループの処理装置をMIM
DまたはSIMDのいずれかで動作することを可能と
し、かつ動的にモード切換を可能とするものと、を有
し、 処理装置のグループがSIMDモードで動作している場
合に、前記制御処理装置はそのグループ内の他の処理装
置の命令レジスタに命令を供給し、前記制御処理装置が
命令をフェッチするときに各命令は前記相互接続経路を
介して供給され、 処理装置のグループの制御処理装置は命令をフェッチ
し、命令のフェッチの最後には全ての他のプロセッサが
それらの命令レジスタ内にフェッチされた命令を有する
ように、前記グループ内の他の処理装置は制御処理装置
がそれをフェッチするのと同様に各命令をそれらの命令
レジスタにラッチし、 1以上の以下の命令 処理装置がSIMDモードで動作するときに、処理装置
のプログラムカウンタをジャンプ命令とともに供給する
値へセットする「ジャンプ(JUMP)」命令と、 処理装置がSIMDモードで動作するときに、処理装置
のプログラムカウンタによって特定されるアドレスにお
ける、処理装置のローカルメモリの内容をレジスタにロ
ードし、プログラムカウンタの値を増分する「即値ロー
ド(LOADIMMEDEATE)」命令を含むベース
レジスタとして機能するために処理装置のプログラムカ
ウンタを修正する前記アレイ。 - 【請求項2】動的に複数モードで並列処理するアレイで
あって、 複数の処理装置であって、各処理装置は命令セットの命
令をデコードしかつ実行することを可能とする制御手段
を有し、前記各制御手段は命令レジスタと、プログラム
・カウンタと、状態コード・レジスタと、処理装置モー
ド・ビット(PMB)を有し、該PMBは前記処理装置
が制御処理装置又はロカール・メモリのいずれから命令
を得るかを示すものと、 前記処理装置の命令レジスタの間の相互接続経路と、 前記命令セットは複数の命令を有し、各命令は命令が実
行されるべきかどうかを判断するために制御手段によっ
て前記PMBと共に使用される並列実行タイプ・ビット
(PET)を有し、前記命令セットは前記命令を実行す
る処理装置の前記PMBビットを変更するためのモード
切換命令を有するものと、 前記処理装置は1以上のグループを組織し、各グループ
は制御処理装置として構成される処理装置を有し、ここ
で前記処理装置のいずれも制御処理装置として動的に構
成され、該制御処理装置はグループの処理装置をMIM
DまたはSIMDのいずれかで動作することを可能と
し、かつ動的にモード切換を可能とするものと、を有
し、 処理装置のグループがSIMDモードで動作している場
合に、前記制御処理装置はそのグループ内の他の処理装
置の命令レジスタに命令を供給し、前記制御処理装置が
命令をフェッチするときに各命令は前記相互接続経路を
介して供給され、 各処理装置がそのローカルメモリからの命令のフェッチ
の開始によって、制御処理装置がグループ内の各処理装
置にモード切換命令を供給したときに、SIMDモード
で動作する処理装置のグループはMIMDモードに切り
換わり、 前記処理装置は送信のためにロード命令を、受信のため
にストア命令を使用して互いに通信が可能であり、前記
命令は通信のための処理装置の相互接続経路状の処理装
置のアドレスとして使用されるアドレスを含む前記アレ
イ。 - 【請求項3】動的に複数モードで並列処理するアレイで
あって、 複数の処理装置であって、各処理装置は命令セットの命
令をデコードしかつ実行することを可能とする制御手段
を有し、前記各制御手段は命令レジスタと、プログラム
・カウンタと、状態コード・レジスタと、処理装置モー
ド・ビット(PMB)を有し、該PMBは前記処理装置
が制御処理装置又はロカール・メモリのいずれから命令
を得るかを示すものと、 前記処理装置の命令レジスタの間の相互接続経路と、 前記命令セットは複数の命令を有し、各命令は命令が実
行されるべきかどうかを判断するために制御手段によっ
て前記PMBと共に使用される並列実行タイプ・ビット
(PET)を有し、前記命令セットは前記命令を実行す
る処理装置の前記PMBビットを変更するためのモード
切換命令を有するものと、 前記処理装置は1以上のグループを組織し、各グループ
は制御処理装置として構成される処理装置を有し、ここ
で前記処理装置のいずれも制御処理装置として動的に構
成され、該制御処理装置はグループの処理装置をMIM
DまたはSIMDのいずれかで動作することを可能と
し、かつ動的にモード切換を可能とするものと、を有
し、 処理装置のグループがSIMDモードで動作している場
合に、前記制御処理装置はそのグループ内の他の処理装
置の命令レジスタに命令を供給し、前記制御処理装置が
命令をフェッチするときに各命令は前記相互接続経路を
介して供給され、 各処理装置がそのローカルメモリからの命令のフェッチ
の開始によって、制御処理装置がグループ内の各処理装
置にモード切換命令を供給したときに、SIMDモード
で動作する処理装置のグループはMIMDモードに切り
換わり、 モード切換命令は第1の処理装置によって、第1の処理
装置を停止させ、及び前記制御処理装置に戻すキーとし
てモード切換命令によって供給されたアドレスを使用さ
せ、そして前記制御処理装置は前記キーと一致するアド
レスを伴うモード切換命令を実行でき、前記第1の処理
装置を停止状態から離れさせ、制御処理装置の命令の追
跡を再開する前記アレイ。 - 【請求項4】動的に複数モードで並列処理するアレイで
あって、 複数の処理装置であって、各処理装置は命令セットの命
令をデコードしかつ実行することを可能とする制御手段
を有し、前記各制御手段は命令レジスタと、プログラム
・カウンタと、状態コード・レジスタと、処理装置モー
ド・ビット(PMB)を有し、該PMBは前記処理装置
が制御処理装置又はロカール・メモリのいずれから命令
を得るかを示すものと、 前記処理装置の命令レジスタの間の相互接続経路と、 前記命令セットは複数の命令を有し、各命令は命令が実
行されるべきかどうかを判断するために制御手段によっ
て前記PMBと共に使用される並列実行タイプ・ビット
(PET)を有し、前記命令セットは前記命令を実行す
る処理装置の前記PMBビットを変更するためのモード
切換命令を有するものと、 前記処理装置は1以上のグループを組織し、各グループ
は制御処理装置として構成される処理装置を有し、ここ
で前記処理装置のいずれも制御処理装置として動的に構
成され、該制御処理装置はグループの処理装置をMIM
DまたはSIMDのいずれかで動作することを可能と
し、かつ動的にモード切換を可能とするものと、を有
し、 処理装置のグループがSIMDモードで動作している場
合に、前記制御処理装置はそのグループ内の他の処理装
置の命令レジスタに命令を供給し、前記制御処理装置が
命令をフェッチするときに各命令は前記相互接続経路を
介して供給され、 各処理装置がそのローカルメモリからの命令のフェッチ
の開始によって、制御処理装置がグループ内の各処理装
置にモード切換命令を供給したときに、SIMDモード
で動作する処理装置のグループはMIMDモードに切り
換わり、 MIMDモードで動作している処理装置の可変的なサブ
セットはモード切換命令を実行して前記処理装置の可変
的なサブセットをそれらがMIMDモードで動作してい
る可変的なサブセットの部分でない間はSIMDモード
で動作させる前記アレイ。 - 【請求項5】動的に複数モードで並列処理するアレイで
あって、 複数の処理装置であって、各処理装置は命令セットの命
令をデコードしかつ実行することを可能とする制御手段
を有し、前記各制御手段は命令レジスタと、プログラム
・カウンタと、状態コード・レジスタと、処理装置モー
ド・ビット(PMB)を有し、該PMBは前記処理装置
が制御処理装置又はロカール・メモリのいずれから命令
を得るかを示すものと、 前記処理装置の命令レジスタの間の相互接続経路と、 前記命令セットは複数の命令を有し、各命令は命令が実
行されるべきかどうかを判断するために制御手段によっ
て前記PMBと共に使用される並列実行タイプ・ビット
(PET)を有し、前記命令セットは前記命令を実行す
る処理装置の前記PMBビットを変更するためのモード
切換命令を有するものと、 前記処理装置は1以上のグループを組織し、各グループ
は制御処理装置として構成される処理装置を有し、ここ
で前記処理装置のいずれも制御処理装置として動的に構
成され、該制御処理装置はグループの処理装置をMIM
DまたはSIMDのいずれかで動作することを可能と
し、かつ動的にモード切換を可能とするものと、を有
し、 処理装置のグループがSIMDモードで動作している場
合に、前記制御処理装置はそのグループ内の他の処理装
置の命令レジスタに命令を供給し、前記制御処理装置が
命令をフェッチするときに各命令は前記相互接続経路を
介して供給され、 ここで、PMBはSIMD及びMIMDモードを示し、
PETは関連する処理装置のローカル及びアレイ動作を
示す前記アレイ。
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 JPH05233569A (ja) | 1993-09-10 |
JP2647315B2 true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008023576A1 (fr) | 2006-08-23 | 2008-02-28 | Nec Corporation | Élément de traitement, système de processeur parallèle en mode mixte, procédé pour élément de traitement, procédé pour processeur parallèle en mode mixte, programme pour élément de traitement, et programme pour processeur parallèle en mode mixte |
Families Citing this family (266)
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 |
US6219776B1 (en) * | 1998-03-10 | 2001-04-17 | Billions Of Operations Per Second | Merged array controller and processing element |
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 |
JP5017971B2 (ja) * | 2005-09-07 | 2012-09-05 | ソニー株式会社 | 集積装置 |
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 |
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 | 可重組態處理裝置及其系統 |
JP5495707B2 (ja) * | 2009-10-16 | 2014-05-21 | 三菱電機株式会社 | 並列信号処理装置 |
JP5511400B2 (ja) * | 2010-01-12 | 2014-06-04 | 三菱電機株式会社 | 並列信号処理プロセッサ |
US9552206B2 (en) * | 2010-11-18 | 2017-01-24 | Texas Instruments Incorporated | Integrated circuit with control node circuitry and processing circuitry |
CA2859999A1 (en) * | 2011-01-25 | 2012-08-02 | Cognivue Corporation | Apparatus and method of vector unit sharing |
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 |
Family Cites Families (14)
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 |
CN1008018B (zh) * | 1986-09-27 | 1990-05-16 | 徐肇昌 | 一种具有合作能力的同构型多计算机系统及其合作方法 |
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 |
-
1992
- 1992-07-09 CA CA002073516A patent/CA2073516A1/en not_active Abandoned
- 1992-10-12 JP JP4272758A patent/JP2647315B2/ja not_active Expired - Lifetime
- 1992-10-20 CN CN92111552A patent/CN1044646C/zh not_active Expired - Lifetime
- 1992-11-04 DE DE69228586T patent/DE69228586T2/de not_active Expired - Fee Related
- 1992-11-04 AT AT92118887T patent/ATE177547T1/de not_active IP Right Cessation
- 1992-11-04 EP EP92118887A patent/EP0544127B1/en not_active Expired - Lifetime
- 1992-11-09 KR KR92020971A patent/KR970008529B1/ko not_active IP Right Cessation
- 1992-11-27 MX MX9206864A patent/MX9206864A/es unknown
-
1994
- 1994-10-17 US US08/324,295 patent/US5475856A/en not_active Expired - Lifetime
Non-Patent Citations (1)
Title |
---|
PROCEEDING OF 5TH INTERNATIONAL PARALLEL PROCESSING SYMPOSIUM 1991 APRIL 30−MAY 2 P.301−308THOMAS B.BERG,HOWARD JAY SIEGEL「INSTRUCTION EXECUTION TRADE−OFFS FOR SIMD VS.MIMD VS.MIXED MODE PARALLELISM」 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008023576A1 (fr) | 2006-08-23 | 2008-02-28 | Nec Corporation | Élément de traitement, système de processeur parallèle en mode mixte, procédé pour élément de traitement, procédé pour processeur parallèle en mode mixte, programme pour élément de traitement, et programme pour processeur parallèle en mode mixte |
US7853775B2 (en) | 2006-08-23 | 2010-12-14 | Nec Corporation | Processing elements grouped in MIMD sets each operating in SIMD mode by controlling memory portion as instruction cache and GPR portion as tag |
US8051273B2 (en) | 2006-08-23 | 2011-11-01 | Nec Corporation | Supplying instruction stored in local memory configured as cache to peer processing elements in MIMD processing units |
US8112613B2 (en) | 2006-08-23 | 2012-02-07 | Nec Corporation | Selecting broadcast SIMD instruction or cached MIMD instruction stored in local memory of one of plurality of processing elements for all elements in each unit |
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 |
EP0544127B1 (en) | 1999-03-10 |
CN1044646C (zh) | 1999-08-11 |
EP0544127A3 (en) | 1994-04-20 |
JPH05233569A (ja) | 1993-09-10 |
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 | |
US6272616B1 (en) | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths | |
US6219775B1 (en) | Massively parallel computer including auxiliary vector processor | |
US6128720A (en) | Distributed processing array with component processors performing customized interpretation of instructions | |
EP2336879B1 (en) | Methods and apparatus for dynamically merging an array controller with an array processing element | |
JP3149348B2 (ja) | 代理命令を用いる並列処理システム及び方法 | |
US5513366A (en) | Method and system for dynamically reconfiguring a register file in a vector processor | |
US5887183A (en) | Method and system in a data processing system for loading and storing vectors in a plurality of modes | |
JP2500036B2 (ja) | ハイブリッドパイプライン接続プロセッサおよびその処理方法 | |
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 | |
RU2427895C2 (ru) | Оптимизированная для потоков многопроцессорная архитектура | |
EP1124181B1 (en) | Data processing apparatus | |
JP2002536738A (ja) | 間接vliwプロセッサにおける実行時間並列処理のための動的vliwサブ命令選択システム | |
JPH04245540A (ja) | 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム | |
JP3829166B2 (ja) | 極長命令語(vliw)プロセッサ | |
KR19990062575A (ko) | N-지로 분기를 갖는 슈퍼스칼라 또는 초장 명령어 워드컴퓨터에서 다음 명령어를 선택하는 방법 및 장치 | |
US7308559B2 (en) | Digital signal processor with cascaded SIMD organization | |
US5481736A (en) | Computer processing element having first and second functional units accessing shared memory output port on prioritized basis | |
US5890009A (en) | VLIW architecture and method for expanding a parcel | |
US6327648B1 (en) | Multiprocessor system for digital signal processing | |
US5765012A (en) | Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library | |
Uvieghara et al. | An experimental single-chip data flow CPU | |
EP0284327B1 (en) | Shared micro-ram with micro-rom linking |