CN1072788A - 动态多方式并行处理器阵列体系结构的计算机系统 - Google Patents
动态多方式并行处理器阵列体系结构的计算机系统 Download PDFInfo
- Publication number
- CN1072788A CN1072788A CN92111552A CN92111552A CN1072788A CN 1072788 A CN1072788 A CN 1072788A CN 92111552 A CN92111552 A CN 92111552A CN 92111552 A CN92111552 A CN 92111552A CN 1072788 A CN1072788 A CN 1072788A
- Authority
- CN
- China
- Prior art keywords
- processor
- instruction
- mode
- computer system
- simd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 50
- 238000006243 chemical reaction Methods 0.000 claims abstract description 21
- 230000008878 coupling Effects 0.000 claims abstract description 8
- 238000010168 coupling process Methods 0.000 claims abstract description 8
- 238000005859 coupling reaction Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 19
- 239000000284 extract Substances 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 6
- 238000012856 packing Methods 0.000 claims description 6
- 230000008901 benefit Effects 0.000 claims description 5
- 230000002146 bilateral effect Effects 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims description 3
- 238000006073 displacement reaction Methods 0.000 claims description 2
- 230000009977 dual effect Effects 0.000 claims description 2
- 239000003607 modifier Substances 0.000 claims description 2
- 230000003993 interaction Effects 0.000 claims 2
- 230000002452 interceptive effect Effects 0.000 claims 2
- 230000009849 deactivation Effects 0.000 claims 1
- 238000000151 deposition Methods 0.000 claims 1
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000013011 mating Effects 0.000 claims 1
- 230000006855 networking Effects 0.000 claims 1
- 238000004321 preservation Methods 0.000 claims 1
- 238000004891 communication Methods 0.000 description 7
- 230000001276 controlling effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 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 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism 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
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000011121 hardwood Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
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)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Multimedia (AREA)
- Nonlinear Science (AREA)
- Multi Processors (AREA)
- Advance Control (AREA)
- Image Processing (AREA)
- Dram (AREA)
- Error Detection And Correction (AREA)
Abstract
对一个并行RISC计算机系统提供了动态多方
式并行处理器阵列。所展示的微密耦合VLSI实施
例的体系结构能通过互连网络扩展到更大范围分布
的处理单元,该网络将多个能以MIMD方式处理和
处理器彼此耦合,在控制处理器控制下将指令广播到
选定的单元组。处理单元耦合逻辑能实现动态方式
分派和动态方式变换,允许SIMD方式操作的处理
器最大限度利用存储器和周期时间。操作方式能在
逐条指令一级从SIMD方式变换到MIMD方式。
Description
本发明涉及计算机系统,具体地说,本发明是关于这样一种计算机系统,它能在处理单元阵列之内利用处理器阵列并行地执行程序以动态地实现多种处理方式。
已经发展出能利用可以并行执行程序的处理器阵列的计算机系统。
VLSI(甚大规模集成电路)技术现在能将多个处理器(每个带有自己的存储器)非常靠近地放在一个或多个芯片上。这种并行处理器阵列能够成“单指令流多数据流(SIMD)”,或“多指令流多数据流(MIMD)”,或“单指令流单数据流(SISD)配置,但到目前为止,还没有利用任何多种方式类型,而且尚没有机器提供一种形式能在程序执行过程中动态地和有效地改变处理方式。
某些工作看来是部分地以本发明人的“流水线计算机体系结构”一书为基础,该书由半球出版公司在1981年出版,国际标准书号是0-86116-494-4。该著作有一历史性的展望,在这一领域十年进展之后,它仍然是有用的(见11-20页)。
以不同方式为目标的机器在继续发展。例如,对于SIMD方式,最近的美国专利4,992,933号(题为“具有全局指令控制和可重新编程指令译码器的SIMD阵列处理器”,于1991年2月12日颁发给James L.Taylor)是关于阵列处理器的,它提供了一个处理单元的多维阵列,而且提供了一种机制,使多个处理单元可以同时以SIMD方式更新,以响应一个迫使所有处理单元产生一次中断的全局加载指令。
当今最先进的机器是MIMD。美国专利4,916,652号(1990年4月10日颁发给Schwarz和Vassiliadis,题为“用于浮点单指令流单数据体系结构的动态多指令流多数据多流水线设备”)提出通过多功能流水线来实现MIMD机器,并将不同的指令流交错送入这些流水线。该专利设想使机器从MIMD切换到SISD运行一短暂时间以处理某些复杂的浮点操作指令。
还有其他专利对机器的MIMD方式进行中断。都是颁发给David K.Gifford的美国专利4,873,626号(1989年10月10日颁发)及美国专利4,891,787号(1990年1月2日颁发)描述了一个并行MIMD处理系统,它的处理器阵列具有SISD/MIMD指令处理系统。这两个专利确定了一个单CPU(中央处理器),它是多组处理器(PEs)和存储器的总控制器,这里每一组有一个某种形式的互连路径。一个并行总线将主CPU与各组互连。这个机器已经证明所有PEs能以MIMD方式运行独立的程序代码。与上述其他专利相似,它具有中断由单个主控制处理器控制的PEs处理的能力。
当前,大多数SIMD处理器(例如“连接机(Connection Machine)”(CM-2)或者是作为独有的单元,或者是作为一个MIMD主机的前端或后端来运行。所建立的每个处理器用于完成一个特定的功能。其结构与那些要求中断的结构相似,需要相当大量的额外开销去完成有限的专用方式操作。然而,大多数计算机算法或程序可能以几种方式(SIMD或MIMD)之一对有效的并行执行具有某种强的匹配能力。再有,所有的算法最终会从允许对问题的不同部分使用不同执行方式的机器体系结构中受益。现有的建议没有充分地针对这一要求。
这里所描述的发明使一种机器体系结构能允许对问题的不同部分采用不同的执行方式。再有,机器使用同一组系统资源能实现多方式应用。本发明人已经描述过的计算机系统是一个具有多组处理器(处理单元)和存储器的多处理器计算机系统,其中的处理器通过互连路径相互耦合在一起,系统中还有控制系统处理器指令执行的操作装置。根据本发明的最佳实施例,处理器可以组合成动态地以SIMD和/或MIMD方式执行指令。这种方式变换可以在逐条指令的基础上实现。各处理器可以是物理构造完全相同的,然而却能完成多方式功能。
在本发明人的最佳实施例中,每个计算机处理单元至少要有一个指令寄存器、程序计数器、和一个状态码寄存器。利用所描述的体系结构,本发明已提供了各种控制,它们能使这些MIMD方式操作中必须的通用处理单元在SISD方式下使用而且有用。本发明的动态切换方面利用一个计算机处理单元的指令寄存器直接控制利用其他通用单元作为SIMD操作方式下的双重目的资源的指令处理。
相应地,本发明对程序计数器赋予了基址寄存器功能。
本发明还给状态码寄存器赋予了局部启动功能(local enable functon)。
本发明还利用指令寄存器作为输送SIMD指令的流水线。
每个处理器在其指令寄存器中有一个值用于动态指示为执行当前指令所设置的操作方式。在指令集中的一条指令能被发送给系统中被选定的那些处理器以便将选定的一组处理器动态切换到所希望的操作方式。
在最佳实施例中,在执行一个指令流的一组处理器的每个处理单元的指令寄存器之间提供了一条路径,通过在这一路径上传送指令来启动一组处理器的SIMD操作。
在另一个实施例中,一个互连网络能实现各处理器之间的通信功能。在这一实施例中,能与处理器间直接通信路径相结合的一个多级互连网络提供了通向指令寄存器的补充路径。这一补充的互连网络是一个动态多级双边切换网络,能点对点连接各处理器而不会阻塞。
此外,还能在同一计算机系统上动态地运行几个相互动态转换的处理方式组。还没有已知的系统允许这样一种配置。
在下面的详细描述中将提出说明所有体系结构的手段的这些或其他改进。为了更好地理解本发明及其优点和特点,可参考前面引入的为其他发展目的而提出的共同未决申请。然而,具体到这里描述的改进、优点和特点。在下文的描述中将是参考即将描述的附图。
图1(a)说明通用资源系统的SIMD方式结构。
图1(b)说明通用资源系统的MIMD方式结构。
图2举例说明系统操作资源的一种假设时序。
图3说明该系统的新的可能特点,其中包括根据最佳实施例实现的各处理器之间直接信号耦合通信。
图4说明图3所示系统的另一实施例,其通信由互连网络实现,利用最佳多级ALLNODE(全节点)互连网络提供到达指令寄存器的另一种路径。
图5说明根据最佳实施例的SIMD时序。
(注:为图示说明方便,各图可能分成几部分。使用多张的情况中,当看图时,按照惯例我们把图的顶部作为第一张,其后各张为向下和横向部分。
下面的详细描述作为以例说明本发明最佳实施例的部分。
根据本发明,将要描述的计算机系统及其结构使一个机器处理单元能以桢的资源以适当的方式(例如图1(a)的SIMD方式或图1(b)的MIMD方式)来执行问题的不同部分。此外,如将要描述的SISD方式也在图1(a)的含义之中。在本发明的最佳实施例中,机器使用同一组系统资源来启动多方式应用,但这些资源动态地重新配置。本发明所描述的计算机系统是一个具有多个处理器组1…N的多处理器计算机系统。处理单元(以最佳的RISC配置)具有一个控制单元、一个数据流单元、和一个存储器。处理器通过一个互连路径相互耦合,该互连路径可以是任何一种通用形式的互连网络,例如纵横(crossbar)、或电路交换(circuit switching)网络、二元超立方(binary hypercube)网络或其他连接网络。在本发明最佳实施例及另一个实施例中,用于所描述体系结构的最好的连接网络因而也是本发明最希望使用的网络是以ALLNODE(全节点)开关为基础的那些网络之一。ALLNODE开关在题为“用于执行广播/多播(multi-cast)的广播/交换设备”的美国专利申请中描述过,该专利申请由H.T.Olnowich等提出(USSN 07/748,316),1991年8月21日提交。该网络是作为并行连接介质的多级网络,适用于RS/6000以及其处理器的异步连接,允许各处理器节点由同时发送的或以任何方式重叠的指令来彼此链接。该网络是在VLSI(甚大规模集成电路)上实现的,它提供在芯片(多级双侧芯片)内有规则的等距离的带有与被耦合的处理器相连接的端口的无阻塞转接选择路径。这些处理器或在一个芯片内,或在一块板上,或通过通信通道连接。该系统能提供一个双优优先级结构,用于上述参考申请(本发明人是发明者之一)中描述的单纯网络。有关的专利申请包括前面提到的那些,它们在这里被引入作为参考。该开关网络使本发明的一些特点能够实现。
计算机处理器将具有MIMD处理能够利用的那些资源,包括一个可在SIHD方式中被赋予基址寄存器功能的程序计数器,一个可被赋予局部启动功能的状态码寄存器,以及一个指令寄存器,它用于在SIMD方式下流水线输送SIMD指令。
本发明所描述的体系结构提供了控制系统处理器指令执行的操作手段。根据最佳实施例,处理器能配置成动态地以SIMD和/或MIMD方式执行指令的结构。这种方式变换能以逐条指令为基础。这些处理器在物理上可以是完全相同的,但却能实现多方式的功能。
由于在本发明最佳实施例中,计算机处理单元将具有指令寄存器、程序计数器、及状态码寄存器,计算机系统将具有控制能力使这些在MIMD方式下必须的通用处理单元资源能用于MIMD方式并在MIMD方式下发挥作用。
为便于讨论,象在最佳实施例中那样,我们假定一个单个处理器将具有由图2所概括的特点。这些特点是许多可能的RISC体系结构的特征,在国际商用机器公司(IBM)出售的RS/6000RISC处理器中能发现这些特点,这种处理器是本发明希望使用的。然而,在本发明范围内,单个处理单元将具有:
1.一个指令集,其中所有对数据的存储器访问是通过LOAD(加载)和STORE(存储)指令来实现的,就象在RISC类指令集体系结构中通用的那样;
2.这种数据存取的寻址将是基址加位移,但在一个存储器操作已经开始之后应对加法和变址寄存器进行更新,作为后地址更新(post address update);
3.所有完成计算操作的指令,例如加或减,都是寄存器对寄存器的,并且能在一个或多个执行周期内执行,无需访问存储器(在本说明中,为简化叙述而假定这个周期时间为一个周期时间);
4.除了立即指令占两个存储器字(第二个字为数据)外,其他所有指令均严格地置于一个存储器字中;
5.所有指令应置于一个机器周期中,在周期开始,可从机器寄存器中选取存储器操作数地址,在周期结尾,在读操作中接收结果的寄存器能让结果存入。
在当今的典型RISC机器中能发现所有这些特点,它们也能在具有当前正在发展的某些先进性的更复杂体系结构中实现。这里的要点在于尽管本发明人宁愿使用简化的RISC机器(它被详细描述),但是所描述的特点中没有任何一点不能经过修正而用于其他更传统的体系结构。
体系结构扩展
下面将对两种可能的方式描述使计算机系统能在逐条指令水平上在SIMD(作为举例)和MIMD方式之间进行动态变换的体系结构扩展。
我假定一个通常根据图3构成的处理器阵列。进入每个处理器的指令寄存器(IR)中的指令字可以来自标号为控制处理器(PE#1)的处理器,在全局总线上(或在另一个实施例中通过网络)的一次广播,或者来自该处理器自己的存储器。
根据本发明,每个处理器的指令寄存器识别一个新的处理方式位(PMB),这一位指出该处理器是处于SIMD方式还是MIMD方式。这一位控制新指令的来源。
再有,每条指令的格式中包含一个单独的并行执行类型位(PET),它有两个值,指出是“局部”操作还是“阵列”操作。
最后,在指令集中系统提供了一条“变换方式”指令,它改变处理器的处理方式位,使该处理器以变换了的方式执行指令流中跟随“变换方式”指令的那些指令。
这些体系结构扩展使能逐条指令地动态变换方式,使计算机系统的机器能在SIMD和/或MIMD方式下操作以适应需由该计算机系统执行的算法的要求。
SIMD方式操作举例
每个处理器在其指令寄存器中有一个值用于动态地指出为执行当前指令所设置的操作方式。在指令集中的一条指令能被播发到系统中被选定的那些处理器,用来将选定的这一组处理器动态地变换到所希望的操作方式。本例中说明SIMD操作。
在接通电源时,除标号为PE#1的处理器外,所有处理器均使其处理方式位(PMB)置于SIMD。处理器#1被置于MIDM并在这一配置期间不能从该MIMD方式变换成其他方式。
再有,处理器#1作为所配置的系统的控制器,它作为控制器发挥作用并提取指令。当处理器#1提取一条指令时,所有其他处理器将该指令拷贝到各自的指令寄存器中。这样,在提取该指令结束时,所有处理器在其IR有相同的指令供执行。
现在,在下一个机器周期的开始,每个处理器要检查其PBM和指令并行执行类型位(PET)(在IR中发现这些位)。对于处理器#1(它处于MIMD方式),若PET为“局部”则使该处理器将该指令作为通常指令来译码和执行。这样,下一个机器周期将用于处理器#1中的指令执行,其存储器能用于取数和存储。也可能机器设计允许预先提取指令,而指令不需要存储器,在这种情况下这一周期可以用于提取下一条指令。在SIMD方式,所有其他处理器将看到“局部”PET并忽略这条指令。它们将处于休闲状态。这一操作方式用于需要由控制处理器进行某些总体状态或控制操作的时候。每当控制处理器#1提取另一条指令时便重复这一过程,而且所有处于SIMD方式的处理器同时在它们的指令寄存器中俘获该存储器访问。
在这SIMD方式的配置中,若PET为“阵列”则使所有处于SIMD方式处理器(也就是除控制处理器#1之外的所有其他处理器)去译码和执行该阵列指令。然而,处理器#1将利用这个“阵列”PET作为标志跳过其执行周期而直接进入下一条指令的提取操作。这使得下一条指令的提取操作与所有其他被选定为SIMD方式的处理器(阵列组中的所有处理器)的执行操作重叠。这样,一个“阵列”指令串将会完全重叠于所有的指令提取操作,允许这些处理器的存储器在这些周期的每个周期中供数据操作数使用。
这些SIMD阵列方式指令的执行与普通处理器执行情况完全相同,只是在一条指令执行之后处理器的程序计数器PC不自动增量,除非该指令是双字立即指令。这就允许这些SIMD机器将其程序计数器作为另一个基址寄存器使用。这对任何门有限的(gatelimited)设计是一个有价值的特点,那里处理器都放在一个芯片上,那里“不动产”是宝贵的而且不想被浪费。
当程序计数器作为基址寄存器时,对其进行修改的指令是:
1.由控制处理器#1提取的但PET设置等于“阵列”的“Jump(跳转)”指令,其作用是使每个SIMD方式处理器的程序计数器设置成该值;
2.由控制处理器提取的但PET设备等于“阵列”的“Load Immediate立即装入)”指令,其作用是按处理器程序计数器指定的地址将处理器存储器内容装入每个处理器的寄存器,并使PC在提取操作后增量;
3.“Branch and Link(分支和链接)”指令将从(slave)处理机的PC保存在指定的链寄存器中,并以新地址重新装入PC,这等效于在同一条指令中保存基址并重新装入它;
4.“Return(返回)”指令从其他寄存器之一取出基址重新装入程序计数器。
这样,这些指令一起使处理器PC能用于指向常数和其他数据数组的指针,这在矩阵运算中是很有用的。
在本结构中包括一条“STOR IMMEDIATE(立即存)”也可能是方便的,它是“立即装入”的逆指令。虽然通常它不是一条有用的指令,在所描述的机器中,它允许SIMD处理器使用它们的程序计数器作为基址寄存器也可用于存储。
图5以图表示出一个指令流举例。将会注意到所描述的发明在SIMD方式中允许很高的存储器利用率,因为在很高百分率的存储器周期中该阵列在进行一些有用的工作,可以达到100%的利用率。
图5给出的程序举例将两个数组加在一起,这里可在每个处理单元中找到一个数组。图中顶部一行对每个存储器周期又有一个细分部分,指出在那个周期里控制PE(#1)和SIMD方式处理器在存取什么。IR中每条指令的RET也表示在每个周期上。再有,这里所示简化汇编语言在每个操作码的开头标以“X:”。这是那条指令的PET位。若“X”为“A”表示阵列方式;或“X”为“L”表示局部方式。这里所示程序是选来显示本发明的许多新特点。
如图5所示,控制处理器以局部方式的一条指令开始其执行,该指令以一循环计数设置它自己的R1寄存器(如RISC类机器中能出现的累加器或通用寄存器)。这占用了两个机器周期,一个用于提取指令,一个用于操作。在这段时间里其余PEs休间。
然后,以一个值为“阵列”的PET,它提取并分送指令“LOADBASE,X”,使SIMD方式的每个处理单元的基址寄存器装入X数组的地址。这占用了一个机器周期用于提取指令,在SIMD方式的PEs中以流水线方式使其机器周期与后面的周期重叠。
在下一个周期中看到PE#1)再次提取和分送一个阵列方式指令-在这一情况下是“JUMPY”。这条指令的作用是使SIMD方式的所用PEs的另一数组起始地址装入它们的PC。
下面的三个指令是循环的核,所有指令都严格地用提取和分送这些指令的PE#1的一个机器周期。第一条指令使所有SIMD一方式PEs在其工作寄存器R1之一装入取自X数组的一个值。第二条指令完成从Y数组取数对R2进行类似的装入。请注意,这里“LOADIMM(立即装入)”指令使用PC(先前装入了Y数组基址),而且有使PC增加1的副作用(如通常SISD机器中的立即方式指令所做的那样)。这使PC进到下一个Y数组元素。这三条指令中的最后一条将结果存回基址(BASE)寄存器所指定的位置(在第一条指令中取出的X数组元素位置),然后将修改的地址1+基址存回基址寄存器。这个调整后的基址指向下一个X数组元素。
最后两条指令是局部方式的,一条是使循环计数(可在PE#1的R1中找到)减1,另一条是“Jump not Zero(非零跳转)”跳转回循环开始。这最后的跳转以局部方式执行,只影响PE#1的PC,并将用作指入Y数组的一个指针的PC留给SIMD方式的PEs。这类功能的其他实现方法(例如在IBM系统/370机器体系结构中可以发出的BRANCH ON COUNT(根据计数分支)能使这两条指令压缩成一条。
MIMD方式举例
尽管已经描述的SIMD方式操作的结构和方法在许多应用中有用,MIMD方式同样是很重要的。考虑到这一点,本发明将给出一个MIMD操作事例。
假定控制处理器#1取出一条“变换方式”指令,它的PET是“阵列”。处理器1将忽略它。然而,所有SIMD方式处理器将执行这条指令并将它们的操作方式改变成MIMD方式。或者这条指令能提供一个程序计数器PC值并在此开始执行(允许所有处理器在同一时刻在程序中的同一地方开始),或者让PC保持该指令之前的值,允许每个SIMD处理器计算出它自己的开始程序地址。
一旦在MIMD方式,在逐条指令水平的一个动态变化之后,处理器将作为单个处理器独立地可作为一个阵列的一部分去提取指令。其PET “局部”的指令执行程序流时完全象普通计算机那样。其PET为“阵列”的指令能以多种方式操作。一种具体应用方式是当指令为RISC意义下的LOAD(装入)和STORE(存储)时的情况。在这种情况下,由指令产生的地址被用作进入处理器互连网络的处理器地址。该处理器将暂停,直到该地址指定的处理器执行一条相反的指令(对STORE(存储)执行LOAD(装入),对LOAD(装入)执行STORE(存储))并将执行存储指令的处理器的数据传送给执行装入指令的处理器。首选的ALLNODE交换网络的优点在于该网络的等待时间最短。
类似地,由处理器执行的其PMB值为“阵列”的“变换方式”指令也能以多种方式完成。最简单的方式要算是简单地变换到SIMD方式并等待控制处理器#1的下一条PET为“阵列”的指令。然而,此后控制处理器要完成一个等效变换的企图可能等待到所有其他处理器都已变换成SIMD方式。但是,利用具有某些有潜在价值的特点的另一种方式也能实现。这个另外的方式会使其他处理器遇到这种指令时暂停而不是处理器#1暂停,并用指令所提供的地址作为回到处理器#1手关键字。当处理器#1执行一个变换而其“地址”与该关键字匹配,该处理器便脱离暂停状态。恢复追踪控制处理器的指令。
在这个另外方式中,一个有用的关键值应是一个二进制模式(pattern),它逻辑“或”到返回处理器#1的某个公共总线信号上。当处理器#1的地址与这个“或”后的值匹配时,这些处理器便脱离暂停状态,返回SIMD方式。这个公共总线信号能通过网络传送。这就允许原来的SIMD处理器组中有可变的处理器子集合从MIMD方式跳出进入SIMD方式,然后可能再次返回MIMD。再有,当一个处理器集合在SIMD方式下运行时,其他处理能仍旧保持在独立的MIMD方式。
也可能这样构成变换方式指令,以便向互连网络提供它的地址,作为被当作控制单元使用的处理单元的地址,允许任何PE作为任何其他PEs子集合的SIMD控制器,甚至可以动态地选择。
这样,可以在利用或不利用ALLNODE(全节点)网络特点的情况下采用子集合分组特点,但ALLNODE网络特点还有其他一些优越性,这将在下文中解释。
此外,在另一个实施例中,能有几个可以组间动态改变的处理方式组动态地运行于同一机器上。利用ALLNODE网络特性,能用互连网络代替全局同步总线来实现广播功能。这两种情况能在相同(结构)特性内实现。
ALLNODE互连网络举例
通过下文将可以理解,一个理想的系统可以利用象USSN07/661594号(1990年11月13日提交,题为“并行相联处理器系统”)所显示和描述的那些特性,那里有一组能实现SIMD处理的“前哨”处理器,但是,还能以更普通的MIMD概念用同一组资源来应用这一系统。在该系统内,你能进行混合与匹配,在可选性基础上你能有SIMD和MIMD两种操作方式,某些处理器运行SIMD而另一些处理器运用MIMD。能实现SIMD处理的“前哨”处理器见于题为“并行相联处理器系统”的申请(USSN:07/611,594,由J.W.Diff-enderfe等提出,1990年11月13日提交),这这里引入它作为参考。
利用ALLNODE互连网络,一个动态变换多级网络其中无阻塞转接选择路径选择处理器能很快地作为一个互连网络的一部分被建立起来,你能在一个网络上选择具有所需的资源的、不同的处理器组并用它们运行程序,从而能利用应用程序所需的SIMD和MIMD的优点。由此,对控制处理器的指定便不限于一个控制处理器,这提供了动态地轮流充当控制器的机会。如果所选择的网络选定了将哪些组互连,而且那些被选组成为一个动态网络的一部分,你能使用该网络去广播指令。这允许不必须用硬件而是用有关的软件来控制谁是路径处理器(route processor)。
这就更加多样化了,而且或许能比使用其他互连网络提供更多的特性。利用这样的系统,你现在有了一个能由任何一个(所选系统的任何一个处理器)运行SIMD方式的系统。一个处理器在一个时间段内能作为控制方,然后另一个处理器成为控制方,而且在这一动态资源分配之间,根据系统的流(fuidics)和资源所确定的那样,附属于该网络的不同资源能被利用。你能有多个处理器向多个处理器子集合广播,你还能有多个任意的SIMD机器集合运行在同一个物理硬件上。
返回图1,在MIMD方式下任意一个处理器能对任何其他处理单元子集合广播一条指令。你能将该广播数据送入它们的指令寄存器并象在SIMD方式那样去执行。在图4中,互连网络会广播指令,这时不需要对指令寄存器进行同步通信的另一条路径来增加一条到指令寄存器的补充路径。在这个使用ALLNODE网络(它是异步网络)的补充实施例中,你会通过互连网络传送指令并在内部达到指令寄存器,这便能根据需要使用更通用的机器单元。需要付出的代价是一个周期(它通常可以被吸收)。从根本上说,通过网络广播可能是与其他替代方式一样快的。而且或许比其他替代方式更可靠。当有多个处理器的阵列紧密地耦合在一个芯片上时,选择如在最佳实施例中描述的那种直接路径可能是更理想的。然而,对于本发明的系统应用,当处理器在物理上是彼此远离的,当每个集合以高频率运行,一个利用快速异步广播网络(如具有广播能力的ALLNODE开关网络)的配置是理想的。如图4所示,ALLNODE开关互连网络能用作从网络到指令寄存器的一条替代路径。
尽管纯粹的与有限的SIMD机器在向阵列内其他处理单元广播前一条指令时能提取一条指令,而且某些SIMD机器能独立地使用它们的存储器,如在USSN07/611,594(1990年11月13日提交,其申请题目是“并行相联处理器系统”)中描述的“前哨”(PICKET)处理器中那样,但本体系结构是RISC能力的一种扩展。在RISC处理器中,提取一条指令然后完成一个存储器操作是可能的。在本系统中,当提取下一条指令时,标志为参加操作的每个处理器适当地对它们各自的存储器提取和存储数据。事实上,被指定为控制单元的控制单元所执行和提取的每个单个指令能触发其他处理器的每一个中存储器的活动。
这样,便存在着100%使用存储器的潜力。每当需要存储器时,它便可以供使用,而只有当程序不需要它时才是它不被使用的时候。再有,本系统中,某些处理器能以SIMD方式运行而其他处理器能以MIMD方式进行它们自己的存储器提取。这是前哨(PICKET)””概念与更普通的MIMD概念的结合,并在该进程中使用了同一组资源。
ALLNODE开关使得将更普通的处理器用于正在描述的图4的示系统成为可能。虽然某些处理器能利用来自控制处理器1的公共存储器指令通信路径,但另一条路径(图4中的虚线)能被用来互连公共处理器。这些公共处理器能够是稍作修改的PS/2或RS/6000机器。其修改是利用一个端口提供一条指令和一个状态位或值,并带有适当的译码逻辑以告知每个处理器是取得它们自己的指令还是等待来自控制器处理器的广播。除此之外机器不需物理修改。这个改变会涉及一个传送,该传送允许另一个处理器提供一条指令来代替它们自己提取的指令。这个传送是通过到达指令寄存器的该另一条路径提供的。按这种方式,便不需要修改标准指令寄存器或在它下面的许多译码逻辑。通过硬件ALLNODE开关来指定处理器,便使哪个处理器作为控制一方的动态轮转成为可能,因为随后这一建立路径过程能由软件完成,它将允许软件去控制谁是路径处理器。以这样的系统,系统中任何处理器都能以SIMD方式运行。一个处理器在一段时间里可以是控制器,然后其他某一处理器可以是控制器。如前所述,这允许多个处理器向多个子集合广播,在同一物理硬件上提供SIMD机器的多种任意组合,而且以相同。硬件也能运行通常的MIMD处理过程。
与先前的多方式方案相比,在其他不同点当中有一点是在SIMD方式下的一个特殊PE完成指令提取,该指令被直接送到每个处理器而无需专门指令或中断。如果该指令标志为一条并行指令(我们称为将PET位置成“阵列”),则所有处理单元直接执行该指令。这本身与SIMD处理器的通用广播方式相似,但利用这个新的体系结构,在同一指令流也能在主(控制)处理器中完成局部计算。此外,在PET置位(ON)的情况下通过执行“动态”变换方式”指令也能使PEs解脱,回到独立的MIMD方式。
在最佳实施例中将会注意到,没有使用中断屏蔽位来指出一个PE是否将参与SIMD操作,但代之以PMB位来通知处理单元从哪里得到它的指令,是从它的局部存储器得到还是由控制处理器#1提取那条指令。
当前途径的简单性与源于MIT的专利4,873,626及4,891,787成为对照,它们本身借用了对并行IF-RHEN-ELSE条件执行问题(该问题在1960年代提出1970年代实现的ILLIACIV处理器中解决)的经典解决办法。在每个处理器中有一个启动位,它允许每个处理单元去执行一条SIMD指令。在这种情况中,所有PEs并行地对它们自己的数据完成一个IF(条件)测试,并置好它们的ENABLE(启动)位。然后,启动位被置成“真”的所有PEs有条件地执行THEN代码。然后,启动位被置成“伪”的所有PEs有条件的执行FALSE代码。其结果由控制器检查,TRUE(真)和FALSE(伪)代码均由阵列执行。
然而,本系统不需要一个显性启动位来完成这类操作。如果希望的话,已经在每个PE(因为它能独立操作)中的“状态码”或等效的状态位与COMPARE(比较)或其等效指令一起提供了同样的功能。然而,由于这里描述的系统所具有的从SIMD到MIMD的动态快速变换能力,本系统提供了一个处理和加速获得结果的另一种重要途径。
这一过程会使所有的PEs以SIMD方式执行IF(条件)测试。然后控制器用一条指令将它们全部释放回MIMD方式。然后每个PE将执行与它的数据有关的“唯一路径(JUST THE ONEPATH)。当所有PEs已经完成它们的路径,它们将变换回SIMD方式。这样,总时间是测试时间加上这两个路径中的最大时间,而不是经典方式所需要的总和时间。对于复杂的代码,这一改进能实现速度增加因子2。
本发明所公开的最佳实施例会被认为是理想地适用于紧密耦合的高性能RISC类处理器体系结构。但是,它能扩展到更大范围分布的体系结构,取决于互连网络的能力。在最佳实施例中,本系统由微密的VLSI(甚大规模集成电路)实现,那里存储器和逻辑(电路)能放在一块芯片上,这便允许更多PEs及它们的存储器位于一块芯片上。通过将相对有限数目的若干系统微密地耦合于单一的一块芯片上,便能实现指令执行的SIMD方式,使在每个可能的存储周期内对每个PE有一条指令的机会。
迅速地变换到MIMD方式和MIMD方式变换成其他方式甚至对固有的顺序计算在控制处理机上变换成SISD方式的能力允许程序员或编译器为系统建立的程序使用对应用程序最有意义的最佳并行操作类型(SISD、SIMD、MIMD)。再有,所建立起来的这种部分地以SIMD方式进行的执行过程能使几乎每一个存储器周期时间都被用于计算,从而造成一种可以在存储器极限运行的机器设计。利用ALLNODE开关及补充路径,对于许多处理器能在几个周期内建立系统。这个系统在初始建立期间的周期时间有一个小的牺牲,但通用硬件的优越性,极大的扩展能力及配置的灵活性可以造成另一个系统,它利用被选定为所选系统的互连网络作为补充路径。
这里,已经详细叙述的几种替代系统表明,为识别哪种执行方式最理想而限定的简单机制实现起来是相当经济的,而且它们能被移杆到多种体系结构和技术中。这一方案允许计算机系统能很自然地使用处理单元的全部资源而对每个处理单元只需作很小改变或不作改变,造成一个以多种方式操作的“并行RISC”机器,并能灵活地动态地配置系统,以适应具体的应用。
尽管本发明已描述了最佳实施例,但应该理解,那些在现在和将来精通本门技艺的人们根据对这些讨论的理解将能作出各种改造和扩充,而这些都属于下文中的权利要求的范围。这些权利要求的构成应能保持对首先披露的本发明的适当保护。
Claims (67)
1、一个计算机系统,包括多组处理器和存储器,以及处理器之间的一个互连通道,其特征在于控制系统的处理器指令执行的操作手段,所述操作手段使处理器组能动态地配置,以便作为MIMD、SIMD或SIMD处理器组进行操作,这些处理器组是通过动态地改变一个或多个程序的指令执行方式来配置。
2、根据权利要求1的一个计算机系统,其特征在于所述方式变换是在逐条指令基础上实现的。
3、根据权利要求1的一个计算机系统,其特征在于至少某些所述处理器是物理上完全相同的,然而能完成多方式功能。
4、根据权利要求1的一个计算机系统,其特征在于至少有一些所述处理器中的每一个具有为实现单个SISD或成组MIMD功能所必须的一个指令寄存器、一个程序计数器和一个状态码寄存器,用于它们的计算机处理单元。
5、根据权利要求1的一个计算机系统,其特征在于至少有一些所述处理器中的每一个具有为MIMD方式操作所必须的资源,用于它们的计算机处理单元,所述相同资源也用于SIMD方式操作。
6、根据权利要求1的一个计算机系统,其特征在于:当所述操作手段使选定的处理器动态地实现SIMD功能时,作为资源为MIMD操作所必需的所述处理器的程序计数器被赋予执行SIMD方式操作的基址寄存器功能。
7、根据权利要求1的一个计算机系统,其特征在于:当所述操作手段使选定的处理顺动态地实现SIMD功能时,作为资源为MIMD操作所必需的所述处理器的指令寄存器被赋予执行SIMD方式操作的局部启动功能。
8、根据权利要求1的一个计算机系统,其特征在于:当所述操作手段使选定的处理器动态地实现SIMD功能时,作为资源为MIMD操作所必需的所述处理器的指令寄存器被赋予执行SIMD方式操作的局部启动功能,而且这里所述指令寄存器还用于流水线方式输送SIMD指令。
9、根据权利要求1的一个计算机系统,其特征在于:当所述操作手段使选定的处理器动态地实现SIMD功能时,作为资源为MIMD操作所必需的所述处理器的指令寄存器被赋予执行SIMD操作的方式局部启动功能。
10、根据权利要求1的一个计算机系统,其特征在于:当所述操作手段使选定的处理顺动态地实现SIMD功能时,作为资源为MIMD操作所必需的所述处理器的指令寄存器被赋予执行SIMD方式操作的局部启动功能,而且这里所述指令寄存器还用于以流水线方式输送SIMD指令。
11、根据权利要求1的一个计算机系统,其特征在于所述处理器组在所述指令寄存器中有一个值设置寄存器,它动态地指示一个程序指令流中当前指令的当前执行方式。
12、根据权利要求1的一个计算机系统,其特征在于:在操作手段指令集中的一条指令能被广播到该系统的被选定处理器,以将系统中被选定的处理器集合动态地变换到所希望的操作方式。
13、根据权利要求1的一个计算机系统,其特征在于提供了多个可相互动态变换的处理方式组运行于同一计算机系统上,在完成任务过程中在各操作方式之间动态地变换。
14、根据权利要求1的一个计算机系统,其特征在于机器使用同一组系统资源去启动多方式应用程序,但这些资源被动态地重新配置。
15、根据权利要求1的一个计算机系统,其特征在于该计算机系统是一个多处理机计算机系统,它具有多个处理器组1…N,每个组有若干处理单元每个处理单元有一个控制单元,一个数据流单元,以及与一个处理器相关联的一个存储器,在所述多个组中的每个处理器通过互连网络彼此相连。
16、根据权利要求1的一个计算机系统,其特征在于互连网络是一个动态变换连接网络。
17、根据权利要求1的一个计算机系统,其特征在于:在SIMD方式,其方式间的变换利用在MIMD方式中使用的计算机处理单元指令寄存器去变换到SIMD方式,而指令处理利用在MIMD方式操作中使用的其他单元作为SIMD操作方式的双重目的资源。
18、根据权利要求1的一个计算机系统,其特征在于:互连网络是一个动态多级双侧变换网张,能对处理器点对点耦合而无阻塞。
19、根据权利要求1的一个计算机系统,其特征在于:在执行一个指令流的一个处理器组中每个处理单元的指令寄存器之间提供一个广播路径,利用这样提供的广播路径进行广播使该组中的多个处理器能进行SIMD操作。
20、根据权利要求1的一个计算机系统,其特征在于:一个互连网络提供广播功能用于向一个处理器组中的多个处理顺广播指令,使这些处理器能执行一种操作方式。
21、根据权利要求1的一个计算机系统,其特征在于:一个多级互连网络提供通向执行一个公共程序的一组处理器指令寄存器的替代路径。
22、根据权利要求1的一个计算机系统,其特征在于:一个多级线连网络提供通向执行一个公共程序的一组处理器指令寄存器的广播路径。
23、根据权利要求1的一个计算机系统,其特征在于:一个多级互连网络提供通向执行一个公共程序的一组处理器的指令寄存器的替代路径,而所述互连网络是一个动态多级双侧变换网络,能使各计算器点对点耦合而无阻塞。
24、根据权利要求1的一个计算机系统,其特征在于:一个多级互连网络提供通向执行一个公共程序的一组处理器的指令寄存器的广播路径,而所述互连网络是一个动态多级双侧变换网络,能使各处理器点对点耦合而无阻塞。
25、根据权利要求1的一个计算机系统,其特征在于:一组交互处理器的单个处理单元具有
一个指令集,这里对存储器的所有数据访问都是通过LOAD(装入)STORE(存储)指令实现的,而且这里
对数据访问的寻址是基址加位移,而且这里
加法和变址寄存器的更新应在存储器操作已经开始之后进行,作为后地址更新;而且这里
所有执行计算操作的指令是寄存器对寄存器,而且所述处理器能在一个或多个执行周期内执行指令而不需访问内存。
26、根据权利要求1的一个计算机系统,其特征在于:指令是在一个机器周期内可执行的,其存储器操作地址可在周期开始时从机器寄存器中选择,还提供一个寄存器用于在“读”指令中接收结果,该寄存器能在周期结尾销存。
27、根据权利要求1的一个计算机系统,其特征在于:进入一个处理器指令寄存器(IR)的指令字或者来自由冠以“控制”的处理器所发起的一次广播,或者来自处理器自己的存储器。
28、根据权利要求1的一个计算机系统,其特征在于:提供给每个处理器一个指令寄存器,它认识一个指示该执行周期处理器方式的处理方式值(PMB)。
29、根据权利要求28的一个计算机系统,其特征在于:该处理方式值是指示新指令源于何处的一位。
30、根据权利要求1的一个计算机系统,其特征在于:处理器每个指令的格式包括一个独立的并行执行类型变量(PET),它有两个值,其值指示“局部”操作或“阵列”操作。
31、根据权利要求1有一个计算机系统,其特征在于:该系统的指令集中提供了一个变换方式指令用于系统的操作手段中,该指令改变处理器的操作方式,使其按变换了的方式执行指令流中跟随变换方式指令的那些指令。
32、根据权利要求1的一个计算机系统,其特征在于:每个处理器在其指令寄存器中有一个值,用于动态地指示为执行当前指令设置的操作方式,这里,一条指令能广播到系统的选定处理器,用以将系统中选定的一组处理器动态地变换到所希望的操作方式。
33、根据权利要求32的一个计算机系统,其特征在于:在接通电源时一组交互处理器中除控制处理器外全都使方式变量置成SIMD方式,而控制处理器保持为MIMD方式,并且在一个程序结构的交互处理期间不从这一MIMD方式变换成其他方式。
34、根据权利要求32的一个计算机系统,其特征在于:一个交互作用处理器组的控制处理器控制其配置(configuration)并作为控制器和提取指令,这里,在控制处理器提取每条指令时其他处理器将该指令的拷贝销存到它们的指令寄存器中,使得在指令提取结束时所有其他处理器均在它们的指令寄存器中有被提取的那条指令供执行。
35、根据权利要求34的一个计算机系统,其特征在于:在下一个机器程序周期开始时,每个处理器查看其指令寄存器中代表方式与执行类型值的变量,这里,若类型变量为“局部”,则使处理器将该指令作为通常的指令来译码和执行。
36、根据权利要求35的一个计算机系统,其特征在于下一个机器周期允许在控制处理器执行指令时其存储器可用于装入和存储。
37、根据权利要求35的一个计算机系统,其特征在于:如果预先提取的指令不需要存储器,那么在这种情况下该周期可以用于提取下一条指令,这里所有SIMD方式处理器将看到“局部”类型并忽略该指令。
38、根据权利要求37的一个计算机系统,其特征在于:每当控制处理器提取下一条指令时,所有SIMD方式的处理器同时在它们的指令寄存器中获取存储器访问。
39、根据权利要求34的一个计算机系统,其特征在于:在下一个机器程序周期开始时,每个处理器查看其指令寄存器中代表方式与执行类型值的变量,这里,若类型变量为“阵列”,则使SIMD方式的所有处理器译码和执行该阵列指令,而控制处理器将把该阵列类型作为标志以跳过其执行周期并直接进入它的下一条指令提取。
40、根据权利要求34的一个计算机系统,其特征在于执行SIMD方式指令时以程序计数器作为基址寄存器。
41、根据权利要求34的一个计算机系统,其特征在于操作手段包括修改一个处理器程序计数器使其作为基址寄存器的指令,这些指令包括:
由控制处理器提取的一条“跳转(Jump)指令,但这里的类型值等于“阵列”所需要的作用是将每个SIMD方式处理器的程序计数器置成该值;
由控制处理器提取的一条“立即装入(Load Immediate)”指令,但类型值被置成等于“阵列”所具有的作用是按照每个处理器程序计数器指定的地址将该处理器存信内容装入每个处理器的寄存器,并使其程序计数器在提取应增量;
一条“分支和链接(Branch and Link)”指令保存从处理器的程序计数器的指定的链寄存器,并将一个新地址重新装入程序计数器,这等效于在同一条指令中保存一个基址并重新装入它;以及
一条“返回(Return)”指令从处理器的其他寄存器之一取出基址重新装入程序计数器。
42、根据权利要求34的一个计算机系统,其特征在于操作手段包括修改处理程序计数器使其作为基址寄存器的指令,包括以“立即存(Store Immediate)”指令设置的程序,该指令是“立即装入”指令的逆指令,它允许SIMD方式处理器在存储时使用程序计数器作为基址寄存器。
43、根据权利要求31的一个计算机系统,其特征在于:该系统的指令集中提供了一条变换方式指令用于系统的操作手段中,该指令改变处理器的操作方式,使其按变换了的方式执行指令流中跟随变换方式指令的那些指令,这里,如果控制处理器提取一条变换方式指令,它指示其处理类型为“阵列”,那么在这种情况下控制处理器将忽略它,而其他方式的处理器将执行它并将它们的方式变换成MIMD方式。
44、根据权利要求43的一个计算机系统,其特征在于一条方式变换指令提供了一个用于开始执行的程序计数器值。
45、根据权利要求43的一个计算机系统,其特征在于:该变换指令使处理器程序计数器保持其原来的状态直至该指令允许每个其他处理器计算出它自己的起始程序地址。
46、根据权利要求31的一个计算机系统,其特征在于:通过逐条指令水平的动态变化,于是在MIMD方式中各处理器作为单个处理器,独立地或作为阵列的一部分,来进行指令提取。
47、根据权利要求46的一个计算机系统,其特征在于:指明方式类型为“局部”的指令使处理器接收该执令并执行该程序流,犹如他们不属于任何处理器组。
48、根据权利要求46的一个计算机系统,其特征在于:指明为“阵列”方式的指令能以多种方式与处理器组中的其他处理器共同操作。
49、根据权利要求46的一个计算机系统,其特征在于:对于“阵列”型指令,当该指令为装入(LOAD)工存储(STORE)时,它产生一个地址用作进入处理器互连网络的地址,而该处理器将暂停,甚至由该地址指定的处理器执行一条相反指令(对“存储”执行“装入”,对“装入”执行“存储”)并将执行存储指令的处理器的数据传送给执行装入指令的处理器。
50、根据权利要求46的一个计算机系统,其特征在于:处于阵列方式的一个处理器执行一条变换方式指令会使控制处理器之外的其他处理器在遇到这条指令时暂停,并使用该指令提供的地址作为回送给控制处理器的一个关键值,该控制处理器可能执行一个带有与那关键值匹配的“地址”的变换,从而使其他处理器脱离暂停状态并恢复跟踪控制处理器的指令。
51、根据权利要求1的一个计算机系统,其特征在于:操作手段的结构使可改变的处理器子集合能从MIMD方式跳入SIMD方式,然后,在程序列执行过程中原来为SIMD的处理器组内有可能(potentally)再返回MIMD方式。
52、根据权利要求51的一个计算机系统,其特征在于:当一个处理器集合在执行SIMD方式时其他处理器能保持其独立的MIMD方式。
53、根据权利要求1的一个计算机系统,其特征在于:利用互连网络传送广播信息,并将一个处理器组内的多个处理器子集合互连起来,从而使各处理器能在选择的基础上实现SIMD和MIMD操作,某些处理器运行SIMD而其他处理器运行MIMD。
54、根据权利要求1的一个计算机系统,其特征在于包括一个动态变换多级网络用于处理器互连,其中无阻塞转接选择路径选择处理器能作为一个主连系统的一部分被建立起来,允许在网络上选择具有所需资源的各种处理器组,并用它们运行能利用应用程序所需SIMD和MIMD优点的程序。
55、根据权利要求1的一个计算机系统,其特征在于:不只一个处理器能指定本身或被指定为该计算机系统处理器组中选定处理器的控制处理器,允许动态轮流作为控制处理器。
56、根据要求要求1的一个计算机系统,其特征在于:能由软件从网络的处理器动态地选出一个路径(route)处理器,在逐条指令基础上控制该路径控制处理器是哪一个。
57、根据权利要求1的一个计算机系统,其特征在于通过一个异步网络将系统的处理器的指令寄存器互连,使控制处理器能通过该互连网络指令传送到经由所述网络耦合的其他处理器指令寄存器。
58、根据权利要求1的一个计算机系统,其特征在于对每个处理器提供一个端口,通过这一端口传送一条指令,指令系统的每个节点处理器是否提取它们自己的指令或等待来自控制处理器的广播。
59、根据权利要求1的一个计算机系统,其特征在于:对不贩处理器能由软件完成通过互连网络指定控制处理器的动态轮流,这将允许由软件控制系统中哪一个处理器作为控制处理器,使任何处理器能在一个时刻以SIMD方式运行,这里,在所述时刻一个处理器作为控制器,而其后系统中另外某个处理器可能作为控制器,允许多个处理器向多个子集合广播,以提供在同一物理硬件运行的SIMD机器的多种任意组合,并且以相同的硬件也能运行MIMD处理。
60、根据权利要求1的一个计算机系统,其特征在于:如果一条指令标志为并行“阵列”指令,则处理单元直接执行这条指令,而且同一指令流也能在控制处理器中完成局部计算。
61、根据权利要求1的一个计算机系统,其特征在于处理器能通过执行带有MIMD方式值的动态变换方式指令使处理器释放回独立的MIMD方式。
62、根据权利要求1的一个计算机系统,其特征在于:每个处理器能独立操作且能在各方式间动态变换,允许在指令级周期处于SIMD方式的处理器去执行一个处理进程,然后以一条指令释放回MIMD方式,在这种方式执行该处理进程的每个处理器执行一条与其本身有关的路径,当所有这些处理器已完成有关路径执行时,它们被转换到SIMD方式。
63、根据权利要求1的一个计算机系统,其特征在于:每个处理器具有迅速变换成MIMD方式和从MIMD方式变换成其他方式的能力,甚至对固有的顺序计算在控制处理机上变换成SIMD方式的能力,这种能力使程序员或编译器为计算机系统建立的程序使用对应用程序最有意义的最佳并行操作类型SISD、SIMD、MIMD)。
64、根据权利要求1的一个计算机系统,其特征在于每个处理器能以同样的资源操作,而且在SIMD方式操作的所有处理器能在MIMD方式下操作。
65、根据权利要求1的一个计算机系统,其特征在于每个处理顺有一个“局部”和“阵列”指令执行设置。
66、根据权利要求1的一个计算机系统,其特征在于:当系统有一组处理器设置于SIMD方式操作时,一个特殊的控制处理器能进行指令提取,该指令能直接送到该组中其他每个处理器,如果该指令标记为一条并行指令,则所有这些处理器直接执行该指令。
67、根据权利要求1的一个计算机系统,其特征在于:当系统使程序的同一指令流能在一个主处理器上完成局部计算并在下一个周期使用其结果时,可由所有处理单元执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US79878891A | 1991-11-27 | 1991-11-27 | |
US07/798,788 | 1991-11-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1072788A true CN1072788A (zh) | 1993-06-02 |
CN1044646C CN1044646C (zh) | 1999-08-11 |
Family
ID=25174278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN92111552A Expired - Lifetime CN1044646C (zh) | 1991-11-27 | 1992-10-20 | 动态多方式并行处理器阵列体系结构 |
Country Status (9)
Country | Link |
---|---|
US (1) | US5475856A (zh) |
EP (1) | EP0544127B1 (zh) |
JP (1) | JP2647315B2 (zh) |
KR (1) | KR970008529B1 (zh) |
CN (1) | CN1044646C (zh) |
AT (1) | ATE177547T1 (zh) |
CA (1) | CA2073516A1 (zh) |
DE (1) | DE69228586T2 (zh) |
MX (1) | MX9206864A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100380312C (zh) * | 1995-08-31 | 2008-04-09 | 英特尔公司 | 在分组数据上操作的指令集 |
CN100461093C (zh) * | 1995-08-31 | 2009-02-11 | 英特尔公司 | 在分组数据上执行乘-加运算的方法、处理器、设备和系统 |
CN101482811A (zh) * | 2008-01-09 | 2009-07-15 | 模拟装置公司 | 用于增强的计算能力的处理器体系结构 |
CN103106175A (zh) * | 2013-01-23 | 2013-05-15 | 杭州士兰微电子股份有限公司 | 基于共享寄存器和流水处理的处理器阵列 |
CN103221918A (zh) * | 2010-11-18 | 2013-07-24 | 德克萨斯仪器股份有限公司 | 上下文切换方法和装置 |
CN104011663A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 掩码寄存器上的广播操作 |
CN104885061A (zh) * | 2013-01-21 | 2015-09-02 | 日产自动车株式会社 | 排他控制检查装置、排他控制检查方法、排他控制检查程序 |
CN104951358A (zh) * | 2014-03-27 | 2015-09-30 | 英特尔公司 | 基于优先级的上下文抢占 |
CN111512296A (zh) * | 2017-12-13 | 2020-08-07 | 弗索拉公司 | 处理器架构 |
Families Citing this family (261)
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 | 並列データ処理システム |
EP0681236B1 (en) * | 1994-05-05 | 2000-11-22 | Conexant Systems, Inc. | Space vector data path |
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 |
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 |
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 |
US5838563A (en) * | 1996-04-12 | 1998-11-17 | Fisher-Rosemont Systems, Inc. | System for configuring a process control environment |
US5768119A (en) * | 1996-04-12 | 1998-06-16 | Fisher-Rosemount Systems, Inc. | Process control system including alarm priority adjustment |
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 |
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 |
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 |
US5940294A (en) * | 1996-04-12 | 1999-08-17 | Fisher-Rosemont Systems, Inc. | System for assisting configuring a process control environment |
US6868538B1 (en) * | 1996-04-12 | 2005-03-15 | Fisher-Rosemount Systems, Inc. | Object-oriented programmable controller |
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 |
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 |
US5801942A (en) * | 1996-04-12 | 1998-09-01 | Fisher-Rosemount Systems, Inc. | Process control system user interface including selection of multiple control languages |
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 |
DE19654593A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit |
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 |
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.) |
DE59710317D1 (de) | 1996-12-27 | 2003-07-24 | 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.) |
DE19704728A1 (de) | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
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 |
WO1999021080A2 (en) * | 1997-10-21 | 1999-04-29 | Koninklijke Philips Electronics N.V. | Signal processing device and method of planning connections between processors in a signal processing device |
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 |
US7966475B2 (en) | 1999-04-09 | 2011-06-21 | Rambus Inc. | Parallel data processing apparatus |
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 |
US8762691B2 (en) * | 1999-04-09 | 2014-06-24 | Rambus Inc. | Memory access consolidation for SIMD processing elements using transaction identifiers |
US20080007562A1 (en) * | 1999-04-09 | 2008-01-10 | Dave Stuttard | Parallel data processing apparatus |
US20070294510A1 (en) * | 1999-04-09 | 2007-12-20 | Dave Stuttard | Parallel data processing apparatus |
US7627736B2 (en) | 1999-04-09 | 2009-12-01 | Clearspeed Technology Plc | Thread manager to control an array of processing elements |
WO2000062182A2 (en) * | 1999-04-09 | 2000-10-19 | Clearspeed Technology Limited | Parallel data processing apparatus |
US20080016318A1 (en) * | 1999-04-09 | 2008-01-17 | Dave Stuttard | Parallel data processing apparatus |
US7506136B2 (en) * | 1999-04-09 | 2009-03-17 | Clearspeed Technology Plc | Parallel data processing apparatus |
US7802079B2 (en) | 1999-04-09 | 2010-09-21 | Clearspeed Technology Limited | Parallel data processing apparatus |
US20080008393A1 (en) * | 1999-04-09 | 2008-01-10 | Dave Stuttard | Parallel data processing apparatus |
US8174530B2 (en) | 1999-04-09 | 2012-05-08 | Rambus Inc. | Parallel date processing apparatus |
US20080184017A1 (en) * | 1999-04-09 | 2008-07-31 | Dave Stuttard | Parallel data processing apparatus |
GB2348984B (en) * | 1999-04-09 | 2004-05-12 | Pixelfusion Ltd | Parallel data processing systems |
US7526630B2 (en) | 1999-04-09 | 2009-04-28 | Clearspeed Technology, Plc | Parallel data processing apparatus |
GB2348981A (en) * | 1999-04-09 | 2000-10-18 | Pixelfusion Ltd | Parallel data processing system with SIMD array |
US8169440B2 (en) * | 1999-04-09 | 2012-05-01 | Rambus Inc. | Parallel data processing apparatus |
WO2000070531A2 (en) | 1999-05-17 | 2000-11-23 | The Foxboro Company | Methods and apparatus for control configuration |
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 |
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 |
US6640313B1 (en) * | 1999-12-21 | 2003-10-28 | Intel Corporation | Microprocessor with high-reliability operating mode |
US6625749B1 (en) * | 1999-12-21 | 2003-09-23 | Intel Corporation | Firmware mechanism for correcting soft errors |
US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability 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 |
US6584522B1 (en) | 1999-12-30 | 2003-06-24 | Intel Corporation | Communication between processors |
US7480706B1 (en) | 1999-12-30 | 2009-01-20 | Intel Corporation | Multi-threaded round-robin receive for fast network port |
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 |
US6766437B1 (en) * | 2000-02-28 | 2004-07-20 | International Business Machines Corporation | Composite uniprocessor |
US6643763B1 (en) | 2000-02-28 | 2003-11-04 | International Business Machines Corporation | Register pipe for multi-processing engine environment |
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 |
JP2004506261A (ja) | 2000-06-13 | 2004-02-26 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | パイプラインctプロトコルおよびct通信 |
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積和演算方法、積和演算回路、および、半導体集積回路装置 |
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 |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US7210129B2 (en) | 2001-08-16 | 2007-04-24 | Pact Xpp Technologies Ag | Method for translating programs for reconfigurable architectures |
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 |
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 |
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 |
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 |
US7657877B2 (en) | 2001-06-20 | 2010-02-02 | Pact Xpp Technologies Ag | Method for processing data |
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 |
US8412915B2 (en) | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational 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 |
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 |
AU2002221570A1 (en) * | 2001-12-13 | 2003-06-23 | Synergestic Computing Systems Aps | Heterogeneous synergetic computing system |
US7403981B2 (en) * | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
WO2003060747A2 (de) | 2002-01-19 | 2003-07-24 | Pact Xpp Technologies Ag | Reconfigurierbarer prozessor |
EP2043000B1 (de) | 2002-02-18 | 2011-12-21 | Richter, Thomas | Bussysteme und Rekonfigurationsverfahren |
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 |
US20030217054A1 (en) | 2002-04-15 | 2003-11-20 | Bachman George E. | Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution |
US7660984B1 (en) | 2003-05-13 | 2010-02-09 | Quicksilver Technology | Method and system for achieving individualized protected space in an operating system |
US7328414B1 (en) | 2003-05-13 | 2008-02-05 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
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 |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
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 |
US7394284B2 (en) | 2002-09-06 | 2008-07-01 | 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 |
US7788465B2 (en) * | 2002-12-30 | 2010-08-31 | Silicon Hive B.V. | Processing system including a reconfigurable channel infrastructure comprising a control chain with combination elements for each processing element and a programmable switch between each pair of neighboring processing elements for efficient clustering of processing elements |
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 |
EP1676208A2 (en) | 2003-08-28 | 2006-07-05 | PACT XPP Technologies AG | Data processing device and method |
US20080074428A1 (en) | 2003-11-19 | 2008-03-27 | Reuven Bakalash | Method of rendering pixel-composited images for a graphics-based application running on a computing system embodying a multi-mode parallel graphics rendering system |
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 |
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 |
EP1687732A4 (en) * | 2003-11-19 | 2008-11-19 | Lucid Information Technology Ltd | METHOD AND SYSTEM FOR A MULTIPLEXED 3D GRAPHIC PIPELINE VIA A PC BUS |
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 |
US7812844B2 (en) | 2004-01-28 | 2010-10-12 | Lucid Information Technology, Ltd. | PC-based computing system employing a silicon chip having a routing unit and a control unit for parallelizing multiple GPU-driven pipeline cores according to the object division mode of parallel operation during the running of a graphics application |
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 |
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 |
US20050273559A1 (en) | 2004-05-19 | 2005-12-08 | Aris Aristodemou | Microprocessor architecture including unified cache debug unit |
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 |
JP4211751B2 (ja) * | 2005-03-25 | 2009-01-21 | セイコーエプソン株式会社 | 集積回路装置 |
US7904695B2 (en) | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous power saving computer |
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 |
US7877584B2 (en) | 2005-08-29 | 2011-01-25 | The Invention Science Fund I, Llc | Predictive processor resource management |
US7774558B2 (en) | 2005-08-29 | 2010-08-10 | The Invention Science Fund I, Inc | Multiprocessor resource optimization |
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 |
US7512842B2 (en) * | 2005-08-29 | 2009-03-31 | Searete Llc | Multi-voltage synchronous systems |
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 |
US7647487B2 (en) * | 2005-08-29 | 2010-01-12 | Searete, Llc | Instruction-associated processor resource optimization |
US8516300B2 (en) | 2005-08-29 | 2013-08-20 | The Invention Science Fund I, Llc | Multi-votage synchronous systems |
US7627739B2 (en) * | 2005-08-29 | 2009-12-01 | Searete, Llc | Optimization of a hardware resource shared by a multiprocessor |
US7739524B2 (en) * | 2005-08-29 | 2010-06-15 | The Invention Science Fund I, Inc | Power consumption management |
US8423824B2 (en) | 2005-08-29 | 2013-04-16 | The Invention Science Fund I, Llc | Power sparing synchronous apparatus |
US8375247B2 (en) * | 2005-08-29 | 2013-02-12 | The Invention Science Fund I, Llc | Handling processor computational errors |
US8209524B2 (en) * | 2005-08-29 | 2012-06-26 | The Invention Science Fund I, Llc | Cross-architecture 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 |
US8255745B2 (en) | 2005-08-29 | 2012-08-28 | The Invention Science Fund I, Llc | Hardware-error tolerant computing |
US8214191B2 (en) | 2005-08-29 | 2012-07-03 | The Invention Science Fund I, Llc | Cross-architecture execution optimization |
JP5017971B2 (ja) * | 2005-09-07 | 2012-09-05 | ソニー株式会社 | 集積装置 |
WO2007049150A2 (en) | 2005-09-28 | 2007-05-03 | Arc International (Uk) Limited | Architecture for microprocessor-based systems including simd processing unit and associated systems and methods |
US8250503B2 (en) | 2006-01-18 | 2012-08-21 | Martin Vorbach | Hardware definition method including determining whether to implement a function as hardware or software |
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 |
WO2007123753A2 (en) | 2006-03-30 | 2007-11-01 | 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 |
WO2008024661A1 (en) * | 2006-08-20 | 2008-02-28 | Ambric, Inc. | Processor having multiple instruction sources and execution modes |
EP2056212B1 (en) | 2006-08-23 | 2013-04-10 | NEC Corporation | Mixed mode parallel processor system and method |
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 | 浪潮电子信息产业股份有限公司 | 一种双翼可扩展多处理器紧耦合共享存储器体系结构 |
CN104407518B (zh) | 2008-06-20 | 2017-05-31 | 因文西斯系统公司 | 对用于过程控制的实际和仿真设施进行交互的系统和方法 |
US8732716B2 (en) | 2008-09-30 | 2014-05-20 | International Business Machines Corporation | Virtualization across physical partitions of a multi-core processor (MCP) |
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 |
US8139668B2 (en) * | 2009-03-31 | 2012-03-20 | Mitsubishi Electric Research Laboratories, Inc. | Unified STTC encoder for WAVE transceivers |
US8463964B2 (en) | 2009-05-29 | 2013-06-11 | Invensys Systems, Inc. | Methods and apparatus for control configuration with enhanced change-tracking |
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 |
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 | 三菱電機株式会社 | 並列信号処理プロセッサ |
WO2012100316A1 (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 |
KR101978409B1 (ko) * | 2012-02-28 | 2019-05-14 | 삼성전자 주식회사 | 재구성가능 프로세서, 이를 위한 코드 변환 장치 및 방법 |
US9606803B2 (en) * | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
KR20160046331A (ko) * | 2013-08-19 | 2016-04-28 | 상하이 신하오 (브레이브칩스) 마이크로 일렉트로닉스 코. 엘티디. | 범용 유닛을 기반으로 하는 고성능 프로세스 시스템 및 방법 |
US9665372B2 (en) | 2014-05-12 | 2017-05-30 | International Business Machines Corporation | Parallel slice processor with dynamic instruction stream mapping |
US9672043B2 (en) | 2014-05-12 | 2017-06-06 | International Business Machines Corporation | Processing of multiple instruction streams in a parallel slice processor |
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 |
US10133581B2 (en) | 2015-01-13 | 2018-11-20 | International Business Machines Corporation | Linkable issue queue parallel execution slice for a 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 |
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 |
US11514294B2 (en) | 2017-02-24 | 2022-11-29 | Untether Ai Corporation | System and method for energy-efficient implementation of neural networks |
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 | 삼성전자주식회사 | 충전 집적 회로 및 이의 동작 방법 |
GB2607348A (en) | 2021-06-04 | 2022-12-07 | Advanced Risc Mach Ltd | Graphics processing |
GB2607350B (en) | 2021-06-04 | 2023-12-13 | Advanced Risc Mach Ltd | Graphics processing |
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 |
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 |
US4891787A (en) * | 1986-12-17 | 1990-01-02 | Massachusetts Institute Of Technology | Parallel processing system with processor array having SIMD/MIMD instruction processing |
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 |
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
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100461093C (zh) * | 1995-08-31 | 2009-02-11 | 英特尔公司 | 在分组数据上执行乘-加运算的方法、处理器、设备和系统 |
CN100380312C (zh) * | 1995-08-31 | 2008-04-09 | 英特尔公司 | 在分组数据上操作的指令集 |
CN101482811A (zh) * | 2008-01-09 | 2009-07-15 | 模拟装置公司 | 用于增强的计算能力的处理器体系结构 |
CN101482811B (zh) * | 2008-01-09 | 2014-01-22 | 美国亚德诺半导体公司 | 用于增强的计算能力的处理器体系结构 |
CN103221918A (zh) * | 2010-11-18 | 2013-07-24 | 德克萨斯仪器股份有限公司 | 上下文切换方法和装置 |
CN104011663A (zh) * | 2011-12-22 | 2014-08-27 | 英特尔公司 | 掩码寄存器上的广播操作 |
CN104011663B (zh) * | 2011-12-22 | 2018-01-26 | 英特尔公司 | 掩码寄存器上的广播操作 |
CN104885061B (zh) * | 2013-01-21 | 2016-11-09 | 日产自动车株式会社 | 排他控制检查装置、排他控制检查方法 |
CN104885061A (zh) * | 2013-01-21 | 2015-09-02 | 日产自动车株式会社 | 排他控制检查装置、排他控制检查方法、排他控制检查程序 |
CN103106175A (zh) * | 2013-01-23 | 2013-05-15 | 杭州士兰微电子股份有限公司 | 基于共享寄存器和流水处理的处理器阵列 |
CN103106175B (zh) * | 2013-01-23 | 2015-12-23 | 杭州士兰微电子股份有限公司 | 基于共享寄存器和流水处理的处理器阵列 |
CN104951358A (zh) * | 2014-03-27 | 2015-09-30 | 英特尔公司 | 基于优先级的上下文抢占 |
CN104951358B (zh) * | 2014-03-27 | 2019-01-22 | 英特尔公司 | 基于优先级的上下文抢占 |
CN111512296A (zh) * | 2017-12-13 | 2020-08-07 | 弗索拉公司 | 处理器架构 |
Also Published As
Publication number | Publication date |
---|---|
KR970008529B1 (en) | 1997-05-24 |
EP0544127B1 (en) | 1999-03-10 |
DE69228586T2 (de) | 1999-10-14 |
US5475856A (en) | 1995-12-12 |
CN1044646C (zh) | 1999-08-11 |
EP0544127A3 (en) | 1994-04-20 |
DE69228586D1 (de) | 1999-04-15 |
CA2073516A1 (en) | 1993-05-28 |
ATE177547T1 (de) | 1999-03-15 |
JP2647315B2 (ja) | 1997-08-27 |
MX9206864A (es) | 1993-05-01 |
JPH05233569A (ja) | 1993-09-10 |
EP0544127A2 (en) | 1993-06-02 |
KR930010758A (ko) | 1993-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1044646C (zh) | 动态多方式并行处理器阵列体系结构 | |
Abts et al. | Think fast: A tensor streaming processor (TSP) for accelerating deep learning workloads | |
CN109213723B (zh) | 一种用于数据流图处理的处理器、方法、设备、及一种非暂时性机器可读介质 | |
CN108268278B (zh) | 具有可配置空间加速器的处理器、方法和系统 | |
US10296488B2 (en) | Multi-processor with selectively interconnected memory units | |
CN1272705C (zh) | 包括纯量算术逻辑单元的单指令多数据处理机 | |
Veen | Dataflow machine architecture | |
JP6467743B2 (ja) | 汎用ユニットにもとづいた高性能プロセッサ・システムとその方法 | |
EP2336879B1 (en) | Methods and apparatus for dynamically merging an array controller with an array processing element | |
US8078839B2 (en) | Concurrent processing element system, and method | |
RU2427895C2 (ru) | Оптимизированная для потоков многопроцессорная архитектура | |
JPH03211656A (ja) | マルチプロセッサシステム | |
EP1148414B1 (en) | Method and apparatus for allocating functional units in a multithreaded VLIW processor | |
Sterling et al. | Gilgamesh: A multithreaded processor-in-memory architecture for petaflops computing | |
WO2006015868A2 (en) | Global memory system for a data processor comprising a plurality of processing elements | |
CN104823164A (zh) | 具有同步指令的处理系统 | |
EP2791789A2 (en) | Advanced processor architecture | |
Vick et al. | Adptable Architectures for Supersystems | |
Cowan et al. | Gc3: An optimizing compiler for gpu collective communication | |
US20090249028A1 (en) | Processor with internal raster of execution units | |
JPS62500750A (ja) | 命令フロ−コンピュ−タ | |
Shaw et al. | Performance of data-parallel primitives on the EM-4 dataflow parallel supercomputer | |
Siegel et al. | The PASM project: A study of reconfigurable parallel computing | |
JP2543306B2 (ja) | アレイ・プロセッサ | |
Foster | Computer architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C15 | Extension of patent right duration from 15 to 20 years for appl. with date before 31.12.1992 and still valid on 11.12.2001 (patent law change 1993) | ||
OR01 | Other related matters | ||
C17 | Cessation of patent right | ||
CX01 | Expiry of patent term |
Expiration termination date: 20121020 Granted publication date: 19990811 |