(57)【要約】データプロセッサは、メモリアクセスエージェントと、メモリコントローラと、を備える。メモリアクセスエージェントは、メモリに対する複数のアクセスを生成する。メモリコントローラは、メモリアクセスエージェントに接続されており、メモリの特性に基づく順序で複数のメモリアクセスをスケジュールする。メモリの特性には、所定の時間窓におけるメモリのロウに対するアクティベートコマンドの許容数を示すロウサイクルページ時間（ｔＲＣＰＡＧＥ）が含まれる。【選択図】図３
2016536666.tif 000002
【特許請求の範囲】
【請求項１】
メモリ（１００）に対する複数のアクセスを生成するメモリアクセスエージェント（３１０，３２０）と、
前記メモリアクセスエージェント（３１０，３２０）に接続され、前記メモリ（１００）の特性に基づく順序で前記複数のアクセスをスケジュールするメモリコントローラ（３４２）と、を備え、
前記メモリ（１００）の特性には、所定の時間窓における前記メモリ（１００）のロウに対するアクティベートコマンドの許容数を示すロウサイクルページ時間が含まれる、
データプロセッサ（３００）。
【請求項２】
前記順序は、前記所定の時間窓における最近のアクセスの特徴に基づいており、前記最近のアクセスの特徴には、前記所定の時間窓における特定のロウに対するアクティベートコマンドの数が含まれる、請求項１に記載のデータプロセッサ。
【請求項３】
前記メモリ（１００）は、ダブルデータレート（ＤＤＲ）ダイナミックランダムアクセスメモリ（ＤＲＡＭ）を備える、請求項１に記載のデータプロセッサ（３００）。
【請求項４】
前記メモリコントローラ（３４２）と前記メモリ（１００）との間に接続された物理インターフェース回路（３４４）をさらに備える請求項１に記載のデータプロセッサ（３００）。
【請求項５】
前記ロウサイクルページ時間は、前記メモリ（１００）に対応付けられたレジスタ（２２２）を読出すことによって決定される、請求項１に記載のデータプロセッサ（３００）。
【請求項６】
前記メモリアクセスエージェント（３１０，３２０）は、基本入出力システム（ＢＩＯＳ）メモリ（７４０）のメモリシステム初期化部（７４２）の制御の下で前記レジスタ（２２２）を読出す、請求項５に記載のデータプロセッサ（３００）。
【請求項７】
前記メモリアクセスエージェント（３１０，３２０）は、前記所定の時間窓から前記所定の時間窓の間の定期的なリフレッシュ時間を差し引いて正味の時間窓を取得し、前記正味の時間窓を前記メモリ（１００）の前記ロウに対するアクティベートコマンドの許容数で割って前記ロウサイクルページ時間を取得することによって、前記ロウサイクルページ時間を決定する、請求項１に記載のデータプロセッサ（３００）。
【請求項８】
前記メモリアクセスエージェント（３１０，３２０）は、少なくとも１つの中央処理ユニット（ＣＰＵ）コア（３１０）と、少なくとも１つのグラフィック処理ユニット（ＧＰＵ）コア（３２０）と、を備える、請求項１に記載のデータプロセッサ（３００）。
【請求項９】
前記メモリコントローラ（３４２）は、
前記メモリアクセスエージェント（３１０，３２０）から受信したメモリアクセスを記憶する複数のエントリを有するキュー（４１０）と、
前記キュー（４１０）に接続されたアービタ（４２０）であって、選択されたアクセスを前記複数のエントリのうち何れのエントリが記憶しているかを示す制御信号を提供することによって、前記メモリ（１００）に対してディスパッチするエントリを前記キュー（４１０）から選択するアービタ（４２０）と、を備える、請求項１に記載のデータプロセッサ（３００）。
【請求項１０】
前記アービタは、選択されたアクセスを前記複数のエントリのうち何れのエントリが記憶しているかを示す制御信号を提供し、
前記メモリコントローラは、前記キュー（４１０）の前記複数のエントリに接続されたインプットと、前記アービタ（４２０）に接続され前記制御信号を受信する制御インプットと、選択されたメモリアクセスを提供するアウトプットと、を有するマルチプレクサ（４３０）を備える、請求項９に記載のデータプロセッサ。
【請求項１１】
前記アービタ（４２０）は適格性回路（５１０）を備え、
前記適格性回路（５１０）は、
前記マルチプレクサ（４３０）によって出力されたアクティベートコマンドによりアクティベートされるロウを示すアドレスを記憶するアドレスレジスタ（５１６）と、
前記ロウがアクティベートされてからの経過時間が前記ロウサイクルページ時間に達したときに準備完了信号を提供するカウンタ（５１２）と、を備える、請求項１０に記載のデータプロセッサ（３００）。
【請求項１２】
前記アービタ（４２０）は、前記適格性回路（５１０）に接続されたエントリ準備回路（５２０）であって、前記キュー（４１０）の対応するエントリが選択に適しているか否かを、前記対応するエントリのアドレスが前記アドレスと一致する場合に前記準備完了信号に基づいて判別するエントリ準備回路（５２０）を備え、前記アービタ（４２０）は、適しているエントリの中でエントリを前記キュー（４１０）から選択する、請求項１１に記載のデータプロセッサ（３００）。
【請求項１３】
前記適格性回路（５１０）は、
前記アドレスの一部を、ハッシュ関数に従って前記アドレスレジスタ（５１６）に記憶するハッシュ回路（５１４）を備える、請求項１２に記載のデータプロセッサ（３００）。
【請求項１４】
前記アービタ（４２０）は、前記適格性回路（５１０）を含み、ロウサイクル時間に対する前記ロウサイクルページ時間の比率に対応する数の複数の適格性回路を備える、請求項９に記載のデータプロセッサ（３００）。
【請求項１５】
受信したメモリアクセスを記憶する複数のエントリを有するキュー（４１０）と、
前記キュー（４１０）に接続されたアービタ（４２０）であって、ディスパッチ用のエントリを前記キュー（４１０）から選択するアービタ（４２０）と、を備え、
前記アービタ（４２０）は、選択の適格性を、所定の時間窓におけるメモリ（１００）のロウに対するアクティベートコマンドの許容数を示すロウサイクルページ時間に基づいて判定する、
メモリコントローラ（４００）。
【請求項１６】
前記アービタは、選択されたアクセスを前記複数のエントリのうち何れのエントリが記憶しているかを示す制御信号を提供し、
前記メモリコントローラは、前記キューの前記複数のエントリに接続されたインプットと、前記アービタに接続され前記制御信号を受信する制御インプットと、ディスパッチされたメモリアクセスを提供するアウトプットと、を有するマルチプレクサを備え、
マルチプレクサ（４３０）は、前記キュー（４１０）の前記複数のエントリに接続されたインプットと、前記アービタ（４２０）に接続され前記制御信号を受信する制御インプットと、ディスパッチされたメモリアクセスを提供するアウトプットと、を有する、
請求項１５に記載のメモリコントローラ（４００）。
【請求項１７】
前記アービタ（４２０）は適格性回路（５１０）を備え、
前記適格性回路（５１０）は、
アクティベートコマンドによりアクティベートされるロウを示すアドレスを記憶するアドレスレジスタ（５１６）と、
前記ロウがアクティベートされてからの経過時間が前記ロウサイクルページ時間に達したときに準備完了信号を提供するカウンタ（５１２）と、を備える、請求項１５に記載のメモリコントローラ（４００）。
【請求項１８】
前記アービタ（４２０）は、前記適格性回路（５１０）に接続されたエントリ準備回路（５２０）であって、前記キュー（４１０）の対応するエントリが選択に適しているか否かを、前記対応するエントリのアドレスが前記アドレスと一致する場合に前記準備完了信号に基づいて判別するエントリ準備回路（５２０）を備え、前記アービタ（４２０）は、適しているエントリの中のエントリを前記キュー（４１０）から選択する、請求項１７に記載のメモリコントローラ（４００）。
【請求項１９】
前記適格性回路（５１０）は、
前記アドレスの一部を、ハッシュ関数に従って前記アドレスレジスタ（５１６）に記憶するハッシュ回路（５１４）を備える、請求項１７に記載のメモリコントローラ（４００）。
【請求項２０】
前記アービタ（４２０）は、前記適格性回路（５１０）を含み、ロウサイクル時間に対する前記ロウサイクルページ時間の比率に対応する数の複数の適格性回路を備える、請求項１７に記載のメモリコントローラ（４００）。
【請求項２１】
データプロセッサ（７１０）と、
前記データプロセッサ（７１０）に接続されたメモリシステム（７２０）と、を備え、
前記データプロセッサ（７１０）は、前記メモリシステム（７２０）の特性に基づく順序で複数のメモリアクセスをスケジュールし、
前記メモリシステム（７２０）の特性には、所定の時間窓における前記メモリシステム（７２０）のロウに対するアクティベートコマンドの許容数を示すロウサイクルページ時間が含まれる、
データ処理システム（７００）。
【請求項２２】
前記順序は、前記所定の時間窓における最近のアクセスの特徴に基づいており、前記最近のアクセスの特徴には、前記所定の時間窓における特定のロウに対するアクティベートコマンドの数が含まれる、請求項２１に記載のデータ処理システム。
【請求項２３】
前記メモリシステム（７２０）は、複数のダブルデータレート（ＤＤＲ）ダイナミックランダムアクセスメモリ（ＤＲＡＭ）（２１０）を有するデュアルインラインメモリモジュール（ＤＩＭＭ）（２００）を備える、請求項２１に記載のデータ処理システム（７００）。
【請求項２４】
前記データプロセッサ（７１０）は、前記ＤＩＭＭ（２００）の直列プレゼンス検出（ＳＰＤ）読出し専用メモリ（ＲＯＭ）（２２０）内のレジスタ（２２２）を読出すことによって、前記ロウサイクルページ時間を決定する、請求項２３に記載のデータ処理システム（７００）。
【請求項２５】
前記データプロセッサ（７１０）は、不揮発性メモリ（７４０）に記憶された基本入出力システム（ＢＩＯＳ）のメモリシステム初期化部（７４２）の制御の下で、前記レジスタ（２２２）を読出す、請求項２４に記載のデータ処理システム（７００）。
【請求項２６】
前記データプロセッサ（７１０）と前記不揮発性メモリ（７４０）との間に接続された入出力コントローラ（７３０）を備える、請求項２５に記載のデータ処理システム（７００）。
【請求項２７】
前記データプロセッサ（７１０）は、前記所定の時間窓から前記所定の時間窓の間の定期的なリフレッシュ時間を差し引いて正味の時間窓を取得し、前記正味の時間窓を前記ロウに対する前記アクティベートコマンドの許容数で割って前記ロウサイクルページ時間を取得することによって、前記ロウサイクルページ時間を決定する、請求項２１に記載のデータ処理システム（７００）。
【請求項２８】
前記データプロセッサ（７１０）は、少なくとも１つの中央処理ユニット（ＣＰＵ）コア（３１０）と、少なくとも１つのグラフィック処理ユニット（ＧＰＵ）コア（３２０）と、を有する加速処理ユニット（ＡＰＵ）（３００）を備える、請求項２１に記載のデータ処理システム（７００）。
【請求項２９】
メモリ（１００）のロウ（１２５）を第１の時点でアクティベートし（８２０）、
前記メモリ（１００）のロウ（１２５）をプリチャージし（８３０）、
前記メモリ（１００）のロウ（１２５）に対する第２のメモリアクセスを受信し（８４０）、
前記の第１の時点からの経過時間がロウサイクルページ時間より長くなるまで前記第２のメモリアクセスのアクティベートを禁止する（８５０）、
ことを含む方法。
【請求項３０】
前記経過時間が前記ロウサイクルページ時間より長くなった後に前記ロウ（１２５）を再度アクティベートし（８７０）、
前記ロウ（１２５）に対する前記第２のメモリアクセスをディスパッチする（８８０）、
ことを含む請求項２９に記載の方法。
【請求項３１】
少なくとも１つの他の条件を満たしているか否かを判別し（８６０）、
前記判別に応じて、前記ロウ（１２５）を再度アクティベートし（８７０）、前記第２のメモリアクセスをディスパッチする（８８０）、
ことを含む請求項３０に記載の方法。
【請求項３２】
所定の時間窓における許容されたアクセス数に基づいて、前記ロウサイクルページ時間を決定する（８１０）、
ことを含む請求項２９に記載の方法。
【請求項３３】
前記決定（８１０）は、
前記所定の時間窓の間のリフレッシュ時間に基づいて、前記ロウサイクルページ時間を決定する、
ことを含む、請求項３２に記載の方法。
【請求項３４】
前記ロウ（１２５）をアクティベートすること（８２０）は、
ダブルデータレート（ＤＤＲ）ダイナミックランダムアクセスメモリ（ＤＲＡＭ）の前記ロウ（１２５）に対する第１のメモリアクセスをディスパッチする、
ことを含む、請求項２９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してデータ処理システムに関し、より具体的には、メモリコントローラを有するデータプロセッサに関する。
【背景技術】
【０００２】
コンピュータシステムは、通常、安価で高密度なダイナミックランダムアクセスメモリ（ＤＲＡＭ）チップで構成されたメインメモリを利用している。ＤＲＡＭチップの第１のロウ（ＲＯＷ）がアクティベートされると、第１のロウのメモリセルのコンテンツがページバッファに読み出される。これ以降の第１のロウのメモリセルに対する読み出し及び書き込みアクセスは、第１のロウに再度アクセスすることなく、全てページバッファにおいて行われ得る。その後、データプロセッサが同じメモリバンクの第２のロウにアクセスする場合には、第１のロウのメモリセルは、第２のロウがアクティベートされる前にプリチャージ動作においてリストアされる。そして、データプロセッサは、同じメモリバンクの第１のロウに再度アクセス可能となる。
【０００３】
最新のＤＲＡＭチップは、一般的に、ディープサブミクロン技術を使用して、１〜８ギガバイト（Ｇｂ）のデータを記憶する。メモリの各ロウは、高密度かつ小さいフィーチャサイズのために、他のロウと物理的に非常に接近している。このため、特定のロウがアクティベートされると、隣接するロウにおけるメモリセルキャパシタの電荷が変更され、隣接するロウに記憶されたデータを狂わせ（アップセット（ｕｐｓｅｔ）し）得る。通常、かかるアップセットは、メモリセルが定期的にリフレッシュされるので、無害である。しかしながら、いくつかのメモリアクセスパターンは、不定期に、あるロウを次のリフレッシュサイクルよりも前に何回もアクティベート及びプリチャージさせるので、隣接するロウ内のメモリセルが破損されて逆の論理状態となる。破損後には、元のデータが失われ、以降のリフレッシュサイクルにおいて復元不可能となる。
【図面の簡単な説明】
【０００４】
【図１】データのアップセットに影響を受けやすいダイナミックランダムアクセスメモリ（ＤＲＡＭ）を示すブロック図である。
【図２】いくつかの実施形態による、図１のメモリを組込むことの可能なデュアルインラインメモリモジュール（ＤＩＭＭ）の平面図である。
【図３】いくつかの実施形態による、メモリコントローラを有するマイクロプロセッサを示すブロック図である。
【図４】いくつかの実施形態による、図３のメモリコントローラを示すブロック図である。
【図５】いくつかの実施形態による、図４のメモリコントローラ等のメモリコントローラの一部を示すブロック図である。
【図６】図４のメモリコントローラの動作を理解する上で役立つタイミング図である。
【図７】いくつかの実施形態による、データ処理システムを示すブロック図である。
【図８】図４のメモリコントローラに使用される方法のフローチャートを示す図である。
【発明を実施するための形態】
【０００５】
以降の説明では、異なる図面において同一の符号を使用することによって、同様または同一のアイテムを示す。特に断りのない限り、「接続された（ｃｏｕｐｌｅｄ）」という単語及びこれに関連する動詞には、当該技術分野において周知の手段によって直接接続及び間接的な電気接続の両方の意味が含まれている。そして、特に断りのない限り、直接接続に関する任意の説明には、好適な形態の間接的な電気接続を用いた代替的な実施形態も含まれる。
【０００６】
以降に開示されるデータプロセッサは、ロウサイクルページ時間（ｔＲＣＰＡＧＥ）を考慮してアクセスをスケジュールするメモリコントローラにおけるデータ破損問題に対処する。ロウサイクルページ時間は、所定の時間窓における、メモリ内のロウに対するアクティベートコマンド（ａｃｔｉｖａｔｅ  ｃｏｍｍａｎｄｓ）の許容数を示している。データプロセッサは、メモリコントローラに提供するメモリアクセスを生成するメモリアクセスエージェントを備える。メモリコントローラは、メモリアクセスエージェントに接続されており、ロウサイクルページ時間を含むアクセススケジュールを、メモリの特性に基づく順序で生成する。
【０００７】
一形態において、メモリの第１のページに対する第１のメモリアクセスがディスパッチされる。メモリの第１のページに対する第２のメモリアクセスが受信されたときに、第２のメモリアクセスのディスパッチは、第１のメモリアクセスのディスパッチからの経過時間がロウサイクルページ時間より長くなるまで禁止される。
【０００８】
図１は、データのアップセットに影響を受けやすいメモリ１００を示すブロック図である。メモリ１００は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）であって、概して、ロウパス（ｒｏｗ  ｐａｔｈ）１１０と、８つのメモリバンク１２０と、カラム回路１４０と、データパス１５０と、「ＤＱｉ」と表示された代表的な１つのデータパッドセット１６０と、を備えている。
【０００９】
ロウパス１１０は、例えば、「バンク０」と表示された第１のバンクに対するロウアドレスラッチデコーダ（ｒｏｗ  ａｄｄｒｅｓｓ  ｌａｔｃｈ  ａｎｄ  ｄｅｃｏｄｅｒ）１１２や、「バンク７」と表示された最後のバンクに対するロウアドレスラッチデコーダ１１４等のように、各バンクに対するロウアドレスラッチデコーダを備える。ロウパス１１０は、「Ａ［１３：０］」と表示されたロウアドレスと「ＢＡ［２：０］」と表示されたバンクアドレスとを受信するためのインプットセットと、アウトプットセットと、を有している。８つのメモリバンク１２０の各々は、例えばバンク０のメモリアレイ１２２及びページバッファ１２４等のように、関連するメモリアレイ及びページバッファを備えている。８つのメモリバンク１２０の各々は、対応するロウアドレスラッチデコーダのアウトプットセットに接続されたインプットセットを有している。
【００１０】
カラム回路１４０は、カラムスイッチ１４２のセットと、カラムデコーダ１４４と、を備えている。カラムスイッチ１４２のセットは、各メモリバンク１２０のページバッファに接続されており、カラム選択信号を受信するためのインプットセットを有している。カラムデコーダ１４４は、８つのバンクのうちＢＡ［２：０］によって選択された１つのカラムを選択するためにインプットＡ［１３：０］上で実行されるカラムアドレスを受信するインプットセットと、カラムスイッチ１４２のインプットに接続されたアウトプットセットと、を有している。
【００１１】
データパス１５０は、読出しデータパス１５２と、書込みデータパス１５４と、を備えている。読出しデータパス１５２は、カラムスイッチ１４２に接続されたインプットセットと、データパッド１６０に接続されたアウトプットセットと、を有している。書込みデータパス１５４は、データパッド１６０に接続されたインプットセットと、カラムスイッチ１４２に接続されたアウトプットセットと、を有している。
【００１２】
メモリ１００は、動作中、一実施形態においてメモリバンクでの並行動作を許可する。メモリ１００は、例えばＤＤＲ３またはＤＤＲ４等のように電子素子技術連合評議会（ＪＥＤＥＣ）が公表したダブルデータレート（ＤＤＲ）規格のうち１つの規格に対する互換性を有する。例えばデータプロセッサ等のメモリアクセスエージェントは、データにアクセスするために、アクティベート（ＡＣＴ）コマンドを発行してメモリバンク内のロウをアクティベートする。選択されたロウ（例えば、バンク０内のロウ１２５等）のメモリセルのデータは、ＡＣＴコマンドに応じて、対応するページバッファ（例えば、ページバッファ１２４等）に記憶される。ＤＲＡＭでは、データ読出しがメモリセルのコンテンツに対して破壊的である一方で、データのコピーがページバッファ１２４に記憶される。メモリアクセスエージェントは、ロウ１２５内のデータへのアクセスを終了した後に、プリチャージ（ＰＲＥ）コマンドを発行してロウを閉じる。ページバッファ１２４内のデータは、ＰＲＥコマンドによって、ロウ１２５のダイナミックメモリセルに復元される。
【００１３】
メモリ１００がＤＲＡＭであることから、メモリセルの電荷はゆっくりと漏電する。このため、データは定期的にリフレッシュされる必要がある。リフレッシュ間隔（ｔＲＥＦＩ）は、脆弱なメモリセルが漏電によって保有コンテンツを失うであろう時間に基づくものである。例えば、ＤＤＲ４  ＤＲＡＭにおいて、ｔＲＥＦＩは、通常の環境では７．８マイクロ秒（μｓ）に等しい。
【００１４】
先進的なディープサブミクロン製造プロセスを用いて構成されたＤＲＡＭにおいて、所定のロウの度重なるアクティベーションは、物理的に隣接するロウのメモリセルに記憶されたデータをアップセットし得る。例えば、ロウ１２５がアクティベート及びプリチャージされる度に、隣接するロウ１２６，１２７のメモリセルの電荷が変更される。ロウ１２６，１２７のメモリセルがリフレッシュされる前にロウ１２５があまりにも頻繁にアクティベート及びプリチャージされると、ロウ１２６，１２７のデータが破損する場合がある。
【００１５】
メモリを再設計することなくデータ破損問題を緩和するために、発明者は、１つのリフレッシュ間隔内に所定のロウのメモリセルがアクティベートされる回数を考慮して、アクセススケジュールを生成するメモリコントローラを有するデータプロセッサを開発した。例えば、メモリコントローラは、アクセス率が高すぎる場合に、特定の時間が経過するまでアクセスを遅延させる。この時間は、リフレッシュ時間窓においてメモリが安全にアクセスできる回数に関連する。
【００１６】
図２は、いくつかの実施形態による、図１のメモリを組込むことが可能なデュアルインラインメモリモジュール（ＤＩＭＭ）２００の平面図である。ＤＩＭＭ２００は、概して、メモリチップ２１０のセットと、直列プレゼンス検出（ＳＰＤ）読出し専用メモリ（ＲＯＭ）２２０と、を多層プリント配線基板（ＰＣＢ）上に備えている。メモリチップ２１０は、それぞれ図１のメモリ１００に対応し得る８つのｘ８メモリチップを備えている。いくつかの実施形態において、メモリチップ２１０は、ＤＤＲ３  ＳＤＲＡＭである。いくつかの実施形態において、メモリチップ２１０は、ＤＤＲ４  ＳＤＲＡＭである。
【００１７】
いくつかの実施形態において、ＤＩＭＭ２００は、メモリチップ２１０のように配置された第２のメモリデバイスセットを基板の裏側に有してもよいことに留意されたい。いくつかの実施形態において、各メモリチップは、チップ毎に複数のランクを形成するために、チップオンチップ又は積層ダイ技術が用いられた複数のメモリダイを有する半導体パッケージを含み得る。さらに、ＤＩＭＭ２００は、図１のメモリ１００のようなメモリチップを使用可能なメモリシステムの代表的なものである。別の実施形態において、メモリ１００は、シングルインラインメモリモジュール（ＳＩＭＭ）に用いられてもよいし、データプロセッサチップとして同一のＰＣＢに搭載されてもよい。
【００１８】
ＳＰＤ  ＲＯＭ２２０は、ＤＩＭＭ２００の様々な特性を示す値を記憶する。ＪＥＤＥＣは、これらのビットの位置と意味を、例えばＤＤＲ３  ＤＲＡＭに関する規格ＪＥＳＤ２１−Ｃの添付Ｋに定めている。最近では、データアップセット問題に対するメモリチップ２１０の感受性（ｓｕｓｃｅｐｔｉｂｉｌｉｔｙ）を製造者が明示することを可能にする、ＳＰＤ規格に対する追加が提案されている。従って、図２に示すように、ＳＰＤ  ＲＯＭ２２０は、メモリのデータアップセット特性値に関連するフィールドを有するバイト２２２を備えている。バイト２２２は、以前のバージョンのＳＰＤ  ＲＯＭの仕様によって確保されていたＳＰＤ  ＲＯＭ２２０内のアドレス（例えば、バイト＄４１等）に配置されている。
【００１９】
バイト２２２は、予備のビット［７：６］と、最大アクティベートウィンドウ（ｔＭＡＷ）を定義するビット［５：４］と、「無制限ＭＡＣ」と表されたビット［３］と、最大アクティビティカウント（ＭＡＣ）を定義する［２：０］と、を含む。これらのビットの意味は、以下の通りである。ビット［３］が「１」に設定される場合には、メモリチップ２１０内のロウは、データを破損することなく無制限の回数でアクティベート可能であり、ビット［２：０］には０００が設定される。この設定は、例えば、ＡＣＴ率に関わらずエラーが全く予期されないほど、データアップセットの十分小さい設計に対応している。ビット［３］が「０」に設定される場合には、ビット［２：０］は、ビット［５：４］においてｔＭＡＷにより定義される期間にわたるＭＡＣを定義する。例えば、図２に示すように、ビット［５：４］が００、ビット［３］が０、ビット［２：０］が１００に設定される場合には、メモリチップ２１０内のロウは、データアップセット問題による破損なしに、６４ミリ秒（ｍｓ）時間窓内で４００,０００回までアクティベート可能である。ＳＰＤ  ＲＯＭ２２０のバイト２２２にこれらの特性値を記憶することは、ＡＣＴ率を特定する技術の一つに過ぎないことが理解されるべきである。
【００２０】
後述するように、メモリコントローラは、ＭＡＣ及びｔＭＡＷに基づくロウページサイクル時間（ｔＲＣＰＡＧＥ）として知られる値に応じて、最後のアクティベートからロウページサイクル時間が経過するまで、同一のロウに対するアクティベートを選択的に禁止する。メモリコントローラは、アクティベートが頻繁に行らないことを確実にすることによって、データアップセット問題によるデータ破損を回避できる。
【００２１】
図３は、いくつかの実施形態による、メモリコントローラ３４２を有するデータプロセッサ３００を示すブロック図である。データプロセッサ３００は、概して、ＣＰＵ部３１０と、ＧＰＵコア３２０と、相互接続回路３３０と、メモリアクセスコントローラ３４０と、入出力コントローラ３５０と、を備えている。
【００２２】
ＣＰＵ部３１０は、それぞれ「コア０」、「コア１」、「コア２」、「コア３」と表されたＣＰＵコア３１１〜３１４と、共有３次（Ｌ３）キャッシュ３１６と、を備えている。各ＣＰＵコアは、命令セットからの命令を実行可能であり、一意のプログラムスレッドを実行し得る。各ＣＰＵコアは、自ら１次（Ｌ１）及び２次（Ｌ２）キャッシュを備えるが、共有Ｌ３キャッシュ３１６は、全てのＣＰＵコアに共通であって、共有される。共有Ｌ３キャッシュ３１６は、メモリアクセスエージェントとして動作し、キャッシュラインフィルに関するメモリ読出しバーストと、キャッシュラインライトバックに関するメモリ書込みバーストと、を含むメモリアクセス要求を提供する。
【００２３】
ＧＰＵコア３２０は、オンチップグラフィックプロセッサであって、メモリアクセスエージェントとして動作する。
【００２４】
相互接続回路３３０は、概して、システム要求インターフェイス（ＳＲＩ）／ホストブリッジ３３２と、クロスバー３３４と、を一般に備える。ＳＲＩ／ホストブリッジ３３２は、共有Ｌ３キャッシュ３１６及びＧＰＵコア３２０からのアクセス要求のキューを生成し、未処理のトランザクション及びこれらのトランザクションの完了を管理する。クロスバー３３４は、５つの双方向ポート間のクロスポイントスイッチであり、そのうち１つのポートは、ＳＲＩ／ホストブリッジ３３２に接続されている。
【００２５】
メモリアクセスコントローラ３４０は、オフチップＤＲＡＭに接続するために、クロスバー３３４に接続された双方向ポートを有している。メモリアクセスコントローラ３４０は、概して、メモリコントローラ３４２と、「ＰＨＹ」と表された物理インターフェース回路３４４と、を備えている。メモリコントローラ３４２は、ＣＰＵコア３１１〜３１４及びＧＰＵコア３２０からの要求に対して特定の読出し及び書込しトランザクションを生成し、関連するアドレスに関してトランザクションをまとめる。メモリコントローラ３４２は、ＤＲＡＭの初期化、リフレッシュ、ページの開閉、メモリバスの効率的な使用のためのトランザクションのグループ化等のオーバーヘッドに対処する。物理インターフェース回路３４４は、物理的シグナリングを管理することによって、例えばＤＩＭＭ等の外部ＤＲＡＭに対してインターフェースを提供する。メモリコントローラ３４２及び物理インターフェース回路３４４は共に、少なくとも１つの特定のメモリタイプをサポートしており、例えばＤＤＲ３及びＤＤＲ４の両方に対応してもよい。
【００２６】
入出力コントローラ３５０は、１つ以上の高速インターフェースコントローラを備えている。例えば、入出力コントローラは、ハイパートランスポートリンクプロトコルに応じた３つのインターフェースコントローラを備えてもよい。
【００２７】
データプロセッサ３００は、ＣＰＵコア及びＧＰＵコアの両方を備えていることから、加速処理ユニット（ＡＰＵ）として知られている。この多様なデータアクセスエージェントは、データアップセット問題を引き起こす可能性のあるいくつかのアクセスパターンを生成し得る。例えば、ＣＰＵコア３１１〜３１４のうち１つのＣＰＵコアは、同一のメモリロウの頻繁なアクティベーションを引き起こすパターンにおいて、メモリに記憶されたデータをストライドするプログラムスレッドを実行し得る。別の例では、ＣＰＵコア３１１〜３１４のうち１つのＣＰＵコアまたはＧＰＵコア３２０は、同一のロウのデータ及びキャッシュ不可領域のデータにアクセスを繰り返し得る。さらに別の例では、ＣＰＵコア３１１〜３１４のうち複数のＣＰＵコアまたはＧＰＵコア３２０は、同一のデータ要素にアクセスして修正を行い得る。この場合、共有Ｌ３キャッシュ３１６は、１つのコアによって修正されたデータに対して別のコアがアクセスする度に、メインメモリを更新するポリシーに従い得る。他のシナリオも可能である。
【００２８】
図４は、いくつかの実施形態による、図３のメモリコントローラ３４２を示すブロック図である。メモリコントローラ３４２は、キュー４１０と、アービタ４２０と、マルチプレクサ４３０と、を備える。キュー４１０は、クロスバー３３４から受信したメモリアクセス要求を記憶する。メモリアクセス要求は、メモリの任意のバンクに対する読出し又は書込みサイクルとなり得る。また、メモリアクセス要求は、データプロセッサ３００の何れか１つのメモリアクセスエージェントによって生成される。図４の例において、キュー４１０は、全てのバンク及びランクに対する合計１６のエントリを有しており、各エントリは、アクセスアドレスと、書込みサイクルの場合にはデータと、その相対年代（ｒｅｌａｔｉｖｅ  ａｇｅ）を示すタグと、を記憶する。アービタ４２０は、エントリの属性を読み出すためにキュー４１０の各エントリに双方向に接続されており、ディスパッチされたアクセスを受信する追加インプットと、ＡＣＴ及びＰＲＥコマンド等のプロトコルコマンドを提供するアウトプットと、物理インターフェース回路３４４に対して送信する１６エントリのうち１つのエントリを選択する制御アウトプットと、を有している。マルチプレクサ４３０は、キュー４１０の各エントリに接続された１６のインプットと、アービタ４２０のアウトプットに接続された追加インプットと、アービタ４２０のアウトプットに接続された制御インプットと、物理インターフェース回路３４４に対してディスパッチされたアクセスを提供するアウトプットと、を有している。
【００２９】
動作中、キュー４１０は、クロスバー３３４から受信したアクセスを記憶し、その相対年代を示すようにタグを割当てる。アービタ４２０は、キュー４１０の何れの保留中アクセスを次のスケジュール対象として物理インターフェース回路３４４にディスパッチするかを、タイミング適格性、経過時間、公平性等のポリシーのセットに基づいて決定する。このため、アービタ４２０は、メモリシステムの各バンク及びランク内で開かれているページを示すページテーブルを備え得る。一般的に、アービタ４２０は、同一のロウに対する複数のアクセスを一緒にスケジュールする一方で、同一のバンク内の別のロウに対するより古いアクセスを遅らせることによって、メモリシステムバスの効率性を向上させることが可能である。従って、アービタ４２０は、アクティベート中のロウとは異なるロウに対するアクセスを選択的に延期することにより、効率性を向上させる。また、アービタ４２０は、アクセスの待ち時間を制限するために、エントリの年代タグを使用する。従って、アービタ４２０は、メモリ内のあるページへのアクセスが特定の時間保留されている場合に、メモリ内の別の開いたページに対する一連のアクセスを中断する。また、アービタ４２０は、オーバーヘッドに対処するために、所定のメモリバンクに対するＡＣＴ及びＰＲＥコマンドの間に別のメモリバンクに対するアクセスをスケジュールする。
【００３０】
また、アービタ４２０は、同一のロウに対して繰り返されるＡＣＴ及びＰＲＥサイクルによって生じるデータアップセット問題によるデータ破損を回避するために、タイミング適格性を判定する。アービタ４２０は、データ破損を回避するために、所定の時間窓（ｔＭＡＷ）内における、メモリ内のロウに対するアクティベートコマンドの許容数（すなわち、ＭＡＣ）に反比例するロウサイクルページ時間（ｔＲＣＰＡＧＥ）という新たなタイミングパラメータを定義する。
【００３１】
いくつかの実施形態において、ｔＲＣＰＡＧＥは、ＭＡＣ数によって分割された時間窓ｔＭＡＷと近似可能であり、すなわちｔＲＣＰＡＧＥ＝ｔＭＡＷ／ＭＡＣと表される。例えば、リフレッシュ間隔が６４ｍｓであって、ＭＡＣ数が４００Ｋである場合には、ｔＲＣＰＡＧＥ＝６４ｍｓ／４００,０００＝１６０ナノ秒（ｎｓ）となる。アービタ４２０は、１６０ナノ秒の時間窓において同一のロウに対してＡＣＴコマンドとなる命令をディスパッチしないことによって、データアップセット問題によるデータ破損を回避し得る。
【００３２】
別の実施形態において、ｔＲＣＰＡＧＥは、リフレッシュ時間を考慮した２次計算に従って決定され得る。各リフレッシュ（ＲＥＦ）コマンドがｔＲＦＣと等しい時間を消費する場合には、ｔＭＡＷは、ｔＲＦＣに対してｔＭＡＷ内のリフレッシュサイクルの回数を掛けた時間分削減され得る。すなわち、ｔＲＣＰＡＧＥ＝（ｔＭＡＷ−ｔＲＦＣ*（ｔＭＡＷ／ｔＲＥＦＩ））／ＭＡＣと表される。ＤＤＲ４  ＤＲＡＭの異なるＤＲＡＭ密度に関するｔＲＣＰＡＧＥの例示的計算を、以下の表１に示す。
【表１】
2016536666.tif 000003
【００３３】
例えば、リフレッシュ間隔（ｔＲＥＦＩ）が７．８μｓ（７．８１２５μｓ）である場合、６４ｍｓの基準間隔において、各ロウは、８１９２回リフレッシュされ得る。リフレッシュ時間が１６０ｎｓの場合には、６４ｍｓの間隔において、１,３１０,７２０ｎｓがリフレッシュに費やされる。従って、有効基準間隔は、６２,６８９,２８０ｎｓである。当該間隔において可能なＡＣＴの理論値は、６２,６８９,２８０／ｔＲＣ＝１,３１９,７７４である。一方、ｔＲＣＰＡＧＥは、６２,６８９,２８０／１００,０００＝６２６．８９ｎｓである。従って、ＤＲＡＭ製造者が６４ｍｓの基準窓において１００Ｋアクセスのみを許可する場合には、メモリアクセスコントローラ３４０は、同一のロウに対するＡＣＴが６２６．８９ｎｓごとに２度以上起こらないことを確実にしなければならない。
【００３４】
図５は、いくつかの実施形態による、図４のメモリコントローラ４００等のメモリコントローラの一部５００を示すブロック図である。一部５００は、マルチプレクサ４３０と、代表適格性回路（ｒｅｐｒｅｓｅｎｔａｔｉｖｅ  ｅｌｉｇｉｂｉｌｉｔｙ  ｃｉｒｃｕｉｔ）５１０及び代表エントリ準備回路（ｒｅｐｒｅｓｅｎｔａｔｉｖｅ  ｅｎｔｒｙ  ｒｅａｄｙ  ｃｉｒｃｕｉｔ）５２０を備えるアービタ４２０の一部と、を示している。
【００３５】
適格性回路５１０は、ｊ番目の適格性回路であり、適格性回路セットの代表である。アービタ４２０は、経過時間がｔＲＣＰＡＧＥよりも短い可能ＡＣＴの数に対して十分なアドレスレジスタ及びカウンタのみを必要とする。このため、アービタ４２０は、ｔＲＣＰＡＧＥ／ｔＲＣ分の回路を備える（ｔＲＣＰＡＧＥ／ｔＲＣは整数に切り上げられる）。適格性回路５１０は、カウンタ５１２と、任意のハッシュ回路５１４と、アドレスレジスタ５１６と、を備える。カウンタ５１２は、「ＡＣＴ」と表された信号を受信するロードインプットと、データインプットと、「ＲＥＡＤＹ（準備完了）」と表されたアウトプットと、を有する。ハッシュ回路５１４は、マルチプレクサ４３０のアウトプットから出力されたｍビットのアドレスを受信するｍビットインプットと、アウトプットと、を有している。アクセスの一意的なバンク及びロウを特定するには、ｍビットで十分である。アドレスレジスタ５１６は、ハッシュ回路５１４のアウトプットに接続されたｎビットインプットと、ｎビットアウトプットと、を有しており、アービタ４２０が最近発行した特定のＡＣＴコマンドに関するアドレス値を記憶する。
【００３６】
エントリ準備回路５２０は、ｉ番目のエントリ準備回路であり、キュー４１０の各エントリに対応するエントリ準備回路セットの代表である。エントリ準備回路５２０は、コンパレータ５２２と、ＯＲゲート５２４と、ＡＮＤゲート５２６と、を備える。コンパレータ５２２は、アドレスレジスタ５１６のアウトプットに接続された第１のインプットと、エントリのアドレスを受信するためにキュー４１０の各エントリに接続された第２のインプットと、「ＭＡＴＣＨ［ｉ，ｊ］」と表された信号を提供するアウトプットと、を有している。ＯＲゲート５２４は、カウンタ５１２のアウトプットに接続された第１のインプットと、コンパレータ５２２のアウトプットに接続された第２のインプットと、アウトプットと、を有している。ＡＮＤゲート５２６は、ＯＲゲート５２６のアウトプットに接続された第１のインプットと、別の対応するＯＲゲートのアウトプットに接続された追加インプットと、「「ＥＮＴＲＹ［ｉ］ＲＥＡＤＹ」と表された信号を提供するためのアウトプットと、を有している。
【００３７】
レジスタ５３０は、カウンタ５１２のデータインプットに接続されたアウトプットを有する。レジスタ５３０は、後述する方法でｔＲＣＰＡＧＥ値を記憶する。
【００３８】
動作中、ＡＣＴがキュー４１０からマルチプレクサ４３０を介してディスパッチされる度に、マルチプレクサ４３０は、例えば輪番するｔＲＣＰＡＧＥ／ｔＲＣ分の適格性回路セットのカウンタ５１２等のカウンタに対してｔＲＣＰＡＧＥの値をロードするＡＣＴ信号をアクティベートする。カウンタ５１２は、ゼロまでカウントダウンし、ゼロになった時点でＲＥＡＤＹ信号をアクティベートする。コンパレータ５２２は、キュー４１０のｉ番目のエントリにおけるアドレスがｊ番目の適格性回路に対応付けられたアドレスと一致する場合に、（￣ＭＡＴＣＨ［ｉ，ｊ］）信号を出力する。ＯＲゲート５２４は、ｊ番目のＡＣＴが現時点からｔＲＣＰＡＧＥより前に生じた場合、又は、ＥＮＴＲＹ［ｉ］のアドレスがｊ番目の適格性回路のアドレスと一致しない場合に、ロジックハイ値を出力する。エントリ準備回路５２０内の全てのＯＲゲートのアウトプットがロジックハイの場合に、ＡＮＤゲート５２６は、ＥＮＴＲＹ［ｉ］に対応するロウがアクティベートされる準備が整ったことを示すために、ロジックハイの状態でＥＮＴＲＹ［ｉ］ＲＥＡＤＹ信号をアクティベートする。
【００３９】
アービタ４２０の残りのロジックは、ＥＮＴＲＹ［ｉ］ＲＥＡＤＹ信号を受信し、ＥＮＴＲＹ［ｉ］ＲＥＡＤＹ信号がアクティベートされているか否か、及び、他のスケジュール制約が満たされた場合の両方に基づいて、アクセスの実行を選択的に許可する。
【００４０】
ハッシュ回路５１４は任意に設けられてよい。ハッシュ回路５１４が設けられている場合には、ハッシュ回路５１４は、インプットアドレスのｍビットを、適格性回路のより小さな数のｎビットに関連付ける。例えば、ｔＲＣＰＡＧＥがｔＲＣと比べて大きくなった場合、設計者は、ｔＲＣＰＡＧＥ／ｔＲＣセット分のカウンタ及びコンパレータを実装すると費用がかかりすぎると感じるであろう。ハッシュ機能は、実装されたハードウェアに基づいて選択され及びサイズ変更可能であってよい。よって、回路サイズと不定期な誤検知の間のトレードオフが可能になる。誤検知は、ロウアドレスＸとロウアドレスＺの両方が同一のｎビットアドレスにハッシュされる場合に起こり得る。例えば、ロウＸに関してｔＲＣＰＡＧＥがまだ終了しておらず、且つ、ロウＸとロウＺのハッシュ機能が同等である場合に、ロウＺに対するアクセスは、ロウアドレスが実際違っているにも関わらず誤って待つ必要があり得る。誤検知は、スケジュール上の不利益を生じる。
【００４１】
図６は、図４のメモリコントローラ４００の動作を理解する上で役立つタイミング図６００である。図６において、横軸は時間をｎｓで表し、縦軸は様々な信号の振幅をボルトで表す。図６は、ＣＫ／（￣ＣＫ）信号対６１０と、コマンド（ＣＭＤ）信号セット６２０と、を含む２つの注目信号グループを示している。ＤＤＲ  ＤＲＡＭにおいて、ＣＭＤ信号は、（￣ＲＡＳ）、（￣ＣＡＳ）、（￣ＣＥ）、（￣ＷＥ）を含む様々な制御信号により構成されており、ＤＤＲ規格に従う特定のコマンドに対応付けられている。また、図６には、「ｔ０」、「ｔ１」、「ｔ２」、「ｔ３」、「ｔ４」、「ｔ５」、「ｔ６」と表された時点を含むいくつかの注目時点が示されている。
【００４２】
ＤＤＲ  ＤＲＡＭにおいて、コマンドは、ＣＫの立上がりエッジと（￣ＣＫ）の立下りエッジに登録される。メモリ１００は、時点ｔ０において、「ＡＣＴＸ」と表されたロウＸに対するアクティベートコマンドを登録する。ｔＲＣは、ＤＤＲ規格に従い、アクティベートコマンド間の最短時間を特定する。図６の例において、別のアクティベートコマンドが発生可能となる最も早い時点は、ｔ２である。メモリ１００は、時点ｔ１において、ロウＸに対するＰＲＥコマンドを受信する。ロウＸは、ＤＤＲ規格に従い、ｔ２からｔＲＣが経過した後に再びアクティベート可能となり得る。
【００４３】
しかしながら、アービタ４２０は、ｔＲＣＰＡＧＥパラメータに基づいて適格性を強制する。従って、アービタ４２０は、ｔ０からｔＲＣＰＡＧＥが経過するまで、ロウＸがアクティベートされないようにする。この場合、ロウＸは、ｔ４まで再びアクティベートされないので、ロウＸのアクティベートに対して、ｔ３からｔ４までの時間に等しい追加の遅延時間が挿入される。同様に、アービタ４２０は、ｔ２からｔＲＣＰＡＧＥが経過するまで、ロウＹがアクティベートされないようにする。この場合、ロウＹは、ｔ６まで再びアクティベートされないので、時点ｔ５がｔ４からｔＲＣが経過した時点を表す場合には、アービタ４２０は、ロウＹのアクティベートに対して、ｔ５からｔ６までの時間に等しい追加の遅延時間を挿入する。
【００４４】
特定のロウが新たなＡＣＴコマンドを受けられない間にメモリコントローラ４００が有用な追加作業を実行できるので、ｔＲＣＰＡＧＥに基づく新たなＡＣＴコマンドの発行の遅延は、大抵のメモリアクセスパターンに関するパフォーマンスを著しく低下させない。一方、これにより、ｔＭＡＷ内のＭＡＣを超え得る頻繁なロウアクティベートの持続パターンを含む不定期なメモリアクセスパターンにおけるロウアップセット問題に起因するデータ破損を、低減又は除去し得る。当シナリオにおいて、データ破損を防ぐためには、わずかに低下したパフォーマンスを容認し得る。
【００４５】
図７は、いくつかの実施形態による、データ処理システム７００を示すブロック図である。データ処理システム７００は、加速処理ユニット（ＡＰＵ）７１０で形成されたデータプロセッサと、メモリシステム７２０と、「サウスブリッジ」として知られる入出力（Ｉ／Ｏ）コントローラ７３０と、基本入出力システム（ＢＩＯＳ）読出し専用メモリ（ＲＯＭ）７４０と、を備えている。データプロセッサ７１０は、メモリアクセス動作を実行するためにメモリシステム７２０に接続されたＰＨＹ７１２を有している。この例において、メモリシステム７２０は、ＤＩＭＭ（例えば、ロウアップセット問題に関連するデータを記憶する図２のＤＩＭＭ２００等）である。また、データプロセッサ７１０は、高速Ｉ／Ｏ回路７１４を介してＩ／Ｏコントローラ７３０に接続されており、Ｉ／Ｏコントローラ７３０は、メモリシステム７２０及びＢＩＯＳ  ＲＯＭ７４０の両方に接続されている。
【００４６】
初期化において、データプロセッサ７１０は、ＢＩＯＳ  ＲＯＭ７４０に記憶された命令をＩ／Ｏコントローラ７３０を介して読出すことにより、データ処理システム７００を初期化する。ＢＩＯＳ  ＲＯＭ７４０は、メモリシステム初期化部７４２を備える。メモリシステム初期化部７４２は、メモリシステム７２０のＳＰＤ  ＲＯＭに記憶されたロウアップセットパラメータをデータプロセッサ７１０に読出させ、ｔＲＣＰＡＧＥを計算させ、そして、ｔＲＣＰＡＧＥをレジスタ５３０に記憶させる。
【００４７】
図８は、図４のメモリコントローラ４００に使用される方法８００のフローチャートを示す図である。ステップ８１０において、例えばＢＩＯＳの制御の下でＤＩＭＭのＳＰＤ  ＲＯＭを読出し、上記の表１に関して説明したようにｔＲＣＰＡＧＥを計算することにより、ｔＲＣＰＡＧＥが決定される。ステップ８２０において、ロウ１２５は、時点ｔ０においてアクティベートされる。アクティベートは、アービタ４２０によってキュー４１０から選択された読出し又は書込みアクセスの後に、ロウ１２５を開くために行われる。ステップ８３０において、例えば、同一のバンク内の別のページに対する介入アクセス、又は、同一のバンクに対する介入リフレッシュ動作のために、ロウ１２５がプリチャージされる。ステップ８４０において、ロウ１２５に対する第２のメモリアクセスを受信する。この第２のメモリアクセスは、ステップ８３０におけるロウ１２５に対する介入ＰＲＥコマンドに起因して、新たなＡＣＴコマンドを必要とする。ループ８５０は、ロウ１２５がアクティベートするのに適しているか否かを判定する。デシジョンボックス８５２において、経過時間（すなわち、時点ｔ０から現時点までの継続時間）がｔＲＣＰＡＧＥと比較される。例えば、上記の図５に関して説明したように、ステップ８２０においてｔＲＣＰＡＧＥの値でカウンタを開始し、ステップ８４０において第２のメモリアクセスを受信する時点までに当該カウンタがゼロまでカウントダウンしたか否かを検出することによって、比較が行われ得る。ｔＲＣＰＡＧＥの時間が経過していない場合には、ステップ８５４において、ロウ１２５のアクティベートを禁止する。経過している場合には、ステップ８６０において、メモリシステム内の他の条件が満たされているか否かを判別する。例えば、ある公平性基準を前提にすると、開かれているページに対するアクセスは、ＡＣＴコマンドを要する新たなページに対するアクセスと比べて一般的に優先される。最終的に他の基準が１度満たされると、ステップ８７０において、ロウ１２５が再びアクティベートされ、ステップ８８０において、ロウ１２５に対する第２のメモリアクセスがディスパッチされる。
【００４８】
データプロセッサ３００は、アドレスレジスタ、カウンタ、比較ロジック等のハードウェア回路を使用して適格性を判別するメモリコントローラ３４２を備えているが、これらの機能は、ハードウェアとソフトウェアの様々な組合せにより実行され得る。ソフトウェアコンポーネントのいくつかは、少なくとも１つのプロセッサにより実行されるために、コンピュータ可読記憶媒体に記憶され得る。さらに、図８に示された一部又は全ての方法は、コンピュータ可読記憶媒体に記憶された命令によって管理され、且つ、少なくとも１つのプロセッサによって実行される。図８に示された各動作は、非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）コンピュータメモリ又はコンピュータ可読記憶媒体に記憶された命令に対応し得る。様々な実施形態において、非一時的コンピュータ可読記憶媒体には、磁気若しくは光ディスク記憶装置、例えばフラッシュメモリ等の固体記憶装置、又は、他の不揮発性メモリ装置が含まれる。非一時的コンピュータ可読記憶媒体に記憶されたコンピュータ可読命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、１以上のプロセッサにより解釈及び／若しくは実行可能な他の命令フォーマットであり得る。
【００４９】
さらに、図３のデータプロセッサ３００又はその任意の一部は、データベースの形態のコンピュータアクセス可能データ構造、又は、プログラムにより読出し可能な他のデータ構造であって、集積回路を製造するのに直接若しくは間接的に使用可能な他のデータ構造によって、説明又は表され得る。例えば、このデータ構造は、例えばＶｅｒｉｌｏｇ（ベリログ）又はＶＨＤＬ等の高次設計言語（ＨＤＬ）によるハードウェア機能の動作レベル記述又はレジスタ転送レベル（ＲＴＬ）記述であってよい。この記述は、合成ライブラリのゲートのリストを含むネットリストを生成するために、記述を合成しし得る合成ツールにより読出され得る。ネットリストには、集積回路を備えるハードウェアの機能性を表すゲートセットが含まれる。そして、マスクに適用する幾何学形状を記述するデータセットを生成するために、ネットリストが配置され、ルートが決定される。その後、集積回路を製造するために、様々な半導体製造ステップにおいてマスクが使用されうる。あるいは、コンピュータアクセス可能記憶媒体上のデータベースは、所望に応じてネットリスト（合成ライブラリを含む又は含まない）若しくはデータセット、又は、グラフィックデータシステム（ＧＤＳ）ＩＩデータであって良い。
【００５０】
特定の実施形態が説明されたが、これらの実施形態に対する様々な修正が当業者には明らかであろう。例示されたデータプロセッサは、４つのＣＰＵコアと、１つのＧＰＵコアと、を備えるが、別の実施形態においては、データプロセッサは、違う数のメモリアクセスエージェントを備え得る。さらに、例示されたデータプロセッサは、１つのメモリコントローラと、関連するメモリチャネルと、を備えるが、別の実施形態においては、データプロセッサは、複数のメモリコントローラと、これらに対応するメモリチャネルと、を備え得る。上述したように、任意のハッシュ回路は、いくつかの実施形態において回路領域を減らすために含められているが、別の実施形態においては、誤検知を避けて高いパフォーマンスを維持するために、除外されてもよい。別の実施形態において、メモリコントローラは、各メモリバンク用に個別のキューを保持することが可能である。これらの実施形態において、適格性回路及びエントリ準備回路の数は、比例的に増加し得る。さらに、ｔＲＣＰＡＧＥ値は、ＭＡＣ数により分割されたリフレッシュ間隔である１次近似として、又は、リフレッシュ時間を考慮した２次近似として計算され得る。さらにまた、いくつかの実施形態において、メモリコントローラは、ｔＲＣＰＡＧＥメモリアクセススケジュールの生成を比較的長い時間窓に対し実施しながら、通常のｔＲＣ率であるアクティビティの小さいバーストの追跡を引続き許可する。
【００５１】
従って、添付の請求項には、開示された実施形態の範囲に属し、開示された実施形態に対する全ての修正を含む意図がある。
【図１】
2016536666.tif 000004
【図２】
2016536666.tif 000005
【図３】
2016536666.tif 000006
【図４】
2016536666.tif 000007
【図５】
2016536666.tif 000008
【図６】
2016536666.tif 000009
【図７】
2016536666.tif 000010
【図８】
2016536666.tif 000011
【手続補正書】
【提出日】平成28年6月3日(2016.6.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリ（１００）に対する複数のアクセスを生成するメモリアクセスエージェント（３１０，３２０）と、
前記メモリアクセスエージェント（３１０，３２０）に接続され、前記メモリ（１００）の特性に基づく順序で前記複数のアクセスをスケジュールするメモリコントローラ（３４２）と、を備え、
前記メモリ（１００）の特性には、所定の時間窓における前記メモリ（１００）のロウに対するアクティベートコマンドの許容数を示すロウサイクルページ時間が含まれ、
前記ロウサイクルページ時間は、連続するロウアクティベーション間の最短時間よりも長い、
データプロセッサ（３００）。
【請求項２】
前記順序は、前記所定の時間窓における最近のアクセスの特徴に基づいており、前記最近のアクセスの特徴には、前記所定の時間窓における特定のロウに対するアクティベートコマンドの数が含まれる、請求項１に記載のデータプロセッサ。
【請求項３】
前記メモリアクセスエージェント（３１０，３２０）は、前記所定の時間窓から前記所定の時間窓の間の定期的なリフレッシュ時間を差し引いて正味の時間窓を取得し、前記正味の時間窓を前記メモリ（１００）の前記ロウに対するアクティベートコマンドの許容数で割って前記ロウサイクルページ時間を取得することによって、前記ロウサイクルページ時間を決定する、請求項１に記載のデータプロセッサ（３００）。
【請求項４】
受信したメモリアクセスを記憶する複数のエントリを有するキュー（４１０）と、
前記キュー（４１０）に接続されたアービタ（４２０）であって、ディスパッチ用のエントリを前記キュー（４１０）から選択するアービタ（４２０）と、を備え、
前記アービタ（４２０）は、選択の適格性を、所定の時間窓におけるメモリ（１００）のロウに対するアクティベートコマンドの許容数を示すロウサイクルページ時間に基づいて判定し、
前記ロウサイクルページ時間は、連続するロウアクティベーション間の最短時間よりも長い、
メモリコントローラ（４００）。
【請求項５】
前記アービタは、選択されたアクセスを前記複数のエントリのうち何れのエントリが記憶しているかを示す制御信号を提供し、
前記メモリコントローラは、前記キューの前記複数のエントリに接続されたインプットと、前記アービタに接続され前記制御信号を受信する制御インプットと、ディスパッチされたメモリアクセスを提供するアウトプットと、を有するマルチプレクサを備え、
マルチプレクサ（４３０）は、前記キュー（４１０）の前記複数のエントリに接続されたインプットと、前記アービタ（４２０）に接続され前記制御信号を受信する制御インプットと、ディスパッチされたメモリアクセスを提供するアウトプットと、を有する、
請求項４に記載のメモリコントローラ（４００）。
【請求項６】
前記アービタ（４２０）は適格性回路（５１０）を備え、
前記適格性回路（５１０）は、
アクティベートコマンドによりアクティベートされるロウを示すアドレスを記憶するアドレスレジスタ（５１６）と、
前記ロウがアクティベートされてからの経過時間が前記ロウサイクルページ時間に達したときに準備完了信号を提供するカウンタ（５１２）と、を備える、請求項４に記載のメモリコントローラ（４００）。
【請求項７】
前記アービタ（４２０）は、前記適格性回路（５１０）に接続されたエントリ準備回路（５２０）であって、前記キュー（４１０）の対応するエントリが選択に適しているか否かを、前記対応するエントリのアドレスが前記アドレスと一致する場合に前記準備完了信号に基づいて判別するエントリ準備回路（５２０）を備え、前記アービタ（４２０）は、適しているエントリの中のエントリを前記キュー（４１０）から選択する、請求項６に記載のメモリコントローラ（４００）。
【請求項８】
前記適格性回路（５１０）は、
前記アドレスの一部を、ハッシュ関数に従って前記アドレスレジスタ（５１６）に記憶するハッシュ回路（５１４）を備える、請求項６に記載のメモリコントローラ（４００）。
【請求項９】
前記アービタ（４２０）は、前記適格性回路（５１０）を含み、ロウサイクル時間に対する前記ロウサイクルページ時間の比率に対応する数の複数の適格性回路を備える、請求項６に記載のメモリコントローラ（４００）。
【請求項１０】
データプロセッサ（７１０）と、
前記データプロセッサ（７１０）に接続されたメモリシステム（７２０）と、を備え、
前記データプロセッサ（７１０）は、前記メモリシステム（７２０）の特性に基づく順序で複数のメモリアクセスをスケジュールし、
前記メモリシステム（７２０）の特性には、所定の時間窓における前記メモリシステム（７２０）のロウに対するアクティベートコマンドの許容数を示すロウサイクルページ時間が含まれ、
前記ロウサイクルページ時間は、連続するロウアクティベーション間の最短時間よりも長い、
データ処理システム（７００）。
【請求項１１】
前記順序は、前記所定の時間窓における最近のアクセスの特徴に基づいており、前記最近のアクセスの特徴には、前記所定の時間窓における特定のロウに対するアクティベートコマンドの数が含まれる、請求項１０に記載のデータ処理システム。
【請求項１２】
前記メモリシステム（７２０）は、複数のダブルデータレート（ＤＤＲ）ダイナミックランダムアクセスメモリ（ＤＲＡＭ）（２１０）を有するデュアルインラインメモリモジュール（ＤＩＭＭ）（２００）を備え、
前記データプロセッサ（７１０）は、前記ＤＩＭＭ（２００）の直列プレゼンス検出（ＳＰＤ）読出し専用メモリ（ＲＯＭ）（２２０）内のレジスタ（２２２）を読出すことによって、前記ロウサイクルページ時間を決定し、
前記データプロセッサ（７１０）は、不揮発性メモリ（７４０）に記憶された基本入出力システム（ＢＩＯＳ）のメモリシステム初期化部（７４２）の制御の下で、前記レジスタ（２２２）を読出す、請求項１０に記載のデータ処理システム（７００）。
【請求項１３】
前記データプロセッサ（７１０）は、前記所定の時間窓から前記所定の時間窓の間の定期的なリフレッシュ時間を差し引いて正味の時間窓を取得し、前記正味の時間窓を前記ロウに対する前記アクティベートコマンドの許容数で割って前記ロウサイクルページ時間を取得することによって、前記ロウサイクルページ時間を決定する、請求項１０に記載のデータ処理システム（７００）。
【請求項１４】
メモリ（１００）のロウ（１２５）を第１の時点でアクティベートし（８２０）、
前記メモリ（１００）のロウ（１２５）をプリチャージし（８３０）、
前記メモリ（１００）のロウ（１２５）に対する第２のメモリアクセスを受信し（８４０）、
前記の第１の時点からの経過時間がロウサイクルページ時間より長くなるまで前記第２のメモリアクセスのアクティベートを禁止する（８５０）、
ことを含み、
前記ロウサイクルページ時間は、所定の時間窓における前記メモリのロウに対するアクティベートコマンドの許容数を示しており、連続するロウアクティベーション間の最短時間よりも長い、
方法。
【請求項１５】
所定の時間窓における許容されたアクセス数に基づいて、前記ロウサイクルページ時間を決定する（８１０）、
ことを含む請求項１４に記載の方法。
【国際調査報告】
2016536666.tif 000012
2016536666.tif 000013