(57)【要約】      （修正有）【課題】様々なリフレッシュ・モードのリフレッシュ動作を制御し、メモリ・バンクの競合を解消又は回避する、柔軟な組み込みＤＲＡＭ用リフレッシュ・コントローラを提供する。【解決手段】リフレッシュ・イネーブル信号ＲＥＦＮ及び最終リフレッシュ信号ｌａｓｔ＿ｃｃｒを生成するステータス制御モジュール１２と、複数のメモリ・バンク・グループから、リフレッシュ間隔中にリフレッシュすべき少なくとも１つのメモリ・バンク・グループを検索し、外部アクセス信号及び検索された前記メモリ・バンク・グループに従ってリフレッシュ・アドレス信号ＣＲＡを生成するリフレッシュ検索モジュール１３と、複数のメモリ・バンク・グループのそれぞれのステータスを記録するスコアボード・モジュール１４と、外部アクセス信号、最終リフレッシュ信号、及びメモリ・バンクのそれぞれのステータスに従って競合信号を生成する競合検出モジュール１５と、を備える。【選択図】図１
2010033695.tif 000002
【特許請求の範囲】
【請求項１】
組み込みＤＲＡＭ用リフレッシュ・コントローラであって、外部アクセス信号を受信し、リフレッシュ・イネーブル信号ＲＥＦＮ、リフレッシュ・アドレス信号ＣＲＡ、及び競合信号を生成し、前記リフレッシュ・イネーブル信号ＲＥＦＮ及び前記リフレッシュ・アドレス信号ＣＲＡを、複数のメモリ・バンク・グループを含む前記組み込みＤＲＡＭに送信するように構成され、
リフレッシュ間隔及びクロック・サイクルに従って前記リフレッシュ・イネーブル信号ＲＥＦＮ及び最終リフレッシュ信号ｌａｓｔ＿ｃｃｒを生成するように構成されたステータス制御モジュールと、
前記複数のメモリ・バンク・グループから、前記リフレッシュ間隔中にリフレッシュすべき少なくとも１つのメモリ・バンク・グループを検索し、前記外部アクセス信号及び検索された前記メモリ・バンク・グループに従って前記リフレッシュ・アドレス信号ＣＲＡを生成するように構成されたリフレッシュ検索モジュールと、
前記リフレッシュ・アドレス信号ＣＲＡ及び前記外部アクセス信号に従って前記複数のメモリ・バンク・グループのそれぞれのステータスを記録するように構成されたスコアボード・モジュールと、
前記外部アクセス信号、最終リフレッシュ信号ｌａｓｔ＿ｃｃｒ、及び前記メモリ・バンクのそれぞれの前記ステータスに従って前記競合信号を生成するように構成された競合検出モジュールと、
を備えるリフレッシュ・コントローラ。
【請求項２】
前記ステータス制御モジュールは、各リフレッシュ間隔中のクロック・サイクルをカウントし、カウントされた数が前記メモリ・バンク・グループの数から１を引いた数よりも小さいときは、前記リフレッシュ・イネーブル信号ＲＥＦＮをそれ自体の第１のステータスにセットし、前記最終リフレッシュ信号ｌａｓｔ＿ｃｃｒをそれ自体の第１のステータスにセットし、カウントされた数が前記メモリ・バンク・グループの数から１を引いた数と等しいときは、前記リフレッシュ・イネーブル信号ＲＥＦＮをそれ自体の第１のステータスにセットし、前記最終リフレッシュ信号ｌａｓｔ＿ｃｃｒをそれ自体の第２のステータスにセットし、カウントされた数が前記メモリ・バンク・グループの数以上であるときは、前記リフレッシュ・イネーブル信号ＲＥＦＮをそれ自体の第２のステータスにセットし、前記最終リフレッシュ信号ｌａｓｔ＿ｃｃｒをそれ自体の第１のステータスにセットするように構成される、請求項１に記載のリフレッシュ・コントローラ。
【請求項３】
前記リフレッシュ検索モジュールは、
前記複数のメモリ・バンク・グループから、前記リフレッシュ間隔中にリフレッシュすべき１番目のメモリ・バンク・グループを検索するように構成された第１の検索モジュールと、
前記複数のメモリ・バンク・グループから、前記リフレッシュ間隔中にリフレッシュすべき２番目のメモリ・バンク・グループを検索するように構成された第２の検索モジュールと、
検索された前記１番目のメモリ・バンク・グループと前記外部アクセス信号とを比較し、比較信号を生成するように構成された比較器と、
前記比較信号の制御下で前記１番目のメモリ・バンク・グループと前記２番目のメモリ・バンク・グループのいずれかを選択し、前記リフレッシュ・アドレス信号ＣＲＡを生成するように構成されたマルチプレクサと、
を備える、請求項１又は２に記載のリフレッシュ・コントローラ。
【請求項４】
前記第１の検索モジュール及び前記第２の検索モジュールによってそれぞれ検索される前記１番目のメモリ・バンク・グループ及び前記２番目のメモリ・バンク・グループは、前記最終リフレッシュ信号ｌａｓｔ＿ｃｃｒがそれ自体の第２のステータスにあるときは同一のメモリ・バンク・グループとなる、請求項３に記載のリフレッシュ・コントローラ。
【請求項５】
前記第１の検索モジュールは、前記複数のメモリ・バンク・グループ内を順方向に検索するように構成された順方向検索モジュールであり、前記第２の検索モジュールは、前記複数のメモリ・バンク・グループ内を逆方向に検索するように構成された逆方向検索モジュールである、請求項３に記載のリフレッシュ・コントローラ。
【請求項６】
前記マルチプレクサは、前記比較信号がそれ自体の第１のステータスにあるときは、前記１番目のメモリ・バンク・グループのアドレスを前記リフレッシュ・アドレス信号ＣＲＡとして選択し、前記比較信号がそれ自体の第２のステータスにあるときは、前記２番目のメモリ・バンク・グループのアドレスを前記リフレッシュ・アドレス信号ＣＲＡとして選択するように構成される、請求項３に記載のリフレッシュ・コントローラ。
【請求項７】
前記スコアボード・モジュールは、それぞれ前記複数のメモリ・バンク・グループの各グループに対応する複数のカウンタを備える、請求項１に記載のリフレッシュ・コントローラ。
【請求項８】
前記スコアボード・モジュールは、前記外部アクセス信号又は前記リフレッシュ・アドレス信号ＣＲＡによって示される前記メモリ・バンク・グループに対応する前記カウンタをそれ自体の第２のステータスにセットするように構成される、請求項７に記載のリフレッシュ・コントローラ。
【請求項９】
前記競合検出モジュールは、前記最終リフレッシュ信号ｌａｓｔ＿ｃｃｒがそれ自体の第２のステータスにあり、且つ前記外部アクセス信号によって示される前記メモリ・バンクが前記リフレッシュ・アドレス信号ＣＲＡによって示される前記メモリ・バンク・グループに属するときに、競合信号を生成するように構成される、請求項１に記載のリフレッシュ・コントローラ。
【請求項１０】
前記競合検出モジュールは、前記外部アクセス信号によって示される前記メモリ・バンクがそれ自体の第２のステータスにあるときに、競合信号を生成するように構成される、請求項９に記載のリフレッシュ・コントローラ。
【請求項１１】
前記複数のメモリ・バンク・グループはそれぞれ、１つ、２つ、又は４つのメモリ・バンクを含む、請求項１に記載のリフレッシュ・コントローラ。
【請求項１２】
複数のメモリ・バンク・グループを備える組み込みＤＲＡＭのリフレッシュ制御方法であって、
外部アクセス信号を受信するステップと、
各リフレッシュ間隔中のクロック・サイクルに従ってリフレッシュ・イネーブル信号ＲＥＦＮ及び最終リフレッシュ信号ｌａｓｔ＿ｃｃｒを生成するステップと、
前記複数のメモリ・バンク・グループから、前記リフレッシュ間隔中にリフレッシュすべき少なくとも１つのメモリ・バンク・グループを検索し、前記外部アクセス信号及び検索された前記メモリ・バンク・グループに従ってリフレッシュ・アドレス信号ＣＲＡを生成するステップと、
前記リフレッシュ・アドレス信号ＣＲＡ及び外部アクセス信号に従って前記複数のメモリ・バンク・グループのそれぞれのステータスを記録するステップと、
前記外部アクセス信号、最終リフレッシュ信号ｌａｓｔ＿ｃｃｒ、及び前記メモリ・バンクのぞれぞれのステータスに従って競合信号を生成するステップと、
前記リフレッシュ・イネーブル信号ＲＥＦＮ及びリフレッシュ・アドレス信号ＣＲＡを前記組み込みＤＲＡＭに送信するステップと、
を含むリフレッシュ制御方法。
【請求項１３】
リフレッシュ・イネーブル信号ＲＥＦＮ及び最終リフレッシュ信号ｌａｓｔ＿ｃｃｒを生成する前記ステップは、各リフレッシュ間隔中のクロック・サイクルをカウントし、カウントされた数が前記メモリ・バンク・グループの数から１を引いた数よりも小さいときは、前記リフレッシュ・イネーブル信号ＲＥＦＮをそれ自体の第１のステータスにセットし、前記最終リフレッシュ信号ｌａｓｔ＿ｃｃｒをそれ自体の第１のステータスにセットするステップと、カウントされた数が前記メモリ・バンク・グループの数から１を引いた数と等しいときは、前記リフレッシュ・イネーブル信号ＲＥＦＮをそれ自体の第１のステータスにセットし、前記最終リフレッシュ信号ｌａｓｔ＿ｃｃｒをそれ自体の第２のステータスにセットするステップと、カウントされた数が前記メモリ・バンク・グループの数以上であるときは、前記リフレッシュ・イネーブル信号ＲＥＦＮをそれ自体の第２のステータスにセットし、前記最終リフレッシュ信号ｌａｓｔ＿ｃｃｒをそれ自体の第１のステータスにセットするステップと、を含む、請求項１２に記載のリフレッシュ制御方法。
【請求項１４】
前記メモリ・バンク・グループを検索し、前記リフレッシュ・アドレス信号ＣＲＡを生成する前記ステップは、
前記複数のメモリ・バンク・グループから、前記リフレッシュ間隔中にリフレッシュすべき１番目のメモリ・バンク・グループ及び２番目のメモリ・バンク・グループを検索するステップと、
検索された前記１番目のメモリ・バンク・グループと前記外部アクセス信号とを比較し、比較信号を生成するステップと、
前記比較信号の制御下で前記１番目のメモリ・バンク・グループと前記２番目のメモリ・バンク・グループのいずれかを選択し、前記リフレッシュ・アドレス信号ＣＲＡを生成するステップと、
を含む、請求項１２に記載のリフレッシュ制御方法。
【請求項１５】
検索された前記１番目のメモリ・バンク・グループ及び前記２番目のメモリ・バンク・グループは、前記最終リフレッシュ信号ｌａｓｔ＿ｃｃｒがそれ自体の第２のステータスにあるときは同一のメモリ・バンク・グループとなる、請求項１４に記載のリフレッシュ制御方法。
【請求項１６】
リフレッシュすべき前記１番目のメモリ・バンク・グループ及び前記２番目のメモリ・バンク・グループを検索する前記ステップは、前記複数のメモリ・バンク・グループ内をそれぞれ順方向及び逆方向に検索するステップを含む、請求項１４に記載のリフレッシュ制御方法。
【請求項１７】
前記１番目のメモリ・バンク・グループと前記２番目のメモリ・バンク・グループのいずれかを選択する前記ステップは、前記比較信号がそれ自体の第１のステータスにあるときは、前記１番目のメモリ・バンク・グループのアドレスを前記リフレッシュ・アドレス信号ＣＲＡとして選択するステップと、前記比較信号がそれ自体の第２のステータスにあるときは、前記２番目のメモリ・バンク・グループのアドレスを前記リフレッシュ・アドレス信号ＣＲＡとして選択するステップと、を含む、請求項１４に記載のリフレッシュ制御方法。
【請求項１８】
前記複数のメモリ・バンク・グループのそれぞれのステータスを記録する前記ステップは、
前記リフレッシュ・アドレス信号ＣＲＡ又は前記外部アクセス信号によって示される前記メモリ・バンク・グループに対応するスコアボードをそれ自体の第２のステータスにセットするステップ
を含む、請求項１２に記載のリフレッシュ制御方法。
【請求項１９】
前記競合信号を生成するステップは、前記最終リフレッシュ信号ｌａｓｔ＿ｃｃｒがそれ自体の第２のステータスにあり、且つ前記外部アクセス信号によって示されるターゲット・メモリ・バンクが前記リフレッシュ・アドレス信号ＣＲＡによって示される前記メモリ・バンク・グループに属するときに、前記競合信号を生成するステップを含む、請求項１２に記載のリフレッシュ制御方法。
【請求項２０】
前記競合信号を生成するステップは、前記外部アクセス信号によって示される前記メモリ・バンク・グループがそれ自体の第２のステータスにあるときに、前記競合信号を生成するステップを含む、請求項１２に記載のリフレッシュ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＤＲＡＭのリフレッシュ制御に関するものであり、特に、組み込みＤＲＡＭ用リフレッシュ・コントローラ及び組み込みＤＲＡＭのリフレッシュ制御方法に関するものである。
【背景技術】
【０００２】
組み込みＤＲＡＭ（ｅＤＲＡＭ）は、従来の外部ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）よりも広い帯域幅で動作することができ、電力消費量及びチップ・ピン数も少なくなる。６５ｎｍ世代技術では、組み込みＤＲＡＭの周波数性能は既に５００ＭＨｚを超えている。しかしながら、従来のＤＲＡＭの場合と同様に、組み込みＤＲＡＭの保存データを保持するために、各メモリ要素に対して定期的なリフレッシュを実行しなければならない。リフレッシュ構造の遅延は、組み込みＤＲＡＭのシステム性能の向上を制約する恐れがある。
【０００３】
組み込みＤＲＡＭの同時リフレッシュ（ｃｏｎｃｕｒｒｅｎｔ  ｒｅｆｒｅｓｈ：ＣＣＲ）・モードを用いると、リフレッシュ動作と読出し／書込み動作の同時実行が可能となる。しかしながら、ＣＣＲリフレッシュ動作では、組み込みＤＲＡＭのターゲット・メモリ・バンクと、読出し／書込み動作対象のメモリ・バンクとが異なっていなければならない。即ち、同一のメモリ・バンクに対してリフレッシュ動作と読出し／書込み動作を同時に実行することはできない。組み込みＤＲＡＭのＣＣＲリフレッシュには複数のリフレッシュ・モードが存在する。シングルＣＣＲは、１つのリフレッシュ・サイクル中に１つのバンクだけをリフレッシュするモードであり、デュアルＣＣＲは、１つのリフレッシュ・サイクル中に２つのバンクをリフレッシュするモードである。同様に、クワッドＣＣＲは、各サイクル中に４つのバンクをリフレッシュするモードである。更に、より高い動作周波数をサポートするために、組み込みＤＲＡＭの各リフレッシュ動作を複数のクロック・サイクルにわたって実行することもできる。組み込みＤＲＡＭは、各動作が１クロック・サイクル中に実行される１ステージ・パイプライン動作に加えてマルチ・ステージ・パイプライン動作モードもサポートすることができる。２ステージ・パイプライン動作では、リフレッシュ、読出し、及び書込みの各動作が２クロック・サイクル内に完了し、４ステージ・パイプライン動作では、各動作が４クロック・サイクル内に完了する。
【０００４】
従来技術では、様々なモードのＣＣＲリフレッシュをサポートするために、様々なリフレッシュ方法が提供されている。例えば、米国特許第６１９５３０３号は、クロック・ベースのＤＲＡＭリフレッシュ・メカニズムを提供する。しかしながら、前記メカニズムは組み込みＤＲＡＭに適用することができない。米国特許第６３９３５３４号では、要求同時発生時のメモリ競合を回避するスケジューラ回路が提供されている。しかしながら、このスケジューラ回路はＲＤＲＡＭでのみ適用可能であり、組み込みＤＲＡＭでは適用可能でない。また、実装及び統合の複雑さが高すぎる。米国特許第６９６７８８５号は、分散行アドレス・カウンタを用いた同時リフレッシュ・モードをサポートする組み込みＤＲＡＭを提供する。６５ｎｍ世代技術では、前記リフレッシュ・モードは、１ＧＨｚの周波数を達成することができる。前記特許に係る技術は、組み込みＤＲＡＭの内部に行アドレス・カウンタを追加することによって実施されるものであり、組み込みＤＲＡＭ自体に修正を施すものである。この特許に基づき、本発明では、組み込みＤＲＡＭの外部にリフレッシュ・コントローラを追加することによってＣＣＲリフレッシュを制御する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許第６３９３５３４号
【特許文献２】米国特許第６９６７８８５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、様々なリフレッシュ・モードのリフレッシュ動作を制御し、メモリ・バンクの競合を解消又は回避する、柔軟な組み込みＤＲＡＭ用リフレッシュ・コントローラを提供することである。
【課題を解決するための手段】
【０００７】
この目的のために、本発明の第１の態様によれば、組み込みＤＲＡＭ用リフレッシュ・コントローラであって、外部アクセス信号を受信し、リフレッシュ・イネーブル信号ＲＥＦＮ、リフレッシュ・アドレス信号ＣＲＡ、及び競合（コンフリクション）信号を生成し、前記リフレッシュ・イネーブル信号ＲＥＦＮ及び前記リフレッシュ・アドレス信号ＣＲＡを、複数のメモリ・バンク・グループを含む前記組み込みＤＲＡＭに送信するように構成され、リフレッシュ間隔及びクロック・サイクルに従って前記リフレッシュ・イネーブル信号ＲＥＦＮ及び最終リフレッシュ信号ｌａｓｔ＿ｃｃｒを生成するように構成されたステータス制御モジュールと、前記複数のメモリ・バンク・グループから、前記リフレッシュ間隔中にリフレッシュすべき少なくとも１つのメモリ・バンク・グループを検索し、前記外部アクセス信号及び検索された前記メモリ・バンク・グループに従って前記リフレッシュ・アドレス信号ＣＲＡを生成するように構成されたリフレッシュ検索モジュールと、前記リフレッシュ・アドレス信号ＣＲＡ及び前記外部アクセス信号に従って前記複数のメモリ・バンク・グループのそれぞれのステータスを記録するように構成されたスコアボード・モジュールと、前記外部アクセス信号、最終リフレッシュ信号ｌａｓｔ＿ｃｃｒ、及び前記メモリ・バンクのそれぞれの前記ステータスに従って前記競合信号を生成するように構成された競合検出モジュールと、を備えるリフレッシュ・コントローラが提供される。
【０００８】
本発明の第２の態様によれば、複数のメモリ・バンク・グループを備える組み込みＤＲＡＭのリフレッシュ制御方法であって、外部アクセス信号を受信するステップと、各リフレッシュ間隔中のクロック・サイクルに従ってリフレッシュ・イネーブル信号ＲＥＦＮ及び最終リフレッシュ信号ｌａｓｔ＿ｃｃｒを生成するステップと、前記複数のメモリ・バンク・グループから、前記リフレッシュ間隔中にリフレッシュすべき少なくとも１つのメモリ・バンク・グループを検索し、前記外部アクセス信号及び検索された前記メモリ・バンク・グループに従ってリフレッシュ・アドレス信号ＣＲＡを生成するステップと、前記リフレッシュ・アドレス信号ＣＲＡ及び外部アクセス信号に従って前記複数のメモリ・バンク・グループのそれぞれのステータスを記録するステップと、前記外部アクセス信号、最終リフレッシュ信号ｌａｓｔ＿ｃｃｒ、及び前記メモリ・バンクのぞれぞれのステータスに従って競合信号を生成するステップと、前記リフレッシュ・イネーブル信号ＲＥＦＮ及びリフレッシュ・アドレス信号ＣＲＡを前記組み込みＤＲＡＭに送信するステップと、を含むリフレッシュ制御方法が提供される。
【０００９】
本発明に係るリフレッシュ・コントローラ及び制御方法は、シングルＣＣＲ、デュアルＣＣＲ、クワッドＣＣＲ、及び様々なパイプライン動作の様々な組合せに適用可能であり、高い柔軟性及び構成可能性を実現する。本発明に係るコントローラ及び制御方法は、リフレッシュ・モード毎に単純且つ効率的なリフレッシュ制御を実行することができ、その結果、アクセス及びリフレッシュに起因する競合を回避することができる。
【００１０】
以下では、添付図面と併せて本発明の諸実施形態について説明する。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るリフレッシュ・コントローラのシステム構造を示す図である。
【図２】ステータス制御モジュール１２のワークフローを示す図である。
【図３】リフレッシュ検索モジュール１３の例示的な構造を示す図である。
【図４】スコアボード・モジュール１４内の任意のスコアボードＸのワークフローを示す図である。
【図５】競合検出モジュール１５のワークフローを示す図である。
【図６】図１のリフレッシュ・コントローラのリフレッシュ・ワークフローを示す図である。
【図７】図６のリフレッシュ・フローにおけるクロック・シーケンス図である。
【発明を実施するための形態】
【００１２】
以下では添付図面を参照して、本発明の実装形態を特定の実施形態と共に説明する。
【００１３】
図１は、本発明の一実施形態に係るリフレッシュ・コントローラのシステム構造を示す。図１のリフレッシュ・コントローラは、全体的に参照符号１００で示される。組み込みＤＲＡＭに接続したコントローラ１００は、メモリ・バンク宛て読出し／書込み信号ｂａｉを外部から受信し、リフレッシュ・イネーブル信号（ｒｅｆｒｅｓｈ  ｅｎａｂｌｉｎｇ  ｓｉｇｎａｌ）ＲＥＦＮ、ＣＣＲリフレッシュ・アドレス信号（ＣＣＲ  ｒｅｆｒｅｓｈ  ａｄｄｒｅｓｓ  ｓｉｇｎａｌ）ＣＲＡ、及び競合信号（ｃｏｎｆｌｉｃｔｉｏｎ  ｓｉｇｎａｌ）を生成するように構成される。生成されたリフレッシュ・イネーブル信号ＲＥＦＮ及びＣＣＲリフレッシュ・アドレス信号ＣＲＡは、組み込みＤＲＡＭに送信され、当該組み込みＤＲＡＭのリフレッシュ制御を実現するのに利用される。競合信号は、読出し／書込み要求を開始した部分に競合の発生を知らせるために当該部分に送り返される。前記組み込みＤＲＡＭは、前記組み込みＤＲＡＭの様々な構成及びリフレッシュ・モードに従って複数のメモリ・バンク・グループに分割される複数のメモリ・バンクを備える。例えば、各メモリ・バンク・グループは、シングルＣＣＲモードでは１つのメモリ・バンクに対応し、デュアルＣＣＲモードでは、各リフレッシュ・サイクル中に２つのメモリ・バンクがリフレッシュされる故に２つのメモリ・バンクを含み、クワッドＣＣＲモードでは、４つのメモリ・バンクを含む。
【００１４】
より具体的には、外部アクセス信号ｂａｉは、読出し要求信号であることも書込み要求信号であることもあり、アクセスすべきメモリ・バンクのアドレスを示すものである。リフレッシュ・イネーブル信号ＲＥＦＮは、組み込みＤＲＡＭが現在リフレッシュ状態にあるのか否かをそれぞれ示す２つのステータスを有する。ＣＣＲリフレッシュ・アドレス信号ＣＲＡは、リフレッシュすべきメモリ・バンク・グループのアドレスを示す。ＲＥＦＮ信号とＣＲＡ信号とを組み合わせることにより、組み込みＤＲＡＭがリフレッシュ中であるのかどうか、及びどのメモリ・バンク・グループをリフレッシュすべきかに関する情報を示すことができる。
【００１５】
上記の各信号を生成及び処理するために、コントローラ１００は、図示のとおり、ステータス制御モジュール１２と、リフレッシュ検索モジュール１３と、スコアボード・モジュール１４と、競合検出モジュール１５とを備える。
【００１６】
ステータス制御モジュール１２は、リフレッシュ間隔及びクロック・サイクルを監視し、それに従ってリフレッシュ・イネーブル信号ＲＥＦＮ及び最終リフレッシュ信号（ｌａｓｔ  ｒｅｆｒｅｓｈ  ｓｉｇｎａｌ）ｌａｓｔ＿ｃｃｒを生成するために提供される。リフレッシュ検索モジュール１３は、複数のメモリ・バンク・グループからリフレッシュすべきメモリ・バンク・グループを検索し、外部アクセス信号ｂａｉ及び検索されたメモリ・バンク・グループに従ってＣＣＲリフレッシュ・アドレス信号ＣＲＡを生成するために提供される。スコアボード・モジュール１４は、ＣＣＲリフレッシュ・アドレス信号ＣＲＡ及び外部アクセス信号ｂａｉに従って各メモリ・バンク・グループのステータスを記録するために提供される。競合検出モジュール１５は、外部アクセス信号ｂａｉ、最終リフレッシュ信号ｌａｓｔ＿ｃｃｒ、及び各メモリ・バンクのステータスに従って競合信号を生成するために提供される。
【００１７】
以下では、リフレッシュ動作の具体例と共にコントローラ１００内の各モジュールのワークフローについて説明する。
【００１８】
一例では、６５ｎｍ技術によるＣｕ６５タイプの組み込みＤＲＡＭに関して、各メモリ・セルのデータ保持時間はｔＲＥＦ＝４０，９６０ｎｓと仮定する。このシステムのクロック・サイクルは、ｔＣＫ＝３ｎｓである。前記組み込みＤＲＡＭ内のメモリ・バンク数はＮ＿ＢＡＮＫＳ＝８であり、それ故、シングルＣＣＲモードでは、メモリ・バンク・グループの数Ｎ＿ＢＧも８であり、各メモリ・バンク内の行数はＭ＝２５６となる。各メモリ・セル内のデータが損失しないことを保証するために、各メモリ・バンク内の各行は、保持時間ｔＲＥＦ内に少なくとも１回リフレッシュしなければならない。即ち、各メモリ・バンクについて、連続する２つのリフレッシュ動作間の平均間隔がｔＲＥＦ／ｔＣＫ／Ｍクロック・サイクルを超えないようにする必要がある。しかしながら、メモリ・バンクのリフレッシュ動作は必ずしも常に同じ順序で実行されるとは限らないので、あるメモリ・バンクがあるリフレッシュ間隔で最初にリフレッシュされたとしても、次のリフレッシュ間隔では最後にリフレッシュされる可能性もある。上記の最悪条件下でも各メモリ・バンクが適時にリフレッシュされ得ることを保証するために、リフレッシュ間隔をｔＲＥＦ／ｔＣＫ／Ｍ−Ｎ＿ＢＧクロック・サイクルに設定することができる。即ち、上記の例において、リフレッシュ間隔は、Ｎ＿ＲＦＣ＝ｔＲＥＦ／ｔＣＫ／Ｍ−Ｎ＿ＢＧ＝４５クロック・サイクルに設定される。当業者なら、このような手法はリフレッシュ間隔を設定する唯一の手法ではなく、また、メモリ・セルの適時リフレッシュを保証する上でより短いリフレッシュ間隔が適用され得ることを理解するだろう。
【００１９】
次に図２を参照して、リフレッシュ間隔をＮ＿ＲＦＣと仮定したステータス制御モジュール１２のワークフローについて説明する。一般に、リフレッシュ動作ができるだけ早く完了することを保証するために、各リフレッシュ間隔の開始時にメモリ・バンク・グループのリフレッシュを開始すること、具体的には各クロック・サイクルの開始時に新しいメモリ・バンク・グループのリフレッシュを開始することが組み込みＤＲＡＭに指示されるような方法で、ステータス制御モジュール１２は、リフレッシュ・イネーブル信号ＲＥＦＮ及び最終リフレッシュ信号ｌａｓｔ＿ｃｃｒをクロック・シーケンスに基づいて生成する。ＲＥＦＮ信号には、第１のステータスと第２のステータスの２つのステータスが存在する。ここで、第１のステータスＲＥＦＮ（０）は、組み込みＤＲＡＭが現在リフレッシュ中の状態にあることを示し、第２のステータスＲＥＦＮ（１）は、組み込みＤＲＡＭがリフレッシュ中でないことを示すものと仮定する。ｌａｓｔ＿ｃｃｒ信号にも２つのステータスが存在し、第１のステータスｌａｓｔ＿ｃｃｒ（０）は、リフレッシュすべきメモリ・バンク・グループが２つ以上存在することを示し、第２のステータスｌａｓｔ＿ｃｃｒ（１）は、現在のリフレッシュ・サイクル中にリフレッシュすべきメモリ・バンク・グループが１つだけ残っていることを示すものと仮定する。具体的には、第１のステータス及び第２のステータスが０で示されるのかそれとも１で示されるのかは、具体的な回路実装形態に関係する。以下の記載内容は、上記の仮定に基づく。
【００２０】
図２に示されるように、まずステップ２０で、信号ＲＥＦＮと信号ｌａｓｔ＿ｃｃｒは共に第１のステータスにセットされる。これは、新しいリフレッシュ間隔が開始したときにメモリ・バンクのリフレッシュが開始され、現時点でリフレッシュすべきメモリ・バンクが２つ以上存在する場合の、新しいリフレッシュ間隔の開始時点の初期設定である。なお、ステップ２０では、クロック・サイクルをカウントするカウンタｉ＿ＲＦＣが提供される。ステップ２０では、ｉ＿ＲＦＣも新しいリフレッシュ間隔を示す０にセットされる。
【００２１】
次にステップ２１で、クロック・サイクルの増加に伴ってｉ＿ＲＦＣが１だけ増加する。
【００２２】
次にステップ２２で、ｉ＿ＲＦＣと、あるリフレッシュ間隔Ｎ＿ＲＦＣ内のクロック数との比較が実行される。結果が等しければ、現在のリフレッシュ間隔の終了が示され、ステップ２０に戻って次の新しいリフレッシュ間隔に移行する。結果が等しくなければ、現在のリフレッシュ間隔が終了していないことが示され、処理はステップ２３に進む。
【００２３】
ステップ２３で、ｉ＿ＲＦＣと、組み込みＤＲＡＭ内のメモリ・バンク・グループの数Ｎ＿ＢＧとの関係が判定される。この場合、シングルＣＣＲでは、メモリ・バンク・グループの数Ｎ＿ＢＧはメモリ・バンク数Ｎ＿ＢＡＮＫＳと等しくなり、デュアルＣＣＲでは、各メモリ・バンク・グループはそれぞれ２つのメモリ・バンクを含み、Ｎ＿ＢＧ＝Ｎ＿ＢＡＮＫＳ／２となり、クワッドＣＣＲでは、Ｎ＿ＢＧ＝Ｎ＿ＢＡＮＫ／４となる。ステータス制御モジュール１２は各クロック・サイクルの開始時に１つのメモリ・バンク・グループのリフレッシュを開始することから、ｉ＿ＲＦＣがＮ＿ＢＧ以上となった場合は、すべてのメモリ・バンクがリフレッシュされ、新たなリフレッシュは必要ないものと結論付けることができる。したがって、ステップ２４で、ＲＥＦＮは第２のステータスにセットされ、ｌａｓｔ＿ｃｃｒは第１のステータスのままとなる。次にステップ２１に戻り、現在のリフレッシュ間隔の終了までクロック・カウントが継続される。ｉ＿ＲＦＣがＮ＿ＢＧ未満となった場合は、ステップ２５に進む。
【００２４】
ステップ２５で、ｉ＿ＲＦＣとＮ＿ＢＧ−１とが比較される。結果が等しければ、リフレッシュが終了していないことが示され、また、リフレッシュされずに残っているメモリ・バンク・グループは最後の１つであることが示される。したがって、ステップ２６で、ｌａｓｔ＿ｃｃｒは第２のステータスにセットされ、ＲＥＦＮ信号は第１のステータスのままとなる。結果が等しくない場合は、ステップ２７でＲＥＦＮとｌａｓｔ＿ｃｃｒが共に第１のステータスにセットされる。ステップ２６とステップ２７はどちらもステップ２１に進んで、現在のリフレッシュ間隔の終了までクロック・カウントが実行される。
【００２５】
図２のフローチャートによれば、ステータス制御モジュール１２は、クロック・シーケンスに基づいてリフレッシュ・イネーブル信号ＲＥＦＮ及び最終リフレッシュ信号ｌａｓｔ＿ｃｃｒを生成し、信号ＲＥＦＮを組み込みＤＲＡＭに送信し、信号ｌａｓｔ＿ｃｃｒをリフレッシュ検索モジュール１３及び競合検出モジュール１５に送信する。
【００２６】
リフレッシュ検索モジュール１３は、外部アクセス信号ｂａｉ及び最終リフレッシュ信号ｌａｓｔ＿ｃｃｒを受信し、二重検索（ｄｏｕｂｌｅ  ｓｅａｒｃｈ）モードに基づいてリフレッシュすべきメモリ・バンク・グループを検索し、ＣＣＲリフレッシュ・アドレス信号ＣＲＡを生成する。図３は、リフレッシュ検索モジュール１３の例示的な構造を示す。
【００２７】
図３に示されるように、リフレッシュ検索モジュール１３は、第１の検索モジュール３１と、第２の検索モジュール３２と、比較器３３と、マルチプレクサＭＵＸ  ３４とを備える。特定の一実施形態において、第１の検索モジュール３１は、順方向検索モジュールであり、第２の検索モジュール３２は、逆方向検索モジュールである。これらはいずれもスコアボード・モジュール１４とリンクされており、それぞれメモリ・バンク・グループＸ及びＹを順方向及び逆方向に検索する。即ち、メモリ・バンク・グループの双方向検索を実行する。リフレッシュすべきメモリ・バンク・グループが１つだけ残っている場合は、Ｘ＝Ｙとなる。
【００２８】
双方向検索は、以下のように実施することができる。Ｎ＿ＢＧ個のメモリ・バンク・グループは、０，１，．．．，Ｎ＿ＢＧ−１として示される。順方向検索モジュールによって検索されるメモリ・バンク・グループのシーケンス番号は、Ｘ＝０に初期化され、逆方向検索モジュールによって検索されるメモリ・バンク・グループのシーケンス番号は、Ｙ＝Ｎ＿ＢＧ−１に初期化される。後続の各クロック・サイクルでは、それ以前のサイクルでリフレッシュされたメモリ・バンク・グループがどちらの探索モジュールから選択されたものであるかが確認される。該メモリ・バンク・グループが順方向検索モジュールから選択された場合には、Ｘ＝Ｘ＋１とし、Ｙは変更されず、逆方向検索モジュールから選択された場合には、Ｙ＝Ｙ−１とし、Ｘは変更されない。Ｘ及びＹは常に一定の方向に変化（増加又は減少）することから、リフレッシュすべきメモリ・バンク・グループは両端から順次検索され、そのため、各メモリ・バンク・グループが１つのリフレッシュ間隔内に一度だけリフレッシュされることが保証される。
【００２９】
第１の検索モジュール及び第２の検索モジュールは、リフレッシュすべきメモリ・バンク・グループの順次検索が可能である限り、他の検索アルゴリズムを利用した二重検索を実施することもできることが理解されるだろう。例えば、第１の検索モジュールは、奇数シーケンス番号のメモリ・バンク・グループを検索し、第２の検索モジュールは、偶数シーケンス番号のメモリ・バンク・グループを検索する。あるいは、以下のように検索を実施することもできる。第１の検索モジュールによって検索されるメモリ・バンク・グループのシーケンス番号をＸ＝１に初期化し、第２の検索モジュールによって検索されるメモリ・バンク・グループのシーケンス番号をＹ＝０に初期化する。後続の各クロック・サイクルでは、Ｘ＝Ｘ＋１とし、それ以前のサイクルでリフレッシュされたメモリ・バンク・グループがどちらの探索モジュールから選択されたものであるかを確認する。該メモリ・バンク・グループが第１の検索モジュールから選択された場合には、Ｙは変更せず、第２の検索モジュールから選択された場合には、Ｙ＝Ｘ−１、即ち、Ｙがそれ以前のサイクルのＸ、即ちリフレッシュ・プロセスの対象から外されたメモリ・バンク・グループと等しくなるようにする。当業者なら各自の必要に応じて様々なアルゴリズムを利用して上記の二重検索プロセスを実施することができるだろう。
【００３０】
第１の検索モジュール３１及び第２の検索モジュール３２がそれぞれリフレッシュすべきメモリ・バンク・グループＸ及びＹを検索した後、それらの２つのメモリ・バンク・グループＸ及びＹはマルチプレクサＭＵＸ  ３４に送信され、メモリ・バンク・グループＸは同時に比較器３３にも送信される。比較器３３は、外部アクセス信号ｂａｉとメモリ・バンク・グループＸとを比較し、比較信号を生成し、当該比較信号をＭＵＸ  ３４の制御信号としてＭＵＸ  ３４に出力する。具体的には、比較器３３は、信号ｂａｉによって示されるメモリ・バンク・アドレスがメモリ・バンク・グループＸに属するかどうかを判定する。比較器３３は、「ｎｏ」の結果が出た場合には、ＭＵＸ  ３４を制御してＸ及びＹからＸを出力として選択させる第１のステータスの比較信号を生成し、ｂａｉによって示されるメモリ・バンク・アドレスがメモリ・バンク・グループＸに属する場合には、ＭＵＸ  ３４を制御してＸ及びＹからＹを出力として選択させる第２のステータスの比較信号を生成する。ＭＵＸ  ３４からの出力信号（Ｘ又はＹ）は、次のクロック・サイクル中にリフレッシュすべきメモリ・バンク・グループを示すリフレッシュ・アドレス信号ＣＲＡの働きをする。このリフレッシュ・アドレス信号ＣＲＡは、該信号によって示されるメモリ・バンク・グループをリフレッシュするよう組み込みＤＲＡＭに命令するために出力される。一方、この信号は、スコアボード・モジュール１４及び競合検出モジュール１５にも送信される。
【００３１】
スコアボード・モジュールは、各メモリ・バンク・グループのステータスを記録するために提供される。一実施形態において、スコアボード・モジュール１４は、スコアボード０、スコアボード１、．．．、スコアボードＮ＿ＢＧ−１を備える。即ち、各スコアボードはそれぞれ１つのメモリ・バンク・グループに対応し、当該メモリ・バンク・グループのステータスを記録する。一例では、各スコアボードはカウンタによって実現される。カウントが０であるときは、対応するメモリ・バンク・グループＸがフリー・ステータス（ｆｒｅｅ  ｓｔａｔｕｓ）にあることが示され、カウントが０でないときは、対応するメモリ・バンク・グループが何らかの処理を実行していることが示される。
【００３２】
図４は、スコアボード・モジュール１４内の任意のスコアボードＸのワークフローを示す。まずステップ４１で、スコアボードＸのカウントｓｃｏｒｅ［Ｘ］がリフレッシュ間隔の開始時点で０にセットされる。次にステップ４２で、メモリ・バンク・グループＸがリフレッシュ対象であるのかそれともアクセス対象であるのかが判定される。この判定ステップは、メモリ・バンク・グループＸと、外部アクセス信号ｂａｉ及びＣＣＲリフレッシュ・アドレス信号ＣＲＡとを比較することによって実行することができる。ｂａｉによって示されるアドレスがメモリ・バンク・グループＸに属する場合には、グループＸはアクセス対象となる。ＣＲＡによって示されるアドレスがメモリ・バンク・グループＸである場合には、Ｘはリフレッシュ対象となる。
【００３３】
係る比較の結果、メモリ・バンク・グループＸがリフレッシュ対象又はアクセス対象であることが示された場合は、ステップ４３が実行され、スコアボードＸのカウントｓｃｏｒｅ［Ｘ］がＳ−１にセットされる。ここで、Ｓはパイプラインのステージ・レベル数に相当する。つまり、２ステージ・パイプライン動作ではＳ＝２となり、ステップ４３でｓｃｏｒｅ［Ｘ］が１にセットされ、４ステージ・パイプライン動作ではＳ＝４となり、ｓｃｏｒｅ［Ｘ］が３にセットされることになる。次にステップ４２に戻り、次のクロック・サイクルの判定が行われる。
【００３４】
ステップ４２の判定結果により、メモリ・バンク・グループＸが次のクロック・サイクルのリフレッシュ対象でもアクセス対象でもないことが示された場合は、ステップ４４に進んでｓｃｏｒｅ［Ｘ］が０であるかどうかが判定される。ｓｃｏｒｅ［Ｘ］が０である場合には、ステップ４５が実行され、ｓｃｏｒｅ［Ｘ］の現在値が維持され、その後ステップ４２に戻って次のクロック・サイクルの判定が継続される。ｓｃｏｒｅ［Ｘ］が０でない場合には、ステップ４６でｓｃｏｒｅ［Ｘ］が１だけ減少される。即ちｓｃｏｒｅ［Ｘ］＝ｓｃｏｒｅ［Ｘ］−１となる。次にステップ４２に戻り、次のクロック・サイクルの判定が継続される。
【００３５】
上記のワークフローは、メモリ・バンク・グループがリフレッシュ対象又はアクセス対象である場合には、対応するスコアボード・カウントがＳ−１にセットされ、スコアボード・カウントが現時点で０でない場合には、その値が各クロック・サイクルにおいて１ずつ減少されることを意味する。というのも、Ｓステージ・パイプライン動作では各動作がＳクロック・サイクル内に完了するからである。あるメモリ・バンク・グループが動作を開始したときに対応するスコアボード・カウントをＳ−１にセットすることにより、それに対応するメモリ・バンク・グループが動作状態に入ったことが示される。その後、０でない各スコアボード・カウントは、各サイクルにおいて１ずつ減少される。これにより、各メモリ・バンク・グループが動作状態（ｓｃｏｒｅ［Ｘ］＝Ｓ−１）に入ってからアイドル状態（ｓｃｏｒｅ［Ｘ］＝０）に戻るまでに必然的にＳ個のクロック・サイクルを経ることが保証される。前記Ｓ個のクロック・サイクルにおいて、対応するメモリ・バンク・グループは動作状態に維持される。１ステージ・パイプライン動作、即ちＳ＝１の場合では、スコアボード・カウントは常に０となる。即ち、この場合スコアボードは機能しないことになる。
【００３６】
上述のスコアボード・モジュール１４によって記録されている各メモリ・バンク・グループのステータスと、外部アクセス信号のターゲット・メモリ・バンクｂａｉと、ＣＣＲリフレッシュ・アドレス信号ＣＲＡとに基づいて、競合検出モジュール１５は、競合が発生しているかどうかを検出し、競合信号を生成することができる。図５は、競合検出モジュール１５のワークフローを示す。
【００３７】
図５に示されるように、ステップ５０で、競合検出モジュール１５は、メモリ・バンクｂａｉに対する読出し／書込み動作を要求する外部アクセス信号を受信する。次にステップ５１で、メモリ・バンクｂａｉに対応するスコアボード・カウントが０であるかどうかを判定する。前記カウントが０であれば、当該メモリ・バンクに対する先行動作がまだ完了しておらず、それ故、当該メモリ・バンクは動作状態にありアクセス可能でないことが示される。したがって、ステップ５２を実行して競合信号が生成され、即ち、ｃｏｎｆｌｉｃｔが１にセットされる。前記カウントが０であれば、当該メモリ・バンクはアイドル状態にあり、アクセス可能である。次にステップ５３で更なる判定が実行される。
【００３８】
ステップ５３では、ｌａｓｔ＿ｃｃｒが第２のステータスにあるかどうかが判定される。上述のとおり、ｌａｓｔ＿ｃｃｒが第１のステータスにあるときは、リフレッシュすべきメモリ・バンク・グループが２つ以上存在することになる。係る状態では、リフレッシュに際しアクセス信号と競合しないバンク・グループを常に発見することが可能である。したがって、ｌａｓｔ＿ｃｃｒが第１のステータスと判定された場合には、ステップ５４が実行され、ｃｏｎｆｌｉｃｔ＝０となり、即ち競合が想定されないため、メモリ・バンクｂａｉへのアクセスが許可される。ｌａｓｔ＿ｃｃｒが第２のステータスにあるときは、現在のリフレッシュ間隔中にリフレッシュすべきメモリ・バンク・グループが１つだけ存在することになる。係る状態では、競合が発生する可能性があるため、ステップ５５に進んで更なる判定が実行される。
【００３９】
ステップ５５で、アクセス対象のメモリ・バンクｂａｉがリフレッシュ対象のメモリ・バンク・グループ、即ち、信号ＣＲＡによって示されるメモリ・バンク・グループに属するかどうかが判定される。ｂａｉが前記メモリ・バンク・グループに属さない場合には、競合は発生せず、ステップ５４が実行される。ｂａｉがＣＲＡによって示されるメモリ・バンク・グループに属する場合には、ｌａｓｔ＿ｃｃｒが第２のステータスにあることから、当該メモリ・バンク・グループが唯一のリフレッシュ対象であることが示され、アクセスとリフレッシュの間で競合が発生する。係る状態では、ステップ５６が実行される。即ち競合信号が生成される。
【００４０】
１ステージ・パイプライン動作では、上述のとおり各スコアボードのカウントは常に０となる。そのため、ステップ５１の判定結果は常に「ｙｅｓ」となる。換言すると、１ステージ・パイプライン動作では各動作が単一のクロック・サイクル内に完了するため、先行動作が実行されているアクセス対象のメモリ・バンクに起因する競合が発生することはない。したがって、１ステージ・パイプライン動作ではステップ５１及び５２を省略することができ、処理を直接ステップ５３から始めて判定を開始することができる。
【００４１】
ＣＣＲリフレッシュでは、メモリ・セルにデータを保持するために、リフレッシュ動作の優先順位はアクセス動作よりも高くなる。したがって、競合信号が生成されたとき、即ちｃｏｎｆｌｉｃｔ＝１のときは、アクセス要求を開始した部分に対して競合信号が送り返され、競合がそれ以上生じなくなるまで当該アクセス要求を遅延させるように前記部分に知らせる
【００４２】
以上、ステータス制御モジュール１２、リフレッシュ検索モジュール１３、スコアボード・モジュール１４、及び競合検出モジュール１５のワークフローについてそれぞれ説明した。次に図６を参照して、リフレッシュ・コントローラ・システムのリフレッシュ・ワークフローについて説明する。
【００４３】
図６は、図１のリフレッシュ・コントローラのリフレッシュ・ワークフローを示す。図６に示されるように、最初のステップ６０で、リフレッシュ・コントローラはアイドル状態にある。次に実行されるステップは、リフレッシュ・イネーブル信号ＲＥＦＮ及び最終リフレッシュ信号ｌａｓｔ＿ｃｃｒに従って選択される。上述のとおり、信号ＲＥＦＮと信号ｌａｓｔ＿ｃｃｒは共に、図２に示されるそれぞれの特定の生成プロセスに従ってステータス制御モジュール１２によって生成される。生成された信号ＲＥＦＮに関しては、ステップ６１で、当該ＲＥＦＮが第２のステータスにあるかどうかが判定される。ＲＥＦＮが第２のステータス（１）である場合には、組み込みＤＲＡＭがリフレッシュ状態にないことが示される。したがって、リフレッシュ・コントローラは、前記組み込みＤＲＡＭに対してリフレッシュ制御を実行する必要がなく、単にステップ６０に戻ってアイドル状態を維持するだけでよい。ＲＥＦＮが第１のステータス（０）である場合には、組み込みＤＲＡＭがリフレッシュ状態にあることが示され、リフレッシュ・コントローラは、当該組み込みＤＲＡＭに対してリフレッシュ制御を実行しなければならない。そのため、コントローラはステップ６２に進んで更なる判定を実行する。
【００４４】
ステップ６２で、リフレッシュ・コントローラは、最終リフレッシュ信号ｌａｓｔ＿ｃｃｒが第２のステータス（１）にあるかどうかを判定する。ｌａｓｔ＿ｃｃｒが第２のステータスにない場合には、現在のリフレッシュ間隔中にリフレッシュすべきメモリ・バンク・グループが依然として複数存在することが示される。したがって、コントローラはステップ６３に進み、二重検索モードを使用してリフレッシュすべき２つのメモリ・バンク・グループＸ及びＹを検索する。次にステップ６４で、外部アクセス信号によって示されるメモリ・バンクｂａｉがメモリ・バンク・グループＸに属するかどうかが判定される。ｂａｉがメモリ・バンク・グループＸに属する場合には、ステップ６５が実行され、Ｙが次にリフレッシュすべきメモリ・バンク・グループとして設定される。即ち、ＣＣＲリフレッシュ・アドレス信号ＣＲＡがメモリ・バンク・グループＹを示すようになる。一方、メモリ・バンク・グループＹに対応するスコアボードのカウントｓｃｏｒｅ［Ｙ］は、Ｓ−１にセットされる。ここで、Ｓはパイプラインのステージ数に相当する。ｂａｉがメモリ・バンク・グループＸに属さない場合には、ステップ６６が実行され、Ｘが次にリフレッシュすべきメモリ・バンク・グループとして設定される。即ち、ＣＣＲリフレッシュ・アドレス信号ＣＲＡがメモリ・バンク・グループＸを示すようになる。一方、メモリ・バンク・グループＸに対応するスコアボードのカウントｓｃｏｒｅ［Ｘ］は、Ｓ−１にセットされる。ここで、ステップ６３〜６６の検索及び判定処理は、リフレッシュ検索モジュール１３によって実行される。スコアボード・カウントをＳ−１にセットする意義は、図４のスコアボードのワークフローを参照すれば理解されるだろう。
【００４５】
ステップ６２の判定結果でｌａｓｔ＿ｃｃｒが第２のステータスにあることが示された場合には、現在のリフレッシュ間隔中にリフレッシュすべきメモリ・バンク・グループが１つだけ存在することが示される。係る状態では、コントローラはステップ６７に進んで二重検索を実行し、唯一のリフレッシュ対象のメモリ・バンク・グループを検索する。次にステップ６８で、前記メモリ・バンク・グループが次にリフレッシュすべきメモリ・バンク・グループとして設定される。即ち、ＣＣＲリフレッシュ・アドレス信号ＣＲＡが前記メモリ・バンク・グループを示すようになる。一方、前記メモリ・バンク・グループに対応するスコアボードのカウントは、Ｓ−１にセットされる。ステップ６７及び６８の検索処理も同様に、リフレッシュ検索モジュール１３によって実行される。
【００４６】
上記のワークフローと同時に、競合検出モジュール１５は、図５に示される判定方法を用いて、外部アクセス信号ｂａｉ、ＣＣＲリフレッシュ・アドレス信号ＣＲＡ、及びスコアボード・モジュールについて記録されているステータスに従って、競合が発生するかどうかを判定する。競合が発生する場合は、競合検出モジュール１５は、アクセス要求を開始した部分に対して、競合がそれ以上発生しなくなるまで前記アクセス要求を遅延させることを競合信号の形で知らせる。そのため、リフレッシュ・フローの観点から、ステップ６７でリフレッシュすべきメモリ・バンク・グループが検索されるとすぐに、当該メモリ・バンク・グループに対してリフレッシュを実行することができるようになる。競合検出モジュール１５がアクセス要求を遅延させることによってアクセス競合が回避されるので、リフレッシュの順序はそのような競合の影響を受けることはない。
【００４７】
図７は、リフレッシュ・フローのクロック・シーケンス図である。図７には、リフレッシュ・イネーブル信号ＲＥＦＮ、ＣＣＲリフレッシュ・アドレス信号ＣＲＡ、及び最終リフレッシュ信号ｌａｓｔ＿ｃｃｒの変化の様子がクロックと共に示されていることが分かるだろう。
【００４８】
具体的には、図７に示されるように、時間が複数のリフレッシュ間隔に分割され、各リフレッシュ間隔はＮ＿ＲＦＣのクロック・サイクルを含む。リフレッシュ・コントローラは、信号ＲＥＦＮ及びＣＲＡを利用して各リフレッシュ間隔の開始時に組み込みＤＲＡＭにメモリ・バンク・グループのリフレッシュを開始させ、リフレッシュ動作を可能な限り早く完了させるように制御する。したがって、各リフレッシュ間隔中のクロック・サイクル０からクロック・サイクルＮ＿ＢＧ−１までの間、各クロック・サイクル内に新しいメモリ・バンク・グループのリフレッシュが開始される。この期間中、信号ＲＥＦＮは、組み込みＤＲＡＭがリフレッシュ状態にあることを示すために低電圧状態、即ちＲＥＦＮ＝０（第１のステータス）となる。
【００４９】
ＲＥＦＮが低電圧状態にある期間中も、双方向検索を利用してリフレッシュ・アドレスが信号ＣＲＡで指示されるので、リフレッシュ検索モジュールは、メモリ・バンク・グループの検索を継続する。その結果、ＣＲＡ信号で指示されるメモリ・バンク・グループの数は、Ｎ＿ＢＧクロック・サイクル中にすべてのメモリ・バンク・グループがリフレッシュされるまで途切れなく変化することが図から分かるだろう。０番のメモリ・バンク・グループは１つ目のリフレッシュ間隔では最初にリフレッシュされるが、２つ目のリフレッシュ間隔では最後にリフレッシュされることが図から分かるだろう。上述のとおり、これは想定され得る最悪の条件である。この条件により、１つのリフレッシュ間隔中のクロック・サイクル数は、当初の数からメモリ・バンク・グループの数だけ減少させる必要がある。
【００５０】
全体のリフレッシュ間隔において、最終リフレッシュ信号ｌａｓｔ＿ｃｃｒが高電圧状態、即ちｌａｓｔ＿ｃｃｒ＝１（第２のステータス）となるのは１つのクロック・サイクル、即ちＮ＿ＢＧ番目のクロック・サイクルのみである。これは、現在のリフレッシュ間隔中にリフレッシュすべきメモリ・バンク・グループが１つだけ残っていることを意味する。
【００５１】
上記の競合検出フローから、ｌａｓｔ＿ｃｃｒ＝１（第２のステータス）であり、且つアクセス対象のメモリ・バンクｂａｉが次のリフレッシュ対象となるメモリ・バンク・グループＣＲＡに属する場合にだけ、アクセスとリフレッシュの競合が生じることが分かるだろう。更に、図７のフローチャートから、ｌａｓｔ＿ｃｃｒ＝１（第２のステータス）となる確率は１／Ｎ＿ＲＦＣである。それ故、組み込みＤＲＡＭ内のメモリ・バンクがクロック単位で順次アクセスされる場合、アクセスとリフレッシュの競合確率は、最大１／Ｎ＿ＲＦＣと結論付けられる。
【００５２】
上述の各実施形態において、リフレッシュ・コントローラ及びその各種モジュール及び要素は主に、集積回路又はゲート・アレイ、トランジスタのような半導体、あるいはプログラマブル・ゲート・アレイやプログラマブル論理装置のようなハードウェア回路によって実現される。本発明のリフレッシュ・コントローラ及び各方法は、１ステージ・パイプライン動作、２ステージ・パイプライン動作、４ステージ・パイプライン動作、ならびにシングルＣＣＲ、デュアルＣＣＲ、クワッドＣＣＲの各動作モードの様々な組合せに適用可能であり、高い柔軟性及び構成可能性を実現することが理解されるだろう。
【００５３】
以上、本発明の諸実施形態を具体例と共に説明した。しかしながら、本発明は上記で詳述した各実施形態に限定されるものではない。各実施形態には、本発明の趣旨及び範囲から逸脱しない限り様々な変更、変形及び修正を施すことができることが当業者には理解されるだろう。発明の保護範囲は、添付の特許請求範囲に記載の各請求項によって定められる。
【符号の説明】
【００５４】
１２  ステータス制御モジュール
１３  リフレッシュ検索モジュール
１４  スコアボード・モジュール
１５  競合検出モジュール
３１  第１の検索モジュール
３２  第２の検索モジュール
３３  比較器
３４  ＭＵＸ
【図１】
2010033695.tif 000003
【図２】
2010033695.tif 000004
【図３】
2010033695.tif 000005
【図４】
2010033695.tif 000006
【図５】
2010033695.tif 000007
【図６】
2010033695.tif 000008
【図７】
2010033695.tif 000009