(57)【要約】      （修正有）【課題】半導体メモリに対するアクセス要求が連続して発行される場合でも、アクセス要求とリフレッシュとを効率良く実行することができるメモリアクセス制御回路を提供する。【解決手段】リフレッシュ要求部２０は、半導体メモリ３のリフレッシュを実行するか否かを指定するリフレッシュ発行要求１３０を出力する。調停部３０は、リフレッシュ発行要求１３０と、半導体メモリ３に対するアクセス要求１０１及びアクセス対象のアドレス１０２とを受け取り、リフレッシュ発行要求１３０がリフレッシュの実行を示す場合、半導体メモリ３に対してリフレッシュ要求を出力し、リフレッシュを実行しないことを示す場合、半導体メモリ３に対してアクセス要求１０１及びアドレス１０２を出力する。リフレッシュ要求部２０は、マスク部４０と要求部６０とを備える。【選択図】図１
2012198969.tif 000002
【特許請求の範囲】
【請求項１】
半導体メモリのリフレッシュを実行するか否かを指定するリフレッシュ発行要求を出力するリフレッシュ要求部と、
前記リフレッシュ発行要求と、前記半導体メモリに対するアクセス要求及びアクセス対象のアドレスとを受け取り、前記リフレッシュ発行要求がリフレッシュの実行を示す第１リフレッシュ発行要求の場合、前記半導体メモリに対してリフレッシュ要求を出力し、リフレッシュを実行しないことを示す第２リフレッシュ発行要求の場合、前記半導体メモリに対して前記アクセス要求及び前記アドレスを出力する調停部と
を具備し、
前記リフレッシュ要求部は、
前記半導体メモリの第１アドレスに対する第１アクセス要求を受け取ると、前記第１アドレスが含まれる第１アドレス領域に対する第１アクセス間隔の期間を過ぎるまで、マスク信号を出力するマスク部と、
前記マスク信号を受け取る場合、前記第２リフレッシュ発行要求を前記調停部に出力し、前記マスク信号を受け取らない場合、所定の間隔で前記第１リフレッシュ発行要求を前記調停部に出力する要求部と
を備える
メモリアクセス制御回路。
【請求項２】
請求項１に記載のメモリアクセス制御回路であって、
前記マスク部は、
前記第１アクセス要求と前記第１アドレスとを受け取ると、前記第１アドレスが含まれる前記第１アドレス領域と、前記第１アドレス領域に対する前記第１アクセス間隔と、前記第１アドレス領域に対する第１アクセス回数を出力する予測テーブル格納部と、
前記第１アクセス回数が所定の回数を超えたか否かを判定する回数判定部と、
前記第１アクセス回数が前記所定の回数を超えた場合、前記第１アクセス間隔の期間を過ぎるまで、前記マスク信号を前記要求部に出力するマスク信号生成部と
を備える
メモリアクセス制御回路。
【請求項３】
請求項２に記載のメモリアクセス制御回路であって、
前記予測テーブル格納部は、
複数のアドレス領域と、前記複数のアドレス領域の各々に対するアクセス回数と、複数のアドレス領域の各々に対するアクセス間隔とを関連付けた予測テーブル
を有し、
前記予測テーブル格納部は、前記第１アクセス要求と前記第１アドレスとを受け取ると、前記予測テーブルを参照して、前記第１アドレスが含まれる前記第１アドレス領域を抽出し、前記第１アドレス領域に対する前回の第２アクセス要求と前記第１アクセス要求との前記第１アクセス間隔を算出し、前記第１アドレス領域に対するアクセス回数を１つ増加して前記第１アクセス回数とする
メモリアクセス制御回路。
【請求項４】
請求項１乃至３の何れか一項に記載のメモリアクセス制御回路であって、
前記要求部は、
前記所定の間隔で、前記半導体メモリに対するリフレッシュの生成要求を出力するリフレッシュ生成カウンタと、
前記リフレッシュの生成要求を受け取る毎に、蓄積数としてカウントする蓄積部と、
前記マスク信号を受け取る場合であって、前記蓄積数が所定の範囲内であるときは、前記第２リフレッシュ発行要求を前記調停部に出力し、前記蓄積数が所定の範囲外であるときは、前記第１リフレッシュ発行要求を前記調停部に出力する蓄積数判定部と
を備え、
前記蓄積部は、前記調停部が前記リフレッシュ要求を前記半導体メモリに出力した場合、前記蓄積数を１つ減らす
メモリアクセス制御回路。
【請求項５】
半導体メモリの第１アドレスに対する第１アクセス要求を受け取るステップと、
前記第１アクセス要求及び前記第１アドレスに基づいて、前記半導体メモリのリフレッシュを実行するか否かを指定するリフレッシュ発行要求を出力するステップと、
前記リフレッシュ発行要求に応じて、前記第１アクセス要求及び前記第１アドレス、又はリフレッシュ要求を、前記半導体メモリに対して出力するステップと
を具備し、
前記リフレッシュ発行要求を出力するステップは、
前記第１アドレスが含まれる第１アドレス領域に対する第１アクセス間隔の期間を過ぎるまで、マスク信号を出力するステップと、
前記マスク信号に応じて、前記リフレッシュ発行要求を出力するステップと
を備え、
前記マスク信号に応じて、前記リフレッシュ発行要求を出力するステップは、
前記マスク信号を受け取らない場合、所定の間隔でリフレッシュの実行を示す第１リフレッシュ発行要求を出力するステップと、
前記マスク信号を受け取る場合、リフレッシュを実行しないことを示す第２リフレッシュ発行要求を出力するステップと
を含み、
前記半導体メモリに対して出力するステップは、
前記第１リフレッシュ発行要求を受け取る場合、前記リフレッシュ要求を出力し、前記第２リフレッシュ発行要求を受け取る場合、前記第１アクセス要求及び前記第１アドレスを出力するステップ
を備える
メモリアクセス制御方法。
【請求項６】
請求項５に記載のメモリアクセス制御方法であって、
前記マスク信号を出力するステップは、
前記第１アクセス要求と前記第１アドレスとを受け取ると、前記第１アドレスが含まれる前記第１アドレス領域と、前記第１アドレス領域に対する前記第１アクセス間隔と、前記第１アドレス領域に対する第１アクセス回数を出力するステップと、
前記第１アクセス回数が所定の回数を超えたか否かを判定するステップと、
前記第１アクセス回数が前記所定の回数を超えた場合、前記第１アクセス間隔の期間を過ぎるまで、前記マスク信号を出力するステップと
を含む
メモリアクセス制御方法。
【請求項７】
請求項６に記載のメモリアクセス制御方法であって、
前記第１アクセス回数を出力するステップは、
複数のアドレス領域と、前記複数のアドレス領域の各々に対するアクセス回数と、複数のアドレス領域の各々に対するアクセス間隔とを関連付けた予測テーブルを参照して、前記第１アドレスが含まれる前記第１アドレス領域を抽出するステップと、
前記第１アドレス領域に対する、前回の第２アクセス要求と前記第１アクセス要求との前記第１アクセス間隔を算出するステップと、
前記第１アドレス領域に対するアクセス回数を１つ増加して前記第１アクセス回数とするステップと
を含む
メモリアクセス制御方法。
【請求項８】
請求項５乃至７の何れか一項に記載のメモリアクセス制御方法であって、
前記マスク信号に応じて、前記リフレッシュ発行要求を出力するステップは、
前記所定の間隔で、前記半導体メモリに対するリフレッシュの生成要求を出力するステップと、
前記リフレッシュの生成要求を受け取る毎に、蓄積数を１つ増加するステップと
前記リフレッシュ要求が前記半導体メモリに出力する毎に、前記蓄積数を１つ減らすステップと
を更に含み、
前記マスク信号を受け取る場合、リフレッシュを実行しないことを示す前記第２リフレッシュ発行要求を出力するステップは、
前記蓄積数が所定の範囲内であるときは、前記第２リフレッシュ発行要求を出力し、前記蓄積数が所定の範囲外であるときは、前記第１リフレッシュ発行要求を出力するステップ
を含む
メモリアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリアクセスに関し、特にメモリアクセス制御回路およびメモリアクセス制御方法に関する。
【背景技術】
【０００２】
ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）のＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）アクセスの技術分野において、３ＤＧＣ（３Ｄグラフィックコントローラ）や、高解像度ディスプレイコントローラの搭載によって、或いは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のマルチプロセッサ化などによって、ＤＲＡＭバンド幅が増大している。ＤＲＡＭバンド幅の増大に伴って、ＤＲＡＭアクセスの高速化と、バンド幅確保とが必要となり、ＤＲＡＭアクセス間に生じる無駄な時間を可能な限り小さくして、ＤＲＡＭアクセスを効率化する必要性が高まっている。
【０００３】
メモリアクセスに関する技術が特許文献１及び特許文献２に開示されている。
特許文献１（特開２００９−９３７４０号公報）には、ＤＲＡＭのリフレッシュを制御するメモリアクセス制御回路が開示されている。このメモリアクセス制御回路は、設定期間Ｔｓ内に実行すべきリフレッシュの回数をリフレッシュ換算回数Ｎｋとしたとき、設定期間Ｔｓにおける経過時間ｔが短いうちは、リフレッシュ換算回数Ｎｋを超えるような短い間隔でリフレッシュ要求を行うように動作する。つまり、このメモリアクセス制御回路は、前倒しでリフレッシュを実行して、設定期間Ｔｓの終わりに近いタイミングでリフレッシュを実行するための時間的余裕を持たせている。その結果、メモリアクセス制御回路は、リフレッシュとメモリアクセスとが競合しても、リフレッシュ条件の規定が満足できなくなるおそれを低減できるとしている。
【０００４】
特許文献２（特開平９−１９８８６３号公報）には、ＤＲＡＭなどのメモリ装置を制御するメモリ制御装置が開示されている。このメモリ制御装置は、１ブロックのデータ転送を連続的に行なうと共に、データ転送中に行なうべきリフレッシュをアクセス休止期間中に分散して行っている。それによって、アクセス休止期間中に行なうリフレッシュによって発生するスイッチングノイズを低減し、また、消費電力を分散させることができるとしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−９３７４０号公報
【特許文献２】特開平９−１９８８６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＤＲＡＭに対するアクセス要求が連続して発行される場合でも、レーテンシを悪化させることなくアクセス要求とリフレッシュとを効率良く実行することは重要である。例えば、特許文献１の技術では、ＤＲＡＭアクセスとリフレッシュとが競合して、リフレッシュが待たされた場合、ＤＲＡＭアクセスの終了後にリフレッシュが発行される。しかし、リフレッシュが発行されると、リフレッシュが完了するまで、即ち、少なくとも最短リフレッシュ間隔の期間、次のＤＲＡＭアクセスは待たされることになる。ここで、２つの連続して発行されるＤＲＡＭアクセスを考えると、１つ目のＤＲＡＭアクセスの終了後にリフレッシュが実行されると、２つ目のＤＲＡＭアクセスは連続しているにも係わらず待たされることになる。このように、２つの連続するＤＲＡＭアクセスに対して、２つ目のＤＲＡＭアクセスの前にリフレッシュが実行されてしまうと、レーテンシが悪化するという問題が生じる。
【課題を解決するための手段】
【０００７】
以下に、発明を実施するための形態（実施例）で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための形態・実施例の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００８】
本発明のメモリアクセス制御回路（１）は、リフレッシュ要求部（２０）と、調停部（３０）とを具備する。
リフレッシュ要求部（２０）は、半導体メモリ（３）のリフレッシュを実行するか否かを指定するリフレッシュ発行要求（１３０）を出力する。
調停部（３０）は、リフレッシュ発行要求（１３０）と、半導体メモリ（３）に対するアクセス要求（１０１）及びアクセス対象のアドレス（１０２）とを受け取り、リフレッシュ発行要求（１３０）がリフレッシュの実行を示す第１リフレッシュ発行要求（１３０）の場合、半導体メモリ（３）に対してリフレッシュ要求を出力し、リフレッシュを実行しないことを示す第２リフレッシュ発行要求（１３０）の場合、半導体メモリ（３）に対してアクセス要求（１０１）及びアドレス（１０２）を出力する。
リフレッシュ要求部（２０）は、マスク部（４０）と、要求部（６０）とを備える。
マスク部（４０）は、半導体メモリ（３）の第１アドレス（１０２）に対する第１アクセス要求（１０１）を受け取ると、第１アドレス（１０２）が含まれる第１アドレス領域（ＴＡＡ）に対する第１アクセス間隔（ＣＡＩ）の期間を過ぎるまで、マスク信号（１１０）を出力する。
要求部（６０）は、マスク信号（１１０）を受け取る場合、第２リフレッシュ発行要求（１３０）を調停部（３０）に出力し、マスク信号（１１０）を受け取らない場合、所定の間隔で第１リフレッシュ発行要求（１３０）を調停部（３０）に出力する。
【０００９】
本発明のメモリアクセス制御方法は、半導体メモリ（３）の第１アドレス（１０２）に対する第１アクセス要求（１０１）を受け取るステップと、第１アクセス要求（１０１）及び第１アドレス（１０２）に基づいて、半導体メモリ（３）のリフレッシュを実行するか否かを指定するリフレッシュ発行要求（１３０）を出力するステップと、リフレッシュ発行要求（１３０）に応じて、第１アクセス要求（１０１）及び第１アドレス（１０２）、又はリフレッシュ要求を、半導体メモリ（３）に対して出力するステップとを具備する。
リフレッシュ発行要求（１３０）を出力するステップは、第１アドレス（１０２）が含まれる第１アドレス領域（ＴＡＡ）に対する第１アクセス間隔（ＣＡＩ）の期間を過ぎるまで、マスク信号（１１０）を出力するステップと、マスク信号（１１０）に応じて、リフレッシュ発行要求（１３０）を出力するステップとを備える。
マスク信号（１１０）に応じて、リフレッシュ発行要求（１３０）を出力するステップは、マスク信号（１１０）を受け取らない場合、所定の間隔でリフレッシュの実行を示す第１リフレッシュ発行要求（１３０）を出力するステップと、マスク信号（１１０）を受け取る場合、リフレッシュを実行しないことを示す第２リフレッシュ発行要求（１３０）を出力するステップとを含む。
半導体メモリ（３）に対して出力するステップは、第１リフレッシュ発行要求（１３０）を受け取る場合、リフレッシュ要求を出力し、第２リフレッシュ発行要求（１３０）を受け取る場合、第１アクセス要求（１０１）及び第１アドレス（１０２）を出力するステップを備える。
【発明の効果】
【００１０】
本発明のメモリアクセス制御回路は、半導体メモリに対するアクセス要求が連続して発行される場合でも、アクセス要求とリフレッシュとを効率良く実行することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の第１の実施の形態によるメモリアクセス制御回路１の構成を示すブロック図である。
【図２】図２は、マスク部４０の構成を示すブロック図である。
【図３】図３は、予測テーブル格納部４１が有する予測テーブルである。
【図４】図４は、本発明のメモリアクセス制御回路１における予測テーブル格納部４１の処理動作を示したフローチャートである。
【図５】図５は、本発明の第２の実施の形態によるメモリアクセス制御回路１ａの構成を示すブロック図である。
【図６】図６は、要求部６０ａの構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施の形態によるメモリアクセス制御回路を説明する。
【００１３】
（第１の実施の形態）
図１は、本発明の第１の実施の形態によるメモリアクセス制御回路１の構成を示すブロック図である。図１を参照すると、メモリアクセス制御回路１は、ホストＩ／Ｆ（ｉｎｔｅｒｆａｃｅ）１０と、リフレッシュ要求部２０と、調停部３０とを具備する。メモリアクセス制御部１は、ホストＩ／Ｆ１０を介して上位システム２と接続され、調停部３０を介してＤＤＲ３−ＳＤＲＡＭ（Ｄｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ３  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの半導体メモリであるメモリデバイス３と接続される。
【００１４】
ホストＩ／Ｆ１０は、ＡＸＩ（Ａｄｖａｎｃｅｄ  Ｅｘｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）やＡＨＢ（Ａｄｖａｎｃｅｄ  Ｈｉｇｈ−ｐｅｒｆｏｒｍａｎｃｅ  Ｂｕｓ）などのバスインターフェース１００によって上位システム２と接続される。ホストＩ／Ｆ１０は、上位システム２からＤＲＡＭアクセス要求１０１と、アクセス対象のアドレスであるターゲットアドレス１０２とを受け取り、リフレッシュ要求部２０及び調停部３０に出力する。詳細には、ホストＩ／Ｆ１０は、ＤＲＡＭアクセス要求１０１をリフレッシュ要求部２０及び調停部３０に出力し、ＤＲＡＭアクセス要求１０１に同期させて、ターゲットアドレス１０２をリフレッシュ要求部２０及び調停部３０に出力する。
【００１５】
リフレッシュ要求部２０は、ＤＲＡＭアクセス要求１０１とターゲットアドレス１０２とに基づいて、メモリデバイス３のリフレッシュを実行するか否かを指定するリフレッシュ発行要求１３０を生成し、調停部３０に出力する。以降の説明では、リフレッシュ発行要求１３０は、「１」がリフレッシュの実行を示し、「０」がリフレッシュを実行しないことを示すとする。リフレッシュ要求部２０の詳細は後述する。
【００１６】
調停部３０は、バス接続１５０によってメモリデバイス３と接続される。調停部３０は、ホストＩ／Ｆ１０からメモリデバイス３に対するＤＲＡＭアクセス要求１０１及びターゲットアドレス１０２を受け取る。また、調停部３０は、リフレッシュ要求部２０からリフレッシュ発行要求１３０を受け取る。調停部３０は、ＤＲＡＭアクセス要求１０１と、リフレッシュ発行要求１３０とが競合した場合、リフレッシュ発行要求１３０の状態に基づいて、メモリデバイス３に出力する。ここでは、調停部３０は、リフレッシュの実行を示すリフレッシュ発行要求１３０を最優先で処理することが好ましい。つまり、調停部３０は、「１」のリフレッシュ発行要求１３０を受け取る場合、メモリデバイス３に対してリフレッシュ要求を出力し、「０」のリフレッシュ発行要求１３０を受け取る場合、メモリデバイス３に対してＤＲＡＭアクセス要求１０１及びターゲットアドレス１０２を出力する。
【００１７】
リフレッシュ要求部２０は、メモリデバイス３のリフレッシュをどのタイミングで行うかを制御している。リフレッシュ要求部２０の詳細を説明すると、リフレッシュ要求部２０は、マスク部４０と、間隔設定部５０と、要求部６０とを備える。
【００１８】
マスク部４０は、メモリデバイス３のターゲットアドレス１０２に対するＤＲＡＭアクセス要求１０１を受け取る。マスク部４０は、そのターゲットアドレス１０２の含まれるアドレス領域に対して、次のＤＲＡＭアクセス要求１０１が高い確率で発生する可能性のある期間を過ぎるまで、メモリデバイス３をリフレッシュしないようにする。詳細には、マスク部４０は、そのアドレス領域に対するアクセス間隔（アクセス間隔についての詳細は後述する）を過ぎるまで、「０」のリフレッシュ発行要求１３０を出力させるための、リフレッシュ発行マスク信号１１０を要求部６０に出力する。以降の説明では、リフレッシュ発行マスク信号１１０は、「１」が「０」のリフレッシュ発行要求１３０を出力させることを示し、「０」が「１」のリフレッシュ発行要求１３０を出力させることを示すとする。言い換えると、リフレッシュ発行マスク信号１１０がアクティブなとき、リフレッシュの実行を示す「１」のリフレッシュ発行要求１３０がマスクされる。
【００１９】
間隔設定部５０は、設定された所定の間隔（通常平均リフレッシュ発行間隔６４ｍｓｅｃ／８１９２＝７．８ｕｓｅｃ（ｔＲＥＦＩ））毎に、リフレッシュを要求する間隔を示すリフレッシュ間隔設定１２０を要求部６０に出力する。
【００２０】
要求部６０は、リフレッシュ発行マスク信号１１０の「１」又は「０」の状態に応じて、リフレッシュ間隔設定１２０で設定された所定の間隔で、リフレッシュ発行要求１３０を調停部３０に出力する。詳細には、要求部６０は、「０」のリフレッシュ発行マスク信号１１０を受け取る場合、所定の間隔で「１」のリフレッシュ発行要求１３０を調停部３０に出力する。一方、要求部６０は、「１」のリフレッシュ発行マスク信号１１０を受け取る場合、「０」のリフレッシュ発行要求１３０を調停部３０に出力する。つまり、マスク部４０のリフレッシュ発行マスク信号１１０が、メモリデバイス３のリフレッシュをどのタイミングで行うかを制御している。
【００２１】
図２は、マスク部４０の構成を示すブロック図である。図２を参照すると、マスク部４０は、予測テーブル格納部４１と、回数判定部４２と、マスク信号生成部４３とを備える。
【００２２】
予測テーブル格納部４１は、予測テーブルを有する。図３は、予測テーブル格納部４１が有する予測テーブルである。図３を参照すると、予測テーブルは、複数のアドレス領域（ターゲットアドレス領域ＴＡＡ）と、複数のアドレス領域の各々に対する最新のアクセス間隔（アクセス間隔ＣＡＩ）と、複数のアドレス領域の各々に対するアクセス回数（発生回数ＯＣＴ）とを関連付けて格納する。アクセス間隔ＣＡＩには、同じアドレス領域に対する連続した２つのアクセスの間隔、特に最新の２つのアクセスの間隔が格納される。発生回数ＯＣＴには、同じアクセス領域に対するアクセス回数が格納される。尚、予測テーブルの行数は多ければ多いほど、即ち、ターゲットアドレス領域ＴＡＡを細かく設定すればするほど、１つのターゲットアドレス領域ＴＡＡに対するアクセス間隔ＣＡＩの精度は高くなる。しかし、予測テーブルの行数は、ハードウェア容量とのトレードオフで決定される。また、予測テーブル格納部４１は、ＤＲＡＭアクセス要求１０１を観測するため、高速な動作が要求される。そのため、予測テーブル格納部４１はＳＲＡＭまたはＦ／Ｆで構成されることが好ましい。
【００２３】
予測テーブル格納部４１は、ホストＩ／Ｆ１０からＤＲＡＭアクセス要求１０１と、ターゲットアドレス１０２とを受け取ると、予測テーブルを更新し、ターゲットアドレス１０２が含まれるターゲットアドレス領域ＴＡＡと、ターゲットアドレス領域ＴＡＡに対するアクセス間隔ＣＡＩと、ターゲットアドレス領域ＴＡＡに対するアクセス回数ＯＣＴを出力する。詳細には、予測テーブル格納部４１は、予測テーブルを参照して、受け取ったターゲットアドレス１０２が含まれるターゲットアドレス領域ＴＡＡを抽出する。そして、予測テーブル格納部４１は、受け取ったＤＲＡＭアクセス要求１０１と、同じターゲットアドレス領域ＴＡＡに対する前回のＤＲＡＭアクセス要求１０１とのアクセス間隔ＣＡＩを算出する。更に、予測テーブル格納部４１は、該当するターゲットアドレス領域ＴＡＡに関連付けられた発生回数ＯＣＴを１つ増加させる。また、予測テーブル格納部４１は、該当するターゲットアドレス領域ＴＡＡに関連づけられたアクセス間隔ＣＡＩを、算出した間隔に更新する。その後、予測テーブル格納部４１は、ターゲットアドレス１０２が含まれるターゲットアドレス領域ＴＡＡと、更新したアクセス回数ＯＣＴとを、回数判定部４２に出力する。また、予測テーブル格納部４１は、当該ターゲットアドレス領域ＴＡＡと、更新したアクセス間隔ＣＡＩとを、マスク信号生成部４３に出力する。
【００２４】
ここで、予測テーブル格納部４１の詳細な動作を説明する。図４は、本発明のメモリアクセス制御回路１における予測テーブル格納部４１の処理動作を示したフローチャートである。図４を参照して、予測テーブル格納部４１の処理動作を説明する。
【００２５】
ステップＳ０１：
予測テーブル格納部４１は、ホストＩ／Ｆ１０からのＤＲＡＭアクセス要求１０１と、ターゲットアドレス１０２とを受け取る。
【００２６】
ステップＳ０２：
予測テーブル格納部４１は、予測テーブルを参照して、受け取ったターゲットアドレス１０２が、ターゲットアドレス領域ＴＡＡに一致するか否かを判定する。
【００２７】
ステップＳ０３：
ステップＳ０２において「一致」の場合、予測テーブル格納部４１は、受け取ったＤＲＡＭアクセス要求１０１が含まれるターゲットアドレス領域ＴＡＡを抽出する。そして、予測テーブル格納部４１は、同じターゲットアドレス領域ＴＡＡに対する、前回のＤＲＡＭアクセス要求１０１と今回のＤＲＡＭアクセス要求１０１とのアクセス間隔ＣＡＩを算出する。
【００２８】
ステップＳ０４：
予測テーブル格納部４１は、該当するターゲットアドレス領域ＴＡＡに関連付けられた発生回数ＯＣＴを１つ増加させる。
【００２９】
ステップＳ０５：
予測テーブル格納部４１は、該当するターゲットアドレス領域ＴＡＡに関連づけられたアクセス間隔ＣＡＩを、ステップＳ０３で算出した間隔に更新する。
【００３０】
ステップＳ０６：
予測テーブル格納部４１は、ターゲットアドレス１０２が含まれるターゲットアドレス領域ＴＡＡと、更新したアクセス回数ＯＣＴとを、回数判定部４２に出力する。また、予測テーブル格納部４１は、当該ターゲットアドレス領域ＴＡＡと、更新したアクセス間隔ＣＡＩとを、マスク信号生成部４３に出力する。
【００３１】
ステップＳ０７：
ステップＳ０２において「不一致」の場合、予測テーブル格納部４１は予測テーブルを参照して、未使用の行があるか否かを判定する。
【００３２】
ステップＳ０８：
ステップＳ０７において未使用の行がある場合（ＹＥＳ）、予測テーブル格納部４１は、受け取ったターゲットアドレス１０２を含むような領域を新たなターゲットアドレス領域ＴＡＡとして、予測テーブルに登録する。このとき、ターゲットアドレス領域ＴＡＡは、４ｋｂｙｔｅ空間など、一定のアドレス領域をカバーする情報となっていることが望ましい。何故なら、ＤＲＡＭアクセス要求１０１には、アクセス対象となるターゲットアドレス１０２に局所性が見られるためである。また、予測テーブル格納部４１は、発生回数ＯＣＴを１に設定する。尚、アクセス間隔ＣＡＩには何も登録されない。
【００３３】
ステップＳ０９：
ステップＳ０７において未使用の行がない場合（ＮＯ）、予測テーブル格納部４１は、受け取ったターゲットアドレス１０２を含むような領域を新たなターゲットアドレス領域ＴＡＡとし、ホストＩ／Ｆ１０からそのターゲットアドレス領域ＴＡＡに一致する次のターゲットアドレス１０２を受け取る。そして、予測テーブル格納部４１は、同じターゲットアドレス領域ＴＡＡに対する２つのＤＲＡＭアクセス要求１０１のアクセス間隔ＣＡＩを算出する。
【００３４】
ステップＳ１０：
予測テーブル格納部４１は、予測テーブルを参照して、発生回数ＯＣＴの最も少ないターゲットアドレス領域ＴＡＡを抽出する。そして、予測テーブル格納部４１は、抽出したターゲットアドレス領域ＴＡＡに関連付けられたアクセス間隔ＣＡＩと、算出したアクセス間隔とを比較する。
【００３５】
ステップＳ１１：
ステップＳ１０の比較の結果、ステップＳ０９で算出したアクセス間隔の方が小さい（短い）場合は、予測テーブル格納部４１は、ステップＳ０１で受け取ったＤＲＡＭアクセス１０１に関する情報と、比較対象であったターゲットアドレス領域ＴＡＡに関する情報とを入れ替える。
【００３６】
ステップＳ１２：
ステップＳ１０の比較の結果、ステップＳ０９で算出したアクセス間隔の方が大きい（長い）場合は、予測テーブル格納部４１は、ステップＳ０１で受け取ったＤＲＡＭアクセス要求１０１、ターゲットアドレス１０２及び算出したアクセス間隔を破棄する。この様にして、予測テーブル格納部４１は、ＤＲＡＭアクセス要求１０１のアクセス間隔がより短いものを予測テーブルに格納していく。尚、予測テーブルの初期化は、ＬＳＩのシステムリセットにより初期化されてもいいし、初期化設定レジスタを設けてアプリケーションから初期化できるようにしても良い。
【００３７】
図２の回路判定部４２について説明する。回数判定部４２は、同じターゲットアドレス領域ＴＡＡに対する次のＤＲＡＭアクセス要求１０１が、高い確率で連続するか否かを判定する。回数判定部４２は、次のＤＲＡＭアクセス要求１０１が連続する確率が高いと判定した場合は、メモリデバイス３をリフレッシュしないようにし、次のＤＲＡＭアクセス要求１０１が連続する確率が低いと判定した場合（即ちリフレッシュ発行要求１３０を出力してもＤＲＡＭアクセス要求１０１と衝突する可能性は低い場合）は、メモリデバイス３をリフレッシュするように動作する。詳細には、回数判定部４２は、予測テーブル格納部４１から、ターゲットアドレス１０２の含まれるターゲットアドレス領域ＴＡＡと、発生回数ＯＣＴとを受け取る。回数判定部４２は、ターゲットアドレス領域ＴＡＡに対する発生回数ＯＣＴ（アクセス回数）が、予め設定された所定の回数（閾値）を超えたか否かを判定する。回数判定部４２は、発生回数ＯＣＴが所定の回数を超えている場合、次のＤＲＡＭアクセス要求１０１が連続する確率が高いと判定して、「１」のリフレッシュ発行マスク信号１１０を出力させるリフレッシュ許可信号１０５を、マスタ信号生成部４３に出力する。一方、回数判定部４２は、発生回数ＯＣＴが所定の回数を超えていない場合、ＤＲＡＭアクセス要求１０１が連続する確率が低いと判定して、「０」のリフレッシュ発行マスク信号１１０を出力させるリフレッシュ許可信号１０５を、マスタ信号生成部４３に出力する。以降の説明では、リフレッシュ許可信号１０５は、「０」が「１」のリフレッシュ発行マスク信号１１０の出力をさせることを示し、「１」が「０」のリフレッシュ発行マスク信号１１０の出力をさせることを示すとする。
【００３８】
発生回数ＯＣＴの閾値は、固定値で設計によって作りこんでもよいし、ソフトウェアによって変更できるような構成としてもよい。固定値で作りこむ場合は２以上にすることが望ましい。これは閾値が１の場合は、１度しか当該ターゲットアドレス領域ＴＡＡへのアクセスが発生していないためである。つまり、１の場合では、学習が全くされていないため信頼性が低く、リフレッシュ要求を出力できるタイミングであるのに、リフレッシュが実行されず、リフレッシュの効率を悪くする可能性が高くなる。
【００３９】
マスク信号生成部４３は、同じターゲットアドレス領域ＴＡＡに対して、次のＤＲＡＭアクセス要求１０１が連続する確率が高い場合、次のＤＲＡＭアクセス要求１０１が発生する可能性のある期間を過ぎるまで、メモリデバイス３をリフレッシュしないように動作する。詳細には、マスク信号生成部４３は、ホストＩ／Ｆ１０からＤＲＡＭアクセス要求１０１を受け取り、予測テーブル格納部４１からターゲットアドレス領域ＴＡＡとアクセス間隔ＣＡＩとを受け取り、回数判定部４２からリフレッシュ許可信号１０５を受け取る。ここで受け取るアクセス間隔ＣＡＩは、ターゲットアドレス１０２を含むターゲットアドレス領域ＴＡＡに対する最新のアクセス間隔である。
【００４０】
まず、マスク信号生成部４３は、ＤＲＡＭアクセス要求１０１を受け取ると、内部のカウンタを０にクリアして、アクセス間隔ＣＡＩの期間を過ぎるまでカウントする。ここで、アクセス間隔ＣＡＩは、次のＤＲＡＭアクセス要求１０１が発生する可能性のある期間を表す。そして、マスク信号生成部４３は、「０」のリフレッシュ許可信号１０５を受け取る場合（次のＤＲＡＭアクセス要求１０１が連続する確率が高い場合）、アクセス間隔ＣＡＩを過ぎるまでの間、「１」のリフレッシュ発行マスク信号１１０を要求部６０に出力する。つまり、マスク信号生成部４３は、次のＤＲＡＭアクセス要求１０１が高い確率で発生する可能性のある期間は、要求部６０から「１」のリフレッシュ発行要求１３０が調停部３０に出力されないように動作する。
【００４１】
更に、マスク信号生成部４３は、「０」のリフレッシュ許可信号１０５を受け取っているときに、カウントした期間がアクセス間隔ＣＡＩを超えた場合、「０」のリフレッシュ発行マスク信号１１０を要求部６０に出力する。つまり、マスク信号生成部４３は、次のＤＲＡＭアクセス要求１０１が発生する可能性が低くなったと判定して、要求部６０から「１」のリフレッシュ発行要求１３０が調停部３０に出力されるように動作する。
【００４２】
一方、マスク信号生成部４３は、「１」のリフレッシュ許可信号１０５を受け取る場合（次のＤＲＡＭアクセス要求１０１が連続する確率が低い場合）、アクセス間隔ＣＡＩの期間のカウントによらず、「０」のリフレッシュ発行マスク信号１１０を要求部６０に出力する。
【００４３】
以上のように、本発明のメモリアクセス制御回路１は、同じターゲットアドレス領域ＴＡＡに対する２つのＤＲＡＭアクセス要求１０１が、連続するか否かを適切に判定することができると共に、連続すると予想される期間も適切に判定することができる。これによって、本発明のメモリアクセス制御回路１は、２つの連続するＤＲＡＭアクセス要求１０１があった場合に、２つ目のＤＲＡＭアクセス要求１０１の前にリフレッシュが実行されることがなく、しかも、リフレッシュを実行しない期間も適切に制御することができる。従って、本発明のメモリアクセス制御回路１は、メモリデバイス３に対するＤＲＡＭアクセス要求１０１が連続して発行される場合でも、レーテンシを悪化させることなくＤＲＡＭアクセス要求１０１とリフレッシュ要求とを効率良く出力することができる。
【００４４】
本発明は、ＤＲＡＭアクセス要求１０１のターゲットアドレス１０２の局所性を利用し、ＤＲＡＭアクセス要求１０１ごとの間隔を認識することで、ＤＲＡＭアクセス要求１０１とリフレッシュと競合を避け、レーテンシ悪化を回避している。ＤＲＡＭアクセス要求１０１を行うモジュール、例えばＣＰＵやディスプレイコントローラにおいては、割込み処理などで特定の局所性を持つアドレス領域に対して同じアクセスパタンとなるようなＤＲＡＭアクセス要求１０１を行うことが度々見られる。このようなアドレスの局所性から、連続するＤＲＡＭアクセス要求１０１を予測し、リフレッシュ要求の出力を抑制することでＤＲＡＭアクセス要求１０１を優先することが可能となる。
【００４５】
（第２の実施の形態）
本発明の第２の実施の形態を説明する。図５は、本発明の第２の実施の形態によるメモリアクセス制御回路１ａの構成を示すブロック図である。図５を参照すると、メモリアクセス制御回路１ａは、ホストＩ／Ｆ１０と、リフレッシュ要求部２０ａと、調停部３０ａとを具備する。本発明の第２の実施の形態によるメモリアクセス制御回路１ａは、リフレッシュ要求部２０ａにおける要求部６０ａと、調停部３０ａとが、第１の実施の形態と異なる。その他の構成は第１の実施の形態と同様であるため重複する説明を省略する。
【００４６】
調停部３０ａは、第１の実施の形態の調停部３０と同様に動作する。更に、調停部３０ａは、メモリデバイス３に対してリフレッシュ要求を出力したとき、リフレッシュ発行通知１４０を要求部６０ａに出力する。
【００４７】
要求部６０ａは、リフレッシュ発行マスク信号１１０の状態と、メモリデバイス３に必要なリフレッシュの回数とに応じて、リフレッシュ発行要求１３０を調停部３０に出力する。図６は、要求部６０ａの構成を示すブロック図である。図６を参照すると、要求部６０ａは、リフレッシュ生成カウンタ６１と、発行キュー６２と、蓄積数判定部６３とを備える。
【００４８】
リフレッシュ生成カウンタ６１は、間隔設定部５０からリフレッシュ間隔設定１２０を受け取る。リフレッシュ生成カウンタ６１は、リフレッシュ間隔設定１２０で設定された所定の間隔で、メモリデバイス３に対するリフレッシュの要求を示すリフレッシュ生成要求１２５を生成し、発行キュー６２へ出力する。
【００４９】
発行キュー６２は、リフレッシュ生成要求１２５の蓄積数をカウントし、カウントした蓄積数を示す蓄積数通知信号１２６を蓄積数判定部６３に出力する。詳細には、発行キュー６２は、リフレッシュ生成カウンタ６１から出力されたリフレッシュ生成要求１２５を受け取る毎に、蓄積数を数えるカウンタを１増加させる。また、発行キュー６２は、調停部３０ａからリフレッシュ発行通知１４０を受け取る毎に、カウンタを１つ減らす。
【００５０】
蓄積数判定部６３は、マスク部４０から「１」のリフレッシュ発行マスク信号１１０を受け取る場合であって、蓄積数が所定の範囲内である場合には、リフレッシュ発行マスク信号１１０に従って、メモリデバイス３をリフレッシュしないように動作する。一方、蓄積数判定部６３は、マスク部４０から「１」のリフレッシュ発行マスク信号１１０を受け取る場合であっても、蓄積数が所定の範囲外である場合には、リフレッシュを優先して実行する。詳細には、蓄積数判定部６３は、マスク部４０からリフレッシュ発行マスク信号１１０を受け取り、発行キュー６２から蓄積数通知信号１２６を受け取る。蓄積数判定部６３は、「１」のリフレッシュ発行マスク信号１１０を受け取り、且つ、蓄積数通知信号１２６の示す蓄積数が所定の範囲内の場合、「０」のリフレッシュ発行要求１３０を調停部３０ａに対して出力する。一方、蓄積数判定部６３は、「１」のリフレッシュ発行マスク信号１１０を受け取り、且つ、蓄積数通知信号１２６の示す蓄積数が所定の範囲外の場合（例えば１を超えた場合）、「１」のリフレッシュ発行要求１３０を調停部３０ａに対して出力する。
【００５１】
要求部６０ａによる効果を以下に説明する。仮に、リフレッシュ発行マスク信号１１０が長時間「１」である場合、要求部６０ａは「１」のリフレッシュ発行要求１３０を調停部３０ａに対してずっと出力できないことになる。これは、メモリデバイス３を長時間リフレッシュできないことを意味し、ＤＲＡＭ規格に違反するおそれがある。そこで、蓄積数判定部６３は、発行キュー６２でカウントされたリフレッシュ生成要求１２５の蓄積数が所定の範囲外となった場合、リフレッシュ発行マスク信号１１０の状態によらず、ＤＲＡＭ規格に違反しないように、調停部３０ａに対して「１」のリフレッシュ発行要求１３０を出力する。その結果、調停部３０ａはリフレッシュ要求をメモリデバイス３に出力でき、ＤＲＡＭ規格を満足することができる。
【００５２】
尚、蓄積数判定部６３は、「０」のリフレッシュ発行マスク信号１１０を受け取る場合で、蓄積数通知信号１２６の示す蓄積数が１以上であった場合は、メモリデバイス３をリフレッシュするために、「１」のリフレッシュ発行要求１３０を調停部３０ａに対して出力する。但し、蓄積数通知信号１２６の示す蓄積数が０であった場合は、蓄積数判定部６３は「０」のリフレッシュ発行要求１３０を調停部３０ａに対して出力する。
【００５３】
本発明の第２の実施の形態におけるメモリアクセス制御回路１ａは、ＤＲＡＭアクセス要求１０１が連続する場合、第１の実施の形態と同様に、アクティブなリフレッシュ発行マスク信号１１０を出力して、メモリデバイス３をリフレッシュしないように制御する。従って、リフレッシュ生成要求１２５の蓄積数が所定の範囲内である場合は、ＤＲＡＭアクセス要求１０１と、リフレッシュの実行を示すリフレッシュ発行要求１３０とは基本的に競合しないことになる。即ち、本発明のメモリアクセス制御回路１ａも、第１の実施の形態と同様に、２つの連続するＤＲＡＭアクセス要求１０１があった場合に、２つ目のＤＲＡＭアクセス要求１０１の前にリフレッシュが実行されることがなく、リフレッシュを実行させない期間も適切に制御することができる。更に、第２の実施の形態のメモリアクセス制御回路１ａは、強制的にリフレッシュ要求を出力することもできるため、ＤＲＡＭ規格に違反しない効果も奏する。
【００５４】
ＤＤＲ２−ＳＤＲＡＭとＤＤＲ３−ＳＤＲＡＭの規格で、リフレッシュ要求とリフレッシュ要求との最大の間隔は、平均リフレッシュ発行間隔７．８ｕｓｅｃ×９（７０．２ｕｓｅｃ）と定められている。この場合、リフレッシュ要求が強制的に発行されるための蓄積数の閾値は８個とすることが望ましい。平均リフレッシュ発行間隔の８倍までリフレッシュの要求回数が蓄積した場合には、強制的にリフレッシュ発行要求１３０を調停部３０ａに対して発行できれば、ＤＲＡＭの規格を違反することなく、最も効率よくリフレッシュ要求をメモリデバイス３に対して出力することが可能となる。
【００５５】
また、リフレッシュ生成要求１２５で設定される間隔は、ＤＤＲ２−ＳＤＲＡＭとＤＤＲ３−ＳＤＲＡＭの規格でリフレッシュ回数が６４ｍｓｅｃ中８１９２回と定められている場合、８１９２回のリフレッシュ回数に対して８をプラスした回数８２００回のリフレッシュを、６４ｍｓｅｃの間に発行できる設定にすることが望ましい。発行キュー６２には、最大８個までのリフレッシュ生成要求１２５が蓄積できる構成となっているが、ＤＲＡＭアクセス要求１０１が、６４ｍｓｅｃの間に途切れることなく連続で発行された場合に、８２００回発行できる設定になっていると、発行キュー６２に８個のリフレッシュ生成要求１２５が蓄積されたままになったとしても、規格で定められている８１９２回のリフレッシュは必ず発行されることになり、規格を守ることが可能になる。
【００５６】
最後に具体例を示す。画像表示コントローラにおいて画面データ１ｋｂｙｔｅの読み込みをＤＲＡＭより行い、リフレッシュがＤＲＡＭアクセスと競合した場合について説明する。１個が１６バイトのＤＲＡＭアクセスで、ＤＲＡＭアクセスのレーテンシを１０ｎｓｅｃ、リフレッシュのリカバリ時間を１５０ｎｓｅｃとする。特許文献１の場合、６４個のＤＲＡＭアクセスのレーテンシの和＝１０ｘ６４＝６４０ｎｓｅｃの間にリフレッシュが挿入されるため、ＤＲＡＭアクセスの総アクセス時間は６４０ｎｓｅｃ＋１５０ｎｓｅｃ＝７９０ｎｓｅｃとなるため転送速度は１２９６Ｍｂｙｔｅ／ｓｅｃとなる。本発明の場合、６４個のＤＲＡＭアクセスのレーテンシの和＝１０ｘ６４＝６４０ｎｓｅｃの間にリフレッシュは発行されないので、ＤＲＡＭアクセスの総アクセス時間は６４０ｎｓｅｃとなり、転送速度は１６００Ｍｂｙｔｅ／ｓｅｃとなるので、特許文献１に比べて最大で２３％の性能向上が可能となる。
【符号の説明】
【００５７】
１、１ａ  メモリアクセス制御回路
２        上位システム
３        メモリデバイス
１０      ホストＩ／Ｆ
２０、２０ａ  リフレッシュ要求部
３０、３０ａ  調停部
４０      マスク部
４１      予測テーブル格納部
４２      回数判定部
４３      マスク信号生成部
５０      間隔設定部
６０、６０ａ      要求部
１００    バスインターフェース
１０１    ＤＲＡＭアクセス要求
１０２    ターゲットアドレス
１０５    リフレッシュ許可信号
１１０    リフレッシュ発行マスク信号
１２０    リフレッシュ間隔設定
１２５    リフレッシュ生成要求
１２６    蓄積数通知信号
１３０    リフレッシュ発行要求
１４０    リフレッシュ発行通知
１５０    バス接続
ＴＡＡ    ターゲットアドレス領域
ＣＡＩ    アクセス間隔
ＯＣＴ    発生回数
【図１】
2012198969.tif 000003
【図２】
2012198969.tif 000004
【図３】
2012198969.tif 000005
【図４】
2012198969.tif 000006
【図５】
2012198969.tif 000007
【図６】
2012198969.tif 000008