JP2007317171A - Multi-thread computer system and multi-thread execution control method - Google Patents

Multi-thread computer system and multi-thread execution control method Download PDF

Info

Publication number
JP2007317171A
JP2007317171A JP2007114791A JP2007114791A JP2007317171A JP 2007317171 A JP2007317171 A JP 2007317171A JP 2007114791 A JP2007114791 A JP 2007114791A JP 2007114791 A JP2007114791 A JP 2007114791A JP 2007317171 A JP2007317171 A JP 2007317171A
Authority
JP
Japan
Prior art keywords
thread
execution
processor
register
processor element
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
JP2007114791A
Other languages
Japanese (ja)
Inventor
Masanori Henmi
正憲 逸見
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2007114791A priority Critical patent/JP2007317171A/en
Publication of JP2007317171A publication Critical patent/JP2007317171A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a multi-thread computer system improving a substantial operation rate in a plurality of processor elements (PEs). <P>SOLUTION: This multi-thread computer system comprises the plurality of PEs 101-103 and a parallel processor control part 200 for switching the thread of each PE. The parallel processor control part 200 comprises a plurality of execution order registers for holding the execution order of the threads to be executed for every PE; a plurality of counters 230 counting the execution time of the threads under execution by each PE and generating time-out signals when the counted time reaches the allocation time of the threads; and a thread execution scheduler part 210 switching the thread to be executed in each processor element based on the execution order held in the execution order register, and the time-out signals. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、並列動作するマルチプロセッサエレメントを備えるマルチスレッド計算機システムに関し、特に、各プロセッサエレメントにおいてプログラムを切り換えマルチスレッド計算機システムおよびマルチスレッド実行制御方法に関する。   The present invention relates to a multi-thread computer system including multi-processor elements operating in parallel, and more particularly to a multi-thread computer system and a multi-thread execution control method for switching programs in each processor element.

演算処理性能をより高めるために、複数のプロセッサエレメントを備えるマルチプロセッサ構成をとる並列処理システムがある。   In order to further improve the arithmetic processing performance, there is a parallel processing system having a multiprocessor configuration including a plurality of processor elements.

並列処理システムにおいて、さらに演算処理性能をより高めるために、一つのプロセスを複数のスレッドと呼ばれる制御の流れ(プログラム)に分割し、複数のスレッドを複数のプロセッサで並列に実行する方法が取られることがある。   In a parallel processing system, in order to further improve the arithmetic processing performance, a method is used in which one process is divided into a control flow (program) called a plurality of threads and the plurality of threads are executed in parallel by a plurality of processors. Sometimes.

マルチプロセッサ構成をとる並列処理システムで、さらにこのように複数のスレッドを並列に実行する従来の方法として、例えば特許文献1に記載された方法がある。   As a conventional method of executing a plurality of threads in parallel in a parallel processing system having a multiprocessor configuration, for example, there is a method described in Patent Document 1.

この並列処理システムでは、一つのプロセッサに着目したとき、1つのプロセッサエレメント内において、決められた要因によって複数のスレッドを切り換えながら実行する。この制御により、1つのプロセッサエレメントで複数のスレッドを擬似的に並列実行させている。このとき、各スレッドは各々が1つのプロセッサをそれぞれ独占して使用するように実行されるため、各々のスレッドが個別に仮想的なプロセッサに割り当てられて実行されていると考えることができる。   In this parallel processing system, when attention is paid to one processor, execution is performed while switching a plurality of threads in one processor element according to a determined factor. With this control, a plurality of threads are pseudo-parallelly executed by one processor element. At this time, since each thread is executed so as to exclusively use one processor, it can be considered that each thread is individually assigned to a virtual processor and executed.

仮想的なプロセッサのそれぞれは、実際のプロセッサの全機能を持つ必要はなく、スレッドを実行するために必要な情報、すなわちプログラムカウンタ、フラグレジスタ、スタック領域、汎用レジスタなどのスレッド固有の制御情報やデータ情報のみを持てばよい。スレッドを実行するために必要なこれらの情報を「コンテキスト」という。   Each virtual processor does not have to have all the functions of an actual processor, but information necessary for executing a thread, that is, thread-specific control information such as a program counter, a flag register, a stack area, and a general-purpose register. You only need to have data information. These pieces of information necessary for executing a thread are referred to as “context”.

1つのプロセッサエレメントで現在実行しているスレッドを別のスレッドに切り換えるときには、コンテキストを切り換えなければならない。通常、コンテキストはメモリに格納されているため、コンテキストの切り換えは、現在実行しているスレッドのコンテキストをメモリに書き出し(ここでは「退避」と書く)、次に実行するスレッドのコンテキストをメモリから読み出す(ここでは「復帰」と書く)ことを意味する。   When switching a thread currently executing on one processor element to another thread, the context must be switched. Usually, since the context is stored in the memory, switching the context writes the context of the currently executing thread to the memory (in this case, “save”), and reads the context of the next thread to be executed from the memory. (In this case, “return”).

さて、特許文献1に記載された方法(特許文献1の第2図)では、オペレーティングシステムではなく、ハードウェアでスレッドのプリエンプション(優先度の高いスレッドへの切り換え)の受け付けを行うものであるが、さらにプリエンプション受け付け後の切り換え処理についてもオペレーティングシステムを介在しない高速なユーザーレベル割り込みを提供することによって、マルチスレッド処理の効率を向上させている。ただし、本方法ではスレッドを切り換えるたびに、ユーザープロセス内部に存在するスレッドスケジューラをプロセッサエレメントで実行することにより、1つのユーザープロセスを構成するすべてのスレッドのスケジューリングを行っている。
特開平11−282815号公報
In the method described in Patent Document 1 (FIG. 2 of Patent Document 1), thread preemption (switching to a thread with higher priority) is received by hardware, not by an operating system. Furthermore, the switching process after accepting preemption also improves the efficiency of multi-thread processing by providing a high-speed user level interrupt that does not involve an operating system. However, in this method, every time a thread is switched, a thread scheduler existing in the user process is executed by the processor element, thereby scheduling all threads constituting one user process.
JP-A-11-282815

しかしながら従来技術によれば次の課題がある。すなわち、従来技術の第1の課題は、
スレッドの切り換えを行うたびに、スレッド切り換えのオーバーヘッドが発生することである。なぜなら、プロセッサが、ユーザープロセス内部に存在するスレッドスケジューラを実行することによって、スレッドを切り換えているからである。
However, the prior art has the following problems. That is, the first problem of the prior art is
Each time a thread is switched, a thread switching overhead occurs. This is because the processor switches threads by executing a thread scheduler that exists in the user process.

また、従来技術の第2の課題は、1つのユーザープロセス内の複数のスレッドを並列に実行できる場合でも、1つのユーザープロセスについて1つのプロセッサエレメントが割り当てられているため、他のプロセッサエレメントが別のユーザープロセス内のスレッドを実行していない状態であっても、そのプロセッサエレメントにスレッドを実行させることができないことである。   In addition, the second problem of the prior art is that even when a plurality of threads in one user process can be executed in parallel, one processor element is assigned to one user process, and thus other processor elements are separated. Even if the thread in the user process is not executed, the processor element cannot execute the thread.

このため、並列処理システムの実質的な稼働率を十分に高めることができなくなり、システムのパフォーマンスの低下につながっている。   For this reason, the substantial operating rate of the parallel processing system cannot be sufficiently increased, leading to a decrease in system performance.

本発明は、上記課題に鑑み、複数のプロセッサエレメントにおける実質的な稼働率を向上させるマルチスレッド計算機システム、マルチスレッド実行制御方法を提供することを目的とする。   In view of the above problems, an object of the present invention is to provide a multi-thread computer system and a multi-thread execution control method that improve a substantial operation rate in a plurality of processor elements.

上記目的を達成するために、本発明のマルチスレッド計算機システムは、複数スレッドを含むプロセスを実行するプロセッサエレメントを複数個含むプロセッサエレメント群と、各プロセッサエレメントで実行すべきスレッドを切り換える制御手段とを備え、前記制御手段は、前記複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントで実行すべきスレッドの実行順序を保持する複数の実行順序レジスタと、前記複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントにより実行中のスレッドの実行時間をカウントし、カウントされた時間がスレッドの割り当て時間に達したときタイムアウト信号を発生する複数のカウンタと、前記実行順序レジスタに保持された実行順序および前記タイムアウト信号に基づいて、各プロセッサエレメントで実行すべきスレッドを切り換えるスケジュール回路とを備える。この構成によれば、次に実行すべきスレッドの判定もスレッド切り換えもスケジュール回路によって実行されるので、スレッド切り換えのオーバーヘッドを低減することができ、その結果、マルチスレッド計算機システムの実質的は稼働率を向上させることができる。   In order to achieve the above object, a multi-thread computer system according to the present invention comprises a processor element group including a plurality of processor elements for executing a process including a plurality of threads, and a control means for switching a thread to be executed in each processor element. The control means is provided corresponding to the plurality of processor elements, and includes a plurality of execution order registers that hold execution orders of threads to be executed by the corresponding processor elements, and corresponding to the plurality of processor elements. A plurality of counters that are provided and that count the execution time of a thread that is being executed by the corresponding processor element, and that generate a timeout signal when the counted time reaches the allocated time of the thread, and are held in the execution order register Execution order and the above Based on the timeout signal, and a scheduling circuit for switching the thread to be executed by each processor element. According to this configuration, the determination of the thread to be executed next and the thread switching are executed by the schedule circuit, so that the overhead of thread switching can be reduced. As a result, the substantial operation rate of the multi-thread computer system can be reduced. Can be improved.

