JP2008041089A - パフォーマンス・モニタリングを提供するメモリ・システム・方法 - Google Patents

パフォーマンス・モニタリングを提供するメモリ・システム・方法 Download PDF

Info

Publication number
JP2008041089A
JP2008041089A JP2007198416A JP2007198416A JP2008041089A JP 2008041089 A JP2008041089 A JP 2008041089A JP 2007198416 A JP2007198416 A JP 2007198416A JP 2007198416 A JP2007198416 A JP 2007198416A JP 2008041089 A JP2008041089 A JP 2008041089A
Authority
JP
Japan
Prior art keywords
memory
event
bus
data
array
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
JP2007198416A
Other languages
English (en)
Other versions
JP5063240B2 (ja
Inventor
Dustin J Vanstee
ダスティン・ジェイ.・ヴァンスティー
Carl E Love
カール・イー.・ラブ
Kevin C Gower
ケビン・シー.・ゴワー
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2008041089A publication Critical patent/JP2008041089A/ja
Application granted granted Critical
Publication of JP5063240B2 publication Critical patent/JP5063240B2/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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)

Abstract

【課題】メモリ・システムにおいてパフォーマンス・モニタリングシステムおよび方法を提供する。
【解決手段】メモリ・システムは、メモリ・コントローラ、複数のメモリ・デバイス、メモリ・バス、およびメモリ・ハブ・デバイスを含む。メモリ・コントローラは、メモリ・アクセス要求を受信しそれらに応答する。メモリ・ハブ・デバイスは、アドレス情報、制御情報、およびデータ情報の1つ以上を、メモリ・バスを介してメモリ・ハブ・デバイスとメモリ・コントローラとの間で転送するためのメモリ・インタフェースを含む。メモリ・ハブ・デバイスは、メモリ・デバイスに接続するメモリ・デバイス・インタフェースも含む。メモリ・ハブ・デバイスは、システム動作中の規定時間間隔に亘って、メモリ・バスの利用、メモリ・デバイスの利用、およびパフォーマンス特性の1つ以上をモニタし報告するためのパフォーマンス・モニタをさらに含む。
【選択図】図7

Description

