(57)【要約】【課題】  低コストで、動作周波数がメモリーデバイスの動作周波数をｎ分の１（ｎ＞１）であっても効率よくコマンドを発行しメモリーデバイスを高速に制御するメモリーコントローラーを得る。【解決手段】  論理層１内のデバイス管理部１６およびコマンド発行部１７は、動作周波数設定データの値であるｎに基づくメモリーデバイスの動作周波数のｎ分の１の周波数で動作する。そして、デバイス管理部１６は、コマンド発行部１７によるコマンドの発行タイミングを制限するタイミングパラメーターの値を、デバイス管理部１６およびコマンド発行部１７がメモリーデバイス３の動作周波数で動作する際のタイミングパラメーターの設定値をそのｎで除算した値にセットし、コマンド発行部１７は、デバイス管理部１６により値をセットされたタイミングパラメーターに違反しないようにコマンドを発行する。【選択図】  図１
2014026349.tif 000002
【特許請求の範囲】
【請求項１】
メモリーデバイスの状態を管理するデバイス管理部と、
前記メモリーデバイスに対してコマンドを発行させるコマンド発行部とを備え、
前記デバイス管理部および前記コマンド発行部は、動作周波数設定データの値であるｎに基づく前記メモリーデバイスの動作周波数のｎ分の１（ｎ＞１）の周波数で動作し、
前記デバイス管理部は、前記コマンド発行部によるコマンドの発行タイミングを制限するタイミングパラメーターの値を、前記デバイス管理部および前記コマンド発行部が前記メモリーデバイスの動作周波数で動作する際の前記タイミングパラメーターの設定値を前記ｎで除算した値にセットし、
前記コマンド発行部は、前記デバイス管理部により値をセットされた前記タイミングパラメーターに違反しないように前記コマンドを発行すること、
を特徴とするメモリーコントローラー。
【請求項２】
前記動作周波数設定データの値は切り替え可能であることを特徴とする請求項１記載のメモリーコントローラー。
【請求項３】
前記デバイス管理部は、前記除算において端数が発生する場合、前記タイミングパラメーターの種別に応じて、前記端数を切り上げるか、切り捨てることを特徴とする請求項１記載のメモリーコントローラー。
【請求項４】
前記デバイス管理部は、前記タイミングパラメーターが上限値を指定するものである場合、前記端数を切り捨てることを特徴とする請求項３記載のメモリーコントローラー。
【請求項５】
前記デバイス管理部は、前記タイミングパラメーターが下限値を指定するものである場合、前記端数を切り上げることを特徴とする請求項３記載のメモリーコントローラー。
【請求項６】
前記デバイス管理部は、前記コマンドの発行タイミングに関するある期間の開始までの時間の上限値を示す第１タイミングパラメーターと、その期間の長さの下限値を示す第２タイミングパラメーターについて、前記第１タイミングパラメーターについて前記端数を切り捨てるとき、前記第２タイミングパラメーターについて、前記第２タイミングパラメーターの前記設定値に前記第１のタイミングパラメーターについての除算余りを加算した値を前記ｎで除算し、
前記コマンド発行部は、前記デバイス管理部により値をセットされた前記第１タイミングパラメーターおよび前記第２タイミングパラメーターに違反しないように前記コマンドを発行すること、
を特徴とする請求項１または請求項３記載のメモリーコントローラー。
【請求項７】
前記デバイス管理部は、前記コマンドの発行タイミングに関するある期間の開始までの時間の下限値を示す第１タイミングパラメーターと、その期間の長さの上限値を示す第２タイミングパラメーターについて、前記第１タイミングパラメーターについて前記端数を切り上げるとき、前記第２タイミングパラメーターについて、前記第２タイミングパラメーターの前記設定値から前記第１のタイミングパラメーターについての除算余りを減算した値を前記ｎで除算し、
前記コマンド発行部は、前記デバイス管理部により値をセットされた前記第１タイミングパラメーターおよび前記第２タイミングパラメーターに違反しないように前記コマンドを発行すること、
を特徴とする請求項１または請求項３記載のメモリーコントローラー。
【請求項８】
前記デバイス管理部は、複数のタイミングパラメーターを含む演算式の値で前記コマンドの発行タイミングが制限される場合、前記デバイス管理部および前記コマンド発行部が前記メモリーデバイスの動作周波数で動作する際の前記複数のタイミングパラメーターの設定値を含む演算式の値を前記ｎで除算し、
前記コマンド発行部は、前記デバイス管理部による前記除算結果の値に違反しないように前記コマンドを発行すること、
を特徴とする請求項１記載のメモリーコントローラー。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリーコントローラーに関するものである。
【背景技術】
【０００２】
半導体プロセスの微細化が進み、ＳｏＣ（System On a Chip）の内部動作周波数は、日々高くなってきている。その一方で、メモリーデバイスの動作周波数も高くなってきているとともに、メモリーインターフェイス規格も改良されており、例えば、ＤＤＲ３−ＳＤＲＡＭ（Double Data Rate 3 - Synchronous Dynamic Random Access Memory）では、１ＧＨｚ以上の動作周波数が達成されている。
【０００３】
メモリーデバイスとＳｏＣ内部のシステムバスとの間には、メモリーコントローラーが設けられており、ＳｏＣ内部のシステムバスのプロトコルを解釈し、メモリーデバイスの仕様に準じたコマンドに変換し、そのコマンドをメモリーデバイスに対して出力し、データのリード・ライトを行う（例えば特許文献１参照）。このとき、メモリーコントローラーは、メモリーデバイスの状態に基づき、各種コマンドについて、コマンドの発行タイミングがメモリーデバイスについて規定されているタイミング規約に違反しないようにコマンドを発行する。
【０００４】
ＤＤＲ３−ＳＤＲＡＭといった最新のメモリーデバイスでは、リードレべリング、ライトレべリングといった細かいタイミング調整が行われるため、メモリーデバイスのベンダーによって、メモリーデバイスを直接的に制御する物理層の標準ライブラリーが提供されることが多い。また、このようなメモリーコントローラーの物理層と、その上位に設けられる論理層との間のインターフェイスとしては、個々に開発されたものや、ＤＦＩといった規格のものが使用される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２４１７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
メモリーコントローラーの物理層および論理層は、メモリーデバイスの動作周波数と同一の動作周波数で動作させることが好ましい。これは、同一の動作周波数であれば、異なる周波数のドメインの境界においてＦＩＦＯ（First-In First-Out）などのバッファーが不要となり、レイテンシーの増加が抑えられるからである。
【０００７】
しかしながら、近年のメモリーデバイスの動作周波数は高いため、メモリーコントローラーを、メモリーデバイスの動作周波数と同一の動作周波数で動作させることは困難である。そのような場合、メモリーデバイスの動作周波数をｎ分の１（ｎ＞１）である低速の動作周波数で、メモリーコントローラーは動作する。
【０００８】
メモリーコントローラーの少なくとも論理層が、メモリーデバイスの動作周波数をｎ分の１（ｎ＞１）で動作する場合、論理層からのコマンド発行の単位時間（最小間隔）がメモリーデバイスのｎクロックとなるため、メモリーデバイスから見て、コマンドの発行周期が必要以上に長くなり、帯域やレイテンシーが悪化する可能性がある。
【０００９】
なお、メモリーデバイスに対するコマンド発行をｎ系統に並列させることでそのような帯域やレイテンシーの悪化を回避することも考えられるが、メモリーコントローラーの回路構成が複雑になり、メモリーコントローラーのコストが増加してしまう。
【００１０】
本発明は、上記の問題に鑑みてなされたものであり、低コストで、動作周波数がメモリーデバイスの動作周波数をｎ分の１（ｎ＞１）であっても効率よくコマンドを発行しメモリーデバイスを高速に制御するメモリーコントローラーを得ることを目的とする。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために、本発明では以下のようにした。
【００１２】
本発明に係るメモリーコントローラーは、メモリーデバイスの状態を管理するデバイス管理部と、メモリーデバイスに対してコマンドを発行させるコマンド発行部とを備える。デバイス管理部およびコマンド発行部は、動作周波数設定データの値であるｎに基づくメモリーデバイスの動作周波数のｎ分の１（ｎ＞１）の周波数で動作する。そして、デバイス管理部は、コマンド発行部によるコマンドの発行タイミングを制限するタイミングパラメーターの値を、デバイス管理部およびコマンド発行部がメモリーデバイスの動作周波数で動作する際のタイミングパラメーターの設定値をそのｎで除算した値にセットし、コマンド発行部は、デバイス管理部により値をセットされたタイミングパラメーターに違反しないようにコマンドを発行する。
【００１３】
これにより、タイミングパラメーターの値がｎ分の１となることで、コマンドがメモリーデバイスの動作周波数に合わせて発行されやすくなる。したがって、低コストで、動作周波数がメモリーデバイスの動作周波数をｎ分の１（ｎ＞１）であっても効率よくコマンドを発行しメモリーデバイスを高速に制御することができる。
【００１４】
また、本発明に係るメモリーコントローラーは、上記のメモリーコントローラーに加え、次のようにしてもよい。この場合、上述の動作周波数設定データの値は切り替え可能である。
【００１５】
これにより、メモリーデバイスの動作周波数などに応じて、メモリーコントローラーの動作周波数を適宜設定することができ、その設定された動作周波数に応じた値がタイミングパラメーターにセットされる。
【００１６】
また、本発明に係るメモリーコントローラーは、上記のメモリーコントローラーに加え、次のようにしてもよい。この場合、デバイス管理部は、上述の除算において端数が発生する場合、タイミングパラメーターの種別に応じて、端数を切り上げるか、切り捨てる。
【００１７】
これにより、上述の除算において端数が発生した場合においても、デバイス管理部およびコマンド発行部がメモリーデバイスの動作周波数で動作する際のタイミング規約に違反することなく、コマンドが発行される。
【００１８】
また、本発明に係るメモリーコントローラーは、上記のメモリーコントローラーに加え、次のようにしてもよい。この場合、デバイス管理部は、タイミングパラメーターが上限値を指定するものである場合、上述の端数を切り捨てる。
【００１９】
また、本発明に係るメモリーコントローラーは、上記のメモリーコントローラーに加え、次のようにしてもよい。この場合、デバイス管理部は、タイミングパラメーターが下限値を指定するものである場合、上述の端数を切り上げる。
【００２０】
また、本発明に係るメモリーコントローラーは、上記のメモリーコントローラーに加え、次のようにしてもよい。この場合、デバイス管理部は、コマンドの発行タイミングに関するある期間の開始までの時間の上限値を示す第１タイミングパラメーターと、その期間の長さの下限値を示す第２タイミングパラメーターについて、第１タイミングパラメーターについて端数を切り捨てるとき、第２タイミングパラメーターについて、第２タイミングパラメーターの設定値に第１のタイミングパラメーターについての除算余りを加算した値を上述のｎで除算する。コマンド発行部は、デバイス管理部により値をセットされた第１タイミングパラメーターおよび第２タイミングパラメーターに違反しないようにコマンドを発行する。
【００２１】
これにより、上述の期間の長さの下限値を示す第２タイミングパラメーターをそのままｎで除算する場合に比べ、上述の期間の終わりが適切にセットされる。
【００２２】
また、本発明に係るメモリーコントローラーは、上記のメモリーコントローラーに加え、次のようにしてもよい。この場合、デバイス管理部は、ある期間の開始までの時間の下限値を示す第１タイミングパラメーターと、その期間の長さの上限値を示す第２タイミングパラメーターについて、第１タイミングパラメーターについて端数を切り上げるとき、第２タイミングパラメーターについて、第２タイミングパラメーターの設定値から第１のタイミングパラメーターについての除算余りを減算した値を上述のｎで除算する。コマンド発行部は、デバイス管理部により値をセットされた第１タイミングパラメーターおよび第２タイミングパラメーターに違反しないようにコマンドを発行する。
【００２３】
これにより、上述の期間の長さの上限値を示す第２タイミングパラメーターをそのままｎで除算する場合に比べ、上述の期間の終わりが適切にセットされる。
【００２４】
また、本発明に係るメモリーコントローラーは、上記のメモリーコントローラーに加え、次のようにしてもよい。この場合、デバイス管理部は、複数のタイミングパラメーターを含む演算式の値でコマンドの発行タイミングが制限される場合、デバイス管理部およびコマンド発行部がメモリーデバイスの動作周波数で動作する際の複数のタイミングパラメーターの設定値を含む演算式の値を上述のｎで除算する。コマンド発行部は、デバイス管理部による除算結果の値に違反しないようにコマンドを発行する。
【００２５】
これにより、上述の複数のタイミングパラメーターの１つ１つを別々にｎで除算する場合に比べ、コマンドの発行タイミングが適切に規制される。
【発明の効果】
【００２６】
本発明によれば、低コストで、動作周波数がメモリーデバイスの動作周波数をｎ分の１（ｎ＞１）であっても効率よくコマンドを発行しメモリーデバイスを高速に制御するメモリーコントローラーを得ることができる。
【図面の簡単な説明】
【００２７】
【図１】図１は、本発明の実施の形態に係るメモリーコントローラーの構成を示すブロック図である。
【図２】図２は、図１におけるデバイス管理部の構成を示すブロック図である。
【図３】図３は、図２に示すデバイス管理部によるタイミングパラメーターｔＲＣのセットを説明するフローチャートである。
【図４】図４は、図２に示すデバイス管理部によるタイミングパラメーターｔＲＥＦＩのセットを説明するフローチャートである。
【図５】図５は、図２に示すデバイス管理部によるＯＤＴについてのタイミングパラメーターのセットを説明するフローチャートである。
【発明を実施するための形態】
【００２８】
以下、図に基づいて本発明の実施の形態を説明する。
【００２９】
実施の形態１．
【００３０】
図１は、本発明の実施の形態に係るメモリーコントローラーの構成を示すブロック図である。図１に示すメモリーコントローラーは、論理層１および物理層２を有し、物理層２は、外部のメモリーデバイス３を直接的に制御し、論理層１は、物理層２に対して各種信号を供給して物理層２を動作させてメモリーデバイス３を制御する。メモリーデバイス３は、ＤＤＲ３−ＳＤＲＡＭなどといったＳＤＲＡＭ形式の揮発性メモリーである。論理層１と物理層２とは、別々のクロックドメイン（周波数ドメイン）とされる。
【００３１】
論理層１は、ホストインターフェイス１１、調停部１２、ストローブ信号生成部１３、リフレッシュコントローラー１４、トランザクションバッファー１５、デバイス管理部１６、コマンド発行部１７、コマンド出力部１８、および物理層インターフェイス１９を有する。
【００３２】
ホストインターフェイス１１は、システムバスを介してメモリーデバイス３に対するアクセス要求を受け付け、そのアクセス要求を調停部１２に出力する。また、ライトアクセス要求の場合、ホストインターフェイス１１は、ライト対象のデータを受け付け、ストローブ信号生成部１３に出力する。リードアクセス要求の場合、ホストインターフェイス１１は、リード対象のデータをストローブ信号生成部１３から受け付け、システムバスを介して、リードアクセス要求の発行元に出力する。
【００３３】
調停部１２は、ホストインターフェイス１１からのアクセス要求、リフレッシュコントローラー１４からのリフレッシュ要求などの各種要求を調停し、それらの要求を順番にトランザクションバッファー１５に登録する。
【００３４】
ストローブ信号生成部１３は、ストローブ信号を生成し、物理層インターフェイス１９を介して物理層２との間でアクセス対象のデータの送受を行う。
【００３５】
リフレッシュコントローラー１４は、図示せぬレジスターに設定された周期で定期的にリフレッシュ要求を出力する。
【００３６】
トランザクションバッファー１５は、調停部１２により登録される要求をキューイングし順番に出力する。
【００３７】
図２は、図１におけるデバイス管理部１６の構成を示すブロック図である。デバイス管理部１６は、係数設定部２１、タイミングパラメーター設定部２２、および状態監視部２３を有する。
【００３８】
係数設定部２１は、メモリーデバイス３の種別、動作周波数などに応じて、動作周波数設定データを設定する。デバイス管理部１６およびコマンド発行部１７は、論理層１内にあり、その動作周波数設定データの値ｎ（以下、係数ｎという）に基づくメモリーデバイス３の動作周波数のｎ分の１（ｎ＞１，ｎは整数）の周波数で動作する。
【００３９】
実施の形態１では、論理層１において、その動作周波数設定データの値は切り替え可能である。
【００４０】
タイミングパラメーター設定部２２は、コマンド発行部１７によるコマンドの発行タイミングを制限するタイミングパラメーターの値をセットする。タイミングパラメーター設定部２２は、タイミングパラメーターの値を、論理層１（つまり、デバイス管理部１６およびコマンド発行部１７）がメモリーデバイス３の動作周波数で動作する際のタイミングパラメーターの設定値を上述の係数ｎで除算した値にセットする。コマンド発行部１７は、その値をセットされたタイミングパラメーターに違反しないようにコマンドを発行する。なお、このタイミングパラメーターの設定値は、例えば図示せぬインターフェイスを介してホスト装置から設定され、論理層１において予め記憶されている。
【００４１】
実施の形態１では、タイミングパラメーター設定部２２は、上述の除算において端数が発生する場合、タイミングパラメーターの種別に応じて、その端数を切り上げるか、切り捨てる。具体的には、タイミングパラメーター設定部２２は、タイミングパラメーターが上限値を指定するものである場合、その端数を切り捨て、タイミングパラメーターが下限値を指定するものである場合、その端数を切り上げる。
【００４２】
タイミングパラメーターの値はクロック数で表現されており、整数演算としての除算が実行される。
【００４３】
例えば、タイミングパラメーターｔＲＣは、ＡＣＴ（Active）コマンドの発行から、ＣＯＬコマンド（ＲＤ（Read）コマンド、ＲＤＡ（Read with auto-close）コマンド、ＷＲ（Write）コマンド、またはＷＲＡ（Write with auto-close）コマンド）の発行までの最低時間を規定する、ＤＤＲ２−ＳＤＲＡＭおよびＤＤＲ３−ＳＤＲＡＭのタイミングパラメーターである。このタイミングパラメーターｔＲＣは下限値を設定するものであるので、タイミングパラメーターｔＲＣについての除算において端数が発生した場合には、端数を切り上げられた除算結果の値がタイミングパラメーターｔＲＣとしてセットされる。
【００４４】
例えば、タイミングパラメーターｔＲＥＦＩは、ＲＥＦ（Auto refresh）コマンドの最大間隔を規定する、ＤＤＲ２−ＳＤＲＡＭおよびＤＤＲ３−ＳＤＲＡＭのタイミングパラメーターである。このタイミングパラメーターｔＲＥＦＩは所定回数のＲＥＦコマンドの平均間隔の上限値を設定するものであるので、タイミングパラメーターｔＲＥＦＩについての除算において端数が発生した場合には、端数を切り捨てられた除算結果の値がタイミングパラメーターｔＲＥＦＩとしてセットされる。
【００４５】
実施の形態１では、タイミングパラメーター設定部２２は、コマンドの発行タイミングに関するある期間の開始までの時間の上限値を示す第１タイミングパラメーターと、その期間の長さの下限値を示す第２タイミングパラメーターについて、第１タイミングパラメーターについて上述の端数を切り捨てるとき、第２タイミングパラメーターについて、第２タイミングパラメーターの設定値に第１のタイミングパラメーターについての除算余りを加算した値を上述の係数ｎで除算する。コマンド発行部１７は、タイミングパラメーター設定部２２により値をセットされた第１タイミングパラメーターおよび第２タイミングパラメーターに違反しないようにコマンドを発行する。
【００４６】
例えば、リードコマンドおよびライトコマンドからＯＤＴ（On Die Termination）オン開始までの期間の上限値を示す第１タイミングパラメーター、およびそのＯＤＴオン期間の下限値を示す第２パラメーターの場合、第１タイミングパラメーターについて上述の係数ｎで除算したときに端数が発生しその端数を切り捨てる除算結果の値が、第１タイミングパラメーターにセットされ、その端数を切り捨てた除算結果の値が第１タイミングパラメーターにセットされたときには、第２タイミングパラメーターについて、第２タイミングパラメーターの設定値に第１のタイミングパラメーターについての除算余りを加算した値が上述の係数ｎで除算され、その除算結果（その除算結果に端数がある場合には、その端数を切り上げた値）が、第２タイミングパラメーターにセットされる。
【００４７】
また、同様に、実施の形態１では、タイミングパラメーター設定部２２は、ある期間の開始までの時間の下限値を示す第１タイミングパラメーターと、その期間の長さの上限値を示す第２タイミングパラメーターについて、第１タイミングパラメーターについて端数を切り上げるとき、第２タイミングパラメーターについて、第２タイミングパラメーターの設定値から第１のタイミングパラメーターについての除算余りを減算した値を上述の係数ｎで除算する。コマンド発行部１７は、タイミングパラメーター設定部２２により値をセットされた第１タイミングパラメーターおよび第２タイミングパラメーターに違反しないようにコマンドを発行する。
【００４８】
状態監視部２３は、コマンド発行に対応してコマンド発行部１７から供給される状態遷移指令に基づいて、所定のコマンドの発行からの期間を計時して、タイミングパラメーター設定部２２により値をセットされたタイミングパラメーターにより指定される条件をその計測時間が満たすか否かを示すフラグをセットし、そのフラグの値をデバイス状態情報としてコマンド発行部１７に供給する。
【００４９】
また、コマンド発行部１７は、トランザクションバッファー１５から、順番に、ＲＯＷコマンド要求、ＣＯＬコマンド要求、ＲＯＷアドレス、およびＣＯＬアドレスを受け付け、それらのコマンドについてのコマンド発行要求をそれらのアドレスとともにコマンド出力部１８に供給する。また、コマンド発行部１７は、上述のデバイス状態情報に基づいて、上述の条件を満たすように各種コマンドについてのコマンド発行要求をそれらのアドレスとともにコマンド出力部１８に供給する。
【００５０】
コマンド発行部１７は、コマンド発行要求を発行すると、そのコマンドの種別を示す通知（状態遷移指令）をデバイス管理部１６に供給する。
【００５１】
コマンド出力部１８は、コマンド発行部１７からのコマンド発行要求に従って、要求されるコマンドを実行するための各種信号を物理層インターフェイス１９に供給する。コマンド出力部１８は、データ転送トリガーをストローブ信号生成部１３に供給し、ストローブ信号生成部１３は、そのデータ転送トリガーに従ってデータ転送を行う。
【００５２】
物理層インターフェイス１９は、論理層１と物理層２との間のインターフェイスであって、異なるクロックドメインに属する論理層１および物理層２の間で各種信号を転送する。
【００５３】
次に、上記メモリーコントローラーの動作について説明する。ここでは、タイミングパラメーターｔＲＣ，ｔＲＥＦＩおよびＯＤＴに関する上述のタイミングパラメーターに関連するデバイス管理部１６の動作について説明する。
【００５４】
（１）タイミングパラメーターｔＲＣのセット
【００５５】
図３は、図２に示すデバイス管理部１１によるタイミングパラメーターｔＲＣのセットを説明するフローチャートである。
【００５６】
デバイス管理部１６において、タイミングパラメーターｔＲＣについて、タイミングパラメーター設定部２２は、動作周波数設定データから上述の係数ｎを特定するとともに、タイミングパラメーターｔＲＣの設定値を特定する（ステップＳ１）。
【００５７】
次に、タイミングパラメーター設定部２２は、タイミングパラメーターｔＲＣの設定値を係数ｎで除算する（ステップＳ２）。
【００５８】
タイミングパラメーター設定部２２は、その除算結果に端数があるか否か（つまり余りがあるか否か）を判定し（ステップＳ３）、その除算結果に端数がある場合、その除算結果を切り上げた値を、タイミングパラメーターｔＲＣの値とする（ステップＳ４）。
【００５９】
例えば、タイミングパラメーターｔＲＣの設定値ｔＲＣｄが奇数であって、係数ｎが２である場合、端数が発生するので、タイミングパラメーターｔＲＣの設定値は、ｔＲＣｄ／２より大きい整数のうちのｔＲＣｄ／２に最も近い整数とされる。
【００６０】
タイミングパラメーター設定部２２は、このタイミングパラメーターｔＲＣの値を状態監視部２３にセットする（ステップＳ５）。つまり、除算結果に端数がある場合には、切り上げ後の値がセットされ、除算結果に端数がない場合には、除算結果がそのままセットされる。
【００６１】
（２）タイミングパラメーターｔＲＥＦＩのセット
【００６２】
図４は、図２に示すデバイス管理部１１によるタイミングパラメーターｔＲＥＦＩのセットを説明するフローチャートである。
【００６３】
デバイス管理部１６において、タイミングパラメーターｔＲＥＦＩについて、タイミングパラメーター設定部２２は、動作周波数設定データから上述の係数ｎを特定するとともに、タイミングパラメーターｔＲＥＦＩの設定値を特定する（ステップＳ１１）。
【００６４】
次に、タイミングパラメーター設定部２２は、タイミングパラメーターｔＲＥＦＩの設定値を係数ｎで除算する（ステップＳ１２）。
【００６５】
タイミングパラメーター設定部２２は、その除算結果に端数があるか否か（つまり余りがあるか否か）を判定し（ステップＳ１３）、その除算結果に端数がある場合、その除算結果を切り捨てた値を、タイミングパラメーターｔＲＥＦＩの値とする（ステップＳ１４）。
【００６６】
例えば、タイミングパラメーターｔＲＥＦＩの設定値ｔＲＥＦＩｄが奇数であって、係数ｎが２である場合、端数が発生するので、タイミングパラメーターｔＲＥＦＩの設定値は、ｔＲＥＦＩｄ／２より小さい整数のうちのｔＲＥＦＩｄ／２に最も近い整数とされる。
【００６７】
タイミングパラメーター設定部２２は、このタイミングパラメーターｔＲＥＦＩの値を状態監視部２３にセットする（ステップＳ１５）。つまり、除算結果に端数がある場合には、切り捨て後の値がセットされ、除算結果に端数がない場合には、除算結果がそのままセットされる。
【００６８】
（３）ＯＤＴについてのタイミングパラメーターのセット
【００６９】
図５は、図２に示すデバイス管理部１１によるＯＤＴについてのタイミングパラメーターのセットを説明するフローチャートである。
【００７０】
デバイス管理部１６において、第１タイミングパラメーター（ＯＤＴオン開始までの時間の上限値）および第２パラメーター（ＯＤＴオン期間の長さの下限値）について、タイミングパラメーター設定部２２は、動作周波数設定データから上述の係数ｎを特定するとともに、その第１および第２タイミングパラメーターの設定値を特定する（ステップＳ２１）。
【００７１】
次に、タイミングパラメーター設定部２２は、第１タイミングパラメーターの設定値を係数ｎで除算する（ステップＳ２２）。
【００７２】
タイミングパラメーター設定部２２は、その除算結果に端数があるか否か（つまり余りがあるか否か）を判定し（ステップＳ２３）、その除算結果に端数がある場合、その除算結果を切り捨てた値を、第１タイミングパラメーターの値とする（ステップＳ２４）。
【００７３】
タイミングパラメーター設定部２２は、この第１タイミングパラメーターの値を状態監視部２３にセットする（ステップＳ２５）。つまり、除算結果に端数がある場合には、切り捨て後の値がセットされ、除算結果に端数がない場合には、除算結果がそのままセットされる。
【００７４】
次に、タイミングパラメーター設定部２２は、第１タイミングパラメーターについての除算結果に端数があったか否かを判定する（ステップＳ２６）。
【００７５】
第１タイミングパラメーターについての除算結果に端数があった場合、タイミングパラメーター設定部２２は、第１タイミングパラメーターについての除算の余りを、第２タイミングパラメーターの設定値に加算する（ステップＳ２７）。タイミングパラメーター設定部２２は、その設定値とその余りとの和を係数ｎで除算する（ステップＳ２８）。タイミングパラメーター設定部２２は、その除算結果に端数があるか否か（つまり余りがあるか否か）を判定し（ステップＳ２９）、その除算結果に端数がある場合、その除算結果を切り上げた値を、第２タイミングパラメーターの値とする（ステップＳ３０）。タイミングパラメーター設定部２２は、この第２タイミングパラメーターの値を状態監視部２３にセットする（ステップＳ３１）。つまり、除算結果に端数がある場合には、切り上げ後の値がセットされ、除算結果に端数がない場合には、除算結果がそのままセットされる。
【００７６】
一方、ステップＳ２６において、第１タイミングパラメーターについての除算結果に端数がなかったと判定された場合、タイミングパラメーター設定部２２は、第２タイミングパラメーターの設定値を係数ｎで除算する（ステップＳ３２）。タイミングパラメーター設定部２２は、その除算結果に端数があるか否か（つまり余りがあるか否か）を判定し（ステップＳ２９）、その除算結果に端数がある場合、その除算結果を切り上げた値を、第２タイミングパラメーターの値とする（ステップＳ３０）。タイミングパラメーター設定部２２は、この第２タイミングパラメーターの値を状態監視部２３にセットする（ステップＳ３１）。つまり、除算結果に端数がある場合には、切り上げ後の値がセットされ、除算結果に端数がない場合には、除算結果がそのままセットされる。
【００７７】
（４）デバイス管理部１６の状態監視部２３およびコマンド発行部１７の動作
【００７８】
以上のようにして各タイミングパラメーターの値が状態監視部２３にセットされ、状態監視部２３は、各タイミングパラメーターに対応する計時開始タイミングからの経過時間（経過クロック数）に応じて、各タイミングパラメーターに対応するフラグの値をセットする。そして、コマンド発行部１７は、そのフラグの値に応じて、各タイミングパラメーターに対応するコマンドの発行を禁止するか否かを決定する。
【００７９】
例えば、タイミングパラメーターｔＲＣについては、ＡＣＴコマンドの発行からの時間（クロック数）が計測され、その計測時間が、タイミングパラメーターｔＲＣを超えると、タイミングパラメーターｔＲＣに対応するフラグの値が所定の第１値から所定の第２値へ変化する。コマンド発行部１７は、このフラグの値がその第１値であるときに、ＲＤコマンド、ＲＤＡコマンド、ＷＲコマンド、およびＷＲＡコマンドを発行し、このフラグの値がその第２値であるときには、ＲＤコマンド、ＲＤＡコマンド、ＷＲコマンド、およびＷＲＡコマンドの発行を禁止する。
【００８０】
以上のように、上記実施の形態１によれば、論理層１内のデバイス管理部１６およびコマンド発行部１７は、動作周波数設定データの値であるｎに基づくメモリーデバイスの動作周波数のｎ分の１（ｎ＞１）の周波数で動作する。そして、デバイス管理部１６は、コマンド発行部１７によるコマンドの発行タイミングを制限するタイミングパラメーターの値を、デバイス管理部１６およびコマンド発行部１７がメモリーデバイス３の動作周波数で動作する際のタイミングパラメーターの設定値をそのｎで除算した値にセットし、コマンド発行部１７は、デバイス管理部１６により値をセットされたタイミングパラメーターに違反しないようにコマンドを発行する。
【００８１】
これにより、タイミングパラメーターの値がｎ分の１となることで、コマンドがメモリーデバイスの動作周波数に合わせて発行されやすくなる。したがって、低コストで、動作周波数がメモリーデバイス３の動作周波数をｎ分の１（ｎ＞１）であっても効率よくコマンドを発行しメモリーデバイス３を高速に制御することができる。
【００８２】
実施の形態２．
【００８３】
本発明の実施の形態２に係るメモリーコントローラーでは、デバイス管理部１６は、複数のタイミングパラメーターを含む演算式の値でコマンドの発行タイミングが制限される場合、その複数のタイミングパラメーターの設定値を含む演算式の値を上述のｎで除算し、コマンド発行部１７は、デバイス管理部１６による除算結果の値に違反しないようにコマンドを発行する。
【００８４】
例えば、メモリーデバイス３がＤＤＲ２−ＳＤＲＡＭである場合、ＷＲコマンドの発行からＲＤコマンドの発行までの最小時間は、３つのタイミングパラメーターＷＬ，ＢＬ，ｔＷＴＲの演算式ＷＬ＋ＢＬ／２＋ｔＷＴで規定される。
【００８５】
このとき、タイミングパラメーター設定部２２は、演算式（ＷＬ＋ＢＬ／２＋ｔＷＴ）の演算結果を上述の係数ｎで除算する。そして、この除算において端数が発生した場合には、除算結果を切り上げた値が、ＷＲコマンドの発行からＲＤコマンドの発行までの最小時間を示す値として、状態監視部２３にセットされる。
【００８６】
なお、実施の形態２に係るメモリーコントローラーのその他の構成および動作については実施の形態１と同様であるので、その説明を省略する。
【００８７】
以上のように、上記実施の形態２によれば、上述の複数のタイミングパラメーターの１つ１つを別々にｎで除算する場合に比べ、コマンドの発行タイミングが適切に規制される。
【００８８】
なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【００８９】
例えば、上記各実施の形態において、メモリーデバイス３が複数のランクを有する場合、ランクごとに独立したタイミングパラメーターが設定されるようにしてもよい。
【００９０】
また、上記各実施の形態において、ある期間の上限値を指定するタイミングパラメーター（例えば、上述のｔＲＥＦＩ）については、除算の端数が発生した場合、その除算の余りを、そのタイミングパラメーター自体の値は変更せずに、次回の除算時に、そのタイミングパラメーターの値とその除算余りとの和を上述のｎで除算するようにしてもよい。これにより、期間の上限値の平均が、タイミングパラメーターの値に合わせることができる。
【００９１】
また、上記各実施の形態においてタイミングパラメーターを例示しているが、例示していないタイミングパラメーターについても同様に値がセットされる。
【００９２】
また、上記各実施の形態において、係数ｎの値が固定値である場合には、係数ｎに関する上述の演算結果の値を予め保持しておき、係数ｎに関する上述の演算を行わずに、その保持している演算結果の値を使用するようにしてもよい。
【産業上の利用可能性】
【００９３】
本発明は、例えば、ＤＤＲ２−ＳＤＲＡＭ、ＤＤＲ３−ＳＤＲＡＭなどのメモリーコントローラーに適用可能である。
【符号の説明】
【００９４】
１  論理層
２  物理層
３  メモリーデバイス
１６  デバイス管理部
１７  コマンド発行部
【図１】
2014026349.tif 000003
【図２】
2014026349.tif 000004
【図３】
2014026349.tif 000005
【図４】
2014026349.tif 000006
【図５】
2014026349.tif 000007