JP2010535384A - コンピュータシステムにおいて他のプロセッサにシステム管理割り込みをブロードキャストするためのメカニズム - Google Patents

コンピュータシステムにおいて他のプロセッサにシステム管理割り込みをブロードキャストするためのメカニズム Download PDF

Info

Publication number
JP2010535384A
JP2010535384A JP2010519221A JP2010519221A JP2010535384A JP 2010535384 A JP2010535384 A JP 2010535384A JP 2010519221 A JP2010519221 A JP 2010519221A JP 2010519221 A JP2010519221 A JP 2010519221A JP 2010535384 A JP2010535384 A JP 2010535384A
Authority
JP
Japan
Prior art keywords
smi
internal
processor cores
processor
processor core
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010519221A
Other languages
English (en)
Other versions
JP5385272B2 (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2010535384A publication Critical patent/JP2010535384A/ja
Application granted granted Critical
Publication of JP5385272B2 publication Critical patent/JP5385272B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

コンピュータシステム(10)は、システムメモリ(14)と、複数のプロセッサコア(15A,15B)と、前記プロセッサコアのそれぞれと通信しうる入出力(I/O)ハブ(13A)とを有する。前記プロセッサコアのそれぞれは、内部システム管理割り込み(SMI)の発生を検出すると、前記システムメモリ内のシステム管理モード(SMM)セーブステートに、前記内部SMIの発生源に対応する情報を保存しうる。各プロセッサコアは、前記内部SMIを検出すると、前記I/Oハブ内の所定のポートアドレスへのI/Oサイクルを更に開始しうる。前記I/Oハブは、前記I/Oサイクルを受信すると、前記プロセッサコアのそれぞれにSMIメッセージをブロードキャストしうる。前記プロセッサコアのそれぞれは、前記ブロードキャストされたSMIメッセージを受信すると、前記システムメモリ内の前記SMMセーブステートに、個々の内部SMI源情報を更に保存しうる。

Description

本発明はマルチプロセッサコンピュータシステムに関し、より詳細には、システム管理割り込みの処理に関する。
多くのプロセッサは、例えば、システムリソース、エネルギーの使用状況(energy
use)をモニタして管理し、特定のシステムレベルコードを実行するために使用可能な別の環境でプロセッサを動作させることができるシステム管理モード(SMM)を備える。一般に、SMMへの移行は、システム管理割り込み(SMI)を介して行われる。SMMは、この割り込みを処理するためのSMIハンドラを備えうる。多くの従来のプロセッサは物理SMIパッケージピンを備えており、このピンに適切な電圧を印加して、プロセッサを強制的にSMMに移行させることができる。また、例えば、プロセッサの発熱の通知など、プロセッサをSMMに移行させる内部SMI発生源も多く存在する。
一般に、プロセッサがSMMに移行すると、現在のプロセッサ状態が、「システム管理ランダムアクセスメモリ(SMRAM)」と一般に呼ばれている特定のメモリ領域に保存されうる。SMIハンドラが割り込みの処理(service)を完了すると、SMIハンドラは、通常、保存した状態を再ロードするリジューム(RSM)命令を呼び出し、SMMから退出する。この構成はシングルプロセッサシステムでは問題なく動作する。しかし、マルチプロセッサシステム構成では、あるプロセッサがSMMに移行したときに、そのプロセッサの制御下にあるとみなされるシステムリソースが存在するが、実際には、システム内の他のプロセッサがそのシステムリソースにまだアクセスしており、当該システムリソースを変更することがある。このような状況は、マルチプロセッシング環境において問題を引き起こしかねない。
コンピュータシステムにおいて他のプロセッサにシステム管理割り込み情報をブロードキャストするためのメカニズムの各種実施形態が開示される。一実施形態では、前記コンピュータシステムは、システムメモリと、前記システムメモリに結合された複数のプロセッサコアと、前記プロセッサコアのそれぞれと通信しうる入出力(I/O)ハブとを有する。前記プロセッサコアのそれぞれは、内部システム管理割り込み(SMI)の発生を検出すると、前記システムメモリ内のシステム管理モード(SMM)セーブステートに、前記内部SMIの発生源に対応する情報(例えば、ビットベクトルなど)を保存しうる。各プロセッサコアは、前記内部SMIを検出すると、前記I/Oハブ内の所定のポートアドレスへのI/Oサイクルを更に開始しうる。前記I/Oハブは、前記I/Oサイクルを受信すると、前記複数のプロセッサコアのそれぞれにSMIメッセージをブロードキャストしうる。前記プロセッサコアのそれぞれは、前記ブロードキャストされたSMIメッセージを受信すると、前記システムメモリ内の前記SMMセーブステートに、個々の内部SMI源情報を更に保存しうる。
特定の一実施形態では、前記複数のプロセッサコアのうちの選択された1つのプロセッサコアが、前記内部SMIが発生したプロセッサコアを決定するために、前記システムメモリから、全ての前記プロセッサコアの前記SMMセーブステートを読み出しうる。また、前記選択されたプロセッサコア内のSMIハンドラが、前記内部SMIが発生した前記プロセッサコアの前記内部SMIを処理しうる。
マルチコア処理ノードと、システム管理割り込みをブロードキャストするためのメカニズムとを備えたコンピュータシステムの一実施形態のブロック図。 図1のコンピュータシステムの実施形態の動作を示すフローチャート。 システム管理割り込みをブロードキャストするためのメカニズムを備えたコンピュータシステムの別の実施形態のブロック図。
本発明は、さまざまに変形されたり代替形態を取りうるが、その特定の実施形態が、例として図面に図示され、かつ本明細書に詳細に記載される。しかし、図面およびその詳細な説明は、開示の形態に本発明を限定することを意図するものではなく、逆に、本発明が、添付の特許請求の範囲によって規定される本発明の趣旨ならびに範囲に含まれる全ての変形例、均等物および代替例を含むことを意図することが理解されるべきである。本願にわたり、「しうる」、「してもよい」との文言は、許容を示す意味(すなわち、可能性がある、可能であること)で用いられており、義務的な意味(すなわち必須)ではない点に留意されたい。
図1を参照すると、コンピュータシステム10の一実施形態のブロック図が示される。図に示した実施形態では、コンピュータシステム10は、メモリ14と、入出力(I/O)ハブ13A,13Bとに結合された処理ノード12を有する。ノード12は、ノードコントローラ20に結合されたプロセッサコア15A,15Bを有し、ノードコントローラ20は、メモリコントローラ22、複数のHyperTransport(登録商標)(HT)インタフェース回路24A〜24C、および共有の3次(L3)キャッシュメモリ60に接続されている。HT回路24CはI/Oハブ16Aに結合されており、I/Oハブ16Aはデイジーチェーン構成で(この実施形態では、HTインタフェースを使用して)I/Oハブ16Bに結合されている。ほかのHT回路24A〜Bも、別のHTインタフェース(図1に図示せず)を介して、ほかの同様の処理ノード(図1に図示せず)に接続されてもよい。メモリコントローラ22は、メモリ14に結合されている。一実施形態では、ノード12は、図1に示す回路を含む1つの集積回路チップでもよい。すなわち、ノード12は、チップマルチプロセッサ(CMP)でもよい。任意のレベルの集積化が使用されても、または別個のコンポーネントが使用されてもよい。処理ノード12が、説明を簡略にするために省略した他の各種回路を備えてもよい点に留意されたい。
各種実施形態では、ノードコントローラ20は、プロセッサコア15A,15Bを、相互に、ほかのノードに、およびメモリに相互接続するための各種の相互接続回路(図示せず)も備えうる。また、ノードコントローラ20は、ノードの最大動作周波数と最小動作周波数、ノードの最大電源電圧と最小電源電圧などの、各種のノード特性を選択および制御するための機能も有しうる。ノードコントローラ20は、一般に、通信種別、通信(communication)内のアドレスなどに応じて、プロセッサコア15A,15Bと、メモリコントローラ22と、HT回路24A〜24Cとの間の通信をルーティングするように構成されうる。一実施形態では、ノードコントローラ20は、ノードコントローラ20が受信した通信文を書き込むシステム要求キュー(SRQ)(図示せず)を備えうる。ノードコントローラ20は、プロセッサコア15A,15B、HT回路24A〜24C、およびメモリコントローラ22のうちの1つ以上の宛先にルーティングするために、SRQにある通信をスケジュールしうる。
一般に、プロセッサコア15A〜15Bは、ノードコントローラ20へのインタフェースを使用して、コンピュータシステム10の他の構成要素(例えばI/Oハブ16A〜16B、他のプロセッサコア(図示せず)、メモリコントローラ22など)と通信しうる。このインタフェースは、好ましい方式であればどのような方式で設計されてもよい。一部の実施形態では、このインタフェース用にキャッシュコヒーレントな通信が規定されてもよい。一実施形態では、ノードコントローラ20とプロセッサコア15A,15B間のインタフェースにおける通信は、HTインタフェースで使用されるものと同様のパケット形式で行われうる。別の実施形態では、好適であれば、どのような通信を使用してもよい(例えばバスインタフェースでのトランザクション、異なる形式のパケットなど)。別の実施形態では、プロセッサコア15A,15Bは、ノードコントローラ20とインタフェースを共有してもよい(例えば共有バスインタフェースなど)。一般に、プロセッサコア15A,15Bからの通信には、(メモリロケーションまたはプロセッサコアの外部のレジスタを読み出すための)リードオペレーション、(メモリロケーションまたは外部レジスタに書き込むための)ライトオペレーション、(キャッシュコヒーレントな実施形態のための)プローブへの応答、割り込みの肯定応答、およびシステム管理メッセージなどの要求が含まれうる。
HT回路24A〜24Cは、HTリンクからパケットを受信し、HTリンクにパケットを送信するための各種のバッファと制御回路とを備えうる。HTインタフェースは、パケットを送信するための一方向リンクを2本有する。各HT回路24A〜24Cは、2本のこのようなリンク(送信用に1本、受信用に1本)に結合されうる。あるHTインタフェースは、(例えば処理ノード間では)キャッシュコヒーレントな方式で動作され、(例えばI/Oハブ16A〜16Bとの間では)非コヒーレントな方式で動作されうる。図に示した実施形態では、HT回路24A〜24Bは使用されておらず、HT回路24Cが非コヒーレントなリンク33を介してI/Oハブ16Aに結合されている。同様に、I/Oハブ16Aは、非コヒーレントなリンク34を介してI/Oハブ16Bに結合されている。
I/Oハブ16A〜16Bには、どのようなタイプのブリッジおよび/または周辺機器が含まれてもよい。例えば、I/Oハブ16A〜16Bは、HTパケットを次のI/Oハブに送るだけのI/Oトンネルとして実装されうる。また、I/Oハブには、他のタイプのバスおよび/または他の周辺機器へのブリッジインタフェースが含まれてもよい。例えば、図に示した実施形態では、I/Oハブ16Aはトンネルとして機能する一方、I/Oハブ16Bは、ブリッジとして機能し、例えば、LPCバスなどのバス32を介して基本入出力システム(BIOS)に結合されている。更に、一部の実施形態では、I/Oハブ16A〜16Bは、別のコンピュータシステムと通信するためのデバイス(例えば、ネットワークインタフェースカード、コンピュータシステムのメイン回路基板に搭載されているネットワークインタフェースカードと同様の回路、あるいはモデム)を有し、そのデバイスがその別のコンピュータシステムに結合されうる。また、I/Oハブ16A〜16Bは、ビデオアクセラレータ、オーディオカード、ハードディスクドライブもしくはフロッピーディスクドライブまたはドライブコントローラ、SCSI(Small Computer Systems Interface)アダプタ、テレフォニーカード、サウンドカード、およびGPIBインタフェースカードまたはフィールドバスインタフェースカードなどの様々なデータ収集カードを含んでいてもよい。「周辺機器」との用語は、入出力(I/O)デバイスを含むことを意図している点に注意されたい。
一般に、プロセッサコア15A,15Bは、所定の命令セットアーキテクチャに規定されている命令を実行するように設計された回路を有しうる。すなわち、プロセッサコア回路は、命令セットアーキテクチャに規定されている命令のフェッチ、デコード、実行、およびその結果のストアを行うように構成されうる。例えば、一実施形態では、プロセッサコア15A,15Bは、x86アーキテクチャを実装しうる。プロセッサコア15A〜15Bは、スーパーパイプライン処理、スーパースカラーまたはその組み合わせを含む任意の所望の構成を有しうる。ほかの構成としては、スカラー、パイプライン処理、非パイプライン処理などがある。実施形態によって、アウトオブオーダーの投機的な実行が使用されても、オンオーダーの実行が使用されてもよい。プロセッサコアは、上記の構造のいずれかと組み合わせて、1つ以上の命令または他の機能のためのマイクロコードを有してもよい。各種実施形態では、キャッシュ、変換ルックアサイドバッファ(TLB)などのほかの各種の設計機能を実装してもよい。したがって、図に示した実施形態では、プロセッサコア15A,15Bは、マシンまたはモデル固有レジスタ(MSR)16B,16Aをそれぞれ有する。MSR16A,16Bは、ブートアップ中にプログラムされうる。一実施形態では、MSR16A,16Bには、ポートアドレス値がプログラムされうる。下で詳細に後述するように、あるプロセッサコア15が内部システム管理割り込み(SMI)を検出すると、そのプロセッサコア15は、MSR16に指定されているポートアドレスにおいて、I/Oハブ13AへのI/Oサイクル(実装によりリードまたはライト)を開始しうる。
図に示した実施形態では、プロセッサコア15A,15Bは、それぞれ符号17A,17Bで示すSMI源ビットベクトルをそれぞれ有する。各SMI源ビットベクトル17は、数ビットで構成されており、それぞれのビットが内部SMI源に対応している。一実施形態では、SMI源ビットベクトルはソフトウェア構造として実装することができる。別の実施形態では、SMI源ビットベクトルはハードウェアレジスタ、またはこれらの任意の組み合わせとして実装することができる。下で詳細に後述するように、あるプロセッサコア15が内部システム管理割り込み(SMI)を検出すると、このプロセッサコア15は、SMIの発生源に対応するビットをアサートしうる。
本実施形態は、ノード間、ならびにノードと周辺機器間の通信にHTインタフェースを使用するが、ほかの実施形態は、このいずれかの通信に任意の所望の1つ以上のインタフェースを使用してもよい点に留意されたい。例えば、ほかのパケットベースのインタフェースが使用されても、バスインタフェースが使用されても、各種の標準的な周辺機器インタフェース(例えば、周辺装置相互接続(PCI)、PCIエクスプレスなど)が使用されてもよい。
上で説明したように、メモリ14は、任意の適したメモリデバイスを有しうる。例えば、メモリ14は、1つ以上のランダムアクセスメモリ(RAM)を有し、これには、ダイナミックRAM(DRAM)に属するRAMBUS DRAM(RDRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレート(DDR)SDRAMなどがある。別の実施形態では、メモリ14が、スタティックRAMなどを使用して実装されてもよい。メモリコントローラ22は、メモリ14にインタフェースするための制御回路を有しうる。更に、メモリコントローラ22は、メモリ要求をキューイングするための要求キューなどを備えていてもよい。下で詳細に後述するように、メモリコントローラ22は、プロセッサコア(例えば、15A)からの要求に応えて、メモリ14からデータを要求するように構成されうる。また、メモリ14は、要求されたデータブロック以外にも、要求されていないほかのデータブロックも提供して、このような要求に応えてもよい。したがって、メモリコントローラ22は、L3キャッシュ60内に追加のデータブロックを選択的に記憶しうる。
なお、図1に示したコンピュータシステム10の処理ノード12は1つであるが、別の実施形態では、図3に示す実施形態など、実装される処理ノードの数がいくつであってもよい。同様に、実施形態ごとに、ノード12などの処理ノードに含まれるプロセッサコアの数はいくつでもよい。コンピュータシステム10のさまざまな実施形態では、ノード12当たりのHTインタフェースの数、ノードに結合されている周辺機器16の数などが変わってもよい。
図2は、図1に示した実施形態の動作を示すフローチャートである。図1と図2を併せて参照すると、電源投入リセットまたは初期システムブート中に、プロセッサコアの1つにおいて、BIOSコードの実行が開始される。通常、BIOSによって、コアの1つがブートストラッププロセッサ(BSP)に指定されている。一実施形態では、BIOSコードは、I/Oハブ16Aの所定のポートアドレスをMSR16A,16Bにプログラムする(ブロック205)。
システムの動作中に、例えばプロセッサコア15Aなどのプロセッサコアが、内部SMIを検出すると(ブロック210)、そのプロセッサコアは、SMI源ビットベクトル17A内の対応するビットをセットする(ブロック215)。プロセッサコア15Aは、I/Oハブ13AのMSR16Aに指定されているポートアドレスへのI/Oサイクルを開始する(ブロック220)。一実装では、このI/Oサイクルはライトトランザクションであってもよい。別の実装では、このI/Oサイクルはリードトランザクションであってもよい。いずれの場合も、I/Oハブ13Aは、そのポートアドレスへのこのI/Oサイクルを、プロセッサコアの1つからのSMIメッセージとして認識する。
I/Oハブ13Aは、そのポートアドレス上にトランザクションを受け取ると、システムの全てのプロセッサコアにSMIメッセージをブロードキャストする(ブロック225)。図に示した実施形態では、プロセッサコア15A,15Bがブロードキャストされたメッセージを受信しうる。各プロセッサコア15がブロードキャストされたメッセージを受信すると、当該コアはシステム管理モード(SMM)に移行する。一実施形態では、各プロセッサコア15は、メモリ14内のSMMセーブステート内の所定の位置に、SMI源ビットベクトル17を、ほかのSMMセーブステート情報と共に記憶する(ブロック230)。例えば、最初にプロセッサコア15Bが、SMIブロードキャストメッセージを受信し、メモリ14にSMMセーブステートを記憶し、その後、プロセッサコア15Aが、メモリ14に自身のSMMセーブステートを記憶しうる。一実施形態では、プロセッサコアがSMMに移行すると、そのプロセッサコアは自身がSMMに移行したことを示すフラグを、メモリ14内にセットしうる。
一般に、x86アーキテクチャを実装するプロセッサコアは、SMIハンドラを備える。一実施形態では、BSP(本例では、プロセッサコア15BがBSP)SMIハンドラは、メモリ14へのリードトランザクションを実行して、システム内の各プロセッサコアのSMMセーブステート情報を読み出す(ブロック235)。BSP SMIハンドラは、SMI源ビットベクトル17を読み出して、SMIを有していたプロセッサコアと、SMIの発生源とを決定する。別のプロセッサコアでSMIが発生した場合でも、SMIハンドラはSMIを処理する(ブロック240)。SMIハンドラがSMIの処理を完了すると、SMIハンドラは完了フラグをアサートする(ブロック245)。一実施形態では、SMI完了フラグは、SMM中に各プロセッサコアがモニタする所定のメモリ位置であってもよい。各プロセッサコア15(本例ではプロセッサコア15A)は、現在、フラグが、SMIハンドラが完了したことを示していると判定すると、一実施形態では、プロセッサコア15Aはリジューム(RSM)命令を発行してSMMから退出する(ブロック250)。
上記の実施形態はシングルマルチコアプロセッサノードを含む。図3に、複数の処理ノードを含むコンピュータシステム300の別の実施形態が示される。図3を参照すると、コンピュータシステム300は、312A,312B,312C,312Dで示すいくつかの処理ノードを有し、これらが互いに結合されている。各処理ノードは、処理ノード312A〜312Dにそれぞれ設けられているメモリコントローラ322A〜322Dを介して各々のメモリ314A〜314Dに結合されている。また、処理ノード312DはI/Oハブ313Aに結合され、I/Oハブ313Aは、I/Oハブ313Bに結合され、I/Oハブ313BはBIOS331に結合されている。
図に示すように、処理ノード312A〜312Dは、処理ノード312A〜312D間の通信に使用するインタフェースロジックを備える。例えば、処理ノード312Aは、処理ノード312Bと通信するためのインタフェースロジック318Aと、処理ノード312Cと通信するためのインタフェースロジック318Bと、更に別の処理ノード(図示せず)と通信するための第3のインタフェースロジック318Cとを備える。同様に、処理ノード312Bは、インタフェースロジック318D,318E,318Fを備え、処理ノード312Cは、インタフェースロジック318G,318H,318Iを備え、処理ノード312Dは、インタフェースロジック318J,318K,318Lを備える。処理ノード312Dは、インタフェースロジック318Lを介して複数の入出力デバイス(例えばデイジーチェーン構成のハブ313A〜313B)と通信するように結合される。なお、一部の実施形態では、インタフェースロジック318Lは、I/Oハブ313Aに結合されているため「ホストブリッジ」とも呼ばれることがある。その他の処理ノードも、同様にほかのI/Oデバイスと通信してもよい。
図1の処理ノード12と同様に、処理ノード312A〜312Dは、処理ノード間通信のためにパケットベースのリンクを複数実装してもよい。本実施形態では、各リンクが、一方向のラインの組として実施されてもよい(例えば、ライン324Aは、処理ノード312Aから処理ノード312Bにパケットを送信するために使用され、ライン324Bは、処理ノード312Bから処理ノード312Aにパケットを送信するために使用される)。ラインのその他の組324C〜324Hは、図6に示すように、ほかの処理ノード間でパケットを送信するために使用される。一般に、ラインの各組324は、1本以上のデータラインと、このデータラインに対応する1本以上のクロックラインと、伝達するパケットの種類を示す1本以上の制御ラインとを含み得る。一実施形態では、リンクは、処理ノード間の通信では、キャッシュコヒーレントな方式で動作されうる。また、処理ノード312は、処理ノードとI/Oデバイス間の通信(あるいは、バスブリッジから、周辺機器相互接続(Peripheral Component Interconnect:PCI)バスまたは業界標準アーキテクチャ(Industry Standard Architecture:ISA)バスなどの従来の構成のI/Oバスへの通信)では、非コヒーレントな方法で動作させうる。更に、1本以上のリンクが、I/Oデバイス間ではデイジーチェーン構成を使用して、非コヒーレントな方法で動作してもよい。例えば、ラインの組333A,333Bを含むリンク33と、ラインの組334A,33Bを含むリンク334は、非コヒーレントな方式で動作しうる。1つの処理ノードから別の処理ノードに送信されるパケットが、1つ以上の中間ノードを通過しうる点に留意されたい。例えば、図3に示すように、処理ノード312Aによって処理ノード312Dに送信されるパケットは、処理ノード312Bか処理ノード312Cのいずれかを通過しうる。適したルーティングアルゴリズムであれば、どのようなものでも使用することができる。コンピュータシステム300の別の実施形態では、処理ノードの数が、図3に示した実施形態よりも増減してもよい。
一般に、パケットは、ノード間のライン324を伝わる1つ以上のビットタイミング(bit time)として送信されうる。ビットタイミングは、対応するクロックラインを伝わるクロック信号の立ち上がりまたは立ち下がりであり得る。パケットには、トランザクションを開始するためのコマンドパケット、キャッシュコヒーレンシを維持するためのプローブパケット、プローブおよびコマンドに応答する応答パケットなどがあり得る。
処理ノード312A〜312Dは、メモリコントローラおよびインタフェースロジックに加えて、1つ以上のプロセッサコアを有していてもよい。概して、処理ノードは、少なくとも1つのプロセッサコアを備えており、必要に応じてメモリおよびほかの論理回路と通信するためのメモリコントローラを任意選択で備えていてもよい。より詳細には、各処理ノード312A〜312Dは、図1に示すようなプロセッサノード12のコピーを1つ以上備えていてもよい。1つ以上のプロセッサが、処理ノード内にまたは処理ノードを形成するチップマルチプロセッシング(CMP)またはチップマルチスレッド(CMT)対応の集積回路を備えても、あるいは、処理ノードが、ほかの任意の望ましい内部構造を備えてもよい。
メモリ314A〜314Dは任意の適したメモリデバイスを備えうる。例えば、メモリ314A〜314Dは、1つ以上のラムバスDRAM(RDRAM)、シンクロナスDRAM(SDRAM)、DDR SDRAM、スタティックRAMなどを備えてもよい。コンピュータシステム300のアドレス空間は、メモリ314A〜314Dに分割されている。各処理ノード312A〜312Dは、アドレスとメモリ314A〜314Dとのマッピング、すなわち、特定のアドレスに対するメモリ要求を転送すべき処理ノード314A〜314Dの決定に用いるメモリマップを備えていてもよい。一実施形態では、コンピュータシステム300内のアドレスのコヒーレンシポイント(coherency point)は、そのアドレスに対応しているバイトを記憶しているメモリに結合されたメモリコントローラ316A〜316Dである。換言すれば、メモリコントローラ316A〜316Dは、対応するメモリ314A〜314Dへのあらゆるメモリアクセスが、キャッシュコヒーレントな方法で行われることを保証する責任を負っている。メモリコントローラ316A〜316Dは、メモリ314A〜314Dとインタフェースするための制御回路を備えうる。更に、メモリコントローラ316A〜316Dは、メモリ要求をキューイングするための要求キューを備えていてもよい。
一般に、インタフェースロジック318A〜318Lは、リンクからパケットを受信すると共に、リンクに送信するパケットをバッファするための各種バッファを備えうる。コンピュータシステム300は、パケットを送信するための任意の適切なフロー制御メカニズムを使用することができる。例えば、一実施形態では、各インタフェースロジック318は、そのインタフェースロジックに接続されているリンクの反対側にある受信装置内の各タイプのバッファの数のカウントを記憶している。インタフェースロジックは、パケットを記憶するための空きバッファが受信側のインタフェースロジックになければ、パケットを送信しない。パケットを前方にルーティングしたことで受信側のバッファに空きが生ずると、受信側のインタフェースロジックは、バッファに空きが生じたことを知らせるメッセージを、送信側のインタフェースロジックに送信する。このようなメカニズムは、「クーポンベースの」システムと呼ぶことができる。
I/Oハブ313A〜313Bは、適したI/Oデバイスであれば、どのようなものであってもよい。例えば、I/Oハブ313A〜313Bは、別のコンピュータシステムに結合され、そのコンピュータシステムと通信するためのデバイス(ネットワークインタフェースカードやモデムなど)を備えうる。また、I/Oハブ313A〜313Bは、ビデオアクセラレータ、オーディオカード、ハードディスクドライブもしくはフロッピーディスクドライブまたはドライブコントローラ、SCSI(Small Computer Systems Interface)アダプタ、テレフォニーカード、サウンドカード、およびGPIBインタフェースカードまたはフィールドバスインタフェースカードなどの様々なデータ収集カードを含んでいてもよい。更に、カードとして実装される任意のI/Oデバイスが、システム300のメイン回路基板上の回路および/または処理ノードで実行されるソフトウェアとして実装されてもよい。本明細書において「I/Oデバイス」との用語と「周辺機器」との用語は同義であるとされる点に留意されたい。
図3の処理ノード312A〜312Dのそれぞれが、図1の処理ノード12の機能を備えうる点に留意されたい。このように、あるプロセッサコア内の内部SMIに応答して、そのプロセッサコアは、図1に示すプロセッサコアと同様の機能を実行してもよい。同様に、図3のI/Oハブ313Aは、図1のI/Oハブ13Aの機能を有しうる。したがって、I/Oハブ313Aは、上で説明したように所定のポートアドレスを介してI/Oサイクルを受信すると、コンピュータシステム300内の全処理ノードの全プロセッサコアにSMIメッセージをブロードキャストしうる。
上の実施形態についてかなり詳細に記載したが、上記の開示を完全に理解できれば、数多くの変形例および変更例が当業者にとって明らかであろう。下記の特許請求の範囲は、このような変形例および変更例を全て包含するものと解釈されることが意図される。
本発明は、一般にマイクロプロセッサに利用可能である。

Claims (10)

  1. システムメモリ(14)と、
    前記システムメモリに結合された複数のプロセッサコア(15A,15B)と、前記プロセッサコアのそれぞれは、内部システム管理割り込み(SMI)の発生を検出すると、前記システムメモリ内のシステム管理モード(SMM)セーブステートに、前記内部SMIの発生源に対応する情報を保存するように構成され、
    前記プロセッサコアのそれぞれと通信するように構成された入出力(I/O)ハブ(13A)と、を有し、
    各プロセッサコアは、前記内部SMIを検出すると、前記I/Oハブ内の所定のポートアドレスへのI/Oサイクルを開始するように更に構成されており、
    前記I/Oハブは、前記I/Oサイクルを受信すると、前記複数のプロセッサコアのそれぞれにSMIメッセージをブロードキャストするように構成され、
    前記プロセッサコアのそれぞれは、前記ブロードキャストされたSMIメッセージを受信すると、前記システムメモリ内の前記SMMセーブステートに、個々の内部SMI源情報を保存するように更に構成されているコンピュータシステム(10)。
  2. 前記複数のプロセッサコアのうちの選択された1つのプロセッサコアが、前記内部SMIが発生したプロセッサコアを決定するために、前記システムメモリから、すべての前記プロセッサコアの前記SMMセーブステートを読み出すように構成されている、請求項1に記載のコンピュータシステム。
  3. 前記選択されたプロセッサコア内のSMIハンドラが、前記内部SMIが発生した前記プロセッサコアの前記内部SMIを処理するように構成されている、請求項1または2に記載のコンピュータシステム。
  4. BIOSによる前記ブートアッププロセス中に、前記プロセッサコアのそれぞれのモデル固有レジスタ(16A)に前記所定のポートアドレスがプログラムされる、請求項1〜3のいずれか1項に記載のコンピュータシステム。
  5. 前記内部SMIの発生源に対応する前記情報は複数のビットを含むビットベクトル(17A)を有し、その各ビットが内部SMIの発生源のそれぞれに対応している請求項1に記載のコンピュータシステム。
  6. 複数のプロセッサコアのプロセッサコア(15A,15B)が、内部システム管理割り込み(SMI)の発生を検出するステップと、
    前記プロセッサコアが、前記内部SMIの前記発生を検出すると、システムメモリ(14)内のシステム管理モード(SMM)セーブステートに、前記内部SMIの発生源に対応する情報を保存するステップと、
    前記プロセッサコアが、前記内部SMIを検出すると、前記複数のプロセッサコアのそれぞれと通信しているI/Oハブ(13A)内の所定のポートアドレスへのI/Oサイクルを開始するステップと、
    前記I/Oハブが、前記I/Oサイクルを受信すると、前記複数のプロセッサコアのそれぞれにSMIメッセージをブロードキャストするステップとを含み、
    前記複数のプロセッサコアのそれぞれが前記ブロードキャストされたSMIメッセージを受信すると、前記複数のプロセッサコアのそれぞれは、前記システムメモリ内の前記SMMセーブステートに、個々の内部SMI源情報を保存する方法。
  7. 前記複数のプロセッサコアのうちの選択された1つのプロセッサコアが、前記システムメモリから、すべての前記プロセッサコアの前記SMMセーブステートを読み出すステップと、前記内部SMIが発生したプロセッサコアを決定するステップとを更に含む、請求項6に記載の方法。
  8. 前記選択されたプロセッサコア内のSMIハンドラが、前記内部SMIが発生した前記プロセッサコアの前記内部SMIを処理するステップを更に含む、請求項7または8に記載の方法。
  9. BIOSが、ブートアッププロセス中に、前記プロセッサコアのそれぞれのモデル固有レジスタ(16A,16B)に前記所定のポートアドレスをプログラムするステップを更に含む、請求項5〜8のいずれか1項に記載の方法
  10. 前記内部SMIの発生源に対応する前記情報は複数のビットを含むビットベクトル(17A,17B)を有し、その各ビットが内部SMIの発生源のそれぞれに対応している、請求項6に記載の方法。
JP2010519221A 2007-08-01 2008-07-28 コンピュータシステムにおいて他のプロセッサにシステム管理割り込みをブロードキャストするためのメカニズム Active JP5385272B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/831,985 US20090037932A1 (en) 2007-08-01 2007-08-01 Mechanism for broadcasting system management interrupts to other processors in a computer system
US11/831,985 2007-08-01
PCT/US2008/009120 WO2009017706A1 (en) 2007-08-01 2008-07-28 Mechanism for broadcasting system management interrupts to other processors in a computer system

Publications (2)

Publication Number Publication Date
JP2010535384A true JP2010535384A (ja) 2010-11-18
JP5385272B2 JP5385272B2 (ja) 2014-01-08

Family

ID=39941775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010519221A Active JP5385272B2 (ja) 2007-08-01 2008-07-28 コンピュータシステムにおいて他のプロセッサにシステム管理割り込みをブロードキャストするためのメカニズム

Country Status (7)

Country Link
US (1) US20090037932A1 (ja)
EP (1) EP2181396A1 (ja)
JP (1) JP5385272B2 (ja)
KR (1) KR20100053593A (ja)
CN (1) CN101939732B (ja)
TW (1) TW200915081A (ja)
WO (1) WO2009017706A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012114463A1 (ja) * 2011-02-23 2012-08-30 株式会社日立製作所 計算機、ファームウェア実行方法
JP2012531680A (ja) * 2009-08-31 2012-12-10 インテル コーポレイション システム管理モードのためのプロセッサにおける状態記憶の提供
JP2013093045A (ja) * 2009-04-08 2013-05-16 Intel Corp システム管理モードにおけるプロセッサ間割り込みの再方向付け
JP7430220B2 (ja) 2021-12-29 2024-02-09 廣達電腦股▲ふん▼有限公司 システム管理割り込みデータの収集に用いる方法及びシステム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5273043B2 (ja) * 2007-06-12 2013-08-28 日本電気株式会社 情報処理装置、実行環境転送方法及びそのプログラム
US7882333B2 (en) * 2007-11-05 2011-02-01 Dell Products L.P. Architectural enhancements to CPU microcode load mechanism using inter processor interrupt messages
US7802042B2 (en) * 2007-12-28 2010-09-21 Intel Corporation Method and system for handling a management interrupt event in a multi-processor computing device
US7913018B2 (en) * 2007-12-28 2011-03-22 Intel Corporation Methods and apparatus for halting cores in response to system management interrupts
US8321615B2 (en) 2009-12-18 2012-11-27 Intel Corporation Source core interrupt steering
WO2012103736A1 (zh) * 2011-06-30 2012-08-09 华为技术有限公司 数据处理节点、系统及方法
TWI465931B (zh) * 2011-09-20 2014-12-21 Acer Inc 具有多個資料連接埠的電子裝置
CN108228524B (zh) * 2016-12-14 2021-07-16 中国航空工业集团公司西安航空计算技术研究所 一种多核系统的核间交互方法
US10437310B2 (en) * 2016-12-21 2019-10-08 Intel Corporation Technologies for secure hybrid standby power management
US10678909B2 (en) * 2017-04-21 2020-06-09 Vmware, Inc. Securely supporting a global view of system memory in a multi-processor system
KR102646630B1 (ko) * 2018-10-01 2024-03-11 삼성전자주식회사 시스템 런타임 환경에서 dram 셀 상의 라이트 보호 커맨드를 발행하는 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764999A (en) * 1995-10-10 1998-06-09 Cyrix Corporation Enhanced system management mode with nesting
US20070150632A1 (en) * 2005-12-28 2007-06-28 Intel Corporation Conditional and vectored system management interrupts

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410710A (en) * 1990-12-21 1995-04-25 Intel Corporation Multiprocessor programmable interrupt controller system adapted to functional redundancy checking processor systems
US5530891A (en) * 1994-05-31 1996-06-25 Advanced Micro Devices System management interrupt mechanism within a symmetrical multiprocessing system
US6199134B1 (en) * 1998-03-13 2001-03-06 Compaq Computer Corporation Computer system with bridge logic that asserts a system management interrupt signal when an address is made to a trapped address and which also completes the cycle to the target address
US6295573B1 (en) * 1999-02-16 2001-09-25 Advanced Micro Devices, Inc. Point-to-point interrupt messaging within a multiprocessing computer system
US6272618B1 (en) * 1999-03-25 2001-08-07 Dell Usa, L.P. System and method for handling interrupts in a multi-processor computer
US6282601B1 (en) * 1999-03-31 2001-08-28 International Business Machines Corporation Multiprocessor data processing system and method of interrupt handling that facilitate identification of a processor requesting a system management interrupt
US20020099893A1 (en) * 2001-01-24 2002-07-25 Nguyen Tuyet-Huong Thi System and method for the handling of system management interrupts in a multiprocessor computer system
TW498213B (en) * 2001-04-18 2002-08-11 Via Tech Inc Method and chipset for supporting interrupts of system management mode in multiple-CPU system
US6775728B2 (en) * 2001-11-15 2004-08-10 Intel Corporation Method and system for concurrent handler execution in an SMI and PMI-based dispatch-execution framework
US7493435B2 (en) * 2003-10-06 2009-02-17 Intel Corporation Optimization of SMI handling and initialization
US20080040524A1 (en) * 2006-08-14 2008-02-14 Zimmer Vincent J System management mode using transactional memory
US8285895B2 (en) * 2007-08-06 2012-10-09 Winbond Electronics Corporation Handshake free sharing in a computer architecture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764999A (en) * 1995-10-10 1998-06-09 Cyrix Corporation Enhanced system management mode with nesting
US20070150632A1 (en) * 2005-12-28 2007-06-28 Intel Corporation Conditional and vectored system management interrupts

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200600108005; 増渕美生ほか: 'Cell Broadband Engineのアーキテクチャ' 情報処理 第46巻 第11号, 20051115, 1244-1250頁, 社団法人情報処理学会 *
JPN6013013213; 増渕美生ほか: 'Cell Broadband Engineのアーキテクチャ' 情報処理 第46巻 第11号, 20051115, 1244-1250頁, 社団法人情報処理学会 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013093045A (ja) * 2009-04-08 2013-05-16 Intel Corp システム管理モードにおけるプロセッサ間割り込みの再方向付け
JP2012531680A (ja) * 2009-08-31 2012-12-10 インテル コーポレイション システム管理モードのためのプロセッサにおける状態記憶の提供
WO2012114463A1 (ja) * 2011-02-23 2012-08-30 株式会社日立製作所 計算機、ファームウェア実行方法
JP7430220B2 (ja) 2021-12-29 2024-02-09 廣達電腦股▲ふん▼有限公司 システム管理割り込みデータの収集に用いる方法及びシステム
US11900150B2 (en) 2021-12-29 2024-02-13 Quanta Computer Inc. Methods and systems for collection of system management interrupt data

Also Published As

Publication number Publication date
KR20100053593A (ko) 2010-05-20
CN101939732B (zh) 2014-06-25
JP5385272B2 (ja) 2014-01-08
EP2181396A1 (en) 2010-05-05
TW200915081A (en) 2009-04-01
WO2009017706A1 (en) 2009-02-05
CN101939732A (zh) 2011-01-05
US20090037932A1 (en) 2009-02-05

Similar Documents

Publication Publication Date Title
JP5385272B2 (ja) コンピュータシステムにおいて他のプロセッサにシステム管理割り込みをブロードキャストするためのメカニズム
US10169268B2 (en) Providing state storage in a processor for system management mode
TWI447650B (zh) 中斷分佈方案
US7937532B2 (en) Method and apparatus for speculative prefetching in a multi-processor/multi-core message-passing machine
JP4982375B2 (ja) 複数のコアを介してのモニタリングされたキャッシュラインの共有
US6938253B2 (en) Multiprocessor communication system and method
US20050114559A1 (en) Method for efficiently processing DMA transactions
US8364862B2 (en) Delegating a poll operation to another device
JP5537533B2 (ja) ハードウェアのダイナミックなキャッシュパワー管理
TW200525365A (en) Optimization of SMI handling and initialization
CN111752607A (zh) 用于处理器中的批量寄存器访问的系统、装置和方法
KR20180066073A (ko) 컴퓨팅 디바이스에서 운영 시스템 독립적 에러 제어를 제공하는 시스템 및 방법

Legal Events

Date Code Title Description
RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130627

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131003

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5385272

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250