CN1392985A - 多处理器系统、数据处理系统、数据处理方法和计算机程序 - Google Patents

多处理器系统、数据处理系统、数据处理方法和计算机程序 Download PDF

Info

Publication number
CN1392985A
CN1392985A CN01802916A CN01802916A CN1392985A CN 1392985 A CN1392985 A CN 1392985A CN 01802916 A CN01802916 A CN 01802916A CN 01802916 A CN01802916 A CN 01802916A CN 1392985 A CN1392985 A CN 1392985A
Authority
CN
China
Prior art keywords
data
data processing
broadcast
processor
result
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
CN01802916A
Other languages
English (en)
Other versions
CN1258154C (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of CN1392985A publication Critical patent/CN1392985A/zh
Application granted granted Critical
Publication of CN1258154C publication Critical patent/CN1258154C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)
  • Hardware Redundancy (AREA)

Abstract

一种多处理器系统包括许多执行数据处理的单元处理器和用于将广播数据播送到许多单元处理器的BCMC。广播数据包括在数据处理中使用的数据。许多单元处理器中的每一个单元处理器都在从BCMC所播送的广播数据中只挑选出它执行数据处理所需要的数据之后执行数据处理。BCMC可以从所有单元处理器中获取数据处理结果,并将它们作为广播数据提供给所有单元处理器,以使数据处理的结果可以以很高的速度在单元处理器之间传送和接收。这样,整个系统便可以执行高速的数据处理。

Description

多处理器系统、数据处理系统、 数据处理方法和计算机程序
技术领域
本发明涉及一种由许多数据处理装置(例如,多处理器系统)执行数据处理的数据处理系统以及一种数据处理方法。
背景技术
由于当今的社会是高度信息化的社会,需要采用诸如计算机之类的数据处理装置执行的数据处理量也变得越来越多。而且,数据处理过程也变得复杂和高度发达。通常,可以通过改善诸如CPU(中央处理单元)的性能或将许多处理器组合起来作为一个多处理器使用以改善整个数据处理装置的处理能力。
然而,最近几年,所要求的数据处理能力改善速度已经超过了处理器的性能所能达到的改善速度。由于开发周期较长,在短时期内无法获得处理器性能方面的改善。
另一方面,诸如多处理器之类的数据处理能力取决于要使用的处理器的数量和处理的方式,而单个处理器的性能改善变得不那么重要了。为此,这是改善数据处理装置的处理能力的有用手段之一。
根据在数据处理期间单个处理器所需要的数据范围,可以将多处理器进行数据处理的方式进行如下分类:
(1)执行数据处理的处理器只使用它所连接的相邻处理器所处理的数据。
这种控制适合于单元自动操作、图像过滤器、布或波的动作的计算、从一个曲面生成一个多边形的计算等等。
(2)执行数据处理的处理器使用所有处理器所处理的数据。
这种控制适合于关联的内存、诸如四色问题、旅行推销员问题、辐射度、群集、多链路模拟、学习等的优化。
(3)执行数据处理的处理器只使用许多处理器中的某些处理器所处理的数据。
这种控制适合于自组装计算、基于可视化决定的组算法、多对多碰撞检测、数据库搜索、连续曲面的生成/变形、生成的动画、逆向运动学等。
在上述情况(1)中,数据处理可以通过传统的并行处理器来有效地实现。然而,在上述情况(2)和(3)中,整个系统的处理速度会受到并行处理器之间的通信速度的限制,因此每个处理器的性能都无法充分发挥出来。例如,借助于所有处理器之间的一个纵横连接,便可以在(2)和(3)两种情况下进行高速数据处理。但是这种方法由于涉及大量的硬件而不切实际。
本发明的一个目标是提供各种多处理器系统、一种数据处理系统、一种数据处理方法、一种计算机程序和一种半导体设备。
发明内容
为了解决上述问题,本发明提供下面所描述的各种多处理器系统、一种数据处理系统、一种数据处理方法、一种计算机程序和一种半导体设备。
第一种多处理器系统包括许多执行数据处理的处理器和一个用于将广播数据播送到许多处理器的控制器,广播数据包括在进行数据处理过程中使用的数据,其特征在于:许多处理器中每一个处理器都在从控制器所播出的广播数据中只挑选出那些它执行数据处理所需要的数据之后再执行数据处理。
在这样的多处理器系统中,每个处理器都在从播送的数据中只挑选出它需要的数据之后再执行数据处理,以便可以实现高速处理,而不会出现任何数据冲突。
当每个处理器被允许使用或引用其他处理器进行处理所得的结果时,控制器被配置为从许多处理器中获取数据处理的结果,并将所获得的处理结果作为广播数据播送到所有处理器。
优选情况下,许多处理器中每一个处理器都可以得到一个用于标识其本身的标识数据,并且控制器被配置为产生和播送广播数据,该广播数据除了包括处理结果外还包括主发处理器的标识数据。基于标识数据,每个处理器都可以轻松地挑选出它在后面的时间内执行数据处理所需要的处理结果。标识数据还允许每个处理器都能轻松地知道哪一个处理器发送了所广播的处理结果。
当已经完成了数据处理的许多处理器之间可能出现冲突时,多处理器系统被配置为带有一个排序机制,该排序机制从许多处理器中已经完成数据处理的那个处理器中获取标识数据,并将所获取的标识数据按预先确定的顺序发送到该控制器。该控制器被配置为基于从排序机制收到的标识数据来获取处理的结果。在这种情况下,还进一步提供一个用于生成优先级数据的装置,该优先级数据用于确定控制器读取处理结果的顺序。经配置,已经完成了数据处理的处理器向排序机制发送有关处理的优先级数据以及其自己的标识数据。排序机制被配置为基于优先级数据确定发送标识数据的顺序。
例如,当为整个多处理器系统给出处理顺序时,该排序机制允许控制器按所需要的顺序获取处理结果,并在整个系统中有效地执行复杂的处理。
该排序机制包括与处理器数量相同的寄存器,在与主发处理器相关的寄存器中用于记录从主发处理器发出的优先级数据和标识数据的装置,以及一个比较器用于比较优先级数据以确定在各自的寄存器中记录的标识数据的顺序。排序机制被配置为基于比较器获取的比较结果确定发送标识数据的顺序。
第一种多处理器系统中的控制器包括:例如,用于存储数据的存储器、用于从处理器中获取处理结果的存储控制装置,上述处理器是由从排序机制中收到的标识数据来指定,以便在存储器中存储获取的结果,以及数据生成装置,该装置读取存储在存储器中的处理结果并生成广播数据,上述广播数据包括处理结果和收到的标识数据,因此可以实现多处理器系统。
更具体来讲,每个处理器都包括一个数据处理机制,用于确定它执行的数据处理所需要的数据是否包括在广播数据中,如果包括,那么就在只挑选出必需的数据之后进行数据处理,每个处理器还包括一个为响应控制器的请求将数据处理机制执行完的数据处理结果以及其自己的标识数据发送到控制器的装置,还包括一个为响应数据处理结束将处理结束通知数据发送到排序机制的装置,处理结束通知数据包括其自己的标识数据,因此可以实现多处理器系统。
第二种多处理器系统包括许多处理器,其中每个处理器都持有模板数据,用于与它收到的输入数据进行比较,还包括一个控制器,用于将输入数据播送到许多处理器,还包括一个比较机制,用于比较许多处理器的各自的输出。给定处理器所持有的模板数据不同于其余处理器所持有的模板数据。许多处理器中每一个处理器都计算控制器所播送的输入数据的特征和它持有的模板数据的特征之间的差值,并将一对数据发送到比较机制,这一对数据包括所计算出的差值以及用于标识其本身的标识数据。比较机制基于从各自的处理器收到的差值选择其中一个差值,并将与选中的差值配对的标识数据发送到控制器。控制器基于从比较机制中收到的标识数据从许多处理器中指定一个处理器。
因此,以上述方式配置的多处理器系统可以以很高的速度确定数据的相似性。
第三种多处理器系统包括执行数据处理的许多处理器,一个用于将在数据处理中要使用的数据播送到许多处理器的控制器,以及一个用于计算由许多处理器执行的数据处理的结果的总和的求和电路。许多处理器中每一个处理器都在从控制器所播送的数据中只挑选出它执行处理所需要的数据之后执行数据处理,并将处理的结果发送到求和电路。求和电路计算从各个处理器发出的处理结果的总和,并将计算结果发送到控制器。控制器将从求和电路收到的处理结果的总和播送到许多处理器。
在规范化计算(例如神经优化)中常常需要数据处理结果的总和。计算出的总和可以播送到单个处理器。因此,以上述方式配置的多处理器系统可以以很高的速度执行处理。
上述多处理器系统可以一个一个地分别配置,以便至少其中有一些处理器通过共享内存采用环形拓扑彼此相互连接,并且数据在通过共享内存以环形拓扑连接的处理器之间传送和接收。
本发明提供的数据处理方法是这样一种方法:该方法由这样一个装置或系统执行,该装置或系统包括许多数据处理装置,并包括一个用于控制各个数据处理装置的操作的控制装置,其中每一个数据处理装置都进行数据处理,该方法包括下列步骤:控制装置以预先确定的顺序从已经完成数据处理的处理器中获取结果,以产生广播数据,并将广播数据播送到许多数据处理装置,其中广播数据包括获得的处理结果和用于标识主发数据处理装置的标识数据;许多数据处理装置中至少有一个数据处理装置在根据广播数据中包括的标识数据从那些从控制装置收到的广播数据中只挑选出那些指定的处理结果之后进行数据处理,以将处理结果以及标识其本身的标识数据发送到控制装置。
本发明提供的第一种数据处理系统包括许多执行数据处理的数据处理装置,用于播送广播数据的控制装置,其中广播数据包括从一些或所有数据处理装置收到的数据处理结果,以及在至少一个数据处理装置执行的数据处理中使用的数据,其特征在于:许多数据处理装置中每一个数据处理装置都在从由控制装置播送的广播数据中只挑选出它执行数据处理所需要的数据之后执行数据处理,并将处理结果发送到控制装置。
第二种数据处理系统是这样一个系统:该系统在许多数据处理装置之间执行双向通信,其中每一个数据处理装置都执行数据处理,数据处理系统包括用于至少指定一个数据处理装置并产生广播数据的装置,广播数据包括所指定的数据处理装置的标识信息和用于进行数据处理的数据,用于数据处理的数据被定向到所指定的数据处理装置,用于从一些或所有数据处理装置中获取由关联的数据处理装置执行的数据处理结果的装置,用于将接收到的处理结果添加到广播数据以将它们播送到每一个数据处理装置中的装置。
本发明提供的计算机程序是在具有计算机的装置中使用的计算机程序,该装置用于在执行数据处理的许多数据处理装置之间执行双向通信,计算机程序使计算机执行下列功能。本发明提供的半导体设备是集成到具有计算机的装置中的一个半导体设备,该装置用于在执行数据处理的许多数据处理装置之间执行双向通信,半导体设备使计算机执行下列功能。
具体来说,这些功能是:
(1)至少指定一个数据处理装置并产生广播数据,广播数据包括所指定的数据处理装置的标识信息和用于进行数据处理的数据,用于进行数据处理的数据被定向到所指定的数据处理装置;
(2)从一些或所有数据处理装置中获取由关联的数据处理装置执行的数据处理的结果;以及
(3)将接收到的处理结果添加到广播数据中以将广播数据播送到每一个数据处理装置中。
附图说明
图1是一个说明应用了本发明的多处理器系统的配置示例的视图;
图2是一个说明根据本发明的BCMC的配置示例的视图;
图3是一个说明根据本发明的一个单元处理器的配置示例的视图;
图4是一个说明根据本发明的一个WTA/求和电路的配置示例的视图;
图5是一个流程图,它说明根据本实施例的多处理器系统执行的处理的流程;
图6是一个原理图,说明根据本发明如何使用相邻处理器的数据处理的结果;
图7是一个原理图,说明根据本发明如何使用一些处理器的数据处理的结果;
图8是一个视图,说明了根据本发明组合格点数据的示例;
图9是一个视图,说明了根据本发明物体被分成群的示例;以及
图10是一个流程图,说明了根据本发明的碰撞检测算法的处理的流程。
具体实施方式
下面将参照附图对本发明的实施例进行具体介绍。
下面将介绍一个实施例,在该实施例中,在一种多处理器系统中应用了本发明,该多处理器系统是一个数据处理系统示例。
<整体配置>
图1是一个说明一种多处理器系统的配置示例的视图。该多处理器系统1包括一个广播内存控制器(在下文中称为BCMC)10,该控制器是用于处理、记录和读取数据的控制装置,许多单元处理器20,其中每一个处理器都是一个数据处理装置的示例,许多WTA(赢者通吃)/求和电路30,用于实现进行数据处理所需要的各种功能。
BCMC 10通过广播通道(一种通信信道,通过它信息可以同时传播到多个接收方)连接到所有单元处理器20。
该多处理器系统1在BCMC 10中管理状态变量值,该值是由单元处理器20获取的数据处理结果的一个示例。它还作为参考数值的一个示例从BCMC 10中播送所有单元处理器20的状态变量值。这样,每一个单元处理器20便可以以很高的速度引用由其他单元处理器20产生的状态变量值。
广播通道是BCMC 10和许多单元处理器20之间的传输路径,并包括一个用于传输地址的地址总线和用于传输数据(如状态变量值)的数据总线。地址包括一个用于指定每个单元处理器20的单元地址和所有单元处理器20的广播地址。
单元地址对应于内存上的地址(物理地址或逻辑地址),从单元处理器20发出的状态变量值放入内存中的一个地址,该地址对应于表示每一个单元处理器20的单元地址。每一个单元处理器20被分配有一个ID(标识)作为用于标识它本身的标识信息。单元地址还对应于ID。有了单元地址,便可以指出哪一个单元处理器20发送了状态变量值。
WTA/求和电路30按如图1所示的方法连接。更具体来讲,WTA/求和电路30连接成一个金字塔形状,单元处理器20的一侧位于第一级。第一级中的每一个WTA/求和电路30的输入终端连接到两个单元处理器20,而它的输出终端连接到位于第二级的WTA/求和电路30的输入终端。
在第二级和以后各级,输入终端连接到下一个较低一级上的两个WTA/求和电路30中每一个WTA/求和电路30的输出终端,而每一个输出终端又连接到下一个较高一级上的WTA/求和电路30的输入终端。至于最高一级上的WTA/求和电路30,它的输入终端连接到下一个较低一级上的两个WTA/求和电路30中每一个WTA/求和电路30的输出终端,而它的输出终端连接到BCMC 10。
除了该图中说明的连接外,本发明也可以通过层叠式WTA/求和电路30来实现。在这种情况下,第一级中的每一个WTA/求和电路30的输入终端连接到两个单元处理器20,而它的输出终端连接到位于下一个较高一级的输入终端。第二级和以后各级中的每一个WTA/求和电路30的输入终端连接到下一个较低一级上的WTA/求和电路30的输出终端和一个单元处理器,而它的输出终端连接到位于下一个较高一级的输入终端。至于最高一级上的WTA/求和电路30,它的输入终端连接到下一个较低一级上的WTA/求和电路30的输出终端和一个单元处理器20,而它的输出终端连接到BCMC 10。
接下来,本文将分别详细介绍BCMC 10、单元处理器20和WTA/求和电路30。
<BCMC>
BCMC 10通过广播通道向所有单元处理器20播送数据,并从单元处理器20获取状态变量值并加以保存。图2说明了BCMC 10的一个配置示例。
BCMC 10包括一个CPU核心101,该CPU核心可控制多处理器系统1,可重写的主内存102(如SRAM,静态随机存取存储器),和一个DMAC(直接内存访问控制器)103的全部操作,所有的这些都通过一个总线B1彼此连接。CPU核心101是一个将要安装在计算机上的半导体设备,该设备与主内存102合作读取并执行一个预先确定的程序,以提供用于执行本发明所特有的数据处理的功能。主内存102用作整个系统的共享内存。
总线B1连接到位于最高一级上的WTA/求和电路30的输出终端并连接到诸如硬盘和可移动媒体之类的外存。
CPU核心101在启动时从外存加载引导程序,并执行引导程序以调用操作系统。它还从外存读取进行数据处理所需要的各种数据并将它们展开到主内存102中。诸如单元处理器20的状态变量值之类的数据将存储在主内存102中。状态变量值将放入主内存中的一个地址,该地址对应于已经计算出其自己的状态变量值的单元处理器20的单元地址。
CPU核心101基于从主内存102读取的数据产生要播送到每一个单元处理器20的广播数据。广播数据是一对数据,它包括(例如)一个状态变量值以及一个表示已经计算出该状态变量值的单元处理器20的单元地址。在这种情况下,一对或许多对数据会产生。
DMAC 103是一个半导体设备,它在主内存102和每一个单元处理器20之间执行直接内存访问传输控制。例如,DMAC 103将广播数据通过广播通道播送到单元处理器20。它从每一个单元处理器20分别获取数据处理结果并将结果写入到主内存102。
<单元处理器>
每一个单元处理器20都在从广播数据中挑选出需要的数据之后执行数据处理,并在数据处理结束时通知WTA/求和电路30说明处理已经结束。每一个单元处理器20都响应来自BCMC 10的指令将状态变量值(它是数据处理结果)发送到BCMC 10。单元处理器20通过共享内存(未显示)以环形拓扑彼此连接。单元处理器20可以同步执行它们的数据处理。或者,单元处理器20也可以异步执行它们的数据处理。图3显示了单元处理器20的配置示例。
单元处理器20包括了一个单元CPU 201、一个输入缓冲区202、一个输出缓冲区203、一个WTA缓冲区204、一个程序控制器205、一个指令内存206和一个数据内存207。
单元CPU 201是一个处理器,它具有一个可编程的浮点计算器,并控制本地单元处理器20执行数据处理的操作。单元CPU 201通过输入缓冲区202获取将要从BCMC 10播送出去的广播数据。然后,单元CPU 201基于配对的数据的单元地址确定所获取的广播数据是否为单元CPU 201应执行的处理所需要的那些广播数据。必要时单元CPU 201将状态变量值写入到数据内存207的对应地址。此外,单元CPU 201从数据内存207中读取状态变量值并执行数据处理。然后,单元CPU 201将数据处理结果写入到输出缓冲区203,并将表示数据处理结束的数据发送到WTA/求和电路30。
输入缓冲区202用于保存将要从BCMC 10播送出去的广播数据。为响应来自单元CPU 201的请求,所持有的广播数据将要发送到单元CPU 201。
输出缓冲区203用于保存单元CPU 201的状态变量值。为响应来自BCMC 10的请求,所持有的状态变量值将要发送到BCMC 10。
除了进行上述操作外,输入缓冲区202和输出缓冲区203还可以传送和接收用于控制的数据。
WTA缓冲区204在单元CPU 201执行的数据处理结束时从单元CPU 201接收表示数据处理结束的数据。然后,WTA缓冲区204将接收到的数据传送到WTA/求和电路30以通知WTA/求和电路30说明数据处理已经结束。表示数据处理结束的数据包括(例如)本地单元处理器20的ID以及用于确定优先级的优先级数据。当输出缓冲区203中的状态变量值被读出到BCMC 10时,便需要优先级数据。
程序控制器205用于从BCMC 10获取一个定义单元处理器20的操作的程序。定义单元处理器20的操作的程序包括一个单元处理器20执行的数据处理所使用的程序,以及一个用于确定该单元处理器20执行的处理所需要的数据的数据选择程序。该程序还包括一个优先级确定程序,用于确定优先级,该优先级是将处理结果读出到BCMC 10时所需要的。
指令内存206用于存储程序控制器205所获取的程序。在必要时,存储的程序被读取到单元CPU 201。
数据内存207用于存储单元处理器20将要进行处理的数据。被确定由单元CPU 201所需要的广播数据将写入到该数据内存207中。广播数据存储在数据内存207中对应于单元地址的地址。
此外,根据本实施例,数据内存207的一部分通过共享内存连接到相邻的单元处理器20。这样,便可以在每一周期内在相邻的单元处理器20之间传送和接收数据。
<WTA/求和电路>
每一个WTA/求和电路30都基于从每一个单元处理器20发出的表示数据处理结束的数据确定BCMC 10从单元处理器20中捕获状态变量值所依据的顺序,并将它报告到BCMC 10。
图4说明了WTA/求和电路30的配置示例。
每一个WTA/求和电路30都包括了两个输入寄存器A和B(在下文中,称为第一个输入寄存器301和第二个输入寄存器302),一个选择器开关303,一个比较器304,一个加法器305,以及一个输出寄存器306。
第一个输入寄存器301和第二个输入寄存器302都有一个整数寄存器和一个浮点寄存器。在从每一个单元处理器20发出的表示数据处理结束的数据中,ID将被写入到整数寄存器(例如),而优先级数据将被写入到浮点寄存器。
选择器开关303将激活比较器304或者加法器305。更具体来讲,选择器开关303根据操作模式只启用它们其中之一。操作模式由(例如)发自BCMC 10的指令来决定。稍后我们将对操作模式作详细介绍。
比较器304将第一个输入寄存器301和第二个输入寄存器302的浮点寄存器所持有的浮点值进行比较。比较器304将较大的(或较小的)值和其关联的整数写入到输出寄存器306中。
加法器305计算第一个输入寄存器301和第二个输入寄存器302的浮点寄存器所持有的浮点值的总和,并将计算结果写入到输出寄存器306中。
输出寄存器306的配置本质上与第一个输入寄存器301和第二个输入寄存器302相同。具体来说,输出寄存器306包括整数寄存器和浮点寄存器。ID将被写入到整数寄存器,优先级数据将被写入到浮点寄存器。
WTA/求和电路30有三个操作模式,如下文所述。
最大值(WTA)模式:
比较器304由选择器开关303触发。比较器304将第一个输入寄存器301和第二个输入寄存器302的浮点寄存器所持有的浮点值A和B进行比较。比较器304将较大的(或较小的)值和其关联的整数写入到输出寄存器306中。在写入到输出寄存器306的操作完成时,第一个输入寄存器301和第二个输入寄存器302被清除。输出寄存器306的内容将要写入到位于下一个较高一级的WTA/求和电路30的输入寄存器中。在这个时候,如果作为一个写入目标的输入寄存器未被清除,那么写入就会停止,在此周期不执行写入。为此,输出寄存器306的内容将在下一个周期写入。
加法模式:
加法器305由选择器开关303触发。加法器305计算第一个输入寄存器301和第二个输入寄存器302的浮点寄存器所持有的浮点值A和B的总和。然后,加法器305将计算结果写入到输出寄存器306。输出寄存器306的内容将要写入到位于下一个较高一级的WTA/求和电路30的输入寄存器中。
近似排序模式:
比较器304由选择器开关303触发。比较器304将第一个输入寄存器301和第二个输入寄存器302的浮点寄存器所持有的浮点值A和B进行比较。比较器304将较大的(或较小的)值和其关联的整数写入到输出寄存器306中。
此后,只有持有了写入到输出寄存器306的值的输入寄存器被清除。输出寄存器306的内容将要写入到位于下一个较高一级的WTA/求和电路30的输入寄存器中。如果作为一个写入目标的输入寄存器未被清除,那么写入就会停止,在此周期不执行写入。请注意,写入操作是从位于下一个较低一级的WTA/求和电路30的输出寄存器306中执行的。
按照近似排序模式,BCMC 10从位于最高一级的WTA/求和电路30收到的数据是按照浮点值的升序或降序来排序的。
此外,第一个输入寄存器301、第二个输入寄存器302,以及所有WTA/求和电路30的输出寄存器306在启动每一个模式之前将被清除。
更改模式使得许多WTA/求和电路30在总体上作为一个排序机制和/或求和电路运行。换句话说,在近似排序模式下的操作实现排序机制,在加法模式下的操作实现求和电路。
在最大值模式和近似排序模式下运行的WTA/求和电路30可以按如下方式实现:
也就是说,除了选择器开关、比较器、加法器和输出寄存器外,WTA/求和电路30还包括与单元处理器20数量相同的输入寄存器。
本实施例提供了与单元处理器20数量相同的输入寄存器。每个输入寄存器都包括一个整数寄存器和一个浮点寄存器,与第一个寄存器301和第二个寄存器302中都一样。比较器将所有输入寄存器的浮点寄存器所持有的浮点值进行比较。加法器计算所有浮点寄存器所持有的浮点值的总和。输出寄存器与图4中的WTA/求和30的输出寄存器相同。
比较器将各个输入寄存器的浮点寄存器所持有的优先级数据进行比较,并按优先级的降序将关联的ID写入到输出寄存器。这样,便可以按优先级的降序将ID发送到BCMC 10。
加法器将浮点寄存器所持有的数据相加,从而得出总和。
这种WTA/求和电路单独充当本发明的排序机制和求和电路,没有任何连接,如图1所示。
<数据处理方法>
本实施例的多处理器系统1执行所需要的数据处理时执行下面的操作。图5是一个流程图,它说明此多处理器系统1执行的处理的流程。
在BCMC 10的主内存102中,所有单元处理器20的状态变量值的初始值都预先存储。
BCMC 10使用一对数据产生广播数据,包括给定单元处理器20的状态变量值和该单元处理器20的单元地址(步骤S101)。然后,BCMC 10将产生的广播数据播送到所有单元处理器20(步骤S102)。
每个单元处理器20都将广播数据放到输入缓冲区202中。单元CPU 201通过使用存储在指令内存206中的数据选择程序查找输入缓冲区202所持有的广播数据的单元地址,并确定是否有本地单元处理器20执行的数据处理所需要的状态变量值(步骤S103)。当没有本地单元处理器20执行数据处理所需要的状态变量值时,单元处理器20便完成了处理操作(步骤S103:否)。当有本地单元处理器20执行数据处理所需要的状态变量值(步骤S103:是)时,单元处理器20就用对应的状态变量值改写与此状态变量值配对的单元地址对应的数据内存207上的地址(步骤S104)。
这样,从BCMC 10中将数据播送到每个单元处理器20的过程便已完成。
当播送过程完成之后,每个单元处理器20都使用存储在指令内存206中的数据处理程序,对记录在数据内存207上的状态变量值执行数据处理,产生一个新的状态变量值。新的状态变量值将被写入到数据内存207中,也写入到输出缓冲区203(步骤S105)中。然后,每个单元处理器20都用新的状态变量值改写数据内存207上对应于其单元地址的地址。
当数据处理完成之后,单元CPU 201将包括ID和优先级数据的结束数据通过WTA缓冲区204传送到位于第一级的WTA/求和电路30的输入寄存器,以说明数据处理已经结束(步骤S106)。优先级数据是根据给定的优先级确定程序在数据处理之前或之后产生的。
与从单元处理器20发出的结束数据相关联,位于第一级的WTA/求和电路30在输入寄存器的整数寄存器中存放ID,在浮点寄存器中存放优先级数据。在这种情况下,WTA/求和电路30在近似排序模式下运行。为此,选择器开关303将激活比较器304。
WTA/求和电路30的第一个输入寄存器301和第二个输入寄存器302的整数寄存器中存放了不同的单元处理器20发出的ID。每一个浮点寄存器都存放了与ID关联的优先级数据。比较器304从第一个输入寄存器301和第二个输入寄存器302的浮点寄存器中读取优先级数据,并将它们进行比较。作为比较结果,比较器304将较高优先级的数据和它们对应的ID分别写入到输出寄存器306的浮点寄存器和整数寄存器中。其内容被写入到输出寄存器306的输入寄存器将被清除。写入到输出寄存器306的ID和优先级数据将被写入到位于下一个较高一级的WTA/求和电路30的输入寄存器中。
上述处理由WTA/求和电路在每一级执行。位于最高一级的WTA/求和电路30将写入到输出寄存器306的整数寄存器的ID发送到BCMC 10。
WTA/求和电路30作为一个整体按照上述处理方法以优先级降序将ID发送到BCMC 10(步骤S107)。
BCMC 10从单元处理器20的输出缓冲区203中获取已经经过数据处理的状态变量值,单元处理器20对应于从WTA/求和电路30发出的ID。对应于表示已经执行了处理的单元处理器20的单元地址的地址被改写为所获取的状态变量值(步骤S108)。
这样,处理状态变量值的操作的一个周期就已完成。
BCMC 10从每一个单元处理器20中获取数据处理结果,从而产生广播数据。
每一个单元处理器20都在从广播数据中只挑选出它所需要的数据之后执行数据处理。对广播数据的处理允许使用由所有其他单元处理器20处理的数据进行数据处理。此外,BCMC 10还从数据对中产生广播数据,该数据对包括从每一个单元处理器20发出的数据处理结果和表示已经产生数据处理结果的单元处理器20的单元地址。这样,便可以通过只使用从特定的单元处理器20发出的数据处理结果执行处理。此外,由于相邻的单元处理器20通过共享内存彼此连接,因此可以按照现有技术在相邻的单元处理器20之间执行处理。
每一个单元处理器20都从广播数据中挑选出所需要的数据,而不是直接从主内存102获取它所需要的数据。单元处理器20在执行处理的同时还在本地存放数据,这样便可以进行高速处理,而不会造成任何数据冲突。
[第一个实施例]
下面将具体介绍上述多处理器系统1的第一个实施例。
在本实施例中,我们将参照图6介绍一个示例,在该图中,只使用了某单元处理器20和与它相邻的单元处理器20处理的数据。
在图6中,白圈表示单元处理器,带阴影的圈表示将执行数据处理的单元处理器,而黑圈表示存放了所需要的数据的单元处理器。
假设对于有关n×n个格子(n是一个2或更大的自然数)中每一个格点的数据(格点数据)连续地执行下面的过滤计算:
Xi,j=(Xi-1,j+Xi+1,j+Xi,j-1+Xi,j+1)/4
其中i:格点的行数,j:格点的列数。
BCMC 10将行或列上的格点数据作为广播数据组合起来,并将它们播送到n个单元处理器20。
图8是一个视图,说明了已经过分组的格点数据,其中由白圈表示的五个格点数据分为一组。一个组中的格点数据由一个单元处理器20来进行处理。
单元处理器20将所需要的广播数据的格点数据存储在数据内存207中。然后,它按顺序从数据内存207中读取格点数据,并执行数据处理。
通过共享内存连接的单元处理器20之间的数据传输使用共享内存来执行。假设将数据写入到共享内存的操作为一个周期,那么在单元处理器20之间分组数据的传输可以在2n个周期内完成。
单元处理器20同步地运行以同时执行对共享内存的写入操作和计算,好像在管道处理中一样,从而使单元处理器20之间的通信和计算同时进行。
每次对分组格点数据的数据处理完成之后,BCMC 10都将播送后续的广播数据。单元处理器20使用播送的数据的i和j来确定它是否需要那些数据。
通过将广播数据分组,可以按行或列的方向处理数据,借助于通过共享数据的数据传输,可以实现按行或列的方向的数据处理。
[第二个实施例]
本实施例参照图7介绍一个示例,在该示例中只使用了由一些单元处理器20处理的数据。在图7中,白圈表示单元处理器,带阴影的圈表示将执行数据处理的单元处理器,而黑图表示存放了所需要的数据的单元处理器。这种多处理器系统对于实现Hopfield相联存储器特别有用。
假设每一个单元处理器20都存放了一个状态变量值,该值是数据处理的结果,还有一个表示状态变量数据的重要性的权重因数。此外,每一个单元处理器20都带有一个号码,BCMC 10按照号码的顺序从所有单元处理器20中获取状态变量值。
BCMC 10将从所有单元处理器20中获取的状态变量值作为广播数据播送出去。每一个单元处理器20都只从广播数据中选择必需的状态变量值。然后,它用权重因数执行乘积求和操作并更新状态变量值。在包括在广播数据中的所有状态变量值都是需要的数据的情况下,处理是一个使用所有处理器的处理的数据的过程。
[第三个实施例]
接下来,我们将介绍一个模式匹配计算处理的示例。
这里执行的是指定持有与输入数据的特征最相似的这种数据的单元处理器20的处理过程。该处理过程的执行方式如下:
每一个单元处理器20都预先持有要比较的模板数据。
BCMC 10将输入数据播送到所有单元处理器20。每一个单元处理器20都计算它持有的模板数据的特征和输入数据的特征之间的差值。差值将与ID一起被发送到WTA/求和电路30。
WTA/求和电路30在最大值模式下运行。输入寄存器的整数寄存器存放ID,它的浮点寄存器存放差值。比较器304将单元处理器20计算出的差值进行比较,并将较小的差值以及其关联的ID发送到输出寄存器306。此处理过程通过整个WTA/求和电路30执行,以获取最小的差值以及其关联的ID。所获取的ID和差值将被发送到BCMC 10。
BCMC 10基于ID指定单元处理器20。这样,便可以检测到与输入数据的特征最相似的模板数据,并检测出最相似的模板数据和输入数据之间的差值。
[第四个实施例]
下文将介绍一个基于用于检测移动物体的碰撞的算法的处理过程示例,该算法在图像处理中使用。“碰撞检测算法”是这样一个算法,该算法确定某一个空间中的n个物体是否与其他物体相碰撞,并确定在发生碰撞的情况下会产生多大的强度。
假设n个物体的空间分布有一些变化,并且假设物体被分成m个群。例如,在此处确定(n-1)个物体中哪一个与给定物体的碰撞最强烈。
图9是一个视图,说明在这样一个空间中的物体,在该空间中由白圈表示的物体被一个矩形所包围,从而形成了一个群。在图9中,物体被分成五个群。表示物体的数据一个群一个群地从BCMC 10播送出去,并到达单元处理器20。单元处理器20执行包括在一个获取的群中的物体在空间中的位置和移动的处理过程。
在图9的示例中,单元处理器A到E执行有关被分成五个群的物体的处理过程。
下面将参照图10介绍针对碰撞检测算法的处理流程。
BCMC 10产生包括物体数据和群数据的广播数据,物体数据具有有关物体的位置和速度的数据,而群数据表示对应的物体所属的群。然后BCMC 10将它们播送到所有单元处理器20(步骤S201)。每一个单元处理器20都基于群数据从广播数据中挑选和获取物体数据。
获取了物体数据的单元处理器20在一个单位时间之后从有关物体的当前位置和速度的数据中计算出新的位置数据。单元处理器20从新的位置数据求出一个新的边界框的值(步骤S202)。边界框是指(例如)围绕物体的一个矩形,如图9所示。边界框的值(例如)是边界框的顶点的坐标。
BCMC 10从每一个单元处理器20获取物体的新的位置数据并更新位置数据(步骤S203)。
接下来,BCMC 10将包括所获取的新的位置数据等等的物体数据一个接一个地播送到所有单元处理器20(步骤S204)。也就是说,BCMC 10将表示一个物体的位置的位置数据发送到所有单元处理器20,该物体将充当要进行碰撞检测的目标(在下文中称为“要检测的物体”)。
通过使用由步骤S202计算出的边界框,每一个单元处理器20都首先确定是否存在发生碰撞要检测的物体的可能性(步骤S205)。更具体来讲,单元处理器20确定要检测的物体是否位于边界框内。
在可能与要检测的物体发生碰撞的情况下,即,要检测的物体位于边界框内(步骤S205:是),单元处理器20按顺序计算要检测的物体和边界框中的由该单元处理器处理的其他物体之间的距离(步骤S206),并确定是否将发生碰撞(步骤S207)。在要检测的物体与边界框中的其他物体碰撞的情况下(步骤S207:是),单元处理器20产生碰撞数据,该数据包括从数量角度表示的由碰撞引起的冲击强度的数据(碰撞强度数据)的数据,还包括碰撞对要检测的物体的影响的数据(步骤S208)。此外,单元处理器20将所产生的碰撞数据中的碰撞强度数据与其ID一起发送到WTA/求和电路30。
当要检测的物体位于边界框之外时(步骤S205:否),或者当通过计算距离之后认为要检测的物体不会与任何物体碰撞时(步骤S207:否),每一个单元处理器20将“-1.0”(例如)作为碰撞强度数据发送到WTA/求和电路30(步骤S210)。
WTA/求和电路30在最大值模式下运行。WTA/求和电路30比较从单元处理器20发出的碰撞强度数据,并确定表示由碰撞引起的冲击的最大强度的碰撞强度数据(步骤S211)。然后,WTA/求和电路30将指定单元处理器20已经产生了正在讨论的碰撞强度数据。之后,WTA/求和电路30将表示所指定的单元处理器20的ID发送到BCMC 10。
BCMC 10从位于最高一级的WTA/求和电路30发出的ID所指定的单元处理器20中获取碰撞数据(步骤S212)。通过处理并在对所有物体执行步骤204之后,该空间中的所有物体之间的碰撞都会被确定出来。
[第五个实施例]
接下来,本文将介绍使用了WTA/求和电路30的加法器305的情况。
每一个单元处理器20都将数据处理结果提供到WTA/求和电路30。在WTA/求和电路30中,加法器305将数据处理结果相加并求出所有单元处理器20中的数据处理结果的总和。这样,WTA/求和电路30可以以很高的速度求出数据处理结果的总和。
数据处理结果的总和将要发送到BCMC 10,接着以很高的速度传送到所有单元处理器20。数据处理结果的总和常常用于正常化计算(例如神经优化)中。
在上述说明中,BCMC 10和WTA/求和电路30彼此是独立的,但WTA/求和电路30可以作为一个单独的模块集成到BCMC 10中以配置成一个控制器。
需要注意的是,上述例子已经与数据处理装置是单元处理器20并且控制装置是控制器(BCMC 10)的情况一起介绍过了。但是,本发明的配置组件不仅限于上述示例中介绍的这些情况。
例如,下面的配置也可以应用。两个或多个数据处理终端彼此以这样的方式连接,以便可以通过广域网提供双向通信。在这些数据处理终端中,一个或多个数据处理终端作为控制装置运行,其余的数据处理终端作为数据处理装置运行。控制装置具有一个播送广播数据的功能,广播数据包括从一些或所有数据处理装置中收到的数据处理结果,并且包括至少一个数据处理装置执行的数据处理需要使用的数据。许多数据处理装置中每一个数据处理装置都具有这样的功能:该功能在从控制装置所播送的广播数据中只挑选出它执行数据处理所需要的数据之后执行数据处理。它还有一个将处理结果传送到控制装置的功能。
或者,下面的配置也可以应用。有许多一般用途的数据处理终端,它们能够指定预先确定的标识信息(例如,上述标识数据),并用作数据处理装置。然后,数据处理系统可以配置为只有一个服务器,该服务器能够与这些一般用途的数据处理终端执行双向通信,或者配置有一个装置,该装置具有一个半导体设备,该设备中具有CPU和内存。
关于这种情况下的服务器或装置,里面的CPU加载并执行给定的计算机程序。这就会向服务器主体或装置提供下面的功能。一个功能是至少将一个数据处理终端指定为数据处理装置并产生广播数据,广播数据包括被指定的数据处理终端的标识信息,并包括被定向到数据处理终端的数据处理数据。另外一个功能是从一些或所有数据处理终端中获取这些数据处理终端执行完之后的数据处理结果。还有一个功能是将接收到的处理结果添加到广播数据中,并将广播数据播送到每一个数据处理终端中。
如上所述的本发明可以在使用了许多数据处理装置的情况下有效地在数据处理装置之间执行数据处理。
在不违背本发明的实质和范围的情况下,可以实现各种实施例、更改和修改。上面所介绍的实施例只作说明,并不限制本发明的范围。本发明的范围由所附的权利要求书定义而不是由这里的实施例定义。在所附的权利要求书的范围内的各种实施例和它们的同等情况都在本
发明的范围内。

