JP2011145759A - Parallel signal processing processor - Google Patents
Parallel signal processing processor Download PDFInfo
- Publication number
- JP2011145759A JP2011145759A JP2010004055A JP2010004055A JP2011145759A JP 2011145759 A JP2011145759 A JP 2011145759A JP 2010004055 A JP2010004055 A JP 2010004055A JP 2010004055 A JP2010004055 A JP 2010004055A JP 2011145759 A JP2011145759 A JP 2011145759A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- simd
- unit
- output
- program
- 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.)
- Granted
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
Description
この発明は、単一の命令を実行して、所定の演算処理を行う複数のプロセッサエレメントを実装している複数のSIMD(Single Instruction Multiple Data)演算器が並列に動作することで、デジタル信号データを並列処理するSIMD制御方式の並列信号処理プロセッサに関するものである。 According to the present invention, a plurality of SIMD (Single Instruction Multiple Data) arithmetic units, which are mounted with a plurality of processor elements that execute a single instruction and perform predetermined arithmetic processing, operate in parallel. The present invention relates to a parallel signal processor of the SIMD control system that performs parallel processing.
例えば、デジタルスチルカメラ、デジタルビデオカメラ、デジタルテレビやPC(パーソナルコンピュータ)グラフィックスなどの分野では、高速かつ大量のデジタル画像信号を処理する必要があるため、大規模な専用ハードウェア(例えば、LSI)の開発が行われている。
一方、デジタル画像信号に対する信号処理アルゴリズムが短期間で高度化・複雑化していく傾向にあるため、専用ハードウェアを開発する上で、短期間で高度化・複雑化する信号処理アルゴリズムへの追従が困難である。
For example, in fields such as digital still cameras, digital video cameras, digital televisions, and PC (personal computer) graphics, it is necessary to process a large amount of high-speed digital image signals. ) Is being developed.
On the other hand, since signal processing algorithms for digital image signals tend to become more sophisticated and complex in a short period of time, when developing dedicated hardware, it is possible to follow signal processing algorithms that become more sophisticated and complex in a short period of time. Have difficulty.
そこで、プログラマビリティが高い高速プロセッサやDSP(Digital Signal Processor)から構成されている画像処理装置の開発も行われている。
しかしながら、画像の高解像度化や高画質化に伴って、画像処理装置に対する要求性能が増大しているため、単独のプロセッサやDSPでは、演算処理量や演算精度の不足、あるいは、高速クロック化による消費電力の増加が問題とされている。
そのため、単一の命令で複数のデータを並列処理するSIMD制御方式の並列信号処理プロセッサによって、演算処理能力を高める方法が考えられている。
Therefore, development of an image processing apparatus composed of a high-speed processor with high programmability and a DSP (Digital Signal Processor) is also underway.
However, as the resolution of images increases and the image quality increases, the required performance for image processing devices has increased. With a single processor or DSP, the amount of calculation processing or calculation accuracy is insufficient, or high-speed clocks are used. Increased power consumption is a problem.
For this reason, a method has been considered in which an arithmetic processing capability is enhanced by a SIMD control type parallel signal processor that processes a plurality of data in parallel with a single instruction.
SIMD制御方式の並列信号処理プロセッサは、例えば、算術演算や論理演算を行う演算装置(Arithmetic Logic Unit:ALU)や、ALUの演算結果を一時的に記憶するメモリなどから構成されるプロセッサエレメントを1次元に配置し、複数のプロセッサエレメントを単一の命令によって制御するものである。
例えば、デジタルスチルカメラ、デジタルビデオカメラ、デジタルテレビやPCグラフィックスなどの分野では、上述したように、高速かつ大量のデジタル画像信号を処理する必要があるが、SIMD制御方式の並列信号処理プロセッサは、高速かつ大量のデジタル画像信号を処理することが可能であるため適している。
また、SIMD制御方式の並列信号処理プロセッサは、短期間で高度化・複雑化する信号処理アルゴリズムに対して、容易に対応することができるため適している。
A SIMD-controlled parallel signal processor includes, for example, a processor element including an arithmetic unit (ALU) that performs arithmetic operations and logical operations, a memory that temporarily stores ALU operation results, and the like. It is arranged in a dimension, and a plurality of processor elements are controlled by a single instruction.
For example, in the fields of digital still cameras, digital video cameras, digital televisions and PC graphics, as described above, it is necessary to process a large amount of digital image signals at high speed. It is suitable because it can process a large amount of digital image signals at high speed.
A SIMD-controlled parallel signal processor is suitable because it can easily cope with signal processing algorithms that are sophisticated and complicated in a short period of time.
近年、画像処理装置に対する要求性能は、画像の高解像度化や高画質化に伴って増大している。
そのため、並列信号処理プロセッサでは、搭載するプロセッサエレメントの台数を増やして、演算処理量や演算精度を高めるようにしている。
また、単に、プロセッサエレメントの台数を増やすだけでなく、多様な信号処理を並列に処理することができるようにするために、並列信号処理プロセッサにおけるプロセッサエレメントの構成を変更できるようにしている(例えば、非特許文献1を参照)。
In recent years, the required performance for image processing apparatuses has been increasing with higher resolution and higher image quality of images.
For this reason, in the parallel signal processor, the number of processor elements to be mounted is increased to increase the amount of calculation processing and the calculation accuracy.
In addition to simply increasing the number of processor elements, the configuration of the processor elements in the parallel signal processor can be changed in order to allow various signal processing to be performed in parallel (for example, , See Non-Patent Document 1).
ただし、演算効率を高めるために、図7に示すように、同時に処理するプロセッサエレメント(PE演算器)の台数を増加させる場合(全体連結制御部が、SIMD演算器#1のPE演算器と、SIMD演算器#2のPE演算器と、SIMD演算器#3のPE演算器とを結合する場合)、SIMD演算器#1,#2,#3における命令メモリに対して、同一のSIMDプログラムDを格納する必要がある。
However, in order to increase the computation efficiency, as shown in FIG. 7, when the number of processor elements (PE computing units) to be processed simultaneously is increased (the overall connection control unit is connected to the PE computing unit of SIMD
従来の並列信号処理プロセッサは以上のように構成されているので、演算効率を高めるために、同時に処理するプロセッサエレメント(PE演算器)の台数を増加させる場合、SIMD演算器#1,#2,#3における命令メモリに対して、同一のSIMDプログラムDを格納する必要があり、命令メモリの利用効率が低下するなどの課題があった。
Since the conventional parallel signal processor is configured as described above, when increasing the number of processor elements (PE computing units) to be processed simultaneously in order to increase the computation efficiency, SIMD
この発明は上記のような課題を解決するためになされたもので、演算効率を高めるために、同時に処理するプロセッサエレメントの台数を増加させる場合でも、各SIMD演算器における命令メモリに対して、異なるプログラムを格納できるようにして、命令メモリの利用効率の低下を防止することができる並列信号処理プロセッサを得ることを目的とする。 The present invention has been made to solve the above-described problems. Even when the number of processor elements to be processed at the same time is increased in order to increase the calculation efficiency, the present invention differs from the instruction memory in each SIMD arithmetic unit. It is an object of the present invention to obtain a parallel signal processor capable of storing a program and preventing a decrease in the use efficiency of an instruction memory.
この発明に係る並列信号処理プロセッサは、単一の命令を実行して、所定の演算処理を行う複数のプロセッサエレメントを実装している複数のSIMD演算器が、プログラムを格納している命令メモリと、全体連結制御部から出力された選択信号が示す命令メモリが自己の命令メモリであれば、自己の命令メモリに格納されているプログラムを取得して、そのプログラムを他のSIMD演算器に与え、その選択信号が示す命令メモリが自己の命令メモリでなければ、他のSIMD演算器からプログラムを取得し、その取得したプログラム内の命令を複数のプロセッサエレメントに発行する命令発行手段とを備えるようにしたものである。 A parallel signal processor according to the present invention includes: an instruction memory in which a plurality of SIMD arithmetic units that are provided with a plurality of processor elements that execute a single instruction and perform predetermined arithmetic processing; If the instruction memory indicated by the selection signal output from the overall connection control unit is its own instruction memory, the program stored in its own instruction memory is obtained and given to another SIMD computing unit, If the instruction memory indicated by the selection signal is not its own instruction memory, an instruction issuing means is provided for acquiring a program from another SIMD computing unit and issuing instructions in the acquired program to a plurality of processor elements. It is a thing.
この発明によれば、単一の命令を実行して、所定の演算処理を行う複数のプロセッサエレメントを実装している複数のSIMD演算器が、プログラムを格納している命令メモリと、全体連結制御部から出力された選択信号が示す命令メモリが自己の命令メモリであれば、自己の命令メモリに格納されているプログラムを取得して、そのプログラムを他のSIMD演算器に与え、その選択信号が示す命令メモリが自己の命令メモリでなければ、他のSIMD演算器からプログラムを取得し、その取得したプログラム内の命令を複数のプロセッサエレメントに発行する命令発行手段とを備えるように構成したので、演算効率を高めるために、同時に処理するプロセッサエレメントの台数を増加させる場合でも、各SIMD演算器における命令メモリに対して、異なるプログラムを格納できるようになり、その結果、命令メモリの利用効率の低下を防止することができる効果がある。 According to the present invention, a plurality of SIMD computing units equipped with a plurality of processor elements that execute a single instruction and perform predetermined arithmetic processing are provided with an instruction memory storing a program, and overall connection control. If the instruction memory indicated by the selection signal output from the unit is its own instruction memory, the program stored in its own instruction memory is obtained and given to another SIMD computing unit. If the instruction memory to be shown is not its own instruction memory, the program is obtained from another SIMD computing unit, and the instruction issuing means for issuing the instructions in the acquired program to a plurality of processor elements is provided. Even if the number of processor elements to be processed simultaneously is increased in order to increase the calculation efficiency, the instruction memo in each SIMD arithmetic unit Against, will be able to store different programs, as a result, there is an effect that it is possible to prevent a decrease in utilization efficiency of the instruction memory.
実施の形態1.
図1はこの発明の実施の形態1による並列信号処理プロセッサを示す構成図である。
図1において、SIMD演算器1−1は単一の命令を実行して、入出力バス4から入力した演算対象のデータに対して所定の演算処理を行う4個のPE演算器14−1(プロセッサエレメント)を実装している。
SIMD演算器1−2は単一の命令を実行して、入出力バス4から入力した演算対象のデータに対して所定の演算処理を行う4個のPE演算器14−2(プロセッサエレメント)を実装している。
SIMD演算器1−3は単一の命令を実行して、入出力バス4から入力した演算対象のデータに対して所定の演算処理を行う4個のPE演算器14−3(プロセッサエレメント)を実装している。
図1では、並列信号処理プロセッサが3個のSIMD演算器1−1〜1−3を実装し、SIMD演算器1−1〜1−3が4個のPE演算器14−1〜14−3を実装している例を示しているが、並列信号処理プロセッサが4個以上のSIMD演算器1を実装し、各SIMD演算器1が4個未満あるいは5個以上のPE演算器14を実装するようにしてもよい。
1 is a block diagram showing a parallel signal processor according to
In FIG. 1, a SIMD computing unit 1-1 executes four instructions to perform a predetermined computation process on data to be computed that is input from the input / output bus 4. Processor element).
The SIMD calculator 1-2 executes four PE calculators 14-2 (processor elements) that execute a single instruction and perform predetermined calculation processing on the calculation target data input from the input / output bus 4. Implemented.
The SIMD arithmetic unit 1-3 executes four instructions and executes four PE arithmetic units 14-3 (processor elements) that perform predetermined arithmetic processing on data to be calculated input from the input / output bus 4. Implemented.
In FIG. 1, the parallel signal processor implements three SIMD computing units 1-1 to 1-3, and the SIMD computing units 1-1 to 1-3 include four PE computing units 14-1 to 14-3. In this example, four or more
全体連結制御部2はSIMD演算器1−1とSIMD演算器1−2とSIMD演算器1−3間の結合又は分離を指示するSIMD結合制御信号を演算器連結部3−1,3−2に出力するとともに、選択対象の命令メモリを示すデコーダ選択信号をSIMD演算器1−1〜1−3に出力する処理を実施する。
演算器連結部3−1は全体連結制御部2から出力されたSIMD結合制御信号がSIMD演算器1−1とSIMD演算器1−2間の結合を指示していれば、SIMD演算器1−1とSIMD演算器1−2間を結合し、そのSIMD結合制御信号がSIMD演算器1−1とSIMD演算器1−2間の分離を指示していれば、SIMD演算器1−1とSIMD演算器1−2間を分離する処理を実施する。
The overall
If the SIMD coupling control signal output from the overall
演算器連結部3−2は全体連結制御部2から出力されたSIMD結合制御信号がSIMD演算器1−2とSIMD演算器1−3間の結合を指示していれば、SIMD演算器1−2とSIMD演算器1−3間を結合し、そのSIMD結合制御信号がSIMD演算器1−2とSIMD演算器1−3間の分離を指示していれば、SIMD演算器1−2とSIMD演算器1−3間を分離する処理を実施する。
入出力バス4は演算対象のデータをSIMD演算器1−1〜1−3に伝送するとともに、SIMD演算器1−1〜1−3の演算結果を伝送するための伝送路である。
If the SIMD coupling control signal output from the overall
The input / output bus 4 is a transmission path for transmitting calculation target data to the SIMD calculators 1-1 to 1-3 and transmitting the calculation results of the SIMD calculators 1-1 to 1-3.
SIMD演算器1−1の命令メモリ11−1はSIMDプログラムの一部(以下、「SIMDプログラムA−1」と称する)を格納しているRAMやROMなどの記録媒体である。
命令フェッチ制御部12−1は命令デコード部13−1から出力された分岐指示信号が命令メモリ11−1からSIMDプログラムA−1を取得する旨を示していれば、命令メモリ11−1からSIMDプログラムA−1内の命令(以下、「命令データ」と称する)を取得して、その命令データを命令デコード部13−1に出力するとともに、その命令データを右隣のSIMD演算器1−2に出力する処理を実施する。
一方、命令デコード部13−1から出力された分岐指示信号が命令メモリ11−1からSIMDプログラムA−1を取得しない旨を示していれば、命令メモリ11−1からSIMDプログラムA−1を取得せずに、例えば、NOPの命令データを右隣のSIMD演算器1−2に出力する処理を実施する。ここでは、NOPの命令データを出力する例を示しているが、何も出力しないようにしてもよい。
The instruction memory 11-1 of the SIMD computing unit 1-1 is a recording medium such as a RAM or a ROM that stores a part of the SIMD program (hereinafter referred to as “SIMD program A-1”).
If the branch instruction signal output from the instruction decode unit 13-1 indicates that the SIMD program A-1 is acquired from the instruction memory 11-1, the instruction fetch control unit 12-1 receives the SIMD from the instruction memory 11-1. An instruction in the program A-1 (hereinafter referred to as “instruction data”) is acquired, and the instruction data is output to the instruction decoding unit 13-1, and the instruction data is input to the SIMD computing unit 1-2 on the right side. Execute the process to output to.
On the other hand, if the branch instruction signal output from the instruction decode unit 13-1 indicates that the SIMD program A-1 is not acquired from the instruction memory 11-1, the SIMD program A-1 is acquired from the instruction memory 11-1. For example, a process of outputting NOP instruction data to the SIMD computing unit 1-2 on the right side is performed. Although an example of outputting NOP instruction data is shown here, nothing may be output.
命令デコード部13−1は全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−1を選択する旨を示していれば、命令メモリ11−1からSIMDプログラムA−1を取得する旨を示す分岐指示信号を命令フェッチ制御部12−1に出力し、そのデコーダ選択信号が命令メモリ11−1以外の命令メモリを選択する旨を示していれば、命令メモリ11−1からSIMDプログラムA−1を取得しない旨を示す分岐指示信号を命令フェッチ制御部12−1に出力する処理を実施する。
また、命令デコード部13−1は全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−1を選択する旨を示していれば、命令フェッチ制御部12−1から出力された命令データをPE制御信号に変換して、そのPE制御信号を4個のPE演算器14−1に発行し、全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−1以外の命令メモリを選択する旨を示していれば、右隣のSIMD演算器1−2から出力された命令データをPE制御信号に変換して、そのPE制御信号を4個のPE演算器14−1に発行する処理を実施する。
If the instruction selection unit 13-1 indicates that the decoder selection signal output from the overall
Further, if the instruction decode unit 13-1 indicates that the decoder selection signal output from the overall
PE演算器14−1はバスI/F16−1からPEバス15−1を介して演算対象のデータを入力し、命令デコード部13−1から発行されたPE制御信号を実行することで、その演算対象のデータに対して所定の演算処理(例えば、算術演算や論理演算などの論理演算、あるいは、データシフトなどの演算)を行い、その演算結果をPEバス15−1を介してバスI/F16−1に出力する処理を実施する。
バスI/F16−1は入出力バス4から演算対象のデータを入力して、そのデータをPEバス15−1を介して4個のPE演算器14−1に出力する一方、4個のPE演算器14−1の演算結果をPEバス15−1を介して入力し、その演算結果を入出力バス4に出力する処理を実施する。
The PE computing unit 14-1 inputs the data to be computed from the bus I / F 16-1 via the PE bus 15-1, and executes the PE control signal issued from the instruction decoding unit 13-1. Predetermined arithmetic processing (for example, logical operation such as arithmetic operation or logical operation, or operation such as data shift) is performed on the data to be operated, and the operation result is sent to the bus I / O via the PE bus 15-1. The process of outputting to F16-1 is performed.
The bus I / F 16-1 receives data to be operated from the input / output bus 4 and outputs the data to the four PE arithmetic units 14-1 via the PE bus 15-1, while the four PE arithmetic units 14-1. The calculation result of the calculator 14-1 is input via the PE bus 15-1, and the calculation result is output to the input / output bus 4.
SIMD演算器1−2の命令メモリ11−2はSIMDプログラムの一部(以下、「SIMDプログラムA−2」と称する)を格納しているRAMやROMなどの記録媒体である。
命令フェッチ制御部12−2は命令デコード部13−2から出力された分岐指示信号が命令メモリ11−2からSIMDプログラムA−2を取得する旨を示していれば、命令メモリ11−2からSIMDプログラムA−2内の命令(以下、「命令データ」と称する)を取得して、その命令データを命令デコード部13−2に出力するとともに、その命令データを右隣のSIMD演算器1−3に出力する処理を実施する。
一方、命令デコード部13−2から出力された分岐指示信号が命令メモリ11−2からSIMDプログラムA−2を取得しない旨を示していれば、命令メモリ11−2からSIMDプログラムA−2を取得せずに、左隣のSIMD演算器1−1から出力された命令データを取得して、その命令データを右隣のSIMD演算器1−3に出力する処理を実施する。ただし、左隣のSIMD演算器1−1から何も出力されていなければ、何も出力しないようにしてもよい。
The instruction memory 11-2 of the SIMD computing unit 1-2 is a recording medium such as a RAM or a ROM that stores a part of the SIMD program (hereinafter referred to as “SIMD program A-2”).
If the branch instruction signal output from the instruction decode unit 13-2 indicates that the SIMD program A-2 is acquired from the instruction memory 11-2, the instruction fetch control unit 12-2 receives the SIMD from the instruction memory 11-2. An instruction in the program A-2 (hereinafter referred to as “instruction data”) is acquired, and the instruction data is output to the instruction decoding unit 13-2. At the same time, the instruction data is output to the right SIMD calculator 1-3. Execute the process to output to.
On the other hand, if the branch instruction signal output from the instruction decode unit 13-2 indicates that the SIMD program A-2 is not acquired from the instruction memory 11-2, the SIMD program A-2 is acquired from the instruction memory 11-2. Without executing the processing, the instruction data output from the SIMD calculator 1-1 on the left is acquired, and the instruction data is output to the SIMD calculator 1-3 on the right. However, nothing may be output if nothing is output from the SIMD calculator 1-1 on the left side.
命令デコード部13−2は全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−2を選択する旨を示していれば、命令メモリ11−2からSIMDプログラムA−2を取得する旨を示す分岐指示信号を命令フェッチ制御部12−2に出力し、そのデコーダ選択信号が命令メモリ11−2以外の命令メモリを選択する旨を示していれば、命令メモリ11−2からSIMDプログラムA−2を取得しない旨を示す分岐指示信号を命令フェッチ制御部12−2に出力する処理を実施する。
また、命令デコード部13−2は全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−2を選択する旨を示していれば、命令フェッチ制御部12−2から出力された命令データをPE制御信号に変換して、そのPE制御信号を4個のPE演算器14−2に発行し、全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−2以外の命令メモリを選択する旨を示していれば、右隣のSIMD演算器1−3から出力された命令データをPE制御信号に変換して、そのPE制御信号を4個のPE演算器14−2に発行する処理を実施する。
さらに、命令デコード部13−2はPE制御信号に変換する命令データを左隣のSIMD演算器1−1に出力する処理を実施する。
The instruction decode unit 13-2 acquires the SIMD program A-2 from the instruction memory 11-2 if the decoder selection signal output from the overall
Further, if the instruction decode unit 13-2 indicates that the decoder selection signal output from the overall
Further, the instruction decoding unit 13-2 performs a process of outputting the instruction data to be converted into the PE control signal to the SIMD computing unit 1-1 on the left side.
PE演算器14−2はバスI/F16−2からPEバス15−2を介して演算対象のデータを入力し、命令デコード部13−2から発行されたPE制御信号を実行することで、その演算対象のデータに対して所定の演算処理(例えば、算術演算や論理演算などの論理演算、あるいは、データシフトなどの演算)を行い、その演算結果をPEバス15−2を介してバスI/F16−2に出力する処理を実施する。
バスI/F16−2は入出力バス4から演算対象のデータを入力して、そのデータをPEバス15−2を介して4個のPE演算器14−2に出力する一方、4個のPE演算器14−2の演算結果をPEバス15−2を介して入力し、その演算結果を入出力バス4に出力する処理を実施する。
The PE computing unit 14-2 inputs data to be computed from the bus I / F 16-2 via the PE bus 15-2, and executes the PE control signal issued from the instruction decoding unit 13-2. Predetermined arithmetic processing (for example, arithmetic operation, logical operation such as logical operation, or operation such as data shift) is performed on the data to be operated, and the operation result is sent to the bus I / O via PE bus 15-2. The process of outputting to F16-2 is performed.
The bus I / F 16-2 receives data to be operated from the input / output bus 4 and outputs the data to the four PE computing units 14-2 via the PE bus 15-2, while four PEs. The calculation result of the calculator 14-2 is input via the PE bus 15-2, and the calculation result is output to the input / output bus 4.
SIMD演算器1−3の命令メモリ11−3はSIMDプログラムの一部(以下、「SIMDプログラムA−3」と称する)を格納しているRAMやROMなどの記録媒体である。
命令フェッチ制御部12−3は命令デコード部13−3から出力された分岐指示信号が命令メモリ11−3からSIMDプログラムA−3を取得する旨を示していれば、命令メモリ11−3からSIMDプログラムA−3内の命令(以下、「命令データ」と称する)を取得して、その命令データを命令デコード部13−3に出力する処理を実施する。
一方、命令デコード部13−3から出力された分岐指示信号が命令メモリ11−3からSIMDプログラムA−3を取得しない旨を示していれば、命令メモリ11−3からSIMDプログラムA−3を取得せずに、左隣のSIMD演算器1−2から出力された命令データを取得して、その命令データを命令デコード部13−3に出力する処理を実施する。
The instruction memory 11-3 of the SIMD computing unit 1-3 is a recording medium such as a RAM or a ROM that stores a part of the SIMD program (hereinafter referred to as “SIMD program A-3”).
If the branch instruction signal output from the instruction decoding unit 13-3 indicates that the SIMD program A-3 is acquired from the instruction memory 11-3, the instruction fetch control unit 12-3 receives the SIMD from the instruction memory 11-3. A process of acquiring an instruction (hereinafter referred to as “instruction data”) in the program A-3 and outputting the instruction data to the instruction decoding unit 13-3 is performed.
On the other hand, if the branch instruction signal output from the instruction decode unit 13-3 indicates that the SIMD program A-3 is not acquired from the instruction memory 11-3, the SIMD program A-3 is acquired from the instruction memory 11-3. Without executing the processing, the instruction data output from the SIMD computing unit 1-2 adjacent to the left is acquired, and the instruction data is output to the instruction decoding unit 13-3.
命令デコード部13−3は全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−3を選択する旨を示していれば、命令メモリ11−3からSIMDプログラムA−3を取得する旨を示す分岐指示信号を命令フェッチ制御部12−3に出力し、そのデコーダ選択信号が命令メモリ11−3以外の命令メモリを選択する旨を示していれば、命令メモリ11−3からSIMDプログラムA−3を取得しない旨を示す分岐指示信号を命令フェッチ制御部12−3に出力する処理を実施する。
また、命令デコード部13−3は命令フェッチ制御部12−3から出力された命令データをPE制御信号に変換して、そのPE制御信号を4個のPE演算器14−2に発行する処理を実施する。
さらに、命令デコード部13−3は命令フェッチ制御部12−3から出力された命令データを左隣のSIMD演算器1−2に出力する処理を実施する。
If the instruction selection unit 13-3 indicates that the decoder selection signal output from the overall
The instruction decode unit 13-3 converts the instruction data output from the instruction fetch control unit 12-3 into a PE control signal and issues the PE control signal to the four PE computing units 14-2. carry out.
Further, the instruction decoding unit 13-3 performs a process of outputting the instruction data output from the instruction fetch control unit 12-3 to the SIMD arithmetic unit 1-2 on the left side.
PE演算器14−3はバスI/F16−3からPEバス15−3を介して演算対象のデータを入力し、命令デコード部13−3から発行されたPE制御信号を実行することで、その演算対象のデータに対して所定の演算処理(例えば、算術演算や論理演算などの論理演算、あるいは、データシフトなどの演算)を行い、その演算結果をPEバス15−3を介してバスI/F16−3に出力する処理を実施する。
バスI/F16−3は入出力バス4から演算対象のデータを入力して、そのデータをPEバス15−3を介して4個のPE演算器14−3に出力する一方、4個のPE演算器14−3の演算結果をPEバス15−3を介して入力し、その演算結果を入出力バス4に出力する処理を実施する。
なお、命令フェッチ制御部12−1〜12−3及び命令デコード部13−1〜13−3から命令発行手段が構成されている。
The PE arithmetic unit 14-3 inputs data to be operated from the bus I / F 16-3 via the PE bus 15-3, and executes the PE control signal issued from the instruction decoding unit 13-3. Predetermined arithmetic processing (for example, logical operation such as arithmetic operation or logical operation, or operation such as data shift) is performed on the data to be operated, and the operation result is sent to the bus I / O via the PE bus 15-3. The process of outputting to F16-3 is performed.
The bus I / F 16-3 inputs data to be operated from the input / output bus 4, and outputs the data to the four PE arithmetic units 14-3 via the PE bus 15-3, while the four PEs The calculation result of the calculator 14-3 is input via the PE bus 15-3, and the calculation result is output to the input / output bus 4.
The instruction fetch control units 12-1 to 12-3 and the instruction decode units 13-1 to 13-3 constitute an instruction issuing unit.
図2はこの発明の実施の形態1による並列信号処理プロセッサの全体連結制御部2を示す構成図である。
図2において、結合制御命令メモリ21は例えばRAMなどの記録媒体であり、SIMD演算器1−1〜1−3間の結合/分離の制御や、選択対象の命令メモリを決定する全体結合制御プログラムを格納している。
シーケンサ22は例えばプログラムカウンタ、ROM及び制御回路を備えており、結合制御命令メモリ21により格納されている全体結合制御プログラム内の命令を順次読み出して解読し、その命令にしたがってSIMD連結制御部23及びデコーダ選択制御部24の動作を制御する。
FIG. 2 is a block diagram showing the overall
In FIG. 2, a coupling
The
SIMD連結制御部23はシーケンサ22の指示の下で、SIMD演算器1−1〜1−3間の結合又は分離を指示するSIMD結合制御信号を生成し、そのSIMD結合制御信号を演算器連結部3−1,3−2に出力する処理を実施する。
デコーダ選択制御部24はシーケンサ22の指示の下で、選択対象の命令メモリ11を示すデコーダ選択信号を生成し、そのデコーダ選択信号をSIMD演算器1−1〜1−3に出力する処理を実施する。
Under the instruction of the
Under the instruction of the
図3はこの発明の実施の形態1による並列信号処理プロセッサの命令フェッチ制御部12−1〜12−3を示す構成図である。
図3において、命令フェッチ制御部12−1〜12−3のメモリアクセス制御部31は例えばプログラムカウンタや分岐アドレス制御回路を内蔵しており、命令デコード部13−1〜13−3から出力された分岐指示信号にしたがって内部のプログラムカウンタを制御することで、命令メモリ11−1〜11−3により格納されているSIMDプログラムA−1〜A−3内の命令データの読出しを制御する。
FIG. 3 is a block diagram showing the instruction fetch control units 12-1 to 12-3 of the parallel signal processor according to the first embodiment of the present invention.
In FIG. 3, the memory
命令フェッチ制御部12−1のセレクタ判定部32は命令デコード部13−1から出力された分岐指示信号が命令メモリ11−1からSIMDプログラムA−1を取得する旨を示していれば、命令メモリ11−1から読み出されたSIMDプログラムA−1内の命令データを選択して、その命令データを右隣のSIMD演算器1−2に出力する指令を命令セレクタ33に出力し、その分岐指示信号が命令メモリ11−1からSIMDプログラムA−1を取得しない旨を示していれば、例えば、NOPの命令データを選択して、その命令データを右隣のSIMD演算器1−2に出力する指令を命令セレクタ33に出力する処理を実施する。ここでは、NOPの命令データを選択する命令を出力する例を示しているが、何も出力しない命令を出力するようにしてもよい。
If the
命令フェッチ制御部12−2のセレクタ判定部32は命令デコード部13−2から出力された分岐指示信号が命令メモリ11−2からSIMDプログラムA−2を取得する旨を示していれば、命令メモリ11−2から読み出されたSIMDプログラムA−2内の命令データを選択して、その命令データを右隣のSIMD演算器1−3に出力する指令を命令セレクタ33に出力し、その分岐指示信号が命令メモリ11−2からSIMDプログラムA−2を取得しない旨を示していれば、左隣のSIMD演算器1−1から出力された命令データを選択して、その命令データを右隣のSIMD演算器1−3に出力する指令を命令セレクタ33に出力する処理を実施する。
If the
命令フェッチ制御部12−3のセレクタ判定部32は命令デコード部13−3から出力された分岐指示信号が命令メモリ11−3からSIMDプログラムA−3を取得する旨を示していれば、命令メモリ11−3から読み出されたSIMDプログラムA−3内の命令データを選択して、その命令データを命令デコード部13−3に出力する指令を命令セレクタ33に出力し、その分岐指示信号が命令メモリ11−3からSIMDプログラムA−3を取得しない旨を示していれば、左隣のSIMD演算器1−2から出力された命令データを選択して、その命令データを命令デコード部13−3に出力する指令を命令セレクタ33に出力する処理を実施する。
If the branch determination signal output from the instruction decode unit 13-3 indicates that the SIMD program A-3 is acquired from the instruction memory 11-3, the
命令フェッチ制御部12−1の命令セレクタ33はセレクタ判定部32から出力された指令が命令メモリ11−1から読み出されたSIMDプログラムA−1内の命令データを選択する旨を示していれば、命令メモリ11−1から読み出されたSIMDプログラムA−1内の命令データを選択して、その命令データを命令デコード部13−1及び右隣のSIMD演算器1−2に出力し、セレクタ判定部32から出力された指令がNOPの命令データを選択する旨を示していれば、NOPの命令データを選択して、その命令データを右隣のSIMD演算器1−2に出力する処理を実施する。
If the
命令フェッチ制御部12−2の命令セレクタ33はセレクタ判定部32から出力された指令が命令メモリ11−2から読み出されたSIMDプログラムA−2内の命令データを選択する旨を示していれば、命令メモリ11−2から読み出されたSIMDプログラムA−2内の命令データを選択して、その命令データを命令デコード部13−2及び右隣のSIMD演算器1−3に出力し、セレクタ判定部32から出力された指令が左隣のSIMD演算器1−1から出力された命令データを選択する旨を示していれば、左隣のSIMD演算器1−1から出力された命令データを選択し、その命令データを右隣のSIMD演算器1−2に出力する処理を実施する。
If the
命令フェッチ制御部12−3の命令セレクタ33はセレクタ判定部32から出力された指令が命令メモリ11−3から読み出されたSIMDプログラムA−3内の命令データを選択する旨を示していれば、命令メモリ11−3から読み出されたSIMDプログラムA−3内の命令データを選択して、その命令データを命令デコード部13−3に出力し、セレクタ判定部32から出力された指令が左隣のSIMD演算器1−2から出力された命令データを選択する旨を示していれば、左隣のSIMD演算器1−2から出力された命令データを選択し、その命令データを命令デコード部13−3に出力する処理を実施する。
If the
図4はこの発明の実施の形態1による並列信号処理プロセッサの命令デコード部13−1〜13−3を示す構成図である。
図4において、命令デコード部13−1の命令デコーダ41は全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−1を選択する旨を示していれば、命令メモリ11−1からSIMDプログラムA−1を取得する旨を示す分岐指示信号を命令フェッチ制御部12−1に出力し、そのデコーダ選択信号が命令メモリ11−1以外の命令メモリを選択する旨を示していれば、命令メモリ11−1からSIMDプログラムA−1を取得しない旨を示す分岐指示信号を命令フェッチ制御部12−1に出力する処理を実施する。
また、命令デコーダ41はセレクタ42により選択された命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−1に発行する処理を実施する。
4 is a block diagram showing instruction decode units 13-1 to 13-3 of the parallel signal processor according to the first embodiment of the present invention.
In FIG. 4, if the
The
命令デコード部13−2の命令デコーダ41は全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−2を選択する旨を示していれば、命令メモリ11−2からSIMDプログラムA−2を取得する旨を示す分岐指示信号を命令フェッチ制御部12−2に出力し、そのデコーダ選択信号が命令メモリ11−2以外の命令メモリを選択する旨を示していれば、命令メモリ11−2からSIMDプログラムA−2を取得しない旨を示す分岐指示信号を命令フェッチ制御部12−2に出力する処理を実施する。
また、命令デコーダ41はセレクタ42により選択された命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−2に発行する処理を実施する。
If the
The
命令デコード部13−3の命令デコーダ41は全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−3を選択する旨を示していれば、命令メモリ11−3からSIMDプログラムA−3を取得する旨を示す分岐指示信号を命令フェッチ制御部12−3に出力し、そのデコーダ選択信号が命令メモリ11−3以外の命令メモリを選択する旨を示していれば、命令メモリ11−3からSIMDプログラムA−3を取得しない旨を示す分岐指示信号を命令フェッチ制御部12−3に出力する処理を実施する。
また、命令デコーダ41はセレクタ42により選択された命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−3に発行する処理を実施する。
If the
The
命令デコード部13−1のセレクタ42は全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−1を選択する旨を示していれば、命令フェッチ制御部12−1から出力された命令データを選択して、その命令データを命令デコーダ41に出力し、そのデコーダ選択信号が命令メモリ11−1以外の命令メモリを選択する旨を示していれば、右隣のSIMD演算器1−2から出力された命令データを選択して、その命令データを命令デコーダ41に出力する処理を実施する。
If the
命令デコード部13−2のセレクタ42は全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−2を選択する旨を示していれば、命令フェッチ制御部12−2から出力された命令データを選択して、その命令データを命令デコーダ41及び左隣のSIMD演算器1−1に出力し、そのデコーダ選択信号が命令メモリ11−2以外の命令メモリを選択する旨を示していれば、右隣のSIMD演算器1−3から出力された命令データを選択して、その命令データを命令デコーダ41及び左隣のSIMD演算器1−1に出力する処理を実施する。
命令デコード部13−3のセレクタ42は命令フェッチ制御部12−3から出力された命令データを選択して、その命令データを命令デコーダ41及び左隣のSIMD演算器1−2に出力する処理を実施する。
If the
The
次に動作について説明する。
最初に、3個のSIMD演算器1−1〜1−3を結合して、3×4個のPE演算器14が並列に演算処理を実行する場合の処理内容を説明する。
図5は3個のSIMD演算器1−1〜1−3を結合して、SIMDプログラムA−1,A−2,A−3内の命令データを順番に読み出し、その命令データに対応するPE制御信号を12個のPE演算器14−1〜14−3に発行している様子を示す説明図である。
なお、PE演算器14−1〜14−3は、演算対象のデータや演算結果を格納するRAMなどの記録媒体を実装しているが、SIMD演算器1−1〜1−3が結合されることで、他のSIMD演算器1に実装されているPE演算器14の記録媒体に格納されている演算結果を参照することが可能になり、その演算結果を演算対象のデータとして使用することができる。
Next, the operation will be described.
First, the contents of processing when the three SIMD computing units 1-1 to 1-3 are combined and the 3 × 4 PE computing units 14 perform computation processing in parallel will be described.
FIG. 5 shows a combination of three SIMD calculators 1-1 to 1-3, which sequentially read instruction data in SIMD programs A-1, A-2, A-3, and PEs corresponding to the instruction data. It is explanatory drawing which shows a mode that the control signal is issued to 12 PE computing units 14-1 to 14-3.
The PE computing units 14-1 to 14-3 are mounted with a recording medium such as a RAM for storing data to be computed and computation results, but the SIMD computing units 1-1 to 1-3 are combined. As a result, it becomes possible to refer to the calculation result stored in the recording medium of the PE calculator 14 mounted on the
まず、全体連結制御部2は、SIMD演算器1−1とSIMD演算器1−2とSIMD演算器1−3間の結合を指示するSIMD結合制御信号を演算器連結部3−1,3−2に出力する。
即ち、全体連結制御部2のシーケンサ22は、結合制御命令メモリ21により格納されている全体結合制御プログラム内の命令を読み出し、その命令がSIMD演算器1−1〜1−3間の結合を指示する命令であれば、SIMD演算器1−1〜1−3間の結合を指示するSIMD結合制御信号の生成をSIMD連結制御部23に指示する。
全体連結制御部2のSIMD連結制御部23は、シーケンサ22の指示の下、SIMD演算器1−1〜1−3間の結合を指示するSIMD結合制御信号を生成し、そのSIMD結合制御信号を演算器連結部3−1,3−2に出力する。
First, the overall
That is, the
Under the instruction of the
演算器連結部3−1は、全体連結制御部2からSIMD演算器1−1とSIMD演算器1−2間の結合を指示するSIMD結合制御信号を受けると、SIMD演算器1−1とSIMD演算器1−2間を結合する。
演算器連結部3−2は、全体連結制御部2からSIMD演算器1−2とSIMD演算器1−3間の結合を指示するSIMD結合制御信号を受けると、SIMD演算器1−2とSIMD演算器1−3間を結合する。
これにより、3個のSIMD演算器1−1〜1−3が結合されるため、12個のPE演算器14を用いて、3個の演算対象のデータを同時に演算することが可能なSIMDが構成される。
Upon receiving the SIMD coupling control signal that instructs the coupling between the SIMD computing unit 1-1 and the SIMD computing unit 1-2 from the overall
Upon receiving the SIMD coupling control signal that instructs the coupling between the SIMD computing unit 1-2 and the SIMD computing unit 1-3 from the overall
As a result, since the three SIMD computing units 1-1 to 1-3 are combined, the SIMD capable of computing three computation target data simultaneously using the twelve PE computing units 14 is provided. Composed.
次に、全体連結制御部2は、最初にSIMDプログラムA−1内の命令データをSIMD演算器1−1〜1−3に与えるため、選択対象の命令メモリがSIMD演算器1−1内の命令メモリ11−1である旨を示すデコーダ選択信号をSIMD演算器1−1〜1−3の命令デコード部13−1〜13−3に出力する。
即ち、全体連結制御部2のシーケンサ22は、結合制御命令メモリ21により格納されている全体結合制御プログラム内の次の命令(SIMD演算器1−1〜1−3間の結合を指示する命令の次の命令)を読み出し、その命令がSIMDプログラムA−1内の命令データを選択する命令であれば、選択対象の命令メモリがSIMD演算器1−1内の命令メモリ11−1である旨を示すデコーダ選択信号の生成をデコーダ選択制御部24に指示する。
全体連結制御部2のデコーダ選択制御部24は、シーケンサ22の指示の下、選択対象の命令メモリがSIMD演算器1−1内の命令メモリ11−1である旨を示すデコーダ選択信号を生成し、そのデコーダ選択信号をSIMD演算器1−1〜1−3の命令デコード部13−1〜13−3に出力する。
Next, since the overall
That is, the
Under the instruction of the
命令デコード部13−1の命令デコーダ41は、全体連結制御部2から命令メモリ11−1を選択する旨を示すデコーダ選択信号を受けると、命令メモリ11−1からSIMDプログラムA−1を取得する旨を示す分岐指示信号を命令フェッチ制御部12−1に出力する。
一方、命令デコード部13−1,13−2の命令デコーダ41は、全体連結制御部2から命令メモリ11−1を選択する旨を示すデコーダ選択信号を受けると、命令メモリ11−2,11−3からSIMDプログラムA−2,A−3を取得しない旨を示す分岐指示信号を命令フェッチ制御部12−2,12−3に出力する。
When receiving the decoder selection signal indicating that the instruction memory 11-1 is selected from the overall
On the other hand, when the
命令フェッチ制御部12−1は、命令メモリ11−1からSIMDプログラムA−1を取得する旨を示す分岐指示信号を命令デコード部13−1から受けると、命令メモリ11−1からSIMDプログラムA−1内の命令データを取得して、その命令データを命令デコード部13−1に出力するとともに、その命令データを右隣のSIMD演算器1−2に出力する。
即ち、命令フェッチ制御部12−1のメモリアクセス制御部31は、命令メモリ11−1からSIMDプログラムA−1を取得する旨を示す分岐指示信号を受けると、その分岐指示信号にしたがって内部のプログラムカウンタを制御することで、命令メモリ11−1により格納されているSIMDプログラムA−1内の命令データを順番に読み出し、その命令データが命令メモリ11−1から命令セレクタ33に与えられるように制御する。
When the instruction fetch control unit 12-1 receives from the instruction decoding unit 13-1 a branch instruction signal indicating that the SIMD program A-1 is acquired from the instruction memory 11-1, the instruction fetch control unit 12-1 receives the branch instruction signal from the instruction memory 11-1. 1 is acquired, the instruction data is output to the instruction decoding unit 13-1, and the instruction data is output to the SIMD computing unit 1-2 on the right.
In other words, when the memory
命令フェッチ制御部12−1のセレクタ判定部32は、命令メモリ11−1からSIMDプログラムA−1を取得する旨を示す分岐指示信号を受けると、命令メモリ11−1から読み出されたSIMDプログラムA−1内の命令データを選択して、その命令データを右隣のSIMD演算器1−2に出力する指令を命令セレクタ33に出力する。
命令フェッチ制御部12−1の命令セレクタ33は、メモリアクセス制御部31の制御の下、命令メモリ11−1からSIMDプログラムA−1内の命令データを受けると、セレクタ判定部32から出力された指令にしたがって、そのSIMDプログラムA−1内の命令データを選択して、その命令データを命令デコード部13−1に出力するとともに、その命令データを右隣のSIMD演算器1−2に出力する。
When the
The
命令フェッチ制御部12−2は、命令メモリ11−2からSIMDプログラムA−2を取得しない旨を示す分岐指示信号を命令デコード部13−2から受けると、命令メモリ11−2からSIMDプログラムA−2内の命令データを取得せずに、左隣のSIMD演算器1−1から出力されたSIMDプログラムA−1内の命令データを選択して、その命令データを右隣のSIMD演算器1−3に出力する。
即ち、命令フェッチ制御部12−2のセレクタ判定部32は、命令メモリ11−2からSIMDプログラムA−2を取得しない旨を示す分岐指示信号を受けると、左隣のSIMD演算器1−1から出力された命令データを選択して、その命令データを右隣のSIMD演算器1−3に出力する指令を命令セレクタ33に出力する。
命令フェッチ制御部12−2の命令セレクタ33は、左隣のSIMD演算器1−1からSIMDプログラムA−1内の命令データを受けると、セレクタ判定部32から出力された指令にしたがって、そのSIMDプログラムA−1内の命令データを選択し、その命令データを右隣のSIMD演算器1−3に出力する。
When the instruction fetch control unit 12-2 receives a branch instruction signal indicating that the SIMD program A-2 is not acquired from the instruction memory 11-2 from the instruction decoding unit 13-2, the instruction fetch control unit 12-2 receives the SIMD program A− from the instruction memory 11-2. 2, the instruction data in the SIMD program A-1 output from the SIMD calculator 1-1 on the left side is selected without acquiring the instruction data in the left side, and the instruction data in the
That is, when the
When the
命令フェッチ制御部12−3は、命令メモリ11−3からSIMDプログラムA−3を取得しない旨を示す分岐指示信号を命令デコード部13−3から受けると、命令メモリ11−3からSIMDプログラムA−3内の命令データを取得せずに、左隣のSIMD演算器1−2から出力されたSIMDプログラムA−1内の命令データを選択して、その命令データを命令デコード部13−3に出力する。
即ち、命令フェッチ制御部12−3のセレクタ判定部32は、命令メモリ11−3からSIMDプログラムA−3を取得しない旨を示す分岐指示信号を受けると、左隣のSIMD演算器1−2から出力された命令データを選択して、その命令データを命令デコード部13−3に出力する指令を命令セレクタ33に出力する。
命令フェッチ制御部12−3の命令セレクタ33は、左隣のSIMD演算器1−2からSIMDプログラムA−1内の命令データを受けると、セレクタ判定部32から出力された指令にしたがって、そのSIMDプログラムA−1内の命令データを選択し、その命令データを命令デコード部13−3に出力する。
When the instruction fetch control unit 12-3 receives from the instruction decoding unit 13-3 a branch instruction signal indicating that the SIMD program A-3 is not acquired from the instruction memory 11-3, the instruction fetch control unit 12-3 receives the branch instruction signal from the instruction memory 11-3. 3 is selected, the instruction data in the SIMD program A-1 output from the SIMD arithmetic unit 1-2 on the left is selected and the instruction data is output to the instruction decoding unit 13-3. To do.
That is, when the
When the
命令デコード部13−3のセレクタ42は、命令フェッチ制御部12−3からSIMDプログラムA−1内の命令データを受けると、その命令データを命令デコーダ41に出力するとともに、左隣のSIMD演算器1−2に出力する。
命令デコード部13−3の命令デコーダ41は、セレクタ42からSIMDプログラムA−1内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−3に発行する。
When the
When the
命令デコード部13−2のセレクタ42は、全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−2以外の命令メモリを選択する旨を示しているため、右隣のSIMD演算器1−3から出力されたSIMDプログラムA−1内の命令データを選択して、その命令データを命令デコーダ41に出力するとともに、左隣のSIMD演算器1−1に出力する。
命令デコード部13−2の命令デコーダ41は、セレクタ42からSIMDプログラムA−1内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−2に発行する。
The
When the
命令デコード部13−1のセレクタ42は、全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−1を選択する旨を示しているため、命令フェッチ制御部12−1から出力されたSIMDプログラムA−1内の命令データを選択して、その命令データを命令デコーダ41に出力する。
命令デコード部13−1の命令デコーダ41は、セレクタ42からSIMDプログラムA−1内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−1に発行する。
これにより、3個のSIMD演算器1−1〜1−3内のPE演算器14−1〜14−3には、同一のPE制御信号(SIMD演算器1がSIMDプログラムA−1内の命令データを実行するための制御信号)が発行されたことになる。
Since the
When the
As a result, the PE operation units 14-1 to 14-3 in the three SIMD operation units 1-1 to 1-3 have the same PE control signal (the
SIMD演算器1−1のバスI/F16−1は、入出力バス4から演算対象のデータを入力すると、PEバス15−1を介して、そのデータを4個のPE演算器14−1に出力する。
SIMD演算器1−2のバスI/F16−2は、入出力バス4から演算対象のデータを入力すると、PEバス15−2を介して、そのデータを4個のPE演算器14−2に出力する。
SIMD演算器1−3のバスI/F16−3は、入出力バス4から演算対象のデータを入力すると、PEバス15−3を介して、そのデータを4個のPE演算器14−3に出力する。
When the bus I / F 16-1 of the SIMD computing unit 1-1 receives data to be computed from the input / output bus 4, the data is transferred to the four PE computing units 14-1 via the PE bus 15-1. Output.
When the bus I / F 16-2 of the SIMD computing unit 1-2 receives the data to be computed from the input / output bus 4, the data is transferred to the four PE computing units 14-2 via the PE bus 15-2. Output.
When the bus I / F 16-3 of the SIMD computing unit 1-3 receives data to be computed from the input / output bus 4, it passes the data to the four PE computing units 14-3 via the PE bus 15-3. Output.
SIMD演算器1−1のPE演算器14−1は、命令デコード部13−1から発行されたPE制御信号を実行することで、バスI/F16−1から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−1を介して、その演算結果をバスI/F16−1に出力する。
SIMD演算器1−2のPE演算器14−2は、命令デコード部13−2から発行されたPE制御信号を実行(PE演算器14−1と同一のPE制御信号を実行)することで、バスI/F16−2から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−2を介して、その演算結果をバスI/F16−2に出力する。
SIMD演算器1−3のPE演算器14−3は、命令デコード部13−3から発行されたPE制御信号を実行(PE演算器14−1,14−2と同一のPE制御信号を実行)することで、バスI/F16−3から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−3を介して、その演算結果をバスI/F16−3に出力する。
The PE computing unit 14-1 of the SIMD computing unit 1-1 executes the PE control signal issued from the instruction decoding unit 13-1, thereby processing the computation target data output from the bus I / F 16-1. Then, a predetermined calculation process is performed, and the calculation result is output to the bus I / F 16-1 via the PE bus 15-1.
The PE computing unit 14-2 of the SIMD computing unit 1-2 executes the PE control signal issued from the instruction decoding unit 13-2 (executes the same PE control signal as the PE computing unit 14-1). Predetermined calculation processing is performed on the calculation target data output from the bus I / F 16-2, and the calculation result is output to the bus I / F 16-2 via the PE bus 15-2.
The PE computing unit 14-3 of the SIMD computing unit 1-3 executes the PE control signal issued from the instruction decoding unit 13-3 (executes the same PE control signal as the PE computing units 14-1 and 14-2). As a result, predetermined calculation processing is performed on the calculation target data output from the bus I / F 16-3, and the calculation result is output to the bus I / F 16-3 via the PE bus 15-3. .
SIMD演算器1−1のバスI/F16−1は、PE演算器14−1の演算結果を受けると、その演算結果を入出力バス4に出力する。
SIMD演算器1−2のバスI/F16−2は、PE演算器14−2の演算結果を受けると、その演算結果を入出力バス4に出力する。
SIMD演算器1−3のバスI/F16−3は、PE演算器14−3の演算結果を受けると、その演算結果を入出力バス4に出力する。
When the bus I / F 16-1 of the SIMD computing unit 1-1 receives the computation result of the PE computing unit 14-1, it outputs the computation result to the input / output bus 4.
When the bus I / F 16-2 of the SIMD computing unit 1-2 receives the computation result of the PE computing unit 14-2, it outputs the computation result to the input / output bus 4.
When the bus I / F 16-3 of the SIMD calculator 1-3 receives the calculation result of the PE calculator 14-3, it outputs the calculation result to the input / output bus 4.
全体連結制御部2は、SIMD演算器1−1〜1−3がSIMDプログラムA−1内の命令データを実行すると、次に、SIMDプログラムA−2内の命令データをSIMD演算器1−1〜1−3に与えるため、選択対象の命令メモリがSIMD演算器1−2内の命令メモリ11−2である旨を示すデコーダ選択信号をSIMD演算器1−1〜1−3の命令デコード部13−1〜13−3に出力する。
即ち、全体連結制御部2のシーケンサ22は、結合制御命令メモリ21により格納されている全体結合制御プログラム内の次の命令(SIMDプログラムA−1内の命令データを選択する命令の次の命令)を読み出し、その命令がSIMDプログラムA−2内の命令データを選択する命令であれば、選択対象の命令メモリがSIMD演算器1−2内の命令メモリ11−2である旨を示すデコーダ選択信号の生成をデコーダ選択制御部24に指示する。
全体連結制御部2のデコーダ選択制御部24は、シーケンサ22の指示の下、選択対象の命令メモリがSIMD演算器1−2内の命令メモリ11−2である旨を示すデコーダ選択信号を生成し、そのデコーダ選択信号をSIMD演算器1−1〜1−3の命令デコード部13−1〜13−3に出力する。
When the SIMD calculators 1-1 to 1-3 execute the instruction data in the SIMD program A-1, the overall
That is, the
Under the instruction of the
命令デコード部13−2の命令デコーダ41は、全体連結制御部2から命令メモリ11−2を選択する旨を示すデコーダ選択信号を受けると、命令メモリ11−2からSIMDプログラムA−2を取得する旨を示す分岐指示信号を命令フェッチ制御部12−2に出力する。
一方、命令デコード部13−1,13−3の命令デコーダ41は、全体連結制御部2から命令メモリ11−2を選択する旨を示すデコーダ選択信号を受けると、命令メモリ11−1,11−3からSIMDプログラムA−1,A−3を取得しない旨を示す分岐指示信号を命令フェッチ制御部12−1,12−3に出力する。
When the
On the other hand, when the
命令フェッチ制御部12−1は、命令デコード部13−1から、命令メモリ11−1からSIMDプログラムA−1を取得しない旨を示す分岐指示信号を受けると、命令メモリ11−1からSIMDプログラムA−1内の命令データを取得せずに、NOPの命令データを選択して、その命令データを右隣のSIMD演算器1−2に出力する。
即ち、命令フェッチ制御部12−1のセレクタ判定部32は、命令メモリ11−1からSIMDプログラムA−1を取得しない旨を示す分岐指示信号を受けると、NOPの命令データを選択して、その命令データを右隣のSIMD演算器1−2に出力する指令を命令セレクタ33に出力する。
命令フェッチ制御部12−1の命令セレクタ33は、セレクタ判定部32から出力された指令にしたがって、NOPの命令データを選択し、その命令データを右隣のSIMD演算器1−2に出力する。
When the instruction fetch control unit 12-1 receives a branch instruction signal indicating that the SIMD program A-1 is not acquired from the instruction memory 11-1 from the instruction decoding unit 13-1, the instruction fetch control unit 12-1 receives the SIMD program A from the instruction memory 11-1. Without acquiring the instruction data in -1, the instruction data of NOP is selected and the instruction data is output to the SIMD computing unit 1-2 on the right.
That is, when the
The
命令フェッチ制御部12−2は、命令デコード部13−2から、命令メモリ11−2からSIMDプログラムA−2を取得する旨を示す分岐指示信号を受けると、命令メモリ11−2からSIMDプログラムA−2内の命令データを取得して、その命令データを命令デコード部13−2に出力するとともに、その命令データを右隣のSIMD演算器1−3に出力する。
即ち、命令フェッチ制御部12−2のメモリアクセス制御部31は、命令メモリ11−2からSIMDプログラムA−2を取得する旨を示す分岐指示信号を受けると、その分岐指示信号にしたがって内部のプログラムカウンタを制御することで、命令メモリ11−2により格納されているSIMDプログラムA−2内の命令データを順番に読み出し、その命令データが命令メモリ11−2から命令セレクタ33に与えられるように制御する。
When receiving the branch instruction signal indicating that the SIMD program A-2 is acquired from the instruction memory 11-2 from the instruction decoding unit 13-2, the instruction fetch control unit 12-2 receives the SIMD program A from the instruction memory 11-2. -2 is acquired, the instruction data is output to the instruction decoding unit 13-2, and the instruction data is output to the SIMD computing unit 1-3 on the right.
That is, when the memory
命令フェッチ制御部12−2のセレクタ判定部32は、命令メモリ11−2からSIMDプログラムA−2を取得する旨を示す分岐指示信号を受けると、命令メモリ11−2から読み出されたSIMDプログラムA−2内の命令データを選択して、その命令データを右隣のSIMD演算器1−3に出力する指令を命令セレクタ33に出力する。
命令フェッチ制御部12−2の命令セレクタ33は、メモリアクセス制御部31の制御の下、命令メモリ11−2からSIMDプログラムA−2内の命令データを受けると、セレクタ判定部32から出力された指令にしたがって、そのSIMDプログラムA−2内の命令データを選択して、その命令データを命令デコード部13−2に出力するとともに、その命令データを右隣のSIMD演算器1−3に出力する。
When the
The
命令フェッチ制御部12−3は、命令デコード部13−3から、命令メモリ11−3からSIMDプログラムA−3を取得しない旨を示す分岐指示信号を受けると、命令メモリ11−3からSIMDプログラムA−3内の命令データを取得せずに、左隣のSIMD演算器1−2から出力されたSIMDプログラムA−2内の命令データを選択して、その命令データを命令デコード部13−3に出力する。
即ち、命令フェッチ制御部12−3のセレクタ判定部32は、命令メモリ11−3からSIMDプログラムA−3を取得しない旨を示す分岐指示信号を受けると、左隣のSIMD演算器1−2から出力された命令データを選択して、その命令データを命令デコード部13−3に出力する指令を命令セレクタ33に出力する。
命令フェッチ制御部12−3の命令セレクタ33は、左隣のSIMD演算器1−2からSIMDプログラムA−2内の命令データを受けると、セレクタ判定部32から出力された指令にしたがって、そのSIMDプログラムA−2内の命令データを選択し、その命令データを命令デコード部13−3に出力する。
When receiving the branch instruction signal indicating that the SIMD program A-3 is not acquired from the instruction memory 11-3 from the instruction decoding unit 13-3, the instruction fetch control unit 12-3 receives the SIMD program A from the instruction memory 11-3. -3, the instruction data in the SIMD program A-2 output from the SIMD computing unit 1-2 on the left side is selected without acquiring the instruction data in the left side, and the instruction data is sent to the instruction decoding unit 13-3. Output.
That is, when the
When the
命令デコード部13−3のセレクタ42は、命令フェッチ制御部12−3からSIMDプログラムA−2内の命令データを受けると、その命令データを命令デコーダ41に出力するとともに、左隣のSIMD演算器1−2に出力する。
命令デコード部13−3の命令デコーダ41は、セレクタ42からSIMDプログラムA−2内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−3に発行する。
When the
When the
命令デコード部13−2のセレクタ42は、全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−2を選択する旨を示しているため、命令フェッチ制御部12−2から出力されたSIMDプログラムA−2内の命令データを選択して、その命令データを命令デコーダ41に出力するとともに、左隣のSIMD演算器1−1に出力する。
命令デコード部13−2の命令デコーダ41は、セレクタ42からSIMDプログラムA−2内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−2に発行する。
Since the
Upon receiving the instruction data in the SIMD program A-2 from the
命令デコード部13−1のセレクタ42は、全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−1以外の命令メモリを選択する旨を示しているため、右隣のSIMD演算器1−2から出力されたSIMDプログラムA−2内の命令データを選択して、その命令データを命令デコーダ41に出力する。
命令デコード部13−1の命令デコーダ41は、セレクタ42からSIMDプログラムA−2内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−1に発行する。
これにより、3個のSIMD演算器1−1〜1−3内のPE演算器14−1〜14−3には、同一のPE制御信号(SIMD演算器1がSIMDプログラムA−2内の命令データを実行するための制御信号)が発行されたことになる。
Since the
When the
As a result, the PE operation units 14-1 to 14-3 in the three SIMD operation units 1-1 to 1-3 have the same PE control signal (the
SIMD演算器1−1のバスI/F16−1は、入出力バス4から演算対象のデータを入力すると、PEバス15−1を介して、そのデータを4個のPE演算器14−1に出力する。
SIMD演算器1−2のバスI/F16−2は、入出力バス4から演算対象のデータを入力すると、PEバス15−2を介して、そのデータを4個のPE演算器14−2に出力する。
SIMD演算器1−3のバスI/F16−3は、入出力バス4から演算対象のデータを入力すると、PEバス15−3を介して、そのデータを4個のPE演算器14−3に出力する。
When the bus I / F 16-1 of the SIMD computing unit 1-1 receives data to be computed from the input / output bus 4, the data is transferred to the four PE computing units 14-1 via the PE bus 15-1. Output.
When the bus I / F 16-2 of the SIMD computing unit 1-2 receives the data to be computed from the input / output bus 4, the data is transferred to the four PE computing units 14-2 via the PE bus 15-2. Output.
When the bus I / F 16-3 of the SIMD computing unit 1-3 receives data to be computed from the input / output bus 4, it passes the data to the four PE computing units 14-3 via the PE bus 15-3. Output.
SIMD演算器1−1のPE演算器14−1は、命令デコード部13−1から発行されたPE制御信号を実行することで、バスI/F16−1から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−1を介して、その演算結果をバスI/F16−1に出力する。
SIMD演算器1−2のPE演算器14−2は、命令デコード部13−2から発行されたPE制御信号を実行(PE演算器14−1と同一のPE制御信号を実行)することで、バスI/F16−2から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−2を介して、その演算結果をバスI/F16−2に出力する。
SIMD演算器1−3のPE演算器14−3は、命令デコード部13−3から発行されたPE制御信号を実行(PE演算器14−1,14−2と同一のPE制御信号を実行)することで、バスI/F16−3から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−3を介して、その演算結果をバスI/F16−3に出力する。
The PE computing unit 14-1 of the SIMD computing unit 1-1 executes the PE control signal issued from the instruction decoding unit 13-1, thereby processing the computation target data output from the bus I / F 16-1. Then, a predetermined calculation process is performed, and the calculation result is output to the bus I / F 16-1 via the PE bus 15-1.
The PE computing unit 14-2 of the SIMD computing unit 1-2 executes the PE control signal issued from the instruction decoding unit 13-2 (executes the same PE control signal as the PE computing unit 14-1). Predetermined calculation processing is performed on the calculation target data output from the bus I / F 16-2, and the calculation result is output to the bus I / F 16-2 via the PE bus 15-2.
The PE computing unit 14-3 of the SIMD computing unit 1-3 executes the PE control signal issued from the instruction decoding unit 13-3 (executes the same PE control signal as the PE computing units 14-1 and 14-2). As a result, predetermined calculation processing is performed on the calculation target data output from the bus I / F 16-3, and the calculation result is output to the bus I / F 16-3 via the PE bus 15-3. .
SIMD演算器1−1のバスI/F16−1は、PE演算器14−1の演算結果を受けると、その演算結果を入出力バス4に出力する。
SIMD演算器1−2のバスI/F16−2は、PE演算器14−2の演算結果を受けると、その演算結果を入出力バス4に出力する。
SIMD演算器1−3のバスI/F16−3は、PE演算器14−3の演算結果を受けると、その演算結果を入出力バス4に出力する。
When the bus I / F 16-1 of the SIMD computing unit 1-1 receives the computation result of the PE computing unit 14-1, it outputs the computation result to the input / output bus 4.
When the bus I / F 16-2 of the SIMD computing unit 1-2 receives the computation result of the PE computing unit 14-2, it outputs the computation result to the input / output bus 4.
When the bus I / F 16-3 of the SIMD calculator 1-3 receives the calculation result of the PE calculator 14-3, it outputs the calculation result to the input / output bus 4.
全体連結制御部2は、SIMD演算器1−1〜1−3がSIMDプログラムA−2内の命令データを実行すると、最後に、SIMDプログラムA−3内の命令データをSIMD演算器1−1〜1−3に与えるため、選択対象の命令メモリがSIMD演算器1−3内の命令メモリ11−3である旨を示すデコーダ選択信号をSIMD演算器1−1〜1−3の命令デコード部13−1〜13−3に出力する。
即ち、全体連結制御部2のシーケンサ22は、結合制御命令メモリ21により格納されている全体結合制御プログラム内の次の命令(SIMDプログラムA−2内の命令データを選択する命令の次の命令)を読み出し、その命令がSIMDプログラムA−3内の命令データを選択する命令であれば、選択対象の命令メモリがSIMD演算器1−3内の命令メモリ11−3である旨を示すデコーダ選択信号の生成をデコーダ選択制御部24に指示する。
全体連結制御部2のデコーダ選択制御部24は、シーケンサ22の指示の下、選択対象の命令メモリがSIMD演算器1−3内の命令メモリ11−3である旨を示すデコーダ選択信号を生成し、そのデコーダ選択信号をSIMD演算器1−1〜1−3の命令デコード部13−1〜13−3に出力する。
When the SIMD calculators 1-1 to 1-3 execute the instruction data in the SIMD program A-2, the overall
That is, the
Under the instruction of the
命令デコード部13−3の命令デコーダ41は、全体連結制御部2から命令メモリ11−3を選択する旨を示すデコーダ選択信号を受けると、命令メモリ11−3からSIMDプログラムA−3を取得する旨を示す分岐指示信号を命令フェッチ制御部12−3に出力する。
一方、命令デコード部13−1,13−2の命令デコーダ41は、全体連結制御部2から命令メモリ11−3を選択する旨を示すデコーダ選択信号を受けると、命令メモリ11−1,11−2からSIMDプログラムA−1,A−2を取得しない旨を示す分岐指示信号を命令フェッチ制御部12−1,12−2に出力する。
When receiving the decoder selection signal indicating that the instruction memory 11-3 is selected from the overall
On the other hand, when the
命令フェッチ制御部12−1は、命令デコード部13−1から、命令メモリ11−1からSIMDプログラムA−1を取得しない旨を示す分岐指示信号を受けると、命令メモリ11−1からSIMDプログラムA−1内の命令データを取得せずに、NOPの命令データを選択して、その命令データを右隣のSIMD演算器1−2に出力する。
即ち、命令フェッチ制御部12−1のセレクタ判定部32は、命令メモリ11−1からSIMDプログラムA−1を取得しない旨を示す分岐指示信号を受けると、NOPの命令データを選択して、その命令データを右隣のSIMD演算器1−2に出力する指令を命令セレクタ33に出力する。
命令フェッチ制御部12−1の命令セレクタ33は、セレクタ判定部32から出力された指令にしたがって、NOPの命令データを選択し、その命令データを右隣のSIMD演算器1−2に出力する。
When the instruction fetch control unit 12-1 receives a branch instruction signal indicating that the SIMD program A-1 is not acquired from the instruction memory 11-1 from the instruction decoding unit 13-1, the instruction fetch control unit 12-1 receives the SIMD program A from the instruction memory 11-1. Without acquiring the instruction data in -1, the instruction data of NOP is selected and the instruction data is output to the SIMD computing unit 1-2 on the right.
That is, when the
The
命令フェッチ制御部12−2は、命令デコード部13−2から、命令メモリ11−2からSIMDプログラムA−2を取得しない旨を示す分岐指示信号を受けると、命令メモリ11−2からSIMDプログラムA−2内の命令データを取得せずに、左隣のSIMD演算器1−1から出力されたNOPの命令データを選択して、その命令データを右隣のSIMD演算器1−3に出力する。
即ち、命令フェッチ制御部12−2のセレクタ判定部32は、命令メモリ11−2からSIMDプログラムA−2を取得しない旨を示す分岐指示信号を受けると、左隣のSIMD演算器1−1から出力された命令データを選択して、その命令データを右隣のSIMD演算器1−3に出力する指令を命令セレクタ33に出力する。
命令フェッチ制御部12−2の命令セレクタ33は、左隣のSIMD演算器1−1からNOPの命令データを受けると、セレクタ判定部32から出力された指令にしたがって、NOPの命令データを選択し、その命令データを右隣のSIMD演算器1−3に出力する。
When the instruction fetch control unit 12-2 receives a branch instruction signal indicating that the SIMD program A-2 is not obtained from the instruction memory 11-2 from the instruction decoding unit 13-2, the instruction fetch control unit 12-2 receives the SIMD program A from the instruction memory 11-2. -2 without selecting the instruction data in -2, select the NOP instruction data output from the left SIMD calculator 1-1, and output the instruction data to the SIMD calculator 1-3 on the right .
That is, when the
When the
命令フェッチ制御部12−3は、命令デコード部13−2から、命令メモリ11−3からSIMDプログラムA−3を取得する旨を示す分岐指示信号を受けると、命令メモリ11−3からSIMDプログラムA−3内の命令データを取得して、その命令データを命令デコード部13−3に出力する。
即ち、命令フェッチ制御部12−3のメモリアクセス制御部31は、命令メモリ11−3からSIMDプログラムA−3を取得する旨を示す分岐指示信号を受けると、その分岐指示信号にしたがって内部のプログラムカウンタを制御することで、命令メモリ11−3により格納されているSIMDプログラムA−3内の命令データを順番に読み出し、その命令データが命令メモリ11−3から命令セレクタ33に与えられるように制御する。
When receiving the branch instruction signal indicating that the SIMD program A-3 is acquired from the instruction memory 11-3 from the instruction decoding unit 13-2, the instruction fetch control unit 12-3 receives the SIMD program A from the instruction memory 11-3. -3 is acquired, and the instruction data is output to the instruction decoding unit 13-3.
That is, when the memory
命令フェッチ制御部12−3のセレクタ判定部32は、命令メモリ11−3からSIMDプログラムA−3を取得する旨を示す分岐指示信号を受けると、SIMDプログラムA−3内の命令データを選択する指令を命令セレクタ33に出力する。
命令フェッチ制御部12−3の命令セレクタ33は、メモリアクセス制御部31の制御の下、命令メモリ11−3からSIMDプログラムA−3内の命令データを受けると、セレクタ判定部32から出力された指令にしたがって、そのSIMDプログラムA−3内の命令データを選択し、その命令データを命令デコード部13−3に出力する。
When receiving the branch instruction signal indicating that the SIMD program A-3 is acquired from the instruction memory 11-3, the
The
命令デコード部13−3のセレクタ42は、命令フェッチ制御部12−3からSIMDプログラムA−3内の命令データを受けると、その命令データを命令デコーダ41に出力するとともに、左隣のSIMD演算器1−2に出力する。
命令デコード部13−3の命令デコーダ41は、セレクタ42からSIMDプログラムA−3内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−3に発行する。
Upon receiving the instruction data in the SIMD program A-3 from the instruction fetch control unit 12-3, the
Upon receiving the instruction data in the SIMD program A-3 from the
命令デコード部13−2のセレクタ42は、全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−2以外の命令メモリを選択する旨を示しているため、右隣のSIMD演算器1−3から出力されたSIMDプログラムA−3内の命令データを選択して、その命令データを命令デコーダ41に出力するとともに、左隣のSIMD演算器1−1に出力する。
命令デコード部13−2の命令デコーダ41は、セレクタ42からSIMDプログラムA−3内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−2に発行する。
The
When the
命令デコード部13−1のセレクタ42は、全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−1以外の命令メモリを選択する旨を示しているため、右隣のSIMD演算器1−2から出力されたSIMDプログラムA−3内の命令データを選択して、その命令データを命令デコーダ41に出力する。
命令デコード部13−1の命令デコーダ41は、セレクタ42からSIMDプログラムA−3内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−1に発行する。
これにより、3個のSIMD演算器1−1〜1−3内のPE演算器14−1〜14−3には、同一のPE制御信号(SIMD演算器1がSIMDプログラムA−3内の命令データを実行するための制御信号)が発行されたことになる。
Since the
When the
As a result, the PE operation units 14-1 to 14-3 in the three SIMD operation units 1-1 to 1-3 have the same PE control signal (the
SIMD演算器1−1のバスI/F16−1は、入出力バス4から演算対象のデータを入力すると、PEバス15−1を介して、そのデータを4個のPE演算器14−1に出力する。
SIMD演算器1−2のバスI/F16−2は、入出力バス4から演算対象のデータを入力すると、PEバス15−2を介して、そのデータを4個のPE演算器14−2に出力する。
SIMD演算器1−3のバスI/F16−3は、入出力バス4から演算対象のデータを入力すると、PEバス15−3を介して、そのデータを4個のPE演算器14−3に出力する。
When the bus I / F 16-1 of the SIMD computing unit 1-1 receives data to be computed from the input / output bus 4, the data is transferred to the four PE computing units 14-1 via the PE bus 15-1. Output.
When the bus I / F 16-2 of the SIMD computing unit 1-2 receives the data to be computed from the input / output bus 4, the data is transferred to the four PE computing units 14-2 via the PE bus 15-2. Output.
When the bus I / F 16-3 of the SIMD computing unit 1-3 receives data to be computed from the input / output bus 4, it passes the data to the four PE computing units 14-3 via the PE bus 15-3. Output.
SIMD演算器1−1のPE演算器14−1は、命令デコード部13−1から発行されたPE制御信号を実行することで、バスI/F16−1から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−1を介して、その演算結果をバスI/F16−1に出力する。
SIMD演算器1−2のPE演算器14−2は、命令デコード部13−2から発行されたPE制御信号を実行(PE演算器14−1と同一のPE制御信号を実行)することで、バスI/F16−2から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−2を介して、その演算結果をバスI/F16−2に出力する。
SIMD演算器1−3のPE演算器14−3は、命令デコード部13−3から発行されたPE制御信号を実行(PE演算器14−1,14−2と同一のPE制御信号を実行)することで、バスI/F16−3から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−3を介して、その演算結果をバスI/F16−3に出力する。
The PE computing unit 14-1 of the SIMD computing unit 1-1 executes the PE control signal issued from the instruction decoding unit 13-1, thereby processing the computation target data output from the bus I / F 16-1. Then, a predetermined calculation process is performed, and the calculation result is output to the bus I / F 16-1 via the PE bus 15-1.
The PE computing unit 14-2 of the SIMD computing unit 1-2 executes the PE control signal issued from the instruction decoding unit 13-2 (executes the same PE control signal as the PE computing unit 14-1). Predetermined calculation processing is performed on the calculation target data output from the bus I / F 16-2, and the calculation result is output to the bus I / F 16-2 via the PE bus 15-2.
The PE computing unit 14-3 of the SIMD computing unit 1-3 executes the PE control signal issued from the instruction decoding unit 13-3 (executes the same PE control signal as the PE computing units 14-1 and 14-2). As a result, predetermined calculation processing is performed on the calculation target data output from the bus I / F 16-3, and the calculation result is output to the bus I / F 16-3 via the PE bus 15-3. .
SIMD演算器1−1のバスI/F16−1は、PE演算器14−1の演算結果を受けると、その演算結果を入出力バス4に出力する。
SIMD演算器1−2のバスI/F16−2は、PE演算器14−2の演算結果を受けると、その演算結果を入出力バス4に出力する。
SIMD演算器1−3のバスI/F16−3は、PE演算器14−3の演算結果を受けると、その演算結果を入出力バス4に出力する。
When the bus I / F 16-1 of the SIMD computing unit 1-1 receives the computation result of the PE computing unit 14-1, it outputs the computation result to the input / output bus 4.
When the bus I / F 16-2 of the SIMD computing unit 1-2 receives the computation result of the PE computing unit 14-2, it outputs the computation result to the input / output bus 4.
When the bus I / F 16-3 of the SIMD calculator 1-3 receives the calculation result of the PE calculator 14-3, it outputs the calculation result to the input / output bus 4.
ここでは、SIMDプログラムA−1内の命令データを読み出してから、SIMDプログラムA−2内の命令データを読み出し、その後、SIMDプログラムA−3内の命令データを読み出すものについて示したが、SIMDプログラムA−1〜A−3の読出順は一例に過ぎず、例えば、SIMDプログラムA−2内の命令データを読み出してから、SIMDプログラムA−3内の命令データを読み出し、その後、SIMDプログラムA−1内の命令データを読み出すようにしてもよいし、SIMDプログラムA−3内の命令データを読み出してから、SIMDプログラムA−1内の命令データを読み出し、その後、SIMDプログラムA−2内の命令データを読み出すようにしてもよい。 Here, the instruction data in the SIMD program A-1 is read, the instruction data in the SIMD program A-2 is read, and then the instruction data in the SIMD program A-3 is read. The reading order of A-1 to A-3 is merely an example. For example, after reading the instruction data in the SIMD program A-2, the instruction data in the SIMD program A-3 is read, and then the SIMD program A- The instruction data in 1 may be read, or the instruction data in SIMD program A-3 is read out, then the instruction data in SIMD program A-1 is read, and then the instructions in SIMD program A-2 Data may be read out.
また、全く同様な構成において、命令デコード部13−1〜13−3の命令デコーダ41が、命令データから分岐命令を判別し、分岐命令の場合には、分岐先を示す分岐指示信号を命令フェッチ制御部12−1〜12−3に出力する手段を備えるようにしてもよい。
命令デコード部13−1の命令デコーダ41は、命令データから分岐命令を判別して、最初の分岐命令が見つかるまでは、上記と同様に、全体連結制御部2から出力されたデコーダ選択信号に従って分岐指示信号を出力する。
その後、分岐命令が見つかると、その分岐命令が示す分岐先が命令メモリ11−1の範囲内を示していれば、命令メモリ11−1からSIMDプログラムA−1を取得する旨を示す分岐指示信号を命令フェッチ制御部12−1に出力し、その分岐命令が示す分岐先が命令メモリ11−1の範囲以外を示していれば、命令メモリ11−1からSIMDプログラムA−1を取得しない旨を示す分岐指示信号を命令フェッチ制御部12−1に出力する処理を実施する。命令デコーダ部13−2と命令デコーダ13−3についても同様の処理を実施する。
その他の部分は、全く同様な構成でよい。
命令デコーダ部13−1〜13−3の命令デコーダ41が、命令データから分岐命令を判別して、分岐命令の場合には、その分岐先を示す分岐指示信号を命令フェッチ制御部12−1〜12−3に出力する手段を備えることにより、全体連結制御部2に格納する全体結合制御プログラムはSIMDの連結構成のみを記述し、SIMDプログラムA−1〜A−3の読出順を記述する必要がなくなるため、全体結合制御プログラムの簡潔化を図ることができるとともに、SIMDプログラムA−1〜A−3の自由度を高めることができる。
In the same configuration, the
The
Thereafter, when a branch instruction is found, a branch instruction signal indicating that the SIMD program A-1 is acquired from the instruction memory 11-1 if the branch destination indicated by the branch instruction indicates the range of the instruction memory 11-1. Is output to the instruction fetch control unit 12-1, and if the branch destination indicated by the branch instruction indicates a range outside the range of the instruction memory 11-1, the SIMD program A-1 is not acquired from the instruction memory 11-1. The process which outputs the branch instruction | indication signal shown to the instruction fetch control part 12-1 is implemented. The same processing is performed for the instruction decoder unit 13-2 and the instruction decoder 13-3.
Other parts may have the same configuration.
The
次に、3個のSIMD演算器1−1〜1−3を分離して、SIMD演算器1−1〜1−3内のPE演算器14が、それぞれ独立して演算処理を実行する(同一のSIMD演算器1内のPE演算器14は、並列に演算処理を実行する)場合の処理内容を説明する。
図6は3個のSIMD演算器1−1〜1−3を分離して、SIMD演算器1−1〜1−3がSIMDプログラムA,B,C内の命令データを読み出し、その命令データに対応するPE制御信号をPE演算器14−1〜14−3に発行している様子を示す説明図である。
Next, the three SIMD calculators 1-1 to 1-3 are separated, and the PE calculators 14 in the SIMD calculators 1-1 to 1-3 execute the calculation process independently (the same). The processing contents in the case where the PE computing unit 14 in the
FIG. 6 shows three SIMD computing units 1-1 to 1-3 separated, and the SIMD computing units 1-1 to 1-3 read out the instruction data in the SIMD programs A, B, and C, and use them as instruction data. It is explanatory drawing which shows a mode that the corresponding PE control signal is issued to PE calculator 14-1 to 14-3.
ここまでは、SIMD演算器1−1〜1−3の命令メモリ11−1〜11−3には、SIMDプログラムA−1,A−2,A−3が格納されているものとして説明したが、SIMD演算器1−1の命令メモリ11−1には、SIMDプログラムA−1の他にSIMDプログラムAが格納され、SIMD演算器1−2の命令メモリ11−2には、SIMDプログラムA−2の他にSIMDプログラムBが格納され、SIMD演算器1−3の命令メモリ11−3には、SIMDプログラムA−3の他にSIMDプログラムCが格納されているものとする。 Up to this point, it has been described that SIMD programs A-1, A-2, and A-3 are stored in the instruction memories 11-1 to 11-3 of the SIMD computing units 1-1 to 1-3. In addition to the SIMD program A-1, the SIMD program A is stored in the instruction memory 11-1 of the SIMD computing unit 1-1, and the SIMD program A- is stored in the instruction memory 11-2 of the SIMD computing unit 1-2. 2, the SIMD program B is stored, and the SIMD program C is stored in the instruction memory 11-3 of the SIMD computing unit 1-3 in addition to the SIMD program A-3.
まず、全体連結制御部2は、SIMD演算器1−1とSIMD演算器1−2とSIMD演算器1−3間の分離を指示するSIMD結合制御信号を演算器連結部3−1,3−2に出力する。
即ち、全体連結制御部2のシーケンサ22は、結合制御命令メモリ21により格納されている全体結合制御プログラム内の命令を読み出し、その命令がSIMD演算器1−1〜1−3間の分離を指示する命令であれば、SIMD演算器1−1〜1−3間の分離を指示するSIMD結合制御信号の生成をSIMD連結制御部23に指示する。
全体連結制御部2のSIMD連結制御部23は、シーケンサ22の指示の下、SIMD演算器1−1〜1−3間の分離を指示するSIMD結合制御信号を生成し、そのSIMD結合制御信号を演算器連結部3−1,3−2に出力する。
First, the overall
That is, the
Under the instruction of the
演算器連結部3−1は、全体連結制御部2からSIMD演算器1−1とSIMD演算器1−2間の分離を指示するSIMD結合制御信号を受けると、SIMD演算器1−1とSIMD演算器1−2間を分離する。
演算器連結部3−2は、全体連結制御部2からSIMD演算器1−2とSIMD演算器1−3間の分離を指示するSIMD結合制御信号を受けると、SIMD演算器1−2とSIMD演算器1−3間を分離する。
これにより、3個のSIMD演算器1−1〜1−3が分離されるため、それぞれのSIMD演算器1が3個のPE演算器14を用いるSIMDが構成される。
Receiving the SIMD coupling control signal for instructing the separation between the SIMD computing unit 1-1 and the SIMD computing unit 1-2 from the overall
Upon receiving the SIMD coupling control signal that instructs separation between the SIMD computing unit 1-2 and the SIMD computing unit 1-3 from the overall
Thus, since the three SIMD computing units 1-1 to 1-3 are separated, each
次に、全体連結制御部2は、SIMDプログラムA内の命令データをSIMD演算器1−1に与えるため、選択対象の命令メモリがSIMD演算器1−1内の命令メモリ11−1である旨を示すデコーダ選択信号(デコーダ選択信号には、読出対象のSIMDプログラムが、SIMDプログラムA−1ではなく、SIMDプログラムAである旨を示す命令を含むものとする)をSIMD演算器1−1の命令デコード部13−1に出力する。
また、全体連結制御部2は、SIMDプログラムB内の命令データをSIMD演算器1−2に与えるため、選択対象の命令メモリがSIMD演算器1−2内の命令メモリ11−2である旨を示すデコーダ選択信号(デコーダ選択信号には、読出対象のSIMDプログラムが、SIMDプログラムA−2ではなく、SIMDプログラムBである旨を示す命令を含むものとする)をSIMD演算器1−2の命令デコード部13−2に出力する。
さらに、全体連結制御部2は、SIMDプログラムC内の命令データをSIMD演算器1−3に与えるため、選択対象の命令メモリがSIMD演算器1−3内の命令メモリ11−3である旨を示すデコーダ選択信号(デコーダ選択信号には、読出対象のSIMDプログラムが、SIMDプログラムA−3ではなく、SIMDプログラムCである旨を示す命令を含むものとする)をSIMD演算器1−3の命令デコード部13−3に出力する。
Next, since the whole
Further, since the overall
Further, since the overall
命令デコード部13−1の命令デコーダ41は、全体連結制御部2から命令メモリ11−1を選択する旨を示すデコーダ選択信号を受けると、そのデコーダ選択信号にしたがって命令メモリ11−1からSIMDプログラムAを取得する旨を示す分岐指示信号を命令フェッチ制御部12−1に出力する。
また、命令デコード部13−2の命令デコーダ41は、全体連結制御部2から命令メモリ11−2を選択する旨を示すデコーダ選択信号を受けると、そのデコーダ選択信号にしたがって命令メモリ11−2からSIMDプログラムBを取得する旨を示す分岐指示信号を命令フェッチ制御部12−2に出力する。
また、命令デコード部13−3の命令デコーダ41は、全体連結制御部2から命令メモリ11−3を選択する旨を示すデコーダ選択信号を受けると、そのデコーダ選択信号にしたがって命令メモリ11−3からSIMDプログラムCを取得する旨を示す分岐指示信号を命令フェッチ制御部12−3に出力する。
When the
When the
When the
命令フェッチ制御部12−1は、命令デコード部13−1から、命令メモリ11−1からSIMDプログラムAを取得する旨を示す分岐指示信号を受けると、命令メモリ11−1からSIMDプログラムA内の命令データを取得して、その命令データを命令デコード部13−1に出力する。
即ち、命令フェッチ制御部12−1のメモリアクセス制御部31は、命令メモリ11−1からSIMDプログラムAを取得する旨を示す分岐指示信号を受けると、その分岐指示信号にしたがって内部のプログラムカウンタを制御することで、命令メモリ11−1により格納されているSIMDプログラムA内の命令データを順番に読み出し、その命令データが命令メモリ11−1から命令セレクタ33に与えられるように制御する。
When the instruction fetch control unit 12-1 receives a branch instruction signal indicating that the SIMD program A is acquired from the instruction memory 11-1 from the instruction decoding unit 13-1, the instruction fetch control unit 12-1 stores the SIMD program A in the SIMD program A. The instruction data is acquired, and the instruction data is output to the instruction decoding unit 13-1.
That is, when the memory
命令フェッチ制御部12−1のセレクタ判定部32は、命令メモリ11−1からSIMDプログラムAを取得する旨を示す分岐指示信号を受けると、命令メモリ11−1から読み出されたSIMDプログラムA内の命令データを選択して、その命令データを命令デコード部13−1に出力する指令を命令セレクタ33に出力する。
命令フェッチ制御部12−1の命令セレクタ33は、メモリアクセス制御部31の制御の下、命令メモリ11−1からSIMDプログラムA内の命令データを受けると、セレクタ判定部32から出力された指令にしたがって、そのSIMDプログラムA内の命令データを選択して、その命令データを命令デコード部13−1に出力する。
When the
When the
命令フェッチ制御部12−2は、命令デコード部13−2から、命令メモリ11−2からSIMDプログラムBを取得する旨を示す分岐指示信号を受けると、命令メモリ11−2からSIMDプログラムB内の命令データを取得して、その命令データを命令デコード部13−2に出力する。
命令フェッチ制御部12−3は、命令デコード部13−3から、命令メモリ11−3からSIMDプログラムCを取得する旨を示す分岐指示信号を受けると、命令メモリ11−3からSIMDプログラムC内の命令データを取得して、その命令データを命令デコード部13−3に出力する。
この場合の命令フェッチ制御部12−2,12−3の内部の動作は、命令フェッチ制御部12−1の内部の動作と同様であるため説明を省略する。
When the instruction fetch control unit 12-2 receives a branch instruction signal indicating that the SIMD program B is acquired from the instruction memory 11-2 from the instruction decoding unit 13-2, the instruction fetch control unit 12-2 stores the SIMD program B in the SIMD program B from the instruction memory 11-2. The instruction data is acquired, and the instruction data is output to the instruction decoding unit 13-2.
When the instruction fetch control unit 12-3 receives a branch instruction signal indicating that the SIMD program C is acquired from the instruction memory 11-3 from the instruction decoding unit 13-3, the instruction fetch control unit 12-3 receives the branch instruction signal from the instruction memory 11-3 in the SIMD program C. The instruction data is acquired, and the instruction data is output to the instruction decoding unit 13-3.
In this case, the internal operation of the instruction fetch control units 12-2 and 12-3 is the same as the internal operation of the instruction fetch control unit 12-1, and thus the description thereof is omitted.
命令デコード部13−1のセレクタ42は、全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−1を選択する旨を示しているため、命令フェッチ制御部12−1から出力されたSIMDプログラムA内の命令データを選択して、その命令データを命令デコーダ41に出力する。
命令デコード部13−1の命令デコーダ41は、セレクタ42からSIMDプログラムA内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−1に発行する。
これにより、SIMD演算器1−1内のPE演算器14−1には、同一のPE制御信号が発行されたことになる。
Since the
When the
As a result, the same PE control signal is issued to the PE computing unit 14-1 in the SIMD computing unit 1-1.
命令デコード部13−2のセレクタ42は、全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−2を選択する旨を示しているため、命令フェッチ制御部12−2から出力されたSIMDプログラムB内の命令データを選択して、その命令データを命令デコーダ41に出力する。
命令デコード部13−2の命令デコーダ41は、セレクタ42からSIMDプログラムB内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−2に発行する。
これにより、SIMD演算器1−2内のPE演算器14−2には、同一のPE制御信号が発行されたことになる。
Since the
When the
As a result, the same PE control signal is issued to the PE computing unit 14-2 in the SIMD computing unit 1-2.
命令デコード部13−3のセレクタ42は、全体連結制御部2から出力されたデコーダ選択信号が命令メモリ11−3を選択する旨を示しているため、命令フェッチ制御部12−3から出力されたSIMDプログラムC内の命令データを選択して、その命令データを命令デコーダ41に出力する。
命令デコード部13−3の命令デコーダ41は、セレクタ42からSIMDプログラムC内の命令データを受けると、その命令データをPE制御信号に変換し、そのPE制御信号を4個のPE演算器14−3に発行する。
これにより、SIMD演算器1−3内のPE演算器14−3には、同一のPE制御信号が発行されたことになる。
The
When the
As a result, the same PE control signal is issued to the PE computing unit 14-3 in the SIMD computing unit 1-3.
SIMD演算器1−1のバスI/F16−1は、入出力バス4から演算対象のデータを入力すると、PEバス15−1を介して、そのデータを4個のPE演算器14−1に出力する。
SIMD演算器1−2のバスI/F16−2は、入出力バス4から演算対象のデータを入力すると、PEバス15−2を介して、そのデータを4個のPE演算器14−2に出力する。
SIMD演算器1−3のバスI/F16−3は、入出力バス4から演算対象のデータを入力すると、PEバス15−3を介して、そのデータを4個のPE演算器14−3に出力する。
When the bus I / F 16-1 of the SIMD computing unit 1-1 receives data to be computed from the input / output bus 4, the data is transferred to the four PE computing units 14-1 via the PE bus 15-1. Output.
When the bus I / F 16-2 of the SIMD computing unit 1-2 receives the data to be computed from the input / output bus 4, the data is transferred to the four PE computing units 14-2 via the PE bus 15-2. Output.
When the bus I / F 16-3 of the SIMD computing unit 1-3 receives data to be computed from the input / output bus 4, it passes the data to the four PE computing units 14-3 via the PE bus 15-3. Output.
SIMD演算器1−1のPE演算器14−1は、命令デコード部13−1から発行されたPE制御信号を実行することで、バスI/F16−1から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−1を介して、その演算結果をバスI/F16−1に出力する。
SIMD演算器1−2のPE演算器14−2は、命令デコード部13−2から発行されたPE制御信号を実行することで、バスI/F16−2から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−2を介して、その演算結果をバスI/F16−2に出力する。
SIMD演算器1−3のPE演算器14−3は、命令デコード部13−3から発行されたPE制御信号を実行することで、バスI/F16−3から出力された演算対象のデータに対して所定の演算処理を行い、PEバス15−3を介して、その演算結果をバスI/F16−3に出力する。
The PE computing unit 14-1 of the SIMD computing unit 1-1 executes the PE control signal issued from the instruction decoding unit 13-1, thereby processing the computation target data output from the bus I / F 16-1. Then, a predetermined calculation process is performed, and the calculation result is output to the bus I / F 16-1 via the PE bus 15-1.
The PE computing unit 14-2 of the SIMD computing unit 1-2 executes the PE control signal issued from the instruction decoding unit 13-2, thereby processing the computation target data output from the bus I / F 16-2. Then, a predetermined calculation process is performed, and the calculation result is output to the bus I / F 16-2 via the PE bus 15-2.
The PE computing unit 14-3 of the SIMD computing unit 1-3 executes the PE control signal issued from the instruction decoding unit 13-3, thereby processing the computation target data output from the bus I / F 16-3. Then, a predetermined calculation process is performed, and the calculation result is output to the bus I / F 16-3 via the PE bus 15-3.
SIMD演算器1−1のバスI/F16−1は、PE演算器14−1の演算結果を受けると、その演算結果を入出力バス4に出力する。
SIMD演算器1−2のバスI/F16−2は、PE演算器14−2の演算結果を受けると、その演算結果を入出力バス4に出力する。
SIMD演算器1−3のバスI/F16−3は、PE演算器14−3の演算結果を受けると、その演算結果を入出力バス4に出力する。
When the bus I / F 16-1 of the SIMD computing unit 1-1 receives the computation result of the PE computing unit 14-1, it outputs the computation result to the input / output bus 4.
When the bus I / F 16-2 of the SIMD computing unit 1-2 receives the computation result of the PE computing unit 14-2, it outputs the computation result to the input / output bus 4.
When the bus I / F 16-3 of the SIMD calculator 1-3 receives the calculation result of the PE calculator 14-3, it outputs the calculation result to the input / output bus 4.
以上で明らかなように、この実施の形態1によれば、単一の命令を実行して、所定の演算処理を行う複数のPE演算器14を実装しているSIMD演算器1−1〜1−3が、SIMDプログラムを格納している命令メモリ11−1〜11−3と、全体連結制御部2から出力されたデコーダ選択信号が示す命令メモリが自己の命令メモリ11であれば、自己の命令メモリ11に格納されているSIMDプログラムを取得して、そのSIMDプログラムを他のSIMD演算器1に与え、そのデコーダ選択信号が示す命令メモリが自己の命令メモリ11でなければ、他のSIMD演算器1からSIMDプログラムを取得する命令フェッチ制御部12−1〜12−3と、自己の命令フェッチ制御部12により取得されたSIMDプログラム内の命令又は右隣の命令フェッチ制御部12により取得されたSIMDプログラム内の命令を複数のPE演算器14に発行する命令デコード部13−1〜13−3とを備えるように構成したので、演算効率を高めるために、同時に処理するPE演算器14の台数を増加させる場合でも、各SIMD演算器1における命令メモリ11に対して、異なるSIMDプログラムを格納できるようになり、その結果、命令メモリ11の利用効率の低下を防止することができる効果を奏する。
As is apparent from the above, according to the first embodiment, SIMD arithmetic units 1-1 to 1-1 in which a plurality of PE arithmetic units 14 that execute a single instruction and perform predetermined arithmetic processing are mounted. -3 is the instruction memory 11-1 to 11-3 storing the SIMD program and the instruction memory indicated by the decoder selection signal output from the overall
即ち、SIMD演算器1−1〜1−3間を連結する場合でも、SIMD演算器1−1〜1−3の命令メモリ11−1〜11−3には、SIMDプログラム内の相互に異なる部分(SIMDプログラムA−1,A−2,A−3)を格納することができるため(従来例では、図7に示すように、命令メモリ11−1〜11−3には、同一のSIMDプログラムDを格納する必要がある)、命令メモリ11の利応効率を高めることができる。したがって、命令メモリ11のメモリ容量を増やすことなく、より大きなプログラムを実行することが可能になる。 That is, even when the SIMD calculators 1-1 to 1-3 are connected, the instruction memories 11-1 to 11-3 of the SIMD calculators 1-1 to 1-3 have different portions in the SIMD program. (SIMD programs A-1, A-2, A-3) can be stored (in the conventional example, as shown in FIG. 7, the instruction memories 11-1 to 11-3 have the same SIMD program. D) needs to be stored), and the utilization efficiency of the instruction memory 11 can be increased. Therefore, a larger program can be executed without increasing the memory capacity of the instruction memory 11.
また、この実施の形態1によれば、全体連結制御部2が実行する全体結合制御プログラムによって、PE演算器14の並列度を定義することが可能であるため、対象とする信号処理の内容に応じて、最適な並列度処理を実現することができる。
なお、実施の形態1において、PE演算器14の演算ビット幅や演算種類に制約を与えるものではない。
Further, according to the first embodiment, since the parallel degree of the PE computing unit 14 can be defined by the overall connection control program executed by the overall
In the first embodiment, there is no restriction on the calculation bit width and calculation type of the PE calculator 14.
1−1〜1−3 SIMD演算器、2 全体連結制御部、3−1,3−2 演算器連結部、4 入出力バス、11−1〜11−3 命令メモリ、12−1〜12−3 命令フェッチ制御部(命令発行手段)、13−1〜13−3 命令デコード部(命令発行手段)、14−1〜14−3 PE演算器(プロセッサエレメント)、15−1〜15−3 PEバス、16−1〜16−3 バスI/F、21 結合制御命令メモリ、22 シーケンサ、23 SIMD連結制御部、24 デコーダ選択制御部、31 メモリアクセス制御部、32 セレクタ判定部、33 命令セレクタ、41 命令デコーダ、42 セレクタ。 1-1 to 1-3 SIMD arithmetic unit, 2 whole connection control unit, 3-1, 3-2 arithmetic unit connection unit, 4 input / output bus, 11-1 to 11-3 instruction memory, 12-1 to 12- 3 Instruction fetch control unit (instruction issuing unit), 13-1 to 13-3 Instruction decoding unit (instruction issuing unit), 14-1 to 14-3 PE computing unit (processor element), 15-1 to 15-3 PE Bus, 16-1 to 16-3 bus I / F, 21 coupling control instruction memory, 22 sequencer, 23 SIMD connection control unit, 24 decoder selection control unit, 31 memory access control unit, 32 selector determination unit, 33 instruction selector, 41 Instruction decoder, 42 selector.
Claims (3)
上記複数のSIMD演算器は、プログラムを格納している命令メモリと、上記全体連結制御部から選択対象の命令メモリを示す選択信号を受けると、上記選択信号が示す命令メモリが自己の命令メモリであれば、上記命令メモリに格納されているプログラムを取得して、上記プログラムを他のSIMD演算器に与え、上記選択信号が示す命令メモリが自己の命令メモリでなければ、他のSIMD演算器からプログラムを取得し、その取得したプログラム内の命令を上記複数のプロセッサエレメントに発行する命令発行手段とを備えていることを特徴とする並列信号処理プロセッサ。 A single instruction is executed to output a plurality of SIMD arithmetic units equipped with a plurality of processor elements for performing predetermined arithmetic processing and a connection control signal for instructing coupling or separation between the plurality of SIMD arithmetic units. If the connection control signal output from the overall connection control unit and the connection control signal output from the overall connection control unit indicate combination, the plurality of SIMD computing units are combined, and if the connection control signal indicates separation. In a parallel signal processing processor comprising an arithmetic unit coupling unit that separates the plurality of SIMD arithmetic units,
When the plurality of SIMD computing units receive a selection signal indicating an instruction memory to be selected from an instruction memory storing a program and the overall connection control unit, the instruction memory indicated by the selection signal is the own instruction memory. If there is, the program stored in the instruction memory is acquired, and the program is given to another SIMD arithmetic unit. If the instruction memory indicated by the selection signal is not its own instruction memory, it is obtained from the other SIMD arithmetic unit. A parallel signal processor comprising: an instruction issuing unit that acquires a program and issues an instruction in the acquired program to the plurality of processor elements.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010004055A JP5511400B2 (en) | 2010-01-12 | 2010-01-12 | Parallel signal processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010004055A JP5511400B2 (en) | 2010-01-12 | 2010-01-12 | Parallel signal processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011145759A true JP2011145759A (en) | 2011-07-28 |
JP5511400B2 JP5511400B2 (en) | 2014-06-04 |
Family
ID=44460581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010004055A Active JP5511400B2 (en) | 2010-01-12 | 2010-01-12 | Parallel signal processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5511400B2 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0520283A (en) * | 1991-07-11 | 1993-01-29 | Mitsubishi Electric Corp | Parallel data processor |
JPH05233569A (en) * | 1991-11-27 | 1993-09-10 | Internatl Business Mach Corp <Ibm> | Computer system dynamiccaly operated in plurality of modes |
JPH0668053A (en) * | 1992-08-20 | 1994-03-11 | Toshiba Corp | Parallel computer |
WO1996029646A1 (en) * | 1995-03-17 | 1996-09-26 | Hitachi, Ltd. | Processor |
JP2007323308A (en) * | 2006-05-31 | 2007-12-13 | Fuji Xerox Co Ltd | Arithmetic unit, image processing apparatus, and data processing apparatus |
JP2007328461A (en) * | 2006-06-06 | 2007-12-20 | Matsushita Electric Ind Co Ltd | Asymmetric multiprocessor |
-
2010
- 2010-01-12 JP JP2010004055A patent/JP5511400B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0520283A (en) * | 1991-07-11 | 1993-01-29 | Mitsubishi Electric Corp | Parallel data processor |
JPH05233569A (en) * | 1991-11-27 | 1993-09-10 | Internatl Business Mach Corp <Ibm> | Computer system dynamiccaly operated in plurality of modes |
JPH0668053A (en) * | 1992-08-20 | 1994-03-11 | Toshiba Corp | Parallel computer |
WO1996029646A1 (en) * | 1995-03-17 | 1996-09-26 | Hitachi, Ltd. | Processor |
JP2007323308A (en) * | 2006-05-31 | 2007-12-13 | Fuji Xerox Co Ltd | Arithmetic unit, image processing apparatus, and data processing apparatus |
JP2007328461A (en) * | 2006-06-06 | 2007-12-20 | Matsushita Electric Ind Co Ltd | Asymmetric multiprocessor |
Non-Patent Citations (2)
Title |
---|
CSNG200400098007; 京 昭倫: '「128個のVLIWプロセッシングエレメントを集積した動画像認識プロセッサIMAP-CE」' 情報処理学会研究報告 第2002巻 第81号, 20020823, 37頁〜42頁, 社団法人情報処理学会 * |
JPN6013061276; 京 昭倫: '「128個のVLIWプロセッシングエレメントを集積した動画像認識プロセッサIMAP-CE」' 情報処理学会研究報告 第2002巻 第81号, 20020823, 37頁〜42頁, 社団法人情報処理学会 * |
Also Published As
Publication number | Publication date |
---|---|
JP5511400B2 (en) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4913685B2 (en) | SIMD type microprocessor and control method of SIMD type microprocessor | |
KR930007041B1 (en) | Method and apparatus for instruction processing | |
US20130246737A1 (en) | SIMD Compare Instruction Using Permute Logic for Distributed Register Files | |
EP3384498B1 (en) | Shift register with reduced wiring complexity | |
JP2006012182A (en) | Data processing system and method thereof | |
US9513908B2 (en) | Streaming memory transpose operations | |
KR20070120877A (en) | Picture processing engine and picture processing system | |
CN101802779A (en) | Processor with reconfigurable floating point unit | |
TWI752343B (en) | Execution unit circuits, image processors, and methods for performing a sum of absolute difference computation | |
JP2009157629A (en) | Semiconductor integrated circuit device, and clock control method therefor | |
US20060212613A1 (en) | Data processor apparatus | |
EP3384376B1 (en) | Multi-functional execution lane for image processor | |
US20240004663A1 (en) | Processing device with vector transformation execution | |
KR102332523B1 (en) | Apparatus and method for execution processing | |
JP5511400B2 (en) | Parallel signal processor | |
JP2009282744A (en) | Computing unit and semiconductor integrated circuit device | |
US20120030448A1 (en) | Single instruction multiple date (simd) processor having a plurality of processing elements interconnected by a ring bus | |
EP1634163A1 (en) | Result partitioning within simd data processing systems | |
KR100472706B1 (en) | Digital signal processor having a plurality of independent dedicated processors | |
JP4868607B2 (en) | SIMD type microprocessor | |
US20070005941A1 (en) | High performance architecture for a writeback stage | |
JP2009116458A (en) | Signal processor | |
KR100896269B1 (en) | Simd parallel processor with simd/sisd/row/column opertaion modes | |
CN101010671A (en) | Array type operation device | |
JP2009193466A (en) | Semiconductor device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120824 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131217 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140130 |
|
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: 20140225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140325 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5511400 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |