WO2002027513A1 - Systeme multiprocesseurs, systeme de traitement de donnees, procede de traitement de donnees et programme d'ordinateur - Google Patents

Systeme multiprocesseurs, systeme de traitement de donnees, procede de traitement de donnees et programme d'ordinateur Download PDF

Info

Publication number
WO2002027513A1
WO2002027513A1 PCT/JP2001/008434 JP0108434W WO0227513A1 WO 2002027513 A1 WO2002027513 A1 WO 2002027513A1 JP 0108434 W JP0108434 W JP 0108434W WO 0227513 A1 WO0227513 A1 WO 0227513A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
data processing
processing
processors
broadcast
Prior art date
Application number
PCT/JP2001/008434
Other languages
English (en)
French (fr)
Inventor
Nobuo Sasaki
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.
Priority to AT01972530T priority Critical patent/ATE500556T1/de
Priority to DE60144155T priority patent/DE60144155D1/de
Priority to EP01972530A priority patent/EP1324209B1/en
Priority to AU2001292269A priority patent/AU2001292269A1/en
Publication of WO2002027513A1 publication Critical patent/WO2002027513A1/ja

Links

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

Definitions

  • the present invention relates to a data processing system for performing data processing by a plurality of data processing means, for example, a multiprocessor system and a data processing method.
  • the data processing capacity of a multiprocessor depends on the number of processors used and the processing method used, and the dependence on the performance of individual processors is small. For this reason, it is one of the effective means to improve the processing capacity of data processing equipment.
  • a processor that performs data processing uses only data processed by an adjacently connected processor-Such control is performed using a cell's automaton, an image filter, calculation of cloth and wave motion, It is suitable for calculating polygons from curved surfaces.
  • Processors that perform overnight processing use data processed by all processors
  • Such control is suitable for associative memory, optimization of four-color problems. Traveling-Sellsman problem, radiosity, clustering, multi-link simulation, learning, and so on.
  • the processor that performs the overnight processing uses only the overnight data processed by some of the processors.
  • Such control is suitable for self-organizing calculation, group algorithm based on visual judgment, many-to-many collision judgment, database search, continuous surface generation / deformation calculation, bone animation, inverse kinematics, etc. .
  • the data processing in the above case (1) can be efficiently realized by a conventional parallel processor.
  • the processing speed of the entire system is limited by the communication speed between the parallel processors, and the processing speed of each processor cannot be fully exhibited.
  • the processing speed of each processor cannot be fully exhibited.
  • by connecting all processors with a crossbar it is possible to perform the data processing of (2) and (3) at high speed, but in this case, the required hardware becomes enormous, is not.
  • An object of the present invention is to provide various multiprocessor systems, data processing systems, data processing methods, computer programs, and semiconductor devices. Disclosure of the invention
  • the present invention provides various multiprocessor systems, data processing systems, data processing methods, computer programs, and semiconductor devices as described below.
  • the first multiprocessor system includes a plurality of processors that perform data processing, and a controller that broadcasts broadcast data including data used for data processing to the plurality of processors.
  • Each of the plurality of processors performs data processing by selecting only data necessary for the overnight processing performed by itself from the broadcast data broadcasted by the controller.
  • each of the multiple processors selects only the data they need from the broadcast data and processes the data, so that no data contention occurs and the overall speed is high. Processing is realized.
  • the controller When enabling each processor to use the result of processing by another processor or to refer to the result of processing by another processor, the controller transmits the data from each of the plurality of processors.
  • the processing result of the evening process is obtained, and the obtained processing result is broadcast as the broadcast data.
  • identification data for identifying the processor is assigned to each of the plurality of processors, and the controller is configured to broadcast the processing result with the identification data of the processor from which the processing result is obtained.
  • a broadcast is generated, and the broadcast is broadcasted.
  • each processor can easily select a processing result necessary for data processing to be performed at the next timing based on the identification data.
  • the identification data allows each processor to easily know which processor is the result of the broadcast processing.
  • the multiprocessor further includes a sorting mechanism that acquires the identification data from each processor and sends the acquired identification data to the controller in a predetermined order. Configure the processor system. Then, the controller is configured to acquire the processing result based on the identification data received from the sorting mechanism. In this case, the controller further comprises means for generating priority data for determining the reading order of the processing results in the controller, The processor is configured to send the priority data about the processing together with its own identification data to the sorting mechanism, and the sorting mechanism changes the transmission order of the identification data based on the priority data. Configure to determine. By providing a sort mechanism, the controller can obtain processing results in the required order, for example, when the processing order is determined for the entire multi-processor system, and efficiently execute complex processing as a whole system become able to.
  • the sorting mechanism includes, for example, the same number of registers as the processors, means for recording the identification data and priority data sent from each processor in the registers corresponding to the processors, and A comparator for determining the order of the identification data by comparing the priority data with each other; and determining the transmission order of the identification data based on the determination result by the comparator.
  • the controller in the first multiprocessor system includes, for example, a data recording memory, and a recording control for acquiring the processing result from the processor specified by the identification data received from the sorting mechanism and recording the processing result in the memory. Means for reading out the processing result recorded in the memory and generating the broadcast data by including the processing result and the received identification data. It is.
  • each of the plurality of processors determines whether or not the broadcast data includes data necessary for data processing performed by itself, and includes the necessary data.
  • a data processing mechanism that performs data processing by selecting only the data when the data has been processed, and a processing result of the data performed by the data processing mechanism in response to a request from the controller and its own identification data.
  • Both means for sending to the controller and means for sending a processing end notification data including its own identification data to the sorting mechanism upon completion of data processing are realized. It is possible.
  • the second multiprocessor system includes a plurality of processors each holding template data to be compared with input data to be input, and a controller for broadcasting the input data to the plurality of processors. And a comparing mechanism for comparing outputs of the plurality of processors.
  • the template data held by the plurality of processors is different from the template data held by each of the other processors.
  • Each of the plurality of processors calculates a difference value between the feature of the input data broadcasted by the controller and the feature of the template data held by the processor, and identifies the calculated difference value and itself.
  • the pairing data is transmitted to the comparison mechanism, and the comparison mechanism selects any one of the difference values based on the difference values received from each of the plurality of port processors, and selects the selected difference value.
  • the controller sends identification data as a difference value and pair data to the controller, and the controller specifies one processor from among a plurality of processors based on the identification data received from the comparison mechanism. Is what you do.
  • the third multiprocessor system includes a plurality of processors that perform data processing, a controller that broadcasts data used for data processing to the plurality of processors, and a sum of data processing results by the plurality of processors. And a summation circuit.
  • Each of the plurality of processors performs data processing by selecting only data necessary for processing from the data broadcasted by the controller, and transmits a processing result to the summing circuit. Calculating the sum of the processing results transmitted from each of the plurality of processors and sending the calculated sum to the controller; and the controller broadcasting the sum of the processing results transmitted from the summing circuit to the plurality of processors. It is.
  • the sum of the data processing results is normalized Is often needed for The calculated sum may be broadcast and transmitted to each processor. With the multiprocessor system having the above configuration, these processes can be performed at high speed.
  • At least some of the plurality of processors are connected to each other via a shared memory via a ring, and data is transferred between the ring-connected processors via the shared memory. You may make it.
  • a data processing method provided by the present invention is executed in an apparatus or system having a plurality of data processing means for processing data, and a control means for controlling the operation of each of the data processing means. That is,
  • the control means acquires data processing results in a predetermined order from a data processor among the plurality of processors that have performed data processing, and the acquired processing results and identification data for identifying an acquisition source data processing means. Generating broadcast data including the following, and broadcasting the broadcast data to the plurality of data processing means;
  • At least one of the plurality of data processing means selects only a part of processing results specified based on the identification data included in the broadcast data received from the control means, and performs data processing. And transmitting the processing result to the control means together with the identification data representing itself.
  • a first data processing system comprises: a plurality of data processing means for performing data processing; a data processing result received from a part or all of the plurality of data processing means; and at least one of the data processing means And control means for broadcasting broadcast data including data used for data processing by the control means.
  • the data processing is performed by selecting only the data necessary for the data processing performed by itself, and the processing result is sent to the control means.
  • the second data processing system is a system that performs two-way communication with each of a plurality of data processing units that perform data processing, and specifies at least one of the data processing units and specifies the specified data processing unit.
  • a computer program provided by the present invention is a computer program for performing bidirectional communication with each of a plurality of data processing means for performing data processing.
  • the semiconductor device provided by the present invention is a computer program that performs bidirectional communication with each of a plurality of data processing units that perform data processing, and is incorporated in an apparatus equipped with the computer. It is a semiconductor device that has the following functions.
  • FIG. 1 is a diagram showing a configuration example of a multiprocessor system to which the present invention is applied.
  • FIG. 2 is a diagram illustrating a configuration example of a BCMC according to the present invention
  • FIG. 3 is a diagram illustrating a configuration example of a cell processor according to the present invention
  • FIG. 4 is a diagram illustrating a WTA-sum circuit according to the present invention.
  • FIG. 5 is a diagram showing a configuration example, and FIG. 5 is a flowchart showing a flow of processing executed by the multiprocessor system according to the present embodiment;
  • FIG. 6 is a conceptual diagram using data processing results of adjacent processors according to the present invention.
  • FIG. 7 is a conceptual diagram that uses the result of overnight processing of some processors according to the present invention.
  • FIG. 8 is an exemplary diagram in which grid points according to the present invention are grouped
  • FIG. 9 is an exemplary diagram in which objects according to the present invention are divided into clusters.
  • FIG. 10 is a flowchart showing the processing flow of the collision determination algorithm according to the present invention.
  • FIG. 1 is a diagram showing a configuration example of a multiprocessor system.
  • the multiprocessor system 1 includes a broadcast memory controller (hereinafter, referred to as a “BCMC (Broadcast Memory Controller)”) 10 which is a control means for data processing and data recording and reading.
  • BCMC Broadcast Memory Controller
  • a plurality of cell processors 20 each of which is an example of data processing means, and a plurality of WTAs (Winner Take All) 'sum circuit 30' for forming various required functions for data processing. It is comprised including.
  • the BCMC 10 and all cell processors 20 are connected by a broadcast channel (a communication channel capable of simultaneous transmission).
  • the multiprocessor system 1 manages a state variable value, which is an example of a data processing result by each cell processor 20, in a B CMC 10, and converts the state variable values of all the cell processors 20 from a BC.MC 10 into reference numerical values. As an example, it is transmitted by broadcast. Thereby, each cell processor 20 can refer to the state variable value generated in another cell processor 20 at high speed.
  • the broadcast channel is a transmission path between the B CMC 10 and the plurality of cell processors 20, and includes an address bus used for passing addresses and a data bus used for passing data such as state variable values. It is comprised including.
  • the address includes a cell address for specifying each cell processor 20 and a broadcast address for all cell processors 20.
  • the cell address corresponds to an address (physical address or logical address) in the memory, and the state variable value from the cell processor 20 is always stored in the address corresponding to the cell address indicating the cell processor 20. Has become.
  • Each cell processor 20 is provided with ID (identification) as identification information for identifying each cell processor.
  • the cell address also corresponds to this ID. With this, it is possible to specify from which cell processor 20 the state variable value was output from the cell address.
  • the summation circuit 30 is connected as shown in FIG. That is, the WTA summation circuit 30 is connected in a pyramid shape with the cell processor 20 side as the first stage. Two cell processors 20 are connected to the input terminals of the first-stage WTA / sum circuit 30, and the output terminals are connected to the input terminals of the second-stage WTA / sum circuit 30.
  • the input terminals are connected to the output terminals of the two lower stages of the WTA total circuit 30, and the output terminals are connected to the input terminals of the upper stage WTA total circuit 30.
  • the uppermost WTA 'summation circuit 30 has two lower WTA -The output terminal of the summation circuit 30 is connected, and the output terminal is connected to the BCMC 10.
  • the present invention can be implemented by connecting the WTA / sum circuit 30 in a cascade in addition to the connection form shown in the figure. In this case, two cell processors 20 are connected to the input terminals of the first stage WTA / sum circuit 30, and the output terminals are connected to the input terminals of the upper stage.
  • the output terminal of the lower stage WTAsum circuit 30 and the cell processor 20 are connected, and the output terminal is connected to the input terminal of the upper stage. .
  • the output terminal of the lower stage WTA ⁇ sum circuit 30 and the cell processor 20 are connected to the input terminal of the uppermost stage “WTA * sum circuit 30”, and the output terminal is connected to the B CMC 10.
  • the B CMC 10 broadcasts data to all the cell processors 20 via a broadcast channel, and acquires and holds the state variable values from each cell processor 20.
  • Fig. 2 shows a configuration example of the B CMC 10.
  • the B CMC 10 includes a CPU core 101 that controls the operation of the entire multiprocessor system 1, a rewritable main memory 102 such as an SRAM (Static Random Access Memory), and a DMAC (Direct Memory Access Controller) 103. It is connected and configured.
  • the CPU core 101 cooperates with the main memory 102 to read and execute a predetermined computer program, thereby forming a function for performing the characteristic data processing of the present invention. It is a semiconductor device.
  • the main memory 102 is used as a shared memory for the entire system.
  • the output terminal of the WTA / summation circuit 30 at the uppermost stage and an external memory such as a hard disk or a portable medium are also connected to the bus B1.
  • the CPU core 101 reads the startup program from the external memory at the time of startup, and executes the startup program to operate the operating system. Let also, various data required for data processing are read from the external memory, and are loaded into the main memory 102.
  • the main memory 102 also stores data such as the state variable value of each cell processor 20.
  • the state variable value is stored in the address of the main memory 102 corresponding to the cell address of the cell processor 20 that has calculated the state variable value.
  • the CPU core 101 also generates a broadcast message to be broadcast to each cell processor 20 based on the data read from the main memory 102.
  • the broadcast data is, for example, a pair (set) of a set of a state variable value and a cell address indicating the cell processor 20 that has calculated the state variable value.
  • One or more sets of pair data are generated.
  • the DMAC 103 is a semiconductor device that performs direct memory access transfer control between the main memory 102 and each cell processor 20. For example, a broadcast broadcast is broadcast to each cell processor 20 via a broadcast channel. Also, the data processing results of each cell processor 20 are individually obtained and written to the main memory 102. ⁇ Cell processor>
  • Each cell processor 20 performs data processing by selecting the required data from the broadcast data, and reports this to the WTA / summation circuit 30 when the data processing is completed.
  • the state variable value which is the data processing result, is transmitted to the BCM 10 according to the instruction from the BMC 10.
  • Each of the cell processors 20 is ring-connected via a shared memory (not shown).
  • Each cell processor 20 may perform data processing with a synchronous clock, or may perform data processing with a different clock.
  • FIG. 3 shows a configuration example of the cell processor 20.
  • the cell processor 20 includes a cell CPU 201, an input buffer 202, an output buffer 203, a WTA buffer 204, a program controller 205, an instruction memory 206, And a data memory 207.
  • Cell CPU 201 is a processor with a programmable floating-point unit.
  • the data processor controls the operation in the cell processor 20 and performs data processing.
  • the cell CPU 201 acquires the broadcast data broadcast from the B CMC 10 via the input buffer 202, determines whether or not the data is necessary for the processing to be performed by the cell address of the pair data, and if necessary, Write the state variable value to the corresponding address in memory 207.
  • the state variable value is read from the data memory 207, data processing is performed, the data processing result is written to the output buffer 203, and the WTA / summation circuit 30 receives data indicating the end of the data processing. send.
  • the input buffer 202 holds broadcast data broadcast from the BCMC 10.
  • the held broadcast data is transmitted to the cell CPU 201 in response to a request from the cell CPU 201.
  • the output buffer 203 holds the state variable value of the cell CPU 201.
  • the held state variable value is transmitted to the BCMC 10 in response to a request from the BCMC 10.
  • the input buffer 202 and the output buffer 203 may also transmit and receive control data and the like.
  • the WTA buffer 204 receives the data indicating the end of the data processing from the cell CPU 201 at the end of the data processing by the cell CPU 201, and transmits the data to the WTA / summation circuit 30 to perform the data processing.
  • the end is reported to WT A ⁇ summation circuit 30.
  • the end data indicating the end of the data processing includes, for example, the ID of the own cell processor 20 and the priority data for determining the priority when the state variable value stored in the output buffer 203 is read to the B CMC 10. included.
  • the program controller 205 fetches a program that defines the operation of the cell processor 20 from the BCMC 10.
  • the programs that define the operation of the cell processor 20 include a data processing program executed by the cell processor 20, a data selection program that determines data required for processing by the cell processor 20, and a processing result to the BCMC 10.
  • a priority determination program that determines the priority of each.
  • the instruction memory 206 stores the program fetched by the program controller 205.
  • the saved program is loaded into cell CPU201 as needed.
  • the data memory 207 stores data processed in the cell processor 20. Broadcast data determined to be necessary by cell CPU 201 is written. Broadcast data is stored in an address corresponding to the cell address.
  • a part of the data memory 207 is connected to the adjacent cell processor 20 via the shared memory, and data can be transmitted / received to / from the adjacent cell processor 20 every cycle. It has become.
  • the plurality of WT A ⁇ sum circuit 30 determines the order in which BCMC 10 takes in the state variable values from cell processor 20 based on the data sent from each cell processor 20 and indicating the end of the data processing. Report to 10
  • FIG. 4 shows a configuration example of the WTA-sum circuit 30.
  • Each WT A sum circuit 30 has two input registers A and B (hereinafter, first input register 301, second input register 3002), switch 303, and comparator 304 And an adder 305 and an output register 306.
  • the first input register 301 and the second input register 302 include an integer register and a floating point register, respectively.
  • ID is written in the end data indicating the end of data processing sent from the cell processor 20, and in the floating-point register, for example, priority data is written.
  • the switch 303 activates one of the comparator 304 and the adder 305. Specifically, only one can be used according to the operation mode.
  • the operation mode is determined by, for example, an instruction from BCMC10. The operation mode will be described later.
  • the comparator 304 compares the floating-point values held by the floating-point registers of the first input register 301 and the second input register 302 with the larger (or smaller) value. , And the associated integer are written to output register 306.
  • the adder 305 calculates the sum of the floating-point values held by the floating-point registers of the first input register 301 and the second input register 302, and outputs the calculation result to the output register 306. Write.
  • the output register 303 is configured substantially the same as the first input register 301 and the second input register 302. In other words, it has integer registers and floating point registers. ID is written in the integer register, and priority data is written in the floating-point register.
  • the WTA-sum circuit 30 has three operation modes described below.
  • the comparator 304 is activated by the switch 303.
  • the comparator 304 compares the floating-point values A and B held in the floating-point registers of the first input register 301 and the second input register 302, respectively. ) And its associated integer value are written to output register 306.
  • the first input register 301 and the second input register 302 are cleared.
  • the contents of the output register 306 are written to the input register of the upper stage WTA ⁇ summation circuit 30. At this time, if the input register to which the data is to be written is not cleared, the write is stalled, and the write is not performed in that cycle, and the write is performed in the next cycle.
  • Addition mode :
  • the adder 305 is activated by the switch 303.
  • the adder 305 calculates the sum of the floating-point values A and B held by the floating-point registers of the first input register 301 and the second input register 302, and calculates the calculation result.
  • the contents of the output register 306 are written to the input register of the upper stage WTA * summation circuit 30. Approximate sort mode:
  • the comparator 304 is activated by the switch 303.
  • the comparator 304 compares the floating-point values A and B held in the floating-point registers of the first input register 301 and the second input register 302, respectively. ) And the associated integer value are written to output register 306.
  • the data received by the BCMC 10 from the uppermost output register 306 of the WT A ⁇ sum circuit 30 is sorted (rearranged) in ascending or descending order of floating point. .
  • the first input register 301, the second input register 302, and the output register 303 of all the WTA-sum circuits 30 are cleared.
  • the plurality of WTA ⁇ summing circuits 30 function as a sorting mechanism (sorting mechanism) and / or summing circuit as a whole.
  • sorting mechanism sorting mechanism
  • / or summing circuit as a whole.
  • the WT A ⁇ sum circuit 30 operating in the maximum value mode and the approximate sort mode may be realized as follows.
  • a WTA ⁇ sum circuit includes the same number of input registers as the cell processor 20, switches, comparators, adders, and output registers. As many input registers as the number of cell processors 20 are provided, each of which is an integer register like the first register 301 and the second register 302. And a floating point register. The comparator compares the floating-point values held in the floating-point registers of all input registers. The adder calculates the sum of the floating-point values held by the floating-point registers of all input registers. The output register is the same as the output register of the WTA ⁇ sum circuit 30 in FIG.
  • the comparator compares the priority data held by the floating-point registers of each input register, and writes the associated IDs sequentially to the output registers in descending order of priority. This allows IDs to be sent to BCM10 in the order of priority.
  • the data held by each floating-point register can be added by an adder, and the sum can be obtained.
  • Such a WTA-sum circuit alone functions as a sort mechanism and a sum circuit in the present invention without taking the connection form shown in FIG.
  • FIG. 5 is a flowchart showing a flow of processing executed in the multiprocessor system 1.
  • the initial values of the state variable values of all the cell processors 20 are stored in the main memory 102 of the BCM 10 in advance.
  • the BCM C10 creates a broadcast data based on the data of the state variable of the cell processor 20 and the cell address indicating the cell processor 20 (step S101). Then, the created broadcast data is broadcast to all the cell processors 20 (step S102).
  • Each cell processor 20 takes in the broadcast data into the input buffer 202.
  • the cell CPU 201 checks the cell address of the broadcast data stored in the input buffer 202 by the data selection program stored in the instruction memory 206, and executes the data processing performed by the own cell processor 20. Required It is checked whether there is a state variable value to be executed (step S103). When there is no state variable value required for the data processing performed by itself, the cell processor 20 ends the processing operation (step S103: nothing). If there is a state variable value required for the data processing performed by itself (step S103: yes), the corresponding state variable value is stored in the data memory 2 corresponding to the cell address that forms a pair with this state variable value. Overwrite the address on 07 (step S104).
  • each cell processor 20 processes the state variable value recorded in the data memory 207 by the data processing program stored in the instruction memory 206 to perform a new state variable value. Generate The new state variable value is written to the data memory 207 and also to the output buffer 203 (step S105). The new state variable value is overwritten on the data memory 207 at the address corresponding to its own cell address.
  • the cell CPU 201 sends the end data including the ID and the priority data to the input register of the first stage WTA / summation circuit 30 via the WTA buffer 204.
  • the data is transmitted to report the end of the data processing (step S106).
  • the priority data is generated by a predetermined priority determination program before or after data processing.
  • the first stage WTAA summation circuit 30 outputs the ID to the integer register of the input register and the priority data to the floating-point register in the termination data sent from each cell processor 20. Hold.
  • the WT A * summation circuit 30 operates in the approximate sort mode. Therefore, the switch 303 activates the comparator 304.
  • the first input register 301 of the summation circuit 30 and the integer register of the second input register hold IDs sent from different cell processors 20, respectively. Each floating-point register holds the priority data associated with the ID. Carry.
  • the comparator 304 reads out the priority data from the floating point registers of the first input register 301 and the second input register 302, and compares the priorities. As a result of the comparison, the higher priority data and the associated ID are written to the floating-point register and the integer register of the output register 306. The contents of the input register whose contents have been written to the output register 306 are cleared. The ID and priority data written to the output register 306 are written to the input register of the upper stage WTA ⁇ sum circuit 30.
  • Such processing is performed in the WT A ⁇ sum circuit 30 of each stage.
  • the uppermost WTA / sum circuit 30 sends the ID written in the integer register of the output register 306 to the BCMC 10.
  • the IDs of the WT A ⁇ sum circuit 30 as a whole are transmitted to the B CMC 10 in the order of priority (step S107).
  • the B CMC 10 obtains the data-processed state variable value from the output buffer 203 of the cell processor 20 corresponding to the ID sent from the WTA / summation circuit 30.
  • the acquired state variable value is overwritten on the address corresponding to the cell address indicating the cell processor 20 that has performed the processing on the main memory 102 in the BCMC 10 (step S108).
  • the BCMC 10 obtains a data processing result from each cell processor 20, and thereby generates broadcast data.
  • Each cell processor 20 performs data processing by selecting only data necessary for itself from the broadcast data. By performing data processing using the broadcast data, processing using data processed by all other cell processors 20 becomes possible. In addition, by creating broadcast data using paired data including a data processing result from each cell processor 20 and a cell address indicating the cell processor 20 that generated the data processing result, the broadcast data of a specific cell processor 20 is generated. Processing using only the processing result becomes possible. Furthermore, between adjacent cell processors 20 Since they are connected via a shared memory, processing between adjacent cell processors 20 is possible as in the conventional case.
  • Each cell processor 20 does not go directly to the main memory 102 to fetch the data required by its own cell processor 20. Since data is held in the processor 20 for processing, high-speed processing can be performed without any contention occurring.
  • represents a cell processor
  • shaded “ ⁇ ” is a cell processor that performs data processing
  • “Hata” is a cell processor that holds required data.
  • X i, j (X i-1, j + Xi + l. J + X i, j-l + X i, i + l) Z 4
  • i Row number of grid point
  • j Column number of grid point
  • FIG. 8 is an exemplary diagram in which grid point data is grouped, in which grid point data indicated by “ ⁇ ” is grouped into groups of five. One group of grid point data is processed by one cell processor 20.
  • the cell processor 20 stores the required grid point data from the broadcast data in the data memory 207.
  • the grid point data is sequentially read from the data memory 207 and subjected to data processing.
  • Data transfer is performed using the shared memory with the cell processor 20 connected via the shared memory. If the operation of writing data to the shared memory is one cycle, the transfer of the grouped data between the cell processors 20 can be performed in 2 n cycles.
  • each cell processor 20 By operating each cell processor 20 synchronously and simultaneously executing writing to the shared memory and calculation as in pipeline processing, communication and calculation between the cell processors 20 can be performed simultaneously.
  • the data is broadcast by BCM10. self.
  • the mouth processor 20 determines whether or not the required data is over based on the data i and j of the broadcast data.
  • Data in the row or column direction can be processed by grouping broadcast data, and data processing in the column or row direction can be performed by transferring data via shared data.
  • FIG. 7 an example in which only data processed by some of the cell processors 20 among all the cell processors 20 is used will be described with reference to FIG.
  • “ ⁇ ” represents a cell processor
  • shaded “ ⁇ ” is a cell processor that performs data processing
  • “Hata” is a cell processor that holds required data.
  • Such a multiprocessor system is useful for realizing a Hopfield associative memory.
  • Each cell processor 20 holds a state variable value as a data processing result and a weight coefficient indicating the importance of the state variable value.
  • the cell processor 20 is given a number, and the BCM 10 takes in the state variable values from the cell processor 20 in numerical order.
  • the BCMC 10 broadcasts the state variable values fetched from all the cell processors 20 as broadcast data.
  • Each cell processor 20 selects only the necessary state variable values from the broadcast data and weights them. Performs a product-sum operation with the coefficient and updates the state variable value. If the required state variable values are all the state variable values included in the broadcast data, this means that the process uses data processed by all processors.
  • processing is performed to identify the cell processor 20 that holds data most similar to the characteristics of the input data. This process is performed as follows.
  • Each cell processor 20 holds template data to be compared in advance.
  • BCCM10 broadcasts the input data to all cell processors 20.
  • Each cell processor 20 calculates a difference value between the feature of the template data held by itself and the feature of the input data.
  • the difference value is sent to the WTA-sum circuit 30 together with the ID.
  • WT A * Summation circuit 30 operates in maximum value mode.
  • the input register holds the ID and the floating point register holds the difference value.
  • the difference value is compared by the comparator 304, and the smaller difference value and the associated ID are sent to the output register 310. This is performed for the entire WT A ⁇ summation circuit 30, and the smallest difference value is added to it! 3 ⁇ 4 ⁇ Ask for ID.
  • the ID and the difference value are sent to BCCM10.
  • B CMC 10 specifies the cell processor 20 by ID. As a result, a template data most similar to the feature of the input data and a difference value between the template data most similar to the input data can be detected.
  • collision determination algorithm is an algorithm that determines whether n objects (objects) existing in a certain space collide with each other and, if so, how strong. It is assumed that the spatial distribution of n objects is biased and divided into m clusters. Here, for example, it is determined whether one object collides with the other (n-1) objects most strongly.
  • Fig. 9 is an illustration of objects in such a space.
  • the object represented by " ⁇ " is enclosed in a rectangle to form one cluster.
  • the object is divided into five classes. Have been.
  • the data indicating the object is broadcast from the BCM 10 and taken into the cell processor 20 for each cluster.
  • the cell processor 20 performs a process on the position and the movement in the space of the object included in the one captured class.
  • the cell processors A to E perform processing on objects divided into five clusters.
  • the BCMC 10 generates broadcast data including the object data including the position and velocity data of the object and the cluster data indicating the cluster to which the object belongs, and broadcasts the broadcast data to all cell processors 20. (Step S201). Each cell processor 20 selects and imports object data from the broadcast data based on the cluster data.
  • the cell processor 20 that has taken in the object data calculates new position data after a unit time from the current position data and velocity data of the object.
  • a new bounding box value is obtained from the new position data (step S202).
  • the bounding box is, for example, the rectangle surrounding the object in Figure 9.
  • the value of the pounding box is, for example, the coordinates of the vertex of the pounding box.
  • the BCM C10 fetches new position data of the object from each cell processor 20 and updates the position data (step S203).
  • BCMC 10 is an object containing the acquired new position data etc. Broadcast the data one by one to all cell processors 20 (step S204). That is, the position data indicating the position of one object to be subjected to collision determination (hereinafter referred to as “determination target object”) is obtained. Send to all cell processor 20.
  • Each cell processor 20 first determines whether or not there is a possibility that the determination target object will collide, using the pounding box calculated in step S202 (step S205). Specifically, it is determined whether or not the position of the determination target object is within the bounding box.
  • step S205 If there is a possibility of collision, that is, if the object to be determined is in the bounding box (step S205: Y), the range finder for each object in the bounding box processed by the cell processor 20 is used. The calculation is sequentially performed (step S206), and the collision is determined (step S207). If the object to be judged collides with one of the objects in the bounding box (step S207: ⁇ ), data (collision intensity data) quantitatively representing the strength of the impact due to the collision, the object to be judged by the collision A collision data including data indicating the influence on the object is generated (step S208). Further, the cell processor 20 sends the collision intensity data among the generated collision data together with the ID to the WTA / summation circuit 30 (step S209).
  • collision intensity data quantitatively representing the strength of the impact due to the collision
  • each cell processor 20 When the object to be determined is outside the bounding box (step S205: ⁇ ), or when it is determined that the collision does not occur as a result of the distance calculation (step S207: ⁇ ), each cell processor 20 generates a WTA * sum circuit 30. Then, for example, “-1.0” is sent as the collision intensity data (step S210).
  • the WTA ⁇ Summation circuit 30 operates in maximum value mode.
  • the WTA / summation circuit 30 compares the collision intensity data sent from the cell processor 20 and detects a collision intensity data indicating that the impact intensity due to the collision is the highest (step S211).
  • the cell processor 20 that has generated the obtained collision intensity data is specified.
  • the ID representing the specified cell processor 20 is sent to the B CMC 10.
  • the BCMC 10 uses the ID sent from the top of the WTA
  • the collision data is acquired from the represented cell processor 20 (step S212). By performing the processing after step S204 on all objects, collision determination between all objects in the space is performed.
  • each cell processor 20 inputs the data processing result to the WT A ⁇ sum circuit 30.
  • the data processing results are added by the adder 305, and finally the sum of the data processing results of all the cell processors 20 is obtained. In this way, the total sum of the data processing results can be obtained at high speed by the WT A ⁇ sum circuit 30.
  • the sum of the data processing results is sent to the BMC 10 and can be transmitted to each cell processor 20 by broadcasting at a high speed.
  • the sum of the data processing results is used for, for example, a normalization calculation in an optimization calculation such as a new word.
  • the BCMC 10 and the WT A summation circuit 30 are independent of each other.However, the controller is configured as one block in which the WTA summation circuit 30 is incorporated in the BCMC 10. You may.
  • the data processing means is the cell processor 20 and the control means is the controller (BCMC 10). It is not limited to the example.
  • a plurality of data processing terminals are connected via a wide area network in a form capable of two-way communication, one or more of the data processing terminals are controlled by control means, and the other plurality of data processing terminals are Operate as data processing means, and control means include a datacast containing data processing results received from some or all of the plurality of data processing means and data used for data processing by at least one data processing means.
  • control means include a datacast containing data processing results received from some or all of the plurality of data processing means and data used for data processing by at least one data processing means.
  • a function of broadcasting data is provided, and each of the plurality of data processing means selects only data necessary for its own data processing from the broadcast data broadcasted by the control means and outputs the data.
  • a function of transmitting the processing result to the control means may be provided.
  • a general-purpose data processing terminal capable of specifying it by predetermined identification information (for example, the identification data described above) is used, and a service capable of two-way communication with these general-purpose data processing terminals is used.
  • the data processing system may be configured with only one device or a device equipped with a semiconductor device having a built-in CPU and memory.
  • the server or the device specifies a data processing terminal as at least one data processing means in the server body or the device by reading and executing a predetermined computer program by the CPU in the server or the device.

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)

Description

明細^ マルチプロセッサシステム、 データ処理システム、 デ一夕処理方法、 コンビ ユー夕プログラム 技術分野
本発明は、 複数のデータ処理手段によりデータ処理を行うデータ処理シス テム、 例えばマルチプロセッサシステム及びデ一夕処理方法に関する。 背景技術
高度情報化社会が進み、 コンピュータ等のデ一夕処理装置によるデータ処 理量は増大する傾向にある。 また、 デ一夕処理の内容も複雑化、 高度化して いる。 従来、 C P U (Central Process ing Uni t) などのプロセッサの高性能 化や、 複数のプロセッサによるマルチプロセッサ化により、 データ処理装置 全体の処理能力の向上を図っている。
しかし、 近年、 要求されるデータ処理能力の増大のスピードは、 プロセッ サの高性能化のスピードを凌駕するまでになっている。 プロセッサの高性能 化は、 その開発期間が長いこともあり一朝一夕に行えるものではない。
一方、 例えばマルチプロセッサによるデ一夕処理能力は、 使用するプロセ ッサの数や、 その処理方法により決まり、 個々のプロセッサの高性能化への 依存度が小さい。 そのために、 データ処理装置の処理能力を向上させるため の有効な手段の一つとなっている。
マルチプロセッサによるデ一夕処理方法を、 一つのプロセッサがデ一夕処 理時に必要とするデ一夕の範囲により分類すると、 以下のようになる。
( 1 ) データ処理を行うプロセッサが、 隣接して接続されるプロセッサによ り処理されたデータのみを使用する - このような制御は、 セル 'オートマトン、 画像フィルタ、 布や波の運動の 計算、 曲面からのポリゴン生成の計算等に向いている。 ( 2 ) デ一夕処理を行うプロセッサが、 すべてのプロセッサにより処理され たデータを使用する
このような制御は、 連想記憶器、 4色問題 . トラべリングセ一ルスマン問 題等の最適化、 ラジオシティ、 クラスタリング、 多重リンクシミュレーショ ン、 学習等に向いている。
( 3 ) デ一夕処理を行うプロセッサが、 複数のプロセッサのうちの一部のプ 口セッサにより処理されたデ一夕のみを使用する
このような制御は、 自己組織化計算、 視覚を使った判断による群アルゴリ ズム、 多対多の衝突判定、 データベース検索、 連続曲面の生成 ·変形計算、 ボーンアニメーション、 インバースキネマテイクス等に向いている。
上記の (1 ) の場合のデータ処理は、 従来の並列プロセッサによって、 効 率よく実現可能である。 しかし、 (2 )、 ( 3 ) のデータ処理は、 並列プロセッ サ間の通信速度によりシステム全体の処理速度が制限されてしまい、 各プロ セッサの処理速度を十分に発揮できない。 例えば、 すべてのプロセッサ間を クロスバ一接続することにより、 (2 )、 ( 3 ) のデータ処理を高速に行うこと も可能であるが、 この場合、 必要なハ一ドウエアが膨大になり、 現実的では ない。
本発明の目的は、 種々のマルチプロセッサシステム、 データ処理システム、 デー夕処理方法、 コンピュータプログラム及び半導体デバイスを提供するこ とにある。 発明の開示
上記課題を解決するため、 本発明は、 以下のような種々のマルチプロセッ サシステム、 デ一夕処理システム、 データ処理方法、 コンピュータプロダラ ム及び半導体デパイスを提供する。
第 1のマルチプロセッサシステムは、 データ処理を行う複数のプロセッサ と、 前記複数のプロセッサに対してデータ処理に用いるデータを含むブロー ドキャストデ一夕をプロ一ドキャストするコントローラとを備えており、 前 記複数のプロセッサの各々が、 前記コントローラによりブロードキャストさ れた前記ブロードキャストデータから、 自らが行うデ一夕処理に必要なデー タのみを取捨選択してデータ処理を行うものである。
このようなマルチプロセッサシステムでは、 複数のプロセッサの各々が、 ブロードキャストされたデータから自らが必要とするデータのみを取捨選択 してデータ処理を行うために、 データの競合が起こらず、 全体として高速な 処理が実現される。
各プロセッサがそれぞれ他のプロセッサによる処理結果を利用したり、 あ るいは他のプロセッサによる処理結果を参照したりすることを可能にする場 合、 コントローラは、 前記複数のプロセッサの各々から前記デ一夕処理によ る処理結果を取得するとともに、 取得した処理結果を前記ブロードキャスト データとしてブロードキャストするように構成される。
好ましくは、 複数のプロセッサの各々に、 当該プロセッサを識別するため の識別データを割り当てておき、 前記コントローラを、 前記処理結果に当該 処理結果の取得元のプロセッサの識別デ一夕が付されたブロードキャストデ 一夕を生成し、 このブロ一ドキャストデ一夕をブロードキャストするように 構成する。 このようにすれば、 各プロセッサが、 この識別データに基づいて、 次のタイミングで自らが行うべきデータ処理に必要な処理結果を容易に取捨 選択できるようになる。 また、 識別デ一タにより、 各プロセッサは、 ブロー ドキャストされた処理結果がどのプロセッサによる処理結果かを容易に知る ことができるようになる。
データ処理を終了した複数のプロセッサが競合する可能性がある場合は、 各々のプロセッサからその識別データを取得し、 取得した識別データを所定 の順序で前記コントローラへ送出するソート機構をさらに備えてマルチプロ セッサシステムを構成する。 そして、 前記コントローラが、 前記ソ一ト機構 より受け取つた識別データをもとに前記処理結果を取得するように構成する。 この場合、 前記コントローラにおける前記処理結果の読み取り順序を定める 優先度データを生成する手段をさらに備え、 前記データ処理を終了したプロ セッサが自らの識別データと共にその処理についての前記優先度データを前 記ソート機構に送出するように構成するとともに、 前記ソート機構が前記優 先度データに基づいて前記識別デ一夕の送出順序を決定するように構成する。 ソート機構を備えることにより、 例えばマルチプ口セッサシステム全体と して処理の順序が決まっている場合などに、 コントローラが必要な順序で処 理結果を取得でき、 システム全体として複雑な処理を効率よく実行できるよ うになる。
ソート機構は、 例えば、 前記プロセッサと同数のレジス夕と、 各プロセッ サから送出された前記識別データ及び優先度データを当該プロセッサに対応 する前記レジス夕に記録させる手段と、 各レジスタに記録されている識別デ 一夕の順序性を前記優先度データ同士の比較によって判定する比較器とを備 え、 この比較器による判定結果に基づいて識別データの送出順序を決定する ように構成する。
第 1のマルチプロセッサシステムにおけるコントローラは、 例えば、 デー 夕記録用のメモリと、 前記ソート機構より受け取つた識別デー夕により特定 されるプロセッサから前記処理結果を取得して前記メモリに記録する記録制 御手段と、 前記メモリに記録されている前記処理結果を読み出すとともにそ の処理結果及び前記受け取った識別データを含んで前記ブロードキャストデ 一夕を生成するデータ生成手段とを備えることにより、 その実現が可能であ る。
また、 前記複数のプロセッサの各々は、 より具体的には、 前記ブロードキ ャストデータに自らが行うデータ処理に必要なデ一夕が含まれているか否か を判断し、 前記必要なデ一夕が含まれている場合にそのデ一夕のみを取捨選 択してデータ処理を行うデータ処理機構と、 前記コントローラからの要請に 応じて前記データ処理機構で行ったデータの処理結果を自らの識別データと 共に前記コントローラへ送出する手段と、 データ処理の終了を契機に自らの 識別デ一タを含む処理終了通知デ一夕を前記ソート機構へ送出する手段とを 含んで構成することにより、 その実現が可能である。 第 2のマルチプロセッサシステムは、 それぞれ、 入力される入力データと の比較対象となるテンプレートデータを保持する複数のプロセッサと、 前記 複数のプロセッサに対して前記入力データをブロードキャス卜するコント口 ーラと、 前記複数のプロセッサの各々の出力を比較する比較機構とを備えた ものである。 前記複数のプロセッサが保持するテンプレートデ一夕は、 それ ぞれ他のプロセッサが保持するテンプレートデータとは異なるものである。 複数のプロセッサの各々は、 コントローラによりブロードキャストされた入 カデ一夕の特徴と自らが保持するテンプレートデ一夕の特徴との差分値を算 出するとともに、 算出した前記差分値と自らを識別するための識別データと のペアデータを前記比較機構へ送出するものであり、 比較機構は、 複数のプ 口セッサの各々から受け取った前記差分値に基づいていずれか一つの差分値 を選択し、 選択した差分値とペアデータとなる識別デ一タを前記コント口一 ラへ送出するものであり、 コントローラは、 比較機構から受け取った識別デ 一夕に基づいて複数のプロセッサの中から一つのプロセッサを特定するもの である。
このような構成のマルチプロセッサシステムにより、 データの類似の判断 が高速に行えるようになる。
第 3のマルチプロセッサシステムは、 データ処理を行う複数のプロセッサ と、 前記複数のプロセッサに対してデータ処理に用いるデータをブロードキ ヤストするコントローラと、 前記複数のプロセッサによるデータの処理結果 の総和を算出する総和回路とを備えたものである。 複数のプロセッサの各々 は、 コントローラによりブロードキャストされた前記データから処理に必要 なデータのみを取捨選択してデータ処理を行うとともに、 処理結果を前記総 和回路へ送信するものであり、 総和回路は、 複数のプロセッサの各々から送 信された前記処理結果の総和を算出してコントローラへ送出するものであり、 コントローラは、 総和回路から送信された前記処理結果の総和を複数のプロ セッサにブロードキャストするものである。
データ処理結果の総和は、 ニューロ等の最適化計算において、 正規化計算 のためにしばしば必要とされる。 計算された総和をブロードキャストして、 各プロセッサに送信するようにしてもよい。 以上の構成のマルチプロセッサ システムにより、 これらの処理も高速に行える。
なお、 上記の各マルチプロセッサシステムにおいて、 複数のプロセッサの 少なくとも一部を共有メモリを介して互いにリング接続し、 リング接続され たプロセッサ間で前記共有メモリを介してデータの受け渡しを行うように構 成するようにしてもよい。
本発明が提供するデ一夕処理方法は、 それぞれデータの処理を行う複数の デ一夕処理手段と、 前記複数のデータ処理手段の各々の動作を制御する制御 手段とを有する装置又はシステムにおいて実行される方法であって、
前記制御手段が、 前記複数のプロセッサのうちデータ処理を行ったものか ら所定の順序でデータの処理結果を取得するとともに取得した処理結果及び 取得元のデータ処理手段を識別するための識別データとを含むブロードキヤ ストデータを生成し、 このブロードキャストデータを前記複数のデータ処理 手段宛にブロードキャストする段階と、
前記複数のデータ処理手段の少なくとも一つが、 前記制御手段より受け取 つたブロードキャストデ一夕の中から、 それに含まれる前記識別データに基 づいて特定した一部の処理結果のみを選択してデータ処理を行い、 その処理 結果を、 自らを表す識別データと共に前記制御手段宛に送出する段階と、 を 有することを特徴とする。
本発明が提供する第 1のデータ処理システムは、 データ処理を行う複数の データ処理手段と、 前記複数のデータ処理手段の一部又は全部より受け取つ たデータ処理結果及び少なくとも一つの前記データ処理手段によるデータ処 理に用いるデータを含むブロードキャストデータをブロ^ "ドキャストする制 御手段とを備えており、 前記複数のデータ処理手段の各々が、 前記制御手段 によりブロードキャストされた前記ブロードキャストデ一夕から自らが行う データ処理に必要なデータのみを取捨選択してデータ処理を行うとともに、 その処理結果を前記制御手段に送出するものである。 第 2のデータ処理システムは、 データ処理を行う複数のデータ処理手段の 各々との間で双方向通信を行うシステムであって、 少なくとも一つの前記デ 一夕処理手段を特定するとともに特定したデータ処理手段の識別情報とその データ処理手段宛のデータ処理用データとを含むブロードキャストデータを 生成する手段と、 前記複数のデータ処理手段の一部又は全部から当該デ一夕 処理手段で行われたデ一夕の処理結果を取得する手段と、 受け取った前記処 理結果を前記ブロードキャストデータに含め、 当該ブロードキャストデータ を前記複数のデ一夕処理手段の各々にブロードキャストする手段とを備えた ものである。
本発明が提供するコンピュータプログラムは、 データ処理を行う複数のデ 一夕処理手段の各々との間で双方向通信を行う、 コンピュータ搭載の装置に 於いて、 前記コンピュータに以下の機能を形成させるためのコンピュータプ ログラムであり、 本発明が提供する半導体デバイスは、 データ処理を行う複 数のデータ処理手段の各々との間で双方向通信を行う、 コンピュータ搭載の 装置に組み込まれることにより、 前記コンピュータに以下の機能を形成させ る半導体デバイスである。
( 1 ) 少なくとも一つの前記データ処理手段を特定するとともに特定したデ 一夕処理手段の識別情報とそのデータ処理手段宛のデータ処理用デ一夕とを 含むブロードキャストデータを生成する機能、
( 2 ) 前記複数のデータ処理手段の一部又は全部から当該データ処理手段で 行われたデータの処理結果を取得する機能、 ,
( 3 ) 受け取った前記処理結果を前記ブロードキャストデータに含め、 当該 プロ一ドキャストデータを前記複数のデ一夕処理手段の各々にブロードキヤ ス卜する機能。 図面の簡単な説明
第 1図は、 本発明を適用したマルチプロセッサシステムの構成例を示した 図であり、 第 2図は、 本発明による B C M Cの構成例を示す図であり、 第 3図は、 本発明によるセルプロセッサの構成例を示す図であり、 第 4図は、 本発明による WTA ·総和回路の構成例を示す図であり、 第 5図は、 本実施形態によるマルチプロセッサシステムにより実行される 処理の流れを示すフローチャートであり、
第 6図は、 本発明による隣接するプロセッサのデータ処理結果を使用する 概念図であり、
第 7図は、 本発明による一部のプロセッサのデ一夕処理結果を使用する概 念図であり、
第 8図は、 本発明による格子点デ一夕をグループ化した例示図であり、 第 9図は、 本発明によるオブジェクトをクラスタに分けた場合の例示図で あり、
第 1 0図は、 本発明による衝突判定アルゴリズムの処理の流れを示すフロ 一チヤ一トである。 発明を実施するための最良の形態
以下に、 本発明をデータ処理システムの一例となるマルチプロセッサシス テムに適用した場合の実施の形態を説明する。
<全体構成 >
第 1図は、 マルチプロセッサシステムの構成例を示した図である。 このマ ルチプロセッサシステム 1は、 デ一夕処理及びデータ記録及び読み出しのた めの制御手段であるブロードキャストメモリコントローラ (以下、 「B C M C (Broadcas t Memory Cont ro l l er)」 という。) 1 0と、 各々データ処理手段の 一例となる複数のセルプロセッサ 2 0と、 デ一夕処理のための所要の機能を 種々形成するための複数の WT A (Winner Take Al l ) '総和回路 3 0と、 を 含んで構成されている。
B C M C 1 0とすべてのセルプロセッサ 2 0とは、 プロ一ドキャストチヤ ネル (一斉送出可能な通信チャネル) により接続されている。 このマルチプロセッサシステム 1は、 各セルプロセッサ 20によるデータ 処理結果の一例となる状態変数値を B CMC 10で管理し、 BC.MC 10か らすべてのセルプロセッサ 20の状態変数値を、 参照用数値の一例としてブ ロードキャストにより送出するものである。 これにより、 各セルプロセッサ 20は、 高速に他のセルプロセッサ 20において発生した状態変数値を参照 可能とする。
ブロードキャストチャネルは、 B CMC 10と複数のセルプロセッサ 20 との間の伝送経路であって、 ァドレスの受け渡しに使用されるアドレスバス と、 状態変数値などのデータの受け渡しに使用されるデータバスとを含んで 構成される。 アドレスには、 個々のセルプロセッサ 20を特定するためのセ ルァドレスと、 すべてのセルプロセッサ 20を対象とするブロードキャスト ァドレスとがある。
セルアドレスは、 メモリ上のアドレス (物理アドレス又は論理アドレス) に対応しており、 セルプロセッサ 20からの状態変数値は、 常に、 当該セル プロセッサ 20を示すセルァドレスに対応するァドレスに記憶されるように なっている。 各セルプロセッサ 20には、 各々を識別するための識別情報と して、 I D (identification) が付されている。 セルアドレスは、 この I D にも対応するようになっている。 これにより、 状態変数値がどのセルプロセ ッサ 20から出力されたのかを、 セルァドレスによって特定することができ る。
WTA .総和回路 30は、 第 1図に示すように接続される。 即ち、 WTA •総和回路 30は、 セルプロセッサ 20側を一段目としてピラミツド状に接 続される。 一段目の WTA ·総和回路 30の入力端には 2つのセルプロセッ サ 20が接続され、 出力端は二段目の WT A ·総和回路 30の入力端に接続 される。
二段目以降は、 入力端の各々に下位の段の 2つの WT A ·総和回路 30の 出力端が接続され、 出力端に上位の段の WT A ·総和回路 30の入力端が接 続される。 最上段の WTA '総和回路 30は、 入力端に下段の 2つの WTA -総和回路 30の出力端が接続され、 出力端は B CMC 10に接続される。 なお、 図示の接続形態の他に、 WTA ·総和回路 30をカスケードに接続 しても、 本発明を実施することが可能である。 この場合、 一段目の WTA · 総和回路 30の入力端には 2つのセルプロセッサ 20を接続し、 出力端を上 位の段の入力端に接続する。 二段目以降の WT A ·総和回路 30の入力端に は、 下位の段の WTA ·総和回路 30の出力端とセルプロセッサ 20が接続 され、 出力端は上位の段の入力端に接続される。 最上段の" WTA *総和回路 30は、 入力端に下位の段の WT A ·総和回路 30の出力端とセルプロセッ サ 20とが接続され、 出力端は B CMC 10に接続される。
次に、 BCMC 10、 セルプロセッサ 20、 WTA ·総和回路 30のそれ ぞれについて詳細に説明する。
<BCMC>
B CMC 10は、 ブロードキャストチャネルによりすベてのセルプロセッ サ 20にデータをブロードキャストするとともに、 各セルプロセッサ 20か らの状態変数値を取り込んで保持する。 第 2図に B CMC 10の構成例を示 す。
B CMC 10は、 マルチプロセッサシステム 1全体の動作を制御する C P Uコア 101と、 SRAM (Static Random Access Memory) などの書き換え 可能なメインメモリ 102と、 DMAC (Direct Memory Access Controller) 103とがバス B 1で接続されて構成される。 CPUコア 10 1は、 メイン メモリ 102と協働し、 所定のコンピュータプログラムを読み込んで実行す ることにより、 本発明の特徴的なデ一夕処理を行うための機能を形成するコ ンピュー夕搭載の半導体デバイスである。 メインメモリ 102は、 システム 全体の共有メモリとして使用されるようになっている。
バス B 1には、 最上段の WTA ·総和回路 30の出力端及びハードデイス クゃ可搬性メディア等の外部メモリも接続される。
CPUコア 101は、 起動時に上記の外部メモリから起動プログラムを読 み込み、 その起動プログラムを実行してオペレーティングシステムを動作さ せる。 また、 データ処理に必要となる種々のデ一夕を上記の外部メモリから 読み出し、 これをメインメモリ 1 0 2に展開する。 メインメモリ 1 0 2には、 各セルプロセッサ 2 0の状態変数値などのデータも記憶されるようにする。 状態変数値は、 当該状態変数値を算出したセルプロセッサ 2 0のセルアドレ スに応じたメインメモリ 1 0 2のァドレスに記憶される。
C P Uコア 1 0 1は、 また、 メインメモリ 1 0 2から読み出したデータに 基づいて、 各セルプロセッサ 2 0に対してブロードキャストするブロードキ ヤストデ一夕を生成する。 ブロードキャストデータは、 例えば、 状態変数値 と当該状態変数値を算出したセルプロセッサ 2 0を示すセルァドレスとの組 からなるペア (組) データである。 ペアデータは、 1組又は複数組生成され る。
D MA C 1 0 3は、 メインメモリ 1 0 2と各セルプロセッサ 2 0との間の ダイレクトメモリアクセス転送制御を行う半導体デバイスである。 例えば、 各セルプロセッサ 2 0に対しては、 ブロードキャストチャネルを介して、 ブ ロードキャストデ一夕をブロードキャストする。 また、 各セルプロセッサ 2 0のデータ処理結果を個別に取得して、 メインメモリ 1 0 2に書き込む。 <セルプロセッサ >
各セルプロセッサ 2 0は、 ブロードキャストデ一夕の中から必要となるデ 一夕を取捨選択してデータ処理を行い、 データ処理の終了時に、 その旨を W T A ·総和回路 3 0へ報告する。 データ処理結果である状態変数値を、 B C M C 1 0からの指示により、 B C M C 1 0へ送出する。 各セルプロセッサ 2 0間は、 図示しない共有メモリを介してリング接続される。 各セルプロセッ サ 2 0は、 データ処理を同期的なクロックで行ってもよく、 各々異なるクロ ックで行ってもよい。 第 3図にセルプロセッサ 2 0の構成例を示す。
セルプロセッサ 2 0は、 セル C P U 2 0 1と、 入力バッファ 2 0 2と、 出 力バッファ 2 0 3と、 WT Aバッファ 2 0 4と、 プログラムコントローラ 2 0 5と、 命令メモリ 2 0 6と、 データメモリ 2 0 7と、 を含んで構成される。 セル C P U 2 0 1は、 プログラマブルな浮動小数点演算器を備えたプロセ ッサであり、 セルプロセッサ 20内の動作を制御して、 データ処理を行うも のである。 セル CPU 20 1は、 B CMC 10からブロードキャストされた ブロードキャストデータを入力バッファ 202を介して取得し、 ペアデータ のセルァドレスにより自己が行うべき処理に必要なデータか否かを判断し、 必要であればデ一夕メモリ 207の対応するアドレスに状態変数値を書き込 む。 また、 データメモリ 207から状態変数値を読み出してデータ処理を行 い、 デ一夕処理結果を出力バッファ 203に書き込み、 WT A ·総和回路 3 0にデ一夕処理の終了を示すデ一夕を送る。
入力バッファ 202は、 B CMC 10からブロ一ドキャストされたブロー ドキャストデータを保持するものである。 保持されたブロードキャストデー 夕は、 セル C PU201からの要求により、 セル CPU201へ送られる。 出力バッファ 203は、 セル C PU 201の状態変数値を保持するもので ある。 保持された状態変数値は、 B CMC 10からの要求により、 BCMC 10へ送信される。
入力バッファ 202及び出力バッファ 203は、 この他に制御用のデータ 等の送受を行ってもよい。
WTAバッファ 204は、 セル CPU 201によるデータ処理の終了時に、 セル CPU 201からデータ処理の終了を示すデータを受信して、 これを W TA ·総和回路 30へ送信することにより、 デ一夕処理の終了を WT A ·総 和回路 30に報告するものである。 データ処理の終了を示す終了データには、 例えば、 自セルプロセッサ 20の I Dと、 出力バッファ 203に保存された 状態変数値が B CMC 10へ読み取られるときの優先度を決める優先度デー 夕とが含まれる。
プログラムコントローラ 205は、 セルプロセッサ 20の動作を規定する プログラムを B CMC 10から取り込むものである。 セルプロセッサ 20の 動作を規定するプログラムには、 セルプロセッサ 20で実行されるデータ処 理のためのプログラムや、 当該セルプロセッサ 20で処理に必要なデータを 決めるデータ選択プログラム、 処理結果が BCMC 10へ読み取られるとき の優先度を決める優先度決定プログラムなどがある。
命令メモリ 2 0 6は、 プログラムコントローラ 2 0 5により取り込んだプ ログラムを保存するものである。 保存したプログラムは、 必要に応じてセル C P U 2 0 1に読み込まれる。
データメモリ 2 0 7は、 セルプロセッサ 2 0において処理されるデータを 保存するものである。 セル C P U 2 0 1により必要と判断されたブロードキ ャストデータが書き込まれる。 ブロードキャストデータは、 セルアドレスに 応じたァドレスに保存される。
また、 本実施形態ではデ一タメモリ 2 0 7の一部は共有メモリを介して隣 接するセルプロセッサ 2 0に繋がっており、. 1サイクル毎に隣接するセルプ 口セッサ 2 0とデータの送受が可能となっている。
<WTA ·総和回路 >
複数の WT A ·総和回路 3 0は、 各セルプロセッサ 2 0から送られるデー 夕処理の終了を示すデータにより、 B C M C 1 0がセルプロセッサ 2 0から 状態変数値を取り込む順序を決めて B CM C 1 0へ報告する。
第 4図に WTA ·総和回路 3 0の構成例を示す。
各 WT A ·総和回路 3 0は、 2つの入力レジスタ A、 B (以下、 第 1入力 レジスタ 3 0 1、 第 2入力レジスタ 3 0 2 ) と、 切換器 3 0 3と、 比較器 3 0 4と、 加算器 3 0 5と、 出力レジスタ 3 0 6と、 を含んで構成される。 第 1入力レジスタ 3 0 1及び第 2入力レジスタ 3 0 2は、 それぞれ整数レ ジス夕及び浮動小数点レジスタを備えている。 整数レジス夕には、 例えばセ ルプロセッサ 2 0から送られるデータ処理の終了を示す終了デ一夕のうち、 I Dが書き込まれ、 浮動小数点レジスタには、 例えば優先度データが書き込 まれる。
切換器 3 0 3は、 比較器 3 0 4及び加算器 3 0 5のいずれか一方を活性化 する。 具体的には、 動作モードに従って一方のみを使用可能とする。 動作モ ードは、 例えば B C M C 1 0からの指示により決められる。 動作モードにつ いては後述する。 比較器 3 0 4は、 第 1入力レジスタ 3 0 1及び第 2入力レジスタ 3 0 2の 各々の浮動小数点レジス夕が保持する浮動小数点値の比較を行い、 大きい方 (又は小さい方) の値と、 それに付随する整数とを、 出力レジスタ 3 0 6へ 書き込む。
加算器 3 0 5は、 第 1入力レジス夕 3 0 1及び第 2入力レジスタ 3 0 2の 各々の浮動小数点レジスタが保持する浮動小数点値の和を算出し、 算出結果 を出力レジスタ 3 0 6へ書き込む。
出力レジスタ 3 0 6は、 第 1入力レジス夕 3 0 1及び第 2入力レジスタ 3 0 2とほぼ同じに構成される。 つまり、 整数レジスタ及び浮動小数点レジス 夕を備えている。 整数レジス夕には I Dが書き込まれ、 浮動小数点レジス夕 には優先度データが書き込まれるようになつている。
WTA ·総和回路 3 0は、 以下に説明する 3つの動作モードをもつ。
最大値 (WT A) モ一ド:
切換器 3 0 3により、 比較器 3 0 4が活性化される。 比較器 3 0 4は、 第 1入力レジスタ 3 0 1及び第 2入力レジスタ 3 0 2の各々の浮動小数点レジ ス夕が保持する浮動小数点値 A、 Bの比較を行い、 大きい方 (又は小さい方) の値と、 それに付随する整数値を出力レジスタ 3 0 6に書き込む。 出力レジ スタ 3 0 6への書き込みが終了すると、 第 1入力レジスタ 3 0 1及び第 2入 力レジスタ 3 0 2をクリアする。 出力レジスタ 3 0 6の内容は、 上位の段の WT A ·総和回路 3 0の入力レジス夕に書き込まれる。 このとき、 書き込み 先の入力レジスタがクリアされていないときは、 書き込^がストールして、 そのサイクルでは書き込みを行わず、 次のサイクルで書き込むようにする。 加算モ一ド:
切換器 3 0 3により、 加算器 3 0 5が活性化される。 加算器 3 0 5により、 第 1入力レジス夕 3 0 1及び第 2入力レジス夕 3 0 2の各々の浮動小数点レ ジス夕が保持する浮動小数点値 A、 Bの和を算出し、 算出結果を出力レジス タ 3 0 6に書き込む。 出力レジスタ 3 0 6の内容は、 上位の段の WT A *総 和回路 3 0の入力レジス夕に書き込まれる。 近似ソートモード:
切換器 3 0 3により、 比較器 3 0 4が活性化される。 比較器 3 0 4は、 第 1入力レジスタ 3 0 1及び第 2入力レジスタ 3 0 2の各々の浮動小数点レジ ス夕が保持する浮動小数点値 A、 Bの比較を行い、 大きい方 (又は小さい方) の値と、 それに付随する整数値とを出力レジスタ 3 0 6に書き込む。
その後、 出力レジス夕 3 0 6に書き込まれた値を保持していた入力レジス 夕のみをクリアし、 出力レジスタ 3 0 6の内容を、 上位の段の WT A '総和 回路 3 0の入力レジス夕に書き込む。 書き込み先の入力レジス夕がクリアさ れていない場合は、 書き込みがストールし、 そのサイクルでは書き込みを行 わない。 ただし、 下位の段の WT A ·総和回路 3 0の出力レジスタ 3 0 6か らの書き込み動作は行われる。
近似ソートモードにより、 B C M C 1 0が WT A ·総和回路 3 0の最上段 の出力レジスタ 3 0 6から受け取るデータが、 浮動小数点が大きい順或いは 小さい順にソートされた (並び替えられた) ものとなる。
なお、 各モードに入る前には、 すべての WT A ·総和回路 3 0の第 1入力 レジスタ 3 0 1、 第 2入力レジスタ 3 0 2及び出力レジスタ 3 0 6がクリア される。
各モードを切替えて使用することにより、 複数の WT A ·総和回路 3 0全 体として、 上記のソートのための機構 (ソート機構) 及び/又は総和回路と して機能する。 つまり、 近似ソ一トモ一ドで動作するときは、 ソート機構を 実現するものとなり、 加算モードで動作するときは、 総和回路を実現するも のとなる。
最大値モード、 近似ソートモードで動作する WT A ·総和回路 3 0は、 次に示すようにして実現してもよい。
すなわち、 セルプロセッサ 2 0と同数の入力レジスタと、 切換器と、 比較 器と、 加算器と、 出力レジス夕とを含んで WT A ·総和回路が構成される。 入力レジスタがセルプロセッサ 2 0の数と同じだけ用意されており、 それ ぞれが、 第 1レジスタ 3 0 1、 第 2レジスタ 3 0 2と同様に、 整数レジスタ 及び浮動小数点レジスタを備える。 比較器は、 すべての入力レジス夕の浮動 小数点レジスタが保持する浮動小数点値の比較を行う。 加算器は、 すべての 入力レジスタの浮動小数点レジス夕が保持する浮動小数点値の和を算出する。 出力レジス夕は、 第 4図の WT A ·総和回路 3 0の出力レジスタと同様であ る。
比較器により、 各入力レジスタの浮動小数点レジスタが保持する優先度デ —夕を比較して、 優先度の高い順に、 付随する I Dを順次出力レジスタに書 き込む。 これにより、 I Dを、 優先度の高い順序で B C M C 1 0へ送ること ができる。
加算器により、 各浮動小数点レジス夕が保持するデータを加算して、 その 総和を求めることができる。
このような WT A ·総和回路は、 第 1図に示すような接続形態をとらなく とも、 一つで、 本発明におけるソート機構、 総和回路として機能する。
<データ処理方法 >
本実施形態におけるマルチプロセッサシステム 1は、 以下のように動作す ることにより、 所要のデータ処理を実行する。 第 5図は、 このマルチプロセ ッサシステム 1において実行される処理の流れを示すフローチャートである。
B C M C 1 0のメインメモリ 1 0 2には、 すべてのセルプロセッサ 2 0の 状態変数値の初期値が予め記憶される。
B C M C 1 0は、 このセルプロセッサ 2 0の状態変数値とセルプロセッサ 2 0を示すセルァドレスとからなるぺアデ一夕により、 ブロードキャストデ —夕を作成する (ステップ S 1 0 1 )。 そして、 作成したブロードキャストデ 一夕を、 すべてのセルプロセッサ 2 0へブロードキャストする (ステップ S 1 0 2 )。
各セルプロセッサ 2 0は、 ブロードキャストデータを、 入力バッファ 2 0 2に取り込む。 セル C P U 2 0 1は、 命令メモリ 2 0 6に記憶されたデータ 選択プログラムにより、 入力バッファ 2 0 2が保持するブロードキャストデ 一夕のセルアドレスを調べて、 自セルプロセッサ 2 0が行うデータ処理に要 する状態変数値があるか否かを確認する (ステップ S 1 0 3 )。 自らが行うデ 一夕処理に要する状態変数値が無い場合、 セルプロセッサ 2 0は、 処理動作 を終了する (ステップ S 1 0 3 :無)。 自らが行うデータ処理に要する状態変 数値が有る場合は (ステップ S 1 0 3 :有)、 該当する状態変数値を、 この状 態変数値とペアデータを組むセルアドレスに対応するデ一タメモリ 2 0 7上 のアドレスへ上書きする (ステップ S 1 0 4 )。
以上により、 B C M C 1 0から各セルプロセッサ 2 0へのデータのブロー ドキャストが終了する。
ブロードキャストが終了すると、 各セルプロセッサ 2 0は、 命令メモリ 2 0 6に記憶されたデータ処理のプログラムにより、 データメモリ 2 0 7に記 録された状態変数値をデータ処理して新たな状態変数値を生成する。 新たな 状態変数値は、 データメモリ 2 0 7に書き込まれるとともに、 出力バッファ 2 0 3にも書き込まれる (ステップ S 1 0 5 )。 新たな状態変数値は、 データ メモリ 2 0 7上の、 自らのセルアドレスに対応するアドレスに、 上書きされ る。
データ処理が終了する—と、 セル C P U 2 0 1は、 WT Aバッファ 2 0 4を 介して 1段目の W T A ·総和回路 3 0の入力レジス夕へ I Dと優先度データ とを含む終了デ一タを送信して、 データ処理の終了を報告する (ステップ S 1 0 6 )。 優先度デ一夕は、 データ処理の前又は後に、 所定の優先度決定プロ グラムによって生成される。
1段目の WT A ·総和回路 3 0は、 各セルプロセッサ 2 0から送られる終 了デ一夕のうち、 I Dを入力レジスタの整数レジスタへ、 優先度デ一夕を浮 動小数点レジスタでそれぞれ保持する。 ここで、 WT A *総和回路 3 0は近 似ソートモードで動作する。 そのために、 切換器 3 0 3は、 比較器 3 0 4を 活性化する。
WT A ·総和回路 3 0の第 1入力レジス夕 3 0 1及び第 2入力レジスタの 整数レジスタは、 各々異なるセルプロセッサ 2 0から送られた I Dを保持す る。 また、 各々の浮動小数点レジスタは、 I Dに付随した優先度データを保 持する。 比較器 304は、 第 1入力レジスタ 301及び第 2入力レジスタ 3 02の浮動小数点レジス夕からそれぞれ優先度データを読み出し、 優先度を 比較する。 比較の結果、 優先度が高い方の優先度データ及びそれに付随した I Dを、 出力レジス夕 306の浮動小数点レジスタ及び整数レジス夕へ書き 込む。 出力レジス夕 306へ内容が書き込まれた入力レジスタは、 その内容 がクリアされる。 出力レジスタ 306へ書き込まれた I D及び優先度データ は、 上位の段の WT A ·総和回路 30の入力レジスタへ書き込まれる。
このような処理を各段の WT A ·総和回路 30で行う。 最上段の WTA · 総和回路 30は、 出力レジスタ 306の整数レジスタに書き込まれた I Dを B CMC 10へ送る。
以上のような処理により、 WT A ·総和回路 30全体としては、 I Dを、 優先度の高い順序で B CMC 10へ送ることとなる (ステップ S 107)。
B CMC 1 0は、 WTA ·総和回路 30から送られる I Dに該当するセル プロセッサ 20の出力バッファ 203から、 データ処理された状態変数値を 取得する。 取得した状態変数値は、 BCMC 10内のメインメモリ 102上 の、 処理を行ったセルプロセッサ 20を示すセルァドレスに対応するァドレ スに上書きされる (ステップ S 108)。
以上で、 状態変数値の処理動作の 1サイクルが終了する。
BCMC 10が、 各セルプロセッサ 20からデータ処理結果を取得し、 こ れによりブロードキャストデータを生成する。
各セルプロセッサ 20は、 ブロードキャストデータから自分に必要となる データのみを取捨選択してデータ処理を行う。 このブロードキャストデータ を用いてデータ処理を行うことにより、 他のすべてのセルプロセッサ 20に より処理されたデ一夕を利用する処理が可能となる。 また、 ブロードキャス トデータを、 各セルプロセッサ 20からのデータ処理結果とこのデータ処理 結果を生成したセルプロセッサ 20を示すセルァドレスとからなるペアデー 夕により作成することにより、 特定のセルプロセッサ 20のデ一夕処理結果 のみを用いる処理が可能となる。 さらに、 隣接するセルプロセッサ 20間は 共有メモリを介して接続されているので、 従来と同様に、 隣接するセルプロ セッサ 2 0間の処理も可能である。
各セルプロセッサ 2 0が、 メインメモリ 1 0 2に、 直接、 自セルプロセッ サ 2 0で必要とするデータを取り込みに行くことがなく、 ブロードキャスト デ一夕から必要となるデータを選択して、 各セルプロセッサ 2 0内にデータ を保持して処理を行うので、 デ一夕の競合が起こらずに高速処理が可能とな る。
[実施例 1 ]
次に、 上記のマルチプロセッサシステム 1の実施例を具体的に説明する。 この実施例では、 あるセルプロセッサ 2 0とそれに隣接する他のセルプロ セッサ 2 0により処理されたデ一夕のみを使用する場合の例を、 第 6図を参 照して説明する。
第 6図において、 「〇」 はセルプロセッサを表しており、 網掛された 「〇」 がデータ処理を行うセルプロセッサ、 「秦」 が必要とされるデータを保持する セルプロセッサである。
n X n ( nは 2以上の自然数) の格子の各格子点についてのデータ (格子 点データ) に対して、 次のようなフィルタ計算を連続的に実行する場合を考 える。
X i,j = (X i-1, j + Xi+l. j + X i, j-l + X i, i + l) Z 4
i :格子点の行番号、 j :格子点の列番号
B C M C 1 0は、 格子点デ一夕を行又は列でグループ化したブロードキヤ ストデ一夕として、 n個のセルプロセッサ 2 0にブロードキャストする。 第 8図は、 格子点データをグループ化した例示図であり、 「〇」 で示される 格子点デー夕を 5個ずつグループ化してある。 一つのグループ化した格子点 データが、 一つのセルプロセッサ 2 0で処理される。
セルプロセッサ 2 0では、 ブロードキャストデ一夕から必要とするグルー プ化された格子点デ一タをデ一夕メモリ 2 0 7に保存する。 データメモリ 2 0 7から、 格子点データを順次読み出してデータ処理する。 共有メモリを介して接続されるセルプロセッサ 2 0との間では、 共有メモ リを用いてデータ転送を行う。 共有メモリへのデータの書込動作を 1サイク ルとすると、 セルプロセッサ 2 0間のグループ化されたデータの転送は、 2 nサイクルで行うことができる。
各セルプロセッサ 2 0を同期的に動作させ、 共有メモリへの書き込みと演 算とをパイプライン処理のように同時に実行することにより、 セルプロセッ サ 2 0間の通信と演算を同時に行うことができる。
次のブロードキャストデ一夕は、 グループ化された格子点データのデータ 処理が終了する度に、 B C M C 1 0によりブロードキャストされる。 セルフ。 口セッサ 2 0は、 ブロードキャストされるデータの i、 jにより、 必要なデ 一夕か否かを判断する。
ブロードキャストデータをグループ化することにより行又は列方向のデ一 夕を処理可能であり、 共有データを介してデータ転送することにより列又は 行方向のデータ処理が可能となる。
[実施例 2 ]
この実施例では、 すべてのセルプロセッサ 2 0のうち、 一部のセルプロセ ッサ 2 0により処理されたデ一夕のみを使用する場合の例を、 第 7図を参照 して説明する。 第 7図において、 「〇」 はセルプロセッサを表しており、 網掛 された 「〇」 がデータ処理を行うセルプロセッサ、 「秦」 が必要とされるデー タを保持するセルプロセッサである。 このようなマルチプロセッサシステム は、 ホップフィールドの連想記憶器の実現に有用である。
各セルプロセッサ 2 0は、 データ処理結果である状態変数値とその状態変 数値の重要度を表す重み係数とを保持するものとする。 また、 セルプロセッ サ 2 0には、 番号が付されており、 B C M C 1 0は、 番号順にセルプロセッ サ 2 0から状態変数値を取り込む。
B C M C 1 0は、 すべてのセルプロセッサ 2 0から取り込んだ状態変数値 をブロードキャストデータとしてブロードキャストする。 各セルプロセッサ 2 0は、 ブロードキャストデータから必要な状態変数値のみを選択して重み 係数との積和演算を行い、 状態変数値を更新する。 必要な状態変数値が、 ブ 口一ドキャストデータに含まれるすべての状態変数値の場合、 すべてのプロ セッサにより処理されたデータを使用する処理に該当することとなる。
[実施例 3 ]
次に、 パターンマッチング計算処理の例を説明する。
ここでは、 入力データの特徴に最も類似するデータを保持するセルプロセ ッサ 2 0を特定する処理を行う。 この処理は、 以下のようにして行う。
各セルプロセッサ 2 0は、 予め比較対象となるテンプレートデータを保持 する。
B C M C 1 0は、 入力データをすベてのセルプロセッサ 2 0にブロードキ ャストする。 各セルプロセッサ 2 0は、 自らが保持するテンプレートデータ の特徴と入力デ一夕の特徴との差分値を算出する。 差分値は、 I Dとともに WTA ·総和回路 3 0へ送られる。
WT A *総和回路 3 0は、 最大値モードで動作する。 入力レジス夕の整数 レジスタは I Dを保持し、 浮動小数点レジスタは差分値を保持する。 差分値 を比較器 3 0 4により比較して、 小さい方の差分値とそれに付随する I Dを 出力レジス夕 3 0 6へ送る。 これを WT A ·総和回路 3 0全体で行い、 最も 小さい差分値とそれに付! ¾ίする I Dを求める。 この I D及び差分値を B C M C 1 0へ送る。
B C M C 1 0は、 I Dによりセルプロセッサ 2 0を特定する。 これにより、 入力データの特徴に最も類似するテンプレートデ一夕と、 入力デ一夕と最も 類似するテンプレートデータとの差分値とが検出できる。
[実施例 4 ]
次に、 画像処理等の際に用いられる、 動くオブジェクトの衝突判定アルゴ リズムの処理例について説明する。 「衝突判定アルゴリズム」 は、 ある空間内 に存在する n個のオブジェクト (物体) が互いに他のオブジェクトと衝突す るかどうか、 衝突する場合はどの程度の強度かを判定するアルゴリズムであ る。 n個のオブジェクトの空間分布には偏りがあり、 m個のクラスタに分かれ ているとする。 ここでは、 例えば、 1個のオブジェクトが、 他の (n— 1 ) 個のオブジェク卜のいずれと最も強く衝突するかについて判定するものとす る。
第 9図は、 このような空間内のオブジェクトの例示図であり、 「〇」 で表さ れるォブジェクトを矩形で囲んで 1クラスタとしており、 第 9図ではォブジ ェクトが 5個のクラス夕に分けられている。 オブジェクトを示すデータは、 B C M C 1 0からブロードキャストされ、 クラスタ毎にセルプロセッサ 2 0 に取り込まれる。 セルプロセッサ 2 0は、 取り込んだ 1つのクラス夕に含ま れるオブジェクトに関する空間内での位置、 運動についての処理を行う。 第 9図の例では、 セルプロセッサ A〜Eにより 5個のクラスタに分けられ たオブジェクトに関する処理が行われる。
第 1 0図により、 衝突判定アルゴリズムの処理の流れを説明する。
B C M C 1 0は、 オブジェクトの位置や速度のデータを含むオブジェクト データと、 当該オブジェクトが属するクラスタを示すクラスタデ一夕とを含 むブロードキャストデ一夕を生成し、 すべてのセルプロセッサ 2 0にブロー ドキャストする (ステップ S 2 0 1 )。 各セルプロセッサ 2 0は、 ブロードキ ヤストデータから、 オブジェクトデータをクラスタデータに基づいて取捨選 択して取り込む。
オブジェクトデータを取り込んだセルプロセッサ 2 0は、 オブジェクトの 現在の位置データと速度データとから、 単位時間後の新しい位置データを算 出する。 新しい位置データから、 新しいパウンデイングボックスの値を得る (ステップ S 2 0 2 )。 パウンデイングボックスとは、 例えば、 第 9図におけ る、 オブジェクトを囲む矩形である。 パウンデイングボックスの値とは、 例 えば、 パウンデイングボックスの頂点の座標である。
B C M C 1 0は、 オブジェクトの新しい位置データを各セルプロセッサ 2 0から取り込んで位置データを更新する (ステップ S 2 0 3 )。
次に、 B C M C 1 0は、 取得した新しい位置データ等を含むオブジェクト データを一つずつ全セルプロセッサ 20にブロードキャストする (ステップ S 204)o つまり、 衝突判定の対象となる 1個のオブジェクト (以下、 「判 定対象オブジェクト」 という) の位置を表す位置デ一夕を全セルプロセッサ 20に送る。
各セルプロセッサ 20では、 まず、 ステップ S 202で計算したパウンデ イングボックスを用いて、 判定対象オブジェクトが衝突する可能性があるか 否かを判断する (ステップ S 205)。 具体的には、 判定対象オブジェクトの 位置がバウンディングボックス内にあるか否かを判断する。
衝突する可能性がある場合、 つまり、 判定対象オブジェクトがバウンディ ングボックス内にある場合は (ステップ S 205 : Y)、 そのセルプロセッサ 20で処理される、 パウンディングボックス内の各ォブジェクトとの距離計 算を順次行い (ステップ S 206)、 衝突の判定を行う (ステップ S 207)。 判定対象オブジェクトがバウンディングボックス内のいずれかのォブジェク トと衝突する場合には (ステップ S 207 : Υ)、 その衝突による衝撃の強さ を定量的に表すデータ (衝突強度データ)、 衝突による判定対象オブジェクト への影響を表すデータ等を含む衝突デ一夕を生成する (ステップ S 208)。 また、 セルプロセッサ 20は、 生成した衝突データのうち衝突強度データを、 その I Dとともに WTA ·総和回路 30に送る (ステップ S 209)。
判定対象オブジェクトがバウンディングボックス外にある場合 (ステップ S 205 : Ν)、 または距離計算の結果、 衝突しないと判定した場合 (ステツ プ S 207 : Ν)、 各セルプロセッサ 20は、 WTA *総和回路 30に、 例え ば 「― 1. 0」 を、 衝突強度デ一夕として送る (ステップ S 210)。
WTA ·総和回路 30は最大値モードで動作する。 WTA ·総和回路 30 は、 セルプロセッサ 20から送られる衝突強度データを比較して、 最も衝突 による衝撃の強さが大きいことを表す衝突強度デ一夕を検出して (ステップ S 21 1)、 検出した衝突強度デ一夕を生成したセルプロセッサ 20を特定す る。 そして特定したセルプロセッサ 20を表す I Dを B CMC 10へ送る。
BCMC 10は、 WTA ·総和回路 30の最上段から送られた I Dにより 表されるセルプロセッサ 2 0から衝突データを取得する(ステップ S 2 1 2 )。 ステップ S 2 0 4以降の処理をすベてのオブジェクトについて行うことによ り、 空間内のすべてのオブジェクト間の衝突判定が行われる。
[実施例 5 ]
次に、 WTA ·総和回路 3 0の加算器 3 0 5を用いる場合の例を説明する。 各セルプロセッサ 2 0は、 デ一夕処理結果を WT A ·総和回路 3 0へ入力 する。 WT A ·総和回路 3 0では、 加算器 3 0 5によりデータ処理結果を加 算し、 最終的に、 すべてのセルプロセッサ 2 0のデータ処理結果の総和を得 る。 このようにして、 WT A ·総和回路 3 0により高速にデータ処理結果の 総和を得ることが可能である。
データ処理結果の総和は、 B C M C 1 0に送られて、 各セルプロセッサ 2 0にブロードキャストにより、 高速に送信可能である。 データ処理結果の総 和は、 例えば、 ニュ一口などの最適化計算において、 正規化計算に用いられ る。
以上の説明において、 B C M C 1 0と WT A ·総和回路 3 0とは各々独立 したものとしたが、 B C M C 1 0に WT A ·総和回路 3 0を組み込んだ一つ のブロックとして、 コントローラを構成してもよい。
なお、.以上の説明は、 デ一夕処理手段がセルプロセッサ 2 0であり、 制御 手段がコントローラ (B C M C 1 0 ) である場合の例であるが、 本発明の構 成要素は、 このような例に限定されるものではない。
例えば複数のデータ処理端末を広域ネットワークを介して双方向通信が可 能な形態で接続し、 そのうちの一つ又は複数のデ一タ処理端末を制御手段、 他の複数のデ一夕処理端末をデータ処理手段として動作させ、 制御手段に、 複数のデータ処理手段の一部又は全部より受け取ったデータ処理結果及び少 なくとも一つのデータ処理手段によるデータ処理に用いるデー夕を含むブ口 一ドキャストデータをブロードキャストする機能をもたせ、 複数のデ一タ処 理手段の各々に、 制御手段によりブロードキャストされたブロードキャスト データから自らが行うデ一夕処理に必要なデータのみを取捨選択してデータ 処理を行うとともに、 その処理結果を制御手段に送出させる機能をもたせる ようにしてもよい。
また、 複数のデータ処理手段として、 予め定めた識別情報 (例えば上述し た識別データ) によりそれを特定できる汎用のデータ処理端末を用い、 これ らの汎用のデータ処理端末と双方向通信可能なサ一パ、 あるいは C P U及び メモリを内蔵した半導体デバイスを搭載した装置をのみをもってデ一夕処理 システムを構成するようにしてもよい。
この場合のサーバ又は装置は、 その内部の C P Uが所定のコンピュータプ ログラムを読み込んで実行することにより、 サーバ本体又は装置内に、 少な くとも一つのデータ処理手段としてのデータ処理端末を特定するとともに特 定したデ一夕処理端末の識別情報とそのデータ処理端末宛のデータ処理用デ 一夕とを含むブロードキャストデータを生成する機能と、 複数のデータ処理 端末の一部又は全部から当該データ処理端末で行われたデ一夕の処理結果を 取得する機能と、 受け取った処理結果をブロードキャストデータに含め、 当 該ブロードキャストデータを複数のデータ処理端末の各々にブロードキャス トする機能とを形成するものである。
以上のような本発明により、 複数のデ一夕処理手段を用いる場合のデータ 処理手段間のデータ処理を効率的に行えるようになる。
本発明の技術思想および範囲を逸脱することなしに、 種々の実施例およ び変更が可能である。 上記した実施例は本発明の例示にすぎず、 本発明の 範囲を制限するものではない。 本発明の範囲は、 実施例.ではなく、 添付の 請求の範囲により示されている。 本発明の請求の範囲及びその均等範囲内 でなされた種々の実施例は本発明の範囲内に含まれるものである。

