(57)【要約】      （修正有）【課題】ＭＷＲコマンドによる時間ペナルティを低減するメモリコントローラを提供する。【解決手段】メモリのバーストアクセスの全データをライトする第一のライトコマンドと、メモリのバーストアクセスのバイト毎にメモリへライトするかを制御する第二のライトコマンドを発行するメモリコントローラ１００において、メモリへアクセスする複数のコマンドを保持する保持手段１１１と、保持手段に第二のライトコマンドが保持され、さらに、第一のライトコマンドの後に第二のライトコマンドを発行するためにコマンド間に必要な時間ペナルティよりも長い時間ペナルティが発生するコマンドが保持されている場合、コマンドより先に第二のライトコマンドを選択する選択手段１１２と、を有する。【選択図】図１
2018205859.tif 000002
【特許請求の範囲】
【請求項１】
メモリのバーストアクセスの全データをライトする第一のライトコマンドと、メモリのバーストアクセスのバイト毎にメモリへライトするかを制御する第二のライトコマンドを発行するメモリコントローラであって、
前記メモリへアクセスする複数のコマンドを保持する保持手段と、
前記保持手段に前記第二のライトコマンドが保持され、さらに、前記第一のライトコマンドの後に前記第二のライトコマンドを発行するためにコマンド間に必要な時間ペナルティよりも長い時間ペナルティが発生するコマンドが保持されている場合、該コマンドより先に前記第二のライトコマンドを選択する選択手段と、
を有することを特徴とするメモリコントローラ。
【請求項２】
前記第一のライトコマンドの後に前記第二のライトコマンドを発行するためにコマンド間に必要な時間ペナルティよりも長い時間ペナルティは、ページミスの時間ペナルティであることを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記第一のライトコマンドの後に前記第二のライトコマンドを発行するためにコマンド間に必要な時間ペナルティよりも長い時間ペナルティは、リードからライトの切り替わりで発生する時間ペナルティであることを特徴とする請求項１に記載のメモリコントローラ。
【請求項４】
前記選択手段は、前記保持手段に保持されているコマンドのうち、ページミスが起こらないコマンドを、前記第二のライトコマンドより先に選択することを特徴とする請求項２に記載のメモリコントローラ。
【請求項５】
メモリアクセスの履歴を保持する履歴保持手段を更に備え、
前記選択手段は、前記履歴保持手段の最新の履歴がリードの場合、前記保持手段に保持されているコマンドのうち、リードコマンドを前記第二のライトコマンドより先に選択することを特徴とする請求項３記載のメモリコントローラ。
【請求項６】
メモリのバーストアクセスの全データをライトする第一のライトコマンドと、メモリのバーストアクセスのバイト毎にメモリへライトするかを制御する第二のライトコマンドを発行するメモリコントローラの制御方法であって、
前記メモリへアクセスする複数のコマンドを保持手段に保持する工程と、
前記保持手段に前記第二のライトコマンドが保持され、さらに、前記第一のライトコマンドの後に前記第二のライトコマンドを発行するためにコマンド間に必要な時間ペナルティよりも長い時間ペナルティが発生するコマンドが保持されている場合、該コマンドより先に前記第二のライトコマンドを選択する選択工程と、
を有することを特徴とするメモリコントローラの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラに関し、特に、メモリへのバーストライト内に無効バイトが含まれない場合と、無効バイトが含まれる場合とで異なるライトコマンドを発行するメモリコントローラに関する。
【背景技術】
【０００２】
近年に策定された規格であるＬＰＤＤＲ４では、Ｍａｓｋｅｄ  Ｗｒｉｔｅ（ＭＷＲ）コマンドが導入され、メモリ（以降、「ＤＲＡＭ」とも記載する。）がこのコマンドを受信するとメモリ内部でリードモディファイライトを実行する。メモリは一度データを読み出し、データマスク信号に基づいて読み出したデータを変更し、全データを書き戻す。これにより、従来はバイト毎に制御していたデータマスク制御がバーストライト単位でのデータマスク制御となり実装が単純化されるため、小型化と低電力化を実現することが可能となる。データマスク制御とは、データマスク信号が対応するデータが無効であることを示す場合に、メモリに格納されているデータを上書きしないための制御である。ＬＰＤＤＲ４のメモリが、従来のＤＲＡＭと同じＷｒｉｔｅ（ＷＲ）コマンドを受信すると、メモリは全データを有効なものとして書き込みを実行するため、内部でリードモディファイライトは実行されない。（非特許文献１参照）
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＪＥＤＥＣ  ＳＴＡＮＤＡＲＤ  Ｎｏ．２０９−４Ａ仕様規格書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＭＷＲコマンドを受信したメモリが内部でリードモディファイライトを実行するため、メモリコントローラは、先行するＷＲ／ＭＷＲコマンドを発行後に同じバンクにＭＷＲコマンドを発行する場合は規定間隔（以下、「ｔＣＣＤＭＷ」とも記載する。）を空けなければいけない。ＷＲ／ＭＷＲコマンドとＭＷＲコマンドとの間の規定間隔（ｔＣＣＤＭＷ）は、メモリへのバーストライトのバースト長が１６の場合は３２ＤＲＡＭクロックサイクル、バースト長が３２の場合は６４ＤＲＡＭクロックサイクルである。
【０００５】
一方、ＷＲ／ＭＷＲコマンドを発行後にＷＲコマンドを発行する場合の規定間隔（以下、「ｔＣＣＤ」とも記載する。）は、それより短い。ＷＲ／ＭＷＲコマンドとＷＲコマンドとの間の規定間隔（ｔＣＣＤ）は、メモリへのバーストライトのバースト長が１６の場合は８ＤＲＡＭクロックサイクル、バースト長が３２の場合は１６ＤＲＡＭクロックサイクルである。そのため、先行するＷＲ／ＭＷＲコマンドを発行後に同じバンクにＭＷＲコマンドを発行すると、従来（後のコマンドがＷＲコマンド）の４倍の時間ペナルティがかかり、性能低下が発生する。
【０００６】
本発明は、上記の課題に鑑みてなされたものである。すなわち、ＭＷＲコマンドによる時間ペナルティを低減するメモリコントローラを提供することを目的とする。また、その制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るメモリコントローラは以下の構成を備える。即ち、メモリのバーストアクセスの全データをライトする第一のライトコマンドと、メモリのバーストアクセスのバイト毎にメモリへライトするかを制御する第二のライトコマンドを発行するメモリコントローラであって、前記メモリへアクセスする複数のコマンドを保持する保持手段と、前記保持手段に前記第二のライトコマンドが保持され、さらに、前記第一のライトコマンドの後に前記第二のライトコマンドを発行するためにコマンド間に必要な時間ペナルティよりも長い時間ペナルティが発生するコマンドが保持されている場合、該コマンドより先に前記第二のライトコマンドを選択する選択手段。
【発明の効果】
【０００８】
本発明によれば、ＭＷＲコマンドによるペナルティとは異なるペナルティが発生する際にＭＷＲコマンドを発行することで、ＭＷＲコマンドによるペナルティを低減することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】第一の実施例におけるメモリコントローラの構成図
【図２】第一の実施例におけるメモリアクセス選択部の構成図
【図３】第一の実施例におけるメモリアクセス選択アルゴリズムのフロー図
【図４】第一の実施例におけるメモリコントローラの挙動を示す波形図
【図５】第二の実施例におけるメモリコントローラの構成図
【図６】第二の実施例におけるメモリアクセス選択部の構成図
【図７】第二の実施例におけるメモリアクセス選択アルゴリズムのフロー図
【図８】第二の実施例におけるメモリコントローラの挙動を示す波形図
【図９】従来のメモリコントローラの挙動を示す波形図
【図１０】従来のメモリコントローラの挙動を示す波形図
【発明を実施するための形態】
【００１０】
［実施例１］
図１は本実施形態におけるメモリコントローラ１００の構成図である。メモリコントローラ１００は、メモリデバイス８００とバスマスタ９００に接続される。バスマスタ９００はアドレス情報と、ライトデータやバイトイネーブルを含むメモリアクセスをメモリコントローラ１００に送信する。メモリコントローラ１００は、バスマスタ９００から受信したメモリアクセスを基にＤＲＡＭコマンドを生成し、メモリデバイス８００に送信する。メモリデバイス８００は、複数バンクから構成され、各バンクは複数ページから構成される。また、各バンクのページを変更してアクセスする際にはペナルティが発生する（以降、ページミスと呼ぶ）。また、メモリのバーストアクセスの全データをライトする場合はＷＲというライトコマンドを使用してアクセスされる。メモリのバーストアクセスのバイト毎にメモリへライトするかを制御する場合はＭＷＲというＷＲとは異なるライトコマンドを使用してアクセスされる。このようなライトコマンドを受け付けるメモリデバイス８００の例として、ＬＰＤＤＲ４のＤＲＡＭがある。
【００１１】
メモリアクセスバッファ１１１は、バスマスタ９００から受信したメモリアクセスを複数保持できるバッファである。
【００１２】
メモリアクセス選択部１１２は、メモリアクセスバッファ１１１に保持されたメモリアクセスから１つを選択する。
【００１３】
メモリコマンド生成部１１３は、メモリアクセスバッファ１１１から選択されたメモリアクセスを、メモリデバイス８００の仕様に準拠したフォーマットに変換し、メモリデバイス８００に発行する。
【００１４】
図２は第一の実施例におけるメモリアクセス選択部１１２の構成図である。メモリアクセス選択部１１２は、バンクステータステーブル１２１、メモリアクセス選択アルゴリズム１２２から構成される。
【００１５】
バンクステータステーブル１２１は、メモリデバイス８００の各バンクのどのページがアクティベートされているかを保持する。本実施例では、メモリアクセスバッファ１１１からメモリアクセスを選択した際に、バンクステータステーブル１２１を更新するものとする。図４、図９に示すバンクステータステーブルもこのタイミングで更新されている。
【００１６】
メモリアクセス選択アルゴリズム１２２は、メモリアクセスバッファ１１１に保持されているメモリアクセスと、バンクステータステーブル１２１の情報から、次にメモリコマンド生成部１１３に送るメモリアクセスを選択する。
【００１７】
図３はメモリアクセス選択アルゴリズム１２２のフローチャートである。まず、無効バイトを含むライトのメモリアクセス以外で、ページミスではないメモリアクセス（すなわち、ページミスが起こらないメモリアクセス）があるかを確認する（Ｓ０１）。ページミスではないメモリアクセスがある場合、その中で最初に受信したアクセスを選択する（Ｓ０２）。ここでページミスではないメモリアクセスを優先することにより、システム全体の性能を上げる。ページミスではないメモリアクセスがない場合、無効バイトを含むライトのメモリアクセスがあるかを確認する（Ｓ０３）。
【００１８】
無効バイトを含むライトのメモリアクセスがある場合、その中で最初に受信したメモリアクセスを選択する（Ｓ０４）。ＭＷＲコマンドを除くメモリアクセスがすべてページミスである場合に、ＭＷＲコマンドを選択する。ここでＭＷＲを選択することで、ページミスのペナルティとＭＷＲによるペナルティをオーバーラップさせることができ、システム全体のペナルティが減る。
【００１９】
無効バイトを含むライトのメモリアクセスがない場合、最初に受信したメモリアクセスを選択する（Ｓ０５）。
【００２０】
図４を使用して、第一実施例におけるメモリコントローラ１００の動作を説明する。図４では、メモリデバイス８００のバンク数を２つ、メモリアクセスバッファ１１１に保持されるメモリアクセス数が３つであるものとして説明をする。また、図中の「Ｂ０」、「Ｂ１」はバンク０、バンク１の状態を示す。「Ｐ０」、「Ｐ１」はどのページがアクティベートされているかを示す。「Ｅ０」〜「Ｅ２」はメモリアクセスバッファ１１１に保持されているメモリアクセスを示す。「Ｅ０」は、バンク０のページ０に対するＷＲコマンドである。「Ｅ１」は、バンク０のページ１に対するＷＲコマンドである。「Ｅ２」は、バンク０ページ１に対するＭＷＲコマンドである。「ｔＲＰ」、「ｔＲＣＤ」、「ｔＣＣＤ」、「ｔＣＣＤＭＷ」はメモリデバイス８００で規定されたタイミングパラメータを示す。（詳細は非特許文献１参照。）
Ｔ２において、メモリアクセスバッファ１１１内の「Ｅ０」のみがページミスではないため、選択結果は「Ｅ０」のメモリアクセスとなる（Ｓ０２）。その結果、メモリコマンド生成部１１３は、Ｔ３からＴ６にＷＲコマンドを発行する。
【００２１】
Ｔ６において、メモリアクセスバッファ１１１内の「Ｅ１」〜「Ｅ２」のすべてがページミスであるため、選択結果は「Ｅ２」のメモリアクセスとなる（Ｓ０４）。「Ｅ２」が選択されたことにより、Ｔ７において、バンクステータステーブル１２１のバンク０の状態が「Ｐ０」から「Ｐ１」に更新される。「Ｅ２」は、バンク０のページミスとなるため、バンク０に対して、ＰＲＥ、ＡＣＴのコマンド発行が必要となる。その結果、メモリコマンド生成部１１３は、Ｔ７からＴ８にＰＲＥコマンドを発行する。また、ｔＲＰ経過後、Ｔ３９からＴ４２にＡＣＴコマンドを発行し、ｔＲＣＤ経過後、Ｔ７２からＴ７５にＭＷＲコマンドを発行する。このとき、すでに、ＷＲコマンドとＭＷＲコマンドとのコマンド間の規定間隔であるｔＣＣＤＭＷは経過している。
【００２２】
Ｔ７９において、メモリアクセスバッファ１１１内には「Ｅ１」のみであり、ページミスではないため、選択結果は「Ｅ１」のメモリアクセスとなる（Ｓ０２）。その結果、メモリコマンド生成部１１３は、Ｔ８０からＴ８３にＷＲコマンドを発行する。
【００２３】
図９に、メモリアクセスバッファ１１１に保持されたメモリアクセスを「Ｅ０」、「Ｅ１」、「Ｅ２」の順に実行した場合の動作を示す。この場合、ＭＷＲによる時間ペナルティの影響により、図４の例より時間がかかっている。
【００２４】
以上、説明したように、ページミスが起こるメモリアクセス要求がメモリアクセスバッファ１１１に保持されている状態において、無効バイトを含むライトを示すＭＷＲコマンドを優先的に選択する。ページミスが起こるメモリアクセスの時間ペナルティによって、無効バイトを含むライトによる時間ペナルティを低減することができる。
【００２５】
［実施例２］
図５は本実施例におけるメモリコントローラ２００の構成図である。実施例１のメモリコントローラ１００とメモリアクセス選択部２１２の構成のみが異なる。その他の構成は実施例１と同じなので省略する。
【００２６】
図６は第二の実施例におけるメモリアクセス選択部２１２の構成図である。メモリアクセス選択部２１２は、メモリアクセス履歴保持部２２１、メモリアクセス選択アルゴリズム２２２から構成される。
【００２７】
メモリアクセス履歴２２１は、メモリアクセスバッファ１１１から最後に実行された最新のメモリアクセスがライトであるか、リードであるかを記録する。本実施例では、メモリアクセスバッファ１１１からメモリアクセスを選択した際に、メモリアクセス履歴２２１を更新するものとする。
【００２８】
メモリアクセス選択アルゴリズム２２２は、メモリアクセスバッファ１１１に保持されているメモリアクセスと、メモリアクセス履歴２２１の情報から、実行するメモリアクセスを選択する。
【００２９】
図７はメモリアクセス選択アルゴリズム２２２のフローチャートである。まず、メモリアクセス履歴２２１に記録されているのがリードであるかを確認する（Ｓ０１）。リードである場合、メモリアクセスバッファ１１１にリードがあるかを確認する（Ｓ０２）。リードがある場合、その中で最初に受信したリードコマンドを選択する（Ｓ０３）。リードの後にリードを実行することで、リードからライトへの切り替わりのペナルティを減らすことができる。メモリアクセスバッファ１１１にリードがない場合、メモリアクセスバッファ１１１に無効バイトを含むライトがあるかを確認する（Ｓ０４）。無効バイトを含むライトがある場合、その中で最初に受信したメモリアクセスを選択する（Ｓ０５）。ここでＭＷＲを選択することで、リードからライトへの切り替わりのペナルティとＭＷＲによるペナルティをオーバーラップさせることができ、システム全体のペナルティが減る。無効バイトを含むライトがない場合、ライトの中で最初に受信したメモリアクセスを選択する（Ｓ０６）。
【００３０】
図８を使用して、第二実施例におけるメモリコントローラ２００の動作を説明する。図８では、メモリアクセスバッファ１１１に保持されるメモリアクセス数が３つであるものとして説明をする。また、図中の「Ｒ２Ｗ」はリードからライトの切り替わりにかかるタイミングパラメータを示す。「ｔＣＣＤ」、「ｔＣＣＤＭＷ」はメモリで規定されたタイミングパラメータを示す。（詳細は非特許文献１参照。）
Ｔ２において、メモリアクセス履歴２２１はリードであり、メモリアクセスバッファ１１１内の「Ｅ２」のみがリードであるため、選択結果は「Ｅ２」のメモリアクセスとなる（Ｓ０２）。その結果、メモリコマンド生成部１１３は、Ｔ３からＴ６にＲＤコマンドを発行する。
【００３１】
Ｔ４３において、メモリアクセス履歴２２１はリードであり、メモリアクセスバッファ１１１内の「Ｅ１」が無効バイトを含むライトであるため、選択結果は「Ｅ１」のメモリアクセスとなる（Ｓ０４）。その結果、メモリコマンド生成部１１３は、Ｔ４４からＴ４７にＭＷＲコマンドを発行する。このとき、メモリアクセス履歴２２１はライトに更新される。
【００３２】
Ｔ５１において、メモリアクセス履歴２２１はライトであるため、選択結果は「Ｅ０」のメモリアクセスとなる（Ｓ０１）。その結果、メモリコマンド生成部１１３は、Ｔ５２からＴ５５にＭＷＲコマンドを発行する。
【００３３】
図１０に、メモリアアクセスバッファ１１１に保持されたメモリアクセスを「Ｅ２」、「Ｅ０」、「Ｅ１」の順に実行した場合の動作を示す。この場合、ＭＷＲによる時間ペナルティの影響により、図８の例よりも時間がかかっている。
【００３４】
上述した実施例１及び実施例２では、図３や図７に示すアルゴリズムで説明したが、図３や図７に示すアルゴリズムに限定されるものではない。ＭＷＲコマンドによるペナルティとは異なるペナルティが発生する際にＭＷＲコマンドを発行することに関する他の形態を排除するものではない。
【００３５】
例えば、ＤＲＡＭにはリフレッシュによりリードやライトができない期間がある。その期間を経過してから、無効バイトを含むライトを実行することもできる。
【００３６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００３７】
１００  メモリコントローラ
１１１  メモリアクセスバッファ
１１２  メモリアクセス選択部
１１３メモリコマンド生成部
１２１  バンクステータステーブル
１２２  メモリアクセス選択アルゴリズム
２００  メモリコントローラ
２１２  メモリアクセス選択部
２２１  メモリアクセス履歴
２２２  メモリアクセス選択アルゴリズム
８００  メモリデバイス
９００  バスマスタ
【図１】
2018205859.tif 000003
【図２】
2018205859.tif 000004
【図３】
2018205859.tif 000005
【図４】
2018205859.tif 000006
【図５】
2018205859.tif 000007
【図６】
2018205859.tif 000008
【図７】
2018205859.tif 000009
【図８】
2018205859.tif 000010
【図９】
2018205859.tif 000011
【図１０】
2018205859.tif 000012