Claims (18)

1.一种多处理器系统,该系统包括:
许多执行数据处理的处理器;以及
一种用于向所述许多处理器播送广播数据的控制器,广播数据包括在数据处理中使用的数据,其特征在于:
每一个所述处理器都在从所述控制器所播送的所述广播数据中只挑选出它执行处理所需要的数据之后执行数据处理。
2.根据权利要求1的多处理器系统,其特征在于:所述控制器用于从已经完成数据处理的处理器中获取处理结果,并将所获得的处理结果作为所述广播数据播送到所有处理器。
3.根据权利要求1的多处理器系统,其特征在于:所述许多处理器中每一个处理器都分配有标识数据用于标识其本身,
所述控制器用于产生和播送广播数据,该广播数据除了所述处理结果外还包括主发处理器的标识数据,以及
所述许多处理器,基于在接收到的广播数据中包括的所述标识数据,挑选出它们在后面的时间内执行数据处理所需要的处理结果。
4.根据权利要求3的多处理器系统,进一步包括一个排序机制,该排序机制从所述许多处理器中的已经完成数据处理的处理器获取标识数据,并将所获取的标识数据按预先确定的顺序发送到所述控制器,其特征在于,
所述控制器被配置为基于从所述排序机制收到的标识数据来获取所述处理结果。
5.根据权利要求4的多处理器系统,进一步包括用于产生优先级数据的装置,优先级数据用于确定所述控制器读取所述处理结果的顺序,其特征在于,
已经完成了数据处理的处理器向所述排序机制发送有关处理的所述优先级数据以及其自己的标识数据,以及
所述排序机制被配置为基于所述优先级数据确定发送所述标识数据的顺序。
6.根据权利要求5的多处理器系统,其特征在于:所述排序机制包括与所述处理器数量相同的寄存器,
在与发送处理器关联的所述寄存器中,用于记录从发送处理器发出的所述优先级数据和所述标识数据的装置,以及
一个比较器,用于比较所述优先级数据,以确定在各个寄存器中记录的标识数据的顺序,
所述排序机制被配置为基于所述比较器获取的比较结果来确定发送所述标识数据的顺序。
7.根据权利要求4的多处理器系统,其特征在于:所述控制器包括用于存储数据的存储器,一个存储控制装置,用于在从所述排序机制中收到的标识数据所指定的处理器中获取所述处理结果,以便将获得的结果存储在所述存储器中,以及
数据产生装置,该装置读取在所述存储器中存储的所述处理结果,并产生所述广播数据,广播数据包括所述处理结果和接收到的标识数据。
8.根据权利要求4的多处理器系统,其特征在于:每一个处理器都包括一个数据处理机制,用于确定它执行数据处理所需要的数据是否包括在所述广播数据中,如果包括的话,在只挑选出所述需要的数据之后执行数据处理,
为响应来自所述控制器的请求,向所述控制器发送所述数据处理机制所执行的数据处理的结果以及其自己的标识数据的装置,以及
为响应数据处理结束,向所述排序机制发送处理结束通知数据的装置,处理结束通知数据包括其自己的标识数据。
9.一种多处理器系统,该系统包括:
许多处理器,其中每个处理器都持有模板数据,以便与它接收到的输入数据进行比较;
一个用于向所述许多处理器播送所述输入数据的控制器;以及
一个用于比较所述许多处理器的各自输出的比较机制,其特征在于,
给定处理器所持有的模板数据不同于其余处理器所持有的模板数据,
所述每一个处理器都计算所述控制器所播送的输入数据的特征和它持有的模板数据的特征之间的差值,并将一对数据发送到所述比较机制,所述数据对包括所计算出的差值以及用于标识其本身的标识数据,
所述比较机制基于从各自的处理器收到的所述差值选择其中一个差值,并将与选中的差值配对的标识数据发送到所述控制器,
所述控制器基于从所述比较机制中收到的标识数据从所述许多处理器中指定一个处理器。
10.一种多处理器系统,该系统包括:
执行数据处理的许多处理器;一个用于将在数据处理中要使用的数据播送到所述许多处理器的控制器;以及一个用于计算由所述许多处理器执行的数据处理的结果的总和的求和电路,其特征在于,
所述每一个处理器都在从所述控制器所播送的数据中只挑选出它执行处理所需要的数据之后执行数据处理,并将处理的结果发送到所述求和电路,
所述求和电路计算从各个处理器发出的处理结果的总和,并将计算结果发送到所述控制器,以及
所述控制器将从所述求和电路收到的处理结果的总和播送到所述许多处理器。
11.根据权利要求1的多处理器系统,其特征在于:所述许多处理器中至少有一些处理器通过共享内存采用环形拓扑彼此相互连接,并且数据在通过共享内存以环形拓扑连接的处理器之间传送和接收。
12.根据权利要求9的多处理器系统,其特征在于:所述许多处理器中至少有一些处理器通过共享内存采用环形拓扑彼此相互连接,并且数据在通过所述共享内存以环形拓扑连接的处理器之间传送和接收。
13.根据权利要求10的多处理器系统,其特征在于:所述许多处理器中至少有一些处理器通过共享内存采用环形拓扑彼此相互连接,并且数据在通过所述共享内存以环形拓扑连接的处理器之间传送和接收。
14.一种数据处理方法,该方法由这样一个装置或系统执行,该装置或系统包括许多数据处理装置,并包括一个用于控制所述许多数据处理装置中每一个装置的操作的控制装置,其中每一个数据处理装置都执行数据处理,所述方法包括下列步骤:
所述控制装置按预先确定的顺序从已经完成数据处理的处理器中获取数据处理结果,以产生广播数据,并将广播数据播送到所述许多数据处理装置,广播数据包括所获取的处理结果和用于标识发送处理装置的标识数据;以及
许多数据处理装置中至少有一个数据处理装置在从控制装置中收到的广播数据中只选择那些根据广播数据中包括的标识数据指定的处理结果之后执行数据处理,以将处理结果以及表示其本身的标识数据发送到所述控制装置。
15.一种数据处理系统,该系统包括:
许多执行数据处理的数据处理装置;以及
一个用于播送广播数据的控制装置,广播数据包括从所述许多数据处理装置中的一些或所有装置中收到的数据处理结果以及在所述数据处理装置中至少一个装置执行的数据处理中使用的数据,其特征在于,
所述每一个数据处理装置都在从所述控制装置所播送的所述广播数据中只挑选出它执行数据处理所需要的数据之后执行数据处理,并将数据处理结果发送到所述控制装置。
17.一种数据处理系统,该系统在许多数据处理装置之间执行双向通信,其中每一个数据处理装置都执行数据处理,所述数据处理系统包括:
一个装置,该装置至少指定一个数据处理装置并产生广播数据,广播数据包括所述指定的数据处理装置的标识信息和用于进行数据处理的数据,用于进行数据处理的数据被定向到所指定的数据处理装置;
一个装置,该装置用于从所述许多数据处理装置中的一些或所有数据处理装置中获取由关联的数据处理装置执行的数据处理的结果;以及
一个装置,该装置用于将接收到的处理结果添加到所述广播数据中以将所述广播数据播送到所述许多数据处理装置中的每一个数据处理装置。
18.在具有计算机的装置中使用的计算机程序,该装置用于在执行数据处理的许多数据处理装置之间执行双向通信,计算机程序使计算机执行下列功能:
(1)至少指定一个数据处理装置并产生广播数据,广播数据包括所述指定的数据处理装置的标识信息和用于进行数据处理的数据,用于进行数据处理的数据被定向到所指定的数据处理装置;
(2)从所述许多数据处理装置中的一些或所有数据处理装置中获取由关联的数据处理装置执行的数据处理的结果;以及
(3)将接收到的处理结果添加到所述广播数据中以将所述广播数据播送到所述许多数据处理装置中的每一个数据处理装置。
16.一个半导体设备,该半导体设备集成到一个具有计算机的装置中,该装置用于在执行数据处理的许多数据处理装置之间执行双向通信,半导体设备使所述计算机执行下列功能:
(1)至少指定一个数据处理装置并产生广播数据,广播数据包括所述指定的数据处理装置的标识信息和用于进行数据处理的数据,用于进行数据处理的数据被定向到所指定的数据处理装置;
(2)从所述许多数据处理装置中的一些或所有数据处理装置中获取由关联的数据处理装置执行的数据处理的结果;以及
(3)将接收到的处理结果添加到所述广播数据中以将所述广播数据播送到所述许多数据处理装置中的每一个数据处理装置。
CNB018029167A 2000-09-27 2001-09-27 多处理器系统、数据处理系统和数据处理方法 Expired - Fee Related CN1258154C (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2000294732 2000-09-27
JP294732/00 2000-09-27
JP294732/2000 2000-09-27
JP289588/01 2001-09-21
JP2001289588A JP3426223B2 (ja) 2000-09-27 2001-09-21 マルチプロセッサシステム、データ処理システム、データ処理方法、コンピュータプログラム
JP289588/2001 2001-09-21

Publications (2)

Publication Number Publication Date
CN1392985A true CN1392985A (zh) 2003-01-22
CN1258154C CN1258154C (zh) 2006-05-31

Family

ID=26600866

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018029167A Expired - Fee Related CN1258154C (zh) 2000-09-27 2001-09-27 多处理器系统、数据处理系统和数据处理方法

Country Status (10)

Country Link
US (1) US7017158B2 (zh)
EP (1) EP1324209B1 (zh)
JP (1) JP3426223B2 (zh)
KR (1) KR100866730B1 (zh)
CN (1) CN1258154C (zh)
AT (1) ATE500556T1 (zh)
AU (1) AU2001292269A1 (zh)
DE (1) DE60144155D1 (zh)
TW (1) TWI229265B (zh)
WO (1) WO2002027513A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306371A (zh) * 2011-07-14 2012-01-04 华中科技大学 一种分层并行的模块化序列图像实时处理装置
CN110609804A (zh) * 2018-06-15 2019-12-24 瑞萨电子株式会社 半导体器件和控制半导体器件的方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6989843B2 (en) * 2000-06-29 2006-01-24 Sun Microsystems, Inc. Graphics system with an improved filtering adder tree
US8015567B2 (en) * 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US8037224B2 (en) 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US8176298B2 (en) 2002-10-08 2012-05-08 Netlogic Microsystems, Inc. Multi-core multi-threaded processing systems with instruction reordering in an in-order pipeline
US9088474B2 (en) 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US7346757B2 (en) * 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US8478811B2 (en) 2002-10-08 2013-07-02 Netlogic Microsystems, Inc. Advanced processor with credit based scheme for optimal packet flow in a multi-processor system on a chip
US20050120185A1 (en) * 2003-12-01 2005-06-02 Sony Computer Entertainment Inc. Methods and apparatus for efficient multi-tasking
JP4794194B2 (ja) * 2005-04-01 2011-10-19 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP4555145B2 (ja) * 2005-04-28 2010-09-29 富士通株式会社 バッチスケジューリングプログラム、バッチスケジューリング方法およびバッチスケジューリング装置
US7444525B2 (en) * 2005-05-25 2008-10-28 Sony Computer Entertainment Inc. Methods and apparatus for reducing leakage current in a disabled SOI circuit
US7970956B2 (en) * 2006-03-27 2011-06-28 Ati Technologies, Inc. Graphics-processing system and method of broadcasting write requests to multiple graphics devices
US9596324B2 (en) 2008-02-08 2017-03-14 Broadcom Corporation System and method for parsing and allocating a plurality of packets to processor core threads
JP5039950B2 (ja) 2008-03-21 2012-10-03 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム
US8131975B1 (en) 2008-07-07 2012-03-06 Ovics Matrix processor initialization systems and methods
US8327114B1 (en) 2008-07-07 2012-12-04 Ovics Matrix processor proxy systems and methods
US8145880B1 (en) 2008-07-07 2012-03-27 Ovics Matrix processor data switch routing systems and methods
US7958341B1 (en) 2008-07-07 2011-06-07 Ovics Processing stream instruction in IC of mesh connected matrix of processors containing pipeline coupled switch transferring messages over consecutive cycles from one link to another link or memory
US7870365B1 (en) 2008-07-07 2011-01-11 Ovics Matrix of processors with data stream instruction execution pipeline coupled to data switch linking to neighbor units by non-contentious command channel / data channel
CN101478785B (zh) * 2009-01-21 2010-08-04 华为技术有限公司 资源池管理系统及信号处理方法
JP4539889B2 (ja) * 2009-02-18 2010-09-08 日本電気株式会社 プロセッサ及びデータ収集方法
KR101651871B1 (ko) * 2009-12-28 2016-09-09 삼성전자주식회사 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
US8850262B2 (en) * 2010-10-12 2014-09-30 International Business Machines Corporation Inter-processor failure detection and recovery
KR101863605B1 (ko) 2011-09-19 2018-07-06 삼성전자주식회사 스트림 데이터를 고속으로 처리하는 프로세서
US20130081052A1 (en) * 2011-09-23 2013-03-28 Elwha LLC, a limited liability company of the State of Delaware Acquiring tasks and subtasks to be carried out by interface devices
US9710768B2 (en) 2011-09-23 2017-07-18 Elwha Llc Acquiring and transmitting event related tasks and subtasks to interface devices
CN106936994B (zh) 2017-03-10 2019-10-01 Oppo广东移动通信有限公司 一种广播接收者的控制方法、装置及移动终端
WO2020084693A1 (ja) * 2018-10-23 2020-04-30 富士通株式会社 演算処理装置及び演算処理装置の制御方法
CN111290697B (zh) * 2018-12-07 2022-01-28 上海寒武纪信息科技有限公司 数据压缩方法、编码电路和运算装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61283976A (ja) 1985-06-11 1986-12-13 Sanyo Electric Co Ltd パタ−ン認識装置
US4739476A (en) * 1985-08-01 1988-04-19 General Electric Company Local interconnection scheme for parallel processing architectures
JPH0247757A (ja) 1988-08-09 1990-02-16 Sanyo Electric Co Ltd 情報処理装置
JPH0814816B2 (ja) 1988-09-19 1996-02-14 富士通株式会社 並列計算機
DE68920388T2 (de) 1988-09-19 1995-05-11 Fujitsu Ltd Paralleles Rechnersystem mit Verwendung eines SIMD-Verfahrens.
DE69033434T2 (de) 1989-07-31 2000-08-03 Hitachi Ltd Datenverarbeitungssystem und Datenübertragungs- und -verarbeitungsverfahren
JP2850387B2 (ja) 1989-07-31 1999-01-27 株式会社日立製作所 データ伝送方式
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
US5511212A (en) * 1993-06-10 1996-04-23 Rockoff; Todd E. Multi-clock SIMD computer and instruction-cache-enhancement thereof
JPH0784966A (ja) 1993-08-06 1995-03-31 Toshiba Corp データ処理装置
US6516403B1 (en) * 1999-04-28 2003-02-04 Nec Corporation System for synchronizing use of critical sections by multiple processors using the corresponding flag bits in the communication registers and access control register

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306371A (zh) * 2011-07-14 2012-01-04 华中科技大学 一种分层并行的模块化序列图像实时处理装置
CN102306371B (zh) * 2011-07-14 2013-09-18 华中科技大学 一种分层并行的模块化序列图像实时处理装置
CN110609804A (zh) * 2018-06-15 2019-12-24 瑞萨电子株式会社 半导体器件和控制半导体器件的方法

Also Published As

Publication number Publication date
JP3426223B2 (ja) 2003-07-14
KR100866730B1 (ko) 2008-11-03
EP1324209A1 (en) 2003-07-02
JP2002175288A (ja) 2002-06-21
KR20020059430A (ko) 2002-07-12
CN1258154C (zh) 2006-05-31
TWI229265B (en) 2005-03-11
AU2001292269A1 (en) 2002-04-08
US7017158B2 (en) 2006-03-21
DE60144155D1 (de) 2011-04-14
ATE500556T1 (de) 2011-03-15
US20020059509A1 (en) 2002-05-16
WO2002027513A1 (fr) 2002-04-04
EP1324209A4 (en) 2008-12-17
EP1324209B1 (en) 2011-03-02

Similar Documents

Publication Publication Date Title
CN1258154C (zh) 多处理器系统、数据处理系统和数据处理方法
CN1249963C (zh) 使用分组摘要信息快速和自适应处理分组的设备和方法
US20180356803A1 (en) Method and system for batch scheduling uniform parallel machines with different capacities based on improved genetic algorithm
CN1152287C (zh) 二进制程序转换设备和转换方法
CN1897694A (zh) 活动对象跟踪系统、活动对象跟踪控制设备、方法和程序
CN1722130A (zh) 可重配置运算装置
CN1752934A (zh) 编译器、编译方法以及编译程序
CN1554042A (zh) 机器人系统控制
CN1179064A (zh) 动态矢量高速测算装置和动态矢量测算方法
CN1613058A (zh) 配有jit编译器的虚拟计算机,操作所述计算机的方法以及包括所述虚拟计算机的终端设备
CN1522417A (zh) 拾取图象管理装置及确定组名的方法
CN1178937A (zh) 控制输出的方法和装置
CN1019054B (zh) 并行相联存储器
CN1781093A (zh) 用于存储和访问互锁树数据仓库中的数据的系统和方法
CN1141666C (zh) 利用标准笔划识别输入字符的在线字符识别系统
CN1828632A (zh) 目标检测装置、学习装置、目标检测系统及目标检测方法
CN1117315C (zh) 微处理机及多处理机系统
CN1892636A (zh) 双模计算机处理器中索引式载入及储存操作的系统及方法
CN1282128C (zh) 图像处理装置及其方法
CN100341009C (zh) 在管线微处理器使用卷标以执行结合写入的装置及方法
CN1227624C (zh) 物体领域信息产生方法和设备
CN1564416A (zh) 基于协同进化的电力系统无功优化方法
CN1900910A (zh) 二进制翻译中经由跳转表的多目标分支语句的识别方法
CN1143213C (zh) 高速处理循环的编译器和处理器
CN1956005A (zh) 数据存取装置和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060531

Termination date: 20200927

CF01 Termination of patent right due to non-payment of annual fee