JP6536677B2 - Cpuおよびマルチcpuシステム管理方法 - Google Patents

Cpuおよびマルチcpuシステム管理方法 Download PDF

Info

Publication number
JP6536677B2
JP6536677B2 JP2017529378A JP2017529378A JP6536677B2 JP 6536677 B2 JP6536677 B2 JP 6536677B2 JP 2017529378 A JP2017529378 A JP 2017529378A JP 2017529378 A JP2017529378 A JP 2017529378A JP 6536677 B2 JP6536677 B2 JP 6536677B2
Authority
JP
Japan
Prior art keywords
cpu
group
domain
state
cpus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017529378A
Other languages
English (en)
Other versions
JP2018507454A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2018507454A publication Critical patent/JP2018507454A/ja
Application granted granted Critical
Publication of JP6536677B2 publication Critical patent/JP6536677B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • G06F15/17343Direct connection machines, e.g. completely connected computers, point to point communication networks wherein the interconnection is dynamically configurable, e.g. having loosely coupled nearest neighbor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明はコンピュータの分野に関し、特に、CPUおよびマルチCPUシステム管理方法に関する。
不均一メモリ・アクセス・アーキテクチャ(Non−Uniform Memory Access Architecture、NUMA)システムにおいて、中央演算装置(Central Processing Unit、CPU)を、相互接続バスを通じて相互接続してマルチCPUシステムを形成することができる。共通相互接続バスはクイック・パス相互接続プロトコル(Quick−Path Interconnect、QPI)である。
しかし、コンポーネントのリソース制限のため、例えば、制限された数のCPU相互接続ポートのため、相互接続バスのみを用いることで、最大で8個のCPUの間で相互接続を実装することができる。8個を超えるCPUの間で相互接続を実装するためには、ノード・コントローラ(Node Controller、NC)を使用する必要がある。
図1は、ノード・コントローラ111、ノード・コントローラ112、および8個のCPUを含む、先行技術におけるマルチCPUシステム構造を示す。CPU121、CPU122、CPU123、およびCPU124はQPIドメインを形成し、CPU125、CPU126、CPU127、およびCPU128は別のQPIドメインを形成する。QPIドメイン内のCPUが当該CPU間のQPIバスを通じて互いと通信してもよい。異なるQPIドメイン内のCPUの間の通信を実装するためには、NCを使用する必要がある。
システム実行プロセスにおいて、クロスNCアクセスは単一の経路を用いて実施され、これが比較的長いシステム遅延に繋がる。低下した信頼性のケースでは、低信頼のNCを除去して取り替える必要がある。しかし、図1のアーキテクチャによれば、CPUによる別のドメインへのアクセスはNC置き換え中に影響を受ける。
本発明の諸実施形態ではマルチCPUシステム・アーキテクチャを提案する。2つのNCグループがCPUに利用可能であり、CPUは、ターゲットNCへの最高速度のアクセスを提供するNCグループを選択でき、これがシステムの全体効率を高める。
第1の態様によれば、本発明の1実施形態はCPUを提供する。当該CPUは、マルチCPUシステムを管理するメインCPUの役割を果たしてもよい。マルチCPUシステムは、第1のクイック・パス相互接続QPIドメイン、第2のQPIドメイン、第1のノード・コントローラNCグループ、および第2のNCグループを備える。第1のNCグループは第1のQPIドメインおよび第2のQPIドメインに接続され、第2のNCグループは第1のQPIドメインおよび第2のQPIドメインに接続され、各QPIドメインは少なくとも1つのCPUを含み、メインCPUは第1のQPIドメインまたは第2のQPIドメインに属し、メインCPUは、第1のNCグループ内のNCを除去すべきとき、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施するマルチCPUシステム内の全てのCPUを、ルート構成を修正することによって、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように制御するように構成される。
当該方法を適用することによって、NCをホット・リムーブでき、これがNC除去に起因するマルチCPUシステム性能への影響を減らす。
第1の態様の第1の可能な実装方式では、メインCPUが、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施するマルチCPUシステム内の全てのCPUを、ルート構成を修正することによって、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように制御するように構成されることは特に、メインCPUが、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施するCPUに、記録されたデータ状態を無効状態に構成するように指示し、システム沈黙を開始して、マルチCPUシステム内の全てのCPUを沈黙状態に構成し、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施するCPUに、ルート・レジスタ内にあり別のドメイン内のCPUにアクセスするポートを、第2のNCグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するように指示し、システム沈黙のキャンセルを開始するように構成されることを含む。
当該実装方式は、CPUルート構成を修正することによってNCホット・リムーブを実装する特定の方式を提供する。
第1の態様の第2の可能な実装方式では、メインCPUはさらに、除去されるべきNCが除去され、ターゲットNCが第1のNCグループに追加され、第1のNCグループ内の元のNCとのトポロジ関係が確立された後、ルート構成を修正することによって、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、マルチCPUシステム内にあり、かつ、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するように構成される。
当該実装方式はNCホット・リムーブ技術を提供する。NC追加プロセスが独立な解決策であってもよく、または、NC追加プロセスを第1の態様または第1の態様の第1の可能な実装方式と組み合わせて、組み合わされた解決策を形成してもよい。
第1の態様の第3の可能な実装方式では、メインCPUはさらに、除去されるべきNCが除去され、ターゲットNCが第1のNCグループに追加された後、記録されたデータ状態を無効状態に構成するように第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに指示し、システム沈黙を開始してマルチCPUシステム内の全てのCPUを沈黙状態に構成し、第1のNCグループ内のターゲットNCと元のNCの間のトポロジ関係を確立し、ルート・レジスタ内にあり別のドメイン内のCPUにアクセスするポートを、第2のNCグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するように当該少なくとも1つのCPUに指示し、システム沈黙のキャンセルを開始するように構成される。
当該解決策はより詳細なNCホット・リムーブ技術を提供する。
第1の態様の第4の可能な実装方式では、メインCPUはさらに、ターゲットNCが第1のNCグループに追加された後、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに命令を送信し、記録されたデータ状態におけるM個のクロス・ドメインのシンクCPUに対応するデータ状態を無効状態に設定するように当該少なくとも1つのCPUに指示し、システム沈黙を開始して、マルチCPUシステム内の全てのCPUを沈黙状態に構成し、当該少なくとも1つのCPUのルート・レジスタ構成を修正して、ルート・レジスタ内にあり当該M個のCPUにアクセスするポートを、第1のNCグループを用いることによりクロス・ドメイン・アクセスを実施するポートに構成し、当該ルート・レジスタ構成の修正を完了した後に当該システム沈黙をキャンセルするように構成される。当該CPUにより記録されたデータ状態はN個のクロス・ドメインのシンクCPUの総数に対応し、M<Nである。
第1の態様の第4の可能な実装方式を適用することによって、異なるシンク・ノードに依存して、幾つかのCPUを選択してルートを変更してもよく、残りのCPUのルートは不変のままである。
第2の態様によればCPUが提供される。当該CPUはマルチCPUシステムを管理するメインCPUの役割を果たす。当該マルチCPUシステムは、第1のクイック・パス相互接続QPIドメイン、第2のQPIドメイン、第1のノード・コントローラNCグループ、および第2のNCグループを備え、第1のNCグループは第1のQPIドメインおよび第2のQPIドメインに接続され、第2のNCグループは第1のQPIドメインおよび第2のQPIドメインに接続され、各QPIドメインは少なくとも1つのCPUを含み、メインCPUは第1のQPIドメインまたは第2のQPIドメインに属し、メインCPUは、第1のNCグループ内のターゲットNCを除去すべきとき、ルート構成を修正することによって、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するマルチCPUシステム内の全てのCPUを制御するように構成される。
当該解決策はNCホット・リムーブを実装することができる。
第2の態様の第1の可能な実装方式では、メインCPUが、ルート構成を修正することによって、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するマルチCPUシステム内の全てのCPUを制御するように構成されることは特に、メインCPUが、記録されたデータ状態を無効状態に構成するように、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するCPUに指示し、システム沈黙を開始して、マルチCPUシステム内の全てのCPUを沈黙状態に構成し、ルート構成を更新してターゲットNCを孤立させるように第1のNCグループ内の残りのNCに指示し、ルート・レジスタ内にあり別のドメイン内のCPUにアクセスするポートを、第2のNCグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するようにターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するCPUに指示し、システム沈黙のキャンセルを開始するように構成されることを含む。
第3の態様によれば、CPUが提供される。当該CPUはマルチCPUシステムを管理するメインCPUの役割を果たす。マルチCPUシステムは、第1のクイック・パス相互接続QPIドメイン、第2のQPIドメイン、第1のノード・コントローラNCグループ、および第2のNCグループ含む。第1のNCグループは第1のQPIドメインおよび第2のQPIドメインに接続され、第2のNCグループは第1のQPIドメインおよび第2のQPIドメインに接続され、各QPIドメインは少なくとも1つのCPUを含み、メインCPUは第1のQPIドメインまたは第2のQPIドメインに属し、メインCPUは、ターゲットNCが第1のNCグループに追加されたとき、ルート構成を修正することによって、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、第1のQPIドメイン内にあり、かつ、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するように構成される。ターゲットNCは第1のQPIドメインに接続される。
第3の態様の第1の可能な実装方式では、NC追加技術が提供される。
第3の態様の第1の可能な実装方式では、メインCPUが、ルート構成を修正することによって、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、第1のQPIドメイン内にあり、かつ、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するように構成されることは特に、メインCPUが、データ状態を無効状態に構成するように当該少なくとも1つのCPUに指示し、システム沈黙を開始して、マルチCPUシステム内の全てのCPUを沈黙状態に構成し、第1のNCグループ内の元のNCとのトポロジ関係を確立するようにターゲットNCに指示し、ルート構成を修正して、ルート・レジスタ内にあり別のドメイン内のCPUにアクセスするポートを、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するポートに修正するように当該少なくとも1つのCPUに指示し、システム沈黙のキャンセルを開始するように構成されることを含む。
第3の態様の第1の可能な実装方式では、詳細なNC追加技術が提供される。
第3の態様の第2の可能な実装方式では、メインCPUが、ルート構成を修正することによって、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、第1のQPIドメイン内にあり、かつ、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するように構成されることは特に、メインCPUが、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに命令を送信し、記録されたデータ状態におけるM個のクロス・ドメインのシンクCPUに対応するデータ状態を無効状態に設定するように当該少なくとも1つのCPUに指示し、システム沈黙を開始して、マルチCPUシステム内の全てのCPUを沈黙状態に構成し、当該少なくとも1つのCPUに、ルート構成を修正して、ルート・レジスタ内にあり当該M個のCPUにアクセスするポートを、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するポートに構成するように指示するように構成されることを含む。当該CPUにより記録されたデータ状態はN個のクロス・ドメインのシンクCPUの総数に対応し、M<Nである。
第3の態様の第2の可能な実装方式では、異なるシンク・ノードのルートを変更するための詳細なNC追加技術が提供される。
本発明はさらに、コンピュータを提供する。当該コンピュータは第1のQPIドメイン、第2のQPIドメイン、第1のNCグループ、および第2のNCグループを含み、当該コンピュータはさらにBIOSを含む。当該BIOSは全ての上述の態様におけるCPUを実行するのに必要な命令を格納するために使用され、当該コンピュータは以上の態様と同様な技術的効果をもたらす。
本発明はさらに、マルチCPUシステム管理方法を提供する。当該方法は、以上の全ての態様におけるメインCPUまたは以上のコンピュータに適用可能であり、同様な技術的効果をもたらす。
先行技術におけるマルチCPUシステムのアーキテクチャ図である。 本発明に従うマルチCPUシステムの1実施形態のアーキテクチャ図である。 本発明に従うNC除去方法の実施形態の流れ図である。 本発明に従うNC追加方法の実施形態の流れ図である。 本発明に従う別のNC除去方法の実施形態の流れ図である。 本発明に従う別のNC追加方法の実施形態の流れ図である。
以下では、本発明の諸実施形態における添付図面を参照して、本発明の諸実施形態における技術的解決策を明確かつ十分に説明する。明らかに、説明した実施形態は本発明の諸実施形態の全部ではなく一部にすぎない。
NUMAのようなマルチCPUシステムがコンピュータに配置されている。マルチCPUシステムでは、CPUの間の直接接続のみに依存することによって、当該システムのスケールは、当該CPUの外部インタフェースの数が制限されているので殆ど拡張可能ではない。より多くのCPUから成るCPUシステムを形成するために、異なるCPUグループが一般にNCを用いることによって接続され、データがNCを用いることによって当該CPUグループの間で送信される。
NCグループはNCプレーンとも呼ばれ、1つまたは複数のNCから成る。同一のNCグループ内の複数のNCはフル・メッシュ(full mesh)、リング接続またはシリアル接続の方式で相互接続されうる。当該CPUグループはまたQPIドメインと呼ばれ、当該QPIドメインは1つまたは複数のCPUから成る。同一のQPIドメイン内の複数のCPUはQPIバスを用いることによって接続される。NCグループは当該CPUグループに接続される。
CPUグループ内のCPUは当該QPIバスを用いることによって相互接続されるだけでなく、別のキャッシュ・コヒーレンシ(Cache Coherency、CC)バス、例えば、ハイパー転送(Hyper−Transport、HT)バスを用いることによって相互接続されうる。したがって、CPUグループはキャッシュ・コヒーレンシドメインとも呼ばれうる。説明の簡単さのため、本発明の諸実施形態はQPIドメインを1例として用いることによって説明される。
当該実施形態では、当該CPUの1つのポートはNCに接続され、残りのポートは当該ドメイン内の他のCPUに接続される。NCグループがQPIドメインの間でパケットを転送してもよく、したがって、異なるQPIドメイン内のCPUがNCグループを用いることによってパケット送信を実装してもよい。
任意選択で、各CPUは複数のポートを有する。当該ポートのうち1つはNCに接続され、残りのポートは現在のQPIドメイン内のCPUに接続される。例えば、CPUは3つのポートを有し、当該ポートのうち1つはNCに接続され、残りの2つのポートは隣接するCPUに接続される。CPUとNCの間の接続ラインはまた、当該CPUとNCグループの間の接続ラインである。NCグループは転送機能を提供し、当該CPUは、NCグループに接続されたラインを用いることによって他のQPIドメイン内のCPUと通信する。
NCを使用するプロセスにおいて、信頼性が低下することがあり、故障さえも発生しうる。NCが故障した場合、特定の影響がマルチCPUシステム内のCPUにアクセスする帯域幅上で生じうる。マルチCPUシステムの信頼性を改善するために、理想的なマルチCPUシステムはNCホット・スワップをサポートすべきである。マルチCPUシステムの実行状態が管理ソフトウェアを用いることによって監視される。NCの実行が不安定であることが分かった場合、例えば、ある期間内にNCの故障発生の頻度または回数が閾値を超えた場合、NCは危険であるとマークされる。さらに、NCが利用不能になる前に、当該危険なNCを、当該危険なNCをホット・リムーブして新たなNCをホット・アッドすることによって置き換えて、NCの突然の故障により当該システムに生ずる重大な影響を防止する。
ホット・スワップとは、電源を落とさずにスワップすることをいい、ユーザが当該システムをオフにし電源を切ることなく関連部分を置き換えることを可能とする。特に、ホット・スワップは2つのプロセス、即ち、ホット・リムーブおよびホット・アッドを含む
本発明の当該実施形態では、複数のQPIドメインは同一の複数のNCグループに接続される。ルート構成はNCおよびCPUレジスタに格納され、パケット送信経路を、当該ルート構成を修正することによって変更してもよい。CPUの間の相互アクセス動作において、トランザクションは一連のアクセス動作を説明するために使用される。アクセス・トランザクションを開始した(アクセス要求を送信した)CPUはソースCPUと呼ばれ、当該トランザクションに応答する(当該アクセス要求に応答する)CPUはシンクCPUと呼ばれる。トランザクション処理プロセスでは、ソースCPUとシンクCPUの間でデータを送信するためのチャネルはルートと呼ばれる。データ・パケットの送信方向はトランザクションのルート方向と反対である。シンクCPUは当該データ・パケットの送信者であり、ソースCPUは当該データ・パケットの受信者である。要求パケットの送信方向は当該トランザクションのルート方向と同一である。ソースCPUはデータ要求パケットを送信し、シンクCPUは当該データ要求パケットに応答する。
図2は本発明に従う1実施形態のアーキテクチャ図である。QPIドメイン23、QPIドメイン24、およびQPIドメイン25は全てNCグループ21およびNCグループ22に接続される。任意のCPUがNCグループ21またはNCグループ22を用いることによって他のQPIドメイン内のCPUにアクセスしてもよい。同一のCPUがまた、異なるNCグループを用いることによって他のドメイン内の異なるCPUにアクセスしてもよい。本発明の当該実施形態で述べたアクセスが、例えば、パケットの形で他のCPUからデータを読み取ることであってもよい。特に、データは他のCPUにより管理されるメモリから読み出される。
マルチCPUシステムでは、1つのCPUはメインCPUの役割を果たす。メインCPUはNCおよび他のCPUを管理および制御し、メインCPUが任意のQPIドメインに配置されてもよい。メインCPUはプログラムを実行することによって管理制御命令を生成する。当該プログラムがコンピュータのBIOSから取得されてもよい。当該BIOSはマルチCPUシステムに接続され、マルチCPUシステムと当該BIOSの両方は当該コンピュータ内の統合部分である。
即ち、QPIドメイン内のCPUがNCを用いずに互いにアクセスしてもよい。例えば、図2では、CPU231がCPU234にアクセスする必要がある場合、CPU231−−CPU232−−CPU233−−CPU234、CPU231−−CPU234、およびCPU231−−NC211−−CPU234を含む複数の任意選択のルートがある。しかし、異なるQPIドメイン内のCPUはNCグループを用いることによって互いにアクセスする必要がある。CPU231がCPU241にアクセスする場合、任意選択のアクセス経路はCPU231−−NC211−−NC212−−CPU241であるか、または、以下のアクセス経路、即ち、CPU231−−CPU232−−NC221−−NC222−−CPU242−−CPU241が選択されてもよい。前者はNCグループ21を通り、後者はNCグループ22を通る。
本発明の1実施形態では、マルチCPUシステムは、少なくとも2つのクイック・パス相互接続QPIドメイン、第1のNCグループ、および第2のNCグループを含む。各QPIドメインは少なくとも1つのCPUを含み、各NCグループは少なくとも1つのNCを含む。各NCは全てのQPIドメインに接続される。
マルチCPUシステムでは、CPUが、別のQPIドメイン内の第1のシンクCPUにアクセスするときに、当該CPUのルート構成に従って、アクセス要求を第1のNCグループに送信してもよい。第1のNCグループは、当該アクセス要求を第2のQPIドメイン内の第1のシンクCPUに転送するために使用される。依然として、CPUが別のQPIドメイン内の第2のシンクCPUにアクセスするときに当該CPUのルート構成に従ってアクセス要求を第1のNCグループに送信してもよい。第1のNCグループは当該アクセス要求を第2のQPIドメイン内の第2のシンクCPUに転送するために使用される。
第1のNCグループを用いることによって第1のシンクCPUにアクセスするCPUが、第2のNCグループを用いることによって第2のシンクCPUにアクセスするCPUと同一であってもよく、または、異なってもよい。
以下では、異なるQPIドメインに属するCPUの間で通信が実施されるとき、当該システムへのNC除去および追加により生ずる変化を簡単に説明する。
例えば、本発明の当該実施形態は、NCグループ21内のNC211を除去する必要があるときの2つの解決策を提供する。両方の方式はメインCPUの制御の下で実施される。一方の方式は、もともとNCグループ21を通過する全てのルートをNCグループ22に切り替えるものであり、他方の方式はもともとNC211を通過するルートをNCグループ22に切り替えるものであり、NCグループ21内の他のNCを通過するルートは不変のままである。
同様に、NCをメインCPUの制御の下で追加すべきときに幾つかの解決策がある。例えば、元のNC211が除去された後、新たなNC211がNCグループ21に追加される。1つの方式は、クロス・ドメイン・アクセスを開始する異なるソースCPUに応じて、メインCPUがNCグループ22を通るルートの幾つかを選択し、当該選択されたルートをNCグループ21に切り替え、残りのルートは不変のままであるというものである。別の方式は、ドメインの間でアクセスされる異なるシンクCPUに応じて、メインCPUが、幾つかのシンクCPUに対応するルートを、もともとNCグループ22を通過するルートから選択し、当該選択されたルートをNCグループ21に切り替え、残りのルートは不変のままであるというものである。さらに別の方式は、NCグループ22を通る全てのルートをNCグループ21に切り替えるというものである。
クロス・ドメイン・アクセスは、アクセスされたCPUおよびアクセス要求を送信したCPUが同一のQPIドメイン内になく、特に、アクセスされたメモリ・アドレスが別のQPIドメイン内のCPUにより管理されるメモリ・アドレスであること意味する。当該アクセス要求はデータを別のCPUに要求するために1つのCPUにより使用される。クロス・ドメイン・アクセスのアクセス要求がNCグループ内の任意のNCを通過した場合、当該クロス・ドメイン・アクセスはNCグループを通過すると考えられることに留意すべきである。1つのNCグループ(またはNC)を用いることによってCPUがクロス・ドメイン・アクセスを実施することは、当該CPUのルート構成において、NCグループまたはNCが直接的にまたは間接的に指されることを意味する。これは、クロス・ドメイン・アクセスが現在の時間点で存在することは必ずしも意味しない。しかし、当該CPUがクロス・ドメイン・アクセス要求を送信するとき、当該アクセス要求がNCグループまたはNCを通過してもよい。
直接的にNCを指すことは、例えば、指されるNCに直接接続されることである。当該CPUルート構成において、次のノードは指されるNCである。当該CPUがクロス・ドメイン・アクセス要求を送信するとき、当該CPUルート構成に従って、当該クロス・ドメイン・アクセス要求が通過する次のノードは指されるNCである。間接的にNCを指すことは、例えば、(NCまたはCPUのような)別のノードをまず通過し、次いで指されるNCに接続されることである。当該CPUがクロス・ドメイン・アクセス要求を送信するとき、当該CPUルート構成に従って、当該クロス・ドメイン・アクセス要求が、他のノードをまず通過し、次いで指されるNCに到着してもよい。以上は、直接的にまたは間接的にNCを指す原理を説明し、直接的にまたは間接的にNCグループを指す原理は同一である。
実施形態1
図3を参照すると、本発明の当該実施形態はNCホット・リムーブ方法を提供する。当該方法は図2のアーキテクチャに基づいて説明されている。
第1のNCグループ内のNCを除去すべきとき、メインCPUは、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施するマルチCPUシステム内の全てのCPUを制御し、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替える。
メインCPUがQPIドメイン23内のCPU234であると仮定すると、除去すべきNCはNC211である。説明の簡単さのため、当該実施形態における除去すべきNC211はターゲットNCと呼ばれ、NCグループ21は第1のNCグループと呼ばれ、NCグループ22は第2のNCグループと呼ばれる。
S301.メインCPUが、第1のNCグループ内のNCを除去する必要があることを示す信号を受信する。
例示的に、ユーザがNC211を除去する準備ができているとき、当該ユーザが、オペレーティング・システムを用いることによって、除去命令をメインCPU234に送信してもよい。当該除去命令はNC211の識別子を含む。このように、当該除去命令を受信したとき、メインCPU234が、除去すべきNCがNCグループ21に存在すると判定してもよい。
例示的に、NCグループ21内のNC211の信頼性が低下したことを検出した後、CPU234がNC211の除去を開始してもよい。NCグループ21を通過するルートがNCグループ22に切り替えられ、NCグループ21の利用が停止した後、NC211をホット・リムーブしてもよい。
S302.メインCPUが、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施するCPUに、当該CPUにより記録されたデータ状態を無効状態に構成するように指示する。
メインCPUがマルチCPUシステム内のCPUの間のトポロジ関係を学習してもよく、または換言すれば、メインCPUは、各CPUおよび他の装置(NCまたはCPU)の異なるポートの間の接続関係を知る。したがって、CPUルート構成内の外向きのポート情報を読むことによって、メインCPUが、クロス・ドメイン・アクセスのために当該CPUにより使用されるNCグループが第1のNCグループであるかどうかを学習してもよい。したがって、メインCPUがルート構成内の外向きのポートを修正するように別のCPUに指示する場合、外部アクセスのために当該CPUにより使用される経路を変更することができる(後続のステップS304を参照されたい)。当該ルート構成は当該CPUのキャッシュに記録される。
例えば、メインCPUは、CPU231がNCグループ21を用いることによって別のドメイン内のCPU(例えば、CPU241)にアクセスする必要がある場合、使用する必要があるポートはCPU231の3つのポートのうちNC211に接続されたポートであり、CPU231がNCグループ22を用いることによって別のドメイン内のCPU(例えば、CPU241)にアクセスする必要がある場合、使用する必要があるポートはCPU231の3つのポートのうちNC221を指すポート、即ち、CPU231とCPU232の間のポートであることを記録する。別のドメインにアクセスするためにCPU231により現在構成されているポートが前者である場合、これは、CPU231が第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施することを意味する。当該方法によれば、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施するマルチCPUシステム内の全てのCPUを取得してもよい。
例えば、メインCPUが、キャッシュに、異なるメモリ・アドレスにアクセスするために各CPUにより使用される外向きのポートを記録してもよい。メインCPUのキャッシュを読んだ後、メインCPUは、どのCPUが第1のNCグループを使用してクロス・ドメイン・アクセスを実施するかを学習することができる。あるいは、独立な管理装置がかかる情報を記録し、当該情報をメインCPUに提供してもよい。
図2を1例として用いると、CPU231がCPU231のドメイン内にないメモリ・アドレスにアクセスしたとき、NC211に接続されCPU231内にあるポートが使用される。当該CPUは、コア、キャッシュ・エージェント(Cache Agent、CA)、およびホーム・エージェント(Home Agent、HA)を備える。CAは当該キャッシュを管理し、HAはメモリを管理する。データを要求するとき、CPUコアはまず当該CPUコアのCAを使用して、CAにより管理されるキャッシュを検索し、当該データが見つからなかった場合には、HAを使用してHAにより管理されるメモリを検索する。
データを提供するHAとアクセス要求を送信するコアが同一のCPUまたは異なるCPUに配置されてもよい。当該実施形態では、データを提供するHAを説明し、別のQPIドメインに配置されたHAを強調する。
本発明の当該実施形態では、CPUのデータ状態とは、CPUキャッシュ内にあり当該CPUにより取得されているデータの状態のことをいう。当該データ状態は当該CPUキャッシュに記録され、CAにより管理される。
CPUが別のCPUのデータにアクセスしたことがある場合(特に、当該データが当該別のCPUのHAにより管理されるメモリ内のデータであってもよい)、アクセスを開始したCPUが、取得されたデータの現在の状態を記録してもよい。特定のパケット送信プロセスでは、ソースCPUがアクセスを開始し、シンクCPUはパケットを提供する。特に、シンクCPUは、シンクCPUのHAを用いることによってデータをメモリから取得し、次いで当該データをソースCPUに提供する。当該CPUにより記録されたデータ状態は、当該CPUがソースCPUの役割を果たすときに当該CPUにより取得された(パケットのような)データの状態であり、当該データ状態は要求されたものへのシンクCPUのアクセスに対応する。キャッシュ・コヒーレンシ・プロトコル(cache coherency protocol)に従って、所望のデータを取得した後、当該アクセス要求のソースCPUはその自身のキャッシュに当該取得されたデータの状態を記録する。状態は、排他(Exclusive、E)状態、無効(Invalid、I)状態、共有(Share、S)状態、および修正(Modify、M)状態を含む。これらの状態がメモリ・アドレス(キャッシュ・ライン)内でマークされる。当該メモリ・アドレスがさらに当該メモリ内のデータのアドレスを記録してもよい。
M状態は、メモリ・アドレス内でマークされたデータがソースCPUにより修正され(ダーティ)、シンクCPUにより提供された元のデータと一貫していないことを示す。修正されたデータがメモリに書き戻された後、当該メモリ・アドレス内の状態をE状態に変更してもよい。E状態は、当該メモリ・アドレス内でマークされたデータが修正されておらず(クリーン)当該メモリ内のデータと一貫していることを示す。S状態は、当該メモリ・アドレス内でマークされたデータを複数のCPUによりバッファでき、全てのキャッシュ内のデータが当該メモリ内のデータと一貫していることを意味する。I状態は、当該データが無効であること、例えば、別のCPUが当該メモリ・アドレス内でマークされたデータを修正したかもしれないことを示す。
NCがまた、データ状態を記録してもよい。CPUがクロス・ドメイン・パケットを送信したとき、および、当該クロス・ドメイン・パケットがNCを通過したとき、NCはデータ状態を記録し、その結果、NCにより記録されたデータ状態は当該パケットのソースCPUにより記録されたデータ状態と一貫し続ける。後続のクロス・ドメイン・アクセスにおいて、別のCPUがNCを用いることによって当該CPUのデータ状態を学習してもよく、これは、当該データ状態を当該CPUから取得するプラクティスと比較するとより高速である。
当該実施形態では、NCグループ21を用いることによって他のドメインにアクセスした全てのCPUのルート構成を、NCグループ21ではなくNCグループ22を指すように修正する必要がある。かかるCPUはパケットNCグループ22を用いることによってパケットを受信するソースCPUとしての役割を果たしていないので、NCに記録される対応するデータ状態はない。即ち、NCの状態レコードにおいて、対応するデータ状態はI状態である。NCグループ21を用いることによってパケットを送信したCPUに記録された状態をI状態に修正することによって、当該データ状態をNCと当該CPUの間で一貫するように保つことができる。
第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施するCPUにより記録されたデータ状態を無効状態に構成する任意選択の実装方式は2つの部分を含む。第1の部分は、メインCPUが、当該CPUによりバッファされたデータをクリアするように当該CPUに指示し、その結果、当該CPU内のデータ状態M状態がI状態に変化することである。当該キャッシュクリアが特に、バッファされたデータを、当該データを提供するメモリに返すことを指してもよい。第2の部分は、メインCPUが、NCにより記録されたデータ状態をクリアするように第1のNCグループ内のNCに指示し、その結果、NCに記録されたS状態とE状態の両方がI状態に変化し、当該CPUのS状態とE状態もまたそれに応じてI状態に変化することである。動作の当該2つの部分は命令を用いることによってメインCPUにより開始される。以下で特定の解釈を提供する。
第1の部分:CPUコアが、クリア・キャッシュ・コマンドを実行し、したがって、当該CPUに記録された修正された状態のデータをメモリに書き込み、次いで当該データ状態を修正から無効に変更する。さらに、当該データを当該メモリに書き込むプロセスにおいて、当該データが第1のNCグループ内のNCを通過してもよい。第1のNCグループ内のNCはまた、NCのディレクトリ・キャッシュにより記録された対応するディレクトリ状態を修正から無効に変更し、当該CPUに記録されたアクセスされたデータのディレクトリ状態と一貫するのを保つ。
第2の部分は、(1)第1のNCグループのNCがNCのキャッシュ内のデータ状態を問い合わせ(CPUがNCを用いることによって互いにアクセスするとき、NCは当該アクセスされたデータの状態を記録する)、現在S状態およびE状態にあるレコードを取得し、スヌープ・メッセージをS状態またはE状態のレコードを有するCPUに送信し、(2)当該スヌープ・メッセージを受信したCPUがS状態およびE状態のレコードをI状態にダウングレードし、次いで応答メッセージをNCに送信することである。当該応答メッセージを受信した後、NCはまた、NCにより記録されたS状態およびE状態をI状態にダウングレードする。当該スヌープ・メッセージを受信したCPUは、第1のNCグループを用いることによって別のQPIドメイン内のCPUにアクセスしたことがあるCPUである。
S303.メインCPUがシステム沈黙を開始する。
NCホット・スワップはバス上のデータ連続性または割込みに関係するだけでなく、マルチCPUシステム全体の動作モードと能力に影響を及ぼすことに留意すべきである。したがって、マルチCPUシステムが沈黙状態にあるときにNCを除去することは、NC除去に起因するCPUサービス・エラーを回避することができる。マルチCPUシステムが沈黙状態にあるとき、全てのCPUは、メモリおよび入出力インタフェースのリソースへのアクセスを一時停止し、入出力インタフェースから開始されたプリフェッチ、割込み等を無効にし、当該CPUの命令ポインタがソフトウェア・サイクルにおいて制限される。
メインCPUが複数のコアを有する場合、システム沈黙の範囲はメインCPUを含む全てのCPUである。メインCPUが沈黙しないように1つまたは複数のコアを出てもよく、残りのコアは沈黙する。他のCPUのすべてのコアは沈黙する。メインCPU内の沈黙状態にないコアは後続の動作を実施するために使用される。
メインCPUが単一のコアを有する場合、システム沈黙は、メインCPUは沈黙しないが他のCPUの全てのコアは沈黙することを意味する。メインCPUが単一のコアを有するのは稀なケースであるので、メインCPUが複数のコアを有するシナリオを以下の説明のための1例として使用する。
CPU234が、沈黙する必要があるコアを沈黙させてもよい。他のCPUが複数の方式で沈黙してもよい。任意選択の方式は、CPU234が直接的に他のCPUの沈黙レジスタを修正し、沈黙レジスタが修正されたCPUが沈黙になるというものである。別の任意選択の方式は、CPU234がマルチCPUシステム全体において沈黙パケットをブロードキャストし、当該パケットを受信したCPUが沈黙動作を開始し、当該CPU自体を沈黙状態に設定するというものである。以下で、後者の方式を1例として用いて詳細な説明を与える。
沈黙コマンドは2つのタイプで来る。1つのタイプは、当該沈黙コマンドが直接的に他のCPUの沈黙レジスタの構成を修正してもよく、沈黙レジスタが沈黙に構成されたCPUが沈黙状態に入るというものである。別のタイプは、当該沈黙コマンドが他のCPUのコアに送信された命令であり、当該命令を受信したCPUのコアが沈黙プログラムを開始し、その結果、当該CPUが沈黙するというものである。
CPU234と同一のQPIドメイン内にあるCPU231、CPU232、およびCPU233に対して、CPU234は、ドメイン内のCPUの間にあるQPIバスを用いることによって沈黙パケットを送信する。CPU231およびCPU233がCPU234の沈黙パケットを直接受信してもよく、CPU232がCPU231またはCPU233により転送された沈黙パケットを受信してもよい。
CPU234と同一のQPIドメイン内にないCPU、例えば、QPIドメイン24およびQPIドメイン25内のCPUに対しては、CPU234は沈黙パケットをNCグループに送信し、NCグループは当該沈黙パケットをQPIドメイン24およびQPIドメイン25に送信する。当該沈黙パケットを受信したCPUは、当該ドメイン内で当該沈黙パケットを転送し、最終的に全てのCPUが当該沈黙パケットを受信する。
例えば、CPU234が、NC211およびNC212を用いることによって沈黙パケットをCPU241に送信する。CPU241は、当該CPUの間にあるQPIバスを用いることによって当該沈黙パケットの送信を継続し、その結果、QPIドメイン24内の全てのCPUが当該沈黙パケットを受信する。NC212はさらに当該沈黙パケットをNC213に送信し、NC213が当該沈黙パケットをCPU251に送信する。CPU251は、当該CPUの間にあるQPIバスを用いることによって当該沈黙パケットの送信を継続し、その結果、QPIドメイン25内の全てのCPUが当該沈黙パケットを受信する。
S304.メインCPUが、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する全てのCPUに、ルート構成を修正するように指示し、その結果、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する全てのCPUは、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替える。
CPUのルート・レジスタがルート情報を記録してもよい。当該ルート情報がメモリ・アドレスとCPUポートの間の対応関係であってもよい。NCのルート・レジスタはまたルート情報を記録する。当該ルート情報がメモリ・アドレスとNCポートの間の対応関係であってもよい。CPUとNCの両方は当該ルート情報に記録されたポートに従って要求パケットを送信し、その結果、当該要求パケットがルートに沿って送信される。当該ルートが通過したノードのルート・レジスタ内のルート情報を修正することによって、アクセス要求の送信経路全体を変更することができる。当該ルート・レジスタをCPUのキャッシュに統合してもよい。
第2のNCグループを用いることによってパケットを送信するCPUが第2のNCグループ内のNCに直接接続されるように切替えを実施する必要がある場合、当該切替えは、当該CPUによりクロス・ドメイン・アクセスに対して使用されるポートを第2のNCグループ内のNCに直接接続されたポートに構成することをいい、または、第2のNCグループおよび第2のNCグループ内のNCを用いることによってパケットを送信するCPUの間に直接接続が無いが別のCPUが存在するように切替えを実施する必要がある場合、当該切替えは、当該CPUによりクロス・ドメイン・アクセスに対して使用されるポートを、当該別のCPUに接続されたポートに構成することをいう。当該アクセス要求を受信した後、当該別のCPUが、当該アクセス要求を第2のNCグループ内のNCに転送してもよい。
例示的に、CPU231によるCPU241へのアクセスはクロス・ドメイン・アクセスであり、最初に構成されたアクセス・ポートはCPU231のポートのうちNC211に接続されたポートであると仮定する。ルート・レジスタが修正された後、新たなルート構成において、当該ポートがCPU231のポートのうちCPU232に接続されたポートに変化する。当該アクセスがCPU232に到着した後、CPU232のルート構成において、CPU241にアクセスするために使用されるポートはCPU232とNC221の間のポートである。したがって、CPU232が当該アクセスをNC221に転送してもよく、NC221は当該アクセスの転送を継続し、その結果、当該アクセスがCPU241に到達することができる。アクセス経路全体はCPU231−−CPU232−−CPU233−−NC221−−CPU242−−CPU241である。メインCPUはマルチCPUシステムにおけるCPUと各CPUの外向きのポート構成の間のトポロジ関係を記録するので、メインCPU231はCPU231のアクセス要求をCPU234ではなくCPU232に転送することを選択することに留意すべきである。したがって、CPU232を用いることによって、当該クロス・ドメイン・アクセスを、NCグループ22を用いることによって比較的直接的に実施でき、次いでCPU231はルート・ポートをCPU232に対応するポートに構成するように指示されることを学習することができる。
確かに、異なるポリシに依存して、別の実施形態では、メインCPU231がまた、CPU231にアクセス要求をCPU234に転送させることを選択してもよく、CPU234が当該アクセス要求をCPU233に転送し、次いでCPU233が当該アクセス要求をNC221に転送する。
CPU234がCPU252にアクセスすることを仮定し、最初に構成されたポートがCPU234とNC211の間のポートであることを仮定する。ルート・レジスタが修正された後、新たな構成において、当該ポートがCPU234とNC221の間のポートに変化する。
CPUのポート(例えば、1つのCPUが3つまたはそれより多くのポートを有してもよい)はそれぞれ異なる次のノード(例えば、当該ノードはNCまたはCPUである)に接続されることが分かりうる。当該CPUのポートから送信されたアクセス要求を受信した後、別のノードが、当該アクセス要求がアクセスすべきシンクCPUに到着するまで転送を継続する。転送されるプロセスにおいて、当該CPUのポートから送信されたアクセス要求が第2のNCグループを通過してもよく、当該ポートは、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施するポートである。したがって、ルート・レジスタにおいて、別のドメイン内のCPUにアクセスするために使用されるポートが、第2のNCグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成されてもよい。当該別のドメイン内のCPUを当該CPUにより管理されるメモリ・アドレスでマークしてもよい。
ステップS304の後、NCを除去することができる。
S305.当該ルート構成の修正を完了した後にメインCPUがシステム沈黙をキャンセルする。
沈黙をキャンセルするステップは沈黙プロセスと同様であり、以下のステップ、即ち、CPU234が当該CPUの沈黙コアの沈黙状態をキャンセルし、当該CPUが、沈黙キャンセル・コマンドを用いることによって、他のCPUの構成を修正して当該他のCPUの沈黙状態をキャンセルするステップを含む。QPIドメイン23内の他のCPUについて、当該沈黙キャンセル・コマンドがNCにより転送されることなくCPU234により直接送信されてもよく、他のQPIドメイン内のCPUに対しては、CPU234により送信された沈黙キャンセル・コマンドをNC22により転送してもよい。メインCPUによりシステム沈黙をキャンセルするプロセスはシステム沈黙を開始するプロセスと同様であり、ステップS303を参照してもよい。差異は、沈黙コマンドをNCグループ21により送信してもよいが、沈黙キャンセル・コマンドはNCグループ22のみによって送信できるということである。
沈黙キャンセル・コマンドは2つのタイプで来る。1つのタイプは、当該沈黙キャンセル・コマンドが他のCPUの状態関連レジスタの構成を直接修正してもよく、レジスタ構成が修正されたCPUが沈黙状態をキャンセルするというものである。他のタイプは、当該沈黙キャンセル・コマンドが他のCPUのコアに送信された命令であり、当該命令を受信したCPUのコアが沈黙プログラムを開始し、その結果、当該CPUが沈黙をキャンセルするというものである。
当該システム沈黙がキャンセルされた後、各CPUは正常な実行を復元する。この場合、ルート修正のため、マルチCPUシステム内の全てのCPUはNCグループ22を通過し、後にQPIドメインの間でパケットを受信または送信するときにもはやNCグループ21を使用しない。NCグループ21内のNC211が除去された後、NCグループ21を用いることによってクロス・ドメイン・パケットを最初に受信し送信したCPUがQPIドメインの間でパケットの受信および送信を継続できることが保証される。即ち、以上の方法はマルチCPUシステムにおけるNCのホット・リムーブを実装する。
実施形態2
図4を参照すると、以下では、NCを既存のNCグループに追加するプロセスを説明する。図2のシステム・アーキテクチャを依然として1例として用いると、CPU234はメインCPUである。NCグループ21に追加される新たなNC211は、実施形態1の除去されたNC211と区別するために、当該実施形態では別のターゲットNCと呼ばれる。当該実施形態を実施形態1の後に実施してもよく、NC211の置き換えと等価である。特に明記しない限り、実施形態1における関連説明は依然として当該実施形態において適用可能である。
当該実施形態が、別のターゲットNCを第1のNCグループに追加した後、第1のNCグループを再利用する、即ち、マルチCPUシステムに配置され第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御して、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるために使用してもよい。
ステップS401:メインCPUが、別のターゲットNCが第1のNCグループに追加されることを検出する。
例示的に、マルチCPUシステムは定期的に各スロットの状態を検出する。当該スロットはNCを挿入するために使用され、当該スロットの状態は、NCが当該スロットに存在するかどうかを示すために使用される。このように、新たなNCが当該スロットに追加されるとき、当該状態が変化してもよく、メインCPUが当該新たなNCの挿入を検出することができる。
以上の説明は例示的なものにすぎない。本発明は、どのようにメインCPUが別のターゲットNCの第1のNCグループへの接続を検出するかを限定しない。例えば、本発明の当該実施形態では、ユーザがボタンを使用して、メインCPUをトリガして各スロットの状態を検出してもよい。
S402.メインCPUが、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに命令を送信して、当該CPUにより記録されたデータ状態をI状態に構成するように当該CPUに指示する。
当該ステップにおいて、I状態に構成される必要があるCPUは、後続のステップにおいてルート切り替えを実施する準備ができたCPUである。当該データ状態をI状態に構成する動作は、I状態に構成される必要があるCPUのキャッシュをクリアし、I状態に構成される必要があるCPUが通過するNCにより、当該CPUの関連するS状態およびE状態をI状態に構成し、その結果、当該CPUのS状態およびE状態がそれに応じてI状態に変化することを含む。詳細なプロセスについては、ステップS302を参照してもよい。
第1のNCグループに切り替えられるべきCPUを選択するための異なるポリシがあってもよい。当該選択を、2つのNCグループの性能またはアクセスがCPUの間で実施されるときに通過するノードの数に従って行ってもよい。
S403.メインCPUがシステム沈黙を開始する。
システム沈黙プロセスについては、ステップS303を参照してもよい。ステップS303との差異は、ステップS303における沈黙情報を、NCグループ21を用いることによってドメインの間で伝播してもよく、または、NCグループ22を用いることによってドメインの間で伝播してもよいが、ステップS403において、NCグループ21は動作せず、NCグループ22のみを用いることによってドメイン間で当該沈黙情報を伝播できるということである。
S404.別のターゲットNCを起動して、第1のNCグループ内の当該別のターゲットNCと元のNCの間のトポロジ関係を確立する。
ルート・レジスタを構成することによって、転送関係が第1のNCグループ内の当該別のターゲットNCと少なくとも1つの元のNCの間で確立される。第1のNCグループが完全相互接続構造を使用する場合、確立された転送関係は、第1のNCグループ内の当該別のターゲットNCと全てのNCの間の転送関係である。このように、当該別のターゲットNCにより受信されたデータを他のNCに転送してもよく、他のNCが当該データを当該別のターゲットNCに転送してもよい。
S405.メインCPUが、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するための命令を使用して、クロス・ドメイン・アクセスが第1のNCグループを用いることによって実施されるようにルートを変更する。
特に、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUのルート・レジスタ構成が修正される。当該少なくとも1つのCPUは、ステップ402においてデータ状態をI状態に構成するCPUを含み、また、元々I状態のCPUを含む。当該ルート・レジスタに記録され別のドメイン内のCPUにアクセスするポートは、第1のNCグループを用いることによりクロス・ドメイン・アクセスを実施するポートに修正される。
第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUにおいて、当該データ状態がステップS402で既にI状態に構成され、したがって、ルート情報を当該ステップで修正してもよい。
当該ステップについてはステップ304を参照してもよく、ここでは詳細は与えない。
第1のNCグループに切り替えるべき特定のルートをポリシに従って変更してもよく、本発明の当該実施形態では限定されないことに留意すべきである。例えば、2つのNCグループを通るルートの数を当該2つのNCグループの性能に従って比例的に割り当ててもよく、または、比較的少数のCPU/NCを訪問する経路がルートの2つの端点の間で訪問されたCPU/NCの数に従ってルートとして選択し構成される。
例示的に、CPU231がCPU241にアクセスする。CPU231の元のルート構成に従って、次のノードはCPU232であり、アクセス経路全体がCPU231−−CPU232−−NC221−−NC222−−CPU242−−CPU241であってもよい。ルート・レジスタが修正された後、当該ルート・レジスタ内の次のノードはNC211に構成され、新たなルートはCPU231−−NC211−−NC212−−CPU241である。別の例として、CPU234はCPU252にアクセスする。CPU234の元のルート構成において、次のノードがCPU233であり、アクセス経路全体がCPU234−−CPU233−−NC221−−NC222−−NC223−−CPU252であってもよいことを仮定する。ルート・レジスタが修正された後、当該ルート・レジスタ内の次のノードはNC211に構成され、当該アクセス経路全体がCPU234−−NC211−−NC212−−NC213−−CPU251−−CPU252に変化してもよい。
当該ステップにおいて、任意選択の方式は、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施するCPUのうち、第1のNCグループに直接接続されたCPUは、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えられるというものである。
S406.当該ルートが修正された後、メインCPUがシステム沈黙をキャンセルする。
CPU234が当該CPUの沈黙コアの沈黙状態をキャンセルし、CPU234が、沈黙キャンセル・コマンドを用いることによって、他のCPUの構成を修正して当該他のCPUの沈黙状態をキャンセルする。沈黙をキャンセルする詳細なプロセスについては、S305を参照されたい。マルチCPUシステムのシステム沈黙がキャンセルされた後、各CPUは正常な実行を復元し、別のターゲットNCが追加される。
以上のステップは、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUが、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるのを実装する。
本発明の1実施形態はさらにルート切替え方法を提供する。第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUのうち、ドメイン間でアクセスされる異なるシンクCPUに依存して、幾つかのシンクCPUへのクロス・ドメイン・アクセスは第1のNCグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えられ、他のシンクCPUへのクロス・ドメイン・アクセスが依然として第2のNCグループを用いることによって実施される。以下で詳細な説明を与える。
当該実施形態のステップS402では、CPUのルート・レジスタに記録された全てのデータ状態がI状態に構成されてもよい。I状態に構成される必要があるデータ状態により描かれたデータが異なるCPUから来てもよい。したがって、当該ステップを以下のように改善してもよい。即ち、データ状態が異なるデータ・ソースに依存してグループ化され、幾つかのCPUから来るデータのデータ状態がI状態に構成され、他のCPUから来るデータの対応する状態は不変のままである。
即ち、ステップS402をS407で置き換えてもよい。
S407.メインCPUが、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに命令を送信し、当該命令を受信したCPUが、記録されたデータ状態の一部を無効状態に構成する。当該命令に従って無効状態に構成されたデータ状態が、メインCPUによりアクセスされている幾つかのシンクCPUに対応するデータ状態であってもよい。換言すれば、単一のCPUに対して、当該CPUにより記録されるデータ状態は、N個のクロス・ドメインのシンクCPUから来るデータのデータ状態を含む。当該ステップにおいて、当該N個のクロス・ドメインのシンクCPUのうちM個のクロス・ドメインのシンクCPUから来るデータのデータ状態は無効状態に構成され、M<Nである。アクセスされたシンクCPUおよびアクセスを開始したCPUは異なるQPIドメイン内にある。したがって、アクセスされたシンクCPUを簡単にクロス・ドメインのシンクCPUと称する。
特に、アクセスされたデータを取得した後、CPUが当該アクセスされたデータのデータ状態を当該CPUのキャッシュに記録してもよい。アクセスされたクロス・ドメインのシンクCPUの数がNであると仮定すると、当該CPUはN個のCPUから来るデータのデータ状態を記録する。当該ステップにおいて、当該N個のCPUのうちM個のクロス・ドメインのシンクCPUから来るデータのデータ状態は無効状態に構成され、M<Nであり、MおよびNの両方は自然数である。残りのN−M個のCPUのデータのデータ状態は不変のままである。
任意選択で、当該M個のCPUは第1のNCグループに直接接続される。ステップS408においてルート切り替えを実施した後、当該M個のCPUへのクロス・ドメイン・アクセスを他のCPUによる転送なしに実施してもよい。
CPUに記録されたデータ状態は、当該CPUによりアクセスされたデータのデータ状態である。当該データ状態は当該CPUにバッファされたデータに対応し、当該データが来るメモリ・アドレスに対応する。当該データが来るメモリ・アドレスは当該メモリ・アドレスを管理するCPUに対応する。したがって、当該データ状態が当該データを提供するCPU(シンクCPU)に対応してもよい。
理解の簡単さのため、さらなる解釈をここで与える。即ち、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUのうち、各CPUに記録されたデータ状態は、当該CPUによりアクセスされたことのあるデータのデータ状態であり、当該CPUによりアクセスされたことのあるデータが他のCPUから来てもよい。当該CPUをまた、アクセスされたCPUまたはシンクCPUと称してもよい。シンクCPUのうち、全部でN個のCPUがアクセスを開始したCPU(ソースCPU)と異なるQPIドメイン内にある。当該実施形態では、当該N個のCPUのうちM個のシンクCPUのみのデータ状態が無効状態に構成される。したがって、後続のステップにおいて、ルート切り替えが当該M個のCPUに実施される。
複数のアルゴリズムが、当該データのデータ状態が来るCPUを選択するために利用可能である。例えば、アクセス・トランザクションのソースCPUとシンクCPUの間で訪問されたCPUノードの数に従って、ソースCPUが第1のNCグループを用いることによってシンクCPUにアクセスするとき比較的少数の他のCPUが訪問される場合、当該ルートは第1のNCグループに切り替えられ、そうでない場合は、第2のNCグループが依然として使用中である。
例えば、図2に示すアーキテクチャにおいて、CPU231はCPU241に対応するデータ状態およびCPU242に対応するデータ状態を記録する。ステップS402に従って、CPU231の全てのデータ状態がI状態に構成され、ステップS407に従って、CPU241に対応しCPU231内にあるデータ状態のみをI状態に構成してもよく、CPU242に対応するデータ状態は不変のままである。
ステップS402がS407で置き換えられる場合、ステップS405をS408で置き換える必要がある。
S408.メインCPUが、幾つかのクロス・ドメインのシンクCPUへのクロス・ドメイン・アクセスを第1のNCグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えるように、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに指示する。即ち、ステップS407におけるI状態に構成されたデータ状態に対応する当該M個のCPUへのクロス・ドメイン・アクセスは、第1のNCグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えられる。特に、当該CPUのルート・レジスタ内のクロス・ドメイン・アクセスに対するポートは当該CPU内のターゲットNCに接続されたポートに構成される。残りのデータ状態に対応するクロス・ドメインのシンクCPUへのアクセスを不変に保つことができる。
ステップS406で与えた例を依然として用いると、CPU231によるCPU241へのアクセスを、第1のNCグループを用いることによって実施されるアクセスに切り替えてもよく、CPU231によるCPU242へのアクセスは依然として第2のNCグループを使用する。
ステップS401、S407、S403、S408、およびS405により形成される実施形態(図4の方式2)において、ルート管理がより改良され、ルートを用いることによって実施されるクロス・ドメインCPUアクセスの効率を、ステップS401、S402、S403、S404、およびS405により形成される実施形態(図4の方式1)と比較して改善することができる。
実施形態1および実施形態2ではNCホット・リムーブのプロセスおよびNCホット・アッドのプロセスをそれぞれ説明した。一緒に組み合わされる場合、当該2つのプロセスはNCホット・スワップのプロセスである。それらをまた、2つの独立なプロセスとして別々に使用してもよい。単一のNCまたは複数のNCを並列にホット・アッドまたはホット・リムーブしてもよい。
実施形態3
実施形態1では、ターゲットNCが除去された後、ターゲットNCが配置されたNCグループ全体はもはやデータを転送しない。このプラクティスは、高い切替え速度と単純な動作の特徴を有する。
図5を参照すると、当該実施形態は別のNCホット・リムーブ方法を提供する。ターゲットNCが除去された後、ターゲットNCが配置されたNCグループ内の残りのNCのうち少なくとも1つのNCは正常に動作を継続でき、即ち、データを転送することができる。実施形態1の解決策と比べると、NCの利用効率が改善される。以下では、図2のアーキテクチャを依然として参照して本発明の当該実施形態を詳細に説明する。
S501.メインCPUが第1のNCグループ内のターゲットNCを除去する必要があることを示す信号を受信する。
ターゲットNCは、除去すべきNC、即ち、当該実施形態ではNC211である。当該ステップはステップS301と同じであり、ここでは繰り返さない。
S502.メインCPUが、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するマルチCPUシステム内の全てのCPUに、当該CPUにより記録されたデータ状態を無効状態に構成するように指示する。
当該ステップはステップS302と同様である。S302の内容を参照してもよく、当該ステップはここでは詳細に説明しない。差異は、ステップS302において、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施するCPUのデータ・レコードが無効状態に構成され、ステップS502において、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するCPUのデータ・レコードが無効状態に構成され、ターゲットNCではなく第1のNCグループ内の他のNCを用いることによってクロス・ドメイン・アクセスを実施する他のCPUの記録されたデータ状態は不変のままであってもよいということである。したがって、本願では、影響されるCPUの範囲が削減される。
ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するCPUは、ターゲットNCを直接使用することによってクロス・ドメイン・アクセスを実施するCPUを含み、また、アクセス要求が別のNCまたは別のCPUにより転送された後にターゲットNCを間接的に使用することによってクロス・ドメイン・アクセスを実施するCPUを含む。
S503.メインCPUがシステム沈黙を開始する。
メインCPUが複数のコアを有する場合、システム沈黙の範囲は、メインCPUを含む全てのCPUである。上述のように、メインCPUが複数のコアを有する場合、メインCPUが沈黙しないように少なくとも1つのコアを出てもよく、残りのコアが沈黙し、他のCPUの全てのコアが沈黙する。メインCPUにおいて沈黙状態にないコアは後続の動作を実施するために使用される。
当該沈黙プロセスはS303と同一であり、ここでは詳細に説明しない。
S504.メインCPUが、ターゲットNCを隔離するためにルート構成を更新するように第1のNCグループ内の残りのNCに指示する。
ターゲットNCを除去する必要があるので、第1のNCグループ内の残りのNCの間の信号送信チャネルを変更する必要がある。第1のNCグループ内の残りのNC上のルート構成により、ターゲットNCを隔離して、他のNCが(パケットまたは管理情報のような)情報をターゲットNCに送信し続けるのを防ぐことができる。したがって、残りのNCにより記録されたルートを更新する必要がある。第1のNCグループ内の残りのNC全てがルート構成を更新する必要があるわけではない。例えば、ターゲットNCに直接接続されたNCのルート構成を更新してもよく、残りのNCのルート構成は不変のままである。
任意選択で、当該ステップにおいて第1のNCグループを調節した結果は、ターゲットNCが存在しなかったケースにおける第1のNCグループ内の各NCのルート構成と等価である。
当該実施形態では、NC211が除去された後、NC214、NC212、およびNC211の間の信号チャネルは消える。したがって、NCグループ21において除去されないNCのルートを、NC211に直接接続されたNC214およびNC212内のNC211関連ルート情報の削除を含めて、再構成する必要がある。例えば、NC214の元のルート構成において、QPIドメイン23にアクセスする必要がある場合、訪問すべき次のNCはNC211である。次に、NC211を除去する必要がある。したがって、NC214のルート構成において、QPIドメイン23にアクセスするために訪問すべき次のNCをNC212に構成してもよい。
さらに、CPUからNCグループへのデータ送信が追加される場合、シンクCPUへのルートに関する情報を対応するNCに追加してもよい。新たに追加されたルート情報はシンクCPUを指すポートを記録する。当該ルート情報を、アクセス・トランザクションを実施するプロセスにおける学習により、NCにより取得してもよい。当該情報が追加されない場合、当該アクセス要求をまた、ブロードキャスト方式でシンクCPUに送信してもよい。
例えば、最初にCPU231が、NC211を用いることによってCPU241へのクロス・ドメイン・アクセスを実施する。NC211が除去された後、CPU231からのクロス・ドメイン・アクセス要求がNC221によって引き継がれる。したがって、CPU241にアクセスするためのポート情報をNC221のルート構成に追加してもよい。
当該ステップにおいてNCグループ21を調節した結果は、NC211が存在しなかったケースにおいてNCグループ21が各QPIドメインに接続された後のNCグループ21内の各NCのルート構成と等価である。
以上は、完全な説明ではなく単純な例である。特に、QPIドメイン21内により多くのNCがあるケースでは、NCグループ21内のNCのルート構成の調節はより複雑である。
ステップS504および後続のステップS505は順序に敏感ではなく、例えば、それらを同時に実施してもよく、または、何れかのステップが最初に実施される。
S505.メインCPUが、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施する全てのCPUにそのルート構成を修正するように指示し、その結果、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施する全てのCPUが、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替える。
メインCPUはマルチCPUシステム全体のトポロジを学習する。即ち、メインCPUは、CPU間の接続関係と外部アクセスのために各CPUにより使用されるポートとを知る。当該ステップは、別のQPIドメインにアクセスするためにターゲットNCにより使用されるポートを変更することによって実装することができる。
当該ステップの原理はステップS304と同一である。S304を参照してもよく、ここでは詳細は与えない。差異は、より少ないCPUが当該ステップにおいて切り替えられること、即ち、より少ないCPUのルート構成が変更されることである。
ステップS505の後、NCを除去することができる。
S506.メインCPUがシステム沈黙をキャンセルする。
当該ステップについては、ステップS305を参照してもよい。
実施形態4
図6を参照すると、当該実施形態では、第1のNCグループ内の既存のNCが動作しているケースにおいて、新たなNC(以降、ターゲットNCと称する)が第1のNCグループに追加され、第1のNCグループ内のターゲットNCおよび既存のNCの共同動作を実装する。ターゲットNCを第1のQPIドメインに接続してもよい。第1のQPIドメイン内にあり第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUは、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施することに切り替わる。
例えば、実施形態3においてNC211がホット・リムーブされた後、新たなNC211がNCグループ21にホット・アッドされる。したがって、NC211に直接接続されたCPU231が、ターゲットNCを用いることによって別のQPIドメインにアクセスすることに切り替わってもよい。当該実施形態は実施形態2と同様であり、比較的狭い範囲において相違する。当該実施形態では、クロス・ドメイン・アクセスのルートが切り替えられるCPUは第1のQPIドメイン内のCPUに限定され、実施形態2において、かかる制限は課されない。さらに、当該実施形態においてルートが切り替えられるCPUは、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施し、実施形態2において、ルートが切り替えられるCPUは第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する。当該実施形態の主要な部分は実施形態2と同様であるので、当該実施形態の大部分の内容については、実施形態2を参照してもよい。
当該実施形態を、実施形態3の後に実施して、共同でNC置換方法を形成してもよい。当該実施形態をまた別々に実施してもよく、その結果、新たなNCが正常に実行するNCグループに追加される。
S601.メインCPUが、ターゲットNCが第1のNCグループに追加されることを検出する。
S601が実施されているとき、正常に動作するNCが第1のNCグループ内に存在する。即ち、少なくとも1つのNCは、データを転送する準備ができた状態にあるか、または、データを転送している。実施形態2では、ステップS401が実施されているとき、第1のNCグループ内の全てのNCはもはや動作しない。
当該ステップはステップS401と同一であり、ここでは詳細に説明しない。
S602.メインCPUが、第1のQPIドメイン内にあり第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに記録されたデータ状態を、I状態に構成するように指示する。
当該ステップにおいて、I状態に構成される必要があるCPUは、後続のステップでルート切り替えを実施する準備ができたCPUである。
異なるアルゴリズムを使用して、特定のCPUを選択してもよい。例えば、ターゲットNCの性能に従って、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する幾つかのCPUが、ターゲットNCを用いることによってパケットを送信するために選択される。
CPUに記録されたデータ状態をどのようにI状態に構成するかについては、ステップS402を参照されたい。
S603.メインCPUがシステム沈黙を開始する。
どのようにシステム沈黙を実施するかについては、ステップS403を参照されたい。
S604.ターゲットNCを起動して、第1のNCグループ内のターゲットNCと元のNCの間のトポロジ関係を確立する。
ステップS404を参照されたい。
S605.メインCPUが、当該少なくとも1つのCPUのルート構成を修正するように当該少なくとも1つのCPUを制御するための命令を送信する。その結果、当該少なくとも1つのCPUが、第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替える。特に、当該少なくとも1つのCPUの各々のルート・レジスタのルート構成が修正され、その結果、当該ルート・レジスタに記録され別のドメイン内のCPUにアクセスするポートは、ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するポートに構成され、例えば、当該少なくとも1つのCPUのポートのうちターゲットNCに直接接続されたポートに構成される。
当該ステップの詳細については、ステップS405を参照してもよく、ここでは詳細は与えない。差異は、ステップS405において、ルート構成が修正されたCPUが配置されるQPIドメインは決定されないが、当該実施形態では、ルート構成が修正されたCPUが第1のQPIドメイン内に配置されることである。
S606.ルートが修正された後、メインCPUがシステム沈黙をキャンセルする。
沈黙をキャンセルするプロセスはステップS406と同様であり、ステップS406を参照してもよい。
実施形態2と同様に、本発明の当該実施形態はさらにルート切替え方法を提供する。異なるシンクCPUに依存して、切り替えるべきルートが選択される。図6において、当該2つの方式が方式1および方式2とマークされる。ステップS601、S602、S603、S604、S605、およびS606は方式1と呼ばれる。ステップS601、S607、S603、S604、S608、およびS606は方式2と呼ばれる。
方式1および方式2は2つの異なるステップを有する。第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する第1のQPIドメイン内の少なくとも1つのCPUのうち、ドメイン間でアクセスされる異なるシンクCPUに依存して、幾つかのシンクCPUへのクロス・ドメイン・アクセスは第1のNCグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えられ、他のシンクCPUへのクロス・ドメイン・アクセスが依然として第2のNCグループを用いることによって実施される。これは、ステップS602を以下のステップS607で置き換え、ステップS605をステップS608で置き換えることと等価である。
S607.メインCPUが、第1のQPIドメイン内にあり第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに命令を送信し、当該命令を受信したCPUは、記録されたデータ状態の幾つかを無効状態に構成する。換言すれば、単一のCPUに対して、当該CPUにより記録されるデータ状態は、N個のクロス・ドメインのシンクCPUから来るデータのデータ状態である。当該ステップにおいて、M個のクロス・ドメインのシンクCPUから来るデータのデータ状態は無効状態に構成され、M<Nである。
当該ステップの詳細と例については、ステップS407を参照してもよく、ここでは詳細は与えない。S407と比較すると、差異は、ステップS607において、データ状態が無効状態に構成されるCPUが第1のQPIドメインに制限され、ステップS407において、QPIドメイン制限が課されないことである。
S608.メインCPUが、第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに、幾つかのシンクCPUへのクロス・ドメイン・アクセスを、第1のNCグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えるように指示する。例えば、ステップS607においてI状態に構成されたデータ状態に対応するCPUへのクロス・ドメイン・アクセスは、ターゲットNCを用いることによって実施されるクロス・ドメイン・アクセスに切り替えられる。特に、クロス・ドメイン・アクセスを実施するCPUのルート・レジスタにおいて、クロス・ドメイン・アクセスに使用されるポートは、当該CPUのターゲットNCに接続されたポートに構成され、残りのデータ状態に対応するシンクCPUへのアクセスが不変のままであってもよい。
当該ステップについてはステップ408を参照してもよい。
以上の実施形態ではマルチCPUシステムを説明し、本発明はさらにコンピュータに関連する実施形態を提供することに留意すべきである。当該コンピュータは上述のマルチCPUシステムを含み、さらにBIOSを含む。当該BIOSはメインCPUにプログラムを提供し、メインCPUは、当該プログラムを実行することによって管理命令および制御命令を送信する。当該CPUがまた、CCバスを用いることによって接続されNCを用いることによって通信を実施するプロセッサであってもよい。QPIドメインとNCグループの間でQPIバスを使用してもよく、NC間でQPIバスまたは別のバスを使用してもよい。
本発明の各態様または各態様の可能な実装方式を特にシステム、方法、またはコンピュータ・プログラム製品として実装してもよい。したがって、本発明の各態様または各態様の可能な実装方式が、ハードウェアのみの実施形態、ソフトウェアのみの実施形態(ファームウェア、常駐ソフトウェア等を含む)、またはソフトウェアおよびハードウェアの組合せを有する実施形態の形態を使用してもよく、これらは本明細書において均一に「回路」、「モジュール」、または「システム」と称される。さらに、本発明の各態様または各態様の可能な実装方式がコンピュータ・プログラム製品の形をとってもよい。当該コンピュータ・プログラム製品とは、コンピュータ可読媒体に格納されたコンピュータ可読プログラム・コードのことをいう。
当該コンピュータ可読媒体がコンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。当該コンピュータ可読記憶媒体は、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラム可能読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、およびコンパクト・ディスク読取り専用メモリ(CD−ROM)のような、電子、磁気、光、電磁気、赤外線、または半導体のシステム、デバイス、もしくは装置、またはそれらの任意の適切な組合せを含むがこれらに限られない。
コンピュータ内のプロセッサはコンピュータ可読媒体に格納されたコンピュータ可読プログラム・コードを読み取り、その結果、当該プロセッサは流れ図内の各ステップまたはステップの組合せで指定された機能および動作を実施でき、ブロック図内の各ブロックまたはブロックの組合せで指定された機能および動作を実装するための装置が生成される。
明らかに、当業者は本発明に様々な修正および変形を加えることができる。本発明は、これらの修正および変形が以下の諸請求項およびその均等な技術により定義される保護の範囲内に入るならば、それらを包含しようとするものである。
111 ノード・コントローラ
112 ノード・コントローラ
211 ノード・コントローラ
212 ノード・コントローラ
213 ノード・コントローラ
214 ノード・コントローラ
221 ノード・コントローラ
222 ノード・コントローラ
223 ノード・コントローラ

Claims (26)

  1. マルチCPUシステムを管理するメインCPUとしての役割を果たすCPUであって、前記マルチCPUシステムは第1のクイック・パス相互接続QPIドメイン、第2のQPIドメイン、第1のノード・コントローラNCグループ、および第2のNCグループを含み、前記第1のNCグループは前記第1のQPIドメインおよび前記第2のQPIドメインに接続され、前記第2のNCグループは前記第1のQPIドメインおよび前記第2のQPIドメインに接続され、各QPIドメインは少なくとも1つのCPUを含み、前記メインCPUは前記第1のQPIドメインまたは前記第2のQPIドメインに属し、各NCグループは複数のNCを含み、同一のNCグループ内の複数のNCは相互接続され、前記メインCPUは、
    前記第1のNCグループ内のNCを除去すべきとき、前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記マルチCPUシステム内の全てのCPUを、ルート構成を修正することによって、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように制御し、
    除去されるべき前記NCが除去され、ターゲットNCが前記第1のNCグループに追加され、前記第1のNCグループ内の元のNCとのトポロジ関係が確立された後、ルート構成を修正することによって、前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記マルチCPUシステム内にあり、かつ、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御する
    ように構成される、CPU。
  2. 前記メインCPUが、
    前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUに、記録されたデータ状態を無効状態に構成するように指示し、
    システム沈黙を開始して、前記マルチCPUシステム内の全てのCPUを沈黙状態に構成し、
    前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUに、ルート・レジスタ内にあり別のドメイン内のCPUにアクセスするポートを、前記第2のNCグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するように指示し、
    システム沈黙のキャンセルを開始する
    ように構成される、請求項1に記載のCPU。
  3. 前記メインCPUが、前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUに、記録されたデータ状態を無効状態に構成するように指示するように構成されることは特に、前記メインCPUが、
    キャッシュ内のデータをクリアして、データ状態内の修正された状態を前記無効状態に構成するように、前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUに指示することであって、前記データ状態は前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUにより記録される、ことと、
    共有状態および排他状態のデータ状態をブロードキャストして、前記データ状態における共有状態および排他状態を前記無効状態に構成するように前記第1のNCグループ内の全てのNCに指示することであって、前記データ状態は前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUにより記録されることと、
    を行うように構成されることを含む、請求項2に記載のCPU。
  4. 前記メインCPUが、システム沈黙を開始して、前記マルチCPUシステム内の全てのCPUを沈黙状態に構成するように構成されることは特に、前記メインCPUが、
    前記メインCPU内の1つまたは複数の予約されたコアを除く残りのコアを沈黙させ、前記マルチCPUシステム内の他のCPUの全てのコアを沈黙させる
    ように構成されることを含む、請求項2に記載のCPU。
  5. 前記メインCPUはさらに、
    除去されるべき前記NCが除去され、ターゲットNCが前記第1のNCグループに追加された後、記録されたデータ状態を前記無効状態に構成するように、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに指示し、
    前記マルチCPUシステム内の全てのCPUを前記沈黙状態に構成するようにシステム沈黙を開始し、
    前記第1のNCグループ内の前記ターゲットNCと元のNCの間のトポロジ関係を確立し、
    ルート・レジスタ内にあり別のドメイン内のCPUにアクセスするポートを、前記第1のNCグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するように前記少なくとも1つのCPUに指示し、
    システム沈黙のキャンセルを開始する
    ように構成される、請求項2に記載のCPU。
  6. 前記メインCPUはさらに、
    除去されるべき前記NCが除去され、ターゲットNCが前記第1のNCグループに追加され、前記第1のNCグループ内の元のNCとのトポロジ関係が確立された後、
    ドメイン間でアクセスされる異なるクロス・ドメインのシンクCPUに応じて、かつ、ルート構成を修正することによって、幾つかのクロス・ドメインのシンクCPUへのクロス・ドメイン・アクセスを前記第1のNCグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えるように、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御する
    ように構成される、請求項1または2に記載のCPU。
  7. 前記メインCPUはさらに、
    ターゲットNCが前記第1のNCグループに追加された後、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに命令を送信し、記録されたデータ状態におけるM個のクロス・ドメインのシンクCPUに対応するデータ状態を無効状態に設定するように前記少なくとも1つのCPUに指示し、
    システム沈黙を開始して、前記マルチCPUシステム内の全てのCPUを沈黙状態に構成し、
    前記少なくとも1つのCPUのルート・レジスタ構成を修正して、ルート・レジスタ内にあり前記M個のCPUにアクセスするポートを、前記第1のNCグループを用いることによりクロス・ドメイン・アクセスを実施するポートに構成し、
    前記ルート・レジスタ構成の修正を完了した後、システム沈黙をキャンセルする
    ように構成され、
    前記CPUにより記録された前記データ状態はN個のクロス・ドメインのシンクCPUの総数に対応し、M<Nである、
    請求項1に記載のCPU。
  8. 前記M個のCPUは前記第1のNCグループに直接接続される、請求項に記載のマルチCPUシステム。
  9. 前記メインCPUにより、記録されたデータ状態におけるM個のクロス・ドメインのシンクCPUに対応するデータ状態を無効状態に設定するように前記少なくとも1つのCPUに指示するステップは特に、前記メインCPUが、
    キャッシュ内にある前記M個のCPUからのデータをクリアして、前記M個のクロス・ドメインのシンクCPUに対応する前記データ状態内の修正された状態を前記無効状態に構成するように前記少なくとも1つのCPUに指示し、
    前記M個のクロス・ドメインのシンクCPUに対応する前記記録されたデータ状態内の共有状態および排他状態のデータ状態をブロードキャストして、前記M個のクロス・ドメインのシンクCPUに対応する前記データ状態における共有状態および排他状態を前記無効状態に構成するように前記第2のNCグループ内のNCに指示する
    ように構成されることを含む、請求項に記載のマルチCPUシステム。
  10. コンピュータであって、前記コンピュータは請求項1乃至の何れか1項に記載の前記第1のQPIドメイン、前記第2のQPIドメイン、前記第1のNCグループ、および第2のNCグループを含み、前記コンピュータはさらにBIOSを含み、前記BIOSは命令を生成するためにメインCPUにより要求されるプログラムを格納するために使用される、コンピュータ。
  11. マルチCPUシステムを管理するメインCPUに適用可能なマルチCPUシステム管理方法であって、前記マルチCPUシステムは第1のクイック・パス相互接続QPIドメイン、第2のQPIドメイン、第1のノード・コントローラNCグループ、および第2のNCグループを含み、前記第1のNCグループは前記第1のQPIドメインおよび前記第2のQPIドメインに接続され、前記第2のNCグループは前記第1のQPIドメインおよび前記第2のQPIドメインに接続され、各QPIドメインは少なくとも1つのCPUを含み、前記メインCPUは前記第1のQPIドメインまたは前記第2のQPIドメインに属し、各NCグループは複数のNCを含み、同一のNCグループ内の複数のNCは相互接続され、前記方法は、
    前記第1のNCグループ内のNCを除去すべきとき、ルート構成を修正することによって、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記マルチCPUシステム内の全てのCPUを制御するステップと、
    除去されるべき前記NCが除去され、ターゲットNCが前記第1のNCグループに追加され、前記第1のNCグループ内の元のNCとのトポロジ関係が確立された後、前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記マルチCPUシステム内にあり、かつ、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するステップと、
    を含む、方法。
  12. ルート構成を修正することによって、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記マルチCPUシステム内の全てのCPUを制御するステップは特に、
    記録されたデータ状態を無効状態に構成するように、前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUに指示するステップと、
    ステム沈黙を開始してマルチCPUシステム内の全てのCPUを沈黙状態に構成するステップと、
    ルート・レジスタ内にあり別のドメイン内のCPUにアクセスするポートを、前記第2のNCグループを使用することによってクロス・ドメイン・アクセスを実施するポートに構成するように、前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUに指示するステップと、
    システム沈黙のキャンセルを開始するステップと、
    を含む、請求項11に記載のマルチCPUシステム管理方法。
  13. 記録されたデータ状態を無効状態に構成するように、前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUに指示するステップは特に、
    キャッシュ内のデータをクリアして、データ状態内の修正された状態を前記無効状態に構成するように、前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUに指示するステップであって、前記データ状態は前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUにより記録される、ステップと、
    共有状態および排他状態のデータ状態をブロードキャストして、前記データ状態における共有状態および排他状態を前記無効状態に構成するように前記第1のNCグループ内の全てのNCに指示するステップであって、前記データ状態は前記第1のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記CPUにより記録される、ステップと、
    を含む、請求項12に記載のマルチCPUシステム管理方法。
  14. 前記システム沈黙を開始してマルチCPUシステム内の全てのCPUを沈黙状態に構成するステップは特に、
    前記メインCPU内の1つまたは複数の予約されたコアを除く残りのコアを沈黙させ、前記マルチCPUシステム内の他のCPUの全てのコアを沈黙させるステップ
    を含む、請求項12に記載のマルチCPUシステム管理方法。
  15. 前記方法はさらに、
    ターゲットNCが前記第1のNCグループに追加された後、記録されたデータ状態を前記無効状態に構成するように、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに指示するステップと、
    前記マルチCPUシステム内の全てのCPUを前記沈黙状態に構成するようにシステム沈黙を開始するステップと、
    前記第1のNCグループ内の前記ターゲットNCと元のNCの間のトポロジ関係を確立するステップと、
    ルート・レジスタ内にあり別のドメイン内のCPUにアクセスするポートを、前記第1のNCグループを用いることによりクロス・ドメイン・アクセスを実施するポートに構成するように前記少なくとも1つのCPUに指示するステップと、
    システム沈黙のキャンセルを開始するステップと、
    を含む、請求項12に記載のマルチCPUシステム管理方法。
  16. 前記方法はさらに、
    ターゲットNCが前記第1のNCグループに追加され、前記第1のNCグループ内の元のNCとのトポロジ関係が確立された後、
    ドメイン間でアクセスされる異なるクロス・ドメインのシンクCPUに応じて、幾つかのクロス・ドメインのシンクCPUへのクロス・ドメイン・アクセスを前記第1のNCグループを用いることによって実施されるクロス・ドメイン・アクセスに切り替えるように、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するステップ
    を含む、請求項11または12に記載のマルチCPUシステム管理方法。
  17. 前記方法はさらに、
    ターゲットNCが前記第1のNCグループに追加された後、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUに命令を送信し、記録されたデータ状態におけるM個のクロス・ドメインのシンクCPUに対応するデータ状態を無効状態に設定するように前記少なくとも1つのCPUに指示するステップであって、前記CPUにより記録された前記データ状態はN個のクロス・ドメインのシンクCPUの総数に対応し、M<Nである、ステップと、
    ステム沈黙を開始してマルチCPUシステム内の全てのCPUを沈黙状態に構成するステップと、
    前記少なくとも1つのCPUのルート・レジスタ構成を修正して、ルート・レジスタ内にあり前記M個のCPUにアクセスするポートを、前記第1のNCグループを用いることによりクロス・ドメイン・アクセスを実施するポートに構成するステップと、
    前記ルート・レジスタ構成の修正を完了した後、システム沈黙をキャンセルするステップと、
    を含む、請求項11に記載のマルチCPUシステム管理方法。
  18. マルチCPUシステムを管理するメインCPUとしての役割を果たすCPUであって、前記マルチCPUシステムは第1のクイック・パス相互接続QPIドメイン、第2のQPIドメイン、第1のノード・コントローラNCグループ、および第2のNCグループを含み、前記第1のNCグループは前記第1のQPIドメインおよび前記第2のQPIドメインに接続され、前記第2のNCグループは前記第1のQPIドメインおよび前記第2のQPIドメインに接続され、各QPIドメインは少なくとも1つのCPUを含み、前記メインCPUは前記第1のQPIドメインまたは前記第2のQPIドメインに属し、各NCグループは複数のNCを含み、同一のNCグループ内の複数のNCは相互接続され、前記メインCPUは、
    ターゲットNCが前記第1のNCグループに追加されたとき、ルート構成を修正することによって、前記ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第1のQPIドメイン内にあり、かつ、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するように構成され、前記ターゲットNCは前記第1のQPIドメインに接続される、
    CPU。
  19. 前記メインCPUが、ルート構成を修正することによって、前記ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第1のQPIドメイン内にあり、かつ、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するように構成されることは特に、前記メインCPUが、
    データ状態を無効状態に構成するように前記少なくとも1つのCPUに指示し、
    システム沈黙を開始して、前記マルチCPUシステム内の全てのCPUを沈黙状態に構成し、
    前記第1のNCグループ内の元のNCとのトポロジ関係を確立するように前記ターゲットNCに指示し、
    ルート構成を修正して、ルート・レジスタ内にあり別のドメイン内のCPUにアクセスするポートを、前記ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するポートに修正するように前記少なくとも1つのCPUに指示し、
    システム沈黙のキャンセルを開始する
    ように構成されることを含む、請求項18に記載のCPU。
  20. 前記メインCPUが、ルート構成を修正することによって、前記ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第1のQPIドメイン内にあり、かつ、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するように構成されることは特に、前記メインCPUが、
    前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記少なくとも1つのCPUに命令を送信し、記録されたデータ状態におけるM個のクロス・ドメインのシンクCPUに対応するデータ状態を無効状態に設定するように前記少なくとも1つのCPUに指示し、システム沈黙を開始して、前記マルチCPUシステム内の全てのCPUを沈黙状態に構成し、
    ルート構成を修正して、ルート・レジスタ内にあり前記M個のCPUにアクセスするポートを、前記ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するポートに構成するように前記少なくとも1つのCPUに指示する
    ように構成されることを含み、
    前記CPUにより記録された前記データ状態はN個のクロス・ドメインのシンクCPUの総数に対応し、M<Nである、
    請求項18に記載のCPU。
  21. 前記メインCPUが、記録されたデータ状態におけるM個のクロス・ドメインのシンクCPUに対応するデータ状態を無効状態に設定するように前記少なくとも1つのCPUに指示するように構成されることは特に、前記メインCPUが、
    キャッシュ内にある前記M個のCPUからのデータをクリアして、前記M個のクロス・ドメインのシンクCPUに対応する前記データ状態内の修正された状態を前記無効状態に構成するように前記少なくとも1つのCPUに指示する
    ように構成されることを含み、
    前記M個のクロス・ドメインのシンクCPUに対応する前記記録されたデータ状態内の共有状態および排他状態のデータ状態をブロードキャストして、前記M個のクロス・ドメインのシンクCPUに対応する前記データ状態における共有状態および排他状態を前記無効状態に構成するように前記第2のNCグループ内のNCに指示するようにさらに構成された、
    請求項20に記載のCPU。
  22. コンピュータであって、前記コンピュータは請求項18乃至21の何れか1項に記載の前記第1のクイック・パス相互接続QPIドメイン、前記第2のQPIドメイン、前記第1のNCグループ、および第2のNCグループを含み、前記コンピュータはさらにBIOSを含み、前記BIOSは命令を生成するためにメインCPUにより要求されるプログラムを格納するために使用される、コンピュータ。
  23. マルチCPUシステムを管理するためにメインCPUにより使用されるマルチCPUシステム管理方法であって、前記マルチCPUシステムは第1のクイック・パス相互接続QPIドメイン、第2のQPIドメイン、第1のノード・コントローラNCグループ、および第2のNCグループを含み、前記第1のNCグループは前記第1のQPIドメインおよび前記第2のQPIドメインに接続され、前記第2のNCグループは前記第1のQPIドメインおよび前記第2のQPIドメインに接続され、各QPIドメインは少なくとも1つのCPUを含み、前記メインCPUは前記第1のQPIドメインまたは前記第2のQPIドメインに属し、各NCグループは複数のNCを含み、同一のNCグループ内の複数のNCは相互接続され、前記方法は、
    ターゲットNCが前記第1のNCグループに追加されたとき、ルート構成を修正することによって、前記ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第1のQPIドメイン内にあり、かつ、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するステップであって、前記ターゲットNCは前記第1のQPIドメインに接続される、ステップ
    を含む、方法。
  24. ルート構成を修正することによって、前記ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第1のQPIドメイン内にあり、かつ、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するステップは特に、
    データ状態を無効状態に構成するように前記少なくとも1つのCPUに指示するステップと、
    ステム沈黙を開始してマルチCPUシステム内の全てのCPUを沈黙状態に構成するステップと、
    前記第1のNCグループ内の元のNCとのトポロジ関係を確立するように前記ターゲットNCに指示するステップと、
    ルート構成を修正して、ルート・レジスタ内にあり別のドメイン内のCPUにアクセスするポートを、前記ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するポートに修正するように前記少なくとも1つのCPUに指示するステップと、
    システム沈黙のキャンセルを開始するステップを含む、請求項23に記載のマルチCPUシステム管理方法。
  25. ルート構成を修正することによって、前記ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施することに切り替えるように、前記第1のQPIドメイン内にあり、かつ、前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する少なくとも1つのCPUを制御するように構成されるステップは特に、
    前記第2のNCグループを用いることによってクロス・ドメイン・アクセスを実施する前記少なくとも1つのCPUに命令を送信し、記録されたデータ状態におけるM個のクロス・ドメインのシンクCPUに対応するデータ状態を無効状態に設定するように前記少なくとも1つのCPUに指示するステップであって、前記CPUにより記録された前記データ状態はN個のクロス・ドメインのシンクCPUの総数に対応し、M<Nである、ステップと、
    ステム沈黙を開始してマルチCPUシステム内の全てのCPUを沈黙状態に構成するステップと、
    ルート構成を修正して、ルート・レジスタ内にあり前記M個のCPUにアクセスするポートを、前記ターゲットNCを用いることによってクロス・ドメイン・アクセスを実施するポートに構成するように前記少なくとも1つのCPUに指示するステップと、
    を含む、請求項23に記載のマルチCPUシステム管理方法。
  26. 記録されたデータ状態におけるM個のクロス・ドメインのシンクCPUに対応するデータ状態を無効状態に設定するように前記少なくとも1つのCPUに指示するステップは特に、
    キャッシュ内にある前記M個のCPUからのデータをクリアして、前記M個のクロス・ドメインのシンクCPUに対応する前記データ状態内の修正された状態を前記無効状態に構成するように前記少なくとも1つのCPUに指示するステップと、
    さらに、前記M個のCPUのデータの前記記録されたデータ状態構成における共有状態および排他状態のデータ状態をブロードキャストして、前記M個のクロス・ドメインのシンクCPUに対応する前記データ状態における共有状態および排他状態を前記無効状態に構成するように前記第2のNCグループ内のNCに指示するステップであって、前記記録されたデータ状態構成は前記M個のクロス・ドメインのシンクCPUに対応する、ステップと、
    を含む、請求項25に記載のマルチCPUシステム管理方法。
JP2017529378A 2015-12-29 2015-12-29 Cpuおよびマルチcpuシステム管理方法 Active JP6536677B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/099589 WO2017113128A1 (zh) 2015-12-29 2015-12-29 一种cpu及多cpu***管理方法

Publications (2)

Publication Number Publication Date
JP2018507454A JP2018507454A (ja) 2018-03-15
JP6536677B2 true JP6536677B2 (ja) 2019-07-03

Family

ID=57216272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017529378A Active JP6536677B2 (ja) 2015-12-29 2015-12-29 Cpuおよびマルチcpuシステム管理方法

Country Status (12)

Country Link
US (1) US11138147B2 (ja)
EP (2) EP3575977A1 (ja)
JP (1) JP6536677B2 (ja)
KR (1) KR102092660B1 (ja)
CN (2) CN111427827B (ja)
AU (1) AU2015412144B2 (ja)
BR (1) BR112017008407B1 (ja)
CA (1) CA2965982C (ja)
RU (1) RU2658884C1 (ja)
SG (1) SG11201703261WA (ja)
WO (1) WO2017113128A1 (ja)
ZA (1) ZA201702790B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105700975B (zh) * 2016-01-08 2019-05-24 华为技术有限公司 一种中央处理器cpu热移除、热添加方法及装置
CN108701117B (zh) * 2017-05-04 2022-03-29 华为技术有限公司 互连***、互连控制方法和装置
JP7068681B2 (ja) * 2017-06-02 2022-05-17 国立大学法人東京海洋大学 生殖細胞追跡用抗体
CN107396586A (zh) * 2017-07-27 2017-11-24 郑州云海信息技术有限公司 一种减少背板层叠的upi互连***
CN107526617B (zh) * 2017-09-04 2020-12-29 井冈山电器有限公司 一种cpu更新方法及***
CN108182163B (zh) * 2018-01-02 2021-03-02 苏州浪潮智能科技有限公司 一种计算板级热插拔控制装置及控制方法
US11016822B1 (en) * 2018-04-03 2021-05-25 Xilinx, Inc. Cascade streaming between data processing engines in an array
CN112540941A (zh) * 2019-09-21 2021-03-23 华为技术有限公司 一种数据转发芯片及服务器
CN114090095B (zh) * 2022-01-19 2022-05-24 苏州浪潮智能科技有限公司 一种多路服务器中cpu的bios加载方法及相关组件

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516429B1 (en) * 1999-11-04 2003-02-04 International Business Machines Corporation Method and apparatus for run-time deconfiguration of a processor in a symmetrical multi-processing system
JP2002197073A (ja) * 2000-12-25 2002-07-12 Hitachi Ltd キャッシュ一致制御装置
US7477612B2 (en) * 2002-03-15 2009-01-13 Broadcom Corporation Topology discovery process and mechanism for a network of managed devices
US7483370B1 (en) * 2003-12-22 2009-01-27 Extreme Networks, Inc. Methods and systems for hitless switch management module failover and upgrade
JP2007011580A (ja) * 2005-06-29 2007-01-18 Toshiba Corp 情報処理装置
US7599302B2 (en) * 2005-07-19 2009-10-06 Cisco Technology, Inc. Dynamic enforcement of MPLS-TE inter-domain policy and QoS
US7761538B2 (en) * 2006-08-30 2010-07-20 Microsoft Corporation Dynamically configuring, allocating and deploying computing systems
US20090144476A1 (en) * 2007-12-04 2009-06-04 Xiaohua Cai Hot plug in a link based system
US7730248B2 (en) * 2007-12-13 2010-06-01 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems and processes
CN101216815B (zh) * 2008-01-07 2010-11-03 浪潮电子信息产业股份有限公司 一种双翼可扩展多处理器紧耦合共享存储器体系结构
JP5550089B2 (ja) * 2009-03-30 2014-07-16 エヌイーシーコンピュータテクノ株式会社 マルチプロセッサシステム、ノードコントローラ、障害回復方式
US8224955B2 (en) * 2009-05-07 2012-07-17 International Business Machines Corporation Ensuring affinity at all affinity domains by folding at each affinity level possible for a partition spanning multiple nodes
CN101640688B (zh) * 2009-08-20 2014-03-12 中兴通讯股份有限公司 基于cdn的节点主备用控制器切换方法及cdn网络
US20110179311A1 (en) 2009-12-31 2011-07-21 Nachimuthu Murugasamy K Injecting error and/or migrating memory in a computing system
US20110161592A1 (en) * 2009-12-31 2011-06-30 Nachimuthu Murugasamy K Dynamic system reconfiguration
US8677180B2 (en) * 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US8656115B2 (en) 2010-08-20 2014-02-18 Intel Corporation Extending a cache coherency snoop broadcast protocol with directory information
CN102141975B (zh) * 2011-04-01 2013-10-09 华为技术有限公司 计算机***
EP2568392A4 (en) 2011-06-24 2013-05-22 Huawei Tech Co Ltd COMPUTERS SUBSYSTEM AND COMPUTER SYSTEM
US8856495B2 (en) * 2011-07-25 2014-10-07 International Business Machines Corporation Automatically routing super-compute interconnects
WO2012119369A1 (zh) * 2011-08-02 2012-09-13 华为技术有限公司 基于cc-numa的报文处理方法、装置和***
WO2012149714A1 (zh) * 2011-08-25 2012-11-08 华为技术有限公司 一种节点控制器链路的切换方法、处理器***和节点
CN102521201A (zh) 2011-11-16 2012-06-27 刘大可 多核数字信号处理器片上***及数据传输方法
CN202422104U (zh) * 2012-02-10 2012-09-05 广州瀚阳信息科技有限公司 多屏并行海量信息展示***
CN103020004B (zh) * 2012-12-14 2015-09-09 杭州华为数字技术有限公司 高速缓存非对称一致性内存访问***的访问方法和装置
CN103150264B (zh) * 2013-01-18 2014-09-17 浪潮电子信息产业股份有限公司 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法
US9256500B2 (en) 2013-04-12 2016-02-09 Oracle International Corporation Physical domain error isolation and recovery in a multi-domain system
US9361334B2 (en) * 2013-08-23 2016-06-07 Cisco Technology, Inc. Addressing cache coherence in updates to a shared database in a network environment
US10684973B2 (en) * 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
CN103530191B (zh) * 2013-10-18 2017-09-12 杭州华为数字技术有限公司 热点识别处理方法及装置
US9246803B2 (en) * 2014-01-02 2016-01-26 Futurewei Technologies, Inc. Method and apparatus for scalable content routing and mobility in named data networks
CN104811325B (zh) * 2014-01-24 2018-12-25 华为技术有限公司 一种集群节点控制器监控方法、相关装置以及控制器
US9749214B2 (en) * 2014-02-26 2017-08-29 Futurewei Technologies, Inc. Software defined networking (SDN) specific topology information discovery
US9477564B2 (en) * 2014-06-20 2016-10-25 Intel Corporation Method and apparatus for dynamic node healing in a multi-node environment
CN104077375B (zh) * 2014-06-24 2017-09-12 华为技术有限公司 一种cc‑numa***中节点的错误目录的处理方法和节点
US9762479B2 (en) * 2014-11-10 2017-09-12 Maged E. Beshai Distributed routing control in a vast communication network
CN104899179A (zh) * 2015-04-03 2015-09-09 浪潮电子信息产业股份有限公司 一种基于融合架构的多路服务器qpi扣卡的设计方法
US10050806B2 (en) * 2015-12-07 2018-08-14 Futurewei Technologies, Inc. End-to-end (E2E) tunnel based on shortest point-to-point (P2P) path computation

Also Published As

Publication number Publication date
KR20170093116A (ko) 2017-08-14
US11138147B2 (en) 2021-10-05
EP3226147A4 (en) 2017-12-27
AU2015412144B2 (en) 2018-11-15
SG11201703261WA (en) 2017-08-30
US20170364475A1 (en) 2017-12-21
RU2658884C1 (ru) 2018-06-25
CN111427827A (zh) 2020-07-17
CN111427827B (zh) 2023-03-17
BR112017008407A8 (pt) 2022-10-18
CA2965982A1 (en) 2017-06-29
ZA201702790B (en) 2019-12-18
BR112017008407A2 (pt) 2017-12-19
CN106104505A (zh) 2016-11-09
BR112017008407B1 (pt) 2023-04-04
EP3575977A1 (en) 2019-12-04
JP2018507454A (ja) 2018-03-15
KR102092660B1 (ko) 2020-03-24
EP3226147B1 (en) 2019-12-04
EP3226147A1 (en) 2017-10-04
AU2015412144A1 (en) 2017-07-13
CN106104505B (zh) 2020-02-21
CA2965982C (en) 2019-02-12
WO2017113128A1 (zh) 2017-07-06

Similar Documents

Publication Publication Date Title
JP6536677B2 (ja) Cpuおよびマルチcpuシステム管理方法
US8848703B2 (en) On-chip router and multi-core system using the same
TWI237171B (en) Tree based memory structure
JP4664159B2 (ja) 独立したエラー回復機能を有するスレーブ装置
JP5920105B2 (ja) 演算処理装置および演算処理装置の制御方法
JP5419107B2 (ja) マルチコア処理システム
JP5550089B2 (ja) マルチプロセッサシステム、ノードコントローラ、障害回復方式
JP2009512260A (ja) 加入者装置、通信システムの通信コントローラ、および通信システムの加入者装置内でゲートウェイ機能を実現する方法
JP2006302250A (ja) PCI−Express通信システム
JP4789425B2 (ja) 経路テーブル同期方法、ネットワーク機器および経路テーブル同期プログラム
CN108874687B (zh) 针对拼贴式末级高速缓存的非统一总线(nub)互连协议
WO2014206078A1 (zh) 内存访问方法、装置及***
JP2018503156A (ja) 書込み要求処理方法、プロセッサおよびコンピュータ
JP2009187272A (ja) 分散メモリマルチプロセッサシステムにおけるメモリ移行のための装置及び方法
JP2018129041A (ja) スヌープリクエストに対する応答の転送
WO2019149031A1 (zh) 应用于节点***的数据处理方法及装置
JP2006012112A (ja) 共有相互接続パーティションの動的パーティション・マネジメントの方法及びシステム
JP6958102B2 (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
JP2009193382A (ja) ブレードサーバシステムのキャッシュサーバ制御回路およびキャッシュサーバ制御方法
JP5947752B2 (ja) ネットワーク制御システム
JP2010010897A (ja) 多重化装置同期化処理装置及び多重化装置同期化処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180913

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20181203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190402

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190410

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190520

R150 Certificate of patent or registration of utility model

Ref document number: 6536677

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250