JP2005122229A - 計算機システム - Google Patents

計算機システム Download PDF

Info

Publication number
JP2005122229A
JP2005122229A JP2003353088A JP2003353088A JP2005122229A JP 2005122229 A JP2005122229 A JP 2005122229A JP 2003353088 A JP2003353088 A JP 2003353088A JP 2003353088 A JP2003353088 A JP 2003353088A JP 2005122229 A JP2005122229 A JP 2005122229A
Authority
JP
Japan
Prior art keywords
processor
transaction
logical partition
bus
node
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.)
Pending
Application number
JP2003353088A
Other languages
English (en)
Inventor
Takayuki Abe
孝之 阿部
Keitaro Uehara
敬太郎 上原
Yuji Tsushima
雄次 對馬
Toshiomi Moriki
俊臣 森木
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003353088A priority Critical patent/JP2005122229A/ja
Publication of JP2005122229A publication Critical patent/JP2005122229A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】論理分割機構によりプロセッサバス等の共通資源を論理分割して使用している場合、トランザクションや障害の影響範囲が論理区画よりも広範囲に及ぶことを抑える。
【解決手段】ノードコントローラ200は、プロセッサ100の論理区画識別レジスタ120の値に従い論理区画管理テーブル300を参照し、同一論理区画に属するプロセッサとノードを限定する。
【選択図】 図1

Description

