JP7416198B2 - サーバ内周波数制御装置、制御方法、プログラム - Google Patents

サーバ内周波数制御装置、制御方法、プログラム Download PDF

Info

Publication number
JP7416198B2
JP7416198B2 JP2022502743A JP2022502743A JP7416198B2 JP 7416198 B2 JP7416198 B2 JP 7416198B2 JP 2022502743 A JP2022502743 A JP 2022502743A JP 2022502743 A JP2022502743 A JP 2022502743A JP 7416198 B2 JP7416198 B2 JP 7416198B2
Authority
JP
Japan
Prior art keywords
service
operating frequency
cpu
controlled
server
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.)
Active
Application number
JP2022502743A
Other languages
English (en)
Other versions
JPWO2021171520A1 (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2021171520A1 publication Critical patent/JPWO2021171520A1/ja
Application granted granted Critical
Publication of JP7416198B2 publication Critical patent/JP7416198B2/ja
Active 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明は、サーバ内周波数制御装置、制御方法、プログラムに関する。
仮想マシンを構成する技術としてLinux(登録商標)とKVM(kernel-based virtual machine)で構成されたハイパーバイザー環境がよく知られている。この環境では、KVMモジュールが組み込まれたホストOSがハイパーバイザーとしてカーネル空間で動作し、この環境においてユーザ空間にて仮想マシンが動作し、その仮想マシン内にゲストOSが動作する。ここで、ホストOSとは、物理サーバ上にインストールされたOSである。また、カーネル空間とは、ユーザ空間とは異なるメモリ領域である。また、ゲストOSとは、仮想マシン上にインストールされたOSである。
特許文献1には、ゲストOSとホストOSとがvirtioで接続されたシステムが記載されている。ここで、仮想マシン内には、例えばネットワーク通信に対するvirtioデバイスとして、virtio-netが存在している。このシステムでは、virtio-net関連のメモリコピー回数を減らすことにより、パケット転送処理を高速化する。
特許文献2には、高速パケット処理ライブラリであるIntel DPDK(Intel Data Plane Development Kit)の拡張として、SPP(Soft Patch Panel)を用いたシステムが記載されている。ここで、Intelは登録商標である。SPPは、共有メモリを介してゼロコピーでホストOSとゲストOSとの間、および、ゲストOS間のパケットコピーを高速に行う。このシステムでは、SPPにおいて、仮想マシン間を接続する経路設定を、GUI(Graphical User Interface)操作により可能とする。
特開2015-197874号公報 特開2018-032156号公報
End-to-endで低遅延なネットワークを実現するためには、アクセス区間/伝送区間/転送区間/サーバ区間/APL(Application)等のそれぞれの区間において低遅延を実現する必要がある。リアルタイム性の高いサービスを実現するために、上記サーバ区間の遅延を抑制することは重要である。また、近年の急速な情報量の増加に伴いサーバ台数が増え、消費電力が増加している。そのため、サーバの消費電力を削減することも重要である。
従来、高いサーバ処理性能と省電力を両立する手法として、CPUの処理負荷を予測してCPUの動作周波数を動的に変動させる手法があり、この手法は近年のLinux kernelに実装されている。そのため、特許文献1および特許文献2に記載された技術でもこの手法を実行することができる。
当該手法は、タスクスケジューラがこれからCPUを使用するプロセス/スレッドのタスクをキューとして管理し、キューに溜まったタスクの多さにより各CPUの負荷を予測しCPUの動作周波数を動的に変更する。しかし、当該手法には、ミリ秒オーダの遅延が発生する。タスクスケジューラは、パケット処理等の割込処理に関してはタスクとして管理しないため、処理負荷を予測できず、CPUの動作周波数を変更しない。CPUが低い動作周波数で動作している状態においてkernelがパケットを受信すると、パケット処理に時間を要し、遅延が生じる。そのため、当該遅延を抑制する手法として、CPUの動作周波数を常に最大にしてCPUを動作させる手法が考えられる。ただし、その手法では、CPUの消費電力が高くなることが想定される。サーバ区間の低遅延、かつ、省電力を条件とするサービスを提供する場合、上記の2つの周波数設定方法では両方の条件を同時に満たすことができない。
そこで、本発明では、上記した問題を解決し、サーバ内において低遅延の処理を行いつつサーバの消費電力を低減することを課題とする。
本発明に係るサーバ内周波数制御装置は、所定の方法でサーバ内での低遅延が要求されるサービスの開始を事前に把握すると共に前記サービスの終了を把握する把握部と、事前に把握した前記サービスの開始時に、および把握した前記サービスの終了時に、前記サーバ内で予め前記サービスの受信元に割り当てられたCPUである制御対象のCPUの動作周波数を変更する動作周波数変更部と、を備え、前記把握部は、前記サービスの開始時に、サービスを表す所定のサービスIDを、所定の管理簿であるサービス状態管理簿に記録して前記制御対象のCPUの動作周波数を高くする指示を前記動作周波数変更部へ通知し、前記サービスの終了時に、当該サービスIDを前記サービス状態管理簿から削除し、前記サービス状態管理簿から、当該サービスにおけるすべてのサービスIDが削除された場合、前記制御対象のCPUの動作周波数を低くする指示を前記動作周波数変更部へ通知し、前記動作周波数変更部は、前記サービスの開始時に前記制御対象のCPUの動作周波数を所定値よりも高くすると共に、前記サービスの終了時に前記制御対象のCPUの動作周波数を前記所定値よりも低くすることを特徴とする。
本発明によれば、サーバ内において低遅延の処理を行いつつサーバの消費電力を低減することができる。
本発明の実施形態に係る電話会議システムの受信元と送信元を示す模式図である。 本発明の実施形態に係る電話会議システムの概略構成図である。 本発明の第1実施形態に係るサーバ内周波数制御装置の構成図である。 本発明の第1実施形態に係るサーバ内周波数制御装置によるセッション状態を把握する処理の流れを示すシーケンス図である。 サーバ内周波数制御装置がセッション確立を把握した後の処理の流れを示すシーケンス図である。 サーバ内周波数制御装置がセッション終了を把握した後の処理の流れを示すシーケンス図である。 本発明の第2実施形態に係るサーバ内周波数制御装置の構成図である。 本発明の第2実施形態に係るサーバ内周波数制御装置による会議予約状況を把握する処理の流れを示すフローチャートである。 サーバ内周波数制御装置が会議開始予定を把握した後の処理の流れを示すシーケンス図である。 サーバ内周波数制御装置が会議終了を把握した後の処理の流れを示すシーケンス図である。 本発明の第2実施形態に係るサーバ内周波数制御装置による会議予約状況を把握する処理の変形例を示すシーケンス図である。 本発明の実施形態に係るサーバ内周波数制御装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
以下、本発明のサーバ内周波数制御装置について図面を参照して詳細に説明する。
サーバ内での低遅延が要求されるサービス(以下、単にサービスと呼ぶ)の一例を電話会議であるものとして説明する。まず、サーバ内周波数制御装置を適用する電話会議システムについて説明する。図1に示す電話会議システム1は、SIPサーバ2aと、メディアサーバ2bと、を備えている。SIPサーバ2aは、SIP(Session Initiation Protocol)を用いて、電話機4とメディアサーバ2bとの間のセッション制御を行う。
メディアサーバ2bは、例えばRTP(Real-time Transport Protocol)を用いて、音声通信による電話会議5を実現する。メディアサーバ2bは、音声データ等のメディアデータのリサンプリングや符号化等を行い、RTPパケット等の生成を行うことにより、音声通信を実現する。このメディアサーバ2bは、電話会議5の受信元である。電話機4は、電話会議5の送信元であり、電話会議を行うユーザにより使用される。なお、電話機4の台数は図示した3台に限定されるものではない。
電話会議システム1は、図1のSIPサーバ2aおよびメディアサーバ2bを実現するために、図2に示すように、HW20と、OS21と、ユーザ空間のAPL30,30a,30b,30cと、を備えている。HW20は、ハードウェアであって、複数のCPUを備えている。HW20は、一例として、CPU0と、CPU1と、CPU2と、CPU3と、を備えている。OS21は、オペレーティングシステムであって、kernelや、パケット処理のためのソフトウェアを備えている。kernelは、オペレーティングシステムの基幹部分の機能であり、プログラムの実行状態をプロセス単位で管理する。
APL30,30a,30b,30cは、OS21上で動作するアプリケーションプログラムである。APL30aには例えばCPU0が割り付けられている。APL30aは、ストリームを事前に管理するアプリケーションプログラムであり、例えばSIPサーバ2aとして機能する。CPU0は、OS21を介してAPL30aとの間でデータ送受信の通信を行う。
APL30bには、例えばCPU1が割り付けられている。APL30bは、サービスを実行するアプリケーションプログラムであり、例えばメディアサーバ2bとして機能する。CPU1は、OS21を介してAPL30bとの間でデータ送受信の通信を行う。
APL30cには、例えばCPU2が割り付けられている。APL30cは、例えば予約スケジューラとして機能する。予約スケジューラは、例えば電話会議の予約処理を行う。CPU2は、OS21を介してAPL30cとの間でデータ送受信の通信を行う。予約スケジューラとして機能するAPL30cは、ユーザが情報端末6を使用して電話会議を予約することで、電話会議の予約を受け付ける。情報端末6は、例えば、一般的なパーソナルコンピュータ、タブレット端末、スマートフォンで構成される。
APL30には、例えばCPU3が割り付けられている。APL30は、例えば図3のサーバ内周波数制御装置10として機能する。
[第1実施形態]
次に、図3を参照して、第1実施形態に係るサーバ内周波数制御装置10を含む電話会議システムについて説明する。なお、以下では、図2に示した構成と同じ構成には同じ符号を付して説明を省略する。
サーバ内周波数制御装置10は、事前把握部11と、動作周波数変更部12と、を備えている。事前把握部11は、所定の方法でサービスが開始されることを事前に把握すると共にサービスが終了したことを把握するものである。動作周波数変更部12は、事前に把握したサービスの開始時に、およびサービスの終了時に、サーバ内でサービスが予めサービスの受信元に割り当てられたCPUである制御対象のCPUの動作周波数を変更するものである。動作周波数変更部12は、サービスの開始時に制御対象のCPUの動作周波数を所定値よりも高くすると共に、サービスの終了時に制御対象のCPUの動作周波数を所定値よりも低くする。
図3に示すように、事前把握部11は、例えばイベント捕捉部23と、イベント処理部24と、セッション状態管理部31と、を備えている。また、動作周波数変更部12は、例えば確認コマンド実行部25と、変更コマンド実行部26と、周波数確認部32と、周波数変更部33と、を備えている。また、ここでは、OS21は、kernelの処理機能として、パケット処理部22と、イベント捕捉部23と、イベント処理部24と、確認コマンド実行部25と、変更コマンド実行部26と、を備えている。また、セッション状態管理部31と、周波数確認部32と、周波数変更部33とは、図2のAPL30に相当し、OS21上で動作する。OS21は、制御対象のCPUの動作周波数を変更する処理を行う。CPUの動作周波数を変更するというkernel処理には、例えばCPU3が割り付けられているものとする。なお、CPUの動作周波数を変更するkernel処理は、どのCPUでも割り当てることが可能であり、CPU1が割り当てられる場合もある。
以下、各部の詳細を説明する。
パケット処理部22は、CPU0とAPL30aとの間でSIP処理に関するパケットを処理する。パケット処理部22は、例えば電話機4からセッション制御開始要求であるINVITE要求パケットを受信すると、このINVITE要求パケットをSIPサーバ2aへ転送する。また、パケット処理部22は、例えばINVITE応答(200OK)、セッション確立の確認(ACK)、セッション終了(BYE)のパケットを転送する。
また、パケット処理部22は、CPU1とAPL30bとの間でメディア処理(RTP)に関するパケットを処理する。パケット処理部22は、SIPによるセッション確立後、各電話機(送信元)4とメディアサーバ2b(受信元)との間で、音声データ等のメディアデータのパケットを転送する。
イベント捕捉部23は、低遅延が要求されるサービスを実行するKernel処理のイベントとして予め登録されているイベントの発生事象を捕捉するものである。イベント捕捉部23は、予め登録したポイントにおいてパケット処理のイベントが発生した際に、当該イベントが発生したことをイベント処理部24へ通知する。
本実施形態では、例えばkprobe(Kernel Probes)を使用し、UDPレイヤの関数であるudp_rcvをポイントとして、パケット処理のイベントが発生したときに行う処理の予約を予め登録することとする。
イベント処理部24は、捕捉されたイベントがセッション確立を要求する信号のイベントである場合にサービスの開始を事前に把握し、当該制御信号からセッション確立の情報としてサービスの受信元とセッションIDを取得する。また、イベント処理部24は、捕捉されたイベントがセッション終了を要求する信号のイベントである場合にサービスの終了を把握し、当該制御信号からセッション終了の情報としてサービスの受信元とセッションIDを取得する。
イベント処理部24は、例えばeBPF(extended Berkeley Packet Filter)バイトコードで構成される。このeBPFは、ユーザ空間で作成され、kernelに送り込まれて、kernel内部で動作するプログラムである。このイベント処理部24は、信号を解析するコードを実行し、解析の結果、予め定められた処理の信号である場合、後段で必要になる情報を後段に通知する。具体的には、イベント処理部24は、イベント捕捉部23からの通知信号が到着した際に、捕捉されたイベントの信号が、[SIP処理の信号]かつ[ACK]を示す場合、[ACK]、[受信元]、[セッションID]をセッション状態管理部31へ通知する。
また、イベント処理部24は、イベント捕捉部23からの通知信号が到着した際に、捕捉されたイベントの信号が、「SIP処理の信号」かつ[BYEに対する200OK]を示す場合、[BYEに対する200OK]、[受信元]、[セッションID]を、セッション状態管理部31へ通知する。
確認コマンド実行部25は、周波数確認部32からの通知信号が到着した際に、当該通知信号で指定された対象のCPUの現在の動作周波数を確認し、現在の動作周波数を周波数確認部32に通知するものである。確認コマンド実行部25は、例えばCPUfreq-infoで構成される。
変更コマンド実行部26は、周波数変更部33からの通知信号が到着した際に、当該通知信号で指定された対象のCPUの動作周波数を変更するものである。変更コマンド実行部26は、例えばCPUfreq-setで構成される。
セッション状態管理部31は、セッション確立の情報を取得した場合、当該サービスのセッションIDをサービスの受信元のセッション状態管理簿34に記録し、制御対象のCPUの動作周波数を高くする指示を動作周波数変更部12へ通知する。
また、セッション状態管理部31は、セッション終了の情報を取得した場合、当該サービスのセッションIDを、当該サービスの受信元のセッション状態管理簿34から削除する。さらに、セッション状態管理部31は、当該サービスの受信元のセッション状態管理簿34からすべてのセッションIDが削除された場合、制御対象のCPUの動作周波数を低くする指示を動作周波数変更部12へ通知する。
セッション状態管理簿34は、セッションIDを保持している。保持されたセッションIDは、メディアサーバ2bとセッションが確立しているセッションIDのことである。
セッション状態管理部31は、イベント処理部24からの通知信号が到着した際に、メディアサーバ2bのセッション状態管理簿34を更新する。具体的には、セッション状態管理部31は、イベント処理部24からの通知信号が到着した際に、SIP処理の信号が[ACK]を示す場合、そのセッションIDをセッション状態管理簿34に追記する。また、セッション状態管理部31は、イベント処理部24からの通知信号が到着した際に、SIP処理の信号が[BYEに対する200OK]を示す場合、そのセッションIDをセッション状態管理簿34から削除する。
電話会議の送信元(電話機4)とセッション状態管理簿34との間には次の関係がある。すなわち、電話会議が開始する際には、セッション状態管理簿34においてセッションIDが増加する。電話会議の最中に新たな参加者が電話会議へ入室する際にも、セッション状態管理簿34においてセッションIDが増加する。また、電話会議の最中に1人の参加者が電話会議から退出する際に、セッション状態管理簿34においてセッションIDが減少する。電話会議が終了する際には、セッション状態管理簿34においてセッションIDの記載が全て無しとなる。
セッション状態管理部31は、更新されたセッション状態管理簿34を参照して、セッションIDが増加したと判定した場合、電話会議の受信元のCPUの動作周波数を高くする指示を周波数確認部32へ通知する。具体的には、セッション状態管理部31は、受信元の情報と、高周波数フラグとを周波数確認部32へ通知する。
また、セッション状態管理部31は、更新されたセッション状態管理簿34を参照して、セッションIDの記載は全て無しと判定した場合、電話会議の受信元のCPUの動作周波数を低くする指示を周波数確認部32へ通知する。具体的には、セッション状態管理部31は、受信元の情報と、低周波数フラグとを周波数確認部32へ通知する。
ここで、受信元の情報は、メディアサーバ2bの識別情報である。高周波数フラグは、制御対象のCPUの動作周波数を高めることを意味しており、低周波数フラグと対をなす情報である。高周波数フラグを「H」、低周波数フラグを「L」としてもよいし、高周波数フラグを「1」、低周波数フラグを「0」としてもよい。
周波数確認部32は、事前把握部11から制御対象のCPUの動作周波数を変更する指示を受け取った場合に、当該CPUの現在の動作周波数を確認するものである。周波数確認部32は、周波数確認依頼を確認コマンド実行部25に通知する。すなわち、周波数確認部32は、CPUの現在の動作周波数の確認を確認コマンド実行部25に依頼する。周波数確認部32は、確認コマンド実行部25から現在の動作周波数を受け取ると、後段に必要な情報と共に後段に通知する。
周波数確認部32は、セッション状態管理部31からの通知信号が到着した際に、CPU割付表35に基づいて、受信元に割り付けられているCPUを特定する。CPU割付表35は、各アプリケーションプログラムに割り付けられているCPUコアの対応表である。本実施形態では、受信元であるメディアサーバ2bには、CPU1が割り付けられている。周波数確認部32は、制御対象のCPU(CPU1)について現在の動作周波数を確認するためのコマンドを確認コマンド実行部25に実行させる。そして、周波数確認部32は、確認コマンド実行部25から、制御対象のCPU(CPU1)の現在の動作周波数を受信する。
周波数確認部32は、セッションIDが増加した場合、つまり高周波数フラグが通知された場合、制御対象のCPUの情報と、現在の動作周波数と、高周波数フラグと、を周波数変更部33へ通知する。
周波数確認部32は、セッションIDの記載が全て無しである場合、つまり低周波数フラグが通知された場合、制御対象のCPUの情報と、現在の動作周波数と、低周波数フラグと、を周波数変更部33へ通知する。
周波数変更部33は、制御対象のCPUの現在の動作周波数と所定の規定値との比較結果に応じてCPUの動作周波数を変更するものである。
周波数変更部33は、事前把握部11から制御対象のCPUの動作周波数を高くする指示を受け取り、かつ、当該CPUの現在の動作周波数が規定値よりも小さい場合に、当該CPUの動作周波数を高くする。
また、周波数変更部33は、事前把握部11から制御対象のCPUの動作周波数を低くする指示を受け取り、かつ、当該CPUの現在の動作周波数が規定値よりも大きい場合に、当該CPUの動作周波数を低くする。
周波数変更部33は、周波数確認部32からの通知信号が到着した際に、通知された情報に基づいて、以下の判別処理を行って制御対象のCPUの動作周波数を変更する必要があるかどうかを確認する。
周波数変更部33は、これから低遅延が要求されるサービスが開始される場合、制御対象のCPUの動作周波数を高くする必要があると判定する。これから低遅延が要求されるサービスが開始される場合とは、高周波数フラグが通知され、かつCPUの現在の動作周波数が規定値よりも小さい場合のことである。
周波数変更部33は、低遅延が要求されるサービスが終了した場合、制御対象のCPUの動作周波数を低くする必要があると判定する。低遅延が要求されるサービスが終了した場合とは、低周波数フラグが通知され、かつCPUの現在の動作周波数が規定値よりも大きい場合のことである。
周波数変更部33は、低遅延が要求されるサービスが開始される場合でもなく、低遅延が要求されるサービスが終了した場合でもなければ、制御対象のCPUの動作周波数を変更する必要がないと判定する。
周波数変更部33は、制御対象のCPUの動作周波数を変更する必要がある場合、当該CPUの動作周波数の変更を変更コマンド実行部26に依頼する。
[制御方法]
サーバ内周波数制御装置10の制御方法について図4~図6を参照(適宜図3参照)して説明する。図4に示すように、イベント捕捉部23は、Kernel処理のイベントを検出すると(ステップS101)、検出したイベントが、登録されたイベントではない場合(ステップS102:No)、ステップS101に戻る。一方、検出したイベントが、登録されたイベントである場合(ステップS102:Yes)、イベント捕捉部23は、予め登録されているイベントの検出をイベント処理部24へ通知する(ステップS103)。
イベント処理部24は、イベント捕捉部23からイベントの通知信号を受領する(ステップS104)。そして、イベント処理部24は、捕捉されたイベントのパケット信号が、ストリームを制御する信号か否かを解析する(ステップS105)。イベント処理部24は、例えば、パケット信号がストリームを制御する信号であって(ステップS105:Yes)、その制御信号がセッション確立を要求する信号である(ステップS106:Yes)と判定する。この場合、イベント処理部24は、その制御信号から、セッション確立、セッションID、受信元の情報をそれぞれ取得する(ステップS107)。そして、イベント処理部24は、それら取得した情報を、セッション状態管理部31へ通知する(ステップS108)。セッション状態管理部31は、セッション確立通知を受領する(ステップS109)。なお、このステップS109以降のセッション状態管理部31の処理は、図5のシーケンス図で説明する。
また、図4に示すように、イベント処理部24は、例えば、その制御信号が、セッション確立を要求する信号ではなく(ステップS106:No)、セッション終了を要求する信号である(ステップS110:Yes)と判定する。この場合、イベント処理部24は、その制御信号から、セッション終了、セッションID、受信元の情報をそれぞれ取得する(ステップS111)。そして、イベント処理部24は、それら取得した情報を、セッション状態管理部31へ通知する(ステップS112)。セッション状態管理部31は、セッション終了通知を受領する(ステップS113)。なお、このステップS113以降のセッション状態管理部31の処理は、図6のシーケンス図で説明する。
一方、図4に示すように、その制御信号がセッション確立やセッション終了を要求する信号ではない場合(ステップS110:No)、イベント処理部24は、ステップS105に戻る。また、ステップS105において、パケット信号がストリームを制御する信号ではない場合(ステップS105:No)、イベント処理部24は、ステップS105に戻る。
上記したステップS109以降のセッション状態管理部31の処理を説明する。
図5に示すように、セッション状態管理部31は、イベント処理部24からセッション確立通知を受領した場合(ステップS109)、そのセッションIDを受信元のセッション状態管理簿34に追記する(ステップS201)。そして、セッション状態管理部31は、受信元のセッション状態管理簿34においてセッションIDが増加していることを確認する(ステップS202)。そして、セッション状態管理部31は、受信元の情報を取得し、受信元の情報を高周波フラグと共に周波数確認部32へ通知する(ステップS203)。
周波数確認部32は、セッション状態管理部31からの通知信号が到着すると、受信元の情報を取得する。そして、周波数確認部32は、受信元の情報に基づいて、CPU割付表35から、受信元に割り付けられているCPUを確認する(ステップS204)。この例では、周波数確認部32は、受信元に割り付けられているCPUが、CPU1であることを確認する。そして、周波数確認部32は、周波数確認依頼を確認コマンド実行部25へ通知する(ステップS205)。そして、確認コマンド実行部25は、制御対象のCPUの現在の動作周波数を確認し、応答する(ステップS206)。そして、周波数確認部32は、制御対象のCPUの現在の動作周波数を受領し、制御対象のCPUのIDと、現在の動作周波数と、高周波数フラグと、を周波数変更部33へ通知する(ステップS207)。
周波数変更部33は、例えば、高周波数フラグを受領すると共に、制御対象のCPUの現在の動作周波数は規定値以上である(ステップS208:No)と判定する。この場合、周波数変更部33は、処理を終了する。一方、周波数変更部33は、例えば、高周波数フラグを受領すると共に、制御対象のCPUの現在の動作周波数が規定値よりも小さい(ステップS208:Yes)と判定する。この場合、周波数変更部33は、制御対象のCPUの動作周波数を高くする依頼を変更コマンド実行部26へ通知する(ステップS209)。そして、変更コマンド実行部26は、制御対象のCPUの動作周波数を高くする(ステップS210)。したがって、これらの処理により、セッションが確立したときに、メディアサーバ2bに割り付けられているCPU1の動作周波数を高くして低遅延のサービスを提供することができる。
上記したステップS113以降のセッション状態管理部31の処理を説明する。
図6に示すように、セッション状態管理部31は、イベント処理部24からセッション終了通知を受領した場合(ステップS113)、そのセッションIDを受信元のセッション状態管理簿34から削除する(ステップS301)。そして、セッション状態管理部31は、更新された受信元のセッション状態管理簿34を確認する(ステップS302)。セッション状態管理部31は、セッションIDの記載が残っていると判定した場合、その後の処理を終了する。また、セッション状態管理部31は、セッションIDの記載が全て無しであると判定した場合、受信元の情報を取得し、受信元の情報を低周波フラグと共に周波数確認部32へ通知する(ステップS303)。
周波数確認部32は、セッション状態管理部31からの通知信号が到着すると、受信元の情報を取得する。そして、周波数確認部32は、受信元の情報に基づいて、CPU割付表35から、受信元に割り付けられているCPUを確認する(ステップS304)。この例では、周波数確認部32は、受信元に割り付けられているCPUが、CPU1であることを確認する。そして、周波数確認部32は、周波数確認依頼を確認コマンド実行部25へ通知する(ステップS305)。そして、確認コマンド実行部25は、制御対象のCPUの現在の動作周波数を確認し、応答する(ステップS306)。そして、周波数確認部32は、制御対象のCPUの現在の動作周波数を受領し、制御対象のCPUのIDと、現在の動作周波数と、低周波数フラグと、を周波数変更部33へ通知する(ステップS307)。
周波数変更部33は、例えば、低周波数フラグを受領すると共に、制御対象のCPUの現在の動作周波数は規定値以下である(ステップS308:No)と判定する。この場合、周波数変更部33は、処理を終了する。一方、周波数変更部33は、例えば、低周波数フラグを受領すると共に、制御対象のCPUの現在の動作周波数が規定値よりも大きい(ステップS308:Yes)と判定する。この場合、周波数変更部33は、制御対象のCPUの動作周波数を低くする依頼を変更コマンド実行部26へ通知する(ステップS309)。そして、変更コマンド実行部26は、制御対象のCPUの動作周波数を低くする(ステップS310)。したがって、これらの処理により、セッションが終了したときに、メディアサーバ2bに割り付けられているCPU1の動作周波数を低くして消費電力を低減することができる。
[第2実施形態]
次に、図7を参照して、第2実施形態に係るサーバ内周波数制御装置10Bを含む電話会議システムについて説明する。なお、以下では、図3に示した構成と同じ構成には同じ符号を付して説明を省略する。サーバ内周波数制御装置10Bは、事前把握部11Bと、動作周波数変更部12と、を備えている。事前把握部11Bは、例えば予約状況管理部36を備えている。また、動作周波数変更部12は、例えば周波数確認部32と、確認コマンド実行部25と、周波数変更部33と、変更コマンド実行部26と、を備えている。また、ここでは、OS21Bは、kernelの処理機能として、パケット処理部22と、確認コマンド実行部25と、変更コマンド実行部26と、を備えている。また、予約状況管理部36は、図2のAPL30に相当し、OS21B上で動作する。以下、各部の詳細を説明する。
予約状況管理部36は、予約スケジューラを監視して、予約されたサービスの開始予定情報およびサービスの終了情報を検知するものである。予約状況管理部36は、サービスが開始する前に当該サービスの開始予定情報を取得した場合にサービスの開始を事前に把握し、当該サービスの送信元をサービスの受信元の予約状況管理簿37に記録する。そして、この場合、予約状況管理部36は、制御対象のCPUの動作周波数を高くする指示を動作周波数変更部12へ通知する。また、予約状況管理部36は、サービスが終了した後に当該サービスの終了情報を取得した場合にサービスの終了を把握し、当該サービスの送信元を予約状況管理簿37から削除する。さらに、予約状況管理部36は、予約状況管理簿37からすべての送信元が削除された場合、制御対象のCPUの動作周波数を低くする指示を動作周波数変更部12へ通知する。
本実施形態では、予約状況管理部36は、予約スケジューラとして機能するAPL30cを所定時間間隔(例えば1分間隔)で監視する。予約状況管理部36は、例えば1分間隔でAPL30cにアクセスする場合、電話会議の開始時刻の1分前に電話会議の開始予定を検知し、電話会議の終了時刻の1分後までに電話会議の終了を検知することができる。
また、予約状況管理簿37は、電話会議の送信元の情報を保持している。保持された送信元の情報は、メディアサーバ2bとセッションが確立される予定の送信元の識別情報のことである。また、サービスの開始予定情報は、例えば電話会議の会議開始予定情報である。会議開始予定情報は、受信元(メディアサーバ2b)、送信元(電話機4)および電話会議の開始時刻の情報である。また、サービスの終了情報は、例えば電話会議の会議終了情報である。会議終了情報は、例えば電話会議の受信元、送信元および電話会議の終了時刻の情報である。
予約状況管理部36は、予約スケジューラから、会議開始予定情報または会議終了情報を取得した際に、メディアサーバ2bの予約状況管理簿37を更新する。具体的には、予約状況管理部36は、予約スケジューラから、会議開始予定情報を取得した場合、開始時刻の所定時間前(例えば1分前)に、受信元の予約状況管理簿37に送信元を追記する。また、予約状況管理部36は、予約スケジューラから、会議終了情報を取得した場合、終了時刻の所定時間後(例えば1分後)に、受信元の予約状況管理簿37から送信元を削除する。
電話会議の送信元(電話機4)と予約状況管理簿37との間には次の関係がある。すなわち、電話会議が開始する際には、予約状況管理簿37において送信元が増加する。電話会議の最中に新たな参加者が電話会議へ入室する際にも、予約状況管理簿37において、送信元が増加する。また、電話会議の最中に1人の参加者が電話会議から退出する際に、予約状況管理簿37において送信元が減少する。電話会議が終了する際には、予約状況管理簿37において送信元の記載が全て無しとなる。
予約状況管理部36は、更新された予約状況管理簿37を参照して、送信元が増加したと判定した場合、電話会議の受信元のCPUの動作周波数を高くする指示を周波数確認部32へ通知する。具体的には、予約状況管理部36は、受信元の情報と、高周波数フラグとを周波数確認部32へ通知する。
また、予約状況管理部36は、更新された予約状況管理簿37を参照して、送信元の記載は全て無しと判定した場合、電話会議の受信元のCPUの動作周波数を低くする指示を周波数確認部32へ通知する。具体的には、予約状況管理部36は、受信元の情報と、低周波数フラグとを周波数確認部32へ通知する。
ここで、受信元の情報は、メディアサーバ2bの識別情報である。
[制御方法]
サーバ内周波数制御装置10Bの制御方法について図8~図10を参照(適宜図7参照)して説明する。図8に示すように、サーバ内周波数制御装置10Bの予約状況管理部36は、予約スケジューラのAPL30cを例えば1分間隔で監視する(ステップS401)。予約状況管理部36は、所定時間後に開始予定の会議があるか否かを判別する(ステップS402)。例えば、予約状況管理部36は、現在時刻から1分以内に開始予定の会議があるか否かを判別する。そして、予約状況管理部36は、開始予定の会議があれば(ステップS402:Yes)、その会議開始予定情報を取得する(ステップS403)。すなわち、予約状況管理部36は、予約スケジューラのAPL30cから、会議開始予定情報として、受信元、送信元、電話会議の開始時刻をそれぞれ取得する。なお、このステップS403以降の予約状況管理部36の処理は、図9のシーケンス図で説明する。
また、予約状況管理部36は、開始予定の会議がなければ(ステップS402:No)、所定時間前に終了した会議があるか否かを判別する(ステップS404)。例えば、予約状況管理部36は、現在時刻から1分以内に終了した電話会議があるか否かを判別する。そして、予約状況管理部36は、終了した会議があれば(ステップS404:Yes)、その会議終了情報を取得する(ステップS405)。すなわち、予約状況管理部36は、予約スケジューラのAPL30cから、会議終了情報として、受信元、送信元、電話会議の終了時刻をそれぞれ取得する。このステップS405以降の予約状況管理部36の処理は、図10のシーケンス図で説明する。なお、図8に示すように、予約状況管理部36は、所定時間前に終了した会議がなければ(ステップS404:No)、ステップS401に戻る。
上記したステップS403以降の予約状況管理部36の処理を説明する。
図9に示すように、予約状況管理部36は、スケジューラから会議開始予定情報を取得した場合(ステップS403)、送信元を受信元の予約状況管理簿37に追記する(ステップS501)。そして、予約状況管理部36は、受信元の予約状況管理簿37において送信元が増加していることを確認する(ステップS502)。そして、予約状況管理部36は、受信元の情報を取得し、受信元の情報を高周波フラグと共に周波数確認部32へ通知する(ステップS503)。ステップS503に続くステップS204~ステップS210の処理は、図5に示すステップS204~ステップS210と同じなので、説明を省略する。したがって、これらの処理により、サーバ内周波数制御装置10Bは、スケジューラから会議開始予定情報を取得したときに、メディアサーバ2bに割り付けられているCPU1の動作周波数を高くして低遅延のサービスを提供することができる。
上記したステップS405以降の予約状況管理部36の処理を説明する。
図10に示すように、予約状況管理部36は、スケジューラから会議終了情報を取得すると(ステップS405)、送信元を受信元の予約状況管理簿37から削除する(ステップS601)。そして、予約状況管理部36は、更新された受信元の予約状況管理簿37を確認する(ステップS602)。予約状況管理部36は、送信元の記載が残っていると判定した場合、その後の処理を終了する。また、予約状況管理部36は、送信元の記載が全て無しであると判定した場合、受信元の情報を取得し、受信元の情報を低周波フラグと共に周波数確認部32へ通知する(ステップS603)。ステップS603に続くステップS304~ステップS310の処理は、図6に示すステップS304~ステップS310と同じなので、説明を省略する。したがって、これらの処理により、電話会議が終了したときに、サーバ内周波数制御装置10Bは、メディアサーバ2bに割り付けられているCPU1の動作周波数を低くして消費電力を低減することができる。
[変形例]
第2実施形態のサーバ内周波数制御装置10Bは、予約状況管理部36が予約スケジューラを監視するものとしたが、これに限定されるものではない。予約状況管理部36は、予約スケジューラから、予約の更新がある度に、予約されたサービスの開始予定情報およびサービスの終了情報の通知を受けるように構成してもよい。
この変形例の場合、図11に示すように、予約スケジューラのAPL30cは、予約情報の更新を監視する(ステップS701)。そして、予約スケジューラのAPL30cは、会議開始前に更新された予約情報があるか否かを判別する(ステップS702)。予約スケジューラのAPL30cは、会議開始前に更新された予約情報がある場合(ステップS702:Yes)、会議開始予定情報を予約状況管理部36へ通知する(ステップS703)。具体的には、予約スケジューラのAPL30cは、会議開始予定情報として、受信元、送信元、会議の開始時間をそれぞれ予約状況管理部36へ通知する。
これにより、変形例に係る予約状況管理部36は、会議開始予定情報を取得する(ステップS704)。このステップS704の後、予約状況管理部36が行う処理は、図9に示すステップS501~ステップS503の処理と同じなので、説明を省略する。また、ステップS503に続くステップS204~ステップS210の処理は、図5に示すステップS204~ステップS210と同じなので、説明を省略する。したがって、これらの処理により、サーバ内周波数制御装置10Bは、スケジューラから会議開始予定情報を取得したときに、メディアサーバ2bに割り付けられているCPU1の動作周波数を高くして低遅延のサービスを提供することができる。
また、図11に示すように、予約スケジューラのAPL30cは、会議開始前に更新された予約情報がない場合(ステップS702:No)、会議終了により更新された情報があるか否かを判別する(ステップS705)。会議終了により更新された情報がない場合(ステップS705:No)、予約スケジューラのAPL30cは、ステップS701に戻る。一方、会議終了により更新された情報がある場合(ステップS705:Yes)、予約スケジューラのAPL30cは、会議終了情報を予約状況管理部36へ通知する(ステップS706)。具体的には、予約スケジューラのAPL30cは、会議終了情報として、受信元、送信元、会議の終了時間をそれぞれ予約状況管理部36へ通知する。
これにより、変形例に係る予約状況管理部36は、会議終了情報を取得する(ステップS707)。このステップS707の後、予約状況管理部36が行う処理は、図10に示すステップS601~ステップS603の処理と同じなので、説明を省略する。また、ステップS603に続くステップS304~ステップS310の処理は、図6に示すステップS304~ステップS310と同じなので、説明を省略する。したがって、これらの処理により、電話会議が終了したときに、サーバ内周波数制御装置10Bは、メディアサーバ2bに割り付けられているCPU1の動作周波数を低くして消費電力を低減することができる。
<ハードウェア構成>
本実施形態に係るサーバ内周波数制御装置10は、例えば図12に示すような構成のコンピュータ900によって実現される。
図12は、本実施形態に係るサーバ内周波数制御装置10の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。コンピュータ900は、CPU(Central Processing Unit)901、ROM(Read Only Memory)902、RAM(Random Access Memory)903、HDD(Hard Disk Drive)904、入出力I/F(Interface)905、通信I/F906およびメディアI/F907を有する。
CPU901は、ROM902またはHDD904に記憶されたプログラムに基づき作動し、制御部(図3に示す、事前把握部11、動作周波数変更部12)による制御を行う。ROM902は、コンピュータ900の起動時にCPU901により実行されるブートプログラムや、コンピュータ900のハードウェアに係るプログラム等を記憶する。
CPU901は、入出力I/F905を介して、マウスやキーボード等の入力装置910、および、ディスプレイやプリンタ等の出力装置911を制御する。CPU901は、入出力I/F905を介して、入力装置910からデータを取得するともに、生成したデータを出力装置911へ出力する。なお、プロセッサとしてCPU901とともに、GPU(Graphics Processing Unit)等を用いても良い。
HDD904は、CPU901により実行されるプログラムおよび当該プログラムによって使用されるデータ等を記憶する。通信I/F906は、通信網912を介して他の装置からデータを受信してCPU901へ出力し、また、CPU901が生成したデータを、通信網912を介して他の装置へ送信する。
メディアI/F907は、記録媒体913に格納されたプログラムまたはデータを読み取り、RAM903を介してCPU901へ出力する。CPU901は、目的の処理に係るプログラムを、メディアI/F907を介して記録媒体913からRAM903上にロードし、ロードしたプログラムを実行する。記録媒体913は、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto Optical disk)等の光磁気記録媒体、磁気記録媒体、導体メモリテープ媒体又は半導体メモリ等である。
例えば、コンピュータ900が実施形態に係るサーバ内周波数制御装置10として機能する場合、CPU901は、RAM903上にロードされたプログラムを実行することによりサーバ内周波数制御装置10の機能を実現する。また、HDD904には、RAM903内のデータが記憶される。CPU901は、目的の処理に係るプログラムを記録媒体913から読み取って実行する。この他、CPU901は、他の装置から通信網912を介して目的の処理に係るプログラムを読み込んでもよい。
また、コンピュータ900が実施形態に係るサーバ内周波数制御装置10Bとして機能する場合、同様に、CPU901は、例えばROM902またはHDD904に記憶されたプログラムに基づき作動し、制御部(図7に示す、事前把握部11B、動作周波数変更部12)による制御を行う。
[効果]
以上説明したように、サーバ内周波数制御装置10は、所定の方法でサーバ内での低遅延が要求されるサービスの開始を事前に把握すると共にサービスの終了を把握する事前把握部11と、事前に把握したサービスの開始時に、およびサービスの終了時に、サーバ内で予めサービスの受信元に割り当てられたCPUである制御対象のCPUの動作周波数を変更する動作周波数変更部12と、を備え、動作周波数変更部12は、サービスの開始時に制御対象のCPUの動作周波数を所定値よりも高くすると共に、サービスの終了時に制御対象のCPUの動作周波数を所定値よりも低くすることを特徴とする。
このようにすることで、サーバ内周波数制御装置10は、サーバ内での低遅延が要求される時間帯と、低遅延が要求されない時間帯と、を把握することができる。また、サーバ内周波数制御装置10は、低遅延が要求されるサービスの受信元に割り当てられたCPUの動作周波数を、そのサービスの開始時に高く設定するので、低遅延でサービスを提供することができる。加えて、サーバ内周波数制御装置10は、低遅延が要求されるサービスの受信元に割り当てられたCPUの動作周波数を、そのサービスの終了時に低く設定するので、消費電力を低減することができる。したがって、サーバ内周波数制御装置10は、低遅延と省電力とを両立する効果を奏する。
サーバ内周波数制御装置10において、事前把握部11は、所定の方法として、低遅延が要求されるサービスを実行するKernel処理のイベントとして予め登録されているイベントの発生事象を捕捉するイベント捕捉部23と、捕捉されたイベントがセッション確立を要求する制御信号のイベントである場合にサービスの開始を事前に把握し、当該制御信号からセッション確立の情報としてサービスの受信元とセッションIDとを取得し、捕捉されたイベントがセッション終了を要求する制御信号のイベントである場合にサービスの終了を把握し、当該制御信号からセッション終了の情報としてサービスの受信元とセッションIDとを取得する、イベント処理部24と、セッション確立の情報を取得した場合、当該サービスのセッションIDをサービスの受信元のセッション状態管理簿34に記録し、制御対象のCPUの動作周波数を高くする指示を動作周波数変更部12へ通知し、セッション終了の情報を取得した場合、当該サービスのセッションIDをセッション状態管理簿34から削除し、さらにセッション状態管理簿34からすべてのセッションIDが削除された場合、制御対象のCPUの動作周波数を低くする指示を動作周波数変更部12へ通知する、セッション状態管理部31と、を備えることを特徴とする。
このようにすることにより、サーバ内周波数制御装置10は、ストリームを制御する処理のイベントを捕捉し、イベント発生時にセッション制御信号を解析する。そして、サーバ内周波数制御装置10は、解析の結果、これから低遅延が要求されるサービスが開始することを把握した場合には、そのサービスの受信元に割り当てられているCPUの動作周波数を事前に高くしておくことができる。また、低遅延が要求されるサービスが終了することを把握した場合には、そのサービスの受信元に割り当てられているCPUの動作周波数を低くすることができる。
サーバ内周波数制御装置10Bにおいて、事前把握部11Bは、所定の方法として、低遅延が要求されるサービスの予約処理を行う予約スケジューラを監視して、予約されたサービスの開始予定情報およびサービスの終了情報を検知する予約状況管理部36を備え、予約状況管理部36は、サービスが開始する前に当該サービスの開始予定情報を取得した場合にサービスの開始を事前に把握し、当該サービスの送信元をサービスの受信元の予約状況管理簿37に記録し、制御対象のCPUの動作周波数を高くする指示を動作周波数変更部12へ通知し、サービスが終了した後に当該サービスの終了情報を取得した場合にサービスの終了を把握し、当該サービスの送信元を予約状況管理簿37から削除し、さらに、予約状況管理簿37からすべての送信元が削除された場合、制御対象のCPUの動作周波数を低くする指示を動作周波数変更部12へ通知することを特徴とする。
このようにすることにより、サーバ内周波数制御装置10Bは、予約スケジューラを監視することで、予約されたサービスの開始予定情報およびサービスの終了情報を検知する。サーバ内周波数制御装置10Bは、これから低遅延が要求されるサービスが開始することを把握した場合には、そのサービスの受信元に割り当てられているCPUの動作周波数を事前に高くしておくことができる。また、低遅延が要求されるサービスが終了することを把握した場合には、そのサービスの受信元に割り当てられているCPUの動作周波数を低くすることができる。
サーバ内周波数制御装置10Bにおいて、事前把握部11Bは、所定の方法として、低遅延が要求されるサービスの予約処理を行う予約スケジューラから、予約の更新がある度に、予約されたサービスの開始予定情報およびサービスの終了情報の通知を受ける予約状況管理部36を備え、予約状況管理部36は、サービスが開始する前に当該サービスの開始予定情報を取得した場合にサービスの開始を事前に把握し、当該サービスの送信元をサービスの受信元の予約状況管理簿37に記録し、制御対象のCPUの動作周波数を高くする指示を動作周波数変更部12へ通知し、サービスが終了した後に当該サービスの終了情報を取得した場合にサービスの終了を把握し、当該サービスの送信元を予約状況管理簿37から削除し、さらに、予約状況管理簿37からすべての送信元が削除された場合、制御対象のCPUの動作周波数を低くする指示を動作周波数変更部12へ通知することを特徴とする。
このようにすることにより、サーバ内周波数制御装置10Bは、予約スケジューラから、予約の更新がある度に、通知を受けることで、予約されたサービスの開始予定情報およびサービスの終了情報を検知する。サーバ内周波数制御装置10Bは、これから低遅延が要求されるサービスが開始することを把握した場合には、そのサービスの受信元に割り当てられているCPUの動作周波数を事前に高くしておくことができる。また、低遅延が要求されるサービスが終了することを把握した場合には、そのサービスの受信元に割り当てられているCPUの動作周波数を低くすることができる。
サーバ内周波数制御装置10,10Bにおいて、動作周波数変更部12は、事前把握部11,11Bから制御対象のCPUの動作周波数を変更する指示を受け取った場合に、当該CPUの現在の動作周波数を確認する周波数確認部32と、制御対象のCPUの現在の動作周波数と所定の規定値との比較結果に応じて当該CPUの動作周波数を変更する周波数変更部33と、を備え、周波数変更部33は、制御対象のCPUの動作周波数を高くする指示を受け取り、かつ、当該CPUの現在の動作周波数が規定値よりも小さい場合に、当該CPUの動作周波数を高くし、制御対象のCPUの動作周波数を低くする指示を受け取り、かつ、当該CPUの現在の動作周波数が規定値よりも大きい場合に、当該CPUの動作周波数を低くすることを特徴とする。
このようにすることにより、サーバ内周波数制御装置10,10Bは、事前把握部11,11Bによって事前に把握した情報だけではなく、CPUの現在の動作周波数に基づいて、その動作周波数を変更する必要があるかどうかを確認する。サーバ内周波数制御装置10,10Bは、CPUの現在の動作周波数が低いことを把握し、かつ、これから低遅延が要求される時間帯になる場合に制御対象のCPUの動作周波数を高くすることができる。また、サーバ内周波数制御装置10,10Bは、CPUの現在の動作周波数が高いことを把握し、かつ、低遅延が要求されない時間帯である場合に制御対象のCPUの動作周波数を低くすることができる。
なお、本発明は、以上説明した実施例に限定されるものではなく、多くの変形が本発明の技術的思想内で当分野において通常の知識を有する者により可能である。例えば、サーバ内周波数制御装置は、電話会議のメディア処理以外にも、低遅延にパケットを転送することが必要な種々のサービスに適用できる。また、サーバ内周波数制御装置は、リアルタイムストリームを事前にセッション制御信号等で管理する種々のサービスに適用できる。また、サーバ内周波数制御装置は、低遅延処理が要求される時間帯と、低遅延処理が要求されない時間帯とを含む種々のサービスに適用できる。また、サーバ内周波数制御装置は、低遅延処理が要求される時間帯にCPUの動作周波数を高く設定し、低遅延処理が要求されない時間帯にCPUの動作周波数を低く設定することで、低遅延かつ省電力のサービスを提供することができる。
1 電話会議システム
2a SIPサーバ
2b メディアサーバ
4 電話機
5 電話会議
6 情報端末
10,10B サーバ内周波数制御装置
11 事前把握部
12 動作周波数変更部
20 HW
21,21B OS
22 パケット処理部
23 イベント捕捉部
24 イベント処理部
25 確認コマンド実行部
26 変更コマンド実行部
30a,30b,30c APL
31 セッション状態管理部
32 周波数確認部
33 周波数変更部
34 セッション状態管理簿
35 CPU割付表
36 予約状況管理部
37 予約状況管理簿

Claims (7)

  1. 所定の方法でサーバ内での低遅延が要求されるサービスの開始を事前に把握すると共に前記サービスの終了を把握する把握部と、
    事前に把握した前記サービスの開始時に、および把握した前記サービスの終了時に、前記サーバ内で予め前記サービスの受信元に割り当てられたCPUである制御対象のCPUの動作周波数を変更する動作周波数変更部と、
    を備え、
    前記把握部は、
    前記サービスの開始時に、サービスを表す所定のサービスIDを、所定の管理簿であるサービス状態管理簿に記録して前記制御対象のCPUの動作周波数を高くする指示を前記動作周波数変更部へ通知し、
    前記サービスの終了時に、当該サービスIDを前記サービス状態管理簿から削除し、前記サービス状態管理簿から、当該サービスにおけるすべてのサービスIDが削除された場合、前記制御対象のCPUの動作周波数を低くする指示を前記動作周波数変更部へ通知し、
    前記動作周波数変更部は、
    前記サービスの開始時に前記制御対象のCPUの動作周波数を所定値よりも高くすると共に、前記サービスの終了時に前記制御対象のCPUの動作周波数を前記所定値よりも低くする
    ことを特徴とするサーバ内周波数制御装置。
  2. 所定の方法でサーバ内での低遅延が要求されるサービスの開始を事前に把握すると共に前記サービスの終了を把握する把握部と、
    事前に把握した前記サービスの開始時に、および把握した前記サービスの終了時に、前記サーバ内で予め前記サービスの受信元に割り当てられたCPUである制御対象のCPUの動作周波数を変更する動作周波数変更部と、
    を備え、
    記把握部は、
    前記所定の方法として、前記低遅延が要求されるサービスを実行するKernel処理のイベントとして予め登録されているイベントの発生事象を捕捉するイベント捕捉部と、
    捕捉されたイベントがセッション確立を要求する制御信号のイベントである場合に前記サービスの開始を事前に把握し、当該制御信号からセッション確立の情報として前記サービスの受信元とセッションIDとを取得し、
    捕捉されたイベントがセッション終了を要求する制御信号のイベントである場合に前記サービスの終了を把握し、当該制御信号からセッション終了の情報として前記サービスの受信元とセッションIDとを取得する、イベント処理部と、
    前記セッション確立の情報を取得した場合、当該サービスのセッションIDを前記サービスの受信元のセッション状態管理簿に記録し、前記制御対象のCPUの動作周波数を高くする指示を前記動作周波数変更部へ通知し、
    前記セッション終了の情報を取得した場合、当該サービスのセッションIDを前記セッション状態管理簿から削除し、さらに前記セッション状態管理簿からすべてのセッションIDが削除された場合、前記制御対象のCPUの動作周波数を低くする指示を前記動作周波数変更部へ通知する、セッション状態管理部と、
    を備え
    前記動作周波数変更部は、
    前記サービスの開始時に前記制御対象のCPUの動作周波数を所定値よりも高くすると共に、前記サービスの終了時に前記制御対象のCPUの動作周波数を前記所定値よりも低くする
    ことを特徴とするサーバ内周波数制御装置。
  3. 所定の方法でサーバ内での低遅延が要求されるサービスの開始を事前に把握すると共に前記サービスの終了を把握する把握部と、
    事前に把握した前記サービスの開始時に、および把握した前記サービスの終了時に、前記サーバ内で予め前記サービスの受信元に割り当てられたCPUである制御対象のCPUの動作周波数を変更する動作周波数変更部と、
    を備え、
    記把握部は、
    前記所定の方法として、前記低遅延が要求されるサービスの予約処理を行う予約スケジューラを監視して、予約された前記サービスの開始予定情報および前記サービスの終了情報を検知する予約状況管理部を備え、
    前記予約状況管理部は、
    前記サービスが開始する前に当該サービスの開始予定情報を取得した場合に前記サービスの開始を事前に把握し、当該サービスの送信元を前記サービスの受信元の予約状況管理簿に記録し、前記制御対象のCPUの動作周波数を高くする指示を前記動作周波数変更部へ通知し、
    前記サービスが終了した後に当該サービスの終了情報を取得した場合に前記サービスの終了を把握し、当該サービスの送信元を前記予約状況管理簿から削除し、さらに、前記予約状況管理簿からすべての送信元が削除された場合、前記制御対象のCPUの動作周波数を低くする指示を前記動作周波数変更部へ通知し、
    前記動作周波数変更部は、
    前記サービスの開始時に前記制御対象のCPUの動作周波数を所定値よりも高くすると共に、前記サービスの終了時に前記制御対象のCPUの動作周波数を前記所定値よりも低くする
    ことを特徴とするサーバ内周波数制御装置。
  4. 所定の方法でサーバ内での低遅延が要求されるサービスの開始を事前に把握すると共に前記サービスの終了を把握する把握部と、
    事前に把握した前記サービスの開始時に、および把握した前記サービスの終了時に、前記サーバ内で予め前記サービスの受信元に割り当てられたCPUである制御対象のCPUの動作周波数を変更する動作周波数変更部と、
    を備え、
    記把握部は、
    前記所定の方法として、前記低遅延が要求されるサービスの予約処理を行う予約スケジューラから、予約の更新がある度に、予約された前記サービスの開始予定情報および前記サービスの終了情報の通知を受ける予約状況管理部を備え、
    前記予約状況管理部は、
    前記サービスが開始する前に当該サービスの開始予定情報を取得した場合に前記サービスの開始を事前に把握し、当該サービスの送信元を前記サービスの受信元の予約状況管理簿に記録し、前記制御対象のCPUの動作周波数を高くする指示を前記動作周波数変更部へ通知し、
    前記サービスが終了した後に当該サービスの終了情報を取得した場合に前記サービスの終了を把握し、当該サービスの送信元を前記予約状況管理簿から削除し、さらに、前記予約状況管理簿からすべての送信元が削除された場合、前記制御対象のCPUの動作周波数を低くする指示を前記動作周波数変更部へ通知し、
    前記動作周波数変更部は、
    前記サービスの開始時に前記制御対象のCPUの動作周波数を所定値よりも高くすると共に、前記サービスの終了時に前記制御対象のCPUの動作周波数を前記所定値よりも低くする
    ことを特徴とするサーバ内周波数制御装置。
  5. 前記動作周波数変更部は、
    記把握部から前記制御対象のCPUの動作周波数を変更する指示を受け取った場合に、当該CPUの現在の動作周波数を確認する周波数確認部と、
    前記制御対象のCPUの現在の動作周波数と所定の規定値との比較結果に応じて当該CPUの動作周波数を変更する周波数変更部と、を備え、
    前記周波数変更部は、
    前記制御対象のCPUの動作周波数を高くする指示を受け取り、かつ、当該CPUの現在の動作周波数が前記規定値よりも小さい場合に、当該CPUの動作周波数を高くし、
    前記制御対象のCPUの動作周波数を低くする指示を受け取り、かつ、当該CPUの現在の動作周波数が前記規定値よりも大きい場合に、当該CPUの動作周波数を低くする
    ことを特徴とする請求項から請求項4のいずれか一項に記載のサーバ内周波数制御装置。
  6. サーバ内に配置されるサーバ内周波数制御装置の制御方法であって、
    前記サーバ内周波数制御装置は、
    所定の方法でサーバ内での低遅延が要求されるサービスの開始を事前に把握すると共に前記サービスの終了を把握するステップと、
    事前に把握した前記サービスの開始時に、および把握した前記サービスの終了時に、前記サーバ内で予め前記サービスの受信元に割り当てられたCPUである制御対象のCPUの動作周波数を変更するステップと、
    を実行し、
    前記把握するステップは、
    前記サービスの開始時に、サービスを表す所定のサービスIDを、所定の管理簿であるサービス状態管理簿に記録して前記制御対象のCPUの動作周波数を高くする指示を生成し、
    前記サービスの終了時に、当該サービスIDを前記サービス状態管理簿から削除し、前記サービス状態管理簿から、当該サービスにおけるすべてのサービスIDが削除された場合、前記制御対象のCPUの動作周波数を低くする指示を生成し、
    前記動作周波数を変更するステップは、
    前記サービスの開始時に、前記制御対象のCPUの動作周波数を所定値よりも高くすると共に、前記サービスの終了時に前記制御対象のCPUの動作周波数を前記所定値よりも低くする
    ことを特徴とする制御方法。
  7. サーバ内に配置されるサーバ内周波数制御装置としてのコンピュータに、
    所定の方法でサーバ内での低遅延が要求されるサービスの開始を事前に把握すると共に前記サービスの終了を把握する把握手順、
    事前に把握した前記サービスの開始時に、および把握した前記サービスの終了時に、前記サーバ内で予め前記サービスの受信元に割り当てられたCPUである制御対象のCPUの動作周波数を変更する動作周波数変更手順、
    を実行させるためのプログラムであって、
    前記把握手順は、
    前記サービスの開始時に、サービスを表す所定のサービスIDを、所定の管理簿であるサービス状態管理簿に記録して前記制御対象のCPUの動作周波数を高くする指示を生成し、
    前記サービスの終了時に、当該サービスIDを前記サービス状態管理簿から削除し、前記サービス状態管理簿から、当該サービスにおけるすべてのサービスIDが削除された場合、前記制御対象のCPUの動作周波数を低くする指示を生成し、
    前記動作周波数変更手順は、
    前記サービスの開始時に、前記制御対象のCPUの動作周波数を所定値よりも高くすると共に、前記サービスの終了時に前記制御対象のCPUの動作周波数を前記所定値よりも低くする
    ことを特徴とするプログラム。
