(57)【要約】一形態では、データ処理システムは、複数のランクを有するメモリチャネルと、データプロセッサと、を含む。データプロセッサは、メモリチャネルに接続されており、複数のランクの各々にアクセスするように構成されている。データプロセッサは、所定のイベントを検出したことに応じて、複数のランクのうちアクティブなランクを選択し、アクティブなランク以外の他のランクを低電力状態にする。この場合、他のランクは、所定のイベントを検出したときに保留中の要求を有する少なくとも１つのランクを含む。次に、データプロセッサは、アクティブなランクに対するメモリアクセス要求を処理する。【選択図】図６
2019522257.tif 000002
【特許請求の範囲】
【請求項１】
複数のランク（１３４／１３６／１３８）を含むメモリチャネル（１３０）と、
前記メモリチャネル（１３０）に接続され、前記複数のランク（１３４／１３６／１３８）の各々にアクセスするように構成されたデータプロセッサ（１１０）と、を備え、
前記データプロセッサ（１１０）は、
所定のイベントの検出に応じて、前記複数のランク（１３４／１３６／１３８）のうちアクティブなランクを選択することと、
前記アクティブなランク以外の他のランクを低電力状態にすることであって、前記他のランクは、前記所定のイベントを検出したときに保留中の要求を有する少なくとも１つのランクを含む、ことと、
前記アクティブなランクに対するメモリアクセス要求を処理することと、
を行うように構成されている、
データ処理システム（１００）。
【請求項２】
前記所定のイベントは熱イベントを示し、前記複数のランクのうち前記少なくとも１つのランクは、前記熱イベントを示すイベント信号を提供するための出力を有する温度センサを含む、
請求項１のデータ処理システム（１００）。
【請求項３】
前記複数のランクの各々は、イベント入力導体に接続された対応するオープンドレイン出力を有する、対応する温度センサを含む、
請求項２のデータ処理システム（１００）。
【請求項４】
前記データプロセッサ（１１０）は、前記所定のイベントが終了していないことを検出し、所定の基準に基づいて別のランクを選択しないことを決定したことに応じて、前記アクティブなランクにおいて次のコマンドを処理する、
請求項１のデータ処理システム（１００）。
【請求項５】
前記所定の基準は、前記アクティブなランク内に少なくとも１つの保留中の要求があることを含む、
請求項４のデータ処理システム（１００）。
【請求項６】
前記所定の基準は、前記アクティブなランクの現在のページ内に少なくとも１つの保留中の要求があることを含む、
請求項４のデータ処理システム（１００）。
【請求項７】
前記所定の基準は、前記アクティブなランク内に少なくとも１つの保留中の要求があることと、他のランクに対する所定数の要求よりも少ないこととを含む、
請求項４のデータ処理システム（１００）。
【請求項８】
前記メモリチャネルは、複数のランクのダブルデータレート（ＤＤＲ）メモリを含む、
請求項１のデータ処理システム（１００）。
【請求項９】
前記低電力状態は、ＤＤＲ低電力状態を含む、
請求項８のデータ処理システム（１００）。
【請求項１０】
メモリアクセスエージェント（２１０／２２０）と、
前記メモリアクセスエージェント（２１０／２２０）に接続され、第１の複数のランク（１３２／１３３／１３４）を含むメモリシステム（１２０）に接続するように構成されたメモリコントローラ（２９２／３００／４００）と、を備え、
前記メモリコントローラ（２９２／３００／４００）は、
第１の所定のイベントの検出に応じて、前記第１の複数のランク（１３２／１３３／１３４）のうちアクティブなランクを選択することと、
前記第１の複数のランク（１３４／１３６／１３８）のうちアクティブなランク以外の他のランクを低電力状態にすることであって、前記他のランクは、前記所定のイベントを検出したときに保留中の要求を有する少なくとも１つのランクを含む、ことと、
前記アクティブなランクに対する少なくとも１つのメモリアクセス要求を処理することと、
を行うように構成されている、
データプロセッサ（１１０／２００）。
【請求項１１】
前記第１の所定のイベントは熱イベントを含む、
請求項１０のデータプロセッサ（１１０／２００）。
【請求項１２】
前記低電力状態は、アクティブパワーダウン状態、プリチャージパワーダウン状態及びセルフリフレッシュ状態のうち１つを含む、
請求項１０のデータプロセッサ（１１０／２００）。
【請求項１３】
前記メモリコントローラ（２９２／３００／４００）は、ダブルデータレート（ＤＤＲ）バージョン４（ＤＤＲ４）メモリチャネル、グラフィックスＤＤＲバージョン５（ｇＤＤＲ５）メモリチャネル及び高帯域幅メモリ（ＨＢＭ）メモリチャネルのうち少なくとも１つにアクセスするように構成されている、
請求項１０のデータプロセッサ（１１０／２００）。
【請求項１４】
前記メモリコントローラ（２９２／３００／４００）は、
第１の複数のアクセス要求を受信し、前記第１の複数のアクセス要求に応じてデータを実行するための第１のホストインタフェース（３１２／４１２）と、第１の物理インタフェース（３１６／４１６）と、に接続された第１のメモリチャネルコントローラ（３１４／４１４）と、
前記第１のメモリチャネルコントローラ（３１４／４１４）に接続された電源エンジン（３２０／４３０）であって、前記第１の所定のイベントに応じて、前記第１のメモリチャネルコントローラ（３１４／４１４）に対して、前記第１の複数のランク（１３４／１３６／１３８）のうちアクティブなランクを選択させ、前記アクティブなランク以外の他のランクを低電力状態にさせる、電源エンジン（３２０／４３０）と、を備える、
請求項１０のデータプロセッサ（１１０／２００）。
【請求項１５】
前記メモリコントローラ（２９２／４００）は、
第２の複数のアクセス要求を受信し、前記第２の複数のアクセス要求に応じてデータを実行するための第２のホストインタフェース（４２２）と、第２の物理インタフェース（４２６）と、に接続された第２のメモリチャネルコントローラ（４２４）を備え、
前記電源エンジン（４３０）は、第２の所定のイベントに応じて、前記第２のメモリチャネルコントローラ（４２４）に対して、第２の複数のランク（１４４／１４６／１４８）のうちアクティブなランクを選択させ、前記アクティブなランク以外の前記他のランクを低電力状態にさせる、
請求項１４のデータプロセッサ（１１０／２００）。
【請求項１６】
前記第１のメモリチャネルコントローラ（４１４）の前記第１の物理インタフェース（４１６）に接続され、前記第１の複数のランク（１３４／１３６／１３８）に接続されるように構成された、第１のデータプロセッサ物理インタフェース（４４０）と、
前記第２のメモリチャネルコントローラ（４２４）の前記第２の物理インタフェース（４２６）に接続され、前記第２の複数のランク（１４４／１４６／１４８）に接続されるように構成された、第２のデータプロセッサ物理インタフェース（４５０）と、を備える、
請求項１５のデータプロセッサ（１１０／２００）。
【請求項１７】
前記メモリコントローラ（２９２／３００／４００）は、
前記第１の所定のイベントが依然としてアクティブであることを検出したことと、所定の基準に基づいて別のランクを選択しないことを判別したことと、に応じて、前記アクティブなランクにおいて次のコマンドを処理する、
請求項１０のデータプロセッサ（１１０／２００）。
【請求項１８】
前記所定の基準は、前記アクティブなランク内に少なくとも１つの保留中の要求があることを含む、
請求項１７のデータプロセッサ（１１０／２００）。
【請求項１９】
前記所定の基準は、前記アクティブなランクの現在のページ内に少なくとも１つの保留中の要求があることを含む、
請求項１７のデータプロセッサ（１１０／２００）。
【請求項２０】
前記所定の基準は、前記アクティブなランク内に少なくとも１つの保留中の要求があることと、他のランクに対する所定数の要求よりも少なこととを含む、
請求項１７のデータプロセッサ（１１０／２００）。
【請求項２１】
メモリシステム（１２０）に対してメモリアクセスのスロットリングを行う方法（６００）であって、
熱イベントを検出すること（６３０）と、
前記熱イベントを検出したことに応じて、複数のランク（１２４／１２６／１２８）のうちアクティブなランクを選択し（６４０）、前記複数のランク（１２４／１２６／１２８）のうち前記アクティブなランク以外の他のランクを低電力状態にすること（６５０）であって、前記他のランクは、保留中の要求を有する少なくとも１つのランクを含む、ことと、
前記アクティブなランクに対する少なくとも１つのメモリアクセス要求を処理すること（６６０／６７０／６８０）と、を含む、
方法（６００）。
【請求項２２】
前記メモリシステム（１２０）は、ダブルデータレート（ＤＤＲ）メモリシステムを備え、
前記複数のランク（１２４／１２６／１２８）のうち前記他のランクを低電力状態にすることは、前記複数のランク（１２４／１２６／１２８）のうち前記他のランクをＤＤＲ低電力状態にすることを含む、
請求項２１の方法（６００）。
【請求項２３】
前記熱イベントを検出すること（６３０）は、システム温度を第１の閾値と比較することと、前記システム温度が前記第１の閾値以上であることを判別することと、を含む、
請求項２１の方法（６００）。
【請求項２４】
前記少なくとも１つのメモリアクセス要求を処理すること（６６０／６７０／６８０）は、
前記アクティブなランクにおいて次のコマンドを処理すること（６６０）と、
前記熱イベントが終了していないことを検出すること（６７０）と、
所定の基準に基づいて別のランクを選択するかどうかを決定すること（６８０）と、を含む、
請求項２３の方法（６００）。
【請求項２５】
前記所定の基準に基づいて別のランクを選択するかどうかを決定すること（６８０）は、
前記アクティブなランク内に少なくとも１つの保留中の要求があるかどうかを判別することを含む、
請求項２４の方法（６００）。
【請求項２６】
前記所定の基準に基づいて別のランクを選択するかどうかを決定すること（６８０）は、
前記アクティブなランクの現在のページ内に少なくとも１つの保留中の要求があるかどうかを判別することを含む、
請求項２４の方法（６００）。
【請求項２７】
前記所定の基準に基づいて別のランクを選択するかどうかを決定すること（６８０）は、
前記アクティブなランク内に少なくとも１つの保留中の要求があるかどうかと、他のランクに対する所定数の要求よりも少ないかどうかを判別することと、を含む、
請求項２４の方法（６００）。
【請求項２８】
前記熱イベントを検出する（６３０）前に、前記複数のランクのうち１つのランクにおいて少なくとも１つのアクセス要求を処理すること（６２０）を含む、
請求項２１の方法（６００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、データ処理システムに関し、より具体的には、低電力モードでメモリとインタフェースすることの可能なデータ処理システムに関する。
【背景技術】
【０００２】
コンピュータシステムは、通常、安価で高密度のダイナミックランダムアクセスメモリ（ＤＲＡＭ）チップをメインメモリに使用している。現在販売されている殆どのＤＲＡＭチップは、ＪＥＤＥＣ（Joint Electron Devices Engineering Council）によって公布された様々なダブルデータレート（ＤＤＲ）ＤＲＡＭ規格と互換性がある。ＤＤＲ  ＤＲＡＭは、様々な低電力モードを提供することによって、高性能及び低電力動作の両方を提供する。これらの低電力モードのうち１つは、プリチャージパワーダウンとして知られている。プリチャージパワーダウン時には、全てのバンクがプリチャージされ、オンチップ遅延ロックループ（ＤＬＬ）を無効にし、入力クロックをオフにし、出力バッファを無効にして電力消費を大幅に低減することができる。プリチャージパワーダウンは、比較的早く終了するので、ＤＬＬを動作させ続けることによって終了時間を短縮することができる。別の低電力モードは、アクティブパワーダウンである。アクティブパワーダウンは、少なくとも１つのバンクがアクティブのままである、すなわち、オープンな行を有している点でプリチャージパワーダウンと異なっており、これにより、プリチャージパワーダウンよりも早く終了することができる。さらに別の低電力モードは、セルフリフレッシュモードである。セルフリフレッシュモードでは、全てのバンクがアイドル状態であり、全ての外部クロッキングが除去されるが、ＤＲＡＭは、内蔵タイマーを使用して、全ての行を周期的にリフレッシュすることによって、その内容を維持する。
【０００３】
最近のＤＤＲメモリコントローラは、効率を高めるために、保留中のメモリアクセス要求を順不同に選ぶことができるように、保留中のメモリアクセス要求を記憶するためのキューを維持する。例えば、メモリコントローラは、現在の行をプリチャージして別の行をアクティブにするオーバヘッドを回避するために、所定のランクの同じ行への複数のメモリアクセス要求を順不同にキューから検索し、これらをメモリシステムに連続して発行することができる。メモリコントローラは、効率を改善することに加えて、低電力状態に出入りするのに必要とされる余分な時間を節電が上回るのを見越して、ＤＤＲ  ＤＲＡＭの１つ以上のランクを低電力状態にする。既知のメモリコントローラは、ＤＤＲ  ＤＲＡＭの特定のランクを、キュー内の当該ランクに対する保留中のメモリアクセス要求がない限り、低電力状態にしない。
【図面の簡単な説明】
【０００４】
【図１】いくつかの実施形態による、データ処理システムを示すブロック図である。
【図２】図１のデータ処理システムでの使用に適した高度処理ユニット（ＡＰＵ：Advanced Processing Unit）を示すブロック図である。
【図３】いくつかの実施形態による、図２のＡＰＵでの使用に適したメモリコントローラ及び関連する物理インタフェース（ＰＨＹ）を示すブロック図である。
【図４】いくつかの実施形態による、図２のＡＰＵでの使用に適した他のメモリコントローラ及び関連するＰＨＹを示すブロック図である。
【図５】いくつかの実施形態による、メモリコントローラを示すブロック図である。
【図６】いくつかの実施形態による、図５のメモリコントローラによって使用され得るフロー図である。
【発明を実施するための形態】
【０００５】
以下の説明において、異なる図面において同じ参照符号を使用することは、類似又は同一のアイテムを示す。特に明示しない限り、「接続された」という用語及びこれに関連する動詞の形態は、本技術分野で知られている手段による直接接続及び間接的な電気的接続の両方を含み、特に断りのない限り、直接接続の説明は、間接的な電気的接続の適切な形態を使用する代替の実施形態をも意味する。
【０００６】
以下に一形態で説明するように、データ処理システムは、複数のランクを含むメモリチャネルと、データプロセッサと、を含む。データプロセッサは、メモリチャネルに接続されており、複数のランクの各々にアクセスするように構成されている。データプロセッサは、所定のイベントを検出したことに応じて、複数のランクのうちアクティブなランクを選択し、アクティブなランク以外の他のランクを低電力状態にする。この場合、他のランクは、所定のイベントの検出時に保留中の要求を有する少なくとも１つのランクを含む。次に、データプロセッサは、アクティブなランクに対するメモリアクセス要求を処理する。
【０００７】
他の形態では、データプロセッサは、メモリアクセスエージェントと、メモリアクセスエージェントに接続されたメモリコントローラと、を含む。メモリコントローラは、第１の複数のランクを含むメモリシステムに接続するように構成されている。メモリコントローラは、第１の所定のイベントの検出に応じて、第１の複数のランクのうちアクティブなランクを選択し、第１の複数のランクのうちアクティブなランク以外の他のランクを低電力状態にする。例えば、所定のイベントは、熱イベントであってもよく、低電力状態は、プリチャージパワーダウン状態であってもよい。他のランクは、所定のイベントの検出時に保留中の要求を有する少なくとの１つのランクを含む。次に、メモリコントローラは、アクティブなランクに対する少なくとも１つのメモリアクセス要求を処理する。
【０００８】
さらに他の形態では、メモリシステムへのメモリアクセスのスロットリングを行う方法を使用して、潜在的に有害な熱イベントを軽減することができる。熱イベントが検出され、熱イベントの検出に応じて、複数のランクのうちアクティブなランクが選択され、複数のランクのうちアクティブなランク以外の他のランクが低電力状態にされる。他のランクは、保留中の要求を有する少なくとも１つのランクを含む。アクティブなランクに対する少なくとも１つのメモリアクセス要求が処理される。
【０００９】
図１は、いくつかの実施形態による、データ処理システム１００を示すブロック図である。データ処理システム１００は、概して、加速処理ユニット（ＡＰＵ：Accelerated Arocessing Unit）の形態にあるデータプロセッサ１１０と、メモリシステム１２０と、ＰＣＩｅ（Peripheral Component Interconnect express）システム１５０と、ユニバーサルシリアルバス（ＵＳＢ）システム１６０と、ディスクドライブ１７０と、を含む。データプロセッサ１１０は、データ処理システム１００の中央処理装置（ＣＰＵ）として動作し、現在のコンピュータシステムにおいて有用な様々なバス及びインタフェースを提供する。これらのインタフェースには、２つのダブルデータレート（ＤＤＲｘ）メモリチャネル、ＰＣＩｅリンクに接続するためのＰＣＩｅルート複合体、ＵＳＢネットワークに接続するためのＵＳＢコントローラ、及び、ＳＡＴＡ（Serial Advanced Technology Attachment）大容量記憶装置に対するインタフェースが含まれる。
【００１０】
メモリシステム１２０は、メモリチャネル１３０と、メモリチャネル１４０と、を含む。メモリチャネル１３０は、ＤＤＲｘバス１３２に接続されたデュアルインラインメモリモジュール（ＤＩＭＭ）のセット（この例では、別々のランクに対応する代表的なＤＩＭＭ１３４，１３６，１３８）を含む。同様に、メモリチャネル１４０は、ＤＤＲｘバス１４２に接続されたＤＩＭＭのセット（代表的なＤＩＭＭ１４４，１４６，１４８）を含む。
【００１１】
ＰＣＩｅシステム１５０は、データプロセッサ１１０内のＰＣＩｅルート複合体に接続されたＰＣＩｅスイッチ１５２と、ＰＣＩｅ装置１５４と、ＰＣＩｅ装置１５６と、ＰＣＩｅ装置１５８と、を含む。ＰＣＩｅ装置１５６は、システム基本入出力システム（ＢＩＯＳ）メモリ１５７に接続されている。システムＢＩＯＳメモリ１５７は、例えば読み出し専用メモリ（ＲＯＭ）、フラッシュＥＥＰＲＯＭ（flash electrically erasable programmable ROM）等の様々な不揮発性メモリタイプの何れかとすることができる。
【００１２】
ＵＳＢシステム１６０は、データプロセッサ１１０内のＵＳＢマスタに接続されたＵＳＢハブ１６２と、それぞれＵＳＢハブ１６２に接続された代表的なＵＳＢ装置１６４，１６６，１６８と、を含む。ＵＳＢ装置１６４，１６６，１６８は、例えばキーボード、マウス、フラッシュＥＥＰＲＯＭポート等の装置であってもよい。
【００１３】
ディスクドライブ１７０は、ＳＡＴＡバスを介してデータプロセッサ１１０に接続されており、オペレーティングシステム、アプリケーションプログラム、アプリケーションファイル等のための大容量記憶装置を提供する。
【００１４】
データ処理システム１００は、メモリチャネル１３０及びメモリチャネル１４０を提供することによって、現在のコンピューティングアプリケーションでの使用に適している。メモリチャネル１３０，１４０の各々は、ＤＤＲバージョン４（ＤＤＲ４）、低電力ＤＤＲ４（ＬＰＤＤＲ４）、グラフィックスＤＤＲバージョン５（ｇＤＤＲ５）及び高帯域幅メモリ（ＨＢＭ）等の最新のＤＤＲメモリに接続することができ、将来のメモリ技術に適応可能である。これらのメモリは、高いバス帯域幅及び高速動作を提供する。同時に、これらは、ラップトップコンピュータ等のバッテリ駆動アプリケーションの電力を節約する低電力モードを提供し、ビルトインのサーマルモニタリングをも提供する。以下により詳細に説明するように、データプロセッサ１１０は、過熱を回避し、且つ、熱的過負荷の可能性を低減するために、特定の状況において電力のスロットリングを行うことができるメモリコントローラを含む。
【００１５】
図２は、図１のデータ処理システム１００での使用に適したＡＰＵ２００を示すブロック図である。ＡＰＵ２００は、概して、中央処理装置（ＣＰＵ）コア複合体２１０と、グラフィックスコア２２０と、ディスプレイエンジン２３０のセットと、メモリ管理（ＭＭ）ハブ２４０と、データファブリック２５０と、周辺機器コントローラ２６０のセットと、周辺機器バスコントローラ２７０のセットと、システム管理ユニット（ＳＭＵ）２８０と、メモリコントローラ２９０のセットと、を含む。
【００１６】
ＣＰＵコア複合体２１０は、ＣＰＵコア２１２と、ＣＰＵコア２１４と、を含む。この例では、ＣＰＵコア複合体２１０は、２つのＣＰＵコアを含むが、他の実施形態では、ＣＰＵコア複合体は、任意の数のＣＰＵコアを含むことができる。ＣＰＵコア２１２，２１４の各々は、制御ファブリックを形成するシステム管理ネットワーク（ＳＭＮ）及びデータファブリック２５０に双方向に接続されており、データファブリック２５０に対してメモリアクセス要求を提供することができる。ＣＰＵコア２１２，２１４の各々は、単一のコアであってもよいし、キャッシュ等の特定のリソースを共有する２つ以上の単一のコアを有するコア複合体であってもよい。
【００１７】
グラフィックスコア２２０は、例えば、頂点処理、フラグメント処理、シェーディング、テクスチャ混合等のグラフィック動作を高度に統合された並列形式で実行することの可能な高性能グラフィックス処理ユニット（ＧＰＵ）である。グラフィックスコア２２０は、ＳＭＮ及びデータファブリック２５０に双方向に接続されており、データファブリック２５０に対してメモリアクセス要求を提供することができる。この点において、ＡＰＵ２００は、ＣＰＵコア複合体２１０及びグラフィックスコア２２０が同じメモリ空間を共有する統合メモリアーキテクチャ、又は、ＣＰＵコア複合体２１０及びグラフィックスコア２２０がメモリ空間の一部を共有するメモリアーキテクチャの何れかをサポートすることができ、また、グラフィックスコア２２０は、ＣＰＵコア複合体２１０によってアクセスすることができないプライベートグラフィックスメモリを使用する。
【００１８】
ディスプレイエンジン２３０は、グラフィックスコア２２０によって生成されたオブジェクトをレンダリング及びラスタライズして、モニタ上に表示する。グラフィックスコア２２０及びディスプレイエンジン２３０は、メモリシステム１２０における適切なアドレスへの一様な変換のために、共通メモリ管理（ＭＭ）ハブ２４０に双方向に接続されており、メモリ管理ハブ２４０は、かかるメモリアクセスを生成し、メモリシステムから返された読み出しデータを受信するために、データファブリック２５０に双方向に接続されている。
【００１９】
データファブリック２５０は、何れかのメモリアクセスエージェントとメモリコントローラ２９０との間でメモリアクセス要求及びメモリ応答をルーティングするためのクロスバースイッチを含む。データファブリック２５０は、ＢＩＯＳによって定義されたシステムメモリマップであって、システム構成に基づいてメモリアクセスの宛先を決定するためのシステムメモリマップと、仮想接続毎のバッファと、を含む。
【００２０】
周辺機器コントローラ２６０は、ＵＳＢコントローラ２６２と、ＳＡＴＡインタフェースコントローラ２６４と、を含み、これらの各々は、システムハブ２６６及びＳＭＮバスに双方向に接続されている。これらの２つのコントローラは、ＡＰＵ２００で使用することができる周辺機器コントローラの単なる例示である。
【００２１】
周辺機器バスコントローラ２７０は、システムコントローラ又は「サウスブリッジ」（ＳＢ）２７２と、ＰＣＩｅコントローラ２７４と、を含み、これらの各々は、入力／出力（Ｉ／Ｏ）ハブ２７６及びＳＭＮバスに双方向に接続されている。また、Ｉ／Ｏハブ２７６は、システムハブ２６６及びデータファブリック２５０に双方向に接続されている。よって、例えば、ＣＰＵコアは、Ｉ／Ｏハブ２７６を介してデータファブリック２５０がルーティングするアクセスを介して、ＵＳＢコントローラ２６２、ＳＡＴＡインタフェースコントローラ２６４、ＳＢ２７２又はＰＣＩｅコントローラ２７４のレジスタをプログラムすることができる。
【００２２】
ＳＭＵ２８０は、ＡＰＵ２００上のリソースの動作を制御し、これらの間の通信を同期させるローカルコントローラである。ＳＭＵ２８０は、ＡＰＵ２００上の様々なプロセッサのパワーアップシーケンシングを管理し、リセット、イネーブル及び他の信号を介して複数のオフチップ装置を制御する。ＳＭＵ２８０は、ＡＰＵ２００の各コンポーネントにクロック信号を提供するために、例えば位相同期ループ（ＰＬＬ）等のように図２に示されていない１つ以上のクロックソースを含む。また、ＳＭＵ２８０は、様々なプロセッサ及び他の機能ブロックの電力を管理し、ＣＰＵコア２１２，２１４及びグラフィックスコア２２０から測定された電力消費値を受信して、適切な電力状態を決定することができる。
【００２３】
また、ＡＰＵ２００は、様々なシステムモニタリング及び節電機能を実装する。特に、１つのシステムモニタリング機能は、サーマルモニタリング（熱監視）である。例えば、ＡＰＵ２００が高温になると、ＳＭＵ２８０は、ＣＰＵコア２１２，２１４及び／又はグラフィックスコア２２０の周波数及び電圧を低減することができる。ＡＰＵ２００がさらに高温になると、ＡＰＵ２００は完全にシャットダウンされてもよい。サーマルイベントは、ＳＭＮバスを介してＳＭＵ２８０によって外部センサから受信されてもよく、ＳＭＵ２８０は、これに応じてクロック周波数及び／又は電源電圧を低減することができる。
【００２４】
図３は、いくつかの実施形態による、図２のＡＰＵ２００での使用に適したメモリコントローラ３００及び関連する物理インタフェース（ＰＨＹ）３３０を示すブロック図である。メモリコントローラ３００は、メモリチャネル３１０と、電源エンジン３２０と、を含む。メモリチャネル３１０は、ホストインタフェース３１２と、メモリチャネルコントローラ３１４と、物理インタフェース３１６と、を含む。ホストインタフェース３１２は、スケーラブルデータポート（ＳＤＰ）を介して、メモリチャネルコントローラ３１４をデータファブリック２５０に双方向に接続する。物理インタフェース３１６は、ＤＤＲ−ＰＨＹインタフェース仕様（ＤＦＩ）に準拠するバスを介して、メモリチャネルコントローラ３１４をＰＨＹ３３０に双方向に接続する。電源エンジン３２０は、ＳＭＮバスを介してＳＭＵ２８０に双方向に接続されており、ＡＰＢ（Advanced Peripheral Bus）を介してＰＨＹ３３０に双方向に接続されており、メモリチャネルコントローラ３１４に双方向に接続されている。ＰＨＹ３３０は、図１のメモリチャネル１３０又はメモリチャネル１４０等のメモリチャネルへの双方向接続を有する。メモリコントローラ３００は、単一のメモリチャネルコントローラ３１４を使用した単一のメモリチャネル用のメモリコントローラのインスタンス化であり、以下にさらに説明するように、メモリチャネルコントローラ３１４の動作を制御する電源エンジン３２０を有する。
【００２５】
図４は、いくつかの実施形態による、図２のＡＰＵ２００での使用に適した他のメモリコントローラ４００及び関連するＰＨＹ４４０，４５０を示すブロック図である。メモリコントローラ４００は、メモリチャネル４１０，４２０と、電源エンジン４３０と、を含む。メモリチャネル４１０は、ホストインタフェース４１２と、メモリチャネルコントローラ４１４と、物理インタフェース４１６と、を含む。ホストインタフェース４１２は、ＳＤＰを介して、メモリチャネルコントローラ４１４をデータファブリック２５０に双方向に接続する。物理インタフェース４１６は、ＤＦＩ仕様に準拠して、メモリチャネルコントローラ４１４をＰＨＹ４４０に双方向に接続する。メモリチャネル４２０は、ホストインタフェース４２２と、メモリチャネルコントローラ４２４と、物理インタフェース４２６と、を含む。ホストインタフェース４２２は、別のＳＤＰを介して、メモリチャネルコントローラ４２４をデータファブリック２５０に双方向に接続する。物理インタフェース４２６は、ＤＦＩ仕様に準拠して、メモリチャネルコントローラ４２４をＰＨＹ４５０に双方向に接続する。電源エンジン４３０は、ＳＭＮバスを介してＳＭＵ２８０に双方向に接続されており、ＡＰＢを介してＰＨＹ４４０，４５０に双方向に接続されており、メモリチャネルコントローラ４１４，４２４に双方向に接続されている。ＰＨＹ４４０は、図１のメモリチャネル１３０等のメモリチャネルへの双方向接続を有する。ＰＨＹ４５０は、図１のメモリチャネル１４０等のメモリチャネルへの双方向接続を有する。メモリコントローラ４００は、２つのメモリチャネルコントローラを有するメモリコントローラのインスタンス化であり、以下にさらに説明するように、メモリチャネルコントローラ４１４及びメモリチャネルコントローラ４２４の両方の動作を制御する共有電源エンジン４３０を使用する。
【００２６】
図５は、いくつかの実施形態による、メモリコントローラ５００を示すブロック図である。メモリコントローラ５００は、概して、メモリチャネルコントローラ５１０と、電源コントローラ５５０と、を含む。メモリチャネルコントローラ５１０は、概して、インタフェース５１２と、キュー５１４と、コマンドキュー５２０と、アドレスジェネレータ５２２と、コンテンツアドレス可能メモリ（ＣＡＭ）５２４と、再生キュー５３０と、リフレッシュロジックブロック５３２と、タイミングブロック５３４と、ページテーブル５３６と、アービタ５３８と、エラー訂正コード（ＥＣＣ）チェックブロック５４２と、ＥＣＣ生成ブロック５４４と、データバッファ（ＤＢ）５４６と、を含む。
【００２７】
インタフェース５１２は、外部バスを介したデータファブリック２５０への第１双方向接続を有し、出力を有する。メモリコントローラ５００において、この外部バスは、「ＡＸＩ４」として知られる、イングランドのケンブリッジのＡＲＭホールディングスＰＬＣによって指定されたＡＸＩ（Advanced Extensible Interface）バージョン４と互換性があるが、他の実施形態では、他のタイプのインタフェースであってもよい。インタフェース５１２は、ＦＣＬＣ（又は、ＭＥＭＣＬＫ）ドメインとして知られる第１クロックドメインから、ＵＣＬＫドメインとして知られるメモリコントローラ５００内の第２クロックドメインへのメモリアクセス要求を返還する。同様に、キュー５１４は、ＵＣＬＫドメインからＤＦＩインタフェースに関連するＤＦＩＣＬＫドメインへのメモリアクセスを提供する。
【００２８】
アドレスジェネレータ５２２は、ＡＸＩ４バスを介してデータファブリック２５０から受信したメモリアクセス要求のアドレスを復号化する。メモリアクセス要求は、標準化されたフォーマットで表される物理アドレス空間内のアクセスアドレスを含む。アドレスジェネレータ５２２は、標準化されたアドレスを、メモリシステム１２０内の実際のメモリ装置をアドレス指定し、関連するアクセスを効率的にスケジューリングするのに使用可能なフォーマットに変換する。このフォーマットは、メモリアクセス要求を、特定のランク、行アドレス、列アドレス、バンクアドレス及びバンクグループに関連付ける領域識別子を含む。システムＢＩＯＳは、起動すると、メモリシステム１２０内のメモリ装置にクエリしてそのサイズ及び構成を判別し、アドレスジェネレータ５２２に関連する構成レジスタのセットをプログラミングする。アドレスジェネレータ５２２は、標準化されたアドレスを適切なフォーマットに変換するために、構成レジスタに記憶された構成を使用する。コマンドキュー５２０は、例えば、ＣＰＵコア２１２，２１４及びグラフィックスコア２２０等のデータ処理システム１００内のメモリアクセスエージェントから受信したメモリアクセス要求のキューである。コマンドキュー５２０は、アドレスジェネレータ５２２によって復号化されたアドレスフィールドと、アービタ５３８がアクセスタイプ及びサービス品質（ＱｏＳ）識別子を含むメモリアクセスを効率的に選択するのを可能にする他のアドレス情報と、を記憶する。ＣＡＭ５２４は、例えば、ライトアフターライト（ＷＡＷ）及びリードアフターライト（ＲＡＷ）順序付けルール等の順序付けルールを実施するための情報を含む。
【００２９】
再生キュー５３０は、アドレス及びコマンドパリティ応答、ＤＤＲ４  ＤＲＡＭに対する書き込み巡回冗長チェック（ＣＲＣ）応答、又は、ｇＤＤＲ５  ＤＲＡＭに対する書き込み及び読み出しＣＲＣ応答等の応答を待っているアービタ５３８によって取り出されたメモリアクセスを記憶するための一時的なキューである。再生キュー５３０は、ＥＣＣチェックブロック５４２にアクセスして、返されたＥＣＣが正確であるかエラーを示すかを判別する。再生キュー５３０は、これらのサイクルのうち１つのサイクルのパリティ又はＣＲＣエラーの場合にアクセスが再生されることを可能にする。
【００３０】
リフレッシュロジック５３２は、メモリアクセスエージェントから受信した通常の読み出し及び書き込みメモリアクセス要求とは別に生成された様々なパワーダウン、リフレッシュ及び終端抵抗（ＺＱ）較正サイクルのための状態機械を含む。例えば、メモリランクがプリチャージパワーダウンにある場合、リフレッシュサイクルを実行するために定期的に起動する必要がある。リフレッシュロジック５３２は、ＤＲＡＭチップ内のメモリセルの記憶キャパシタから電荷がリークすることによって生じるデータエラーを防止するために、リフレッシュコマンドを定期的に生成する。また、リフレッシュロジック５３２は、システムの熱変化によるオンダイターミネーション抵抗の不一致を防止するために、ＺＱを定期的に較正する。
【００３１】
アービタ５３８は、コマンドキュー５２０に双方向に接続されており、メモリチャネルコントローラ５１０の中心部である。アービタ５３８は、メモリバスの使用を改善するために、アクセスのインテリジェントなスケジューリングによって効率を改善する。アービタ５３８は、タイミングブロック５３４を使用して、コマンドキュー５２０内の特定のアクセスがＤＲＡＭタイミングパラメータに基づいて発行に適格であるかどうかを判別することによって、適切なタイミング関係を実施する。例えば、各ＤＲＡＭは、「ｔＲＣ」として知られるアクティブコマンド間の最小の指定時間を有する。タイミングブロック５３４は、ＪＥＤＥＣ仕様で規定されたこの及び他のタイミングパラメータに基づいて、適格性を決定するカウンタのセットを維持し、再生キュー５３０に双方向に接続されている。ページテーブル５３６は、各バンクのアクティブページに関する状態情報、及び、アービタ５３８のためにメモリチャネルのランクを維持し、再生キュー５３０に双方向に接続されている。
【００３２】
ＥＣＣ生成ブロック５４４は、インタフェース５１２から受信した書き込みメモリアクセス要求に応じて、書き込みデータに従ってＥＣＣを計算する。ＤＢ５４６は、受信したメモリアクセス要求に関する書き込みデータ及びＥＣＣを記憶する。ＤＢ５４６は、アービタ５３８がメモリチャネルへのディスパッチのために対応する書き込みアクセスを選択した場合に、組み合わされた書き込みデータ／ＥＣＣをキュー５１４に出力する。
【００３３】
電源コントローラ５５０は、概して、ＡＸＩバージョン１（ＡＸＩ）へのインタフェース５５２と、ＡＰＢインタフェース５５４と、電源エンジン５６０と、を含む。インタフェース５５２は、図５において別個に示される「ＥＶＥＮＴ＿ｎ」という符号が付されたイベント信号を受信するための入力と出力とを含む、ＳＭＮへの第１双方向接続を有する。ＡＰＢインタフェース５５４は、インタフェース５５２の出力に接続された入力と、ＡＰＢを介してＰＨＹに接続するための出力と、を有する。電源エンジン５６０は、インタフェース５５２の出力に接続された入力と、キュー５１４の入力に接続された出力と、「ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ」という符号が付された信号を提供するための出力と、を有する。電源エンジン５６０は、構成レジスタ５６２のセットと、マイクロコントローラ（μＣ）５６４と、セルフリフレッシュコントローラ（ＳＬＦＲＥＦ／ＰＥ）５６６と、信頼された読み出し／書き込みタイミングエンジン（ＲＲＷ／ＴＥ）５６８と、を含む。構成レジスタ５６２は、ＡＸＩバスを介してプログラムされ、メモリコントローラ５００内の様々なブロックの動作を制御するための構成情報を記憶する。したがって、構成レジスタ５６２は、これらのブロック（図５には詳細に示されていない）に接続された出力を有する。セルフリフレッシュコントローラ５６６は、リフレッシュロジック５３２によるリフレッシュの自動生成に加えて、リフレッシュの手動生成を可能にするエンジンである。信頼された読み出し／書き込みタイミングエンジン５６８は、ＤＤＲインタフェースの最大読み出しレイテンシ（ＭＲＬ）トレーニング及びループバックテスト等の目的のために、連続したメモリアクセスストリームをメモリ又はＩ／Ｏ装置に提供する。μＣ５６４は、とりわけ、熱イベントをスロットリングするかどうかを決定するために使用される。したがって、μＣ５６４は、ＥＶＥＮＴ＿ｎ信号のアクティブ化に応じて、構成レジスタ５６２の設定を決定し、選択された場合、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号をアクティブ化する。
【００３４】
メモリチャネルコントローラ５１０は、関連するメモリチャネルにディスパッチするためにメモリアクセスを選択することを可能にする回路を含む。所望のアービトレーションの決定を行うために、アドレスジェネレータ５２２は、アドレス情報を、メモリシステム内のランク、行アドレス、列アドレス、バンクアドレス及びバンクグループを含む予め復号化された情報に復号化し、コマンドキュー５２０は、予め復号化された情報を記憶する。構成レジスタ５６２は、受信したアドレス情報をアドレスジェネレータ５２２がどのように復号化するのかを決定するために、構成情報を記憶する。アービタ５３８は、例えばＱｏＳ要件等の他の基準を観察しながらメモリアクセスを効率的にスケジュールするために、復号化されたアドレス情報、タイミングブロック５３４によって示されるタイミング適格性情報、及び、ページテーブル５３６によって示されたアクティブページ情報を使用する。例えば、アービタ５３８は、メモリページを変更するために必要なプリチャージ及びアクティブ化コマンドのオーバヘッドを回避するために、オープンページへのアクセスを優先し、別のバンクへの読み出し及び書き込みアクセスとインタリーブすることによって、１つのバンクへのオーバヘッドアクセスを隠す。特に、通常動作中、アービタ５３８は、通常、ページを選択する前にプリチャージされる必要があるまで、異なるバンクにおいてページを開いたままにする。
【００３５】
関連するメモリチャネル内の少なくとも１つのＤＩＭＭが過熱すると、メモリチャネルは、ＥＶＥＮＴ＿ｎ信号をアクティブにする。ＥＶＥＮＴ＿ｎ信号は、熱イベントがメモリチャネルの１つ以上のランクで発生したことを示すワイヤードＯＲ信号である。電源エンジン５６０は、ＥＶＥＮＴ＿ｎ信号のアクティベーションを検出したことに応じて、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号をアクティブにするようにプログラム可能である。アービタ５３８は、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号のアクティベーションに応じて、低電力と効率との間のトレードオフを低電力が優先されるように変更するように、ポリシーを変更する。他の実施形態では、電源エンジン５６０は、イベントに応じて設定されるレジスタをポーリングすること等によって、イベント入力信号を使用することなくイベントを検出可能であることに留意されたい。アービタ５３８は、複数のランクのうちアクティブなランクを選択し、アクティブなランク以外の外のランクを低電力状態にする。この場合、他のランクは、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号のアクティベーション時に保留中の要求を有する少なくとも１つのランクを含む。次に、アービタ５３８は、アクティブなランクに対するメモリアクセス要求を選ぶ。状況によっては、このメモリアクセス要求は、通常、アクセスを効率的に提供するため、又は、オーバヘッドアクセスを隠すために、別の要求を提供するようにバイパスされている。
【００３６】
図６は、いくつかの実施形態による、図５のメモリコントローラ５００によって使用され得るフロー図６００である。フローは、ボックス６１０で開始する。アクションボックス６２０では、アービタ５３８は、図５を参照して説明したように、デフォルト基準を使用して、ＵＣＬＫ信号と同期した次の要求を処理する。判別ボックス６３０では、アービタ５３８は、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号がアクティブであるかどうかを判別することによって、熱イベントを検出する。ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号がアクティブでない場合、フローは、アクションボックス６２０に戻り、アービタ５３８は、デフォルト基準を使用して、ＵＣＬＫ信号と同期した次の要求を処理する。一方、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号がアクティブである場合、フローは、アクションボックス６４０に進む。アクションボックス６４０では、アービタ５３８は、アクティブなランクを、より多くの要求が保留のままである場合には現在のランク又は別のランクとして選択する。アクションボックス６５０において、アービタ５３８は、アクティブなランク以外の他のランクを、アクティブパワーダウン状態、プリチャージパワーダウン状態、又は、セルフリフレッシュ状態等の低電力状態にする。アクションボックス６６０において、メモリコントローラ５００は、アクティブなランクに対する少なくとも１つのメモリアクセス要求を処理する。
【００３７】
判別ボックス６７０において、アービタ５３８は、熱イベントが終了したかどうかを、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号をサンプリングすることによって判別する。熱イベントが終了したことを示すように、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号が非アクティブである場合には、フローは、アクションボックス６２０に戻り、アービタ５３８は、デフォルト基準によって決定された次の要求を処理する。複数のバンクが、デフォルト基準を使用して許可されるのと同時にアクティブになる場合があることに留意されたい。熱イベントが終了していないことを示すように、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号が依然としてアクティブである場合には、フローは、判別ボックス６８０に進む。判別ボックス６８０は、別のランクを選択するかどうかを判別する。例えば、コマンドキュー５２０内のアクティブなランクに対する全ての要求が処理された場合には、別のランクが（当該別のランクが１つ以上の保留中の要求を有すると仮定して）選択される。他の基準（例えば、アクティブなランク内の現在のページに対するさらなる保留中の要求がないこと、又は、保留中のチャネルに対する特定の数の他の要求よりも少ない等）も可能である。この場合、フローは、アクションボックス６４０に戻り、アービタ５３８は、新たなアクティブなランクを選択し、（現在アクティブなランクを含む）他の全てのランクを低電力状態にする。アービタ５３８が別のランクを選択しない場合、フローは、アクションボックス６６０に戻り、アービタ５３８は、アクティブなランク内の次のコマンドを処理する。
【００３８】
既知のメモリコントローラとは異なり、メモリコントローラ５００は、アクティブなランク以外の全てのランクを低電力状態にする。ここで、これらの他のランクの１つ以上は、保留中の要求を含む。メモリコントローラ５００は、保留中の要求があるかどうかに基づいて特定のランクを低電力にするという決定を条件付けしないことによって、熱イベントをより良く軽減するために、現在のランク以外の全ての電力を低減する。また、メモリコントローラ５００は、熱イベントの存在下で、レイテンシと公正性との間のトレードオフのバランス及び電力消費のバランスを変更するのが望ましいことを認識する。熱イベントの存在下で、メモリコントローラ５００は、より低い電力消費に向かうようにバランスを移動させることにより、熱イベントの軽減に役立つ。
【００３９】
図６の方法は、ハードウェア及びソフトウェアの様々な組み合わせによって実施されてもよい。例えば、図５は、ソフトウェアの制御下で動作する熱イベントを検出し報告するために、μＣ５６４を使用するメモリコントローラの一実施形態を示しているが、アービタ５３８は、ハードウェア回路で実装されている。このハードウェア回路は、プライオリティエンコーダ、有限状態機械、プログラマブルロジックアレイ（ＰＬＡ）等を含んでもよい。しかしながら、他の実施形態では、アービタ５３８は、記憶されたプログラム命令を実行するマイクロコントローラを用いて実装可能である。ソフトウェアコンポーネントのいくつかは、少なくとも１つのプロセッサによる実行のために、コンピュータ可読記憶媒体に記憶されてもよい。また、図６に示される方法のいくつか又は全ては、コンピュータ可読記憶媒体に記憶され、少なくとも１つのプロセッサによって実行される命令によって管理されてもよい。図６に示す各動作は、非一時的なコンピュータメモリ又はコンピュータ可読記憶媒体に記憶された命令に対応してもよい。様々な実施形態では、非一時的なコンピュータ可読記憶媒体は、磁気若しくは光ディスク記憶装置、フラッシュメモリ等のソリッドステート記憶装置、又は、他の不揮発性メモリ装置を含む。非一時的なコンピュータ可読記憶媒体に記憶されるコンピュータ可読命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、１つ以上のプロセッサによって解釈及び／若しくは実行可能な他の命令フォーマットであってもよい。
【００４０】
図５のメモリコントローラ５００又はこの一部は、データベースの形態でコンピュータがアクセス可能なデータ構造、又は、プログラムによって読み出され、集積回路を製造するために直接若しくは間接的に使用可能な他のデータ構造によって記述又は表現されてもよい。例えば、このデータ構造は、Ｖｅｒｉｌｏｇ又はＶＨＤＬ等の高水準設計言語（ＨＤＬ）におけるハードウェア機能の動作レベル記述又はレジスタ転送レベル（ＲＴＬ）記述であってもよい。この記述は、当該記述を合成して、合成ライブラリからゲートのリストを含むネットリストを生成することができる合成ツールによって読み出されてもよい。ネットリストは、集積回路を含むハードウェアの機能を表すゲートのセットを含む。次に、ネットリストを配置及びルーティングして、マスクに適用される幾何学的形状を記述するデータセットを生成することができる。次いで、マスクを様々な半導体製造ステップで使用して、集積回路を製造することができる。或いは、コンピュータがアクセス可能な記憶媒体上のデータベースは、（合成ライブラリを伴う若しくは伴わない）ネットリスト又はデータセットであってもよいし、必要に応じて、グラフィックデータシステム（ＧＤＳ）ＩＩデータであってもよい。
【００４１】
特定の実施形態について説明したが、これらの実施形態に対する様々な変更が当業者に明らかになるであろう。例えば、メモリコントローラは、メモリを、上述したアクティブパワーダウン、プリチャージパワーダウン、セルフリフレッシュ状態とは異なる様々な低電力状態にすることができる。また、メモリチャネルコントローラ５１０及び／又は電源エンジン５５０の内部アーキテクチャは、異なる実施形態において変えられてもよい。メモリコントローラ５００は、ＤＤＲｘメモリ、ＨＢＭ、ＲＡＭｂｕｓ  ＤＲＡＭ（ＲＤＲＡＭ）、及び、同様のメモリを含む様々なタイプのメモリとインタフェースすることができる。示された実施形態は、別々のＤＩＭＭに対応するメモリの各ランクを示したが、他の実施形態では、各ＤＩＭＭは、複数のランクをサポートすることができる。
【００４２】
したがって、添付の特許請求の範囲によって、開示された実施形態の範囲に含まれる、開示された実施形態の全ての変更を包含することが意図される。
【図１】
2019522257.tif 000003
【図２】
2019522257.tif 000004
【図３】
2019522257.tif 000005
【図４】
2019522257.tif 000006
【図５】
2019522257.tif 000007
【図６】
2019522257.tif 000008
【手続補正書】
【提出日】平成31年3月14日(2019.3.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリアクセスエージェント（２１０／２２０）と、
前記メモリアクセスエージェント（２１０／２２０）に接続され、第１の複数のランク（１３２／１３３／１３４）を含むメモリシステム（１２０）に接続するように構成されたメモリコントローラ（２９２／３００／４００）と、を備え、
前記メモリコントローラ（２９２／３００／４００）は、
第１の所定のイベントの検出に応じて、前記第１の複数のランク（１３２／１３３／１３４）のうちアクティブなランクを選択することと、
前記第１の複数のランク（１３４／１３６／１３８）のうちアクティブなランク以外の他のランクを低電力状態にすることであって、前記他のランクは、前記第１の所定のイベントを検出したときに保留中の要求を有する少なくとも１つのランクを含む、ことと、
前記アクティブなランクに対する少なくとも１つのメモリアクセス要求を処理することと、
を行うように構成されている、
データプロセッサ（１１０／２００）。
【請求項２】
前記第１の所定のイベントは熱イベントを含む、
請求項１のデータプロセッサ（１１０／２００）。
【請求項３】
前記メモリコントローラ（２９２／３００／４００）は、ダブルデータレート（ＤＤＲ）バージョン４（ＤＤＲ４）メモリチャネル、グラフィックスＤＤＲバージョン５（ｇＤＤＲ５）メモリチャネル及び高帯域幅メモリ（ＨＢＭ）メモリチャネルのうち少なくとも１つにアクセスするように構成されている、
請求項１のデータプロセッサ（１１０／２００）。
【請求項４】
前記メモリコントローラ（２９２／３００／４００）は、
前記第１の所定のイベントが依然としてアクティブであることを検出したことと、所定の基準に基づいて別のランクを選択しないことを判別したことと、に応じて、前記アクティブなランクにおいて次のコマンドを処理する、
請求項１のデータプロセッサ（１１０／２００）。
【請求項５】
前記所定の基準は、前記アクティブなランク内に少なくとも１つの保留中の要求があることを含む、
請求項４のデータプロセッサ（１１０／２００）。
【請求項６】
前記所定の基準は、前記アクティブなランクの現在のページ内に少なくとも１つの保留中の要求があることを含む、
請求項４のデータプロセッサ（１１０／２００）。
【請求項７】
前記所定の基準は、前記アクティブなランク内に少なくとも１つの保留中の要求があることと、他のランクに対する所定数の要求よりも少なこととを含む、
請求項４のデータプロセッサ（１１０／２００）。
【請求項８】
請求項１〜７の何れかのデータプロセッサ（１１０／２００）を備えるデータ処理システムであって、
メモリバスと、前記メモリバスに接続された複数のランクと、を含むメモリチャネル（１３０）であって、各ランクは、所定のコマンドに対応するためにロックステップで動作し、複数のチップ選択信号の各々に接続されたメモリデバイスのセットを有する、メモリチャネルを備える、
データ処理システム。
【請求項９】
メモリシステム（１２０）に対してメモリアクセスのスロットリングを行う方法（６００）であって、
熱イベントを検出すること（６３０）と、
前記熱イベントを検出したことに応じて、複数のランク（１２４／１２６／１２８）のうちアクティブなランクを選択し（６４０）、前記複数のランク（１２４／１２６／１２８）のうち前記アクティブなランク以外の他のランクを低電力状態にすること（６５０）であって、前記他のランクは、保留中の要求を有する少なくとも１つのランクを含む、ことと、
前記アクティブなランクに対する少なくとも１つのメモリアクセス要求を処理すること（６６０／６７０／６８０）と、を含む、
方法（６００）。
【請求項１０】
前記メモリシステム（１２０）は、ダブルデータレート（ＤＤＲ）メモリシステムを備え、
前記複数のランク（１２４／１２６／１２８）のうち前記他のランクを低電力状態にすることは、前記複数のランク（１２４／１２６／１２８）のうち前記他のランクをＤＤＲ低電力状態にすることを含む、
請求項９の方法（６００）。
【請求項１１】
前記熱イベントを検出すること（６３０）は、システム温度を第１の閾値と比較することと、前記システム温度が前記第１の閾値以上であることを判別することと、を含む、
請求項９の方法（６００）。
【請求項１２】
前記少なくとも１つのメモリアクセス要求を処理すること（６６０／６７０／６８０）は、
前記アクティブなランクにおいて次のコマンドを処理すること（６６０）と、
前記熱イベントが終了していないことを検出すること（６７０）と、
所定の基準に基づいて別のランクを選択するかどうかを決定すること（６８０）と、を含む、
請求項１１の方法（６００）。
【請求項１３】
前記所定の基準に基づいて別のランクを選択するかどうかを決定すること（６８０）は、
前記アクティブなランク内に少なくとも１つの保留中の要求があるかどうかを判別することを含む、
請求項１２の方法（６００）。
【請求項１４】
前記所定の基準に基づいて別のランクを選択するかどうかを決定すること（６８０）は、
前記アクティブなランクの現在のページ内に少なくとも１つの保留中の要求があるかどうかを判別することを含む、
請求項１２の方法（６００）。
【請求項１５】
前記所定の基準に基づいて別のランクを選択するかどうかを決定すること（６８０）は、
前記アクティブなランク内に少なくとも１つの保留中の要求があるかどうかと、他のランクに対する所定数の要求よりも少ないかどうかを判別することと、を含む、
請求項１２の方法（６００）。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、データ処理システムに関し、より具体的には、低電力モードでメモリとインタフェースすることの可能なデータ処理システムに関する。
【背景技術】
【０００２】
コンピュータシステムは、通常、安価で高密度のダイナミックランダムアクセスメモリ（ＤＲＡＭ）チップをメインメモリに使用している。現在販売されている殆どのＤＲＡＭチップは、ＪＥＤＥＣ（Joint Electron Devices Engineering Council）によって公布された様々なダブルデータレート（ＤＤＲ）ＤＲＡＭ規格と互換性がある。ＤＤＲ  ＤＲＡＭは、様々な低電力モードを提供することによって、高性能及び低電力動作の両方を提供する。これらの低電力モードのうち１つは、プリチャージパワーダウンとして知られている。プリチャージパワーダウン時には、全てのバンクがプリチャージされ、オンチップ遅延ロックループ（ＤＬＬ）を無効にし、入力クロックをオフにし、出力バッファを無効にして電力消費を大幅に低減することができる。プリチャージパワーダウンは、比較的早く終了するので、ＤＬＬを動作させ続けることによって終了時間を短縮することができる。別の低電力モードは、アクティブパワーダウンである。アクティブパワーダウンは、少なくとも１つのバンクがアクティブのままである、すなわち、オープンな行を有している点でプリチャージパワーダウンと異なっており、これにより、プリチャージパワーダウンよりも早く終了することができる。さらに別の低電力モードは、セルフリフレッシュモードである。セルフリフレッシュモードでは、全てのバンクがアイドル状態であり、全ての外部クロッキングが除去されるが、ＤＲＡＭは、内蔵タイマーを使用して、全ての行を周期的にリフレッシュすることによって、その内容を維持する。
【０００３】
最近のＤＤＲメモリコントローラは、効率を高めるために、保留中のメモリアクセス要求を順不同に選ぶことができるように、保留中のメモリアクセス要求を記憶するためのキューを維持する。例えば、メモリコントローラは、現在の行をプリチャージして別の行をアクティブにするオーバヘッドを回避するために、所定のランクの同じ行への複数のメモリアクセス要求を順不同にキューから検索し、これらをメモリシステムに連続して発行することができる。メモリコントローラは、効率を改善することに加えて、低電力状態に出入りするのに必要とされる余分な時間を節電が上回るのを見越して、ＤＤＲ  ＤＲＡＭの１つ以上のランクを低電力状態にする。既知のメモリコントローラは、ＤＤＲ  ＤＲＡＭの特定のランクを、キュー内の当該ランクに対する保留中のメモリアクセス要求がない限り、低電力状態にしない。
【図面の簡単な説明】
【０００４】
【図１】いくつかの実施形態による、データ処理システムを示すブロック図である。
【図２】図１のデータ処理システムでの使用に適した高度処理ユニット（ＡＰＵ：Advanced Processing Unit）を示すブロック図である。
【図３】いくつかの実施形態による、図２のＡＰＵでの使用に適したメモリコントローラ及び関連する物理インタフェース（ＰＨＹ）を示すブロック図である。
【図４】いくつかの実施形態による、図２のＡＰＵでの使用に適した他のメモリコントローラ及び関連するＰＨＹを示すブロック図である。
【図５】いくつかの実施形態による、メモリコントローラを示すブロック図である。
【図６】いくつかの実施形態による、図５のメモリコントローラによって使用され得るフロー図である。
【発明を実施するための形態】
【０００５】
以下の説明において、異なる図面において同じ参照符号を使用することは、類似又は同一のアイテムを示す。特に明示しない限り、「接続された」という用語及びこれに関連する動詞の形態は、本技術分野で知られている手段による直接接続及び間接的な電気的接続の両方を含み、特に断りのない限り、直接接続の説明は、間接的な電気的接続の適切な形態を使用する代替の実施形態をも意味する。
【０００６】
以下に一形態で説明するように、データ処理システムは、複数のランクを含むメモリチャネルと、データプロセッサと、を含む。データプロセッサは、メモリチャネルに接続されており、複数のランクの各々にアクセスするように構成されている。データプロセッサは、所定のイベントを検出したことに応じて、複数のランクのうちアクティブなランクを選択し、アクティブなランク以外の他のランクを低電力状態にする。この場合、他のランクは、所定のイベントの検出時に保留中の要求を有する少なくとも１つのランクを含む。次に、データプロセッサは、アクティブなランクに対するメモリアクセス要求を処理する。
【０００７】
他の形態では、データプロセッサは、メモリアクセスエージェントと、メモリアクセスエージェントに接続されたメモリコントローラと、を含む。メモリコントローラは、第１の複数のランクを含むメモリシステムに接続するように構成されている。メモリコントローラは、第１の所定のイベントの検出に応じて、第１の複数のランクのうちアクティブなランクを選択し、第１の複数のランクのうちアクティブなランク以外の他のランクを低電力状態にする。例えば、所定のイベントは、熱イベントであってもよく、低電力状態は、プリチャージパワーダウン状態であってもよい。他のランクは、所定のイベントの検出時に保留中の要求を有する少なくとの１つのランクを含む。次に、メモリコントローラは、アクティブなランクに対する少なくとも１つのメモリアクセス要求を処理する。
【０００８】
さらに他の形態では、メモリシステムへのメモリアクセスのスロットリングを行う方法を使用して、潜在的に有害な熱イベントを軽減することができる。熱イベントが検出され、熱イベントの検出に応じて、複数のランクのうちアクティブなランクが選択され、複数のランクのうちアクティブなランク以外の他のランクが低電力状態にされる。他のランクは、保留中の要求を有する少なくとも１つのランクを含む。アクティブなランクに対する少なくとも１つのメモリアクセス要求が処理される。
【０００９】
図１は、いくつかの実施形態による、データ処理システム１００を示すブロック図である。データ処理システム１００は、概して、加速処理ユニット（ＡＰＵ：Accelerated Processing Unit）の形態にあるデータプロセッサ１１０と、メモリシステム１２０と、ＰＣＩｅ（Peripheral Component Interconnect express）システム１５０と、ユニバーサルシリアルバス（ＵＳＢ）システム１６０と、ディスクドライブ１７０と、を含む。データプロセッサ１１０は、データ処理システム１００の中央処理装置（ＣＰＵ）として動作し、現在のコンピュータシステムにおいて有用な様々なバス及びインタフェースを提供する。これらのインタフェースには、２つのダブルデータレート（ＤＤＲｘ）メモリチャネル、ＰＣＩｅリンクに接続するためのＰＣＩｅルート複合体、ＵＳＢネットワークに接続するためのＵＳＢコントローラ、及び、ＳＡＴＡ（Serial Advanced Technology Attachment）大容量記憶装置に対するインタフェースが含まれる。
【００１０】
メモリシステム１２０は、メモリチャネル１３０と、メモリチャネル１４０と、を含む。メモリチャネル１３０は、ＤＤＲｘバス１３２に接続されたデュアルインラインメモリモジュール（ＤＩＭＭ）のセット（この例では、別々のランクに対応する代表的なＤＩＭＭ１３４，１３６，１３８）を含む。同様に、メモリチャネル１４０は、ＤＤＲｘバス１４２に接続されたＤＩＭＭのセット（代表的なＤＩＭＭ１４４，１４６，１４８）を含む。
【００１１】
ＰＣＩｅシステム１５０は、データプロセッサ１１０内のＰＣＩｅルート複合体に接続されたＰＣＩｅスイッチ１５２と、ＰＣＩｅ装置１５４と、ＰＣＩｅ装置１５６と、ＰＣＩｅ装置１５８と、を含む。ＰＣＩｅ装置１５６は、システム基本入出力システム（ＢＩＯＳ）メモリ１５７に接続されている。システムＢＩＯＳメモリ１５７は、例えば読み出し専用メモリ（ＲＯＭ）、フラッシュＥＥＰＲＯＭ（flash electrically erasable programmable ROM）等の様々な不揮発性メモリタイプの何れかとすることができる。
【００１２】
ＵＳＢシステム１６０は、データプロセッサ１１０内のＵＳＢマスタに接続されたＵＳＢハブ１６２と、それぞれＵＳＢハブ１６２に接続された代表的なＵＳＢ装置１６４，１６６，１６８と、を含む。ＵＳＢ装置１６４，１６６，１６８は、例えばキーボード、マウス、フラッシュＥＥＰＲＯＭポート等の装置であってもよい。
【００１３】
ディスクドライブ１７０は、ＳＡＴＡバスを介してデータプロセッサ１１０に接続されており、オペレーティングシステム、アプリケーションプログラム、アプリケーションファイル等のための大容量記憶装置を提供する。
【００１４】
データ処理システム１００は、メモリチャネル１３０及びメモリチャネル１４０を提供することによって、現在のコンピューティングアプリケーションでの使用に適している。メモリチャネル１３０，１４０の各々は、ＤＤＲバージョン４（ＤＤＲ４）、低電力ＤＤＲ４（ＬＰＤＤＲ４）、グラフィックスＤＤＲバージョン５（ｇＤＤＲ５）及び高帯域幅メモリ（ＨＢＭ）等の最新のＤＤＲメモリに接続することができ、将来のメモリ技術に適応可能である。これらのメモリは、高いバス帯域幅及び高速動作を提供する。同時に、これらは、ラップトップコンピュータ等のバッテリ駆動アプリケーションの電力を節約する低電力モードを提供し、ビルトインのサーマルモニタリングをも提供する。以下により詳細に説明するように、データプロセッサ１１０は、過熱を回避し、且つ、熱的過負荷の可能性を低減するために、特定の状況において電力のスロットリングを行うことができるメモリコントローラを含む。
【００１５】
図２は、図１のデータ処理システム１００での使用に適したＡＰＵ２００を示すブロック図である。ＡＰＵ２００は、概して、中央処理装置（ＣＰＵ）コア複合体２１０と、グラフィックスコア２２０と、ディスプレイエンジン２３０のセットと、メモリ管理（ＭＭ）ハブ２４０と、データファブリック２５０と、周辺機器コントローラ２６０のセットと、周辺機器バスコントローラ２７０のセットと、システム管理ユニット（ＳＭＵ）２８０と、メモリコントローラ２９０のセットと、を含む。
【００１６】
ＣＰＵコア複合体２１０は、ＣＰＵコア２１２と、ＣＰＵコア２１４と、を含む。この例では、ＣＰＵコア複合体２１０は、２つのＣＰＵコアを含むが、他の実施形態では、ＣＰＵコア複合体は、任意の数のＣＰＵコアを含むことができる。ＣＰＵコア２１２，２１４の各々は、制御ファブリックを形成するシステム管理ネットワーク（ＳＭＮ）及びデータファブリック２５０に双方向に接続されており、データファブリック２５０に対してメモリアクセス要求を提供することができる。ＣＰＵコア２１２，２１４の各々は、単一のコアであってもよいし、キャッシュ等の特定のリソースを共有する２つ以上の単一のコアを有するコア複合体であってもよい。
【００１７】
グラフィックスコア２２０は、例えば、頂点処理、フラグメント処理、シェーディング、テクスチャ混合等のグラフィック動作を高度に統合された並列形式で実行することの可能な高性能グラフィックス処理ユニット（ＧＰＵ）である。グラフィックスコア２２０は、ＳＭＮ及びデータファブリック２５０に双方向に接続されており、データファブリック２５０に対してメモリアクセス要求を提供することができる。この点において、ＡＰＵ２００は、ＣＰＵコア複合体２１０及びグラフィックスコア２２０が同じメモリ空間を共有する統合メモリアーキテクチャ、又は、ＣＰＵコア複合体２１０及びグラフィックスコア２２０がメモリ空間の一部を共有するメモリアーキテクチャの何れかをサポートすることができ、また、グラフィックスコア２２０は、ＣＰＵコア複合体２１０によってアクセスすることができないプライベートグラフィックスメモリを使用する。
【００１８】
ディスプレイエンジン２３０は、グラフィックスコア２２０によって生成されたオブジェクトをレンダリング及びラスタライズして、モニタ上に表示する。グラフィックスコア２２０及びディスプレイエンジン２３０は、メモリシステム１２０における適切なアドレスへの一様な変換のために、共通メモリ管理（ＭＭ）ハブ２４０に双方向に接続されており、メモリ管理ハブ２４０は、かかるメモリアクセスを生成し、メモリシステムから返された読み出しデータを受信するために、データファブリック２５０に双方向に接続されている。
【００１９】
データファブリック２５０は、何れかのメモリアクセスエージェントとメモリコントローラ２９０との間でメモリアクセス要求及びメモリ応答をルーティングするためのクロスバースイッチを含む。データファブリック２５０は、ＢＩＯＳによって定義されたシステムメモリマップであって、システム構成に基づいてメモリアクセスの宛先を決定するためのシステムメモリマップと、仮想接続毎のバッファと、を含む。
【００２０】
周辺機器コントローラ２６０は、ＵＳＢコントローラ２６２と、ＳＡＴＡインタフェースコントローラ２６４と、を含み、これらの各々は、システムハブ２６６及びＳＭＮバスに双方向に接続されている。これらの２つのコントローラは、ＡＰＵ２００で使用することができる周辺機器コントローラの単なる例示である。
【００２１】
周辺機器バスコントローラ２７０は、システムコントローラ又は「サウスブリッジ」（ＳＢ）２７２と、ＰＣＩｅコントローラ２７４と、を含み、これらの各々は、入力／出力（Ｉ／Ｏ）ハブ２７６及びＳＭＮバスに双方向に接続されている。また、Ｉ／Ｏハブ２７６は、システムハブ２６６及びデータファブリック２５０に双方向に接続されている。よって、例えば、ＣＰＵコアは、Ｉ／Ｏハブ２７６を介してデータファブリック２５０がルーティングするアクセスを介して、ＵＳＢコントローラ２６２、ＳＡＴＡインタフェースコントローラ２６４、ＳＢ２７２又はＰＣＩｅコントローラ２７４のレジスタをプログラムすることができる。
【００２２】
ＳＭＵ２８０は、ＡＰＵ２００上のリソースの動作を制御し、これらの間の通信を同期させるローカルコントローラである。ＳＭＵ２８０は、ＡＰＵ２００上の様々なプロセッサのパワーアップシーケンシングを管理し、リセット、イネーブル及び他の信号を介して複数のオフチップ装置を制御する。ＳＭＵ２８０は、ＡＰＵ２００の各コンポーネントにクロック信号を提供するために、例えば位相同期ループ（ＰＬＬ）等のように図２に示されていない１つ以上のクロックソースを含む。また、ＳＭＵ２８０は、様々なプロセッサ及び他の機能ブロックの電力を管理し、ＣＰＵコア２１２，２１４及びグラフィックスコア２２０から測定された電力消費値を受信して、適切な電力状態を決定することができる。
【００２３】
また、ＡＰＵ２００は、様々なシステムモニタリング及び節電機能を実装する。特に、１つのシステムモニタリング機能は、サーマルモニタリング（熱監視）である。例えば、ＡＰＵ２００が高温になると、ＳＭＵ２８０は、ＣＰＵコア２１２，２１４及び／又はグラフィックスコア２２０の周波数及び電圧を低減することができる。ＡＰＵ２００がさらに高温になると、ＡＰＵ２００は完全にシャットダウンされてもよい。サーマルイベントは、ＳＭＮバスを介してＳＭＵ２８０によって外部センサから受信されてもよく、ＳＭＵ２８０は、これに応じてクロック周波数及び／又は電源電圧を低減することができる。
【００２４】
図３は、いくつかの実施形態による、図２のＡＰＵ２００での使用に適したメモリコントローラ３００及び関連する物理インタフェース（ＰＨＹ）３３０を示すブロック図である。メモリコントローラ３００は、メモリチャネル３１０と、電源エンジン３２０と、を含む。メモリチャネル３１０は、ホストインタフェース３１２と、メモリチャネルコントローラ３１４と、物理インタフェース３１６と、を含む。ホストインタフェース３１２は、スケーラブルデータポート（ＳＤＰ）を介して、メモリチャネルコントローラ３１４をデータファブリック２５０に双方向に接続する。物理インタフェース３１６は、ＤＤＲ−ＰＨＹインタフェース仕様（ＤＦＩ）に準拠するバスを介して、メモリチャネルコントローラ３１４をＰＨＹ３３０に双方向に接続する。電源エンジン３２０は、ＳＭＮバスを介してＳＭＵ２８０に双方向に接続されており、ＡＰＢ（Advanced Peripheral Bus）を介してＰＨＹ３３０に双方向に接続されており、メモリチャネルコントローラ３１４に双方向に接続されている。ＰＨＹ３３０は、図１のメモリチャネル１３０又はメモリチャネル１４０等のメモリチャネルへの双方向接続を有する。メモリコントローラ３００は、単一のメモリチャネルコントローラ３１４を使用した単一のメモリチャネル用のメモリコントローラのインスタンス化であり、以下にさらに説明するように、メモリチャネルコントローラ３１４の動作を制御する電源エンジン３２０を有する。
【００２５】
図４は、いくつかの実施形態による、図２のＡＰＵ２００での使用に適した他のメモリコントローラ４００及び関連するＰＨＹ４４０，４５０を示すブロック図である。メモリコントローラ４００は、メモリチャネル４１０，４２０と、電源エンジン４３０と、を含む。メモリチャネル４１０は、ホストインタフェース４１２と、メモリチャネルコントローラ４１４と、物理インタフェース４１６と、を含む。ホストインタフェース４１２は、ＳＤＰを介して、メモリチャネルコントローラ４１４をデータファブリック２５０に双方向に接続する。物理インタフェース４１６は、ＤＦＩ仕様に準拠して、メモリチャネルコントローラ４１４をＰＨＹ４４０に双方向に接続する。メモリチャネル４２０は、ホストインタフェース４２２と、メモリチャネルコントローラ４２４と、物理インタフェース４２６と、を含む。ホストインタフェース４２２は、別のＳＤＰを介して、メモリチャネルコントローラ４２４をデータファブリック２５０に双方向に接続する。物理インタフェース４２６は、ＤＦＩ仕様に準拠して、メモリチャネルコントローラ４２４をＰＨＹ４５０に双方向に接続する。電源エンジン４３０は、ＳＭＮバスを介してＳＭＵ２８０に双方向に接続されており、ＡＰＢを介してＰＨＹ４４０，４５０に双方向に接続されており、メモリチャネルコントローラ４１４，４２４に双方向に接続されている。ＰＨＹ４４０は、図１のメモリチャネル１３０等のメモリチャネルへの双方向接続を有する。ＰＨＹ４５０は、図１のメモリチャネル１４０等のメモリチャネルへの双方向接続を有する。メモリコントローラ４００は、２つのメモリチャネルコントローラを有するメモリコントローラのインスタンス化であり、以下にさらに説明するように、メモリチャネルコントローラ４１４及びメモリチャネルコントローラ４２４の両方の動作を制御する共有電源エンジン４３０を使用する。
【００２６】
図５は、いくつかの実施形態による、メモリコントローラ５００を示すブロック図である。メモリコントローラ５００は、概して、メモリチャネルコントローラ５１０と、電源コントローラ５５０と、を含む。メモリチャネルコントローラ５１０は、概して、インタフェース５１２と、キュー５１４と、コマンドキュー５２０と、アドレスジェネレータ５２２と、コンテンツアドレス可能メモリ（ＣＡＭ）５２４と、再生キュー５３０と、リフレッシュロジックブロック５３２と、タイミングブロック５３４と、ページテーブル５３６と、アービタ５３８と、エラー訂正コード（ＥＣＣ）チェックブロック５４２と、ＥＣＣ生成ブロック５４４と、データバッファ（ＤＢ）５４６と、を含む。
【００２７】
インタフェース５１２は、外部バスを介したデータファブリック２５０への第１双方向接続を有し、出力を有する。メモリコントローラ５００において、この外部バスは、「ＡＸＩ４」として知られる、イングランドのケンブリッジのＡＲＭホールディングスＰＬＣによって指定されたＡＸＩ（Advanced Extensible Interface）バージョン４と互換性があるが、他の実施形態では、他のタイプのインタフェースであってもよい。インタフェース５１２は、ＦＣＬＣ（又は、ＭＥＭＣＬＫ）ドメインとして知られる第１クロックドメインから、ＵＣＬＫドメインとして知られるメモリコントローラ５００内の第２クロックドメインへのメモリアクセス要求を返還する。同様に、キュー５１４は、ＵＣＬＫドメインからＤＦＩインタフェースに関連するＤＦＩＣＬＫドメインへのメモリアクセスを提供する。
【００２８】
アドレスジェネレータ５２２は、ＡＸＩ４バスを介してデータファブリック２５０から受信したメモリアクセス要求のアドレスを復号化する。メモリアクセス要求は、標準化されたフォーマットで表される物理アドレス空間内のアクセスアドレスを含む。アドレスジェネレータ５２２は、標準化されたアドレスを、メモリシステム１２０内の実際のメモリ装置をアドレス指定し、関連するアクセスを効率的にスケジューリングするのに使用可能なフォーマットに変換する。このフォーマットは、メモリアクセス要求を、特定のランク、行アドレス、列アドレス、バンクアドレス及びバンクグループに関連付ける領域識別子を含む。システムＢＩＯＳは、起動すると、メモリシステム１２０内のメモリ装置にクエリしてそのサイズ及び構成を判別し、アドレスジェネレータ５２２に関連する構成レジスタのセットをプログラミングする。アドレスジェネレータ５２２は、標準化されたアドレスを適切なフォーマットに変換するために、構成レジスタに記憶された構成を使用する。コマンドキュー５２０は、例えば、ＣＰＵコア２１２，２１４及びグラフィックスコア２２０等のデータ処理システム１００内のメモリアクセスエージェントから受信したメモリアクセス要求のキューである。コマンドキュー５２０は、アドレスジェネレータ５２２によって復号化されたアドレスフィールドと、アービタ５３８がアクセスタイプ及びサービス品質（ＱｏＳ）識別子を含むメモリアクセスを効率的に選択するのを可能にする他のアドレス情報と、を記憶する。ＣＡＭ５２４は、例えば、ライトアフターライト（ＷＡＷ）及びリードアフターライト（ＲＡＷ）順序付けルール等の順序付けルールを実施するための情報を含む。
【００２９】
再生キュー５３０は、アドレス及びコマンドパリティ応答、ＤＤＲ４  ＤＲＡＭに対する書き込み巡回冗長チェック（ＣＲＣ）応答、又は、ｇＤＤＲ５  ＤＲＡＭに対する書き込み及び読み出しＣＲＣ応答等の応答を待っているアービタ５３８によって取り出されたメモリアクセスを記憶するための一時的なキューである。再生キュー５３０は、ＥＣＣチェックブロック５４２にアクセスして、返されたＥＣＣが正確であるかエラーを示すかを判別する。再生キュー５３０は、これらのサイクルのうち１つのサイクルのパリティ又はＣＲＣエラーの場合にアクセスが再生されることを可能にする。
【００３０】
リフレッシュロジック５３２は、メモリアクセスエージェントから受信した通常の読み出し及び書き込みメモリアクセス要求とは別に生成された様々なパワーダウン、リフレッシュ及び終端抵抗（ＺＱ）較正サイクルのための状態機械を含む。例えば、メモリランクがプリチャージパワーダウンにある場合、リフレッシュサイクルを実行するために定期的に起動する必要がある。リフレッシュロジック５３２は、ＤＲＡＭチップ内のメモリセルの記憶キャパシタから電荷がリークすることによって生じるデータエラーを防止するために、リフレッシュコマンドを定期的に生成する。また、リフレッシュロジック５３２は、システムの熱変化によるオンダイターミネーション抵抗の不一致を防止するために、ＺＱを定期的に較正する。
【００３１】
アービタ５３８は、コマンドキュー５２０に双方向に接続されており、メモリチャネルコントローラ５１０の中心部である。アービタ５３８は、メモリバスの使用を改善するために、アクセスのインテリジェントなスケジューリングによって効率を改善する。アービタ５３８は、タイミングブロック５３４を使用して、コマンドキュー５２０内の特定のアクセスがＤＲＡＭタイミングパラメータに基づいて発行に適格であるかどうかを判別することによって、適切なタイミング関係を実施する。例えば、各ＤＲＡＭは、「ｔＲＣ」として知られるアクティブコマンド間の最小の指定時間を有する。タイミングブロック５３４は、ＪＥＤＥＣ仕様で規定されたこの及び他のタイミングパラメータに基づいて、適格性を決定するカウンタのセットを維持し、再生キュー５３０に双方向に接続されている。ページテーブル５３６は、各バンクのアクティブページに関する状態情報、及び、アービタ５３８のためにメモリチャネルのランクを維持し、再生キュー５３０に双方向に接続されている。
【００３２】
ＥＣＣ生成ブロック５４４は、インタフェース５１２から受信した書き込みメモリアクセス要求に応じて、書き込みデータに従ってＥＣＣを計算する。ＤＢ５４６は、受信したメモリアクセス要求に関する書き込みデータ及びＥＣＣを記憶する。ＤＢ５４６は、アービタ５３８がメモリチャネルへのディスパッチのために対応する書き込みアクセスを選択した場合に、組み合わされた書き込みデータ／ＥＣＣをキュー５１４に出力する。
【００３３】
電源コントローラ５５０は、概して、ＡＸＩバージョン１（ＡＸＩ）へのインタフェース５５２と、ＡＰＢインタフェース５５４と、電源エンジン５６０と、を含む。インタフェース５５２は、図５において別個に示される「ＥＶＥＮＴ＿ｎ」という符号が付されたイベント信号を受信するための入力と出力とを含む、ＳＭＮへの第１双方向接続を有する。ＡＰＢインタフェース５５４は、インタフェース５５２の出力に接続された入力と、ＡＰＢを介してＰＨＹに接続するための出力と、を有する。電源エンジン５６０は、インタフェース５５２の出力に接続された入力と、キュー５１４の入力に接続された出力と、「ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ」という符号が付された信号を提供するための出力と、を有する。電源エンジン５６０は、構成レジスタ５６２のセットと、マイクロコントローラ（μＣ）５６４と、セルフリフレッシュコントローラ（ＳＬＦＲＥＦ／ＰＥ）５６６と、信頼された読み出し／書き込みタイミングエンジン（ＲＲＷ／ＴＥ）５６８と、を含む。構成レジスタ５６２は、ＡＸＩバスを介してプログラムされ、メモリコントローラ５００内の様々なブロックの動作を制御するための構成情報を記憶する。したがって、構成レジスタ５６２は、これらのブロック（図５には詳細に示されていない）に接続された出力を有する。セルフリフレッシュコントローラ５６６は、リフレッシュロジック５３２によるリフレッシュの自動生成に加えて、リフレッシュの手動生成を可能にするエンジンである。信頼された読み出し／書き込みタイミングエンジン５６８は、ＤＤＲインタフェースの最大読み出しレイテンシ（ＭＲＬ）トレーニング及びループバックテスト等の目的のために、連続したメモリアクセスストリームをメモリ又はＩ／Ｏ装置に提供する。μＣ５６４は、とりわけ、熱イベントをスロットリングするかどうかを決定するために使用される。したがって、μＣ５６４は、ＥＶＥＮＴ＿ｎ信号のアクティブ化に応じて、構成レジスタ５６２の設定を決定し、選択された場合、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号をアクティブ化する。
【００３４】
メモリチャネルコントローラ５１０は、関連するメモリチャネルにディスパッチするためにメモリアクセスを選択することを可能にする回路を含む。所望のアービトレーションの決定を行うために、アドレスジェネレータ５２２は、アドレス情報を、メモリシステム内のランク、行アドレス、列アドレス、バンクアドレス及びバンクグループを含む予め復号化された情報に復号化し、コマンドキュー５２０は、予め復号化された情報を記憶する。構成レジスタ５６２は、受信したアドレス情報をアドレスジェネレータ５２２がどのように復号化するのかを決定するために、構成情報を記憶する。アービタ５３８は、例えばＱｏＳ要件等の他の基準を観察しながらメモリアクセスを効率的にスケジュールするために、復号化されたアドレス情報、タイミングブロック５３４によって示されるタイミング適格性情報、及び、ページテーブル５３６によって示されたアクティブページ情報を使用する。例えば、アービタ５３８は、メモリページを変更するために必要なプリチャージ及びアクティブ化コマンドのオーバヘッドを回避するために、オープンページへのアクセスを優先し、別のバンクへの読み出し及び書き込みアクセスとインタリーブすることによって、１つのバンクへのオーバヘッドアクセスを隠す。特に、通常動作中、アービタ５３８は、通常、ページを選択する前にプリチャージされる必要があるまで、異なるバンクにおいてページを開いたままにする。
【００３５】
関連するメモリチャネル内の少なくとも１つのＤＩＭＭが過熱すると、メモリチャネルは、ＥＶＥＮＴ＿ｎ信号をアクティブにする。ＥＶＥＮＴ＿ｎ信号は、熱イベントがメモリチャネルの１つ以上のランクで発生したことを示すワイヤードＯＲ信号である。電源エンジン５６０は、ＥＶＥＮＴ＿ｎ信号のアクティベーションを検出したことに応じて、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号をアクティブにするようにプログラム可能である。アービタ５３８は、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号のアクティベーションに応じて、低電力と効率との間のトレードオフを低電力が優先されるように変更するように、ポリシーを変更する。他の実施形態では、電源エンジン５６０は、イベントに応じて設定されるレジスタをポーリングすること等によって、イベント入力信号を使用することなくイベントを検出可能であることに留意されたい。アービタ５３８は、複数のランクのうちアクティブなランクを選択し、アクティブなランク以外の外のランクを低電力状態にする。この場合、他のランクは、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号のアクティベーション時に保留中の要求を有する少なくとも１つのランクを含む。次に、アービタ５３８は、アクティブなランクに対するメモリアクセス要求を選ぶ。状況によっては、このメモリアクセス要求は、通常、アクセスを効率的に提供するため、又は、オーバヘッドアクセスを隠すために、別の要求を提供するようにバイパスされている。
【００３６】
図６は、いくつかの実施形態による、図５のメモリコントローラ５００によって使用され得るフロー図６００である。フローは、ボックス６１０で開始する。アクションボックス６２０では、アービタ５３８は、図５を参照して説明したように、デフォルト基準を使用して、ＵＣＬＫ信号と同期した次の要求を処理する。判別ボックス６３０では、アービタ５３８は、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号がアクティブであるかどうかを判別することによって、熱イベントを検出する。ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号がアクティブでない場合、フローは、アクションボックス６２０に戻り、アービタ５３８は、デフォルト基準を使用して、ＵＣＬＫ信号と同期した次の要求を処理する。一方、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号がアクティブである場合、フローは、アクションボックス６４０に進む。アクションボックス６４０では、アービタ５３８は、アクティブなランクを、より多くの要求が保留のままである場合には現在のランク又は別のランクとして選択する。アクションボックス６５０において、アービタ５３８は、アクティブなランク以外の他のランクを、アクティブパワーダウン状態、プリチャージパワーダウン状態、又は、セルフリフレッシュ状態等の低電力状態にする。アクションボックス６６０において、メモリコントローラ５００は、アクティブなランクに対する少なくとも１つのメモリアクセス要求を処理する。
【００３７】
判別ボックス６７０において、アービタ５３８は、熱イベントが終了したかどうかを、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号をサンプリングすることによって判別する。熱イベントが終了したことを示すように、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号が非アクティブである場合には、フローは、アクションボックス６２０に戻り、アービタ５３８は、デフォルト基準によって決定された次の要求を処理する。複数のバンクが、デフォルト基準を使用して許可されるのと同時にアクティブになる場合があることに留意されたい。熱イベントが終了していないことを示すように、ＴＨＥＲＭＡＬ  ＴＨＲＯＴＴＬＥ信号が依然としてアクティブである場合には、フローは、判別ボックス６８０に進む。判別ボックス６８０は、別のランクを選択するかどうかを判別する。例えば、コマンドキュー５２０内のアクティブなランクに対する全ての要求が処理された場合には、別のランクが（当該別のランクが１つ以上の保留中の要求を有すると仮定して）選択される。他の基準（例えば、アクティブなランク内の現在のページに対するさらなる保留中の要求がないこと、又は、保留中のチャネルに対する特定の数の他の要求よりも少ない等）も可能である。この場合、フローは、アクションボックス６４０に戻り、アービタ５３８は、新たなアクティブなランクを選択し、（現在アクティブなランクを含む）他の全てのランクを低電力状態にする。アービタ５３８が別のランクを選択しない場合、フローは、アクションボックス６６０に戻り、アービタ５３８は、アクティブなランク内の次のコマンドを処理する。
【００３８】
既知のメモリコントローラとは異なり、メモリコントローラ５００は、アクティブなランク以外の全てのランクを低電力状態にする。ここで、これらの他のランクの１つ以上は、保留中の要求を含む。メモリコントローラ５００は、保留中の要求があるかどうかに基づいて特定のランクを低電力にするという決定を条件付けしないことによって、熱イベントをより良く軽減するために、現在のランク以外の全ての電力を低減する。また、メモリコントローラ５００は、熱イベントの存在下で、レイテンシと公正性との間のトレードオフのバランス及び電力消費のバランスを変更するのが望ましいことを認識する。熱イベントの存在下で、メモリコントローラ５００は、より低い電力消費に向かうようにバランスを移動させることにより、熱イベントの軽減に役立つ。
【００３９】
図６の方法は、ハードウェア及びソフトウェアの様々な組み合わせによって実施されてもよい。例えば、図５は、ソフトウェアの制御下で動作する熱イベントを検出し報告するために、μＣ５６４を使用するメモリコントローラの一実施形態を示しているが、アービタ５３８は、ハードウェア回路で実装されている。このハードウェア回路は、プライオリティエンコーダ、有限状態機械、プログラマブルロジックアレイ（ＰＬＡ）等を含んでもよい。しかしながら、他の実施形態では、アービタ５３８は、記憶されたプログラム命令を実行するマイクロコントローラを用いて実装可能である。ソフトウェアコンポーネントのいくつかは、少なくとも１つのプロセッサによる実行のために、コンピュータ可読記憶媒体に記憶されてもよい。また、図６に示される方法のいくつか又は全ては、コンピュータ可読記憶媒体に記憶され、少なくとも１つのプロセッサによって実行される命令によって管理されてもよい。図６に示す各動作は、非一時的なコンピュータメモリ又はコンピュータ可読記憶媒体に記憶された命令に対応してもよい。様々な実施形態では、非一時的なコンピュータ可読記憶媒体は、磁気若しくは光ディスク記憶装置、フラッシュメモリ等のソリッドステート記憶装置、又は、他の不揮発性メモリ装置を含む。非一時的なコンピュータ可読記憶媒体に記憶されるコンピュータ可読命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、１つ以上のプロセッサによって解釈及び／若しくは実行可能な他の命令フォーマットであってもよい。
【００４０】
図５のメモリコントローラ５００又はこの一部は、データベースの形態でコンピュータがアクセス可能なデータ構造、又は、プログラムによって読み出され、集積回路を製造するために直接若しくは間接的に使用可能な他のデータ構造によって記述又は表現されてもよい。例えば、このデータ構造は、Ｖｅｒｉｌｏｇ又はＶＨＤＬ等の高水準設計言語（ＨＤＬ）におけるハードウェア機能の動作レベル記述又はレジスタ転送レベル（ＲＴＬ）記述であってもよい。この記述は、当該記述を合成して、合成ライブラリからゲートのリストを含むネットリストを生成することができる合成ツールによって読み出されてもよい。ネットリストは、集積回路を含むハードウェアの機能を表すゲートのセットを含む。次に、ネットリストを配置及びルーティングして、マスクに適用される幾何学的形状を記述するデータセットを生成することができる。次いで、マスクを様々な半導体製造ステップで使用して、集積回路を製造することができる。或いは、コンピュータがアクセス可能な記憶媒体上のデータベースは、（合成ライブラリを伴う若しくは伴わない）ネットリスト又はデータセットであってもよいし、必要に応じて、グラフィックデータシステム（ＧＤＳ）ＩＩデータであってもよい。
【００４１】
特定の実施形態について説明したが、これらの実施形態に対する様々な変更が当業者に明らかになるであろう。例えば、メモリコントローラは、メモリを、上述したアクティブパワーダウン、プリチャージパワーダウン、セルフリフレッシュ状態とは異なる様々な低電力状態にすることができる。また、メモリチャネルコントローラ５１０及び／又は電源エンジン５５０の内部アーキテクチャは、異なる実施形態において変えられてもよい。メモリコントローラ５００は、ＤＤＲｘメモリ、ＨＢＭ、ＲＡＭｂｕｓ  ＤＲＡＭ（ＲＤＲＡＭ）、及び、同様のメモリを含む様々なタイプのメモリとインタフェースすることができる。示された実施形態は、別々のＤＩＭＭに対応するメモリの各ランクを示したが、他の実施形態では、各ＤＩＭＭは、複数のランクをサポートすることができる。
【００４２】
一形態では、データ処理システム（１００）は、メモリバスとメモリバスに接続された複数のランク（１３４／１３６／１３８）とを含むメモリチャネル（１３０）と、前記メモリチャネル（１３０）に接続されたデータプロセッサ（１１０）と、を備える。各ランクは、所定のコマンドに応答するためにロックステップで動作し、複数のチップ選択信号の各々に接続されたメモリデバイスのセットを備える。データプロセッサは、複数のランク（１３４／１３６／１３８）の各々にアクセスするように構成されている。データプロセッサ（１１０）は、所定のイベントの検出に応じて、複数のランク（１３４／１３６／１３８）のうちアクティブなランクを選択することと、アクティブなランク以外の他のランクを低電力状態にすることであって、他のランクは、所定のイベントを検出したときにデータプロセッサが保留中の要求を記憶する少なくとも１つのランクを含む、ことと、アクティブなランクに対するメモリアクセス要求を処理することと、を行うように構成されている。
【００４３】
一態様によれば、所定のイベントは熱イベントを示し、複数のランクのうち少なくとも１つのランクは、熱イベントを示すイベント信号を提供するための出力を有する温度センサを含む。この態様によれば、複数のランクの各々は、イベント入力導体に接続された対応するオープンドレイン出力を有する、対応する温度センサを含む。
【００４４】
別の態様によれば、データプロセッサ（１１０）は、所定のイベントが終了していないことを検出し、所定の基準に基づいて別のランクを選択しないことを決定したことに応じて、アクティブなランクにおいて次のコマンドを処理する。この態様によれば、所定の基準は、アクティブなランク内に少なくとも１つの保留中の要求があることを含んでもよい。この態様によれば、所定の基準は、アクティブなランクの現在のページ内に少なくとも１つの保留中の要求があることを含んでもよい。この態様によれば、所定の基準は、アクティブなランク内に少なくとも１つの保留中の要求があることと、他のランクに対する所定数の要求よりも少ないこととを含んでもよい。
【００４５】
さらに別の態様によれば、メモリチャネルは、複数のランクのダブルデータレート（ＤＤＲ）メモリを含む。この態様によれば、低電力状態は、ＤＤＲ低電力状態を含んでもよい。
【００４６】
他の形態では、データプロセッサ（１１０／２００）は、メモリアクセスエージェント（２１０／２２０）と、メモリアクセスエージェント（２１０／２２０）に接続され、メモリバスと第１の複数のランク（１３２／１３３／１３４）とを含むメモリシステム（１２０）に接続するように構成されたメモリコントローラ（２９２／３００／４００）と、を備える。各ランクは、所定のコマンドに応答するためにロックステップで動作し、複数のチップ選択信号の各々に接続されたメモリデバイスのセットを備える。メモリコントローラ（２９２／３００／４００）は、第１の所定のイベントの検出に応じて、第１の複数のランク（１３２／１３３／１３４）のうちアクティブなランクを選択する一方で、第１の複数のランク（１３４／１３６／１３８）のうちアクティブなランク以外の他のランクを低電力状態にする。他のランクは、所定のイベントを検出したときにメモリコントローラが保留中の要求を記憶する少なくとも１つのランクを含む。メモリコントローラ（２９２／３００／４００）は、アクティブなランクに対する少なくとも１つのメモリアクセス要求を処理する。
【００４７】
一態様によれば、低電力状態は、アクティブパワーダウン状態、プリチャージパワーダウン状態及びセルフリフレッシュ状態のうち１つを含む。
【００４８】
別の態様によれば、メモリコントローラ（２９２／３００／４００）は、第１のメモリチャネルコントローラ（３１４／４１４）と、電源エンジン（３２０／４３０）と、を備える。第１のメモリチャネルコントローラ（３１４／４１４）は、第１の複数のアクセス要求を受信し、第１の複数のアクセス要求に応じてデータを実行するための第１のホストインタフェース（３１２／４１２）と、第１の物理インタフェース（３１６／４１６）と、に接続されている。電源エンジン（３２０／４３０）は、第１のメモリチャネルコントローラ（３１４／４１４）に接続されており、第１の所定のイベントに応じて、第１のメモリチャネルコントローラ（３１４／４１４）に対して、第１の複数のランク（１３４／１３６／１３８）のうちアクティブなランクを選択させ、アクティブなランク以外の他のランクを低電力状態にさせる。この態様によれば、メモリコントローラ（２９２／４００）は、第２の複数のアクセス要求を受信し、第２の複数のアクセス要求に応じてデータを実行するための第２のホストインタフェース（４２２）と、第２の物理インタフェース（４２６）と、に接続された第２のメモリチャネルコントローラ（４２４）を備えてもよい。この場合、電源エンジン（４３０）は、第２の所定のイベントに応じて、第２のメモリチャネルコントローラ（４２４）に対して、第２の複数のランク（１４４／１４６／１４８）のうちアクティブなランクを選択させ、アクティブなランク以外の他のランクを低電力状態にさせる。さらに、この態様によれば、データプロセッサは、第１のメモリチャネルコントローラ（４１４）の第１の物理インタフェース（４１６）に接続され、第１の複数のランク（１３４／１３６／１３８）に接続されるように構成された、第１のデータプロセッサ物理インタフェース（４４０）と、第２のメモリチャネルコントローラ（４２４）の第２の物理インタフェース（４２６）に接続され、第２の複数のランク（１４４／１４６／１４８）に接続されるように構成された、第２のデータプロセッサ物理インタフェース（４５０）と、を備えてもよい。
【００４９】
さらに別の形態では、メモリシステム（１２０）に対してメモリアクセスのスロットリングを行う方法（６００）は、熱イベントを検出すること（６３０）と、熱イベントを検出したことに応じて、メモリバスに接続された複数のランク（１２４／１２６／１２８）のうちアクティブなランクを選択し（６４０）、複数のランク（１２４／１２６／１２８）のうちアクティブなランク以外の他のランクを低電力状態にすること（６５０）であって、他のランクは、メモリコントローラ（２９２／３００／４００）が保留中の要求を記憶する少なくとも１つのランクを含む、ことと、アクティブなランクに対する少なくとも１つのメモリアクセス要求を処理すること（６６０／６７０／６８０）と、を含む。
【００５０】
一態様によれば、熱イベントを検出する（６３０）前に、複数のランクのうち１つのランクにおいて少なくとも１つのアクセス要求を処理すること（６２０）を含む。
【００５１】
したがって、添付の特許請求の範囲によって、開示された実施形態の範囲に含まれる、開示された実施形態の全ての変更を包含することが意図される。
【国際調査報告】
2019522257.tif 000009
2019522257.tif 000010