JP2009075948A - Multicore processor - Google Patents

Multicore processor Download PDF

Info

Publication number
JP2009075948A
JP2009075948A JP2007245590A JP2007245590A JP2009075948A JP 2009075948 A JP2009075948 A JP 2009075948A JP 2007245590 A JP2007245590 A JP 2007245590A JP 2007245590 A JP2007245590 A JP 2007245590A JP 2009075948 A JP2009075948 A JP 2009075948A
Authority
JP
Japan
Prior art keywords
program
processor core
value
processor
counter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007245590A
Other languages
Japanese (ja)
Inventor
Haruhiko Takeyama
治彦 竹山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2007245590A priority Critical patent/JP2009075948A/en
Publication of JP2009075948A publication Critical patent/JP2009075948A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a multicore processor capable of synchizing programs among processor cores by a simple configuration without increasing size of the program executed in each of processor cores. <P>SOLUTION: This multicore processor is provided with the processor cores 10, 20, 30, 40, a program counter 11 holding an address value of the program performed by the processor core corresponding to itself, and program counter monitoring parts 13, 23, 33, 43 for controlling possibility or impossibility of performing the program at synchronizing destination by the processor core corresponding to oneself in accordance with results of comparison of a value of the program counter 11 corresponding to the processor core being the synchronizing mate designated by the processor core corresponding to oneself with a final program address value of the program at synchronizing origin performed by the processor core being the synchronizing partner prior to performing the program at the synchronizing destination. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

この発明は、複数のプロセッサコアで情報処理を行うマルチコアプロセッサに関するものである。   The present invention relates to a multi-core processor that performs information processing with a plurality of processor cores.

マルチコアプロセッサでは、各プロセッサコアが個別に処理を行いながら1つのプログラムを実行することができる。この場合、上記プログラムを複数に分割して各プロセッサコアに割り当てておく必要がある。プログラムの分割方法としては、1つのプログラムを自動並列化コンパイラで自動的に分割する方法の他、プログラム作者が各プロセッサコアで実行する処理間の連携を考慮して複数のプログラムに分割する方法等がある。しかしながら、いずれの方法で作成したプログラムにおいても、プログラム作者が意図した動きを実現するには、プロセッサコア間でのデータの授受や処理タイミングの同期をとる必要がある。   In a multi-core processor, each processor core can execute one program while performing processing individually. In this case, the program needs to be divided into a plurality of parts and assigned to each processor core. As a program dividing method, in addition to a method of automatically dividing one program by an automatic parallelizing compiler, a method of dividing a program into a plurality of programs in consideration of cooperation between processes executed by each processor core, etc. There is. However, in any program created by any of the methods, it is necessary to synchronize data transmission and processing timing between the processor cores in order to realize the movement intended by the program author.

プロセッサコア間の同期をとる技術としては、例えば特許文献1や特許文献2に開示される、バリア同期と呼ばれる同期方式がある。この同期方式では、全てのプロセッサコアが一定の処理段階(バリア)に達したことが保証された時点で、各プロセッサコアが次の処理段階へ進むように制御される。   As a technique for synchronizing processor cores, there is a synchronization method called barrier synchronization disclosed in Patent Document 1 and Patent Document 2, for example. In this synchronization method, each processor core is controlled to proceed to the next processing stage when it is guaranteed that all the processor cores have reached a certain processing stage (barrier).

また、特許文献3には、同期元プロセッサコアと同期先プロセッサコアという対応関係が予め設定されたプロセッサコア間での同期方式が記載されている。この同期方式は、バリア同期のようにプロセッサコア間の実行状況を保証するものではない。具体的には、同期元プロセッサコアが、共有レジスタ等の共有領域の値をインクリメント若しくはデクリメントし、同期先プロセッサコアが、ローカル領域に格納している値と上記共有領域の値とを比較した結果に応じて同期元プロセッサコアの動作と同期をとっている。   Patent Document 3 describes a synchronization method between processor cores in which a correspondence relationship between a synchronization source processor core and a synchronization destination processor core is set in advance. This synchronization method does not guarantee the execution status between processor cores as in barrier synchronization. Specifically, the synchronization source processor core increments or decrements the value of the shared area such as the shared register, and the synchronization destination processor core compares the value stored in the local area with the value of the shared area. The operation is synchronized with the operation of the synchronization source processor core.

近年では、情報処理の高速化の観点からマルチコアプロセッサのプロセッサコア数を増加させる傾向がある。このように多くのプロセッサコアを搭載して効率よく処理を実行するには、各プロセッサコアの処理量を平均化する必要があり、各プロセッサコアで実行されるプログラムのサイズをさらに小さくする傾向が強まっている。このため、プロセッサコア間で連携すべき処理が多くなり、同期処理を必要とする箇所が増加している。   In recent years, there is a tendency to increase the number of processor cores of a multi-core processor from the viewpoint of speeding up information processing. In order to efficiently execute processing with such a large number of processor cores installed, it is necessary to average the processing amount of each processor core, and there is a tendency to further reduce the size of a program executed on each processor core. It is getting stronger. For this reason, the number of processes that should be coordinated between processor cores increases, and the number of places that require synchronous processing is increasing.

特開平7−234841号公報Japanese Patent Laid-Open No. 7-234841 特開2000−215182号公報JP 2000-215182 A 特開平9−305546号公報Japanese Patent Laid-Open No. 9-305546

従来のマルチコアプロセッサは、同期に関わる全てのプロセッサコアで実行されるプログラムに同期のための処理を追加しなければならない。つまり、同期元プロセッサコアで実行するプログラムと同期先プロセッサコアで実行するプログラムの双方に同期のための処理を記述する必要がある。このため、各プロセッサコアで実行されるプログラムのサイズが増大し、実行時間が増加するという課題があった。   A conventional multi-core processor must add processing for synchronization to a program executed in all processor cores related to synchronization. That is, it is necessary to describe processing for synchronization in both the program executed in the synchronization source processor core and the program executed in the synchronization destination processor core. For this reason, the size of the program executed by each processor core increases, and there is a problem that the execution time increases.

この発明は、上記のような課題を解決するためになされたもので、各プロセッサコアで実行されるプログラムのサイズを増大させずに、簡易な構成でプロセッサコア間の同期をとることができるマルチコアプロセッサを得ることを目的とする。   The present invention has been made in order to solve the above-described problems, and can achieve synchronization between processor cores with a simple configuration without increasing the size of a program executed in each processor core. The purpose is to obtain a processor.

この発明に係るマルチコアプロセッサは、複数のプロセッサコアと、複数のプロセッサコアのそれぞれに対応して設けられ、自己に対応するプロセッサコアで実行されるプログラムのアドレス値を保持するプログラムカウンタと、複数のプロセッサコアのそれぞれに対応して設けられ、自己に対応するプロセッサコアから指定された同期相手のプロセッサコアに対応するプログラムカウンタの値と同期先のプログラムの実行に先行して同期相手のプロセッサコアで実行される同期元のプログラムのアドレス値との比較結果に応じて、自己に対応するプロセッサコアによる同期先のプログラムの実行可否を制御するプログラムカウンタ監視部とを備えるものである。   A multi-core processor according to the present invention includes a plurality of processor cores, a program counter that is provided corresponding to each of the plurality of processor cores and that holds an address value of a program executed by the processor core corresponding to the processor core, Provided in correspondence with each of the processor cores, the value of the program counter corresponding to the synchronization partner processor core designated from the processor core corresponding to itself and the synchronization partner processor core prior to execution of the synchronization destination program And a program counter monitoring unit that controls whether or not the synchronization target program can be executed by the processor core corresponding to the address value of the synchronization source program to be executed.

この発明によれば、複数のプロセッサコアと、複数のプロセッサコアのそれぞれに対応して設けられ、自己に対応するプロセッサコアで実行されるプログラムのアドレス値を保持するプログラムカウンタと、複数のプロセッサコアのそれぞれに対応して設けられ、自己に対応するプロセッサコアから指定された同期相手のプロセッサコアに対応するプログラムカウンタの値と同期先のプログラムの実行に先行して同期相手のプロセッサコアで実行される同期元のプログラムのアドレス値との比較結果に応じて、自己に対応するプロセッサコアによる同期先のプログラムの実行可否を制御するプログラムカウンタ監視部とを備えたので、同期元のプログラムを実行するプロセッサコアに同期のための特別な処理を追加することなく、同期元のプログラムの実行状況に応じてプロセッサコア間で同期をとることができるという効果がある。   According to the present invention, a plurality of processor cores, a program counter provided corresponding to each of the plurality of processor cores and holding an address value of a program executed by the processor core corresponding to itself, and the plurality of processor cores The program counter value corresponding to the synchronization target processor core specified by the processor core corresponding to the program and the synchronization target processor core is executed prior to the execution of the synchronization destination program. And a program counter monitoring unit for controlling whether or not the synchronization target program can be executed by the processor core corresponding to the synchronization source program according to the comparison result with the address value of the synchronization source program. Without adding special processing for synchronization to the processor core, There is an effect that can be synchronized between the processor core in accordance with the execution status of grams.

実施の形態1.
図1は、この発明の実施の形態1によるマルチコアプロセッサの構成を示すブロック図である。図1において、実施の形態1のマルチコアプロセッサ1は、プロセッサコア10,20,30,40及びプログラムカウンタ監視部13,23,33,43を備える。また、プロセッサコア10,20,30,40は、それぞれプログラムカウンタ11及び実行部12を備える。プログラムカウンタ11には、実行部12で実行されるプログラムのアドレスが保持される。なお、この実施の形態1では、原則として実行部12がアドレスを昇順にプログラムを実行するものとする。
Embodiment 1 FIG.
FIG. 1 is a block diagram showing a configuration of a multi-core processor according to Embodiment 1 of the present invention. In FIG. 1, the multi-core processor 1 according to the first embodiment includes processor cores 10, 20, 30, and 40 and program counter monitoring units 13, 23, 33, and 43. The processor cores 10, 20, 30, and 40 each include a program counter 11 and an execution unit 12. The program counter 11 holds an address of a program executed by the execution unit 12. In the first embodiment, the execution unit 12 executes the program in ascending order of addresses in principle.

実行部12は、自己を備えるプロセッサコアに割り当てられたプログラムを実行する構成要素であり、プログラムカウンタ監視部から通知される停止要求及びその解除要求に従ってプログラムの実行停止及び実行開始が制御される。また、実行部12は、自己を備えるプロセッサコアと同期して動作する他のプロセッサコアの実行部12において、自己が実行するプログラムを同期先として先行処理される同期元のプログラムの最終プログラムアドレス値を保持しており、上記同期先のプログラムを実行する直前に上記他のプロセッサコアの識別番号及び上記同期元のプログラムの最終プログラムアドレス値をプログラムカウンタ監視部に通知する。   The execution unit 12 is a component that executes a program assigned to a processor core including the execution unit 12, and the execution stop and execution start of the program are controlled according to the stop request and the release request notified from the program counter monitoring unit. In addition, the execution unit 12 is the final program address value of the synchronization source program that is pre-processed with the program executed by the execution unit 12 as a synchronization destination in the execution unit 12 of another processor core that operates in synchronization with the processor core including the execution unit 12 Immediately before executing the synchronization destination program, the program counter monitoring unit is notified of the identification number of the other processor core and the final program address value of the synchronization source program.

プログラムカウンタ監視部13,23,33,43は、プロセッサコア10,20,30,40のそれぞれに対応して設けられ、自己に対応するプロセッサコアに搭載された実行部12とデータ送受可能に接続される。また、プログラムカウンタ監視部13,23,33,43は、実行部12が自己と接続していないプロセッサコアのプログラムカウンタ11と接続しており、その値を読み込むことが可能である。   The program counter monitoring units 13, 23, 33, and 43 are provided corresponding to the processor cores 10, 20, 30, and 40, respectively, and are connected to the execution unit 12 mounted on the processor core corresponding to the processor cores so that data can be transmitted and received. Is done. Further, the program counter monitoring units 13, 23, 33, and 43 are connected to the program counter 11 of the processor core that is not connected to the execution unit 12 and can read the values.

このように、プログラムカウンタ監視部13,23,33,43は、各プロセッサコア10,20,30,40の周辺回路としてそれぞれ設けられており、自己に対応するプロセッサコア以外のプロセッサコアに搭載されたプログラムカウンタ11の値を監視する。また、プログラムカウンタ監視部13,23,33,43は、プログラムカウンタ11の監視結果に応じて、プログラム実行の停止要求及びその解除要求を対応するプロセッサコアの実行部12に通知する。   As described above, the program counter monitoring units 13, 23, 33, and 43 are provided as peripheral circuits of the respective processor cores 10, 20, 30, and 40, and are mounted on processor cores other than the processor core corresponding to the program core monitoring unit 13, 23, 33, and 43. The value of the program counter 11 is monitored. Further, the program counter monitoring units 13, 23, 33, and 43 notify the execution unit 12 of the corresponding processor core of the program execution stop request and the release request according to the monitoring result of the program counter 11.

例えば、プログラムカウンタ監視部13は、上述したアドレス情報等の監視に必要な情報をプロセッサコア10の実行部12から取得してプロセッサコア20,30,40のプログラムカウンタ11の値を監視し、その監視結果に応じてプログラム実行の停止要求及びその解除要求をプロセッサコア10の実行部12に通知する。   For example, the program counter monitoring unit 13 acquires information necessary for monitoring the address information and the like described above from the execution unit 12 of the processor core 10 and monitors the values of the program counter 11 of the processor cores 20, 30, and 40. A request to stop program execution and a request to cancel the program execution are notified to the execution unit 12 of the processor core 10 according to the monitoring result.

図2は、図1中のプロセッサコアで実行されるプログラム及びプログラム間の依存関係を説明するための図である。図2において、プログラム210,220,230,240は、マルチコアプロセッサ1で実行する1つのプログラムを分割したプログラムであり、プロセッサコア10,20,30,40でそれぞれ実行される。プロセッサコア10の実行部12で実行されるプログラム210は、部分プログラム211を含んで構成される。また、プロセッサコア20の実行部12で実行されるプログラム220は、部分プログラム221,222,223を含んで構成される。   FIG. 2 is a diagram for explaining a program executed by the processor core in FIG. 1 and a dependency relationship between the programs. In FIG. 2, programs 210, 220, 230, and 240 are programs obtained by dividing one program executed by the multi-core processor 1, and are executed by the processor cores 10, 20, 30, and 40, respectively. The program 210 executed by the execution unit 12 of the processor core 10 includes a partial program 211. The program 220 executed by the execution unit 12 of the processor core 20 includes partial programs 221, 222, and 223.

図2において、部分プログラム221,222,223は、部分プログラム223、部分プログラム221、部分プログラム222の順でアドレスが昇順となるようにメモリに格納されている。プロセッサコア20の実行部12は、上記メモリからアドレスを昇順に部分プログラムを読み込んで実行することにより、図2中で矢印で示すように、部分プログラム223、部分プログラム221、部分プログラム222の順で、プログラム220を実行する。   In FIG. 2, the partial programs 221, 222, and 223 are stored in the memory so that the addresses are in ascending order in the order of the partial program 223, the partial program 221, and the partial program 222. The execution unit 12 of the processor core 20 reads the partial programs from the memory in ascending order and executes the partial programs, thereby executing the partial program 223, the partial program 221, and the partial program 222 in this order, as indicated by arrows in FIG. The program 220 is executed.

また、プロセッサコア10の実行部12で実行される部分プログラム211は、プロセッサコア20の実行部12で実行される部分プログラム221との間で依存関係250が設定されている。この依存関係250は、部分プログラム221の実行終了後に部分プログラム211を実行すること、つまり同期相手のプロセッサコア20による部分プログラム221の先行処理が終了した後に、プロセッサコア10で部分プログラム211を実行する実行順の依存関係があることを示している。なお、依存関係250に関する情報としては、同期元の部分プログラム221を実行するプロセッサコア20の識別番号及び部分プログラム221の最終プログラムアドレス値があり、同期先の部分プログラム211を実行するプロセッサコア10の実行部12に保持される。   Further, a dependency relationship 250 is set between the partial program 211 executed by the execution unit 12 of the processor core 10 and the partial program 221 executed by the execution unit 12 of the processor core 20. This dependency relationship 250 is that the partial program 211 is executed after the execution of the partial program 221, that is, the partial program 211 is executed by the processor core 10 after the preceding processing of the partial program 221 by the synchronization partner processor core 20 is completed. It shows that there is a dependency of execution order. The information about the dependency relationship 250 includes the identification number of the processor core 20 that executes the synchronization source partial program 221 and the final program address value of the partial program 221, and the information of the processor core 10 that executes the synchronization destination partial program 211. It is held in the execution unit 12.

図3は、図1中のプロセッサコアで実行されるプログラム、プログラム間の依存関係及び分岐処理を説明するための図である。図3において、プログラム310,320は、マルチコアプロセッサ1で実行する1つのプログラムを分割したプログラムであり、プロセッサコア10,20でそれぞれ実行される。プロセッサコア10の実行部12で実行されるプログラム310は、部分プログラム311,312,313,314を含んで構成される。また、プロセッサコア20の実行部12で実行されるプログラム320は、部分プログラム321,322,323を含んで構成される。   FIG. 3 is a diagram for explaining a program executed by the processor core in FIG. 1, a dependency relationship between programs, and a branch process. In FIG. 3, programs 310 and 320 are programs obtained by dividing one program executed by the multi-core processor 1, and are executed by the processor cores 10 and 20, respectively. The program 310 executed by the execution unit 12 of the processor core 10 includes partial programs 311, 312, 313, and 314. The program 320 executed by the execution unit 12 of the processor core 20 includes partial programs 321, 322, and 323.

図2の場合と同様に、部分プログラム311,312,313,314は、部分プログラム311、部分プログラム312、部分プログラム313、部分プログラム314の順でアドレスが昇順となるようにメモリに格納される。プロセッサコア10の実行部12は、上記メモリからアドレスを昇順に部分プログラムを読み込んで実行することにより、図3中で矢印で示すように、部分プログラム311、部分プログラム312、部分プログラム313、部分プログラム314の順で、プログラム310を実行する。   As in the case of FIG. 2, the partial programs 311, 312, 313, and 314 are stored in the memory so that the addresses are in ascending order in the order of the partial program 311, the partial program 312, the partial program 313, and the partial program 314. The execution unit 12 of the processor core 10 reads the partial programs from the memory in ascending order and executes the partial programs, thereby executing the partial program 311, the partial program 312, the partial program 313, the partial program as indicated by arrows in FIG. The program 310 is executed in the order of 314.

なお、部分プログラム314は最終プログラムアドレスに分岐命令を含んで構成されており、部分プログラム314の実行が終了した時点で部分プログラム311の実行に分岐する。これにより、プロセッサコア10のプログラムカウンタ11の値は、最も大きい部分プログラム314の最終プログラムアドレス値から、最も小さい部分プログラム311の開始プログラムアドレス値になる。   The partial program 314 includes a branch instruction at the final program address, and branches to the execution of the partial program 311 when the execution of the partial program 314 is completed. As a result, the value of the program counter 11 of the processor core 10 becomes the start program address value of the smallest partial program 311 from the final program address value of the largest partial program 314.

また、部分プログラム321,322,323についても、部分プログラム321、部分プログラム322、部分プログラム323の順でアドレスが昇順となるようにメモリに格納される。プロセッサコア20の実行部12は、上記メモリからアドレスを昇順に部分プログラムを読み込んで実行することにより、図3中で矢印で示すように、部分プログラム321、部分プログラム322、部分プログラム323の順で、プログラム320を実行する。   The partial programs 321, 322, and 323 are also stored in the memory so that the addresses are in ascending order in the order of the partial program 321, the partial program 322, and the partial program 323. The execution unit 12 of the processor core 20 reads the partial programs from the memory in ascending order and executes the partial programs, so that the partial program 321, the partial program 322, and the partial program 323 are sequentially displayed as indicated by arrows in FIG. The program 320 is executed.

部分プログラム314と同様に、部分プログラム323も最終プログラムアドレスに分岐命令を含んで構成されており、部分プログラム323の実行が終了した時点で部分プログラム321の実行に分岐する。この場合、プロセッサコア20のプログラムカウンタ11の値は、最も大きい部分プログラム323の最終プログラムアドレス値から最も小さい部分プログラム321の開始プログラムアドレス値になる。   Similar to the partial program 314, the partial program 323 also includes a branch instruction in the final program address, and branches to the execution of the partial program 321 when the execution of the partial program 323 is completed. In this case, the value of the program counter 11 of the processor core 20 changes from the final program address value of the largest partial program 323 to the start program address value of the smallest partial program 321.

プロセッサコア10の実行部12で実行される部分プログラム312,314は、プロセッサコア20の実行部12で実行される部分プログラム321,322との間で依存関係300,302がそれぞれ設定されている。また、プロセッサコア20の実行部12で実行される部分プログラム323は、プロセッサコア10の実行部12で実行される部分プログラム312との間で依存関係301が設定されている。   The partial programs 312 and 314 executed by the execution unit 12 of the processor core 10 have dependency relationships 300 and 302 respectively set between the partial programs 321 and 322 executed by the execution unit 12 of the processor core 20. In addition, a dependency relationship 301 is set between the partial program 323 executed by the execution unit 12 of the processor core 20 and the partial program 312 executed by the execution unit 12 of the processor core 10.

依存関係300,302は、部分プログラム321,322の実行終了後に部分プログラム312,314を実行することを示している。依存関係300,302に関する情報としては、同期元の部分プログラム321,322を実行するプロセッサコア20の識別番号及び部分プログラム321,322の最終プログラムアドレス値があり、同期先の部分プログラム312,314を実行するプロセッサコア10の実行部12に保持される。   The dependency relationships 300 and 302 indicate that the partial programs 312 and 314 are executed after the execution of the partial programs 321 and 322 is completed. The information on the dependency relationships 300 and 302 includes the identification number of the processor core 20 that executes the synchronization source partial programs 321 and 322 and the final program address value of the partial programs 321 and 322. It is held in the execution unit 12 of the processor core 10 to be executed.

また、依存関係301は、部分プログラム312の実行終了後に部分プログラム323を実行すること、つまりプロセッサコア10による部分プログラム312の先行処理が終了した後にプロセッサコア20で部分プログラム323を実行する実行順の依存関係があることを示している。なお、依存関係301に関する情報としては、同期元の部分プログラム312を実行するプロセッサコア10の識別番号及び部分プログラム312の最終プログラムアドレス値があり、同期先の部分プログラム323を実行するプロセッサコア20の実行部12に保持される。   Further, the dependency 301 indicates that the partial program 323 is executed after the execution of the partial program 312, that is, the execution order of executing the partial program 323 in the processor core 20 after the preceding processing of the partial program 312 by the processor core 10 is completed. Indicates that there is a dependency. The information related to the dependency relationship 301 includes the identification number of the processor core 10 that executes the synchronization source partial program 312 and the final program address value of the partial program 312, and the information of the processor core 20 that executes the synchronization destination partial program 323. It is held in the execution unit 12.

次に動作について説明する。
図1及び図2を用いてアドレスを昇順にプログラムを実行する場合の動作を説明する。
プロセッサコア10,20,30,40の実行部12は、それぞれに割り当てられたプログラム210,220,230,240を実行する。ここで、各プロセッサコア10,20,30,40の実行部12は、上記メモリからアドレスを昇順に各プログラムを読み込んで実行する。
Next, the operation will be described.
The operation when the program is executed in ascending order of addresses will be described with reference to FIGS.
The execution units 12 of the processor cores 10, 20, 30, and 40 execute the programs 210, 220, 230, and 240 assigned to them. Here, the execution unit 12 of each processor core 10, 20, 30, 40 reads each program from the memory in ascending order and executes it.

図2に示すように、部分プログラム221には、プロセッサコア10で実行される部分プログラム211との間で依存関係250が設定されている。プロセッサコア10の実行部12は、この依存関係250において同期先となる部分プログラム211の実行直前にプロセッサコア20の識別番号及び同期元の部分プログラム221の最終プログラムアドレス値を依存関係250に関する情報としてプログラムカウンタ監視部13に通知する。   As shown in FIG. 2, a dependency relationship 250 is set in the partial program 221 with the partial program 211 executed by the processor core 10. The execution unit 12 of the processor core 10 uses the identification number of the processor core 20 and the final program address value of the synchronization source partial program 221 as information about the dependency relationship 250 immediately before the execution of the partial program 211 that is the synchronization destination in the dependency relationship 250. The program counter monitoring unit 13 is notified.

プログラムカウンタ監視部13は、依存関係250に関する情報に含まれる識別番号で特定したプロセッサコア20のプログラムカウンタ11の値を参照し、この値と依存関係250に関する情報に含まれる部分プログラム221の最終プログラムアドレス値とを比較する。ここで、プロセッサコア20のプログラムカウンタ11の値が依存関係250に関する情報で特定された部分プログラム221の最終プログラムアドレス値よりも小さいと、プログラムカウンタ監視部13は、プロセッサコア20の実行部12が部分プログラム221の実行を終了していないと判断して、プロセッサコア10の実行部12に停止要求を通知する。   The program counter monitoring unit 13 refers to the value of the program counter 11 of the processor core 20 specified by the identification number included in the information related to the dependency relationship 250, and the final program of the partial program 221 included in the information related to this value and the dependency relationship 250 Compare the address value. Here, when the value of the program counter 11 of the processor core 20 is smaller than the final program address value of the partial program 221 specified by the information on the dependency relationship 250, the program counter monitoring unit 13 causes the execution unit 12 of the processor core 20 to It is determined that the execution of the partial program 221 has not ended, and a stop request is notified to the execution unit 12 of the processor core 10.

プロセッサコア10の実行部12は、上記停止要求を受けると、プログラム210の実行を一時停止する。この後、プログラムカウンタ監視部13は、プロセッサコア20のプログラムカウンタ11の値を逐次参照して上述の比較処理を継続する。この比較結果で部分プログラム221の実行が終了したと判定されるまで、プログラムカウンタ監視部13は、プロセッサコア10の実行部12へ停止要求を出力し続ける。これにより、プロセッサコア10の実行部12は、部分プログラム221の実行が終了するまで部分プログラム211の実行待機状態となる。   When the execution unit 12 of the processor core 10 receives the stop request, the execution unit 12 temporarily stops the execution of the program 210. Thereafter, the program counter monitoring unit 13 sequentially refers to the value of the program counter 11 of the processor core 20 and continues the above comparison process. The program counter monitoring unit 13 continues to output a stop request to the execution unit 12 of the processor core 10 until it is determined from the comparison result that the execution of the partial program 221 has ended. As a result, the execution unit 12 of the processor core 10 enters the execution standby state of the partial program 211 until the execution of the partial program 221 ends.

上記比較処理において、プロセッサコア20のプログラムカウンタ11の値が依存関係250に関する情報で特定された部分プログラム221の最終プログラムアドレス値よりも大きくなると、プログラムカウンタ監視部13は、プロセッサコア20の実行部12が部分プログラム221の実行を終了したものと判断して、プロセッサコア10の実行部12に上記停止要求の解除要求を通知する。プロセッサコア10の実行部12では、上記解除要求を受けると、プログラム210の実行を再開し、部分プログラム211の実行を開始する。このようにして、プロセッサコア20の実行部12が実行する部分プログラム221とプロセッサコア10の実行部12が実行する部分プログラム211との間の処理順序に関する依存関係250を満足することができる。   In the comparison process, when the value of the program counter 11 of the processor core 20 becomes larger than the final program address value of the partial program 221 specified by the information related to the dependency relationship 250, the program counter monitoring unit 13 executes the execution unit of the processor core 20. 12 determines that the execution of the partial program 221 has been completed, and notifies the execution unit 12 of the processor core 10 of the stop request cancellation request. When the execution unit 12 of the processor core 10 receives the release request, the execution of the program 210 is resumed and the execution of the partial program 211 is started. In this way, the dependency relationship 250 regarding the processing order between the partial program 221 executed by the execution unit 12 of the processor core 20 and the partial program 211 executed by the execution unit 12 of the processor core 10 can be satisfied.

次に、図3に示す例を用いて動作を説明する。
図3において、依存関係300で同期先となるプロセッサコア10の実行部12は、図2の場合と同様にして、部分プログラム312の実行直前に、プロセッサコア20の識別番号及び同期元の部分プログラム321の最終プログラムアドレス値を、依存関係300に関する情報としてプログラムカウンタ監視部13に通知する。
Next, the operation will be described using the example shown in FIG.
In FIG. 3, the execution unit 12 of the processor core 10 that is the synchronization destination in the dependency relationship 300 immediately before the execution of the partial program 312 performs the identification number of the processor core 20 and the synchronization source partial program in the same manner as in FIG. The program counter monitoring unit 13 is notified of the last program address value of 321 as information related to the dependency relationship 300.

プログラムカウンタ監視部13は、依存関係300に関する情報に含まれる識別番号を用いて特定したプロセッサコア20のプログラムカウンタ11の値を参照し、この値と依存関係300に関する情報に含まれる部分プログラム321の最終プログラムアドレス値とを比較する。ここで、プロセッサコア20のプログラムカウンタ11の値が、依存関係300に関する情報で特定された部分プログラム321の最終プログラムアドレス値より小さいと、プログラムカウンタ監視部13は、プロセッサコア20の実行部12が部分プログラム321の実行を終了していないと判断し、プロセッサコア10の実行部12に停止要求を通知する。   The program counter monitoring unit 13 refers to the value of the program counter 11 of the processor core 20 specified by using the identification number included in the information related to the dependency relationship 300, and the value of the partial program 321 included in the information related to this value and the dependency relationship 300. Compare the final program address value. Here, when the value of the program counter 11 of the processor core 20 is smaller than the final program address value of the partial program 321 specified by the information regarding the dependency relationship 300, the program counter monitoring unit 13 causes the execution unit 12 of the processor core 20 to It is determined that the execution of the partial program 321 has not ended, and a stop request is notified to the execution unit 12 of the processor core 10.

プロセッサコア10の実行部12は、上記停止要求を受けると、プログラム310の実行を一時停止する。これにより、プロセッサコア10の実行部12は、部分プログラム321の実行が終了するまで、部分プログラム312の実行待機状態となる。この後、プログラムカウンタ監視部13は、プロセッサコア20のプログラムカウンタ11の値を逐次参照して、上述の比較処理を継続する。   When the execution unit 12 of the processor core 10 receives the stop request, the execution unit 12 temporarily stops the execution of the program 310. As a result, the execution unit 12 of the processor core 10 enters an execution standby state of the partial program 312 until the execution of the partial program 321 ends. Thereafter, the program counter monitoring unit 13 sequentially refers to the value of the program counter 11 of the processor core 20 and continues the above-described comparison processing.

上記比較処理において、プロセッサコア20のプログラムカウンタ11の値が依存関係300に関する情報で特定された部分プログラム321の最終プログラムアドレス値よりも大きくなると、プログラムカウンタ監視部13は、プロセッサコア20の実行部12が部分プログラム321の実行を終了したものと判断して、プロセッサコア10の実行部12に上記停止要求の解除要求を通知する。プロセッサコア10の実行部12は、上記解除要求を受けると、プログラム310の実行を再開し、部分プログラム312の実行を開始する。   In the comparison process, when the value of the program counter 11 of the processor core 20 becomes larger than the final program address value of the partial program 321 specified by the information regarding the dependency relationship 300, the program counter monitoring unit 13 executes the execution unit of the processor core 20. 12 determines that the execution of the partial program 321 has ended, and notifies the execution unit 12 of the processor core 10 of the cancellation request cancellation request. Upon receiving the release request, the execution unit 12 of the processor core 10 resumes the execution of the program 310 and starts executing the partial program 312.

なお、プロセッサコア20の実行部12は、同期元となる部分プログラム321の終了時や部分プログラム322の開始時に、プロセッサコア10の実行部12と同期をとるための処理は行わない。   The execution unit 12 of the processor core 20 does not perform processing for synchronizing with the execution unit 12 of the processor core 10 when the partial program 321 serving as the synchronization source ends or when the partial program 322 starts.

また、プロセッサコア20の実行部12は、図2の場合と同様にして、部分プログラム323の実行直前に、プロセッサコア10の識別番号及び同期元の部分プログラム312の最終プログラムアドレス値を、依存関係301に関する情報としてプログラムカウンタ監視部23に通知する。   Similarly to the case of FIG. 2, the execution unit 12 of the processor core 20 sets the dependency number on the identification number of the processor core 10 and the final program address value of the synchronization source partial program 312 immediately before the execution of the partial program 323. This is notified to the program counter monitoring unit 23 as information about 301.

プログラムカウンタ監視部23では、依存関係301に関する情報に含まれる識別番号で特定したプロセッサコア10のプログラムカウンタ11の値を参照し、この値と依存関係301に関する情報に含まれる部分プログラム312の最終プログラムアドレス値とを比較する。ここで、プロセッサコア10のプログラムカウンタ11の値が依存関係301に関する情報で特定された部分プログラム312の最終プログラムアドレス値よりも小さいと、プログラムカウンタ監視部23は、プロセッサコア10の実行部12が部分プログラム312の実行を終了していないと判断し、プロセッサコア20の実行部12に停止要求を通知する。   The program counter monitoring unit 23 refers to the value of the program counter 11 of the processor core 10 specified by the identification number included in the information related to the dependency relationship 301, and the final program of the partial program 312 included in the information related to this value and the dependency relationship 301. Compare the address value. Here, when the value of the program counter 11 of the processor core 10 is smaller than the final program address value of the partial program 312 specified by the information related to the dependency relationship 301, the program counter monitoring unit 23 causes the execution unit 12 of the processor core 10 to execute. It is determined that the execution of the partial program 312 has not ended, and a stop request is notified to the execution unit 12 of the processor core 20.

プロセッサコア20の実行部12は、上記停止要求を受けると、プログラム320の実行を一時停止する。これにより、プロセッサコア20の実行部12は、部分プログラム312の実行が終了するまで、部分プログラム323の実行待機状態となる。この後、プログラムカウンタ監視部23は、プロセッサコア10のプログラムカウンタ11の値を逐次参照して、上述の比較処理を継続する。   When the execution unit 12 of the processor core 20 receives the stop request, the execution unit 12 temporarily stops the execution of the program 320. As a result, the execution unit 12 of the processor core 20 enters the execution standby state of the partial program 323 until the execution of the partial program 312 is completed. Thereafter, the program counter monitoring unit 23 sequentially refers to the value of the program counter 11 of the processor core 10 and continues the above comparison process.

上記比較処理において、プロセッサコア10のプログラムカウンタ11の値が依存関係301に関する情報で特定された部分プログラム312の最終プログラムアドレス値よりも大きくなると、プログラムカウンタ監視部23は、プロセッサコア10の実行部12が部分プログラム312の実行を終了したものと判断して、プロセッサコア20の実行部12に上記停止要求の解除要求を通知する。プロセッサコア20の実行部12では、上記解除要求を受けると、プログラム320の実行を再開し、部分プログラム323の実行を開始する。   In the comparison process, when the value of the program counter 11 of the processor core 10 becomes larger than the final program address value of the partial program 312 specified by the information related to the dependency relationship 301, the program counter monitoring unit 23 executes the execution unit of the processor core 10. 12 determines that the execution of the partial program 312 has been completed, and notifies the execution unit 12 of the processor core 20 of the cancellation request cancellation request. When the execution unit 12 of the processor core 20 receives the release request, the execution of the program 320 is resumed and the execution of the partial program 323 is started.

なお、プロセッサコア10の実行部12は、同期元となる部分プログラム312の終了時や部分プログラム313の開始時に、プロセッサコア20の実行部12と同期をとるための処理は行わない。   The execution unit 12 of the processor core 10 does not perform processing for synchronizing with the execution unit 12 of the processor core 20 when the partial program 312 serving as the synchronization source ends or when the partial program 313 starts.

続いて、分岐命令によるループ処理における動作について説明する。
プログラムカウンタ監視部13は、プロセッサコア10の実行部12から通知された部分プログラム323の最終プログラムアドレス値(分岐命令のアドレス値)とプロセッサコア20のプログラムカウンタ11の値とを比較して分岐処理に達したか否かを参照する。一方、プログラムカウンタ監視部23は、プロセッサコア20の実行部12から通知された部分プログラム314の最終プログラムアドレス値(分岐命令のアドレス値)とプロセッサコア10のプログラムカウンタ11の値とを比較して分岐処理に達したか否かを参照する。
Next, the operation in the loop processing by the branch instruction will be described.
The program counter monitoring unit 13 compares the final program address value (branch instruction address value) of the partial program 323 notified from the execution unit 12 of the processor core 10 with the value of the program counter 11 of the processor core 20 to perform branch processing. Refer to whether or not On the other hand, the program counter monitoring unit 23 compares the final program address value (the branch instruction address value) of the partial program 314 notified from the execution unit 12 of the processor core 20 with the value of the program counter 11 of the processor core 10. Refers to whether or not branch processing has been reached.

ここで、依存関係を有するプログラムを実行するプロセッサコア10,20の実行部12は、例えば以下のように動作する。これにより、互いが分岐処理に達したこと(部分プログラム314,323の最終プログラムアドレスを実行する段階)を確認してから分岐処理を実行する。
プロセッサコア10の実行部12は、部分プログラム314の最終プログラムアドレスの直前値まで処理が進み、分岐処理を実行する段階に達すると、部分プログラム314における分岐命令の実行を一時停止する。また、プロセッサコア20の実行部12は、部分プログラム323の最終プログラムアドレスの直前値まで処理が進み、分岐処理を実行する段階に達すると、部分プログラム323における分岐命令の実行を一時停止する。
Here, the execution units 12 of the processor cores 10 and 20 that execute the programs having the dependency relationship operate as follows, for example. As a result, the branch process is executed after confirming that each other has reached the branch process (the stage in which the final program addresses of the partial programs 314 and 323 are executed).
When the execution unit 12 of the processor core 10 proceeds to the value immediately before the final program address of the partial program 314 and reaches the stage of executing the branch processing, the execution of the branch instruction in the partial program 314 is temporarily stopped. Further, when the execution unit 12 of the processor core 20 proceeds to the value immediately before the final program address of the partial program 323 and reaches the stage of executing the branch processing, the execution of the branch instruction in the partial program 323 is temporarily stopped.

