JP2010510592A - システムプロセッサーのトランスペアレントな交換 - Google Patents

システムプロセッサーのトランスペアレントな交換 Download PDF

Info

Publication number
JP2010510592A
JP2010510592A JP2009537411A JP2009537411A JP2010510592A JP 2010510592 A JP2010510592 A JP 2010510592A JP 2009537411 A JP2009537411 A JP 2009537411A JP 2009537411 A JP2009537411 A JP 2009537411A JP 2010510592 A JP2010510592 A JP 2010510592A
Authority
JP
Japan
Prior art keywords
processor
apic
replacement
partition
replaced
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.)
Withdrawn
Application number
JP2009537411A
Other languages
English (en)
Other versions
JP2010510592A5 (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010510592A publication Critical patent/JP2010510592A/ja
Publication of JP2010510592A5 publication Critical patent/JP2010510592A5/ja
Withdrawn legal-status Critical Current

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • 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

Abstract

区分された計算装置において割り込みを受け取るプロセッサーをトランスペアレントに交換する方法及び装置が開示される。本方法はプロセッサーの識別子にマッピングされた不変の識別子に割り込みを向けるステップと、プロセッサーを交換プロセッサーで交換するステップとを含む。I/O APICのような媒介が不変の識別子の格納のために使用される。マッピングは論理的なモード配信、物理的なモード配信又は割り込みマッピングを使用することができる。

Description

本発明は、システムプロセッサーのトランスペアレントな交換に関する。
マイクロプロセッサーは、デスクトップコンピューター、ラップトップ・コンピューター、サーバーコンピューター、携帯電話、レーザープリンターなどのような計算装置のための処理及び制御機能を行うことができる電子デバイスである。典型的には、マイクロプロセッサーは、複雑な集積回路を含んでいる小さな1片の半導体材料を含み且つこれを保護する、小さなプラスチック又はセラミックのパッケージを含む。集積回路に接続されたリード線は、集積回路が他の電子デバイス及び回路に接続されることを可能にする、パッケージから出るピンに取り付けられている。マイクロプロセッサーは、他の電子デバイスを含んでいる回路基板に通常接続されるか、あるいは当該回路基板に取り付けられている。
マイクロプロセッサー集積回路は、通常、たった1つの演算器(つまり1つのプロセッサー)を含むが、マイクロプロセッサー集積回路に複数のプロセッサーを含めることは可能である。複数のプロセッサー(それらはしばしば「コア」と呼ばれる)は同じ半導体材料に含まれ、マイクロプロセッサー・パッケージ・ピンに接続される。複数のコアを持つことで、マイクロプロセッサーの計算能力が高まる。例えば、4つのコアを備えたマイクロプロセッサーは4個の単一コアのマイクロプロセッサーとほとんど同じ量の計算能力を提供することができる。複数コアのマイクロプロセッサーが提供する増加した計算能力の利用により、以前は多数の計算装置を必要とした計算機能をより少数の計算装置で行うことを可能にする。
例えば、32個の従来の計算装置にわたって実現されたサーバー(つまり32ウェイ・サーバー)は、各々が4つのコアを持つ8個のマイクロプロセッサーによって実現できる。この概念をさらに1ステップ進めると、個々のコアがそれぞれ、32個の計算装置のうちの1つより8倍強力な場合、32ウェイ・サーバーは4つのコアを備えた1つのマイクロプロセッサーによって実現できる。マイクロプロセッサーの数を減らすことにより、サーバーのコスト、サーバーに電力を供給するのに必要なエネルギー量、及びサーバーが要求するメンテナンスの量が低減される。
複数コアのマイクロプロセッサーを使用することの利点は、「サーバー統合」への傾向を促進している。サーバー統合は、各々が異なるサービスを提供する複数サーバーを取り入れ、1つの物理的デバイス(例えば4コアのプロセッサー)上ですべてのサービスを提供するプロセスである。コスト、エネルギー及びメンテナンスを低減する一方、サーバーの統合は1つのバスケットに卵をすべて入れる効果がある。これは、1つの物理的デバイスに対して信頼性についてより大きな負担をかける。サーバーが多くの個別の計算装置上で実装され、計算装置が故障していると、通常、故障した計算装置の役目を引き継ぐことができる他の計算装置が存在する。1つの計算装置に故障した計算装置の役目を引き継がせるプロセスは、「フェイルオーバー」と呼ばれる。故障している計算装置から代わりの計算装置への移行中にデータが失われず、進行中のプロセスが中断されないことを保証するため、制御された規則的な方法でフェイルオーバーを行うために、従来のサーバー構成について技術が開発されている。
単一コアのマイクロプロセッサー・サーバーと同じくらいロバストで信頼できる複数コアのマイクロプロセッサー・サーバーを作成するために、同様の技術が必要である。
この概要は、以下に詳細な説明においてさらに述べられている、単純化された形式による概念の選択を紹介するために提供される。この概要は、特許請求の範囲に記載の主題の重要な特徴を特定するようには意図されず、特許請求の範囲に記載の主題の範囲の決定に際して助けとなるものとして使用されることも意図されない。
割り込み制御されるプロセッサーを交換プロセッサーでトランスペアレントに交換することが示される。プロセッサーに対して直接的に割り込みを指示するのではなく、割り込みは、プロセッサーの識別子にマッピングされた不変の識別子に導かれる。割り込みが交換プロセッサーに対して指示される前に、交換プロセッサーの識別子は不変の識別子へマッピングされる。割り込みは不変の識別子に対して指示される。プロセッサーに対して直接的にではなくプロセッサーの識別子に対して不変の識別子をマッピングすることで、プロセッサーがトランスペアレントに交換されることが可能となる。
プロセッサーは、交換されるべきプロセッサーに向けられた割り込みを一時的に制限すること;交換プロセッサーを活性化すること;不変の識別子へ交換プロセッサーの識別子をマッピングすること;交換すべきプロセッサーを分離すること;及び、交換プロセッサーの識別子への不変の識別子のマッピングを使用して、交換プロセッサーに後続の割り込みを向けることにより、交換プロセッサーで取り替えられる。好ましくは、I/O APICのような媒介が不変の識別子を格納する。
交換プロセッサーの識別子への不変の識別子のマッピングは、論理モード配信、物理モード配信又は割り込みマッピングに使用できる。
本発明の前述の側面及び付随する利点の多くは、以下の詳細な説明を添付の図面と共に参照することにより、より容易に理解され、一層よく理解されるようになる。
区分ユニットの交換をサポートすることができる例示的な計算装置のブロック図である。 うち1つが関連付けられていない複数の区分ユニットを含んでいる例示的な区分のブロック図である。 以前に関連付けられていなかった区分ユニットを含むように再構成された図2に説明された例示的な区分のブロック図である。 プロセッサー、メモリー・コントローラー及びメモリー・ブロックを含んでいる例示的な区分ユニットのブロック図である。 プロセッサーを含んでいる例示的な区分ユニットのブロック図である。 例示的なI/O APICに接続された複数のデバイスのブロック図である。 プロセッサーを交換する例示的なプロセスの機能フロー図である。 例示的な媒介、例示的な故障しているプロセッサー及び例示的な交換プロセッサーと相互作用する例示的な装置のブロック図である。
機能的に、サーバーはサービスを提供するネットワーク上のエンティティーである。例えば、ウェブ・ページ・サーバーは、ウェブ・ページ・リクエストに応じてウェブ・ページを返すサービスを提供する。他の例示的なサーバーは特定のユーザーのために電子メールメッセージを返す電子メールサーバー、ビデオ・アーカイブからビデオクリップを返すビデオ・サーバーなどである。物理的には、サーバーは、ネットワーキング又は同様のプロトコルによって他のサーバーにしばしば接続される、スタンド・アロンで内蔵型の計算装置である。従来より、物理サーバーへの機能サーバーの1対1マッピングが存在する。例えば、電子メールサーバーは1つの従来の物理サーバー上に実装される。従来の物理的な電子メールサーバーが故障すれば、電子メールサービスは、故障した物理的な電子メールサーバーを別の物理サーバーで交換することにより回復することができる。
典型的な物理サーバーは、マイクロプロセッサー、メモリー・コントローラー、及びメモリー・コントローラーによって制御されたメモリー・ブロックを含んでいる。メモリー・コントローラー及びメモリー・コントローラーによって制御されたメモリー・ブロックは、1つの装置(つまり記憶装置)としばしば呼ばれる。物理サーバーはさらに追加のマイクロプロセッサー、メモリー・コントローラー、メモリー・ブロック、及び割り込みプロセッサーのような他の電子デバイスを含んでいてもよい。従って、マイクロプロセッサー及び/又は記憶装置だけを含んでいる物理サーバーは例示的で制限的でないものとして解釈されるべきである。多くのタイプの計算装置でのように、物理サーバーの動作はオペレーティング・システムと呼ばれるソフトウェアプログラムによってコントロールされる。物理サーバーは、オペレーティング・システムのコピー(つまりオペレーティング・システムのインスタンス)に含まれる命令を実行する。
複数コアのマイクロプロセッサーは、物理サーバー上で利用可能な資源を、「区分ユニット」を含む個々に管理可能な「区分(パーティション、partition)」へ区分することにより、物理サーバー上で1つより多くの機能サーバーを実装することを可能にする。区分ユニットは、電気的に分離することができるマイクロプロセッサー、記憶装置及び/又は恐らく他の電子デバイス(例えば割り込みプロセッサー)を含む。区分は1つ以上の区分ユニットを含む。従って、区分は、機能サーバーを実装するためにオペレーティング・システム(つまりローカル・オペレーティング・システム)の独立したインスタンスを実行することができる物理サーバー内の区分ユニット及び電子デバイスの電気的に分離可能なセットである。以下、注意書きをする場合を除き、用語「サーバー」は物理サーバーを指す。
好ましくは、区分化は動的である。すなわち、区分化は、アクティブな計算装置、つまりエネルギーを与えられ、有用な機能を行なっている計算装置上で行なわれる。さらに好ましくは、区分化はトランスペアレントである。すなわち、区分ユニットは、サーバーが提供するサービスへの影響がほとんどない区分に割り当てられるか、あるいはそこから除去される。動的でトランスペアレントな区分化をサポートするために、区分ユニットは全体のユニットとして管理され、細分化されない。例えば、区分ユニットは1つの装置として区分へ移動される。したがって、区分ユニットが交換される場合、区分ユニットにおけるすべてのデバイスが交換される。区分されることができるサーバーは区分可能なサーバーである。サーバーシステム、つまり区分可能なサーバーを含むシステムは、区分することができるシステムである。区分することができるシステムは、区分に割り当てられた区分ユニット及び電子デバイスの数及び構成に柔軟性を提供する。区分することができるシステムは「サーバー統合」をサポートする。
サーバー統合は、各々が異なるサービスを提供する複数の従来のサーバーをとり、1つの区分可能なサーバー上でサービスをすべて提供するプロセスである。コスト、エネルギー及びメンテナンスを低減する一方、サービスの統合は、区分可能なサーバーに対して信頼性についてより大きな負担を課す。多くの別個の計算装置上で実装された従来のサーバーが、故障している計算装置の役目を引き継ぐことができる予備の計算装置を通常有する一方、区分可能なサーバーは「バックアップ」計算能力をどこか他のところに求める必要がある。1つの計算装置に、故障している計算装置の役目を引き継がせるプロセスは、「フェイルオーバー」と呼ばれる。故障している計算装置から代わりの計算装置への移行中にデータが失われず、進行中のプロセスが中断されないことを保証するため、従来のサーバー構成が制御された規則的な方法でフェイルオーバーを行うために、技術が開発されている。従来のサーバー構成中、故障した「計算装置」はそれ自体がサーバーであった。サーバーがネットワークを介して互いに接続し、しっかりと結ばれないので、作業は小さな断片に分かれて複数のサーバーにわたって共有される(つまりパケタイズされる)必要があった。これは、故障しているサーバーの作業パケットが再ルーティングされることができるので、故障しているサーバを交換することを容易にした。サーバー統合により、作業のパケタイジングのオーバヘッドはなくなるが、そのため、完全にサーバーを除去する容易さも失われる。従来のサーバーと同じくらいロバストで信頼できる、区分可能なサーバー上でサーバーを実装するために、同様の技術が必要である。
フェイルオーバーが必要な場合に、高レベルのソフトウェアアプリケーションの各々に通知することにより、区分可能なサーバーをもっと信頼できるようにすることは非実用的である。高レベルのソフトウェアアプリケーションがそのような通知に応答することを可能にすることは、フェイルオーバーに適合するために各アプリケーションの計算機コードが修正されることを必要とする。アプリケーションに通知することでさえ、従来のサーバー構成では通常必要ではないような、実行しているサーバーの一部を交換するための機構なしにフェイルオーバーを提供するのには恐らく十分ではない。これに代えて、フェイルオーバーにおいては最下位レベルのソフトウェアだけを含んでおり、かつ、上位レベルのソフトウェア(例えばアプリケーション)があたかもハードウェア変更が起こっていないかのように動作することを可能にすることのほうが実際的であり、より有利である。
秩序のある、低レベルな区分可能なサーバー・フェイルオーバーの実施は、グローバル管理エンティティー(global management entity)及び1つ以上のローカル・オペレーティング・システムを含んでいる。グローバル管理エンティティーの例はサービス・プロセッサー(SP)及びベースボード管理コントローラ(BMC)である。SPは、メモリー・コントローラー及びマイクロプロセッサーのような回路基板又はマザーボードに取り付けられた電子デバイスを管理する、専門のマイクロプロセッサー又はマイクロコントローラーである。BMCはさらにマザーボード上に埋め込まれた専門のマイクロコントローラーである。電子デバイスの管理に加えて、BMCは、温度、冷却ファン速度、パワーモード、オペレーティング・システム状態などのようなパラメータについて報告し及び又はこれに応答するために計算機システムに組み込まれたセンサからの入力をモニタする。他の電子デバイスがグローバル管理エンティティーの役割を実行してもよい。従って、グローバル管理エンティティーとしてのSP又はBMCの使用は、例示的であって制限的でないものとして解釈されるべきである。
ローカル・オペレーティング・システムは1つの区分で動作するオペレーティング・システムのインスタンスである。論理デバイスが他の区分の論理デバイスと共有することができないことを保証して、故障が単一の区分に隔離されることを保証するために、1つ以上の物理的デバイスを表わす論理デバイスを含んでいる区分ユニットは、特定の区分に割り当てられる。そのような区分ユニットは、どの物理アドレスが所与のメモリー・コントローラーによってサービスされるかを示し、それによって、メモリー・コントローラー、及びメモリー・コントローラーを含んでいる物理的な区分ユニットに物理メモリーアドレスをマッピングしてもよい。1つより多くの区分ユニットが、区分をブートして操作するために要求されてもよい。未使用の区分ユニットあるいは故障している区分ユニットは電気的に分離されてもよい。区分ユニットを電気的に分離することは、区分ユニットが異なる区分に動的に再割り当てできるという利点を備えた従来のサーバーのグループからサーバーを取り除くことに似ている。区分可能なサーバーにおける区分ユニットの管理、例えば、区分ユニットの追加又は交換は、区分可能なサーバーが従来のサーバーと同じくらいロバストで信頼できることを保証するための、制御された秩序立った方法で、フェイルオーバーが行なわれることを可能にする。
区分及び区分ユニットの追加及び/又は交換をサポートすることができる区分可能なサーバーを実現するための例示的な計算装置100が図1においてブロック図形式で示される。図1に示される例示的な計算装置100は、SPファームウェア104及びルーティングテーブル106を格納するメモリに接続されるサービス・プロセッサー(SP)102を含む。計算装置100は、さらにメモリー・ブロックA110に接続されたプロセッサーA108、メモリー・ブロックB114に接続されたプロセッサーB112、メモリー・ブロックC118に接続されたプロセッサーC116及びメモリー・ブロックD122に接続されたプロセッサーD120を含む。プロセッサー108、112、116及び120は、割り込み制御されたプロセッサー、つまりプロセッサーに向けられた割り込み信号に応答することができるプロセッサーである。プロセッサー108、112、116及び120の各々は、0、1、2及び3で指定された4つのコアを含んでおり、それらは割り込み信号に応答することができる。SP102は、SPファームウェア104によってコントロールされ、プロセッサー108、112、126、120、メモリー・ブロック110、114、118及び122を管理するためにルーティング・テーブル106を使用する。計算装置100はさらにI/O(入出力)回路124、大容量記憶回路126、通信回路128、環境回路130及び電源132を含む。計算装置100は、入出力デバイスと通信するためにI/O回路124を使用する。計算装置100は、内部的及び外部的に接続している大容量記憶装置と相互作用するために大容量記憶回路126を使用する。計算装置100は、通常はネットワークを介して外部装置と通信するために、通信回路128を使用する。計算装置100は、冷却ファン、熱感知器、湿度センサなどのような環境のデバイスをコントロールするために環境回路130を使用する。電源132は計算装置100に電力を供給する。例えば、SP102がBMCと取り替えられる場合、BMCは、より正確に、環境回路130及び電源132と通信しこれらをコントロールしてもよい。
区分可能なサーバーの実装のための例示的な計算装置を示す図1では、例示的な区分ユニットは、プロセッサーA108及びプロセッサーA108に接続されるメモリー・ブロックA110によって形成される。同様に、もう3つの例示的な区分ユニットは、プロセッサーB112及びメモリー・ブロックB114;プロセッサーC116及びメモリー・ブロックC122;並びにプロセッサーD120及びメモリー・ブロックD122によって形成される。4つの例示的な区分ユニットは、SP102によって管理される例示的な区分を形成する。図2及び3は、図表の形式で、図1に示されるプロセッサーとメモリー・ブロックから形成された区分ユニットに類似する区分ユニットを持つ図1の区分のような例示的な区分を説明する。
区分ユニットの交換は、図2に示されるブロック図を図3に示されるブロック図と比較することにより理解され得る。図2及び図3に示されるブロック図は両方とも、同じ4つの区分ユニットを含んでいる。区分ユニットの各々は、プロセッサーとメモリ:メモリ204に接続されたプロセッサーA202; メモリ208に接続されたプロセッサーB206;メモリ212に接続されたプロセッサーC210;及びメモリ216に接続されたプロセッサーD214を含む。図4A及び4Bに関して以下により完全に議論されるように、区分ユニットは、メモリー・コントローラー及び大きなメモリー・ブロックのような追加素子を含んもよいし、あるいはプロセッサーに関連した小さなメモリ以外にメモリを含まなくてもよい。図2及び図3の両方の中のブロック図が同じ4つの区分ユニットを示す一方、図3に示される区分200bと比較される場合、図2に示される区分200aは区分ユニットの異なるセットを含む。
図2に説明された区分200aは次のものを含む:プロセッサーA202及びメモリ204;プロセッサーB206及びメモリ208;プロセッサーC210及びメモリ212。図2では、プロセッサーD214及びメモリ216を含む区分ユニットは、区分200aに含まれていない。図2に示される区分200aとは対照的に、図3に示される区分200bは、区分ユニットの異なるセット(つまりプロセッサーとメモリー・ブロックの異なるセット)を含むように変更されている。図3に示される区分200bは次のものを含む:プロセッサーB206及びメモリ208;プロセッサーC210及びメモリ212;プロセッサーD214及びメモリ216。図3では、プロセッサーA202及びメモリ204を含む区分ユニットは、区分200bに含まれていないが、プロセッサーD214及びメモリ216を含む区分ユニットは、図2に示される区分200aに含まれている。実際に、プロセッサーD214及びメモリ216を含む区分ユニットは、プロセッサーA202及びメモリ204を含む区分ユニットに取って代わる。もし例えば、プロセッサーA202及び/又はメモリ204が故障していれば、そのような交換は望ましい。
区分200a及び区分200bは、実際のところ、それらが同じ区分識別子(ID)を有するという点で同じ区分であり、違いは、区分200aが区分200bとは異なる区分ユニットのセットで作られるということである。移行の前、プロセッサーA、B及びCの区分IDは区分200a/200bのIDであった。プロセッサーDの区分IDは異なっているか又は設定されていない状態、つまり、プロセッサーDを含む区分ユニットの以前の状態に依存してゼロ化されていた。以下により完全に説明されるように、プロセッサーDの区分IDにかかわらず、移行の後、プロセッサーDの区分IDは区分200a/200bのIDになる。
区分ユニットの交換は、交換を必要とするハードウェアデバイス及び交換ハードウェアデバイスを識別することを含んでいる。プロセッサーを識別するアドバンスト・プログラマブル・インターラプト・コントローラーID(APIC ID)を有することは、プロセッサーA202のようなプロセッサーには共通である。同様に、区分のローカル・オペレーティング・システム内では、記憶装置の物理アドレスは記憶装置を一意に識別する。区分200aのローカル・オペレーティング・システムのような区分のローカル・オペレーティング・システム内では、プロセッサーのAPIC IDが一意的にプロセッサーを識別する。図1に示される計算装置100のような計算装置は、複数の区分を含んでもよい。複数の区分内の区分はそれぞれ、区分の局所視点を有するローカル・オペレーティング・システムを実行する。SP102のようなグローバル管理エンティティーは、グローバル管理エンティティーが通信する区分の各々を一意的に識別する識別子を含んでいるグローバルなネームスペース(名前空間)を保持する。
図2及び3に示され上述された区分ユニット交換のような区分ユニット交換中に、グローバル管理エンティティー及び区分のローカル・オペレーティング・システムは、区分ユニットに関する情報を通信する。例えば、図1に示されるSP102(つまりグローバル管理エンティティー)は、区分ユニットの交換中に区分200aのローカル・オペレーティング・システムと通信する。グローバル管理エンティティーが異なる区分の区分ユニットと同様に同じ区分の区分ユニットも識別するように、グローバル管理エンティティーは各区分ユニットの独自の識別子を格納する。独自の区分ユニット識別子、つまり区分ユニットIDは、複数の区分の各々の各区分ユニットの資源、例えばプロセッサー及び記憶装置、にグローバル管理エンティティーがアクセスすることを可能にする。対照的に、区分のローカル・オペレーティング・システムは、区分に含まれた資源だけにアクセスすることができる。
区分ユニットIDは、プロセッサーのAPIC IDあるいは記憶装置の物理アドレスのような、区分ID及びハードウェアデバイス識別子の組合せである。例えば、プロセッサーC210のための独自のグローバル識別子を作成するために、プロセッサーC 210のAPIC IDは区分200aの区分IDと結合される。同様に、メモリ212の独自のグローバル識別子を作成するために、メモリ212の物理アドレスは区分200aの区分IDと結合される。
区分ユニットが交換される場合、区分ユニットのハードウェアデバイスの各々が交換される。例えば、図2及び3に示されるように、第1の区分ユニットはプロセッサーA202、及びプロセッサーA202に接続されるメモリ204を含み;第2の区分ユニットはプロセッサーD214、及びプロセッサーD214に接続されるメモリ216を含む。第2の区分ユニットが第1の区分ユニットに取って代わる場合、プロセッサーD214はプロセッサーA202に取って代わり、メモリ216はメモリ204に取って代わる。
プロセッサーA202及びメモリ204のような単一のプロセッサー及び単一のメモリー・ブロックは区分ユニットを含んでいてもよいが、区分ユニットには他の形式があってもよい。異なる形式をもつ例示的な区分ユニット400についての詳細な図が、図4Aで説明される。図4Aにおいて、図1のように、例示的な区分ユニット400は4つのコアを含んでいるプロセッサー402を含み、4つのコア0、1、2及び3は、2つのメモリー・ブロック−メモリー・ブロックA406及びメモリー・ブロックB410−に接続されるメモリー・コントローラー404に接続される。プロセッサー402はメモリー・コントローラー404と通信し、メモリー・コントローラー404はメモリー・ブロックA406及びメモリー・ブロックB410を制御する。区分ユニットの別の形式は図4Bで説明される。図4Bで示される区分ユニット450はプロセッサー452を含んでおり、それは、図4Aで説明されたプロセッサーのように、4つのコア0、1、2及び3を含んでいる。図4Bで示される区分ユニットは、メモリ又はメモリー・コントローラー又はメモリーのブロックを含んでいない。他の区分ユニットは、プロセッサー、メモリー・コントローラー及びメモリー・ブロックに加えて物理的デバイスを表わす他の論理デバイス及び当業者に周知のその様々な組合せを含んでいてもよい。従って、区分ユニット400及び450は例示的で、制限的でないものとして解釈されるべきである。
例示的な区分ユニットにおける論理デバイスは、装置の状態をローカル・オペレーティング・システムに通知することができてもよい。代替的に、またはこれに加えて、区分ユニットをコントロールするローカル・オペレーティング・システムは、論理デバイスの状態を評価し、かつ論理デバイスが故障しており交換の候補であり得るかどうか判断するために予測分析を使用してもよい。システム管理者のような人は規則的なメンテナンスの一部としてデバイス状態をチェックしてもよいが、ハードウェア自体に、切迫した故障をローカル・オペレーティング・システムに通知させることが望ましい。いくつかの状況で、1つのモデルからのプロセッサーを別のモデルにアップグレードするか、システムにプロセッサー及び/又はメモリを加えることは望ましいかもしれない。システム管理者はそのような機能を行なっていてもよいが、明示的にプログラムされた命令の使用により、あるいは区分、区分ユニット、及びハードウェアが状態を報告する能力を利用する周期的に時間が計られた命令の使用により、そのような置換及び追加を自動化することが望ましい。
交換されるべきプロセッサー上で実行しているローカル・オペレーティング・システム中のプロセスのようなプロセスは、休止、つまり、不活性状態にされねばならない、というのは、プロセッサーが使用されている場合、プロセッサーの状態が絶えず変化しているからである。プロセッサーの状態が変化している場合、プロセッサーの状態を安全に信頼性の高い状態で転送することができないので、プロセッサーは、安全に信頼性の高い状態で交換することができない。したがって、休止動作は、プロセッサーの状態が変わるのを防ぐために、交換されるべきプロセッサー(例えば故障しているプロセッサー)によって実行される。当業者であれば、プロセッサーの状態が変わるのを防ぐためにプロセッサーを中断するプロセスが、プロセッサーの「休止」と呼ばれることを理解するであろう。図1に示される計算装置100のようなシステムも、システムにおいて物理的デバイス(例えばプロセッサーA108、B112など)を休止又は不活性化して、実行のスレッドを休止させることにより、休止されてもよい。システムのデバイスの休止又は不活性化並びに実行のスレッドの休止は、デバイス及び実行のスレッドが交換されるべきプロセッサーを中断することを試みるのを防ぐ。
区分ユニットが故障しているプロセッサー(例えばプロセッサー452)を含んでいるので、図4Bで説明された区分ユニット450のような区分ユニットは、交換される必要がありうる。故障しているプロセッサーを交換するために、上述の例示的なプロセスのようなプロセスを恐らくは使用して、最初に故障しているプロセッサーを識別するのが望ましい。故障している又はそうでないプロセッサーを識別するための方法は、アドバンスト・プログラマブル・インターラプト・コントローラー識別子(APIC ID)を使用することである。プロセッサーのAPIC IDは論理的及び/又は物理的な形式でプロセッサーに格納される。プロセッサーの論理的なAPIC IDは通常APIC IDを含んでいるレジスタの再プログラミングによりプロセッサーにおいて変更することができる。プロセッサーの物理的なAPIC IDはプロセッサーに組み込まれており(hardwired)、つまり、固定され、変更することができない。オペレーティング・システム(例えばローカル・オペレーティング・システム)は、例えばプロセッサー上で新たなスレッドをスケジューリングし、特定のプロセッサーへ割り込みを指示するためにAPIC IDを使用する。プロセッサーは図4Bで示される例のプロセッサー452については物理的であってもよく、あるいは例えばプロセッサー452中の一例のコア「0」については論理的であってもよい。
オペレーティング・システムが開始する場合、論理的なプロセッサーはそれぞれ独自の初期のAPIC IDを割り当てられる。初期のAPIC IDは、物理的なプロセッサーのID及び物理的なプロセッサー内の論理的なプロセッサーのIDからなる。オペレーティング・システムは、特定のプロセッサーへの割り込みを指示するために初期のAPIC IDを使用してもよい。装置(例えばディスクドライブ)は、メッセージで示された割り込み(MSI)を使用して、プロセッサーに割り込み信号を直接送信してもよい。装置割り込みは、その代わりに、仲介のソフトウェア・エンティティー(つまり媒介)へルーティングされてもよい。装置は、媒介(中間物、intermediary)に送信される信号を生成し、媒介はプロセッサーへ信号を転送する。典型的な従来の媒介は入出力アドバンスト・プログラマブル・インターラプト・コントローラー(I/O APIC)である。図5のブロック図は、例示的なI/O APIC 500及び2つの例示的な装置−装置A502及び装置B504−の機能部を説明する。さらなる機能部及びデバイスがあってもよい。従って、デバイスと機能部の数は例示的であって制限的でないものとして解釈されるべきである。図5に示される例示的なI/O APIC 500はリダイレクション・テーブル506を含んでいる。リダイレクション・テーブル506はリダイレクション・テーブル・エントリー(RTE)を含んでいる。リダイレクション・テーブル506は、装置A502に関連付けられる装置A508のRTEと、装置B504に関連付けられる装置B516のRTEとを含む。装置A508のためのRTEは宛先APIC ID510、割り込みベクトル512及びモード(モード・ディスクリプタ)514を含む。装置B516のためのRTEは宛先APIC ID518、割り込みベクトル520及びモード(モード・ディスクリプタ)522を含む。割り込みベクトルは、特定の種類の割り込みを扱うコードを含んでいるかあるいは参照するエントリーである。割り込みは、I/O APIC中の特定のエントリ番号と接続された、専用の物理的な「線」(つまり物理的接続)を介して伝えられてもよい。
図4Bで説明された区分ユニット450のような区分ユニットの交換は、故障しているプロセッサーに取って代わることを意図された予備のプロセッサーに故障しているプロセッサーの状態を転送することを含んでいる。プロセッサーの状態は、プロセッサーの外部レジスターに格納された情報、プロセッサーの内部レジスター及び回路中の情報、並びに物理的なAPIC ID及び論理的なAPIC IDを含んでもよいがこれに制限されない。すべてのプロセッサーが、その物理的なAPIC IDを、別の物理的なAPIC IDを受け取るために転送させたり変化させたりすることができるとは限らない。物理的なAPIC IDはプロセッサーの配線で接続された内部であってもよい。そのようなプロセッサーでは、第1のプロセッサーの物理的なAPIC IDは第2のプロセッサーに転送することができない。従って、第2のプロセッサーは、第1のプロセッサーの物理的な同一性を呈することができない。
プロセッサーの物理的なAPIC IDが独自のものであることを可能にし、依然として別のプロセッサー(例えば交換プロセッサー)にプロセッサー(例えば故障しているプロセッサー)の状態を転送するための方法が存在する。他のエンティティにとって、2つのプロセッサーは同一に見える。したがって、例えば、故障しているプロセッサーに向けられた割り込みは、その代わりに、交換プロセッサーに向けられる。
上述のように、多くのプロセッサーにおいては、APIC ID(つまり物理的及び/又は論理的なAPIC ID)は、プロセッサーの同一性が転送されるのを防ぐプロセッサーの配線接続された(ハードワイヤードの)内部であり得る。プロセッサを識別するためにAPIC IDに直接的に依存するのではなく、プロセッサーのAPIC ID(つまり物理的及び/又は論理的なAPIC ID)は、サービスの内部に隠され、APIC IDへの直接的な参照なしに当該APIC IDを含む動作を行うサービスをシステムの他の一部に提示することを可能にする。そのようなサービスについて議論する際に、システムを分割すること、例えば、計算装置100を2つの部分−サービス・プロセッサー(SP)部分及び非SP部分−に分割すること、は有用である。SP部分は、SP102、SPファームウェア104及びルーティングテーブル106の組合せである。非SP部分は、計算装置100中の残りの事項を含む。トランスペアレントにプロセッサーを交換するために、非SP部分は、プロセッサー識別子が再マッピングされることを可能にするプロセッサーの同一性から分離される。再マッピングプロセッサー識別子は、SP部分(例えばSPファームウェア104)に格納されてもよく又他のメモリに格納されてもよく、SPファームウェア104によって指示されてもよい1セットの命令によって遂行される。以後、再マッピングプロセッサー識別子のための命令のセットを「プロセッサー再マッピングサービス」と呼ぶ。
プロセッサーを識別するためにプロセッサーのAPIC IDに直接依存するのではなく、プロセッサーのAPIC IDは、プロセッサー再マッピングサービスの内部に隠され、APIC IDへの直接的な参照なしにAPIC IDを含む動作を行うためのサービスを非SP部分に提示することを可能にする。プロセッサー再マッピングサービスは「不変の」APIC ID(つまり、変化せず、非SP部分によって使用されるAPIC ID)を割り当てて受け取る。プロセッサー再マッピングサービスは、不変のAPIC IDを適切な可変のAPIC IDに変換する。従って、プロセッサー交換中に、可変のAPIC IDが物理的か論理的かにかかわらず、可変のAPIC IDは交換プロセッサーを参照するために変更することができ、したがってプロセッサー交換をトランスペアレントにする。
例示的なプロセッサー再マッピングサービスは、トランスペアレントにプロセッサーを交換する3つのプロセス:論理的なモード配信、物理的なモード配信及び割り込み再マッピング、を提供する。プロセッサー交換中に3つのプロセスのうちの1つを使用することによって、プロセッサーが使用されているその詳細は取り除かれ、非SP部分から隠される。
論理的なモード配信プロセスでは、非SP部分が論理的なAPIC IDのみを使用し、物理的なAPIC IDにアクセスしたりそれを使用したりすることが許されないように、システム(例えば計算装置100)が構成される。論理的なモード配信プロセスでは、プロセッサー再マッピングサービスは再マッピングレジスタとして論理的なAPIC IDを使用する。プロセッサーの論理的なAPIC IDはプログラムすることができる、つまり、通常低レベルのソフトウェアによって変更することができる。論理的なAPIC IDは可変であり、I/O APIC及びMSIに依存せずに、別のプロセッサーに容易に転送することができる。故障しているプロセッサーの論理的なAPIC IDを交換プロセッサーに挿入することによって、故障しているプロセッサーの論理的なAPIC IDは交換プロセッサーにマッピングされる。
論理的なモード配信が計算装置及び/又はシステムにおいて利用可能でない場合、物理的なモード配信がトランスペアレントにプロセッサーを交換するために使用されてもよい。物理的なモード配信は媒介を含む。例示的な媒介はI/O APIC中のリダイレクション・テーブルである(図5及び先の記述を参照)。物理的なモード配信では、I/O APICのリダイレクション・テーブル(つまり媒介)は、プロセッサーについて不変のAPIC IDを格納する。不変のAPIC IDはプロセッサーの物理的なAPIC IDにマッピングされる。プロセッサーの不変のAPIC IDは、非SP部分における動作を乱すことなく異なる物理的なAPIC IDを有する別のプロセッサーによってプロセッサーが交換されることを可能にする非SP部分によって使用される。
物理的なモード配信プロセスでは、I/O APICは、SPがI/O APICと相互作用するインターフェースを提供する。物理的なモード配信プロセスは、新たな物理的なID(つまり交換プロセッサーの物理的なID)をI/O APICのリダイレクション・テーブルへプログラムするため、既存のI/O APICインターフェースを利用する。
割り込み再マッピングプロセスでは、プロセッサー再マッピングサービスは、交換されるプロセッサー(例えばプロセッサーA 202)からの割り込みを交換プロセッサー(例えばプロセッサーD 214)へリダイレクトする。従来、計算装置100の大容量記憶回路126中のディスクドライブ制御部のような割り込みを生成するデバイスは、割り込みを受け取るように意図されるプロセッサー(つまり宛先プロセッサー)のAPIC IDを格納する。ディスクドライブ制御部が「ハードワイヤード」である場合、つまり、I/O APICに、有線、回路基板配線などによって物理的に接続されている場合、ディスクドライブ制御部は、配線上で、I/O APICのリダイレクション・テーブル中のプログラムされた命令をトリガーするレベルに電圧をセットする。通常、I/O APICのリダイレクション・テーブル中の他のエントリへ接続される他のデバイスがある。従って、到着する割り込みを管理するためにI/O APICの接続においてインターフェースを必要とする。
論理的なモード配信、物理的なモード配信及び割り込み再マッピングプロセスでは、ローカル・オペレーティング・システムは休止され、状態が転送される。外部装置が物理的なAPIC IDに気づいていないことは特に重要である。論理的な配信の使用はそれを遂行するための最も容易な方法である。装置が「ハードワイヤード」である場合、つまり、I/O APICに、有線、回路基板配線などによって物理的に接続されている場合、装置は、配線上で、I/O APICにおけるプログラミングをトリガーするレベルに電圧をセットする。I/O APICのリダイレクション・テーブル中の他のエントリに接続する他のデバイスが存在し得る。実際には、I/O APICは、共有状態貯蔵庫(リポジトリー)である。従って、共有状態貯蔵庫(つまりI/O APIC)を管理するため、I/O APICの接続においてインターフェースが必要となる。
プロセッサー(例えば故障しているプロセッサー)を交換する例示的なプロセスが図6に説明される。当該プロセスは、グローバル管理エンティティー(例えば図1に示されるSP102)がプロセッサーを交換する必要があることを決定するブロック600で開始する。例えば、グローバル管理エンティティーは、プロセッサーが故障したかもしれないことを示すある量及びある種類のエラーをプロセッサーが生成したことを検出し、プロセッサーを交換する必要があることを決定する。ブロック602において、グローバル管理エンティティーは交換プロセッサー(例えば図2に示される区分200aのプロセッサーD214)を選択する。交換プロセッサーは、速度、専門の計算機能などのような選択基準により複数の予備のプロセッサーから選ばれてもよい。さらに、重要度の低いプロセスを実行する複数のプロセッサーから交換プロセッサーを選ぶことも可能である。重要度の低いプロセスは停止されるか、あるいはプロセッサーが交換プロセッサーとして再使用されることを可能にするために他のプロセッサーに移動されてもよい。プロセッサーの複数の予備のソース及び/又は他のソースから交換プロセッサーを選択することを可能にするために、グローバル管理エンティティーは、グローバル管理エンティティーによって管理された各プロセッサーに対する選択基準値を含んでいるプロセッサー・データベースを保持してもよい。プロセッサーが故障している場合、グローバル管理エンティティーは、データベースに提出されるとデータベースから代わりのプロセッサー候補のリストを検索するデータベースクエリーを形成する。例示的なデータベースクエリーは、故障しているプロセッサーのID、及び関連する選択基準及び選択基準パラメータのリストを含んでいる。データベースは、クエリーを使用して、故障しているプロセッサーの選択基準値を取り出し、故障しているプロセッサーの選択基準値を予備のあるいはそうでなければ潜在的に利用可能な、プロセッサー・データベース中のプロセッサーの選択基準値と比較する。故障しているプロセッサーの選択基準値に合う選択基準値を備えたプロセッサーのIDは、リスト中で、グローバル管理エンティティーに返される。グローバル管理エンティティーは、恐らくは他の基準を使用して、リストから交換プロセッサーを選ぶ。さらに、その後グローバル管理エンティティーによって使用されるたった1つの交換プロセッサーのIDをプロセッサー・データベースが返すことが可能である。選択基準を使用して交換プロセッサーを選択する他の方法が可能である。従って、交換プロセッサーを選択するためにプロセッサー・データベースを使用することは、例示的であって制限的でないものとして解釈されるべきである。
ブロック604において図6に継続して、グローバル管理エンティティーは、交換すべきプロセッサーへの割り込みを一時的に制限して、プロセッサーの活動を縮小し、プロセッサーを交換のために準備する。ブロック606では、上述の選択プロセスを使用して選択された交換プロセッサーが活性化される。ブロック608で、グローバル管理エンティティーは、交換すべきプロセッサーの区分へ交換プロセッサーを「移動させる」ために、交換プロセッサーの区分IDを交換すべきプロセッサーの区分IDに設定する。例えば、図2に示されるプロセッサーD214の区分IDは、区分200a、プロセッサーA202の区分へプロセッサーD214を移動させるためにプロセッサーA202の区分IDにセットされる。ブロック610では、ローカルOS(つまりローカル・オペレーティング・システム)は休止される。当業者であれば、オペレーティング・システム(例えばローカル・オペレーティング・システム)を休止させることがオペレーティング・システムの活動を縮小するプロセスであることを理解するであろう。ブロック612では、グローバル管理エンティティーは、交換すべきプロセッサーの状態を交換プロセッサーに転送する。例示的なプロセッサーの状態は図7に説明され、以下に記述される。ブロック614では、グローバル管理エンティティーは、交換プロセッサーを交換すべきプロセッサーのIDにマッピングし、マッピングを反映するためにローカルOSの状態を更新する。より具体的には、交換プロセッサーは、交換すべきプロセッサーの完全なID(つまり区分ID及びAPIC IDの組合せ)にマッピングされ、ローカルOSの状態はマッピングを反映するために更新される。ブロック616では、ローカルOSの休止を解除する、つまり、ローカルOSが再度活性化される。ブロック616の後、プロセスは終了する。
図7は、例示的な装置がどのようにして例示的な媒介と相互作用して、例示的な交換プロセッサーにルーティングされる信号を例示的な故障しているプロセッサーへ送信するのかを示すブロック図である。図7において、例示的な装置700は、宛先プロセッサーのAPIC ID702を含んでいる。信号720は、再マッピング割り込みのための媒介722に対して宛先プロセッサーのAPIC ID702を運ぶ。再マッピング割り込みのための媒介722は、I/O APICデータ構造724を含む。I/O APIC 724は、宛先プロセッサーのAPIC ID726を含んでいる。装置700は、再マッピング割り込みのための媒介722を介して、直接的な信号704、あるいは信号720によって、故障しているプロセッサー706のような宛先プロセッサーのAPIC IDを送信してもよく、媒介722は転送された信号728を宛先(故障している)プロセッサー706に対して送信する。故障しているプロセッサー706は状態714を有する。故障しているプロセッサー706の状態714は、外部的にアクセス可能なレジスター708の状態、故障しているプロセッサー706の内部状態710及びローカルAPIC ID712によって決定される。ローカルAPIC IDは物理アドレスと論理アドレスを含んでいる。プロセッサーについて記述する状態は、通常、外部的にアクセス可能なレジスター708の状態、故障しているプロセッサー706の内部状態710及びローカルAPIC ID 712を含んでいるが、故障しているプロセッサー706の状態はさらに他の要素を含んでもよく、あるいは既に述べた要素の1つ以上を含まなくてもよい。従って、プロセッサーの状態について記述する状態の内容は、例示的であって制限的でないものとして解釈されるべきである。故障しているプロセッサー706の状態714は、交換プロセッサー716の状態718に転送されるか、あるいはコピーされる。
本発明の好ましい実施例が説明され、記述されたが、本発明の趣旨及び範囲から逸脱することなく、様々な変更を行うことができることが理解されよう。

Claims (20)

  1. 割り込みに応答することができるプロセッサーを各々が含む複数の区分ユニットを含んでいる区分された計算装置において、プロセッサーを交換プロセッサーでトランスペアレントに交換する方法であって
    (a)プロセッサーが交換されるべきであるという決定に応答して、交換プロセッサーを選択するステップと、
    (b)交換されるべきプロセッサーに向けられた割り込みを一時的に制限するステップと、
    (c)前記交換プロセッサーを活性化するステップと、
    (d)前記交換プロセッサーの区分IDを前記交換されるべきプロセッサーの区分IDに設定するステップと、
    (e)前記交換されるべきプロセッサーの状態を前記交換プロセッサーに転送するステップと、
    (f)前記交換プロセッサーを前記交換されるべきプロセッサーの識別子にマッピングするステップと
    を含む方法。
  2. 前記交換されるべきプロセッサーの識別子は媒介に格納された不変の識別子である請求項1に記載の方法。
  3. 前記媒介はI/O APICである請求項2に記載の方法。
  4. 前記マッピングは論理的なモード配信を使用する請求項1に記載の方法。
  5. 前記論理的なモード配信は、
    (a)前記計算装置が論理的なAPIC IDのみを使用するように、前記計算装置を構成するステップと、
    (b)前記論理的なAPIC IDを再マッピングレジスタとして使用するステップと、
    (c)前記プロセッサーの論理的なAPIC IDを前記交換プロセッサーに挿入するステップと
    を含む請求項4に記載の方法。
  6. 前記マッピングは物理的なモード配信を使用する請求項1に記載の方法。
  7. 前記物理的なモード配信は、
    (a)媒介にプロセッサーの不変のAPIC IDを格納するステップと、
    (b)前記不変のAPIC IDをプロセッサーの物理的なAPIC IDにマッピングするステップと、
    (c)前記プロセッサーの物理的なAPIC IDにマッピングされた前記不変のAPIC IDに前記割り込みを向けるステップと
    を含む請求項6に記載の方法。
  8. 前記媒介はI/O APICである請求項7に記載の方法。
  9. 前記マッピングは割り込みマッピングを使用する請求項1に記載の方法。
  10. 前記割り込みマッピングは、前記交換されるべきプロセッサーからの割り込みを前記交換プロセッサーにリダイレクトするステップを含む請求項9に記載の方法。
  11. 複数の区分ユニットを含む少なくとも1つの区分を含んでいる計算装置において、プロセッサーを交換プロセッサーでトランスペアレントに交換する方法であって、前記区分は区分識別子によって識別され、前記区分ユニットの各々は、前記区分識別子によって部分的に識別されるプロセッサーを含み、前記プロセッサーは割り込みに応答することができ、前記方法は、
    (a)プロセッサーが交換されるべきであるという決定に応答して、交換プロセッサーを選択するステップと、
    (b)交換されるべきプロセッサーに向けられた割り込みを一時的に制限するステップと、
    (c)前記交換プロセッサーを活性化するステップと、
    (d)前記交換プロセッサーの区分IDを前記交換されるべきプロセッサーの区分IDに設定するステップと、
    (e)前記交換されるべきプロセッサーの状態を前記交換プロセッサーに転送するステップと、
    (f)前記交換プロセッサーを前記交換されるべきプロセッサーの識別子にマッピングするステップと
    を含む方法。
  12. 前記区分のオペレーティング・システムは、前記交換されるべきプロセッサーの状態の前記交換プロセッサーへの前記転送の前に休止され、前記転送の後に休止を解除される請求項11に記載の方法。
  13. 交換プロセッサーの前記選択、前記交換されるべきプロセッサーに向けられる前記割り込みの前記一時的な制限、及び前記交換されるべきプロセッサーの状態の前記交換プロセッサーへの転送は、グローバル管理エンティティーによって実行される請求項11に記載の方法。
  14. 前記マッピングは論理的なモード配信を使用する請求項11に記載の方法。
  15. 前記論理的なモード配信は、
    (a)前記計算装置の非グローバル管理エンティティーが論理的なAPIC IDのみを使用するように、前記計算装置を構成するステップと、
    (b)前記論理的なAPIC IDを再マッピングレジスタとして使用するステップと、
    (c)前記プロセッサーの論理的なAPIC IDを前記交換プロセッサーに挿入するステップと
    を含む請求項14に記載の方法。
  16. 前記マッピングは物理的なモード配信を使用する請求項11に記載の方法。
  17. 前記物理的なモード配信は、
    (a)媒介にプロセッサーの不変のAPIC IDを格納するステップと、
    (b)前記不変のAPIC IDを前記プロセッサーの物理的なAPIC IDにマッピングするステップと、
    (c)前記プロセッサーの物理的なAPIC IDにマッピングされた前記不変のAPIC IDに前記割り込みを向けるステップと請求項16に記載の方法。
  18. 前記媒介はI/O APICである請求項17に記載の方法。
  19. 前記マッピングは割り込みマッピングを使用する請求項11に記載の方法。
  20. 割り込みマッピングは、前記交換されるべきプロセッサーから前記交換プロセッサーにへ割り込みをリダイレクトすることを含む請求項19に記載の方法。
JP2009537411A 2006-11-21 2007-11-20 システムプロセッサーのトランスペアレントな交換 Withdrawn JP2010510592A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US86681506P 2006-11-21 2006-11-21
US86681706P 2006-11-21 2006-11-21
US86682106P 2006-11-21 2006-11-21
US11/675,290 US7934121B2 (en) 2006-11-21 2007-02-15 Transparent replacement of a system processor
PCT/US2007/085216 WO2008064213A1 (en) 2006-11-21 2007-11-20 Transparent replacement of a system processor

Publications (2)

Publication Number Publication Date
JP2010510592A true JP2010510592A (ja) 2010-04-02
JP2010510592A5 JP2010510592A5 (ja) 2010-12-24

Family

ID=39418283

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009537411A Withdrawn JP2010510592A (ja) 2006-11-21 2007-11-20 システムプロセッサーのトランスペアレントな交換

Country Status (5)

Country Link
US (2) US7934121B2 (ja)
EP (1) EP2084601A4 (ja)
JP (1) JP2010510592A (ja)
KR (1) KR20090082242A (ja)
WO (1) WO2008064213A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013088394A (ja) * 2011-10-21 2013-05-13 Renesas Electronics Corp 半導体装置
US8543871B2 (en) 2007-02-15 2013-09-24 Microsoft Corporation Correlating hardware devices between local operating system and global management entity
US8745441B2 (en) 2006-11-21 2014-06-03 Microsoft Corporation Processor replacement
JP7359466B2 (ja) 2022-03-16 2023-10-11 Necプラットフォームズ株式会社 処理装置、情報処理システム、処理方法、およびプログラム

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9357031B2 (en) 2004-06-03 2016-05-31 Microsoft Technology Licensing, Llc Applications as a service
US8812613B2 (en) 2004-06-03 2014-08-19 Maxsp Corporation Virtual application manager
US7937616B2 (en) 2005-06-28 2011-05-03 International Business Machines Corporation Cluster availability management
US8811396B2 (en) 2006-05-24 2014-08-19 Maxsp Corporation System for and method of securing a network utilizing credentials
US8898319B2 (en) 2006-05-24 2014-11-25 Maxsp Corporation Applications and services as a bundle
US9317506B2 (en) 2006-09-22 2016-04-19 Microsoft Technology Licensing, Llc Accelerated data transfer using common prior data segments
US8473460B2 (en) * 2006-11-21 2013-06-25 Microsoft Corporation Driver model for replacing core system hardware
US7877358B2 (en) * 2006-11-21 2011-01-25 Microsoft Corporation Replacing system hardware
US7844686B1 (en) 2006-12-21 2010-11-30 Maxsp Corporation Warm standby appliance
JP2009075827A (ja) * 2007-09-20 2009-04-09 Panasonic Corp プログラム実行装置
US8612973B2 (en) * 2007-09-26 2013-12-17 Hewlett-Packard Development Company, L.P. Method and system for handling interrupts within computer system during hardware resource migration
US8307239B1 (en) * 2007-10-26 2012-11-06 Maxsp Corporation Disaster recovery appliance
US8645515B2 (en) 2007-10-26 2014-02-04 Maxsp Corporation Environment manager
US8175418B1 (en) 2007-10-26 2012-05-08 Maxsp Corporation Method of and system for enhanced data storage
US7966519B1 (en) * 2008-04-30 2011-06-21 Hewlett-Packard Development Company, L.P. Reconfiguration in a multi-core processor system with configurable isolation
US20100185682A1 (en) * 2009-01-09 2010-07-22 Lucent Technologies Inc. Object identifier and common registry to support asynchronous checkpointing with audits
KR101622266B1 (ko) * 2009-04-22 2016-05-18 삼성전자주식회사 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법
WO2013101091A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Advanced programmable interrupt controller identifier (apic id) assignment for a multi-core processing unit
JP2013225208A (ja) * 2012-04-20 2013-10-31 Toyota Motor Corp 情報処理装置、情報処理方法、及びプログラム
US8977895B2 (en) 2012-07-18 2015-03-10 International Business Machines Corporation Multi-core diagnostics and repair using firmware and spare cores
US9430150B2 (en) * 2013-01-28 2016-08-30 Dell Products, Lp Power control for data storage devices and method therefor
JP6029737B2 (ja) * 2013-02-15 2016-11-24 三菱電機株式会社 制御装置
US9354993B2 (en) * 2013-03-12 2016-05-31 Dell Products L.P. System and method to reduce service disruption in a shared infrastructure node environment
JP6135403B2 (ja) * 2013-08-27 2017-05-31 富士通株式会社 情報処理システム、情報処理システムの障害処理方法
JP2015170242A (ja) * 2014-03-10 2015-09-28 富士通株式会社 中継プログラム、中継方法、および中継装置
US9842082B2 (en) 2015-02-27 2017-12-12 Intel Corporation Dynamically updating logical identifiers of cores of a processor
JP6478762B2 (ja) * 2015-03-30 2019-03-06 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法
CN106445650B (zh) * 2015-08-05 2019-10-25 华为技术有限公司 一种中断处理方法、ioapic及计算机系统
US9733911B2 (en) * 2015-11-11 2017-08-15 National Instruments Corporation Value transfer between program variables using dynamic memory resource mapping
US10360114B2 (en) * 2016-02-24 2019-07-23 Quanta Computer Inc. Hardware recovery systems
CN108073451B (zh) * 2017-12-20 2020-09-22 北京东土科技股份有限公司 一种多核cpu上异构操作系统间中断处理方法及装置
US11693755B2 (en) * 2019-04-19 2023-07-04 Microsoft Technology Licensing, Llc. Optimizing hardware replacement using performance analytics
US11662931B2 (en) * 2021-05-26 2023-05-30 Arm Limited Mapping partition identifiers

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0472861B1 (en) * 1990-08-31 1995-09-20 International Business Machines Corporation Method and apparatus for cross-partition control in a partitioned process environment
CA2100540A1 (en) * 1992-10-19 1994-04-20 Jonel George System and method for performing resource reconfiguration in a computer system
US5491788A (en) * 1993-09-10 1996-02-13 Compaq Computer Corp. Method of booting a multiprocessor computer where execution is transferring from a first processor to a second processor based on the first processor having had a critical error
US5689701A (en) * 1994-12-14 1997-11-18 International Business Machines Corporation System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax
US6421679B1 (en) * 1995-10-27 2002-07-16 International Business Machines Corporation Concurrent patch to logical partition manager of a logically partitioned system
US5815731A (en) * 1996-10-31 1998-09-29 International Business Machines Corporation Method and system for providing device driver configurations on demand
US5991777A (en) * 1997-09-19 1999-11-23 Microsoft Corporation System and method for performing defined actions when grafting the name space of one storage medium into the name space of another storage medium
US5913058A (en) * 1997-09-30 1999-06-15 Compaq Computer Corp. System and method for using a real mode bios interface to read physical disk sectors after the operating system has loaded and before the operating system device drivers have loaded
US6199179B1 (en) * 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
US6226734B1 (en) * 1998-06-10 2001-05-01 Compaq Computer Corporation Method and apparatus for processor migration from different processor states in a multi-processor computer system
US6647508B2 (en) * 1997-11-04 2003-11-11 Hewlett-Packard Development Company, L.P. Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation
US6247109B1 (en) * 1998-06-10 2001-06-12 Compaq Computer Corp. Dynamically assigning CPUs to different partitions each having an operation system instance in a shared memory space
US6295575B1 (en) * 1998-06-29 2001-09-25 Emc Corporation Configuring vectors of logical storage units for data storage partitioning and sharing
US7100071B2 (en) 1998-07-16 2006-08-29 Hewlett-Packard Development Company, L.P. System and method for allocating fail-over memory
US6640278B1 (en) * 1999-03-25 2003-10-28 Dell Products L.P. Method for configuration and management of storage resources in a storage network
US6546415B1 (en) * 1999-05-14 2003-04-08 Lucent Technologies Inc. Network management system using a distributed namespace
FR2798755B1 (fr) * 1999-09-16 2001-11-02 Bull Sa Systeme d'administration pour machines multimodulaires multiprocesseurs
US6598174B1 (en) * 2000-04-26 2003-07-22 Dell Products L.P. Method and apparatus for storage unit replacement in non-redundant array
US6684343B1 (en) * 2000-04-29 2004-01-27 Hewlett-Packard Development Company, Lp. Managing operations of a computer system having a plurality of partitions
US6574748B1 (en) * 2000-06-16 2003-06-03 Bull Hn Information Systems Inc. Fast relief swapping of processors in a data processing system
US6779094B2 (en) * 2000-06-19 2004-08-17 Storage Technology Corporation Apparatus and method for instant copy of data by writing new data to an additional physical storage area
US7051243B2 (en) * 2002-04-30 2006-05-23 Sun Microsystems, Inc. Rules-based configuration problem detection
US6895586B1 (en) * 2000-08-30 2005-05-17 Bmc Software Enterprise management system and method which includes a common enterprise-wide namespace and prototype-based hierarchical inheritance
US6907474B2 (en) * 2000-09-15 2005-06-14 Microsoft Corporation System and method for adding hardware registers to a power management and configuration system
US7039827B2 (en) * 2001-02-13 2006-05-02 Network Appliance, Inc. Failover processing in a storage system
US20020170039A1 (en) * 2001-02-22 2002-11-14 Kovacevic Branko D. System for operating system and platform independent digital stream handling and method thereof
US7065761B2 (en) * 2001-03-01 2006-06-20 International Business Machines Corporation Nonvolatile logical partition system data management
US6792564B2 (en) 2001-03-01 2004-09-14 International Business Machines Corporation Standardized format for reporting error events occurring within logically partitioned multiprocessing systems
US6829729B2 (en) * 2001-03-29 2004-12-07 International Business Machines Corporation Method and system for fault isolation methodology for I/O unrecoverable, uncorrectable error
US6742138B1 (en) * 2001-06-12 2004-05-25 Emc Corporation Data recovery method and apparatus
JP3891004B2 (ja) * 2002-02-26 2007-03-07 日本電気株式会社 情報処理システム及び該システムの制御方法並びにプログラム
US7480911B2 (en) * 2002-05-09 2009-01-20 International Business Machines Corporation Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system
JP3640187B2 (ja) * 2002-07-29 2005-04-20 日本電気株式会社 マルチプロセッサシステムの障害処理方法、マルチプロセッサシステム及びノード
US6792520B2 (en) * 2002-08-07 2004-09-14 Hewlett-Packard Development Company, L.P. System and method for using a using vendor-long descriptor in ACPI for the chipset registers
US7114064B2 (en) * 2002-11-14 2006-09-26 Hewlett-Packard Development Company, L.P. System and method for accessing an advanced configuration and power interface (ACPI) namespace nodal tree
US7275180B2 (en) * 2003-04-17 2007-09-25 International Business Machines Corporation Transparent replacement of a failing processor
US20050283641A1 (en) * 2004-05-21 2005-12-22 International Business Machines Corporation Apparatus, system, and method for verified fencing of a rogue node within a cluster
US7426657B2 (en) * 2004-07-09 2008-09-16 International Business Machines Corporation System and method for predictive processor failure recovery
US7404105B2 (en) * 2004-08-16 2008-07-22 International Business Machines Corporation High availability multi-processor system
US7343515B1 (en) * 2004-09-30 2008-03-11 Unisys Corporation System and method for performing error recovery in a data processing system having multiple processing partitions
US20060095624A1 (en) * 2004-11-03 2006-05-04 Ashok Raj Retargeting device interrupt destinations
US7325163B2 (en) * 2005-01-04 2008-01-29 International Business Machines Corporation Error monitoring of partitions in a computer system using supervisor partitions
WO2006110937A1 (en) 2005-04-21 2006-10-26 Waratek Pty Limited Modified computer architecture with coordinated objects
US7861106B2 (en) * 2005-08-19 2010-12-28 A. Avizienis And Associates, Inc. Hierarchical configurations in error-correcting computer systems
TW200708969A (en) * 2005-08-24 2007-03-01 Tyan Computer Corp ID allocating method for advanced programmable interrupt controller
US7546487B2 (en) * 2005-09-15 2009-06-09 Intel Corporation OS and firmware coordinated error handling using transparent firmware intercept and firmware services
US7493515B2 (en) 2005-09-30 2009-02-17 International Business Machines Corporation Assigning a processor to a logical partition
US7543182B2 (en) * 2006-01-12 2009-06-02 International Business Machines Corporation Automated failover system for logical partitions
US20080010527A1 (en) * 2006-06-26 2008-01-10 Inventec Corporation Method of solving BIST failure of CPU by means of BIOS and maximizing system performance
US7461241B2 (en) * 2006-07-31 2008-12-02 International Business Machines Corporation Concurrent physical processor reassignment method
CN101542433B (zh) 2006-11-21 2012-11-28 微软公司 系统处理器的透明替换
US7877358B2 (en) 2006-11-21 2011-01-25 Microsoft Corporation Replacing system hardware
US8473460B2 (en) 2006-11-21 2013-06-25 Microsoft Corporation Driver model for replacing core system hardware
US7934121B2 (en) 2006-11-21 2011-04-26 Microsoft Corporation Transparent replacement of a system processor
US8086906B2 (en) 2007-02-15 2011-12-27 Microsoft Corporation Correlating hardware devices between local operating system and global management entity

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745441B2 (en) 2006-11-21 2014-06-03 Microsoft Corporation Processor replacement
US8543871B2 (en) 2007-02-15 2013-09-24 Microsoft Corporation Correlating hardware devices between local operating system and global management entity
JP2013088394A (ja) * 2011-10-21 2013-05-13 Renesas Electronics Corp 半導体装置
US9157959B2 (en) 2011-10-21 2015-10-13 Renesas Electronics Corporation Semiconductor device
JP7359466B2 (ja) 2022-03-16 2023-10-11 Necプラットフォームズ株式会社 処理装置、情報処理システム、処理方法、およびプログラム

Also Published As

Publication number Publication date
US20110161729A1 (en) 2011-06-30
EP2084601A1 (en) 2009-08-05
EP2084601A4 (en) 2011-12-21
KR20090082242A (ko) 2009-07-29
US8745441B2 (en) 2014-06-03
WO2008064213A1 (en) 2008-05-29
US20080120515A1 (en) 2008-05-22
US7934121B2 (en) 2011-04-26

Similar Documents

Publication Publication Date Title
JP2010510592A (ja) システムプロセッサーのトランスペアレントな交換
US7877358B2 (en) Replacing system hardware
US8543871B2 (en) Correlating hardware devices between local operating system and global management entity
EP1636696B1 (en) Os agnostic resource sharing across multiple computing platforms
JP5637873B2 (ja) 計算機システムおよびpciカードのhba識別子引き継ぎ方式
US8473460B2 (en) Driver model for replacing core system hardware
JP2004227558A (ja) 仮想化制御装置およびデータ移行制御方法
US9916215B2 (en) System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines
JP2020035374A (ja) 可用性のシステム、方法、およびプログラム
CN101542433B (zh) 系统处理器的透明替换
JP2011034161A (ja) サーバシステム及びサーバシステムの管理方法
JP2001022599A (ja) フォールトトレラント・システム,フォールトトレラント処理方法およびフォールトトレラント制御用プログラム記録媒体
JP6674101B2 (ja) 制御装置および情報処理システム
WO2010023756A1 (ja) 仮想プロセッサを含む情報処理装置、情報処理方法、およびプログラム
JP6035993B2 (ja) 情報処理装置、装置管理方法および装置管理プログラム
JP5321658B2 (ja) フェイルオーバ方法、およびその計算機システム。

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101101

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101101

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20121112