Claims

請求の範囲
1 . データ処理を行う複数のプロセッサと、 前記複数のプロセッサに対し てデータ処理に用いるデータを含むプロ一ドキャストデータをブロードキヤ ストするコントローラとを備えており、
前記複数のプロセッサの各々は、 前記コントローラによりブロードキャス トされた前記ブロードキャストデータから、 自らが行うデー夕処理に必要な データのみを取捨選択してデータ処理を行うものである、
マルチプロセッサシステム。
2 . 前記コントローラは、 デ一夕処理を行った各々のプロセッサから処理 結果を取得するとともに、 取得した処理結果を前記ブロードキャストデ一タ としてすベてのプロセッサ宛にブロードキャストするものである、 .
請求の範囲第 1項記載のマルチプロセッサシステム。
3 . 前記複数のプロセッサの各々には、 各々のプロセッサを識別するため の識別データが割り当てられており、
前記コントローラは、 前記処理結果にその取得元のプロセッサの識別デ一 夕が付されたブロードキャストデ一夕を生成してブロードキャストするもの であり、
前記複数のプロセッサは、 受け取った前記ブロードキャストデ一夕に含ま れる前記識別データに基づいて次のタイミングで自らが行うべきデータ処理 に必要な前記処理結果を取捨選択するものである、 ,
請求の範囲第 1項記載のマルチプロセッサシステム。
4 . 前記複数のプロセッサのうちデータ処理を終了したプロセッサからそ の識別データを取得し、 取得した識別データを所定の順序で前記コントロー ラへ送出するソート機構をさらに備えており、
前記コントローラが、 前記ソート機構より受け取った識別データをもとに 前記処理結果を取得するように構成されている、
請求の範囲第 3項記載のマルチプロセッサシステム。
5 . 前記コント口一ラにおける前記処理結果の読み取り順序を定める優先 度データを生成する手段を備えており、
前記データ処理を終了したプロセッサは、 自らの識別データと共にその処 理についての前記優先度データを前記ソート機構に送出するように構成され ており、
前記ソート機構は、 前記優先度データに基づいて前記識別データの送出順 序を決定するように構成されている、
請求の範囲第 4項記載のマルチプロセッサシステム。
6 . 前記ソート機構が、 前記プロセッサと同数のレジスタと、
各プロセッサから送出された前記識別データ及び優先度データを当該プロ セッサに対応する前 ^レジスタに記録させる手段と、
各レジスタに記録されている識別データの順序性を前記優先度データ同士 の比較によって判定する比較器とを備え、
この比較器による判定結果に基づいて前記識別データの送出順序を決定す るように構成されている、
請求の範囲第 5項記載のマルチプロセッサシステム。
7 . 前記コントローラは、 データ記録用のメモリと、 前記ソート機構より 受け取つた識別デ一夕により特定されるプロセッサから前記処理結果を取得 して前記メモリに記録する記録制御手段と、
前記メモリに記録されている前記処理結果を読み出すとともにその処理結 果及び前記受け取った識別デ一夕を含んで前記ブロードキャストデータを生 成するデータ生成手段とを有するものである、
請求の範囲第 4項記載のマルチプロセッサシステム。
8 . 前記複数のプロセッサの各々が、
前記ブロードキャストデータに自らが行うデータ処理に必要なデータが含 まれているか否かを判断し、 前記必要なデ一夕が含まれている場合にそのデ 一夕のみを取捨選択してデータ処理を行うデータ処理機構と、
前記コントローラからの要請に応じて前記データ処理機構で行ったデータ の処理結果を自らの識別デ一夕と共に前記コントローラへ送出する手段と、 データ処理の終了を契機に自らの識別デ一タを含む処理終了通知データを 前記ソート機構へ送出する手段とを含んで構成されている、
請求の範囲第 4項記載のマルチプロセッサシステム。
9 . それぞれ、 入力される入力データとの比較対象となるテンプレートデ 一夕を保持する複数のプロセッサと、 前記複数のプロセッサに対して前記入 力データをブロードキャストするコントローラと、 前記複数のプロセッサの 各々の出力を比較する比較機構とを備えており、
前記複数のプロセッサが保持するテンプレー卜データは、 それぞれ他のプ 口セッサが保持するテンプレートデ一夕とは異なるものであり、
前記複数のプロセッサの各々は、 前記コントローラによりブロードキャス トされた前記入力データの特徴と自らが保持するテンプレートデータの特徴 との差分値を算出するとともに、 算出した前記差分値と自らを識別するため の識別データとのペアデータを前記比較機構へ送出するものであり、
前記比較機構は、 前記複数のプロセッサの各々から受け取った前記差分値 に基づいていずれか一つの差分値を選択し、 選択した差分値とペアデ一夕と なる識別データを前記コントローラへ送出するものであり、
前記コントローラは、 前記比較機構から受け取った識別データに基づいて 前記複数のプロセッサの中から一つのプロセッサを特定するものである、 マルチプロセッサシステム。
1 0 . データ処理を行う複数のプロセッサと、 前記複数のプロセッサに対 してデータ処理に用いるデータをプロ—ドキャストするコントローラと、 前 記複数のプロセッサによるデータの処理結果の総和を算出する総和回路と、 を備えており、
前記複数のプロセッサの各々は、 前記コントローラによりブロードキャス トされた前記データから処理に必要なデータのみを取捨選択してデータ処理 を行うとともに、 処理結果を前記総和回路へ送信するものであり、
前記総和回路は、 前記複数のプロセッサの各々から送信された前記処理結 果の総和を算出して前記コントローラへ送出するものであり、 前記コントロ一ラは、 前記総和回路から受け取つた前記処理結果の総和を 前記複数のプロセッサにブロードキャストするものである、
マルチプロセッサシステム。
1 1 . 前記複数のプロセッサの少なくとも一部が共有メモリを介して互い にリング接続されており、 リング接続されたプロセッサ間では前記共有メモ リを介してデ一夕の受け渡しを行うように構成されている、
請求の範囲第 1項記載のマルチプロセッサシステム。
1 2 . 前記複数のプロセッサの少なくとも一部が共有メモリを介して互い にリング接続されており、 リング接続されたプロセッサ間では前記共有メモ リを介してデー夕の受け渡しを行うように構成されている、
請求の範囲第 9項記載のマルチプロセッサシステム。
1 3 . 前記複数のプロセッサの少なくとも一部が共有メモリを介して互い にリング接続されており、 リング接続されたプロセッサ間では前記共有メモ リを介してデ一夕の受け渡しを行うように構成されている、
請求の範囲第 1 0項記載のマルチプロセッサシステム。
1 4 . それぞれデータの処理を行う複数のデータ処理手段と、 前記複数の データ処理手段の各々の動作を制御する制御手段とを有する装置又はシステ ムにおいて実行される方法であって、
前記制御手段が、 前記複数のプロセッサのうちデ一夕処理を行ったものか ら所定の順序でデータの処理結果を取得するとともに取得した処理結果及び 取得元のデータ処理手段を識別するための識別デ一夕とを含むブロードキヤ ス卜データを生成し、 このブロードキャストデ一夕を前記複数のデータ処理 手段宛にブロードキャストする段階と、
前記複数のデ一夕処理手段の少なくとも一つが、 前記制御手段より受け取 つたブロードキャストデ一夕の中から、 それに含まれる前記識別データに基 づいて特定した一部の処理結果のみを選択してデータ処理を行い、 その処理 結果を、 自らを表す識別データと共に前記制御手段宛に送出する段階と、 を 有することを特徴とする、 データ処理方法。.
1 5 . データ処理を行う複数のデータ処理手段と、 前記複数のデータ処理 手段の一部又は全部より受け取ったデータ処理結果及び少なくとも一つの前 記データ処理手段によるデータ処理に用いるデータを含むブロードキャスト デ一夕をブロードキャストする制御手段とを備えており、
前記複数のデータ処理手段の各々は、 前記制御手段によりブロードキャス トされた前記ブロードキャストデータから自らが行うデー夕処理に必要なデ 一夕のみを取捨選択してデータ処理を行うとともに、 その処理結果を前記制 御手段に送出するものである、
データ処理システム。
1 7 . データ処理を行う複数のデータ処理手段の各々との間で双方向通信 を行うシステムであって、
少なくとも一つの前記データ処理手段を特定するとともに特定したデータ 処理手段の識別情報とそのデータ処理手段宛のデータ処理用データとを含む ブロードキャス卜デ一夕を生成する手段と、
前記複数のデータ処理手段の一部又は全部から当該データ処理手段で行わ れたデータの処理結果を取得する手段と、
受け取った前記処理結果を前記ブロードキャストデータに含め、 当該プロ ―ドキャストデ一夕を前記複数のデータ処理手段の各々にブロードキャスト する手段とを備えてなる、 データ処理システム。
1 8 . データ処理を行う複数のデータ処理手段の各々との間で双方向通信 を行う、 コンピュータ搭載の装置に於いて、 前記コンピュータに以下の機能 を形成させるためのコンピュータプログラム。
( 1 ) 少なくとも一つの前記データ処理手段を特定するとともに特定したデ 一夕処理手段の識別情報とそのデータ処理手段宛のデータ処理用デ一夕とを 含むブロードキャストデータを生成する手段、
( 2 ) 前記複数のデータ処理手段の一部又は全部から当該データ処理手段で 行われたデータの処理結果を取得する手段、 ( 3 ) 受け取った前記処理結果を前記ブロードキャストデータに含め、 当該 ブロードキャス卜データを前記複数のデータ処理手段の各々にブロードキヤ ストする手段。
1 6 . データ処理を行う複数のデータ処理手段の各々との間で双方向通信 を行う、 コンピュータ搭載の装置に組み込まれることにより、 前記コンビュ —夕に以下の機能を形成させる半導体デバイス。
( 1 ) 少なくとも一つの前記データ処理手段を特定するとともに特定したデ 一夕処理手段の識別情報とそのデータ処理手段宛のデータ処理用デ一夕とを 含むブロードキャストデータを生成する手段、
( 2 ) 前記複数のデータ処理手段の一部又は全部から当該データ処理手段で 行われたデータの処理結果を取得する手段、
( 3 ) 受け取った前記処理結果を前記ブロードキャストデータに含め、 当該 ブロードキャストデ一夕を前記複数のデータ処理手段の各々にブロードキヤ ストする手段。
PCT/JP2001/008434 2000-09-27 2001-09-27 Systeme multiprocesseurs, systeme de traitement de donnees, procede de traitement de donnees et programme d'ordinateur WO2002027513A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
AT01972530T ATE500556T1 (de) 2000-09-27 2001-09-27 Multiprozessorsystem, datenverarbeitungssystem, datenverarbeitungsverfahren und rechnerprogramm
DE60144155T DE60144155D1 (de) 2000-09-27 2001-09-27 Multiprozessorsystem, datenverarbeitungssystem, datenverarbeitungsverfahren und rechnerprogramm
EP01972530A EP1324209B1 (en) 2000-09-27 2001-09-27 Multiprocessor system, data processing system, data processing method, and computer program
AU2001292269A AU2001292269A1 (en) 2000-09-27 2001-09-27 Multiprocessor system, data processing system, data processing method, and computer program

Applications Claiming Priority (4)

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

Publications (1)

Publication Number Publication Date
WO2002027513A1 true WO2002027513A1 (fr) 2002-04-04

Family

ID=26600866

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2001/008434 WO2002027513A1 (fr) 2000-09-27 2001-09-27 Systeme multiprocesseurs, systeme de traitement de donnees, procede de traitement de donnees et programme d'ordinateur

Country Status (10)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111290697A (zh) * 2018-12-07 2020-06-16 上海寒武纪信息科技有限公司 数据压缩方法、编码电路和运算装置

Families Citing this family (31)

* 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
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
US7334086B2 (en) * 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US9088474B2 (en) 2002-10-08 2015-07-21 Broadcom Corporation Advanced processor with interfacing messaging network to a CPU
US8015567B2 (en) 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
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
US7346757B2 (en) 2002-10-08 2008-03-18 Rmi Corporation Advanced processor translation lookaside buffer management in a multithreaded system
US8037224B2 (en) 2002-10-08 2011-10-11 Netlogic Microsystems, Inc. Delegating network processor operations to star topology serial bus interfaces
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 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクト移動制御システム、オブジェクト移動制御方法、サーバ及びコンピュータプログラム
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
US8145880B1 (en) 2008-07-07 2012-03-27 Ovics Matrix processor data switch routing systems and methods
US8327114B1 (en) 2008-07-07 2012-12-04 Ovics Matrix processor proxy systems and methods
US8131975B1 (en) 2008-07-07 2012-03-06 Ovics Matrix processor initialization systems and methods
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
CN102306371B (zh) * 2011-07-14 2013-09-18 华中科技大学 一种分层并行的模块化序列图像实时处理装置
KR101863605B1 (ko) 2011-09-19 2018-07-06 삼성전자주식회사 스트림 데이터를 고속으로 처리하는 프로세서
US20130081021A1 (en) * 2011-09-23 2013-03-28 Elwha LLC, a limited liability company of the State of Delaware Acquiring and transmitting tasks and subtasks to interface devices, and obtaining results of executed subtasks
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广东移动通信有限公司 一种广播接收者的控制方法、装置及移动终端
JP7038608B2 (ja) * 2018-06-15 2022-03-18 ルネサスエレクトロニクス株式会社 半導体装置
JP7004083B2 (ja) * 2018-10-23 2022-01-21 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Citations (5)