本発明は、全般的には、コンピュータ・メモリに関し、特に、メモリ・システムにおいてパフォーマンス・モニタリングを提供することに関する。
最新の高パフォーマンス・コンピュータのメイン・メモリ・システムは、一般に、1つ以上のメモリ制御要素を介して1つ以上のプロセッサに接続されている、1つ以上のダイナミック・ランダム・アクセス・メモリ(DRAM)・デバイスで構成されている。全般的なコンピュータ・システムのパフォーマンスは、プロセッサ(類)のパフォーマンス/構成、任意のメモリ・キャッシュ(類)、入出力(I/O)サブシステム(類)、メモリ制御機能(類)の効率、メイン・メモリ・デバイス(類)、ならびにメモリの相互接続インタフェース(類)のタイプおよび構造など、コンピュータ構造の各主要要素の影響を受ける。
メモリ・システム/サブシステムの設計または構成あるいはその両方を改良することにより全般的なシステム・パフォーマンスおよびシステム密度を最大にする、改良型または新規あるいはその両方のソリューションを作り出すために当業界は基本的に継続して幅広い研究および開発努力に投資している。新しいコンピュータ・システムであれば、追加機能、高パフォーマンス化、ストレージの増大、運転費の削減等を提供するのに加えて、平均故障時間(MTBF)に関し既存のシステムを遥かに凌ぐであろうと顧客が期待するため、高可用性システムには依然としてシステム信頼性全般に関連する難題がある。他の度重なる顧客の要求がメモリ・システム設計の難題をさらに難しくしている。要求にはアップグレードの簡易化、およびシステム環境への影響(スペース、電力、および冷房など)の軽減などの項目が含まれる。
図1は、本発明と課題が共通の、特許文献1に関し、旧式の同期メモリ・モジュールを示す。図1に示されているこのメモリ・モジュールは、デュアル・インライン・メモリ・モジュール(DIMM)である。このモジュールは、同期DRAM8、バッファ・デバイス12、最適化されたピン配列、ならびに高パフォーマンス動作を促進するための相互接続および容量性デカップリングの方法からなる。この特許は、そのようなデバイスを位相ロック・ループ(PLL)として用い、該モジュール上でクロック再駆動を使用することも記載している。
図2は、本発明と課題が共通の、特許文献2に関し、バス40を介してメモリ・コントローラ14に直接(すなわちポイント・ツー・ポイント)接続されている同期メモリ・モジュール20を含み、メモリ・コントローラ14から受信するアドレス情報、データ情報、および制御情報をバッファリングし、登録し、またはそれらに基づいて動作する論理回路24(特定用途向け集積回路、すなわち”ASIC”など)をさらに含むコンピュータ・システム10を示す。メモリ・モジュール20は、メモリの初期化過程の一貫としてまたは通常の動作中に、集積回路間(I2C)制御バス34などの独立したバスによって、複数の選択可能モードまたはプログラム可能モードで動作するようにプログラムすることができる。メモリ・コントローラに直接接続されている複数のメモリ・モジュールを必要とする用途に利用する場合、この特許明細書は、モジュールをバスから電気的に切断する電界効果トランジスタ(FET)・スイッチを使用すると、その結果スタブを最小化できると記載している。
特許文献1と比較すると、特許文献2では、すべての定義関数(アドレス、コマンド、データ、存在検出等)を1台の装置に統合できることがさらに示されている。機能の統合は業界的にはありふれたことであり、これは技術の向上によって可能になる。本件の場合は、モジュール密度の増加またはモジュール機能の追加あるいはその両方が可能になる。
図3は、本発明と課題が共通の、特許文献3からのもので、従来のマルチドロップ・スタブ・バス上に最多で4つのレジスタードDIMM40を含むメモリ・システム10の略図および説明を示す。サブシステムは、メモリ・コントローラ20、外部クロック・バッファ30、レジスタードDIMM40、アドレス・バス50、制御バス60、およびアドレス・バス50およびデータ・バス70上に終端抵抗95を備えるデータ・バス70を含む。図3にはメモリ・チャネルが1つしか示されていないが、これらのモジュールを有して作られたシステムは、メモリ・コントローラからの複数の個別メモリ・チャネルを含むことが多く、各メモリ・チャネルは、所望のシステム機能またはシステム・パフォーマンスあるいはその両方を達成するために、(1つのチャネルがモジュールに実装された場合)単独で動作するか、または(2つ以上のチャネルがモジュールに実装された場合)並列に動作した。
図4は、特許文献4からのもので、同期メモリ・モジュール210およびシステム構造を示す。このシステム構造では、リピータ・ハブ320が、バス321および322を介するローカル・メモリ・デバイス301および302へのアドレス、コマンド、およびデータのローカル再駆動、(他の図および該特許明細書に記載されているように)ローカル・クロックの生成、ならびにシステム内の隣接するモジュールまたは構成要素への適切なメモリ・インタフェース信号のバス300を介する再駆動を含む。
図5は、1つ以上のプロセッサ要素および統合メモリ・コントローラ510を含む統合プロセッサ・チップ500で構成される最新のシステムを示す。図5に示される構成では、複数の独立したカスケード相互接続されているメモリ・バス506が論理的に一体となり、一致して動作し、並列バスおよび関連するデバイスを通って分散または”ストライプ化”されたデータおよびエラー検出/訂正情報を用いてより高い帯域幅で単一の独立したアクセス要求をサポートする。メモリ・コントローラ510は、4つのナロー/高速ポイント・ツー・ポイント・メモリ・バス506に接続し、各バス506は、少なくとも1つのメモリ・ハブ・デバイス504および1つ以上のメモリ・デバイス509を含みカスケード相互接続されているメモリ・サブシステム503(またはメモリ・モジュール)に、いくつかの固有のメモリ・コントローラ・インタフェース・チャネルの1つを接続している。システムの中には、メモリ・バス506のサブセットがメモリ・サブシステム503に実装された場合、さらに動作を可能にするものもある。この場合、1つ以上の実装されたメモリ・バス508が、1つのアクセス要求をサポートするために一致して動作してもよい。
図6は、関連するDRAMデバイス509に対する高速メモリ・アクセス情報の再同期、変換、および再駆動をするか、またはメモリ・システム・プロトコルに基づいて適宜メモリ・バス506のダウンストリームの情報を再駆動するか、あるいはその両方をする手段を設けるためのリンク・インタフェース604を含むメモリ・ハブ・デバイス504のブロック図を示す。この情報は、メモリ・バス506を介して、アップストリームのメモリ・ハブ・デバイス504からまたはメモリ・コントローラ510から(直接またはアップストリームのメモリ・ハブ・デバイス504を介して)、リンク・インタフェース604により受信される。メモリ・デバイス・データ・インタフェース615は、メモリ・デバイス509に対するテクノロジ固有のデータ・インタフェースを管理し、双方向メモリ・デバイス・データ・バス608を制御する。メモリ・ハブ制御部613は、メモリ・デバイス509のテクノロジに固有の(ランク0のメモリ・デバイス501の)アドレスおよび制御バス614または(ランク1のメモリ・デバイス616の)アドレスおよび制御バス614’を応答可能に駆動し、読取りデータ・フロー・セレクタ607および書込みデータ・フロー・セレクタ610に指示することにより、アクセス要求パケットに応答する。
図6のリンク・インタフェース604は、パケットを復号し、メモリ・ハブ・デバイス504に向けられているアドレス情報およびコマンド情報をメモリ・ハブ制御部613に向けて送る。リンク・インタフェース604からのメモリ書込みデータについては、書込みデータ・キュー611に一時的に格納するか、または書込みテータ・フロー・セレクタ610および内部バス612を介してメモリ・デバイス509に向けて直接駆動し、次に、内部バス609およびメモリ・デバイス・データ・インタフェース615を介してメモリ・デバイス・データ・バス608に送信することができる。メモリ・デバイス(単数または複数)509からのメモリ読取りデータについては、読取りデータ・キュー606で待ち行列に入れるか、または内部バス605および読み取りデータ・セレクタ607を介してリンク・インタフェース604に直接転送し、アップストリーム・バス506上を読取り応答パケットとして転送する。
米国特許第5,513,135号 米国特許第6,173,382号 米国特許第6,510,100号 米国特許第6,587,912号
高帯域のカスケード接続されたメモリ・アーキテクチャでは、インタフェースが最適に利用されていることを確認するため、およびシステムのパフォーマンス予測を実証するために、無負荷および重負荷状態でチャネル帯域幅などのメモリ・パラメータを測定することが非常に望ましい。以前から、システムが最適に構成され使用されていることを確認するのは、パフォーマンス・テスト班の仕事である。異なるメモリ待ち時間およびパフォーマンス特性を測定するためにパフォーマンス・ベンチマークを実行することができるが、インタフェースの挙動の多くは、種々のテストの実行時間から推測しなければならないだろう。必要なのは、実行時間中にメモリ・インタフェースを確認し(適用条件下で)、システム全体の複数のインタフェースをモニタして、システム中の障害が生じていそうなところを知ることである。これらの結果については、現在のシステムにおいて最適レジスタ設定をプログラムするため、または将来の設計/システムを変更してそれらの障害を取り除くためあるいはその両方のために使用できることが望ましいであろう。
諸実施形態には、処理システムのためにデータを記憶し読み出すメモリ・システムが含まれる。このメモリ・システムは、メモリ・コントローラ、複数のメモリ・デバイス、メモリ・バス、およびメモリ・ハブ・デバイスを含む。メモリ・コントローラは、メモリ・アクセス要求を受信しそれらに応答する。メモリ・バスは、メモリ・コントローラに接続している。メモリ・ハブ・デバイスは、メモリ・バスに接続している。メモリ・ハブ・デバイスは、アドレス情報、制御情報、およびデータ情報の1つ以上を、メモリ・バスを介してメモリ・ハブ・デバイスとメモリ・コントローラとの間で転送するためのメモリ・インタフェースを含む。メモリ・ハブ・デバイスは、メモリ・デバイスに接続するメモリ・デバイス・インタフェースも含む。メモリ・ハブ・デバイスは、システム動作中の規定時間間隔に亘って、メモリ・バスの利用、メモリ・デバイスの利用、およびパフォーマンス特性の1つ以上をモニタし報告するためのパフォーマンス・モニタをさらに含む。
諸実施形態には、メモリ・バスに接続している複数のメモリ・デバイスおよびメモリ・ハブ・デバイスを有するメモリ・システムも含まれる。メモリ・ハブ・デバイスは、アドレス情報、制御情報、およびデータ情報の1つ以上を、メモリ・バスを介してメモリ・ハブ・デバイスとメモリ・コントローラとの間で転送するためのメモリ・インタフェースを含む。メモリ・ハブ・デバイスは、メモリ・デバイスに接続するメモリ・デバイス・インタフェースも含む。メモリ・ハブ・デバイスは、システム動作中の規定時間間隔に亘って、メモリ・バスの利用、メモリ・デバイスの利用、およびパフォーマンス特性の1つ以上をモニタし報告するためのパフォーマンス・モニタをさらに含む。
諸実施形態には、メモリ・アクセス要求を受信しそれらに応答するためのメモリ・コントローラも含まれる。メモリ・コントローラは、アドレス情報、制御情報、およびデータ情報の1つ以上を、メモリ・バスを介してメモリ・コントローラと1つ以上のハブ・デバイスとの間で転送するためのメモリ・インタフェースを含む。メモリ・コントローラは、システム動作中の規定時間間隔に亘って、メモリ・バスの利用およびパフォーマンス特性の1つ以上をモニタし報告するためのパフォーマンス・モニタも含む。
別の諸実施形態には、メモリ・インタフェース、メモリ・デバイス・インタフェース、およびパフォーマンス・モニタを有するメモリ・ハブ・デバイスが含まれる。メモリ・インタフェースは、アドレス情報、制御情報、およびデータ情報の1つ以上を、メモリ・バスを介してメモリ・ハブ・デバイスとメモリ・コントローラとの間で転送する。メモリ・デバイス・インタフェースは、メモリ・デバイスに接続する。パフォーマンス・モニタは、システム動作中の規定時間間隔に亘って、メモリ・バスの利用、メモリ・デバイスの利用、およびパフォーマンス特性の1つ以上をモニタし報告する。
別の諸実施形態には、パフォーマンス・モニタリングを提供する方法も含まれる。この方法は、ハブ・デバイスにおける特定のイベントの発生を検出することを含む。イベントはタイプにより特徴が異なる。検出された各タイプのイベント数、およびすべての関連するイベント間の経過時間が記録される。検出および報告は、規定期間中またはイベント数しきい値に到達するまで継続される。記録されたデータは、規定期間の後またはイベント数しきい値に到達した後に、イベント頻度アレイに格納される。
諸実施形態による他のシステム、方法、またはコンピュータ・プログラム製品あるいはそのすべては、以下の図面および詳細な説明を参照すれば、当業者に明らかであるか、または明らかになるであろう。それらすべての追加のシステム、方法、またはコンピュータ・プログラム製品あるいはそのすべては、本明細書に含まれ、本発明の範囲内であり、添付の請求項により保護されるものとする。
ここで図面を参照するが、いくつかの図において同様の要素には同じ参照番号が付されている。
典型的な諸実施形態が、メモリ・ハブのパフォーマンス・モニタリング機能を実行する。パフォーマンス・モニタリングを実行するための回路が、1つ以上のメモリ・バスをモニタするためにメモリ・ハブ・デバイスまたはメモリ・コントローラあるいはその両方に含まれるとよい。モニタされ報告されるとよい統計データ、すなわちパフォーマンス特性には、以下のものに限られないが、バス総帯域幅、ダウンストリーム利用バス帯域幅、アップストリーム利用バス帯域幅、最少読取り待ち時間、平均読取り待ち時間、または読取り対書込みの帯域幅比あるいはその組み合わせが含まれる。これらのパフォーマンス特性の各々はリアルタイムで測定され、問い合わせ可能なアレイに保存され、コンテンツは異なる負荷下でのシステムのパフォーマンスを判定するために分析される。
本明細書で用いられている”ダウンストリーム利用バス帯域幅”という用語は、アドレス、コマンド、およびデータなどの情報を送信するためにダウンストリーム・バスが使用されている時間をダウンストリーム・バスが利用可能な時間の合計で除したものを指す。本明細書で用いられている”アップストリーム利用バス帯域幅”という用語は、データおよびステータスなどの情報を受信するためにアップストリーム・バスが使用されている時間をアップストリーム・バスが利用可能な時間の合計で除したものを指す。本明細書で用いられている”バス利用総帯域幅”という用語は、アップストリーム・バスおよびダウンストリーム・バスが使用されている時間をバスが利用可能な時間の合計で除したものを指す。本明細書で用いられている”読取り待ち時間”という用語は、読み取り要求に対するデータの返信にかかる時間を指す。本明細書で用いられている”平均読取り待ち時間”という用語は、ある期間中の読取り待ち時間の合計を得て、その数をメモリ・システムに処理された読取りコマンド数で除して得られた数を指す。本明細書で用いられている”読取り対書込みの帯域幅比”という用語は、ダウンストリーム利用バス帯域幅で除したアップストリーム利用バス帯域幅を指す。本明細書で用いられている”トレース・アレイ”という用語は、コンピュータ・チップ内部のバス・アクティビティをキャプチャするのに用いられる記憶素子の配列を指す。トレースされているバスはクロック・サイクルごとにサンプルを抽出され、所定のクロック・サイクルに関するバス・コンテンツは、記憶素子のアレイに格納される。トレース・アレイは、トレースを開始および停止する設定可能な機構を有し、トレースしたデータを圧縮する機構を含んでもよい。トレース・アレイは通常、システム・ハードウェアをデバッグするために用いられる。
本明細書で用いられている”イベント・カウンタ”という用語は、特定のバス状態の数を記録するカウンタを指す。イベント・カウンタをインクリメントさせるバス状態については設定することが可能である。本明細書で用いられている”イベント・ストップ・トリガ”という用語は、トレース・アレイにデータの記録を停止させる状態を指す。この状態は、カウンタがプログラムされたしきい値(イベント数しきい値とも呼ばれる)を超過した場合に発生する。本明細書で用いられている”イベント頻度アレイ”という用語は、カウンタがアクティブであった該当する時間経過に従って、イベント・カウンタおよび累積合計の値を記録するのに用いられる記憶素子の配列を指す。イベント頻度アレイは、発生率を計算するのに用いられる。本明細書で用いられている”デッドロック”という用語は、2つ以上のプロセスの各々が自分以外のプロセスの一つによる何らかの動作を待っているために、開始することができないことを指す。本明細書で用いられている”決定性”という用語は、その時間発展が正確に予測できるシステムについていう。本明細書で用いられている”ヒストグラム”という用語は、度数分布を示す棒グラフを指す。ここで棒グラフの高さは観測度数を表す。本明細書で用いられている”メモリ・インタフェース”という用語は、アドレス、コマンド、およびデータなどの情報を、メモリ・コントローラとハブとの間で、または1つ以上のハブの間であるいはその両方で、転送を可能にする1つ以上の信号を指す。
典型的な諸実施形態が、入力アドレスおよびコマンド・バス・ストリームをモニタし(”スヌープし”)、トレース・アレイ内のコマンド・ストリームを記録するか、またはイベント頻度アレイ内のイベント(例えば、読取りコマンドおよび書込みコマンド)を記録するかあるいはその両方を行なう。コマンドが応答を要求する場合は、続いて、応答が生じる時間もカウンタにより記録され、その時間間隔の範囲が当該応答時間に対応する。このデータから、応答時間のヒストグラムを生成することができる。平均待ち時間を計算できるように、応答時間の累積合計も蓄積される。
プログラムされている期間の後、(イベント・カウンタ・アレイ(単数または複数)からの)すべてのカウント・イベントおよび累積合計は、イベント頻度アレイ内に記録される。この動作モードは、本明細書では”固定タイマ・モード”と呼ばれる。イベントが記録された後、カウンタおよび累積合計はリセットされ、イベント頻度アレイのロード・ポインタはインクリメントされる。このシーケンスは、イベント頻度アレイがフルになるか、このデータに関する要求が受信されるか、または他の何らかの理由で情報の蓄積が終了するまで発生し続ける。イベント頻度アレイがフルになるか、またはこのデータに関する要求が受信されると、メモリ・ハブまたはメモリ・コントローラあるいはその両方からのパフォーマンス・モニタ・データは、システム・ソフトウェア、ハードウェア開発者、システムの操作/保守担当者等により読み込まれ、変換される。帯域幅の利用対待ち時間および帯域幅対時間などのパフォーマンス属性のプロットを観測することができる。
別個の動作モードでは、イベント・カウンタがしきい値に到達したときにイベント頻度アレイをロードするだけで、測定が記録される期間を動的に変化させることもできる。この場合、比率情報が維持され得るように、ウィンドウ・タイマ値(例えば、クロック・サイクル数)もイベント頻度アレイ内にロード(記録)される。本明細書で”動的時間更新モード”と呼ばれるこのモードは、バス・アクティビティが低いときに圧縮機能を提供するのに利用されてもよく、その結果、より多くの時間/イベントが記録できるようになる。動的時間更新モードは、一定のタイム・ウィンドウの後に(例えば、固定タイマ・ウィンドウの設定に到達した場合)にカウンタがリセットされその結果が一連のデータ用に記録される”固定タイマ・モード”と共にまたはその代わりに用いられてもよい。
典型的な諸実施形態では、読取り要求、読取りデータ応答、書込みデータ要求、書込み完了通知等の動作で構成される”N”個の許容可能なイベントをカウントすることができる。カウンタが各イベントに割り当てられ、イベント頻度アレイ内の一連の場所が確保される。特定のイベントが発生すると、対応するイベント・カウンタがインクリメントされる。(クロックの設定番号の検出などによって)ウィンドウ・タイマが終了するかまたはオーバーフロー・イベントしきい値に到達すると、カウンタ・データはイベント頻度アレイ内にロードされ、カウンタはリセットされる。
読取りデータなど関連する応答を有するコマンドに関して、メモリ・システムからのデータ応答の分析に使用するためにヒストグラム構成が作られる。このヒストグラムは、各ビンに対してプログラム可能な範囲(例えば、ある動作を完了するためのプログラム可能なサイクル数)を有する。本明細書で用いられている”ビン”という用語は、ヒストグラムにおける各棒に対するカウンタを指す。例えば、ヒストグラムの1本の棒が5から10サイクルを要した応答数を表し、別の棒が11から15サイクルを要した応答を表す場合、ビンは5から10サイクルを要した応答数をカウントするビンと、11から15サイクルを要した応答をカウントするビンの2つあると考えられる。ヒストグラムも同様に、随意、イベント頻度アレイ内にロードすることができる。ヒストグラムがイベント頻度アレイ内にロードされた場合、ヒストグラム・カウンタは、次に各ビンに対してリセットされる。
典型的な諸実施形態では、システム・デバッグを可能にするためにトレース・アレイもイベント・カウンタ回路に接続して用いられる。トレース・アレイは、(例えば、FIFOを用いて)入力アドレスおよびコマンド・ストリームのサンプルを抽出し、イベント・ストップ・トリガが生じるまで、入力アドレスおよびコマンド・ストリームの1つ以上を常時記録するようにプログラムされる。各イベント/ビン・カウンタは、しきい値が超過されたときにトレース停止信号を生成するように、最大しきい値、すなわちイベント数しきい値を有する。トレース停止信号は、バスの記録を停止するためにトレース・アレイに送信される。これは、あるシステム・パフォーマンスの異常の原因を知るためのトレース分析に有用であり、設計者およびテスト技術者が、システム障害を引き起こす機構を知るのに役立つ。なぜなら、トレースはシステムが最適に動作していないときに停止するからである。次に、システム劣化を引き起こす機構を知るために、トレースを分析することができる。機構が解れば、システム構成を更新するか、アプリケーションを再コード化するか、またはパフォーマンスを制限する属性を変更するようにシステムを設計するかあるいはその組み合わせをすることができる。
フルの場合、イベント頻度アレイを利用して、異なる期間に亘るシステムの挙動を分析することができる。イベント頻度アレイから抽出されるデータを用いれば、帯域幅、利用、平均データ応答時間を判定することができる。
図7は、典型的な諸実施形態で実行されるとよいパフォーマンス・モニタリング論理702を含む典型的なメモリ・ハブ・デバイス504のブロック図である。図7のメモリ・ハブ・デバイス504は、パフォーマンス・モニタリングの追加機能とともに、図6を参照して既に記載した機能と同一の機能を実行する。パフォーマンス・モニタリング論理702は、ハードウェアまたはソフトウェアあるいはその両方を用いて実行されるとよい。図7は、本明細書に記載されているパフォーマンス・モニタリング機能を提供するためにメモリ・ハブ・デバイス504内に位置するパフォーマンス・モニタリング論理702を含む。図7に示されるように、パフォーマンス・モニタリング論理702はメモリ・ハブ制御部613、メモリ・デバイス・データ・インタフェース615およびリンク・インタフェース604に接続しており、メモリ・バス506(アップストリーム・バスおよびダウンストリーム・バスの両方)、メモリ・デバイス・データ・バス608、ならびにメモリ・デバイス・アドレスおよび制御バス614におけるすべてのアクティビティのほか、メモリ・ハブ制御部613により発行されるすべてのコマンドおよびメモリ・デバイス・データ・インタフェース615を介したすべてのデータ転送(読取りおよび書込み)をモニタしキャプチャすることが可能になる。
パフォーマンス・モニタリング論理702がどのように動作するかに関する詳細な説明を、サンプル・コマンド・ストリームおよびデータを変換するための可能な方法を用いて、以下に記載する。パフォーマンス・モニタリングの構成に重要な検討事項には、採用する読取りデータ応答方法のタイプ(確定性または不確定性)、コマンドがバス上で消費する時間長、モニタされるコマンド、およびウィンドウ・サンプル・タイムを決定することが含まれる。
サンプル・コマンド・ストリームが表1に示される。これは、種々のコマンドが異なるサイクル数を要するものの、応答時間については正確に予測することができる確定性システムに関連する。メモリ・ハブ制御ブロック613では、コマンド・ストリームのメモリ動作への復号を終える。それによって得られる1つ以上のメモリ・デバイスへのコマンドは、メモリのメモリ・ランク、バンク、または他の選択可能な部分を識別するための復号済みアドレス情報を含むとよい。コマンド・ストリームは、メモリ・サブシステムにおけるメモリ・デバイス509のいずれかへのいかなるアクセスも1個のイベントとして記録されるように、またはメモリ・サブシステムの下位部分(例えば、特定のバンクまたはランク)へのアクセスが監視されるように、モニタされてもよい。用いられる復号方法およびパフォーマンス・モニタリング方法に基づいて、全体としてサブシステムに関連するかまたはサブシステムの下位部分に関連するパフォーマンス情報が蓄積され得る。不確定性システムもモニタすることができると考えられる。このシステムは、通常であれば、メモリ応答が要求と相関し得るようにするためのタグを含み、応答時間がデバイスおよびバスの利用、ならびにスケジューリングの衝突により変化すると考えられる。表1は、パフォーマンス・モニタリング実施中のハブ・デバイスをターゲットとするコマンドを含む。この例では、データ応答時間は、(例えば、メモリ・バス506のダウンストリーム・バスから)メモリ・ハブ・デバイス504でのコマンド受信と、データ・リクエスタへのデータ提供(例えば、読取りデータをメモリ・バス506のアップストリーム・バス上に置くこと)との間で経過する時間を指す。
Figure 2008041089
バースト長4として動作するDDRベースのメモリ・サブシステムと一致する上記例では、固定タイマ・ウィンドウ・サイズを10と仮定し、データの追跡は10時間ユニット後にリセットされ、各コマンドは1時間ユニット消費し、その対応する応答(妥当な場合)は2時間ユニット消費する。この例を用いると、最大書込み帯域幅および最大読取り帯域幅はウィンドウあたり10コマンドと考えられ、一方、最大読取り応答帯域幅はウィンドウあたり5応答と考えられる。他のパラメータ設定(例えば、20サイクルのウィンドウ・サイズ)は、所望されるパフォーマンス・データのタイプおよび粒度に応じて実行されてもよい。この例では、書込みコマンドの完了時間は追跡されないが、別の典型的な諸実施形態では書込みコマンドの完了時間がモニタされる。データの表表示および分析には以下のようなものが考えられる。データ応答時間は、データをリクエスタに返信するのにかかる時間ユニット(例えば、クロック・サイクル)の数を指す。
Figure 2008041089
設定0からの統計
書込みコマンドの利用=2/10*100%=20%
読取りコマンドの利用=3/10*100%=30%
平均読取り待ち時間=読み取り待ち時間合計/読取りコマンド数
=36/3=12時間ユニット/読取りコマンド
設定0の統計(クロック・サイクル0−9を対象とする)により説明したように、ダウンストリーム・バスは時間の20%が書込みコマンドに利用され、時間の30%が読取りコマンドに利用され、ハブ・デバイスで読取りコマンドが受信された時間から結果がリクエスタに返信されるまでに平均12サイクルかかる。
Figure 2008041089
設定1からの統計
書込みコマンドの利用=1/10*100%=10%
読取りコマンドの利用=1/10*100%=10%
平均読取り待ち時間=読み取り待ち時間合計/読取りコマンド数
=10/1=10時間ユニット/読取りコマンド
設定1の統計(クロック・サイクル10−19を対象とする)により説明したように、ダウンストリーム・バスは時間の10%が書込みコマンドに利用され、時間の10%が読取りコマンドに利用され、ハブ・デバイスで読取りコマンドが受信された時間から結果がリクエスタに返信されるまでに平均10サイクルかかる。
Figure 2008041089
設定2からの統計
書込みコマンドの利用=2/10*100%=20%
読取りコマンドの利用=6/10*100%=60%
平均読取り待ち時間=読み取り待ち時間合計/読取りコマンド数
=78/6=13時間ユニット/読取りコマンド
設定2の統計(クロック・サイクル20−29を対象とする)により説明したように、ダウンストリーム・バスは時間の20%が書込みコマンドに利用され、時間の60%が読取りコマンドに利用され、ハブ・デバイスで読取りコマンドが受信された時間から結果がリクエスタに返信されるまでに平均13サイクルかかる。
Figure 2008041089
表5は、3つのイベント・カウンタにより集められたデータをまとめるために構築することができるであろうイベント頻度アレイ内の、3つのサンプル・エントリを示す。サイクル数はイベントあたりのサイクル、すなわちウィンドウ・タイムの数を指す。フルの場合、イベント頻度アレイを利用して、異なる期間に亘るシステムの挙動を分析することができる。イベント頻度アレイから抽出されたデータを用いれば、帯域幅、利用、および平均データ応答時間を判定することができる。
表5の各列は、ユニット時間毎のカウント情報を含む。上記例の計算を用いれば、合計利用帯域幅対平均待ち時間、読取り利用帯域幅対平均待ち時間、および書込み利用帯域幅対平均待ち時間を示すチャートが、イベント頻度アレイ内のデータから得ることができる。システムの障害を判定し、メモリ・パフォーマンス・データを実証するためにこのデータをグラフで示し分析することができる。
典型的な諸実施形態では、障害時、しきい値すなわちイベント数しきい値がイベント・カウンタ上に設定されトレース・アレイを停止させることにより、ユーザは障害を生じさせた入力コマンド・ストリームを調査することができる。これは、一定のコマンド・シーケンスがシステムのデッドロックを引き起こす場合に有益である。デッドロックはシステムの待ち時間を激増させる。これは一般に、コマンド・シーケンスが正しく発行されないか、もしくは正しく再命令されないかあるいはその両方の場合、またはシステム・アプリケーションが1つの資源を過度に利用するやり方でメモリにアクセスし続けている場合である。任意の読取り応答が読取り応答ヒストグラムの最大予想しきい値を超過すればイベント・ストップ・トリガがかかるように設定されている場合、トレース・アレイからキャプチャされたコマンド・ストリームは、デッドロック状況になる前またはちょうどその時あるいはその両方に、入力コマンドをドキュメント化する。通常、ユーザは、ひとたび非常に長い応答時間が記録されれば、すぐにトレースを停止したいと考えるであろうが、他の典型的な諸実施形態としては、例えば、第1のしきい値を’n’回超過した後にトレースを停止できるように、第1のしきい値の時間と併せて使用されることになる第2のカウンタしきい値の使用が挙げられる。このさらなる機能は、長期間に亘るシステム・パフォーマンスの障害の分析を促すと思われる。
上記の例は、メモリ応答時間が決定性であるために応答時間を計算することができるメモリ・システムからのものであった。メモリ応答時間が決定性でないメモリ・システムでは、同じデータを追跡することができるが、各読取りコマンドのタグを用いなければならず、トレース・アレイは、対応するデータおよびタグがそのメモリ・システムから受信された場合にのみ記録されるデータ応答時間によって更新され、明らかに識別可能なメモリ応答をもたらす。この場合、各未処理の読取り要求は対応するカウンタを有する。読取り要求が完了されれば、応答時間は、アレイ(またはビン)に保存され、応答時間の範囲に対応するアレイ内の位置をインクリメントする(例えば、応答時間のヒストグラムが蓄積される)。この技法を用いて、メモリ・システムにおける応答の分布をまとめるために応答時間のヒストグラムが生成される。さらに、連続応答時間合計は、読取りあたりの平均応答時間(例えば、読取り待ち時間)が計算できるように保存される。所望であれば、典型的な読取り応答時間に関してメモリ・サブシステムを最適化するとともに、高待ち時間イベントを最少限にするために、システム設計者がこのタイプのデータを使用することができる。
図8は、典型的な諸実施形態でメモリ・パフォーマンスをモニタするために利用されるとよいプロセス・フローの図である。典型的な諸実施形態では、図8に示される処理は、パフォーマンス・モニタ論理702内にある、ハードウェアまたはソフトウェアあるいはその両方の命令によって実行される。ブロック802で、パフォーマンス・モニタ論理702は使用可能になる。さらに、トレース・アレイもブロック802で使用可能としてもよい。ブロック804で、入力コマンド・ストリームが受信され復号される。ブロック806で、ウィンドウ・タイマが終了しているか(あらかじめ選択された期間にデータが収集され、次にセットとして保存された時に使用されているか)どうかを判定するチェックが行なわれる。
ブロック806で判定されたときに、ウィンドウ・タイマが終了していれば、現在のデータはセットとして保存されなければならず、ウィンドウ・タイマはリセットされ新しいデータのセットを収集し始めなければならない。この処理は、ブロック828で開始し、すべての未処理の応答要求が完了するのを待つ。次に、処理はブロック830に進み、イベント・カウンタおよび任意のビン・カウンタをイベント頻度アレイへアンロードして、ブロック832で、ウィンドウ・タイマ、イベント・カウンタ、およびビン・カウンタはリセットされる。なお、パフォーマンス・モニタリング論理、ウィンドウ・タイマ、およびイベント・カウンタがリセットされているので、ブロック828から836までの間に到着するコマンドは処理されない。しかし、これは、ウィンドウ・タイマがパフォーマンス・モニタをリセットするのにかかる時間に対して大きい場合、問題ではない。別の諸実施形態では、一方のパフォーマンス・モニタがその論理をリセットしているときに、他方のパフォーマンス・モニタがサンプルを抽出しているというように、パフォーマンス・モニタ論理を二つ重ねて実行することもできると考えられる。各モニタは、イベント頻度アレイをロードすることができるポートを有し、トレース・アレイを停止する機能も有すると考えられる。
ブロック834での判定時に、イベント頻度アレイがフルでない(例えば、データのセットをさらに記録する空きがある)場合、次にブロック836が実行されてイベント頻度アレイ・ロード・ポインタがインクリメントされ、処理ループがブロック804へ戻り、入力コマンド・ストリームからの入力の受信を続行する。あるいは、ブロック834の判定時に、イベント頻度アレイがフルの場合、次にブロック838に処理が進みカウンタを停止しイベント頻度アレイをアンロードする(例えば、メモリ・デバイス、メモリ・コントローラ等へ)。ブロック840で、’トレース停止’イベントが既に生じているかどうかのチェックが行なわれる。トレースが依然実行されている場合、次にブロック844が実行されてトレースを停止する。あるいは、’トレース停止’イベントが生じている場合、次にブロック842が実行されてトレース・データをアンロードする(例えば、メモリ・デバイス、メモリ・コントローラ等へ)。これで、ブロック846でパフォーマンス・モニタリングが完了し終了する。
ブロック806での判定時に、ウィンドウ・タイマがまだ終了していない場合、処理は次にブロック808および810に進む。ブロック808では、イベント(例えば、読取りコマンド、書込みコマンド)が検出されているかどうかを判定するためにチェックが行なわれる。イベントが検出されなかった場合、処理は次にブロック804に進み、入力ストリームを引き続きモニタする。典型的な諸実施形態では、入力ストリームは、メモリ・ハブ506を介してメモリ・コントローラとハブ・デバイスとの間を転送されているコマンド、アドレス、およびデータを含む。ブロック808の判定時に、イベントが検出された場合、次にブロック812が実行され、そのイベントに対応するイベント・カウンタはインクリメントされる。処理は次にブロック816および824に進む。ブロック816で、システムが動的時間更新モードで動作しているかどうかを判定するためにチェックが行なわれる。システムが動的時間更新モードで動作していない場合、次にブロック822で、固定タイマ・ウィンドウの設定に到達したかどうかを判定するためにチェックが行なわれる。固定タイマ・ウィンドウの設定に到達していなかった場合、処理は次にブロック804に進む。固定タイマ・ウィンドウの設定に到達していた場合、処理は次にブロック828に進む。ブロック816に戻って、システムが動的時間更新モードで動作している場合、次に固定タイマ・ウィンドウの設定は適用されず、ブロック818でイベント・カウンタがフルかどうかを判定するためにチェックが行なわれる。イベント・カウンタがフルでない場合、処理は次にブロック804に進み、入力コマンド・ストリームをモニタする。イベント・カウンタがフルの場合、処理は次にブロック828に進む。
ブロック824で、カウンタしきい値を超過したかどうかを判定するためにチェックが行なわれる。カウンタしきい値を超過していない場合、処理は次にブロック804に進み、入力コマンド・ストリームをモニタする。カウンタしきい値を超過した場合、処理は次にブロック826で処理が続行し、トレースが停止される。この態様では、任意のカウンタのプログラム可能なしきい値(イベントまたはビン)を超過した場合、次にトレース・アレイは入力ストリームの記録を停止する。しかし、パフォーマンス・モニタのその他の部分を動作させて完了させることが依然として可能である。これにより、トレース・アレイは、しきい値を超過させたイベントをキャプチャできるようになり、続いてしきい値の超過を生じさせたコマンド・シーケンスを保存するために直ちに停止することが可能になる。ある例では、表2(イベント・カウンタ0)の読取り動作に関するプログラム可能なしきい値を20クロックに設定している。データ応答時間が20クロックを超過すると、カウンタしきい値が超過されることになり、トレースは停止させられると考えられる。典型的な諸実施形態では、読取り応答(待ち時間)がカウンタしきい値を超過すると、その特定のビン・カウンタのカウンタしきい値がアサートされ、これにより、この事態を引き起こしたストリームを調査できると思われる時点でトレースが停止することになる。
確定性メモリ・システム(すなわち、応答が正確に予測できるメモリ・システム)に関する典型的な諸実施形態では、通常、メモリ動作がコマンドに対し識別可能な応答をもたらすのではない。その代わり、応答時間は設計によって分かり、コマンドが受信された時点のメモリの状態(例えば、バンク・アクティブ、プリチャージ、リフレッシュ、電源遮断等)に影響されると考えられる。この場合、応答時間はメモリ・コントローラまたはハブあるいはその両方に知られており、データ応答時間は、既知の応答時間に基づいてロードされる。不確定性メモリ・システム(すなわち、応答が正確に予測できないメモリ・システム)に関する典型的な諸実施形態では、通常、メモリ動作がコマンドに対し識別可能な応答をもたらす。特定の読取り動作(例えば、タグを使用すること)に関連する応答により、カウンタには、実際の応答時間に直接関連するデータ応答時間がロードされる。
ブロック810で、ある未処理コマンドに対する応答が検出されたかどうかを判定するために確認が行なわれる。応答が検出されなかった場合、次にブロック804で処理が続行する。応答が検出された場合、ブロック814に処理が進み、検出された応答時間に対応するビン・カウンタを更新する。次に、ブロック820および824が実行される。ブロック820で、ビン・カウンタがフルかどうかを判定するために確認が行なわれる。ビン・カウンタがフルでない場合、次にブロック804で処理が続行する。ビン・カウンタがフルの場合、次にブロック828で処理が続行し、データをイベント頻度アレイ内に保存し、新しいセットを開始する。
図9は、典型的な諸実施形態において実行されるとよいメモリ・パフォーマンス・モニタリングの構成要素のブロック図である。典型的な諸実施形態では、図9に示されているブロック図がパフォーマンス・モニタ論理702により実行される。このブロック図への諸入力には、(バスからの)入力コマンド・ストリームおよびシステム応答イベント902、ならびにパフォーマンス・モニタおよびトレース・アレイを使用可能/使用不可にする信号906が含まれる。信号906は、パフォーマンス・モニタおよびその他の論理の全般的な状態を制御するために、図9のすべてのブロックに接続しているパフォーマンス・モニタ状態論理ブロック908に入力される。入力コマンド・ストリームおよびシステム応答イベント902は、報告およびメモリ・システム診断での使用のためにデータを可読出力ポートを介して出力することができる設定可能なトレース・アレイ内にコピーされる。さらに、入力コマンド・ストリームおよびシステム応答イベント902は、コマンドを復号し信号をそのコマンドに対応するカウンタへ送信するためのイベント復号および応答検出論理ブロック904に入力される。ブロック904からの出力が、イベント・カウンタ・ブロック910または応答タイマ・ブロック912あるいはその両方に入力されるとよい。
イベント・ウィンドウ・タイマ・ブロック914は、ブロック908に応答して、現在のデータのセットまたはタイミング・ウィンドウについて、パフォーマンス・モニタがアクティブであった時間(例えば、クロック・サイクル)を追跡する。ビン・カウンタ・アレイ・ブロック916は、特定の応答(または他の測定)のしきい値に関連するカウンタをインクリメントし、応答時間の累積合計・ブロック918は、現在のタイミング・ウィンドウの間に、応答タイマ・ブロック912からの入力に基づいて、すべてのコマンドに関する総応答時間を引き続き追跡する。前述したように、イベント頻度アレイ922は要約データを含み、データを出力する可読出力ポートを有する。さらに、イベント・カウンタ・ブロック910、イベント・ウィンドウ・タイマ・ブロック914、ビン・カウンタ・アレイ・ブロック916、および応答時間の累積合計・ブロック918は、診断目的または他の報告目的のために情報を提供するのに利用されるとよい可読出力ポートを含む。
パフォーマンス・モニタリング機能に関連した設定可能なトレース・アレイ、イベント頻度アレイ、ビン・カウンタ・アレイ、応答時間の累積合計、イベント・ウィンドウ・タイマ、イベント・カウンタ、および関連回路(本明細書では総称して”パフォーマンス・モニタ・データ”と呼ばれる)は、上記目的のための、またはこの目的のために利用可能な任意のバスを介して読み取られる。その任意のバスは以下に限られないが、SMBus、I2C、およびカスケード相互接続バス(またはメモリ・バス)などを含む。これらのバス(本明細書では”報告バス”と呼ばれる)の1つまたはいかなる組み合わせが、パフォーマンス・モニタ・データを読み取るために典型的な諸実施形態によって利用されるとよい。パフォーマンス・モニタ・データすなわち情報については、1つ以上のプロセッサ・チップ(単数または複数)、サービス・プロセッサ、メモリ・コントローラによって分析することができるか、あるいは、メモリ・システムのパフォーマンスを分析すること、または改良することができる設計もしくはプログラミングの態様を識別することあるいはその両方に使用するために外部テスト・デバイスまたは他の何らかの実行要素もしくは処理要素に渡すことができる。可読出力ポートは、1つ以上の出力を含むシリアル・インタフェースの形態にしてもよく、複数の出力からなるパラレル・インタフェースの形態にしてもよい。典型的な諸実施形態では、可読出力ポートは、ハブ外部の分析のために1つ以上の出力ポートを対象のインタフェースに方向付けるために使用されるアドレス可能なインタフェース・ポートまたはさもなければ選択可能なインタフェース・ポートに接続されることになる。
典型的な諸実施形態には、メモリ・コントローラおよびメモリ・デバイスを含むメモリ・システムに相互接続されているプロセッサ(単数または複数)および入出力装置(単数または複数)(例えば、リクエスタ)を有するコンピュータ・システムが含まれる。典型的な諸実施形態では、メモリ・システムは、一式のハブ・デバイス(”ハブ・チップ”とも呼ばれる)に接続されているプロセッサまたはメモリ・コントローラを含む。ハブ・デバイスは、メモリ・デバイスに接続し連結している。典型的な諸実施形態では、コンピュータ・メモリ・システムは、データまたは命令を記憶するための複数のメモリ・デバイスを有する物理メモリ・アレイを含む。これらのメモリ・デバイスは、メモリ・コントローラに直接接続されるか、またはハブ・デバイスを介してメモリ・コントローラに間接的に接続されるかあるいはその両方でもよい。典型的な諸実施形態では、ハブベースのコンピュータ・メモリ・システムは、メモリ制御デバイス(例えば、メモリ・コントローラ)に接続されている通信ハブ・デバイスに接続されているメモリ・デバイスを有する。さらに典型的な諸実施形態では、ハブ・デバイスが、メモリ・バスを介して互いに(および場合によっては他のメモリ・モジュール上に置かれた他のハブ・デバイスに対して)カスケード相互接続されている2つ以上のハブ・デバイスを含むメモリ・モジュール(例えば、1つの基板または物理デバイス)上に位置している。
ハブ・デバイスはマルチドロップ・バス構成またはポイント・ツー・ポイント・バス構成(1つ以上の追加のハブ・デバイスに対するカスケード接続をさらに含んでもよい)によりメモリ・コントローラに接続されてもよい。メモリ・アクセス要求は、メモリ・コントローラにより、バス構成(例えば、メモリ・バス)を介して選択されたハブ(単数または複数)へ送信される。メモリ・アクセス要求の受信に応答して、ハブ・デバイスはそのメモリ・アクセス要求を変換し、メモリ・デバイスを制御してハブ・デバイスからの書込みデータを記憶するかまたはハブ・デバイスに読取りデータを提供する。読取りデータは、1つ以上の通信パケット(単数または複数)にエンコードされ、メモリ・バス(単数または複数)を介してメモリ・コントローラへ送信される。
別の典型的な諸実施形態では、メモリ・コントローラ(単数または複数)は1つ以上のプロセッサ・チップおよびサポート論理と一体化されるか、単体チップ(一般に”ノースブリッジ”・チップと呼ばれる)に入れられるか、1つ以上のプロセッサもしくはサポート論理あるいはその両方を有するマルチチップ・キャリアに含まれるか、または用途/環境に最も適した種々の別の形態に入れられてもよい。これらのソリューションはいずれも、1つ以上のハブ・チップまたはメモリ・デバイスあるいはその両方に接続するために、1つ以上のナロー/高速リンクを用いてもよいし用いなくてもよい。
メモリ・モジュールは、DIMM、シングル・インライン・メモリ・モジュール(SIMM:single in−line memory module)もしくは他のメモリ・モジュールあるいはその両方、またはカード構造を含む種々のテクノロジにより実行されていもよい。通常、DIMMは、主としてランダム・アクセス・メモリ(RAM:random access memory)集積回路または片面または両面のダイからなる小型回路基板を指し、この基板両面上に信号ピンもしくはパワー・ピンあるいはその両方を有する。これは、主としてRAM集積回路または片面もしくは両面のダイと、1本の長辺に沿った1列のピンとからなる小型回路基板または基板であるSIMMと対照をなしているといえる。図1のDIMMは該実施形態で168本のピンを含むが、これに続くDIMMは100本から300本を超える範囲のピン数で構成されている。本明細書に記載されている典型的な諸実施形態では、メモリ・モジュールが2つ以上のハブ・デバイスを含んでもよい。
典型的な諸実施形態では、メモリ・バスはメモリ・モジュール上のバス・デバイスへのマルチドロップ接続またはポイント・ツー・ポイント接続あるいはその両方を用いて構成されている。”ダウンストリーム・バス”と呼ばれる、コントローラ・インタフェース(またはメモリ・バス)のダウンストリーム部分は、メモリ・モジュール上のハブ・デバイスへ送信されているコマンド、アドレス、データ、およびその他の動作の初期化情報またはステータス情報を含んでもよい。典型的な諸実施形態では、ダウンストリーム・メモリ・バスはメモリ・コントローラをハブ・デバイスに接続しているか、またはハブ・デバイスをメモリ・コントローラからさらに離れた他のハブ・デバイスに接続している。各ハブ・デバイスは、単に情報をバイパス回路を介して後続のハブ・デバイス(単数または複数)に転送するか、ダウンストリームのハブ・デバイスをターゲットにしていると判定された場合に、情報を受信、変換、および再駆動するか、情報を最初に変換せずに一部またはすべての情報を再駆動して対象とする受信者を判断するか、またはこれらのオプションのサブセットもしくは組み合わせを実行する。典型的な諸実施形態では、ダウンストリーム・バスは、メモリ・システムを制御するのに用いられるプロトコルを有する。
アップストリーム・バスと呼ばれるメモリ・バスのアップストリーム部分は、要求された読取りデータもしくはエラーあるいはその両方、ステータス、または他の動作情報を返信する。この情報はバイパス回路を介して後続のハブ・デバイスに転送され、プロセッサ複合体中のアップストリームのハブ・デバイスまたはメモリ・コントローラあるいはその両方をターゲットとしていると判定された場合に、受信、変換、および再駆動するか、情報を最初に変換せずに部分的または全体的に再駆動されて対象とする受信者を判断するか、またはこれらのオプションのサブセットもしくは組み合わせを実行する。典型的な諸実施形態では、アップストリーム・バスはメモリ・システムからの応答を受信するために用いられるプロトコルを有する。
別の典型的な諸実施形態では、ポイント・ツー・ポイント・バスはスイッチまたはバイパス機構を含む。このため、多くの場合アップストリームの1つ以上のハブ・デバイスによって、バス情報がダウンストリーム通信(メモリ・コントローラからメモリ・モジュール上のハブ・デバイスへ向かう通信)時に2つ以上の考えられるハブ・デバイスの1つに向けられるほか、アップストリーム情報(メモリ・モジュール上のハブ・デバイスからメモリ・コントローラへの通信)も方向づける別の諸実施形態には、当技術分野で知られているような連続モジュールの使用が含まれる。この連続モジュールは、例えば、カスケード相互接続されたメモリ・システム中の、メモリ・コントローラと第1の実装されたハブ・デバイス(すなわち、1つ以上のメモリ・デバイスに接続されているハブ・デバイス)との間に設置して、メモリ・コントローラと第1の実装されたハブ・デバイスとの間の中間ハブ・デバイス位置のうち、1つ以上の中間ハブ・デバイス位置(単数または複数)がハブ・デバイスを含まなくても、メモリ・コントローラと最初に実装されたハブ・デバイスとの間を通過する情報が受信され得る手段をすべての中間ハブ・デバイス位置に含めるようにすることができる。連続モジュール(単数または複数)は、すべてのバス制限にしたがって、(メイン・メモリ・コントローラに最も近接した)第1の位置、(含まれているどの終端よりも優先される)最終位置、または任意の中間位置(単数または複数)を含む任意のモジュール位置(単数または複数)に設置されてもよい。連続モジュールの使用は、特に、マルチモジュール・カスケード相互接続バス構成において有益である。ここでは、メモリ・モジュール上の中間のハブ・デバイスが除去され連続モジュールによって代替されていて、中間ハブ・デバイスの除去後もシステムが動作を継続するようになっている。より一般的な諸実施形態では、連続モジュール(単数または複数)は、すべての必要な信号を入力部(単数または複数)から対応する出力部(単数または複数)へ転送するために電線を相互接続すること、またはリピータ・デバイスにより再駆動されることを含むものと考えられる。連続モジュール(単数または複数)は、(EEROMなどの)不揮発性記憶装置をさらに含むが、メイン・メモリ記憶装置は含まないと考えられる。
典型的な諸実施形態では、メモリ・システムは、カスケード相互接続メモリ・バスを介してメモリ・コントローラに接続されている1つ以上のメモリ・モジュール上に1つ以上のハブ・デバイスを含むが、他のメモリ構成は、ポイント・ツー・ポイント・バス、マルチドロップ・メモリ・バス、またはシェアード・バスなどを用いて実現されてもよい。用いられる信号法、目標動作周波数、スペース、電力、コスト、およびその他の制限に応じて、種々の代替のバス構成が検討されてもよい。ポイント・ツー・ポイント・バスは、分岐信号線、スイッチ・デバイス、またはスタブを有するバス構成に比べて信号劣化の発生が減少するため、電気的な相互接続を用いて作られたシステムにおいて最適なパフォーマンスを提供することもできる。しかし、複数のデバイスまたはサブシステムとの通信を必要とするシステムで用いられた場合、この方法は追加構成要素の相当なコストおよびシステム電力の増加を招くことが多く、中間バファリングまたは再駆動あるいはその両方の必要性が原因で、記録密度の可能性を減少させることもある。
図示されていないが、メモリ・モジュールまたはハブ・デバイスは、ハブ・デバイスまたはメモリ・モジュールあるいはその両方の属性の判定(通常電源投入後)、障害情報またはステータス情報のシステムへの報告、起動後または通常動作時もしくは他の目的時のハブ・デバイス(単数または複数)もしくはメモリ・サブシステム(単数または複数)あるいはその両方の構成、を含む1つ以上の目的のために用いられる、”存在検出”バス、I2Cバス、またはSMBusあるいはその組み合わせなどの別個のバスも含むことができる。バスの特性に応じて、このバスはさらに、ハブ・デバイスもしくはメモリ・モジュール(単数または複数)あるいはその両方により動作の正当な完了をメモリ・コントローラ(単数または複数)に報告することができる手段、またはメイン・メモリ・コントローラの要求実行時に諸障害の識別を生じる手段も提供すると考えられる。
ポイント・ツー・ポイント・バス構成から得られたのと同様のパフォーマンスを、スイッチ・デバイスを追加することにより得ることができる。これらまたは他のソリューションは、ポイント・ツー・ポイント・バスの多くの特性を維持しながら、低電力でメモリ・パッキング密度を増加させることができる。マルチドロップ・バスは、低い動作周波数に制限されはするがコスト/パフォーマンスの点で多くの用途にとって有利となるであろう、別のソリューションを提供する。光学バス・ソリューションは、ポイント・ツー・ポイントの適用かマルチドロップの適用かに関わらず、周波数および帯域幅の可能性を大幅に増やせるが、コストおよびスペース面で打撃を受けるであろう。
本明細書で用いられている”バッファ”または”バッファ・デバイス”という用語は、(例えば、コンピュータにおける)一時記憶装置、特に、ある速度で情報を受け取り別の速度で送達する一時記憶装置を指す。典型的な諸実施形態では、バッファは、2つの信号間に互換性をもたらす(例えば、電圧レベルまたは現在の機能を変更する)電子デバイスである。”ハブ”という用語は、”バッファ”という用語と同じ意味で用いられることがある。ハブはいくつかの他のデバイスに接続されている複数のポートを含むデバイスである。ポートは、適合した入出力機能を果たすインタフェースの一部である(例えば、ポートは、ポイント・ツー・ポイント・リンクまたはバスの1つにより、データ情報、アドレス情報、および制御情報を送受信するために利用されていもよい)。ハブは、いくつかのシステム、サブシステム、またはネットワークを相互に接続する中心的なデバイスであってもよい。パッシブ・ハブは単にメッセージを転送するだけでよく、一方、アクティブ・ハブすなわちリピータは、距離によって劣化しないようにデータ・ストリームを増幅しリフレッシュする。本明細書で用いられているように、ハブ・デバイスという用語は、メモリ機能を実行するための論理を含むハブ・チップ(ハードウェアまたはソフトウェアあるいはその両方)を指す。
同様に本明細書で用いられている”バス”という用語は、コンピュータ内の2つ以上の機能単位を接続する一式の伝導体(例えば、配線、および集積回路内のプリント回路基板トレースまたは接続部)の1つを指す。データ・バス、アドレス・バス、制御信号と名前がそれぞれについているものの、互いなしでは役に立たないことが多いので、それらがまとまって単一のバスを構成している。バスが複数の信号線を含んでもよく、各信号線は2つ以上の接続ポイントを有する。これが2つ以上のトランシーバ、トランスミッタまたはレシーバあるいはそのすべてを電気的に接続するメイン伝送パスを形成する。”バス”という用語は、”チャネル”という用語と対照をなす。”チャネル”という用語は、メモリ・システム内のメモリ・コントローラに関連する”ポート”の機能を説明するのに使用されることが多く、1つ以上のバスまたは一式のバスを含むこともある。本明細書で用いられている”チャネル”という用語は、メモリ・コントローラ上のポートを指す。この用語は、入出力機器または他の周辺機器に関連して使用されることが多いが、一方で、”チャネル”という用語はプロセッサまたはメモリ・コントローラと1つ以上のメモリ・サブシステム(単数または複数)の1つとの間のインタフェースを説明するのにも使用されている。
さらに、本明細書で用いられている”デイジー・チェーン”という用語は、例えば、AデバイスがBデバイスに接続されており、BデバイスがCデバイスに接続されている等、バスの配線構成を指す。最終のデバイスは、典型的に、抵抗器または終端抵抗に接続されている。すべてのデバイスは同一の信号を受信してもよく、または単純なバスとは対照的に、各デバイスは、1つ以上の信号を通過させる前に、それらを変更してもよい。本明細書で用いられている”カスケード”または”カスケード相互接続”という用語は、一連のステージもしくは装置または相互接続されているネットワーク・デバイス(典型的にはハブ)の集合を指す。これらにおいては、ハブが論理リピータとして動作し、マージするデータを既存のデータ・ストリーム内に集めることがさらに可能になる。同様に本明細書で用いられている”ポイント・ツー・ポイント”バスまたは”ポイント・ツー・ポイント”リンクあるいはその両方の用語は、その各々が1つ以上の終端抵抗を含んでもよい1つまたは複数の信号線を指す。ポイント・ツー・ポイント・バスまたはポイント・ツー・ポイント・リンクあるいはその両方では、各信号線がトランシーバ接続の2つのポイントを有し、各トランシーバ接続のポイントがトランスミッタ回路、レシーバ回路、またはトランシーバ回路に接続された状態になっている。信号線は、典型的に1つのキャリアまたは2つもしくはそれより多いキャリアとして、らせん配置、並列配置、または同心配置で通常構成されており、少なくとも1つの論理信号を移送するのに使用されている1つ以上の電気伝導体または光学キャリアを指す。
メモリ・デバイスは通常、主としてメモリ(記憶)・セルを設けられている集積回路と定義されている。メモリ(記憶)・セルには、DRAM(Dynamic Randam Access Memory)、SRAM(Static Random Access Momory)、FeRAM(Ferro−Electric RAM)、MRAM(Magnetic Random Access Memory)、フラッシュ・メモリ(Flash Memory)、ならびに他の形態のランダム・アクセス・メモリおよび電気手段、光学手段、磁気手段、生物学的手段または他の手段の形で情報を記憶する関連メモリなどがある。動的メモリ・デバイスのタイプには、非同期メモリ・デバイスが含まれてもよい。非同期メモリ・デバイスには、FPM DRAM(Fast Page Mode Dynamic Random Access Memory)、EDO(Extended Data Out)DRAM、BEDO(Burst EDO)DRAM、SDR(Single Data Rate)Synchronous DRAM、DDR(Double Data Rate)Synchronous DRAM、または任意の今後予期されるデバイスなどがある。今後予期されるデバイスには、DDR2、DDR3、DDR4および関連するテクノロジなどがあり、関連するテクノロジには、関連するDRAM上に見られる基本機能、特徴、またはインタフェースあるいはその組み合わせに基づいていることが多いGraphics RAM,Video RAM、LP RAM(Low Power DRAM)などがある。
メモリ・デバイスは、チップ(ダイ)、または種々のタイプおよび構成のシングルチップ・パッケージもしくはマルチチップ・パッケージあるいはその両方の形態で利用されてもよい。マルチチップ・パッケージでは、メモリ・デバイスは、他のメモリ・デバイス、論理チップ、アナログ・デバイス、およびプログラム可能なデバイスなどの他のデバイスのタイプとともにまとめられてもよく、抵抗器、コンデンサ、およびインダクタなどのパッシブ・デバイスも含んでよい。これらのパッケージは統合ヒートシンクまたは他の冷却増強部を含んでもよく、それらは、直近のキャリアもしくは他の隣接キャリアまたは熱除去システムにさらに接続されてもよい。
モジュール・サポート・デバイス(例えば、バッファ、ハブ、ハブ論理チップ、レジスタ、PPL、DLL、不揮発性メモリ等)は、テクノロジ、電力、スペース、コスト、およびその他のトレードオフに基づいて、複数の別個のチップまたは構成要素あるいはその両方で構成されてもよく、1つ以上の基板に複数の別個のチップを組み合わせてもよく、1つのパッケージ上に組み合わせられるか、または1つのデバイスに組み込まれてもよい。さらに、抵抗器、コンデンサなどの種々のパッシブ・デバイスの1つ以上は、テクノロジ、電力、スペース、コスト、およびその他のトレードオフに基づいて、サポート・チップ・パッケージに、または基板、ボード、もしくはロー・カード自体に組み込まれてもよい。これらのパッケージは一体型ヒートシンクまたは他の冷却増強部を含んでもよく、それらは、直近のキャリアもしくは他の隣接キャリアまたは熱除去システムにさらに接続されてもよい。
メモリ・デバイス、ハブ、バッファ、レジスタ、クロック・デバイス、受動部、および他のメモリ・サポート・デバイスもしくは構成要素あるいはその両方は、(2つ以上のデバイス間の、電気的手段、光学的手段、または代替の手段を介する通信を可能にする)はんだ相互接続、導電接着剤、ソケット構造、圧接、およびその他の方法を含む種々の方法により、メモリ・サブシステムまたはハブ・デバイスあるいはその両方に接続されてもよい。
1つ以上のメモリ・モジュール(もしくはメモリ・サブシステム)またはハブ・デバイスあるいはその両方は、はんだ相互接続、コネクタ、圧接、導電接着剤、光相互接続、ならびに他の接続および電源供給法などの1つ以上の方法により、メモリ・システム、プロセッサ複合体、コンピュータ・システム、またはその他のシステム環境に接続されてもよい。コネクタ・システムは、嵌合コネクタ(雄/雌)、1つのキャリア上で雄コネクタまたは雌コネクタと嵌合している導電接触または導電ピンあるいはその両方、光接続、圧接(保持機構と連結することが多い)、または種々の他の接続および電源供給法などの1つ以上の方法あるいはそのすべてを含んでもよい。相互接続(単数または複数)は、更新/修復のしやすさ、利用可能なスペース/体積、熱伝達、構成要素の大きさおよび形状、ならびに他の関連する物理的、電気的、光学的、視覚的/物理的なアクセス等の適用要件に応じて、メモリ・アセンブリの1つ以上の縁端部に沿って配置されるか、またはメモリ・サブシステムの縁端部から距離をおいて配置されるかあるいはその両方で配置されてもよい。
本明細書で用いられているように、メモリ・サブシステムという用語は、以下に限られないが1つ以上のメモリ・デバイス;1つ以上のメモリ・デバイスおよび関連するインタフェース、またはタイミング/制御回路、あるいはその両方;またはメモリ・バッファ、ハブ・デバイス、もしくはスイッチあるいはその組み合わせに接続している1つ以上のメモリ・デバイスあるいはその組み合わせを指す。メモリ・サブシステムという用語も、1つ以上のメモリ・デバイスを指すほか、任意の関連するインタフェース、タイミング/制御回路、もしくはメモリ・バッファあるいはその組み合わせ、ハブ・デバイス、またはスイッチを指す。それらは、基板、カード、モジュール、または関連するアセンブリ内に集められており、メモリ・サブシステムを他の回路で電気的に接続するコネクタまたは類似の手段を含んでもよい。本説明書に記載されているメモリ・モジュールは、1つ以上のメモリ・デバイスおよびハブ・デバイスを含むため、”メモリ・サブシステム”とも呼ばれる。
メモリ・サブシステムまたはハブ・デバイスあるいはその両方にローカルに常駐する追加機能には、書込みバッファまたは読取りバッファあるいはその両方、1レベル以上のメモリ・キャッシュ、ローカルのプリフェッチ論理、データの暗号化/復号、圧縮/解凍、プロトコルの変換、コマンドの優先順位決定論理、電力またはレベルの変換あるいはその両方、エラー検出回路またはエラー訂正回路あるいはその両方、データの消込み、ローカル省電力回路またはローカル省電力報告あるいはその両方、動作記録またはステータス記録あるいはその両方、初期化回路、パフォーマンス・モニタリングまたはパフォーマンス制御あるいはその両方、1つ以上のコプロセッサ、サーチ・エンジン(類)、および他のメモリ・サブシステムに既に常駐する他の機能が含まれる。メモリ・サブシステムにローカルな機能を置くことにより、多くの場合サブシステム内の未使用回路を使用中に、その特定の機能に関連して追加機能が得られる場合がある。
メモリ・サブシステム・サポート・デバイス(単数または複数)が、メモリ・デバイス(単数または複数)が接続されているものと同じ基板またはアセンブリに直接接続されてもよく、または同様に種々のプラスチック、シリコン、セラミック、または他の材料の1つ以上を用いて作られている別個のインタポーザもしくは基板に取り付けられてもよい。この別個のインタポーザまたは基板は、サポート・デバイス(単数または複数)を、メモリ・デバイス(単数または複数)と、またはメモリ・システムもしくはコンピュータ・システムの他の要素とあるいはその両方と機能的に相互接続するための電気通信パス、光通信パス、または他の通信パスを含む。
バス、チャネル、リンク、または相互接続法に適用される他の命名規則にしたがった情報転送(例えば、パケット)は、多数のシグナリング・オプションの1つ以上を用いて完了されてもよい。これらのシグナリング・オプションは、シングルエンド法、差動法、光学法、または他の手法などを含んでもよく、電気シグナリングは、シングルレベル法またはマルチレベル法のいずれかを用いる電圧シグナリングまたは電流シグナリングなどの方法をさらに含んでいる。信号はまた、時間または周波数、非ゼロ復帰、位相変調、振幅変調等の方法を用いて変調される。電圧レベルは、1.5V、1.2V、1V、および予想されるさらに低い信号電圧というように、関連する集積回路自体の動作に必要な電源電圧の減少と一致して(無関係なことも多いが)、継続して減少することが予想される。
グローバル・クロッキング、ソース同期クロッキング、エンコード・クロッキング、またはこれらの組み合わせ、および他の方法を含む1つ以上のクロッキング法を、メモリ・サブシステムおよびメモリ・システム自体の内部で利用してもよい。クロック・シグナリングは、信号線自体のクロック・シグナリングと同一でもよく、種々のサブシステム内部の予定のクロック周波数および予定のクロック数に関して伝導性のより高い、列挙された方法または代替の方法の1つを利用してもよい。単一のクロックが、メモリに対するすべての送受信、ならびにメモリ・サブシステム内のすべての測定されている機能に関連していてもよく、または複数のクロックが前述の方法などの1つ以上の方法を用いて供給されてもよい。複数のクロックが用いられる場合、メモリ・サブシステム内の機能は、一意的にサブシステムに供給されるクロックに関連していてもよく、またはメモリ・サブシステムからおよびメモリ・サブシステムへ送信されている情報に関連するクロックに由来するクロック(例えば、エンコードされたクロックに関連するクロック)に基づいてもよい。あるいは、一意のクロックが、メモリ・サブシステムへ転送される情報に関して用いられてもよく、および別個のクロックが、1つ(以上)のメモリ・サブシステムを送信源とする情報に関して用いられてもよい。クロック自体は、通信周波数または機能周波数と同じが倍数の周波数で動作してもよく、エッジ・アラインにするか、センタ・アラインにするか、またはデータ情報、コマンド情報、またはアドレス情報に対する代替のタイミング位置にアラインされてもよい。
メモリ・サブシステム(単数または複数)へ向かう情報は、通常、アドレス、コマンド、およびデータ、ならびに他の信号からなるであろう。他の信号は通常、ステータスまたはエラー状態の要求または記録、メモリのリセット、メモリまたは論理の初期化の完了、および他の機能情報、構成情報、または関連情報に関連する。メモリ・サブシステム(単数または複数)からくる情報は、メモリ・サブシステム(単数または複数)へ向かう任意のまたはすべての情報を含んでもよいが、通常、アドレス情報およびコマンド情報は含まないであろう。この情報は、通常のメモリ・デバイス・インタフェースの仕様(通常、本質的に並列)と合致する通信方法を用いて通信されてもよく、情報は’パケット’構造内にエンコードされてもよい。この構造は、将来的なメモリ・インタフェースに合致していてもよく、または単に通信帯域幅を増大させるため、もしくは受信した情報を受信用デバイス(単数または複数)が要求するフォーマットに変換することによりサブシステムがメモリ・テクノロジとは無関係に動作できるようにするためあるいはその両方のために開発されてもよい。
メモリ・サブシステムの初期化が、利用可能なインタフェース・バス、所望の初期化速度、利用可能なスペース、コスト/複雑性目的、サブシステムの相互接続構成、この用途または他の用途等のために使用される代替のプロセッサ(サービス・プロセッサなど)の使用に基づいて、1つ以上の方法によって完了されてもよい。1つの実施形態では、通常、信頼できる通信を確立するために最初にトレーニング・プロセスを完了することにより、次に、該サブシステムに関連する種々の構成要素または特性あるいはその両方に関連する属性データまたは’存在検出’データの問い合わせにより、最終的に、該システム内での対象とする動作に関連する情報を用いて適切なデバイスをプログラミングすることにより、メモリ・サブシステム(単数または複数)の初期化を完了するために高速バスが使用されてもよい。カスケードされたシステムでは、第1のメモリ・サブシステムとの通信は通常確立され、後続の(ダウンストリームの)サブシステムがカスケード相互接続バスに沿ったそれらの位置に一致する順序で後に続くと考えられる。
第2の初期化方法としては、高速バスが初期化プロセス中には1つの周波数で、次に通常動作時には第2の(通常、高い)周波数で動作する方法を含むものが考えられる。本実施形態では、低い周波数動作に関連するタイミング・マージンの増加により、各サブシステムの問い合わせまたはプログラミングあるいはその両方を完了するより前に、カスケード相互接続バス上のすべてのメモリ・サブシステムとの通信を開始することが可能である。
第3の初期化方法としては、各アドレス、各コマンド、または各データあるいはそのすべての転送に関連するサイクル数を増加させるが、通常の動作周波数でのカスケード相互接続バスの動作を含むものが考えられる。1つの実施形態では、通常動作中であれば、アドレス情報、コマンド情報、またはデータ情報あるいはそのすべての全部または一部を含むパケットが、1クロック・サイクルで転送されるであろうが、初期化中であれば、同じ量の情報または同じタイプの情報あるいはその両方が、2、3またはそれより多いサイクルで転送されることになるであろう。したがって、この初期化プロセスは、’通常’コマンドではなく’低速’コマンドの形式を用いているものと考えられ、起動または再起動あるいはその両方の後のある時点で、これらのサブシステムの各々に含まれるPOR(パワーオンリセット)論理により、サブシステムおよびメモリ・コントローラの各々が自動的にこのモードに入ると考えられる。
第4の初期化方法としては、存在検出バス(本発明と研究課題が共通の、Dellらへの米国特許第5513135号明細書で定義されているバスなど)、I2Cバス(刊行物「JEDEC standards such as the 168 Pin DIMM family」in publication 21−C revision 7R8で定義されているバスなど)、またはSMBusあるいはそのすべてなどの特殊バスを利用するものが考えられる。このようなバスは、そのようなメモリ・モジュールを使用しているコンピュータ・システム内で広く利用され文書化されている。この特殊バスは、メモリ・システム内で、デイジー・チェーン/カスケード相互接続、マルチドロップ構成、または代替の構成で1つ以上のモジュールに接続されており、通常システム動作中のある時には、パフォーマンス、熱、構成、またはシステム環境において所望されるかもしくは検出されるその他の変化に基づいて、メモリ・サブシステムへ問い合わせをし、1つ以上のメモリ・サブシステムの各々がシステム環境全体の中で動作するようにプログラミングし、および動作特性を調節する独立した手段を提供すると考えられる。
初期化の他の方法も、列挙された方法と併せてまたはそれとは独立して用いることができる。上記第4の実施形態に記載したような別個のバスの使用も、初期化と、本発明と課題が共通のDellらへの米国特許第6,381,685号明細書に記載されているようなサブシステム動作特性へのオンザフライの変更を含む、初期化以外の使用との両方に対し、ならびに利用、温度データ、故障情報、または他の目的などの動作のサブシステム情報の記録、およびそれへの応答に対し、独立した手段を設けることの利点を提供する。
リソグラフィの進歩、プロセス制御の向上、抵抗がより低い材料の使用、フィールド長の拡大、および他の半導体処理の向上により、デバイス回路密度の増大(多くの場合ダイ・サイズの拡大に関連している)は、集積デバイスでの機能の増加、ならびに以前は別個のデバイスで実行されていた機能の統合の促進に役立つであろう。この統合は、対象とする機能のパフォーマンス全体の向上、ならびに記憶密度の増大、省電力、スペースの必要性の減少、低価格、および他の製造者および消費者の利益の促進に役立つであろう。この統合は当然の進化の過程であり、それにより、システムに関連する基本構成要素の構造変更が必要になる可能性がある。
通信パスの保全性、データ記憶コンテンツ、およびメモリ・システムまたはサブシステムの各要素に関連するすべての機能動作は、1つ以上の障害検出方法または障害訂正方法あるいはその両方を使用することにより、高度に保証することができる。種々の要素のいずれかまたはすべてには、CRC(Cyclic Redundancy Code)、EDC(Error Detection and Correction)、パリティ、またはこの目的に適した他のエンコード/復号方法などの、エラー検出方法まはたエラー訂正方法あるいはその両方が含まれてもよい。別の信頼性向上には、(例えば、情報の転送に関連する間欠故障を克服するための)動作再試行、故障しているパスもしくは線あるいはその両方に取って代わる1つ以上の代替通信パスもしくは交換通信パスの使用、補完−再補完技法、またはコンピュータ、通信、および関連するシステムで用いられる別の方法が含まれてもよい。
ポイント・ツー・ポイント・リンクと同様に簡潔で、マルチドロップ構成と同様に複雑なバス上のバス終端の使用は、パフォーマンス要求の増加に同調して広く行き渡りつつある。多種多様の終端方法を識別し検討することができ、それらには、抵抗器、コンデンサ、インダクタ、またはそれらの任意の組み合わせなどのデバイスの使用が含まれ、これらのデバイスは信号線と、電源電圧もしくは電源接地、終端電圧、またはその他の信号線との間に接続されている状態にある。終端装置(単数または複数)はパッシブ終端構造またはアクティブ終端構造の一部としてもよく、1つ以上の信号線に沿って、またはトランスミッタもしくは受信デバイス(単数または複数)あるいはその両方の一部として、あるいはその両方の状態で、1つ以上の位置に常駐してもよい。終端デバイスは、トランスミッタ線のインピーダンスを一致させるために選択されるか、または使用可能な周波数、動作マージン、ならびにコスト、スペース、電力、および他の制限の中の関連する属性を最大限にする別の手法によって選択されてもよい。
典型的な諸実施形態の技術効果および技術恩恵には、実行時間中にメモリ・インタフェースを認可し(適用条件下で)、システムの傷害がどこで生じているかを知るためにメモリ・システムの複数のインタフェースをモニタする機能が含まれる。この情報は、現在のメモリ・システム内で最適化されたレジスタ設定をプログラムするため、または障害を除去するために設計を変更するためあるいはその両方のために利用されてもよい。典型的な諸実施形態は、初期設計時、出荷前または出荷後あるいはその両方の起動時に、顧客環境でしか生じないランダムな故障の診断を助長するために利用されてもよい。
前述のように、本発明の諸実施形態は、これらのプロセスを実施するためのコンピュータ実行型のプロセスおよび装置の形で具現化されてもよい。本発明の諸実施形態はまた、フレキシブル・ディスク、CD−ROM、ハード・ドライブ、または他の任意のコンピュータ可読記憶メディアなどの有形メディアで具現化されている命令を含むコンピュータ・プログラム・コードの形で具現化されてもよい。コンピュータ・プログラム・コードがコンピュータにロードされコンピュータにより実行されるとき、該コンピュータは本発明を実施するための装置となる。本発明は、例えば、記憶メディアに格納されているか、コンピュータにロードされているかもしくはコンピュータにより実行されているかあるいはその両方であるか、なんらかの送信メディアで(例えば、電線または電気ケーブル、光ファイバ、または電磁波で)送信されている、コンピュータ・プログラム・コードの形でも具現化され得る。コンピュータ・プログラム・コードがコンピュータにロードされコンピュータにより実行されるとき、該コンピュータは本発明を実施するための装置となる。汎用マイクロプロセッサ上で実行される場合、コンピュータ・プログラム・コード・セグメントは、特定の論理回路を作るためにマイクロプロセッサを構成する。
典型的な諸実施形態を参照して本発明を説明してきたが、種々の変更がなされてもよいこと、本発明の範囲を逸脱することなくその要素の代わりに均等物を代入してもよいことが、当業者に理解されるであろう。さらに、特別な状態または材料を本発明の教示に適合させるために本発明のきわめて重要な範囲を逸脱することなく多くの変更がなされてもよい。したがって、本発明は、本発明を実施するために熟考された最良の形態として開示されている特定の実施形態に限定されず、添付の請求項の範囲内に入るすべての実施形態を含むことを意図している。さらに、第1の、第2の等の用語は、いかなる順序または重要性も示さないが、第1の、第2の等の用語は、むしろある要素と他の要素を区別するために用いられている。
典型的な旧式の同期メモリ・モジュールを示す図である。 メモリ・コントローラに直接接続されている完全バッファード同期メモリ・モジュールを有する、典型的なコンピュータ・システムを示す図である。 1つの従来型マルチドロップ・スタブ・バスを有する、典型的なメモリ・システムを示す図である。 完全バッファード同期メモリ・モジュールおよびシステム構成を示す図であり、完全バッファード同期メモリ・モジュールがリピータ機能を含む図である。 1つのアクセス要求をサポートするために一致して動作する、複数の独立したカスケード相互接続メモリ・インタフェース・バスを含むコンピュータ・メモリ・システムのブロック図である。 メモリ・サブシステムにおける典型的なハブ・デバイスのブロック図である。 典型的な諸実施形態で実行されるとよいパフォーマンス・モニタリング論理を含む典型的なハブ・デバイスのブロック図である。 典型的な諸実施形態でメモリ・パフォーマンスをモニタするために利用されるとよいプロセス・フローの図である。 典型的な諸実施形態において実行されるとよいメモリ・パフォーマンス・モニタリングの構成要素のブロック図である。
符号の説明
ネットワーク寄りのメモリ・コントローラ
501 ランク0
504 メモリ・ハブ・デバイス
509 DRAM
604 リンク・インタフェース
606 読取りデータ・キュー
608 メモリ・デバイス・データ
611 書込みデータ・キュー
613 メモリ・ハブ制御部
614、614’ メモリ・デバイス・アドレスおよび制御バス
615 メモリ・デバイス・データ・インタフェース
616 ランク1
702 パフォーマンス・モニタ
ネットワークから離れたメモリ・コントローラ

Claims (20)

  1. 処理システムのためにデータを記憶し読み出すためのメモリ・システムであって、
    メモリ・アクセス要求を受信しそれに応答するためのメモリ・コントローラと、
    複数のメモリ・デバイスと、
    前記メモリ・コントローラに接続するメモリ・バスと、
    前記メモリ・バスに接続するメモリ・ハブ・デバイスとを含み、前記メモリ・デバイスは、
    アドレス情報、制御情報、およびデータ情報の1つ以上を、前記メモリ・バスを介して前記メモリ・ハブ・デバイスと前記メモリ・コントローラとの間で転送するためのメモリ・インタフェースと、
    前記メモリ・デバイスに接続するメモリ・デバイス・インタフェースと、
    システム動作中の規定時間間隔に亘って、メモリ・バスの利用、メモリ・デバイスの利用、およびパフォーマンス特性の1つ以上をモニタし報告するためのパフォーマンス・モニタと
    を含むメモリ・システム。
  2. 前記報告が、ダウンストリーム利用バス帯域幅、アップストリーム利用バス帯域幅、平均読取り待ち時間、および読取り対書込みの帯域幅比の1つ以上を含む、請求項1に記載のメモリ・システム。
  3. 前記パフォーマンス・モニタが、前記アドレス情報、制御情報、およびデータ情報の1つ以上の中で検出された特定のイベントを記録するためのイベント・カウンタ・アレイを含む、請求項1に記載のメモリ・システム。
  4. 前記特定のイベントが読取りコマンド、書込みコマンド、および読取りコマンドへの応答の1つ以上を含む、請求項3に記載のメモリ・システム。
  5. 前記パフォーマンス・モニタが、規定時間の経過またはイベント数しきい値への到達の1つ以上が起きた後に、前記イベント・カウンタ・アレイ内の1つ以上のエントリを、イベント頻度アレイ内にロードする、請求項3に記載のメモリ・システム。
  6. 前記パフォーマンス・モニタが、さらに、前記イベント・カウンタ・アレイをリセットし、イベント頻度アレイ・ロード・ポインタをインクリメントする、請求項5に記載のメモリ・システム。
  7. 前記パフォーマンス・モニタが、関連するイベント間の経過時間を記録するためのビン・カウンタを含む、請求項1に記載のメモリ・システム。
  8. 前記関連するイベントが読取りコマンドおよび前記読取りコマンドへの応答を含む、請求項7に記載のメモリ・システム。
  9. 前記パフォーマンス・モニタが、規定時間の経過またはイベント数しきい値への到達の1つ以上が起きた後に、前記ビン・カウンタ内の1つ以上のエントリをイベント頻度アレイへ転送する、請求項7に記載のメモリ・システム。
  10. 前記パフォーマンス・モニタが、さらに、前記ビン・カウンタをリセットし、イベント頻度アレイ・ロード・ポインタをインクリメントする、請求項9に記載のメモリ・システム。
  11. 前記パフォーマンス・モニタが、前記アドレス情報、制御情報、およびデータ情報の1つ以上を経時的に記録するためのトレース・アレイを含む、請求項1に記載のメモリ・システム。
  12. 前記パフォーマンス・モニタがイベント・カウンタおよびビン・カウンタにしきい値を設定し、これらのしきい値の1つ以上が超過されると、前記トレース・アレイが停止され、それにより、不測のイベントの発生が示されると前記トレース・アレイを停止させる、請求項11に記載のメモリ・システム。
  13. 複数のメモリ・デバイスと、メモリ・バスに接続するメモリ・ハブ・デバイスとを含むメモリ・サブシステムであって、
    アドレス情報、制御情報、およびデータ情報の1つ以上を、前記メモリ・バスを介して前記メモリ・ハブ・デバイスとメモリ・コントローラとの間で転送するためのメモリ・インタフェースと、
    前記メモリ・デバイスに接続するメモリ・デバイス・インタフェースと、
    サブシステム動作中の規定時間間隔に亘って、メモリ・バスの利用、メモリ・デバイスの利用、およびパフォーマンス特性の1つ以上をモニタし報告するためのパフォーマンス・モニタと
    を含むメモリ・サブシステム。
  14. メモリ・アクセス要求を受信しそれに応答するためのメモリ・コントローラであって、
    アドレス情報、制御情報、およびデータ情報の1つ以上を、メモリ・バスを介して前記メモリ・コントローラと1つ以上のハブ・デバイスとの間で転送するためのメモリ・インタフェースと、
    システム動作中の規定時間間隔に亘って、メモリ・バスの利用およびパフォーマンス特性の1つ以上をモニタし報告するためのパフォーマンス・モニタと
    を含むメモリ・コントローラ。
  15. メモリ・ハブ・デバイスであって、
    アドレス情報、制御情報、およびデータ情報の1つ以上を、メモリ・バスを介して前記メモリ・ハブ・デバイスとメモリ・コントローラとの間で転送するためのメモリ・インタフェースと、
    メモリ・デバイスに接続するメモリ・デバイス・インタフェースと、
    サブシステム動作中の規定時間間隔に亘って、メモリ・バスの利用、メモリ・デバイスの利用、およびパフォーマンス特性の1つ以上をモニタし報告するためのパフォーマンス・モニタと
    を含むメモリ・ハブ・デバイス。
  16. ハブ・デバイスにおける特定のイベントの発生を検出するステップであって、前記イベントがタイプにより特徴づけられているステップと、
    検出された各タイプのイベントの数および関連する各イベント間の経過時間を記録するステップと、
    規定時間中またはイベント数しきい値に到達するまで、前記検出および記録を継続するステップと、
    前記規定時間の後または前記イベント数しきい値に到達した後に、前記記録されたデータをイベント頻度アレイに格納するステップと
    を含む、パフォーマンス・モニタリングを提供する方法。
  17. 1つ以上のトレース・アレイを実行して、経時的に前記メモリ・ハブ・デバイスにより受信されたアドレス情報、制御情報、およびデータ情報の1つ以上を記録することをさらに含む、請求項16に記載の方法。
  18. 事前に選択されたカウンタ値が超過されと、前記トレース・アレイにおける前記実行が停止され、それにより、不測のイベントの発生が示されると、前記トレース・アレイを停止させる、請求項17に記載の方法。
  19. 前記イベント頻度アレイのコンテンツを出力することをさらに含む、請求項16に記載の方法。
  20. 前記イベント頻度アレイのコンテンツに応答して、利用統計およびパフォーマンス特性を生成することをさらに含む、請求項16に記載の方法。
