JP6477185B2 - Arithmetic processing apparatus and control method of arithmetic processing apparatus - Google Patents

Arithmetic processing apparatus and control method of arithmetic processing apparatus Download PDF

Info

Publication number
JP6477185B2
JP6477185B2 JP2015079382A JP2015079382A JP6477185B2 JP 6477185 B2 JP6477185 B2 JP 6477185B2 JP 2015079382 A JP2015079382 A JP 2015079382A JP 2015079382 A JP2015079382 A JP 2015079382A JP 6477185 B2 JP6477185 B2 JP 6477185B2
Authority
JP
Japan
Prior art keywords
instruction
bus
arithmetic processing
command
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015079382A
Other languages
Japanese (ja)
Other versions
JP2016200906A (en
Inventor
和也 浅野
和也 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Socionext Inc
Original Assignee
Socionext 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 Socionext Inc filed Critical Socionext Inc
Priority to JP2015079382A priority Critical patent/JP6477185B2/en
Publication of JP2016200906A publication Critical patent/JP2016200906A/en
Application granted granted Critical
Publication of JP6477185B2 publication Critical patent/JP6477185B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本明細書で言及する実施例は、演算処理装置および演算処理装置の制御方法に関する。   The embodiments referred to herein relate to an arithmetic processing unit and a control method of the arithmetic processing unit.

近年、例えば、画像認識やビッグデータの解析手法における処理を実行するために、SIMD(Single Instruction Multiple Data)型演算処理装置(プロセッサ)による並列処理が利用されている。   In recent years, for example, parallel processing by a single instruction multiple data (SIMD) type arithmetic processing unit (processor) has been used to execute processing in an image recognition or analysis method of big data.

このようなSIMD型プロセッサにおいて、例えば、命令(コマンド)は、PE(プロセッサエレメント)制御部から共通コマンドバス(共通バス)を通して、各プロセッサエレメント(PE:Processor Element)に伝えられる。   In such a SIMD processor, for example, an instruction (command) is transmitted from a PE (processor element) control unit to each processor element (PE: Processor Element) through a common command bus (common bus).

また、各PE(マルチコアの演算処理装置における各コア)は、例えば、調停回路(アービタ:Arbiter)を介して、メモリ(共通のリソース)にアクセスすることで、メモリに格納されたデータの並列処理を実行する。   In addition, each PE (each core in a multi-core processor) accesses the memory (common resource) via, for example, an arbitration circuit (Arbiter) to perform parallel processing of data stored in the memory. Run.

ところで、従来、複数のプロセッサエレメントを含むSIMD型演算処理装置および演算処理装置の制御方法としては、様々なものが提案されている。   By the way, conventionally, various methods have been proposed as SIMD type arithmetic processing devices including a plurality of processor elements and control methods of the arithmetic processing devices.

特開2005−148899号公報JP, 2005-148899, A 特開平08−030577号公報Japanese Patent Application Laid-Open No. 08-030577 特開平06−036060号公報Japanese Patent Application Publication No. 06-036060

上述したように、例えば、SIMD型プロセッサにおいて、PE制御部からのコマンドは、共通バスを介して各PEに入力される。さらに、各PEは、例えば、メモリ側に設けられた複雑なアービタを介してメモリをアクセスし、また、PE側には、メモリリードリクエストやアクノリッジ機構が実装されることになる。   As described above, for example, in the SIMD processor, a command from the PE control unit is input to each PE via the common bus. Furthermore, each PE accesses the memory through, for example, a complex arbiter provided on the memory side, and a memory read request and an acknowledge mechanism are implemented on the PE side.

そのため、例えば、全てのPEがコマンド実行を終了するまで、次のコマンドを実行することができず、処理サイクル数が増加してデータ処理を高速に実行するのが困難になるといった課題がある。また、回路規模によっては、アービタの動作周波数の低下が遅くなり、やはり、データ処理を高速に実行するのが困難になるといった課題がある。   Therefore, for example, there is a problem that the next command can not be executed until all the PEs finish executing the command, and the number of processing cycles increases, which makes it difficult to execute data processing at high speed. In addition, depending on the circuit size, the decrease in the operating frequency of the arbiter may be delayed, again making it difficult to execute data processing at high speed.

一実施形態によれば、共通のリソースに対して、同時にアクセス可能な複数のプロセッサエレメントを含む演算処理装置であって、第1バスと、第2バスと、を有する演算処理装置が提供される。   According to one embodiment, there is provided an arithmetic processing unit including a plurality of processor elements simultaneously accessible to a common resource, the arithmetic processing unit having a first bus and a second bus. .

前記第1バスは、前記複数のプロセッサエレメントに対して並列に接続され、それぞれの前記プロセッサエレメントに共通の第1命令を与え、前記第2バスは、前記複数のプロセッサエレメントに対して直列に接続される。   The first bus is connected in parallel to the plurality of processor elements to give a common first instruction to each of the processor elements, and the second bus is connected in series to the plurality of processor elements Be done.

前記第2バスは、前記複数のプロセッサエレメントにおいて、第1サイクルで第1プロセッサエレメントに与えた第2命令を、前記第1サイクルの次の第2サイクルで前記第1プロセッサエレメントに直列接続される第2プロセッサエレメントに伝える。   The second bus is connected in series to the first processor element in the second cycle following the first cycle, for the second instruction given to the first processor element in the first cycle in the plurality of processor elements. Tell the second processor element.

開示の演算処理装置および演算処理装置の制御方法は、回路規模の増加を抑えつつ、複数のプロセッサエレメントによる共通のリソースに対する処理速度を向上させることができるという効果を奏する。   The disclosed arithmetic processing device and the control method of the arithmetic processing device have an effect that processing speed for a common resource by a plurality of processor elements can be improved while suppressing an increase in circuit scale.

図1は、関連技術としての演算処理装置の一例を示すブロック図である。FIG. 1 is a block diagram showing an example of an arithmetic processing unit as a related art. 図2は、図1に示す演算処理装置におけるプロセッサエレメントの一例を示すブロック図である。FIG. 2 is a block diagram showing an example of processor elements in the arithmetic processing unit shown in FIG. 図3は、図1に示す演算処理装置によりグラフィックス処理を行う場合の一例を説明するための図である。FIG. 3 is a view for explaining an example in the case where graphics processing is performed by the arithmetic processing unit shown in FIG. 図4は、2分木探索処理の一例を説明するための図である。FIG. 4 is a diagram for explaining an example of the binary tree search process. 図5は、図1に示す演算処理装置により、図4に示す2分木探索処理を実行した場合の動作の一例を説明するためのタイミングチャートである。FIG. 5 is a timing chart for explaining an example of the operation when the binary tree search process shown in FIG. 4 is executed by the arithmetic processing unit shown in FIG. 図6は、第1実施例の演算処理装置を示すブロック図である。FIG. 6 is a block diagram showing the processing unit of the first embodiment. 図7は、図6に示す演算処理装置におけるプロセッサエレメントの一例を示すブロック図である。FIG. 7 is a block diagram showing an example of processor elements in the arithmetic processing unit shown in FIG. 図8は、図7に示すプロセッサエレメントにおけるセレクタを説明するための図である。FIG. 8 is a diagram for describing a selector in the processor element shown in FIG. 図9は、第1実施例の演算処理装置による動作の一例を説明するためのタイミングチャートである。FIG. 9 is a timing chart for explaining an example of the operation of the processing unit of the first embodiment. 図10は、第2実施例の演算処理装置を示すブロック図である。FIG. 10 is a block diagram showing an arithmetic processing unit of the second embodiment. 図11は、図10に示す演算処理装置におけるプロセッサエレメントの一例を示すブロック図である。FIG. 11 is a block diagram showing an example of processor elements in the arithmetic processing unit shown in FIG. 図12は、図11に示すプロセッサエレメントにおけるセレクタを説明するための図である。FIG. 12 is a diagram for describing a selector in the processor element shown in FIG. 図13は、第2実施例の演算処理装置による動作の一例を説明するためのタイミングチャートである。FIG. 13 is a timing chart for explaining an example of the operation of the processing unit of the second embodiment. 図14は、第3実施例の演算処理装置を示すブロック図である。FIG. 14 is a block diagram showing an arithmetic processing unit of the third embodiment. 図15は、図14に示す演算処理装置におけるプロセッサエレメントの一例を示すブロック図である。FIG. 15 is a block diagram showing an example of processor elements in the arithmetic processing unit shown in FIG. 図16は、図15に示すプロセッサエレメントにおけるセレクタを説明するための図(その1)である。FIG. 16 is a diagram (part 1) for describing a selector in the processor element shown in FIG. 図17は、図15に示すプロセッサエレメントにおけるセレクタを説明するための図(その2)である。FIG. 17 is a second diagram to explain a selector in a processor element shown in FIG. 15; 図18は、第3実施例の演算処理装置による動作の一例を説明するためのタイミングチャートである。FIG. 18 is a timing chart for explaining an example of the operation of the processing unit of the third embodiment. 図19は、本実施例の演算処理装置が適用される半導体集積回路の一例を示すブロック図である。FIG. 19 is a block diagram showing an example of a semiconductor integrated circuit to which the processing unit of this embodiment is applied.

まず、本実施例の演算処理装置および演算処理装置の制御方法を詳述する前に、図1〜図5を参照して、演算処理装置の制御方法の一例、並びに、その問題点を説明する。   First, before describing the arithmetic processing device and the control method of the arithmetic processing device according to the present embodiment in detail, an example of a control method of the arithmetic processing device and the problems thereof will be described with reference to FIGS. .

図1は、関連技術としての演算処理装置の一例を示すブロック図であり、例えば、画像認識やビッグデータの解析手法における処理を実行するSIMD型演算処理装置(SIMD型プロセッサ)の一例を示すものである。   FIG. 1 is a block diagram showing an example of an arithmetic processing unit as a related art, and shows, for example, an example of a SIMD type arithmetic processing unit (SIMD type processor) that executes processing in an image recognition and analysis method of big data. It is.

図1において、参照符号101a〜101nはプロセッサエレメント(PE)、102はPE制御部、103はメモリ(ツリー用メモリ)、104は共通コマンドバス(共通バス)、105は比較対象データバス、そして、106は調停回路(アービタ)を示す。   In FIG. 1, reference numerals 101a to 101n denote processor elements (PE), 102 denotes a PE control unit, 103 denotes a memory (memory for tree), 104 denotes a common command bus (common bus), 105 denotes a comparison target data bus, Reference numeral 106 denotes an arbitration circuit (arbiter).

なお、図1では、複数のPE101a〜101nが同時にアクセス可能な共通のリソースとして、ツリー用メモリ103を示しているが、例えば、図示しない画像用メモリに対しても、調停を行うアービタが設けられることになる。   In FIG. 1, the tree memory 103 is shown as a common resource that can be simultaneously accessed by the plurality of PEs 101 a to 101 n, but, for example, an arbiter that performs arbitration is also provided to an image memory (not shown). It will be.

PE制御部102は、命令(コマンド)を一時的に保持するフェッチ部121、および、プログラムを格納するプログラムメモリ122を含む。ここで、各PE101a〜101nは、共通バス104を通してPE制御部102からの共通コマンドを受け取り、それぞれアービタ106との間のバス110a〜110nを介してメモリ103に対してアクセスする。   The PE control unit 102 includes a fetch unit 121 which temporarily holds an instruction (command), and a program memory 122 which stores a program. Here, each of the PEs 101a to 101n receives a common command from the PE control unit 102 through the common bus 104, and accesses the memory 103 through the buses 110a to 110n with the arbiter 106, respectively.

図1において、各PE101a〜101nとアービタ106間のバス110a〜110nは、1本の線として描かれているが、例えば、双方向で複数ビット(例えば、32または64ビット)のアドレスバスおよびデータバスを含む。   Although the buses 110a to 110n between the PEs 101a to 101n and the arbiter 106 in FIG. 1 are drawn as one line, for example, an address bus and data of a plurality of bits (for example, 32 or 64 bits) in both directions Including the bus.

また、例えば、図1に示すSIMD型プロセッサにより2分木(binary tree)探索を行う場合、2分木の各ツリーデータ(ツリー0〜nにおけるノード(node)0〜k)のデータは、例えば、1つのメモリ(ツリーデータ格納メモリ)に格納される。   Also, for example, when a binary tree search is performed by the SIMD processor shown in FIG. 1, data of each tree data (nodes 0 to k in trees 0 to n) of the binary tree is, for example, , And stored in one memory (tree data storage memory).

さらに、比較対象データは、例えば、別のメモリ(RAM:Random Access Memory)から供給するようにしてもよい。また、PEの数は、仕様に応じて数個〜数百個というように様々に設定されるが、画像認識やビッグデータの解析手法における処理を実行するものとして、例えば、百数十個程度にすることが考えられる。   Furthermore, the comparison target data may be supplied from, for example, another memory (RAM: Random Access Memory). Also, the number of PEs may be variously set to a few to a few hundred according to the specification, but, for example, about one hundred and several tens to execute processing in an image recognition or analysis method of big data. It is conceivable to

図2は、図1に示す演算処理装置におけるプロセッサエレメントの一例を示すブロック図である。図2に示されるように各PE101(101a〜101n)は、共通バス104からコマンドを受け取って保持するコマンドバッファ111、および、コマンドバッファ111に保持されたコマンドを実行するプロセッサコア112を含む。   FIG. 2 is a block diagram showing an example of processor elements in the arithmetic processing unit shown in FIG. As shown in FIG. 2, each of the PEs 101 (101a to 101n) includes a command buffer 111 that receives and holds commands from the common bus 104, and a processor core 112 that executes commands held in the command buffer 111.

そして、PE101は、メモリ103に対して、バス110およびアービタ106を介してRAM(メモリ)アドレスおよびRAMリードリクエストを出力し、メモリ103からアービタ106およびバス110を介して、RAMリードACK(アクノリッジ)およびRAMリードデータを受け取る。   Then, the PE 101 outputs a RAM (memory) address and a RAM read request to the memory 103 via the bus 110 and the arbiter 106, and a RAM read ACK (acknowledgement) from the memory 103 via the arbiter 106 and the bus 110. And receive RAM read data.

図3は、図1に示す演算処理装置によりグラフィックス処理を行う場合の一例を説明するための図である。ここで、図3は、複数のPE101a〜101nを含むSIMD型プロセッサにより、同一プログラムで複数のデータ処理を行う例として、グラフィックス処理を行う場合を説明するためのものである。   FIG. 3 is a view for explaining an example in the case where graphics processing is performed by the arithmetic processing unit shown in FIG. Here, FIG. 3 is for explaining the case where graphics processing is performed as an example in which a plurality of data processing is performed with the same program by a SIMD type processor including a plurality of PEs 101a to 101n.

図3に示されるように、グラフィックス処理を行う場合、例えば、各PE101a〜101nに対して、それぞれが担当する画素のピクセルデータ(A1,A2,A3,… 〜 N1,N2,N3,…)を決まった順序で送り込む。   As shown in FIG. 3, when graphics processing is performed, for example, pixel data (A 1, A 2, A 3,... To N 1, N 2, N 3,...) Of pixels handled by each of the PEs 101 a to 101 n. Send in a fixed order.

それぞれのPE101a〜101nは、入力されたデータに対して単純に決まった演算(例えば、A1*A2+A3 〜 N1*N2+N3)を実施して出力する。すなわち、グラフィックス処理を行う場合には、各PE101a〜101nの内部状態に関わらず、例えば、外部(外部メモリ)からDMA(Direct Memory Access)などによってデータを供給することが可能である。   Each of the PEs 101a to 101n performs a simple operation (for example, A1 * A2 + A3 to N1 * N2 + N3) on input data and outputs the result. That is, when performing graphics processing, data can be supplied from outside (external memory) by DMA (Direct Memory Access) or the like regardless of the internal state of each of the PEs 101a to 101n.

図4は、2分木探索処理の一例を説明するための図であり、図4(a)は、2分木のノードを示し、図4(b)は、2分木探索処理(2分木処理)の一例を説明するためのフローチャートである。   FIG. 4 is a diagram for explaining an example of the binary tree search process, and FIG. 4 (a) shows nodes of the binary tree, and FIG. 4 (b) shows binary tree search process (bifurcation) Tree processing) is a flowchart for explaining an example.