* 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 パタ−ン認識装置
JPH0247757A (ja) * 1988-08-09 1990-02-16 Sanyo Electric Co Ltd 情報処理装置
EP0360527A2 (en) * 1988-09-19 1990-03-28 Fujitsu Limited Parallel computer system using a SIMD method
EP0411497A2 (en) * 1989-07-31 1991-02-06 Hitachi, Ltd. Data processing system and data transmission and processing method
JPH0784966A (ja) * 1993-08-06 1995-03-31 Toshiba Corp データ処理装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4739476A (en) * 1985-08-01 1988-04-19 General Electric Company Local interconnection scheme for parallel processing architectures
JPH0814816B2 (ja) 1988-09-19 1996-02-14 富士通株式会社 並列計算機
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
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

Patent Citations (5)

* 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 パタ−ン認識装置
JPH0247757A (ja) * 1988-08-09 1990-02-16 Sanyo Electric Co Ltd 情報処理装置
EP0360527A2 (en) * 1988-09-19 1990-03-28 Fujitsu Limited Parallel computer system using a SIMD method
EP0411497A2 (en) * 1989-07-31 1991-02-06 Hitachi, Ltd. Data processing system and data transmission and processing method
JPH0784966A (ja) * 1993-08-06 1995-03-31 Toshiba Corp データ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111290697A (zh) * 2018-12-07 2020-06-16 上海寒武纪信息科技有限公司 数据压缩方法、编码电路和运算装置

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2002027513A1 (fr) Systeme multiprocesseurs, systeme de traitement de donnees, procede de traitement de donnees et programme d&#39;ordinateur
CN109284823B (zh) 一种运算装置及相关产品
CN110163359B (zh) 一种计算装置及方法
JPH02501599A (ja) 多重プロセッサ・アレイにおける仮想処理手法および仮想プロセッサ
CN111630505B (zh) 深度学习加速器系统及其方法
TW202321999A (zh) 一種計算裝置及方法
CN111752691B (zh) Ai计算图的排序方法、装置、设备及存储介质
CN109670581B (zh) 一种计算装置及板卡
Chen et al. Highly efficient alltoall and alltoallv communication algorithms for gpu systems
JP3872034B2 (ja) マルチプロセッサシステム、データ処理方法、データ処理システム、コンピュータプログラム、半導体デバイス
JP2000163384A (ja) 半導体装置
WO2022095676A1 (zh) 神经网络稀疏化的设备、方法及相应产品
Wirawan et al. Parallel DNA sequence alignment on the cell broadband engine
US12001893B1 (en) Distributed synchronization scheme
CN111381875B (zh) 数据比较器、数据处理方法、芯片及电子设备
CN111382848B (zh) 一种计算装置及相关产品
JP2002140717A (ja) 画像処理方法及び装置、コンピュータプログラム
JPH06505588A (ja) 並列ソフトウェア処理用ネットワーク構造
JP2710162B2 (ja) 荷電ビーム描画用データの作成方法及び作成装置
CN113626083B (zh) 数据处理装置以及相关产品
WO2020125092A1 (zh) 计算装置及板卡
CN115471391A (zh) 用于单目标检测的芯片、板卡、方法及计算装置
CN118278479A (zh) 一种基于指令集的众核类脑处理器及工作方法
CN118733206A (zh) 基于多核系统的任务调度方法、装置及相关产品
CN115543329A (zh) 对运行于人工智能芯片上的区域候选网络进行优化的编译方法及其相关产品

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU BR CA CN IN KR MX NZ RU SG

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BE CH DE DK ES FI FR GB IT NL SE

WWE Wipo information: entry into national phase

Ref document number: 2001972530

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 018029167

Country of ref document: CN

Ref document number: 1020027006766

Country of ref document: KR

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1020027006766

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2001972530

Country of ref document: EP