JP2013186637A - Multiprocessor device, scheduling method, and scheduling program - Google Patents

Multiprocessor device, scheduling method, and scheduling program Download PDF

Info

Publication number
JP2013186637A
JP2013186637A JP2012050447A JP2012050447A JP2013186637A JP 2013186637 A JP2013186637 A JP 2013186637A JP 2012050447 A JP2012050447 A JP 2012050447A JP 2012050447 A JP2012050447 A JP 2012050447A JP 2013186637 A JP2013186637 A JP 2013186637A
Authority
JP
Japan
Prior art keywords
program
operation mode
microprocessors
setting
unexecuted state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012050447A
Other languages
Japanese (ja)
Other versions
JP5936041B2 (en
Inventor
Yasushi Suzuki
康司 鈴木
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2012050447A priority Critical patent/JP5936041B2/en
Publication of JP2013186637A publication Critical patent/JP2013186637A/en
Application granted granted Critical
Publication of JP5936041B2 publication Critical patent/JP5936041B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a multiprocessor device, a scheduling method, and a scheduling program capable of replying a response to an input/output request within a time required without division loss and ensuring execution of another program.SOLUTION: The device comprises: an operation mode setting part 142 for setting either of a first operation mode A in which a firmware program 131 is capable of using all of CPU 111 and 112 or a second operation mode B in which a management program 132 uses at least one of the CPU 111 and 112; a CPU allocation part 143 for allocating the CPU 111 and 112; and an unexecuted state detection part 141 for detecting an unexecuted state of the management program 132. When an unexecuted state of the management program 132 is detected, the first operation mode A is set.

Description

本発明に係るいくつかの態様は、複数のマイクロプロセッサを備えるマルチプロセッサ装置のスケジューリング技術に関する。   Some embodiments according to the present invention relate to a scheduling technique for a multiprocessor device including a plurality of microprocessors.

従来、入出力装置からの要求により処理を実行するファームウェアは、カーネルモードと呼ばれる優先度(プライオリティ)の高い動作モードで実行されていた。しかし、入出力装置からの要求に制限を課すことはできないため、入出力装置からの要求が増加して負荷が高くなったときに、通常の優先度(プライオリティ)で動作する他のプログラムを実行できない、という問題があった。一方、ファームウェアを通常の優先度(プライオリティ)で実行すると、他のプログラムも実行可能となるが、ファームウェアの応答時間(レスポンスタイム)が長くなって(低下して)しまう、という問題があった。   Conventionally, firmware that executes processing in response to a request from an input / output device has been executed in an operation mode with a high priority (priority) called a kernel mode. However, since there is no limit on requests from I / O devices, other programs that run at normal priority (priority) are executed when I / O device requests increase and the load increases. There was a problem that it was not possible. On the other hand, when the firmware is executed with a normal priority (priority), other programs can be executed, but there is a problem that the response time (response time) of the firmware becomes long (decreases).

この問題を解決するために、同一のファームウェアを搭載してそれぞれ個別に処理を行う複数のプロセッサと、これらの複数のプロセッサの管理を行う共通部のプロセッサとを備えたマルチプロセッサシステムが知られている(例えば、特許文献1参照)。   In order to solve this problem, a multiprocessor system is known that includes a plurality of processors that are loaded with the same firmware and perform processing individually, and a common processor that manages the plurality of processors. (For example, refer to Patent Document 1).

特開平6−44078号公報JP-A-6-44078

しかしながら、特許文献1のマルチプロセッサシステムのように、ファームウェアを実行するマイクロプロセッサと、その他の処理を実行するプロセッサと、を分ける(分割する)方法では、いわゆる分割損が生じてしまい、マイクロプロセッサのリソースの全てをファームウェアで使用(利用)することができない、という問題があった。   However, in the method of dividing (dividing) a microprocessor that executes firmware and a processor that executes other processing as in the multiprocessor system of Patent Document 1, a so-called division loss occurs, and the microprocessor is There was a problem that not all resources could be used (utilized) by firmware.

本発明のいくつかの態様は前述の問題に鑑みてなされたものであり、分割損を生じることなく、要求される時間内に入出力要求に対する応答を返すことができるととともに、他のプログラムの実行を保証することができるマルチプロセッサ装置、スケジューリング方法、および、スケジューリングプログラムを提供することを目的の1つとする。   Some aspects of the present invention have been made in view of the above-described problems. A response to an input / output request can be returned within a required time without causing a division loss, and other programs It is an object to provide a multiprocessor device, a scheduling method, and a scheduling program that can guarantee execution.

本発明に係るマルチプロセッサ装置は、複数のマイクロプロセッサを備えるマルチプロセッサ装置であって、第1のプログラムが第2のプログラムに優先して複数のマイクロプロセッサの全てを使用可能な第1の動作モードと、第2のプログラムが複数のマイクロプロセッサのうちの少なくとも1つを使用する第2の動作モードと、のうちのいずれかの動作モードを設定する設定部と、設定部により設定された動作モードに基づいて、第1のプログラムおよび第2のプログラムの少なくとも一方に前述のマイクロプロセッサを割り当てる割当部と、第2のプログラムの未実行状態を検出する検出部と、を備え、設定部は、検出部により第2のプログラムの未実行状態が検出されたときに、第1の動作モードを設定する。   A multiprocessor device according to the present invention is a multiprocessor device including a plurality of microprocessors, and a first operation mode in which a first program can use all of the plurality of microprocessors in preference to a second program. A second operation mode in which the second program uses at least one of the plurality of microprocessors, a setting unit for setting any one of the operation modes, and an operation mode set by the setting unit And an assigning unit that assigns the microprocessor to at least one of the first program and the second program, and a detection unit that detects an unexecuted state of the second program. When the unexecuted state of the second program is detected by the unit, the first operation mode is set.

本発明に係るスケジューリング方法は、複数のマイクロプロセッサを備えるマルチプロセッサ装置のスケジューリング方法であって、第1のプログラムが第2のプログラムに優先して複数のマイクロプロセッサの全てを使用可能な第1の動作モードと、第2のプログラムが複数のマイクロプロセッサのうちの少なくとも1つを使用する第2の動作モードと、のうちのいずれかの動作モードを設定する設定ステップと、設定された動作モードに基づいて、第1のプログラムおよび第2のプログラムの少なくとも一方に前述のマイクロプロセッサを割り当てる割当ステップと、第2のプログラムの未実行状態を検出する検出ステップと、を備え、設定ステップは、第2のプログラムの未実行状態が検出されたときに、第1の動作モードを設定する。   The scheduling method according to the present invention is a scheduling method for a multiprocessor device including a plurality of microprocessors, wherein the first program can use all of the plurality of microprocessors in preference to the second program. An operation mode, a second operation mode in which the second program uses at least one of the plurality of microprocessors, a setting step for setting one of the operation modes, and the set operation mode. An allocation step of allocating the microprocessor to at least one of the first program and the second program, and a detection step of detecting an unexecuted state of the second program. When the unexecuted state of the program is detected, the first operation mode is set

本発明に係るスケジューリングプログラムは、複数のマイクロプロセッサを備えるマルチプロセッサ装置のスケジューリングプログラムであって、第1のプログラムが第2のプログラムに優先して複数のマイクロプロセッサの全てを使用可能な第1の動作モードと、第2のプログラムが複数のマイクロプロセッサのうちの少なくとも1つを使用する第2の動作モードと、のうちのいずれかの動作モードを設定する設定ステップと、設定された動作モードに基づいて、第1のプログラムおよび第2のプログラムの少なくとも一方に前述のマイクロプロセッサを割り当てる割当ステップと、第2のプログラムの未実行状態を検出する検出ステップと、を備え、設定ステップは、第2のプログラムの未実行状態が検出されたときに、第1の動作モードを設定する。   A scheduling program according to the present invention is a scheduling program for a multiprocessor device including a plurality of microprocessors, wherein the first program can use all of the plurality of microprocessors in preference to the second program. An operation mode, a second operation mode in which the second program uses at least one of the plurality of microprocessors, a setting step for setting one of the operation modes, and the set operation mode. An allocation step of allocating the microprocessor to at least one of the first program and the second program, and a detection step of detecting an unexecuted state of the second program. When an unexecuted state of the program is detected, the first operation mode is To set.

本発明によれば、分割損を生じることなく、要求される時間内に入出力要求に対する応答を返すことができるととともに、第2のプログラムの実行を保証することができ、複数のCPUのリソースを効率的に使用して費用対効果(コストパフォーマンス)を向上させることができる。   According to the present invention, a response to an input / output request can be returned within a required time without causing a division loss, and the execution of the second program can be guaranteed, and resources of a plurality of CPUs can be guaranteed. Can be used efficiently to improve cost effectiveness.

図1は、本発明の一実施形態におけるマルチプロセッサ装置を説明するブロック図である。FIG. 1 is a block diagram illustrating a multiprocessor device according to an embodiment of the present invention. 図1に示した第1動作モードを説明する図である。It is a figure explaining the 1st operation mode shown in FIG. 図1に示した第2動作モードを説明する図である。It is a figure explaining the 2nd operation mode shown in FIG. 図1に示した第2動作モードの変形例を説明する図である。It is a figure explaining the modification of the 2nd operation mode shown in FIG. 図1に示した未実行状態検出部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the unexecuted state detection part shown in FIG. 図1に示した動作モード設定部の動作を説明するフローチャートである。It is a flowchart explaining operation | movement of the operation mode setting part shown in FIG.

以下に本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号で表している。但し、図面は模式的なものである。したがって、具体的な寸法などは以下の説明を照らし合わせて判断するべきものである。また、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。なお、以下の説明において、図面の上側を「上」、下側を「下」、左側を「左」、右側を「右」という。   Embodiments of the present invention will be described below. In the following description of the drawings, the same or similar parts are denoted by the same or similar reference numerals. However, the drawings are schematic. Therefore, specific dimensions and the like should be determined in light of the following description. Moreover, it is a matter of course that portions having different dimensional relationships and ratios are included between the drawings. In the following description, the upper side of the drawing is referred to as “upper”, the lower side as “lower”, the left side as “left”, and the right side as “right”.

図1ないし図6は、本発明の一実施形態を示すためのものである。図1は、本発明の一実施形態におけるマルチプロセッサ装置を説明するブロック図である。図1に示すように、マルチプロセッサ装置100は、CPU(Central Processing Unit)ユニット110と、I/O(Input-Output)制御装置120と、ファームウェアプログラム131と、管理プログラム132と、未実行状態検出部141と、動作モード設定部142と、CPU割当部143と、を含んで構成される。   1 to 6 show one embodiment of the present invention. FIG. 1 is a block diagram illustrating a multiprocessor device according to an embodiment of the present invention. As shown in FIG. 1, the multiprocessor device 100 includes a CPU (Central Processing Unit) unit 110, an I / O (Input-Output) control device 120, a firmware program 131, a management program 132, and an unexecuted state detection. Unit 141, operation mode setting unit 142, and CPU allocation unit 143.

CPUユニット110は、複数のCPUを備える。本実施形態では、CPUユニット110は、2つのCPU111,112を含んでいる。なお、説明の簡略化のためにCPUの数が2つの例を示したが、これに限定されず、3つ以上であってもよい。   The CPU unit 110 includes a plurality of CPUs. In the present embodiment, the CPU unit 110 includes two CPUs 111 and 112. In addition, although the number of CPUs has been shown as an example for simplification of description, the number of CPUs is not limited to this and may be three or more.

I/O制御装置120は、入出力要求を制御するためのものである。I/O制御装置120には、マルチプロセッサ装置100の外部の入出力装置(図示両略)から入出力要求が入力され、ファームウェアプログラム131の処理結果に基づいて、入出力要求に対する応答を出力する。   The I / O control device 120 is for controlling input / output requests. An input / output request is input to the I / O control device 120 from an input / output device (not shown) outside the multiprocessor device 100, and a response to the input / output request is output based on the processing result of the firmware program 131. .

ファームウェアプログラム131は、I/O制御装置120を介して入力された入出力要求を処理するためのファームウェアである。そのため、ファームウェアプログラム131は、外部の入出両装置の要求に応じて、CPU111,112で実行される。また、ファームウェアプログラム131には、相対的に高い優先度(プライオリティ)が設定されている。   The firmware program 131 is firmware for processing an input / output request input via the I / O control device 120. Therefore, the firmware program 131 is executed by the CPUs 111 and 112 in response to requests from both external input / output devices. Further, a relatively high priority (priority) is set in the firmware program 131.

管理プログラム132は、マルチプロセッサ装置100の設定などを行うためのプログラムである。管理プログラム132には、相対的に低い、通常の優先度(プライオリティ)が設定されている。なお、管理プログラム132は、本発明における「第2プログラム」の一例に相当する。   The management program 132 is a program for setting the multiprocessor device 100 and the like. A relatively low normal priority (priority) is set in the management program 132. The management program 132 corresponds to an example of a “second program” in the present invention.

未実行状態検出部141は、プログラムが未実行状態であることを検出するためのものである。ここで、「未実行状態」とは、実際にプログラムが実行されていない場合に限定されず、実際にはプログラムが実行さていても、実行さていないと見なすことができる場合を含む意味である。本実施形態では、未実行状態検出部141は、管理プログラム132が未実行状態であることを検出する。   The unexecuted state detection unit 141 is for detecting that the program is in an unexecuted state. Here, the “unexecuted state” is not limited to a case where the program is not actually executed, and includes a case where it can be considered that the program is actually executed even though the program is actually executed. . In the present embodiment, the unexecuted state detection unit 141 detects that the management program 132 is in an unexecuted state.

なお、未実行状態検出部141は、例えば、汎用の(専用ではない)オペレーティングシステム(OS)が有する(提供する)スケジューリングの機能の一部として実装することが可能である。   The unexecuted state detection unit 141 can be implemented as a part of a scheduling function possessed (provided) by a general-purpose (not dedicated) operating system (OS), for example.

動作モード設定部142は、CPUユニット110の動作モードを設定するためのものである。本実施形態において設定される動作モードは、ファームウェアプログラム131が管理プログラム132に優先してCPU111,112の全てを使用可能な第1モードAと、管理プログラム132がCPU111,112の少なくとも1つを使用する第2動作モードBとが存在する。動作モード設定部142は、第1動作モードAおよび第2動作モードBのうちのいずれかの動作モードを設定する。   The operation mode setting unit 142 is for setting the operation mode of the CPU unit 110. The operation mode set in this embodiment includes a first mode A in which the firmware program 131 can use all of the CPUs 111 and 112 in preference to the management program 132, and the management program 132 uses at least one of the CPUs 111 and 112. And a second operation mode B is present. The operation mode setting unit 142 sets one of the first operation mode A and the second operation mode B.

CPU割当部143は、CPUユニット110の動作モードに基づいて、プログラムが使用するCPUを割り当てる(設定する)ためのものである。本実施形態では、CPU割当部143は、動作モード設定部142により設定された動作モードに基づいて、ファームウェアプログラム131および管理プログラム132の少なくとも一方に、CPU111,112を割り当てる。   The CPU allocation unit 143 is for allocating (setting) a CPU used by the program based on the operation mode of the CPU unit 110. In the present embodiment, the CPU allocation unit 143 allocates the CPUs 111 and 112 to at least one of the firmware program 131 and the management program 132 based on the operation mode set by the operation mode setting unit 142.

なお、CPU割当部143は、例えば、汎用の(専用ではない)オペレーティングシステム(OS)が有する(提供する)リソース割り当ての機能の一部として実装することが可能である。   Note that the CPU allocation unit 143 can be implemented as a part of a resource allocation function that is provided (provided) by a general-purpose (not dedicated) operating system (OS), for example.

図2は、図1に示した第1動作モードAを説明する図である。図2に示すように、第1動作モードAは、CPU111,112単位の区別がなく、CPU割当部143は、ファームウェアプログラム131に、使用するCPU111,112を制限することなく(無制限に)、割り当てることができる。これにより、ファームウェアプログラム131は、入出力装置からの要求(入出力要求)が増加して負荷が高くなった場合に、CPU111,112の全てを使用することができるので、要求される時間内に入出力要求に対する応答を返す(要求される応答時間を満たす)ことが可能となる。   FIG. 2 is a diagram illustrating the first operation mode A shown in FIG. As shown in FIG. 2, in the first operation mode A, there is no distinction between the CPUs 111 and 112, and the CPU assignment unit 143 assigns the CPU 111 and 112 to the firmware program 131 without restricting (unlimited). be able to. As a result, the firmware program 131 can use all of the CPUs 111 and 112 when the number of requests (input / output requests) from the input / output device increases and the load becomes high. It is possible to return a response to the input / output request (satisfy the required response time).

また、CPU割当部143は、ファームウェアプログラム131の実行の合間(切れ目)に、ファームウェアプログラム131が使用するCPU111,112を切り替えることができるので、比較的短時間でCPU111,112を空けることができる。そのため、CPU111,112が切り替わったことを確認する必要がなく、CPU割当部143はオーバヘッドの小さい(少ない)方式を採用することができる。   In addition, since the CPU allocation unit 143 can switch between the CPUs 111 and 112 used by the firmware program 131 between executions of the firmware program 131 (breaks), the CPUs 111 and 112 can be made available in a relatively short time. Therefore, it is not necessary to confirm that the CPUs 111 and 112 have been switched, and the CPU allocation unit 143 can employ a system with a small (small) overhead.

なお、CPU割当部143は、入出力要求の要求元である外部の入出力装置に対し、割り込みを発生させるCPU111,112を設定するようにしてもよい。この場合、CPU割当部143は、割り込みを発生させるCPU111,112として、ファームウェアプログラム131に割り当てられたCPU111,112を設定することが好ましい。   The CPU allocation unit 143 may set the CPUs 111 and 112 that generate an interrupt to an external input / output device that is the request source of the input / output request. In this case, the CPU assignment unit 143 preferably sets the CPUs 111 and 112 assigned to the firmware program 131 as the CPUs 111 and 112 that generate interrupts.

一方、第1動作モードAでは、入出力要求による負荷が高すぎると(過負荷であると)、CPU割当部143が、CPU111,112のいずれも管理プログラム132に割り当てることができなくなり、管理プログラム132が実行されない可能性がある。   On the other hand, in the first operation mode A, if the load due to the input / output request is too high (overload), the CPU allocation unit 143 cannot allocate any of the CPUs 111 and 112 to the management program 132, and the management program 132 may not be executed.

図3は、図1に示した第2動作モードBを説明する図である。図3に示すように、第2動作モードBは、CPU111,112単位に区別があり、CPU割当部143は、例えば、CPU111には管理プログラム132のみ、CPU112にはファームウェアプログラム131のみ、を割り当てる。これにより、管理プログラム132の実行が保証される。   FIG. 3 is a diagram for explaining the second operation mode B shown in FIG. As shown in FIG. 3, the second operation mode B is distinguished in units of the CPUs 111 and 112, and the CPU allocation unit 143 allocates only the management program 132 to the CPU 111 and only the firmware program 131 to the CPU 112, for example. Thereby, the execution of the management program 132 is guaranteed.

一方、入出力要求による負荷が高い(過負荷である)場合に、ファームウェアプログラム131は、要求される時間内に入出力要求に対する応答を返す(要求される応答時間を満たす)ことができない可能性がある。   On the other hand, when the load due to the input / output request is high (overload), the firmware program 131 may not be able to return a response to the input / output request within the required time (satisfy the required response time). There is.

図4は、図1に示した第2動作モードBの変形例を説明する図である。なお、第2動作モードBは、図3に示す例に限定されない。第2動作モードBでは、管理プログラム132が少なくとも1つのCPUを使用していればよい。例えば、図4に示すように、第2動作モードB’では、ファームウェアプログラム131を、ファームウェアプログラム131aおよびファームウェアプログラム131bに分割し、CPU割当部143は、管理プログラム132の実行を妨げない範囲で、管理プログラム132が使用するCPU111に、ファームウェアプログラム131の一部であるファームウェアプログラム131bを割り当てるようにしてもよい。   FIG. 4 is a diagram for explaining a modification of the second operation mode B shown in FIG. The second operation mode B is not limited to the example shown in FIG. In the second operation mode B, the management program 132 only needs to use at least one CPU. For example, as shown in FIG. 4, in the second operation mode B ′, the firmware program 131 is divided into the firmware program 131a and the firmware program 131b, and the CPU allocation unit 143 does not interfere with the execution of the management program 132. The firmware program 131 b that is a part of the firmware program 131 may be assigned to the CPU 111 used by the management program 132.

図5は、図1に示した未実行状態検出部141の動作を説明するフローチャートである。図5に示すように、未実行状態検出部141は、管理プログラム132のプロセス群のそれぞれに対して、実行可能になってから実際に実行されるまでの時間(実行待ち時間)を取得する(S201)。そして、未実行状態検出部141は、取得した実行待ち時間に基づいて、管理プログラム132のプロセス群の統計情報、例えば、平均時間を算出する(S202)。   FIG. 5 is a flowchart for explaining the operation of the unexecuted state detection unit 141 shown in FIG. As illustrated in FIG. 5, the unexecuted state detection unit 141 acquires, for each of the process groups of the management program 132, the time (execution waiting time) from when the process can be executed until it is actually executed (execution waiting time). S201). Then, the unexecuted state detection unit 141 calculates the statistical information of the process group of the management program 132, for example, the average time based on the acquired execution waiting time (S202).

次に、未実行状態検出部141は、S202において算出した平均時間が所定のしきい値以上であるか否かを判定する(S203)。なお、所定のしきい値は、あらかじめ設定されているものとする。   Next, the unexecuted state detection unit 141 determines whether or not the average time calculated in S202 is equal to or greater than a predetermined threshold (S203). The predetermined threshold value is set in advance.

S203の判定の結果、S202において算出した平均時間が所定のしきい値以上である場合、管理プログラム132は未実行状態であると見なすことができる。なお、管理プログラム132は、要求される応答時間がファームウェアプログラム131ほど短く(厳しく)ないので、このような条件で未実行状態であると見なしても十分である。よって、未実行状態検出部141は、管理プログラム132の未実行状態を検出し(S204)、処理S200を終了する。   As a result of the determination in S203, when the average time calculated in S202 is equal to or greater than a predetermined threshold value, the management program 132 can be regarded as being in an unexecuted state. Note that the management program 132 is not as short (strict) as the response time required for the firmware program 131, so it is sufficient to consider that the management program 132 is in an unexecuted state under such conditions. Therefore, the unexecuted state detection unit 141 detects the unexecuted state of the management program 132 (S204), and ends the process S200.

一方、S203の判定の結果、S202において算出した平均時間が所定のしきい値以上でない、すなわち、所定のしきい値未満である場合、管理プログラム132は実行状態であると考えられる。よって、未実行状態検出部141は、平均時間が所定のしきい値以上になるまで、再度、S201以下の各ステップを繰り返す。   On the other hand, as a result of the determination in S203, when the average time calculated in S202 is not equal to or greater than the predetermined threshold value, that is, less than the predetermined threshold value, the management program 132 is considered to be in an execution state. Therefore, the unexecuted state detection unit 141 repeats each step from S201 again until the average time becomes equal to or greater than a predetermined threshold value.

図6は、図1に示した動作モード設定部142の動作を説明するフローチャートである。未実行状態検出部141が管理プログラム132の未実行状態を検出すると、動作モード設定部142は、処理S300を実行する。すなわち、図6に示すように、動作モード設定部142は、現在の動作モードが第2動作モードBであるか否かを判定する(S301)。なお、初期状態のときに、動作モードは、動作モード設定部142によって、第1動作モードAまたは第2動作モードBのいずれかに設定されている。   FIG. 6 is a flowchart for explaining the operation of the operation mode setting unit 142 shown in FIG. When the unexecuted state detecting unit 141 detects the unexecuted state of the management program 132, the operation mode setting unit 142 executes the process S300. That is, as shown in FIG. 6, the operation mode setting unit 142 determines whether or not the current operation mode is the second operation mode B (S301). In the initial state, the operation mode is set to either the first operation mode A or the second operation mode B by the operation mode setting unit 142.

S301の判定の結果、現在の動作モードが第2動作モードBである場合、動作モード設定部142は、動作モードを、第2動作モードBから第1動作モードAに変更する(S302)。これにより、管理プログラム132の未実行状態が検出されたときに、第1動作モードAが設定される。   As a result of the determination in S301, when the current operation mode is the second operation mode B, the operation mode setting unit 142 changes the operation mode from the second operation mode B to the first operation mode A (S302). As a result, the first operation mode A is set when an unexecuted state of the management program 132 is detected.

