JP5591031B2 - マルチプロセッサシステム、その制御方法及びプログラム - Google Patents

マルチプロセッサシステム、その制御方法及びプログラム Download PDF

Info

Publication number
JP5591031B2
JP5591031B2 JP2010188473A JP2010188473A JP5591031B2 JP 5591031 B2 JP5591031 B2 JP 5591031B2 JP 2010188473 A JP2010188473 A JP 2010188473A JP 2010188473 A JP2010188473 A JP 2010188473A JP 5591031 B2 JP5591031 B2 JP 5591031B2
Authority
JP
Japan
Prior art keywords
processor
processor means
designated
time
executing
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.)
Expired - Fee Related
Application number
JP2010188473A
Other languages
English (en)
Other versions
JP2012048379A5 (ja
JP2012048379A (ja
Inventor
貴輝 京極
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2010188473A priority Critical patent/JP5591031B2/ja
Publication of JP2012048379A publication Critical patent/JP2012048379A/ja
Publication of JP2012048379A5 publication Critical patent/JP2012048379A5/ja
Application granted granted Critical
Publication of JP5591031B2 publication Critical patent/JP5591031B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Power Sources (AREA)

Description

本発明は、複数のプロセッサ部を有するマルチプロセッサシステム、その制御方法及びプログラムに関する。
近年、組込みシステムにおいて、性能向上と消費電力抑制を同時に満足させる方法として、複数のプロセッサ部を搭載したマルチプロセッサシステムが増加している。これは、組込みシステムにおいて消費電力を抑制しつつ性能向上を図るには、システムのクロック周波数を上げるよりもプロセッサ数を増加させた方が有利であるからである。また、このような背景からマルチプロセッサ対応のオペレーティングシステムが必要とされている。
複数のプロセッサ部を制御するマルチプロセッサ対応のオペレーティングシステムにおいて、負荷の分散をどのように行うかは大きな課題である。特に、割込み処理については、特許文献1に示されるように命令発行元のプロセッサ部で割込み処理を実行するように指定する方法が一般的であった。この方法は、割込み処理を実行するプロセッサ部を指定可能とするほかにも、その割込み処理に関連する命令発行処理を同一のプロセッサ部で実行することにより、キャッシュヒット率の向上等の実行性能の向上にも寄与する。また、特許文献2に示されるように、各プロセッサ部の負荷を計算して、負荷の軽いプロセッサ部で割込み処理を実行する方法も提案されている。
特開昭63−163656号公報 特許第3008896号公報
しかしながら、マルチプロセッサシステムにおいて、オペレーティングシステム内で扱う割込み処理を実行するプロセッサ部を決定することは容易ではない。特に、単位時間毎に発生する割込み処理によって現在時刻を管理する構成の場合には、その単位時間毎に発生する割込み処理を実行するプロセッサ部が問題となる。例えば、特許文献2に記載の技術では、同一処理の実行が複数のプロセッサ部に渡ってしまい、キャッシュヒット率の低下など実行性能を低下させてしまうという問題がある。また、特許文献1に記載の技術については、オペレーティングシステム内部の割込み処理にまで言及されていない。
例えば、アプリケーションがタイマ機能を利用する命令を発行する際にその命令の実行に係る割込みを発生させるプロセッサ部を指定すると考える。さらに、これに合わせてオペレーティングシステム内部の割込み処理、すなわち単位時間毎の割込みを発生させるプロセッサ部も同様に指定すると考える。ここで、アプリケーションの命令は発火時刻順に発行されることが約束されていないため、割込み処理が発火する以前に、複数の別のプロセッサ部を指定する命令が発行される場合がある。この場合には、単位時間毎の割込み処理をいずれかの指定されたプロセッサ部で実行すると、いずれかの命令発行が指定するプロセッサ部と異なってしまう。単位時間毎の割込み処理を実行するプロセッサ部と命令を実行するプロセッサ部が異なった場合、一般的には指定時間になったことを所望のプロセッサ部へソフトウェア割込みの機能等を利用して通知する必要がある。すなわち、現在時刻を管理するための処理と、時刻に関連する機能を実行するプロセッサ部が異なった場合、実行性能を低下させてしまう。
本発明は、このような問題に鑑みてなされたものであり、マルチプロセッサシステムでの時間管理に関する機能及び時刻に関連する機能の実行効率を向上させることを目的とする。
本発明のプログラムは、それぞれがタスクあるいはスレッドを処理する複数のプロセッサ手段を有するマルチプロセッサシステムのコンピュータに当該マルチプロセッサシステムの制御方法を実行させるプログラムであって、指定された時刻に指定された処理を前記プロセッサ手段で実行させるタイマ機能に係る依頼を受け、当該依頼を保持手段に登録する登録ステップと、前記保持手段に登録されている前記タイマ機能に係る依頼の情報に基づいて、前記指定された処理を実行するプロセッサ手段を指定するプロセッサ指定ステップと、単位時間毎に発生される割込み処理の回数により現在時刻を取得する内部処理ステップと、前記複数のプロセッサ手段の内、前記現在時刻の次の前記指定された時刻に前記指定された処理を実行するプロセッサ手段を、前記割込み処理が実行されるプロセッサ手段として設定する内部処理切替ステップとを前記コンピュータに実行させることを特徴とする。
本発明によれば、タイマ機能に係る依頼の内で単位時間毎に発生される割込み処理の回数により現在時刻を取得する処理によって得られる現在時刻の次の指定された時刻に指定された処理を実行するプロセッサ手段と同じプロセッサ手段のみで現在時刻を取得するために単位時間毎に発生される割込み処理が実行される。これにより、同じ1つのプロセッサ手段で時間管理に関する機能及び時刻に関連する機能を行い、実行効率を向上させることができる。
第1の実施形態によるマルチプロセッサシステムの構成例を示す概念図である。 オペレーティングシステムにおけるセットアップ処理及びタイマ機能依頼処理を示すフローチャートである。 オペレーティングシステムにおけるチック処理及びタイマ処理の流れを示すフローチャートである。 第1の実施形態におけるプロセッサ間通信の受信処理を示すフローチャートである。 オペレーティングシステムにおける切替え処理を示すフローチャートである。 第1の実施形態におけるチック処理及びタイマ処理の流れを示す図である。 第2の実施形態によるマルチプロセッサシステムの構成例を示す概念図である。 第2の実施形態におけるプロセッサ間通信の送信処理を示すフローチャートである。 第2の実施形態におけるプロセッサ間通信の受信処理を示すフローチャートである。 第2の実施形態におけるチック処理及びタイマ処理の流れを示す図である。
以下、本発明の実施形態を図面に基づいて説明する。
(第1の実施形態)
本発明の第1の実施形態について説明する。
図1は、第1の実施形態によるマルチプロセッサシステムの構成例を示す概念図である。図1(A)において、101はマルチプロセッサシステム全体を管理するオペレーティングシステムであり、102はそれぞれがタスクあるいはスレッドを処理する複数のプロセッサ部である。また、103は時刻管理に係る割込みを単位時間毎に発生する単位時間割込み発生部であり、104はプロセッサ部102間における通信の制御等を行うプロセッサ間通信部であり、110はアプリケーションである。
オペレーティングシステム101は、現在時刻111を管理するために単位時間割込み発生部103から発生する割込みにより複数のプロセッサ部102の何れか1つを介して割込み処理が起床されることで単位時間を知る。ここで、単位時間割込み発生部103は、例えば一般的な割込み制御装置によって構成され、任意のプロセッサ部102に割込み処理を発生させる設定が可能である。
アプリケーション110は、オペレーティングシステム101が提供するAPI(application program interface)を介して、オペレーティングシステム101の提供するタイマ機能を利用する。タイマ機能とは、時刻に関連する機能であり、例えばユーザが指定するユーザタイマ処理を、ユーザが指定した時刻に割込み処理として実行する機能である。アプリケーション110は、タイマ機能を利用するとき、例えばタイマ機能が発火する時刻と、発火した際に割込み処理として実行するユーザタイマ処理と、その実行すべきプロセッサ番号とを引数としてAPIをコールする。
オペレーティングシステム101は、内部処理部105、内部処理切替部106、及びタイマ機能管理部107を有する。内部処理部105は、単位時間割込み発生部103から単位時間毎に発生する割込み処理としてのチック処理を実行する。内部処理部105において、チック処理の実行回数を計測することでオペレーティングシステム101は現在時刻111を管理する。内部処理切替部106は、タイマ機能管理部107が管理しているタイマ機能に係る情報に基づいて、単位時間毎の割込み処理としてのチック処理を発生させるプロセッサ部106を設定する。
タイマ機能管理部107は、タイマキュー部108及びプロセッサ指定部109を有し、アプリケーション110からのタイマ機能に係る依頼を依頼毎に管理する。タイマ機能管理部107は、タイマキュー部108においてタイマ機能に係る依頼の発火時刻順を管理し、プロセッサ指定部109において割込み処理としてのユーザタイマ処理を実行するプロセッサ部を指定する。図1(B)に、タイマキュー部108の実装例を示す。タイマキュー部108では、前述した発火時刻、ユーザタイマ処理、及び実行すべきプロセッサ部の情報(プロセッサ番号)を有する構造体を発火時刻順に並べて管理することが可能であり、これらは各プロセッサ部102からアクセス可能な情報として保持される。なお、タイマキュー部108に保持された情報(発火時刻、ユーザタイマ処理、及び実行すべきプロセッサ部の情報を有する構造体)は、それが発火してユーザタイマ処理が実行されることでタイマキュー部108より削除される。
図1に示したマルチプロセッサシステムにおいてオペレーティングシステム101は、アプリケーション110からタイマ機能に係る依頼を受けると、その依頼内容をタイマ機能管理部107内のタイマキュー部108に登録する。オペレーティングシステム101は、内部処理部105で現在時刻111を管理し、タイマキュー部108から現在時刻111に最も近い時刻に依頼を実行すべきプロセッサ部102の情報を得る。そして、オペレーティングシステム101は、該当するプロセッサ部102を内部処理切替部106を介して、単位時間毎の割込み処理(チック処理)が発生するプロセッサ部として切替える。このように制御することで、タイマキュー部108に登録されているタイマ機能に係る依頼のうち、現在時刻111に最も近い依頼を実行すべきプロセッサ部102と同じプロセッサ部102に時刻管理に係る単位時間毎の割込みを発生させることが可能となる。
なお、アプリケーション110から発火時刻が同時刻のユーザタイマ処理が設定されている場合、すなわち複数のプロセッサ部102が単位時間毎の割込み処理(チック処理)を発生させるプロセッサ部として設定可能な場合には、以下のようにすれば良い。例えば、そのうちの任意のユーザタイマ処理(例えば先に発行されたもの)を実行すべきプロセッサ部102にてチック処理及びユーザタイマ処理を実行する。そして、それ以外のユーザタイマ処理を実行すべきプロセッサ部102で実行するために、プロセッサ間通信部104を介して所望のプロセッサ部102に割込みを発生させてユーザタイマ処理を実行する。
なお、本実施形態におけるオペレーティングシステムにおいて、前述した部分以外は、一般のオペレーティングシステムと同様である。また、前述した説明では、アプリケーション110がタイマ機能を依頼する際には、発火する時刻、ユーザタイマ処理、及び実行すべきプロセッサ部の情報をAPIの引数として指定するとしたが、これに限定されるものではない。例えば、タイマ機能の依頼時以外にも任意の時点で、依頼に対して発火時刻、ユーザタイマ処理、及び実行すべきプロセッサ部の全部又は一部を変更するAPIとすることも可能である。また、例えば、オペレーティングシステム101がそれらの情報を使用する時点でコールバックを行って指定するようにしても良い。また、ユーザタイマ処理を実行すべきプロセッサ部をプロセッサ番号で指定するようにしているが、複数あるプロセッサ部102の内からその一つを一意に指定できれば良く、物理的な番号でなくとも、仮想番号、又は番号でない識別子等であっても良い。
次に、本実施形態でのオペレーティングシステムにおけるセットアップ処理及びタイマ機能依頼処理について、図2のフローチャートを参照して説明する。
図2(A)は、オペレーティングシステムにおけるセットアップ処理を示すフローチャートである。セットアップ処理を開始すると、ステップS201にて、オペレーティングシステム101は、単位時間割込み発生部103により発生する割込み処理としてのチック処理を実行するプロセッサ部102を設定する。ここで、セットアップ処理はシステム起動時に実行されるので、ステップS201においては、チック処理を実行するプロセッサ部として、どのプロセッサ部を設定しても実行性能に対する影響は少ない。例えば、オペレーティングシステム101が、プロセッサ番号“0”(図1の例ではPU0)のプロセッサ部102にてセットアップ処理を主に実行するのであれば、そのプロセッサ部に設定することも可能である。次に、ステップS202にて、オペレーティングシステム101は、単位時間割込み発生部103から単位時間毎に割込みが発生するように設定し、セットアップ処理を終了する。このセットアップ処理によって、システムを起動してから最初にチック処理を実行するプロセッサ部102が設定される。
図2(B)は、オペレーティングシステムにおけるタイマ機能依頼処理を示すフローチャートである。タイマ機能依頼処理は、アプリケーション110からのタイマ機能に係る依頼をオペレーティングシステム101が受けることで開始される。タイマ機能依頼処理を開始すると、ステップS203にて、オペレーティングシステム101は、APIの引数として渡された発火時刻、ユーザタイマ処理、及び実行すべきプロセッサ番号の情報をタイマキュー部108に登録する。そして、タイマ機能依頼処理を終了する。なお、タイマ機能依頼処理において、後述するチック処理を実行するプロセッサ部102を切替えるステップを含めることも可能であり、その詳細については後述する。
次に、本実施形態でのオペレーティングシステムにおけるチック処理及びタイマ処理について、図3のフローチャートを参照して説明する。
図3は、オペレーティングシステムにおけるチック処理及びタイマ処理の流れを示すフローチャートである。ステップS301にて、オペレーティングシステム101は、内部処理部105で管理する現在時刻111を単位時刻分更新して、ステップS302へ進む。ステップS302にて、オペレーティングシステム101は、タイマキュー部108を参照することで、現在時刻に実行すべきユーザタイマ処理が存在するか否かを判断する。ステップS302での判断の結果、実行すべきユーザタイマ処理が存在する場合にはステップS303へ進み、存在しない場合にはステップS306へ進む。
ステップS303にて、オペレーティングシステム101は、同じくタイマキュー部108を参照することで、実行すべきユーザタイマ処理を現在のプロセッサ部102で実行すべきか否かを判断する。ステップS303での判断の結果、現在のプロセッサ部102で実行すべき場合にはステップS304へ進み、そうでない場合にはステップS305へ進む。ステップS304では、実行すべきユーザタイマ処理が現在のプロセッサ部102で実行され、その後タイマキュー部108から該当する依頼の構造体が削除されて、ステップS302へ進む。ステップS305では、ユーザタイマ処理を実行すべきプロセッサ部102に対してプロセッサ間通信部104を用いた割込み処理が発生され、ステップS302へ進む。
ステップS306にて、オペレーティングシステム101は、タイマキュー部108を参照して、内部処理切替部106によりチック処理を実行するプロセッサ部102の切替えを実行し、処理を終了する。ここで、本実施形態では、内部処理切替部106は、現在時刻111に最も近い時刻にユーザタイマ処理を実行すべきプロセッサ部102がチック処理を実行するプロセッサ部102となるように切替える。なお、ユーザタイマ処理がそれ以上依頼されていない(タイマキュー部108に依頼に係る構造体が1つも存在しない)場合には、例えばこれまでと同じ(直前に設定されていた)プロセッサ部102を、チック処理を実行するプロセッサ部102とする。また、ユーザタイマ処理がそれ以上依頼されていない場合には、予め定めたプロセッサ部102を、チック処理を実行するプロセッサ部102としても良い。
図3に示した例では、チック処理を実行するプロセッサ部102の切替えを行うステップS306を有しているが、同様の処理を図2(B)に示したステップS203の処理後に行うことも可能である。すなわち、ステップS203に続いて、指定された発火時刻が現在時刻111に最も近いユーザタイマ処理を実行すべきプロセッサ部102が、チック処理を実行するプロセッサ部102となるように内部処理切替部106を用いて切替えを行うことも可能である。この場合には、チック処理の実行が重ならないように図4に示す処理を実行している間においては、単位時間毎の割込みが発生しないように単位時間割込み発生部103を制御する。
次に、第1の実施形態におけるプロセッサ間通信の受信処理について、図4のフローチャートを参照して説明する。
図4は、第1の実施形態におけるプロセッサ間通信の受信処理を示すフローチャートである。このプロセッサ間通信の受信処理は、図3に示したステップS305でのプロセッサ間通信の送信処理に対応した処理である。ステップS401にて、プロセッサ間通信によって発生した割込み処理として、タイマキュー部108が参照され、現在のプロセッサ部102で実行すべきユーザタイマ処理が存在するか否かが判断される。判断の結果、実行すべきユーザタイマ処理が存在する場合にはステップS402へ進み、実行すべきユーザタイマ処理が存在しない場合にはプロセッサ間通信の受信処理を終了する。ステップS402では、実行すべきユーザタイマ処理が実行され、タイマキュー部108から該当する依頼の構造体が削除されて、ステップS401へ進む。このプロセッサ間通信の受信処理により、同時刻において別のプロセッサ部102で実行すべきユーザタイマ処理を実行することが可能になる。
第1の実施形態によれば、タイマ機能に係る依頼のうち現在時刻111に最も近い時刻に依頼を実行すべきプロセッサ部102と同じプロセッサ部102のみで現在時刻を管理するための単位時間毎に発生する割込み処理を実行する。例えば、図6(A)に示すように、発火時刻、ユーザタイマ処理、及び実行すべきプロセッサ部を示すプロセッサ番号が指定されたアプリケーション110からのタイマ機能に係る依頼があったとする。このとき、図6(B)に示すように第1の実施形態におけるマルチプロセッサシステムでは、時刻2に処理Aを実行するプロセッサ番号“0”のプロセッサ部で、時刻0〜2においてチック処理が実行される。そして、プロセッサ番号“0”のプロセッサ部で時刻2に処理Aを実行した後は、時刻4に処理Bを実行するプロセッサ番号“1”のプロセッサ部で、時刻3〜4においてチック処理が実行される。さらに、プロセッサ番号“1”のプロセッサ部で時刻4に処理Bを実行すると、時刻7に処理Cを実行するプロセッサ番号“2”のプロセッサ部で、時刻5〜7においてチック処理が実行される。このように、現在時刻を管理するための処理とタイマ機能とを同じ1つのプロセッサ部で行うことで、マルチプロセッサシステムのオペレーティングシステムにおいて時間管理に関する機能及び時刻に関連する機能の実行効率を向上させることができる。
なお、本実施形態においては、ユーザタイマ処理を実行すべきプロセッサ部として特定のプロセッサ部を指定することとしているが、ユーザタイマ処理を任意のプロセッサ部で実行させるよう指定できるようにしても良い。例えば、プロセッサ番号としてシステム上に存在しない番号(例えば、“−1”)を与えることで、ユーザタイマ処理を任意のプロセッサ部で実行させるようプロセッサ指定部109に指示できるようにしても良い。
ユーザタイマ処理を任意のプロセッサ部で実行させるよう指定可能にする場合には、図3のステップS306での処理は図5のフローチャートに示される処理に置き換えれば良い。また、ユーザタイマ処理を任意のプロセッサ部で実行させるよう指定可能にし、タイマ機能依頼処理時にもチック処理を実行するプロセッサ部の切替えを行う場合には、ステップS203に続いて、図5のフローチャートに示されるように処理を行えば良い。
図5は、ユーザタイマ処理を任意のプロセッサ部で実行させるよう指定可能とした場合のオペレーティングシステムにおける切替え処理を示すフローチャートである。ステップS501にて、オペレーティングシステムは、タイマキュー部108を参照することで、指定された発火時刻が現在時刻111に最も近いユーザタイマ処理を実行すべきプロセッサ部として任意のプロセッサ部が指定されているか否かを判断する。判断の結果、実行すべきプロセッサ部として任意のプロセッサ部が指定されている場合には、ステップS502にて、オペレーティングシステム101は、チック処理を実行するプロセッサ部をこれまでと同じプロセッサ部として、切替え処理を終了する。一方、実行すべきプロセッサ部として、特定されたある1つのプロセッサ部が指定されている場合には、ステップS503へ進む。ステップS503にて、オペレーティングシステム101は、内部処理切替部106によりチック処理を実行するプロセッサ部を該当するプロセッサ部に切替えて、切替え処理を終了する。
例えば、図6(A)に示したタイマ機能に係る依頼において、時刻7に処理Cをプロセッサ番号“2”のプロセッサ部で実行するという依頼に代えて、時刻7に処理Cを任意のプロセッサ部で実行させる依頼であったとする。このとき、図5に示したようにしてチック処理及びユーザタイマ処理を実行するプロセッサ部を切替えることで、図6(C)に示すように処理が行われる。すなわち、プロセッサ番号“1”のプロセッサ部で時刻4に処理Bを実行した後、プロセッサ番号“1”のプロセッサ部が引き続き時刻5〜7においてチック処理を実行して、時刻7に処理Cを実行する。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
図7は、第2の実施形態によるマルチプロセッサシステムの構成例を示す概念図である。この図7において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。第2の実施形態によるマルチプロセッサシステムは、図1(A)に示した第1の実施形態によるマルチプロセッサシステムが有する各部に加え、さらに休止(HALT)状態のプロセッサ部102を起床させるプロセッサ起床部112を有する。
第2の実施形態によるマルチプロセッサシステムは、ユーザタイマ処理を実行すべきプロセッサ部が休止状態である場合、発火する時刻にプロセッサ起床部112を用いて該当するプロセッサ部102を起床させる。そして、起床させたプロセッサ部102にプロセッサ間通信部104を用いて割込み処理を発生させることで、そのプロセッサ部102がユーザタイマ処理を実行する。起床したプロセッサ部102は、実行すべきユーザタイマ処理を実行した後、再び休止状態になる。
次に、第2の実施形態におけるプロセッサ間通信の送信処理について、図8のフローチャートを参照して説明する。図8は、第2の実施形態におけるプロセッサ間通信の送信処理を示すフローチャートである。なお、図8に示す処理は、第1の実施形態における図3に示したステップS305での処理に置き換えて実施する。
ステップS801にて、プロセッサ起床部112が参照され、ユーザタイマ処理を実行すべきプロセッサ部102が稼動しているか否かが判断される。なお、プロセッサ部102が稼動しているか否かは、例えばクロック制御装置等を参照することで、そのプロセッサ部へクロックが入力されている状態か否かによって判断できる。ユーザタイマ処理を実行すべきプロセッサ部102が稼動している場合にはステップS802へ進む。ステップS802では、プロセッサ間通信部104がユーザタイマ処理を実行すべきプロセッサ部102に割込み処理を発生させ、プロセッサ間通信の送信処理を終了する。
一方、ユーザタイマ処理を実行すべきプロセッサ部102が稼動していない場合にはステップS803へ進む。ステップS803では、プロセッサ起床部112がユーザタイマ処理を実行すべきプロセッサ部102を起床させ、ステップS804へ進む。続いて、ステップS804では、プロセッサ間通信部104がユーザタイマ処理を実行すべきプロセッサ部102に割込み処理を発生させる。この際、ユーザタイマ処理を実行すべきプロセッサ部102に対して休止中であった情報を含めて通知する。そして、プロセッサ間通信の送信処理を終了する。
次に、第2の実施形態におけるプロセッサ間通信の受信処理について、図9のフローチャートを参照して説明する。図9は、第2の実施形態におけるプロセッサ間通信の受信処理を示すフローチャートである。なお、図9に示す処理は、第1の実施形態における図4に示した処理に置き換えて実施する。
ステップS901にて、タイマキュー部108が参照され、プロセッサ間通信によって発生した割込み処理として、現在のプロセッサ部102で実行すべきユーザタイマ処理が存在するか否かが判断される。判断の結果、実行すべきユーザタイマ処理が存在する場合にはステップS902へ進み、実行すべきユーザタイマ処理が実行され、タイマキュー部108から該当する依頼の構造体が削除されて、ステップS901へ進む。一方、実行すべきユーザタイマ処理が存在しない場合にはステップS903へ進む。ステップS903では、受信した情報を基に本割込み処理以前にプロセッサ部が休止状態であったか否かが判断される。休止中であった場合にはステップS904へ進み、休止中でなかった場合にはプロセッサ間通信の受信処理を終了する。ステップS904では、再びプロセッサ部102を休止させて休止状態にした後、プロセッサ間通信の受信処理を終了する。
なお、第2の実施形態に係るその他の構成及び動作は、前述した第1の実施形態と同様である。
第2の実施形態によれば、ユーザタイマ処理を実行すべきプロセッサ部が休止状態である場合に、ユーザタイマ処理のみを実行すべきプロセッサにて実行することが可能になる。これにより、マルチプロセッサシステムのオペレーティングシステムにおいて時間管理に関する機能及び時刻に関連する機能の実行効率を向上させることができる。例えば、図6(A)に示したようなアプリケーション110からのタイマ機能に係る依頼があり、プロセッサ番号“1”のプロセッサ部が休止状態であるとする。このとき、第2の実施形態におけるマルチプロセッサシステムでは、図10に示すように時刻2に処理Aを実行するプロセッサ番号“0”のプロセッサ部で、時刻0〜2においてチック処理が実行される。そして、プロセッサ番号“0”のプロセッサ部で時刻2に処理Aを実行した後も、引き続き、直前に設定されていたプロセッサ番号“0”のプロセッサ部で、時刻3〜4においてチック処理が実行される。時刻4になると、プロセッサ起床部112によりプロセッサ番号“1”のプロセッサ部を起床させ、プロセッサ番号“1”のプロセッサ部が処理Bを実行する。その後、プロセッサ番号“1”のプロセッサ部で時刻4に処理Bを実行すると、プロセッサ番号“1”のプロセッサ部が再び休止状態とされ、時刻7に処理Cを実行するプロセッサ番号“2”のプロセッサ部で、時刻5〜7においてチック処理が実行される。
本実施形態では、ユーザタイマ処理を実行すべきプロセッサ部が休止状態である場合に、ユーザタイマ処理のみを実行すべきプロセッサ部で実行する実施形態について説明した。しかし、これに限定されず、例えば、ユーザタイマ処理を実行すべきプロセッサ部が休止状態である場合に、ユーザタイマ処理を実行すべきプロセッサ部にてチック処理及びユーザタイマ処理を実行する形態も可能である。
この場合、第1の実施形態におけるステップS306において、該当するプロセッサ部102が稼動中であるか否かを判断し、稼動中でなければプロセッサ起床部112がプロセッサ部102を起床させる。その後、内部処理切替部106が、起床したプロセッサ部102でチック処理を実行するよう切替える。このとき、チック処理を実行するプロセッサ部が別のプロセッサ部に切り替わった場合、それ以前にプロセッサ部が休止中であったか否かを判断し、休止中であったならばプロセッサ部を再び休止状態にする。以上のように実装することで、ユーザタイマ処理を実行すべきプロセッサ部が休止中である場合に、そのプロセッサ部にてチック処理及びユーザタイマ処理を実行する形態も可能である。
さらに、ユーザタイマ処理を実行すべきプロセッサ部が休止状態である場合に、該当するプロセッサ部を起床させない実施形態も可能である。この場合、第1の実施形態におけるステップS306において、該当するプロセッサ部102が稼動中であるか否かを判断する。判断の結果、該当するプロセッサ部102が稼動中でなければチック処理を実行するプロセッサ部102をこれまでと同じ(直前に設定されていた)プロセッサ部102とする。一方、該当するプロセッサ部102が稼動中であれば、第1の実施形態と同様とする。以上のように実装することで、ユーザタイマ処理を実行すべきプロセッサ部が休止中である場合に、チック処理及びユーザタイマ処理をそれ以前に実行していたプロセッサ部にて実行することが可能である。
(本発明の他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、前述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
101…オペレーティングシステム、102…プロセッサ部、103…単位時間割込み発生部、104…プロセッサ間通信部、105…内部処理部、106…内部処理切替部、107…タイマ機能管理部、108…タイマキュー部、109…プロセッサ指定部、110…アプリケーション、112…プロセッサ起床部

Claims (10)

  1. それぞれがタスクあるいはスレッドを処理する複数のプロセッサ手段を有するマルチプロセッサシステムのコンピュータに当該マルチプロセッサシステムの制御方法を実行させるプログラムであって、
    指定された時刻に指定された処理を前記プロセッサ手段で実行させるタイマ機能に係る依頼を受け、当該依頼を保持手段に登録する登録ステップと、
    前記保持手段に登録されている前記タイマ機能に係る依頼の情報に基づいて、前記指定された処理を実行するプロセッサ手段を指定するプロセッサ指定ステップと、
    単位時間毎に発生される割込み処理の回数により現在時刻を取得する内部処理ステップと、
    前記複数のプロセッサ手段の内、前記現在時刻の次の前記指定された時刻に前記指定された処理を実行するプロセッサ手段を、前記割込み処理が実行されるプロセッサ手段として設定する内部処理切替ステップとを前記コンピュータに実行させる、ことを特徴とするプログラム。
  2. 前記内部処理切替ステップにて、前記割込み処理が実行されるプロセッサ手段として設定可能な前記プロセッサ手段が複数ある場合には、当該複数のプロセッサ手段の内の1つを前記割込み処理が実行されるプロセッサ手段として設定し、
    前記タイマ機能に係る依頼により指定された処理の実行は、当該設定されたプロセッサ手段より他の前記プロセッサ手段に指示することを特徴とする請求項1記載のプログラム。
  3. 前記現在時刻の次の前記指定された時刻に前記指定された処理を実行する前記プロセッサ手段が休止状態である場合には、前記内部処理切替ステップにて、直前に設定されていたプロセッサ手段を前記割込み処理が実行されるプロセッサ手段として設定し、前記タイマ機能に係る依頼により指定された処理は、前記休止状態のプロセッサ手段を起床させ当該プロセッサ手段で実行させることを特徴とする請求項1又は2記載のプログラム。
  4. 前記現在時刻の次の前記指定された時刻に前記指定された処理を実行する前記プロセッサ手段が休止状態である場合には、前記内部処理切替ステップにて、前記休止状態のプロセッサ手段を起床させ、当該プロセッサ手段で前記割込み処理及び前記タイマ機能に係る依頼により指定された処理を実行させることを特徴とする請求項1又は2記載のプログラム。
  5. 前記現在時刻の次の前記指定された時刻に前記指定された処理を実行する前記プロセッサ手段が休止状態である場合には、前記内部処理切替ステップにて、直前に設定されていたプロセッサ手段を前記割込み処理が実行されるプロセッサ手段として設定し、当該プロセッサ手段で前記タイマ機能に係る依頼により指定された処理を実行させることを特徴とする請求項1又は2記載のプログラム。
  6. 前記タイマ機能に係る依頼により指定された処理を実行させる前記プロセッサ手段に、特定のプロセッサ手段又は複数の任意のプロセッサ手段を指定できることを特徴とする請求項1〜5の何れか1項に記載のプログラム。
  7. それぞれがタスクあるいはスレッドを処理する複数のプロセッサ手段を有するマルチプロセッサシステムの制御方法であって、
    指定された時刻に指定された処理を前記プロセッサ手段で実行させるタイマ機能に係る依頼を受け、当該依頼を保持手段に登録する登録工程と、
    前記保持手段に登録されている前記タイマ機能に係る依頼の情報に基づいて、前記指定された処理を実行するプロセッサ手段を指定するプロセッサ指定工程と、
    単位時間毎に発生される割込み処理の回数により現在時刻を取得する内部処理工程と、
    前記複数のプロセッサ手段の内、前記現在時刻の次の前記指定された時刻に前記指定された処理を実行するプロセッサ手段を、前記割込み処理が実行されるプロセッサ手段として設定する内部処理切替工程とを有する、ことを特徴とする制御方法。
  8. それぞれがタスクあるいはスレッドを処理する複数のプロセッサ手段と、
    前記プロセッサ手段で指定された時刻に指定された処理を実行させるタイマ機能に係る依頼を管理するタイマ機能管理手段と、
    前記タイマ機能管理手段で管理されている前記タイマ機能に係る依頼の情報に基づいて、前記指定された処理を実行するプロセッサ手段を指定するプロセッサ指定手段と、
    単位時間毎に発生される割込み処理の回数により現在時刻を取得する内部処理手段と、
    前記複数のプロセッサ手段の内、前記現在時刻の次の前記指定された時刻に前記指定された処理を実行するプロセッサ手段を、前記割込み処理が実行されるプロセッサ手段として設定する内部処理切替手段とを備える、ことを特徴とするマルチプロセッサシステム。
  9. 単位時間毎に前記割込み処理を発生する単位時間割込み発生手段をさらに備えることを特徴とする請求項8記載のマルチプロセッサシステム。
  10. 前記タイマ機能管理手段は、前記タイマ機能に係る依頼を前記指定された時刻の順に保持するタイマキュー手段を備えることを特徴とする請求項8又は9記載のマルチプロセッサシステム。
JP2010188473A 2010-08-25 2010-08-25 マルチプロセッサシステム、その制御方法及びプログラム Expired - Fee Related JP5591031B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010188473A JP5591031B2 (ja) 2010-08-25 2010-08-25 マルチプロセッサシステム、その制御方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010188473A JP5591031B2 (ja) 2010-08-25 2010-08-25 マルチプロセッサシステム、その制御方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2012048379A JP2012048379A (ja) 2012-03-08
JP2012048379A5 JP2012048379A5 (ja) 2013-09-12
JP5591031B2 true JP5591031B2 (ja) 2014-09-17

Family

ID=45903198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010188473A Expired - Fee Related JP5591031B2 (ja) 2010-08-25 2010-08-25 マルチプロセッサシステム、その制御方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5591031B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4829177B2 (ja) * 2007-06-11 2011-12-07 ルネサスエレクトロニクス株式会社 ディスパッチ装置

Also Published As

Publication number Publication date
JP2012048379A (ja) 2012-03-08

Similar Documents

Publication Publication Date Title
TWI783355B (zh) 深度學習模型的分布式訓練方法以及裝置
US10503542B2 (en) Systems, methods and devices for work placement on processor cores
JP5433837B2 (ja) 仮想計算機システム、仮想計算機の制御方法及びプログラム
JP4370336B2 (ja) 低消費電力ジョブ管理方法及び計算機システム
US9286115B2 (en) Performant runtime pause with no CPU utilization
KR101332840B1 (ko) 병렬 컴퓨팅 프레임워크 기반의 클러스터 시스템, 호스트 노드, 계산 노드 및 어플리케이션 실행 방법
TWI573075B (zh) 持續及有彈性之工作處理
JP2010165259A (ja) 情報処理装置および情報処理方法
JP5347451B2 (ja) マルチプロセッサシステム、競合回避プログラム及び競合回避方法
WO2014101561A1 (zh) 单个处理器上实现多应用并行处理的方法及装置
KR20120115398A (ko) 전자 디바이스에서 전력을 제어하는 시스템 및 방법
JP2012198843A (ja) 仮想サーバ調整システム、仮想サーバ制御装置及びプログラム
JP2011044110A (ja) ソフトウェアプログラム実行装置、ソフトウェアプログラム実行方法、及びプログラム
JP2016126426A (ja) マルチコアシステム、マルチコアプロセッサ、並列処理方法及び並列処理制御プログラム
JP2001306341A (ja) コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
JP5591031B2 (ja) マルチプロセッサシステム、その制御方法及びプログラム
TWI442323B (zh) 用於多核心/眾核心的工作排程與分配管理架構及其方法
JP2010277177A (ja) マルチオペレーティングシステム制御方法及びプロセッサシステム
US11645115B2 (en) Systems, methods and devices for standby power savings
JP2016184315A (ja) 電子制御装置
TWI472910B (zh) 節省系統資源之方法及運用其方法之作業系統
Karande et al. Task management for heterogeneous multi-core scheduling
JP2007193744A (ja) 情報処理装置、プログラム、およびスケジューリング方法
Chen et al. Eres: An energy-aware real-time elastic scheduling algorithm in clouds
JP2019109600A (ja) 情報処理装置、計算機制御方法、および計算機制御プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130807

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140509

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: 20140701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140729

R151 Written notification of patent or utility model registration

Ref document number: 5591031

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees