(57)【要約】【課題】メモリのリフレッシュによる消費電力を低減しつつも、メモリのデータを保障すること。【解決手段】一実施の形態によれば、制御回路は、メモリのリフレッシュを実施することを示す第１の値、又は、メモリのリフレッシュを抑止することを示す第２の値を示す状態情報が格納される記憶部と、所定周期毎に、状態情報が第１の値を示す場合には、メモリのリフレッシュを実施するとともに状態情報を前記第２の値に更新し、状態情報が第２の値を示す場合には、メモリのリフレッシュを抑止するとともに状態情報を第１の値に更新する制御部と、を備える。制御部は、メモリがアクセスされた場合、状態情報を第２の値に更新する。【選択図】図６
2014235770.tif 000002
【特許請求の範囲】
【請求項１】
メモリのリフレッシュを実施することを示す第１の値、又は、前記メモリのリフレッシュを抑止することを示す第２の値を示す状態情報が格納される記憶部と、
所定周期毎に、前記状態情報が前記第１の値を示す場合には、前記メモリのリフレッシュを実施するとともに前記状態情報を前記第２の値に更新し、前記状態情報が前記第２の値を示す場合には、前記メモリのリフレッシュを抑止するとともに前記状態情報を前記第１の値に更新する制御部と、を備え、
前記制御部は、前記メモリがアクセスされた場合、前記状態情報を前記第２の値に更新する、
制御回路。
【請求項２】
前記メモリは、複数のメモリバンクを含み、
前記記憶部は、前記複数のメモリバンクのそれぞれについて前記状態情報が格納され、
前記制御部は、前記メモリのリフレッシュを、前記第１の値を示す状態情報に対応するメモリバンクについて実施し、前記メモリのリフレッシュの抑止を、前記第２の値を示す状態情報に対応するメモリバンクについて実施し、
前記制御部は、前記メモリがアクセスされた場合、アクセスされたメモリバンクに対応する状態情報を前記第２の値に更新する、
請求項１に記載の制御回路。
【請求項３】
前記メモリは、前記複数のメモリバンクのｗｏｒｄ線単位でリフレッシュされるものであり、
前記記憶部は、前記メモリバンクのｗｏｒｄ線単位の記憶領域のそれぞれについて前記状態情報が格納され、
前記制御部は、前記メモリのリフレッシュを、前記第１の値を示す状態情報に対応する記憶領域について実施し、前記メモリのリフレッシュの抑止を、前記第２の値を示す状態情報に対応する記憶領域について実施し、
前記制御部は、前記メモリがアクセスされた場合に、アクセスされた記憶領域に対応する状態情報を前記第２の値に更新する、
請求項２に記載の制御回路。
【請求項４】
前記制御回路は、前記メモリを有するメモリ回路であり、
前記制御部は、外部から前記所定周期毎に発行されるリフレッシュコマンドに応じて、前記状態情報が示す値を判定し、前記メモリのリフレッシュの実施又は抑止を行う、
請求項１に記載の制御回路。
【請求項５】
前記記憶部は、前記メモリの一部が用いられる、
請求項４に記載の制御回路。
【請求項６】
前記制御回路は、前記メモリを含むメモリ回路に対してアクセスするマイクロコントローラであり、
前記制御部は、前記所定周期毎にリフレッシュコマンドを前記メモリ回路に発行し、
前記制御部は、前記状態情報が前記第１の値を示す場合、当該状態情報が示す第１の値に応じた値を、前記リフレッシュコマンドの発行に応じて前記メモリのリフレッシュを実施するように指示する指示信号として前記記憶部から前記メモリ回路に出力させることで、前記メモリのリフレッシュを実施し、前記状態情報が前記第２の値を示す場合、当該状態情報が示す第２の値に応じた値を、前記リフレッシュコマンドの発行に応じた前記メモリのリフレッシュを抑止するように指示する指示信号として前記記憶部から前記メモリ回路に出力させることで、前記メモリのリフレッシュを抑止する、
請求項１に記載の制御回路。
【請求項７】
前記メモリは、ｗｏｒｄ線単位の記憶領域のそれぞれを、前記制御部からのリフレッシュコマンドの発行に応じて、リフレッシュ対象とする記憶領域を所定順序で切り替えつつリフレッシュするものであり、
前記制御部は、前記記憶領域のそれぞれについて、それぞれがリフレッシュ対象となるリフレッシュコマンドが前記所定周期毎に発行されるような周期で、前記リフレッシュコマンドを発行し、
前記制御部は、前記指示信号の出力元とする状態情報を、前記リフレッシュコマンドの発行に応じて、前記リフレッシュ対象の記憶領域に対応した状態情報となる順序で切り替える、
請求項６に記載の制御回路。
【請求項８】
前記所定周期は、予め規定された前記メモリのリフレッシュ周期の半周期である、
請求項１に記載の制御回路。
【請求項９】
メモリのリフレッシュ方法であって、
所定周期毎に、記憶部に格納された状態情報が前記メモリのリフレッシュを実施することを示す第１の値である場合には、前記メモリのリフレッシュを実施するとともに当該状態情報を前記メモリのリフレッシュを抑止することを示す第２の値に更新し、前記状態情報が前記第２の値を示す場合には、前記メモリのリフレッシュを抑止するとともに当該状態情報を前記第１の値に更新し、
前記メモリがアクセスされた場合、前記状態情報を前記第２の値に更新する、
リフレッシュ方法。
【請求項１０】
所定のリフレッシュ周期毎のリフレッシュタイミングでメモリをリフレッシュする制御部を備え、
前記制御部は、前記リフレッシュタイミングに対して前記リフレッシュ周期の半周期前のタイミングから当該リフレッシュタイミングまでに前記メモリがアクセスされた場合、当該リフレッシュタイミングにおけるメモリのリフレッシュを抑止するとともに、当該リフレッシュタイミングに対して前記リフレッシュ周期の半周期後のタイミングを前記リフレッシュタイミングに変更する、
制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御回路及び制御方法に関し、例えばメモリのリフレッシュ制御技術に関する。
【背景技術】
【０００２】
ＤＲＡＭ（Dynamic Random Access Memory）は、メモリセルのデータ保持のために、定期的なリフレッシュ動作が必須となっている。リフレッシュ動作時は、全バンクのｗｏｒｄ線が同時に開くため、ＤＲＡＭにおいて大きな電流消費要素となっている。さらに、昨今のメモリ容量の大容量化に伴い、実装されるバンク数も増加してきているため、リフレッシュ動作時の消費電力の増加が省電力の観点から問題になってきている。
【０００３】
リフレッシュ動作は、ｂｉｔ線の選択スイッチが接続されないだけで、Ｒｅａｄ動作と同様の動作となる。当然、Ｗｒｉｔｅ動作は、電荷がチャージされるのでリフレッシュ動作と同様の効果がある。よって、直前に、Ｒｅａｄ／Ｗｒｉｔｅが実施されたｗｏｒｄ線に対しては、電荷がチャージされているので、リフレッシュ動作を間引くことが可能と言える。言い換えると、Ｒｅａｄ／Ｗｒｉｔｅの有無に関係なく、規定のリフレッシュ周期毎にリフレッシュを実施するようにしてしまうと、Ｒｅａｄ／Ｗｒｉｔｅが直前に実施された場合に過剰なリフレッシュ動作を実施することとなってしまい、過剰な消費電力の増大につながってしまう。
【０００４】
特許文献１には、消費電力を抑制する技術が開示されている。この技術は、フレームメモリ上のあるアドレスがアクセスされたら、そのロウアドレスに対するリフレッシュ実行フラグを０にして、そのロウアドレスのリフレッシュを行わないようにする。そして、そのアクセスから一定時間経過後、リフレッシュ実行フラグを１とし、メモリコントローラがリフレッシュのリクエストを受け付けるようにしている。
【０００５】
しかしながら、特許文献１に開示の技術は、メモリのリフレッシュを適切な時間間隔で実行することが保障できないおそれがある。上述したように、この技術は、フレームメモリ上のあるアドレスがアクセスされたら、一定期間経過するまで、そのアドレスに対するリフレッシュを行わないようにするものである。そのため、あるリフレッシュの直後にアクセスがあった場合であっても、次のリフレッシュを抑制してしまうことも発生し得る。この場合、本来のリフレッシュ周期の２倍近い時間の間、リフレッシュが実施されないことになるため、メモリに記憶されるデータを保障することができなくなってしまうという問題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−１０２１９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、特許文献１に開示の技術では、メモリのリフレッシュによる消費電力を低減することができても、メモリに記憶されるデータを保障することができないおそれがあるという課題がある。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、制御回路は、所定のリフレッシュ周期毎のメモリのリフレッシュタイミングの直前にメモリがアクセスされた場合、当該リフレッシュタイミングにおけるメモリのリフレッシュを抑止するとともに、次のリフレッシュタイミングを、それよりも早いタイミングに変更するようにしている。
【発明の効果】
【０００９】
前記一実施の形態によれば、メモリのリフレッシュによる消費電力を低減しつつも、メモリのデータを保障することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る情報処理装置の構成図である。
【図２】実施の形態１に係る情報処理装置のリフレッシュ間引き処理を示すフローチャートである。
【図３】実施の形態１に係る情報処理装置のリフレッシュ動作の一例を示す図である。
【図４】実施の形態２に係る情報処理装置の構成図である。
【図５】実施の形態２に係る情報処理装置のリフレッシュ間引き処理を示すフローチャートである。
【図６】実施の形態に係る情報処理装置の概略構成図である
【発明を実施するための形態】
【００１１】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１２】
＜実施の形態１＞
まず、図１を参照して、実施の形態１に係る情報処理装置１の構成について説明する。図１は、実施の形態１に係る情報処理装置１の構成図である。
【００１３】
情報処理装置１は、ＭＣＵ（Micro Control Unit）１０及びＤＲＡＭ２０を有する。ＭＣＵ１０は、ＣＰＵ（Central Processing Unit）１００及びＤＲＡＭコントローラ１１０を有する。ＤＲＡＭ２０は、メモリバンク２００〜２０３、メモリバンク制御回路２１０〜２１３、及びリフレッシュアドレスカウンタ２２０を有する。
【００１４】
情報処理装置１は、リフレッシュ動作を必要とするＤＲＡＭ２０が実装される装置であれば、どのような装置もであってもよい。情報処理装置１は、例えば、サーバ又はパーソナルコンピュータであってもよく、フィーチャーフォン及びスマートフォン等の携帯電話、もしくは、タブレット端末等であってもよい。
【００１５】
ＭＣＵ１０は、ＤＲＡＭ２０に記憶された各種データを利用して、情報処理装置１としての各種演算処理を実施する。ＤＲＡＭ２０は、ＭＣＵ１０によって利用される各種データが記憶される。ＤＲＡＭ２０は、データ保持を維持するためにリフレッシュを必要とする揮発性のメモリである。
【００１６】
ＣＰＵ１００は、上述したＭＣＵ１０としての各種演算処理を実施する。例えば、ＣＰＵ１００は、ＤＲＡＭ２０に記憶されたプログラムを、ＤＲＡＭ２０から読み出して実行し、そのプログラムに従った処理を実施する。ＣＰＵ１００は、ＤＲＡＭ２０からデータを読み出す場合、そのデータが記憶されたＤＲＡＭ２０のアドレスを指定したリード要求情報をＤＲＡＭコントローラ１１０に出力する。ＣＰＵ１００は、ＤＲＡＭ２０にデータを書き込む場合、ＤＲＡＭ２０に書き込むデータと、そのデータの格納先とするＤＲＡＭ２０のアドレスとを指定したライト要求情報をＤＲＡＭコントローラ１１０に出力する。
【００１７】
ＤＲＡＭコントローラ１１０は、ＤＲＡＭ２０からのデータの読み出し、ＤＲＡＭ２０へのデータの書き込み、及びＤＲＡＭ２０のリフレッシュを統括的に制御するＬＳＩ（Large Scale Integration）である。
【００１８】
ＤＲＡＭコントローラ１１０は、ＤＲＡＭ２０について予め規定されているリフレッシュ周期に基づいた所定の周期で、ＤＲＡＭ２０のリフレッシュを要求するリフレッシュコマンドをＤＲＡＭ２０に出力する。これにより、ＤＲＡＭ２０は、リフレッシュを実施し、データの保持を維持する。ここで、リフレッシュコマンドは、チップセレクト信号ｃｓｂ、ライト・イネーブル信号ｗｅｂ及びリフレッシュ・イネーブル信号ｒｅｆｂ等の組み合わせにより実現されるが、既知の内容であるため詳細な説明は省略する。
【００１９】
また、ＤＲＡＭコントローラ１１０は、ＣＰＵ１００からのリード要求情報の出力に応じて、そのリード要求情報で指定されたアドレスからのデータの読み出しを要求するリードコマンドをＤＲＡＭ２０に出力する。ＤＲＡＭコントローラ１１０は、リードコマンドに応じてＤＲＡＭ２０から出力されたデータを取得し、ＣＰＵ１００に出力する。このデータは、リードコマンドにおいて要求したアドレスに格納されていたデータとなる。これにより、ＣＰＵ１００は、ＤＲＡＭ２０における所望のアドレスに格納されたデータを読み出す。ここで、リードコマンドは、チップセレクト信号ｃｓｂ、ライト・イネーブル信号ｗｅｂ及びリフレッシュ・イネーブル信号ｒｅｆｂ等の組み合わせにより実現されるが、既知の内容であるため詳細な説明は省略する。
【００２０】
また、ＤＲＡＭコントローラ１１０は、ＣＰＵ１００からのライト要求情報の出力に応じて、そのライト要求情報で指定されたアドレスに対するデータの書き込みを要求するライトコマンドをＤＲＡＭ２０に出力する。このデータは、ＤＲＡＭ２０において、ライトコマンドで指定したアドレスに書き込まれる。これにより、ＣＰＵ１００は、ＤＲＡＭ２０における所望のアドレスに対してデータを書き込む。ここで、ライトコマンドは、チップセレクト信号ｃｓｂ、ライト・イネーブル信号ｗｅｂ及びリフレッシュ・イネーブル信号ｒｅｆｂ等の組み合わせにより実現されるが、既知の内容であるため詳細な説明は省略する。
【００２１】
メモリバンク２００〜２０３は、上述した各種データが格納される。メモリバンク２００は、メモリバンク制御回路２１０によって、その読み出し、書き込み、及びリフレッシュが制御される。メモリバンク２０１は、メモリバンク制御回路２１１によって、その読み出し、書き込み、及びリフレッシュが制御される。メモリバンク２０２は、メモリバンク制御回路２１２によって、その読み出し、書き込み、及びリフレッシュが制御される。メモリバンク２０３は、メモリバンク制御回路２１３によって、その読み出し、書き込み、及びリフレッシュが制御される。
【００２２】
メモリバンク制御回路２１０〜２１３は、メモリバンク２００〜２０３の読み出し、書き込み、及びリフレッシュを制御する。メモリバンク制御回路２１０〜２１３は、ＭＣＵ１０からの自身に対応するメモリバンクのアドレスを指定したリードコマンドの発行に応じて、そのアドレスからデータを読み出し、ＭＣＵ１０に出力する。メモリバンク制御回路２１０〜２１３は、ＭＣＵ１０からの自身に対応するメモリバンクのアドレスを指定したライトコマンドの発行に応じて、そのアドレスに対してデータを書き込む。
【００２３】
また、メモリバンク制御回路２１０〜２１３は、ＭＣＵ１０からのリフレッシュコマンドの発行に応じて、メモリバンク２００〜２０３をリフレッシュする。ここで、メモリバンク制御回路２１０〜２１３は、メモリバンク２００〜２０３のそれぞれにおいて、リフレッシュアドレスカウンタ２２０から出力されたアドレス信号が示すアドレスのｗｏｒｄ線行におけるメモリセルを、リフレッシュ対象としてリフレッシュする。ここで、アドレス信号が示すアドレスは、リフレッシュアドレスカウンタ２２０によって、ＭＣＵ１０からリフレッシュコマンドが発行される毎に、１ｗｏｒｄ線単位でインクリメントされていく。なお、アドレス信号が示すアドレスは、メモリバンク２００〜２０３の最下段のｗｏｒｄ線行を示すアドレスからインクリメントされた場合には、再びメモリバンク２００〜２０３の最上段のｗｏｒｄ線行を示すように、サイクリックにインクリメントされていくものとする。
【００２４】
ここで、本実施の形態１では、メモリバンク制御回路２１０〜２１３は、自身の制御対象となるメモリバンクのｗｏｒｄ線毎に、ｗｏｒｄ線におけるメモリセルに対するアクセス履歴として機能するアクセスフラグを制御する。なお、アクセスフラグは、メモリバンク制御回路２１０〜２１３から制御可能であれば、任意の場所に設けられた任意の記憶装置に記憶されるようにしてよい。例えば、メモリバンク制御回路２１０〜２１３は、それぞれが制御するアクセスフラグが記憶されるフリップフロップを有するようにしてもよい。また、例えば、メモリバンク２００〜２０３は、その一部を使用して、自身に対応するメモリバンク制御回路から制御されるアクセスフラグを記憶するようにしてもよい。メモリバンク２００〜２０３を使用する場合には、図１に示すように、各ｗｏｒｄ線のメモリセルに、各ｗｏｒｄ線に対応するアクセスフラグを記憶するようにしてもよく、所定のｗｏｒｄ線のメモリセルに集約してアクセスフラグを記憶するようにしてもよい。
【００２５】
メモリバンク制御回路２１０〜２１３は、ｗｏｒｄ線におけるメモリセルに対するリフレッシュ及びアクセス（リード又はライト）の状況に応じて、そのｗｏｒｄ線に対応するアクセスフラグの値を更新する。そして、メモリバンク制御回路２１０〜２１３は、あるｗｏｒｄ線におけるメモリセルのリフレッシュを行うときに、そのｗｏｒｄ線に対応するアクセスフラグの値によれば、そのｗｏｒｄ線におけるメモリセルに対して、リフレッシュ動作又はリフレッシュに相当する動作（アクセス）が実施されたばかりであると判断できる場合には、リフレッシュを抑止する。
【００２６】
本実施の形態１では、このような動作によって、リフレッシュが不要な状況下においては、リフレッシュを間引いて、メモリのリフレッシュによる消費電力を低減することを可能とする。また、本実施の形態１では、次に、図２を参照して説明するような規則でアクセスフラグを更新することで、リフレッシュを間引いた場合には次のリフレッシュタイミングを早めるようにし、適切な時間間隔でのメモリのリフレッシュの実行を保障する。
【００２７】
続いて、図２を参照して、実施の形態１に係る情報処理装置１のリフレッシュ間引き処理について説明する。図２は、実施の形態１に係る情報処理装置１のリフレッシュ間引き処理を示すフローチャートである。
【００２８】
ＭＣＵ１０から発行されたコマンドは、ＤＲＡＭ２０によって受信されると、メモリバンク制御回路２１０〜２１３のそれぞれに入力される。メモリバンク制御回路２１０〜２１３は、コマンドの入力に応じて、入力されたコマンドがリフレッシュコマンドであるか否かを判定する（Ｓ１）。
【００２９】
コマンドがリフレッシュコマンドであると判定した場合（Ｓ１：Ｙｅｓ）、メモリバンク制御回路２１０〜２１３は、リフレッシュ対象のｗｏｒｄ線に対応するアクセスフラグが「０」であるか否かを判定する（Ｓ２）。ここで、リフレッシュ対象のｗｏｒｄ線は、上述したように、リフレッシュアドレスカウンタ２２０から出力されるアドレス信号が示すアドレスのｗｏｒｄ線となる。
【００３０】
アクセスフラグが「０」であると判定した場合（Ｓ２：Ｙｅｓ）、メモリバンク制御回路２１０〜２１３は、リフレッシュ対象のｗｏｒｄ線におけるメモリセルのリフレッシュを実施するとともに（Ｓ３）、そのｗｏｒｄ線に対応するアクセスフラグを「１」に更新する（Ｓ４）。
【００３１】
アクセスフラグが「１」であると判定した場合（Ｓ２：Ｎｏ）、メモリバンク制御回路２１０〜２１３は、リフレッシュ対象のｗｏｒｄ線におけるメモリセルのリフレッシュを抑止するとともに、そのｗｏｒｄ線に対応するアクセスフラグを「０」に更新する（Ｓ５）。
【００３２】
このように、本実施の形態では、原則、あるｗｏｒｄ線をリフレッシュ対象としたリフレッシュコマンドが２回発行される毎に、そのｗｏｒｄ線におけるメモリセルをリフレッシュすることになる。すなわち、本実施の形態では、ＭＣＵ１０は、本来リフレッシュコマンドを発行すべき周期の１／２の周期でリフレッシュコマンドを発行するようにする。これにより、ｗｏｒｄ線のそれぞれについて、それぞれがリフレッシュ対象となるリフレッシュコマンドが規定のリフレッシュ周期の１／２周期（半周期）で発行されることになる。
【００３３】
コマンドがリフレッシュコマンドでないと判定した場合（Ｓ１：Ｎｏ）、メモリバンク制御回路２１０〜２１３は、そのコマンドがリードコマンド又はライトコマンドであるか否かを判定する（Ｓ６）。
【００３４】
コマンドがリードコマンド又はライトコマンドであると判定した場合（Ｓ６：Ｙｅｓ）、メモリバンク制御回路２１０〜２１３は、そのコマンドに応じたメモリアクセスを実施する（Ｓ７）。すなわち、コマンドがリードコマンドである場合、メモリバンク制御回路２１０〜２１３は、自身に対応するメモリバンクのうち、リードコマンドで指定されたアドレスからデータを読み出し、ＭＣＵ１０に出力する。コマンドがライトコマンドである場合、メモリバンク制御回路２１０〜２１３は、自身に対応するメモリバンクのうち、ライトコマンドで指定されたアドレスに対してデータを書き込む。なお、言うまでもなく、メモリバンク制御回路２１０〜２１３のうち、コマンドで指定されたアドレスを含むメモリバンクを制御するメモリバンク制御回路が、上記データの読み出し又は書き込みを実施することになる。
【００３５】
また、メモリバンク制御回路２１０〜２１３は、アクセス（読み出し又は書き込み）をしたアドレスのメモリセルを含むｗｏｒｄ線に対応するアクセスフラグを「１」に更新する（Ｓ８）。すなわち、アクセスにより、そのｗｏｒｄ線におけるメモリセルにはリフレッシュを実施した場合と同様に電荷がチャージされるため、リフレッシュを行った場合（Ｓ３）と同様に、そのｗｏｒｄ線に対応するアクセスフラグを「１」に更新する。
【００３６】
このように、本実施の形態１では、リフレッシュに相当する動作（メモリアクセス）が実施され、しばらくの間はリフレッシュが不要となる場合には、アクセスフラグをリフレッシュ実施後と同様の値に更新することで、不要なリフレッシュが抑止される（Ｓ２：Ｎｏ、Ｓ５）ようにしている。すなわち、これによれば、メモリのリフレッシュによる消費電力を低減することができる。
【００３７】
また、上述したような動作によれば、各ｗｏｒｄ線について、最後にリフレッシュ又はアクセスがあった後に、リフレッシュコマンドが２回発行されてから、リフレッシュを実施することとなる。ここで、上述したように、本実施の形態１では、本来リフレッシュコマンドを発行すべき周期の１／２周期でリフレッシュコマンドを発行するようにしている。言い換えると、あるリフレッシュタイミングに対してリフレッシュ周期の１／２周期前のタイミングからそのリフレッシュタイミングまでにアクセスがされた場合には、そのリフレッシュタイミングにおけるリフレッシュを抑止するとともに、そのリフレッシュタイミングに対してリフレッシュ周期の１／２周期後のタイミングをリフレッシュタイミングに変更するようにしている。すなわち、必ず、本来のリフレッシュ周期以内で、メモリのリフレッシュを実施することができるため、適切な時間間隔でのメモリのリフレッシュを実施してメモリのデータを保障することができる。次に、その動作を明確にするために、図３を参照して、リフレッシュ動作の一例について説明する。
【００３８】
続いて、図３を参照して、実施の形態１に係る情報処理装置１のリフレッシュ動作の一例について説明する。図３は、実施の形態１に係る情報処理装置１のリフレッシュ動作の一例を示す図である。
【００３９】
図３では、４つのアクセスパターンにおいて、アクセスフラグの値の遷移状況と、リフレッシュ及びアクセスの実施状況の一例を示している。図３では、４つのアクセスパターンのそれぞれを、「アクセスパターン１」、「アクセスパターン２」、「アクセスパターン３」、及び「アクセスパターン４」として示している。いずれのアクセスパターンにおいても、アクセスフラグの初期値は「１」であるものとする。アクセスフラグの初期化は、ＤＲＡＭ２０の電源投入時に実行される初期化シーケンス（回路のリセット）において行われる。以下では、あるｗｏｒｄ線に着目し、そのｗｏｒｄ線をリフレッシュ対象としたリフレッシュコマンドの発行と、そのｗｏｒｄ線に対応するアクセスフラグの更新について説明している。
【００４０】
まず、「アクセスパターン１」について説明する。「アクセスパターン１」は、ＤＲＡＭ２０に対するアクセス（読み出し又は書き込み）が無いパターンを示している。
【００４１】
１回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「１」であるため、ＤＲＡＭ２０のリフレッシュは実施せずに、アクセスフラグを「１」から「０」に更新する。２回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「０」であるため、ＤＲＡＭ２０のリフレッシュを実施するとともに、アクセスフラグを「０」から「１」に更新する。
【００４２】
３回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「１」であるため、ＤＲＡＭ２０のリフレッシュは実施せずに、アクセスフラグを「１」から「０」に更新する。４回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「０」であるため、ＤＲＡＭ２０のリフレッシュを実施するとともに、アクセスフラグを「０」から「１」に更新する。
【００４３】
５回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「１」であるため、ＤＲＡＭ２０のリフレッシュは実施せずに、アクセスフラグを「１」から「０」に更新する。６回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「０」であるため、ＤＲＡＭ２０のリフレッシュを実施するとともに、アクセスフラグを「０」から「１」に更新する。
【００４４】
このように、本来のリフレッシュ周期の１／２周期でリフレッシュコマンドを発行し、リフレッシュコマンドの発行に応じてアクセスフラグの値を「０」と「１」との間で切り替えるようにし、アクセスフラグが「０」である場合のみにリフレッシュを実行するようにしている。そのため、規定のリフレッシュ周期となる適切な時間間隔でリフレッシュを実施することが可能である。
【００４５】
続いて、「アクセスパターン２」について説明する。「アクセスパターン２」は、ＤＲＡＭ２０に対するアクセス（読み出し又は書き込み）が行われるパターンを示している。
【００４６】
１回目のリフレッシュコマンドの発行時と、２回目のリフレッシュコマンドの発行時の動作については、「アクセスパターン１」と同様であるため、説明を省略する。
【００４７】
２回目のリフレッシュコマンドの発行と、３回目のリフレッシュコマンドの発行との間において、ＤＲＡＭ２０へのアクセスが行われた場合、メモリバンク制御回路２１０〜２１３は、アクセスフラグを「１」に更新する。ここでは、アクセスフラグが「１」であるため、その値は「１」のままとなる。
【００４８】
３回目のリフレッシュコマンドの発行時と、４回目のリフレッシュコマンドの発行時の動作については、「アクセスパターン１」と同様であるため、説明を省略する。
【００４９】
４回目のリフレッシュコマンドの発行と、５回目のリフレッシュコマンドの発行との間において、ＤＲＡＭ２０へのアクセスが行われた場合、メモリバンク制御回路２１０〜２１３は、アクセスフラグを「１」に更新する。ここでは、アクセスフラグが「１」であるため、その値は「１」のままとなる。
【００５０】
５回目のリフレッシュコマンドの発行時と、６回目のリフレッシュコマンドの発行時の動作については、「アクセスパターン１」と同様であるため、説明を省略する。
【００５１】
このように、ＤＲＡＭ２０へのアクセスがリフレッシュの実施直後（そのリフレッシュタイミングからリフレッシュ周期の１／２周期後のタイミングまでの間）に実施された場合には、アクセスフラグの値は変更されず、リフレッシュを抑止とする値「１」が維持されるようにしている。そのため、アクセスが実施されたからといって、次のリフレッシュまでの時間間隔を過剰に空けることなく、適切な時間間隔（リフレッシュ周期を超えない時間）でリフレッシュを実施することが可能である。
【００５２】
続いて、「アクセスパターン３」について説明する。「アクセスパターン３」は、ＤＲＡＭ２０に対するアクセス（読み出し又は書き込み）が行われるパターンを示している。
【００５３】
１回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「１」であるため、ＤＲＡＭ２０のリフレッシュは実施せずに、アクセスフラグを「１」から「０」に更新する。１回目のリフレッシュコマンドの発行と、２回目のリフレッシュコマンドの発行との間において、ＤＲＡＭ２０へのアクセスが行われた場合、メモリバンク制御回路２１０〜２１３は、アクセスフラグを「１」に更新する。ここでは、アクセスフラグが「０」であるため、その値は「０」から「１」に変更される。２回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「１」であるため、ＤＲＡＭ２０のリフレッシュは実施せずに、アクセスフラグを「１」から「０」に更新する。
【００５４】
３回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「０」であるため、ＤＲＡＭ２０のリフレッシュを実施するとともに、アクセスフラグを「０」から「１」に更新する。３回目のリフレッシュコマンドの発行と、４回目のリフレッシュコマンドの発行との間において、ＤＲＡＭ２０へのアクセスが行われた場合、メモリバンク制御回路２１０〜２１３は、アクセスフラグを「１」に更新する。ここでは、アクセスフラグが「１」であるため、その値は「１」のままとなる。４回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「１」であるため、ＤＲＡＭ２０のリフレッシュは実施せずに、アクセスフラグを「１」から「０」に更新する。
【００５５】
４回目のリフレッシュコマンドの発行と、５回目のリフレッシュコマンドの発行との間において、ＤＲＡＭ２０へのアクセスが行われた場合、メモリバンク制御回路２１０〜２１３は、アクセスフラグを「１」に更新する。ここでは、アクセスフラグが「０」であるため、その値は「０」から「１」に変更される。
【００５６】
５回目のリフレッシュコマンドの発行時と、６回目のリフレッシュコマンドの発行時の動作については、「アクセスパターン１」と同様であるため、説明を省略する。
【００５７】
続いて、「アクセスパターン４」について説明する。「アクセスパターン４」は、ＤＲＡＭ２０に対するアクセス（リード又はライト）が行われるパターンを示している。
【００５８】
１回目のリフレッシュコマンドの発行から、２回目のリフレッシュコマンドの発行までの動作については、「アクセスパターン３」と同様であるため、説明を省略する。
【００５９】
２回目のリフレッシュコマンドの発行と、３回目のリフレッシュコマンドの発行との間において、ＤＲＡＭ２０へのアクセスが行われた場合、メモリバンク制御回路２１０〜２１３は、アクセスフラグを「１」に更新する。ここでは、アクセスフラグが「０」であるため、その値は「０」から「１」に変更される。
【００６０】
３回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「１」であるため、ＤＲＡＭ２０のリフレッシュは実施せずに、アクセスフラグを「１」から「０」に更新する。３回目のリフレッシュコマンドの発行と、４回目のリフレッシュコマンドの発行との間において、ＤＲＡＭ２０へのアクセスが行われた場合、メモリバンク制御回路２１０〜２１３は、アクセスフラグを「１」に更新する。ここでは、アクセスフラグが「０」であるため、その値は「０」から「１」に変更される。４回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「１」であるため、ＤＲＡＭ２０のリフレッシュは実施せずに、アクセスフラグを「１」から「０」に更新する。
【００６１】
５回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「０」であるため、ＤＲＡＭ２０のリフレッシュを実施するとともに、アクセスフラグを「０」から「１」に更新する。６回目のリフレッシュコマンドが発行されたとき、メモリバンク制御回路２１０〜２１３は、アクセスフラグが「１」であるため、ＤＲＡＭ２０のリフレッシュは実施せずに、アクセスフラグを「１」から「０」に更新する。
【００６２】
このように、「アクセスパターン３」及び「アクセスパターン４」では、前回のリフレッシュコマンドの発行時にリフレッシュが抑止されて、リフレッシュを実施とする値「０」にアクセスフラグを更新した場合であっても、その次のリフレッシュコマンドの発行時までにＤＲＡＭ２０へのアクセスが実施された場合には、リフレッシュを抑止とする値「１」にアクセスフラグを更新するようにしている。すなわち、前回のリフレッシュタイミングからリフレッシュ周期が経過したタイミングであっても、そのタイミングの直前（そのタイミングからリフレッシュ周期の１／２周期前のタイミングまでの間）にＤＲＡＭ２０へのアクセスが実施されている場合には、そのタイミングにおけるリフレッシュを抑止するようにしている。そのため、リフレッシュと同様の効果のあるアクセスが行われて、リフレッシュの実施が不要である場合に、リフレッシュを抑制することができ、消費電力を低減することができる。
【００６３】
そして、次のリフレッシュコマンドの発行時には、リフレッシュを抑止するともにリフレッシュを実施とする値「０」にアクセスフラグを更新し、その次のリフレッシュコマンドの発行時にリフレッシュが実行されるようにしている。すなわち、本来リフレッシュタイミングであったがリフレッシュを抑止したタイミングに対してリフレッシュ周期の１／２周期後のタイミングを、次のリフレッシュタイミングに変更するようにしている。言い換えると、ＤＲＡＭ２０へのアクセスがあったときから、少なくとも規定のリフレッシュ周期を経過するまでには、ＤＲＡＭ２０のリフレッシュを実施するようにしている。そのため、規定のリフレッシュ周期を超えずに、ＤＲＡＭ２０に記憶されるデータを保障することができる適切な時間間隔でＤＲＡＭ２０をリフレッシュすることができる。
【００６４】
また、ＤＲＡＭ２０へのアクセスに応じてリフレッシュを抑止とする値「１」にアクセスフラグを更新してから、次のリフレッシュコマンドの発行時にリフレッシュを実施とする値「０」にアクセスフラグを更新した後に、その次のリフレッシュコマンドの発行時までに再びＤＲＡＭ２０へのアクセスが実施された場合には、再びリフレッシュを抑止とする値「１」にアクセスフラグを更新するようにしている。すなわち、ＤＲＡＭ２０へのアクセスに応じて、その次のリフレッシュタイミングとして変更したタイミングであっても、そのタイミングの直前（そのタイミングからリフレッシュ周期の１／２周期前のタイミングまでの間）に再びＤＲＡＭ２０へのアクセスが実施されている場合には、そのタイミングにおけるリフレッシュを抑止するようにしている。そのため、リフレッシュと同様の効果のあるアクセスが行われて、リフレッシュの実施が不要である場合に、さらにリフレッシュを抑制することができ、さらなる消費電力を低減することができる。
【００６５】
以上に説明したように、本実施の形態１においては、リフレッシュ周期毎のメモリのリフレッシュタイミングの直前にメモリがアクセスされた場合、そのリフレッシュタイミングにおけるメモリのリフレッシュを抑止するとともに、次のリフレッシュタイミングを、それよりも早いタイミングに変更するようにしている。そのため、メモリのリフレッシュによる消費電力を低減しつつも、適切な時間間隔でのメモリのリフレッシュを実施してメモリのデータを保障することができる。
【００６６】
また、本実施の形態１では、複数のメモリバンク毎にアクセスフラグを制御し、アクセスフラグに基づいて、複数のメモリバンクのそれぞれに対するリフレッシュを個別に制御するようにしている。これによれば、メモリバンク毎に不要なリフレッシュを抑制することができるため、より消費電力を低減することができる。
【００６７】
また、本実施の形態では、アクセスフラグを制御する契機となるコマンドを新規に定義せず、既存のリフレッシュコマンドを割り当てて実施することができる。そのため、既存のメモリ仕様におけるリフレッシュコマンドを流用して実現することができ、実装コストを低減することができる。
【００６８】
＜実施の形態２＞
続いて、図４を参照して、実施の形態２に係る情報処理装置２の構成について説明する。図２は、実施の形態２に係る情報処理装置２の構成図である。
【００６９】
実施の形態１では、アクセスフラグをＤＲＡＭ２０内に記憶し、ＤＲＡＭ２０内でリフレッシュの抑止を制御する形態について例示したが、本実施の形態２では、アクセスフラグをＭＣＵ１１内に記憶し、ＭＣＵ１１からＤＲＡＭ２１に対してリフレッシュの抑止を制御する形態について説明する。
【００７０】
情報処理装置２は、ＭＣＵ１１及びＤＲＡＭ２１を有する。以下、ＭＣＵ１１及びＤＲＡＭ２１に関しては、実施の形態１に係るＭＣＵ１０及びＤＲＡＭ２０と同様の内容については、適宜、説明を省略する。
【００７１】
ＭＣＵ１１は、実施の形態１に係るＭＣＵ１０と比較して、ＤＲＡＭコントローラ１１０に代えて、ＤＲＡＭコントローラ１２０を有する。また、ＭＣＵ１１は、実施の形態１に係るＭＣＵ１０と比較して、さらに、リフレッシュアドレスカウンタ１３０及びアクセスフラグテーブル１４０を有する。ＤＲＡＭ２１は、実施の形態２に係るＤＲＡＭ２０と比較して、メモリバンク制御回路２１０〜２１３に代えて、メモリバンク制御回路２３０〜２３３を有する。
【００７２】
ＣＰＵ１００、メモリバンク２００〜２０３、及びリフレッシュアドレスカウンタ２２０については、実施の形態１と同様であるため、説明を省略する。
【００７３】
ＤＲＡＭコントローラ１２０は、ＤＲＡＭコントローラ１１０と同様に、ＤＲＡＭ２０からのデータの読み出し、ＤＲＡＭ２０へのデータの書き込み、及びＤＲＡＭ２０のリフレッシュを統括的に制御する。ここで、本実施の形態２では、ＤＲＡＭコントローラ１２０は、ＤＲＡＭコントローラ１１０と比較して、さらに、リフレッシュコマンドの発行と同時に、リフレッシュコマンドの発行を通知する通知信号をリフレッシュアドレスカウンタ１３０に出力する。また、ＤＲＡＭコントローラ１２０は、ＤＲＡＭコントローラ１１０と比較して、さらに、ライトコマンド又はリードコマンドの発行と同時に、アクセスフラグテーブル１４０のうち、アクセス先のアドレスに対応するアクセスフラグを更新する。
【００７４】
リフレッシュアドレスカウンタ１３０は、ＤＲＡＭコントローラ１２０からの通知信号の出力に応じて、アクセスフラグテーブル１４０に対して指定するアドレス（行）をインクリメントする。リフレッシュアドレスカウンタ１３０は、アクセスフラグテーブル１４０のうち、いずれかのアドレス（行）を指定する指定信号を出力する。なお、アドレス信号が示す行は、アクセスフラグテーブル１４０の最下段の行からインクリメントされた場合には、再びアクセスフラグテーブル１４０の最上段の行を示すように、サイクリックにインクリメントされていくものとする。
【００７５】
アクセスフラグテーブル１４０は、複数行及び複数列の行列でアクセスフラグが格納される。アクセスフラグテーブル１４０の各列は、各メモリバンク２００〜２０３に対応し、アクセスフラグテーブル１４０の各行は、メモリバンク２００〜２０３の各ｗｏｒｄ線行に対応する。例えば、アクセスフラグテーブル１４０は、アクセスフラグが記憶されるフリップフロップを有する回路である。
【００７６】
また、アクセスフラグテーブル１４０は、リフレッシュアドレスカウンタ１３０から出力される指定信号で指定されている行の各アクセスフラグの値の反転値を示すリフレッシュ・イネーブル信号ＲｅｆｅｎをＤＲＡＭ２１に出力する。このとき、メモリバンク２００に対応する列のアクセスフラグの反転値は、そのメモリバンク２００を制御対象とするメモリバンク制御回路２３０に出力され、メモリバンク２０１に対応する列のアクセスフラグの反転値は、そのメモリバンク２０１を制御対象とするメモリバンク制御回路２３１に出力され、メモリバンク２０２に対応する列のアクセスフラグの反転値は、そのメモリバンク２０２を制御対象とするメモリバンク制御回路２３２に出力され、メモリバンク２０３に対応する列のアクセスフラグの反転値は、そのメモリバンク２０３を制御対象とするメモリバンク制御回路２３３に出力される。
【００７７】
ここで、リフレッシュアドレスカウンタ１３０とリフレッシュアドレスカウンタ２２０は、リフレッシュアドレスカウンタ１３０がアクセスフラグテーブル１４０に対して指定する行と、リフレッシュアドレスカウンタ２２０がリフレッシュ対象としてメモリバンク制御回路２３０〜２３３に対して指定するアドレスにおけるメモリバンク２００〜２０３のｗｏｒｄ線行とが、相互に対応したものとなるように同期してインクリメントされる。これは、上述したように、リフレッシュアドレスカウンタ１３０とリフレッシュアドレスカウンタ２２０が、同期して出力される信号（リフレッシュコマンド及びその通知信号）を契機としてアドレスをインクリメントすることにより実現される。すなわち、あるｗｏｒｄ線行をリフレッシュ対象として、メモリバンク制御回路２３０〜２３３においてリフレッシュ動作を実施するときには、そのｗｏｒｄ線行に対応するアクセスフラグテーブル１４０の行におけるアクセスフラグの反転値がＤＲＡＭ２１に出力される。
【００７８】
また、アクセスフラグテーブル１４０は、ＤＲＡＭ２１に対してリードコマンド又はライトコマンドが発行された場合、ＤＲＡＭコントローラ１２０から、そのコマンドで指定されるアドレスに対応する行及び列に設定されたアクセスフラグの値が「１」に更新される。これにより、あるメモリバンクにおける、あるｗｏｒｄ線のメモリセルに対してアクセス（読み出し又は書き込み）があった場合には、アクセスフラグテーブル１４０のうち、そのメモリバンクに対応する列であり、かつ、そのｗｏｒｄ線に対応する行のアクセスフラグの値が更新される。
【００７９】
メモリバンク制御回路２３０〜２３３は、メモリバンク制御回路２１０〜２１３と同様に、メモリバンク２００〜２０３の読み出し、書き込み、及びリフレッシュを制御する。ここで、実施の形態１では、ＤＲＡＭ２１内に記憶されるアクセスフラグに基づいてリフレッシュを抑止するようにしていたが、本実施の形態２では、ＭＣＵ１１のアクセスフラグテーブル１４０から出力されるリフレッシュ・イネーブル信号Ｒｅｆｅｎに基づいてリフレッシュを抑止する。
【００８０】
具体的には、メモリバンク制御回路２３０〜２３３は、リフレッシュコマンドの発行に応じて、リフレッシュを実施するときに、ＭＣＵ１１から出力されるリフレッシュ・イネーブル信号Ｒｅｆｅｎの値を判定する。そして、メモリバンク制御回路２３０〜２３３は、リフレッシュ・イネーブル信号Ｒｅｆｅｎの値が「１」である場合、リフレッシュを実施し、リフレッシュ・イネーブル信号Ｒｅｆｅｎの値が「０」である場合、リフレッシュを抑止する。すなわち、リフレッシュ・イネーブル信号Ｒｅｆｅｎの値は、アクセスフラグの反転値であるため、実施の形態１と同様に、アクセスフラグの値が「０」である場合にリフレッシュを実行し、アクセスフラグの値が「１」である場合にリフレッシュを抑止することになる。
【００８１】
続いて、図５を参照して、実施の形態２に係る情報処理装置２のリフレッシュ間引き処理について説明する。図５は、実施の形態２に係る情報処理装置２のリフレッシュ間引き処理を示すフローチャートである。
【００８２】
ＭＣＵ１１から発行されたコマンドは、ＤＲＡＭ２１によって受信されると、メモリバンク制御回路２３０〜２３３のそれぞれに入力される。メモリバンク制御回路２３０〜２３３は、コマンドの入力に応じて、入力されたコマンドがリフレッシュコマンドであるか否かを判定する（Ｓ１１）。
【００８３】
コマンドがリフレッシュコマンドであると判定した場合（Ｓ１１：Ｙｅｓ）、メモリバンク制御回路２３０〜２３３は、ＭＣＵ１１から出力されるリフレッシュ・イネーブル信号が「１」であるか否かを判定する（Ｓ１２）。このリフレッシュ・イネーブル信号は、上述したように、リフレッシュ対象のｗｏｒｄ線に対応するアクセスフラグの反転値となる。
【００８４】
リフレッシュ・イネーブル信号が「１」であると判定した場合（Ｓ１２：Ｙｅｓ）、メモリバンク制御回路２３０〜２３３は、リフレッシュ対象のｗｏｒｄ線におけるメモリセルのリフレッシュを実施する（Ｓ１３）。また、アクセスフラグテーブル１４０は、そのｗｏｒｄ線に対応するアクセスフラグを「１」に更新する（Ｓ１４）。
【００８５】
リフレッシュ・イネーブル信号が「０」であると判定した場合（Ｓ１２：Ｎｏ）、メモリバンク制御回路２１０〜２１３は、リフレッシュ対象のｗｏｒｄ線におけるメモリセルのリフレッシュを抑止する。また、アクセスフラグテーブル１４０は、そのｗｏｒｄ線に対応するアクセスフラグを「０」に更新する（Ｓ１５）。
【００８６】
ここで、ステップＳ１４、Ｓ１５におけるアクセスフラグを更新する処理は、リフレッシュ対象のｗｏｒｄ線に対応するアクセスフラグを反転した値に更新するのであれば、どのように実現してもよい。例えば、アクセスフラグテーブル１４０が、リフレッシュアドレスカウンタ１３０から指定される行がインクリメントされるときに、インクリメント前の行における各アクセスフラグを反転した値に更新してもよい。また、例えば、ＤＲＡＭコントローラ１２０が、リフレッシュコマンドを発行する直前に、アクセスフラグテーブル１４０において、リフレッシュアドレスカウンタ１３０からのアドレス信号が示す行のアクセスフラグを反転した値に更新するようにしてもよい。
【００８７】
コマンドがリフレッシュコマンドでないと判定した場合（Ｓ１１：Ｎｏ）、メモリバンク制御回路２３０〜２３３は、そのコマンドがリードコマンド又はライトコマンドであるか否かを判定する（Ｓ１６）。
【００８８】
コマンドがリードコマンド又はライトコマンドであると判定した場合（Ｓ１６：Ｙｅｓ）、メモリバンク制御回路２３０〜２３３は、そのコマンドに応じたメモリアクセスを実施する（Ｓ１７）。この処理は、図２のステップＳ７と同様であるため、詳細な説明は省略する。
【００８９】
また、ＤＲＡＭコントローラ１２０は、アクセスフラグテーブル１４０のアクセスフラグのうち、アクセス（読み出し又は書き込み）をしたアドレスのメモリセルを含むｗｏｒｄ線に対応するアクセスフラグを「１」に更新する（Ｓ１８）。すなわち、アクセスにより、そのｗｏｒｄ線におけるメモリセルにはリフレッシュを行った場合と同様に電荷がチャージされるため、リフレッシュを行った場合（Ｓ１３）と同様に、そのｗｏｒｄ線に対応するアクセスフラグを「１」に更新する。
【００９０】
このように、本実施の形態２でも、実施の形態１と同様に、リフレッシュに相当する動作（メモリアクセス）が実施され、しばらくの間はリフレッシュが不要となる場合には、アクセスフラグをリフレッシュ実施後と同様の値に更新することで、不要なリフレッシュが抑止される（Ｓ１２：Ｎｏ、Ｓ１５）ようにしている。すなわち、これによれば、メモリのリフレッシュによる消費電力を低減することができる。また、本実施の形態２でも、実施の形態１と同様に、必ず、本来のリフレッシュ周期以内で、メモリのリフレッシュを実施することができるため、適切な時間間隔でのメモリのリフレッシュの実施を保障することができる。
【００９１】
以上に説明した処理により、図３を参照して説明した通りにリフレッシュ動作が実施される。そのときの動作は、実施の形態１で説明した通りであるため、その説明は省略する。
【００９２】
以上に説明したように、本実施の形態２においても、実施の形態１と同様に、リフレッシュ周期毎のメモリのリフレッシュタイミングの直前にメモリがアクセスされた場合、当該リフレッシュタイミングにおけるメモリのリフレッシュを抑止するとともに、次のリフレッシュタイミングを、それよりも早いタイミングに変更するようにしている。そのため、メモリのリフレッシュによる消費電力を低減しつつも、適切な時間間隔でのメモリのリフレッシュを実施してメモリのデータを保障することができる。
【００９３】
また、本実施の形態２では、ＭＣＵ１１が、アクセスフラグを制御し、アクセスフラグの値に応じたリフレッシュの実施又は抑止をＤＲＡＭ２１に対して指示するようにしている。すなわち、本実施の形態２に係るＤＲＡＭ２１は、外部からのリフレッシュコマンドが発行されたときに、外部から入力されるリフレッシュ・イネーブル信号Ｒｅｆｅｎの値が、リフレッシュコマンドの発行に応じたリフレッシュを実施することを示す値（上記の例では「０」）を示している場合にはリフレッシュを実施する。また、リフレッシュコマンドの発行に応じたリフレッシュの抑止を指示する値（上記の例では「１」）を示している場合にはリフレッシュを抑止する。言い換えると、ＤＲＡＭ２１は、原則、一般的なＤＲＡＭと同様に、ＭＣＵ１１からのリフレッシュコマンドの発行に応じて、リフレッシュを実施するように動作する。そして、ＤＲＡＭ２１は、さらに、外部からのリフレッシュコマンドが発行されたときに、外部から入力されるリフレッシュ・イネーブル信号Ｒｅｆｅｎの値がリフレッシュコマンドの発行に応じたリフレッシュの抑止を指示する値（上記の例では「１」）を示している場合にリフレッシュを抑止する機構を備えるのみで実現されている。よって、本実施の形態２に係るＤＲＡＭ２１によれば、ＤＲＡＭを製造するメーカ側での実装負担を低減することができる。
【００９４】
また、本実施の形態２に係るＤＲＡＭ２１は、上記のようにリフレッシュを抑止する機構を備えるのみで実現することができるため、回路規模を増加させることなく実装することが可能である。また、特に、ＤＲＡＭ２１（メモリバンク制御回路２３０〜２３３）は、外部からリフレッシュ・イネーブル信号Ｒｅｆｅｎが入力されていない場合には、常に、リフレッシュコマンドの発行に応じて、リフレッシュを実施するように動作するようにしてもよい。そのようにすることで、ＤＲＡＭ２１に対してリフレッシュ・イネーブル信号Ｒｅｆｅｎを入力する機能を有さない既存の情報処理装置に対しても流用することも可能である。
【００９５】
＜実施の形態の概略構成＞
続いて、図６を参照して、本実施の形態に係る情報処理装置１、２の概略構成となる制御回路９の構成について説明する。図６は、本実施の形態に係る情報処理装置１、２の概略構成図である。すなわち、上述した本実施の形態に係る情報処理装置１、２は、その概要構成として、図６に示す制御回路９のように捉えることもできる。
【００９６】
制御回路９は、記憶部９１及び制御部９２を有する。
【００９７】
記憶部９１は、メモリ９３のリフレッシュを実施することを示す第１の値、又は、メモリ９３のリフレッシュを抑止することを示す第２の値を示す状態情報が格納される。状態情報は、アクセスフラグに対応する。記憶部９１は、ＤＲＡＭ２０内のアクセスフラグを記憶する記憶装置（上述のフリップフロップ又はメモリバンク２００〜２０３等）、アクセスフラグテーブル１４０に対応する。メモリ９３は、メモリバンク２００〜２０３に対応する。
【００９８】
制御部９２は、所定周期毎に、状態情報が第１の値を示す場合には、メモリ９３のリフレッシュを実施するとともに状態情報を第２の値に更新し、状態情報が第２の値を示す場合には、メモリ９３のリフレッシュを抑止するとともに状態情報を第１の値に更新する。また、制御部９２は、メモリ９３がアクセスされた場合、状態情報を第２の値に更新する。制御部９２は、メモリバンク制御回路２１０〜２１３、又は、ＤＲＡＭコントローラ１２０及びリフレッシュアドレスカウンタ１３０に対応する。
【００９９】
また、制御部９２は、次のように動作するものとしても捉えることができる。すなわち、制御部９２は、リフレッシュタイミングに対してリフレッシュ周期の半周期前のタイミングから、そのリフレッシュタイミングまでにメモリ９３がアクセスされた場合、当該リフレッシュタイミングにおけるメモリ９３のリフレッシュを抑止するとともに、そのリフレッシュタイミングに対してリフレッシュ周期の半周期後のタイミングをリフレッシュタイミングに変更する。
【０１００】
以上に説明した制御回路９によれば、リフレッシュ周期毎のメモリ９３のリフレッシュタイミングの直前にメモリ９３がアクセスされた場合、そのリフレッシュタイミングにおけるメモリ９３のリフレッシュを抑止するとともに、次のリフレッシュタイミングを、それよりも早いタイミングに変更することができる。そのため、メモリ９３のリフレッシュによる消費電力を低減しつつも、適切な時間間隔でのメモリのリフレッシュを実施してメモリのデータを保障することができる。
【０１０１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１０２】
上記の実施の形態では、図２、６を参照して説明した処理において、発行したコマンドが、リフレッシュコマンドかを判定した後に、リードコマンド又はライトコマンドかを判定するようにしているが、リードコマンド又はライトコマンドかを判定した後に、リフレッシュコマンドかを判定するようにしてもよい。すなわち、ステップＳ６、Ｓ１６を実行し、その判定結果に応じて、ステップＳ１又はステップＳ１１、もしくは、ステップＳ７、Ｓ８又はステップＳ１７、１８を実行するようにしてもよい。この場合、当然に、ステップＳ１又はステップＳ１１の判定結果に応じて、ステップＳ２又はステップＳ１２以降の処理を実行することになる。
【０１０３】
上記の実施の形態では、アクセスフラグの値として、リフレッシュを実施することを示す値を「０」とし、リフレッシュを抑止することを示す値を「１」とした例について説明したが、それぞれ異なる値を使用するようにしてもよい。
【０１０４】
上記の実施の形態では、リフレッシュ・イネーブル信号の値として、アクセスフラグの反転値を使用する例について説明したが、アクセスフラグの値に対応させて、ＤＲＡＭ２０、２１でリフレッシュの実施又は抑止が判断できる値であれば、これに限られない。例えば、リフレッシュ・イネーブル信号の値として、アクセスフラグの値をそのまま使用するようにしてもよい。
【符号の説明】
【０１０５】
１、２  情報処理装置
１０、１１  ＭＣＵ
２０、２１  ＤＲＡＭ
１００  ＣＰＵ
１１０  ＤＲＡＭコントローラ
２００、２０１、２０２、２０３  メモリバンク
２１０、２１１、２１２、２１３、２３０、２３１、２３２、２３３  メモリバンク制御回路
１３０、２２０  リフレッシュアドレスカウンタ
１４０  アクセスフラグテーブル
【図１】
2014235770.tif 000003
【図２】
2014235770.tif 000004
【図３】
2014235770.tif 000005
【図４】
2014235770.tif 000006
【図５】
2014235770.tif 000007
【図６】
2014235770.tif 000008