JP2011081658A - Signal processing apparatus - Google Patents
Signal processing apparatus Download PDFInfo
- Publication number
- JP2011081658A JP2011081658A JP2009234316A JP2009234316A JP2011081658A JP 2011081658 A JP2011081658 A JP 2011081658A JP 2009234316 A JP2009234316 A JP 2009234316A JP 2009234316 A JP2009234316 A JP 2009234316A JP 2011081658 A JP2011081658 A JP 2011081658A
- Authority
- JP
- Japan
- Prior art keywords
- control unit
- instruction
- processing
- partial control
- partial
- 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.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
- Image Processing (AREA)
Abstract
Description
この発明は、例えば、画像処理などの信号処理を行う信号処理装置に関するものである。 The present invention relates to a signal processing apparatus that performs signal processing such as image processing.
近年、画像処理などの信号処理を行う信号処理装置では、並列処理を行うプロセッサと専用ハードウェアとから構成されている。
例えば、以下の特許文献1に開示されている信号処理装置では、SIMD(Single Instruction Multiple Data)型処理装置と専用ハードウェアが組み合わされており、SIMD型処理装置では、動き予測やDCT/IDCT処理を実行し、専用ハードウェアでは、VLC処理を実行することで、SIMD型処理装置と専用ハードウェアの並列処理を実現している。
In recent years, signal processing apparatuses that perform signal processing such as image processing are configured with a processor that performs parallel processing and dedicated hardware.
For example, in the signal processing device disclosed in the following
このように、特許文献1に開示されている信号処理装置では、高い処理性能を必要とするVLC処理を専用ハードウェアで処理することで、高い処理能力を達成している。
また、SIMD型処理装置を備えることで、多様な処理に対応できるようにしている。
SIMD型処理装置と専用ハードウェアの並列処理を実現することで、処理速度の高速化が図られる。
As described above, the signal processing device disclosed in
Also, by providing a SIMD type processing apparatus, it is possible to cope with various processes.
By realizing parallel processing of the SIMD type processor and dedicated hardware, the processing speed can be increased.
従来の信号処理装置は以上のように構成されているので、SIMD型処理装置と専用ハードウェアの並列処理によって処理速度の高速化が図られているが、専用ハードウェアを使用しているため、処理内容を柔軟に変更することができない課題があった。
また、単一のSIMD型処理装置が複数の処理を並列に実行するものであるため、処理の高速化は、SIMD型処理装置の性能に左右され、高性能なSIMD型処理装置を実装しなければ、処理の高速化を実現することができない課題があった。
さらに、SIMD型処理装置と専用ハードウェアという異なるデータ処理装置が組み合わされたものであるため、製造バラつきの影響で性能に差異が生じ易く、性能に差異が生じると、装置全体の性能が劣化してしまう課題があった。
Since the conventional signal processing apparatus is configured as described above, the processing speed is increased by parallel processing of the SIMD type processing apparatus and dedicated hardware, but because dedicated hardware is used, There was a problem that the processing contents could not be changed flexibly.
In addition, since a single SIMD type processor executes a plurality of processes in parallel, the processing speed depends on the performance of the SIMD type processor, and a high-performance SIMD type processor must be mounted. In this case, there is a problem that the processing speed cannot be increased.
Furthermore, because different data processing devices such as SIMD type processing devices and dedicated hardware are combined, performance differences are likely to occur due to the effects of manufacturing variations, and if the performance differences occur, the overall performance of the device will deteriorate. There was a problem.
この発明は上記のような課題を解決するためになされたもので、専用ハードウェアや高性能なSIMD型処理装置を用いることなく、処理の高速化を実現することができる信号処理装置を得ることを目的とする。 The present invention has been made to solve the above-described problems, and provides a signal processing apparatus capable of realizing high-speed processing without using dedicated hardware or a high-performance SIMD type processing apparatus. With the goal.
この発明に係る信号処理装置は、処理命令を発行する全体制御部に対して、部分制御部、データ転送部及びデータパス部が複数個並列に接続されており、全体制御部が相互に異なる処理命令を各部分制御部に発行し、あるいは、同一の処理命令を少なくとも1個以上の部分制御部に発行することで、処理の並列化を実現するようにしたものである。 In the signal processing apparatus according to the present invention, a plurality of partial control units, data transfer units, and data path units are connected in parallel to the overall control unit that issues a processing command, and the overall control unit is different from each other. By issuing an instruction to each partial control unit, or by issuing the same processing instruction to at least one partial control unit, parallelization of processing is realized.
この発明によれば、処理命令を発行する全体制御部に対して、部分制御部、データ転送部及びデータパス部が複数個並列に接続されており、全体制御部が相互に異なる処理命令を各部分制御部に発行し、あるいは、同一の処理命令を少なくとも1個以上の部分制御部に発行することで、処理の並列化を実現するように構成したので、専用ハードウェアや高性能なSIMD型処理装置を用いることなく、処理の高速化を実現することができる効果がある。 According to the present invention, a plurality of partial control units, data transfer units, and data path units are connected in parallel to the overall control unit that issues processing instructions, and the overall control unit sends different processing instructions to each other. Since it is configured to achieve parallel processing by issuing to the partial control unit, or by issuing the same processing instruction to at least one partial control unit, dedicated hardware and high-performance SIMD type There is an effect that the processing speed can be increased without using a processing device.
実施の形態1.
図1はこの発明の実施の形態1による信号処理装置を示す構成図である。
図1において、全体制御部1は相互に異なる処理命令を部分制御部21〜2Nに発行し、あるいは、同一の処理命令を少なくとも1個以上の部分制御部(例えば、部分制御部2n−1と部分制御部2n:n=1,2,・・・,N)に発行する処理を実施する。
全体制御部1は、画像符号化処理や画像復号処理の制御を実施するような場合、例えば、画像符号化処理における動きベクトルの算出処理のような単位処理の実行命令(処理命令)を部分制御部21〜2Nに発行する処理を実施する。
1 is a block diagram showing a signal processing apparatus according to
In FIG. 1, the
When performing control of image encoding processing and image decoding processing, the
部分制御部21〜2Nは全体制御部1に接続されており、全体制御部1により発行された処理命令にしたがって並列に処理を実行する処理部である。
即ち、部分制御部21〜2Nは全体制御部1により発行された処理命令が単一演算を指示する命令であれば、その命令にしたがってデータパス演算の処理順序判定に必要な比較演算や、後述する演算命令やデータ転送命令などを発行するために必要なパラメータを算出するための単一演算(例えば、加算、減算、乗算、除算など)を実行し、その処理命令がデータパス演算を指示する命令であれば、その命令にしたがってデータパス演算の演算命令をデータパス部41〜4Nに発行し、その処理命令がデータの転送を指示する命令であれば、その命令にしたがってデータ転送命令をデータ転送部31〜3Nに発行する処理を実施する。
The partial control units 2 1 to 2 N are connected to the
That is, if the processing instruction issued by the
データ転送部31〜3Nは部分制御部21〜2Nにより発行されたデータ転送命令にしたがってデータパス演算に必要なデータ及び部分制御部21〜2Nにより実行された単一演算の演算結果を転送する処理を実行する。
即ち、データ転送部31〜3Nは部分制御部21〜2Nにより発行されたデータ転送命令が、例えば、部分制御部21〜2Nの演算メモリ24(図2を参照)に格納されているデータ(例えば、単一演算の演算結果)の転送を指示する命令であれば、そのデータをデータパス部41〜4Nに転送し、そのデータ転送命令が、データメモリ51〜5Nに格納されているデータ(例えば、データパス演算に必要なデータ)の転送を指示する命令であれば、そのデータをデータパス部41〜4Nに転送する処理を実施する。また、そのデータ転送命令が、例えば、データパス部41〜4Nによるデータパス演算の演算結果の転送を指示する命令であれば、その演算結果を部分制御部21〜2Nの演算メモリ24やデータメモリ51〜5Nに転送する処理を実施する。
Data transfer unit 3 1 to 3 N partial control unit 2 1 to 2 N single operation performed by published data required for data path computation in accordance with the data transfer instruction and the partial control unit 2 1 to 2 N by A process for transferring the calculation result is executed.
That is, the stored
データパス部41〜4Nは例えばSIMD型処理装置で構成されており、データ転送部31〜3Nにより転送されたデータ及び単一演算の演算結果を用いて、部分制御部21〜2Nにより発行された演算命令にしたがってデータパス演算を実行する。
ただし、データパス部41〜4Nは、部分制御部21〜2Nにより発行された演算命令にしたがって1つのデータパス演算を実行するだけであり、1個のデータパス部4において、複数のデータパス演算を並列処理するものではないため、高性能なSIMD型処理装置を用いる必要はない。
データメモリ51〜5Nはデータパス部41〜4Nがデータパス演算を実行する際に必要なデータや、データパス部41〜4Nによるデータパス演算の演算結果などを格納する記録媒体である。
バス6はデータ転送部31〜3Nがデータを転送する際に使用する伝送路であり、データ転送部31〜3N、データパス部41〜4N及びデータメモリ51〜5N間を接続している。
The data path units 4 1 to 4 N are configured by, for example, SIMD type processing devices, and use the data transferred by the data transfer units 3 1 to 3 N and the operation result of a single operation to control the partial control units 2 1 to 2 N. 2 Perform data path operation in accordance with operation instruction issued by N.
However, the data path units 4 1 to 4 N only execute one data path operation according to the operation instruction issued by the partial control units 2 1 to 2 N. Therefore, it is not necessary to use a high-performance SIMD type processing apparatus.
Data memory 5 1 to 5 N is recorded to store the data path unit 4 1 to 4 N is data required in performing the data path operations, data path unit 4 1 to 4 N operation result of the data path computation by It is a medium.
図2はこの発明の実施の形態1による信号処理装置の全体制御部1及び部分制御部2の内部を示す構成図である。
図2では、部分制御部21,22を記載して、部分制御部23〜2Nの記載を省略しているが、部分制御部23〜2Nの内部は、部分制御部21,22の内部と同様である。
図2において、全体制御部1の連結判定部11は、例えば、画像符号化処理における動きベクトルの算出処理のような単位処理の実行命令を発行する際、少なくとも1個以上の部分制御部2に対して、同一の処理命令を発行する場合、N個の部分制御部21〜2Nの処理状況を把握し、その処理状況に基づいて、どの部分制御部2を連結させるかを判定する処理を実施する。
なお、連結させる部分制御部2の個数は、最低1個から最大で接続数(N個)までである。
FIG. 2 is a block diagram showing the inside of the
In FIG. 2, the partial control units 2 1 and 2 2 are described, and the description of the partial control units 2 3 to 2 N is omitted, but the inside of the partial control units 2 3 to 2 N is the partial control unit 2. 1 and 2 2 are the same as the inside.
In FIG. 2, the
Note that the number of partial control units 2 to be connected is from a minimum of 1 to a maximum number of connections (N).
全体制御部1の処理制御部12は連結判定部11により連結させる部分制御部2が判定されると、その連結させる部分制御部2に対して、同一の処理命令を発行する処理を実施する。
ここでは、少なくとも1個以上の部分制御部2に対して、同一の処理命令を発行する場合について示したが、部分制御部21〜2Nに対して、相互に異なる単位処理を実行させる場合には、処理制御部12は、相互に異なる処理命令を部分制御部21〜2Nに発行する。
When the partial control unit 2 to be connected is determined by the
Here, the case where the same processing instruction is issued to at least one partial control unit 2 has been described. However, different unit processes are executed for the partial control units 2 1 to 2 N. In this case, the
部分制御部21〜2Nのメイン制御部21は制御部21a、メイン命令メモリ21b及びメインプログラムカウンタ21cから構成されており、制御部21aは全体制御部1により発行された処理命令が単一演算を指示する命令であれば、メイン命令メモリ21bにより格納されているメインプログラムを実行することで、単一演算を実行する。
また、全体制御部1により発行された処理命令がデータパス演算を指示する命令であれば、その命令にしたがってデータパス演算の演算命令の発行をデータパス制御部23に指示し、その処理命令がデータの転送を指示する命令であれば、その命令にしたがってデータ転送命令の発行をデータ転送制御部22に指示する処理を実施する。
The
Further, if the processing instruction issued by the
メイン命令メモリ21bはメイン制御部21の制御部21aが実行するメインプログラムを格納している記録媒体である。
ここでは、メイン命令メモリ21bがメインプログラムを格納している例を示しているが、これに限るものでなく、例えば、全体制御部1からメインプログラムが与えられるようにしてもよい。
メインプログラムカウンタ21cは制御部21aにより現在実行されているメインプログラムの位置を特定するためのプログラムカウンタである。
The
Here, an example in which the
The
部分制御部21〜2Nのデータ転送制御部22はメイン制御部21の指示の下、データの転送先/転送元、転送データサイズ及びデータの転送順序を示すデータ転送命令をデータ転送部31〜3Nに発行する処理を実施する。
部分制御部21〜2Nのデータパス制御部23はメイン制御部21の指示の下、デーパス演算の演算内容及び演算実行順序などを示す演算命令をデータパス部41〜4Nに発行する処理を実施する。
部分制御部21〜2Nの演算メモリ24はメイン制御部21による単一演算の演算結果や、データパス部41〜4Nによるデータパス演算の演算結果などを格納し、また、必要に応じてデータパス部41〜4Nがデータパス演算を実施する際に必要なデータなどを格納する記録媒体である。
Under the instruction of the
The data
The
図3は全体制御部1における連結判定部11の内部を示す構成図である。
図3において、状態判定部11aはN個の部分制御部21〜2Nの処理状況を判定(例えば、処理の実行中であるか、待機中であるかなどを判定)する処理を実施する。
即ち、状態判定部11aは部分制御部21〜2Nのメインプログラムカウンタ21cのカウント値S2を監視することで、部分制御部21〜2Nの処理状況を判定する処理を実施する。
連結制御部11bは状態判定部11aの判定結果を参照して、どの部分制御部2を連結させるかを判定する処理を実施する。
FIG. 3 is a configuration diagram showing the inside of the
In FIG. 3, the
That is, the
The
次に動作について説明する。
この実施の形態1では、部分制御部21〜2Nが全体制御部1により発行される処理命令にしたがって並列処理を実行しているとき、更なる処理の効率化を図るために、部分制御部21と部分制御部22を連結して、元々部分制御部21に発行していた単一の処理命令の一部を部分制御部22に分担させる例を説明する。
図4は部分制御部21と部分制御部22を連結して、単一の処理命令を部分制御部21と部分制御部22に分担させる際の各種命令の流れを示す説明図である。
図5は部分制御部21,22のメイン命令メモリ21bに格納されているメインプログラム内の命令及びメインプログラムカウンタ21cのカウント値S2(PC値)を示す説明図である。
図6はこの発明の実施の形態1による信号処理装置の全体制御部1の処理内容を示すフローチャートである。
Next, the operation will be described.
In the first embodiment, when the partial control units 2 1 to 2 N are executing parallel processing in accordance with processing instructions issued by the
4 by connecting the partial control unit 2 1 and the partial control unit 2 2, explanatory views showing a flow of various commands when to share a single processing instruction partial control unit 2 1 and the partial control unit 2 2 is there.
FIG. 5 is an explanatory diagram showing instructions in the main program stored in the
FIG. 6 is a flowchart showing the processing contents of the
まず、全体制御部1の処理制御部12は、部分制御部21〜2Nを並列に処理を実行させるため、相互に異なる処理命令を部分制御部21〜2Nに発行する。あるいは、同一の処理命令を少なくとも1個以上の部分制御部(例えば、部分制御部2n−1と部分制御部2n:n=1,2,・・・,N)に発行する。
部分制御部21〜2Nのメイン制御部21は、全体制御部1から処理命令を受けると、その処理命令を内部の制御部21aに与える。
部分制御部21〜2Nの制御部21aは、全体制御部1から出力された処理命令を解析し、その処理命令が単一演算を指示する命令であれば、メイン命令メモリ21bにより格納されているメインプログラムを実行することで、単一演算(例えば、加算、減算、乗算、除算など)を実行する。即ち、データパス演算の処理順序判定に必要な比較演算や、データパス演算の演算命令やデータ転送命令などを発行するために必要なパラメータを算出するための単一演算を実行する。
また、部分制御部21〜2Nの制御部21aは、その処理命令がデータパス演算を指示する命令であれば、その命令にしたがってデータパス演算の演算命令の発行をデータパス制御部23に指示し、その処理命令がデータの転送を指示する命令であれば、その命令にしたがってデータ転送命令の発行をデータ転送制御部22に指示する。
First, the
When receiving the processing command from the
The
Further, if the processing instruction is an instruction for instructing a data path operation, the
部分制御部21〜2Nのデータ転送制御部22は、メイン制御部21の制御部21aからデータ転送命令の発行指示を受けると、その発行指示にしたがって、データの転送先/転送元、転送データサイズ及びデータの転送順序を示すデータ転送命令をデータ転送部31〜3Nに発行する。
部分制御部21〜2Nのデータパス制御部23は、メイン制御部21の制御部21aから演算命令の発行指示を受けると、その発行指示にしたがって、デーパス演算の演算内容及び演算実行順序などを示す演算命令をデータパス部41〜4Nに発行する。
When the data
When the data path control
データ転送部31〜3Nは、部分制御部21〜2Nにより発行されたデータ転送命令を受けると、そのデータ転送命令にしたがってデータパス演算に必要なデータ及び部分制御部21〜2Nにより実行された単一演算の演算結果を転送する。
例えば、部分制御部21〜2Nにより発行されたデータ転送命令が、部分制御部21〜2Nの演算メモリ24に格納されているデータ(例えば、単一演算の演算結果)と、データメモリ51〜5Nに格納されているデータ(例えば、データパス演算に必要なデータ)との転送を指示する命令であれば、部分制御部21〜2Nの演算メモリ24に格納されているデータをデータパス部41〜4Nに転送するとともに、データメモリ51〜5Nに格納されているデータをデータパス部41〜4Nに転送する。
When the data transfer units 3 1 to 3 N receive the data transfer command issued by the partial control units 2 1 to 2 N , the data transfer unit 3 1 to 3 N and the data required for the data path calculation according to the data transfer command and the partial control units 2 1 to 2 The operation result of the single operation executed by N is transferred.
For example, published data transfer instruction by the partial control unit 2 1 to 2 N is the data stored in the
データパス部41〜4Nは、部分制御部21〜2Nにより発行された演算命令を受けると、データ転送部31〜3Nにより転送されたデータ及び単一演算の演算結果を用いて、その演算命令にしたがってデータパス演算を実行する。
データ転送部31〜3Nは、データパス部41〜4Nがデータパス演算を実行した後、部分制御部21〜2Nから、データパス演算の演算結果を部分制御部21〜2Nの演算メモリ24又はデータメモリ51〜5Nに対して、転送を指示する転送命令を受けると、そのデータ転送命令にしたがって、データパス部41〜4Nによるデータパス演算の演算結果を部分制御部21〜2Nの演算メモリ24又はデータメモリ51〜5Nに転送する。
When the data path units 4 1 to 4 N receive the operation command issued by the partial control units 2 1 to 2 N , the data path units 4 1 to 2 N use the data transferred by the data transfer units 3 1 to 3 N and the operation result of the single operation. The data path calculation is executed according to the calculation instruction.
このように、全体制御部1の制御の下で、部分制御部21〜2Nが並列に処理を実行することで、処理の効率化が図られるが、全体制御部1から相互に異なる処理命令が部分制御部21〜2Nに発行される場合、ある部分制御部2の処理が既に完了しても、ある部分制御部2の処理が未だ完了していない状況が発生することがある。
このような場合に、未だ処理が完了していない部分制御部2の処理の一部を、既に処理が完了して、待機状態になっている部分制御部2に分担させれば、更なる処理の効率化を図ることができる。
以下、未だ処理が完了していない部分制御部21の処理の一部を、既に処理が完了して、待機状態になっている部分制御部22に分担させる際の具体的な処理内容を説明する。
As described above, the partial control units 2 1 to 2 N execute processing in parallel under the control of the
In such a case, if a part of the processing of the partial control unit 2 that has not yet been processed is shared with the partial control unit 2 that has already been processed and is in a standby state, further processing is performed. Can be made more efficient.
Hereinafter, still processing the part of the completed have no partial control section 2 1 of treatment, already processed is completed, the specific processing contents upon which share the in that partial control unit 2 2 which in standby state explain.
全体制御部1の連結判定部11における状態判定部11aは、N個の部分制御部21〜2Nの処理状況を判定(例えば、処理の実行中であるか、待機中であるかなどを判定)する。
即ち、状態判定部11aは、部分制御部21〜2Nのメインプログラムカウンタ21cのカウント値S2を取得して(図6のステップST1)、そのカウント値S2を監視することで、部分制御部21〜2Nの処理状況を判定する(ステップST2)。
例えば、図5(a)に示すように、部分制御部21のメインプログラムカウンタ21cのカウント値S2が“6”であれば、メイン命令メモリ21bに格納されているメインプログラムにおいて、現在実行中の命令が命令Fであると認識して、部分制御部21の処理状況は“現在実行中”であると判定する。
また、図5(b)に示すように、部分制御部22のメインプログラムカウンタ21cのカウント値S2が“100”であれば、メイン命令メモリ21bに格納されているメインプログラム内の命令の実行が終了してNOP(待機状態)であると認識して、部分制御部22の処理状況は“待機状態”であると判定する。
The
That is, the
For example, as shown in FIG. 5 (a), if the count value S2 of the partial control section 2 1 of the
Further, as shown in FIG. 5 (b), if the count value S2 of the portion controller 2 2 of the
連結判定部11の連結制御部11bは、例えば、状態判定部11aの判定結果が、部分制御部21が“現在実行中”であり、部分制御部22が“待機状態”である旨を示す場合、部分制御部21の単一処理の一部を部分制御部22に分担させるか否かを判定する。
即ち、連結制御部11bは、部分制御部21のメインプログラムカウンタ21cのカウント値S2を参照して、部分制御部21のメイン命令メモリ21bに格納されているメインプログラム内の命令の中で、未だ実行されていない命令(図5(a)の例では、命令G〜命令V)の数(以下、「残り実行命令数」と称する)を把握し、その残り実行命令数と予め設定されている判定閾値(=“10”)を比較する(ステップST3)。
ここでは、説明の便宜上、判定閾値を“10”に設定しているが、これに限るものではなく、設計者が任意に設定することができる。また、必ずしも命令数を閾値とする必要はなく、命令処理サイクル数を閾値にしてもよい。
That is, the
Here, for the convenience of explanation, the determination threshold is set to “10”, but the determination threshold is not limited to this, and the designer can arbitrarily set it. In addition, the number of instructions does not necessarily have to be a threshold, and the number of instruction processing cycles may be a threshold.
連結制御部11bは、残り実行命令数が判定閾値未満であれば、部分制御部21の単一処理の一部を部分制御部22に分担させなくても、早期に処理が完了するので、部分制御部21の単一処理の一部を部分制御部22に分担させず、部分制御部21の単一処理を継続させる(ステップST4)。即ち、部分制御部21に対して、命令G〜命令Vの実行を継続させる。
連結制御部11bは、残り実行命令数が判定閾値以上であれば、部分制御部21の単一処理の一部を部分制御部22に分担させるため、例えば、残り実行命令数の半数の命令(図5(a)では、命令O〜命令V)を部分制御部22に分担させる指示(連結信号S1)を処理制御部12に出力する(ステップST5)。
ここでは、残り実行命令数の半数の命令を部分制御部22に分担させるものについて示したが、これに限るものではなく、設計者が任意に設定することができる。また、分担単位も命令数ではなく、処理サイクル数としてもよい。
Connecting the
Connecting the
Here, as previously mentioned to share the instruction of the remaining number of executed instructions half the partial control unit 2 2, not limited to this, a designer can arbitrarily set. The sharing unit may be the number of processing cycles instead of the number of instructions.
全体制御部1の処理制御部12は、連結判定部11の連結制御部11bから、例えば、命令O〜命令Vを部分制御部22に分担させる指示を受けると、命令O〜命令Vの分担命令を部分制御部22に発行するとともに、部分制御部22に分担される命令O〜命令Vを除く、残りの実行命令(命令G〜命令N)の継続を指示する残り実行命令を部分制御部21に発行する。
なお、全体制御部1の処理制御部12は、命令O〜命令Vの分担命令を部分制御部22に発行する際、命令O〜命令Vに対応するメインプログラムのPC値“15”〜“22”を部分制御部22に通知する。
Incidentally, the
部分制御部21のメイン制御部21における制御部21aは、全体制御部1から残りの実行命令(命令G〜命令N)の継続を指示する残り実行命令を受けると、命令Gから実行を開始して、命令Nの実行が終了するまで、命令の実行を継続する。
部分制御部22のメイン制御部21における制御部21aは、全体制御部1から命令O〜命令Vの分担命令を受けると、メイン命令格納メモリ21bに格納されているメインプログラム内の命令の中から、全体制御部1から通知されたメインプログラムのPC値“15”〜“22”をキーにして、分担された命令O〜命令Vを読み込み、その命令O〜命令Vを順次実行する。
以上で明らかなように、この実施の形態1によれば、処理命令を発行する全体制御部1に対して、部分制御部21〜2N、データ転送部31〜3N及びデータパス部41〜4Nが並列に接続されており、全体制御部1が相互に異なる処理命令を部分制御部21〜2Nに発行し、あるいは、同一の処理命令を少なくとも1個以上の部分制御部2に発行することで、処理の並列化を実現するように構成したので、専用ハードウェアや高性能なSIMD型処理装置を用いることなく、処理の高速化を実現することができる効果を奏する。
As apparent from the above, according to the first embodiment, the partial control units 2 1 to 2 N , the data transfer units 3 1 to 3 N, and the data path unit are provided for the
また、この実施の形態1によれば、全体制御部1が、相互に異なる処理命令、あるいは、同一の処理命令を発行した後、複数個の部分制御部2を連結して、単一の処理命令を複数個の部分制御部2に分担させるように構成したので、更なる処理の効率化を図ることができる効果を奏する。
即ち、ある部分制御部2の処理内容が多くて、他の部分制御部2より多くの処理時間を要する状況が発生しても、未処理の部分を複数の部分制御部2に分散することができるため、既に処理が終了している部分制御部2や、その部分制御部2に接続されているデータ転送部3及びデータパス部4を有効に活用することができるようになり、処理の高速化を図ることができる。
なお、この実施の形態1では、部分制御部21と部分制御部22を連結するものについて示したが、これは一例に過ぎず、3個以上の部分制御部2を連結するようにしてもよい。
Further, according to the first embodiment, after the
That is, even if there is a situation in which there is a lot of processing content of a certain partial control unit 2 and more processing time than other partial control units 2, unprocessed parts can be distributed to a plurality of partial control units 2. As a result, the partial control unit 2 that has already been processed and the data transfer unit 3 and the data path unit 4 connected to the partial control unit 2 can be used effectively, and the processing speed can be increased. Can be achieved.
In accordance with this
実施の形態2.
図7はこの発明の実施の形態2による信号処理装置の全体制御部1及び部分制御部2の一部を示す構成図であり、図において、図2と同一符号は同一又は相当部分を示すので説明を省略する。
全体制御部1の処理制御部13は、図2の処理制御部12と同様の処理を実施するほか、例えば、部分制御部21と部分制御部22が単独で処理を実施している段階(連結されていない段階)では、メイン制御部21と演算メモリ24間の接続を指示するセレクタ制御信号S3,S4を部分制御部21,22に出力し、部分制御部21と部分制御部22が連結して処理を実施する段階になると、メイン制御部21と演算メモリ24間の直接的な接続の解除を指示するセレクタ制御信号S3,S4を部分制御部21,22に出力する処理を実施する。
Embodiment 2. FIG.
FIG. 7 is a block diagram showing a part of the
部分制御部21,22のセレクタ25は全体制御部1の処理制御部13から出力されたセレクタ制御信号S3,S4がメイン制御部21と演算メモリ24間の接続を指示していれば、メイン制御部21と演算メモリ24間を接続し、そのセレクタ制御信号S3,S4がメイン制御部21と演算メモリ24間の直接的な接続の解除を指示していれば、メイン制御部21と演算メモリ24間の直接的な接続を解除し、アクセス調停部26を介して、メイン制御部21と演算メモリ24間を接続する処理を実施する。
If the selector control signals S3 and S4 output from the
部分制御部21のアクセス調停部26は部分制御部22のアクセス調停部2とアクセスバス27で連結されている。
部分制御部21のアクセス調停部26は部分制御部21と部分制御部22が連結して処理を実施する段階になると、部分制御部21のメイン制御部21から、部分制御部21の演算メモリ24に対するアクセスと、部分制御部22のメイン制御部21から、部分制御部21の演算メモリ24に対するアクセスとの競合を調停する処理を実施する。
部分制御部22のアクセス調停部26は部分制御部21と部分制御部22が連結して処理を実施する段階になると、部分制御部22のメイン制御部21から、部分制御部22の演算メモリ24に対するアクセスと、部分制御部21のメイン制御部21から、部分制御部22の演算メモリ24に対するアクセスとの競合を調停する処理を実施する。
Partial control unit 2 first
When partial control unit 2 first
When the
次に動作について説明する。
上記実施の形態1では、全体制御部1が、相互に異なる処理命令、あるいは、同一の処理命令を発行した後、複数個の部分制御部2を連結して、単一の処理命令を複数個の部分制御部2に分担させるものについて示したが、単一の処理命令を複数個の部分制御部2に分担させる際、複数個の部分制御部2の演算メモリ24を連結することで、各部分制御部2に対して、他の部分制御部2の演算メモリ24に対するアクセスを許可するようにしてもよい。
具体的には、以下の通りである。
Next, the operation will be described.
In the first embodiment, the
Specifically, it is as follows.
全体制御部1の処理制御部13は、例えば、部分制御部21と部分制御部22が単独で処理を実施している段階(連結されていない段階)では、メイン制御部21と演算メモリ24間の接続を指示するセレクタ制御信号S3,S4を部分制御部21,22に出力する。
部分制御部21,22のセレクタ25は、全体制御部1の処理制御部13から、メイン制御部21と演算メモリ24間の接続を指示するセレクタ制御信号S3,S4を受けると、メイン制御部21と演算メモリ24間を接続する。
この場合、部分制御部21のメイン制御部21は、上記実施の形態1と同様に、部分制御部21の演算メモリ24に対するアクセスは可能になるが、他の部分制御部22の演算メモリ24に対するアクセスは許可されない。
同様に、部分制御部22のメイン制御部21は、部分制御部22の演算メモリ24に対するアクセスは可能になるが、他の部分制御部21の演算メモリ24に対するアクセスは許可されない。
Partial control unit 2 1, 2 2 of the
In this case, the
Similarly, the
全体制御部1の処理制御部13は、例えば、部分制御部21と部分制御部22が連結して処理を実施する段階になると、メイン制御部21と演算メモリ24間の直接的な接続の解除を指示するセレクタ制御信号S3,S4を部分制御部21,22に出力する。
部分制御部21,22のセレクタ25は、全体制御部1の処理制御部13から、メイン制御部21と演算メモリ24間の直接的な接続の解除を指示するセレクタ制御信号S3,S4を受けると、メイン制御部21と演算メモリ24間の直接的な接続を解除し、アクセス調停部26を介して、メイン制御部21と演算メモリ24間を接続する。
この場合、部分制御部21のメイン制御部21は、部分制御部21の演算メモリ24に対するアクセスだけでなく、他の部分制御部22の演算メモリ24に対するアクセスも許可される。
同様に、部分制御部22のメイン制御部21は、部分制御部22の演算メモリ24に対するアクセスだけでなく、他の部分制御部21の演算メモリ24に対するアクセスも許可される。
The
In this case, the
Similarly, the
部分制御部21のメイン制御部21は、部分制御部21の演算メモリ24に対するアクセスを希望する場合、部分制御部21の演算メモリ24の選択を示すアクセス選択信号S5(部分制御部21の演算メモリ24内のアドレスを含む)をアクセス調停部26に出力する。
部分制御部21のアクセス調停部26は、部分制御部21のメイン制御部21から部分制御部21の演算メモリ24の選択を示すアクセス選択信号S5を受けると、そのメイン制御部21と演算メモリ24間を接続することで、部分制御部21の演算メモリ24に対するアクセスを許可する。
The main control unit of the partial control section 2 1 21, if you wish to access to the
Partial control unit 2 first
部分制御部21のメイン制御部21は、他の部分制御部22の演算メモリ24に対するアクセスを希望する場合、他の部分制御部22の演算メモリ24の選択を示すアクセス選択信号S5(部分制御部22の演算メモリ24内のアドレスを含む)をアクセス調停部26に出力する。
部分制御部21のアクセス調停部26は、部分制御部21のメイン制御部21から、他の部分制御部22の演算メモリ24の選択を示すアクセス選択信号S5を受けると、他の部分制御部22のアクセス調停部26を介して、部分制御部21のメイン制御部21と部分制御部22の演算メモリ24間を接続することで、他の部分制御部22の演算メモリ24に対するアクセスを許可する。
The
Partial control unit 2 first
部分制御部22のメイン制御部21は、部分制御部22の演算メモリ24に対するアクセスを希望する場合、部分制御部22の演算メモリ24の選択を示すアクセス選択信号S6(部分制御部22の演算メモリ24内のアドレスを含む)をアクセス調停部26に出力する。
部分制御部22のアクセス調停部26は、部分制御部22のメイン制御部21から部分制御部22の演算メモリ24の選択を示すアクセス選択信号S6を受けると、そのメイン制御部21と演算メモリ24間を接続することで、部分制御部22の演算メモリ24に対するアクセスを許可する。
The main control unit of the partial control unit 2 2 21 If you wish to access to the
Partial control unit 2 second
部分制御部22のメイン制御部21は、他の部分制御部21の演算メモリ24に対するアクセスを希望する場合、他の部分制御部21の演算メモリ24の選択を示すアクセス選択信号S6(部分制御部21の演算メモリ24内のアドレスを含む)をアクセス調停部26に出力する。
部分制御部22のアクセス調停部26は、部分制御部22のメイン制御部21から、他の部分制御部21の演算メモリ24の選択を示すアクセス選択信号S6を受けると、他の部分制御部21のアクセス調停部26を介して、部分制御部22のメイン制御部21と部分制御部21の演算メモリ24間を接続することで、他の部分制御部21の演算メモリ24に対するアクセスを許可する。
The
これにより、部分制御部21,22のメイン制御部21は、他の部分制御部22,21の演算メモリ24に対するアクセスが可能になるが、この場合、部分制御部21の演算メモリ24に対するアクセスとして、部分制御部21のメイン制御部21からのアクセスと、部分制御部22のメイン制御部21からのアクセスとが競合することがある。
同様に、部分制御部22の演算メモリ24に対するアクセスとして、部分制御部21のメイン制御部21からのアクセスと、部分制御部22のメイン制御部21からのアクセスとが競合することがある。
Thus,
Similarly, as the access to the
これらの競合は、部分制御部21,22のアクセス調停部26が調停する。
即ち、部分制御部21のアクセス調停部26は、予め、部分制御部21のメイン制御部21からのアクセスと、他の部分制御部22のメイン制御部21からのアクセスとの間に優先順位が設定されており、例えば、部分制御部21のメイン制御部21からのアクセスの方が、優先順位が高く設定されていれば、部分制御部21のメイン制御部21からのアクセスと、他の部分制御部22のメイン制御部21からのアクセスとが同時に発生すると、部分制御部21のメイン制御部21からのアクセスを優先し、部分制御部21のメイン制御部21に対して、部分制御部21の演算メモリ24に対するアクセスを許可する。
その後、部分制御部21のメイン制御部21からのアクセスが終了すると、他の部分制御部22のメイン制御部21に対して、部分制御部21の演算メモリ24に対するアクセスを許可する。
These conflicts are arbitrated by the
That is, the
Thereafter, when the access from the partial control section 2 1 of the
逆に、他の部分制御部22のメイン制御部21からのアクセスの方が、優先順位が高く設定されていれば、部分制御部21のメイン制御部21からのアクセスと、他の部分制御部22のメイン制御部21からのアクセスとが同時に発生すると、他の部分制御部22のメイン制御部21からのアクセスを優先し、他の部分制御部22のメイン制御部21に対して、部分制御部21の演算メモリ24に対するアクセスを許可する。
その後、他の部分制御部22のメイン制御部21からのアクセスが終了すると、部分制御部21のメイン制御部21に対して、部分制御部21の演算メモリ24に対するアクセスを許可する。
部分制御部22のアクセス調停部26における調停処理は、部分制御部21のアクセス調停部26における調停処理と同様であるため説明を省略する。
Conversely, towards the access from other parts controller 2 2 of the
Thereafter, when the access from other portions controller 2 2 of the
Arbitration process in the partial control unit 2 second
なお、部分制御部21の演算メモリ24に対するアクセスとして、他の部分制御部22のメイン制御部21からのアクセスが発生すると同時に、部分制御部22の演算メモリ24に対するアクセスとして、他の部分制御部21のメイン制御部21からのアクセスが発生しても、アクセスバス27が2本のバスで構成されているので、これらのアクセスを同時に許可することが可能である。
As access to the
以上で明らかなように、この実施の形態2によれば、単一の処理命令を複数個の部分制御部2に分担させる際、複数個の部分制御部2の演算メモリ24を連結することで、各部分制御部2に対して、他の部分制御部2の演算メモリ24に対するアクセスを許可するように構成したので、複数個の部分制御部2の演算メモリ24を1つの演算メモリとして使用することが可能となる。そのため、他の部分制御部2の演算メモリ24に格納されているデータ(例えば、処理命令の実行に必要なデータや単一演算の演算結果など)を、自部分制御部2内の演算メモリ24にコピーするなどの処理が不要になり(データ転送処理時間のオーバヘッドがなくなる)、処理の高速化を図ることができる効果を奏する。
As is apparent from the above, according to the second embodiment, when a single processing instruction is assigned to a plurality of partial control units 2, the
この実施の形態2では、全体制御部1によって複数個の部分制御部2が連結されて処理が実行されるため、全体制御部1から分担命令が出力された部分制御部2に接続されているデータ転送部3及びデータパス部4の動作を止めることも可能である。データ転送部3及びデータパス部4の動作を止められる場合には、言うまでもないが、消費電力を削減することができる。
In the second embodiment, since the plurality of partial control units 2 are connected by the
実施の形態3.
図8はこの発明の実施の形態3による信号処理装置の全体制御部1の内部を示す構成図であり、図において、図2と同一符号は同一又は相当部分を示すので説明を省略する。
全体制御部1の連結判定部14は、図2の連結判定部11と同様に、どの部分制御部2を連結させるかを判定する処理を実施する。
処理時間メモリ14aは部分制御部21〜2Nのメイン命令メモリ21bに格納されているメインプログラムを構成している全ての単位命令(例えば、命令F、命令G、・・・、命令V)を実行したときの単位命令当りの処理時間(例えば、命令Fの処理時間、命令Gの処理時間、・・・、命令Vの処理時間)を格納している記録媒体である。
Embodiment 3 FIG.
FIG. 8 is a block diagram showing the inside of the
The
The
処理時間算出部14bは処理制御部12から部分制御部21〜2Nに対して相互に異なる処理命令が発行される際、あるいは、少なくとも1個以上の部分制御部2に対して同一の処理命令が発行される際、処理時間メモリ14aにより格納されている単位命令当りの処理時間を参照して、処理制御部12から処理命令が発行される各部分制御部2の処理時間を算出する処理を実施する。
The processing
連結制御部14cは処理時間算出部14bの算出結果を参照して、先に処理が終了する部分制御部2と、多くの処理時間を要する部分制御部2(その他の部分制御部)とを判別して、多くの処理時間を要する部分制御部2における未処理の部分の一部を、既に処理が終了している部分制御部2に対して分担させる処理を実施する。
The connection control unit 14c refers to the calculation result of the processing
次に動作について説明する。
全体制御部1の連結判定部12の代わりに、全体制御部1の連結判定部14が実装されている点以外は、上記実施の形態1,2と同様であるため、ここでは、連結判定部14の処理内容のみを説明する。
Next, the operation will be described.
Since the
信号処理装置の初期動作時において、部分制御部21〜2Nのメイン命令メモリ21bに格納されているメインプログラムを一度実行することで、そのメインプログラムを構成している単位命令(例えば、命令F、命令G、・・・、命令V)毎の処理時間(例えば、命令Fの処理時間、命令Gの処理時間、・・・、命令Vの処理時間)を計測し、単位命令毎の処理時間を連結判定部14の処理時間メモリ14aに格納する。
At the time of the initial operation of the signal processing device, by executing once the main program stored in the
連結判定部14の処理時間算出部14bは、上記実施の形態1と同様に、処理制御部12から部分制御部21〜2Nに対して相互に異なる処理命令が発行される際、あるいは、少なくとも1個以上の部分制御部2に対して同一の処理命令が発行される際、処理時間メモリ14aにより格納されている単位命令当りの処理時間を参照して、処理制御部12から処理命令が発行される各部分制御部2の処理時間を算出する。
例えば、ある部分制御部2に対して発行される処理命令が、命令F+命令Gの実行を指示する命令であれば、当該部分制御部2の処理時間として、命令Fの処理時間と命令Gの処理時間の合計を算出する。
The processing
For example, if a processing instruction issued to a partial control unit 2 is an instruction that instructs execution of the instruction F + instruction G, the processing time of the instruction F and the instruction G Calculate the total processing time.
連結判定部14の連結制御部14cは、処理時間算出部14bが処理制御部12から処理命令が発行される各部分制御部2の処理時間を算出すると、各部分制御部2の処理時間を比較して、先の処理が終了する部分制御部2と、多くの処理時間を要する部分制御部2とを判別する。
連結制御部14cは、先に処理が終了する部分制御部2と、多くの処理時間を要する部分制御部2とを判別すると、先に処理が終了する部分制御部2の処理終了後に、多くの処理時間を要する部分制御部2における未処理の部分の一部を、処理を終了している部分制御部2に対して分担させる処理を行う。
分担させる処理自体は、上記実施の形態1,2における図3の連結制御部11bの処理内容と同様であるため説明を省略する。
The connection control unit 14c of the
When the connection control unit 14c discriminates between the partial control unit 2 that finishes processing first and the partial control unit 2 that requires a lot of processing time, after the processing of the partial control unit 2 that finishes processing first, A process of sharing a part of an unprocessed portion in the partial control unit 2 that requires processing time with the partial control unit 2 that has finished processing is performed.
Since the shared processing itself is the same as the processing content of the
以上で明らかなように、この実施の形態3によれば、処理制御部12から部分制御部21〜2Nに対して相互に異なる処理命令が発行される際、あるいは、少なくとも1個以上の部分制御部2に対して同一の処理命令が発行される際、処理時間算出部14bが、処理時間メモリ14aにより格納されている単位命令当りの処理時間を参照して、処理制御部12から処理命令が発行される各部分制御部2の処理時間を算出し、連結制御部14cが、処理時間算出部14bの算出結果を参照して、先に処理が終了する部分制御部2と、多くの処理時間を要する部分制御部2とを判別して、多くの処理時間を要する部分制御部2における未処理の部分の一部を、既に処理が終了している部分制御部2に対して分担させるように構成したので、仮に、製造バラつきや低電圧バラつきの影響で、部分制御部21〜2Nの処理時間に差異を生じる場合でも、各部分制御部2の処理を他の部分制御部2が分担して処理することで、その差異の影響を抑制することができるようになり、その結果、チップの歩留まりを高めることができる効果を奏する。
As apparent from the above, according to the third embodiment, when different processing instructions are issued from the
1 全体制御部、21〜2N 部分制御部、31〜3N データ転送部、41〜4N データパス部、51〜5N データメモリ、6 バス、11,14 連結判定部、11a 状態判定部、11b 連結制御部、12,13 処理制御部、14a 処理時間メモリ、14b 処理時間算出部、14c 連結制御部、21 メイン制御部、21a 制御部、21b メイン命令メモリ、21c メインプログラムカウンタ、22 データ転送制御部、23 データパス制御部、24 演算メモリ、25 セレクタ、26 アクセス調停部、27 アクセスバス。 1 overall control unit, 2 1 to 2 N partial control unit, 3 1 to 3 N data transfer unit, 4 1 to 4 N data path unit, 5 1 to 5 N data memory, 6 bus, 11, 14 connection determination unit, 11a state determination unit, 11b connection control unit, 12, 13 processing control unit, 14a processing time memory, 14b processing time calculation unit, 14c connection control unit, 21 main control unit, 21a control unit, 21b main instruction memory, 21c main program Counter, 22 data transfer control unit, 23 data path control unit, 24 arithmetic memory, 25 selector, 26 access arbitration unit, 27 access bus.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009234316A JP2011081658A (en) | 2009-10-08 | 2009-10-08 | Signal processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009234316A JP2011081658A (en) | 2009-10-08 | 2009-10-08 | Signal processing apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011081658A true JP2011081658A (en) | 2011-04-21 |
Family
ID=44075638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009234316A Pending JP2011081658A (en) | 2009-10-08 | 2009-10-08 | Signal processing apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011081658A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011081695A (en) * | 2009-10-09 | 2011-04-21 | Mitsubishi Electric Corp | Control circuit of data operation unit and data operation unit |
-
2009
- 2009-10-08 JP JP2009234316A patent/JP2011081658A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011081695A (en) * | 2009-10-09 | 2011-04-21 | Mitsubishi Electric Corp | Control circuit of data operation unit and data operation unit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11567780B2 (en) | Apparatus, systems, and methods for providing computational imaging pipeline | |
KR101572204B1 (en) | Dma vector buffer | |
KR100733943B1 (en) | Processor system, dma control circuit, dma control method, control method for dma controller, graphic processing method, and graphic processing circuit | |
JP4934356B2 (en) | Video processing engine and video processing system including the same | |
US6421744B1 (en) | Direct memory access controller and method therefor | |
KR101713009B1 (en) | Scalable compute fabric | |
US9405349B2 (en) | Multi-core apparatus and job scheduling method thereof | |
JPWO2008087779A1 (en) | Array type processor and data processing system | |
CN107729267B (en) | Distributed allocation of resources and interconnect structure for supporting execution of instruction sequences by multiple engines | |
JP2014102683A (en) | Control program of information processor, method for controlling information processor, and information processor | |
US8495345B2 (en) | Computing apparatus and method of handling interrupt | |
WO2014052543A1 (en) | Efficient processing of access requests for a shared resource | |
TW202107408A (en) | Methods and apparatus for wave slot management | |
JP2011081658A (en) | Signal processing apparatus | |
JP5404294B2 (en) | Data arithmetic device control circuit and data arithmetic device | |
WO2007060932A1 (en) | Multi thread processor having dynamic reconfiguration logic circuit | |
JP7010129B2 (en) | Processor and information processing equipment | |
JP2008102599A (en) | Processor | |
CN111783954B (en) | Method, electronic device and storage medium for determining performance of neural network | |
JP2006195598A (en) | Real-time processing system | |
JP2001084143A (en) | Information processor | |
JP2009134635A (en) | Multiprocessor system | |
JPH0644072A (en) | Instruction supplying system for parallel arithmetic circuit |