JP2011164971A - Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム - Google Patents

Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム Download PDF

Info

Publication number
JP2011164971A
JP2011164971A JP2010027594A JP2010027594A JP2011164971A JP 2011164971 A JP2011164971 A JP 2011164971A JP 2010027594 A JP2010027594 A JP 2010027594A JP 2010027594 A JP2010027594 A JP 2010027594A JP 2011164971 A JP2011164971 A JP 2011164971A
Authority
JP
Japan
Prior art keywords
communication
bmc
bios
request
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010027594A
Other languages
English (en)
Other versions
JP5093259B2 (ja
Inventor
Yasuo Miyabe
保雄 宮部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010027594A priority Critical patent/JP5093259B2/ja
Priority to US13/022,976 priority patent/US8782643B2/en
Publication of JP2011164971A publication Critical patent/JP2011164971A/ja
Application granted granted Critical
Publication of JP5093259B2 publication Critical patent/JP5093259B2/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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】BIOSとBMCとの通信パスにおいて、OSの動作に影響を与えずに通信要求を処理する。
【解決手段】BIOS(Basic Input/Output System)とBMC(Baseboard Management Controller)との間の通信制御方法において、前記BIOS又はOSからの前記BMCに対する通信要求が発生した場合に、当該通信要求に伴う処理を、前記通信要求の内容を記憶すると共に前記通信要求に応じたBIOSとBMCとの間の通信を行うことなくOS(Operating System)に処理を再開させる第1の処理と、前記記憶した通信要求に応じたBIOSとBMCとの間の通信を実際に行う第2の処理とに分割して実施する。
【選択図】図1

Description

本発明はBIOS(Basic Input/Output System)とBMC(Baseboard Management Controller)との通信パスにおける通信要求の処理に関する。
ハイエンドサーバにおいて、OS(Operating System)からの指示、又は、BIOS自身の判断によって、BIOSはBMCと通信を行う。そしてこの通信によって、電源制御、動的構成制御、障害処理といった様々なプラットフォームマネジメント制御を行う。このようなプラットフォームマネジメント制御に関連する技術の一例が、特許文献1に記載されている。特許文献1に記載の技術では回復可能なエラーが発生した場合にエラーのソース及びソースの場所を示す情報をログするといったことが可能となる(例えば特許文献1の明細書段落番号[0010]乃至[0013]参照)。
また、OSやBIOSとBMCとの通信については業界標準の規格が策定されており、この規格が非特許文献1に記載されている。この非特許文献1では、OSやBIOSがBMCと通信を行う際のいくつかの方法が記載されている。
特開2007−109238号公報
「Intelligent Platform Management Interface Specification Second Generation v2.0」[online]平成22年2月10日検索インターネット〈http://www.intel.com/design/servers/ipmi/spec.htm〉
上述した非特許文献1に記載の規格に準拠した場合、OS運用中にBIOSがBMCと通信する契機は、主に3つある。
第一が、BIOSがOSに提供しているインタフェースのうち、BMCとの連携が必要なものをOSが呼び出した場合である。また、第二が、OSがACPI(Advanced Configuration and Power Interface)ツリーのメソッドを実行し、その処理の中でBMCとの連携が必要になった場合である。更に、第三が、障害が発生しBIOSがその障害処理のなかでBMCとの連携を必要とする場合である。
これら複数の契機はそれぞれ独立しているため、BIOSのBMCとの通信要求はいつでも複数発生しうる。しかし、BIOSとBMCとの通信パスの数はハードウェア制約上限られているため全ての通信要求を処理しきれない状況が発生する。このような場合には、一般的にBIOSは、BIOSとBMCとの通信パスをセマフォによって排他制御し、セマフォがロックできるまで通信を起動するのをBIOS内部で待つ処理を行っていた。
ここで、BIOSの処理を行っている間、そのプロセッサはOSのタスクを実行することができない。そのため、一般的な方式では、BMCの性能低下などで通信に時間が掛かった場合、OSの行うべき処理が実施されず、OSが異常を検出し、最悪の場合、システムがシャットダウンする可能性があった。
つまり、BIOSで複数の通信要求が同時に発生した場合や、性能低下などで通信を受け取るBMCの通信処理に時間が掛かった場合に、それらのBIOSからの通信をOSの動作に影響を与えず行うための技術が必要であるといえる。
そこで、本発明はBIOSとBMCとの通信パスにおいて、OSの動作に影響を与えずに通信要求を処理することが可能な、BIOSとBMCとの間の通信パス強化方法、その装置及びそのプログラムを提供することを目的とする。
本発明の第1の観点によれば、BIOS(Basic Input/Output System)とBMC(Baseboard Management Controller)との間の通信制御方法において、前記BIOS又はOSからの前記BMCに対する通信要求が発生した場合に、当該通信要求に伴う処理を、前記通信要求の内容を記憶すると共に前記通信要求に応じたBIOSとBMCとの間の通信を行うことなくOS(Operating System)に処理を再開させる第1の処理と、前記記憶した通信要求に応じたBIOSとBMCとの間の通信を実際に行う第2の処理とに分割して実施することを特徴とする通信制御方法が提供される。
本発明の第2の観点によれば、BIOS(Basic Input/Output System)とBMC(Baseboard Management Controller)との間の通信制御装置において、前記BIOS又はOSからの前記BMCに対する通信要求が発生した場合に、当該通信要求に伴う処理を、前記通信要求の内容を記憶すると共に前記通信要求に応じたBIOSとBMCとの間の通信を行うことなくOS(Operating System)に処理を再開させる第1の処理と、前記記憶した通信要求に応じたBIOSとBMCとの間の通信を実際に行う第2の処理とに分割して実施することを特徴とする通信制御装置が提供される。
本発明の第3の観点によれば、BIOS(Basic Input/Output System)とBMC(Baseboard Management Controller)との間の通信制御プログラムにおいて、前記BIOS又はOSからの前記BMCに対する通信要求が発生した場合に、当該通信要求に伴う処理を、前記通信要求の内容を記憶すると共に前記通信要求に応じたBIOSとBMCとの間の通信を行うことなくOS(Operating System)に処理を再開させる第1の処理と、前記記憶した通信要求に応じたBIOSとBMCとの間の通信を実際に行う第2の処理とに分割して実施する通信制御装置としてコンピュータを機能させることを特徴とする通信制御プログラムが提供される。
本発明によれば、通信キューと定期的なBIOSへの割り込みを用いることにより、BMCとの通信のBIOSによる制御を分割して行うことから、OSの処理に影響を与えることのないBIOSのBMCとの通信処理が可能となる。
本発明の実施形態の基本的構成を表す図である。 本発明の実施形態における通信キュー及び通信エントリの基本的構成を表す図である。 本発明の実施形態の基本的動作を表す図(1/5)である。 本発明の実施形態の基本的動作を表す図(2/5)である。 本発明の実施形態の基本的動作を表す図(3/5)である。 本発明の実施形態の基本的動作を表す図(4/5)である。 本発明の実施形態の基本的動作を表す図(5/5)である。 本発明の実施形態の変形例の基本的構成を表す図である。
まず、本発明の実施形態の概略を説明する。本発明の実施形態はBIOSにBMCとの通信要求を蓄えるキューを設け、さらにBIOSに対して定期的に割り込みを上げる部を設ける。これらを利用しBIOSとBMCの間の通信のBIOSによる制御を分割して行う。この分割を行うことにより、BIOSがプロセッサを連続して占有する時間を短縮し、OSの動作に影響を与えないようにOSのタスクを実行しながら、複数のBIOSのBMCへの通信要求を処理することができるようになる。以上が本願発明の実施形態の概略である。
次に、本発明の実施形態の構成について図面を参照して詳細に説明する。
図1を参照すると本発明の実施形態は、OS100とBIOS200とプロセッサ300とBMC400を有している。
OS100とBIOS200は、プロセッサ300にて実行される。通常プロセッサ300は、OS100の処理を実施している。そして、プロセッサ300は、BIOS200の処理を行っている間、OS100の処理を行うことができない。
BMC400は、プロセッサ300とは別のプロセッサを有している(当該別のプロセッサの図示は省略する)。
BIOS200はOS100に対して、OS向けインタフェース110とACPIツリー120を提供している。OS100はこれらOS向けインタフェース110及びACPIツリー120を通じてBIOS200が提供する機能を利用する。
ここで、OS向けインタフェース110の具体例としてはハイエンドサーバで標準的に利用されているEFI(Extensible Firmware Interface)サービスなどがある。また、OS向けインタフェース110によってBIOS200がOS100に提供する機能としては、システムのシャットダウン機能などがある。一方、ACPIツリー120にはいくつかのメソッド(関数)が定義されている。そして、OS100はACPIツリー120内のメソッドを呼び出すことにより、システムの構成要素を動的に変更させるなどBIOS200が提供する機能を利用する。
なお、図1に例示しているSleepメソッド121は、ACPIツリー120内に存在するACPIの標準規格で規定されているメソッドである。Sleepメソッド121を呼び出した場合、そのプロセッサの制御は、Sleepメソッド121に指定した時間が経過した後で、呼び出し側に戻る。Sleepメソッド121を呼び出してから呼び出し元に戻るまでの待ち時間の間、Sleepメソッド121を呼び出したプロセッサはOSのタスクスケジューリングの対象となる。この挙動は、Sleepメソッドの標準仕様である。
障害割り込み部310及び定期割り込み部320は、通常はOS100の処理を行っているプロセッサ300の制御をBIOS200に割り込ませるための部である。
障害割り込み部310は、障害が発生した場合に、プロセッサ300の制御をBIOS200に割り込ませる。
一方、定期割り込み部320は、BIOS200の通信要求格納部220が指示した時間ごとに、プロセッサ300の制御をBIOS200に割り込ませる。
BIOS200は、OS向け処理実行部210と通信要求格納部220と障害処理部230と通信処理部240と通信キュー500を有している。
OS向け処理実行部210は、OS向けインタフェース110及びACPIツリー120を通じて呼び出され、OS100から指示された処理を行う。
通信要求格納部220は、OS向け処理実行部210と障害処理実行部230から呼び出され、BMC400に対する通信要求を通信キュー500に格納する。
通信キュー500はBIOS200が管理するメモリ上に構築される。通信キュー500はBMC400に対する通信要求を保持する。
障害処理部230は、障害割り込み部310から呼び出され、障害ログの採取などの障害処理を行う。
通信処理部240は、定期割り込み部320から呼び出され、通信キュー500に格納されたBMC400との通信要求を処理する。
次に図1及び図2と、図3−1乃至図3−5のフローチャートを参照して本実施形態の動作について詳細に説明する。以下では、4つの場合の動作について説明する。
まず、図3−1のフローチャートを参照してOS100がOS向けインタフェース110を通じてBIOS100の機能を実行しようとした場合の動作について説明する。
まず、OS100がOS向けインタフェース110を通じてBIOS100の機能を実行しようとする(ステップS11)。
この場合、プロセッサ300はOS100の処理をやめ、OS向け処理実行部210の処理を開始する(ステップS11)。
ここでOS向け処理実行部210の処理がBMC400との通信を必要とする場合(ステップS12においてYes)、OS向け処理実行部210は、通信要求格納部220を呼び出し、通信要求格納部220に対して処理の実行を指示する(ステップS13)。
ステップS200における指示を受けた通信要求格納部220は通信キュー500に通信エントリ600を格納する(ステップS14)。
ここで、通信エントリ600について図2を参照して説明する。通信エントリ600は、通信種別610と完了通知メモリアドレス620と通信内容630と通信要求発生時刻640とを有している。
通信種別610には、この通信要求がOSインタフェース110を契機に発生したものであることを示す値を格納する。完了通知メモリアドレス620の値はこの場合、特に規定しない。通信内容630には、BMC400に送信する内容を格納する。通信要求発生時刻640には現在の時刻を示す値を格納する。
その後、通信要求格納部220は、定期割り込み部320にBIOS200への割り込みを予約する(ステップS15)。この通信要求格納部220処理は、ごく短時間で完了する。その理由は、この処理がメモリ上のデータを書き換えるだけで完了するためである。
通信要求格納部220の実行完了後、OS向け処理実行部210の実行も完了し、プロセッサ300は通常通りOS100の処理を行うようになる(ステップS16)。
上述したように、プロセッサ300が再びOS100の処理を実行するまでの間のBIOS200の処理中に含まれるBMC400と通信するための処理は、ごく短時間で完了する。そのため、BMC400との通信のためのBIOS200処理によってOS100の動作に悪影響を与えることはない。
次に、図3−2のフローチャートを参照して何らかの障害が発生した場合にプロセッサ300の処理が障害割り込み部310によってBIOS200に割り込んだ場合の動作を説明する。
まず、障害割り込み部310によってBIOS200に割り込みが入る(ステップS20)。
割り込みが発生するとプロセッサ300はOS100の処理をやめ、BIOS200の障害処理部230の実行を開始する(ステップS21)。
障害処理部230の処理がBMC400との通信を必要とする場合(ステップS22においてYes)、障害処理部230は通信要求格納部220を呼び出し、通信要求格納部220に対して処理の実行を指示する(ステップS23)。
障害処理部230から呼び出された通信要求格納部220の処理は、OS向け処理実行部210から呼び出されたときの処理と比べ、通信種別610に格納する値が、この通信が障害発生を契機に発生したものであることを示す値に代わるだけで同等であり、ごく短時間で完了する(ステップS24、ステップS25)。
通信要求格納部220終了後、障害処理部230は速やかに割り込みから復帰する(ステップS26)。これによりプロセッサ300は再びOS100の処理を行うようになる。割り込み復帰までにBIOS200が行うBMC400との通信のための処理はごく短時間で終わるため、BIOS200の通信のための処理がOS100の動作に悪影響を与えることはない。
次に、図3−3のフローチャートを参照してOS100がACPIツリー120を通じてBIOS200の機能を実行しようとした場合の動作を説明する。
OS向けインタフェース110経由でBIOS200の機能を実行したときと同様に、プロセッサ300はOS100の処理をやめ、OS向け処理実行部210を実行する。そして、BMC400との通信を必要とする場合(ステップS32においてYes)、通信要求格納部220を実行する(ステップS30〜ステップS33)。
通信要求格納部220の処理は、OS向けインタフェース110を通じてBIOS200の処理が呼び出されたときに比べ、以下の2点において異なるだけで同等であり、ごく短時間で終了する。ここで、第1の異なる点は、通信種別610にこの通信がACPIツリー120契機で発生したことを示す値が格納されることである。また第2の異なる点は、完了通知メモリアドレス620にBIOS200とACPIツリー120からアクセス可能なメモリ領域のあるアドレスを格納することである(ステップS34、ステップS35)。
通信要求格納部220の処理が完了した後、OS向け処理実行部210の処理も完了し、プロセッサ300はACPIツリー120の処理を実行するようになる(ステップS36においてNo、ステップS38)。
ここでACPIツリー120の処理の中には、通信キュー500に格納した通信エントリ600の通信が完了するまで処理を完了できないものが存在する。そのような処理の場合(ステップS36においてYes)、ACPIツリー120は完了通知メモリアドレス620に格納したアドレスが指し示す領域の値が所定の値になるまで、Sleepメソッド121を呼びながらポーリングで待つ(ステップS37)。この待ち処理は、OS100の動作に悪影響を与えない。その理由は、Sleepメソッド121を呼び出したプロセッサ300はOS100のタスクスケジューリングの対象となり、OS100の処理を実行できるからである。
次に、図3−4及び図3−5のフローチャートを参照して通信キュー500に蓄えられた通信エントリ600に対する処理について説明する。
まず、通信要求格納部220によって定期割り込み部320に予約されたBIOS200への割り込みが発生する(ステップS40)。
次に、プロセッサ300は通信処理部240を実行する(ステップS41)。
通信処理部240は、まず通信キュー500の内容を確認し、通信エントリ600が蓄えられているか確認する(ステップS42)。
通信エントリ600がない場合(ステップS42においてNo)、通信処理部240は速やかに割り込みから復帰する。一方、通信エントリ600が有る場合(ステップS42においてYes)、通信処理部240はBMC400との通信パスを参照し、通信が可能な状態であるかを確認する(ステップS43)。
通信が不可な状態であれば(ステップS43においてNo)、通信処理部240は速やかに割り込みから復帰する。一方、通信が可能な状態であれば(ステップS43においてYes)、通信処理部240は通信エントリ600の通信内容630の内容に従って、BMC400との通信を起動する(ステップS44)。
但しステップS44において、例えば、通信内容630の内容がBMC400に現在のOS100の時刻を送信するようなものであった場合、通信内容630に含まれている時刻の情報は、通信要求が発生した時点での値になっている。これをそのままBMC400に送信すると、通信要求が発生した時から実際にBMC400との通信が行われるまでの時間差が存在するため、BMC400には現在のOS100の時刻が正しく送られないことになる。そこで、通信処理部240は、このような時刻情報を含む通信については、通信要求発生時刻640の内容によって、BMC400との通信内容を適宜補正する。通信を起動した通信処理部240は速やかに割り込みから復帰する。
通信処理部240の割り込み処理から復帰したプロセッサ300は、OS100の処理を実行する(ステップS45)。
そして一定時間後、定期割り込み部320によって再びBIOS200への割り込みが発生し、通信部240を実行する(ステップS46)。
ここで、前回の通信部240の実行で、BMC400との通信を開始していた場合、通信部240はBMC400との通信パスを参照し、通信が完了しているかを確認する(ステップS47)。
通信が完了していない場合(ステップS47においてNo)、通信処理部240は速やかに割り込みから復帰する。
一方、通信が完了している場合(ステップS47においてYES)、通信部240はその通信に対応する通信エントリ600を通信キュー500から取り除く(ステップS48)。その際、通信種別610がこの通信がACPIツリー120契機で発生したことを示す値であった場合(ステップS49においてYES)、通信部240は完了通知メモリアドレス620に格納されたアドレスが指し示す領域に特定の値を書き込む(ステップS50)。その後、通信処理部240は速やかに割り込みから復帰する。ステップS50における書き込みによって、ACPIツリー120でSleepメソッド121を呼び出しながら通信の完了を待っている処理が完了する。
一方、通信種別610がこの通信がACPIツリー120契機で発生したことを示す値でなかった場合(ステップS49においてNO)、通信エントリ600を通信キュー500を取り除いた通信処理部240は、速やかに割り込みから復帰する。
以上、何れの場合においても通信処理部240の実行はOS100の動作に影響を与えない。その理由は、通信処理部240の処理の中には待ち処理などが含まれず、プロセッサ300が通信処理部240を実行している時間はごく短時間であるためである。
次に、上述した実施形態の変形例について図4を参照して説明する。
図4を参照すると、本実施形態は図1に示した実施形態と比較した場合、相違点は3つある。1つめは定期割り込み部320がないことである。2つめはOS割り込み部330があることである。3つめはOS100がBIOS呼び出し部130を有することである。
なお、図4において図1とは異なる接続を明確にするために、図1とは異なる接続を示す矢印線は太く表記されている。
OS割り込み部330は、定期的にプロセッサ300にBIOS呼び出し部130を実行させる。BIOS呼び出し部130は、OS向けインタフェース110を介してBIOS200の通信処理部240を呼び出す。
呼び出された通信処理部240の処理は、先の実施形態と同じである。また、通信キュー500に通信エントリ600を格納する処理も、先の実施形態と同じである。よってこれらの処理については再度の説明を省略する。
以上説明した本発明の実施形態は、以下に示すような効果を奏する。
第一の効果は、OSの処理に影響を与えることなく、BIOSのBMCとの通信処理が可能になることである。
その理由は、通信キューと定期的なBIOSへの割り込みを用いることにより、BMCとの通信のBIOSによる制御を分割して行うことから、BIOSがプロセッサを連続して占有する時間を短縮することができるためである。
第二の効果は、BMCへの複数の通信要求が発生したとしても、BIOSがそれら通信要求を漏れなく処理することができることである。
その理由は、通信要求発生時の通信処理を、ごく短時間で完了する通信キューへの通信要求の格納だけにし、実際のBMCへの通信はその後に行うようにすることで、通信要求発生時の処理時間をごく短時間で終わらせているためである。
なお、本発明の実施形態であるBIOSとBMCとの間の通信パス強化装置は、ハードウェアにより実現することもできるが、コンピュータをそのBIOSとBMCとの間の通信パス強化装置として機能させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
また、本発明の実施形態によるBIOSとBMCとの間の通信パス強化方法は、ハードウェアにより実現することもできるが、コンピュータにその方法を実行させるためのプログラムをコンピュータがコンピュータ読み取り可能な記録媒体から読み込んで実行することによっても実現することができる。
また、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1) BIOS(Basic Input/Output System)とBMC(Baseboard Management Controller)との間の通信制御装置において、
前記BIOS又はOSからの前記BMCに対する通信要求が発生した場合に、当該通信要求に伴う処理を、前記通信要求の内容を記憶すると共に前記通信要求に応じたBIOSとBMCとの間の通信を行うことなくOS(Operating System)に処理を再開させる第1の処理と、前記記憶した通信要求に応じたBIOSとBMCとの間の通信を実際に行う第2の処理とに分割して実施することを特徴とする通信制御装置。
(付記2) 付記1に記載の通信制御装置において、
前記BMCに対する前記通信要求の内容を特定するための情報である通信エントリを格納するための通信キューを用意する手段と、
前記通信要求が発生した場合に、一時的に前記OSの処理を中断させると共に当該通信要求に応じた前記通信エントリを前記通信キューに格納し、当該格納した通信エントリの処理のために前記BIOSへの定期的な割り込みの予約を行い、その後前記OSに処理を再開させる通信要求格納手段と、
を備えることを特徴とする通信制御装置。
(付記3) 付記2に記載の通信制御装置において、
前記予約に応じた周期で前記BIOSへの割り込みを発生させると共に一時的に前記OSの処理を中断させる定期割り込み手段と、
前記割り込みが発生すると前記通信キューを確認し、前記通信キューに前記通信エントリが格納されており且つ前記BMCとの通信が可能な場合は、前記通信要求に応じた通信を前記BMCとの間で開始すると共に前記OSに処理を再開させる通信処理手段と、
を更に備えることを特徴とする通信制御装置。
(付記4) 付記3に記載の通信制御装置において、
前記通信処理手段において前記通信を前記BMCとの間で開始した後に、再度前記割り込みが発生すると再度前記通信キューを確認し、当該確認の結果前記通信が既に完了している通信エントリが存在する場合は、当該通信エントリを削除することを特徴とする通信制御装置。
(付記5) 付記1乃至4の何れかに記載の通信制御装置において、
前記通信要求が、ACPIツリーからの通信要求であって前記BMCとの通信が終了するまでは処理完了できない内容のものである場合に、当該ACPIツリーが前記第1の処理と前記第2の処理の間Sleepメソッドを呼びながらポーリングで待つことを特徴とする通信制御装置。
(付記6) BIOS(Basic Input/Output System)とBMC(Baseboard Management Controller)との間の通信制御プログラムにおいて、
前記BIOS又はOSからの前記BMCに対する通信要求が発生した場合に、当該通信要求に伴う処理を、前記通信要求の内容を記憶すると共に前記通信要求に応じたBIOSとBMCとの間の通信を行うことなくOS(Operating System)に処理を再開させる第1の処理と、前記記憶した通信要求に応じたBIOSとBMCとの間の通信を実際に行う第2の処理とに分割して実施する通信制御装置としてコンピュータを機能させることを特徴とする通信制御プログラム。
(付記7) 付記6に記載の通信制御プログラムにおいて、
前記コンピュータが、
前記BMCに対する前記通信要求の内容を特定するための情報である通信エントリを格納するための通信キューを用意する手段と、
前記通信要求が発生した場合に、一時的に前記OSの処理を中断させると共に当該通信要求に応じた前記通信エントリを前記通信キューに格納し、当該格納した通信エントリの処理のために前記BIOSへの定期的な割り込みの予約を行い、その後前記OSに処理を再開させる通信要求格納手段と、
を備えることを特徴とする通信制御プログラム。
(付記8) 付記7に記載の通信制御プログラムにおいて、
前記予約に応じた周期で前記BIOSへの割り込みを発生させると共に一時的に前記OSの処理を中断させる定期割り込み手段と、
前記割り込みが発生すると前記通信キューを確認し、前記通信キューに前記通信エントリが格納されており且つ前記BMCとの通信が可能な場合は、前記通信要求に応じた通信を前記BMCとの間で開始すると共に前記OSに処理を再開させる通信処理手段と、
を備えることを特徴とする通信制御プログラム。
(付記9) 付記8に記載の通信制御プログラムにおいて、
前記通信処理手段において前記通信を前記BMCとの間で開始した後に、再度前記割り込みが発生すると再度前記通信キューを確認し、当該確認の結果前記通信が既に完了している通信エントリが存在する場合は、当該通信エントリを削除することを特徴とする通信制御プログラム。
(付記10) 付記6乃至9の何れかに記載の通信制御プログラムにおいて、
前記通信要求が、ACPIツリーからの通信要求であって前記BMCとの通信が終了するまでは処理完了できない内容のものである場合に、当該ACPIツリーが前記第1の処理と前記第2の処理の間Sleepメソッドを呼びながらポーリングで待つことを特徴とする通信制御プログラム。
本発明によれば、BIOSがその外部と行う通信をOSに影響を与えずに行えるようになる。そのため、OSとBIOSの外部に、BIOSとの通信を行う何かしらの要素が存在する計算機一般に本発明は適用可能である。
100 OS
110 OS向けインタフェース
120 ACPIツリー
121 Sleepメソッド
130 BIOS呼び出し部
200 BIOS
210 OS向け処理実行部
220 通信要求格納部
230 障害処理部
240 通信処理部
300 プロセッサ
310 障害割り込み部
320 定期割り込み部
330 OS割り込み部
400 BMC
500 通信キュー
600 通信エントリ
610 通信種別
620 完了通知メモリアドレス
630 通信内容
640 通信要求発生時刻