このとき、プログラムカウンタ監視部13は、プロセッサコア20のプログラムカウンタ11の値が部分プログラム323の最終プログラムアドレスの直前値になると、実行停止の解除要求をプロセッサコア10の実行部12へ通知する。プロセッサコア10の実行部12は、上記解除要求を受けると、部分プログラム311へ分岐して処理を再開する。このように、プロセッサコア10の実行部12は、依存関係にあるプログラムを実行するプロセッサコア20の実行部12が分岐処理に達したことを確認した後に部分プログラム311の処理を開始する。   At this time, when the value of the program counter 11 of the processor core 20 becomes the value immediately before the final program address of the partial program 323, the program counter monitoring unit 13 notifies the execution unit 12 of the processor core 10 of the execution stop cancellation request. When receiving the release request, the execution unit 12 of the processor core 10 branches to the partial program 311 and resumes processing. As described above, the execution unit 12 of the processor core 10 starts the processing of the partial program 311 after confirming that the execution unit 12 of the processor core 20 that executes the program having the dependency relationship has reached the branching process.

一方、プログラムカウンタ監視部23は、プロセッサコア10のプログラムカウンタ11の値が部分プログラム314の最終プログラムアドレスの直前値になると、実行停止の解除要求をプロセッサコア20の実行部12へ通知する。プロセッサコア20の実行部12は、上記解除要求を受けると、部分プログラム323へ分岐して処理を再開する。このように、プロセッサコア20の実行部12も、依存関係にあるプログラムを実行するプロセッサコア10の実行部12が分岐処理に達したことを確認した後に部分プログラム321の処理を再開する。   On the other hand, when the value of the program counter 11 of the processor core 10 becomes a value immediately before the final program address of the partial program 314, the program counter monitoring unit 23 notifies the execution unit 12 of the processor core 20 of a request for canceling execution stop. Upon receiving the release request, the execution unit 12 of the processor core 20 branches to the partial program 323 and resumes processing. As described above, the execution unit 12 of the processor core 20 also restarts the processing of the partial program 321 after confirming that the execution unit 12 of the processor core 10 that executes the program having the dependency relationship has reached the branching process.

以上のように、この実施の形態1によれば、プロセッサコア10,20,30,40と、プロセッサコア10,20,30,40のそれぞれに対応して設けられ、自己に対応するプロセッサコアで実行されるプログラムのアドレス値を保持するプログラムカウンタ11と、プロセッサコア10,20,30,40のそれぞれに対応して設けられ、自己に対応するプロセッサコアから指定された同期相手のプロセッサコアに対応するプログラムカウンタ11の値と同期先のプログラムの実行に先行して同期相手のプロセッサコアで実行される同期元のプログラムの最終プログラムアドレス値との比較結果に応じて、自己に対応するプロセッサコアによる同期先のプログラムの実行可否を制御するプログラムカウンタ監視部13,23,33,43とを備えたので、プログラムカウンタ監視部13,23,33,43が、同期元のプログラムの実行状況に応じて同期先のプログラムの実行を待機させることができ、同期元のプログラムを実行するプロセッサコアに同期のための特別な処理を追加することなく、プロセッサコア間の同期をとることができる。   As described above, according to the first embodiment, the processor cores 10, 20, 30, 40 and the processor cores 10, 20, 30, 40 are provided corresponding to the processor cores 10, 20, 30, 40. The program counter 11 that holds the address value of the program to be executed and the processor cores 10, 20, 30, and 40 are provided in correspondence with the processor core of the synchronization partner designated by the processor core corresponding to itself. Depending on the comparison result between the value of the program counter 11 to be executed and the final program address value of the synchronization source program executed by the synchronization partner processor core prior to the execution of the synchronization destination program, Program counter monitoring units 13, 23, 33, 4 that control whether or not to execute the synchronization destination program Therefore, the program counter monitoring units 13, 23, 33, and 43 can wait for the execution of the synchronization destination program according to the execution status of the synchronization source program, and execute the synchronization source program. Synchronization between processor cores can be achieved without adding special processing for synchronization to the cores.

なお、上記実施の形態1では、回路構成としてプロセッサコアの数が4つである場合を示し、2つのプロセッサコア間での処理について説明したが、4つ以外のコア数で構成してもよく、また3つ以上のプロセッサコア間で処理を行う場合であっても有効である。   In the first embodiment, the case where the number of processor cores is four is shown as the circuit configuration, and the processing between the two processor cores has been described. However, the number of cores other than four may be configured. It is also effective when processing is performed between three or more processor cores.

実施の形態2.
図4は、この発明の実施の形態2によるマルチコアプロセッサの構成を示すブロック図であり、特にプログラムカウンタ監視部の詳細な構成を示している。なお、図1で示した構成要素に相当するものには同一符号を付している。図4において、実施の形態2によるプログラムカウンタ監視部13は、プログラムレジスタ400及び監視実行部404を備える。また、プログラムレジスタ400は、プロセッサコア10との間で同期してプログラムを実行するプロセッサコアのプログラムカウンタ11の監視用情報が設定されるレジスタであり、プロセッサコア番号レジスタ401、プログラムアドレスレジスタ402及び有効フラグレジスタ403を備える。
Embodiment 2. FIG.
FIG. 4 is a block diagram showing the configuration of the multi-core processor according to the second embodiment of the present invention, and particularly shows the detailed configuration of the program counter monitoring unit. In addition, the same code | symbol is attached | subjected to the thing corresponded to the component shown in FIG. In FIG. 4, the program counter monitoring unit 13 according to the second embodiment includes a program register 400 and a monitoring execution unit 404. The program register 400 is a register in which monitoring information of the program counter 11 of the processor core that executes a program synchronously with the processor core 10 is set. The processor core number register 401, the program address register 402, A valid flag register 403 is provided.

プロセッサコア番号レジスタ401には、同期元となる部分プログラムを実行するプロセッサコアの識別番号を設定し、プログラムアドレスレジスタ402には、上記同期元の部分プログラムの最終プログラムアドレス値を設定する。また、有効フラグレジスタ403には、プログラムカウンタ監視部13の監視機能が有効か否かを示すフラグ値を設定する。監視実行部404は、プロセッサコア番号レジスタ401に設定された識別番号で特定したプロセッサコアのプログラムカウンタ11の値とプログラムアドレスレジスタ402の値とを比較し、この比較結果に応じてプログラム実行の停止要求及びその解除要求をプロセッサコア10の実行部12に通知する。   In the processor core number register 401, the identification number of the processor core that executes the synchronization source partial program is set, and in the program address register 402, the final program address value of the synchronization source partial program is set. In the valid flag register 403, a flag value indicating whether the monitoring function of the program counter monitoring unit 13 is valid is set. The monitoring execution unit 404 compares the value of the program counter 11 of the processor core specified by the identification number set in the processor core number register 401 with the value of the program address register 402, and stops program execution according to the comparison result. The request and its release request are notified to the execution unit 12 of the processor core 10.

なお、図4では、プロセッサコア10及びこれに対応するプログラムカウンタ監視部13の構成を示したが、図1に示すプロセッサコア20,30,40及びこれに対応するプログラムカウンタ監視部23,33,43も同様の構成であってもよい。また、プロセッサコア及びこれに対応するプログラムカウンタ監視部の数は、4つ以外であってもよい。   4 shows the configuration of the processor core 10 and the program counter monitoring unit 13 corresponding thereto, the processor cores 20, 30, and 40 shown in FIG. 1 and the corresponding program counter monitoring units 23, 33, 43 may have the same configuration. Also, the number of processor cores and the corresponding program counter monitoring units may be other than four.

次に動作について説明する。
プロセッサコア10の実行部12は、同期先のプログラムを実行するにあたり、プログラムカウンタ監視部13の有効フラグレジスタ403に監視機能の有効を示す値を設定する。例えば、図2に示す部分プログラム211では、この部分プログラム211を同期先とする依存関係250が設定されているため、プロセッサコア10の実行部12は、プログラムカウンタ監視部13の有効フラグレジスタ403に対して監視機能の有効を示す値を設定する。
Next, the operation will be described.
When executing the synchronization destination program, the execution unit 12 of the processor core 10 sets a value indicating the validity of the monitoring function in the validity flag register 403 of the program counter monitoring unit 13. For example, in the partial program 211 shown in FIG. 2, since the dependency relationship 250 having the partial program 211 as a synchronization destination is set, the execution unit 12 of the processor core 10 stores the valid flag register 403 of the program counter monitoring unit 13. Set a value indicating that the monitoring function is enabled.

さらに、プロセッサコア10の実行部12は、依存関係250で同期元となる部分プログラム221を実行するプロセッサコア20の識別番号を、プログラムカウンタ監視部13のプロセッサコア番号レジスタ401に設定し、同期元となる部分プログラム221の最終プログラムアドレス値を、プログラムカウンタ監視部13のプログラムアドレスレジスタ402に設定する。   Furthermore, the execution unit 12 of the processor core 10 sets the identification number of the processor core 20 that executes the partial program 221 that is the synchronization source in the dependency relationship 250 in the processor core number register 401 of the program counter monitoring unit 13, and the synchronization source The final program address value of the partial program 221 is set in the program address register 402 of the program counter monitoring unit 13.

有効フラグレジスタ403に監視機能の有効を示す値が設定されると、監視実行部404が、プロセッサコア番号レジスタ401で特定されるプロセッサコア20のプログラムカウンタ11の値を読み込み、この値とプログラムアドレスレジスタ402の値とを比較する。ここで、プロセッサコア20のプログラムカウンタ11の値が、プログラムアドレスレジスタ402の値よりも小さいと、監視実行部404は、プロセッサコア20の実行部12が部分プログラム221の実行を終了していないと判断して、プロセッサコア10の実行部12に停止要求を通知する。   When a value indicating that the monitoring function is valid is set in the valid flag register 403, the monitoring execution unit 404 reads the value of the program counter 11 of the processor core 20 specified by the processor core number register 401, and this value and the program address The value of the register 402 is compared. Here, when the value of the program counter 11 of the processor core 20 is smaller than the value of the program address register 402, the monitoring execution unit 404 indicates that the execution unit 12 of the processor core 20 has not finished executing the partial program 221. The determination is made and a stop request is notified to the execution unit 12 of the processor core 10.

プロセッサコア10の実行部12は、上記停止要求を受けると、プログラム210の実行を一時停止する。この後、監視実行部404は、プロセッサコア20のプログラムカウンタ11の値を逐次参照して上述の比較処理を継続する。この比較結果で部分プログラム221の実行が終了したと判定されるまで、監視実行部404は、プロセッサコア10の実行部12へ停止要求を出力し続ける。これにより、プロセッサコア10の実行部12は、部分プログラム221の実行が終了するまで部分プログラム211の実行待機状態となる。   When the execution unit 12 of the processor core 10 receives the stop request, the execution unit 12 temporarily stops the execution of the program 210. Thereafter, the monitoring execution unit 404 sequentially refers to the value of the program counter 11 of the processor core 20 and continues the above comparison process. The monitoring execution unit 404 continues to output a stop request to the execution unit 12 of the processor core 10 until it is determined from the comparison result that the execution of the partial program 221 has ended. As a result, the execution unit 12 of the processor core 10 enters the execution standby state of the partial program 211 until the execution of the partial program 221 ends.

上記比較処理において、プロセッサコア20のプログラムカウンタ11の値がプログラムアドレスレジスタ402の値よりも大きくなると、監視実行部404は、プロセッサコア20の実行部12が部分プログラム221の実行を終了したものと判断して、プロセッサコア10の実行部12に上記停止要求の解除要求を通知する。プロセッサコア10の実行部12では、上記解除要求を受けると、プログラム210の実行を再開し、部分プログラム211の実行を開始する。プロセッサコア10とプロセッサコア20との同期処理が終了すると、監視実行部404は、すみやかに有効フラグレジスタ403のフラグ値をクリアし、監視機能を無効にする。   In the comparison process, when the value of the program counter 11 of the processor core 20 becomes larger than the value of the program address register 402, the monitoring execution unit 404 indicates that the execution unit 12 of the processor core 20 has finished executing the partial program 221. The determination is made, and the stop request cancellation request is notified to the execution unit 12 of the processor core 10. When the execution unit 12 of the processor core 10 receives the release request, the execution of the program 210 is resumed and the execution of the partial program 211 is started. When the synchronization processing between the processor core 10 and the processor core 20 is finished, the monitoring execution unit 404 immediately clears the flag value of the valid flag register 403 and disables the monitoring function.