ここで、前記実行順序レジスタは、前記複数スレッドの実行を開始前に対応するプロセッサエレメントによって前記実行順序を書き込まれる構成としてもよい。この構成によれば、次に実行すべきスレッドの判定は実行順序レジスタに従ってスケジュール回路が高速に行うことができる。   Here, the execution order register may be configured such that the execution order is written by a corresponding processor element before the execution of the plurality of threads is started. According to this configuration, the schedule circuit can determine the thread to be executed next at high speed according to the execution order register.

ここで、前記制御手段は、さらに、前記スケジュール回路をディスエーブルするシングルスレッドモード、前記スケジュール回路をイネーブルするマルチスレッドモードの何れかを示すモード情報を保持するモードレジスタを備え、前記モードレジスタは、プロセッサにより書き込み可能である構成としてもよい。この構成によれば、シングルスレッドモードにおいて実行順序レジスタへの実行順序の設定など初期設定をしさえすれば、マルチスレッドモードに移行後に、スケジュール回路によるスレッド切り換えを高速に行うことができる。   Here, the control means further includes a mode register for holding mode information indicating either a single thread mode for disabling the schedule circuit or a multi-thread mode for enabling the schedule circuit, and the mode register includes: It is good also as a structure which can be written by a processor. According to this configuration, if the initial setting such as the setting of the execution order in the execution order register is performed in the single thread mode, the thread switching by the schedule circuit can be performed at high speed after the transition to the multi-thread mode.

ここで、前記制御手段は、さらに、前記複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントへの割り込み信号に対応する優先実行すべきスレッドを示す優先度情報を保持する複数の優先度レジスタを備え、スケジュール回路は、さらに、外部から割り込み信号が入力されたとき、前記割り込み信号に対応するスレッドに切り換えるようにしてもよい。この構成によれば、優先度の高い割り込み処理用スレッドを高速に切り換えることができる。   Here, the control means is further provided corresponding to the plurality of processor elements, and a plurality of priorities holding priority information indicating threads to be preferentially executed corresponding to interrupt signals to the corresponding processor elements. The schedule circuit may further be switched to a thread corresponding to the interrupt signal when an interrupt signal is input from the outside. According to this configuration, a high priority interrupt processing thread can be switched at high speed.

ここで、前記各プロセッサエレメントは、実行中のスレッドのコンテキストと、次に実行すべきコンテキストとを保持する2つのコンテキストレジスタ群を備え、前記スケジュール回路は、さらに、プロセッサエレメントのコンテキストの退避および復帰をするためにコンテキスト転送を行うコンテキスト転送部を備え、前記スケジュール回路は、スレッド切り換え時に、プロセッサエレメントが使用するコンテキストレジスタ群を切り替え、前記コンテキスト転送部は、スレッド切り換え後に、コンテキスト転送を行うようにしてもよい。この構成によれば、コンテキストの退避および復帰を隠蔽することができるのでマルチスレッド計算機システムの稼働率をさらに向上させることができる。   Here, each of the processor elements includes two context register groups that hold a context of a thread being executed and a context to be executed next, and the schedule circuit further saves and restores the context of the processor element A context transfer unit that performs context transfer to switch the context register group used by the processor element at the time of thread switching, and the context transfer unit performs context transfer after thread switching. May be. According to this configuration, context saving and restoration can be concealed, so that the operating rate of the multi-thread computer system can be further improved.

ここで、前記制御手段は、さらに、各プロセッサエレメントが実行状態であるか停止状態であるかを示す状態レジスタと、スレッドの並列実行の可否に関する可否情報を保持する複数の可否情報保持部とを備え、前記スケジュール回路は、さらに、何れかのプロセッサエレメントが実行状態から停止状態になったとき、前記可否情報に基づいて実行状態のプロセッサエレメントが実行すべきスレッドのうち並列実行可能なスレッドを判別し、判別したスレッドを停止状態のプロセッサに実行させる構成としてもよい。この構成によれば、停止状態のプロセッサエレメントを有効活用して、1つのプロセスを1つのプロセッサエレメントだけでなく複数のプロセッサエレメントに実行させることができるので、マルチスレッド計算機システムの稼働率をさらに向上させることができる。   Here, the control means further includes a status register that indicates whether each processor element is in an execution state or a stop state, and a plurality of availability information holding units that hold availability information regarding the availability of parallel execution of threads. The schedule circuit further determines a thread that can be executed in parallel among threads to be executed by the processor element in the execution state based on the availability information when any of the processor elements changes from the execution state to the stop state. Alternatively, the determined thread may be executed by a stopped processor. According to this configuration, since one processor can be executed not only by one processor element but by a plurality of processor elements by effectively utilizing the processor elements in the stopped state, the operating rate of the multi-thread computer system is further improved. Can be made.

ここで、前記可否情報は、同一プロセス内の他のスレッドとの並列実行可否を示す第1情報と、他のプロセッサエレメントによる実行可否を示す第2情報とを含み、前記複数の可否情報保持部のそれぞれは、前記第1情報を保持する第1レジスタと、前記第2情報を保持する第2レジスタとを有するようにしてもよい。また、前記実行順序レジスタ、第1レジスタおよび第2レジスタは、前記複数スレッドの実行開始前に対応するプロセッサエレメントによって実行順序、第1情報および第2情報をそれぞれ設定されるようにしてもよい。この構成によれば、スレッド毎に、処理内容に依存して並列実行可能にするかしないかを柔軟に設定することができる。   Here, the availability information includes first information indicating whether or not parallel execution with other threads in the same process is possible, and second information indicating whether or not execution is possible by other processor elements, and the plurality of availability information holding units. Each may include a first register that holds the first information and a second register that holds the second information. In the execution order register, the first register, and the second register, the execution order, the first information, and the second information may be set by a corresponding processor element before the execution of the plurality of threads is started. According to this configuration, it is possible to flexibly set whether to enable parallel execution for each thread depending on the processing content.

ここで、前記マルチスレッド計算機システムは、さらに、停止状態のプロセッサエレメントへのクロック信号の供給を抑制するクロック制御手段を備えてもよい。この構成によれば、停止状態のプロセッサエレメントへのクロック供給を抑制することにより、消費電力を低減することができる。   Here, the multi-thread computer system may further include a clock control unit that suppresses the supply of the clock signal to the processor element in the stopped state. According to this configuration, power consumption can be reduced by suppressing the clock supply to the processor element in the stopped state.

ここで、前記制御手段は、さらに、プロセッサエレメント毎にクロック供給の抑制可否を示すクロック制御情報を保持するクロック制御レジスタを備え、前記制御手段は、クロック制御情報に従ってプロセッサエレメント毎に前記クロック制御手段をイネーブルまたはディスエーブルするようにしてもよい。この構成によれば、プロセッサエレメント毎に、停止状態のプロセッサエレメントへのクロック供給を抑制することができる。   Here, the control means further includes a clock control register that holds clock control information indicating whether or not the supply of clocks can be suppressed for each processor element, and the control means includes the clock control means for each processor element according to the clock control information. May be enabled or disabled. According to this configuration, it is possible to suppress the clock supply to the stopped processor element for each processor element.

また、本発明のマルチスレッド実行制御方法は、複数スレッドを含むプロセスを実行する複数のプロセッサエレメントと、各プロセッサエレメントで実行すべきスレッドを切り換える制御部とを備えるマルチスレッド計算機システムにおけるマルチスレッド実行制御方法であって、前記制御部は、前記複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントで実行すべきスレッドの実行順序を保持する複数の実行順序レジスタと、前記複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントにより実行中のスレッドの実行時間をカウントし、カウントされた時間がスレッドの割り当て時間に達したときタイムアウト信号を発生する複数のカウンタと、前記実行順序レジスタに保持された実行順序および前記タイムアウト信号に基づいて、各プロセッサエレメントで実行すべきスレッドを切り換えるスケジュール回路とを有し、前記マルチスレッド実行制御方法は、各プロセッサエレメントのシングルスレッドモードにおいて前記実行順序レジスタに前記実行順序を設定するステップと、各プロセッサエレメントをマルチスレッドモードに設定するステップと、各プロセッサエレメントのマルチスレッドモードにおいてスレッドを切り換えながら実行するステップとを有する。この構成によれば、シングルスレッドモードにおいて実行順序レジスタへの実行順序の設定など初期設定をしさえすれば、マルチスレッドモードに移行後に、スケジュール回路によるスレッド切り換えを高速に行うことができる。   The multi-thread execution control method of the present invention is a multi-thread execution control in a multi-thread computer system comprising a plurality of processor elements that execute a process including a plurality of threads, and a control unit that switches a thread to be executed by each processor element. In the method, the control unit is provided corresponding to the plurality of processor elements, and includes a plurality of execution order registers that hold execution orders of threads to be executed by the corresponding processor elements, and the plurality of processor elements. A plurality of counters that are provided correspondingly and that count the execution time of a thread that is being executed by the corresponding processor element, and that generate a time-out signal when the counted time reaches the allocated time of the thread; Preserved fruit A schedule circuit that switches a thread to be executed in each processor element based on the order and the timeout signal, and the multithread execution control method stores the execution order in the execution order register in a single thread mode of each processor element. , Setting each processor element to the multi-thread mode, and executing while switching threads in the multi-thread mode of each processor element. According to this configuration, if the initial setting such as the setting of the execution order in the execution order register is performed in the single thread mode, the thread switching by the schedule circuit can be performed at high speed after the transition to the multi-thread mode.

以上の説明から明らかなように、本発明によれば、粒度の細かいスレッドを切り換えながら実行する並列処理システムにおいて、スレッドの切り換えの時間ロスを大幅に削減することが可能となる。また、停止状態のプロセッサエレメントを有効活用することができる。その結果、マルチスレッド計算機システムの稼働率を向上させることができる。   As is apparent from the above description, according to the present invention, it is possible to greatly reduce the time loss of thread switching in a parallel processing system that executes while switching threads with fine granularity. In addition, the processor element in the stopped state can be effectively used. As a result, the operating rate of the multi-thread computer system can be improved.

以下、本発明の実施の形態について、図面を用いて詳細に説明する。
図1は、本発明の実施の形態に係るマルチスレッド計算機システムの全体構成を示す機能ブロック図である。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a functional block diagram showing an overall configuration of a multi-thread computer system according to an embodiment of the present invention.

図1に示されるように、マルチスレッド計算機システム1は、プロセッサエレメント群100と、並列プロセッサ制御部200と、コンテキストメモリ300と、クロック制御部400とを備える。なお、同図下側の破線内はメモリに記憶されているオペレーティングシステム2とユーザープロセス3とを模式的に図示してある。   As shown in FIG. 1, the multithread computer system 1 includes a processor element group 100, a parallel processor control unit 200, a context memory 300, and a clock control unit 400. In the lower broken line in the figure, the operating system 2 and the user process 3 stored in the memory are schematically shown.

プロセッサエレメント群100は、複数のプロセッサエレメントで構成される。ここでは説明の便宜上、3つのプロセッサエレメントで構成されるものとし、それぞれ第1のプロセッサエレメント101、第2のプロセッサエレメント102、第3のプロセッサエレメント103とする。各プロセッサエレメントは、複数のスレッドを含むプロセス内のスレッドを切り換えながら実行する。   The processor element group 100 includes a plurality of processor elements. Here, for convenience of explanation, it is assumed to be composed of three processor elements, which are a first processor element 101, a second processor element 102, and a third processor element 103, respectively. Each processor element executes while switching threads in a process including a plurality of threads.

並列プロセッサ制御部200は、スレッド実行スケジューラ部210と、プロセッサ実行状態レジスタ220と、複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントにより実行中のスレッドの実行時間をカウントする3つのカウンタ230と、タイムアウト検出部240とを備える。   The parallel processor control unit 200 is provided corresponding to a thread execution scheduler unit 210, a processor execution state register 220, and a plurality of processor elements, and three counters that count the execution time of a thread being executed by the corresponding processor element. 230 and a timeout detection unit 240.

並列プロセッサ制御部200は、各プロセッサエレメントで実行すべきスレッドを切り換える制御手段として機能する。   The parallel processor control unit 200 functions as a control unit that switches a thread to be executed by each processor element.

スレッド実行スケジューラ部210は、ハードウェアとして構成された回路であり、何れかのカウンタによりカウントされた時間がスレッドの割り当て時間に達したことがタイムアウト検出部240によって検出されたとき、当該カウンタに対応するプロセッサエレメントのスレッドを切り換えるスケジュール回路である。また、スレッド実行スケジューラ部210は、何れかのプロセッサエレメントが実行状態から停止状態になったとき、他のプロセッサのスレッドのうち並列実行可能なスレッドを判別し、判別したスレッドを停止状態のプロセッサに実行させる。   The thread execution scheduler unit 210 is a circuit configured as hardware. When the time-out detection unit 240 detects that the time counted by any counter has reached the thread allocation time, the thread execution scheduler unit 210 corresponds to the counter. This is a schedule circuit for switching the thread of the processor element to be executed. Further, when any processor element is changed from the execution state to the stopped state, the thread execution scheduler unit 210 determines a thread that can be executed in parallel among the threads of the other processors, and sets the determined thread as the stopped processor. Let it run.

プロセッサ実行状態レジスタ220は、状態レジスタ221〜223を含む。状態レジ
スタ221〜223は、第1のプロセッサエレメント101〜第3のプロセッサエレメント103に対応し、対応するプロセッサエレメントのステータスデータを保持する。このステータスデータは実行状態であるが停止状態であるかを示す情報を含む。
The processor execution status register 220 includes status registers 221 to 223. The status registers 221 to 223 correspond to the first processor element 101 to the third processor element 103, and hold status data of the corresponding processor element. This status data includes information indicating whether it is in an execution state but in a stop state.

カウンタ230は、複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントにより実行中のスレッドの実行時間をカウントする。   The counter 230 is provided corresponding to a plurality of processor elements, and counts the execution time of a thread being executed by the corresponding processor element.

図2は、スレッド実行スケジューラ部210の機能ブロック図である。スレッド実行スケジューラ部210は、コンフィグレーションレジスタ群2100、スレッドスケジューラ部218と、コンテキスト転送制御部219とを備える。   FIG. 2 is a functional block diagram of the thread execution scheduler unit 210. The thread execution scheduler unit 210 includes a configuration register group 2100, a thread scheduler unit 218, and a context transfer control unit 219.

コンフィグレーションレジスタ群2100は、実行順序レジスタ211a〜211cクォンタムレジスタ212a〜212c、優先度レジスタ213a〜213c、マルチスレッドモードレジスタ214a〜214c、クロック制御レジスタ215a〜215c、並列可否レジスタ216a〜216c、他PE実行可否レジスタ217a〜217cを含む。符号末尾のa〜cは、第1のプロセッサエレメント101〜第3のプロセッサエレメント103に対応することを意味する。   The configuration register group 2100 includes execution order registers 211a to 211c, quantum registers 212a to 212c, priority registers 213a to 213c, multithread mode registers 214a to 214c, clock control registers 215a to 215c, parallel availability registers 216a to 216c, and other PEs. Execution availability registers 217a to 217c are included. The letters “a” to “c” at the end of the reference signify to correspond to the first processor element 101 to the third processor element 103.

図3は、コンフィグレーションレジスタ群2100の具体例を示す図である。同図では、第1のプロセッサエレメント101に対応するレジスタのみ示すが、第2のプロセッサエレメント102、第3のプロセッサエレメント103に対応するレジスタも同様である。   FIG. 3 is a diagram illustrating a specific example of the configuration register group 2100. Although only the registers corresponding to the first processor element 101 are shown in the figure, the registers corresponding to the second processor element 102 and the third processor element 103 are the same.

実行順序レジスタ211aは、対応するプロセッサエレメントで実行すべきスレッドの実行順序を保持する。図中のNa1、Na2、Na3・・・は、対応する第1のプロセッサエレメント101において実行すべきスレッドに対応するスレッド番号の列であり、1番目、2番目、3番目・・・に実行すべきスレッドの番号を示す。一番大きなスレッド番号のスレッドの次に実行されるスレッドはスレッド番号Na1のスレッドである。つまり、実行順序レジスタ211aは巡回的な実行順序を示す。なお、実行順序レジスタ211aは、1本のレジスタでなくてもよく、複数本のレジスタで構成してもよい。   The execution order register 211a holds the execution order of threads to be executed by the corresponding processor element. In the figure, Na1, Na2, Na3... Are thread number strings corresponding to threads to be executed in the corresponding first processor element 101, and are executed in the first, second, third,. Indicates the number of the thread that should be. The thread that is executed next to the thread with the highest thread number is the thread with the thread number Na1. That is, the execution order register 211a indicates a cyclic execution order. Note that the execution order register 211a does not have to be one register, and may be composed of a plurality of registers.

クォンタムレジスタ212aは、対応するプロセッサエレメントで実行すべきスレッド毎の割り当て時間を示す。図中のQa1、Qa2、Qa3・・・は、Na1、Na2、Na3・・・に対応し、それぞれ対応するスレッドの割り当て時間(クォンタム値)を、例えばサイクル数で示す。   The quantum register 212a indicates an allocation time for each thread to be executed by the corresponding processor element. In the figure, Qa1, Qa2, Qa3,... Correspond to Na1, Na2, Na3,..., And indicate the allocation time (quantum value) of the corresponding thread, for example, by the number of cycles.

優先度レジスタ213aは、対応するプロセッサエレメントへの割り込み信号に対応する優先実行すべきスレッドを示す優先度情報を保持する。同図では優先度情報は、優先スレッド番号Paである。   The priority register 213a holds priority information indicating a thread to be preferentially executed corresponding to an interrupt signal to the corresponding processor element. In the figure, the priority information is a priority thread number Pa.

マルチスレッドモードレジスタ214aは、シングルスレッドモードおよびマルチスレッドモードの何れかを示すモード情報を保持する。シングルスレッドモードを示すモード情報は、スレッド実行スケジューラ部210をディスエーブルにする。これにより、対応するプロセッサエレメントを、スレッド切り換えを伴わないシングルスレッドモードで動作させる。マルチスレッドモードを示すモード情報は、スレッド実行スケジューラ部210をイネーブルにする。これにより、対応するプロセッサエレメントを、スレッド切り換えを伴うマルチスレッドモードで動作させる。マルチスレッド計算機システム1のリセット後は、マルチスレッドモードレジスタ214aは、シングルスレッドモードを示すモード情報を保持する。   The multithread mode register 214a holds mode information indicating either the single thread mode or the multithread mode. Mode information indicating the single thread mode disables the thread execution scheduler unit 210. As a result, the corresponding processor element is operated in a single thread mode without thread switching. The mode information indicating the multi-thread mode enables the thread execution scheduler unit 210. As a result, the corresponding processor element is operated in the multi-thread mode with thread switching. After the multi-thread computer system 1 is reset, the multi-thread mode register 214a holds mode information indicating the single thread mode.

クロック制御レジスタ215aは、対応するプロセッサエレメントへのクロック供給の抑制可否(イネーブルまたはディスエーブル)を示すクロック制御情報を保持する。   The clock control register 215a holds clock control information indicating whether or not the clock supply to the corresponding processor element can be suppressed (enabled or disabled).

並列可否レジスタ216aは、同一プロセス内の他のスレッドとの並列実行可否を示すスレッド毎の並列実行可否情報を保持する。並列実行可否情報は、スレッド毎にイネーブルまたはディスエーブルを示す。   The parallel availability register 216a holds parallel execution availability information for each thread indicating whether parallel execution with other threads in the same process is possible. The parallel execution availability information indicates enable or disable for each thread.

他PE実行可否レジスタ217aは、他のプロセッサエレメントによる実行可否を示す他PE実行可否情報を保持する。他PE実行可否情報は、スレッド毎にイネーブルまたはディスエーブルを示す。上記の並列実行可否情報と他PE実行可否情報とをまとめてスレッドの並列実行の可否に関する可否情報と呼ぶ。   The other PE execution availability register 217a holds other PE execution availability information indicating whether execution by other processor elements is possible. The other PE execution enable / disable information indicates enable or disable for each thread. The above-described parallel execution availability information and other PE execution availability information are collectively referred to as availability information related to whether threads can be executed in parallel.

図4は、マルチスレッド計算機システム1の起動後の処理を示すフローチャートを示す図である。以下、コンフィグレーションレジスタ群2100中のレジスタの符号末尾のa〜cを省略している場合は、何れかのプロセッサエレメントに対応する代表を表すものとする。   FIG. 4 is a flowchart illustrating processing after the multi-thread computer system 1 is started. In the following, when a to c at the end of the sign of the register in the configuration register group 2100 are omitted, it represents a representative corresponding to one of the processor elements.

同図のように、マルチスレッド計算機システム1の電源投入後またはリセット後は、シングルスレッドモードで起動し、第1のプロセッサエレメント101〜第3のプロセッサエレメント103は、それぞれスレッド切り替えをしないで1つのプロセス(管理プロセスと呼ぶ。)を実行する(S41)。この管理プロセスは、プロセッサエレメントの初期値設定用のプロセスである。各プロセッサエレメントは、管理プロセスを実行することによってコンフィグレーションレジスタ群2100のマルチスレッドモードレジスタ214以外の各レジスタにマルチスレッドモードで必要となる各レジスタ値を設定し(S42)、さらに、マルチスレッドモードレジスタ214にマルチスレッドモードを設定する(S43)。これにより、当該プロセッサエレメントは、マルチスレッドモードの動作が開始する。すなわち、スレッド実行スケジューラ部210がイネーブルになる。   As shown in the figure, after the multi-thread computer system 1 is powered on or reset, it starts up in a single thread mode, and each of the first processor element 101 to the third processor element 103 does not perform thread switching. A process (referred to as a management process) is executed (S41). This management process is a process for setting an initial value of the processor element. Each processor element sets each register value required in the multithread mode in each register other than the multithread mode register 214 of the configuration register group 2100 by executing the management process (S42), and further, multithread mode. A multi-thread mode is set in the register 214 (S43). As a result, the processor element starts to operate in the multi-thread mode. That is, the thread execution scheduler unit 210 is enabled.

マルチスレッドモードにおいて、スレッド実行スケジューラ部210は、最初に実行すべきスレッドを当該プロセッサエレメントで実行させる。さらに、スレッド実行スケジューラ部210は、実行順序レジスタ211から出力される実行順序に従って次に実行すべきスレッドを判別し、判別したスレッドのコンテキストを裏コンテキストレジスタに転送する(S44)。ここで、裏コンテキストレジスタは、コンテキストレジスタ1011a、1011bのうち、現在実行中のスレッドに用いられていない方を意味する。   In the multi-thread mode, the thread execution scheduler unit 210 causes the processor element to execute the thread to be executed first. Further, the thread execution scheduler unit 210 determines the thread to be executed next in accordance with the execution order output from the execution order register 211, and transfers the determined thread context to the back context register (S44). Here, the back context register means one of the context registers 1011a and 1011b that is not used for the currently executing thread.

その後、タイムアウト検出部240がタイムアウトを検出したとき(S45)、スレッド実行スケジューラ部210は、タイムアウトに対応するプロセッサエレメントについて、スレッドを切り換える(S46)。このスレッド切り換えでは、実行中のスレッドのコンテキストを保持しているコンテキストレジスタ(表コンテキストレジスタと呼ぶ。)から、次に実行すべきコンテキストを保持している裏コンテキストレジスタに切り換え、さらに、スレッドを切り換える。スレッド切り換え後に、新たな表コンテキストレジスタと異なる方のコンテキストレジスタからコンテキストをメモリに退避し、現在実行中のスレッドの次のスレッドに対応するコンテキストをメモリから当該コンテキストレジスタに復帰させる(S44)。   Thereafter, when the timeout detection unit 240 detects a timeout (S45), the thread execution scheduler unit 210 switches threads for the processor element corresponding to the timeout (S46). In this thread switching, the context register holding the context of the executing thread (referred to as the table context register) is switched to the back context register holding the context to be executed next, and the thread is further switched. . After the thread switching, the context is saved in the memory from the context register different from the new table context register, and the context corresponding to the thread next to the currently executing thread is returned from the memory to the context register (S44).

以上のように、マルチスレッドモードにおけるスレッド切り換えは、ユーザープロセス内のスレッドスケジューラではなく、並列プロセッサ制御部200によってハードウェア的に実行されるので、時間ロスを生じさせることなく高速に行うことができ、マルチスレッド計算機システム1の稼働率を向上させることができる。   As described above, the thread switching in the multi-thread mode is executed by hardware by the parallel processor control unit 200, not by the thread scheduler in the user process, and can be performed at high speed without causing time loss. The operating rate of the multi-thread computer system 1 can be improved.

図5は、スレッド実行スケジューラ部210における、停止状態のプロセッサエレメントにスレッドを割り当てる処理を示すフローチャート図である。同図のように、スレッド実行スケジューラ部210は、何れかのプロセッサエレメントが実行状態から停止状態になったかどうかを判定する(S51)。ここで、停止状態はスレッドが他のスレッド処理待ち、外部資源からの応答待ちである状態をいう。何れかのプロセッサエレメントが実行状態から停止状態になったとき、スレッド実行スケジューラ部210は、実行状態のプロ
セッサエレメント毎に次の処理を行う(S52〜S58:ループ1)。ループ1においてスレッド実行スケジューラ部210は、実行状態のプロセッサエレメントにおいて次に実行すべきスレッドを判別し(S53)、当該プロセッサエレメントにおいて実行中のスレッド(現スレッドと呼ぶ。)に対応する並列実行可否情報および他PE実行可否情報を読み出し(S54、S55)、現スレッドと次に実行すべきスレッドとが並列実行可能か否かを判定する(S56)。この判定において、スレッド実行スケジューラ部210は、(a)現スレッドの並列実行可否情報がイネーブル、(b)次に実行すべきスレッドの並列実行可否情報がイネーブル、かつ、(c)次に実行すべきスレッドの他PE可否情報がイネーブルである場合に、現スレッドに対して、次のスレッドが停止状態のプロセッサで並列実行可能であると判定し、(a)〜(c)のうち1つ以上がディスエーブルである場合には並列実行不可であると判定する。
FIG. 5 is a flowchart showing a process for assigning a thread to a processor element in a stopped state in the thread execution scheduler unit 210. As shown in the figure, the thread execution scheduler unit 210 determines whether any of the processor elements has changed from the execution state to the stop state (S51). Here, the stopped state means a state in which the thread is waiting for another thread process and waiting for a response from an external resource. When any of the processor elements changes from the execution state to the stop state, the thread execution scheduler unit 210 performs the following processing for each processor element in the execution state (S52 to S58: loop 1). In loop 1, the thread execution scheduler unit 210 determines a thread to be executed next in the processor element in the execution state (S53), and determines whether or not parallel execution corresponding to the thread being executed in the processor element (referred to as the current thread) is possible. Information and other PE execution availability information are read (S54, S55), and it is determined whether the current thread and the thread to be executed next can be executed in parallel (S56). In this determination, the thread execution scheduler unit 210 enables (a) the parallel execution availability information of the current thread, (b) enables the parallel execution availability information of the thread to be executed next, and (c) executes next. When other PE availability information of the thread to be activated is enabled, it is determined that the next thread can be executed in parallel by the stopped processor with respect to the current thread, and one or more of (a) to (c) When is disabled, it is determined that parallel execution is impossible.

並列実行可能であると判定した場合、スレッド実行スケジューラ部210は、停止状態のプロセッサエレメントに次のスレッドを実行させ(S57)、ループ1を抜ける。もちろん、このときスレッド実行スケジューラ部210は、停止状態のプロセッサエレメントに次のスレッドを実行させる前に、停止状態のプロセッサエレメントで停止中のスレッドのコンテキストの退避と、次に実行すべきスレッドのコンテキストの復帰とを行う。停止状態のプロセッサエレメントで実行されたスレッドは、当該スレッドの割り当て時間を経過したとき、元のスレッドに切り換えられる。   If it is determined that parallel execution is possible, the thread execution scheduler unit 210 causes the processor element in the stopped state to execute the next thread (S57), and exits loop 1. Of course, at this time, the thread execution scheduler unit 210 saves the context of the thread stopped in the stopped processor element and the context of the thread to be executed next before causing the stopped processor element to execute the next thread. And return. A thread executed by a stopped processor element is switched to the original thread when the allocated time of the thread has elapsed.

このように、停止状態のプロセッサエレメントを有効活用して、1つのプロセスを1つのプロセッサエレメントだけでなく複数のプロセッサエレメントに実行させることができるので、マルチスレッド計算機システムの稼働率をさらに向上させることができる。また、スレッド毎に並列実行可否情報および他PE実行可否情報を設定できるので、各スレッドの処理内容に依存して並列実行可能にするかしないかを柔軟に設定することができる。   As described above, since one process can be executed not only by one processor element but also by a plurality of processor elements by effectively utilizing the stopped processor elements, the operating rate of the multi-thread computer system can be further improved. Can do. In addition, since parallel execution enable / disable information and other PE execution enable / disable information can be set for each thread, it is possible to flexibly set whether to enable parallel execution depending on the processing content of each thread.

なお、図5のフローチャートに示したスレッド実行スケジューラ部210の制御論理の流れを示しているのであって、実行スケジューラ部はハードウェアによりこの制御論理を実現する。   The flow of control logic of the thread execution scheduler unit 210 shown in the flowchart of FIG. 5 is shown, and the execution scheduler unit realizes this control logic by hardware.

次に、本発明の実施の形態について、その動作の一例を説明する。
オペレーティングシステム2が第1のプロセッサエレメント101で実行するユーザープロセス3を開始させると、ユーザープロセス3はまずスレッド実行スケジューラ部210に実装された、第1のプロセッサエレメント101に対応する実行順序レジスタ211a、クォンタムレジスタ212a、優先度レジスタ213a、並列可否レジスタ216a、他PE実行可否レジスタ217aに、それぞれ各スレッド31、32、33、34の実行順序、クォンタム値、優先度、並列実行のイネーブル/ディスエーブル、他PE実行のイネーブル/ディスエーブルを示す各情報を格納する。また、クロック制御レジスタ215aには、クロック供給抑制の可否を示す情報を格納する。以下の説明では、説明の便宜上、スレッド31、32、33をこの順序で実行するものとする(スレッド34については後述する。)。
Next, an example of the operation of the embodiment of the present invention will be described.
When the operating system 2 starts the user process 3 to be executed by the first processor element 101, the user process 3 first executes the execution order register 211a corresponding to the first processor element 101, which is implemented in the thread execution scheduler unit 210. The quantum register 212a, the priority register 213a, the parallel availability register 216a, and the other PE execution availability register 217a have the execution order, quantum value, priority, parallel execution enable / disable of each thread 31, 32, 33, 34, respectively. Each piece of information indicating enable / disable of other PE execution is stored. The clock control register 215a stores information indicating whether or not the clock supply can be suppressed. In the following description, for convenience of explanation, it is assumed that the threads 31, 32, and 33 are executed in this order (the thread 34 will be described later).

第1のプロセッサエレメント101がマルチスレッドモードに遷移した後、コンテキスト転送制御部219はコンテキストメモリ300からスレッド31のコンテキストを読み出し、第1のプロセッサエレメント101のコンテキストレジスタ1011に格納する。そののち、第1のプロセッサエレメント101はコンテキストレジスタ1011の値を参照し、スレッド31の実行を開始する。   After the first processor element 101 transitions to the multi-thread mode, the context transfer control unit 219 reads the context of the thread 31 from the context memory 300 and stores it in the context register 1011 of the first processor element 101. After that, the first processor element 101 refers to the value of the context register 1011 and starts executing the thread 31.

第1のプロセッサエレメント101がスレッド31の実行を開始すると同時に、カウンタ230はスレッド31に対応するクォンタムレジスタ212aの設定値を初期値として
1ずつ減算を開始する。
At the same time that the first processor element 101 starts executing the thread 31, the counter 230 starts subtraction one by one with the set value of the quantum register 212a corresponding to the thread 31 as an initial value.

さらに、このとき、スレッド実行スケジューラ部210に実装されたコンテキスト転送制御部219は、次に実行するスレッド32のコンテキストをコンテキストメモリ300から読み出し、プロセッサエレメント群100に実装されたコンテキストレジスタ1011に格納する(「コンテキストの復帰」)。   Further, at this time, the context transfer control unit 219 implemented in the thread execution scheduler unit 210 reads the context of the thread 32 to be executed next from the context memory 300 and stores it in the context register 1011 implemented in the processor element group 100. ("Return context").

第1のプロセッサエレメント101がスレッド31の実行を続行し、カウンタ230の値が0になったとき、タイムアウト検出部240がこれを検出して、第1のプロセッサエレメント101にスレッド切り換えを行うための割り込み信号を出力する。   When the first processor element 101 continues execution of the thread 31 and the value of the counter 230 becomes 0, the timeout detection unit 240 detects this and performs thread switching for the first processor element 101. Outputs an interrupt signal.

割り込み信号を受理した第1のプロセッサエレメント101は、コンテキスト切り換えのための処理を行ったのち、コンテキストの読み出し先を、既に格納が完了しているスレッド32のコンテキストレジスタ1011に切り換え、スレッド32の実行を開始する。   The first processor element 101 that has received the interrupt signal performs processing for context switching, then switches the context reading destination to the context register 1011 of the thread 32 that has already been stored, and executes the thread 32. To start.

スレッド32の実行を開始した後、コンテキスト転送制御部219は第1のプロセッサエレメント101内に実装されたスレッド31のコンテキストを格納するコンテキストレジスタからコンテキストを読み出し、コンテキストメモリ300に格納する(「コンテキ
ストの退避」)。
After starting the execution of the thread 32, the context transfer control unit 219 reads the context from the context register that stores the context of the thread 31 mounted in the first processor element 101, and stores it in the context memory 300 (“context of context” Evacuation ").

以下、スレッド32とスレッド33の実行、対応するコンテキストの切り換えも同様に行う。   Thereafter, the thread 32 and the thread 33 are executed and the corresponding contexts are switched in the same manner.

スレッド33の実行を完了すると、次にスレッド31を実行する。以下、スレッド31、スレッド32、スレッド33、スレッド31、(以下同様)の順に実行する。なお、この実行順序をあらわす実行順序情報には、図3のように実行順序レジスタ211aに属性としてあらかじめ格納される。   When the execution of the thread 33 is completed, the thread 31 is executed next. Thereafter, the process is executed in the order of thread 31, thread 32, thread 33, thread 31, and so on. The execution order information representing the execution order is stored in advance in the execution order register 211a as an attribute as shown in FIG.

次に、スレッドスケジューラ部218に外部割込み信号500が入力された場合の動作について説明する。外部割込み信号500が入力されると、スレッドスケジューラ部218は緊急に実行が必要なスレッドを次に実行するようにスケジューリングを行う。ここではスレッド34がこの緊急に実行が必要なスレッドであるとして説明する。このとき、コンテキスト転送制御部219により、コンテキストメモリ300からスレッド34のコンテキストを読み出して第1のプロセッサエレメント101のコンテキストレジスタ1011に格納し、さらに第1のプロセッサエレメント101にスレッド切り換えを行うための割り込み信号を出力する。そののち、第1のプロセッサエレメント101では次にスレッド34を実行する。なお、スレッド34が「緊急に実行が必要なスレッド」であるか否かの情報は、優先度レジスタ213aに属性としてあらかじめ設定する。また、図3のように優先度レジスタ213aには優先的に実行する割り込み処理に対応するスレッド番号を設定してもよいが、スレッド毎に設定してもよい。その場合、割り込み処理に対応するスレッドの優先度は最も高く設定される。   Next, an operation when the external interrupt signal 500 is input to the thread scheduler unit 218 will be described. When the external interrupt signal 500 is input, the thread scheduler unit 218 performs scheduling so that a thread that needs to be executed urgently is executed next. Here, it is assumed that the thread 34 is a thread that needs to be executed urgently. At this time, the context transfer control unit 219 reads the context of the thread 34 from the context memory 300, stores it in the context register 1011 of the first processor element 101, and further interrupts the first processor element 101 for thread switching. Output a signal. After that, the first processor element 101 executes the thread 34 next. Information indicating whether the thread 34 is a “thread that needs to be executed urgently” is set in advance in the priority register 213a as an attribute. Further, as shown in FIG. 3, the priority register 213a may be set with a thread number corresponding to an interrupt process to be executed with priority, but may be set for each thread. In that case, the priority of the thread corresponding to the interrupt process is set to the highest.

ここまで、第1のプロセッサエレメント101でユーザープロセス3を実行する方法を説明したが、第2のプロセッサエレメント102、第3のプロセッサエレメント103において他のユーザープロセスを実行する場合についても同様である。   So far, the method of executing the user process 3 by the first processor element 101 has been described, but the same applies to the case of executing another user process by the second processor element 102 and the third processor element 103.

次にプロセッサ実行状態レジスタ220の機能について説明する。プロセッサ実行状態レジスタ220には、プロセッサエレメント群100を構成する各プロセッサエレメント101、102、103が、それぞれスレッドを実行している状態であるか否かを表す情
報が格納されている。スレッドを実行している状態であるか否かを表す情報は各プロセッサエレメント101、102、103から出力され、プロセッサ実行状態レジスタ220がその情報を保持する。
Next, the function of the processor execution state register 220 will be described. The processor execution state register 220 stores information indicating whether or not each of the processor elements 101, 102, and 103 constituting the processor element group 100 is executing a thread. Information indicating whether or not a thread is being executed is output from each of the processor elements 101, 102, and 103, and the processor execution state register 220 holds the information.

前述の例を用いて、プロセッサ実行状態レジスタ220の機能についてさらに詳細に説明する。   The function of the processor execution status register 220 will be described in more detail using the above example.

第1のプロセッサエレメント101で実行するユーザープロセス3のスレッド31を第1のプロセッサエレメントで実行している間に、スレッドスケジューラ部218はスレッド31の次に実行するスレッドとして、ここでは32をスケジューリングする。このとき、スレッドスケジューラ部218はさらにプロセッサ実行状態レジスタ220の中にある第2のプロセッサエレメント102のスレッド実行状態に関する情報を参照し、第2のプロセッサエレメント102で実行するスレッドが存在しないことを検出すると、スレッド32を第2のプロセッサエレメント102で実行するようにスケジューリングする。コンテキスト転送制御部219はスレッド32のコンテキストをコンテキストメモリから読み出し、第2のプロセッサエレメント102のコンテキストレジスタ(第2のプロセッサエレメントに実装)に格納する。なお、スレッド32が第1のプロセッサエレメント101以外のプロセッサで実行することが可能であるか否かの情報と、スレッド31およびスレッド32が並列に実行可能であるか否かの情報とは、優先度レジスタ213aに属性としてあらかじめ設定する。   While the thread 31 of the user process 3 executed by the first processor element 101 is executed by the first processor element, the thread scheduler unit 218 schedules 32 as threads executed next to the thread 31 here. . At this time, the thread scheduler unit 218 further refers to the information regarding the thread execution state of the second processor element 102 in the processor execution state register 220 and detects that there is no thread to be executed by the second processor element 102. Then, the thread 32 is scheduled to be executed by the second processor element 102. The context transfer control unit 219 reads the context of the thread 32 from the context memory and stores it in the context register (implemented in the second processor element) of the second processor element 102. Information indicating whether the thread 32 can be executed by a processor other than the first processor element 101 and information indicating whether the thread 31 and the thread 32 can be executed in parallel are given priority. It is set in advance as an attribute in the degree register 213a.

さらには、第1のプロセッサエレメント101で実行するようにスケジューリングされているスレッド(スレッドAとする)の優先度情報と、第2のプロセッサで実行するようにスケジューリングされているスレッド(スレッドBとする)の優先度情報(両者の優先度情報はいずれも優先度レジスタ213a、213bにあらかじめ格納する)とを比較し、スレッドAの優先度がスレッドBの優先度より高い場合には、スレッドAを第2のプロセッサエレメント102で、さらにスレッドBよりも先に実行するようにスケジューリングする。なお、スレッドAが第1のプロセッサ以外のプロセッサで実行することが可能であるか否かの情報は、優先度レジスタ213aに属性としてあらかじめ設定する。   Furthermore, priority information of a thread scheduled to be executed by the first processor element 101 (referred to as thread A) and a thread scheduled to be executed by the second processor (referred to as thread B). ) Priority information (both priority information is stored in the priority registers 213a and 213b in advance) and if the priority of the thread A is higher than the priority of the thread B, the thread A is In the second processor element 102, scheduling is executed so as to be executed before the thread B. Information indicating whether the thread A can be executed by a processor other than the first processor is set in advance in the priority register 213a as an attribute.

なお、スレッドを実行している状態であるか否かを表す情報はプロセッサエレメント群100の各プロセッサエレメントから出力される例について説明したが、この情報はスレッド実行スケジューラ部210が設定する構成も考えられる。   Note that the information indicating whether or not the thread is being executed has been described as being output from each processor element of the processor element group 100. However, this information may be configured by the thread execution scheduler unit 210. It is done.

次にクロック制御部400の機能について説明する。プロセッサ実行状態レジスタ220はクロック制御部400に接続されている。クロック制御部400は、クロック制御レジスタ215の設定値およびプロセッサ実行状態レジスタ220の値を参照し、プロセッサエレメント群100内の各プロセッサエレメントに供給するクロックの制御を行う。すなわち、クロック制御レジスタ215の設定値が「クロック停止制御を行う」ことを表す情報であるとき、クロック制御部400はプロセッサ実行状態レジスタ220の値を監視し、例えば第1のプロセッサエレメント101で実行するスレッドがないことを検出すると、第1のプロセッサエレメント101へのクロック供給を停止する。この機能により、マルチスレッド計算機システムの不要な電力消費を削減するという格別の効果を得ることができる。   Next, functions of the clock control unit 400 will be described. The processor execution state register 220 is connected to the clock control unit 400. The clock control unit 400 refers to the set value of the clock control register 215 and the value of the processor execution state register 220, and controls the clock supplied to each processor element in the processor element group 100. That is, when the set value of the clock control register 215 is information indicating that “clock stop control is performed”, the clock control unit 400 monitors the value of the processor execution state register 220 and executes, for example, the first processor element 101. When it is detected that there is no thread to perform, the clock supply to the first processor element 101 is stopped. With this function, a special effect of reducing unnecessary power consumption of the multi-thread computer system can be obtained.

なお、本実施の形態では、プロセッサエレメントの数やユーザープロセス3を構成するスレッドの数を具体的に決めて説明したが、これらはいずれも説明の便宜上のものであり、これに限るものではない。   In the present embodiment, the number of processor elements and the number of threads constituting the user process 3 are specifically determined and described. However, these are for convenience of description and are not limited thereto. .

また、コンフィグレーションレジスタ群2100の構成についても同様に説明の便宜上
のものであり、機能的には同等で他の構成も考えられることはいうまでもない。
Similarly, the configuration of the configuration register group 2100 is also for convenience of explanation, and it is needless to say that other configurations can be considered functionally equivalent.

本発明にかかるマルチスレッド計算機システムは、携帯電話機等のモバイル機器等における音楽録音再生処理や、映像録音再生処理を複数のプロセッサで並行して実行する音声録音再生機器や、映像録音再生機器として適用できる。   The multi-thread computer system according to the present invention is applied as audio recording / playback equipment or video recording / playback equipment for performing music recording / playback processing and video recording / playback processing in parallel on a plurality of processors in a mobile device such as a mobile phone. it can.

本発明の実施の形態における、マルチスレッド計算機システムの機能ブロック図である。It is a functional block diagram of a multithread computer system in an embodiment of the present invention. スレッド実行スケジューラ部の機能ブロック図である。It is a functional block diagram of a thread execution scheduler part. コンフィグレーションレジスタ群の具体例を示す図である。It is a figure which shows the specific example of a configuration register group. 起動後の処理を示すフローチャートを示す図である。It is a figure which shows the flowchart which shows the process after starting. 停止状態のプロセッサエレメントにスレッドを割り当てる処理を示すフローチャート図である。It is a flowchart figure which shows the process which allocates a thread | sled to the processor element of a stop state.

符号の説明Explanation of symbols

1 マルチスレッド計算機システム
2 オペレーティングシステム
3 ユーザープロセス
100 プロセッサエレメント群
101 第1のプロセッサエレメント
102 第2のプロセッサエレメント
103 第3のプロセッサエレメント
200 並列プロセッサ制御部
210 スレッド実行スケジューラ部
211a、211b、211c 実行順序レジスタ
212a、212b、212c クォンタムレジスタ
213a、213b、213c 優先度レジスタ
214a、214b、214c マルチスレッドモードレジスタ
215a、215b、215c クロック制御レジスタ
216a、216b、216c 並列可否レジスタ
217a、217b、217c 他PE実行可否レジスタ
218 スレッドスケジューラ部
219 コンテキスト転送制御部
220 プロセッサ実行状態レジスタ
230 カウンタ
240 タイムアウト検出部
300 コンテキストメモリ
400 クロック制御部
500 外部割込み信号
1011 コンテキストレジスタ
2100 コンフィグレーションレジスタ群
DESCRIPTION OF SYMBOLS 1 Multithread computer system 2 Operating system 3 User process 100 Processor element group 101 1st processor element 102 2nd processor element 103 3rd processor element 200 Parallel processor control part 210 Thread execution scheduler part 211a, 211b, 211c Execution order Register 212a, 212b, 212c Quantum register 213a, 213b, 213c Priority register 214a, 214b, 214c Multithread mode register 215a, 215b, 215c Clock control register 216a, 216b, 216c Parallel availability register 217a, 217b, 217c Other PE execution availability Register 218 Thread scheduler unit 219 Context transfer control unit 20 processor execution status register 230 counter 240 times out detector 300 context memory 400 clock controller 500 external interrupt signal 1011 context register 2100 configuration register group

Claims (14)

