JP2011180680A - Multiprocessor system and program for multiprocessor system - Google Patents
Multiprocessor system and program for multiprocessor system Download PDFInfo
- Publication number
- JP2011180680A JP2011180680A JP2010042195A JP2010042195A JP2011180680A JP 2011180680 A JP2011180680 A JP 2011180680A JP 2010042195 A JP2010042195 A JP 2010042195A JP 2010042195 A JP2010042195 A JP 2010042195A JP 2011180680 A JP2011180680 A JP 2011180680A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- memory
- processing
- data
- input data
- 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.)
- Withdrawn
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
Description
本発明は、マルチプロセッサシステムおよびマルチプロセッサシステムのプログラムに関する。 The present invention relates to a multiprocessor system and a program for the multiprocessor system.
高い処理性能が要求されるシステムでは、複数のプロセッサを使用するマルチプロセッサシステムが用いられている(例えば、特許文献1−4参照。)。例えば、コンピュータの処理をサポートするアクセラレータ等のマルチプロセッサシステムは、マルチプロセッサシステムおよびコンピュータ間で転送されるデータを記憶するメモリを有している。一般に、この種のメモリには、記憶容量の大きい低速なメモリが使用される。 In a system that requires high processing performance, a multiprocessor system using a plurality of processors is used (see, for example, Patent Documents 1-4). For example, a multiprocessor system such as an accelerator that supports computer processing has a memory that stores data transferred between the multiprocessor system and the computer. Generally, a low-speed memory having a large storage capacity is used for this type of memory.
各プロセッサは、例えば、コンピュータからマルチプロセッサシステムのメモリに転送された入力データを用いて計算処理を実施する。そして、各プロセッサは、計算処理の結果である出力データをメモリに転送する。このように、各プロセッサは、計算処理を実施するたびに、低速なメモリにアクセスする。 Each processor performs a calculation process using input data transferred from a computer to a memory of a multiprocessor system, for example. Then, each processor transfers output data as a result of the calculation process to the memory. As described above, each processor accesses a low-speed memory each time a calculation process is performed.
また、記憶容量の大きな大容量メモリおよび大容量メモリより高速なアクセスが可能な高速メモリを有するマルチプロセッサシステムでは、各プロセッサは、高速メモリにアクセスして、計算処理を実施する。なお、一般に、高速メモリの記憶容量は、大容量メモリの記憶容量より小さい。また、この種のマルチプロセッサシステムでは、高速メモリとコンピュータとの間でデータ転送を直接実施せず、各プロセッサの計算処理に必要な入力データは、大容量メモリに一旦記憶される。 In a multiprocessor system having a large-capacity memory having a large storage capacity and a high-speed memory that can be accessed at a higher speed than the large-capacity memory, each processor accesses the high-speed memory and performs calculation processing. In general, the storage capacity of the high-speed memory is smaller than the storage capacity of the large-capacity memory. In this type of multiprocessor system, data transfer is not directly performed between the high-speed memory and the computer, and input data necessary for calculation processing of each processor is temporarily stored in a large-capacity memory.
例えば、各プロセッサは、大容量メモリに記憶された入力データを高速メモリに転送し、高速メモリに記憶された入力データを用いて計算処理を実施する。そして、各プロセッサは、計算処理の結果である出力データを高速メモリに一旦格納し、高速メモリに記憶された出力データを大容量メモリに転送する。 For example, each processor transfers input data stored in a large-capacity memory to a high-speed memory, and performs calculation processing using the input data stored in the high-speed memory. Each processor temporarily stores the output data as a result of the calculation process in the high-speed memory, and transfers the output data stored in the high-speed memory to the large-capacity memory.
各プロセッサは、上述したように、計算処理を実施するたびに、低速な大容量メモリにアクセスする。大容量メモリへのアクセス回数が増加すると、メモリアクセスの時間が増加する。 As described above, each processor accesses a low-speed large-capacity memory each time it performs a calculation process. As the number of accesses to the large-capacity memory increases, the memory access time increases.
本発明の目的は、マルチプロセッサシステムの計算処理能力と、マルチプロセッサとメモリとのデータ転送の処理能力の調整を行うことである。 An object of the present invention is to adjust the calculation processing capability of a multiprocessor system and the processing capability of data transfer between the multiprocessor and the memory.
本発明の一形態では、マルチプロセッサシステムは、第1メモリと、第1メモリに接続され、第1メモリに記憶されたデータを用いて処理を実施する処理部とを有している。処理部は、第2メモリと、データおよび処理の結果である処理データの少なくとも一方を第1メモリと第2メモリとの間で転送するデータ転送を実施する第1プロセッサと、第1メモリと第2メモリとの間でのデータ転送と処理とを切り替え可能に実施する第2プロセッサと、第2メモリに転送されたデータを用いて、処理を実施する第3プロセッサとを有している。 In one embodiment of the present invention, a multiprocessor system includes a first memory and a processing unit that is connected to the first memory and performs processing using data stored in the first memory. The processing unit includes a second memory, a first processor that performs data transfer for transferring at least one of data and processing data as a result of the processing between the first memory and the second memory, the first memory, A second processor that can switch between data transfer and processing between the two memories and a third processor that performs processing using the data transferred to the second memory.
マルチプロセッサシステムの計算処理の効率を向上させることができる。 The efficiency of calculation processing of the multiprocessor system can be improved.
以下、実施形態を図面を用いて説明する。 Hereinafter, embodiments will be described with reference to the drawings.
図1は、一実施形態におけるマルチプロセッサシステムPSYSの例を示している。なお、図中の破線は、データの流れの一例を示している。マルチプロセッサシステムPSYSは、外部メモリMEMと、外部メモリMEMに接続された処理部MPとを有している。外部メモリMEMは、例えば、DRAM(Dynamic RAM)等で形成されたメモリであり、コンピュータ等の外部装置とマルチプロセッサシステムPSYSとの間で転送されるデータを記憶する。本実施例では、外部メモリMEMの記憶容量は、後述する内部メモリIMEMの記憶容量より大きい。 FIG. 1 shows an example of a multiprocessor system PSYS in one embodiment. In addition, the broken line in a figure has shown an example of the flow of data. The multiprocessor system PSYS has an external memory MEM and a processing unit MP connected to the external memory MEM. The external memory MEM is a memory formed by, for example, a DRAM (Dynamic RAM) or the like, and stores data transferred between an external device such as a computer and the multiprocessor system PSYS. In this embodiment, the storage capacity of the external memory MEM is larger than the storage capacity of the internal memory IMEM described later.
処理部MPは、外部メモリMEMに記憶されたデータを用いて計算処理を実施する。処理部MPは、内部メモリIMEMと、内部メモリIMEMに接続された複数のプロセッサPU(PU1、PU2、PU3、PU4、・・・)とを有している。内部メモリIMEMは、各プロセッサPUからアクセスされ、外部メモリMEMより高速に動作する。 The processing unit MP performs a calculation process using data stored in the external memory MEM. The processing unit MP includes an internal memory IMEM and a plurality of processors PU (PU1, PU2, PU3, PU4,...) Connected to the internal memory IMEM. The internal memory IMEM is accessed from each processor PU and operates faster than the external memory MEM.
各プロセッサPUは、外部メモリMEMに接続され、例えば、外部メモリMEMに記憶されたプログラムに基づいて動作する。例えば、処理部MPが外部メモリMEMに記憶されたデータを用いた計算処理を実施するとき、プロセッサPUの1つ(図1では、プロセッサPU1)は、外部メモリMEMおよび内部メモリIMEM間のデータ転送を実施する(図1(a、b))。例えば、処理部MPが外部メモリMEMに記憶されたデータを用いた計算処理を実施するとき、プロセッサPU1は、計算処理を実施せずに、外部メモリMEMおよび内部メモリIMEM間のデータ転送を繰り返し実施する。プロセッサPU1は、計算処理の入力データおよび出力データの少なくとも一方を外部メモリMEMおよび内部メモリIMEM間で転送するデータ転送を実施する。なお、例えば、入力データは、計算処理に用いられるデータであり、出力データは、計算処理の結果である。 Each processor PU is connected to the external memory MEM, and operates based on, for example, a program stored in the external memory MEM. For example, when the processing unit MP performs a calculation process using data stored in the external memory MEM, one of the processors PU (processor PU1 in FIG. 1) transfers data between the external memory MEM and the internal memory IMEM. (Fig. 1 (a, b)). For example, when the processing unit MP performs calculation processing using data stored in the external memory MEM, the processor PU1 repeatedly performs data transfer between the external memory MEM and the internal memory IMEM without performing calculation processing. To do. The processor PU1 performs data transfer for transferring at least one of input data and output data for calculation processing between the external memory MEM and the internal memory IMEM. For example, the input data is data used for calculation processing, and the output data is the result of calculation processing.
また、処理部MPが外部メモリMEMに記憶されたデータを用いた計算処理を実施するとき、プロセッサPUの1つ(図1では、プロセッサPU2)は、外部メモリMEMおよび内部メモリIMEM間のデータ転送(図1(c))と、計算処理とを切り替え可能に実施する。言い換えれば、処理部MPの計算処理能力と、処理部MPと外部メモリMEMとのデータ転送能力を調整するように、プロセッサPU2は、データ転送と計算処理とを切り替えて実施する。 Further, when the processing unit MP performs a calculation process using data stored in the external memory MEM, one of the processors PU (processor PU2 in FIG. 1) transfers data between the external memory MEM and the internal memory IMEM. (FIG. 1 (c)) and calculation processing are performed in a switchable manner. In other words, the processor PU2 switches between data transfer and calculation processing so as to adjust the calculation processing capability of the processing unit MP and the data transfer capability between the processing unit MP and the external memory MEM.
例えば、計算処理に必要な時間が、データ転送に必要な時間に対して相対的に長いとき、プロセッサPU2は、内部メモリIMEMにアクセスして(図1(d))、計算処理を実施する。また、例えば、計算処理に必要な時間が、データ転送に必要な時間に対して相対的に短いとき、プロセッサPU2は、プロセッサPU1の代わりに、外部メモリMEMから内部メモリIMEMにデータを転送する(図1(c))。 For example, when the time required for the calculation process is relatively longer than the time required for the data transfer, the processor PU2 accesses the internal memory IMEM (FIG. 1 (d)) and performs the calculation process. For example, when the time required for the calculation process is relatively short with respect to the time required for data transfer, the processor PU2 transfers data from the external memory MEM to the internal memory IMEM instead of the processor PU1 ( FIG. 1 (c)).
処理部MPが外部メモリMEMに記憶されたデータを用いた計算処理を実施するとき、プロセッサPU1、PU2以外のプロセッサPU(図1では、PU3、PU4、・・・)は、内部メモリIMEMにアクセスして(図1(d))、計算処理を実施する。すなわち、プロセッサPU1、PU2以外のプロセッサPU(図1では、PU3、PU4、・・・)は、内部メモリIMEMに記憶された入力データを用いて、計算処理を実施する。プロセッサPU3等は、例えば、低速な外部メモリMEMにアクセスせずに計算処理を実施するため、計算処理を効率よく実施できる。なお、プロセッサPU1の処理をプロセッサPU1以外のいずれかのプロセッサPUが実施し、プロセッサPU2の処理をプロセッサPU2以外のいずれかのプロセッサPUが実施してもよい。また、処理部MP内のプロセッサPUの数は、4つ以上に限定されず、例えば、3つでもよい。 When the processing unit MP performs a calculation process using data stored in the external memory MEM, the processors PU (PU3, PU4,... In FIG. 1) other than the processors PU1 and PU2 access the internal memory IMEM. Then, the calculation process is performed (FIG. 1D). That is, the processors PU (in FIG. 1, PU3, PU4,...) Other than the processors PU1 and PU2 perform calculation processing using the input data stored in the internal memory IMEM. The processor PU3 and the like perform the calculation process without accessing the low-speed external memory MEM, for example, so that the calculation process can be performed efficiently. Note that the processing of the processor PU1 may be performed by any processor PU other than the processor PU1, and the processing of the processor PU2 may be performed by any processor PU other than the processor PU2. Further, the number of processors PU in the processing unit MP is not limited to four or more, and may be three, for example.
図2は、図1に示したマルチプロセッサシステムPSYSの動作の例を示している。なお、図2は、外部メモリMEMに記憶されたデータを用いた計算処理を実施するときのプロセッサPU1、PU2、PU3、PU4の動作を示している。また、例えば、プロセッサPU1、PU2、PU3、PU4以外のプロセッサPUの動作は、プロセッサPU3と同じである。 FIG. 2 shows an example of the operation of the multiprocessor system PSYS shown in FIG. FIG. 2 shows operations of the processors PU1, PU2, PU3, and PU4 when performing a calculation process using data stored in the external memory MEM. For example, the operations of the processors PU other than the processors PU1, PU2, PU3, and PU4 are the same as those of the processor PU3.
図中の符号Rは、外部メモリMEMからデータを読み出す処理が実施されていることを示している。符号Wは、外部メモリMEMにデータを書き込む処理が実施されていることを示している。符号rは、内部メモリIMEMからデータを読み出す処理が実施されていることを示している。符号wは、内部メモリIMEMにデータを書き込む処理が実施されていることを示している。符号CALは、計算処理が実施されていることを示している。 A symbol R in the drawing indicates that processing for reading data from the external memory MEM is being performed. A symbol W indicates that a process of writing data to the external memory MEM is being performed. The symbol r indicates that processing for reading data from the internal memory IMEM is being performed. A symbol w indicates that a process of writing data to the internal memory IMEM is being performed. The symbol CAL indicates that calculation processing is being performed.
また、図中の時間を示す矢印以外の実線の矢印は、計算処理の入力データIDATAの流れを示している。破線の矢印は、計算処理の結果である出力データODATAの流れを示している。また、太い矢印は、細い矢印に比べて低速でアクセスされることを示している。出力データODATAの符号の末尾の数字は、入力データIDATAの符号の末尾の数字に対応している。例えば、出力データODATA1は、入力データIDATA1を用いた計算処理の結果である。 In addition, solid arrows other than the arrow indicating the time in the figure indicate the flow of the input data IDATA for calculation processing. Dashed arrows indicate the flow of output data ODATA that is the result of the calculation process. A thick arrow indicates that access is performed at a lower speed than a thin arrow. The number at the end of the code of the output data ODATA corresponds to the number at the end of the code of the input data IDATA. For example, the output data ODATA1 is a result of calculation processing using the input data IDATA1.
外部メモリMEMは、計算処理に用いられる入力データIDATAを予め記憶している。例えば、マルチプロセッサシステムPSYSを使用するコンピュータは、マルチプロセッサシステムPSYSに計算処理を実施させる前に、入力データIDATAをマルチプロセッサシステムPSYSの外部メモリMEMに転送する。 The external memory MEM stores input data IDATA used for calculation processing in advance. For example, a computer using the multiprocessor system PSYS transfers the input data IDATA to the external memory MEM of the multiprocessor system PSYS before causing the multiprocessor system PSYS to perform calculation processing.
先ず、プロセッサPU1は、入力データIDATA1を外部メモリMEMから読み込み(図2(a))、読み込んだ入力データIDATA1を内部メモリIMEMに書き込む(図2(b))。そして、プロセッサPU2、PU3、PU4は、入力データIDATA1を内部メモリIMEMから読み込み(図2(c))、入力データIDATA1を用いた計算処理CALを実施する。 First, the processor PU1 reads the input data IDATA1 from the external memory MEM (FIG. 2 (a)), and writes the read input data IDATA1 to the internal memory IMEM (FIG. 2 (b)). Then, the processors PU2, PU3, and PU4 read the input data IDATA1 from the internal memory IMEM (FIG. 2 (c)), and perform a calculation process CAL using the input data IDATA1.
また、プロセッサPU1は、プロセッサPU2、PU3、PU4の計算処理CALの終了を待たずに、入力データIDATA1の次の入力データIDATA2を外部メモリMEMから読み込む(図2(d))。そして、プロセッサPU1は、読み込んだ入力データIDATA2を内部メモリIMEMに書き込む(図2(e))。このように、プロセッサPU1は、最初に、計算処理CALの2回分の入力データIDATA1、IDATA2を外部メモリMEMから内部メモリIMEMに転送する。 Further, the processor PU1 reads the input data IDATA2 next to the input data IDATA1 from the external memory MEM without waiting for the end of the calculation processing CAL of the processors PU2, PU3, PU4 (FIG. 2 (d)). Then, the processor PU1 writes the read input data IDATA2 in the internal memory IMEM (FIG. 2 (e)). In this way, the processor PU1 first transfers the input data IDATA1 and IDATA2 for two times of the calculation process CAL from the external memory MEM to the internal memory IMEM.
入力データIDATA1を用いた計算処理CALが終了したとき、プロセッサPU2、PU3、PU4は、計算結果である出力データODATA1を内部メモリIMEMに書き込む(図2(f))。そして、プロセッサPU2、PU3、PU4は、入力データIDATA2を内部メモリIMEMから読み込み(図2(g))、入力データIDATA2を用いた計算処理CALを実施する。 When the calculation process CAL using the input data IDATA1 is completed, the processors PU2, PU3, and PU4 write the output data ODATA1 as a calculation result to the internal memory IMEM (FIG. 2 (f)). Then, the processors PU2, PU3, and PU4 read the input data IDATA2 from the internal memory IMEM (FIG. 2 (g)), and perform a calculation process CAL using the input data IDATA2.
入力データIDATA2は、入力データIDATA1を用いた計算処理CALが終了する前に、プロセッサPU1により内部メモリIMEMに書き込まれている。これにより、プロセッサPU2、PU3、PU4は、出力データODATA1を内部メモリIMEMに書き込んだ直後に、入力データIDATA2を内部メモリIMEMから読み込むことができる。また、内部メモリIMEMは、外部メモリMEMに比べて、高速に動作する。したがって、この実施形態では、1回目の計算処理CALの終了から2回目の計算処理CALの開始までの間隔を短くできる。 The input data IDATA2 is written to the internal memory IMEM by the processor PU1 before the calculation process CAL using the input data IDATA1 is completed. Accordingly, the processors PU2, PU3, and PU4 can read the input data IDATA2 from the internal memory IMEM immediately after writing the output data ODATA1 to the internal memory IMEM. Further, the internal memory IMEM operates at a higher speed than the external memory MEM. Therefore, in this embodiment, the interval from the end of the first calculation process CAL to the start of the second calculation process CAL can be shortened.
出力データODATA1が内部メモリIMEMに書き込まれたとき、プロセッサPU1は、出力データODATA1を内部メモリIMEMから読み込み(図2(h))、読み込んだ出力データODATA1を外部メモリMEMに書き込む(図2(i))。そして、プロセッサPU1は、入力データIDATA2の次の入力データIDATA3を外部メモリMEMから読み込み(図2(j))、読み込んだ入力データIDATA3を内部メモリIMEMに書き込む(図2(k))。 When the output data ODATA1 is written to the internal memory IMEM, the processor PU1 reads the output data ODATA1 from the internal memory IMEM (FIG. 2 (h)), and writes the read output data ODATA1 to the external memory MEM (FIG. 2 (i) )). Then, the processor PU1 reads the input data IDATA3 next to the input data IDATA2 from the external memory MEM (FIG. 2 (j)), and writes the read input data IDATA3 to the internal memory IMEM (FIG. 2 (k)).
例えば、プロセッサPU1は、プロセッサPU2、PU3、PU4による出力データODATA2の内部メモリIMEMへの書き込みが終了する前に、入力データIDATA3を内部メモリIMEMに書き込む。すなわち、プロセッサPU1は、プロセッサPU2、PU3、PU4が入力データODATA3の読み出し動作を実施する前に、入力データIDATA3を内部メモリIMEMに書き込む。 For example, the processor PU1 writes the input data IDATA3 to the internal memory IMEM before the writing of the output data ODATA2 to the internal memory IMEM by the processors PU2, PU3, and PU4 is completed. That is, the processor PU1 writes the input data IDATA3 to the internal memory IMEM before the processors PU2, PU3, and PU4 perform the read operation of the input data ODATA3.
このように、例えば、プロセッサPU1は、自身では計算処理を行わず、入力データIDATAを外部メモリMEMから内部メモリIMEMに転送するデータ転送と、出力データODATAを内部メモリIMEMから外部メモリMEMに転送するデータ転送とを繰り返し実施する。 Thus, for example, the processor PU1 does not perform calculation processing by itself, but transfers data that transfers input data IDATA from the external memory MEM to the internal memory IMEM, and transfers output data ODATA from the internal memory IMEM to the external memory MEM. Repeat data transfer.
また、例えば、プロセッサPU2、PU3、PU4は、入力データIDATAが内部メモリIMEMに転送されるたびに、内部メモリIMEMに記憶された入力データIDATAを用いて、計算処理CALを実施する。プロセッサPU1が低速な外部メモリMEMと高速な内部メモリIMEMとの間のデータ転送を専門に実施するために、プロセッサPU2、PU3、PU4は、低速な外部メモリMEMにアクセスせずに計算処理CALを実施できる。 For example, each time the input data IDATA is transferred to the internal memory IMEM, the processors PU2, PU3, and PU4 perform the calculation process CAL using the input data IDATA stored in the internal memory IMEM. In order for the processor PU1 to specially perform data transfer between the low-speed external memory MEM and the high-speed internal memory IMEM, the processors PU2, PU3, and PU4 perform the calculation processing CAL without accessing the low-speed external memory MEM. Can be implemented.
図3は、図1に示したマルチプロセッサシステムPSYSの動作の別の例を示している。図中の矢印の意味は、上述した図2と同じである。図3に示したマルチプロセッサシステムPSYSの動作は、プロセッサPU1、PU2の動作を除いて、図2と同じである。 FIG. 3 shows another example of the operation of the multiprocessor system PSYS shown in FIG. The meanings of the arrows in the figure are the same as those in FIG. The operation of the multiprocessor system PSYS shown in FIG. 3 is the same as that of FIG. 2 except for the operations of the processors PU1 and PU2.
例えば、プロセッサPU2は、プロセッサPU1の代わりに、入力データIDATAを外部メモリMEMから内部メモリIMEMに転送する(図3(a、b))。したがって、プロセッサPU1は、プロセッサPU2が入力データIDATAを外部メモリMEMから内部メモリIMEMに転送している期間では、入力データIDATAの読み込みを実施せずに、出力データODATAを内部メモリIMEMから外部メモリMEMに転送する(図3(c、d))。 For example, the processor PU2 transfers the input data IDATA from the external memory MEM to the internal memory IMEM instead of the processor PU1 (FIG. 3 (a, b)). Therefore, the processor PU1 does not read the input data IDATA while the processor PU2 is transferring the input data IDATA from the external memory MEM to the internal memory IMEM, and does not read the input data IDATA from the internal memory IMEM to the external memory MEM. (Fig. 3 (c, d)).
例えば、マルチプロセッサシステムPSYSは、プロセッサPU1による外部メモリMEMへの出力データODATAの書き込み処理と、プロセッサPU2による外部メモリMEMからの入力データIDATAの読み込み処理とを並列に実施する。これにより、この実施形態では、各プロセッサPUの計算処理CALの時間が短いときにも、計算処理CALに必要な入力データIDATAを内部メモリIMEMに予め書き込むことができる。 For example, the multiprocessor system PSYS performs in parallel processing of writing output data ODATA to the external memory MEM by the processor PU1 and processing of reading input data IDATA from the external memory MEM by the processor PU2. Thereby, in this embodiment, even when the time of the calculation process CAL of each processor PU is short, the input data IDATA necessary for the calculation process CAL can be written in the internal memory IMEM in advance.
例えば、入力データIDATA12は、入力データIDATA11を用いた計算処理CALの出力データODATA11が内部メモリIMEMに全て書き込まれる前に、プロセッサPU2により内部メモリIMEMに書き込まれる。したがって、この実施形態では、計算処理CALが終了してから次の計算処理CALを開始するまでの間隔を短くできる。 For example, the input data IDATA12 is written to the internal memory IMEM by the processor PU2 before all the output data ODATA11 of the calculation process CAL using the input data IDATA11 is written to the internal memory IMEM. Therefore, in this embodiment, the interval from the end of the calculation process CAL to the start of the next calculation process CAL can be shortened.
図4は、図1に示したプロセッサPU2の処理が切り替わるときのマルチプロセッサシステムPSYSの動作の例を示している。なお、図4は、図2に示した動作から図3に示した動作に切り替わるときのプロセッサPU1、PU2、PU3、PU4の動作を示している。また、例えば、プロセッサPU1、PU2、PU3、PU4以外のプロセッサPUの動作は、プロセッサPU3と同じである。図中の二重線の矢印以外の矢印の意味は、上述した図2と同じである。なお、図中の二重線の矢印は、プロセッサPU2の処理が切り替わることを示している。また、括弧付きの符合PU2は、処理が切り替わった後のプロセッサPU2の動作を示している。 FIG. 4 shows an example of the operation of the multiprocessor system PSYS when the processing of the processor PU2 shown in FIG. 1 is switched. 4 shows operations of the processors PU1, PU2, PU3, and PU4 when the operation shown in FIG. 2 is switched to the operation shown in FIG. For example, the operations of the processors PU other than the processors PU1, PU2, PU3, and PU4 are the same as those of the processor PU3. The meanings of the arrows other than the double-lined arrow in the figure are the same as those in FIG. In addition, the double-lined arrow in a figure has shown that the process of processor PU2 switches. Also, a reference PU2 with parentheses indicates an operation of the processor PU2 after the process is switched.
プロセッサPU2、PU3、PU4は、例えば、出力データODATA2を内部メモリIMEMに書き込む(図4(a))。そして、プロセッサPU2、PU3、PU4は、出力データODATA2を内部メモリIMEMに書き込んだ後、入力データIDATA3を読み込むために内部メモリIMEMにアクセスする。このとき、入力データIDATA3が内部メモリIMEMに記憶されていないため、プロセッサPU2、PU3、PU4は、入力データIDATA3が内部メモリIMEMに書き込まれるまで待機する(図4(b))。 For example, the processors PU2, PU3, and PU4 write the output data ODATA2 to the internal memory IMEM (FIG. 4A). Then, the processors PU2, PU3, and PU4 write the output data ODATA2 to the internal memory IMEM, and then access the internal memory IMEM to read the input data IDATA3. At this time, since the input data IDATA3 is not stored in the internal memory IMEM, the processors PU2, PU3, and PU4 stand by until the input data IDATA3 is written in the internal memory IMEM (FIG. 4B).
プロセッサPU1は、入力データIDATA3を外部メモリMEMから内部メモリIMEMに転送する(図4(c、d))。入力データIDATA3が内部メモリIMEMに書き込まれたため、プロセッサPU2、PU3、PU4は、入力データIDATA3を内部メモリIMEMから読み込み(図4(e))、入力データIDATA3を用いた計算処理CALを実施する。そして、入力データIDATA3を用いた計算処理CALが終了したとき、プロセッサPU2、PU3、PU4は、出力データODATA3を内部メモリIMEMに書き込む(図4(f))。 The processor PU1 transfers the input data IDATA3 from the external memory MEM to the internal memory IMEM (FIG. 4 (c, d)). Since the input data IDATA3 is written in the internal memory IMEM, the processors PU2, PU3, and PU4 read the input data IDATA3 from the internal memory IMEM (FIG. 4 (e)), and perform a calculation process CAL using the input data IDATA3. When the calculation process CAL using the input data IDATA3 is completed, the processors PU2, PU3, and PU4 write the output data ODATA3 to the internal memory IMEM (FIG. 4 (f)).
なお、プロセッサPU1は、入力データIDATA3を外部メモリMEMから内部メモリIMEMに転送した後、出力データODATA2を内部メモリIMEMから外部メモリMEMに転送する(図4(g、h))。そして、プロセッサPU1は、入力データIDATA4を外部メモリMEMから内部メモリIMEMに転送する(図4(i、j))。さらに、プロセッサPU1は、出力データODATA3を内部メモリIMEMから外部メモリMEMに転送する(図4(k、l))。 The processor PU1 transfers the input data IDATA3 from the external memory MEM to the internal memory IMEM, and then transfers the output data ODATA2 from the internal memory IMEM to the external memory MEM (FIG. 4 (g, h)). Then, the processor PU1 transfers the input data IDATA4 from the external memory MEM to the internal memory IMEM (FIG. 4 (i, j)). Further, the processor PU1 transfers the output data ODATA3 from the internal memory IMEM to the external memory MEM (FIG. 4 (k, l)).
ここで、例えば、プロセッサPU2は、入力データIDATA3を読み込むときに待ち状態が発生したため、出力データODATA3を内部メモリIMEMに書き込んだ後に実施する処理を、計算処理CALからデータ転送に切り替える(図4の二重線の矢印)。例えば、プロセッサPU2は、プロセッサPU1が出力データODATA3を内部メモリIMEMから読み込んだ後、入力データIDATA5を外部メモリMEMから内部メモリIMEMに転送する(図4(m、n))。このように、内部メモリIMEMからの入力データIDATAの読み込みで待ち状態が発生したとき、プロセッサPU2の処理は、計算処理CALからデータ転送に切り替わる。 Here, for example, because the processor PU2 waits when reading the input data IDATA3, the processing to be performed after the output data ODATA3 is written to the internal memory IMEM is switched from the calculation processing CAL to the data transfer (FIG. 4). Double arrow). For example, the processor PU2 transfers the input data IDATA5 from the external memory MEM to the internal memory IMEM after the processor PU1 reads the output data ODATA3 from the internal memory IMEM (FIG. 4 (m, n)). As described above, when the waiting state occurs in reading the input data IDATA from the internal memory IMEM, the processing of the processor PU2 is switched from the calculation processing CAL to the data transfer.
プロセッサPU3、PU4は、入力データIDATA4が内部メモリIMEMに書き込まれた後に、入力データIDATA4を内部メモリIMEMから読み込み(図4(o))、入力データIDATA4を用いた計算処理CALを実施する。なお、入力データIDATA4は、プロセッサPU2の処理がデータ転送に切り替わる前に、プロセッサPU1により外部メモリMEMから内部メモリIMEMに転送される。 After the input data IDATA4 is written to the internal memory IMEM, the processors PU3 and PU4 read the input data IDATA4 from the internal memory IMEM (FIG. 4 (o)), and perform the calculation process CAL using the input data IDATA4. The input data IDATA4 is transferred from the external memory MEM to the internal memory IMEM by the processor PU1 before the processing of the processor PU2 is switched to data transfer.
入力データIDATA4を用いた計算処理CALが終了したとき、プロセッサPU3、PU4は、出力データODATA4を内部メモリIMEMに書き込む(図4(p))。このとき、入力データIDATA5は、プロセッサPU2により内部メモリIMEMに既に書き込まれている。このため、プロセッサPU3、PU4は、出力データODATA4を内部メモリIMEMに書き込んだ後、入力データIDATA5が内部メモリIMEMに書き込まれるのを待つ状態は発生せず、入力データIDATA5を内部メモリIMEMから読み込むことができる(図4(q))。これにより、プロセッサPU3、PU4は、計算処理CALを効率よく実施できる。 When the calculation process CAL using the input data IDATA4 is completed, the processors PU3 and PU4 write the output data ODATA4 to the internal memory IMEM (FIG. 4 (p)). At this time, the input data IDATA5 has already been written in the internal memory IMEM by the processor PU2. Therefore, the processors PU3 and PU4 read the input data IDATA5 from the internal memory IMEM without writing the output data ODATA4 to the internal memory IMEM and waiting for the input data IDATA5 to be written to the internal memory IMEM. (FIG. 4 (q)). Thereby, the processors PU3 and PU4 can efficiently perform the calculation process CAL.
なお、プロセッサPU2が入力データIDATA5を外部メモリMEMから内部メモリIMEMに転送した後の各プロセッサPUの動作は、例えば、上述した図3と同じである。例えば、プロセッサPU1は、プロセッサPU2が入力データIDATAを外部メモリMEMから内部メモリIMEMに転送している期間では、出力データODATAを内部メモリIMEMから外部メモリMEMに転送するデータ転送を繰り返し実施する。 The operation of each processor PU after the processor PU2 transfers the input data IDATA5 from the external memory MEM to the internal memory IMEM is, for example, the same as that in FIG. For example, the processor PU1 repeatedly performs data transfer for transferring the output data ODATA from the internal memory IMEM to the external memory MEM during the period in which the processor PU2 is transferring the input data IDATA from the external memory MEM to the internal memory IMEM.
図5は、図1に示したプロセッサPU2の処理が切り替わるときのマルチプロセッサシステムPSYSの動作の別の例を示している。なお、図5は、図3に示した動作から図2に示した動作に切り替わるときのプロセッサPU1、PU2、PU3、PU4の動作を示している。また、例えば、プロセッサPU1、PU2、PU3、PU4以外のプロセッサPUの動作は、プロセッサPU3と同じである。図中の矢印の意味は、上述した図4と同じである。また、括弧付きの符合PU2は、処理が切り替わった後のプロセッサPU2の動作を示している。 FIG. 5 shows another example of the operation of the multiprocessor system PSYS when the processing of the processor PU2 shown in FIG. 1 is switched. FIG. 5 shows operations of the processors PU1, PU2, PU3, and PU4 when the operation shown in FIG. 3 is switched to the operation shown in FIG. For example, the operations of the processors PU other than the processors PU1, PU2, PU3, and PU4 are the same as those of the processor PU3. The meanings of the arrows in the figure are the same as those in FIG. 4 described above. Also, a reference PU2 with parentheses indicates an operation of the processor PU2 after the process is switched.
プロセッサPU1は、例えば、出力データODATA20を外部メモリMEMに書き込む(図5(a))。そして、例えば、プロセッサPU1による出力データODATA20の外部メモリMEMへの書き込みが開始されたとき、プロセッサPU2は、入力データIDATA22を外部メモリMEMから内部メモリIMEMに転送する(図5(b、c))。また、例えば、プロセッサPU3、PU4は、出力データODATA21を内部メモリIMEMに書き込む(図5(d))。 For example, the processor PU1 writes the output data ODATA20 to the external memory MEM (FIG. 5A). For example, when the writing of the output data ODATA20 to the external memory MEM by the processor PU1 is started, the processor PU2 transfers the input data IDATA22 from the external memory MEM to the internal memory IMEM (FIG. 5 (b, c)). . Further, for example, the processors PU3 and PU4 write the output data ODATA21 to the internal memory IMEM (FIG. 5 (d)).
出力データODATA21が内部メモリIMEMに書き込まれたとき、プロセッサPU1は、出力データODATA21を内部メモリIMEMから外部メモリMEMに転送する(図5(e、f))。ここで、例えば、プロセッサPU1による出力データODATA20の外部メモリMEMへの書き込みが終了したとき、プロセッサPU3、PU4による出力データODATA21の内部メモリIMEMへの書き込みは、終了していない。このため、プロセッサPU1が出力データODATA21を内部メモリIMEMから読み込むとき、待ち状態が発生している(図5(g))。 When the output data ODATA21 is written in the internal memory IMEM, the processor PU1 transfers the output data ODATA21 from the internal memory IMEM to the external memory MEM (FIG. 5 (e, f)). Here, for example, when the writing of the output data ODATA20 to the external memory MEM by the processor PU1 is finished, the writing of the output data ODATA21 to the internal memory IMEM by the processors PU3 and PU4 is not finished. For this reason, when the processor PU1 reads the output data ODATA21 from the internal memory IMEM, a waiting state occurs (FIG. 5 (g)).
例えば、プロセッサPU1の待機時間(待ち状態の時間)が予め設定された閾値時間T1より長いとき、プロセッサPU2の処理は、データ転送から計算処理CALに切り替わる(図5の二重線の矢印)。すなわち、計算処理CALの時間がデータ転送に必要な時間に対して相対的に長いとき、プロセッサPU2は、計算処理CALを実施する。また、プロセッサPU1は、プロセッサPU2の処理がデータ転送から計算処理CALに切り替わるため、入力データIDATAを外部メモリMEMから内部メモリIMEMに転送するデータ転送を再開する。例えば、プロセッサPU1は、出力データODATA21を内部メモリIMEMから外部メモリMEMに転送した後、入力データIDATA23を外部メモリMEMから内部メモリIMEMに転送する(図5(h、i))。 For example, when the waiting time (waiting time) of the processor PU1 is longer than a preset threshold time T1, the processing of the processor PU2 switches from data transfer to calculation processing CAL (double-line arrow in FIG. 5). That is, when the time of the calculation process CAL is relatively long with respect to the time required for data transfer, the processor PU2 performs the calculation process CAL. Further, the processor PU1 resumes data transfer for transferring the input data IDATA from the external memory MEM to the internal memory IMEM because the processing of the processor PU2 is switched from data transfer to calculation processing CAL. For example, the processor PU1 transfers the output data ODATA21 from the internal memory IMEM to the external memory MEM, and then transfers the input data IDATA23 from the external memory MEM to the internal memory IMEM (FIG. 5 (h, i)).
プロセッサPU3、PU4は、入力データIDATA22を内部メモリIMEMから読み込み(図5(j))、入力データIDATA22を用いた計算処理CALの結果である出力データODATA22を内部メモリIMEMに書き込む(図5(k))。そして、プロセッサPU2、PU3、PU4は、入力データIDATA23が内部メモリIMEMに書き込まれた後に、入力データIDATA23を内部メモリIMEMから読み込み(図5(l))、入力データIDATA23を用いた計算処理CALを実施する。 The processors PU3 and PU4 read the input data IDATA22 from the internal memory IMEM (FIG. 5 (j)), and write the output data ODATA22 as a result of the calculation process CAL using the input data IDATA22 to the internal memory IMEM (FIG. 5 (k)). )). Then, after the input data IDATA23 is written to the internal memory IMEM, the processors PU2, PU3, and PU4 read the input data IDATA23 from the internal memory IMEM (FIG. 5 (l)), and perform the calculation process CAL using the input data IDATA23. carry out.
このように、プロセッサPU1の待機時間が予め設定された閾値時間T1より長いとき、計算処理CALを実施するプロセッサPUにプロセッサPU2が加わるため、マルチプロセッサシステムPSYSは、計算処理CALを効率よく実施できる。すなわち、この実施形態では、計算処理CALの時間がデータ転送に必要な時間に対して相対的に長いとき、計算処理CALを実施するプロセッサPUの数が減ることを防止できる。このため、マルチプロセッサシステムPSYSは、計算処理CALを効率よく実施できる。 Thus, when the standby time of the processor PU1 is longer than the preset threshold time T1, the processor PU2 is added to the processor PU that performs the calculation process CAL. Therefore, the multiprocessor system PSYS can efficiently execute the calculation process CAL. . That is, in this embodiment, when the time of the calculation process CAL is relatively long with respect to the time required for data transfer, it is possible to prevent the number of processors PU that perform the calculation process CAL from decreasing. For this reason, the multiprocessor system PSYS can efficiently perform the calculation process CAL.
出力データODATA22が内部メモリIMEMに書き込まれたとき、プロセッサPU1は、出力データODATA22を内部メモリIMEMから外部メモリMEMに転送する(図5(m、n))。そして、例えば、プロセッサPU1は、入力データIDATAを外部メモリMEMから内部メモリIMEMに転送するデータ転送と、出力データODATAを内部メモリIMEMから外部メモリMEMに転送するデータ転送とを繰り返し実施する。また、例えば、プロセッサPU2、PU3、PU4は、入力データIDATAが内部メモリIMEMに転送されるたびに、計算処理CALを実施する。 When the output data ODATA22 is written in the internal memory IMEM, the processor PU1 transfers the output data ODATA22 from the internal memory IMEM to the external memory MEM (FIG. 5 (m, n)). For example, the processor PU1 repeatedly performs data transfer for transferring the input data IDATA from the external memory MEM to the internal memory IMEM and data transfer for transferring the output data ODATA from the internal memory IMEM to the external memory MEM. For example, the processors PU2, PU3, and PU4 perform the calculation process CAL every time the input data IDATA is transferred to the internal memory IMEM.
図6は、図1に示したプロセッサPU1の動作の例を示している。処理S100−S126は、例えば、外部メモリMEMに記憶されたプログラムに基づいて実施される。なお、処理S100の前に、入力データIDATAは、外部メモリMEMに記憶されている。また、例えば、最後の入力データIDATAを読み込んだプロセッサPU(PU1あるいはPU2)は、最後の入力データIDATAを読み込んだことを示す最終フラグを外部メモリMEMに書き込む。なお、最終フラグ以外のフラグ(IDATA転送許可フラグ等)は、例えば、内部メモリIMEMに記憶される。例えば、各フラグの初期値は、“0”である。 FIG. 6 shows an example of the operation of the processor PU1 shown in FIG. Processes S100 to S126 are performed based on a program stored in the external memory MEM, for example. Prior to the processing S100, the input data IDATA is stored in the external memory MEM. Further, for example, the processor PU (PU1 or PU2) that has read the last input data IDATA writes a final flag indicating that the last input data IDATA has been read into the external memory MEM. Note that flags other than the final flag (such as IDATA transfer permission flag) are stored in the internal memory IMEM, for example. For example, the initial value of each flag is “0”.
処理S100では、プロセッサPU1は、最初の入力データIDATAを外部メモリMEMから内部メモリIMEMに転送する。処理S102では、プロセッサPU1は、最後の入力データIDATAが外部メモリMEMから内部メモリIMEMに転送されたか否かを判定する。例えば、プロセッサPU1は、最後の入力データIDATAを読み込んだことを示す最終フラグが外部メモリMEMに書き込まれているか否かを判定する。 In process S100, the processor PU1 transfers the first input data IDATA from the external memory MEM to the internal memory IMEM. In process S102, the processor PU1 determines whether or not the last input data IDATA has been transferred from the external memory MEM to the internal memory IMEM. For example, the processor PU1 determines whether or not a final flag indicating that the last input data IDATA has been read is written in the external memory MEM.
最後の入力データIDATAが外部メモリMEMから内部メモリIMEMに転送されているとき(処理S102のYes)、プロセッサPU1の動作は、処理S120に移る。一方、最後の入力データIDATAが外部メモリMEMから内部メモリIMEMに転送されていないとき(処理S102のNo)、プロセッサPU1の動作は、処理S104に移る。 When the last input data IDATA is transferred from the external memory MEM to the internal memory IMEM (Yes in process S102), the operation of the processor PU1 moves to process S120. On the other hand, when the last input data IDATA has not been transferred from the external memory MEM to the internal memory IMEM (No in process S102), the operation of the processor PU1 proceeds to process S104.
処理S104では、プロセッサPU1は、外部メモリMEMおよび内部メモリIMEM間のデータ転送をプロセッサPU1のみが実施しているか否かを判定する。すなわち、プロセッサPU1は、プロセッサPU2が入力データIDATAを外部メモリMEMから内部メモリIMEMに転送するか否かを判定する。例えば、プロセッサPU1は、プロセッサPU2が実施する処理を示すPU2データ転送フラグを参照することにより、プロセッサPU2が入力データIDATAを外部メモリMEMから内部メモリIMEMに転送するか否かを判定する。 In process S104, the processor PU1 determines whether only the processor PU1 is performing data transfer between the external memory MEM and the internal memory IMEM. That is, the processor PU1 determines whether or not the processor PU2 transfers the input data IDATA from the external memory MEM to the internal memory IMEM. For example, the processor PU1 determines whether or not the processor PU2 transfers the input data IDATA from the external memory MEM to the internal memory IMEM by referring to a PU2 data transfer flag indicating processing executed by the processor PU2.
ここで、例えば、プロセッサPU2の処理が入力データIDATAを外部メモリMEMから内部メモリIMEMに転送するデータ転送のとき、PU2データ転送フラグは、“1”にセット(後述する図7の処理S218)される。また、例えば、プロセッサPU2の処理が計算処理のとき、PU2データ転送フラグは、“0”にクリア(図7の処理S228)される。 Here, for example, when the processing of the processor PU2 is data transfer for transferring the input data IDATA from the external memory MEM to the internal memory IMEM, the PU2 data transfer flag is set to “1” (processing S218 in FIG. 7 described later). The Further, for example, when the process of the processor PU2 is a calculation process, the PU2 data transfer flag is cleared to “0” (process S228 in FIG. 7).
外部メモリMEMおよび内部メモリIMEM間のデータ転送をプロセッサPU1のみが実施しているとき(処理S104のYes)、プロセッサPU1の動作は、処理S106に移る。すなわち、プロセッサPU2の処理が計算処理のとき、プロセッサPU1の動作は、処理S106に移る。一方、プロセッサPU2の処理が入力データIDATAを外部メモリMEMから内部メモリIMEMに転送するデータ転送のとき(処理S104のNo)、プロセッサPU1の動作は、処理S108に移る。 When only the processor PU1 performs data transfer between the external memory MEM and the internal memory IMEM (Yes in process S104), the operation of the processor PU1 proceeds to process S106. That is, when the process of the processor PU2 is a calculation process, the operation of the processor PU1 moves to process S106. On the other hand, when the process of the processor PU2 is a data transfer for transferring the input data IDATA from the external memory MEM to the internal memory IMEM (No in process S104), the operation of the processor PU1 proceeds to process S108.
処理S106では、プロセッサPU1は、IDATA転送許可フラグを“0”にクリアし、入力データIDATAを外部メモリMEMから内部メモリIMEMに転送する。ここで、IDATA転送許可フラグは、プロセッサPU2が入力データIDATAを外部メモリMEMから読み込むタイミングを判定するために、プロセッサPU2に参照されるフラグである。例えば、IDATA転送許可フラグは、後述する図7の処理S222において、プロセッサPU2に参照される。 In the process S106, the processor PU1 clears the IDATA transfer permission flag to “0”, and transfers the input data IDATA from the external memory MEM to the internal memory IMEM. Here, the IDATA transfer permission flag is a flag that is referred to by the processor PU2 in order to determine when the processor PU2 reads the input data IDATA from the external memory MEM. For example, the IDATA transfer permission flag is referred to by the processor PU2 in step S222 in FIG.
処理S108では、プロセッサPU1は、評価値EV1を“0”にする。ここで、評価値EV1は、例えば、プロセッサPU2に参照される情報であり、内部メモリIMEMに記憶される。例えば、評価値EV1は、プロセッサPU2がデータ転送を継続するか否かを判定するために、図7の処理S226において、プロセッサPU2に参照される。 In process S108, the processor PU1 sets the evaluation value EV1 to “0”. Here, the evaluation value EV1 is information referred to by the processor PU2, for example, and is stored in the internal memory IMEM. For example, the evaluation value EV1 is referred to by the processor PU2 in the process S226 of FIG. 7 in order to determine whether or not the processor PU2 continues the data transfer.
処理S110では、プロセッサPU1は、出力データODATAを内部メモリIMEMから読み込む。処理S112では、プロセッサPU1は、出力データODATAの読み込みが成功したか否かを判定する。例えば、プロセッサPU1は、読み込み対象の出力データODATAが内部メモリIMEMに書き込まれる前の期間では、出力データODATAの読み込みを失敗する。 In process S110, the processor PU1 reads the output data ODATA from the internal memory IMEM. In process S112, the processor PU1 determines whether or not the output data ODATA has been successfully read. For example, the processor PU1 fails to read the output data ODATA in a period before the output data ODATA to be read is written in the internal memory IMEM.
出力データODATAの読み込みが失敗したとき(処理S112のNo)、プロセッサPU1は、処理S114において、評価値EV1を“1”増加する。そして、プロセッサPU1の動作は、処理S110に移る。このように、プロセッサPU1は、出力データODATAの読み込みが成功するまで、処理S110、S112、S114の動作を繰り返し実施する。 When reading of the output data ODATA has failed (No in step S112), the processor PU1 increases the evaluation value EV1 by “1” in step S114. Then, the operation of the processor PU1 proceeds to process S110. As described above, the processor PU1 repeatedly performs the operations of steps S110, S112, and S114 until the output data ODATA is successfully read.
一方、出力データODATAの読み込みが成功したとき(処理S112のYes)、プロセッサPU1は、処理S116において、評価値EV1を“1”減算し、IDATA転送許可フラグを“1”にセットする。なお、プロセッサPU1は、処理S116でIDATA転送許可フラグを“1”にセットする代わりに、処理S108でIDATA転送許可フラグを“1”にセットしてもよい。 On the other hand, when the output data ODATA has been successfully read (Yes in step S112), the processor PU1 subtracts “1” from the evaluation value EV1 and sets the IDATA transfer permission flag to “1” in step S116. The processor PU1 may set the IDATA transfer permission flag to “1” in step S108 instead of setting the IDATA transfer permission flag to “1” in step S116.
処理S118では、プロセッサPU1は、出力データODATAを外部メモリMEMに書き込む。そして、プロセッサPU1の動作は、処理S102に戻る。このように、プロセッサPU1は、最後の入力データIDATAが外部メモリMEMから内部メモリIMEMに転送されるまで、処理S102−S118の動作を繰り返し実施する。 In process S118, the processor PU1 writes the output data ODATA to the external memory MEM. Then, the operation of the processor PU1 returns to the process S102. In this way, the processor PU1 repeatedly performs the operations of steps S102 to S118 until the last input data IDATA is transferred from the external memory MEM to the internal memory IMEM.
なお、最後の入力データIDATAが外部メモリMEMから内部メモリIMEMに転送されたとき(処理S102のYes)、プロセッサPU1は、処理S120において、出力データODATAを内部メモリIMEMから読み込む。 When the last input data IDATA is transferred from the external memory MEM to the internal memory IMEM (Yes in process S102), the processor PU1 reads the output data ODATA from the internal memory IMEM in process S120.
処理S122では、プロセッサPU1は、出力データODATAの読み込みが成功したか否かを判定する。出力データODATAの読み込みが失敗したとき(処理S122のNo)、プロセッサPU1の動作は、処理S120に戻る。一方、出力データODATAの読み込みが成功したとき(処理S122のYes)、プロセッサPU1は、処理S124において、計算処理の終了を示すデータ(例えば、“1”)に終了フラグをセットする。 In process S122, the processor PU1 determines whether or not the output data ODATA has been successfully read. When reading of the output data ODATA has failed (No in process S122), the operation of the processor PU1 returns to process S120. On the other hand, when the output data ODATA has been successfully read (Yes in process S122), the processor PU1 sets an end flag in data indicating the end of the calculation process (for example, “1”) in process S124.
ここで、終了フラグは、例えば、外部メモリMEMに記憶された入力データIDATAを用いた計算処理が終了したか否かを判定するために、計算処理を実施するプロセッサPU(PU2、PU3、PU4等)に参照されるフラグである。例えば、プロセッサPU1は、計算処理を実施するプロセッサPUの入力データIDATAとして、終了フラグを内部メモリIMEMに書き込む。これにより、例えば、終了フラグは、プロセッサPU2、PU3等に参照される(後述する図7の処理S212、図8の処理S304)。 Here, the end flag is, for example, a processor PU (PU2, PU3, PU4, etc.) that performs the calculation process in order to determine whether the calculation process using the input data IDATA stored in the external memory MEM has ended. ) Is a flag referred to. For example, the processor PU1 writes an end flag in the internal memory IMEM as the input data IDATA of the processor PU that performs the calculation process. Thereby, for example, the end flag is referred to by the processors PU2, PU3, etc. (processing S212 in FIG. 7 and processing S304 in FIG. 8 described later).
処理S126では、プロセッサPU1は、出力データODATAを外部メモリMEMに書き込む。これにより、プロセッサPU1の処理は、終了する。なお、プロセッサPU1の動作は、この例に限定されない。プロセッサPU1は、プロセッサPU2の処理に応じて、入力データIDATAを外部メモリMEMから内部メモリIMEMに転送するデータ転送を実施するか否かを切り替えればよい。 In process S126, the processor PU1 writes the output data ODATA to the external memory MEM. Thereby, the processing of the processor PU1 ends. The operation of the processor PU1 is not limited to this example. The processor PU1 may switch whether or not to perform data transfer for transferring the input data IDATA from the external memory MEM to the internal memory IMEM in accordance with the processing of the processor PU2.
図7は、図1に示したプロセッサPU2の動作の例を示している。処理S200−S228は、例えば、外部メモリMEMに記憶されたプログラムに基づいて実施される。例えば、PU2データ転送フラグは、内部メモリIMEMに記憶される。なお、PU2データ転送フラグの初期値は、例えば、“0”である。 FIG. 7 shows an example of the operation of the processor PU2 shown in FIG. Processes S200 to S228 are performed based on, for example, a program stored in the external memory MEM. For example, the PU2 data transfer flag is stored in the internal memory IMEM. Note that the initial value of the PU2 data transfer flag is, for example, “0”.
処理S200では、プロセッサPU2は、最初の入力データIDATAを内部メモリIMEMから読み込み、読み込んだ入力データIDATAを用いて、計算処理を実施する。そして、プロセッサPU2は、計算処理の結果である出力データODATAを内部メモリIMEMに書き込む。 In the process S200, the processor PU2 reads the first input data IDATA from the internal memory IMEM, and performs a calculation process using the read input data IDATA. Then, the processor PU2 writes the output data ODATA that is the result of the calculation process to the internal memory IMEM.
処理S202では、プロセッサPU2は、評価値EV2を“0”にする。ここで、評価値EV2は、例えば、入力データIDATAの読み込みが失敗したか否かを判定するための情報であり、内部メモリIMEMに記憶される。処理S204では、プロセッサPU2は、入力データIDATAを内部メモリIMEMから読み込む。 In the process S202, the processor PU2 sets the evaluation value EV2 to “0”. Here, the evaluation value EV2 is information for determining whether reading of the input data IDATA has failed, for example, and is stored in the internal memory IMEM. In process S204, the processor PU2 reads the input data IDATA from the internal memory IMEM.
処理S206では、プロセッサPU2は、入力データIDATAの読み込みが成功したか否かを判定する。例えば、プロセッサPU2は、読み込み対象の入力データIDATAが内部メモリIMEMに書き込まれる前の期間では、入力データIDATAの読み込みを失敗する。 In process S206, the processor PU2 determines whether or not the input data IDATA has been successfully read. For example, the processor PU2 fails to read the input data IDATA in a period before the input data IDATA to be read is written in the internal memory IMEM.
入力データIDATAの読み込みが失敗したとき(処理S206のNo)、プロセッサPU2は、処理S208において、評価値EV2を“1”増加する。そして、プロセッサPU2の動作は、処理S204に移る。このように、プロセッサPU2は、入力データIDATAの読み込みが成功するまで、処理S204、S206、S208の動作を繰り返し実施する。一方、入力データIDATAの読み込みが成功したとき(処理S206のYes)、プロセッサPU2は、処理S210において、評価値EV2を“1”減算する。 When reading of the input data IDATA has failed (No in process S206), the processor PU2 increases the evaluation value EV2 by “1” in process S208. Then, the operation of the processor PU2 proceeds to process S204. As described above, the processor PU2 repeatedly performs the operations of steps S204, S206, and S208 until the input data IDATA is successfully read. On the other hand, when the input data IDATA has been successfully read (Yes in step S206), the processor PU2 subtracts “1” from the evaluation value EV2 in step S210.
処理S212では、プロセッサPU2は、読み込んだ入力データIDATAが終了フラグか否かを判定する。終了フラグは、図6で説明したように、全ての計算処理が終了したことを示している。したがって、読み込んだ入力データIDATAが終了フラグのとき(処理S212のYes)、プロセッサPU2の処理は、終了する。一方、読み込んだ入力データIDATAが終了フラグでないとき(処理S212のNo)、プロセッサPU2の動作は、処理S214に移る。 In the process S212, the processor PU2 determines whether or not the read input data IDATA is an end flag. The end flag indicates that all the calculation processes have been completed as described with reference to FIG. Therefore, when the read input data IDATA is an end flag (Yes in step S212), the processing of the processor PU2 ends. On the other hand, when the read input data IDATA is not the end flag (No in process S212), the operation of the processor PU2 proceeds to process S214.
処理S214では、プロセッサPU2は、読み込んだ入力データIDATAを用いて、計算処理を実施する。そして、プロセッサPU2は、計算処理の結果である出力データODATAを内部メモリIMEMに書き込む。処理S216では、プロセッサPU2は、評価値EV2が“0”以上か否かを判定する。すなわち、プロセッサPU2は、入力データIDATAの読み込みに1回以上失敗したか否かを判定する。 In the process S214, the processor PU2 performs a calculation process using the read input data IDATA. Then, the processor PU2 writes the output data ODATA that is the result of the calculation process to the internal memory IMEM. In the process S216, the processor PU2 determines whether or not the evaluation value EV2 is “0” or more. That is, the processor PU2 determines whether or not reading of the input data IDATA has failed at least once.
なお、処理S216の判定の基準として、“0”以上の値が予め設定されてもよい。このときの処理S216では、例えば、プロセッサPU2は、評価値EV2が予め設定された値以上か否かを判定する。すなわち、プロセッサPU2は、入力データIDATAの読み込みに予め設定された回数以上失敗したか否かを判定してもよい。 Note that a value equal to or greater than “0” may be set in advance as the determination criterion in step S216. In the process S216 at this time, for example, the processor PU2 determines whether or not the evaluation value EV2 is equal to or greater than a preset value. That is, the processor PU2 may determine whether or not the reading of the input data IDATA has failed for a preset number of times.
入力データIDATAの読み込みに1回も失敗していないとき(処理S216のNo)、プロセッサPU2の動作は、処理S202に戻る。一方、入力データIDATAの読み込みに1回以上失敗したとき(処理S216のYes)、プロセッサPU2の動作は、処理S218に移る。このように、プロセッサPU2は、入力データIDATAを読み込むときに待ち状態が発生しない期間では、計算処理(処理S202−S216の動作)を繰り返し実施する。すなわち、プロセッサPU2は、入力データIDATAを読み込むときに待ち状態が発生するまで、計算処理(処理S202−S216の動作)を繰り返し実施する。 When reading of the input data IDATA has never failed (No in process S216), the operation of the processor PU2 returns to process S202. On the other hand, when the reading of the input data IDATA has failed one or more times (Yes in process S216), the operation of the processor PU2 proceeds to process S218. As described above, the processor PU2 repeatedly performs the calculation process (operations in steps S202 to S216) in a period in which no waiting state occurs when the input data IDATA is read. That is, the processor PU2 repeatedly performs calculation processing (operations S202 to S216) until a waiting state occurs when the input data IDATA is read.
処理S218では、プロセッサPU2は、PU2データ転送フラグを“1”にセットする。これにより、プロセッサPU1は、図6に示した処理S104において、プロセッサPU2の処理が計算処理からデータ転送(入力データIDATAを外部メモリMEMから内部メモリIMEMに転送するデータ転送)に切り替わったことを検出できる。 In the process S218, the processor PU2 sets the PU2 data transfer flag to “1”. Thereby, the processor PU1 detects that the process of the processor PU2 has switched from the calculation process to the data transfer (data transfer for transferring the input data IDATA from the external memory MEM to the internal memory IMEM) in the process S104 shown in FIG. it can.
処理S220では、プロセッサPU2は、最後の入力データIDATAが外部メモリMEMから内部メモリIMEMに転送されたか否かを判定する。例えば、プロセッサPU2は、最後の入力データIDATAを読み込んだことを示す最終フラグが外部メモリMEMに書き込まれているか否かを判定する。 In process S220, the processor PU2 determines whether or not the last input data IDATA has been transferred from the external memory MEM to the internal memory IMEM. For example, the processor PU2 determines whether or not a final flag indicating that the last input data IDATA has been read is written in the external memory MEM.
最後の入力データIDATAが外部メモリMEMから内部メモリIMEMに転送されているとき(処理S220のYes)、プロセッサPU2の処理は、終了する。なお、最後の入力データIDATAが外部メモリMEMから内部メモリIMEMに転送されているとき、プロセッサPU2の動作は、処理S202に移ってもよい。一方、最後の入力データIDATAが外部メモリMEMから内部メモリIMEMに転送されていないとき(処理S220のNo)、プロセッサPU2の動作は、処理S222に移る。 When the last input data IDATA is transferred from the external memory MEM to the internal memory IMEM (Yes in process S220), the process of the processor PU2 ends. Note that when the last input data IDATA is transferred from the external memory MEM to the internal memory IMEM, the operation of the processor PU2 may move to step S202. On the other hand, when the last input data IDATA has not been transferred from the external memory MEM to the internal memory IMEM (No in process S220), the operation of the processor PU2 proceeds to process S222.
処理S222では、プロセッサPU2は、外部メモリMEMから内部メモリIMEMへの入力データIDATAの転送が許可されているか否かを判定する。例えば、IDATA転送許可フラグが“0”のとき、プロセッサPU2は、入力データIDATAの転送が許可されていないと判定する。また、例えば、IDATA転送許可フラグが“1”のとき、プロセッサPU2は、入力データIDATAの転送が許可されていると判定する。 In process S222, the processor PU2 determines whether or not transfer of the input data IDATA from the external memory MEM to the internal memory IMEM is permitted. For example, when the IDATA transfer permission flag is “0”, the processor PU2 determines that the transfer of the input data IDATA is not permitted. For example, when the IDATA transfer permission flag is “1”, the processor PU2 determines that the transfer of the input data IDATA is permitted.
外部メモリMEMから内部メモリIMEMへの入力データIDATAの転送が許可されていないとき(処理S222のNo)、プロセッサPU2の動作は、処理S222に戻る。すなわち、プロセッサPU2は、入力データIDATAの転送が許可されるまで待機する。これにより、この実施形態では、プロセッサPU3等の計算処理に対して、外部メモリMEMから内部メモリIMEMへの入力データIDATAの転送が先行し過ぎることを防止できる。 When transfer of the input data IDATA from the external memory MEM to the internal memory IMEM is not permitted (No in process S222), the operation of the processor PU2 returns to process S222. That is, the processor PU2 waits until transfer of the input data IDATA is permitted. Thus, in this embodiment, it is possible to prevent the transfer of the input data IDATA from the external memory MEM to the internal memory IMEM from being excessively preceded by the calculation process of the processor PU3 and the like.
一方、外部メモリMEMから内部メモリIMEMへの入力データIDATAの転送が許可されているとき(処理S222のYes)、プロセッサPU2の動作は、処理S224に移る。処理S224では、プロセッサPU2は、IDATA転送許可フラグを“0”にクリアし、入力データIDATAを外部メモリMEMから内部メモリIMEMに転送する。 On the other hand, when transfer of the input data IDATA from the external memory MEM to the internal memory IMEM is permitted (Yes in process S222), the operation of the processor PU2 proceeds to process S224. In the process S224, the processor PU2 clears the IDATA transfer permission flag to “0”, and transfers the input data IDATA from the external memory MEM to the internal memory IMEM.
処理S226では、プロセッサPU2は、評価値EV1が閾値TH以上か否かを判定する。ここで、閾値THは、例えば、アプリケーションの実行時にユーザ等により設定される“0”以上の値である。例えば、閾値THは、内部メモリIMEMに記憶される。すなわち、プロセッサPU2は、プロセッサPU1による出力データODATAの読み込みが閾値THの回数以上失敗したか否かを判定する。 In the process S226, the processor PU2 determines whether or not the evaluation value EV1 is greater than or equal to the threshold value TH. Here, the threshold value TH is, for example, a value equal to or greater than “0” set by the user or the like when executing the application. For example, the threshold value TH is stored in the internal memory IMEM. That is, the processor PU2 determines whether or not reading of the output data ODATA by the processor PU1 has failed more than the threshold TH.
出力データODATAの読み込みの失敗回数が閾値THより少ないとき(処理S226のNo)、プロセッサPU2の動作は、処理S220に戻る。すなわち、プロセッサPU1の待機時間(上述した図5(g)等)が予め設定された閾値時間より短いとき、例えば、プロセッサPU2は、外部メモリMEMから内部メモリIMEMへの入力データIDATAの転送を継続して実施する。 When the number of failures to read the output data ODATA is less than the threshold value TH (No in process S226), the operation of the processor PU2 returns to process S220. That is, when the standby time of the processor PU1 (the above-described FIG. 5G, etc.) is shorter than a preset threshold time, for example, the processor PU2 continues to transfer the input data IDATA from the external memory MEM to the internal memory IMEM. And implement.
一方、出力データODATAの読み込みの失敗回数が閾値TH以上のとき(処理S226のYes)、プロセッサPU2は、処理S228において、PU2データ転送フラグを“0”にクリアする。そして、プロセッサPU2の動作は、処理S202の処理に戻る。すなわち、プロセッサPU1の待機時間が予め設定された閾値時間より長いとき、例えば、プロセッサPU2の処理は、データ転送から計算処理に切り替わる。 On the other hand, when the number of failures to read the output data ODATA is equal to or greater than the threshold value TH (Yes in process S226), the processor PU2 clears the PU2 data transfer flag to “0” in process S228. Then, the operation of the processor PU2 returns to the process of process S202. That is, when the standby time of the processor PU1 is longer than a preset threshold time, for example, the processing of the processor PU2 is switched from data transfer to calculation processing.
このように、計算処理の時間がデータ転送に必要な時間に対して相対的に長いとき、プロセッサPU2は、計算処理を実施する。そして、計算処理の時間がデータ転送に必要な時間に対して相対的に短いとき、プロセッサPU2は、外部メモリMEMおよび内部メモリIMEM間のデータ転送を実施する。これにより、マルチプロセッサシステムPSYSは、計算処理を効率よく実施できる。なお、プロセッサPU2の動作は、この例に限定されない。プロセッサPU2は、プロセッサPU1のデータ転送の時間と計算処理の時間とに応じて、外部メモリMEMおよび内部メモリIMEM間のデータ転送と計算処理とを切り替えて実施できればよい。 Thus, when the time for the calculation process is relatively long with respect to the time required for data transfer, the processor PU2 performs the calculation process. When the calculation processing time is relatively short with respect to the time required for data transfer, the processor PU2 performs data transfer between the external memory MEM and the internal memory IMEM. Thereby, the multiprocessor system PSYS can efficiently perform the calculation process. The operation of the processor PU2 is not limited to this example. The processor PU2 only needs to be able to switch between data transfer and calculation processing between the external memory MEM and the internal memory IMEM in accordance with the data transfer time and calculation processing time of the processor PU1.
図8は、図1に示したプロセッサPU1、PU2以外のプロセッサPUの動作の例を示している。処理S300−S306は、例えば、外部メモリMEMに記憶されたプログラムに基づいて実施される。なお、プロセッサPU1、PU2以外のプロセッサPUの動作は、プロセッサPU3と同じである。このため、プロセッサPU3の動作について説明する。 FIG. 8 shows an example of the operations of the processors PU other than the processors PU1 and PU2 shown in FIG. The processes S300 to S306 are performed based on a program stored in the external memory MEM, for example. The operations of the processors PU other than the processors PU1 and PU2 are the same as those of the processor PU3. Therefore, the operation of the processor PU3 will be described.
処理S300では、プロセッサPU3は、入力データIDATAを内部メモリIMEMから読み込む。処理S302では、プロセッサPU3は、入力データIDATAの読み込みが成功したか否かを判定する。入力データIDATAの読み込みが失敗したとき(処理S302のNo)、プロセッサPU3の動作は、処理S300に戻る。すなわち、プロセッサPU3は、入力データIDATAの読み込みが成功するまで、待機する。 In process S300, the processor PU3 reads input data IDATA from the internal memory IMEM. In process S302, the processor PU3 determines whether or not the input data IDATA has been successfully read. When reading of the input data IDATA has failed (No in step S302), the operation of the processor PU3 returns to step S300. That is, the processor PU3 waits until the input data IDATA is successfully read.
一方、入力データIDATAの読み込みが成功したとき(処理S302のYes)、プロセッサPU3は、処理S304において、読み込んだ入力データIDATAが終了フラグか否かを判定する。読み込んだ入力データIDATAが終了フラグのとき(処理S304のYes)、プロセッサPU3の処理は、終了する。一方、読み込んだ入力データIDATAが終了フラグでないとき(処理S304のNo)、プロセッサPU3の動作は、処理S306に移る。 On the other hand, when the input data IDATA has been successfully read (Yes in process S302), the processor PU3 determines whether or not the read input data IDATA is an end flag in process S304. When the read input data IDATA is an end flag (Yes in process S304), the process of the processor PU3 ends. On the other hand, when the read input data IDATA is not an end flag (No in process S304), the operation of the processor PU3 proceeds to process S306.
処理S306では、プロセッサPU3は、読み込んだ入力データIDATAを用いて、計算処理を実施し、計算処理の結果である出力データODATAを内部メモリIMEMに書き込む。そして、プロセッサPU3の動作は、処理S300に戻る。このように、例えば、プロセッサPU3は、終了フラグを読み込むまで、計算処理を繰り返し実施する。 In the process S306, the processor PU3 performs a calculation process using the read input data IDATA, and writes the output data ODATA as a result of the calculation process in the internal memory IMEM. Then, the operation of the processor PU3 returns to the process S300. Thus, for example, the processor PU3 repeatedly performs the calculation process until the end flag is read.
以上、この実施形態では、プロセッサPU1は、外部メモリMEMおよび内部メモリIMEM間のデータ転送を実施し、プロセッサPU2は、計算処理の時間に応じて、計算処理とデータ転送とを切り替えて実施する。例えば、計算処理の時間がデータ転送に必要な時間に対して相対的に長いとき、プロセッサPU2は、計算処理を実施する。そして、計算処理の時間がデータ転送に必要な時間に対して相対的に短いとき、プロセッサPU2は、外部メモリMEMおよび内部メモリIMEM間のデータ転送を実施する。また、プロセッサPU1、PU2以外のプロセッサは、低速な外部メモリMEMにアクセスせずに計算処理を実施する。この結果、この実施形態では、マルチプロセッサシステムPSYSの計算処理の効率を向上させることができる。 As described above, in this embodiment, the processor PU1 performs data transfer between the external memory MEM and the internal memory IMEM, and the processor PU2 switches between calculation processing and data transfer according to the calculation processing time. For example, when the calculation process time is relatively long with respect to the time required for data transfer, the processor PU2 performs the calculation process. When the calculation processing time is relatively short with respect to the time required for data transfer, the processor PU2 performs data transfer between the external memory MEM and the internal memory IMEM. Further, processors other than the processors PU1 and PU2 perform calculation processing without accessing the low-speed external memory MEM. As a result, in this embodiment, the calculation processing efficiency of the multiprocessor system PSYS can be improved.
図9は、別の実施形態におけるマルチプロセッサシステムPSYSの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態のマルチプロセッサシステムPSYSは、例えば、複数の処理部MPを有している。その他の構成は、上述した実施形態と同じである。なお、各処理部MPのプロセッサPUの動作は、上述した実施形態と同じである。 FIG. 9 shows an example of a multiprocessor system PSYS in another embodiment. The same elements as those described in the above-described embodiment are denoted by the same reference numerals, and detailed description thereof will be omitted. The multiprocessor system PSYS of this embodiment has, for example, a plurality of processing units MP. Other configurations are the same as those of the above-described embodiment. The operation of the processor PU of each processing unit MP is the same as that in the above-described embodiment.
例えば、図6で説明したように、最後の入力データIDATAを読み込んだプロセッサPU(PU1あるいはPU2)は、最後の入力データIDATAを読み込んだことを示す最終フラグを外部メモリMEMに書き込む。このため、各処理部MPのプロセッサPU1、PU2は、外部メモリMEMに記憶された最終フラグを参照することにより、最後の入力データIDATAが外部メモリMEMから内部メモリIMEMに転送されたか否かを判定できる。換言すれば、処理部MPが1つの構成では、最終フラグは、内部メモリIMEMに記憶されてもよい。 For example, as described with reference to FIG. 6, the processor PU (PU1 or PU2) that has read the last input data IDATA writes a final flag indicating that the last input data IDATA has been read into the external memory MEM. For this reason, the processors PU1 and PU2 of each processing unit MP determine whether or not the last input data IDATA has been transferred from the external memory MEM to the internal memory IMEM by referring to the final flag stored in the external memory MEM. it can. In other words, in a configuration with one processing unit MP, the final flag may be stored in the internal memory IMEM.
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、複数の処理部MPが計算処理を並列に実施できるため、マルチプロセッサシステムPSYSの計算処理の効率をさらに向上させることができる。 As described above, also in this embodiment, the same effect as that of the above-described embodiment can be obtained. Furthermore, in this embodiment, since a plurality of processing units MP can perform calculation processing in parallel, the efficiency of calculation processing of the multiprocessor system PSYS can be further improved.
図10は、別の実施形態におけるマルチプロセッサシステムPSYSの動作の例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。この実施形態のマルチプロセッサシステムPSYSは、プロセッサPU1、PU2の動作を除いて、上述した実施形態と同じである。なお、図中の矢印の意味は、上述した図4と同じである。また、括弧付きの符合PU2は、処理が切り替わった後のプロセッサPU2の動作を示している。 FIG. 10 shows an example of the operation of the multiprocessor system PSYS in another embodiment. The same elements as those described in the above-described embodiment are denoted by the same reference numerals, and detailed description thereof will be omitted. The multiprocessor system PSYS of this embodiment is the same as the above-described embodiment except for the operations of the processors PU1 and PU2. In addition, the meaning of the arrow in a figure is the same as FIG. 4 mentioned above. Also, a reference PU2 with parentheses indicates an operation of the processor PU2 after the process is switched.
例えば、プロセッサPU2は、外部メモリMEMおよび内部メモリIMEM間のデータ転送を実施するときの動作を除いて、上述した実施形態と同じである。例えば、計算処理CALで待ち状態が発生したとき、プロセッサPU2は、図4に示した入力データIDATAの外部メモリMEMから内部メモリIMEMへの転送の代わりに、出力データODATAの内部メモリIMEMから外部メモリMEMへの転送を実施する(図10の二重線の矢印)。 For example, the processor PU2 is the same as that in the above-described embodiment except for the operation when performing data transfer between the external memory MEM and the internal memory IMEM. For example, when a wait state occurs in the calculation process CAL, the processor PU2 transfers the input data IDATA from the external memory MEM to the internal memory IMEM shown in FIG. Transfer to MEM is performed (double line arrow in FIG. 10).
すなわち、プロセッサPU2は、計算処理CALで待ち状態が発生したときに実施するデータ転送として、内部メモリIMEMから外部メモリMEMに出力データODATAを転送するデータ転送を実施する。したがって、図6に示した評価値EV1の更新およびIDATA転送許可フラグのセットは、プロセッサPU2により実施される。 That is, the processor PU2 performs data transfer for transferring the output data ODATA from the internal memory IMEM to the external memory MEM as data transfer performed when a wait state occurs in the calculation process CAL. Therefore, the update of the evaluation value EV1 and the setting of the IDATA transfer permission flag shown in FIG. 6 are performed by the processor PU2.
また、例えば、プロセッサPU2の処理が出力データODATAを内部メモリIMEMから外部メモリMEMに転送するデータ転送のとき、プロセッサPU1は、IDATA転送許可フラグを参照し、入力データIDATAの転送が許可されるまで待機する。そして、例えば、IDATA転送許可フラグが“1”のとき、プロセッサPU1は、入力データIDATAを外部メモリMEMから内部メモリIMEMに転送するデータ転送を開始する。このように、例えば、プロセッサPU2の処理が計算処理CALでないとき、プロセッサPU1は、入力データIDATAを外部メモリMEMから内部メモリIMEMに転送するデータ転送を繰り返し実施する。プロセッサPU1のその他の動作は、上述した実施形態と同じである。 For example, when the processing of the processor PU2 is a data transfer in which the output data ODATA is transferred from the internal memory IMEM to the external memory MEM, the processor PU1 refers to the IDATA transfer permission flag until the transfer of the input data IDATA is permitted. stand by. For example, when the IDATA transfer permission flag is “1”, the processor PU1 starts data transfer for transferring the input data IDATA from the external memory MEM to the internal memory IMEM. Thus, for example, when the processing of the processor PU2 is not the calculation processing CAL, the processor PU1 repeatedly performs data transfer for transferring the input data IDATA from the external memory MEM to the internal memory IMEM. Other operations of the processor PU1 are the same as those in the above-described embodiment.
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。 As described above, also in this embodiment, the same effect as that of the above-described embodiment can be obtained.
図11は、上述した実施形態のマルチプロセッサシステムPSYSが搭載されるシステムSYSの例を示している。システムSYSは、例えば、マルチプロセッサシステムPSYSと、マルチプロセッサシステムPSYSに接続されたコンピュータCSYSを有している。コンピュータCSYSは、例えば、システムSYSの動作を制御する中央処理装置CPUと、中央処理装置CPUに接続されたハードディスクHDDと、中央処理装置CPUに接続されたメインメモリMMとを有している。例えば、中央処理装置CPUは、メインメモリMMに記憶された入力データをマルチプロセッサシステムPSYSの外部メモリMEMに転送する。 FIG. 11 shows an example of a system SYS on which the multiprocessor system PSYS of the above-described embodiment is mounted. The system SYS has, for example, a multiprocessor system PSYS and a computer CSYS connected to the multiprocessor system PSYS. The computer CSYS includes, for example, a central processing unit CPU that controls the operation of the system SYS, a hard disk HDD connected to the central processing unit CPU, and a main memory MM connected to the central processing unit CPU. For example, the central processing unit CPU transfers input data stored in the main memory MM to the external memory MEM of the multiprocessor system PSYS.
以上の実施形態において説明した発明を整理して、付記として開示する。
(付記1)
第1メモリと、
前記第1メモリに接続され、前記第1メモリに記憶されたデータを用いて処理を実施する処理部とを備え、
前記処理部は、
第2メモリと、
前記データおよび前記処理の結果である処理データの少なくとも一方を前記第1メモリと前記第2メモリとの間で転送するデータ転送を実施する第1プロセッサと、
前記第1メモリと前記第2メモリとの間でのデータ転送と前記処理とを切り替え可能に実施する第2プロセッサと、
前記第2メモリに転送された前記データを用いて、前記処理を実施する第3プロセッサと
を備えていることを特徴とするマルチプロセッサシステム。
(付記2)
前記第1プロセッサは、前記第2プロセッサおよび前記第3プロセッサに実施される前記処理の最初の前記データを前記第1メモリから前記第2メモリに転送した後、前記処理の最初の前記処理データを前記第2メモリから前記第1メモリに転送する前に、前記最初のデータの次の前記データを前記第1メモリから前記第2メモリに転送すること
を特徴とする付記1記載のマルチプロセッサシステム。
(付記3)
前記第2プロセッサは、連続する前記処理のうちの先の前記処理の前記処理データを前記第2メモリに書き込んでから次の前記処理の前記データを前記第2メモリから読み込むまでに待ち時間が発生したとき、実施する処理を前記処理から前記データ転送に切り替えること
を特徴とする付記1または付記2記載のマルチプロセッサシステム。
(付記4)
前記第2プロセッサは、前記データ転送として、前記第1メモリから前記第2メモリに前記データを転送し、
前記第1プロセッサは、前記第2プロセッサが前記データ転送を実施するとき、前記第2メモリから前記第1メモリに前記処理データを転送すること
を特徴とする付記3記載のマルチプロセッサシステム。
(付記5)
前記第2プロセッサは、前記データ転送として、前記第2メモリから前記第1メモリに前記処理データを転送し、
前記第1プロセッサは、前記第2プロセッサが前記データ転送を実施するとき、前記第1メモリから前記第2メモリに前記データを転送すること
を特徴とする付記3記載のマルチプロセッサシステム。
(付記6)
前記第2プロセッサは、前記第1プロセッサが前記第2メモリから前記処理データを読み出すときの待ち時間が予め設定された閾値時間より長いとき、実施する処理を前記データ転送から前記処理に切り替えること
を特徴とする付記3記載のマルチプロセッサシステム。
(付記7)
第1メモリと、前記第1メモリに接続され、第2メモリおよび複数のプロセッサを含む処理部とを備えたマルチプロセッサシステムに、前記第1メモリに記憶されたデータを用いて処理を実行させるマルチプロセッサシステムのプログラムにおいて、
前記複数のプロセッサの1つである第1プロセッサが、前記データを前記第1メモリから前記第2メモリに転送し、
前記複数のプロセッサの1つである第2プロセッサおよび第3プロセッサが、前記処理を行い、前記処理の結果である処理データを前記第2メモリに格納し、
前記第1プロセッサが、前記第2メモリにアクセスし、格納された前記処理データを前記第1メモリに転送し、
前記第2プロセッサおよび第3プロセッサが前記処理データを前記第2メモリに格納するタイミングが、前記第1プロセッサが前記第2メモリに前記アクセスするタイミングよりも早い場合には、前記第2プロセッサの動作を前記転送に切り替えること
を特徴とするマルチプロセッサシステムのプログラム。
(付記8)
第1メモリと、前記第1メモリに接続され、第2メモリおよび複数のプロセッサを含む処理部とを備え、前記第1メモリに記憶されたデータを用いて処理を実施するマルチプロセッサシステムの動作方法において、
前記複数のプロセッサの1つである第1プロセッサが、前記データを前記第1メモリから前記第2メモリに転送し、
前記複数のプロセッサの1つである第2プロセッサおよび第3プロセッサが、前記処理を行い、前記処理の結果である処理データを前記第2メモリに格納し、
前記第1プロセッサが、前記第2メモリにアクセスし、格納された前記処理データを前記第1メモリに転送し、
前記第2プロセッサおよび第3プロセッサが前記処理データを前記第2メモリに格納するタイミングが、前記第1プロセッサが前記第2メモリに前記アクセスするタイミングよりも早い場合には、前記第2プロセッサの動作を前記転送に切り替えること
を特徴とするマルチプロセッサシステムの動作方法。
(付記9)
前記第2プロセッサおよび前記第3プロセッサに実施される前記処理の最初の前記データが前記第1メモリから前記第2メモリに転送された後、前記処理の最初の前記処理データが前記第2メモリから前記第1メモリに転送される前に、前記第1プロセッサが、前記最初のデータの次の前記データを前記第1メモリから前記第2メモリに転送すること
を特徴とする付記8記載のマルチプロセッサシステムの動作方法。
(付記10)
連続する前記処理のうちの先の前記処理の前記処理データを前記第2メモリに書き込んでから次の前記処理の前記データを前記第2メモリから読み込むまでに待ち時間が発生したとき、前記第2プロセッサに実施させる処理を前記処理から前記転送に切り替えること
を特徴とする付記8または付記9記載のマルチプロセッサシステムの動作方法。
The invention described in the above embodiments is organized and disclosed as an appendix.
(Appendix 1)
A first memory;
A processing unit connected to the first memory and performing processing using data stored in the first memory;
The processor is
A second memory;
A first processor that performs data transfer for transferring at least one of the data and processing data as a result of the processing between the first memory and the second memory;
A second processor that performs switching between data transfer between the first memory and the second memory and the processing;
And a third processor that performs the processing using the data transferred to the second memory.
(Appendix 2)
The first processor transfers the first data of the processing executed by the second processor and the third processor from the first memory to the second memory, and then transfers the first processing data of the processing. The multiprocessor system according to
(Appendix 3)
The second processor has a waiting time from writing the processing data of the previous processing in the continuous processing to the second memory until reading the data of the next processing from the second memory. Then, the processing to be performed is switched from the processing to the data transfer. The multiprocessor system according to
(Appendix 4)
The second processor transfers the data from the first memory to the second memory as the data transfer,
The multiprocessor system according to claim 3, wherein the first processor transfers the processing data from the second memory to the first memory when the second processor executes the data transfer.
(Appendix 5)
The second processor transfers the processing data from the second memory to the first memory as the data transfer,
The multiprocessor system according to claim 3, wherein the first processor transfers the data from the first memory to the second memory when the second processor performs the data transfer.
(Appendix 6)
When the waiting time when the first processor reads the processing data from the second memory is longer than a preset threshold time, the second processor switches the processing to be performed from the data transfer to the processing. The multiprocessor system according to Supplementary Note 3, wherein the multiprocessor system is characterized.
(Appendix 7)
A multiprocessor system comprising: a first memory; and a processing unit connected to the first memory and including a second memory and a plurality of processors. The multiprocessor system executes processing using data stored in the first memory. In the processor system program,
A first processor that is one of the plurality of processors transfers the data from the first memory to the second memory;
A second processor and a third processor, which are one of the plurality of processors, perform the processing, and store processing data as a result of the processing in the second memory;
The first processor accesses the second memory and transfers the stored processing data to the first memory;
When the timing at which the second processor and the third processor store the processing data in the second memory is earlier than the timing at which the first processor accesses the second memory, the operation of the second processor A program for a multiprocessor system, characterized in that:
(Appendix 8)
A multiprocessor system operating method comprising: a first memory; and a processing unit connected to the first memory and including a second memory and a plurality of processors, wherein the processing is performed using data stored in the first memory In
A first processor that is one of the plurality of processors transfers the data from the first memory to the second memory;
A second processor and a third processor, which are one of the plurality of processors, perform the processing, and store processing data as a result of the processing in the second memory;
The first processor accesses the second memory and transfers the stored processing data to the first memory;
When the timing at which the second processor and the third processor store the processing data in the second memory is earlier than the timing at which the first processor accesses the second memory, the operation of the second processor A method of operating a multiprocessor system, characterized in that:
(Appendix 9)
After the first data of the processing performed by the second processor and the third processor is transferred from the first memory to the second memory, the first processing data of the processing is transferred from the second memory. The multiprocessor according to claim 8, wherein the first processor transfers the data next to the first data from the first memory to the second memory before being transferred to the first memory. How the system works.
(Appendix 10)
When a waiting time occurs after the processing data of the previous processing in the continuous processing is written to the second memory until the data of the next processing is read from the second memory, the second The operation method of the multiprocessor system according to appendix 8 or appendix 9, wherein the process to be executed by the processor is switched from the process to the transfer.
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。 From the above detailed description, features and advantages of the embodiments will become apparent. This is intended to cover the features and advantages of the embodiments described above without departing from the spirit and scope of the claims. Further, any person having ordinary knowledge in the technical field should be able to easily come up with any improvements and modifications, and there is no intention to limit the scope of the embodiments having the invention to those described above. It is also possible to rely on suitable improvements and equivalents within the scope disclosed in.
CPU‥中央処理装置;CSYS‥コンピュータ;HDD‥ハードディスク;IMEM、MEM、MM‥メモリ;MP‥処理部;PSYS‥マルチプロセッサシステム;PU‥プロセッサ CPU, central processing unit; CSYS, computer; HDD, hard disk; IMEM, MEM, MM, memory; MP, processing unit; PSYS, multiprocessor system;
Claims (6)
前記第1メモリに接続され、前記第1メモリに記憶されたデータを用いて処理を実施する処理部とを備え、
前記処理部は、
第2メモリと、
前記データおよび前記処理の結果である処理データの少なくとも一方を前記第1メモリと前記第2メモリとの間で転送するデータ転送を実施する第1プロセッサと、
前記第1メモリと前記第2メモリとの間でのデータ転送と前記処理とを切り替え可能に実施する第2プロセッサと、
前記第2メモリに転送された前記データを用いて、前記処理を実施する第3プロセッサと
を備えていることを特徴とするマルチプロセッサシステム。 A first memory;
A processing unit connected to the first memory and performing processing using data stored in the first memory;
The processor is
A second memory;
A first processor that performs data transfer for transferring at least one of the data and processing data as a result of the processing between the first memory and the second memory;
A second processor that performs switching between data transfer between the first memory and the second memory and the processing;
And a third processor that performs the processing using the data transferred to the second memory.
を特徴とする請求項1記載のマルチプロセッサシステム。 The first processor transfers the first data of the processing executed by the second processor and the third processor from the first memory to the second memory, and then transfers the first processing data of the processing. 2. The multiprocessor system according to claim 1, wherein the data next to the first data is transferred from the first memory to the second memory before being transferred from the second memory to the first memory. .
を特徴とする請求項1または請求項2記載のマルチプロセッサシステム。 The second processor has a waiting time from writing the processing data of the previous processing in the continuous processing to the second memory until reading the data of the next processing from the second memory. The multiprocessor system according to claim 1, wherein the processing to be performed is switched from the processing to the data transfer.
前記複数のプロセッサの1つである第1プロセッサが、前記データを前記第1メモリから前記第2メモリに転送し、
前記複数のプロセッサの1つである第2プロセッサおよび第3プロセッサが、前記処理を行い、前記処理の結果である処理データを前記第2メモリに格納し、
前記第1プロセッサが、前記第2メモリにアクセスし、格納された前記処理データを前記第1メモリに転送し、
前記第2プロセッサおよび第3プロセッサが前記処理データを前記第2メモリに格納するタイミングが、前記第1プロセッサが前記第2メモリに前記アクセスするタイミングよりも早い場合には、前記第2プロセッサの動作を前記転送に切り替えること
を特徴とするマルチプロセッサシステムの動作方法。 A multiprocessor system operating method comprising: a first memory; and a processing unit connected to the first memory and including a second memory and a plurality of processors, wherein the processing is performed using data stored in the first memory In
A first processor that is one of the plurality of processors transfers the data from the first memory to the second memory;
A second processor and a third processor, which are one of the plurality of processors, perform the processing, and store processing data as a result of the processing in the second memory;
The first processor accesses the second memory and transfers the stored processing data to the first memory;
When the timing at which the second processor and the third processor store the processing data in the second memory is earlier than the timing at which the first processor accesses the second memory, the operation of the second processor A method of operating a multiprocessor system, characterized in that:
を特徴とする請求項4記載のマルチプロセッサシステムの動作方法。 After the first data of the processing performed by the second processor and the third processor is transferred from the first memory to the second memory, the first processing data of the processing is transferred from the second memory. The multi-processor according to claim 4, wherein the first processor transfers the data next to the first data from the first memory to the second memory before being transferred to the first memory. How the processor system works.
を特徴とする請求項4または請求項5記載のマルチプロセッサシステムの動作方法。 When a waiting time occurs after the processing data of the previous processing in the continuous processing is written to the second memory until the data of the next processing is read from the second memory, the second The operation method of the multiprocessor system according to claim 4 or 5, wherein a process executed by a processor is switched from the process to the transfer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010042195A JP2011180680A (en) | 2010-02-26 | 2010-02-26 | Multiprocessor system and program for multiprocessor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010042195A JP2011180680A (en) | 2010-02-26 | 2010-02-26 | Multiprocessor system and program for multiprocessor system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011180680A true JP2011180680A (en) | 2011-09-15 |
Family
ID=44692148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010042195A Withdrawn JP2011180680A (en) | 2010-02-26 | 2010-02-26 | Multiprocessor system and program for multiprocessor system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011180680A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012168732A (en) * | 2011-02-14 | 2012-09-06 | Fujitsu Ltd | Arithmetic processing unit, calculation node, parallel computer system, arithmetic processing method, and arithmetic processing program |
-
2010
- 2010-02-26 JP JP2010042195A patent/JP2011180680A/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012168732A (en) * | 2011-02-14 | 2012-09-06 | Fujitsu Ltd | Arithmetic processing unit, calculation node, parallel computer system, arithmetic processing method, and arithmetic processing program |
US8966225B2 (en) | 2011-02-14 | 2015-02-24 | Fujitsu Limited | Reducing number of processing units generating calculation result when communication time to another node takes longer than calculation time |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102668599B1 (en) | Embedded scheduling of hardware resources for hardware acceleration | |
WO2018076793A1 (en) | Nvme device, and methods for reading and writing nvme data | |
CN108647104B (en) | Request processing method, server and computer readable storage medium | |
KR102466984B1 (en) | Improved function callback mechanism between a central processing unit (cpu) and an auxiliary processor | |
CN113918101B (en) | Method, system, equipment and storage medium for writing data cache | |
JP2006048164A (en) | Information processor and software prefetch control method | |
US9043806B2 (en) | Information processing device and task switching method | |
JP2008525904A (en) | System and method for maintaining cache coherency in caches having different cache location lengths | |
US9524114B2 (en) | Optimizing synchronous write via speculation | |
WO2015010646A1 (en) | Hybrid memory data access method, module, processor and terminal device | |
WO2016206529A1 (en) | Memory control method and device, and computer storage medium | |
US20140006742A1 (en) | Storage device and write completion notification method | |
JP2010108086A (en) | Cpu emulation system, cpu emulation method and cpu emulation program | |
WO2024193096A1 (en) | Data migration method and computing device | |
US20140129751A1 (en) | Hybrid interface to improve semiconductor memory based ssd performance | |
CN114490123A (en) | Task processing method and device, electronic equipment and storage medium | |
US20170199819A1 (en) | Cache Directory Processing Method for Multi-Core Processor System, and Directory Controller | |
CN105612505B (en) | The method and apparatus of CPU scheduling | |
US8656120B2 (en) | Device, method and computer-readable medium relocating remote procedure call data in heterogeneous multiprocessor system on chip | |
JP2007172322A (en) | Distributed processing type multiprocessor system, control method, multiprocessor interruption controller, and program | |
JP2011180680A (en) | Multiprocessor system and program for multiprocessor system | |
CN103377060A (en) | Computer program acceleration method and system | |
CN113918311B (en) | Soft interrupt routing method of multi-core system and method and chip for responding soft interrupt | |
WO2019028987A1 (en) | Data processing method, electronic device and computer readable storage medium | |
US20130247065A1 (en) | Apparatus and method for executing multi-operating systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130507 |