JP4829177B2 - ディスパッチ装置 - Google Patents

ディスパッチ装置 Download PDF

Info

Publication number
JP4829177B2
JP4829177B2 JP2007154460A JP2007154460A JP4829177B2 JP 4829177 B2 JP4829177 B2 JP 4829177B2 JP 2007154460 A JP2007154460 A JP 2007154460A JP 2007154460 A JP2007154460 A JP 2007154460A JP 4829177 B2 JP4829177 B2 JP 4829177B2
Authority
JP
Japan
Prior art keywords
program
processor
time slice
tick
cycle
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
JP2007154460A
Other languages
English (en)
Other versions
JP2008305351A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2007154460A priority Critical patent/JP4829177B2/ja
Publication of JP2008305351A publication Critical patent/JP2008305351A/ja
Application granted granted Critical
Publication of JP4829177B2 publication Critical patent/JP4829177B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Description

本発明は、対称型マルチプロセッサシステムにおいて時分割でプロセッサにプログラムを割当てるディスパッチ装置に関するものであり、特に、プログラムの実行割当時間を定周期割込みの発生回数をカウントして計測するティスパッチ装置に関するものである。
対称型マルチプロセッサ(SMP:Symmetric Multi Processor)システムは、マルチプロセッシング方法の1つで複数のプロセッサが実行する処理の役割を決めずに各プロセッサを同等のものとして扱うシステムである。従来の対称型マルチプロセッサに関する従来技術として、たとえば、特許文献1および非特許文献1がある。
特許文献1には、予め定められたプロセッサの割当て更新間隔毎に、各ランキューに対するプロセッサの割当て状態を管理して動的に制御し、各ランキューに属するプログラム数に偏りが生じないようにディスパッチすることによって、システムの性能の低下を防止するディスパッチ装置に関する技術が開示されている。
また、非特許文献1に記載の従来の対称型マルチプロセッサは、複数(ここでは、4個とする)のプロセッサ、各プロセッサが実行する複数のプログラムからなる4個のプログラム群を記憶するプログラム記憶部、プロセッサと1対1で接続され周期的割込みを発生させるティックタイマ、4個のプログラム群の各プログラムに対応するタイムスライスカウンタの初期値(タイムスライスカウンタ初期値)およびタイムスライスカウンタ値を記憶するプログラム情報と各プロセッサと対応付けられて各プロセッサが実行すべきプログラムの待ち情報が登録されるランキューと、4個のティックタイマの割込みの周期となるティック値とを記憶する記憶部、およびプログラム情報に基づいてプロセッサにプログラムを割当てる(ディスパッチする)ディスパッチ装置とを備えている。
プログラム起動時には、ディスパッチ装置は、起動元となるプログラム(親プログラム)のタイムスライスカウンタ初期値を起動すべきプログラム(子プログラム)のタイムスライスカウンタ初期値とし、このタイムスライスカウンタ初期値を親プログラムを実行しているプロセッサに対応するランキューに登録する。
また、ティックタイマの周期的割込み発生時には、ディスパッチ装置は、実行しているプログラムのタイムスライスカウンタ値をデクリメントする。ディスパッチ装置は、タイムスライスカウンタ値「0」以外の場合には処理を終了し、タイムスライスカウンタ値が「0」になった場合には、周期的割込みを発生したティックタイマに接続されたプロセッサに対応するランキューからつぎに実行すべきプログラムを選択する。ディスパッチ装置は、選択したプログラムに対応するタイムスライスカウンタ初期値をタイムスライスカウンタ値として設定して、当該プロセッサに選択したプログラムを実行させる。
また、プログラムの実行割当て時間であるタイムスライスの変更時には、ディスパッチ装置は、要求されたタイムスライスをティック値で除算して商を求め、求めた商をタイムスライスカウンタ初期値とする。
このように、非特許文献1に記載の対称型マルチプロセッサシステムでは、親プログラムのタイムスライスカウンタ初期値を子プログラムのタイムスライスカウンタ初期値とし、タイムスライス変更時には、タイムスライスをティック値で除算した商をタイムスライスカウンタ初期値とするようにしている。
特開2000−132411号公報 高橋浩和(著)、小田逸郎(著)、山幡為佐久(著)「Linuxカーネル解読室」ソフトバンククリエイティブ、2006年11月18日、P47〜P48、P82
しかしながら、上記特許文献1および非特許文献1に記載の従来技術では、ディスパッチしたプログラムのタイムスライスを計測するためにシステム内でその値が一意であるティックタイマ周期値を使用している。そのため、不要な定周期割り込みが発生し、その割込み処理を行うことにより処理能力が低下してしまうという問題があった。
たとえば、タイムスライスを計測するタイムスライスカウンタ初期値は、タイムスライスをティック値で除算した商である。そのため、タイムスライスの値が大きいとタイムスライスカウンタ初期値も大きくなり、ティック値を周期として発生する定周期割込みのたびに、タイムスライスカウンタをデクリメントする処理を行わなければならない。この処理はティック値を大きく設定すれば改善することはできるが、ティック値を大きく設定すると、タイムスライスの値が小さい場合には最低でもティック値の時間がタイムスライスの値となり、その分プロセッサを使用するためシステムの処理能力が低下してしまう。
本発明は、上記に鑑みてなされたものであって、対称型マルチプロセッサシステムにおいて各プロセッサに割り当てたプログラムのタイムスライスを計測するためのティックタイマの割り込み回数を実行するプログラムのタイムスライスに応じて制御し、不要な割り込みを防止してシステムの処理能力を向上することができるディスパッチ装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、複数のプロセッサと、これらのプロセッサに1対1に対応付けられ定周期割込みを発生させるティックタイマと、前記複数のプロセッサに対応付けられ当該プロセッサに割当てた実行待ちプログラムが登録されるランキューとを有する対称型マルチプロセッサシステムに適用され、前記ティックタイマが発生する定周期割込みの回数をカウントして当該プロセッサが実行するプログラムの実行割当時間を計測して時分割で前記複数のプロセッサにプログラムを割当てるディスパッチ装置であって、前記実行割当時間の計測が終了すると、計測が終了した実行割当時間のプログラムを実行していたプロセッサに対応するランキューに登録されたすべての実行待ちプログラムの実行割当時間に基づいて当該ティックタイマが発生する定周期割込みの発生周期を選択し、選択した発生周期を当該ティックタイマに設定して定周期割込みの発生周期を変更するとともに、当該ランキューに登録されている各実行待ちプログラムの実行割当時間および選択した発生周期に基づいて定周期割込みの回数のカウント値を変更するタイムスライス管理部、を備えることを特徴とする。
この発明によれば、ティックタイマが発生する定周期割込みの回数をカウントして当該プロセッサが実行するプログラムの実行割当時間を計測し、実行割当時間の計測が終了すると、計測が終了した実行割当時間のプログラムを実行していたプロセッサに対応するランキューに登録されたすべての実行待ちプログラムの実行割当時間に基づいて当該ティックタイマが発生する定周期割込みの発生周期を選択し、選択した発生周期を当該ティックタイマに設定して定周期割込みの発生周期を変更するとともに、当該ランキューに登録されている各実行待ちプログラムの実行割当時間および決定した発生周期に基づいて定周期割込みの回数のカウント値を変更するようにしているため、不要な割り込みを防止してシステムの処理能力を向上することができるディスパッチ装置を得ることができるという効果を奏する。
以下に、本発明にかかるディスパッチ装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1〜図6を用いてこの発明の実施の形態1を説明する。図1は、この発明におけるディスパッチ装置が適用される対称型マルチプロセッサシステムの実施の形態1の構成を示す図である。図1において、対称型マルチプロセッサは、プログラム記憶部128、複数(この場合は4つ)のプロセッサ100〜103、ティックタイマ104〜107、記憶部108、およびディスパッチ装置109を備えている。
プログラム記憶部128は、プロセッサ100〜103が実行する複数のプログラムからなるプログラム群113〜116を格納する。プロセッサ100〜103は、ディスパッチ装置109によってディスパッチ(割り当てられた)プログラム群113〜116のプログラムを実行する演算処理装置である。
ティックタイマ104〜107は、それぞれプロセッサ100〜103に接続されている。ティックタイマ104〜107は、ティック値の計測を繰り返してティック値を周期とする周期的割込みを接続されたプロセッサ100〜103に発生させる。
記憶部108は、ディスパッチ装置109がプログラム群113〜116の各プログラムをディスパッチするために必要な情報を記憶する。記憶部108は、プログラム情報記憶領域117と、ランキュー記憶領域120〜123と、ティック値記憶領域124〜127とを有する。
プログラム情報記憶領域117は、プログラム群113〜116のプログラム毎の情報を記憶する領域である。プログラム情報記憶領域117は、プログラム群113〜116のプログラム毎にそれぞれ対応付けられて当該プログラムがプログラム記憶部128のどの領域に格納されているかを示す情報(たとえば、プログラムが格納されている先頭アドレス)を記憶するとともに、当該プログラムに割り当てられたタイムスライスを記憶するタイムスライス記憶領域118およびティックタイマ104〜107が発生させる定周期割り込みの回数(定周期割込み回数)のカウント値を記憶するタイムスライスカウンタ記憶領域119を有する。
なお、タイムスライスカウンタ記憶領域119の初期値は、タイムスライス記憶領域118に記憶されたタイムスライスの時間において定周期割込みが何回発生するかを示す値であり、定周期割込みが発生する毎にタイムスライスカウンタ記憶領域119の値がデクリメントされる。すなわち、タイムスライスカウンタ記憶領域119は、減算カウンタであるタイムスライスカウンタのカウント値を記憶する。
ランキュー記憶領域120〜123は、プロセッサ100〜103に割当てられた実行可能状態のプログラムのプログラム情報を指し示す行列(ポインタ)を順番に記憶する領域である。具体的には、たとえば、当該プログラムに対応するプログラム情報記憶領域117が記憶部108のどの領域に記憶されているかを当該プログラムに対応するプログラム情報記憶領域117の先頭アドレスで示し、このアドレスをポインタとして用いる。ティック値記憶領域124〜127は、ティックタイマ104〜107がプロセッサ100〜103に発生させる定周期割込み間隔(ティック値)を記憶する領域である。
ディスパッチ装置109は、プロセッサ100〜103にプログラム群113〜116のプログラムを割当てる。ディスパッチ装置109は、ディスパッチ処理部110と、プロセッサ選択部111と、タイムスライス管理部112とを備えている。
タイムスライス管理部112は、プログラム群113〜116の各プログラムに対する処理時間をプロセッサ100〜103に割当てるプロセッサ割当て時間を管理する。プロセッサ選択部111は、プログラム群113〜116のプログラムを実行するプロセッサ100〜103を選択する。ディスパッチ処理部110は、プロセッサ選択部111によって選択されたプロセッサにプログラム群113〜116のプログラムを割当てる。
なお、図1においては、ティックタイマ104、ランキュー記憶領域120、ティック値記憶領域124、およびプログラム群113がプロセッサ100に対応しており、ティックタイマ105、ランキュー記憶領域121、ティック値記憶領域125、およびプログラム群114がプロセッサ101に対応しており、ティックタイマ106、ランキュー記憶領域122、ティック値記憶領域126、およびプログラム群115がプロセッサ102に対応しており、ティックタイマ107、ランキュー記憶領域123、ティック値記憶領域127、およびプログラム群116がプロセッサ103に対応している。
つぎに、図1と、図2〜図6のフローチャートとを参照してこの実施の形態1のディスパッチ装置109の動作について説明する。まず、図2のフローチャートを参照して、プログラム起動時のディスパッチ処理の動作について説明する。プログラム群113〜116の各プログラムは、システム起動時にディスパッチ装置109にプロセッサ100〜103に割当てられるメインのプログラムが実行され、メインプログラムの処理に応じてつぎに実行すべきプログラムが起動される。すなわち、実行しているプログラムを親プログラムとして、親プログラムから子となるプログラム(子プログラム)が起動される。この起動時に実行されるのが、プログラム起動時のディスパッチ処理である。
プロセッサ100〜103は、現在実行している親プログラムおよび起動すべき子プログラム(起動対象プログラム)を識別するための情報をディスパッチ装置109のディスパッチ処理部110に通知する。
ディスパッチ処理部110は、プロセッサ100〜103から通知された親プログラムおよび起動対象プログラムを識別するための情報に基づいて、親プログラムのタイプスライスを起動対象プログラムのタイムスライスにコピーする(ステップS200)。
具体的には、ディスパッチ処理部110は、プロセッサ100〜103から通知された親プログラムおよび起動対象プログラムを識別するための情報に基づいて、親プログラムおよび起動対象プログラムに対応するプログラム情報記憶領域117のタイムスライス記憶領域118を認識する。ディスパッチ処理部110は、親プログラムに対応するタイムスライス記憶領域118に記憶されているタイムスライスを読み出し、起動対象プログラムに対応するタイムスライス記憶領域118に読み出したタイムスライスを記憶させる。
プロセッサ選択部111は、プロセッサ選択処理を実行して起動対象プログラムを実行するプロセッサを選択する(ステップS201)。
図3のフローチャートを参照して、プロセッサ選択処理の動作について説明する。プロセッサ選択部111は、プロセッサ100〜103に対応するティック値記憶領域124〜127からプロセッサ100〜103のティック値を読み出す。プロセッサ選択部111は、読み出したティック値が起動対象プログラムのタイムスライスの約数となるティック値のプロセッサ100〜103を候補プロセッサとして選択する(ステップS300)。
なお、起動対象プログラムのタイムスライスは、ディスパッチ処理部110がプロセッサ選択部111に通知するようにしてもよいし、プロセッサ選択部111が、プロセッサ100〜103から通知された起動対象プログラムを識別するための情報から起動対象プログラムに対応するプログラム情報記憶領域117のタイムスライス記憶領域118を認識し、認識したタイムスライス記憶領域118から読み出すようにしてもよい。
プロセッサ選択部111は、候補プロセッサが存在するか否かを判定する(ステップS301)。候補プロセッサが存在しない場合(ステップS301,No)、すなわち起動対象プログラムのタイムスライスの約数となるティック値のプロセッサ100〜103が存在しない場合、プロセッサ選択部111は、各ティック値を比較してティック値が最小のプロセッサ100〜103を選択してプロセッサ選択処理を終了する(ステップS302)。
候補プロセッサが存在する場合(ステップS301,Yes)、プロセッサ選択部111は、候補プロセッサが複数存在するか否かを判定する(ステップS303)。候補プロセッサが複数存在する場合(ステップS303,Yes)、プロセッサ選択部111は、候補プロセッサのティック値を比較して、ティック値が最大の候補プロセッサを選択して処理を終了する(ステップS304)。
候補プロセッサが複数存在しない場合(ステップS303,No)、すなわち候補プロセッサが1つの場合、プロセッサ選択部111は、候補プロセッサを選択して処理を終了する(ステップS305)。
図2に戻って、プロセッサ選択処理によってプロセッサが選択されると、ディスパッチ処理部110は、起動対象プログラムを選択されたプロセッサ100〜103に対応するランキュー記憶領域120〜123に追加登録する(ステップS202)。具体的には、ディスパッチ処理部110は、起動対象プログラムに対応するプログラム情報記憶領域117のポインタをランキュー記憶領域120〜123に追加登録してプログラム起動時のディスパッチ処理を終了する。
つぎに、図4のフローチャートを参照して、ティックタイマ104〜107による定周期割込み発生時のディスパッチ処理の動作について、ティックタイマ104がプロセッサ100に定周期割込みを発生した場合を例に挙げて説明する。
なお、ティックタイマ104は、ティック値記憶領域124に記憶されたティック値が設定されており、ティック値の計測を繰り返してティック値を周期とする定周期割込みをプロセッサ100に通知するものとする。
プロセッサ100は、ティックタイマ104から定周期割込みの通知を受けると、定周期割込みが発生したことをディスパッチ装置109に通知する。
ディスパッチ装置109のタイムスライス管理部112は、ランキュー記憶領域120の先頭に登録されているポインタを読み出して、プロセッサ100が実行中のプログラムに対応するプログラム情報記憶領域117を認識する。タイムスライス管理部112は、プロセッサ100が実行中のプログラムに対応するプログラム情報記憶領域117のタイムスライスカウンタ記憶領域119に記憶されているカウント値を1減算する(ステップS400)。
タイムスライス管理部112は、プロセッサ100が実行中のプログラムに対応するプログラム情報記憶領域117のタイムスライスカウンタ記憶領域119に記憶されているカウント値が「0」か否かを判定する(ステップS401)。カウント値が「0」ではない場合(ステップS401,No)、タイムスライス管理部112は、定周期割込み時のディスパッチ処理を終了する。
カウント値が「0」の場合(ステップS401,Yes)、すなわち実行中のプログラムのタイムスライスが完了した場合、ディスパッチ処理部110は、ランキュー記憶領域120からつぎに実行するプログラムを選択する(ステップS402)。タイムスライス管理部112は、ディスパッチ処理部110が選択したプログラムを実行対象プログラムとしてタイムスライス管理処理を実行し、実行対象プログラムのタイムスライスカウンタの初期値を設定する(ステップS403)。
図5のフローチャートを参照して、タイムスライス管理処理の動作について説明する。タイムスライス管理部112は、実行対象プログラムに対応するプログラム情報記憶領域117のタイムスライス記憶領域118に記憶されているタイムスライスを読み出す。タイムスライス管理部112は、ティック値記憶領域124に記憶されているティック値が読み出したタイムスライスの約数であるか否かを判定する(ステップS500)。
ティック値が読み出したタイムスライスの約数ではない場合(ステップS500,No)、タイムスライス管理部112は、ランキュー記憶領域120に記憶されているすべてのプログラムのプログラム情報記憶領域117のタイムスライス記憶領域118に記憶されているタイムスライスを読み出す。タイムスライス管理部112は、読み出したすべてのタイムスライス(ランキュー記憶領域120に記憶されているすべてのプログラムのタイムスライス)の最大公約数を求め、求めた最大公約数をティック値としてティック値記憶領域124に記憶させる(ステップS501)。
タイムスライス管理部112は、ティック値記憶領域124に記憶させたティック値に基づいてティックタイマ104を設定する(ステップS502)。これにより、ティックタイマ104は、新たなティック値の計測を繰り返してティック値を周期とする周期的割込みを接続されたプロセッサ100に発生させる。
タイムスライス管理部112は、ランキュー記憶領域120に記憶されているすべてのポインタから実行待ちのプログラムに対応するプログラム情報記憶領域117のタイムスライス記憶領域118に記憶されているタイムスライスを読み出し、読み出したタイムスライスをティック値で除算して商を求め、求めた商をタイムスライスカウンタの初期値として当該タイムスライスカウンタ記憶領域119に記憶させてタイムスライス管理処理を終了する(ステップS503)。
一方、ティック値が読み出したタイムスライスの約数の場合(ステップS500,Yes)、タイムスライス管理部112は、読み出したタイムスライスをティック値で除算して商を求め、求めた商をタイムスライスカウンタの初期値として実行対象プログラムに対応するプログラム情報記憶領域117のタイムスライスカウンタ記憶領域119に記憶させてタイムスライス管理処理を終了する(ステップS503)。
図4に戻って、タイムスライス管理処理によって実行対象プログラムのタイムスライスカウンタの初期値が設定された後、ディスパッチ処理部110は、その旨をプロセッサ100に通知し、実行対象プログラムの実行を開始させる(ステップS404)。
具体的には、ディスパッチ処理部110から通知を受けると、プロセッサ100は、ランキュー記憶領域120に登録されたポインタから実行対象プログラムに対応するプログラム情報記憶領域117を認識し、認識したプログラム情報記憶領域117に記憶されている先頭アドレスを読み出す。プロセッサ100は、読み出した先頭アドレスが示すプログラム記憶部128に記憶されている実行対象プログラムを読み出して実行対象プログラムの実行を開始する。
なお、ここでは、ティックタイマ104がプロセッサ100に定周期割込みを発生した場合を例に挙げて定周期割り込み発生時のディスパッチ処理の動作を説明したが、ティックタイマ105〜107が定周期割込みを発生した場合には、プロセッサ100、ランキュー記憶領域120、およびティック値記憶領域124が、プロセッサ101〜103、ランキュー記憶領域121〜123、およびティック値記憶領域125〜127となるだけでその動作は先の図4および図5を参照して説明した定周期割込み時のディスパッチ処理と同様となる。
つぎに、図6のフローチャートを参照して、タイムスライス変更処理の動作について説明する。タイムスライス変更処理は、プログラム群113〜116の各プログラム実行時に、プログラムに基づいてプロセッサ100〜103がディスパッチ装置109にタイムスライス変更要求を通知した際に実行される。
プロセッサ100〜103からタイムスライスを含むタイムスライス変更要求を受けると、ディスパッチ処理部110は、タイムスライス変更要求に含まれるタイムスライスを抽出する。ディスパッチ処理部110は、抽出したタイムスライス値を当該プログラムに対応するプログラム情報記憶領域117のタイムスライス記憶領域118に記憶させる(ステップS600)。
タイムスライス管理部112は、要求されたプログラムを実行対象プログラムとして、先の図5のフローチャートを参照して説明したタイムスライス管理処理を実行して、実行対象プログラムのタイムスライスカウンタの初期値を設定してタイムスライス変更処理を終了する(ステップS601)。
以上説明したように、この実施の形態1においては、ティックタイマ104〜107が発生する定周期割込みの回数をカウントして当該プロセッサ100〜103が実行するプログラムのタイムスライス(実行割当時間)を計測し、タイムスライスの計測が終了すると、計測が終了したタイムスライスのプログラムを実行していたプロセッサ100〜103に対応するランキュー記憶領域120〜123に登録されたすべての実行待ちプログラムのタイムスライスに基づいて当該ティックタイマ104〜107が発生する定周期割込みのティック値(発生周期)を選択し、選択したティック値を当該ティックタイマ104〜107に設定して定周期割込みのティック値を変更するとともに、当該ランキュー記憶領域120〜123に登録されている各実行待ちプログラムのタイムスライスおよび選択したティック値に基づいて定周期割込みの回数のカウント値(タイムスライスカウンタの初期値)を変更するようにしているため、実行するプログラムに最適なティック値によってティックタイマ104〜107に定周期割込みを発生させることが可能となり、不要な割り込みを防止してシステムの処理能力を向上することができる。
また、この実施の形態1においては、ランキュー記憶領域120〜123に登録された実行待ちプログラムの中でつぎにプロセッサ100〜103が実行するプログラムのタイムスライスがティック値の約数の場合には現在のティック値を選択し、ランキュー記憶領域120〜123に登録された実行待ちプログラムの中でつぎにプロセッサ100〜103が実行するプログラムのタイムスライスがティック値の約数ではない場合には当該ランキュー記憶領域120〜123に登録されたすべての実行待ちプログラムのタイムスライスの最大公約数をティック値として選択するようにしているため、実行するプログラムに最適なティック値によってティックタイマ104〜107に定周期割込みを発生させることが可能となり、ティックタイマ104〜107による割込み頻度を抑えることが可能となり、不要な割り込みを防止してシステムの処理能力を向上することができる。
さらに、この実施の形態1においては、プロセッサ100〜103から要求されたプログラムのスライスタイムおよび各ティックタイマ104〜107のティック値に基づいて要求されたプログラムを実行するプロセッサ100〜103を選択するようにしているため、実行するプログラムに最適なティック値によってティックタイマ104〜107に定周期割込みが発生するプロセッサ100〜103を選択することが可能となり、不要な割り込みを防止してシステムの処理能力を向上することができる。
また、この実施の形態1においては、ティックタイマ104〜107のティック値が要求されたプログラムのタイムスライスの約数となるか否かを判定し、約数となるティック値が存在する場合には約数となるティック値のティックタイマ104〜107に対応付けられたプロセッサ100〜103を選択し、約数となるティック値が存在しない場合には、ティック値の中で最も小さい値のティック値のティックタイマ104〜107に対応付けられたプロセッサ100〜103を選択するようにしているため、実行するプログラムに最適なティック値によってティックタイマ104〜107に定周期割込みが発生するプロセッサ100〜103を選択することが可能となり、不要な割り込みを防止してシステムの処理能力を向上することができる。
また、この実施の形態1においては、約数となるティック値が複数存在する場合には、約数となるティック値の値が最も大きいティックタイマ104〜107に対応付けられたプロセッサ100〜103を選択するようにしているため、実行するプログラムに最適なティック値によってティックタイマ104〜107に定周期割込みが発生するプロセッサ100〜103を選択することが可能となり、不要な割り込みを防止してシステムの処理能力を向上することができる。
実施の形態2.
図7を参照してこの発明の実施の形態2を説明する。先の実施の形態1のディスパッチ装置は、タイムスライス変更処理において、タイムスライス変更要求を通知したプロセッサを対象としてタイムスライスの変更を行ったが、この実施の形態2のディスパッチ装置は、要求されたタイムスライスを設定する最適なプロセッサを選択して実行対象プログラムを実行するプロセッサを変更するものである。
この実施の形態2のディスパッチ装置が適用される対称型マルチプロセッサシステムの構成は、先の図1に示した実施の形態1と同じであるのでここではその説明を省略する。また、この実施の形態2のディスパッチ装置109と先の実施の形態2のディスパッチ装置109の動作はほぼ同じであり、相違点は、タイムスライス変更処理のみであるので、ここでは、タイムスライス変更処理の動作のみを説明する。
図7のフローチャートを参照して、この実施の形態2のディスパッチ装置109のタイムスライス変更処理の動作を説明する。ディスパッチ処理部110は、プロセッサ100〜103からタイムスライス変更要求を受けると、タイムスライス変更要求に含まれるタイムスライスを抽出する。ディスパッチ処理部110は、抽出したタイムスライス値を当該プログラムに対応するプログラム情報記憶領域117のタイムスライス記憶領域118に記憶させる(ステップS700)。
プロセッサ選択部111は、タイムスライスの変更を要求されたプログラムを起動対象プログラムとし、先の図3のフローチャートを参照して説明したプロセッサ選択処理を実行して起動対象プログラムを実行するプロセッサ100〜103を選択する(ステップS701)。
ディスパッチ処理部110は、プロセッサ選択部111が選択したプロセッサ100〜103が現在動作中のプロセッサ100〜103(タイムスライス変更要求を通知したプロセッサ)と等しいか否かを判定する(ステップS702)。プロセッサ選択部111が選択したプロセッサ100〜103が現在動作中のプロセッサ100〜103と異なる場合(ステップS702,No)、ディスパッチ処理部110は、選択したプロセッサ100〜103に対応するランキュー記憶領域120〜123に追加登録してタイムスライス変更処理を終了する(ステップS703)。
プロセッサ選択部111が選択したプロセッサ100〜103が現在動作中のプロセッサ100〜103と等しい場合(ステップS702,Yes)、タイムスライス管理部112は、タイムスライスの変更を要求されたプログラムを実行対象プログラムとし、先の図5のフローチャートを参照して説明したタイムスライス管理処理を実行して実行対象プログラムのタイムスライスカウンタの初期値を設定してタイムスライス変更処理を終了する(ステップS704)。
以上説明したように、この実施の形態2においては、プログラムのタイムスライスを変更する際に、変更されたタイムスライスおよび各ティックタイマ104〜107のティック値に基づいてタイムスライスが変更されたプログラムを実行するプロセッサ100〜103を選択するようにしているため、実行するプログラムに最適なティック値によってティックタイマ104〜107に定周期割込みが発生するプロセッサを選択することが可能となり、不要な割り込みを防止してシステムの処理能力を向上することができる。
なお、先の実施の形態1および2のディスパッチ装置109のディスパッチ処理部110、プロセッサ選択部111、およびタイムスライス管理部112によって実現される前述した各機能をソフトウェアによって実現し、対称型マルチプロセッサシステムのオペレーティングシステム内に含めて、オペレーティングシステムのディスパッチ処理を実現するディスパッチプログラムとして提供するようにしてもよい。この場合、ティックタイマ104〜107によって定周期割込みが発生したプロセッサ100〜103が、ディスパッチプログラムを実行するようにすればよい。
以上のように、本発明にかかるディスパッチ装置は、対称型マルチプロセッサシステムに有用であり、特に、プログラムの実行割当時間を定周期割込みの発生回数をカウントして計測してプログラムを実行するシステムに適している。
この発明におけるディスパッチ装置が適用される対称型マルチプロセッサシステムの実施の形態1の構成を示す図である。 実施の形態1のディスパッチ装置のプログラム起動時のディスパッチ処理の動作を説明するためのフローチャートである。 実施の形態1のディスパッチ装置のプロセッサ選択処理の動作について説明するためのフローチャートである。 実施の形態1のディスパッチ装置の定周期割り込み発生時のディスパッチ処理の動作について説明するためのフローチャートである。 実施の形態1のディスパッチ装置のタイムスライス管理処理の動作について説明するためのフローチャートである。 実施の形態1のディスパッチ装置のタイムスライス変更処理の動作について説明するためのフローチャートである。 実施の形態2のディスパッチ装置のタイムスライス変更処理の動作について説明するためのフローチャートである。
符号の説明
100,101,102,103 プロセッサ
104,105,106,107 ティックタイマ
108 記憶部
109 ディスパッチ装置
110 ディスパッチ処理部
111 プロセッサ選択部
112 タイムスライス管理部
113,114,115,116 プログラム群
117 プログラム情報記憶領域
118 タイムスライス記憶領域
119 タイムスライスカウンタ記憶領域
120,121,122,123 ランキュー記憶領域
124,125,126,127 ティック値記憶領域
128 プログラム記憶部

Claims (5)

  1. 複数のプロセッサと、これらのプロセッサに1対1に対応付けられ定周期割込みを発生させるティックタイマと、前記複数のプロセッサに対応付けられ当該プロセッサに割当てた実行待ちプログラムが登録されるランキューとを有する対称型マルチプロセッサシステムに適用され、前記ティックタイマが発生する定周期割込みの回数をカウントして当該プロセッサが実行するプログラムの実行割当時間を計測して時分割で前記複数のプロセッサにプログラムを割当てるディスパッチ装置であって、
    前記実行割当時間の計測が終了すると、計測が終了した実行割当時間のプログラムを実行していたプロセッサに対応するランキューに登録されたすべての実行待ちプログラムの実行割当時間に基づいて当該ティックタイマが発生する定周期割込みの発生周期を選択し、選択した発生周期を当該ティックタイマに設定して定周期割込みの発生周期を変更するとともに、当該ランキューに登録されている各実行待ちプログラムの実行割当時間および選択した発生周期に基づいて定周期割込みの回数のカウント値を変更するタイムスライス管理部、
    を備えることを特徴とするディスパッチ装置。
  2. 前記タイムスライス管理部は、
    発生周期が、前記ランキューに登録された実行待ちプログラムの中でつぎにプロセッサが実行するプログラムの実行割当時間の約数の場合には現在の発生周期を選択し、発生周期が、前記ランキューに登録された実行待ちプログラムの中でつぎにプロセッサが実行するプログラムの実行割当時間の約数ではない場合には前記ランキューに登録されたすべての実行待ちプログラムの実行割当時間の最大公約数を発生周期として選択すること、
    を特徴とする請求項1に記載のディスパッチ装置。
  3. 前記プロセッサから要求されたプログラムの実行割当時間および各ティックタイマの発生周期に基づいて要求されたプログラムを実行するプロセッサを選択するプロセッサ選択部、
    をさらに備え、
    前記プロセッサ選択部によって選択されたプロセッサに対応するランキューに要求されたプログラムを登録すること、
    を特徴とする請求項1または2に記載のディスパッチ装置。
  4. 前記プロセッサ選択部は、
    前記ティックタイマの発生周期が要求されたプログラムの実行割当時間の約数となるか否かを判定し、約数となる発生周期が存在する場合には約数となる発生周期のティックタイマに対応付けられたプロセッサを選択し、約数となる発生周期が存在しない場合には、発生周期の中で最も小さい値の発生周期のティックタイマに対応付けられたプロセッサを選択すること、
    を特徴とする請求項3に記載のディスパッチ装置。
  5. 前記プロセッサ選択部は、
    約数となる発生周期が複数存在する場合には、約数となる発生周期の値が最も大きいティックタイマに対応付けられたプロセッサを選択すること、
    を特徴とする請求項4に記載のディスパッチ装置。
JP2007154460A 2007-06-11 2007-06-11 ディスパッチ装置 Expired - Fee Related JP4829177B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007154460A JP4829177B2 (ja) 2007-06-11 2007-06-11 ディスパッチ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007154460A JP4829177B2 (ja) 2007-06-11 2007-06-11 ディスパッチ装置

Publications (2)

Publication Number Publication Date
JP2008305351A JP2008305351A (ja) 2008-12-18
JP4829177B2 true JP4829177B2 (ja) 2011-12-07

Family

ID=40233983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007154460A Expired - Fee Related JP4829177B2 (ja) 2007-06-11 2007-06-11 ディスパッチ装置

Country Status (1)

Country Link
JP (1) JP4829177B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5376042B2 (ja) * 2010-03-18 2013-12-25 富士通株式会社 マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
JP5591031B2 (ja) * 2010-08-25 2014-09-17 キヤノン株式会社 マルチプロセッサシステム、その制御方法及びプログラム
CN102081555B (zh) * 2011-02-24 2013-02-27 华为技术有限公司 调整时钟中断周期的方法和装置
US8381011B2 (en) 2011-02-24 2013-02-19 Huawei Technologies Co., Ltd. Adjusting period of clock interruption that triggers processing of processes in run queue at plural threshold depth levels
JP5614346B2 (ja) * 2011-03-17 2014-10-29 富士通株式会社 試験方法、試験プログラム、及び情報処理装置
US9187324B2 (en) 2012-08-30 2015-11-17 Element 1 Corp. Hydrogen generation assemblies and hydrogen purification devices
US10983823B2 (en) 2017-01-25 2021-04-20 Mitsubishi Electric Corporation Computer apparatus, task initiation method, and computer readable medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63104145A (ja) * 1986-10-21 1988-05-09 Fanuc Ltd タイマ割込処理方法
JPH04199255A (ja) * 1990-11-26 1992-07-20 Pfu Ltd マルチプロセッサシステムのタイマ制御方式
JPH08328881A (ja) * 1995-05-29 1996-12-13 Nec Corp タスクのスケジューリング方式
JPH09114679A (ja) * 1995-10-17 1997-05-02 Canon Inc タイミング信号発生装置

Also Published As

Publication number Publication date
JP2008305351A (ja) 2008-12-18

Similar Documents

Publication Publication Date Title
JP4829177B2 (ja) ディスパッチ装置
US9400686B2 (en) Process grouping for improved cache and memory affinity
KR101651871B1 (ko) 멀티코어 시스템 상에서 단위 작업을 할당하는 방법 및 그 장치
Kim et al. Constraint-aware VM placement in heterogeneous computing clusters
US10140141B2 (en) Measuring accumulated load values of first level and second level virtual machines for modifying resource allocation
JP2008171293A (ja) 仮想計算機システムのスケジューリング方法
JP6446125B2 (ja) リソースリーク検出の方法、装置及びシステム
KR20130088513A (ko) 멀티코어 시스템의 태스크 분배 방법 및 장치
KR101553650B1 (ko) 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법
JP2015036873A (ja) キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
KR20190082308A (ko) 듀얼 모드 로컬 데이터 저장
JP6201591B2 (ja) 情報処理装置および情報処理装置の制御方法
JP2009223842A (ja) 仮想計算機制御プログラム及び仮想計算機システム
JP5820525B2 (ja) 仮想計算機のスケジュールシステム及びその方法
JP5178778B2 (ja) 仮想計算機およびcpu割り当て方法
WO2014141419A1 (ja) 仮想計算機システムおよびスケジューリング方法
US9223615B2 (en) Apparatus and method for thread progress tracking
US8943503B2 (en) Apparatus and method for thread progress tracking using deterministic progress index
JP2010282550A (ja) 仮想計算機システム及びその物理資源の割当方法
JP6426495B2 (ja) コンピュータシステム、cpuリソース管理方法、および、cpuリソース管理プログラム
JPH0612395A (ja) マルチプロセサシステムにおけるタスク割り付け方法
JP2019082819A (ja) アクセラレータ部の利用に対する課金を支援するシステム及び方法
JP5905412B2 (ja) 仮想計算機システム及びプロセッサ性能測定方法
JP2006059052A (ja) 仮想計算機システム
JP2011209846A (ja) マルチプロセッサシステムとそのタスク割り当て方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100225

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100519

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110824

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110915

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140922

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees