JP6477185B2 - Arithmetic processing apparatus and control method of arithmetic processing apparatus - Google Patents
Arithmetic processing apparatus and control method of arithmetic processing apparatus Download PDFInfo
- 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
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.
上述したように、例えば、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〜図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,
なお、図1では、複数のPE101a〜101nが同時にアクセス可能な共通のリソースとして、ツリー用メモリ103を示しているが、例えば、図示しない画像用メモリに対しても、調停を行うアービタが設けられることになる。
In FIG. 1, the
PE制御部102は、命令(コマンド)を一時的に保持するフェッチ部121、および、プログラムを格納するプログラムメモリ122を含む。ここで、各PE101a〜101nは、共通バス104を通してPE制御部102からの共通コマンドを受け取り、それぞれアービタ106との間のバス110a〜110nを介してメモリ103に対してアクセスする。
The
図1において、各PE101a〜101nとアービタ106間のバス110a〜110nは、1本の線として描かれているが、例えば、双方向で複数ビット(例えば、32または64ビット)のアドレスバスおよびデータバスを含む。
Although the
また、例えば、図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 (
さらに、比較対象データは、例えば、別のメモリ(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
そして、PE101は、メモリ103に対して、バス110およびアービタ106を介してRAM(メモリ)アドレスおよびRAMリードリクエストを出力し、メモリ103からアービタ106およびバス110を介して、RAMリードACK(アクノリッジ)およびRAMリードデータを受け取る。
Then, the
図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
図3に示されるように、グラフィックス処理を行う場合、例えば、各PE101a〜101nに対して、それぞれが担当する画素のピクセルデータ(A1,A2,A3,… 〜 N1,N2,N3,…)を決まった順序で送り込む。
As shown in FIG. 3, when graphics processing is performed, for example, pixel data (
それぞれのPE101a〜101nは、入力されたデータに対して単純に決まった演算(例えば、A1*A2+A3 〜 N1*N2+N3)を実施して出力する。すなわち、グラフィックス処理を行う場合には、各PE101a〜101nの内部状態に関わらず、例えば、外部(外部メモリ)からDMA(Direct Memory Access)などによってデータを供給することが可能である。
Each of the
図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
この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 (
図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
つまり、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
図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
ここで、ツリー用メモリ(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
また、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,
ここで、カスケードバス5は、コマンド(第2命令)を、各サイクルに基づいて順番に直列接続されるPEに渡す(バケツリレーする)ためのバスであり、本明細書では、コマンドをバケツリレーするバスを、便宜的に、カスケードバスと呼ぶことにする。
Here, the
また、画像用メモリ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
各PE1a〜1nには、それぞれ1つの2分木処理が割り当てられる。また、共通バス4は、複数のPE1a〜1nに対して並列に接続され、それぞれのPE1a〜1nに対して共通の共通コマンド(第1命令)を与えるようになっている。
One binary tree process is assigned to each of the
さらに、カスケードバス5は、複数のPE1a〜1nに対して直列に接続され、複数のPE1a〜1nにおいて、例えば、第1サイクルでPE1aに与えたカスケードコマンド(第2命令)を、次の第2サイクルでPE1bに伝えるようになっている。
Furthermore, the
PE制御部2は、命令(コマンド)を一時的に保持するフェッチ部21、および、プログラムを格納するプログラムメモリ22を含む。ここで、各PE1a〜1nは、共通バス4を通して、PE制御部2からの共通コマンドを受け取り、さらに、カスケードバス5を通して、カスケードコマンドを受け取る。
The
図6に示されるように、各PE1a〜1nと画像用メモリ31は、それぞれバス18a〜18nで接続され、また、各PE1a〜1nとツリー用メモリ32は、それぞれバス19a〜19nで接続されている。
As shown in FIG. 6, the
なお、これらのバス18a〜18nおよび19a〜19nは、1本の線として描かれているが、例えば、双方向で複数ビット(例えば、32または64ビット)のアドレスバスおよびデータバスを含んでいる。
Although these
図6において、PE制御部2から、共通バス4を通して送られる共通コマンド(第1命令)、並びに、カスケードバス5を通して送られるカスケードコマンド(第2命令)には、1ビットのビットフィールド(カスケードビットフィールド)が設定されている。
In FIG. 6, a common command (first instruction) sent through the
命令フォーマットの一例を、次の表1に示す。ここでは、命令長を33ビットとし、最上位ビットをカスケードビットフィールドCBF(Cascade Bit Field:命令種別情報)に割り当て、下位32ビットを、通常の32bitプロセッサ用の命令フィールドとしている。
表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
上述したように、PE制御部2と各PE1a〜1nは、共通バス4およびカスケードバス5の2つのバスによって接続されている。そして、PE制御部2は、各PE1a〜1nがメモリアクセスを行わないコマンド(共通コマンド)を共通バス4に発行し、メモリアクセスを行うコマンド(カスケードコマンド)をカスケードバス5に発行する。
As described above, the
この際、バス上に制御信号(命令種別情報)として、カスケードビットフィールド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
なお、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
図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
セレクタ13は、カスケードビットフィールド(命令種別情報)CBFにより、共通バス4の共通コマンドまたはカスケードバス5のカスケードコマンドを選択し、セレクタ13で選択されたコマンドは、コマンドバッファ11に保持される。
The
すなわち、セレクタ13は、CBFが『1』のとき、カスケードバス5のカスケードコマンドを選択し、CBFが『0』のとき、共通バス4の共通コマンドを選択し、その選択されたコマンドがコマンドバッファ11に保持される。
That is,
プロセッサコア12は、コマンドバッファ11に保持されたコマンドを実行する。そして、PE1は、コマンドバッファ11から出力されたコマンドがメモリアクセスの場合、PE1からメモリに対して、アドレス(RAMアドレス)と読み出しイネーブル(RAMリードイネーブル)を出力し、対応する読み出しデータ(RAMリードデータ)を受け取る。
The
コマンドバッファ11には、カスケードバス5上の制御信号であるカスケードビットフィールドCBFを観測し、そのCBFが『1』のとき、セレクタ5で選択されたカスケードバス5によるカスケードコマンドが取り込まれる。また、コマンドバッファ11には、CBFが『0』のとき、セレクタ5で選択された共通バス4による共通コマンドが取り込まれる。
The
コマンドバッファ11は、取り込んだコマンドをバッファリングし、自身のPE(例えば、PE1a)のプロセッサコア12に対して、バッファリングしたコマンドを出力する。さらに、コマンドバッファ11にバッファリングされたコマンドは、次のサイクルで、直列接続される(次段の)PE(例えば、PE1b)にカスケードバス5を通して伝えられる。
The
これにより、例えば、メモリアクセスを行うコマンド(カスケードコマンド)は、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
ここで、アドレスは、リードイネーブルがアサートされているサイクルのみ有意な値を持ち、その他のサイクルでは『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
そのため、メモリへ入力されるアドレスおよびリードイネーブルは、各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制御部2は、例えば、最終のプロセッサエレメント1nが出力するCBF(CTS)を観測することによって、全てのプロセッサエレメント1a〜1nのメモリアクセスが終了したことを認識することができ、共通バス4に対するコマンドの発行が可能になる。
The
すなわち、上述した図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
このように、第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
図8(a)に示されるように、セレクタ13には、カスケードバス5を経由したカスケードコマンド(A)、並びに、共通バス4を経由した共通コマンド(B)が入力され、カスケードビットフィールドCBF(S)の値により一方が選択されるようになっている。
As shown in FIG. 8 (a), the cascade command (A) via the
ここで、カスケードコマンド(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
図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
図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
すなわち、ツリー用メモリ32へのアクセスであるコマンド(命令)cmd1と画像用メモリへのアクセスであるコマンドcmd2は、異なるメモリへのアクセスであるためにカスケードバス5に対して連続したサイクルで発行することができる。
That is, the command (instruction) cmd1 which is an access to the memory for
これにより、コマンド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
また、PE制御部2のフェッチ部21は、CBFを見て、これらのコマンドをカスケードバス5に出力する。ここで、コマンド中のCBFの設定は、コンパイラ或いはプログラマによって予め設定されることを想定しているが、例えば、PE制御部2のフェッチ部21にコマンドを解析するロジックを追加し、自動的にCBFを付加するようにしてもよい。
Also, the fetch
また、本実施例において、異なるメモリ(例えば、図6の画像用メモリ31およびツリー用メモリ32)に対するアクセスは、連続したカスケードコマンドとして発行することが可能であり、これは、画像用およびツリー用の2つのメモリに限定されない。
Also, in the present embodiment, accesses to different memories (for example, the
さらに、連続したカスケードコマンドとして発行することができるアクセス(命令)は、メモリアクセスに限定されるものではなく、例えば、複数のプロセッサエレメント(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 (
以上のように、本第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
すなわち、図10に示されるように、例えば、プロセッサエレメント1bは、終端ノードNNにたどりついた場合には、与えられた2分木処理が早期に終了することになる。第2実施例では、早期に判定結果が決まった処理については、判定終了のフラグを立てることにより、カスケードバス5で接続されたプロセッサエレメント1bをスキップし、より一層、処理速度の向上を図るようになっている。
That is, as shown in FIG. 10, for example, when the
図10に示されるように、各PE1a〜1nに対してそれぞれ割り当てられた2分木処理において、これら全ての2分木処理(2分木)が同じノード数となっているとは限らない。さらに、全てのPE1a〜1nに対して、処理する2分木を割り当てられるとも限らない。
As shown in FIG. 10, in the binary tree processing assigned to each of the
そこで、早期に判定結果が決まった(データ処理が完了している)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
図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
図11および図12(a)に示されるように、セレクタ14には、セレクタ13の出力およびコマンドバッファ11の出力が入力され、オアゲート153の出力(CS0)に応じて一方を選択して出力する。
As shown in FIGS. 11 and 12A, the
ここで、プロセッサコア12は、無効フラグが『1』の時には動作を行わない。無効フラグの設定/解除は、図示しない専用の制御信号を使用して行うことを想定しているが、例えば、共通バス4に対して専用のロジック回路を付加し、無効フラグの設定用命令が発行されたときに、無効フラグの設定/解除を行うようにすることもできる。
Here, the
また、コマンドバッファ11は、判定終了フラグまたは無効フラグが『1』の時にはカスケードコマンドをNOP(No-OPeration)コマンドに置き換える。さらに、判定終了フラグの設定は、共通バス4またはカスケードバス5を経由したコマンドを使用して、プロセッサコア12から行うようになっている。なお、判定終了フラグの解除は、共通バス4を経由したコマンドを使用して、プロセッサコア12から行うことができる。
Also, the
すなわち、オアゲート153は、判定終了フラグ(151)および無効フラグ(152)の論理和を取って、少なくとも一方が『1』になったら、セレクタ14に対して、『1』の制御信号CS0を出力する。
That is, the
図12(b)に示されるように、セレクタ14は、オアゲート153からの『1』の制御信号CS0(Sが『1』)を受け取り、セレクタ13で選択されたコマンド(B[32:0])を選択する。
As shown in FIG. 12B, the
そして、セレクタ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
具体的に、図10に示されるように、例えば、PE1bによる2分木処理が早期に終了した場合には、判定終了フラグ(151)を立てる(『1』にする)ことで、オアゲート153から出力される制御信号CS0が『1』になる。
Specifically, as shown in FIG. 10, for example, when the binary tree processing by the
これにより、セレクタ13で選択された、そのサイクルのコマンド(B[32:0])が選択コマンド(Y[32:0])として、PE1bの次段のPE1cに伝えられ、カスケードバス5によるコマンドの伝送時間を短縮することが可能になる。
Thereby, the command (B [32: 0]) of the cycle selected by the
また、例えば、PE1bに対して2分木処理が割り当てられなかった場合には、無効フラグ(152)を立てる(『1』にする)ことで、オアゲート153から出力される制御信号CS0が『1』になる。
Also, for example, when binary tree processing is not assigned to
これにより、セレクタ13で選択されたコマンド(B[32:0]、そのサイクルのコマンド)が選択コマンド(Y[32:0])として、PE1bの次段のPE1cに伝えられ、カスケードバス5によるコマンドの伝送時間を短縮することが可能になる。
Thereby, the command (B [32: 0], the command of the cycle) selected by the
なお、判定終了フラグ(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
すなわち、図12(b)に示されるように、セレクタ14は、オアゲート153からの『0』の制御信号CS0(Sが『0』)を受け取り、コマンドバッファ11から出力されたコマンド(A[32:0])を選択する。
That is, as shown in FIG. 12 (b), the
そして、コマンドバッファ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
図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
図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
すなわち、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
すなわち、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
なお、図14では、例えば、図15に示すルートセレクタレジスタ16に対してRAMアドレスのMSBが既に設定され、各PEがアクセスする画像用メモリが既に指定されている。
In FIG. 14, for example, the MSB of the RAM address is already set in the
すなわち、図14は、初段のPE1aが第1画像用メモリ311をアクセスし、2つのデータ(比較対象データ)を読み込んで比較(判定)処理を行い、2段目のPE1bが第2画像用メモリ312をアクセスし、2つのデータを読み込んで比較処理を行う場合を示す。
That is, in FIG. 14, the first-
なお、以下に説明する第3実施例では、2つの独立した画像用メモリ311,312を例としているが、画像用メモリの数は、2つに限定されるものではない。例えば、4つの独立した画像用メモリに適用する場合には、RAMアドレスの上位2ビットを用いて各PEがアクセスする画像用メモリを指定することができる。
In the third embodiment described below, although two
さらに、画像用メモリは、共通のリソースの単なる例であり、複数のプロセッサエレメントが同時にアクセス可能な共通のリソースであればメモリに限定されるものではない。すなわち、共通のリソースとしては、例えば、入出力インターフェースや個々のプロセッサエレメントに実装するには高価となるような、乗算器を始めとする演算器等の様々なものであってもよい。そして、本第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
また、各PE1a〜1nからは、ツリー用メモリ32に対してアクセスするバス19a〜19n、並びに、2つの画像用メモリ311,312に対してアクセスするバスが独立に設けられている。
Further, from each of the
ただし、上述のように、図14は、PE1aがバス181aを介して既に指定された第1画像用メモリ311から2つのデータを読み込み、PE1bがバス181bを介して既に指定された第2画像用メモリ312から2つのデータを読み込んで比較処理を行う様子を示している。
However, as described above, FIG. 14 shows that the
各PE1a〜1nは、ツリー情報として格納されたデータ処理ごと(例えば、画像ごと)に割り当てられ、PE1a〜1nが独立して動作可能な経路のカスケード接続(カスケードバス)を選択することで、PE1a〜1nを並列に動作させ、処理時間の短縮を図る。
Each of the
図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
すなわち、各PE1a〜1nは、RAMアドレスのMSBによって、アクセス対象のRAMが、第1画像用メモリ311および第2画像用メモリ312のどちらであるかを識別することができるようになっている。
That is, each of the
このときに、アクセス対象の2つの画像用メモリ(RAM)311,312に対して、関連する2本のカスケードバス51,52が設けられる。なお、RAMアドレスのMSBを使用して、第1および第2画像用メモリ311,312の選択を行うのは単なる例であり、これに限定されるものではない。
At this time, associated two
ここで、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
また、CS1が『1』のとき、奇数番目のPE1b,1d,…(PE1,PE3,…,PE15)が、第2カスケードバス52を通して伝えられる第2カスケードコマンドにより第2画像用メモリ312をアクセスするものとする。
In addition, when CS1 is “1”, odd-numbered
なお、各PE1a〜1n(PE0〜PE15)は、自らがアクセスする画像用メモリ311,312に対応したカスケードバス51,52からのコマンド(命令)のみを実行する。そして、他のカスケードバスからのコマンドは、コマンドバッファ11によるバッファリングを行わずに、そのままスルーさせて、直列接続される(次段の)PEに伝える。
Each of the
また、ツリー用メモリ32に対するアクセスコマンドは、第1カスケードバス51または第2カスケードバス52を通して伝えてもよいが、第1および第2カスケードバスとは別の第3カスケードバスを設け、その第3カスケードバスを通して伝えることもできる。
In addition, although an access command to the memory for
図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
カスケードコマンドの命令フォーマットの一例を、次の表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』に設定されることになる。
なお、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
また、ツリー用メモリ32に対するアクセスの場合、例えば、RSBFは『0』で、CBFは『1』になるが、このとき、本第3実施例では、第1カスケードバス51からコマンドを取り込むものとする。
In the case of access to the
図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
図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
すなわち、各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
また、図15および図16に示されるように、第1セレクタ13には、第1カスケードバス51を介した第1カスケードコマンド(A)、並びに、第2カスケードバス52を介した第2カスケードコマンド(B)が入力される。
Further, as shown in FIGS. 15 and 16, the
ここで、表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
なお、初段のプロセッサエレメント1aには、PE制御部2から出力される第1および第2カスケードバス51,52がそのまま接続される。PE制御部2から第1および第2カスケードバス51,52には、共通のコマンドが発行される。ここで、第1セレクタ13は、S0〜S4に基づいて、第1および第2カスケードコマンド並びに共通コマンドのいずれかを選択する。
The first and
具体的に、図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
また、第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
さらに、第1セレクタ13は、第1カスケードコマンド(A)のS2=『0』で、第2カスケードコマンド(B)のS4=『0』のとき、共通バス4からの共通コマンド(C)をYとして選択し、コマンドバッファ11に出力する。
Furthermore, the
そして、図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
すなわち、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
また、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
なお、他の場合は、コマンドバッファ11からの出力(C)を、そのまま次段のPEの第1および第2カスケードバス51,52に対して出力(Y1,Y0)することになる。
In other cases, the output (C) from the
図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
図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
また、奇数番号のプロセッサエレメント(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
その結果、図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ブロック201、内蔵メモリ202、メモリIF203、イメージセンサIF204、画像処理部205およびCPU206は、バスマトリックス207により相互に接続されている。また、イメージセンサIF204は、例えば、外部に設けられたレンズ等の光学系による画像をイメージセンサで電気信号に変換した信号を受け取るものである。なお、上述した各実施例の演算処理装置は、SIMDブロック201に対応する。
Here, the
すなわち、図19に示すSIMDブロック201におけるPE制御部2は、例えば、CPU206からの命令により制御される。また、SIMDブロック201における画像用メモリ31(311,312)およびツリー用メモリ32は、例えば、メモリIF203を介して外部の大容量メモリ(図示しない)から取り込んだデータを格納する内蔵メモリ202からのデータを読み込むことになる。
That is, the
以上において、本実施例の演算処理装置の適用は、画像処理を行う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
(付記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
(付記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
(付記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
(付記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
(付記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
(付記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
(付記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
(付記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
(付記14)
付記1乃至付記13のいずれか1項に記載の演算処理装置を含む、
ことを特徴とする半導体集積回路。
(Supplementary Note 14)
An arithmetic processing unit according to any one of
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
5, 51, 52 Cascade bus (second bus)
11, 111
14
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命令を示すとき、前記第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セレクタで選択された命令を前記コマンドバッファに保持し、
前記第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:
前記第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:
ことを特徴とする請求項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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5529503B2 (en) * | 2009-11-13 | 2014-06-25 | リンテック株式会社 | Belt winding device and winding method |
-
2015
- 2015-04-08 JP JP2015079382A patent/JP6477185B2/en active Active
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 |