(57)【要約】【課題】減少された数のローアクティベーションカウンターを利用してメモリローに対するアクティベーションを効率的にトラッキングする方法及びそのためのメモリコントローラを提供する。【解決手段】ローアクティベーションカウンターは、メモリローがアクティベーション区間の間にアクティベーションされたか否かを示し、最大アクティベーションウインドー内でメモリローに対する許容されたアクティベーション数を示す。【選択図】図２
2015133119.tif 000002
【特許請求の範囲】
【請求項１】
第１エントリを含む第１エントリテーブル及び第２エントリを含む第２エントリテーブルを格納するページテーブルを有するメモリを制御するためのメモリコントローラであって、
前記第１エントリは、第１タイム区間の間に活性化されたメモリの第１メモリローを識別する第１識別子と、前記第１タイム区間の間に残りの第１タイムを示すタイムアウトカウンターと、を含み、
前記第２エントリは、少なくとも１つの第２タイム区間の間に活性化されたメモリの第２メモリローを識別する第２識別子と、前記第２メモリローのアクティベーションの数量をカウントするアクティベーションカウンターと、前記少なくとも１つの第２タイム区間の間に残りの第２タイムを示す第２タイムアウトカウンターと、を含むことを特徴とするメモリコントローラ。
【請求項２】
前記第２メモリローに隣接して位置するメモリの隣接メモリロー内に格納されたデータの劣化無しに前記第２メモリローの最大許容アクティベーション数が許容されるタイム区間である最大アクティベーションウインドーの間に、前記第２メモリローのアクティベーションの数量は、前記第２メモリローの最大許容アクティベーション数に寄与することを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記第２メモリローに隣接して位置するメモリの隣接メモリローのリフレッシュ無しに前記第２メモリローの最大許容アクティベーション数が許容されるタイム区間である最大アクティベーションウインドーの間に、前記第２メモリローのアクティベーションの数量は、前記第２メモリローの最大許容アクティベーション数に寄与することを特徴とする請求項１に記載のメモリコントローラ。
【請求項４】
前記少なくとも１つの第２タイム区間は、前記最大アクティベーションウインドー内で前記第２メモリローの最大許容アクティベーション数の各々の間の平均時間であることを特徴とする請求項３に記載のメモリコントローラ。
【請求項５】
前記メモリコントローラは、
前記メモリのメモリローをアクティベーションするためのリクエストを受信し、
前記メモリローが前記第２エントリの第２識別子によって識別された第２メモリローにマッチするか否かを決定し、
前記メモリローが前記第２エントリの第２識別子によって識別された第２メモリローにマッチすることを決定した結果に応答して、前記アクティベーションカウンターが前記最大許容アクティベーション数を示すか否かを決定し、
前記アクティベーションカウンターが前記最大許容アクティベーション数を示すことを決定した結果に応答して、前記メモリのリフレッシュ動作及び前記リクエストのストーリング動作（ｓｔａｌｌｉｎｇ  ｏｐｅｒｒａｔｉｏｎ）の中の１つを実行することを特徴とする請求項４に記載のメモリコントローラ。
【請求項６】
前記メモリコントローラは、前記アクティベーションカウンターが前記最大許容アクティベーション数を示さないことを決定した結果に応答して、前記アクティベーションカウンターを増加させ、前記第２メモリローをアクティベーションすることを特徴とする請求項５に記載のメモリコントローラ。
【請求項７】
前記メモリコントローラは、
前記メモリのメモリローをアクティベーションするためのリクエストを受信し、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチするか否かを決定し、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチすることを決定した結果に応答して、前記第１エントリの割当てを取り消し、前記第２エントリテーブル内で前記メモリローの対応エントリを割当て、
前記メモリローをアクティベーションすることを特徴とする請求項４に記載のメモリコントローラ。
【請求項８】
前記メモリコントローラは、
前記メモリのメモリローをアクティベーションするためのリクエストを受信し、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチするか否かを決定し、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチしないことを決定した結果に応答して、前記第１エントリテーブル内で前記メモリローの対応エントリを割当てることを特徴とする請求項４に記載のメモリコントローラ。
【請求項９】
前記メモリコントローラは、
前記メモリのメモリローをアクティベーションするためのリクエストを受信し、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチするか否かを決定し、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチすることを決定した結果に応答して、前記第２エントリテーブルが前記第１メモリローに対応する追加エントリを割当てるか否かを決定し、
前記第２エントリテーブルが前記第１メモリローに対応する追加エントリを割当てないことを決定した結果に応答して、前記メモリのリフレッシュ動作及び前記リクエストのストーリング動作（ｓｔａｌｌｉｎｇ  ｏｐｅｒｒａｔｉｏｎ）の中の１つを実行することを特徴とする請求項４に記載のメモリコントローラ。
【請求項１０】
前記メモリコントローラは、
前記少なくとも１つの第２タイム区間が前記第２タイムアウトカウンターから経過したか否かを決定し、
前記少なくとも１つの第２タイム区間が前記第２タイムアウトカウンターから経過したことを決定した結果に応答して、前記アクティベーションカウンターを減少させることを特徴とする請求項４に記載のメモリコントローラ。
【請求項１１】
メモリコントローラによりメモリのメモリローに対するアクティベーションをトラッキングする方法であって、
メモリ内にページテーブルを格納する段階と、
前記ページテーブルを利用して前記メモリのメモリローに対するアクティベーションをトラッキングする段階と、を有し、
前記ページテーブルは、第１エントリを含む第１エントリテーブル及び第２エントリを含む第２エントリテーブルを格納し、
前記第１エントリは、第１タイム区間の間に活性化されたメモリの第１メモリローを識別する第１識別子と、前記第１タイム区間の間に残りの第１タイムを示すタイムアウトカウンターと、を含み、
前記第２エントリは、少なくとも１つの第２タイム区間の間に活性化されたメモリの第２メモリローを識別する第２識別子と、前記第２メモリローのアクティベーションの数量をカウントするアクティベーションカウンターと、前記少なくとも１つの第２タイム区間の間に残りの第２タイムを示す第２タイムアウトカウンターと、を含むことを特徴とするトラッキング方法。
【請求項１２】
前記第２メモリローに隣接して位置するメモリの隣接メモリロー内に格納されたデータの劣化無しに前記第２メモリローの最大許容アクティベーション数が許容されるタイム区間である最大アクティベーションウインドーの間に、前記第２メモリローのアクティベーションの数量は、前記第２メモリローの最大許容アクティベーション数に寄与することを特徴とする請求項１１に記載のトラッキング方法。
【請求項１３】
前記第２メモリローに隣接して位置するメモリの隣接メモリローのリフレッシュ無しに前記第２メモリローの最大許容アクティベーション数が許容されるタイム区間である最大アクティベーションウインドーの間に、前記第２メモリローのアクティベーションの数量は、前記第２メモリローの最大許容アクティベーション数に寄与することを特徴とする請求項１１に記載のトラッキング方法。
【請求項１４】
前記少なくとも１つの第２タイム区間は、前記最大アクティベーションウインドー内で前記第２メモリローの最大許容アクティベーション数の各々の間の平均時間であることを特徴とする請求項１３に記載のトラッキング方法。
【請求項１５】
前記メモリのメモリローに対するアクティベーションをトラッキングする段階は、
前記メモリのメモリローをアクティベーションするためのリクエストを受信する段階と、
前記メモリローが前記第２エントリの第２識別子によって識別された第２メモリローにマッチするか否かを決定する段階と、
前記メモリローが前記第２エントリの第２識別子によって識別された第２メモリローにマッチすることを決定した場合、前記アクティベーションカウンターが前記最大許容アクティベーション数を示すか否かを決定する段階と、
前記アクティベーションカウンターが前記最大許容アクティベーション数を示すことを決定した場合、前記メモリのリフレッシュ動作及び前記リクエストのストーリング動作（ｓｔａｌｌｉｎｇ  ｏｐｅｒｒａｔｉｏｎ）の中の１つを実行する段階と、を含むことを特徴とする請求項１４に記載のトラッキング方法。
【請求項１６】
前記メモリのメモリローに対するアクティベーションをトラッキングする段階は、
前記アクティベーションカウンターが前記最大許容アクティベーション数を示さないことを決定した場合、前記アクティベーションカウンターを増加させ、前記第２メモリローをアクティベーションする段階を更に含むことを特徴とする請求項１５に記載のトラッキング方法。
【請求項１７】
前記メモリのメモリローに対するアクティベーションをトラッキングする段階は、
前記メモリのメモリローをアクティベーションするためのリクエストを受信する段階と、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチするか否かを決定する段階と、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチすることを決定した場合、前記第１エントリの割当てを取り消し、前記第２エントリテーブル内で前記メモリローの対応エントリを割当てる段階と、
前記メモリローをアクティベーションする段階と、を含むことを特徴とする請求項１４に記載のトラッキング方法。
【請求項１８】
前記メモリのメモリローに対するアクティベーションをトラッキングする段階は、
前記メモリのメモリローをアクティベーションするためのリクエストを受信する段階と、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチするか否かを決定する段階と、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチしないことを決定した場合、前記第１エントリテーブル内で前記メモリローの対応エントリを割当てる段階と、を含むことを特徴とする請求項１４に記載のトラッキング方法。
【請求項１９】
前記メモリのメモリローに対するアクティベーションをトラッキングする段階は、
前記メモリのメモリローをアクティベーションするためのリクエストを受信する段階と、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチするか否かを決定する段階と、
前記メモリローが前記第１エントリの第１識別子によって識別された第１メモリローにマッチすることを決定した場合、前記第２エントリテーブルが前記第１メモリローに対応する追加エントリを割当てるか否かを決定する段階と、
前記第２エントリテーブルが前記第１メモリローに対応する追加エントリを割当てないことを決定した場合、前記メモリのリフレッシュ動作及び前記リクエストのストーリング動作（ｓｔａｌｌｉｎｇ  ｏｐｅｒｒａｔｉｏｎ）の中の１つを実行する段階と、を含むことを特徴とする請求項１４に記載のトラッキング方法。
【請求項２０】
前記メモリのメモリローに対するアクティベーションをトラッキングする段階は、
前記少なくとも１つの第２タイム区間が前記第２タイムアウトカウンターから経過したか否かを決定する段階と、
前記少なくとも１つの第２タイム区間が前記第２タイムアウトカウンターから経過したことを決定した場合、前記アクティベーションカウンターを減少させる段階と、を含むことを特徴とする請求項１４に記載のトラッキング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリロー（ｒｏｗ）に対するアクティベーションをトラッキングする方法及び装置に関し、より詳細には、減少された数のローアクティベーションカウンターを利用してメモリローに対するアクティベーションを効率的にトラッキングする方法及びそのためのメモリコントローラに関する。
【背景技術】
【０００２】
ダイナミックランダムアクセスメモリ（以下、ＤＲＡＭ）のターゲットロー（選択された行）がタイム区間内にあまりにも頻繁にアクティベーション（活性化）される場合、ターゲットローに物理的に隣接する隣接ローに格納されたデータは乱（ｄｉｓｔｕｒｂ）されるか、或いは消失（ｌｏｓｔ）することがある。特に、ＤＲＡＭ設計の密度（ｄｅｎｓｉｔｙ）が増加することによって、隣接ローに格納されたデータはターゲットローの頻繁なアクティベーションから発生するノイズに起因して破損（ｃｏｒｒｕｐｔｉｏｎ）することがある。
【０００３】
従って、一部のＤＲＡＭディバイスに対して、製造業者（メーカー）は、ＤＲＡＭのアーキテクチャ及びターゲットローのアクティベーションが隣接ロー内に格納されたデータを破損する割合（ｒａｔｅ）等に基づいて、タイム区間内にターゲットローに対する最大アクティベーション数を決定する。タイム区間内で設定されたアクティベーション数に到達すると、複数の隣接ローは隣接ロー内に格納されたデータの破損を避けるためにリフレッシュされる。
【０００４】
タイム区間内のターゲットローに対する最大アクティベーション数は、一般的に最大アクティベーションカウント（以下、ＭＡＣ）と称される。ＭＡＣは、隣接ローがデータ破損を避けるためにリフレッシュされる前の、タイム区間内のターゲットローに対する最大アクティベーション数、即ち最大アクティベーションウインドー（ｔＭＡＣ：ｔｈｅ  ｍａｘｉｍｕｍ  ａｃｔｉｖａｔｉｏｎ  ｗｉｎｄｏｗ）である。
【０００５】
ターゲットローの頻繁なアクティベーションに起因する隣接ロー内に格納されたデータ破損に関連する状況は、１つ又は２つの“アグレッサー（ａｇｇｒｅｓｓｏｒ：加害者）”ローとターゲットワン“ビクティム（ｖｉｃｔｉｍ：被害者）”ローとの場合で発生する。例えば、隣接ビクティムローが配置される間に、マルチプルターゲットアグレッサーロー（ｍｕｌｔｉｐｌｅ  ｔａｇｅｔ  ａｇｇｒｅｓｓｏｒ  ｒｏｗ）は頻繁にアクティベーションされる。従って、与えられたビクティムローに対する２つのアグレッサーローからのアクティベーションの合計は、両アグレッサーローに対するアクティベーションが隣接ビクティムローに格納されたデータ破損に寄与するため、ＭＡＣを超過してはならない。
【０００６】
ターゲットローに対する他のアクティベーションを送る前に、ＭＡＣ制限が最大アクティベーションウインドー内に到達すると、メモリコントローラはＤＲＡＭ内の全てのメモリローのリフレッシュ及びターゲットローリフレッシュ（ＴＲＲ）の中の１つを遂行する。ＴＲＲは、オーバーアクティベーションされたターゲットローに隣接するメモリローのみをリフレッシュするか、或いはＭＡＣ制限が到達しない状況でターゲットローに対するアクティベーションをスロットル（調節）するために遂行される。ＭＡＣ制限は全てのメモリローの完全なリフレッシュを遂行すること又はＴＲＲを遂行することを避けることができるが、ローアクティベーションの実行を遅延する。
【０００７】
上記シナリオで、ビクティムローに対するＭＡＣを管理することは、ＤＲＡＭ内のメモリローに対するアクティベーションを制御するメモリコントローラがメモリローの物理的オリエンテーションを知らないという事実に起因して複雑になる。例えば、メモリコントローラは与えられたビクティムローに対して２つのアグレッサーローのアクティベーションをトラッキング（追跡）することができない。ビクティムローに対するＭＡＣ超過を保護するために効果的なＭＡＣ値が最大アクティベーションウインドー内でＭＡＣ／２に設定される。
【０００８】
ＭＡＣ制限を管理することは、慣習的に最大アクティベーションウインドー内でＤＲＡＭの各メモリローに送られるアクティベーション数をトラッキングすることを要求する。各メモリローに対するアクティベーション数を実際にトラッキングすることは、ＤＲＡＭ内で各バンク及び各ランクに対する各メモリロー用カウンターを要求する。例えば、４ランク、ランク当たり１６バンク、バンク当たり１２８Ｋローを有するＤＲＡＭで、Ｎビットをカウントするカウンターの個数は４×１６×１２８Ｋ＝８１９２Ｋになる。カウンターの数量とその管理のために要求される関連する空間はメモリコントローラ設計のパワー及び面積の観点で更に管理するのが難しくなる。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、減少された数のローアクティベーションカウンターを利用してメモリローに対するアクティベーションを効率的にトラッキングする方法及びそのためのメモリコントローラを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するためになされた本発明の一態様によるメモリを制御するためのメモリコントローラは、第１エントリを含む第１エントリテーブル及び第２エントリを含む第２エントリテーブルを格納するページテーブルを有し、前記第１エントリは、第１タイム区間の間に活性化されたメモリの第１メモリローを識別する第１識別子と、前記第１タイム区間の間に残りの第１タイムを示すタイムアウトカウンターと、を含み、前記第２エントリは、少なくとも１つの第２タイム区間の間に活性化されたメモリの第２メモリローを識別する第２識別子と、前記第２メモリローのアクティベーションの数量をカウントするアクティベーションカウンターと、前記少なくとも１つの第２タイム区間の間に残りの第２タイムを示す第２タイムアウトカウンターと、を含む。
【００１１】
上記目的を達成するためになされた本発明の一態様によるメモリコントローラによりメモリローに対するアクティベーションをトラッキングする方法は、メモリ内にページテーブルを格納する段階と、前記ページテーブルを利用して前記メモリのメモリローに対するアクティベーションをトラッキングする段階と、を有し、前記ページテーブルは、第１エントリを含む第１エントリテーブル及び第２エントリを含む第２エントリテーブルを格納し、前記第１エントリは、第１タイム区間の間に活性化されたメモリの第１メモリローを識別する第１識別子と、前記第１タイム区間の間に残りの第１タイムを示すタイムアウトカウンターと、を含み、前記第２エントリは、少なくとも１つの第２タイム区間の間に活性化されたメモリの第２メモリローを識別する第２識別子と、前記第２メモリローのアクティベーションの数量をカウントするアクティベーションカウンターと、前記少なくとも１つの第２タイム区間の間に残りの第２タイムを示す第２タイムアウトカウンターと、を含む。
【発明の効果】
【００１２】
本発明によれば、減少された数のローアクティベーションカウンターを利用することでメモリローに対するアクティベーションが効率的にトラッキングされる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態によるＤＲＡＭのタイミングパラメーターを示す図である。
【図２】本発明の一実施形態によるページテーブルを示す図である。
【図３】本発明の一実施形態によるメモリローに対するアクティベーションをトラッキングする方法を示すフローチャートである。
【図４】本発明の一実施形態によるメモリコントローラを示す図である。
【図５】本発明の一実施形態によるＤＤＲ４のディバイスパラメーターを示す図である。
【図６】本発明の一実施形態によるメモリローに対するアクティベーションをトラッキングする方法及び図５のディバイスパラメーターを適用した性能データテスティング結果を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。同じ参照符号を同じ構成要素に付す。
【００１５】
“少なくとも１つの”等のような表現は、構成要素のリストに先行する場合、構成要素の全体リストを修飾するが、個別の構成要素のリストを修飾しない。
【００１６】
図１は、本発明の一実施形態によるＤＲＡＭのタイミングパラメーターを示す図である。
【００１７】
多様なＤＲＡＭタイミングパラメーターを理解することによって、最大アクティベーションウインドー（ｔＭＡＷ）内のＤＲＡＭ内のターゲットロー、ＭＡＣ制限の違反を避けるために同時にトラッキングされる必要があるメモリローの数、又は全体ＤＲＡＭシステムの性能に対して大きい影響を及ぼすアクティベーションの個数制限は減少する。
【００１８】
図１で、ＤＲＡＭのタイミングパラメーターは、ＤＲＡＭの最大アクティベーションウインドー（ｔＭＡＷ）及びｔＭＡＣ内のメモリローに対する最大アクティベーション数（ｔＭＡＣ）を含む。このようなパラメーターは上述したように、ＤＲＡＭの製造業者によって決定される。
【００１９】
ＭＡＣに対するローアクティベーショントラッキングを具現するために、本実施形態によるメモリコントローラは追加的なタイミングパラメーターｔＲＣＲｏｗを含む。パラメーターｔＲＣＲｏｗは同一のターゲットローに対するアクティベーション間の平均値として次のように計算される。
【００２０】
ｔＲＣＲｏｗ＝ｔＭＡＷ／（ＭＡＣ／２）である。
【００２１】
上記計算式で（ＭＡＣ／２）の値は有効ＭＡＣ値になる。
【００２２】
ｔＲＣＲｏｗの値は、上述したように初期化され、ｔＲＣＲｏｗウインドーの間にアクティベーションされたメモリローに対するアクティベーションＡｃｔＣＴＲの数に従って下記のようにリセットされる。
【００２３】
ｔＲＣＲｏｗ＝ｔＭＡＷ／（（ＭＡＣ−ＡｃｔＣＴＲ）／２）である。
【００２４】
ｔＲＣＲｏｗ計算内に含まれるＡｃｔＣＴＲ値は最大アクティベーション数に基づく。最大アクティベーション数は、特定のメモリローに対するアクティベーション数を示すエントリを格納するページテーブル構造によってカウントされ、以下で説明する。ここで、特定のメモリローは１つ以上のｔＲＣＲｏｗウインドーの間にアクティベーションされたメモリローを意味する。これはＡｃｔＣＴＲの幅によって決定される。従って、ｔＲＣＲｏｗはｔＲＣＲｏｗウインドーの間にアクティベーションされたメモリローに対するアクティベーションＡｃｔＣＴＲの最大値に基づいてリセットされる。
【００２５】
追加的なタイミングパラメーターは、リフレッシュインターバルｔＲＥＦ１、リフレッシュコマンドを完了するために要求されるタイムｔＲＦＣ、パワー制限供給パラメーターｔＲＲＤ＿Ｌ及びｔＦＡＷ、アップデートタイミングパラメーターｔＭＯＤ、リードディレイタイミングパラメーターｔＲＣＤ、及びバンクタイミングパラメーターｔＲＡＳ、ｔＲＰ、及びｔＲＣを含む。このようなパラメーターも、アーキテクチャ選択に基づいて、ＤＲＡＭの製造業者によって決定される。
【００２６】
図２は、本発明の一実施形態によるページテーブルを示す図である。
【００２７】
ページテーブル２００は、減少された個数のローアクティベーションカウンターを利用してメモリローに対するアクティベーションを効率的にトラッキングするために、バンク当たり２つのページテーブル構造を含む。
【００２８】
第１ページテーブル構造（ＲｏｗＯｎｅＡｃｔ）２１０はｔＲＣＲｏｗウインドーの間にアクティベーションされたメモリローを示すエントリを格納する。例えば、第１ページテーブル構造２１０はｔＲＣＲｏｗウインドーの間にメモリローのアクティベーションをトラッキングするためにバンク内で１６エントリ構造になる。
【００２９】
第１ページテーブル構造２１０はｔＲＣＲｏｗウインドーの間にアクティベーションされたメモリロー（Ｒｏｗ）２３０に関連し、メモリロー２３０に対するｔＲＣＲｏｗウインドーの満了をトラッキングするためのタイムアウトカウンター（ｔＲＣＲｏｗＣＴＲ）２４０に関連する。
【００３０】
メモリコントローラは、メモリローのアクティベーションが発生すると、メモリロー２３０に関する第１ページテーブル構造２１０に対するエントリを示し、タイムアウトカウンター２４０をｔＲＣＲｏｗのような値に初期化する。また、メモリコントローラは、タイムアウトカウンター２４０に基づいて決定されたｔＲＣＲｏｗが一旦経過すると、第１ページテーブル構造２１０からエントリを除去（ｐｕｒｇｅ）する。従って、メモリコントローラはｔＲＣＲｏｗウインドーの間にアクティベーションされたメモリローを認識するために第１ページテーブル構造２１０を照会（ｑｕｅｒｙ）する。
【００３１】
第２ページテーブル構造（ＲｏｗＬｅａｋＢｕｃｋ）２２０は１つ以上のｔＲＣＲｏｗウインドーの間にアクティベーションされた特定のメモリローに対するアクティベーションの個数を示すエントリを格納する。
【００３２】
第２ページテーブル構造２２０は、ｔＲＣＲｏｗウインドーの間にアクティベーションされたメモリロー（Ｒｏｗ）２５０、メモリロー２５０に対する１つ以上のｔＲＣＲｏｗウインドーの満了をトラッキングするためのタイムアウトカウンター（ｔＲＣＲｏｗＣＴＲ）２６０、及びｔＲＣＲｏｗウインドーの間にアクティベーションされた特定のメモリロー２５０に対するアクティベーション数をカウントするアクティベーションカウンター（ＡｃｔＣＴＲ）２７０に関連する。第２ページテーブル構造２２０内にエントリが示されると、タイムアウトカウンター２６０はｔＲＣＲｏｗのような値に初期化されるか、或いはエントリが第１ページテーブル構造２１０から第２ページテーブル構造２２０に移動される場合に、後述するように、タイムアウトカウンター２６０はタイムアウトカウンター２４０の値のような値に交互に初期化される。付加的に、エントリが第２ページテーブル構造２２０内に示されると、アクティベーションカウンター２７０は１に初期化される。
【００３３】
例えば、第２ページテーブル構造２２０は第２ページテーブル構造２２０内の各メモリロー２５０のエントリに対して８ビットのアクティベーションカウンター２７０を適用するバンク内で８エントリ構造になる。
【００３４】
アクティベーションカウンター２７０は、第２ページテーブル構造２２０内でメモリロー２５０のエントリをマッチングする特別のメモリローがアクティベーションされる時毎に、例えば１ずつ増加される。上述したように、タイムアウトカウンター２６０は、メモリロー２５０のエントリをマッチングする特別のメモリローが一旦アクティベーションされると、初期化される。
【００３５】
逆に、アクティベーションカウンター２７０は、タイムアウトカウンター２６０が終了されることに従ってｔＲＣＲｏｗ毎に、例えば１ずつ減少される。
【００３６】
タイムアウトカウンター２６０の終了時、アクティベーションカウンター２７０がノンゼロ（ｎｏｎ−ｚｅｒｏ）アクティベーション値を示すと、タイムアウトカウンター２６０は、上述したように、ノンゼロアクティベーション値に従ってその後にｔＲＣＲｏｗのような値にリセットされる。
【００３７】
アクティベーションカウンター２７０によって示したようにアクティベーションに対するカウンティングによって、ｔＲＣＲｏｗウインドーは最大アクティベーション数ｔＭＡＣがＤＲＡＭの最大アクティベーションウインドーｔＭＡＷ内で発生しないことを保証するために制御される。
【００３８】
タイムアウトカウンター２６０の終了時、アクティベーションカウンター２７０を減少させてリセットする動作は、アクティベーションカウンター２７０の値が０になる時まで繰返される。アクティベーションカウンター２７０が０に到達すると、対応するメモリロー２５０のエントリは第２ページテーブル構造２２０から除去される。
【００３９】
従って、メモリコントローラは、隣接ローのデータ破損を防止するためにリフレッシュやアクティベーションの調節を必要とする、頻繁にアクティベーションされるメモリローに対するアクティベーション数と潛在的にオーバーアクティベーションされるメモリローを識別するために、第２ページテーブル構造２２０を照会する。
【００４０】
図３は、本発明の一実施形態によるメモリローに対するアクティベーションをトラッキングする方法を示す図である。
【００４１】
上述したように、メモリコントローラはメモリローに対する頻繁なアクセスから生じるデータ破損を防止するためにメモリローに対するアクティベーションをトラッキングする方法を実行する。
【００４２】
段階Ｓ３０５で、メモリコントローラはメモリローに対するメモリアクセス用リクエストを受信する。
【００４３】
段階Ｓ３１０で、メモリコントローラは要請されたメモリローが第２ページテーブル構造２２０内に存在するエントリのメモリロー２５０にマッチするか否かを決定するために第２ページテーブル構造２２０を照会する。
【００４４】
要請されたメモリローが第２ページテーブル構造２２０内に存在するエントリのメモリロー２５０にマッチすることを決定した場合（段階Ｓ３１０で「はい」）、アクティベーションカウンター２７０をスレショルドと比較することによって、メモリコントローラは、段階Ｓ３１５で、要請されたメモリローがオーバーアクティブローであるか否かを決定する。スレショルドは、上述したように、要請されたメモリローに対するアクティベーション数が最大値に到達したことを示すアクティベーションカウンター２７０の値になる。
【００４５】
メモリコントローラが、要請されたメモリローに対するアクティベーション数がスレショルドより小さいことを決定した場合（段階Ｓ３１５で「いいえ」）、メモリコントローラは、段階Ｓ３２０で、第２ページテーブル構造２２０のエントリ内のメモリロー２５０に対するアクティベーションカウンター２７０を増加させ、段階Ｓ３５５でローアクティベーションを遂行する。
【００４６】
一方、メモリコントローラが、要請されたメモリローに対するアクティベーション数がスレショルドに到達したことを決定した場合（段階Ｓ３１５で「はい」）、メモリコントローラは、段階Ｓ３２５で、メモリアクティベーションのリフレッシュ又はスロットリング（ｔｈｒｏｔｔｌｉｎｇ）を遂行する。ここで、メモリコントローラがリフレッシュを遂行すると、アクティベーションカウンター２７０は０にリセットされるか、或いはメモリロー２５０に対するエントリは第２ページテーブル構造２２０から再割当てされる。代わりに、メモリコントローラがスロットリングを遂行すると、メモリコントローラは、タイムアウトカウンター２６０によって表示されるウインドーの連続的な終了に基づいて、アクティベーションカウンター２７０が収容できる低いスレショルドに到達する時までメモリローのアクティベーションを調節（ｔｈｒｏｔｔｌｅ）する。
【００４７】
メモリアクセスに関する要請に対するメモリコントローラの受信に戻って（段階Ｓ３１５）、メモリコントローラが、要請されたメモリローが第２ページテーブル構造２２０内に存在するエントリにマッチしないことを決定した場合（段階Ｓ３１０で「いいえ」）、メモリコントローラは、段階Ｓ３３０で、要請されたメモリローが第１ページテーブル構造２１０内に存在するエントリにマッチするか否かを決定する。
【００４８】
要請されたメモリローが第１ページテーブル構造２１０内に存在するエントリにマッチすることを決定した場合（段階Ｓ３３０で「はい」）、要請されたメモリローが現在のウインドーの間に既にアクティベーションされていることを示すことによって、メモリコントローラは、段階Ｓ３５０で、アクティベーション数をトラッキングするために追加エントリが第２ページテーブル構造２２０内に割当てられるか否かを決定する。
【００４９】
メモリコントローラが、第２ページテーブル構造２２０がアクティブエントリにいっぱいに満たされ、追加エントリが第２ページテーブル構造２２０内に割当てられないことを決定した場合（段階Ｓ３５０で「はい」）、メモリコントローラは、段階Ｓ３２５で、メモリアクティベーションのリフレッシュ又は調節を遂行する。ここで、メモリコントローラがリフレッシュを遂行すると、メモリロー２３０に対するエントリは第１ページテーブル構造２１０から再割当てされる。代わりに、メモリコントローラがスロットリングを遂行すると、メモリコントローラはタイムアウトカウンター２４０に基づいて決定されるようにウインドーの満了時まで、メモリローのアクティベーションを調節し、メモリロー２３０に対するエントリは第１ページテーブル構造２１０から再割当てされる。
【００５０】
一方、メモリコントローラは、第２ページテーブル構造２２０がアクティブエントリに満たされていないことを決定した場合（段階Ｓ３５０で「いいえ」）、段階Ｓ３４５で、第１ページテーブル構造２１０からメモリロー２３０に対するエントリの割当てを取り消し、第２ページテーブル構造２２０内に要請されたメモリローに対する対応する新しいエントリを割当て、段階Ｓ３５５でローアクティベーションを遂行する。
【００５１】
要請されたローが第１ページテーブル構造２１０内に存在するエントリにマッチするか否かを判断するメモリコントローラの決定に戻って（段階Ｓ３３０）、要請されたローが第１ページテーブル構造２１０内に存在するエントリにマッチしないことを決定した場合（段階Ｓ３３０で「いいえ」）、メモリコントローラは、段階Ｓ３３５で、メモリローがウインドーの間にアクティベーションされたか否かをトラッキングするために追加エントリが第１ページテーブル構造内に割当てられるか否かを決定する。
【００５２】
メモリコントローラが、第１ページテーブル構造がアクティブエントリでいっぱいに満たされ、追加エントリが第１ページテーブル構造２１０内に割当てられないことを決定した場合（段階Ｓ３３５で「はい」）、メモリコントローラは、段階Ｓ３５０で、アクティベーションの個数をトラッキングするために追加エントリが第２ページテーブル構造２２０内に割当てられるか否かを決定し、上述したような連続的な決定動作を遂行する。
【００５３】
一方、メモリコントローラが、第１ページテーブル構造２１０がアクティブエントリに満たされていないことを決定した場合（段階Ｓ３３５で「いいえ」）、メモリコントローラは第１ページテーブル構造２１０内で要請されたメモリローに対する新しいエントリを割当て、段階Ｓ３５５でローアクティベーションを遂行する。
【００５４】
図４は、本発明の一実施形態によるメモリコントローラを示す図である。
【００５５】
図４に示したように、メモリコントローラ４００は、システムインターフェイス４１０、アドレス変換ユニット４２０、メインリクエストキュー４３０、アービタ４４０、ＤＤＲ物理レイヤーディバイス（ＤＤＲ  Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ  Ｄｅｖｉｃｅ：ＤＦＩ）インターフェイス４５０、セレクター４６０、及びページテーブル４７０を含む。
【００５６】
図４に示したページテーブル４７０は図２のページテーブル２００と同様であるので、これに対する詳細な説明は省略する。
【００５７】
システムインターフェイス４１０は、メモリコントローラ４００に属するシステムの追加的なコンポーネントに対するインターフェイスである。メッセージ及びデータは、システムインターフェイス４１０を通じて伝送され、受信される。
【００５８】
アドレス変換ユニット４２０は、システムインターフェイス４１０を通じて受信したメモリリクエストに対するアドレス変換を遂行する。
【００５９】
メインリクエストキュー４３０は、システムインターフェイス４１０を通じて受信し、アドレス変換ユニット４２０によって変換されたメモリリクエストを格納する。
【００６０】
アービタ４４０は、リクエスト信号（Ｐｉｃｋ  Ｒｅｑ）をメインリクエストキュー４３０内に格納されたリクエストの中の１つを選択するためのセレクター４６０に出力する。リクエスト信号はＤＦＩインターフェイス４５０を通じて処理される。
【００６１】
ページテーブル４７０は、メモリリクエストに対応されるメモリローをアクティベーションするか否かを決定するためにメインリクエストキュー内に格納されたリクエストと共に照会される。アクティベーションの決定に対する詳細な説明は、図３に関連して説明したので、これに対する詳細な説明は省略する。
【００６２】
ページテーブル４７０は、メモリローのアクティベーションに関連してＤＦＩインターフェイス４５０からフィードバックを追加的に受信する。
【００６３】
図５は、本発明の一実施形態によるＤＤＲ４のディバイスパラメーターを示す図である。
【００６４】
図５に示したように、ＤＤＲ４  ＤＲＡＭディバイスパラメーターは示される。当業者であれば、ＤＤＲ４  ＤＲＡＭディバイスパラメーターは製造業者によって決定されることが理解される。
【００６５】
図６は、本発明の一実施形態によるメモリローに対するアクティベーションをトラッキングする方法及び図５のディバイスパラメーターを適用した性能データテスティング結果を示す図である。
【００６６】
図示したように、３つのスキーム（スキーム１、スキーム２、及びスキーム３）に対する性能データを、７つのトラフィックパターンを利用して示す。即ち、アクティベーション当たり１ＣＡＳ、Ｎローに対するラウンドロビンアクセス（ｒｏｕｎｄ−ｒｏｂｉｎ  ａｃｃｅｓｓ）（ここで、Ｎ＝１２８Ｋ、１６、８、６、４、２、１）である。パフォーマンスメトリックス（ｐｅｒｆｏｒｍａｎｃｅ  ｍｅｔｒｉｃｓ）は、ｔＭＡＣウインドー内で、どの位多くのアクティベーションが１つのバンクに対して発せられる（イッシューされる）かに対する比較を示す。図示した実施形態によると、メモリチャンネル内で１つ以上のバンクが存在し、全てのトラフィックは１つのバンクのみに行くことと仮定する。
【００６７】
図６に示した本実施形態によると、第１及び第２スキーム（Ｓｃｈｅｍｅｓ）（スキーム１、及びスキーム２）は本発明の特徴を示す第３スキーム（スキーム３）に対する例と比較される。
【００６８】
第１スキーム（スキーム１）で、バンクは最大アクティベーションカウント制限に到達することを避けるためにノーマルリフレッシュレートより更に頻繁にリフレッシュされる。この場合にはリフレッシュ（例えばＴＲＲ）モードに進入する必要がない。
【００６９】
バンクは４７ｎｓ（ｔＲＣ）×３００Ｋ＝１４．１ｍｓ内で３００Ｋ（ｔＭＡＣ）回アクティベーションされる。全てのメモリローがこのウインドー内でリフレッシュされる場合、３００Ｋを超えないアクティベーションが全てのローに対して適用されることが保証される。
【００７０】
リフレッシュの性能オーバーヘッドはｔＲＦＣ／ｔＲＥＦＩ×ｔＭＡＷ／１４．１＝２０．４％である。ノーマルリフレッシュレートの性能オーバーヘッドはｔＲＦＣ／ｔＲＥＦＩ＝４．５％である。従って、第１スキームの性能オーバーヘッドは１−（１−２０．４％）／（１−４．５％）＝１６．６％である。本実施形態によると、性能オーバーヘッドは全てのリストされたアクセスパターンと同一である。
【００７１】
第２スキーム（スキーム２）で、カウンターは最近のアクティベーション数をトラッキングするために使用される。即ち、カウンターをｔＲＣＲｏｗ毎に減少させ、アクティベーションがメモリローに送られる時にカウンターを増加させる。リフレッシュ（例えば、ＴＲＲモード）はカウンターがオーバーフローするか、或いはカウンターが最大カウンター値に到達してアクティベーションが調節される時毎に初期化される。
【００７２】
カウンター幅が１９ビットである場合、バンク当たりの全体ストレージオーバーヘッドは２４３２Ｋｂｉｔｓ（１９ｂｉｔｓ／ｒｏｗ×１２８Ｋｒｏｗｓ＝２４３２Ｋｂｉｔｓ）である。カウンターオーバーフローが発生した時にＴＲＲモードが使用されると、ｔＭＡＷ内のオーバーフロー数は（６４ｍｓ／４７ｎｓ／３００ｋ＜５）程バウンドされて性能オーバーヘッドは無視される。ストレージオーバーヘッドを減らすために、ビット数はカウンター当たり減少する。しかし、このようなトラフィックパターンに対してより小さいカウンターを利用する場合、オーバーフロー数は大きく、更に高い性能オーバーヘッドが必要になる。例えば、カウンター幅が８である場合、ストレージオーバーヘッドは１０２４Ｋｂｉｔｓ／ｂａｎｋであり、性能劣化はＮ＝１である場合に５．４％に増加する（１ローアクセスの場合）。
【００７３】
ＴＲＲモードが使用されない場合、メモリコントローラはカウンターが最大値に到達する時にアクティベーションを調節する。例えば、Ｎ＝１である場合（１ローアクセスの場合）に、メモリローのカウンターが最大値（３００Ｋ）に到達すると、メモリコントローラはｔＲＣＲｏｗ（２１３．３３ｎｓ）毎にアクティベーションを発（イッシュー）し、従ってパフォーマンスオーバーヘッドは１−４７ｎｓ／２１３．ｎｓ＝７７．９％である。
【００７４】
第３スキーム（スキーム３）で、図３に示した完全な方法が具現される。
【００７５】
性能オーバーヘッドは第２スキームと同一である。しかし、ストレージオーバーヘッドは非常に低い。このスキームに対して、１６８＝（１６＋（８×１９））カウンタービットが必要になる。カウンターはメモリロー当たりで格納されないため、エントリ当たりのローインデックス（１７ローアドレスビット）が適用され、他の４０８ビット（２４×１７）を加える。
【００７６】
このスキーム（１６８＋４０８）に対する全体ストレージは他のスキームに比べて相変わらず非常に少ない。性能オーバーヘッドは第２スキームと同一である。なぜなら、８カウンターが（図２の第２ページテーブル構造２２０内に具現したもののように）Ｎ＜＝４である場合、多くのアクティベーションを有するメモリローをキャプチャすることが十分であるためであり、Ｎ＞４である場合、バンクは上述したようにコンフィギュレーション（ｃｏｎｆｉｇｕｒａｔｉｏｎ）に対するローハンマーイッシュー（ｒｏｗ  ｈａｍｍｅｒ  ｉｓｓｕｅ）に適用されない。更に、第３スキームは第２スキームより低いストレージ及び性能オーバーヘッドを有し、第１スキームより非常に低い性能及びパワーオーバーヘッドを相対的に有する。
【００７７】
特に、他のコンフィギュレーション（ｔＭＡＷ／ｔＭＡＣ）に対して、カウンターの数は（図２の第２ページテーブル構造２２０内に具現したもののように）調節される。
【００７８】
本実施形態の機能はコンピューター読み取り可能な記録媒体のコンピューター読み取り可能なコードで具現される。コンピューター読み取り可能な記録媒体はコンピューター読み取り可能なデータが格納される記録媒体の全ての種類を含む。例えば、コンピューター読み取り可能な記録媒体は、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、マグネチックテープ、フロッピー（登録商標）ディスク、及び光学データストレージを含む。更に、記録媒体はインターネット伝送に利用されるような搬送波の形態でも具現される。加えて、コンピューター読み取り可能な記録媒体はネットワーク上のコンピューターシステムに分配される。コンピューターシステムはコンピューター読み取り可能なコードが格納され分配された手法で実行される。
【００７９】
当該技術者によってよく理解されるように、本実施形態は、ソフトウェア及び／又はハードウェア素子、例えば与えられたタスクを遂行するフィールドプログラマブルゲートアレイ（ＦＰＧＡ）やＡＳＩＣ等のような任意の組合せによっても具現される。
【００８０】
ユニット又はモジュールはアクセス可能なストレージ媒体上に存在するために構成され、１つ以上のプロセッサ又はマイクロプロセッサを実行するために構成される。従って、ユニット又はモジュールは、例えばソフトウェアコンポーネント、オブジェクト指向ソフトウェアコンポーネント、クラスコンポーネント、及びタスクコンポーネント、プロセス、機能、属性、プロシージャー、サブルーチン、プログラムコードのセグメント、ドライバー、ファームウェア、マイクロコード、回路等、データ、データベース、データ構造、テーブル、アレイ、及び変数等のようなコンポーネントを含む。
【００８１】
コンポーネント及びユニット内に提供される機能性（ｆｕｎｃｔｉｏｎａｌｉｔｙ）は、少数のコンポーネント及びユニット、モジュール、更に分割された追加コンポーネント及びユニット、又はモジュールに結合される。
【００８２】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００８３】
２００、４７０    ページテーブル
２１０    第１ページテーブル構造（ＲｏｗＯｎｅＡｃｔ）
２２０    第２ページテーブル構造（ＲｏｗＬｅａｋＢｕｃｋ）
２３０、２５０    メモリロー（Ｒｏｗ）
２４０、２６０    タイムアウトカウンター（ｔＲＣＲｏｗＣＴＲ）
２７０    アクティベーションカウンター（ＡｃｔＣＴＲ）
４００    メモリコントローラ
４１０    システムインターフェイス
４２０    アドレス変換ユニット
４３０    メインリクエストキュー
４４０    アービタ
４５０    ＤＦＩインターフェイス
４６０    セレクター
【図１】
2015133119.tif 000003
【図２】
2015133119.tif 000004
【図３】
2015133119.tif 000005
【図４】
2015133119.tif 000006
【図５】
2015133119.tif 000007
【図６】
2015133119.tif 000008