CN1072788A - 动态多方式并行处理器阵列体系结构的计算机系统 - Google Patents

动态多方式并行处理器阵列体系结构的计算机系统 Download PDF

Info

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
Application number
CN92111552A
Other languages
English (en)
Other versions
CN1044646C (zh
Inventor
彼得·迈克尔·科格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1072788A publication Critical patent/CN1072788A/zh
Application granted granted Critical
Publication of CN1044646C publication Critical patent/CN1044646C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/803Three-dimensional arrays or hypercubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3888Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B75/00Other engines
    • F02B75/02Engines characterised by their cycles, e.g. six-stroke
    • F02B2075/022Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
    • F02B2075/027Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle four

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • 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的一个计算机系统,其特征在于:当系统使程序的同一指令流能在一个主处理器上完成局部计算并在下一个周期使用其结果时,可由所有处理单元执行。
CN92111552A 1991-11-27 1992-10-20 动态多方式并行处理器阵列体系结构 Expired - Lifetime CN1044646C (zh)

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)

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

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590345A (en) 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
JPH04336378A (ja) * 1991-05-14 1992-11-24 Nec Corp 情報処理装置
JP3202074B2 (ja) * 1992-10-21 2001-08-27 富士通株式会社 並列ソート方式
JP3199205B2 (ja) * 1993-11-19 2001-08-13 株式会社日立製作所 並列演算装置
JP2550897B2 (ja) * 1993-11-29 1996-11-06 日本電気株式会社 マルチプロセッサシステムのバリア同期装置
JP2590045B2 (ja) * 1994-02-16 1997-03-12 日本アイ・ビー・エム株式会社 分散処理制御方法及び分散処理システム
JPH07234842A (ja) * 1994-02-22 1995-09-05 Fujitsu Ltd 並列データ処理システム
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754394A (en) * 1984-10-24 1988-06-28 International Business Machines Corporation Multiprocessing system having dynamically allocated local/global storage and including interleaving transformation circuit for transforming real addresses to corresponding absolute address of the storage
US5230079A (en) * 1986-09-18 1993-07-20 Digital Equipment Corporation Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register
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

Cited By (14)

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