Claims (10)

  1. BIOS(Basic Input/Output System)とBMC(Baseboard Management Controller)との間の通信制御方法において、
    前記BIOS又はOSからの前記BMCに対する通信要求が発生した場合に、当該通信要求に伴う処理を、前記通信要求の内容を記憶すると共に前記通信要求に応じたBIOSとBMCとの間の通信を行うことなくOS(Operating System)に処理を再開させる第1の処理と、前記記憶した通信要求に応じたBIOSとBMCとの間の通信を実際に行う第2の処理とに分割して実施することを特徴とする通信制御方法。
  2. 請求項1に記載の通信制御方法において、
    前記BMCに対する前記通信要求の内容を特定するための情報である通信エントリを格納するための通信キューを用意するステップと、
    前記通信要求が発生した場合に、一時的に前記OSの処理を中断させると共に当該通信要求に応じた前記通信エントリを前記通信キューに格納し、当該格納した通信エントリの処理のために前記BIOSへの定期的な割り込みの予約を行い、その後前記OSに処理を再開させる通信要求格納ステップと、
    を備えることを特徴とする通信制御方法。
  3. 請求項2に記載の通信制御方法において、
    前記予約に応じた周期で前記BIOSへの割り込みを発生させると共に一時的に前記OSの処理を中断させる定期割り込みステップと、
    前記割り込みが発生すると前記通信キューを確認し、前記通信キューに前記通信エントリが格納されており且つ前記BMCとの通信が可能な場合は、前記通信要求に応じた通信を前記BMCとの間で開始すると共に前記OSに処理を再開させる通信処理ステップと、
    を更に備えることを特徴とする通信制御方法。
  4. 請求項3に記載の通信制御方法において、
    前記通信処理ステップにおいて前記通信を前記BMCとの間で開始した後に、再度前記割り込みが発生すると再度前記通信キューを確認し、当該確認の結果前記通信が既に完了している通信エントリが存在する場合は、当該通信エントリを削除することを特徴とする通信制御方法。
  5. 請求項1乃至4の何れか1項に記載の通信制御方法において、
    前記通信要求が、ACPIツリーからの通信要求であって前記BMCとの通信が終了するまでは処理完了できない内容のものである場合に、当該ACPIツリーが前記第1の処理と前記第2の処理の間Sleepメソッドを呼びながらポーリングで待つことを特徴とする通信制御方法。
  6. BIOS(Basic Input/Output System)とBMC(Baseboard Management Controller)との間の通信制御装置において、
    前記BIOS又はOSからの前記BMCに対する通信要求が発生した場合に、当該通信要求に伴う処理を、前記通信要求の内容を記憶すると共に前記通信要求に応じたBIOSとBMCとの間の通信を行うことなくOS(Operating System)に処理を再開させる第1の処理と、前記記憶した通信要求に応じたBIOSとBMCとの間の通信を実際に行う第2の処理とに分割して実施することを特徴とする通信制御装置。
  7. 請求項6に記載の通信制御装置において、
    前記BMCに対する前記通信要求の内容を特定するための情報である通信エントリを格納するための通信キューを用意する手段と、
    前記通信要求が発生した場合に、一時的に前記OSの処理を中断させると共に当該通信要求に応じた前記通信エントリを前記通信キューに格納し、当該格納した通信エントリの処理のために前記BIOSへの定期的な割り込みの予約を行い、その後前記OSに処理を再開させる通信要求格納手段と、
    を備えることを特徴とする通信制御装置。
  8. 請求項7に記載の通信制御装置において、
    前記予約に応じた周期で前記BIOSへの割り込みを発生させると共に一時的に前記OSの処理を中断させる定期割り込み手段と、
    前記割り込みが発生すると前記通信キューを確認し、前記通信キューに前記通信エントリが格納されており且つ前記BMCとの通信が可能な場合は、前記通信要求に応じた通信を前記BMCとの間で開始すると共に前記OSに処理を再開させる通信処理手段と、
    を更に備えることを特徴とする通信制御装置。
  9. 請求項8に記載の通信制御装置において、
    前記通信処理手段において前記通信を前記BMCとの間で開始した後に、再度前記割り込みが発生すると再度前記通信キューを確認し、当該確認の結果前記通信が既に完了している通信エントリが存在する場合は、当該通信エントリを削除することを特徴とする通信制御装置。
  10. BIOS(Basic Input/Output System)とBMC(Baseboard Management Controller)との間の通信制御プログラムにおいて、
    前記BIOS又はOSからの前記BMCに対する通信要求が発生した場合に、当該通信要求に伴う処理を、前記通信要求の内容を記憶すると共に前記通信要求に応じたBIOSとBMCとの間の通信を行うことなくOS(Operating System)に処理を再開させる第1の処理と、前記記憶した通信要求に応じたBIOSとBMCとの間の通信を実際に行う第2の処理とに分割して実施する通信制御装置としてコンピュータを機能させることを特徴とする通信制御プログラム。
JP2010027594A 2010-02-10 2010-02-10 Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム Expired - Fee Related JP5093259B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010027594A JP5093259B2 (ja) 2010-02-10 2010-02-10 Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム
US13/022,976 US8782643B2 (en) 2010-02-10 2011-02-08 Device and method for controlling communication between BIOS and BMC

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010027594A JP5093259B2 (ja) 2010-02-10 2010-02-10 Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム

Publications (2)

Publication Number Publication Date
JP2011164971A true JP2011164971A (ja) 2011-08-25
JP5093259B2 JP5093259B2 (ja) 2012-12-12

Family

ID=44354664

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010027594A Expired - Fee Related JP5093259B2 (ja) 2010-02-10 2010-02-10 Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム

Country Status (2)

Country Link
US (1) US8782643B2 (ja)
JP (1) JP5093259B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215751A (ja) * 2010-03-31 2011-10-27 Nec Corp コンピュータシステム及びその余剰コアを用いた通信エミュレート方法
JP2014170308A (ja) * 2013-03-01 2014-09-18 Nec Computertechno Ltd 情報処理装置、bmc切り替え方法、bmc切り替えプログラム
JP2018160009A (ja) * 2017-03-22 2018-10-11 Necプラットフォームズ株式会社 障害情報処理プログラム、コンピュータ、障害通知方法、コンピュータシステム
JP2022104857A (ja) * 2020-12-30 2022-07-12 技嘉科技股▲ふん▼有限公司 Http/httpsを介したサーバファームウェアのデータ転送方法及び装置
CN114765604A (zh) * 2020-12-30 2022-07-19 技嘉科技股份有限公司 通过http/https的服务器固件的数据传输方法及装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013027297A1 (ja) * 2011-08-25 2013-02-28 富士通株式会社 半導体装置、管理装置、及びデータ処理装置
TW201602336A (zh) 2014-06-09 2016-01-16 W R 康格雷氏公司 天然油及脂之催化脫氧方法
CN106936616B (zh) * 2015-12-31 2020-01-03 伊姆西公司 备份通信方法和装置
JP2018055337A (ja) * 2016-09-28 2018-04-05 富士通株式会社 情報処理装置およびプログラム
CN109117289B (zh) * 2018-08-15 2022-02-22 英业达科技有限公司 服务器系统及管理双基板管理控制器的方法
US11403112B2 (en) * 2018-11-08 2022-08-02 Ricoh Company, Ltd. Information processing apparatus, method of starting up an information processing apparatus
CN111143132B (zh) * 2019-12-30 2022-06-10 山东英信计算机技术有限公司 一种bios恢复方法、装置、设备及可读存储介质
CN112130910A (zh) * 2020-08-24 2020-12-25 中科可控信息产业有限公司 设备启动方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296320A (ja) * 1998-04-07 1999-10-29 Toshiba Tec Corp 情報処理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167511A (en) * 1998-06-15 2000-12-26 Phoenix Technologies Ltd. Method to reflect BIOS set up changes into ACPI machine language
US6701464B2 (en) * 2001-03-01 2004-03-02 International Business Machines Corporation Method and system for reporting error logs within a logical partition environment
US7440998B2 (en) * 2003-06-18 2008-10-21 Intel Corporation Provisioning for a modular server
US7117353B2 (en) * 2003-09-04 2006-10-03 Intel Corporation Methods and apparatus to enable console redirection in a multiple execution environment
TWI255996B (en) * 2004-05-31 2006-06-01 Wellsyn Technology Inc Advanced IPMI system with multi-message processing and configurable performance and method for the same
US20060143209A1 (en) * 2004-12-29 2006-06-29 Zimmer Vincent J Remote management of a computer system
US7269534B2 (en) * 2005-03-11 2007-09-11 Dell Products L.P. Method to reduce IPMB traffic and improve performance for accessing sensor data
US20070088988A1 (en) 2005-10-14 2007-04-19 Dell Products L.P. System and method for logging recoverable errors
US7986786B2 (en) * 2006-11-30 2011-07-26 Hewlett-Packard Development Company, L.P. Methods and systems for utilizing cryptographic functions of a cryptographic co-processor
US20080256400A1 (en) * 2007-04-16 2008-10-16 Chih-Cheng Yang System and Method for Information Handling System Error Handling
US7613861B2 (en) * 2007-08-14 2009-11-03 Dell Products, Lp System and method of obtaining error data within an information handling system
US8082454B2 (en) 2007-11-07 2011-12-20 International Business Machines Corporation Managing power consumption based on historical average

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11296320A (ja) * 1998-04-07 1999-10-29 Toshiba Tec Corp 情報処理装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011215751A (ja) * 2010-03-31 2011-10-27 Nec Corp コンピュータシステム及びその余剰コアを用いた通信エミュレート方法
JP2014170308A (ja) * 2013-03-01 2014-09-18 Nec Computertechno Ltd 情報処理装置、bmc切り替え方法、bmc切り替えプログラム
JP2018160009A (ja) * 2017-03-22 2018-10-11 Necプラットフォームズ株式会社 障害情報処理プログラム、コンピュータ、障害通知方法、コンピュータシステム
JP7063445B2 (ja) 2017-03-22 2022-05-09 Necプラットフォームズ株式会社 障害情報処理プログラム、コンピュータ、障害通知方法、コンピュータシステム
JP2022104857A (ja) * 2020-12-30 2022-07-12 技嘉科技股▲ふん▼有限公司 Http/httpsを介したサーバファームウェアのデータ転送方法及び装置
CN114765604A (zh) * 2020-12-30 2022-07-19 技嘉科技股份有限公司 通过http/https的服务器固件的数据传输方法及装置
CN114765604B (zh) * 2020-12-30 2024-03-01 技钢科技股份有限公司 通过http/https的服务器固件的数据传输方法及装置
JP7503523B2 (ja) 2020-12-30 2024-06-20 技鋼科技股▲ふん▼有限公司 Http/httpsを介したサーバファームウェアのデータ転送方法及び装置

Also Published As

Publication number Publication date
JP5093259B2 (ja) 2012-12-12
US20110197193A1 (en) 2011-08-11
US8782643B2 (en) 2014-07-15

Similar Documents

Publication Publication Date Title
JP5093259B2 (ja) Biosとbmcとの間の通信パス強化方法、その装置及びそのプログラム
JP5861733B2 (ja) 若化処理装置、若化処理システム、コンピュータプログラムおよびデータ処理方法
JP5655677B2 (ja) ハイパーバイザ置き換え方法および情報処理装置
EP3306470B1 (en) Method and apparatus for executing non-maskable interrupt
JP2007226413A (ja) メモリダンプ方法、メモリダンププログラム、及び、計算機システム
JP2006277062A (ja) アプリケーション管理装置およびそのソフトウェアを格納した記憶媒体
JP5948933B2 (ja) ジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラム
KR20150022849A (ko) 핸드세이크를 이용한 클라이언트 인터페이스 실행 중의 자동 업데이트 기법
JP2013206379A (ja) クラスタ監視装置、クラスタ監視方法、及びプログラム
JP2011044110A (ja) ソフトウェアプログラム実行装置、ソフトウェアプログラム実行方法、及びプログラム
KR20100108578A (ko) 컴퓨팅 장치 셧다운 방법, 컴퓨팅 장치 및 컴퓨터 판독가능 저장 매체
JP5437556B2 (ja) 情報処理装置およびプロセッサ機能変更方法
JP2005092708A (ja) ソフトウェア更新システム及びソフトウェア更新方法並びにコンピュータプログラム
JP6726136B2 (ja) データアクセス装置及びアクセスエラーの通知方法
JP2010015364A (ja) マルチプロセッサシステム及び情報処理装置
JP2008140124A (ja) データ処理装置
JP2019079309A (ja) 起動管理装置、起動管理システム、起動管理方法、および、起動管理プログラム
WO2005101204A1 (en) Task management table with task id and two assigned processors
JP7327057B2 (ja) コンテナ制御装置、コンテナ制御方法、およびコンテナ制御プログラム
JP4681669B2 (ja) 要求内容抽出プログラム、要求内容抽出方法および要求内容抽出装置
JP5290064B2 (ja) ソフトウェア切り替え装置及びソフトウェア切り替え方法並びにそのプログラム
JP2005284925A (ja) コンピュータシステムおよびプログラム更新方法
JPWO2015015544A1 (ja) 情報処理システム、装置、方法及びプログラム
JP2015064633A (ja) 情報処理装置、情報処理方法及びプログラム
JP5304338B2 (ja) 呼制御装置、制御方法及び制御プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120402

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5093259

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees