(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-08
(45)【発行日】2024-07-17
(54)【発明の名称】性能強化コンピューティングシステム、半導体基板、コンピュータプログラム、及び、性能強化コンピューティングシステムを操作するための方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20240709BHJP
G06F 9/4401 20180101ALI20240709BHJP
G06F 12/06 20060101ALI20240709BHJP
G06F 15/78 20060101ALI20240709BHJP
【FI】
G06F12/00 550A
G06F9/4401
G06F12/06 515L
G06F15/78 599
(21)【出願番号】P 2022543389
(86)(22)【出願日】2020-02-24
(86)【国際出願番号】 CN2020076352
(87)【国際公開番号】W WO2021168601
(87)【国際公開日】2021-09-02
【審査請求日】2023-02-21
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ウ、ピン
(72)【発明者】
【氏名】チェン、インウェン
(72)【発明者】
【氏名】ジュ、レイ
(72)【発明者】
【氏名】ウ、ゼンロン
(72)【発明者】
【氏名】シュ、タオ
【審査官】後藤 彰
(56)【参考文献】
【文献】特開2014-016782(JP,A)
【文献】特開2009-277223(JP,A)
【文献】米国特許出願公開第2018/0190332(US,A1)
【文献】米国特許出願公開第2017/0168849(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 9/4401
G06F 15/78
G06F 12/06
(57)【特許請求の範囲】
【請求項1】
性能強化コンピューティングシステムであって、
ネットワークコントローラと、
前記ネットワークコントローラに結合されたプロセッサであって、前記プロセッサが統合メモリを含む、プロセッサと、
前記プロセッサに結合された外部システムメモリ
と
を備え、
前記統合メモリが、前記プロセッサによって実行されると、前記性能強化コンピューティングシステムに、
起動シーケンス中に前記統合メモリを初期化させ、
前記外部システムメモリのランタイム初期化を行わせる、
実行可能なプログラム命令のセットを含む
、
性能強化コンピューティングシステム。
【請求項2】
前記ランタイム初期化を行うために、前記プログラム命令は、実行されると、前記性能強化コンピューティングシステムに、前記起動シーケンスの後に前記外部システムメモリに1つまたは複数のトレーニングコマンドを発行させる、請求項1に記載の性能強化コンピューティングシステム。
【請求項3】
前記プログラム命令は、実行されると、前記性能強化コンピューティングシステムにさらに、
前記1つまたは複数のトレーニングコマンドを更新させ、
更新された前記1つまたは複数のトレーニングコマンドに基づいて前記外部システムメモリの再トレーニングを行わせ、前記再トレーニングは、前記性能強化コンピューティングシステムの再起動を回避する、
請求項2に記載の性能強化コンピューティングシステム。
【請求項4】
前記ランタイム初期化が、オペレーティングシステムドライバを介して行われる、請求項1から3のいずれか1項に記載の性能強化コンピューティングシステム。
【請求項5】
前記プログラム命令は、実行されると、前記性能強化コンピューティングシステムにさらに、ランタイムサービスへの呼び出しを発行させ、前記ランタイム初期化をトリガさせる、請求項1から4のいずれか1項に記載の性能強化コンピューティングシステム。
【請求項6】
前記プログラム命令は、実行されると、前記性能強化コンピューティングシステムにさらに、前記起動シーケンス中の前記ランタイム初期化を回避させる、請求項1から5のいずれか1項に記載の性能強化コンピューティングシステム。
【請求項7】
1つまたは複数の基板と、
前記1つまたは複数の基板に結合されたロジックであって、前記ロジックは、構成可能なロジックまたは固定機能ハードウェアロジックの1つまたは複数で少なくとも部分的に実装され、前記ロジックは、
起動シーケンス中にプロセッサの統合メモリを初期化し、
前記プロセッサに関連付けられた外部システムメモリのランタイム初期化を行うために、前記1つまたは複数の基板に結合されている、ロジックと
を備える半導体装置。
【請求項8】
前記ランタイム初期化を行うために、前記1つまたは複数の基板に結合された前記ロジックは、
前記起動シーケンスの後に1つまたは複数のトレーニングコマンドを前記外部システムメモリに発行し、
前記1つまたは複数のトレーニングコマンドを更新し、
更新された前記1つまたは複数のトレーニングコマンドに基づいて、前記外部システムメモリの再トレーニングを行い、前記再トレーニングは再起動を回避する、
請求項7に記載の半導体装置。
【請求項9】
前記ランタイム初期化が、オペレーティングシステムドライバを介して行われる、請求項7または8に記載の半導体装置。
【請求項10】
前記1つまたは複数の基板に結合された前記ロジックが、前記ランタイム初期化をトリガするためにランタイムサービスへの呼び出しを発行する、請求項7から9のいずれか1項に記載の半導体装置。
【請求項11】
前記1つまたは複数の基板に結合された前記ロジックが、前記起動シーケンス中に前記ランタイム初期化を回避する、請求項7から10のいずれか1項に記載の半導体装置。
【請求項12】
前記1つまたは複数の基板に結合された前記ロジックが、前記1つまたは複数の基板内に配置されたトランジスタチャネル領域を含む、請求項7から11のいずれか1項に記載の半導体装置。
【請求項13】
コンピューティングシステムによって実行されると、前記コンピューティングシステムに、
起動シーケンス中にプロセッサの統合メモリを初期化させ、
前記プロセッサに関連付けられた外部システムメモリのランタイム初期化を行わせる、
実行可能なプログラム命令のセットを備える、コンピュータプログラム。
【請求項14】
前記ランタイム初期化を行うために、前記プログラム命令は、実行されると、前記コンピューティングシステムに、前記起動シーケンスの後に前記外部システムメモリへの1つまたは複数のトレーニングコマンドを発行させる、請求項13に記載のコンピュータプログラム。
【請求項15】
前記プログラム命令は、実行されると、前記コンピューティングシステムにさらに、
前記1つまたは複数のトレーニングコマンドを更新させ、
更新された前記1つまたは複数のトレーニングコマンドに基づいて前記外部システムメモリの再トレーニングを行わせ、前記再トレーニングは、前記コンピューティングシステムの再起動を回避する、
請求項14に記載のコンピュータプログラム。
【請求項16】
前記ランタイム初期化が、オペレーティングシステムドライバを介して行われる、請求項13から15のいずれか1項に記載のコンピュータプログラム。
【請求項17】
前記プログラム命令は、実行されると、前記コンピューティングシステムにさらに、ランタイムサービスへの呼び出しを発行させ、前記ランタイム初期化をトリガさせる、請求項13から16のいずれか1項に記載のコンピュータプログラム。
【請求項18】
前記プログラム命令は、実行されると、前記コンピューティングシステムにさらに、前記起動シーケンス中の前記ランタイム初期化を回避させる、請求項13から17のいずれか1項に記載のコンピュータプログラム。
【請求項19】
性能強化コンピューティングシステムを操作するための方法であって、前記方法が、
起動シーケンス中にプロセッサの統合メモリを初期化する段階と、
前記プロセッサに関連付けられた外部システムメモリのランタイム初期化を行う段階と
を備える、方法。
【請求項20】
前記ランタイム初期化を行う段階が、前記起動シーケンスの後前記外部システムメモリに1つまたは複数のトレーニングコマンドを発行する段階を有する、請求項19に記載の方法。
【請求項21】
前記1つまたは複数のトレーニングコマンドを更新する段階と、
更新された前記1つまたは複数のトレーニングコマンドに基づいて前記外部システムメモリの再トレーニングを行う段階であって、前記再トレーニングが、前記性能強化コンピューティングシステムの再起動を回避する、段階と
をさらに備える、請求項20に記載の方法。
【請求項22】
前記ランタイム初期化が、オペレーティングシステムドライバを介して行われる、請求項19から21のいずれか1項に記載の方法。
【請求項23】
前記ランタイム初期化をトリガするためにランタイムサービスへの呼び出しを発行する段階をさらに備える、請求項19から22のいずれか1項に記載の方法。
【請求項24】
前記起動シーケンス中に前記ランタイム初期化を回避する段階をさらに備える、請求項19から23のいずれか1項に記載の方法。
【請求項25】
請求項19から24のいずれか1項に記載の方法を実行するための手段を備える装置。
【請求項26】
請求項13から18のいずれか一項に記載のコンピュータプログラムを格納するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、一般にメモリトレーニングに関する。より詳細には、実施形態は、実行時に外部メモリトレーニングを実装することに関する。
【背景技術】
【0002】
従来のコンピューティングシステムでは、プロセッサは使用中のデータおよびプログラムを保持するための外部システムメモリとしてDRAM(ダイナミックランダムアクセスメモリ)を使用し得る。システムメモリの適切な動作を保証するために、BIOS(基本入力/出力システム)ベースのメモリトレーニングモードは、起動シーケンス中にシステムメモリを初期化およびトレーニングし得る。DRAMモジュールのメモリ容量が増加するにつれて、トレーニング時間も増加する傾向があり、その結果、起動時間が長くなる。さらに、MRC(メモリ参照コード)の更新(例えば、トレーニングコマンドの修正)を有効にするために、通常、コンピューティングシステムの再起動が必要であり得、再起動によりコンピューティングシステムのアクティブ時間がさらに短縮される。
【図面の簡単な説明】
【0003】
実施形態の様々な利点は、以下の明細書および添付の特許請求の範囲を読み、以下の図面を参照することによって、当業者に明らかになるであろう。
【0004】
【
図1】一実施形態による、プロセッサの一例のブロック図である。
【0005】
【
図2】一実施形態による、起動シーケンスおよびオペレーティングシステム(OS)ランタイムの一例を示す図である。
【0006】
【
図3】一実施形態による、ランタイム初期化を行うためのランタイムサービスの使用の一例を示す図である。
【0007】
【
図4】一実施形態による、性能強化コンピューティングシステムを動作させる方法の一例のフローチャートである。
【0008】
【
図5】一実施形態による、メモリ参照コード(MRC)更新を行う方法の一例のフローチャートである。
【0009】
【
図6】一実施形態による、性能強化コンピューティングシステムの一例のブロック図である。
【0010】
【
図7】一実施形態による、半導体パッケージ装置の一例を示す図である。
【0011】
【
図8】一実施形態による、プロセッサの一例のブロック図である。
【0012】
【
図9】一実施形態による、マルチプロセッサベースのコンピューティングシステムの一例のブロック図である。
【発明を実施するための形態】
【0013】
ここで
図1を参照すると、プロセッサ10が外部システムメモリ12に結合されているプロセッサ10が示されている。一実施形態では、外部システムメモリ12は、例えば、DDR4(ダブルデータレート4)同期DRAM(SDRAM)モジュール、DDR5(ダブルデータレート5)SDRAMモジュールなど、DRAMメモリモジュール(例えば、デュアルインラインメモリモジュール/DIMM)を含み得る。示されるプロセッサ10はまた、メモリコントローラ(MC)14のセットを使用して、外部システムメモリ12と通信する。
【0014】
一実施形態では、プロセッサ10は、例えば、高帯域幅メモリ(HBM)などの統合メモリ16を含む。3次元(3D)積層DRAM用の高性能RAMインターフェースであるHBMは、プロセッサ10が高性能グラフィックアクセラレータ、ネットワークデバイスなどとして動作する場合に特に有用であり得る。したがって、統合メモリ16は、外部システムメモリ12よりも実質的に小さいフォームファクタでより少ない電力を使用しながら、より高い帯域幅を達成し得る。さらに、外部システムメモリ12と比較して、統合メモリ16のトレーニングは比較的高速で簡単である。一例では、プロセッサ10および統合メモリ16は、例えば、合計64GB以上のインパッケージメモリを提供する3.2/2.8GhzのHBM2E(HBM第2世代進化)メモリの複数のスタック(例えば、4つ)をサポートする。実際、統合メモリ16のトレーニング時間は、外部システムメモリ12のトレーニング時間の約10%であり得る。
【0015】
より詳細に論じるように、プロセッサ10は、BIOSベースのメモリトレーニング中に統合メモリ16のみを初期化し得て、これにより起動時間が大幅に短縮される。したがって、統合メモリ16は、システム起動メモリとして使用し得る。ポストメモリシリコン初期化が完了すると、OS(オペレーティングシステム)は、実行時に外部システムメモリ12の初期化およびトレーニングを処理し得る。実際、MRC更新は、実行時に外部システムメモリ12を再トレーニングした後に(例えば、コンピューティングシステムの再起動を回避して)有効になり得る。したがって、そのような手法は、より速い起動時間およびMRC更新によって性能を大幅に向上させ得る。
【0016】
図2は、電源投入イベント24がプレメモリシリコン初期化25をトリガし、メモリ初期化26が続く、起動シーケンス20およびOSランタイム22を示す。示される例では、メモリ初期化26は、起動シーケンス20中に、検出されたメモリインストール30およびポストメモリシリコン初期化32が続く、統合メモリの初期化およびトレーニング手順28を含む。特に注意すべき点は、起動シーケンス20中に外部システムメモリのトレーニングが行われないことである。したがって、OSランタイム22に到達するまでの時間は比較的短い。一実施形態では、OSランタイム22は、1つまたは複数のアプリケーション36およびOSカーネル38を有するOS環境34を含む。カーネル38は、例えば、電力管理ドライバ40、メモリ管理ドライバ42および入力ドライバ44、ならびにファイルシステム46などのドライバを含み得る。示されるOSカーネル38は、外部メモリおよび初期化ドライバ48も含み、ドライバ48は外部システムメモリのランタイム初期化を行う。実行時に外部メモリの初期化を実装することで、起動シーケンス20を繰り返すことなく、MRC更新を有効にすることもできる。
【0017】
図3は、ドライバ48(
図2)の代わりにランタイムサービス50を使用して、外部メモリの初期化のランタイム初期化を行うことを示す。示される例では、OS環境52は、OSランタイムから、ランタイムサービス50を含むUEFI(ユニファイドエクステンシブルファームウェアインターフェース)ランタイム環境58への呼び出し56を発行するOSカーネル54を含む。
【0018】
図4は、性能強化コンピューティングシステムを動作させる方法60を示す。方法60は、一般に、例えば、既に論じたプロセッサ10(
図1)などのプロセッサで実装され得る。より具体的には、方法60は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、プログラマブルROM(PROM)、ファームウェア、フラッシュメモリなどの機械またはコンピュータ可読記憶媒体に、例えば、プログラマブルロジックアレイ(PLA)、フィールドプログラマブルゲートアレイ(FPGA)、複雑なプログラマブルロジックデバイス(CPLD)など構成可能なロジックに、例えば、特定用途向け集積回路(ASIC)、相補型金属酸化膜半導体(CMOS)、またはトランジスタ-トランジスタロジック(TTL)技術、あるいはそれらの任意の組み合わせなどの回路技術を使用する固定機能ハードウェアロジックに記憶されたロジック命令のセット内の1つまたは複数のモジュールとして実装され得る。
【0019】
例えば、方法60に示される動作を実行するコンピュータプログラムコードは、Java(登録商標)、Smalltalk(登録商標)、C++または同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで記述され得る。さらに、ロジック命令には、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、状態設定データ、集積回路の構成データ、電子回路をパーソナライズする状態情報、および/またはハードウェア固有のその他の構造構成要素(例えば、ホストプロセッサ、中央処理装置/CPU、マイクロコントローラなど)が含まれる場合がある。
【0020】
示される処理ブロック62は、起動シーケンス中にプロセッサの統合メモリ(例えば、プロセッサ半導体パッケージに統合されたメモリ)を初期化することを可能にする。一実施形態では、ブロック62は、HBMを含み得る、統合メモリに1つまたは複数のトレーニングコマンドを発行することを含む。ブロック64は、プロセッサに関連付けられた外部システムメモリ(例えば、DDR4/DDR5 SDRAM)のランタイム初期化を行う。ブロック64は、起動シーケンスが完了した後、1つまたは複数のトレーニングコマンドを外部システムメモリに発行することを含み得る。一例では、ブロック64は、OSドライバを介してランタイム初期化を行うことを含む。別の例では、ブロック64は、ランタイム初期化をトリガおよび/または要求するためにランタイムサービスへの呼び出しを発行することを含む。既に述べたように、ブロック62は、起動シーケンス中に外部システムメモリの初期化を回避し得る。したがって、示される方法60は、少なくとも起動時間が大幅に短縮される程度まで性能を向上させる。
【0021】
図5は、MRC更新を行う方法70を示す。方法70は、一般に、例えば、既に論じたプロセッサ10(
図1)などのプロセッサで実行時に実装され得る。より具体的には、方法70は、RAM、ROM、PROM、ファームウェア、フラッシュメモリなどの機械またはコンピュータ可読記憶媒体に、例えば、PLA、FPGA、CPLDなど構成可能なロジックに、例えば、ASIC、CMOS、またはTTL技術、あるいはそれらの任意の組み合わせなどの回路技術を使用する固定機能ハードウェアロジックに記憶されたロジック命令のセット内の1つまたは複数のモジュールとして実装され得る。
【0022】
示される処理ブロック72は、MRC内の1つまたは複数のトレーニングコマンド(例えば、モードレジスタセット/MRS、モードレジスタ書き込み/MRW、多目的コマンド/MPC、コマンドおよびアドレスピンの基準電圧/VREFCAなど)を更新することを可能にする。ブロック72はまた、例えば、メモリタイミングアルゴリズム、マージニング情報など、MRC内の他の情報を更新し得る。一実施形態では、MRC更新は、例えばページフォールトを介して検出されたメモリエラーに応答して、ポストパッケージリペア(PPR)の一部として行われる。そのような場合、PPRでは、外部システムメモリ内の不良行を冗長行に置き換える必要があり得る。MRC更新の別の例には、現在の部分的なミラーメモリサイズの変更が含まれる。ブロック74で、更新されたトレーニングコマンドに基づいて、外部システムメモリの再トレーニングを行い得、再トレーニングは、コンピューティングシステムの再起動を回避する。したがって、示される方法70は、より速いMRC更新によって性能をさらに向上させる。
【0023】
ここで
図6に参照すると、性能強化コンピューティングシステム90が示されている。システム80は、一般に、コンピューティング機能(例えば、携帯情報端末/PDA、ノートブックコンピュータ、タブレットコンピュータ、コンバーチブルタブレット、サーバ)、通信機能(例えば、スマートフォン)、撮像機能(例えば、カメラ、ビデオカメラ)、メディア再生機能(例えば、スマートテレビ/テレビ)、ウェアラブル機能(例えば、時計、アイウェア、ヘッドウェア、フットウェア、装身具)、車両機能(例えば、車、トラック、オートバイ)、ロボット機能(例えば、自律型ロボット)など、またはそれらの任意の組み合わせを有する電子デバイス/プラットフォームの一部であり得る。
【0024】
示される例では、システム80は、統合メモリ83(例えば、HBM)を有するホストプロセッサ82(例えば、中央処理装置/CPU)およびシステムメモリ86に結合された統合メモリコントローラ(IMC)84を含む。示されるシステム80はまた、システムオンチップ(SoC)として半導体ダイ92上にホストプロセッサ82およびグラフィックスプロセッサ90と共に実装される入力出力(IO)モジュール88を含む。示されるIOモジュール88は、例えば、ディスプレイ94(例えば、タッチスクリーン、液晶ディスプレイ/LCD、発光ダイオード/LEDディスプレイ)、ネットワークコントローラ96(例えば、有線および/または無線)、および大容量ストレージ98(例えば、ハードディスクドライブ/HDD、光ディスク、ソリッドステートドライブ/SSD、フラッシュメモリ)と通信する。
【0025】
一実施形態では、ホストプロセッサ82、グラフィックスプロセッサ80および/またはIOモジュール88は、統合メモリ83から取得されたプログラム命令100を実行して、既に論じた、方法60(
図4)および/または方法70(
図5)の1つまたは複数の態様を実行する。したがって、命令100の実行は、コンピューティングシステムに、起動シーケンス中に統合メモリ83を初期化させ、外部システムメモリ86のランタイム初期化を行わせ得る。また、命令100の実行は、コンピューティングシステム80に、1つまたは複数のトレーニングコマンドを更新させ、更新された1つまたは複数のトレーニングコマンドに基づいて外部システムメモリ86の再トレーニングを行わせ得る。一実施形態では、再トレーニングは、コンピューティングシステム80の再起動を回避する。したがって、示されるコンピューティングシステム80は、少なくとも起動時間が大幅に短縮され、MRC更新がより速く行われる程度まで性能強化されている。
【0026】
図7は、半導体装置200(例えば、チップ、ダイ、パッケージ)を示す。示される装置200は、1つまたは複数の基板202(例えば、シリコン、サファイア、ヒ化ガリウム)および基板202に結合されたロジック204(例えば、トランジスタアレイおよびその他の集積回路/IC構成要素)を含む。一実施形態では、ロジック204は、既に論じた、方法60(
図4)および/または方法70(
図5)の1つまたは複数の態様を実装する。したがって、ロジック204は、起動シーケンス中にプロセッサの統合メモリを初期化し、外部システムメモリのランタイム初期化を自動的に行い得る。ロジック204はまた、1つまたは複数のトレーニングコマンドを更新し、更新された1つまたは複数のトレーニングコマンドに基づいて外部システムメモリの再トレーニングを自動的に行い得る。一実施形態では、再トレーニングは、コンピューティングシステムの再起動を回避する。したがって、示される装置200は、少なくとも起動時間が大幅に短縮され、MRC更新がより速く行われる程度まで性能強化されている。
【0027】
ロジック204は、構成可能なロジックまたは固定機能ハードウェアロジックで少なくとも部分的に実装され得る。
一例では、ロジック204は、基板202内に配置される(例えば、埋め込まれる)トランジスタチャネル領域を含む。したがって、ロジック204と基板202との間の界面は、急激な接合でなくてもよい。ロジック204はまた、基板202の初期ウェハ上で成長するエピタキシャル層を含むと考えられ得る。
【0028】
図8は、一実施形態による、プロセッサコア200を示す。
プロセッサコア200は、マイクロプロセッサ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、またはコードを実行するための他のデバイスなどの任意のタイプのプロセッサのコアであり得る。
図8には1つのプロセッサコア200のみが示されているが、処理要素は、代わりに、
図8に示されているプロセッサコア200のうちの2つ以上を含み得る。プロセッサコア200は、シングルスレッドコアであり得て、少なくとも1つの実施形態では、プロセッサコア200は、コアごとに2つ以上のハードウェアスレッドコンテキスト(または「ロジックプロセッサ」)を含み得るという点でマルチスレッドであり得る。
【0029】
図8は、プロセッサコア200に結合されたメモリ270も示している。
メモリ270は、当業者に知られているか、または別の方法で入手可能な多種多様なメモリ(メモリ階層の様々な層を含む)のいずれかであり得る。
メモリ270は、プロセッサコア200によって実行される1つまたは複数のコード213命令を含み得て、コード213は、既に論じた、方法60(
図4)および/または方法70(
図5)を実装し得る。プロセッサコア200は、コード213によって示される命令のプログラムシーケンスに従う。各命令は、フロントエンド部分210に入り、1つまたは複数のデコーダ220によって処理され得る。デコーダ220は、その出力として、所定のフォーマットの固定幅マイクロ操作などのマイクロ操作を生成し得るか、元のコード命令を反映する他の命令、マイクロ命令、または制御信号を生成し得る。示されるフロントエンド部分210は、一般にリソースを割り当て、変換命令に対応する動作を実行のために待ち行列に入れる、レジスタリネーミングロジック225およびスケジューリングロジック230も含む。
【0030】
プロセッサコア200は、実行ユニット255-1から255-Nのセットを有する実行ロジック250を含むように示されている。いくつかの実施形態は、特定の機能または機能のセット専用のいくつかの実行ユニットを含み得る。他の実施形態は、1つの実行ユニットのみ、または特定の機能を実行できる1つの実行ユニットを含み得る。示される実行ロジック250は、コード命令によって指定された動作を実行する。
【0031】
コード命令によって指定された動作の実行の完了後、バックエンドロジック260は、コード213の命令をリタイアする。一実施形態では、プロセッサコア200は、アウトオブオーダ実行を可能にするが、命令のインオーダリタイアメントを必要とする。リタイアメントロジック265は、当業者に知られているように、様々な形態(例えば、リオーダバッファ、または同様のもの)を取り得る。このようにして、プロセッサコア200は、少なくとも、デコーダによって生成された出力、レジスタリネーミングロジック225によって利用されるハードウェアレジスタおよびテーブル、および実行ロジック250によって修正された任意のレジスタ(図示せず)に関して、コード213の実行中に変換される。
【0032】
図8には示されていないが、処理要素は、プロセッサコア200を有するチップ上の他の要素を含み得る。例えば、処理要素は、プロセッサコア200と共にメモリ制御ロジックを含み得る。処理要素は、I/O制御ロジックを含み得、および/またはメモリ制御ロジックと統合されたI/O制御ロジックを含み得る。処理要素はまた、1つまたは複数のキャッシュを含み得る。
【0033】
ここで
図9を参照すると、一実施形態による、コンピューティングシステム1000の実施形態のブロック図が示されている。
図9に示されているのは、第1の処理要素1070および第2の処理要素1080を含むマルチプロセッサシステム1000である。2つの処理要素1070および1080が示されているが、システム1000の実施形態はまた、そのような処理要素を1つだけ含み得ることを理解されたい。
【0034】
システム1000は、ポイントツーポイント相互接続システムとして示され、第1の処理要素1070および第2の処理要素1080は、ポイントツーポイント相互接続1050を介して結合される。
図9に示す相互接続のいずれかまたはすべては、ポイントツーポイント相互接続ではなく、マルチドロップバスとして実装し得ることを理解されたい。
【0035】
図9に示すように、処理要素1070および1080のそれぞれは、第1および第2のプロセッサコア(すなわち、プロセッサコア1074aおよび1074bならびにプロセッサコア1084aおよび1084b)を含むマルチコアプロセッサであり得る。そのようなコア1074a、1074b、1084a、1084bは、
図8に関連して上記で論じたものと同様の方法で命令コードを実行するように構成され得る。
【0036】
各処理要素1070、1080は、少なくとも1つの共有キャッシュ1896a、1896bを含み得る。共有キャッシュ1896a、1896bは、それぞれコア1074a、1074bおよび1084a、1084bなどのプロセッサの1つまたは複数の構成要素によって利用されるデータ(例えば、命令)を記憶し得る。例えば、共有キャッシュ1896a、1896bは、プロセッサの構成要素による高速アクセスのために、メモリ1032、1034に記憶されたデータをローカルにキャッシュし得る。1つまたは複数の実施形態では、共有キャッシュ1896a、1896bは、レベル2(L2)、レベル3(L3)、レベル4(L4)、または他のレベルのキャッシュ、最終レベルキャッシュ(LLC)、および/またはそれらの組み合わせなど、1つまたは複数の中間レベルのキャッシュを含み得る。
【0037】
2つの処理要素1070、1080だけが示されているが、実施形態の範囲はそのように限定されないことを理解されたい。他の実施形態では、1つまたは複数の追加の処理要素が、所与のプロセッサに存在し得る。あるいは、処理要素1070、1080のうちの1つまたは複数は、アクセラレータまたはフィールドプログラマブルゲートアレイなど、プロセッサ以外の要素であり得る。例えば、追加の処理要素は、第1のプロセッサ1070と同じ追加のプロセッサ、第1のプロセッサ1070とは異種または非対称の追加のプロセッサ、アクセラレータ(例えば、グラフィックスアクセラレータまたはデジタル信号処理(DSP)ユニットなど)、フィールドプログラマブルゲートアレイ、または任意のその他の処理要素を含み得る。処理要素1070、1080の間には、アーキテクチャ、マイクロアーキテクチャ、熱、電力消費特性、および同様のものを含むメリットの測定基準のスペクトルの観点から、様々な差異が存在し得る。これらの差異は、処理要素1070、1080間の非対称性および異質性として効果的に現れ得る。少なくとも1つの実施形態では、様々な処理要素1070、1080が同一のダイパッケージ内に存在し得る。
【0038】
第1の処理要素1070は、メモリコントローラロジック(MC)1072およびポイントツーポイント(P-P)インターフェース1076および1078をさらに含み得る。同様に、第2の処理要素1080は、MC1082およびP-Pインターフェース1086および1088を含み得る。
図9に示すように、MCの1072および1082は、プロセッサをそれぞれのメモリ、すなわちメモリ1032およびメモリ1034に結合し、これらは、それぞれのプロセッサにローカルに取り付けられたメインメモリの一部であり得る。MC1072および1082は、処理要素1070、1080に統合されるように示されているが、代替の実施形態では、MCロジックは、処理要素1070、1080内に統合されるのではなく、処理要素1070、1080の外部のディスクリートロジックであり得る。
【0039】
第1の処理要素1070および第2の処理要素1080は、それぞれP-P相互接続1076および1086を介してI/Oサブシステム1090に結合され得る。
図9に示すように、I/Oサブシステム1090は、P-Pインターフェース1094および1098を含む。さらに、I/Oサブシステム1090は、I/Oサブシステム1090を高性能グラフィックスエンジン1038と結合するインターフェース1092を含む。一実施形態では、バス1049を使用して、グラフィックスエンジン1038をI/Oサブシステム1090に結合し得る。あるいは、ポイントツーポイント相互接続がこれらの構成要素を結合し得る。
【0040】
次に、I/Oサブシステム1090は、インターフェース1096を介して第1のバス1016に結合され得る。一実施形態では、第1のバス1016は、ペリフェラルコンポーネントインターコネクト(PCI)バス、またはPCI Expressバスまたは別の第3世代I/Oインターコネクトバスなどのバスであり得るが、実施形態の範囲はそのように限定されない。
【0041】
図9に示すように、第1のバス1016を第2のバス1020に結合し得るバスブリッジ1018と共に、様々なI/Oデバイス1014(例えば、バイオメトリックスキャナ、スピーカ、カメラ、センサ)を第1のバス1016に結合し得る。一実施形態では、第2のバス1020は低ピン数(LPC)バスであり得る。一実施形態では、例えば、キーボード/マウス1012、通信デバイス1026、およびコード1030を含み得るディスクドライブまたは他の大容量ストレージデバイスなどのデータストレージユニット1019を含む、様々なデバイスを第2のバス1020に結合し得る。示されるコード1030は、既に論じた、方法60(
図4)および/または方法70(
図5)を実装し得て、既に論じた、コード213(
図8)と同様であり得る。さらに、オーディオI/O1024が第2のバス1020に結合され得、バッテリ1010がコンピューティングシステム1000に電力を供給し得る。
【0042】
他の実施形態が考えられることに留意されたい。例えば、
図9のポイントツーポイントアーキテクチャの代わりに、システムはマルチドロップバスまたは別のそのような通信トポロジを実装し得る。また、
図9の要素は、代わりに、
図9に示すよりも多いまたは少ない集積チップを使用して分割され得る。
【0043】
他の注意事項および例
【0044】
例1は、ネットワークコントローラと、ネットワークコントローラに結合されたプロセッサとを備える性能強化コンピューティングシステムを含み、プロセッサは、統合メモリと、プロセッサに結合された外部システムメモリとを含み、統合メモリは、プロセッサによって実行されると、コンピューティングシステムに、起動シーケンス中に統合メモリを初期化させ、外部システムメモリのランタイム初期化を行わせる、実行可能なプログラム命令のセットを含む。
【0045】
例2は、例1のコンピューティングシステムを含み、ランタイム初期化を行うために、命令は、実行されると、コンピューティングシステムに、起動シーケンスの後に外部システムメモリに1つまたは複数のトレーニングコマンドを発行させる。
【0046】
例3は、例2のコンピューティングシステムを含み、命令は、実行されると、コンピューティングシステムにさらに、1つまたは複数のトレーニングコマンドを更新させ、更新された1つまたは複数のトレーニングコマンドに基づいて外部システムメモリの再トレーニングを行わせ、再トレーニングは、コンピューティングシステムの再起動を回避する。
【0047】
例4は例1のコンピューティングシステムを含み、ランタイム初期化はオペレーティングシステムドライバを介して行われる。
【0048】
例5は、例1のコンピューティングシステムを含み、命令は、実行されると、コンピューティングシステムにさらに、ランタイムサービスへの呼び出しを発行させ、ランタイム初期化をトリガさせる。
【0049】
例6は、例1から例5のいずれか1つのコンピューティングシステムを含み、命令は、実行されると、コンピューティングシステムにさらに、起動シーケンス中のランタイム初期化を回避させる。
【0050】
例7は、1つまたは複数の基板および1つまたは複数の基板に結合されたロジックを備える半導体装置を含み、ロジックは、構成可能なロジックまたは固定機能ハードウェアロジックの1つまたは複数で少なくとも部分的に実装され、ロジックは、起動シーケンス中にプロセッサの統合メモリを初期化し、プロセッサに関連付けられた外部システムメモリのランタイム初期化を行うために、1つまたは複数の基板に結合される。
【0051】
例8は、例7の装置を含み、ランタイム初期化を行うために、1つまたは複数の基板に結合されたロジックは、起動シーケンスの後に1つまたは複数のトレーニングコマンドを外部システムメモリに発行し、1つまたは複数のトレーニングコマンドを更新し、更新された1つまたは複数のトレーニングコマンドに基づいて、外部システムメモリの再トレーニングを行い、再トレーニングは再起動を回避する。
【0052】
例9は例7の装置を含み、ランタイム初期化はオペレーティングシステムドライバを介して行われる。
【0053】
例10は、例7の装置を含み、1つまたは複数の基板に結合されたロジックは、ランタイム初期化をトリガするためにランタイムサービスへの呼び出しを発行する。
【0054】
例11は、例7から例10のいずれか1つの装置を含み、1つまたは複数の基板に結合されたロジックは、起動シーケンス中にランタイム初期化を回避する。
【0055】
例12は、例7から例10のいずれか1つの装置を含み、1つまたは複数の基板に結合されたロジックは、1つまたは複数の基板内に配置されたトランジスタチャネル領域を含む。
【0056】
例13は、コンピューティングシステムによって実行されると、コンピューティングシステムに、起動シーケンス中にプロセッサの統合メモリを初期化させ、プロセッサに関連付けられた外部システムメモリのランタイム初期化を行わせる、実行可能なプログラム命令のセットを含む少なくとも1つのコンピュータ可読記憶媒体を含む。
【0057】
例14は、例13の少なくとも1つのコンピュータ可読記憶媒体を含み、ランタイム初期化を行うために、命令は、実行されると、コンピューティングシステムに、起動シーケンスの後に外部システムメモリへの1つまたは複数のトレーニングコマンドを発行させる。
【0058】
例15は、例14の少なくとも1つのコンピュータ可読記憶媒体を含み、命令は、実行されると、コンピューティングシステムにさらに、1つまたは複数のトレーニングコマンドを更新させ、更新された1つまたは複数のトレーニングコマンドに基づいて外部システムメモリの再トレーニングを行わせ、再トレーニングは、コンピューティングシステムの再起動を回避する。
【0059】
例16は、例13の少なくとも1つのコンピュータ可読記憶媒体を含み、ランタイム初期化はオペレーティングシステムドライバを介して行われる。
【0060】
例17は、例13の少なくとも1つのコンピュータ可読記憶媒体を含み、命令は、実行されると、コンピューティングシステムにさらに、ランタイムサービスへの呼び出しを発行させ、ランタイム初期化をトリガさせる。
【0061】
例18は、例13から例17のいずれか1つの少なくとも1つのコンピュータ可読記憶媒体を含み、命令は、実行されると、コンピューティングシステムにさらに、起動シーケンス中のランタイム初期化を回避させる。
【0062】
例19は、性能強化コンピューティングシステムを操作する方法を含み、本方法は、起動シーケンス中にプロセッサの統合メモリを初期化する段階と、プロセッサに関連付けられた外部システムメモリのランタイム初期化を行う段階とを備える。
【0063】
例20は、例19の方法を含み、ランタイム初期化を行う段階は、起動シーケンスの後に外部システムメモリに1つまたは複数のトレーニングコマンドを発行する段階を含む。
【0064】
例21は、例20の方法を含み、1つまたは複数のトレーニングコマンドを更新する段階と、更新された1つまたは複数のトレーニングコマンドに基づいて外部システムメモリの再トレーニングを行う段階をさらに含み、再トレーニングは、コンピューティングシステムの再起動を回避する。
【0065】
例22は例19の方法を含み、ランタイム初期化はオペレーティングシステムドライバを介して行われる。
【0066】
例23は、例19の方法を含み、ランタイム初期化をトリガするためにランタイムサービスへの呼び出しを発行する段階をさらに含む。
【0067】
例24は、例19から例23のいずれか1つの方法を含み、起動シーケンス中にランタイム初期化を回避する段階をさらに含む。
【0068】
例25は、例19から例24のいずれか1つの方法を実行するための手段を備える装置を含む。
【0069】
したがって、本明細書に記載の技術は、多くのサーバシステムのモジュール設計を活用して、(例えば、サーバシステム内の個別のホストプロセッサおよびDIMMを使用して、OSでメモリのホットプラグをサポートする)DIMMポピュレーションなしでOSを起動し得る。世代を追うごとにDIMMの容量が指数関数的に増加するため、特にサーバプラットフォームでは、本技術は起動時間の増加も防ぐ。
【0070】
実施形態は、すべてのタイプの半導体集積回路(「IC」)チップでの使用に適用可能である。これらのICチップの例には、限定されないが、プロセッサ、コントローラ、チップセット構成要素、プログラマブルロジックアレイ(PLA)、メモリチップ、ネットワークチップ、システムオンチップ(SoC)、SSD/NANDコントローラASIC、および同様のものが含まれる。また、いくつかの図面では、信号導線を線で表している。より多くの構成信号経路を示すためにいくつかは異なり得、いくつかの構成信号経路を示すために番号ラベルを付け得、および/または主要な情報が流れる向きを示すために1つまたは複数の端部に矢印を付け得る。しかし、これは限定的なやり方で解釈されるべきではない。むしろ、そのような追加の詳細は、回路の理解を容易にするために、1つまたは複数の例示的な実施形態に関連して使用され得る。追加情報を有しているかどうかに関係なく、表された信号線は、実際には、複数の方向に移動し得る1つまたは複数の信号を含み得、任意の適切なタイプの信号スキーム、例えば、差動対、光ファイバ線、および/またはシングルエンド線で実装されたデジタルまたはアナログ線で実装され得る。
【0071】
サイズ/モデル/値/範囲の例が示され得ているが、実施形態はこれに限定されない。
製造技術(例えば、フォトリソグラフィ)が時間とともに成熟するにつれて、より小さなサイズのデバイスが製造されることが期待される。さらに、ICチップおよび他の構成要素への周知の電源/接地接続は、例示および議論を簡単にするために、また実施形態の特定の態様を不明瞭にしないように、図内に示されていても示されていなくてもよい。さらに、実施形態が不明瞭になるのを避けるために、配置をブロック図形式で示し得、また、そのようなブロック図配置の実装に関する詳細は、実施形態が実装されるプラットフォームに大きく依存するという事実を考慮すると、すなわち、そのような詳細は十分に当業者の範囲内にあるはずである。例示的な実施形態を説明するために具体的な詳細(例えば、回路)が記載されている場合、これらの具体的な詳細なしで、またはこれらの具体的な詳細を変更して実施形態を実施できることは当業者には明らかであるはずである。したがって、本説明は、限定ではなく例示と見なされるべきである。
【0072】
「結合」という用語は、当該構成要素間の直接的または間接的な任意のタイプの関係を指すために本明細書で使用され得、電気的、機械的、流体的、光学的、電磁気的、電気機械的または他の接続に適用され得る。さらに、「第1」、「第2」などの用語は、議論を容易にするためにのみ本明細書で使用され得、別段の指示がない限り、特定の時間的または時系列的な意味を持たない。
【0073】
本出願および特許請求の範囲で使用されるように、用語「1つまたは複数」によって結合された項目のリストは、列挙された用語の任意の組み合わせを意味し得る。例えば、「A、B、またはCの1つまたは複数」という句は、A、B、Cか、AおよびBか、AおよびCか、BおよびCか、またはA、BおよびCを意味し得る。
【0074】
当業者ならば、上記の説明から、実施形態の広範な技術が様々な形態で実施され得ることを理解するであろう。したがって、実施形態は、その特定の例に関連して説明されてきたが、図面、明細書、および以下の特許請求の範囲を検討することにより、当業者には他の修正が明らかになるので、実施形態の真の範囲はそのように限定されるべきではない。
[他の可能な項目]
[項目1]
性能強化コンピューティングシステムであって、
ネットワークコントローラと、
前記ネットワークコントローラに結合されたプロセッサであって、前記プロセッサが統合メモリを含む、プロセッサと、
前記プロセッサに結合された外部システムメモリであって、前記統合メモリが、前記プロセッサによって実行されると、前記コンピューティングシステムに、
起動シーケンス中に前記統合メモリを初期化させ、
前記外部システムメモリのランタイム初期化を行わせる、実行可能なプログラム命令のセットを含む、外部システムメモリと
を備える性能強化コンピューティングシステム。
[項目2]
前記ランタイム初期化を行うために、前記命令は、実行されると、前記コンピューティングシステムに、前記起動シーケンスの後に前記外部システムメモリに1つまたは複数のトレーニングコマンドを発行させる、項目1に記載のコンピューティングシステム。
[項目3]
前記命令は、実行されると、前記コンピューティングシステムにさらに、
前記1つまたは複数のトレーニングコマンドを更新させ、
更新された前記1つまたは複数のトレーニングコマンドに基づいて前記外部システムメモリの再トレーニングを行わせ、前記再トレーニングは、前記コンピューティングシステムの再起動を回避する、項目2に記載のコンピューティングシステム。
[項目4]
前記ランタイム初期化が、オペレーティングシステムドライバを介して行われる、項目1に記載のコンピューティングシステム。
[項目5]
前記命令は、実行されると、前記コンピューティングシステムにさらに、ランタイムサービスへの呼び出しを発行させ、前記ランタイム初期化をトリガさせる、項目1に記載のコンピューティングシステム。
[項目6]
前記命令は、実行されると、前記コンピューティングシステムにさらに、前記起動シーケンス中の前記ランタイム初期化を回避させる、項目1から5のいずれか1項に記載のコンピューティングシステム。
[項目7]
1つまたは複数の基板と、
前記1つまたは複数の基板に結合されたロジックであって、前記ロジックは、構成可能なロジックまたは固定機能ハードウェアロジックの1つまたは複数で少なくとも部分的に実装され、前記ロジックは、
起動シーケンス中にプロセッサの統合メモリを初期化し、
前記プロセッサに関連付けられた外部システムメモリのランタイム初期化を行うために、前記1つまたは複数の基板に結合されている、ロジックと
を備える半導体装置。
[項目8]
前記ランタイム初期化を行うために、前記1つまたは複数の基板に結合された前記ロジックは、
前記起動シーケンスの後に1つまたは複数のトレーニングコマンドを前記外部システムメモリに発行し、
前記1つまたは複数のトレーニングコマンドを更新し、
更新された前記1つまたは複数のトレーニングコマンドに基づいて、前記外部システムメモリの再トレーニングを行い、前記再トレーニングは再起動を回避する、項目7に記載の装置。
[項目9]
前記ランタイム初期化が、オペレーティングシステムドライバを介して行われる、項目7に記載の装置。
[項目10]
前記1つまたは複数の基板に結合された前記ロジックが、前記ランタイム初期化をトリガするためにランタイムサービスへの呼び出しを発行する、項目7に記載の装置。
[項目11]
前記1つまたは複数の基板に結合された前記ロジックが、前記起動シーケンス中に前記ランタイム初期化を回避する、項目7から10のいずれか1項に記載の装置。
[項目12]
前記1つまたは複数の基板に結合された前記ロジックが、前記1つまたは複数の基板内に配置されたトランジスタチャネル領域を含む、項目7から10のいずれか1項に記載の装置。
[項目13]
コンピューティングシステムによって実行されると、前記コンピューティングシステムに、
起動シーケンス中にプロセッサの統合メモリを初期化させ、
前記プロセッサに関連付けられた外部システムメモリのランタイム初期化を行わせる、実行可能なプログラム命令のセットを備える、少なくとも1つのコンピュータ可読記憶媒体。
[項目14]
前記ランタイム初期化を行うために、前記命令は、実行されると、前記コンピューティングシステムに、前記起動シーケンスの後に前記外部システムメモリへの1つまたは複数のトレーニングコマンドを発行させる、項目13に記載の少なくとも1つのコンピュータ可読記憶媒体。
[項目15]
前記命令は、実行されると、前記コンピューティングシステムにさらに、
前記1つまたは複数のトレーニングコマンドを更新させ、
更新された前記1つまたは複数のトレーニングコマンドに基づいて前記外部システムメモリの再トレーニングを行わせ、前記再トレーニングは、前記コンピューティングシステムの再起動を回避する、項目14に記載の少なくとも1つのコンピュータ可読記憶媒体。
[項目16]
前記ランタイム初期化が、オペレーティングシステムドライバを介して行われる、項目13に記載の少なくとも1つのコンピュータ可読記憶媒体。
[項目17]
前記命令は、実行されると、前記コンピューティングシステムにさらに、ランタイムサービスへの呼び出しを発行させ、前記ランタイム初期化をトリガさせる、項目13に記載の少なくとも1つのコンピュータ可読記憶媒体。
[項目18]
前記命令は、実行されると、前記コンピューティングシステムにさらに、前記起動シーケンス中の前記ランタイム初期化を回避させる、項目13から17のいずれか1項に記載の少なくとも1つのコンピュータ可読記憶媒体。
[項目19]
性能強化コンピューティングシステムを操作するための方法であって、前記方法が、
起動シーケンス中にプロセッサの統合メモリを初期化する段階と、
前記プロセッサに関連付けられた外部システムメモリのランタイム初期化を行う段階と
を備える、方法。
[項目20]
前記ランタイム初期化を行う段階が、前記起動シーケンスの後前記外部システムメモリに1つまたは複数のトレーニングコマンドを発行する段階を有する、項目19に記載の方法。
[項目21]
前記1つまたは複数のトレーニングコマンドを更新する段階と、
更新された前記1つまたは複数のトレーニングコマンドに基づいて前記外部システムメモリの再トレーニングを行う段階であって、前記再トレーニングが、前記コンピューティングシステムの再起動を回避する段階と
をさらに備える項目20に記載の方法。
[項目22]
前記ランタイム初期化が、オペレーティングシステムドライバを介して行われる、項目19に記載の方法。
[項目23]
前記ランタイム初期化をトリガするためにランタイムサービスへの呼び出しを発行する段階をさらに備える、項目19に記載の方法。
[項目24]
前記起動シーケンス中に前記ランタイム初期化を回避する段階をさらに備える、項目19から23のいずれか1項に記載の方法。
[項目25]
項目19から23のいずれか1項に記載の方法を実行するための手段を備える装置。