WO2007099950A1 - 高速pe間データ再配置機能を有するプロセッサアレイシステム - Google Patents

高速pe間データ再配置機能を有するプロセッサアレイシステム Download PDF

Info

Publication number
WO2007099950A1
WO2007099950A1 PCT/JP2007/053633 JP2007053633W WO2007099950A1 WO 2007099950 A1 WO2007099950 A1 WO 2007099950A1 JP 2007053633 W JP2007053633 W JP 2007053633W WO 2007099950 A1 WO2007099950 A1 WO 2007099950A1
Authority
WO
WIPO (PCT)
Prior art keywords
transfer
block
pes
buffer means
distance
Prior art date
Application number
PCT/JP2007/053633
Other languages
English (en)
French (fr)
Inventor
Shorin Kyo
Original Assignee
Nec Corporation
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 Nec Corporation filed Critical Nec Corporation
Priority to US12/224,561 priority Critical patent/US7783861B2/en
Priority to CN2007800076634A priority patent/CN101401088B/zh
Priority to EP07737435A priority patent/EP2000922A4/en
Priority to JP2008502796A priority patent/JP4483991B2/ja
Publication of WO2007099950A1 publication Critical patent/WO2007099950A1/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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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 plug processor array system in which a large number of processing elements (PE) are interconnected on an on-chip.
  • PE processing elements
  • an on-chip one-dimensional processor array or a media processor having a SIMD (Single Instruction Multiple Data) instruction having a similar configuration has been used for image processing of video signals and the like.
  • SIMD Single Instruction Multiple Data
  • the images are input in units of lines in order as shown in FIG. 7
  • each PE applies the command broadcast from the control processor (CP) to the data in its local memory based on SIMD type control. Realize only parallel processing.
  • Patent Document 1 Japanese Patent Laid-Open No. 5-342184
  • Non-patent document 1 "A video recognition LSI for automobiles with 128 4-way VLIW RISC cores" written by Akinori Kyo, IEICE Technical Report, Integrated Circuits Research Group (ICD), May 2003, Vol 103, No. 89, pp. 19— 24
  • the target data to be processed is all PEs, such as edge detection processing performed on all pixels only at the first stage.
  • edge detection processing performed on all pixels only at the first stage.
  • Non-Patent Document 1 for example, in a one-dimensional processor array in which data is allocated to PEs in units of image columns, there is a positional overlap in the column direction between regions. Normally, the processing amount increases in proportion to the number of overlaps, and the load between PEs is higher than the PE that handles the processing of image sequences where overlaps occur (for example, PEN-2 in Fig. 9 (a)). The process becomes inhomogeneous and processing performance decreases.
  • N is set in the counter C (step 1000).
  • step 1001 Repeat until counter C reaches zero. If the counter C is non-zero in step 1001, the following processing is performed.
  • TMP is set to C + K (step 1003).
  • C is set to C-1 (step 1006), and the process returns to the determination of step 1001.
  • a main object of the present invention is to provide a processor array system capable of efficiently realizing load distribution of processing by rearranging data such as pixels between PEs at high speed.
  • a processor array system includes a PE block array having at least three PE blocks including a plurality (M) of processor elements (hereinafter referred to as “PE”).
  • the at least one PE block is connected to at least one other PE block different from the one PE block by M first signal lines each having a predetermined bit, and the one PE block and At least one other PE block different from the other PE block is connected by one M bit second signal line with a predetermined bit, and the PE included in the one PE block is the M And selector means for selecting one signal line from among the first signal lines and the M second signal lines.
  • the selector means includes first selector means for selecting one signal line from the M first signal lines, and one from the M second signal lines. From the second selector means for selecting the signal line, the one signal line selected by the first selector means, and the one signal line selected by the second selector means. And a third selector for selecting one signal line.
  • the plurality of PE blocks are connected in the form of one-dimensional coupling or ring coupling with one PE block as one node, and the PE blocks are adjacent on one side of the PE block.
  • the PE block is connected to the PE block by the M first signal lines, and the PE block adjacent to the other side of the PE block is connected to the PE block by the M second signal lines.
  • N where N is a natural number greater than 1
  • M is a natural number greater than 1 and less than N, and a divisor of N
  • M adjacent PEs constitute one PE block
  • the transfer path in the first transfer direction by the M PEs in the PE block constitutes the M first signal lines.
  • the M second signal lines are configured by the transfer paths in the second transfer direction by all M PEs in the PE block.
  • N PEs are connected in the form of a one-dimensional connection or ring connection with one PE as one node, and the connection between adjacent PEs
  • the first transfer direction between the PEs that connect PEs having a distance M (where M is a natural number greater than 1 and less than N, and a divisor of N) and the second
  • M adjacent PEs constitute one PE block
  • the transfer paths in the first transfer direction by the M PEs in the PE block are the M transfer paths.
  • a first signal line is configured, and a transfer path in the second transfer direction by M PEs in the PE block configures the M second signal lines.
  • each PE in the PE block is adjacent to each other by a first transfer direction coupling line and a second transfer direction coupling line for all PEs in the PE block. Combined with PE in distance PE from own PE in PE block.
  • each PE is a PE
  • First transfer buffer means (L) for storing transfer data of a transfer path (BO) in the first transfer direction that connects PEs having a distance of M to the PE;
  • Second transfer buffer means (R) for storing the transfer data of the transfer path (B1) in the second transfer direction that connects the PEs having a distance of M to the PE;
  • First selector means (LS) for selecting one of the plurality of first transfer buffer means in the PE block
  • Second selector means for selecting one of the plurality of second transfer buffer means in the PE block
  • each PE stores transfer data of a transfer path in a first transfer direction or a second transfer direction in which PEs having a distance of M from each other are connected to each other.
  • Buffer means (L) L
  • Selector means (LS) for selecting one of the plurality of transfer buffer means (L) in the PE block;
  • a transfer result buffer means (T) for storing a selection result obtained by controlling the selector means (LS) as a transfer result to the same PE.
  • the right or left direction of the own PE is positive, the opposite is negative, and the lattice distance viewed from the own PE position of the PE that holds the data (D) that is finally relocated to the own PE Is set to K (where K can be any value of NZ2 ⁇ K ⁇ NZ2), the mask register (MR) that determines whether each PE operates or not participates in the transfer operation.
  • K can be any value of NZ2 ⁇ K ⁇ NZ2
  • MR mask register
  • the register means (F) is turned off, and the transfer result buffer means (T) counts the grid distance (K) and the right or left force in the PE block. Control to store the result of subtraction.
  • the right or left direction of the own PE is positive, the opposite is negative, and the lattice distance viewed from the own PE position of the PE having the data D that is finally relocated to the own PE is represented by K ( However, if K is 0 ⁇ K ⁇ N—any value of 1), the mask register (MR) that determines whether each PE is operating or not is set on the operating side to participate in the transfer operation. And
  • the transfer result buffer means (T) is controlled so as to store the addition result of the lattice distance ( ⁇ ) and its own number when counted from the left or right in the ⁇ block.
  • the register means (F) when the register means (F) is on, if the value ⁇ of the transfer result buffer means is greater than or equal to ⁇ , the value of ⁇ - ⁇ is stored in the transfer result buffer means ( ⁇ ). If the transfer result buffer means ( ⁇ ) is smaller than ⁇ , the contents of the first transfer buffer means (L) of ⁇ number force ⁇ when the left force is counted in the ⁇ block are Select with the selector means (LS), store in the transfer result buffer means ( ⁇ ), set the mask register (MR) to non-operation,
  • the register means (F) When the register means (F) is off, if the transfer result buffer means (T) is ⁇ M or less, the value of T + M is stored in the transfer result buffer means (T), and T is ⁇ M If it is larger, the content of the second transfer buffer means (R) whose PE number is T when counted from the right in the PE block is selected by the second selector means (RS), and the transfer result buffer is selected.
  • the PEs transfer the contents of the first transfer buffer means (L) and the second transfer buffer means (R) to the PE, respectively, and the first transfer buffer means (L) and the second transfer buffer.
  • the operation of storing the data transferred from the right M adjacent PE and the left M adjacent PE in the buffer means (R) is set so that the mask register MR of all PEs is inactive. Until there is a means (control processor CP) to control each PE that the mask register (MR) is set to operate repeatedly.
  • the mask register (MR) is set to non-operation, and all PEs use the left coupling line (BO), and the first transfer buffer means (M) L) Transfers the contents of (L) and stores the data transferred from the right M adjacent PE to the first transfer buffer means (L). Until each of the PEs is set to operate repeatedly, the mask register (MR) is set to operate repeatedly. With stage (control processor CP)!
  • each of the plurality of PE blocks includes M processor elements (hereinafter referred to as "PE"), and the distance is M (where M is a natural number greater than 1).
  • PEs constituting a processor array system having a first transfer direction between PEs and a transfer path in the Z or second transfer direction between the PEs, the first and / or first PEs
  • a PE is provided that includes selector means for selecting one of a plurality of transfer data to a PE block to which the PE belongs by a transfer path in two transfer directions.
  • the PE of the present invention includes: a first transfer buffer means for storing transfer data of a transfer path in the first transfer direction that couples PEs having a distance M from the PE; and the PE A second transfer buffer means for storing transfer data of a transfer path in the second transfer direction that couples PEs having a distance of M, and M of the first transfer buffer means in the PE block.
  • a first selector that selects one, a second selector that selects one of the M second transfer buffer means in the PE block, and a register means for storing transfer direction information.
  • the PE of the present invention includes transfer buffer means for storing transfer data of a transfer path in the first transfer direction or the second transfer direction in which the PEs whose distance from the PE is M are combined, The selector means selects one of the plurality of transfer buffer means for storing the transfer data of the transfer path in the first transfer direction or the second transfer direction, and uses the transfer path to select the distance M.
  • Transfer result buffer means for storing a selection result as a transfer result to the PE is included.
  • a system according to the present invention includes a plurality of PE blocks each including a plurality of processor elements (hereinafter referred to as "PE" t), which are linearly coupled or ring-coupled. Connected to the PEs of other PE blocks that are separated by a predetermined distance from the local PE with respect to the first transfer direction via a coupling line in the first transfer direction,
  • PE processor elements
  • Another PE probe that is separated from the own PE by a predetermined distance with respect to the second transfer direction via a coupling line to the second transfer direction opposite to the first transfer direction. Connected with the PE
  • First and second transfer buffer means for storing transfer data of the coupling line in the first and second transfer directions, respectively;
  • the first transfer buffer means of the own PE first selector means for selecting one of the first transfer buffer means of other PEs in the PE block to which the own PE belongs, and the own PE
  • the PE it is connected to the PE of another PE block that is separated by a predetermined distance from the own PE via a connecting line,
  • Transfer buffer means for storing transfer data of the coupling line
  • the forwarding buffer means of the own PE and selector means for selecting one of the forwarding buffers of other PEs in the PE block to which the own PE belongs;
  • a transfer result buffer means for storing a selection result obtained by controlling the selector means according to the stored value as a transfer result to the own PE.
  • the invention's effect it is possible to efficiently realize processing load distribution.
  • FIG. 1 is a block diagram showing a schematic configuration of a one-dimensional processor array of the present invention.
  • FIG. 2 is a block diagram showing a configuration of coupling lines between PE blocks of the one-dimensional processor array of the present invention.
  • FIG. 3 is a block diagram showing the configuration of the best mode for carrying out the present invention.
  • FIG. 4 is a flowchart showing the first half of the operation of the best mode for carrying out the present invention.
  • FIG. 5 is a flowchart showing the second half of the operation of the best mode for carrying out the present invention.
  • FIG. 6 is a diagram showing a specific example of the operation of the best mode for carrying out the present invention.
  • FIG. 7 is a block diagram showing a schematic configuration of an existing one-dimensional processor array as a background technology.
  • FIG. 8 is a diagram for explaining a problem to be solved by the present invention.
  • FIG. 9 is a diagram for explaining a problem to be solved by the present invention.
  • FIG. 10 is a diagram showing a flow of operations in the case of the prior art.
  • FIG. 11 is a diagram showing one of the effects of the present invention.
  • FIG. 12 is a flowchart showing the first half of the operation of the best mode for carrying out the second invention of the present invention.
  • FIG. 13 is a flowchart showing the second half of the operation of the best mode for carrying out the second invention of the present invention.
  • PE array 100 one-dimensional processor array (PE array)
  • M is the number of PEs in a PE block, which is the unit of layout during chip development
  • X is the number of unit transfer bytes between PEs.
  • Relocation target is N pieces of X byte data D
  • the control processor CP controls the following for the PE array (see Figure 4).
  • each PE stores the data D on its own PE in the transfer buffer L and the scale (step 400 in FIG. 4).
  • the result obtained by adding the self PE number when the left force is counted in the PE block to the grid distance K is stored in the transfer result buffer T (Fig. 4). 402).
  • the result obtained by subtracting the own PE number from the right distance in the PE block from the grid distance K is stored in the transfer result buffer T (403 in FIG. 4). If the grid distance K is greater than 0, set the direction register F to 1 (402 in Fig. 4). If the grid distance K is negative, set the direction register F to 0 (403 in Fig. 4).
  • the PE array is controlled so that 1 is stored in MR (405 in Fig. 4).
  • control processor CP monitors the mask registers MR of all PEs, and controls the PE array so that the following operation is repeated for each step until all the mask registers MR of all PEs become zero. .
  • transfer result buffer T is greater than or equal to M
  • the value of T—M is stored in transfer result buffer T (step 506 in FIG. 5)
  • transfer result buffer T is smaller than M.
  • the content of the transfer buffer L of the PE whose PE number is T when the left force is counted in the PE block is selected by the selector LS, and stored in the transfer result buffer T (step 503 in FIG. 5).
  • Register MR is set to zero (step 504 in Figure 5).
  • transfer buffer L and transfer buffer R are transferred to adjacent left and right PEs (steps 505 and 510 in FIG. 5) using transfer lines B0 and B1. Operates to store data transferred from the right M adjacent and left M adjacent PEs in the L and transfer buffer scales, respectively.
  • N X-byte data in one row can be rearranged with an efficiency of about 12M times.
  • the present invention has the inter-PE coupling line B0 and the coupling line B1 that are coupled to the PE of a distance M that is not between adjacent PEs, and each PE has a maximum (1 + ( N ⁇ 2M))
  • the neighboring PE block force is transferred and the transfer result as a component from 2M data for each step that passes through the own PE block one after another. It is configured to extract the data to be held with a simple operation using the register T, direction register F, transfer buffer L, transfer buffer S, selector LS, RS, and mask register MR.
  • the ease of layout can be maintained. That is, the present invention! Because the PE block consisting of M PEs is used as the unit of layout! /, The one-dimensionality of the coupling is maintained, and the layout on the chip is easier than when multi-dimensional coupling is used. It has become.
  • the data transfer distance between PEs is about N ⁇ 2, which is equivalent to that of an octagonal lattice connection which is a typical two-dimensional connection.
  • the scale of the data transfer selector required for each PE is 8 in the case of octagonal lattice connection, as shown in Fig. 11 (a), while 8 selectors are required to select one from 8 data.
  • Fig. 11 (b) when N is 1024 (M is 32) and the required force N is less than 1024, for example 256 (M is 16).
  • the hardware scale can be reduced within a practical N range.
  • the first embodiment of the present invention includes a PE array 100 having N PEs 101 and a control processor 110 for supplying instructions to the PE array.
  • the PE array 100 includes N ⁇ M PE blocks 102 each including M PEs 101 (where M is a divisor of N) and a left coupling line BO (103 that connects adjacent PE blocks to each other. , Right side to left) and right connecting line Bl (104, left side to right).
  • each PE 101 in one PE block 102 is coupled to a PE at a distance M (M is 4 in FIG. 2) from its own PE in the adjacent PE block 102.
  • BO and B1 are collections of connecting lines from right to left and left to right for all PEs in PE block 102, respectively.
  • each PE 101 stores transfer buffer means L (301) and R (302) for storing data transferred through a corresponding part of the connection lines of BO and B1.
  • Mask register MR (307), which controls the operation / non-operation of the kite and is accessible to the control processor CP (110)
  • the PE 101 normally includes an instruction decoder DE (308), a register file RF (309), a data memory (310), and a calculator (311).
  • the transfer result buffer means T (305) transfers the contents to the register file RF (309), writes it to the data memory (310), or directly operates the operand of the arithmetic unit (311). It is configured to be used as
  • Each PE101 stores D in the transfer buffer means L and R, and sets the MR of all PEs to 1, assuming that the data sent by itself is D.
  • T If T is greater than or equal to M, store the value of TM in T If T is smaller than M, select the content of PE with PE number T counted from the left in the block with LS, store it in T, and set MR to zero.
  • T If T is -M or less, store the value of T + M in T,
  • T is greater than -M, select the R contents of the PE with the PE number T when counted from the right in the block with RS, store it in T, and set MR to zero.
  • control processor 110 continues to send the same instruction code “MVLR” to the PE at each step until the MR of all PEs becomes zero.
  • FIG. 4 is a flowchart relating to operations performed at each PE when the “MVSET” instruction code is sent from the control processor 110.
  • D is set to L and R, respectively (step 400).
  • [0070] 1 is set in the MR of all PEs (step 405).
  • the direction register F is set to 0, and the transfer result buffer T is stored in T with the result of adding the own PE number when the right force is counted in the PE block to K. (Step 403).
  • steps 400 to 405 Since the operations in steps 400 to 405 are simple, they can usually be performed in one step.
  • FIG. 5 is a flowchart relating to operations performed by the control processor 110 and each PE relating to the “MVLR” instruction code.
  • the instruction code “MVLR” is sent to the PE array 100 (step 500).
  • step 501 it is determined whether or not the direction register F is 1 on the PE whose mask register MR is 1 (step 501).
  • the mask register MR is set to 0 (step 504).
  • connection line BO the data in L is transferred to the transfer buffer L of the PE separated by M in the left direction (step 505).
  • the transfer result buffer T is updated to T—M (step 506).
  • T is larger than -M
  • R on the PE whose PE number is T when counted from the right in the PE block is selected by RS and stored in transfer result buffer T (step 508).
  • the mask register MR is set to 0 (step 509).
  • the data in R is transferred to the transfer buffer R of the PE separated by M in the right direction using the coupling line B1 (step 510).
  • the transfer result buffer T is updated to T + M (step 511).
  • steps 501 to 511 are simple, they can be normally performed in one step.
  • N pieces of transfer data D sent from all PEs when the number of PEs is N is 1 + (N ⁇ It can pass through all PE blocks with 2M) steps.
  • the second embodiment of the present invention is that the right coupling line B1 does not exist in FIGS. 1 and 2, and the transfer buffer R, selector in FIG.
  • the configuration is the same as that of the first embodiment of the present invention, except that RS, direction register, and right coupling line B1 do not exist.
  • D is stored in transfer buffer means L, MR of all PEs is set to 1, and transfer result buffer means T is the result of adding K and its own PE number when counted from the left in the PE block Is stored.
  • T is greater than or equal to M
  • the value of T—M is stored in the transfer result buffer T.
  • T is smaller than M
  • control processor 110 continues to send the same instruction code “MVLR” to the PE every cycle until the MR of all PEs becomes zero.
  • FIG. 12 is a flowchart for explaining the operation executed in each PE when the “MVSET” instruction code is sent from the control processor 110.
  • Steps 1200 to 1202 are simple and can usually be done in one step.
  • FIG. 13 is a flowchart for explaining the operation performed by the control processor 110 and each PE related to the “MVLR” instruction code.
  • MR is set to 0 (step 1304), and then the data in L is transferred to the PE transfer buffer L separated by M in the left direction using the bond line BO (step 1305).
  • steps 1302 to 1306 are simple, they can usually be performed in one step.
  • PEs are coupled at a distance M, and therefore, when the number of PEs is N, N pieces of transfer data D sent from all PEs are 1 + (N ⁇ M) steps. You can pass all PE blocks by multiplying the number.
  • each PE further selects selectors LS and RS for selecting one of the contents of transfer buffer L included in the M PEs in the PE block. Since it has a transfer result buffer T that also serves as a counter that specifies whether it should be used in the network, it uses the BO to transfer each PE block to the right force to the left from the group of transfer data D. In this step, the necessary items can be selected efficiently at the timing and imported into the T of the own PE.
  • the processing is stopped when all PEs obtain transfer data using the mask register MR. Therefore, in more cases, from 1 + (N ⁇ M) The number of steps can be used to complete the entire operation.
  • the number of steps required to rearrange N pixels for one row between PEs is approximately doubled. Increased power Since there are fewer components, there is an effect that the increase in hardware scale is smaller.
  • FIG. 6 is a diagram for specifically explaining the operation of the present invention described above.
  • Fig. 6 (a) the settings on one PE are represented in each column, with N being 16 and M being 4. Also, for simplicity, each PE sets its own PE number as send data D, and any value 8 to 7 is set as the distance value K to the transfer source PE. As shown in Fig. 4, the results of setting the values of F, T, L, R, and MR using ⁇ and PE numbers from the right and left in the block are shown.
  • the T column in Fig. 6 (a) is obtained by subtracting the K column belonging to the same column and the contents of the mesh column of each column, and adding the positive column when K is negative.
  • Figures 6 (b) to 6 (d) show the state after the first to third iterations of the MVLR instruction ( However, L and R show the values before update) in the table format corresponding to Fig. 6 (a)!
  • Fig. 6 (e) represents the state (distance and direction) of data movement between PEs performed between Fig. 6 (b) and Fig. 6 (d) with arrows.
  • the processing load can be distributed among the PEs to improve the performance of the one-dimensional processor array. Applicable. It can also be applied to enlargement / reduction of images mapped to each PE of a one-dimensional processor array that only requires processing load distribution!
  • the present invention has been described with reference to the above-described embodiments. However, the present invention is not limited to the configurations of the above-described embodiments, and various modifications that can be made by those skilled in the art within the scope of the present invention. Of course, including shape and modification.

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)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

明 細 書
高速 PE間データ再配置機能を有するプロセッサアレイシステム
技術分野
[0001] 本発明は、オンチップ上に多数のプロセッシングエレメント(PE)を相互結合したプ 口セッサアレイシステムに関する。
背景技術
[0002] 従来より、ビデオ信号などの画像処理用にオンチップ一次元プロセッサアレイある いはそれに構成が類似した SIMD (Single Instruction Multiple Data)命令を 有するメディアプロセッサが用いられて 、る。例えば非特許文献 1に提示されて 、る ビデオ画像認識処理に向けた一次元プロセッサアレイでは、図 7に示すように、一端 力も順に画像を行単位で入力していき、そして隣接 PE同士には隣接する 1〜数列分 の画像列を割り付けた上で、 SIMD型制御に基づき、各 PEは、制御プロセッサ(CP) から放送される命令を自ローカルメモリ上のデータに適用することにより、 PE数分だ けの並列処理を実現する。
[0003] 特許文献 1 :特開平 5— 342184号公報
非特許文献 1:京 昭倫著「128個の 4ウェイ VLIW型 RISCコアを集積した車載向け 動画認識 LSI」電子情報通信学会研究会報告、集積回路研究会 (ICD) , 2003年 5月、 Vol. 103, No. 89, pp. 19— 24
発明の開示
発明が解決しょうとする課題
[0004] 一方、画像処理の中でも、特に画像に対し認識処理を行う場合では、最初の段階 でこそ全画素を対象に行われるエッジ検出処理などのように、処理すべき対象デー タが全 PE上に平等に存在するが、処理が進むに連れ、処理すべき対象データが PE 間で均一でなくなってしまうことが多!、。
[0005] 例えば多くの画像認識処理では、それまでの処理で、画像内の幾つかの(矩形)領 域を認識対象物が存在する箇所として特定すると、それらの候補領域のみが以降の 処理対象となる。また、それらの候補領域が、例えば図 8に模式的に示したように、お 互いに重なりを持つような位置関係で多数見つ力る場合が多いことも一つの特徴で ある。
[0006] ところが、例えば非特許文献 1のように、画像列を単位に PEへのデータ割付けを行 つている一次元プロセッサアレイでは、領域間で、列方向での位置的な重なりがある と、通常は重なりが発生した画像列の処理を受け持つ PE (例えば図 9 (a)の PEN— 2)がそうでない PEと比べ、重なりの回数分に比例して処理量が増え、 PE間で負荷 が不均一な状態となり処理性能が低下する。
[0007] こうした処理負荷の不均一性を解消するためには、図 9 (b)に示すように、複数の矩 形領域内画素データを、そっくり PE間で移動するという画素データの再配置処理を 行う必要がある。従来の一次元プロセッサアレイ上で、そうした画素データ再配置処 理を実現するためには、 PE数が 1行分の画素数と同様に Nであるとすると、図 10に 示すように、 CPを介する形で、 N個の画素を 1個ずつ逐次的に PE力 PEへと移動 することが、最も効率のよい方法になる。
[0008] カウンタ Cに Nをセットする(ステップ 1000)。
[0009] カウンタ Cがゼロとなるまで繰り返す。ステップ 1001の判定においてカウンタ Cが非 ゼロの場合、以下の処理を行い、ゼロの場合終了する。
[0010] PE番号が Cの PE上の Kをリードする(ステップ 1002)。
[0011] TMPを C+Kとする(ステップ 1003)。
[0012] PE番号が TMPの PE上の Dをリードする(ステップ 1004)。
[0013] PE番号が Cの PE上の Tに Dをライトする(ステップ 1005)。
[0014] Cを C—1にセットし (ステップ 1006)、ステップ 1001の判定に戻る。
[0015] この場合、図 10の 1001〜1006が示すように 6つの処理ステップを N回繰り返すた め、図 10の 1000を加えると、 PE間で 1行分の画素を再配置するのに、計 6N+ 1の ステップ数が必要であり、効率が悪い、という課題が存在していた。
[0016] なお、この課題の一つの解決方法として、 PE間結合に、 1次元結合ではなぐ例え ば特許文献 1に開示されて ヽるように、 2次元トーラスある 、はハイパ ·キューブと 、つ た、より高次元の結合形態を採用することで、ステップ毎の PE間距離を減らすァプロ ーチが考えられる。 [0017] しかし、結合の次元数を増やしてしまうと、チップ上でのレイアウトの自由度が減少 したり、あるいは PE間の配線距離が長くなつてしまうという問題点が存在していた。
[0018] したがって、本発明の主たる目的は、 PE間で画素などのデータを高速に再配置す ることにより処理の負荷分散を効率よく実現できるプロセッサアレイシステムを提供す ることにめる。
課題を解決するための手段
[0019] 本発明の第 1の側面(アスペクト)〖こ係るプロセッサアレイシステムは、複数 (M個)の プロセッサエレメント(以下、「PE」という)を含む PEブロックを少なくとも三つ有する P Eブロックアレイを備え、少なくとも一つの PEブロックは、前記一つの PEブロックとは 異なる少なくとも一つの他の PEブロックと 1本が所定ビットの M本の第 1の信号線で 結ばれるとともに、前記一つの PEブロック及び前記他の PEブロックとは異なる少なく とも一つのさらに別の PEブロックと 1本が所定ビットの M本の第 2の信号線で結ばれ、 前記一つの PEブロックに含まれる前記 PEが、前記 M本の第 1の信号線と前記 M本 の第 2の信号線の中から 1本の信号線を選択するセレクタ手段を備える、ことを特徴と する。
[0020] 本発明において、前記セレクタ手段は、前記 M本の第 1の信号線から一本の信号 線を選択する第 1のセレクタ手段と、前記 M本の前記第 2の信号線から一本の信号 線を選択する第 2のセレクタ手段と、前記第 1のセレクタ手段で選択された前記 1本の 信号線と、前記第 2のセレクタ手段で選択された前記 1本の信号線から、一本の信号 線を選択する第 3のセレクタと、を備える。
[0021] 本発明において、複数の前記 PEブロックは、一の PEブロックを一つのノードとする 一次元結合又はリング結合の形態で接続され、前記 PEブロックは、前記 PEブロック の一側で隣接する PEブロックと相互に前記 M本の第 1の信号線によって結ばれると ともに、前記 PEブロックの他側で隣接する PEブロックと相互に前記 M本の第 2の信 号線によって結ばれる。
[0022] 本発明において、 N個(ただし、 Nは 1より大きい自然数)の前記 PEに関して、距離 が M (ただし、 Mは 1より大きく Nより小さい自然数であり、 Nの約数)の PE同士を結合 する PE間での第 1の転送方向及び第 2の転送方向へのそれぞれの転送路を備え、 M個の隣接する PEがー個の PEブロックを構成し、前記 PEブロック内の M個の PEに よる前記第 1の転送方向への転送路が、前記 M本の第 1の信号線を構成し、前記 PE ブロック内の全 M個の PEによる前記第 2の転送方向への転送路カ 前記 M本の第 2 の信号線を構成する。
[0023] 本発明において、 N個(ただし、 Nは 1より大きい自然数)の前記 PE力 一つの PE を一つのノードとする一次元結合又はリング結合の形態で接続され、隣接 PE間の結 合線のほかに、さらに距離が M (ただし、 Mは 1より大きく Nより小さい自然数であり、 Nの約数)の PE同士を結合する PE間での前記第 1の転送方向及び前記第 2の転送 方向へのそれぞれの転送路を備え、 M個の隣接する PEがーつの PEブロックを構成 し、前記 PEブロック内の M個の PEによる第 1の転送方向への転送路が前記 M本の 第 1の信号線を構成し、前記 PEブロック内の M個の PEによる第 2の転送方向への転 送路が前記 M本の第 2の信号線を構成する。
[0024] 本発明において、前記 PEブロック内の各 PEは、前記 PEブロック内の全 PEに対す る第 1の転送方向の結合線及び第 2の転送方向の結合線により、それぞれ、隣接す る PEブロック内にある、自 PEから距離 Mの PEと結合されている。
[0025] 本発明にお 、て、前記各 PEは、
前記 PEとの距離が Mの PE同士を結合する前記第 1の転送方向への転送路 (BO) の転送データを格納する第 1の転送バッファ手段 (L)と、
前記 PEとの距離が Mの PE同士を結合する前記第 2の転送方向への転送路 (B1) の転送データを格納する第 2の転送バッファ手段 (R)と、
前記 PEブロック内の複数の前記第 1の転送バッファ手段の中から一つを選ぶ第 1 のセレクタ手段 (LS)と、
前記 PEブロック内の複数の前記第 2の転送バッファ手段の中から一つを選ぶ第 2 のセレクタ手段 (RS)と、
転送方向情報を格納するレジスタ手段 (F)と、
転送路を利用して、距離 Mの転送が全 PE間で行われる度に、格納値の絶対値を Mだけ減少させ、格納値が Mより小さくなつた時点で、前記格納値により、前記第 1の セレクタ手段 (LS)および第 2のセレクタ手段 (RS)を制御して得られる選択結果の!/ヽ ずれかを、レジスタ手段 (F)の値により選択し、前記 PEへの転送結果として格納する 転送結果バッファ手段 (T)と、を含む。
[0026] 本発明にお 、て、前記各 PEは、前記 PEとの距離が Mの PE同士を結合する第 1転 送方向または第 2の転送方向への転送路の転送データを格納する転送バッファ手段 (L)と、
前記 PEブロック内の複数の前記転送バッファ手段(L)の中から一つを選ぶセレクタ 手段 (LS)と、
転送路を利用して、距離 Mの転送が全 PE間で行われる度に、格納値の絶対値を Mだけ減少させ、前記格納値が Mより小さくなつた時点で、前記格納値で、前記セレ クタ手段 (LS)を制御して得られる選択結果を、同 PEへの転送結果として格納する 転送結果バッファ手段 (T)と、を含む。
[0027] 本発明において、自 PEの右方向または左方向を正、その逆を負とし、最終的に自 PEに再配置されるデータ(D)を保有する PEの自 PE位置からみた格子距離を K (伹 し Kは— NZ2≤K≤NZ2の任意の値であってよい)とした場合に、転送動作に参加 するよう各 PEの動作非動作を決定するマスクレジスタ (MR)を動作側に設定し、 前記第 1の転送バッファ手段 (L)と前記第 2の転送バッファ手段 (R)に、自 PE上の データ(D)を格納し、
格子距離 (K)が正の場合は、レジスタ手段 (F)をオンとし、前記転送結果バッファ 手段 (T)に格子距離 (K)と PEブロック内で左または右力 数えた場合の自 PE番号 との加算結果を格納し、
格子距離 (K)が負の場合は、レジスタ手段 (F)をオフとし、前記転送結果バッファ 手段 (T)に格子距離 (K)と PEブロック内で右または左力 数えた場合の自 PE番号 との減算結果を格納するように制御する。
[0028] 本発明において、自 PEの右方向または左方向を正、その逆を負、最終的に自 PE に再配置されるデータ Dを保有する PEの自 PE位置からみた格子距離を K (但し Kは 0≤K≤N— 1の任意の値であってよい)とした場合に、転送動作に参加するよう各 P Eの動作 ·非動作を決定するマスクレジスタ (MR)を動作側に設定し、
前記転送バッファ手段 (L)に自 PE上のデータ (D)を格納し、 前記転送結果バッファ手段 (T)に、格子距離 (Κ)と ΡΕブロック内で左または右から 数えた場合の自 ΡΕ番号との加算結果を格納するように制御する。
[0029] 本発明にお ヽて、レジスタ手段 (F)がオンの場合は、前記転送結果バッファ手段の 値 Τが Μ以上ならば Τ—Μの値を前記転送結果バッファ手段 (Τ)に格納し、前記転 送結果バッファ手段 (Τ)が Μより小さければ ΡΕブロック内で左力 数えた場合の ΡΕ 番号力 の ΡΕの前記第 1の転送バッファ手段 (L)の内容を、前記第 1のセレクタ手段 (LS)で選び、前記転送結果バッファ手段 (Τ)に格納し、マスクレジスタ (MR)を非動 作に設定し、
レジスタ手段 (F)がオフの場合には、前記転送結果バッファ手段 (T)がー M以下な らば T+Mの値を、前記転送結果バッファ手段 (T)に格納し、 Tがー Mより大きけれ ば PEブロック内で右から数えた場合の PE番号が Tの PEの前記第 2の転送バッフ ァ手段 (R)の内容を前記第 2のセレクタ手段 (RS)で選び、前記転送結果バッファ手 段 (T)に格納し、マスクレジスタ(MR)を非動作に設定した上、全 PEが、左結合線( BO)と右結合線 (B1)を利用し、 M隣接する左と右の PEへそれぞれ、前記第 1の転 送バッファ手段 (L)や前記第 2の転送バッファ手段 (R)の内容を転送すると共に、前 記第 1の転送バッファ手段 (L)と前記第 2の転送バッファ手段 (R)にそれぞれ右 M隣 接と左 M隣接 PEから転送されてきたデータを格納する動作を、全 PEのマスクレジス タ MRが非動作の設定になるまで、マスクレジスタ(MR)が動作設定である各 PEが繰 り返し行うように制御する手段 (制御プロセッサ CP)を備えて!/ヽる。
[0030] 本発明において、前記転送結果バッファ手段 (T)が M以上ならば T—Mの値を前 記転送結果バッファ手段 (T)に格納し、
Tが Mより小さければ PEブロック内で左から数えた場合の PE番号が Tの PEの前記 第 1の転送バッファ手段 (L)の内容を第 1のセレクタ手段 (LS)で選び前記転送結果 ノ ッファ手段 (T)に格納し、マスクレジスタ (MR)を非動作に設定した上、全 PEが左 結合線 (BO)を利用し、 M隣接する左の PEへ前記第 1の転送バッファ手段 (L)の内 容を転送すると共に、前記第 1の転送バッファ手段 (L)に右 M隣接 PEから転送され てきたデータを格納する動作を、全 PEのマスクレジスタ(MR)が非動作の設定にな るまで、マスクレジスタ (MR)が動作設定である各 PEが繰り返し行うように制御する手 段 (制御プロセッサ CP)を備えて!/ヽる。
[0031] 本発明の他の側面によれば、それぞれが M個のプロセッサエレメント(以下、「PE」 という)からなる複数の PEブロックを有し、距離が M (ただし、 Mは 1より大きい自然数 )の PE同士を結合する PE間での第 1の転送方向及び Z又は第 2の転送方向への転 送路を備えたプロセッサアレイシステムを構成する PEであって、前記第 1及び/又は 第 2の転送方向への転送路による前記 PEが属する PEブロックへの複数の転送デー タの中から一つを選ぶセレクタ手段を含む PEが提供される。
[0032] 本発明の PEは、前記 PEとの距離が Mの PE同士を結合する前記第 1の転送方向 への転送路の転送データを格納する第 1の転送バッファ手段と、前記 PEとの距離が Mの PE同士を結合する前記第 2の転送方向への転送路の転送データを格納する第 2の転送バッファ手段と、前記 PEブロック内の M個の前記第 1の転送バッファ手段の 中力 一つを選ぶ第 1のセレクタと、前記 PEブロック内の M個の前記第 2の転送バッ ファ手段の中から一つを選ぶ第 2のセレクタと、転送方向情報を格納するレジスタ手 段と、転送路を利用して、距離 Mの転送が全 PE間で行われる度に、格納値の絶対 値を Mだけ減少させ、格納値が Mよりも小さくなつた時点で、前記格納値により、前 記第 1のセレクタ及び前記第 2のセレクタを制御して得られる選択結果のいずれかを 、前記レジスタ手段の値により選択し、前記 PEへの転送結果として格納する転送結 果バッファ手段と、を含む。あるいは、本発明の PEは、前記 PEとの距離が Mの PE同 士を結合する前記第 1の転送方向又は第 2の転送方向への転送路の転送データを 格納する転送バッファ手段を備え、前記セレクタ手段は、前記第 1の転送方向又は 第 2の転送方向への転送路の転送データを格納する複数の前記転送バッファ手段 の中から一つを選び、転送路を利用して、距離 Mの転送が全 PE間で行われる度に、 格納値の絶対値を Mだけ減少させ、前記格納値が Mよりも小さくなつた時点で、前記 格納値で、前記セレクタ手段を制御して得られる選択結果を、前記 PEへの転送結果 として格納する転送結果バッファ手段を含む。
[0033] 本発明に係るシステムは、それぞれが複数のプロセッサエレメント(以下、「PE」 t ヽ う)を含み、一次結合又はリング結合される、複数の PEブロックを有し、前記 PEとして 第 1の転送方向への結合線を介して、前記第 1の転送方向に関して自 PEと予め定 められた所定距離離間している、他の PEブロックの PEと接続され、
前記第 1の転送方向と逆方向の第 2の転送方向への結合線を介して、前記第 2の 転送方向に関して自 PEと予め定められた所定距離離間している、さらに別の PEプロ ックの PEと接続され、
前記第 1及び第 2の転送方向への結合線の転送データをそれぞれ格納する第 1及 び第 2の転送バッファ手段と、
自 PEの前記第 1の転送バッファ手段と、前記自 PEが属する PEブロック内の他の P Eの前記第 1の転送バッファ手段の中から一つを選択する第 1のセレクタ手段と、 前記自 PEの前記第 2の転送バッファ手段と、前記自 PEが属する前記 PEブロック 内の他の PEの前記第 2の転送バッファ手段の中力 一つを選択する第 2のセレクタ 手段と、
前記結合線を利用した、前記所定距離離間した PE間での転送動作が行われる度 に、前記所定距離の値だけ格納値を更新し、前記格納値と前記所定距離の値とが 予め定められた大小関係となった時点で、前記格納値により、前記第 1のセレクタ手 段及び前記第 2のセレクタ手段を制御して得られる選択結果の 、ずれかを、転送方 向にしたがって選択し、選択結果を自 PEへの転送結果として格納する転送結果バッ ファ手段と、を含む PEを有する。あるいは、前記 PEとして、結合線を介して、自 PEと 予め定められた所定距離離間している、他の PEブロックの PEと接続され、
前記結合線の転送データを格納する転送バッファ手段と、
自 PEの前記転送バッファ手段と、前記自 PEが属する PEブロック内の他の PEの前 記転送バッファの中から一つを選ぶセレクタ手段と、
前記結合線を利用した、前記所定距離離間した PE間での転送動作が行われる度 に、前記所定距離の値だけ格納値を更新し、前記格納値と前記所定距離の値とが 予め定められた大小関係となった時点で、前記格納値により、前記セレクタ手段を制 御して得られる選択結果を、 自 PEへの転送結果として格納する転送結果バッファ手 段と、を含む PEを有する。
発明の効果 [0034] 本発明によれば、処理の負荷分散を効率よく実現することができる。その理由は、 本発明にお 、ては、 N個の PEを有する一次元プロセッサアレイ型システム上で PE間 結合の次元数を増やさずに、 1行分(=N個)のデータを PE間で相互に交換するの に要するステップ数を、短縮できるようにしたためである。また、本発明によれば、レイ アウトの容易性を維持することができる。さらに、本発明によれば、ハードウェア規模 を/ J、さくすることができる。
図面の簡単な説明
[0035] [図 1]本発明の一次元プロセッサアレイの概略構成を示すブロック図である。
[図 2]本発明の一次元プロセッサアレイの PEブロック間結合線の構成を示すブロック 図である。
[図 3]本発明を実施するための最良の形態の構成を示すブロック図である。
[図 4]本発明を実施するための最良の形態の動作の前半を示す流れ図である。
[図 5]本発明を実施するための最良の形態の動作の後半を示す流れ図である。
[図 6]本発明を実施するための最良の形態の動作の具体例を示す図である。
[図 7]背景技術である既存の一次元プロセッサアレイの概略構成を示すブロック図で ある。
[図 8]本発明が解決しょうとする課題を説明するための図である。
[図 9]本発明が解決しょうとする課題を説明するための図である。
[図 10]従来技術の場合の動作の流れを示す図である。
[図 11]本発明の効果の一つを示す図である。
[図 12]本発明の第 2の発明を実施するための最良の形態の動作の前半を示す流れ 図である。
[図 13]本発明の第 2の発明を実施するための最良の形態の動作の後半を示す流れ 図である。
符号の説明
[0036] 100 一次元プロセッサアレイ(PEアレイ)
101 PE (プロセッシング 'エレメント)
102 PEブロック(PEの集合体) 103 右から左への PE間結合線 BO (左結合線)
104 左力も右への PE間結合線 B1 (右結合線)
110 制御プロセッサ CP
113 命令コード
301 B0からの転送データを格納するための転送バッファ L
302 B1からの転送データを格納するための転送バッファ R
303 セレクタ手段 LS
304 セレクタ手段 RS
305 転送結果バッファ T
306 方向レジスタ F
307 マスクレジスタ MR
308 命令デコーダ DE
309 レジスタフアイノレ RF
310 データメモリ
311 演算器
400〜405、 500〜511、 1000〜1006、 1200〜1202、 1300〜1306 ステップ 発明を実施するための最良の形態
[0037] 上記した本発明についてさらに詳細に説述すべく添付図面を参照して以下に説明 する。
[0038] はじめに、本発明の概要'動作原理を説明しておく。 N個の PEを有する一次元プロ セッサアレイ型システムは、 Mをチップ開発時でのレイアウトの単位である PEブロック 内の PE数、 Xを PE間の単位転送バイト数とする。
[0039] 図 1、図 3を参照すると、本発明のシステムは、
(A)距離 Mの PE同士を結合することによって得られる PEブロック単位で見た場合 での M本の Xバイト幅結合線手段(左結合線) B0 (右から左へ)、及び、 M本の Xバイ ト幅結合線手段 (右結合線) B1 (左から右へ)と、
(B) PEブロック内の各 PEそれぞれに存在する、 B0と B1からのデータを格納する 転送バッファ L及び転送バッファ R、 (C) PEブロック内にある M個の Lと尺の中から 1つを選ぶ M入力 1出力のセレクタ L S及びセレクタ RS、
(D) PEの動作 Z非動作を制御するマスクレジスタ MR、
(E)転送結果の格納及びカウンタとしても用いられる転送結果バッファ T、
(F)転送方向を記憶する方向レジスタ F、
とを備えている。
[0040] 上記構成のもとで、
.再配置対象を N個の Xバイトデータ Dとし、
•自 PEの右方向を正、左方向を負とし、
•自 PEに再配置される予定のデータ Dが存在する PEの自 PE位置からみた格子距 離を K (但し Kは NZ2≤K≤NZ2の任意の値であってよい)とすると、
制御プロセッサ CPは、 PEアレイに対して以下の制御を行う (図 4参照)。
[0041] まず、各 PEが転送バッファ Lと尺に、 自 PE上のデータ Dを格納する(図 4のステップ 400)。
[0042] 格子距離 Kが正又は 0の場合には、格子距離 Kに、 PEブロック内で左力 数えた 場合の自 PE番号を加算した結果を、転送結果バッファ Tに格納する(図 4の 402)。 格子距離 Kが負の場合は、格子距離 Kに、 PEブロック内で右カゝら数えた場合の自 P E番号を減算した結果を転送結果バッファ Tに格納する(図 4の 403)。格子距離 Kが 0以上の場合は方向レジスタ Fに 1をセットし(図 4の 402)、格子距離 Kが負の場合に は方向レジスタ Fに 0をセットし(図 4の 403)、マスクレジスタ MRに 1を格納する(図 4 の 405)ように、 PEアレイを制御する。
[0043] 次に、制御プロセッサ CPは、全 PEのマスクレジスタ MRをモニターし、全 PEのマス クレジスタ MRが全てゼロになるまで、下記動作をステップ毎に繰り返すように、 PEァ レイを制御する。
[0044] すなわち、マスクレジスタ MRが非ゼロの PE上は、転送結果バッファ Tと方向レジス タ Fの値に応じ、
方向レジスタ Fが 1の場合は、転送結果バッファ Tが M以上である場合、 T— Mの値 を転送結果バッファ Tに格納し(図 5のステップ 506)、転送結果バッファ Tが Mより小 さ 、場合、 PEブロック内で左力 数えた場合の PE番号が Tである PEの転送バッファ Lの内容を、セレクタ LSで選び、転送結果バッファ Tに格納し(図 5のステップ 503)、 マスクレジスタ MRをゼロにセットする(図 5のステップ 504)。
[0045] 方向レジスタ Fが 0の場合、転送結果バッファ Tがー M以下である場合、 T+Mの値 を、転送結果バッファ Tに格納し(図 5のステップ 511)、転送結果バッファ Tが— M り大きい場合、 PEブロック内で右力 数えた場合の PE番号が— Tである PEの転送 バッファ Rの内容をセレクタ RSで選び、転送結果バッファ Tに格納し(図 5のステップ 508)、かつマスクレジスタ MRをゼロにセットする(図 5のステップ 509)ように制御す る。なお、転送結果バッファ手段 Tにおいて、方向レジスタ Fが 1のとき、セレクタ LSで 選択された出力を選択し、方向レジスタ F力 SOのとき、セレクタ RSで選択された出力を 選択する機能は、請求項 2の第 3のセレクタ手段に対応する。
[0046] その後、結合線 B0と結合線 B1を利用し、 M隣接する左と右の PEへ転送バッファ L や転送バッファ Rの内容を転送する(図 5のステップ 505、 510)と共に、転送バッファ Lと転送バッファ尺に、それぞれ、右 M隣接と左 M隣接する PEから転送されてきたデ ータを格納するように動作する。
[0047] 上記構成および動作により、最大 1 + (N÷ 2M)ステップ後に、各 PEの転送結果バ ッファ Tには、自 PE力 距離 Kにある PE上のデータが格納される。
[0048] このため、図 10に示す従来の手法と比べると、約 12M倍の効率で、 1行内にある N 個の Xバイトデータを再配置することができる。
[0049] すなわち、本発明によれば、従来のように、隣接 PEとではなぐ距離 Mの PEと結合 する PE間結合線 B0、結合線 B1を有すると共に、各 PEが、最大(1 + (N÷ 2M) )の ステップ数の間の各ステップ中に、隣接 PEブロック力 転送されて次々と自 PEブロッ クを経由していくステップ毎、 2M個のデータの中から、構成要素として転送結果レジ スタ T、方向レジスタ F、転送バッファ L、転送バッファ S、セレクタ LS、 RS、そしてマス クレジスタ MRを用いた、単純な動作で、保持しておくべきデータを抽出できるように 構成されている。
[0050] このため、本発明によれば、 N個の PEを有する一次元プロセッサアレイ型システム 上で PE間結合の次元数を増やさずに、 1行分(=N個)のデータを PE間で相互に交 換するのに要するステップ数が従来の最大( 1 + 6N)から最大( 1 + (N ÷ 2M) )に短 縮できる。
[0051] 本発明によれば、レイアウトの容易性を維持することができる。すなわち、本発明に お!、ては、 M個の PEからなる PEブロックをレイアウトの単位として!/、ることから結合の 一次元性が維持されており、多次元結合とした場合よりも、チップ上でのレイアウトが 容易化している。
[0052] 本発明において、 M = Nとすると、 PE間データ転送距離は最大で、約 N÷ 2と なり、これは典型的な 2次元結合である八方格子結合のそれと同等である。そして、 P E毎に必要となるデータ転送用セレクタの規模は、八方格子結合の場合では、図 11 (a)に示すように、 8データから 1つを選ぶセレクタが 8つ必要なのに対し、本発明によ れば、 Nが 1024 (Mが 32)では八方格子結合と同じ 8つ必要とする力 Nが 1024より も小さい場合、例えば 256 (Mが 16)では、図 11 (b)に示すように、その約半分の 4つ だけで済むため、実用的な Nの値域内ではハードウェア規模を小さくできる。
[0053] これは、本発明においては、転送方向が左右の 2方向のみで済むため実現に要す るハードウェアコストが低 、一次元結合と、 PE毎のローカルなセレクタを有効に組み 合わせているためである。以下、実施の形態について説明する。
[0054] 図 1を参照すると、本発明の第 1の実施の形態は、 N個の PE101を有する PEァレ ィ 100と、 PEアレイに命令を供給する制御プロセッサ 110と、を有する。
[0055] PEアレイ 100は、それぞれ力 M個(ただし、 Mは Nの約数)の PE101を含む N÷ M個の PEブロック 102と、隣接する PEブロック同士を接続する左結合線 BO(103、 右カゝら左へ)と、右結合線 Bl(104、左カゝら右へ)と、を備えている。
[0056] 図 2を参照すると、一つの PEブロック 102内の各 PE101は、隣接する PEブロック 1 02内にある自 PEから距離 M (図 2では Mが 4)の PEと結合しており、 BOと B1は、そ れぞれ、 PEブロック 102内の全 PEに対する右から左、左から右への結合線の集合 体である。
[0057] 図 3を参照すると、各 PE101は、 BOと B1のうちの対応する一部の結合線で転送さ れてきたデータを格納する転送バッファ手段 L (301)と R(302)、
PEブロック 102内の全 PEの Lと Rの中から 1つを選ぶ M入力(図 3では Mが 8) 1出 力のセレクタ手段 LS (303)と RS (304)、
転送結果の格納およびカウンターとしても用いられる転送結果バッファ手段 T (305 )、
転送方向を記憶する方向レジスタ F (306)、
ΡΕの動作非動作を制御しかつ制御プロセッサ CP (110)力ももアクセス可能なマス クレジスタ MR (307)、
とを含む。
[0058] また、 PE101は、通常、その他に命令デコーダ DE (308)、レジスタファイル RF (3 09)、データメモリ(310)、そして演算器 (311)を備えている。
[0059] 転送結果バッファ手段 T (305)は、その内容を、レジスタファイル RF (309)に転送 したり、データメモリ(310)ヘライトしたり、あるいは、直接に、演算器(311)のオペラ ンドとして利用できるように構成されて 、る。
[0060] これらの手段は、それぞれ概略つぎのように動作する。なお、自 PEの右方向を正、 左方向を負とした場合に、自 PEに再配置される予定のデータ Dが存在する PEの自 PE位置からみた格子距離を K (但し Kは NZ2≤K≤NZ2の任意の値であってよ い)としている。この定義は逆でも力まわないが、以下では、この定義(自 PEの左方向 を正、右方向を負)のもとでの各手段の概略動作を述べる。
[0061] 制御プロセッサ 110から「MVSET」という命令コード 113が送られてくるものとする 。各 PE101は、自分が送出するデータを Dとすると、転送バッファ手段 Lと Rに Dを格 納し、全ての PEの MRを 1にセットする。
[0062] Kが正の場合は、方向レジスタ Fに 1、かつ転送結果バッファ手段 Tに、 Kと PEブロ ック内で左力 数えた場合の自 PE番号との加算結果、 Kが負の場合は、 Fに 0、かつ 、転送結果バッファ T手段に、 Kと PEブロック内で右力も数えた場合の自 PE番号との 減算結果を格納する。通常これらの動作は、単純のため、 1ステップで完了できる。
[0063] 制御プロセッサ 110から「MVLR」という命令コード 113が送られてくると、マスクレ ジスタ MRが 1の PEは、
方向レジスタ Fが 1の場合には、
Tが M以上ならば、 T Mの値を Tに格納し、 Tが Mより小さければ、ブロック内で左から数えた場合の PE番号が Tの PEの の 内容を LSで選び Tに格納し、かつ、 MRをゼロにセットする。
[0064] 方向レジスタ F力^の場合には、
Tがー M以下ならば、 T+Mの値を Tに格納し、
Tがー Mより大きければ、ブロック内で右から数えた場合の PE番号が Tの PEの Rの内容を RSで選び、 Tに格納し、かつ MRをゼロにセットする。
[0065] 次に、全 PEが BOと B1を利用し、 M隣接する左と右の PEへ Lや Rの内容を転送す ると共に、 Lと Rに、それぞれ右 M隣接と左 M隣接 PEから転送されてきたデータを格 納する。通常、これらの動作は単純のため 1ステップで完了できる。
[0066] 一方、制御プロセッサ 110は、全 PEの MRがゼロになるまで、ステップ毎に同じ命 令コード「MVLR」を PEに送り続ける。
[0067] 次に、図 4及び図 5のフローチャートを参照して、本実施の形態の全体の動作につ いて詳細に説明する。
[0068] 図 4は、「MVSET」命令コードが制御プロセッサ 110から送られた場合の各 PEで 実施される動作に係わるフローチャートである。
[0069] Dを Lと Rにそれぞれセットする(ステップ 400)。
[0070] 全 PEの MRに 1をセットする(ステップ 405)。
[0071] K力 SO以上か否かを判定する (ステップ 401)。
[0072] Kが 0以上の場合には、方向レジスタ Fに 1をセットし、かつ、 Kに PEブロック内で左 力も数えた場合の自 PE番号を加算した結果を、転送結果バッファ Tに格納する (ステ ップ 402)。
[0073] K力 Oより小さい場合には、方向レジスタ Fに 0をセットし、転送結果バッファ Tに Kに PEブロック内で右力も数えた場合の自 PE番号を加算した結果を Tに格納する (ステ ップ 403)。
[0074] ステップ 400〜405の動作は単純であるため、通常 1ステップで行うことができる。
[0075] 図 5は、「MVLR」命令コードに係わる、制御プロセッサ 110および各 PEで実施さ れる動作に係わるフローチャートである。
[0076] まず、制御プロセッサ 110力 マスクレジスタ MRが 1である PEが存在するか否かを 調べる(ステップ 520)。
[0077] そのような PEが存在する場合に PEアレイ 100へ命令コード「MVLR」を送る(ステツ プ 500)。
[0078] PEアレイ側では、マスクレジスタ MRが 1の PE上において、方向レジスタ Fが 1であ るか否かを判定する(ステップ 501)。
[0079] 方向レジスタ Fが 1の場合には、ステップ 502〜505の動作、方向レジスタ F力 0の 場合には、ステップ 507〜511の動作を行う。
[0080] 転送結果バッファ Tが Mより小さ 、か否かを判定する(ステップ 502)。
[0081] 転送結果バッファ Tが Mより小さいければ、 PEブロック内で左力 数えた場合の PE 番号が Tの PE上の Lを LSで選び、転送結果バッファ Tに格納する(ステップ 503)。
[0082] マスクレジスタ MRを 0にセットする(ステップ 504)。
[0083] 結合線 BOを用いて、 L内データを左方向で Mだけ離れた PEの転送バッファ Lに転 送する(ステップ 505)。
[0084] Tが M以上の場合は、転送結果バッファ Tを T—Mに更新する (ステップ 506)。
[0085] Tがー Mより大きいか否かを判定する(ステップ 507)。
[0086] Tがー Mより大きければ、 PEブロック内で右から数えた場合の PE番号が Tの PE 上の Rを RSで選び、転送結果バッファ Tに格納する(ステップ 508)。
[0087] マスクレジスタ MRを 0にセットする(ステップ 509)。
[0088] 結合線 B1を用いて R内データを右方向で Mだけ離れた PEの転送バッファ Rに転 送する (ステップ 510)。
[0089] Tが— M以下の場合は、転送結果バッファ Tを T+Mに更新する (ステップ 511)。
[0090] ステップ 501〜511の動作は、単純であるため、通常 1ステップで行うことができる。
[0091] 次に、本実施の形態の効果について説明する。
[0092] 本実施の形態では、 PE同士を距離 Mで双方向で結合しているため、 PE数が Nに おいて、全 PEから送出された N個の転送データ Dは、 1 + (N÷ 2M)のステップ数を かけて全 PEブロックを通過できる。
[0093] また、本実施の形態では、さらに各 PE力 PEブロック内の M個の PEが有する転送 バッファ Lと Rの内容の中力も一つを選ぶためのセレクタ LSと RS、およびそれらをど のタイミングで利用すべきかを指定するカウンターとしての役割も果たす転送結果バ ッファ Tとを備えているため、 BOや B1を使って、各 PEブロックを、右から左、および、 左から右へと通過していく転送データ D群の中から、所定のステップにおいて、タイミ ングで効率よく必要なものを選択し、 自 PEの Tに取り込むことができる。
[0094] 本実施の形態では、マスクレジスタ MRを利用して全 PEが転送データを得た時点 で処理を停止するようにしているため、さらに多くの場合では、 1 + (N÷ 2M)よりも少 な!、ステップ数で全動作を終えることができる。
[0095] 次に、本発明の第 2の実施の形態について図面を参照して詳細に説明する。図 1、 図 2、図 3を参照すると、本発明の第 2の実施の形態は、図 1と図 2において、右結合 線 B1が存在しない点、及び、図 3において、転送バッファ R、セレクタ RS、方向レジス タ 、そして右結合線 B1が存在しない点以外は、本発明の第 1の実施の形態と同じ 構成をもつ。これらの手段は、概略つぎのように動作する。なお、 自 PEに再配置され る予定のデータ Dが存在する PEの自 PE位置力 右方向へみた場合の格子距離を K (但し Kは 0≤ K≤ N— 1の任意の値であつてよ!/、)とする。
[0096] 制御プロセッサ 110から「MVSET」という命令コード 113が送られてくるものとする 。各 PE101は自分が送出するデータを Dとする。
[0097] 転送バッファ手段 Lに Dを格納し、全ての PEの MRを 1にセットし、転送結果バッフ ァ手段 Tに Kと PEブロック内で左から数えた場合の自 PE番号との加算結果を格納す る。通常これらの動作は単純のため 1ステップで完了できる。
[0098] 制御プロセッサ 110から、「MVLR」という命令コード 113が送られてくると、 MRが 非ゼロの PEは、
Tが M以上ならば、 T—Mの値を転送結果バッファ Tに格納し、
Tが Mより小さければ、ブロック内で左から数えた場合の PE番号が Tの PEの Lの内 容を LSで選び、転送結果バッファ Tに格納し、かつ、マスクレジスタ MRをゼロにセッ トする。
[0099] 次に、全 PEが BOを利用し M隣接する左の PEへ Lの内容を転送すると共に、 Lに右
M隣接 PEから転送されてきたデータを格納する。
[0100] また通常これらの動作は、単純のため 1ステップで完了できる。 [0101] 一方、制御プロセッサ 110は、全 PEの MRがゼロになるまで、サイクル毎に同じ命 令コード「MVLR」を PEに送り続ける。
[0102] 次に、図 12及び図 13のフローチャートを参照して本発明の第 2の発明の実施の形 態の全体の動作について詳細に説明する。
[0103] 図 12は、「MVSET」命令コードが制御プロセッサ 110から送られた場合の各 PEで 実行される動作を説明するためのフローチャートである。
[0104] Dを転送バッファ Lにそれぞれセットする(ステップ 1202)。
[0105] 全 PEのマスクレジスタ MRに 1をセットする(ステップ 1201)。
[0106] Kに PEブロック内で左カゝら数えた場合の自 PE番号を加算した結果を転送結果バッ ファ Tに格納する(ステップ 1200)。
[0107] ステップ 1200〜1202の動作は単純であるため、通常 1ステップで行うことができる
[0108] 図 13は、「MVLR」命令コードに係わる、制御プロセッサ 110および各 PEで実施さ れる動作を説明するためのフローチャートである。
[0109] まず、制御プロセッサ 110力 MRが 1である PEが存在するか否かを調べ(1301)、 そのような PEが存在する場合に PEアレイ 100へ命令コード「MVLR」を送る(ステツ プ 1300)。
[0110] PEアレイ側では、 MRが 1の PE上において、転送結果バッファ Tが Mより小さいか 否かを判定する (ステップ 1302)。
[0111] 転送結果バッファ Tが Mより小さいければ、 PEブロック内で左力 数えた場合の PE 番号が Tの PE上の Lをセレクタ LSで選び、転送結果バッファ Tに格納する(ステップ
1303)。
[0112] MRを 0にセットし (ステップ 1304)、その後、結合線 BOを用いて、 L内データを左方 向で Mだけ離れた PEの転送バッファ Lに転送する(ステップ 1305)。
[0113] Tが M以上の場合は、転送結果バッファ Tを T—Mに更新する (ステップ 1306)。
[0114] また、ステップ 1302〜1306の動作は単純であるため、通常 1ステップで行うことが できる。
[0115] 次に、本発明の第 2の実施の形態の効果について説明する。 [0116] 本実施の形態では、 PE同士を距離 Mで結合しているため、 PE数が Nにおいて、 全 PEから送出された N個の転送データ Dは、 1 + (N÷M)のステップ数をかけて全 P Eブロックを通過できる。
[0117] また、本実施の形態では、さらに、各 PEが、 PEブロック内の M個の PEが有する転 送バッファ Lの内容の中から一つを選ぶためのセレクタ LSおよび RSを、どのタイミン グで利用すべきかを指定するカウンターとしての役割も果たす転送結果バッファ Tを 備えているため、 BOを使って各 PEブロックを右力 左へと通過していく転送データ D 群の中から、所定のステップにおいて、タイミングで効率よく必要なものを選択し、自 PEの Tに取り込むことができる。
[0118] 本実施の形態では、マスクレジスタ MRを利用して全 PEが転送データを得た時点 で処理を停止するようにしているため、さらに多くの場合では、 1 + (N÷M)よりも少 な!、ステップ数で全動作を終えることができる。
[0119] 本発明の第 2の実施の形態は、前記第 1の実施の形態と比べると、 1行分の N個の 画素を PE間で再配置するのに要するステップ数は 2倍程度に増える力 構成要素が より少ないため、ハードウェア規模の増加がより少ない、という効果がある。
実施例
[0120] 次に、具体的な実施例に即して説明する。図 6は、上記した本発明の動作を具体 的に説明するための図である。
[0121] 図 6 (a)では、各列で、 1つの PE上での設定を表現し、 Nを 16、 Mを 4としている。ま た、簡単のため各 PEは自 PE番号を送出データ D、任意の 8〜7の値を、転送元 P Eへの距離値 Kとして設定した場合に、 MVSET命令を発行した直後での、図 4のフ ローチャート通りに、 κやブロック内での右からおよび左からの PE番号を用いて F、 T 、 L、 R、 MRの値を設定した結果を示している。
[0122] ここで、図 6 (a)の T欄が、同じ列に属する Kと各列の網目欄の内容を、 Kが負の場 合は減算、正の場合は加算することにより求めていることがわかる。例えば 1列目の T = 6は、 K= 3とブロック内右からの PE # = 3の減算で求められ、 3列目の Τ=4 は、 Κ= 2とブロック内左からの ΡΕ # = 2の加算で求められている。
[0123] 図 6 (b)乃至図 6 (d)は、 MVLR命令の 1回〜 3回目の繰り返しを行った後の状態( 但し Lと Rは更新前の値を表示)を、図 6 (a)と対応した表形式でそれぞれ示して!/、る
[0124] 図 6 (b)乃至図 6 (d)では、図 5のフローチャートに従!、、 Tの絶対値が Mを下回つ たことにより、転送バッファ Lまたは Rの値力 転送結果バッファ Tへ格納された PEに ついては、当該 T欄および MR欄に網目を施して表示している。
[0125] 図 6力ら、 Kで指定された距離に位置する PE上の Dの値力 図 5のフローチャート に示した動作を 3回( = 1 + 16Z (4 X 2) )繰り返した後に、転送結果バッファ Tに格 納されて ヽることがわかる(図 6 (d)の T欄参照)。
[0126] 図 6 (e)は、図 6 (b)乃至図 6 (d)の間に行われた PE間データ移動の様子 (距離と方 向)を矢線にて表現したものである。
[0127] 本発明によれば、高速に PE間でデータを再配置することが可能な一次元プロセッ サアレイの提供により、処理負荷を PE間に分散させ一次元プロセッサアレイの性能 を向上する用途に適用できる。また処理負荷の分散のみでなぐ一次元プロセッサァ レイの各 PEにマッピングされた画像の拡大 '縮小'変形と!/、つた用途にも適用できる 。以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にの み制限されるものでなぐ本発明の範囲内で当業者であればなし得るであろう各種変 形、修正を含むことは勿論である。

Claims

請求の範囲
[1] 複数(M個)のプロセッサエレメント(以下、「PE」という)を含む PEブロックを少なくと も三つ有する PEブロックアレイを備え、
少なくとも一つの PEブロックは、前記一つの PEブロックとは異なる少なくとも一つの 他の PEブロックと 1本が所定ビットの M本の第 1の信号線で結ばれるとともに、前記 一つの PEブロック及び前記他の PEブロックとは異なる少なくとも一つのさらに別の P Eブロックと 1本が所定ビットの M本の第 2の信号線で結ばれ、
前記一つの PEブロックに含まれる前記 PEが、
前記 M本の第 1の信号線と前記 M本の第 2の信号線の中から 1本の信号線を選択 するセレクタ回路を備える、ことを特徴とするプロセッサアレイシステム。
[2] 前記セレクタ回路が、
前記 M本の第 1の信号線から一本の信号線を選択する第 1のセレクタ手段と、 前記 M本の前記第 2の信号線から一本の信号線を選択する第 2のセレクタ手段と、 前記第 1のセレクタ手段で選択された前記 1本の信号線と、前記第 2のセレクタ手段 で選択された前記 1本の信号線から、一本の信号線を選択する第 3のセレクタ手段と を備える、ことを特徴とする請求項 1記載のプロセッサアレイシステム。
[3] 複数の前記 PEブロックは、一の PEブロックを一つのノードとする一次元結合又はリ ング結合の形態で接続され、
前記 PEブロックは、前記 PEブロックの一側で隣接する PEブロックと相互に前記 M 本の第 1の信号線によって結ばれるとともに、前記 PEブロックの他側で隣接する PE ブロックと相互に前記 M本の第 2の信号線によって結ばれる、ことを特徴とする請求 項 1記載のプロセッサアレイシステム。
[4] N個(ただし、 Nは 1より大きい自然数)の前記 PEに関して、
距離が M (ただし、 Mは 1より大きく Nより小さい自然数であり、 Nの約数)の PE同士 を結合する PE間での第 1の転送方向及び第 2の転送方向へのそれぞれの転送路を 備え、
M個の隣接する PEがー個の PEブロックを構成し、前記 PEブロック内の M個の PE による前記第 1の転送方向への転送路が、前記 M本の第 1の信号線を構成し、 前記 PEブロック内の全 M個の PEによる前記第 2の転送方向への転送路カ 前記 M本の第 2の信号線を構成する、ことを特徴とする請求項 1記載のプロセッサアレイシ ステム。
[5] N個(ただし、 Nは 1より大きい自然数)の前記 PE力 一つの PEを一つのノードとす る一次元結合又はリング結合の形態で接続され、
隣接 PE間の結合線のほかに、さらに距離が M (ただし、 Mは 1より大きく Nより小さ い自然数であり、 Nの約数)の PE同士を結合する PE間での前記第 1の転送方向及 び前記第 2の転送方向へのそれぞれの転送路を備え、
M個の隣接する PEがーつの PEブロックを構成し、
前記 PEブロック内の M個の PEによる第 1の転送方向への転送路が前記 M本の第 1の信号線を構成し、
前記 PEブロック内の M個の PEによる第 2の転送方向への転送路が前記 M本の第 2の信号線を構成する、ことを特徴とする請求項 4記載のプロセッサアレイシステム。
[6] 前記 PEブロック内の各 PEは、
前記 PEブロック内の全 PEに対する第 1の転送方向の結合線及び第 2の転送方向 の結合線により、それぞれ、隣接する PEブロック内にある、自 PE力も距離 Mの PEと 結合されて 、る、ことを特徴とする請求項 3に記載のプロセッサアレイシステム。
[7] 前記各 PEが、
前記 PEとの距離が Mの PE同士を結合する前記第 1の転送方向への転送路の転 送データを格納する第 1の転送バッファ手段と、
前記 PEとの距離が Mの PE同士を結合する前記第 2の転送方向への転送路の転 送データを格納する第 2の転送バッファ手段と、
前記 PEブロック内の複数の前記第 1の転送バッファ手段の中から一つを選ぶ第 1 のセレクタ手段と、
前記 PEブロック内の複数の前記第 2の転送バッファ手段の中から一つを選ぶ第 2 のセレクタ手段と、
転送方向情報を格納するレジスタ手段と、 転送路を利用して、距離 Mの転送が全 PE間で行われる度に、格納値の絶対値を Mだけ減少させ、格納値が Mよりも小さくなつた時点で、前記格納値により、前記第 1 のセレクタ手段及び前記第 2のセレクタ手段を制御して得られる選択結果のいずれ かを、前記レジスタ手段の値に基づいて選択し、前記 PEへの転送結果として格納す る転送結果バッファ手段と、
を含む、ことを特徴とする請求項 4、 5、 6のいずれか一に記載のプロセッサアレイシ ステム。
[8] 前記各 PEが、
前記 PEとの距離が Mの PE同士を結合する前記第 1の転送方向又は第 2の転送方 向への転送路の転送データを格納する転送バッファ手段と、
前記 PEブロック内の複数の前記転送バッファ手段の中力 一つを選ぶセレクタ手 段と、
転送路を利用して、距離 Mの転送が全 PE間で行われる度に、格納値の絶対値を Mだけ減少させ、前記格納値が Mよりも小さくなつた時点で、前記格納値で、前記セ レクタ手段を制御して得られる選択結果を、前記 PEへの転送結果として格納する転 送結果バッファ手段と、
を含む、ことを特徴とする請求項 4、 5、 6のいずれか一に記載のプロセッサアレイシ ステム。
[9] 転送方向として、自 PEの前記第 1の転送方向又は前記第 2の転送方向の一方を 正、他方を負とし、
最終的に自 PEに再配置されるデータ Dを保有する PEの自 PE位置からみた格子 距離を K (但し Kは NZ2≤K≤NZ2の任意の値であってよい)とした場合に、転 送動作に参加するように各 PEの動作 ·非動作を決定するマスクレジスタを動作側に 設定し、
前記第 1の転送バッファ手段と前記第 2の転送バッファ手段に、自 PE上のデータを 格納し、
前記格子距離が正の場合には、
前記レジスタ手段はオンとされ、 前記転送結果バッファ手段には、前記格子距離と PEブロック内で前記第 1又は第 2の転送方向側力 数えた場合の自 PE番号との加算結果が格納され、
前記格子距離が負の場合には、
前記レジスタ手段はオフとされ、
前記転送結果バッファ手段には、前記格子距離と PEブロック内で、前記第 1又は 前記第 2の転送方向側力 数えた場合の自 PE番号との減算結果が格納される、こと を特徴とする請求項 7に記載のプロセッサアレイシステム。
[10] 転送方向として、自 PEの前記第 1の転送方向又は前記第 2の転送方向の一方を 正、他方を負とし、最終的に自 PEに再配置されるデータを保有する PEの自 PE位置 力もみた格子距離を K (但し Kは 0≤K≤N— 1の任意の値であってよい)とした場合 に、転送動作に参加するよう各 PEの動作 ·非動作を決定するマスクレジスタを動作側 に設定し、
前記転送バッファ手段に自 PE上のデータを格納し、
前記転送結果バッファ手段には、前記格子距離と PEブロック内で、前記第 1又は 前記第 2の転送方向側力 数えた場合の自 PE番号との加算結果が格納される、こと を特徴とする請求項 8に記載のプロセッサアレイシステム。
[11] 前記レジスタ手段がオンの場合には、
前記転送結果バッファ手段の値 Tが M以上であるとき、
T Mの値が、前記転送結果バッファ手段に格納され、
前記転送結果バッファ手段の値 Tが Mよりも小さいときには、 PEブロック内で、前記 第 2の転送方向の一方の側力 数えた場合の PE番号が Tである PEの前記第 1及び 前記第 2の転送バッファ手段の内容を、前記第 1のセレクタ手段で選んで、前記転送 結果バッファ手段に格納し、
前記マスクレジスタを非動作に設定し、
前記レジスタ手段がオフの場合には、
前記転送結果バッファ手段の値 Tがー M以下の場合、 T+Mの値を、前記転送結 果バッファ手段に格納し、
Tがー Mより大きい場合、 PEブロック内で、前記第 1及び第 2の転送方向の一方側 力も数えた場合の PE番号が— Tの PEの前記第 2の転送バッファ手段の内容を前記 第 2のセレクタ手段で選び、前記転送結果バッファ手段に格納し、前記マスクレジス タを非動作に設定し、
全 PEが前記第 1の転送方向の結合線と前記第 2の転送方向の結合線を利用し、 M隣接する前記第 1及び第 2の転送方向の PEへそれぞれ、前記第 1の転送バッファ 手段と前記第 2の転送バッファ手段の内容を転送すると共に、前記第 1の転送バッフ ァ手段と前記第 2の転送バッファ手段とに、それぞれ、前記第 1の転送方向に M隣接 PEと前記第 2の転送方向に M隣接 PE力 転送されてきたデータを格納する動作を 、全 PEのマスクレジスタが非動作の設定になるまで、前記マスクレジスタが動作設定 である各 PEが繰り返し行うように制御する手段を備えている、ことを特徴とする請求 項 7に記載のプロセッサアレイシステム。
[12] 前記転送結果バッファ手段の値 Tが M以上の場合には、 T Mの値を前記転送結 果バッファ手段に格納し、
Tが Mよりも小さい場合には、 PEブロック内で、前記第 1及び第 2の転送方向の一 方側から数えた場合の PE番号が、 Tの PEの前記第 1の転送バッファ手段の内容を 前記第 1のセレクタ手段で選び、前記転送結果バッファ手段に格納し、前記マスクレ ジスタを非動作に設定し、
全 PEが前記第 1の転送方向の結合線を利用し、前記第 1の転送方向の M隣接 PE へ前記第 1の転送バッファ手段の内容を転送すると共に、前記第 1の転送バッファ手 段に、前記第 2の転送方向の M隣接 PE力 転送されてきたデータを格納する動作を 、全 PEの前記マスクレジスタが非動作の設定になるまで、前記マスクレジスタが動作 設定である各 PEが繰り返し行うように制御する手段を備えている、ことを特徴とする 請求項 8に記載のプロセッサアレイシステム。
[13] それぞれが M個のプロセッサエレメント(以下、「PE」という)からなる複数の PEブロ ックを有し、距離が M (ただし、 Mは 1より大きい自然数)の PE同士を結合する PE間 での第 1の転送方向及び Z又は第 2の転送方向への転送路を備えたプロセッサァレ ィシステムを構成する PEであって、
前記第 1の転送方向及び Z又は前記第 2の転送方向への転送路による、前記 PE が属する PEブロックへの複数の転送データの中から一つを選ぶセレクタ手段を含む 、ことを特徴とする PE。
[14] 前記 PEとの距離が Mの PE同士を結合する前記第 1の転送方向への転送路の転 送データを格納する第 1の転送バッファ手段と、
前記 PEとの距離が Mの PE同士を結合する前記第 2の転送方向への転送路の転 送データを格納する第 2の転送バッファ手段と、
前記 PEブロック内の M個の前記第 1の転送バッファ手段の中から一つを選ぶ第 1 のセレクタと、
前記 PEブロック内の M個の前記第 2の転送バッファ手段の中から一つを選ぶ第 2 のセレクタと、
転送方向情報を格納するレジスタ手段と、
転送路を利用して、距離 Mの転送が全 PE間で行われる度に、格納値の絶対値を Mだけ減少させ、格納値が Mよりも小さくなつた時点で、前記格納値により、前記第 1 のセレクタ及び前記第 2のセレクタを制御して得られる選択結果の 、ずれかを、前記 レジスタ手段の値により選択し、前記 PEへの転送結果として格納する転送結果バッ ファ手段と、
を含む、ことを特徴とする請求項 13記載の PE。
[15] 前記 PEとの距離が Mの PE同士を結合する前記第 1の転送方向又は第 2の転送方 向への転送路の転送データを格納する転送バッファ手段を備え、
前記セレクタ手段は、前記第 1の転送方向又は第 2の転送方向への転送路の転送 データを格納する複数の前記転送バッファ手段の中から一つを選び、
転送路を利用して、距離 Mの転送が全 PE間で行われる度に、格納値の絶対値を Mだけ減少させ、前記格納値が Mよりも小さくなつた時点で、前記格納値で、前記セ レクタ手段を制御して得られる選択結果を、前記 PEへの転送結果として格納する転 送結果バッファ手段を含む、ことを特徴とする請求項 13記載の PE。
[16] それぞれが複数のプロセッサエレメント(以下、「PE」 t 、う)を含み、一次結合又は リング結合される、複数の PEブロックを有し、
前記 PEとして、 第 1の転送方向への結合線を介して、前記第 1の転送方向に関して自 PEと予め定 められた所定距離離間している、他の PEブロックの PEと接続され、
前記第 1の転送方向と逆方向の第 2の転送方向への結合線を介して、前記第 2の 転送方向に関して自 PEと予め定められた所定距離離間している、さらに別の PEプロ ックの PEと接続され、
前記第 1及び第 2の転送方向への結合線の転送データをそれぞれ格納する第 1及 び第 2の転送バッファ手段と、
自 PEの前記第 1の転送バッファ手段と、前記自 PEが属する PEブロック内の他の P Eの前記第 1の転送バッファ手段の中から一つを選択する第 1のセレクタ手段と、 前記自 PEの前記第 2の転送バッファ手段と、前記自 PEが属する前記 PEブロック 内の他の PEの前記第 2の転送バッファ手段の中力 一つを選択する第 2のセレクタ 手段と、
前記結合線を利用した、前記所定距離離間した PE間での転送動作が行われる度 に、前記所定距離の値だけ格納値を更新し、前記格納値と前記所定距離の値とが 予め定められた大小関係となった時点で、前記格納値により、前記第 1のセレクタ手 段及び前記第 2のセレクタ手段を制御して得られる選択結果の 、ずれかを、転送方 向にしたがって選択し、選択結果を自 PEへの転送結果として格納する転送結果バッ ファ手段と、
を含む PEを有する、ことを特徴とするプロセッサアレイシステム。
それぞれが複数のプロセッサエレメント(以下、「PE」 t 、う)を含み、一次結合又は リング結合される、複数の PEブロックを有し、
前記 PEとして、
結合線を介して、 自 PEと予め定められた所定距離離間している、他の PEブロック の PEと接続され、
前記結合線の転送データを格納する転送バッファ手段と、
自 PEの前記転送バッファ手段と、前記自 PEが属する PEブロック内の他の PEの前 記転送バッファの中から一つを選ぶセレクタ手段と、
前記結合線を利用した、前記所定距離離間した PE間での転送動作が行われる度 に、前記所定距離の値だけ格納値を更新し、前記格納値と前記所定距離の値とが 予め定められた大小関係となった時点で、前記格納値により、前記セレクタ手段を制 御して得られる選択結果を、自 PEへの転送結果として格納する転送結果バッファ手 段と、
を含む PEを有する、ことを特徴とするプロセッサアレイシステム。
PCT/JP2007/053633 2006-03-03 2007-02-27 高速pe間データ再配置機能を有するプロセッサアレイシステム WO2007099950A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US12/224,561 US7783861B2 (en) 2006-03-03 2007-02-27 Data reallocation among PEs connected in both directions to respective PEs in adjacent blocks by selecting from inter-block and intra block transfers
CN2007800076634A CN101401088B (zh) 2006-03-03 2007-02-27 具有高速pe间数据再配置功能的处理器阵列系统
EP07737435A EP2000922A4 (en) 2006-03-03 2007-02-27 PROCESSOR NETWORK SYSTEM HAVING DATA RE-ASSIGN FUNCTIONS
JP2008502796A JP4483991B2 (ja) 2006-03-03 2007-02-27 高速pe間データ再配置機能を有するプロセッサアレイシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006-058302 2006-03-03
JP2006058302 2006-03-03

Publications (1)

Publication Number Publication Date
WO2007099950A1 true WO2007099950A1 (ja) 2007-09-07

Family

ID=38459055

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/053633 WO2007099950A1 (ja) 2006-03-03 2007-02-27 高速pe間データ再配置機能を有するプロセッサアレイシステム

Country Status (6)

Country Link
US (1) US7783861B2 (ja)
EP (1) EP2000922A4 (ja)
JP (1) JP4483991B2 (ja)
KR (1) KR101031680B1 (ja)
CN (1) CN101401088B (ja)
WO (1) WO2007099950A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013025563A (ja) * 2011-07-21 2013-02-04 Renesas Electronics Corp メモリコントローラ及びsimdプロセッサ
JP5370359B2 (ja) * 2008-04-22 2013-12-18 日本電気株式会社 Simd型並列計算機システム、simd型並列計算方法及び制御プログラム
JP2021530038A (ja) * 2018-06-29 2021-11-04 バイドゥ ドットコム タイムス テクノロジー (ベイジン) カンパニー リミテッド 低電力のリアルタイムオブジェクト検出用のシステム及び方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908032B (zh) * 2010-08-30 2012-08-15 湖南大学 可重新配置处理器集合的处理器阵列

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS644856A (en) * 1987-06-29 1989-01-10 Toshiba Corp Parallel processing system
JPH03256159A (ja) * 1990-03-07 1991-11-14 Mitsubishi Electric Corp ネツトワーク装置
JPH04113444A (ja) * 1990-09-04 1992-04-14 Oki Electric Ind Co Ltd 双方向リングバス装置
JPH05204876A (ja) * 1991-10-01 1993-08-13 Hitachi Ltd 階層型ネットワークおよび階層型ネットワークを用いたマルチプロセッサシステム
JPH05342184A (ja) 1992-06-05 1993-12-24 Toshiba Corp 格子トーラス結合型並列計算機及び並列プロセッサ
JPH06509671A (ja) * 1991-07-30 1994-10-27 コミッサリア タ レネルジー アトミーク 並列構造を有するプロセッサボードのシステムアーキテクチャ
JP2006012133A (ja) * 2004-05-28 2006-01-12 Intel Corp 双方向性リング相互接続路を有する多重プロセッサチップ

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5129092A (en) * 1987-06-01 1992-07-07 Applied Intelligent Systems,Inc. Linear chain of parallel processors and method of using same
US5471580A (en) * 1991-10-01 1995-11-28 Hitachi, Ltd. Hierarchical network having lower and upper layer networks where gate nodes are selectively chosen in the lower and upper layer networks to form a recursive layer
US5689677A (en) * 1995-06-05 1997-11-18 Macmillan; David C. Circuit for enhancing performance of a computer for personal use
US6230252B1 (en) * 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
AU3636901A (en) * 1999-10-26 2001-05-08 Pyxsys Corporation Wide connections for transferring data between pe's of an n-dimensional mesh-connected simd array while transferring operands from memory
US7196708B2 (en) * 2004-03-31 2007-03-27 Sony Corporation Parallel vector processing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS644856A (en) * 1987-06-29 1989-01-10 Toshiba Corp Parallel processing system
JPH03256159A (ja) * 1990-03-07 1991-11-14 Mitsubishi Electric Corp ネツトワーク装置
JPH04113444A (ja) * 1990-09-04 1992-04-14 Oki Electric Ind Co Ltd 双方向リングバス装置
JPH06509671A (ja) * 1991-07-30 1994-10-27 コミッサリア タ レネルジー アトミーク 並列構造を有するプロセッサボードのシステムアーキテクチャ
JPH05204876A (ja) * 1991-10-01 1993-08-13 Hitachi Ltd 階層型ネットワークおよび階層型ネットワークを用いたマルチプロセッサシステム
JPH05342184A (ja) 1992-06-05 1993-12-24 Toshiba Corp 格子トーラス結合型並列計算機及び並列プロセッサ
JP2006012133A (ja) * 2004-05-28 2006-01-12 Intel Corp 双方向性リング相互接続路を有する多重プロセッサチップ

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
KYO S. ET AL.: "128-ko no 4 Way VLIW-gata RISC Core o Shuseki shita Shasaimuke Doga Ninshiki LSI", IEICE TECHNICAL REPORT ICD2003-29 THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS SHUSEKI KAIRYO KENKYU SENMON IINKAI (ICD), 28 May 2003 (2003-05-28), pages 19 - 24 *
KYO SHORIN ET AL.: "A Video Recognition Processor for Intelligent Cruise Control Based on 128 4-Way VLIW RISC Processing Elements, Technical Report of The Institute of Electronics, Information and Communications Engineers", CIRCUITS AND DEVICES RESEARCH MEETING (ICD, vol. 103, no. 89, May 2003 (2003-05-01), pages 19 - 24
See also references of EP2000922A4 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5370359B2 (ja) * 2008-04-22 2013-12-18 日本電気株式会社 Simd型並列計算機システム、simd型並列計算方法及び制御プログラム
US8769244B2 (en) 2008-04-22 2014-07-01 Nec Corporation SIMD parallel computer system, SIMD parallel computing method, and control program
JP2013025563A (ja) * 2011-07-21 2013-02-04 Renesas Electronics Corp メモリコントローラ及びsimdプロセッサ
JP2021530038A (ja) * 2018-06-29 2021-11-04 バイドゥ ドットコム タイムス テクノロジー (ベイジン) カンパニー リミテッド 低電力のリアルタイムオブジェクト検出用のシステム及び方法
JP7268063B2 (ja) 2018-06-29 2023-05-02 バイドゥドットコム タイムズ テクノロジー (ベイジン) カンパニー リミテッド 低電力のリアルタイムオブジェクト検出用のシステム及び方法
US11741568B2 (en) 2018-06-29 2023-08-29 Baidu Usa Llc Systems and methods for low-power, real-time object detection

Also Published As

Publication number Publication date
US7783861B2 (en) 2010-08-24
EP2000922A4 (en) 2010-09-29
JP4483991B2 (ja) 2010-06-16
KR20090005312A (ko) 2009-01-13
CN101401088B (zh) 2011-03-30
CN101401088A (zh) 2009-04-01
US20090043986A1 (en) 2009-02-12
KR101031680B1 (ko) 2011-04-29
JPWO2007099950A1 (ja) 2009-07-16
EP2000922A1 (en) 2008-12-10

Similar Documents

Publication Publication Date Title
KR20190043643A (ko) 높은 성능, 전력 효율, 프로그램 가능 이미지 처리 프로세싱을 위한 아키텍처
JPH05508499A (ja) 特殊目的ブール演算装置のための方法およびその装置
JPS62208158A (ja) マルチプロセツサシステム
US20130067203A1 (en) Processing device and a swizzle pattern generator
KR20030064239A (ko) 화상을 처리하는 장치 및 방법과 이 장치에 이용되는컴파일러
US10884736B1 (en) Method and apparatus for a low energy programmable vector processing unit for neural networks backend processing
EP3605544B1 (en) Image processor comprising a shift register with reduced wiring complexity
KR20190028426A (ko) Simd 아키텍처에서 레인 셔플을 위한 셔플러 회로
JP3985797B2 (ja) プロセッサ
KR20070061538A (ko) Simd 프로세서 및 데이터 통신 방법
JP2008047031A (ja) 並列演算装置
WO2007099950A1 (ja) 高速pe間データ再配置機能を有するプロセッサアレイシステム
WO2016024508A1 (ja) マルチプロセッサ装置
JP2010117806A (ja) 半導体装置、および、半導体装置によるデータ処理方法
JP5370352B2 (ja) Simd型プロセッサアレイシステム及びそのデータ転送方法
CN113867791B (zh) 一种计算装置、芯片、板卡、电子设备和计算方法
US20230315477A1 (en) Computing apparatus, integrated circuit chip, board card, electronic device and computing method
JPH06309349A (ja) プログラム制御のプロセッサ
WO2022001454A1 (zh) 集成计算装置、集成电路芯片、板卡和计算方法
WO2020084694A1 (ja) 演算処理装置及び演算処理装置の制御方法
WO2013137459A1 (ja) データ供給装置及びデータ処理装置
KR20100034976A (ko) 가변 길이 명령어 셋을 갖는 듀얼 페이즈 심드 프로세서
CN113867790A (zh) 计算装置、集成电路芯片、板卡和计算方法
JPH0855093A (ja) 複合化ベクトル並列計算機
Chen IBM CONFIDENTIAL

Legal Events

Date Code Title Description
DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2008502796

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2007737435

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12224561

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 4639/CHENP/2008

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 200780007663.4

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 1020087024270

Country of ref document: KR

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)