以上のように、この実施の形態2によれば、プログラムカウンタ監視部13,23,33,43が、自己に対応するプロセッサコアから指定されたプロセッサコアの識別番号及びこのプロセッサコアで実行される同期元のプログラムのアドレス値を保持するプログラムレジスタ400と、プログラムレジスタ400から識別番号及び同期元のプログラムのアドレス値を取得し、この識別番号のプロセッサコアに対応するプログラムカウンタの値と同期元のプログラムのアドレス値との比較結果に応じて、自己に対応するプロセッサコアによる同期先のプログラムの実行可否を制御する監視実行部404とを備えたので、プロセッサコアがプログラムを実行するにあたり、専用のレジスタ400に監視用情報を書き込むだけで、プログラムカウンタの監視処理を行うことができる。   As described above, according to the second embodiment, the program counter monitoring units 13, 23, 33, and 43 are executed by the processor core identification number designated by the processor core corresponding to the program counter monitoring unit 13, and the processor core. The program register 400 holding the address value of the synchronization source program, the identification number and the address value of the synchronization source program are acquired from the program register 400, and the value of the program counter corresponding to the processor core of this identification number and the synchronization source In accordance with the comparison result with the address value of the program, the monitoring execution unit 404 that controls whether or not the synchronization target program can be executed by the processor core corresponding to itself is provided. Simply write monitoring information to register 400, It is possible to carry out the monitoring process of the data.

なお、上記実施の形態2では、図4に示すようにプロセッサコア番号レジスタ401、プログラムアドレスレジスタ402及び有効フラグレジスタ403として、プログラムレジスタ400を構成する複数のレジスタをそれぞれ割り当てた場合を示したが、本発明はこれに限定されるものではない。   In the second embodiment, the case where a plurality of registers constituting the program register 400 are assigned as the processor core number register 401, the program address register 402, and the valid flag register 403 as shown in FIG. However, the present invention is not limited to this.

例えば、図5に示すように、1つのレジスタをプログラムカウンタ監視レジスタ410とし、そのビットフィールドを、有効フラグを設定する領域、プロセッサコア番号を設定する領域、プログラムアドレス(同期元のプログラムの最終プログラムアドレス値)を設定する領域として割り当ててもよい。   For example, as shown in FIG. 5, one register is a program counter monitoring register 410, and its bit fields are an area for setting a valid flag, an area for setting a processor core number, a program address (the final program of a synchronization source program) (Address value) may be assigned as an area for setting.

また、上記実施の形態2において、プログラムレジスタ400やプログラムカウンタ監視レジスタ410を1つのプログラムカウンタ監視部内に複数備えてもよい。この場合、複数のプロセッサコア間で実行されるプログラムの依存関係に応じてプログラムレジスタ400やプログラムカウンタ監視レジスタ410に値をそれぞれ設定することで、複数の依存関係に対するプログラムカウンタ11の監視を同時に実行することができる。   In the second embodiment, a plurality of program registers 400 and program counter monitoring registers 410 may be provided in one program counter monitoring unit. In this case, by setting values in the program register 400 and the program counter monitoring register 410 in accordance with the dependency relationship of the program executed between the plurality of processor cores, the monitoring of the program counter 11 for the plurality of dependency relationships is simultaneously executed. can do.

さらに、プロセッサコア番号レジスタを除く、プログラムレジスタ400のプロセッサコア番号レジスタ及び有効フラグレジスタをプロセッサコア内に設けてもよい。   Further, the processor core number register and the valid flag register of the program register 400 except for the processor core number register may be provided in the processor core.

実施の形態3.
この実施の形態3は、プログラムカウンタ監視部による監視処理を専用命令で実行するようにしたものである。
図6は、この発明の実施の形態3によるマルチコアプロセッサの構成を示すブロック図であり、特にプログラムカウンタ監視部の詳細な構成を示している。なお、図4で示した構成要素に相当するものには同一符号を付している。また、図7は、図6中のプロセッサコアの実行部で実行される専用命令の命令コードの一例を示す図である。
Embodiment 3 FIG.
In the third embodiment, the monitoring process by the program counter monitoring unit is executed by a dedicated instruction.
FIG. 6 is a block diagram showing the configuration of the multi-core processor according to the third embodiment of the present invention, and particularly shows the detailed configuration of the program counter monitoring unit. In addition, the same code | symbol is attached | subjected to the thing corresponded to the component shown in FIG. FIG. 7 is a diagram illustrating an example of an instruction code of a dedicated instruction executed by the execution unit of the processor core in FIG.

実施の形態3によるプログラムカウンタ監視部13では、図6中で実行部12から監視実行部404へ向けて矢印で示すように、監視実行部404が、プロセッサコア10の実行部12で実行されるプログラム中の専用命令の命令コードで特定されたデータを受けて監視処理を実行する。また、専用命令の命令コード500は、図7に示すように専用命令識別子501、プロセッサコア番号502及びプログラムアドレス503を含んで構成される。   In the program counter monitoring unit 13 according to the third embodiment, the monitoring execution unit 404 is executed by the execution unit 12 of the processor core 10 as indicated by an arrow from the execution unit 12 to the monitoring execution unit 404 in FIG. The monitoring process is executed in response to the data specified by the instruction code of the dedicated instruction in the program. The instruction code 500 of the dedicated instruction includes a dedicated instruction identifier 501, a processor core number 502, and a program address 503 as shown in FIG.

ここで、専用命令識別子501は、命令コード500が専用命令であることを示す識別子である。プロセッサコア番号502は、依存関係で同期元となるプロセッサコアを識別するための識別番号である。また、プログラムアドレス503は、依存関係で同期元となる部分プログラムの最終プログラムアドレス値である。   Here, the dedicated instruction identifier 501 is an identifier indicating that the instruction code 500 is a dedicated instruction. The processor core number 502 is an identification number for identifying the processor core that is the synchronization source in the dependency relationship. The program address 503 is the final program address value of the partial program that becomes the synchronization source due to the dependency.

なお、図6では、プロセッサコア10及びこれに対応するプログラムカウンタ監視部13についての構成を示したが、図1に示すプロセッサコア20,30,40及びこれに対応するプログラムカウンタ監視部23,33,43も同様に構成してもよい。また、プロセッサコア及びこれに対応するプログラムカウンタ監視部の数は、4つ以外であってもよい。   6 shows the configuration of the processor core 10 and the program counter monitoring unit 13 corresponding thereto, the processor cores 20, 30, 40 and the corresponding program counter monitoring units 23, 33 shown in FIG. , 43 may be similarly configured. Also, the number of processor cores and the corresponding program counter monitoring units may be other than four.

次に動作について説明する。
プロセッサコア10の実行部12は、自己に割り当てられたプログラムを格納するメモリから、当該プログラムを構成する命令コードを読み込んで実行する。ここで、プロセッサコア10の実行部12は、図7に示す命令コード500中の専用命令識別子501の値から命令コード500が専用命令であることを特定し、命令コード500からプロセッサコア番号502及びプログラムアドレス503を抽出する。続いて、プロセッサコア10の実行部12は、命令コード500から抽出したプロセッサコア番号502及びプログラムアドレス503を、依存関係に関する情報としてプログラムカウンタ監視部13へ出力する。
Next, the operation will be described.
The execution unit 12 of the processor core 10 reads and executes an instruction code constituting the program from a memory storing the program assigned to itself. Here, the execution unit 12 of the processor core 10 specifies that the instruction code 500 is a dedicated instruction from the value of the dedicated instruction identifier 501 in the instruction code 500 shown in FIG. The program address 503 is extracted. Subsequently, the execution unit 12 of the processor core 10 outputs the processor core number 502 and the program address 503 extracted from the instruction code 500 to the program counter monitoring unit 13 as information on the dependency relationship.

ここでは、図2に示す依存関係250についての同期処理を例に挙げる。つまり、専用命令が部分プログラム211の直前のアドレスに設定されており、プロセッサコア番号502でプロセッサコア20が特定され、プログラムアドレス503は、部分プログラム221の最終プログラムアドレス値であるものとする。   Here, a synchronization process for the dependency relationship 250 shown in FIG. 2 is taken as an example. That is, it is assumed that the dedicated instruction is set at the address immediately before the partial program 211, the processor core 20 is specified by the processor core number 502, and the program address 503 is the final program address value of the partial program 221.

プログラムカウンタ監視部13の監視実行部404では、依存関係250に関する情報から取得したプロセッサコア番号502でプロセッサコア20を特定し、プロセッサコア20のプログラムカウンタ11の値と依存関係250で同期元となる部分プログラム221のプログラムアドレス503の値とを比較する。ここで、プロセッサコア番号502で特定されたプロセッサコア20のプログラムカウンタ11の値がプログラムアドレス503の値よりも小さいと、監視実行部404は、プロセッサコア20の実行部12が部分プログラム221の実行を終了していないと判断して、プロセッサコア10の実行部12に停止要求を通知する。   In the monitoring execution unit 404 of the program counter monitoring unit 13, the processor core 20 is identified by the processor core number 502 acquired from the information related to the dependency relationship 250, and becomes the synchronization source based on the value of the program counter 11 of the processor core 20 and the dependency relationship 250. The value of the program address 503 of the partial program 221 is compared. Here, if the value of the program counter 11 of the processor core 20 specified by the processor core number 502 is smaller than the value of the program address 503, the monitoring execution unit 404 causes the execution unit 12 of the processor core 20 to execute the partial program 221. Is not finished, and a stop request is notified to the execution unit 12 of the processor core 10.

プロセッサコア10の実行部12は、上記停止要求を受けると、プログラム210の実行を一時停止する。この後、監視実行部404は、プロセッサコア20のプログラムカウンタ11の値を逐次参照して上述の比較処理を継続する。この比較結果で部分プログラム221の実行が終了したと判定されるまで、監視実行部404は、プロセッサコア10の実行部12へ停止要求を出力し続ける。これにより、プロセッサコア10の実行部12は、部分プログラム221の実行が終了するまで部分プログラム211の実行待機状態となる。   When the execution unit 12 of the processor core 10 receives the stop request, the execution unit 12 temporarily stops the execution of the program 210. Thereafter, the monitoring execution unit 404 sequentially refers to the value of the program counter 11 of the processor core 20 and continues the above comparison process. The monitoring execution unit 404 continues to output a stop request to the execution unit 12 of the processor core 10 until it is determined from the comparison result that the execution of the partial program 221 has ended. As a result, the execution unit 12 of the processor core 10 enters the execution standby state of the partial program 211 until the execution of the partial program 221 ends.

また、上記比較処理において、プロセッサコア20のプログラムカウンタ11の値がプログラムアドレスレジスタ402の値よりも大きくなると、監視実行部404は、プロセッサコア20の実行部12が部分プログラム221の実行を終了したものと判断して、プロセッサコア10の実行部12に上記停止要求の解除要求を通知する。プロセッサコア10の実行部12では、上記解除要求を受けると、プログラム210の実行を再開し、部分プログラム211の実行を開始する。   In the comparison process, when the value of the program counter 11 of the processor core 20 becomes larger than the value of the program address register 402, the monitoring execution unit 404 causes the execution unit 12 of the processor core 20 to finish executing the partial program 221. It is determined that the stop request is released to the execution unit 12 of the processor core 10. When the execution unit 12 of the processor core 10 receives the release request, the execution of the program 210 is resumed and the execution of the partial program 211 is started.

以上のように、この実施の形態3によれば、プロセッサコアが、プロセッサコアの識別番号及びこのプロセッサコアで実行される同期元のプログラムのアドレス値が設定された専用命令を実行することにより、識別番号及び同期元のプログラムのアドレス値を監視情報として自己に対応するプログラムカウンタ監視部に出力し、このプログラムカウンタ監視部が、監視情報で指定された識別番号のプロセッサコアに対応するプログラムカウンタの値と同期元のプログラムのアドレス値との比較結果に応じて、自己に対応するプロセッサコアによる同期先のプログラムの実行可否を制御する監視実行部404を備えたので、プログラムカウンタ監視部にレジスタ機能を持たすことなく、同期処理を実現することができる。   As described above, according to the third embodiment, the processor core executes the dedicated instruction in which the processor core identification number and the address value of the synchronization source program executed in the processor core are set. The identification number and the address value of the synchronization source program are output as monitoring information to the program counter monitoring unit corresponding to itself, and the program counter monitoring unit displays the program counter corresponding to the processor core of the identification number specified by the monitoring information. Since the monitoring execution unit 404 that controls whether or not the synchronization destination program can be executed by the processor core corresponding to the value according to the comparison result between the value and the address value of the synchronization source program is provided, a register function is provided in the program counter monitoring unit. The synchronization process can be realized without having

なお、上記実施の形態3において、実行部12によって専用命令が実行されることで、プログラムカウンタ監視部の監視機能が有効になる。このため、図4に示した有効フラグレジスタ403に該当する情報は命令コード500には含まれない。   In the third embodiment, the monitoring function of the program counter monitoring unit becomes effective when the execution unit 12 executes the dedicated instruction. For this reason, the information corresponding to the valid flag register 403 shown in FIG.

実施の形態4.
上記実施の形態1〜3では、同期元のプログラムの最終プログラムアドレス値を直接指定する場合を示した。これに対し、この実施の形態4は、プログラムカウンタ監視部で取り扱われるプログラムアドレスやプログラムカウンタ11の値として、各プロセッサコア10,20,30,40が実行するプログラムの先頭番地を基準とするオフセットアドレスを用いることにより、プログラムの配置変更(アドレス変更)に柔軟に対応できるようにしている。
Embodiment 4 FIG.
In the first to third embodiments, the case where the final program address value of the synchronization source program is directly specified has been described. On the other hand, in the fourth embodiment, the program address handled by the program counter monitoring unit and the value of the program counter 11 are offset based on the start address of the program executed by each processor core 10, 20, 30, 40. By using the address, it is possible to flexibly cope with the program layout change (address change).

図8は、この発明の実施の形態4によるマルチコアプロセッサにおけるプロセッサコアの構成を示すブロック図であり、図1で示した構成要素に相当するものには同一符号を付している。図8において、実施の形態4によるプロセッサコア10は、プログラムカウンタ11及び実行部12に加え、オフセット計算部14及びベースアドレスレジスタ15を備える。   FIG. 8 is a block diagram showing a configuration of a processor core in a multi-core processor according to Embodiment 4 of the present invention. Components corresponding to those shown in FIG. 1 are denoted by the same reference numerals. In FIG. 8, the processor core 10 according to the fourth embodiment includes an offset calculation unit 14 and a base address register 15 in addition to the program counter 11 and the execution unit 12.

オフセット計算部14は、プロセッサコア10のプログラムカウンタ11の値からベースアドレスレジスタ15の値を減算したオフセット値を、プログラムカウンタ11の値としてプログラムカウンタ監視部23,33,43へ出力する。ベースアドレスレジスタ15は、プロセッサコア10の実行部12が実行するプログラムの配置領域(アドレス)の変更に応じてオフセット値が同じ値になるように一定のベースアドレス値が設定される。   The offset calculation unit 14 outputs an offset value obtained by subtracting the value of the base address register 15 from the value of the program counter 11 of the processor core 10 to the program counter monitoring units 23, 33, and 43 as the value of the program counter 11. A fixed base address value is set in the base address register 15 so that the offset value becomes the same value according to the change of the arrangement area (address) of the program executed by the execution unit 12 of the processor core 10.

なお、図8では、プロセッサコア10についての構成を示したが、図1に示すプロセッサコア20,30,40も同様に構成してもよい。また、プロセッサコアの数は、4つ以外であってもよい。   8 shows the configuration of the processor core 10, the processor cores 20, 30, and 40 shown in FIG. 1 may be configured in the same manner. Further, the number of processor cores may be other than four.

次に動作について説明する。
プロセッサコア10の実行部12は、メモリからプログラムを読み込み、これを実行する。このとき、オフセット計算部14は、プログラムカウンタ11に設定された上記プログラムのアドレス値とベースアドレスレジスタ15の値とを読み込み、これらの値を減算してオフセット値を求める。このオフセット値は、プロセッサコア10のプログラムカウンタ11の値として、オフセット計算部14から他のプロセッサコア20,30,40に対応するプログラムカウンタ監視部23,33,43へそれぞれ出力される。
Next, the operation will be described.
The execution unit 12 of the processor core 10 reads a program from the memory and executes it. At this time, the offset calculation unit 14 reads the address value of the program set in the program counter 11 and the value of the base address register 15, and subtracts these values to obtain the offset value. This offset value is output as the value of the program counter 11 of the processor core 10 from the offset calculation unit 14 to the program counter monitoring units 23, 33, and 43 corresponding to the other processor cores 20, 30, and 40, respectively.

また、プログラムカウンタ監視部23,33,43には、プロセッサコア20,30,40の実行部12から、プロセッサコア10で実行される同期元のプログラム(プロセッサコア20,30,40の実行部12が実行するプログラムを同期先とした依存関係を有するプログラム)の最終プログラムアドレス値が、プロセッサコア10で実行されるプログラムの先頭番地からのオフセットとして与えられる。   Further, the program counter monitoring units 23, 33, and 43 receive synchronization source programs (execution units 12 of the processor cores 20, 30, and 40) executed by the processor core 10 from the execution units 12 of the processor cores 20, 30, and 40. The last program address value of the program executed by the processor core 10 is given as an offset from the start address of the program executed by the processor core 10.

ここで、プロセッサコア10で実行するプログラムの配置領域が変更された場合、プログラム配置が変更される前のオフセット値と同じ値となるようにベースアドレスレジスタ15の値を設定する。このようにすることで、プロセッサコア20,30,40の実行部12が同期先としてプログラムを処理するにあたり、同期元のプログラムのプログラムアドレスを変更する必要がない。   Here, when the arrangement area of the program executed by the processor core 10 is changed, the value of the base address register 15 is set to be the same value as the offset value before the program arrangement is changed. In this way, when the execution unit 12 of the processor cores 20, 30, and 40 processes a program as a synchronization destination, it is not necessary to change the program address of the synchronization source program.

以上のように、この実施の形態4によれば、プロセッサコアが、ベース値が設定されるベースアドレスレジスタ15と、自己に対応するプログラムカウンタの値からベースアドレスレジスタ15のベース値を減算したオフセット値を、自己に対応するプログラムカウンタ11の値として自己以外に対応するプログラムカウンタ監視部へ出力するオフセット計算部14とを備え、プログラムカウンタ監視部が、自己に対応するプロセッサコアによる同期先のプログラムの実行可否を制御するにあたり、ベース値で規定されるオフセット値で表されたプログラムカウンタ11の値と同期元のプログラムのアドレス値とを比較するので、プログラムの配置変更(アドレス変更)に柔軟に対応することができる。   As described above, according to the fourth embodiment, the processor core subtracts the base address register 15 in which the base value is set and the base value of the base address register 15 from the value of the program counter corresponding to itself. An offset calculation unit 14 that outputs a value to a program counter monitoring unit corresponding to a program counter 11 other than itself as a value of the program counter 11 corresponding to itself, and the program counter monitoring unit is a synchronization destination program by the processor core corresponding to itself In controlling whether or not to execute the program, the value of the program counter 11 represented by the offset value defined by the base value is compared with the address value of the synchronization source program, so that the program layout can be changed flexibly (address change). Can respond.

なお、上述した説明では、上記実施の形態1に対して上記実施の形態4を適用する場合を示したが、上記実施の形態2、3に適用しても構わない。   In the above description, the case in which the fourth embodiment is applied to the first embodiment has been described. However, the present invention may be applied to the second and third embodiments.

実施の形態5.
上記実施の形態1では、アドレスを昇順にプログラムが実行され、プログラムの実行に伴ってプログラムカウンタ11の値が大きくなる場合を前提としている。例えば、図2に示した部分プログラム222の最終プログラムアドレスに部分プログラム223へ分岐する分岐命令があり、部分プログラム221が部分プログラム211の開始タイミングよりも早く終わった場合を考える。この場合、プログラムカウンタ監視部13が部分プログラム221の実行終了の判定を開始する前であっても、プロセッサコア20の実行部12が上記分岐命令を実行すれば、部分プログラム223の実行へ分岐する。
Embodiment 5 FIG.
In the first embodiment, it is assumed that the program is executed in ascending order of the addresses, and the value of the program counter 11 increases as the program is executed. For example, consider a case where there is a branch instruction for branching to the partial program 223 at the final program address of the partial program 222 shown in FIG. 2 and the partial program 221 ends earlier than the start timing of the partial program 211. In this case, even before the program counter monitoring unit 13 starts determining whether or not the execution of the partial program 221 has started, if the execution unit 12 of the processor core 20 executes the branch instruction, the execution branches to the execution of the partial program 223. .

このとき、プロセッサコア20のプログラムカウンタ11は、部分プログラム221の実行が終了しているにも関わらず、部分プログラム221の最終プログラムアドレス値よりも小さい値に戻る。この場合、プロセッサコア20のプログラムカウンタ11の値と依存関係250に関する情報に含まれる部分プログラム221の最終プログラムアドレス値とを比較した結果だけでは、部分プログラム221の実行が終了しているか否かを正確に判定することができない。   At this time, the program counter 11 of the processor core 20 returns to a value smaller than the final program address value of the partial program 221 even though the execution of the partial program 221 has ended. In this case, whether or not the execution of the partial program 221 has ended is determined only by comparing the value of the program counter 11 of the processor core 20 with the final program address value of the partial program 221 included in the information on the dependency relationship 250. It cannot be determined accurately.

この実施の形態5は、分岐命令のように部分プログラムの外に分岐することでプログラムカウンタ11の値が昇順でなくなる命令が部分プログラムに含まれていても、分岐元のプログラムアドレスを保持するカウンタ値保持部を設けることにより、プログラムカウンタ監視部が正確に判定できるようにしたものである。   In the fifth embodiment, even if an instruction in which the value of the program counter 11 is not in ascending order by branching out of the partial program, such as a branch instruction, is included in the partial program, the counter that holds the program address of the branch source By providing a value holding unit, the program counter monitoring unit can accurately determine.

図9は、この発明の実施の形態5によるマルチコアプロセッサにおけるプロセッサコアの構成を示すブロック図であ、図1で示した構成要素に相当するものには同一符号を付している。図9において、実施の形態5によるプロセッサコア10は、プログラムカウンタ11及び実行部12に加え、カウンタ値保持部16を備える。カウンタ値保持部16は、実行部12が実行する命令に応じてプログラムカウンタ11の値を保持し、保持した値を他のプロセッサコアに対応するプログラムカウンタ監視部23,33,43へ出力する。   FIG. 9 is a block diagram showing a configuration of a processor core in a multi-core processor according to Embodiment 5 of the present invention. Components corresponding to those shown in FIG. 1 are denoted by the same reference numerals. In FIG. 9, the processor core 10 according to the fifth embodiment includes a counter value holding unit 16 in addition to the program counter 11 and the execution unit 12. The counter value holding unit 16 holds the value of the program counter 11 in accordance with an instruction executed by the execution unit 12, and outputs the held value to the program counter monitoring units 23, 33, and 43 corresponding to other processor cores.

上記実施の形態1〜4では、プロセッサコアの動作状況を示すプログラムカウンタ11の値をそのままプログラムカウンタ監視部へ出力していた。これに対して、この実施の形態5では、プロセッサコアの動作状況に応じてカウンタ値保持部16で保持したプログラムカウンタ11の値を出力する。   In the first to fourth embodiments, the value of the program counter 11 indicating the operation status of the processor core is directly output to the program counter monitoring unit. On the other hand, in the fifth embodiment, the value of the program counter 11 held by the counter value holding unit 16 is output according to the operating state of the processor core.

例えば、CALL命令とRET命令の組み合わせによるサブルーチン処理や割り込み処理などのように、分岐した後で戻ってくることが予測される処理であっても、分岐処理している間のプログラムカウンタ11の値を分岐直前に保持した値とする。これによって、分岐先のプログラムカウンタ11を用いた依存関係の判定を防ぐことができ、分岐先のプログラムを実行する際に不正な通過判定がなされることがない。   For example, even if the process is predicted to return after branching, such as subroutine processing or interrupt processing by a combination of a CALL instruction and a RET instruction, the value of the program counter 11 during the branching process Is the value held immediately before branching. As a result, it is possible to prevent the dependency relationship using the branch destination program counter 11 from being determined, and an illegal passage determination is not performed when the branch destination program is executed.

なお、図9では、プロセッサコア10についての構成を示したが、図1に示すプロセッサコア20,30,40も同様に構成してもよい。また、プロセッサコアの数は、4つ以外であってもよい。   9 shows the configuration of the processor core 10, the processor cores 20, 30, and 40 shown in FIG. 1 may be configured in the same manner. Further, the number of processor cores may be other than four.

次に動作について説明する。
プロセッサコア10の実行部12は、自己が実行するプログラム中に含まれるCALL命令の実行や割り込み処理の開始とともに、カウンタ値保持部16に対してカウンタ値保持指令を出力する。カウンタ値保持部16は、カウンタ値保持指令を受けると、CALL命令や割り込み処理による分岐直前のプログラムカウンタ11の値を保持する。この後、プロセッサコア10の実行部12が分岐先のプログラムを実行することにより、プログラムカウンタ11の値は、分岐先のプログラムのアドレス値で更新される。
Next, the operation will be described.
The execution unit 12 of the processor core 10 outputs a counter value holding command to the counter value holding unit 16 together with the execution of the CALL instruction included in the program executed by itself and the start of interrupt processing. When the counter value holding unit 16 receives the counter value holding command, the counter value holding unit 16 holds the value of the program counter 11 immediately before the branch by the CALL instruction or interrupt processing. Thereafter, when the execution unit 12 of the processor core 10 executes the branch destination program, the value of the program counter 11 is updated with the address value of the branch destination program.

一方、カウンタ値保持部16は、プロセッサコア10の実行部12が分岐先のプログラムを実行している間、自己が保持する分岐直前のアドレス値をプロセッサコア10のプログラムカウンタ11の値として他のプロセッサコア20,30,40に対応するプログラムカウンタ監視部23,33,43へそれぞれ出力する。これにより、プログラムカウンタ監視部23,33,43では、プロセッサコア10における分岐直前のアドレス値を基準として依存関係の判定が実行される。   On the other hand, while the execution unit 12 of the processor core 10 executes the branch destination program, the counter value holding unit 16 uses the address value immediately before the branch held by itself as the value of the program counter 11 of the processor core 10 as another value. The data is output to the program counter monitoring units 23, 33, and 43 corresponding to the processor cores 20, 30, and 40, respectively. As a result, the program counter monitoring units 23, 33, and 43 execute the dependency determination based on the address value immediately before the branch in the processor core 10.

この後、プロセッサコア10の実行部12は、CALL命令による分岐処理から復帰するためのRET命令や、割込み処理から復帰するためのIRET命令を実行すると、これに伴ってカウンタ値保持部16に対して解除指令を出力する。カウンタ値保持部16は、解除指令を受けると、自己が保持する値ではなく、そのときプログラムカウンタ11に設定されている値を他のプロセッサコア20,30,40に対応するプログラムカウンタ監視部23,33,43へそれぞれ出力する。   Thereafter, when the execution unit 12 of the processor core 10 executes a RET instruction for returning from the branch process by the CALL instruction or an IRET instruction for returning from the interrupt process, the counter value holding unit 16 is associated with this. To output a release command. When the counter value holding unit 16 receives the release command, the counter value monitoring unit 23 corresponding to the other processor cores 20, 30, and 40 uses the value set in the program counter 11 at that time instead of the value held by itself. , 33 and 43, respectively.

ここで、CALL命令による割り込み処理の実行中にCALL命令が再度実行された場合を考える。この場合、カウンタ値保持部16は、CALL命令が発行された回数をカウントする。例えば、CALL命令の実行でカウンタを+1とし、RET命令の実行でカウンタを−1とする。また、このカウンタの値が0でないとき、自己を搭載するプロセッサコアのプログラムカウンタ11の値を保持し、カウンタの値が0のときには、上記プログラムカウンタ11の値をそのまま他のプロセッサコアに対応するプログラムカウンタ監視部へ出力する。   Here, consider a case where the CALL instruction is executed again during the execution of the interrupt processing by the CALL instruction. In this case, the counter value holding unit 16 counts the number of times the CALL instruction has been issued. For example, when the CALL instruction is executed, the counter is set to +1, and when the RET instruction is executed, the counter is set to -1. When the value of the counter is not 0, the value of the program counter 11 of the processor core on which the self is mounted is held. When the value of the counter is 0, the value of the program counter 11 is directly corresponded to another processor core. Output to the program counter monitoring unit.

図10は、図9中のプロセッサコアで実行されるプログラム、プログラム間の依存関係及び分岐処理を説明するための図であり、この図10を用いて分岐処理における動作を詳細に説明する。図10において、プログラム510は、プロセッサコア10の実行部12で実行されるプログラムであり、部分プログラム511,512を含んで構成される。部分プログラム511,512は、部分プログラム511、部分プログラム512の順でアドレスが昇順となるようにメモリに格納される。プロセッサコア10の実行部12は、上記メモリからアドレスを昇順に部分プログラムを読み込んで実行することにより、図10中で矢印で示すように、部分プログラム511、部分プログラム512の順で、プログラム510を実行する。   FIG. 10 is a diagram for explaining the program executed by the processor core in FIG. 9, the dependency relationship between the programs, and the branch process. The operation in the branch process will be described in detail with reference to FIG. In FIG. 10, a program 510 is a program executed by the execution unit 12 of the processor core 10, and includes partial programs 511 and 512. The partial programs 511 and 512 are stored in the memory so that the addresses are in ascending order in the order of the partial program 511 and the partial program 512. The execution unit 12 of the processor core 10 reads the program from the memory in ascending order and executes the partial programs, thereby executing the program 510 in the order of the partial program 511 and the partial program 512 as indicated by arrows in FIG. Execute.

また、プログラム520は、プロセッサコア20の実行部12で実行されるプログラムであり、部分プログラム521及びサブルーチンプログラム522を含んで構成される。部分プログラム521及びサブルーチンプログラム522は、部分プログラム521、サブルーチンプログラム522の順でアドレスが昇順となるようにメモリに格納される。   The program 520 is a program executed by the execution unit 12 of the processor core 20 and includes a partial program 521 and a subroutine program 522. The partial program 521 and the subroutine program 522 are stored in the memory so that the addresses are in ascending order in the order of the partial program 521 and the subroutine program 522.

部分プログラム512と部分プログラム521との間には依存関係530が設定されている。この依存関係530は、プロセッサコア20の実行部12によって部分プログラム521の実行が終了した後、プロセッサコア10の実行部12によって部分プログラム512を実行すること、つまりプロセッサコア10での同期先となる部分プログラム512の実行が、プロセッサコア20での同期元となる部分プログラム521の実行に依存する関係にあることを示している。   A dependency relationship 530 is set between the partial program 512 and the partial program 521. This dependency relationship 530 is the execution of the partial program 512 by the execution unit 12 of the processor core 10 after the execution of the partial program 521 by the execution unit 12 of the processor core 20, that is, the synchronization destination in the processor core 10. This shows that the execution of the partial program 512 is dependent on the execution of the partial program 521 that is the synchronization source in the processor core 20.

また、部分プログラム521にはCALL命令が含まれており、このCALL命令が実行されると、図10中に矢印で示すようにサブルーチンプログラム522へ処理が分岐する。一方、サブルーチンプログラム522中のRET命令が実行されると、図10中に矢印で示すように部分プログラム521の実行へ処理が戻る。   The partial program 521 includes a CALL instruction, and when this CALL instruction is executed, the process branches to the subroutine program 522 as indicated by an arrow in FIG. On the other hand, when the RET instruction in the subroutine program 522 is executed, the process returns to the execution of the partial program 521 as indicated by an arrow in FIG.

CALL命令を実行してサブルーチンプログラム522へ処理が分岐する場合、部分プログラム521の実行が終了していない場合であっても、プロセッサコア20のプログラムカウンタ11の値は、部分プログラム521の最終プログラムアドレス値よりも大きくなる。このため、上記実施の形態1のようにアドレスを昇順にプログラムが実行されることを前提した処理では、プログラムカウンタ監視部が同期元のプログラムの実行終了を誤判定する可能性がある。   When the CALL instruction is executed and the process branches to the subroutine program 522, even if the execution of the partial program 521 is not completed, the value of the program counter 11 of the processor core 20 is the final program address of the partial program 521. Larger than the value. For this reason, in the processing based on the assumption that the programs are executed in ascending order of addresses as in the first embodiment, the program counter monitoring unit may erroneously determine the end of execution of the synchronization source program.

そこで、プロセッサコア20の実行部12は、部分プログラム521中のCALL命令を実行してサブルーチンプログラム522の処理へ分岐する際、カウンタ値保持部16へカウンタ値保持指令を出力する。この指令を受けると、カウンタ値保持部16は、プログラムカウンタ監視部13,33,43を介して他のプロセッサコア10,30,40へ公開している自己のプログラムカウンタ11の値を分岐前の値のまま保持する。このようにすることで、プロセッサコア10に対応するプログラムカウンタ監視部13は、プロセッサコア20の実行部12が部分プログラム521を実行中であることを認識できる。   Therefore, the execution unit 12 of the processor core 20 outputs a counter value holding command to the counter value holding unit 16 when executing the CALL instruction in the partial program 521 and branching to the processing of the subroutine program 522. Upon receiving this command, the counter value holding unit 16 changes the value of its own program counter 11 disclosed to the other processor cores 10, 30, 40 via the program counter monitoring units 13, 33, 43 before branching. Keep the value. In this way, the program counter monitoring unit 13 corresponding to the processor core 10 can recognize that the execution unit 12 of the processor core 20 is executing the partial program 521.

プロセッサコア20の実行部12は、サブルーチンプログラム522中のRET命令を実行することにより、部分プログラム521の処理に戻る。このとき、プロセッサコア20の実行部12は、カウンタ値保持部16に対して解除命令を出力する。この指令を受けると、カウンタ値保持部16は、RET命令で戻った部分プログラム521中のアドレス値が設定されたプログラムカウンタ11の値を、他のプロセッサコア10,30,40に対応するプログラムカウンタ監視部13,33,43へ出力する。この後、プロセッサコア20の実行部12で部分プログラム521の実行が終了した時点で、プロセッサコア10の周辺回路であるプログラムカウンタ監視部13は、部分プログラム521の実行終了を正確に判定することができる。   The execution unit 12 of the processor core 20 returns to the processing of the partial program 521 by executing the RET instruction in the subroutine program 522. At this time, the execution unit 12 of the processor core 20 outputs a release command to the counter value holding unit 16. When this command is received, the counter value holding unit 16 uses the value of the program counter 11 in which the address value in the partial program 521 returned by the RET instruction is set as the program counter corresponding to the other processor cores 10, 30, 40. Output to the monitoring unit 13, 33, 43. Thereafter, when the execution of the partial program 521 is completed by the execution unit 12 of the processor core 20, the program counter monitoring unit 13, which is a peripheral circuit of the processor core 10, can accurately determine the end of execution of the partial program 521. it can.

以上のように、この実施の形態5によれば、複数のプロセッサコア10,20,30,40のそれぞれに対応して設けられ、自己に対応するプロセッサコアで分岐命令を実行するにあたり、分岐前のプログラムカウンタ11の値を分岐から復帰するまで保持するカウンタ値保持部16を備えたので、分岐命令のように部分プログラムの外に分岐する命令が含まれていても、プログラムカウンタ監視部による依存関係の判定を正確に行うことができる。   As described above, according to the fifth embodiment, a branch instruction is provided for each of the plurality of processor cores 10, 20, 30, and 40, and a branch instruction is executed by the processor core corresponding to the processor core. Since the counter value holding unit 16 that holds the value of the program counter 11 until it returns from the branch is provided, even if an instruction that branches outside the partial program such as a branch instruction is included, the dependency by the program counter monitoring unit The relationship can be accurately determined.

なお、上記実施の形態5は、上記実施の形態1のみならず、上記実施の形態2〜4にも適用することができる。例えば、上記実施の形態2の構成に適用することにより、プログラムアドレスレジスタ402やプログラムカウンタ監視レジスタ410のプログラムアドレス領域の値をカウンタ値保持部16で保持するようにしてもよい。また、上記実施の形態3の構成に適用することにより、専用命令で指定されるプログラムアドレス値をカウンタ値保持部16で保持するようにしてもよい。さらに、上記実施の形態4の構成に適用することにより、オフセット計算部14により算出された値をカウンタ値保持部16で保持するようにしてもよい。   The fifth embodiment can be applied not only to the first embodiment but also to the second to fourth embodiments. For example, the value of the program address area of the program address register 402 or the program counter monitoring register 410 may be held by the counter value holding unit 16 by being applied to the configuration of the second embodiment. Further, by applying to the configuration of the third embodiment, the program address value specified by the dedicated instruction may be held by the counter value holding unit 16. Furthermore, the value calculated by the offset calculation unit 14 may be held by the counter value holding unit 16 by being applied to the configuration of the fourth embodiment.

この発明の実施の形態1によるマルチコアプロセッサの構成を示すブロック図である。It is a block diagram which shows the structure of the multi-core processor by Embodiment 1 of this invention. 図1中のプロセッサコアで実行されるプログラム及びプログラム間の依存関係を説明するための図である。It is a figure for demonstrating the dependency relationship between the program run with the processor core in FIG. 1, and a program. 図1中のプロセッサコアで実行されるプログラム、プログラム間の依存関係及び分岐処理を説明するための図である。It is a figure for demonstrating the program performed with the processor core in FIG. 1, the dependency between programs, and a branch process. この発明の実施の形態2によるマルチコアプロセッサの構成を示すブロック図である。It is a block diagram which shows the structure of the multi-core processor by Embodiment 2 of this invention. プログラムカウンタ監視レジスタの構成を示す図である。It is a figure which shows the structure of a program counter monitoring register. この発明の実施の形態3によるマルチコアプロセッサの構成を示すブロック図である。It is a block diagram which shows the structure of the multi-core processor by Embodiment 3 of this invention. 図6中のプロセッサコアの実行部で実行される専用命令の命令コードの一例を示す図である。It is a figure which shows an example of the instruction code of the dedicated instruction performed by the execution part of the processor core in FIG. この発明の実施の形態4によるマルチコアプロセッサにおけるプロセッサコアの構成を示すブロック図である。It is a block diagram which shows the structure of the processor core in the multi-core processor by Embodiment 4 of this invention. この発明の実施の形態5によるマルチコアプロセッサにおけるプロセッサコアの構成を示すブロック図である。It is a block diagram which shows the structure of the processor core in the multi-core processor by Embodiment 5 of this invention. 図9中のプロセッサコアで実行されるプログラム、プログラム間の依存関係及び分岐処理を説明するための図である。It is a figure for demonstrating the program performed with the processor core in FIG. 9, the dependence between programs, and a branch process.

符号の説明Explanation of symbols

1 マルチコアプロセッサ、10,20,30,40 プロセッサコア、11 プログラムカウンタ、12 実行部、13,23,33,44 プログラムカウンタ監視部、14 オフセット計算部、15 ベースアドレスレジスタ、16 カウンタ値保持部、210,220,230,240,310,320,510,520 プログラム、211,221〜223,311〜314,321〜323,511,512,521 部分プログラム、250,300〜302,530 依存関係、400 プログラムレジスタ、401 プロセッサコア番号レジスタ、402 プログラムアドレスレジスタ、403 有効フラグレジスタ、404 監視実行部、500 命令コード、501 専用命令識別子、502 プロセッサコア番号、503 プログラムアドレス。   1 multi-core processor, 10, 20, 30, 40 processor core, 11 program counter, 12 execution unit, 13, 23, 33, 44 program counter monitoring unit, 14 offset calculation unit, 15 base address register, 16 counter value holding unit, 210, 220, 230, 240, 310, 320, 510, 520 program, 211, 221-223, 311-314, 321-323, 511, 512, 521 Partial program, 250, 300-302, 530 dependency, 400 Program register, 401 processor core number register, 402 program address register, 403 valid flag register, 404 monitoring execution unit, 500 instruction code, 501 dedicated instruction identifier, 502 processor core number, 503 program Gram address.

Claims (5)

複数のプロセッサコアと、
前記複数のプロセッサコアのそれぞれに対応して設けられ、自己に対応するプロセッサコアで実行されるプログラムのアドレス値を保持するプログラムカウンタと、
前記複数のプロセッサコアのそれぞれに対応して設けられ、自己に対応するプロセッサコアから指定された同期相手のプロセッサコアに対応するプログラムカウンタの値と同期先のプログラムの実行に先行して前記同期相手のプロセッサコアで実行される同期元のプログラムのアドレス値との比較結果に応じて、前記自己に対応するプロセッサコアによる前記同期先のプログラムの実行可否を制御するプログラムカウンタ監視部とを備えたマルチコアプロセッサ。
Multiple processor cores,
A program counter which is provided corresponding to each of the plurality of processor cores and holds an address value of a program executed by the processor core corresponding to the processor core;
The synchronization partner is provided corresponding to each of the plurality of processor cores, and the synchronization counter prior to execution of the value of the program counter corresponding to the synchronization partner processor core designated by the processor core corresponding to the processor core and the synchronization destination program A multi-core comprising a program counter monitoring unit that controls whether or not the synchronization target program can be executed by the processor core corresponding to the self according to a comparison result with an address value of a synchronization source program executed by the processor core Processor.
プログラムカウンタ監視部は、自己に対応するプロセッサコアから指定されたプロセッサコアの識別番号及びこのプロセッサコアで実行される同期元のプログラムのアドレス値を保持するレジスタと、前記レジスタから前記識別番号及び前記同期元のプログラムのアドレス値を取得し、前記識別番号のプロセッサコアに対応するプログラムカウンタの値と前記同期元のプログラムのアドレス値との比較結果に応じて、前記自己に対応するプロセッサコアによる同期先のプログラムの実行可否を制御する監視実行部とを備えたことを特徴とする請求項1記載のマルチコアプロセッサ。   The program counter monitoring unit includes a register that holds an identification number of a processor core designated from a processor core corresponding to itself and an address value of a synchronization source program executed by the processor core, and the identification number and the The address value of the synchronization source program is acquired, and the synchronization by the processor core corresponding to the self is obtained according to the comparison result between the value of the program counter corresponding to the processor core of the identification number and the address value of the synchronization source program The multi-core processor according to claim 1, further comprising a monitoring execution unit that controls whether or not the preceding program can be executed. プロセッサコアは、プロセッサコアの識別番号及びこのプロセッサコアで実行される同期元のプログラムのアドレス値が設定された専用命令を実行することにより、前記識別番号及び前記同期元のプログラムのアドレス値を、監視情報として自己に対応するプログラムカウンタ監視部に出力し、
前記プログラムカウンタ監視部は、前記プロセッサコアから入力した監視情報で指定された前記識別番号のプロセッサコアに対応するプログラムカウンタの値と前記同期元のプログラムのアドレス値との比較結果に応じて、前記自己に対応するプロセッサコアによる同期先のプログラムの実行可否を制御する監視実行部を備えたことを特徴とする請求項1記載のマルチコアプロセッサ。
The processor core executes the dedicated instruction in which the identification number of the processor core and the address value of the synchronization source program executed by the processor core are set, thereby obtaining the identification number and the address value of the synchronization source program. Output to the program counter monitoring unit corresponding to itself as monitoring information,
The program counter monitoring unit, according to a comparison result between the value of the program counter corresponding to the processor core of the identification number specified by the monitoring information input from the processor core and the address value of the synchronization source program, 2. The multi-core processor according to claim 1, further comprising a monitoring execution unit that controls whether or not the synchronization destination program can be executed by a processor core corresponding to the processor core.
プロセッサコアは、ベース値が設定されるベースアドレスレジスタと、自己に対応するプログラムカウンタの値から前記ベースアドレスレジスタのベース値を減算したオフセット値を、前記自己に対応するプログラムカウンタの値として自己以外に対応するプログラムカウンタ監視部へ出力するオフセット計算部とを備え、
前記プログラムカウンタ監視部は、自己に対応するプロセッサコアによる同期先のプログラムの実行可否を制御するにあたり、前記ベース値で規定されるオフセット値で表されたプログラムカウンタの値と同期元のプログラムのアドレス値とを比較することを特徴とする請求項1から請求項3のうちのいずれか1項記載のマルチコアプロセッサ。
The processor core uses a base address register in which a base value is set and an offset value obtained by subtracting the base value of the base address register from the value of the program counter corresponding to itself as a value of the program counter corresponding to the self And an offset calculation unit that outputs to the program counter monitoring unit corresponding to
The program counter monitoring unit controls whether or not the synchronization destination program can be executed by the processor core corresponding to itself, and the value of the program counter represented by the offset value specified by the base value and the address of the synchronization source program 4. The multi-core processor according to claim 1, wherein the multi-core processor compares the value with each other.
複数のプロセッサコアのそれぞれに対応して設けられ、自己に対応するプロセッサコアで分岐命令を実行するにあたり、分岐前のプログラムカウンタの値を分岐から復帰するまで保持するカウンタ値保持部を備えたことを特徴とする請求項1から請求項4のうちのいずれか1項記載のマルチコアプロセッサ。   A counter value holding unit is provided corresponding to each of the plurality of processor cores, and holds the value of the program counter before the branch until returning from the branch when the branch instruction is executed by the processor core corresponding to the processor core. The multi-core processor according to any one of claims 1 to 4, wherein
JP2007245590A 2007-09-21 2007-09-21 Multicore processor Pending JP2009075948A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007245590A JP2009075948A (en) 2007-09-21 2007-09-21 Multicore processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007245590A JP2009075948A (en) 2007-09-21 2007-09-21 Multicore processor

Publications (1)

Publication Number Publication Date
JP2009075948A true JP2009075948A (en) 2009-04-09

Family

ID=40610838

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007245590A Pending JP2009075948A (en) 2007-09-21 2007-09-21 Multicore processor

Country Status (1)

Country Link
JP (1) JP2009075948A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8683251B2 (en) 2010-10-15 2014-03-25 International Business Machines Corporation Determining redundancy of power feeds connecting a server to a power supply
US8688885B2 (en) 2010-04-13 2014-04-01 Samsung Electronics Co., Ltd. Hardware acceleration apparatus, method and computer-readable medium efficiently processing multi-core synchronization
US8923682B2 (en) 2011-05-23 2014-12-30 Renesas Electronics Corporation Data processing system
JP2015036983A (en) * 2013-08-13 2015-02-23 三星電子株式会社Samsung Electronics Co.,Ltd. Multiple thread execution processor and operating method thereof
CN110209509A (en) * 2019-05-28 2019-09-06 北京星网锐捷网络技术有限公司 Method of data synchronization and device between multi-core processor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675820A (en) * 1992-08-26 1994-03-18 Yokogawa Electric Corp Interruption device in multi-processor system
JPH11282815A (en) * 1998-03-31 1999-10-15 Nec Corp Multi-thread computer system and multi-thread execution control method
JPH11306149A (en) * 1998-04-16 1999-11-05 Sony Corp Parallel arithmetic processor and method therefor
JP2005322232A (en) * 2004-05-03 2005-11-17 Sony Computer Entertainment Inc System and method about transfer of task

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675820A (en) * 1992-08-26 1994-03-18 Yokogawa Electric Corp Interruption device in multi-processor system
JPH11282815A (en) * 1998-03-31 1999-10-15 Nec Corp Multi-thread computer system and multi-thread execution control method
JPH11306149A (en) * 1998-04-16 1999-11-05 Sony Corp Parallel arithmetic processor and method therefor
JP2005322232A (en) * 2004-05-03 2005-11-17 Sony Computer Entertainment Inc System and method about transfer of task

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8688885B2 (en) 2010-04-13 2014-04-01 Samsung Electronics Co., Ltd. Hardware acceleration apparatus, method and computer-readable medium efficiently processing multi-core synchronization
US8683251B2 (en) 2010-10-15 2014-03-25 International Business Machines Corporation Determining redundancy of power feeds connecting a server to a power supply
US8923682B2 (en) 2011-05-23 2014-12-30 Renesas Electronics Corporation Data processing system
US9742966B2 (en) 2011-05-23 2017-08-22 Renesas Electronics Corporation Data processing system
JP2015036983A (en) * 2013-08-13 2015-02-23 三星電子株式会社Samsung Electronics Co.,Ltd. Multiple thread execution processor and operating method thereof
CN110209509A (en) * 2019-05-28 2019-09-06 北京星网锐捷网络技术有限公司 Method of data synchronization and device between multi-core processor

Similar Documents

Publication Publication Date Title
US8612978B2 (en) Code execution utilizing single or multiple threads
US10481911B2 (en) Synchronization of execution threads on a multi-threaded processor
US20150355938A1 (en) System and method for conditional task switching during ordering scope transitions
JP2009543170A5 (en)
US20150012727A1 (en) Processing device and control method of processing device
KR0136019B1 (en) Information processing system
JP2009075948A (en) Multicore processor
US20100095305A1 (en) Simultaneous multithread instruction completion controller
KR101472186B1 (en) Information processing apparatus and method of controlling information processing apparatus
JP2014191655A (en) Multiprocessor, electronic control device, and program
US20140331025A1 (en) Reconfigurable processor and operation method thereof
JP2016157247A (en) Information processor
JP2006146758A (en) Computer system
JP2007058279A (en) Power-down shifting system
JP6774147B2 (en) Control device
JP2001022720A (en) Multiprocessor system
CN112445587A (en) Task processing method and task processing device
JP6617511B2 (en) Parallelization method, parallelization tool, in-vehicle device
JP2013250696A (en) Processor system and processor control device
JP2020126477A (en) Electronic control device
CN112363816B (en) Deterministic scheduling method, system and medium for embedded multi-core operating system
US9720880B2 (en) System and method for an asynchronous processor with assisted token
JP2008197943A (en) Computer system
JP2007316986A (en) System lsi
JP2018049406A (en) Task coordination device among plural processors

Legal Events

Date Code Title Description
A621 Written request for application examination

Effective date: 20100119

Free format text: JAPANESE INTERMEDIATE CODE: A621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110131

A131 Notification of reasons for refusal

Effective date: 20110208

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110802