図4(a)に示されるように、2分木は、データ構造の一種である木構造において、親ノードが有する子ノードの数が2つ以下のもので、親のないノードを根(root node:node 0)とし、順に、node 1, node 2, …として配置される。   As shown in FIG. 4A, in a tree structure which is a kind of data structure, a binary tree has a parent node having two or less child nodes and has a root without a parent (root node: node 0), and in order are arranged as node 1, node 2,.

この2分木は、例えば、画像認識等の機械学習において使用するランダムフォレストと呼ばれる手法で使用される。そして、SIMD型プロセッサは、複数の2分木探索を並列処理するために適用される。なお、以下の説明では、簡略化のために、図6に示すSIMD型プロセッサを用いて、2分木探索の各ノード(node 1, 2, 3, …)において、ある画素の輝度を閾値と比較することにする。   This binary tree is used, for example, in a method called random forest used in machine learning such as image recognition. A SIMD-type processor is then applied to process multiple binary tree searches in parallel. In the following description, for the sake of simplicity, the SIMD processor shown in FIG. 6 is used to set the luminance of a certain pixel as a threshold at each node (node 1, 2, 3,...) Of binary tree search. I will compare.

図4(b)に示されるように、2分木処理を開始(START)すると、ステップST1において、i=0、すなわち、ルートノード(node 0)とし、ステップST2に進む。ステップST2では、node iにおいて、ツリー用メモリ(32)から判定用画素座標、判定用閾値、判定結果が真/偽のそれぞれについての分岐先情報、並びに、最終ノードの場合の判定結果を読み出す(リードする)。なお、分岐先情報とは、次のノードの情報が格納されているツリー用メモリアドレス(ただし、最終ノードの場合には、NULL(ヌル))を示す。   As shown in FIG. 4B, when binary tree processing is started (START), i = 0, ie, the root node (node 0) is set in step ST1, and the process proceeds to step ST2. In step ST2, in node i, the determination pixel coordinates for determination, the determination threshold, the branch destination information for each of the determination results true / false, and the determination result in the case of the final node are read out from the tree memory (32) Lead). The branch destination information indicates a tree memory address (in the case of the final node, NULL (null)) in which information of the next node is stored.

さらに、ステップST3に進んで、画像用メモリ(31)から判定用画素座標に相当する輝度データをリードし、ステップST4に進む。ここで、ツリー用メモリ(32)は、2分木の各ノードの情報を格納するメモリであり、また、画像用メモリ(31)は、各画素の輝度を格納するメモリである。   Further, the process proceeds to step ST3, the luminance data corresponding to the determination pixel coordinates is read from the image memory (31), and the process proceeds to step ST4. Here, the memory for tree (32) is a memory for storing information of each node of the binary tree, and the memory for image (31) is a memory for storing the luminance of each pixel.

ステップST4では、判定を実行、すなわち、ステップST3で読み出した輝度が閾値よりも大きいかどうかを判定(輝度>閾値?)し、さらに、ステップST5において、最終ノードかどうか、すなわち、分岐先がヌルかどうか(分岐先==Null)を判定する。   In step ST4, determination is performed, that is, it is determined whether the luminance read in step ST3 is larger than the threshold (luminance> threshold?), And in step ST5, it is the final node, ie, the branch destination is null. It is determined whether or not (branch destination == Null).

ステップST5において、最終ノードではないと判定すると、ステップST6に進んで、判定結果による分岐先ノードを決定し、ステップST2に戻って、同様の処理を繰り返す。一方、ステップST5において、最終ノードであると判定すると、ステップST7に進んで、判定結果を出力し、処理を終了(END)する。   If it is determined in step ST5 that the node is not the final node, the process proceeds to step ST6 to determine a branch destination node according to the determination result, and returns to step ST2 to repeat the same processing. On the other hand, when it is determined in step ST5 that the node is the final node, the process proceeds to step ST7, the determination result is output, and the process is ended (END).

ところで、各PE101a〜101nに対して、それぞれ1つの2分木を割り当てる場合を考えると、例えば、ルートノードnode 0のデータは、選択肢がないので一意に決まる。すなわち、node 0のデータは、外部から供給することは可能であるが、次のステップでノードnode 1またはnode 2のどちらを選択するかは、該当するPEのみが認識している情報なので、外部から対応するデータを供給することは困難である。   By the way, assuming that one binary tree is allocated to each of the PEs 101a to 101n, for example, data of the root node node 0 is uniquely determined because there is no option. That is, although the data of node 0 can be supplied from the outside, it is the information that only the corresponding PE recognizes as to which of node 1 or node 2 is to be selected in the next step. It is difficult to supply corresponding data from

つまり、2分木探索をSIMD型プロセッサに適用する場合には、少なくとも2ステップ目以降において、各PE101a〜101nから画像用メモリ(31)およびツリー用メモリ(32)に対する個別のアクセスが求められることになる。   That is, when the binary tree search is applied to the SIMD processor, individual accesses to the image memory (31) and the tree memory (32) are required from each of the PEs 101a to 101n at least after the second step. become.

そのため、複数のPE101a〜101nからメモリへの同時アクセスが発生し、メモリ側に複雑なアービタ(調停回路)の実装が求められ、その結果、回路規模によってはアービタの動作周波数が遅くなり、データ処理を高速に実行するのが困難になるといった課題がある。   Therefore, simultaneous accesses to the memory from multiple PEs 101a to 101n occur, and the implementation of a complex arbiter (arbitration circuit) is required on the memory side. As a result, the operating frequency of the arbiter becomes slower depending on the circuit size. There is a problem that it becomes difficult to execute

さらに、SIMD型プロセッサでは、全てのPE101a〜101nが命令を終了するまで、次の命令を実行することが難しいため、上述したメモリアクセスにより個々のPE101a〜101nの調停が行われている間は、次の命令に進むことが困難になる。そのため、処理サイクル数が増加し、やはりデータ処理を高速に実行するのが困難になるといった課題がある。   Furthermore, in the SIMD type processor, it is difficult to execute the next instruction until all the PEs 101a to 101n complete the instruction. Therefore, while the arbitration of the individual PEs 101a to 101n is performed by the above-described memory access, It becomes difficult to move on to the next instruction. Therefore, there is a problem that the number of processing cycles increases and it is difficult to execute data processing at high speed.

図5は、図1に示す演算処理装置により、図4に示す2分木探索処理を実行した場合の動作の一例を説明するためのタイミングチャートである。なお、メモリは、一般的なシングルポートのRAMとする。   FIG. 5 is a timing chart for explaining an example of the operation when the binary tree search process shown in FIG. 4 is executed by the arithmetic processing unit shown in FIG. The memory is a general single port RAM.

図5に示されるように、まず、共通バス104に対して、ツリー用メモリ(32)のリードコマンドであるcmd1が発行される。各PE101a〜101nは、一斉にツリー用メモリ(32)のリードコマンドを実行しようとするが、ツリー用メモリは、1サイクルに1つのPEからのアクセスを受け付けるだけである。   As shown in FIG. 5, first, a read command cmd1 for the tree memory (32) is issued to the common bus 104. Each of the PEs 101a to 101n tries to execute a read command of the tree memory (32) all at once, but the tree memory only receives an access from one PE in one cycle.

ここで、ツリー用メモリ(32)のアービタが、例えば、PE(プロセッサエレメント)の数が16個で、PE0→PE1→ … →PE15とアクセスを受け付ける場合を考える。このとき、PE0は、最初のサイクルでメモリアクセスを受け付けられるので、その後、他のPEのアクセスが終了するまでウェイト(wait)状態になる。   Here, it is assumed that the arbiter of the tree memory (32) receives an access such as PE 0 → PE 1 → ... → PE 15 when the number of PEs (processor elements) is 16, for example. At this time, since the PE 0 can receive a memory access in the first cycle, it then enters a wait state until the other PE's access is completed.

また、PE1は、PE0の次のサイクルでメモリアクセスを受け付けられた後、ウェイト状態になる。このようにして、PE15のメモリアクセスが受け付けられるまでには、合計16サイクルが費やされる。   Also, after being accepted for memory access in the cycle next to PE0, PE1 enters a wait state. Thus, a total of 16 cycles are spent until the memory access of the PE 15 is accepted.

なお、次の画像用メモリ(31)へのリード命令(リードコマンド)であるcmd2も、同様に合計16サイクルを費やすことになり、この2つの命令により、合計32サイクルが費やされることになる。   Similarly, a read command (read command) to the next image memory (31), cmd2, will consume a total of 16 cycles, and a total of 32 cycles will be spent by these two instructions.

このように、関連技術の演算処理装置によれば、各PE101a〜101nからメモリへのアクセス時間を短縮することが難しく、例えば、画像処理における画像認識速度を向上させるのが困難になっている。   As described above, according to the processing device of the related art, it is difficult to shorten the access time from each of the PEs 101a to 101n to the memory, and it is difficult to improve, for example, the image recognition speed in image processing.

以下、演算処理装置および演算処理装置の制御方法の実施例を、添付図面を参照して詳述する。図6は、第1実施例の演算処理装置を示すブロック図であり、例えば、画像認識やビッグデータの解析手法における処理を実行するSIMD型演算処理装置(SIMD型プロセッサ)の第1実施例を示すものである。   Hereinafter, an embodiment of an arithmetic processing unit and a control method of the arithmetic processing unit will be described in detail with reference to the attached drawings. FIG. 6 is a block diagram showing an arithmetic processing unit according to the first embodiment. For example, a first embodiment of a SIMD type arithmetic processing unit (SIMD processor) which executes processing in image recognition and analysis method of big data is described. It is shown.

図6において、参照符号1a〜1nはプロセッサエレメント(PE)、2はPE(プロセッサエレメント)制御部、31は画像用メモリ、32はツリー用メモリ、4は共通コマンドバス(共通バス:第1バス)、そして、5はカスケードバス(第2バス)を示す。   In FIG. 6, reference numerals 1a to 1n denote processor elements (PE), 2 denotes a PE (processor element) control unit, 31 denotes an image memory, 32 denotes a tree memory, and 4 denotes a common command bus (common bus: first bus) And 5 indicate a cascade bus (second bus).

ここで、カスケードバス5は、コマンド(第2命令)を、各サイクルに基づいて順番に直列接続されるPEに渡す(バケツリレーする)ためのバスであり、本明細書では、コマンドをバケツリレーするバスを、便宜的に、カスケードバスと呼ぶことにする。   Here, the cascade bus 5 is a bus for passing (bucket relaying) a command (second instruction) to the PEs serially connected in series based on each cycle, and in the present specification, the command is bucket relayed. This bus will be called a cascade bus for convenience.

また、画像用メモリ31には、2分木探索(2分木処理)で比較対象になる各画素の情報(例えば、輝度)が格納され、また、ツリー用メモリ32には、2分木処理で使用するノード情報が格納されている。   In addition, information (for example, luminance) of each pixel to be compared in binary tree search (binary tree processing) is stored in the image memory 31, and binary tree processing is performed in the tree memory 32. The node information used in is stored.

各PE1a〜1nには、それぞれ1つの2分木処理が割り当てられる。また、共通バス4は、複数のPE1a〜1nに対して並列に接続され、それぞれのPE1a〜1nに対して共通の共通コマンド(第1命令)を与えるようになっている。   One binary tree process is assigned to each of the PEs 1a to 1n. The common bus 4 is connected in parallel to the plurality of PEs 1a to 1n, and is configured to give a common command (first instruction) common to the respective PEs 1a to 1n.

さらに、カスケードバス5は、複数のPE1a〜1nに対して直列に接続され、複数のPE1a〜1nにおいて、例えば、第1サイクルでPE1aに与えたカスケードコマンド(第2命令)を、次の第2サイクルでPE1bに伝えるようになっている。   Furthermore, the cascade bus 5 is connected in series to the plurality of PEs 1a to 1n, and in the plurality of PEs 1a to 1n, for example, the cascade command (second instruction) given to the PE 1a in the first cycle is It is designed to transmit to PE1b in a cycle.

PE制御部2は、命令(コマンド)を一時的に保持するフェッチ部21、および、プログラムを格納するプログラムメモリ22を含む。ここで、各PE1a〜1nは、共通バス4を通して、PE制御部2からの共通コマンドを受け取り、さらに、カスケードバス5を通して、カスケードコマンドを受け取る。   The PE control unit 2 includes a fetch unit 21 that temporarily holds an instruction (command), and a program memory 22 that stores a program. Here, each of the PEs 1 a to 1 n receives a common command from the PE control unit 2 through the common bus 4, and further receives a cascade command through the cascade bus 5.

図6に示されるように、各PE1a〜1nと画像用メモリ31は、それぞれバス18a〜18nで接続され、また、各PE1a〜1nとツリー用メモリ32は、それぞれバス19a〜19nで接続されている。   As shown in FIG. 6, the PEs 1a to 1n and the image memory 31 are connected by buses 18a to 18n, respectively, and the PEs 1a to 1n and the tree memory 32 are connected by buses 19a to 19n, respectively. There is.

なお、これらのバス18a〜18nおよび19a〜19nは、1本の線として描かれているが、例えば、双方向で複数ビット(例えば、32または64ビット)のアドレスバスおよびデータバスを含んでいる。   Although these buses 18a to 18n and 19a to 19n are drawn as one line, they include, for example, an address bus and a data bus of multiple bits (for example, 32 or 64 bits) in both directions. .

図6において、PE制御部2から、共通バス4を通して送られる共通コマンド(第1命令)、並びに、カスケードバス5を通して送られるカスケードコマンド(第2命令)には、1ビットのビットフィールド(カスケードビットフィールド)が設定されている。   In FIG. 6, a common command (first instruction) sent through the common bus 4 from the PE control unit 2 and a cascade command (second instruction) sent through the cascade bus 5 have 1 bit bit field (cascade bit) Field is set.

命令フォーマットの一例を、次の表1に示す。ここでは、命令長を33ビットとし、最上位ビットをカスケードビットフィールドCBF(Cascade Bit Field:命令種別情報)に割り当て、下位32ビットを、通常の32bitプロセッサ用の命令フィールドとしている。

Figure 0006477185
An example of the instruction format is shown in Table 1 below. Here, the instruction length is 33 bits, the most significant bit is assigned to a cascade bit field CBF (Cascade Bit Field: instruction type information), and the lower 32 bits are used as an instruction field for a normal 32-bit processor.
Figure 0006477185

表1に示されるように、カスケードビットフィールドCBFは、例えば、『1』のときはカスケードバス5を通して伝える命令(カスケードコマンド)であることを示し。『0』のときは、共通バス4を通して伝える命令(共通コマンド)であることを示す。   As shown in Table 1, the cascade bit field CBF indicates, for example, that it is an instruction (cascade command) to be transmitted through the cascade bus 5 when "1". When it is "0", it indicates that it is an instruction (common command) transmitted through the common bus 4.

上述したように、PE制御部2と各PE1a〜1nは、共通バス4およびカスケードバス5の2つのバスによって接続されている。そして、PE制御部2は、各PE1a〜1nがメモリアクセスを行わないコマンド(共通コマンド)を共通バス4に発行し、メモリアクセスを行うコマンド(カスケードコマンド)をカスケードバス5に発行する。   As described above, the PE control unit 2 and each of the PEs 1 a to 1 n are connected by two buses, the common bus 4 and the cascade bus 5. Then, the PE control unit 2 issues a command (common command) in which each of the PEs 1 a to 1 n does not perform memory access to the common bus 4 and issues a command (cascade command) to perform memory access to the cascade bus 5.

この際、バス上に制御信号(命令種別情報)として、カスケードビットフィールドCBFを設け、カスケードバス5にコマンドを発行する際には、例えば、カスケードビットフィールドCBFを『1』(高レベル『H』)に設定する。   At this time, when the cascade bit field CBF is provided as a control signal (instruction type information) on the bus and a command is issued to the cascade bus 5, for example, the cascade bit field CBF is “1” (high level “H” Set to).

なお、CBFは、例えば、プログラムを作成するプログラマ、または、プログラミング言語で書かれたプログラムのソースコードを変換するコンパイラにより、ソフト的にコマンド中に組み込むことができる。   The CBF can be softly incorporated into a command, for example, by a programmer who creates a program or a compiler which converts the source code of a program written in a programming language.

或いは、コマンド中にCBFを埋め込まずに、例えば、コマンドの種別を判断して、共通バス4を通して各PE1a〜1nに伝える共通コマンドか、カスケードバス5を通して各PE1a〜1nに伝えるカスケードコマンドかを判断して処理を行うことも可能である。   Alternatively, without embedding CBF in the command, for example, the type of command is determined to determine whether it is a common command to be transmitted to each PE 1 a to 1 n through common bus 4 or a cascade command to be transmitted to each PE 1 a to 1 n through cascade bus 5 It is also possible to perform processing.

図7は、図6に示す演算処理装置におけるプロセッサエレメントの一例を示すブロック図である。図7に示されるように、各プロセッサエレメント1(1a〜1n)は、コマンドバッファ11、プロセッサコア12およびセレクタ(第1セレクタ)13を含む。   FIG. 7 is a block diagram showing an example of processor elements in the arithmetic processing unit shown in FIG. As shown in FIG. 7, each processor element 1 (1 a to 1 n) includes a command buffer 11, a processor core 12 and a selector (first selector) 13.

セレクタ13は、カスケードビットフィールド(命令種別情報)CBFにより、共通バス4の共通コマンドまたはカスケードバス5のカスケードコマンドを選択し、セレクタ13で選択されたコマンドは、コマンドバッファ11に保持される。   The selector 13 selects the common command of the common bus 4 or the cascade command of the cascade bus 5 by the cascade bit field (instruction type information) CBF, and the command selected by the selector 13 is held in the command buffer 11.

すなわち、セレクタ13は、CBFが『1』のとき、カスケードバス5のカスケードコマンドを選択し、CBFが『0』のとき、共通バス4の共通コマンドを選択し、その選択されたコマンドがコマンドバッファ11に保持される。   That is, selector 13 selects the cascade command of cascade bus 5 when CBF is "1", and selects the common command of common bus 4 when CBF is "0", and the selected command is a command buffer. 11 is held.

プロセッサコア12は、コマンドバッファ11に保持されたコマンドを実行する。そして、PE1は、コマンドバッファ11から出力されたコマンドがメモリアクセスの場合、PE1からメモリに対して、アドレス(RAMアドレス)と読み出しイネーブル(RAMリードイネーブル)を出力し、対応する読み出しデータ(RAMリードデータ)を受け取る。   The processor core 12 executes the command held in the command buffer 11. Then, when the command output from the command buffer 11 is a memory access, the PE1 outputs an address (RAM address) and a read enable (RAM read enable) to the memory from the PE1, and the corresponding read data (RAM read) Receive data).

コマンドバッファ11には、カスケードバス5上の制御信号であるカスケードビットフィールドCBFを観測し、そのCBFが『1』のとき、セレクタ5で選択されたカスケードバス5によるカスケードコマンドが取り込まれる。また、コマンドバッファ11には、CBFが『0』のとき、セレクタ5で選択された共通バス4による共通コマンドが取り込まれる。   The command bit buffer 11 observes a cascade bit field CBF which is a control signal on the cascade bus 5, and when the CBF is "1", a cascade command by the cascade bus 5 selected by the selector 5 is taken. When the CBF is “0”, the command buffer 11 receives a common command from the common bus 4 selected by the selector 5.

コマンドバッファ11は、取り込んだコマンドをバッファリングし、自身のPE(例えば、PE1a)のプロセッサコア12に対して、バッファリングしたコマンドを出力する。さらに、コマンドバッファ11にバッファリングされたコマンドは、次のサイクルで、直列接続される(次段の)PE(例えば、PE1b)にカスケードバス5を通して伝えられる。   The command buffer 11 buffers the fetched command, and outputs the buffered command to the processor core 12 of its own PE (for example, PE1a). Furthermore, the command buffered in the command buffer 11 is transmitted through the cascade bus 5 to the serially connected (next stage) PEs (e.g., the PE 1 b) in the next cycle.

これにより、例えば、メモリアクセスを行うコマンド(カスケードコマンド)は、CBRが『1』に設定されているため、PE制御部2に近いプロセッサエレメントから順番に(1a→1b→1c→…)、1サイクルずつずれて伝えられることになる。   Thereby, for example, since the CBR is set to “1”, the command (cascade command) for performing memory access is sequentially processed from the processor element closer to the PE control unit 2 (1a → 1b → 1c →...) It will be transmitted off the cycle.

前述したように、PE1は、PE制御部2から出力されたコマンドを実行し、コマンドがメモリアクセスの場合、PE1からメモリに対して、アドレス(RAMアドレス)とリードイネーブルを出力(RAMリードイネーブル)する。   As described above, the PE1 executes the command output from the PE control unit 2. When the command is a memory access, the PE1 outputs an address (RAM address) and a read enable to the memory (RAM read enable) Do.

ここで、アドレスは、リードイネーブルがアサートされているサイクルのみ有意な値を持ち、その他のサイクルでは『0』を出力する。また、メモリアクセスのコマンドは、カスケードバス5を通して入力されるため、サイクルが重ならないことが保証されることになる。   Here, the address has a significant value only in the cycle in which the read enable is asserted, and outputs "0" in the other cycles. Also, since memory access commands are input through the cascade bus 5, it is guaranteed that cycles do not overlap.

そのため、メモリへ入力されるアドレスおよびリードイネーブルは、各PE1(1a〜1n)から出力されるアドレスとリードイネーブルのそれぞれの論理和をとった単純なものとすることができる。また、PE1側では、リードイネーブルを発行してから、決められたサイクル後(例えば、1サイクル後)にリードデータを受け取ることができるので、アクノリッジ機構は不要になる。   Therefore, the address and the read enable input to the memory can be made simple by taking the logical sum of the address and the read enable output from the respective PEs 1 (1a to 1n). Also, on the PE 1 side, since the read enable can be issued and then read data can be received after a determined cycle (for example, after one cycle), the acknowledgment mechanism becomes unnecessary.

PE制御部2は、例えば、最終のプロセッサエレメント1nが出力するCBF(CTS)を観測することによって、全てのプロセッサエレメント1a〜1nのメモリアクセスが終了したことを認識することができ、共通バス4に対するコマンドの発行が可能になる。   The PE control unit 2 can recognize that the memory access of all the processor elements 1a to 1n is completed, for example, by observing CBF (CTS) output from the final processor element 1n, and the common bus 4 It is possible to issue commands for

すなわち、上述した図6に示されるように、例えば、最終のプロセッサエレメント1nのカスケードビットフィールドCBFをカスケード終了信号CTSとして、所定の配線L1を介してPE制御部2に入力させればよいことになる。   That is, as shown in FIG. 6 described above, for example, the cascade bit field CBF of the final processor element 1 n may be input to the PE control unit 2 via the predetermined wiring L1 as the cascade end signal CTS. Become.

このように、第1実施例の演算処理装置によれば、例えば、メモリ側に対して複雑なアービタを設けることなく、また、プロセッサエレメント(PE)側でメモリリードリクエストやアクノリッジ機構を実装することなく、所定の処理を行うことが可能になる。   As described above, according to the processing unit of the first embodiment, for example, the memory read request and the acknowledge mechanism are implemented on the processor element (PE) side without providing a complex arbiter on the memory side. Instead, it becomes possible to perform predetermined processing.

図8は、図7に示すプロセッサエレメントにおけるセレクタを説明するための図であり、図8(a)は、セレクタ13に注目して示し、図8(b)は、セレクタ13の真理値表を示す。   FIG. 8 is a diagram for explaining the selectors in the processor element shown in FIG. 7. FIG. 8 (a) shows the selector 13 paying attention to it, and FIG. 8 (b) shows the truth table of the selector 13. Show.

図8(a)に示されるように、セレクタ13には、カスケードバス5を経由したカスケードコマンド(A)、並びに、共通バス4を経由した共通コマンド(B)が入力され、カスケードビットフィールドCBF(S)の値により一方が選択されるようになっている。   As shown in FIG. 8 (a), the cascade command (A) via the cascade bus 5 and the common command (B) via the common bus 4 are input to the selector 13, and the cascade bit field CBF ( One is selected according to the value of S).

ここで、カスケードコマンド(A),共通コマンド(B)および選択コマンド(Y)は、例えば、33ビット([32:0])とされ、CBFは、33ビットのコマンドにおける最上位の1ビット([32])とされている。なお、これは、単なる一例であり、コマンドの構成は、様々に変化し得るのはいうまでもない。   Here, the cascade command (A), the common command (B) and the selection command (Y) are, for example, 33 bits ([32: 0]), and CBF is the most significant 1 bit (33 bits) [32]). Incidentally, this is merely an example, and it is needless to say that the configuration of the command may be variously changed.

図8(b)に示されるように、例えば、カスケードビットフィールド(S)が『1』のとき、セレクタ13により選択される選択コマンド(Y[32:0])は、カスケードコマンド(A[32:0])になる。また、カスケードビットフィールド(S)が『0』のとき、選択コマンド(Y[32:0])は、共通コマンド(B[32:0])になる。   As shown in FIG. 8B, for example, when the cascade bit field (S) is "1", the selection command (Y [32: 0]) selected by the selector 13 is a cascade command (A [32]. : 0]). When the cascade bit field (S) is “0”, the selection command (Y [32: 0]) is a common command (B [32: 0]).

図9は、第1実施例の演算処理装置による動作の一例を説明するためのタイミングチャートであり、16個(PE0〜PE15)のプロセッサエレメントを使用し、ツリー用メモリ32および画像用メモリ31に連続してメモリアクセスする場合の波形を示す。なお、メモリは、一般的なシングルポートのRAMとする。   FIG. 9 is a timing chart for explaining an example of the operation of the processing unit of the first embodiment, wherein 16 (PE0 to PE15) processor elements are used and the tree memory 32 and the image memory 31 are used. The waveform in the case of continuous memory access is shown. The memory is a general single port RAM.

図9と、前述した図5の比較から明らかなように、例えば、画像用メモリ31へのリードコマンドであるcmd1およびcmd2を実行するのに32サイクル要していたものが、本第1実施例によれば、17サイクルに低減されるのが分かる。   As apparent from the comparison between FIG. 9 and FIG. 5 described above, for example, although it takes 32 cycles to execute the read commands cmd1 and cmd2 to the image memory 31, the first embodiment According to, it can be seen that it is reduced to 17 cycles.

すなわち、ツリー用メモリ32へのアクセスであるコマンド(命令)cmd1と画像用メモリへのアクセスであるコマンドcmd2は、異なるメモリへのアクセスであるためにカスケードバス5に対して連続したサイクルで発行することができる。   That is, the command (instruction) cmd1 which is an access to the memory for tree 32 and the command cmd2 which is an access to the image memory are issued in a continuous cycle to the cascade bus 5 because they are accesses to different memories. be able to.

これにより、コマンドcmd1の終了には、図5の場合と同様に、16サイクルを費やすことになるが、コマンドcmd2は、実質的に、1サイクルで処理が終了できることになり、コマンドの実行時間を大幅に短縮できることが分かる。   As a result, although the end of the command cmd1 consumes 16 cycles as in the case of FIG. 5, the command cmd2 can substantially finish the processing in one cycle, and the execution time of the command is It can be seen that it can be shortened significantly.

なお、図9の動作について、ツリー用メモリ32と画像用メモリ31に対するリードコマンドは、例えば、CBFが『1』に設定され、PE制御部2のプログラムメモリ22に格納されている。   As for the read command for the tree memory 32 and the image memory 31, for example, CBF is set to “1” and stored in the program memory 22 of the PE control unit 2 in the operation of FIG. 9.

また、PE制御部2のフェッチ部21は、CBFを見て、これらのコマンドをカスケードバス5に出力する。ここで、コマンド中のCBFの設定は、コンパイラ或いはプログラマによって予め設定されることを想定しているが、例えば、PE制御部2のフェッチ部21にコマンドを解析するロジックを追加し、自動的にCBFを付加するようにしてもよい。   Also, the fetch unit 21 of the PE control unit 2 sees the CBF and outputs these commands to the cascade bus 5. Here, it is assumed that the setting of CBF in the command is set in advance by a compiler or a programmer, but for example, logic for analyzing the command is added to the fetch unit 21 of the PE control unit 2 to automatically CBF may be added.

また、本実施例において、異なるメモリ(例えば、図6の画像用メモリ31およびツリー用メモリ32)に対するアクセスは、連続したカスケードコマンドとして発行することが可能であり、これは、画像用およびツリー用の2つのメモリに限定されない。   Also, in the present embodiment, accesses to different memories (for example, the image memory 31 and the tree memory 32 in FIG. 6) can be issued as continuous cascade commands, which are for image and tree. It is not limited to two memories.

さらに、連続したカスケードコマンドとして発行することができるアクセス(命令)は、メモリアクセスに限定されるものではなく、例えば、複数のプロセッサエレメント(1a〜1n)によりアクセスが可能な共通のリソースに対するものであってもよい。   Furthermore, accesses (instructions) that can be issued as continuous cascade commands are not limited to memory accesses, but, for example, are for common resources that can be accessed by multiple processor elements (1a to 1n). It may be.

ここで、メモリ(画像用メモリ31およびツリー用メモリ32)は、共通のリソースの単なる一例に過ぎない。すなわち、共通のリソースとしては、例えば、入出力インターフェースや個々のプロセッサエレメントに実装するには高価になるような、乗算器を始めとする演算器等の様々なものが適用可能である。   Here, the memory (image memory 31 and tree memory 32) is merely an example of a common resource. That is, as a common resource, for example, various things such as an operation unit including a multiplier which is expensive to be implemented in an input / output interface or individual processor elements are applicable.

以上のように、本第1実施例によれば、例えば、メモリアクセス毎にアービトレーションを行って全てのプロセッサエレメントのアクセスが完了するのを待つ方式に比較して、命令実行サイクル数を大幅に短縮することが可能になる。   As described above, according to the first embodiment, for example, the number of instruction execution cycles is significantly reduced as compared to a method of performing arbitration for each memory access and waiting for access of all processor elements to be completed. It will be possible to

すなわち、プロセッサエレメントとメモリの間に接続される複雑な調停回路が不要になり、メモリアクセス時のリードアクセスが終了するまで次の実行を待たなくてもよいため、2番目以降の選択命令コマンドの処理速度を大幅に向上させることができる。なお、この効果は、以下に説明する第2および第3実施例でも同様に発揮され、さらに、メモリ以外の共通のリソースに対するアクセスでも同様に発揮されることになる。   That is, since the complicated arbitration circuit connected between the processor element and the memory becomes unnecessary and it is not necessary to wait for the next execution until the read access at the time of memory access is completed, Processing speed can be greatly improved. This effect is similarly exhibited in the second and third embodiments described below, and is also exhibited similarly in the access to common resources other than the memory.

図10は、第2実施例の演算処理装置を示すブロック図であり、複数のプロセッサエレメントの内、途中で処理が早く終わるものが含まれる場合に対応するものを示す。図10と、前述した図6の比較から明らかなように、第2実施例では、2番目のプロセッサエレメント1bに与える2分木処理において、終端ノードNNにたどりついた場合が例として説明される。   FIG. 10 is a block diagram showing an arithmetic processing unit according to the second embodiment, which corresponds to the case where one of the plurality of processor elements is terminated prematurely. As apparent from the comparison between FIG. 10 and FIG. 6 described above, in the second embodiment, the case where the terminal node NN is reached in the binary tree processing given to the second processor element 1b will be described as an example.

すなわち、図10に示されるように、例えば、プロセッサエレメント1bは、終端ノードNNにたどりついた場合には、与えられた2分木処理が早期に終了することになる。第2実施例では、早期に判定結果が決まった処理については、判定終了のフラグを立てることにより、カスケードバス5で接続されたプロセッサエレメント1bをスキップし、より一層、処理速度の向上を図るようになっている。   That is, as shown in FIG. 10, for example, when the processor element 1 b reaches the terminal node NN, the given binary tree processing ends early. In the second embodiment, for the processing for which the determination result is determined early, the processor element 1b connected by the cascade bus 5 is skipped by setting the determination end flag, and the processing speed is further improved. It has become.

図10に示されるように、各PE1a〜1nに対してそれぞれ割り当てられた2分木処理において、これら全ての2分木処理(2分木)が同じノード数となっているとは限らない。さらに、全てのPE1a〜1nに対して、処理する2分木を割り当てられるとも限らない。   As shown in FIG. 10, in the binary tree processing assigned to each of the PEs 1a to 1n, it is not always the case that the number of nodes is the same for all binary tree processing (binary tree). Furthermore, not all PEs 1a to 1n can be assigned binary trees to be processed.

そこで、早期に判定結果が決まった(データ処理が完了している)PEや2分木処理が割り当てられなかった(データ処理が不要の)PEについては、判定終了や無効のフラグを立てることで、それらのPEをスキップする。   Therefore, for PEs for which the determination result was decided earlier (data processing has been completed) and PEs for which binary tree processing was not allocated (data processing is not required), the determination completion or invalid flag is set. , Skip their PE.

すなわち、カスケードバス5により直列に接続された複数のPE1a〜1nから、データ処理が不要または完了しているPEをスキップすることにより、より一層、処理速度を向上させることが可能になる。   That is, by skipping PEs for which data processing is unnecessary or completed from the plurality of PEs 1a to 1n connected in series by the cascade bus 5, the processing speed can be further improved.

図11は、図10に示す演算処理装置におけるプロセッサエレメントの一例を示すブロック図であり、図12は、図11に示すプロセッサエレメントにおけるセレクタを説明するための図である。   FIG. 11 is a block diagram showing an example of a processor element in the arithmetic processing unit shown in FIG. 10, and FIG. 12 is a diagram for explaining a selector in the processor element shown in FIG.

ここで、図12(a)は、セレクタ(第2セレクタ)14に注目して示し、図12(b)は、セレクタ14の真理値表を示す。なお、セレクタ(第1セレクタ)13は、図7および図8を参照して説明したのと同様のものである。   Here, FIG. 12A shows the selector (second selector) 14 paying attention, and FIG. 12B shows a truth table of the selector 14. The selector (first selector) 13 is the same as that described with reference to FIGS. 7 and 8.

図11および図12(a)に示されるように、セレクタ14には、セレクタ13の出力およびコマンドバッファ11の出力が入力され、オアゲート153の出力(CS0)に応じて一方を選択して出力する。   As shown in FIGS. 11 and 12A, the selector 14 receives the output of the selector 13 and the output of the command buffer 11, selects one of them according to the output (CS0) of the OR gate 153, and outputs it. .

ここで、プロセッサコア12は、無効フラグが『1』の時には動作を行わない。無効フラグの設定/解除は、図示しない専用の制御信号を使用して行うことを想定しているが、例えば、共通バス4に対して専用のロジック回路を付加し、無効フラグの設定用命令が発行されたときに、無効フラグの設定/解除を行うようにすることもできる。   Here, the processor core 12 does not operate when the invalidation flag is "1". Although it is assumed that setting / releasing of the invalidation flag is performed using a dedicated control signal not shown, for example, a dedicated logic circuit is added to the common bus 4 and an instruction for setting the invalidation flag is It is possible to set / cancel the invalid flag when issued.

また、コマンドバッファ11は、判定終了フラグまたは無効フラグが『1』の時にはカスケードコマンドをNOP(No-OPeration)コマンドに置き換える。さらに、判定終了フラグの設定は、共通バス4またはカスケードバス5を経由したコマンドを使用して、プロセッサコア12から行うようになっている。なお、判定終了フラグの解除は、共通バス4を経由したコマンドを使用して、プロセッサコア12から行うことができる。   Also, the command buffer 11 replaces the cascade command with a NOP (No-OPeration) command when the determination end flag or the invalid flag is "1". Further, the setting of the determination end flag is performed from the processor core 12 using a command via the common bus 4 or the cascade bus 5. The determination end flag can be released from the processor core 12 using a command via the common bus 4.

すなわち、オアゲート153は、判定終了フラグ(151)および無効フラグ(152)の論理和を取って、少なくとも一方が『1』になったら、セレクタ14に対して、『1』の制御信号CS0を出力する。   That is, the OR gate 153 takes the logical sum of the determination end flag (151) and the invalid flag (152), and outputs the control signal CS0 of "1" to the selector 14 when at least one becomes "1". Do.

図12(b)に示されるように、セレクタ14は、オアゲート153からの『1』の制御信号CS0(Sが『1』)を受け取り、セレクタ13で選択されたコマンド(B[32:0])を選択する。   As shown in FIG. 12B, the selector 14 receives the control signal CS0 (S is “1”) of “1” from the OR gate 153, and the command (B [32: 0] selected by the selector 13 Choose).

そして、セレクタ13で選択された、コマンド(B[32:0]、そのサイクルのコマンド)が、セレクタ14による選択コマンド(Y[32:0])として、カスケードバス5を通して直列接続される(次段の)プロセッサエレメントに伝えられる。このとき、オアゲート153からの『1』の制御信号CS0は、コマンドバッファ11にも入力され、上述したNOPコマンドへの置き換え処理が行われる。   Then, the command (B [32: 0], the command of the cycle) selected by the selector 13 is serially connected through the cascade bus 5 as a selection command (Y [32: 0]) by the selector 14 (next Transferred to the (stage) processor element. At this time, the control signal CS0 of "1" from the OR gate 153 is also input to the command buffer 11, and the above-mentioned replacement process with the NOP command is performed.

具体的に、図10に示されるように、例えば、PE1bによる2分木処理が早期に終了した場合には、判定終了フラグ(151)を立てる(『1』にする)ことで、オアゲート153から出力される制御信号CS0が『1』になる。   Specifically, as shown in FIG. 10, for example, when the binary tree processing by the PE 1b ends early, the determination end flag (151) is set (set to “1”) to allow the OR gate 153 to The control signal CS0 to be output becomes "1".

これにより、セレクタ13で選択された、そのサイクルのコマンド(B[32:0])が選択コマンド(Y[32:0])として、PE1bの次段のPE1cに伝えられ、カスケードバス5によるコマンドの伝送時間を短縮することが可能になる。   Thereby, the command (B [32: 0]) of the cycle selected by the selector 13 is transmitted to PE1 c next to PE1 b as a selection command (Y [32: 0]), and the command by the cascade bus 5 is It is possible to reduce the transmission time of

また、例えば、PE1bに対して2分木処理が割り当てられなかった場合には、無効フラグ(152)を立てる(『1』にする)ことで、オアゲート153から出力される制御信号CS0が『1』になる。   Also, for example, when binary tree processing is not assigned to PE 1 b, the invalidation flag (152) is set (set to “1”), whereby the control signal CS0 output from the OR gate 153 is “1”. "become.

これにより、セレクタ13で選択されたコマンド(B[32:0]、そのサイクルのコマンド)が選択コマンド(Y[32:0])として、PE1bの次段のPE1cに伝えられ、カスケードバス5によるコマンドの伝送時間を短縮することが可能になる。   Thereby, the command (B [32: 0], the command of the cycle) selected by the selector 13 is transmitted to PE1 c next to PE1 b as a selection command (Y [32: 0]), and the cascade bus 5 It becomes possible to shorten the transmission time of the command.

なお、判定終了フラグ(151)および無効フラグ(152)が立てられず、オアゲート153から出力される制御信号CS0が『0』のとき、セレクタ14は、コマンドバッファ11の出力(A[32:0])を選択し、前述した第1実施例と同様の処理が行われる。   When the determination completion flag (151) and the invalid flag (152) are not set and the control signal CS0 output from the OR gate 153 is “0”, the selector 14 outputs the command buffer 11 (A [32: 0]. ] Is selected, and the same processing as in the first embodiment described above is performed.

すなわち、図12(b)に示されるように、セレクタ14は、オアゲート153からの『0』の制御信号CS0(Sが『0』)を受け取り、コマンドバッファ11から出力されたコマンド(A[32:0])を選択する。   That is, as shown in FIG. 12 (b), the selector 14 receives the control signal CS 0 (S is “0”) of “0” from the OR gate 153, and the command (A [32 : 0]) is selected.

そして、コマンドバッファ11から出力されたコマンド(A[32:0]、前のサイクルのコマンド)が、セレクタ14による選択コマンド(Y[32:0])として、カスケードバス5を通して直列接続されるプロセッサエレメントに伝えられる。すなわち、制御信号CS0が『0』のときは、第1実施例と同様の処理が行われることになる。   Then, a processor in which a command (A [32: 0], a command of the previous cycle) output from the command buffer 11 is serially connected through the cascade bus 5 as a selection command (Y [32: 0]) by the selector 14 It is transmitted to the element. That is, when the control signal CS0 is "0", processing similar to that of the first embodiment is performed.

図13は、第2実施例の演算処理装置による動作の一例を説明するためのタイミングチャートであり、プロセッサエレメントPE1が既に判定処理を終了している場合を説明するためのものである。なお、参照符号cmd1は、ツリー用メモリ32へのアクセスコマンドを示し、cmd2は、画像用メモリ31へのアクセスコマンドを示す。また、メモリは、一般的なシングルポートのRAMとする。   FIG. 13 is a timing chart for explaining an example of the operation of the arithmetic processing unit of the second embodiment, which is for explaining the case where the processor element PE1 has already finished the determination processing. The reference code cmd1 indicates an access command to the tree memory 32, and cmd2 indicates an access command to the image memory 31. Also, the memory is a general single-port RAM.

図13と、前述した図9の比較から明らかなように、本第2実施例によれば、判定処理を終了しているPE1においては、セレクタ(第2セレクタ)14の制御信号CS0が『1』になる。   As apparent from the comparison between FIG. 13 and FIG. 9 described above, according to the second embodiment, the control signal CS0 of the selector (second selector) 14 is “1” in PE1 which has finished the determination process. "become.

そのため、第2セレクタ14からは、セレクタ(第1セレクタ)13で選択されたコマンド(B[32:0])が選択コマンド(Y[32:0])として出力され、PE1をスルーして次段のPE2に伝えられる。   Therefore, the command (B [32: 0]) selected by the selector (first selector) 13 is output from the second selector 14 as the selection command (Y [32: 0]), and the next through PE1. It is transmitted to PE2 of the stage.

すなわち、PE1は判定終了フラグがセット(Sが『1』)されているので、PE0からカスケードバス5を通して受け取ったコマンド(cmd1,cmd2)は、コマンドバッファ11でバッファリングされずに、PE1をスルーしてPE2へと伝えられる。   That is, since the determination end flag is set (S is "1"), the command (cmd1, cmd2) received from PE0 through the cascade bus 5 is not buffered by the command buffer 11, and PE1 is passed through. And it is transmitted to PE2.

すなわち、PE2は、本来(PE1の判定処理が終了していない場合)、PE1がコマンドを受け取るサイクルでコマンドを受け取り、従って、PE3〜PE15も、図9に示す場合よりも1サイクル早くコマンドを受け取って処理することになる。   That is, PE2 originally receives a command in a cycle in which PE1 receives a command (when the determination processing of PE1 has not ended), and therefore PE3 to PE15 also receive a command one cycle earlier than the case shown in FIG. Will be processed.

これにより、図9を参照して説明した第1実施例では17サイクル要していた処理が、PE1をスキップすることにより、1サイクル削減され、16サイクルまで短縮することが可能になる。この処理サイクルの短縮の効果は、例えば、判定処理が終了しているか無効設定になっているプロセッサエレメントの数が多いほど顕著になるのはいうまでもない。   This makes it possible to reduce the process required for 17 cycles in the first embodiment described with reference to FIG. 9 by 1 cycle and skip to 16 cycles by skipping PE1. It goes without saying that the effect of shortening the processing cycle becomes more pronounced, for example, as the number of processor elements for which the determination processing has been completed or which is invalidated is larger.

図14は、第3実施例の演算処理装置を示すブロック図であり、複数のプロセッサエレメントを、独立動作が可能な経路を使って並列に動作させることにより、実行サイクルのさらなる短縮を図るものである。   FIG. 14 is a block diagram showing an arithmetic processing unit according to a third embodiment, in which execution cycles are further shortened by operating a plurality of processor elements in parallel using paths capable of independent operation. is there.

具体的に、例えば、左右に設けた2つのカメラによるそれぞれの画像を処理する場合、画像用メモリ3は、2つの独立した画像用メモリ311,312となる。ここで、画像用メモリ311,312は、例えば、アドレス(RAMアドレス)の最上位ビット(MSB)で識別することができる。   Specifically, for example, when processing the respective images by two cameras provided on the left and right, the image memory 3 becomes two independent image memories 311 and 312. Here, the image memories 311 and 312 can be identified, for example, by the most significant bit (MSB) of the address (RAM address).

なお、図14では、例えば、図15に示すルートセレクタレジスタ16に対してRAMアドレスのMSBが既に設定され、各PEがアクセスする画像用メモリが既に指定されている。   In FIG. 14, for example, the MSB of the RAM address is already set in the route selector register 16 shown in FIG. 15, and the image memory to which each PE accesses is already designated.

すなわち、図14は、初段のPE1aが第1画像用メモリ311をアクセスし、2つのデータ(比較対象データ)を読み込んで比較(判定)処理を行い、2段目のPE1bが第2画像用メモリ312をアクセスし、2つのデータを読み込んで比較処理を行う場合を示す。   That is, in FIG. 14, the first-stage PE 1a accesses the first image memory 311, reads two data (data to be compared), performs comparison (determination) processing, and the second-stage PE 1b performs the second image memory A case where access is made to 312 and two data are read and comparison processing is performed is shown.

なお、以下に説明する第3実施例では、2つの独立した画像用メモリ311,312を例としているが、画像用メモリの数は、2つに限定されるものではない。例えば、4つの独立した画像用メモリに適用する場合には、RAMアドレスの上位2ビットを用いて各PEがアクセスする画像用メモリを指定することができる。   In the third embodiment described below, although two independent image memories 311 and 312 are taken as an example, the number of image memories is not limited to two. For example, in the case of application to four independent image memories, the upper two bits of the RAM address can be used to designate an image memory to be accessed by each PE.

さらに、画像用メモリは、共通のリソースの単なる例であり、複数のプロセッサエレメントが同時にアクセス可能な共通のリソースであればメモリに限定されるものではない。すなわち、共通のリソースとしては、例えば、入出力インターフェースや個々のプロセッサエレメントに実装するには高価となるような、乗算器を始めとする演算器等の様々なものであってもよい。そして、本第3実施例は、これら独立した複数の演算器等に対して適用することもできる。   Furthermore, the image memory is merely an example of a common resource, and it is not limited to the memory as long as it is a common resource that can be accessed simultaneously by a plurality of processor elements. That is, the common resource may be, for example, various elements such as an arithmetic unit including a multiplier which is expensive to be implemented in an input / output interface or an individual processor element. The third embodiment can also be applied to the plurality of independent computing units and the like.

図14に示されるように、第3実施例の演算処理装置において、PE制御部2と各PE1a〜1nを接続するカスケードバスは、独立した画像用メモリ311,312の個数と同じ2本(51,52)設けられている。   As shown in FIG. 14, in the processing unit of the third embodiment, two cascade buses connecting the PE control unit 2 and the PEs 1a to 1n are the same as the number of independent image memories 311 and 312 (51 , 52) provided.

また、各PE1a〜1nからは、ツリー用メモリ32に対してアクセスするバス19a〜19n、並びに、2つの画像用メモリ311,312に対してアクセスするバスが独立に設けられている。   Further, from each of the PEs 1a to 1n, buses 19a to 19n for accessing the tree memory 32 and buses for accessing the two image memories 311 and 312 are provided independently.

ただし、上述のように、図14は、PE1aがバス181aを介して既に指定された第1画像用メモリ311から2つのデータを読み込み、PE1bがバス181bを介して既に指定された第2画像用メモリ312から2つのデータを読み込んで比較処理を行う様子を示している。   However, as described above, FIG. 14 shows that the PE 1a reads two data from the first image memory 311 already designated via the bus 181a, and the PE 1b for the second image already designated via the bus 181b. It shows that two pieces of data are read from the memory 312 and comparison processing is performed.

各PE1a〜1nは、ツリー情報として格納されたデータ処理ごと(例えば、画像ごと)に割り当てられ、PE1a〜1nが独立して動作可能な経路のカスケード接続(カスケードバス)を選択することで、PE1a〜1nを並列に動作させ、処理時間の短縮を図る。   Each of the PEs 1a to 1n is assigned for each data processing (for example, for each image) stored as tree information, and the PEs 1a to 1n are independently connected by selecting a cascade connection (cascade bus) with which paths can be operated. The processing time is reduced by operating 1 to 1 n in parallel.

図14に示されるように、独立にアクセスできる画像用メモリが2つ(311,312)ある場合、例えば、RAMアドレスの上位1ビット目(最上位ビット:MSB:Most Significant Bit)を、2つの画像用メモリ311,312の選択に使用することができる。   As shown in FIG. 14, when there are two image memories (311, 312) that can be accessed independently, for example, the upper first bit (most significant bit: MSB: Most Significant Bit) of the RAM address It can be used to select the image memories 311 and 312.

すなわち、各PE1a〜1nは、RAMアドレスのMSBによって、アクセス対象のRAMが、第1画像用メモリ311および第2画像用メモリ312のどちらであるかを識別することができるようになっている。   That is, each of the PEs 1a to 1n can identify whether the RAM to be accessed is the first image memory 311 or the second image memory 312 based on the MSB of the RAM address.

このときに、アクセス対象の2つの画像用メモリ(RAM)311,312に対して、関連する2本のカスケードバス51,52が設けられる。なお、RAMアドレスのMSBを使用して、第1および第2画像用メモリ311,312の選択を行うのは単なる例であり、これに限定されるものではない。   At this time, associated two cascade buses 51 and 52 are provided for two image memories (RAMs) 311 and 312 to be accessed. Note that selecting the first and second image memories 311 and 312 using the MSB of the RAM address is merely an example, and the present invention is not limited to this.

ここで、RAMアドレスのMSB(CS1)が『0』のとき、偶数番目のPE1a,1c,…(PE0,PE2,…,PE14)は、第1カスケードバス51を通して伝えられる第1カスケードコマンドにより第1画像用メモリ311をアクセスするものとする。   Here, when the MSB (CS1) of the RAM address is “0”, the even-numbered PEs 1a, 1c,... (PE0, PE2,..., PE14) are selected by the first cascade command transmitted through the first cascade bus 51. It is assumed that one image memory 311 is accessed.

また、CS1が『1』のとき、奇数番目のPE1b,1d,…(PE1,PE3,…,PE15)が、第2カスケードバス52を通して伝えられる第2カスケードコマンドにより第2画像用メモリ312をアクセスするものとする。   In addition, when CS1 is “1”, odd-numbered PEs 1b, 1d,... (PE1, PE3,..., PE15) access the second image memory 312 by the second cascade command transmitted through the second cascade bus 52. It shall be.

なお、各PE1a〜1n(PE0〜PE15)は、自らがアクセスする画像用メモリ311,312に対応したカスケードバス51,52からのコマンド(命令)のみを実行する。そして、他のカスケードバスからのコマンドは、コマンドバッファ11によるバッファリングを行わずに、そのままスルーさせて、直列接続される(次段の)PEに伝える。   Each of the PEs 1a to 1n (PE0 to PE15) executes only a command (instruction) from the cascade bus 51 or 52 corresponding to the image memory 311 or 312 accessed by itself. Then, commands from other cascade buses are passed through as they are without buffering by the command buffer 11, and are transmitted to PEs connected in series (next stage).

また、ツリー用メモリ32に対するアクセスコマンドは、第1カスケードバス51または第2カスケードバス52を通して伝えてもよいが、第1および第2カスケードバスとは別の第3カスケードバスを設け、その第3カスケードバスを通して伝えることもできる。   In addition, although an access command to the memory for tree 32 may be transmitted through the first cascade bus 51 or the second cascade bus 52, a third cascade bus different from the first and second cascade buses is provided, and the third It can also be transmitted through the cascade bus.

図14において、PE制御部2から第1および第2カスケードバス51,52を通して送られる命令(カスケードコマンド)には、CBFとは別に、カスケードバスの一方のルートを選択するためのルート選択ビットフィールド(RSBF)が設定される。   In FIG. 14, a route selection bit field for selecting one route of the cascade bus separately from CBF in the instruction (cascade command) sent from the PE control unit 2 through the first and second cascade buses 51 and 52. (RSBF) is set.

カスケードコマンドの命令フォーマットの一例を、次の表2に示す。ここでは、命令長を34ビットとし、最上位ビットをRSBF(Route Select Bit Field:ルート選択情報)に割り当てている。なお、下位33ビットは、前述した表1と同様であり、上位2ビット目をCBF(命令種別情報)に割り当て、上位3ビット目からの下位32ビットを、通常の32bitプロセッサ用の命令フィールドとしている。   An example of the instruction format of the cascade command is shown in Table 2 below. Here, the instruction length is 34 bits, and the most significant bit is assigned to RSBF (Route Select Bit Field: route selection information). The lower 33 bits are the same as in Table 1 described above, the upper 2 bits are assigned to CBF (instruction type information), and the lower 32 bits from the upper 3 bits are used as an instruction field for a normal 32-bit processor. There is.

ここで、例えば、RSBFが『1』に設定されるときには、CBFも『1』に設定されることになる。

Figure 0006477185
Here, for example, when the RSBF is set to “1”, the CBF is also set to “1”.
Figure 0006477185

なお、RSBFは、例えば、プログラムを作成するプログラマ、または、プログラミング言語で書かれたプログラムのソースコードを変換するコンパイラにより、ソフト的にコマンド中に組み込むことができる。   The RSBF can be incorporated into commands in a soft manner by, for example, a programmer who creates a program or a compiler which converts the source code of a program written in a programming language.

或いは、PE制御部2のフェッチ部21に対して、命令(コマンド)やメモリアクセス先を解析するロジック回路を追加して、RSBFをコンド中に自動的に付加することも可能である。   Alternatively, it is also possible to add an RSBF automatically in the conduit by adding a logic circuit for analyzing an instruction (command) and a memory access destination to the fetch unit 21 of the PE control unit 2.

また、ツリー用メモリ32に対するアクセスの場合、例えば、RSBFは『0』で、CBFは『1』になるが、このとき、本第3実施例では、第1カスケードバス51からコマンドを取り込むものとする。   In the case of access to the tree memory 32, for example, RSBF is "0" and CBF is "1". At this time, in the third embodiment, commands are fetched from the first cascade bus 51. Do.

図15は、図14に示す演算処理装置におけるプロセッサエレメントの一例を示すブロック図であり、図16および図17は、図15に示すプロセッサエレメントにおけるセレクタを説明するための図である。   FIG. 15 is a block diagram showing an example of a processor element in the arithmetic processing unit shown in FIG. 14. FIGS. 16 and 17 are diagrams for explaining selectors in the processor element shown in FIG.

ここで、図16は、2つのセレクタ(第1セレクタ13および第2セレクタ14)に注目して示し、図17(a)は、第1セレクタ13の真理値表を示し、図17(b)は、第2セレクタ14の真理値表を示す。なお、図17(a)および図17(b)において、符号『×』は、考慮に入れなくてもよい(don't care:ドントケア)を示す。   Here, FIG. 16 is shown paying attention to two selectors (the first selector 13 and the second selector 14), and FIG. 17 (a) shows a truth table of the first selector 13, and FIG. 17 (b) Shows a truth table of the second selector 14. In addition, in FIG. 17A and FIG. 17B, the symbol “x” indicates “don't care” that may not be taken into consideration.

図15に示されるように、各PE1(1a〜1n)は、ルートセレクタレジスタ16を含む。ルートセレクタレジスタ16は、例えば、画像用メモリ(311,312)をアクセスするアドレスの最上位ビット(RAMアドレスのMSB)を保持していて、カスケードバス51,52を選択する制御信号(ルートセレクト信号)CS1をセレクタ13,14に出力する。   As shown in FIG. 15, each PE 1 (1 a to 1 n) includes a route selector register 16. The root selector register 16 holds, for example, the most significant bit (MSB of the RAM address) of the address for accessing the image memory (311, 312), and selects the cascade bus 51, 52 (control signal (route select signal) ) Output CS1 to selectors 13 and 14.

すなわち、各PE1(1a〜1n)は、画像用メモリ(311,312)に対するアクセスを実行するサイクルの前に、RAMアドレスのMSB(CS1)を、ルートセレクタレジスタ16に設定する。   That is, each PE 1 (1 a to 1 n) sets the MSB (CS 1) of the RAM address in the route selector register 16 before the cycle of executing the access to the image memory (311, 312).

また、図15および図16に示されるように、第1セレクタ13には、第1カスケードバス51を介した第1カスケードコマンド(A)、並びに、第2カスケードバス52を介した第2カスケードコマンド(B)が入力される。   Further, as shown in FIGS. 15 and 16, the first selector 13 receives the first cascade command (A) via the first cascade bus 51 and the second cascade command via the second cascade bus 52. (B) is input.

ここで、表2を参照して説明したように、各カスケードコマンド(例えば、34ビット)の最上位ビットMSBは、ルート選択情報(RSBF)として使用され、上位2ビット目は、命令種別情報(CBF)として使用される。   Here, as described with reference to Table 2, the most significant bit MSB of each cascade command (for example, 34 bits) is used as route selection information (RSBF), and the upper second bit is the instruction type information ( Used as CBF).

すなわち、第1カスケードコマンドのRSBFおよびCBFは、第1セレクタ13のS1およびS2として入力され、第2カスケードコマンドのRSBFおよびCBFは、第1セレクタ13のS3およびS4として入力される。また、共通バス4を介した共通コマンドは、第1セレクタ13のCとして入力される。   That is, RSBF and CBF of the first cascade command are input as S1 and S2 of the first selector 13, and RSBF and CBF of the second cascade command are input as S3 and S4 of the first selector 13. The common command via the common bus 4 is input as C of the first selector 13.

なお、初段のプロセッサエレメント1aには、PE制御部2から出力される第1および第2カスケードバス51,52がそのまま接続される。PE制御部2から第1および第2カスケードバス51,52には、共通のコマンドが発行される。ここで、第1セレクタ13は、S0〜S4に基づいて、第1および第2カスケードコマンド並びに共通コマンドのいずれかを選択する。   The first and second cascade buses 51 and 52 output from the PE control unit 2 are connected as they are to the processor element 1a of the first stage. A common command is issued from the PE control unit 2 to the first and second cascade buses 51 and 52. Here, the first selector 13 selects one of the first and second cascade commands and the common command based on S0 to S4.

具体的に、図17(a)に示されるように、第1セレクタ13は、第1カスケードコマンド(A)がS1=S2=『1』であり、S0=『1』に一致する場合、第1カスケードコマンド(A)をYとして選択し、コマンドバッファ11に出力する。   Specifically, as shown in FIG. 17A, when the first cascade command (A) satisfies S1 = S2 = “1” and S0 = “1”, as shown in FIG. 1) Select a cascade command (A) as Y and output it to the command buffer 11.

また、第1セレクタ13は、第2カスケードコマンド(B)がS3=S4=『1』であり、S0=『0』に一致する場合、第2カスケードコマンド(B)をYとして選択し、コマンドバッファ11に出力する。   When the second cascade command (B) matches S3 = S4 = “1” and S0 = “0”, the first selector 13 selects the second cascade command (B) as Y, and the command Output to buffer 11.

さらに、第1セレクタ13は、第1カスケードコマンド(A)のS2=『0』で、第2カスケードコマンド(B)のS4=『0』のとき、共通バス4からの共通コマンド(C)をYとして選択し、コマンドバッファ11に出力する。   Furthermore, the first selector 13 selects the common command (C) from the common bus 4 when S2 = “0” of the first cascade command (A) and S4 = “0” of the second cascade command (B). It is selected as Y and output to the command buffer 11.

そして、図17(b)に示されるように、第2セレクタ14は、RSBFおよびCBFが共に『1』(S1=S2=『1』,S3=S4=『1』)で、かつ、S0(CS1)に一致しないカスケードコマンドA,Bを、次段のPEにそのままY1,Y0として伝える。   Then, as shown in FIG. 17B, in the second selector 14, both RSBF and CBF are “1” (S1 = S2 = “1”, S3 = S4 = “1”), and S0 (S1 = S2 = “1”). Cascade commands A and B which do not match CS1) are transmitted to the PE of the next stage as they are as Y1 and Y0.

すなわち、S0が『1』のとき、第2カスケードバス52に対して、S3=S4=『1』のカスケードコマンド(B)が入力された場合には、そのカスケードコマンド(B)を、次段のPEの第2カスケードバス52に対してそのまま出力(Y0)する。   That is, when the cascade command (B) of S3 = S4 = “1” is input to the second cascade bus 52 when S0 is “1”, the cascade command (B) is input to the next stage. Output (Y0) as it is to the second cascade bus 52 of PE.

また、S0が『0』のとき、第1カスケードバス51に対して、S1=S2=『1』のカスケードコマンド(A)が入力された場合には、そのカスケードコマンド(A)を、次段のPEの第1カスケードバス51に対してそのまま出力(Y1)する。   When the cascade command (A) of S1 = S2 = “1” is input to the first cascade bus 51 when S0 is “0”, the cascade command (A) is input to the next stage. Output (Y1) to the first cascade bus 51 of the PE of FIG.

なお、他の場合は、コマンドバッファ11からの出力(C)を、そのまま次段のPEの第1および第2カスケードバス51,52に対して出力(Y1,Y0)することになる。   In other cases, the output (C) from the command buffer 11 is output (Y1, Y0) as it is to the first and second cascade buses 51, 52 of the next-stage PE.

図18は、第3実施例の演算処理装置による動作の一例を説明するためのタイミングチャートであり、独立動作が可能な2つの経路(第1および第2カスケードバス51,52)により、2つの独立した画像用メモリ311,312をアクセスする様子を示すものである。   FIG. 18 is a timing chart for explaining an example of the operation of the processing unit of the third embodiment, and two paths (first and second cascade buses 51 and 52) capable of independent operation are used. It shows how the independent image memories 311 and 312 are accessed.

図18において、偶数番号のプロセッサエレメント(PE0,PE2,…,PE14)は、例えば、第1カスケードバス51を通して伝えられる第1カスケードコマンドにより、RAMアドレスのMSBが『0』の第1画像用メモリ311をアクセスするものとする。   18, even-numbered processor elements (PE0, PE2,..., PE14) are, for example, memory for the first image for the first address of the RAM address “0” by the first cascade command transmitted through the first cascade bus 51. Suppose that 311 is accessed.

また、奇数番号のプロセッサエレメント(PE1,PE3,…,PE15)は、例えば、第2カスケードバス52を通して伝えられる第2カスケードコマンドにより、RAMアドレスのMSBが『1』の第1画像用メモリ312をアクセスするものとする。   In addition, odd-numbered processor elements (PE1, PE3,..., PE15) are controlled, for example, by the second cascade command transmitted through the second cascade bus 52 to store the first image memory 312 whose MSB of the RAM address is "1". It shall be accessed.

その結果、図18に示されるように、同じ画像用メモリに対してアクセスするPEにより同じカスケードバスを使用するグループが形成され、異なるカスケードバスに属するグループのアクセスと同時に処理できるため、処理時間のさらなる短縮が可能になる。   As a result, as shown in FIG. 18, PEs accessing the same image memory form a group using the same cascade bus, and processing can be performed simultaneously with access to groups belonging to different cascade buses. Further shortening is possible.

なお、独立した画像用メモリの数は、2つに限定されるものではなく、また、複数のPEが同時にアクセス可能な共通のリソースであれば画像用メモリに限定されないのは、前述した通りである。   The number of independent image memories is not limited to two, and is not limited to image memories as long as it is a common resource that multiple PEs can simultaneously access, as described above. is there.

図19は、本実施例の演算処理装置が適用される半導体集積回路の一例を示すブロック図であり、デジタルカメラ向けのSoC(System On a Chip)を概略的に示すものである。図19に示されるように、SoC(半導体集積回路)200は、SIMDブロック201、内蔵メモリ202、メモリIF(インターフェース)203、イメージセンサIF204、画像処理部205、CPU206およびバスマトリックス207を含む。   FIG. 19 is a block diagram showing an example of a semiconductor integrated circuit to which the arithmetic processing unit of the present embodiment is applied, and schematically showing an SoC (System On a Chip) for digital cameras. As shown in FIG. 19, a SoC (semiconductor integrated circuit) 200 includes a SIMD block 201, an embedded memory 202, a memory IF (interface) 203, an image sensor IF 204, an image processing unit 205, a CPU 206, and a bus matrix 207.

ここで、SIMDブロック201、内蔵メモリ202、メモリIF203、イメージセンサIF204、画像処理部205およびCPU206は、バスマトリックス207により相互に接続されている。また、イメージセンサIF204は、例えば、外部に設けられたレンズ等の光学系による画像をイメージセンサで電気信号に変換した信号を受け取るものである。なお、上述した各実施例の演算処理装置は、SIMDブロック201に対応する。   Here, the SIMD block 201, the built-in memory 202, the memory IF 203, the image sensor IF 204, the image processing unit 205, and the CPU 206 are mutually connected by a bus matrix 207. The image sensor IF 204 receives, for example, a signal obtained by converting an image by an optical system such as a lens provided outside into an electrical signal by the image sensor. The arithmetic processing unit of each of the embodiments described above corresponds to the SIMD block 201.

すなわち、図19に示すSIMDブロック201におけるPE制御部2は、例えば、CPU206からの命令により制御される。また、SIMDブロック201における画像用メモリ31(311,312)およびツリー用メモリ32は、例えば、メモリIF203を介して外部の大容量メモリ(図示しない)から取り込んだデータを格納する内蔵メモリ202からのデータを読み込むことになる。   That is, the PE control unit 2 in the SIMD block 201 shown in FIG. 19 is controlled, for example, by an instruction from the CPU 206. Also, the image memory 31 (311, 312) and the tree memory 32 in the SIMD block 201 are, for example, from the built-in memory 202 that stores data fetched from an external large capacity memory (not shown) via the memory IF 203. It will read data.

以上において、本実施例の演算処理装置の適用は、画像処理を行うSoCに限定されるものではなく、様々な電子機器に使用する半導体集積回路として幅広くて適用することができるのはいうまでもない。   In the above, the application of the arithmetic processing unit of the present embodiment is not limited to the SoC that performs image processing, and it can be widely applied as a semiconductor integrated circuit used for various electronic devices. Absent.

以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。   Although the embodiments have been described above, all the examples and conditions described herein are for the purpose of assisting the understanding of the concept of the invention applied to the invention and the technology, and the examples and conditions described are particularly It is not intended to limit the scope of the invention. Also, such descriptions in the specification do not show the advantages and disadvantages of the invention. While the embodiments of the invention have been described in detail, it should be understood that various changes, substitutions, and alterations can be made without departing from the spirit and scope of the invention.

以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
共通のリソースに対して、同時にアクセス可能な複数のプロセッサエレメントを含む演算処理装置であって、
前記複数のプロセッサエレメントに対して並列に接続され、それぞれの前記プロセッサエレメントに共通の第1命令を与える第1バスと、
前記複数のプロセッサエレメントに対して直列に接続され、前記複数のプロセッサエレメントにおいて、第1サイクルで第1プロセッサエレメントに与えた第2命令を、前記第1サイクルの次の第2サイクルで前記第1プロセッサエレメントに直列接続される第2プロセッサエレメントに伝える第2バスと、を有する、
ことを特徴とする演算処理装置。
Further, the following appendices will be disclosed regarding the embodiment including the above-described example.
(Supplementary Note 1)
An arithmetic processing unit including a plurality of processor elements that can simultaneously access a common resource,
A first bus connected in parallel to the plurality of processor elements and providing a common first instruction to each of the processor elements;
A second instruction, which is serially connected to the plurality of processor elements, and which is given to the first processor element in the first cycle in the plurality of processor elements, is said first in the second cycle following the first cycle. And a second bus for communicating to a second processor element serially connected to the processor element.
Arithmetic processing apparatus characterized in that.

(付記2)
それぞれの前記プロセッサエレメントは、
命令を実行するプロセッサコアと、
前記第1命令および前記第2命令のいずれかを示す命令種別情報に従って、前記第1バスおよび前記第2バスのいずれかを選択する第1セレクタと、を有する、
ことを特徴とする付記1に記載の演算処理装置。
(Supplementary Note 2)
Each said processor element is
A processor core that executes instructions,
A first selector for selecting one of the first bus and the second bus according to instruction type information indicating one of the first instruction and the second instruction;
The arithmetic processing unit according to appendix 1, characterized in that:

(付記3)
前記第1命令および前記第2命令は、それぞれの命令が第1命令か第2命令かを示す前記命令種別情報のビットフィールドを含み、
前記第1セレクタは、
前記命令種別情報のビットフィールドが前記第2命令を示すとき、前記第2バスを選択して前記第2命令を出力し、
前記命令種別情報のビットフィールドが前記第1命令を示すとき、前記第1バスを選択して前記第1命令を出力する、
ことを特徴とする付記2に記載の演算処理装置。
(Supplementary Note 3)
The first instruction and the second instruction include bit fields of the instruction type information indicating whether each instruction is a first instruction or a second instruction,
The first selector is
When the bit field of the instruction type information indicates the second instruction, the second bus is selected to output the second instruction;
When the bit field of the instruction type information indicates the first instruction, the first bus is selected to output the first instruction.
The arithmetic processing unit according to appendix 2, characterized in that

(付記4)
それぞれの前記プロセッサエレメントは、さらに、
前記第1セレクタで選択された命令を保持するコマンドバッファを有する、
ことを特徴とする付記2または付記3に記載の演算処理装置。
(Supplementary Note 4)
Each said processor element is further
A command buffer for holding an instruction selected by the first selector;
The arithmetic processing unit according to appendix 2 or appendix 3, characterized in that

(付記5)
前記第1プロセッサエレメントは、
前記第1サイクルにより、前記第1セレクタで選択された命令を前記コマンドバッファに保持し、
前記第2サイクルにより、前記コマンドバッファに保持された命令を、前記第2バスを通して、前記第2プロセッサエレメントに伝える、
ことを特徴とする付記4に記載の演算処理装置。
(Supplementary Note 5)
The first processor element is
In the first cycle, the instruction selected by the first selector is held in the command buffer,
The second cycle transmits the instruction held in the command buffer to the second processor element through the second bus.
The arithmetic processing unit according to appendix 4, characterized in that

(付記6)
それぞれの前記プロセッサエレメントは、さらに、
前記第1セレクタで選択された命令および前記コマンドバッファに保持された命令のいずれか一方を選択する第2セレクタを有する、
ことを特徴とする付記4に記載の演算処理装置。
(Supplementary Note 6)
Each said processor element is further
And a second selector that selects one of the instruction selected by the first selector and the instruction held in the command buffer.
The arithmetic processing unit according to appendix 4, characterized in that

(付記7)
前記第1プロセッサエレメントは、前記第1プロセッサエレメントによるデータ処理が不要または完了している場合、
前記第2セレクタは、前記第1セレクタで選択された命令を、前記第1プロセッサエレメントをスキップして選択し、前記第2プロセッサエレメントに伝える、
ことを特徴とする付記6に記載の演算処理装置。
(Appendix 7)
When the first processor element does not need or complete data processing by the first processor element,
The second selector selects the instruction selected by the first selector by skipping the first processor element, and transmits the selected instruction to the second processor element.
The arithmetic processing unit according to appendix 6, characterized in that

(付記8)
前記共通のリソースは、独立して動作可能な複数の共通リソースを含み、
前記第2バスは、前記複数の共通リソースの数に対応した数の複数の第2バスを含む、
ことを特徴とする付記6または付記7に記載の演算処理装置。
(Supplementary Note 8)
The common resource includes a plurality of common resources that can operate independently,
The second bus includes a plurality of second buses corresponding in number to the plurality of common resources.
The arithmetic processing unit according to Supplementary Note 6 or 7, characterized in that

(付記9)
それぞれの前記プロセッサエレメントは、さらに、
前記複数の共通リソースのうち、自身のプロセッサエレメントがアクセスする共通リソースを指定するルートセレクタレジスタを含む、
ことを特徴とする付記8に記載の演算処理装置。
(Appendix 9)
Each said processor element is further
Among the plurality of common resources, including a route selector register specifying a common resource accessed by its own processor element
The arithmetic processing unit according to appendix 8, characterized in that

(付記10)
前記第2命令は、自身の命令が、前記複数の第2バスにおけるどのルートを通して伝えられるかを選択するルート選択情報のビットフィールドを含む、
ことを特徴とする付記9に記載の演算処理装置。
(Supplementary Note 10)
The second instruction includes a bit field of route selection information that selects through which route on the plurality of second buses that instruction is transmitted.
The arithmetic processing unit according to appendix 9, characterized in that

(付記11)
前記演算処理装置は、SIMD型演算処理装置であり、
前記共通のリソースは、メモリである、
ことを特徴とする付記1乃至付記10のいずれか1項に記載の演算処理装置。
(Supplementary Note 11)
The arithmetic processing unit is a SIMD type arithmetic processing unit,
The common resource is memory,
The arithmetic processing unit according to any one of Appendixes 1 to 10, which is characterized in that:

(付記12)
前記メモリは、画像データを格納する画像用メモリと、前記画像データに対して2分木探索を実行するときに使用するノード情報を格納するツリー用メモリと、を含み、
前記第1命令は、前記ツリー用メモリをアクセスし、
前記第2命令は、前記画像用メモリをアクセスする、
ことを特徴とする付記11に記載の演算処理装置。
(Supplementary Note 12)
The memory includes an image memory for storing image data, and a tree memory for storing node information used when executing a binary tree search on the image data.
The first instruction accesses the tree memory,
The second instruction accesses the image memory.
The arithmetic processing unit according to appendix 11, characterized in that

(付記13)
前記複数のプロセッサエレメントは、それぞれ
前記第1命令による前記ツリー用メモリのアクセス、および、前記第2命令による前記画像用メモリのアクセスによるデータ処理を、並列して同時に行う、
ことを特徴とする付記12に記載の演算処理装置。
(Supplementary Note 13)
The plurality of processor elements simultaneously perform parallel data processing by accessing the tree memory by the first instruction and accessing the image memory by the second instruction.
The arithmetic processing unit according to appendix 12, characterized in that

(付記14)
付記1乃至付記13のいずれか1項に記載の演算処理装置を含む、
ことを特徴とする半導体集積回路。
(Supplementary Note 14)
An arithmetic processing unit according to any one of Appendixes 1 to 13
A semiconductor integrated circuit characterized by

(付記15)
共通のリソースに対して、同時にアクセス可能な複数のプロセッサエレメントを含む演算処理装置の制御方法であって、
前記複数のプロセッサエレメントに対して並列に接続された第1バスを通して、それぞれの前記プロセッサエレメントに共通の第1命令を与え、
前記複数のプロセッサエレメントに対して直列に接続された第2バスを通して、前記複数のプロセッサエレメントにおいて、第1サイクルで第1プロセッサエレメントに与えた第2命令を、前記第1サイクルの次の第2サイクルで前記第1プロセッサエレメントに直列接続される第2プロセッサエレメントに伝える、
ことを特徴とする演算処理装置の制御方法。
(Supplementary Note 15)
A control method of an arithmetic processing unit including a plurality of processor elements simultaneously accessible to a common resource, the control method comprising:
Providing a common first instruction to each of the processor elements through a first bus connected in parallel to the plurality of processor elements;
The second instruction given to the first processor element in the first cycle in the plurality of processor elements through the second bus serially connected to the plurality of processor elements is the second following the first cycle Transferring to a second processor element serially connected to the first processor element in a cycle
A control method of an arithmetic processing unit characterized in that.

1,1a〜1n,PE0〜PE15 プロセッサエレメント(PE)
2,102 PE制御部
4,104 共通コマンドバス(共通バス:第1バス)
5,51,52 カスケードバス(第2バス)
11,111 コマンドバッファ
12 プロセッサコア
13 セレクタ(第1セレクタ)
14 第2セレクタ
16 ルートセレクタレジスタ
21,121 フェッチ部
22,122 プログラムメモリ
31,311,312 画像用メモリ
32,103 ツリー用メモリ
106 アービタ
1, 1a-1n, PE0-PE15 Processor Element (PE)
2, 102 PE control unit 4, 104 common command bus (common bus: first bus)
5, 51, 52 Cascade bus (second bus)
11, 111 command buffer 12 processor core 13 selector (first selector)
14 second selector 16 root selector register 21, 121 fetch unit 22, 122 program memory 31, 311, 312 image memory 32, 103 tree memory
106 Arbiter

Claims (11)

共通のリソースに対して、同時にアクセス可能な複数のプロセッサエレメントを含む演算処理装置であって、
前記複数のプロセッサエレメントに対して並列に接続され、それぞれの前記プロセッサエレメントに共通の第1命令を与える第1バスと、
前記複数のプロセッサエレメントに対して直列に接続され、前記複数のプロセッサエレメントにおいて、第1サイクルで第1プロセッサエレメントに与えた第2命令を、前記第1サイクルの次の第2サイクルで前記第1プロセッサエレメントに直列接続される第2プロセッサエレメントに伝える第2バスと、を有する、
ことを特徴とする演算処理装置。
An arithmetic processing unit including a plurality of processor elements that can simultaneously access a common resource,
A first bus connected in parallel to the plurality of processor elements and providing a common first instruction to each of the processor elements;
A second instruction, which is serially connected to the plurality of processor elements, and which is given to the first processor element in the first cycle in the plurality of processor elements, is said first in the second cycle following the first cycle. And a second bus for communicating to a second processor element serially connected to the processor element.
Arithmetic processing apparatus characterized in that.
それぞれの前記プロセッサエレメントは、
命令を実行するプロセッサコアと、
前記第1命令および前記第2命令のいずれかを示す命令種別情報に従って、前記第1バスおよび前記第2バスのいずれかを選択する第1セレクタと、を有する、
ことを特徴とする請求項1に記載の演算処理装置。
Each said processor element is
A processor core that executes instructions,
A first selector for selecting one of the first bus and the second bus according to instruction type information indicating one of the first instruction and the second instruction;
The arithmetic processing unit according to claim 1, characterized in that:
前記第1命令および前記第2命令は、それぞれの命令が第1命令か第2命令かを示す前記命令種別情報のビットフィールドを含み、
前記第1セレクタは、
前記命令種別情報のビットフィールドが前記第2命令を示すとき、前記第2バスを選択して前記第2命令を出力し、
前記命令種別情報のビットフィールドが前記第1命令を示すとき、前記第1バスを選択して前記第1命令を出力する、
ことを特徴とする請求項2に記載の演算処理装置。
The first instruction and the second instruction include bit fields of the instruction type information indicating whether each instruction is a first instruction or a second instruction,
The first selector is
When the bit field of the instruction type information indicates the second instruction, the second bus is selected to output the second instruction;
When the bit field of the instruction type information indicates the first instruction, the first bus is selected to output the first instruction.
The arithmetic processing unit according to claim 2, characterized in that:
それぞれの前記プロセッサエレメントは、さらに、
前記第1セレクタで選択された命令を保持するコマンドバッファを有する、
ことを特徴とする請求項2または請求項3に記載の演算処理装置。
Each said processor element is further
A command buffer for holding an instruction selected by the first selector;
The arithmetic processing unit according to claim 2 or 3 characterized by things.
前記第1プロセッサエレメントは、
前記第1サイクルにより、前記第1セレクタで選択された命令を前記コマンドバッファに保持し、
前記第2サイクルにより、前記コマンドバッファに保持された命令を、前記第2バスを通して、前記第2プロセッサエレメントに伝える、
ことを特徴とする請求項4に記載の演算処理装置。
The first processor element is
In the first cycle, the instruction selected by the first selector is held in the command buffer,
The second cycle transmits the instruction held in the command buffer to the second processor element through the second bus.
The arithmetic processing unit according to claim 4, characterized in that:
それぞれの前記プロセッサエレメントは、さらに、
前記第1セレクタで選択された命令および前記コマンドバッファに保持された命令のいずれか一方を選択する第2セレクタを有する、
ことを特徴とする請求項4に記載の演算処理装置。
Each said processor element is further
And a second selector that selects one of the instruction selected by the first selector and the instruction held in the command buffer.
The arithmetic processing unit according to claim 4, characterized in that:
前記第1プロセッサエレメントは、前記第1プロセッサエレメントによるデータ処理が不要または完了している場合、
前記第2セレクタは、前記第1セレクタで選択された命令を、前記第1プロセッサエレメントをスキップして選択し、前記第2プロセッサエレメントに伝える、
ことを特徴とする請求項6に記載の演算処理装置。
When the first processor element does not need or complete data processing by the first processor element,
The second selector selects the instruction selected by the first selector by skipping the first processor element, and transmits the selected instruction to the second processor element.
The arithmetic processing unit according to claim 6, characterized in that:
前記共通のリソースは、独立して動作可能な複数の共通リソースを含み、
前記第2バスは、前記複数の共通リソースの数に対応した数の複数の第2バスを含む、
ことを特徴とする請求項6または請求項7に記載の演算処理装置。
The common resource includes a plurality of common resources that can operate independently,
The second bus includes a plurality of second buses corresponding in number to the plurality of common resources.
The arithmetic processing unit according to claim 6 or 7 characterized by things.
それぞれの前記プロセッサエレメントは、さらに、
前記複数の共通リソースのうち、自身のプロセッサエレメントがアクセスする共通リソースを指定するルートセレクタレジスタを含む、
ことを特徴とする請求項8に記載の演算処理装置。
Each said processor element is further
Among the plurality of common resources, including a route selector register specifying a common resource accessed by its own processor element
The arithmetic processing unit according to claim 8, characterized in that:
前記第2命令は、自身の命令が、前記複数の第2バスにおけるどのルートを通して伝えられるかを選択するルート選択情報のビットフィールド(RSBF)を含む、
ことを特徴とする請求項9に記載の演算処理装置。
The second instruction includes a bit field (RSBF) of route selection information which selects through which route in the plurality of second buses that instruction of its own is transmitted.
The arithmetic processing unit according to claim 9, characterized in that:
共通のリソースに対して、同時にアクセス可能な複数のプロセッサエレメントを含む演算処理装置の制御方法であって、
前記複数のプロセッサエレメントに対して並列に接続された第1バスを通して、それぞれの前記プロセッサエレメントに共通の第1命令を与え、
前記複数のプロセッサエレメントに対して直列に接続された第2バスを通して、前記複数のプロセッサエレメントにおいて、第1サイクルで第1プロセッサエレメントに与えた第2命令を、前記第1サイクルの次の第2サイクルで前記第1プロセッサエレメントに直列接続される第2プロセッサエレメントに伝える、
ことを特徴とする演算処理装置の制御方法。
A control method of an arithmetic processing unit including a plurality of processor elements simultaneously accessible to a common resource, the control method comprising:
Providing a common first instruction to each of the processor elements through a first bus connected in parallel to the plurality of processor elements;
The second instruction given to the first processor element in the first cycle in the plurality of processor elements through the second bus serially connected to the plurality of processor elements is the second following the first cycle Transferring to a second processor element serially connected to the first processor element in a cycle
A control method of an arithmetic processing unit characterized in that.
JP2015079382A 2015-04-08 2015-04-08 Arithmetic processing apparatus and control method of arithmetic processing apparatus Active JP6477185B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015079382A JP6477185B2 (en) 2015-04-08 2015-04-08 Arithmetic processing apparatus and control method of arithmetic processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015079382A JP6477185B2 (en) 2015-04-08 2015-04-08 Arithmetic processing apparatus and control method of arithmetic processing apparatus

Publications (2)

Publication Number Publication Date
JP2016200906A JP2016200906A (en) 2016-12-01
JP6477185B2 true JP6477185B2 (en) 2019-03-06

Family

ID=57424444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015079382A Active JP6477185B2 (en) 2015-04-08 2015-04-08 Arithmetic processing apparatus and control method of arithmetic processing apparatus

Country Status (1)

Country Link
JP (1) JP6477185B2 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5529503B2 (en) * 2009-11-13 2014-06-25 リンテック株式会社 Belt winding device and winding method

Also Published As

Publication number Publication date
JP2016200906A (en) 2016-12-01

Similar Documents

Publication Publication Date Title
CN109542515B (en) Arithmetic device and method
US8082420B2 (en) Method and apparatus for executing instructions
TWI528279B (en) Multiprocessor system and method for data processing
JP2014501007A (en) Method and apparatus for moving data from a general purpose register file to a SIMD register file
US20090260013A1 (en) Computer Processors With Plural, Pipelined Hardware Threads Of Execution
US20210034566A1 (en) Memory Network Processor
US20110231616A1 (en) Data processing method and system
JP2014106715A (en) Control program of processing unit, control method of processing unit, and processing unit
TWI546736B (en) Multi-threaded gpu pipeline
KR20180045029A (en) Shift registers with reduced wiring complexity
CN117453594A (en) Data transmission device and method
CN114153500A (en) Instruction scheduling method, instruction scheduling device, processor and storage medium
US8190856B2 (en) Data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled
JP5583893B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP5580404B2 (en) Semiconductor device
JP6477185B2 (en) Arithmetic processing apparatus and control method of arithmetic processing apparatus
US20090138634A1 (en) Semiconductor integrated circuit device which executes data transfer between a plurality of devices connected over network, and data transfer method
TW446874B (en) Method and apparatus for transaction recirculation in a data processing system
EP1035479A2 (en) System for processing vector data
CN112463218B (en) Instruction emission control method and circuit, data processing method and circuit
US10114650B2 (en) Pessimistic dependency handling based on storage regions
JP2008102599A (en) Processor
JP4482356B2 (en) Image processing method and image processing apparatus using SIMD processor
US20230409482A1 (en) Multi-die package
US20230409323A1 (en) Signal processing apparatus and non-transitory computer-readable storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190121

R150 Certificate of patent or registration of utility model

Ref document number: 6477185

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150