(57)【要約】【課題】  ＤＲＡＭのリフレッシュ処理と通常のメモリアクセス処理とが重なったときにもメモリバンド幅の低下を有効に回避させることが可能なメモリ制御装置およびメモリ制御方法を提供する。【解決手段】  アクセス処理が発生したメモリのＲｏｗアドレスをフラグデータとして記憶する記憶部１３、１５と、リフレッシュ処理間隔の１／２期間である処理期間ごとにこのフラグデータを読み出してリフレッシュ処理が必要なアドレスを選択し、この選択したアドレスのリフレッシュ処理コマンドを生成するフラグ読み出し部１６と、このリフレッシュ処理コマンドをメモリへのアクセス処理のコマンドシーケンスに埋め込む売りフレッシュ用コマンド埋め込み部１７とを備え、処理時間を短縮させメモリバンド幅の低下を回避させる。【選択図】  図１
2006269029.tif 000002
【特許請求の範囲】
【請求項１】
データを入出力するアクセス処理を行うとともに、入力されたデータに予め設定されたリフレッシュ処理間隔でメモリに対するリフレッシュ処理を行うメモリ制御装置であって、
前記アクセス処理が発生したときにこのアクセス処理のコマンドシーケンスを生成するコマンド生成部と、
前記リフレッシュ処理間隔から算出される処理期間を計測する処理期間計測部と、
前記アクセス処理および前記リフレッシュ処理が行われたメモリのアドレスをデータとして記憶する記憶部と、
前記処理期間ごとに、前記記憶部のデータを読み出し、このデータを基にリフレッシュ処理が必要なアドレスを選択し、この選択したアドレスのリフレッシュ処理コマンドを生成する読み出し部と、
前記リフレッシュ処理コマンドを前記アクセス処理コマンドシーケンスに埋め込む埋め込み部と、
を備えることを特徴とするメモリ制御装置。
【請求項２】
データを入出力するアクセス処理を行うとともに、入力されたデータに予め設定されたリフレッシュ処理間隔でリフレッシュ処理を行い、複数のバンクを有するメモリを制御するメモリ制御装置であって、
前記アクセス処理が発生したときにこのアクセス処理のコマンドシーケンスを生成するコマンド生成部と、
前記リフレッシュ処理間隔から算出される処理期間を計測する処理期間計測部と、
前記複数のバンクにそれぞれ対応し、前記処理期間ごとに前記対応するバンク内のアドレスのリフレッシュ回数を計数する複数のリフレッシュ回数カウンタと、
前記アクセス処理されたアドレスのバンクと異なり且つ計数されたリフレッシュ回数値が最小のリフレッシュ回数カウンタに対応するバンクを選択し、このバンクにおける次のリフレッシュ処理アドレスを選定してこのアドレスのリフレッシュ処理コマンドを生成する選択部と、
前記リフレッシュ処理コマンドを前記アクセス処理コマンドシーケンスに埋め込む埋め込み部と、
を備えることを特徴とするメモリ制御装置。
【請求項３】
データを入出力するアクセス処理を行うとともに、入力されたデータに予め設定されたリフレッシュ処理間隔でメモリに対するリフレッシュ処理を行うメモリ制御方法であって、
前記アクセス処理が発生したときにこのアクセス処理のコマンドシーケンスを生成するステップと、
前記リフレッシュ処理間隔から算出される処理期間を計測するステップと、
前記アクセス処理および前記リフレッシュ処理が行われたメモリのアドレスをデータとして記憶するステップと、
前記処理期間ごとに、前記記憶されたデータを読み出し、このデータを基にリフレッシュ処理が必要なアドレスを選択し、この選択したアドレスのリフレッシュ処理コマンドを生成するステップと、
前記リフレッシュ処理コマンドを前記アクセス処理コマンドシーケンスに埋め込むステップと、
を備えることを特徴とするメモリ制御方法。
【請求項４】
データを入出力するアクセス処理を行うとともに、入力されたデータに予め設定されたリフレッシュ処理間隔でリフレッシュ処理を行い、複数のバンクを有するメモリを制御するメモリ制御方法であって、
前記アクセス処理が発生したときにこのアクセス処理のコマンドシーケンスを生成するステップと、
前記リフレッシュ処理間隔から算出される処理期間を計測するステップと、
前記複数のバンクにそれぞれ対応する複数のリフレッシュ回数カウンタにより、前記処理期間ごとに前記対応するバンク内のアドレスのリフレッシュ回数を計数するステップと、
前記アクセス処理されたアドレスのバンクと異なり且つ計数されたリフレッシュ回数値が最小のリフレッシュ回数カウンタに対応するバンクを選択し、このバンクにおける次のリフレッシュ処理アドレスを選定してこのアドレスのリフレッシュ処理コマンドを生成するステップと、
前記リフレッシュ処理コマンドを前記アクセス処理コマンドシーケンスに埋め込むステップと、
を備えることを特徴とするメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶素子としてリフレッシュが必要なＤＲＡＭを用いてデータを保持するメモリを制御するメモリ制御装置およびメモリ制御方法に関する。
【背景技術】
【０００２】
現在、コンピュータのメインメモリにはデータを記憶する記憶素子としてＲＡＭ（Random Access Memory）、特にＤＲＡＭ（Dynamic Random Access Memory）が多く使用されている。このＤＲＡＭは回路が単純で集積度も簡単に上げることができ、価格も安いという利点がある。その一方、ＤＲＡＭではデータの記憶が行われる電荷が時間とともに減少することから、記憶保持のために一定時間毎にそのデータにアクセスするかまたは、電荷を補充するリフレッシュ処理を行う必要があるという性質がある。
【０００３】
従来の一般的なＤＲＡＭでは、カウンタを用いて設定されたリフレッシュ処理間隔（以下、「リフレッシュサイクル」という。）を計測し、このリフレッシュサイクルに準じた間隔でリフレッシュ処理を一括して行わせるリフレッシュコマンドの発行要求が制御部に送信される。このため、設定されたリフレッシュサイクルですべてのアドレスにリフレッシュ処理が行われている。
【特許文献１】特開２０００−２３５７８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、メモリへのアクセス状況に集中期間と閑散期間とが存在する場合、定期的に発行されるリフレッシュコマンドによるリフレッシュ処理がこの集中期間に重なると、アクセス待機時間が許容範囲を超えてしまい、バンド幅の低下やシステム動作の破綻を招くという問題があった。
【０００５】
この問題を解決するため、特許文献１では、設定されたリフレッシュサイクルよりも短い周期をカウントするリフレッシュカウンタとこの短い周期内にアクセスされたアドレスを記憶するアドレス記憶回路とを有し、この記憶されたアドレスを除外してリフレッシュ処理を行う装置が記載されている。
【０００６】
この装置では、一定期間内にアクセスされリフレッシュが不要なアドレスが除外されてリフレッシュ処理が行われるため、過剰なリフレッシュ処理による無駄な電力の消費とバンド幅の低下を防ぐことができる。
【０００７】
しかし、この特許文献１の装置でも、リフレッシュコマンドによるリフレッシュ処理は通常のメモリアクセス処理と多重化することができないため、処理が重なったときのメモリバンド幅の低下は充分には回避されない。
【０００８】
本発明は上記事情に鑑みてなされたものであり、ＤＲＡＭのリフレッシュ処理と通常のメモリアクセス処理とが重なったときにもメモリバンド幅の低下を有効に回避させることが可能なメモリ制御装置およびメモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するための本発明の請求項１に記載のメモリ制御装置は、データを入出力するアクセス処理を行うとともに、入力されたデータに予め設定されたリフレッシュ処理間隔でメモリに対するリフレッシュ処理を行い、アクセス処理が発生したときにこのアクセス処理のコマンドシーケンスを生成するコマンド生成部と、リフレッシュ処理間隔から算出される処理期間を計測する処理期間計測部と、アクセス処理およびリフレッシュ処理が行われたメモリのアドレスをデータとして記憶する記憶部と、処理期間ごとに、記憶部のデータを読み出し、このデータを基にリフレッシュ処理が必要なアドレスを選択し、この選択したアドレスのリフレッシュ処理コマンドを生成する読み出し部と、リフレッシュ処理コマンドをアクセス処理コマンドシーケンスに埋め込む埋め込み部とを備えることを特徴とする。
【００１０】
また、請求項２に記載のメモリ制御装置は、データを入出力するアクセス処理を行うとともに入力されたデータに予め設定されたリフレッシュ処理間隔でリフレッシュ処理を行い、複数のバンクを有するメモリを制御し、アクセス処理が発生したときにこのアクセス処理のコマンドシーケンスを生成するコマンド生成部と、リフレッシュ処理間隔から算出される処理期間を計測する処理期間計測部と、複数のバンクにそれぞれ対応し、処理期間ごとに対応するバンク内のアドレスのリフレッシュ回数を計数する複数のリフレッシュ回数カウンタと、アクセス処理されたアドレスのバンクと異なり且つ計数されたリフレッシュ回数値が最小のリフレッシュ回数カウンタに対応するバンクを選択し、このバンクにおける次のリフレッシュ処理アドレスを選定してこのアドレスのリフレッシュ処理コマンドを生成する選択部と、リフレッシュ処理コマンドをアクセス処理コマンドシーケンスに埋め込む埋め込み部とを備えることを特徴とする。
【００１１】
また、請求項３に記載のメモリ制御方法は、データを入出力するアクセス処理を行うとともに、入力されたデータに予め設定されたリフレッシュ処理間隔でメモリに対するリフレッシュ処理を行うものであり、アクセス処理が発生したときにこのアクセス処理のコマンドシーケンスを生成するステップと、リフレッシュ処理間隔から算出される処理期間を計測するステップと、アクセス処理およびリフレッシュ処理が行われたメモリのアドレスをデータとして記憶するステップと、処理期間ごとに、記憶されたデータを読み出し、このデータを基にリフレッシュ処理が必要なアドレスを選択し、この選択したアドレスのリフレッシュ処理コマンドを生成するステップと、リフレッシュ処理コマンドをアクセス処理コマンドシーケンスに埋め込むステップとを備えることを特徴とする。
【００１２】
また、請求項４に記載のメモリ制御方法は、データを入出力するアクセス処理を行うとともに、入力されたデータに予め設定されたリフレッシュ処理間隔でリフレッシュ処理を行い、複数のバンクを有するメモリを制御するものであり、アクセス処理が発生したときにこのアクセス処理のコマンドシーケンスを生成するステップと、リフレッシュ処理間隔から算出される処理期間を計測するステップと、複数のバンクにそれぞれ対応する複数のリフレッシュ回数カウンタにより、処理期間ごとに対応するバンク内のアドレスのリフレッシュ回数を計数するステップと、アクセス処理されたアドレスのバンクと異なり且つ計数されたリフレッシュ回数値が最小のリフレッシュ回数カウンタに対応するバンクを選択し、このバンクにおける次のリフレッシュ処理アドレスを選定してこのアドレスのリフレッシュ処理コマンドを生成するステップと、リフレッシュ処理コマンドをアクセス処理コマンドシーケンスに埋め込むステップとを備えることを特徴とする。
【発明の効果】
【００１３】
本発明のメモリ制御装置およびメモリ制御方法によれば、ＤＲＡＭの記憶保持のための処理としてリフレッシュコマンドによるリフレッシュ処理ではなく通常のメモリアクセスと同様の処理を用いるため、この記憶保持のための処理以外の通常のメモリアクセス処理と重なった場合にもそれらの処理を多重化して処理時間を短縮することができ、バンド幅の低下を有効に回避することが可能である。
【発明を実施するための最良の形態】
【００１４】
〈第一実施形態〉
本発明の第一実施形態におけるメモリ制御装置１の構成を図１を参照して説明する。
【００１５】
本実施形態におけるメモリ制御装置１は、アクセスコマンド生成部１１と、アドレスデコード部１２と、書き込みアドレスフラグ記憶部１３と、１／２リフレッシュ期間計測カウンタ１４と、Ｒ／Ｗ（読み出し／書き込み）アドレスフラグ記憶部１５と、フラグ読み出し部１６と、コマンド埋め込み部１７とを有する。そしてこのメモリ制御装置１は、メモリであるＤＤＲ  ＳＤＲＡＭ（Double Data Rate Synchronous Dynamic Random Access Memory：以下「ＤＤＲ」と称する）へのデータの入出力を制御する。
【００１６】
アクセスコマンド生成部１１は、ＤＤＲへのデータ読み出し／書き込みアクセスが行われたときにこのアクセス処理のコマンドを生成して、アドレスデコード部１２およびコマンド埋め込み部１７に送信する。
【００１７】
アドレスデコード部１２は、アクセスコマンド生成部１１で生成されたコマンドシーケンスからＤＤＲのワード線に対応するＲｏｗアドレス（行アドレス）をデコードする。このとき、ＤＤＲの初期化後、各Ｒｏｗアドレス単位で１回目の書き込みアクセスがあったときは、デコードしたアドレスを書き込みアドレスフラグ記憶部１３に送信する。また、各Ｒｏｗアドレス単位で２回目以降の書き込みアクセスがあったときは、デコードしたアドレスをＲ／Ｗアドレスフラグ記憶部１５に送信する。
【００１８】
書き込みアドレスフラグ記憶部１３は、ＤＤＲのＲｏｗアドレス数に相当するW個のフラグFac1[ad]（０≦ad≦Ｗ−１）を格納することが可能なフラグ格納部１３ａを有し、１回目の書き込みアクセスがあったＲｏｗアドレスに対応するフラグFac1[ad]を立てて記憶する。
【００１９】
１／２リフレッシュ期間計測カウンタ１４は、リフレッシュ期間Trefの１／２期間である１／２リフレッシュ期間Tref/2を計測し、カウントを行う。
【００２０】
Ｒ／Ｗアドレスフラグ記憶部１５は、ＤＤＲのＲｏｗアドレスワード数に相当するW個のフラグFac2[ad]（０≦ad≦Ｗ−１）を格納することが可能な第１フラグ格納部１５ａおよび第２フラグ格納部１５ｂを有する。Ｒ／Ｗアドレスフラグ記憶部１５は、この第１フラグ格納部１５ａと第２フラグ格納部１５ｂとを、１／２リフレッシュ期間Tref/2ごとにフラグ読み出し側とフラグ書き込み側とに切り替える。そして、Ｒｏｗアドレス単位で２回目以降の書き込みアクセスがあったときは、フラグ書き込み側になっているフラグ格納部の対応するＲｏｗアドレスのフラグFac2[ad]を立てて記憶する。
【００２１】
ここで、第１フラグ格納部１５ａまたは第２フラグ格納部１５ｂをフラグ読み出し側からフラグ書き込み側に切り替えるときは、それまで読み出し側であったフラグ記憶部に格納されているフラグデータを一旦初期化する。
【００２２】
フラグ読み出し部１６は、書き込みアドレスフラグ記憶部１３に格納されているフラグのデータ、および、Ｒ／Ｗアドレスフラグ記憶部１５のフラグ読み出し側になっている第１フラグ格納部１５ａまたは第２フラグ格納部１５ｂに格納されているフラグのデータをアドレス順に読み出す。そして、読み出したフラグのデータからリフレッシュが必要なアドレスを抽出する。
【００２３】
コマンド埋め込み部１７は、フラグ読み出し部１６で抽出されたリフレッシュが必要なアドレスのリフレッシュ処理のコマンドを、アクセスコマンド生成部１１から送信された通常のメモリアクセス処理のコマンドシーケンスに埋め込んで多重化する。
【００２４】
次に、本実施形態におけるメモリ制御装置１の動作を図２のフローチャートを参照して説明する。
【００２５】
まず、初期化されたＤＤＲにおいて（Ｓ１）、通常のＤＤＲへの読み出し／書き込みのアクセスがあったときは（Ｓ２の「Yes」）、アクセスコマンド生成部１１でこの読み出し／書き込みアクセスに関するコマンドR/W[ad]が生成される（Ｓ３）。生成されたコマンドR/W[ad]はアドレスデコード部１２に送信され、ＤＤＲのＲｏｗアドレスがデコードされる（Ｓ４）。
【００２６】
そして、アドレスデコード部１２では、このアクセスが各Ｒｏｗアドレスに対して１回目の書き込みアクセスであったときは（Ｓ５の「Yes」）、デコードされたＲｏｗアドレスが書き込みアドレスフラグ記憶部１３に送信される。また、２回目以降の書き込みアクセスであったときは、デコードされたＲｏｗアドレスがＲ／Ｗアドレスフラグ記憶部１５に送信される。
【００２７】
書き込みアドレスフラグ記憶部１３では、１回目の書き込みアクセスのＲｏｗアドレスが受信されたときは、このＲｏｗアドレスに対応するフラグ格納部１３ａのフラグFac1[ad]が立てられて記憶される（Ｓ６）。また、Ｒ／Ｗアドレスフラグ記憶部１５では、２回目以降の書き込みアクセスのＲｏｗアドレスが受信されたときは、このＲｏｗアドレスに対応するフラグFac2[ad]が立てられて記憶される（Ｓ７）。
【００２８】
このＲ／Ｗアドレスフラグ記憶部１５の動作について説明する。Ｒ／Ｗアドレスフラグ記憶部１５では、１／２リフレッシュ期間計測カウンタ１４により、１／２リフレッシュ期間Tref/2がカウントされる。
【００２９】
また、Ｒ／Ｗアドレスフラグ記憶部１５は、第１フラグ格納部１５ａおよび第２フラグ格納部１５ｂから構成され、１／２リフレッシュ期間Tref/2ごとにこの第１フラグ格納部１５ａと第２フラグ格納部１５ｂとがフラグ読み出し側とフラグ書き込み側とに切り替えられる。そして、Ｒ／Ｗアドレスフラグ記憶部１５で２回目以降の書き込みアクセスが行われたＲｏｗアドレスが受信されたときは（Ｓ５の「No」）、フラグ書き込み側になっている第１フラグ格納部１５ａまたは第２フラグ格納部１５ｂのフラグFac2[ad]が立てられ記憶される（Ｓ７）。
【００３０】
ここで、第１フラグ格納部１５ａまたは第２フラグ格納部１５ｂがフラグ読み出し側からフラグ書き込み側に切り替えられるときは、それまで読み出し側であった第１フラグ格納部１５ａまたは第２フラグ格納部１５ｂに格納されていたフラグデータは一旦初期化される。
【００３１】
以上の処理が１／２リフレッシュ期間繰り返される（Ｓ８の「No」）。そして、１／２リフレッシュ期間経過ごとに（Ｓ８の「Yes」）、フラグ読み出し部１６において書き込みアドレスフラグ記憶部１３のフラグ格納部１３ａに格納されているフラグFac1と、Ｒ／Ｗアドレスフラグ記憶部１５のフラグ読み出し側になっている第１フラグ格納部１５ａまたは第２フラグ格納部１５ｂに格納されているフラグFac2とがアドレス順に読み出される（Ｓ９）。そして、読み出されたフラグFac1およびフラグFac2のデータからリフレッシュが必要なアドレスが抽出される。
【００３２】
フラグ読み出し部１６においてリフレッシュが必要なアドレスが抽出される動作について説明する。
【００３３】
まず、書き込みアドレスフラグ記憶部１３に格納されているフラグFac1が順にFac1[0]から読み出され（Ｓ１０）、Ｒｏｗアドレスごとに書き込みアクセスがあったかどうかが判断される。ここでフラグFac1[0]が立っていれば（Ｓ１１の「Yes」）、１回目のアクセスがあったと判断される。
【００３４】
読み出されたフラグFac1[0]のデータから１回目の書き込みアクセス履歴がないと判断されたアドレスは（Ｓ１１の「No」）リフレッシュ処理不要と判断される（Ｓ１２）。そして、フラグFac1[W-1]になるまで（Ｓ１３の「No」）順次アドレスのフラグFac1[ad]のデータが読み出され、リフレッシュ処理が必要がどうか判断される（Ｓ１４）。
【００３５】
また、読み出されたフラグFac1[0]が立っている場合（Ｓ１１の「Yes」）、つまり書き込みアクセス履歴があったと判断された場合は、Ｒ／Ｗアドレスフラグ記憶部１５のフラグ読み出し側になっている第１フラグ格納部１５ａまたは第２フラグ格納部１５ｂのフラグFac1[0]に対応するアドレスに格納されているフラグFac2[0]のデータが読み出される。読み出されたフラグFac2[0]が立っている場合は（Ｓ１５の「No」）、１／２リフレッシュ期間Tref/2内に通常のメモリアクセス処理が行われておりリフレッシュ処理は不要と判断される（Ｓ１２）。そして、順次アドレスのフラグFac1[ad]のデータが読み出され、リフレッシュ処理が必要がどうか判断される（Ｓ１３、Ｓ１４）。
【００３６】
また、フラグFac1[0]が立っていてこれに対応するFac2[0]が立っていない場合は（Ｓ１５の「Yes」）リフレッシュ処理が必要なアドレスと判断され（Ｓ１６）、リフレッシュ処理用コマンドが生成される（Ｓ１７）。
【００３７】
このとき、リフレッシュ処理を一括して行う通常のリフレッシュコマンドによるリフレッシュ処理ではなく、アクティベイトとアクセス処理とプリチャージとから構成されるメモリアクセス処理と同様の処理が利用されて行われる。このうち、実際には前処理であるアクティベイトと後処理であるプリチャージが行われればリフレッシュ処理は有効であり、さらにこのアクティベイトのコマンドとプリチャージのコマンドとの間には別バンクのコマンドを埋め込むことが可能である。
【００３８】
コマンド埋め込み部１７ではこの別バンクのコマンドを埋め込む処理を利用して、アクセスコマンド生成部１１から送信される通常のメモリアクセス処理とこのリフレッシュ処理とが多重化される（Ｓ１８）。
【００３９】
このリフレッシュ用コマンドの埋め込み処理について図３を参照して説明する。ここでは、通常の読み出しアクセス処理であるアクティベイトコマンドとリードコマンドとプリチャージコマンドとからなるコマンドシーケンスにリフレッシュ処理のアクティベイトコマンドとプリチャージコマンドとが埋め込まれ、多重化が行われる場合について説明する。
【００４０】
前述したように、リフレッシュ処理(a)としてリフレッシュアドレスへのアクティベイトおよびプリチャージが行われる。通常の読み出し処理(b)は、リードアクセスがあったアドレスへのアクティベイトと、このアクティベイトが有効なアドレス区間の読み出しと、プリチャージとが行われる。このリフレッシュ処理(a)と通常の読み出し処理(b)とはバンクが異なれば多重化処理(c)が可能であり、図３に示すように通常の読み出し処理(b)のコマンドシーケンスにリフレッシュ処理(a)のコマンドが埋め込まれる。
【００４１】
この多重化処理により、アクセスアドレスの分布が一定であれば、４バンクのＤＤＲの場合、７５％のリフレッシュ動作がオーバーヘッドなしで処理が可能である。
【００４２】
このようにしてリフレッシュ処理が行われると、このＲｏｗアドレスに対するフラグFac2[0]が立てられ、次の１／２リフレッシュ期間Tref/2ではこのＲｏｗアドレスはリフレッシュ処理が不要と判断される。以上のメモリ制御処理はＤＤＲが初期化されるまで繰り返される（Ｓ１８の「No」）。
【００４３】
以上の第一実施形態によれば、一定期間内にアクセスされリフレッシュが不要なアドレスが除外されてリフレッシュ処理が行われ、さらにＤＤＲの記憶保持のための処理としてリフレッシュコマンドによるリフレッシュ処理ではなく通常のメモリアクセスと同様の処理を用いるため、リフレッシュ処理以外の通常のメモリアクセス処理と重なった場合にもこれらの処理を多重化して処理時間を短縮することができ、バンド幅の低下を有効に回避させることが可能である。
【００４４】
また、フラグ読み出し処理を１／２リフレッシュ期間Tref/2ごとに行うため、未リフレッシュ処理による記憶保持データの破綻を回避することができる。
【００４５】
本実施形態においては、アクセス処理またはリフレッシュ処理が行われたメモリのアドレスを検出する手段としてフラグを用いているがこれには限定されず、これらの処理が行われたアドレスが検出できる方法、例えばそのアドレスをそのまま記憶する方法などでもよい。
【００４６】
〈第二実施形態〉
本発明の第二実施形態におけるメモリ制御装置２０の構成を図４を参照して説明する。
【００４７】
本実施形態におけるメモリ制御装置２０はメモリであるＤＤＲを制御し、アクセスコマンド生成部１１と、アドレスデコード部１２と、期間計測カウンタ２１と、リフレッシュ回数カウント部１８と、リフレッシュアドレス選択部１９と、コマンド埋め込み部１７とを有する。これらのうち、アクセスコマンド生成部１１、アドレスデコード部１２、およびコマンド埋め込み部１７の機能については第一実施形態と同様であるため説明を省略する。
【００４８】
期間計測カウンタ２１は、ＤＤＲのリフレッシュ期間をTrefとし、ＤＤＲのＲｏｗアドレス数をW個としたとき、Tref/Wを処理期間として計測する。
【００４９】
リフレッシュ回数カウント部１８は、バンク数に相当する数のリフレッシュ回数カウンタを有する。このリフレッシュ回数カウンタは、バンク内のアドレスにおけるリフレッシュ処理回数をカウントし、ＤＤＲのバンク数をB個としたとき０〜W/B-1までカウントした後、また０に戻るリングカウンタである。本実施形態においてはバンク数BはBank0〜Bank4の４個であり、リフレッシュ回数カウント部１８はこのバンクBank0〜Bank4にそれぞれ対応しているBank0リフレッシュ回数カウンタ１８ａ、Bank1リフレッシュ回数カウンタ１８ｂ、Bank2リフレッシュ回数カウンタ１８ｃ、および、Bank3リフレッシュ回数カウンタ１８ｄの４個のリフレッシュ回数カウンタを有する。
【００５０】
リフレッシュアドレス選択部１９は、バンクBank0〜Bank4のうち、現在処理中のメモリアクセス処理バンクと異なり、且つ対応するリフレッシュ回数カウンタ値が最小のバンクを選択する。そして、この選択されたバンク内の次のリフレッシュ対象アドレスをこの装置の次のリフレッシュ対象アドレスとして選定し、この選定したアドレスのリフレッシュ用コマンドを発行する。
【００５１】
次に、本実施形態におけるメモリ制御装置２０の動作を図５のフローチャートを参照して説明する。
【００５２】
まず、初期化されたＤＤＲにおいて（Ｓ２１）、通常のＤＤＲへの読み出し／書き込みのアクセスがあったときは（Ｓ２２の「Yes」）、アクセスコマンド生成部１１でこの読み出し／書き込みアクセスに関するコマンドR/W[ad]が生成される（Ｓ２３）。生成されたコマンドR/W[ad]はアドレスデコード部１２に送信されてＤＤＲのＲｏｗアドレスがデコードされる。（Ｓ２４）。
【００５３】
次に、リフレッシュアドレス選択部１９において、このデコードされたＲｏｗアドレスおよび各リフレッシュ回数カウンタ１８ａ〜１８ｄの値を基に次に処理されるリフレッシュ対象アドレスが選択される（Ｓ２５）。
【００５４】
このリフレッシュ対象アドレスの選択処理について説明する。
【００５５】
リフレッシュアドレス選択部１９では、アドレスデコード部１２から通常のメモリアクセス処理に用いられているＲｏｗアドレスが受信されてこのＲｏｗアドレスが該当するバンクが求められる。
【００５６】
さらにリフレッシュアドレス選択部１９では、この求められたバンクと異なり、且つ期間計測カウンタ２１でカウントされる処理期間Tref/Wごとに更新されるリフレッシュ回数カウンタ１８ａ〜１８ｄの値が最小のリフレッシュ回数カウンタに対応するバンクが求められる。
【００５７】
そして、この選択されたバンクにおける次のリフレッシュ対象アドレスがこの装置の次のリフレッシュ対象アドレスとして選定され、リフレッシュアドレス選択部１９でリフレッシュ用のコマンドが発行される。
【００５８】
発行されたリフレッシュ用コマンドはコマンド埋め込み部１７に送信され、通常のメモリアクセス処理コマンドシーケンスの中に埋め込まれる（Ｓ２６）とともに、該当するバンクのリフレッシュ回数カウンタに送信され、該当するリフレッシュ回数カウンタが更新される（Ｓ２７）。
【００５９】
コマンド埋め込み部１７の動作について図６を参照して説明する。コマンド埋め込み部１７において、(a)と(b)とが同一バンクであり多重化することができないときは(c)に示すように処理が行われ、通常のメモリアクセス処理(b)のプリチャージ後、さらにアクティビティ禁止期間Trpが経過してからリフレッシュアドレスへのアクティベイトが行われる。そしてこのリフレッシュアドレスへのアクティベイトの後はさらにプリチャージ禁止期間Trasが経過してからリフレッシュアドレスへのプリチャージが行われる。
【００６０】
しかし、本実施形態においては(a)と(b)とが異なるバンクであるため、第一実施形態と同様の方法で(d)に示されるようにリフレッシュ用処理(a)コマンドが通常のメモリアクセス処理(b)コマンドに埋め込まれ、多重化される。この多重化された(c)の処理時間は、多重化されない(d)の処理時間に比べ、有効に短縮される。
【００６１】
上記のメモリ制御処理はＤＤＲが初期化されるまで繰り返される（Ｓ２８の「No」）。
【００６２】
以上の第二実施形態によれば、現在処理中のバンクと異なるバンクを選択してコマンドの埋め込み処理を行うため、さらに高い精度で処理を多重化して処理時間を短縮することができ、バンド幅の低下を有効に回避させることが可能である。
【００６３】
また、第一実施形態および第二実施形態においては、メモリとしてＤＤＲ  ＳＤＲＡＭを使用した例を示したがこれには限定されず、リフレッシュ処理を必要とするＤＲＡＭであれば適用可能である。
【００６４】
ここで、上記した第一実施形態と第二実施形態との効果の違いについて説明する。即ち、第一実施形態の効果は、有効になる確率はアクセスアドレスの順番に依存しており、アクセスアドレスの分布が一定の場合、約７５％の確率で有効になることを見込むことができる程度の効果である。これに対して、第二実施形態の効果は、アクセスアドレスに依らず、ほぼ１００％の確率で有効になるという効果がある。
【図面の簡単な説明】
【００６５】
【図１】本発明のメモリ制御装置の第一実施形態を示すブロック図である。
【図２】本発明のメモリ制御装置の第一実施形態の動作を示すフローチャートである。
【図３】本発明のメモリ制御装置の第一実施形態におけるコマンド埋め込み処理を示す説明図である。
【図４】本発明のメモリ制御装置の第二実施形態を示すブロック図である。
【図５】本発明のメモリ制御装置の第二実施形態の動作を示すフローチャートである。
【図６】本発明のメモリ制御装置の第二実施形態におけるコマンド埋め込み処理を示す説明図である。
【符号の説明】
【００６６】
１０…メモリ制御装置
２０…メモリ制御装置
１１…アクセスコマンド生成部
１２…アドレスデコード部
１３…アドレスフラグ記憶部
１３ａ…フラグ格納部
１４…１／２リフレッシュ期間計測カウンタ
１５…アドレスフラグ記憶部
１５ａ…第１フラグ格納部
１５ｂ…第２フラグ格納部
１６…フラグ読み出し部
１７…コマンド埋め込み部
１８…リフレッシュ回数カウント部
１８ａ…Bank1リフレッシュ回数カウンタ
１８ｂ…Bank2リフレッシュ回数カウンタ
１８ｃ…Bank3リフレッシュ回数カウンタ
１８ｄ…Bank4リフレッシュ回数カウンタ
１９…リフレッシュアドレス選択部
２１…期間計測カウンタ
【図１】
2006269029.tif 000003
【図２】
2006269029.tif 000004
【図３】
2006269029.tif 000005
【図４】
2006269029.tif 000006
【図５】
2006269029.tif 000007
【図６】
2006269029.tif 000008