JP2007198416A 2006-08-01 2007-07-31 パフォーマンス・モニタリングを提供するメモリ・システム・方法 Active JP5063240B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/461567 2006-08-01
US11/461,567 US7493439B2 (en) 2006-08-01 2006-08-01 Systems and methods for providing performance monitoring in a memory system

Publications (2)

Publication Number Publication Date
JP2008041089A true JP2008041089A (ja) 2008-02-21
JP5063240B2 JP5063240B2 (ja) 2012-10-31

Family

ID=39030618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007198416A Active JP5063240B2 (ja) 2006-08-01 2007-07-31 パフォーマンス・モニタリングを提供するメモリ・システム・方法

Country Status (3)

Country Link
US (2) US7493439B2 (ja)
JP (1) JP5063240B2 (ja)
CN (1) CN101118782B (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010009352A (ja) * 2008-06-27 2010-01-14 Fujitsu Ltd データ転送装置、情報処理装置、データ転送方法
WO2010029830A1 (ja) * 2008-09-12 2010-03-18 株式会社日立製作所 半導体装置および情報処理システム
JP2011530736A (ja) * 2008-08-05 2011-12-22 マイクロン テクノロジー, インク. フレキシブルで拡張可能なメモリアーキテクチャ
KR101102171B1 (ko) 2008-10-06 2012-01-02 엔비디아 코포레이션 캐스케이딩된 메모리들을 활용하여 처리 성능들을 평가하기 위한 미디어 캡쳐 시스템, 방법, 및 컴퓨터 판독 가능한 기록 매체
JP2013016117A (ja) * 2011-07-06 2013-01-24 Olympus Corp バスモニタ装置、バスモニタ方法、およびプログラム
CN104794047A (zh) * 2014-01-16 2015-07-22 塔塔咨询服务有限公司 性能指标的相关性分析
US9448953B2 (en) 2012-07-19 2016-09-20 International Business Machines Corporation Memory subsystem and computer system
KR20170025738A (ko) * 2015-08-31 2017-03-08 삼성전자주식회사 스토리지 장치 및 그 제어 방법
US20230027611A1 (en) * 2021-07-26 2023-01-26 Realtek Semiconductor Corporation Power supply device, power supply system and non-transitory computer-readable recording medium

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004008910A1 (de) * 2004-02-24 2005-09-08 Robert Bosch Gmbh Verfahren und Kommunikationssystem zur Übertragung von Informationen in einem Kraftfahrzeug
US20060123179A1 (en) * 2004-12-03 2006-06-08 Wong Kar L Controlling issuance of requests
US7840732B2 (en) * 2006-09-25 2010-11-23 Honeywell International Inc. Stacked card address assignment
DE102007006508B4 (de) * 2007-02-09 2012-11-15 Texas Instruments Deutschland Gmbh Mikrocontroller mit Speicher-Trace-Modul
US7979616B2 (en) * 2007-06-22 2011-07-12 International Business Machines Corporation System and method for providing a configurable command sequence for a memory interface device
US9779235B2 (en) * 2007-10-17 2017-10-03 Sukamo Mertoguno Cognizant engines: systems and methods for enabling program observability and controlability at instruction level granularity
US20100161277A1 (en) * 2008-12-24 2010-06-24 Elkiem Centre Pty Limited. Networked evaluation system
US8566639B2 (en) * 2009-02-11 2013-10-22 Stec, Inc. Flash backed DRAM module with state of health and/or status information accessible through a configuration data bus
US8321618B1 (en) * 2009-07-28 2012-11-27 Nvidia Corporation Managing conflicts on shared L2 bus
US8195858B1 (en) 2009-07-28 2012-06-05 Nvidia Corporation Managing conflicts on shared L2 bus
KR101262846B1 (ko) * 2009-12-15 2013-05-10 한국전자통신연구원 임베디드 단말 성능 측정 장치 및 방법
CN101847104A (zh) * 2010-05-19 2010-09-29 深圳市九洲电器有限公司 一种内存参数的配置方法、系统及嵌入式设备
US8762783B2 (en) * 2010-06-24 2014-06-24 International Business Machines Corporation Error identification
JP5716400B2 (ja) * 2011-01-05 2015-05-13 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US8996822B2 (en) 2011-07-29 2015-03-31 Micron Technology, Inc. Multi-device memory serial architecture
WO2013048385A1 (en) 2011-09-28 2013-04-04 Intel Corporation Maximum-likelihood decoder in a memory controller for synchronization
US9342453B2 (en) 2011-09-30 2016-05-17 Intel Corporation Memory channel that supports near memory and far memory access
WO2013048500A1 (en) 2011-09-30 2013-04-04 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
EP3346386B1 (en) 2011-09-30 2020-01-22 Intel Corporation Non-volatile random access memory (nvram) as a replacement for traditional mass storage
EP2761476B1 (en) 2011-09-30 2017-10-25 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
CN103946812B (zh) 2011-09-30 2017-06-09 英特尔公司 用于实现多级别存储器分级体系的设备和方法
WO2013048467A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Generation of far memory access signals based on usage statistic tracking
CN103946814B (zh) 2011-09-30 2017-06-06 英特尔公司 计算机系统中的非易失性随机存取存储器的自主初始化
WO2013048503A1 (en) 2011-09-30 2013-04-04 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
WO2013055399A1 (en) * 2011-10-12 2013-04-18 Qualcomm Incorporated Central processing unit monitoring and management based on a busy-idle histogram
CN102439577B (zh) * 2011-10-31 2014-01-22 华为技术有限公司 一种构建内存访问模型的方法及装置
WO2013077867A1 (en) 2011-11-22 2013-05-30 Intel Corporation Access control for non-volatile random access memory across platform agents
US9829951B2 (en) 2011-12-13 2017-11-28 Intel Corporation Enhanced system sleep state support in servers using non-volatile random access memory
WO2013089686A1 (en) 2011-12-13 2013-06-20 Intel Corporation A method and system for providing instant responses to sleep state transitions with non-volatile random access memory
WO2013095385A1 (en) 2011-12-20 2013-06-27 Intel Corporation Apparatus and method for phase change memory drift management
DE112011105984T5 (de) 2011-12-20 2014-09-18 Intel Corporation Dynamische teilweise Abschaltung eines arbeitsspeicherseitigen Zwischenspeichers in einer Arbeitsspeicherhierarchie auf zwei Ebenen
CN103999067A (zh) 2011-12-21 2014-08-20 英特尔公司 以多个非易失性存储器为特征的高性能存储结构和系统
WO2013095559A1 (en) 2011-12-22 2013-06-27 Intel Corporation Power conservation by way of memory channel shutdown
US9396118B2 (en) 2011-12-28 2016-07-19 Intel Corporation Efficient dynamic randomizing address remapping for PCM caching to improve endurance and anti-attack
TWI607454B (zh) * 2012-02-13 2017-12-01 中村維男 無記憶體瓶頸的行進記憶體,雙向行進記憶體,複雜行進記憶體,及計算機系統
US9183041B2 (en) * 2012-09-21 2015-11-10 International Business Machines Corporation Input/output traffic backpressure prediction
US9032177B2 (en) * 2012-12-04 2015-05-12 HGST Netherlands B.V. Host read command return reordering based on time estimation of flash read command completion
US9298651B2 (en) * 2013-06-24 2016-03-29 International Business Machines Corporation Continuous in-memory accumulation of hardware performance counter data
WO2015057865A1 (en) 2013-10-15 2015-04-23 Rambus Inc. Load reduced memory module
US9465709B2 (en) * 2013-11-22 2016-10-11 Netapp, Inc. System and method for providing performance sampling in a computing system
US9229841B2 (en) 2014-03-10 2016-01-05 Qualcomm Incorporated Systems and methods for detecting errors and recording actions on a bus
US9626270B2 (en) * 2014-09-26 2017-04-18 Intel Corporation Link retraining based on runtime performance characteristics
US10204047B2 (en) 2015-03-27 2019-02-12 Intel Corporation Memory controller for multi-level system memory with coherency unit
US10387259B2 (en) 2015-06-26 2019-08-20 Intel Corporation Instant restart in non volatile system memory computing systems with embedded programmable data checking
US10073659B2 (en) 2015-06-26 2018-09-11 Intel Corporation Power management circuit with per activity weighting and multiple throttle down thresholds
EP3332232A1 (en) * 2015-08-03 2018-06-13 Missio B.V. Data loggger and sampling and encoding methods for use in a data logger
US10108549B2 (en) 2015-09-23 2018-10-23 Intel Corporation Method and apparatus for pre-fetching data in a system having a multi-level system memory
US10185501B2 (en) 2015-09-25 2019-01-22 Intel Corporation Method and apparatus for pinning memory pages in a multi-level system memory
US10261901B2 (en) 2015-09-25 2019-04-16 Intel Corporation Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory
US9792224B2 (en) 2015-10-23 2017-10-17 Intel Corporation Reducing latency by persisting data relationships in relation to corresponding data in persistent memory
US10033411B2 (en) 2015-11-20 2018-07-24 Intel Corporation Adjustable error protection for stored data
US10095618B2 (en) 2015-11-25 2018-10-09 Intel Corporation Memory card with volatile and non volatile memory space having multiple usage model configurations
US9471778B1 (en) 2015-11-30 2016-10-18 International Business Machines Corporation Automatic baselining of anomalous event activity in time series data
US9747041B2 (en) 2015-12-23 2017-08-29 Intel Corporation Apparatus and method for a non-power-of-2 size cache in a first level memory device to cache data present in a second level memory device
US10007606B2 (en) 2016-03-30 2018-06-26 Intel Corporation Implementation of reserved cache slots in computing system having inclusive/non inclusive tracking and two level system memory
US10185619B2 (en) 2016-03-31 2019-01-22 Intel Corporation Handling of error prone cache line slots of memory side cache of multi-level system memory
KR102529187B1 (ko) * 2016-03-31 2023-05-04 삼성전자주식회사 복수의 통신 규격들을 지원하는 수신 인터페이스 회로 및 이를 포함하는 메모리 시스템
US10120806B2 (en) 2016-06-27 2018-11-06 Intel Corporation Multi-level system memory with near memory scrubbing based on predicted far memory idle time
GB2553102B (en) * 2016-08-19 2020-05-20 Advanced Risc Mach Ltd A memory unit and method of operation of a memory unit to handle operation requests
US10915453B2 (en) 2016-12-29 2021-02-09 Intel Corporation Multi level system memory having different caching structures and memory controller that supports concurrent look-up into the different caching structures
US10445261B2 (en) 2016-12-30 2019-10-15 Intel Corporation System memory having point-to-point link that transports compressed traffic
US11003381B2 (en) * 2017-03-07 2021-05-11 Samsung Electronics Co., Ltd. Non-volatile memory storage device capable of self-reporting performance capabilities
US10304814B2 (en) 2017-06-30 2019-05-28 Intel Corporation I/O layout footprint for multiple 1LM/2LM configurations
US10481944B2 (en) 2017-08-09 2019-11-19 Xilinx, Inc. Adaptive quality of service control circuit
US11188467B2 (en) 2017-09-28 2021-11-30 Intel Corporation Multi-level system memory with near memory capable of storing compressed cache lines
US10446198B2 (en) 2017-10-02 2019-10-15 Micron Technology, Inc. Multiple concurrent modulation schemes in a memory system
US10725913B2 (en) * 2017-10-02 2020-07-28 Micron Technology, Inc. Variable modulation scheme for memory device access or operation
US11403241B2 (en) 2017-10-02 2022-08-02 Micron Technology, Inc. Communicating data with stacked memory dies
US10860244B2 (en) 2017-12-26 2020-12-08 Intel Corporation Method and apparatus for multi-level memory early page demotion
US20190258730A1 (en) * 2018-02-22 2019-08-22 Beckman Coulter, Inc. Time slicing massive data processing
US11099995B2 (en) 2018-03-28 2021-08-24 Intel Corporation Techniques for prefetching data to a first level of memory of a hierarchical arrangement of memory
US10778552B2 (en) * 2018-04-30 2020-09-15 Hewlett Packard Enterprise Development Lp Storage system latency evaluation based on I/O patterns
US11070455B2 (en) 2018-04-30 2021-07-20 Hewlett Packard Enterprise Development Lp Storage system latency outlier detection
CN109101451A (zh) * 2018-07-12 2018-12-28 比飞力(深圳)科技有限公司 芯片串联电路、计算设备及通信方法
US11055228B2 (en) 2019-01-31 2021-07-06 Intel Corporation Caching bypass mechanism for a multi-level memory
US11106519B2 (en) * 2019-04-03 2021-08-31 Micron Technology, Inc. Automotive electronic control unit reliability and safety during power standby mode
US11481117B2 (en) 2019-06-17 2022-10-25 Hewlett Packard Enterprise Development Lp Storage volume clustering based on workload fingerprints
CN110660425B (zh) * 2019-09-10 2021-07-30 北京航空航天大学 自旋随机存储器及使用方法
CN111177022B (zh) * 2019-12-26 2022-08-12 广东浪潮大数据研究有限公司 一种特征提取方法、装置、设备及存储介质
US11880291B2 (en) * 2020-07-07 2024-01-23 Micron Technology, Inc. Monitoring and reporting a status of a memory device
US11842080B2 (en) * 2021-04-27 2023-12-12 Micron Technology, Inc. Memory device health evaluation at a host device
CN113326046B (zh) * 2021-05-26 2023-09-26 网易(杭州)网络有限公司 获取编译时长的方法和装置
US20230176958A1 (en) * 2021-12-03 2023-06-08 International Business Machines Corporation Monitoring code coverage

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6297044A (ja) * 1985-10-24 1987-05-06 Hitachi Electronics Eng Co Ltd プログラムトレ−ス装置
JPH06187256A (ja) * 1992-12-18 1994-07-08 Nec Corp バストレース機構
JPH0981405A (ja) * 1995-09-11 1997-03-28 Hitachi Ltd コンピュータシステムのリトライ処理装置
WO2005065205A2 (en) * 2003-12-29 2005-07-21 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
JP2005258552A (ja) * 2004-03-09 2005-09-22 Nec Corp イベント解析装置
WO2008065205A1 (fr) * 2006-12-01 2008-06-05 Thales Dispositif d'entree de donnees et procede de mise en oeuvre du dispositif

Family Cites Families (146)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL220449A (ja) * 1956-09-04
US3333253A (en) * 1965-02-01 1967-07-25 Ibm Serial-to-parallel and parallel-toserial buffer-converter using a core matrix
US3395400A (en) * 1966-04-26 1968-07-30 Bell Telephone Labor Inc Serial to parallel data converter
US4028675A (en) * 1973-05-14 1977-06-07 Hewlett-Packard Company Method and apparatus for refreshing semiconductor memories in multi-port and multi-module memory system
US3825904A (en) * 1973-06-08 1974-07-23 Ibm Virtual memory system
US4135240A (en) * 1973-07-09 1979-01-16 Bell Telephone Laboratories, Incorporated Protection of data file contents
US4472780A (en) 1981-09-28 1984-09-18 The Boeing Company Fly-by-wire lateral control system
US4453215A (en) * 1981-10-01 1984-06-05 Stratus Computer, Inc. Central processing apparatus for fault-tolerant computing
US4475194A (en) 1982-03-30 1984-10-02 International Business Machines Corporation Dynamic replacement of defective memory words
US4641263A (en) * 1982-05-17 1987-02-03 Digital Associates Corporation Controller system or emulating local parallel minicomputer/printer interface and transferring serial data to remote line printer
US4486739A (en) 1982-06-30 1984-12-04 International Business Machines Corporation Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code
US4833605A (en) * 1984-08-16 1989-05-23 Mitsubishi Denki Kabushiki Kaisha Cascaded information processing module having operation unit, parallel port, and serial port for concurrent data transfer and data processing
US4683555A (en) * 1985-01-22 1987-07-28 Texas Instruments Incorporated Serial accessed semiconductor memory with reconfigureable shift registers
US4740916A (en) * 1985-12-19 1988-04-26 International Business Machines Corporation Reconfigurable contiguous address space memory system including serially connected variable capacity memory modules and a split address bus
US4723120A (en) * 1986-01-14 1988-02-02 International Business Machines Corporation Method and apparatus for constructing and operating multipoint communication networks utilizing point-to point hardware and interfaces
EP0269812B1 (de) * 1986-10-16 1991-02-06 Siemens Aktiengesellschaft Verfahren und Anordnung zur Versorgung einer Taktleitung mit einem von zwei Taktsignalen in Abhängigkeit vom Pegel eines der beiden Taktsignale
JPS63231550A (ja) * 1987-03-19 1988-09-27 Hitachi Ltd 多重仮想空間制御方式
US4803485A (en) * 1987-03-23 1989-02-07 Amp Incorporated Lan communication system and medium adapter for use therewith
US4943984A (en) * 1988-06-24 1990-07-24 International Business Machines Corporation Data processing system parallel data bus having a single oscillator clocking apparatus
JP3038781B2 (ja) * 1989-04-21 2000-05-08 日本電気株式会社 メモリアクセス制御回路
US5053947A (en) 1989-09-29 1991-10-01 Allegro Microsystems, Inc. Extended multistation bus system and method
US5206946A (en) * 1989-10-27 1993-04-27 Sand Technology Systems Development, Inc. Apparatus using converters, multiplexer and two latches to convert SCSI data into serial data and vice versa
JP2724893B2 (ja) * 1989-12-28 1998-03-09 三菱電機株式会社 半導体集積回路装置
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5517626A (en) 1990-05-07 1996-05-14 S3, Incorporated Open high speed bus for microcomputer system
GB2246494B (en) 1990-05-25 1994-08-31 Silicon Systems Inc Method and apparatus for serial communications
EP0463973A3 (en) * 1990-06-29 1993-12-01 Digital Equipment Corp Branch prediction in high performance processor
CA2045789A1 (en) 1990-06-29 1991-12-30 Richard Lee Sites Granularity hint for translation buffer in high performance processor
US5357621A (en) 1990-09-04 1994-10-18 Hewlett-Packard Company Serial architecture for memory module control
US5522064A (en) 1990-10-01 1996-05-28 International Business Machines Corporation Data processing apparatus for dynamically setting timings in a dynamic memory system
US5287531A (en) * 1990-10-31 1994-02-15 Compaq Computer Corp. Daisy-chained serial shift register for determining configuration of removable circuit boards in a computer system
US5214747A (en) * 1990-12-24 1993-05-25 Eastman Kodak Company Segmented neural network with daisy chain control
JP2999845B2 (ja) 1991-04-25 2000-01-17 沖電気工業株式会社 シリアルアクセスメモリの倍速コントロール方式
US5347270A (en) 1991-12-27 1994-09-13 Mitsubishi Denki Kabushiki Kaisha Method of testing switches and switching circuit
US5387911A (en) * 1992-02-21 1995-02-07 Gleichert; Marc C. Method and apparatus for transmitting and receiving both 8B/10B code and 10B/12B code in a switchable 8B/10B transmitter and receiver
US5715407A (en) * 1992-03-06 1998-02-03 Rambus, Inc. Process and apparatus for collision detection on a parallel bus by monitoring a first line of the bus during even bus cycles for indications of overlapping packets
US5375127A (en) 1992-03-25 1994-12-20 Ncr Corporation Method and apparatus for generating Reed-Soloman error correcting code across multiple word boundaries
US5265212A (en) 1992-04-01 1993-11-23 Digital Equipment Corporation Sharing of bus access among multiple state machines with minimal wait time and prioritization of like cycle types
EP0567707A1 (en) * 1992-04-30 1993-11-03 International Business Machines Corporation Implementation of column redundancy in a cache memory architecture
US5270964A (en) 1992-05-19 1993-12-14 Sun Microsystems, Inc. Single in-line memory module
JPH08500687A (ja) * 1992-08-10 1996-01-23 モノリシック・システム・テクノロジー・インコーポレイテッド ウェハ規模の集積化のためのフォルトトレラントな高速度のバス装置及びバスインタフェース
US5594925A (en) 1993-01-05 1997-01-14 Texas Instruments Incorporated Method and apparatus determining order and identity of subunits by inputting bit signals during first clock period and reading configuration signals during second clock period
US5544309A (en) 1993-04-22 1996-08-06 International Business Machines Corporation Data processing system with modified planar for boundary scan diagnostics
KR100253473B1 (ko) * 1993-10-12 2000-04-15 모리시타 요이찌 스크램블장치, 디스크램블장치 및 스크램블전송장치
US5845310A (en) * 1993-12-15 1998-12-01 Hewlett-Packard Co. System and methods for performing cache latency diagnostics in scalable parallel processing architectures including calculating CPU idle time and counting number of cache misses
US5822749A (en) 1994-07-12 1998-10-13 Sybase, Inc. Database system with methods for improving query performance with cache optimization strategies
US5611055A (en) * 1994-09-27 1997-03-11 Novalink Technologies Method and apparatus for implementing a PCMCIA auxiliary port connector for selectively communicating with peripheral devices
US5475690A (en) 1994-11-10 1995-12-12 Digital Equipment Corporation Delay compensated signal propagation
US6002411A (en) * 1994-11-16 1999-12-14 Interactive Silicon, Inc. Integrated video and memory controller with data processing and graphical processing capabilities
US6170047B1 (en) * 1994-11-16 2001-01-02 Interactive Silicon, Inc. System and method for managing system memory and/or non-volatile memory using a memory controller with integrated compression and decompression capabilities
US5513135A (en) * 1994-12-02 1996-04-30 International Business Machines Corporation Synchronous memory packaged in single/dual in-line memory module and method of fabrication
JP3467880B2 (ja) 1994-12-26 2003-11-17 ソニー株式会社 クロック信号発生装置
US5629685A (en) * 1995-02-23 1997-05-13 International Business Machines Corporation Segmentable addressable modular communication network hubs
IN188196B (ja) * 1995-05-15 2002-08-31 Silicon Graphics Inc
US5546023A (en) 1995-06-26 1996-08-13 Intel Corporation Daisy chained clock distribution scheme
US5852617A (en) 1995-12-08 1998-12-22 Samsung Electronics Co., Ltd. Jtag testing of buses using plug-in cards with Jtag logic mounted thereon
JPH09231130A (ja) 1996-02-26 1997-09-05 Mitsubishi Electric Corp マイクロコンピュータ
CN1217082A (zh) * 1996-03-21 1999-05-19 株式会社日立制作所 Dram内装数据处理器件
US5764155A (en) * 1996-04-03 1998-06-09 General Electric Company Dynamic data exchange server
JP3710198B2 (ja) 1996-04-18 2005-10-26 沖電気工業株式会社 Stm−n信号の誤り訂正符号化・復号化方法、stm−n信号の誤り訂正符号化回路及びstm−n信号の誤り訂正復号化回路
US5661677A (en) 1996-05-15 1997-08-26 Micron Electronics, Inc. Circuit and method for on-board programming of PRD Serial EEPROMS
US5917760A (en) 1996-09-20 1999-06-29 Sldram, Inc. De-skewing data signals in a memory system
JPH10173122A (ja) * 1996-12-06 1998-06-26 Mitsubishi Electric Corp メモリモジュール
US5926838A (en) 1997-03-19 1999-07-20 Micron Electronics Interface for high speed memory
US6138213A (en) 1997-06-27 2000-10-24 Advanced Micro Devices, Inc. Cache including a prefetch way for storing prefetch cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line
US6292903B1 (en) 1997-07-09 2001-09-18 International Business Machines Corporation Smart memory interface
US6011732A (en) 1997-08-20 2000-01-04 Micron Technology, Inc. Synchronous clock generator including a compound delay-locked loop
US6128746A (en) 1997-08-26 2000-10-03 International Business Machines Corporation Continuously powered mainstore for large memory subsystems
US6230236B1 (en) 1997-08-28 2001-05-08 Nortel Networks Corporation Content addressable memory system with cascaded memories and self timed signals
JP3445476B2 (ja) 1997-10-02 2003-09-08 株式会社東芝 半導体メモリシステム
US6378018B1 (en) * 1997-10-10 2002-04-23 Intel Corporation Memory device and system including a low power interface
US6085276A (en) 1997-10-24 2000-07-04 Compaq Computers Corporation Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies
US5917780A (en) * 1997-12-03 1999-06-29 Daniel Robbins Watch having a multiplicity of band attachment positions and wristband for use therewith
US6145028A (en) 1997-12-11 2000-11-07 Ncr Corporation Enhanced multi-pathing to an array of storage devices
US7373440B2 (en) * 1997-12-17 2008-05-13 Src Computers, Inc. Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format
US6096091A (en) 1998-02-24 2000-08-01 Advanced Micro Devices, Inc. Dynamically reconfigurable logic networks interconnected by fall-through FIFOs for flexible pipeline processing in a system-on-a-chip
US6185718B1 (en) * 1998-02-27 2001-02-06 International Business Machines Corporation Memory card design with parity and ECC for non-parity and non-ECC systems
US5870325A (en) * 1998-04-14 1999-02-09 Silicon Graphics, Inc. Memory system with multiple addressing and control busses
US6173382B1 (en) * 1998-04-28 2001-01-09 International Business Machines Corporation Dynamic configuration of memory module using modified presence detect data
US6003121A (en) 1998-05-18 1999-12-14 Intel Corporation Single and multiple channel memory detection and sizing
JPH11353228A (ja) * 1998-06-10 1999-12-24 Mitsubishi Electric Corp メモリモジュールシステム
US6170059B1 (en) * 1998-07-10 2001-01-02 International Business Machines Corporation Tracking memory modules within a computer system
US6260127B1 (en) 1998-07-13 2001-07-10 Compaq Computer Corporation Method and apparatus for supporting heterogeneous memory in computer systems
US6587912B2 (en) 1998-09-30 2003-07-01 Intel Corporation Method and apparatus for implementing multiple memory buses on a memory module
US5995405A (en) 1998-10-27 1999-11-30 Micron Technology, Inc. Memory module with flexible serial presence detect configuration
US6357018B1 (en) * 1999-01-26 2002-03-12 Dell Usa, L.P. Method and apparatus for determining continuity and integrity of a RAMBUS channel in a computer system
JP3275867B2 (ja) * 1999-01-26 2002-04-22 日本電気株式会社 スキャンテスト回路及びスキャンテスト回路を含む半導体集積回路及びスキャンテスト回路を搭載した半導体集積回路試験用基板
US6115278A (en) * 1999-02-09 2000-09-05 Silicon Graphics, Inc. Memory system with switching for data isolation
US6341315B1 (en) * 1999-02-26 2002-01-22 Crossroads Systems, Inc. Streaming method and system for fiber channel network devices
US6564329B1 (en) * 1999-03-16 2003-05-13 Linkup Systems Corporation System and method for dynamic clock generation
US6460107B1 (en) * 1999-04-29 2002-10-01 Intel Corporation Integrated real-time performance monitoring facility
JP3512678B2 (ja) 1999-05-27 2004-03-31 富士通株式会社 キャッシュメモリ制御装置および計算機システム
US6393528B1 (en) * 1999-06-30 2002-05-21 International Business Machines Corporation Optimized cache allocation algorithm for multiple speculative requests
US6839393B1 (en) * 1999-07-14 2005-01-04 Rambus Inc. Apparatus and method for controlling a master/slave system via master device synchronization
US6549971B1 (en) * 1999-08-26 2003-04-15 International Business Machines Corporation Cascaded differential receiver circuit
US6484271B1 (en) 1999-09-16 2002-11-19 Koninklijke Philips Electronics N.V. Memory redundancy techniques
US6467013B1 (en) 1999-09-30 2002-10-15 Intel Corporation Memory transceiver to couple an additional memory channel to an existing memory channel
US6262493B1 (en) 1999-10-08 2001-07-17 Sun Microsystems, Inc. Providing standby power to field replaceable units for electronic systems
US6889284B1 (en) * 1999-10-19 2005-05-03 Intel Corporation Method and apparatus for supporting SDRAM memory
US6557069B1 (en) * 1999-11-12 2003-04-29 International Business Machines Corporation Processor-memory bus architecture for supporting multiple processors
US6513091B1 (en) * 1999-11-12 2003-01-28 International Business Machines Corporation Data routing using status-response signals
JP2001167077A (ja) * 1999-12-09 2001-06-22 Nec Kofu Ltd ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
US6601149B1 (en) * 1999-12-14 2003-07-29 International Business Machines Corporation Memory transaction monitoring system and user interface
US6487627B1 (en) 1999-12-22 2002-11-26 Intel Corporation Method and apparatus to manage digital bus traffic
US6408398B1 (en) * 1999-12-29 2002-06-18 Intel Corporation Method and apparatus for detecting time domains on a communication channel
US6219288B1 (en) * 2000-03-03 2001-04-17 International Business Machines Corporation Memory having user programmable AC timings
JP2001290697A (ja) * 2000-04-06 2001-10-19 Hitachi Ltd 情報処理システム
US6704842B1 (en) * 2000-04-12 2004-03-09 Hewlett-Packard Development Company, L.P. Multi-processor system with proactive speculative data transfer
US6721944B2 (en) * 2000-05-31 2004-04-13 Sun Microsystems, Inc. Marking memory elements based upon usage of accessed information during speculative execution
US6697919B2 (en) * 2000-06-10 2004-02-24 Hewlett-Packard Development Company, L.P. System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system
US6415376B1 (en) * 2000-06-16 2002-07-02 Conexant Sytems, Inc. Apparatus and method for issue grouping of instructions in a VLIW processor
US6446174B1 (en) 2000-07-11 2002-09-03 Intel Corporation Computer system with dram bus
US6738836B1 (en) * 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
US6487102B1 (en) 2000-09-18 2002-11-26 Intel Corporation Memory module having buffer for isolating stacked memory devices
US6553450B1 (en) * 2000-09-18 2003-04-22 Intel Corporation Buffer to multiply memory interface
US6317352B1 (en) 2000-09-18 2001-11-13 Intel Corporation Apparatus for implementing a buffered daisy chain connection between a memory controller and memory modules
US6625685B1 (en) * 2000-09-20 2003-09-23 Broadcom Corporation Memory controller with programmable configuration
US6532525B1 (en) * 2000-09-29 2003-03-11 Ati Technologies, Inc. Method and apparatus for accessing memory
US6510100B2 (en) * 2000-12-04 2003-01-21 International Business Machines Corporation Synchronous memory modules and memory systems with selectable clock termination
US6993612B2 (en) * 2000-12-07 2006-01-31 Micron Technology, Inc. Arbitration method for a source strobed bus
US6934785B2 (en) * 2000-12-22 2005-08-23 Micron Technology, Inc. High speed interface with looped bus
TW527537B (en) * 2001-01-03 2003-04-11 Leadtek Research Inc Conversion device of SDR and DDR, and interface card, motherboard and memory module interface using the same
US6678811B2 (en) * 2001-04-07 2004-01-13 Hewlett-Packard Development Company, L.P. Memory controller with 1X/MX write capability
US6721185B2 (en) * 2001-05-01 2004-04-13 Sun Microsystems, Inc. Memory module having balanced data I/O contacts pads
US20030090879A1 (en) * 2001-06-14 2003-05-15 Doblar Drew G. Dual inline memory module
US7245632B2 (en) * 2001-08-10 2007-07-17 Sun Microsystems, Inc. External storage for modular computer systems
US7209996B2 (en) * 2001-10-22 2007-04-24 Sun Microsystems, Inc. Multi-core multi-thread processor
US6854043B2 (en) * 2002-07-05 2005-02-08 Hewlett-Packard Development Company, L.P. System and method for multi-modal memory controller system operation
JP2004093462A (ja) * 2002-09-02 2004-03-25 Oki Electric Ind Co Ltd 半導体集積回路とその試験方法
US6918007B2 (en) * 2002-09-09 2005-07-12 Hewlett-Packard Development Company, L.P. Memory controller interface with XOR operations on memory read to accelerate RAID operations
US20040117588A1 (en) * 2002-12-12 2004-06-17 International Business Machines Corporation Access request for a data processing system having no system memory
US7260685B2 (en) * 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
DE10330812B4 (de) * 2003-07-08 2006-07-06 Infineon Technologies Ag Halbleiterspeichermodul
KR100500454B1 (ko) * 2003-07-28 2005-07-12 삼성전자주식회사 메모리 모듈 테스트 시스템 및 메모리 모듈 평가 시스템
US20050050237A1 (en) * 2003-08-28 2005-03-03 Jeddeloh Joseph M. Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7194593B2 (en) * 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US20050080581A1 (en) * 2003-09-22 2005-04-14 David Zimmerman Built-in self test for memory interconnect testing
US7113418B2 (en) * 2003-11-04 2006-09-26 Hewlett-Packard Development Company, L.P. Memory systems and methods
US7073010B2 (en) * 2003-12-02 2006-07-04 Super Talent Electronics, Inc. USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
US7752470B2 (en) * 2003-12-03 2010-07-06 International Business Machines Corporation Method and system for power management including device controller-based device use evaluation and power-state control
US7155623B2 (en) * 2003-12-03 2006-12-26 International Business Machines Corporation Method and system for power management including local bounding of device group power consumption
JP4085389B2 (ja) * 2003-12-24 2008-05-14 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムにおける一貫性制御装置及び一貫性制御方法
US8621304B2 (en) * 2004-10-07 2013-12-31 Hewlett-Packard Development Company, L.P. Built-in self-test system and method for an integrated circuit
US7334070B2 (en) * 2004-10-29 2008-02-19 International Business Machines Corporation Multi-channel memory architecture for daisy chained arrangements of nodes with bridging between memory channels
US7694152B2 (en) * 2005-02-03 2010-04-06 International Business Machines Corporation Memory controller with performance-modulated security

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6297044A (ja) * 1985-10-24 1987-05-06 Hitachi Electronics Eng Co Ltd プログラムトレ−ス装置
JPH06187256A (ja) * 1992-12-18 1994-07-08 Nec Corp バストレース機構
JPH0981405A (ja) * 1995-09-11 1997-03-28 Hitachi Ltd コンピュータシステムのリトライ処理装置
WO2005065205A2 (en) * 2003-12-29 2005-07-21 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
JP2005258552A (ja) * 2004-03-09 2005-09-22 Nec Corp イベント解析装置
WO2008065205A1 (fr) * 2006-12-01 2008-06-05 Thales Dispositif d'entree de donnees et procede de mise en oeuvre du dispositif

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010009352A (ja) * 2008-06-27 2010-01-14 Fujitsu Ltd データ転送装置、情報処理装置、データ転送方法
JP2011530736A (ja) * 2008-08-05 2011-12-22 マイクロン テクノロジー, インク. フレキシブルで拡張可能なメモリアーキテクチャ
US9176907B2 (en) 2008-09-12 2015-11-03 Hitachi, Ltd. Semiconductor device and data processing system
WO2010029830A1 (ja) * 2008-09-12 2010-03-18 株式会社日立製作所 半導体装置および情報処理システム
JPWO2010029830A1 (ja) * 2008-09-12 2012-02-02 株式会社日立製作所 半導体装置および情報処理システム
JP5214736B2 (ja) * 2008-09-12 2013-06-19 株式会社日立製作所 半導体装置および情報処理システム
KR101102171B1 (ko) 2008-10-06 2012-01-02 엔비디아 코포레이션 캐스케이딩된 메모리들을 활용하여 처리 성능들을 평가하기 위한 미디어 캡쳐 시스템, 방법, 및 컴퓨터 판독 가능한 기록 매체
JP2013016117A (ja) * 2011-07-06 2013-01-24 Olympus Corp バスモニタ装置、バスモニタ方法、およびプログラム
US9026703B2 (en) 2011-07-06 2015-05-05 Olympus Corporation Bus monitoring device, bus monitoring method, and program
US10169263B2 (en) 2012-07-19 2019-01-01 International Business Machines Corporation Memory subsystem and computer system
US9448953B2 (en) 2012-07-19 2016-09-20 International Business Machines Corporation Memory subsystem and computer system
US10223303B2 (en) 2012-07-19 2019-03-05 International Business Machines Corporation Memory subsystem and computer system
CN104794047A (zh) * 2014-01-16 2015-07-22 塔塔咨询服务有限公司 性能指标的相关性分析
CN104794047B (zh) * 2014-01-16 2020-01-10 塔塔咨询服务有限公司 性能指标的相关性分析的方法和系统
KR20170025738A (ko) * 2015-08-31 2017-03-08 삼성전자주식회사 스토리지 장치 및 그 제어 방법
KR102288546B1 (ko) 2015-08-31 2021-08-10 삼성전자주식회사 스토리지 장치 및 그 제어 방법
US20230027611A1 (en) * 2021-07-26 2023-01-26 Realtek Semiconductor Corporation Power supply device, power supply system and non-transitory computer-readable recording medium
US11991011B2 (en) * 2021-07-26 2024-05-21 Realtek Semiconductor Corporation Power supply device, power supply system and non-transitory computer-readable recording medium

Also Published As

Publication number Publication date
CN101118782A (zh) 2008-02-06
CN101118782B (zh) 2012-01-18
JP5063240B2 (ja) 2012-10-31
US7493439B2 (en) 2009-02-17
US20090119466A1 (en) 2009-05-07
US20080034148A1 (en) 2008-02-07
US7984222B2 (en) 2011-07-19

Similar Documents

Publication Publication Date Title
JP5063240B2 (ja) パフォーマンス・モニタリングを提供するメモリ・システム・方法
US7669086B2 (en) Systems and methods for providing collision detection in a memory system
US7624225B2 (en) System and method for providing synchronous dynamic random access memory (SDRAM) mode register shadowing in a memory system
US7606988B2 (en) Systems and methods for providing a dynamic memory bank page policy
US7587559B2 (en) Systems and methods for memory module power management
US8151042B2 (en) Method and system for providing identification tags in a memory system having indeterminate data response times
US7636813B2 (en) Systems and methods for providing remote pre-fetch buffers
US7603526B2 (en) Systems and methods for providing dynamic memory pre-fetch
US7581073B2 (en) Systems and methods for providing distributed autonomous power management in a memory system
US7594055B2 (en) Systems and methods for providing distributed technology independent memory controllers
CN101405708B (zh) 自动计算机器的存储器系统
US7952944B2 (en) System for providing on-die termination of a control signal bus
CN105373443B (zh) 具有存储器系统体系结构的数据系统和数据读取方法
US8015426B2 (en) System and method for providing voltage power gating
KR20060111658A (ko) 컴퓨터 시스템에서의 전력 관리 방법 및 장치
US11144410B2 (en) System and method to dynamically increase memory channel robustness at high transfer rates
CN114902187A (zh) 非易失性存储器模块的错误恢复
CN114902197A (zh) 非易失性双列直插式存储器模块的命令重放
CN115762621A (zh) 不可校正的存储器错误预测

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100423

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120510

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20120510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120510

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120710

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120807

R150 Certificate of patent or registration of utility model

Ref document number: 5063240

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150817

Year of fee payment: 3