本発明は、論理分割された計算機システムに関する。
プロセッサやメモリなどの物理的資源を仮想化し、計算機システムに任意の数の論理的な区画を生成する論理分割という技術がある。論理分割は、ハイパバイザと呼ばれるファームウェア(以下、ハイパバイザという)によって実現される。論理分割では、複数のオペレーティングシステム(以下、OSという)は、ハイパバイザが提供する論理プロセッサ上で実行される。ハイパバイザにより複数の論理プロセッサが物理プロセッサへマッピングされ、時分割で切り替えながら実行される。したがって、物理プロセッサの数よりも多くの論理区画を生成し同時に実行することが可能になる。
特開2002−229811号公報
論理分割された計算機システム(以下、ノードをいう)では、プロセッサバスのように複数のプロセッサで共有される資源が存在する。通常、ノード内のあるプロセッサに障害などが発生した場合、障害などが発生したプロセッサがプロセッサバス上に初期化信号をアサートする。ノード内においてプロセッサバスに接続されたすべての他のプロセッサに初期化信号が伝送され、ノード全体の初期化が実行される。
一方、ノードが論理分割されている場合、ある論理区画で実行されているプロセッサで障害などを検出して初期化信号をプロセッサバス上にアサートすると、前述のようにプロセッサバス上の他の論理区画に割り当てられたノード内の他のプロセッサも初期化信号を受信することになり、ある論理区画に属するプロセッサに発生する障害などの影響が他の論理区画にも及んでしまうという問題がある。
また、論理区画は、ハイパバイザによって時分割で切り替えられるため、ノードコントローラは現在プロセッサで実行されている論理区画がどの論理区画に属するものかはトランザクションから知ることができない。したがって、プロセッサから発行されたトランザクションが回復不能な障害を起こした場合、可能性のあるすべてのプロセッサ(プロセッサバス上のすべてのプロセッサ)に対して障害を通知し、計算機を初期化する必要がある。この場合も、ある論理区画で起こった障害が他の論理区画にまで及んでしまう問題となる。
さらに、プロセッサが発行するトランザクションの中には共有資源(プロセッサバス等)の排他アクセス権を要求するトランザクションも存在する。ある論理区画に属するプロセッサが排他アクセス権を要求するトランザクションを発行した場合、プロセッサバスに接続された他の論理区画に属するプロセッサもトランザクションを発行できなくなる。この場合、ある論理区画の動作が、他の論理区画の実行効率に影響を与えることになる。
本発明は、上述の問題を考慮し、論理区画の独立性を高め、実行効率と可用性を向上させることを目的とする。
論理分割された計算機システム内のプロセッサが属する論理区画に対応する計算機システム内のプロセッサを管理する論理区画管理テーブルをノードコントローラ内に設け、任意のプロセッサによって発行された信号をそのプロセッサの属する論理区画内の自計算機内のプロセッサに限定して転送する。
ある論理区画に属するプロセッサが発行する信号による他の論理区画に対する影響を抑えることができる。
図1は、論理分割された計算機システムの一構成例を示す。
図1の計算機システム(以下、ノードという)は、プロセッサ100a〜100d(以下、プロセッサ100という)、ノードコントローラ200a、図示されていないI/Oコントローラと主記憶をハードウェアとして有している。ノードコントローラ200aとプロセッサ100は、プロセッサバス110を介して接続している。また、ノードコントローラ200aは、相互結合網600を介して他の計算機システム(以下、他ノードという)が有するノードコントローラ200bと接続している。
主記憶とI/Oコントローラは、ノードコントローラ200aの外にあってもよく、中に含まれてもよい。以下の説明ではどちらの構成でも差異を生じない。なお、相互結合網600は、クロスバーやバススイッチなどを用いることができる。
ハイパバイザ800は、プロセッサ100を論理分割し、論理区画130a〜130c(以下、論理区画130という)を生成する。ハイパバイザ800は、プロセッサ100上で実行されるソフトウェアの一種であり、プロセッサ100やノードコントローラ200aの操作権限を有する。
論理区画130aは、プロセッサ100aと100bを有する。論理区画130bは、プロセッサ100bと100cを有する。論理区画130cは、プロセッサ100dを有する。プロセッサ100は、各論理区画に属するオペレーティングシステム(以下、OSという)を実行する。
プロセッサ100は、信号線140a〜140d(以下、信号線140という)を介して初期化信号を発行し、また受信することができる。
信号線140は、後述の条件で信号セレクタ180における選択によってプロセッサバス110に接続する信号線150a〜150d(以下、信号線150という)と接続し、またはノードコントローラ200aに接続する信号線160a〜160d(以下、信号線160という)と接続する。
ノードコントローラ200aは、論理分割モードレジスタ250と論理区画管理テーブル300を有する。
論理分割モードレジスタ250は、ノードの全体が論理分割モードで動作しているか否かを示すフラグを記憶する。ハイパバイザ800が論理分割モードレジスタを管理する。例えば、ノード全体が論理分割モードで動作している場合、論理分割モードレジスタのビット値が「1」とされる。物理分割モードで動作していない場合、ビット値が「0」とされる。
信号セレクタ180は、ノードコントローラ200aによって制御される。ノードが論理分割モードでないの場合、論理分割レジスタ250の値がハイパバイザ800によって「0」と設定さる。したがって、ノードコントローラ200aは、信号セレクタにおいて信号線140と信号線150が選択されるよう制御する。信号線140とプロセッサバス110が信号線150を経由して接続する。この場合は、プロセッサバス110上に発行された信号は、プロセッサバス110に接続されるすべてのプロセッサ100が受信する。
ノードが論理分割モードの場合、ハイパバイザ800によって論理分割モードレジスタ250の値が「1」と設定される。信号セレクタにおいては信号線160が選択される。信号線140は、信号線160を経由してノードコントローラ200aと接続する。プロセッサ100が発行する信号は、ノードコントローラ200が受信するため、プロセッサバス110には発行されない。
論理区画管理テーブル300は、各論理区画130がどのプロセッサを有するかを管理する手段の一例である。ハイパバイザ800によって論理区画130の構成が変更されると、論理区画管理テーブル300の内容が変更される。
論理区画管理テーブル300のエントリは、各論理区画に対応する自ノード内のすべてのプロセッサ又は他ノードを示すビットを記憶する。例えば、プロセッサ100aと100bは共に論理区画130aに属することから、プロセッサ100aと100bに対応するビット値が「1」となっている。また、論理区画130aに属する他ノードが存在しないことから、他ノードを示すビット値が「0」となっている。
図2は、初期化信号を発行する処理を示す。
ステップ201では、プロセッサ100aが初期化信号を発行する。発行された初期化信号は、信号線140aを介して伝送される。
ステップ202では、ノードコントローラ200aは、論理分割モードレジスタの値を参照し、ノードが論理分割モードであるか否かを判別する。論理分割モードの場合、ステップ203に処理が移される。論理分割モードではない場合、ステップ207に処理が移される。
ステップ207では、ノードコントローラ200aの制御によって信号セレクタ180において信号線150aが選択される。プロセッサ100aが発行した初期化信号は信号線150aを経由してプロセッサバス110上に伝送される。プロセッサバスに接続されるプロセッサ100のすべてが初期化信号を受信する。
ステップ203では、ノードコントローラの制御によって信号セレクタ180において信号線160aが選択される。プロセッサ100aが発行した初期化信号は信号線160aを経由してノードコントローラ200aに伝送される。ノードコントローラ200aは、信号線160aから伝送された初期化信号を受信し、プロセッサ100aが初期化信号を発行したことを知ることができる。
なお、プロセッサ100aが発行した初期化信号にはプロセッサ100aを識別するIDは含まれていないが、ノードコントローラ200aとプロセッサ100がプロセッサ100ごとに専用の信号線160で接続されているため、ノードコントローラはどの信号線がアサートされたかを知ることによりどのプロセッサが信号を発信したかを知ることができる。
ステップ204では、ノードコントローラ200aは、論理区画管理テーブル300から初期化信号を発行したプロセッサ100aが属する論理区画を検索する。
例えば、論理区画管理テーブル300において、プロセッサ100aのエントリのビット値が「1」に対応する列には論理区画130aである。よって、ノードコントローラ200aは、初期化信号を発行したプロセッサ100aが属する論理区画は、論理区画130aであることが分かる。
また、ノードコントローラ200aは、論理区画管理テーブル300において、初期化信号を発行したプロセッサ100aと同一の論理区画130aに属する他のプロセッサが自ノード内にあるか否かを検索する。
例えば、論理区画管理テーブル300において、論理区画130aに対応する行には、プロセッサ100bのエントリのビット値が「1」となっている。よって、ノードコントローラ200aは、プロセッサ100bが論理区画130aに属することが分かる。
ステップ205では、ノードコントローラ200aが100bに対して信号線160a、140aを経由して初期化信号を送信する。
ステップ206では、ノードコントローラ200aは、論理区画130aに属するすべてのプロセッサに対して初期化信号を送信したか否かを判別する。初期化信号の送信を完了していない場合、ステップ205に戻る。初期化信号の送信を完了した場合、初期化完了を示すステップ208に処理が移される。
なお、初期化信号の発行に限らずエラー信号やリセット信号などの発行についても対応することができる。
なお、他ノードに存在するプロセッサが論理区画130aに属する場合、他ノードにも初期化信号を伝達必要がある。例えば、論理区画130aはプロセッサ100aとノードコントローラ200a、プロセッサ100fとノードコントローラ200bを有する場合において、プロセッサ100aが初期化信号を発信する。前述のどうように、ノードコントローラ200aは論理区画テーブル300を参照し、初期化信号を発信したプロセッサ100aは論理区画130aに属し、
論理区画130aには他のノードのノードコントローラ200bが含まれることが分かる。ノードコントローラ200aは、後述の図5に示す論理区画識別子460(論理区画130aを示す)、トランザクション本体を初期化要求の持つシステムトランザクションを生成し、ノードコントローラ200bへ送信する。システムトランザクションを受信したノードコントローラ200bは、自分が持つ論理区画テーブル300bを参照し、論理区画130aに属するプロセッサ100fがあることが分かる。ノードコントローラ200bは、プロセッサ100fに接続された信号線をアサートし、信号をプロセッサ100fに伝送する。
このように、プロセッサとノードコントローラを接続する信号線を設けることによって、ある論理区画に属するプロセッサが発行した信号をプロセッサバスに伝送されずに、上述の専用の信号線(信号線160a)を介してノードコントローラに伝送される。ノードコントローラは、信号を発行したプロセッサがどの論理区画に属するかを判別して、信号を発行したプロセッサと同一の論理区画に属するプロセッサに対して個別に信号を送信することができ、信号を発行したプロセッサと異なる論理区画に属するプロセッサに対して信号を送信することを避けることができる。よって、ある論理区画に属するプロセッサが発行した信号の他の論理区画に対する影響を抑えることができる。
また、信号を発行したプロセッサが属する論理区画にどの他のプロセッサが属するか否かの判別は、プロセッサ内に判別させるための機構を設ける必要はなく、ノードコントローラが判別を行うことによってプロセッサ自らが判別するによる処理の負荷の増大を低減することができる。
図3は、論理分割された計算機システムの他の構成例を示す。
以下、既述の構成と同等のものは、同じ符号を用いるものとする。また、図1に示す構成と異なる点を中心に説明する。
図3の計算機システム(以下、ノードという)では、1つ以上のプロセッサ100がプロセッサバス110を介してノードコントローラ200a'に接続されている。ノードコントローラ200a'は、相互結合網600に接続されている。ノードコントローラ200a'を有するノードとノードコントローラ200bを有するノードが相互結合網を介して接続されている。
ノードコントローラ200a'は、バストランザクション受信ユニット210、バストランザクション発行ユニット220、システムトランザクション受信ユニット230、システムトランザクション発行ユニット240、トランザクション完了待ちキュー350、論理区画アドレスマップ310及び論理区画管理テーブル300aを有する。
バストランザクション受信ユニット210は、自ノード内のプロセッサ100がプロセッサバス110上に発行するバストランザクションを受信する。
バストランザクション発行ユニット220は、プロセッサバス110上にトランザクションを送信する。
システムトランザクション受信ユニット230は、他ノードのプロセッサ100に発行され、相互結合網600を介して転送されたシステムトランザクションを受信する。
システムトランザクション発行ユニット240は、相互結合網600を介して他ノードに転送されるシステムトランザクションを送信する。
論理区画テーブル300aは、図1の論理区画テーブルと同様の構成を有する。例えば、行が論理区画に相当し、左のビットから順に当該ノード内のプロセッサに対応する。したがって、論理区画管理テーブル300aにおいては、論理区画130aに属するプロセッサは、100aと100bであることが分かる。また、論理区画130aに対応する最右端のビットの値が「1」であることから、論理区画130aに属するプロセッサが他ノードにも存在することを示している。
プロセッサ100は、論理区画識別レジスタ120、割り込みコントローラ700を有する。
論理区画識別レジスタ120は、ハイパバイザ800が実行中の論理区画130にしたがって論理区画識別レジスタ120の値を管理する。プロセッサ100は、発行するトランザクションに論理区画レジスタ120の値を後述の論理区画識別子として付加する。
割り込みコントローラ700は、割り込みを引き起こすトランザクションを受信しときにハイパバイザ800に実行を移す。使い方については、後述する。
なお、ノードコントローラ200a'とノードコントローラ200bを示しているが、より多くのノードコントローラを介してより多くのノードを接続することも可能である。
図4は、図3の計算機における論理区画の一例を示す。
図4では、130a〜130dの4つ論理区画が存在する。論理区画130aは、プロセッサ100a、100b、100e、100fを有する。論理区画130bは、プロセッサ100b、100cを属する。論理区画130cは、プロセッサ100d、100hを有する。論理区画130dは、プロセッサ100g、100hを有する。また、ノードコントローラ200a'とノードコントローラ200bのそれぞれが論理区画管理テーブル300aと300bを有する。
図5は、トランザクション450の構成を示す。
トランザクション450は、トランザクション本体480、論理区画識別子460、トランザクション識別子490、発行元識別子500、及び宛先識別子510を有する。
論理区画識別子460は、前述のようにプロセッサ100がトランザクション450を発行する際に、プロセッサ100がトランザクション450に論理区画識別レジスタ120の値と同一の値を付加したものである。
トランザクション本体480は、トランザクション種別や対象アドレス、読み書きするデータなどを含む。
トランザクション識別子490は、トランザクション450を識別するための識別子である。
発行元識別子500と宛先識別子510は、それぞれトランザクションの発行元と宛先を示す識別子である。
図6は、発行元識別子と宛先識別子の構成例を示す。
図5の発行元識別子500と宛先識別子510は、ノード識別子フィールド520、ユニット識別子フィールド530、及びプロセッサ識別子フィールド540を有することが可能である。
図7は、トランザクション完了待ちキューの構成の一例を示す。
トランザクション完了待ちキューの各エントリは、トランザクション450を格納する部分と完了待ちベクタ390を有する。
図8は、完了待ちベクタの構成を示す。
完了待ちベクタ390は、論理区画管理テーブル300aに対応するエントリからなり、それぞれ自ノードのプロセッサと他ノードのノードコントローラに対応している。
図9は、論理区画アドレスマップ310の構成の一例を示す。
論理区画アドレスマップ310は、論理区画識別子に対応して、開始物理アドレスと終了物理アドレスが書き込まれたテーブルの一例である。一つ以上の論理区画識別子に対応して二つ以上のアドレス範囲が存在してもよい。論理アドレスマップ310の使い方は後述する。
図10は、トランザクションの発行を示す
以下、論理区画130aに属するプロセッサ100aがプロセッサバス110上にトランザクション450を発行する処理として説明する。
ステップ1001では、プロセッサ100aがバストランザクションを発行する際にプロセッサ100a内の論理区画識別レジスタ120の値を論理区画識別子460としてトランザクション450に付加する。プロセッサ100aが発行したトランザクション450は、バストランザクション受信ユニット210が受信する。
ステップ1002では、バストランザクション受信ユニット210は、トランザクション本体460のトランザクションの種別に基づいて論理区画内の同期処理が必要なトランザクションであるか否かを判別する。論理区画内の同期処理が必要であると判断した場合、ステップ1004に処理が移される。論理区画内の同期処理が必要でない場合、ステップ1003に処理が移される。
ステップ1003では、バストランザクション発行ユニット220は、バストランザクション受信ユニットから転送されたトランザクションをトランザクション発行の対象に向けて送信する。
ステップ1004では、トランザクション発行ルーチンが開始される。トランザクション発行ルーチンは、図11を用いて後述する。
なお、論理区画内の同期処理が必要なトランザクションとは、キャッシュ一貫性制御を伴うトランザクション、資源の排他制御を行うトランザクション、アドレス変換バッファ(TLB)のパージを行うトランザクションなどをいう。
図11は、トランザクションの発行ルーチンの処理を示す。
ステップ1101では、バストランザクション受信ユニット210がトランザクション450をトランザクション完了待ちキュー350に転送する。
ステップ1102では、ノードコントローラ200a'は、論理区画管理テーブル300aを参照し、トランザクション450に付加された論理識別子460と同じ論理区画に属する自ノード内の他のプロセッサと他ノードを選択し、完了待ちベクタ390を設定する。
例えば、論理区画130aを識別する論理区画識別子460がトランザクション450を発行したプロセッサ100aによって付加された場合、ノードコントローラ200aは、図3の論理区画管理テーブル300aを参照する。ノードコントローラ200aは、プロセッサ100a(トランザクション発行元)、プロセッサ100b(自ノードの他のプロセッサ)、およびノードコントローラ200b(他ノード)が論理区画130aに属することが分かる。ノードコントローラ200a'は、論理区画130aに属する発行元のプロセッサ(プロセッサ100a)以外に対してトランザクション処理を行うため、プロセッサ100bおよびノードコントローラ200bに対応する完了待ちベクタのビット値に「1」を設定し、それ以外のビット値に「0」を設定する。
ステップ1103では、ノードコントローラ200a'は、自ノード内のトランザクション未発行の対象プロセッサがあるか否かを判別する。自ノード内のトランザクション未発行の対象プロセッサがある場合、ステップ1104(図12に示すバストランザクション発行ルーチン)に処理が移される。自ノード内のトランザクション未発行の対象プロセッサがない場合、ステップ1105処理が移される。
ステップ1105では、ノードコントローラ200a'は、トランザクション未発行の対象ノードがあるか否かを判別する。トランザクション未発行の対象ノードがある場合、ステップ1106(図13に示すシステムトランザクション発行ルーチン)に処理が移される。トランザクション未発行の対象ノードがない場合、ステップ1107に処理が移される。
ステップ1107では、ノードコントローラ200a'は、完了待ちベクタ390のすべてのビット値が「0」になったか否かを判別する。完了待ちベクタ390のすべてのビット値が「0」になった場合、ステップ1108に処理が移される。トランザクションの発行対象であるプロセッサや他ノードに対してはトランザクションが発行済みとなる。
ステップ1108では、ノードコントローラ200a'は、発行済みとなったトランザクションをトランザクション完了待ちキュー350から除く処理を行う。
ステップ1109では、発行元のバストランザクションに対応する応答バストランザクションが対象プロセッサによって生成され、バストランザクション発行ユニット220へ転送される。
ステップ1110では、バストランザクション発行ユニット220へ転送された応答バストランザクションがプロセッサバス110へ発行される。
例えば、発行元のプロセッサ100aに発行されたトランザクションの処理が完了した場合、プロセッサ100bは完了を示す応答トランザクション450を発行し、または完了を示す信号を発行する。これによって、バストランザクション受信ユニット210は、トランザクション完了待ちキュー350の対応するトランザクションのプロセッサ100bに対応する完了待ちビット値を「1」から「0」へと更新される。
このように、発行元プロセッサ以外の自ノードのプロセッサに「1」と書かれたエントリがある場合、対応するプロセッサを対象にしたトランザクション450が生成され、バストランザクション発行ユニット220へと転送される。他ノードのノード番号に「1」と書かれたエントリがある場合、対応するノードを対象にしたトランザクション450を生成し、システムトランザクション発行ユニット240へと転送される。バストランザクション発行ユニット220は、トランザクション450に指定された宛先識別子510で示されるプロセッサ100を対象にバストランザクションを発行する。
図12は、バストランザクション発行ルーチンの処理を示す。
ステップ1201では、バストランザクションの発行ルーチンが開始される。
ステップ1202では、プロセッサ100aが発行したバストランザクションがバストランザクション発行ユニットに転送される。
ステップ1203では、ノードコントローラ200a'は、割り込みが必要なトランザクションであるか否かを判別する。割り込み処理が必要でない場合、ステップ1204に処理が移される。割り込みが必要な場合、ステップ1205に処理が移される。
ステップ1204では、バストランザクション220によって対象プロセッサ100bに対してバストランザクションが発行され、ステップ1207に処理が移される。
ステップ1205では、バストランザクション発行ユニット220は、割り込みを引き起こすトランザクションをプロセッサ100bに対して発行する。
ステップ1206では、対象プロセッサ100bの割り込みコントローラ700は、この割り込みを受けてハイパバイザ800に制御を移し、ハイパバイザ800によってトランザクション処理が実行される。
ステップ1207〜1209では、割り込み処理が完了し、バストランザクションの処理が完了したことが確認された後、ノードコントローラ200a'は完了待ちベクタ390のプロセッサ100bに対応するビット値が「0」に戻される。
図13は、システムトランザクション発行ルーチンの処理を示す。
ステップ1301では、システムトランザクション発行ルーチンが開始される。
ステップ1302では、ノードコントローラ200a'において、システムトランザクション発行ユニット240が対象ノードのトランザクションを送信する。
具体的は、システムトランザクション発行ユニット240は、ノードコントローラ200b宛のトランザクション450を相互結合網600に向けて介して送信する。相互結合網600は、トランザクション450の宛先識別子510が示すノードに対してトランザクションを転送する。
ステップ1303では、対象ノードのノードコントローラ200bのシステムトランザクション受信ユニット230が相互結合網600から転送されたトランザクション450を受信する。システムトランザクション受信ユニット230は、受信したトランザクションをトランザクション完了待ちキュー350に入れ、論理区画管理テーブル300bの論理区画識別子130aに対応するエントリを参照する。
ステップ1304では、ノードコントローラ200bシステムトランザクション受信ユニット230は、自ノードのプロセッサに対応するビットの値に「1」があることから、トランザクション完了待ちキュー350の完了待ちベクタ390のプロセッサ番号(プロセッサ100e、100f)に対応するビット値を「1」にする。システムトランザクション受信ユニット230は、対応するプロセッサ(100e、100f)を対象としたトランザクションを生成し、バストランザクション発行ユニット220へ転送する。
ステップ1305〜1306では、ノードコントローラ200bは、図11の自ノード内のバストランザクション発行ルーチンと同様に、トランザクション処理を実行し、完了待ちベクタの全てのビット値が「0」になった場合、当該トランザクションをトランザクション完了待ちキュー350から除く処理を行う。
ステップ1307では、ノードコントローラ200bは、元のトランザクションの発行元識別子500を宛先識別子510へと付け替えた応答トランザクション450を生成し、システムトランザクション発行ユニット240へ転送する。システムトランザクション発行ユニット240は、応答トランザクションを相互結合網600へ転送する。
ステップ1308では、発行元のノードコントローラ200aのシステムトランザクション受信ユニット230が相互結合網を介して転送された応答トランザクションを受信する。システムトランザクション受信ユニット230は、トランザクション完了待ちキュー350の対応するエントリの完了待ちベクタ390の応答元ノード番号に対応するビット値を「0」に設定する。完了待ちベクタのすべてのビット値が「0」になった場合、トランザクション完了待ちキュー350から当該トランザクションを外し、対応する発行元のバストランザクションに対応する応答トランザクションを生成し、バストランザクション発行ユニット220へ転送する。バストランザクション発行ユニット220は、発行元のプロセッサ100aを対象に応答トランザクションをプロセッサバス110に発行し、一連のトランザクション処理を完了する。
なお、トランザクション発行の処理対象は、プロセッサとしたが、I/Oコントローラに接続されたI/Oデバイスを対象とした場合にも同様の手順でトランザクション処理を実行することが可能である。
このように、ノードコントローラは、信号を発行したプロセッサがどの論理区画に属するかを判別して、信号を発行したプロセッサと同一の論理区画に属するプロセッサに対して個別に信号を送信することができ、信号を発行したプロセッサと異なる論理区画に属するプロセッサに対して信号を送信することを避けることができる。よって、ある論理区画に属するプロセッサが発行した信号の他の論理区画に対する影響を抑えることができる。
また、ノードコントローラが信号を発行したプロセッサと同一の論理区画に属するプロセッサとの間の信号の送信と受信を制御することによって、同一の論理区画内における信号、特にTLB制御やキャッシュ一貫性制御などの処理における信号のやり取りの時間を短縮、すなわちトランザクション処理の高速化を図ることができる。
図14は、障害を検知した場合の処理を示す。
ステップ1401では、プロセッサ100aがトランザクション450をプロセッサバス110上に発行する。バストランザクション受信ユニット210は、発行されたトランザクション450を受信する。
ステップ1402では、ノードコントローラ200a'は、トランザクション450に含まれるパリティビットやECC等によって障害を検知する。障害を検知できなかった場合、ステップ1403に処理が移される。障害を検知した場合、ステップ1406に処理が移される。
ステップ1403では、ノードコントローラ200a'は、トランザクションの論理区画識別子460に従って、論理区画アドレスマップ310を参照する。
ステップ1404では、ノードコントローラ200a'は、トランザクション本体480に含まれる対象アドレスがトランザクションの示す論理区画識別子460に割り当てられた範囲内にあるか否かを判別する。対象アドレスが論理区画識別子460に割り当てられた範囲外である場合、障害を検知し、ステップ1406の処理に移される。対象アドレスが範囲内である場合、ステップ1405に処理(図10に示す処理)が移される。
ステップ1406〜1407では、障害処理トランザクションを生成し、図11に示す処理に移される。
具体的は、ノードコントローラ200a'が障害を検知した場合、論理区画管理テーブル300aを参照し、プロセッサ100aと同一の論理区画に属するプロセッサ100bおよびノードコントローラ200bを対象に、障害処理を実行するトランザクションを生成し、転送する。バストランザクション発行ユニット220は、プロセッサ100bを対象として障害処理を実行するトランザクションを生成し、発行する。障害処理を実行するトランザクションは、プロセッサ100bに対して割り込みを引き起こし、割り込みコントローラ700によって制御がハイパバイザ800に移行する。ハイパバイザ800は、受け取った割り込みトランザクションに含まれる論理区画識別子によって、論理区画130aに対する障害が起こったことを検知し、プロセッサ100bで実行されている論理区画のうち論理区画130aに対する障害処理を行う。プロセッサ100bでは、論理区画130bも時分割で実行されているが、論理区画130bはこの障害処理の影響を受けない。障害処理が完了するとハイパバイザ800からプロセッサ100bへ制御が移行し、割り込み完了の応答トランザクションが発行される。バストランザクション受信ユニット210は、プロセッサ100b上の障害処理が完了したことを検知し、完了待ちキュー350の完了待ちベクタ390の対応するビット値を「1」から「0」に変更する。ノードコントローラ200bも同様の処理を行い、論理区画130aに対する障害処理を完了する。
このように、ノードコントローラが発見した障害の伝達範囲を論理区画内に限定することができる。また、ノードコントローラは、論理区画上で動作するOSによるアクセス範囲違反を検出し、当該論理区画内に限定して伝達することが可能である。
論理分割された計算機システムの一構成例。 図1の計算機システムの初期化信号を発行する処理。 論理分割された計算機システムの他の構成例。 図3の計算機における論理区画の構成の一例。 トランザクション450の構成例。 発行元識別子と宛先識別子の構成例。 トランザクション完了待ちキューの構成例。 完了待ちベクタの構成例。 論理区画アドレスマップ310の構成例。 トランザクションの発行。 トランザクションの発行ルーチンの処理。 バストランザクション発行ルーチンの処理。 システムトランザクション発行ルーチンの処理。 障害を検知した場合の処理。
符号の説明
100 プロセッサ
110 プロセッサバス
120 論理区画識別レジスタ
130 論理区画
140 信号線(プロセッサ100−信号セレクタ180間)
150 信号線(信号セレクタ180−プロセッサバス110間)
160 信号線(信号セレクタ180−ノードコントローラ200間)
170 信号線(プロセッサバス110−ノードコントローラ200間)
180 信号セレクタ
200 ノードコントローラ
210 バストランザクション受信ユニット
220 バストランザクション発行ユニット
230 システムトランザクション受信ユニット
240 システムトランザクション発行ユニット
250 論理分割モードレジスタ
300 論理区画管理テーブル
310 論理区画アドレスマップ
350 トランザクション完了待ちキュー
390 完了待ちベクタ
450 トランザクション
460 論理区画識別子
480 トランザクション本体
490 トランザクション識別子
500 発行元識別子
510 宛先識別子
520 ノード識別子フィールド
530 ユニット識別子フィールド
540 プロセッサ識別子フィールド
600 相互結合網
700 割り込みコントローラ
800 ハイパバイザ

Claims (3)

  1. 少なくとも1つ以上の論理区画に分割され、第1のバスを介して相互に接続する複数のプロセッサを有する計算機システムにおいて、
    前記複数のプロセッサのそれぞれが第2のバスを介して接続するノードコントローラを備え、
    前記ノードコントローラは、前記複数のプロセッサのうち、少なくとも1つのプロセッサが発行した信号を前記第2のバスを介して受信し、当該プロセッサと同一の論理区画に属する他のプロセッサに送信することを特徴とするシステム計算機。
  2. 複数のプロセッサと接続し、前記複数のプロセッサのうち、少なくとも1つのプロセッサが発行する信号を他のすべてのプロセッサに伝送する第1のバスと、
    前記プロセッサが発行する信号を当該プロセッサと同一の論理区画に属する少なくとも1つの他のプロセッサに伝送する第2のバスと、
    前記プロセッサが発行する信号を伝送する前記第1のバスまたは前記第2のバスを選択する信号セレクタと、
    前記第2のバスと接続し、前記信号セレクタを制御するノードコントローラを備えることを特徴とする計算機システム。
  3. プロセッサバスを介して相互に接続する複数のプロセッサを有する計算機システムであって、相互結合網を介して少なくとも1つのプロセッサを有する少なくとも1つの他の計算機システムに接続する計算機システムにおいて、
    前記プロセッサバスおよび前記相互結合網に接続するノードコントローラを備え、
    前記ノードコントローラは、前記複数のプロセッサのうち、少なくとも1つのプロセッサが発行した信号を、前記プロセッサバスを介して受信し、前記プロセッサと同一の論理区画に属する他のプロセッサまたは前記他の計算機システムに、前記信号を前記プロセッサバスまたは前記総合結合網を介して送信することを特徴とする計算機システム。
JP2003353088A 2003-10-14 2003-10-14 計算機システム Pending JP2005122229A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003353088A JP2005122229A (ja) 2003-10-14 2003-10-14 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003353088A JP2005122229A (ja) 2003-10-14 2003-10-14 計算機システム

Publications (1)

Publication Number Publication Date
JP2005122229A true JP2005122229A (ja) 2005-05-12

Family

ID=34611475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003353088A Pending JP2005122229A (ja) 2003-10-14 2003-10-14 計算機システム

Country Status (1)

Country Link
JP (1) JP2005122229A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007099618A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited パーティションプライオリティ制御システムおよび方法
WO2008120383A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 情報処理装置、障害処理方法
WO2010010765A1 (ja) * 2008-07-22 2010-01-28 日本電気株式会社 仮想計算機装置、仮想計算機システム、仮想計算機プログラム、および、制御方法
JP2010134751A (ja) * 2008-12-05 2010-06-17 Nec Computertechno Ltd マルチパーティション・コンピュータシステム、障害処理方法及びそのプログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007099618A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited パーティションプライオリティ制御システムおよび方法
US7752378B2 (en) 2006-02-28 2010-07-06 Fujitsu Limited Partition priority controlling system and method
JP5051121B2 (ja) * 2006-02-28 2012-10-17 富士通株式会社 パーティションプライオリティ制御システムおよび方法
WO2008120383A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 情報処理装置、障害処理方法
JP4495248B2 (ja) * 2007-03-29 2010-06-30 富士通株式会社 情報処理装置、障害処理方法
JPWO2008120383A1 (ja) * 2007-03-29 2010-07-15 富士通株式会社 情報処理装置、障害処理方法
US7930599B2 (en) 2007-03-29 2011-04-19 Fujitsu Limited Information processing apparatus and fault processing method
WO2010010765A1 (ja) * 2008-07-22 2010-01-28 日本電気株式会社 仮想計算機装置、仮想計算機システム、仮想計算機プログラム、および、制御方法
US8776054B2 (en) 2008-07-22 2014-07-08 Nec Corporation Flexible access control for a virtual computer device, virtual computer system, and virtual computer program, and method for controlling the same
JP2010134751A (ja) * 2008-12-05 2010-06-17 Nec Computertechno Ltd マルチパーティション・コンピュータシステム、障害処理方法及びそのプログラム
US8108736B2 (en) 2008-12-05 2012-01-31 Nec Computertechno Ltd. Multi-partition computer system, failure handling method and program therefor

Similar Documents

Publication Publication Date Title
US7707465B2 (en) Routing of shared I/O fabric error messages in a multi-host environment to a master control root node
US8171230B2 (en) PCI express address translation services invalidation synchronization with TCE invalidation
JP4160925B2 (ja) 分散型ノード・トポロジにおけるクロス・チップ通信機構を含むマルチプロセッサ・コンピュータ・システム内の処理ユニット間の通信方法およびシステム
EP2033101B1 (en) Computer-implemented method, apparatus, and computer program product for stalling dma operations during memory migration
CN106462445B (zh) 针对虚拟化实施一致性加速器功能隔离
CN101206632B (zh) 用套接字连接和共享存储器在主机系统间通信的系统和方法
CN100583046C (zh) 用于单根无状态虚拟功能迁移的系统和方法
CN101206633B (zh) 用事务协议和共享存储器在主机系统间通信的系统和方法
US6536000B1 (en) Communication error reporting mechanism in a multiprocessing computer system
JP6328134B2 (ja) クラスタ化されたコンピュータ・システムで通信チャネルのフェイルオーバを実行する方法、装置、およびプログラム
JP3344345B2 (ja) 共有メモリ型ベクトル処理システムとその制御方法及びベクトル処理の制御プログラムを格納する記憶媒体
CN101206634B (zh) 用于初始化共享存储器的系统和方法
US8225005B2 (en) Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect
US11068400B2 (en) Failure-atomic logging for persistent memory systems with cache-coherent FPGAs
TW201539196A (zh) 用於處理多個交易之資料處理系統及方法
CN101206629A (zh) 在运行的PCIe架构中热插/拔新组件的系统和方法
JPS6353678A (ja) ベクトル処理装置
CN108205510B (zh) 数据处理
US20120054393A1 (en) Computer system, i/o device control method, and i/o drawer
EP1701267B1 (en) Address snoop method and multi-processor system
CN107209725A (zh) 处理写请求的方法、处理器和计算机
JP4712089B2 (ja) 情報処理装置、システム制御装置および情報処理装置の制御方法
JP2005122229A (ja) 計算機システム
JPH07287064A (ja) レーダ信号処理装置
US20010037426A1 (en) Interrupt handling via a proxy processor