(57)【要約】【課題】リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減することができるメモリアクセス制御回路を提供する。【解決手段】設定期間Ｔｓ毎に、経過時間ｔの計時を行うリフレッシュ間隔計時部１３と、平均リフレッシュ間隔ｔＲＥＦＩで設定期間Ｔｓを除した商として得られるリフレッシュ換算回数Ｎｋ以上の回数、設定期間Ｔｓ内に、リフレッシュ要求を行わせると共に、経過時間ｔが短いほど当該リフレッシュ要求を実行する要求間隔ｔｄが短くなるように、当該要求間隔ｔｄを設定するリフレッシュ間隔設定部１１と、ＤＲＡＭへのアクセス要求とリフレッシュ要求とが競合した場合、当該アクセス要求と当該リフレッシュ要求とを調停する調停部１５とを備えた。【選択図】図１
2009093740.tif 000002
【特許請求の範囲】
【請求項１】
所定のサイクル規定時間内に実行すべきリフレッシュ規定回数としてリフレッシュサイクルが規定されたＤＲＡＭへ、リフレッシュの実行を要求するリフレッシュ要求を行うリフレッシュ要求部と、
予め設定された設定期間毎に、経過時間の計時を行う計時部と、
前記サイクル規定時間を前記リフレッシュ規定回数で除した商として得られる平均リフレッシュ間隔で前記設定期間を除した商として得られるリフレッシュ換算回数以上の回数、前記設定期間内に、前記リフレッシュ要求部によって前記リフレッシュ要求を行わせると共に、前記計時部により計時された経過時間が短いほど当該リフレッシュ要求を実行する時間間隔である要求間隔が短くなるように、当該要求間隔を設定するリフレッシュ間隔設定部と、
前記ＤＲＡＭへのアクセス要求と、前記リフレッシュ要求部のリフレッシュ要求とが競合した場合、当該アクセス要求と当該リフレッシュ要求とを調停する調停部と
を備えることを特徴とするメモリアクセス制御回路。
【請求項２】
前記サイクル規定時間は、前記設定期間の整数倍であること
を特徴とする請求項１記載のメモリアクセス制御回路。
【請求項３】
前記設定期間毎に、前記リフレッシュ要求部から出力されたリフレッシュ要求指示の回数を計数するリフレッシュ回数カウント部をさらに備え、
前記リフレッシュ間隔設定部は、
前記計時部により計時された経過時間を前記平均リフレッシュ間隔で除した商として得られる基準回数を、前記リフレッシュ回数カウント部により計数された回数が下回った場合、前記要求間隔を短縮すること
を特徴とする請求項１又は２記載のメモリアクセス制御回路。
【請求項４】
前記リフレッシュ間隔設定部は、
前記リフレッシュ換算回数から前記リフレッシュ回数カウント部により計数された回数を減じた差分に対する、当該回数から、前記計時部により計時された経過時間を前記平均リフレッシュ間隔で除した商として得られる基準回数を減じた差分の比率が、０より大きく１に満たない範囲で予め設定された目標比率を下回る場合、前記要求間隔を短縮させ、当該比率が、前記目標比率を上回る場合、前記要求間隔を増大させること
を特徴とする請求項１〜３のいずれか１項に記載のメモリアクセス制御回路。
【請求項５】
前記リフレッシュ間隔設定部は、
前記計時部により計時された経過時間がｔであるタイミングにおいて、前記設定期間がＴｓ、前記平均リフレッシュ間隔がｔＲＥＦＩ、前記リフレッシュ回数カウント部により計数された回数がｎであるとき下記の式（１）に基づき得られる比率Ｒが、前記目標比率を下回る場合、前記要求間隔を短縮させ、当該比率Ｒが、前記目標比率を上回る場合、前記要求間隔を増大させること
を特徴とする請求項４記載のメモリアクセス制御回路。
Ｒ＝（ｎ−ｔ／ｔＲＥＦＩ）／｛（Ｔｓ／ｔＲＥＦＩ）−ｎ｝  ・・・（１）
【請求項６】
前記リフレッシュ間隔設定部は、
前記比率が前記目標比率を下回る場合、前記要求間隔を前記平均リフレッシュ間隔より短縮させ、当該比率が前記目標比率を上回る場合、前記要求間隔を前記平均リフレッシュ間隔より増大させること
を特徴とする請求項４又は５記載のメモリアクセス制御回路。
【請求項７】
前記ＤＲＡＭは、
リフレッシュ間隔として許容できる最大限の時間である最大リフレッシュ間隔と、リフレッシュを実行後、再びリフレッシュを実行可能となるまでの最短時間である最短リフレッシュ間隔とが規定されており、
前記リフレッシュ間隔設定部は、
前記比率が前記目標比率を下回る場合において、前記比率と前記目標比率との差が大きくなるほど前記要求間隔が前記最短リフレッシュ間隔を下回らない範囲で小さくなるように当該要求間隔を短縮させ、
前記比率が前記目標比率を上回る場合において、前記比率と前記目標比率との差が大きくなるほど前記要求間隔が前記最大リフレッシュ間隔を上回らない範囲で大きくなるように当該要求間隔を増大させること
を特徴とする請求項４〜６のいずれか１項に記載のメモリアクセス制御回路。
【請求項８】
前記調停部は、
前記調停において、前記比率が大きくなるほど、前記競合したアクセス要求に対する前記競合したリフレッシュ要求の優先度合いを低下させること
を特徴とする請求項４〜７のいずれか１項に記載のメモリアクセス制御回路。
【請求項９】
前記調停部は、
前記調停を行う際に、前記計時部により計時された経過時間を前記平均リフレッシュ間隔で除した商として得られる基準回数を、前記リフレッシュ回数カウント部により計数された回数が上回る場合、前記リフレッシュ要求より前記アクセス要求を優先させること
を特徴とする請求項１〜８のいずれか１項に記載のメモリアクセス制御回路。
【請求項１０】
前記ＤＲＡＭへのアクセス要求には、緊急度を示す緊急度情報が付与されており、
前記調停部は、
前記調停を行う際に、前記基準回数を、前記リフレッシュ回数カウント部により計数された回数が下回る場合、前記競合したアクセス要求に付与された緊急度情報で示される緊急度が高いほど、前記競合したリフレッシュ要求に対する当該アクセス要求の優先度合いを高めること
を特徴とする請求項９記載のメモリアクセス制御回路。
【請求項１１】
前記調停部は、
前記調停を行う際に、前記計時部により計時された経過時間が前記設定期間の前半に該当する場合、前記リフレッシュ要求より前記アクセス要求を優先させ、前記計時部により計時された経過時間が前記設定期間の後半に該当し、かつ前記計時部により計時された経過時間を前記平均リフレッシュ間隔で除した商として得られる基準回数を、前記リフレッシュ回数カウント部により計数された回数が下回った場合、前記アクセス要求より前記リフレッシュ要求を優先させること
を特徴とする請求項１〜７のいずれか１項に記載のメモリアクセス制御回路。
【請求項１２】
前記設定期間毎に、前記リフレッシュ要求部から出力されたリフレッシュ要求指示の回数を計数するリフレッシュ回数カウント部をさらに備え、
前記ＤＲＡＭは、
リフレッシュ間隔として許容できる最大限の時間である最大リフレッシュ間隔と、リフレッシュを実行後、再びリフレッシュを実行可能となるまでの最短時間である最短リフレッシュ間隔とが規定されており、
前記リフレッシュ間隔設定部は、
前記リフレッシュ換算回数と前記リフレッシュ回数カウント部により計数された回数との差が、前記設定期間から前記計時部により計時された経過時間を差し引いた差分を、前記最大リフレッシュ間隔で除した商以下になるまで、前記要求間隔として前記最短リフレッシュ間隔を設定したまま維持すること
を特徴とする請求項１又は２に記載のメモリアクセス制御回路。
【請求項１３】
前記ＤＲＡＭは、ＤＤＲ２−ＳＤＲＡＭであること
を特徴とする請求項１〜１２のいずれか１項に記載のメモリアクセス制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＲＡＭのリフレッシュを制御するメモリアクセス制御回路に関する。
【背景技術】
【０００２】
ＤＲＡＭ（Dynamic Random Access Memory）は、内部のメモリセルの実体であるキャパシタを定期的に再充電（リフレッシュ）してやる必要がある。特に、近年急速に普及しつつあるＤＤＲ（Double Data Rate）−ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）やＤＤＲ２−ＳＤＲＡＭは、オートリフレッシュコマンドが与えられると、メモリデバイス内部で自動的にリフレッシュを実行するようになっている。
【０００３】
このようなＤＲＡＭでは、所定のサイクル規定時間内に実行すべきリフレッシュ回数が規定されている。例えば、リフレッシュサイクルが８１９２／６４ｍｓｅｃと規定されているＤＲＡＭでは、６４ｍｓｅｃのサイクル規定時間内に、８１９２回リフレッシュを実行する必要がある。そこで、例えば、平均リフレッシュ間隔（上記リフレッシュサイクルの逆数）より短い時間間隔で定期的にオートリフレッシュコマンドを発行することで、ＤＲＡＭが要求するリフレッシュ条件を満たすように、リフレッシュ動作を制御するメモリコントローラが用いられている。
【０００４】
また、メモリコントローラのリフレッシュ制御としては、ほぼ一定時間ごとにリフレッシュコマンドを発行する分散リフレッシュ方式と特定の時間帯に集中してリフレッシュを行う集中リフレッシュ方式が一般に知られている。
【０００５】
しかしながら、ＤＲＡＭは、リフレッシュとメモリアクセスとを同時に行うことができない。そのため、オートリフレッシュコマンドの発行とメモリアクセスとが競合してしまう場合がある。リフレッシュ条件を確実に満たすには、オートリフレッシュコマンドの発行とメモリアクセスとが競合した場合、リフレッシュが終了するまでメモリアクセスを待たせておけばよい。
【０００６】
ＤＲＡＭ内部で実行されるリフレッシュの処理は、その処理時間が、メモリ容量の増大に伴い増加し、ＤＲＡＭの動作周波数の向上に伴い減少する。しかしながら、近年、動作周波数の向上に対して相対的にメモリ容量の増大が大きく、リフレッシュ動作にかかる時間が相対的に増加している。そのため、リフレッシュが終了するまでメモリアクセスを待たせておくこととすると、大容量のＤＲＡＭにおいて、リフレッシュコマンドを発行した後にメモリにアクセスできない期間が増大してしまう。また、ＤＲＡＭにアクセスするＣＰＵ（Central Processing Unit）等のマスターデバイスが高速化していることによっても、リフレッシュとの競合によるメモリアクセスの待ち時間がシステムの性能に与える影響が相対的に増大している。
【０００７】
そこで、オートリフレッシュコマンドの発行とメモリアクセスとが競合した場合、オートリフレッシュコマンドの発行を待たせておき、メモリがアイドル状態になるのを待ってから、待たせておいたオートリフレッシュコマンドを発行するようにしたメモリコントローラが知られている（例えば、特許文献１参照。）。
【特許文献１】特開２００５−３１０２４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述のメモリコントローラでは、前回のリフレッシュからの経過時間がサイクル規定時間の終わりに近いタイミングでリフレッシュコマンドの発行とメモリアクセスとが競合した場合、リフレッシュコマンドの発行が待たされてサイクル規定時間の残り時間が短くなってから、リフレッシュコマンドを発行しようとしても、規定回数のリフレッシュコマンドを発行できる時間が残っていないためにＤＲＡＭが要求するリフレッシュ条件の規定を満足できなくなるおそれがあった。
【０００９】
本発明は、このような事情に鑑みて為された発明であり、リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減することができるメモリアクセス制御回路を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係るメモリアクセス制御回路は、所定のサイクル規定時間内に実行すべきリフレッシュ規定回数としてリフレッシュサイクルが規定されたＤＲＡＭへ、リフレッシュの実行を要求するリフレッシュ要求を行うリフレッシュ要求部と、予め設定された設定期間毎に、経過時間の計時を行う計時部と、前記サイクル規定時間を前記リフレッシュ規定回数で除した商として得られる平均リフレッシュ間隔で前記設定期間を除した商として得られるリフレッシュ換算回数以上の回数、前記設定期間内に、前記リフレッシュ要求部によって前記リフレッシュ要求を行わせると共に、前記計時部により計時された経過時間が短いほど当該リフレッシュ要求を実行する時間間隔である要求間隔が短くなるように、当該要求間隔を設定するリフレッシュ間隔設定部と、前記ＤＲＡＭへのアクセス要求と、前記リフレッシュ要求部のリフレッシュ要求とが競合した場合、当該アクセス要求と当該リフレッシュ要求とを調停する調停部とを備える。
【００１１】
この構成によれば、計時部によって、予め設定された設定期間毎に、経過時間が繰り返し計時される。また、リフレッシュ換算回数は、サイクル規定時間内に実行すべきリフレッシュの回数であるリフレッシュ規定回数を、設定期間内に実行すべきリフレッシュの回数に換算した回数となる。そして、設定期間内に、リフレッシュ換算回数以上の回数、リフレッシュ要求部によるリフレッシュ要求が行われると共に、計時部により計時された経過時間が短いほど当該リフレッシュ要求を実行する時間間隔である要求間隔が短くなるように、当該要求間隔が設定される。そうすると、設定期間内において前倒しでリフレッシュが実行される。そうすると、設定期間の終わりに近いタイミングでは、リフレッシュを実行するための時間的余裕が増大するので、リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減することができる。
【００１２】
また、前記サイクル規定時間は、前記設定期間の整数倍であることが好ましい。
【００１３】
この構成によれば、設定期間内にリフレッシュ換算回数以上の回数、リフレッシュ要求が行われることにより、必ずサイクル規定時間内にリフレッシュ規定回数以上のリフレッシュ要求が行われる。従って、設定期間の他に、別途サイクル規定時間を管理する必要がなく、リフレッシュ条件の規定を満足するための処理が増大するおそれを低減することができる。
【００１４】
また、前記設定期間毎に、前記リフレッシュ要求部から出力されたリフレッシュ要求指示の回数を計数するリフレッシュ回数カウント部をさらに備え、前記リフレッシュ間隔設定部は、前記計時部により計時された経過時間を前記平均リフレッシュ間隔で除した商として得られる基準回数を、前記リフレッシュ回数カウント部により計数された回数が下回った場合、前記要求間隔を短縮することが好ましい。
【００１５】
この構成によれば、リフレッシュ回数カウント部によって、設定期間内にリフレッシュ要求部から出力されたリフレッシュ要求指示の回数が、設定期間毎に繰り返し計数される。また、計時部により計時された経過時間を平均リフレッシュ間隔で除した商として得られる基準回数を、リフレッシュ回数カウント部により計数された回数が下回った場合、すなわち平均リフレッシュ間隔でリフレッシュを繰り返した場合よりも、実際のリフレッシュの進捗度合いが遅れている場合、リフレッシュ間隔設定部によって、要求間隔が短縮される。そうすると、リフレッシュ要求部によるリフレッシュ要求の頻度が高められる結果、リフレッシュの進捗度合いの遅れが解消されて、リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減することができる。
【００１６】
また、前記リフレッシュ間隔設定部は、前記リフレッシュ換算回数から前記リフレッシュ回数カウント部により計数された回数を減じた差分に対する、当該回数から、前記計時部により計時された経過時間を前記平均リフレッシュ間隔で除した商として得られる基準回数を減じた差分の比率が、０より大きく１に満たない範囲で予め設定された目標比率を下回る場合、前記要求間隔を短縮させ、当該比率が、前記目標比率を上回る場合、前記要求間隔を増大させることが好ましい。
【００１７】
この構成によれば、リフレッシュ換算回数からリフレッシュ回数カウント部により計数された回数を減じた差分に対する、当該回数から、計時部により計時された経過時間を平均リフレッシュ間隔で除した商として得られる基準回数を減じた差分の比率は、平均リフレッシュ間隔でリフレッシュを繰り返した場合よりも実際のリフレッシュの進捗度合いが、遅れている場合０より小さくなり、進んでいる場合０より大きくなる。また、目標比率は０より大きくされているから、リフレッシュの進捗度合いが進んでいる状態に対応するように、目標比率が設定されている。
【００１８】
そうすると、前記比率が目標比率を下回り、すなわちリフレッシュの進捗度合いが目標とする進捗度合いより遅れている場合、リフレッシュ間隔設定部によって、要求間隔が短縮され、リフレッシュ要求の頻度が高められて目標とするリフレッシュの進捗度合いに近づけられる結果、リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減することができる。また、当該比率が目標比率を上回る場合、すなわちリフレッシュの進捗度合いが目標とする進捗度合いより進んでいる場合、リフレッシュ間隔設定部によって、要求間隔が増大されてリフレッシュ要求の頻度が低下される結果、リフレッシュとメモリアクセスとの競合が生じるおそれが低減される。
【００１９】
この場合、前記比率が正の値であるか負の値であるかによって、リフレッシュの進捗度合いの進み、遅れを判断することができる。従って、リフレッシュの進捗度合いの進み、遅れに応じて要求間隔を増減することが容易になる結果、リフレッシュとメモリアクセスとの競合が生じるおそれを低減しつつ、リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減することが容易となる。
【００２０】
また、前記リフレッシュ間隔設定部は、前記計時部により計時された経過時間がｔであるタイミングにおいて、前記設定期間がＴｓ、前記平均リフレッシュ間隔がｔＲＥＦＩ、前記リフレッシュ回数カウント部により計数された回数がｎであるとき下記の式（１）に基づき得られる比率Ｒが、前記目標比率を下回る場合、前記要求間隔を短縮させ、当該比率Ｒが、前記目標比率を上回る場合、前記要求間隔を増大させることが好ましい。
Ｒ＝（ｎ−ｔ／ｔＲＥＦＩ）／｛（Ｔｓ／ｔＲＥＦＩ）−ｎ｝  ・・・（１）
【００２１】
この構成によれば、式（１）に基づいて、リフレッシュ換算回数からリフレッシュ回数カウント部により計数された回数を減じた差分に対する、当該回数から、計時部により計時された経過時間を平均リフレッシュ間隔で除した商として得られる基準回数を減じた差分の比率Ｒを算出することができる。
【００２２】
また、前記リフレッシュ間隔設定部は、前記比率が前記目標比率を下回る場合、前記要求間隔を前記平均リフレッシュ間隔より短縮させ、当該比率が前記目標比率を上回る場合、前記要求間隔を前記平均リフレッシュ間隔より増大させることが好ましい。
【００２３】
この構成によれば、前記比率が目標比率を下回り、すなわちリフレッシュの進捗度合いが目標とする進捗度合いより遅れている場合、リフレッシュ間隔設定部によって、要求間隔が平均リフレッシュ間隔より短縮されることで、リフレッシュ要求の頻度を目標とするリフレッシュの進捗度合いに近づける確実性が向上される。また、当該比率が目標比率を上回り、すなわちリフレッシュの進捗度合いが目標とする進捗度合いより進んでいる場合、リフレッシュ間隔設定部によって、要求間隔が平均リフレッシュ間隔より増大されることで、平均リフレッシュ間隔でリフレッシュが繰り返された場合よりも、リフレッシュとメモリアクセスとの競合が生じるおそれが低減される。
【００２４】
また、前記ＤＲＡＭは、リフレッシュ間隔として許容できる最大限の時間である最大リフレッシュ間隔と、リフレッシュを実行後、再びリフレッシュを実行可能となるまでの最短時間である最短リフレッシュ間隔とが規定されており、前記リフレッシュ間隔設定部は、前記比率が前記目標比率を下回る場合において、前記比率と前記目標比率との差が大きくなるほど前記要求間隔が前記最短リフレッシュ間隔を下回らない範囲で小さくなるように当該要求間隔を短縮させ、前記比率が前記目標比率を上回る場合において、前記比率と前記目標比率との差が大きくなるほど前記要求間隔が前記最大リフレッシュ間隔を上回らない範囲で大きくなるように当該要求間隔を増大させることが好ましい。
【００２５】
この構成によれば、前記比率と前記目標比率との差が大きくなるほど、リフレッシュの進捗度合いと目標とする進捗度合いとの差が大きいことを意味する。また、前記比率が目標比率を下回る場合において、前記比率と目標比率との差が大きくなるほど要求間隔が最短リフレッシュ間隔を下回らない範囲で小さくなるように当該要求間隔が短縮される。これにより、最短リフレッシュ間隔の規定を満たしつつ、目標とする進捗度合いに対するリフレッシュの進捗度合いの遅れが大きいほど、リフレッシュ要求の頻度が高められる結果、リフレッシュの進捗度合いと目標とする進捗度合いとの差がすみやかに低減される。
【００２６】
また、前記比率が目標比率を上回る場合において、前記比率と目標比率との差が大きくなるほど要求間隔が最大リフレッシュ間隔を上回らない範囲で大きくなるように当該要求間隔が増大される。これにより、最大リフレッシュ間隔の規定を満たしつつ、目標とする進捗度合いに対するリフレッシュの進捗度合いの進みが大きいほど、リフレッシュ要求の頻度が低下される結果、リフレッシュの進捗度合いと目標とする進捗度合いとの差がすみやかに低減される。
【００２７】
また、前記調停部は、前記調停において、前記比率が大きくなるほど、前記競合したアクセス要求に対する前記競合したリフレッシュ要求の優先度合いを低下させることが好ましい。
【００２８】
この構成によれば、前記比率が大きくなるほど、すなわちリフレッシュの進捗度合いが進んでリフレッシュを実行するための時間的余裕が増大するほど、リフレッシュ要求の優先度合いが低下されて、競合したアクセス要求が優先的に実行されるようになる。これにより、リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減しつつ、競合が生じた際にアクセス要求が待たされるおそれを低減することができる。
【００２９】
また、前記調停部は、前記調停を行う際に、前記計時部により計時された経過時間を前記平均リフレッシュ間隔で除した商として得られる基準回数を、前記リフレッシュ回数カウント部により計数された回数が上回る場合、前記リフレッシュ要求より前記アクセス要求を優先させることが好ましい。
【００３０】
この構成によれば、調停部が調停を行う際に、平均リフレッシュ間隔でリフレッシュを繰り返した場合よりも、実際のリフレッシュの進捗度合いが進んでいる場合、リフレッシュ要求よりアクセス要求が優先される。これにより、リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減しつつ、競合が生じた際にアクセス要求が待たされるおそれを低減することができる。
【００３１】
また、前記ＤＲＡＭへのアクセス要求には、緊急度を示す緊急度情報が付与されており、前記調停部は、前記調停を行う際に、前記基準回数を、前記リフレッシュ回数カウント部により計数された回数が下回る場合、前記競合したアクセス要求に付与された緊急度情報で示される緊急度が高いほど、前記競合したリフレッシュ要求に対する当該アクセス要求の優先度合いを高めることが好ましい。
【００３２】
この構成によれば、調停部が調停を行う際に、平均リフレッシュ間隔でリフレッシュを繰り返した場合よりも実際のリフレッシュの進捗度合いが遅れている場合、競合したアクセス要求に付与された緊急度情報で示される緊急度が高いほど、競合したリフレッシュ要求に対する当該アクセス要求の優先度合いが高められる。この場合、調停部によって、アクセス要求の緊急度とリフレッシュの進捗度合いとに応じて、競合した際にいずれを優先するかが判断されるので、リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減しつつ、競合が生じた際にアクセス要求が待たされることによる影響を低減することが可能となる。
【００３３】
また、前記調停部は、前記調停を行う際に、前記計時部により計時された経過時間が前記設定期間の前半に該当する場合、前記リフレッシュ要求より前記アクセス要求を優先させ、前記計時部により計時された経過時間が前記設定期間の後半に該当し、かつ前記計時部により計時された経過時間を前記平均リフレッシュ間隔で除した商として得られる基準回数を、前記リフレッシュ回数カウント部により計数された回数が下回った場合、前記アクセス要求より前記リフレッシュ要求を優先させるようにしてもよい。
【００３４】
この構成によれば、計時部により計時された経過時間が設定期間の前半に該当する場合、すなわちリフレッシュを実行するための時間的余裕が大きい場合、調停部による調停において、リフレッシュ要求よりアクセス要求が優先される。従って、リフレッシュ条件の規定が満足できなくなるおそれが低い場合には、アクセス要求が待たされることを低減することが可能となる。また、計時部により計時された経過時間が設定期間の後半に該当し、かつ前記基準回数を、リフレッシュ回数カウント部により計数された回数が下回った場合、すなわちリフレッシュを実行するための時間的余裕が乏しい場合において、さらに平均リフレッシュ間隔でリフレッシュを繰り返した場合よりも実際のリフレッシュの進捗度合いが遅れているために、リフレッシュ条件の規定が満足できなくなるおそれが高い場合には、調停部による調停において、アクセス要求よりリフレッシュ要求が優先されるので、リフレッシュ条件の規定が満足できなくなるおそれが低減される。
【００３５】
また、前記設定期間毎に、前記リフレッシュ要求部から出力されたリフレッシュ要求指示の回数を計数するリフレッシュ回数カウント部をさらに備え、前記ＤＲＡＭは、リフレッシュ間隔として許容できる最大限の時間である最大リフレッシュ間隔と、リフレッシュを実行後、再びリフレッシュを実行可能となるまでの最短時間である最短リフレッシュ間隔とが規定されており、前記リフレッシュ間隔設定部は、前記リフレッシュ換算回数と前記リフレッシュ回数カウント部により計数された回数との差が、前記設定期間から前記計時部により計時された経過時間を差し引いた差分を、前記最大リフレッシュ間隔で除した商以下になるまで、前記要求間隔として前記最短リフレッシュ間隔を設定したまま維持するようにしてもよい。
【００３６】
この構成によれば、以後、最大リフレッシュ間隔でリフレッシュ要求を繰り返しても、リフレッシュ条件の規定を満足することができるようになるまで、要求間隔として最短リフレッシュ間隔を設定したまま、すなわち許容される最大の頻度でリフレッシュ要求が行われるので、設定期間内でリフレッシュが前倒しで実行される結果、設定期間の終わりに近いタイミングでは、リフレッシュを実行するための時間的余裕が増大するので、リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減することができる。
【００３７】
また、前記ＤＲＡＭは、ＤＤＲ２−ＳＤＲＡＭであることが好ましい。この構成によれば、ＤＤＲ２−ＳＤＲＡＭにおいて、リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減することができる。
【発明の効果】
【００３８】
このような構成のメモリアクセス制御回路は、計時部によって、予め設定された設定期間毎に、経過時間が繰り返し計時される。また、リフレッシュ換算回数は、サイクル規定時間内に実行すべきリフレッシュの回数であるリフレッシュ規定回数を、設定期間内に実行すべきリフレッシュの回数に換算した回数となる。そして、設定期間内に、リフレッシュ換算回数以上の回数、リフレッシュ要求部によるリフレッシュ要求が行われると共に、計時部により計時された経過時間が短いほど当該リフレッシュ要求を実行する時間間隔である要求間隔が短くなるように、当該要求間隔が設定される。そうすると、設定期間内において前倒しでリフレッシュが実行される。そうすると、設定期間の終わりに近いタイミングでは、リフレッシュを実行するための時間的余裕が増大するので、リフレッシュとメモリアクセスとの競合によりリフレッシュ条件の規定が満足できなくなるおそれを低減することができる。
【発明を実施するための最良の形態】
【００３９】
以下、本発明に係る実施形態を図面に基づいて説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、その説明を省略する。
【００４０】
（第１実施形態）
図１は、本発明の一実施形態に係るメモリアクセス制御回路の構成の一例を示すブロック図である。図１に示すメモリアクセス制御回路１は、リフレッシュ間隔設定部１１、リフレッシュ要求部１２、リフレッシュ間隔計時部１３（計時部）、リフレッシュ回数カウント部１４、調停部１５、ホストＩ／Ｆ１６、及びトランザクションキュー１７を備えている。
【００４１】
また、調停部１５には、バスライン２１を介してメモリデバイス２が接続されている。ホストＩ／Ｆ１６には、バスライン３１を介して上位システム３が接続されている。
【００４２】
メモリデバイス２は、ＤＲＡＭであり、例えばＤＤＲ２−ＳＤＲＡＭである。メモリデバイス２は、リフレッシュ要求部１２から調停部１５を介して出力されたオートリフレッシュコマンド（リフレッシュ要求）を受け付けると、内部でリフレッシュアドレスを自動的に生成してリフレッシュを実行するようになっている。
【００４３】
また、メモリデバイス２は、例えばリフレッシュサイクルが８１９２／６４ｍｓｅｃとして規定されており、６４ｍｓｅｃのサイクル規定時間ｔｃ内に、リフレッシュ規定回数である８１９２回リフレッシュを実行する必要がある。また、平均リフレッシュ間隔ｔＲＥＦＩは、７．８μｓｅｃとなっている。また、メモリデバイス２において、リフレッシュを実行後、再びリフレッシュを実行可能となるまでの最短時間である最短リフレッシュ間隔ｔＲＦＣは、例えば１２７．５ｎｓｅｃ、リフレッシュ間隔として許容できる最大限の時間である最大リフレッシュ間隔ｔＲＦＬは、例えば平均リフレッシュ間隔ｔＲＥＦＩの９倍に規定されており、例えば７０．２μｓｅｃとなっている。
【００４４】
上位システム３は、メモリアクセス制御回路１を用いてメモリデバイス２にアクセスするマスターデバイスであり、例えばＣＰＵ（Central Processing Unit）、ＤＭＡＣ（Direct Memory Access Controller）、スキャナー装置、画像出力エンジン等、種々のデバイスや装置である。上位システム３は、ホストＩ／Ｆ１６へメモリデバイス２へのアクセス要求を出力する際に、当該アクセス要求の緊急度を示す緊急度情報を付与して出力する。
【００４５】
ホストＩ／Ｆ１６は、上位システム３からのメモリデバイス２への、緊急度情報が付与されたアクセス要求を受け付けて、トランザクションキュー１７へ出力する。トランザクションキュー１７は、ホストＩ／Ｆ１６から出力されたアクセス要求を緊急度情報と共に記憶して、先入れ先出しで調停部１５へ出力するキューバッファである。
【００４６】
リフレッシュ要求部１２は、リフレッシュ間隔設定部１１からの制御信号に応じてメモリデバイス２のオートリフレッシュコマンドを調停部１５へ出力する。なお、リフレッシュ要求部１２は、メモリデバイス２が、ＤＤＲ−ＳＤＲＡＭ等のオートリフレッシュコマンドに対応したデバイスではない場合、オートリフレッシュコマンドを出力する代わりに、例えばリフレッシュアドレスを生成したり、当該デバイスに規定されているリフレッシュの指示信号を出力したりすることによって、リフレッシュ要求を行うようにしてもよい。
【００４７】
リフレッシュ間隔計時部１３は、タイマ回路を用いて構成されている。そして、リフレッシュ間隔計時部１３は、予め設定された設定期間Ｔｓ毎に、経過時間ｔの計時を行う。設定期間Ｔｓは、サイクル規定時間ｔｃと所定の整数Ｎとに基づいて、Ｔｓ＝ｔｃ／Ｎ  （Ｎ＝１，２，３，・・・）となるように、設定されている。
【００４８】
また、リフレッシュ間隔計時部１３は、設定期間Ｔｓが経過する都度、リフレッシュ回数カウント部１４をリセットするカウンタリセット信号を出力する。さらに、リフレッシュ間隔計時部１３は、例えば調停部１５からメモリデバイス２へ出力される制御信号を監視して、調停部１５からオートリフレッシュコマンドが出力された後の経過時間をリフレッシュ経過時間ｔｒとして計時する。
【００４９】
リフレッシュ回数カウント部１４は、カウンタ回路を用いて構成されている。リフレッシュ回数カウント部１４は、リフレッシュ間隔計時部１３からのカウンタリセット信号に応じて、カウント値がゼロにリセットされるようになっている。また、リフレッシュ回数カウント部１４は、例えば調停部１５からメモリデバイス２へ出力される制御信号を監視して、調停部１５からオートリフレッシュコマンドが出力される都度、カウンタ値を一つ加算する。これにより、リフレッシュ回数カウント部１４によって、前回リフレッシュが実行されてから経過時間ｔが経過した現時点までに実行されたリフレッシュ回数ｎが計時される。
【００５０】
リフレッシュ間隔設定部１１は、順序回路や論理回路等を用いて構成されている。リフレッシュ間隔設定部１１は、リフレッシュ間隔計時部１３により計時された経過時間ｔのタイミングにおいて、リフレッシュ回数カウント部１４により計数されたリフレッシュ回数ｎに基づき、下記の式（１）から得られる比率Ｒが、０より大きく１に満たない範囲で予め設定された目標比率、例えば０．５〜０．７５の範囲に設定された目標比率を下回る場合、要求間隔ｔｄを平均リフレッシュ間隔ｔＲＥＦＩより短縮させ、当該比率Ｒが、前記目標比率を上回る場合、要求間隔ｔｄを平均リフレッシュ間隔ｔＲＥＦＩより増大させる。
【００５１】
Ｒ＝（ｎ−ｔ／ｔＲＥＦＩ）／｛（Ｔｓ／ｔＲＥＦＩ）−ｎ｝  ・・・（１）
式（１）において、（Ｔｓ／ｔＲＥＦＩ）の項は、設定期間Ｔｓ内に実行する必要のあるリフレッシュ回数であるリフレッシュ換算回数Ｎｋを示している。また、リフレッシュ間隔設定部１１は、このようにして得られた比率Ｒを調停部１５へ出力する。
【００５２】
調停部１５は、トランザクションキュー１７からのアクセス要求と、リフレッシュ要求部１２からのオートリフレッシュコマンドとが競合した場合、当該アクセス要求と当該オートリフレッシュコマンドとを調停し、いずれかを選択してメモリデバイス２へ出力する。
【００５３】
調停部１５は、この調停を行う際に、当該アクセス要求に付与された緊急度情報と、リフレッシュ間隔設定部１１から出力された比率Ｒとに基づいて、アクセス要求と当該オートリフレッシュコマンドとの優先順位を判定する。そして、調停部１５は、判定した優先順位に基づいて、競合したアクセス要求とオートリフレッシュコマンドとのうちいずれかを選択する。
【００５４】
なお、リフレッシュ間隔設定部１１、リフレッシュ要求部１２、リフレッシュ間隔計時部１３、及びリフレッシュ回数カウント部１４は、例えばＣＰＵ等の制御回路を用いて構成されていてもよい。
【００５５】
次に、上述のように構成されたメモリアクセス制御回路１の動作について説明する。図２は、図１に示すメモリアクセス制御回路１の動作の一例を示す説明図である。図２においては、例えば設定期間Ｔｓがサイクル規定時間ｔｃ（６４ｍｓｅｃ）に等しい時間に設定されており、リフレッシュ換算回数Ｎｋは、例えば８１９２回となる。
【００５６】
図２において、グラフＧ１は、平均リフレッシュ間隔ｔＲＥＦＩでリフレッシュを繰り返した場合における、経過時間ｔと、経過時間ｔの間に実行されるリフレッシュ回数との関係を示している。グラフＧ１に示すように、メモリアクセス要求との競合によってリフレッシュが待たされることなく平均リフレッシュ間隔ｔＲＥＦＩでリフレッシュが繰り返されれば、設定期間Ｔｓ（６４ｍｓｅｃ）が経過したタイミングでリフレッシュ換算回数Ｎｋ（８１９２回）回のリフレッシュが実行されることとなり、メモリデバイス２のリフレッシュ条件が満たされる。
【００５７】
図２において、グラフＧ２は、メモリアクセス制御回路１によってメモリデバイス２のリフレッシュが実行される場合の経過時間ｔと、経過時間ｔの間に実行されるリフレッシュ回数ｎとの関係を示している。また、図２において、回数ｎａｖｇは、平均リフレッシュ間隔ｔＲＥＦＩでリフレッシュが行われた場合の、経過時間ｔ１におけるリフレッシュ回数ｎを示している。この場合、回数ｎａｖｇは、ｔ１／ｔＲＥＦＩで与えられ、請求項における基準回数に相当している。
【００５８】
図３は、図１に示すリフレッシュ間隔設定部１１による要求間隔ｔｄの設定動作の一例、及び図１に示す調停部１５による調停動作の一例を説明するための説明図である。
【００５９】
まず、アクセス要求とリフレッシュ要求との競合が生じない場合の動作について説明する。まず、リフレッシュ間隔計時部１３によって、経過時間ｔの計時が開始される。そして、リフレッシュ間隔設定部１１によって、例えば要求間隔ｔｄがｔＲＥＦＩ／２に設定され、すなわち平均リフレッシュ間隔ｔＲＥＦＩより短い時間に設定される。そして、リフレッシュ間隔設定部１１によって、ｔＲＥＦＩ／２の時間間隔でリフレッシュ要求を要求する制御信号がリフレッシュ要求部１２へ出力される。
【００６０】
そうすると、リフレッシュ要求部１２からオートリフレッシュコマンドが調停部１５へ出力されて、調停部１５からメモリデバイス２へオートリフレッシュコマンドが出力される。そして、メモリデバイス２でリフレッシュが実行される。
【００６１】
このとき、調停部１５から出力されたオートリフレッシュコマンドがリフレッシュ回数カウント部１４で検出されて、リフレッシュ回数カウント部１４によって、オートリフレッシュコマンドの出力回数、すなわちリフレッシュ回数ｎが計数される。
【００６２】
次に、リフレッシュ間隔設定部１１によって、リフレッシュ回数カウント部１４で計数されたリフレッシュ回数ｎと、リフレッシュ間隔計時部１３で計時された経過時間ｔと、平均リフレッシュ間隔ｔＲＥＦＩと、設定期間Ｔｓとに基づいて、式（１）が計算され、比率Ｒが算出される。
【００６３】
例えば、経過時間ｔがｔ１，リフレッシュ回数ｎがｎ１のとき、比率Ｒ＝（ｎ１−ｔ１／ｔＲＥＦＩ）／｛（Ｔｓ／ｔＲＥＦＩ）−ｎ１｝となる。リフレッシュ換算回数Ｎｋ＝Ｔｓ／ｔＲＥＦＩであるから、比率Ｒ＝（ｎ１−ｔ１／ｔＲＥＦＩ）／（Ｎｋ−ｎ１）となる。ここで、比率Ｒの分母である（Ｎｋ−ｎ１）は、図２に示すαに相当する。また、ｔ１／ｔＲＥＦＩは、ｎａｖｇに等しいから、比率Ｒの分子である（ｎ１−ｔ１／ｔＲＥＦＩ）は、図２に示すβに相当する。すなわち、Ｒ＝β／αとなる。
【００６４】
そうすると、平均リフレッシュ間隔ｔＲＥＦＩでリフレッシュを繰り返した場合に経過時間ｔ１において実行済みとなるリフレッシュ回数ｎａｖｇより、実際に実行されたリフレッシュ回数ｎ１の方が多くなるほど比率Ｒが大きくなる。すなわち、比率Ｒが大きくなるほど、設定期間Ｔｓ内に実行すべきリフレッシュ換算回数Ｎｋのリフレッシュが、均一の時間間隔で実行された場合よりも前倒しで実行されたことを示している。
【００６５】
また、比率Ｒが負の値をとる場合には、リフレッシュ換算回数Ｎｋのリフレッシュが、均一の時間間隔で実行された場合よりも遅れて実行されたことを示している。
【００６６】
そして、リフレッシュ間隔設定部１１によって、算出された比率Ｒが所定の基準値と比較される。具体的には、図３に示すように、比率Ｒが０以上０．５未満であった場合、すなわちリフレッシュの実行が、平均リフレッシュ間隔ｔＲＥＦＩで実行された場合と同程度か僅かに進んでいる場合、さらにリフレッシュの実行を前倒すべく、リフレッシュ間隔設定部１１によって、要求間隔ｔｄが平均リフレッシュ間隔ｔＲＥＦＩより小さいｔＲＥＦＩ／２に設定され、リフレッシュ要求部１２によるオートリフレッシュコマンドの出力頻度が平均リフレッシュ間隔ｔＲＥＦＩより高められる。
【００６７】
また、比率Ｒが、目標比率である０．５以上０．７５未満であった場合、すなわちリフレッシュの実行が平均リフレッシュ間隔ｔＲＥＦＩで実行された場合よりも進んでおり、リフレッシュの実行に余裕が生じている場合、リフレッシュ間隔設定部１１によって、要求間隔ｔｄが平均リフレッシュ間隔ｔＲＥＦＩに設定される。そうすると、リフレッシュの実行進捗の余裕が維持されつつ、要求間隔ｔｄがｔＲＥＦＩ／２よりも増大されることで、アクセス要求とオートリフレッシュコマンドとの競合が生じる確率が低減される。
【００６８】
また、比率Ｒが、０．７５以上であった場合、すなわちリフレッシュの実行が平均リフレッシュ間隔ｔＲＥＦＩで実行された場合よりも相当程度進んでおり、リフレッシュの実行に充分な余裕が生じている場合、リフレッシュ間隔設定部１１によって、要求間隔ｔｄが平均リフレッシュ間隔ｔＲＥＦＩより長いｔＲＥＦＩ×２に設定される。
【００６９】
そうすると、リフレッシュ要求部１２によるオートリフレッシュコマンドの出力頻度が低減されて、アクセス要求とオートリフレッシュコマンドとの競合が生じる確率がさらに低減される。また、ｔＲＥＦＩ×２は、メモリデバイス２の最大リフレッシュ間隔ｔＲＦＬより小さな値にされており、最大リフレッシュ間隔ｔＲＦＬの規定が満たされるようになっている。
【００７０】
このようにして、リフレッシュ間隔設定部１１によって、要求間隔ｔｄが設定される結果、設定期間Ｔｓ内に、設定期間Ｔｓを平均リフレッシュ間隔ｔＲＥＦＩで除した商として得られるリフレッシュ換算回数Ｎｋ以上、リフレッシュ要求部１２によってオートリフレッシュコマンドを出力される。また、結果的に、リフレッシュ間隔計時部１３により計時された経過時間ｔが短いほど、オートリフレッシュコマンドを出力する時間間隔である要求間隔ｔｄが短くなるように、要求間隔ｔｄが設定されることとなる。
【００７１】
そうすると、設定期間Ｔｓ内において、メモリデバイス２で規定されているリフレッシュ回数が前倒しで実行されることになる。従って、前回のリフレッシュからの経過時間がメモリデバイス２のサイクル規定時間ｔｃに近いタイミングでオートリフレッシュコマンドの発行とメモリアクセスとが競合してオートリフレッシュコマンドの発行が待たされた場合であっても、サイクル規定時間ｔｃの末期に近いタイミングでは、実行しなければならないリフレッシュ回数の残りが低減されている結果、メモリデバイス２が要求するリフレッシュ条件を満足できなくなるおそれが低減される。
【００７２】
ところで、オートリフレッシュコマンドの発行とメモリアクセスとが競合して、調停部１５によりオートリフレッシュコマンドの発行が待たされた場合、リフレッシュの実行進捗が、平均リフレッシュ間隔ｔＲＥＦＩで実行された場合よりも遅れる場合がある。リフレッシュの実行進捗が、平均リフレッシュ間隔ｔＲＥＦＩで実行された場合よりも遅れると、以後平均リフレッシュ間隔ｔＲＥＦＩでリフレッシュを実行しても設定期間Ｔｓ内にリフレッシュ換算回数Ｎｋのリフレッシュを実行することができず、従って、メモリデバイス２が要求するリフレッシュ条件を満たすことができなくなってしまう。
【００７３】
そこで、比率Ｒが−０．５以上０未満であった場合、リフレッシュ換算回数Ｎｋのリフレッシュが、均一の時間間隔で実行された場合よりも遅れて実行されていることを示しているから、リフレッシュ間隔設定部１１によって、リフレッシュの実行頻度を増大させるべく、要求間隔ｔｄがｔＲＥＦＩ／４に設定される。そうすると、リフレッシュの実行頻度が高められて、比率Ｒが増大する。
【００７４】
また、比率Ｒが−０．５未満であった場合、リフレッシュ換算回数Ｎｋのリフレッシュが、均一の時間間隔で実行された場合よりも相当程度遅れて実行されていることを示しているから、リフレッシュ間隔設定部１１によって、リフレッシュの実行頻度をさらに増大させるべく、要求間隔ｔｄがｔＲＥＦＩ／８に設定される。そうすると、リフレッシュの実行頻度がさらに高められて、比率Ｒが急速に増大する。また、ｔＲＥＦＩ／８は、最短リフレッシュ間隔ｔＲＦＣより大きな値にされており、最短リフレッシュ間隔ｔＲＦＣの規定が満たされるようになっている。
【００７５】
以上の動作が、リフレッシュ間隔計時部１３によって設定期間Ｔｓが計時される都度、すなわち設定期間Ｔｓ毎に実行される。
【００７６】
なお、設定期間Ｔｓとサイクル規定時間ｔｃとが等しい場合（Ｎ＝１）の例を示したが、Ｔｓ＝ｔｃ／Ｎ  （Ｎ＝１，２，３，・・・）であれば、設定期間Ｔｓ内にリフレッシュ換算回数Ｎｋのリフレッシュを実行することで、自動的にメモリデバイス２のリフレッシュサイクル規定を満たすことができる。また、サイクル規定時間ｔｃが設定期間Ｔｓの整数倍でない場合や、サイクル規定時間ｔｃより設定期間Ｔｓが長い場合には、別途、サイクル規定時間ｔｃ内に規定回数のリフレッシュが実行されるように、リフレッシュの実行を制御するようにしてもよい。
【００７７】
次に、図１に示す調停部１５による調停動作について説明する。上位システム３から出力され、トランザクションキュー１７に記憶されるアクセス要求には、当該アクセス要求の緊急度を示す緊急度情報が、例えば緊急度の高い方から順に１〜４の数値で付与されている。
【００７８】
また、調停部１５は、例えば図３に示すように、競合が生じた場合にアクセス要求とオートリフレッシュコマンドとのうちいずれを優先するかを判断するための優先順位判断閾値が設定されている。具体的には、−０．５以上０未満の比率Ｒと優先順位判断閾値「１」とが対応付けられ、０以上０．５未満の比率Ｒと優先順位判断閾値「２」とが対応付けられ、０．５以上０．７５未満の比率Ｒと優先順位判断閾値「３」とが対応付けられ、０．７５以上の比率Ｒと優先順位判断閾値「４」とが対応付けられて設定されている。
【００７９】
そして、調停部１５は、アクセス要求とオートリフレッシュコマンドとの競合を検出すると、当該オートリフレッシュコマンドの緊急度情報と、リフレッシュ間隔設定部１１から出力された比率Ｒと、当該比率Ｒに対応する優先順位判断閾値とに基づいて、いずれを優先するかを決定する。
【００８０】
具体的には、リフレッシュ間隔設定部１１から出力された比率Ｒが−０．５以上０未満であった場合、リフレッシュの実行進捗が僅かに遅れており、リフレッシュの実行を遅らせる余裕がない状態である。そのため、調停部１５は、−０．５以上０未満の優先順位判定閾値「１」以下の緊急度情報が付与された最も緊急度の高いアクセス要求のみ、オートリフレッシュコマンドより優先してメモリデバイス２へ出力する。そして、アクセス要求に付与された緊急度情報が、優先順位判定閾値「１」より大きい値の「２〜４」であった場合はオートリフレッシュコマンドを選択してメモリデバイス２へ出力する。
【００８１】
また、リフレッシュ間隔設定部１１から出力された比率Ｒが０以上０．５未満であった場合、リフレッシュの実行進捗が平均リフレッシュ間隔ｔＲＥＦＩで実行された場合と同程度か僅かに進んでいる状態であり、リフレッシュの実行を遅らせる余裕が僅かしかない状態である。そのため、調停部１５は、０以上０．５未満の優先順位判定閾値「２」以下の緊急度情報が付与された比較的緊急度の高いアクセス要求のみ、オートリフレッシュコマンドより優先してメモリデバイス２へ出力する。そして、アクセス要求に付与された緊急度情報が、優先順位判定閾値「２」より大きい値であった場合はオートリフレッシュコマンドを選択してメモリデバイス２へ出力する。
【００８２】
また、リフレッシュ間隔設定部１１から出力された比率Ｒが目標比率である０．５以上０．７５未満であった場合、リフレッシュの実行が平均リフレッシュ間隔ｔＲＥＦＩで実行された場合よりも進んでおり、リフレッシュの実行に余裕が生じている。そのため、調停部１５は、０．５以上０．７５未満の優先順位判定閾値「３」以下の緊急度情報が付与された比較的緊急度の低いアクセス要求であっても、オートリフレッシュコマンドより優先してメモリデバイス２へ出力する。そして、アクセス要求に付与された緊急度情報が、優先順位判定閾値「３」より大きく、最も緊急度の低い「４」であった場合はオートリフレッシュコマンドを選択してメモリデバイス２へ出力する。
【００８３】
また、リフレッシュ間隔設定部１１から出力された比率Ｒが０．７５以上であった場合、リフレッシュの実行が平均リフレッシュ間隔ｔＲＥＦＩで実行された場合よりも相当程度進んでおり、リフレッシュの実行に充分な余裕が生じている。そのため、調停部１５は、優先順位判定閾値「４」以下の緊急度情報が付与されたアクセス要求、すなわちすべてのアクセス要求を無条件でオートリフレッシュコマンドより優先してメモリデバイス２へ出力する。
【００８４】
また、比率Ｒが−０．５未満であった場合、リフレッシュの実行が平均リフレッシュ間隔ｔＲＥＦＩで実行された場合よりも相当程度遅れており、リフレッシュの実行を遅らせる余裕がない。そのため、調停部１５は、アクセス要求の緊急度情報と関わりなく、無条件でオートリフレッシュコマンドを選択してメモリデバイス２へ出力する。
【００８５】
このように、調停部１５は、アクセス要求とオートリフレッシュコマンドとの競合が生じた場合、上位システム３から出力されたアクセス要求の緊急度が高いものほど、オートリフレッシュコマンドに対する優先度を高める。これにより、アクセス要求とオートリフレッシュコマンドとの競合が生じた場合にメモリアクセスの待ちが生じることの影響が低減される。
【００８６】
また、調停部１５は、アクセス要求とオートリフレッシュコマンドとの競合が生じた場合、比率Ｒが大きくなってリフレッシュの実行についての余裕が大きくなるほどアクセス要求に対するオートリフレッシュコマンドの優先度合いが低下されるので、リフレッシュ条件の規定が満足できなくなるおそれを低減しつつ、競合によりメモリアクセスが待たされるおそれを低減することができる。
【００８７】
なお、調停部１５は、調停を行う際に、リフレッシュ間隔計時部１３により計時された経過時間ｔを平均リフレッシュ間隔ｔＲＥＦＩで除した商（ｔ／ｔＲＥＦＩ）として得られる基準回数（ｎａｖｇ）を、リフレッシュ回数カウント部１４により計数されたリフレッシュ回数ｎが上回る場合、すなわち比率Ｒが０を上回る場合、アクセス要求の緊急度情報と関わりなく、オートリフレッシュコマンドよりアクセス要求を優先させるようにしてもよい。
【００８８】
また、調停部１５は、調停を行う際に、リフレッシュ間隔計時部１３により計時された経過時間ｔを平均リフレッシュ間隔ｔＲＥＦＩで除した商（ｔ／ｔＲＥＦＩ）として得られる基準回数（ｎａｖｇ）を、リフレッシュ回数カウント部１４により計数されたリフレッシュ回数ｎが下回る場合、すなわち比率Ｒが０を下回る場合にのみ、上述のように競合したアクセス要求に付与された緊急度情報で示される緊急度が高いほど、競合したオートリフレッシュコマンドに対する当該アクセス要求の優先度合いを高めるようにしてもよい。
【００８９】
これによれば、基準回数（ｎａｖｇ）をリフレッシュ回数ｎが上回り、すなわちリフレッシュの実行が平均リフレッシュ間隔ｔＲＥＦＩで実行されたときより進んでおり、メモリデバイス２のリフレッシュ条件を満たせなくなるおそれが小さい場合には、競合によりアクセス要求が待たされるいわゆるペナルティの発生が低減される。
【００９０】
また、調停部１５は、調停を行う際に、リフレッシュ間隔計時部１３により計時された経過時間ｔが設定期間Ｔｓの前半に該当する場合、オートリフレッシュコマンドよりアクセス要求を優先させ、経過時間ｔが設定期間Ｔｓの後半に該当し、かつリフレッシュ間隔計時部１３により計時された経過時間ｔを平均リフレッシュ間隔ｔＲＥＦＩで除した商（ｔ／ｔＲＥＦＩ）として得られる基準回数（ｎａｖｇ）を、リフレッシュ回数カウント部１４により計数されたリフレッシュ回数ｎが下回る場合、すなわち比率Ｒが０を下回る場合に、アクセス要求よりオートリフレッシュコマンドを優先させるようにしてもよい。
【００９１】
この場合、まだリフレッシュの実行に時間的な余裕がある設定期間Ｔｓの前半は、オートリフレッシュコマンドよりアクセス要求が優先されるので、競合によりアクセス要求が待たされるいわゆるペナルティの発生が低減される。また、リフレッシュの実行に時間的な余裕がない設定期間Ｔｓの後半は、アクセス要求よりオートリフレッシュコマンドが優先されるので、競合によりメモリデバイス２のリフレッシュ条件を満たせなくなるおそれが低減される。
【００９２】
（第２実施形態）
次に、本発明の第２の実施形態に係るメモリアクセス制御回路１ａについて説明する。メモリアクセス制御回路１ａは、メモリアクセス制御回路１と同様、図１に示される。メモリアクセス制御回路１ａは、メモリアクセス制御回路１とは、リフレッシュ間隔設定部１１ａの動作が異なる。
【００９３】
リフレッシュ間隔設定部１１ａは、リフレッシュ換算回数Ｎｋとリフレッシュ回数カウント部１４により計数されたリフレッシュ回数ｎとの差が、設定期間Ｔｓからリフレッシュ間隔計時部１３により計時された経過時間ｔを差し引いた差分を、最大リフレッシュ間隔ｔＲＦＬで除した商以下になるまで、要求間隔ｔｄを最短リフレッシュ間隔ｔＲＦＣのまま維持する。
【００９４】
その他の構成はメモリアクセス制御回路１と同様であるのでその説明を省略する。以下、第２の実施形態に係るメモリアクセス制御回路１ａの動作について説明する。図４は、図１に示すメモリアクセス制御回路１ａの動作の一例を示す説明図である。図４においては、例えば設定期間Ｔｓがサイクル規定時間ｔｃ（６４ｍｓｅｃ）に等しい時間に設定されており、リフレッシュ換算回数Ｎｋは、例えば８１９２回となる。
【００９５】
図４において、グラフＧ１は、平均リフレッシュ間隔ｔＲＥＦＩでリフレッシュを繰り返した場合における、経過時間ｔと、経過時間ｔの間に実行されるリフレッシュ回数との関係を示している。グラフＧ１に示すように、メモリアクセス要求との競合によってリフレッシュが待たされることなく平均リフレッシュ間隔ｔＲＥＦＩでリフレッシュが繰り返されれば、設定期間Ｔｓ（６４ｍｓｅｃ）が経過したタイミングでリフレッシュ換算回数Ｎｋ（８１９２回）回のリフレッシュが実行されることとなり、メモリデバイス２のリフレッシュ条件が満たされる。
【００９６】
図４において、グラフＧ３は、メモリアクセス制御回路１ａによってメモリデバイス２のリフレッシュが実行される場合の経過時間ｔと、経過時間ｔの間に実行されるリフレッシュ回数ｎとの関係を示している。
【００９７】
まず、リフレッシュ間隔計時部１３によって、経過時間ｔの計時が開始される。そして、リフレッシュ間隔設定部１１ａによって、例えば要求間隔ｔｄが最短リフレッシュ間隔ｔＲＦＣに設定され、すなわち可能な範囲で最大の頻度でメモリデバイス２のリフレッシュが実行される。
【００９８】
そして、リフレッシュ間隔設定部１１ａによって、リフレッシュ換算回数Ｎｋ、リフレッシュ回数カウント部１４により計数されたリフレッシュ回数ｎ、設定期間Ｔｓ、リフレッシュ間隔計時部１３により計時された経過時間ｔ、及び最大リフレッシュ間隔ｔＲＦＬに基づいて、下記の式（２）の条件が満たされるまで、要求間隔ｔｄが最短リフレッシュ間隔ｔＲＦＣのまま維持される。
【００９９】
（Ｎｋ−ｎ）≦（Ｔｓ−ｔ）／ｔＲＦＬ  ・・・（２）
これにより、式（２）の条件が満たされるまで、最短リフレッシュ間隔ｔＲＦＣで、リフレッシュ要求部１２からオートリフレッシュコマンドが調停部１５へ出力されて、調停部１５からメモリデバイス２へオートリフレッシュコマンドが出力される。そして、メモリデバイス２でリフレッシュが実行される。
【０１００】
そして、経過時間ｔがｔ２，リフレッシュ回数ｎがｎ２になったとき、（Ｎｋ−ｎ２）≦（Ｔｓ−ｔ２）／ｔＲＦＬ  が成立すると、リフレッシュ間隔設定部１１ａによって、例えば要求間隔ｔｄが最大リフレッシュ間隔ｔＲＦＬに設定され、すなわち可能な範囲で最小の頻度でメモリデバイス２のリフレッシュが実行される。
【０１０１】
この場合、上記式（２）が成立することは、以降、最大リフレッシュ間隔ｔＲＦＬでリフレッシュを繰り返しても、メモリデバイス２のリフレッシュ条件が満たされることを示している。これにより、リフレッシュ間隔計時部１３により計時された経過時間ｔが短い設定期間Ｔｓの初期において要求間隔ｔｄが短縮される。
【０１０２】
このようにして、リフレッシュ間隔設定部１１ａによって、要求間隔ｔｄが設定される結果、設定期間Ｔｓ内にリフレッシュ換算回数Ｎｋ以上、リフレッシュ要求部１２によってオートリフレッシュコマンドが出力される。また、設定期間Ｔｓ内において、メモリデバイス２で規定されているリフレッシュ回数が前倒しで実行されることになる。従って、前回のリフレッシュからの経過時間がメモリデバイス２のサイクル規定時間ｔｃに近いタイミングでオートリフレッシュコマンドの発行とメモリアクセスとが競合してオートリフレッシュコマンドの発行が待たされた場合であっても、サイクル規定時間ｔｃの末期に近いタイミングでは、実行しなければならないリフレッシュ回数の残りが低減されている結果、メモリデバイス２が要求するリフレッシュ条件を満足できなくなるおそれが低減される。
【図面の簡単な説明】
【０１０３】
【図１】本発明の一実施形態に係るメモリアクセス制御回路の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態に係るメモリアクセス制御回路の動作の一例を示す説明図である。
【図３】本発明の第１の実施形態に係るリフレッシュ間隔設定部による要求間隔の設定動作の一例、及び調停部による調停動作の一例を説明するための説明図である。
【図４】本発明の第２の実施形態に係るメモリアクセス制御回路の動作の一例を示す説明図である。
【符号の説明】
【０１０４】
１，１ａ  メモリアクセス制御回路
２  メモリデバイス
３  上位システム
１１，１１ａ  リフレッシュ間隔設定部
１２  リフレッシュ要求部
１３  リフレッシュ間隔計時部
１４  リフレッシュ回数カウント部
１５  調停部
１６  ホストＩ／Ｆ
１７  トランザクションキュー
Ｎｋ  リフレッシュ換算回数
Ｒ  比率
ｎ  リフレッシュ回数
ｔ  経過時間
ｔＲＥＦＩ  平均リフレッシュ間隔
ｔＲＦＣ  最短リフレッシュ間隔
ｔＲＦＬ  最大リフレッシュ間隔
ｔｃ  サイクル規定時間
ｔｄ  要求間隔
ｔｒ  リフレッシュ経過時間
【図１】
2009093740.tif 000003
【図２】
2009093740.tif 000004
【図３】
2009093740.tif 000005
【図４】
2009093740.tif 000006