(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022031141
(43)【公開日】2022-02-18
(54)【発明の名称】設定可能な低減メモリスタートアップ
(51)【国際特許分類】
G06F 1/3212 20190101AFI20220210BHJP
G06F 9/445 20180101ALI20220210BHJP
G06F 1/3225 20190101ALI20220210BHJP
G06F 1/3287 20190101ALI20220210BHJP
G06F 1/3234 20190101ALI20220210BHJP
【FI】
G06F1/3212
G06F9/445 150
G06F1/3225
G06F1/3287
G06F1/3234
【審査請求】未請求
【請求項の数】25
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021111410
(22)【出願日】2021-07-05
(31)【優先権主張番号】202041033777
(32)【優先日】2020-08-06
(33)【優先権主張国・地域又は機関】IN
(31)【優先権主張番号】17/028,315
(32)【優先日】2020-09-22
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】カルナカラ コタリー
(72)【発明者】
【氏名】パンネルクマール ラジャゴパール
(72)【発明者】
【氏名】サティシュ ムティヤル
(72)【発明者】
【氏名】ラジェシュ プールナチャンドラン
【テーマコード(参考)】
5B011
5B376
【Fターム(参考)】
5B011DA06
5B011EA04
5B011EA05
5B011GG02
5B011KK03
5B011LL11
5B011MB11
5B376EA21
(57)【要約】
【課題】コンピューティングプラットフォーム上の効率的なQoSのための設定可能な低減メモリスタートアップを提供する。
【解決手段】システム、装置、および方法は、ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第1のランクセットを有効にすることと、ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第2のランクセットを無効にすることと、を行う技術を提供し得る。また、本技術は、システムアドレス空間と、第1のランクセットのうちの第1のバンクセットとの間のマップを生成し、マップから第1のランクセットのうちの第2のバンクセットをマップから除外してもよい。
【選択図】
図6
【特許請求の範囲】
【請求項1】
コンピューティングシステムであって、
ネットワークコントローラと、
前記ネットワークコントローラに結合されたプロセッサと、
前記プロセッサに結合されたメモリモジュールと、を含み、前記メモリモジュールは、命令のセットを含み、前記命令のセットは、前記プロセッサによって実行されるときに、前記プロセッサに、
ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、前記メモリモジュール内の第1のランクセットを有効にすることと、
ブートシーケンス中に、前記バッテリ状態及び前記ユーザインターフェースに基づいて、前記メモリモジュール内の第2のランクセットを無効にすることと、
システムアドレス空間と、前記第1のランクセットのうちの第1のバンクセットとの間のマップを生成することと、
前記マップから前記第1のランクセットのうちの第2のバンクセットを除外することと、を行わせる、コンピューティングシステム。
【請求項2】
メモリコントローラをさらに含み、前記命令は、前記メモリコントローラによって実行されるときに、前記メモリコントローラに、
前記第1のバンクセットに関する書き込みアクティビティを監視することと、
前記書き込みアクティビティに基づいて、前記第1のバンクセットのうちの1つ以上のバンクにおけるリフレッシュを無効にすることと、を行わせる、請求項1に記載のコンピューティングシステム。
【請求項3】
前記ユーザインターフェースは、メモリプロパティ、メモリ構成、パフォーマンス構成、ユーザインターフェース要素構成、ストレージ構成、またはホットスワップ構成のうちの1つ以上を定義する構成オブジェクト構造を含むものである、請求項1に記載のコンピューティングシステム。
【請求項4】
前記バッテリ状態は、バッテリ残量充電状態が、通常の閾値未満であり、低減メモリスタートアップ閾値よりも大きいことを示すものであり、前記マップは、低バッテリマッピングスキームに関連付けられている、請求項1に記載のコンピューティングシステム。
【請求項5】
前記命令は、前記プロセッサによって実行されるときに、前記プロセッサに、
設定可能な最小メモリスタートアップモード中にテレメトリデータを収集することであって、前 記テレメトリデータは、前記第1のランクセット及び前記第2のランクセットに関連付けられている、収集することと、
前記バッテリ状態の変化を検出することと、
前記変化に応答して、前記第2のランクセットを有効にすることと、
前記変化に応答して、前記第2のバンクセットをマップに組み込むことと、をさらに行わせる、請求項1~4のいずれか一項に記載のコンピューティングシステム。
【請求項6】
前記変化は、バッテリ残量充電状態が通常の閾値よりも大きいことを示すものである、請求項5に記載のコンピューティングシステム。
【請求項7】
半導体装置であって、
1つ以上の基板と、
前記1つ以上の基板に結合されたロジックと、を含み、前記ロジックは、設定可能な論理または固定機能性ハードウェア論理のうちの1つ以上において少なくとも部分的に実装され、前記1つ以上の基板に結合された前記ロジックは、
ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第1のランクセットを有効にすることと、
ブートシーケンス中に、前記バッテリ状態及び前記ユーザインターフェースに基づいて、前記メモリモジュール内の第2のランクセットを無効にすることと、
システムアドレス空間と、前記第1のランクセットのうちの第1のバンクセットとの間のマップを生成することと、
前記マップから前記第1のランクセットのうちの第2のバンクセットを除外することと、を行う、装置。
【請求項8】
前記1つ以上の基板に結合された前記ロジックは、
前記第1のバンクセットに関する書き込みアクティビティを監視することと、
前記書き込みアクティビティに基づいて、前記第1のバンクセットのうちの1つ以上のバンクにおけるリフレッシュを無効にすることと、を行う、請求項7に記載の装置。
【請求項9】
前記ユーザインターフェースは、メモリプロパティ、メモリ構成、パフォーマンス構成、ユーザインターフェース要素構成、ストレージ構成、またはホットスワップ構成のうちの1つ以上を定義する構成オブジェクト構造を含むものである、請求項7に記載の装置。
【請求項10】
前記バッテリ状態は、バッテリ残量充電状態が、通常の閾値未満であり、低減メモリスタートアップ閾値よりも大きいことを示すものであり、前記マップは、低バッテリマッピングスキームに関連付けられている、請求項7に記載の装置。
【請求項11】
前記1つ以上の基板に結合された前記ロジックは、
設定可能な最小メモリスタートアップモード中にテレメトリデータを収集することであって、前記テレメトリデータは、前記第1のランクセット及び前記第2のランクセットに関連付けられている、収集することと、
前記バッテリ状態の変化を検出することと、
前記変化に応答して、前記第2のランクセットを有効にすることと、
前記変化に応答して、前記第2のバンクセットをマップに組み込むことと、を行う、請求項7~10のいずれか一項に記載の装置。
【請求項12】
前記変化は、バッテリ残量充電状態が通常の閾値よりも大きいことを示すものである、請求項11に記載の装置。
【請求項13】
前記1つ以上の基板に結合された前記ロジックは、前記1つ以上の基板内に位置決めされたトランジスタチャネル領域を含む、請求項7~10のいずれか一項に記載の装置。
【請求項14】
命令のセットを含む少なくとも1つのコンピュータ可読記憶媒体であって、前記命令のセットは、コンピュータシステムによって実行されるときに、前記コンピュータシステムに
ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第1のランクセットを有効にすることと、
ブートシーケンス中に、前記バッテリ状態及び前記ユーザインターフェースに基づいて、前記メモリモジュール内の第2のランクセットを無効にすることと、
システムアドレス空間と、前記第1のランクセットのうちの第1のバンクセットとの間のマップを生成することと、
前記マップから前記第1のランクセットのうちの第2のバンクセットを除外することと、を行わせる、少なくとも1つのコンピュータ可読記憶媒体。
【請求項15】
前記命令は、実行されるときに、前記コンピュータシステムに、
前記第1のバンクセットに関する書き込みアクティビティを監視することと、
前記書き込みアクティビティに基づいて、前記第1のバンクセットのうちの1つ以上のバンクにおけるリフレッシュを無効にすることと、をさらに行わせる、請求項14に記載の少なくとも1つのコンピュータ可読記憶媒体。
【請求項16】
前記ユーザインターフェースは、メモリプロパティ、メモリ構成、パフォーマンス構成、ユーザインターフェース要素構成、ストレージ構成、またはホットスワップ構成のうちの1つ以上を定義する構成オブジェクト構造を含むものである、請求項14に記載の少なくとも1つのコンピュータ可読記憶媒体。
【請求項17】
前記バッテリ状態は、バッテリ残量充電状態が、通常の閾値未満であり、低減メモリスタートアップ閾値よりも大きいことを示すものであり、前記マップは、低バッテリマッピングスキームに関連付けられている、請求項14に記載の少なくとも1つのコンピュータ可読記憶媒体。
【請求項18】
前記命令は、実行されるときに、前記コンピュータシステムに
設定可能な最小メモリスタートアップモード中にテレメトリデータを収集することであって、前記テレメトリデータは、前記第1のランクセット及び前記第2のランクセットに関連付けられている、収集することと、
前記バッテリ状態の変化を検出することと、
前記変化に応答して、前記第2のランクセットを有効にすることと、
前記変化に応答して、前記第2のバンクセットをマップに組み込むことと、をさらに行わせる、請求項14~17のいずれか一項に記載の少なくとも1つのコンピュータ可読記憶媒体。
【請求項19】
前記変化は、バッテリ残量充電状態が通常の閾値よりも大きいことを示すものである、請求項18に記載の少なくとも1つのコンピュータ可読記憶媒体。
【請求項20】
ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第1のランクセットを有効にすることと、
ブートシーケンス中に、前記バッテリ状態及び前記ユーザインターフェースに基づいて、前記メモリモジュール内の第2のランクセットを無効にすることと、
システムアドレス空間と、前記第1のランクセットのうちの第1のバンクセットとの間のマップを生成することと、
前記マップから前記第1のランクセットのうちの第2のバンクセットを除外することと、を含む、方法。
【請求項21】
前記第1のバンクセットに関する書き込みアクティビティを監視することと、
前記書き込みアクティビティに基づいて、前記第1のバンクセットのうちの1つ以上のバンクにおけるリフレッシュを無効にすることと、をさらに含む、請求項20に記載の方法。
【請求項22】
前記ユーザインターフェースは、メモリプロパティ、メモリ構成、パフォーマンス構成、ユーザインターフェース要素構成、ストレージ構成、またはホットスワップ構成のうちの1つ以上を定義する構成オブジェクト構造を含むものである、請求項20に記載の方法。
【請求項23】
前記バッテリ状態は、バッテリ残量充電状態が、通常の閾値未満であり、低減メモリスタートアップ閾値よりも大きいことを示し、前記マップは、低バッテリマッピングスキームに関連付けられている、請求項20に記載の方法。
【請求項24】
設定可能な最小メモリスタートアップモード中にテレメトリデータを収集することであって、前記テレメトリデータは、前記第1のランクセット及び前記第2のランクセットに関連付けられている、収集することと、
前記バッテリ状態の変化を検出することと、
前記変化に応答して、前記第2のランクセットを有効にすることと、
前記変化に応答して、前記第2のバンクセットをマップに組み込むことと、をさらに含む、請求項20~23のいずれか一項に記載の方法。
【請求項25】
前記変化は、バッテリ残量充電状態が通常の閾値より大きいことを示す、請求項24に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2020年8月6日に出願されたインド仮特許出願第2020041033777号に対する優先権の利益を主張する。
【0002】
実施形態は、一般に、コンピュータメモリに関する。より詳細には、実施形態は、コンピューティングプラットフォーム上の効率的なサービスの品質(QoS、quality of service)のための設定可能な低減メモリスタートアップに関する。
【背景技術】
【0003】
エンドユーザからのより多くのメモリ需要の増大に伴い、最近のコンピューティングデバイス製造業者は、大量のメモリを有するラップトップ、デスクトップ、サーバシステムおよび電話などのコンピューティングデバイスを設計している。プラットフォームの物品表(BOM)コストの増加に加えて、TCOの増加(総保有コスト、例えば、使用/需要に関係なく、大型プラットフォームメモリを動作させ続けるための電力消費)、エネルギー認証の課題(例えば、SERTコンプライアンス)、大量のメモリからの欠陥の増加、メモリトレーニングに関連するボトルネックによるブート時間の遅延、全集合メモリバンクの電源オンに対するバッテリ残量要件の増加などを含む他の重要な課題が存在する。これらの課題は、クライアントデバイス(例えば、限られたバッテリ、フォームファクタを有する)とサーバ(TCO、エネルギーコンプライアンスなど)の両方において問題となることがある。
【図面の簡単な説明】
【0004】
実施形態の様々な利点は、以下の明細書および添付の特許請求の範囲を読むことによって、および以下の図面を参照することによって、当業者に明らかになるであろう:
【0005】
【
図1】一実施形態による状態マシンの一例のブロック図である。
【
図2】一実施形態によるブートフローの一例のフロー図である。
【
図3】一実施形態による動作フローの一例のフローチャートである。
【
図4】一実施形態による未使用ランクへのリフレッシュを無効にするための動作フローの一例のフローチャートである。
【
図5】一実施形態による設定可能な最小メモリスタートアップ(CMMS、configurable min-memory-startup)から通常モードへの動作フローの一例の図示である。
【
図6】一実施形態による性能向上したコンピューティングシステムにおけるBIOS(basic input output system)を動作させる方法の一例のフローチャートである。
【
図7】性能向上したコンピューティングシステムにおけるメモリコントローラを動作させる方法の一例のフローチャートである。
【
図8】一実施形態による通常モードに移行する方法の一例のフローチャートである。
【
図9】一実施形態による性能向上したコンピューティングシステムの一例のブロック図である。
【
図10】一実施形態による半導体装置の一例の図示である。
【
図11】一実施形態によるプロセッサの一例のブロック図である。
【
図12】一実施形態による、マルチプロセッサベースのコンピューティングシステムの一例のブロック図である。
【発明を実施するための形態】
【0006】
既存のソリューションは、アクティブメモリの使用量に関係なく、システムブートまたはアクティブ動作の間、システムメモリ全体を完全に機能するモードに維持することがある。自己リフレッシュモードは、システムが低電力状態に移行するときに広く使用されている唯一の省電力モードである。既存のソリューションは、効率的な最小メモリ管理を欠いており、それにより、TCOの増加、エネルギー認証の問題、100万機会当たりの欠陥数(DPM、defects per million)の増加をもたらす。従って、品質が低下し、ブートが遅くなり、モバイルデバイス上の限られたバッテリ残量の使用が効率的でなくなることがある。
【0007】
実施形態は、クライアントデバイス、IoT(Internet of Things)コンポーネント、エッジデバイス、およびクラウド構成にわたる大きなメモリの上記の課題に対処するコンピューティングプラットフォーム上で、効率的なQoS(quality of service)のための設定可能な最小メモリスタートアップ(CMMS)を提案する。結果として、重要なプラットフォームの改善が顧客/パートナーに対してより良いTCOと同様に提供される。
【0008】
実施形態は、メモリが、すべてのシナリオにおいて、すべてのエンドユーザによって最大限に使用されるかどうかの問題に取り組む。一部のシナリオでは、メモリを完全に使用するユーザはごくわずかである(例えば、メモリが大半の時間で完全に使用されないことがある)。
【0009】
CMMS技術には、以下を伴う。
【0010】
- CMMSモードを設定/カスタマイズするためのユーザインターフェースを提供するシステムOS(オペレーティングシステム)の設定またはシステム管理の設定。システム管理者/ユーザは、限られたバッテリ残量しきい値での効率的なプラットフォームブートのために、ブート中またはポストブートでオンにされるメモリバンク構成の選択を提供してもよい。
【0011】
- バッテリ残量充電状態および現在の充電率を感知して、デバイスを損なうことなく、CMMSモードにおいてデバイスを電源オンするためにできるだけ早くオンにされる最小プラットフォームメモリ構成ブロックを決定する能力を有する電力送達システム(PMIC/電力管理集積回路、Punit)。
【0012】
- リブート時に、モバイルデバイスバッテリを監視する初期UEFI(Unified Extensible Firmware Interface)プラットフォーム初期化(PI、platform initialization)ドライバ。
【0013】
バッテリが正常であれば、本技術は、すべてのハードウェアをスタートアップし、メインのモバイルOSが呼び出すことがある。
【0014】
<正常のバッテリの場合は、EFI_MIN_MEMORY_STARTUP_POLICYを読み出し、対応する構成ビットが主張されている要素のみを通電する。
【0015】
- UEFIは、CMMS モードを認識しており、プラットフォーム内の適切なメモリリソースの可用性をドライバに公開する。したがって、FW(ファームウェア)からUI(ユーザインターフェース)までの全システムスタックは、CMMSモードになるように動的に調整される。
【0016】
- リブートを必要とせず、十分なバッテリと熱の閾値が満たされれば、CMMSモードから完全な機能とデバイスサポートを有するメインOS動作モードへのシームレスな動的移行をサポートする。
【0017】
以下は、初期環境で実行中の例示の設定である。
バッテリ<クリティカルで、バッテリが充電されていない場合は、シャットダウンする。
バッテリ<クリティカルで、バッテリ充電中である場合、充電モードにブートする。
バッテリ>CMMS_requirementである場合、MPS(Min Power Startup)モードにブートする。
バッテリ>normal_boot_requirementの場合、通常モードにブートする。
【0018】
CMMS技術は、様々なCMMSプロファイルのためのUEFI BIOS使用パターン発見的手法に基づいた迅速なブートをサポートするために、キーメモリバンクを識別するシステムを伴う。
【0019】
CMMS技術は、電力がより重要であり、余分なメモリがクリティカルでない使用例に対して最大限の電力節約を提供し、バッテリ寿命を延ばす。また、CMMS技術は、バッテリ低下シナリオ下でバッテリ寿命の延長を可能にする。さらに、CMMS技術は、エネルギー認証を取得するために使用されてもよい。さらなる利点には、全体的に改善されたTCO節約、より高速なブート、最適なブート、およびシステムの要求に基づくスケーラブルなメモリ構成(例えば、CMMSから通常モードへの動的スイッチ)、CMMSモードにあることによって訂正不可能なエラーを有するメモリのホットスワップを可能にすること(例えば、特定のバンクの使用を回避すること)などが含まれる。
【0020】
図1は、提案されたCMMSモードのためのシステムアーキテクチャおよび状態マシン21を示す。図示された例では、電源オンイベントは、システムをオフ状態20から、UEFIがバッテリ残量レベルを決定する第1の状態22に移行させる。バッテリ残量レベルがクリティカル閾値未満である場合、システムは、第1の状態22からオフ状態20に戻る。バッテリ残量レベルが、クリティカル閾値よりも大きいが、通常のブート閾値未満であり、最小電力スタートアップ閾値よりも大きい場合、システムは、第1の状態22から、CMMS構成に対応する第2の状態24に移行する(例えば、PMIC/Punitは、レールへの電力を自動的にオフにする)。バッテリレベルがクリティカルしきい値と通常のブートしきい値の両方を超えるときに、システムは第2の状態24から通常のブート構成に対応する第3の状態26に移行する。また、システムは、バッテリレベルがクリティカルしきい値と通常のブートしきい値の両方を超えることに応答して、第1の状態22から第3の状態26に移行してもよい。一実施形態では、バッテリレベルがクリティカル閾値を下回ると、システムが第2の状態24または第3の状態26からオフ状態20に移行するようにする。
【0021】
図2は、高レベルブート動作フロー30(例えば、中間ブロックが新しく有利な機能性を表す)を示す。図示された例では、電源オンイベントがブロック32で発生し、ここで、BIOSは制御を取得し、ブロック34で最小電力モードを開始する。一実施形態では、ブロック36は、メモリマップBIOS使用を数個のセグメントに制限する。追加的に、ブロック38は、未使用のメモリセグメントをPASR(部分アレイ自己リフレッシュ、partial array self-refresh)モードに維持するか、リフレッシュを無効にするか、又は未使用のメモリセグメントを完全に電源オフにしてもよい。ブロック40は、ブート前フェーズの残りの部分を継続してもよく、ここで、ブロック42は、充電OSに対してブートする。
【0022】
図3は、ユーザインターフェースからCMMSモードのためのUEFI構成プラットフォームPMICへのプロセス50を示す。図示の例では、ブロック52で、サーマル及び電力スタートアップ構成設定が確立される。図示されたブロック54は、サーミスタ値をバッテリおよび充電ユニット58に結合されたPMICブロック56と交換することを伴うことがあるサーマルおよび電力管理を行う。ブロック54は、サーマル「クレジット」(例えば、バースト無効)メッセージをPunitブロック60に送信する。一実施形態では、ブロック60は、ブートモードに基づいて1つまたは複数のIP (知的財産)ブロック(例えば、機能ドメイン)に電力を供給し、特定の周波数で動作するようにIPブロックを設定する。Punitブロック60は、電力管理ブロック62に電力状態メッセージを送信することができる。
【0023】
一例では、PMICブロック56は、UEFI64(64a~64g)とブートモード情報を交換する。UEFIブロック64aは、バッテリ残量レベルを決定し、ここで、バッテリレベルが通常の動作モードに対して十分であるかどうかについてUEFIブロック64bで判定され得る。もしそうならば、UEFIブロック64cは、ブートモードを通常のフル電力モードに設定し、UEFIブロック64dは、適切なIPブロック構成(例えば、選択されたブートモードに基づいて)をOSおよび/またはドライバに公開する。UEFIブロック64bが、バッテリレベルが通常の動作モードに対して不十分であると判定した場合、UEFIブロック64eは、バッテリレベルがCMMSスタートアップに十分であるかどうかを判定する。バッテリレベルがCMMSスタートアップに対して十分である場合、UEFIブロック64fはブートモードをCMMSに設定し、フローはUEFIブロック64dに進行する。UEFIブロック64eが、バッテリレベルがCMMSスタートアップに対して不十分であると判定した場合、UEFIブロック64gは、充電OSへのブートをしてもよい(boot to charging OS)。
【0024】
図5は、CMMSモード対通常モードにおけるブートフロー70の例を示し、CMMSから通常モードへの移行を示す。図示された例では、プリEFI初期化72は、バッテリ残量と最小電力ポリシーを使用する。加えて、一時的(transient)システムロード(TSL)およびランタイム(RT)シーケンス74は、最終的なOSブートローダ、最終的なOS環境、およびOS有りのアプリケーションを実行する。
【0025】
例示のCMMSモードは、以下の電力節約構成を伴う:
【0026】
未使用のランク/バンクへのリフレッシュを無効にする(
図4)
【0027】
MRC(メモリ参照コード、Memory Reference Code、たとえば、メモリ初期化コード)は、未使用のランクへのリフレッシュを無効にしてもよい(例えば、未使用のランクを訓練するが、リフレッシュは無効化を維持する)。未使用のランクはブートには使用されないため、リフレッシュはOSに引き渡されたときにのみ有効にされることがある。この機能性は、メモリコントローラ(MC)の変更によっても達成することができる。例えば、MCは各バンク/ランクへのトラフィックを監視する。JEDEC (合同電子デバイス委員会、Joint Electron Device Engineering Council)によれば、バンクは、DRAM(ダイナミックランダムアクセスメモリ、dynamic random access memory)チップ内のメモリのブロックであり、ランクは、モジュール上のメモリのブロックである(例えば、以前は両面または両バンクモジュールと呼ばれていたものは、現在は両ランクモジュールと呼ばれる)。バンク/ランクが単一の書き込みコマンドに遭遇しなかった場合、有効なコンテンツがないため、MCは、そのようなバンク/ランクにリフレッシュを発行しないことにより、電力を知的に節約してもよい。
【0028】
メモリコントローラ(MC)におけるスケジューラロジックの変更は、バンクおよび/またはランクへの書き込みの追跡を維持し、バンクまたはランクが書き込みに遭遇した場合にのみリフレッシュおよび自己リフレッシュを有効にしてもよい。既存のソリューションでは、ランクレベルでリフレッシュを有効/無効にするためのSW(ソフトウェア)制御が利用可能である。提案された変更により、MCは、バンクの粒度でリフレッシュを制御することを決定して、より多くの電力節約(例えば、システム実装は、低バッテリ/高電力節約シナリオと通常のブート/実行シナリオの2つの異なるメモリマッピングスキームを採用することができる)を提供することができる。
【0029】
電力節約メモリマップスキームは、ランクの少数のバンクのみからのDRAM空間の連続するブロックをシステムアドレス空間にマッピングすることを選択してもよい。この場合、メモリコントローラは、システム空間にマップされた少数のバンクのみへの「書き込み」(書き込み動作)をスケジュールする。他の全てのバンクはすべてアイドルであり、これらのバンクに関しては、書き込みが発生していないであろう。修正されたメモリコントローラスケジューラロジックは、書き込みがなかったバンクへのリフレッシュを無効にする。したがって、ランクが積極的に使用されている場合には、既存のソリューションよりも多くの電力が節約される。つまり、より多くの電力節約が、リフレッシュされないランク内のバンクのサブセットに由来する。
【0030】
電力制御電子スイッチが、DIMMまたはプラットフォーム内の個々のランクへの電力供給経路に追加されてもよい。このスイッチは、SW(例えば、BIOS)がDIMM(デュアルインラインメモリモジュール、dual inline memory module)またはDIMM全体(プラットフォーム実装によってサポートされている場合)内の未使用のランクへの電力を完全に無効にすることを可能にする。
【0031】
ランクまたはDIMMの電源を完全に切る。
【0032】
メモリダウン構成の場合、DRAMデバイス(したがってランク)は、(例えば、プラットフォーム制御を使用して)電源オフされてもよい。DIMMの場合、個々のランクに独立した電力制御を提供するために、DIMM仕様に対して変更がなされてもよい。プラットフォーム変更は、個々のDIMMに対する電力を独立して制御して、DIMMレベルの電源オフを行うようになされてもよい。このようなアプローチのマイナス面は、電源オン時に、DRAMを初期化するためにJEDEC初期化シーケンスが必要とされることがあるということであり得る(例えば、DIMMタイプに基づいて、いくつかの最小トレーニングが行われることがある)。したがって、このようなアプローチは、より多くのレイテンシを伴うことがある。高レイテンシを緩和する潜在的なオプションの1つは、初期化ベクトルをキャッシュし、構成モード/プロファイルにわたってキャッシュされたベクトルを再利用することである。
【0033】
プラットフォームとポリシー情報を共有するために、以下のポリシーオブジェクトが定義されてもよい。
【0034】
【0035】
【0036】
一実施形態では、フルOSは、UEFI->SetVariable()呼び出しを最終的に実行するフレンドリUI(
図1)を介して、上記の構成を公開して、低減性能リブート時に、CMMSドライバは、このポリシーを使用して、どのハードウェアに通電するか、およびユーザインターフェースをどのようにパラメータ化するかを決定する。
【0037】
より詳細には、
図4は、電源オンおよびBIOS開始がブロック82で発生する方法80を示す。一実施形態では、ブロック84は、バッテリ状態をチェックし、ここで、バッテリ状態がクリティカルレベルを示すかどうかについて、ブロック86で判定がなされてもよい。バッテリ状態がクリティカルレベルを示さない場合、図示されたブロック88は、フル性能構成で通常のブートに進行する。さもなければ、ブロック90は、複数のランクまたは複数のDIMMのいずれかが有るかどうかを判定してもよい。もしそうならば、ブロック92は、設定されたポリシー(例えば、ランクごとに1つのDIMMのみ)に基づいて、選択的DIMM/ランク有効化を有効にする。ブロック92はまた、他のランク/DIMMへの電力を無効にしてもよい。図示されたブロック94は、BIOSを使用して、DDRトレーニングおよび/またはメモリ初期化を行う。ブロック90で複数のランクも複数のDIMMもないと判定された場合、方法80はブロック92をバイパスし、ブロック94に直接進行することができる。
【0038】
ブロック96は、可能な限り少数のバンクに連続的にメモリをマッピングすることを提供してもよい。一実施形態では、ブロック98は、通常のメモリ動作を有効にし、メモリコントローラにおいてリフレッシュする。BIOSが実行されると、ブロック100は、充電OSおよびバッテリクリティカルソフトウェアに制御を渡す。加えて、メモリコントローラは、ブロック102で、バンクへの書き込みを監視し、ブロック104で、監視されたバンクに関して書き込みが発生したかどうかを判定する。そうであれば、ブロック106で、メモリコントローラは、データ書き込みに遭遇したバンクへのリフレッシュを有効にする。次に、図示された方法80はブロック102に戻る。ブロック104において、監視されたバンクに関して書き込みが発生していないと判定された場合、方法80はブロック106をバイパスし、直接ブロック102に進行してもよい。従来のシステムには存在しないブロック92、96、102、104および106は、顕著な性能上の利点を提供する。
【0039】
図6は、性能向上したコンピューティングシステムにおいてBIOSを動作させる方法110を示す。方法110は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、プログラマブルROM(PROM)、ファームウェア、フラッシュメモリなどの機械的又はコンピュータ可読記憶媒体、例えば、プログラマブル論理アレイ(PLA)、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブル論理デバイス(CPLD)などの設定可能なロジック、例えば、特定用途向け集積回路(ASIC)、相補型金属酸化物半導体(CMOS)、トランジスタ-トランジスタロジック(TTL)技術などの回路技術を使用した固定機能性ロジックハードウェア、又はこれらの任意の組み合わせに記憶されたロジック命令のセットとしての1つ以上のモジュールで実装されてもよい。
【0040】
例えば、本方法で示される動作を実行するためのコンピュータプログラムコードは、JAVA(登録商標)、SMALLTALK(登録商標)、C++などのオブジェクト指向プログラミング言語と、Cプログラミング言語、類似のプログラミング言語などの従来の手続き型プログラミング言語とを含む、1つ以上のプログラミング言語の任意の組み合わせで書かれてもよい。追加的に、論理命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、状態設定データ、集積回路の構成データ、電子回路および/またはハードウェアに固有の他の構造コンポーネント(例えば、ホストプロセッサ、中央処理装置/CPU、マイクロコントローラなど)をパーソナライズする状態情報を含んでもよい。
【0041】
図示された処理ブロック112は、ブートシーケンス中に、バッテリ状態およびユーザインターフェースに基づいて、メモリモジュール内の第1のランクセットを有効にすることを提供する。
一例では、ブロック114は、ブートシーケンス中に、バッテリ状態およびユーザインターフェースに基づいて、メモリモジュール内の第2のランクセットを無効にする。一実施形態では、バッテリ状態は、バッテリ残量充電状態が通常の閾値未満であり、低減(例えば、最小)メモリスタートアップ閾値よりも大きいことを示す。一例では、ユーザインターフェースは、メモリプロパティ、メモリ構成、パフォーマンス構成、UI要素構成、ストレージ構成、またはホットスワップ構成のうちの1つ以上を定義する構成オブジェクト構造を含む。図示された処理ブロック116はまた、システムアドレス空間と第1のランクセットのうちの第1のバンクセットとの間のマップを生成し、ブロック118は、マップから第1のランクセットのうちの第2のバンクセットを除外する。一実施形態では、マップは、低バッテリマッピングスキームに関連付けられている。
【0042】
図7は、性能向上したコンピューティングシステムにおいてメモリコントローラを動作させる方法120を示す。方法120は、RAM、ROM、PROM、ファームウェア、フラッシュメモリなどの機械的又はコンピュータ可読記憶媒体、例えば、PLA、FPGA、CPLDなどの設定可能なロジック、例えば、ASIC、CMOS、TTL技術などの回路技術を使用した固定機能性ロジックハードウェア、又はこれらの任意の組み合わせに記憶されたロジック命令のセットとしての1つ以上のモジュールで実装されてもよい。図示されたブロック122は、第1のバンクセットに関する書き込みアクティビティを監視することを提供し、ブロック124は、書き込みアクティビティに基づいて、第1のバンクセットのうちの1つ以上のバンクにおけるリフレッシュを無効にする。
【0043】
図8は、通常モードに移行する方法130を示す。方法130は、RAM、ROM、PROM、ファームウェア、フラッシュメモリなどの機械的又はコンピュータ可読記憶媒体、例えば、PLA、FPGA、CPLDなどの設定可能なロジック、例えば、ASIC、CMOS、TTL技術などの回路技術を使用した固定機能性ロジックハードウェア、又はこれらの任意の組み合わせに記憶されたロジック命令のセットとしての1つ以上のモジュールで実装されてもよい。
【0044】
図示された処理ブロック132は、バッテリ状態の変化を検出する。また、ブロック132は、CMMSモード中のテレメトリ(例えば、使用)データを収集することを提供してもよく、ここで、テレメトリデータは、第1のランクセットおよび第2のランクセットに関連付けられている。このようなアプローチは、将来の拡張の開発をサポートすることによって、スケーラビリティをさらに拡張することがある。一実施形態では、ブロック134は、変化に応答して、第2のランクセットを有効にし、ブロック136は、変化に応答して、第2のバンクセットをマップに組み込む。実施形態において、この変化は、バッテリ残量充電状態が通常の閾値よりも大きいことを示す。
【0045】
図9は、実行可能なプログラム命令170を含むコンピューティングシステム150を示し、命令170は、ホストプロセッサ152、グラフィックスプロセッサ160、または入出力モジュール(IO)158のうちの1つ以上によって実行されるときに、コンピューティングシステム150に、すでに説明した方法110(
図6)、方法120(
図7)、および/または方法130(
図8)のうちの1つ以上の態様を行わせる。一実施形態では、命令170は、メモリモジュール156(例えば、DIMM)および/またはマスストレージ168から取り出される。追加的に、グラフィックスプロセッサ160、ホストプロセッサ152および/またはIOモジュール158は、システムオンチップ(SoC)162に組み込まれ、システムオンチップ(SoC)162は、ディスプレイ164および/またはネットワークコントローラ166(無線、有線)にも結合される。また、図示されたシステム150は、バッテリ157を含む。
【0046】
図10は、半導体パッケージ装置172を示す。図示された装置172は、1つ以上の基板174(例えば、シリコン、サファイア、ガリウムヒ素)および基板174に結合されたロジック176(例えば、トランジスタアレイおよび他の集積回路/ICコンポーネント)を含む。ロジック176は、少なくとも部分的に、設定可能なロジックまたは固定機能性ロジックハードウェアに実装されてもよい。一例では、ロジック176は、すでに説明した方法110(
図6)、方法120(
図7)、および/または方法130(
図8)のうちの1つ以上の態様を実装する。
【0047】
一例では、ロジック176は、基板174内に位置決めされる(例えば、埋め込まれる)トランジスタチャネル領域を含む。したがって、ロジック176と基板174との間のインターフェースは、階段接合でなくてもよい。ロジック176はまた、基板174の初期ウエハ上に成長されるエピタキシャル層を含むと考えられてもよい。
【0048】
図11は、一実施形態によるプロセッサコア200を図示する。プロセッサコア200は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、またはコードを実行するための他のデバイスなど、任意のタイプのプロセッサのコアであってもよい。
図11には1つのプロセッサコア200のみが図示されているが、代替的に、プロセッサ要素は、
図11に図示された複数のプロセッサコア200を含んでもよい。プロセッサコア200は、シングルスレッドコアであってもよく、少なくとも1つの実施形態では、プロセッサコア200は、コア当たり複数のハードウェアスレッドコンテキスト(または「論理プロセッサ」)を含んでもよいという点で、マルチスレッド型であってもよい。
【0049】
また、
図11は、プロセッサコア200に結合されたメモリ270を図示する。メモリ270は、当業者に周知であるか、またはそうでなければ利用可能であるような、広範な種類のメモリ(メモリ階層の種々の層を含む)のいずれであってもよい。メモリ270は、プロセッサコア200によって実行される1つ以上のコード213命令を含んでもよく、コード213は、すでに説明した方法110(
図6)、方法120(
図7)、および/または方法130(
図8)のうちの1つ以上の態様を実装してもよい。プロセッサコア200は、コード213によって示されるプログラムの命令シーケンスに従う。各命令は、フロントエンド部分210に入り、1つ以上のデコーダ220によって処理されてもよい。デコーダ220は、その出力として、所定のフォーマットの固定幅マイクロオペレーションのようなマイクロオペレーションを生成してもよいし、オリジナルのコード命令を反映する他の命令、マイクロ命令、または制御信号を生成してもよい。また、図示されたフロントエンド部分210は、レジスタリネームロジック225とスケジューリングロジック230を含み、これらは一般にリソースを割り当て、実行のための変換命令に対応するオペレーションを待ち行列に入れる。
【0050】
プロセッサコア200は、実行ユニット255-1~255-Nのセットを有する実行ロジック250を含むように示されている。いくつかの実施形態は、特定の機能または機能セットに専用の多数の実行ユニットを含んでもよい。他の実施形態は、特定の機能を行うことができる1つの実行ユニットのみまたは1つの実行ユニットを含んでもよい。図示された実行ロジック250は、コード命令によって指定されたオペレーションを実行する。
【0051】
コード命令によって指定されたオペレーションの実行の完了後、バックエンドロジック260は、コード213の命令をリタイヤさせる。一実施形態では、プロセッサコア200は、順序外れの実行を可能にするが、順序に沿った命令のリタイアメントを必要とする。リタイアメントロジック265は、当業者に公知の種々の形態(例えば、リオーダバッファなど)をとることができる。このようにして、プロセッサコア200は、コード213の実行中に、少なくとも、デコーダによって生成される出力、レジスタリネームロジック225によって利用されるハードウェアレジスタおよびテーブル、ならびに実行ロジック250によって修正される任意のレジスタ(図示せず)に関して、変換される。
【0052】
図11には示されていないが、処理要素は、プロセッサコア200を有するチップ上の他の要素を含んでもよい。例えば、処理要素は、プロセッサコア200と共にメモリ制御ロジックを含んでもよい。処理要素は、I/O制御ロジックを含んでもよく、および/またはメモリ制御ロジックと一体化されたI/O制御ロジックを含んでもよい。処理要素はまた、1つ以上のキャッシュを含んでもよい。
【0053】
ここで、
図12を参照すると、一実施形態によるコンピューティングシステム1000の実施形態のブロック図が示されている。
図12には、第1の処理要素1070および第2の処理要素1080を含むマルチプロセッサシステム1000が示されている。2つの処理要素1070および1080が示されているが、システム1000の実施形態は、そのような処理要素を1つのみ含んでもよいことが理解されるべきである。
【0054】
システム1000は、ポイントツーポイント相互接続システムとして図示されており、第1の処理要素1070および第2の処理要素1080は、ポイントツーポイント相互接続1050を介して結合されている。
図12に示された相互接続のいずれかまたは全ては、ポイントツーポイント相互接続ではなくマルチドロップバスとして実装されてもよいと理解されたい。
【0055】
図12に示すように、処理要素1070および1080の各々は、第1および第2のプロセッサコア(すなわち、プロセッサコア1074aおよび1074b、ならびにプロセッサコア1084aおよび1084b)を含む、マルチコアプロセッサであってもよい。そのようなコア1074a、1074b、1084a、1084bは、
図11に関連して上述したものと同様の方式で命令コードを実行するように構成されてもよい。
【0056】
各処理要素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)、または他のレベルのキャッシュなどの1つ以上の中間レベルキャッシュ、ラストレベルキャッシュ(LLC)、および/またはそれらの組み合わせを含んでもよい。
【0057】
2つの処理要素1070、1080のみで示されるが、本実施形態の範囲は、それに限定されないことが理解されるべきである。他の実施形態では、1つ以上の追加の処理要素が、所与のプロセッサ内にあってもよい。代替的には、処理要素1070、1080の1つ以上は、プロセッサ以外の要素、アクセラレータ、フィールドプログラマブルゲートアレイなどであってもよい。例えば、追加の処理要素は、第1のプロセッサ1070と同じである追加のプロセッサ、第1のプロセッサ1070に対して不均一または非対称である追加のプロセッサ、アクセラレータ(例えば、グラフィックスアクセラレータまたはデジタル信号処理(DSP)ユニット)、フィールドプログラマブルゲートアレイ、または任意の他の処理要素を含んでもよい。処理要素1070、1080の間には、アーキテクチャ、マイクロアーキテクチャ、サーマル、電力消費特性などを含むメトリックのスペクトルに関して、様々な相違があり得る。これらの相違は、効果的に、処理要素1070、1080間の非対称性および不均一性として現れ得る。少なくとも1つの実施形態について、種々の処理要素1070、1080は、同一のダイパッケージ内に存在してもよい。
【0058】
第1の処理要素1070は、メモリコントローラ論理(MC)1072およびポイントツーポイント(P-P)インターフェース1076および1078をさらに含んでもよい。同様に、第2の処理要素1080は、MC1082と、P-Pインターフェース1086および1088と、を含んでもよい。
図12に示すように、MC1072および1082は、プロセッサをそれぞれのメモリ、すなわち、メモリ1032およびメモリ1034に結合し、これらは、それぞれのプロセッサにローカルに取り付けられたメインメモリの一部分であってもよい。MC1072および1082は、処理要素1070、1080に統合されて図示されているが、代替的な実施形態では、MC論理は、その中に統合されるのではなく、処理要素1070、1080の外側のディスクリートロジックであってもよい。
【0059】
第1の処理要素1070および第2の処理要素1080は、それぞれP-P相互接続1076,1086を介して、I/Oサブシステム1090に結合されてもよい。
図12に示すように、I/Oサブシステム1090は、P-Pインターフェース1094および1098を含む。さらに、I/Oサブシステム1090は、I/Oサブシステム1090を高性能グラフィックスエンジン1038と結合するためのインターフェース1092を含む。一実施形態では、バス1049は、グラフィックスエンジン1038をI/Oサブシステム1090に結合するために使用されてもよい。代替的に、ポイントツーポイント相互接続が、これらのコンポーネントを結合してもよい。
【0060】
次に、I/Oサブシステム1090は、インターフェース1096を介して第1のバス1016に結合されてもよい。一実施形態では、第1のバス1016は、周辺コンポーネント相互接続(PCI)バス、若しくはPCI Expressバス、または別の第3世代I/O相互接続バスのようなバスであってもよいが、実施形態の範囲はそれに限定されない。
【0061】
図12に示すように、種々のI/Oデバイス1014(例えば、バイオメトリクススキャナ、スピーカ、カメラ、センサ)は、第1のバス1016を第2のバス1020に結合し得るバスブリッジ1018と共に、第1のバス1016に結合されてもよい。一実施形態では、第2のバス1020は、ローピンカウント(LPC)バスであってもよい。一実施形態では、例えば、キーボード/マウス1012、通信デバイス1026、および、ディスクドライブまたはコード1030を含み得る他のマスストレージデバイスのようなデータストレージユニット1019を含む、種々のデバイスが、第2のバス1020に結合され得る。図示されたコード1030は、すでに説明した方法110(
図6)、方法120(
図7)、および/または方法130(
図8)のうちの1つ以上の態様を実装してもよい。さらに、オーディオI/O1024は、第2のバス1020に結合されてもよく、バッテリ1010は、コンピューティングシステム1000に電力を供給してもよい。
【0062】
他の実施形態が企図されることに留意する。例えば、
図12のポイントツーポイントアーキテクチャの代わりに、システムは、マルチドロップバスまたは他のそのような通信トポロジを実装してもよい。また、
図12の要素は、代替的に、
図12に示されているよりも多くの、またはより少ない集積チップを使用して分割されてもよい。
【0063】
追加の注記および例:
【0064】
例1は、コンピューティングシステムであって、ネットワークコントローラと、ネットワークコントローラに結合されたプロセッサと、プロセッサに結合されたメモリモジュールと、を含み、メモリモジュールは、命令のセットを含み、命令のセットは、プロセッサによって実行されるときに、プロセッサに、ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第1のランクセットを有効にすることと、ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第2のランクセットを無効にすることと、システムアドレス空間と、第1のランクセットのうちの第1のバンクセットとの間のマップを生成することと、マップから第1のランクセットのうちの第2のバンクセットを除外することと、を行わせる、コンピューティングシステムを含む。
【0065】
例2は、メモリコントローラをさらに含み、命令は、メモリコントローラによって実行されるときに、メモリコントローラに、第1のバンクセットに関する書き込みアクティビティを監視することと、書き込みアクティビティに基づいて、第1のバンクセットのうちの1つ以上のバンクにおけるリフレッシュを無効にすることと、を行わせる、例1に記載のコンピューティングシステムを含む。
【0066】
実施例3は、ユーザインターフェースは、メモリプロパティ、メモリ構成、パフォーマンス構成、ユーザインターフェース要素構成、ストレージ構成、またはホットスワップ構成のうちの1つ以上を定義する構成オブジェクト構造を含むものである、例1に記載のコンピューティングシステムを含む。
【0067】
実施例4は、バッテリ状態は、バッテリ残量充電状態が、通常の閾値未満であり、低減メモリスタートアップ閾値よりも大きいことを示すものであり、マップは、低バッテリマッピングスキームに関連付けられている、例1に記載のコンピューティングシステムを含む。
【0068】
実施例5は、命令は、プロセッサによって実行されるときに、プロセッサに、設定可能な最小メモリスタートアップモード中にテレメトリデータを収集することであって、テレメトリデータは、第1のランクセット及び第2のランクセットに関連付けられている、収集することと、バッテリ状態の変化を検出することと、変化に応答して、第2のランクセットを有効にすることと、変化に応答して、第2のバンクセットをマップに組み込むことと、をさらに行わせる、例1~4のいずれか1つに記載のコンピューティングシステムを含む。
【0069】
例6は、変化は、バッテリ残量充電状態が通常の閾値よりも大きいことを示すものである、例5に記載のコンピューティングシステムを含む。
【0070】
実施例7は、半導体装置であって、1つ以上の基板と、1つ以上の基板に結合されたロジックと、を含み、ロジックは、設定可能な論理または固定機能性ハードウェア論理のうちの1つ以上において少なくとも部分的に実装され、1つ以上の基板に結合されたロジックは、ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第1のランクセットを有効にすることと、ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第2のランクセットを無効にすることと、システムアドレス空間と、第1のランクセットのうちの第1のバンクセットとの間のマップを生成することと、マップから第1のランクセットのうちの第2のバンクセットを除外することと、を行う、装置を含む。
【0071】
例8は、1つ以上の基板に結合されたロジックは、第1のバンクセットに関する書き込みアクティビティを監視することと、書き込みアクティビティに基づいて、第1のバンクセットのうちの1つ以上のバンクにおけるリフレッシュを無効にすることと、を行う、例7に記載の装置を含む。
【0072】
例9は、ユーザインターフェースは、メモリプロパティ、メモリ構成、パフォーマンス構成、ユーザインターフェース要素構成、ストレージ構成、またはホットスワップ構成のうちの1つ以上を定義する構成オブジェクト構造を含むものである、例7に記載の装置を含む。
【0073】
例10は、バッテリ状態は、バッテリ残量充電状態が、通常の閾値未満であり、低減メモリスタートアップ閾値よりも大きいことを示すものであり、マップは、低バッテリマッピングスキームに関連付けられている、例7に記載の装置を含む。
【0074】
例11は、1つ以上の基板に結合されたロジックは、設定可能な最小メモリスタートアップモード中にテレメトリデータを収集することであって、テレメトリデータは、第1のランクセット及び第2のランクセットに関連付けられている、収集することと、バッテリ状態の変化を検出することと、変化に応答して、第2のランクセットを有効にすることと、変化に応答して、第2のバンクセットをマップに組み込むことと、を行う、例7~10のいずれか1つに記載の装置を含む。
【0075】
例12は、変化は、バッテリ残量充電状態が通常の閾値よりも大きいことを示すものである、例11に記載の装置を含む。
【0076】
例13は、1つ以上の基板に結合されたロジックは、1つ以上の基板内に位置決めされたトランジスタチャネル領域を含む、例7~12のいずれか1つに記載の装置を含む。
【0077】
例14は、命令のセットを含む少なくとも1つのコンピュータ可読記憶媒体であって、命令のセットは、コンピュータシステムによって実行されるときに、コンピュータシステムにブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第1のランクセットを有効にすることと、ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第2のランクセットを無効にすることと、システムアドレス空間と、第1のランクセットのうちの第1のバンクセットとの間のマップを生成することと、マップから第1のランクセットのうちの第2のバンクセットを除外することと、を行わせる、少なくとも1つのコンピュータ可読記憶媒体を含む。
【0078】
例15は、命令は、実行されるときに、コンピュータシステムに、第1のバンクセットに関する書き込みアクティビティを監視することと、書き込みアクティビティに基づいて、第1のバンクセットのうちの1つ以上のバンクにおけるリフレッシュを無効にすることと、をさらに行わせる、例14に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
【0079】
例16は、ユーザインターフェースは、メモリプロパティ、メモリ構成、パフォーマンス構成、ユーザインターフェース要素構成、ストレージ構成、またはホットスワップ構成のうちの1つ以上を定義する構成オブジェクト構造を含むものである、例14に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
【0080】
例17は、バッテリ状態は、バッテリ残量充電状態が、通常の閾値未満であり、低減メモリスタートアップ閾値よりも大きいことを示すものであり、マップは、低バッテリマッピングスキームに関連付けられている、例14に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
【0081】
例18は、命令は、実行されるときに、コンピュータシステムに設定可能な最小メモリスタートアップモード中にテレメトリデータを収集することであって、テレメトリデータは、第1のランクセット及び第2のランクセットに関連付けられている、収集することと、バッテリ状態の変化を検出することと、変化に応答して、第2のランクセットを有効にすることと、変化に応答して、第2のバンクセットをマップに組み込むことと、をさらに行わせる、例14~17のいずれか1つに記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
【0082】
例19は、変化は、バッテリ残量充電状態が通常の閾値よりも大きいことを示すものである、例18に記載の少なくとも1つのコンピュータ可読記憶媒体を含む。
【0083】
例20は、ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第1のランクセットを有効にすることと、ブートシーケンス中に、バッテリ状態及びユーザインターフェースに基づいて、メモリモジュール内の第2のランクセットを無効にすることと、システムアドレス空間と、第1のランクセットのうちの第1のバンクセットとの間のマップを生成することと、マップから第1のランクセットのうちの第2のバンクセットを除外することと、を含む、方法を含む。
【0084】
例21は、第1のバンクセットに関する書き込みアクティビティを監視することと、書き込みアクティビティに基づいて、第1のバンクセットのうちの1つ以上のバンクにおけるリフレッシュを無効にすることと、をさらに含む、例20に記載の方法を含む。
【0085】
例22は、ユーザインターフェースは、メモリプロパティ、メモリ構成、パフォーマンス構成、ユーザインターフェース要素構成、ストレージ構成、またはホットスワップ構成のうちの1つ以上を定義する構成オブジェクト構造を含むものである、例20に記載の方法を含む。
【0086】
例23は、バッテリ状態は、バッテリ残量充電状態が、通常の閾値未満であり、低減メモリスタートアップ閾値よりも大きいことを示し、マップは、低バッテリマッピングスキームに関連付けられている、例20に記載の方法を含む。
【0087】
例24は、設定可能な最小メモリスタートアップモード中にテレメトリデータを収集することであって、テレメトリデータは、第1のランクセット及び第2のランクセットに関連付けられている、収集することと、バッテリ状態の変化を検出することと、変化に応答して、第2のランクセットを有効にすることと、変化に応答して、第2のバンクセットをマップに組み込むことと、をさらに含む、例20~23のいずれか1つに記載の方法を含む。
【0088】
例25は、バッテリ残量充電状態が通常の閾値よりも大きいことを示す、例24に記載の方法を含む。
【0089】
例26は、例20~25のいずれか1つの方法を行うための手段を含む。
【0090】
実施形態は、全てのタイプの半導体集積回路(IC)チップでの使用に適用可能である。これらのICチップの例としては、プロセッサ、コントローラ、チップセットコンポーネント、プログラマブル論理アレイ(PLA)、メモリチップ、ネットワークチップ、システムオンチップ(SoC)、SSD/NANDコントローラASICなどが挙げられるが、これらに限定されない。追加的に、いくつかの図面では、信号導体線は線で表される。あるものは、より多くの構成要素信号経路を示すために、数字ラベルを有するために、多数の構成要素信号経路を示すために、および/または、一次情報フロー方向を示すために、1つ以上の端部に矢印を有するために、異なることがある。しかし、これを限定的な方式で解釈すべきではない。むしろ、回路のより容易な理解を容易にするために、1つ以上の例示的な実施形態に関連して、このような追加の詳細を使用されることがある。任意の表された信号線は、追加情報を有するかどうかにかかわらず、実際には、複数の方向に移動することができる1つ以上の信号を含んでもよいし、任意の適切なタイプの信号スキーム、例えば、差動ペア、光ファイバ線、および/またはシングルエンド線で実装されるデジタルまたはアナログ線で実装されてもよい。
【0091】
実施形態は同じものに限定されないが、例示のサイズ/モデル/値/範囲が与えられてもよい。製造技術(例えば、フォトリソグラフィー)は、時間の経過とともに成熟するので、より小さなサイズのデバイスが製造されることが期待される。追加的に、ICチップおよび他のコンポーネントへの周知の電力/接地接続は、図示および説明を簡単にするために、また実施形態の特定の態様を不明瞭にしないように、図中に示されても示されなくてもよい。さらに、アレンジメントは、実施形態を不明瞭にすることを避けるために、また、このようなブロック図のアレンジメントの実施に関する詳細が、実施形態が実施されるコンピューティングシステムに大きく依存するという事実を考慮して、ブロック図の形式で示されてもよく、すなわち、このようなものの詳細は、当業者の範囲内であるべきである。例示の実施形態を説明するために特定の詳細(例えば、回路)が記載されている場合、実施形態は、これらの特定の詳細を伴わずに、またはそれらの変更を伴って実施可能であることは当業者に明らかであるべきである。発明を実施するための形態は、よって、限定するものでなく例証するものとしてみなすこととする。
【0092】
用語「結合」は、本明細書において、問題のコンポーネント間の直接的または間接的な任意のタイプの関係を指すために使用されてもよく、電気的、機械的、流体的、光学的、電磁的、電気機械的または他の接続に適用してもよく、さらに、用語「第1」、「第2」などは、議論を容易にするためにのみ使用されてもよく、特に指示がない限り、特別な時間的または経時的意味を持たない。
【0093】
この出願及び請求項において使用されているように、用語「1つ以上」によって接合された項目のリストは、列挙された用語の任意の組み合わせを意味してもよい。例えば、「A、B又はCのうちの1つ以上」という用語は、A、B、C、A及びB、A及びC、B及びC、又はA、B及びCを意味してもよい。
【0094】
当業者は、前述の説明から、実施形態の広範な技術が種々の形態で実装可能であると理解するであろう。したがって、実施形態をその特定の例に関連して説明したが、図面、明細書、および以下の特許請求項の範囲の検討により、他の修正が当業者に明らかになるため、実施形態の真の範囲はそれほど限定されるべきではない。
【外国語明細書】