(57)【要約】【課題】メモリモジュールに対してアクセスを行う際に、アクセス性能の低下を抑止し、高速動作を実現できるようにする。【解決手段】各メモリデバイス２００へのリード時のアクセスレイテンシを指定し保持するメモリ構成情報レジスタ１１１と、メモリ空間と各メモリデバイスのアドレス割り当てを指定し保持するメモリアドレス設定レジスタ１１２と、各メモリデバイスへのアクセスパターンを監視するメモリアクセス監視部１２１と、当該アクセスパターンに係る情報を記憶する不揮発記憶デバイス３００と、不揮発記憶デバイス３００から読み出されたアクセスパターンに係る情報に基づいて、メモリアドレス設定レジスタ１１２で保持するメモリ空間と各メモリデバイスのアドレス割り当ての設定を行うメモリアドレス設定部１２３とを具備する。【選択図】図２
2008040896.tif 000002
【特許請求の範囲】
【請求項１】
リード時のアクセスレイテンシが異なる複数のメモリデバイスへのアクセスを制御するメモリ制御装置であって、
前記各メモリデバイスへのリード時のアクセスレイテンシを指定し保持する第１の保持手段と、
メモリ空間と前記各メモリデバイスのアドレス割り当てを指定し保持する第２の保持手段と、
前記各メモリデバイスへのアクセスパターンを監視する監視手段と、
前記アクセスパターンに係る情報を記憶する記憶手段と、
前記記憶手段から読み出されたアクセスパターンに係る情報に基づいて、前記第２の保持手段で保持する前記メモリ空間と前記各メモリデバイスのアドレス割り当ての設定を行う設定手段と
を有することを特徴とするメモリ制御装置。
【請求項２】
前記設定手段は、当該メモリ制御装置の電源立ち上がり時に前記記憶手段から読み出されたアクセスパターンに係る情報に基づいて前記設定を行うことを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記監視手段は、前記アクセスパターンとして、前記各メモリデバイスに対応する前記メモリ空間への単位期間あたりのアクセス回数を監視するものであり、
前記設定手段は、前記アクセス回数に基づいて前記設定を行うことを特徴とする請求項１又は２に記載のメモリ制御装置。
【請求項４】
前記監視手段は、前記アクセスパターンとして、前記各メモリデバイスに対応する前記メモリ空間への単位期間あたりのページ遷移回数を監視するものであり、
前記設定手段は、前記ページ遷移回数に基づいて前記設定を行うことを特徴とする請求項１又は２に記載のメモリ制御装置。
【請求項５】
前記記憶手段は、不揮発性の記憶デバイスで構成されていることを特徴とする請求項１乃至４のいずれか１項に記載のメモリ制御装置。
【請求項６】
前記不揮発性の記憶デバイスは、ハードディスクからなるものであることを特徴とする請求項５に記載のメモリ制御装置。
【請求項７】
リード時のアクセスレイテンシが異なる複数のメモリデバイスへのアクセスを制御し、前記各メモリデバイスへのリード時のアクセスレイテンシを指定し保持する第１の保持手段と、メモリ空間と前記各メモリデバイスのアドレス割り当てを指定し保持する第２の保持手段とを具備するメモリ制御装置によるメモリ制御方法であって、
前記各メモリデバイスへのアクセスパターンを監視する監視ステップと、
前記アクセスパターンに係る情報を記憶手段に記憶する記憶ステップと、
前記記憶手段から読み出されたアクセスパターンに係る情報に基づいて、前記第２の保持手段で保持する前記メモリ空間と前記各メモリデバイスのアドレス割り当ての設定を行う設定ステップと
を有することを特徴とするメモリ制御方法。
【請求項８】
前記設定ステップでは、前記メモリ制御装置の電源立ち上がり時に前記記憶手段から読み出されたアクセスパターンに係る情報に基づいて前記設定を行うことを特徴とする請求項７に記載のメモリ制御方法。
【請求項９】
前記監視ステップは、前記アクセスパターンとして、前記各メモリデバイスに対応する前記メモリ空間への単位期間あたりのアクセス回数を監視するものであり、
前記設定ステップでは、前記アクセス回数に基づいて前記設定を行うことを特徴とする請求項７又は８に記載のメモリ制御方法。
【請求項１０】
前記監視ステップは、前記アクセスパターンとして、前記各メモリデバイスに対応する前記メモリ空間への単位期間あたりのページ遷移回数を監視するものであり、
前記設定ステップでは、前記ページ遷移回数に基づいて前記設定を行うことを特徴とする請求項７又は８に記載のメモリ制御方法。
【請求項１１】
前記記憶手段は、不揮発性の記憶デバイスで構成されていることを特徴とする請求項７乃至１０のいずれか１項に記載のメモリ制御方法。
【請求項１２】
前記不揮発性の記憶デバイスは、ハードディスクからなるものであることを特徴とする請求項１１に記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リード時のアクセスレイテンシが異なる複数のメモリデバイスへのアクセスを制御するメモリ制御装置及びメモリ制御方法に関する。
【背景技術】
【０００２】
一般に、主記憶メモリとして使用されているＤＲＡＭ内のメモリセルは、バンク、行、列に分割されている。そして、バンクと行の組み合わせのページ単位で活性化を行い（ページオープン、オープン）、活性化を行った後に列アドレスに対してＲｅａｄ／Ｗｒｉｔｅのコマンドを発行する。ページオープンされているページは、プリチャージコマンドを発行することで、ページの非活性化（ページクローズ、クローズ）を行う。
【０００３】
ページオープンの状態では、該当ページ内の列アドレスに対しては、ページオープンすること無くアクセスを行うことが可能であり、高速でメモリアクセスが可能となる。バンク毎に活性化されるページは１つであり、同一バンクで別の行にアクセスする場合は、活性化されているページをクローズし、アクセスを発行するページを活性化してからアクセスを行う列にＲｅａｄ／Ｗｒｉｔｅコマンドを発行する。クローズ状態のページに対してアクセスを発行する場合は、ページをオープンした後に、アクセスする列に対してＲｅａｄ／Ｗｒｉｔｅコマンドを発行する。
【０００４】
同一バンクで異なるページにアクセスする場合、又はページオープンされていないページに対してアクセスする場合をページミスという。その際に要する時間、即ちページをクローズしてオープンする間の時間、ページをオープンする時間をページミスペナルティと呼んでいる。
【０００５】
ところで、近年では、半導体技術の向上に伴い、プロセッサやＬＳＩ内部の動作周波数が飛躍的に高速化している。そして、ＬＳＩの外部に接続されるメモリ、特に、ＤＲＡＭを使用した主記憶メモリに対しても動作周波数の向上が要求され、近年、メモリモジュールの高速化が進んでいる。
【０００６】
このメモリモジュールに対しても、その高速化に応じて、構造、構成の変更が必要となる。従来、ＰＣ１３３等のメモリモジュールでは、Unbufferedの構成でコマンド、データともにコントローラから出力された信号がそのままメモリモジュール内のメモリデバイスに分配されても問題は生じなかった。一方、ＤＤＲ４００等のメモリモジュールでは、メモリモジュールを複数構成する際にコマンド系の信号が多くのメモリデバイスに分配されて供給されると、基板上の信号の負荷が大きくなることから信号の伝播遅延が大きくなる。そして、この場合、Unbufferedの構成では高速動作が保証できなくなる。このため、コマンド系信号を各メモリモジュール内に実装されたレジスタにおいてラッチし、各メモリデバイスに分配することにより基板上の信号負荷を低減させて高速動作を保証している。このとき、データはコマンド系信号と比較して基板上の信号負荷が小さいため、高速動作に対する影響は小さかった。
【０００７】
しかしながら、ＤＤＲ２／ＤＤＲ３といった更なる高速化の実現を可能とするメモリデバイスを使用したメモリモジュールを複数構成したシステムを構築すると、データ信号の分配による基板上の負荷が無視できなくなり、高速動作に影響してしまう。
【０００８】
この高速動作を保証する仕組みとして、Point to Pointの高速シリアルインターフェース技術を利用し、メモリモジュール内のバッファでコマンド、データを一旦バッファリングして伝送する仕組みが検討されている（例えば、特許文献１参照）。
【０００９】
以下、図１１を用いて、上述したメモリモジュールの動作を説明する。
メモリ制御回路１０から発行されるメモリコマンドは、メモリモジュール群２０の各メモリモジュール２１〜２４内のバッファ２０ａに伝達され、各バッファ２０ａにつき当該メモリモジュールへのアクセス又は他のメモリモジュールへのアクセスの判定を行う。ここで、自己のメモリモジュールへのアクセスであった場合は、コマンドを当該メモリモジュール内のメモリデバイス２０ｂへ分配し、一方、他のメモリモジュールへのアクセスであった場合は、コマンドを次のメモリモジュールへと伝達する。
【００１０】
書き込みデータに関しては、コマンドと一緒に伝達される。これに対して、読み込みデータに関しては、バッファ２０ａを介してコマンドとは逆方向のメモリ制御回路１０側へ伝達される。
【００１１】
図１１に示す構成では、接続されるメモリモジュール２１〜２４がシリアルに伝送されることになる。そして、コマンドや書き込みデータは、ＬＳＩ（メモリ制御回路１０）から距離の遠いメモリモジュールへの到達サイクルが遅れ、また、読み込みデータは、ＬＳＩ（メモリ制御回路１０）から距離の遠いメモリモジュールにおけるレイテンシが長くなる傾向にある。
【００１２】
例えば、図１１において、メモリ制御回路１０に一番近いメモリモジュール２１に対するメモリアクセスは、コマンド及び書き込みデータに対してはバッファ２０ａの１段分、読み出しデータに対しては更に１段分のメモリアクセスレイテンシとなる。また、メモリ制御回路１０から一番遠いメモリモジュール２４に対するメモリアクセスは、コマンド及び書き込みデータに対してはバッファ２０ａの４段分、読み出しデータについては更に４段分のメモリアクセスレイテンシとなる。このため、メモリモジュールの物理的位置により、アクセスレイテンシが大幅に異なる。
【００１３】
【特許文献１】特開２００６−１４６３４０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
従来のメモリモジュールを使用したシステムにおいて、図１２に示すメモリモジュール３１〜３４のように、バッファを構成しない場合には、各メモリモジュール３１〜３４に対してコマンド及びデータが分配される。このため、各メモリモジュール３１〜３４に対するアクセスレイテンシは均一であり、いかなる領域にメモリアクセスを発行してもアクセス性能は均一となる。しかしながら、この場合には、各メモリモジュール３１〜３４にバッファを構成していないため、前述したように、高速動作を保証することが困難である。
【００１５】
一方、図１１に示すようなメモリモジュール２１〜２４を使用した場合には、アクセスされる対象のメモリモジュールに依存して、アクセスレイテンシが大幅に異なることになる。例えば、図１１において、レイテンシの一番小さいメモリモジュール２１に対してメモリアクセスが多く発行された場合とレイテンシの一番大きいメモリモジュール２４に対してメモリアクセスが多く発行された場合とでは、アクセスの応答性が大きく異なる。このため、アクセス性能は、メモリアクセスに依存したシステム性能に大きく影響を与える。
【００１６】
バッファを具備するメモリモジュール２１〜２４を搭載したシステムにおいて、例えば、レイテンシの少ないメモリモジュール２１に対するメモリアクセス数が少なく、レイテンシの大きいメモリモジュール２４に対するメモリアクセスが多数発行される場合と、レイテンシの少ないメモリモジュール２１に対するメモリアクセスが多数発行され、レイテンシの大きいメモリモジュール２４に対するメモリアクセス数が少ない場合では、後者に対して前者のメモリアクセス性能が悪くなるという問題が存在している。
【００１７】
この場合、例えば、メモリアクセスが多数発行されるメモリ空間を、レイテンシの少ないメモリモジュール２１にアドレス割り当てを行うことで性能の低下を防ぐことができる。しかしながら、当該システムにおいて複数の機能やアプリケーションが動作する場合に、各メモリ空間に対するアクセス頻度は、動作状況に応じて変化する。例えば、コピー及びプリント機能を有した複合機において、コピーを中心に使用する場合と、プリントを中心に使用する場合が考えられ、それぞれの場合では、集中的にアクセスされるメモリアクセス空間が異なる。
【００１８】
従って、ある機能やアプリケーションに対してメモリアクセスの性能低下を防ぐメモリ空間の割り当てが行なわれたとしても、例えば、複合機の使用形態がコピー中心からプリント中心に変化するといった動作状況の変化により、アクセスパターンが変化する。そして、アクセス頻度が高いメモリ空間がレイテンシの大きいメモリモジュールに割り当てられる使用形態に遷移した場合、メモリアクセス性能が低下してしまうという問題が存在する。
【００１９】
また、アクセスパターンの履歴を取得し、メモリ空間と割り当てるメモリデバイスの組み合わせを変更することにより、メモリアクセス性能の低下を防ぐことが考えられる。この場合、割り当て変更時に変更前のメモリデータにアクセスを行う際には、メモリコピーを行う必要があり、その間のメモリアクセスが制限されてしまうという問題が存在する。
【００２０】
本発明は上述の問題点にかんがみてなされたものであり、メモリモジュールに対してアクセスを行う際に、アクセス性能の低下を抑止し、高速動作を実現することを目的とする。
【課題を解決するための手段】
【００２１】
本発明は上述した目的を達成するために、リード時のアクセスレイテンシが異なる複数のメモリデバイスへのアクセスを制御するメモリ制御装置であって、前記各メモリデバイスへのリード時のアクセスレイテンシを指定し保持する第１の保持手段と、メモリ空間と前記各メモリデバイスのアドレス割り当てを指定し保持する第２の保持手段と、前記各メモリデバイスへのアクセスパターンを監視する監視手段と、前記アクセスパターンに係る情報を記憶する記憶手段と、前記記憶手段から読み出されたアクセスパターンに係る情報に基づいて、前記第２の保持手段で保持する前記メモリ空間と前記各メモリデバイスのアドレス割り当ての設定を行う設定手段とを有するメモリ制御装置等を提供する。
【発明の効果】
【００２２】
本発明によれば、メモリモジュールに対してアクセスを行う際に、アクセス性能の低下を抑止し、高速動作を実現することが可能となる。
【００２３】
また、各メモリ空間への単位期間あたりのアクセス回数に基づいて設定手段による設定を行うようにしてので、メモリアクセス頻度の大きいメモリ空間をレイテンシの少ないメモリモジュールへと割り当てることができる。これにより、レイテンシ増加によるアクセス性能の低下を抑止することができる。
【００２４】
また、各メモリ空間への単位期間あたりのページ遷移回数に基づいて設定手段による設定を行うようにしてので、ページミスペナルティが大きいメモリ空間をレイテンシの少ないメモリモジュールへと割り当てることができる。これにより、レイテンシの異なる複数のメモリモジュールが接続される場合において、レイテンシの大きいメモリモジュールでのページミスペナルティの影響を少なくし、アクセス性能の低下を抑止することができる。
【００２５】
また、電源立ち上がり時に記憶手段から読み出されたアクセスパターンに係る情報に基づいて設定手段による設定を行うようにしてので、当該装置の使用状況が変化してアクセスパターンが変化した場合においても、アクセス性能の低下を抑止することができる。加えて、メモリコピー等の処理のオーバヘッドや回路追加をすること無く実現することが可能となる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明における諸実施形態について説明するが、本発明は、以下に示す諸実施形態にとらわれることなく、本発明の主旨を逸脱しない限り種々の変更が可能である。
【００２７】
（第１の実施形態）
図１は、第１の実施形態に係るメモリ制御装置の概略構成図である。
メモリ制御装置は、メモリ制御回路１００と、メモリモジュール群２００と、不揮発記憶デバイス３００を有して構成されている。ここで、不揮発記憶デバイス３００は、アクセスパターン等を保持し、例えばハードディスクからなる。
【００２８】
メモリ制御回路１００は、メモリ情報レジスタ１１０と、アクセスパターン判定・設定部１２０と、メモリインタフェース１３０を含み構成されている。メモリ情報レジスタ１１０は、接続されるメモリの状態を設定、保持する。アクセスパターン判定・設定部１２０は、メモリに対するアクセスパターンを判定し、判定結果をメモリ情報レジスタ１１０に伝達し、アクセスパターンの設定を行う。
【００２９】
メモリモジュール群２００には、図１に示すように、メモリ制御回路１００から鎖状に接続された４組のメモリモジュール２０１〜２０４が構成されている。また、各メモリモジュール２０１〜２０４内には、コマンド、データを受け取り下流へと伝達するバッファ２００ａとＤＲＡＭ２００ｂが構成されている。
【００３０】
このとき、メモリ制御回路１００から物理的距離が一番近いメモリモジュール２０１に対するレイテンシが一番小さく、物理的距離が一番遠いメモリモジュール２０４に対するレイテンシが一番大きい構成となっている。
【００３１】
図２は、第１の実施形態に係るメモリ制御装置のメモリ制御回路の概略構成図である。
メモリ制御回路１００には、メモリインタフェース１３０として、各種のバス１３１ａ〜１３１ｅと、メモリアクセスインターフェース１３２と、不揮発記憶デバイス制御部１３３と、メモリ制御コア部１３４が構成されている。
【００３２】
メモリアクセスバス１３１ａは、メモリへのアクセスコマンドやデータの授受を司るものである。レジスタアクセスバス１３１ｂは、メモリ制御回路１００の動作設定情報やその状態情報を保持するメモリ情報レジスタ１１０へのアクセスを司るものである。電源遮断通知信号入力バス１３１ｃは、電源遮断通知信号の入力を司るものである。書き込みデータ送信バス１３１ｄは、メモリ制御コア部１３４からのメモリモジュール群２００に対する書き込みデータの送信を司るものである。読み出しデータ受信バス１３１ｅは、メモリ制御コア部１３４におけるメモリモジュール群２００からの読み出しデータの受信を司るものである。
【００３３】
メモリアクセスインターフェース１３２は、メモリアクセスバス１３１ａからメモリアクセスを受け取る。不揮発記憶デバイス制御部１３３は、アクセスパターンを不揮発記憶デバイス３００に書き込む読み込み処理を制御する。
【００３４】
また、アクセスパターン判定・設定部１２０には、メモリアクセスインターフェース１３２に発行されるメモリアクセスパターンを監視するメモリアクセス監視部１２１と、メモリアクセスパターン判定部１２２と、メモリアドレス設定部１２３が設けられている。
【００３５】
メモリアクセスパターン判定部１２２には、電源遮断通知信号入力バス１３１ｃを介して電源遮断通知信号が入力される。この電源遮断通知信号は、当該装置の電源遮断に先立って信号値が有効になるよう制御される信号である。例えば、システムの電源遮断が指定されると、ソフトウエアが電源遮断の実行を示すレジスタに書き込みを行い、本電源遮断通知信号が入力されるソフトウエア手法や電源の電圧降下を事前に判定し、通知を行うハードウエア手法等により実装される。本実施形態においては、この実装手法は任意である。
【００３６】
メモリ情報レジスタ１１０には、各メモリモジュールへのリード時のアクセスレイテンシを指定し保持するメモリ構成情報レジスタ１１１と、メモリ空間と各メモリモジュールのアドレス割り当てを指定するメモリアドレス設定レジスタ１１２が設けられている。
【００３７】
以下に、第１の実施形態に係るメモリ制御装置の各構成部の動作について説明する。
メモリ情報レジスタ１１０内のメモリ構成情報レジスタ１１１は、接続されるメモリモジュールの構成情報とレイテンシ情報を保持するフィールドを有している。
【００３８】
図４−１は、メモリ情報レジスタ１１１の構成の一例を示す模式図である。
メモリ情報レジスタ１１１は、接続可能なメモリモジュール数分の設定レジスタフィールドを有し、本実施形態では、図１に示されるように最大４個のメモリモジュール２０１〜２０４が接続可能であるため、４組の設定レジスタフィールド４０１を有している。
【００３９】
図４−１に示すメモリ情報レジスタ１１１では、当該メモリモジュールが有効か無効かを示すフラグ４０２と、メモリバンク個数フィールド４０３と、行アドレスビット数フィールド４０４と、列アドレスビット数フィールド４０５と、列アドレスビット数フィールド４０５を設定するフィールドとともに各メモリモジュールの物理的距離情報フィールド（レイテンシレジスタフィールド）４０６を有している。
【００４０】
メモリモジュール有効／無効フラグ４０２は、当該メモリモジュールが接続されていれば当該フィールド４０１に１が設定され、接続されていない場合は０が設定される。メモリバンク個数フィールド４０３は、接続されるメモリモジュールのメモリバンク数が４バンクであれば０が設定され、８バンクであれば１が設定される。行アドレスビット数フィールド４０４と列アドレスビット数フィールド４０５は、それぞれ、各メモリモジュールの行アドレスビット数と列アドレスビット数が指定される。
【００４１】
従って、図４−１に示す例では、４個のメモリモジュールが有効であり、各メモリモジュールともに、４バンク、行アドレス１３ビット、列アドレス１０ビットのデバイスであることがわかる。
【００４２】
また物理的距離情報フィールド４０６は、メモリ制御回路１００から各メモリモジュールまでの物理的距離が近いものから０より昇順に０、１、２、３と指定される。図１に示されるように、物理的距離が近い順に、メモリモジュール２０１、２０２、２０３、２０４と並ぶ構成となっているため、図４−１に示される物理的距離情報フィールド４０６が指定されている。
【００４３】
図４−２は、メモリアドレス設定レジスタ１１２の構成の一例を示す模式図である。
メモリアドレス設定レジスタ１１２は、各メモリモジュールに割り当てられるチップ内アドレス空間を指定するレジスタである。
【００４４】
図４−２に示すように、メモリアドレス設定レジスタ１１２には、下限アドレスフィールド４０７と、上限アドレスフィールド４０８を有して構成されている。下限アドレスフィールド４０７は、各メモリモジュールに対して割り当てられるメモリ空間の下限アドレスの上位８ビットを保持する。上限アドレスフィールド４０８は、割り当てられるメモリ空間の上限アドレス＋１番地の上位８ビットを保持する。
【００４５】
例えば、図３に示すように、メモリモジュール２０１に割り当てられる空間が０ｘ００００＿００００−０ｘ０ＦＦＦ＿ＦＦＦＦ、メモリモジュール２０２に割り当てられる空間が０ｘ１０００＿００００−０ｘ１ＦＦＦ＿ＦＦＦＦ、メモリモジュール２０３に割り当てられる空間が０ｘ２０００＿００００−０ｘ２ＦＦＦ＿ＦＦＦＦ、メモリモジュール２０４に割り当てられる空間が０ｘ３０００＿００００−０ｘ３ＦＦＦ＿ＦＦＦＦであるとする。
【００４６】
このとき、メモリモジュール２０１の下限アドレスは０ｘ００００＿００００であるため、対応する下限アドレスフィールド４０７の設定値は、０ｘ００００＿００００の上位８ビットの“０ｘ００”となる。また、上限アドレス＋１番地は、０ｘ１０００＿００００であるため、対応する上限アドレスフィールド４０８の設定値は、０ｘ１０００＿００００の上位８ビットの“０ｘ１０”となる。その他のメモリモジュールに対しても同様に設定を行うことにより、図４−２に示される設定値が得られる。
【００４７】
メモリアクセス監視部１２１は、メモリアクセスインターフェース１３２に入力されるメモリアクセスの監視を行い、メモリアクセス履歴情報を保持する。本実施形態では、図５−１に示すようにメモリ領域を分割し、メモリアクセスインターフェース１３２に入力されるアクセスアドレスより単位期間あたりの各メモリ領域へのアクセス回数をカウントする。
【００４８】
具体的に、チップ内アドレスにおけるメモリ領域をメモリ領域１〜４に分割し、０ｘ００００＿００００−０ｘ０ＦＦＦ＿ＦＦＦＦをメモリ領域１、０ｘ１０００＿００００−０ｘ１ＦＦＦ＿ＦＦＦＦをメモリ領域２、０ｘ２０００＿００００−０ｘ２ＦＦＦ＿ＦＦＦＦをメモリ領域３、０ｘ３０００＿００００−０ｘ３ＦＦＦ＿ＦＦＦＦをメモリ領域４に割り当てる。この状態では、図５−１に示すように、メモリ領域１がメモリモジュール２０１に、メモリ領域２がメモリモジュール２０２に、メモリ領域３がメモリモジュール２０３に、メモリ領域４がメモリモジュール２０４に割り当てられているものとする。また、本実施形態では、メモリアクセス監視部１２１は、電源投入時から電源遮断時までの期間を単位期間とし、各メモリ領域に対するアクセス回数をカウントする。
【００４９】
メモリアクセス監視部１２１内部には、監視する領域分、即ち本実施形態では、図６に示す４組のカウントレジスタ（メモリアクセスカウンタ）６０１〜６０４を、各メモリ領域に割り当てる。各カウントレジスタ６０１〜６０４は、電源投入時にはリセットされ、対応するメモリ領域へのアクセスが発生した場合は、カウントレジスタ値を１加算する。このカウントレジスタ６０１〜６０４は、アクセスパターン判定部１２２に接続され、参照される。
【００５０】
アクセスパターン判定部１２２では、電源遮断通知信号入力バス１３１ｃを介して入力された電源遮断通知信号が有効になると、メモリアクセス監視部１２１のアクセスパターン情報を参照して、メモリアクセス内容の解析を行う。本実施形態では、アクセスパターン情報として、前記分割したメモリ領域ごとのメモリアクセス回数をカウントしたカウントレジスタ６０１〜６０４を参照する。
【００５１】
図７は、第１の実施形態に係るメモリ制御装置において、電源遮断通知信号が有効になったときの各メモリ領域のカウントレジスタ値を示す模式図である。
【００５２】
図７においてメモリアクセス回数が多い順に並べると、メモリ領域３、メモリ領域２、メモリ領域１、メモリ領域４の順序となる。アクセスパターン判定部１２２は、アクセス回数が多いメモリ領域の順に、レイテンシの小さいメモリモジュールを割り当てる様に判定を行う。従って、図５−２に示すように、メモリ領域３を物理的距離の一番近いメモリモジュール２０１に、メモリ領域２をメモリモジュール２０２に、メモリ領域１をメモリモジュール２０３に、メモリ領域４をメモリモジュール２０４に割り当てる様に判定を行う。そして、アクセスパターン判定部１２２は、当該判定結果を各メモリモジュールのメモリアドレス割り当て設定値として生成する。
【００５３】
即ち、メモリモジュール２０１のメモリアドレス設定は、０ｘ３０００＿００００−０ｘ４０００＿００００となる。また、メモリモジュール２０２のメモリアドレス設定は、０ｘ１０００＿００００−０ｘ２０００＿００００となり、以下、他のメモリモジュールに対しても同様にアドレスの割り当てを行う。そして、メモリ情報レジスタ１１０の設定値として、図４−３に示される値を生成する。生成されたメモリ情報レジスタ１１０の設定値は、アクセスパターン解析結果データとして不揮発記憶デバイス制御部１３３に伝達される。
【００５４】
不揮発記憶デバイス制御部１３３は、アクセスパターン判定部１２２よりアクセスパターン解析結果データが通知されると活性化し、不揮発記憶デバイス３００へアクセスパターン解析結果データの書き込み処理を行う。不揮発記憶デバイス３００内には、アクセスパターンを保持する固定のアクセスパターン保持領域が確保される。この際、不揮発記憶デバイス３００のアクセスパターン保持領域に書き込まれるアクセスパターン解析結果データは、図４−３に示されるメモリ情報レジスタ１１０の設定値のデータである。
【００５５】
また、不揮発記憶デバイス制御部１３３は、内部リセット信号解除時にも活性化され、不揮発記憶デバイス３００内のアクセスパターン保持領域に対して、保持されたアクセスパターン解析結果データの読み込み処理を行う。そして、不揮発記憶デバイス制御部１３３は、これをメモリアドレス設定部１２３に通知する。
【００５６】
不揮発記憶デバイス制御部１３３は、メモリアドレス設定部１２３にアクセスパターン解析結果データを通知した後、アクセスパターン判定部１２２より通知を受けるまで停止する。
【００５７】
メモリアドレス設定部１２３は、アクセスパターン解析結果データの通知により活性化され、当該アクセスパターン解析結果データをメモリ情報レジスタ１１０の設定値としてチップ上のメモリ空間と各メモリモジュールの物理アドレスの割り当てを設定する。
【００５８】
第１の実施形態のメモリ制御装置によれば、アクセスパターンを解析してアクセスパターン情報を当該装置の電源遮断に先立って書き込み処理を行うことにより、電源遮断後もアクセスパターン情報を保持することが可能となる。また、電源立ち上がり時に、前回動作時のメモリへのアクセス情報に応じてチップ上のメモリ空間を各メモリモジュールのアドレスに割り当てを行うことが可能となる。
【００５９】
本実施形態では、同様のアクセスパターンで動作した場合、メモリモジュールごとにリード時のアクセスレイテンシが異なるメモリシステムにおけるメモリ制御回路１００において、メモリ領域ごとのメモリアクセス回数を使用してアクセスパターンを判定する。そして、アクセス回数が多いメモリ領域をレイテンシの小さいメモリモジュールに割り当てることにより、アクセス頻度の多いメモリ領域に対するレイテンシ増加を抑えることができ、メモリアクセス性能の低下を防ぐことが可能となる。
【００６０】
また、本実施形態では、当該装置の電源遮断に先立って不揮発記憶デバイス３００にアクセスパターンに係る情報を保持し、電源立ち上がり時に前回動作時のアクセスパターンに応じてチップ上のメモリ空間と各メモリモジュールのアドレス割り当てを行う。これにより、当該装置の使用状況が変化することによりアクセスパターンが変化した場合においても、次回の当該装置の立ち上げ時にその変化に合わせてメモリモジュールごとにリード時のアクセスレイテンシが異なるメモリシステムにおけるメモリ制御回路１００でのレイテンシ増加を抑えることにより、メモリアクセス性能の低下を防ぐことができ、加えて、メモリコピー等の処理のオーバヘッドや回路追加をすること無く実現することが可能となる。
【００６１】
（第２の実施形態）
図８は、第２の実施形態に係るメモリ制御装置のメモリ制御回路の概略構成図である。
第２の実施形態におけるメモリ制御回路８００は、図２に示すメモリ制御回路１００の構成と比較して、メモリモジュールへのアクセスパターンを検出するメモリアクセス監視部１２１の動作内容が異なり、これをページ遷移カウント部８２１として構成している。その他の構成については、図２に示すものと同様の構成であるため、その詳細な説明は省略する。
【００６２】
以下、第２の実施形態に係るページ遷移カウント部８２１の動作について説明する。
ページ遷移カウント部８２１は、図２に示すメモリアクセス監視部１２１と同様に、メモリアクセスインターフェース１３２に入力されるメモリアクセスの監視を行い、メモリアクセス履歴情報を保持する。本実施形態では、図５−１に示すようにチップ内アドレスにおけるメモリ領域をメモリ領域１〜４に分割し、０ｘ００００＿００００−０ｘ０ＦＦＦ＿ＦＦＦＦをメモリ領域１、０ｘ１０００＿００００−０ｘ１ＦＦＦ＿ＦＦＦＦをメモリ領域２、０ｘ２０００＿００００−０ｘ２ＦＦＦ＿ＦＦＦＦをメモリ領域３、０ｘ３０００＿００００−０ｘ３ＦＦＦ＿ＦＦＦＦをメモリ領域４に割り当てる。
【００６３】
ページ遷移カウント部８２１は、メモリアクセスインターフェース１３２に入力されるアクセスアドレスと、メモリ制御コア部１３４より出力されるページミス情報より各メモリ領域のメモリアクセスに対する単位期間あたりのページミス数をカウントする。即ち、ページ遷移カウント部８２１は、ページ遷移数をカウントする。また、本実施形態では、ページ遷移カウント部８２１は、電源投入時から電源遮断時までの期間を単位期間とし、各メモリ領域に対するアクセス回数をカウントする。
【００６４】
ページ遷移カウント部８２１内部には、監視する領域分、即ち本実施形態では、図９に示す４組のカウントレジスタ（ページ遷移カウンタ）９０１〜９０４を、各メモリ領域に割り当てる。各カウントレジスタ９０１〜９０４は、電源投入時にはリセットされ、対応するメモリ領域でのページミスアクセスが発生した場合は、カウントレジスタ値を１加算する。このカウントレジスタ９０１〜９０４は、アクセスパターン判定部１２２に接続され、参照される。
【００６５】
アクセスパターン判定部１２２では、電源遮断通知信号入力バス１３１ｃを介して入力された電源遮断通知信号が有効になると、ページ遷移カウント部８２１のアクセスパターン情報を参照して、メモリアクセス内容の解析を行う。本実施形態では、アクセスパターン情報として、前記分割したメモリ領域ごとのページ遷移回数をカウントしたカウントレジスタ９０１〜９０４を参照する。
【００６６】
図１０は、第２の実施形態に係るメモリ制御装置において、電源遮断通知信号が有効になったときの各メモリ領域のカウントレジスタ値を示す模式図である。
【００６７】
図１０においてページ遷移回数が多い順に並べると、メモリ領域３、メモリ領域２、メモリ領域１、メモリ領域４の順序となる。アクセスパターン判定部１２２は、ページ遷移回数が多いメモリ領域の順に、レイテンシの小さいメモリモジュールに割り当てる様に判定を行う。従って、図５−２に示すように、メモリ領域３を物理的距離の一番近いメモリモジュール２０１に、メモリ領域２をメモリモジュール２０２に、メモリ領域１をメモリモジュール２０３に、メモリ領域４をメモリモジュール２０４に割り当てる様に判定を行う。そして、アクセスパターン判定部１２２は、当該判定結果を各メモリモジュールのメモリアドレス割り当て設定値として生成する。
【００６８】
即ち、メモリモジュール２０１のメモリアドレス設定は、０ｘ３０００＿００００−０ｘ４０００＿００００となる。また、メモリモジュール２０２のメモリアドレス設定は、０ｘ１０００＿００００−０ｘ２０００＿００００となり、以下、他のメモリモジュールに対しても同様にアドレスの割り当てを行う。そして、メモリ情報レジスタ１１０の設定値として、図４−３に示される値を生成する。生成されたメモリ情報レジスタ１１０の設定値は、アクセスパターン解析結果データとして不揮発記憶デバイス制御部１３３に伝達される。
【００６９】
不揮発記憶デバイス制御部１３３は、アクセスパターン判定部１２２よりアクセスパターン解析結果データが通知されると活性化し、不揮発記憶デバイス３００へアクセスパターン解析結果データの書き込み処理を行う。不揮発記憶デバイス３００内には、アクセスパターンを保持する固定のアクセスパターン保持領域が確保される。この際、不揮発記憶デバイス３００のアクセスパターン保持領域に書き込まれるアクセスパターン解析結果データは、図４−３に示されるメモリ情報レジスタ１１０の設定値のデータである。
【００７０】
また、不揮発記憶デバイス制御部１３３は、内部リセット信号解除時にも活性化され、不揮発記憶デバイス３００内のアクセスパターン保持領域に対して、保持されたアクセスパターン解析結果データの読み込み処理を行う。そして、不揮発記憶デバイス制御部１３３は、これをメモリアドレス設定部１２３に通知する。
【００７１】
不揮発記憶デバイス制御部１３３は、メモリアドレス設定部１２３にアクセスパターン解析結果データを通知した後、アクセスパターン判定部１２２より通知を受けるまで停止する。
【００７２】
メモリアドレス設定部１２３は、アクセスパターン解析結果データの通知により活性化され、当該アクセスパターン解析結果データをメモリ情報レジスタ１１０の設定値としてチップ上のメモリ空間と各メモリモジュールの物理アドレスの割り当てを設定する。
【００７３】
第２の実施形態のメモリ制御装置によれば、アクセスパターンを解析してアクセスパターン情報を当該装置の電源遮断に先立って書き込み処理を行うことにより、電源遮断後もアクセスパターン情報を保持することが可能となる。また、電源立ち上がり時に、前回動作時のメモリへのアクセス情報に応じてチップ上のメモリ空間を各メモリモジュールのアドレスに割り当てを行うことが可能となる。
【００７４】
本実施形態では、同様のアクセスパターンで動作した場合、メモリモジュールごとにリード時のアクセスレイテンシが異なるメモリシステムにおけるメモリ制御回路８００において、メモリ領域ごとのページ遷移回数を使用してアクセスパターンを判定する。そして、ページ遷移回数が多いメモリ領域をレイテンシの小さいメモリモジュールに割り当てることにより、ページミスペナルティが多く発生するメモリ領域に対するレイテンシ増加を抑えることができ、メモリアクセス性能の低下を防ぐことが可能となる。
【００７５】
また、本実施形態では、当該装置の電源遮断に先立って不揮発記憶デバイス３００にアクセスパターンに係る情報を保持し、電源立ち上がり時に前回動作時のアクセスパターンに応じてチップ上のメモリ空間と各メモリモジュールのアドレス割り当てを行う。これにより、当該装置の使用状況が変化することによりアクセスパターンが変化した場合においても、次回の当該装置の立ち上げ時にその変化に合わせてメモリモジュールごとにリード時のアクセスレイテンシが異なるメモリシステムにおけるメモリ制御回路８００でのレイテンシ増加を抑えることにより、メモリアクセス性能の低下を防ぐことができ、加えて、メモリコピー等の処理のオーバヘッドや回路追加をすること無く実現することが可能となる。
【００７６】
前述した各実施形態に係るメモリ制御装置を構成する図１、図２及び図８の各手段、並びに当該メモリ制御装置による制御方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記憶媒体は本発明に含まれる。
【００７７】
具体的に、前記プログラムは、例えばＣＤ−ＲＯＭのような記憶媒体に記録し、或いは各種伝送媒体を介し、コンピュータに提供される。前記プログラムを記録する記憶媒体としては、ＣＤ−ＲＯＭ以外に、フレキシブルディスク、ハードディスク、磁気テープ、光磁気ディスク、不揮発性メモリカード等を用いることができる。他方、前記プログラムの伝送媒体としては、プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク（ＬＡＮ、インターネットの等のＷＡＮ、無線通信ネットワーク等）システムにおける通信媒体を用いることができる。また、この際の通信媒体としては、光ファイバ等の有線回線や無線回線などが挙げられる。
【００７８】
また、コンピュータが供給されたプログラムを実行することにより各実施形態に係るメモリ制御装置の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）或いは他のアプリケーションソフト等と共同して各実施形態に係るメモリ制御装置の機能が実現される場合や、供給されたプログラムの処理の全て、或いは一部がコンピュータの機能拡張ボードや機能拡張ユニットにより行われて各実施形態に係るメモリ制御装置の機能が実現される場合も、かかるプログラムは本発明に含まれる。
【図面の簡単な説明】
【００７９】
【図１】第１の実施形態に係るメモリ制御装置の概略構成図である。
【図２】第１の実施形態に係るメモリ制御装置のメモリ制御回路の概略構成図である。
【図３】各メモリモジュールに対応するメモリアドレスマップの一例を示す模式図である。
【図４−１】メモリ情報レジスタの構成の一例を示す模式図である。
【図４−２】メモリアドレス設定レジスタの構成の一例を示す模式図である。
【図４−３】メモリ情報レジスタの設定値のデータの一例を示す模式図である。
【図５−１】チップ内アドレスと物理アドレスとの対応関係を示す模式図である。
【図５−２】割り当て処理後のチップ内アドレスと物理アドレスとの対応関係を示す模式図である。
【図６】メモリアクセス監視部内部のカウントレジスタの構成の一例を示す模式図である。
【図７】第１の実施形態に係るメモリ制御装置において、電源遮断通知信号が有効になったときの各メモリ領域のカウントレジスタ値を示す模式図である。
【図８】第２の実施形態に係るメモリ制御装置のメモリ制御回路の概略構成図である。
【図９】ページ遷移カウント部内部のカウントレジスタの構成の一例を示す模式図である。
【図１０】第２の実施形態に係るメモリ制御装置において、電源遮断通知信号が有効になったときの各メモリ領域のカウントレジスタ値を示す模式図である。
【図１１】従来のメモリ制御装置の概略構成図である。
【図１２】従来のメモリ制御装置の概略構成図である。
【符号の説明】
【００８０】
１００、８００  メモリ制御回路
１１０  メモリ情報レジスタ
１１１  メモリ構成情報レジスタ
１１２  メモリアドレス設定レジスタ
１２０、８２０  アクセスパターン判定・設定部
１２１  メモリアクセス監視部
１２２  メモリアクセスパターン判定部
１２３  メモリアドレス設定部
１３０  メモリインタフェース
１３１ａ  メモリアクセスバス
１３１ｂ  レジスタアクセスバス
１３１ｃ  電源遮断通知信号入力バス
１３１ｄ  書き込みデータ送信バス
１３１ｅ  読み出しデータ受信バス
１３２  メモリアクセスインターフェース
１３３  不揮発記憶デバイス制御部
１３４  メモリ制御コア部
２００  メモリモジュール群
２００ａ  バッファ
２００ｂ  ＤＲＡＭ
２０１〜２０４  メモリモジュール
３００  不揮発記憶デバイス
４０１  設定レジスタフィールド
４０２  メモリモジュール有効／無効フラグ
４０３  メモリバンク個数フィールド
４０４  行アドレスビット数フィールド
４０５  列アドレスビット数フィールド
４０６  物理的距離情報フィールド（レイテンシレジスタフィールド）
４０７  下限アドレスフィールド
４０８  上限アドレスフィールド
６０１〜６０４、９０１〜９０４  カウントレジスタ
８２１  ページ遷移カウント部
【図１】
2008040896.tif 000003
【図２】
2008040896.tif 000004
【図３】
2008040896.tif 000005
【図４−１】
2008040896.tif 000006
【図４−２】
2008040896.tif 000007
【図４−３】
2008040896.tif 000008
【図５−１】
2008040896.tif 000009
【図５−２】
2008040896.tif 000010
【図６】
2008040896.tif 000011
【図７】
2008040896.tif 000012
【図８】
2008040896.tif 000013
【図９】
2008040896.tif 000014
【図１０】
2008040896.tif 000015
【図１１】
2008040896.tif 000016
【図１２】
2008040896.tif 000017