マルチスレッド計算機システムであって、
複数スレッドを含むプロセスを実行するプロセッサエレメントを複数個含むプロセッサエレメント群と、
各プロセッサエレメントで実行すべきスレッドを切り換える制御手段とを備え、
前記制御手段は、
前記複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントで実行すべきスレッドの実行順序を保持する複数の実行順序レジスタと、
前記複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントにより実行中のスレッドの実行時間をカウントし、カウントされた時間がスレッドの割り当て時間に達したときタイムアウト信号を発生する複数のカウンタと、
前記実行順序レジスタに保持された実行順序および前記タイムアウト信号に基づいて、各プロセッサエレメントで実行すべきスレッドを切り換えるスケジュール回路と
を備えることを特徴とするマルチスレッド計算機システム。
A multi-threaded computer system,
A processor element group including a plurality of processor elements for executing a process including a plurality of threads;
Control means for switching threads to be executed in each processor element,
The control means includes
A plurality of execution order registers which are provided corresponding to the plurality of processor elements and hold the execution order of threads to be executed by the corresponding processor elements;
A plurality of counters provided corresponding to the plurality of processor elements, counting the execution time of a thread being executed by the corresponding processor element, and generating a time-out signal when the counted time reaches an allocation time of the thread; ,
A multi-thread computer system comprising: a schedule circuit that switches a thread to be executed by each processor element based on the execution order held in the execution order register and the timeout signal.
前記実行順序レジスタは、前記複数スレッドの実行を開始する前に対応するプロセッサエレメントによって前記実行順序を書き込まれる
ことを特徴とする請求項1記載のマルチスレッド計算機システム。
The multi-thread computer system according to claim 1, wherein the execution order register is written with the execution order by a corresponding processor element before the execution of the plurality of threads is started.
前記制御手段は、さらに、
前記スケジュール回路をディスエーブルするシングルスレッドモード、前記スケジュール回路をイネーブルするマルチスレッドモードの何れかを示すモード情報を保持するモードレジスタを備え、
前記モードレジスタは、プロセッサにより書き込み可能である
ことを特徴とする請求項2記載のマルチスレッド計算機システム。
The control means further includes
A mode register for holding mode information indicating either a single thread mode for disabling the schedule circuit or a multi-thread mode for enabling the schedule circuit;
The multi-thread computer system according to claim 2, wherein the mode register is writable by a processor.
前記制御手段は、さらに、
前記複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントへの割り込み信号に対応する優先実行すべきスレッドを示す優先度情報を保持する複数の優先度レジスタを備え、
スケジュール回路は、さらに、外部から割り込み信号が入力されたとき、前記割り込み信号に対応するスレッドに切り換える
ことを特徴とする請求項3記載のマルチスレッド計算機システム。
The control means further includes
A plurality of priority registers that are provided corresponding to the plurality of processor elements and hold priority information indicating threads to be preferentially executed corresponding to interrupt signals to the corresponding processor elements;
The multi-thread computer system according to claim 3, wherein the schedule circuit further switches to a thread corresponding to the interrupt signal when an interrupt signal is input from the outside.
前記各プロセッサエレメントは、実行中のスレッドのコンテキストと、次に実行すべきコンテキストとを保持する2つのコンテキストレジスタ群を備え、
前記スケジュール回路は、さらに、プロセッサエレメントのコンテキストの退避および復帰をするためにコンテキスト転送を行うコンテキスト転送部を備え、
前記スケジュール回路は、スレッド切り換え時に、プロセッサエレメントが使用するコンテキストレジスタ群を切り替え、
前記コンテキスト転送部は、スレッド切り換え後に、コンテキスト転送を行う
ことを特徴とする請求項3記載のマルチスレッド計算機システム。
Each of the processor elements includes two context registers that hold a context of a running thread and a context to be executed next,
The schedule circuit further includes a context transfer unit that performs context transfer to save and restore the context of the processor element,
The schedule circuit switches a context register group used by the processor element when switching threads,
The multi-thread computer system according to claim 3, wherein the context transfer unit performs context transfer after thread switching.
前記制御手段は、さらに、各プロセッサエレメントが実行状態であるか停止状態であるかを示す状態レジスタと、
スレッドの並列実行の可否に関する可否情報を保持する複数の可否情報保持部とを備え、
前記スケジュール回路は、さらに、何れかのプロセッサエレメントが実行状態から停止
状態になったとき、前記可否情報に基づいて実行状態のプロセッサエレメントが実行すべきスレッドのうち並列実行可能なスレッドを判別し、判別したスレッドを停止状態のプロセッサに実行させる
ことを特徴とする請求項1記載のマルチスレッド計算機システム。
The control means further includes a status register indicating whether each processor element is in an execution state or a stop state;
A plurality of availability information holding units for holding availability information regarding the availability of parallel execution of threads,
The schedule circuit further determines a thread that can be executed in parallel among threads to be executed by the processor element in the execution state based on the availability information when any of the processor elements is changed from the execution state to the stop state. The multithread computer system according to claim 1, wherein the determined thread is executed by a stopped processor.
前記可否情報は、同一プロセス内の他のスレッドとの並列実行可否を示す第1情報と、他のプロセッサエレメントによる実行可否を示す第2情報とを含み、
前記複数の可否情報保持部のそれぞれは、前記第1情報を保持する第1レジスタと、前記第2情報を保持する第2レジスタとを有する
ことを特徴とする請求項6記載のマルチスレッド計算機システム。
The availability information includes first information indicating whether or not parallel execution with other threads in the same process is possible, and second information indicating whether or not execution by other processor elements is possible,
The multithread computer system according to claim 6, wherein each of the plurality of availability information holding units includes a first register that holds the first information and a second register that holds the second information. .
前記実行順序レジスタ、第1レジスタおよび第2レジスタは、前記複数スレッドの実行開始前に対応するプロセッサエレメントによって実行順序、第1情報および第2情報をそれぞれ設定される
ことを特徴とする請求項7記載のマルチスレッド計算機システム。
The execution order register, the first register, and the second register are respectively set with an execution order, first information, and second information by a corresponding processor element before the execution of the plurality of threads is started. The described multi-threaded computer system.
前記制御手段は、さらに、
前記スケジュール回路をディスエーブルするシングルスレッドモード、前記スケジュール回路をイネーブルするマルチスレッドモードの何れかを示すモード情報を保持するモードレジスタを備え、
前記モードレジスタは、プロセッサにより書き込み可能である
ことを特徴とする請求項6、7または8記載のマルチスレッド計算機システム。
The control means further includes
A mode register for holding mode information indicating either a single thread mode for disabling the schedule circuit or a multi-thread mode for enabling the schedule circuit;
The multi-thread computer system according to claim 6, 7 or 8, wherein the mode register is writable by a processor.
前記制御手段は、さらに、
前記複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントへの割り込み信号に対応する優先実行すべきスレッドを示す優先度情報を保持する複数の優先度レジスタを備え、
スケジュール回路は、さらに、外部から割り込み信号が入力されたとき、前記割り込み信号に対応するスレッドに切り換える
ことを特徴とする請求項6から9の何れかに記載のマルチスレッド計算機システム。
The control means further includes
A plurality of priority registers that are provided corresponding to the plurality of processor elements and hold priority information indicating threads to be preferentially executed corresponding to interrupt signals to the corresponding processor elements;
The multi-thread computer system according to claim 6, wherein the schedule circuit further switches to a thread corresponding to the interrupt signal when an interrupt signal is input from the outside.
前記各プロセッサエレメントは、実行中のスレッドのコンテキストと、次に実行すべきコンテキストとを保持する2つのコンテキストレジスタ群を備え、
前記スケジュール回路は、さらに、プロセッサエレメントのコンテキストのメモリへの退避およびメモリからの復帰を行うコンテキスト転送部を備え、
前記スケジュール回路は、スレッド切り換え時に、プロセッサエレメントが使用するコンテキストレジスタ群を切り替え、
前記コンテキスト転送部は、スレッド切り換え後に、プロセッサエレメントが使用していないコンテキストレジスタ群に次に実行すべきスレッドのコンテキストを転送するコンテキスト転送部を備える
ことを特徴とする請求項6から10の何れかに記載のマルチスレッド計算機システム。
Each of the processor elements includes two context registers that hold a context of a running thread and a context to be executed next,
The schedule circuit further includes a context transfer unit that saves the context of the processor element to the memory and returns from the memory,
The schedule circuit switches a context register group used by a processor element when switching threads,
The context transfer unit includes a context transfer unit that transfers a context of a thread to be executed next to a context register group that is not used by a processor element after thread switching. The multi-thread computer system described in 1.
前記マルチスレッド計算機システムは、さらに、停止状態のプロセッサエレメントへのクロック信号の供給を抑制するクロック制御手段を備える
ことを特徴とする請求項6から11の何れかに記載のマルチスレッド計算機システム。
12. The multi-thread computer system according to claim 6, further comprising a clock control unit that suppresses supply of a clock signal to a processor element in a stopped state.
前記制御手段は、さらに、プロセッサエレメント毎にクロック供給の抑制可否を示すクロック制御情報を保持するクロック制御レジスタを備え、
前記制御手段は、クロック制御情報に従ってプロセッサエレメント毎に前記クロック制御手段をイネーブルまたはディスエーブルする
ことを特徴とする請求項12記載のマルチスレッド計算機システム。
The control means further includes a clock control register that holds clock control information indicating whether or not the clock supply can be suppressed for each processor element,
The multi-thread computer system according to claim 12, wherein the control means enables or disables the clock control means for each processor element in accordance with clock control information.
複数スレッドを含むプロセスを実行する複数のプロセッサエレメントと、各プロセッサエレメントで実行すべきスレッドを切り換える制御部とを備えるマルチスレッド計算機システムにおけるマルチスレッド実行制御方法であって、
前記制御部は、前記複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントで実行すべきスレッドの実行順序を保持する複数の実行順序レジスタと、前記複数のプロセッサエレメントに対応して設けられ、対応するプロセッサエレメントにより実行中のスレッドの実行時間をカウントし、カウントされた時間がスレッドの割り当て時間に達したときタイムアウト信号を発生する複数のカウンタと、前記実行順序レジスタに保持された実行順序および前記タイムアウト信号に基づいて、各プロセッサエレメントで実行すべきスレッドを切り換えるスケジュール回路とを有し、
前記マルチスレッド実行制御方法は、
各プロセッサエレメントのシングルスレッドモードにおいて前記実行順序レジスタに前記実行順序を設定するステップと、
各プロセッサエレメントをマルチスレッドモードに設定するステップと、
各プロセッサエレメントのマルチスレッドモードにおいてスレッドを切り換えながら実行するステップと
を有することを特徴とするマルチスレッド実行制御方法。
A multi-thread execution control method in a multi-thread computer system comprising a plurality of processor elements for executing a process including a plurality of threads and a control unit that switches a thread to be executed by each processor element.
The control unit is provided corresponding to the plurality of processor elements, and is provided corresponding to the plurality of execution order registers for holding the execution order of threads to be executed by the corresponding processor elements, and the plurality of processor elements. A plurality of counters for counting the execution time of a thread being executed by the corresponding processor element, and generating a time-out signal when the counted time reaches the allocated time of the thread, and the execution order held in the execution order register And a schedule circuit for switching a thread to be executed in each processor element based on the timeout signal,
The multi-thread execution control method includes:
Setting the execution order in the execution order register in a single thread mode of each processor element;
Setting each processor element to multi-thread mode;
And a step of executing while switching threads in a multi-thread mode of each processor element.
JP2007114791A 2006-04-27 2007-04-24 Multi-thread computer system and multi-thread execution control method Pending JP2007317171A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007114791A JP2007317171A (en) 2006-04-27 2007-04-24 Multi-thread computer system and multi-thread execution control method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006123748 2006-04-27
JP2007114791A JP2007317171A (en) 2006-04-27 2007-04-24 Multi-thread computer system and multi-thread execution control method

Publications (1)

Publication Number Publication Date
JP2007317171A true JP2007317171A (en) 2007-12-06

Family

ID=38850941

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007114791A Pending JP2007317171A (en) 2006-04-27 2007-04-24 Multi-thread computer system and multi-thread execution control method

Country Status (1)

Country Link
JP (1) JP2007317171A (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009238024A (en) * 2008-03-27 2009-10-15 Panasonic Corp Virtual multiprocessor, system lsi, cellphone device, and control method for virtual multiprocessor
JP2010086129A (en) * 2008-09-30 2010-04-15 Nec Electronics Corp Multi-thread processor
US7877535B2 (en) 2008-11-04 2011-01-25 Samsung Electronics Co., Ltd. Processor and interrupt handling method
JP2011065528A (en) * 2009-09-18 2011-03-31 Toyota Motor Corp Multiprocessor system
JP2012059195A (en) * 2010-09-13 2012-03-22 Renesas Electronics Corp Multi-thread processor
JP2012146157A (en) * 2011-01-13 2012-08-02 Hitachi Systems Ltd Scheduling method and scheduling system
US8365179B2 (en) 2008-09-30 2013-01-29 Renesas Electronics Corporation Multi-thread processor and its hardware thread scheduling method
JP5155336B2 (en) * 2008-01-15 2013-03-06 カーネロンシリコン株式会社 Task processing device
JP2013522710A (en) * 2010-03-11 2013-06-13 ブル エスエーエス IT system configuration method, computer program thereof, and IT system
US8607030B2 (en) 2008-09-30 2013-12-10 Renesas Electronics Corporation Scheduling threads instructions in variably selected or predetermined order periods of requested time ratio
JP2014149867A (en) * 2014-04-24 2014-08-21 Renesas Electronics Corp Multi-thread processor
JP2014149868A (en) * 2014-04-24 2014-08-21 Renesas Electronics Corp Multi-thread processor
JP2014211890A (en) * 2014-06-25 2014-11-13 ルネサスエレクトロニクス株式会社 Multi-thread processor and interrupt processing method of the same
JP2015187888A (en) * 2015-06-24 2015-10-29 ルネサスエレクトロニクス株式会社 Scheduling method of hardware thread in multi-thread processor
JP2017513112A (en) * 2014-03-27 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer system, computer-implemented method, and computer program for restoring thread context in a multithreaded computer system
JP2017513111A (en) * 2014-03-27 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer system, computer-implemented method, and computer program product for storing thread context in a multithreading computer system
JP2019179414A (en) * 2018-03-30 2019-10-17 株式会社デンソー Information processing device
US10545892B2 (en) 2008-09-30 2020-01-28 Renesas Electronics Corporation Multi-thread processor and its interrupt processing method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212809A (en) * 1997-10-31 1999-08-06 Sun Microsyst Inc Processor sharing method and device
JP2003241980A (en) * 2002-02-06 2003-08-29 Internatl Business Mach Corp <Ibm> Thread dispatch mechanism and method for multiprocessor computer systems
JP2003271399A (en) * 2002-01-09 2003-09-26 Matsushita Electric Ind Co Ltd Processor and program executing method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212809A (en) * 1997-10-31 1999-08-06 Sun Microsyst Inc Processor sharing method and device
JP2003271399A (en) * 2002-01-09 2003-09-26 Matsushita Electric Ind Co Ltd Processor and program executing method
JP2003241980A (en) * 2002-02-06 2003-08-29 Internatl Business Mach Corp <Ibm> Thread dispatch mechanism and method for multiprocessor computer systems

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5155336B2 (en) * 2008-01-15 2013-03-06 カーネロンシリコン株式会社 Task processing device
JP2009238024A (en) * 2008-03-27 2009-10-15 Panasonic Corp Virtual multiprocessor, system lsi, cellphone device, and control method for virtual multiprocessor
US8539203B2 (en) 2008-09-30 2013-09-17 Renesas Electronics Corporation Multi-thread processor selecting threads on different schedule pattern for interrupt processing and normal operation
US8365179B2 (en) 2008-09-30 2013-01-29 Renesas Electronics Corporation Multi-thread processor and its hardware thread scheduling method
JP2010086129A (en) * 2008-09-30 2010-04-15 Nec Electronics Corp Multi-thread processor
US9098336B2 (en) 2008-09-30 2015-08-04 Renesas Electronics Corporation Multi-thread processor and its hardware thread scheduling method
US8607030B2 (en) 2008-09-30 2013-12-10 Renesas Electronics Corporation Scheduling threads instructions in variably selected or predetermined order periods of requested time ratio
US10545892B2 (en) 2008-09-30 2020-01-28 Renesas Electronics Corporation Multi-thread processor and its interrupt processing method
US9529597B2 (en) 2008-09-30 2016-12-27 Renesas Electronics Corporation Multithread processor with different schedule pattern cycle state for handling interrupt processing
US9501320B2 (en) 2008-09-30 2016-11-22 Renesas Electronics Corporation Scheduling threads according to real time bit in predetermined time period or in variable time period of requested time ratio
US7877535B2 (en) 2008-11-04 2011-01-25 Samsung Electronics Co., Ltd. Processor and interrupt handling method
JP2011065528A (en) * 2009-09-18 2011-03-31 Toyota Motor Corp Multiprocessor system
JP2013522710A (en) * 2010-03-11 2013-06-13 ブル エスエーエス IT system configuration method, computer program thereof, and IT system
JP2012059195A (en) * 2010-09-13 2012-03-22 Renesas Electronics Corp Multi-thread processor
JP2012146157A (en) * 2011-01-13 2012-08-02 Hitachi Systems Ltd Scheduling method and scheduling system
JP2017513112A (en) * 2014-03-27 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer system, computer-implemented method, and computer program for restoring thread context in a multithreaded computer system
JP2017513111A (en) * 2014-03-27 2017-05-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer system, computer-implemented method, and computer program product for storing thread context in a multithreading computer system
JP2014149868A (en) * 2014-04-24 2014-08-21 Renesas Electronics Corp Multi-thread processor
JP2014149867A (en) * 2014-04-24 2014-08-21 Renesas Electronics Corp Multi-thread processor
JP2014211890A (en) * 2014-06-25 2014-11-13 ルネサスエレクトロニクス株式会社 Multi-thread processor and interrupt processing method of the same
JP2015187888A (en) * 2015-06-24 2015-10-29 ルネサスエレクトロニクス株式会社 Scheduling method of hardware thread in multi-thread processor
JP2019179414A (en) * 2018-03-30 2019-10-17 株式会社デンソー Information processing device
JP7236811B2 (en) 2018-03-30 2023-03-10 株式会社デンソー Information processing equipment

Similar Documents

Publication Publication Date Title
JP2007317171A (en) Multi-thread computer system and multi-thread execution control method
US8001549B2 (en) Multithreaded computer system and multithread execution control method
JP5099131B2 (en) Arithmetic unit
JP5173713B2 (en) Multi-thread processor and hardware thread scheduling method
KR101239082B1 (en) Resource management in a multicore architecture
US7627770B2 (en) Apparatus and method for automatic low power mode invocation in a multi-threaded processor
TWI416413B (en) Work processing device
JP5173714B2 (en) Multi-thread processor and interrupt processing method thereof
JP4996519B2 (en) Virtual multiprocessor, system LSI, mobile phone device, and virtual multiprocessor control method
JP2014081847A (en) Multi-thread processor
JP2000047872A (en) Microprocessor equipped with low-power-consumption operating function
JP2010086129A (en) Multi-thread processor
JPWO2009150815A1 (en) Multiprocessor system
WO2004046926A1 (en) Method, device and processor system for notifying event
JP2020091751A (en) Operation processing device and method for controlling the same
JP2004038751A (en) Processor and instruction control method
JP5928272B2 (en) Semiconductor integrated circuit and compiler
JPH07244588A (en) Data processor
JP4194953B2 (en) Multiple instruction issue processor
JP5536862B2 (en) Multithreaded processor
JP2005519393A (en) Method and apparatus for virtual direct memory access
JP6477216B2 (en) Arithmetic device, thread switching method, and multi-thread program
JP5770334B2 (en) Multithreaded processor
JP2024077885A (en) Arithmetic circuit and arithmetic processing method
CN114443255A (en) Thread calling method and device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111025