JP2022502743A 2020-02-27 2020-02-27 サーバ内周波数制御装置、制御方法、プログラム Active JP7416198B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/008166 WO2021171520A1 (ja) 2020-02-27 2020-02-27 サーバ内周波数制御装置、制御方法、プログラム

Publications (2)

Publication Number Publication Date
JPWO2021171520A1 JPWO2021171520A1 (ja) 2021-09-02
JP7416198B2 true JP7416198B2 (ja) 2024-01-17

Family

ID=77491132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022502743A Active JP7416198B2 (ja) 2020-02-27 2020-02-27 サーバ内周波数制御装置、制御方法、プログラム

Country Status (3)

Country Link
US (1) US20230083604A1 (ja)
JP (1) JP7416198B2 (ja)
WO (1) WO2021171520A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004310756A (ja) 2003-03-26 2004-11-04 Matsushita Electric Ind Co Ltd 情報処理装置、電気機器、情報処理装置のクロック制御方法、クロック制御プログラム及びその記録媒体
JP2014182736A (ja) 2013-03-21 2014-09-29 Fujitsu Ltd 携帯情報端末、制御方法、制御プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3179054B2 (ja) * 1997-08-29 2001-06-25 富士通株式会社 データ処理装置及びクロック切換方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004310756A (ja) 2003-03-26 2004-11-04 Matsushita Electric Ind Co Ltd 情報処理装置、電気機器、情報処理装置のクロック制御方法、クロック制御プログラム及びその記録媒体
JP2014182736A (ja) 2013-03-21 2014-09-29 Fujitsu Ltd 携帯情報端末、制御方法、制御プログラム

Also Published As

Publication number Publication date
JPWO2021171520A1 (ja) 2021-09-02
US20230083604A1 (en) 2023-03-16
WO2021171520A1 (ja) 2021-09-02

Similar Documents

Publication Publication Date Title
US9626217B2 (en) Information processing apparatus, information processing method, recording medium and information processing system
US9191417B2 (en) Cross-process media handling in a voice-over-internet protocol (VOIP) application platform
US20140289415A1 (en) Continuous and concurrent device experience in a multi-device ecosystem
US20110173319A1 (en) Apparatus and method for operating server using virtualization technique
US8073919B2 (en) Mobile terminal, method, and computer program for communicating data with servers with data collision control
CN105262911B (zh) 语音通话中系统电话的处理方法、系统和装置
WO2022017007A1 (zh) 音频数据处理方法、服务器及存储介质
WO2012109961A1 (zh) 一种分配浏览器进程的方法及其设备
WO2024040875A1 (zh) 多视频播放的处理方法、装置、计算机设备及存储介质
US20150358249A1 (en) Communicating data in flows between first and second computers over a network
CN117472321B (zh) 音频处理方法、装置、存储介质及电子设备
US9319246B2 (en) Voice-over-internet protocol (VOIP) application platform
TWI418178B (zh) 利用代理伺服器控制內嵌裝置外部通訊之技術
US20090157896A1 (en) Tcp offload engine apparatus and method for system call processing for static file transmission
CN114296953A (zh) 一种多云异构系统及任务处理方法
JP7416198B2 (ja) サーバ内周波数制御装置、制御方法、プログラム
US9437205B2 (en) Method, application, and device for audio signal transmission
KR20090083067A (ko) 데이터 전송 방법 및 장치와 작업 수행 방법 및 장치
WO2024051148A1 (zh) 云游戏控制方法、装置、电子设备及存储介质
CN117407133A (zh) 一种任务处理方法、装置及计算机可读存储介质
JP4708818B2 (ja) ネットワーク装置及びその制御方法
KR20150054636A (ko) 복수의 전자 디바이스 사이에서 애플리케이션을 공유하는 방법 및 전자 디바이스
KR20110018618A (ko) 다중 쓰레드의 비동기 입출력 처리 장치 및 그 방법
JP4660404B2 (ja) データ転送装置及びデータ転送方法
WO2023024894A1 (zh) 一种多设备同步播放方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231120

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231218

R150 Certificate of patent or registration of utility model

Ref document number: 7416198

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150