JP4276201B2 - Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム - Google Patents

Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム Download PDF

Info

Publication number
JP4276201B2
JP4276201B2 JP2005100951A JP2005100951A JP4276201B2 JP 4276201 B2 JP4276201 B2 JP 4276201B2 JP 2005100951 A JP2005100951 A JP 2005100951A JP 2005100951 A JP2005100951 A JP 2005100951A JP 4276201 B2 JP4276201 B2 JP 4276201B2
Authority
JP
Japan
Prior art keywords
cpu
contention
state
time
storage unit
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
JP2005100951A
Other languages
English (en)
Other versions
JP2006285350A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005100951A priority Critical patent/JP4276201B2/ja
Priority to US11/362,406 priority patent/US8683474B2/en
Publication of JP2006285350A publication Critical patent/JP2006285350A/ja
Application granted granted Critical
Publication of JP4276201B2 publication Critical patent/JP4276201B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本発明は,SMT(Simultaneous Multi−Threading)プロセッサ用課金技術に関し,さらに詳しくは,SMTプロセッサで実行されるユーザプログラムの計算資源の実質的な使用を示す情報にもとづいた課金処理技術に関する。
SMTプロセッサとは,演算器,キャッシュメモリ,バスユニット等の1組の計算資源(ハードウェアリソース)を,命令フェッチユニット,命令デコードユニット,命令発行ユニットなどで構成される命令シーケンサとして実現される論理プロセッサ間で共有し,各論理プロセッサが複数のプログラムすなわち命令流を同時に実行して,物理的CPU1個あたりのスループットの向上を図るものである。
近年,サーバ分野においてSMTプロセッサの利用が開始されつつあり,SMTプロセッサにおいてユーザプログラムに対する課金システムが要求されている。
プロセッサの命令レベルで並列処理を行わないCPU(以下,非SMTプロセッサと呼ぶ)においては,割り当てられたクォンタムの間プロセスはCPUを占有する。そのため,ユーザプログラムに対する課金を行う場合に,OS(Operating System)がプロセスに割り当てたCPU時間を計測することによって,どのプロセスに対しても平等に課金を行うことができる(例えば,非特許文献1)。
M.J.Bach著 「UNIXカーネルの設計」共立出版 P.228 1991年
しかし,SMTプロセッサでは,複数の論理プロセッサが構築され,各論理プロセッサは別個独立にプロセスが割り当てられ,ハードウェアリソースの利用状況が変化するため,OSによって割り当てられたCPU時間を用いる従来の課金システムを適用することができない。
図10を用いて,SMTプロセッサおよび非SMTプロセッサのプロセス実行の相違を説明する。図10(A)に,非SMTプロセッサにおけるプロセス実行の例を示し,図10(B)に,2つの論理プロセッサが構築されているSMTプロセッサにおけるプロセス実行の例を示す。
図10(A)に示すように,非SMTプロセッサの場合には,1クォンタムに割り当てられるプロセスは1つである。プロセッサは,OSによって割り当てられた順に,プロセスp1,プロセスp2,プロセスp3,・・・の各プロセスの命令を実行する。
これに対して,図10(B)に示すように,1つのSMTプロセッサ内で2つの論理プロセッサ(L0,L1)のうち,2つの論理プロセッサがそれぞれプロセスを実行し,共有リソースを競合して使用する状態(競合状態)と,一方の論理プロセッサのみがプロセスを実行して共有リソースを専用する状態(非競合状態)とが生じる。すなわち,あるクォンタムでは,論理プロセッサ(L0)でプロセスp1が実行中であり,論理プロセッサ(L1)がアイドル状態である場合に,論理プロセッサL0のプロセスp1は,共有リソースを専用する。しかし,次のクォンタムで,論理プロセッサ(L0)でプロセスp2を実行する場合に,論理プロセッサ(L1)でプロセス3が同時に実行されることになると,共有リソースは2つの論理プロセッサによって共用される。
このような,複数の論理プロセッサがプロセスを同時に実行して1つのハードウェアリソースを同時に使用するという競合状態では,各論理プロセッサが使用できるリソースの性能は,競合状態にある論理プロセッサ数に応じて低くなってしまう。図10(B)に示すSMTプロセッサでは,使用できる共有リソースは,最悪の場合で1/2となってしまい,論理プロセッサL0,L1は,非競合状態におけるプロセス実行時に比べて,1クォンタム当たりで半分の命令数しか処理できない。すなわち,プロセスp2が実行される時間は,非競合状態での実行時に比べて,2倍の時間が必要となる。これは,あるプロセスからみて,競合状態ではプロセッサの実質的性能が低下し,プロセス実行時間が延びてしまうことを意味する。そのため,従来のようにOSによって割り当てられるCPU時間をもとに課金すると,プロセスp2およびプロセスp3は不当に高く課金されることになり問題である。
本発明は,SMTプロセッサで実行されるユーザプログラムに対する公平な課金システムの実現を図るものである。本発明の目的は,SMTプロセッサ上で実行されるユーザプログラムが,物理的なプロセッサの性能や共有リソースなどを実質的にどの程度使用してCPUの性能を享受したかにもとづいて課金を行うことができる課金処理技術を提供することである。
前記目的を達成するために,本発明は,SMTプロセッサで実行されるユーザプログラムに対する課金処理を行う装置であって,ユーザプログラムのプロセスの実行の開始から,プロセスを実行する論理プロセッサの性能指標であるCPU情報を記憶するCPU情報記憶部と,論理プロセッサで実行中のプロセスの競合に関する状態を記憶する競合状態記憶部と,前記ユーザプログラムのプロセスが前記論理プロセッサを使用したCPU時間を記憶するCPU使用時間記憶部とを備える。
前記装置は,さらに,論理プロセッサでユーザプログラムのプロセスの実行が開始される時に,前記論理プロセッサへのプロセスの割り当て情報をもとに,他の論理プロセッサでプロセスが実行中である競合状態または前記競合状態ではない非競合状態であるかを判定し,前記判定結果として競合状態または非競合状態のいずれかの状態を競合状態記憶部に設定する競合判定部と,前記ユーザプログラムのプロセスの実行の開始から,前記プロセスを実行する論理プロセッサの性能指標であるCPU情報を収集し,前記競合状態記憶部を参照して,前記競合状態での実行におけるCPU情報である競合CPU情報と,前記非競合状態での実行におけるCPU情報である非競合CPU情報とを区別してCPU情報記憶部に格納するCPU使用情報取得部と,前記ユーザプログラムのプロセスが論理プロセッサを使用した時間を収集し,前記競合状態記憶部を参照して,前記競合状態での実行における前記論理プロセッサの使用時間である競合CPU使用時間と,前記非競合状態での実行における前記論理プロセッサの使用時間である非競合CPU使用時間とを区別してCPU使用時間記憶部に格納するCPU使用時間取得部とを備える。
前記装置は,さらに,前記CPU情報記憶部から読み出した前記競合CPU情報および前記非競合CPU情報の比率を用いて,前記CPU使用時間記憶部から読み出した前記競合CPU使用時間をもとに,前記ユーザプログラムのプロセス実行時の実質的な使用時間であるCPU換算使用時間を算出する使用時間換算部と,前記ユーザプログラムのプロセスの実行が終了した後に,前記CPU使用時間記憶部から読み出した前記非競合CPU使用時間に前記CPU換算使用時間を加算してCPU実効使用時間を算出し,所定の課金単価によって前記CPU実効使用時間から課金額を算出する課金算出部とを備える。
前記装置の競合判定部は,SMTプロセッサ上の論理プロセッサでユーザプログラムのプロセスの実行が開始される時に,前記論理プロセッサへのプロセスの割り当て情報をもとに,競合状態または非競合状態であるかを判定し,その判定結果を競合状態記憶部に設定する。
そして,CPU使用情報取得部は,ユーザプログラムのプロセスが論理プロセッサを使用した時間を収集し,競合状態記憶部を参照して,そのプロセスが競合状態での実行であれば,収集したCPU使用時間を競合CPU使用時間としてCPU使用時間記憶部に格納する。一方,CPU使用情報取得部は,そのプロセスが非競合状態での実行であれば,収集したCPU使用時間を非競合CPU使用時間としてCPU使用時間記憶部に格納する。
そして,使用時間換算部は,前記CPU情報記憶部から読み出した前記競合CPU情報および前記非競合CPU情報の比率を用いて,前記CPU使用時間記憶部から読み出した前記競合CPU使用時間をもとに,前記ユーザプログラムのプロセス実行時の実質的な使用時間であるCPU換算使用時間を算出する。
次に,課金算出部は,ユーザプログラムのプロセスの実行が終了した後に,CPU使用時間記憶部から読み出した非競合CPU使用時間にCPU換算使用時間を加算してCPU実効使用時間を算出し,所定の課金単価によってCPU実効使用時間から課金額を算出する。
これにより,論理プロセッサが競合状態か非競合状態かによって,ユーザプログラムのプロセス実行時間が大きく変化するようなSMTプロセッサにおいても,プロセス実行中の競合状態を考慮した,より公平な課金処理を実現することができる。
特に,競合状態でのCPU使用時間を非競合状態でのCPU使用時間に換算してユーザプログラムの課金を行うことができるため,より公平な課金処理を実現することができる。
例えば,CPI情報(1命令当たりのクロックサイクル数),単位期間当たりの命令実行数などのCPUの性能指標にもとづいて,競合状態でのCPU使用時間を非競合状態でのCPU使用時間に換算してユーザプログラムの課金を行うことができるため,より公平な課金処理を実現することができる。
また,前記装置は,前記CPU使用時間記憶部から読み出した前記CPU使用時間にもとづいて,前記競合状態におけるユーザプログラムの実行と前記非競合状態におけるユーザプログラムの実行とを区別して前記ユーザプログラムの利用課金額を算出するプログラム利用課金算出部を備える。
れにより,SMTプロセッサにおけるアプリケーションプログラムなどの利用料金についても課金を行うことができる。
また,本発明は,上記の課金処理装置の要素および処理手段によって実行される処理を行う処理方法として実施することができる。
また,本発明は,コンピュータにより読み取られ実行されるプログラムとして実施することができる。本発明を実現するプログラムは,コンピュータが読み取り可能な,可搬媒体メモリ,半導体メモリ,ハードディスクなどの適当な記録媒体に格納することができ,これらの記録媒体に記録して提供され,または,通信インタフェースを介して種々の通信網を利用した送受信により提供されるものである。
本発明によれば,論理プロセッサが競合状態か非競合状態かによって,ユーザプログラムのプロセス実行時間が大きく変化するようなSMTプロセッサにおいても,プロセス実行中の競合状態を考慮した,より公平な課金処理を実現することができる。
特に,競合状態でのCPU使用時間を非競合状態でのCPU使用時間に換算した換算使用時間をもとにユーザプログラムの課金を行うことができるため,より公平な課金処理を実現することができる。
また,本発明によれば,例えばCPI情報(1命令当たりのクロックサイクル数),単位期間当たりの命令実行数などのCPUの性能指標を示す情報を用いて競合状態でのCPU使用時間を非競合状態でのCPU使用時間に換算し,この換算使用時間をもとにユーザプログラムの課金を行うことができるため,より公平な課金処理を実現することができる。
また,本発明によれば,SMTプロセッサの共有リソースの状態情報を利用し,プロセス実行時に性能低下を生じるような実質的な競合状態であるかどうかを考慮して,物理的な共有リソースの利用状態を反映させた,より精度の高い課金処理を実現することができる。
また,本発明によれば,SMTプロセッサにおいて,競合状態におけるCPU使用時間から換算されたCPU換算使用時間は,SMTプロセッサの性能向上率の算出に利用することができるため,より精度の高い性能向上率を計算したり,性能向上率を動的に判定したりすることができる。
以下,本発明の実施の形態を説明する。
図1は,本発明の第1の実施例における構成例を示す図である。本発明にかかる課金処理装置1は,コンピュータのOS(Operating System)のプロセススケジューラ100内に組み込まれるプログラムとして実施される。
プロセススケジューラ100は,一般的なTSS(Time Scheduling System)によって,クォンタムごとにどのプロセスを,1つの物理的なSMTプロセッサ130に構築される仮想的な論理プロセッサ(以下,論理CPUと呼ぶ)へ割り当てるかを管理する手段である。クォンタムは,OSが管理する論理CPUへの割り当て時間単位であり,例えば1クォンタム=10msとする。
プロセススケジューラ100は,プロセスに何クォンタムを割り当てたかを管理するプロセス実行時間管理部110,SMTプロセッサ130の論理CPUが共用する計算資源(共有リソース)を管理するハードウェアリソース管理部120などを備える。
ディスパッチャ140は,タスクキュー150に格納される実行待機中のタスクの中からプロセススケジューラ100の判断に従って論理CPUへ投入するタスク(プロセス)を切り替える手段である。
課金処理装置1は,課金情報記憶部11,課金算出情報記憶部13,CPU使用時間取得部15,競合判定部16,CPU情報取得部17,CPU使用時間換算部18,および課金算出部19を備える。
課金情報記憶部11は,非競合CPU使用時間,競合CPU使用時間,課金モード,CPU情報などの課金に使用する情報を,プロセスごとに記憶する手段である。
課金モードは,SMTプロセッサ130の複数の論理CPUがプロセスを実行し共有リソースを共用している競合状態,1つの論理CPUのみがプロセスを実行し共有リソースを専用している非競合状態のいずれかの状態を記録する項目である。
非競合CPU使用時間は,ユーザプログラムのプロセスの実行において,課金モードが非競合状態で論理CPUを使用した時間を記録する項目である。競合CPU使用時間は,ユーザプログラムのプロセスの実行において,課金モードが競合状態で論理CPUを使用した時間を記録する項目である。
CPU情報は,論理CPUの性能指標であるCPU情報を記録する項目である。CPU情報は,課金モードが非競合状態でのCPU情報(非競合CPU情報)と競合状態でのCPU情報(競合CPU情報)とに区別して記録される。
課金算出情報記憶部13は,課金算出部19において使用される課金処理に必要な情報および課金処理の結果である課金算出情報を記憶する手段である。課金算出情報は,プロセスごとに,競合CPU使用時間,非競合CPU使用時間,競合CPU使用時間と非競合CPU使用時間の合計,競合状態でのCPU使用時間の調整処理を行った換算時間,課金対象とする実効的なCPU使用時間である実効時間,実効時間をもとに算出した課金額などである。
CPU使用時間取得部15は,プロセス実行時間管理部110から,ユーザプログラムのプロセスの実行について論理CPUを使用した時間を収集し,課金モードが競合状態である場合の競合CPU使用時間と,課金モードが非競合状態である場合の非競合CPU使用時間とを区別して課金情報記憶部11に格納する処理手段である。
競合判定部16は,論理CPUにおいてユーザプログラムのプロセスの実行が開始される時に,他の論理CPUでプロセスが実行中である状態(競合状態)か否か(非競合状態)を判定し,判定結果(競合状態/非競合状態)を課金情報記憶部11の課金モードに格納する処理手段である。
CPU情報取得部17は,例えば,1命令当たりのクロックサイクル数(CPI),時間当たりの命令実行数などのCPU情報を収集し,競合状態でのCPU情報(競合CPU情報)と非競合状態でのCPU情報(非競合CPU情報)とに区別して課金情報記憶部11のCPU情報に格納する処理手段である。
CPU使用時間換算部18は,ユーザプログラムが終了した後に,課金情報記憶部11から競合CPU使用時間を読み出し,所定の重み付け値を用いて,競合状態での実質的なCPU使用時間であるCPU換算使用時間を算出する手段である。所定の重み付け値として,例えば,競合状態においてプロセス実行が可能な論理CPU数を用いる。
また,CPU使用時間換算部18は,課金情報記憶部11から,CPU情報(競合CPU情報と非競合CPU情報)および競合CPU使用時間とを読み出し,競合CPU情報と非競合CPU情報との比率を用いて,競合CPU使用時間からCPU換算使用時間を算出する。また,CPU使用時間換算部18は,課金情報記憶部11から読み出した情報および処理結果を課金算出情報記憶部13へ格納する。
課金算出部19は,ユーザプログラムが終了した後に,課金算出情報記憶部13の非競合CPU使用時間と競合CPU使用時間から換算されたCPU換算使用時間とを合計した実効時間をもとに,所定の課金単位により課金額を算出し,課金額を課金算出情報記憶部13へ格納する手段である。
以下に,第1の実施例における本発明の処理例を説明する。本例において,図1に示すSMTプロセッサ130の2つの論理CPUを,論理CPU_L0および論理CPU_L1とする。
図2に,論理CPU_L0,CPU_L1のスレッドでのプロセスの実行と競合状態の例を示す。論理CPU_L0および論理CPU_L1では,所定のクォンタムでプロセスが割り当てられ実行されていく。図2中,斜線で示す部分は,プロセスが実行されているクォンタムを,白色の部分は,プロセスが実行されていないアイドル中のクォンタムを示す。論理CPU_L0のスレッドは,ずっとプロセスが実行中である。一方,論理CPU_L1のスレッドは,第1番目のクォンタムではアイドル中,第2および3番目のクォンタムでプロセス実行中,第4番目のクォンタムでは再びアイドル中であるように,アイドル状態とプロセス実行中とが繰り返されている。SMTプロセッサ130の2つの論理CPUでは競合状態と非競合状態が繰り返されていることになる。
図3に,第1の実施例における本発明の処理の流れを示す。
課金処理装置1の競合判定部16は,ディスパッチャ140のディスパッチ時またはタイマ割り込み処理時などの所定の契機に,あるプロセスが実行可能状態となったことを検出すると(ステップS1),現在プロセスを実行していない論理CPU(空きCPU)があるかどうかを調べる(ステップS2)。さらに,空きCPU(ここでは論理CPU_L1)があれば(ステップS2のYES),プロセススケジューラ100を介して,他の論理CPU(ここでは論理CPU_L0)でプロセスが実行中であるか否かを調べる(ステップS3)。他の論理CPU_L0でプロセスが実行中であれば(ステップS3のYES),競合判定部16は,課金情報記憶部11の当該プロセスの課金情報の課金モードを競合状態に設定する(ステップS4)。
そして,CPU使用時間取得部15はプロセス実行時間管理部110からのCPU使用時間(クロックサイクル数)の収集を開始し,SMTプロセッサ130の論理CPU_L1がプロセスを実行する(ステップS5)。ここでCPU使用時間取得部15が収集するCPU使用時間は,課金情報記憶部11の競合CPU使用時間に格納される。
一方,他の論理CPU_L0でプロセスが実行中でなければ(ステップS3のNO),CPU使用時間取得部15は,プロセス実行時間管理部110からのCPU使用時間(クロックサイクル数)の収集を開始し,論理CPU_L1がプロセスを実行する(ステップS5)。ここでCPU使用時間取得部15が収集するCPU使用時間は,課金情報記憶部11の非競合CPU使用時間に格納される。
さらに,CPU情報取得部17は,ハードウェアリソース管理部120から,例えばCPIなどのCPU情報を収集する(ステップS6)。ここでCPU情報取得部17が収集するCPU情報は,課金情報記憶部11の課金モードの設定によって,競合CPU情報または非競合CPU情報として課金情報記憶部11のCPU情報に格納される。
なお,現在プロセスを実行していない論理CPUを調べて,空きCPUがなければ(ステップS2のNO),ディスパッチャ140がそのプロセス(タスク)をタスクキュー150に追加するので,課金処理装置1は処理を終了する(ステップS7)。
その後,競合判定部16は,論理CPU_L1で実行されていたプロセスが休止状態となったことを検出すると(ステップS10),プロセススケジューラ100を介して,他の論理CPU_L0でプロセスが実行中であるか否かを調べる(ステップS11)。他の論理CPU_L0でプロセスが実行中であれば(ステップS11のYES),その他の論理CPU_L0で実行中のプロセスの課金情報の課金モードに非競合状態を設定する(ステップS12)。
そして,CPU使用時間取得部15は,プロセス実行時間管理部110からCPU使用時間(クロックサイクル数)の収集を停止し,CPU情報取得部17は,ハードウェアリソース管理部120からCPU情報の収集を停止し,論理CPU_L1で実行されていたプロセスが停止される(ステップS13)。
一方,他の論理CPU_L0でプロセスが実行中でなければ(ステップS11のNO),CPU使用時間取得部15は,プロセス実行時間管理部110からのCPU使用時間(クロックサイクル数)の収集を停止し,CPU情報取得部17は,ハードウェアリソース管理部120からのCPU情報の収集を停止する。そして,SMTプロセッサ130の論理CPU_L1で実行されていたプロセスが停止される(ステップS13)。
その後,ユーザプログラムの実行が終了すると,以下の課金処理が行われる。
1つの課金処理として,CPU情報を用いた課金処理を説明する。
CPU使用時間換算部18は,課金情報記憶部11から当該プロセスの課金情報を抽出する。課金情報として,非競合CPU使用時間,競合CPU使用時間,CPU情報(競合CPU情報,非競合CPU情報)を取得する。ここで,CPU情報としてCPIが格納されているとする。
抽出した課金情報は以下のとおりとする:
競合CPU使用時間=10[秒]
非競合CPU使用時間=20[秒]
競合CPU情報(CPI)=2.6
非競合CPU情報(CPI)=1.1
CPU使用時間換算部18は,以下のようにしてCPU換算使用時間を算出する場合に用いる重み付け値を決定する:
重み付け値=非競合CPU情報/競合CPU情報=1.1/2.6=0.42
さらに,決定した重み付け値を用いて,競合CPU使用時間からCPU換算使用時間を算出する:
CPU換算使用時間=(競合CPU使用時間)×(重み付け値)
=10×0.42=4.2[秒]
その後,CPU使用時間換算部18は,課金情報記憶部11から読み出した課金情報,算出したCPU換算使用時間を課金算出情報へ設定し,課金算出情報記憶部13へ格納する。
図4に,課金算出情報の例をテーブル形式で示す。課金算出情報は,プロセスごとに,競合CPU使用時間(図4中で「競合あり」の「CPU時間」と示す),競合CPU情報(同「競合あり」の「CPI」と示す),非競合CPU使用時間(同「競合なし」の「CPU時間」と示す),非競合CPU情報(同「競合なし」の「CPI」と示す),CPU換算使用時間(同「換算時間」と示す),競合CPU使用時間と非競合CPU使用時間の合計時間(同「合計」と示す),課金対象となる実効時間,算出された課金額などの項目で構成される。なお,合計,実効時間,課金額の項目は,課金算出部19によって処理される。
課金算出部19は,課金算出情報のCPU換算使用時間と非競合CPU使用時間とを合算して実効時間を算出し,実効時間に所定の課金単位を乗算して課金額を算出する。ここでは課金単位を10円/秒として,プロセスp1を例にすると,以下のとおりとなる:
実効時間=(CPU換算使用時間)+(非競合CPU使用時間)
=4.2+20=24.2[秒]
課金額=(実効時間)×(課金単位)=24.2×10=242[円]
課金算出部19は,算出した実効時間,課金額などを課金算出情報記憶部13の課金算出情報に格納する。
これにより,競合状態において実行されたプロセスに対しても,論理CPUの競合状態をより正確に反映させ,競合状態におけるCPUの性能低下を調整した公平な課金処理を行うことができる。
なお,詳細な実効時間を算出するために,課金情報記憶部11内にプロセス間での組み合わせ数分だけのCPU情報(CPI)テーブルを備えておき,それぞれの比率を用いてユーザ換算使用時間を算出するようにしてもよい。
次に,別の課金処理として,所定の重み付け値を用いた課金処理を説明する。
CPU使用時間換算部18は,課金情報記憶部11から当該プロセスの課金情報を抽出する。課金情報として,競合CPU使用時間,非競合CPU使用時間を取得する。
抽出した課金情報は以下のとおりとする:
競合CPU使用時間=10[秒]
非競合CPU使用時間=20[秒]
CPU使用時間換算部18は,CPU換算使用時間を算出する場合の重み付け値として,予め設定された,競合状態においてプロセスを同時実行しうる論理プロセッサ数を用いる。ここで,SMTプロセッサ130に構築される論理CPUは2つであるので,
重み付け値=1/(論理CPU数)=1/2=0.5
とする。
そして,競合CPU使用時間からCPU換算使用時間を算出する:
CPU換算使用時間=(競合CPU使用時間)×(重み付け値)
=10×0.5=5[秒]
その後,CPU使用時間換算部18は,課金情報記憶部11から読み出した課金情報,算出したCPU換算使用時間を課金算出情報記憶部13の課金算出情報へ格納する。
図5に,課金算出情報の例をテーブル形式で示す。課金算出情報は,プロセスごとに,競合CPU使用時間(図4中で「競合あり」と示す),非競合CPU使用時間(同「競合なし」と示す),CPU換算使用時間(同「換算時間」と示す),競合CPU使用時間と非競合CPU使用時間の合計時間(同「合計」と示す),課金対象となる実効時間,算出された課金額などの項目で構成される。
課金算出部19は,課金算出情報のCPU換算使用時間と非競合CPU使用時間とを合算して実効時間を算出し,実効時間に所定の課金単位を乗算して課金額を算出する。プロセスp1を例にすると,以下のとおりとなる:
実効時間=(CPU換算使用時間)+(非競合CPU使用時間)
=5+20=25[秒]
課金額=(実効時間)×(課金単位)=25×10=250[円]
課金算出部19は,算出した実効時間,課金額などを課金算出情報記憶部13の課金算出情報に格納する。
この場合には,競合状態と非競合状態でのCPU使用時間を区別して収集するだけでよく,図1に示すCPU情報取得部17および図3の処理フローにおけるステップS6の処理は不要である。これにより,負荷の少ない処理で,競合状態において実行されたプロセスに対しても公平な課金処理を行うことができる。
次に,第2の実施例として,共有リソースでの状態情報を使用して課金する処理を説明する。
図6は,本発明の第2の実施例における構成例を示す図である。本発明にかかる課金処理装置1は,第1の実施例の場合と同様に,コンピュータのOSのプロセススケジューラ100内に組み込まれるプログラムとして実施される。
課金処理装置1は,課金情報記憶部21,課金算出情報記憶部23,CPU使用時間取得部25,リソース状態情報取得部27,および課金算出部29を備える。
課金情報記憶部21は,プロセスごとのCPU使用時間,リソース状態情報などの課金に使用する情報などの課金情報を記憶する手段である。
課金情報のCPU使用時間は,ユーザプログラムのプロセスの実行において論理CPUを使用した時間を記録する項目である。リソース状態情報は,各プロセスの実行時のSMTプロセッサ130の共有リソースの利用状態を示す情報であり,例えば,共有リソースの各演算/処理ユニットにおけるプロセスごとの命令待ち時間などである。
課金算出情報記憶部23は,課金算出部29において使用される課金処理に必要な情報および課金処理の結果である課金算出情報を記憶する手段である。
課金算出情報は,プロセスごとに,CPU使用時間,競合状態での実行と判定されたプロセスのCPU使用時間,競合状態でのCPU使用時間の調整処理を行った換算時間,課金対象とする実効的なCPU使用時間である実効時間,実効時間をもとに算出した課金額などである。
CPU使用時間取得部25は,プロセス実行時間管理部110から,ユーザプログラムのプロセスの実行について論理CPUを使用した時間を収集し,課金情報記憶部21に格納する処理手段である。
リソース状態情報取得部27は,ハードウェアリソース管理部120から,SMTプロセッサ130の共有リソースの各ユニットにおけるプロセスごとの命令の待ち時間(クロックサイクル数)を収集し,課金情報記憶部21の課金情報に設定する処理手段である。
課金算出部29は,課金情報記憶部21から課金情報のリソース状態情報を読み出し,ユーザプログラムの各プロセスが,他の論理CPUがプロセスを実行中である状態(競合状態)か否か(非競合状態)を判定し,課金情報記憶部21から読み出したCPU使用時間を競合状態におけるCPU使用時間と非競合状態におけるCPU使用時間とに区別し,それぞれのCPU使用時間をもとに課金額を算出する処理手段である。
図7に,リソース状態情報取得部27の共有リソースのリソース状態情報の収集例を示す。リソース状態情報として,例えば命令待ち時間(クロックサイクル数)を使用する場合は,演算ユニット(ALU),浮動小数点演算ユニット(FPU),ロード/ストアユニット(LD/ST)の各ユニットの命令スケジューリングユニット(SU)での命令待ち時間を利用する。2つの論理CPUの命令デコーダから,それぞれの命令が必要なユニットに投入される場合に,いったんSUに蓄えられてから命令が発行される。2つの論理CPUの命令が同じユニットへ投入されていれば,実際に発行されるまでのSUでの命令待ち時間が競合状態の目安を示す情報となる。また,システムバスに対しても同様に,バスリクエストキューでの命令の待ち時間を収集する。
リソース状態情報取得部27は,図7にリソース状態情報テーブルとして示すような情報を課金情報記憶部21のリソース状態情報に格納する。
課金算出部29は,課金情報記憶部21の課金情報のCPU使用時間,およびリソース状態情報を抽出する。ここで,リソース状態情報は,図7のリソース状態情報テーブルの内容とする。
抽出した課金情報は以下のとおりとする:
CPU使用時間=24.0[秒]
SMTプロセッサ130の共有リソースのALUやFPUなどのユニットでは競合状態と非競合状態とを明確に区別することができない。そこで,課金算出部29は,リソース状態情報の各プロセスでの命令待ち時間が所定時間を超える場合に,当該プロセスの命令が競合によって待機させられたとみなし,プロセスの実行時のCPU使用時間を,競合状態におけるCPU使用時間であると判定する。すなわち,課金情報のCPU使用時間から,競合状態におけるCPU使用時間と判定した時間以外の時間を非競合状態におけるCPU使用時間とする。
ここで,ALUでの命令待ち時間から,競合状態のCPU使用時間とされた時間を「0.5秒」とし,FPUでの命令待ち時間から,競合状態のCPU使用時間とされた時間を「3.5秒」とする。
課金算出部29は,競合状態および非競合状態におけるCPU使用時間を以下のように特定する:
競合状態のCPU使用時間=0.5+3.5=4[秒]
非競合状態のCPU使用時間=24.0−4=20.0[秒]
そして,競合状態のCPU使用時間について,所定の重み付け値を用いてCPU換算使用時間を算出する。ここで,重み付け値は,予め設定された,競合状態においてプロセスを同時実行しうる論理プロセッサ数を用いる:
重み付け値=1/(論理CPU数)=1/2=0.5
そして,競合状態のCPU使用時間からCPU換算使用時間を算出する:
CPU換算使用時間=(競合CPU使用時間)×(重み付け値)
=4×0.5=2[秒]
さらに,CPU換算使用時間と非競合のCPU使用時間とを合算して実効時間を算出し,実効時間に所定の課金単位を乗算して課金額を算出する:
実効時間=(CPU換算使用時間)+(非競合CPU使用時間)
=2+20=22[秒]
課金額=(実効時間)×(課金単位)=22×10=220[円]
課金算出部29は,課金情報,算出したCPU換算使用時間,実効時間,課金額などを課金算出情報記憶部23の課金算出情報へ格納する。
図8に,課金算出情報の例をテーブル形式で示す。
課金算出情報は,プロセスごとに,共有リソースの各演算ユニットのリソース状態情報である命令待ち時間を利用して算出した競合状態でのCPU使用時間(図8中,例えば,「ALU競合あり」の「CPU時間」と示す),課金情報のCPU使用情報から,競合状態でのCPU使用時間を差し引いた非競合状態におけるCPU使用時間(同「競合なし」の「CPU時間」と示す),課金情報のCPU使用時間(同「合計」と示す),実効時間,課金額などからなる。
これにより,共有リソースの各ユニットの利用状態を反映して,より公平な課金を行うことができる。
次に,第3の実施例として,各ユーザプログラムの処理が,物理的CPUの性能をどの程度の割合で使用していたかという情報を用いて課金する処理を説明する。
第3の実施例は,図1に示す構成の課金処理装置1において実施できる。本例では,SMTプロセッサ130で2つの論理CPUでプロセスが同時に実行される場合を想定し,その実行内容が,図4に示す課金算出情報のプロセスp1およびp2のものとする。また,CPU情報取得部17は,CPU情報としてCPIを収集し,課金情報記憶部11に格納するものとする。
CPU使用時間換算部18は,課金情報記憶部11の課金情報を抽出し,プロセスp1およびp2のそれぞれのCPU使用時間が,これらのプロセスの実行中のCPU使用時間に対して,どの程度の割合であったかを算出する:
プロセスp1のCPU使用時間の比率=CPU使用時間全体の20%
プロセスp2のCPU使用時間の比率=CPU使用時間全体の30%
2つのプロセスが競合しているCPU使用時間=CPU使用時間全体の15%
CPU使用時間換算部18は,CPU使用時間の全体(クロックサイクル数)をCとすると,プロセスp1およびp2の実行時間,2つのプロセスが競合状態である場合の実行時間は次のようになる:
プロセスp1のCPU使用時間=C×0.2
プロセスp1の非競合状態でのCPU使用時間=C×(0.2−0.15)
プロセスp2のCPU使用時間=C×0.3
プロセスp2の非競合状態でのCPU使用時間=C×(0.3−0.15)
プロセスp1とプロセスp2の競合状態でのCPU使用時間=C×0.15
さらに,プロセスp1およびp2の実行命令数を算出する:
プロセスp1の実行命令数=(C×0.15)×(1/競合CPI)
+(C×0.2−0.15)×(1/非競合CPI),
プロセスp2の実行命令数=(C×0.15)×(1/競合CPI)
+(C×0.3−0.15)×(1/非競合CPI)
ここで,全CPU使用時間でプロセスp1とp2とが実行されていたと仮定すると,
プロセスp1のCPU使用時間=C×(1/競合CPI)=0.38×C
プロセスp2のCPU使用時間=C×(1/競合CPI)=0.32×C
となる。すなわち,プロセスが常に実行されていた場合には,プロセスp1は3.72倍の命令数を,およびp2は,3.58倍の命令数を実行できる計算となる。
そして,この値から,プロセスp1およびp2の実質的なCPUの使用率を算出する:
プロセスp1の実質的CPU使用率=(0.10/0.38)×100=26.3%
プロセスp2の実質的CPU使用率=(0.09/0.32)×100=28.1%
課金算出部19は,CPU使用時間換算部18が算出したプロセスp1およびp2の実質的CPU使用率を用いて,予め定めておいたCPU使用率当たりの課金単価をもとに課金額を算出する。これにより,より精度の高いCPU使用率を用いて課金を行うことができる。
なお,CPU使用時間換算部18によって算出されるプロセスp1およびp2の実質的CPU使用率は,SMTプロセッサの性能予測処理にも使用することができる。例えば,プロセッサの性能予測処理において,従来のような単純な使用率の測定法による場合は,プロセスp1のCPU使用時間の比率は20%となることから,性能予測は5倍と算出される。しかし,実質的なCPU使用時間の比率は,26.3%であり,性能予測は5倍ではなく,約3.8倍にしかならないことがわかる。精度の高い実質的CPU使用率によるCPU性能予測処理は,例えば,計測した実質的CPU使用率が一定の値以上であれば,ユーザにCPUの負荷状態についてより正確に警告を行うシステムなどを構成することも可能となる。
さらに,上述した種々の実施例において説明した課金処理装置1は,算出した実効使用時間を用いてSMTプロセッサ130で実行されるユーザプログラムの利用課金額を算出するプログラム利用課金算出部を備えることができる。
プログラム利用課金算出部は,CPU使用時間記憶部から読み出した前記CPU使用時間にもとづいて,前記競合状態におけるユーザプログラムの実行と前記非競合状態におけるユーザプログラムの実行とを区別して前記ユーザプログラムの利用課金額を算出する。これにより,SMTプロセッサにおけるアプリケーションプログラムなどの利用料金についても課金を行うことができる。
以上,本発明をその実施の形態により説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
例えば,第1の実施例などにおいて,CPU使用時間取得部15は,プロセス実行時間管理部110から,各プロセスのCPUごとのユーザ使用時間(CPU使用時間)を収集し,課金モードの設定に従って,収集したCPU使用時間を,課金情報記憶部11の競合CPU使用時間または非競合CPU使用時間のいずれかに格納するものとして説明した。しかし,課金情報記憶部11にユーザプログラムのプロセスで使用した全CPU使用時間を非競合CPU使用時間の代りに設けて,プロセスごとの全CPU使用時間および非競合CPU使用時間とを収集し格納するようにしてもよい。図9(A)に,この場合のCPU使用時間取得部15の例を示す。また,図9(B)に課金情報記憶部11の課金情報の例を示す。課金情報は,プロセスごとに,全CPU使用時間としてCPUごとのユーザ使用時間,非競合CPU使用時間としてCPUごとの競合していたユーザ使用時間,課金モードを格納する。
本発明の形態および実施例の特徴は,以下のとおりである。
(付記1) SMTプロセッサで実行されるユーザプログラムに対する課金処理を行う装置であって,
論理プロセッサでユーザプログラムのプロセスの実行が開始される時に,他の論理プロセッサでプロセスが実行中である競合状態または前記競合状態ではない非競合状態であるかを判定し,前記判定結果として競合状態または非競合状態のいずれかの状態を競合状態記憶部に設定する競合判定部と,
前記ユーザプログラムのプロセスが論理プロセッサを使用した時間を収集し,前記競合状態記憶部を参照して,前記競合状態での実行における競合CPU使用時間と,前記非競合状態での実行における非競合CPU使用時間とを区別してCPU使用時間記憶部に格納するCPU使用時間取得部と,
前記ユーザプログラムのプロセスの実行が終了した後に,前記CPU使用時間記憶部から読み出した前記競合CPU使用時間および前記非競合CPU使用時間にもとづいて,前記競合状態におけるユーザプログラムの実行と前記非競合状態におけるユーザプログラムの実行とを区別して課金額を算出する課金算出部とを備える
ことを特徴とするSMTプロセッサ用課金処理装置。
(付記2) 付記1記載のSMTプロセッサ用課金処理装置において,
所定の重み付け値を用いて,前記競合CPU使用時間をもとに,前記ユーザプログラムのプロセス実行時の実質的な使用時間であるCPU換算使用時間を算出する使用時間換算部を備えるとともに,
前記課金算出部は,前記CPU換算使用時間および前記CPU使用時間記憶部から読み出した前記非競合CPU使用時間をもとにCPU実効使用時間を算出し,所定の課金単価によって前記CPU実効使用時間から課金額を算出する
ことを特徴とするSMTプロセッサ用課金処理装置。
(付記3) 付記2記載のSMTプロセッサ用課金処理装置において,
前記所定の重み付け値として,競合状態においてプロセスを同時に実行した論理プロセッサ数を用いる
ことを特徴とするSMTプロセッサ用課金処理装置。
(付記4) 付記2記載のSMTプロセッサ用課金処理装置において,
前記ユーザプログラムのプロセスの実行の開始から,前記プロセスを実行する論理プロセッサの性能指標であるCPU情報を収集し,前記競合状態記憶部を参照して,前記競合状態での実行における競合CPU情報と前記非競合状態での実行における非競合CPU情報とを区別してCPU情報記憶部に格納するCPU使用情報取得部を備えるとともに,
前記使用時間換算部は,前記CPU情報記憶部から読み出した前記競合CPU情報および前記非競合CPU情報の比率を用いて,前記CPU使用時間記憶部から読み出した前記競合CPU使用時間をもとにCPU換算使用時間を算出する
ことを特徴とするSMTプロセッサ用課金処理装置。
(付記5) 付記4記載のSMTプロセッサ用課金処理装置において,
前記CPU情報取得部は,前記CPU情報として,1命令当たりのクロックサイクル数またはクォンタム当たりの命令実行数のいずれかの情報を収集する
ことを特徴とするSMTプロセッサ用課金処理装置。
(付記6)SMTプロセッサで実行されるユーザプログラムに対する課金処理を行う装置であって,
論理プロセッサでユーザプログラムの各プロセスを実行中のSMTプロセッサのハードウェアリソースの利用状態に関するリソース状態情報を収集し,リソース状態情報記憶部に格納するリソース状態情報取得部と,
前記ユーザプログラムのプロセスが前記論理プロセッサを使用したCPU使用時間を収集しCPU使用時間記憶部に格納するCPU使用時間取得部と,
前記ユーザプログラムのプロセスの実行が終了した後に,前記リソース状態情報取得部から読み出した前記各プロセスのリソース状態情報を用いて,前記ユーザプログラムの各プロセスが,他の論理プロセッサでプロセスが実行中である競合状態または前記競合状態ではない非競合状態であるかを判定し,前記CPU使用時間記憶部から読み出した前記CPU使用時間を前記競合状態におけるCPU使用時間と前記非競合状態におけるCPU使用時間とに区別し,前記競合状態および前記非競合状態のCPU使用時間を区別して課金額を算出する課金算出部とを備える
ことを特徴とするSMTプロセッサ用課金処理装置。
(付記7) 付記6記載のSMTプロセッサ用課金処理装置において,
前記リソース状態情報取得部は,論理プロセッサでユーザプログラムのプロセスが実行される場合に,前記プロセスの命令が,前記ハードウェアリソースの少なくとも演算ユニットまたは処理ユニットのいずれかのユニットに対して投入されるまでの待ち時間を収集し,前記待ち時間をリソース状態情報として前記リソース状態情報記憶部に格納し,
前記課金算出部は,前記リソース状態情報記憶部から読み出した前記各プロセスの待ち時間が,所定時間以上である場合に前記プロセスの実行が競合状態であると判定し,所定の重み付け値を用いて前記競合状態のCPU使用時間をもとに,前記ユーザプログラムのプロセス実行時の実質的な使用時間であるCPU換算使用時間を算出する
ことを特徴とするSMTプロセッサ用課金処理装置。
(付記8) 付記6または付記7のいずれか一項に記載のSMTプロセッサ用課金処理装置において,
前記課金算出部は,所定の重み付け値を用いて,前記競合状態のCPU使用時間をもとにCPU換算使用時間を算出し,前記CPU換算使用時間および前記非競合状態のCPU使用時間をもとに,CPU実効使用時間を算出し,所定の課金単価によって前記CPU実効使用時間から課金額を算出する
ことを特徴とするSMTプロセッサ用課金処理装置。
(付記9) 付記2記載のSMTプロセッサ用課金処理装置において,
前記所定の重み付け値として,競合状態においてプロセスを同時に実行した論理プロセッサ数を用いる
ことを特徴とするSMTプロセッサ用課金処理装置。
(付記10) 付記1または付記6のいずれか一項に記載のSMTプロセッサ用課金処理装置において,
前記CPU使用時間記憶部から読み出した前記CPU使用時間にもとづいて,前記競合状態におけるユーザプログラムの実行と前記非競合状態におけるユーザプログラムの実行とを区別して前記ユーザプログラムの利用課金額を算出するプログラム利用課金算出部を備える
ことを特徴とするSMTプロセッサ用課金処理装置。
(付記11) コンピュータのSMTプロセッサで実行されるユーザプログラムに対する課金処理を行うための処理方法であって,
前記コンピュータが,
論理プロセッサでユーザプログラムのプロセスの実行が開始される時に,他の論理プロセッサでプロセスが実行中である競合状態または前記競合状態ではない非競合状態であるかを判定し,前記判定結果として競合状態または非競合状態のいずれかの状態を競合状態記憶部に設定する競合判定処理過程と,
前記ユーザプログラムのプロセスが論理プロセッサを使用した時間を収集し,前記競合状態記憶部を参照して,前記競合状態での実行における競合CPU使用時間と前記非競合状態での実行における非競合CPU使用時間とを区別してCPU使用時間記憶部に格納するCPU使用時間取得処理過程と,
前記ユーザプログラムのプロセスの実行が終了した後に,前記CPU使用時間記憶部から読み出した前記競合CPU使用時間および前記非競合CPU使用時間にもとづいて,前記競合状態におけるユーザプログラムの実行と前記非競合状態におけるユーザプログラムの実行とを区別して課金額を算出する課金算出処理過程とを有する
ことを特徴とするSMTプロセッサ用課金処理方法。
(付記12) コンピュータのSMTプロセッサで実行されるユーザプログラムに対する課金処理を行うための処理方法であって,
前記コンピュータが,
論理プロセッサでユーザプログラムの各プロセスを実行中のSMTプロセッサのハードウェアリソースの利用状態に関するリソース状態情報を収集し,リソース状態情報記憶部に格納するリソース状態情報取得処理過程と,
前記ユーザプログラムのプロセスが前記論理プロセッサを使用したCPU使用時間を収集しCPU使用時間記憶部に格納するCPU使用時間取得処理過程と,
前記ユーザプログラムのプロセスの実行が終了した後に,前記リソース状態情報取得部から読み出した前記各プロセスのリソース状態情報を用いて,前記ユーザプログラムの各プロセスが他の論理プロセッサでプロセスが実行中である競合状態または前記競合状態ではない非競合状態であるかを判定し,前記CPU使用時間記憶部から読み出した前記CPU使用時間を前記競合状態におけるCPU使用時間と前記非競合状態におけるCPU使用時間とに区別し,前記競合状態および前記非競合状態のCPU使用時間を区別して課金額を算出する課金算出処理過程とを有する
ことを特徴とするSMTプロセッサ用課金処理方法。
(付記13) コンピュータのSMTプロセッサで実行されるユーザプログラムに対する課金処理を行うための処理方法をコンピュータに実行させるためのプログラムであって,
前記コンピュータに,
論理プロセッサでユーザプログラムのプロセスの実行が開始される時に,他の論理プロセッサでプロセスが実行中である競合状態または前記競合状態ではない非競合状態であるかを判定し,前記判定結果として競合状態または非競合状態のいずれかの状態を競合状態記憶部に設定する競合判定処理過程と,
前記ユーザプログラムのプロセスが論理プロセッサを使用した時間を収集し,前記競合状態記憶部を参照して,前記競合状態での実行における競合CPU使用時間と前記非競合状態での実行における非競合CPU使用時間とを区別してCPU使用時間記憶部に格納するCPU使用時間取得処理過程と,
前記ユーザプログラムのプロセスの実行が終了した後に,前記CPU使用時間記憶部から読み出した前記競合CPU使用時間および前記非競合CPU使用時間にもとづいて,前記競合状態におけるユーザプログラムの実行と前記非競合状態におけるユーザプログラムの実行とを区別して課金額を算出する課金算出処理過程とを実行させるための
SMTプロセッサ用課金処理プログラム。
(付記14) コンピュータのSMTプロセッサで実行されるユーザプログラムに対する課金処理を行うための処理方法をコンピュータに実行させるためのプログラムであって,
前記コンピュータに,
論理プロセッサでユーザプログラムの各プロセスを実行中のSMTプロセッサのハードウェアリソースの利用状態に関するリソース状態情報を収集し,リソース状態情報記憶部に格納するリソース状態情報取得処理過程と,
前記ユーザプログラムのプロセスが前記論理プロセッサを使用したCPU使用時間を収集しCPU使用時間記憶部に格納するCPU使用時間取得処理過程と,
前記ユーザプログラムのプロセスの実行が終了した後に,前記リソース状態情報取得部から読み出した前記各プロセスのリソース状態情報を用いて,前記ユーザプログラムの各プロセスが他の論理プロセッサでプロセスが実行中である競合状態または前記競合状態ではない非競合状態であるかを判定し,前記CPU使用時間記憶部から読み出した前記CPU使用時間を前記競合状態におけるCPU使用時間と前記非競合状態におけるCPU使用時間とに区別し,前記競合状態および前記非競合状態のCPU使用時間を区別して課金額を算出する課金算出処理過程とを実行させるための
SMTプロセッサ用課金処理プログラム。
本発明の第1の実施例における構成例を示す図である。 論理CPU_L0,CPU_L1でのプロセスの実行と競合状態の例を示す図である。 第1の実施例における本発明の処理の流れを示す図である。 第1の実施例におけるCPU情報を含む課金算出情報の例をテーブル形式で示す図である。 第1の実施例における課金算出情報の例をテーブル形式で示す図である。 本発明の第2の実施例における構成例を示す図である。 リソース状態情報取得部の共有リソースのリソース状態情報の収集例を示す図である。 第2の実施例における課金算出情報の例をテーブル形式で示す図である。 本発明の他の実施例におけるCPU使用時間取得部および課金情報記憶部の課金情報の例を示す図である。 SMTプロセッサおよび非SMTプロセッサのプロセス実行の相違を説明するための図である。
符号の説明
1 課金処理装置
11 課金情報記憶部
13 課金算出情報記憶部
15 CPU使用時間取得部
16 競合判定部
17 CPU情報取得部
18 CPU使用時間換算部
19 課金算出部
21 課金情報記憶部
23 課金算出情報記憶部
25 CPU使用時間取得部
27 リソース状態情報取得部
29 課金算出部
100 プロセススケジューラ
110 プロセス実行時間管理部
120 ハードウェアリソース管理部
130 SMTプロセッサ
140 ディスパッチャ
150 タスクキュー

Claims (4)

  1. SMTプロセッサで実行されるユーザプログラムに対する課金処理を行う装置であって,
    ユーザプログラムのプロセスの実行の開始から,プロセスを実行する論理プロセッサの性能指標であるCPU情報を記憶するCPU情報記憶部と,
    論理プロセッサで実行中のプロセスの競合に関する状態を記憶する競合状態記憶部と,
    前記ユーザプログラムのプロセスが前記論理プロセッサを使用したCPU時間を記憶するCPU使用時間記憶部と,
    論理プロセッサでユーザプログラムのプロセスの実行が開始される時に,前記論理プロセッサへのプロセスの割り当て情報をもとに,他の論理プロセッサでプロセスが実行中である競合状態または前記競合状態ではない非競合状態であるかを判定し,前記判定結果として競合状態または非競合状態のいずれかの状態を前記競合状態記憶部に設定する競合判定部と,
    前記ユーザプログラムのプロセスの実行の開始から,前記プロセスを実行する論理プロセッサの性能指標であるCPU情報を収集し,前記競合状態記憶部を参照して,前記競合状態での実行におけるCPU情報である競合CPU情報と,前記非競合状態での実行におけるCPU情報である非競合CPU情報とを区別して前記CPU情報記憶部に格納するCPU使用情報取得部と,
    前記ユーザプログラムのプロセスが論理プロセッサを使用した時間を収集し,前記競合状態記憶部を参照して,前記競合状態での実行における前記論理プロセッサの使用時間である競合CPU使用時間と,前記非競合状態での実行における前記論理プロセッサの使用時間である非競合CPU使用時間とを区別して前記CPU使用時間記憶部に格納するCPU使用時間取得部と,
    前記CPU情報記憶部から読み出した前記競合CPU情報および前記非競合CPU情報の比率を用いて,前記CPU使用時間記憶部から読み出した前記競合CPU使用時間をもとに,前記ユーザプログラムのプロセス実行時の実質的な使用時間であるCPU換算使用時間を算出する使用時間換算部と,
    前記ユーザプログラムのプロセスの実行が終了した後に,前記CPU使用時間記憶部から読み出した前記非競合CPU使用時間に前記CPU換算使用時間を加算してCPU実効使用時間を算出し,所定の課金単価によって前記CPU実効使用時間から課金額を算出する課金算出部とを備える
    ことを特徴とするSMTプロセッサ用課金処理装置。
  2. 請求項1記載のSMTプロセッサ用課金処理装置において,
    前記CPU使用時間記憶部から読み出した前記CPU使用時間にもとづいて,前記競合状態におけるユーザプログラムの実行と前記非競合状態におけるユーザプログラムの実行とを区別して前記ユーザプログラムの利用課金額を算出するプログラム利用課金算出部を備える
    ことを特徴とするSMTプロセッサ用課金処理装置。
  3. コンピュータのSMTプロセッサで実行されるユーザプログラムに対する課金処理を行うための処理方法であって,
    ユーザプログラムのプロセスの実行の開始から,プロセスを実行する論理プロセッサの性能指標であるCPU情報を記憶するCPU情報記憶部と,
    論理プロセッサで実行中のプロセスの競合に関する状態を記憶する競合状態記憶部と,
    前記ユーザプログラムのプロセスが前記論理プロセッサを使用したCPU時間を記憶するCPU使用時間記憶部とを備える
    前記コンピュータが,
    論理プロセッサでユーザプログラムのプロセスの実行が開始される時に,前記論理プロセッサへのプロセスの割り当て情報をもとに,他の論理プロセッサでプロセスが実行中である競合状態または前記競合状態ではない非競合状態であるかを判定し,前記判定結果として競合状態または非競合状態のいずれかの状態を前記競合状態記憶部に設定する競合判定処理過程と,
    前記ユーザプログラムのプロセスの実行の開始から,前記プロセスを実行する論理プロセッサの性能指標であるCPU情報を収集し,前記競合状態記憶部を参照して,前記競合状態での実行におけるCPU情報である競合CPU情報と,前記非競合状態での実行におけるCPU情報である非競合CPU情報とを区別して前記CPU情報記憶部に格納するCPU使用情報取得処理過程と,
    前記ユーザプログラムのプロセスが論理プロセッサを使用した時間を収集し,前記競合状態記憶部を参照して,前記競合状態での実行における前記論理プロセッサの使用時間である競合CPU使用時間と前記非競合状態での実行における前記論理プロセッサの使用時間である非競合CPU使用時間とを区別して前記CPU使用時間記憶部に格納する前記CPU使用時間取得過程と,
    前記CPU情報記憶部から読み出した前記競合CPU情報および前記非競合CPU情報の比率を用いて,前記CPU使用時間記憶部から読み出した前記競合CPU使用時間をもとに,前記ユーザプログラムのプロセス実行時の実質的な使用時間であるCPU換算使用時間を算出する使用時間換算処理過程と,
    前記ユーザプログラムのプロセスの実行が終了した後に,前記CPU使用時間記憶部から読み出した前記非競合CPU使用時間に前記CPU換算使用時間を加算してCPU実効使用時間を算出し,所定の課金単価によって前記CPU実効使用時間から課金額を算出する課金算出処理過程とを備える
    ことを特徴とするSMTプロセッサ用課金処理方法。
  4. コンピュータのSMTプロセッサで実行されるユーザプログラムに対する課金処理を行うための処理方法をコンピュータに実行させるためのプログラムであって,
    前記コンピュータに,
    CPU情報記憶部として,ユーザプログラムのプロセスの実行の開始から,プロセスを実行する論理プロセッサの性能指標であるCPU情報を記憶する機能と,
    競合状態記憶部として,論理プロセッサで実行中のプロセスの競合に関する状態を記憶する機能と,
    CPU使用時間記憶部として,前記ユーザプログラムのプロセスが前記論理プロセッサを使用したCPU時間を記憶する機能と,
    論理プロセッサでユーザプログラムのプロセスの実行が開始される時に,前記論理プロセッサへのプロセスの割り当て情報をもとに,他の論理プロセッサでプロセスが実行中である競合状態または前記競合状態ではない非競合状態であるかを判定し,前記判定結果として競合状態または非競合状態のいずれかの状態を前記競合状態記憶部に設定する機能と,
    前記ユーザプログラムのプロセスの実行の開始から,前記プロセスを実行する論理プロセッサの性能指標であるCPU情報を収集し,前記競合状態記憶部を参照して,前記競合状態での実行におけるCPU情報である競合CPU情報と,前記非競合状態での実行におけるCPU情報である非競合CPU情報とを区別して前記CPU情報記憶部に格納する機能と,
    前記ユーザプログラムのプロセスが論理プロセッサを使用した時間を収集し,前記競合状態記憶部を参照して,前記競合状態での実行における前記論理プロセッサの使用時間である競合CPU使用時間と前記非競合状態での実行における前記論理プロセッサの使用時間である非競合CPU使用時間とを区別して前記CPU使用時間記憶部に格納する機能と,
    前記CPU情報記憶部から読み出した前記競合CPU情報および前記非競合CPU情報の比率を用いて,前記CPU使用時間記憶部から読み出した前記競合CPU使用時間をもとに,前記ユーザプログラムのプロセス実行時の実質的な使用時間であるCPU換算使用時間を算出する機能と,
    前記ユーザプログラムのプロセスの実行が終了した後に,前記CPU使用時間記憶部から読み出した前記非競合CPU使用時間に前記CPU換算使用時間を加算してCPU実効使用時間を算出し,所定の課金単価によって前記CPU実効使用時間から課金額を算出する機能とを
    実現させるための
    SMTプロセッサ用課金処理プログラム。
JP2005100951A 2005-03-31 2005-03-31 Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム Expired - Fee Related JP4276201B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005100951A JP4276201B2 (ja) 2005-03-31 2005-03-31 Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム
US11/362,406 US8683474B2 (en) 2005-03-31 2006-02-27 Accounting apparatus and method for SMT processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005100951A JP4276201B2 (ja) 2005-03-31 2005-03-31 Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006084376A Division JP4414407B2 (ja) 2006-03-27 2006-03-27 Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム

Publications (2)

Publication Number Publication Date
JP2006285350A JP2006285350A (ja) 2006-10-19
JP4276201B2 true JP4276201B2 (ja) 2009-06-10

Family

ID=37188610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005100951A Expired - Fee Related JP4276201B2 (ja) 2005-03-31 2005-03-31 Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム

Country Status (2)

Country Link
US (1) US8683474B2 (ja)
JP (1) JP4276201B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9223629B2 (en) * 2007-01-31 2015-12-29 Hewlett-Packard Development Company, L.P. Data processing system and method
US9081605B2 (en) * 2007-03-27 2015-07-14 Nec Corporation Conflicting sub-process identification method, apparatus and computer program
JP5153503B2 (ja) * 2008-07-31 2013-02-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 消費電力を推定するシステムおよび方法
JP2011180894A (ja) * 2010-03-02 2011-09-15 Fujitsu Ltd ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法
JP5542700B2 (ja) * 2011-01-05 2014-07-09 株式会社日立製作所 Smtプロセッサにおけるプロセッサ使用率の算出方法
US8607243B2 (en) * 2011-09-20 2013-12-10 International Business Machines Corporation Dynamic operating system optimization in parallel computing
US8904389B2 (en) 2013-04-30 2014-12-02 Splunk Inc. Determining performance states of components in a virtual machine environment based on performance states of related subcomponents
US9015716B2 (en) 2013-04-30 2015-04-21 Splunk Inc. Proactive monitoring tree with node pinning for concurrent node comparisons
US9495187B2 (en) * 2013-04-30 2016-11-15 Splunk, Inc. Interactive, top-down presentation of the architecture and performance of a hypervisor environment
US9164786B2 (en) 2013-04-30 2015-10-20 Splunk Inc. Determining performance states of parent components in a virtual-machine environment based on performance states of related child components during a time period
KR102177871B1 (ko) * 2013-12-20 2020-11-12 삼성전자주식회사 멀티 쓰레딩을 지원하기 위한 연산 유닛, 이를 포함하는 프로세서 및 프로세서의 동작 방법
US9361159B2 (en) * 2014-04-01 2016-06-07 International Business Machines Corporation Runtime chargeback in a simultaneous multithreading (SMT) environment
US9417927B2 (en) * 2014-04-01 2016-08-16 International Business Machines Corporation Runtime capacity planning in a simultaneous multithreading (SMT) environment
FR3024351B1 (fr) * 2014-08-01 2021-11-19 Ldr Medical Implants osseux

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809268A (en) * 1995-06-29 1998-09-15 International Business Machines Corporation Method and system for tracking resource allocation within a processor
US5838976A (en) * 1995-11-28 1998-11-17 Hewlett-Packard Co. System and method for profiling code on symmetric multiprocessor architectures
JPH11282903A (ja) 1998-03-30 1999-10-15 Hitachi Building Systems Co Ltd ビル内料金請求システム
US20020194251A1 (en) * 2000-03-03 2002-12-19 Richter Roger K. Systems and methods for resource usage accounting in information management environments
US6813760B1 (en) * 2000-11-30 2004-11-02 Nortel Networks Limited Method and a tool for estimating probability of data contention in a multi-processor shared-memory system
US7058824B2 (en) * 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
JP4143283B2 (ja) * 2001-09-12 2008-09-03 株式会社日立製作所 計算機の処理性能変更装置
JP4066838B2 (ja) 2003-02-19 2008-03-26 富士通株式会社 共有リソースの競合検出器および共有リソースの競合検出方法
WO2004088518A1 (ja) 2003-03-31 2004-10-14 Fujitsu Limited Cpu使用時間カウント方法及びこのcpu使用時間を用いるジョブ制御装置
US7472258B2 (en) * 2003-04-21 2008-12-30 International Business Machines Corporation Dynamically shared group completion table between multiple threads
US7657893B2 (en) * 2003-04-23 2010-02-02 International Business Machines Corporation Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor
US7469407B2 (en) * 2003-04-24 2008-12-23 International Business Machines Corporation Method for resource balancing using dispatch flush in a simultaneous multithread processor
US7707080B2 (en) * 2003-12-05 2010-04-27 International Business Machines Corporation Resource usage metering of network services
US7197652B2 (en) * 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
US7421592B1 (en) * 2004-02-13 2008-09-02 Microsoft Corporation High performance counter for realistic measurement of computer system load
US7555753B2 (en) * 2004-02-26 2009-06-30 International Business Machines Corporation Measuring processor use in a hardware multithreading processor environment
US7426731B2 (en) * 2004-03-22 2008-09-16 Hewlett-Packard Development Company, L.P. Determining processor usage by a thread

Also Published As

Publication number Publication date
JP2006285350A (ja) 2006-10-19
US8683474B2 (en) 2014-03-25
US20060242642A1 (en) 2006-10-26

Similar Documents

Publication Publication Date Title
JP4276201B2 (ja) Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム
Eyerman et al. Probabilistic job symbiosis modeling for SMT processor scheduling
US9037717B2 (en) Virtual machine demand estimation
Calandrino et al. On the design and implementation of a cache-aware multicore real-time scheduler
US6584488B1 (en) Controlling allocation of system resources with an enhanced priority calculation
Bhadauria et al. An approach to resource-aware co-scheduling for CMPs
JP5615990B2 (ja) オーバーヘッドを抑えた電力プロフィール情報の取得
US8161493B2 (en) Weighted-region cycle accounting for multi-threaded processor cores
EP1916601A2 (en) Multiprocessor system
US20120137295A1 (en) Method for displaying cpu utilization in a multi-processing system
US11876731B2 (en) System and methods for sharing memory subsystem resources among datacenter applications
US9047138B2 (en) Apparatus and method for thread scheduling and lock acquisition order control based on deterministic progress index
Zhang et al. Minimizing interference and maximizing progress for Hadoop virtual machines
US20120054762A1 (en) Scheduling apparatus and method for a multicore device
CN103677997A (zh) 多核心装置以及其多线程调度方法
Zheng et al. Memory access scheduling schemes for systems with multi-core processors
JP3663968B2 (ja) マルチタスクシステムの性能予測システム及び予測方法並びにその方法プログラムを記録した記録媒体
KR101892273B1 (ko) 스레드 프로그레스 트래킹 방법 및 장치
Kim et al. Using DVFS and task scheduling algorithms for a hard real-time heterogeneous multicore processor environment
US8943503B2 (en) Apparatus and method for thread progress tracking using deterministic progress index
JP4414407B2 (ja) Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム
CN112114967B (zh) 一种基于服务优先级的gpu资源预留方法
Wada et al. Fast interrupt handling scheme by using interrupt wake-up mechanism
CN112783651B (zh) 一种云平台vGPU负载均衡调度方法、介质及装置
Tiwari et al. REAL: REquest arbitration in last level caches

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090130

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090130

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090130

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4276201

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130313

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140313

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees