(57)【要約】  データを記憶する複数のセルからなる第１記憶部２と、前記複数のセルそれぞれに対するリフレッシュ間隔とリフレッシュ動作実施状況とを保持する第２記憶部３と、第２記憶部に保持されるリフレッシュ間隔とリフレッシュ動作実施状況とに基づいて前記セルそれぞれに対しリフレッシュ動作を制御する制御部とを備え、セルそれぞれに対し設けられたリフレッシュ間隔でそれぞれのセルに対しリフレッシュ動作を制御する情報処理装置１を提供する。
2009044480.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する複数のセルからなる第１記憶部と、
前記複数のセルそれぞれに対するリフレッシュ間隔とリフレッシュ動作実施状況とを保持する第２記憶部と、
前記第２記憶部に保持されるリフレッシュ間隔とリフレッシュ動作実施状況とに基づいて前記セルそれぞれに対しリフレッシュ動作を制御する制御部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記第２記憶部は、さらに前記第１記憶部のセルごとにデータが格納されているか否かのフラグを保持し、前記制御部はさらに前記フラグに基づきリフレッシュ動作を行うセルを決定し、該セルに対するリフレッシュ動作を制御することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２記憶部は、前記リフレッシュ動作実施状況を最後に前記セルをリフレッシュした時刻である最新リフレッシュ時刻として保持し、
前記制御部は、さらに前記フラグに基づき前記セルそれぞれに対しデータが格納されているか否かを判定し、データが格納されていると判定したセルのうちで、さらに現在の時刻から前記最新リフレッシュ時刻を減算した時間が前記リフレッシュ間隔に達しているセルを決定し、該セルに対しリフレッシュ動作を行うよう制御することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記制御部は、さらに前記リフレッシュ間隔に基づいて前記データを書き込むセルを決定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記第２記憶部はさらに前記第１記憶部のセルごとにデータが格納されているか否かのフラグを保持し、前記制御部は、さらに前記フラグに基づき前記セルそれぞれに対しデータが格納されているか否かを判定し、データが格納されていないと判定したセルのうちで前記リフレッシュ間隔が最も長いセルを、前記データを書き込むセルとして決定することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記制御部は、さらに前記セルの動作に異常が検出された場合、前記第２記憶部に保持されたリフレッシュ間隔を再設定することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記制御部は、さらにリフレッシュ動作が定義された複数のモードから一つのモードを決定し、該モードに基づき前記セルのリフレッシュ動作を制御することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記制御部は、さらに所定のセルのデータを該所定のセルよりもリフレッシュ間隔が長いセルに移動させることを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記第２記憶部はさらに前記第１記憶部のセルごとにデータが格納されているか否かのフラグを保持し、前記制御部は、さらに前記フラグに基づき前記セルそれぞれに対しデータが格納されているか否かを判定し、データが格納されていると判定したセルのうちで最もリフレッシュ間隔が短いセルを所定のセルとすることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記第１記憶部は、前記複数のセルを少なくとも２つのグループにまとめ、前記制御部は、前記グループにまたがりデータが格納されている場合、所定のグループ内に収まるよう前記データを移動させることを特徴とする情報処理装置。
【請求項１１】
データを記憶する複数のセルからなる記憶部を制御する記憶部制御装置であって、
前記複数のセルそれぞれに対するリフレッシュ間隔とリフレッシュ動作実施状況とに基づいて前記セルそれぞれに対してリフレッシュ動作を制御することを特徴とする記憶部制御装置。
【請求項１２】
前記記憶部制御装置は、さらに前記第１記憶部のセルごとにデータが格納されているか否かのフラグに基づきリフレッシュ動作を行うセルを決定し、該セルに対するリフレッシュ動作を制御することを特徴とする請求項１１に記載の記憶部制御装置。
【請求項１３】
前記記憶部制御装置は、さらに前記リフレッシュ間隔に基づいて前記データを書き込むセルを決定することを特徴とする請求項１１に記載の記憶部制御装置。
【請求項１４】
前記記憶部制御装置は、さらに前記セルの動作に異常が検出された場合、前記リフレッシュ間隔を再設定することを特徴とする請求項１１に記載の記憶部制御装置。
【請求項１５】
前記記憶部制御装置は、さらにリフレッシュ動作が定義された複数のモードから一つのモードを決定し、該モードに基づき前記セルのリフレッシュ動作を制御することを特徴とする請求項１１に記載の記憶部制御装置。
【請求項１６】
データを記憶する複数のセルからなる記憶部のリフレッシュ動作を制御する記憶部制御方法であって、
前記複数のセルそれぞれに対するリフレッシュ間隔とリフレッシュ動作実施状況とを読み出す情報取得ステップと、
前記リフレッシュ間隔とリフレッシュ動作実施状況に基づいて前記セルそれぞれに対してリフレッシュ動作を制御するリフレッシュ実行ステップと、
を実行する記憶部制御方法。
【請求項１７】
前記リフレッシュ実行ステップは、さらにセルごとにデータが格納されているか否かのフラグに基づきリフレッシュ動作を行うセルを決定し、該セルに対するリフレッシュ動作を制御することを特徴とする請求項１６に記載の記憶部制御方法。
【請求項１８】
前記リフレッシュ実行ステップは、さらに前記リフレッシュ間隔に基づいて前記データを書き込むセルを決定することを特徴とする請求項１６に記載の記憶部制御方法。
【請求項１９】
前記リフレッシュ実行ステップは、さらに前記セルの動作に異常が検出された場合、前記リフレッシュ間隔を再設定することを特徴とする請求項１６に記載の記憶部制御方法。
【請求項２０】
前記リフレッシュ実行ステップは、さらにリフレッシュ動作が定義された複数のモードから一つのモードを決定し、該モードに基づき前記セルのリフレッシュ動作を行うことを特徴とする請求項１６に記載の記憶部制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリのリフレッシュ動作を制御する情報処理装置、記憶部制御装置、記憶部制御方法に関するものである。
【背景技術】
【０００２】
半導体製造技術の向上によりメモリの狭プロセス化が進んでいるが、その影響でメモリのデータ保持時間が短くなり、頻繁にリフレッシュを行うために消費電力が増加している。また、メモリの通電劣化に起因するデータ保持時間の低下が不良の一要因にもなっている。【０００３】
その一方で、ノートパソコンなど可搬型情報機器の普及により、消費電力の低減がよりいっそう求められている。【０００４】
現状の一般的なリフレッシュ動作は、メモリに対して一定の間隔でリフレッシュを行うものである。例えば、一般的に５１２ＭｂｉｔＳＤＲＡＭでは３２７６８本のＲｏｗラインに対して６４ｍｓ以内にリフレッシュ動作を行う必要があるが、１回のリフレッシュコマンドで４本のＲｏｗアドレスをリフレッシュすることが可能なため、６４ｍｓ÷(３２７６８÷４)≒７．８ｕｓ間隔でリフレッシュコマンドを送信している。【０００５】
なお、従来技術として、ＤＲＡＭリフレッシュ・レートを動的に調整する方法が開示されている（例えば、特許文献１参照）。また、ＳＤＲＡＭがアイドル状態にあるときの消費電力を低減するメモリ制御装置が開示されている（例えば、特許文献２参照）。さらに、消費電力を大幅に節約し、かつ正常なメモリアクセスを保証するリフレッシュ制御装置が開示されている（例えば特許文献３）。
【特許文献１】特開２００２−３１９２８２号公報
【特許文献２】特開２００２−２３０９７０号公報
【特許文献３】特開平７−１７６１８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、リフレッシュコマンドを使用した場合、リフレッシュするＲｏｗアドレスはメモリの内部のカウンタによって決定するため、外部からリフレッシュするＲｏｗアドレスを指定することはできない。そのため、全てのＲｏｗアドレスにデータが書き込まれているとは限らず、データの書き込まれていないＲｏｗアドレスに対しても無条件でリフレッシュを行っていることとなる。【０００７】
また、リフレッシュの規格値は、規格標準化団体によって決定したものであり、それぞれのメモリの実力値を示すものではない。そのため、実際にはそれぞれのメモリには十分なデータ保持能力があり、メモリの実力値に対して過剰なリフレッシュ動作となっている。【０００８】
さらに、同一メモリ内のそれぞれのＲｏｗアドレスはデータ保持能力に差があり、Ｒｏｗアドレスによっては過剰なリフレッシュとなっている。また、一般的には７．８ｕｓなど一定間隔毎に機械的にリフレッシュコマンドを送信しているため、メモリが劣化してＲｏｗアドレスのデータ保持時間がリフレッシュ間隔よりも短くなった場合、データの保持ができずにシステムエラーとなるおそれがある。【０００９】
本発明は上述した問題点を解決するためになされたものであり、Ｒｏｗアドレス毎にリフレッシュ間隔を変えることで、消費電力の低減と信頼性の向上を実現する情報処理装置、記憶部制御装置、記憶部制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決するため、本発明の一態様に係る情報処理装置は、データを記憶する複数のセルからなる第１記憶部と、前記複数のセルそれぞれに対するリフレッシュ間隔とリフレッシュ動作実施状況とを保持する第２記憶部と、前記第２記憶部に保持されるリフレッシュ間隔とリフレッシュ動作実施状況とに基づいて前記セルそれぞれに対しリフレッシュ動作を制御する制御部とを備えることを特徴とするものである。【００１１】
更に、上述した課題を解決するため、本発明の一態様に係る記憶部制御装置は、データを記憶する複数のセルからなる記憶部を制御する記憶部制御装置であって、前記複数のセルそれぞれに対するリフレッシュ間隔とリフレッシュ動作実施状況とに基づいて前記セルそれぞれに対してリフレッシュ動作を制御することを特徴とするものである。【００１２】
また、上述した課題を解決するため、本発明の一態様に係る記憶部制御方法は、データを記憶する複数のセルからなる記憶部のリフレッシュ動作を制御する記憶部制御方法であって、前記複数のセルそれぞれに対するリフレッシュ間隔とリフレッシュ動作実施状況とを読み出す情報取得ステップと、前記リフレッシュ間隔とリフレッシュ動作実施状況に基づいて前記セルそれぞれに対してリフレッシュ動作を制御するリフレッシュ実行ステップとを実行するものである。
【図面の簡単な説明】
【００１３】
【図１】実施の形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【図２】実施の形態に係るメモリの構成の一例を示す図である。
【図３】実施の形態に係る情報処理装置の機能ブロックの一例を示す図である。
【図４】実施の形態１に係るモードレジスタに格納されるデータの一例を示す図である。
【図５】実施の形態１に係る情報処理装置における、リテンション時間を設定する処理の一例を示すフローチャートである。
【図６】実施の形態１に係る情報処理装置における、リフレッシュ動作を制御する処理の一例を示すフローチャートである。
【図７】実施の形態１に係る情報処理装置における、リフレッシュ動作の処理の一例を示すフローチャートである。
【図８】実施の形態２に係る情報処理装置における、リテンション時間の長いＲｏｗアドレスに優先的にデータを格納する処理の一例を示すフローチャートである。
【図９】実施の形態２に係る情報処理装置における、リテンション時間の短いＲｏｗアドレスのデータをリテンション時間の長いＲｏｗアドレスに移動する処理の一例を示すフローチャートである。
【図１０】実施の形態３に係る情報処理装置における、複数のメモリ領域のうちの所定のメモリ領域内にあるデータを他のメモリ領域に移動させる処理の一例を示すフローチャートである。
【発明を実施するための最良の形態】
【００１４】
（実施の形態１）
以下、本発明の実施の形態１について図面を参照しつつ説明する。尚、実施の形態１における情報処理装置は、メモリの全てのＲｏｗアドレス（セル）に対してデータ書込みフラグを付与することで、データ書き込み済みのＲｏｗアドレスのみがリフレッシュされ、消費電力の低減を実現する。さらに、実施の形態１の情報処理装置はそれぞれのＲｏｗアドレスのデータ保持時間を測定し、その測定結果に基づきリフレッシュを行うことで、信頼性の向上を実現する。【００１５】
まず、実施の形態１における情報処理装置のハードウェア構成を図１に示す。情報処理装置１は、主記憶装置であるメモリ１００、中央演算装置であるＣＰＵ１０１を備える。また情報処理装置１は、ＣＰＵ１０１、メモリ１００等との間で高速に情報通信および制御を行うチップセット（Ｎｏｒｔｈ  Ｂｒｉｄｇｅ）１０２、周辺機器の最も低レベルの入出力を制御するプログラム群を格納したＢＩＯＳ１０３を備える。また、ＢＩＯＳ１０３は不揮発性メモリ（Ｒｅｆｒｅｓｈ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｍｅｍｏｒｙ）を備える。【００１６】
また、情報処理装置１は、上述以外にも、ＣＰＵ１０１、メモリ１００に比べ比較的低速な周辺機器間の情報通信および制御を行うチップセット（Ｓｏｕｔｈ  Ｂｒｉｄｇｅ）２００、音源の出力制御をするオーディオボード２０１、ＵＳＢ対応機器またはＰＣＩバス対応機器との接続を行うＵＳＢ／ＰＣＩインターフェイス２０２、ハードディスクドライブ等との接続を行うシリアルＡＴＡ／レガシーＩＤＥインターフェイス２０３、ネットワークボードとの接続を行い外部との通信を可能にするＬＡＮインターフェイス２０４を備える。【００１７】
図２に実施の形態１におけるメモリ１００の内部構成を示す。尚、図２において太線矢印はデータの流れ、細線矢印は制御の流れを示す。メモリ１００は、外部から入力されるクロックから内部クロックを生成するクロックジェネレータ５０、外部から入力される制御信号より読み出しや書き込みなどの動作を決定するコマンドデコーダ５１、コマンドデコーダ５１からの出力を受けて内部回路を制御するコントロールロジック５２、メモリ１００の初期化時に動作モードを格納するモードレジスタ５３を備える。【００１８】
また、メモリ１００は、外部から入力されるアドレス信号を保持するＲｏｗアドレスバッファ、リフレッシュ動作時にリフレッシュアドレスを自動的に生成するリフレッシュカウンタ（Ｒｏｗアドレスバッファａｎｄリフレッシュカウンタ５４）を備え、外部から入力されるアドレス信号を保持するＣｏｌｕｍｎアドレスバッファ、バースト動作時にＣｏｌｕｍｎアドレスを自動的に生成するバーストカウンタ（Ｃｏｌｕｍｎアドレスバッファａｎｄバーストカウンタ５５）を備える。またメモリ１００は、データを保持するメモリセルアレイ部５６、データ制御回路５７、ラッチ回路５８、Ｉ／Ｏバッファ５９を備える。尚、メモリセルアレイ部５６は、複数の領域（Ｂａｎｋ−ＡからＢａｎｋ−Ｄまで）に区分されており、領域毎にＲｏｗデコーダ、Ｓｅｎｓｅ  Ａｍｐ、Ｃｏｌｕｍｎデコーダ、メモリセルアレイを備える。またＢａｎｋ−ＡからＢａｎｋ−Ｄまでの各メモリセルアレイ内にそれぞれ複数のＲｏｗラインが備えられている。【００１９】
次に、情報処理装置１の機能ブロックを図３に示す。情報処理装置１は第１記憶部２、第２記憶部３、制御部４を備え、各機能ブロックは、上述のハードウェア構成を利用することで実現される。【００２０】
第１記憶部２は、上述のメモリ１００に対応し、データを記憶する複数のＲｏｗアドレスから構成される。第２記憶部３は、上述のＢＩＯＳ１０３における不揮発性メモリに対応し、複数のＲｏｗアドレスそれぞれに対するリテンション時間（リフレッシュ間隔）、最新リフレッシュ時刻（リフレッシュ動作実施状況）、Ｒｏｗアドレスごとに有効なデータが書き込まれているか否かを示すデータ書込みフラグを保持する。尚、第２記憶部３は、ＢＩＯＳ１０３における不揮発性メモリとしたが、態様を限定するものではなく、例えばチップセット（Ｎｏｒｔｈ  Ｂｒｉｄｇｅ）１０２内に備えられた記憶領域や、メモリ１００の一部領域を第２記憶部３として使用してもよい。【００２１】
制御部４は、ＣＰＵ１０１、ＢＩＯＳ１０３（不揮発性メモリ以外の部分）、チップセット（Ｎｏｒｔｈ  Ｂｒｉｄｇｅ）１０２、チップセット（Ｓｏｕｔｈ  Ｂｒｉｄｇｅ）２００に対応し、第２記憶部３に保持される情報に基づいて第１記憶部２のＲｏｗアドレスに対してリフレッシュ動作を制御する。【００２２】
次に、第１記憶部２のモードレジスタ５３に格納されるレジスタ群を図４を参照しつつ説明する。アドレスＡ０からアドレスＡ２に格納される値は、１回の読み出し命令（または書き込み命令）で読み出す（または書き込む）Ｃｏｌｕｍｎアドレス数（Ｂｕｒｓｔ  Ｌｅｎｇｔｈ）を定義し、アドレスＡ３に格納される値はバーストタイプを定義する。アドレスＡ４からアドレスＡ６までに格納される値は、読み出し命令からデータが出力されるクロック数（ＣＡＳ  Ｌａｔｅｎｃｙ）を定義する。アドレスＡ７以降は、オプションとして動作モード等を定義するレジスタであり、例えばメモリメーカ固有のデバイステストモード（Ｔｅｓｔ  Ｍｏｄｅ）等を定義するために使用される。ここで、実施の形態１の情報処理装置１はアドレスＡ１０を活用し、制御部４はレジスタＡ１０が「０」の場合は通常のリフレッシュモードとして制御を行い、「１」の場合は指定したＲｏｗアドレスに対しリフレッシュを行うモードとして制御する。尚、使用していないレジスタであれば、アドレスＡ１０以外を活用することもできる。【００２３】
このように、通常のリフレッシュモードおよび指定したＲｏｗアドレスに対しリフレッシュを行うモードとの２つのモードが設けられることで、制御部４はこれらを使い分け、性能が要求される場合と低消費電力が要求される場合に対応することができる。例えば、情報処理装置１がノートＰＣである場合、制御部４は外部電源からの電力供給により動作する場合と、内部バッテリーで動作する場合で上述の２つのモードを使い分けることができる。【００２４】
次に、それぞれのＲｏｗアドレスのデータ保持時間（リテンション時間）を測定し、当該Ｒｏｗアドレスに対応したレジスタ（Ｒｅｇｉｓｔｅｒ）に測定したリテンション時間を設定する処理を図５のフローチャートを参照しつつ説明する。以降、必要に応じて処理対象のＲｏｗアドレス番号を変数Ｎ（または変数Ｍ）として表記し、処理対象であるＲｏｗアドレスをＲｏｗ（Ｎ）（またはＲｏｗ（Ｍ））と表記する。また、Ｒｏｗ（Ｎ）に対応した設定値を格納する領域をＲｅｇｉｓｔｅｒ（Ｎ）と表記する。尚、Ｒｅｇｉｓｔｅｒ（Ｎ）は第２記憶部３に備えられているものとする。【００２５】
制御部４は、電源が投入されることで、ＢＩＯＳ１０３のプログラム群をロードする（ステップＳ１）。その後、制御部４は、全てのＲｏｗラインの数（ＭａｘＲｏｗ）を確認する（ステップＳ２）。次に制御部４は、第１記憶部２（メモリ）を初期化し（ステップＳ３）、リテンション時間の測定対象であるＲｏｗアドレスに変数Ｎ（Ｎの初期値は０）を設定する（ステップＳ４）。【００２６】
次に、制御部４は、リテンション時間を設定する第１記憶部２のＲｏｗ（Ｎ）に予め定義されたデータ（例えばデータ「Ｄ」）を書き込み（ステップＳ５）、Ｗ時間（Ｗは変数で、初期値は例えば６４ｍｓ）待機後（ステップＳ６）、Ｒｏｗ（Ｎ）内に格納したデータが、ステップＳ５で書き込まれたデータ（例えば「Ｄ」）のままであるかを判定する（ステップＳ７）。ここでＲｏｗ（Ｎ）に格納されたデータがステップＳ５で書き込まれたデータ（例えば「Ｄ」）である場合（ステップＳ７、ＰＡＳＳ）、制御部４はＷ時間にＸ時間（例えば１．０ｍｓ）加えた値を再度変数Ｗに代入し（ステップＳ８）、ステップＳ６に処理を戻す。【００２７】
制御部４は、ステップＳ５で書き込まれたデータ（例えば「Ｄ」）が異常データになるまで、上述のステップＳ６、ステップＳ７、ステップＳ８の処理を行う。Ｒｏｗ（Ｎ）に格納されたデータが異常データになった場合（ステップＳ７、ＦＡＩＬ）、制御部４は変数ＷからＸを減算させ、再度変数Ｗに代入する（ステップＳ９）。その後、制御部４はＲｅｇｉｓｔｅｒ（Ｎ）に変数Ｗをリテンション時間として書き込む（ステップＳ１０）。【００２８】
制御部４は、変数Ｎを１つインクリメントし（ステップＳ１１）、変数ＮとＭａｘＲｏｗとを比較する（ステップＳ１２）。ここで、変数ＮがＭａｘＲｏｗ以下である場合（ステップＳ１２、ＹＥＳ）、制御部４は処理をステップＳ５に戻す。一方、全てのＲｏｗアドレスに対し上述のリテンション時間を設定し、変数ＮがＭａｘＲｏｗより大きくなった場合（ステップＳ１２、ＮＯ）、制御部４はオペレーティングシステム（ＯＳ）を起動する（ステップＳ１３）。【００２９】
このように、制御部４は第１記憶部２内の全てのＲｏｗアドレスに対しリテンション時間を設定する。【００３０】
尚、情報処理装置１のオペレーティングシステム起動後においても、Ｒｏｗアドレスの動作において異常が検出された場合、制御部４は当該異常が発生したＲｏｗアドレスに対応するＲｅｇｉｓｔｅｒのリテンション時間を再設定することができる。すなわち、制御部４は上述のステップＳ９（変数Ｗの値は当該Ｒｏｗアドレスに既に設定されたリテンション時間として取得）およびステップＳ１０の処理を行うことでリフレッシュ時間を再設定することができる。【００３１】
このように制御部４によってリフレッシュ時間が再設定されることで、例えば第１記憶部２の所定のＲｏｗラインが通電劣化し、データ保持時間が規定値より短くなってもデータを保持することができ、情報処理装置１のエラーを低減することが可能となる。【００３２】
次に、上述のようにリテンション時間が設定されたＲｏｗアドレスのリフレッシュ制御処理を図６を参照しつつ説明する。尚、以下のリフレッシュ制御処理は、指定したＲｏｗアドレスに対しリフレッシュを行うモード（第１記憶部２のモードレジスタ５３のレジスタＡ１０に「１」が設定されているモード）で動作しているものとする。【００３３】
制御部４は、処理対象となるＲｏｗ（Ｎ）（初期値＝０）を設定し（ステップＳ２０）、Ｒｏｗ（Ｎ）に対応するＲｅｇｉｓｔｅｒ（Ｎ）から、データ書込みフラグ（Ｒｏｗ（Ｎ）にデータが書き込まれているか否かのフラグ）、最新リフレッシュ時刻（Ｒｏｗ（Ｎ）に対し最後にリフレッシュを実施した時刻）、リテンション時間を読み出す（ステップＳ２１）。制御部４は、データ書込みフラグからＲｏｗ（Ｎ）にデータが格納されているか否かを確認する（ステップＳ２２）。データが格納されている場合（ステップＳ２２、Ｙｅｓ）、制御部４は、現在時刻から最新リフレッシュ時刻を減算することで最新リフレッシュ時刻からのＰｅｒｉｏｄ（経過時間）を取得する（ステップＳ２３）。その後、制御部４は、Ｐｅｒｉｏｄにマージン（経過時間に余裕をもたせるために設ける時間）を加えた時間とＲｏｗ（Ｎ）のリテンション時間とを比較する（ステップＳ２４）。Ｐｅｒｉｏｄがリテンション時間にマージンを加えた時間以上である場合（ステップＳ２４、ＮＯ）、制御部４は、第１記憶部２の指定されたＲｏｗアドレス（Ｒｏｗ（Ｎ））をリフレッシュし（ステップＳ２５）、Ｒｅｇｉｓｔｅｒ（Ｎ）の最新リフレッシュ時刻を現在時刻に更新する（ステップＳ２６）。尚、実施の形態１の制御部４はＰｅｒｉｏｄとＲｏｗ（Ｎ）のリテンション時間にマージンを加えた時間とを比較するが、ＰｅｒｉｏｄとＲｏｗ（Ｎ）のリテンション時間とを比較してもよい。【００３４】
その後、制御部４は、変数Ｎを１つインクリメントし（ステップＳ２７）、変数ＮとＭａｘＲｏｗとを比較する（ステップＳ２８）。ここで、変数ＮがＭａｘＲｏｗ以下である場合（ステップＳ２８、ＹＥＳ）、制御部４は、処理をステップＳ２１に戻す。一方、変数ＮがＭａｘＲｏｗより大きい場合（ステップＳ２８、ＮＯ）、制御部４は、リフレッシュ処理の最初（ステップＳ２０）に戻す。【００３５】
尚、ステップＳ２２でデータが格納されていないと判定された場合（ステップＳ２２、ＮＯ）、Ｐｅｒｉｏｄがリテンション時間にマージンを加えた時間より小さい場合（ステップＳ２４、ＹＥＳ）、制御部４は処理をステップＳ２７へ進める。【００３６】
上述のステップＳ２５の処理において、通常のリフレッシュコマンドでは第１記憶部２の内部カウンタ（Ｒｏｗアドレスバッファａｎｄリフレッシュカウンタ５４）によって任意のＲｏｗアドレスが選択されてしまう。この場合の対処方法として、制御部４は、第１記憶部２に対しアクティブコマンド、リードコマンド、オートプリチャージ付きリードコマンド、プリチャージコマンドを組み合わせてリフレッシュ処理を行う。【００３７】
図７の処理フローを参照しつつ、更にステップＳ２５のリフレッシュ処理について説明する。上述の各コマンドの組み合わせを制御部４から受けることで、第１記憶部２がアクティベート、読み出し、プリチャージを行う処理（パターン１）、アクティベート、オートプリチャージ付き読み出しを行う処理（パターン２）、アクティベート、プリチャージを行う処理（パターン３）の３つのパターンのいずれかを実施し、リフレッシュ処理が行われる。【００３８】
パターン１について説明する。第１記憶部２はアクティブコマンドを受けることで、Ｒｏｗ（Ｎ）をアクティベートにする（ステップＳ３０）。ｔＲＣＤ時間待機後（ステップＳ３１）、第１記憶部２はリードコマンドを受けることで１Ｃｏｌｕｍｎ読み出す（ステップＳ３２）。【００３９】
またパターン１の処理における第１記憶部２は、アクティベート後（ステップＳ３０）、ステップＳ３１とステップＳ３２の処理と並行してプリチャージコマンドを受けるまでｔＲＡＳ時間待機し（ステップＳ３３）、プリチャージコマンドを受けることでＲｏｗ（Ｎ）をプリチャージする（ステップＳ３４）。さらに第１記憶部２は、次のアクティブコマンドを受けるまでｔＲＰ時間待機する。【００４０】
次に、パターン２の処理について説明する。第１記憶部２はアクティブコマンドを受けることでＲｏｗ（Ｎ）をアクティベートにする（ステップＳ４０）。ｔＲＣＤ時間待機後（ステップＳ４１）、第１記憶部２はオートプリチャージ付きリードコマンドを受けることで１Ｃｏｌｕｍｎの読み出しおよびプリチャージを行う（ステップＳ４２）。【００４１】
また第１記憶部２はＲｏｗ（Ｎ）をアクティベート後（ステップＳ４０）、上述のステップＳ４１、ステップＳ４２の処理を行いつつ次のアクティブコマンドを受けるまでｔＲＣ時間待機する（ステップＳ４３）。【００４２】
パターン３の処理について説明する。第１記憶部２はアクティブコマンドを受けることでＲｏｗ（Ｎ）をアクティベートにする（ステップＳ５０）。ｔＲＡＳ時間待機後（ステップＳ５１）、第１記憶部２はプリチャージコマンドを受けることでＲｏｗ（Ｎ）のプリチャージを行い（ステップＳ５２）、次のアクティブコマンドを受けるまでｔＲＰ時間待機する（ステップＳ５３）。【００４３】
上述のリフレッシュ制御処理およびリフレッシュ処理によって、情報処理装置１は全てのＲｏｗアドレスに対し、Ｒｏｗアドレスそれぞれに適合したリテンション時間でリフレッシュを行うことができる。【００４４】
また、データを保持することができる時間は温度に大きく依存するため、リテンション時間を測定する際には、情報処理装置１内の全てのデバイスの稼働率を上げ、第１記憶部２の温度を上げてから測定する方が、実際の情報処理装置１の運用状態に近いため望ましい。【００４５】
全てのデバイスの稼働率を上げることが困難である場合は、第１記憶部２の近傍に発熱体と温度センサを設置することで同様の効果を得ることができる。すなわち、情報処理装置１は、リテンション時間を設定する際に、上述の全てのデバイスの稼働率が上がったときの温度程度に発熱体を発熱させることで第１記憶部２の温度を上げることができる。【００４６】
（実施の形態２）
実施の形態２における情報処理装置は、実施の形態１にて測定されたＲｏｗアドレス毎のデータ保持時間（リテンション時間）から、長時間データを保持することができるＲｏｗアドレスを求め、当該Ｒｏｗアドレスに対し優先的にデータを書き込む。このように長時間データを保持することができるＲｏｗアドレスに優先的にデータが書き込まれることで、情報処理装置はリフレッシュ処理の回数を低減することができ、より低消費電力を実現することが可能となる。【００４７】
また、上述の内容を発展させ、情報処理装置は短時間しかデータを保持できないＲｏｗアドレスのデータを、定期的に長時間データを保持できるＲｏｗアドレスに移動させることで、さらに低消費電力を実現することが可能となる。実施の形態２では、これらの処理について説明する。【００４８】
実施の形態２における制御部４には、実施の形態１の制御部４に対し、さらにリテンション時間に基づいてデータを書き込むＲｏｗアドレスを決定する機能、および所定のＲｏｗアドレスのデータをよりリテンション時間が長いセルに移動させる機能が備えられている。尚、制御部４以外の機能ブロックおよびハードウェア構成は実施の形態１と同様であるため、ここでの説明は省略する。【００４９】
まず、リテンション時間の長いＲｏｗアドレスに対し優先的にデータを書き込む処理を図８を参照しつつ説明する。【００５０】
制御部４は、Ｒｏｗ（Ｎ）（Ｎの初期値は０）、Ｒｏｗアドレスのうちで最も長いリテンション時間が代入される最長リテンション時間（初期値＝０）、最長リテンション時間を有するＲｏｗアドレスである最長Ｒｏｗアドレス（初期値＝ｎｕｌｌ）のそれぞれの変数に初期値を設定する（ステップＳ６０）。次に制御部４はＲｅｇｉｓｔｅｒ（Ｎ）からＲｏｗ（Ｎ）のデータ書込みフラグおよびリテンション時間を読み出す（ステップＳ６１）。【００５１】
制御部４は、データ書込みフラグに基づきＲｏｗ（Ｎ）内にデータが格納されているか否かを判定する（ステップＳ６２）。Ｒｏｗ（Ｎ）にデータが格納されていない場合（ステップＳ６２、ＹＥＳ）、制御部４は最長リテンション時間とＲｏｗ（Ｎ）のリテンション時間とを比較する（ステップＳ６３）。ここで、最長リテンション時間がＲｏｗ（Ｎ）のリテンション時間より小さい場合（ステップＳ６３、ＹＥＳ）、制御部４はＲｏｗ（Ｎ）のリテンション時間を最長リテンション時間に代入し、最長ＲｏｗアドレスをＮに設定する（ステップＳ６４）。その後、制御部４は変数Ｎを１つインクリメントし（ステップＳ６５）、変数ＮとＭａｘＲｏｗとを比較する（ステップＳ６６）。【００５２】
ここで、変数ＮがＭａｘＲｏｗより大きい場合（すなわち、全てのＲｏｗアドレスに対し上述の処理を実施し、最長リテンション時間を有する最長Ｒｏｗアドレスが求められた場合）（ステップＳ６６、ＮＯ）、制御部４は最長Ｒｏｗアドレスにデータを書き込み（ステップＳ６７）、最長Ｒｏｗアドレスに対応するＲｅｇｉｓｔｅｒ（Ｒｅｇｉｓｔｅｒ（ＬＲＡ））が保持していたデータ書込みフラグおよび最新リフレッシュ時刻を更新する（ステップＳ６８）。【００５３】
尚、ステップＳ６２でＲｏｗ（Ｎ）にデータが格納されている場合（ステップＳ６２、ＮＯ）、およびステップＳ６３で最長リテンション時間がリテンション時間以上である場合（ステップＳ６３、ＮＯ）、制御部４はステップＳ６５に処理を進める。また、制御部４はステップＳ６６で変数ＮがＭａｘＲｏｗ以下である場合（ステップＳ６６、ＹＥＳ）、ステップＳ６１に処理を戻す。【００５４】
次に、リテンション時間の短いＲｏｗアドレスのデータをリテンション時間の長いＲｏｗアドレスに移動する処理を図９のフローチャートを参照しつつ説明する。【００５５】
制御部４は、第１記憶部２内の移動先であるＲｏｗ（Ｍ）内のデータを削除する（ステップＳ７０）。尚、Ｒｏｗ（Ｍ）は有効なデータが書き込まれていないもの（Ｒｏｗ（Ｍ）のデータ書込みフラグでデータの有無を確認可能）とする。次に、制御部４はＲｏｗ（Ｍ）に対応するＲｅｇｉｓｔｅｒ（Ｍ）からリテンション時間を読み出す（ステップＳ７１）。【００５６】
制御部４は、その後、処理を行うＲｏｗ（Ｎ）（初期値＝０）、全てのＲｏｗアドレスのうちで最も短いリテンション時間が代入される最短リテンション時間（初期値＝ｎｕｌｌ）、最短リテンション時間を有するＲｏｗアドレスである最短Ｒｏｗアドレス（初期値＝ｎｕｌｌ）のそれぞれの変数に対し初期値を設定する（ステップＳ７２）。【００５７】
制御部４は、Ｒｅｇｉｓｔｅｒ（Ｎ）からＲｏｗ（Ｎ）のデータ書込みフラグ、およびリテンション時間を読み出し（ステップＳ７３）、データ書込みフラグに基づきＲｏｗアドレス（Ｎ）にデータが格納されているか否か判定する（ステップＳ７４）。ここで、データが格納されている場合（ステップＳ７４、ＹＥＳ）、制御部４は、最短リテンション時間とＲｏｗ（Ｎ）のリテンション時間を比較する（ステップＳ７５）。【００５８】
ここで、最短リテンション時間よりＲｏｗ（Ｎ）のリテンション時間が小さい場合（ステップＳ７５、ＹＥＳ）、制御部４は、Ｒｏｗ（Ｎ）のリテンション時間を最短リテンション時間に代入し、最短Ｒｏｗアドレスを現在処理を行っているＲｏｗアドレス（変数Ｎ）にする（ステップＳ７６）。そして、制御部４は変数Ｎを１つインクリメントし（ステップＳ７７）、変数ＮとＭａｘＲｏｗとを比較する（ステップＳ７８）。変数ＮがＭａｘＲｏｗ以下の場合は（ステップＳ７８、ＹＥＳ）、制御部４は処理をステップＳ７３に戻すことで、ステップＳ７３からステップＳ７７までの処理を繰り返す。【００５９】
上述の処理を繰り返し、変数ＮがＭａｘＲｏｗより大きくなった場合（すなわち、全てのＲｏｗアドレスに対し上述の処理を実施し、最短リテンション時間を有する最短Ｒｏｗアドレスが求められた場合）（ステップＳ７８、ＮＯ）、制御部４はＲｏｗ（Ｎ）のリテンション時間とＲｏｗ（Ｍ）のリテンション時間とを比較する（ステップＳ７９）。ここで、Ｒｏｗ（Ｍ）のリテンション時間がＲｏｗ（Ｎ）のリテンション時間より大きい場合（ステップＳ７９、ＹＥＳ）、制御部４はＲｏｗ（Ｎ）から全Ｃｏｌｕｍｎを読み出し（ステップＳ８０）、Ｒｏｗ（Ｍ）へ読み出した全Ｃｏｌｕｍｎを書き込む（ステップＳ８１）。そして、制御部４はＲｅｇｉｓｔｅｒ（Ｍ）およびＲｅｇｉｓｔｅｒ（Ｎ）のデータ書込みフラグとリテンション時間および最新リテンション時刻を更新する（ステップＳ８２）。【００６０】
尚、ステップＳ７４の判定がＮＯである場合、およびステップＳ７５の判定がＮＯである場合、判定部４は処理をステップＳ７７へ進め、ステップＳ７８の判定がＹＥＳの場合、ステップＳ７３へ処理を戻す。また判定部４はステップＳ７９の判定がＮＯである場合は処理を終了する。【００６１】
（実施の形態３）
Ｒｏｗアドレスが複数のメモリ領域（グループ）（例えば図２におけるメモリセルアレイ部５６のＢａｎｋ−ＡからＢａｎｋ−Ｄまで）にグループ化されている場合、情報処理装置は一定の時間間隔で所定のメモリ領域にあるＲｏｗアドレスのデータを他のメモリ領域に移動させることで（例えばＢａｎｋ−ＡのデータをＢａｎｋ−Ｂに移動することでデータをＢａｎｋ−Ｂに集約させる）、移動元のメモリ領域に対するリフレッシュ処理が無くなり、さらに消費電力を低減させることができる。【００６２】
実施の形態３における制御部４には、実施の形態１の制御部４に対し、さらに複数のメモリ領域にまたがりデータが格納されている場合に所定のメモリ領域内に収まるようデータを移動させる機能が備えられている。尚、上述の制御部４以外の機能ブロックおよびハードウェア構成は実施の形態１と同様であるため、ここでの説明は省略する。【００６３】
上述の他のメモリ領域に移動させる処理を図１０のフローチャートを参照しつつ説明する。また、説明を簡略にするため、２つのメモリ領域（例えばＢａｎｋ−Ａ、Ｂａｎｋ−Ｂ）を対象として説明するが、Ｂａｎｋ−ＣとＢａｎｋ−Ｄとのセット、Ｂａｎｋ−ＥとＢａｎｋ−Ｆとのセット（情報処理装置１のメモリを増設した場合）等、情報処理装置１はＢａｎｋのセット単位で本処理を実施することで、たとえＢａｎｋの数が増加しても対応することができる。さらに、情報処理装置１はメモリボード単位で本処理を実施することも可能である。【００６４】
制御部４は、Ｒｏｗ（Ｎ）（Ｎの初期値＝０）を設定し、有効なデータが存在するＲｏｗアドレスの数を示す変数であるデータ有Ｒｏｗ数を初期値０に設定する（ステップＳ９１）。次に、制御部４は、Ｒｅｇｉｓｔｅｒ（Ｎ）からＲｏｗ（Ｎ）のデータ書込みフラグを読み出し（ステップＳ９２）、Ｒｏｗ（Ｎ）にデータが格納されているか否かの判定をする（ステップＳ９３）。【００６５】
ここで、Ｒｏｗ（Ｎ）にデータが格納されている場合（ステップＳ９３、ＹＥＳ）、制御部４はデータ有Ｒｏｗ数を１つインクリメントし（ステップＳ９４）、さらに変数Ｎをインクリメントする（ステップＳ９５）。尚、Ｒｏｗ（Ｎ）にデータが格納されていない場合（ステップＳ９３、ＮＯ）、制御部４は変数Ｎのインクリメントのみ行う（ステップＳ９５）。【００６６】
制御部４は、上述の処理を変数ＮがＭａｘＲｏｗより大きくなるまで行う（ステップＳ９６、ＹＥＳからステップＳ９２へのループ）。【００６７】
変数ＮがＭａｘＲｏｗより大きくなった場合（ステップＳ９６、ＮＯ）、制御部４はデータ有Ｒｏｗ数と、最大Ｒｏｗ数の半分（最大Ｒｏｗ数／２）とを比較し（ステップＳ９７）、データ有Ｒｏｗ数が、最大Ｒｏｗ数／２より小さい場合（ステップＳ９７、ＹＥＳ）、変数Ｍおよび変数Ｎに０を代入する（ステップＳ９８）。【００６８】
次に制御部４は、Ｒｅｇｉｓｔｅｒ（Ｎ）のデータ書込みフラグを読み出し（ステップＳ９９）、Ｒｏｗ（Ｎ）にデータが格納されているか否か判定する（ステップＳ１００）。ここで、Ｒｏｗ（Ｎ）にデータが格納されていない場合（ステップＳ１００、ＮＯ）、制御部４はＲｅｇｉｓｔｅｒ（Ｍ）のデータ書込みフラグを読み出し（ステップＳ１０３）、Ｒｏｗ（Ｍ）にデータが格納されているか否か判定する（ステップＳ１０４）。ここで、Ｒｏｗ（Ｍ）にデータが格納されている場合（ステップＳ１０４、ＹＥＳ）、制御部４はＲｏｗ（Ｍ）から全Ｃｏｌｕｍｎを読み出し（ステップＳ１０５）、Ｒｏｗ（Ｎ）へ読み出した全Ｃｏｌｕｍｎを書き込む（ステップＳ１０６）。【００６９】
次に、制御部４は、Ｒｅｇｉｓｔｅｒ（Ｍ）およびＲｅｇｉｓｔｅｒ（Ｎ）のデータ書込みフラグとリテンション時間および最新リフレッシュ時刻を更新し（ステップＳ１０７）、変数Ｍを１つインクリメントし（ステップＳ１０８）、変数Ｎを１つインクリメントする（ステップＳ１０１）。次に、制御部４は、変数ＮとＭａｘＲｏｗとの比較をする（ステップＳ１０２）。変数ＮがＭａｘＲｏｗ以下である場合（ステップＳ１０２、ＹＥＳ）、制御部４は、処理をステップＳ９９へ戻し、上述のステップＳ９９からステップＳ１０１までの一連の処理（必要に応じてステップＳ１０３からステップＳ１０８までの一連の処理も含む）の処理を行う。【００７０】
変数ＮがＭａｘＲｏｗより大きい場合（ステップＳ１０２、ＮＯ）、制御部４は処理を終了する。【００７１】
尚、ステップＳ９７の判定でＮＯである場合は、制御部４は処理を終了し、ステップＳ１００の判定でＹＥＳである場合は、ステップＳ１０１へ処理を進める。またステップＳ１０４の判定でＮＯである場合、制御部４は変数Ｍを１つインクリメントし（ステップＳ１０９）、ステップＳ１０３へ処理を戻す。【００７２】
実施の形態３により、データが書き込まれているメモリ領域のみをリフレッシュすることが可能となり、消費電力の削減が可能となる。【００７３】
実施の形態では、第１記憶部２、第２記憶部３、制御部４を備えた情報処理装置１として説明したが、制御部４を記憶部を制御する記憶部制御装置とすることも可能である。
【産業上の利用可能性】
【００７４】
以上説明したように、セルそれぞれに設けられたリフレッシュ間隔に基づき、それぞれのセルに対しリフレッシュ動作を制御することができる。
【図１】
2009044480.tif 000003
【図２】
2009044480.tif 000004
【図３】
2009044480.tif 000005
【図４】
2009044480.tif 000006
【図５】
2009044480.tif 000007
【図６】
2009044480.tif 000008
【図７】
2009044480.tif 000009
【図８】
2009044480.tif 000010
【図９】
2009044480.tif 000011
【図１０】
2009044480.tif 000012
【手続補正書】
【提出日】平成22年2月3日(2010.2.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを記憶する複数のセルからなる第１記憶部と、
前記複数のセルそれぞれに対するリフレッシュ間隔とリフレッシュ動作実施状況とを保持する第２記憶部と、
前記第２記憶部に保持されるリフレッシュ間隔とリフレッシュ動作実施状況とに基づいて前記セルそれぞれに対しリフレッシュ動作を制御する制御部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記第２記憶部は、さらに前記第１記憶部のセルごとにデータが格納されているか否かのフラグを保持し、前記制御部はさらに前記フラグに基づきリフレッシュ動作を行うセルを決定し、該セルに対するリフレッシュ動作を制御することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２記憶部は、前記リフレッシュ動作実施状況を最後に前記セルをリフレッシュした時刻である最新リフレッシュ時刻として保持し、
前記制御部は、さらに前記フラグに基づき前記セルそれぞれに対しデータが格納されているか否かを判定し、データが格納されていると判定したセルのうちで、さらに現在の時刻から前記最新リフレッシュ時刻を減算した時間が前記リフレッシュ間隔に達しているセルを決定し、該セルに対しリフレッシュ動作を行うよう制御することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御部は、さらに前記リフレッシュ間隔に基づいて前記データを書き込むセルを決定することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記制御部は、さらに前記セルの動作に異常が検出された場合、前記第２記憶部に保持されたリフレッシュ間隔を再設定することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記制御部は、さらにリフレッシュ動作が定義された複数のモードから一つのモードを決定し、該モードに基づき前記セルのリフレッシュ動作を制御することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
データを記憶する複数のセルからなる記憶部を制御する記憶部制御装置であって、
前記複数のセルそれぞれに対するリフレッシュ間隔とリフレッシュ動作実施状況とに基づいて前記セルそれぞれに対してリフレッシュ動作を制御することを特徴とする記憶部制御装置。
【請求項８】
前記記憶部制御装置は、さらに前記記憶部のセルごとにデータが格納されているか否かのフラグに基づきリフレッシュ動作を行うセルを決定し、該セルに対するリフレッシュ動作を制御することを特徴とする請求項７に記載の記憶部制御装置。
【請求項９】
データを記憶する複数のセルからなる記憶部のリフレッシュ動作を制御する記憶部制御方法であって、
前記複数のセルそれぞれに対するリフレッシュ間隔とリフレッシュ動作実施状況とを読み出す情報取得ステップと、
前記リフレッシュ間隔とリフレッシュ動作実施状況に基づいて前記セルそれぞれに対してリフレッシュ動作を制御するリフレッシュ実行ステップと、
を実行する記憶部制御方法。
【請求項１０】
前記リフレッシュ実行ステップは、さらにセルごとにデータが格納されているか否かのフラグに基づきリフレッシュ動作を行うセルを決定し、該セルに対するリフレッシュ動作を制御することを特徴とする請求項９に記載の記憶部制御方法。
【国際調査報告】
2009044480.tif 000013
2009044480.tif 000014
2009044480.tif 000015
2009044480.tif 000016