S302のステップの後、動作モード設定部142は、S302において第1動作モードAに変更してから所定時間を経過した否かを判定する(S303)。   After the step of S302, the operation mode setting unit 142 determines whether or not a predetermined time has elapsed since the change to the first operation mode A in S302 (S303).

S303の判定の結果、第1動作モードAに変更してから所定時間を経過した場合、動作モード設定部142は、動作モードを、第1動作モードAから第2動作モードBに変更し(S304)、処理S300を終了する。   As a result of the determination in S303, when a predetermined time has elapsed since the change to the first operation mode A, the operation mode setting unit 142 changes the operation mode from the first operation mode A to the second operation mode B (S304). ), And ends the process S300.

なお、ファームウェアプログラム131の実行が完了したことを検出する必要はなく、動作モード設定部142は、所定時間を経過後に、第1動作モードAから第2動作モードBに変更する。   It is not necessary to detect that the execution of the firmware program 131 is completed, and the operation mode setting unit 142 changes from the first operation mode A to the second operation mode B after a predetermined time has elapsed.

一方、S303の判定の結果、第1動作モードAに変更してから所定時間を経過していない場合、動作モード設定部142は、所定時間を経過するまで、S303のステップを繰り返す(所定時間を経過するまで待つ)。   On the other hand, as a result of the determination in S303, when the predetermined time has not elapsed since the change to the first operation mode A, the operation mode setting unit 142 repeats the step of S303 until the predetermined time elapses (the predetermined time is set). Wait until it elapses).

S301の判定の結果、現在の動作モードが第2動作モードBでない、すなわち、現在の動作モードが第1動作モードAである場合、動作モード設定部142は、動作モードを変更する必要がないため、何もせずに、処理S300を終了する。   As a result of the determination in S301, when the current operation mode is not the second operation mode B, that is, the current operation mode is the first operation mode A, the operation mode setting unit 142 does not need to change the operation mode. The process S300 is terminated without doing anything.

このように、本実施形態のマルチプロセッサ装置100、スケジューリング方法、および、スケジューリングプログラムによれば、管理プログラム132の未実行状態が検出されたときに、ファームウェアプログラム131が管理プログラム132に優先してCPU111,112の全てを使用可能な第1動作モードAが設定される。これにより、ファームウェアプログラム131は、入出力装置からの要求(入出力要求)が増加して負荷が高くなった場合に、CPU111,112の全てを使用することができるので、要求される時間内に入出力要求に対する応答を返す(要求される応答時間を満たす)ことが可能となる。一方、例えば、管理プログラム132の未実行状態を検出しなかったとき(管理プログラム132の実行状態のとき)や、第1動作モードAに変更してから所定時間を経過したときに、管理プログラム132がCPU111,112の少なくとも1つを使用する第2動作モードBが設定される。これにより、管理プログラム132の実行が保証される。したがって、分割損を生じることなく、要求される時間内に入出力要求に対する応答を返すことができるととともに、管理プログラム132の実行を保証することができ、CPU111,112のリソースを効率的に使用して費用対効果(コストパフォーマンス)を向上させることができる。   As described above, according to the multiprocessor device 100, the scheduling method, and the scheduling program of the present embodiment, when the unexecuted state of the management program 132 is detected, the firmware program 131 has priority over the management program 132 and the CPU 111 , 112 can be used, and the first operation mode A is set. As a result, the firmware program 131 can use all of the CPUs 111 and 112 when the number of requests (input / output requests) from the input / output device increases and the load becomes high. It is possible to return a response to the input / output request (satisfy the required response time). On the other hand, for example, when an unexecuted state of the management program 132 is not detected (when the management program 132 is in an execution state), or when a predetermined time has elapsed since the change to the first operation mode A, the management program 132 Is set to the second operation mode B in which at least one of the CPUs 111 and 112 is used. Thereby, the execution of the management program 132 is guaranteed. Therefore, a response to the input / output request can be returned within the required time without causing a division loss, and the execution of the management program 132 can be guaranteed, and the resources of the CPUs 111 and 112 can be used efficiently. Thus, cost effectiveness (cost performance) can be improved.

なお、前述の各実施形態の構成は、組み合わせたり或いは一部の構成部分を入れ替えたりしたりしてもよい。また、本発明の構成は前述の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加えてもよい。   Note that the configurations of the above-described embodiments may be combined or a part of the components may be replaced. The configuration of the present invention is not limited to the above-described embodiment, and various modifications may be made without departing from the scope of the present invention.

前述の各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   Part or all of the above-described embodiments can be described as in the following supplementary notes, but is not limited thereto.

(付記1)複数のマイクロプロセッサを備えるマルチプロセッサ装置であって、第1のプログラムが第2のプログラムに優先して前記複数のマイクロプロセッサの全てを使用可能な第1の動作モードと、前記第2のプログラムが前記複数のマイクロプロセッサのうちの少なくとも1つを使用する第2の動作モードと、のうちのいずれかの動作モードを設定する設定部と、前記設定部により設定された動作モードに基づいて、前記第1のプログラムおよび前記第2のプログラムの少なくとも一方に前記マイクロプロセッサを割り当てる割当部と、前記第2のプログラムの未実行状態を検出する検出部と、を備え、前記設定部は、前記検出部により前記第2のプログラムの未実行状態が検出されたときに、前記第1の動作モードを設定することを特徴とするマルチプロセッサ装置。   (Supplementary note 1) A multi-processor device including a plurality of microprocessors, wherein a first operation mode in which a first program can use all of the plurality of microprocessors in preference to a second program; A second operation mode in which two programs use at least one of the plurality of microprocessors, a setting unit for setting one of the operation modes, and an operation mode set by the setting unit. An allocation unit that allocates the microprocessor to at least one of the first program and the second program, and a detection unit that detects an unexecuted state of the second program, and the setting unit includes: The first operation mode is set when the detection unit detects an unexecuted state of the second program. Multiprocessor apparatus according to symptoms.

(付記2)前記設定部は、前記第1の動作モードを設定してから所定時間を経過したときに、前記第2の動作モードを設定することを特徴とする付記1に記載のマルチプロセッサ装置。   (Supplementary note 2) The multiprocessor device according to Supplementary note 1, wherein the setting unit sets the second operation mode when a predetermined time has elapsed since the first operation mode was set. .

(付記3)前記割当部は、前記第2の動作モードのときに、前記第1のプログラムの一部を、前記前記第2のプログラムが割り当てられた前記マイクロプロセッサに割り当てることを特徴とする付記1または2に記載のマルチプロセッサ装置。   (Supplementary Note 3) The allocating unit allocates a part of the first program to the microprocessor to which the second program is allocated in the second operation mode. The multiprocessor device according to 1 or 2.

(付記4)前記第1のプログラムは、入出力装置の要求に応じて実行されるファームウェアプログラムであることを特徴とする付記1ないし3のいずれか一つに記載のマルチプロセッサ装置。   (Supplementary note 4) The multiprocessor device according to any one of Supplementary notes 1 to 3, wherein the first program is a firmware program executed in response to a request from an input / output device.

(付記5)前記検出部は、前記第2のプログラムが実行可能になってから実行されるまでの時間に基づいて、前記第2のプログラムの未実行状態を検出することを特徴とする付記1ないし4のいずれか一つに記載のマルチプロセッサ装置。   (Additional remark 5) The said detection part detects the unexecuted state of the said 2nd program based on the time after the said 2nd program becomes executable until it is performed. 5. The multiprocessor device according to any one of 4 to 4.

(付記6)複数のマイクロプロセッサを備えるマルチプロセッサ装置のスケジューリング方法であって、第1のプログラムが第2のプログラムに優先して前記複数のマイクロプロセッサの全てを使用可能な第1の動作モードと、前記第2のプログラムが前記複数のマイクロプロセッサのうちの少なくとも1つを使用する第2の動作モードと、のうちのいずれかの動作モードを設定する設定ステップと、前記設定された動作モードに基づいて、前記第1のプログラムおよび前記第2のプログラムの少なくとも一方に前記マイクロプロセッサを割り当てる割当ステップと、前記第2のプログラムの未実行状態を検出する検出ステップと、を備え、前記設定ステップは、前記第2のプログラムの未実行状態が検出されたときに、前記第1の動作モードを設定することを特徴とするスケジューリング方法。   (Supplementary Note 6) A scheduling method for a multiprocessor device including a plurality of microprocessors, wherein the first program can use all of the plurality of microprocessors in preference to the second program; A second operation mode in which the second program uses at least one of the plurality of microprocessors; a setting step for setting any one of the operation modes; and the set operation mode. An allocation step of allocating the microprocessor to at least one of the first program and the second program, and a detection step of detecting an unexecuted state of the second program, the setting step comprising: When the unexecuted state of the second program is detected, the first operation mode is Scheduling method and sets the.

(付記7)複数のマイクロプロセッサを備えるマルチプロセッサ装置のスケジューリングプログラムであって、第1のプログラムが第2のプログラムに優先して前記複数のマイクロプロセッサの全てを使用可能な第1の動作モードと、前記第2のプログラムが前記複数のマイクロプロセッサのうちの少なくとも1つを使用する第2の動作モードと、のうちのいずれかの動作モードを設定する設定ステップと、前記設定された動作モードに基づいて、前記第1のプログラムおよび前記第2のプログラムの少なくとも一方に前記マイクロプロセッサを割り当てる割当ステップと、前記第2のプログラムの未実行状態を検出する検出ステップと、を備え、前記設定ステップは、前記第2のプログラムの未実行状態が検出されたときに、前記第1の動作モードを設定することを特徴とするスケジューリングプログラム。   (Supplementary Note 7) A scheduling program for a multiprocessor device including a plurality of microprocessors, wherein the first program can use all of the plurality of microprocessors in preference to the second program; A second operation mode in which the second program uses at least one of the plurality of microprocessors; a setting step for setting any one of the operation modes; and the set operation mode. An allocation step of allocating the microprocessor to at least one of the first program and the second program, and a detection step of detecting an unexecuted state of the second program, the setting step comprising: The first operation is detected when an unexecuted state of the second program is detected. Scheduling program and sets the mode.

100…マルチプロセッサ装置、111,112…CPU、131…ファームウェアプログラム、132…管理プログラム、141…未実行状態検出部、142…動作モード設定部、143…CPU割当部、A…第1動作モード、B…第2動作モード   DESCRIPTION OF SYMBOLS 100 ... Multiprocessor apparatus, 111, 112 ... CPU, 131 ... Firmware program, 132 ... Management program, 141 ... Unexecuted state detection part, 142 ... Operation mode setting part, 143 ... CPU allocation part, A ... 1st operation mode, B ... Second operation mode

Claims (7)

複数のマイクロプロセッサを備えるマルチプロセッサ装置であって、
第1のプログラムが第2のプログラムに優先して前記複数のマイクロプロセッサの全てを使用可能な第1の動作モードと、前記第2のプログラムが前記複数のマイクロプロセッサのうちの少なくとも1つを使用する第2の動作モードと、のうちのいずれかの動作モードを設定する設定部と、
前記設定部により設定された動作モードに基づいて、前記第1のプログラムおよび前記第2のプログラムの少なくとも一方に前記マイクロプロセッサを割り当てる割当部と、
前記第2のプログラムの未実行状態を検出する検出部と、を備え、
前記設定部は、前記検出部により前記第2のプログラムの未実行状態が検出されたときに、前記第1の動作モードを設定する
ことを特徴とするマルチプロセッサ装置。
A multiprocessor device comprising a plurality of microprocessors,
A first operation mode in which the first program can use all of the plurality of microprocessors in preference to the second program; and the second program uses at least one of the plurality of microprocessors. A setting unit for setting any one of the second operation modes,
An allocating unit that allocates the microprocessor to at least one of the first program and the second program based on the operation mode set by the setting unit;
A detection unit for detecting an unexecuted state of the second program,
The multi-processor device, wherein the setting unit sets the first operation mode when an unexecuted state of the second program is detected by the detection unit.
前記設定部は、前記第1の動作モードを設定してから所定時間を経過したときに、前記第2の動作モードを設定する
ことを特徴とする請求項1に記載のマルチプロセッサ装置。
The multiprocessor device according to claim 1, wherein the setting unit sets the second operation mode when a predetermined time elapses after setting the first operation mode.
前記割当部は、前記第2の動作モードのときに、前記第1のプログラムの一部を、前記前記第2のプログラムが割り当てられた前記マイクロプロセッサに割り当てる
ことを特徴とする請求項1または2に記載のマルチプロセッサ装置。
The allocation unit allocates a part of the first program to the microprocessor to which the second program is allocated in the second operation mode. A multiprocessor device according to claim 1.
前記第1のプログラムは、入出力装置の要求に応じて実行されるファームウェアプログラムである
ことを特徴とする請求項1ないし3のいずれか一項に記載のマルチプロセッサ装置。
The multiprocessor device according to any one of claims 1 to 3, wherein the first program is a firmware program executed in response to a request from an input / output device.
前記検出部は、前記第2のプログラムが実行可能になってから実行されるまでの時間に基づいて、前記第2のプログラムの未実行状態を検出する
ことを特徴とする請求項1ないし4のいずれか一項に記載のマルチプロセッサ装置。
5. The detection unit according to claim 1, wherein the detection unit detects an unexecuted state of the second program based on a time from when the second program becomes executable to when the second program is executed. The multiprocessor device according to any one of claims.
複数のマイクロプロセッサを備えるマルチプロセッサ装置のスケジューリング方法であって、
第1のプログラムが第2のプログラムに優先して前記複数のマイクロプロセッサの全てを使用可能な第1の動作モードと、前記第2のプログラムが前記複数のマイクロプロセッサのうちの少なくとも1つを使用する第2の動作モードと、のうちのいずれかの動作モードを設定する設定ステップと、
前記設定された動作モードに基づいて、前記第1のプログラムおよび前記第2のプログラムの少なくとも一方に前記マイクロプロセッサを割り当てる割当ステップと、
前記第2のプログラムの未実行状態を検出する検出ステップと、を備え、
前記設定ステップは、前記第2のプログラムの未実行状態が検出されたときに、前記第1の動作モードを設定する
ことを特徴とするスケジューリング方法。
A method for scheduling a multiprocessor device comprising a plurality of microprocessors, comprising:
A first operation mode in which the first program can use all of the plurality of microprocessors in preference to the second program; and the second program uses at least one of the plurality of microprocessors. A second operation mode, a setting step for setting any one of the operation modes,
Allocating the microprocessor to at least one of the first program and the second program based on the set operation mode;
Detecting a non-executed state of the second program,
In the scheduling method, the setting step sets the first operation mode when an unexecuted state of the second program is detected.
複数のマイクロプロセッサを備えるマルチプロセッサ装置のスケジューリングプログラムであって、
第1のプログラムが第2のプログラムに優先して前記複数のマイクロプロセッサの全てを使用可能な第1の動作モードと、前記第2のプログラムが前記複数のマイクロプロセッサのうちの少なくとも1つを使用する第2の動作モードと、のうちのいずれかの動作モードを設定する設定ステップと、
前記設定された動作モードに基づいて、前記第1のプログラムおよび前記第2のプログラムの少なくとも一方に前記マイクロプロセッサを割り当てる割当ステップと、
前記第2のプログラムの未実行状態を検出する検出ステップと、を備え、
前記設定ステップは、前記第2のプログラムの未実行状態が検出されたときに、前記第1の動作モードを設定する
ことを特徴とするスケジューリングプログラム。
A scheduling program for a multiprocessor device comprising a plurality of microprocessors,
A first operation mode in which the first program can use all of the plurality of microprocessors in preference to the second program; and the second program uses at least one of the plurality of microprocessors. A second operation mode, a setting step for setting any one of the operation modes,
Allocating the microprocessor to at least one of the first program and the second program based on the set operation mode;
Detecting a non-executed state of the second program,
The scheduling program sets the first operation mode when an unexecuted state of the second program is detected.
JP2012050447A 2012-03-07 2012-03-07 Multiprocessor device, scheduling method, and scheduling program Expired - Fee Related JP5936041B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012050447A JP5936041B2 (en) 2012-03-07 2012-03-07 Multiprocessor device, scheduling method, and scheduling program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012050447A JP5936041B2 (en) 2012-03-07 2012-03-07 Multiprocessor device, scheduling method, and scheduling program

Publications (2)

Publication Number Publication Date
JP2013186637A true JP2013186637A (en) 2013-09-19
JP5936041B2 JP5936041B2 (en) 2016-06-15

Family

ID=49388019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012050447A Expired - Fee Related JP5936041B2 (en) 2012-03-07 2012-03-07 Multiprocessor device, scheduling method, and scheduling program

Country Status (1)

Country Link
JP (1) JP5936041B2 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04191935A (en) * 1990-11-27 1992-07-10 Toshiba Corp Task scheduling system
JP2002108841A (en) * 2000-10-03 2002-04-12 Shimadzu Corp Distributed control system
JP2002278778A (en) * 2001-03-21 2002-09-27 Ricoh Co Ltd Scheduling device in symmetrical multiprocessor system
JP2005234637A (en) * 2004-02-17 2005-09-02 Hitachi Ltd Method and device for managing computer resource and processing program
JP2006243864A (en) * 2005-03-01 2006-09-14 Seiko Epson Corp Processor and information processing method
JP2010134496A (en) * 2008-12-02 2010-06-17 Hitachi Ltd Virtual machine system, hypervisor in virtual machine system, and scheduling method in virtual machine system
JP2011526040A (en) * 2008-06-27 2011-09-29 マイクロソフト コーポレーション Protected mode scheduling of operations

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04191935A (en) * 1990-11-27 1992-07-10 Toshiba Corp Task scheduling system
JP2002108841A (en) * 2000-10-03 2002-04-12 Shimadzu Corp Distributed control system
JP2002278778A (en) * 2001-03-21 2002-09-27 Ricoh Co Ltd Scheduling device in symmetrical multiprocessor system
JP2005234637A (en) * 2004-02-17 2005-09-02 Hitachi Ltd Method and device for managing computer resource and processing program
JP2006243864A (en) * 2005-03-01 2006-09-14 Seiko Epson Corp Processor and information processing method
JP2011526040A (en) * 2008-06-27 2011-09-29 マイクロソフト コーポレーション Protected mode scheduling of operations
JP2010134496A (en) * 2008-12-02 2010-06-17 Hitachi Ltd Virtual machine system, hypervisor in virtual machine system, and scheduling method in virtual machine system

Also Published As

Publication number Publication date
JP5936041B2 (en) 2016-06-15

Similar Documents

Publication Publication Date Title
JP4705051B2 (en) Computer system
US9619378B2 (en) Dynamically optimizing memory allocation across virtual machines
KR102571293B1 (en) Method for Efficient Job Scheduling in the Existence of Conflicts
KR101651871B1 (en) Job Allocation Method on Multi-core System and Apparatus thereof
US9563585B2 (en) System and method for isolating I/O execution via compiler and OS support
US9298504B1 (en) Systems, devices, and techniques for preempting and reassigning tasks within a multiprocessor system
US9311142B2 (en) Controlling memory access conflict of threads on multi-core processor with set of highest priority processor cores based on a threshold value of issued-instruction efficiency
US9354934B2 (en) Partitioned shared processor interrupt-intensive task segregator
US9244733B2 (en) Apparatus and method for scheduling kernel execution order
KR20130088513A (en) Task distribution method on multicore system and apparatus thereof
US8386684B2 (en) Data processing system and method of interrupt handling
KR20120066189A (en) Apparatus for dynamically self-adapting of software framework on many-core systems and method of the same
US20120096462A1 (en) Dynamic virtualization technique for multicore processor system
JP2008171293A (en) Scheduling method for virtual computer system
US9417924B2 (en) Scheduling in job execution
JP2009223842A (en) Virtual machine control program and virtual machine system
KR101694302B1 (en) Apparatus and method foe managing heterogeneous multicore processor system
JP4348639B2 (en) Multiprocessor system and workload management method
US20170286168A1 (en) Balancing thread groups
WO2016202153A1 (en) Gpu resource allocation method and system
JP5726006B2 (en) Task and resource scheduling apparatus and method, and control apparatus
KR101330609B1 (en) Method For Scheduling of Mobile Multi-Core Virtualization System To Guarantee Real Time Process
JP5936041B2 (en) Multiprocessor device, scheduling method, and scheduling program
JP7236811B2 (en) Information processing equipment
US20140089930A1 (en) Host system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160414

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160427

R150 Certificate of patent or registration of utility model

Ref document number: 5936041

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees